@payloadcms/ui 3.0.0-beta.107 → 3.0.0-beta.109

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 (288) hide show
  1. package/dist/elements/Autosave/index.d.ts.map +1 -1
  2. package/dist/elements/Autosave/index.js +1 -3
  3. package/dist/elements/Autosave/index.js.map +1 -1
  4. package/dist/elements/BulkUpload/ActionsBar/index.js +2 -2
  5. package/dist/elements/BulkUpload/ActionsBar/index.js.map +1 -1
  6. package/dist/elements/BulkUpload/EditForm/index.js +3 -1
  7. package/dist/elements/BulkUpload/EditForm/index.js.map +1 -1
  8. package/dist/elements/BulkUpload/FormsManager/index.js +3 -1
  9. package/dist/elements/BulkUpload/FormsManager/index.js.map +1 -1
  10. package/dist/elements/Button/index.d.ts.map +1 -1
  11. package/dist/elements/Button/index.js +1 -0
  12. package/dist/elements/Button/index.js.map +1 -1
  13. package/dist/elements/Button/types.d.ts +6 -0
  14. package/dist/elements/Button/types.d.ts.map +1 -1
  15. package/dist/elements/Button/types.js.map +1 -1
  16. package/dist/elements/CodeEditor/CodeEditor.d.ts.map +1 -1
  17. package/dist/elements/CodeEditor/CodeEditor.js +51 -25
  18. package/dist/elements/CodeEditor/CodeEditor.js.map +1 -1
  19. package/dist/elements/CodeEditor/index.d.ts.map +1 -1
  20. package/dist/elements/CodeEditor/index.js +2 -8
  21. package/dist/elements/CodeEditor/index.js.map +1 -1
  22. package/dist/elements/ColumnSelector/index.d.ts.map +1 -1
  23. package/dist/elements/ColumnSelector/index.js +14 -2
  24. package/dist/elements/ColumnSelector/index.js.map +1 -1
  25. package/dist/elements/DocumentControls/index.d.ts +4 -1
  26. package/dist/elements/DocumentControls/index.d.ts.map +1 -1
  27. package/dist/elements/DocumentControls/index.js +42 -6
  28. package/dist/elements/DocumentControls/index.js.map +1 -1
  29. package/dist/elements/DocumentControls/index.scss +8 -0
  30. package/dist/elements/DocumentDrawer/DrawerContent.d.ts.map +1 -1
  31. package/dist/elements/DocumentDrawer/DrawerContent.js +23 -17
  32. package/dist/elements/DocumentDrawer/DrawerContent.js.map +1 -1
  33. package/dist/elements/DocumentDrawer/types.d.ts +4 -1
  34. package/dist/elements/DocumentDrawer/types.d.ts.map +1 -1
  35. package/dist/elements/DocumentDrawer/types.js.map +1 -1
  36. package/dist/elements/EditMany/index.d.ts.map +1 -1
  37. package/dist/elements/EditMany/index.js +235 -124
  38. package/dist/elements/EditMany/index.js.map +1 -1
  39. package/dist/elements/Hamburger/index.scss +4 -0
  40. package/dist/elements/ListControls/index.d.ts.map +1 -1
  41. package/dist/elements/ListControls/index.js +9 -5
  42. package/dist/elements/ListControls/index.js.map +1 -1
  43. package/dist/elements/ListControls/index.scss +0 -6
  44. package/dist/elements/ListDrawer/DrawerContent.d.ts +2 -0
  45. package/dist/elements/ListDrawer/DrawerContent.d.ts.map +1 -1
  46. package/dist/elements/ListDrawer/DrawerContent.js +3 -3
  47. package/dist/elements/ListDrawer/DrawerContent.js.map +1 -1
  48. package/dist/elements/ListDrawer/index.d.ts.map +1 -1
  49. package/dist/elements/ListDrawer/index.js +18 -15
  50. package/dist/elements/ListDrawer/index.js.map +1 -1
  51. package/dist/elements/ListDrawer/types.d.ts +2 -0
  52. package/dist/elements/ListDrawer/types.d.ts.map +1 -1
  53. package/dist/elements/ListDrawer/types.js.map +1 -1
  54. package/dist/elements/Localizer/LocalizerLabel/index.d.ts.map +1 -1
  55. package/dist/elements/Localizer/LocalizerLabel/index.js +9 -5
  56. package/dist/elements/Localizer/LocalizerLabel/index.js.map +1 -1
  57. package/dist/elements/Localizer/LocalizerLabel/index.scss +7 -3
  58. package/dist/elements/Locked/index.d.ts +8 -0
  59. package/dist/elements/Locked/index.d.ts.map +1 -0
  60. package/dist/elements/Locked/index.js +72 -0
  61. package/dist/elements/Locked/index.js.map +1 -0
  62. package/dist/elements/Locked/index.scss +14 -0
  63. package/dist/elements/Pagination/index.d.ts.map +1 -1
  64. package/dist/elements/Pagination/index.js +1 -1
  65. package/dist/elements/Pagination/index.js.map +1 -1
  66. package/dist/elements/PerPage/index.d.ts +5 -5
  67. package/dist/elements/PerPage/index.d.ts.map +1 -1
  68. package/dist/elements/PerPage/index.js +2 -1
  69. package/dist/elements/PerPage/index.js.map +1 -1
  70. package/dist/elements/Pill/index.scss +3 -1
  71. package/dist/elements/Popup/PopupTrigger/index.d.ts +1 -0
  72. package/dist/elements/Popup/PopupTrigger/index.d.ts.map +1 -1
  73. package/dist/elements/Popup/PopupTrigger/index.js +3 -2
  74. package/dist/elements/Popup/PopupTrigger/index.js.map +1 -1
  75. package/dist/elements/Popup/PopupTrigger/index.scss +12 -0
  76. package/dist/elements/Popup/index.d.ts +1 -0
  77. package/dist/elements/Popup/index.d.ts.map +1 -1
  78. package/dist/elements/Popup/index.js +6 -3
  79. package/dist/elements/Popup/index.js.map +1 -1
  80. package/dist/elements/Popup/index.scss +18 -1
  81. package/dist/elements/PreviewButton/usePreviewURL.d.ts.map +1 -1
  82. package/dist/elements/PreviewButton/usePreviewURL.js +11 -3
  83. package/dist/elements/PreviewButton/usePreviewURL.js.map +1 -1
  84. package/dist/elements/PublishButton/index.d.ts.map +1 -1
  85. package/dist/elements/PublishButton/index.js +97 -46
  86. package/dist/elements/PublishButton/index.js.map +1 -1
  87. package/dist/elements/PublishMany/index.js +2 -1
  88. package/dist/elements/PublishMany/index.js.map +1 -1
  89. package/dist/elements/ReactSelect/index.scss +4 -0
  90. package/dist/elements/RelationshipTable/TableWrapper.d.ts +8 -0
  91. package/dist/elements/RelationshipTable/TableWrapper.d.ts.map +1 -0
  92. package/dist/elements/RelationshipTable/TableWrapper.js +69 -0
  93. package/dist/elements/RelationshipTable/TableWrapper.js.map +1 -0
  94. package/dist/elements/RelationshipTable/cells/DrawerLink/index.d.ts +8 -0
  95. package/dist/elements/RelationshipTable/cells/DrawerLink/index.d.ts.map +1 -0
  96. package/dist/elements/RelationshipTable/cells/DrawerLink/index.js +82 -0
  97. package/dist/elements/RelationshipTable/cells/DrawerLink/index.js.map +1 -0
  98. package/dist/elements/RelationshipTable/cells/DrawerLink/index.scss +4 -0
  99. package/dist/elements/RelationshipTable/index.d.ts +15 -0
  100. package/dist/elements/RelationshipTable/index.d.ts.map +1 -0
  101. package/dist/elements/RelationshipTable/index.js +445 -0
  102. package/dist/elements/RelationshipTable/index.js.map +1 -0
  103. package/dist/elements/RelationshipTable/index.scss +26 -0
  104. package/dist/elements/SelectRow/index.d.ts.map +1 -1
  105. package/dist/elements/SelectRow/index.js +60 -29
  106. package/dist/elements/SelectRow/index.js.map +1 -1
  107. package/dist/elements/SortColumn/index.d.ts +1 -0
  108. package/dist/elements/SortColumn/index.d.ts.map +1 -1
  109. package/dist/elements/SortColumn/index.js +29 -17
  110. package/dist/elements/SortColumn/index.js.map +1 -1
  111. package/dist/elements/SortColumn/index.scss +10 -1
  112. package/dist/elements/Status/index.js +1 -1
  113. package/dist/elements/Status/index.js.map +1 -1
  114. package/dist/elements/Table/DefaultCell/fields/Relationship/index.d.ts +2 -3
  115. package/dist/elements/Table/DefaultCell/fields/Relationship/index.d.ts.map +1 -1
  116. package/dist/elements/Table/DefaultCell/fields/Relationship/index.js +43 -40
  117. package/dist/elements/Table/DefaultCell/fields/Relationship/index.js.map +1 -1
  118. package/dist/elements/Table/DefaultCell/fields/Relationship/index.scss +0 -3
  119. package/dist/elements/Table/DefaultCell/fields/index.d.ts +1 -0
  120. package/dist/elements/Table/DefaultCell/fields/index.d.ts.map +1 -1
  121. package/dist/elements/Table/DefaultCell/fields/index.js +1 -0
  122. package/dist/elements/Table/DefaultCell/fields/index.js.map +1 -1
  123. package/dist/elements/Table/RenderCell.d.ts +11 -0
  124. package/dist/elements/Table/RenderCell.d.ts.map +1 -0
  125. package/dist/elements/Table/RenderCell.js +30 -0
  126. package/dist/elements/Table/RenderCell.js.map +1 -0
  127. package/dist/elements/Table/index.d.ts +3 -6
  128. package/dist/elements/Table/index.d.ts.map +1 -1
  129. package/dist/elements/Table/index.js +36 -31
  130. package/dist/elements/Table/index.js.map +1 -1
  131. package/dist/elements/Table/index.scss +50 -0
  132. package/dist/elements/TableColumns/buildColumnState.d.ts +5 -2
  133. package/dist/elements/TableColumns/buildColumnState.d.ts.map +1 -1
  134. package/dist/elements/TableColumns/buildColumnState.js +35 -22
  135. package/dist/elements/TableColumns/buildColumnState.js.map +1 -1
  136. package/dist/elements/TableColumns/index.d.ts +5 -0
  137. package/dist/elements/TableColumns/index.d.ts.map +1 -1
  138. package/dist/elements/TableColumns/index.js +107 -74
  139. package/dist/elements/TableColumns/index.js.map +1 -1
  140. package/dist/elements/Tooltip/index.d.ts +1 -0
  141. package/dist/elements/Tooltip/index.d.ts.map +1 -1
  142. package/dist/elements/Tooltip/index.js +15 -13
  143. package/dist/elements/Tooltip/index.js.map +1 -1
  144. package/dist/elements/Tooltip/index.scss +2 -2
  145. package/dist/elements/UnpublishMany/index.js +2 -1
  146. package/dist/elements/UnpublishMany/index.js.map +1 -1
  147. package/dist/elements/WhereBuilder/Condition/index.js +32 -30
  148. package/dist/elements/WhereBuilder/Condition/index.js.map +1 -1
  149. package/dist/exports/client/{CodeEditor-CHKRX3U2.js → CodeEditor-FARZ6UIX.js} +6 -4
  150. package/dist/exports/client/CodeEditor-FARZ6UIX.js.map +8 -0
  151. package/dist/exports/client/{DatePicker-OLRZVTAD.js → DatePicker-NBYDOP2X.js} +2 -2
  152. package/dist/exports/client/chunk-6IWEPNUV.js +14 -0
  153. package/dist/exports/client/chunk-6IWEPNUV.js.map +8 -0
  154. package/dist/exports/client/{chunk-JINNHJP7.js → chunk-6MRITTMD.js} +3 -3
  155. package/dist/exports/client/{chunk-JINNHJP7.js.map → chunk-6MRITTMD.js.map} +4 -4
  156. package/dist/exports/client/index.d.ts +1 -0
  157. package/dist/exports/client/index.d.ts.map +1 -1
  158. package/dist/exports/client/index.js +19 -19
  159. package/dist/exports/client/index.js.map +4 -4
  160. package/dist/exports/shared/index.d.ts +3 -0
  161. package/dist/exports/shared/index.d.ts.map +1 -1
  162. package/dist/exports/shared/index.js +2 -2
  163. package/dist/exports/shared/index.js.map +4 -4
  164. package/dist/fields/Array/ArrayRow.js +2 -2
  165. package/dist/fields/Array/ArrayRow.js.map +1 -1
  166. package/dist/fields/Blocks/BlockRow.js +2 -2
  167. package/dist/fields/Blocks/BlockRow.js.map +1 -1
  168. package/dist/fields/Collapsible/index.d.ts +16 -16
  169. package/dist/fields/Collapsible/index.d.ts.map +1 -1
  170. package/dist/fields/Group/index.js +2 -2
  171. package/dist/fields/Group/index.js.map +1 -1
  172. package/dist/fields/Join/index.d.ts +9 -0
  173. package/dist/fields/Join/index.d.ts.map +1 -0
  174. package/dist/fields/Join/index.js +75 -0
  175. package/dist/fields/Join/index.js.map +1 -0
  176. package/dist/fields/Number/index.js +1 -1
  177. package/dist/fields/Number/index.js.map +1 -1
  178. package/dist/fields/Password/index.js +29 -25
  179. package/dist/fields/Password/index.js.map +1 -1
  180. package/dist/fields/Relationship/select-components/SingleValue/index.d.ts.map +1 -1
  181. package/dist/fields/Relationship/select-components/SingleValue/index.js +11 -13
  182. package/dist/fields/Relationship/select-components/SingleValue/index.js.map +1 -1
  183. package/dist/fields/Row/index.scss +3 -0
  184. package/dist/fields/Textarea/index.d.ts.map +1 -1
  185. package/dist/fields/Textarea/index.js +2 -0
  186. package/dist/fields/Textarea/index.js.map +1 -1
  187. package/dist/fields/Upload/RelationshipContent/index.js +28 -29
  188. package/dist/fields/Upload/RelationshipContent/index.js.map +1 -1
  189. package/dist/fields/Upload/UploadCard/index.scss +0 -1
  190. package/dist/fields/index.d.ts.map +1 -1
  191. package/dist/fields/index.js +2 -0
  192. package/dist/fields/index.js.map +1 -1
  193. package/dist/forms/Form/index.js +6 -2
  194. package/dist/forms/Form/index.js.map +1 -1
  195. package/dist/forms/NullifyField/index.d.ts.map +1 -1
  196. package/dist/forms/NullifyField/index.js +1 -0
  197. package/dist/forms/NullifyField/index.js.map +1 -1
  198. package/dist/forms/RenderFields/RenderField.d.ts.map +1 -1
  199. package/dist/forms/RenderFields/RenderField.js +3 -1
  200. package/dist/forms/RenderFields/RenderField.js.map +1 -1
  201. package/dist/forms/RenderFields/index.d.ts.map +1 -1
  202. package/dist/forms/RenderFields/index.js +18 -15
  203. package/dist/forms/RenderFields/index.js.map +1 -1
  204. package/dist/forms/buildStateFromSchema/addFieldStatePromise.d.ts.map +1 -1
  205. package/dist/forms/buildStateFromSchema/addFieldStatePromise.js +3 -4
  206. package/dist/forms/buildStateFromSchema/addFieldStatePromise.js.map +1 -1
  207. package/dist/forms/buildStateFromSchema/index.d.ts +2 -0
  208. package/dist/forms/buildStateFromSchema/index.d.ts.map +1 -1
  209. package/dist/forms/buildStateFromSchema/index.js.map +1 -1
  210. package/dist/forms/useField/index.js +203 -111
  211. package/dist/forms/useField/index.js.map +1 -1
  212. package/dist/hooks/useDelay.js +48 -15
  213. package/dist/hooks/useDelay.js.map +1 -1
  214. package/dist/hooks/useDelayedRender.js +71 -32
  215. package/dist/hooks/useDelayedRender.js.map +1 -1
  216. package/dist/hooks/usePayloadAPI.d.ts.map +1 -1
  217. package/dist/hooks/usePayloadAPI.js.map +1 -1
  218. package/dist/icons/Chevron/index.d.ts +3 -3
  219. package/dist/icons/Chevron/index.d.ts.map +1 -1
  220. package/dist/icons/Chevron/index.js +4 -4
  221. package/dist/icons/Chevron/index.js.map +1 -1
  222. package/dist/icons/Chevron/index.scss +9 -1
  223. package/dist/icons/Lock/index.d.ts +6 -0
  224. package/dist/icons/Lock/index.d.ts.map +1 -0
  225. package/dist/icons/Lock/index.js +27 -0
  226. package/dist/icons/Lock/index.js.map +1 -0
  227. package/dist/icons/Lock/index.scss +8 -0
  228. package/dist/providers/Config/createClientConfig/collections.d.ts.map +1 -1
  229. package/dist/providers/Config/createClientConfig/collections.js +11 -1
  230. package/dist/providers/Config/createClientConfig/collections.js.map +1 -1
  231. package/dist/providers/Config/createClientConfig/fields.d.ts.map +1 -1
  232. package/dist/providers/Config/createClientConfig/fields.js +3 -0
  233. package/dist/providers/Config/createClientConfig/fields.js.map +1 -1
  234. package/dist/providers/DocumentInfo/index.d.ts.map +1 -1
  235. package/dist/providers/DocumentInfo/index.js +101 -6
  236. package/dist/providers/DocumentInfo/index.js.map +1 -1
  237. package/dist/providers/DocumentInfo/types.d.ts +32 -27
  238. package/dist/providers/DocumentInfo/types.d.ts.map +1 -1
  239. package/dist/providers/DocumentInfo/types.js.map +1 -1
  240. package/dist/providers/ListQuery/index.d.ts +5 -5
  241. package/dist/providers/ListQuery/index.d.ts.map +1 -1
  242. package/dist/providers/ListQuery/index.js.map +1 -1
  243. package/dist/providers/Preferences/index.js +3 -1
  244. package/dist/providers/Preferences/index.js.map +1 -1
  245. package/dist/providers/Root/index.d.ts.map +1 -1
  246. package/dist/providers/Root/index.js +2 -2
  247. package/dist/providers/Root/index.js.map +1 -1
  248. package/dist/providers/Selection/index.d.ts +2 -1
  249. package/dist/providers/Selection/index.d.ts.map +1 -1
  250. package/dist/providers/Selection/index.js +23 -8
  251. package/dist/providers/Selection/index.js.map +1 -1
  252. package/dist/providers/Theme/index.d.ts +0 -1
  253. package/dist/providers/Theme/index.d.ts.map +1 -1
  254. package/dist/providers/Theme/index.js +29 -21
  255. package/dist/providers/Theme/index.js.map +1 -1
  256. package/dist/providers/Translation/index.d.ts.map +1 -1
  257. package/dist/providers/Translation/index.js +5 -7
  258. package/dist/providers/Translation/index.js.map +1 -1
  259. package/dist/styles.css +1 -1
  260. package/dist/utilities/buildFormState.d.ts +9 -3
  261. package/dist/utilities/buildFormState.d.ts.map +1 -1
  262. package/dist/utilities/buildFormState.js +82 -4
  263. package/dist/utilities/buildFormState.js.map +1 -1
  264. package/dist/utilities/deepMerge.d.ts +12 -0
  265. package/dist/utilities/deepMerge.d.ts.map +1 -0
  266. package/dist/utilities/deepMerge.js +25 -0
  267. package/dist/utilities/deepMerge.js.map +1 -0
  268. package/dist/utilities/getFormState.d.ts +8 -2
  269. package/dist/utilities/getFormState.d.ts.map +1 -1
  270. package/dist/utilities/getFormState.js +3 -1
  271. package/dist/utilities/getFormState.js.map +1 -1
  272. package/dist/utilities/handleBackToDashboard.d.ts +8 -0
  273. package/dist/utilities/handleBackToDashboard.d.ts.map +1 -0
  274. package/dist/utilities/handleBackToDashboard.js +12 -0
  275. package/dist/utilities/handleBackToDashboard.js.map +1 -0
  276. package/dist/utilities/handleGoBack.d.ts +9 -0
  277. package/dist/utilities/handleGoBack.d.ts.map +1 -0
  278. package/dist/utilities/handleGoBack.js +13 -0
  279. package/dist/utilities/handleGoBack.js.map +1 -0
  280. package/dist/utilities/handleTakeOver.d.ts +7 -0
  281. package/dist/utilities/handleTakeOver.d.ts.map +1 -0
  282. package/dist/utilities/handleTakeOver.js +27 -0
  283. package/dist/utilities/handleTakeOver.js.map +1 -0
  284. package/package.json +14 -14
  285. package/dist/exports/client/CodeEditor-CHKRX3U2.js.map +0 -8
  286. package/dist/exports/client/chunk-BGA6EPOL.js +0 -14
  287. package/dist/exports/client/chunk-BGA6EPOL.js.map +0 -8
  288. /package/dist/exports/client/{DatePicker-OLRZVTAD.js.map → DatePicker-NBYDOP2X.js.map} +0 -0
