@payloadcms/ui 4.0.0-canary.2 → 4.0.0-canary.4
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/css/colors.css +6 -0
- package/dist/css/design-tokens.css +5 -0
- package/dist/css/elevations.css +4 -0
- package/dist/css/utilities.css +3 -2
- package/dist/elements/AppHeader/index.d.ts +3 -2
- package/dist/elements/AppHeader/index.d.ts.map +1 -1
- package/dist/elements/AppHeader/index.js +9 -2
- package/dist/elements/AppHeader/index.js.map +1 -1
- package/dist/elements/ArrayAction/index.d.ts.map +1 -1
- package/dist/elements/ArrayAction/index.js +1 -2
- package/dist/elements/ArrayAction/index.js.map +1 -1
- package/dist/elements/BulkUpload/ActionsBar/index.css +4 -8
- package/dist/elements/BulkUpload/ActionsBar/index.d.ts +1 -5
- package/dist/elements/BulkUpload/ActionsBar/index.d.ts.map +1 -1
- package/dist/elements/BulkUpload/ActionsBar/index.js +15 -22
- package/dist/elements/BulkUpload/ActionsBar/index.js.map +1 -1
- package/dist/elements/BulkUpload/AddFilesView/index.css +14 -8
- package/dist/elements/BulkUpload/AddFilesView/index.d.ts +2 -2
- package/dist/elements/BulkUpload/AddFilesView/index.d.ts.map +1 -1
- package/dist/elements/BulkUpload/AddFilesView/index.js +41 -36
- package/dist/elements/BulkUpload/AddFilesView/index.js.map +1 -1
- package/dist/elements/BulkUpload/AddingFilesView/index.css +158 -6
- package/dist/elements/BulkUpload/AddingFilesView/index.d.ts +5 -1
- package/dist/elements/BulkUpload/AddingFilesView/index.d.ts.map +1 -1
- package/dist/elements/BulkUpload/AddingFilesView/index.js +134 -65
- package/dist/elements/BulkUpload/AddingFilesView/index.js.map +1 -1
- package/dist/elements/BulkUpload/DiscardWithoutSaving/index.js +4 -4
- package/dist/elements/BulkUpload/DiscardWithoutSaving/index.js.map +1 -1
- package/dist/elements/BulkUpload/EditForm/index.d.ts +1 -1
- package/dist/elements/BulkUpload/EditForm/index.d.ts.map +1 -1
- package/dist/elements/BulkUpload/EditForm/index.js +16 -17
- package/dist/elements/BulkUpload/EditForm/index.js.map +1 -1
- package/dist/elements/BulkUpload/EditForm/types.d.ts +2 -3
- package/dist/elements/BulkUpload/EditForm/types.d.ts.map +1 -1
- package/dist/elements/BulkUpload/EditForm/types.js.map +1 -1
- package/dist/elements/BulkUpload/EditMany/DrawerContent.d.ts.map +1 -1
- package/dist/elements/BulkUpload/EditMany/DrawerContent.js +78 -64
- package/dist/elements/BulkUpload/EditMany/DrawerContent.js.map +1 -1
- package/dist/elements/BulkUpload/EditMany/index.d.ts.map +1 -1
- package/dist/elements/BulkUpload/EditMany/index.js +28 -10
- package/dist/elements/BulkUpload/EditMany/index.js.map +1 -1
- package/dist/elements/BulkUpload/FileSidebar/index.css +63 -143
- package/dist/elements/BulkUpload/FileSidebar/index.d.ts.map +1 -1
- package/dist/elements/BulkUpload/FileSidebar/index.js +42 -175
- package/dist/elements/BulkUpload/FileSidebar/index.js.map +1 -1
- package/dist/elements/BulkUpload/FormsManager/index.js +1 -1
- package/dist/elements/BulkUpload/FormsManager/index.js.map +1 -1
- package/dist/elements/BulkUpload/index.css +48 -0
- package/dist/elements/BulkUpload/index.d.ts +6 -5
- package/dist/elements/BulkUpload/index.d.ts.map +1 -1
- package/dist/elements/BulkUpload/index.js +42 -41
- package/dist/elements/BulkUpload/index.js.map +1 -1
- package/dist/elements/Card/index.css +1 -1
- package/dist/elements/ColumnSelection/Popup.d.ts +12 -0
- package/dist/elements/ColumnSelection/Popup.d.ts.map +1 -0
- package/dist/elements/{ColumnSelector/index.js → ColumnSelection/Popup.js} +23 -12
- package/dist/elements/ColumnSelection/Popup.js.map +1 -0
- package/dist/elements/ColumnSelection/index.d.ts +10 -0
- package/dist/elements/ColumnSelection/index.d.ts.map +1 -0
- package/dist/elements/{ColumnsButton → ColumnSelection}/index.js +23 -17
- package/dist/elements/ColumnSelection/index.js.map +1 -0
- package/dist/elements/CopyLocaleData/index.js +1 -1
- package/dist/elements/CopyLocaleData/index.js.map +1 -1
- package/dist/elements/CreateDocumentButton/index.d.ts.map +1 -1
- package/dist/elements/CreateDocumentButton/index.js +0 -1
- package/dist/elements/CreateDocumentButton/index.js.map +1 -1
- package/dist/elements/DatePicker/index.css +8 -8
- package/dist/elements/Dialog/DialogHeader/index.d.ts +4 -0
- package/dist/elements/Dialog/DialogHeader/index.d.ts.map +1 -1
- package/dist/elements/Dialog/DialogHeader/index.js +45 -30
- package/dist/elements/Dialog/DialogHeader/index.js.map +1 -1
- package/dist/elements/Dialog/DialogModal/index.d.ts +5 -0
- package/dist/elements/Dialog/DialogModal/index.d.ts.map +1 -1
- package/dist/elements/Dialog/DialogModal/index.js +58 -31
- package/dist/elements/Dialog/DialogModal/index.js.map +1 -1
- package/dist/elements/Dialog/DialogTitle/index.css +9 -0
- package/dist/elements/Dialog/DialogTitle/index.d.ts +5 -0
- package/dist/elements/Dialog/DialogTitle/index.d.ts.map +1 -0
- package/dist/elements/Dialog/DialogTitle/index.js +10 -0
- package/dist/elements/Dialog/DialogTitle/index.js.map +1 -0
- package/dist/elements/Dialog/index.css +7 -1
- package/dist/elements/DocumentControls/index.css +8 -2
- package/dist/elements/DocumentControls/index.d.ts.map +1 -1
- package/dist/elements/DocumentControls/index.js +12 -3
- package/dist/elements/DocumentControls/index.js.map +1 -1
- package/dist/elements/DocumentDrawer/DrawerHeader/index.d.ts.map +1 -1
- package/dist/elements/DocumentDrawer/DrawerHeader/index.js +5 -3
- package/dist/elements/DocumentDrawer/DrawerHeader/index.js.map +1 -1
- package/dist/elements/DocumentFields/index.css +5 -2
- package/dist/elements/DocumentFields/index.d.ts +5 -0
- package/dist/elements/DocumentFields/index.d.ts.map +1 -1
- package/dist/elements/DocumentFields/index.js +9 -1
- package/dist/elements/DocumentFields/index.js.map +1 -1
- package/dist/elements/DocumentHeader/DocumentHeaderRoot/index.d.ts +12 -0
- package/dist/elements/DocumentHeader/DocumentHeaderRoot/index.d.ts.map +1 -0
- package/dist/elements/DocumentHeader/DocumentHeaderRoot/index.js +28 -0
- package/dist/elements/DocumentHeader/DocumentHeaderRoot/index.js.map +1 -0
- package/dist/elements/DocumentHeader/index.js +2 -3
- package/dist/elements/DocumentHeader/index.js.map +1 -1
- package/dist/elements/DraggableSortable/DragOverlayPreview/index.css +1 -1
- package/dist/elements/DrawerActionHeader/index.css +1 -1
- package/dist/elements/{BulkUpload/Header → DrawerHeader}/index.css +7 -1
- package/dist/elements/DrawerHeader/index.d.ts +10 -0
- package/dist/elements/DrawerHeader/index.d.ts.map +1 -0
- package/dist/elements/{BulkUpload/Header → DrawerHeader}/index.js +16 -11
- package/dist/elements/DrawerHeader/index.js.map +1 -0
- package/dist/elements/Dropzone/index.css +5 -13
- package/dist/elements/DuplicateDocument/SelectLocalesDrawer/index.js +1 -1
- package/dist/elements/DuplicateDocument/SelectLocalesDrawer/index.js.map +1 -1
- package/dist/elements/EditUpload/index.css +97 -158
- package/dist/elements/EditUpload/index.d.ts +2 -1
- package/dist/elements/EditUpload/index.d.ts.map +1 -1
- package/dist/elements/EditUpload/index.js +205 -231
- package/dist/elements/EditUpload/index.js.map +1 -1
- package/dist/elements/EditUpload/{library.scss → library.css} +108 -46
- package/dist/elements/FileDetails/DraggableFileDetails/index.d.ts +1 -1
- package/dist/elements/FileDetails/DraggableFileDetails/index.d.ts.map +1 -1
- package/dist/elements/FileDetails/DraggableFileDetails/index.js.map +1 -1
- package/dist/elements/FileDetails/FileMeta/index.css +27 -0
- package/dist/elements/FileDetails/FileMeta/index.d.ts +1 -1
- package/dist/elements/FileDetails/FileMeta/index.d.ts.map +1 -1
- package/dist/elements/FileDetails/FileMeta/index.js +1 -1
- package/dist/elements/FileDetails/FileMeta/index.js.map +1 -1
- package/dist/elements/FileDetails/StaticFileDetails/index.css +140 -0
- package/dist/elements/FileDetails/StaticFileDetails/index.d.ts +2 -2
- package/dist/elements/FileDetails/StaticFileDetails/index.d.ts.map +1 -1
- package/dist/elements/FileDetails/StaticFileDetails/index.js +1 -1
- package/dist/elements/FileDetails/StaticFileDetails/index.js.map +1 -1
- package/dist/elements/FileDetails/index.d.ts +1 -1
- package/dist/elements/FileDetails/index.d.ts.map +1 -1
- package/dist/elements/FileDetails/index.js.map +1 -1
- package/dist/elements/FileManager/FilePreview/AudioPreview/index.css +8 -0
- package/dist/elements/FileManager/FilePreview/AudioPreview/index.d.ts +10 -0
- package/dist/elements/FileManager/FilePreview/AudioPreview/index.d.ts.map +1 -0
- package/dist/elements/FileManager/FilePreview/AudioPreview/index.js +24 -0
- package/dist/elements/FileManager/FilePreview/AudioPreview/index.js.map +1 -0
- package/dist/elements/FileManager/FilePreview/PdfPreview/index.css +9 -0
- package/dist/elements/FileManager/FilePreview/PdfPreview/index.d.ts +12 -0
- package/dist/elements/FileManager/FilePreview/PdfPreview/index.d.ts.map +1 -0
- package/dist/elements/FileManager/FilePreview/PdfPreview/index.js +27 -0
- package/dist/elements/FileManager/FilePreview/PdfPreview/index.js.map +1 -0
- package/dist/elements/FileManager/FilePreview/VideoPreview/index.css +8 -0
- package/dist/elements/FileManager/FilePreview/VideoPreview/index.d.ts +10 -0
- package/dist/elements/FileManager/FilePreview/VideoPreview/index.d.ts.map +1 -0
- package/dist/elements/FileManager/FilePreview/VideoPreview/index.js +24 -0
- package/dist/elements/FileManager/FilePreview/VideoPreview/index.js.map +1 -0
- package/dist/elements/FileManager/FilePreview/index.css +83 -0
- package/dist/elements/FileManager/FilePreview/index.d.ts +13 -0
- package/dist/elements/FileManager/FilePreview/index.d.ts.map +1 -0
- package/dist/elements/FileManager/FilePreview/index.js +140 -0
- package/dist/elements/FileManager/FilePreview/index.js.map +1 -0
- package/dist/elements/FileManager/FileToolbar/index.css +91 -0
- package/dist/elements/FileManager/FileToolbar/index.d.ts +14 -0
- package/dist/elements/FileManager/FileToolbar/index.d.ts.map +1 -0
- package/dist/elements/FileManager/FileToolbar/index.js +106 -0
- package/dist/elements/FileManager/FileToolbar/index.js.map +1 -0
- package/dist/elements/FileManager/index.css +154 -0
- package/dist/elements/FileManager/index.d.ts +19 -0
- package/dist/elements/FileManager/index.d.ts.map +1 -0
- package/dist/elements/FileManager/index.js +424 -0
- package/dist/elements/FileManager/index.js.map +1 -0
- package/dist/elements/GroupBy/Popup.d.ts +21 -0
- package/dist/elements/GroupBy/Popup.d.ts.map +1 -0
- package/dist/elements/GroupBy/Popup.js +268 -0
- package/dist/elements/GroupBy/Popup.js.map +1 -0
- package/dist/elements/GroupBy/index.d.ts +12 -0
- package/dist/elements/GroupBy/index.d.ts.map +1 -0
- package/dist/elements/GroupBy/index.js +91 -0
- package/dist/elements/GroupBy/index.js.map +1 -0
- package/dist/elements/Hierarchy/ColumnBrowser/Column/index.css +2 -2
- package/dist/elements/Hierarchy/Drawer/index.css +1 -1
- package/dist/elements/ListColumnSelectionButton/index.d.ts +11 -0
- package/dist/elements/ListColumnSelectionButton/index.d.ts.map +1 -0
- package/dist/elements/ListColumnSelectionButton/index.js +37 -0
- package/dist/elements/ListColumnSelectionButton/index.js.map +1 -0
- package/dist/elements/ListControls/index.d.ts.map +1 -1
- package/dist/elements/ListControls/index.js +7 -8
- package/dist/elements/ListControls/index.js.map +1 -1
- package/dist/elements/ListDrawer/DrawerContent.js +1 -1
- package/dist/elements/ListDrawer/DrawerContent.js.map +1 -1
- package/dist/elements/ListDrawer/Provider.d.ts +1 -1
- package/dist/elements/ListDrawer/Provider.d.ts.map +1 -1
- package/dist/elements/ListDrawer/Provider.js.map +1 -1
- package/dist/elements/ListGroupByButton/index.d.ts +12 -0
- package/dist/elements/ListGroupByButton/index.d.ts.map +1 -0
- package/dist/elements/ListGroupByButton/index.js +55 -0
- package/dist/elements/ListGroupByButton/index.js.map +1 -0
- package/dist/elements/ListHeader/DrawerRelationshipSelect/index.d.ts.map +1 -1
- package/dist/elements/ListHeader/DrawerRelationshipSelect/index.js +2 -0
- package/dist/elements/ListHeader/DrawerRelationshipSelect/index.js.map +1 -1
- package/dist/elements/ListHeader/TitleActions/ListBulkUploadButton.js +4 -4
- package/dist/elements/ListHeader/TitleActions/ListBulkUploadButton.js.map +1 -1
- package/dist/elements/ListWhereBuilder/index.d.ts +16 -0
- package/dist/elements/ListWhereBuilder/index.d.ts.map +1 -0
- package/dist/elements/ListWhereBuilder/index.js +62 -0
- package/dist/elements/ListWhereBuilder/index.js.map +1 -0
- package/dist/elements/LivePreview/Toolbar/Controls/index.js +2 -2
- package/dist/elements/LivePreview/Toolbar/Controls/index.js.map +1 -1
- package/dist/elements/LivePreview/Toolbar/SizeInput/index.css +5 -44
- package/dist/elements/LivePreview/Toolbar/SizeInput/index.d.ts.map +1 -1
- package/dist/elements/LivePreview/Toolbar/SizeInput/index.js +25 -43
- package/dist/elements/LivePreview/Toolbar/SizeInput/index.js.map +1 -1
- package/dist/elements/MiniCarousel/index.css +94 -0
- package/dist/elements/MiniCarousel/index.d.ts +15 -0
- package/dist/elements/MiniCarousel/index.d.ts.map +1 -0
- package/dist/elements/MiniCarousel/index.js +84 -0
- package/dist/elements/MiniCarousel/index.js.map +1 -0
- package/dist/elements/Nav/SettingsMenuButton/index.css +5 -0
- package/dist/elements/Nav/SettingsMenuButton/index.d.ts +1 -1
- package/dist/elements/Nav/SettingsMenuButton/index.d.ts.map +1 -1
- package/dist/elements/Nav/SettingsMenuButton/index.js +1 -1
- package/dist/elements/Nav/SettingsMenuButton/index.js.map +1 -1
- package/dist/elements/Nav/index.css +2 -2
- package/dist/elements/NavGroup/index.css +1 -1
- package/dist/elements/Popup/PopupButtonList/index.css +5 -0
- package/dist/elements/Popup/PopupGroupLabel/index.css +8 -5
- package/dist/elements/Popup/index.d.ts +1 -1
- package/dist/elements/Popup/index.d.ts.map +1 -1
- package/dist/elements/Popup/index.js +43 -12
- package/dist/elements/Popup/index.js.map +1 -1
- package/dist/elements/PreviewSizes/index.css +149 -0
- package/dist/elements/PreviewSizes/index.d.ts +2 -2
- package/dist/elements/PreviewSizes/index.d.ts.map +1 -1
- package/dist/elements/PreviewSizes/index.js +1 -1
- package/dist/elements/PreviewSizes/index.js.map +1 -1
- package/dist/elements/PublishMany/DrawerContent.d.ts +2 -1
- package/dist/elements/PublishMany/DrawerContent.d.ts.map +1 -1
- package/dist/elements/PublishMany/DrawerContent.js.map +1 -1
- package/dist/elements/PublishMany/index.d.ts +2 -6
- package/dist/elements/PublishMany/index.d.ts.map +1 -1
- package/dist/elements/PublishMany/index.js +0 -38
- package/dist/elements/PublishMany/index.js.map +1 -1
- package/dist/elements/QueryPresets/cells/ColumnsCell/{index.scss → index.css} +1 -3
- package/dist/elements/QueryPresets/cells/ColumnsCell/index.d.ts +1 -1
- package/dist/elements/QueryPresets/cells/ColumnsCell/index.d.ts.map +1 -1
- package/dist/elements/QueryPresets/cells/ColumnsCell/index.js +1 -1
- package/dist/elements/QueryPresets/cells/ColumnsCell/index.js.map +1 -1
- package/dist/elements/QueryPresets/fields/ColumnsField/index.d.ts +1 -1
- package/dist/elements/QueryPresets/fields/ColumnsField/index.d.ts.map +1 -1
- package/dist/elements/QueryPresets/fields/ColumnsField/index.js +77 -48
- package/dist/elements/QueryPresets/fields/ColumnsField/index.js.map +1 -1
- package/dist/elements/QueryPresets/fields/GroupByField/index.d.ts +1 -1
- package/dist/elements/QueryPresets/fields/GroupByField/index.d.ts.map +1 -1
- package/dist/elements/QueryPresets/fields/GroupByField/index.js +12 -21
- package/dist/elements/QueryPresets/fields/GroupByField/index.js.map +1 -1
- package/dist/elements/QueryPresets/fields/Heading/index.css +52 -0
- package/dist/elements/QueryPresets/fields/Heading/index.d.ts +7 -0
- package/dist/elements/QueryPresets/fields/Heading/index.d.ts.map +1 -0
- package/dist/elements/QueryPresets/fields/Heading/index.js +31 -0
- package/dist/elements/QueryPresets/fields/Heading/index.js.map +1 -0
- package/dist/elements/QueryPresets/fields/WhereField/index.d.ts +1 -1
- package/dist/elements/QueryPresets/fields/WhereField/index.d.ts.map +1 -1
- package/dist/elements/QueryPresets/fields/WhereField/index.js +24 -23
- package/dist/elements/QueryPresets/fields/WhereField/index.js.map +1 -1
- package/dist/elements/QueryPresets/fields/fields.css +23 -0
- package/dist/elements/ReactSelect/DropdownIndicator/index.css +1 -1
- package/dist/elements/ReactSelect/getCaptureMenuScroll.d.ts +5 -0
- package/dist/elements/ReactSelect/getCaptureMenuScroll.d.ts.map +1 -0
- package/dist/elements/ReactSelect/getCaptureMenuScroll.js +10 -0
- package/dist/elements/ReactSelect/getCaptureMenuScroll.js.map +1 -0
- package/dist/elements/ReactSelect/getMenuListStyles.d.ts +6 -0
- package/dist/elements/ReactSelect/getMenuListStyles.d.ts.map +1 -0
- package/dist/elements/ReactSelect/getMenuListStyles.js +7 -0
- package/dist/elements/ReactSelect/getMenuListStyles.js.map +1 -0
- package/dist/elements/ReactSelect/index.css +0 -1
- package/dist/elements/ReactSelect/index.d.ts.map +1 -1
- package/dist/elements/ReactSelect/index.js +168 -148
- package/dist/elements/ReactSelect/index.js.map +1 -1
- package/dist/elements/ReactSelect/types.d.ts +1 -0
- package/dist/elements/ReactSelect/types.d.ts.map +1 -1
- package/dist/elements/ReactSelect/types.js.map +1 -1
- package/dist/elements/RelationshipTable/AddNewButton.d.ts.map +1 -1
- package/dist/elements/RelationshipTable/AddNewButton.js +1 -2
- package/dist/elements/RelationshipTable/AddNewButton.js.map +1 -1
- package/dist/elements/RelationshipTable/index.js +2 -2
- package/dist/elements/RelationshipTable/index.js.map +1 -1
- package/dist/elements/Search/SearchInput/index.js +1 -1
- package/dist/elements/Search/SearchInput/index.js.map +1 -1
- package/dist/elements/SortColumn/index.css +1 -1
- package/dist/elements/Table/DefaultCell/fields/Hierarchy/index.d.ts.map +1 -1
- package/dist/elements/Table/DefaultCell/fields/Hierarchy/index.js +21 -2
- package/dist/elements/Table/DefaultCell/fields/Hierarchy/index.js.map +1 -1
- package/dist/elements/Table/index.css +24 -2
- package/dist/elements/Thumbnail/index.css +41 -0
- package/dist/elements/Thumbnail/index.d.ts +3 -3
- package/dist/elements/Thumbnail/index.d.ts.map +1 -1
- package/dist/elements/Thumbnail/index.js +1 -1
- package/dist/elements/Thumbnail/index.js.map +1 -1
- package/dist/elements/Toasts/fieldErrors.d.ts +1 -0
- package/dist/elements/Toasts/fieldErrors.d.ts.map +1 -1
- package/dist/elements/Toasts/fieldErrors.js +25 -9
- package/dist/elements/Toasts/fieldErrors.js.map +1 -1
- package/dist/elements/Toasts/index.css +5 -0
- package/dist/elements/UnpublishMany/DrawerContent.d.ts +2 -1
- package/dist/elements/UnpublishMany/DrawerContent.d.ts.map +1 -1
- package/dist/elements/UnpublishMany/DrawerContent.js.map +1 -1
- package/dist/elements/UnpublishMany/index.d.ts +2 -4
- package/dist/elements/UnpublishMany/index.d.ts.map +1 -1
- package/dist/elements/UnpublishMany/index.js +0 -38
- package/dist/elements/UnpublishMany/index.js.map +1 -1
- package/dist/elements/Upload/UploadFromURLModal/index.d.ts +11 -0
- package/dist/elements/Upload/UploadFromURLModal/index.d.ts.map +1 -0
- package/dist/elements/Upload/UploadFromURLModal/index.js +88 -0
- package/dist/elements/Upload/UploadFromURLModal/index.js.map +1 -0
- package/dist/elements/Upload/index.css +134 -45
- package/dist/elements/Upload/index.d.ts +3 -8
- package/dist/elements/Upload/index.d.ts.map +1 -1
- package/dist/elements/Upload/index.js +71 -92
- package/dist/elements/Upload/index.js.map +1 -1
- package/dist/elements/UserMenu/LanguageMenu/index.js +1 -1
- package/dist/elements/UserMenu/LanguageMenu/index.js.map +1 -1
- package/dist/elements/UserMenu/SettingsMenu/index.d.ts +6 -2
- package/dist/elements/UserMenu/SettingsMenu/index.d.ts.map +1 -1
- package/dist/elements/UserMenu/SettingsMenu/index.js +15 -10
- package/dist/elements/UserMenu/SettingsMenu/index.js.map +1 -1
- package/dist/elements/UserMenu/ThemeMenu/index.js +1 -1
- package/dist/elements/UserMenu/ThemeMenu/index.js.map +1 -1
- package/dist/elements/UserMenu/index.d.ts +2 -1
- package/dist/elements/UserMenu/index.d.ts.map +1 -1
- package/dist/elements/UserMenu/index.js +8 -5
- package/dist/elements/UserMenu/index.js.map +1 -1
- package/dist/elements/WhereBuilder/Condition/index.d.ts +1 -0
- package/dist/elements/WhereBuilder/Condition/index.d.ts.map +1 -1
- package/dist/elements/WhereBuilder/Condition/index.js +17 -2
- package/dist/elements/WhereBuilder/Condition/index.js.map +1 -1
- package/dist/elements/WhereBuilder/index.d.ts +4 -3
- package/dist/elements/WhereBuilder/index.d.ts.map +1 -1
- package/dist/elements/WhereBuilder/index.js +71 -62
- package/dist/elements/WhereBuilder/index.js.map +1 -1
- package/dist/elements/WhereBuilder/types.d.ts +6 -5
- package/dist/elements/WhereBuilder/types.d.ts.map +1 -1
- package/dist/elements/WhereBuilder/types.js.map +1 -1
- package/dist/exports/client/index.d.ts +6 -2
- package/dist/exports/client/index.d.ts.map +1 -1
- package/dist/exports/client/index.js +26 -26
- package/dist/exports/client/index.js.map +4 -4
- package/dist/exports/shared/index.js +2 -2
- package/dist/exports/shared/index.js.map +2 -2
- package/dist/fields/Blocks/BlockSelector/BlockSearch/index.css +1 -1
- package/dist/fields/Blocks/BlockSelector/index.css +2 -5
- package/dist/fields/Checkbox/index.css +2 -2
- package/dist/fields/Group/index.css +3 -3
- package/dist/fields/Number/Input.d.ts.map +1 -1
- package/dist/fields/Number/Input.js +47 -35
- package/dist/fields/Number/Input.js.map +1 -1
- package/dist/fields/Number/index.css +19 -0
- package/dist/fields/Number/types.d.ts +6 -0
- package/dist/fields/Number/types.d.ts.map +1 -1
- package/dist/fields/Number/types.js.map +1 -1
- package/dist/fields/RadioGroup/index.css +6 -0
- package/dist/fields/Relationship/select-components/MultiValueLabel/index.css +1 -1
- package/dist/fields/Text/Input.d.ts.map +1 -1
- package/dist/fields/Text/Input.js +31 -28
- package/dist/fields/Text/Input.js.map +1 -1
- package/dist/fields/Text/types.d.ts +5 -0
- package/dist/fields/Text/types.d.ts.map +1 -1
- package/dist/fields/Text/types.js.map +1 -1
- package/dist/fields/Upload/Input.d.ts.map +1 -1
- package/dist/fields/Upload/Input.js +12 -11
- package/dist/fields/Upload/Input.js.map +1 -1
- package/dist/fields/Upload/index.js +1 -1
- package/dist/fields/Upload/index.js.map +1 -1
- package/dist/graphics/Icon/index.js +1 -1
- package/dist/graphics/Icon/index.js.map +1 -1
- package/dist/hooks/useElementHeightVariable.d.ts +15 -0
- package/dist/hooks/useElementHeightVariable.d.ts.map +1 -0
- package/dist/hooks/useElementHeightVariable.js +53 -0
- package/dist/hooks/useElementHeightVariable.js.map +1 -0
- package/dist/icons/Check/index.css +1 -2
- package/dist/icons/Check/index.js +1 -1
- package/dist/icons/Check/index.js.map +1 -1
- package/dist/icons/Crop/index.css +5 -0
- package/dist/icons/Crop/index.d.ts +7 -0
- package/dist/icons/Crop/index.d.ts.map +1 -0
- package/dist/icons/Crop/index.js +24 -0
- package/dist/icons/Crop/index.js.map +1 -0
- package/dist/icons/Download/index.css +5 -0
- package/dist/icons/{ExternalLink → Download}/index.d.ts +1 -1
- package/dist/icons/Download/index.d.ts.map +1 -0
- package/dist/icons/Download/index.js +27 -0
- package/dist/icons/Download/index.js.map +1 -0
- package/dist/icons/{ExternalLink → NewTab}/index.css +1 -1
- package/dist/icons/NewTab/index.d.ts +7 -0
- package/dist/icons/NewTab/index.d.ts.map +1 -0
- package/dist/icons/NewTab/index.js +25 -0
- package/dist/icons/NewTab/index.js.map +1 -0
- package/dist/icons/Replace/index.css +5 -0
- package/dist/icons/Replace/index.d.ts +6 -0
- package/dist/icons/Replace/index.d.ts.map +1 -0
- package/dist/icons/Replace/index.js +20 -0
- package/dist/icons/Replace/index.js.map +1 -0
- package/dist/icons/Reset/index.css +5 -0
- package/dist/icons/Reset/index.d.ts +7 -0
- package/dist/icons/Reset/index.d.ts.map +1 -0
- package/dist/icons/Reset/index.js +25 -0
- package/dist/icons/Reset/index.js.map +1 -0
- package/dist/icons/Swap/index.js +1 -1
- package/dist/icons/Swap/index.js.map +1 -1
- package/dist/icons/Warning/index.css +1 -7
- package/dist/icons/Warning/index.d.ts +1 -1
- package/dist/icons/Warning/index.d.ts.map +1 -1
- package/dist/icons/Warning/index.js +11 -16
- package/dist/icons/Warning/index.js.map +1 -1
- package/dist/providers/ToastContainer/index.css +208 -0
- package/dist/providers/ToastContainer/index.d.ts +1 -0
- package/dist/providers/ToastContainer/index.d.ts.map +1 -1
- package/dist/providers/ToastContainer/index.js +19 -6
- package/dist/providers/ToastContainer/index.js.map +1 -1
- package/dist/scss/app.scss +10 -4
- package/dist/styles.css +1 -1
- package/dist/templates/Default/index.d.ts.map +1 -1
- package/dist/templates/Default/index.js +52 -10
- package/dist/templates/Default/index.js.map +1 -1
- package/dist/utilities/reduceFieldsToOptions.js +1 -1
- package/dist/utilities/reduceFieldsToOptions.js.map +1 -1
- package/dist/views/API/index.client.js +2 -2
- package/dist/views/API/index.client.js.map +1 -1
- package/dist/views/Dashboard/Default/ModularDashboard/renderWidget/RenderWidget.js +2 -2
- package/dist/views/Dashboard/Default/ModularDashboard/renderWidget/RenderWidget.js.map +1 -1
- package/dist/views/Dashboard/Default/ModularDashboard/renderWidget/renderWidgetServerFn.js +2 -2
- package/dist/views/Dashboard/Default/ModularDashboard/renderWidget/renderWidgetServerFn.js.map +1 -1
- package/dist/views/Document/index.d.ts.map +1 -1
- package/dist/views/Document/index.js +1 -0
- package/dist/views/Document/index.js.map +1 -1
- package/dist/views/Document/renderDocumentSlots.d.ts +1 -0
- package/dist/views/Document/renderDocumentSlots.d.ts.map +1 -1
- package/dist/views/Document/renderDocumentSlots.js +47 -1
- package/dist/views/Document/renderDocumentSlots.js.map +1 -1
- package/dist/views/Edit/index.css +143 -6
- package/dist/views/Edit/index.d.ts +1 -1
- package/dist/views/Edit/index.d.ts.map +1 -1
- package/dist/views/Edit/index.js +34 -31
- package/dist/views/Edit/index.js.map +1 -1
- package/dist/views/HierarchyList/DocumentListSelection/index.js +4 -4
- package/dist/views/HierarchyList/DocumentListSelection/index.js.map +1 -1
- package/dist/views/HierarchyList/HierarchyTable/SlotTable.css +2 -2
- package/dist/views/List/ListHeader/index.css +5 -0
- package/dist/views/List/ListSelection/index.js +4 -4
- package/dist/views/List/ListSelection/index.js.map +1 -1
- package/dist/views/List/index.client.d.ts.map +1 -1
- package/dist/views/List/index.client.js +6 -6
- package/dist/views/List/index.client.js.map +1 -1
- package/dist/views/List/renderListViewSlots.d.ts.map +1 -1
- package/dist/views/List/renderListViewSlots.js +9 -6
- package/dist/views/List/renderListViewSlots.js.map +1 -1
- package/dist/views/Logout/LogoutClient.js +1 -1
- package/dist/views/Logout/LogoutClient.js.map +1 -1
- package/dist/views/Versions/index.css +0 -4
- package/package.json +4 -4
- package/dist/elements/BulkUpload/Header/index.d.ts +0 -9
- package/dist/elements/BulkUpload/Header/index.d.ts.map +0 -1
- package/dist/elements/BulkUpload/Header/index.js.map +0 -1
- package/dist/elements/ColumnSelector/index.d.ts +0 -9
- package/dist/elements/ColumnSelector/index.d.ts.map +0 -1
- package/dist/elements/ColumnSelector/index.js.map +0 -1
- package/dist/elements/ColumnsButton/index.d.ts +0 -7
- package/dist/elements/ColumnsButton/index.d.ts.map +0 -1
- package/dist/elements/ColumnsButton/index.js.map +0 -1
- package/dist/elements/FileDetails/FileMeta/index.scss +0 -31
- package/dist/elements/FileDetails/StaticFileDetails/index.scss +0 -134
- package/dist/elements/GroupByBuilder/index.d.ts +0 -12
- package/dist/elements/GroupByBuilder/index.d.ts.map +0 -1
- package/dist/elements/GroupByBuilder/index.js +0 -164
- package/dist/elements/GroupByBuilder/index.js.map +0 -1
- package/dist/elements/GroupByBuilder/index.scss +0 -39
- package/dist/elements/GroupByControl/index.d.ts +0 -9
- package/dist/elements/GroupByControl/index.d.ts.map +0 -1
- package/dist/elements/GroupByControl/index.js +0 -254
- package/dist/elements/GroupByControl/index.js.map +0 -1
- package/dist/elements/Nav/SettingsMenuButton/index.scss +0 -11
- package/dist/elements/PreviewSizes/index.scss +0 -147
- package/dist/elements/QueryPresets/fields/ColumnsField/index.scss +0 -17
- package/dist/elements/QueryPresets/fields/GroupByField/index.scss +0 -17
- package/dist/elements/QueryPresets/fields/WhereField/index.scss +0 -23
- package/dist/elements/Thumbnail/index.scss +0 -53
- package/dist/icons/ExternalLink/index.d.ts.map +0 -1
- package/dist/icons/ExternalLink/index.js +0 -26
- package/dist/icons/ExternalLink/index.js.map +0 -1
- package/dist/scss/toasts.scss +0 -146
- /package/dist/elements/{ColumnSelector/index.css → ColumnSelection/Popup.css} +0 -0
- /package/dist/elements/{GroupByControl/index.css → GroupBy/Popup.css} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["useModal","React","useRef","useState","ReactCrop","editDrawerSlug","PlusIcon","useTranslation","appendCacheTag","Button","baseClass","Input","props","name","disabled","onChange","ref","value","_jsxs","className","_jsx","e","target","type","defaultCrop","height","unit","width","x","y","EditUpload","fileName","fileSrc","imageCacheTag","initialCrop","initialFocalPoint","onSave","showCrop","showFocalPoint","closeModal","t","crop","setCrop","defaultFocalPosition","focalPosition","setFocalPosition","checkBounds","setCheckBounds","uncroppedPixelHeight","setUncroppedPixelHeight","uncroppedPixelWidth","setUncroppedPixelWidth","focalWrapRef","undefined","imageRef","cropRef","heightInputRef","widthInputRef","imageLoaded","setImageLoaded","onImageLoad","currentTarget","naturalHeight","naturalWidth","fineTuneCrop","dimension","intValue","parseInt","percentage","prev","fineTuneFocalPosition","coordinate","prevPosition","saveEdits","focalPoint","heightInPixels","Number","current","widthInPixels","onDragEnd","useCallback","centerFocalPoint","containerRect","getBoundingClientRect","boundsRect","xCenter","left","yCenter","top","fileSrcToUse","title","buttonStyle","onClick","style","aspectRatio","_","c","onComplete","renderSelectionAddon","alt","onLoad","src","DraggableElement","boundsRef","containerRef","initialPosition","toFixed","children","position","setPosition","isDragging","setIsDragging","dragRef","getCoordinates","mouseXArg","mouseYArg","recenter","mouseX","mouseY","xOutOfBounds","right","yOutOfBounds","bottom","handleMouseDown","event","preventDefault","handleMouseMove","clientX","clientY","onDrop","useEffect","filter","Boolean","join","onMouseMove","onMouseDown","onMouseUp"],"sources":["../../../src/elements/EditUpload/index.tsx"],"sourcesContent":["'use client'\n\nimport type { UploadEdits } from 'payload'\n\nimport { useModal } from '@faceless-ui/modal'\nimport React, { useRef, useState } from 'react'\nimport ReactCrop from 'react-image-crop'\n\nimport { editDrawerSlug } from '../../elements/Upload/index.js'\nimport { PlusIcon } from '../../icons/Plus/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { appendCacheTag } from '../../utilities/appendCacheTag.js'\nimport { Button } from '../Button/index.js'\nimport './index.css'\n\nconst baseClass = 'edit-upload'\n\ntype Props = {\n disabled?: boolean\n name: string\n onChange: (value: string) => void\n ref?: React.RefObject<HTMLInputElement>\n value: string\n}\n\nconst Input: React.FC<Props> = (props) => {\n const { name, disabled, onChange, ref, value } = props\n\n return (\n <div className={`${baseClass}__input`}>\n {name}\n <input\n disabled={disabled}\n name={name}\n onChange={(e) => onChange(e.target.value)}\n ref={ref}\n type=\"number\"\n value={value}\n />\n </div>\n )\n}\n\ntype FocalPosition = {\n x: number\n y: number\n}\n\nexport type EditUploadProps = {\n fileName: string\n fileSrc: string\n imageCacheTag?: string\n initialCrop?: UploadEdits['crop']\n initialFocalPoint?: FocalPosition\n onSave?: (uploadEdits: UploadEdits) => void\n showCrop?: boolean\n showFocalPoint?: boolean\n}\n\nconst defaultCrop: UploadEdits['crop'] = {\n height: 100,\n unit: '%',\n width: 100,\n x: 0,\n y: 0,\n}\n\nexport const EditUpload: React.FC<EditUploadProps> = ({\n fileName,\n fileSrc,\n imageCacheTag,\n initialCrop,\n initialFocalPoint,\n onSave,\n showCrop,\n showFocalPoint,\n}) => {\n const { closeModal } = useModal()\n const { t } = useTranslation()\n\n const [crop, setCrop] = useState<UploadEdits['crop']>(() => ({\n ...defaultCrop,\n ...(initialCrop || {}),\n }))\n\n const defaultFocalPosition: FocalPosition = {\n x: 50,\n y: 50,\n }\n\n const [focalPosition, setFocalPosition] = useState<FocalPosition>(() => ({\n ...defaultFocalPosition,\n ...initialFocalPoint,\n }))\n\n const [checkBounds, setCheckBounds] = useState<boolean>(false)\n const [uncroppedPixelHeight, setUncroppedPixelHeight] = useState<number>(0)\n const [uncroppedPixelWidth, setUncroppedPixelWidth] = useState<number>(0)\n\n const focalWrapRef = useRef<HTMLDivElement | undefined>(undefined)\n const imageRef = useRef<HTMLImageElement | undefined>(undefined)\n const cropRef = useRef<HTMLDivElement | undefined>(undefined)\n\n const heightInputRef = useRef<HTMLInputElement | null>(null)\n const widthInputRef = useRef<HTMLInputElement | null>(null)\n\n const [imageLoaded, setImageLoaded] = useState<boolean>(false)\n\n const onImageLoad = (e) => {\n // set the default image height/width on load\n setUncroppedPixelHeight(e.currentTarget.naturalHeight)\n setUncroppedPixelWidth(e.currentTarget.naturalWidth)\n setImageLoaded(true)\n }\n\n const fineTuneCrop = ({ dimension, value }: { dimension: 'height' | 'width'; value: string }) => {\n const intValue = parseInt(value)\n\n const percentage =\n 100 * (intValue / (dimension === 'width' ? uncroppedPixelWidth : uncroppedPixelHeight))\n\n if (percentage <= 0 || percentage > 100) {\n return null\n }\n\n setCrop((prev) => ({\n ...prev,\n [dimension]: percentage,\n }))\n }\n\n const fineTuneFocalPosition = ({\n coordinate,\n value,\n }: {\n coordinate: 'x' | 'y'\n value: string\n }) => {\n const intValue = parseInt(value)\n if (intValue >= 0 && intValue <= 100) {\n setFocalPosition((prevPosition) => ({ ...prevPosition, [coordinate]: intValue }))\n }\n }\n\n const saveEdits = () => {\n if (typeof onSave === 'function') {\n onSave({\n crop: crop ? crop : undefined,\n focalPoint: focalPosition,\n heightInPixels: Number(heightInputRef?.current?.value ?? uncroppedPixelHeight),\n widthInPixels: Number(widthInputRef?.current?.value ?? uncroppedPixelWidth),\n })\n }\n closeModal(editDrawerSlug)\n }\n\n const onDragEnd = React.useCallback(({ x, y }) => {\n setFocalPosition({ x, y })\n setCheckBounds(false)\n }, [])\n\n const centerFocalPoint = () => {\n const containerRect = focalWrapRef.current.getBoundingClientRect()\n const boundsRect = showCrop\n ? cropRef.current.getBoundingClientRect()\n : imageRef.current.getBoundingClientRect()\n const xCenter =\n ((boundsRect.left - containerRect.left + boundsRect.width / 2) / containerRect.width) * 100\n const yCenter =\n ((boundsRect.top - containerRect.top + boundsRect.height / 2) / containerRect.height) * 100\n setFocalPosition({ x: xCenter, y: yCenter })\n }\n\n const fileSrcToUse = fileSrc ? appendCacheTag(fileSrc, imageCacheTag) : fileSrc\n\n return (\n <div className={baseClass}>\n <div className={`${baseClass}__header`}>\n <h2 title={`${t('general:editing')} ${fileName}`}>\n {t('general:editing')} {fileName}\n </h2>\n <div className={`${baseClass}__actions`}>\n <Button\n aria-label={t('general:cancel')}\n buttonStyle=\"secondary\"\n className={`${baseClass}__cancel`}\n onClick={() => closeModal(editDrawerSlug)}\n >\n {t('general:cancel')}\n </Button>\n <Button\n aria-label={t('general:applyChanges')}\n buttonStyle=\"primary\"\n className={`${baseClass}__save`}\n disabled={!imageLoaded}\n onClick={saveEdits}\n >\n {t('general:applyChanges')}\n </Button>\n </div>\n </div>\n <div className={`${baseClass}__toolWrap`}>\n <div className={`${baseClass}__crop`}>\n <div\n className={`${baseClass}__focal-wrapper`}\n ref={focalWrapRef}\n style={{\n aspectRatio: `${uncroppedPixelWidth / uncroppedPixelHeight}`,\n }}\n >\n {showCrop ? (\n <ReactCrop\n className={`${baseClass}__reactCrop`}\n crop={crop}\n onChange={(_, c) => setCrop(c)}\n onComplete={() => setCheckBounds(true)}\n renderSelectionAddon={() => {\n return <div className={`${baseClass}__crop-window`} ref={cropRef} />\n }}\n >\n <img\n alt={t('upload:setCropArea')}\n onLoad={onImageLoad}\n ref={imageRef}\n src={fileSrcToUse}\n />\n </ReactCrop>\n ) : (\n <img\n alt={t('upload:setFocalPoint')}\n onLoad={onImageLoad}\n ref={imageRef}\n src={fileSrcToUse}\n />\n )}\n {showFocalPoint && (\n <DraggableElement\n boundsRef={showCrop ? cropRef : imageRef}\n checkBounds={showCrop ? checkBounds : false}\n className={`${baseClass}__focalPoint`}\n containerRef={focalWrapRef}\n initialPosition={focalPosition}\n onDragEnd={onDragEnd}\n setCheckBounds={showCrop ? setCheckBounds : false}\n >\n <PlusIcon />\n </DraggableElement>\n )}\n </div>\n </div>\n {(showCrop || showFocalPoint) && (\n <div className={`${baseClass}__sidebar`}>\n {showCrop && (\n <div className={`${baseClass}__groupWrap`}>\n <div>\n <div className={`${baseClass}__titleWrap`}>\n <h3>{t('upload:crop')}</h3>\n <Button\n buttonStyle=\"ghost\"\n className={`${baseClass}__reset`}\n onClick={() =>\n setCrop({\n height: 100,\n unit: '%',\n width: 100,\n x: 0,\n y: 0,\n })\n }\n >\n {t('general:reset')}\n </Button>\n </div>\n </div>\n <span className={`${baseClass}__description`}>\n {t('upload:cropToolDescription')}\n </span>\n <div className={`${baseClass}__inputsWrap`}>\n <Input\n disabled={!imageLoaded}\n name={`${t('upload:width')} (px)`}\n onChange={(value) => fineTuneCrop({ dimension: 'width', value })}\n ref={widthInputRef}\n value={((crop.width / 100) * uncroppedPixelWidth).toFixed(0)}\n />\n <Input\n disabled={!imageLoaded}\n name={`${t('upload:height')} (px)`}\n onChange={(value) => fineTuneCrop({ dimension: 'height', value })}\n ref={heightInputRef}\n value={((crop.height / 100) * uncroppedPixelHeight).toFixed(0)}\n />\n </div>\n </div>\n )}\n\n {showFocalPoint && (\n <div className={`${baseClass}__groupWrap`}>\n <div>\n <div className={`${baseClass}__titleWrap`}>\n <h3>{t('upload:focalPoint')}</h3>\n <Button\n buttonStyle=\"ghost\"\n className={`${baseClass}__reset`}\n onClick={centerFocalPoint}\n >\n {t('general:reset')}\n </Button>\n </div>\n </div>\n <span className={`${baseClass}__description`}>\n {t('upload:focalPointDescription')}\n </span>\n <div className={`${baseClass}__inputsWrap`}>\n <Input\n name=\"X %\"\n onChange={(value) => fineTuneFocalPosition({ coordinate: 'x', value })}\n value={focalPosition.x.toFixed(0)}\n />\n <Input\n name=\"Y %\"\n onChange={(value) => fineTuneFocalPosition({ coordinate: 'y', value })}\n value={focalPosition.y.toFixed(0)}\n />\n </div>\n </div>\n )}\n </div>\n )}\n </div>\n </div>\n )\n}\n\nconst DraggableElement = ({\n boundsRef,\n checkBounds,\n children,\n className,\n containerRef,\n initialPosition = { x: 50, y: 50 },\n onDragEnd,\n setCheckBounds,\n}) => {\n const [position, setPosition] = useState({ x: initialPosition.x, y: initialPosition.y })\n const [isDragging, setIsDragging] = useState(false)\n const dragRef = useRef<HTMLButtonElement | undefined>(undefined)\n\n const getCoordinates = React.useCallback(\n (mouseXArg?: number, mouseYArg?: number, recenter?: boolean) => {\n const containerRect = containerRef.current.getBoundingClientRect()\n const boundsRect = boundsRef.current.getBoundingClientRect()\n const mouseX = mouseXArg ?? boundsRect.left\n const mouseY = mouseYArg ?? boundsRect.top\n\n const xOutOfBounds = mouseX < boundsRect.left || mouseX > boundsRect.right\n const yOutOfBounds = mouseY < boundsRect.top || mouseY > boundsRect.bottom\n\n let x = ((mouseX - containerRect.left) / containerRect.width) * 100\n let y = ((mouseY - containerRect.top) / containerRect.height) * 100\n const xCenter =\n ((boundsRect.left - containerRect.left + boundsRect.width / 2) / containerRect.width) * 100\n const yCenter =\n ((boundsRect.top - containerRect.top + boundsRect.height / 2) / containerRect.height) * 100\n if (xOutOfBounds || yOutOfBounds) {\n setIsDragging(false)\n if (mouseX < boundsRect.left) {\n x = ((boundsRect.left - containerRect.left) / containerRect.width) * 100\n } else if (mouseX > boundsRect.right) {\n x =\n ((containerRect.width - (containerRect.right - boundsRect.right)) /\n containerRect.width) *\n 100\n }\n\n if (mouseY < boundsRect.top) {\n y = ((boundsRect.top - containerRect.top) / containerRect.height) * 100\n } else if (mouseY > boundsRect.bottom) {\n y =\n ((containerRect.height - (containerRect.bottom - boundsRect.bottom)) /\n containerRect.height) *\n 100\n }\n\n if (recenter) {\n x = xOutOfBounds ? xCenter : x\n y = yOutOfBounds ? yCenter : y\n }\n }\n\n return { x, y }\n },\n [boundsRef, containerRef],\n )\n\n const handleMouseDown = (event) => {\n event.preventDefault()\n setIsDragging(true)\n }\n\n const handleMouseMove = (event) => {\n if (!isDragging) {\n return null\n }\n const { x, y } = getCoordinates(event.clientX, event.clientY)\n\n setPosition({ x, y })\n }\n\n const onDrop = () => {\n setIsDragging(false)\n onDragEnd(position)\n }\n\n React.useEffect(() => {\n if (isDragging || !dragRef.current) {\n return\n }\n if (checkBounds) {\n const { height, left, top, width } = dragRef.current.getBoundingClientRect()\n const { x, y } = getCoordinates(left + width / 2, top + height / 2, true)\n onDragEnd({ x, y })\n setPosition({ x, y })\n setCheckBounds(false)\n return\n }\n }, [getCoordinates, isDragging, checkBounds, setCheckBounds, position.x, position.y, onDragEnd])\n\n React.useEffect(() => {\n setPosition({ x: initialPosition.x, y: initialPosition.y })\n }, [initialPosition.x, initialPosition.y])\n\n return (\n <div\n className={[\n `${baseClass}__draggable-container`,\n isDragging && `${baseClass}__draggable-container--dragging`,\n ]\n .filter(Boolean)\n .join(' ')}\n onMouseMove={handleMouseMove}\n >\n <button\n className={[`${baseClass}__draggable`, className].filter(Boolean).join(' ')}\n onMouseDown={handleMouseDown}\n onMouseUp={onDrop}\n ref={dragRef}\n style={{ left: `${position.x}%`, top: `${position.y}%` }}\n type=\"button\"\n >\n {children}\n </button>\n <div />\n </div>\n )\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"index.js","names":["useModal","React","useRef","useState","ReactCrop","editDrawerSlug","NumberInput","PlusIcon","ResetIcon","useTranslation","appendCacheTag","Button","DialogFooter","DialogHeader","DialogModal","baseClass","defaultCrop","height","unit","width","x","y","EditUpload","fileName","fileSrc","imageCacheTag","initialCrop","initialFocalPoint","onSave","showCrop","showFocalPoint","closeModal","t","crop","setCrop","defaultFocalPosition","focalPosition","setFocalPosition","checkBounds","setCheckBounds","uncroppedPixelHeight","setUncroppedPixelHeight","uncroppedPixelWidth","setUncroppedPixelWidth","focalWrapRef","undefined","imageRef","cropRef","imageLoaded","setImageLoaded","onImageLoad","e","currentTarget","naturalHeight","naturalWidth","fineTuneCrop","dimension","value","intValue","parseInt","Number","isNaN","percentage","prev","fineTuneFocalPosition","coordinate","prevPosition","saveEdits","focalPoint","heightInPixels","Math","round","widthInPixels","onDragEnd","useCallback","centerFocalPoint","fileSrcToUse","cropWidthPx","toFixed","cropHeightPx","_jsxs","className","closeOnBlur","size","slug","_jsx","showClose","title","ref","style","aspectRatio","onChange","_","c","onComplete","renderSelectionAddon","alt","onLoad","src","DraggableElement","boundsRef","containerRef","initialPosition","onClick","type","ariaLabel","target","path","prefix","readOnly","max","min","suffix","buttonStyle","disabled","children","position","setPosition","isDragging","setIsDragging","dragRef","positionRef","current","getCoordinates","mouseX","mouseY","containerRect","getBoundingClientRect","left","top","handleMouseDown","event","preventDefault","useEffect","handleMove","clientX","clientY","handleUp","document","addEventListener","removeEventListener","filter","Boolean","join","onMouseDown"],"sources":["../../../src/elements/EditUpload/index.tsx"],"sourcesContent":["'use client'\n\nimport type { UploadEdits } from 'payload'\n\nimport { useModal } from '@faceless-ui/modal'\nimport React, { useRef, useState } from 'react'\nimport ReactCrop from 'react-image-crop'\n\nimport { editDrawerSlug } from '../../elements/Upload/index.js'\nimport { NumberInput } from '../../fields/Number/index.js'\nimport { PlusIcon } from '../../icons/Plus/index.js'\nimport { ResetIcon } from '../../icons/Reset/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { appendCacheTag } from '../../utilities/appendCacheTag.js'\nimport { Button } from '../Button/index.js'\nimport { DialogFooter, DialogHeader, DialogModal } from '../Dialog/index.js'\nimport './index.css'\nimport './library.css'\n\nconst baseClass = 'edit-upload'\n\ntype FocalPosition = {\n x: number\n y: number\n}\n\nexport type EditUploadProps = {\n fileName: string\n fileSrc: string\n imageCacheTag?: false | string\n initialCrop?: UploadEdits['crop']\n initialFocalPoint?: FocalPosition\n onSave?: (uploadEdits: UploadEdits) => void\n showCrop?: boolean\n showFocalPoint?: boolean\n}\n\nconst defaultCrop: UploadEdits['crop'] = {\n height: 100,\n unit: '%',\n width: 100,\n x: 0,\n y: 0,\n}\n\nexport const EditUpload: React.FC<EditUploadProps> = ({\n fileName,\n fileSrc,\n imageCacheTag,\n initialCrop,\n initialFocalPoint,\n onSave,\n showCrop,\n showFocalPoint,\n}) => {\n const { closeModal } = useModal()\n const { t } = useTranslation()\n\n const [crop, setCrop] = useState<UploadEdits['crop']>(() => ({\n ...defaultCrop,\n ...(initialCrop || {}),\n }))\n\n const defaultFocalPosition: FocalPosition = { x: 50, y: 50 }\n\n const [focalPosition, setFocalPosition] = useState<FocalPosition>(() => ({\n ...defaultFocalPosition,\n ...initialFocalPoint,\n }))\n\n const [checkBounds, setCheckBounds] = useState<boolean>(false)\n const [uncroppedPixelHeight, setUncroppedPixelHeight] = useState<number>(0)\n const [uncroppedPixelWidth, setUncroppedPixelWidth] = useState<number>(0)\n\n const focalWrapRef = useRef<HTMLDivElement | undefined>(undefined)\n const imageRef = useRef<HTMLImageElement | undefined>(undefined)\n const cropRef = useRef<HTMLDivElement | undefined>(undefined)\n\n const [imageLoaded, setImageLoaded] = useState<boolean>(false)\n\n const onImageLoad = (e) => {\n setUncroppedPixelHeight(e.currentTarget.naturalHeight)\n setUncroppedPixelWidth(e.currentTarget.naturalWidth)\n setImageLoaded(true)\n }\n\n const fineTuneCrop = ({ dimension, value }: { dimension: 'height' | 'width'; value: string }) => {\n const intValue = parseInt(value)\n if (Number.isNaN(intValue)) {\n return null\n }\n const percentage =\n 100 * (intValue / (dimension === 'width' ? uncroppedPixelWidth : uncroppedPixelHeight))\n if (percentage <= 0 || percentage > 100) {\n return null\n }\n setCrop((prev) => ({ ...prev, [dimension]: percentage }))\n }\n\n const fineTuneFocalPosition = ({\n coordinate,\n value,\n }: {\n coordinate: 'x' | 'y'\n value: string\n }) => {\n const intValue = parseInt(value)\n if (intValue >= 0 && intValue <= 100) {\n setFocalPosition((prevPosition) => ({ ...prevPosition, [coordinate]: intValue }))\n }\n }\n\n const saveEdits = () => {\n if (typeof onSave === 'function') {\n onSave({\n crop: crop ? crop : undefined,\n focalPoint: focalPosition,\n heightInPixels: Math.round((crop.height / 100) * uncroppedPixelHeight),\n widthInPixels: Math.round((crop.width / 100) * uncroppedPixelWidth),\n })\n }\n closeModal(editDrawerSlug)\n }\n\n const onDragEnd = React.useCallback(({ x, y }) => {\n setFocalPosition({ x, y })\n setCheckBounds(false)\n }, [])\n\n const centerFocalPoint = () => {\n setFocalPosition({ x: 50, y: 50 })\n }\n\n const fileSrcToUse = fileSrc ? appendCacheTag(fileSrc, imageCacheTag) : undefined\n\n const cropWidthPx = ((crop.width / 100) * uncroppedPixelWidth).toFixed(0)\n const cropHeightPx = ((crop.height / 100) * uncroppedPixelHeight).toFixed(0)\n\n return (\n <DialogModal\n className={`${baseClass}__dialog`}\n closeOnBlur={false}\n size=\"large\"\n slug={editDrawerSlug}\n >\n <DialogHeader showClose title={`${t('general:editing')} ${fileName}`} />\n <div className={`${baseClass}__body`}>\n <div className={`${baseClass}__content`}>\n {/* Canvas area */}\n <div className={`${baseClass}__crop`}>\n <div\n className={`${baseClass}__focal-wrapper`}\n ref={focalWrapRef}\n style={{ aspectRatio: `${uncroppedPixelWidth / uncroppedPixelHeight}` }}\n >\n {showCrop ? (\n <ReactCrop\n className={`${baseClass}__reactCrop`}\n crop={crop}\n onChange={(_, c) => setCrop(c)}\n onComplete={() => setCheckBounds(true)}\n renderSelectionAddon={() => (\n <div className={`${baseClass}__crop-window`} ref={cropRef} />\n )}\n >\n <img\n alt={t('upload:setCropArea')}\n onLoad={onImageLoad}\n ref={imageRef}\n src={fileSrcToUse}\n />\n </ReactCrop>\n ) : (\n <img\n alt={t('upload:setFocalPoint')}\n onLoad={onImageLoad}\n ref={imageRef}\n src={fileSrcToUse}\n />\n )}\n {showFocalPoint && (\n <DraggableElement\n boundsRef={showCrop ? cropRef : imageRef}\n checkBounds={showCrop ? checkBounds : false}\n className={`${baseClass}__focalPoint`}\n containerRef={focalWrapRef}\n initialPosition={focalPosition}\n onDragEnd={onDragEnd}\n setCheckBounds={showCrop ? setCheckBounds : false}\n >\n <PlusIcon />\n </DraggableElement>\n )}\n </div>\n </div>\n\n {/* Sidebar */}\n {(showCrop || showFocalPoint) && (\n <div className={`${baseClass}__sidebar`}>\n {showCrop && (\n <div className={`${baseClass}__section`}>\n <div className={`${baseClass}__section-header`}>\n <span className={`${baseClass}__section-title`}>{t('upload:crop')}</span>\n <button\n aria-label={t('general:reset')}\n className={`${baseClass}__reset`}\n onClick={() => setCrop({ height: 100, unit: '%', width: 100, x: 0, y: 0 })}\n type=\"button\"\n >\n <ResetIcon />\n </button>\n </div>\n <div className={`${baseClass}__fieldset`}>\n <NumberInput\n ariaLabel={t('upload:width')}\n onChange={(e) => fineTuneCrop({ dimension: 'width', value: e.target.value })}\n path=\"cropWidth\"\n prefix=\"W\"\n readOnly={!imageLoaded}\n value={Number(cropWidthPx)}\n />\n <NumberInput\n ariaLabel={t('upload:height')}\n onChange={(e) => fineTuneCrop({ dimension: 'height', value: e.target.value })}\n path=\"cropHeight\"\n prefix=\"H\"\n readOnly={!imageLoaded}\n value={Number(cropHeightPx)}\n />\n </div>\n </div>\n )}\n\n {showFocalPoint && (\n <div className={`${baseClass}__section`}>\n <div className={`${baseClass}__section-header`}>\n <span className={`${baseClass}__section-title`}>{t('upload:focalPoint')}</span>\n <button\n aria-label={t('general:reset')}\n className={`${baseClass}__reset`}\n onClick={centerFocalPoint}\n type=\"button\"\n >\n <ResetIcon />\n </button>\n </div>\n <div className={`${baseClass}__fieldset`}>\n <NumberInput\n ariaLabel={`${t('upload:focalPoint')} X`}\n max={100}\n min={0}\n onChange={(e) =>\n fineTuneFocalPosition({ coordinate: 'x', value: e.target.value })\n }\n path=\"focalX\"\n prefix=\"X\"\n suffix=\"%\"\n value={Math.round(focalPosition.x)}\n />\n <NumberInput\n ariaLabel={`${t('upload:focalPoint')} Y`}\n max={100}\n min={0}\n onChange={(e) =>\n fineTuneFocalPosition({ coordinate: 'y', value: e.target.value })\n }\n path=\"focalY\"\n prefix=\"Y\"\n suffix=\"%\"\n value={Math.round(focalPosition.y)}\n />\n </div>\n </div>\n )}\n </div>\n )}\n </div>\n </div>\n <DialogFooter>\n <Button\n aria-label={t('general:cancel')}\n buttonStyle=\"secondary\"\n onClick={() => closeModal(editDrawerSlug)}\n >\n {t('general:cancel')}\n </Button>\n <Button\n aria-label={t('general:applyChanges')}\n buttonStyle=\"primary\"\n disabled={!imageLoaded}\n onClick={saveEdits}\n >\n {t('general:applyChanges')}\n </Button>\n </DialogFooter>\n </DialogModal>\n )\n}\n\nconst DraggableElement = ({\n boundsRef,\n checkBounds,\n children,\n className,\n containerRef,\n initialPosition = { x: 50, y: 50 },\n onDragEnd,\n setCheckBounds,\n}) => {\n const [position, setPosition] = useState({ x: initialPosition.x, y: initialPosition.y })\n const [isDragging, setIsDragging] = useState(false)\n const dragRef = useRef<HTMLButtonElement | undefined>(undefined)\n // Keep a ref to the latest position so global mouseup handler can read it without a stale closure\n const positionRef = useRef(position)\n positionRef.current = position\n\n const getCoordinates = React.useCallback(\n (mouseX: number, mouseY: number) => {\n const containerRect = containerRef.current.getBoundingClientRect()\n const x = ((mouseX - containerRect.left) / containerRect.width) * 100\n const y = ((mouseY - containerRect.top) / containerRect.height) * 100\n return { x: Math.max(0, Math.min(100, x)), y: Math.max(0, Math.min(100, y)) }\n },\n [containerRef],\n )\n\n const handleMouseDown = (event) => {\n event.preventDefault()\n setIsDragging(true)\n }\n\n // Attach global listeners while dragging — this ensures events fire even when\n // the cursor leaves the focal wrapper area during a fast drag\n React.useEffect(() => {\n if (!isDragging) {\n return\n }\n\n const handleMove = (e: MouseEvent) => {\n if (!containerRef.current) {\n return\n }\n const { x, y } = getCoordinates(e.clientX, e.clientY)\n setPosition({ x, y })\n }\n\n const handleUp = () => {\n setIsDragging(false)\n onDragEnd(positionRef.current)\n }\n\n document.addEventListener('mousemove', handleMove)\n document.addEventListener('mouseup', handleUp)\n\n return () => {\n document.removeEventListener('mousemove', handleMove)\n document.removeEventListener('mouseup', handleUp)\n }\n }, [isDragging, getCoordinates, onDragEnd, containerRef])\n\n // Re-check position when crop changes (the crop window may have moved)\n React.useEffect(() => {\n if (isDragging || !checkBounds || !dragRef.current) {\n return\n }\n const { height, left, top, width } = dragRef.current.getBoundingClientRect()\n const { x, y } = getCoordinates(left + width / 2, top + height / 2)\n onDragEnd({ x, y })\n setPosition({ x, y })\n setCheckBounds(false)\n }, [getCoordinates, isDragging, checkBounds, setCheckBounds, onDragEnd])\n\n React.useEffect(() => {\n setPosition({ x: initialPosition.x, y: initialPosition.y })\n }, [initialPosition.x, initialPosition.y])\n\n return (\n <div className={`${baseClass}__draggable-container`}>\n <button\n className={[`${baseClass}__draggable`, className].filter(Boolean).join(' ')}\n onMouseDown={handleMouseDown}\n ref={dragRef}\n style={{ left: `${position.x}%`, top: `${position.y}%` }}\n type=\"button\"\n >\n {children}\n </button>\n </div>\n )\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,8 +1,10 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
/* CSS manually copied into the payload-default layer from the react-image-crop library */
|
|
2
|
+
/* see: /node_modules/react-image-crop/dist/ReactCrop.css */
|
|
3
3
|
|
|
4
4
|
@layer payload-default {
|
|
5
5
|
.ReactCrop {
|
|
6
|
+
/* Thickness of the corner brackets and edge grab handles. */
|
|
7
|
+
--crop-handle-thickness: 5px;
|
|
6
8
|
position: relative;
|
|
7
9
|
display: inline-block;
|
|
8
10
|
cursor: crosshair;
|
|
@@ -42,68 +44,53 @@
|
|
|
42
44
|
}
|
|
43
45
|
|
|
44
46
|
.ReactCrop__crop-selection {
|
|
47
|
+
--crop-ants-speed: 0s;
|
|
45
48
|
position: absolute;
|
|
46
49
|
top: 0;
|
|
47
50
|
left: 0;
|
|
48
51
|
transform: translateZ(0);
|
|
49
52
|
cursor: move;
|
|
50
53
|
box-shadow: 0 0 0 9999em rgba(0, 0, 0, 0.5);
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
.ReactCrop--disabled .ReactCrop__crop-selection {
|
|
54
|
-
cursor: inherit;
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
.ReactCrop--circular-crop .ReactCrop__crop-selection {
|
|
58
|
-
border-radius: 50%;
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
.ReactCrop--no-animate .ReactCrop__crop-selection {
|
|
62
|
-
outline: 1px dashed white;
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
.ReactCrop__crop-selection:not(.ReactCrop--no-animate .ReactCrop__crop-selection) {
|
|
66
|
-
animation: marching-ants 1s;
|
|
54
|
+
animation: marching-ants var(--crop-ants-speed) linear infinite;
|
|
67
55
|
background-image:
|
|
68
|
-
linear-gradient(to right,
|
|
69
|
-
linear-gradient(to
|
|
56
|
+
linear-gradient(to right, transparent 50%, var(--color-border-selected) 50%),
|
|
57
|
+
linear-gradient(to right, transparent 50%, var(--color-border-selected) 50%),
|
|
58
|
+
linear-gradient(to bottom, transparent 50%, var(--color-border-selected) 50%),
|
|
59
|
+
linear-gradient(to bottom, transparent 50%, var(--color-border-selected) 50%);
|
|
70
60
|
background-size:
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
61
|
+
var(--spacer-2) var(--stroke-width-small),
|
|
62
|
+
var(--spacer-2) var(--stroke-width-small),
|
|
63
|
+
var(--stroke-width-small) var(--spacer-2),
|
|
64
|
+
var(--stroke-width-small) var(--spacer-2);
|
|
75
65
|
background-position:
|
|
76
66
|
0 0,
|
|
77
67
|
0 100%,
|
|
78
68
|
0 0,
|
|
79
69
|
100% 0;
|
|
80
70
|
background-repeat: repeat-x, repeat-x, repeat-y, repeat-y;
|
|
81
|
-
color: #fff;
|
|
82
|
-
animation-play-state: running;
|
|
83
|
-
animation-timing-function: linear;
|
|
84
|
-
animation-iteration-count: infinite;
|
|
85
71
|
}
|
|
86
72
|
|
|
87
73
|
@keyframes marching-ants {
|
|
88
|
-
0% {
|
|
89
|
-
background-position:
|
|
90
|
-
0 0,
|
|
91
|
-
0 100%,
|
|
92
|
-
0 0,
|
|
93
|
-
100% 0;
|
|
94
|
-
}
|
|
95
74
|
to {
|
|
96
75
|
background-position:
|
|
97
|
-
|
|
98
|
-
-
|
|
99
|
-
0 -
|
|
100
|
-
100%
|
|
76
|
+
10px 0,
|
|
77
|
+
-10px 100%,
|
|
78
|
+
0 -10px,
|
|
79
|
+
100% 10px;
|
|
101
80
|
}
|
|
102
81
|
}
|
|
103
82
|
|
|
83
|
+
.ReactCrop--disabled .ReactCrop__crop-selection {
|
|
84
|
+
cursor: inherit;
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
.ReactCrop--circular-crop .ReactCrop__crop-selection {
|
|
88
|
+
border-radius: 50%;
|
|
89
|
+
}
|
|
90
|
+
|
|
104
91
|
.ReactCrop__crop-selection:focus {
|
|
105
92
|
outline: none;
|
|
106
|
-
border-color:
|
|
93
|
+
border-color: var(--color-border-selected);
|
|
107
94
|
border-style: solid;
|
|
108
95
|
}
|
|
109
96
|
|
|
@@ -157,16 +144,19 @@
|
|
|
157
144
|
position: absolute;
|
|
158
145
|
content: '';
|
|
159
146
|
display: block;
|
|
160
|
-
|
|
161
|
-
height: 10px;
|
|
162
|
-
background-color: rgba(0, 0, 0, 0.2);
|
|
163
|
-
border: var(--stroke-width-small) solid rgba(255, 255, 255, 0.7);
|
|
147
|
+
background-color: var(--color-border-selected);
|
|
164
148
|
outline: 1px solid transparent;
|
|
165
149
|
}
|
|
166
150
|
|
|
167
151
|
.ReactCrop__drag-handle:focus:after {
|
|
168
|
-
border-color:
|
|
169
|
-
|
|
152
|
+
border-color: var(--color-border-selected-strong);
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
.ReactCrop .ord-n:focus:after,
|
|
156
|
+
.ReactCrop .ord-e:focus:after,
|
|
157
|
+
.ReactCrop .ord-s:focus:after,
|
|
158
|
+
.ReactCrop .ord-w:focus:after {
|
|
159
|
+
background-color: var(--color-border-selected-strong);
|
|
170
160
|
}
|
|
171
161
|
|
|
172
162
|
.ReactCrop .ord-nw {
|
|
@@ -269,6 +259,78 @@
|
|
|
269
259
|
left: 0;
|
|
270
260
|
}
|
|
271
261
|
|
|
262
|
+
/* L-shaped corner handles (matches Figma "Crop handle") */
|
|
263
|
+
.ReactCrop .ord-nw:after,
|
|
264
|
+
.ReactCrop .ord-ne:after,
|
|
265
|
+
.ReactCrop .ord-se:after,
|
|
266
|
+
.ReactCrop .ord-sw:after {
|
|
267
|
+
width: 12px;
|
|
268
|
+
height: 12px;
|
|
269
|
+
background-color: transparent;
|
|
270
|
+
border: 0;
|
|
271
|
+
}
|
|
272
|
+
|
|
273
|
+
.ReactCrop .ord-nw:after {
|
|
274
|
+
top: 5px;
|
|
275
|
+
left: 5px;
|
|
276
|
+
border-top: var(--crop-handle-thickness) solid var(--color-border-selected);
|
|
277
|
+
border-left: var(--crop-handle-thickness) solid var(--color-border-selected);
|
|
278
|
+
}
|
|
279
|
+
|
|
280
|
+
.ReactCrop .ord-ne:after {
|
|
281
|
+
top: 5px;
|
|
282
|
+
right: 5px;
|
|
283
|
+
border-top: var(--crop-handle-thickness) solid var(--color-border-selected);
|
|
284
|
+
border-right: var(--crop-handle-thickness) solid var(--color-border-selected);
|
|
285
|
+
}
|
|
286
|
+
|
|
287
|
+
.ReactCrop .ord-se:after {
|
|
288
|
+
bottom: 5px;
|
|
289
|
+
right: 5px;
|
|
290
|
+
border-bottom: var(--crop-handle-thickness) solid var(--color-border-selected);
|
|
291
|
+
border-right: var(--crop-handle-thickness) solid var(--color-border-selected);
|
|
292
|
+
}
|
|
293
|
+
|
|
294
|
+
.ReactCrop .ord-sw:after {
|
|
295
|
+
bottom: 5px;
|
|
296
|
+
left: 5px;
|
|
297
|
+
border-bottom: var(--crop-handle-thickness) solid var(--color-border-selected);
|
|
298
|
+
border-left: var(--crop-handle-thickness) solid var(--color-border-selected);
|
|
299
|
+
}
|
|
300
|
+
|
|
301
|
+
/* Edge midpoint handles (slim bars) */
|
|
302
|
+
.ReactCrop .ord-n:after,
|
|
303
|
+
.ReactCrop .ord-s:after {
|
|
304
|
+
width: 12px;
|
|
305
|
+
height: var(--crop-handle-thickness);
|
|
306
|
+
left: -1px;
|
|
307
|
+
border-radius: 1px;
|
|
308
|
+
}
|
|
309
|
+
|
|
310
|
+
.ReactCrop .ord-n:after {
|
|
311
|
+
top: 5px;
|
|
312
|
+
}
|
|
313
|
+
|
|
314
|
+
.ReactCrop .ord-s:after {
|
|
315
|
+
bottom: 5px;
|
|
316
|
+
}
|
|
317
|
+
|
|
318
|
+
.ReactCrop .ord-e:after,
|
|
319
|
+
.ReactCrop .ord-w:after {
|
|
320
|
+
width: var(--crop-handle-thickness);
|
|
321
|
+
height: 12px;
|
|
322
|
+
top: -1px;
|
|
323
|
+
border-radius: 1px;
|
|
324
|
+
}
|
|
325
|
+
|
|
326
|
+
.ReactCrop .ord-e:after {
|
|
327
|
+
right: 5px;
|
|
328
|
+
}
|
|
329
|
+
|
|
330
|
+
.ReactCrop .ord-w:after {
|
|
331
|
+
left: 5px;
|
|
332
|
+
}
|
|
333
|
+
|
|
272
334
|
.ReactCrop__disabled .ReactCrop__drag-handle {
|
|
273
335
|
cursor: inherit;
|
|
274
336
|
}
|
|
@@ -11,7 +11,7 @@ export type DraggableFileDetailsProps = {
|
|
|
11
11
|
hasImageSizes?: boolean;
|
|
12
12
|
hasMany: boolean;
|
|
13
13
|
hideRemoveFile?: boolean;
|
|
14
|
-
imageCacheTag?: string;
|
|
14
|
+
imageCacheTag?: false | string;
|
|
15
15
|
isSortable?: boolean;
|
|
16
16
|
removeItem?: (index: number) => void;
|
|
17
17
|
rowIndex: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/elements/FileDetails/DraggableFileDetails/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAA;AAIzB,OAAO,aAAa,CAAA;AAIpB,OAAO,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,yBAAyB,EAAE,MAAM,SAAS,CAAA;AAOzE,MAAM,MAAM,yBAAyB,GAAG;IACtC,cAAc,EAAE,MAAM,CAAA;IACtB,mBAAmB,CAAC,EAAE,KAAK,CAAC,SAAS,EAAE,CAAA;IACvC,GAAG,EAAE;QACH,KAAK,CAAC,EAAE,SAAS,CAAA;KAClB,GAAG,IAAI,CAAA;IACR,iBAAiB,CAAC,EAAE,OAAO,CAAA;IAC3B,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,OAAO,EAAE,OAAO,CAAA;IAChB,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,aAAa,CAAC,EAAE,MAAM,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/elements/FileDetails/DraggableFileDetails/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAA;AAIzB,OAAO,aAAa,CAAA;AAIpB,OAAO,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,yBAAyB,EAAE,MAAM,SAAS,CAAA;AAOzE,MAAM,MAAM,yBAAyB,GAAG;IACtC,cAAc,EAAE,MAAM,CAAA;IACtB,mBAAmB,CAAC,EAAE,KAAK,CAAC,SAAS,EAAE,CAAA;IACvC,GAAG,EAAE;QACH,KAAK,CAAC,EAAE,SAAS,CAAA;KAClB,GAAG,IAAI,CAAA;IACR,iBAAiB,CAAC,EAAE,OAAO,CAAA;IAC3B,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,OAAO,EAAE,OAAO,CAAA;IAChB,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,aAAa,CAAC,EAAE,KAAK,GAAG,MAAM,CAAA;IAC9B,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;IACpC,QAAQ,EAAE,MAAM,CAAA;IAChB,YAAY,EAAE,yBAAyB,CAAC,QAAQ,CAAC,CAAA;CAClD,CAAA;AAED,eAAO,MAAM,oBAAoB,EAAE,KAAK,CAAC,EAAE,CAAC,yBAAyB,CA6EpE,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["c","_c","React","Button","Thumbnail","baseClass","DraggableSortableItem","AlignJustifiedIcon","EditIcon","useDocumentDrawer","DraggableFileDetails","props","$","collectionSlug","doc","hideRemoveFile","imageCacheTag","isSortable","removeItem","rowIndex","uploadConfig","id","filename","thumbnailURL","url","t0","DocumentDrawer","DocumentDrawerToggler","t1","draggableSortableItemProps","_jsxs","className","filter","Boolean","join","ref","setNodeRef","style","transform","transition","zIndex","isDragging","undefined","children","_jsx","attributes","listeners","fileSrc","buttonStyle","icon","onClick","round","t2"],"sources":["../../../../src/elements/FileDetails/DraggableFileDetails/index.tsx"],"sourcesContent":["'use client'\nimport React from 'react'\n\nimport { Button } from '../../Button/index.js'\nimport { Thumbnail } from '../../Thumbnail/index.js'\nimport './index.css'\n\nconst baseClass = 'file-details-draggable'\n\nimport type { Data, FileSizes, SanitizedCollectionConfig } from 'payload'\n\nimport { DraggableSortableItem } from '../../../elements/DraggableSortable/DraggableSortableItem/index.js'\nimport { AlignJustifiedIcon } from '../../../icons/AlignJustified/index.js'\nimport { EditIcon } from '../../../icons/Edit/index.js'\nimport { useDocumentDrawer } from '../../DocumentDrawer/index.js'\n\nexport type DraggableFileDetailsProps = {\n collectionSlug: string\n customUploadActions?: React.ReactNode[]\n doc: {\n sizes?: FileSizes\n } & Data\n enableAdjustments?: boolean\n hasImageSizes?: boolean\n hasMany: boolean\n hideRemoveFile?: boolean\n imageCacheTag?: string\n isSortable?: boolean\n removeItem?: (index: number) => void\n rowIndex: number\n uploadConfig: SanitizedCollectionConfig['upload']\n}\n\nexport const DraggableFileDetails: React.FC<DraggableFileDetailsProps> = (props) => {\n const {\n collectionSlug,\n doc,\n hideRemoveFile,\n imageCacheTag,\n isSortable,\n removeItem,\n rowIndex,\n uploadConfig,\n } = props\n\n const { id, filename, thumbnailURL, url } = doc\n\n const [DocumentDrawer, DocumentDrawerToggler] = useDocumentDrawer({\n id,\n collectionSlug,\n })\n\n return (\n <DraggableSortableItem id={id} key={id}>\n {(draggableSortableItemProps) => (\n <div\n className={[\n baseClass,\n draggableSortableItemProps && isSortable && `${baseClass}--has-drag-handle`,\n ]\n .filter(Boolean)\n .join(' ')}\n key={id}\n ref={draggableSortableItemProps.setNodeRef}\n style={{\n transform: draggableSortableItemProps.transform,\n transition: draggableSortableItemProps.transition,\n zIndex: draggableSortableItemProps.isDragging ? 1 : undefined,\n }}\n >\n <div className={`${baseClass}--drag-wrapper`}>\n {isSortable && draggableSortableItemProps && (\n <div\n className={`${baseClass}__drag`}\n {...draggableSortableItemProps.attributes}\n {...draggableSortableItemProps.listeners}\n >\n <AlignJustifiedIcon />\n </div>\n )}\n <Thumbnail\n className={`${baseClass}__thumbnail`}\n collectionSlug={collectionSlug}\n doc={doc}\n fileSrc={thumbnailURL || url}\n imageCacheTag={imageCacheTag}\n uploadConfig={uploadConfig}\n />\n </div>\n <div className={`${baseClass}__main-detail`}>{filename}</div>\n\n <div className={`${baseClass}__actions`}>\n <DocumentDrawer />\n <DocumentDrawerToggler>\n <EditIcon />\n </DocumentDrawerToggler>\n {!hideRemoveFile && removeItem && (\n <Button\n buttonStyle=\"ghost\"\n className={`${baseClass}__remove`}\n icon=\"x\"\n onClick={() => removeItem(rowIndex)}\n round\n />\n )}\n </div>\n </div>\n )}\n </DraggableSortableItem>\n )\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"index.js","names":["c","_c","React","Button","Thumbnail","baseClass","DraggableSortableItem","AlignJustifiedIcon","EditIcon","useDocumentDrawer","DraggableFileDetails","props","$","collectionSlug","doc","hideRemoveFile","imageCacheTag","isSortable","removeItem","rowIndex","uploadConfig","id","filename","thumbnailURL","url","t0","DocumentDrawer","DocumentDrawerToggler","t1","draggableSortableItemProps","_jsxs","className","filter","Boolean","join","ref","setNodeRef","style","transform","transition","zIndex","isDragging","undefined","children","_jsx","attributes","listeners","fileSrc","buttonStyle","icon","onClick","round","t2"],"sources":["../../../../src/elements/FileDetails/DraggableFileDetails/index.tsx"],"sourcesContent":["'use client'\nimport React from 'react'\n\nimport { Button } from '../../Button/index.js'\nimport { Thumbnail } from '../../Thumbnail/index.js'\nimport './index.css'\n\nconst baseClass = 'file-details-draggable'\n\nimport type { Data, FileSizes, SanitizedCollectionConfig } from 'payload'\n\nimport { DraggableSortableItem } from '../../../elements/DraggableSortable/DraggableSortableItem/index.js'\nimport { AlignJustifiedIcon } from '../../../icons/AlignJustified/index.js'\nimport { EditIcon } from '../../../icons/Edit/index.js'\nimport { useDocumentDrawer } from '../../DocumentDrawer/index.js'\n\nexport type DraggableFileDetailsProps = {\n collectionSlug: string\n customUploadActions?: React.ReactNode[]\n doc: {\n sizes?: FileSizes\n } & Data\n enableAdjustments?: boolean\n hasImageSizes?: boolean\n hasMany: boolean\n hideRemoveFile?: boolean\n imageCacheTag?: false | string\n isSortable?: boolean\n removeItem?: (index: number) => void\n rowIndex: number\n uploadConfig: SanitizedCollectionConfig['upload']\n}\n\nexport const DraggableFileDetails: React.FC<DraggableFileDetailsProps> = (props) => {\n const {\n collectionSlug,\n doc,\n hideRemoveFile,\n imageCacheTag,\n isSortable,\n removeItem,\n rowIndex,\n uploadConfig,\n } = props\n\n const { id, filename, thumbnailURL, url } = doc\n\n const [DocumentDrawer, DocumentDrawerToggler] = useDocumentDrawer({\n id,\n collectionSlug,\n })\n\n return (\n <DraggableSortableItem id={id} key={id}>\n {(draggableSortableItemProps) => (\n <div\n className={[\n baseClass,\n draggableSortableItemProps && isSortable && `${baseClass}--has-drag-handle`,\n ]\n .filter(Boolean)\n .join(' ')}\n key={id}\n ref={draggableSortableItemProps.setNodeRef}\n style={{\n transform: draggableSortableItemProps.transform,\n transition: draggableSortableItemProps.transition,\n zIndex: draggableSortableItemProps.isDragging ? 1 : undefined,\n }}\n >\n <div className={`${baseClass}--drag-wrapper`}>\n {isSortable && draggableSortableItemProps && (\n <div\n className={`${baseClass}__drag`}\n {...draggableSortableItemProps.attributes}\n {...draggableSortableItemProps.listeners}\n >\n <AlignJustifiedIcon />\n </div>\n )}\n <Thumbnail\n className={`${baseClass}__thumbnail`}\n collectionSlug={collectionSlug}\n doc={doc}\n fileSrc={thumbnailURL || url}\n imageCacheTag={imageCacheTag}\n uploadConfig={uploadConfig}\n />\n </div>\n <div className={`${baseClass}__main-detail`}>{filename}</div>\n\n <div className={`${baseClass}__actions`}>\n <DocumentDrawer />\n <DocumentDrawerToggler>\n <EditIcon />\n </DocumentDrawerToggler>\n {!hideRemoveFile && removeItem && (\n <Button\n buttonStyle=\"ghost\"\n className={`${baseClass}__remove`}\n icon=\"x\"\n onClick={() => removeItem(rowIndex)}\n round\n />\n )}\n </div>\n </div>\n )}\n </DraggableSortableItem>\n )\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
@layer payload-default {
|
|
2
|
+
.file-meta__url {
|
|
3
|
+
display: flex;
|
|
4
|
+
gap: var(--spacer-2);
|
|
5
|
+
}
|
|
6
|
+
|
|
7
|
+
.file-meta__url a {
|
|
8
|
+
font-weight: 600;
|
|
9
|
+
text-decoration: none;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
.file-meta__url a:hover,
|
|
13
|
+
.file-meta__url a:focus-visible {
|
|
14
|
+
text-decoration: underline;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
.file-meta__size-type,
|
|
18
|
+
.file-meta__url a {
|
|
19
|
+
overflow: hidden;
|
|
20
|
+
text-overflow: ellipsis;
|
|
21
|
+
white-space: nowrap;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
.file-meta__edit {
|
|
25
|
+
position: relative;
|
|
26
|
+
}
|
|
27
|
+
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/elements/FileDetails/FileMeta/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,MAAM,MAAM,aAAa,GAAG;IAC1B,QAAQ,EAAE,MAAM,CAAA;IAChB,QAAQ,EAAE,MAAM,CAAA;IAChB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,QAAQ,EAAE,MAAM,CAAA;IAChB,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,GAAG,EAAE,MAAM,CAAA;IACX,KAAK,CAAC,EAAE,MAAM,CAAA;CACf,CAAA;AAGD,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/elements/FileDetails/FileMeta/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,MAAM,MAAM,aAAa,GAAG;IAC1B,QAAQ,EAAE,MAAM,CAAA;IAChB,QAAQ,EAAE,MAAM,CAAA;IAChB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,QAAQ,EAAE,MAAM,CAAA;IAChB,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,GAAG,EAAE,MAAM,CAAA;IACX,KAAK,CAAC,EAAE,MAAM,CAAA;CACf,CAAA;AAGD,OAAO,aAAa,CAAA;AAIpB,eAAO,MAAM,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC,aAAa,CA4B5C,CAAA"}
|
|
@@ -4,7 +4,7 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
|
4
4
|
import { formatFilesize } from 'payload/shared';
|
|
5
5
|
import React from 'react';
|
|
6
6
|
import { CopyToClipboard } from '../../CopyToClipboard/index.js';
|
|
7
|
-
import './index.
|
|
7
|
+
import './index.css';
|
|
8
8
|
const baseClass = 'file-meta';
|
|
9
9
|
export const FileMeta = props => {
|
|
10
10
|
const {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["formatFilesize","React","CopyToClipboard","baseClass","FileMeta","props","filename","filesize","height","mimeType","url","fileURL","width","_jsxs","className","_jsx","href","rel","target","defaultMessage","value","Fragment"],"sources":["../../../../src/elements/FileDetails/FileMeta/index.tsx"],"sourcesContent":["'use client'\nimport { formatFilesize } from 'payload/shared'\nimport React from 'react'\n\nexport type FileMetaProps = {\n filename: string\n filesize: number\n height?: number\n mimeType: string\n sizes?: unknown\n url: string\n width?: number\n}\n\nimport { CopyToClipboard } from '../../CopyToClipboard/index.js'\nimport './index.
|
|
1
|
+
{"version":3,"file":"index.js","names":["formatFilesize","React","CopyToClipboard","baseClass","FileMeta","props","filename","filesize","height","mimeType","url","fileURL","width","_jsxs","className","_jsx","href","rel","target","defaultMessage","value","Fragment"],"sources":["../../../../src/elements/FileDetails/FileMeta/index.tsx"],"sourcesContent":["'use client'\nimport { formatFilesize } from 'payload/shared'\nimport React from 'react'\n\nexport type FileMetaProps = {\n filename: string\n filesize: number\n height?: number\n mimeType: string\n sizes?: unknown\n url: string\n width?: number\n}\n\nimport { CopyToClipboard } from '../../CopyToClipboard/index.js'\nimport './index.css'\n\nconst baseClass = 'file-meta'\n\nexport const FileMeta: React.FC<FileMetaProps> = (props) => {\n const { filename, filesize, height, mimeType, url: fileURL, width } = props\n\n return (\n <div className={baseClass}>\n <div className={`${baseClass}__url`}>\n <a href={fileURL} rel=\"noopener noreferrer\" target=\"_blank\">\n {filename}\n </a>\n <CopyToClipboard defaultMessage=\"Copy URL\" value={fileURL} />\n </div>\n <div className={`${baseClass}__size-type`}>\n {formatFilesize(filesize)}\n {typeof width === 'number' && typeof height === 'number' && (\n <React.Fragment>\n - \n {width}x{height}\n </React.Fragment>\n )}\n {mimeType && (\n <React.Fragment>\n - \n {mimeType}\n </React.Fragment>\n )}\n </div>\n </div>\n )\n}\n"],"mappings":"AAAA;;;AACA,SAASA,cAAc,QAAQ;AAC/B,OAAOC,KAAA,MAAW;AAYlB,SAASC,eAAe,QAAQ;AAChC,OAAO;AAEP,MAAMC,SAAA,GAAY;AAElB,OAAO,MAAMC,QAAA,GAAqCC,KAAA;EAChD,MAAM;IAAEC,QAAQ;IAAEC,QAAQ;IAAEC,MAAM;IAAEC,QAAQ;IAAEC,GAAA,EAAKC,OAAO;IAAEC;EAAK,CAAE,GAAGP,KAAA;EAEtE,oBACEQ,KAAA,CAAC;IAAIC,SAAA,EAAWX,SAAA;4BACdU,KAAA,CAAC;MAAIC,SAAA,EAAW,GAAGX,SAAA,OAAgB;8BACjCY,IAAA,CAAC;QAAEC,IAAA,EAAML,OAAA;QAASM,GAAA,EAAI;QAAsBC,MAAA,EAAO;kBAChDZ;uBAEHS,IAAA,CAACb,eAAA;QAAgBiB,cAAA,EAAe;QAAWC,KAAA,EAAOT;;qBAEpDE,KAAA,CAAC;MAAIC,SAAA,EAAW,GAAGX,SAAA,aAAsB;iBACtCH,cAAA,CAAeO,QAAA,GACf,OAAOK,KAAA,KAAU,YAAY,OAAOJ,MAAA,KAAW,yBAC9CK,KAAA,CAACZ,KAAA,CAAMoB,QAAQ;mBAAC,OAEbT,KAAA,EAAM,KAAEJ,MAAA;UAGZC,QAAA,iBACCI,KAAA,CAACZ,KAAA,CAAMoB,QAAQ;mBAAC,OAEbZ,QAAA;;;;AAMb","ignoreList":[]}
|
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
@layer payload-default {
|
|
2
|
+
.file-details {
|
|
3
|
+
background: var(--theme-elevation-50);
|
|
4
|
+
border: var(--stroke-width-small) solid var(--theme-border-color);
|
|
5
|
+
border-radius: var(--radius-medium);
|
|
6
|
+
box-shadow: 0 2px 2px -1px rgba(0, 0, 0, 0.1);
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
.file-details:not(:disabled):hover {
|
|
10
|
+
box-shadow: 0 2px 2px -1px rgba(0, 0, 0, 0.2);
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
.file-details header {
|
|
14
|
+
display: flex;
|
|
15
|
+
flex-direction: row;
|
|
16
|
+
flex-wrap: wrap;
|
|
17
|
+
position: relative;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
.file-details__remove {
|
|
21
|
+
position: absolute;
|
|
22
|
+
margin: 0;
|
|
23
|
+
top: var(--spacer-4);
|
|
24
|
+
right: var(--spacer-4);
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
.file-details__remove .btn__icon {
|
|
28
|
+
border: var(--stroke-width-small) solid var(--theme-border-color);
|
|
29
|
+
background: var(--theme-input-bg);
|
|
30
|
+
box-shadow: 0 2px 2px -1px rgba(0, 0, 0, 0.1);
|
|
31
|
+
transition: border 100ms cubic-bezier(0, 0.2, 0.2, 1);
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
.file-details__remove .btn__icon:not(:disabled):hover {
|
|
35
|
+
box-shadow: 0 2px 2px -1px rgba(0, 0, 0, 0.2);
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
.file-details__remove .btn__icon:hover {
|
|
39
|
+
border: var(--stroke-width-small) solid var(--theme-elevation-400);
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
.file-details__main-detail {
|
|
43
|
+
padding: var(--spacer-3) var(--spacer-4);
|
|
44
|
+
width: auto;
|
|
45
|
+
flex-grow: 1;
|
|
46
|
+
min-width: 280px;
|
|
47
|
+
max-width: 100%;
|
|
48
|
+
display: flex;
|
|
49
|
+
flex-direction: column;
|
|
50
|
+
justify-content: space-between;
|
|
51
|
+
align-self: stretch;
|
|
52
|
+
gap: var(--spacer-1);
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
.file-details__toggle-more-info {
|
|
56
|
+
font-weight: 600;
|
|
57
|
+
text-decoration: none;
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
.file-details__toggle-more-info:hover,
|
|
61
|
+
.file-details__toggle-more-info:focus-visible {
|
|
62
|
+
text-decoration: underline;
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
.file-details__toggle-icon {
|
|
66
|
+
padding: var(--spacer-1);
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
.file-details__sizes {
|
|
70
|
+
margin: 0;
|
|
71
|
+
padding: var(--spacer-5) var(--spacer-4) 0;
|
|
72
|
+
list-style: none;
|
|
73
|
+
display: flex;
|
|
74
|
+
flex-wrap: wrap;
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
.file-details__sizes li {
|
|
78
|
+
width: 50%;
|
|
79
|
+
padding: 0 var(--spacer-2);
|
|
80
|
+
margin-bottom: var(--spacer-4);
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
.file-details__size-label {
|
|
84
|
+
color: var(--theme-elevation-400);
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
.file-details__file-mutation {
|
|
88
|
+
display: flex;
|
|
89
|
+
margin-top: var(--spacer-1);
|
|
90
|
+
gap: var(--spacer-2);
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
.file-details__edit {
|
|
94
|
+
cursor: pointer;
|
|
95
|
+
background-color: var(--theme-elevation-150);
|
|
96
|
+
border: none;
|
|
97
|
+
border-radius: var(--radius-medium);
|
|
98
|
+
padding: var(--spacer-1) var(--spacer-2);
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
.file-details__edit:hover {
|
|
102
|
+
background-color: var(--theme-elevation-100);
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
@media (max-width: 1440px) {
|
|
106
|
+
.file-details__main-detail {
|
|
107
|
+
padding: var(--spacer-4);
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
.file-details__sizes {
|
|
111
|
+
display: block;
|
|
112
|
+
padding: var(--spacer-4) var(--spacer-4) var(--spacer-2);
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
.file-details__sizes li {
|
|
116
|
+
padding: 0;
|
|
117
|
+
width: 100%;
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
@media (max-width: 1024px) {
|
|
122
|
+
.file-details header {
|
|
123
|
+
flex-wrap: wrap;
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
.file-details .thumbnail {
|
|
127
|
+
width: 50%;
|
|
128
|
+
order: 1;
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
.file-details__remove {
|
|
132
|
+
order: 2;
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
.file-details__main-detail {
|
|
136
|
+
order: 3;
|
|
137
|
+
width: 100%;
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import './index.
|
|
2
|
+
import './index.css';
|
|
3
3
|
import type { Data, FileSizes, SanitizedCollectionConfig } from 'payload';
|
|
4
4
|
export type StaticFileDetailsProps = {
|
|
5
5
|
customUploadActions?: React.ReactNode[];
|
|
@@ -10,7 +10,7 @@ export type StaticFileDetailsProps = {
|
|
|
10
10
|
handleRemove?: () => void;
|
|
11
11
|
hasImageSizes?: boolean;
|
|
12
12
|
hideRemoveFile?: boolean;
|
|
13
|
-
imageCacheTag?: string;
|
|
13
|
+
imageCacheTag?: false | string;
|
|
14
14
|
uploadConfig: SanitizedCollectionConfig['upload'];
|
|
15
15
|
};
|
|
16
16
|
export declare const StaticFileDetails: React.FC<StaticFileDetailsProps>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/elements/FileDetails/StaticFileDetails/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAA;AAMzB,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/elements/FileDetails/StaticFileDetails/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAA;AAMzB,OAAO,aAAa,CAAA;AAIpB,OAAO,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,yBAAyB,EAAE,MAAM,SAAS,CAAA;AAEzE,MAAM,MAAM,sBAAsB,GAAG;IACnC,mBAAmB,CAAC,EAAE,KAAK,CAAC,SAAS,EAAE,CAAA;IACvC,GAAG,EAAE;QACH,KAAK,CAAC,EAAE,SAAS,CAAA;KAClB,GAAG,IAAI,CAAA;IACR,iBAAiB,CAAC,EAAE,OAAO,CAAA;IAC3B,YAAY,CAAC,EAAE,MAAM,IAAI,CAAA;IACzB,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,aAAa,CAAC,EAAE,KAAK,GAAG,MAAM,CAAA;IAC9B,YAAY,EAAE,yBAAyB,CAAC,QAAQ,CAAC,CAAA;CAClD,CAAA;AAED,eAAO,MAAM,iBAAiB,EAAE,KAAK,CAAC,EAAE,CAAC,sBAAsB,CA4D9D,CAAA"}
|
|
@@ -6,7 +6,7 @@ import { Button } from '../../Button/index.js';
|
|
|
6
6
|
import { Thumbnail } from '../../Thumbnail/index.js';
|
|
7
7
|
import { UploadActions } from '../../Upload/index.js';
|
|
8
8
|
import { FileMeta } from '../FileMeta/index.js';
|
|
9
|
-
import './index.
|
|
9
|
+
import './index.css';
|
|
10
10
|
const baseClass = 'file-details';
|
|
11
11
|
export const StaticFileDetails = props => {
|
|
12
12
|
const {
|