@gallop.software/studio 1.5.1 → 1.5.3

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.
@@ -3120,6 +3120,47 @@ var styles6 = {
3120
3120
  color: #f59e0b;
3121
3121
  transform: translateY(1px);
3122
3122
  `,
3123
+ folderStats: _react3.css`
3124
+ display: flex;
3125
+ align-items: center;
3126
+ gap: 8px;
3127
+ margin-left: auto;
3128
+ padding-left: 8px;
3129
+ `,
3130
+ folderStat: _react3.css`
3131
+ display: flex;
3132
+ align-items: center;
3133
+ gap: 3px;
3134
+ font-size: 11px;
3135
+ color: ${_chunkN6JYTJCBjs.colors.textSecondary};
3136
+ `,
3137
+ folderStatIcon: _react3.css`
3138
+ width: 14px;
3139
+ height: 14px;
3140
+ `,
3141
+ folderStatIconCloud: _react3.css`
3142
+ width: 14px;
3143
+ height: 14px;
3144
+ color: #f59e0b;
3145
+ `,
3146
+ folderStatIconLocal: _react3.css`
3147
+ width: 14px;
3148
+ height: 14px;
3149
+ color: ${_chunkN6JYTJCBjs.colors.textSecondary};
3150
+ `,
3151
+ folderStatIconRemote: _react3.css`
3152
+ width: 14px;
3153
+ height: 14px;
3154
+ color: #ef4444;
3155
+ `,
3156
+ storedLabel: _react3.css`
3157
+ display: flex;
3158
+ align-items: center;
3159
+ gap: 4px;
3160
+ font-size: 12px;
3161
+ color: #f59e0b;
3162
+ margin: 0;
3163
+ `,
3123
3164
  globeIcon: _react3.css`
3124
3165
  width: 18px;
3125
3166
  height: 18px;
@@ -3351,8 +3392,6 @@ function GridItem({ item, isSelected, onClick, onOpen, onGenerateThumbnail }) {
3351
3392
  }
3352
3393
  ),
3353
3394
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { css: styles6.content, children: [
3354
- item.cdnPushed && !item.isRemote && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { css: styles6.statusBtn, title: "Pushed to CDN", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "svg", { css: styles6.cloudIcon, fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M3 15a4 4 0 004 4h9a5 5 0 10-.1-9.999 5.002 5.002 0 10-9.78 2.096A4.001 4.001 0 003 15z" }) }) }),
3355
- item.isRemote && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { css: styles6.statusBtn, title: "Remote image", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "svg", { css: styles6.globeIcon, fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M21 12a9 9 0 01-9 9m9-9a9 9 0 00-9-9m9 9H3m9 9a9 9 0 01-9-9m9 9c1.657 0 3-4.03 3-9s-1.343-9-3-9m0 18c-1.657 0-3-4.03-3-9s1.343-9 3-9m-9 9a9 9 0 019-9" }) }) }),
3356
3395
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
3357
3396
  "button",
3358
3397
  {
@@ -3391,10 +3430,26 @@ function GridItem({ item, isSelected, onClick, onOpen, onGenerateThumbnail }) {
3391
3430
  ] }),
3392
3431
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { css: styles6.label, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { css: styles6.labelRow, children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { css: styles6.labelText, children: [
3393
3432
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { css: styles6.name, title: item.name, children: item.name }),
3394
- isFolder ? /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "p", { css: styles6.size, children: [
3395
- item.fileCount !== void 0 ? `${item.fileCount} files` : "",
3396
- item.fileCount !== void 0 && item.totalSize !== void 0 ? " \xB7 " : "",
3397
- item.totalSize !== void 0 ? formatFileSize(item.totalSize) : ""
3433
+ isFolder ? /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { css: styles6.folderStats, children: [
3434
+ item.localCount !== void 0 && item.localCount > 0 && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { css: styles6.folderStat, title: `${item.localCount} local`, children: [
3435
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "svg", { css: styles6.folderStatIconLocal, fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, 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" }) }),
3436
+ item.localCount
3437
+ ] }),
3438
+ item.cloudCount !== void 0 && item.cloudCount > 0 && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { css: styles6.folderStat, title: `${item.cloudCount} in cloud`, children: [
3439
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "svg", { css: styles6.folderStatIconCloud, fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M3 15a4 4 0 004 4h9a5 5 0 10-.1-9.999 5.002 5.002 0 10-9.78 2.096A4.001 4.001 0 003 15z" }) }),
3440
+ item.cloudCount
3441
+ ] }),
3442
+ item.remoteCount !== void 0 && item.remoteCount > 0 && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { css: styles6.folderStat, title: `${item.remoteCount} remote`, children: [
3443
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "svg", { css: styles6.folderStatIconRemote, fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M21 12a9 9 0 01-9 9m9-9a9 9 0 00-9-9m9 9H3m9 9a9 9 0 01-9-9m9 9c1.657 0 3-4.03 3-9s-1.343-9-3-9m0 18c-1.657 0-3-4.03-3-9s1.343-9 3-9m-9 9a9 9 0 019-9" }) }),
3444
+ item.remoteCount
3445
+ ] }),
3446
+ !item.localCount && !item.cloudCount && !item.remoteCount && item.fileCount !== void 0 && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { css: styles6.size, children: [
3447
+ item.fileCount,
3448
+ " files"
3449
+ ] })
3450
+ ] }) : item.cdnPushed ? /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "p", { css: styles6.storedLabel, children: [
3451
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "svg", { css: item.isRemote ? styles6.folderStatIconRemote : styles6.folderStatIconCloud, fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", children: item.isRemote ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M21 12a9 9 0 01-9 9m9-9a9 9 0 00-9-9m9 9H3m9 9a9 9 0 01-9-9m9 9c1.657 0 3-4.03 3-9s-1.343-9-3-9m0 18c-1.657 0-3-4.03-3-9s1.343-9 3-9m-9 9a9 9 0 019-9" }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M3 15a4 4 0 004 4h9a5 5 0 10-.1-9.999 5.002 5.002 0 10-9.78 2.096A4.001 4.001 0 003 15z" }) }),
3452
+ "stored"
3398
3453
  ] }) : item.size !== void 0 && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { css: styles6.size, children: formatFileSize(item.size) })
3399
3454
  ] }) }) })
