@payloadcms/ui 4.0.0-internal.a7ca468 → 4.0.0-internal.af6aad0
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/elements/AddNewRelation/index.css +0 -4
- package/dist/elements/AddNewRelation/index.js +2 -2
- package/dist/elements/AddNewRelation/index.js.map +1 -1
- package/dist/elements/AppHeader/index.css +5 -0
- package/dist/elements/AppHeader/index.d.ts +1 -8
- package/dist/elements/AppHeader/index.d.ts.map +1 -1
- package/dist/elements/AppHeader/index.js +4 -13
- package/dist/elements/AppHeader/index.js.map +1 -1
- package/dist/elements/ArrayAction/index.d.ts +1 -0
- package/dist/elements/ArrayAction/index.d.ts.map +1 -1
- package/dist/elements/ArrayAction/index.js +45 -32
- package/dist/elements/ArrayAction/index.js.map +1 -1
- package/dist/elements/BulkUpload/AddFilesView/index.css +10 -4
- package/dist/elements/BulkUpload/AddFilesView/index.d.ts.map +1 -1
- package/dist/elements/BulkUpload/AddFilesView/index.js +71 -51
- package/dist/elements/BulkUpload/AddFilesView/index.js.map +1 -1
- package/dist/elements/Button/index.css +25 -2
- package/dist/elements/Button/index.d.ts.map +1 -1
- package/dist/elements/Button/index.js +2 -0
- package/dist/elements/Button/index.js.map +1 -1
- package/dist/elements/Button/types.d.ts +1 -1
- package/dist/elements/Button/types.d.ts.map +1 -1
- package/dist/elements/Button/types.js.map +1 -1
- package/dist/elements/ClipboardAction/mergeFormStateFromClipboard.d.ts +10 -0
- package/dist/elements/ClipboardAction/mergeFormStateFromClipboard.d.ts.map +1 -1
- package/dist/elements/ClipboardAction/mergeFormStateFromClipboard.js +65 -3
- package/dist/elements/ClipboardAction/mergeFormStateFromClipboard.js.map +1 -1
- package/dist/elements/ClipboardAction/mergeFormStateFromClipboard.spec.js +345 -1
- package/dist/elements/ClipboardAction/mergeFormStateFromClipboard.spec.js.map +1 -1
- package/dist/elements/DefaultListViewTabs/index.css +1 -0
- package/dist/elements/DefaultListViewTabs/index.d.ts.map +1 -1
- package/dist/elements/DefaultListViewTabs/index.js +84 -62
- package/dist/elements/DefaultListViewTabs/index.js.map +1 -1
- package/dist/elements/DocumentDrawer/types.d.ts +1 -1
- package/dist/elements/DocumentDrawer/types.d.ts.map +1 -1
- package/dist/elements/DocumentDrawer/types.js.map +1 -1
- package/dist/elements/Drawer/index.css +10 -4
- package/dist/elements/Drawer/types.d.ts +2 -2
- package/dist/elements/Drawer/types.d.ts.map +1 -1
- package/dist/elements/Drawer/types.js.map +1 -1
- package/dist/elements/Dropzone/index.css +10 -4
- package/dist/elements/DuplicateDocument/SelectLocalesDrawer/index.js +3 -2
- package/dist/elements/DuplicateDocument/SelectLocalesDrawer/index.js.map +1 -1
- package/dist/elements/FileManager/index.css +0 -30
- package/dist/elements/FileManager/index.d.ts.map +1 -1
- package/dist/elements/FileManager/index.js +379 -287
- package/dist/elements/FileManager/index.js.map +1 -1
- package/dist/elements/Hierarchy/ColumnBrowser/Column/index.css +22 -4
- package/dist/elements/Hierarchy/ColumnBrowser/Column/index.d.ts.map +1 -1
- package/dist/elements/Hierarchy/ColumnBrowser/Column/index.js +68 -49
- package/dist/elements/Hierarchy/ColumnBrowser/Column/index.js.map +1 -1
- package/dist/elements/Hierarchy/ColumnBrowser/ColumnItem/index.css +100 -15
- package/dist/elements/Hierarchy/ColumnBrowser/ColumnItem/index.d.ts.map +1 -1
- package/dist/elements/Hierarchy/ColumnBrowser/ColumnItem/index.js +97 -137
- package/dist/elements/Hierarchy/ColumnBrowser/ColumnItem/index.js.map +1 -1
- package/dist/elements/Hierarchy/ColumnBrowser/index.d.ts +1 -1
- package/dist/elements/Hierarchy/ColumnBrowser/index.d.ts.map +1 -1
- package/dist/elements/Hierarchy/ColumnBrowser/index.js +51 -23
- package/dist/elements/Hierarchy/ColumnBrowser/index.js.map +1 -1
- package/dist/elements/Hierarchy/ColumnBrowser/types.d.ts +26 -3
- package/dist/elements/Hierarchy/ColumnBrowser/types.d.ts.map +1 -1
- package/dist/elements/Hierarchy/ColumnBrowser/types.js.map +1 -1
- package/dist/elements/Hierarchy/CreateNewButton/index.css +9 -0
- package/dist/elements/Hierarchy/CreateNewButton/index.d.ts +9 -0
- package/dist/elements/Hierarchy/CreateNewButton/index.d.ts.map +1 -0
- package/dist/elements/Hierarchy/CreateNewButton/index.js +111 -0
- package/dist/elements/Hierarchy/CreateNewButton/index.js.map +1 -0
- package/dist/elements/Hierarchy/DocHeaderButton/index.d.ts.map +1 -1
- package/dist/elements/Hierarchy/DocHeaderButton/index.js +6 -1
- package/dist/elements/Hierarchy/DocHeaderButton/index.js.map +1 -1
- package/dist/elements/Hierarchy/DocHeaderButton/index.server.js +1 -3
- package/dist/elements/Hierarchy/DocHeaderButton/index.server.js.map +1 -1
- package/dist/elements/Hierarchy/Field/index.client.d.ts +5 -0
- package/dist/elements/Hierarchy/Field/index.client.d.ts.map +1 -1
- package/dist/elements/Hierarchy/Field/index.client.js +120 -95
- package/dist/elements/Hierarchy/Field/index.client.js.map +1 -1
- package/dist/elements/Hierarchy/Field/index.css +3 -34
- package/dist/elements/Hierarchy/Modal/Footer/index.css +45 -0
- package/dist/elements/Hierarchy/Modal/Footer/index.d.ts +28 -0
- package/dist/elements/Hierarchy/Modal/Footer/index.d.ts.map +1 -0
- package/dist/elements/Hierarchy/Modal/Footer/index.js +166 -0
- package/dist/elements/Hierarchy/Modal/Footer/index.js.map +1 -0
- package/dist/elements/Hierarchy/Modal/fetchAncestorPath.d.ts +18 -4
- package/dist/elements/Hierarchy/Modal/fetchAncestorPath.d.ts.map +1 -1
- package/dist/elements/Hierarchy/Modal/fetchAncestorPath.js +88 -24
- package/dist/elements/Hierarchy/Modal/fetchAncestorPath.js.map +1 -1
- package/dist/elements/Hierarchy/Modal/index.css +4 -53
- package/dist/elements/Hierarchy/Modal/index.d.ts +5 -2
- package/dist/elements/Hierarchy/Modal/index.d.ts.map +1 -1
- package/dist/elements/Hierarchy/Modal/index.js +136 -99
- package/dist/elements/Hierarchy/Modal/index.js.map +1 -1
- package/dist/elements/Hierarchy/Modal/types.d.ts +15 -0
- package/dist/elements/Hierarchy/Modal/types.d.ts.map +1 -1
- package/dist/elements/Hierarchy/Modal/types.js.map +1 -1
- package/dist/elements/Hierarchy/MoveMany/index.d.ts +7 -3
- package/dist/elements/Hierarchy/MoveMany/index.d.ts.map +1 -1
- package/dist/elements/Hierarchy/MoveMany/index.js +43 -170
- package/dist/elements/Hierarchy/MoveMany/index.js.map +1 -1
- package/dist/elements/Hierarchy/Search/index.css +2 -9
- package/dist/elements/Hierarchy/Search/index.d.ts.map +1 -1
- package/dist/elements/Hierarchy/Search/index.js +6 -73
- package/dist/elements/Hierarchy/Search/index.js.map +1 -1
- package/dist/elements/Hierarchy/Search/types.d.ts +2 -6
- package/dist/elements/Hierarchy/Search/types.d.ts.map +1 -1
- package/dist/elements/Hierarchy/Search/types.js.map +1 -1
- package/dist/elements/Hierarchy/Tree/HierarchySidebarTab.d.ts +0 -4
- package/dist/elements/Hierarchy/Tree/HierarchySidebarTab.d.ts.map +1 -1
- package/dist/elements/Hierarchy/Tree/HierarchySidebarTab.js +101 -186
- package/dist/elements/Hierarchy/Tree/HierarchySidebarTab.js.map +1 -1
- package/dist/elements/Hierarchy/Tree/HierarchySidebarTab.server.d.ts.map +1 -1
- package/dist/elements/Hierarchy/Tree/HierarchySidebarTab.server.js +1 -21
- package/dist/elements/Hierarchy/Tree/HierarchySidebarTab.server.js.map +1 -1
- package/dist/elements/Hierarchy/Tree/LoadMore/index.css +3 -3
- package/dist/elements/Hierarchy/Tree/TreeNode/index.css +59 -29
- package/dist/elements/Hierarchy/Tree/TreeNode/index.d.ts +1 -1
- package/dist/elements/Hierarchy/Tree/TreeNode/index.d.ts.map +1 -1
- package/dist/elements/Hierarchy/Tree/TreeNode/index.js +54 -10
- package/dist/elements/Hierarchy/Tree/TreeNode/index.js.map +1 -1
- package/dist/elements/Hierarchy/Tree/index.css +8 -9
- package/dist/elements/Hierarchy/Tree/index.d.ts.map +1 -1
- package/dist/elements/Hierarchy/Tree/index.js +29 -47
- package/dist/elements/Hierarchy/Tree/index.js.map +1 -1
- package/dist/elements/Hierarchy/Tree/types.d.ts +9 -1
- package/dist/elements/Hierarchy/Tree/types.d.ts.map +1 -1
- package/dist/elements/Hierarchy/Tree/types.js.map +1 -1
- package/dist/elements/Hierarchy/Tree/useChildren.d.ts.map +1 -1
- package/dist/elements/Hierarchy/Tree/useChildren.js +11 -1
- package/dist/elements/Hierarchy/Tree/useChildren.js.map +1 -1
- package/dist/elements/Hierarchy/getFolderHierarchySlug.d.ts +22 -0
- package/dist/elements/Hierarchy/getFolderHierarchySlug.d.ts.map +1 -0
- package/dist/elements/Hierarchy/getFolderHierarchySlug.js +17 -0
- package/dist/elements/Hierarchy/getFolderHierarchySlug.js.map +1 -0
- package/dist/elements/Hierarchy/move/moveDocuments.d.ts +34 -0
- package/dist/elements/Hierarchy/move/moveDocuments.d.ts.map +1 -0
- package/dist/elements/Hierarchy/move/moveDocuments.js +94 -0
- package/dist/elements/Hierarchy/move/moveDocuments.js.map +1 -0
- package/dist/elements/IDLabel/index.css +6 -0
- package/dist/elements/IDLabel/index.d.ts +1 -1
- package/dist/elements/IDLabel/index.d.ts.map +1 -1
- package/dist/elements/IDLabel/index.js +16 -21
- package/dist/elements/IDLabel/index.js.map +1 -1
- package/dist/elements/ListControls/index.d.ts.map +1 -1
- package/dist/elements/ListControls/index.js +3 -2
- package/dist/elements/ListControls/index.js.map +1 -1
- package/dist/elements/ListControls/types.d.ts +4 -0
- package/dist/elements/ListControls/types.d.ts.map +1 -1
- package/dist/elements/ListControls/types.js.map +1 -1
- package/dist/elements/ListHeader/TitleActions/ListBulkUploadButton.d.ts +1 -7
- package/dist/elements/ListHeader/TitleActions/ListBulkUploadButton.d.ts.map +1 -1
- package/dist/elements/ListHeader/TitleActions/ListBulkUploadButton.js +26 -32
- package/dist/elements/ListHeader/TitleActions/ListBulkUploadButton.js.map +1 -1
- package/dist/elements/Nav/NavSidebarToggle/index.js +1 -1
- package/dist/elements/Nav/NavSidebarToggle/index.js.map +1 -1
- package/dist/elements/Nav/NavWrapper/index.d.ts +1 -0
- package/dist/elements/Nav/NavWrapper/index.d.ts.map +1 -1
- package/dist/elements/Nav/NavWrapper/index.js +12 -18
- package/dist/elements/Nav/NavWrapper/index.js.map +1 -1
- package/dist/elements/Nav/SidebarTabs/index.css +1 -2
- package/dist/elements/Nav/context.d.ts +0 -1
- package/dist/elements/Nav/context.d.ts.map +1 -1
- package/dist/elements/Nav/context.js +92 -67
- package/dist/elements/Nav/context.js.map +1 -1
- package/dist/elements/Nav/index.css +47 -42
- package/dist/elements/Nav/index.d.ts +4 -0
- package/dist/elements/Nav/index.d.ts.map +1 -1
- package/dist/elements/Nav/index.js +16 -1
- package/dist/elements/Nav/index.js.map +1 -1
- package/dist/elements/NavGroup/index.css +29 -15
- package/dist/elements/Popup/PopupButtonList/index.css +33 -17
- package/dist/elements/Popup/index.css +6 -0
- package/dist/elements/Popup/index.d.ts +10 -0
- package/dist/elements/Popup/index.d.ts.map +1 -1
- package/dist/elements/Popup/index.js +13 -6
- package/dist/elements/Popup/index.js.map +1 -1
- package/dist/elements/PublishButton/ScheduleDrawer/index.js +1 -1
- package/dist/elements/PublishButton/ScheduleDrawer/index.js.map +1 -1
- package/dist/elements/QueryPresets/QueryPresetBar/index.js +1 -3
- package/dist/elements/QueryPresets/QueryPresetBar/index.js.map +1 -1
- package/dist/elements/ReactSelect/types.d.ts +5 -0
- package/dist/elements/ReactSelect/types.d.ts.map +1 -1
- package/dist/elements/ReactSelect/types.js.map +1 -1
- package/dist/elements/RelationshipTable/index.d.ts.map +1 -1
- package/dist/elements/RelationshipTable/index.js +5 -2
- package/dist/elements/RelationshipTable/index.js.map +1 -1
- package/dist/elements/SegmentedControl/index.css +58 -0
- package/dist/elements/SegmentedControl/index.d.ts +19 -0
- package/dist/elements/SegmentedControl/index.d.ts.map +1 -0
- package/dist/elements/SegmentedControl/index.js +104 -0
- package/dist/elements/SegmentedControl/index.js.map +1 -0
- package/dist/elements/SelectAll/index.d.ts.map +1 -1
- package/dist/elements/SelectAll/index.js +1 -2
- package/dist/elements/SelectAll/index.js.map +1 -1
- package/dist/elements/SelectRow/index.d.ts.map +1 -1
- package/dist/elements/SelectRow/index.js +1 -2
- package/dist/elements/SelectRow/index.js.map +1 -1
- package/dist/elements/SidebarRow/index.css +1 -5
- package/dist/elements/SidebarToggle/index.css +3 -1
- package/dist/elements/SortHeader/index.d.ts.map +1 -1
- package/dist/elements/SortHeader/index.js +29 -26
- package/dist/elements/SortHeader/index.js.map +1 -1
- package/dist/elements/StepNav/DropTarget/index.css +20 -0
- package/dist/elements/StepNav/DropTarget/index.d.ts +16 -0
- package/dist/elements/StepNav/DropTarget/index.d.ts.map +1 -0
- package/dist/elements/StepNav/DropTarget/index.js +71 -0
- package/dist/elements/StepNav/DropTarget/index.js.map +1 -0
- package/dist/elements/StepNav/index.css +64 -14
- package/dist/elements/StepNav/index.d.ts.map +1 -1
- package/dist/elements/StepNav/index.js +147 -69
- package/dist/elements/StepNav/index.js.map +1 -1
- package/dist/elements/StepNav/types.d.ts +6 -0
- package/dist/elements/StepNav/types.d.ts.map +1 -1
- package/dist/elements/StepNav/types.js.map +1 -1
- package/dist/elements/Table/DefaultCell/fields/Hierarchy/index.css +5 -7
- package/dist/elements/Table/DefaultCell/fields/Hierarchy/index.d.ts.map +1 -1
- package/dist/elements/Table/DefaultCell/fields/Hierarchy/index.js +14 -3
- package/dist/elements/Table/DefaultCell/fields/Hierarchy/index.js.map +1 -1
- package/dist/elements/Table/DefaultCell/index.d.ts.map +1 -1
- package/dist/elements/Table/DefaultCell/index.js +3 -11
- package/dist/elements/Table/DefaultCell/index.js.map +1 -1
- package/dist/elements/Upload/UploadFromURLModal/index.d.ts +1 -1
- package/dist/elements/Upload/UploadFromURLModal/index.d.ts.map +1 -1
- package/dist/elements/Upload/UploadFromURLModal/index.js.map +1 -1
- package/dist/elements/Upload/index.css +39 -32
- package/dist/elements/Upload/index.d.ts.map +1 -1
- package/dist/elements/Upload/index.js +37 -99
- package/dist/elements/Upload/index.js.map +1 -1
- package/dist/elements/Upload/usePasteFromClipboard.d.ts +14 -0
- package/dist/elements/Upload/usePasteFromClipboard.d.ts.map +1 -0
- package/dist/elements/Upload/usePasteFromClipboard.js +93 -0
- package/dist/elements/Upload/usePasteFromClipboard.js.map +1 -0
- package/dist/elements/Upload/useUploadFromUrl.d.ts +20 -0
- package/dist/elements/Upload/useUploadFromUrl.d.ts.map +1 -0
- package/dist/elements/Upload/useUploadFromUrl.js +201 -0
- package/dist/elements/Upload/useUploadFromUrl.js.map +1 -0
- package/dist/elements/UploadDropzoneContent/index.css +31 -0
- package/dist/elements/UploadDropzoneContent/index.d.ts +17 -0
- package/dist/elements/UploadDropzoneContent/index.d.ts.map +1 -0
- package/dist/elements/UploadDropzoneContent/index.js +62 -0
- package/dist/elements/UploadDropzoneContent/index.js.map +1 -0
- package/dist/elements/UserMenu/HoverSubmenuGroup.d.ts +18 -0
- package/dist/elements/UserMenu/HoverSubmenuGroup.d.ts.map +1 -0
- package/dist/elements/UserMenu/HoverSubmenuGroup.js +38 -0
- package/dist/elements/UserMenu/HoverSubmenuGroup.js.map +1 -0
- package/dist/elements/UserMenu/LanguageMenu/index.d.ts.map +1 -1
- package/dist/elements/UserMenu/LanguageMenu/index.js +83 -39
- package/dist/elements/UserMenu/LanguageMenu/index.js.map +1 -1
- package/dist/elements/UserMenu/SettingsMenu/index.d.ts.map +1 -1
- package/dist/elements/UserMenu/SettingsMenu/index.js +57 -21
- package/dist/elements/UserMenu/SettingsMenu/index.js.map +1 -1
- package/dist/elements/UserMenu/ThemeMenu/index.d.ts.map +1 -1
- package/dist/elements/UserMenu/ThemeMenu/index.js +83 -39
- package/dist/elements/UserMenu/ThemeMenu/index.js.map +1 -1
- package/dist/elements/UserMenu/index.css +32 -2
- package/dist/elements/UserMenu/index.d.ts +1 -0
- package/dist/elements/UserMenu/index.d.ts.map +1 -1
- package/dist/elements/UserMenu/index.js +77 -51
- package/dist/elements/UserMenu/index.js.map +1 -1
- package/dist/elements/UserMenu/useHoverSubmenu.d.ts +21 -0
- package/dist/elements/UserMenu/useHoverSubmenu.d.ts.map +1 -0
- package/dist/elements/UserMenu/useHoverSubmenu.js +260 -0
- package/dist/elements/UserMenu/useHoverSubmenu.js.map +1 -0
- package/dist/elements/ViewModeToggle/index.d.ts +8 -0
- package/dist/elements/ViewModeToggle/index.d.ts.map +1 -0
- package/dist/elements/ViewModeToggle/index.js +29 -0
- package/dist/elements/ViewModeToggle/index.js.map +1 -0
- package/dist/elements/WhereBuilder/conditionValue.d.ts +32 -0
- package/dist/elements/WhereBuilder/conditionValue.d.ts.map +1 -0
- package/dist/elements/WhereBuilder/conditionValue.js +32 -0
- package/dist/elements/WhereBuilder/conditionValue.js.map +1 -0
- package/dist/elements/WhereBuilder/conditionValue.spec.js +65 -0
- package/dist/elements/WhereBuilder/conditionValue.spec.js.map +1 -0
- package/dist/elements/WhereBuilder/index.d.ts.map +1 -1
- package/dist/elements/WhereBuilder/index.js +15 -4
- package/dist/elements/WhereBuilder/index.js.map +1 -1
- package/dist/exports/client/index.d.ts +6 -1
- package/dist/exports/client/index.d.ts.map +1 -1
- package/dist/exports/client/index.js +1 -1
- package/dist/exports/client/index.js.map +3 -3
- package/dist/fields/Array/ArrayRow.d.ts +1 -0
- package/dist/fields/Array/ArrayRow.d.ts.map +1 -1
- package/dist/fields/Array/ArrayRow.js +2 -0
- package/dist/fields/Array/ArrayRow.js.map +1 -1
- package/dist/fields/Array/index.d.ts.map +1 -1
- package/dist/fields/Array/index.js +38 -10
- package/dist/fields/Array/index.js.map +1 -1
- package/dist/fields/Blocks/BlockRow.d.ts +1 -0
- package/dist/fields/Blocks/BlockRow.d.ts.map +1 -1
- package/dist/fields/Blocks/BlockRow.js +2 -0
- package/dist/fields/Blocks/BlockRow.js.map +1 -1
- package/dist/fields/Blocks/RowActions.d.ts +1 -0
- package/dist/fields/Blocks/RowActions.d.ts.map +1 -1
- package/dist/fields/Blocks/RowActions.js +22 -19
- package/dist/fields/Blocks/RowActions.js.map +1 -1
- package/dist/fields/Blocks/index.d.ts.map +1 -1
- package/dist/fields/Blocks/index.js +35 -7
- package/dist/fields/Blocks/index.js.map +1 -1
- package/dist/fields/Checkbox/Input.d.ts +2 -2
- package/dist/fields/Checkbox/Input.d.ts.map +1 -1
- package/dist/fields/Checkbox/Input.js +134 -152
- package/dist/fields/Checkbox/Input.js.map +1 -1
- package/dist/fields/Checkbox/index.css +168 -155
- package/dist/fields/Relationship/Input.d.ts.map +1 -1
- package/dist/fields/Relationship/Input.js +24 -6
- package/dist/fields/Relationship/Input.js.map +1 -1
- package/dist/fields/Relationship/optionsReducer.d.ts.map +1 -1
- package/dist/fields/Relationship/optionsReducer.js +2 -0
- package/dist/fields/Relationship/optionsReducer.js.map +1 -1
- package/dist/fields/Relationship/types.d.ts +24 -0
- package/dist/fields/Relationship/types.d.ts.map +1 -1
- package/dist/fields/Relationship/types.js.map +1 -1
- package/dist/fields/Upload/Input.d.ts.map +1 -1
- package/dist/fields/Upload/Input.js +44 -16
- package/dist/fields/Upload/Input.js.map +1 -1
- package/dist/fields/Upload/Input.spec.js +241 -0
- package/dist/fields/Upload/Input.spec.js.map +1 -0
- package/dist/forms/Form/index.d.ts.map +1 -1
- package/dist/forms/Form/index.js +4 -1
- package/dist/forms/Form/index.js.map +1 -1
- package/dist/forms/fieldSchemasToFormState/addFieldStatePromise.d.ts.map +1 -1
- package/dist/forms/fieldSchemasToFormState/addFieldStatePromise.js +1 -0
- package/dist/forms/fieldSchemasToFormState/addFieldStatePromise.js.map +1 -1
- package/dist/icons/CollapseLayers/index.css +5 -0
- package/dist/icons/CollapseLayers/index.d.ts +7 -0
- package/dist/icons/CollapseLayers/index.d.ts.map +1 -0
- package/dist/icons/CollapseLayers/index.js +23 -0
- package/dist/icons/CollapseLayers/index.js.map +1 -0
- package/dist/icons/Edit/index.d.ts +0 -1
- package/dist/icons/Edit/index.d.ts.map +1 -1
- package/dist/icons/Edit/index.js +4 -4
- package/dist/icons/Edit/index.js.map +1 -1
- package/dist/icons/Table/index.css +5 -0
- package/dist/icons/Table/index.d.ts +7 -0
- package/dist/icons/Table/index.d.ts.map +1 -0
- package/dist/icons/Table/index.js +25 -0
- package/dist/icons/Table/index.js.map +1 -0
- package/dist/providers/Actions/index.d.ts +1 -0
- package/dist/providers/Actions/index.d.ts.map +1 -1
- package/dist/providers/Actions/index.js +43 -11
- package/dist/providers/Actions/index.js.map +1 -1
- package/dist/providers/Auth/AuthSessionDebug/index.css +48 -0
- package/dist/providers/Auth/AuthSessionDebug/index.d.ts +13 -0
- package/dist/providers/Auth/AuthSessionDebug/index.d.ts.map +1 -0
- package/dist/providers/Auth/AuthSessionDebug/index.js +93 -0
- package/dist/providers/Auth/AuthSessionDebug/index.js.map +1 -0
- package/dist/providers/Auth/AuthSessionDebug/utilities.d.ts +21 -0
- package/dist/providers/Auth/AuthSessionDebug/utilities.d.ts.map +1 -0
- package/dist/providers/Auth/AuthSessionDebug/utilities.js +53 -0
- package/dist/providers/Auth/AuthSessionDebug/utilities.js.map +1 -0
- package/dist/providers/Auth/authSessionRequests.d.ts +27 -0
- package/dist/providers/Auth/authSessionRequests.d.ts.map +1 -0
- package/dist/providers/Auth/authSessionRequests.js +119 -0
- package/dist/providers/Auth/authSessionRequests.js.map +1 -0
- package/dist/providers/Auth/authSessionRequests.spec.js +121 -0
- package/dist/providers/Auth/authSessionRequests.spec.js.map +1 -0
- package/dist/providers/Auth/index.d.ts +2 -56
- package/dist/providers/Auth/index.d.ts.map +1 -1
- package/dist/providers/Auth/index.js +283 -135
- package/dist/providers/Auth/index.js.map +1 -1
- package/dist/providers/Auth/sessionActivity.d.ts +23 -0
- package/dist/providers/Auth/sessionActivity.d.ts.map +1 -0
- package/dist/providers/Auth/sessionActivity.js +49 -0
- package/dist/providers/Auth/sessionActivity.js.map +1 -0
- package/dist/providers/Auth/sessionActivity.spec.js +44 -0
- package/dist/providers/Auth/sessionActivity.spec.js.map +1 -0
- package/dist/providers/Auth/sessionTiming.d.ts +11 -0
- package/dist/providers/Auth/sessionTiming.d.ts.map +1 -0
- package/dist/providers/Auth/sessionTiming.js +18 -0
- package/dist/providers/Auth/sessionTiming.js.map +1 -0
- package/dist/providers/Auth/tabSessionSync/index.d.ts +17 -0
- package/dist/providers/Auth/tabSessionSync/index.d.ts.map +1 -0
- package/dist/providers/Auth/tabSessionSync/index.js +263 -0
- package/dist/providers/Auth/tabSessionSync/index.js.map +1 -0
- package/dist/providers/Auth/tabSessionSync/index.spec.js +463 -0
- package/dist/providers/Auth/tabSessionSync/index.spec.js.map +1 -0
- package/dist/providers/Auth/tabSessionSync/types.d.ts +107 -0
- package/dist/providers/Auth/tabSessionSync/types.d.ts.map +1 -0
- package/dist/providers/Auth/tabSessionSync/types.js +6 -0
- package/dist/providers/Auth/tabSessionSync/types.js.map +1 -0
- package/dist/providers/Auth/tabSessionSync/useTabSessionSync.d.ts +11 -0
- package/dist/providers/Auth/tabSessionSync/useTabSessionSync.d.ts.map +1 -0
- package/dist/providers/Auth/tabSessionSync/useTabSessionSync.js +90 -0
- package/dist/providers/Auth/tabSessionSync/useTabSessionSync.js.map +1 -0
- package/dist/providers/Auth/tabSessionSync/utilities.d.ts +26 -0
- package/dist/providers/Auth/tabSessionSync/utilities.d.ts.map +1 -0
- package/dist/providers/Auth/tabSessionSync/utilities.js +159 -0
- package/dist/providers/Auth/tabSessionSync/utilities.js.map +1 -0
- package/dist/providers/Auth/types.d.ts +65 -0
- package/dist/providers/Auth/types.d.ts.map +1 -0
- package/dist/providers/Auth/types.js +2 -0
- package/dist/providers/Auth/types.js.map +1 -0
- package/dist/providers/Auth/useAuthSessionTimers.d.ts +26 -0
- package/dist/providers/Auth/useAuthSessionTimers.d.ts.map +1 -0
- package/dist/providers/Auth/useAuthSessionTimers.js +203 -0
- package/dist/providers/Auth/useAuthSessionTimers.js.map +1 -0
- package/dist/providers/Auth/useAuthSessionTimers.spec.js +311 -0
- package/dist/providers/Auth/useAuthSessionTimers.spec.js.map +1 -0
- package/dist/providers/FormErrorHandler/index.d.ts +5 -1
- package/dist/providers/FormErrorHandler/index.d.ts.map +1 -1
- package/dist/providers/FormErrorHandler/index.js.map +1 -1
- package/dist/providers/Hierarchy/index.d.ts.map +1 -1
- package/dist/providers/Hierarchy/index.js +53 -24
- package/dist/providers/Hierarchy/index.js.map +1 -1
- package/dist/providers/Hierarchy/types.d.ts +2 -0
- package/dist/providers/Hierarchy/types.d.ts.map +1 -1
- package/dist/providers/Hierarchy/types.js.map +1 -1
- package/dist/providers/HierarchyDnd/index.css +51 -0
- package/dist/providers/HierarchyDnd/index.d.ts +21 -0
- package/dist/providers/HierarchyDnd/index.d.ts.map +1 -0
- package/dist/providers/HierarchyDnd/index.js +163 -0
- package/dist/providers/HierarchyDnd/index.js.map +1 -0
- package/dist/providers/HierarchyDnd/types.d.ts +56 -0
- package/dist/providers/HierarchyDnd/types.d.ts.map +1 -0
- package/dist/providers/HierarchyDnd/types.js +21 -0
- package/dist/providers/HierarchyDnd/types.js.map +1 -0
- package/dist/providers/Locale/index.d.ts.map +1 -1
- package/dist/providers/Locale/index.js +41 -36
- package/dist/providers/Locale/index.js.map +1 -1
- package/dist/providers/Root/index.js +4 -4
- package/dist/providers/Root/index.js.map +1 -1
- package/dist/providers/RouteTransition/ProgressBar/index.js +4 -1
- package/dist/providers/RouteTransition/ProgressBar/index.js.map +1 -1
- package/dist/providers/RouteTransition/ProgressBar/index.spec.js +44 -0
- package/dist/providers/RouteTransition/ProgressBar/index.spec.js.map +1 -0
- package/dist/providers/RouteTransition/index.d.ts +2 -0
- package/dist/providers/RouteTransition/index.d.ts.map +1 -1
- package/dist/providers/RouteTransition/index.js +42 -14
- package/dist/providers/RouteTransition/index.js.map +1 -1
- package/dist/styles.css +1 -1
- package/dist/templates/Default/Wrapper/index.css +2 -1
- package/dist/templates/Default/Wrapper/index.d.ts +2 -0
- package/dist/templates/Default/Wrapper/index.d.ts.map +1 -1
- package/dist/templates/Default/Wrapper/index.js +12 -6
- package/dist/templates/Default/Wrapper/index.js.map +1 -1
- package/dist/templates/Default/index.css +3 -1
- package/dist/templates/Default/index.d.ts +1 -0
- package/dist/templates/Default/index.d.ts.map +1 -1
- package/dist/templates/Default/index.js +19 -15
- package/dist/templates/Default/index.js.map +1 -1
- package/dist/utilities/formatMetadata.d.ts.map +1 -1
- package/dist/utilities/formatMetadata.js +0 -5
- package/dist/utilities/formatMetadata.js.map +1 -1
- package/dist/utilities/getFilesFromClipboard.d.ts +10 -0
- package/dist/utilities/getFilesFromClipboard.d.ts.map +1 -0
- package/dist/utilities/getFilesFromClipboard.js +49 -0
- package/dist/utilities/getFilesFromClipboard.js.map +1 -0
- package/dist/utilities/slugify.d.ts.map +1 -1
- package/dist/utilities/slugify.js +1 -0
- package/dist/utilities/slugify.js.map +1 -1
- package/dist/views/Dashboard/Default/ModularDashboard/DashboardStepNav.d.ts.map +1 -1
- package/dist/views/Dashboard/Default/ModularDashboard/DashboardStepNav.js +3 -2
- package/dist/views/Dashboard/Default/ModularDashboard/DashboardStepNav.js.map +1 -1
- package/dist/views/Dashboard/Default/ModularDashboard/WidgetEditControl.d.ts.map +1 -1
- package/dist/views/Dashboard/Default/ModularDashboard/WidgetEditControl.js +7 -7
- package/dist/views/Dashboard/Default/ModularDashboard/WidgetEditControl.js.map +1 -1
- package/dist/views/Dashboard/Default/ModularDashboard/index.client.d.ts.map +1 -1
- package/dist/views/Dashboard/Default/ModularDashboard/index.client.js +104 -66
- package/dist/views/Dashboard/Default/ModularDashboard/index.client.js.map +1 -1
- package/dist/views/Dashboard/Default/ModularDashboard/index.css +33 -140
- package/dist/views/Edit/SetDocumentTitle/index.d.ts.map +1 -1
- package/dist/views/Edit/SetDocumentTitle/index.js +4 -1
- package/dist/views/Edit/SetDocumentTitle/index.js.map +1 -1
- package/dist/views/Edit/index.d.ts.map +1 -1
- package/dist/views/Edit/index.js +3 -2
- package/dist/views/Edit/index.js.map +1 -1
- package/dist/views/HierarchyList/DocumentListSelection/index.d.ts.map +1 -1
- package/dist/views/HierarchyList/DocumentListSelection/index.js +100 -105
- package/dist/views/HierarchyList/DocumentListSelection/index.js.map +1 -1
- package/dist/views/HierarchyList/HierarchyCards/DocumentCard/index.css +216 -0
- package/dist/views/HierarchyList/HierarchyCards/DocumentCard/index.d.ts +20 -0
- package/dist/views/HierarchyList/HierarchyCards/DocumentCard/index.d.ts.map +1 -0
- package/dist/views/HierarchyList/HierarchyCards/DocumentCard/index.js +182 -0
- package/dist/views/HierarchyList/HierarchyCards/DocumentCard/index.js.map +1 -0
- package/dist/views/HierarchyList/HierarchyCards/DragPreviewItem/index.css +38 -0
- package/dist/views/HierarchyList/HierarchyCards/DragPreviewItem/index.d.ts +15 -0
- package/dist/views/HierarchyList/HierarchyCards/DragPreviewItem/index.d.ts.map +1 -0
- package/dist/views/HierarchyList/HierarchyCards/DragPreviewItem/index.js +85 -0
- package/dist/views/HierarchyList/HierarchyCards/DragPreviewItem/index.js.map +1 -0
- package/dist/views/HierarchyList/HierarchyCards/FolderCard/index.css +98 -0
- package/dist/views/HierarchyList/HierarchyCards/FolderCard/index.d.ts +27 -0
- package/dist/views/HierarchyList/HierarchyCards/FolderCard/index.d.ts.map +1 -0
- package/dist/views/HierarchyList/HierarchyCards/FolderCard/index.js +84 -0
- package/dist/views/HierarchyList/HierarchyCards/FolderCard/index.js.map +1 -0
- package/dist/views/HierarchyList/HierarchyCards/HierarchyCard/index.d.ts +19 -0
- package/dist/views/HierarchyList/HierarchyCards/HierarchyCard/index.d.ts.map +1 -0
- package/dist/views/HierarchyList/HierarchyCards/HierarchyCard/index.js +100 -0
- package/dist/views/HierarchyList/HierarchyCards/HierarchyCard/index.js.map +1 -0
- package/dist/views/HierarchyList/HierarchyCards/PlaneItem/index.d.ts +53 -0
- package/dist/views/HierarchyList/HierarchyCards/PlaneItem/index.d.ts.map +1 -0
- package/dist/views/HierarchyList/HierarchyCards/PlaneItem/index.js +145 -0
- package/dist/views/HierarchyList/HierarchyCards/PlaneItem/index.js.map +1 -0
- package/dist/views/HierarchyList/HierarchyCards/getThumbnailSrc.d.ts +8 -0
- package/dist/views/HierarchyList/HierarchyCards/getThumbnailSrc.d.ts.map +1 -0
- package/dist/views/HierarchyList/HierarchyCards/getThumbnailSrc.js +21 -0
- package/dist/views/HierarchyList/HierarchyCards/getThumbnailSrc.js.map +1 -0
- package/dist/views/HierarchyList/HierarchyCards/index.css +115 -0
- package/dist/views/HierarchyList/HierarchyCards/index.d.ts +80 -0
- package/dist/views/HierarchyList/HierarchyCards/index.d.ts.map +1 -0
- package/dist/views/HierarchyList/HierarchyCards/index.js +457 -0
- package/dist/views/HierarchyList/HierarchyCards/index.js.map +1 -0
- package/dist/views/HierarchyList/HierarchyListHeader/index.d.ts +6 -1
- package/dist/views/HierarchyList/HierarchyListHeader/index.d.ts.map +1 -1
- package/dist/views/HierarchyList/HierarchyListHeader/index.js +10 -8
- package/dist/views/HierarchyList/HierarchyListHeader/index.js.map +1 -1
- package/dist/views/HierarchyList/HierarchyTable/ChildNameCell.d.ts.map +1 -1
- package/dist/views/HierarchyList/HierarchyTable/ChildNameCell.js +11 -10
- package/dist/views/HierarchyList/HierarchyTable/ChildNameCell.js.map +1 -1
- package/dist/views/HierarchyList/HierarchyTable/SlotTable.d.ts.map +1 -1
- package/dist/views/HierarchyList/HierarchyTable/SlotTable.js +3 -6
- package/dist/views/HierarchyList/HierarchyTable/SlotTable.js.map +1 -1
- package/dist/views/HierarchyList/HierarchyTable/index.css +51 -0
- package/dist/views/HierarchyList/HierarchyTable/index.d.ts +13 -1
- package/dist/views/HierarchyList/HierarchyTable/index.d.ts.map +1 -1
- package/dist/views/HierarchyList/HierarchyTable/index.js +156 -38
- package/dist/views/HierarchyList/HierarchyTable/index.js.map +1 -1
- package/dist/views/HierarchyList/HierarchyTable/types.d.ts +6 -0
- package/dist/views/HierarchyList/HierarchyTable/types.d.ts.map +1 -1
- package/dist/views/HierarchyList/HierarchyTable/types.js.map +1 -1
- package/dist/views/HierarchyList/index.d.ts.map +1 -1
- package/dist/views/HierarchyList/index.js +103 -20
- package/dist/views/HierarchyList/index.js.map +1 -1
- package/dist/views/List/ListHeader/index.d.ts +1 -10
- package/dist/views/List/ListHeader/index.d.ts.map +1 -1
- package/dist/views/List/ListHeader/index.js +1 -3
- package/dist/views/List/ListHeader/index.js.map +1 -1
- package/dist/views/List/ListSelection/index.d.ts.map +1 -1
- package/dist/views/List/ListSelection/index.js +138 -122
- package/dist/views/List/ListSelection/index.js.map +1 -1
- package/dist/views/List/handleHierarchy.d.ts +6 -1
- package/dist/views/List/handleHierarchy.d.ts.map +1 -1
- package/dist/views/List/handleHierarchy.js +34 -3
- package/dist/views/List/handleHierarchy.js.map +1 -1
- package/dist/views/List/index.client.d.ts.map +1 -1
- package/dist/views/List/index.client.js +128 -18
- package/dist/views/List/index.client.js.map +1 -1
- package/dist/views/List/index.css +5 -0
- package/dist/views/List/index.d.ts.map +1 -1
- package/dist/views/List/index.js +27 -16
- package/dist/views/List/index.js.map +1 -1
- package/dist/views/Root/getCustomCollectionViewByRoute.d.ts.map +1 -1
- package/dist/views/Root/getCustomCollectionViewByRoute.js.map +1 -1
- package/dist/views/Root/getCustomGlobalViewByRoute.d.ts.map +1 -1
- package/dist/views/Root/getCustomGlobalViewByRoute.js.map +1 -1
- package/dist/views/Root/getCustomViewByKey.d.ts.map +1 -1
- package/dist/views/Root/getCustomViewByKey.js.map +1 -1
- package/dist/views/Root/getRouteData.d.ts.map +1 -1
- package/dist/views/Root/getRouteData.js +8 -2
- package/dist/views/Root/getRouteData.js.map +1 -1
- package/dist/views/Root/index.d.ts.map +1 -1
- package/dist/views/Root/index.js +1 -0
- package/dist/views/Root/index.js.map +1 -1
- package/dist/views/Version/generateVersionViewMetadata.js.map +1 -1
- package/dist/views/Versions/generateVersionsViewMetadata.js.map +1 -1
- package/package.json +4 -4
- package/dist/elements/Hierarchy/Field/SelectedHierarchies.css +0 -36
- package/dist/elements/Hierarchy/Field/SelectedHierarchies.d.ts +0 -13
- package/dist/elements/Hierarchy/Field/SelectedHierarchies.d.ts.map +0 -1
- package/dist/elements/Hierarchy/Field/SelectedHierarchies.js +0 -141
- package/dist/elements/Hierarchy/Field/SelectedHierarchies.js.map +0 -1
|
@@ -9,7 +9,7 @@ import { Banner } from '../../elements/Banner/index.js';
|
|
|
9
9
|
import { Button } from '../../elements/Button/index.js';
|
|
10
10
|
import { clipboardCopy, clipboardPaste } from '../../elements/ClipboardAction/clipboardUtilities.js';
|
|
11
11
|
import { ClipboardAction } from '../../elements/ClipboardAction/index.js';
|
|
12
|
-
import { mergeFormStateFromClipboard, reduceFormStateByPath } from '../../elements/ClipboardAction/mergeFormStateFromClipboard.js';
|
|
12
|
+
import { insertRowFromClipboard, mergeFormStateFromClipboard, reduceFormStateByPath } from '../../elements/ClipboardAction/mergeFormStateFromClipboard.js';
|
|
13
13
|
import { CollapseAllToggle } from '../../elements/CollapseAllToggle/index.js';
|
|
14
14
|
import { DraggableSortableItem } from '../../elements/DraggableSortable/DraggableSortableItem/index.js';
|
|
15
15
|
import { DragOverlayPreview } from '../../elements/DraggableSortable/DragOverlayPreview/index.js';
|
|
@@ -283,16 +283,43 @@ const BlocksFieldComponent = props => {
|
|
|
283
283
|
toast.error(clipboardResult_0);
|
|
284
284
|
}
|
|
285
285
|
}, [clientBlocks, getFields, path, replaceState, setModified, t]);
|
|
286
|
-
const
|
|
287
|
-
const
|
|
286
|
+
const pasteRowBelow = useCallback(rowIndex_4 => {
|
|
287
|
+
const pasteArgs_0 = {
|
|
288
|
+
onPaste: dataFromClipboard_0 => {
|
|
289
|
+
const formState_0 = {
|
|
290
|
+
...getFields()
|
|
291
|
+
};
|
|
292
|
+
const newState_0 = insertRowFromClipboard({
|
|
293
|
+
dataFromClipboard: dataFromClipboard_0,
|
|
294
|
+
formState: formState_0,
|
|
295
|
+
path,
|
|
296
|
+
rowIndex: rowIndex_4 + 1
|
|
297
|
+
});
|
|
298
|
+
replaceState(newState_0);
|
|
299
|
+
setModified(true);
|
|
300
|
+
setTimeout(() => {
|
|
301
|
+
scrollToID(`${path?.split('.').join('-')}-row-${rowIndex_4 + 1}`);
|
|
302
|
+
}, 0);
|
|
303
|
+
},
|
|
304
|
+
path,
|
|
305
|
+
schemaBlocks: clientBlocks,
|
|
306
|
+
t
|
|
307
|
+
};
|
|
308
|
+
const clipboardResult_1 = clipboardPaste(pasteArgs_0);
|
|
309
|
+
if (typeof clipboardResult_1 === 'string') {
|
|
310
|
+
toast.error(clipboardResult_1);
|
|
311
|
+
}
|
|
312
|
+
}, [clientBlocks, getFields, path, replaceState, setModified, t]);
|
|
313
|
+
const pasteBlocks = useCallback(dataFromClipboard_1 => {
|
|
314
|
+
const formState_1 = {
|
|
288
315
|
...getFields()
|
|
289
316
|
};
|
|
290
|
-
const
|
|
291
|
-
dataFromClipboard:
|
|
292
|
-
formState:
|
|
317
|
+
const newState_1 = mergeFormStateFromClipboard({
|
|
318
|
+
dataFromClipboard: dataFromClipboard_1,
|
|
319
|
+
formState: formState_1,
|
|
293
320
|
path
|
|
294
321
|
});
|
|
295
|
-
replaceState(
|
|
322
|
+
replaceState(newState_1);
|
|
296
323
|
setModified(true);
|
|
297
324
|
}, [getFields, path, replaceState, setModified]);
|
|
298
325
|
const hasMaxRows = maxRows && rows.length >= maxRows;
|
|
@@ -448,6 +475,7 @@ const BlocksFieldComponent = props => {
|
|
|
448
475
|
moveRow: moveRow,
|
|
449
476
|
parentPath: path,
|
|
450
477
|
pasteRow: pasteRow,
|
|
478
|
+
pasteRowBelow: pasteRowBelow,
|
|
451
479
|
path: rowPath,
|
|
452
480
|
permissions: permissions,
|
|
453
481
|
readOnly: readOnly || disabled,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["verticalListSortingStrategy","getTranslation","React","Fragment","useCallback","useMemo","toast","Banner","Button","clipboardCopy","clipboardPaste","ClipboardAction","mergeFormStateFromClipboard","reduceFormStateByPath","CollapseAllToggle","DraggableSortableItem","DragOverlayPreview","DraggableSortable","DrawerToggler","useDrawerSlug","ErrorPill","Pill","RenderCustomComponent","useForm","useFormSubmitted","extractRowsAndCollapsedIDs","toggleAllRows","NullifyLocaleField","RowLabel","useField","withCondition","CirclePlusIcon","useConfig","useDocumentInfo","useLocale","useTranslation","scrollToID","FieldDescription","FieldError","FieldLabel","mergeFieldStyles","fieldBaseClass","BlockRow","BlocksDrawer","baseClass","BlocksFieldComponent","props","i18n","t","field","name","type","admin","className","description","isSortable","blocks","label","labels","labelsFromProps","localized","maxRows","minRows","minRowsProp","required","path","pathFromProps","permissions","readOnly","schemaPath","schemaPathFromProps","validate","setDocFieldPreferences","addFieldRow","dispatchFields","getFields","moveFieldRow","removeFieldRow","replaceState","setModified","code","locale","config","localization","drawerSlug","submitted","plural","singular","editingDefaultLocale","fallback","defaultLocale","memoizedValidate","value","options","blocksFilterOptions","customComponents","AfterInput","BeforeInput","Description","Error","Label","disabled","errorPaths","rows","showError","valid","hasRows","potentiallyStalePath","clientBlocks","clientBlocksAfterFilter","resolvedBlocks","blockOrSlug","block","blocksMap","push","Array","isArray","filter","blockSlug","slug","includes","getBlockConfig","blockType","find","addRow","rowIndex","setTimeout","duplicateRow","removeRow","moveRow","moveFromIndex","moveToIndex","toggleCollapseAll","collapsed","collapsedIDs","updatedRows","setCollapse","rowID","copyRow","clipboardResult","getDataToCopy","formState","error","success","pasteRow","pasteArgs","onPaste","dataFromClipboard","newState","schemaBlocks","pasteBlocks","hasMaxRows","length","fieldErrorCount","fieldHasErrors","displayedErrorCount","showMinRows","showRequired","shouldShowSummaryBanner","shouldShowFieldError","styles","renderDragOverlay","activeId","activeIndex","findIndex","row","id","activeRow","blockConfig","showBlockName","disableBlockName","blockName","undefined","_jsx","header","CustomComponent","_jsxs","_Fragment","String","padStart","pillStyle","size","rowNumber","Boolean","join","replace","style","Fallback","as","count","withMessage","onClick","allowCopy","allowPaste","fieldValue","ids","map","onDragEnd","sortingStrategy","i","isLoading","rowPath","rowErrorCount","errorPath","startsWith","draggableSortableItemProps","errorCount","fields","parentPath","rowCount","buttonStyle","el","icon","iconPosition","addRowIndex","BlocksField"],"sources":["../../../src/fields/Blocks/index.tsx"],"sourcesContent":["'use client'\nimport type { BlocksFieldClientComponent, ClientBlock } from 'payload'\n\nimport { verticalListSortingStrategy } from '@dnd-kit/sortable'\nimport { getTranslation } from '@payloadcms/translations'\nimport React, { Fragment, useCallback, useMemo } from 'react'\nimport { toast } from 'sonner'\n\nimport type { ClipboardPasteData } from '../../elements/ClipboardAction/types.js'\n\nimport { Banner } from '../../elements/Banner/index.js'\nimport { Button } from '../../elements/Button/index.js'\nimport { clipboardCopy, clipboardPaste } from '../../elements/ClipboardAction/clipboardUtilities.js'\nimport { ClipboardAction } from '../../elements/ClipboardAction/index.js'\nimport {\n mergeFormStateFromClipboard,\n reduceFormStateByPath,\n} from '../../elements/ClipboardAction/mergeFormStateFromClipboard.js'\nimport { CollapseAllToggle } from '../../elements/CollapseAllToggle/index.js'\nimport { DraggableSortableItem } from '../../elements/DraggableSortable/DraggableSortableItem/index.js'\nimport { DragOverlayPreview } from '../../elements/DraggableSortable/DragOverlayPreview/index.js'\nimport { DraggableSortable } from '../../elements/DraggableSortable/index.js'\nimport { DrawerToggler } from '../../elements/Drawer/index.js'\nimport { useDrawerSlug } from '../../elements/Drawer/useDrawerSlug.js'\nimport { ErrorPill } from '../../elements/ErrorPill/index.js'\nimport { Pill } from '../../elements/Pill/index.js'\nimport { RenderCustomComponent } from '../../elements/RenderCustomComponent/index.js'\nimport { useForm, useFormSubmitted } from '../../forms/Form/context.js'\nimport { extractRowsAndCollapsedIDs, toggleAllRows } from '../../forms/Form/rowHelpers.js'\nimport { NullifyLocaleField } from '../../forms/NullifyField/index.js'\nimport { RowLabel } from '../../forms/RowLabel/index.js'\nimport { useField } from '../../forms/useField/index.js'\nimport { withCondition } from '../../forms/withCondition/index.js'\nimport { CirclePlusIcon } from '../../icons/CirclePlus/index.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useDocumentInfo } from '../../providers/DocumentInfo/index.js'\nimport { useLocale } from '../../providers/Locale/index.js'\nimport './index.css'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { scrollToID } from '../../utilities/scrollToID.js'\nimport { FieldDescription } from '../FieldDescription/index.js'\nimport { FieldError } from '../FieldError/index.js'\nimport { FieldLabel } from '../FieldLabel/index.js'\nimport { mergeFieldStyles } from '../mergeFieldStyles.js'\nimport { fieldBaseClass } from '../shared/index.js'\nimport { BlockRow } from './BlockRow.js'\nimport { BlocksDrawer } from './BlocksDrawer/index.js'\n\nconst baseClass = 'blocks-field'\n\nconst BlocksFieldComponent: BlocksFieldClientComponent = (props) => {\n const { i18n, t } = useTranslation()\n\n const {\n field,\n field: {\n name,\n type,\n admin: { className, description, isSortable = true } = {},\n blocks,\n label,\n labels: labelsFromProps,\n localized,\n maxRows,\n minRows: minRowsProp,\n required,\n },\n path: pathFromProps,\n permissions,\n readOnly,\n schemaPath: schemaPathFromProps,\n validate,\n } = props\n\n const schemaPath = schemaPathFromProps ?? name\n\n const minRows = minRowsProp ?? (required ? 1 : 0)\n\n const { setDocFieldPreferences } = useDocumentInfo()\n const {\n addFieldRow,\n dispatchFields,\n getFields,\n moveFieldRow,\n removeFieldRow,\n replaceState,\n setModified,\n } = useForm()\n const { code: locale } = useLocale()\n const {\n config: { localization },\n config,\n } = useConfig()\n const drawerSlug = useDrawerSlug('blocks-drawer')\n const submitted = useFormSubmitted()\n\n const labels = {\n plural: t('fields:blocks'),\n singular: t('fields:block'),\n ...labelsFromProps,\n }\n\n const editingDefaultLocale = (() => {\n if (localization && localization.fallback) {\n const defaultLocale = localization.defaultLocale\n return locale === defaultLocale\n }\n\n return true\n })()\n\n const memoizedValidate = useCallback(\n (value, options) => {\n // alternative locales can be null\n if (!editingDefaultLocale && value === null) {\n return true\n }\n if (typeof validate === 'function') {\n return validate(value, { ...options, maxRows, minRows, required })\n }\n },\n [maxRows, minRows, required, validate, editingDefaultLocale],\n )\n\n const {\n blocksFilterOptions,\n customComponents: { AfterInput, BeforeInput, Description, Error, Label } = {},\n disabled,\n errorPaths,\n path,\n rows = [],\n showError,\n valid,\n value,\n } = useField<number>({\n hasRows: true,\n potentiallyStalePath: pathFromProps,\n validate: memoizedValidate,\n })\n\n const { clientBlocks, clientBlocksAfterFilter } = useMemo(() => {\n const resolvedBlocks: ClientBlock[] = []\n\n for (const blockOrSlug of blocks) {\n const block = typeof blockOrSlug === 'string' ? config.blocksMap[blockOrSlug] : blockOrSlug\n if (block) {\n resolvedBlocks.push(block)\n }\n }\n\n if (Array.isArray(blocksFilterOptions)) {\n const clientBlocksAfterFilter = resolvedBlocks.filter((block) => {\n const blockSlug = typeof block === 'string' ? block : block.slug\n return blocksFilterOptions.includes(blockSlug)\n })\n\n return {\n clientBlocks: resolvedBlocks,\n clientBlocksAfterFilter,\n }\n }\n return {\n clientBlocks: resolvedBlocks,\n clientBlocksAfterFilter: resolvedBlocks,\n }\n }, [blocks, blocksFilterOptions, config.blocksMap])\n\n const getBlockConfig = (blockType: string): ClientBlock | undefined =>\n config.blocksMap[blockType] ?? clientBlocks.find((block) => block.slug === blockType)\n\n const addRow = useCallback(\n (rowIndex: number, blockType: string) => {\n addFieldRow({\n blockType,\n path,\n rowIndex,\n schemaPath,\n })\n\n setTimeout(() => {\n scrollToID(`${path}-row-${rowIndex + 1}`)\n }, 0)\n },\n [addFieldRow, path, schemaPath],\n )\n\n const duplicateRow = useCallback(\n (rowIndex: number) => {\n dispatchFields({ type: 'DUPLICATE_ROW', path, rowIndex })\n setModified(true)\n\n setTimeout(() => {\n scrollToID(`${path}-row-${rowIndex + 1}`)\n }, 0)\n },\n [dispatchFields, path, setModified],\n )\n\n const removeRow = useCallback(\n (rowIndex: number) => {\n removeFieldRow({\n path,\n rowIndex,\n })\n },\n [path, removeFieldRow],\n )\n\n const moveRow = useCallback(\n (moveFromIndex: number, moveToIndex: number) => {\n moveFieldRow({ moveFromIndex, moveToIndex, path })\n },\n [moveFieldRow, path],\n )\n\n const toggleCollapseAll = useCallback(\n (collapsed: boolean) => {\n const { collapsedIDs, updatedRows } = toggleAllRows({\n collapsed,\n rows,\n })\n\n dispatchFields({ type: 'SET_ALL_ROWS_COLLAPSED', path, updatedRows })\n setDocFieldPreferences(path, { collapsed: collapsedIDs })\n },\n [dispatchFields, path, rows, setDocFieldPreferences],\n )\n\n const setCollapse = useCallback(\n (rowID: string, collapsed: boolean) => {\n const { collapsedIDs, updatedRows } = extractRowsAndCollapsedIDs({\n collapsed,\n rowID,\n rows,\n })\n\n dispatchFields({ type: 'SET_ROW_COLLAPSED', path, updatedRows })\n setDocFieldPreferences(path, { collapsed: collapsedIDs })\n },\n [dispatchFields, path, rows, setDocFieldPreferences],\n )\n\n const copyRow = useCallback(\n (rowIndex: number) => {\n const clipboardResult = clipboardCopy({\n type,\n blocks: clientBlocks,\n getDataToCopy: () =>\n reduceFormStateByPath({\n formState: { ...getFields() },\n path,\n rowIndex,\n }),\n path,\n rowIndex,\n t,\n })\n\n if (typeof clipboardResult === 'string') {\n toast.error(clipboardResult)\n } else {\n toast.success(t('general:copied'))\n }\n },\n [clientBlocks, path, t, type, getFields],\n )\n\n const pasteRow = useCallback(\n (rowIndex: number) => {\n const pasteArgs = {\n onPaste: (dataFromClipboard: ClipboardPasteData) => {\n const formState = { ...getFields() }\n const newState = mergeFormStateFromClipboard({\n dataFromClipboard,\n formState,\n path,\n rowIndex,\n })\n replaceState(newState)\n setModified(true)\n },\n path,\n schemaBlocks: clientBlocks,\n t,\n }\n\n const clipboardResult = clipboardPaste(pasteArgs)\n\n if (typeof clipboardResult === 'string') {\n toast.error(clipboardResult)\n }\n },\n [clientBlocks, getFields, path, replaceState, setModified, t],\n )\n\n const pasteBlocks = useCallback(\n (dataFromClipboard: ClipboardPasteData) => {\n const formState = { ...getFields() }\n const newState = mergeFormStateFromClipboard({\n dataFromClipboard,\n formState,\n path,\n })\n replaceState(newState)\n setModified(true)\n },\n [getFields, path, replaceState, setModified],\n )\n\n const hasMaxRows = maxRows && rows.length >= maxRows\n\n const fieldErrorCount = errorPaths.length\n const fieldHasErrors = submitted && fieldErrorCount + (valid ? 0 : 1) > 0\n const displayedErrorCount = fieldErrorCount > 0 ? fieldErrorCount : fieldHasErrors ? 1 : 0\n\n const showMinRows = rows.length < minRows || (required && rows.length === 0)\n const showRequired = readOnly && rows.length === 0\n const shouldShowSummaryBanner = !valid && (showRequired || showMinRows)\n const shouldShowFieldError = showError && !shouldShowSummaryBanner\n\n const styles = useMemo(() => mergeFieldStyles(field), [field])\n\n const renderDragOverlay = useCallback(\n (activeId: number | string) => {\n const activeIndex = rows.findIndex((row) => row.id === activeId)\n if (activeIndex === -1) {\n return null\n }\n\n const activeRow = rows[activeIndex]\n const blockConfig = getBlockConfig(activeRow.blockType)\n\n if (!blockConfig) {\n return null\n }\n\n const showBlockName = !blockConfig.admin?.disableBlockName\n const blockName = showBlockName\n ? (getFields()?.[`${path}.${activeIndex}.blockName`]?.value as string)\n : undefined\n\n return (\n <DragOverlayPreview\n header={\n <div className={`${baseClass}__block-header`}>\n <RowLabel\n CustomComponent={rows?.[activeIndex]?.customComponents?.RowLabel}\n label={\n <>\n <span className={`${baseClass}__block-number`}>\n {String(activeIndex + 1).padStart(2, '0')}\n </span>\n <Pill\n className={`${baseClass}__block-pill ${baseClass}__block-pill-${activeRow.blockType}`}\n pillStyle=\"white\"\n size=\"small\"\n >\n {getTranslation(blockConfig.labels.singular, i18n)}\n </Pill>\n {blockName && <span className=\"section-title__text\">{blockName}</span>}\n </>\n }\n path={`${path}.${activeIndex}`}\n rowNumber={activeIndex}\n />\n </div>\n }\n />\n )\n },\n [rows, config.blocksMap, clientBlocks, i18n, path, getFields],\n )\n\n return (\n <div\n className={[\n fieldBaseClass,\n baseClass,\n className,\n fieldHasErrors ? `${baseClass}--has-error` : `${baseClass}--has-no-error`,\n ]\n .filter(Boolean)\n .join(' ')}\n id={`field-${path?.replace(/\\./g, '__')}`}\n style={styles}\n >\n {shouldShowFieldError && (\n <RenderCustomComponent\n CustomComponent={Error}\n Fallback={<FieldError path={path} showError={showError} />}\n />\n )}\n <header className={`${baseClass}__header`}>\n <div className={`${baseClass}__header-wrap`}>\n <div className={`${baseClass}__header-content`}>\n <h3 className={`${baseClass}__title`}>\n <RenderCustomComponent\n CustomComponent={Label}\n Fallback={\n <FieldLabel\n as=\"span\"\n label={label}\n localized={localized}\n path={path}\n required={required}\n />\n }\n />\n </h3>\n {displayedErrorCount > 0 && (\n <ErrorPill count={displayedErrorCount} i18n={i18n} withMessage />\n )}\n </div>\n <ul className={`${baseClass}__header-actions`}>\n {rows.length > 0 && <CollapseAllToggle onClick={toggleCollapseAll} />}\n <li>\n <ClipboardAction\n allowCopy={rows?.length > 0}\n allowPaste={!readOnly}\n blocks={clientBlocks}\n className={`${baseClass}__header-action`}\n disabled={disabled}\n getDataToCopy={() =>\n reduceFormStateByPath({\n formState: { ...getFields() },\n path,\n })\n }\n onPaste={pasteBlocks}\n path={path}\n type={type}\n />\n </li>\n </ul>\n </div>\n <RenderCustomComponent\n CustomComponent={Description}\n Fallback={<FieldDescription description={description} path={path} />}\n />\n </header>\n {BeforeInput}\n <NullifyLocaleField\n fieldValue={value}\n localized={localized}\n path={path}\n readOnly={readOnly}\n />\n {(rows.length > 0 || (!valid && (showRequired || showMinRows))) && (\n <DraggableSortable\n className={`${baseClass}__rows`}\n ids={rows.map((row) => row.id)}\n onDragEnd={({ moveFromIndex, moveToIndex }) => moveRow(moveFromIndex, moveToIndex)}\n renderDragOverlay={isSortable && !readOnly && !disabled ? renderDragOverlay : undefined}\n sortingStrategy={verticalListSortingStrategy}\n >\n {rows.map((row, i) => {\n const { blockType, isLoading } = row\n\n const blockConfig = getBlockConfig(blockType)\n\n if (blockConfig) {\n const rowPath = `${path}.${i}`\n\n const rowErrorCount = errorPaths.filter((errorPath) =>\n errorPath.startsWith(rowPath + '.'),\n ).length\n\n return (\n <DraggableSortableItem\n disabled={readOnly || disabled || !isSortable}\n id={row.id}\n key={row.id}\n >\n {(draggableSortableItemProps) => (\n <BlockRow\n {...draggableSortableItemProps}\n addRow={addRow}\n block={blockConfig}\n // Pass all blocks, not just clientBlocksAfterFilter, as existing blocks should still be displayed even if they don't match the new filter\n blocks={clientBlocks}\n copyRow={copyRow}\n duplicateRow={duplicateRow}\n errorCount={rowErrorCount}\n fields={blockConfig.fields}\n hasMaxRows={hasMaxRows}\n isLoading={isLoading}\n isSortable={isSortable}\n Label={rows?.[i]?.customComponents?.RowLabel}\n labels={labels}\n moveRow={moveRow}\n parentPath={path}\n pasteRow={pasteRow}\n path={rowPath}\n permissions={permissions}\n readOnly={readOnly || disabled}\n removeRow={removeRow}\n row={row}\n rowCount={rows.length}\n rowIndex={i}\n schemaPath={schemaPath + blockConfig.slug}\n setCollapse={setCollapse}\n />\n )}\n </DraggableSortableItem>\n )\n }\n\n return null\n })}\n {!valid && (\n <React.Fragment>\n {showMinRows && (\n <Banner type=\"danger\">\n {t('validation:requiresAtLeast', {\n count: minRows,\n label:\n getTranslation(minRows > 1 ? labels.plural : labels.singular, i18n) ||\n t(minRows > 1 ? 'general:row' : 'general:rows'),\n })}\n </Banner>\n )}\n {showRequired && (\n <Banner>\n {t('validation:fieldHasNo', { label: getTranslation(labels.plural, i18n) })}\n </Banner>\n )}\n </React.Fragment>\n )}\n </DraggableSortable>\n )}\n {!hasMaxRows && !readOnly && (\n <Fragment>\n <DrawerToggler\n className={`${baseClass}__drawer-toggler`}\n disabled={disabled}\n slug={drawerSlug}\n >\n <Button\n buttonStyle=\"ghost\"\n disabled={disabled}\n el=\"span\"\n icon={<CirclePlusIcon />}\n iconPosition=\"left\"\n >\n {t('fields:addLabel', { label: getTranslation(labels.singular, i18n) })}\n </Button>\n </DrawerToggler>\n <BlocksDrawer\n addRow={addRow}\n addRowIndex={rows?.length || 0}\n // Only allow choosing filtered blocks\n blocks={clientBlocksAfterFilter}\n drawerSlug={drawerSlug}\n labels={labels}\n />\n </Fragment>\n )}\n {AfterInput}\n </div>\n )\n}\n\nexport const BlocksField = withCondition(BlocksFieldComponent)\n"],"mappings":"AAAA;;;AAGA,SAASA,2BAA2B,QAAQ;AAC5C,SAASC,cAAc,QAAQ;AAC/B,OAAOC,KAAA,IAASC,QAAQ,EAAEC,WAAW,EAAEC,OAAO,QAAQ;AACtD,SAASC,KAAK,QAAQ;AAItB,SAASC,MAAM,QAAQ;AACvB,SAASC,MAAM,QAAQ;AACvB,SAASC,aAAa,EAAEC,cAAc,QAAQ;AAC9C,SAASC,eAAe,QAAQ;AAChC,SACEC,2BAA2B,EAC3BC,qBAAqB,QAChB;AACP,SAASC,iBAAiB,QAAQ;AAClC,SAASC,qBAAqB,QAAQ;AACtC,SAASC,kBAAkB,QAAQ;AACnC,SAASC,iBAAiB,QAAQ;AAClC,SAASC,aAAa,QAAQ;AAC9B,SAASC,aAAa,QAAQ;AAC9B,SAASC,SAAS,QAAQ;AAC1B,SAASC,IAAI,QAAQ;AACrB,SAASC,qBAAqB,QAAQ;AACtC,SAASC,OAAO,EAAEC,gBAAgB,QAAQ;AAC1C,SAASC,0BAA0B,EAAEC,aAAa,QAAQ;AAC1D,SAASC,kBAAkB,QAAQ;AACnC,SAASC,QAAQ,QAAQ;AACzB,SAASC,QAAQ,QAAQ;AACzB,SAASC,aAAa,QAAQ;AAC9B,SAASC,cAAc,QAAQ;AAC/B,SAASC,SAAS,QAAQ;AAC1B,SAASC,eAAe,QAAQ;AAChC,SAASC,SAAS,QAAQ;AAC1B,OAAO;AACP,SAASC,cAAc,QAAQ;AAC/B,SAASC,UAAU,QAAQ;AAC3B,SAASC,gBAAgB,QAAQ;AACjC,SAASC,UAAU,QAAQ;AAC3B,SAASC,UAAU,QAAQ;AAC3B,SAASC,gBAAgB,QAAQ;AACjC,SAASC,cAAc,QAAQ;AAC/B,SAASC,QAAQ,QAAQ;AACzB,SAASC,YAAY,QAAQ;AAE7B,MAAMC,SAAA,GAAY;AAElB,MAAMC,oBAAA,GAAoDC,KAAA;EACxD,MAAM;IAAEC,IAAI;IAAEC;EAAC,CAAE,GAAGb,cAAA;EAEpB,MAAM;IACJc,KAAK;IACLA,KAAA,EAAO;MACLC,IAAI;MACJC,IAAI;MACJC,KAAA,EAAO;QAAEC,SAAS;QAAEC,WAAW;QAAEC,UAAA,GAAa;MAAI,CAAE,GAAG,CAAC,CAAC;MACzDC,MAAM;MACNC,KAAK;MACLC,MAAA,EAAQC,eAAe;MACvBC,SAAS;MACTC,OAAO;MACPC,OAAA,EAASC,WAAW;MACpBC;IAAQ,CACT;IACDC,IAAA,EAAMC,aAAa;IACnBC,WAAW;IACXC,QAAQ;IACRC,UAAA,EAAYC,mBAAmB;IAC/BC;EAAQ,CACT,GAAGzB,KAAA;EAEJ,MAAMuB,UAAA,GAAaC,mBAAA,IAAuBpB,IAAA;EAE1C,MAAMY,OAAA,GAAUC,WAAA,KAAgBC,QAAA,GAAW,IAAI;EAE/C,MAAM;IAAEQ;EAAsB,CAAE,GAAGvC,eAAA;EACnC,MAAM;IACJwC,WAAW;IACXC,cAAc;IACdC,SAAS;IACTC,YAAY;IACZC,cAAc;IACdC,YAAY;IACZC;EAAW,CACZ,GAAGxD,OAAA;EACJ,MAAM;IAAEyD,IAAA,EAAMC;EAAM,CAAE,GAAG/C,SAAA;EACzB,MAAM;IACJgD,MAAA,EAAQ;MAAEC;IAAY,CAAE;IACxBD;EAAM,CACP,GAAGlD,SAAA;EACJ,MAAMoD,UAAA,GAAajE,aAAA,CAAc;EACjC,MAAMkE,SAAA,GAAY7D,gBAAA;EAElB,MAAMkC,MAAA,GAAS;IACb4B,MAAA,EAAQtC,CAAA,CAAE;IACVuC,QAAA,EAAUvC,CAAA,CAAE;IACZ,GAAGW;EACL;EAEA,MAAM6B,oBAAA,GAAuB,CAAC;IAC5B,IAAIL,YAAA,IAAgBA,YAAA,CAAaM,QAAQ,EAAE;MACzC,MAAMC,aAAA,GAAgBP,YAAA,CAAaO,aAAa;MAChD,OAAOT,MAAA,KAAWS,aAAA;IACpB;IAEA,OAAO;EACT;EAEA,MAAMC,gBAAA,GAAmBvF,WAAA,CACvB,CAACwF,KAAA,EAAOC,OAAA;IACN;IACA,IAAI,CAACL,oBAAA,IAAwBI,KAAA,KAAU,MAAM;MAC3C,OAAO;IACT;IACA,IAAI,OAAOrB,QAAA,KAAa,YAAY;MAClC,OAAOA,QAAA,CAASqB,KAAA,EAAO;QAAE,GAAGC,OAAO;QAAEhC,OAAA;QAASC,OAAA;QAASE;MAAS;IAClE;EACF,GACA,CAACH,OAAA,EAASC,OAAA,EAASE,QAAA,EAAUO,QAAA,EAAUiB,oBAAA,CAAqB;EAG9D,MAAM;IACJM,mBAAmB;IACnBC,gBAAA,EAAkB;MAAEC,UAAU;MAAEC,WAAW;MAAEC,WAAW;MAAEC,KAAK;MAAEC;IAAK,CAAE,GAAG,CAAC,CAAC;IAC7EC,QAAQ;IACRC,UAAU;IACVrC,IAAI;IACJsC,IAAA,GAAO,EAAE;IACTC,SAAS;IACTC,KAAK;IACLb,KAAK,EAALA;EAAK,CACN,GAAG/D,QAAA,CAAiB;IACnB6E,OAAA,EAAS;IACTC,oBAAA,EAAsBzC,aAAA;IACtBK,QAAA,EAAUoB;EACZ;EAEA,MAAM;IAAEiB,YAAY;IAAEC,uBAAuB,EAAvBA;EAAuB,CAAE,GAAGxG,OAAA,CAAQ;IACxD,MAAMyG,cAAA,GAAgC,EAAE;IAExC,KAAK,MAAMC,WAAA,IAAevD,MAAA,EAAQ;MAChC,MAAMwD,KAAA,GAAQ,OAAOD,WAAA,KAAgB,WAAW7B,MAAA,CAAO+B,SAAS,CAACF,WAAA,CAAY,GAAGA,WAAA;MAChF,IAAIC,KAAA,EAAO;QACTF,cAAA,CAAeI,IAAI,CAACF,KAAA;MACtB;IACF;IAEA,IAAIG,KAAA,CAAMC,OAAO,CAACtB,mBAAA,GAAsB;MACtC,MAAMe,uBAAA,GAA0BC,cAAA,CAAeO,MAAM,CAAEL,OAAA;QACrD,MAAMM,SAAA,GAAY,OAAON,OAAA,KAAU,WAAWA,OAAA,GAAQA,OAAA,CAAMO,IAAI;QAChE,OAAOzB,mBAAA,CAAoB0B,QAAQ,CAACF,SAAA;MACtC;MAEA,OAAO;QACLV,YAAA,EAAcE,cAAA;QACdD;MACF;IACF;IACA,OAAO;MACLD,YAAA,EAAcE,cAAA;MACdD,uBAAA,EAAyBC;IAC3B;EACF,GAAG,CAACtD,MAAA,EAAQsC,mBAAA,EAAqBZ,MAAA,CAAO+B,SAAS,CAAC;EAElD,MAAMQ,cAAA,GAAkBC,SAAA,IACtBxC,MAAA,CAAO+B,SAAS,CAACS,SAAA,CAAU,IAAId,YAAA,CAAae,IAAI,CAAEX,OAAA,IAAUA,OAAA,CAAMO,IAAI,KAAKG,SAAA;EAE7E,MAAME,MAAA,GAASxH,WAAA,CACb,CAACyH,QAAA,EAAkBH,WAAA;IACjBjD,WAAA,CAAY;MACViD,SAAA,EAAAA,WAAA;MACAzD,IAAA;MACA4D,QAAA;MACAxD;IACF;IAEAyD,UAAA,CAAW;MACT1F,UAAA,CAAW,GAAG6B,IAAA,QAAY4D,QAAA,GAAW,GAAG;IAC1C,GAAG;EACL,GACA,CAACpD,WAAA,EAAaR,IAAA,EAAMI,UAAA,CAAW;EAGjC,MAAM0D,YAAA,GAAe3H,WAAA,CAClByH,UAAA;IACCnD,cAAA,CAAe;MAAEvB,IAAA,EAAM;MAAiBc,IAAA;MAAM4D,QAAA,EAAAA;IAAS;IACvD9C,WAAA,CAAY;IAEZ+C,UAAA,CAAW;MACT1F,UAAA,CAAW,GAAG6B,IAAA,QAAY4D,UAAA,GAAW,GAAG;IAC1C,GAAG;EACL,GACA,CAACnD,cAAA,EAAgBT,IAAA,EAAMc,WAAA,CAAY;EAGrC,MAAMiD,SAAA,GAAY5H,WAAA,CACfyH,UAAA;IACChD,cAAA,CAAe;MACbZ,IAAA;MACA4D,QAAA,EAAAA;IACF;EACF,GACA,CAAC5D,IAAA,EAAMY,cAAA,CAAe;EAGxB,MAAMoD,OAAA,GAAU7H,WAAA,CACd,CAAC8H,aAAA,EAAuBC,WAAA;IACtBvD,YAAA,CAAa;MAAEsD,aAAA;MAAeC,WAAA;MAAalE;IAAK;EAClD,GACA,CAACW,YAAA,EAAcX,IAAA,CAAK;EAGtB,MAAMmE,iBAAA,GAAoBhI,WAAA,CACvBiI,SAAA;IACC,MAAM;MAAEC,YAAY;MAAEC;IAAW,CAAE,GAAG7G,aAAA,CAAc;MAClD2G,SAAA;MACA9B;IACF;IAEA7B,cAAA,CAAe;MAAEvB,IAAA,EAAM;MAA0Bc,IAAA;MAAMsE;IAAY;IACnE/D,sBAAA,CAAuBP,IAAA,EAAM;MAAEoE,SAAA,EAAWC;IAAa;EACzD,GACA,CAAC5D,cAAA,EAAgBT,IAAA,EAAMsC,IAAA,EAAM/B,sBAAA,CAAuB;EAGtD,MAAMgE,WAAA,GAAcpI,WAAA,CAClB,CAACqI,KAAA,EAAeJ,WAAA;IACd,MAAM;MAAEC,YAAY,EAAZA,cAAY;MAAEC,WAAW,EAAXA;IAAW,CAAE,GAAG9G,0BAAA,CAA2B;MAC/D4G,SAAA,EAAAA,WAAA;MACAI,KAAA;MACAlC;IACF;IAEA7B,cAAA,CAAe;MAAEvB,IAAA,EAAM;MAAqBc,IAAA;MAAMsE,WAAA,EAAAA;IAAY;IAC9D/D,sBAAA,CAAuBP,IAAA,EAAM;MAAEoE,SAAA,EAAWC;IAAa;EACzD,GACA,CAAC5D,cAAA,EAAgBT,IAAA,EAAMsC,IAAA,EAAM/B,sBAAA,CAAuB;EAGtD,MAAMkE,OAAA,GAAUtI,WAAA,CACbyH,UAAA;IACC,MAAMc,eAAA,GAAkBlI,aAAA,CAAc;MACpC0C,IAAA;MACAK,MAAA,EAAQoD,YAAA;MACRgC,aAAA,EAAeA,CAAA,KACb/H,qBAAA,CAAsB;QACpBgI,SAAA,EAAW;UAAE,GAAGlE,SAAA;QAAY;QAC5BV,IAAA;QACA4D,QAAA,EAAAA;MACF;MACF5D,IAAA;MACA4D,QAAA,EAAAA,UAAA;MACA7E;IACF;IAEA,IAAI,OAAO2F,eAAA,KAAoB,UAAU;MACvCrI,KAAA,CAAMwI,KAAK,CAACH,eAAA;IACd,OAAO;MACLrI,KAAA,CAAMyI,OAAO,CAAC/F,CAAA,CAAE;IAClB;EACF,GACA,CAAC4D,YAAA,EAAc3C,IAAA,EAAMjB,CAAA,EAAGG,IAAA,EAAMwB,SAAA,CAAU;EAG1C,MAAMqE,QAAA,GAAW5I,WAAA,CACdyH,UAAA;IACC,MAAMoB,SAAA,GAAY;MAChBC,OAAA,EAAUC,iBAAA;QACR,MAAMN,SAAA,GAAY;UAAE,GAAGlE,SAAA;QAAY;QACnC,MAAMyE,QAAA,GAAWxI,2BAAA,CAA4B;UAC3CuI,iBAAA;UACAN,SAAA;UACA5E,IAAA;UACA4D,QAAA,EAAAA;QACF;QACA/C,YAAA,CAAasE,QAAA;QACbrE,WAAA,CAAY;MACd;MACAd,IAAA;MACAoF,YAAA,EAAczC,YAAA;MACd5D;IACF;IAEA,MAAM2F,iBAAA,GAAkBjI,cAAA,CAAeuI,SAAA;IAEvC,IAAI,OAAON,iBAAA,KAAoB,UAAU;MACvCrI,KAAA,CAAMwI,KAAK,CAACH,iBAAA;IACd;EACF,GACA,CAAC/B,YAAA,EAAcjC,SAAA,EAAWV,IAAA,EAAMa,YAAA,EAAcC,WAAA,EAAa/B,CAAA,CAAE;EAG/D,MAAMsG,WAAA,GAAclJ,WAAA,CACjB+I,mBAAA;IACC,MAAMN,WAAA,GAAY;MAAE,GAAGlE,SAAA;IAAY;IACnC,MAAMyE,UAAA,GAAWxI,2BAAA,CAA4B;MAC3CuI,iBAAA,EAAAA,mBAAA;MACAN,SAAA,EAAAA,WAAA;MACA5E;IACF;IACAa,YAAA,CAAasE,UAAA;IACbrE,WAAA,CAAY;EACd,GACA,CAACJ,SAAA,EAAWV,IAAA,EAAMa,YAAA,EAAcC,WAAA,CAAY;EAG9C,MAAMwE,UAAA,GAAa1F,OAAA,IAAW0C,IAAA,CAAKiD,MAAM,IAAI3F,OAAA;EAE7C,MAAM4F,eAAA,GAAkBnD,UAAA,CAAWkD,MAAM;EACzC,MAAME,cAAA,GAAiBrE,SAAA,IAAaoE,eAAA,IAAmBhD,KAAA,GAAQ,IAAI,KAAK;EACxE,MAAMkD,mBAAA,GAAsBF,eAAA,GAAkB,IAAIA,eAAA,GAAkBC,cAAA,GAAiB,IAAI;EAEzF,MAAME,WAAA,GAAcrD,IAAA,CAAKiD,MAAM,GAAG1F,OAAA,IAAYE,QAAA,IAAYuC,IAAA,CAAKiD,MAAM,KAAK;EAC1E,MAAMK,YAAA,GAAezF,QAAA,IAAYmC,IAAA,CAAKiD,MAAM,KAAK;EACjD,MAAMM,uBAAA,GAA0B,CAACrD,KAAA,KAAUoD,YAAA,IAAgBD,WAAU;EACrE,MAAMG,oBAAA,GAAuBvD,SAAA,IAAa,CAACsD,uBAAA;EAE3C,MAAME,MAAA,GAAS3J,OAAA,CAAQ,MAAMmC,gBAAA,CAAiBS,KAAA,GAAQ,CAACA,KAAA,CAAM;EAE7D,MAAMgH,iBAAA,GAAoB7J,WAAA,CACvB8J,QAAA;IACC,MAAMC,WAAA,GAAc5D,IAAA,CAAK6D,SAAS,CAAEC,GAAA,IAAQA,GAAA,CAAIC,EAAE,KAAKJ,QAAA;IACvD,IAAIC,WAAA,KAAgB,CAAC,GAAG;MACtB,OAAO;IACT;IAEA,MAAMI,SAAA,GAAYhE,IAAI,CAAC4D,WAAA,CAAY;IACnC,MAAMK,WAAA,GAAc/C,cAAA,CAAe8C,SAAA,CAAU7C,SAAS;IAEtD,IAAI,CAAC8C,WAAA,EAAa;MAChB,OAAO;IACT;IAEA,MAAMC,aAAA,GAAgB,CAACD,WAAA,CAAYpH,KAAK,EAAEsH,gBAAA;IAC1C,MAAMC,SAAA,GAAYF,aAAA,GACb9F,SAAA,KAAc,GAAGV,IAAA,IAAQkG,WAAA,YAAuB,CAAC,EAAEvE,KAAA,GACpDgF,SAAA;IAEJ,oBACEC,IAAA,CAAC7J,kBAAA;MACC8J,MAAA,eACED,IAAA,CAAC;QAAIxH,SAAA,EAAW,GAAGT,SAAA,gBAAyB;kBAC1C,aAAAiI,IAAA,CAACjJ,QAAA;UACCmJ,eAAA,EAAiBxE,IAAA,GAAO4D,WAAA,CAAY,EAAEpE,gBAAA,EAAkBnE,QAAA;UACxD6B,KAAA,eACEuH,KAAA,CAAAC,SAAA;oCACEJ,IAAA,CAAC;cAAKxH,SAAA,EAAW,GAAGT,SAAA,gBAAyB;wBAC1CsI,MAAA,CAAOf,WAAA,GAAc,GAAGgB,QAAQ,CAAC,GAAG;6BAEvCN,IAAA,CAACxJ,IAAA;cACCgC,SAAA,EAAW,GAAGT,SAAA,gBAAyBA,SAAA,gBAAyB2H,SAAA,CAAU7C,SAAS,EAAE;cACrF0D,SAAA,EAAU;cACVC,IAAA,EAAK;wBAEJpL,cAAA,CAAeuK,WAAA,CAAY9G,MAAM,CAAC6B,QAAQ,EAAExC,IAAA;gBAE9C4H,SAAA,iBAAaE,IAAA,CAAC;cAAKxH,SAAA,EAAU;wBAAuBsH;;;UAGzD1G,IAAA,EAAM,GAAGA,IAAA,IAAQkG,WAAA,EAAa;UAC9BmB,SAAA,EAAWnB;;;;EAMvB,GACA,CAAC5D,IAAA,EAAMrB,MAAA,CAAO+B,SAAS,EAAEL,YAAA,EAAc7D,IAAA,EAAMkB,IAAA,EAAMU,SAAA,CAAU;EAG/D,oBACEqG,KAAA,CAAC;IACC3H,SAAA,EAAW,CACTZ,cAAA,EACAG,SAAA,EACAS,SAAA,EACAqG,cAAA,GAAiB,GAAG9G,SAAA,aAAsB,GAAG,GAAGA,SAAA,gBAAyB,CAC1E,CACEyE,MAAM,CAACkE,OAAA,EACPC,IAAI,CAAC;IACRlB,EAAA,EAAI,SAASrG,IAAA,EAAMwH,OAAA,CAAQ,OAAO,OAAO;IACzCC,KAAA,EAAO1B,MAAA;eAEND,oBAAA,iBACCc,IAAA,CAACvJ,qBAAA;MACCyJ,eAAA,EAAiB5E,KAAA;MACjBwF,QAAA,eAAUd,IAAA,CAACvI,UAAA;QAAW2B,IAAA,EAAMA,IAAA;QAAMuC,SAAA,EAAWA;;qBAGjDwE,KAAA,CAAC;MAAO3H,SAAA,EAAW,GAAGT,SAAA,UAAmB;8BACvCoI,KAAA,CAAC;QAAI3H,SAAA,EAAW,GAAGT,SAAA,eAAwB;gCACzCoI,KAAA,CAAC;UAAI3H,SAAA,EAAW,GAAGT,SAAA,kBAA2B;kCAC5CiI,IAAA,CAAC;YAAGxH,SAAA,EAAW,GAAGT,SAAA,SAAkB;sBAClC,aAAAiI,IAAA,CAACvJ,qBAAA;cACCyJ,eAAA,EAAiB3E,KAAA;cACjBuF,QAAA,eACEd,IAAA,CAACtI,UAAA;gBACCqJ,EAAA,EAAG;gBACHnI,KAAA,EAAOA,KAAA;gBACPG,SAAA,EAAWA,SAAA;gBACXK,IAAA,EAAMA,IAAA;gBACND,QAAA,EAAUA;;;cAKjB2F,mBAAA,GAAsB,kBACrBkB,IAAA,CAACzJ,SAAA;YAAUyK,KAAA,EAAOlC,mBAAA;YAAqB5G,IAAA,EAAMA,IAAA;YAAM+I,WAAW;;yBAGlEd,KAAA,CAAC;UAAG3H,SAAA,EAAW,GAAGT,SAAA,kBAA2B;qBAC1C2D,IAAA,CAAKiD,MAAM,GAAG,kBAAKqB,IAAA,CAAC/J,iBAAA;YAAkBiL,OAAA,EAAS3D;2BAChDyC,IAAA,CAAC;sBACC,aAAAA,IAAA,CAAClK,eAAA;cACCqL,SAAA,EAAWzF,IAAA,EAAMiD,MAAA,GAAS;cAC1ByC,UAAA,EAAY,CAAC7H,QAAA;cACbZ,MAAA,EAAQoD,YAAA;cACRvD,SAAA,EAAW,GAAGT,SAAA,iBAA0B;cACxCyD,QAAA,EAAUA,QAAA;cACVuC,aAAA,EAAeA,CAAA,KACb/H,qBAAA,CAAsB;gBACpBgI,SAAA,EAAW;kBAAE,GAAGlE,SAAA;gBAAY;gBAC5BV;cACF;cAEFiF,OAAA,EAASI,WAAA;cACTrF,IAAA,EAAMA,IAAA;cACNd,IAAA,EAAMA;;;;uBAKd0H,IAAA,CAACvJ,qBAAA;QACCyJ,eAAA,EAAiB7E,WAAA;QACjByF,QAAA,eAAUd,IAAA,CAACxI,gBAAA;UAAiBiB,WAAA,EAAaA,WAAA;UAAaW,IAAA,EAAMA;;;QAG/DgC,WAAA,E,aACD4E,IAAA,CAAClJ,kBAAA;MACCuK,UAAA,EAAYtG,OAAA;MACZhC,SAAA,EAAWA,SAAA;MACXK,IAAA,EAAMA,IAAA;MACNG,QAAA,EAAUA;QAEV,CAAAmC,IAAA,CAAKiD,MAAM,GAAG,KAAM,CAAC/C,KAAA,KAAUoD,YAAA,IAAgBD,WAAU,CAAE,kBAC3DoB,KAAA,CAAC/J,iBAAA;MACCoC,SAAA,EAAW,GAAGT,SAAA,QAAiB;MAC/BuJ,GAAA,EAAK5F,IAAA,CAAK6F,GAAG,CAAE/B,KAAA,IAAQA,KAAA,CAAIC,EAAE;MAC7B+B,SAAA,EAAWA,CAAC;QAAEnE,aAAa,EAAbA,eAAa;QAAEC,WAAW,EAAXA;MAAW,CAAE,KAAKF,OAAA,CAAQC,eAAA,EAAeC,aAAA;MACtE8B,iBAAA,EAAmB1G,UAAA,IAAc,CAACa,QAAA,IAAY,CAACiC,QAAA,GAAW4D,iBAAA,GAAoBW,SAAA;MAC9E0B,eAAA,EAAiBtM,2BAAA;iBAEhBuG,IAAA,CAAK6F,GAAG,CAAC,CAAC/B,KAAA,EAAKkC,CAAA;QACd,MAAM;UAAE7E,SAAS,EAATA,WAAS;UAAE8E;QAAS,CAAE,GAAGnC,KAAA;QAEjC,MAAMG,aAAA,GAAc/C,cAAA,CAAeC,WAAA;QAEnC,IAAI8C,aAAA,EAAa;UACf,MAAMiC,OAAA,GAAU,GAAGxI,IAAA,IAAQsI,CAAA,EAAG;UAE9B,MAAMG,aAAA,GAAgBpG,UAAA,CAAWe,MAAM,CAAEsF,SAAA,IACvCA,SAAA,CAAUC,UAAU,CAACH,OAAA,GAAU,MAC/BjD,MAAM;UAER,oBACEqB,IAAA,CAAC9J,qBAAA;YACCsF,QAAA,EAAUjC,QAAA,IAAYiC,QAAA,IAAY,CAAC9C,UAAA;YACnC+G,EAAA,EAAID,KAAA,CAAIC,EAAE;sBAGRuC,0BAAA,iBACAhC,IAAA,CAACnI,QAAA;cACE,GAAGmK,0BAA0B;cAC9BjF,MAAA,EAAQA,MAAA;cACRZ,KAAA,EAAOwD,aAAA;cACP;cACAhH,MAAA,EAAQoD,YAAA;cACR8B,OAAA,EAASA,OAAA;cACTX,YAAA,EAAcA,YAAA;cACd+E,UAAA,EAAYJ,aAAA;cACZK,MAAA,EAAQvC,aAAA,CAAYuC,MAAM;cAC1BxD,UAAA,EAAYA,UAAA;cACZiD,SAAA,EAAWA,SAAA;cACXjJ,UAAA,EAAYA,UAAA;cACZ6C,KAAA,EAAOG,IAAA,GAAOgG,CAAA,CAAE,EAAExG,gBAAA,EAAkBnE,QAAA;cACpC8B,MAAA,EAAQA,MAAA;cACRuE,OAAA,EAASA,OAAA;cACT+E,UAAA,EAAY/I,IAAA;cACZ+E,QAAA,EAAUA,QAAA;cACV/E,IAAA,EAAMwI,OAAA;cACNtI,WAAA,EAAaA,WAAA;cACbC,QAAA,EAAUA,QAAA,IAAYiC,QAAA;cACtB2B,SAAA,EAAWA,SAAA;cACXqC,GAAA,EAAKA,KAAA;cACL4C,QAAA,EAAU1G,IAAA,CAAKiD,MAAM;cACrB3B,QAAA,EAAU0E,CAAA;cACVlI,UAAA,EAAYA,UAAA,GAAamG,aAAA,CAAYjD,IAAI;cACzCiB,WAAA,EAAaA;;aA7BZ6B,KAAA,CAAIC,EAAE;QAkCjB;QAEA,OAAO;MACT,IACC,CAAC7D,KAAA,iBACAuE,KAAA,CAAC9K,KAAA,CAAMC,QAAQ;mBACZyJ,WAAA,iBACCiB,IAAA,CAACtK,MAAA;UAAO4C,IAAA,EAAK;oBACVH,CAAA,CAAE,8BAA8B;YAC/B6I,KAAA,EAAO/H,OAAA;YACPL,KAAA,EACExD,cAAA,CAAe6D,OAAA,GAAU,IAAIJ,MAAA,CAAO4B,MAAM,GAAG5B,MAAA,CAAO6B,QAAQ,EAAExC,IAAA,KAC9DC,CAAA,CAAEc,OAAA,GAAU,IAAI,gBAAgB;UACpC;YAGH+F,YAAA,iBACCgB,IAAA,CAACtK,MAAA;oBACEyC,CAAA,CAAE,yBAAyB;YAAES,KAAA,EAAOxD,cAAA,CAAeyD,MAAA,CAAO4B,MAAM,EAAEvC,IAAA;UAAM;;;QAOpF,CAACwG,UAAA,IAAc,CAACnF,QAAA,iBACf4G,KAAA,CAAC7K,QAAA;8BACC0K,IAAA,CAAC3J,aAAA;QACCmC,SAAA,EAAW,GAAGT,SAAA,kBAA2B;QACzCyD,QAAA,EAAUA,QAAA;QACVkB,IAAA,EAAMnC,UAAA;kBAEN,aAAAyF,IAAA,CAACrK,MAAA;UACC0M,WAAA,EAAY;UACZ7G,QAAA,EAAUA,QAAA;UACV8G,EAAA,EAAG;UACHC,IAAA,eAAMvC,IAAA,CAAC9I,cAAA;UACPsL,YAAA,EAAa;oBAEZrK,CAAA,CAAE,mBAAmB;YAAES,KAAA,EAAOxD,cAAA,CAAeyD,MAAA,CAAO6B,QAAQ,EAAExC,IAAA;UAAM;;uBAGzE8H,IAAA,CAAClI,YAAA;QACCiF,MAAA,EAAQA,MAAA;QACR0F,WAAA,EAAa/G,IAAA,EAAMiD,MAAA,IAAU;QAC7B;QACAhG,MAAA,EAAQqD,yBAAA;QACRzB,UAAA,EAAYA,UAAA;QACZ1B,MAAA,EAAQA;;QAIbsC,UAAA;;AAGP;AAEA,OAAO,MAAMuH,WAAA,GAAczL,aAAA,CAAce,oBAAA","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"index.js","names":["verticalListSortingStrategy","getTranslation","React","Fragment","useCallback","useMemo","toast","Banner","Button","clipboardCopy","clipboardPaste","ClipboardAction","insertRowFromClipboard","mergeFormStateFromClipboard","reduceFormStateByPath","CollapseAllToggle","DraggableSortableItem","DragOverlayPreview","DraggableSortable","DrawerToggler","useDrawerSlug","ErrorPill","Pill","RenderCustomComponent","useForm","useFormSubmitted","extractRowsAndCollapsedIDs","toggleAllRows","NullifyLocaleField","RowLabel","useField","withCondition","CirclePlusIcon","useConfig","useDocumentInfo","useLocale","useTranslation","scrollToID","FieldDescription","FieldError","FieldLabel","mergeFieldStyles","fieldBaseClass","BlockRow","BlocksDrawer","baseClass","BlocksFieldComponent","props","i18n","t","field","name","type","admin","className","description","isSortable","blocks","label","labels","labelsFromProps","localized","maxRows","minRows","minRowsProp","required","path","pathFromProps","permissions","readOnly","schemaPath","schemaPathFromProps","validate","setDocFieldPreferences","addFieldRow","dispatchFields","getFields","moveFieldRow","removeFieldRow","replaceState","setModified","code","locale","config","localization","drawerSlug","submitted","plural","singular","editingDefaultLocale","fallback","defaultLocale","memoizedValidate","value","options","blocksFilterOptions","customComponents","AfterInput","BeforeInput","Description","Error","Label","disabled","errorPaths","rows","showError","valid","hasRows","potentiallyStalePath","clientBlocks","clientBlocksAfterFilter","resolvedBlocks","blockOrSlug","block","blocksMap","push","Array","isArray","filter","blockSlug","slug","includes","getBlockConfig","blockType","find","addRow","rowIndex","setTimeout","duplicateRow","removeRow","moveRow","moveFromIndex","moveToIndex","toggleCollapseAll","collapsed","collapsedIDs","updatedRows","setCollapse","rowID","copyRow","clipboardResult","getDataToCopy","formState","error","success","pasteRow","pasteArgs","onPaste","dataFromClipboard","newState","schemaBlocks","pasteRowBelow","split","join","pasteBlocks","hasMaxRows","length","fieldErrorCount","fieldHasErrors","displayedErrorCount","showMinRows","showRequired","shouldShowSummaryBanner","shouldShowFieldError","styles","renderDragOverlay","activeId","activeIndex","findIndex","row","id","activeRow","blockConfig","showBlockName","disableBlockName","blockName","undefined","_jsx","header","CustomComponent","_jsxs","_Fragment","String","padStart","pillStyle","size","rowNumber","Boolean","replace","style","Fallback","as","count","withMessage","onClick","allowCopy","allowPaste","fieldValue","ids","map","onDragEnd","sortingStrategy","i","isLoading","rowPath","rowErrorCount","errorPath","startsWith","draggableSortableItemProps","errorCount","fields","parentPath","rowCount","buttonStyle","el","icon","iconPosition","addRowIndex","BlocksField"],"sources":["../../../src/fields/Blocks/index.tsx"],"sourcesContent":["'use client'\nimport type { BlocksFieldClientComponent, ClientBlock } from 'payload'\n\nimport { verticalListSortingStrategy } from '@dnd-kit/sortable'\nimport { getTranslation } from '@payloadcms/translations'\nimport React, { Fragment, useCallback, useMemo } from 'react'\nimport { toast } from 'sonner'\n\nimport type { ClipboardPasteData } from '../../elements/ClipboardAction/types.js'\n\nimport { Banner } from '../../elements/Banner/index.js'\nimport { Button } from '../../elements/Button/index.js'\nimport { clipboardCopy, clipboardPaste } from '../../elements/ClipboardAction/clipboardUtilities.js'\nimport { ClipboardAction } from '../../elements/ClipboardAction/index.js'\nimport {\n insertRowFromClipboard,\n mergeFormStateFromClipboard,\n reduceFormStateByPath,\n} from '../../elements/ClipboardAction/mergeFormStateFromClipboard.js'\nimport { CollapseAllToggle } from '../../elements/CollapseAllToggle/index.js'\nimport { DraggableSortableItem } from '../../elements/DraggableSortable/DraggableSortableItem/index.js'\nimport { DragOverlayPreview } from '../../elements/DraggableSortable/DragOverlayPreview/index.js'\nimport { DraggableSortable } from '../../elements/DraggableSortable/index.js'\nimport { DrawerToggler } from '../../elements/Drawer/index.js'\nimport { useDrawerSlug } from '../../elements/Drawer/useDrawerSlug.js'\nimport { ErrorPill } from '../../elements/ErrorPill/index.js'\nimport { Pill } from '../../elements/Pill/index.js'\nimport { RenderCustomComponent } from '../../elements/RenderCustomComponent/index.js'\nimport { useForm, useFormSubmitted } from '../../forms/Form/context.js'\nimport { extractRowsAndCollapsedIDs, toggleAllRows } from '../../forms/Form/rowHelpers.js'\nimport { NullifyLocaleField } from '../../forms/NullifyField/index.js'\nimport { RowLabel } from '../../forms/RowLabel/index.js'\nimport { useField } from '../../forms/useField/index.js'\nimport { withCondition } from '../../forms/withCondition/index.js'\nimport { CirclePlusIcon } from '../../icons/CirclePlus/index.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useDocumentInfo } from '../../providers/DocumentInfo/index.js'\nimport { useLocale } from '../../providers/Locale/index.js'\nimport './index.css'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { scrollToID } from '../../utilities/scrollToID.js'\nimport { FieldDescription } from '../FieldDescription/index.js'\nimport { FieldError } from '../FieldError/index.js'\nimport { FieldLabel } from '../FieldLabel/index.js'\nimport { mergeFieldStyles } from '../mergeFieldStyles.js'\nimport { fieldBaseClass } from '../shared/index.js'\nimport { BlockRow } from './BlockRow.js'\nimport { BlocksDrawer } from './BlocksDrawer/index.js'\n\nconst baseClass = 'blocks-field'\n\nconst BlocksFieldComponent: BlocksFieldClientComponent = (props) => {\n const { i18n, t } = useTranslation()\n\n const {\n field,\n field: {\n name,\n type,\n admin: { className, description, isSortable = true } = {},\n blocks,\n label,\n labels: labelsFromProps,\n localized,\n maxRows,\n minRows: minRowsProp,\n required,\n },\n path: pathFromProps,\n permissions,\n readOnly,\n schemaPath: schemaPathFromProps,\n validate,\n } = props\n\n const schemaPath = schemaPathFromProps ?? name\n\n const minRows = minRowsProp ?? (required ? 1 : 0)\n\n const { setDocFieldPreferences } = useDocumentInfo()\n const {\n addFieldRow,\n dispatchFields,\n getFields,\n moveFieldRow,\n removeFieldRow,\n replaceState,\n setModified,\n } = useForm()\n const { code: locale } = useLocale()\n const {\n config: { localization },\n config,\n } = useConfig()\n const drawerSlug = useDrawerSlug('blocks-drawer')\n const submitted = useFormSubmitted()\n\n const labels = {\n plural: t('fields:blocks'),\n singular: t('fields:block'),\n ...labelsFromProps,\n }\n\n const editingDefaultLocale = (() => {\n if (localization && localization.fallback) {\n const defaultLocale = localization.defaultLocale\n return locale === defaultLocale\n }\n\n return true\n })()\n\n const memoizedValidate = useCallback(\n (value, options) => {\n // alternative locales can be null\n if (!editingDefaultLocale && value === null) {\n return true\n }\n if (typeof validate === 'function') {\n return validate(value, { ...options, maxRows, minRows, required })\n }\n },\n [maxRows, minRows, required, validate, editingDefaultLocale],\n )\n\n const {\n blocksFilterOptions,\n customComponents: { AfterInput, BeforeInput, Description, Error, Label } = {},\n disabled,\n errorPaths,\n path,\n rows = [],\n showError,\n valid,\n value,\n } = useField<number>({\n hasRows: true,\n potentiallyStalePath: pathFromProps,\n validate: memoizedValidate,\n })\n\n const { clientBlocks, clientBlocksAfterFilter } = useMemo(() => {\n const resolvedBlocks: ClientBlock[] = []\n\n for (const blockOrSlug of blocks) {\n const block = typeof blockOrSlug === 'string' ? config.blocksMap[blockOrSlug] : blockOrSlug\n if (block) {\n resolvedBlocks.push(block)\n }\n }\n\n if (Array.isArray(blocksFilterOptions)) {\n const clientBlocksAfterFilter = resolvedBlocks.filter((block) => {\n const blockSlug = typeof block === 'string' ? block : block.slug\n return blocksFilterOptions.includes(blockSlug)\n })\n\n return {\n clientBlocks: resolvedBlocks,\n clientBlocksAfterFilter,\n }\n }\n return {\n clientBlocks: resolvedBlocks,\n clientBlocksAfterFilter: resolvedBlocks,\n }\n }, [blocks, blocksFilterOptions, config.blocksMap])\n\n const getBlockConfig = (blockType: string): ClientBlock | undefined =>\n config.blocksMap[blockType] ?? clientBlocks.find((block) => block.slug === blockType)\n\n const addRow = useCallback(\n (rowIndex: number, blockType: string) => {\n addFieldRow({\n blockType,\n path,\n rowIndex,\n schemaPath,\n })\n\n setTimeout(() => {\n scrollToID(`${path}-row-${rowIndex + 1}`)\n }, 0)\n },\n [addFieldRow, path, schemaPath],\n )\n\n const duplicateRow = useCallback(\n (rowIndex: number) => {\n dispatchFields({ type: 'DUPLICATE_ROW', path, rowIndex })\n setModified(true)\n\n setTimeout(() => {\n scrollToID(`${path}-row-${rowIndex + 1}`)\n }, 0)\n },\n [dispatchFields, path, setModified],\n )\n\n const removeRow = useCallback(\n (rowIndex: number) => {\n removeFieldRow({\n path,\n rowIndex,\n })\n },\n [path, removeFieldRow],\n )\n\n const moveRow = useCallback(\n (moveFromIndex: number, moveToIndex: number) => {\n moveFieldRow({ moveFromIndex, moveToIndex, path })\n },\n [moveFieldRow, path],\n )\n\n const toggleCollapseAll = useCallback(\n (collapsed: boolean) => {\n const { collapsedIDs, updatedRows } = toggleAllRows({\n collapsed,\n rows,\n })\n\n dispatchFields({ type: 'SET_ALL_ROWS_COLLAPSED', path, updatedRows })\n setDocFieldPreferences(path, { collapsed: collapsedIDs })\n },\n [dispatchFields, path, rows, setDocFieldPreferences],\n )\n\n const setCollapse = useCallback(\n (rowID: string, collapsed: boolean) => {\n const { collapsedIDs, updatedRows } = extractRowsAndCollapsedIDs({\n collapsed,\n rowID,\n rows,\n })\n\n dispatchFields({ type: 'SET_ROW_COLLAPSED', path, updatedRows })\n setDocFieldPreferences(path, { collapsed: collapsedIDs })\n },\n [dispatchFields, path, rows, setDocFieldPreferences],\n )\n\n const copyRow = useCallback(\n (rowIndex: number) => {\n const clipboardResult = clipboardCopy({\n type,\n blocks: clientBlocks,\n getDataToCopy: () =>\n reduceFormStateByPath({\n formState: { ...getFields() },\n path,\n rowIndex,\n }),\n path,\n rowIndex,\n t,\n })\n\n if (typeof clipboardResult === 'string') {\n toast.error(clipboardResult)\n } else {\n toast.success(t('general:copied'))\n }\n },\n [clientBlocks, path, t, type, getFields],\n )\n\n const pasteRow = useCallback(\n (rowIndex: number) => {\n const pasteArgs = {\n onPaste: (dataFromClipboard: ClipboardPasteData) => {\n const formState = { ...getFields() }\n const newState = mergeFormStateFromClipboard({\n dataFromClipboard,\n formState,\n path,\n rowIndex,\n })\n replaceState(newState)\n setModified(true)\n },\n path,\n schemaBlocks: clientBlocks,\n t,\n }\n\n const clipboardResult = clipboardPaste(pasteArgs)\n\n if (typeof clipboardResult === 'string') {\n toast.error(clipboardResult)\n }\n },\n [clientBlocks, getFields, path, replaceState, setModified, t],\n )\n\n const pasteRowBelow = useCallback(\n (rowIndex: number) => {\n const pasteArgs = {\n onPaste: (dataFromClipboard: ClipboardPasteData) => {\n const formState = { ...getFields() }\n const newState = insertRowFromClipboard({\n dataFromClipboard,\n formState,\n path,\n rowIndex: rowIndex + 1,\n })\n replaceState(newState)\n setModified(true)\n\n setTimeout(() => {\n scrollToID(`${path?.split('.').join('-')}-row-${rowIndex + 1}`)\n }, 0)\n },\n path,\n schemaBlocks: clientBlocks,\n t,\n }\n\n const clipboardResult = clipboardPaste(pasteArgs)\n\n if (typeof clipboardResult === 'string') {\n toast.error(clipboardResult)\n }\n },\n [clientBlocks, getFields, path, replaceState, setModified, t],\n )\n\n const pasteBlocks = useCallback(\n (dataFromClipboard: ClipboardPasteData) => {\n const formState = { ...getFields() }\n const newState = mergeFormStateFromClipboard({\n dataFromClipboard,\n formState,\n path,\n })\n replaceState(newState)\n setModified(true)\n },\n [getFields, path, replaceState, setModified],\n )\n\n const hasMaxRows = maxRows && rows.length >= maxRows\n\n const fieldErrorCount = errorPaths.length\n const fieldHasErrors = submitted && fieldErrorCount + (valid ? 0 : 1) > 0\n const displayedErrorCount = fieldErrorCount > 0 ? fieldErrorCount : fieldHasErrors ? 1 : 0\n\n const showMinRows = rows.length < minRows || (required && rows.length === 0)\n const showRequired = readOnly && rows.length === 0\n const shouldShowSummaryBanner = !valid && (showRequired || showMinRows)\n const shouldShowFieldError = showError && !shouldShowSummaryBanner\n\n const styles = useMemo(() => mergeFieldStyles(field), [field])\n\n const renderDragOverlay = useCallback(\n (activeId: number | string) => {\n const activeIndex = rows.findIndex((row) => row.id === activeId)\n if (activeIndex === -1) {\n return null\n }\n\n const activeRow = rows[activeIndex]\n const blockConfig = getBlockConfig(activeRow.blockType)\n\n if (!blockConfig) {\n return null\n }\n\n const showBlockName = !blockConfig.admin?.disableBlockName\n const blockName = showBlockName\n ? (getFields()?.[`${path}.${activeIndex}.blockName`]?.value as string)\n : undefined\n\n return (\n <DragOverlayPreview\n header={\n <div className={`${baseClass}__block-header`}>\n <RowLabel\n CustomComponent={rows?.[activeIndex]?.customComponents?.RowLabel}\n label={\n <>\n <span className={`${baseClass}__block-number`}>\n {String(activeIndex + 1).padStart(2, '0')}\n </span>\n <Pill\n className={`${baseClass}__block-pill ${baseClass}__block-pill-${activeRow.blockType}`}\n pillStyle=\"white\"\n size=\"small\"\n >\n {getTranslation(blockConfig.labels.singular, i18n)}\n </Pill>\n {blockName && <span className=\"section-title__text\">{blockName}</span>}\n </>\n }\n path={`${path}.${activeIndex}`}\n rowNumber={activeIndex}\n />\n </div>\n }\n />\n )\n },\n [rows, config.blocksMap, clientBlocks, i18n, path, getFields],\n )\n\n return (\n <div\n className={[\n fieldBaseClass,\n baseClass,\n className,\n fieldHasErrors ? `${baseClass}--has-error` : `${baseClass}--has-no-error`,\n ]\n .filter(Boolean)\n .join(' ')}\n id={`field-${path?.replace(/\\./g, '__')}`}\n style={styles}\n >\n {shouldShowFieldError && (\n <RenderCustomComponent\n CustomComponent={Error}\n Fallback={<FieldError path={path} showError={showError} />}\n />\n )}\n <header className={`${baseClass}__header`}>\n <div className={`${baseClass}__header-wrap`}>\n <div className={`${baseClass}__header-content`}>\n <h3 className={`${baseClass}__title`}>\n <RenderCustomComponent\n CustomComponent={Label}\n Fallback={\n <FieldLabel\n as=\"span\"\n label={label}\n localized={localized}\n path={path}\n required={required}\n />\n }\n />\n </h3>\n {displayedErrorCount > 0 && (\n <ErrorPill count={displayedErrorCount} i18n={i18n} withMessage />\n )}\n </div>\n <ul className={`${baseClass}__header-actions`}>\n {rows.length > 0 && <CollapseAllToggle onClick={toggleCollapseAll} />}\n <li>\n <ClipboardAction\n allowCopy={rows?.length > 0}\n allowPaste={!readOnly}\n blocks={clientBlocks}\n className={`${baseClass}__header-action`}\n disabled={disabled}\n getDataToCopy={() =>\n reduceFormStateByPath({\n formState: { ...getFields() },\n path,\n })\n }\n onPaste={pasteBlocks}\n path={path}\n type={type}\n />\n </li>\n </ul>\n </div>\n <RenderCustomComponent\n CustomComponent={Description}\n Fallback={<FieldDescription description={description} path={path} />}\n />\n </header>\n {BeforeInput}\n <NullifyLocaleField\n fieldValue={value}\n localized={localized}\n path={path}\n readOnly={readOnly}\n />\n {(rows.length > 0 || (!valid && (showRequired || showMinRows))) && (\n <DraggableSortable\n className={`${baseClass}__rows`}\n ids={rows.map((row) => row.id)}\n onDragEnd={({ moveFromIndex, moveToIndex }) => moveRow(moveFromIndex, moveToIndex)}\n renderDragOverlay={isSortable && !readOnly && !disabled ? renderDragOverlay : undefined}\n sortingStrategy={verticalListSortingStrategy}\n >\n {rows.map((row, i) => {\n const { blockType, isLoading } = row\n\n const blockConfig = getBlockConfig(blockType)\n\n if (blockConfig) {\n const rowPath = `${path}.${i}`\n\n const rowErrorCount = errorPaths.filter((errorPath) =>\n errorPath.startsWith(rowPath + '.'),\n ).length\n\n return (\n <DraggableSortableItem\n disabled={readOnly || disabled || !isSortable}\n id={row.id}\n key={row.id}\n >\n {(draggableSortableItemProps) => (\n <BlockRow\n {...draggableSortableItemProps}\n addRow={addRow}\n block={blockConfig}\n // Pass all blocks, not just clientBlocksAfterFilter, as existing blocks should still be displayed even if they don't match the new filter\n blocks={clientBlocks}\n copyRow={copyRow}\n duplicateRow={duplicateRow}\n errorCount={rowErrorCount}\n fields={blockConfig.fields}\n hasMaxRows={hasMaxRows}\n isLoading={isLoading}\n isSortable={isSortable}\n Label={rows?.[i]?.customComponents?.RowLabel}\n labels={labels}\n moveRow={moveRow}\n parentPath={path}\n pasteRow={pasteRow}\n pasteRowBelow={pasteRowBelow}\n path={rowPath}\n permissions={permissions}\n readOnly={readOnly || disabled}\n removeRow={removeRow}\n row={row}\n rowCount={rows.length}\n rowIndex={i}\n schemaPath={schemaPath + blockConfig.slug}\n setCollapse={setCollapse}\n />\n )}\n </DraggableSortableItem>\n )\n }\n\n return null\n })}\n {!valid && (\n <React.Fragment>\n {showMinRows && (\n <Banner type=\"danger\">\n {t('validation:requiresAtLeast', {\n count: minRows,\n label:\n getTranslation(minRows > 1 ? labels.plural : labels.singular, i18n) ||\n t(minRows > 1 ? 'general:row' : 'general:rows'),\n })}\n </Banner>\n )}\n {showRequired && (\n <Banner>\n {t('validation:fieldHasNo', { label: getTranslation(labels.plural, i18n) })}\n </Banner>\n )}\n </React.Fragment>\n )}\n </DraggableSortable>\n )}\n {!hasMaxRows && !readOnly && (\n <Fragment>\n <DrawerToggler\n className={`${baseClass}__drawer-toggler`}\n disabled={disabled}\n slug={drawerSlug}\n >\n <Button\n buttonStyle=\"ghost\"\n disabled={disabled}\n el=\"span\"\n icon={<CirclePlusIcon />}\n iconPosition=\"left\"\n >\n {t('fields:addLabel', { label: getTranslation(labels.singular, i18n) })}\n </Button>\n </DrawerToggler>\n <BlocksDrawer\n addRow={addRow}\n addRowIndex={rows?.length || 0}\n // Only allow choosing filtered blocks\n blocks={clientBlocksAfterFilter}\n drawerSlug={drawerSlug}\n labels={labels}\n />\n </Fragment>\n )}\n {AfterInput}\n </div>\n )\n}\n\nexport const BlocksField = withCondition(BlocksFieldComponent)\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -21,8 +21,8 @@ export type CheckboxInputProps = {
|
|
|
21
21
|
readonly tooltip?: string;
|
|
22
22
|
/**
|
|
23
23
|
* Visual variant for the checkbox
|
|
24
|
-
* - 'default':
|
|
25
|
-
* - 'muted':
|
|
24
|
+
* - 'default': Brand fill and an on-brand mark when checked (for form fields)
|
|
25
|
+
* - 'muted': Keeps the neutral surface when checked (for tables)
|
|
26
26
|
*/
|
|
27
27
|
readonly variant?: 'default' | 'muted';
|
|
28
28
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Input.d.ts","sourceRoot":"","sources":["../../../src/fields/Checkbox/Input.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AAE1C,OAAO,
|
|
1
|
+
{"version":3,"file":"Input.d.ts","sourceRoot":"","sources":["../../../src/fields/Checkbox/Input.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AAE1C,OAAO,KAA0D,MAAM,OAAO,CAAA;AAM9E,MAAM,MAAM,kBAAkB,GAAG;IAC/B,QAAQ,CAAC,UAAU,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IACrC,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAA;IAC9B,QAAQ,CAAC,iBAAiB,CAAC,EAAE,MAAM,CAAA;IACnC,QAAQ,CAAC,WAAW,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IACtC,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAA;IAC1B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAChC,QAAQ,CAAC,EAAE,CAAC,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,gBAAgB,GAAG,IAAI,CAAC,CAAA;IAC5D,QAAQ,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAChC,QAAQ,CAAC,KAAK,CAAC,EAAE,WAAW,CAAA;IAC5B,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAA;IAC5B,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,WAAW,CAAC,gBAAgB,CAAC,KAAK,IAAI,CAAA;IACvE,QAAQ,CAAC,cAAc,CAAC,EAAE,OAAO,CAAA;IACjC,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAA;IAC3B,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAA;IAC3B,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAA;IACzB;;;;OAIG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,GAAG,OAAO,CAAA;CACvC,CAAA;AAED,eAAO,MAAM,cAAc,mBAAmB,CAAA;AAE9C,eAAO,MAAM,aAAa,EAAE,KAAK,CAAC,EAAE,CAAC,kBAAkB,CA8HtD,CAAA"}
|
|
@@ -1,171 +1,153 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
|
|
3
|
-
import { c as _c } from "react/compiler-runtime";
|
|
4
3
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
5
|
-
import React, { useEffect, useId, useState } from 'react';
|
|
4
|
+
import React, { useCallback, useEffect, useId, useRef, useState } from 'react';
|
|
6
5
|
import { RenderCustomComponent } from '../../elements/RenderCustomComponent/index.js';
|
|
7
6
|
import { Tooltip } from '../../elements/Tooltip/index.js';
|
|
8
7
|
import { FieldLabel } from '../../fields/FieldLabel/index.js';
|
|
9
|
-
import { CheckIcon } from '../../icons/Check/index.js';
|
|
10
|
-
import { LineIcon } from '../../icons/Line/index.js';
|
|
11
8
|
export const inputBaseClass = 'checkbox-input';
|
|
12
|
-
export const CheckboxInput =
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
variant: t1
|
|
34
|
-
} = t0;
|
|
35
|
-
const variant = t1 === undefined ? "default" : t1;
|
|
9
|
+
export const CheckboxInput = ({
|
|
10
|
+
id: idFromProps,
|
|
11
|
+
name,
|
|
12
|
+
AfterInput,
|
|
13
|
+
'aria-label': ariaLabelFromProps,
|
|
14
|
+
'aria-labelledby': ariaLabelledByFromProps,
|
|
15
|
+
BeforeInput,
|
|
16
|
+
checked,
|
|
17
|
+
className,
|
|
18
|
+
Error,
|
|
19
|
+
inputRef,
|
|
20
|
+
Label,
|
|
21
|
+
label,
|
|
22
|
+
localized,
|
|
23
|
+
onToggle,
|
|
24
|
+
partialChecked,
|
|
25
|
+
readOnly: readOnlyFromProps,
|
|
26
|
+
required,
|
|
27
|
+
tooltip,
|
|
28
|
+
variant = 'default'
|
|
29
|
+
}) => {
|
|
36
30
|
const [isHydrated, setIsHydrated] = useState(false);
|
|
37
31
|
const [showTooltip, setShowTooltip] = useState(false);
|
|
32
|
+
const [hasChanged, setHasChanged] = useState(false);
|
|
38
33
|
const fallbackID = useId();
|
|
39
34
|
const id = idFromProps || fallbackID;
|
|
40
35
|
const ariaLabel = ariaLabelFromProps || undefined;
|
|
41
36
|
const ariaLabelledBy = ariaLabel ? undefined : ariaLabelledByFromProps || name;
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
setIsHydrated(true);
|
|
47
|
-
};
|
|
48
|
-
t3 = [];
|
|
49
|
-
$[0] = t2;
|
|
50
|
-
$[1] = t3;
|
|
51
|
-
} else {
|
|
52
|
-
t2 = $[0];
|
|
53
|
-
t3 = $[1];
|
|
54
|
-
}
|
|
55
|
-
useEffect(t2, t3);
|
|
37
|
+
const controlWrapRef = useRef(null);
|
|
38
|
+
useEffect(() => {
|
|
39
|
+
setIsHydrated(true);
|
|
40
|
+
}, []);
|
|
56
41
|
const readOnly = readOnlyFromProps || !isHydrated;
|
|
57
|
-
const
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
$[7] = t8;
|
|
70
|
-
} else {
|
|
71
|
-
t8 = $[7];
|
|
72
|
-
}
|
|
73
|
-
const t9 = t8.join(" ");
|
|
74
|
-
let t10;
|
|
75
|
-
if ($[8] !== tooltip) {
|
|
76
|
-
t10 = tooltip ? () => setShowTooltip(true) : undefined;
|
|
77
|
-
$[8] = tooltip;
|
|
78
|
-
$[9] = t10;
|
|
79
|
-
} else {
|
|
80
|
-
t10 = $[9];
|
|
81
|
-
}
|
|
82
|
-
let t11;
|
|
83
|
-
if ($[10] !== tooltip) {
|
|
84
|
-
t11 = tooltip ? () => setShowTooltip(false) : undefined;
|
|
85
|
-
$[10] = tooltip;
|
|
86
|
-
$[11] = t11;
|
|
87
|
-
} else {
|
|
88
|
-
t11 = $[11];
|
|
89
|
-
}
|
|
90
|
-
const t12 = Boolean(checked);
|
|
91
|
-
let t13;
|
|
92
|
-
if ($[12] !== AfterInput || $[13] !== BeforeInput || $[14] !== Error || $[15] !== Label || $[16] !== ariaLabel || $[17] !== ariaLabelledBy || $[18] !== checked || $[19] !== id || $[20] !== inputRef || $[21] !== label || $[22] !== localized || $[23] !== name || $[24] !== onToggle || $[25] !== partialChecked || $[26] !== readOnly || $[27] !== required || $[28] !== showTooltip || $[29] !== t10 || $[30] !== t11 || $[31] !== t12 || $[32] !== t9 || $[33] !== tooltip) {
|
|
93
|
-
const t14 = _jsx("input", {
|
|
94
|
-
"aria-label": ariaLabel,
|
|
95
|
-
"aria-labelledby": ariaLabelledBy,
|
|
96
|
-
checked: t12,
|
|
97
|
-
disabled: readOnly,
|
|
98
|
-
id,
|
|
99
|
-
name,
|
|
100
|
-
onChange: onToggle,
|
|
101
|
-
ref: inputRef,
|
|
102
|
-
required,
|
|
103
|
-
title: name,
|
|
104
|
-
type: "checkbox"
|
|
105
|
-
});
|
|
106
|
-
const t15 = !checked && partialChecked ? "partial" : "check";
|
|
107
|
-
let t16;
|
|
108
|
-
if ($[35] !== t15) {
|
|
109
|
-
t16 = [`${inputBaseClass}__icon`, t15].filter(Boolean);
|
|
110
|
-
$[35] = t15;
|
|
111
|
-
$[36] = t16;
|
|
112
|
-
} else {
|
|
113
|
-
t16 = $[36];
|
|
42
|
+
const isIndeterminate = !checked && Boolean(partialChecked);
|
|
43
|
+
/**
|
|
44
|
+
* `indeterminate` has no HTML attribute, so the mixed state has to be written to the
|
|
45
|
+
* node itself. The node is reached through the wrapper rather than a ref on the input
|
|
46
|
+
* so that a caller-supplied `inputRef` stays the only ref attached to it. Setting the
|
|
47
|
+
* property keeps mark selection in CSS and reports the real `mixed` state to
|
|
48
|
+
* assistive technology.
|
|
49
|
+
*/
|
|
50
|
+
useEffect(() => {
|
|
51
|
+
const control = controlWrapRef.current?.querySelector(`.${inputBaseClass}__control`);
|
|
52
|
+
if (control instanceof HTMLInputElement) {
|
|
53
|
+
control.indeterminate = isIndeterminate;
|
|
114
54
|
}
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
55
|
+
}, [isIndeterminate]);
|
|
56
|
+
/**
|
|
57
|
+
* The mark only draws itself in once the value has actually changed, so a document
|
|
58
|
+
* that loads with the box already checked doesn't replay the animation.
|
|
59
|
+
*/
|
|
60
|
+
const handleToggle = useCallback(event => {
|
|
61
|
+
setHasChanged(true);
|
|
62
|
+
onToggle(event);
|
|
63
|
+
}, [onToggle]);
|
|
64
|
+
return /*#__PURE__*/_jsxs("div", {
|
|
65
|
+
className: [className, inputBaseClass, checked && `${inputBaseClass}--checked`, isIndeterminate && `${inputBaseClass}--indeterminate`, readOnly && `${inputBaseClass}--read-only`, hasChanged && `${inputBaseClass}--changed`, tooltip && `${inputBaseClass}--has-tooltip`, variant !== 'default' && `${inputBaseClass}--${variant}`].filter(Boolean).join(' '),
|
|
66
|
+
onPointerEnter: tooltip ? () => setShowTooltip(true) : undefined,
|
|
67
|
+
onPointerLeave: tooltip ? () => setShowTooltip(false) : undefined,
|
|
68
|
+
children: [BeforeInput, /*#__PURE__*/_jsxs("div", {
|
|
69
|
+
className: `${inputBaseClass}__wrap`,
|
|
70
|
+
children: [/*#__PURE__*/_jsxs("div", {
|
|
71
|
+
className: `${inputBaseClass}__input`,
|
|
72
|
+
ref: controlWrapRef,
|
|
73
|
+
children: [/*#__PURE__*/_jsx("input", {
|
|
74
|
+
"aria-label": ariaLabel,
|
|
75
|
+
"aria-labelledby": ariaLabelledBy,
|
|
76
|
+
checked: Boolean(checked),
|
|
77
|
+
className: [`${inputBaseClass}__control`, variant !== 'default' && `${inputBaseClass}__control--${variant}`].filter(Boolean).join(' '),
|
|
78
|
+
disabled: readOnly,
|
|
79
|
+
id: id,
|
|
80
|
+
name: name,
|
|
81
|
+
onChange: handleToggle,
|
|
82
|
+
ref: inputRef,
|
|
83
|
+
required: required,
|
|
84
|
+
title: name,
|
|
85
|
+
type: "checkbox"
|
|
86
|
+
}), /*#__PURE__*/_jsxs("span", {
|
|
87
|
+
className: `${inputBaseClass}__visuals`,
|
|
88
|
+
children: [/*#__PURE__*/_jsx(Mark, {
|
|
89
|
+
className: `${inputBaseClass}__mixed`,
|
|
90
|
+
shape: "mixed"
|
|
91
|
+
}), /*#__PURE__*/_jsx(Mark, {
|
|
92
|
+
className: `${inputBaseClass}__check`,
|
|
93
|
+
shape: "check"
|
|
126
94
|
})]
|
|
127
|
-
})
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
})
|
|
136
|
-
}),
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
})
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
$[22] = localized;
|
|
154
|
-
$[23] = name;
|
|
155
|
-
$[24] = onToggle;
|
|
156
|
-
$[25] = partialChecked;
|
|
157
|
-
$[26] = readOnly;
|
|
158
|
-
$[27] = required;
|
|
159
|
-
$[28] = showTooltip;
|
|
160
|
-
$[29] = t10;
|
|
161
|
-
$[30] = t11;
|
|
162
|
-
$[31] = t12;
|
|
163
|
-
$[32] = t9;
|
|
164
|
-
$[33] = tooltip;
|
|
165
|
-
$[34] = t13;
|
|
166
|
-
} else {
|
|
167
|
-
t13 = $[34];
|
|
95
|
+
})]
|
|
96
|
+
}), /*#__PURE__*/_jsx(RenderCustomComponent, {
|
|
97
|
+
CustomComponent: Label,
|
|
98
|
+
Fallback: /*#__PURE__*/_jsx(FieldLabel, {
|
|
99
|
+
htmlFor: id,
|
|
100
|
+
label: label,
|
|
101
|
+
localized: localized,
|
|
102
|
+
required: required
|
|
103
|
+
})
|
|
104
|
+
}), Error]
|
|
105
|
+
}), tooltip && /*#__PURE__*/_jsx(Tooltip, {
|
|
106
|
+
alignCaret: "left",
|
|
107
|
+
className: `${inputBaseClass}__tooltip`,
|
|
108
|
+
show: showTooltip,
|
|
109
|
+
children: tooltip
|
|
110
|
+
}), AfterInput]
|
|
111
|
+
});
|
|
112
|
+
};
|
|
113
|
+
const markShapes = {
|
|
114
|
+
check: {
|
|
115
|
+
d: 'M5.00012 8.5L7.5 11L11.5 5',
|
|
116
|
+
shapeRendering: 'geometricPrecision'
|
|
117
|
+
},
|
|
118
|
+
mixed: {
|
|
119
|
+
d: 'M5 8H11',
|
|
120
|
+
shapeRendering: 'crispEdges'
|
|
168
121
|
}
|
|
169
|
-
|
|
122
|
+
};
|
|
123
|
+
/**
|
|
124
|
+
* Each mark is drawn twice: a wider halo stroke underneath, then the mark itself on
|
|
125
|
+
* top. The halo is what keeps the mark legible against the brand fill.
|
|
126
|
+
*/
|
|
127
|
+
const Mark = ({
|
|
128
|
+
className,
|
|
129
|
+
shape
|
|
130
|
+
}) => {
|
|
131
|
+
const {
|
|
132
|
+
d,
|
|
133
|
+
shapeRendering
|
|
134
|
+
} = markShapes[shape];
|
|
135
|
+
return /*#__PURE__*/_jsxs("svg", {
|
|
136
|
+
className: className,
|
|
137
|
+
fill: "none",
|
|
138
|
+
height: 16,
|
|
139
|
+
viewBox: "0 0 16 16",
|
|
140
|
+
width: 16,
|
|
141
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
142
|
+
children: [/*#__PURE__*/_jsx("path", {
|
|
143
|
+
className: `${inputBaseClass}__mark-halo`,
|
|
144
|
+
d: d,
|
|
145
|
+
shapeRendering: shapeRendering
|
|
146
|
+
}), /*#__PURE__*/_jsx("path", {
|
|
147
|
+
className: `${inputBaseClass}__mark`,
|
|
148
|
+
d: d,
|
|
149
|
+
shapeRendering: shapeRendering
|
|
150
|
+
})]
|
|
151
|
+
});
|
|
170
152
|
};
|
|
171
153
|
//# sourceMappingURL=Input.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Input.js","names":["c","_c","React","useEffect","useId","useState","RenderCustomComponent","Tooltip","FieldLabel","CheckIcon","LineIcon","inputBaseClass","CheckboxInput","t0","$","id","idFromProps","name","AfterInput","ariaLabelFromProps","ariaLabelledByFromProps","BeforeInput","checked","className","Error","inputRef","Label","label","localized","onToggle","partialChecked","readOnly","readOnlyFromProps","required","tooltip","variant","t1","undefined","isHydrated","setIsHydrated","showTooltip","setShowTooltip","fallbackID","ariaLabel","ariaLabelledBy","t2","t3","Symbol","for","t4","t5","t6","t7","t8","filter","Boolean","t9","join","t10","t11","t12","t13","t14","_jsx","disabled","onChange","ref","title","type","t15","t16","_jsxs","onPointerEnter","onPointerLeave","children","CustomComponent","Fallback","htmlFor","alignCaret","show"],"sources":["../../../src/fields/Checkbox/Input.tsx"],"sourcesContent":["'use client'\nimport type { StaticLabel } from 'payload'\n\nimport React, { useEffect, useId, useState } from 'react'\n\nimport { RenderCustomComponent } from '../../elements/RenderCustomComponent/index.js'\nimport { Tooltip } from '../../elements/Tooltip/index.js'\nimport { FieldLabel } from '../../fields/FieldLabel/index.js'\nimport { CheckIcon } from '../../icons/Check/index.js'\nimport { LineIcon } from '../../icons/Line/index.js'\n\nexport type CheckboxInputProps = {\n readonly AfterInput?: React.ReactNode\n readonly 'aria-label'?: string\n readonly 'aria-labelledby'?: string\n readonly BeforeInput?: React.ReactNode\n readonly checked?: boolean\n readonly className?: string\n readonly Error?: React.ReactNode\n readonly id?: string\n readonly inputRef?: React.RefObject<HTMLInputElement | null>\n readonly Label?: React.ReactNode\n readonly label?: StaticLabel\n readonly localized?: boolean\n readonly name?: string\n readonly onToggle: (event: React.ChangeEvent<HTMLInputElement>) => void\n readonly partialChecked?: boolean\n readonly readOnly?: boolean\n readonly required?: boolean\n readonly tooltip?: string\n /**\n * Visual variant for the checkbox\n * - 'default': Dark border, transparent background (for form fields)\n * - 'muted': Light gray background and border (for tables)\n */\n readonly variant?: 'default' | 'muted'\n}\n\nexport const inputBaseClass = 'checkbox-input'\n\nexport const CheckboxInput: React.FC<CheckboxInputProps> = ({\n id: idFromProps,\n name,\n AfterInput,\n 'aria-label': ariaLabelFromProps,\n 'aria-labelledby': ariaLabelledByFromProps,\n BeforeInput,\n checked,\n className,\n Error,\n inputRef,\n Label,\n label,\n localized,\n onToggle,\n partialChecked,\n readOnly: readOnlyFromProps,\n required,\n tooltip,\n variant = 'default',\n}) => {\n const [isHydrated, setIsHydrated] = useState(false)\n const [showTooltip, setShowTooltip] = useState(false)\n const fallbackID = useId()\n const id = idFromProps || fallbackID\n const ariaLabel = ariaLabelFromProps || undefined\n const ariaLabelledBy = ariaLabel ? undefined : ariaLabelledByFromProps || name\n\n useEffect(() => {\n setIsHydrated(true)\n }, [])\n\n const readOnly = readOnlyFromProps || !isHydrated\n\n return (\n <div\n className={[\n className,\n inputBaseClass,\n checked && `${inputBaseClass}--checked`,\n readOnly && `${inputBaseClass}--read-only`,\n tooltip && `${inputBaseClass}--has-tooltip`,\n variant !== 'default' && `${inputBaseClass}--${variant}`,\n ]\n .filter(Boolean)\n .join(' ')}\n onPointerEnter={tooltip ? () => setShowTooltip(true) : undefined}\n onPointerLeave={tooltip ? () => setShowTooltip(false) : undefined}\n >\n {BeforeInput}\n <div className={`${inputBaseClass}__wrap`}>\n <div className={`${inputBaseClass}__input`}>\n <input\n aria-label={ariaLabel}\n aria-labelledby={ariaLabelledBy}\n checked={Boolean(checked)}\n disabled={readOnly}\n id={id}\n name={name}\n onChange={onToggle}\n ref={inputRef}\n required={required}\n title={name}\n type=\"checkbox\"\n />\n <span\n className={[`${inputBaseClass}__icon`, !checked && partialChecked ? 'partial' : 'check']\n .filter(Boolean)\n .join(' ')}\n >\n {checked && <CheckIcon />}\n {!checked && partialChecked && <LineIcon />}\n </span>\n </div>\n <RenderCustomComponent\n CustomComponent={Label}\n Fallback={\n <FieldLabel htmlFor={id} label={label} localized={localized} required={required} />\n }\n />\n {Error}\n </div>\n {tooltip && (\n <Tooltip alignCaret=\"left\" className={`${inputBaseClass}__tooltip`} show={showTooltip}>\n {tooltip}\n </Tooltip>\n )}\n {AfterInput}\n </div>\n )\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"Input.js","names":["React","useCallback","useEffect","useId","useRef","useState","RenderCustomComponent","Tooltip","FieldLabel","inputBaseClass","CheckboxInput","id","idFromProps","name","AfterInput","ariaLabelFromProps","ariaLabelledByFromProps","BeforeInput","checked","className","Error","inputRef","Label","label","localized","onToggle","partialChecked","readOnly","readOnlyFromProps","required","tooltip","variant","isHydrated","setIsHydrated","showTooltip","setShowTooltip","hasChanged","setHasChanged","fallbackID","ariaLabel","undefined","ariaLabelledBy","controlWrapRef","isIndeterminate","Boolean","control","current","querySelector","HTMLInputElement","indeterminate","handleToggle","event","_jsxs","filter","join","onPointerEnter","onPointerLeave","ref","_jsx","disabled","onChange","title","type","Mark","shape","CustomComponent","Fallback","htmlFor","alignCaret","show","markShapes","check","d","shapeRendering","mixed","fill","height","viewBox","width","xmlns"],"sources":["../../../src/fields/Checkbox/Input.tsx"],"sourcesContent":["'use client'\nimport type { StaticLabel } from 'payload'\n\nimport React, { useCallback, useEffect, useId, useRef, useState } from 'react'\n\nimport { RenderCustomComponent } from '../../elements/RenderCustomComponent/index.js'\nimport { Tooltip } from '../../elements/Tooltip/index.js'\nimport { FieldLabel } from '../../fields/FieldLabel/index.js'\n\nexport type CheckboxInputProps = {\n readonly AfterInput?: React.ReactNode\n readonly 'aria-label'?: string\n readonly 'aria-labelledby'?: string\n readonly BeforeInput?: React.ReactNode\n readonly checked?: boolean\n readonly className?: string\n readonly Error?: React.ReactNode\n readonly id?: string\n readonly inputRef?: React.RefObject<HTMLInputElement | null>\n readonly Label?: React.ReactNode\n readonly label?: StaticLabel\n readonly localized?: boolean\n readonly name?: string\n readonly onToggle: (event: React.ChangeEvent<HTMLInputElement>) => void\n readonly partialChecked?: boolean\n readonly readOnly?: boolean\n readonly required?: boolean\n readonly tooltip?: string\n /**\n * Visual variant for the checkbox\n * - 'default': Brand fill and an on-brand mark when checked (for form fields)\n * - 'muted': Keeps the neutral surface when checked (for tables)\n */\n readonly variant?: 'default' | 'muted'\n}\n\nexport const inputBaseClass = 'checkbox-input'\n\nexport const CheckboxInput: React.FC<CheckboxInputProps> = ({\n id: idFromProps,\n name,\n AfterInput,\n 'aria-label': ariaLabelFromProps,\n 'aria-labelledby': ariaLabelledByFromProps,\n BeforeInput,\n checked,\n className,\n Error,\n inputRef,\n Label,\n label,\n localized,\n onToggle,\n partialChecked,\n readOnly: readOnlyFromProps,\n required,\n tooltip,\n variant = 'default',\n}) => {\n const [isHydrated, setIsHydrated] = useState(false)\n const [showTooltip, setShowTooltip] = useState(false)\n const [hasChanged, setHasChanged] = useState(false)\n const fallbackID = useId()\n const id = idFromProps || fallbackID\n const ariaLabel = ariaLabelFromProps || undefined\n const ariaLabelledBy = ariaLabel ? undefined : ariaLabelledByFromProps || name\n const controlWrapRef = useRef<HTMLDivElement | null>(null)\n\n useEffect(() => {\n setIsHydrated(true)\n }, [])\n\n const readOnly = readOnlyFromProps || !isHydrated\n const isIndeterminate = !checked && Boolean(partialChecked)\n\n /**\n * `indeterminate` has no HTML attribute, so the mixed state has to be written to the\n * node itself. The node is reached through the wrapper rather than a ref on the input\n * so that a caller-supplied `inputRef` stays the only ref attached to it. Setting the\n * property keeps mark selection in CSS and reports the real `mixed` state to\n * assistive technology.\n */\n useEffect(() => {\n const control = controlWrapRef.current?.querySelector(`.${inputBaseClass}__control`)\n\n if (control instanceof HTMLInputElement) {\n control.indeterminate = isIndeterminate\n }\n }, [isIndeterminate])\n\n /**\n * The mark only draws itself in once the value has actually changed, so a document\n * that loads with the box already checked doesn't replay the animation.\n */\n const handleToggle = useCallback(\n (event: React.ChangeEvent<HTMLInputElement>) => {\n setHasChanged(true)\n onToggle(event)\n },\n [onToggle],\n )\n\n return (\n <div\n className={[\n className,\n inputBaseClass,\n checked && `${inputBaseClass}--checked`,\n isIndeterminate && `${inputBaseClass}--indeterminate`,\n readOnly && `${inputBaseClass}--read-only`,\n hasChanged && `${inputBaseClass}--changed`,\n tooltip && `${inputBaseClass}--has-tooltip`,\n variant !== 'default' && `${inputBaseClass}--${variant}`,\n ]\n .filter(Boolean)\n .join(' ')}\n onPointerEnter={tooltip ? () => setShowTooltip(true) : undefined}\n onPointerLeave={tooltip ? () => setShowTooltip(false) : undefined}\n >\n {BeforeInput}\n <div className={`${inputBaseClass}__wrap`}>\n <div className={`${inputBaseClass}__input`} ref={controlWrapRef}>\n <input\n aria-label={ariaLabel}\n aria-labelledby={ariaLabelledBy}\n checked={Boolean(checked)}\n className={[\n `${inputBaseClass}__control`,\n variant !== 'default' && `${inputBaseClass}__control--${variant}`,\n ]\n .filter(Boolean)\n .join(' ')}\n disabled={readOnly}\n id={id}\n name={name}\n onChange={handleToggle}\n ref={inputRef}\n required={required}\n title={name}\n type=\"checkbox\"\n />\n {/* Both marks are always rendered and revealed by CSS, so an uncontrolled\n input that changes without React knowing still shows the right mark. */}\n <span className={`${inputBaseClass}__visuals`}>\n <Mark className={`${inputBaseClass}__mixed`} shape=\"mixed\" />\n <Mark className={`${inputBaseClass}__check`} shape=\"check\" />\n </span>\n </div>\n <RenderCustomComponent\n CustomComponent={Label}\n Fallback={\n <FieldLabel htmlFor={id} label={label} localized={localized} required={required} />\n }\n />\n {Error}\n </div>\n {tooltip && (\n <Tooltip alignCaret=\"left\" className={`${inputBaseClass}__tooltip`} show={showTooltip}>\n {tooltip}\n </Tooltip>\n )}\n {AfterInput}\n </div>\n )\n}\n\nconst markShapes = {\n check: { d: 'M5.00012 8.5L7.5 11L11.5 5', shapeRendering: 'geometricPrecision' },\n mixed: { d: 'M5 8H11', shapeRendering: 'crispEdges' },\n} as const\n\n/**\n * Each mark is drawn twice: a wider halo stroke underneath, then the mark itself on\n * top. The halo is what keeps the mark legible against the brand fill.\n */\nconst Mark: React.FC<{\n readonly className: string\n readonly shape: keyof typeof markShapes\n}> = ({ className, shape }) => {\n const { d, shapeRendering } = markShapes[shape]\n\n return (\n <svg\n className={className}\n fill=\"none\"\n height={16}\n viewBox=\"0 0 16 16\"\n width={16}\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path className={`${inputBaseClass}__mark-halo`} d={d} shapeRendering={shapeRendering} />\n <path className={`${inputBaseClass}__mark`} d={d} shapeRendering={shapeRendering} />\n </svg>\n )\n}\n"],"mappings":"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","ignoreList":[]}
|