@drawnagency/primitives 0.1.43 → 0.1.45
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/{chunk-VY67DS3O.js → chunk-L2JJFOXD.js} +6 -0
- package/dist/components/editor/IndicatorPill.d.ts.map +1 -1
- package/dist/components/primitives/EditableRichText.d.ts.map +1 -1
- package/dist/components/primitives/ImageDropZone.d.ts +15 -0
- package/dist/components/primitives/ImageDropZone.d.ts.map +1 -0
- package/dist/components/primitives/RichTextToolbar.d.ts.map +1 -1
- package/dist/components/sections/LinkHeading/index.d.ts.map +1 -1
- package/dist/components/sections/MediaGrid/MediaGrid.d.ts.map +1 -1
- package/dist/components/sections/SplitContent/SplitContent.d.ts.map +1 -1
- package/dist/components/sections/SubHeading/index.d.ts.map +1 -1
- package/dist/components/sections/SubSubHeading/index.d.ts.map +1 -1
- package/dist/components/shared/UploadRejectionAlert.d.ts +15 -0
- package/dist/components/shared/UploadRejectionAlert.d.ts.map +1 -0
- package/dist/components/shell/BugReportFAB.d.ts +1 -5
- package/dist/components/shell/BugReportFAB.d.ts.map +1 -1
- package/dist/components/shell/EditorShell.d.ts.map +1 -1
- package/dist/components/shell/MediaLibraryContext.d.ts +4 -0
- package/dist/components/shell/MediaLibraryContext.d.ts.map +1 -1
- package/dist/components/shell/MediaLibraryModal.d.ts.map +1 -1
- package/dist/hooks/useMediaPipeline.d.ts.map +1 -1
- package/dist/index.js +3 -1
- package/dist/media/index.js +3 -1
- package/dist/media/utils.d.ts +1 -0
- package/dist/media/utils.d.ts.map +1 -1
- package/dist/types/database.d.ts +3 -0
- package/dist/types/database.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/components/editor/IndicatorPill.tsx +4 -1
- package/src/components/primitives/EditableRichText.tsx +1 -0
- package/src/components/primitives/ImageDropZone.tsx +74 -0
- package/src/components/primitives/RichTextToolbar.tsx +42 -31
- package/src/components/primitives/tiptap-presets.ts +1 -1
- package/src/components/sections/LinkHeading/index.tsx +0 -1
- package/src/components/sections/MediaGrid/MediaGrid.tsx +18 -5
- package/src/components/sections/SplitContent/SplitContent.tsx +8 -7
- package/src/components/sections/SubHeading/index.tsx +0 -1
- package/src/components/sections/SubSubHeading/index.tsx +0 -1
- package/src/components/shared/UploadRejectionAlert.tsx +52 -0
- package/src/components/shell/BugReportFAB.tsx +21 -31
- package/src/components/shell/EditorShell.tsx +13 -1
- package/src/components/shell/MediaLibraryContext.tsx +1 -0
- package/src/components/shell/MediaLibraryModal.tsx +10 -19
- package/src/hooks/useMediaPipeline.ts +3 -0
- package/src/media/utils.ts +6 -0
- package/src/types/database.ts +3 -0
|
@@ -51,6 +51,11 @@ function displayFilename(originalName, mimeType) {
|
|
|
51
51
|
if (originalName.endsWith(suffix)) return originalName;
|
|
52
52
|
return `${originalName}${suffix}`;
|
|
53
53
|
}
|
|
54
|
+
function formatFileSize(bytes) {
|
|
55
|
+
if (bytes >= 1048576) return `${Math.round(bytes / 1048576)}MB`;
|
|
56
|
+
if (bytes >= 1024) return `${Math.round(bytes / 1024)}KB`;
|
|
57
|
+
return `${bytes}B`;
|
|
58
|
+
}
|
|
54
59
|
|
|
55
60
|
// src/media/queue.ts
|
|
56
61
|
var ProcessingQueue = class {
|
|
@@ -295,6 +300,7 @@ export {
|
|
|
295
300
|
mimeToExt,
|
|
296
301
|
displayFilenameExt,
|
|
297
302
|
displayFilename,
|
|
303
|
+
formatFileSize,
|
|
298
304
|
ProcessingQueue,
|
|
299
305
|
resolveMedia,
|
|
300
306
|
resolveManifestReferences,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IndicatorPill.d.ts","sourceRoot":"","sources":["../../../src/components/editor/IndicatorPill.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAiC,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAItE,UAAU,MAAM;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,UAAU,kBAAkB;IAC1B,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,0FAA0F;IAC1F,YAAY,CAAC,EAAE,SAAS,CAAC;IACzB,YAAY,CAAC,EAAE,SAAS,GAAG,CAAC,CAAC,OAAO,EAAE,MAAM,IAAI,KAAK,SAAS,CAAC,CAAC;IAChE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,wBAAgB,aAAa,CAAC,EAC5B,IAAI,EACJ,KAAK,EACL,YAAY,EACZ,YAAY,EACZ,SAAS,EACT,eAAe,EACf,SAAS,GACV,EAAE,kBAAkB,
|
|
1
|
+
{"version":3,"file":"IndicatorPill.d.ts","sourceRoot":"","sources":["../../../src/components/editor/IndicatorPill.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAiC,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAItE,UAAU,MAAM;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,UAAU,kBAAkB;IAC1B,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,0FAA0F;IAC1F,YAAY,CAAC,EAAE,SAAS,CAAC;IACzB,YAAY,CAAC,EAAE,SAAS,GAAG,CAAC,CAAC,OAAO,EAAE,MAAM,IAAI,KAAK,SAAS,CAAC,CAAC;IAChE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,wBAAgB,aAAa,CAAC,EAC5B,IAAI,EACJ,KAAK,EACL,YAAY,EACZ,YAAY,EACZ,SAAS,EACT,eAAe,EACf,SAAS,GACV,EAAE,kBAAkB,2CA6FpB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EditableRichText.d.ts","sourceRoot":"","sources":["../../../src/components/primitives/EditableRichText.tsx"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAEnD,UAAU,qBAAqB;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACjC,UAAU,EAAE,OAAO,CAAC;IACpB,MAAM,CAAC,EAAE,UAAU,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAQD,wBAAgB,gBAAgB,CAAC,EAC/B,KAAK,EACL,QAAQ,EACR,UAAU,EACV,MAAe,EACf,SAAS,EACT,WAAiC,GAClC,EAAE,qBAAqB,
|
|
1
|
+
{"version":3,"file":"EditableRichText.d.ts","sourceRoot":"","sources":["../../../src/components/primitives/EditableRichText.tsx"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAEnD,UAAU,qBAAqB;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACjC,UAAU,EAAE,OAAO,CAAC;IACpB,MAAM,CAAC,EAAE,UAAU,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAQD,wBAAgB,gBAAgB,CAAC,EAC/B,KAAK,EACL,QAAQ,EACR,UAAU,EACV,MAAe,EACf,SAAS,EACT,WAAiC,GAClC,EAAE,qBAAqB,2CAwHvB"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { type ReactNode } from "react";
|
|
2
|
+
interface ImageDropZoneProps {
|
|
3
|
+
onImageSelected: (imageId: string) => void;
|
|
4
|
+
className?: string;
|
|
5
|
+
children: ReactNode;
|
|
6
|
+
}
|
|
7
|
+
/**
|
|
8
|
+
* Wraps an image slot and turns it into a native-HTML file drop target.
|
|
9
|
+
* Only reacts to drags carrying files, so it never intercepts the grid's
|
|
10
|
+
* pragmatic drag-and-drop reorder (which carries no `Files`). No media
|
|
11
|
+
* library context (viewer / not edit mode) → renders children unchanged.
|
|
12
|
+
*/
|
|
13
|
+
export declare function ImageDropZone({ onImageSelected, className, children }: ImageDropZoneProps): import("react/jsx-runtime").JSX.Element;
|
|
14
|
+
export {};
|
|
15
|
+
//# sourceMappingURL=ImageDropZone.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ImageDropZone.d.ts","sourceRoot":"","sources":["../../../src/components/primitives/ImageDropZone.tsx"],"names":[],"mappings":"AAAA,OAAO,EAA4B,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAIjE,UAAU,kBAAkB;IAC1B,eAAe,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IAC3C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,SAAS,CAAC;CACrB;AAKD;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,EAAE,eAAe,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,kBAAkB,2CAsDzF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RichTextToolbar.d.ts","sourceRoot":"","sources":["../../../src/components/primitives/RichTextToolbar.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"RichTextToolbar.d.ts","sourceRoot":"","sources":["../../../src/components/primitives/RichTextToolbar.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAI3C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAEnD,UAAU,oBAAoB;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,UAAU,CAAC;CACpB;AAoCD,wBAAgB,eAAe,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,oBAAoB,2CAmIvE"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/sections/LinkHeading/index.tsx"],"names":[],"mappings":";;;;;;AAUA,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/sections/LinkHeading/index.tsx"],"names":[],"mappings":";;;;;;AAUA,wBAgBG"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MediaGrid.d.ts","sourceRoot":"","sources":["../../../../src/components/sections/MediaGrid/MediaGrid.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAOhE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"MediaGrid.d.ts","sourceRoot":"","sources":["../../../../src/components/sections/MediaGrid/MediaGrid.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAOhE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAKvC,UAAU,KAAK;IACb,KAAK,EAAE,cAAc,EAAE,CAAC;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAE,cAAc,KAAK,IAAI,CAAC;IAC7C,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,KAAK,IAAI,CAAC;CACzD;AAED,MAAM,CAAC,OAAO,UAAU,SAAS,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,YAAY,EAAE,WAAW,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,KAAK,2CAgChI"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SplitContent.d.ts","sourceRoot":"","sources":["../../../../src/components/sections/SplitContent/SplitContent.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"SplitContent.d.ts","sourceRoot":"","sources":["../../../../src/components/sections/SplitContent/SplitContent.tsx"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAIhE,UAAU,KAAK;IACb,OAAO,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,aAAa,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IACjC,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAE,cAAc,KAAK,IAAI,CAAC;CAC9C;AAED,MAAM,CAAC,OAAO,UAAU,YAAY,CAAC,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,aAAsB,EAAE,QAAQ,EAAE,EAAE,KAAK,2CA8DxH"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/sections/SubHeading/index.tsx"],"names":[],"mappings":";;;;;;;AAUA,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/sections/SubHeading/index.tsx"],"names":[],"mappings":";;;;;;;AAUA,wBAmBG"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/sections/SubSubHeading/index.tsx"],"names":[],"mappings":";;;;;;;AAUA,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/sections/SubSubHeading/index.tsx"],"names":[],"mappings":";;;;;;;AAUA,wBAmBG"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
export interface UploadRejection {
|
|
2
|
+
name: string;
|
|
3
|
+
reason: "size" | "type";
|
|
4
|
+
}
|
|
5
|
+
/**
|
|
6
|
+
* Compose a human-readable message from a list of rejected uploads.
|
|
7
|
+
* Inline drops only ever send one file, so the single-file branches are the
|
|
8
|
+
* common path; the multi-file branch keeps the helper reusable by the modal.
|
|
9
|
+
*/
|
|
10
|
+
export declare function formatRejections(files: UploadRejection[], maxFileSize?: number): string;
|
|
11
|
+
export declare function UploadRejectionAlert({ message, onDismiss, }: {
|
|
12
|
+
message: string;
|
|
13
|
+
onDismiss: () => void;
|
|
14
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
15
|
+
//# sourceMappingURL=UploadRejectionAlert.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"UploadRejectionAlert.d.ts","sourceRoot":"","sources":["../../../src/components/shared/UploadRejectionAlert.tsx"],"names":[],"mappings":"AAGA,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC;CACzB;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,eAAe,EAAE,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,CAiBvF;AAED,wBAAgB,oBAAoB,CAAC,EACnC,OAAO,EACP,SAAS,GACV,EAAE;IACD,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,IAAI,CAAC;CACvB,2CAaA"}
|
|
@@ -1,6 +1,2 @@
|
|
|
1
|
-
|
|
2
|
-
siteId: string;
|
|
3
|
-
}
|
|
4
|
-
export declare function BugReportFAB({ siteId }: Props): import("react/jsx-runtime").JSX.Element | null;
|
|
5
|
-
export {};
|
|
1
|
+
export declare function BugReportFAB(): import("react/jsx-runtime").JSX.Element | null;
|
|
6
2
|
//# sourceMappingURL=BugReportFAB.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BugReportFAB.d.ts","sourceRoot":"","sources":["../../../src/components/shell/BugReportFAB.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"BugReportFAB.d.ts","sourceRoot":"","sources":["../../../src/components/shell/BugReportFAB.tsx"],"names":[],"mappings":"AA4BA,wBAAgB,YAAY,mDAuT3B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EditorShell.d.ts","sourceRoot":"","sources":["../../../src/components/shell/EditorShell.tsx"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"EditorShell.d.ts","sourceRoot":"","sources":["../../../src/components/shell/EditorShell.tsx"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAuDjD,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAQxD,UAAU,KAAK;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,QAAQ,EAAE,CAAC;IACtB,YAAY,EAAE;QACZ,KAAK,EAAE,OAAO,CAAC;QACf,aAAa,EAAE,OAAO,CAAC;QACvB,YAAY,EAAE,OAAO,CAAC;QACtB,cAAc,EAAE,OAAO,CAAC;QACxB,kBAAkB,EAAE,OAAO,CAAC;QAC5B,cAAc,EAAE,OAAO,CAAC;KACzB,CAAC;IACF,WAAW,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,OAAO,GAAG,QAAQ,CAAA;KAAE,GAAG,IAAI,CAAC;CACjE;AAED,MAAM,CAAC,OAAO,UAAU,WAAW,CAAC,EAClC,OAAO,EACP,MAAM,EACN,SAAS,EAAE,gBAAgB,EAC3B,YAAY,EACZ,WAAW,GACZ,EAAE,KAAK,2CAqpBP"}
|
|
@@ -4,6 +4,10 @@ export interface MediaLibraryContextValue {
|
|
|
4
4
|
openSelectModal: (onSelect: (imageId: string) => void) => void;
|
|
5
5
|
uploadFile: (file: File) => void;
|
|
6
6
|
uploadFileWithCallback: (file: File, onComplete: (imageId: string) => void) => string;
|
|
7
|
+
reportRejectedUploads: (files: {
|
|
8
|
+
name: string;
|
|
9
|
+
reason: "size" | "type";
|
|
10
|
+
}[]) => void;
|
|
7
11
|
manifest: MediaManifest;
|
|
8
12
|
pendingItems: MediaItem[];
|
|
9
13
|
pendingLocalUrls: Record<string, string>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MediaLibraryContext.d.ts","sourceRoot":"","sources":["../../../src/components/shell/MediaLibraryContext.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAClE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAE5D,MAAM,WAAW,wBAAwB;IACvC,eAAe,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,KAAK,IAAI,CAAC;IAC/D,UAAU,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,IAAI,CAAC;IACjC,sBAAsB,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,KAAK,MAAM,CAAC;IACtF,QAAQ,EAAE,aAAa,CAAC;IACxB,YAAY,EAAE,SAAS,EAAE,CAAC;IAC1B,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACzC,UAAU,EAAE,UAAU,GAAG,IAAI,CAAC;CAC/B;AAED,eAAO,MAAM,mBAAmB,0DAAuD,CAAC;AAExF,wBAAgB,eAAe,IAAI,wBAAwB,GAAG,IAAI,CAEjE"}
|
|
1
|
+
{"version":3,"file":"MediaLibraryContext.d.ts","sourceRoot":"","sources":["../../../src/components/shell/MediaLibraryContext.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAClE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAE5D,MAAM,WAAW,wBAAwB;IACvC,eAAe,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,KAAK,IAAI,CAAC;IAC/D,UAAU,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,IAAI,CAAC;IACjC,sBAAsB,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,KAAK,MAAM,CAAC;IACtF,qBAAqB,EAAE,CAAC,KAAK,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,EAAE,KAAK,IAAI,CAAC;IACpF,QAAQ,EAAE,aAAa,CAAC;IACxB,YAAY,EAAE,SAAS,EAAE,CAAC;IAC1B,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACzC,UAAU,EAAE,UAAU,GAAG,IAAI,CAAC;CAC/B;AAED,eAAO,MAAM,mBAAmB,0DAAuD,CAAC;AAExF,wBAAgB,eAAe,IAAI,wBAAwB,GAAG,IAAI,CAEjE"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MediaLibraryModal.d.ts","sourceRoot":"","sources":["../../../src/components/shell/MediaLibraryModal.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"MediaLibraryModal.d.ts","sourceRoot":"","sources":["../../../src/components/shell/MediaLibraryModal.tsx"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,SAAS,EAAa,MAAM,mBAAmB,CAAC;AAG9D,MAAM,WAAW,sBAAsB;IACrC,IAAI,EAAE,QAAQ,GAAG,QAAQ,CAAC;IAC1B,KAAK,EAAE,SAAS,EAAE,CAAC;IACnB,QAAQ,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/B,QAAQ,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC;IAClC,QAAQ,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;IAClC,WAAW,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IAChD,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC1C,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACrC,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAsED,wBAAgB,iBAAiB,CAAC,EAChC,IAAI,EACJ,KAAK,EACL,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,WAAW,EACX,iBAAiB,EACjB,WAAgB,EAChB,WAAW,GACZ,EAAE,sBAAsB,2CAmQxB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useMediaPipeline.d.ts","sourceRoot":"","sources":["../../src/hooks/useMediaPipeline.ts"],"names":[],"mappings":"AAEA,OAAO,EAAmB,KAAK,SAAS,EAAmB,MAAM,gBAAgB,CAAC;AAClF,OAAO,KAAK,EAAE,aAAa,EAAiC,MAAM,gBAAgB,CAAC;AACnF,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,yCAAyC,CAAC;AA0BxF,UAAU,qBAAqB;IAC7B,UAAU,EAAE,UAAU,GAAG,IAAI,CAAC;IAC9B,aAAa,EAAE,aAAa,CAAC;IAC7B,gBAAgB,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC,CAAC;IACtE,QAAQ,EAAE,aAAa,EAAE,CAAC;IAC1B,WAAW,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC;IACnE,oBAAoB,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC;IACpE,kBAAkB,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IACtE,gBAAgB,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc,KAAK,IAAI,CAAC;CACxE;AAED,wBAAgB,gBAAgB,CAAC,EAC/B,UAAU,EACV,aAAa,EACb,gBAAgB,EAChB,QAAQ,EACR,WAAW,EACX,oBAAoB,EACpB,kBAAkB,EAClB,gBAAgB,GACjB,EAAE,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+BA6H8B,IAAI,EAAE;6BAyBR,MAAM,EAAE;+BA+CZ,MAAM,OAAO,MAAM;;;wBA+B1B,IAAI,eAAe,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI;
|
|
1
|
+
{"version":3,"file":"useMediaPipeline.d.ts","sourceRoot":"","sources":["../../src/hooks/useMediaPipeline.ts"],"names":[],"mappings":"AAEA,OAAO,EAAmB,KAAK,SAAS,EAAmB,MAAM,gBAAgB,CAAC;AAClF,OAAO,KAAK,EAAE,aAAa,EAAiC,MAAM,gBAAgB,CAAC;AACnF,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,yCAAyC,CAAC;AA0BxF,UAAU,qBAAqB;IAC7B,UAAU,EAAE,UAAU,GAAG,IAAI,CAAC;IAC9B,aAAa,EAAE,aAAa,CAAC;IAC7B,gBAAgB,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC,CAAC;IACtE,QAAQ,EAAE,aAAa,EAAE,CAAC;IAC1B,WAAW,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC;IACnE,oBAAoB,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC;IACpE,kBAAkB,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IACtE,gBAAgB,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc,KAAK,IAAI,CAAC;CACxE;AAED,wBAAgB,gBAAgB,CAAC,EAC/B,UAAU,EACV,aAAa,EACb,gBAAgB,EAChB,QAAQ,EACR,WAAW,EACX,oBAAoB,EACpB,kBAAkB,EAClB,gBAAgB,GACjB,EAAE,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+BA6H8B,IAAI,EAAE;6BAyBR,MAAM,EAAE;+BA+CZ,MAAM,OAAO,MAAM;;;wBA+B1B,IAAI,eAAe,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI;EA2EpF"}
|
package/dist/index.js
CHANGED
|
@@ -75,6 +75,7 @@ import {
|
|
|
75
75
|
ProcessingQueue,
|
|
76
76
|
displayFilename,
|
|
77
77
|
displayFilenameExt,
|
|
78
|
+
formatFileSize,
|
|
78
79
|
generateVideoPoster,
|
|
79
80
|
getMediaProvider,
|
|
80
81
|
hashFileBuffer,
|
|
@@ -83,7 +84,7 @@ import {
|
|
|
83
84
|
resolveMedia,
|
|
84
85
|
sanitizeMediaName,
|
|
85
86
|
setMediaProvider
|
|
86
|
-
} from "./chunk-
|
|
87
|
+
} from "./chunk-L2JJFOXD.js";
|
|
87
88
|
import {
|
|
88
89
|
ImageManifestSchema,
|
|
89
90
|
MediaConfigSchema,
|
|
@@ -131,6 +132,7 @@ export {
|
|
|
131
132
|
editModeEvent,
|
|
132
133
|
ensureSanitizer,
|
|
133
134
|
env,
|
|
135
|
+
formatFileSize,
|
|
134
136
|
formatTimestamp,
|
|
135
137
|
generateNavLinks,
|
|
136
138
|
generateVideoPoster,
|
package/dist/media/index.js
CHANGED
|
@@ -4,6 +4,7 @@ import {
|
|
|
4
4
|
ProcessingQueue,
|
|
5
5
|
displayFilename,
|
|
6
6
|
displayFilenameExt,
|
|
7
|
+
formatFileSize,
|
|
7
8
|
generateVideoPoster,
|
|
8
9
|
getMediaProvider,
|
|
9
10
|
hashFileBuffer,
|
|
@@ -12,7 +13,7 @@ import {
|
|
|
12
13
|
resolveMedia,
|
|
13
14
|
sanitizeMediaName,
|
|
14
15
|
setMediaProvider
|
|
15
|
-
} from "../chunk-
|
|
16
|
+
} from "../chunk-L2JJFOXD.js";
|
|
16
17
|
import {
|
|
17
18
|
ImageManifestSchema,
|
|
18
19
|
MediaConfigSchema,
|
|
@@ -29,6 +30,7 @@ export {
|
|
|
29
30
|
VariantSchema,
|
|
30
31
|
displayFilename,
|
|
31
32
|
displayFilenameExt,
|
|
33
|
+
formatFileSize,
|
|
32
34
|
generateVideoPoster,
|
|
33
35
|
getMediaProvider,
|
|
34
36
|
hashFileBuffer,
|
package/dist/media/utils.d.ts
CHANGED
|
@@ -5,4 +5,5 @@ export declare const EXT_TO_MIME: Record<string, string>;
|
|
|
5
5
|
export declare function mimeToExt(mime: string): string;
|
|
6
6
|
export declare function displayFilenameExt(mime: string): string;
|
|
7
7
|
export declare function displayFilename(originalName: string, mimeType: string): string;
|
|
8
|
+
export declare function formatFileSize(bytes: number): string;
|
|
8
9
|
//# sourceMappingURL=utils.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/media/utils.ts"],"names":[],"mappings":"AAAA,wBAAsB,cAAc,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC,CAqBzE;AAED,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEtD;AAED,eAAO,MAAM,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAI9C,CAAC;AAEF,eAAO,MAAM,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAK9C,CAAC;AAEF,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAE9C;AAED,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAGvD;AAED,wBAAgB,eAAe,CAAC,YAAY,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAM9E"}
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/media/utils.ts"],"names":[],"mappings":"AAAA,wBAAsB,cAAc,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC,CAqBzE;AAED,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEtD;AAED,eAAO,MAAM,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAI9C,CAAC;AAEF,eAAO,MAAM,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAK9C,CAAC;AAEF,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAE9C;AAED,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAGvD;AAED,wBAAgB,eAAe,CAAC,YAAY,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAM9E;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAIpD"}
|
package/dist/types/database.d.ts
CHANGED
|
@@ -71,6 +71,7 @@ export type Database = {
|
|
|
71
71
|
images: Json;
|
|
72
72
|
is_critical: boolean;
|
|
73
73
|
site_id: string;
|
|
74
|
+
status: string;
|
|
74
75
|
user_id: string;
|
|
75
76
|
};
|
|
76
77
|
Insert: {
|
|
@@ -82,6 +83,7 @@ export type Database = {
|
|
|
82
83
|
images?: Json;
|
|
83
84
|
is_critical?: boolean;
|
|
84
85
|
site_id: string;
|
|
86
|
+
status?: string;
|
|
85
87
|
user_id: string;
|
|
86
88
|
};
|
|
87
89
|
Update: {
|
|
@@ -93,6 +95,7 @@ export type Database = {
|
|
|
93
95
|
images?: Json;
|
|
94
96
|
is_critical?: boolean;
|
|
95
97
|
site_id?: string;
|
|
98
|
+
status?: string;
|
|
96
99
|
user_id?: string;
|
|
97
100
|
};
|
|
98
101
|
Relationships: [
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"database.d.ts","sourceRoot":"","sources":["../../src/types/database.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"database.d.ts","sourceRoot":"","sources":["../../src/types/database.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -76,7 +76,10 @@ export function IndicatorPill({
|
|
|
76
76
|
aria-expanded={clickContent ? clickOpen : undefined}
|
|
77
77
|
aria-label={ariaLabel}
|
|
78
78
|
className={cn(
|
|
79
|
-
|
|
79
|
+
// align-middle keeps the inline-flex pill centred in its line box regardless of
|
|
80
|
+
// whether it leads with a status/audience dot — without it, the dot-less variant's
|
|
81
|
+
// text baseline sits ~2px lower than the dotted variant, misaligning the two pills.
|
|
82
|
+
"cursor-pointer inline-flex items-center gap-1.5 rounded-full px-2 py-0.5 text-xs font-medium align-middle",
|
|
80
83
|
"border border-base-200 hover:bg-base-accent",
|
|
81
84
|
buttonClassName,
|
|
82
85
|
)}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import { useState, type DragEvent, type ReactNode } from "react";
|
|
2
|
+
import { cn } from "../../lib/cn";
|
|
3
|
+
import { useMediaLibrary } from "../shell/MediaLibraryContext";
|
|
4
|
+
|
|
5
|
+
interface ImageDropZoneProps {
|
|
6
|
+
onImageSelected: (imageId: string) => void;
|
|
7
|
+
className?: string;
|
|
8
|
+
children: ReactNode;
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
// Equivalent to the media library modal's accept="image/*,video/*".
|
|
12
|
+
const ACCEPTED = /^(image|video)\//;
|
|
13
|
+
|
|
14
|
+
/**
|
|
15
|
+
* Wraps an image slot and turns it into a native-HTML file drop target.
|
|
16
|
+
* Only reacts to drags carrying files, so it never intercepts the grid's
|
|
17
|
+
* pragmatic drag-and-drop reorder (which carries no `Files`). No media
|
|
18
|
+
* library context (viewer / not edit mode) → renders children unchanged.
|
|
19
|
+
*/
|
|
20
|
+
export function ImageDropZone({ onImageSelected, className, children }: ImageDropZoneProps) {
|
|
21
|
+
const mediaLibrary = useMediaLibrary();
|
|
22
|
+
const [dragging, setDragging] = useState(false);
|
|
23
|
+
|
|
24
|
+
if (!mediaLibrary) return <>{children}</>;
|
|
25
|
+
|
|
26
|
+
const maxFileSize = mediaLibrary.siteConfig?.media.maxFileSize;
|
|
27
|
+
const hasFiles = (e: DragEvent) => e.dataTransfer.types.includes("Files");
|
|
28
|
+
|
|
29
|
+
const handleDragOver = (e: DragEvent) => {
|
|
30
|
+
if (!hasFiles(e)) return;
|
|
31
|
+
e.preventDefault();
|
|
32
|
+
e.dataTransfer.dropEffect = "copy";
|
|
33
|
+
setDragging(true);
|
|
34
|
+
};
|
|
35
|
+
|
|
36
|
+
const handleDragLeave = (e: DragEvent) => {
|
|
37
|
+
if (!hasFiles(e)) return;
|
|
38
|
+
const related = e.relatedTarget as Node | null;
|
|
39
|
+
if (related && e.currentTarget.contains(related)) return;
|
|
40
|
+
setDragging(false);
|
|
41
|
+
};
|
|
42
|
+
|
|
43
|
+
const handleDrop = (e: DragEvent) => {
|
|
44
|
+
if (!hasFiles(e)) return;
|
|
45
|
+
e.preventDefault();
|
|
46
|
+
e.stopPropagation();
|
|
47
|
+
setDragging(false);
|
|
48
|
+
const file = e.dataTransfer.files[0];
|
|
49
|
+
if (!file) return;
|
|
50
|
+
if (!ACCEPTED.test(file.type)) {
|
|
51
|
+
mediaLibrary.reportRejectedUploads([{ name: file.name, reason: "type" }]);
|
|
52
|
+
return;
|
|
53
|
+
}
|
|
54
|
+
if (maxFileSize && file.size > maxFileSize) {
|
|
55
|
+
mediaLibrary.reportRejectedUploads([{ name: file.name, reason: "size" }]);
|
|
56
|
+
return;
|
|
57
|
+
}
|
|
58
|
+
mediaLibrary.uploadFileWithCallback(file, onImageSelected);
|
|
59
|
+
};
|
|
60
|
+
|
|
61
|
+
return (
|
|
62
|
+
<div
|
|
63
|
+
className={cn("relative", className)}
|
|
64
|
+
onDragOver={handleDragOver}
|
|
65
|
+
onDragLeave={handleDragLeave}
|
|
66
|
+
onDrop={handleDrop}
|
|
67
|
+
>
|
|
68
|
+
{children}
|
|
69
|
+
{dragging && (
|
|
70
|
+
<div className="pointer-events-none absolute inset-0 z-10 rounded-md border-2 border-primary bg-primary/5" />
|
|
71
|
+
)}
|
|
72
|
+
</div>
|
|
73
|
+
);
|
|
74
|
+
}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { useState } from "react";
|
|
2
2
|
import type { Editor } from "@tiptap/core";
|
|
3
|
+
import { useEditorState } from "@tiptap/react";
|
|
3
4
|
import { cn } from "../../lib/cn";
|
|
4
5
|
import { LinkPopover } from "./LinkPopover";
|
|
5
6
|
import type { PresetName } from "./tiptap-presets";
|
|
@@ -46,14 +47,28 @@ function Separator() {
|
|
|
46
47
|
export function RichTextToolbar({ editor, preset }: RichTextToolbarProps) {
|
|
47
48
|
const [showLinkPopover, setShowLinkPopover] = useState(false);
|
|
48
49
|
|
|
49
|
-
const
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
50
|
+
const state = useEditorState({
|
|
51
|
+
editor,
|
|
52
|
+
selector: ({ editor: ed }) => ({
|
|
53
|
+
isBold: ed.isActive("bold"),
|
|
54
|
+
isItalic: ed.isActive("italic"),
|
|
55
|
+
isUnderline: ed.isActive("underline"),
|
|
56
|
+
isLink: ed.isActive("link"),
|
|
57
|
+
isBulletList: ed.isActive("bulletList"),
|
|
58
|
+
isOrderedList: ed.isActive("orderedList"),
|
|
59
|
+
isH3: ed.isActive("heading", { level: 3 }),
|
|
60
|
+
isH4: ed.isActive("heading", { level: 4 }),
|
|
61
|
+
isLarge: ed.isActive("paragraph", { class: "large" }),
|
|
62
|
+
isLeadIn: ed.isActive("paragraph", { class: "lead-in" }),
|
|
63
|
+
}),
|
|
64
|
+
});
|
|
65
|
+
|
|
66
|
+
const toggleParagraphVariant = (cls: string, isCurrentlyActive: boolean) => {
|
|
67
|
+
if (isCurrentlyActive) {
|
|
68
|
+
editor.chain().focus().setNode("paragraph").run();
|
|
69
|
+
} else {
|
|
70
|
+
editor.chain().focus().setNode("paragraph", { class: cls }).run();
|
|
71
|
+
}
|
|
57
72
|
};
|
|
58
73
|
|
|
59
74
|
return (
|
|
@@ -63,21 +78,21 @@ export function RichTextToolbar({ editor, preset }: RichTextToolbarProps) {
|
|
|
63
78
|
>
|
|
64
79
|
{/* Inline formatting group */}
|
|
65
80
|
<ToolbarButton
|
|
66
|
-
isActive={
|
|
81
|
+
isActive={state.isBold}
|
|
67
82
|
onClick={() => editor.chain().focus().toggleBold().run()}
|
|
68
83
|
title="Bold"
|
|
69
84
|
>
|
|
70
85
|
<strong>B</strong>
|
|
71
86
|
</ToolbarButton>
|
|
72
87
|
<ToolbarButton
|
|
73
|
-
isActive={
|
|
88
|
+
isActive={state.isItalic}
|
|
74
89
|
onClick={() => editor.chain().focus().toggleItalic().run()}
|
|
75
90
|
title="Italic"
|
|
76
91
|
>
|
|
77
92
|
<em>I</em>
|
|
78
93
|
</ToolbarButton>
|
|
79
94
|
<ToolbarButton
|
|
80
|
-
isActive={
|
|
95
|
+
isActive={state.isUnderline}
|
|
81
96
|
onClick={() => editor.chain().focus().toggleUnderline().run()}
|
|
82
97
|
title="Underline"
|
|
83
98
|
>
|
|
@@ -91,7 +106,7 @@ export function RichTextToolbar({ editor, preset }: RichTextToolbarProps) {
|
|
|
91
106
|
{/* Link */}
|
|
92
107
|
<div className="relative">
|
|
93
108
|
<ToolbarButton
|
|
94
|
-
isActive={
|
|
109
|
+
isActive={state.isLink || showLinkPopover}
|
|
95
110
|
onClick={() => setShowLinkPopover((prev) => !prev)}
|
|
96
111
|
title="Link"
|
|
97
112
|
>
|
|
@@ -111,14 +126,14 @@ export function RichTextToolbar({ editor, preset }: RichTextToolbarProps) {
|
|
|
111
126
|
|
|
112
127
|
{/* Lists */}
|
|
113
128
|
<ToolbarButton
|
|
114
|
-
isActive={
|
|
129
|
+
isActive={state.isBulletList}
|
|
115
130
|
onClick={() => editor.chain().focus().toggleBulletList().run()}
|
|
116
131
|
title="Bullet List"
|
|
117
132
|
>
|
|
118
133
|
•≡
|
|
119
134
|
</ToolbarButton>
|
|
120
135
|
<ToolbarButton
|
|
121
|
-
isActive={
|
|
136
|
+
isActive={state.isOrderedList}
|
|
122
137
|
onClick={() => editor.chain().focus().toggleOrderedList().run()}
|
|
123
138
|
title="Ordered List"
|
|
124
139
|
>
|
|
@@ -127,35 +142,31 @@ export function RichTextToolbar({ editor, preset }: RichTextToolbarProps) {
|
|
|
127
142
|
|
|
128
143
|
<Separator />
|
|
129
144
|
|
|
130
|
-
{/*
|
|
131
|
-
<ToolbarButton
|
|
132
|
-
isActive={editor.isActive("heading", { level: 2 })}
|
|
133
|
-
onClick={() => editor.chain().focus().toggleHeading({ level: 2 }).run()}
|
|
134
|
-
title="Heading 2"
|
|
135
|
-
>
|
|
136
|
-
H2
|
|
137
|
-
</ToolbarButton>
|
|
145
|
+
{/* Block styles — mutually exclusive */}
|
|
138
146
|
<ToolbarButton
|
|
139
|
-
isActive={
|
|
147
|
+
isActive={state.isH3}
|
|
140
148
|
onClick={() => editor.chain().focus().toggleHeading({ level: 3 }).run()}
|
|
141
149
|
title="Heading 3"
|
|
142
150
|
>
|
|
143
151
|
H3
|
|
144
152
|
</ToolbarButton>
|
|
145
|
-
|
|
146
|
-
<Separator />
|
|
147
|
-
|
|
148
|
-
{/* Paragraph variants */}
|
|
149
153
|
<ToolbarButton
|
|
150
|
-
isActive={
|
|
151
|
-
onClick={() =>
|
|
154
|
+
isActive={state.isH4}
|
|
155
|
+
onClick={() => editor.chain().focus().toggleHeading({ level: 4 }).run()}
|
|
156
|
+
title="Heading 4"
|
|
157
|
+
>
|
|
158
|
+
H4
|
|
159
|
+
</ToolbarButton>
|
|
160
|
+
<ToolbarButton
|
|
161
|
+
isActive={state.isLarge}
|
|
162
|
+
onClick={() => toggleParagraphVariant("large", state.isLarge)}
|
|
152
163
|
title="Large Paragraph"
|
|
153
164
|
>
|
|
154
165
|
Lg
|
|
155
166
|
</ToolbarButton>
|
|
156
167
|
<ToolbarButton
|
|
157
|
-
isActive={
|
|
158
|
-
onClick={() =>
|
|
168
|
+
isActive={state.isLeadIn}
|
|
169
|
+
onClick={() => toggleParagraphVariant("lead-in", state.isLeadIn)}
|
|
159
170
|
title="Lead-In"
|
|
160
171
|
>
|
|
161
172
|
Li
|
|
@@ -19,7 +19,6 @@ export default defineSection({
|
|
|
19
19
|
heading={content.content.heading}
|
|
20
20
|
tag="h2"
|
|
21
21
|
placeholder="Section heading"
|
|
22
|
-
className="text-primary"
|
|
23
22
|
onChange={onChange ? (heading: string) => onChange({ type: "link_heading", content: { heading } }) : undefined}
|
|
24
23
|
/>
|
|
25
24
|
),
|
|
@@ -9,6 +9,7 @@ import { EditablePlainText } from "../../primitives/EditablePlainText";
|
|
|
9
9
|
import type { ReactNode } from "react";
|
|
10
10
|
import { Check, X } from "lucide-react";
|
|
11
11
|
import { useMediaLibrary } from "../../shell/MediaLibraryContext";
|
|
12
|
+
import { ImageDropZone } from "../../primitives/ImageDropZone";
|
|
12
13
|
|
|
13
14
|
interface Props {
|
|
14
15
|
media: MediaReference[];
|
|
@@ -101,11 +102,13 @@ function MediaGridEditable({ media, columns, square, border, crop, showCaptions,
|
|
|
101
102
|
}
|
|
102
103
|
};
|
|
103
104
|
|
|
105
|
+
const setItemImage = (index: number, imageId: string) => {
|
|
106
|
+
const newMedia = media.map((m, i) => i === index ? { ...m, imageId } : m);
|
|
107
|
+
onChange({ type: sectionType, content: { columns, media: newMedia }, ...opts } as SectionContent);
|
|
108
|
+
};
|
|
109
|
+
|
|
104
110
|
const handleItemImageClick = (index: number) => {
|
|
105
|
-
mediaLibrary?.openSelectModal((imageId) =>
|
|
106
|
-
const newMedia = media.map((m, i) => i === index ? { ...m, imageId } : m);
|
|
107
|
-
onChange({ type: sectionType, content: { columns, media: newMedia }, ...opts } as SectionContent);
|
|
108
|
-
});
|
|
111
|
+
mediaLibrary?.openSelectModal((imageId) => setItemImage(index, imageId));
|
|
109
112
|
};
|
|
110
113
|
|
|
111
114
|
return (
|
|
@@ -128,6 +131,7 @@ function MediaGridEditable({ media, columns, square, border, crop, showCaptions,
|
|
|
128
131
|
border={border}
|
|
129
132
|
crop={crop}
|
|
130
133
|
showCaptions={showCaptions}
|
|
134
|
+
onImageReplace={mediaLibrary ? (imageId) => setItemImage(index, imageId) : undefined}
|
|
131
135
|
onCaptionChange={(caption) => {
|
|
132
136
|
const newMedia = media.map((m, i) => i === index ? { ...m, caption: caption || undefined } : m);
|
|
133
137
|
onChange({ type: sectionType, content: { columns, media: newMedia }, ...opts } as SectionContent);
|
|
@@ -146,6 +150,7 @@ function MediaGridItem({
|
|
|
146
150
|
crop,
|
|
147
151
|
showCaptions,
|
|
148
152
|
onCaptionChange,
|
|
153
|
+
onImageReplace,
|
|
149
154
|
}: {
|
|
150
155
|
item: MediaReference;
|
|
151
156
|
isEditMode: boolean;
|
|
@@ -154,6 +159,7 @@ function MediaGridItem({
|
|
|
154
159
|
crop?: boolean;
|
|
155
160
|
showCaptions?: boolean;
|
|
156
161
|
onCaptionChange?: (caption: string) => void;
|
|
162
|
+
onImageReplace?: (imageId: string) => void;
|
|
157
163
|
}) {
|
|
158
164
|
const isDoDont = item.type === "doDontImage";
|
|
159
165
|
|
|
@@ -167,7 +173,7 @@ function MediaGridItem({
|
|
|
167
173
|
: "";
|
|
168
174
|
|
|
169
175
|
const itemAny = item as Record<string, unknown>;
|
|
170
|
-
const
|
|
176
|
+
const resolvedMedia = (
|
|
171
177
|
<ResolvedMedia
|
|
172
178
|
imageId={item.imageId || undefined}
|
|
173
179
|
src={itemAny.src as string | undefined}
|
|
@@ -178,6 +184,13 @@ function MediaGridItem({
|
|
|
178
184
|
invertFrom={item.invertFrom}
|
|
179
185
|
/>
|
|
180
186
|
);
|
|
187
|
+
const media = onImageReplace ? (
|
|
188
|
+
<ImageDropZone onImageSelected={onImageReplace} className="h-full w-full">
|
|
189
|
+
{resolvedMedia}
|
|
190
|
+
</ImageDropZone>
|
|
191
|
+
) : (
|
|
192
|
+
resolvedMedia
|
|
193
|
+
);
|
|
181
194
|
|
|
182
195
|
return (
|
|
183
196
|
<figure>
|
|
@@ -3,6 +3,7 @@ import { sanitizeHtml } from "../../../lib/sanitize";
|
|
|
3
3
|
import { ResolvedMedia } from "../../primitives/ResolvedMedia";
|
|
4
4
|
import { EditableRichText } from "../../primitives/EditableRichText";
|
|
5
5
|
import { IconButton } from "../../shared/IconButton";
|
|
6
|
+
import { ImageDropZone } from "../../primitives/ImageDropZone";
|
|
6
7
|
import type { SectionContent } from "../../../schemas/sections";
|
|
7
8
|
import { useMediaLibrary } from "../../shell/MediaLibraryContext";
|
|
8
9
|
import { ImageIcon } from "lucide-react";
|
|
@@ -47,13 +48,13 @@ export default function SplitContent({ imageId, src, srcset, alt, body, border,
|
|
|
47
48
|
imagePosition === "right" && "lg:flex-row-reverse",
|
|
48
49
|
)}>
|
|
49
50
|
<div className={cn("group/img relative flex-shrink-0 lg:w-1/2", border && "overflow-hidden rounded-md border border-base-200")}>
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
className="w-full"
|
|
56
|
-
|
|
51
|
+
{onChange && mediaLibrary ? (
|
|
52
|
+
<ImageDropZone onImageSelected={handleImageChange}>
|
|
53
|
+
<ResolvedMedia imageId={imageId} src={src} srcset={srcset} alt={alt} className="w-full" />
|
|
54
|
+
</ImageDropZone>
|
|
55
|
+
) : (
|
|
56
|
+
<ResolvedMedia imageId={imageId} src={src} srcset={srcset} alt={alt} className="w-full" />
|
|
57
|
+
)}
|
|
57
58
|
{onChange && mediaLibrary && (
|
|
58
59
|
<div className="absolute top-1.5 right-1.5 z-10 opacity-0 transition-opacity group-hover/img:opacity-100">
|
|
59
60
|
<IconButton
|
|
@@ -19,7 +19,6 @@ export default defineSection({
|
|
|
19
19
|
heading={content.content.heading}
|
|
20
20
|
tag="h3"
|
|
21
21
|
placeholder="Sub heading"
|
|
22
|
-
className="text-base-contrast"
|
|
23
22
|
onChange={onChange ? (heading: string) => onChange({ ...content, content: { ...content.content, heading } }) : undefined}
|
|
24
23
|
/>
|
|
25
24
|
),
|
|
@@ -19,7 +19,6 @@ export default defineSection({
|
|
|
19
19
|
heading={content.content.heading}
|
|
20
20
|
tag="h4"
|
|
21
21
|
placeholder="Sub sub heading"
|
|
22
|
-
className="text-lg font-bold text-base-contrast"
|
|
23
22
|
onChange={onChange ? (heading: string) => onChange({ ...content, content: { ...content.content, heading } }) : undefined}
|
|
24
23
|
/>
|
|
25
24
|
),
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { Button } from "./Button";
|
|
2
|
+
import { formatFileSize } from "../../media/utils";
|
|
3
|
+
|
|
4
|
+
export interface UploadRejection {
|
|
5
|
+
name: string;
|
|
6
|
+
reason: "size" | "type";
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* Compose a human-readable message from a list of rejected uploads.
|
|
11
|
+
* Inline drops only ever send one file, so the single-file branches are the
|
|
12
|
+
* common path; the multi-file branch keeps the helper reusable by the modal.
|
|
13
|
+
*/
|
|
14
|
+
export function formatRejections(files: UploadRejection[], maxFileSize?: number): string {
|
|
15
|
+
if (files.length === 0) return "";
|
|
16
|
+
if (files.length === 1) {
|
|
17
|
+
const f = files[0];
|
|
18
|
+
if (f.reason === "size") {
|
|
19
|
+
return maxFileSize
|
|
20
|
+
? `"${f.name}" exceeds the ${formatFileSize(maxFileSize)} file size limit.`
|
|
21
|
+
: `"${f.name}" exceeds the file size limit.`;
|
|
22
|
+
}
|
|
23
|
+
return `"${f.name}" — images and videos only.`;
|
|
24
|
+
}
|
|
25
|
+
const sizeCount = files.filter((f) => f.reason === "size").length;
|
|
26
|
+
const typeCount = files.length - sizeCount;
|
|
27
|
+
const parts: string[] = [];
|
|
28
|
+
if (sizeCount > 0) parts.push(`${sizeCount} too large`);
|
|
29
|
+
if (typeCount > 0) parts.push(`${typeCount} not an image or video`);
|
|
30
|
+
return `${files.length} files rejected (${parts.join(", ")}).`;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
export function UploadRejectionAlert({
|
|
34
|
+
message,
|
|
35
|
+
onDismiss,
|
|
36
|
+
}: {
|
|
37
|
+
message: string;
|
|
38
|
+
onDismiss: () => void;
|
|
39
|
+
}) {
|
|
40
|
+
return (
|
|
41
|
+
<div role="alert" className="flex flex-col items-center rounded-lg border border-amber-200 bg-amber-50 px-4 py-3 lg:flex-row lg:justify-between dark:border-amber-900/50 dark:bg-amber-950/30">
|
|
42
|
+
<p className="mb-2 text-center text-sm text-amber-800 lg:mb-0 lg:text-left dark:text-amber-200">
|
|
43
|
+
{message}
|
|
44
|
+
</p>
|
|
45
|
+
<div className="flex shrink-0 items-center">
|
|
46
|
+
<Button variant="secondary" size="sm" type="button" onClick={onDismiss}>
|
|
47
|
+
Dismiss
|
|
48
|
+
</Button>
|
|
49
|
+
</div>
|
|
50
|
+
</div>
|
|
51
|
+
);
|
|
52
|
+
}
|
|
@@ -1,13 +1,6 @@
|
|
|
1
1
|
import { useState, useCallback, useRef, useEffect } from "react";
|
|
2
|
-
import { createClient } from "@supabase/supabase-js";
|
|
3
|
-
import type { Database, Json } from "../../types/database";
|
|
4
2
|
import { EditorModal } from "./EditorModal";
|
|
5
3
|
import { useEditorContext } from "./EditorContext";
|
|
6
|
-
import { env } from "../../lib/env";
|
|
7
|
-
|
|
8
|
-
interface Props {
|
|
9
|
-
siteId: string;
|
|
10
|
-
}
|
|
11
4
|
|
|
12
5
|
type Category = "Visual" | "Unexpected Behavior" | "Media / Media Library" | "Save / Publish" | "Feature Request" | "Other";
|
|
13
6
|
|
|
@@ -33,7 +26,7 @@ interface ImagePreview {
|
|
|
33
26
|
name: string;
|
|
34
27
|
}
|
|
35
28
|
|
|
36
|
-
export function BugReportFAB(
|
|
29
|
+
export function BugReportFAB() {
|
|
37
30
|
const { isEditMode, historyState } = useEditorContext();
|
|
38
31
|
const [isOpen, setIsOpen] = useState(false);
|
|
39
32
|
const [category, setCategory] = useState<Category>("Visual");
|
|
@@ -150,30 +143,27 @@ export function BugReportFAB({ siteId }: Props) {
|
|
|
150
143
|
setIsSubmitting(true);
|
|
151
144
|
|
|
152
145
|
try {
|
|
153
|
-
const
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
}
|
|
164
|
-
|
|
165
|
-
const { error } = await supabase.from("bug_reports").insert({
|
|
166
|
-
site_id: siteId,
|
|
167
|
-
user_id: userId,
|
|
168
|
-
category,
|
|
169
|
-
is_critical: isCritical,
|
|
170
|
-
description: description.trim(),
|
|
171
|
-
images: images.map((img) => img.dataUri),
|
|
172
|
-
context: capturedContextRef.current as Json,
|
|
146
|
+
const response = await fetch("/api/bug-report", {
|
|
147
|
+
method: "POST",
|
|
148
|
+
headers: { "Content-Type": "application/json" },
|
|
149
|
+
body: JSON.stringify({
|
|
150
|
+
category,
|
|
151
|
+
is_critical: isCritical,
|
|
152
|
+
description: description.trim(),
|
|
153
|
+
images: images.map((img) => img.dataUri),
|
|
154
|
+
context: capturedContextRef.current,
|
|
155
|
+
}),
|
|
173
156
|
});
|
|
174
157
|
|
|
175
|
-
if (
|
|
176
|
-
|
|
158
|
+
if (!response.ok) {
|
|
159
|
+
let message = "Submission failed";
|
|
160
|
+
try {
|
|
161
|
+
const data = await response.json();
|
|
162
|
+
if (data?.error) message = data.error;
|
|
163
|
+
} catch {
|
|
164
|
+
// No JSON body on the error response; keep the default message.
|
|
165
|
+
}
|
|
166
|
+
setSubmitError(message);
|
|
177
167
|
return;
|
|
178
168
|
}
|
|
179
169
|
|
|
@@ -185,7 +175,7 @@ export function BugReportFAB({ siteId }: Props) {
|
|
|
185
175
|
} finally {
|
|
186
176
|
setIsSubmitting(false);
|
|
187
177
|
}
|
|
188
|
-
}, [
|
|
178
|
+
}, [category, isCritical, description, images, handleClose]);
|
|
189
179
|
|
|
190
180
|
const visible = isEditMode && historyState === null;
|
|
191
181
|
|
|
@@ -47,6 +47,7 @@ import { formatTimestamp } from "../../lib/timestamp";
|
|
|
47
47
|
import { generateNavLinks } from "../../lib/nav";
|
|
48
48
|
import { navChangeEvent, darkModeEvent, historySelectEvent } from "../../lib/events";
|
|
49
49
|
import { cn } from "../../lib/cn";
|
|
50
|
+
import { UploadRejectionAlert, formatRejections } from "../shared/UploadRejectionAlert";
|
|
50
51
|
import { Button } from "../shared/Button";
|
|
51
52
|
import { SplitButton } from "../shared/SplitButton";
|
|
52
53
|
import { IconButton } from "../shared/IconButton";
|
|
@@ -110,6 +111,7 @@ export default function EditorShell({
|
|
|
110
111
|
const [showRestoreModal, setShowRestoreModal] = useState(false);
|
|
111
112
|
const [showOrderingModal, setShowOrderingModal] = useState(false);
|
|
112
113
|
const [isRestoring, setIsRestoring] = useState(false);
|
|
114
|
+
const [rejectedUploads, setRejectedUploads] = useState<{ name: string; reason: "size" | "type" }[]>([]);
|
|
113
115
|
|
|
114
116
|
const siteIndexRef = useRef<SiteIndex>({ siteId, order: [], sections: {} });
|
|
115
117
|
const fontLinkRef = useRef<HTMLLinkElement | null>(null);
|
|
@@ -612,6 +614,7 @@ export default function EditorShell({
|
|
|
612
614
|
setMediaSelectCallback(() => onSelect);
|
|
613
615
|
setShowMediaLibrary(true);
|
|
614
616
|
},
|
|
617
|
+
reportRejectedUploads: (files) => setRejectedUploads(files),
|
|
615
618
|
}}>
|
|
616
619
|
<div className="editor-shell relative">
|
|
617
620
|
<EditorToolbar
|
|
@@ -636,7 +639,16 @@ export default function EditorShell({
|
|
|
636
639
|
onOrderingClick={() => setShowOrderingModal(true)}
|
|
637
640
|
/>
|
|
638
641
|
|
|
639
|
-
<BugReportFAB
|
|
642
|
+
<BugReportFAB />
|
|
643
|
+
|
|
644
|
+
{rejectedUploads.length > 0 && (
|
|
645
|
+
<div className="sticky top-2 z-30 mx-auto w-full max-w-3xl px-4">
|
|
646
|
+
<UploadRejectionAlert
|
|
647
|
+
message={formatRejections(rejectedUploads, siteConfig?.media.maxFileSize)}
|
|
648
|
+
onDismiss={() => setRejectedUploads([])}
|
|
649
|
+
/>
|
|
650
|
+
</div>
|
|
651
|
+
)}
|
|
640
652
|
|
|
641
653
|
<HistoryOrEditorContent sections={sections}>
|
|
642
654
|
<EditorContent
|
|
@@ -6,6 +6,7 @@ export interface MediaLibraryContextValue {
|
|
|
6
6
|
openSelectModal: (onSelect: (imageId: string) => void) => void;
|
|
7
7
|
uploadFile: (file: File) => void;
|
|
8
8
|
uploadFileWithCallback: (file: File, onComplete: (imageId: string) => void) => string;
|
|
9
|
+
reportRejectedUploads: (files: { name: string; reason: "size" | "type" }[]) => void;
|
|
9
10
|
manifest: MediaManifest;
|
|
10
11
|
pendingItems: MediaItem[];
|
|
11
12
|
pendingLocalUrls: Record<string, string>;
|
|
@@ -2,9 +2,10 @@ import { useState, useRef, useCallback } from "react";
|
|
|
2
2
|
import { Search, Upload, Trash2 } from "lucide-react";
|
|
3
3
|
import { cn } from "../../lib/cn";
|
|
4
4
|
import { Button } from "../shared/Button";
|
|
5
|
+
import { UploadRejectionAlert } from "../shared/UploadRejectionAlert";
|
|
5
6
|
import { Select } from "../shared/Select";
|
|
6
7
|
import type { MediaItem, MediaKind } from "../../media/types";
|
|
7
|
-
import { displayFilename, mimeToExt } from "../../media/utils";
|
|
8
|
+
import { displayFilename, formatFileSize, mimeToExt } from "../../media/utils";
|
|
8
9
|
|
|
9
10
|
export interface MediaLibraryModalProps {
|
|
10
11
|
mode: "select" | "manage";
|
|
@@ -18,12 +19,6 @@ export interface MediaLibraryModalProps {
|
|
|
18
19
|
maxFileSize?: number;
|
|
19
20
|
}
|
|
20
21
|
|
|
21
|
-
function formatFileSize(bytes: number): string {
|
|
22
|
-
if (bytes >= 1048576) return `${Math.round(bytes / 1048576)}MB`;
|
|
23
|
-
if (bytes >= 1024) return `${Math.round(bytes / 1024)}KB`;
|
|
24
|
-
return `${bytes}B`;
|
|
25
|
-
}
|
|
26
|
-
|
|
27
22
|
type KindFilter = "all" | MediaKind;
|
|
28
23
|
|
|
29
24
|
function thumbnailSrc(item: MediaItem, localUrls: Record<string, string>): string {
|
|
@@ -231,18 +226,14 @@ export function MediaLibraryModal({
|
|
|
231
226
|
|
|
232
227
|
{/* File size rejection alert */}
|
|
233
228
|
{rejectedFiles.length > 0 && maxFileSize && (
|
|
234
|
-
<
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
? `"${rejectedFiles[0]}" exceeds
|
|
238
|
-
: `${rejectedFiles.length} files exceed
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
Dismiss
|
|
243
|
-
</Button>
|
|
244
|
-
</div>
|
|
245
|
-
</div>
|
|
229
|
+
<UploadRejectionAlert
|
|
230
|
+
message={
|
|
231
|
+
rejectedFiles.length === 1
|
|
232
|
+
? `"${rejectedFiles[0]}" exceeds the ${formatFileSize(maxFileSize)} file size limit.`
|
|
233
|
+
: `${rejectedFiles.length} files exceed the ${formatFileSize(maxFileSize)} file size limit.`
|
|
234
|
+
}
|
|
235
|
+
onDismiss={() => setRejectedFiles([])}
|
|
236
|
+
/>
|
|
246
237
|
)}
|
|
247
238
|
</div>
|
|
248
239
|
|
|
@@ -330,6 +330,9 @@ export function useMediaPipeline({
|
|
|
330
330
|
});
|
|
331
331
|
return blobUrl;
|
|
332
332
|
},
|
|
333
|
+
reportRejectedUploads: () => {
|
|
334
|
+
// Placeholder — EditorShell overrides this with banner state.
|
|
335
|
+
},
|
|
333
336
|
manifest: mediaManifest,
|
|
334
337
|
pendingItems: pendingMediaItems,
|
|
335
338
|
pendingLocalUrls: pendingLocalUrls,
|
package/src/media/utils.ts
CHANGED
|
@@ -54,3 +54,9 @@ export function displayFilename(originalName: string, mimeType: string): string
|
|
|
54
54
|
if (originalName.endsWith(suffix)) return originalName;
|
|
55
55
|
return `${originalName}${suffix}`;
|
|
56
56
|
}
|
|
57
|
+
|
|
58
|
+
export function formatFileSize(bytes: number): string {
|
|
59
|
+
if (bytes >= 1048576) return `${Math.round(bytes / 1048576)}MB`;
|
|
60
|
+
if (bytes >= 1024) return `${Math.round(bytes / 1024)}KB`;
|
|
61
|
+
return `${bytes}B`;
|
|
62
|
+
}
|
package/src/types/database.ts
CHANGED
|
@@ -78,6 +78,7 @@ export type Database = {
|
|
|
78
78
|
images: Json
|
|
79
79
|
is_critical: boolean
|
|
80
80
|
site_id: string
|
|
81
|
+
status: string
|
|
81
82
|
user_id: string
|
|
82
83
|
}
|
|
83
84
|
Insert: {
|
|
@@ -89,6 +90,7 @@ export type Database = {
|
|
|
89
90
|
images?: Json
|
|
90
91
|
is_critical?: boolean
|
|
91
92
|
site_id: string
|
|
93
|
+
status?: string
|
|
92
94
|
user_id: string
|
|
93
95
|
}
|
|
94
96
|
Update: {
|
|
@@ -100,6 +102,7 @@ export type Database = {
|
|
|
100
102
|
images?: Json
|
|
101
103
|
is_critical?: boolean
|
|
102
104
|
site_id?: string
|
|
105
|
+
status?: string
|
|
103
106
|
user_id?: string
|
|
104
107
|
}
|
|
105
108
|
Relationships: [
|