3400
3455
  ]
@@ -3597,6 +3652,40 @@ var styles7 = {
3597
3652
  color: #f59e0b;
3598
3653
  transform: translateY(1px);
3599
3654
  `,
3655
+ folderStats: _react3.css`
3656
+ display: flex;
3657
+ align-items: center;
3658
+ gap: 8px;
3659
+ `,
3660
+ folderStat: _react3.css`
3661
+ display: flex;
3662
+ align-items: center;
3663
+ gap: 3px;
3664
+ font-size: 12px;
3665
+ color: ${_chunkN6JYTJCBjs.colors.textSecondary};
3666
+ `,
3667
+ folderStatIconCloud: _react3.css`
3668
+ width: 14px;
3669
+ height: 14px;
3670
+ color: #f59e0b;
3671
+ `,
3672
+ folderStatIconLocal: _react3.css`
3673
+ width: 14px;
3674
+ height: 14px;
3675
+ color: ${_chunkN6JYTJCBjs.colors.textSecondary};
3676
+ `,
3677
+ folderStatIconRemote: _react3.css`
3678
+ width: 14px;
3679
+ height: 14px;
3680
+ color: #ef4444;
3681
+ `,
3682
+ storedLabel: _react3.css`
3683
+ display: flex;
3684
+ align-items: center;
3685
+ gap: 4px;
3686
+ font-size: 12px;
3687
+ color: #f59e0b;
3688
+ `,
3600
3689
  globeIcon: _react3.css`
3601
3690
  width: 16px;
3602
3691
  height: 16px;
@@ -3910,8 +3999,6 @@ function ListRow({ item, isSelected, onClick, onOpen, onGenerateThumbnail }) {
3910
3999
  ] }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { css: styles7.folderIconWrapper, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "svg", { css: styles7.folderIcon, fill: "currentColor", viewBox: "0 0 24 24", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "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.thumbnail ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { css: styles7.thumbnailWrapper, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "img", { css: styles7.thumbnail, src: item.thumbnail, alt: item.name, loading: "lazy" }) }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { css: styles7.thumbnailWrapper, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "svg", { css: styles7.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" }) }) }),
3911
4000
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { css: styles7.name, title: item.name, children: truncateMiddle(item.name) }),
3912
4001
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { css: styles7.actionsCell, children: [
3913
- item.cdnPushed && !item.isRemote && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { css: styles7.statusBtn, title: "Pushed to CDN", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "svg", { css: styles7.cloudIcon, fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M3 15a4 4 0 004 4h9a5 5 0 10-.1-9.999 5.002 5.002 0 10-9.78 2.096A4.001 4.001 0 003 15z" }) }) }),
3914
- item.isRemote && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { css: styles7.statusBtn, title: "Remote image", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "svg", { css: styles7.globeIcon, fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M21 12a9 9 0 01-9 9m9-9a9 9 0 00-9-9m9 9H3m9 9a9 9 0 01-9-9m9 9c1.657 0 3-4.03 3-9s-1.343-9-3-9m0 18c-1.657 0-3-4.03-3-9s1.343-9 3-9m-9 9a9 9 0 019-9" }) }) }),
3915
4002
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
3916
4003
  "button",
3917
4004
  {
@@ -3937,7 +4024,28 @@ function ListRow({ item, isSelected, onClick, onOpen, onGenerateThumbnail }) {
3937
4024
  )
3938
4025
  ] })
3939
4026
  ] }) }),