@@ -13,14 +13,16 @@ export const useTableColumns = () => {
13
13
  return useContext(TableColumnContext);
14
14
  };
15
15
  export const TableColumnsProvider = t0 => {
16
- const $ = _c(53);
16
+ const $ = _c(63);
17
17
  const {
18
+ beforeRows,
18
19
  cellProps,
19
20
  children,
20
21
  collectionSlug,
21
22
  enableRowSelections: t1,
22
23
  listPreferences,
23
- preferenceKey
24
+ preferenceKey,
25
+ sortColumnProps
24
26
  } = t0;
25
27
  const enableRowSelections = t1 === undefined ? false : t1;
26
28
  const {
@@ -33,7 +35,7 @@ export const TableColumnsProvider = t0 => {
33
35
  if ($[0] !== collectionSlug || $[1] !== collections) {
34
36
  let t4;
35
37
  if ($[3] !== collectionSlug) {
36
- t4 = collectionConfig => collectionConfig.slug === collectionSlug;
38
+ t4 = c => c.slug === collectionSlug;
37
39
  $[3] = collectionSlug;
38
40
  $[4] = t4;
39
41
  } else {
@@ -46,11 +48,11 @@ export const TableColumnsProvider = t0 => {
46
48
  } else {
47
49
  t3 = $[2];
48
50
  }
49
- const collectionConfig_0 = t3;
51
+ const collectionConfig = t3;
50
52
  const {
51
53
  admin: t4,
52
54
  fields
53
- } = collectionConfig_0;
55
+ } = collectionConfig;
54
56
  const {
55
57
  defaultColumns,
56
58
  useAsTitle
@@ -72,46 +74,48 @@ export const TableColumnsProvider = t0 => {
72
74
  }
73
75
  const [initialColumns] = useState(t5);
74
76
  let t6;
75
- if ($[9] !== cellProps || $[10] !== listPreferences || $[11] !== initialColumns || $[12] !== enableRowSelections || $[13] !== fields || $[14] !== useAsTitle) {
77
+ if ($[9] !== beforeRows || $[10] !== listPreferences || $[11] !== initialColumns || $[12] !== enableRowSelections || $[13] !== fields || $[14] !== sortColumnProps || $[15] !== useAsTitle) {
76
78
  t6 = () => buildColumnState({
77
- cellProps,
79
+ beforeRows,
78
80
  columnPreferences: listPreferences?.columns,
79
81
  columns: initialColumns,
80
82
  enableRowSelections,
81
83
  fields,
84
+ sortColumnProps,
82
85
  useAsTitle
83
86
  });
84
- $[9] = cellProps;
87
+ $[9] = beforeRows;
85
88
  $[10] = listPreferences;
86
89
  $[11] = initialColumns;
87
90
  $[12] = enableRowSelections;
88
91
  $[13] = fields;
89
- $[14] = useAsTitle;
90
- $[15] = t6;
92
+ $[14] = sortColumnProps;
93
+ $[15] = useAsTitle;
94
+ $[16] = t6;
91
95
  } else {
92
- t6 = $[15];
96
+ t6 = $[16];
93
97
  }
94
98
  const [tableColumns, setTableColumns] = React.useState(t6);
95
99
  let t7;
96
- if ($[16] !== setPreference || $[17] !== preferenceKey) {
100
+ if ($[17] !== setPreference || $[18] !== preferenceKey) {
97
101
  t7 = newColumns => {
98
- const columns = newColumns.map(c => ({
99
- accessor: c?.accessor,
100
- active: c?.active
102
+ const columns = newColumns.map(c_0 => ({
103
+ accessor: c_0?.accessor,
104
+ active: c_0?.active
101
105
  }));
102
106
  setPreference(preferenceKey, {
103
107
  columns
104
108
  }, true);
105
109
  };
106
- $[16] = setPreference;
107
- $[17] = preferenceKey;
108
- $[18] = t7;
110
+ $[17] = setPreference;
111
+ $[18] = preferenceKey;
112
+ $[19] = t7;
109
113
  } else {
110
- t7 = $[18];
114
+ t7 = $[19];
111
115
  }
112
116
  const updateColumnPreferences = t7;
113
117
  let t8;
114
- if ($[19] !== tableColumns || $[20] !== updateColumnPreferences) {
118
+ if ($[20] !== tableColumns || $[21] !== updateColumnPreferences) {
115
119
  t8 = args => {
116
120
  const {
117
121
  fromIndex,
@@ -123,15 +127,15 @@ export const TableColumnsProvider = t0 => {
123
127
  setTableColumns(withMovedColumn);
124
128
  updateColumnPreferences(withMovedColumn);
125
129
  };
126
- $[19] = tableColumns;
127
- $[20] = updateColumnPreferences;
128
- $[21] = t8;
130
+ $[20] = tableColumns;
131
+ $[21] = updateColumnPreferences;
132
+ $[22] = t8;
129
133
  } else {
130
- t8 = $[21];
134
+ t8 = $[22];
131
135
  }
132
136
  const moveColumn = t8;
133
137
  let t9;
134
- if ($[22] !== tableColumns || $[23] !== updateColumnPreferences) {
138
+ if ($[23] !== tableColumns || $[24] !== updateColumnPreferences) {
135
139
  t9 = column => {
136
140
  const toggledColumns = tableColumns.map(col => ({
137
141
  ...col,
@@ -140,32 +144,52 @@ export const TableColumnsProvider = t0 => {
140
144
  setTableColumns(toggledColumns);
141
145
  updateColumnPreferences(toggledColumns);
142
146
  };
143
- $[22] = tableColumns;
144
- $[23] = updateColumnPreferences;
145
- $[24] = t9;
147
+ $[23] = tableColumns;
148
+ $[24] = updateColumnPreferences;
149
+ $[25] = t9;
146
150
  } else {
147
- t9 = $[24];
151
+ t9 = $[25];
148
152
  }
149
153
  const toggleColumn = t9;
150
154
  let t10;
151
- if ($[25] !== tableColumns || $[26] !== updateColumnPreferences) {
155
+ if ($[26] !== tableColumns || $[27] !== updateColumnPreferences) {
152
156
  t10 = activeColumnAccessors => {
153
157
  const activeColumns = tableColumns.map(col_0 => ({
154
158
  ...col_0,
155
159
  active: activeColumnAccessors.includes(col_0.accessor)
156
- }));
160
+ })).toSorted((first, second) => {
161
+ const indexOfFirst = activeColumnAccessors.indexOf(first.accessor);
162
+ const indexOfSecond = activeColumnAccessors.indexOf(second.accessor);
163
+ if (indexOfFirst === -1 || indexOfSecond === -1) {
164
+ return 0;
165
+ }
166
+ return indexOfFirst > indexOfSecond ? 1 : -1;
167
+ });
168
+ setTableColumns(activeColumns);
157
169
  updateColumnPreferences(activeColumns);
158
170
  };
159
- $[25] = tableColumns;
160
- $[26] = updateColumnPreferences;
161
- $[27] = t10;
171
+ $[26] = tableColumns;
172
+ $[27] = updateColumnPreferences;
173
+ $[28] = t10;
162
174
  } else {
163
- t10 = $[27];
175
+ t10 = $[28];
164
176
  }
165
177
  const setActiveColumns = t10;
166
178
  let t11;
167
- if ($[28] !== collectionSlug || $[29] !== listPreferences || $[30] !== getPreference || $[31] !== preferenceKey || $[32] !== cellProps || $[33] !== initialColumns || $[34] !== fields || $[35] !== useAsTitle) {
179
+ if ($[29] !== setActiveColumns || $[30] !== defaultColumns) {
168
180
  t11 = () => {
181
+ setActiveColumns(defaultColumns);
182
+ };
183
+ $[29] = setActiveColumns;
184
+ $[30] = defaultColumns;
185
+ $[31] = t11;
186
+ } else {
187
+ t11 = $[31];
188
+ }
189
+ const resetColumnsState = t11;
190
+ let t12;
191
+ if ($[32] !== collectionSlug || $[33] !== listPreferences || $[34] !== getPreference || $[35] !== preferenceKey || $[36] !== beforeRows || $[37] !== initialColumns || $[38] !== enableRowSelections || $[39] !== fields || $[40] !== sortColumnProps || $[41] !== useAsTitle) {
192
+ t12 = () => {
169
193
  const sync = async () => {
170
194
  const collectionHasChanged = prevCollection.current !== collectionSlug;
171
195
  if (collectionHasChanged || !listPreferences) {
@@ -173,11 +197,12 @@ export const TableColumnsProvider = t0 => {
173
197
  prevCollection.current = collectionSlug;
174
198
  if (currentPreferences?.columns) {
175
199
  setTableColumns(buildColumnState({
176
- cellProps,
200
+ beforeRows,
177
201
  columnPreferences: currentPreferences?.columns,
178
202
  columns: initialColumns,
179
- enableRowSelections: true,
203
+ enableRowSelections,
180
204
  fields,
205
+ sortColumnProps,
181
206
  useAsTitle
182
207
  }));
183
208
  }
@@ -185,55 +210,63 @@ export const TableColumnsProvider = t0 => {
185
210
  };
186
211
  sync();
187
212
  };
188
- $[28] = collectionSlug;
189
- $[29] = listPreferences;
190
- $[30] = getPreference;
191
- $[31] = preferenceKey;
192
- $[32] = cellProps;
193
- $[33] = initialColumns;
194
- $[34] = fields;
195
- $[35] = useAsTitle;
196
- $[36] = t11;
213
+ $[32] = collectionSlug;
214
+ $[33] = listPreferences;
215
+ $[34] = getPreference;
216
+ $[35] = preferenceKey;
217
+ $[36] = beforeRows;
218
+ $[37] = initialColumns;
219
+ $[38] = enableRowSelections;
220
+ $[39] = fields;
221
+ $[40] = sortColumnProps;
222
+ $[41] = useAsTitle;
223
+ $[42] = t12;
197
224
  } else {
198
- t11 = $[36];
225
+ t12 = $[42];
199
226
  }
200
- let t12;
201
- if ($[37] !== preferenceKey || $[38] !== getPreference || $[39] !== collectionSlug || $[40] !== fields || $[41] !== cellProps || $[42] !== defaultColumns || $[43] !== useAsTitle || $[44] !== listPreferences || $[45] !== initialColumns) {
202
- t12 = [preferenceKey, getPreference, collectionSlug, fields, cellProps, defaultColumns, useAsTitle, listPreferences, initialColumns];
203
- $[37] = preferenceKey;
204
- $[38] = getPreference;
205
- $[39] = collectionSlug;
206
- $[40] = fields;
207
- $[41] = cellProps;
208
- $[42] = defaultColumns;
209
- $[43] = useAsTitle;
210
- $[44] = listPreferences;
211
- $[45] = initialColumns;
212
- $[46] = t12;
227
+ let t13;
228
+ if ($[43] !== preferenceKey || $[44] !== getPreference || $[45] !== collectionSlug || $[46] !== fields || $[47] !== defaultColumns || $[48] !== useAsTitle || $[49] !== listPreferences || $[50] !== initialColumns || $[51] !== beforeRows || $[52] !== enableRowSelections || $[53] !== sortColumnProps) {
229
+ t13 = [preferenceKey, getPreference, collectionSlug, fields, defaultColumns, useAsTitle, listPreferences, initialColumns, beforeRows, enableRowSelections, sortColumnProps];
230
+ $[43] = preferenceKey;
231
+ $[44] = getPreference;
232
+ $[45] = collectionSlug;
233
+ $[46] = fields;
234
+ $[47] = defaultColumns;
235
+ $[48] = useAsTitle;
236
+ $[49] = listPreferences;
237
+ $[50] = initialColumns;
238
+ $[51] = beforeRows;
239
+ $[52] = enableRowSelections;
240
+ $[53] = sortColumnProps;
241
+ $[54] = t13;
213
242
  } else {
214
- t12 = $[46];
243
+ t13 = $[54];
215
244
  }
216
- React.useEffect(t11, t12);
217
- let t13;
218
- if ($[47] !== tableColumns || $[48] !== moveColumn || $[49] !== setActiveColumns || $[50] !== toggleColumn || $[51] !== children) {
219
- t13 = _jsx(TableColumnContext.Provider, {
245
+ React.useEffect(t12, t13);
246
+ let t14;
247
+ if ($[55] !== cellProps || $[56] !== tableColumns || $[57] !== moveColumn || $[58] !== resetColumnsState || $[59] !== setActiveColumns || $[60] !== toggleColumn || $[61] !== children) {
248
+ t14 = _jsx(TableColumnContext.Provider, {
220
249
  value: {
250
+ cellProps,
221
251
  columns: tableColumns,
222
252
  moveColumn,
253
+ resetColumnsState,
223
254
  setActiveColumns,
224
255
  toggleColumn
225
256
  },
226
257
  children
227
258
  });
228
- $[47] = tableColumns;
229
- $[48] = moveColumn;
230
- $[49] = setActiveColumns;
231
- $[50] = toggleColumn;
232
- $[51] = children;
233
- $[52] = t13;
259
+ $[55] = cellProps;
260
+ $[56] = tableColumns;
261
+ $[57] = moveColumn;
262
+ $[58] = resetColumnsState;
263
+ $[59] = setActiveColumns;
264
+ $[60] = toggleColumn;
265
+ $[61] = children;
266
+ $[62] = t14;
234
267
  } else {
235
- t13 = $[52];
268
+ t14 = $[62];
236
269
  }
237
- return t13;
270
+ return t14;
238
271
  };
239
272
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["c","_c","React","createContext","useCallback","useContext","useState","useConfig","usePreferences","buildColumnState","filterFields","getInitialColumns","TableColumnContext","useTableColumns","TableColumnsProvider","t0","$","cellProps","children","collectionSlug","enableRowSelections","t1","listPreferences","preferenceKey","undefined","config","t2","collections","t3","t4","collectionConfig","slug","find","collectionConfig_0","admin","fields","defaultColumns","useAsTitle","prevCollection","useRef","getPreference","setPreference","t5","initialColumns","t6","columnPreferences","columns","tableColumns","setTableColumns","t7","newColumns","map","accessor","active","updateColumnPreferences","t8","args","fromIndex","toIndex","withMovedColumn","columnToMove","splice","moveColumn","t9","column","toggledColumns","col","field","name","toggleColumn","t10","activeColumnAccessors","activeColumns","col_0","includes","setActiveColumns","t11","sync","collectionHasChanged","current","currentPreferences","t12","useEffect","t13","_jsx","Provider","value"],"sources":["../../../src/elements/TableColumns/index.tsx"],"sourcesContent":["'use client'\nimport type { CellComponentProps, SanitizedCollectionConfig } from 'payload'\n\nimport React, { createContext, useCallback, useContext, useState } from 'react'\n\nimport type { ColumnPreferences } from '../../providers/ListInfo/index.js'\nimport type { Column } from '../Table/index.js'\n\nimport { useConfig } from '../../providers/Config/index.js'\nimport { usePreferences } from '../../providers/Preferences/index.js'\nimport { buildColumnState } from './buildColumnState.js'\nimport { filterFields } from './filterFields.js'\nimport { getInitialColumns } from './getInitialColumns.js'\n\nexport interface ITableColumns {\n columns: Column[]\n moveColumn: (args: { fromIndex: number; toIndex: number }) => void\n setActiveColumns: (columns: string[]) => void\n toggleColumn: (column: string) => void\n}\n\nexport const TableColumnContext = createContext<ITableColumns>({} as ITableColumns)\n\nexport const useTableColumns = (): ITableColumns => useContext(TableColumnContext)\n\nexport type ListPreferences = {\n columns: ColumnPreferences\n}\n\ntype Props = {\n readonly cellProps?: Partial<CellComponentProps>[]\n readonly children: React.ReactNode\n readonly collectionSlug: string\n readonly enableRowSelections?: boolean\n readonly listPreferences?: ListPreferences\n readonly preferenceKey: string\n}\n\nexport const TableColumnsProvider: React.FC<Props> = ({\n cellProps,\n children,\n collectionSlug,\n enableRowSelections = false,\n listPreferences,\n preferenceKey,\n}) => {\n const {\n config: { collections },\n } = useConfig()\n\n const collectionConfig = collections.find(\n (collectionConfig) => collectionConfig.slug === collectionSlug,\n )\n\n const {\n admin: { defaultColumns, useAsTitle },\n fields,\n } = collectionConfig\n\n const prevCollection = React.useRef<SanitizedCollectionConfig['slug']>(collectionSlug)\n const { getPreference, setPreference } = usePreferences()\n\n const [initialColumns] = useState<ColumnPreferences>(() =>\n getInitialColumns(filterFields(fields), useAsTitle, defaultColumns),\n )\n\n const [tableColumns, setTableColumns] = React.useState(() =>\n buildColumnState({\n cellProps,\n columnPreferences: listPreferences?.columns,\n columns: initialColumns,\n enableRowSelections,\n fields,\n useAsTitle,\n }),\n )\n\n const updateColumnPreferences = React.useCallback(\n (newColumns: Column[]) => {\n const columns = newColumns.map((c) => ({\n accessor: c?.accessor,\n active: c?.active,\n }))\n\n void setPreference(preferenceKey, { columns }, true)\n },\n [preferenceKey, setPreference],\n )\n\n const moveColumn = useCallback(\n (args: { fromIndex: number; toIndex: number }) => {\n const { fromIndex, toIndex } = args\n\n const withMovedColumn = [...tableColumns]\n const [columnToMove] = withMovedColumn.splice(fromIndex, 1)\n withMovedColumn.splice(toIndex, 0, columnToMove)\n\n setTableColumns(withMovedColumn)\n updateColumnPreferences(withMovedColumn)\n },\n [tableColumns, updateColumnPreferences],\n )\n\n const toggleColumn = useCallback(\n (column: string) => {\n const toggledColumns = tableColumns.map((col) => {\n return {\n ...col,\n active:\n col?.cellProps?.field &&\n 'name' in col.cellProps.field &&\n col?.cellProps?.field?.name === column\n ? !col.active\n : col.active,\n }\n })\n\n setTableColumns(toggledColumns)\n updateColumnPreferences(toggledColumns)\n },\n [tableColumns, updateColumnPreferences],\n )\n\n const setActiveColumns = React.useCallback(\n (activeColumnAccessors) => {\n const activeColumns = tableColumns.map((col) => {\n return {\n ...col,\n active: activeColumnAccessors.includes(col.accessor),\n }\n })\n\n updateColumnPreferences(activeColumns)\n },\n [tableColumns, updateColumnPreferences],\n )\n\n // //////////////////////////////////////////////\n // Get preferences on collection change (drawers)\n // //////////////////////////////////////////////\n\n React.useEffect(() => {\n const sync = async () => {\n const collectionHasChanged = prevCollection.current !== collectionSlug\n\n if (collectionHasChanged || !listPreferences) {\n const currentPreferences = await getPreference<{\n columns: ColumnPreferences\n }>(preferenceKey)\n prevCollection.current = collectionSlug\n\n if (currentPreferences?.columns) {\n setTableColumns(\n buildColumnState({\n cellProps,\n columnPreferences: currentPreferences?.columns,\n columns: initialColumns,\n enableRowSelections: true,\n fields,\n useAsTitle,\n }),\n )\n }\n }\n }\n\n void sync()\n }, [\n preferenceKey,\n getPreference,\n collectionSlug,\n fields,\n cellProps,\n defaultColumns,\n useAsTitle,\n listPreferences,\n initialColumns,\n ])\n\n return (\n <TableColumnContext.Provider\n value={{\n columns: tableColumns,\n moveColumn,\n setActiveColumns,\n toggleColumn,\n }}\n >\n {children}\n </TableColumnContext.Provider>\n )\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["c","_c","React","createContext","useCallback","useContext","useState","useConfig","usePreferences","buildColumnState","filterFields","getInitialColumns","TableColumnContext","useTableColumns","TableColumnsProvider","t0","$","beforeRows","cellProps","children","collectionSlug","enableRowSelections","t1","listPreferences","preferenceKey","sortColumnProps","undefined","config","t2","collections","t3","t4","slug","find","collectionConfig","admin","fields","defaultColumns","useAsTitle","prevCollection","useRef","getPreference","setPreference","t5","initialColumns","t6","columnPreferences","columns","tableColumns","setTableColumns","t7","newColumns","map","c_0","accessor","active","updateColumnPreferences","t8","args","fromIndex","toIndex","withMovedColumn","columnToMove","splice","moveColumn","t9","column","toggledColumns","col","field","name","toggleColumn","t10","activeColumnAccessors","activeColumns","col_0","includes","toSorted","first","second","indexOfFirst","indexOf","indexOfSecond","setActiveColumns","t11","resetColumnsState","t12","sync","collectionHasChanged","current","currentPreferences","t13","useEffect","t14","_jsx","Provider","value"],"sources":["../../../src/elements/TableColumns/index.tsx"],"sourcesContent":["'use client'\nimport type { CellComponentProps, SanitizedCollectionConfig } from 'payload'\n\nimport React, { createContext, useCallback, useContext, useState } 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 { useConfig } from '../../providers/Config/index.js'\nimport { usePreferences } from '../../providers/Preferences/index.js'\nimport { buildColumnState } from './buildColumnState.js'\nimport { filterFields } from './filterFields.js'\nimport { getInitialColumns } from './getInitialColumns.js'\n\nexport interface ITableColumns {\n cellProps?: Partial<CellComponentProps>[]\n columns: Column[]\n moveColumn: (args: { fromIndex: number; toIndex: number }) => void\n resetColumnsState: () => void\n setActiveColumns: (columns: string[]) => void\n toggleColumn: (column: string) => void\n}\n\nexport const TableColumnContext = createContext<ITableColumns>({} as ITableColumns)\n\nexport const useTableColumns = (): ITableColumns => useContext(TableColumnContext)\n\nexport type ListPreferences = {\n columns: ColumnPreferences\n}\n\ntype Props = {\n readonly beforeRows?: Column[]\n readonly cellProps?: Partial<CellComponentProps>[]\n readonly children: React.ReactNode\n readonly collectionSlug: string\n readonly enableRowSelections?: boolean\n readonly listPreferences?: ListPreferences\n readonly preferenceKey: string\n readonly sortColumnProps?: Partial<SortColumnProps>\n}\n\nexport const TableColumnsProvider: React.FC<Props> = ({\n beforeRows,\n cellProps,\n children,\n collectionSlug,\n enableRowSelections = false,\n listPreferences,\n preferenceKey,\n sortColumnProps,\n}) => {\n const {\n config: { collections },\n } = useConfig()\n\n const collectionConfig = collections.find((c) => c.slug === collectionSlug)\n\n const {\n admin: { defaultColumns, useAsTitle },\n fields,\n } = collectionConfig\n\n const prevCollection = React.useRef<SanitizedCollectionConfig['slug']>(collectionSlug)\n const { getPreference, setPreference } = usePreferences()\n\n const [initialColumns] = useState<ColumnPreferences>(() =>\n getInitialColumns(filterFields(fields), useAsTitle, defaultColumns),\n )\n\n const [tableColumns, setTableColumns] = React.useState(() =>\n buildColumnState({\n beforeRows,\n columnPreferences: listPreferences?.columns,\n columns: initialColumns,\n enableRowSelections,\n fields,\n sortColumnProps,\n useAsTitle,\n }),\n )\n\n const updateColumnPreferences = React.useCallback(\n (newColumns: Column[]) => {\n const columns = newColumns.map((c) => ({\n accessor: c?.accessor,\n active: c?.active,\n }))\n\n void setPreference(preferenceKey, { columns }, true)\n },\n [preferenceKey, setPreference],\n )\n\n const moveColumn = useCallback(\n (args: { fromIndex: number; toIndex: number }) => {\n const { fromIndex, toIndex } = args\n const withMovedColumn = [...tableColumns]\n const [columnToMove] = withMovedColumn.splice(fromIndex, 1)\n withMovedColumn.splice(toIndex, 0, columnToMove)\n setTableColumns(withMovedColumn)\n updateColumnPreferences(withMovedColumn)\n },\n [tableColumns, updateColumnPreferences],\n )\n\n const toggleColumn = useCallback(\n (column: string) => {\n const toggledColumns = tableColumns.map((col) => {\n return {\n ...col,\n active:\n col?.cellProps?.field &&\n 'name' in col.cellProps.field &&\n col?.cellProps?.field?.name === column\n ? !col.active\n : col.active,\n }\n })\n\n setTableColumns(toggledColumns)\n updateColumnPreferences(toggledColumns)\n },\n [tableColumns, updateColumnPreferences],\n )\n\n const setActiveColumns = React.useCallback(\n (activeColumnAccessors: string[]) => {\n const activeColumns = tableColumns\n .map((col) => {\n return {\n ...col,\n active: activeColumnAccessors.includes(col.accessor),\n }\n })\n .toSorted((first, second) => {\n const indexOfFirst = activeColumnAccessors.indexOf(first.accessor)\n const indexOfSecond = activeColumnAccessors.indexOf(second.accessor)\n\n if (indexOfFirst === -1 || indexOfSecond === -1) {\n return 0\n }\n\n return indexOfFirst > indexOfSecond ? 1 : -1\n })\n\n setTableColumns(activeColumns)\n updateColumnPreferences(activeColumns)\n },\n [tableColumns, updateColumnPreferences],\n )\n\n const resetColumnsState = React.useCallback(() => {\n setActiveColumns(defaultColumns)\n }, [defaultColumns, setActiveColumns])\n\n // //////////////////////////////////////////////\n // Get preferences on collection change (drawers)\n // //////////////////////////////////////////////\n\n React.useEffect(() => {\n const sync = async () => {\n const collectionHasChanged = prevCollection.current !== collectionSlug\n\n if (collectionHasChanged || !listPreferences) {\n const currentPreferences = await getPreference<{\n columns: ColumnPreferences\n }>(preferenceKey)\n prevCollection.current = collectionSlug\n\n if (currentPreferences?.columns) {\n setTableColumns(\n buildColumnState({\n beforeRows,\n columnPreferences: currentPreferences?.columns,\n columns: initialColumns,\n enableRowSelections,\n fields,\n sortColumnProps,\n useAsTitle,\n }),\n )\n }\n }\n }\n\n void sync()\n }, [\n preferenceKey,\n getPreference,\n collectionSlug,\n fields,\n defaultColumns,\n useAsTitle,\n listPreferences,\n initialColumns,\n beforeRows,\n enableRowSelections,\n sortColumnProps,\n ])\n\n return (\n <TableColumnContext.Provider\n value={{\n cellProps,\n columns: tableColumns,\n moveColumn,\n resetColumnsState,\n setActiveColumns,\n toggleColumn,\n }}\n >\n {children}\n </TableColumnContext.Provider>\n )\n}\n"],"mappings":"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","ignoreList":[]}
@@ -6,6 +6,7 @@ export type Props = {
6
6
  children: React.ReactNode;
7
7
  className?: string;
8
8
  delay?: number;
9
+ position?: 'bottom' | 'top';
9
10
  show?: boolean;
10
11
  /**
11
12
  * If the tooltip position should not change depending on if the toolbar is outside the boundingRef. @default false
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/Tooltip/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAoB,MAAM,OAAO,CAAA;AAGxC,OAAO,cAAc,CAAA;AAErB,MAAM,MAAM,KAAK,GAAG;IAClB,UAAU,CAAC,EAAE,QAAQ,GAAG,MAAM,GAAG,OAAO,CAAA;IACxC,WAAW,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,WAAW,GAAG,IAAI,CAAC,CAAA;IACjD,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;IACzB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,IAAI,CAAC,EAAE,OAAO,CAAA;IACd;;OAEG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAA;CAC5B,CAAA;AAED,eAAO,MAAM,OAAO,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CAkFnC,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/Tooltip/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAoB,MAAM,OAAO,CAAA;AAGxC,OAAO,cAAc,CAAA;AAErB,MAAM,MAAM,KAAK,GAAG;IAClB,UAAU,CAAC,EAAE,QAAQ,GAAG,MAAM,GAAG,OAAO,CAAA;IACxC,WAAW,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,WAAW,GAAG,IAAI,CAAC,CAAA;IACjD,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;IACzB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,QAAQ,CAAC,EAAE,QAAQ,GAAG,KAAK,CAAA;IAC3B,IAAI,CAAC,EAAE,OAAO,CAAA;IACd;;OAEG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAA;CAC5B,CAAA;AAED,eAAO,MAAM,OAAO,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CAmFnC,CAAA"}
@@ -6,13 +6,14 @@ import React, { useEffect } from 'react';
6
6
  import { useIntersect } from '../../hooks/useIntersect.js';
7
7
  import './index.scss';
8
8
  export const Tooltip = props => {
9
- const $ = _c(23);
9
+ const $ = _c(24);
10
10
  const {
11
11
  alignCaret: t0,
12
12
  boundingRef,
13
13
  children,
14
14
  className,
15
15
  delay: t1,
16
+ position: positionFromProps,
16
17
  show: t2,
17
18
  staticPositioning: t3
18
19
  } = props;
@@ -85,20 +86,20 @@ export const Tooltip = props => {
85
86
  }
86
87
  useEffect(t8, t9);
87
88
  let t10;
88
- if ($[10] !== staticPositioning || $[11] !== alignCaret || $[12] !== className || $[13] !== children || $[14] !== ref || $[15] !== show || $[16] !== position) {
89
+ if ($[10] !== staticPositioning || $[11] !== alignCaret || $[12] !== className || $[13] !== children || $[14] !== ref || $[15] !== show || $[16] !== positionFromProps || $[17] !== position) {
89
90
  const t11 = show && "tooltip--show";
90
91
  const t12 = `tooltip--caret-${alignCaret}`;
91
- const t13 = `tooltip--position-${position}`;
92
+ const t13 = `tooltip--position-${positionFromProps || position}`;
92
93
  let t14;
93
- if ($[18] !== className || $[19] !== t11 || $[20] !== t12 || $[21] !== t13) {
94
+ if ($[19] !== className || $[20] !== t11 || $[21] !== t12 || $[22] !== t13) {
94
95
  t14 = ["tooltip", className, t11, t12, t13].filter(Boolean);
95
- $[18] = className;
96
- $[19] = t11;
97
- $[20] = t12;
98
- $[21] = t13;
99
- $[22] = t14;
96
+ $[19] = className;
97
+ $[20] = t11;
98
+ $[21] = t12;
99
+ $[22] = t13;
100
+ $[23] = t14;
100
101
  } else {
101
- t14 = $[22];
102
+ t14 = $[23];
102
103
  }
103
104
  t10 = _jsxs(React.Fragment, {
104
105
  children: [!staticPositioning && _jsx("aside", {
@@ -127,10 +128,11 @@ export const Tooltip = props => {
127
128
  $[13] = children;
128
129
  $[14] = ref;
129
130
  $[15] = show;
130
- $[16] = position;
131
- $[17] = t10;
131
+ $[16] = positionFromProps;
132
+ $[17] = position;
133
+ $[18] = t10;
132
134
  } else {
133
- t10 = $[17];
135
+ t10 = $[18];
134
136
  }
135
137
  return t10;
136
138
  };
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["c","_c","React","useEffect","useIntersect","Tooltip","props","$","alignCaret","t0","boundingRef","children","className","delay","t1","show","t2","staticPositioning","t3","undefined","showFromProps","setShow","useState","position","setPosition","getTitleAttribute","_temp","t4","current","t5","root","rootMargin","threshold","ref","intersectionEntry","t6","t7","timerId","clearTimeout","t8","t9","isIntersecting","t10","t11","t12","t13","t14","filter","Boolean","_jsxs","Fragment","_jsx","join","style","opacity","title","content"],"sources":["../../../src/elements/Tooltip/index.tsx"],"sourcesContent":["'use client'\nimport React, { useEffect } from 'react'\n\nimport { useIntersect } from '../../hooks/useIntersect.js'\nimport './index.scss'\n\nexport type Props = {\n alignCaret?: 'center' | 'left' | 'right'\n boundingRef?: React.RefObject<HTMLElement | null>\n children: React.ReactNode\n className?: string\n delay?: number\n show?: boolean\n /**\n * If the tooltip position should not change depending on if the toolbar is outside the boundingRef. @default false\n */\n staticPositioning?: boolean\n}\n\nexport const Tooltip: React.FC<Props> = (props) => {\n const {\n alignCaret = 'center',\n boundingRef,\n children,\n className,\n delay = 350,\n show: showFromProps = true,\n staticPositioning = false,\n } = props\n\n const [show, setShow] = React.useState(showFromProps)\n const [position, setPosition] = React.useState<'bottom' | 'top'>('top')\n\n const getTitleAttribute = (content) => (typeof content === 'string' ? content : '')\n\n const [ref, intersectionEntry] = useIntersect(\n {\n root: boundingRef?.current || null,\n rootMargin: '-145px 0px 0px 100px',\n threshold: 0,\n },\n staticPositioning,\n )\n\n useEffect(() => {\n let timerId: NodeJS.Timeout\n\n // do not use the delay on transition-out\n if (delay && showFromProps) {\n timerId = setTimeout(() => {\n setShow(showFromProps)\n }, delay)\n } else {\n setShow(showFromProps)\n }\n\n return () => {\n if (timerId) {\n clearTimeout(timerId)\n }\n }\n }, [showFromProps, delay])\n\n useEffect(() => {\n if (staticPositioning) {\n return\n }\n setPosition(intersectionEntry?.isIntersecting ? 'top' : 'bottom')\n }, [intersectionEntry, staticPositioning])\n\n // The first aside is always on top. The purpose of that is that it can reliably be used for the interaction observer (as it's not moving around), to calculate the position of the actual tooltip.\n return (\n <React.Fragment>\n {!staticPositioning && (\n <aside\n aria-hidden=\"true\"\n className={['tooltip', className, `tooltip--caret-${alignCaret}`, 'tooltip--position-top']\n .filter(Boolean)\n .join(' ')}\n ref={ref}\n style={{ opacity: '0' }}\n >\n <div className=\"tooltip-content\">{children}</div>\n </aside>\n )}\n <aside\n className={[\n 'tooltip',\n className,\n show && 'tooltip--show',\n `tooltip--caret-${alignCaret}`,\n `tooltip--position-${position}`,\n ]\n .filter(Boolean)\n .join(' ')}\n title={getTitleAttribute(children)}\n >\n <div className=\"tooltip-content\">{children}</div>\n </aside>\n </React.Fragment>\n )\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["c","_c","React","useEffect","useIntersect","Tooltip","props","$","alignCaret","t0","boundingRef","children","className","delay","t1","position","positionFromProps","show","t2","staticPositioning","t3","undefined","showFromProps","setShow","useState","setPosition","getTitleAttribute","_temp","t4","current","t5","root","rootMargin","threshold","ref","intersectionEntry","t6","t7","timerId","clearTimeout","t8","t9","isIntersecting","t10","t11","t12","t13","t14","filter","Boolean","_jsxs","Fragment","_jsx","join","style","opacity","title","content"],"sources":["../../../src/elements/Tooltip/index.tsx"],"sourcesContent":["'use client'\nimport React, { useEffect } from 'react'\n\nimport { useIntersect } from '../../hooks/useIntersect.js'\nimport './index.scss'\n\nexport type Props = {\n alignCaret?: 'center' | 'left' | 'right'\n boundingRef?: React.RefObject<HTMLElement | null>\n children: React.ReactNode\n className?: string\n delay?: number\n position?: 'bottom' | 'top'\n show?: boolean\n /**\n * If the tooltip position should not change depending on if the toolbar is outside the boundingRef. @default false\n */\n staticPositioning?: boolean\n}\n\nexport const Tooltip: React.FC<Props> = (props) => {\n const {\n alignCaret = 'center',\n boundingRef,\n children,\n className,\n delay = 350,\n position: positionFromProps,\n show: showFromProps = true,\n staticPositioning = false,\n } = props\n\n const [show, setShow] = React.useState(showFromProps)\n const [position, setPosition] = React.useState<'bottom' | 'top'>('top')\n\n const getTitleAttribute = (content) => (typeof content === 'string' ? content : '')\n\n const [ref, intersectionEntry] = useIntersect(\n {\n root: boundingRef?.current || null,\n rootMargin: '-145px 0px 0px 100px',\n threshold: 0,\n },\n staticPositioning,\n )\n\n useEffect(() => {\n let timerId: NodeJS.Timeout\n\n // do not use the delay on transition-out\n if (delay && showFromProps) {\n timerId = setTimeout(() => {\n setShow(showFromProps)\n }, delay)\n } else {\n setShow(showFromProps)\n }\n\n return () => {\n if (timerId) {\n clearTimeout(timerId)\n }\n }\n }, [showFromProps, delay])\n\n useEffect(() => {\n if (staticPositioning) {\n return\n }\n setPosition(intersectionEntry?.isIntersecting ? 'top' : 'bottom')\n }, [intersectionEntry, staticPositioning])\n\n // The first aside is always on top. The purpose of that is that it can reliably be used for the interaction observer (as it's not moving around), to calculate the position of the actual tooltip.\n return (\n <React.Fragment>\n {!staticPositioning && (\n <aside\n aria-hidden=\"true\"\n className={['tooltip', className, `tooltip--caret-${alignCaret}`, 'tooltip--position-top']\n .filter(Boolean)\n .join(' ')}\n ref={ref}\n style={{ opacity: '0' }}\n >\n <div className=\"tooltip-content\">{children}</div>\n </aside>\n )}\n <aside\n className={[\n 'tooltip',\n className,\n show && 'tooltip--show',\n `tooltip--caret-${alignCaret}`,\n `tooltip--position-${positionFromProps || position}`,\n ]\n .filter(Boolean)\n .join(' ')}\n title={getTitleAttribute(children)}\n >\n <div className=\"tooltip-content\">{children}</div>\n </aside>\n </React.Fragment>\n )\n}\n"],"mappings":"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","ignoreList":[]}
@@ -53,7 +53,7 @@
53
53
  }
54
54
 
55
55
  &--position-top {
56
- top: calc(var(--base) * -0.6 - 13px);
56
+ top: calc(var(--base) * -1.25);
57
57
  transform: translate3d(-50%, calc(var(--caret-size) * -1), 0);
58
58
 
59
59
  &::after {
@@ -63,7 +63,7 @@
63
63
  }
64
64
 
65
65
  &--position-bottom {
66
- bottom: calc(var(--base) * -0.6 - 13px);
66
+ bottom: calc(var(--base) * -1.25);
67
67
  transform: translate3d(-50%, var(--caret-size), 0);
68
68
 
69
69
  &::after {
@@ -88,7 +88,8 @@ export const UnpublishMany = props => {
88
88
  page: selectAll ? '1' : undefined
89
89
  }
90
90
  }));
91
- clearRouteCache();
91
+ 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
92
+ ;
92
93
  return null;
93
94
  }
94
95
  if (json.errors) {
@@ -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()\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","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":[]}