@payloadcms/ui 3.0.0-canary.a7293f6 → 3.0.0-canary.ab70b75

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 (236) hide show
  1. package/dist/elements/AddNewRelation/index.scss +36 -34
  2. package/dist/elements/AppHeader/index.scss +151 -150
  3. package/dist/elements/ArrayAction/index.scss +23 -21
  4. package/dist/elements/Autosave/index.scss +4 -2
  5. package/dist/elements/Banner/index.scss +51 -49
  6. package/dist/elements/BulkUpload/ActionsBar/index.scss +45 -43
  7. package/dist/elements/BulkUpload/AddFilesView/index.d.ts +2 -1
  8. package/dist/elements/BulkUpload/AddFilesView/index.d.ts.map +1 -1
  9. package/dist/elements/BulkUpload/AddFilesView/index.js +2 -0
  10. package/dist/elements/BulkUpload/AddFilesView/index.js.map +1 -1
  11. package/dist/elements/BulkUpload/AddFilesView/index.scss +23 -21
  12. package/dist/elements/BulkUpload/AddingFilesView/index.scss +16 -14
  13. package/dist/elements/BulkUpload/DrawerCloseButton/index.scss +23 -21
  14. package/dist/elements/BulkUpload/EditForm/index.scss +6 -4
  15. package/dist/elements/BulkUpload/FileSidebar/index.scss +214 -212
  16. package/dist/elements/BulkUpload/Header/index.scss +11 -9
  17. package/dist/elements/BulkUpload/index.d.ts.map +1 -1
  18. package/dist/elements/BulkUpload/index.js +22 -42
  19. package/dist/elements/BulkUpload/index.js.map +1 -1
  20. package/dist/elements/Button/index.scss +202 -200
  21. package/dist/elements/Card/index.scss +58 -56
  22. package/dist/elements/CodeEditor/index.scss +16 -14
  23. package/dist/elements/Collapsible/index.scss +125 -123
  24. package/dist/elements/ColumnSelector/index.scss +36 -34
  25. package/dist/elements/CopyToClipboard/index.scss +21 -19
  26. package/dist/elements/DatePicker/DatePicker.d.ts +1 -1
  27. package/dist/elements/DatePicker/DatePicker.d.ts.map +1 -1
  28. package/dist/elements/DatePicker/DatePicker.js +1 -1
  29. package/dist/elements/DatePicker/DatePicker.js.map +1 -1
  30. package/dist/elements/DatePicker/index.scss +309 -307
  31. package/dist/elements/DatePicker/library.scss +859 -0
  32. package/dist/elements/DeleteDocument/index.scss +32 -30
  33. package/dist/elements/DeleteMany/index.d.ts.map +1 -1
  34. package/dist/elements/DeleteMany/index.js +16 -5
  35. package/dist/elements/DeleteMany/index.js.map +1 -1
  36. package/dist/elements/DeleteMany/index.scss +29 -27
  37. package/dist/elements/DocumentControls/index.js +1 -1
  38. package/dist/elements/DocumentControls/index.js.map +1 -1
  39. package/dist/elements/DocumentControls/index.scss +190 -188
  40. package/dist/elements/DocumentDrawer/index.scss +55 -53
  41. package/dist/elements/DocumentFields/index.scss +144 -142
  42. package/dist/elements/Drawer/index.scss +111 -109
  43. package/dist/elements/Dropzone/index.scss +32 -30
  44. package/dist/elements/DuplicateDocument/index.scss +31 -29
  45. package/dist/elements/EditMany/index.scss +162 -160
  46. package/dist/elements/EditUpload/index.scss +180 -178
  47. package/dist/elements/ErrorPill/index.scss +27 -25
  48. package/dist/elements/FieldSelect/index.scss +4 -2
  49. package/dist/elements/FileDetails/DraggableFileDetails/index.scss +25 -23
  50. package/dist/elements/FileDetails/FileMeta/index.scss +21 -19
  51. package/dist/elements/FileDetails/StaticFileDetails/index.scss +104 -102
  52. package/dist/elements/GenerateConfirmation/index.scss +29 -27
  53. package/dist/elements/Gutter/index.scss +14 -12
  54. package/dist/elements/Hamburger/index.scss +38 -36
  55. package/dist/elements/IDLabel/index.scss +11 -9
  56. package/dist/elements/ListControls/index.scss +71 -69
  57. package/dist/elements/ListDrawer/DrawerContent.d.ts.map +1 -1
  58. package/dist/elements/ListDrawer/DrawerContent.js +61 -57
  59. package/dist/elements/ListDrawer/DrawerContent.js.map +1 -1
  60. package/dist/elements/ListDrawer/index.scss +93 -91
  61. package/dist/elements/ListHeader/index.scss +9 -7
  62. package/dist/elements/ListSelection/index.scss +14 -12
  63. package/dist/elements/Loading/index.scss +108 -106
  64. package/dist/elements/Localizer/LocalizerLabel/index.scss +44 -42
  65. package/dist/elements/Localizer/index.scss +7 -5
  66. package/dist/elements/Locked/index.scss +11 -9
  67. package/dist/elements/Nav/NavToggler/index.scss +9 -7
  68. package/dist/elements/NavGroup/index.scss +43 -41
  69. package/dist/elements/Pagination/ClickableArrow/index.scss +34 -32
  70. package/dist/elements/Pagination/index.scss +40 -38
  71. package/dist/elements/PerPage/index.scss +37 -35
  72. package/dist/elements/Pill/index.scss +103 -101
  73. package/dist/elements/Popup/PopupButtonList/index.scss +45 -43
  74. package/dist/elements/Popup/PopupTrigger/index.scss +23 -21
  75. package/dist/elements/Popup/index.scss +185 -183
  76. package/dist/elements/PreviewSizes/index.scss +115 -113
  77. package/dist/elements/PublishMany/index.d.ts.map +1 -1
  78. package/dist/elements/PublishMany/index.js +16 -5
  79. package/dist/elements/PublishMany/index.js.map +1 -1
  80. package/dist/elements/PublishMany/index.scss +28 -26
  81. package/dist/elements/ReactSelect/ClearIndicator/index.scss +6 -4
  82. package/dist/elements/ReactSelect/DropdownIndicator/index.scss +11 -9
  83. package/dist/elements/ReactSelect/MultiValue/index.scss +26 -24
  84. package/dist/elements/ReactSelect/MultiValueLabel/index.scss +16 -14
  85. package/dist/elements/ReactSelect/MultiValueRemove/index.scss +20 -18
  86. package/dist/elements/ReactSelect/ValueContainer/index.scss +22 -20
  87. package/dist/elements/ReactSelect/index.d.ts.map +1 -1
  88. package/dist/elements/ReactSelect/index.js +2 -0
  89. package/dist/elements/ReactSelect/index.js.map +1 -1
  90. package/dist/elements/ReactSelect/index.scss +66 -59
  91. package/dist/elements/RelationshipTable/cells/DrawerLink/index.scss +5 -3
  92. package/dist/elements/RelationshipTable/index.scss +21 -19
  93. package/dist/elements/RenderTitle/index.scss +7 -5
  94. package/dist/elements/SearchFilter/index.scss +31 -28
  95. package/dist/elements/SelectAll/index.scss +5 -3
  96. package/dist/elements/SelectRow/index.scss +6 -4
  97. package/dist/elements/ShimmerEffect/index.scss +26 -24
  98. package/dist/elements/SortColumn/index.scss +51 -49
  99. package/dist/elements/SortComplex/index.scss +27 -25
  100. package/dist/elements/Status/index.scss +45 -43
  101. package/dist/elements/StayLoggedIn/index.scss +28 -26
  102. package/dist/elements/StepNav/index.scss +62 -61
  103. package/dist/elements/Table/DefaultCell/fields/Checkbox/index.scss +20 -18
  104. package/dist/elements/Table/DefaultCell/fields/Code/index.scss +22 -20
  105. package/dist/elements/Table/DefaultCell/fields/File/index.scss +18 -16
  106. package/dist/elements/Table/DefaultCell/fields/JSON/index.scss +20 -18
  107. package/dist/elements/Table/DefaultCell/index.js +2 -2
  108. package/dist/elements/Table/DefaultCell/index.js.map +1 -1
  109. package/dist/elements/Table/index.scss +74 -72
  110. package/dist/elements/TableColumns/buildColumnState.js +1 -0
  111. package/dist/elements/TableColumns/buildColumnState.js.map +1 -1
  112. package/dist/elements/Thumbnail/index.scss +37 -35
  113. package/dist/elements/ThumbnailCard/index.scss +31 -29
  114. package/dist/elements/Tooltip/index.scss +77 -75
  115. package/dist/elements/UnpublishMany/index.d.ts.map +1 -1
  116. package/dist/elements/UnpublishMany/index.js +16 -5
  117. package/dist/elements/UnpublishMany/index.js.map +1 -1
  118. package/dist/elements/UnpublishMany/index.scss +28 -26
  119. package/dist/elements/Upload/index.d.ts.map +1 -1
  120. package/dist/elements/Upload/index.js +2 -0
  121. package/dist/elements/Upload/index.js.map +1 -1
  122. package/dist/elements/Upload/index.scss +117 -121
  123. package/dist/elements/WhereBuilder/Condition/Number/index.scss +4 -2
  124. package/dist/elements/WhereBuilder/Condition/Relationship/index.scss +9 -7
  125. package/dist/elements/WhereBuilder/Condition/Text/index.scss +4 -2
  126. package/dist/elements/WhereBuilder/Condition/index.scss +43 -41
  127. package/dist/elements/WhereBuilder/index.scss +28 -26
  128. package/dist/exports/client/{CodeEditor-4A6256PR.js → CodeEditor-VPUKDCXS.js} +1 -1
  129. package/dist/exports/client/{CodeEditor-4A6256PR.js.map → CodeEditor-VPUKDCXS.js.map} +1 -1
  130. package/dist/exports/client/{DatePicker-HNJMUG32.js → DatePicker-FUJV23KL.js} +2 -2
  131. package/dist/exports/client/{chunk-IHJK2MAT.js → chunk-UMJJTMDP.js} +2 -2
  132. package/dist/exports/client/{chunk-IHJK2MAT.js.map → chunk-UMJJTMDP.js.map} +4 -4
  133. package/dist/exports/client/index.d.ts +2 -1
  134. package/dist/exports/client/index.d.ts.map +1 -1
  135. package/dist/exports/client/index.js +22 -19
  136. package/dist/exports/client/index.js.map +4 -4
  137. package/dist/fields/Array/index.scss +74 -72
  138. package/dist/fields/Blocks/BlocksDrawer/BlockSearch/index.scss +25 -23
  139. package/dist/fields/Blocks/BlocksDrawer/index.scss +36 -34
  140. package/dist/fields/Blocks/SectionTitle/index.scss +51 -49
  141. package/dist/fields/Blocks/index.scss +89 -87
  142. package/dist/fields/Checkbox/index.d.ts.map +1 -1
  143. package/dist/fields/Checkbox/index.js +1 -0
  144. package/dist/fields/Checkbox/index.js.map +1 -1
  145. package/dist/fields/Checkbox/index.scss +107 -105
  146. package/dist/fields/Code/index.scss +18 -16
  147. package/dist/fields/Collapsible/index.d.ts.map +1 -1
  148. package/dist/fields/Collapsible/index.scss +8 -6
  149. package/dist/fields/ConfirmPassword/index.scss +18 -16
  150. package/dist/fields/DateTime/index.scss +13 -11
  151. package/dist/fields/Email/index.scss +21 -19
  152. package/dist/fields/FieldDescription/index.scss +9 -7
  153. package/dist/fields/FieldError/index.scss +13 -11
  154. package/dist/fields/FieldLabel/index.d.ts.map +1 -1
  155. package/dist/fields/FieldLabel/index.js +58 -30
  156. package/dist/fields/FieldLabel/index.js.map +1 -1
  157. package/dist/fields/FieldLabel/index.scss +34 -10
  158. package/dist/fields/Group/index.scss +107 -105
  159. package/dist/fields/JSON/index.scss +11 -9
  160. package/dist/fields/Number/index.scss +19 -17
  161. package/dist/fields/Password/index.scss +18 -16
  162. package/dist/fields/Point/index.scss +33 -31
  163. package/dist/fields/RadioGroup/Radio/index.scss +58 -56
  164. package/dist/fields/RadioGroup/index.d.ts +1 -0
  165. package/dist/fields/RadioGroup/index.d.ts.map +1 -1
  166. package/dist/fields/RadioGroup/index.js +33 -30
  167. package/dist/fields/RadioGroup/index.js.map +1 -1
  168. package/dist/fields/RadioGroup/index.scss +57 -55
  169. package/dist/fields/Relationship/index.scss +44 -42
  170. package/dist/fields/Relationship/select-components/MultiValueLabel/index.scss +40 -38
  171. package/dist/fields/Relationship/select-components/SingleValue/index.scss +43 -41
  172. package/dist/fields/Row/index.scss +31 -29
  173. package/dist/fields/Select/index.scss +16 -14
  174. package/dist/fields/Tabs/Tab/index.scss +58 -56
  175. package/dist/fields/Tabs/index.d.ts.map +1 -1
  176. package/dist/fields/Tabs/index.js +69 -53
  177. package/dist/fields/Tabs/index.js.map +1 -1
  178. package/dist/fields/Tabs/index.scss +46 -44
  179. package/dist/fields/Text/index.scss +23 -21
  180. package/dist/fields/Textarea/index.scss +89 -87
  181. package/dist/fields/Upload/HasMany/index.scss +20 -18
  182. package/dist/fields/Upload/HasOne/index.scss +5 -3
  183. package/dist/fields/Upload/Input.d.ts.map +1 -1
  184. package/dist/fields/Upload/Input.js +39 -36
  185. package/dist/fields/Upload/Input.js.map +1 -1
  186. package/dist/fields/Upload/RelationshipContent/index.scss +44 -42
  187. package/dist/fields/Upload/UploadCard/index.scss +21 -19
  188. package/dist/fields/Upload/index.scss +49 -47
  189. package/dist/forms/Form/fieldReducer.d.ts.map +1 -1
  190. package/dist/forms/Form/fieldReducer.js +7 -0
  191. package/dist/forms/Form/fieldReducer.js.map +1 -1
  192. package/dist/forms/Form/index.scss +5 -3
  193. package/dist/forms/RenderFields/index.scss +47 -45
  194. package/dist/forms/Submit/index.scss +5 -3
  195. package/dist/forms/useField/index.d.ts.map +1 -1
  196. package/dist/forms/useField/index.js +1 -1
  197. package/dist/forms/useField/index.js.map +1 -1
  198. package/dist/graphics/Account/Default/index.scss +43 -41
  199. package/dist/icons/Calendar/index.scss +8 -6
  200. package/dist/icons/Check/index.scss +9 -7
  201. package/dist/icons/Chevron/index.scss +18 -16
  202. package/dist/icons/CloseMenu/index.scss +7 -5
  203. package/dist/icons/Copy/index.scss +9 -7
  204. package/dist/icons/DragHandle/index.scss +9 -7
  205. package/dist/icons/Edit/index.scss +9 -7
  206. package/dist/icons/Line/index.scss +8 -6
  207. package/dist/icons/Link/index.scss +8 -6
  208. package/dist/icons/Lock/index.scss +6 -4
  209. package/dist/icons/LogOut/index.scss +8 -6
  210. package/dist/icons/Menu/index.scss +6 -4
  211. package/dist/icons/More/index.scss +8 -6
  212. package/dist/icons/Plus/index.scss +6 -4
  213. package/dist/icons/Search/index.scss +8 -6
  214. package/dist/icons/Swap/index.scss +9 -7
  215. package/dist/icons/X/index.scss +6 -4
  216. package/dist/providers/Auth/index.d.ts +9 -4
  217. package/dist/providers/Auth/index.d.ts.map +1 -1
  218. package/dist/providers/Auth/index.js +51 -56
  219. package/dist/providers/Auth/index.js.map +1 -1
  220. package/dist/providers/Config/createClientConfig/fields.d.ts.map +1 -1
  221. package/dist/providers/Config/createClientConfig/fields.js +21 -3
  222. package/dist/providers/Config/createClientConfig/fields.js.map +1 -1
  223. package/dist/providers/DocumentInfo/index.d.ts.map +1 -1
  224. package/dist/providers/DocumentInfo/index.js +4 -0
  225. package/dist/providers/DocumentInfo/index.js.map +1 -1
  226. package/dist/providers/Selection/index.js +3 -3
  227. package/dist/providers/Selection/index.js.map +1 -1
  228. package/dist/scss/app.scss +166 -162
  229. package/dist/scss/colors.scss +256 -254
  230. package/dist/scss/resets.scss +9 -7
  231. package/dist/scss/toastify.scss +42 -40
  232. package/dist/scss/toasts.scss +105 -103
  233. package/dist/scss/type.scss +81 -79
  234. package/dist/styles.css +1 -1
  235. package/package.json +8 -8
  236. /package/dist/exports/client/{DatePicker-HNJMUG32.js.map → DatePicker-FUJV23KL.js.map} +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"buildColumnState.js","names":["React","FieldLabel","flattenFieldMap","SelectAll","SelectRow","SortColumn","DefaultCell","buildColumnState","args","beforeRows","columnPreferences","columns","enableRowSelections","fields","sortColumnProps","useAsTitle","sortedFieldMap","idFieldIndex","findIndex","field","name","idField","splice","unshift","useAsTitleFieldIndex","useAsTitleField","sortTo","sort","a","b","aIndex","column","accessor","bIndex","activeColumnsIndices","sorted","reduce","acc","index","columnPreference","find","preference","active","Array","isArray","length","includes","push","CustomLabelToRender","admin","components","Label","undefined","_jsx","unstyled","fieldAffectsDataSubFields","type","Heading","disable","_isPresentational","label","cellProps","Cell","Component","RenderedComponent"],"sources":["../../../src/elements/TableColumns/buildColumnState.tsx"],"sourcesContent":["'use client'\nimport type { ClientField, SanitizedCollectionConfig, StaticLabel } from 'payload'\n\nimport React from 'react'\n\nimport type { ColumnPreferences } from '../../providers/ListInfo/index.js'\nimport type { SortColumnProps } from '../SortColumn/index.js'\nimport type { Column } from '../Table/index.js'\n\nimport { FieldLabel } from '../../fields/FieldLabel/index.js'\nimport { flattenFieldMap } from '../../utilities/flattenFieldMap.js'\nimport { SelectAll } from '../SelectAll/index.js'\nimport { SelectRow } from '../SelectRow/index.js'\nimport { SortColumn } from '../SortColumn/index.js'\nimport { DefaultCell } from '../Table/DefaultCell/index.js'\n\ntype Args = {\n beforeRows?: Column[]\n columnPreferences: ColumnPreferences\n columns?: ColumnPreferences\n enableRowSelections: boolean\n enableRowTypes?: boolean\n fields: ClientField[]\n sortColumnProps?: Partial<SortColumnProps>\n useAsTitle: SanitizedCollectionConfig['admin']['useAsTitle']\n}\n\nexport const buildColumnState = (args: Args): Column[] => {\n const {\n beforeRows,\n columnPreferences,\n columns,\n enableRowSelections,\n fields,\n sortColumnProps,\n useAsTitle,\n } = args\n\n let sortedFieldMap = flattenFieldMap(fields)\n\n // place the `ID` field first, if it exists\n // do the same for the `useAsTitle` field with precedence over the `ID` field\n // then sort the rest of the fields based on the `defaultColumns` or `columnPreferences`\n const idFieldIndex = sortedFieldMap.findIndex((field) => 'name' in field && field.name === 'id')\n\n if (idFieldIndex > -1) {\n const idField = sortedFieldMap.splice(idFieldIndex, 1)[0]\n sortedFieldMap.unshift(idField)\n }\n\n const useAsTitleFieldIndex = useAsTitle\n ? sortedFieldMap.findIndex((field) => 'name' in field && field.name === useAsTitle)\n : -1\n\n if (useAsTitleFieldIndex > -1) {\n const useAsTitleField = sortedFieldMap.splice(useAsTitleFieldIndex, 1)[0]\n sortedFieldMap.unshift(useAsTitleField)\n }\n\n const sortTo = columnPreferences || columns\n\n if (sortTo) {\n // sort the fields to the order of `defaultColumns` or `columnPreferences`\n sortedFieldMap = sortedFieldMap.sort((a, b) => {\n const aIndex = sortTo.findIndex((column) => 'name' in a && column.accessor === a.name)\n const bIndex = sortTo.findIndex((column) => 'name' in b && column.accessor === b.name)\n if (aIndex === -1 && bIndex === -1) {\n return 0\n }\n if (aIndex === -1) {\n return 1\n }\n if (bIndex === -1) {\n return -1\n }\n return aIndex - bIndex\n })\n }\n\n const activeColumnsIndices = []\n\n const sorted: Column[] = sortedFieldMap.reduce((acc, field, index) => {\n const columnPreference = columnPreferences?.find(\n (preference) => 'name' in field && preference.accessor === field.name,\n )\n\n let active = false\n\n if (columnPreference) {\n active = columnPreference.active\n } else if (columns && Array.isArray(columns) && columns.length > 0) {\n active = columns.find((column) => 'name' in field && column.accessor === field.name)?.active\n } else if (activeColumnsIndices.length < 4) {\n active = true\n }\n\n if (active && !activeColumnsIndices.includes(index)) {\n activeColumnsIndices.push(index)\n }\n\n const CustomLabelToRender =\n field &&\n 'admin' in field &&\n 'components' in field.admin &&\n 'Label' in field.admin.components &&\n field.admin.components.Label !== undefined // let it return `null`\n ? field.admin.components.Label\n : undefined\n\n const Label = <FieldLabel field={field} Label={CustomLabelToRender} unstyled />\n\n const fieldAffectsDataSubFields =\n field &&\n field.type &&\n (field.type === 'array' || field.type === 'group' || field.type === 'blocks')\n\n const Heading = (\n <SortColumn\n disable={fieldAffectsDataSubFields || field?._isPresentational || undefined}\n Label={Label}\n label={'label' in field ? (field.label as StaticLabel) : undefined}\n name={'name' in field ? field.name : undefined}\n {...(sortColumnProps || {})}\n />\n )\n\n if (field) {\n const column: Column = {\n accessor: 'name' in field ? field.name : undefined,\n active,\n cellProps: {\n field: {\n ...(field || ({} as ClientField)),\n admin: {\n ...(field.admin || {}),\n components: {\n ...(field.admin?.components || {}),\n Cell: field.admin?.components?.Cell || {\n type: 'client',\n Component: DefaultCell,\n RenderedComponent: null,\n },\n Label,\n },\n },\n } as ClientField,\n },\n Heading,\n }\n\n acc.push(column)\n }\n\n return acc\n }, [])\n\n if (enableRowSelections) {\n sorted.unshift({\n accessor: '_select',\n active: true,\n cellProps: {\n field: {\n admin: {\n components: {\n Cell: {\n type: 'client',\n Component: null,\n RenderedComponent: <SelectRow />,\n },\n Label: null,\n },\n },\n } as ClientField,\n },\n Heading: <SelectAll />,\n })\n }\n\n if (beforeRows) {\n sorted.unshift(...beforeRows)\n }\n\n return sorted\n}\n"],"mappings":"AAAA;;;AAGA,OAAOA,KAAA,MAAW;AAMlB,SAASC,UAAU,QAAQ;AAC3B,SAASC,eAAe,QAAQ;AAChC,SAASC,SAAS,QAAQ;AAC1B,SAASC,SAAS,QAAQ;AAC1B,SAASC,UAAU,QAAQ;AAC3B,SAASC,WAAW,QAAQ;AAa5B,OAAO,MAAMC,gBAAA,GAAoBC,IAAA;EAC/B,MAAM;IACJC,UAAU;IACVC,iBAAiB;IACjBC,OAAO;IACPC,mBAAmB;IACnBC,MAAM;IACNC,eAAe;IACfC;EAAU,CACX,GAAGP,IAAA;EAEJ,IAAIQ,cAAA,GAAiBd,eAAA,CAAgBW,MAAA;EAErC;EACA;EACA;EACA,MAAMI,YAAA,GAAeD,cAAA,CAAeE,SAAS,CAAEC,KAAA,IAAU,UAAUA,KAAA,IAASA,KAAA,CAAMC,IAAI,KAAK;EAE3F,IAAIH,YAAA,GAAe,CAAC,GAAG;IACrB,MAAMI,OAAA,GAAUL,cAAA,CAAeM,MAAM,CAACL,YAAA,EAAc,EAAE,CAAC,EAAE;IACzDD,cAAA,CAAeO,OAAO,CAACF,OAAA;EACzB;EAEA,MAAMG,oBAAA,GAAuBT,UAAA,GACzBC,cAAA,CAAeE,SAAS,CAAEC,KAAA,IAAU,UAAUA,KAAA,IAASA,KAAA,CAAMC,IAAI,KAAKL,UAAA,IACtE,CAAC;EAEL,IAAIS,oBAAA,GAAuB,CAAC,GAAG;IAC7B,MAAMC,eAAA,GAAkBT,cAAA,CAAeM,MAAM,CAACE,oBAAA,EAAsB,EAAE,CAAC,EAAE;IACzER,cAAA,CAAeO,OAAO,CAACE,eAAA;EACzB;EAEA,MAAMC,MAAA,GAAShB,iBAAA,IAAqBC,OAAA;EAEpC,IAAIe,MAAA,EAAQ;IACV;IACAV,cAAA,GAAiBA,cAAA,CAAeW,IAAI,CAAC,CAACC,CAAA,EAAGC,CAAA;MACvC,MAAMC,MAAA,GAASJ,MAAA,CAAOR,SAAS,CAAEa,MAAA,IAAW,UAAUH,CAAA,IAAKG,MAAA,CAAOC,QAAQ,KAAKJ,CAAA,CAAER,IAAI;MACrF,MAAMa,MAAA,GAASP,MAAA,CAAOR,SAAS,CAAEa,MAAA,IAAW,UAAUF,CAAA,IAAKE,MAAA,CAAOC,QAAQ,KAAKH,CAAA,CAAET,IAAI;MACrF,IAAIU,MAAA,KAAW,CAAC,KAAKG,MAAA,KAAW,CAAC,GAAG;QAClC,OAAO;MACT;MACA,IAAIH,MAAA,KAAW,CAAC,GAAG;QACjB,OAAO;MACT;MACA,IAAIG,MAAA,KAAW,CAAC,GAAG;QACjB,OAAO,CAAC;MACV;MACA,OAAOH,MAAA,GAASG,MAAA;IAClB;EACF;EAEA,MAAMC,oBAAA,GAAuB,EAAE;EAE/B,MAAMC,MAAA,GAAmBnB,cAAA,CAAeoB,MAAM,CAAC,CAACC,GAAA,EAAKlB,KAAA,EAAOmB,KAAA;IAC1D,MAAMC,gBAAA,GAAmB7B,iBAAA,EAAmB8B,IAAA,CACzCC,UAAA,IAAe,UAAUtB,KAAA,IAASsB,UAAA,CAAWT,QAAQ,KAAKb,KAAA,CAAMC,IAAI;IAGvE,IAAIsB,MAAA,GAAS;IAEb,IAAIH,gBAAA,EAAkB;MACpBG,MAAA,GAASH,gBAAA,CAAiBG,MAAM;IAClC,OAAO,IAAI/B,OAAA,IAAWgC,KAAA,CAAMC,OAAO,CAACjC,OAAA,KAAYA,OAAA,CAAQkC,MAAM,GAAG,GAAG;MAClEH,MAAA,GAAS/B,OAAA,CAAQ6B,IAAI,CAAET,MAAA,IAAW,UAAUZ,KAAA,IAASY,MAAA,CAAOC,QAAQ,KAAKb,KAAA,CAAMC,IAAI,GAAGsB,MAAA;IACxF,OAAO,IAAIR,oBAAA,CAAqBW,MAAM,GAAG,GAAG;MAC1CH,MAAA,GAAS;IACX;IAEA,IAAIA,MAAA,IAAU,CAACR,oBAAA,CAAqBY,QAAQ,CAACR,KAAA,GAAQ;MACnDJ,oBAAA,CAAqBa,IAAI,CAACT,KAAA;IAC5B;IAEA,MAAMU,mBAAA,GACJ7B,KAAA,IACA,WAAWA,KAAA,IACX,gBAAgBA,KAAA,CAAM8B,KAAK,IAC3B,WAAW9B,KAAA,CAAM8B,KAAK,CAACC,UAAU,IACjC/B,KAAA,CAAM8B,KAAK,CAACC,UAAU,CAACC,KAAK,KAAKC,SAAA,CAAU;IAAA,EACvCjC,KAAA,CAAM8B,KAAK,CAACC,UAAU,CAACC,KAAK,GAC5BC,SAAA;IAEN,MAAMD,KAAA,gBAAQE,IAAA,CAACpD,UAAA;MAAWkB,KAAA,EAAOA,KAAA;MAAOgC,KAAA,EAAOH,mBAAA;MAAqBM,QAAQ;;IAE5E,MAAMC,yBAAA,GACJpC,KAAA,IACAA,KAAA,CAAMqC,IAAI,KACTrC,KAAA,CAAMqC,IAAI,KAAK,WAAWrC,KAAA,CAAMqC,IAAI,KAAK,WAAWrC,KAAA,CAAMqC,IAAI,KAAK,QAAO;IAE7E,MAAMC,OAAA,gBACJJ,IAAA,CAAChD,UAAA;MACCqD,OAAA,EAASH,yBAAA,IAA6BpC,KAAA,EAAOwC,iBAAA,IAAqBP,SAAA;MAClED,KAAA,EAAOA,KAAA;MACPS,KAAA,EAAO,WAAWzC,KAAA,GAASA,KAAA,CAAMyC,KAAK,GAAmBR,SAAA;MACzDhC,IAAA,EAAM,UAAUD,KAAA,GAAQA,KAAA,CAAMC,IAAI,GAAGgC,SAAA;MACpC,IAAItC,eAAA,IAAmB,CAAC,CAAC;;IAI9B,IAAIK,KAAA,EAAO;MACT,MAAMY,MAAA,GAAiB;QACrBC,QAAA,EAAU,UAAUb,KAAA,GAAQA,KAAA,CAAMC,IAAI,GAAGgC,SAAA;QACzCV,MAAA;QACAmB,SAAA,EAAW;UACT1C,KAAA,EAAO;YACL,IAAIA,KAAA,IAAU,CAAC,CAAiB;YAChC8B,KAAA,EAAO;cACL,IAAI9B,KAAA,CAAM8B,KAAK,IAAI,CAAC,CAAC;cACrBC,UAAA,EAAY;gBACV,IAAI/B,KAAA,CAAM8B,KAAK,EAAEC,UAAA,IAAc,CAAC,CAAC;gBACjCY,IAAA,EAAM3C,KAAA,CAAM8B,KAAK,EAAEC,UAAA,EAAYY,IAAA,IAAQ;kBACrCN,IAAA,EAAM;kBACNO,SAAA,EAAWzD,WAAA;kBACX0D,iBAAA,EAAmB;gBACrB;gBACAb;cACF;YACF;UACF;QACF;QACAM;MACF;MAEApB,GAAA,CAAIU,IAAI,CAAChB,MAAA;IACX;IAEA,OAAOM,GAAA;EACT,GAAG,EAAE;EAEL,IAAIzB,mBAAA,EAAqB;IACvBuB,MAAA,CAAOZ,OAAO,CAAC;MACbS,QAAA,EAAU;MACVU,MAAA,EAAQ;MACRmB,SAAA,EAAW;QACT1C,KAAA,EAAO;UACL8B,KAAA,EAAO;YACLC,UAAA,EAAY;cACVY,IAAA,EAAM;gBACJN,IAAA,EAAM;gBACNO,SAAA,EAAW;gBACXC,iBAAA,eAAmBX,IAAA,CAACjD,SAAA;cACtB;cACA+C,KAAA,EAAO;YACT;UACF;QACF;MACF;MACAM,OAAA,eAASJ,IAAA,CAAClD,SAAA;IACZ;EACF;EAEA,IAAIM,UAAA,EAAY;IACd0B,MAAA,CAAOZ,OAAO,IAAId,UAAA;EACpB;EAEA,OAAO0B,MAAA;AACT","ignoreList":[]}
