@openrails/contentkit-ui 0.104.0-rc.1 → 0.104.0-rc.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.
- package/README.md +6 -6
- package/dist/client/beacons.js +4 -1
- package/dist/client/beacons.js.map +1 -1
- package/dist/client/contents.d.ts +9 -1
- package/dist/client/contents.js +73 -55
- package/dist/client/contents.js.map +1 -1
- package/dist/client/discovery.d.ts +6 -2
- package/dist/client/discovery.js +1 -1
- package/dist/client/discovery.js.map +1 -1
- package/dist/client/generated/error-codes.d.ts +1 -1
- package/dist/client/generated/error-codes.js +4 -0
- package/dist/client/generated/error-codes.js.map +1 -1
- package/dist/client/generated/routes.d.ts +43 -30
- package/dist/client/generated/routes.js +70 -63
- package/dist/client/generated/routes.js.map +1 -1
- package/dist/client/generated/wire.d.ts +36 -74
- package/dist/client/generated/wire.js.map +1 -1
- package/dist/client/index.d.ts +1 -1
- package/dist/client/media/windows.d.ts +2 -0
- package/dist/client/media/windows.js +4 -1
- package/dist/client/media/windows.js.map +1 -1
- package/dist/client/stats.d.ts +4 -20
- package/dist/client/stats.js +0 -11
- package/dist/client/stats.js.map +1 -1
- package/dist/client/versions.d.ts +8 -6
- package/dist/client/versions.js +15 -10
- package/dist/client/versions.js.map +1 -1
- package/dist/components/admin/bulk-drafts.d.ts +17 -0
- package/dist/components/admin/bulk-drafts.js +41 -0
- package/dist/components/admin/bulk-drafts.js.map +1 -0
- package/dist/components/admin/content-admin.d.ts +1 -1
- package/dist/components/admin/content-admin.js.map +1 -1
- package/dist/components/admin/content-manager.d.ts +11 -3
- package/dist/components/admin/content-manager.js +739 -380
- package/dist/components/admin/content-manager.js.map +1 -1
- package/dist/components/admin/group-manager.d.ts +8 -3
- package/dist/components/admin/group-manager.js +218 -146
- package/dist/components/admin/group-manager.js.map +1 -1
- package/dist/components/admin/page-notices.d.ts +16 -0
- package/dist/components/admin/page-notices.js +113 -0
- package/dist/components/admin/page-notices.js.map +1 -0
- package/dist/components/admin/page-picker.d.ts +38 -0
- package/dist/components/admin/page-picker.js +159 -0
- package/dist/components/admin/page-picker.js.map +1 -0
- package/dist/components/admin/reader-content-editor.js +537 -500
- package/dist/components/admin/reader-content-editor.js.map +1 -1
- package/dist/components/admin/reader-manifest.js +181 -179
- package/dist/components/admin/reader-manifest.js.map +1 -1
- package/dist/components/admin/shell.d.ts +10 -2
- package/dist/components/admin/shell.js +114 -42
- package/dist/components/admin/shell.js.map +1 -1
- package/dist/components/admin/stats-dashboard.d.ts +4 -9
- package/dist/components/admin/stats-dashboard.js +300 -202
- package/dist/components/admin/stats-dashboard.js.map +1 -1
- package/dist/components/admin/upload-queue.d.ts +14 -0
- package/dist/components/admin/upload-queue.js +115 -98
- package/dist/components/admin/upload-queue.js.map +1 -1
- package/dist/components/content/card.d.ts +31 -3
- package/dist/components/content/card.js +324 -158
- package/dist/components/content/card.js.map +1 -1
- package/dist/components/content/daily-releases.js +14 -12
- package/dist/components/content/daily-releases.js.map +1 -1
- package/dist/components/content/editor-save.js +27 -25
- package/dist/components/content/editor-save.js.map +1 -1
- package/dist/components/content/editors.js +274 -253
- package/dist/components/content/editors.js.map +1 -1
- package/dist/components/content/favorites.d.ts +1 -1
- package/dist/components/content/favorites.js +36 -22
- package/dist/components/content/favorites.js.map +1 -1
- package/dist/components/content/grid.d.ts +11 -4
- package/dist/components/content/grid.js +52 -43
- package/dist/components/content/grid.js.map +1 -1
- package/dist/components/content/history.js +83 -63
- package/dist/components/content/history.js.map +1 -1
- package/dist/components/content/index.d.ts +5 -3
- package/dist/components/content/listing.d.ts +14 -3
- package/dist/components/content/listing.js +65 -56
- package/dist/components/content/listing.js.map +1 -1
- package/dist/components/content/offer-fields.js +6 -6
- package/dist/components/content/paged-grid.d.ts +10 -0
- package/dist/components/content/paged-grid.js +116 -0
- package/dist/components/content/paged-grid.js.map +1 -0
- package/dist/components/content/pagination.d.ts +19 -0
- package/dist/components/content/pagination.js +97 -0
- package/dist/components/content/pagination.js.map +1 -0
- package/dist/components/content/paywall.d.ts +9 -0
- package/dist/components/content/paywall.js +27 -3
- package/dist/components/content/paywall.js.map +1 -1
- package/dist/components/content/post-list.d.ts +37 -0
- package/dist/components/content/post-list.js +203 -0
- package/dist/components/content/post-list.js.map +1 -0
- package/dist/components/content/reader-settings.d.ts +2 -0
- package/dist/components/content/reader-settings.js +1 -1
- package/dist/components/content/reader-settings.js.map +1 -1
- package/dist/components/groups/banner.d.ts +6 -2
- package/dist/components/groups/banner.js +79 -61
- package/dist/components/groups/banner.js.map +1 -1
- package/dist/components/groups/directory.d.ts +12 -2
- package/dist/components/groups/directory.js +168 -105
- package/dist/components/groups/directory.js.map +1 -1
- package/dist/components/groups/editor.js +10 -10
- package/dist/components/groups/editor.js.map +1 -1
- package/dist/components/groups/entity-chips.d.ts +61 -0
- package/dist/components/groups/entity-chips.js +382 -0
- package/dist/components/groups/entity-chips.js.map +1 -0
- package/dist/components/groups/group-members.d.ts +29 -0
- package/dist/components/groups/group-members.js +474 -0
- package/dist/components/groups/group-members.js.map +1 -0
- package/dist/components/groups/header.js +53 -45
- package/dist/components/groups/header.js.map +1 -1
- package/dist/components/groups/index.d.ts +3 -1
- package/dist/components/groups/memberships.d.ts +3 -36
- package/dist/components/groups/memberships.js +105 -480
- package/dist/components/groups/memberships.js.map +1 -1
- package/dist/components/groups/scoped.d.ts +23 -0
- package/dist/components/groups/scoped.js +92 -0
- package/dist/components/groups/scoped.js.map +1 -0
- package/dist/components/media-folder-editor.d.ts +5 -0
- package/dist/components/media-folder-editor.js +418 -230
- package/dist/components/media-folder-editor.js.map +1 -1
- package/dist/components/social/poll.js +57 -48
- package/dist/components/social/poll.js.map +1 -1
- package/dist/components/sortable-list.d.ts +5 -1
- package/dist/components/sortable-list.js +97 -81
- package/dist/components/sortable-list.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +41 -37
- package/dist/locales/admin/de.js +78 -45
- package/dist/locales/admin/de.js.map +1 -1
- package/dist/locales/admin/en.d.ts +74 -41
- package/dist/locales/admin/en.js +78 -45
- package/dist/locales/admin/en.js.map +1 -1
- package/dist/locales/admin/es.js +78 -45
- package/dist/locales/admin/es.js.map +1 -1
- package/dist/locales/admin/ja.js +78 -45
- package/dist/locales/admin/ja.js.map +1 -1
- package/dist/locales/admin/ko.js +78 -45
- package/dist/locales/admin/ko.js.map +1 -1
- package/dist/locales/admin/zh.js +78 -45
- package/dist/locales/admin/zh.js.map +1 -1
- package/dist/locales/de.js +2 -0
- package/dist/locales/de.js.map +1 -1
- package/dist/locales/discovery/de.js +25 -1
- package/dist/locales/discovery/de.js.map +1 -1
- package/dist/locales/discovery/en.d.ts +24 -0
- package/dist/locales/discovery/en.js +25 -1
- package/dist/locales/discovery/en.js.map +1 -1
- package/dist/locales/discovery/es.js +25 -1
- package/dist/locales/discovery/es.js.map +1 -1
- package/dist/locales/discovery/ja.js +25 -1
- package/dist/locales/discovery/ja.js.map +1 -1
- package/dist/locales/discovery/ko.js +25 -1
- package/dist/locales/discovery/ko.js.map +1 -1
- package/dist/locales/discovery/zh.js +25 -1
- package/dist/locales/discovery/zh.js.map +1 -1
- package/dist/locales/en.d.ts +120 -43
- package/dist/locales/en.js +2 -0
- package/dist/locales/en.js.map +1 -1
- package/dist/locales/es.js +2 -0
- package/dist/locales/es.js.map +1 -1
- package/dist/locales/groups/de.js +22 -4
- package/dist/locales/groups/de.js.map +1 -1
- package/dist/locales/groups/en.d.ts +20 -2
- package/dist/locales/groups/en.js +22 -4
- package/dist/locales/groups/en.js.map +1 -1
- package/dist/locales/groups/es.js +22 -4
- package/dist/locales/groups/es.js.map +1 -1
- package/dist/locales/groups/ja.js +22 -4
- package/dist/locales/groups/ja.js.map +1 -1
- package/dist/locales/groups/ko.js +22 -4
- package/dist/locales/groups/ko.js.map +1 -1
- package/dist/locales/groups/zh.js +22 -4
- package/dist/locales/groups/zh.js.map +1 -1
- package/dist/locales/ja.js +2 -0
- package/dist/locales/ja.js.map +1 -1
- package/dist/locales/ko.js +2 -0
- package/dist/locales/ko.js.map +1 -1
- package/dist/locales/zh.js +2 -0
- package/dist/locales/zh.js.map +1 -1
- package/dist/react/contents.js +1 -1
- package/dist/react/contents.js.map +1 -1
- package/dist/react/discovery.d.ts +16 -0
- package/dist/react/discovery.js +69 -37
- package/dist/react/discovery.js.map +1 -1
- package/dist/react/groups.d.ts +19 -3
- package/dist/react/groups.js +49 -22
- package/dist/react/groups.js.map +1 -1
- package/dist/react/index.d.ts +6 -4
- package/dist/react/page-notices.d.ts +13 -0
- package/dist/react/page-notices.js +38 -0
- package/dist/react/page-notices.js.map +1 -0
- package/dist/react/post-reads.d.ts +23 -0
- package/dist/react/post-reads.js +90 -0
- package/dist/react/post-reads.js.map +1 -0
- package/dist/react/remembered-sort.d.ts +5 -0
- package/dist/react/remembered-sort.js +29 -0
- package/dist/react/remembered-sort.js.map +1 -0
- package/dist/react/resources.js +2 -2
- package/dist/react/resources.js.map +1 -1
- package/dist/react/stats.d.ts +3 -7
- package/dist/react/stats.js +2 -6
- package/dist/react/stats.js.map +1 -1
- package/dist/react/use-engagement.d.ts +2 -0
- package/dist/react/use-engagement.js +40 -34
- package/dist/react/use-engagement.js.map +1 -1
- package/dist/react.js +29 -27
- package/dist/styles.css +1 -1
- package/dist/urls/index.d.ts +1 -1
- package/dist/urls.js +2 -2
- package/dist/urls.js.map +1 -1
- package/package.json +1 -1
- package/dist/components/admin/page-review.d.ts +0 -13
- package/dist/components/admin/page-review.js +0 -225
- package/dist/components/admin/page-review.js.map +0 -1
- package/dist/react/page-review.d.ts +0 -14
- package/dist/react/page-review.js +0 -37
- package/dist/react/page-review.js.map +0 -1
|
@@ -1,76 +1,76 @@
|
|
|
1
1
|
import { failureError as e } from "../client/errors.js";
|
|
2
2
|
import { itemKey as t } from "../client/media/ref.js";
|
|
3
3
|
import { stem as n } from "../client/media/client.js";
|
|
4
|
-
import { acceptOf as r, ratioLabel as i } from "../client/media/rules.js";
|
|
5
|
-
import { megabytes as
|
|
6
|
-
import { useMessages as
|
|
7
|
-
import { ContentKitUiRoot as
|
|
8
|
-
import { Progress as
|
|
9
|
-
import { EncodeProgress as
|
|
10
|
-
import { isProcessing as
|
|
11
|
-
import { Alert as
|
|
12
|
-
import { Button as
|
|
13
|
-
import { progressLabel as
|
|
14
|
-
import { ImageCropDialog as
|
|
15
|
-
import { isAudioType as
|
|
16
|
-
import { useEditorCrop as
|
|
17
|
-
import { nameIn as
|
|
18
|
-
import { SortableList as
|
|
19
|
-
import { useEffect as
|
|
4
|
+
import { acceptOf as r, ratioLabel as i, ruleFor as a } from "../client/media/rules.js";
|
|
5
|
+
import { megabytes as o } from "../i18n/messages.js";
|
|
6
|
+
import { useMessages as s } from "../i18n/context.js";
|
|
7
|
+
import { ContentKitUiRoot as c } from "../scope.js";
|
|
8
|
+
import { Progress as l } from "../ui/progress.js";
|
|
9
|
+
import { EncodeProgress as u } from "./encode-progress.js";
|
|
10
|
+
import { isProcessing as d, pageRemoved as f } from "../client/media/windows.js";
|
|
11
|
+
import { Alert as p, AlertDescription as m, AlertTitle as h } from "../ui/alert.js";
|
|
12
|
+
import { Button as g } from "../ui/button.js";
|
|
13
|
+
import { progressLabel as _, progressValue as v } from "./progress.js";
|
|
14
|
+
import { ImageCropDialog as y } from "./image-crop-dialog.js";
|
|
15
|
+
import { isAudioType as b, isImageType as x, isSubtitleType as S, isVideoType as C } from "../client/gallery.js";
|
|
16
|
+
import { useEditorCrop as w } from "../react/crop.js";
|
|
17
|
+
import { nameIn as ee, thumbnailOf as T, useMediaFolder as E } from "../react/folder.js";
|
|
18
|
+
import { SortableList as D } from "./sortable-list.js";
|
|
19
|
+
import { useEffect as te, useImperativeHandle as ne, useMemo as O, useRef as re, useState as k } from "react";
|
|
20
20
|
import { Fragment as A, jsx as j, jsxs as M } from "react/jsx-runtime";
|
|
21
21
|
import { cn as N } from "cn";
|
|
22
|
-
import { Alert02Icon as P, CropIcon as F, Delete02Icon as I, Edit02Icon as L, File01Icon as R, Image01Icon as z, ImageAdd01Icon as
|
|
23
|
-
import { HugeiconsIcon as
|
|
22
|
+
import { Alert02Icon as ie, Cancel01Icon as P, CropIcon as F, Delete02Icon as I, Edit02Icon as L, File01Icon as R, Image01Icon as z, ImageAdd01Icon as ae, Loading03Icon as oe, MusicNote01Icon as se, Refresh01Icon as ce, RepeatIcon as B, Video01Icon as V } from "@hugeicons/core-free-icons";
|
|
23
|
+
import { HugeiconsIcon as H } from "@hugeicons/react";
|
|
24
24
|
//#region src/components/media-folder-editor.tsx
|
|
25
|
-
var
|
|
25
|
+
var le = [
|
|
26
26
|
"",
|
|
27
27
|
"1:1",
|
|
28
28
|
"4:5",
|
|
29
29
|
"16:9"
|
|
30
30
|
];
|
|
31
|
-
function
|
|
32
|
-
return
|
|
31
|
+
function U(e) {
|
|
32
|
+
return x(e) ? "image" : C(e) ? "video" : b(e) ? "audio" : S(e) ? "subtitle" : "file";
|
|
33
33
|
}
|
|
34
|
-
var
|
|
34
|
+
var W = {
|
|
35
35
|
image: z,
|
|
36
|
-
video:
|
|
37
|
-
audio:
|
|
36
|
+
video: V,
|
|
37
|
+
audio: se,
|
|
38
38
|
subtitle: R,
|
|
39
39
|
file: R
|
|
40
40
|
};
|
|
41
|
-
function
|
|
42
|
-
let t = new Set((e?.types ?? []).map(
|
|
41
|
+
function G(e) {
|
|
42
|
+
let t = new Set((e?.types ?? []).map(U));
|
|
43
43
|
return t.size === 1 ? [...t][0] : "file";
|
|
44
44
|
}
|
|
45
|
-
function
|
|
45
|
+
function ue(e, t) {
|
|
46
46
|
let n = [];
|
|
47
47
|
for (let r of t) {
|
|
48
48
|
if (!r.types.length) continue;
|
|
49
|
-
let t = e(`folder.kinds.${
|
|
49
|
+
let t = e(`folder.kinds.${G(r)}`), a = r.max_bytes > 0 ? e("folder.limitSize", {
|
|
50
50
|
what: t,
|
|
51
|
-
size:
|
|
51
|
+
size: o(r.max_bytes)
|
|
52
52
|
}) : t;
|
|
53
|
-
n.push(r.max ? `${
|
|
53
|
+
n.push(r.max ? `${a}, ${e("folder.limitMax", { max: r.max })}` : a), r.min_aspect && r.max_aspect && n.push(e("folder.limitAspect", {
|
|
54
54
|
min: i(r.min_aspect),
|
|
55
55
|
max: i(r.max_aspect)
|
|
56
56
|
}));
|
|
57
57
|
}
|
|
58
58
|
return n.join(" · ");
|
|
59
59
|
}
|
|
60
|
-
function
|
|
60
|
+
function de(e) {
|
|
61
61
|
if (e.folder) {
|
|
62
62
|
let { folder: n, ...r } = e;
|
|
63
|
-
return /* @__PURE__ */ j(
|
|
63
|
+
return /* @__PURE__ */ j(q, {
|
|
64
64
|
folder: n,
|
|
65
65
|
...r
|
|
66
66
|
}, n.ref ? t(n.ref) : "");
|
|
67
67
|
}
|
|
68
|
-
return /* @__PURE__ */ j(
|
|
68
|
+
return /* @__PURE__ */ j(K, { ...e }, t(e.item));
|
|
69
69
|
}
|
|
70
|
-
function
|
|
71
|
-
let { item: t, ref: n, label: r, layout: i, inputLabel: a, toolbar: o, rowActions: s, footer: c, aspects: l, confirmRemove: u, disabled: d, className: f, appearance: p,
|
|
72
|
-
return /* @__PURE__ */ j(
|
|
73
|
-
folder:
|
|
70
|
+
function K(e) {
|
|
71
|
+
let { item: t, ref: n, label: r, layout: i, inputLabel: a, toolbar: o, rowActions: s, footer: c, aspects: l, confirmRemove: u, disabled: d, className: f, appearance: p, selectedPage: m, onSelectPage: h, ...g } = e, _ = E(t, g);
|
|
72
|
+
return /* @__PURE__ */ j(q, {
|
|
73
|
+
folder: _,
|
|
74
74
|
ref: n,
|
|
75
75
|
label: r,
|
|
76
76
|
layout: i,
|
|
@@ -82,109 +82,111 @@ function Y(e) {
|
|
|
82
82
|
confirmRemove: u,
|
|
83
83
|
disabled: d,
|
|
84
84
|
className: f,
|
|
85
|
-
appearance: p
|
|
85
|
+
appearance: p,
|
|
86
|
+
selectedPage: m,
|
|
87
|
+
onSelectPage: h
|
|
86
88
|
});
|
|
87
89
|
}
|
|
88
|
-
var
|
|
90
|
+
var fe = {
|
|
89
91
|
kind: "",
|
|
90
92
|
id: ""
|
|
91
93
|
};
|
|
92
|
-
function
|
|
93
|
-
let { folder: t, ref: n, label: i, layout:
|
|
94
|
-
|
|
94
|
+
function q(e) {
|
|
95
|
+
let { folder: t, ref: n, label: i, layout: o, inputLabel: l, toolbar: u, rowActions: d, footer: f, aspects: _ = le, confirmRemove: v, disabled: b, className: S, appearance: C, selectedPage: ee, onSelectPage: T } = e, { t: E, error: O } = s(), { groups: A, queue: P, read: F, options: L } = t;
|
|
96
|
+
ne(n, () => ({
|
|
95
97
|
discard: t.discard,
|
|
96
98
|
commit: t.commit,
|
|
97
99
|
folder: t
|
|
98
100
|
}), [t]);
|
|
99
|
-
let
|
|
100
|
-
|
|
101
|
+
let R = L.commit === "auto", z = A.flatMap((e) => e.rule ? [e.rule] : []), se = r(z), ce = t.uploads.length + P.items.length + t.waiting.length + t.pending.length === 0, B = !!b, [V, W] = k(/* @__PURE__ */ new Set());
|
|
102
|
+
te(() => {
|
|
101
103
|
let e = new Set(t.uploads.map((e) => e.path));
|
|
102
|
-
|
|
104
|
+
W((t) => [...t].every((t) => e.has(t)) ? t : new Set([...t].filter((t) => e.has(t))));
|
|
103
105
|
}, [t.uploads]);
|
|
104
|
-
let [
|
|
105
|
-
client:
|
|
106
|
-
onError:
|
|
107
|
-
onSaved: () =>
|
|
108
|
-
}),
|
|
106
|
+
let [G, de] = k(null), K = w(t.ref ?? fe, G, {
|
|
107
|
+
client: L.client,
|
|
108
|
+
onError: L.onError,
|
|
109
|
+
onSaved: () => de(null)
|
|
110
|
+
}), q = G ? A.find((e) => e.files.some((e) => e.path === G))?.rule : void 0, [J, Y] = k(null), X = re(null), [Z, ge] = k(null), [_e, Q] = k(!1), be = {
|
|
109
111
|
onDragOver: (e) => {
|
|
110
|
-
!
|
|
112
|
+
!B && e.dataTransfer.types.includes("Files") && (e.preventDefault(), Q(!0));
|
|
111
113
|
},
|
|
112
114
|
onDragLeave: (e) => {
|
|
113
|
-
e.currentTarget.contains(e.relatedTarget) ||
|
|
115
|
+
e.currentTarget.contains(e.relatedTarget) || Q(!1);
|
|
114
116
|
},
|
|
115
117
|
onDrop: (e) => {
|
|
116
|
-
!
|
|
118
|
+
!B && e.dataTransfer.files.length && (e.preventDefault(), Q(!1), t.add(e.dataTransfer.files));
|
|
117
119
|
}
|
|
118
|
-
},
|
|
119
|
-
let e = [...
|
|
120
|
-
(
|
|
121
|
-
},
|
|
122
|
-
className: N(e ? "flex cursor-pointer flex-col items-center justify-center gap-2 rounded-lg border border-dashed border-border px-4 py-8 text-center text-sm text-muted-foreground transition-colors hover:border-primary hover:bg-primary/5" : "inline-flex h-8 cursor-pointer items-center gap-1.5 rounded-md border border-border bg-background px-2.5 text-sm font-medium transition-colors hover:bg-muted focus-within:ring-3 focus-within:ring-ring/50", e &&
|
|
120
|
+
}, xe = async () => {
|
|
121
|
+
let e = [...V];
|
|
122
|
+
(v === !1 || (v ? await v(e.length) : globalThis.confirm?.(E("folder.confirmRemove", { count: e.length })) ?? !0)) && await t.remove(e).then(() => W(/* @__PURE__ */ new Set()), () => {});
|
|
123
|
+
}, Se = P.items.filter((e) => e.status === "uploaded").length + t.pending.length, $ = o === "grid" ? A.find((e) => e.rule?.page) : void 0, Ce = (e) => !!$ && a(z, e)?.path === $.rule.path, we = P.items.filter((e) => Ce(e.path)), Te = P.items.filter((e) => !Ce(e.path)), Ee = t.pending.filter((e) => Ce(e.path)), De = t.pending.filter((e) => !Ce(e.path)), Oe = $ ? t.waiting.filter((e) => x(e.type)) : [], ke = $ ? t.waiting.filter((e) => !x(e.type)) : t.waiting, Ae = (e) => /* @__PURE__ */ M("label", {
|
|
124
|
+
className: N(e ? "flex cursor-pointer flex-col items-center justify-center gap-2 rounded-lg border border-dashed border-border px-4 py-8 text-center text-sm text-muted-foreground transition-colors hover:border-primary hover:bg-primary/5" : "inline-flex h-8 cursor-pointer items-center gap-1.5 rounded-md border border-border bg-background px-2.5 text-sm font-medium transition-colors hover:bg-muted focus-within:ring-3 focus-within:ring-ring/50", e && _e && "border-primary bg-primary/5", B && "pointer-events-none opacity-50"),
|
|
123
125
|
"data-ckui": e ? "folder-drop" : "folder-add",
|
|
124
126
|
children: [
|
|
125
|
-
/* @__PURE__ */ j(
|
|
126
|
-
icon:
|
|
127
|
+
/* @__PURE__ */ j(H, {
|
|
128
|
+
icon: ae,
|
|
127
129
|
strokeWidth: 1.75,
|
|
128
130
|
className: e ? "size-7" : "size-4"
|
|
129
131
|
}),
|
|
130
132
|
e ? /* @__PURE__ */ j("strong", {
|
|
131
133
|
className: "font-medium text-foreground",
|
|
132
|
-
children:
|
|
133
|
-
}) :
|
|
134
|
-
e &&
|
|
134
|
+
children: E("folder.drop")
|
|
135
|
+
}) : E("folder.add"),
|
|
136
|
+
e && z.length > 0 && /* @__PURE__ */ j("span", {
|
|
135
137
|
className: "text-xs",
|
|
136
|
-
children:
|
|
138
|
+
children: ue(E, z)
|
|
137
139
|
}),
|
|
138
140
|
/* @__PURE__ */ j("input", {
|
|
139
141
|
type: "file",
|
|
140
142
|
multiple: !0,
|
|
141
|
-
accept:
|
|
143
|
+
accept: se,
|
|
142
144
|
className: "sr-only",
|
|
143
|
-
disabled:
|
|
145
|
+
disabled: B,
|
|
144
146
|
"data-ckui": "file",
|
|
145
|
-
"aria-label":
|
|
147
|
+
"aria-label": l,
|
|
146
148
|
onChange: (e) => {
|
|
147
149
|
t.add([...e.target.files ?? []]), e.target.value = "";
|
|
148
150
|
}
|
|
149
151
|
})
|
|
150
152
|
]
|
|
151
153
|
});
|
|
152
|
-
return /* @__PURE__ */ M(
|
|
153
|
-
appearance:
|
|
154
|
-
className: N("grid gap-3",
|
|
154
|
+
return /* @__PURE__ */ M(c, {
|
|
155
|
+
appearance: C,
|
|
156
|
+
className: N("grid gap-3", S),
|
|
155
157
|
"data-ckui": "media-folder",
|
|
156
|
-
"data-over":
|
|
157
|
-
...
|
|
158
|
+
"data-over": _e ? "" : void 0,
|
|
159
|
+
...be,
|
|
158
160
|
children: [
|
|
159
161
|
/* @__PURE__ */ M("div", {
|
|
160
162
|
className: "flex flex-wrap items-center justify-between gap-2",
|
|
161
163
|
"data-ckui": "folder-header",
|
|
162
164
|
children: [i !== !1 && /* @__PURE__ */ j("h3", {
|
|
163
165
|
className: "text-sm font-semibold",
|
|
164
|
-
children: i ??
|
|
166
|
+
children: i ?? E("folder.label")
|
|
165
167
|
}), /* @__PURE__ */ M("div", {
|
|
166
168
|
className: "flex flex-wrap items-center gap-2",
|
|
167
|
-
children: [
|
|
169
|
+
children: [u, !ce && Ae(!1)]
|
|
168
170
|
})]
|
|
169
171
|
}),
|
|
170
|
-
|
|
171
|
-
|
|
172
|
+
ce && (F.read || !t.ref) && Ae(!0),
|
|
173
|
+
ce && !F.read && F.loading && /* @__PURE__ */ j("div", {
|
|
172
174
|
className: "flex justify-center py-6 text-muted-foreground",
|
|
173
175
|
"data-ckui": "folder-loading",
|
|
174
|
-
children: /* @__PURE__ */ j(
|
|
175
|
-
icon:
|
|
176
|
+
children: /* @__PURE__ */ j(H, {
|
|
177
|
+
icon: oe,
|
|
176
178
|
strokeWidth: 2,
|
|
177
179
|
className: "size-5 motion-safe:animate-spin"
|
|
178
180
|
})
|
|
179
181
|
}),
|
|
180
|
-
t.refused.length > 0 && /* @__PURE__ */ M(
|
|
182
|
+
t.refused.length > 0 && /* @__PURE__ */ M(p, {
|
|
181
183
|
variant: "destructive",
|
|
182
184
|
role: "alert",
|
|
183
185
|
"data-ckui": "folder-refused",
|
|
184
|
-
children: [/* @__PURE__ */ j(
|
|
185
|
-
icon:
|
|
186
|
+
children: [/* @__PURE__ */ j(H, {
|
|
187
|
+
icon: ie,
|
|
186
188
|
strokeWidth: 2
|
|
187
|
-
}), /* @__PURE__ */ M(
|
|
189
|
+
}), /* @__PURE__ */ M(m, { children: [/* @__PURE__ */ j("ul", {
|
|
188
190
|
className: "grid gap-0.5",
|
|
189
191
|
children: t.refused.map((e, t) => /* @__PURE__ */ M("li", { children: [
|
|
190
192
|
/* @__PURE__ */ j("span", {
|
|
@@ -192,94 +194,104 @@ function X(e) {
|
|
|
192
194
|
children: e.file.name
|
|
193
195
|
}),
|
|
194
196
|
": ",
|
|
195
|
-
|
|
197
|
+
O(e.error)
|
|
196
198
|
] }, t))
|
|
197
|
-
}), /* @__PURE__ */ j(
|
|
199
|
+
}), /* @__PURE__ */ j(g, {
|
|
198
200
|
variant: "outline",
|
|
199
201
|
size: "xs",
|
|
200
202
|
className: "mt-1 w-fit",
|
|
201
203
|
onClick: t.dismiss,
|
|
202
|
-
children:
|
|
204
|
+
children: E("folder.dismiss")
|
|
203
205
|
})] })]
|
|
204
206
|
}),
|
|
205
|
-
|
|
207
|
+
P.blocked && /* @__PURE__ */ M(p, {
|
|
206
208
|
variant: "destructive",
|
|
207
209
|
role: "alert",
|
|
208
210
|
"data-ckui": "folder-paused",
|
|
209
211
|
children: [
|
|
210
|
-
/* @__PURE__ */ j(
|
|
211
|
-
icon:
|
|
212
|
+
/* @__PURE__ */ j(H, {
|
|
213
|
+
icon: ie,
|
|
212
214
|
strokeWidth: 2
|
|
213
215
|
}),
|
|
214
|
-
/* @__PURE__ */ j(
|
|
215
|
-
/* @__PURE__ */ M(
|
|
216
|
+
/* @__PURE__ */ j(h, { children: E("folder.paused") }),
|
|
217
|
+
/* @__PURE__ */ M(m, { children: [O(P.blocked), /* @__PURE__ */ j(g, {
|
|
216
218
|
variant: "outline",
|
|
217
219
|
size: "xs",
|
|
218
220
|
className: "mt-1 w-fit",
|
|
219
|
-
onClick: () =>
|
|
220
|
-
children:
|
|
221
|
+
onClick: () => P.start(),
|
|
222
|
+
children: E("folder.resume")
|
|
221
223
|
})] })
|
|
222
224
|
]
|
|
223
225
|
}),
|
|
224
|
-
t.error && /* @__PURE__ */ M(
|
|
226
|
+
t.error && /* @__PURE__ */ M(p, {
|
|
225
227
|
variant: "destructive",
|
|
226
228
|
role: "alert",
|
|
227
229
|
"data-ckui": "folder-error",
|
|
228
|
-
children: [/* @__PURE__ */ j(
|
|
229
|
-
icon:
|
|
230
|
+
children: [/* @__PURE__ */ j(H, {
|
|
231
|
+
icon: ie,
|
|
230
232
|
strokeWidth: 2
|
|
231
|
-
}), /* @__PURE__ */ j(
|
|
233
|
+
}), /* @__PURE__ */ j(m, { children: O(t.error) })]
|
|
232
234
|
}),
|
|
233
|
-
|
|
235
|
+
V.size > 0 && /* @__PURE__ */ M("div", {
|
|
234
236
|
className: "flex flex-wrap items-center gap-2 rounded-md bg-muted px-3 py-1.5 text-sm",
|
|
235
237
|
"data-ckui": "folder-selection",
|
|
236
238
|
children: [
|
|
237
239
|
/* @__PURE__ */ j("span", {
|
|
238
240
|
className: "tabular-nums",
|
|
239
|
-
children:
|
|
241
|
+
children: E("folder.selected", { count: V.size })
|
|
240
242
|
}),
|
|
241
|
-
/* @__PURE__ */ M(
|
|
243
|
+
/* @__PURE__ */ M(g, {
|
|
242
244
|
variant: "destructive",
|
|
243
245
|
size: "xs",
|
|
244
|
-
disabled:
|
|
245
|
-
onClick: () => void
|
|
246
|
-
children: [/* @__PURE__ */ j(
|
|
246
|
+
disabled: B || t.updating,
|
|
247
|
+
onClick: () => void xe(),
|
|
248
|
+
children: [/* @__PURE__ */ j(H, {
|
|
247
249
|
icon: I,
|
|
248
250
|
strokeWidth: 2
|
|
249
|
-
}),
|
|
251
|
+
}), E("folder.removeSelected")]
|
|
250
252
|
}),
|
|
251
|
-
/* @__PURE__ */ j(
|
|
253
|
+
/* @__PURE__ */ j(g, {
|
|
252
254
|
variant: "ghost",
|
|
253
255
|
size: "xs",
|
|
254
|
-
onClick: () =>
|
|
255
|
-
children:
|
|
256
|
+
onClick: () => W(/* @__PURE__ */ new Set()),
|
|
257
|
+
children: E("folder.clearSelection")
|
|
256
258
|
})
|
|
257
259
|
]
|
|
258
260
|
}),
|
|
259
|
-
|
|
261
|
+
A.map((e) => e === $ ? e.files.length + we.length + Ee.length + Oe.length > 0 && /* @__PURE__ */ j(me, {
|
|
262
|
+
group: e,
|
|
263
|
+
folder: t,
|
|
264
|
+
disabled: B,
|
|
265
|
+
auto: R,
|
|
266
|
+
selected: ee ?? null,
|
|
267
|
+
onSelect: (e) => T?.(e),
|
|
268
|
+
queued: we,
|
|
269
|
+
pending: Ee,
|
|
270
|
+
waiting: Oe
|
|
271
|
+
}, e.path) : e.files.length ? /* @__PURE__ */ j(pe, {
|
|
260
272
|
group: e,
|
|
261
|
-
layout:
|
|
262
|
-
titled:
|
|
273
|
+
layout: o === "grid" && e.rule?.page ? "grid" : "list",
|
|
274
|
+
titled: A.length > 1,
|
|
263
275
|
folder: t,
|
|
264
|
-
disabled:
|
|
265
|
-
selected:
|
|
266
|
-
onSelect: (e, t) =>
|
|
267
|
-
renaming:
|
|
268
|
-
onRename:
|
|
269
|
-
onCrop:
|
|
276
|
+
disabled: B,
|
|
277
|
+
selected: V,
|
|
278
|
+
onSelect: (e, t) => W((n) => t ? /* @__PURE__ */ new Set([...n, e]) : new Set([...n].filter((t) => t !== e))),
|
|
279
|
+
renaming: J,
|
|
280
|
+
onRename: Y,
|
|
281
|
+
onCrop: de,
|
|
270
282
|
onReplace: (e) => {
|
|
271
|
-
|
|
283
|
+
ge(e), X.current?.click();
|
|
272
284
|
},
|
|
273
|
-
rowActions:
|
|
285
|
+
rowActions: d
|
|
274
286
|
}, e.path) : null),
|
|
275
|
-
|
|
287
|
+
ke.length > 0 && /* @__PURE__ */ j("ul", {
|
|
276
288
|
className: "grid",
|
|
277
|
-
"aria-label":
|
|
278
|
-
children:
|
|
289
|
+
"aria-label": E("folder.label"),
|
|
290
|
+
children: ke.map((e, t) => /* @__PURE__ */ M("li", {
|
|
279
291
|
className: "flex min-h-11 items-center gap-2 px-1",
|
|
280
292
|
"data-ckui": "queue-row",
|
|
281
293
|
"data-status": "waiting",
|
|
282
|
-
children: [/* @__PURE__ */ j(
|
|
294
|
+
children: [/* @__PURE__ */ j(he, { kind: U(e.type) }), /* @__PURE__ */ M("div", {
|
|
283
295
|
className: "grid min-w-0 flex-1 gap-1",
|
|
284
296
|
children: [/* @__PURE__ */ j("span", {
|
|
285
297
|
className: "truncate text-sm",
|
|
@@ -287,83 +299,83 @@ function X(e) {
|
|
|
287
299
|
}), /* @__PURE__ */ j("span", {
|
|
288
300
|
className: "text-xs text-muted-foreground",
|
|
289
301
|
"data-ckui": "queue-status",
|
|
290
|
-
children:
|
|
302
|
+
children: E("folder.queued")
|
|
291
303
|
})]
|
|
292
304
|
})]
|
|
293
305
|
}, t))
|
|
294
306
|
}),
|
|
295
|
-
|
|
307
|
+
De.length > 0 && /* @__PURE__ */ j("ul", {
|
|
296
308
|
className: "grid",
|
|
297
|
-
"aria-label":
|
|
309
|
+
"aria-label": E("folder.label"),
|
|
298
310
|
"data-ckui": "folder-pending",
|
|
299
|
-
children:
|
|
311
|
+
children: De.map((e) => /* @__PURE__ */ j(ve, {
|
|
300
312
|
file: e,
|
|
301
313
|
folder: t,
|
|
302
|
-
auto:
|
|
303
|
-
disabled:
|
|
314
|
+
auto: R,
|
|
315
|
+
disabled: B
|
|
304
316
|
}, e.path))
|
|
305
317
|
}),
|
|
306
|
-
|
|
307
|
-
items:
|
|
318
|
+
Te.length > 0 && /* @__PURE__ */ j(D, {
|
|
319
|
+
items: Te,
|
|
308
320
|
id: (e) => e.id,
|
|
309
321
|
name: (e) => e.file.name,
|
|
310
|
-
disabled:
|
|
311
|
-
label:
|
|
312
|
-
onMove: (e, t) =>
|
|
322
|
+
disabled: R || B,
|
|
323
|
+
label: E("folder.label"),
|
|
324
|
+
onMove: (e, t) => P.move(Te[e].id, P.items.indexOf(Te[t])),
|
|
313
325
|
row: (e) => ({
|
|
314
326
|
className: "flex min-h-11 items-center gap-2 px-1",
|
|
315
327
|
"data-ckui": "queue-row",
|
|
316
328
|
"data-status": e.status
|
|
317
329
|
}),
|
|
318
|
-
children: (e, n) => /* @__PURE__ */ j(
|
|
330
|
+
children: (e, n) => /* @__PURE__ */ j(ye, {
|
|
319
331
|
item: e,
|
|
320
|
-
handle:
|
|
321
|
-
auto:
|
|
332
|
+
handle: R ? null : n,
|
|
333
|
+
auto: R,
|
|
322
334
|
folder: t
|
|
323
335
|
})
|
|
324
336
|
}),
|
|
325
|
-
(!
|
|
337
|
+
(!R && Se > 0 || R && t.error && Se > 0) && /* @__PURE__ */ M(g, {
|
|
326
338
|
className: "w-fit",
|
|
327
|
-
disabled:
|
|
339
|
+
disabled: B || P.items.length > 0 && !P.ready || t.committing,
|
|
328
340
|
onClick: () => void t.commit().catch(() => {}),
|
|
329
341
|
"data-ckui": "folder-commit",
|
|
330
|
-
children: [t.committing && /* @__PURE__ */ j(
|
|
331
|
-
icon:
|
|
342
|
+
children: [t.committing && /* @__PURE__ */ j(H, {
|
|
343
|
+
icon: oe,
|
|
332
344
|
strokeWidth: 2,
|
|
333
345
|
className: "motion-safe:animate-spin"
|
|
334
|
-
}),
|
|
346
|
+
}), R ? E("folder.commitAgain") : E("folder.commit", { count: P.items.filter((e) => e.status !== "committed").length + t.pending.length })]
|
|
335
347
|
}),
|
|
336
|
-
|
|
348
|
+
f,
|
|
337
349
|
/* @__PURE__ */ j("input", {
|
|
338
|
-
ref:
|
|
350
|
+
ref: X,
|
|
339
351
|
type: "file",
|
|
340
|
-
accept:
|
|
352
|
+
accept: se,
|
|
341
353
|
className: "sr-only",
|
|
342
354
|
tabIndex: -1,
|
|
343
355
|
"aria-hidden": !0,
|
|
344
356
|
onChange: (e) => {
|
|
345
357
|
let n = e.target.files?.[0];
|
|
346
|
-
e.target.value = "", n &&
|
|
358
|
+
e.target.value = "", n && Z && t.replace(Z, n).catch(() => {}), ge(null);
|
|
347
359
|
}
|
|
348
360
|
}),
|
|
349
|
-
/* @__PURE__ */ j(
|
|
350
|
-
open: !!
|
|
351
|
-
onOpenChange: (e) => !e &&
|
|
352
|
-
source: "source" in
|
|
353
|
-
aspect:
|
|
354
|
-
aspects:
|
|
355
|
-
initialEdit: "edit" in
|
|
356
|
-
minWidth:
|
|
357
|
-
title:
|
|
358
|
-
busy:
|
|
359
|
-
error:
|
|
360
|
-
onConfirm: (e) => void
|
|
361
|
+
/* @__PURE__ */ j(y, {
|
|
362
|
+
open: !!G,
|
|
363
|
+
onOpenChange: (e) => !e && K.status !== "saving" && de(null),
|
|
364
|
+
source: "source" in K ? K.source ?? null : null,
|
|
365
|
+
aspect: q?.aspect ?? "",
|
|
366
|
+
aspects: q?.aspect ? void 0 : _,
|
|
367
|
+
initialEdit: "edit" in K ? K.edit : null,
|
|
368
|
+
minWidth: q?.min_width,
|
|
369
|
+
title: E("folder.crop"),
|
|
370
|
+
busy: K.status === "saving",
|
|
371
|
+
error: K.status === "error" ? O(K.error) : void 0,
|
|
372
|
+
onConfirm: (e) => void K.save(e)
|
|
361
373
|
})
|
|
362
374
|
]
|
|
363
375
|
});
|
|
364
376
|
}
|
|
365
|
-
function
|
|
366
|
-
let { t: p } =
|
|
377
|
+
function pe({ group: e, layout: t, titled: n, folder: r, disabled: i, selected: a, onSelect: o, renaming: c, onRename: l, onCrop: u, onReplace: d, rowActions: f }) {
|
|
378
|
+
let { t: p } = s(), m = p(`folder.kinds.${G(e.rule)}`), h = e.rule?.max;
|
|
367
379
|
return /* @__PURE__ */ M("section", {
|
|
368
380
|
className: "grid gap-1",
|
|
369
381
|
"data-ckui": "folder-group",
|
|
@@ -375,12 +387,12 @@ function se({ group: e, layout: t, titled: n, folder: r, disabled: i, selected:
|
|
|
375
387
|
" · ",
|
|
376
388
|
h ? `${e.files.length} / ${h}` : e.files.length
|
|
377
389
|
]
|
|
378
|
-
}), /* @__PURE__ */ j(
|
|
390
|
+
}), /* @__PURE__ */ j(D, {
|
|
379
391
|
layout: t,
|
|
380
392
|
className: t === "grid" ? "grid-cols-[repeat(auto-fill,minmax(12rem,1fr))]" : void 0,
|
|
381
393
|
items: e.files,
|
|
382
394
|
id: (e) => e.path,
|
|
383
|
-
name: (t) =>
|
|
395
|
+
name: (t) => ee(e, t.path),
|
|
384
396
|
disabled: i || r.updating,
|
|
385
397
|
label: m,
|
|
386
398
|
onMove: (t, n) => void r.move(e.files[t].path, n).catch(() => {}),
|
|
@@ -389,15 +401,15 @@ function se({ group: e, layout: t, titled: n, folder: r, disabled: i, selected:
|
|
|
389
401
|
"data-ckui": "upload-row",
|
|
390
402
|
"data-path": e.path
|
|
391
403
|
}),
|
|
392
|
-
children: (n,
|
|
404
|
+
children: (n, s) => /* @__PURE__ */ j(ge, {
|
|
393
405
|
file: n,
|
|
394
406
|
grid: t === "grid",
|
|
395
407
|
group: e,
|
|
396
|
-
handle:
|
|
408
|
+
handle: s,
|
|
397
409
|
folder: r,
|
|
398
410
|
disabled: i,
|
|
399
411
|
selected: a.has(n.path),
|
|
400
|
-
onSelect: (e) =>
|
|
412
|
+
onSelect: (e) => o(n.path, e),
|
|
401
413
|
renaming: c === n.path,
|
|
402
414
|
onRename: l,
|
|
403
415
|
onCrop: u,
|
|
@@ -407,7 +419,183 @@ function se({ group: e, layout: t, titled: n, folder: r, disabled: i, selected:
|
|
|
407
419
|
})]
|
|
408
420
|
});
|
|
409
421
|
}
|
|
410
|
-
function
|
|
422
|
+
function J(e, t, n) {
|
|
423
|
+
let r = n.lastIndexOf("."), i = r > n.lastIndexOf("/") ? n.slice(r).toLowerCase() : "";
|
|
424
|
+
return String(e).padStart(Math.max(2, String(t).length), "0") + i;
|
|
425
|
+
}
|
|
426
|
+
var Y = "group relative grid min-w-0 content-start gap-1 rounded-lg border bg-background p-1.5 outline-none focus-visible:ring-2 focus-visible:ring-ring";
|
|
427
|
+
function X({ label: e, disabled: t, onRemove: n }) {
|
|
428
|
+
return /* @__PURE__ */ j("button", {
|
|
429
|
+
type: "button",
|
|
430
|
+
"aria-label": e,
|
|
431
|
+
title: e,
|
|
432
|
+
disabled: t,
|
|
433
|
+
className: "absolute end-2 top-2 inline-flex size-6 items-center justify-center rounded-full bg-background/90 text-muted-foreground opacity-0 shadow-sm transition-opacity hover:text-foreground focus-visible:opacity-100 group-hover:opacity-100 group-focus-within:opacity-100 disabled:hidden",
|
|
434
|
+
onPointerDown: (e) => e.stopPropagation(),
|
|
435
|
+
onKeyDown: (e) => e.stopPropagation(),
|
|
436
|
+
onClick: (e) => {
|
|
437
|
+
e.stopPropagation(), n();
|
|
438
|
+
},
|
|
439
|
+
"data-ckui": "tile-remove",
|
|
440
|
+
children: /* @__PURE__ */ j(H, {
|
|
441
|
+
icon: P,
|
|
442
|
+
strokeWidth: 2,
|
|
443
|
+
className: "size-3.5"
|
|
444
|
+
})
|
|
445
|
+
});
|
|
446
|
+
}
|
|
447
|
+
function Z({ url: e, aspect: t, busy: n }) {
|
|
448
|
+
return /* @__PURE__ */ M("span", {
|
|
449
|
+
className: "relative block w-full overflow-hidden rounded-md bg-muted",
|
|
450
|
+
style: { aspectRatio: t ?? .75 },
|
|
451
|
+
children: [e && /* @__PURE__ */ j("img", {
|
|
452
|
+
src: e,
|
|
453
|
+
alt: "",
|
|
454
|
+
loading: "lazy",
|
|
455
|
+
decoding: "async",
|
|
456
|
+
draggable: !1,
|
|
457
|
+
className: N("size-full object-cover", n && "opacity-70")
|
|
458
|
+
}), n && !e && /* @__PURE__ */ j("span", {
|
|
459
|
+
"aria-hidden": !0,
|
|
460
|
+
className: "absolute inset-[40%] rounded-full border-2 border-current/25 border-t-current text-muted-foreground motion-safe:animate-spin"
|
|
461
|
+
})]
|
|
462
|
+
});
|
|
463
|
+
}
|
|
464
|
+
function me({ group: t, folder: n, disabled: r, auto: i, selected: a, onSelect: o, queued: c, pending: u, waiting: p }) {
|
|
465
|
+
let { t: m, error: h } = s(), g = O(() => t.files.filter((e) => !f(e)), [t.files]), _ = g.length + u.length + c.length + p.length, y = re(/* @__PURE__ */ new Map());
|
|
466
|
+
for (let e of c) y.current.has(e.path) || y.current.set(e.path, URL.createObjectURL(e.file));
|
|
467
|
+
te(() => {
|
|
468
|
+
let e = y.current;
|
|
469
|
+
return () => e.forEach((e) => URL.revokeObjectURL(e));
|
|
470
|
+
}, []);
|
|
471
|
+
let b = r || n.updating, x = (e) => o(a === e.path ? null : e);
|
|
472
|
+
return /* @__PURE__ */ j("section", {
|
|
473
|
+
className: "grid gap-1",
|
|
474
|
+
"data-ckui": "folder-group",
|
|
475
|
+
"data-path": t.path,
|
|
476
|
+
children: /* @__PURE__ */ j(D, {
|
|
477
|
+
layout: "grid",
|
|
478
|
+
wholeItem: !0,
|
|
479
|
+
className: "grid-cols-[repeat(auto-fill,minmax(8.5rem,1fr))]",
|
|
480
|
+
items: g,
|
|
481
|
+
id: (e) => e.path,
|
|
482
|
+
name: (e) => J(g.indexOf(e) + 1, _, e.path),
|
|
483
|
+
disabled: b,
|
|
484
|
+
label: m(`folder.kinds.${G(t.rule)}`),
|
|
485
|
+
onMove: (e, r) => void n.move(g[e].path, t.files.findIndex((e) => e.path === g[r].path)).catch(() => {}),
|
|
486
|
+
row: (e) => ({
|
|
487
|
+
className: N(Y, "cursor-grab active:cursor-grabbing", a === e.path ? "border-primary ring-1 ring-primary/40" : "border-border"),
|
|
488
|
+
"data-ckui": "page-tile",
|
|
489
|
+
"data-path": e.path,
|
|
490
|
+
"data-selected": a === e.path || void 0,
|
|
491
|
+
"aria-pressed": a === e.path,
|
|
492
|
+
onClick: () => x(e),
|
|
493
|
+
onKeyDown: (t) => {
|
|
494
|
+
t.key === "Enter" && (t.preventDefault(), x(e));
|
|
495
|
+
}
|
|
496
|
+
}),
|
|
497
|
+
trailing: /* @__PURE__ */ M(A, { children: [
|
|
498
|
+
u.map((t, r) => {
|
|
499
|
+
let a = T(n.read.read, t);
|
|
500
|
+
return /* @__PURE__ */ M("li", {
|
|
501
|
+
className: N(Y, "border-dashed border-border"),
|
|
502
|
+
"data-ckui": "page-tile-pending",
|
|
503
|
+
children: [
|
|
504
|
+
/* @__PURE__ */ j(Z, {
|
|
505
|
+
url: a?.url ?? y.current.get(t.path),
|
|
506
|
+
busy: d(t)
|
|
507
|
+
}),
|
|
508
|
+
/* @__PURE__ */ M("span", {
|
|
509
|
+
className: "truncate px-0.5 text-xs text-muted-foreground tabular-nums",
|
|
510
|
+
children: [
|
|
511
|
+
J(g.length + r + 1, _, t.path),
|
|
512
|
+
" · ",
|
|
513
|
+
t.failed ? h(e(t.failed)) : m(i ? "folder.adding" : "folder.notAdded")
|
|
514
|
+
]
|
|
515
|
+
}),
|
|
516
|
+
/* @__PURE__ */ j(X, {
|
|
517
|
+
label: m("common.remove"),
|
|
518
|
+
disabled: b,
|
|
519
|
+
onRemove: () => void n.remove([t.path]).catch(() => {})
|
|
520
|
+
})
|
|
521
|
+
]
|
|
522
|
+
}, t.path);
|
|
523
|
+
}),
|
|
524
|
+
c.map((e, t) => {
|
|
525
|
+
let r = e.status === "uploading" ? v(e.progress) : null;
|
|
526
|
+
return /* @__PURE__ */ M("li", {
|
|
527
|
+
className: N(Y, "border-dashed border-border"),
|
|
528
|
+
"data-ckui": "page-tile-upload",
|
|
529
|
+
"data-status": e.status,
|
|
530
|
+
children: [
|
|
531
|
+
/* @__PURE__ */ j(Z, {
|
|
532
|
+
url: y.current.get(e.path),
|
|
533
|
+
busy: !0
|
|
534
|
+
}),
|
|
535
|
+
r !== null && /* @__PURE__ */ j(l, {
|
|
536
|
+
value: r,
|
|
537
|
+
"aria-label": Q(m, h, e, i),
|
|
538
|
+
className: "h-1"
|
|
539
|
+
}),
|
|
540
|
+
/* @__PURE__ */ M("span", {
|
|
541
|
+
className: N("truncate px-0.5 text-xs tabular-nums", e.status === "failed" ? "text-destructive" : "text-muted-foreground"),
|
|
542
|
+
title: e.file.name,
|
|
543
|
+
children: [
|
|
544
|
+
J(g.length + u.length + t + 1, _, e.path),
|
|
545
|
+
" · ",
|
|
546
|
+
Q(m, h, e, i)
|
|
547
|
+
]
|
|
548
|
+
}),
|
|
549
|
+
/* @__PURE__ */ j(X, {
|
|
550
|
+
label: m("common.remove"),
|
|
551
|
+
onRemove: () => n.queue.remove(e.id)
|
|
552
|
+
})
|
|
553
|
+
]
|
|
554
|
+
}, e.id);
|
|
555
|
+
}),
|
|
556
|
+
p.map((e, t) => /* @__PURE__ */ M("li", {
|
|
557
|
+
className: N(Y, "border-dashed border-border"),
|
|
558
|
+
"data-ckui": "page-tile-waiting",
|
|
559
|
+
children: [/* @__PURE__ */ j(Z, { busy: !0 }), /* @__PURE__ */ j("span", {
|
|
560
|
+
className: "truncate px-0.5 text-xs text-muted-foreground",
|
|
561
|
+
title: e.name,
|
|
562
|
+
children: m("folder.queued")
|
|
563
|
+
})]
|
|
564
|
+
}, `waiting-${t}`))
|
|
565
|
+
] }),
|
|
566
|
+
children: (t, r, i) => {
|
|
567
|
+
let a = d(t), o = T(n.read.read, t), s = t.failed ? h(e(t.failed)) : void 0;
|
|
568
|
+
return /* @__PURE__ */ M(A, { children: [
|
|
569
|
+
/* @__PURE__ */ j(Z, {
|
|
570
|
+
url: o?.url ?? y.current.get(t.path),
|
|
571
|
+
aspect: o?.w && o.h ? o.w / o.h : void 0,
|
|
572
|
+
busy: a
|
|
573
|
+
}),
|
|
574
|
+
/* @__PURE__ */ M("span", {
|
|
575
|
+
className: "flex min-w-0 items-center justify-between gap-1 px-0.5 text-xs text-muted-foreground tabular-nums",
|
|
576
|
+
children: [/* @__PURE__ */ j("span", {
|
|
577
|
+
className: "truncate",
|
|
578
|
+
"data-ckui": "upload-name",
|
|
579
|
+
title: t.path,
|
|
580
|
+
children: J(i + 1, _, t.path)
|
|
581
|
+
}), s ? /* @__PURE__ */ j("span", {
|
|
582
|
+
className: "truncate text-destructive",
|
|
583
|
+
title: s,
|
|
584
|
+
"data-ckui": "failed",
|
|
585
|
+
children: m("folder.failed")
|
|
586
|
+
}) : a && /* @__PURE__ */ j("span", { children: m("folder.processing") })]
|
|
587
|
+
}),
|
|
588
|
+
/* @__PURE__ */ j(X, {
|
|
589
|
+
label: m("common.remove"),
|
|
590
|
+
disabled: b,
|
|
591
|
+
onRemove: () => void n.remove([t.path]).catch(() => {})
|
|
592
|
+
})
|
|
593
|
+
] });
|
|
594
|
+
}
|
|
595
|
+
})
|
|
596
|
+
});
|
|
597
|
+
}
|
|
598
|
+
function he({ kind: e, url: t, busy: n, grid: r, aspect: i }) {
|
|
411
599
|
return /* @__PURE__ */ M("span", {
|
|
412
600
|
className: N("relative flex shrink-0 items-center justify-center overflow-hidden rounded-md bg-muted text-muted-foreground", r ? "col-span-2 w-full" : "size-10"),
|
|
413
601
|
style: r ? { aspectRatio: i ?? .75 } : void 0,
|
|
@@ -418,8 +606,8 @@ function Z({ kind: e, url: t, busy: n, grid: r, aspect: i }) {
|
|
|
418
606
|
loading: "lazy",
|
|
419
607
|
decoding: "async",
|
|
420
608
|
className: "size-full object-cover"
|
|
421
|
-
}) : /* @__PURE__ */ j(
|
|
422
|
-
icon:
|
|
609
|
+
}) : /* @__PURE__ */ j(H, {
|
|
610
|
+
icon: W[e],
|
|
423
611
|
strokeWidth: 1.75,
|
|
424
612
|
className: "size-4.5"
|
|
425
613
|
}), n && !t && /* @__PURE__ */ j("span", {
|
|
@@ -428,24 +616,24 @@ function Z({ kind: e, url: t, busy: n, grid: r, aspect: i }) {
|
|
|
428
616
|
})]
|
|
429
617
|
});
|
|
430
618
|
}
|
|
431
|
-
function
|
|
432
|
-
let { t:
|
|
619
|
+
function ge({ file: t, grid: r, group: i, handle: a, folder: o, disabled: c, selected: l, onSelect: f, renaming: p, onRename: m, onCrop: h, onReplace: _, actions: v }) {
|
|
620
|
+
let { t: y, error: b } = s(), x = U(t.type), S = ee(i, t.path), C = d(t), w = O(() => T(o.read.read, t), [o.read.read, t]), E = c || o.updating, D = t.failed ? b(e(t.failed)) : void 0;
|
|
433
621
|
return /* @__PURE__ */ M(A, { children: [
|
|
434
622
|
a,
|
|
435
623
|
/* @__PURE__ */ j("input", {
|
|
436
624
|
type: "checkbox",
|
|
437
625
|
className: "size-4 shrink-0 accent-primary",
|
|
438
|
-
checked:
|
|
626
|
+
checked: l,
|
|
439
627
|
disabled: c,
|
|
440
|
-
"aria-label":
|
|
628
|
+
"aria-label": y("folder.select", { name: S }),
|
|
441
629
|
onChange: (e) => f(e.target.checked)
|
|
442
630
|
}),
|
|
443
|
-
/* @__PURE__ */ j(
|
|
444
|
-
kind:
|
|
445
|
-
url:
|
|
446
|
-
busy:
|
|
631
|
+
/* @__PURE__ */ j(he, {
|
|
632
|
+
kind: x,
|
|
633
|
+
url: w?.url,
|
|
634
|
+
busy: C,
|
|
447
635
|
grid: r,
|
|
448
|
-
aspect:
|
|
636
|
+
aspect: w?.w && w.h ? w.w / w.h : void 0
|
|
449
637
|
}),
|
|
450
638
|
/* @__PURE__ */ M("div", {
|
|
451
639
|
className: N("grid min-w-0 flex-1 gap-1", r && "col-span-2"),
|
|
@@ -453,26 +641,26 @@ function ce({ file: t, grid: r, group: i, handle: a, folder: s, disabled: c, sel
|
|
|
453
641
|
/* @__PURE__ */ M("div", {
|
|
454
642
|
className: "flex min-w-0 flex-wrap items-center gap-x-2 gap-y-0.5",
|
|
455
643
|
children: [
|
|
456
|
-
p ? /* @__PURE__ */ j(
|
|
457
|
-
name: n(
|
|
458
|
-
label:
|
|
459
|
-
onDone: (e) => e === null ?
|
|
644
|
+
p ? /* @__PURE__ */ j(_e, {
|
|
645
|
+
name: n(S),
|
|
646
|
+
label: y("folder.renameLabel", { name: S }),
|
|
647
|
+
onDone: (e) => e === null ? m(null) : o.rename(t.path, e).then(() => m(null))
|
|
460
648
|
}) : /* @__PURE__ */ j("span", {
|
|
461
649
|
className: "max-w-full truncate text-sm",
|
|
462
650
|
title: t.path,
|
|
463
651
|
"data-ckui": "upload-name",
|
|
464
|
-
children:
|
|
652
|
+
children: S
|
|
465
653
|
}),
|
|
466
654
|
t.edit && /* @__PURE__ */ j("span", {
|
|
467
655
|
className: "shrink-0 rounded-sm border border-border px-1.5 text-[11px] text-muted-foreground",
|
|
468
656
|
"data-ckui": "edited",
|
|
469
|
-
children:
|
|
657
|
+
children: y("folder.edited")
|
|
470
658
|
}),
|
|
471
659
|
D && /* @__PURE__ */ j("span", {
|
|
472
660
|
className: "shrink-0 rounded-sm bg-destructive/10 px-1.5 text-[11px] font-medium text-destructive",
|
|
473
661
|
title: D,
|
|
474
662
|
"data-ckui": "failed",
|
|
475
|
-
children:
|
|
663
|
+
children: y(x === "video" ? "folder.failedVideo" : "folder.failed")
|
|
476
664
|
})
|
|
477
665
|
]
|
|
478
666
|
}),
|
|
@@ -480,13 +668,13 @@ function ce({ file: t, grid: r, group: i, handle: a, folder: s, disabled: c, sel
|
|
|
480
668
|
className: "text-xs text-destructive",
|
|
481
669
|
children: D
|
|
482
670
|
}),
|
|
483
|
-
|
|
671
|
+
C && x === "video" && /* @__PURE__ */ j(u, {
|
|
484
672
|
progress: t.progress,
|
|
485
673
|
className: "max-w-sm text-xs"
|
|
486
674
|
}),
|
|
487
|
-
|
|
675
|
+
C && x !== "video" && /* @__PURE__ */ j("span", {
|
|
488
676
|
className: "text-xs text-muted-foreground",
|
|
489
|
-
children:
|
|
677
|
+
children: y("folder.processing")
|
|
490
678
|
})
|
|
491
679
|
]
|
|
492
680
|
}),
|
|
@@ -494,51 +682,51 @@ function ce({ file: t, grid: r, group: i, handle: a, folder: s, disabled: c, sel
|
|
|
494
682
|
className: N("flex shrink-0 flex-wrap items-center gap-0.5", r && "col-span-2 justify-end"),
|
|
495
683
|
"data-ckui": "upload-actions",
|
|
496
684
|
children: [
|
|
497
|
-
|
|
498
|
-
|
|
685
|
+
v,
|
|
686
|
+
x === "image" && /* @__PURE__ */ j(g, {
|
|
499
687
|
variant: "ghost",
|
|
500
688
|
size: "icon-sm",
|
|
501
|
-
"aria-label":
|
|
502
|
-
title:
|
|
689
|
+
"aria-label": y("folder.crop"),
|
|
690
|
+
title: y("folder.crop"),
|
|
503
691
|
disabled: E || !!t.staged || !t.size,
|
|
504
|
-
onClick: () =>
|
|
505
|
-
children: /* @__PURE__ */ j(
|
|
692
|
+
onClick: () => h(t.path),
|
|
693
|
+
children: /* @__PURE__ */ j(H, {
|
|
506
694
|
icon: F,
|
|
507
695
|
strokeWidth: 2
|
|
508
696
|
})
|
|
509
697
|
}),
|
|
510
|
-
!i.rule?.named && /* @__PURE__ */ j(
|
|
698
|
+
!i.rule?.named && /* @__PURE__ */ j(g, {
|
|
511
699
|
variant: "ghost",
|
|
512
700
|
size: "icon-sm",
|
|
513
|
-
"aria-label":
|
|
514
|
-
title:
|
|
701
|
+
"aria-label": y("common.rename"),
|
|
702
|
+
title: y("common.rename"),
|
|
515
703
|
disabled: E,
|
|
516
|
-
onClick: () =>
|
|
517
|
-
children: /* @__PURE__ */ j(
|
|
704
|
+
onClick: () => m(t.path),
|
|
705
|
+
children: /* @__PURE__ */ j(H, {
|
|
518
706
|
icon: L,
|
|
519
707
|
strokeWidth: 2
|
|
520
708
|
})
|
|
521
709
|
}),
|
|
522
|
-
/* @__PURE__ */ j(
|
|
710
|
+
/* @__PURE__ */ j(g, {
|
|
523
711
|
variant: "ghost",
|
|
524
712
|
size: "icon-sm",
|
|
525
|
-
"aria-label":
|
|
526
|
-
title:
|
|
713
|
+
"aria-label": y("common.replace"),
|
|
714
|
+
title: y("common.replace"),
|
|
527
715
|
disabled: E,
|
|
528
|
-
onClick: () =>
|
|
529
|
-
children: /* @__PURE__ */ j(
|
|
530
|
-
icon:
|
|
716
|
+
onClick: () => _(t.path),
|
|
717
|
+
children: /* @__PURE__ */ j(H, {
|
|
718
|
+
icon: B,
|
|
531
719
|
strokeWidth: 2
|
|
532
720
|
})
|
|
533
721
|
}),
|
|
534
|
-
/* @__PURE__ */ j(
|
|
722
|
+
/* @__PURE__ */ j(g, {
|
|
535
723
|
variant: "ghost",
|
|
536
724
|
size: "icon-sm",
|
|
537
|
-
"aria-label":
|
|
538
|
-
title:
|
|
725
|
+
"aria-label": y("common.remove"),
|
|
726
|
+
title: y("common.remove"),
|
|
539
727
|
disabled: E,
|
|
540
|
-
onClick: () => void
|
|
541
|
-
children: /* @__PURE__ */ j(
|
|
728
|
+
onClick: () => void o.remove([t.path]).catch(() => {}),
|
|
729
|
+
children: /* @__PURE__ */ j(H, {
|
|
542
730
|
icon: I,
|
|
543
731
|
strokeWidth: 2
|
|
544
732
|
})
|
|
@@ -547,8 +735,8 @@ function ce({ file: t, grid: r, group: i, handle: a, folder: s, disabled: c, sel
|
|
|
547
735
|
})
|
|
548
736
|
] });
|
|
549
737
|
}
|
|
550
|
-
function
|
|
551
|
-
let [r, i] = k(e), a =
|
|
738
|
+
function _e({ name: e, label: t, onDone: n }) {
|
|
739
|
+
let [r, i] = k(e), a = re(!1), o = (t) => {
|
|
552
740
|
a.current || (a.current = !0, Promise.resolve(n(t && t.trim() && t.trim() !== e ? t.trim() : null)).catch(() => a.current = !1));
|
|
553
741
|
};
|
|
554
742
|
return /* @__PURE__ */ j("input", {
|
|
@@ -564,16 +752,16 @@ function Q({ name: e, label: t, onDone: n }) {
|
|
|
564
752
|
"data-ckui": "rename"
|
|
565
753
|
});
|
|
566
754
|
}
|
|
567
|
-
function
|
|
568
|
-
let { t: a, error:
|
|
755
|
+
function ve({ file: t, folder: n, auto: r, disabled: i }) {
|
|
756
|
+
let { t: a, error: o } = s(), c = U(t.type), l = d(t), u = O(() => T(n.read.read, t), [n.read.read, t]), f = t.failed ? o(e(t.failed)) : l ? t.progress && t.progress.phase !== "queued" ? a("folder.processingPercent", { percent: Math.round(t.progress.percent) }) : a("folder.processing") : a(r ? "folder.adding" : "folder.notAdded");
|
|
569
757
|
return /* @__PURE__ */ M("li", {
|
|
570
758
|
className: "flex min-h-11 items-center gap-2 px-1",
|
|
571
759
|
"data-ckui": "pending-row",
|
|
572
760
|
"data-path": t.path,
|
|
573
761
|
children: [
|
|
574
|
-
/* @__PURE__ */ j(
|
|
762
|
+
/* @__PURE__ */ j(he, {
|
|
575
763
|
kind: c,
|
|
576
|
-
url:
|
|
764
|
+
url: u?.url,
|
|
577
765
|
busy: l
|
|
578
766
|
}),
|
|
579
767
|
/* @__PURE__ */ M("div", {
|
|
@@ -588,14 +776,14 @@ function le({ file: t, folder: n, auto: r, disabled: i }) {
|
|
|
588
776
|
children: f
|
|
589
777
|
})]
|
|
590
778
|
}),
|
|
591
|
-
/* @__PURE__ */ j(
|
|
779
|
+
/* @__PURE__ */ j(g, {
|
|
592
780
|
variant: "ghost",
|
|
593
781
|
size: "icon-sm",
|
|
594
782
|
"aria-label": a("common.remove"),
|
|
595
783
|
title: a("common.remove"),
|
|
596
784
|
disabled: i || n.updating,
|
|
597
785
|
onClick: () => void n.remove([t.path]).catch(() => {}),
|
|
598
|
-
children: /* @__PURE__ */ j(
|
|
786
|
+
children: /* @__PURE__ */ j(H, {
|
|
599
787
|
icon: I,
|
|
600
788
|
strokeWidth: 2
|
|
601
789
|
})
|
|
@@ -603,21 +791,21 @@ function le({ file: t, folder: n, auto: r, disabled: i }) {
|
|
|
603
791
|
]
|
|
604
792
|
});
|
|
605
793
|
}
|
|
606
|
-
function
|
|
794
|
+
function Q(t, n, r, i) {
|
|
607
795
|
if (r.status === "failed") return n(r.error);
|
|
608
|
-
if (r.status === "uploading") return
|
|
796
|
+
if (r.status === "uploading") return _(t, r.progress);
|
|
609
797
|
if (r.status === "uploaded") {
|
|
610
798
|
let a = r.processing;
|
|
611
799
|
return a?.failed ? n(e(a.failed)) : r.unattached && !r.processed ? a?.progress && a.progress.phase !== "queued" ? t("folder.processingPercent", { percent: Math.round(a.progress.percent) }) : t("folder.processing") : t(i ? "folder.adding" : "folder.uploaded");
|
|
612
800
|
}
|
|
613
801
|
return r.status === "committed" ? t("folder.adding") : t("folder.queued");
|
|
614
802
|
}
|
|
615
|
-
function
|
|
616
|
-
let { t: i, error: a } =
|
|
803
|
+
function ye({ item: e, handle: t, auto: n, folder: r }) {
|
|
804
|
+
let { t: i, error: a } = s(), { queue: o } = r, c = U(e.file.type), u = Q(i, a, e, n), d = e.status === "uploading" ? v(e.progress) : e.unattached && !e.processed && e.processing?.progress ? e.processing.progress.percent : null;
|
|
617
805
|
return /* @__PURE__ */ M(A, { children: [
|
|
618
806
|
t,
|
|
619
|
-
/* @__PURE__ */ j(
|
|
620
|
-
kind:
|
|
807
|
+
/* @__PURE__ */ j(he, {
|
|
808
|
+
kind: c,
|
|
621
809
|
busy: e.status === "uploading" || !!e.unattached && !e.processed
|
|
622
810
|
}),
|
|
623
811
|
/* @__PURE__ */ M("div", {
|
|
@@ -628,7 +816,7 @@ function ue({ item: e, handle: t, auto: n, folder: r }) {
|
|
|
628
816
|
title: e.path,
|
|
629
817
|
children: e.file.name
|
|
630
818
|
}),
|
|
631
|
-
d !== null && /* @__PURE__ */ j(
|
|
819
|
+
d !== null && /* @__PURE__ */ j(l, {
|
|
632
820
|
value: d,
|
|
633
821
|
"aria-label": u,
|
|
634
822
|
className: "max-w-sm"
|
|
@@ -642,23 +830,23 @@ function ue({ item: e, handle: t, auto: n, folder: r }) {
|
|
|
642
830
|
}),
|
|
643
831
|
/* @__PURE__ */ M("span", {
|
|
644
832
|
className: "flex shrink-0 items-center gap-0.5",
|
|
645
|
-
children: [e.status === "failed" && /* @__PURE__ */ j(
|
|
833
|
+
children: [e.status === "failed" && /* @__PURE__ */ j(g, {
|
|
646
834
|
variant: "ghost",
|
|
647
835
|
size: "icon-sm",
|
|
648
836
|
"aria-label": i("common.retry"),
|
|
649
837
|
title: i("common.retry"),
|
|
650
|
-
onClick: () =>
|
|
651
|
-
children: /* @__PURE__ */ j(
|
|
652
|
-
icon:
|
|
838
|
+
onClick: () => o.retry(e.id),
|
|
839
|
+
children: /* @__PURE__ */ j(H, {
|
|
840
|
+
icon: ce,
|
|
653
841
|
strokeWidth: 2
|
|
654
842
|
})
|
|
655
|
-
}), /* @__PURE__ */ j(
|
|
843
|
+
}), /* @__PURE__ */ j(g, {
|
|
656
844
|
variant: "ghost",
|
|
657
845
|
size: "icon-sm",
|
|
658
846
|
"aria-label": i("common.remove"),
|
|
659
847
|
title: i("common.remove"),
|
|
660
|
-
onClick: () =>
|
|
661
|
-
children: /* @__PURE__ */ j(
|
|
848
|
+
onClick: () => o.remove(e.id),
|
|
849
|
+
children: /* @__PURE__ */ j(H, {
|
|
662
850
|
icon: I,
|
|
663
851
|
strokeWidth: 2
|
|
664
852
|
})
|
|
@@ -667,6 +855,6 @@ function ue({ item: e, handle: t, auto: n, folder: r }) {
|
|
|
667
855
|
] });
|
|
668
856
|
}
|
|
669
857
|
//#endregion
|
|
670
|
-
export {
|
|
858
|
+
export { de as MediaFolderEditor, ue as describeRules, J as positionalName };
|
|
671
859
|
|
|
672
860
|
//# sourceMappingURL=media-folder-editor.js.map
|