@gallop.software/studio 0.1.41 → 0.1.42

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.
@@ -1113,6 +1113,7 @@ var styles3 = {
1113
1113
  border-radius: 4px;
1114
1114
  `,
1115
1115
  content: css3`
1116
+ position: relative;
1116
1117
  aspect-ratio: 1;
1117
1118
  display: flex;
1118
1119
  align-items: center;
@@ -1198,21 +1199,19 @@ var styles3 = {
1198
1199
  labelRow: css3`
1199
1200
  display: flex;
1200
1201
  flex-direction: column;
1201
- gap: 6px;
1202
+ gap: 2px;
1202
1203
  `,
1203
1204
  labelText: css3`
1204
1205
  flex: 1;
1205
1206
  min-width: 0;
1206
1207
  `,
1207
- buttonRow: css3`
1208
- display: flex;
1209
- gap: 6px;
1210
- `,
1211
1208
  copyBtn: css3`
1212
- position: relative;
1213
- flex-shrink: 0;
1214
- height: 28px;
1215
- width: 28px;
1209
+ position: absolute;
1210
+ top: 8px;
1211
+ right: 8px;
1212
+ z-index: 10;
1213
+ height: 24px;
1214
+ width: 24px;
1216
1215
  font-size: ${fontSize.xs};
1217
1216
  color: ${colors.textSecondary};
1218
1217
  background: ${colors.surface};
@@ -1221,9 +1220,10 @@ var styles3 = {
1221
1220
  cursor: pointer;
1222
1221
  border-radius: 4px;
1223
1222
  transition: all 0.15s ease;
1224
- display: inline-flex;
1223
+ display: flex;
1225
1224
  align-items: center;
1226
1225
  justify-content: center;
1226
+ box-shadow: 0 1px 2px rgba(0, 0, 0, 0.08);
1227
1227
 
1228
1228
  &:hover {
1229
1229
  background: ${colors.surfaceHover};
@@ -1232,8 +1232,8 @@ var styles3 = {
1232
1232
  }
1233
1233
  `,
1234
1234
  copyIcon: css3`
1235
- width: 14px;
1236
- height: 14px;
1235
+ width: 12px;
1236
+ height: 12px;
1237
1237
  `,
1238
1238
  tooltip: css3`
1239
1239
  position: absolute;
@@ -1260,41 +1260,45 @@ var styles3 = {
1260
1260
  border-top-color: #1a1f36;
1261
1261
  }
1262
1262
  `,
1263
- name: css3`
1264
- font-size: ${fontSize.sm};
1265
- font-weight: 500;
1266
- color: ${colors.text};
1267
- white-space: nowrap;
1268
- overflow: hidden;
1269
- text-overflow: ellipsis;
1270
- margin: 0;
1271
- letter-spacing: -0.01em;
1272
- `,
1273
- size: css3`
1274
- font-size: ${fontSize.xs};
1275
- color: ${colors.textMuted};
1276
- margin: 2px 0 0 0;
1277
- `,
1278
1263
  openBtn: css3`
1279
- flex-shrink: 0;
1280
- height: 28px;
1264
+ position: absolute;
1265
+ bottom: 8px;
1266
+ right: 8px;
1267
+ z-index: 10;
1268
+ height: 24px;
1281
1269
  font-size: ${fontSize.xs};
1282
1270
  font-weight: 500;
1283
1271
  color: ${colors.primary};
1284
1272
  background: ${colors.surface};
1285
1273
  border: 1px solid ${colors.border};
1286
- padding: 0 10px;
1274
+ padding: 0 8px;
1287
1275
  cursor: pointer;
1288
1276
  border-radius: 4px;
1289
1277
  transition: all 0.15s ease;
1290
- display: inline-flex;
1278
+ display: flex;
1291
1279
  align-items: center;
1280
+ box-shadow: 0 1px 2px rgba(0, 0, 0, 0.08);
1292
1281
 
1293
1282
  &:hover {
1294
1283
  background-color: ${colors.primaryLight};
1295
1284
  border-color: ${colors.primary};
1296
1285
  }
1297
1286
  `,
1287
+ name: css3`
1288
+ font-size: ${fontSize.sm};
1289
+ font-weight: 500;
1290
+ color: ${colors.text};
1291
+ white-space: nowrap;
1292
+ overflow: hidden;
1293
+ text-overflow: ellipsis;
1294
+ margin: 0;
1295
+ letter-spacing: -0.01em;
1296
+ `,
1297
+ size: css3`
1298
+ font-size: ${fontSize.xs};
1299
+ color: ${colors.textMuted};
1300
+ margin: 2px 0 0 0;
1301
+ `,
1298
1302
  selectAllRow: css3`
1299
1303
  display: flex;
1300
1304
  align-items: center;
@@ -1489,67 +1493,65 @@ function GridItem({ item, isSelected, onClick, onOpen, onGenerateThumbnail }) {
1489
1493
  }
1490
1494
  ),
1491
1495
  item.cdnSynced && /* @__PURE__ */ jsx3("span", { css: styles3.cdnBadge, children: "CDN" }),
1492
- /* @__PURE__ */ jsx3("div", { css: styles3.content, children: isFolder ? isImagesFolder ? /* @__PURE__ */ jsxs3("div", { css: styles3.imagesFolderWrapper, children: [
1493
- /* @__PURE__ */ jsx3("svg", { css: styles3.imagesFolderIcon, fill: "currentColor", viewBox: "0 0 24 24", children: /* @__PURE__ */ jsx3("path", { d: "M10 4H4a2 2 0 00-2 2v12a2 2 0 002 2h16a2 2 0 002-2V8a2 2 0 00-2-2h-8l-2-2z" }) }),
1494
- /* @__PURE__ */ jsx3("svg", { css: styles3.lockIcon, fill: "currentColor", viewBox: "0 0 20 20", children: /* @__PURE__ */ jsx3("path", { fillRule: "evenodd", d: "M5 9V7a5 5 0 0110 0v2a2 2 0 012 2v5a2 2 0 01-2 2H5a2 2 0 01-2-2v-5a2 2 0 012-2zm8-2v2H7V7a3 3 0 016 0z", clipRule: "evenodd" }) })
1495
- ] }) : /* @__PURE__ */ jsx3("svg", { css: styles3.folderIcon, fill: "currentColor", viewBox: "0 0 24 24", children: /* @__PURE__ */ jsx3("path", { d: "M10 4H4a2 2 0 00-2 2v12a2 2 0 002 2h16a2 2 0 002-2V8a2 2 0 00-2-2h-8l-2-2z" }) }) : isImage && item.hasThumbnail ? /* @__PURE__ */ jsx3(
1496
- "img",
1497
- {
1498
- css: styles3.image,
1499
- src: item.thumbnail,
1500
- alt: item.name,
1501
- loading: "lazy"
1502
- }
1503
- ) : isImage && !item.hasThumbnail ? /* @__PURE__ */ jsxs3(
1504
- "button",
1505
- {
1506
- css: styles3.noThumbnail,
1507
- onClick: (e) => {
1508
- e.stopPropagation();
1509
- onGenerateThumbnail();
1510
- },
1511
- title: "Generate thumbnail",
1512
- children: [
1513
- /* @__PURE__ */ jsx3("svg", { css: styles3.noThumbnailIcon, fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", children: /* @__PURE__ */ jsx3("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 1.5, d: "M4 16l4.586-4.586a2 2 0 012.828 0L16 16m-2-2l1.586-1.586a2 2 0 012.828 0L20 14m-6-6h.01M6 20h12a2 2 0 002-2V6a2 2 0 00-2-2H6a2 2 0 00-2 2v12a2 2 0 002 2z" }) }),
1514
- /* @__PURE__ */ jsx3("span", { css: styles3.noThumbnailText, children: "Generate" })
1515
- ]
1516
- }
1517
- ) : /* @__PURE__ */ jsx3("svg", { css: styles3.fileIcon, fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", children: /* @__PURE__ */ jsx3("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" }) }) }),
1518
- /* @__PURE__ */ jsx3("div", { css: styles3.label, children: /* @__PURE__ */ jsxs3("div", { css: styles3.labelRow, children: [
1519
- /* @__PURE__ */ jsxs3("div", { css: styles3.labelText, children: [
1520
- /* @__PURE__ */ jsx3("p", { css: styles3.name, title: item.name, children: truncateMiddle(item.name) }),
1521
- isFolder ? /* @__PURE__ */ jsxs3("p", { css: styles3.size, children: [
1522
- item.fileCount !== void 0 ? `${item.fileCount} files` : "",
1523
- item.fileCount !== void 0 && item.totalSize !== void 0 ? " \xB7 " : "",
1524
- item.totalSize !== void 0 ? formatFileSize(item.totalSize) : ""
1525
- ] }) : item.size !== void 0 && /* @__PURE__ */ jsx3("p", { css: styles3.size, children: formatFileSize(item.size) })
1526
- ] }),
1527
- /* @__PURE__ */ jsxs3("div", { css: styles3.buttonRow, children: [
1528
- /* @__PURE__ */ jsxs3(
1529
- "button",
1530
- {
1531
- css: styles3.copyBtn,
1532
- onClick: handleCopyPath,
1533
- title: "Copy file path",
1534
- children: [
1535
- showCopied && /* @__PURE__ */ jsx3("span", { css: styles3.tooltip, children: "Copied!" }),
1536
- /* @__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" }) })
1537
- ]
1538
- }
1539
- ),
1540
- /* @__PURE__ */ jsx3(
1541
- "button",
1542
- {
1543
- css: styles3.openBtn,
1544
- onClick: (e) => {
1545
- e.stopPropagation();
1546
- onOpen();
1547
- },
1548
- children: "Open"
1549
- }
1550
- )
1551
- ] })
1552
- ] }) })
1496
+ /* @__PURE__ */ jsxs3("div", { css: styles3.content, children: [
1497
+ /* @__PURE__ */ jsxs3(
1498
+ "button",
1499
+ {
1500
+ css: styles3.copyBtn,
1501
+ onClick: handleCopyPath,
1502
+ 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
+ ]
1507
+ }
1508
+ ),
1509
+ /* @__PURE__ */ jsx3(
1510
+ "button",
1511
+ {
1512
+ css: styles3.openBtn,
1513
+ onClick: (e) => {
1514
+ e.stopPropagation();
1515
+ onOpen();
1516
+ },
1517
+ children: "Open"
1518
+ }
1519
+ ),
1520
+ isFolder ? isImagesFolder ? /* @__PURE__ */ jsxs3("div", { css: styles3.imagesFolderWrapper, children: [
1521
+ /* @__PURE__ */ jsx3("svg", { css: styles3.imagesFolderIcon, fill: "currentColor", viewBox: "0 0 24 24", children: /* @__PURE__ */ jsx3("path", { d: "M10 4H4a2 2 0 00-2 2v12a2 2 0 002 2h16a2 2 0 002-2V8a2 2 0 00-2-2h-8l-2-2z" }) }),
1522
+ /* @__PURE__ */ jsx3("svg", { css: styles3.lockIcon, fill: "currentColor", viewBox: "0 0 20 20", children: /* @__PURE__ */ jsx3("path", { fillRule: "evenodd", d: "M5 9V7a5 5 0 0110 0v2a2 2 0 012 2v5a2 2 0 01-2 2H5a2 2 0 01-2-2v-5a2 2 0 012-2zm8-2v2H7V7a3 3 0 016 0z", clipRule: "evenodd" }) })
1523
+ ] }) : /* @__PURE__ */ jsx3("svg", { css: styles3.folderIcon, fill: "currentColor", viewBox: "0 0 24 24", children: /* @__PURE__ */ jsx3("path", { d: "M10 4H4a2 2 0 00-2 2v12a2 2 0 002 2h16a2 2 0 002-2V8a2 2 0 00-2-2h-8l-2-2z" }) }) : isImage && item.hasThumbnail ? /* @__PURE__ */ jsx3(
1524
+ "img",
1525
+ {
1526
+ css: styles3.image,
1527
+ src: item.thumbnail,
1528
+ alt: item.name,
1529
+ loading: "lazy"
1530
+ }
1531
+ ) : isImage && !item.hasThumbnail ? /* @__PURE__ */ jsxs3(
1532
+ "button",
1533
+ {
1534
+ css: styles3.noThumbnail,
1535
+ onClick: (e) => {
1536
+ e.stopPropagation();
1537
+ onGenerateThumbnail();
1538
+ },
1539
+ title: "Generate thumbnail",
1540
+ children: [
1541
+ /* @__PURE__ */ jsx3("svg", { css: styles3.noThumbnailIcon, fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", children: /* @__PURE__ */ jsx3("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 1.5, d: "M4 16l4.586-4.586a2 2 0 012.828 0L16 16m-2-2l1.586-1.586a2 2 0 012.828 0L20 14m-6-6h.01M6 20h12a2 2 0 002-2V6a2 2 0 00-2-2H6a2 2 0 00-2 2v12a2 2 0 002 2z" }) }),
1542
+ /* @__PURE__ */ jsx3("span", { css: styles3.noThumbnailText, children: "Generate" })
1543
+ ]
1544
+ }
1545
+ ) : /* @__PURE__ */ jsx3("svg", { css: styles3.fileIcon, fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", children: /* @__PURE__ */ jsx3("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" }) })
1546
+ ] }),
1547
+ /* @__PURE__ */ jsx3("div", { css: styles3.label, children: /* @__PURE__ */ jsx3("div", { css: styles3.labelRow, children: /* @__PURE__ */ jsxs3("div", { css: styles3.labelText, children: [
1548
+ /* @__PURE__ */ jsx3("p", { css: styles3.name, title: item.name, children: truncateMiddle(item.name) }),
1549
+ isFolder ? /* @__PURE__ */ jsxs3("p", { css: styles3.size, children: [
1550
+ item.fileCount !== void 0 ? `${item.fileCount} files` : "",
1551
+ item.fileCount !== void 0 && item.totalSize !== void 0 ? " \xB7 " : "",
1552
+ item.totalSize !== void 0 ? formatFileSize(item.totalSize) : ""
1553
+ ] }) : item.size !== void 0 && /* @__PURE__ */ jsx3("p", { css: styles3.size, children: formatFileSize(item.size) })
1554
+ ] }) }) })
1553
1555
  ]
1554
1556
  }
1555
1557
  );
@@ -3136,4 +3138,4 @@ export {
3136
3138
  StudioUI,
3137
3139
  StudioUI_default as default
3138
3140
  };
3139
- //# sourceMappingURL=StudioUI-ENDN62RA.mjs.map
3141
+ //# sourceMappingURL=StudioUI-K7RC2ZJE.mjs.map