@rakun-kit/manager-react 1.5.10 → 1.6.0
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 +348 -295
- package/dist/cjs/components/app-sidebar.js +10 -0
- package/dist/cjs/components/app-sidebar.js.map +1 -1
- package/dist/cjs/components/media/MediaLibrary.js +10 -1
- package/dist/cjs/components/media/MediaLibrary.js.map +1 -1
- package/dist/cjs/components/media/contexts/MediaLibraryContext.js +1 -1
- package/dist/cjs/components/media/contexts/MediaLibraryContext.js.map +1 -1
- package/dist/cjs/components/media/previews/MediaContextMenuContent.js +68 -15
- package/dist/cjs/components/media/previews/MediaContextMenuContent.js.map +1 -1
- package/dist/cjs/components/media/previews/Previews.js +89 -35
- package/dist/cjs/components/media/previews/Previews.js.map +1 -1
- package/dist/cjs/components/media/previews/context/MediaPreviewContext.js.map +1 -1
- package/dist/cjs/components/media/previews/dialogs/ExpandedPreviewDialog.js +7 -10
- package/dist/cjs/components/media/previews/dialogs/ExpandedPreviewDialog.js.map +1 -1
- package/dist/cjs/components/media/previews/hooks/useMediaPreviewRenderer.js +3 -1
- package/dist/cjs/components/media/previews/hooks/useMediaPreviewRenderer.js.map +1 -1
- package/dist/cjs/components/media/previews/toolbar/PreviewsToolbar.js +16 -9
- package/dist/cjs/components/media/previews/toolbar/PreviewsToolbar.js.map +1 -1
- package/dist/cjs/components/media/previews/utils/mediaDownload.js +54 -0
- package/dist/cjs/components/media/previews/utils/mediaDownload.js.map +1 -0
- package/dist/cjs/components/media/previews/views/PreviewsListView.js +1 -1
- package/dist/cjs/components/media/previews/views/PreviewsListView.js.map +1 -1
- package/dist/cjs/components/rakun-logo.js +4 -9
- package/dist/cjs/components/rakun-logo.js.map +1 -1
- package/dist/cjs/components/ui/context-menu.js +1 -1
- package/dist/cjs/components/ui/context-menu.js.map +1 -1
- package/dist/cjs/i18n/catalog.js +343 -9
- package/dist/cjs/i18n/catalog.js.map +1 -1
- package/dist/cjs/lib/media.js +1 -0
- package/dist/cjs/lib/media.js.map +1 -1
- package/dist/cjs/media.js +45 -0
- package/dist/cjs/media.js.map +1 -1
- package/dist/cjs/router/dashboard/[contentType]/[edit]/ContentTypeEdit.js +15 -4
- package/dist/cjs/router/dashboard/[contentType]/[edit]/ContentTypeEdit.js.map +1 -1
- package/dist/cjs/router/dashboard/[contentType]/[edit]/_components/ContentCommentsDrawer.js +11 -6
- package/dist/cjs/router/dashboard/[contentType]/[edit]/_components/ContentCommentsDrawer.js.map +1 -1
- package/dist/cjs/router/dashboard/[contentType]/[edit]/_components/EditTabPanels.js +2 -1
- package/dist/cjs/router/dashboard/[contentType]/[edit]/_components/EditTabPanels.js.map +1 -1
- package/dist/cjs/router/dashboard/[contentType]/[edit]/_components/EditToolbar.js +2 -1
- package/dist/cjs/router/dashboard/[contentType]/[edit]/_components/EditToolbar.js.map +1 -1
- package/dist/cjs/router/dashboard/[contentType]/[edit]/_components/PreviewPanel.js +1 -1
- package/dist/cjs/router/dashboard/[contentType]/[edit]/_components/PreviewPanel.js.map +1 -1
- package/dist/cjs/router/dashboard/[contentType]/[edit]/_components/SeoTabContent.js +290 -0
- package/dist/cjs/router/dashboard/[contentType]/[edit]/_components/SeoTabContent.js.map +1 -0
- package/dist/cjs/router/dashboard/[contentType]/[edit]/_components/seo-analysis.js +88 -0
- package/dist/cjs/router/dashboard/[contentType]/[edit]/_components/seo-analysis.js.map +1 -0
- package/dist/cjs/router/dashboard/[contentType]/[edit]/_context/EditPageContext.js +1 -1
- package/dist/cjs/router/dashboard/[contentType]/[edit]/_context/EditPageContext.js.map +1 -1
- package/dist/cjs/router/dashboard/[contentType]/[edit]/_fields/ContentReferenceField/ContentReferenceMultiSelectUI.js +15 -2
- package/dist/cjs/router/dashboard/[contentType]/[edit]/_fields/ContentReferenceField/ContentReferenceMultiSelectUI.js.map +1 -1
- package/dist/cjs/router/dashboard/[contentType]/[edit]/_fields/DynamicDataControl.js +222 -232
- package/dist/cjs/router/dashboard/[contentType]/[edit]/_fields/DynamicDataControl.js.map +1 -1
- package/dist/cjs/router/dashboard/[contentType]/[edit]/_fields/FileField/index.js +20 -1
- package/dist/cjs/router/dashboard/[contentType]/[edit]/_fields/FileField/index.js.map +1 -1
- package/dist/cjs/router/dashboard/[contentType]/[edit]/_fields/LinkField/LinkUI.js +27 -21
- package/dist/cjs/router/dashboard/[contentType]/[edit]/_fields/LinkField/LinkUI.js.map +1 -1
- package/dist/cjs/router/dashboard/[contentType]/[edit]/_fields/LinkField/index.js.map +1 -1
- package/dist/cjs/router/dashboard/[contentType]/[edit]/_fields/LinkField/linkValue.js +25 -0
- package/dist/cjs/router/dashboard/[contentType]/[edit]/_fields/LinkField/linkValue.js.map +1 -0
- package/dist/cjs/router/dashboard/[contentType]/[edit]/_fields/ListField/IteratorModulePicker.js +10 -1
- package/dist/cjs/router/dashboard/[contentType]/[edit]/_fields/ListField/IteratorModulePicker.js.map +1 -1
- package/dist/cjs/router/dashboard/[contentType]/[edit]/_fields/ListField/SimpleListUI.js +38 -11
- package/dist/cjs/router/dashboard/[contentType]/[edit]/_fields/ListField/SimpleListUI.js.map +1 -1
- package/dist/cjs/router/dashboard/[contentType]/[edit]/_fields/MenuField/MenuUI.js +135 -0
- package/dist/cjs/router/dashboard/[contentType]/[edit]/_fields/MenuField/MenuUI.js.map +1 -0
- package/dist/cjs/router/dashboard/[contentType]/[edit]/_fields/MenuField/index.js +10 -0
- package/dist/cjs/router/dashboard/[contentType]/[edit]/_fields/MenuField/index.js.map +1 -0
- package/dist/cjs/router/dashboard/[contentType]/[edit]/_fields/MenuField/menuTree.js +113 -0
- package/dist/cjs/router/dashboard/[contentType]/[edit]/_fields/MenuField/menuTree.js.map +1 -0
- package/dist/cjs/router/dashboard/[contentType]/[edit]/_fields/Select/MultiSelectUI.js +15 -2
- package/dist/cjs/router/dashboard/[contentType]/[edit]/_fields/Select/MultiSelectUI.js.map +1 -1
- package/dist/cjs/router/dashboard/[contentType]/[edit]/_fields/shared/ItemLimitStatus.js +22 -0
- package/dist/cjs/router/dashboard/[contentType]/[edit]/_fields/shared/ItemLimitStatus.js.map +1 -0
- package/dist/cjs/router/dashboard/[contentType]/[edit]/_fields/shared/index.js.map +1 -1
- package/dist/cjs/router/dashboard/[contentType]/[edit]/_hooks/useContentDocumentActions.js +1 -0
- package/dist/cjs/router/dashboard/[contentType]/[edit]/_hooks/useContentDocumentActions.js.map +1 -1
- package/dist/cjs/router/dashboard/[contentType]/[edit]/_hooks/useContentPreview.js +198 -0
- package/dist/cjs/router/dashboard/[contentType]/[edit]/_hooks/useContentPreview.js.map +1 -1
- package/dist/cjs/router/dashboard/[contentType]/[edit]/edit.js +10 -1
- package/dist/cjs/router/dashboard/[contentType]/[edit]/edit.js.map +1 -1
- package/dist/cjs/router/dashboard/debugging/api-routes/ApiTest.js +2 -2
- package/dist/cjs/router/dashboard/debugging/api-routes/ApiTest.js.map +1 -1
- package/dist/cjs/router/dashboard/debugging/api-routes/JsonViewer.js +17 -0
- package/dist/cjs/router/dashboard/debugging/api-routes/JsonViewer.js.map +1 -0
- package/dist/cjs/router/dashboard/debugging/api-routes/SchemaViewer.js +40 -26
- package/dist/cjs/router/dashboard/debugging/api-routes/SchemaViewer.js.map +1 -1
- package/dist/cjs/router/dashboard/debugging/api-routes/test.js +6 -5
- package/dist/cjs/router/dashboard/debugging/api-routes/test.js.map +1 -1
- package/dist/cjs/router/dashboard/seo/index.js +6 -0
- package/dist/cjs/router/dashboard/seo/index.js.map +1 -0
- package/dist/cjs/router/dashboard/seo/screen.js +219 -0
- package/dist/cjs/router/dashboard/seo/screen.js.map +1 -0
- package/dist/cjs/router/dashboard/seo/site-analysis.js +153 -0
- package/dist/cjs/router/dashboard/seo/site-analysis.js.map +1 -0
- package/dist/cjs/router/shared/route-list.js +10 -2
- package/dist/cjs/router/shared/route-list.js.map +1 -1
- package/dist/docs/index.md +283 -194
- package/dist/esm/components/app-sidebar.d.ts.map +1 -1
- package/dist/esm/components/app-sidebar.js +11 -1
- package/dist/esm/components/app-sidebar.js.map +1 -1
- package/dist/esm/components/media/MediaLibrary.d.ts.map +1 -1
- package/dist/esm/components/media/MediaLibrary.js +11 -2
- package/dist/esm/components/media/MediaLibrary.js.map +1 -1
- package/dist/esm/components/media/contexts/MediaLibraryContext.d.ts +2 -0
- package/dist/esm/components/media/contexts/MediaLibraryContext.d.ts.map +1 -1
- package/dist/esm/components/media/contexts/MediaLibraryContext.js +1 -1
- package/dist/esm/components/media/contexts/MediaLibraryContext.js.map +1 -1
- package/dist/esm/components/media/previews/MediaContextMenuContent.d.ts.map +1 -1
- package/dist/esm/components/media/previews/MediaContextMenuContent.js +70 -17
- package/dist/esm/components/media/previews/MediaContextMenuContent.js.map +1 -1
- package/dist/esm/components/media/previews/Previews.d.ts.map +1 -1
- package/dist/esm/components/media/previews/Previews.js +90 -36
- package/dist/esm/components/media/previews/Previews.js.map +1 -1
- package/dist/esm/components/media/previews/context/MediaPreviewContext.d.ts +2 -0
- package/dist/esm/components/media/previews/context/MediaPreviewContext.d.ts.map +1 -1
- package/dist/esm/components/media/previews/context/MediaPreviewContext.js.map +1 -1
- package/dist/esm/components/media/previews/dialogs/ExpandedPreviewDialog.d.ts.map +1 -1
- package/dist/esm/components/media/previews/dialogs/ExpandedPreviewDialog.js +7 -10
- package/dist/esm/components/media/previews/dialogs/ExpandedPreviewDialog.js.map +1 -1
- package/dist/esm/components/media/previews/hooks/useMediaPreviewRenderer.d.ts.map +1 -1
- package/dist/esm/components/media/previews/hooks/useMediaPreviewRenderer.js +3 -1
- package/dist/esm/components/media/previews/hooks/useMediaPreviewRenderer.js.map +1 -1
- package/dist/esm/components/media/previews/toolbar/PreviewsToolbar.d.ts +4 -1
- package/dist/esm/components/media/previews/toolbar/PreviewsToolbar.d.ts.map +1 -1
- package/dist/esm/components/media/previews/toolbar/PreviewsToolbar.js +17 -10
- package/dist/esm/components/media/previews/toolbar/PreviewsToolbar.js.map +1 -1
- package/dist/esm/components/media/previews/utils/mediaDownload.d.ts +13 -0
- package/dist/esm/components/media/previews/utils/mediaDownload.d.ts.map +1 -0
- package/dist/esm/components/media/previews/utils/mediaDownload.js +49 -0
- package/dist/esm/components/media/previews/utils/mediaDownload.js.map +1 -0
- package/dist/esm/components/media/previews/views/PreviewsListView.js +1 -1
- package/dist/esm/components/media/previews/views/PreviewsListView.js.map +1 -1
- package/dist/esm/components/rakun-logo.d.ts +1 -5
- package/dist/esm/components/rakun-logo.d.ts.map +1 -1
- package/dist/esm/components/rakun-logo.js +1 -6
- package/dist/esm/components/rakun-logo.js.map +1 -1
- package/dist/esm/components/ui/context-menu.js +1 -1
- package/dist/esm/components/ui/context-menu.js.map +1 -1
- package/dist/esm/i18n/catalog.d.ts +564 -9
- package/dist/esm/i18n/catalog.d.ts.map +1 -1
- package/dist/esm/i18n/catalog.js +327 -7
- package/dist/esm/i18n/catalog.js.map +1 -1
- package/dist/esm/lib/media.d.ts +8 -0
- package/dist/esm/lib/media.d.ts.map +1 -1
- package/dist/esm/lib/media.js +1 -0
- package/dist/esm/lib/media.js.map +1 -1
- package/dist/esm/media.d.ts +19 -1
- package/dist/esm/media.d.ts.map +1 -1
- package/dist/esm/media.js +44 -0
- package/dist/esm/media.js.map +1 -1
- package/dist/esm/router/dashboard/[contentType]/[edit]/ContentTypeEdit.d.ts.map +1 -1
- package/dist/esm/router/dashboard/[contentType]/[edit]/ContentTypeEdit.js +18 -7
- package/dist/esm/router/dashboard/[contentType]/[edit]/ContentTypeEdit.js.map +1 -1
- package/dist/esm/router/dashboard/[contentType]/[edit]/_components/EditTabPanels.d.ts.map +1 -1
- package/dist/esm/router/dashboard/[contentType]/[edit]/_components/EditTabPanels.js +2 -1
- package/dist/esm/router/dashboard/[contentType]/[edit]/_components/EditTabPanels.js.map +1 -1
- package/dist/esm/router/dashboard/[contentType]/[edit]/_components/EditToolbar.d.ts.map +1 -1
- package/dist/esm/router/dashboard/[contentType]/[edit]/_components/EditToolbar.js +2 -1
- package/dist/esm/router/dashboard/[contentType]/[edit]/_components/EditToolbar.js.map +1 -1
- package/dist/esm/router/dashboard/[contentType]/[edit]/_components/PreviewPanel.d.ts.map +1 -1
- package/dist/esm/router/dashboard/[contentType]/[edit]/_components/PreviewPanel.js +1 -1
- package/dist/esm/router/dashboard/[contentType]/[edit]/_components/PreviewPanel.js.map +1 -1
- package/dist/esm/router/dashboard/[contentType]/[edit]/_components/SeoTabContent.d.ts +2 -0
- package/dist/esm/router/dashboard/[contentType]/[edit]/_components/SeoTabContent.d.ts.map +1 -0
- package/dist/esm/router/dashboard/[contentType]/[edit]/_components/SeoTabContent.js +283 -0
- package/dist/esm/router/dashboard/[contentType]/[edit]/_components/SeoTabContent.js.map +1 -0
- package/dist/esm/router/dashboard/[contentType]/[edit]/_components/seo-analysis.d.ts +10 -0
- package/dist/esm/router/dashboard/[contentType]/[edit]/_components/seo-analysis.d.ts.map +1 -0
- package/dist/esm/router/dashboard/[contentType]/[edit]/_components/seo-analysis.js +83 -0
- package/dist/esm/router/dashboard/[contentType]/[edit]/_components/seo-analysis.js.map +1 -0
- package/dist/esm/router/dashboard/[contentType]/[edit]/_fields/ContentReferenceField/ContentReferenceMultiSelectUI.d.ts.map +1 -1
- package/dist/esm/router/dashboard/[contentType]/[edit]/_fields/ContentReferenceField/ContentReferenceMultiSelectUI.js +15 -2
- package/dist/esm/router/dashboard/[contentType]/[edit]/_fields/ContentReferenceField/ContentReferenceMultiSelectUI.js.map +1 -1
- package/dist/esm/router/dashboard/[contentType]/[edit]/_fields/DynamicDataControl.d.ts +6 -2
- package/dist/esm/router/dashboard/[contentType]/[edit]/_fields/DynamicDataControl.d.ts.map +1 -1
- package/dist/esm/router/dashboard/[contentType]/[edit]/_fields/DynamicDataControl.js +221 -234
- package/dist/esm/router/dashboard/[contentType]/[edit]/_fields/DynamicDataControl.js.map +1 -1
- package/dist/esm/router/dashboard/[contentType]/[edit]/_fields/FileField/index.d.ts.map +1 -1
- package/dist/esm/router/dashboard/[contentType]/[edit]/_fields/FileField/index.js +20 -1
- package/dist/esm/router/dashboard/[contentType]/[edit]/_fields/FileField/index.js.map +1 -1
- package/dist/esm/router/dashboard/[contentType]/[edit]/_fields/LinkField/LinkUI.d.ts.map +1 -1
- package/dist/esm/router/dashboard/[contentType]/[edit]/_fields/LinkField/LinkUI.js +16 -19
- package/dist/esm/router/dashboard/[contentType]/[edit]/_fields/LinkField/LinkUI.js.map +1 -1
- package/dist/esm/router/dashboard/[contentType]/[edit]/_fields/LinkField/index.d.ts +2 -0
- package/dist/esm/router/dashboard/[contentType]/[edit]/_fields/LinkField/index.d.ts.map +1 -1
- package/dist/esm/router/dashboard/[contentType]/[edit]/_fields/LinkField/index.js.map +1 -1
- package/dist/esm/router/dashboard/[contentType]/[edit]/_fields/LinkField/linkValue.d.ts +4 -0
- package/dist/esm/router/dashboard/[contentType]/[edit]/_fields/LinkField/linkValue.d.ts.map +1 -0
- package/dist/esm/router/dashboard/[contentType]/[edit]/_fields/LinkField/linkValue.js +21 -0
- package/dist/esm/router/dashboard/[contentType]/[edit]/_fields/LinkField/linkValue.js.map +1 -0
- package/dist/esm/router/dashboard/[contentType]/[edit]/_fields/ListField/IteratorModulePicker.d.ts.map +1 -1
- package/dist/esm/router/dashboard/[contentType]/[edit]/_fields/ListField/IteratorModulePicker.js +11 -2
- package/dist/esm/router/dashboard/[contentType]/[edit]/_fields/ListField/IteratorModulePicker.js.map +1 -1
- package/dist/esm/router/dashboard/[contentType]/[edit]/_fields/ListField/SimpleListUI.d.ts.map +1 -1
- package/dist/esm/router/dashboard/[contentType]/[edit]/_fields/ListField/SimpleListUI.js +38 -11
- package/dist/esm/router/dashboard/[contentType]/[edit]/_fields/ListField/SimpleListUI.js.map +1 -1
- package/dist/esm/router/dashboard/[contentType]/[edit]/_fields/MenuField/MenuUI.d.ts +4 -0
- package/dist/esm/router/dashboard/[contentType]/[edit]/_fields/MenuField/MenuUI.d.ts.map +1 -0
- package/dist/esm/router/dashboard/[contentType]/[edit]/_fields/MenuField/MenuUI.js +130 -0
- package/dist/esm/router/dashboard/[contentType]/[edit]/_fields/MenuField/MenuUI.js.map +1 -0
- package/dist/esm/router/dashboard/[contentType]/[edit]/_fields/MenuField/index.d.ts +14 -0
- package/dist/esm/router/dashboard/[contentType]/[edit]/_fields/MenuField/index.d.ts.map +1 -0
- package/dist/esm/router/dashboard/[contentType]/[edit]/_fields/MenuField/index.js +5 -0
- package/dist/esm/router/dashboard/[contentType]/[edit]/_fields/MenuField/index.js.map +1 -0
- package/dist/esm/router/dashboard/[contentType]/[edit]/_fields/MenuField/menuTree.d.ts +23 -0
- package/dist/esm/router/dashboard/[contentType]/[edit]/_fields/MenuField/menuTree.d.ts.map +1 -0
- package/dist/esm/router/dashboard/[contentType]/[edit]/_fields/MenuField/menuTree.js +103 -0
- package/dist/esm/router/dashboard/[contentType]/[edit]/_fields/MenuField/menuTree.js.map +1 -0
- package/dist/esm/router/dashboard/[contentType]/[edit]/_fields/Select/MultiSelectUI.d.ts.map +1 -1
- package/dist/esm/router/dashboard/[contentType]/[edit]/_fields/Select/MultiSelectUI.js +15 -2
- package/dist/esm/router/dashboard/[contentType]/[edit]/_fields/Select/MultiSelectUI.js.map +1 -1
- package/dist/esm/router/dashboard/[contentType]/[edit]/_fields/shared/ItemLimitStatus.d.ts +6 -0
- package/dist/esm/router/dashboard/[contentType]/[edit]/_fields/shared/ItemLimitStatus.d.ts.map +1 -0
- package/dist/esm/router/dashboard/[contentType]/[edit]/_fields/shared/ItemLimitStatus.js +18 -0
- package/dist/esm/router/dashboard/[contentType]/[edit]/_fields/shared/ItemLimitStatus.js.map +1 -0
- package/dist/esm/router/dashboard/[contentType]/[edit]/_fields/shared/index.d.ts +2 -1
- package/dist/esm/router/dashboard/[contentType]/[edit]/_fields/shared/index.d.ts.map +1 -1
- package/dist/esm/router/dashboard/[contentType]/[edit]/_fields/shared/index.js.map +1 -1
- package/dist/esm/router/dashboard/[contentType]/[edit]/_hooks/useContentPreview.d.ts +43 -0
- package/dist/esm/router/dashboard/[contentType]/[edit]/_hooks/useContentPreview.d.ts.map +1 -1
- package/dist/esm/router/dashboard/[contentType]/[edit]/_hooks/useContentPreview.js +198 -0
- package/dist/esm/router/dashboard/[contentType]/[edit]/_hooks/useContentPreview.js.map +1 -1
- package/dist/esm/router/dashboard/[contentType]/[edit]/edit.d.ts.map +1 -1
- package/dist/esm/router/dashboard/[contentType]/[edit]/edit.js +10 -1
- package/dist/esm/router/dashboard/[contentType]/[edit]/edit.js.map +1 -1
- package/dist/esm/router/dashboard/debugging/api-routes/ApiTest.d.ts.map +1 -1
- package/dist/esm/router/dashboard/debugging/api-routes/ApiTest.js +2 -2
- package/dist/esm/router/dashboard/debugging/api-routes/ApiTest.js.map +1 -1
- package/dist/esm/router/dashboard/debugging/api-routes/JsonViewer.d.ts +5 -0
- package/dist/esm/router/dashboard/debugging/api-routes/JsonViewer.d.ts.map +1 -0
- package/dist/esm/router/dashboard/debugging/api-routes/JsonViewer.js +14 -0
- package/dist/esm/router/dashboard/debugging/api-routes/JsonViewer.js.map +1 -0
- package/dist/esm/router/dashboard/debugging/api-routes/SchemaViewer.d.ts.map +1 -1
- package/dist/esm/router/dashboard/debugging/api-routes/SchemaViewer.js +42 -28
- package/dist/esm/router/dashboard/debugging/api-routes/SchemaViewer.js.map +1 -1
- package/dist/esm/router/dashboard/debugging/api-routes/test.d.ts.map +1 -1
- package/dist/esm/router/dashboard/debugging/api-routes/test.js +6 -5
- package/dist/esm/router/dashboard/debugging/api-routes/test.js.map +1 -1
- package/dist/esm/router/dashboard/seo/index.d.ts +2 -0
- package/dist/esm/router/dashboard/seo/index.d.ts.map +1 -0
- package/dist/esm/router/dashboard/seo/index.js +2 -0
- package/dist/esm/router/dashboard/seo/index.js.map +1 -0
- package/dist/esm/router/dashboard/seo/screen.d.ts +6 -0
- package/dist/esm/router/dashboard/seo/screen.d.ts.map +1 -0
- package/dist/esm/router/dashboard/seo/screen.js +212 -0
- package/dist/esm/router/dashboard/seo/screen.js.map +1 -0
- package/dist/esm/router/dashboard/seo/site-analysis.d.ts +40 -0
- package/dist/esm/router/dashboard/seo/site-analysis.d.ts.map +1 -0
- package/dist/esm/router/dashboard/seo/site-analysis.js +148 -0
- package/dist/esm/router/dashboard/seo/site-analysis.js.map +1 -0
- package/dist/esm/router/shared/route-definitions.d.ts +4 -2
- package/dist/esm/router/shared/route-definitions.d.ts.map +1 -1
- package/dist/esm/router/shared/route-list.d.ts +1 -1
- package/dist/esm/router/shared/route-list.d.ts.map +1 -1
- package/dist/esm/router/shared/route-list.js +8 -0
- package/dist/esm/router/shared/route-list.js.map +1 -1
- package/dist/esm/router/shared/types.d.ts +2 -0
- package/dist/esm/router/shared/types.d.ts.map +1 -1
- package/dist/styles.css +237 -6
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/package.json +3 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"app-sidebar.js","sourceRoot":"","sources":["../../../src/components/app-sidebar.tsx"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"app-sidebar.js","sourceRoot":"","sources":["../../../src/components/app-sidebar.tsx"],"names":[],"mappings":"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"}
|
|
@@ -31,7 +31,14 @@ function MediaLibrary({ className, selectable = false, onSelect, isModal = false
|
|
|
31
31
|
responsiveSizes: [...client_1.DEFAULT_RESPONSIVE_IMAGE_WIDTHS],
|
|
32
32
|
minBytesToOptimize: 350 * 1024,
|
|
33
33
|
previewMaxWidth: 32,
|
|
34
|
+
video: { quality: 80 },
|
|
34
35
|
});
|
|
36
|
+
const [optimizationMediaType, setOptimizationMediaType] = (0, react_1.useState)(forcedMediaTypeFilter === 'video' ? 'video' : 'image');
|
|
37
|
+
(0, react_1.useEffect)(() => {
|
|
38
|
+
if (forcedMediaTypeFilter === 'image' || forcedMediaTypeFilter === 'video') {
|
|
39
|
+
setOptimizationMediaType(forcedMediaTypeFilter);
|
|
40
|
+
}
|
|
41
|
+
}, [forcedMediaTypeFilter]);
|
|
35
42
|
const [externalEditFolderRequest, setExternalEditFolderRequest] = (0, react_1.useState)(null);
|
|
36
43
|
const [externalDeleteFolderRequest, setExternalDeleteFolderRequest] = (0, react_1.useState)(null);
|
|
37
44
|
const [, setFolderRequestSeq] = (0, react_1.useState)(0);
|
|
@@ -157,9 +164,11 @@ function MediaLibrary({ className, selectable = false, onSelect, isModal = false
|
|
|
157
164
|
setOptimizeOptions: (patch) => {
|
|
158
165
|
setLibraryOptimizeOptions((prev) => ({ ...prev, ...patch }));
|
|
159
166
|
},
|
|
167
|
+
optimizationMediaType,
|
|
168
|
+
setOptimizationMediaType,
|
|
160
169
|
};
|
|
161
170
|
return ((0, jsx_runtime_1.jsx)(MediaLibraryContext_1.MediaLibraryProvider, { value: mediaLibraryContext, children: (0, jsx_runtime_1.jsxs)("div", { className: (0, utils_1.cn)('relative grid grid-cols-1 overflow-hidden rounded-xl border lg:grid-cols-[minmax(0,18rem)_minmax(0,1fr)]', isModal
|
|
162
171
|
? 'h-full min-h-0 grid-rows-[auto_minmax(0,1fr)]'
|
|
163
|
-
: 'grid-rows-[auto_auto] lg:h-full lg:min-h-0 lg:grid-rows-[minmax(0,1fr)]', className), children: [(0, jsx_runtime_1.jsx)(FoldersTree_1.default, { isModal: isModal }), (0, jsx_runtime_1.
|
|
172
|
+
: 'grid-rows-[auto_auto] lg:h-full lg:min-h-0 lg:grid-rows-[minmax(0,1fr)]', className), children: [(0, jsx_runtime_1.jsx)(FoldersTree_1.default, { isModal: isModal }), (0, jsx_runtime_1.jsx)("div", { className: (0, utils_1.cn)('flex min-h-0 min-w-0 flex-col overflow-hidden p-4', isModal ? 'h-full' : 'lg:h-full'), children: (0, jsx_runtime_1.jsx)("div", { className: "min-h-0 flex-1", children: (0, jsx_runtime_1.jsx)(Previews_1.default, {}) }) })] }) }));
|
|
164
173
|
}
|
|
165
174
|
//# sourceMappingURL=MediaLibrary.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MediaLibrary.js","sourceRoot":"","sources":["../../../../src/components/media/MediaLibrary.tsx"],"names":[],"mappings":";AAAA,YAAY,CAAA;;;;;AA6BZ,+
|
|
1
|
+
{"version":3,"file":"MediaLibrary.js","sourceRoot":"","sources":["../../../../src/components/media/MediaLibrary.tsx"],"names":[],"mappings":"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"}
|
|
@@ -7,7 +7,7 @@ const jsx_runtime_1 = require("react/jsx-runtime");
|
|
|
7
7
|
const react_1 = require("react");
|
|
8
8
|
const MediaLibraryContext = (0, react_1.createContext)(null);
|
|
9
9
|
function MediaLibraryProvider({ value, children, }) {
|
|
10
|
-
return (
|
|
10
|
+
return (0, jsx_runtime_1.jsx)(MediaLibraryContext.Provider, { value: value, children: children });
|
|
11
11
|
}
|
|
12
12
|
function useMediaLibrary() {
|
|
13
13
|
const context = (0, react_1.useContext)(MediaLibraryContext);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MediaLibraryContext.js","sourceRoot":"","sources":["../../../../../src/components/media/contexts/MediaLibraryContext.tsx"],"names":[],"mappings":";AAAA,YAAY,CAAA;;AA0DZ,
|
|
1
|
+
{"version":3,"file":"MediaLibraryContext.js","sourceRoot":"","sources":["../../../../../src/components/media/contexts/MediaLibraryContext.tsx"],"names":[],"mappings":";AAAA,YAAY,CAAA;;AA0DZ,oDAQC;AAED,0CAMC;;AAxED,iCAAiD;AAsDjD,MAAM,mBAAmB,GAAG,IAAA,qBAAa,EAAkC,IAAI,CAAC,CAAA;AAEhF,SAAgB,oBAAoB,CAAC,EACnC,KAAK,EACL,QAAQ,GAIT;IACC,OAAO,uBAAC,mBAAmB,CAAC,QAAQ,IAAC,KAAK,EAAE,KAAK,YAAG,QAAQ,GAAgC,CAAA;AAC9F,CAAC;AAED,SAAgB,eAAe;IAC7B,MAAM,OAAO,GAAG,IAAA,kBAAU,EAAC,mBAAmB,CAAC,CAAA;IAC/C,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CAAC,4DAA4D,CAAC,CAAA;IAC/E,CAAC;IACD,OAAO,OAAO,CAAA;AAChB,CAAC"}
|
|
@@ -4,31 +4,84 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
4
4
|
exports.default = MediaContextMenuContent;
|
|
5
5
|
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
6
6
|
const lucide_react_1 = require("lucide-react");
|
|
7
|
+
const sonner_1 = require("sonner");
|
|
7
8
|
const context_menu_1 = require("../../ui/context-menu.js");
|
|
8
9
|
const MediaPreviewContext_1 = require("./context/MediaPreviewContext.js");
|
|
10
|
+
const mediaDownload_1 = require("./utils/mediaDownload.js");
|
|
11
|
+
const react_1 = require("../../../client/react.js");
|
|
9
12
|
const i18n_1 = require("../../../i18n/index.js");
|
|
10
13
|
function MediaContextMenuContent({ item, }) {
|
|
11
14
|
const t = (0, i18n_1.useTranslations)();
|
|
12
|
-
const
|
|
15
|
+
const managerClient = (0, react_1.useManagerClient)();
|
|
16
|
+
const { canBulkSelect, bulkSelectedIds, bulkSelectedCount, onRequestSelect, onRequestEdit, onRequestImageEdit, isReplacing, onRequestReplace, canReimportWithOptimization, isReimporting, onRequestReimport, onRequestBulkReimport, onRequestMove, onRequestDelete, formatFileSize, } = (0, MediaPreviewContext_1.useMediaPreview)();
|
|
13
17
|
const isMediaItem = '_type' in item && item._type === 'Media';
|
|
14
18
|
const isImageItem = isMediaItem && item.mime.startsWith('image/');
|
|
15
|
-
const
|
|
19
|
+
const isOptimizableItem = isMediaItem &&
|
|
20
|
+
(item.mime.startsWith('image/') || item.mime.startsWith('video/'));
|
|
21
|
+
const selectedOptimizableCount = isMediaItem && bulkSelectedIds.has(item._id)
|
|
16
22
|
? Math.max(bulkSelectedCount, 1)
|
|
17
23
|
: 1;
|
|
18
|
-
const reimportSelected =
|
|
24
|
+
const reimportSelected = isOptimizableItem &&
|
|
25
|
+
selectedOptimizableCount > 1 &&
|
|
26
|
+
bulkSelectedIds.has(item._id);
|
|
27
|
+
const downloadAssets = isMediaItem ? (0, mediaDownload_1.getMediaDownloadAssets)(item) : [];
|
|
28
|
+
const startDownload = (url, fileName, openInNewTab = false) => {
|
|
29
|
+
const anchor = document.createElement('a');
|
|
30
|
+
anchor.href = url;
|
|
31
|
+
anchor.download = fileName;
|
|
32
|
+
anchor.rel = 'noopener';
|
|
33
|
+
if (openInNewTab)
|
|
34
|
+
anchor.target = '_blank';
|
|
35
|
+
anchor.style.display = 'none';
|
|
36
|
+
document.body.append(anchor);
|
|
37
|
+
anchor.click();
|
|
38
|
+
anchor.remove();
|
|
39
|
+
};
|
|
40
|
+
const downloadAsset = async (asset) => {
|
|
41
|
+
if (!isMediaItem)
|
|
42
|
+
return;
|
|
43
|
+
try {
|
|
44
|
+
const resolvedUrl = item.access === 'public' && asset.url
|
|
45
|
+
? asset.url
|
|
46
|
+
: (await managerClient.request('manager.media.getUrl', {
|
|
47
|
+
key: asset.key,
|
|
48
|
+
access: item.access,
|
|
49
|
+
})).url;
|
|
50
|
+
const fileName = (0, mediaDownload_1.getMediaDownloadFileName)(item, asset);
|
|
51
|
+
let response;
|
|
52
|
+
try {
|
|
53
|
+
response = await fetch(resolvedUrl);
|
|
54
|
+
}
|
|
55
|
+
catch (_) {
|
|
56
|
+
startDownload(resolvedUrl, fileName, true);
|
|
57
|
+
return;
|
|
58
|
+
}
|
|
59
|
+
if (!response.ok)
|
|
60
|
+
throw new Error(`Download failed with status ${response.status}`);
|
|
61
|
+
const objectUrl = URL.createObjectURL(await response.blob());
|
|
62
|
+
startDownload(objectUrl, fileName);
|
|
63
|
+
window.setTimeout(() => URL.revokeObjectURL(objectUrl), 1000);
|
|
64
|
+
}
|
|
65
|
+
catch (_) {
|
|
66
|
+
sonner_1.toast.error(t('media.downloadError'));
|
|
67
|
+
}
|
|
68
|
+
};
|
|
69
|
+
const formatDownloadAsset = (asset) => {
|
|
70
|
+
const format = asset.mime.split('/').pop()?.toUpperCase() || asset.mime;
|
|
71
|
+
const dimensions = asset.width && asset.height ? `${asset.width}×${asset.height}` : undefined;
|
|
72
|
+
return [format, dimensions, formatFileSize(asset.size)].filter(Boolean).join(' · ');
|
|
73
|
+
};
|
|
19
74
|
return ((0, jsx_runtime_1.jsxs)(context_menu_1.ContextMenuContent, { children: [isMediaItem && canBulkSelect ? ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsxs)(context_menu_1.ContextMenuItem, { onSelect: () => onRequestSelect(item), children: [(0, jsx_runtime_1.jsx)(lucide_react_1.Check, { className: 'size-4' }), bulkSelectedIds.has(item._id)
|
|
20
75
|
? t('common.deselect')
|
|
21
|
-
: t('common.select')] }), (0, jsx_runtime_1.jsx)(context_menu_1.ContextMenuSeparator, {})] })) : null, (0, jsx_runtime_1.jsxs)(context_menu_1.ContextMenuItem, { onSelect: () => onRequestEdit?.(item), children: [(0, jsx_runtime_1.jsx)(lucide_react_1.Pencil, { className: 'size-4' }), t('common.edit')] }), isImageItem ? ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsxs)(context_menu_1.ContextMenuItem, { onSelect: () => onRequestImageEdit(item), children: [(0, jsx_runtime_1.jsx)(lucide_react_1.Crop, { className: 'size-4' }), t('media.cropAndRotate')] }), (0, jsx_runtime_1.jsxs)(context_menu_1.ContextMenuItem, { disabled: !canReimportWithOptimization ||
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
}, children: [
|
|
31
|
-
? t('media.enableOptimizationToReimport')
|
|
32
|
-
: t('media.reimportConfirm')] })] })) : null, isMediaItem ? ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsxs)(context_menu_1.ContextMenuItem, { onSelect: () => onRequestMove(item), children: [(0, jsx_runtime_1.jsx)(lucide_react_1.FolderInput, { className: 'size-4' }), t('media.moveToFolder')] }), (0, jsx_runtime_1.jsx)(context_menu_1.ContextMenuSeparator, {})] })) : null, (0, jsx_runtime_1.jsxs)(context_menu_1.ContextMenuItem, { variant: 'destructive', onSelect: () => onRequestDelete?.(item), children: [(0, jsx_runtime_1.jsx)(lucide_react_1.Trash2, { className: 'size-4' }), t('common.delete')] })] }));
|
|
76
|
+
: t('common.select')] }), (0, jsx_runtime_1.jsx)(context_menu_1.ContextMenuSeparator, {})] })) : null, (0, jsx_runtime_1.jsxs)(context_menu_1.ContextMenuItem, { onSelect: () => onRequestEdit?.(item), children: [(0, jsx_runtime_1.jsx)(lucide_react_1.Pencil, { className: 'size-4' }), t('common.edit')] }), isImageItem ? ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsxs)(context_menu_1.ContextMenuItem, { onSelect: () => onRequestImageEdit(item), children: [(0, jsx_runtime_1.jsx)(lucide_react_1.Crop, { className: 'size-4' }), t('media.cropAndRotate')] }), (0, jsx_runtime_1.jsxs)(context_menu_1.ContextMenuItem, { disabled: isReplacing(item._id), onSelect: () => onRequestReplace(item), children: [isReplacing(item._id) ? ((0, jsx_runtime_1.jsx)(lucide_react_1.LoaderCircle, { className: 'size-4 animate-spin' })) : ((0, jsx_runtime_1.jsx)(lucide_react_1.ImageUp, { className: 'size-4' })), t('media.replaceImage')] })] })) : null, downloadAssets.length > 1 ? ((0, jsx_runtime_1.jsxs)(context_menu_1.ContextMenuSub, { children: [(0, jsx_runtime_1.jsxs)(context_menu_1.ContextMenuSubTrigger, { children: [(0, jsx_runtime_1.jsx)(lucide_react_1.Download, { className: 'size-4' }), t('common.download')] }), (0, jsx_runtime_1.jsx)(context_menu_1.ContextMenuSubContent, { children: downloadAssets.map((asset) => ((0, jsx_runtime_1.jsxs)(context_menu_1.ContextMenuItem, { onSelect: () => void downloadAsset(asset), children: [(0, jsx_runtime_1.jsx)(lucide_react_1.Download, { className: 'size-4' }), formatDownloadAsset(asset)] }, asset.key || asset.url))) })] })) : downloadAssets[0] ? ((0, jsx_runtime_1.jsxs)(context_menu_1.ContextMenuItem, { onSelect: () => void downloadAsset(downloadAssets[0]), children: [(0, jsx_runtime_1.jsx)(lucide_react_1.Download, { className: 'size-4' }), t('common.download')] })) : null, isOptimizableItem ? ((0, jsx_runtime_1.jsxs)(context_menu_1.ContextMenuItem, { disabled: !canReimportWithOptimization ||
|
|
77
|
+
(reimportSelected ? false : isReimporting(item._id)), onSelect: () => {
|
|
78
|
+
if (reimportSelected) {
|
|
79
|
+
onRequestBulkReimport();
|
|
80
|
+
return;
|
|
81
|
+
}
|
|
82
|
+
onRequestReimport(item);
|
|
83
|
+
}, children: [isReimporting(item._id) ? ((0, jsx_runtime_1.jsx)(lucide_react_1.LoaderCircle, { className: 'size-4 animate-spin' })) : ((0, jsx_runtime_1.jsx)(lucide_react_1.RefreshCw, { className: 'size-4' })), !canReimportWithOptimization
|
|
84
|
+
? t('media.enableOptimizationToReimport')
|
|
85
|
+
: t('media.reimportConfirm')] })) : null, isMediaItem ? ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsxs)(context_menu_1.ContextMenuItem, { onSelect: () => onRequestMove(item), children: [(0, jsx_runtime_1.jsx)(lucide_react_1.FolderInput, { className: 'size-4' }), t('media.moveToFolder')] }), (0, jsx_runtime_1.jsx)(context_menu_1.ContextMenuSeparator, {})] })) : null, (0, jsx_runtime_1.jsxs)(context_menu_1.ContextMenuItem, { variant: 'destructive', onSelect: () => onRequestDelete?.(item), children: [(0, jsx_runtime_1.jsx)(lucide_react_1.Trash2, { className: 'size-4' }), t('common.delete')] })] }));
|
|
33
86
|
}
|
|
34
87
|
//# sourceMappingURL=MediaContextMenuContent.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MediaContextMenuContent.js","sourceRoot":"","sources":["../../../../../src/components/media/previews/MediaContextMenuContent.tsx"],"names":[],"mappings":";AAAA,YAAY,CAAA;;
|
|
1
|
+
{"version":3,"file":"MediaContextMenuContent.js","sourceRoot":"","sources":["../../../../../src/components/media/previews/MediaContextMenuContent.tsx"],"names":[],"mappings":"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"}
|
|
@@ -78,7 +78,7 @@ function Previews() {
|
|
|
78
78
|
const t = (0, i18n_1.useTranslations)();
|
|
79
79
|
const managerClient = (0, react_2.useManagerClient)();
|
|
80
80
|
const queryClient = (0, react_query_1.useQueryClient)();
|
|
81
|
-
const { uploadMedia } = (0, media_1.useMedia)();
|
|
81
|
+
const { uploadMedia, replaceMedia } = (0, media_1.useMedia)();
|
|
82
82
|
const { currentFolderId, currentFolderPath, setCurrentFolderId, folders, onCreateFolder, refetchFoldersTree, forcedMediaTypeFilter, externalEditFolderRequest, externalDeleteFolderRequest, selectable, selectedMediaIds, onSelect, onUpload, optimizeEnabled, optimizeOptions, isModal, } = (0, MediaLibraryContext_1.useMediaLibrary)();
|
|
83
83
|
const [viewMode, setViewMode] = (0, react_1.useState)('grid-sm');
|
|
84
84
|
const [mediaTypeFilter, setMediaTypeFilter] = (0, react_1.useState)('all');
|
|
@@ -103,6 +103,9 @@ function Previews() {
|
|
|
103
103
|
const [isBulkDeleting, setIsBulkDeleting] = (0, react_1.useState)(false);
|
|
104
104
|
const [isMoving, setIsMoving] = (0, react_1.useState)(false);
|
|
105
105
|
const [reimportingIds, setReimportingIds] = (0, react_1.useState)(() => new Set());
|
|
106
|
+
const [replacingId, setReplacingId] = (0, react_1.useState)(null);
|
|
107
|
+
const replaceInputRef = (0, react_1.useRef)(null);
|
|
108
|
+
const replaceTargetRef = (0, react_1.useRef)(null);
|
|
106
109
|
const getMediaQueryFilter = (folderId, mediaType, search) => {
|
|
107
110
|
const folderFilter = folderId ? { 'folder._id': folderId } : { folder: { $exists: false } };
|
|
108
111
|
let typeAndFolderFilter;
|
|
@@ -488,6 +491,54 @@ function Previews() {
|
|
|
488
491
|
sonner_1.toast.error(error instanceof Error ? error.message : t('media.openImageEditorError'));
|
|
489
492
|
}
|
|
490
493
|
};
|
|
494
|
+
const onRequestReplace = (item) => {
|
|
495
|
+
if (!item.mime.startsWith('image/') || replacingId)
|
|
496
|
+
return;
|
|
497
|
+
replaceTargetRef.current = item;
|
|
498
|
+
replaceInputRef.current?.click();
|
|
499
|
+
};
|
|
500
|
+
const handleReplacementFileChange = (event) => {
|
|
501
|
+
const file = event.target.files?.[0];
|
|
502
|
+
const target = replaceTargetRef.current;
|
|
503
|
+
event.target.value = '';
|
|
504
|
+
if (!file || !target)
|
|
505
|
+
return;
|
|
506
|
+
if (!file.type.startsWith('image/')) {
|
|
507
|
+
sonner_1.toast.error(t('media.replaceImageInvalidFile'));
|
|
508
|
+
return;
|
|
509
|
+
}
|
|
510
|
+
void (0, confirm_1.confirm)({
|
|
511
|
+
title: t('media.replaceImageTitle'),
|
|
512
|
+
description: t('media.replaceImageDescription', {
|
|
513
|
+
name: target.name,
|
|
514
|
+
fileName: file.name,
|
|
515
|
+
}),
|
|
516
|
+
confirmLabel: t('media.replaceImageConfirm'),
|
|
517
|
+
onConfirm: async () => {
|
|
518
|
+
try {
|
|
519
|
+
setReplacingId(target._id);
|
|
520
|
+
await replaceMedia({
|
|
521
|
+
id: target._id,
|
|
522
|
+
file,
|
|
523
|
+
access: target.access,
|
|
524
|
+
optimizeOptions: optimizeEnabled ? optimizeOptions : undefined,
|
|
525
|
+
});
|
|
526
|
+
await refetch();
|
|
527
|
+
sonner_1.toast.success(t('media.imageReplaced'));
|
|
528
|
+
}
|
|
529
|
+
catch (error) {
|
|
530
|
+
sonner_1.toast.error(t('media.replaceImageError', {
|
|
531
|
+
reason: (0, get_action_error_message_1.getActionErrorMessage)(error),
|
|
532
|
+
}));
|
|
533
|
+
throw error;
|
|
534
|
+
}
|
|
535
|
+
finally {
|
|
536
|
+
setReplacingId(null);
|
|
537
|
+
replaceTargetRef.current = null;
|
|
538
|
+
}
|
|
539
|
+
},
|
|
540
|
+
});
|
|
541
|
+
};
|
|
491
542
|
const handleSaveImageEdit = async (file) => {
|
|
492
543
|
if (!imageEditTarget)
|
|
493
544
|
return;
|
|
@@ -535,9 +586,7 @@ function Previews() {
|
|
|
535
586
|
sonner_1.toast.success(t('media.imageDetailsSaved'));
|
|
536
587
|
}
|
|
537
588
|
catch (error) {
|
|
538
|
-
sonner_1.toast.error(error instanceof Error
|
|
539
|
-
? error.message
|
|
540
|
-
: t('media.saveImageDetailsError'));
|
|
589
|
+
sonner_1.toast.error(error instanceof Error ? error.message : t('media.saveImageDetailsError'));
|
|
541
590
|
}
|
|
542
591
|
};
|
|
543
592
|
const onRequestMove = (item) => {
|
|
@@ -549,14 +598,15 @@ function Previews() {
|
|
|
549
598
|
setDestinationFolderId(item.folder?._id ?? ROOT_FOLDER_VALUE);
|
|
550
599
|
};
|
|
551
600
|
const onRequestReimport = (item) => {
|
|
552
|
-
if (!optimizeEnabled || !item.mime.startsWith('image/'))
|
|
601
|
+
if (!optimizeEnabled || (!item.mime.startsWith('image/') && !item.mime.startsWith('video/')))
|
|
553
602
|
return;
|
|
554
|
-
const
|
|
555
|
-
|
|
556
|
-
|
|
603
|
+
const selectedMedia = media.filter((mediaItem) => bulkSelectedIds.has(mediaItem._id) &&
|
|
604
|
+
(mediaItem.mime.startsWith('image/') || mediaItem.mime.startsWith('video/')));
|
|
605
|
+
if (selectedMedia.length > 1 && bulkSelectedIds.has(item._id)) {
|
|
606
|
+
void reimportMedia(selectedMedia);
|
|
557
607
|
return;
|
|
558
608
|
}
|
|
559
|
-
void
|
|
609
|
+
void reimportMedia([item]);
|
|
560
610
|
};
|
|
561
611
|
const onRequestSelect = (item) => {
|
|
562
612
|
if (!canBulkSelect)
|
|
@@ -577,24 +627,23 @@ function Previews() {
|
|
|
577
627
|
const onRequestBulkReimport = () => {
|
|
578
628
|
if (!optimizeEnabled)
|
|
579
629
|
return;
|
|
580
|
-
const
|
|
581
|
-
|
|
582
|
-
|
|
630
|
+
const selectedMedia = media.filter((item) => bulkSelectedIds.has(item._id) &&
|
|
631
|
+
(item.mime.startsWith('image/') || item.mime.startsWith('video/')));
|
|
632
|
+
if (selectedMedia.length === 0) {
|
|
633
|
+
sonner_1.toast.error(t('media.bulkReimportNoMedia'));
|
|
583
634
|
return;
|
|
584
635
|
}
|
|
585
|
-
void
|
|
636
|
+
void reimportMedia(selectedMedia);
|
|
586
637
|
};
|
|
587
|
-
const
|
|
638
|
+
const reimportMedia = (items) => {
|
|
588
639
|
void (0, confirm_1.confirm)({
|
|
589
|
-
title:
|
|
590
|
-
|
|
591
|
-
|
|
592
|
-
|
|
593
|
-
? t('media.reimportDescription', { name: images[0]?.name ?? '' })
|
|
594
|
-
: t('media.bulkReimportDescription', { count: images.length }),
|
|
640
|
+
title: items.length === 1 ? t('media.reimportTitle') : t('media.bulkReimportTitle'),
|
|
641
|
+
description: items.length === 1
|
|
642
|
+
? t('media.reimportDescription', { name: items[0]?.name ?? '' })
|
|
643
|
+
: t('media.bulkReimportDescription', { count: items.length }),
|
|
595
644
|
confirmLabel: t('media.reimportConfirm'),
|
|
596
645
|
onConfirm: async () => {
|
|
597
|
-
const ids =
|
|
646
|
+
const ids = items.map((item) => item._id);
|
|
598
647
|
setReimportingIds((current) => {
|
|
599
648
|
const next = new Set(current);
|
|
600
649
|
for (const id of ids)
|
|
@@ -605,11 +654,14 @@ function Previews() {
|
|
|
605
654
|
let failedCount = 0;
|
|
606
655
|
let lastError;
|
|
607
656
|
try {
|
|
608
|
-
for (const item of
|
|
657
|
+
for (const item of items) {
|
|
609
658
|
try {
|
|
610
659
|
await managerClient.request('manager.media.reimport', {
|
|
611
660
|
id: item._id,
|
|
612
|
-
optimizeOptions
|
|
661
|
+
optimizeOptions: {
|
|
662
|
+
...optimizeOptions,
|
|
663
|
+
video: optimizeOptions.video ?? { quality: 80 },
|
|
664
|
+
},
|
|
613
665
|
});
|
|
614
666
|
successCount += 1;
|
|
615
667
|
}
|
|
@@ -621,7 +673,7 @@ function Previews() {
|
|
|
621
673
|
if (successCount > 0) {
|
|
622
674
|
await refetch();
|
|
623
675
|
clearBulkSelection();
|
|
624
|
-
sonner_1.toast.success(
|
|
676
|
+
sonner_1.toast.success(items.length === 1
|
|
625
677
|
? t('media.reimported')
|
|
626
678
|
: t('media.bulkReimported', { count: successCount }));
|
|
627
679
|
}
|
|
@@ -737,6 +789,8 @@ function Previews() {
|
|
|
737
789
|
onClearSelection: clearBulkSelection,
|
|
738
790
|
onRequestEdit,
|
|
739
791
|
onRequestImageEdit,
|
|
792
|
+
isReplacing: (id) => replacingId === id,
|
|
793
|
+
onRequestReplace,
|
|
740
794
|
canReimportWithOptimization: optimizeEnabled,
|
|
741
795
|
isReimporting: (id) => reimportingIds.has(id),
|
|
742
796
|
onRequestReimport,
|
|
@@ -769,6 +823,8 @@ function Previews() {
|
|
|
769
823
|
clearBulkSelection,
|
|
770
824
|
onRequestEdit,
|
|
771
825
|
onRequestImageEdit,
|
|
826
|
+
replacingId,
|
|
827
|
+
onRequestReplace,
|
|
772
828
|
optimizeEnabled,
|
|
773
829
|
reimportingIds,
|
|
774
830
|
onRequestReimport,
|
|
@@ -776,21 +832,19 @@ function Previews() {
|
|
|
776
832
|
onRequestDelete,
|
|
777
833
|
renderPreview,
|
|
778
834
|
]);
|
|
779
|
-
return ((0, jsx_runtime_1.jsx)("div", { className: (0, utils_1.cn)('flex min-h-0 w-full flex-col', isModal ? 'h-full overflow-hidden' : 'h-auto max-lg:h-auto lg:h-full'), children: (0, jsx_runtime_1.jsxs)(MediaPreviewContext_1.MediaPreviewProvider, { value: mediaPreviewContextValue, children: [(0, jsx_runtime_1.
|
|
780
|
-
setIsCreateFolderDialogOpen(true);
|
|
781
|
-
}, children: [(0, jsx_runtime_1.jsx)(lucide_react_1.FolderPlus, { className: "size-4" }), (0, jsx_runtime_1.jsx)("span", { className: "truncate", children: t('media.createFolder') })] }), showChildFoldersSkeleton
|
|
782
|
-
? Array.from({ length: 4 }).map((_, index) => ((0, jsx_runtime_1.jsxs)("div", { className: "flex items-center gap-2 rounded-lg border bg-card p-2", children: [(0, jsx_runtime_1.jsx)(skeleton_1.Skeleton, { className: "h-7 w-7 rounded-md" }), (0, jsx_runtime_1.jsx)(skeleton_1.Skeleton, { className: "h-4 flex-1" })] }, `child-folder-skeleton-${index}`)))
|
|
783
|
-
: childFoldersData?.items?.length
|
|
784
|
-
? childFoldersData.items.map((folder) => ((0, jsx_runtime_1.jsxs)(context_menu_1.ContextMenu, { children: [(0, jsx_runtime_1.jsx)(context_menu_1.ContextMenuTrigger, { asChild: true, children: (0, jsx_runtime_1.jsxs)(button_1.Button, { type: "button", variant: "outline", size: "lg", className: "justify-start data-[state=open]:bg-accent/60 data-[state=open]:ring-1 data-[state=open]:ring-primary/30", onClick: () => setCurrentFolderId(folder._id), children: [(0, jsx_runtime_1.jsx)(lucide_react_1.Folder, { className: "size-4" }), (0, jsx_runtime_1.jsx)("span", { className: "truncate", children: folder.name })] }) }), (0, jsx_runtime_1.jsx)(MediaContextMenuContent_1.default, { item: folder })] }, folder._id)))
|
|
785
|
-
: null] }), (0, jsx_runtime_1.jsxs)(file_upload_1.FileUpload, { value: files, onValueChange: setFiles, onUpload: handleUpload, onFileReject: onFileReject, maxFiles: 20, className: (0, utils_1.cn)('relative flex min-h-0 w-full flex-1 flex-col p-1', isModal
|
|
835
|
+
return ((0, jsx_runtime_1.jsx)("div", { className: (0, utils_1.cn)('flex min-h-0 w-full flex-col', isModal ? 'h-full overflow-hidden' : 'h-auto max-lg:h-auto lg:h-full'), children: (0, jsx_runtime_1.jsxs)(MediaPreviewContext_1.MediaPreviewProvider, { value: mediaPreviewContextValue, children: [(0, jsx_runtime_1.jsx)("input", { ref: replaceInputRef, type: "file", accept: "image/*", className: "hidden", tabIndex: -1, onChange: handleReplacementFileChange }), (0, jsx_runtime_1.jsxs)(file_upload_1.FileUpload, { value: files, onValueChange: setFiles, onUpload: handleUpload, onFileReject: onFileReject, maxFiles: 20, className: (0, utils_1.cn)('relative flex min-h-0 w-full flex-1 flex-col p-1', isModal
|
|
786
836
|
? 'overflow-hidden'
|
|
787
|
-
: 'max-lg:h-auto max-lg:overflow-visible lg:overflow-hidden'), multiple: true, disabled: isUploading, children: [(0, jsx_runtime_1.jsxs)("div", { className: "shrink-0 space-y-3", children: [(0, jsx_runtime_1.jsx)(PreviewsToolbar_1.default, {
|
|
837
|
+
: 'max-lg:h-auto max-lg:overflow-visible lg:overflow-hidden'), multiple: true, disabled: isUploading, children: [(0, jsx_runtime_1.jsxs)("div", { className: "shrink-0 space-y-3", children: [(0, jsx_runtime_1.jsx)(PreviewsToolbar_1.default, { children: (0, jsx_runtime_1.jsxs)("div", { className: "flex w-full flex-wrap gap-2 p-1", "data-tour": "media-folders", children: [(0, jsx_runtime_1.jsxs)(button_1.Button, { variant: "outline", disabled: isCreatingFolder, size: "lg", className: "justify-start", onClick: () => {
|
|
838
|
+
setIsCreateFolderDialogOpen(true);
|
|
839
|
+
}, children: [(0, jsx_runtime_1.jsx)(lucide_react_1.FolderPlus, { className: "size-4" }), (0, jsx_runtime_1.jsx)("span", { className: "truncate", children: t('media.createFolder') })] }), showChildFoldersSkeleton
|
|
840
|
+
? Array.from({ length: 4 }).map((_, index) => ((0, jsx_runtime_1.jsxs)("div", { className: "flex items-center gap-2 rounded-lg border bg-card p-2", children: [(0, jsx_runtime_1.jsx)(skeleton_1.Skeleton, { className: "h-7 w-7 rounded-md" }), (0, jsx_runtime_1.jsx)(skeleton_1.Skeleton, { className: "h-4 flex-1" })] }, `child-folder-skeleton-${index}`)))
|
|
841
|
+
: childFoldersData?.items?.length
|
|
842
|
+
? childFoldersData.items.map((folder) => ((0, jsx_runtime_1.jsxs)(context_menu_1.ContextMenu, { children: [(0, jsx_runtime_1.jsx)(context_menu_1.ContextMenuTrigger, { asChild: true, children: (0, jsx_runtime_1.jsxs)(button_1.Button, { type: "button", variant: "outline", size: "lg", className: "justify-start data-[state=open]:bg-accent/60 data-[state=open]:ring-1 data-[state=open]:ring-primary/30", onClick: () => setCurrentFolderId(folder._id), children: [(0, jsx_runtime_1.jsx)(lucide_react_1.Folder, { className: "size-4" }), (0, jsx_runtime_1.jsx)("span", { className: "truncate", children: folder.name })] }) }), (0, jsx_runtime_1.jsx)(MediaContextMenuContent_1.default, { item: folder })] }, folder._id)))
|
|
843
|
+
: null] }) }), (0, jsx_runtime_1.jsx)(file_upload_1.FileUploadList, { children: files.map((file) => ((0, jsx_runtime_1.jsxs)(file_upload_1.FileUploadItem, { value: file, children: [(0, jsx_runtime_1.jsx)(file_upload_1.FileUploadItemPreview, {}), (0, jsx_runtime_1.jsxs)("div", { className: "min-w-0 flex-1", children: [(0, jsx_runtime_1.jsx)(file_upload_1.FileUploadItemMetadata, {}), (0, jsx_runtime_1.jsx)(file_upload_1.FileUploadItemProgress, { className: "mt-2" })] }), (0, jsx_runtime_1.jsx)(file_upload_1.FileUploadItemDelete, { className: "rounded-md p-1 hover:bg-accent/40", children: (0, jsx_runtime_1.jsx)(lucide_react_1.X, { className: "size-4" }) })] }, file.name + file.lastModified))) })] }), (0, jsx_runtime_1.jsx)(file_upload_1.FileUploadDropzone, { asChild: true, tabIndex: -1, onClick: (event) => event.preventDefault(), className: (0, utils_1.cn)('group/dropzone relative min-h-0 w-full flex-1 items-stretch justify-start gap-0 rounded-xl border border-transparent p-0 hover:bg-transparent! focus-visible:bg-transparent! data-dragging:border-primary/40 data-dragging:bg-transparent!', isModal
|
|
788
844
|
? 'overflow-hidden'
|
|
789
845
|
: 'max-lg:flex-none max-lg:overflow-visible lg:overflow-hidden'), children: (0, jsx_runtime_1.jsxs)("div", { className: (0, utils_1.cn)('relative min-h-0 w-full items-stretch justify-start overflow-x-hidden p-1', isModal
|
|
790
846
|
? 'overflow-y-auto overscroll-contain scrollbar-thin'
|
|
791
|
-
: 'max-lg:overflow-y-visible lg:overflow-y-auto lg:overscroll-contain lg:scrollbar-thin'), "data-tour": "media-grid", children: [(0, jsx_runtime_1.jsx)("div", { className: "pointer-events-none absolute inset-0 z-20 flex items-center justify-center rounded-xl bg-background/50 opacity-0 backdrop-blur transition-opacity duration-200 ease-out group-data-dragging/dropzone:opacity-100", children: (0, jsx_runtime_1.jsxs)("div", { className: "flex flex-col items-center gap-1 text-center", children: [(0, jsx_runtime_1.jsx)("div", { className: "flex items-center justify-center rounded-full border p-2.5", children: (0, jsx_runtime_1.jsx)(lucide_react_1.Upload, { className: "size-6 text-muted-foreground" }) }), (0, jsx_runtime_1.jsx)("p", { className: "font-medium text-sm", children: t('media.dragDropFiles') }), (0, jsx_runtime_1.jsx)("p", { className: "text-muted-foreground text-xs", children: t('media.uploadLimits') })] }) }), showMediaSkeleton ? (0, jsx_runtime_1.jsx)(PreviewsViewLoader_1.default, { viewMode: viewMode }) : null, !showMediaSkeleton && media.length === 0 ? ((0, jsx_runtime_1.jsx)(card_1.Card, { className: "w-full p-8 text-center text-muted-foreground text-sm", children: trimmedSearch
|
|
792
|
-
? t('media.noSearchResults')
|
|
793
|
-
: t('media.emptyFolder') })) : null, !showMediaSkeleton && media.length > 0 ? (0, jsx_runtime_1.jsx)(ViewComponent, { media: media }) : null, (0, jsx_runtime_1.jsx)(PreviewsToolbar_1.PreviewsSelectionToolbar, {})] }) })] }), (0, jsx_runtime_1.jsx)(MediaDeleteDialog_1.default, { target: deleteTarget, isLoading: deleteMutation.isPending || deleteFolderMutation.isPending, onClose: () => setDeleteTarget(null), onConfirm: handleConfirmDelete }), (0, jsx_runtime_1.jsx)(MediaEditDialog_1.default, { target: editTarget, value: editName, isLoading: updateMutation.isPending, onValueChange: setEditName, onClose: () => setEditTarget(null), onConfirm: handleConfirmEdit }), (0, jsx_runtime_1.jsx)(MediaMoveDialog_1.default, { target: moveTarget, folders: folderOptions, value: destinationFolderId, isLoading: isMoving || updateMutation.isPending, onValueChange: setDestinationFolderId, onClose: () => {
|
|
847
|
+
: 'max-lg:overflow-y-visible lg:overflow-y-auto lg:overscroll-contain lg:scrollbar-thin'), "data-tour": "media-grid", children: [(0, jsx_runtime_1.jsx)("div", { className: "pointer-events-none absolute inset-0 z-20 flex items-center justify-center rounded-xl bg-background/50 opacity-0 backdrop-blur transition-opacity duration-200 ease-out group-data-dragging/dropzone:opacity-100", children: (0, jsx_runtime_1.jsxs)("div", { className: "flex flex-col items-center gap-1 text-center", children: [(0, jsx_runtime_1.jsx)("div", { className: "flex items-center justify-center rounded-full border p-2.5", children: (0, jsx_runtime_1.jsx)(lucide_react_1.Upload, { className: "size-6 text-muted-foreground" }) }), (0, jsx_runtime_1.jsx)("p", { className: "font-medium text-sm", children: t('media.dragDropFiles') }), (0, jsx_runtime_1.jsx)("p", { className: "text-muted-foreground text-xs", children: t('media.uploadLimits') })] }) }), showMediaSkeleton ? (0, jsx_runtime_1.jsx)(PreviewsViewLoader_1.default, { viewMode: viewMode }) : null, !showMediaSkeleton && media.length === 0 ? ((0, jsx_runtime_1.jsx)(card_1.Card, { className: "w-full p-8 text-center text-muted-foreground text-sm", children: trimmedSearch ? t('media.noSearchResults') : t('media.emptyFolder') })) : null, !showMediaSkeleton && media.length > 0 ? (0, jsx_runtime_1.jsx)(ViewComponent, { media: media }) : null, (0, jsx_runtime_1.jsx)(PreviewsToolbar_1.PreviewsSelectionToolbar, {})] }) })] }), (0, jsx_runtime_1.jsx)(MediaDeleteDialog_1.default, { target: deleteTarget, isLoading: deleteMutation.isPending || deleteFolderMutation.isPending, onClose: () => setDeleteTarget(null), onConfirm: handleConfirmDelete }), (0, jsx_runtime_1.jsx)(MediaEditDialog_1.default, { target: editTarget, value: editName, isLoading: updateMutation.isPending, onValueChange: setEditName, onClose: () => setEditTarget(null), onConfirm: handleConfirmEdit }), (0, jsx_runtime_1.jsx)(MediaMoveDialog_1.default, { target: moveTarget, folders: folderOptions, value: destinationFolderId, isLoading: isMoving || updateMutation.isPending, onValueChange: setDestinationFolderId, onClose: () => {
|
|
794
848
|
setMoveTarget(null);
|
|
795
849
|
setDestinationFolderId('');
|
|
796
850
|
}, onConfirm: () => void handleConfirmMove() }), (0, jsx_runtime_1.jsx)(MediaImageEditorDialog_1.default, { target: imageEditTarget, imageUrl: imageEditUrl, isSaving: isSavingImageEdit, onClose: () => {
|