1
+ {"version":3,"file":"buildColumnState.js","names":["React","FieldLabel","flattenFieldMap","SelectAll","SelectRow","SortColumn","DefaultCell","buildColumnState","args","beforeRows","columnPreferences","columns","enableRowSelections","fields","sortColumnProps","useAsTitle","sortedFieldMap","idFieldIndex","findIndex","field","name","idField","splice","unshift","useAsTitleFieldIndex","useAsTitleField","sortTo","sort","a","b","aIndex","column","accessor","bIndex","activeColumnsIndices","sorted","reduce","acc","index","columnPreference","find","preference","active","Array","isArray","length","includes","push","CustomLabelToRender","admin","components","Label","undefined","_jsx","hideLocale","unstyled","fieldAffectsDataSubFields","type","Heading","disable","_isPresentational","label","cellProps","Cell","Component","RenderedComponent"],"sources":["../../../src/elements/TableColumns/buildColumnState.tsx"],"sourcesContent":["'use client'\nimport type { ClientField, SanitizedCollectionConfig, StaticLabel } from 'payload'\n\nimport React from 'react'\n\nimport type { ColumnPreferences } from '../../providers/ListInfo/index.js'\nimport type { SortColumnProps } from '../SortColumn/index.js'\nimport type { Column } from '../Table/index.js'\n\nimport { FieldLabel } from '../../fields/FieldLabel/index.js'\nimport { flattenFieldMap } from '../../utilities/flattenFieldMap.js'\nimport { SelectAll } from '../SelectAll/index.js'\nimport { SelectRow } from '../SelectRow/index.js'\nimport { SortColumn } from '../SortColumn/index.js'\nimport { DefaultCell } from '../Table/DefaultCell/index.js'\n\ntype Args = {\n beforeRows?: Column[]\n columnPreferences: ColumnPreferences\n columns?: ColumnPreferences\n enableRowSelections: boolean\n enableRowTypes?: boolean\n fields: ClientField[]\n sortColumnProps?: Partial<SortColumnProps>\n useAsTitle: SanitizedCollectionConfig['admin']['useAsTitle']\n}\n\nexport const buildColumnState = (args: Args): Column[] => {\n const {\n beforeRows,\n columnPreferences,\n columns,\n enableRowSelections,\n fields,\n sortColumnProps,\n useAsTitle,\n } = args\n\n let sortedFieldMap = flattenFieldMap(fields)\n\n // place the `ID` field first, if it exists\n // do the same for the `useAsTitle` field with precedence over the `ID` field\n // then sort the rest of the fields based on the `defaultColumns` or `columnPreferences`\n const idFieldIndex = sortedFieldMap.findIndex((field) => 'name' in field && field.name === 'id')\n\n if (idFieldIndex > -1) {\n const idField = sortedFieldMap.splice(idFieldIndex, 1)[0]\n sortedFieldMap.unshift(idField)\n }\n\n const useAsTitleFieldIndex = useAsTitle\n ? sortedFieldMap.findIndex((field) => 'name' in field && field.name === useAsTitle)\n : -1\n\n if (useAsTitleFieldIndex > -1) {\n const useAsTitleField = sortedFieldMap.splice(useAsTitleFieldIndex, 1)[0]\n sortedFieldMap.unshift(useAsTitleField)\n }\n\n const sortTo = columnPreferences || columns\n\n if (sortTo) {\n // sort the fields to the order of `defaultColumns` or `columnPreferences`\n sortedFieldMap = sortedFieldMap.sort((a, b) => {\n const aIndex = sortTo.findIndex((column) => 'name' in a && column.accessor === a.name)\n const bIndex = sortTo.findIndex((column) => 'name' in b && column.accessor === b.name)\n if (aIndex === -1 && bIndex === -1) {\n return 0\n }\n if (aIndex === -1) {\n return 1\n }\n if (bIndex === -1) {\n return -1\n }\n return aIndex - bIndex\n })\n }\n\n const activeColumnsIndices = []\n\n const sorted: Column[] = sortedFieldMap.reduce((acc, field, index) => {\n const columnPreference = columnPreferences?.find(\n (preference) => 'name' in field && preference.accessor === field.name,\n )\n\n let active = false\n\n if (columnPreference) {\n active = columnPreference.active\n } else if (columns && Array.isArray(columns) && columns.length > 0) {\n active = columns.find((column) => 'name' in field && column.accessor === field.name)?.active\n } else if (activeColumnsIndices.length < 4) {\n active = true\n }\n\n if (active && !activeColumnsIndices.includes(index)) {\n activeColumnsIndices.push(index)\n }\n\n const CustomLabelToRender =\n field &&\n 'admin' in field &&\n 'components' in field.admin &&\n 'Label' in field.admin.components &&\n field.admin.components.Label !== undefined // let it return `null`\n ? field.admin.components.Label\n : undefined\n\n const Label = <FieldLabel field={field} hideLocale Label={CustomLabelToRender} unstyled />\n\n const fieldAffectsDataSubFields =\n field &&\n field.type &&\n (field.type === 'array' || field.type === 'group' || field.type === 'blocks')\n\n const Heading = (\n <SortColumn\n disable={fieldAffectsDataSubFields || field?._isPresentational || undefined}\n Label={Label}\n label={'label' in field ? (field.label as StaticLabel) : undefined}\n name={'name' in field ? field.name : undefined}\n {...(sortColumnProps || {})}\n />\n )\n\n if (field) {\n const column: Column = {\n accessor: 'name' in field ? field.name : undefined,\n active,\n cellProps: {\n field: {\n ...(field || ({} as ClientField)),\n admin: {\n ...(field.admin || {}),\n components: {\n ...(field.admin?.components || {}),\n Cell: field.admin?.components?.Cell || {\n type: 'client',\n Component: DefaultCell,\n RenderedComponent: null,\n },\n Label,\n },\n },\n } as ClientField,\n },\n Heading,\n }\n\n acc.push(column)\n }\n\n return acc\n }, [])\n\n if (enableRowSelections) {\n sorted.unshift({\n accessor: '_select',\n active: true,\n cellProps: {\n field: {\n admin: {\n components: {\n Cell: {\n type: 'client',\n Component: null,\n RenderedComponent: <SelectRow />,\n },\n Label: null,\n },\n },\n } as ClientField,\n },\n Heading: <SelectAll />,\n })\n }\n\n if (beforeRows) {\n sorted.unshift(...beforeRows)\n }\n\n return sorted\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1,49 +1,51 @@
1
1
  @import '../../scss/styles.scss';
2
2
 
3
- .thumbnail {
4
- min-height: 100%;
5
- flex-shrink: 0;
6
- align-self: stretch;
7
- overflow: hidden;
8
-
9
- img,
10
- svg {
11
- width: 100%;
12
- height: 100%;
13
- object-fit: cover;
14
- }
15
-
16
- &--size-expand {
17
- max-height: 100%;
18
- width: 100%;
19
- padding-top: 100%;
20
- position: relative;
3
+ @layer payload-default {
4
+ .thumbnail {
5
+ min-height: 100%;
6
+ flex-shrink: 0;
7
+ align-self: stretch;
8
+ overflow: hidden;
21
9
 
22
10
  img,
23
11
  svg {
24
- position: absolute;
25
- top: 0;
12
+ width: 100%;
13
+ height: 100%;
14
+ object-fit: cover;
26
15
  }
27
- }
28
16
 
29
- &--size-large {
30
- max-height: base(9);
31
- width: base(9);
32
- }
17
+ &--size-expand {
18
+ max-height: 100%;
19
+ width: 100%;
20
+ padding-top: 100%;
21
+ position: relative;
22
+
23
+ img,
24
+ svg {
25
+ position: absolute;
26
+ top: 0;
27
+ }
28
+ }
33
29
 
34
- &--size-medium {
35
- max-height: base(7);
36
- width: base(7);
37
- }
30
+ &--size-large {
31
+ max-height: base(9);
32
+ width: base(9);
33
+ }
38
34
 
39
- &--size-small {
40
- max-height: base(5);
41
- width: base(5);
42
- }
35
+ &--size-medium {
36
+ max-height: base(7);
37
+ width: base(7);
38
+ }
43
39
 
44
- @include large-break {
45
- .thumbnail {
40
+ &--size-small {
41
+ max-height: base(5);
46
42
  width: base(5);
47
43
  }
44
+
45
+ @include large-break {
46
+ .thumbnail {
47
+ width: base(5);
48
+ }
49
+ }
48
50
  }
49
51
  }
@@ -1,39 +1,41 @@
1
1
  @import '../../scss/styles.scss';
2
2
 
3
- .thumbnail-card {
4
- @include btn-reset;
5
- @include shadow-m;
6
- width: 100%;
7
- background: var(--theme-input-bg);
8
- border: 1px solid var(--theme-border-color);
9
- border-radius: var(--style-radius-m);
10
- transition: border 100ms cubic-bezier(0, 0.2, 0.2, 1);
3
+ @layer payload-default {
4
+ .thumbnail-card {
5
+ @include btn-reset;
6
+ @include shadow-m;
7
+ width: 100%;
8
+ background: var(--theme-input-bg);
9
+ border: 1px solid var(--theme-border-color);
10
+ border-radius: var(--style-radius-m);
11
+ transition: border 100ms cubic-bezier(0, 0.2, 0.2, 1);
11
12
 
12
- &__label {
13
- padding: base(0.5);
14
- overflow: hidden;
15
- text-overflow: ellipsis;
16
- white-space: nowrap;
17
- font-weight: 600;
18
- }
13
+ &__label {
14
+ padding: base(0.5);
15
+ overflow: hidden;
16
+ text-overflow: ellipsis;
17
+ white-space: nowrap;
18
+ font-weight: 600;
19
+ }
19
20
 
20
- &--has-on-click {
21
- cursor: pointer;
21
+ &--has-on-click {
22
+ cursor: pointer;
22
23
 
23
- &:hover,
24
- &:focus,
25
- &:active {
26
- border: 1px solid var(--theme-elevation-350);
24
+ &:hover,
25
+ &:focus,
26
+ &:active {
27
+ border: 1px solid var(--theme-elevation-350);
28
+ }
27
29
  }
28
- }
29
30
 
30
- &--align-label-center {
31
- text-align: center;
32
- }
31
+ &--align-label-center {
32
+ text-align: center;
33
+ }
33
34
 
34
- &__thumbnail {
35
- display: flex;
36
- align-items: center;
37
- justify-content: center;
35
+ &__thumbnail {
36
+ display: flex;
37
+ align-items: center;
38
+ justify-content: center;
39
+ }
38
40
  }
39
41
  }
@@ -1,99 +1,101 @@
1
1
  @import '../../scss/styles.scss';
2
2
 
3
- .tooltip {
4
- --caret-size: 6px;
5
-
6
- opacity: 0;
7
- background-color: var(--theme-elevation-800);
8
- position: absolute;
9
- z-index: 3;
10
- left: 50%;
11
- padding: base(0.2) base(0.4);
12
- color: var(--theme-elevation-0);
13
- line-height: base(0.75);
14
- font-weight: normal;
15
- white-space: nowrap;
16
- border-radius: 2px;
17
- visibility: hidden;
18
-
19
- &::after {
20
- content: ' ';
21
- display: block;
22
- position: absolute;
23
- transform: translate3d(-50%, 100%, 0);
24
- width: 0;
25
- height: 0;
26
- border-left: var(--caret-size) solid transparent;
27
- border-right: var(--caret-size) solid transparent;
28
- }
3
+ @layer payload-default {
4
+ .tooltip {
5
+ --caret-size: 6px;
29
6
 
30
- &--show {
31
- visibility: visible;
32
- opacity: 1;
33
- transition: opacity 0.2s ease-in-out;
34
- cursor: default;
35
- }
7
+ opacity: 0;
8
+ background-color: var(--theme-elevation-800);
9
+ position: absolute;
10
+ z-index: 3;
11
+ left: 50%;
12
+ padding: base(0.2) base(0.4);
13
+ color: var(--theme-elevation-0);
14
+ line-height: base(0.75);
15
+ font-weight: normal;
16
+ white-space: nowrap;
17
+ border-radius: 2px;
18
+ visibility: hidden;
36
19
 
37
- &--caret-center {
38
20
  &::after {
39
- left: 50%;
21
+ content: ' ';
22
+ display: block;
23
+ position: absolute;
24
+ transform: translate3d(-50%, 100%, 0);
25
+ width: 0;
26
+ height: 0;
27
+ border-left: var(--caret-size) solid transparent;
28
+ border-right: var(--caret-size) solid transparent;
40
29
  }
41
- }
42
30
 
43
- &--caret-left {
44
- &::after {
45
- left: calc(var(--base) * 0.5);
31
+ &--show {
32
+ visibility: visible;
33
+ opacity: 1;
34
+ transition: opacity 0.2s ease-in-out;
35
+ cursor: default;
46
36
  }
47
- }
48
37
 
49
- &--caret-right {
50
- &::after {
51
- right: calc(var(--base) * 0.5);
38
+ &--caret-center {
39
+ &::after {
40
+ left: 50%;
41
+ }
52
42
  }
53
- }
54
43
 
55
- &--position-top {
56
- top: calc(var(--base) * -1.25);
57
- transform: translate3d(-50%, calc(var(--caret-size) * -1), 0);
44
+ &--caret-left {
45
+ &::after {
46
+ left: calc(var(--base) * 0.5);
47
+ }
48
+ }
58
49
 
59
- &::after {
60
- bottom: 1px;
61
- border-top: var(--caret-size) solid var(--theme-elevation-800);
50
+ &--caret-right {
51
+ &::after {
52
+ right: calc(var(--base) * 0.5);
53
+ }
62
54
  }
63
- }
64
55
 
65
- &--position-bottom {
66
- bottom: calc(var(--base) * -1.25);
67
- transform: translate3d(-50%, var(--caret-size), 0);
56
+ &--position-top {
57
+ top: calc(var(--base) * -1.25);
58
+ transform: translate3d(-50%, calc(var(--caret-size) * -1), 0);
68
59
 
69
- &::after {
70
- bottom: calc(100% + var(--caret-size) - 1px);
71
- border-bottom: var(--caret-size) solid var(--theme-elevation-800);
60
+ &::after {
61
+ bottom: 1px;
62
+ border-top: var(--caret-size) solid var(--theme-elevation-800);
63
+ }
72
64
  }
73
- }
74
65
 
75
- .tooltip-content {
76
- overflow: hidden;
77
- text-overflow: ellipsis;
78
- width: 100%;
79
- }
66
+ &--position-bottom {
67
+ bottom: calc(var(--base) * -1.25);
68
+ transform: translate3d(-50%, var(--caret-size), 0);
80
69
 
81
- @include mid-break {
82
- display: none;
83
- }
84
- }
70
+ &::after {
71
+ bottom: calc(100% + var(--caret-size) - 1px);
72
+ border-bottom: var(--caret-size) solid var(--theme-elevation-800);
73
+ }
74
+ }
85
75
 
86
- html[data-theme='light'] {
87
- .tooltip:not(.field-error) {
88
- background-color: var(--theme-elevation-100);
89
- color: var(--theme-elevation-1000);
90
- }
76
+ .tooltip-content {
77
+ overflow: hidden;
78
+ text-overflow: ellipsis;
79
+ width: 100%;
80
+ }
91
81
 
92
- .tooltip--position-top:not(.field-error):after {
93
- border-top-color: var(--theme-elevation-100);
82
+ @include mid-break {
83
+ display: none;
84
+ }
94
85
  }
95
86
 
96
- .tooltip--position-bottom:not(.field-error):after {
97
- border-bottom-color: var(--theme-elevation-100);
87
+ html[data-theme='light'] {
88
+ .tooltip:not(.field-error) {
89
+ background-color: var(--theme-elevation-100);
90
+ color: var(--theme-elevation-1000);
91
+ }
92
+
93
+ .tooltip--position-top:not(.field-error):after {
94
+ border-top-color: var(--theme-elevation-100);
95
+ }
96
+
97
+ .tooltip--position-bottom:not(.field-error):after {
98
+ border-bottom-color: var(--theme-elevation-100);
99
+ }
98
100
  }
99
101
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/UnpublishMany/index.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAgC,MAAM,OAAO,CAAA;AAWpD,OAAO,cAAc,CAAA;AAIrB,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,SAAS,CAAA;AAIrD,MAAM,MAAM,kBAAkB,GAAG;IAC/B,UAAU,EAAE,sBAAsB,CAAA;CACnC,CAAA;AAED,eAAO,MAAM,aAAa,EAAE,KAAK,CAAC,EAAE,CAAC,kBAAkB,CA8HtD,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/UnpublishMany/index.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAgC,MAAM,OAAO,CAAA;AAWpD,OAAO,cAAc,CAAA;AAIrB,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,SAAS,CAAA;AAIrD,MAAM,MAAM,kBAAkB,GAAG;IAC/B,UAAU,EAAE,sBAAsB,CAAA;CACnC,CAAA;AAED,eAAO,MAAM,aAAa,EAAE,KAAK,CAAC,EAAE,CAAC,kBAAkB,CA8ItD,CAAA"}
@@ -22,7 +22,8 @@ export const UnpublishMany = props => {
22
22
  collection: {
23
23
  slug,
24
24
  labels: {
25
- plural
25
+ plural,
26
+ singular
26
27
  },
27
28
  versions
28
29
  } = {}
@@ -81,8 +82,18 @@ export const UnpublishMany = props => {
81
82
  try {
82
83
  const json = await res.json();
83
84
  toggleModal(modalSlug);
84
- if (res.status < 400) {
85
- toast.success(t('general:updatedSuccessfully'));
85
+ const deletedDocs = json?.docs.length || 0;
86
+ const successLabel = deletedDocs > 1 ? plural : singular;
87
+ if (res.status < 400 || deletedDocs > 0) {
88
+ toast.success(t('general:updatedCountSuccessfully', {
89
+ count: deletedDocs,
90
+ label: getTranslation(successLabel, i18n)
91
+ }));
92
+ if (json?.errors.length > 0) {
93
+ toast.error(json.message, {
94
+ description: json.errors.map(error => error.message).join('\n')
95
+ });
96
+ }
86
97
  router.replace(stringifyParams({
87
98
  params: {
88
99
  page: selectAll ? '1' : undefined
@@ -93,7 +104,7 @@ export const UnpublishMany = props => {
93
104
  return null;
94
105
  }
95
106
  if (json.errors) {
96
- json.errors.forEach(error => toast.error(error.message));
107
+ json.errors.forEach(error_0 => toast.error(error_0.message));
97
108
  } else {
98
109
  addDefaultError();
99
110
  }
@@ -102,7 +113,7 @@ export const UnpublishMany = props => {
102
113
  return addDefaultError();
103
114
  }
104
115
  });
105
- }, [addDefaultError, api, getQueryParams, i18n.language, modalSlug, selectAll, serverURL, slug, t, toggleModal, router, clearRouteCache, stringifyParams]);
116
+ }, [addDefaultError, api, getQueryParams, i18n, modalSlug, plural, selectAll, serverURL, singular, slug, t, toggleModal, router, clearRouteCache, stringifyParams]);
106
117
  if (!versions?.drafts || selectAll === SelectAllStatus.None || !hasPermission) {
107
118
  return null;
108
119
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["Modal","useModal","getTranslation","useRouter","React","useCallback","useState","useAuth","useConfig","useRouteCache","useSearchParams","SelectAllStatus","useSelection","useTranslation","requests","Button","Pill","baseClass","toast","UnpublishMany","props","collection","slug","labels","plural","versions","config","routes","api","serverURL","permissions","toggleModal","i18n","t","getQueryParams","selectAll","submitted","setSubmitted","stringifyParams","router","clearRouteCache","collectionPermissions","collections","hasPermission","update","permission","modalSlug","addDefaultError","error","handleUnpublish","patch","_status","not_equals","body","JSON","stringify","headers","language","then","res","json","status","success","replace","params","page","undefined","errors","forEach","message","e","drafts","None","_jsxs","Fragment","_jsx","className","onClick","label","buttonStyle","id","size","type"],"sources":["../../../src/elements/UnpublishMany/index.tsx"],"sourcesContent":["'use client'\nimport { Modal, useModal } from '@faceless-ui/modal'\nimport { getTranslation } from '@payloadcms/translations'\nimport { useRouter } from 'next/navigation.js'\nimport React, { useCallback, useState } from 'react'\n\nimport { useAuth } from '../../providers/Auth/index.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useRouteCache } from '../../providers/RouteCache/index.js'\nimport { useSearchParams } from '../../providers/SearchParams/index.js'\nimport { SelectAllStatus, useSelection } from '../../providers/Selection/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { requests } from '../../utilities/api.js'\nimport { Button } from '../Button/index.js'\nimport { Pill } from '../Pill/index.js'\nimport './index.scss'\n\nconst baseClass = 'unpublish-many'\n\nimport type { ClientCollectionConfig } from 'payload'\n\nimport { toast } from 'sonner'\n\nexport type UnpublishManyProps = {\n collection: ClientCollectionConfig\n}\n\nexport const UnpublishMany: React.FC<UnpublishManyProps> = (props) => {\n const { collection: { slug, labels: { plural }, versions } = {} } = props\n\n const {\n config: {\n routes: { api },\n serverURL,\n },\n } = useConfig()\n\n const { permissions } = useAuth()\n const { toggleModal } = useModal()\n const { i18n, t } = useTranslation()\n const { getQueryParams, selectAll } = useSelection()\n const [submitted, setSubmitted] = useState(false)\n const { stringifyParams } = useSearchParams()\n const router = useRouter()\n const { clearRouteCache } = useRouteCache()\n\n const collectionPermissions = permissions?.collections?.[slug]\n const hasPermission = collectionPermissions?.update?.permission\n\n const modalSlug = `unpublish-${slug}`\n\n const addDefaultError = useCallback(() => {\n toast.error(t('error:unknown'))\n }, [t])\n\n const handleUnpublish = useCallback(async () => {\n setSubmitted(true)\n await requests\n .patch(`${serverURL}${api}/${slug}${getQueryParams({ _status: { not_equals: 'draft' } })}`, {\n body: JSON.stringify({\n _status: 'draft',\n }),\n headers: {\n 'Accept-Language': i18n.language,\n 'Content-Type': 'application/json',\n },\n })\n .then(async (res) => {\n try {\n const json = await res.json()\n toggleModal(modalSlug)\n if (res.status < 400) {\n toast.success(t('general:updatedSuccessfully'))\n router.replace(\n stringifyParams({\n params: {\n page: selectAll ? '1' : undefined,\n },\n }),\n )\n clearRouteCache() // Use clearRouteCache instead of router.refresh, as we only need to clear the cache if the user has route caching enabled - clearRouteCache checks for this\n return null\n }\n\n if (json.errors) {\n json.errors.forEach((error) => toast.error(error.message))\n } else {\n addDefaultError()\n }\n return false\n } catch (e) {\n return addDefaultError()\n }\n })\n }, [\n addDefaultError,\n api,\n getQueryParams,\n i18n.language,\n modalSlug,\n selectAll,\n serverURL,\n slug,\n t,\n toggleModal,\n router,\n clearRouteCache,\n stringifyParams,\n ])\n\n if (!versions?.drafts || selectAll === SelectAllStatus.None || !hasPermission) {\n return null\n }\n\n return (\n <React.Fragment>\n <Pill\n className={`${baseClass}__toggle`}\n onClick={() => {\n setSubmitted(false)\n toggleModal(modalSlug)\n }}\n >\n {t('version:unpublish')}\n </Pill>\n <Modal className={baseClass} slug={modalSlug}>\n <div className={`${baseClass}__wrapper`}>\n <div className={`${baseClass}__content`}>\n <h1>{t('version:confirmUnpublish')}</h1>\n <p>{t('version:aboutToUnpublishSelection', { label: getTranslation(plural, i18n) })}</p>\n </div>\n <div className={`${baseClass}__controls`}>\n <Button\n buttonStyle=\"secondary\"\n id=\"confirm-cancel\"\n onClick={submitted ? undefined : () => toggleModal(modalSlug)}\n size=\"large\"\n type=\"button\"\n >\n {t('general:cancel')}\n </Button>\n <Button\n id=\"confirm-unpublish\"\n onClick={submitted ? undefined : handleUnpublish}\n size=\"large\"\n >\n {submitted ? t('version:unpublishing') : t('general:confirm')}\n </Button>\n </div>\n </div>\n </Modal>\n </React.Fragment>\n )\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["Modal","useModal","getTranslation","useRouter","React","useCallback","useState","useAuth","useConfig","useRouteCache","useSearchParams","SelectAllStatus","useSelection","useTranslation","requests","Button","Pill","baseClass","toast","UnpublishMany","props","collection","slug","labels","plural","singular","versions","config","routes","api","serverURL","permissions","toggleModal","i18n","t","getQueryParams","selectAll","submitted","setSubmitted","stringifyParams","router","clearRouteCache","collectionPermissions","collections","hasPermission","update","permission","modalSlug","addDefaultError","error","handleUnpublish","patch","_status","not_equals","body","JSON","stringify","headers","language","then","res","json","deletedDocs","docs","length","successLabel","status","success","count","label","errors","message","description","map","join","replace","params","page","undefined","forEach","e","drafts","None","_jsxs","Fragment","_jsx","className","onClick","buttonStyle","id","size","type"],"sources":["../../../src/elements/UnpublishMany/index.tsx"],"sourcesContent":["'use client'\nimport { Modal, useModal } from '@faceless-ui/modal'\nimport { getTranslation } from '@payloadcms/translations'\nimport { useRouter } from 'next/navigation.js'\nimport React, { useCallback, useState } from 'react'\n\nimport { useAuth } from '../../providers/Auth/index.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useRouteCache } from '../../providers/RouteCache/index.js'\nimport { useSearchParams } from '../../providers/SearchParams/index.js'\nimport { SelectAllStatus, useSelection } from '../../providers/Selection/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { requests } from '../../utilities/api.js'\nimport { Button } from '../Button/index.js'\nimport { Pill } from '../Pill/index.js'\nimport './index.scss'\n\nconst baseClass = 'unpublish-many'\n\nimport type { ClientCollectionConfig } from 'payload'\n\nimport { toast } from 'sonner'\n\nexport type UnpublishManyProps = {\n collection: ClientCollectionConfig\n}\n\nexport const UnpublishMany: React.FC<UnpublishManyProps> = (props) => {\n const { collection: { slug, labels: { plural, singular }, versions } = {} } = props\n\n const {\n config: {\n routes: { api },\n serverURL,\n },\n } = useConfig()\n\n const { permissions } = useAuth()\n const { toggleModal } = useModal()\n const { i18n, t } = useTranslation()\n const { getQueryParams, selectAll } = useSelection()\n const [submitted, setSubmitted] = useState(false)\n const { stringifyParams } = useSearchParams()\n const router = useRouter()\n const { clearRouteCache } = useRouteCache()\n\n const collectionPermissions = permissions?.collections?.[slug]\n const hasPermission = collectionPermissions?.update?.permission\n\n const modalSlug = `unpublish-${slug}`\n\n const addDefaultError = useCallback(() => {\n toast.error(t('error:unknown'))\n }, [t])\n\n const handleUnpublish = useCallback(async () => {\n setSubmitted(true)\n await requests\n .patch(`${serverURL}${api}/${slug}${getQueryParams({ _status: { not_equals: 'draft' } })}`, {\n body: JSON.stringify({\n _status: 'draft',\n }),\n headers: {\n 'Accept-Language': i18n.language,\n 'Content-Type': 'application/json',\n },\n })\n .then(async (res) => {\n try {\n const json = await res.json()\n toggleModal(modalSlug)\n\n const deletedDocs = json?.docs.length || 0\n const successLabel = deletedDocs > 1 ? plural : singular\n\n if (res.status < 400 || deletedDocs > 0) {\n toast.success(\n t('general:updatedCountSuccessfully', {\n count: deletedDocs,\n label: getTranslation(successLabel, i18n),\n }),\n )\n if (json?.errors.length > 0) {\n toast.error(json.message, {\n description: json.errors.map((error) => error.message).join('\\n'),\n })\n }\n router.replace(\n stringifyParams({\n params: {\n page: selectAll ? '1' : undefined,\n },\n }),\n )\n clearRouteCache() // Use clearRouteCache instead of router.refresh, as we only need to clear the cache if the user has route caching enabled - clearRouteCache checks for this\n return null\n }\n\n if (json.errors) {\n json.errors.forEach((error) => toast.error(error.message))\n } else {\n addDefaultError()\n }\n return false\n } catch (e) {\n return addDefaultError()\n }\n })\n }, [\n addDefaultError,\n api,\n getQueryParams,\n i18n,\n modalSlug,\n plural,\n selectAll,\n serverURL,\n singular,\n slug,\n t,\n toggleModal,\n router,\n clearRouteCache,\n stringifyParams,\n ])\n\n if (!versions?.drafts || selectAll === SelectAllStatus.None || !hasPermission) {\n return null\n }\n\n return (\n <React.Fragment>\n <Pill\n className={`${baseClass}__toggle`}\n onClick={() => {\n setSubmitted(false)\n toggleModal(modalSlug)\n }}\n >\n {t('version:unpublish')}\n </Pill>\n <Modal className={baseClass} slug={modalSlug}>\n <div className={`${baseClass}__wrapper`}>\n <div className={`${baseClass}__content`}>\n <h1>{t('version:confirmUnpublish')}</h1>\n <p>{t('version:aboutToUnpublishSelection', { label: getTranslation(plural, i18n) })}</p>\n </div>\n <div className={`${baseClass}__controls`}>\n <Button\n buttonStyle=\"secondary\"\n id=\"confirm-cancel\"\n onClick={submitted ? undefined : () => toggleModal(modalSlug)}\n size=\"large\"\n type=\"button\"\n >\n {t('general:cancel')}\n </Button>\n <Button\n id=\"confirm-unpublish\"\n onClick={submitted ? undefined : handleUnpublish}\n size=\"large\"\n >\n {submitted ? t('version:unpublishing') : t('general:confirm')}\n </Button>\n </div>\n </div>\n </Modal>\n </React.Fragment>\n )\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1,37 +1,39 @@
1
1
  @import '../../scss/styles.scss';
2
2
 
3
- .unpublish-many {
4
- @include blur-bg;
5
- display: flex;
6
- align-items: center;
7
- justify-content: center;
8
- height: 100%;
9
-
10
- &__wrapper {
11
- z-index: 1;
12
- position: relative;
3
+ @layer payload-default {
4
+ .unpublish-many {
5
+ @include blur-bg;
13
6
  display: flex;
14
- flex-direction: column;
15
- gap: base(0.8);
16
- padding: base(2);
17
- }
7
+ align-items: center;
8
+ justify-content: center;
9
+ height: 100%;
18
10
 
19
- &__content {
20
- display: flex;
21
- flex-direction: column;
22
- gap: base(0.4);
11
+ &__wrapper {
12
+ z-index: 1;
13
+ position: relative;
14
+ display: flex;
15
+ flex-direction: column;
16
+ gap: base(0.8);
17
+ padding: base(2);
18
+ }
23
19
 
24
- > * {
25
- margin: 0;
20
+ &__content {
21
+ display: flex;
22
+ flex-direction: column;
23
+ gap: base(0.4);
24
+
25
+ > * {
26
+ margin: 0;
27
+ }
26
28
  }
27
- }
28
29
 
29
- &__controls {
30
- display: flex;
31
- gap: base(0.4);
30
+ &__controls {
31
+ display: flex;
32
+ gap: base(0.4);
32
33
 
33
- .btn {
34
- margin: 0;
34
+ .btn {
35
+ margin: 0;
36
+ }
35
37
  }
36
38
  }
37
39
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/Upload/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,yBAAyB,EAAe,MAAM,SAAS,CAAA;AAGhF,OAAO,KAAmD,MAAM,OAAO,CAAA;AAiBvE,OAAO,cAAc,CAAA;AAGrB,eAAO,MAAM,cAAc,gBAAgB,CAAA;AAC3C,eAAO,MAAM,eAAe,kBAAkB,CAAA;AAU9C,KAAK,iBAAiB,GAAG;IACvB,QAAQ,CAAC,aAAa,CAAC,EAAE,KAAK,CAAC,SAAS,EAAE,CAAA;IAC1C,QAAQ,CAAC,iBAAiB,EAAE,OAAO,CAAA;IACnC,QAAQ,CAAC,kBAAkB,EAAE,OAAO,CAAA;IACpC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;CAC1B,CAAA;AAED,eAAO,MAAM,aAAa,wEAKvB,iBAAiB,sBAgCnB,CAAA;AAED,MAAM,MAAM,WAAW,GAAG;IACxB,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAA;IAC/B,QAAQ,CAAC,aAAa,CAAC,EAAE,KAAK,CAAC,SAAS,EAAE,CAAA;IAC1C,QAAQ,CAAC,YAAY,CAAC,EAAE,SAAS,CAAA;IACjC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,IAAI,KAAK,IAAI,CAAA;IACzC,QAAQ,CAAC,YAAY,EAAE,yBAAyB,CAAC,QAAQ,CAAC,CAAA;CAC3D,CAAA;AAED,eAAO,MAAM,MAAM,EAAE,KAAK,CAAC,EAAE,CAAC,WAAW,CAwSxC,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/Upload/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,yBAAyB,EAAe,MAAM,SAAS,CAAA;AAGhF,OAAO,KAAmD,MAAM,OAAO,CAAA;AAiBvE,OAAO,cAAc,CAAA;AAGrB,eAAO,MAAM,cAAc,gBAAgB,CAAA;AAC3C,eAAO,MAAM,eAAe,kBAAkB,CAAA;AAU9C,KAAK,iBAAiB,GAAG;IACvB,QAAQ,CAAC,aAAa,CAAC,EAAE,KAAK,CAAC,SAAS,EAAE,CAAA;IAC1C,QAAQ,CAAC,iBAAiB,EAAE,OAAO,CAAA;IACnC,QAAQ,CAAC,kBAAkB,EAAE,OAAO,CAAA;IACpC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;CAC1B,CAAA;AAED,eAAO,MAAM,aAAa,wEAKvB,iBAAiB,sBAgCnB,CAAA;AAED,MAAM,MAAM,WAAW,GAAG;IACxB,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAA;IAC/B,QAAQ,CAAC,aAAa,CAAC,EAAE,KAAK,CAAC,SAAS,EAAE,CAAA;IAC1C,QAAQ,CAAC,YAAY,CAAC,EAAE,SAAS,CAAA;IACjC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,IAAI,KAAK,IAAI,CAAA;IACzC,QAAQ,CAAC,YAAY,EAAE,yBAAyB,CAAC,QAAQ,CAAC,CAAA;CAC3D,CAAA;AAED,eAAO,MAAM,MAAM,EAAE,KAAK,CAAC,EAAE,CAAC,WAAW,CA2SxC,CAAA"}
@@ -209,6 +209,7 @@ export const Upload = props => {
209
209
  focalPoint = true
210
210
  } = uploadConfig;
211
211
  const showFocalPoint = focalPoint && (hasImageSizes || hasResizeOptions || focalPointEnabled);
212
+ const acceptMimeTypes = uploadConfig.mimeTypes?.join(', ');
212
213
  return /*#__PURE__*/_jsxs("div", {
213
214
  className: [fieldBaseClass, baseClass].filter(Boolean).join(' '),
214
215
  children: [/*#__PURE__*/_jsx(FieldError, {
@@ -242,6 +243,7 @@ export const Upload = props => {
242
243
  size: "small",
243
244
  children: t('upload:selectFile')
244
245
  }), /*#__PURE__*/_jsx("input", {
246
+ accept: acceptMimeTypes,
245
247
  "aria-hidden": "true",
246
248
  className: `${baseClass}__hidden-input`,
247
249
  hidden: true,