@gallop.software/studio 0.1.44 → 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.
@@ -1232,8 +1232,28 @@ var styles3 = {
1232
1232
  width: 18px;
1233
1233
  height: 18px;
1234
1234
  `,
1235
- copyBtnFlash: css3`
1236
- color: ${colors.success};
1235
+ tooltip: css3`
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
+ }
1237
1257
  `,
1238
1258
  openBtn: css3`
1239
1259
  position: absolute;
@@ -1469,13 +1489,16 @@ function GridItem({ item, isSelected, onClick, onOpen, onGenerateThumbnail }) {
1469
1489
  ),
1470
1490
  item.cdnSynced && /* @__PURE__ */ jsx3("span", { css: styles3.cdnBadge, children: "CDN" }),
1471
1491
  /* @__PURE__ */ jsxs3("div", { css: styles3.content, children: [
1472
- /* @__PURE__ */ jsx3(
1492
+ /* @__PURE__ */ jsxs3(
1473
1493
  "button",
1474
1494
  {
1475
- css: [styles3.copyBtn, showCopied && styles3.copyBtnFlash],
1495
+ css: styles3.copyBtn,
1476
1496
  onClick: handleCopyPath,
1477
1497
  title: "Copy file path",
1478
- children: /* @__PURE__ */ jsx3("svg", { css: styles3.copyIcon, fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", children: /* @__PURE__ */ jsx3("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" }) })
1498
+ children: [
1499
+ showCopied && /* @__PURE__ */ jsx3("span", { css: styles3.tooltip, children: "Copied!" }),
1500
+ /* @__PURE__ */ jsx3("svg", { css: styles3.copyIcon, fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", children: /* @__PURE__ */ jsx3("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
+ ]
1479
1502
  }
1480
1503
  ),
1481
1504
  /* @__PURE__ */ jsx3(
@@ -1682,15 +1705,35 @@ var styles4 = {
1682
1705
  color: ${colors.text};
1683
1706
  }
1684
1707
  `,
1685
- copyBtnFlash: css4`
1686
- background: ${colors.successLight};
1687
- border-color: ${colors.success};
1688
- color: ${colors.success};
1689
- `,
1690
1708
  copyIcon: css4`
1691
1709
  width: 16px;
1692
1710
  height: 16px;
1693
1711
  `,
1712
+ tooltip: css4`
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
+ `,
1694
1737
  nameCell: css4`
1695
1738
  display: flex;
1696
1739
  align-items: center;
@@ -2005,13 +2048,16 @@ function ListRow({ item, isSelected, onClick, onOpen, onGenerateThumbnail }) {
2005
2048
  ) }) : /* @__PURE__ */ jsx4("div", { css: styles4.thumbnailWrapper, children: /* @__PURE__ */ jsx4("svg", { css: styles4.fileIcon, fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", children: /* @__PURE__ */ jsx4("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" }) }) }),
2006
2049
  /* @__PURE__ */ jsx4("span", { css: styles4.name, title: item.name, children: truncateMiddle2(item.name) }),
2007
2050
  /* @__PURE__ */ jsxs4("div", { css: styles4.actionsCell, children: [
2008
- /* @__PURE__ */ jsx4(
2051
+ /* @__PURE__ */ jsxs4(
2009
2052
  "button",
2010
2053
  {
2011
- css: [styles4.copyBtn, showCopied && styles4.copyBtnFlash],
2054
+ css: styles4.copyBtn,
2012
2055
  onClick: handleCopyPath,
2013
2056
  title: "Copy file path",
2014
- children: /* @__PURE__ */ jsx4("svg", { css: styles4.copyIcon, fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", children: /* @__PURE__ */ jsx4("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" }) })
2057
+ children: [
2058
+ showCopied && /* @__PURE__ */ jsx4("span", { css: styles4.tooltip, children: "Copied!" }),
2059
+ /* @__PURE__ */ jsx4("svg", { css: styles4.copyIcon, fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", children: /* @__PURE__ */ jsx4("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
+ ]
2015
2061
  }
2016
2062
  ),
2017
2063
  /* @__PURE__ */ jsx4(
@@ -2133,18 +2179,35 @@ var styles5 = {
2133
2179
  height: 20px;
2134
2180
  color: ${colors.textSecondary};
2135
2181
  `,
2136
- copyBtnFlash: css5`
2137
- background: ${colors.successLight};
2138
- border-color: ${colors.success};
2182
+ tooltip: css5`
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;
2139
2196
 
2140
- svg {
2141
- color: ${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;
2142
2205
  }
2143
2206
  `,
2144
2207
  mainCloseBtn: css5`
2145
2208
  padding: 8px;
2146
- background: ${colors.danger};
2147
- border: 1px solid ${colors.danger};
2209
+ background: ${colors.surface};
2210
+ border: 1px solid ${colors.border};
2148
2211
  border-radius: 8px;
2149
2212
  cursor: pointer;
2150
2213
  transition: all 0.15s ease;
@@ -2154,14 +2217,14 @@ var styles5 = {
2154
2217
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.08);
2155
2218
 
2156
2219
  &:hover {
2157
- background-color: ${colors.dangerHover};
2158
- border-color: ${colors.dangerHover};
2220
+ background-color: ${colors.surfaceHover};
2221
+ border-color: ${colors.borderHover};
2159
2222
  }
2160
2223
  `,
2161
2224
  mainCloseIcon: css5`
2162
2225
  width: 20px;
2163
2226
  height: 20px;
2164
- color: white;
2227
+ color: ${colors.textSecondary};
2165
2228
  `,
2166
2229
  mediaWrapper: css5`
2167
2230
  max-width: 100%;
@@ -2391,7 +2454,10 @@ function StudioDetailView() {
2391
2454
  /* @__PURE__ */ jsx5("div", { css: styles5.overlay, onClick: handleClose, children: /* @__PURE__ */ jsxs5("div", { css: styles5.container, onClick: (e) => e.stopPropagation(), children: [
2392
2455
  /* @__PURE__ */ jsxs5("div", { css: styles5.main, children: [
2393
2456
  /* @__PURE__ */ jsxs5("div", { css: styles5.headerButtons, children: [
2394
- /* @__PURE__ */ jsx5("button", { css: [styles5.copyBtn, showCopied && styles5.copyBtnFlash], onClick: handleCopyPath, title: "Copy file path", children: /* @__PURE__ */ jsx5("svg", { css: styles5.copyIcon, fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", children: /* @__PURE__ */ jsx5("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" }) }) }),
2457
+ /* @__PURE__ */ jsxs5("button", { css: styles5.copyBtn, onClick: handleCopyPath, title: "Copy file path", children: [
2458
+ showCopied && /* @__PURE__ */ jsx5("span", { css: styles5.tooltip, children: "Copied!" }),
2459
+ /* @__PURE__ */ jsx5("svg", { css: styles5.copyIcon, fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", children: /* @__PURE__ */ jsx5("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
+ ] }),
2395
2461
  /* @__PURE__ */ jsx5("button", { css: styles5.mainCloseBtn, onClick: handleClose, "aria-label": "Close", children: /* @__PURE__ */ jsx5("svg", { css: styles5.mainCloseIcon, fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", children: /* @__PURE__ */ jsx5("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M6 18L18 6M6 6l12 12" }) }) })
2396
2462
  ] }),
2397
2463
  /* @__PURE__ */ jsx5("div", { css: styles5.mediaWrapper, children: renderMedia() })
@@ -2584,12 +2650,29 @@ var styles6 = {
2584
2650
  border-color: ${colors.borderHover};
2585
2651
  }
2586
2652
  `,
2587
- copyBtnFlash: css6`
2588
- background: ${colors.successLight};
2589
- border-color: ${colors.success};
2653
+ tooltip: css6`
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;
2590
2667
 
2591
- svg {
2592
- color: ${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;
2593
2676
  }
2594
2677
  `,
2595
2678
  copyIcon: css6`
@@ -2722,7 +2805,10 @@ function SettingsPanel({ onClose }) {
2722
2805
  /* @__PURE__ */ jsx6("h3", { css: styles6.sectionTitle, children: "Cloudflare R2" }),
2723
2806
  /* @__PURE__ */ jsx6("p", { css: styles6.description, children: "Configure in .env.local file:" }),
2724
2807
  /* @__PURE__ */ jsxs6("div", { css: styles6.codeWrapper, children: [
2725
- /* @__PURE__ */ jsx6("button", { css: [styles6.copyBtn, copied && styles6.copyBtnFlash], onClick: handleCopy, title: "Copy to clipboard", children: copied ? /* @__PURE__ */ jsx6("svg", { css: styles6.copyIcon, fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", children: /* @__PURE__ */ jsx6("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M5 13l4 4L19 7" }) }) : /* @__PURE__ */ jsx6("svg", { css: styles6.copyIcon, fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", children: /* @__PURE__ */ jsx6("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__ */ jsxs6("button", { css: styles6.copyBtn, onClick: handleCopy, title: "Copy to clipboard", children: [
2809
+ copied && /* @__PURE__ */ jsx6("span", { css: styles6.tooltip, children: "Copied!" }),
2810
+ /* @__PURE__ */ jsx6("svg", { css: styles6.copyIcon, fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", children: /* @__PURE__ */ jsx6("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
+ ] }),
2726
2812
  /* @__PURE__ */ jsxs6("div", { css: styles6.code, children: [
2727
2813
  /* @__PURE__ */ jsx6("p", { css: styles6.codeLine, children: "CLOUDFLARE_R2_ACCOUNT_ID=abc123def456ghi789" }),
2728
2814
  /* @__PURE__ */ jsx6("p", { css: styles6.codeLine, children: "CLOUDFLARE_R2_ACCESS_KEY_ID=your_access_key_id_here" }),
@@ -3053,4 +3139,4 @@ export {
3053
3139
  StudioUI,
3054
3140
  StudioUI_default as default
3055
3141
  };
3056
- //# sourceMappingURL=StudioUI-FRELPTRA.mjs.map
3142
+ //# sourceMappingURL=StudioUI-B3I2U55R.mjs.map