@gallop.software/studio 0.1.43 → 0.1.45

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1077,6 +1077,7 @@ var styles3 = {
1077
1077
 
1078
1078
  &:hover {
1079
1079
  border-color: ${_chunkUFCWGUAGjs.colors.primary};
1080
+ box-shadow: 0 0 0 1px ${_chunkUFCWGUAGjs.colors.primary};
1080
1081
  }
1081
1082
  `,
1082
1083
  parentItem: _react3.css`
@@ -1124,7 +1125,7 @@ var styles3 = {
1124
1125
  folderIcon: _react3.css`
1125
1126
  width: 56px;
1126
1127
  height: 56px;
1127
- color: #697386;
1128
+ color: #5469d4;
1128
1129
  `,
1129
1130
  imagesFolderIcon: _react3.css`
1130
1131
  width: 56px;
@@ -1210,12 +1211,11 @@ var styles3 = {
1210
1211
  top: 8px;
1211
1212
  right: 8px;
1212
1213
  z-index: 10;
1213
- height: 24px;
1214
- width: 24px;
1215
- font-size: ${_chunkUFCWGUAGjs.fontSize.xs};
1216
- color: ${_chunkUFCWGUAGjs.colors.textSecondary};
1217
- background: ${_chunkUFCWGUAGjs.colors.surface};
1218
- border: 1px solid ${_chunkUFCWGUAGjs.colors.border};
1214
+ height: 28px;
1215
+ width: 28px;
1216
+ color: ${_chunkUFCWGUAGjs.colors.textMuted};
1217
+ background: transparent;
1218
+ border: none;
1219
1219
  padding: 0;
1220
1220
  cursor: pointer;
1221
1221
  border-radius: 4px;
@@ -1223,22 +1223,37 @@ var styles3 = {
1223
1223
  display: flex;
1224
1224
  align-items: center;
1225
1225
  justify-content: center;
1226
- box-shadow: 0 1px 2px rgba(0, 0, 0, 0.08);
1227
1226
 
1228
1227
  &:hover {
1229
- background: ${_chunkUFCWGUAGjs.colors.surfaceHover};
1230
- border-color: ${_chunkUFCWGUAGjs.colors.borderHover};
1231
1228
  color: ${_chunkUFCWGUAGjs.colors.text};
1232
1229
  }
1233
1230
  `,
1234
1231
  copyIcon: _react3.css`
1235
- width: 12px;
1236
- height: 12px;
1232
+ width: 18px;
1233
+ height: 18px;
1237
1234
  `,
1238
- copyBtnFlash: _react3.css`
1239
- background: ${_chunkUFCWGUAGjs.colors.successLight};
1240
- border-color: ${_chunkUFCWGUAGjs.colors.success};
1241
- color: ${_chunkUFCWGUAGjs.colors.success};
1235
+ tooltip: _react3.css`
1236
+ position: absolute;
1237
+ top: 100%;
1238
+ right: 0;
1239
+ background: #1a1f36;
1240
+ color: white;
1241
+ padding: 4px 8px;
1242
+ border-radius: 4px;
1243
+ font-size: 12px;
1244
+ white-space: nowrap;
1245
+ margin-top: 6px;
1246
+ pointer-events: none;
1247
+ z-index: 100;
1248
+
1249
+ &::before {
1250
+ content: '';
1251
+ position: absolute;
1252
+ bottom: 100%;
1253
+ right: 8px;
1254
+ border: 4px solid transparent;
1255
+ border-bottom-color: #1a1f36;
1256
+ }
1242
1257
  `,
1243
1258
  openBtn: _react3.css`
1244
1259
  position: absolute;
@@ -1474,13 +1489,16 @@ function GridItem({ item, isSelected, onClick, onOpen, onGenerateThumbnail }) {
1474
1489
  ),
1475
1490
  item.cdnSynced && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { css: styles3.cdnBadge, children: "CDN" }),
1476
1491
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { css: styles3.content, children: [
1477
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
1492
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
1478
1493
  "button",
1479
1494
  {
1480
- css: [styles3.copyBtn, showCopied && styles3.copyBtnFlash],
1495
+ css: styles3.copyBtn,
1481
1496
  onClick: handleCopyPath,
1482
1497
  title: "Copy file path",
1483
- children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "svg", { css: styles3.copyIcon, fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M8 16H6a2 2 0 01-2-2V6a2 2 0 012-2h8a2 2 0 012 2v2m-6 12h8a2 2 0 002-2v-8a2 2 0 00-2-2h-8a2 2 0 00-2 2v8a2 2 0 002 2z" }) })
1498
+ children: [
1499
+ showCopied && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { css: styles3.tooltip, children: "Copied!" }),
1500
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "svg", { css: styles3.copyIcon, fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2" }) })
1501
+ ]
1484
1502
  }
1485
1503
  ),
1486
1504
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
@@ -1687,15 +1705,35 @@ var styles4 = {
1687
1705
  color: ${_chunkUFCWGUAGjs.colors.text};
1688
1706
  }
1689
1707
  `,
1690
- copyBtnFlash: _react3.css`
1691
- background: ${_chunkUFCWGUAGjs.colors.successLight};
1692
- border-color: ${_chunkUFCWGUAGjs.colors.success};
1693
- color: ${_chunkUFCWGUAGjs.colors.success};
1694
- `,
1695
1708
  copyIcon: _react3.css`
1696
1709
  width: 16px;
1697
1710
  height: 16px;
1698
1711
  `,
1712
+ tooltip: _react3.css`
1713
+ position: absolute;
1714
+ bottom: 100%;
1715
+ left: 50%;
1716
+ transform: translateX(-50%);
1717
+ background: #1a1f36;
1718
+ color: white;
1719
+ padding: 4px 8px;
1720
+ border-radius: 4px;
1721
+ font-size: 12px;
1722
+ white-space: nowrap;
1723
+ margin-bottom: 6px;
1724
+ pointer-events: none;
1725
+ z-index: 100;
1726
+
1727
+ &::after {
1728
+ content: '';
1729
+ position: absolute;
1730
+ top: 100%;
1731
+ left: 50%;
1732
+ transform: translateX(-50%);
1733
+ border: 4px solid transparent;
1734
+ border-top-color: #1a1f36;
1735
+ }
1736
+ `,
1699
1737
  nameCell: _react3.css`
1700
1738
  display: flex;
1701
1739
  align-items: center;
@@ -1720,7 +1758,7 @@ var styles4 = {
1720
1758
  folderIcon: _react3.css`
1721
1759
  width: 24px;
1722
1760
  height: 24px;
1723
- color: #697386;
1761
+ color: #5469d4;
1724
1762
  `,
1725
1763
  imagesFolderWrapper: _react3.css`
1726
1764
  width: 48px;
@@ -2010,13 +2048,16 @@ function ListRow({ item, isSelected, onClick, onOpen, onGenerateThumbnail }) {
2010
2048
  ) }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { css: styles4.thumbnailWrapper, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "svg", { css: styles4.fileIcon, fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 1.5, d: "M7 21h10a2 2 0 002-2V9.414a1 1 0 00-.293-.707l-5.414-5.414A1 1 0 0012.586 3H7a2 2 0 00-2 2v14a2 2 0 002 2z" }) }) }),
2011
2049
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { css: styles4.name, title: item.name, children: truncateMiddle2(item.name) }),
2012
2050
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { css: styles4.actionsCell, children: [
2013
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
2051
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
2014
2052
  "button",
2015
2053
  {
2016
- css: [styles4.copyBtn, showCopied && styles4.copyBtnFlash],
2054
+ css: styles4.copyBtn,
2017
2055
  onClick: handleCopyPath,
2018
2056
  title: "Copy file path",
2019
- children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "svg", { css: styles4.copyIcon, fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M8 16H6a2 2 0 01-2-2V6a2 2 0 012-2h8a2 2 0 012 2v2m-6 12h8a2 2 0 002-2v-8a2 2 0 00-2-2h-8a2 2 0 00-2 2v8a2 2 0 002 2z" }) })
2057
+ children: [
2058
+ showCopied && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { css: styles4.tooltip, children: "Copied!" }),
2059
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "svg", { css: styles4.copyIcon, fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2" }) })
2060
+ ]
2020
2061
  }
2021
2062
  ),
2022
2063
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
@@ -2138,18 +2179,35 @@ var styles5 = {
2138
2179
  height: 20px;
2139
2180
  color: ${_chunkUFCWGUAGjs.colors.textSecondary};
2140
2181
  `,
2141
- copyBtnFlash: _react3.css`
2142
- background: ${_chunkUFCWGUAGjs.colors.successLight};
2143
- border-color: ${_chunkUFCWGUAGjs.colors.success};
2182
+ tooltip: _react3.css`
2183
+ position: absolute;
2184
+ right: 100%;
2185
+ top: 50%;
2186
+ transform: translateY(-50%);
2187
+ background: #1a1f36;
2188
+ color: white;
2189
+ padding: 4px 8px;
2190
+ border-radius: 4px;
2191
+ font-size: 12px;
2192
+ white-space: nowrap;
2193
+ margin-right: 8px;
2194
+ pointer-events: none;
2195
+ z-index: 100;
2144
2196
 
2145
- svg {
2146
- color: ${_chunkUFCWGUAGjs.colors.success};
2197
+ &::after {
2198
+ content: '';
2199
+ position: absolute;
2200
+ left: 100%;
2201
+ top: 50%;
2202
+ transform: translateY(-50%);
2203
+ border: 4px solid transparent;
2204
+ border-left-color: #1a1f36;
2147
2205
  }
2148
2206
  `,
2149
2207
  mainCloseBtn: _react3.css`
2150
2208
  padding: 8px;
2151
- background: ${_chunkUFCWGUAGjs.colors.danger};
2152
- border: 1px solid ${_chunkUFCWGUAGjs.colors.danger};
2209
+ background: ${_chunkUFCWGUAGjs.colors.surface};
2210
+ border: 1px solid ${_chunkUFCWGUAGjs.colors.border};
2153
2211
  border-radius: 8px;
2154
2212
  cursor: pointer;
2155
2213
  transition: all 0.15s ease;
@@ -2159,14 +2217,14 @@ var styles5 = {
2159
2217
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.08);
2160
2218
 
2161
2219
  &:hover {
2162
- background-color: ${_chunkUFCWGUAGjs.colors.dangerHover};
2163
- border-color: ${_chunkUFCWGUAGjs.colors.dangerHover};
2220
+ background-color: ${_chunkUFCWGUAGjs.colors.surfaceHover};
2221
+ border-color: ${_chunkUFCWGUAGjs.colors.borderHover};
2164
2222
  }
2165
2223
  `,
2166
2224
  mainCloseIcon: _react3.css`
2167
2225
  width: 20px;
2168
2226
  height: 20px;
2169
- color: white;
2227
+ color: ${_chunkUFCWGUAGjs.colors.textSecondary};
2170
2228
  `,
2171
2229
  mediaWrapper: _react3.css`
2172
2230
  max-width: 100%;
@@ -2396,7 +2454,10 @@ function StudioDetailView() {
2396
2454
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { css: styles5.overlay, onClick: handleClose, children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { css: styles5.container, onClick: (e) => e.stopPropagation(), children: [
2397
2455
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { css: styles5.main, children: [
2398
2456
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { css: styles5.headerButtons, children: [
2399
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "button", { css: [styles5.copyBtn, showCopied && styles5.copyBtnFlash], onClick: handleCopyPath, title: "Copy file path", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "svg", { css: styles5.copyIcon, fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M8 16H6a2 2 0 01-2-2V6a2 2 0 012-2h8a2 2 0 012 2v2m-6 12h8a2 2 0 002-2v-8a2 2 0 00-2-2h-8a2 2 0 00-2 2v8a2 2 0 002 2z" }) }) }),
2457
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "button", { css: styles5.copyBtn, onClick: handleCopyPath, title: "Copy file path", children: [
2458
+ showCopied && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { css: styles5.tooltip, children: "Copied!" }),
2459
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "svg", { css: styles5.copyIcon, fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2" }) })
2460
+ ] }),
2400
2461
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "button", { css: styles5.mainCloseBtn, onClick: handleClose, "aria-label": "Close", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "svg", { css: styles5.mainCloseIcon, fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M6 18L18 6M6 6l12 12" }) }) })
2401
2462
  ] }),
2402
2463
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { css: styles5.mediaWrapper, children: renderMedia() })
@@ -2589,12 +2650,29 @@ var styles6 = {
2589
2650
  border-color: ${_chunkUFCWGUAGjs.colors.borderHover};
2590
2651
  }
2591
2652
  `,
2592
- copyBtnFlash: _react3.css`
2593
- background: ${_chunkUFCWGUAGjs.colors.successLight};
2594
- border-color: ${_chunkUFCWGUAGjs.colors.success};
2653
+ tooltip: _react3.css`
2654
+ position: absolute;
2655
+ bottom: 100%;
2656
+ left: 50%;
2657
+ transform: translateX(-50%);
2658
+ background: #1a1f36;
2659
+ color: white;
2660
+ padding: 4px 8px;
2661
+ border-radius: 4px;
2662
+ font-size: 12px;
2663
+ white-space: nowrap;
2664
+ margin-bottom: 6px;
2665
+ pointer-events: none;
2666
+ z-index: 100;
2595
2667
 
2596
- svg {
2597
- color: ${_chunkUFCWGUAGjs.colors.success};
2668
+ &::after {
2669
+ content: '';
2670
+ position: absolute;
2671
+ top: 100%;
2672
+ left: 50%;
2673
+ transform: translateX(-50%);
2674
+ border: 4px solid transparent;
2675
+ border-top-color: #1a1f36;
2598
2676
  }
2599
2677
  `,
2600
2678
  copyIcon: _react3.css`
@@ -2727,7 +2805,10 @@ function SettingsPanel({ onClose }) {
2727
2805
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "h3", { css: styles6.sectionTitle, children: "Cloudflare R2" }),
2728
2806
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { css: styles6.description, children: "Configure in .env.local file:" }),
2729
2807
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { css: styles6.codeWrapper, children: [
2730
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "button", { css: [styles6.copyBtn, copied && styles6.copyBtnFlash], onClick: handleCopy, title: "Copy to clipboard", children: copied ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "svg", { css: styles6.copyIcon, fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M5 13l4 4L19 7" }) }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "svg", { css: styles6.copyIcon, fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M8 16H6a2 2 0 01-2-2V6a2 2 0 012-2h8a2 2 0 012 2v2m-6 12h8a2 2 0 002-2v-8a2 2 0 00-2-2h-8a2 2 0 00-2 2v8a2 2 0 002 2z" }) }) }),
2808
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "button", { css: styles6.copyBtn, onClick: handleCopy, title: "Copy to clipboard", children: [
2809
+ copied && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { css: styles6.tooltip, children: "Copied!" }),
2810
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "svg", { css: styles6.copyIcon, fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2" }) })
2811
+ ] }),
2731
2812
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { css: styles6.code, children: [
2732
2813
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { css: styles6.codeLine, children: "CLOUDFLARE_R2_ACCOUNT_ID=abc123def456ghi789" }),
2733
2814
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { css: styles6.codeLine, children: "CLOUDFLARE_R2_ACCESS_KEY_ID=your_access_key_id_here" }),
@@ -3058,4 +3139,4 @@ var StudioUI_default = StudioUI;
3058
3139
 
3059
3140
 
3060
3141
  exports.StudioUI = StudioUI; exports.default = StudioUI_default;
3061
- //# sourceMappingURL=StudioUI-R5J5RSL2.js.map
3142
+ //# sourceMappingURL=StudioUI-3X32P7EG.js.map