@gallop.software/studio 0.1.42 → 0.1.43

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.
@@ -1124,7 +1124,7 @@ var styles3 = {
1124
1124
  folderIcon: css3`
1125
1125
  width: 56px;
1126
1126
  height: 56px;
1127
- color: #f5a623;
1127
+ color: #697386;
1128
1128
  `,
1129
1129
  imagesFolderIcon: css3`
1130
1130
  width: 56px;
@@ -1235,38 +1235,18 @@ var styles3 = {
1235
1235
  width: 12px;
1236
1236
  height: 12px;
1237
1237
  `,
1238
- tooltip: css3`
1239
- position: absolute;
1240
- bottom: 100%;
1241
- left: 50%;
1242
- transform: translateX(-50%);
1243
- background: #1a1f36;
1244
- color: white;
1245
- padding: 4px 8px;
1246
- border-radius: 4px;
1247
- font-size: 12px;
1248
- white-space: nowrap;
1249
- margin-bottom: 6px;
1250
- pointer-events: none;
1251
- z-index: 100;
1252
-
1253
- &::after {
1254
- content: '';
1255
- position: absolute;
1256
- top: 100%;
1257
- left: 50%;
1258
- transform: translateX(-50%);
1259
- border: 4px solid transparent;
1260
- border-top-color: #1a1f36;
1261
- }
1238
+ copyBtnFlash: css3`
1239
+ background: ${colors.successLight};
1240
+ border-color: ${colors.success};
1241
+ color: ${colors.success};
1262
1242
  `,
1263
1243
  openBtn: css3`
1264
1244
  position: absolute;
1265
1245
  bottom: 8px;
1266
1246
  right: 8px;
1267
1247
  z-index: 10;
1268
- height: 24px;
1269
- font-size: ${fontSize.xs};
1248
+ height: 28px;
1249
+ font-size: ${fontSize.sm};
1270
1250
  font-weight: 500;
1271
1251
  color: ${colors.primary};
1272
1252
  background: ${colors.surface};
@@ -1494,16 +1474,13 @@ function GridItem({ item, isSelected, onClick, onOpen, onGenerateThumbnail }) {
1494
1474
  ),
1495
1475
  item.cdnSynced && /* @__PURE__ */ jsx3("span", { css: styles3.cdnBadge, children: "CDN" }),
1496
1476
  /* @__PURE__ */ jsxs3("div", { css: styles3.content, children: [
1497
- /* @__PURE__ */ jsxs3(
1477
+ /* @__PURE__ */ jsx3(
1498
1478
  "button",
1499
1479
  {
1500
- css: styles3.copyBtn,
1480
+ css: [styles3.copyBtn, showCopied && styles3.copyBtnFlash],
1501
1481
  onClick: handleCopyPath,
1502
1482
  title: "Copy file path",
1503
- children: [
1504
- showCopied && /* @__PURE__ */ jsx3("span", { css: styles3.tooltip, children: "Copied!" }),
1505
- /* @__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: "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" }) })
1506
- ]
1483
+ 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: "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" }) })
1507
1484
  }
1508
1485
  ),
1509
1486
  /* @__PURE__ */ jsx3(
@@ -1682,11 +1659,16 @@ var styles4 = {
1682
1659
  cursor: pointer;
1683
1660
  display: block;
1684
1661
  `,
1662
+ actionsCell: css4`
1663
+ display: flex;
1664
+ align-items: center;
1665
+ justify-content: flex-end;
1666
+ gap: 8px;
1667
+ `,
1685
1668
  copyBtn: css4`
1686
- position: relative;
1687
1669
  flex-shrink: 0;
1688
- height: 28px;
1689
- width: 28px;
1670
+ height: 32px;
1671
+ width: 32px;
1690
1672
  font-size: ${fontSize.xs};
1691
1673
  color: ${colors.textSecondary};
1692
1674
  background: ${colors.surface};
@@ -1705,34 +1687,14 @@ var styles4 = {
1705
1687
  color: ${colors.text};
1706
1688
  }
1707
1689
  `,
1708
- copyIcon: css4`
1709
- width: 14px;
1710
- height: 14px;
1690
+ copyBtnFlash: css4`
1691
+ background: ${colors.successLight};
1692
+ border-color: ${colors.success};
1693
+ color: ${colors.success};
1711
1694
  `,
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
- }
1695
+ copyIcon: css4`
1696
+ width: 16px;
1697
+ height: 16px;
1736
1698
  `,
1737
1699
  nameCell: css4`
1738
1700
  display: flex;
@@ -1758,7 +1720,7 @@ var styles4 = {
1758
1720
  folderIcon: css4`
1759
1721
  width: 24px;
1760
1722
  height: 24px;
1761
- color: #f5a623;
1723
+ color: #697386;
1762
1724
  `,
1763
1725
  imagesFolderWrapper: css4`
1764
1726
  width: 48px;
@@ -1853,19 +1815,18 @@ var styles4 = {
1853
1815
  color: ${colors.textMuted};
1854
1816
  `,
1855
1817
  openBtn: css4`
1856
- height: 28px;
1857
- font-size: ${fontSize.xs};
1818
+ height: 32px;
1819
+ font-size: ${fontSize.sm};
1858
1820
  font-weight: 500;
1859
1821
  color: ${colors.primary};
1860
1822
  background: ${colors.surface};
1861
1823
  border: 1px solid ${colors.border};
1862
- padding: 0 12px;
1824
+ padding: 0 14px;
1863
1825
  cursor: pointer;
1864
1826
  border-radius: 4px;
1865
1827
  transition: all 0.15s ease;
1866
1828
  display: inline-flex;
1867
1829
  align-items: center;
1868
- margin-left: auto;
1869
1830
 
1870
1831
  &:hover {
1871
1832
  background-color: ${colors.primaryLight};
@@ -2048,29 +2009,28 @@ function ListRow({ item, isSelected, onClick, onOpen, onGenerateThumbnail }) {
2048
2009
  }
2049
2010
  ) }) : /* @__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" }) }) }),
2050
2011
  /* @__PURE__ */ jsx4("span", { css: styles4.name, title: item.name, children: truncateMiddle2(item.name) }),
2051
- /* @__PURE__ */ jsxs4(
2052
- "button",
2053
- {
2054
- css: styles4.copyBtn,
2055
- onClick: handleCopyPath,
2056
- title: "Copy file path",
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: "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" }) })
2060
- ]
2061
- }
2062
- ),
2063
- /* @__PURE__ */ jsx4(
2064
- "button",
2065
- {
2066
- css: styles4.openBtn,
2067
- onClick: (e) => {
2068
- e.stopPropagation();
2069
- onOpen();
2070
- },
2071
- children: "Open"
2072
- }
2073
- )
2012
+ /* @__PURE__ */ jsxs4("div", { css: styles4.actionsCell, children: [
2013
+ /* @__PURE__ */ jsx4(
2014
+ "button",
2015
+ {
2016
+ css: [styles4.copyBtn, showCopied && styles4.copyBtnFlash],
2017
+ onClick: handleCopyPath,
2018
+ title: "Copy file path",
2019
+ 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: "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" }) })
2020
+ }
2021
+ ),
2022
+ /* @__PURE__ */ jsx4(
2023
+ "button",
2024
+ {
2025
+ css: styles4.openBtn,
2026
+ onClick: (e) => {
2027
+ e.stopPropagation();
2028
+ onOpen();
2029
+ },
2030
+ children: "Open"
2031
+ }
2032
+ )
2033
+ ] })
2074
2034
  ] }) }),