3940
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "td", { css: [styles7.td, styles7.meta], children: isFolder ? item.fileCount !== void 0 ? `${item.fileCount} files` : "--" : item.size !== void 0 ? formatFileSize2(item.size) : "--" }),
4027
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "td", { css: [styles7.td, styles7.meta], children: isFolder ? /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { css: styles7.folderStats, children: [
4028
+ item.localCount !== void 0 && item.localCount > 0 && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { css: styles7.folderStat, title: `${item.localCount} local`, children: [
4029
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "svg", { css: styles7.folderStatIconLocal, fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, 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" }) }),
4030
+ item.localCount
4031
+ ] }),
4032
+ item.cloudCount !== void 0 && item.cloudCount > 0 && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { css: styles7.folderStat, title: `${item.cloudCount} in cloud`, children: [
4033
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "svg", { css: styles7.folderStatIconCloud, fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M3 15a4 4 0 004 4h9a5 5 0 10-.1-9.999 5.002 5.002 0 10-9.78 2.096A4.001 4.001 0 003 15z" }) }),
4034
+ item.cloudCount
4035
+ ] }),
4036
+ item.remoteCount !== void 0 && item.remoteCount > 0 && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { css: styles7.folderStat, title: `${item.remoteCount} remote`, children: [
4037
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "svg", { css: styles7.folderStatIconRemote, fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M21 12a9 9 0 01-9 9m9-9a9 9 0 00-9-9m9 9H3m9 9a9 9 0 01-9-9m9 9c1.657 0 3-4.03 3-9s-1.343-9-3-9m0 18c-1.657 0-3-4.03-3-9s1.343-9 3-9m-9 9a9 9 0 019-9" }) }),
4038
+ item.remoteCount
4039
+ ] }),
4040
+ !item.localCount && !item.cloudCount && !item.remoteCount && item.fileCount !== void 0 && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { children: [
4041
+ item.fileCount,
4042
+ " files"
4043
+ ] }),
4044
+ !item.localCount && !item.cloudCount && !item.remoteCount && item.fileCount === void 0 && "--"
4045
+ ] }) : item.cdnPushed ? /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { css: styles7.storedLabel, children: [
4046
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "svg", { css: item.isRemote ? styles7.folderStatIconRemote : styles7.folderStatIconCloud, fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", children: item.isRemote ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M21 12a9 9 0 01-9 9m9-9a9 9 0 00-9-9m9 9H3m9 9a9 9 0 01-9-9m9 9c1.657 0 3-4.03 3-9s-1.343-9-3-9m0 18c-1.657 0-3-4.03-3-9s1.343-9 3-9m-9 9a9 9 0 019-9" }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M3 15a4 4 0 004 4h9a5 5 0 10-.1-9.999 5.002 5.002 0 10-9.78 2.096A4.001 4.001 0 003 15z" }) }),
4047
+ "stored"
4048
+ ] }) : item.size !== void 0 ? formatFileSize2(item.size) : "--" }),
3941
4049
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "td", { css: [styles7.td, styles7.meta], children: isFolder ? item.totalSize !== void 0 ? formatFileSize2(item.totalSize) : "--" : item.dimensions ? `${item.dimensions.width}x${item.dimensions.height}` : "--" }),
3942
4050
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "td", { css: styles7.td, children: item.cdnPushed ? item.isRemote ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { css: styles7.cdnBadgeRemote, children: "Remote" }) : /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { css: styles7.cdnBadge, children: [
3943
4051
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "svg", { css: styles7.cdnIcon, fill: "currentColor", viewBox: "0 0 20 20", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "path", { fillRule: "evenodd", d: "M16.707 5.293a1 1 0 010 1.414l-8 8a1 1 0 01-1.414 0l-4-4a1 1 0 011.414-1.414L8 12.586l7.293-7.293a1 1 0 011.414 0z", clipRule: "evenodd" }) }),
@@ -6221,4 +6329,4 @@ var StudioUI_default = StudioUI;
6221
6329
 
6222
6330
 
6223
6331
  exports.StudioUI = StudioUI; exports.default = StudioUI_default;
6224
- //# sourceMappingURL=StudioUI-GULMXZQF.js.map
6332
+ //# sourceMappingURL=StudioUI-U5BEIRJP.js.map