@payloadcms/ui 3.69.0-internal.424436e → 3.69.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (241) hide show
  1. package/dist/elements/AppHeader/index.js +1 -2
  2. package/dist/elements/AppHeader/index.js.map +1 -1
  3. package/dist/elements/AppHeader/index.scss +0 -1
  4. package/dist/elements/ArrayAction/index.d.ts +6 -6
  5. package/dist/elements/ArrayAction/index.d.ts.map +1 -1
  6. package/dist/elements/ArrayAction/index.js +8 -8
  7. package/dist/elements/ArrayAction/index.js.map +1 -1
  8. package/dist/elements/Autosave/index.d.ts.map +1 -1
  9. package/dist/elements/Autosave/index.js +20 -5
  10. package/dist/elements/Autosave/index.js.map +1 -1
  11. package/dist/elements/BulkUpload/FormsManager/index.d.ts.map +1 -1
  12. package/dist/elements/BulkUpload/FormsManager/index.js +10 -6
  13. package/dist/elements/BulkUpload/FormsManager/index.js.map +1 -1
  14. package/dist/elements/CopyLocaleData/index.d.ts.map +1 -1
  15. package/dist/elements/CopyLocaleData/index.js +36 -39
  16. package/dist/elements/CopyLocaleData/index.js.map +1 -1
  17. package/dist/elements/DefaultListViewTabs/index.d.ts.map +1 -1
  18. package/dist/elements/DefaultListViewTabs/index.js +1 -2
  19. package/dist/elements/DefaultListViewTabs/index.js.map +1 -1
  20. package/dist/elements/DeleteDocument/index.d.ts.map +1 -1
  21. package/dist/elements/DeleteDocument/index.js +9 -7
  22. package/dist/elements/DeleteDocument/index.js.map +1 -1
  23. package/dist/elements/DeleteMany/index.d.ts.map +1 -1
  24. package/dist/elements/DeleteMany/index.js +19 -16
  25. package/dist/elements/DeleteMany/index.js.map +1 -1
  26. package/dist/elements/DocumentControls/index.d.ts.map +1 -1
  27. package/dist/elements/DocumentControls/index.js +2 -4
  28. package/dist/elements/DocumentControls/index.js.map +1 -1
  29. package/dist/elements/DuplicateDocument/index.d.ts.map +1 -1
  30. package/dist/elements/DuplicateDocument/index.js +4 -6
  31. package/dist/elements/DuplicateDocument/index.js.map +1 -1
  32. package/dist/elements/EditMany/DrawerContent.d.ts.map +1 -1
  33. package/dist/elements/EditMany/DrawerContent.js +8 -12
  34. package/dist/elements/EditMany/DrawerContent.js.map +1 -1
  35. package/dist/elements/FolderView/BrowseByFolderButton/index.d.ts.map +1 -1
  36. package/dist/elements/FolderView/BrowseByFolderButton/index.js +2 -4
  37. package/dist/elements/FolderView/BrowseByFolderButton/index.js.map +1 -1
  38. package/dist/elements/FolderView/Cell/index.client.d.ts.map +1 -1
  39. package/dist/elements/FolderView/Cell/index.client.js +9 -2
  40. package/dist/elements/FolderView/Cell/index.client.js.map +1 -1
  41. package/dist/elements/FolderView/CurrentFolderActions/index.d.ts.map +1 -1
  42. package/dist/elements/FolderView/CurrentFolderActions/index.js +7 -4
  43. package/dist/elements/FolderView/CurrentFolderActions/index.js.map +1 -1
  44. package/dist/elements/FolderView/MoveDocToFolder/index.d.ts +1 -1
  45. package/dist/elements/FolderView/MoveDocToFolder/index.d.ts.map +1 -1
  46. package/dist/elements/FolderView/MoveDocToFolder/index.js +5 -1
  47. package/dist/elements/FolderView/MoveDocToFolder/index.js.map +1 -1
  48. package/dist/elements/IDLabel/index.d.ts.map +1 -1
  49. package/dist/elements/IDLabel/index.js +11 -14
  50. package/dist/elements/IDLabel/index.js.map +1 -1
  51. package/dist/elements/ItemsDrawer/ItemSearch/index.d.ts +8 -0
  52. package/dist/elements/ItemsDrawer/ItemSearch/index.d.ts.map +1 -0
  53. package/dist/elements/ItemsDrawer/ItemSearch/index.js +56 -0
  54. package/dist/elements/ItemsDrawer/ItemSearch/index.js.map +1 -0
  55. package/dist/elements/ItemsDrawer/ItemSearch/index.scss +38 -0
  56. package/dist/elements/ItemsDrawer/index.d.ts +15 -0
  57. package/dist/elements/ItemsDrawer/index.d.ts.map +1 -0
  58. package/dist/elements/ItemsDrawer/index.js +195 -0
  59. package/dist/elements/ItemsDrawer/index.js.map +1 -0
  60. package/dist/elements/ItemsDrawer/index.scss +102 -0
  61. package/dist/elements/Link/index.d.ts.map +1 -1
  62. package/dist/elements/Link/index.js +5 -3
  63. package/dist/elements/Link/index.js.map +1 -1
  64. package/dist/elements/ListControls/index.d.ts.map +1 -1
  65. package/dist/elements/ListControls/index.js +6 -4
  66. package/dist/elements/ListControls/index.js.map +1 -1
  67. package/dist/elements/ListHeader/TitleActions/ListEmptyTrashButton.d.ts.map +1 -1
  68. package/dist/elements/ListHeader/TitleActions/ListEmptyTrashButton.js +9 -2
  69. package/dist/elements/ListHeader/TitleActions/ListEmptyTrashButton.js.map +1 -1
  70. package/dist/elements/Logout/index.d.ts.map +1 -1
  71. package/dist/elements/Logout/index.js +8 -11
  72. package/dist/elements/Logout/index.js.map +1 -1
  73. package/dist/elements/PermanentlyDeleteButton/index.d.ts.map +1 -1
  74. package/dist/elements/PermanentlyDeleteButton/index.js +19 -14
  75. package/dist/elements/PermanentlyDeleteButton/index.js.map +1 -1
  76. package/dist/elements/Popup/PopupButtonList/index.scss +1 -0
  77. package/dist/elements/Popup/PopupTrigger/index.d.ts +1 -1
  78. package/dist/elements/Popup/PopupTrigger/index.d.ts.map +1 -1
  79. package/dist/elements/Popup/PopupTrigger/index.js +24 -92
  80. package/dist/elements/Popup/PopupTrigger/index.js.map +1 -1
  81. package/dist/elements/Popup/index.d.ts +32 -1
  82. package/dist/elements/Popup/index.d.ts.map +1 -1
  83. package/dist/elements/Popup/index.js +249 -122
  84. package/dist/elements/Popup/index.js.map +1 -1
  85. package/dist/elements/Popup/index.scss +49 -231
  86. package/dist/elements/PublishButton/ScheduleDrawer/index.d.ts.map +1 -1
  87. package/dist/elements/PublishButton/ScheduleDrawer/index.js +6 -2
  88. package/dist/elements/PublishButton/ScheduleDrawer/index.js.map +1 -1
  89. package/dist/elements/PublishButton/index.d.ts.map +1 -1
  90. package/dist/elements/PublishButton/index.js +14 -4
  91. package/dist/elements/PublishButton/index.js.map +1 -1
  92. package/dist/elements/PublishMany/DrawerContent.d.ts.map +1 -1
  93. package/dist/elements/PublishMany/DrawerContent.js +8 -5
  94. package/dist/elements/PublishMany/DrawerContent.js.map +1 -1
  95. package/dist/elements/QueryPresets/QueryPresetBar/index.d.ts.map +1 -1
  96. package/dist/elements/QueryPresets/QueryPresetBar/index.js +7 -9
  97. package/dist/elements/QueryPresets/QueryPresetBar/index.js.map +1 -1
  98. package/dist/elements/RestoreButton/index.d.ts.map +1 -1
  99. package/dist/elements/RestoreButton/index.js +19 -14
  100. package/dist/elements/RestoreButton/index.js.map +1 -1
  101. package/dist/elements/RestoreMany/index.d.ts.map +1 -1
  102. package/dist/elements/RestoreMany/index.js +17 -14
  103. package/dist/elements/RestoreMany/index.js.map +1 -1
  104. package/dist/elements/SaveDraftButton/index.d.ts.map +1 -1
  105. package/dist/elements/SaveDraftButton/index.js +11 -5
  106. package/dist/elements/SaveDraftButton/index.js.map +1 -1
  107. package/dist/elements/Status/index.d.ts.map +1 -1
  108. package/dist/elements/Status/index.js +11 -5
  109. package/dist/elements/Status/index.js.map +1 -1
  110. package/dist/elements/StayLoggedIn/index.d.ts.map +1 -1
  111. package/dist/elements/StayLoggedIn/index.js +17 -20
  112. package/dist/elements/StayLoggedIn/index.js.map +1 -1
  113. package/dist/elements/StepNav/context.d.ts.map +1 -1
  114. package/dist/elements/StepNav/context.js +9 -1
  115. package/dist/elements/StepNav/context.js.map +1 -1
  116. package/dist/elements/StepNav/index.scss +0 -1
  117. package/dist/elements/Table/DefaultCell/fields/Relationship/index.d.ts.map +1 -1
  118. package/dist/elements/Table/DefaultCell/fields/Relationship/index.js +39 -41
  119. package/dist/elements/Table/DefaultCell/fields/Relationship/index.js.map +1 -1
  120. package/dist/elements/Table/DefaultCell/index.d.ts.map +1 -1
  121. package/dist/elements/Table/DefaultCell/index.js +9 -12
  122. package/dist/elements/Table/DefaultCell/index.js.map +1 -1
  123. package/dist/elements/Table/OrderableTable.d.ts.map +1 -1
  124. package/dist/elements/Table/OrderableTable.js +5 -1
  125. package/dist/elements/Table/OrderableTable.js.map +1 -1
  126. package/dist/elements/Table/RelationshipProvider/index.d.ts.map +1 -1
  127. package/dist/elements/Table/RelationshipProvider/index.js +25 -24
  128. package/dist/elements/Table/RelationshipProvider/index.js.map +1 -1
  129. package/dist/elements/UnpublishMany/DrawerContent.d.ts.map +1 -1
  130. package/dist/elements/UnpublishMany/DrawerContent.js +8 -5
  131. package/dist/elements/UnpublishMany/DrawerContent.js.map +1 -1
  132. package/dist/elements/Upload/index.d.ts.map +1 -1
  133. package/dist/elements/Upload/index.js +7 -5
  134. package/dist/elements/Upload/index.js.map +1 -1
  135. package/dist/elements/WhereBuilder/Condition/Relationship/index.d.ts.map +1 -1
  136. package/dist/elements/WhereBuilder/Condition/Relationship/index.js +14 -8
  137. package/dist/elements/WhereBuilder/Condition/Relationship/index.js.map +1 -1
  138. package/dist/elements/withMergedProps/index.d.ts +1 -1
  139. package/dist/elements/withMergedProps/index.js +1 -1
  140. package/dist/elements/withMergedProps/index.js.map +1 -1
  141. package/dist/exports/client/index.d.ts +1 -2
  142. package/dist/exports/client/index.d.ts.map +1 -1
  143. package/dist/exports/client/index.js +12 -12
  144. package/dist/exports/client/index.js.map +4 -4
  145. package/dist/exports/rsc/index.d.ts +1 -0
  146. package/dist/exports/rsc/index.d.ts.map +1 -1
  147. package/dist/exports/rsc/index.js +1 -0
  148. package/dist/exports/rsc/index.js.map +1 -1
  149. package/dist/exports/shared/index.d.ts +3 -0
  150. package/dist/exports/shared/index.d.ts.map +1 -1
  151. package/dist/exports/shared/index.js +2 -2
  152. package/dist/exports/shared/index.js.map +4 -4
  153. package/dist/fields/Array/ArrayRow.d.ts +7 -18
  154. package/dist/fields/Array/ArrayRow.d.ts.map +1 -1
  155. package/dist/fields/Array/ArrayRow.js +133 -65
  156. package/dist/fields/Array/ArrayRow.js.map +1 -1
  157. package/dist/fields/Array/index.d.ts.map +1 -1
  158. package/dist/fields/Array/index.js +3 -10
  159. package/dist/fields/Array/index.js.map +1 -1
  160. package/dist/fields/Relationship/Input.d.ts.map +1 -1
  161. package/dist/fields/Relationship/Input.js +9 -3
  162. package/dist/fields/Relationship/Input.js.map +1 -1
  163. package/dist/fields/Upload/Input.d.ts.map +1 -1
  164. package/dist/fields/Upload/Input.js +7 -3
  165. package/dist/fields/Upload/Input.js.map +1 -1
  166. package/dist/forms/fieldSchemasToFormState/fieldSchemasToFormState.spec.js +8 -1
  167. package/dist/forms/fieldSchemasToFormState/fieldSchemasToFormState.spec.js.map +1 -1
  168. package/dist/graphics/Account/index.d.ts.map +1 -1
  169. package/dist/graphics/Account/index.js +2 -4
  170. package/dist/graphics/Account/index.js.map +1 -1
  171. package/dist/providers/Auth/index.d.ts.map +1 -1
  172. package/dist/providers/Auth/index.js +23 -26
  173. package/dist/providers/Auth/index.js.map +1 -1
  174. package/dist/providers/DocumentInfo/index.d.ts +1 -1
  175. package/dist/providers/DocumentInfo/index.d.ts.map +1 -1
  176. package/dist/providers/DocumentInfo/index.js +16 -15
  177. package/dist/providers/DocumentInfo/index.js.map +1 -1
  178. package/dist/providers/DocumentInfo/useGetDocPermissions.d.ts +1 -2
  179. package/dist/providers/DocumentInfo/useGetDocPermissions.d.ts.map +1 -1
  180. package/dist/providers/DocumentInfo/useGetDocPermissions.js +16 -6
  181. package/dist/providers/DocumentInfo/useGetDocPermissions.js.map +1 -1
  182. package/dist/providers/Folders/index.d.ts.map +1 -1
  183. package/dist/providers/Folders/index.js +14 -11
  184. package/dist/providers/Folders/index.js.map +1 -1
  185. package/dist/providers/Locale/index.d.ts.map +1 -1
  186. package/dist/providers/Locale/index.js +45 -34
  187. package/dist/providers/Locale/index.js.map +1 -1
  188. package/dist/providers/Preferences/index.d.ts.map +1 -1
  189. package/dist/providers/Preferences/index.js +16 -7
  190. package/dist/providers/Preferences/index.js.map +1 -1
  191. package/dist/providers/RouteTransition/index.d.ts.map +1 -1
  192. package/dist/providers/RouteTransition/index.js +6 -1
  193. package/dist/providers/RouteTransition/index.js.map +1 -1
  194. package/dist/providers/TableColumns/buildColumnState/renderCell.d.ts.map +1 -1
  195. package/dist/providers/TableColumns/buildColumnState/renderCell.js +1 -2
  196. package/dist/providers/TableColumns/buildColumnState/renderCell.js.map +1 -1
  197. package/dist/scss/app.scss +14 -1
  198. package/dist/styles.css +1 -1
  199. package/dist/utilities/getGlobalData.d.ts +11 -0
  200. package/dist/utilities/getGlobalData.d.ts.map +1 -0
  201. package/dist/utilities/getGlobalData.js +49 -0
  202. package/dist/utilities/getGlobalData.js.map +1 -0
  203. package/dist/utilities/getNavGroups.d.ts +5 -0
  204. package/dist/utilities/getNavGroups.d.ts.map +1 -0
  205. package/dist/utilities/getNavGroups.js +22 -0
  206. package/dist/utilities/getNavGroups.js.map +1 -0
  207. package/dist/utilities/getVisibleEntities.d.ts +5 -0
  208. package/dist/utilities/getVisibleEntities.d.ts.map +1 -0
  209. package/dist/utilities/getVisibleEntities.js +31 -0
  210. package/dist/utilities/getVisibleEntities.js.map +1 -0
  211. package/dist/utilities/groupNavItems.d.ts +3 -0
  212. package/dist/utilities/groupNavItems.d.ts.map +1 -1
  213. package/dist/utilities/groupNavItems.js +3 -0
  214. package/dist/utilities/groupNavItems.js.map +1 -1
  215. package/dist/utilities/handleBackToDashboard.js +1 -1
  216. package/dist/utilities/handleBackToDashboard.js.map +1 -1
  217. package/dist/utilities/handleGoBack.d.ts.map +1 -1
  218. package/dist/utilities/handleGoBack.js +1 -2
  219. package/dist/utilities/handleGoBack.js.map +1 -1
  220. package/dist/utilities/normalizeRelationshipValue.spec.js +1 -1
  221. package/dist/utilities/normalizeRelationshipValue.spec.js.map +1 -1
  222. package/dist/views/CollectionFolder/index.js +2 -4
  223. package/dist/views/CollectionFolder/index.js.map +1 -1
  224. package/dist/views/Edit/Auth/index.d.ts.map +1 -1
  225. package/dist/views/Edit/Auth/index.js +22 -21
  226. package/dist/views/Edit/Auth/index.js.map +1 -1
  227. package/dist/views/Edit/SetDocumentStepNav/index.d.ts.map +1 -1
  228. package/dist/views/Edit/SetDocumentStepNav/index.js +36 -22
  229. package/dist/views/Edit/SetDocumentStepNav/index.js.map +1 -1
  230. package/dist/views/Edit/index.d.ts.map +1 -1
  231. package/dist/views/Edit/index.js +2 -3
  232. package/dist/views/Edit/index.js.map +1 -1
  233. package/dist/views/List/index.d.ts.map +1 -1
  234. package/dist/views/List/index.js +1 -2
  235. package/dist/views/List/index.js.map +1 -1
  236. package/dist/widgets/CollectionCards/index.d.ts +5 -0
  237. package/dist/widgets/CollectionCards/index.d.ts.map +1 -0
  238. package/dist/widgets/CollectionCards/index.js +135 -0
  239. package/dist/widgets/CollectionCards/index.js.map +1 -0
  240. package/dist/widgets/CollectionCards/index.scss +70 -0
  241. package/package.json +5 -5
