@orion-studios/payload-studio 0.6.0-beta.107 → 0.6.0-beta.109
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/dist/admin/client.js +6 -6
- package/dist/admin/client.mjs +4 -4
- package/dist/admin-app/client.js +3 -3
- package/dist/admin-app/client.mjs +1 -1
- package/dist/{chunk-ESND7PSO.mjs → chunk-NF37A575.mjs} +147 -147
- package/dist/index.mjs +5 -5
- package/dist/studio-pages/index.mjs +2 -2
- package/package.json +1 -1
- package/dist/{chunk-276KAPGM.mjs → chunk-NGLIA2OE.mjs} +3 -3
package/dist/admin/client.js
CHANGED
|
@@ -2885,9 +2885,9 @@ function LogoutIcon() {
|
|
|
2885
2885
|
width: iconSize2
|
|
2886
2886
|
};
|
|
2887
2887
|
return /* @__PURE__ */ (0, import_jsx_runtime16.jsxs)("svg", { ...props, "aria-hidden": "true", children: [
|
|
2888
|
-
/* @__PURE__ */ (0, import_jsx_runtime16.jsx)("path", { d: "
|
|
2889
|
-
/* @__PURE__ */ (0, import_jsx_runtime16.jsx)("polyline", { points: "
|
|
2890
|
-
/* @__PURE__ */ (0, import_jsx_runtime16.jsx)("line", { x1: "
|
|
2888
|
+
/* @__PURE__ */ (0, import_jsx_runtime16.jsx)("path", { d: "M15 3h4a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2h-4" }),
|
|
2889
|
+
/* @__PURE__ */ (0, import_jsx_runtime16.jsx)("polyline", { points: "10 17 5 12 10 7" }),
|
|
2890
|
+
/* @__PURE__ */ (0, import_jsx_runtime16.jsx)("line", { x1: "5", y1: "12", x2: "17", y2: "12" })
|
|
2891
2891
|
] });
|
|
2892
2892
|
}
|
|
2893
2893
|
function AdminStudioNav(props) {
|
|
@@ -3112,9 +3112,9 @@ function NavIcon2({ name }) {
|
|
|
3112
3112
|
function LogoutIcon2() {
|
|
3113
3113
|
const props = { width: iconSize3, height: iconSize3, viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: 2, strokeLinecap: "round", strokeLinejoin: "round", style: iconStyle };
|
|
3114
3114
|
return /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)("svg", { ...props, "aria-hidden": "true", children: [
|
|
3115
|
-
/* @__PURE__ */ (0, import_jsx_runtime17.jsx)("path", { d: "
|
|
3116
|
-
/* @__PURE__ */ (0, import_jsx_runtime17.jsx)("polyline", { points: "
|
|
3117
|
-
/* @__PURE__ */ (0, import_jsx_runtime17.jsx)("line", { x1: "
|
|
3115
|
+
/* @__PURE__ */ (0, import_jsx_runtime17.jsx)("path", { d: "M15 3h4a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2h-4" }),
|
|
3116
|
+
/* @__PURE__ */ (0, import_jsx_runtime17.jsx)("polyline", { points: "10 17 5 12 10 7" }),
|
|
3117
|
+
/* @__PURE__ */ (0, import_jsx_runtime17.jsx)("line", { x1: "5", y1: "12", x2: "17", y2: "12" })
|
|
3118
3118
|
] });
|
|
3119
3119
|
}
|
|
3120
3120
|
function AdminShellClient({
|
package/dist/admin/client.mjs
CHANGED
|
@@ -9,7 +9,7 @@ import {
|
|
|
9
9
|
SiteFooterPreview,
|
|
10
10
|
adminNavIcons,
|
|
11
11
|
buildAdminPageLinkOptions
|
|
12
|
-
} from "../chunk-
|
|
12
|
+
} from "../chunk-NF37A575.mjs";
|
|
13
13
|
import "../chunk-ROTPP5CU.mjs";
|
|
14
14
|
import {
|
|
15
15
|
BlockPicker,
|
|
@@ -1660,9 +1660,9 @@ function LogoutIcon() {
|
|
|
1660
1660
|
width: iconSize2
|
|
1661
1661
|
};
|
|
1662
1662
|
return /* @__PURE__ */ jsxs11("svg", { ...props, "aria-hidden": "true", children: [
|
|
1663
|
-
/* @__PURE__ */ jsx12("path", { d: "
|
|
1664
|
-
/* @__PURE__ */ jsx12("polyline", { points: "
|
|
1665
|
-
/* @__PURE__ */ jsx12("line", { x1: "
|
|
1663
|
+
/* @__PURE__ */ jsx12("path", { d: "M15 3h4a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2h-4" }),
|
|
1664
|
+
/* @__PURE__ */ jsx12("polyline", { points: "10 17 5 12 10 7" }),
|
|
1665
|
+
/* @__PURE__ */ jsx12("line", { x1: "5", y1: "12", x2: "17", y2: "12" })
|
|
1666
1666
|
] });
|
|
1667
1667
|
}
|
|
1668
1668
|
function AdminStudioNav(props) {
|
package/dist/admin-app/client.js
CHANGED
|
@@ -114,9 +114,9 @@ function NavIcon({ name }) {
|
|
|
114
114
|
function LogoutIcon() {
|
|
115
115
|
const props = { width: iconSize, height: iconSize, viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: 2, strokeLinecap: "round", strokeLinejoin: "round", style: iconStyle };
|
|
116
116
|
return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("svg", { ...props, "aria-hidden": "true", children: [
|
|
117
|
-
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("path", { d: "
|
|
118
|
-
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("polyline", { points: "
|
|
119
|
-
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("line", { x1: "
|
|
117
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("path", { d: "M15 3h4a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2h-4" }),
|
|
118
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("polyline", { points: "10 17 5 12 10 7" }),
|
|
119
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("line", { x1: "5", y1: "12", x2: "17", y2: "12" })
|
|
120
120
|
] });
|
|
121
121
|
}
|
|
122
122
|
function AdminShellClient({
|
|
@@ -95,9 +95,9 @@ function NavIcon({ name }) {
|
|
|
95
95
|
function LogoutIcon() {
|
|
96
96
|
const props = { width: iconSize, height: iconSize, viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: 2, strokeLinecap: "round", strokeLinejoin: "round", style: iconStyle };
|
|
97
97
|
return /* @__PURE__ */ jsxs("svg", { ...props, "aria-hidden": "true", children: [
|
|
98
|
-
/* @__PURE__ */ jsx("path", { d: "
|
|
99
|
-
/* @__PURE__ */ jsx("polyline", { points: "
|
|
100
|
-
/* @__PURE__ */ jsx("line", { x1: "
|
|
98
|
+
/* @__PURE__ */ jsx("path", { d: "M15 3h4a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2h-4" }),
|
|
99
|
+
/* @__PURE__ */ jsx("polyline", { points: "10 17 5 12 10 7" }),
|
|
100
|
+
/* @__PURE__ */ jsx("line", { x1: "5", y1: "12", x2: "17", y2: "12" })
|
|
101
101
|
] });
|
|
102
102
|
}
|
|
103
103
|
function AdminShellClient({
|
|
@@ -734,124 +734,13 @@ function HeaderNavEditorWithPreview({
|
|
|
734
734
|
] });
|
|
735
735
|
}
|
|
736
736
|
|
|
737
|
-
// src/admin-app/components/
|
|
738
|
-
import { useState as useState4 } from "react";
|
|
737
|
+
// src/admin-app/components/MediaListItem.tsx
|
|
739
738
|
import { jsx as jsx5, jsxs as jsxs5 } from "react/jsx-runtime";
|
|
740
739
|
function formatFileSize(bytes) {
|
|
741
740
|
if (bytes < 1024) return `${bytes} B`;
|
|
742
741
|
if (bytes < 1024 * 1024) return `${(bytes / 1024).toFixed(1)} KB`;
|
|
743
742
|
return `${(bytes / (1024 * 1024)).toFixed(1)} MB`;
|
|
744
743
|
}
|
|
745
|
-
function MediaDetailPanel({
|
|
746
|
-
id,
|
|
747
|
-
filename,
|
|
748
|
-
alt,
|
|
749
|
-
url,
|
|
750
|
-
filesize,
|
|
751
|
-
width,
|
|
752
|
-
height,
|
|
753
|
-
mimeType,
|
|
754
|
-
createdAt,
|
|
755
|
-
updateAction,
|
|
756
|
-
deleteAction
|
|
757
|
-
}) {
|
|
758
|
-
const [copied, setCopied] = useState4(false);
|
|
759
|
-
const [confirmDelete, setConfirmDelete] = useState4(false);
|
|
760
|
-
const copyUrl = async () => {
|
|
761
|
-
if (!url) return;
|
|
762
|
-
try {
|
|
763
|
-
await navigator.clipboard.writeText(url);
|
|
764
|
-
setCopied(true);
|
|
765
|
-
setTimeout(() => setCopied(false), 2e3);
|
|
766
|
-
} catch {
|
|
767
|
-
const input = document.createElement("input");
|
|
768
|
-
input.value = url;
|
|
769
|
-
document.body.appendChild(input);
|
|
770
|
-
input.select();
|
|
771
|
-
document.execCommand("copy");
|
|
772
|
-
document.body.removeChild(input);
|
|
773
|
-
setCopied(true);
|
|
774
|
-
setTimeout(() => setCopied(false), 2e3);
|
|
775
|
-
}
|
|
776
|
-
};
|
|
777
|
-
const metaRows = [];
|
|
778
|
-
if (filename) metaRows.push({ label: "Filename", value: filename });
|
|
779
|
-
if (typeof filesize === "number") metaRows.push({ label: "File size", value: formatFileSize(filesize) });
|
|
780
|
-
if (typeof width === "number" && typeof height === "number") metaRows.push({ label: "Dimensions", value: `${width} \xD7 ${height} px` });
|
|
781
|
-
if (mimeType) metaRows.push({ label: "Type", value: mimeType });
|
|
782
|
-
if (createdAt) {
|
|
783
|
-
try {
|
|
784
|
-
metaRows.push({ label: "Uploaded", value: new Date(createdAt).toLocaleDateString() });
|
|
785
|
-
} catch {
|
|
786
|
-
metaRows.push({ label: "Uploaded", value: createdAt });
|
|
787
|
-
}
|
|
788
|
-
}
|
|
789
|
-
return /* @__PURE__ */ jsxs5("div", { className: "orion-admin-grid", style: { alignItems: "start" }, children: [
|
|
790
|
-
/* @__PURE__ */ jsxs5("div", { children: [
|
|
791
|
-
/* @__PURE__ */ jsx5("div", { className: "orion-admin-card", children: url ? /* @__PURE__ */ jsx5("img", { alt: alt || filename || "Media", src: url, style: { borderRadius: 12, width: "100%" } }) : /* @__PURE__ */ jsx5("span", { children: "No preview available." }) }),
|
|
792
|
-
url ? /* @__PURE__ */ jsx5(
|
|
793
|
-
"button",
|
|
794
|
-
{
|
|
795
|
-
className: "orion-admin-action-button",
|
|
796
|
-
onClick: copyUrl,
|
|
797
|
-
style: { marginTop: "0.6rem", width: "100%" },
|
|
798
|
-
type: "button",
|
|
799
|
-
children: copied ? "Copied!" : "Copy URL"
|
|
800
|
-
}
|
|
801
|
-
) : null
|
|
802
|
-
] }),
|
|
803
|
-
/* @__PURE__ */ jsxs5("div", { style: { display: "grid", gap: "0.8rem" }, children: [
|
|
804
|
-
metaRows.length > 0 ? /* @__PURE__ */ jsx5("div", { className: "orion-admin-card orion-admin-meta-table", children: metaRows.map((row) => /* @__PURE__ */ jsxs5("div", { className: "orion-admin-meta-row", children: [
|
|
805
|
-
/* @__PURE__ */ jsx5("span", { className: "orion-admin-meta-label", children: row.label }),
|
|
806
|
-
/* @__PURE__ */ jsx5("span", { className: "orion-admin-meta-value", children: row.value })
|
|
807
|
-
] }, row.label)) }) : null,
|
|
808
|
-
/* @__PURE__ */ jsxs5("form", { action: updateAction, className: "orion-admin-form", children: [
|
|
809
|
-
/* @__PURE__ */ jsx5("input", { name: "id", type: "hidden", value: id }),
|
|
810
|
-
/* @__PURE__ */ jsxs5("label", { children: [
|
|
811
|
-
"Alt text",
|
|
812
|
-
/* @__PURE__ */ jsx5("input", { defaultValue: alt || "", name: "alt", required: true, type: "text" })
|
|
813
|
-
] }),
|
|
814
|
-
/* @__PURE__ */ jsx5("button", { type: "submit", children: "Save" })
|
|
815
|
-
] }),
|
|
816
|
-
confirmDelete ? /* @__PURE__ */ jsxs5("div", { className: "orion-admin-form", style: { borderColor: "#b42318" }, children: [
|
|
817
|
-
/* @__PURE__ */ jsx5("p", { style: { fontWeight: 700, margin: 0 }, children: "Are you sure you want to delete this asset?" }),
|
|
818
|
-
/* @__PURE__ */ jsx5("p", { style: { color: "var(--orion-admin-muted)", fontSize: "0.9rem", margin: 0 }, children: "This action cannot be undone." }),
|
|
819
|
-
/* @__PURE__ */ jsxs5("div", { style: { display: "flex", gap: "0.5rem" }, children: [
|
|
820
|
-
/* @__PURE__ */ jsxs5("form", { action: deleteAction, style: { flex: 1 }, children: [
|
|
821
|
-
/* @__PURE__ */ jsx5("input", { name: "id", type: "hidden", value: id }),
|
|
822
|
-
/* @__PURE__ */ jsx5("button", { style: { background: "#b42318", border: 0, borderRadius: 10, color: "#fff", cursor: "pointer", fontWeight: 800, padding: "0.55rem 0.8rem", width: "100%" }, type: "submit", children: "Yes, Delete" })
|
|
823
|
-
] }),
|
|
824
|
-
/* @__PURE__ */ jsx5(
|
|
825
|
-
"button",
|
|
826
|
-
{
|
|
827
|
-
onClick: () => setConfirmDelete(false),
|
|
828
|
-
style: { background: "transparent", border: "1px solid var(--orion-admin-border)", borderRadius: 10, cursor: "pointer", flex: 1, fontWeight: 700, padding: "0.55rem 0.8rem" },
|
|
829
|
-
type: "button",
|
|
830
|
-
children: "Cancel"
|
|
831
|
-
}
|
|
832
|
-
)
|
|
833
|
-
] })
|
|
834
|
-
] }) : /* @__PURE__ */ jsx5(
|
|
835
|
-
"button",
|
|
836
|
-
{
|
|
837
|
-
className: "orion-admin-action-button",
|
|
838
|
-
onClick: () => setConfirmDelete(true),
|
|
839
|
-
style: { background: "#b42318" },
|
|
840
|
-
type: "button",
|
|
841
|
-
children: "Delete Asset"
|
|
842
|
-
}
|
|
843
|
-
)
|
|
844
|
-
] })
|
|
845
|
-
] });
|
|
846
|
-
}
|
|
847
|
-
|
|
848
|
-
// src/admin-app/components/MediaListItem.tsx
|
|
849
|
-
import { jsx as jsx6, jsxs as jsxs6 } from "react/jsx-runtime";
|
|
850
|
-
function formatFileSize2(bytes) {
|
|
851
|
-
if (bytes < 1024) return `${bytes} B`;
|
|
852
|
-
if (bytes < 1024 * 1024) return `${(bytes / 1024).toFixed(1)} KB`;
|
|
853
|
-
return `${(bytes / (1024 * 1024)).toFixed(1)} MB`;
|
|
854
|
-
}
|
|
855
744
|
function MediaListItem({
|
|
856
745
|
id,
|
|
857
746
|
filename,
|
|
@@ -866,26 +755,26 @@ function MediaListItem({
|
|
|
866
755
|
const label = filename || `Media ${id}`;
|
|
867
756
|
const altText = alt || "";
|
|
868
757
|
const metaParts = [];
|
|
869
|
-
if (typeof filesize === "number") metaParts.push(
|
|
758
|
+
if (typeof filesize === "number") metaParts.push(formatFileSize(filesize));
|
|
870
759
|
if (typeof width === "number" && typeof height === "number") metaParts.push(`${width}\xD7${height}`);
|
|
871
760
|
if (typeof mimeType === "string") metaParts.push(mimeType);
|
|
872
|
-
return /* @__PURE__ */
|
|
873
|
-
/* @__PURE__ */
|
|
874
|
-
url ? /* @__PURE__ */
|
|
875
|
-
/* @__PURE__ */
|
|
876
|
-
/* @__PURE__ */
|
|
877
|
-
/* @__PURE__ */
|
|
878
|
-
metaParts.length > 0 ? /* @__PURE__ */
|
|
761
|
+
return /* @__PURE__ */ jsxs5("a", { className: "orion-admin-list-item", href, children: [
|
|
762
|
+
/* @__PURE__ */ jsxs5("div", { style: { alignItems: "center", display: "flex", gap: "0.8rem" }, children: [
|
|
763
|
+
url ? /* @__PURE__ */ jsx5("img", { alt: altText || label, className: "orion-admin-media-preview", src: url }) : null,
|
|
764
|
+
/* @__PURE__ */ jsxs5("div", { children: [
|
|
765
|
+
/* @__PURE__ */ jsx5("strong", { children: label }),
|
|
766
|
+
/* @__PURE__ */ jsx5("div", { className: "orion-admin-list-meta", children: altText || "No alt text" }),
|
|
767
|
+
metaParts.length > 0 ? /* @__PURE__ */ jsx5("div", { className: "orion-admin-list-meta", style: { marginTop: "0.15rem" }, children: metaParts.join(" \xB7 ") }) : null
|
|
879
768
|
] })
|
|
880
769
|
] }),
|
|
881
|
-
/* @__PURE__ */
|
|
770
|
+
/* @__PURE__ */ jsx5("span", { className: "orion-admin-list-meta", children: "Edit" })
|
|
882
771
|
] });
|
|
883
772
|
}
|
|
884
773
|
|
|
885
774
|
// src/admin-app/components/MediaUploadForm.tsx
|
|
886
|
-
import { useState as
|
|
775
|
+
import { useState as useState4, useRef, useCallback } from "react";
|
|
887
776
|
import { useRouter } from "next/navigation";
|
|
888
|
-
import { jsx as
|
|
777
|
+
import { jsx as jsx6, jsxs as jsxs6 } from "react/jsx-runtime";
|
|
889
778
|
var MEDIA_LIBRARY_SYNC_EVENT = "orion-media-library-updated";
|
|
890
779
|
var notifyMediaLibraryUpdated = () => {
|
|
891
780
|
if (typeof window === "undefined") {
|
|
@@ -926,12 +815,12 @@ var parseUploadError = async (response) => {
|
|
|
926
815
|
function MediaUploadForm() {
|
|
927
816
|
const router = useRouter();
|
|
928
817
|
const fileInputRef = useRef(null);
|
|
929
|
-
const [alt, setAlt] =
|
|
930
|
-
const [file, setFile] =
|
|
931
|
-
const [preview, setPreview] =
|
|
932
|
-
const [dragging, setDragging] =
|
|
933
|
-
const [submitting, setSubmitting] =
|
|
934
|
-
const [error, setError] =
|
|
818
|
+
const [alt, setAlt] = useState4("");
|
|
819
|
+
const [file, setFile] = useState4(null);
|
|
820
|
+
const [preview, setPreview] = useState4(null);
|
|
821
|
+
const [dragging, setDragging] = useState4(false);
|
|
822
|
+
const [submitting, setSubmitting] = useState4(false);
|
|
823
|
+
const [error, setError] = useState4(null);
|
|
935
824
|
const handleFile = useCallback((selectedFile) => {
|
|
936
825
|
setFile(selectedFile);
|
|
937
826
|
if (preview) {
|
|
@@ -999,10 +888,10 @@ function MediaUploadForm() {
|
|
|
999
888
|
setSubmitting(false);
|
|
1000
889
|
}
|
|
1001
890
|
};
|
|
1002
|
-
return /* @__PURE__ */
|
|
1003
|
-
/* @__PURE__ */
|
|
891
|
+
return /* @__PURE__ */ jsxs6("form", { className: "orion-admin-upload-form", onSubmit: upload, children: [
|
|
892
|
+
/* @__PURE__ */ jsxs6("label", { children: [
|
|
1004
893
|
"Alt text",
|
|
1005
|
-
/* @__PURE__ */
|
|
894
|
+
/* @__PURE__ */ jsx6(
|
|
1006
895
|
"input",
|
|
1007
896
|
{
|
|
1008
897
|
onChange: (event) => setAlt(event.target.value),
|
|
@@ -1012,7 +901,7 @@ function MediaUploadForm() {
|
|
|
1012
901
|
}
|
|
1013
902
|
)
|
|
1014
903
|
] }),
|
|
1015
|
-
/* @__PURE__ */
|
|
904
|
+
/* @__PURE__ */ jsxs6(
|
|
1016
905
|
"div",
|
|
1017
906
|
{
|
|
1018
907
|
className: `orion-admin-dropzone${dragging ? " is-dragging" : ""}${file ? " has-file" : ""}`,
|
|
@@ -1021,14 +910,14 @@ function MediaUploadForm() {
|
|
|
1021
910
|
onDragOver,
|
|
1022
911
|
onDrop,
|
|
1023
912
|
children: [
|
|
1024
|
-
preview ? /* @__PURE__ */
|
|
1025
|
-
/* @__PURE__ */
|
|
1026
|
-
/* @__PURE__ */
|
|
1027
|
-
] }) : /* @__PURE__ */
|
|
1028
|
-
/* @__PURE__ */
|
|
1029
|
-
/* @__PURE__ */
|
|
913
|
+
preview ? /* @__PURE__ */ jsxs6("div", { className: "orion-admin-dropzone-preview", children: [
|
|
914
|
+
/* @__PURE__ */ jsx6("img", { alt: "Upload preview", src: preview }),
|
|
915
|
+
/* @__PURE__ */ jsx6("span", { children: file?.name })
|
|
916
|
+
] }) : /* @__PURE__ */ jsxs6("div", { className: "orion-admin-dropzone-label", children: [
|
|
917
|
+
/* @__PURE__ */ jsx6("strong", { children: "Drop an image here" }),
|
|
918
|
+
/* @__PURE__ */ jsx6("span", { children: "or click to browse" })
|
|
1030
919
|
] }),
|
|
1031
|
-
/* @__PURE__ */
|
|
920
|
+
/* @__PURE__ */ jsx6(
|
|
1032
921
|
"input",
|
|
1033
922
|
{
|
|
1034
923
|
accept: "image/*",
|
|
@@ -1041,8 +930,119 @@ function MediaUploadForm() {
|
|
|
1041
930
|
]
|
|
1042
931
|
}
|
|
1043
932
|
),
|
|
1044
|
-
error ? /* @__PURE__ */
|
|
1045
|
-
/* @__PURE__ */
|
|
933
|
+
error ? /* @__PURE__ */ jsx6("div", { className: "orion-admin-upload-error", children: error }) : null,
|
|
934
|
+
/* @__PURE__ */ jsx6("button", { disabled: submitting, type: "submit", children: submitting ? "Uploading..." : "Upload" })
|
|
935
|
+
] });
|
|
936
|
+
}
|
|
937
|
+
|
|
938
|
+
// src/admin-app/components/MediaDetailPanel.tsx
|
|
939
|
+
import { useState as useState5 } from "react";
|
|
940
|
+
import { jsx as jsx7, jsxs as jsxs7 } from "react/jsx-runtime";
|
|
941
|
+
function formatFileSize2(bytes) {
|
|
942
|
+
if (bytes < 1024) return `${bytes} B`;
|
|
943
|
+
if (bytes < 1024 * 1024) return `${(bytes / 1024).toFixed(1)} KB`;
|
|
944
|
+
return `${(bytes / (1024 * 1024)).toFixed(1)} MB`;
|
|
945
|
+
}
|
|
946
|
+
function MediaDetailPanel({
|
|
947
|
+
id,
|
|
948
|
+
filename,
|
|
949
|
+
alt,
|
|
950
|
+
url,
|
|
951
|
+
filesize,
|
|
952
|
+
width,
|
|
953
|
+
height,
|
|
954
|
+
mimeType,
|
|
955
|
+
createdAt,
|
|
956
|
+
updateAction,
|
|
957
|
+
deleteAction
|
|
958
|
+
}) {
|
|
959
|
+
const [copied, setCopied] = useState5(false);
|
|
960
|
+
const [confirmDelete, setConfirmDelete] = useState5(false);
|
|
961
|
+
const copyUrl = async () => {
|
|
962
|
+
if (!url) return;
|
|
963
|
+
try {
|
|
964
|
+
await navigator.clipboard.writeText(url);
|
|
965
|
+
setCopied(true);
|
|
966
|
+
setTimeout(() => setCopied(false), 2e3);
|
|
967
|
+
} catch {
|
|
968
|
+
const input = document.createElement("input");
|
|
969
|
+
input.value = url;
|
|
970
|
+
document.body.appendChild(input);
|
|
971
|
+
input.select();
|
|
972
|
+
document.execCommand("copy");
|
|
973
|
+
document.body.removeChild(input);
|
|
974
|
+
setCopied(true);
|
|
975
|
+
setTimeout(() => setCopied(false), 2e3);
|
|
976
|
+
}
|
|
977
|
+
};
|
|
978
|
+
const metaRows = [];
|
|
979
|
+
if (filename) metaRows.push({ label: "Filename", value: filename });
|
|
980
|
+
if (typeof filesize === "number") metaRows.push({ label: "File size", value: formatFileSize2(filesize) });
|
|
981
|
+
if (typeof width === "number" && typeof height === "number") metaRows.push({ label: "Dimensions", value: `${width} \xD7 ${height} px` });
|
|
982
|
+
if (mimeType) metaRows.push({ label: "Type", value: mimeType });
|
|
983
|
+
if (createdAt) {
|
|
984
|
+
try {
|
|
985
|
+
metaRows.push({ label: "Uploaded", value: new Date(createdAt).toLocaleDateString() });
|
|
986
|
+
} catch {
|
|
987
|
+
metaRows.push({ label: "Uploaded", value: createdAt });
|
|
988
|
+
}
|
|
989
|
+
}
|
|
990
|
+
return /* @__PURE__ */ jsxs7("div", { className: "orion-admin-grid", style: { alignItems: "start" }, children: [
|
|
991
|
+
/* @__PURE__ */ jsxs7("div", { children: [
|
|
992
|
+
/* @__PURE__ */ jsx7("div", { className: "orion-admin-card", children: url ? /* @__PURE__ */ jsx7("img", { alt: alt || filename || "Media", src: url, style: { borderRadius: 12, width: "100%" } }) : /* @__PURE__ */ jsx7("span", { children: "No preview available." }) }),
|
|
993
|
+
url ? /* @__PURE__ */ jsx7(
|
|
994
|
+
"button",
|
|
995
|
+
{
|
|
996
|
+
className: "orion-admin-action-button",
|
|
997
|
+
onClick: copyUrl,
|
|
998
|
+
style: { marginTop: "0.6rem", width: "100%" },
|
|
999
|
+
type: "button",
|
|
1000
|
+
children: copied ? "Copied!" : "Copy URL"
|
|
1001
|
+
}
|
|
1002
|
+
) : null
|
|
1003
|
+
] }),
|
|
1004
|
+
/* @__PURE__ */ jsxs7("div", { style: { display: "grid", gap: "0.8rem" }, children: [
|
|
1005
|
+
metaRows.length > 0 ? /* @__PURE__ */ jsx7("div", { className: "orion-admin-card orion-admin-meta-table", children: metaRows.map((row) => /* @__PURE__ */ jsxs7("div", { className: "orion-admin-meta-row", children: [
|
|
1006
|
+
/* @__PURE__ */ jsx7("span", { className: "orion-admin-meta-label", children: row.label }),
|
|
1007
|
+
/* @__PURE__ */ jsx7("span", { className: "orion-admin-meta-value", children: row.value })
|
|
1008
|
+
] }, row.label)) }) : null,
|
|
1009
|
+
/* @__PURE__ */ jsxs7("form", { action: updateAction, className: "orion-admin-form", children: [
|
|
1010
|
+
/* @__PURE__ */ jsx7("input", { name: "id", type: "hidden", value: id }),
|
|
1011
|
+
/* @__PURE__ */ jsxs7("label", { children: [
|
|
1012
|
+
"Alt text",
|
|
1013
|
+
/* @__PURE__ */ jsx7("input", { defaultValue: alt || "", name: "alt", required: true, type: "text" })
|
|
1014
|
+
] }),
|
|
1015
|
+
/* @__PURE__ */ jsx7("button", { type: "submit", children: "Save" })
|
|
1016
|
+
] }),
|
|
1017
|
+
confirmDelete ? /* @__PURE__ */ jsxs7("div", { className: "orion-admin-form", style: { borderColor: "#b42318" }, children: [
|
|
1018
|
+
/* @__PURE__ */ jsx7("p", { style: { fontWeight: 700, margin: 0 }, children: "Are you sure you want to delete this asset?" }),
|
|
1019
|
+
/* @__PURE__ */ jsx7("p", { style: { color: "var(--orion-admin-muted)", fontSize: "0.9rem", margin: 0 }, children: "This action cannot be undone." }),
|
|
1020
|
+
/* @__PURE__ */ jsxs7("div", { style: { display: "flex", gap: "0.5rem" }, children: [
|
|
1021
|
+
/* @__PURE__ */ jsxs7("form", { action: deleteAction, style: { flex: 1 }, children: [
|
|
1022
|
+
/* @__PURE__ */ jsx7("input", { name: "id", type: "hidden", value: id }),
|
|
1023
|
+
/* @__PURE__ */ jsx7("button", { style: { background: "#b42318", border: 0, borderRadius: 10, color: "#fff", cursor: "pointer", fontWeight: 800, padding: "0.55rem 0.8rem", width: "100%" }, type: "submit", children: "Yes, Delete" })
|
|
1024
|
+
] }),
|
|
1025
|
+
/* @__PURE__ */ jsx7(
|
|
1026
|
+
"button",
|
|
1027
|
+
{
|
|
1028
|
+
onClick: () => setConfirmDelete(false),
|
|
1029
|
+
style: { background: "transparent", border: "1px solid var(--orion-admin-border)", borderRadius: 10, cursor: "pointer", flex: 1, fontWeight: 700, padding: "0.55rem 0.8rem" },
|
|
1030
|
+
type: "button",
|
|
1031
|
+
children: "Cancel"
|
|
1032
|
+
}
|
|
1033
|
+
)
|
|
1034
|
+
] })
|
|
1035
|
+
] }) : /* @__PURE__ */ jsx7(
|
|
1036
|
+
"button",
|
|
1037
|
+
{
|
|
1038
|
+
className: "orion-admin-action-button",
|
|
1039
|
+
onClick: () => setConfirmDelete(true),
|
|
1040
|
+
style: { background: "#b42318" },
|
|
1041
|
+
type: "button",
|
|
1042
|
+
children: "Delete Asset"
|
|
1043
|
+
}
|
|
1044
|
+
)
|
|
1045
|
+
] })
|
|
1046
1046
|
] });
|
|
1047
1047
|
}
|
|
1048
1048
|
|
|
@@ -1054,7 +1054,7 @@ export {
|
|
|
1054
1054
|
SiteHeaderPreview,
|
|
1055
1055
|
SiteFooterPreview,
|
|
1056
1056
|
HeaderNavEditorWithPreview,
|
|
1057
|
-
MediaDetailPanel,
|
|
1058
1057
|
MediaListItem,
|
|
1059
|
-
MediaUploadForm
|
|
1058
|
+
MediaUploadForm,
|
|
1059
|
+
MediaDetailPanel
|
|
1060
1060
|
};
|
package/dist/index.mjs
CHANGED
|
@@ -5,18 +5,18 @@ import {
|
|
|
5
5
|
admin_app_exports
|
|
6
6
|
} from "./chunk-RKTIFEUY.mjs";
|
|
7
7
|
import "./chunk-W2UOCJDX.mjs";
|
|
8
|
+
import {
|
|
9
|
+
blocks_exports
|
|
10
|
+
} from "./chunk-JQAHXYAM.mjs";
|
|
8
11
|
import {
|
|
9
12
|
nextjs_exports
|
|
10
13
|
} from "./chunk-ZADL33R6.mjs";
|
|
11
14
|
import "./chunk-ZTXJG4K5.mjs";
|
|
12
|
-
import {
|
|
13
|
-
blocks_exports
|
|
14
|
-
} from "./chunk-JQAHXYAM.mjs";
|
|
15
15
|
import {
|
|
16
16
|
studio_pages_exports
|
|
17
|
-
} from "./chunk-
|
|
18
|
-
import "./chunk-7ZMXZRBP.mjs";
|
|
17
|
+
} from "./chunk-NGLIA2OE.mjs";
|
|
19
18
|
import "./chunk-OQSEJXC4.mjs";
|
|
19
|
+
import "./chunk-7ZMXZRBP.mjs";
|
|
20
20
|
import {
|
|
21
21
|
studio_exports
|
|
22
22
|
} from "./chunk-ADIIWIYL.mjs";
|
|
@@ -7,14 +7,14 @@ import {
|
|
|
7
7
|
pageStudioModuleManifest,
|
|
8
8
|
resolveBuilderThemeTokens,
|
|
9
9
|
toEditorInitialDoc
|
|
10
|
-
} from "../chunk-
|
|
10
|
+
} from "../chunk-NGLIA2OE.mjs";
|
|
11
|
+
import "../chunk-OQSEJXC4.mjs";
|
|
11
12
|
import {
|
|
12
13
|
createDefaultStudioDocument,
|
|
13
14
|
defaultBuilderThemeTokens,
|
|
14
15
|
layoutToStudioDocument,
|
|
15
16
|
studioDocumentToLayout
|
|
16
17
|
} from "../chunk-7ZMXZRBP.mjs";
|
|
17
|
-
import "../chunk-OQSEJXC4.mjs";
|
|
18
18
|
import "../chunk-ADIIWIYL.mjs";
|
|
19
19
|
import "../chunk-6BWS3CLP.mjs";
|
|
20
20
|
export {
|
package/package.json
CHANGED
|
@@ -1,3 +1,6 @@
|
|
|
1
|
+
import {
|
|
2
|
+
sectionStyleDefaults
|
|
3
|
+
} from "./chunk-OQSEJXC4.mjs";
|
|
1
4
|
import {
|
|
2
5
|
createDefaultStudioDocument,
|
|
3
6
|
defaultBuilderThemeTokens,
|
|
@@ -5,9 +8,6 @@ import {
|
|
|
5
8
|
migrateBlockToSettingsV2,
|
|
6
9
|
studioDocumentToLayout
|
|
7
10
|
} from "./chunk-7ZMXZRBP.mjs";
|
|
8
|
-
import {
|
|
9
|
-
sectionStyleDefaults
|
|
10
|
-
} from "./chunk-OQSEJXC4.mjs";
|
|
11
11
|
import {
|
|
12
12
|
assertStudioDocumentV1,
|
|
13
13
|
compileStudioDocument,
|