2075
2035
  /* @__PURE__ */ jsx4("td", { css: [styles4.td, styles4.meta], children: isFolder ? item.fileCount !== void 0 ? `${item.fileCount} files` : "--" : item.size !== void 0 ? formatFileSize2(item.size) : "--" }),
2076
2036
  /* @__PURE__ */ jsx4("td", { css: [styles4.td, styles4.meta], children: isFolder ? item.totalSize !== void 0 ? formatFileSize2(item.totalSize) : "--" : item.dimensions ? `${item.dimensions.width}x${item.dimensions.height}` : "--" }),
@@ -2178,29 +2138,12 @@ var styles5 = {
2178
2138
  height: 20px;
2179
2139
  color: ${colors.textSecondary};
2180
2140
  `,
2181
- tooltip: css5`
2182
- position: absolute;
2183
- bottom: 100%;
2184
- left: 50%;
2185
- transform: translateX(-50%);
2186
- background: #1a1f36;
2187
- color: white;
2188
- padding: 4px 8px;
2189
- border-radius: 4px;
2190
- font-size: 12px;
2191
- white-space: nowrap;
2192
- margin-bottom: 6px;
2193
- pointer-events: none;
2194
- z-index: 100;
2141
+ copyBtnFlash: css5`
2142
+ background: ${colors.successLight};
2143
+ border-color: ${colors.success};
2195
2144
 
2196
- &::after {
2197
- content: '';
2198
- position: absolute;
2199
- top: 100%;
2200
- left: 50%;
2201
- transform: translateX(-50%);
2202
- border: 4px solid transparent;
2203
- border-top-color: #1a1f36;
2145
+ svg {
2146
+ color: ${colors.success};
2204
2147
  }
2205
2148
  `,
2206
2149
  mainCloseBtn: css5`
@@ -2453,10 +2396,7 @@ function StudioDetailView() {
2453
2396
  /* @__PURE__ */ jsx5("div", { css: styles5.overlay, onClick: handleClose, children: /* @__PURE__ */ jsxs5("div", { css: styles5.container, onClick: (e) => e.stopPropagation(), children: [
2454
2397
  /* @__PURE__ */ jsxs5("div", { css: styles5.main, children: [
2455
2398
  /* @__PURE__ */ jsxs5("div", { css: styles5.headerButtons, children: [
2456
- /* @__PURE__ */ jsxs5("button", { css: styles5.copyBtn, onClick: handleCopyPath, title: "Copy file path", children: [
2457
- showCopied && /* @__PURE__ */ jsx5("span", { css: styles5.tooltip, children: "Copied!" }),
2458
- /* @__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: "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" }) })
2459
- ] }),
2399
+ /* @__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: "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" }) }) }),
2460
2400
  /* @__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" }) }) })
2461
2401
  ] }),
2462
2402
  /* @__PURE__ */ jsx5("div", { css: styles5.mediaWrapper, children: renderMedia() })
@@ -2649,29 +2589,12 @@ var styles6 = {
2649
2589
  border-color: ${colors.borderHover};
2650
2590
  }
2651
2591
  `,
2652
- tooltip: css6`
2653
- position: absolute;
2654
- bottom: 100%;
2655
- left: 50%;
2656
- transform: translateX(-50%);
2657
- background: #1a1f36;
2658
- color: white;
2659
- padding: 4px 8px;
2660
- border-radius: 4px;
2661
- font-size: 12px;
2662
- white-space: nowrap;
2663
- margin-bottom: 6px;
2664
- pointer-events: none;
2665
- z-index: 100;
2592
+ copyBtnFlash: css6`
2593
+ background: ${colors.successLight};
2594
+ border-color: ${colors.success};
2666
2595
 
2667
- &::after {
2668
- content: '';
2669
- position: absolute;
2670
- top: 100%;
2671
- left: 50%;
2672
- transform: translateX(-50%);
2673
- border: 4px solid transparent;
2674
- border-top-color: #1a1f36;
2596
+ svg {
2597
+ color: ${colors.success};
2675
2598
  }
2676
2599
  `,
2677
2600
  copyIcon: css6`
@@ -2804,10 +2727,7 @@ function SettingsPanel({ onClose }) {
2804
2727
  /* @__PURE__ */ jsx6("h3", { css: styles6.sectionTitle, children: "Cloudflare R2" }),
2805
2728
  /* @__PURE__ */ jsx6("p", { css: styles6.description, children: "Configure in .env.local file:" }),
2806
2729
  /* @__PURE__ */ jsxs6("div", { css: styles6.codeWrapper, children: [
2807
- /* @__PURE__ */ jsxs6("button", { css: styles6.copyBtn, onClick: handleCopy, title: "Copy to clipboard", children: [
2808
- copied && /* @__PURE__ */ jsx6("span", { css: styles6.tooltip, children: "Copied!" }),
2809
- 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" }) })
2810
- ] }),
2730
+ /* @__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" }) }) }),
2811
2731
  /* @__PURE__ */ jsxs6("div", { css: styles6.code, children: [
2812
2732
  /* @__PURE__ */ jsx6("p", { css: styles6.codeLine, children: "CLOUDFLARE_R2_ACCOUNT_ID=abc123def456ghi789" }),
2813
2733
  /* @__PURE__ */ jsx6("p", { css: styles6.codeLine, children: "CLOUDFLARE_R2_ACCESS_KEY_ID=your_access_key_id_here" }),
@@ -3138,4 +3058,4 @@ export {
3138
3058
  StudioUI,
3139
3059
  StudioUI_default as default
3140
3060
  };
3141
- //# sourceMappingURL=StudioUI-K7RC2ZJE.mjs.map
3061
+ //# sourceMappingURL=StudioUI-NYRJEXTT.mjs.map