@@ -2,6 +2,7 @@ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-run
2
2
  import { useModal } from '@faceless-ui/modal';
3
3
  import { getTranslation } from '@payloadcms/translations';
4
4
  import { useRouter } from 'next/navigation.js';
5
+ import { formatAdminURL } from 'payload/shared';
5
6
  import React from 'react';
6
7
  import { toast } from 'sonner';
7
8
  import { Dots } from '../../../icons/Dots/index.js';
@@ -49,8 +50,7 @@ export function CurrentFolderActions({
49
50
  config
50
51
  } = useConfig();
51
52
  const {
52
- routes,
53
- serverURL
53
+ routes
54
54
  } = config;
55
55
  const {
56
56
  closeModal,
@@ -61,14 +61,17 @@ export function CurrentFolderActions({
61
61
  t
62
62
  } = useTranslation();
63
63
  const deleteCurrentFolder = React.useCallback(async () => {
64
- await fetch(`${serverURL}${routes.api}/${folderCollectionSlug}/${folderID}?depth=0`, {
64
+ await fetch(formatAdminURL({
65
+ apiRoute: routes.api,
66
+ path: `/${folderCollectionSlug}/${folderID}?depth=0`
67
+ }), {
65
68
  credentials: 'include',
66
69
  method: 'DELETE'
67
70
  });
68
71
  startRouteTransition(() => {
69
72
  router.push(getFolderRoute(breadcrumbs[breadcrumbs.length - 2]?.id || null));
70
73
  });
71
- }, [breadcrumbs, folderCollectionSlug, folderID, getFolderRoute, router, serverURL, routes.api, startRouteTransition]);
74
+ }, [breadcrumbs, folderCollectionSlug, folderID, getFolderRoute, router, routes.api, startRouteTransition]);
72
75
  if (!folderID) {
73
76
  return null;
74
77
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["useModal","getTranslation","useRouter","React","toast","Dots","useConfig","useFolder","useRouteCache","useRouteTransition","useTranslation","ConfirmationModal","useDocumentDrawer","Popup","PopupList","Translation","MoveItemsToFolderDrawer","moveToFolderDrawerSlug","confirmDeleteDrawerSlug","baseClass","CurrentFolderActions","className","router","startRouteTransition","breadcrumbs","currentFolder","folderCollectionConfig","folderCollectionSlug","folderFieldName","folderID","getFolderRoute","moveToFolder","FolderDocumentDrawer","closeDrawer","closeFolderDrawer","openDrawer","openFolderDrawer","id","collectionSlug","clearRouteCache","config","routes","serverURL","closeModal","openModal","i18n","t","deleteCurrentFolder","useCallback","fetch","api","credentials","method","push","length","_jsxs","_Fragment","_jsx","button","filter","Boolean","join","render","ButtonGroup","Button","onClick","label","labels","singular","action","drawerSlug","folderAssignedCollections","value","folderType","fromFolderID","fromFolderName","_folderOrDocumentTitle","itemsToMove","onConfirm","name","toFolderID","success","folderName","title","body","elements","1","children","i18nKey","variables","confirmingLabel","heading","modalSlug","onSave"],"sources":["../../../../src/elements/FolderView/CurrentFolderActions/index.tsx"],"sourcesContent":["import { useModal } from '@faceless-ui/modal'\nimport { getTranslation } from '@payloadcms/translations'\nimport { useRouter } from 'next/navigation.js'\nimport React from 'react'\nimport { toast } from 'sonner'\n\nimport { Dots } from '../../../icons/Dots/index.js'\nimport { useConfig } from '../../../providers/Config/index.js'\nimport { useFolder } from '../../../providers/Folders/index.js'\nimport { useRouteCache } from '../../../providers/RouteCache/index.js'\nimport { useRouteTransition } from '../../../providers/RouteTransition/index.js'\nimport { useTranslation } from '../../../providers/Translation/index.js'\nimport { ConfirmationModal } from '../../ConfirmationModal/index.js'\nimport { useDocumentDrawer } from '../../DocumentDrawer/index.js'\nimport { Popup, PopupList } from '../../Popup/index.js'\nimport { Translation } from '../../Translation/index.js'\nimport { MoveItemsToFolderDrawer } from '../Drawers/MoveToFolder/index.js'\n\nconst moveToFolderDrawerSlug = 'move-to-folder--current-folder'\nconst confirmDeleteDrawerSlug = 'confirm-many-delete'\n\nconst baseClass = 'current-folder-actions'\n\ntype Props = {\n className?: string\n}\nexport function CurrentFolderActions({ className }: Props) {\n const router = useRouter()\n const { startRouteTransition } = useRouteTransition()\n const {\n breadcrumbs,\n currentFolder,\n folderCollectionConfig,\n folderCollectionSlug,\n folderFieldName,\n folderID,\n getFolderRoute,\n moveToFolder,\n } = useFolder()\n const [FolderDocumentDrawer, , { closeDrawer: closeFolderDrawer, openDrawer: openFolderDrawer }] =\n useDocumentDrawer({\n id: folderID,\n collectionSlug: folderCollectionSlug,\n })\n const { clearRouteCache } = useRouteCache()\n const { config } = useConfig()\n const { routes, serverURL } = config\n const { closeModal, openModal } = useModal()\n const { i18n, t } = useTranslation()\n\n const deleteCurrentFolder = React.useCallback(async () => {\n await fetch(`${serverURL}${routes.api}/${folderCollectionSlug}/${folderID}?depth=0`, {\n credentials: 'include',\n method: 'DELETE',\n })\n startRouteTransition(() => {\n router.push(getFolderRoute(breadcrumbs[breadcrumbs.length - 2]?.id || null))\n })\n }, [\n breadcrumbs,\n folderCollectionSlug,\n folderID,\n getFolderRoute,\n router,\n serverURL,\n routes.api,\n startRouteTransition,\n ])\n\n if (!folderID) {\n return null\n }\n\n return (\n <>\n <Popup\n button={<Dots />}\n className={[baseClass, className].filter(Boolean).join(' ')}\n render={() => (\n <PopupList.ButtonGroup>\n <PopupList.Button\n onClick={() => {\n openFolderDrawer()\n }}\n >\n {t('general:editLabel', {\n label: getTranslation(folderCollectionConfig.labels.singular, i18n),\n })}\n </PopupList.Button>\n <PopupList.Button\n onClick={() => {\n openModal(moveToFolderDrawerSlug)\n }}\n >\n {t('folder:moveFolder')}\n </PopupList.Button>\n <PopupList.Button\n onClick={() => {\n openModal(confirmDeleteDrawerSlug)\n }}\n >\n {t('folder:deleteFolder')}\n </PopupList.Button>\n </PopupList.ButtonGroup>\n )}\n />\n <MoveItemsToFolderDrawer\n action=\"moveItemToFolder\"\n drawerSlug={moveToFolderDrawerSlug}\n folderAssignedCollections={currentFolder?.value.folderType}\n folderCollectionSlug={folderCollectionSlug}\n folderFieldName={folderFieldName}\n fromFolderID={currentFolder?.value.id}\n fromFolderName={currentFolder?.value._folderOrDocumentTitle}\n itemsToMove={[currentFolder]}\n onConfirm={async ({ id, name }) => {\n await moveToFolder({\n itemsToMove: [currentFolder],\n toFolderID: id,\n })\n if (id) {\n // moved to folder\n toast.success(\n t('folder:itemHasBeenMoved', {\n folderName: `\"${name}\"`,\n title: currentFolder.value._folderOrDocumentTitle,\n }),\n )\n } else {\n // moved to root\n toast.success(\n t('folder:itemHasBeenMovedToRoot', {\n title: currentFolder.value._folderOrDocumentTitle,\n }),\n )\n }\n closeModal(moveToFolderDrawerSlug)\n }}\n title={currentFolder.value._folderOrDocumentTitle}\n />\n\n <ConfirmationModal\n body={\n <Translation\n elements={{\n '1': ({ children }) => <strong>{children}</strong>,\n }}\n i18nKey=\"general:aboutToDelete\"\n t={t}\n variables={{\n label: getTranslation(folderCollectionConfig.labels.singular, i18n),\n title: currentFolder.value._folderOrDocumentTitle,\n }}\n />\n }\n confirmingLabel={t('general:deleting')}\n heading={t('general:confirmDeletion')}\n modalSlug={confirmDeleteDrawerSlug}\n onConfirm={deleteCurrentFolder}\n />\n\n <FolderDocumentDrawer\n onSave={() => {\n closeFolderDrawer()\n clearRouteCache()\n }}\n />\n </>\n )\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["useModal","getTranslation","useRouter","formatAdminURL","React","toast","Dots","useConfig","useFolder","useRouteCache","useRouteTransition","useTranslation","ConfirmationModal","useDocumentDrawer","Popup","PopupList","Translation","MoveItemsToFolderDrawer","moveToFolderDrawerSlug","confirmDeleteDrawerSlug","baseClass","CurrentFolderActions","className","router","startRouteTransition","breadcrumbs","currentFolder","folderCollectionConfig","folderCollectionSlug","folderFieldName","folderID","getFolderRoute","moveToFolder","FolderDocumentDrawer","closeDrawer","closeFolderDrawer","openDrawer","openFolderDrawer","id","collectionSlug","clearRouteCache","config","routes","closeModal","openModal","i18n","t","deleteCurrentFolder","useCallback","fetch","apiRoute","api","path","credentials","method","push","length","_jsxs","_Fragment","_jsx","button","filter","Boolean","join","render","ButtonGroup","Button","onClick","label","labels","singular","action","drawerSlug","folderAssignedCollections","value","folderType","fromFolderID","fromFolderName","_folderOrDocumentTitle","itemsToMove","onConfirm","name","toFolderID","success","folderName","title","body","elements","1","children","i18nKey","variables","confirmingLabel","heading","modalSlug","onSave"],"sources":["../../../../src/elements/FolderView/CurrentFolderActions/index.tsx"],"sourcesContent":["import { useModal } from '@faceless-ui/modal'\nimport { getTranslation } from '@payloadcms/translations'\nimport { useRouter } from 'next/navigation.js'\nimport { formatAdminURL } from 'payload/shared'\nimport React from 'react'\nimport { toast } from 'sonner'\n\nimport { Dots } from '../../../icons/Dots/index.js'\nimport { useConfig } from '../../../providers/Config/index.js'\nimport { useFolder } from '../../../providers/Folders/index.js'\nimport { useRouteCache } from '../../../providers/RouteCache/index.js'\nimport { useRouteTransition } from '../../../providers/RouteTransition/index.js'\nimport { useTranslation } from '../../../providers/Translation/index.js'\nimport { ConfirmationModal } from '../../ConfirmationModal/index.js'\nimport { useDocumentDrawer } from '../../DocumentDrawer/index.js'\nimport { Popup, PopupList } from '../../Popup/index.js'\nimport { Translation } from '../../Translation/index.js'\nimport { MoveItemsToFolderDrawer } from '../Drawers/MoveToFolder/index.js'\n\nconst moveToFolderDrawerSlug = 'move-to-folder--current-folder'\nconst confirmDeleteDrawerSlug = 'confirm-many-delete'\n\nconst baseClass = 'current-folder-actions'\n\ntype Props = {\n className?: string\n}\nexport function CurrentFolderActions({ className }: Props) {\n const router = useRouter()\n const { startRouteTransition } = useRouteTransition()\n const {\n breadcrumbs,\n currentFolder,\n folderCollectionConfig,\n folderCollectionSlug,\n folderFieldName,\n folderID,\n getFolderRoute,\n moveToFolder,\n } = useFolder()\n const [FolderDocumentDrawer, , { closeDrawer: closeFolderDrawer, openDrawer: openFolderDrawer }] =\n useDocumentDrawer({\n id: folderID,\n collectionSlug: folderCollectionSlug,\n })\n const { clearRouteCache } = useRouteCache()\n const { config } = useConfig()\n const { routes } = config\n const { closeModal, openModal } = useModal()\n const { i18n, t } = useTranslation()\n\n const deleteCurrentFolder = React.useCallback(async () => {\n await fetch(\n formatAdminURL({\n apiRoute: routes.api,\n path: `/${folderCollectionSlug}/${folderID}?depth=0`,\n }),\n {\n credentials: 'include',\n method: 'DELETE',\n },\n )\n startRouteTransition(() => {\n router.push(getFolderRoute(breadcrumbs[breadcrumbs.length - 2]?.id || null))\n })\n }, [\n breadcrumbs,\n folderCollectionSlug,\n folderID,\n getFolderRoute,\n router,\n routes.api,\n startRouteTransition,\n ])\n\n if (!folderID) {\n return null\n }\n\n return (\n <>\n <Popup\n button={<Dots />}\n className={[baseClass, className].filter(Boolean).join(' ')}\n render={() => (\n <PopupList.ButtonGroup>\n <PopupList.Button\n onClick={() => {\n openFolderDrawer()\n }}\n >\n {t('general:editLabel', {\n label: getTranslation(folderCollectionConfig.labels.singular, i18n),\n })}\n </PopupList.Button>\n <PopupList.Button\n onClick={() => {\n openModal(moveToFolderDrawerSlug)\n }}\n >\n {t('folder:moveFolder')}\n </PopupList.Button>\n <PopupList.Button\n onClick={() => {\n openModal(confirmDeleteDrawerSlug)\n }}\n >\n {t('folder:deleteFolder')}\n </PopupList.Button>\n </PopupList.ButtonGroup>\n )}\n />\n <MoveItemsToFolderDrawer\n action=\"moveItemToFolder\"\n drawerSlug={moveToFolderDrawerSlug}\n folderAssignedCollections={currentFolder?.value.folderType}\n folderCollectionSlug={folderCollectionSlug}\n folderFieldName={folderFieldName}\n fromFolderID={currentFolder?.value.id}\n fromFolderName={currentFolder?.value._folderOrDocumentTitle}\n itemsToMove={[currentFolder]}\n onConfirm={async ({ id, name }) => {\n await moveToFolder({\n itemsToMove: [currentFolder],\n toFolderID: id,\n })\n if (id) {\n // moved to folder\n toast.success(\n t('folder:itemHasBeenMoved', {\n folderName: `\"${name}\"`,\n title: currentFolder.value._folderOrDocumentTitle,\n }),\n )\n } else {\n // moved to root\n toast.success(\n t('folder:itemHasBeenMovedToRoot', {\n title: currentFolder.value._folderOrDocumentTitle,\n }),\n )\n }\n closeModal(moveToFolderDrawerSlug)\n }}\n title={currentFolder.value._folderOrDocumentTitle}\n />\n\n <ConfirmationModal\n body={\n <Translation\n elements={{\n '1': ({ children }) => <strong>{children}</strong>,\n }}\n i18nKey=\"general:aboutToDelete\"\n t={t}\n variables={{\n label: getTranslation(folderCollectionConfig.labels.singular, i18n),\n title: currentFolder.value._folderOrDocumentTitle,\n }}\n />\n }\n confirmingLabel={t('general:deleting')}\n heading={t('general:confirmDeletion')}\n modalSlug={confirmDeleteDrawerSlug}\n onConfirm={deleteCurrentFolder}\n />\n\n <FolderDocumentDrawer\n onSave={() => {\n closeFolderDrawer()\n clearRouteCache()\n }}\n />\n </>\n )\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1,4 +1,4 @@
1
- import type { FolderOrDocument } from 'payload/shared';
1
+ import { type FolderOrDocument } from 'payload/shared';
2
2
  import React from 'react';
3
3
  import type { Props as ButtonProps } from '../../Button/types.js';
4
4
  import './index.scss';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/elements/FolderView/MoveDocToFolder/index.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAA;AAItD,OAAO,KAAgB,MAAM,OAAO,CAAA;AAGpC,OAAO,KAAK,EAAE,KAAK,IAAI,WAAW,EAAE,MAAM,uBAAuB,CAAA;AASjE,OAAO,cAAc,CAAA;AAKrB;;GAEG;AACH,wBAAgB,eAAe,CAAC,EAC9B,WAAW,EACX,SAAc,EACd,oBAAoB,EACpB,eAAe,GAChB,EAAE;IACD,QAAQ,CAAC,WAAW,CAAC,EAAE,OAAO,CAAC,WAAW,CAAC,CAAA;IAC3C,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,oBAAoB,EAAE,MAAM,CAAA;IACrC,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAA;CACjC,qBAsDA;AAED,KAAK,0BAA0B,GAAG;IAChC,QAAQ,CAAC,WAAW,CAAC,EAAE,OAAO,CAAC,WAAW,CAAC,CAAA;IAC3C,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAA;IAC/B,QAAQ,CAAC,OAAO,EAAE,gBAAgB,CAAC,OAAO,CAAC,CAAA;IAC3C,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAAA;IAC/B,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,oBAAoB,EAAE,MAAM,CAAA;IACrC,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAA;IAChC,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IACvC,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAA;IAC/B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE;QAAE,EAAE,EAAE,MAAM,GAAG,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAA;IAC1F,QAAQ,CAAC,gBAAgB,CAAC,EAAE,OAAO,CAAA;CACpC,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,qBAAqB,uLAc/B,0BAA0B,sBA0E5B,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/elements/FolderView/MoveDocToFolder/index.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,gBAAgB,EAAkB,MAAM,gBAAgB,CAAA;AACtE,OAAO,KAAgB,MAAM,OAAO,CAAA;AAGpC,OAAO,KAAK,EAAE,KAAK,IAAI,WAAW,EAAE,MAAM,uBAAuB,CAAA;AASjE,OAAO,cAAc,CAAA;AAKrB;;GAEG;AACH,wBAAgB,eAAe,CAAC,EAC9B,WAAW,EACX,SAAc,EACd,oBAAoB,EACpB,eAAe,GAChB,EAAE;IACD,QAAQ,CAAC,WAAW,CAAC,EAAE,OAAO,CAAC,WAAW,CAAC,CAAA;IAC3C,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,oBAAoB,EAAE,MAAM,CAAA;IACrC,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAA;CACjC,qBA2DA;AAED,KAAK,0BAA0B,GAAG;IAChC,QAAQ,CAAC,WAAW,CAAC,EAAE,OAAO,CAAC,WAAW,CAAC,CAAA;IAC3C,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAA;IAC/B,QAAQ,CAAC,OAAO,EAAE,gBAAgB,CAAC,OAAO,CAAC,CAAA;IAC3C,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAAA;IAC/B,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,oBAAoB,EAAE,MAAM,CAAA;IACrC,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAA;IAChC,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IACvC,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAA;IAC/B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE;QAAE,EAAE,EAAE,MAAM,GAAG,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAA;IAC1F,QAAQ,CAAC,gBAAgB,CAAC,EAAE,OAAO,CAAA;CACpC,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,qBAAqB,uLAc/B,0BAA0B,sBA0E5B,CAAA"}
@@ -4,6 +4,7 @@ import { c as _c } from "react/compiler-runtime";
4
4
  import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
5
5
  import { useModal } from '@faceless-ui/modal';
6
6
  import { getTranslation } from '@payloadcms/translations';
7
+ import { formatAdminURL } from 'payload/shared';
7
8
  import React, { useId } from 'react';
8
9
  import { toast } from 'sonner';
9
10
  import { useForm, useFormFields } from '../../../forms/Form/context.js';
@@ -73,7 +74,10 @@ export function MoveDocToFolder(t0) {
73
74
  t4 = () => {
74
75
  const fetchFolderLabel = async function fetchFolderLabel() {
75
76
  if (fromFolderID && (typeof fromFolderID === "string" || typeof fromFolderID === "number")) {
76
- const response = await fetch(`${config.routes.api}/${folderCollectionSlug}/${fromFolderID}`);
77
+ const response = await fetch(formatAdminURL({
78
+ apiRoute: config.routes.api,
79
+ path: `/${folderCollectionSlug}/${fromFolderID}`
80
+ }));
77
81
  const folderData = await response.json();
78
82
  setFromFolderName(folderData?.name || t("folder:noFolder"));
79
83
  } else {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["c","_c","useModal","getTranslation","React","useId","toast","useForm","useFormFields","FolderIcon","useConfig","useDocumentInfo","useTranslation","Button","formatDrawerSlug","useDrawerDepth","MoveItemsToFolderDrawer","baseClass","MoveDocToFolder","t0","$","buttonProps","className","t1","folderCollectionSlug","folderFieldName","undefined","t","dispatchField","_temp","t2","t3","fields","currentParentFolder","fromFolderID","value","id","collectionSlug","initialData","title","setModified","fromFolderName","setFromFolderName","useState","config","modalID","t4","t5","routes","api","fetchFolderLabel","response","fetch","folderData","json","name","useEffect","t6","t7","t8","id_0","type","path","t9","_jsx","MoveDocToFolderButton","docData","docID","docTitle","modalSlug","onConfirm","skipConfirmModal","dispatch","getEntityConfig","i18n","closeModal","openModal","drawerDepth","drawerSlug","slug","depth","titleToRender","labels","singular","filter","Boolean","_jsxs","_Fragment","children","buttonStyle","join","icon","iconPosition","onClick","action","folderAssignedCollections","itemsToMove","itemKey","relationTo","args","success","folderName","_"],"sources":["../../../../src/elements/FolderView/MoveDocToFolder/index.tsx"],"sourcesContent":["'use client'\n\nimport type { CollectionSlug } from 'payload'\nimport type { FolderOrDocument } from 'payload/shared'\n\nimport { useModal } from '@faceless-ui/modal'\nimport { getTranslation } from '@payloadcms/translations'\nimport React, { useId } from 'react'\nimport { toast } from 'sonner'\n\nimport type { Props as ButtonProps } from '../../Button/types.js'\n\nimport { useForm, useFormFields } from '../../../forms/Form/context.js'\nimport { FolderIcon } from '../../../icons/Folder/index.js'\nimport { useConfig } from '../../../providers/Config/index.js'\nimport { useDocumentInfo } from '../../../providers/DocumentInfo/index.js'\nimport { useTranslation } from '../../../providers/Translation/index.js'\nimport { Button } from '../../Button/index.js'\nimport { formatDrawerSlug, useDrawerDepth } from '../../Drawer/index.js'\nimport './index.scss'\nimport { MoveItemsToFolderDrawer } from '../Drawers/MoveToFolder/index.js'\n\nconst baseClass = 'move-doc-to-folder'\n\n/**\n * This is the button shown on the edit document view. It uses the more generic `MoveDocToFolderButton` component.\n */\nexport function MoveDocToFolder({\n buttonProps,\n className = '',\n folderCollectionSlug,\n folderFieldName,\n}: {\n readonly buttonProps?: Partial<ButtonProps>\n readonly className?: string\n readonly folderCollectionSlug: string\n readonly folderFieldName: string\n}) {\n const { t } = useTranslation()\n const dispatchField = useFormFields(([_, dispatch]) => dispatch)\n const currentParentFolder = useFormFields(\n ([fields]) => (fields && fields?.[folderFieldName]) || null,\n )\n const fromFolderID = currentParentFolder?.value\n const { id, collectionSlug, initialData, title } = useDocumentInfo()\n const { setModified } = useForm()\n const [fromFolderName, setFromFolderName] = React.useState(() => `${t('general:loading')}...`)\n\n const { config } = useConfig()\n const modalID = useId()\n\n React.useEffect(() => {\n async function fetchFolderLabel() {\n if (fromFolderID && (typeof fromFolderID === 'string' || typeof fromFolderID === 'number')) {\n const response = await fetch(`${config.routes.api}/${folderCollectionSlug}/${fromFolderID}`)\n const folderData = await response.json()\n setFromFolderName(folderData?.name || t('folder:noFolder'))\n } else {\n setFromFolderName(t('folder:noFolder'))\n }\n }\n\n void fetchFolderLabel()\n }, [folderCollectionSlug, config.routes.api, fromFolderID, t])\n\n return (\n <MoveDocToFolderButton\n buttonProps={buttonProps}\n className={className}\n collectionSlug={collectionSlug}\n docData={initialData as FolderOrDocument['value']}\n docID={id}\n docTitle={title}\n folderCollectionSlug={folderCollectionSlug}\n folderFieldName={folderFieldName}\n fromFolderID={fromFolderID as number | string}\n fromFolderName={fromFolderName}\n modalSlug={`move-to-folder-${modalID}`}\n onConfirm={({ id }) => {\n if (currentParentFolder.value !== id) {\n dispatchField({\n type: 'UPDATE',\n path: folderFieldName,\n value: id,\n })\n setModified(true)\n }\n }}\n skipConfirmModal={!currentParentFolder?.value}\n />\n )\n}\n\ntype MoveDocToFolderButtonProps = {\n readonly buttonProps?: Partial<ButtonProps>\n readonly className?: string\n readonly collectionSlug: string\n readonly docData: FolderOrDocument['value']\n readonly docID: number | string\n readonly docTitle?: string\n readonly folderCollectionSlug: string\n readonly folderFieldName: string\n readonly fromFolderID?: number | string\n readonly fromFolderName: string\n readonly modalSlug: string\n readonly onConfirm?: (args: { id: number | string; name: string }) => Promise<void> | void\n readonly skipConfirmModal?: boolean\n}\n\n/**\n * This is a more generic button that can be used in other contexts, such as table cells and the edit view.\n */\nexport const MoveDocToFolderButton = ({\n buttonProps,\n className,\n collectionSlug,\n docData,\n docID,\n docTitle,\n folderCollectionSlug,\n folderFieldName,\n fromFolderID,\n fromFolderName,\n modalSlug,\n onConfirm,\n skipConfirmModal,\n}: MoveDocToFolderButtonProps) => {\n const { getEntityConfig } = useConfig()\n const { i18n, t } = useTranslation()\n const { closeModal, openModal } = useModal()\n const drawerDepth = useDrawerDepth()\n const drawerSlug = formatDrawerSlug({ slug: modalSlug, depth: drawerDepth })\n\n const titleToRender =\n docTitle || getTranslation(getEntityConfig({ collectionSlug }).labels.singular, i18n)\n\n return (\n <>\n <Button\n buttonStyle=\"subtle\"\n className={[baseClass, className].filter(Boolean).join(' ')}\n icon={<FolderIcon />}\n iconPosition=\"left\"\n onClick={() => {\n openModal(drawerSlug)\n }}\n {...buttonProps}\n >\n {fromFolderName}\n </Button>\n\n <MoveItemsToFolderDrawer\n action=\"moveItemToFolder\"\n drawerSlug={drawerSlug}\n //todo this should inherit\n folderAssignedCollections={[collectionSlug]}\n folderCollectionSlug={folderCollectionSlug}\n folderFieldName={folderFieldName}\n fromFolderID={fromFolderID}\n fromFolderName={fromFolderName}\n itemsToMove={[\n {\n itemKey: `${collectionSlug}-${docID}`,\n relationTo: collectionSlug,\n value: { ...docData, id: docID },\n },\n ]}\n onConfirm={async (args) => {\n if (fromFolderID !== args.id && typeof onConfirm === 'function') {\n try {\n await onConfirm(args)\n\n if (args.id) {\n // moved to folder\n toast.success(\n t('folder:itemHasBeenMoved', {\n folderName: `\"${args.name}\"`,\n title: titleToRender,\n }),\n )\n } else {\n // moved to root\n toast.success(\n t('folder:itemHasBeenMovedToRoot', {\n title: titleToRender,\n }),\n )\n }\n } catch (_) {\n // todo: add error toast?\n }\n }\n\n closeModal(drawerSlug)\n }}\n skipConfirmModal={skipConfirmModal}\n title={titleToRender}\n />\n </>\n )\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["c","_c","useModal","getTranslation","formatAdminURL","React","useId","toast","useForm","useFormFields","FolderIcon","useConfig","useDocumentInfo","useTranslation","Button","formatDrawerSlug","useDrawerDepth","MoveItemsToFolderDrawer","baseClass","MoveDocToFolder","t0","$","buttonProps","className","t1","folderCollectionSlug","folderFieldName","undefined","t","dispatchField","_temp","t2","t3","fields","currentParentFolder","fromFolderID","value","id","collectionSlug","initialData","title","setModified","fromFolderName","setFromFolderName","useState","config","modalID","t4","t5","routes","api","fetchFolderLabel","response","fetch","apiRoute","path","folderData","json","name","useEffect","t6","t7","t8","id_0","type","t9","_jsx","MoveDocToFolderButton","docData","docID","docTitle","modalSlug","onConfirm","skipConfirmModal","dispatch","getEntityConfig","i18n","closeModal","openModal","drawerDepth","drawerSlug","slug","depth","titleToRender","labels","singular","filter","Boolean","_jsxs","_Fragment","children","buttonStyle","join","icon","iconPosition","onClick","action","folderAssignedCollections","itemsToMove","itemKey","relationTo","args","success","folderName","_"],"sources":["../../../../src/elements/FolderView/MoveDocToFolder/index.tsx"],"sourcesContent":["'use client'\n\nimport { useModal } from '@faceless-ui/modal'\nimport { getTranslation } from '@payloadcms/translations'\nimport { type FolderOrDocument, formatAdminURL } from 'payload/shared'\nimport React, { useId } from 'react'\nimport { toast } from 'sonner'\n\nimport type { Props as ButtonProps } from '../../Button/types.js'\n\nimport { useForm, useFormFields } from '../../../forms/Form/context.js'\nimport { FolderIcon } from '../../../icons/Folder/index.js'\nimport { useConfig } from '../../../providers/Config/index.js'\nimport { useDocumentInfo } from '../../../providers/DocumentInfo/index.js'\nimport { useTranslation } from '../../../providers/Translation/index.js'\nimport { Button } from '../../Button/index.js'\nimport { formatDrawerSlug, useDrawerDepth } from '../../Drawer/index.js'\nimport './index.scss'\nimport { MoveItemsToFolderDrawer } from '../Drawers/MoveToFolder/index.js'\n\nconst baseClass = 'move-doc-to-folder'\n\n/**\n * This is the button shown on the edit document view. It uses the more generic `MoveDocToFolderButton` component.\n */\nexport function MoveDocToFolder({\n buttonProps,\n className = '',\n folderCollectionSlug,\n folderFieldName,\n}: {\n readonly buttonProps?: Partial<ButtonProps>\n readonly className?: string\n readonly folderCollectionSlug: string\n readonly folderFieldName: string\n}) {\n const { t } = useTranslation()\n const dispatchField = useFormFields(([_, dispatch]) => dispatch)\n const currentParentFolder = useFormFields(\n ([fields]) => (fields && fields?.[folderFieldName]) || null,\n )\n const fromFolderID = currentParentFolder?.value\n const { id, collectionSlug, initialData, title } = useDocumentInfo()\n const { setModified } = useForm()\n const [fromFolderName, setFromFolderName] = React.useState(() => `${t('general:loading')}...`)\n\n const { config } = useConfig()\n const modalID = useId()\n\n React.useEffect(() => {\n async function fetchFolderLabel() {\n if (fromFolderID && (typeof fromFolderID === 'string' || typeof fromFolderID === 'number')) {\n const response = await fetch(\n formatAdminURL({\n apiRoute: config.routes.api,\n path: `/${folderCollectionSlug}/${fromFolderID}`,\n }),\n )\n const folderData = await response.json()\n setFromFolderName(folderData?.name || t('folder:noFolder'))\n } else {\n setFromFolderName(t('folder:noFolder'))\n }\n }\n\n void fetchFolderLabel()\n }, [folderCollectionSlug, config.routes.api, fromFolderID, t])\n\n return (\n <MoveDocToFolderButton\n buttonProps={buttonProps}\n className={className}\n collectionSlug={collectionSlug}\n docData={initialData as FolderOrDocument['value']}\n docID={id}\n docTitle={title}\n folderCollectionSlug={folderCollectionSlug}\n folderFieldName={folderFieldName}\n fromFolderID={fromFolderID as number | string}\n fromFolderName={fromFolderName}\n modalSlug={`move-to-folder-${modalID}`}\n onConfirm={({ id }) => {\n if (currentParentFolder.value !== id) {\n dispatchField({\n type: 'UPDATE',\n path: folderFieldName,\n value: id,\n })\n setModified(true)\n }\n }}\n skipConfirmModal={!currentParentFolder?.value}\n />\n )\n}\n\ntype MoveDocToFolderButtonProps = {\n readonly buttonProps?: Partial<ButtonProps>\n readonly className?: string\n readonly collectionSlug: string\n readonly docData: FolderOrDocument['value']\n readonly docID: number | string\n readonly docTitle?: string\n readonly folderCollectionSlug: string\n readonly folderFieldName: string\n readonly fromFolderID?: number | string\n readonly fromFolderName: string\n readonly modalSlug: string\n readonly onConfirm?: (args: { id: number | string; name: string }) => Promise<void> | void\n readonly skipConfirmModal?: boolean\n}\n\n/**\n * This is a more generic button that can be used in other contexts, such as table cells and the edit view.\n */\nexport const MoveDocToFolderButton = ({\n buttonProps,\n className,\n collectionSlug,\n docData,\n docID,\n docTitle,\n folderCollectionSlug,\n folderFieldName,\n fromFolderID,\n fromFolderName,\n modalSlug,\n onConfirm,\n skipConfirmModal,\n}: MoveDocToFolderButtonProps) => {\n const { getEntityConfig } = useConfig()\n const { i18n, t } = useTranslation()\n const { closeModal, openModal } = useModal()\n const drawerDepth = useDrawerDepth()\n const drawerSlug = formatDrawerSlug({ slug: modalSlug, depth: drawerDepth })\n\n const titleToRender =\n docTitle || getTranslation(getEntityConfig({ collectionSlug }).labels.singular, i18n)\n\n return (\n <>\n <Button\n buttonStyle=\"subtle\"\n className={[baseClass, className].filter(Boolean).join(' ')}\n icon={<FolderIcon />}\n iconPosition=\"left\"\n onClick={() => {\n openModal(drawerSlug)\n }}\n {...buttonProps}\n >\n {fromFolderName}\n </Button>\n\n <MoveItemsToFolderDrawer\n action=\"moveItemToFolder\"\n drawerSlug={drawerSlug}\n //todo this should inherit\n folderAssignedCollections={[collectionSlug]}\n folderCollectionSlug={folderCollectionSlug}\n folderFieldName={folderFieldName}\n fromFolderID={fromFolderID}\n fromFolderName={fromFolderName}\n itemsToMove={[\n {\n itemKey: `${collectionSlug}-${docID}`,\n relationTo: collectionSlug,\n value: { ...docData, id: docID },\n },\n ]}\n onConfirm={async (args) => {\n if (fromFolderID !== args.id && typeof onConfirm === 'function') {\n try {\n await onConfirm(args)\n\n if (args.id) {\n // moved to folder\n toast.success(\n t('folder:itemHasBeenMoved', {\n folderName: `\"${args.name}\"`,\n title: titleToRender,\n }),\n )\n } else {\n // moved to root\n toast.success(\n t('folder:itemHasBeenMovedToRoot', {\n title: titleToRender,\n }),\n )\n }\n } catch (_) {\n // todo: add error toast?\n }\n }\n\n closeModal(drawerSlug)\n }}\n skipConfirmModal={skipConfirmModal}\n title={titleToRender}\n />\n </>\n )\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/IDLabel/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,cAAc,CAAA;AAUrB,eAAO,MAAM,OAAO,EAAE,KAAK,CAAC,EAAE,CAAC;IAAE,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,CA4BjF,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/IDLabel/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,cAAc,CAAA;AAUrB,eAAO,MAAM,OAAO,EAAE,KAAK,CAAC,EAAE,CAAC;IAAE,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,CA0BjF,CAAA"}
@@ -12,7 +12,7 @@ import { sanitizeID } from '../../utilities/sanitizeID.js';
12
12
  import { useDrawerDepth } from '../Drawer/index.js';
13
13
  const baseClass = 'id-label';
14
14
  export const IDLabel = t0 => {
15
- const $ = _c(10);
15
+ const $ = _c(9);
16
16
  const {
17
17
  id,
18
18
  className,
@@ -23,8 +23,7 @@ export const IDLabel = t0 => {
23
23
  config: t2
24
24
  } = useConfig();
25
25
  const {
26
- routes: t3,
27
- serverURL
26
+ routes: t3
28
27
  } = t2;
29
28
  const {
30
29
  admin: adminRoute
@@ -36,19 +35,18 @@ export const IDLabel = t0 => {
36
35
  const drawerDepth = useDrawerDepth();
37
36
  const t4 = `/${collectionSlug ? `collections/${collectionSlug}` : `globals/${globalSlug}`}/${id}`;
38
37
  let t5;
39
- if ($[0] !== adminRoute || $[1] !== className || $[2] !== drawerDepth || $[3] !== id || $[4] !== prefix || $[5] !== serverURL || $[6] !== t4) {
38
+ if ($[0] !== adminRoute || $[1] !== className || $[2] !== drawerDepth || $[3] !== id || $[4] !== prefix || $[5] !== t4) {
40
39
  const docPath = formatAdminURL({
41
40
  adminRoute,
42
- path: t4,
43
- serverURL
41
+ path: t4
44
42
  });
45
43
  let t6;
46
- if ($[8] !== className) {
44
+ if ($[7] !== className) {
47
45
  t6 = [baseClass, className].filter(Boolean);
48
- $[8] = className;
49
- $[9] = t6;
46
+ $[7] = className;
47
+ $[8] = t6;
50
48
  } else {
51
- t6 = $[9];
49
+ t6 = $[8];
52
50
  }
53
51
  t5 = _jsxs("div", {
54
52
  className: t6.join(" "),
@@ -63,11 +61,10 @@ export const IDLabel = t0 => {
63
61
  $[2] = drawerDepth;
64
62
  $[3] = id;
65
63
  $[4] = prefix;
66
- $[5] = serverURL;
67
- $[6] = t4;
68
- $[7] = t5;
64
+ $[5] = t4;
65
+ $[6] = t5;
69
66
  } else {
70
- t5 = $[7];
67
+ t5 = $[6];
71
68
  }
72
69
  return t5;
73
70
  };
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["c","_c","React","Link","useConfig","useDocumentInfo","formatAdminURL","sanitizeID","useDrawerDepth","baseClass","IDLabel","t0","$","id","className","prefix","t1","undefined","config","t2","routes","t3","serverURL","admin","adminRoute","collectionSlug","globalSlug","drawerDepth","t4","t5","docPath","path","t6","filter","Boolean","_jsxs","join","title","children","_jsx","href"],"sources":["../../../src/elements/IDLabel/index.tsx"],"sourcesContent":["'use client'\nimport React from 'react'\n\nimport './index.scss'\nimport { Link } from '../../elements/Link/index.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useDocumentInfo } from '../../providers/DocumentInfo/index.js'\nimport { formatAdminURL } from '../../utilities/formatAdminURL.js'\nimport { sanitizeID } from '../../utilities/sanitizeID.js'\nimport { useDrawerDepth } from '../Drawer/index.js'\n\nconst baseClass = 'id-label'\n\nexport const IDLabel: React.FC<{ className?: string; id: string; prefix?: string }> = ({\n id,\n className,\n prefix = 'ID:',\n}) => {\n const {\n config: {\n routes: { admin: adminRoute },\n serverURL,\n },\n } = useConfig()\n\n const { collectionSlug, globalSlug } = useDocumentInfo()\n const drawerDepth = useDrawerDepth()\n\n const docPath = formatAdminURL({\n adminRoute,\n path: `/${collectionSlug ? `collections/${collectionSlug}` : `globals/${globalSlug}`}/${id}`,\n serverURL,\n })\n\n return (\n <div className={[baseClass, className].filter(Boolean).join(' ')} title={id}>\n {prefix}\n &nbsp;\n {drawerDepth > 1 ? <Link href={docPath}>{sanitizeID(id)}</Link> : sanitizeID(id)}\n </div>\n )\n}\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;;AACA,OAAOC,KAAA,MAAW;AAElB,OAAO;AACP,SAASC,IAAI,QAAQ;AACrB,SAASC,SAAS,QAAQ;AAC1B,SAASC,eAAe,QAAQ;AAChC,SAASC,cAAc,QAAQ;AAC/B,SAASC,UAAU,QAAQ;AAC3B,SAASC,cAAc,QAAQ;AAE/B,MAAMC,SAAA,GAAY;AAElB,OAAO,MAAMC,OAAA,GAAyEC,EAAA;EAAA,MAAAC,CAAA,GAAAX,EAAA;EAAC;IAAAY,EAAA;IAAAC,SAAA;IAAAC,MAAA,EAAAC;EAAA,IAAAL,EAItF;EADC,MAAAI,MAAA,GAAAC,EAAc,KAAAC,SAAA,GAAL,KAAK,GAAdD,EAAc;EAEd;IAAAE,MAAA,EAAAC;EAAA,IAKIf,SAAA;EAJM;IAAAgB,MAAA,EAAAC,EAAA;IAAAC;EAAA,IAAAH,EAGP;EAFS;IAAAI,KAAA,EAAAC;EAAA,IAAAH,EAAqB;EAKjC;IAAAI,cAAA;IAAAC;EAAA,IAAuCrB,eAAA;EACvC,MAAAsB,WAAA,GAAoBnB,cAAA;EAIZ,MAAAoB,EAAA,OAAIH,cAAA,GAAiB,eAAeA,cAAA,EAAgB,GAAG,WAAWC,UAAA,EAAY,IAAIb,EAAA,EAAI;EAAA,IAAAgB,EAAA;EAAA,IAAAjB,CAAA,QAAAY,UAAA,IAAAZ,CAAA,QAAAE,SAAA,IAAAF,CAAA,QAAAe,WAAA,IAAAf,CAAA,QAAAC,EAAA,IAAAD,CAAA,QAAAG,MAAA,IAAAH,CAAA,QAAAU,SAAA,IAAAV,CAAA,QAAAgB,EAAA;IAF9F,MAAAE,OAAA,GAAgBxB,cAAA;MAAAkB,UAAA;MAAAO,IAAA,EAERH,EAAsF;MAAAN;IAAA,CAE9F;IAAA,IAAAU,EAAA;IAAA,IAAApB,CAAA,QAAAE,SAAA;MAGkBkB,EAAA,IAAAvB,SAAA,EAAYK,SAAA,EAAAmB,MAAA,CAAAC,OAAkB;MAAAtB,CAAA,MAAAE,SAAA;MAAAF,CAAA,MAAAoB,EAAA;IAAA;MAAAA,EAAA,GAAApB,CAAA;IAAA;IAA9CiB,EAAA,GAAAM,KAAA,CAAC;MAAArB,SAAA,EAAekB,EAA8B,CAAAI,IAAA,CAAc;MAAAC,KAAA,EAAaxB,EAAA;MAAAyB,QAAA,GACtEvB,MAAA,EAAO,QAEPY,WAAA,IAAc,GAAIY,IAAA,CAAApC,IAAA;QAAAqC,IAAA,EAAYV,OAAA;QAAAQ,QAAA,EAAU/B,UAAA,CAAWM,EAAA;MAAA,C,IAAcN,UAAA,CAAWM,EAAA;IAAA,C;;;;;;;;;;;;SAH/EgB,E;CAMJ","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["c","_c","React","Link","useConfig","useDocumentInfo","formatAdminURL","sanitizeID","useDrawerDepth","baseClass","IDLabel","t0","$","id","className","prefix","t1","undefined","config","t2","routes","t3","admin","adminRoute","collectionSlug","globalSlug","drawerDepth","t4","t5","docPath","path","t6","filter","Boolean","_jsxs","join","title","children","_jsx","href"],"sources":["../../../src/elements/IDLabel/index.tsx"],"sourcesContent":["'use client'\nimport React from 'react'\n\nimport './index.scss'\nimport { Link } from '../../elements/Link/index.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useDocumentInfo } from '../../providers/DocumentInfo/index.js'\nimport { formatAdminURL } from '../../utilities/formatAdminURL.js'\nimport { sanitizeID } from '../../utilities/sanitizeID.js'\nimport { useDrawerDepth } from '../Drawer/index.js'\n\nconst baseClass = 'id-label'\n\nexport const IDLabel: React.FC<{ className?: string; id: string; prefix?: string }> = ({\n id,\n className,\n prefix = 'ID:',\n}) => {\n const {\n config: {\n routes: { admin: adminRoute },\n },\n } = useConfig()\n\n const { collectionSlug, globalSlug } = useDocumentInfo()\n const drawerDepth = useDrawerDepth()\n\n const docPath = formatAdminURL({\n adminRoute,\n path: `/${collectionSlug ? `collections/${collectionSlug}` : `globals/${globalSlug}`}/${id}`,\n })\n\n return (\n <div className={[baseClass, className].filter(Boolean).join(' ')} title={id}>\n {prefix}\n &nbsp;\n {drawerDepth > 1 ? <Link href={docPath}>{sanitizeID(id)}</Link> : sanitizeID(id)}\n </div>\n )\n}\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;;AACA,OAAOC,KAAA,MAAW;AAElB,OAAO;AACP,SAASC,IAAI,QAAQ;AACrB,SAASC,SAAS,QAAQ;AAC1B,SAASC,eAAe,QAAQ;AAChC,SAASC,cAAc,QAAQ;AAC/B,SAASC,UAAU,QAAQ;AAC3B,SAASC,cAAc,QAAQ;AAE/B,MAAMC,SAAA,GAAY;AAElB,OAAO,MAAMC,OAAA,GAAyEC,EAAA;EAAA,MAAAC,CAAA,GAAAX,EAAA;EAAC;IAAAY,EAAA;IAAAC,SAAA;IAAAC,MAAA,EAAAC;EAAA,IAAAL,EAItF;EADC,MAAAI,MAAA,GAAAC,EAAc,KAAAC,SAAA,GAAL,KAAK,GAAdD,EAAc;EAEd;IAAAE,MAAA,EAAAC;EAAA,IAIIf,SAAA;EAHM;IAAAgB,MAAA,EAAAC;EAAA,IAAAF,EAEP;EADS;IAAAG,KAAA,EAAAC;EAAA,IAAAF,EAAqB;EAIjC;IAAAG,cAAA;IAAAC;EAAA,IAAuCpB,eAAA;EACvC,MAAAqB,WAAA,GAAoBlB,cAAA;EAIZ,MAAAmB,EAAA,OAAIH,cAAA,GAAiB,eAAeA,cAAA,EAAgB,GAAG,WAAWC,UAAA,EAAY,IAAIZ,EAAA,EAAI;EAAA,IAAAe,EAAA;EAAA,IAAAhB,CAAA,QAAAW,UAAA,IAAAX,CAAA,QAAAE,SAAA,IAAAF,CAAA,QAAAc,WAAA,IAAAd,CAAA,QAAAC,EAAA,IAAAD,CAAA,QAAAG,MAAA,IAAAH,CAAA,QAAAe,EAAA;IAF9F,MAAAE,OAAA,GAAgBvB,cAAA;MAAAiB,UAAA;MAAAO,IAAA,EAERH;IAAsF,CAC9F;IAAA,IAAAI,EAAA;IAAA,IAAAnB,CAAA,QAAAE,SAAA;MAGkBiB,EAAA,IAAAtB,SAAA,EAAYK,SAAA,EAAAkB,MAAA,CAAAC,OAAkB;MAAArB,CAAA,MAAAE,SAAA;MAAAF,CAAA,MAAAmB,EAAA;IAAA;MAAAA,EAAA,GAAAnB,CAAA;IAAA;IAA9CgB,EAAA,GAAAM,KAAA,CAAC;MAAApB,SAAA,EAAeiB,EAA8B,CAAAI,IAAA,CAAc;MAAAC,KAAA,EAAavB,EAAA;MAAAwB,QAAA,GACtEtB,MAAA,EAAO,QAEPW,WAAA,IAAc,GAAIY,IAAA,CAAAnC,IAAA;QAAAoC,IAAA,EAAYV,OAAA;QAAAQ,QAAA,EAAU9B,UAAA,CAAWM,EAAA;MAAA,C,IAAcN,UAAA,CAAWM,EAAA;IAAA,C;;;;;;;;;;;SAH/Ee,E;CAMJ","ignoreList":[]}
@@ -0,0 +1,8 @@
1
+ import React from 'react';
2
+ import './index.scss';
3
+ export type Props = {
4
+ readonly placeholder?: string;
5
+ readonly setSearchTerm: (term: string) => void;
6
+ };
7
+ export declare const ItemSearch: React.FC<Props>;
8
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/elements/ItemsDrawer/ItemSearch/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAgB,MAAM,OAAO,CAAA;AAGpC,OAAO,cAAc,CAAA;AAIrB,MAAM,MAAM,KAAK,GAAG;IAClB,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAA;IAC7B,QAAQ,CAAC,aAAa,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;CAC/C,CAAA;AAED,eAAO,MAAM,UAAU,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CAwBtC,CAAA"}
@@ -0,0 +1,56 @@
1
+ 'use client';
2
+
3
+ import { c as _c } from "react/compiler-runtime";
4
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
5
+ import React, { useId } from 'react';
6
+ import { SearchIcon } from '../../../icons/Search/index.js';
7
+ import './index.scss';
8
+ const baseClass = 'item-search';
9
+ export const ItemSearch = t0 => {
10
+ const $ = _c(7);
11
+ const {
12
+ placeholder,
13
+ setSearchTerm
14
+ } = t0;
15
+ const inputId = useId();
16
+ const labelId = `${inputId}-label`;
17
+ let t1;
18
+ if ($[0] !== setSearchTerm) {
19
+ t1 = e => {
20
+ setSearchTerm(e.target.value);
21
+ };
22
+ $[0] = setSearchTerm;
23
+ $[1] = t1;
24
+ } else {
25
+ t1 = $[1];
26
+ }
27
+ const handleChange = t1;
28
+ let t2;
29
+ if ($[2] !== handleChange || $[3] !== inputId || $[4] !== labelId || $[5] !== placeholder) {
30
+ t2 = _jsxs("div", {
31
+ className: baseClass,
32
+ children: [_jsx("label", {
33
+ className: "sr-only",
34
+ htmlFor: inputId,
35
+ id: labelId,
36
+ children: placeholder
37
+ }), _jsx("input", {
38
+ "aria-labelledby": labelId,
39
+ className: `${baseClass}__input`,
40
+ id: inputId,
41
+ onChange: handleChange,
42
+ placeholder,
43
+ type: "text"
44
+ }), _jsx(SearchIcon, {})]
45
+ });
46
+ $[2] = handleChange;
47
+ $[3] = inputId;
48
+ $[4] = labelId;
49
+ $[5] = placeholder;
50
+ $[6] = t2;
51
+ } else {
52
+ t2 = $[6];
53
+ }
54
+ return t2;
55
+ };
56
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","names":["c","_c","React","useId","SearchIcon","baseClass","ItemSearch","t0","$","placeholder","setSearchTerm","inputId","labelId","t1","e","target","value","handleChange","t2","_jsxs","className","children","_jsx","htmlFor","id","onChange","type"],"sources":["../../../../src/elements/ItemsDrawer/ItemSearch/index.tsx"],"sourcesContent":["'use client'\nimport React, { useId } from 'react'\n\nimport { SearchIcon } from '../../../icons/Search/index.js'\nimport './index.scss'\n\nconst baseClass = 'item-search'\n\nexport type Props = {\n readonly placeholder?: string\n readonly setSearchTerm: (term: string) => void\n}\n\nexport const ItemSearch: React.FC<Props> = ({ placeholder, setSearchTerm }) => {\n const inputId = useId()\n const labelId = `${inputId}-label`\n\n const handleChange = (e: React.ChangeEvent<HTMLInputElement>) => {\n setSearchTerm(e.target.value)\n }\n\n return (\n <div className={baseClass}>\n <label className=\"sr-only\" htmlFor={inputId} id={labelId}>\n {placeholder}\n </label>\n <input\n aria-labelledby={labelId}\n className={`${baseClass}__input`}\n id={inputId}\n onChange={handleChange}\n placeholder={placeholder}\n type=\"text\"\n />\n <SearchIcon />\n </div>\n )\n}\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;;AACA,OAAOC,KAAA,IAASC,KAAK,QAAQ;AAE7B,SAASC,UAAU,QAAQ;AAC3B,OAAO;AAEP,MAAMC,SAAA,GAAY;AAOlB,OAAO,MAAMC,UAAA,GAA8BC,EAAA;EAAA,MAAAC,CAAA,GAAAP,EAAA;EAAC;IAAAQ,WAAA;IAAAC;EAAA,IAAAH,EAA8B;EACxE,MAAAI,OAAA,GAAgBR,KAAA;EAChB,MAAAS,OAAA,GAAgB,GAAGD,OAAA,QAAe;EAAA,IAAAE,EAAA;EAAA,IAAAL,CAAA,QAAAE,aAAA;IAEbG,EAAA,GAAAC,CAAA;MACnBJ,aAAA,CAAcI,CAAA,CAAAC,MAAA,CAAAC,KAAc;IAAA;IAC9BR,CAAA,MAAAE,aAAA;IAAAF,CAAA,MAAAK,EAAA;EAAA;IAAAA,EAAA,GAAAL,CAAA;EAAA;EAFA,MAAAS,YAAA,GAAqBJ,EAErB;EAAA,IAAAK,EAAA;EAAA,IAAAV,CAAA,QAAAS,YAAA,IAAAT,CAAA,QAAAG,OAAA,IAAAH,CAAA,QAAAI,OAAA,IAAAJ,CAAA,QAAAC,WAAA;IAGES,EAAA,GAAAC,KAAA,CAAC;MAAAC,SAAA,EAAAf,SAAA;MAAAgB,QAAA,GACCC,IAAA,CAAC;QAAAF,SAAA,EAAgB;QAAAG,OAAA,EAAmBZ,OAAA;QAAAa,EAAA,EAAaZ,OAAA;QAAAS,QAAA,EAC9CZ;MAAA,C,GAEHa,IAAA,CAAC;QAAA,mBACkBV,OAAA;QAAAQ,SAAA,EACN,GAAAf,SAAA,SAAqB;QAAAmB,EAAA,EAC5Bb,OAAA;QAAAc,QAAA,EACMR,YAAA;QAAAR,WAAA;QAAAiB,IAAA,EAEL;MAAA,C,GAEPJ,IAAA,CAAAlB,UAAA,IAAC;IAAA,C;;;;;;;;;SAZHc,E;CAeJ","ignoreList":[]}
@@ -0,0 +1,38 @@
1
+ @import '../../../scss/styles.scss';
2
+
3
+ $icon-width: base(2);
4
+ $icon-margin: base(0.25);
5
+
6
+ @layer payload-default {
7
+ .item-search {
8
+ position: sticky;
9
+ top: 0;
10
+ display: flex;
11
+ width: 100%;
12
+ align-items: center;
13
+ z-index: 1;
14
+
15
+ &__input {
16
+ @include formInput;
17
+ }
18
+
19
+ .icon--search {
20
+ position: absolute;
21
+ top: 50%;
22
+ transform: translate3d(0, -50%, 0);
23
+ right: 0;
24
+ width: $icon-width;
25
+ margin: 0 $icon-margin;
26
+
27
+ .stroke {
28
+ stroke: var(--theme-elevation-300);
29
+ }
30
+ }
31
+
32
+ @include mid-break {
33
+ &__input {
34
+ margin-bottom: 0;
35
+ }
36
+ }
37
+ }
38
+ }
@@ -0,0 +1,15 @@
1
+ import type { ClientBlock, ClientWidget, Labels } from 'payload';
2
+ import React from 'react';
3
+ import './index.scss';
4
+ export type DrawerItem = ClientBlock | ClientWidget;
5
+ export type ItemsDrawerProps = {
6
+ readonly addRowIndex?: number;
7
+ readonly drawerSlug: string;
8
+ readonly items: (DrawerItem | string)[];
9
+ readonly labels?: Labels;
10
+ readonly onItemClick: (item: DrawerItem, index?: number) => Promise<void> | void;
11
+ readonly searchPlaceholder?: string;
12
+ readonly title?: string;
13
+ };
14
+ export declare const ItemsDrawer: React.FC<ItemsDrawerProps>;
15
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/ItemsDrawer/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,SAAS,CAAA;AAKhE,OAAO,KAAuC,MAAM,OAAO,CAAA;AAO3D,OAAO,cAAc,CAAA;AAGrB,MAAM,MAAM,UAAU,GAAG,WAAW,GAAG,YAAY,CAAA;AAEnD,MAAM,MAAM,gBAAgB,GAAG;IAC7B,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAA;IAC7B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,KAAK,EAAE,CAAC,UAAU,GAAG,MAAM,CAAC,EAAE,CAAA;IACvC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,UAAU,EAAE,KAAK,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAA;IAChF,QAAQ,CAAC,iBAAiB,CAAC,EAAE,MAAM,CAAA;IACnC,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CACxB,CAAA;AAmED,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,gBAAgB,CAmIlD,CAAA"}
@@ -0,0 +1,195 @@
1
+ 'use client';
2
+
3
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
4
+ import { useModal } from '@faceless-ui/modal';
5
+ import { getTranslation } from '@payloadcms/translations';
6
+ import { toWords } from 'payload/shared';
7
+ import React, { useEffect, useMemo, useState } from 'react';
8
+ import { DefaultBlockImage } from '../../graphics/DefaultBlockImage/index.js';
9
+ import { useConfig } from '../../providers/Config/index.js';
10
+ import { useTranslation } from '../../providers/Translation/index.js';
11
+ import { Drawer } from '../Drawer/index.js';
12
+ import { ThumbnailCard } from '../ThumbnailCard/index.js';
13
+ import './index.scss';
14
+ import { ItemSearch } from './ItemSearch/index.js';
15
+ const baseClass = 'items-drawer';
16
+ const getItemLabel = (item, i18n) => {
17
+ // Handle ClientBlock
18
+ if ('labels' in item && item.labels?.singular) {
19
+ if (typeof item.labels.singular === 'string') {
20
+ return item.labels.singular.toLowerCase();
21
+ }
22
+ if (typeof item.labels.singular === 'object') {
23
+ return getTranslation(item.labels.singular, i18n).toLowerCase();
24
+ }
25
+ }
26
+ // Handle ClientWidget with label (already resolved from function on server)
27
+ if ('label' in item && item.label) {
28
+ if (typeof item.label === 'string') {
29
+ return item.label.toLowerCase();
30
+ }
31
+ if (typeof item.label === 'object') {
32
+ return getTranslation(item.label, i18n).toLowerCase();
33
+ }
34
+ }
35
+ // Fallback to slug
36
+ if ('slug' in item) {
37
+ return toWords(item.slug).toLowerCase();
38
+ }
39
+ return '';
40
+ };
41
+ const getItemSlug = item => {
42
+ return item.slug;
43
+ };
44
+ const getItemImageInfo = item => {
45
+ if ('imageURL' in item) {
46
+ return {
47
+ imageAltText: item.imageAltText,
48
+ imageURL: item.imageURL
49
+ };
50
+ }
51
+ return {
52
+ imageAltText: undefined,
53
+ imageURL: undefined
54
+ };
55
+ };
56
+ const getItemDisplayLabel = (item, i18n) => {
57
+ // Handle ClientBlock
58
+ if ('labels' in item && item.labels?.singular) {
59
+ return getTranslation(item.labels.singular, i18n);
60
+ }
61
+ // Handle ClientWidget with label (already resolved from function on server)
62
+ if ('label' in item && item.label) {
63
+ if (typeof item.label === 'string') {
64
+ return item.label;
65
+ }
66
+ if (typeof item.label === 'object') {
67
+ return getTranslation(item.label, i18n);
68
+ }
69
+ }
70
+ // Fallback to slug - convert to human-readable label
71
+ return toWords(item.slug);
72
+ };
73
+ export const ItemsDrawer = props => {
74
+ const {
75
+ addRowIndex,
76
+ drawerSlug,
77
+ items,
78
+ labels,
79
+ onItemClick,
80
+ searchPlaceholder,
81
+ title
82
+ } = props;
83
+ const [searchTerm, setSearchTerm] = useState('');
84
+ const [filteredItems, setFilteredItems] = useState(items);
85
+ const {
86
+ closeModal,
87
+ isModalOpen
88
+ } = useModal();
89
+ const {
90
+ i18n,
91
+ t
92
+ } = useTranslation();
93
+ const {
94
+ config
95
+ } = useConfig();
96
+ const itemGroups = useMemo(() => {
97
+ const groups = {
98
+ _none: []
99
+ };
100
+ filteredItems.forEach(item => {
101
+ if (typeof item === 'object' && 'admin' in item && item.admin?.group) {
102
+ const group = item.admin.group;
103
+ const label = typeof group === 'string' ? group : getTranslation(group, i18n);
104
+ if (Object.hasOwn(groups, label)) {
105
+ groups[label].push(item);
106
+ } else {
107
+ groups[label] = [item];
108
+ }
109
+ } else {
110
+ groups._none.push(item);
111
+ }
112
+ });
113
+ return groups;
114
+ }, [filteredItems, i18n]);
115
+ useEffect(() => {
116
+ if (!isModalOpen(drawerSlug)) {
117
+ setSearchTerm('');
118
+ }
119
+ }, [isModalOpen, drawerSlug]);
120
+ useEffect(() => {
121
+ const searchTermToUse = searchTerm.toLowerCase();
122
+ const matchingItems = items?.reduce((matchedItems, _item) => {
123
+ let item_0;
124
+ if (typeof _item === 'string') {
125
+ // Handle string references (for blocks)
126
+ item_0 = config.blocksMap?.[_item];
127
+ } else {
128
+ item_0 = _item;
129
+ }
130
+ if (item_0) {
131
+ const itemLabel = getItemLabel(item_0, i18n);
132
+ if (itemLabel.includes(searchTermToUse)) {
133
+ matchedItems.push(item_0);
134
+ }
135
+ }
136
+ return matchedItems;
137
+ }, []);
138
+ setFilteredItems(matchingItems || []);
139
+ }, [searchTerm, items, i18n, config.blocksMap]);
140
+ const finalTitle = title || (labels ? t('fields:addLabel', {
141
+ label: getTranslation(labels.singular, i18n)
142
+ }) : t('fields:addNew'));
143
+ return /*#__PURE__*/_jsxs(Drawer, {
144
+ slug: drawerSlug,
145
+ title: finalTitle,
146
+ children: [/*#__PURE__*/_jsx(ItemSearch, {
147
+ placeholder: searchPlaceholder || t('fields:searchForBlock'),
148
+ setSearchTerm: setSearchTerm
149
+ }), /*#__PURE__*/_jsx("div", {
150
+ className: `${baseClass}__items-wrapper`,
151
+ children: /*#__PURE__*/_jsx("ul", {
152
+ className: `${baseClass}__item-groups`,
153
+ children: Object.entries(itemGroups).map(([groupLabel, groupItems]) => !groupItems.length ? null : /*#__PURE__*/_jsxs("li", {
154
+ className: [`${baseClass}__item-group`, groupLabel === '_none' && `${baseClass}__item-group-none`].filter(Boolean).join(' '),
155
+ children: [groupLabel !== '_none' && /*#__PURE__*/_jsx("h3", {
156
+ className: `${baseClass}__item-group-label`,
157
+ children: groupLabel
158
+ }), /*#__PURE__*/_jsx("ul", {
159
+ className: `${baseClass}__items`,
160
+ children: groupItems.map((_item_0, index) => {
161
+ const item_1 = typeof _item_0 === 'string' ? config.blocksMap?.[_item_0] : _item_0;
162
+ if (!item_1) {
163
+ return null;
164
+ }
165
+ const {
166
+ imageAltText,
167
+ imageURL
168
+ } = getItemImageInfo(item_1);
169
+ const displayLabel = getItemDisplayLabel(item_1, i18n);
170
+ return /*#__PURE__*/_jsx("li", {
171
+ className: `${baseClass}__item`,
172
+ children: /*#__PURE__*/_jsx(ThumbnailCard, {
173
+ alignLabel: "center",
174
+ label: displayLabel,
175
+ onClick: () => {
176
+ void onItemClick(item_1, addRowIndex);
177
+ closeModal(drawerSlug);
178
+ },
179
+ thumbnail: /*#__PURE__*/_jsx("div", {
180
+ className: `${baseClass}__default-image`,
181
+ children: imageURL ? /*#__PURE__*/_jsx("img", {
182
+ alt: imageAltText,
183
+ src: imageURL
184
+ }) : /*#__PURE__*/_jsx(DefaultBlockImage, {})
185
+ })
186
+ })
187
+ }, index);
188
+ })
189
+ })]
190
+ }, groupLabel))
191
+ })
192
+ })]
193
+ });
194
+ };
195
+ //# sourceMappingURL=index.js.map