@payloadcms/ui 4.0.0-internal.e55ccef → 4.0.0-internal.f05c47f

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 (561) hide show
  1. package/dist/css/app.css +121 -0
  2. package/dist/css/forms.css +0 -6
  3. package/dist/css/spacing.css +11 -3
  4. package/dist/css/z-index.css +1 -0
  5. package/dist/elements/AddNewRelation/index.css +0 -1
  6. package/dist/elements/AppHeader/index.css +1 -3
  7. package/dist/elements/AppHeader/index.d.ts.map +1 -1
  8. package/dist/elements/AppHeader/index.js +5 -1
  9. package/dist/elements/AppHeader/index.js.map +1 -1
  10. package/dist/elements/ArrayAction/index.d.ts +3 -0
  11. package/dist/elements/ArrayAction/index.d.ts.map +1 -1
  12. package/dist/elements/ArrayAction/index.js +83 -29
  13. package/dist/elements/ArrayAction/index.js.map +1 -1
  14. package/dist/elements/Autosave/index.d.ts.map +1 -1
  15. package/dist/elements/Autosave/index.js +3 -0
  16. package/dist/elements/Autosave/index.js.map +1 -1
  17. package/dist/elements/BranchSelector/index.css +83 -0
  18. package/dist/elements/BranchSelector/index.d.ts +12 -0
  19. package/dist/elements/BranchSelector/index.d.ts.map +1 -0
  20. package/dist/elements/BranchSelector/index.js +160 -0
  21. package/dist/elements/BranchSelector/index.js.map +1 -0
  22. package/dist/elements/BulkUpload/EditMany/DrawerContent.js +2 -2
  23. package/dist/elements/BulkUpload/EditMany/DrawerContent.js.map +1 -1
  24. package/dist/elements/BulkUpload/FileSidebar/index.css +4 -0
  25. package/dist/elements/BulkUpload/FormsManager/createFormData.d.ts +2 -2
  26. package/dist/elements/BulkUpload/FormsManager/createFormData.d.ts.map +1 -1
  27. package/dist/elements/BulkUpload/FormsManager/createFormData.js +4 -15
  28. package/dist/elements/BulkUpload/FormsManager/createFormData.js.map +1 -1
  29. package/dist/elements/BulkUpload/FormsManager/index.d.ts.map +1 -1
  30. package/dist/elements/BulkUpload/FormsManager/index.js +7 -3
  31. package/dist/elements/BulkUpload/FormsManager/index.js.map +1 -1
  32. package/dist/elements/Button/index.css +2 -2
  33. package/dist/elements/ClipboardAction/clipboardUtilities.d.ts +8 -1
  34. package/dist/elements/ClipboardAction/clipboardUtilities.d.ts.map +1 -1
  35. package/dist/elements/ClipboardAction/clipboardUtilities.js +40 -8
  36. package/dist/elements/ClipboardAction/clipboardUtilities.js.map +1 -1
  37. package/dist/elements/ClipboardAction/clipboardUtilities.spec.js +120 -0
  38. package/dist/elements/ClipboardAction/clipboardUtilities.spec.js.map +1 -0
  39. package/dist/elements/ClipboardAction/index.d.ts.map +1 -1
  40. package/dist/elements/ClipboardAction/index.js +17 -1
  41. package/dist/elements/ClipboardAction/index.js.map +1 -1
  42. package/dist/elements/ClipboardAction/isClipboardDataValid.spec.js +144 -0
  43. package/dist/elements/ClipboardAction/isClipboardDataValid.spec.js.map +1 -0
  44. package/dist/elements/ClipboardAction/mergeFormStateFromClipboard.d.ts +10 -0
  45. package/dist/elements/ClipboardAction/mergeFormStateFromClipboard.d.ts.map +1 -1
  46. package/dist/elements/ClipboardAction/mergeFormStateFromClipboard.js +55 -0
  47. package/dist/elements/ClipboardAction/mergeFormStateFromClipboard.js.map +1 -1
  48. package/dist/elements/ClipboardAction/types.d.ts +3 -0
  49. package/dist/elements/ClipboardAction/types.d.ts.map +1 -1
  50. package/dist/elements/ClipboardAction/types.js.map +1 -1
  51. package/dist/elements/ClipboardAction/useCanPasteClipboard.d.ts +10 -0
  52. package/dist/elements/ClipboardAction/useCanPasteClipboard.d.ts.map +1 -0
  53. package/dist/elements/ClipboardAction/useCanPasteClipboard.js +21 -0
  54. package/dist/elements/ClipboardAction/useCanPasteClipboard.js.map +1 -0
  55. package/dist/elements/CodeEditor/index.css +0 -5
  56. package/dist/elements/ColumnSelection/Popup.d.ts.map +1 -1
  57. package/dist/elements/ColumnSelection/Popup.js +3 -3
  58. package/dist/elements/ColumnSelection/Popup.js.map +1 -1
  59. package/dist/elements/Combobox/index.css +76 -23
  60. package/dist/elements/Combobox/index.d.ts +7 -0
  61. package/dist/elements/Combobox/index.d.ts.map +1 -1
  62. package/dist/elements/Combobox/index.js +58 -20
  63. package/dist/elements/Combobox/index.js.map +1 -1
  64. package/dist/elements/CommandPalette/index.css +0 -7
  65. package/dist/elements/CopyToClipboard/index.d.ts +1 -0
  66. package/dist/elements/CopyToClipboard/index.d.ts.map +1 -1
  67. package/dist/elements/CopyToClipboard/index.js +10 -8
  68. package/dist/elements/CopyToClipboard/index.js.map +1 -1
  69. package/dist/elements/CreateDocumentButton/index.d.ts.map +1 -1
  70. package/dist/elements/CreateDocumentButton/index.js +4 -1
  71. package/dist/elements/CreateDocumentButton/index.js.map +1 -1
  72. package/dist/elements/DatePicker/DatePicker.d.ts.map +1 -1
  73. package/dist/elements/DatePicker/DatePicker.js +1 -0
  74. package/dist/elements/DatePicker/DatePicker.js.map +1 -1
  75. package/dist/elements/DatePicker/index.css +1 -1
  76. package/dist/elements/DeleteDocument/index.d.ts.map +1 -1
  77. package/dist/elements/DeleteDocument/index.js +24 -2
  78. package/dist/elements/DeleteDocument/index.js.map +1 -1
  79. package/dist/elements/DeleteMany/index.d.ts.map +1 -1
  80. package/dist/elements/DeleteMany/index.js +4 -1
  81. package/dist/elements/DeleteMany/index.js.map +1 -1
  82. package/dist/elements/Drawer/index.css +10 -4
  83. package/dist/elements/DuplicateDocument/SelectLocalesDrawer/index.js +3 -2
  84. package/dist/elements/DuplicateDocument/SelectLocalesDrawer/index.js.map +1 -1
  85. package/dist/elements/DuplicateDocument/index.d.ts.map +1 -1
  86. package/dist/elements/DuplicateDocument/index.js +6 -1
  87. package/dist/elements/DuplicateDocument/index.js.map +1 -1
  88. package/dist/elements/EditMany/DrawerContent.d.ts.map +1 -1
  89. package/dist/elements/EditMany/DrawerContent.js +6 -3
  90. package/dist/elements/EditMany/DrawerContent.js.map +1 -1
  91. package/dist/elements/FieldSelect/reduceFieldOptions.d.ts.map +1 -1
  92. package/dist/elements/FieldSelect/reduceFieldOptions.js +3 -1
  93. package/dist/elements/FieldSelect/reduceFieldOptions.js.map +1 -1
  94. package/dist/elements/FieldSelect/reduceFieldOptions.spec.js +143 -0
  95. package/dist/elements/FieldSelect/reduceFieldOptions.spec.js.map +1 -0
  96. package/dist/elements/FileDetails/StaticFileDetails/index.css +8 -9
  97. package/dist/elements/FileManager/FilePreview/index.css +3 -3
  98. package/dist/elements/FileManager/FileToolbar/index.d.ts.map +1 -1
  99. package/dist/elements/FileManager/FileToolbar/index.js +3 -0
  100. package/dist/elements/FileManager/FileToolbar/index.js.map +1 -1
  101. package/dist/elements/FileManager/index.css +36 -23
  102. package/dist/elements/FileManager/index.d.ts +1 -1
  103. package/dist/elements/FileManager/index.d.ts.map +1 -1
  104. package/dist/elements/FileManager/index.js +15 -4
  105. package/dist/elements/FileManager/index.js.map +1 -1
  106. package/dist/elements/Hierarchy/ColumnBrowser/ColumnItem/index.css +0 -1
  107. package/dist/elements/Hierarchy/ColumnBrowser/index.d.ts.map +1 -1
  108. package/dist/elements/Hierarchy/ColumnBrowser/index.js +4 -1
  109. package/dist/elements/Hierarchy/ColumnBrowser/index.js.map +1 -1
  110. package/dist/elements/Hierarchy/Field/SelectedHierarchies.d.ts.map +1 -1
  111. package/dist/elements/Hierarchy/Field/SelectedHierarchies.js +4 -1
  112. package/dist/elements/Hierarchy/Field/SelectedHierarchies.js.map +1 -1
  113. package/dist/elements/Hierarchy/Modal/fetchAncestorPath.d.ts +2 -1
  114. package/dist/elements/Hierarchy/Modal/fetchAncestorPath.d.ts.map +1 -1
  115. package/dist/elements/Hierarchy/Modal/fetchAncestorPath.js +2 -0
  116. package/dist/elements/Hierarchy/Modal/fetchAncestorPath.js.map +1 -1
  117. package/dist/elements/Hierarchy/Modal/index.d.ts.map +1 -1
  118. package/dist/elements/Hierarchy/Modal/index.js +3 -0
  119. package/dist/elements/Hierarchy/Modal/index.js.map +1 -1
  120. package/dist/elements/Hierarchy/MoveMany/index.d.ts.map +1 -1
  121. package/dist/elements/Hierarchy/MoveMany/index.js +4 -1
  122. package/dist/elements/Hierarchy/MoveMany/index.js.map +1 -1
  123. package/dist/elements/Hierarchy/Search/useHierarchySearch.d.ts.map +1 -1
  124. package/dist/elements/Hierarchy/Search/useHierarchySearch.js +3 -0
  125. package/dist/elements/Hierarchy/Search/useHierarchySearch.js.map +1 -1
  126. package/dist/elements/Hierarchy/Tree/HierarchySidebarTab.d.ts.map +1 -1
  127. package/dist/elements/Hierarchy/Tree/HierarchySidebarTab.js +109 -89
  128. package/dist/elements/Hierarchy/Tree/HierarchySidebarTab.js.map +1 -1
  129. package/dist/elements/Hierarchy/Tree/HierarchySidebarTab.server.d.ts.map +1 -1
  130. package/dist/elements/Hierarchy/Tree/HierarchySidebarTab.server.js +2 -0
  131. package/dist/elements/Hierarchy/Tree/HierarchySidebarTab.server.js.map +1 -1
  132. package/dist/elements/Hierarchy/Tree/TreeNode/index.css +0 -1
  133. package/dist/elements/Hierarchy/Tree/useChildren.d.ts.map +1 -1
  134. package/dist/elements/Hierarchy/Tree/useChildren.js +4 -1
  135. package/dist/elements/Hierarchy/Tree/useChildren.js.map +1 -1
  136. package/dist/elements/IDLabel/index.css +6 -0
  137. package/dist/elements/IDLabel/index.d.ts +1 -1
  138. package/dist/elements/IDLabel/index.d.ts.map +1 -1
  139. package/dist/elements/IDLabel/index.js +16 -21
  140. package/dist/elements/IDLabel/index.js.map +1 -1
  141. package/dist/elements/InputStepper/index.css +0 -1
  142. package/dist/elements/ListHeader/TitleActions/ListBulkUploadButton.d.ts +1 -7
  143. package/dist/elements/ListHeader/TitleActions/ListBulkUploadButton.d.ts.map +1 -1
  144. package/dist/elements/ListHeader/TitleActions/ListBulkUploadButton.js +26 -32
  145. package/dist/elements/ListHeader/TitleActions/ListBulkUploadButton.js.map +1 -1
  146. package/dist/elements/ListHeader/TitleActions/ListEmptyTrashButton.d.ts.map +1 -1
  147. package/dist/elements/ListHeader/TitleActions/ListEmptyTrashButton.js +6 -2
  148. package/dist/elements/ListHeader/TitleActions/ListEmptyTrashButton.js.map +1 -1
  149. package/dist/elements/Locked/index.css +0 -8
  150. package/dist/elements/Locked/index.d.ts.map +1 -1
  151. package/dist/elements/Locked/index.js +70 -64
  152. package/dist/elements/Locked/index.js.map +1 -1
  153. package/dist/elements/MiniCarousel/index.css +39 -37
  154. package/dist/elements/Nav/SidebarTabs/index.client.d.ts.map +1 -1
  155. package/dist/elements/Nav/SidebarTabs/index.client.js +12 -5
  156. package/dist/elements/Nav/SidebarTabs/index.client.js.map +1 -1
  157. package/dist/elements/Nav/SidebarTabs/index.css +0 -5
  158. package/dist/elements/Nav/SidebarTabs/renderTabServerFn.d.ts +1 -0
  159. package/dist/elements/Nav/SidebarTabs/renderTabServerFn.d.ts.map +1 -1
  160. package/dist/elements/Nav/SidebarTabs/renderTabServerFn.js +2 -1
  161. package/dist/elements/Nav/SidebarTabs/renderTabServerFn.js.map +1 -1
  162. package/dist/elements/NavGroup/index.css +0 -1
  163. package/dist/elements/PermanentlyDeleteButton/index.d.ts.map +1 -1
  164. package/dist/elements/PermanentlyDeleteButton/index.js +4 -1
  165. package/dist/elements/PermanentlyDeleteButton/index.js.map +1 -1
  166. package/dist/elements/Popup/PopupButtonList/index.css +1 -1
  167. package/dist/elements/Popup/index.js +1 -1
  168. package/dist/elements/Popup/index.js.map +1 -1
  169. package/dist/elements/PreviewButton/index.d.ts +1 -2
  170. package/dist/elements/PreviewButton/index.d.ts.map +1 -1
  171. package/dist/elements/PreviewButton/index.js +11 -5
  172. package/dist/elements/PreviewButton/index.js.map +1 -1
  173. package/dist/elements/PreviewSizes/index.css +8 -9
  174. package/dist/elements/PublishButton/ScheduleDrawer/index.js +1 -1
  175. package/dist/elements/PublishButton/ScheduleDrawer/index.js.map +1 -1
  176. package/dist/elements/PublishButton/index.d.ts.map +1 -1
  177. package/dist/elements/PublishButton/index.js +6 -2
  178. package/dist/elements/PublishButton/index.js.map +1 -1
  179. package/dist/elements/PublishMany/DrawerContent.d.ts.map +1 -1
  180. package/dist/elements/PublishMany/DrawerContent.js +4 -1
  181. package/dist/elements/PublishMany/DrawerContent.js.map +1 -1
  182. package/dist/elements/QueryPresets/QueryPresetBar/index.js +1 -3
  183. package/dist/elements/QueryPresets/QueryPresetBar/index.js.map +1 -1
  184. package/dist/elements/ReactSelect/ClearIndicator/index.css +0 -1
  185. package/dist/elements/ReactSelect/MultiValue/index.css +0 -1
  186. package/dist/elements/ReactSelect/MultiValueLabel/index.css +2 -2
  187. package/dist/elements/ReactSelect/index.css +0 -3
  188. package/dist/elements/RelationshipTable/Pagination.d.ts +0 -1
  189. package/dist/elements/RelationshipTable/Pagination.d.ts.map +1 -1
  190. package/dist/elements/RelationshipTable/Pagination.js +27 -77
  191. package/dist/elements/RelationshipTable/Pagination.js.map +1 -1
  192. package/dist/elements/RelationshipTable/index.css +0 -2
  193. package/dist/elements/RelationshipTable/index.d.ts +1 -0
  194. package/dist/elements/RelationshipTable/index.d.ts.map +1 -1
  195. package/dist/elements/RelationshipTable/index.js +41 -5
  196. package/dist/elements/RelationshipTable/index.js.map +1 -1
  197. package/dist/elements/RenderTitle/index.css +4 -0
  198. package/dist/elements/RenderTitle/index.d.ts.map +1 -1
  199. package/dist/elements/RenderTitle/index.js +18 -13
  200. package/dist/elements/RenderTitle/index.js.map +1 -1
  201. package/dist/elements/RestoreButton/index.d.ts.map +1 -1
  202. package/dist/elements/RestoreButton/index.js +4 -1
  203. package/dist/elements/RestoreButton/index.js.map +1 -1
  204. package/dist/elements/RestoreMany/index.d.ts.map +1 -1
  205. package/dist/elements/RestoreMany/index.js +3 -0
  206. package/dist/elements/RestoreMany/index.js.map +1 -1
  207. package/dist/elements/SelectRow/index.d.ts +4 -3
  208. package/dist/elements/SelectRow/index.d.ts.map +1 -1
  209. package/dist/elements/SelectRow/index.js +10 -7
  210. package/dist/elements/SelectRow/index.js.map +1 -1
  211. package/dist/elements/SidebarToggle/index.css +0 -17
  212. package/dist/elements/SortColumn/index.d.ts.map +1 -1
  213. package/dist/elements/SortColumn/index.js +42 -38
  214. package/dist/elements/SortColumn/index.js.map +1 -1
  215. package/dist/elements/SortHeader/index.d.ts.map +1 -1
  216. package/dist/elements/SortHeader/index.js +29 -26
  217. package/dist/elements/SortHeader/index.js.map +1 -1
  218. package/dist/elements/StepNav/index.css +64 -14
  219. package/dist/elements/StepNav/index.d.ts.map +1 -1
  220. package/dist/elements/StepNav/index.js +145 -69
  221. package/dist/elements/StepNav/index.js.map +1 -1
  222. package/dist/elements/Table/DefaultCell/index.d.ts.map +1 -1
  223. package/dist/elements/Table/DefaultCell/index.js +3 -11
  224. package/dist/elements/Table/DefaultCell/index.js.map +1 -1
  225. package/dist/elements/Table/OrderableRow.d.ts +3 -1
  226. package/dist/elements/Table/OrderableRow.d.ts.map +1 -1
  227. package/dist/elements/Table/OrderableRow.js +17 -1
  228. package/dist/elements/Table/OrderableRow.js.map +1 -1
  229. package/dist/elements/Table/OrderableTable.d.ts.map +1 -1
  230. package/dist/elements/Table/OrderableTable.js +22 -3
  231. package/dist/elements/Table/OrderableTable.js.map +1 -1
  232. package/dist/elements/Table/RelationshipProvider/index.d.ts.map +1 -1
  233. package/dist/elements/Table/RelationshipProvider/index.js +29 -23
  234. package/dist/elements/Table/RelationshipProvider/index.js.map +1 -1
  235. package/dist/elements/Table/index.css +1 -0
  236. package/dist/elements/TableSection/index.css +0 -1
  237. package/dist/elements/Thumbnail/index.d.ts +1 -1
  238. package/dist/elements/Thumbnail/index.d.ts.map +1 -1
  239. package/dist/elements/Thumbnail/index.js.map +1 -1
  240. package/dist/elements/TimezonePicker/index.d.ts.map +1 -1
  241. package/dist/elements/TimezonePicker/index.js +5 -1
  242. package/dist/elements/TimezonePicker/index.js.map +1 -1
  243. package/dist/elements/Tooltip/index.css +15 -34
  244. package/dist/elements/Tooltip/index.d.ts +11 -3
  245. package/dist/elements/Tooltip/index.d.ts.map +1 -1
  246. package/dist/elements/Tooltip/index.js +151 -85
  247. package/dist/elements/Tooltip/index.js.map +1 -1
  248. package/dist/elements/UnpublishButton/index.d.ts.map +1 -1
  249. package/dist/elements/UnpublishButton/index.js +4 -1
  250. package/dist/elements/UnpublishButton/index.js.map +1 -1
  251. package/dist/elements/UnpublishMany/DrawerContent.d.ts.map +1 -1
  252. package/dist/elements/UnpublishMany/DrawerContent.js +4 -1
  253. package/dist/elements/UnpublishMany/DrawerContent.js.map +1 -1
  254. package/dist/elements/Upload/index.css +0 -5
  255. package/dist/elements/WhereBuilder/Condition/Relationship/index.d.ts.map +1 -1
  256. package/dist/elements/WhereBuilder/Condition/Relationship/index.js +3 -0
  257. package/dist/elements/WhereBuilder/Condition/Relationship/index.js.map +1 -1
  258. package/dist/exports/client/index.d.ts +8 -1
  259. package/dist/exports/client/index.d.ts.map +1 -1
  260. package/dist/exports/client/index.js +1 -1
  261. package/dist/exports/client/index.js.map +3 -3
  262. package/dist/fields/Array/ArrayRow.d.ts +1 -0
  263. package/dist/fields/Array/ArrayRow.d.ts.map +1 -1
  264. package/dist/fields/Array/ArrayRow.js +99 -160
  265. package/dist/fields/Array/ArrayRow.js.map +1 -1
  266. package/dist/fields/Array/index.d.ts.map +1 -1
  267. package/dist/fields/Array/index.js +38 -10
  268. package/dist/fields/Array/index.js.map +1 -1
  269. package/dist/fields/Blocks/BlockRow.d.ts +1 -0
  270. package/dist/fields/Blocks/BlockRow.d.ts.map +1 -1
  271. package/dist/fields/Blocks/BlockRow.js +136 -195
  272. package/dist/fields/Blocks/BlockRow.js.map +1 -1
  273. package/dist/fields/Blocks/RowActions.d.ts +3 -0
  274. package/dist/fields/Blocks/RowActions.d.ts.map +1 -1
  275. package/dist/fields/Blocks/RowActions.js +26 -20
  276. package/dist/fields/Blocks/RowActions.js.map +1 -1
  277. package/dist/fields/Blocks/index.d.ts.map +1 -1
  278. package/dist/fields/Blocks/index.js +38 -10
  279. package/dist/fields/Blocks/index.js.map +1 -1
  280. package/dist/fields/Checkbox/Input.d.ts +2 -0
  281. package/dist/fields/Checkbox/Input.d.ts.map +1 -1
  282. package/dist/fields/Checkbox/Input.js +32 -26
  283. package/dist/fields/Checkbox/Input.js.map +1 -1
  284. package/dist/fields/Checkbox/index.css +37 -73
  285. package/dist/fields/FieldError/index.css +0 -9
  286. package/dist/fields/FieldError/index.d.ts.map +1 -1
  287. package/dist/fields/FieldError/index.js +19 -9
  288. package/dist/fields/FieldError/index.js.map +1 -1
  289. package/dist/fields/Join/index.css +9 -0
  290. package/dist/fields/Join/index.d.ts.map +1 -1
  291. package/dist/fields/Join/index.js +13 -9
  292. package/dist/fields/Join/index.js.map +1 -1
  293. package/dist/fields/RadioGroup/index.css +0 -7
  294. package/dist/fields/Relationship/Input.d.ts.map +1 -1
  295. package/dist/fields/Relationship/Input.js +37 -15
  296. package/dist/fields/Relationship/Input.js.map +1 -1
  297. package/dist/fields/Relationship/select-components/MultiValueLabel/index.css +1 -1
  298. package/dist/fields/Slug/index.css +0 -1
  299. package/dist/fields/Slug/index.d.ts.map +1 -1
  300. package/dist/fields/Slug/index.js +75 -111
  301. package/dist/fields/Slug/index.js.map +1 -1
  302. package/dist/fields/Upload/Input.d.ts.map +1 -1
  303. package/dist/fields/Upload/Input.js +4 -1
  304. package/dist/fields/Upload/Input.js.map +1 -1
  305. package/dist/fields/Upload/index.css +19 -4
  306. package/dist/forms/Form/fieldReducer.d.ts.map +1 -1
  307. package/dist/forms/Form/fieldReducer.js +3 -1
  308. package/dist/forms/Form/fieldReducer.js.map +1 -1
  309. package/dist/forms/Form/index.d.ts.map +1 -1
  310. package/dist/forms/Form/index.js +12 -15
  311. package/dist/forms/Form/index.js.map +1 -1
  312. package/dist/forms/Form/types.d.ts +1 -1
  313. package/dist/forms/Form/types.d.ts.map +1 -1
  314. package/dist/forms/Form/types.js.map +1 -1
  315. package/dist/forms/RenderFields/index.css +16 -2
  316. package/dist/forms/WatchChildErrors/index.d.ts.map +1 -1
  317. package/dist/forms/WatchChildErrors/index.js +2 -2
  318. package/dist/forms/WatchChildErrors/index.js.map +1 -1
  319. package/dist/forms/fieldSchemasToFormState/addFieldStatePromise.js +1 -1
  320. package/dist/forms/fieldSchemasToFormState/addFieldStatePromise.js.map +1 -1
  321. package/dist/forms/fieldSchemasToFormState/renderField.d.ts.map +1 -1
  322. package/dist/forms/fieldSchemasToFormState/renderField.js +1 -3
  323. package/dist/forms/fieldSchemasToFormState/renderField.js.map +1 -1
  324. package/dist/hooks/usePayloadAPI.d.ts.map +1 -1
  325. package/dist/hooks/usePayloadAPI.js +44 -40
  326. package/dist/hooks/usePayloadAPI.js.map +1 -1
  327. package/dist/icons/Edit/index.d.ts +0 -1
  328. package/dist/icons/Edit/index.d.ts.map +1 -1
  329. package/dist/icons/Edit/index.js +4 -4
  330. package/dist/icons/Edit/index.js.map +1 -1
  331. package/dist/layouts/Root/index.d.ts +1 -1
  332. package/dist/layouts/Root/index.d.ts.map +1 -1
  333. package/dist/layouts/Root/index.js +8 -2
  334. package/dist/layouts/Root/index.js.map +1 -1
  335. package/dist/providers/Actions/index.d.ts +1 -0
  336. package/dist/providers/Actions/index.d.ts.map +1 -1
  337. package/dist/providers/Actions/index.js +43 -11
  338. package/dist/providers/Actions/index.js.map +1 -1
  339. package/dist/providers/Auth/AuthSessionDebug/index.css +48 -0
  340. package/dist/providers/Auth/AuthSessionDebug/index.d.ts +13 -0
  341. package/dist/providers/Auth/AuthSessionDebug/index.d.ts.map +1 -0
  342. package/dist/providers/Auth/AuthSessionDebug/index.js +93 -0
  343. package/dist/providers/Auth/AuthSessionDebug/index.js.map +1 -0
  344. package/dist/providers/Auth/AuthSessionDebug/utilities.d.ts +21 -0
  345. package/dist/providers/Auth/AuthSessionDebug/utilities.d.ts.map +1 -0
  346. package/dist/providers/Auth/AuthSessionDebug/utilities.js +53 -0
  347. package/dist/providers/Auth/AuthSessionDebug/utilities.js.map +1 -0
  348. package/dist/providers/Auth/authSessionRequests.d.ts +27 -0
  349. package/dist/providers/Auth/authSessionRequests.d.ts.map +1 -0
  350. package/dist/providers/Auth/authSessionRequests.js +119 -0
  351. package/dist/providers/Auth/authSessionRequests.js.map +1 -0
  352. package/dist/providers/Auth/authSessionRequests.spec.js +121 -0
  353. package/dist/providers/Auth/authSessionRequests.spec.js.map +1 -0
  354. package/dist/providers/Auth/index.d.ts +2 -56
  355. package/dist/providers/Auth/index.d.ts.map +1 -1
  356. package/dist/providers/Auth/index.js +283 -135
  357. package/dist/providers/Auth/index.js.map +1 -1
  358. package/dist/providers/Auth/sessionActivity.d.ts +23 -0
  359. package/dist/providers/Auth/sessionActivity.d.ts.map +1 -0
  360. package/dist/providers/Auth/sessionActivity.js +49 -0
  361. package/dist/providers/Auth/sessionActivity.js.map +1 -0
  362. package/dist/providers/Auth/sessionActivity.spec.js +44 -0
  363. package/dist/providers/Auth/sessionActivity.spec.js.map +1 -0
  364. package/dist/providers/Auth/sessionTiming.d.ts +11 -0
  365. package/dist/providers/Auth/sessionTiming.d.ts.map +1 -0
  366. package/dist/providers/Auth/sessionTiming.js +18 -0
  367. package/dist/providers/Auth/sessionTiming.js.map +1 -0
  368. package/dist/providers/Auth/tabSessionSync/index.d.ts +17 -0
  369. package/dist/providers/Auth/tabSessionSync/index.d.ts.map +1 -0
  370. package/dist/providers/Auth/tabSessionSync/index.js +263 -0
  371. package/dist/providers/Auth/tabSessionSync/index.js.map +1 -0
  372. package/dist/providers/Auth/tabSessionSync/index.spec.js +463 -0
  373. package/dist/providers/Auth/tabSessionSync/index.spec.js.map +1 -0
  374. package/dist/providers/Auth/tabSessionSync/types.d.ts +107 -0
  375. package/dist/providers/Auth/tabSessionSync/types.d.ts.map +1 -0
  376. package/dist/providers/Auth/tabSessionSync/types.js +6 -0
  377. package/dist/providers/Auth/tabSessionSync/types.js.map +1 -0
  378. package/dist/providers/Auth/tabSessionSync/useTabSessionSync.d.ts +11 -0
  379. package/dist/providers/Auth/tabSessionSync/useTabSessionSync.d.ts.map +1 -0
  380. package/dist/providers/Auth/tabSessionSync/useTabSessionSync.js +90 -0
  381. package/dist/providers/Auth/tabSessionSync/useTabSessionSync.js.map +1 -0
  382. package/dist/providers/Auth/tabSessionSync/utilities.d.ts +26 -0
  383. package/dist/providers/Auth/tabSessionSync/utilities.d.ts.map +1 -0
  384. package/dist/providers/Auth/tabSessionSync/utilities.js +159 -0
  385. package/dist/providers/Auth/tabSessionSync/utilities.js.map +1 -0
  386. package/dist/providers/Auth/types.d.ts +65 -0
  387. package/dist/providers/Auth/types.d.ts.map +1 -0
  388. package/dist/providers/Auth/types.js +2 -0
  389. package/dist/providers/Auth/types.js.map +1 -0
  390. package/dist/providers/Auth/useAuthSessionTimers.d.ts +26 -0
  391. package/dist/providers/Auth/useAuthSessionTimers.d.ts.map +1 -0
  392. package/dist/providers/Auth/useAuthSessionTimers.js +203 -0
  393. package/dist/providers/Auth/useAuthSessionTimers.js.map +1 -0
  394. package/dist/providers/Auth/useAuthSessionTimers.spec.js +311 -0
  395. package/dist/providers/Auth/useAuthSessionTimers.spec.js.map +1 -0
  396. package/dist/providers/Branch/index.d.ts +62 -0
  397. package/dist/providers/Branch/index.d.ts.map +1 -0
  398. package/dist/providers/Branch/index.js +192 -0
  399. package/dist/providers/Branch/index.js.map +1 -0
  400. package/dist/providers/Branch/index.server.d.ts +14 -0
  401. package/dist/providers/Branch/index.server.d.ts.map +1 -0
  402. package/dist/providers/Branch/index.server.js +80 -0
  403. package/dist/providers/Branch/index.server.js.map +1 -0
  404. package/dist/providers/DocumentInfo/index.d.ts.map +1 -1
  405. package/dist/providers/DocumentInfo/index.js +5 -1
  406. package/dist/providers/DocumentInfo/index.js.map +1 -1
  407. package/dist/providers/DocumentInfo/useGetDocPermissions.d.ts +2 -1
  408. package/dist/providers/DocumentInfo/useGetDocPermissions.d.ts.map +1 -1
  409. package/dist/providers/DocumentInfo/useGetDocPermissions.js +3 -1
  410. package/dist/providers/DocumentInfo/useGetDocPermissions.js.map +1 -1
  411. package/dist/providers/DocumentTitle/index.d.ts +1 -0
  412. package/dist/providers/DocumentTitle/index.d.ts.map +1 -1
  413. package/dist/providers/DocumentTitle/index.js +2 -0
  414. package/dist/providers/DocumentTitle/index.js.map +1 -1
  415. package/dist/providers/Embed/index.d.ts +24 -0
  416. package/dist/providers/Embed/index.d.ts.map +1 -0
  417. package/dist/providers/Embed/index.js +105 -0
  418. package/dist/providers/Embed/index.js.map +1 -0
  419. package/dist/providers/FormErrorHandler/index.d.ts +24 -0
  420. package/dist/providers/FormErrorHandler/index.d.ts.map +1 -0
  421. package/dist/providers/FormErrorHandler/index.js +6 -0
  422. package/dist/providers/FormErrorHandler/index.js.map +1 -0
  423. package/dist/providers/Hierarchy/index.d.ts.map +1 -1
  424. package/dist/providers/Hierarchy/index.js +4 -1
  425. package/dist/providers/Hierarchy/index.js.map +1 -1
  426. package/dist/providers/Locale/index.d.ts.map +1 -1
  427. package/dist/providers/Locale/index.js +41 -36
  428. package/dist/providers/Locale/index.js.map +1 -1
  429. package/dist/providers/Root/index.d.ts +1 -0
  430. package/dist/providers/Root/index.d.ts.map +1 -1
  431. package/dist/providers/Root/index.js +37 -31
  432. package/dist/providers/Root/index.js.map +1 -1
  433. package/dist/providers/RouteTransition/ProgressBar/index.js +4 -1
  434. package/dist/providers/RouteTransition/ProgressBar/index.js.map +1 -1
  435. package/dist/providers/RouteTransition/ProgressBar/index.spec.js +44 -0
  436. package/dist/providers/RouteTransition/ProgressBar/index.spec.js.map +1 -0
  437. package/dist/providers/RouteTransition/index.d.ts +2 -0
  438. package/dist/providers/RouteTransition/index.d.ts.map +1 -1
  439. package/dist/providers/RouteTransition/index.js +42 -14
  440. package/dist/providers/RouteTransition/index.js.map +1 -1
  441. package/dist/providers/SidebarTabs/index.d.ts +3 -2
  442. package/dist/providers/SidebarTabs/index.d.ts.map +1 -1
  443. package/dist/providers/SidebarTabs/index.js.map +1 -1
  444. package/dist/providers/TableColumns/buildColumnState/index.d.ts.map +1 -1
  445. package/dist/providers/TableColumns/buildColumnState/index.js +1 -1
  446. package/dist/providers/TableColumns/buildColumnState/index.js.map +1 -1
  447. package/dist/providers/TableColumns/buildColumnState/index.spec.js +40 -0
  448. package/dist/providers/TableColumns/buildColumnState/index.spec.js.map +1 -0
  449. package/dist/providers/Theme/index.d.ts +3 -0
  450. package/dist/providers/Theme/index.d.ts.map +1 -1
  451. package/dist/providers/Theme/index.js +107 -95
  452. package/dist/providers/Theme/index.js.map +1 -1
  453. package/dist/providers/UploadHandlers/index.d.ts +2 -7
  454. package/dist/providers/UploadHandlers/index.d.ts.map +1 -1
  455. package/dist/providers/UploadHandlers/index.js +102 -42
  456. package/dist/providers/UploadHandlers/index.js.map +1 -1
  457. package/dist/styles.css +13 -10
  458. package/dist/templates/Default/index.d.ts +1 -0
  459. package/dist/templates/Default/index.d.ts.map +1 -1
  460. package/dist/templates/Default/index.js +45 -39
  461. package/dist/templates/Default/index.js.map +1 -1
  462. package/dist/utilities/combineFieldLabel.d.ts.map +1 -1
  463. package/dist/utilities/combineFieldLabel.js +5 -1
  464. package/dist/utilities/combineFieldLabel.js.map +1 -1
  465. package/dist/utilities/generateFieldID.d.ts +1 -1
  466. package/dist/utilities/generateFieldID.d.ts.map +1 -1
  467. package/dist/utilities/generateFieldID.js +2 -2
  468. package/dist/utilities/generateFieldID.js.map +1 -1
  469. package/dist/utilities/getRequestBranch.d.ts +18 -0
  470. package/dist/utilities/getRequestBranch.d.ts.map +1 -0
  471. package/dist/utilities/getRequestBranch.js +32 -0
  472. package/dist/utilities/getRequestBranch.js.map +1 -0
  473. package/dist/utilities/getRequestEmbed.d.ts +14 -0
  474. package/dist/utilities/getRequestEmbed.d.ts.map +1 -0
  475. package/dist/utilities/getRequestEmbed.js +10 -0
  476. package/dist/utilities/getRequestEmbed.js.map +1 -0
  477. package/dist/utilities/handleServerFunctions.d.ts +32 -8
  478. package/dist/utilities/handleServerFunctions.d.ts.map +1 -1
  479. package/dist/utilities/handleServerFunctions.js +17 -37
  480. package/dist/utilities/handleServerFunctions.js.map +1 -1
  481. package/dist/utilities/initReq.d.ts.map +1 -1
  482. package/dist/utilities/initReq.js +8 -0
  483. package/dist/utilities/initReq.js.map +1 -1
  484. package/dist/utilities/matchesSearchQuery.d.ts +12 -0
  485. package/dist/utilities/matchesSearchQuery.d.ts.map +1 -0
  486. package/dist/utilities/matchesSearchQuery.js +23 -0
  487. package/dist/utilities/matchesSearchQuery.js.map +1 -0
  488. package/dist/{elements/ColumnSelection/matchesColumnSearch.spec.js → utilities/matchesSearchQuery.spec.js} +29 -29
  489. package/dist/utilities/matchesSearchQuery.spec.js.map +1 -0
  490. package/dist/utilities/renderTable.d.ts.map +1 -1
  491. package/dist/utilities/renderTable.js +18 -2
  492. package/dist/utilities/renderTable.js.map +1 -1
  493. package/dist/utilities/serverFunctionRegistry.d.ts +12 -7
  494. package/dist/utilities/serverFunctionRegistry.d.ts.map +1 -1
  495. package/dist/utilities/serverFunctionRegistry.js +25 -7
  496. package/dist/utilities/serverFunctionRegistry.js.map +1 -1
  497. package/dist/utilities/slugify.d.ts.map +1 -1
  498. package/dist/utilities/slugify.js +49 -6
  499. package/dist/utilities/slugify.js.map +1 -1
  500. package/dist/views/Dashboard/Default/ModularDashboard/DashboardStepNav.d.ts.map +1 -1
  501. package/dist/views/Dashboard/Default/ModularDashboard/DashboardStepNav.js +3 -2
  502. package/dist/views/Dashboard/Default/ModularDashboard/DashboardStepNav.js.map +1 -1
  503. package/dist/views/Dashboard/Default/ModularDashboard/WidgetEditControl.d.ts.map +1 -1
  504. package/dist/views/Dashboard/Default/ModularDashboard/WidgetEditControl.js +7 -7
  505. package/dist/views/Dashboard/Default/ModularDashboard/WidgetEditControl.js.map +1 -1
  506. package/dist/views/Dashboard/Default/ModularDashboard/index.client.d.ts.map +1 -1
  507. package/dist/views/Dashboard/Default/ModularDashboard/index.client.js +104 -66
  508. package/dist/views/Dashboard/Default/ModularDashboard/index.client.js.map +1 -1
  509. package/dist/views/Dashboard/Default/ModularDashboard/index.css +29 -144
  510. package/dist/views/Dashboard/Default/ModularDashboard/renderWidget/RenderWidget.js +4 -4
  511. package/dist/views/Dashboard/Default/ModularDashboard/renderWidget/RenderWidget.js.map +1 -1
  512. package/dist/views/Dashboard/Default/ModularDashboard/renderWidget/renderWidgetServerFn.js +10 -10
  513. package/dist/views/Dashboard/Default/ModularDashboard/renderWidget/renderWidgetServerFn.js.map +1 -1
  514. package/dist/views/Edit/index.css +61 -53
  515. package/dist/views/HierarchyList/HierarchyTable/index.d.ts.map +1 -1
  516. package/dist/views/HierarchyList/HierarchyTable/index.js +6 -2
  517. package/dist/views/HierarchyList/HierarchyTable/index.js.map +1 -1
  518. package/dist/views/HierarchyList/index.css +1 -1
  519. package/dist/views/List/ListHeader/index.d.ts +1 -10
  520. package/dist/views/List/ListHeader/index.d.ts.map +1 -1
  521. package/dist/views/List/ListHeader/index.js +1 -3
  522. package/dist/views/List/ListHeader/index.js.map +1 -1
  523. package/dist/views/List/index.client.d.ts.map +1 -1
  524. package/dist/views/List/index.client.js +0 -14
  525. package/dist/views/List/index.client.js.map +1 -1
  526. package/dist/views/List/index.css +6 -1
  527. package/dist/views/List/index.d.ts.map +1 -1
  528. package/dist/views/List/index.js +4 -0
  529. package/dist/views/List/index.js.map +1 -1
  530. package/dist/views/Logout/index.d.ts.map +1 -1
  531. package/dist/views/Logout/index.js +11 -0
  532. package/dist/views/Logout/index.js.map +1 -1
  533. package/dist/views/Root/getCustomCollectionViewByRoute.d.ts.map +1 -1
  534. package/dist/views/Root/getCustomCollectionViewByRoute.js.map +1 -1
  535. package/dist/views/Root/getCustomGlobalViewByRoute.d.ts.map +1 -1
  536. package/dist/views/Root/getCustomGlobalViewByRoute.js.map +1 -1
  537. package/dist/views/Root/getCustomViewByKey.d.ts.map +1 -1
  538. package/dist/views/Root/getCustomViewByKey.js.map +1 -1
  539. package/dist/views/Root/index.d.ts +12 -1
  540. package/dist/views/Root/index.d.ts.map +1 -1
  541. package/dist/views/Root/index.js +11 -3
  542. package/dist/views/Root/index.js.map +1 -1
  543. package/dist/views/Version/Restore/index.d.ts.map +1 -1
  544. package/dist/views/Version/Restore/index.js +6 -3
  545. package/dist/views/Version/Restore/index.js.map +1 -1
  546. package/package.json +5 -10
  547. package/dist/elements/ColumnSelection/matchesColumnSearch.d.ts +0 -10
  548. package/dist/elements/ColumnSelection/matchesColumnSearch.d.ts.map +0 -1
  549. package/dist/elements/ColumnSelection/matchesColumnSearch.js +0 -21
  550. package/dist/elements/ColumnSelection/matchesColumnSearch.js.map +0 -1
  551. package/dist/elements/ColumnSelection/matchesColumnSearch.spec.js.map +0 -1
  552. package/dist/elements/RelationshipTable/Pagination.css +0 -39
  553. package/dist/scss/app.scss +0 -183
  554. package/dist/scss/colors.scss +0 -191
  555. package/dist/scss/custom.css +0 -1
  556. package/dist/scss/queries.scss +0 -27
  557. package/dist/scss/styles.scss +0 -9
  558. package/dist/scss/svg.scss +0 -10
  559. package/dist/scss/toastify.scss +0 -61
  560. package/dist/scss/vars.scss +0 -192
  561. package/dist/scss/z-index.scss +0 -9
@@ -6,14 +6,18 @@ import { DragOverlay } from '@dnd-kit/core';
6
6
  import { formatAdminURL } from 'payload/shared';
7
7
  import React, { useEffect, useState } from 'react';
8
8
  import { toast } from 'sonner';
9
+ import { useBranchParam } from '../../providers/Branch/index.js';
9
10
  import { useConfig } from '../../providers/Config/index.js';
10
11
  import { useListQuery } from '../../providers/ListQuery/index.js';
11
12
  import { useLocale } from '../../providers/Locale/index.js';
13
+ import { useTranslation } from '../../providers/Translation/index.js';
12
14
  import { DraggableSortableItem } from '../DraggableSortable/DraggableSortableItem/index.js';
13
15
  import { DraggableSortable } from '../DraggableSortable/index.js';
14
16
  import { OrderableRow } from './OrderableRow.js';
15
17
  import { OrderableRowDragPreview } from './OrderableRowDragPreview.js';
16
18
  const baseClass = 'table';
19
+ // A stable id so repeated attempts (e.g. holding Space) update the same toast instead of stacking new ones
20
+ const mustSortByOrderToastId = 'orderable-table-must-sort-by-order';
17
21
  export const OrderableTable = ({
18
22
  appearance = 'default',
19
23
  BeforeTable,
@@ -32,8 +36,13 @@ export const OrderableTable = ({
32
36
  const {
33
37
  code: localeCode
34
38
  } = useLocale();
39
+ const branch = useBranchParam();
40
+ const {
41
+ t
42
+ } = useTranslation();
35
43
  // Use the data from ListQueryProvider if available, otherwise use the props
36
44
  const serverData = listQueryData?.docs || initialData;
45
+ const isOrderable = query.sort === orderableFieldName || query.sort === `-${orderableFieldName}`;
37
46
  // Local state to track the current order of rows
38
47
  const [localData, setLocalData] = useState(serverData);
39
48
  // id -> index for each column
@@ -54,8 +63,10 @@ export const OrderableTable = ({
54
63
  moveFromIndex,
55
64
  moveToIndex
56
65
  }) => {
57
- if (query.sort !== orderableFieldName && query.sort !== `-${orderableFieldName}`) {
58
- toast.warning('To reorder the rows you must first sort them by the "Order" column');
66
+ if (!isOrderable) {
67
+ toast.warning(t('general:sortByOrderToReorder'), {
68
+ id: mustSortByOrderToastId
69
+ });
59
70
  setDragActiveRowId(undefined);
60
71
  return;
61
72
  }
@@ -95,7 +106,7 @@ export const OrderableTable = ({
95
106
  };
96
107
  const response = await fetch(formatAdminURL({
97
108
  apiRoute: config.routes.api,
98
- path: `/reorder?locale=${localeCode}`
109
+ path: `/reorder?locale=${localeCode}${branch ? `&branch=${encodeURIComponent(branch)}` : ''}`
99
110
  }), {
100
111
  body: JSON.stringify(jsonBody),
101
112
  credentials: 'include',
@@ -127,6 +138,11 @@ export const OrderableTable = ({
127
138
  }) => {
128
139
  setDragActiveRowId(id);
129
140
  };
141
+ const handleDisabledDragAttempt = () => {
142
+ toast.warning(t('general:sortByOrderToReorder'), {
143
+ id: mustSortByOrderToastId
144
+ });
145
+ };
130
146
  const rowIds = localData.map(row => row.id ?? row._id);
131
147
  return /*#__PURE__*/_jsxs("div", {
132
148
  className: [baseClass, appearance && `${baseClass}--appearance-${appearance}`].filter(Boolean).join(' '),
@@ -146,6 +162,7 @@ export const OrderableTable = ({
146
162
  })
147
163
  }), /*#__PURE__*/_jsx("tbody", {
148
164
  children: localData.map((row_0, rowIndex) => /*#__PURE__*/_jsx(DraggableSortableItem, {
165
+ disabled: !isOrderable,
149
166
  id: rowIds[rowIndex],
150
167
  children: ({
151
168
  attributes,
@@ -160,6 +177,8 @@ export const OrderableTable = ({
160
177
  columns: activeColumns,
161
178
  dragAttributes: attributes,
162
179
  dragListeners: listeners,
180
+ isOrderable: isOrderable,
181
+ onDisabledDragAttempt: handleDisabledDragAttempt,
163
182
  ref: setNodeRef,
164
183
  rowId: row_0.id ?? row_0._id,
165
184
  style: {
@@ -1 +1 @@
1
- {"version":3,"file":"OrderableTable.js","names":["DragOverlay","formatAdminURL","React","useEffect","useState","toast","useConfig","useListQuery","useLocale","DraggableSortableItem","DraggableSortable","OrderableRow","OrderableRowDragPreview","baseClass","OrderableTable","appearance","BeforeTable","collection","columns","data","initialData","config","listQueryData","orderableFieldName","query","code","localeCode","serverData","docs","localData","setLocalData","cellMap","setCellMap","dragActiveRowId","setDragActiveRowId","Object","fromEntries","map","item","index","String","id","_id","activeColumns","filter","col","active","includes","accessor","length","_jsx","handleDragEnd","moveFromIndex","moveToIndex","sort","warning","undefined","movedId","newBeforeRow","newAfterRow","previousData","currentData","newData","splice","target","key","newKeyWillBe","jsonBody","collectionSlug","slug","docsToMove","response","fetch","apiRoute","routes","api","path","body","JSON","stringify","credentials","headers","method","status","Error","ok","json","err","error","message","handleDragStart","rowIds","row","_jsxs","className","Boolean","join","ids","onDragEnd","onDragStart","cellPadding","cellSpacing","i","Heading","rowIndex","children","attributes","isDragging","listeners","setNodeRef","transform","transition","dragAttributes","dragListeners","ref","rowId","style","opacity"],"sources":["../../../src/elements/Table/OrderableTable.tsx"],"sourcesContent":["'use client'\n\nimport type { ClientCollectionConfig, Column, OrderableEndpointBody } from 'payload'\n\nimport './index.css'\n\nimport { DragOverlay } from '@dnd-kit/core'\nimport { formatAdminURL } from 'payload/shared'\nimport React, { useEffect, useState } from 'react'\nimport { toast } from 'sonner'\n\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useListQuery } from '../../providers/ListQuery/index.js'\nimport { useLocale } from '../../providers/Locale/index.js'\nimport { DraggableSortableItem } from '../DraggableSortable/DraggableSortableItem/index.js'\nimport { DraggableSortable } from '../DraggableSortable/index.js'\nimport { OrderableRow } from './OrderableRow.js'\nimport { OrderableRowDragPreview } from './OrderableRowDragPreview.js'\n\nconst baseClass = 'table'\n\nexport type Props = {\n readonly appearance?: 'condensed' | 'default'\n readonly BeforeTable?: React.ReactNode\n readonly collection: ClientCollectionConfig\n readonly columns?: Column[]\n readonly data: Record<string, unknown>[]\n readonly heading?: React.ReactNode\n}\n\nexport const OrderableTable: React.FC<Props> = ({\n appearance = 'default',\n BeforeTable,\n collection,\n columns,\n data: initialData,\n}) => {\n const { config } = useConfig()\n const { data: listQueryData, orderableFieldName, query } = useListQuery()\n const { code: localeCode } = useLocale()\n // Use the data from ListQueryProvider if available, otherwise use the props\n const serverData = listQueryData?.docs || initialData\n\n // Local state to track the current order of rows\n const [localData, setLocalData] = useState(serverData)\n\n // id -> index for each column\n const [cellMap, setCellMap] = useState<Record<string, number>>({})\n\n const [dragActiveRowId, setDragActiveRowId] = useState<number | string | undefined>()\n\n // Update local data when server data changes\n useEffect(() => {\n setLocalData(serverData)\n setCellMap(\n Object.fromEntries(serverData.map((item, index) => [String(item.id ?? item._id), index])),\n )\n }, [serverData])\n\n const activeColumns = columns?.filter((col) => col?.active)\n\n if (\n !activeColumns ||\n activeColumns.filter((col) => !['_dragHandle', '_select'].includes(col.accessor)).length === 0\n ) {\n return <div>No columns selected</div>\n }\n\n const handleDragEnd = async ({ moveFromIndex, moveToIndex }) => {\n if (query.sort !== orderableFieldName && query.sort !== `-${orderableFieldName}`) {\n toast.warning('To reorder the rows you must first sort them by the \"Order\" column')\n setDragActiveRowId(undefined)\n return\n }\n\n if (moveFromIndex === moveToIndex) {\n setDragActiveRowId(undefined)\n return\n }\n\n const movedId = localData[moveFromIndex].id ?? localData[moveFromIndex]._id\n const newBeforeRow =\n moveToIndex > moveFromIndex ? localData[moveToIndex] : localData[moveToIndex - 1]\n const newAfterRow =\n moveToIndex > moveFromIndex ? localData[moveToIndex + 1] : localData[moveToIndex]\n\n // Store the original data for rollback\n const previousData = [...localData]\n\n // Optimisitc update of local state to reorder the rows\n setLocalData((currentData) => {\n const newData = [...currentData]\n // Update the rendered cell for the moved row to show \"pending\"\n newData[moveFromIndex][orderableFieldName] = `pending`\n // Move the item in the array\n newData.splice(moveToIndex, 0, newData.splice(moveFromIndex, 1)[0])\n return newData\n })\n\n try {\n const target: OrderableEndpointBody['target'] = newBeforeRow\n ? {\n id: newBeforeRow.id ?? newBeforeRow._id,\n key: newBeforeRow[orderableFieldName],\n }\n : {\n id: newAfterRow.id ?? newAfterRow._id,\n key: newAfterRow[orderableFieldName],\n }\n\n const newKeyWillBe =\n (newBeforeRow && query.sort === orderableFieldName) ||\n (!newBeforeRow && query.sort === `-${orderableFieldName}`)\n ? 'greater'\n : 'less'\n\n const jsonBody: OrderableEndpointBody = {\n collectionSlug: collection.slug,\n docsToMove: [movedId],\n newKeyWillBe,\n orderableFieldName,\n target,\n }\n\n const response = await fetch(\n formatAdminURL({\n apiRoute: config.routes.api,\n path: `/reorder?locale=${localeCode}`,\n }),\n {\n body: JSON.stringify(jsonBody),\n credentials: 'include',\n headers: {\n 'Content-Type': 'application/json',\n },\n method: 'POST',\n },\n )\n\n if (response.status === 403) {\n throw new Error('You do not have permission to reorder these rows')\n }\n\n if (!response.ok) {\n throw new Error(\n 'Failed to reorder. This can happen if you reorder several rows too quickly. Please try again.',\n )\n }\n\n if (response.status === 200 && (await response.json())['message'] === 'initial migration') {\n throw new Error(\n 'You have enabled \"orderable\" on a collection with existing documents' +\n 'and this is the first time you have sorted documents. We have run an automatic migration ' +\n 'to add an initial order to the documents. Please refresh the page and try again.',\n )\n }\n } catch (err) {\n const error = err instanceof Error ? err.message : String(err)\n // Rollback to previous state if the request fails\n setLocalData(previousData)\n toast.error(error)\n } finally {\n setDragActiveRowId(undefined)\n }\n }\n\n const handleDragStart = ({ id }) => {\n setDragActiveRowId(id)\n }\n\n const rowIds = localData.map((row) => row.id ?? row._id)\n\n return (\n <div\n className={[baseClass, appearance && `${baseClass}--appearance-${appearance}`]\n .filter(Boolean)\n .join(' ')}\n >\n {BeforeTable}\n <DraggableSortable ids={rowIds} onDragEnd={handleDragEnd} onDragStart={handleDragStart}>\n <table cellPadding=\"0\" cellSpacing=\"0\">\n <thead>\n <tr>\n {activeColumns.map((col, i) => (\n <th id={`heading-${col.accessor}`} key={i}>\n {col.Heading}\n </th>\n ))}\n </tr>\n </thead>\n <tbody>\n {localData.map((row, rowIndex) => (\n <DraggableSortableItem id={rowIds[rowIndex]} key={rowIds[rowIndex]}>\n {({ attributes, isDragging, listeners, setNodeRef, transform, transition }) => (\n <OrderableRow\n cellMap={cellMap}\n className={`row-${rowIndex + 1}`}\n columns={activeColumns}\n dragAttributes={attributes}\n dragListeners={listeners}\n ref={setNodeRef}\n rowId={row.id ?? row._id}\n style={{\n opacity: isDragging ? 0 : 1,\n transform,\n transition,\n }}\n />\n )}\n </DraggableSortableItem>\n ))}\n </tbody>\n </table>\n\n <DragOverlay>\n <OrderableRowDragPreview\n className={[baseClass, `${baseClass}--drag-preview`].join(' ')}\n rowId={dragActiveRowId}\n >\n <OrderableRow cellMap={cellMap} columns={activeColumns} rowId={dragActiveRowId} />\n </OrderableRowDragPreview>\n </DragOverlay>\n </DraggableSortable>\n </div>\n )\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"OrderableTable.js","names":["DragOverlay","formatAdminURL","React","useEffect","useState","toast","useBranchParam","useConfig","useListQuery","useLocale","useTranslation","DraggableSortableItem","DraggableSortable","OrderableRow","OrderableRowDragPreview","baseClass","mustSortByOrderToastId","OrderableTable","appearance","BeforeTable","collection","columns","data","initialData","config","listQueryData","orderableFieldName","query","code","localeCode","branch","t","serverData","docs","isOrderable","sort","localData","setLocalData","cellMap","setCellMap","dragActiveRowId","setDragActiveRowId","Object","fromEntries","map","item","index","String","id","_id","activeColumns","filter","col","active","includes","accessor","length","_jsx","handleDragEnd","moveFromIndex","moveToIndex","warning","undefined","movedId","newBeforeRow","newAfterRow","previousData","currentData","newData","splice","target","key","newKeyWillBe","jsonBody","collectionSlug","slug","docsToMove","response","fetch","apiRoute","routes","api","path","encodeURIComponent","body","JSON","stringify","credentials","headers","method","status","Error","ok","json","err","error","message","handleDragStart","handleDisabledDragAttempt","rowIds","row","_jsxs","className","Boolean","join","ids","onDragEnd","onDragStart","cellPadding","cellSpacing","i","Heading","rowIndex","disabled","children","attributes","isDragging","listeners","setNodeRef","transform","transition","dragAttributes","dragListeners","onDisabledDragAttempt","ref","rowId","style","opacity"],"sources":["../../../src/elements/Table/OrderableTable.tsx"],"sourcesContent":["'use client'\n\nimport type { ClientCollectionConfig, Column, OrderableEndpointBody } from 'payload'\n\nimport './index.css'\n\nimport { DragOverlay } from '@dnd-kit/core'\nimport { formatAdminURL } from 'payload/shared'\nimport React, { useEffect, useState } from 'react'\nimport { toast } from 'sonner'\n\nimport { useBranchParam } from '../../providers/Branch/index.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useListQuery } from '../../providers/ListQuery/index.js'\nimport { useLocale } from '../../providers/Locale/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { DraggableSortableItem } from '../DraggableSortable/DraggableSortableItem/index.js'\nimport { DraggableSortable } from '../DraggableSortable/index.js'\nimport { OrderableRow } from './OrderableRow.js'\nimport { OrderableRowDragPreview } from './OrderableRowDragPreview.js'\n\nconst baseClass = 'table'\n\n// A stable id so repeated attempts (e.g. holding Space) update the same toast instead of stacking new ones\nconst mustSortByOrderToastId = 'orderable-table-must-sort-by-order'\n\nexport type Props = {\n readonly appearance?: 'condensed' | 'default'\n readonly BeforeTable?: React.ReactNode\n readonly collection: ClientCollectionConfig\n readonly columns?: Column[]\n readonly data: Record<string, unknown>[]\n readonly heading?: React.ReactNode\n}\n\nexport const OrderableTable: React.FC<Props> = ({\n appearance = 'default',\n BeforeTable,\n collection,\n columns,\n data: initialData,\n}) => {\n const { config } = useConfig()\n const { data: listQueryData, orderableFieldName, query } = useListQuery()\n const { code: localeCode } = useLocale()\n const branch = useBranchParam()\n const { t } = useTranslation()\n // Use the data from ListQueryProvider if available, otherwise use the props\n const serverData = listQueryData?.docs || initialData\n\n const isOrderable = query.sort === orderableFieldName || query.sort === `-${orderableFieldName}`\n\n // Local state to track the current order of rows\n const [localData, setLocalData] = useState(serverData)\n\n // id -> index for each column\n const [cellMap, setCellMap] = useState<Record<string, number>>({})\n\n const [dragActiveRowId, setDragActiveRowId] = useState<number | string | undefined>()\n\n // Update local data when server data changes\n useEffect(() => {\n setLocalData(serverData)\n setCellMap(\n Object.fromEntries(serverData.map((item, index) => [String(item.id ?? item._id), index])),\n )\n }, [serverData])\n\n const activeColumns = columns?.filter((col) => col?.active)\n\n if (\n !activeColumns ||\n activeColumns.filter((col) => !['_dragHandle', '_select'].includes(col.accessor)).length === 0\n ) {\n return <div>No columns selected</div>\n }\n\n const handleDragEnd = async ({ moveFromIndex, moveToIndex }) => {\n if (!isOrderable) {\n toast.warning(t('general:sortByOrderToReorder'), { id: mustSortByOrderToastId })\n setDragActiveRowId(undefined)\n return\n }\n\n if (moveFromIndex === moveToIndex) {\n setDragActiveRowId(undefined)\n return\n }\n\n const movedId = localData[moveFromIndex].id ?? localData[moveFromIndex]._id\n const newBeforeRow =\n moveToIndex > moveFromIndex ? localData[moveToIndex] : localData[moveToIndex - 1]\n const newAfterRow =\n moveToIndex > moveFromIndex ? localData[moveToIndex + 1] : localData[moveToIndex]\n\n // Store the original data for rollback\n const previousData = [...localData]\n\n // Optimisitc update of local state to reorder the rows\n setLocalData((currentData) => {\n const newData = [...currentData]\n // Update the rendered cell for the moved row to show \"pending\"\n newData[moveFromIndex][orderableFieldName] = `pending`\n // Move the item in the array\n newData.splice(moveToIndex, 0, newData.splice(moveFromIndex, 1)[0])\n return newData\n })\n\n try {\n const target: OrderableEndpointBody['target'] = newBeforeRow\n ? {\n id: newBeforeRow.id ?? newBeforeRow._id,\n key: newBeforeRow[orderableFieldName],\n }\n : {\n id: newAfterRow.id ?? newAfterRow._id,\n key: newAfterRow[orderableFieldName],\n }\n\n const newKeyWillBe =\n (newBeforeRow && query.sort === orderableFieldName) ||\n (!newBeforeRow && query.sort === `-${orderableFieldName}`)\n ? 'greater'\n : 'less'\n\n const jsonBody: OrderableEndpointBody = {\n collectionSlug: collection.slug,\n docsToMove: [movedId],\n newKeyWillBe,\n orderableFieldName,\n target,\n }\n\n const response = await fetch(\n formatAdminURL({\n apiRoute: config.routes.api,\n path: `/reorder?locale=${localeCode}${branch ? `&branch=${encodeURIComponent(branch)}` : ''}`,\n }),\n {\n body: JSON.stringify(jsonBody),\n credentials: 'include',\n headers: {\n 'Content-Type': 'application/json',\n },\n method: 'POST',\n },\n )\n\n if (response.status === 403) {\n throw new Error('You do not have permission to reorder these rows')\n }\n\n if (!response.ok) {\n throw new Error(\n 'Failed to reorder. This can happen if you reorder several rows too quickly. Please try again.',\n )\n }\n\n if (response.status === 200 && (await response.json())['message'] === 'initial migration') {\n throw new Error(\n 'You have enabled \"orderable\" on a collection with existing documents' +\n 'and this is the first time you have sorted documents. We have run an automatic migration ' +\n 'to add an initial order to the documents. Please refresh the page and try again.',\n )\n }\n } catch (err) {\n const error = err instanceof Error ? err.message : String(err)\n // Rollback to previous state if the request fails\n setLocalData(previousData)\n toast.error(error)\n } finally {\n setDragActiveRowId(undefined)\n }\n }\n\n const handleDragStart = ({ id }) => {\n setDragActiveRowId(id)\n }\n\n const handleDisabledDragAttempt = () => {\n toast.warning(t('general:sortByOrderToReorder'), { id: mustSortByOrderToastId })\n }\n\n const rowIds = localData.map((row) => row.id ?? row._id)\n\n return (\n <div\n className={[baseClass, appearance && `${baseClass}--appearance-${appearance}`]\n .filter(Boolean)\n .join(' ')}\n >\n {BeforeTable}\n <DraggableSortable ids={rowIds} onDragEnd={handleDragEnd} onDragStart={handleDragStart}>\n <table cellPadding=\"0\" cellSpacing=\"0\">\n <thead>\n <tr>\n {activeColumns.map((col, i) => (\n <th id={`heading-${col.accessor}`} key={i}>\n {col.Heading}\n </th>\n ))}\n </tr>\n </thead>\n <tbody>\n {localData.map((row, rowIndex) => (\n <DraggableSortableItem\n disabled={!isOrderable}\n id={rowIds[rowIndex]}\n key={rowIds[rowIndex]}\n >\n {({ attributes, isDragging, listeners, setNodeRef, transform, transition }) => (\n <OrderableRow\n cellMap={cellMap}\n className={`row-${rowIndex + 1}`}\n columns={activeColumns}\n dragAttributes={attributes}\n dragListeners={listeners}\n isOrderable={isOrderable}\n onDisabledDragAttempt={handleDisabledDragAttempt}\n ref={setNodeRef}\n rowId={row.id ?? row._id}\n style={{\n opacity: isDragging ? 0 : 1,\n transform,\n transition,\n }}\n />\n )}\n </DraggableSortableItem>\n ))}\n </tbody>\n </table>\n\n <DragOverlay>\n <OrderableRowDragPreview\n className={[baseClass, `${baseClass}--drag-preview`].join(' ')}\n rowId={dragActiveRowId}\n >\n <OrderableRow cellMap={cellMap} columns={activeColumns} rowId={dragActiveRowId} />\n </OrderableRowDragPreview>\n </DragOverlay>\n </DraggableSortable>\n </div>\n )\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/elements/Table/RelationshipProvider/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAc,UAAU,EAAE,MAAM,SAAS,CAAA;AAIrD,OAAO,KAAyE,MAAM,OAAO,CAAA;AAW7F,MAAM,MAAM,SAAS,GAAG;IACtB,CAAC,IAAI,EAAE,MAAM,GAAG;QACd,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,GAAG,KAAK,GAAG,IAAI,GAAG,UAAU,CAAA;KACjD,CAAA;CACF,CAAA;AAED,KAAK,uBAAuB,GAAG;IAC7B,SAAS,EAAE,SAAS,CAAA;IACpB,gBAAgB,EAAE,CAChB,IAAI,EAAE;QACJ,UAAU,EAAE,MAAM,CAAA;QAClB,KAAK,EAAE,MAAM,GAAG,MAAM,CAAA;KACvB,EAAE,KACA,IAAI,CAAA;CACV,CAAA;AAID,eAAO,MAAM,oBAAoB,EAAE,KAAK,CAAC,EAAE,CAAC;IAAE,QAAQ,CAAC,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;CAAE,CAoGlF,CAAA;AAED,eAAO,MAAM,oBAAoB,QAAO,uBAAuC,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/elements/Table/RelationshipProvider/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAc,UAAU,EAAE,MAAM,SAAS,CAAA;AAIrD,OAAO,KAAyE,MAAM,OAAO,CAAA;AAY7F,MAAM,MAAM,SAAS,GAAG;IACtB,CAAC,IAAI,EAAE,MAAM,GAAG;QACd,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,GAAG,KAAK,GAAG,IAAI,GAAG,UAAU,CAAA;KACjD,CAAA;CACF,CAAA;AAED,KAAK,uBAAuB,GAAG;IAC7B,SAAS,EAAE,SAAS,CAAA;IACpB,gBAAgB,EAAE,CAChB,IAAI,EAAE;QACJ,UAAU,EAAE,MAAM,CAAA;QAClB,KAAK,EAAE,MAAM,GAAG,MAAM,CAAA;KACvB,EAAE,KACA,IAAI,CAAA;CACV,CAAA;AAID,eAAO,MAAM,oBAAoB,EAAE,KAAK,CAAC,EAAE,CAAC;IAAE,QAAQ,CAAC,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;CAAE,CAyGlF,CAAA;AAED,eAAO,MAAM,oBAAoB,QAAO,uBAAuC,CAAA"}
@@ -6,13 +6,14 @@ import { appendUploadSelectFields, formatAdminURL } from 'payload/shared';
6
6
  import * as qs from 'qs-esm';
7
7
  import React, { createContext, use, useCallback, useEffect, useReducer, useRef } from 'react';
8
8
  import { useDebounce } from '../../../hooks/useDebounce.js';
9
+ import { useBranchParam } from '../../../providers/Branch/index.js';
9
10
  import { useConfig } from '../../../providers/Config/index.js';
10
11
  import { useLocale } from '../../../providers/Locale/index.js';
11
12
  import { useTranslation } from '../../../providers/Translation/index.js';
12
13
  import { reducer } from './reducer.js';
13
14
  const Context = /*#__PURE__*/createContext({});
14
15
  export const RelationshipProvider = t0 => {
15
- const $ = _c(15);
16
+ const $ = _c(16);
16
17
  const {
17
18
  children
18
19
  } = t0;
@@ -41,9 +42,10 @@ export const RelationshipProvider = t0 => {
41
42
  const {
42
43
  code: locale
43
44
  } = useLocale();
45
+ const branch = useBranchParam();
44
46
  const prevLocale = useRef(locale);
45
47
  let t4;
46
- if ($[1] !== api || $[2] !== collections || $[3] !== debouncedDocuments || $[4] !== i18n || $[5] !== locale) {
48
+ if ($[1] !== api || $[2] !== branch || $[3] !== collections || $[4] !== debouncedDocuments || $[5] !== i18n || $[6] !== locale) {
47
49
  t4 = t5 => {
48
50
  const reloadAll = t5 === undefined ? false : t5;
49
51
  Object.entries(debouncedDocuments).forEach(async t6 => {
@@ -80,6 +82,9 @@ export const RelationshipProvider = t0 => {
80
82
  if (locale) {
81
83
  params.append("locale", locale);
82
84
  }
85
+ if (branch) {
86
+ params.append("branch", branch);
87
+ }
83
88
  const idsToString = idsToLoad.map(_temp);
84
89
  params.append("where[id][in]", idsToString.join(","));
85
90
  const query = `?${params.toString()}&${qs.stringify({
@@ -113,47 +118,48 @@ export const RelationshipProvider = t0 => {
113
118
  });
114
119
  };
115
120
  $[1] = api;
116
- $[2] = collections;
117
- $[3] = debouncedDocuments;
118
- $[4] = i18n;
119
- $[5] = locale;
120
- $[6] = t4;
121
+ $[2] = branch;
122
+ $[3] = collections;
123
+ $[4] = debouncedDocuments;
124
+ $[5] = i18n;
125
+ $[6] = locale;
126
+ $[7] = t4;
121
127
  } else {
122
- t4 = $[6];
128
+ t4 = $[7];
123
129
  }
124
130
  const loadRelationshipDocs = t4;
125
131
  let t5;
126
132
  let t6;
127
- if ($[7] !== loadRelationshipDocs || $[8] !== locale) {
133
+ if ($[8] !== loadRelationshipDocs || $[9] !== locale) {
128
134
  t5 = () => {
129
135
  loadRelationshipDocs(locale && prevLocale.current !== locale);
130
136
  prevLocale.current = locale;
131
137
  };
132
138
  t6 = [locale, loadRelationshipDocs];
133
- $[7] = loadRelationshipDocs;
134
- $[8] = locale;
135
- $[9] = t5;
136
- $[10] = t6;
139
+ $[8] = loadRelationshipDocs;
140
+ $[9] = locale;
141
+ $[10] = t5;
142
+ $[11] = t6;
137
143
  } else {
138
- t5 = $[9];
139
- t6 = $[10];
144
+ t5 = $[10];
145
+ t6 = $[11];
140
146
  }
141
147
  useEffect(t5, t6);
142
148
  let t7;
143
- if ($[11] === Symbol.for("react.memo_cache_sentinel")) {
149
+ if ($[12] === Symbol.for("react.memo_cache_sentinel")) {
144
150
  t7 = relationships => {
145
151
  dispatchDocuments({
146
152
  type: "REQUEST",
147
153
  docs: relationships
148
154
  });
149
155
  };
150
- $[11] = t7;
156
+ $[12] = t7;
151
157
  } else {
152
- t7 = $[11];
158
+ t7 = $[12];
153
159
  }
154
160
  const getRelationships = t7;
155
161
  let t8;
156
- if ($[12] !== children || $[13] !== documents) {
162
+ if ($[13] !== children || $[14] !== documents) {
157
163
  t8 = _jsx(Context, {
158
164
  value: {
159
165
  documents,
@@ -161,11 +167,11 @@ export const RelationshipProvider = t0 => {
161
167
  },
162
168
  children
163
169
  });
164
- $[12] = children;
165
- $[13] = documents;
166
- $[14] = t8;
170
+ $[13] = children;
171
+ $[14] = documents;
172
+ $[15] = t8;
167
173
  } else {
168
- t8 = $[14];
174
+ t8 = $[15];
169
175
  }
170
176
  return t8;
171
177
  };
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["c","_c","appendUploadSelectFields","formatAdminURL","qs","React","createContext","use","useCallback","useEffect","useReducer","useRef","useDebounce","useConfig","useLocale","useTranslation","reducer","Context","RelationshipProvider","t0","$","children","t1","Symbol","for","documents","dispatchDocuments","debouncedDocuments","config","t2","collections","routes","t3","api","i18n","code","locale","prevLocale","t4","t5","reloadAll","undefined","Object","entries","forEach","t6","slug","docs","idsToLoad","t7","id","value","push","length","url","apiRoute","path","params","URLSearchParams","select","append","collection","find","fieldToSelect","admin","useAsTitle","upload","collectionConfig","idsToString","map","_temp","join","query","toString","stringify","result","fetch","credentials","headers","language","ok","json","type","relationTo","loadRelationshipDocs","current","relationships","getRelationships","t8","_jsx","useListRelationships","id_0","String"],"sources":["../../../../src/elements/Table/RelationshipProvider/index.tsx"],"sourcesContent":["'use client'\nimport type { SelectType, TypeWithID } from 'payload'\n\nimport { appendUploadSelectFields, formatAdminURL } from 'payload/shared'\nimport * as qs from 'qs-esm'\nimport React, { createContext, use, useCallback, useEffect, useReducer, useRef } from 'react'\n\nimport { useDebounce } from '../../../hooks/useDebounce.js'\nimport { useConfig } from '../../../providers/Config/index.js'\nimport { useLocale } from '../../../providers/Locale/index.js'\nimport { useTranslation } from '../../../providers/Translation/index.js'\nimport { reducer } from './reducer.js'\n\n// documents are first set to null when requested\n// set to false when no doc is returned\n// or set to the document returned\nexport type Documents = {\n [slug: string]: {\n [id: number | string]: false | null | TypeWithID\n }\n}\n\ntype ListRelationshipContext = {\n documents: Documents\n getRelationships: (\n docs: {\n relationTo: string\n value: number | string\n }[],\n ) => void\n}\n\nconst Context = createContext({} as ListRelationshipContext)\n\nexport const RelationshipProvider: React.FC<{ readonly children?: React.ReactNode }> = ({\n children,\n}) => {\n const [documents, dispatchDocuments] = useReducer(reducer, {})\n const debouncedDocuments = useDebounce(documents, 100)\n\n const {\n config: {\n collections,\n routes: { api },\n },\n } = useConfig()\n\n const { i18n } = useTranslation()\n const { code: locale } = useLocale()\n const prevLocale = useRef(locale)\n\n const loadRelationshipDocs = useCallback(\n (reloadAll = false) => {\n Object.entries(debouncedDocuments).forEach(async ([slug, docs]) => {\n const idsToLoad: (number | string)[] = []\n\n Object.entries(docs).forEach(([id, value]) => {\n if (value === null || reloadAll) {\n idsToLoad.push(id)\n }\n })\n\n if (idsToLoad.length > 0) {\n const url = formatAdminURL({ apiRoute: api, path: `/${slug}` })\n\n const params = new URLSearchParams()\n const select: SelectType = {}\n\n params.append('depth', '0')\n params.append('draft', 'true')\n params.append('limit', '250')\n\n const collection = collections.find((c) => c.slug === slug)\n\n if (!collection) {\n return\n }\n\n const fieldToSelect = collection.admin.useAsTitle ?? 'id'\n\n select[fieldToSelect] = true\n\n if (collection.upload) {\n appendUploadSelectFields({ collectionConfig: collection, select })\n }\n\n if (locale) {\n params.append('locale', locale)\n }\n\n const idsToString = idsToLoad.map((id) => String(id))\n params.append('where[id][in]', idsToString.join(','))\n\n const query = `?${params.toString()}&${qs.stringify({ select })}`\n\n const result = await fetch(`${url}${query}`, {\n credentials: 'include',\n headers: {\n 'Accept-Language': i18n.language,\n },\n })\n\n if (result.ok) {\n const json = await result.json()\n if (json.docs) {\n dispatchDocuments({\n type: 'ADD_LOADED',\n docs: json.docs,\n idsToLoad,\n relationTo: slug,\n })\n }\n } else {\n dispatchDocuments({ type: 'ADD_LOADED', docs: [], idsToLoad, relationTo: slug })\n }\n }\n })\n },\n [debouncedDocuments, api, i18n, locale, collections],\n )\n\n useEffect(() => {\n void loadRelationshipDocs(locale && prevLocale.current !== locale)\n prevLocale.current = locale\n }, [locale, loadRelationshipDocs])\n\n const getRelationships = useCallback(\n (relationships: { relationTo: string; value: number | string }[]) => {\n dispatchDocuments({ type: 'REQUEST', docs: relationships })\n },\n [],\n )\n\n return <Context value={{ documents, getRelationships }}>{children}</Context>\n}\n\nexport const useListRelationships = (): ListRelationshipContext => use(Context)\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["c","_c","appendUploadSelectFields","formatAdminURL","qs","React","createContext","use","useCallback","useEffect","useReducer","useRef","useDebounce","useBranchParam","useConfig","useLocale","useTranslation","reducer","Context","RelationshipProvider","t0","$","children","t1","Symbol","for","documents","dispatchDocuments","debouncedDocuments","config","t2","collections","routes","t3","api","i18n","code","locale","branch","prevLocale","t4","t5","reloadAll","undefined","Object","entries","forEach","t6","slug","docs","idsToLoad","t7","id","value","push","length","url","apiRoute","path","params","URLSearchParams","select","append","collection","find","fieldToSelect","admin","useAsTitle","upload","collectionConfig","idsToString","map","_temp","join","query","toString","stringify","result","fetch","credentials","headers","language","ok","json","type","relationTo","loadRelationshipDocs","current","relationships","getRelationships","t8","_jsx","useListRelationships","id_0","String"],"sources":["../../../../src/elements/Table/RelationshipProvider/index.tsx"],"sourcesContent":["'use client'\nimport type { SelectType, TypeWithID } from 'payload'\n\nimport { appendUploadSelectFields, formatAdminURL } from 'payload/shared'\nimport * as qs from 'qs-esm'\nimport React, { createContext, use, useCallback, useEffect, useReducer, useRef } from 'react'\n\nimport { useDebounce } from '../../../hooks/useDebounce.js'\nimport { useBranchParam } from '../../../providers/Branch/index.js'\nimport { useConfig } from '../../../providers/Config/index.js'\nimport { useLocale } from '../../../providers/Locale/index.js'\nimport { useTranslation } from '../../../providers/Translation/index.js'\nimport { reducer } from './reducer.js'\n\n// documents are first set to null when requested\n// set to false when no doc is returned\n// or set to the document returned\nexport type Documents = {\n [slug: string]: {\n [id: number | string]: false | null | TypeWithID\n }\n}\n\ntype ListRelationshipContext = {\n documents: Documents\n getRelationships: (\n docs: {\n relationTo: string\n value: number | string\n }[],\n ) => void\n}\n\nconst Context = createContext({} as ListRelationshipContext)\n\nexport const RelationshipProvider: React.FC<{ readonly children?: React.ReactNode }> = ({\n children,\n}) => {\n const [documents, dispatchDocuments] = useReducer(reducer, {})\n const debouncedDocuments = useDebounce(documents, 100)\n\n const {\n config: {\n collections,\n routes: { api },\n },\n } = useConfig()\n\n const { i18n } = useTranslation()\n const { code: locale } = useLocale()\n const branch = useBranchParam()\n const prevLocale = useRef(locale)\n\n const loadRelationshipDocs = useCallback(\n (reloadAll = false) => {\n Object.entries(debouncedDocuments).forEach(async ([slug, docs]) => {\n const idsToLoad: (number | string)[] = []\n\n Object.entries(docs).forEach(([id, value]) => {\n if (value === null || reloadAll) {\n idsToLoad.push(id)\n }\n })\n\n if (idsToLoad.length > 0) {\n const url = formatAdminURL({ apiRoute: api, path: `/${slug}` })\n\n const params = new URLSearchParams()\n const select: SelectType = {}\n\n params.append('depth', '0')\n params.append('draft', 'true')\n params.append('limit', '250')\n\n const collection = collections.find((c) => c.slug === slug)\n\n if (!collection) {\n return\n }\n\n const fieldToSelect = collection.admin.useAsTitle ?? 'id'\n\n select[fieldToSelect] = true\n\n if (collection.upload) {\n appendUploadSelectFields({ collectionConfig: collection, select })\n }\n\n if (locale) {\n params.append('locale', locale)\n }\n\n if (branch) {\n params.append('branch', branch)\n }\n\n const idsToString = idsToLoad.map((id) => String(id))\n params.append('where[id][in]', idsToString.join(','))\n\n const query = `?${params.toString()}&${qs.stringify({ select })}`\n\n const result = await fetch(`${url}${query}`, {\n credentials: 'include',\n headers: {\n 'Accept-Language': i18n.language,\n },\n })\n\n if (result.ok) {\n const json = await result.json()\n if (json.docs) {\n dispatchDocuments({\n type: 'ADD_LOADED',\n docs: json.docs,\n idsToLoad,\n relationTo: slug,\n })\n }\n } else {\n dispatchDocuments({ type: 'ADD_LOADED', docs: [], idsToLoad, relationTo: slug })\n }\n }\n })\n },\n [debouncedDocuments, api, branch, i18n, locale, collections],\n )\n\n useEffect(() => {\n void loadRelationshipDocs(locale && prevLocale.current !== locale)\n prevLocale.current = locale\n }, [locale, loadRelationshipDocs])\n\n const getRelationships = useCallback(\n (relationships: { relationTo: string; value: number | string }[]) => {\n dispatchDocuments({ type: 'REQUEST', docs: relationships })\n },\n [],\n )\n\n return <Context value={{ documents, getRelationships }}>{children}</Context>\n}\n\nexport const useListRelationships = (): ListRelationshipContext => use(Context)\n"],"mappings":"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","ignoreList":[]}
@@ -148,6 +148,7 @@
148
148
 
149
149
  /* Condensed appearance */
150
150
  .table--appearance-condensed {
151
+ border: var(--stroke-width-small) solid var(--color-border);
151
152
  border-radius: var(--radius-medium);
152
153
  scrollbar-width: thin;
153
154
  scrollbar-color: var(--scrollbar-color) transparent;
@@ -49,7 +49,6 @@
49
49
  }
50
50
 
51
51
  .table-section__content {
52
- padding: 0 calc(var(--spacer-3) - var(--spacer-2));
53
52
  padding-bottom: var(--spacer-2);
54
53
  }
55
54
 
@@ -9,7 +9,7 @@ export type ThumbnailProps = {
9
9
  height?: number;
10
10
  imageCacheTag?: false | string;
11
11
  size?: 'expand' | 'large' | 'medium' | 'none' | 'small';
12
- uploadConfig?: SanitizedCollectionConfig['upload'];
12
+ uploadConfig?: Omit<SanitizedCollectionConfig['upload'], 'uploadInstructions'>;
13
13
  width?: number;
14
14
  };
15
15
  export declare const Thumbnail: React.FC<ThumbnailProps>;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/Thumbnail/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,aAAa,CAAA;AAIpB,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,SAAS,CAAA;AAMxD,MAAM,MAAM,cAAc,GAAG;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAC7B,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,aAAa,CAAC,EAAE,KAAK,GAAG,MAAM,CAAA;IAC9B,IAAI,CAAC,EAAE,QAAQ,GAAG,OAAO,GAAG,QAAQ,GAAG,MAAM,GAAG,OAAO,CAAA;IACvD,YAAY,CAAC,EAAE,yBAAyB,CAAC,QAAQ,CAAC,CAAA;IAClD,KAAK,CAAC,EAAE,MAAM,CAAA;CACf,CAAA;AAED,eAAO,MAAM,SAAS,EAAE,KAAK,CAAC,EAAE,CAAC,cAAc,CA2C9C,CAAA;AAED,KAAK,uBAAuB,GAAG;IAC7B,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,aAAa,CAAC,EAAE,KAAK,GAAG,MAAM,CAAA;IACvC,QAAQ,CAAC,IAAI,CAAC,EAAE,QAAQ,GAAG,OAAO,GAAG,QAAQ,GAAG,MAAM,GAAG,OAAO,CAAA;CACjE,CAAA;AACD,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,uBAAuB,qBAmChE"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/Thumbnail/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,aAAa,CAAA;AAIpB,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,SAAS,CAAA;AAMxD,MAAM,MAAM,cAAc,GAAG;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAC7B,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,aAAa,CAAC,EAAE,KAAK,GAAG,MAAM,CAAA;IAC9B,IAAI,CAAC,EAAE,QAAQ,GAAG,OAAO,GAAG,QAAQ,GAAG,MAAM,GAAG,OAAO,CAAA;IACvD,YAAY,CAAC,EAAE,IAAI,CAAC,yBAAyB,CAAC,QAAQ,CAAC,EAAE,oBAAoB,CAAC,CAAA;IAC9E,KAAK,CAAC,EAAE,MAAM,CAAA;CACf,CAAA;AAED,eAAO,MAAM,SAAS,EAAE,KAAK,CAAC,EAAE,CAAC,cAAc,CA2C9C,CAAA;AAED,KAAK,uBAAuB,GAAG;IAC7B,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,aAAa,CAAC,EAAE,KAAK,GAAG,MAAM,CAAA;IACvC,QAAQ,CAAC,IAAI,CAAC,EAAE,QAAQ,GAAG,OAAO,GAAG,QAAQ,GAAG,MAAM,GAAG,OAAO,CAAA;CACjE,CAAA;AACD,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,uBAAuB,qBAmChE"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["React","baseClass","File","appendCacheTag","ShimmerEffect","Thumbnail","props","className","doc","filename","fileSrc","height","imageCacheTag","size","width","fileExists","setFileExists","useState","undefined","classNames","join","src","useMemo","useEffect","img","Image","onload","onerror","_jsxs","_jsx","alt","ThumbnailComponent"],"sources":["../../../src/elements/Thumbnail/index.tsx"],"sourcesContent":["'use client'\nimport React from 'react'\n\nimport './index.css'\n\nconst baseClass = 'thumbnail'\n\nimport type { SanitizedCollectionConfig } from 'payload'\n\nimport { File } from '../../graphics/File/index.js'\nimport { appendCacheTag } from '../../utilities/appendCacheTag.js'\nimport { ShimmerEffect } from '../ShimmerEffect/index.js'\n\nexport type ThumbnailProps = {\n className?: string\n collectionSlug?: string\n doc?: Record<string, unknown>\n fileSrc?: string\n height?: number\n imageCacheTag?: false | string\n size?: 'expand' | 'large' | 'medium' | 'none' | 'small'\n uploadConfig?: SanitizedCollectionConfig['upload']\n width?: number\n}\n\nexport const Thumbnail: React.FC<ThumbnailProps> = (props) => {\n const {\n className = '',\n doc: { filename } = {},\n fileSrc,\n height,\n imageCacheTag,\n size,\n width,\n } = props\n const [fileExists, setFileExists] = React.useState(undefined)\n\n const classNames = [baseClass, `${baseClass}--size-${size || 'medium'}`, className].join(' ')\n\n const src = React.useMemo(\n () => (fileSrc ? appendCacheTag(fileSrc, imageCacheTag) : null),\n [fileSrc, imageCacheTag],\n )\n\n React.useEffect(() => {\n if (!src) {\n setFileExists(false)\n return\n }\n setFileExists(undefined)\n\n const img = new Image()\n img.src = src\n img.onload = () => {\n setFileExists(true)\n }\n img.onerror = () => {\n setFileExists(false)\n }\n }, [src])\n\n return (\n <div className={classNames}>\n {fileExists === undefined && <ShimmerEffect height=\"100%\" />}\n {fileExists && <img alt={filename as string} height={height} src={src} width={width} />}\n {fileExists === false && <File />}\n </div>\n )\n}\n\ntype ThumbnailComponentProps = {\n readonly alt?: string\n readonly className?: string\n readonly filename: string\n readonly fileSrc: string\n readonly imageCacheTag?: false | string\n readonly size?: 'expand' | 'large' | 'medium' | 'none' | 'small'\n}\nexport function ThumbnailComponent(props: ThumbnailComponentProps) {\n const { alt, className = '', filename, fileSrc, imageCacheTag, size } = props\n const [fileExists, setFileExists] = React.useState(undefined)\n\n const classNames = [baseClass, `${baseClass}--size-${size || 'medium'}`, className].join(' ')\n\n const src = React.useMemo(\n () => (fileSrc ? appendCacheTag(fileSrc, imageCacheTag) : null),\n [fileSrc, imageCacheTag],\n )\n\n React.useEffect(() => {\n if (!src) {\n setFileExists(false)\n return\n }\n setFileExists(undefined)\n\n const img = new Image()\n img.src = src\n img.onload = () => {\n setFileExists(true)\n }\n img.onerror = () => {\n setFileExists(false)\n }\n }, [src])\n\n return (\n <div className={classNames}>\n {fileExists === undefined && <ShimmerEffect height=\"100%\" />}\n {fileExists && <img alt={alt || filename} src={src} />}\n {fileExists === false && <File />}\n </div>\n )\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["React","baseClass","File","appendCacheTag","ShimmerEffect","Thumbnail","props","className","doc","filename","fileSrc","height","imageCacheTag","size","width","fileExists","setFileExists","useState","undefined","classNames","join","src","useMemo","useEffect","img","Image","onload","onerror","_jsxs","_jsx","alt","ThumbnailComponent"],"sources":["../../../src/elements/Thumbnail/index.tsx"],"sourcesContent":["'use client'\nimport React from 'react'\n\nimport './index.css'\n\nconst baseClass = 'thumbnail'\n\nimport type { SanitizedCollectionConfig } from 'payload'\n\nimport { File } from '../../graphics/File/index.js'\nimport { appendCacheTag } from '../../utilities/appendCacheTag.js'\nimport { ShimmerEffect } from '../ShimmerEffect/index.js'\n\nexport type ThumbnailProps = {\n className?: string\n collectionSlug?: string\n doc?: Record<string, unknown>\n fileSrc?: string\n height?: number\n imageCacheTag?: false | string\n size?: 'expand' | 'large' | 'medium' | 'none' | 'small'\n uploadConfig?: Omit<SanitizedCollectionConfig['upload'], 'uploadInstructions'>\n width?: number\n}\n\nexport const Thumbnail: React.FC<ThumbnailProps> = (props) => {\n const {\n className = '',\n doc: { filename } = {},\n fileSrc,\n height,\n imageCacheTag,\n size,\n width,\n } = props\n const [fileExists, setFileExists] = React.useState(undefined)\n\n const classNames = [baseClass, `${baseClass}--size-${size || 'medium'}`, className].join(' ')\n\n const src = React.useMemo(\n () => (fileSrc ? appendCacheTag(fileSrc, imageCacheTag) : null),\n [fileSrc, imageCacheTag],\n )\n\n React.useEffect(() => {\n if (!src) {\n setFileExists(false)\n return\n }\n setFileExists(undefined)\n\n const img = new Image()\n img.src = src\n img.onload = () => {\n setFileExists(true)\n }\n img.onerror = () => {\n setFileExists(false)\n }\n }, [src])\n\n return (\n <div className={classNames}>\n {fileExists === undefined && <ShimmerEffect height=\"100%\" />}\n {fileExists && <img alt={filename as string} height={height} src={src} width={width} />}\n {fileExists === false && <File />}\n </div>\n )\n}\n\ntype ThumbnailComponentProps = {\n readonly alt?: string\n readonly className?: string\n readonly filename: string\n readonly fileSrc: string\n readonly imageCacheTag?: false | string\n readonly size?: 'expand' | 'large' | 'medium' | 'none' | 'small'\n}\nexport function ThumbnailComponent(props: ThumbnailComponentProps) {\n const { alt, className = '', filename, fileSrc, imageCacheTag, size } = props\n const [fileExists, setFileExists] = React.useState(undefined)\n\n const classNames = [baseClass, `${baseClass}--size-${size || 'medium'}`, className].join(' ')\n\n const src = React.useMemo(\n () => (fileSrc ? appendCacheTag(fileSrc, imageCacheTag) : null),\n [fileSrc, imageCacheTag],\n )\n\n React.useEffect(() => {\n if (!src) {\n setFileExists(false)\n return\n }\n setFileExists(undefined)\n\n const img = new Image()\n img.src = src\n img.onload = () => {\n setFileExists(true)\n }\n img.onerror = () => {\n setFileExists(false)\n }\n }, [src])\n\n return (\n <div className={classNames}>\n {fileExists === undefined && <ShimmerEffect height=\"100%\" />}\n {fileExists && <img alt={alt || filename} src={src} />}\n {fileExists === false && <File />}\n </div>\n )\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/TimezonePicker/index.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAa9B,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAQvC,OAAO,aAAa,CAAA;AAgEpB,eAAO,MAAM,cAAc,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CAuE1C,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/TimezonePicker/index.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAa9B,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAQvC,OAAO,aAAa,CAAA;AAqEpB,eAAO,MAAM,cAAc,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CAuE1C,CAAA"}
@@ -15,8 +15,12 @@ const SmallDropdownIndicator = props => {
15
15
  innerProps: {
16
16
  ref,
17
17
  ...restInnerProps
18
- }
18
+ },
19
+ isDisabled
19
20
  } = props;
21
+ if (isDisabled) {
22
+ return null;
23
+ }
20
24
  return /*#__PURE__*/_jsx("button", {
21
25
  className: "timezone-picker__dropdown-indicator",
22
26
  ref: ref,
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["useMemo","components","rsComponents","CheckIcon","ChevronIcon","CircledXIcon","useTranslation","ReactSelect","formatOptions","SmallDropdownIndicator","props","innerProps","ref","restInnerProps","_jsx","className","onKeyDown","e","key","type","size","SmallClearIndicator","clearValue","stopPropagation","role","tabIndex","TimezoneOption","children","_jsxs","Option","TimezonePicker","id","onChange","onChangeFromProps","options","optionsFromProps","readOnly","readOnlyFromProps","required","selectedTimezone","selectedTimezoneFromProps","t","find","value","Boolean","length","classNames","menu","menuList","ClearIndicator","DropdownIndicator","customProps","menuPortalTheme","disabled","inputId","isClearable","isCreatable","val","placeholder","styles","control","base","flexWrap","option","alignItems","display","gap","minWidth"],"sources":["../../../src/elements/TimezonePicker/index.tsx"],"sourcesContent":["'use client'\n\nimport type { OptionObject } from 'payload'\nimport type React from 'react'\nimport type { JSX } from 'react'\nimport type {\n ClearIndicatorProps,\n DropdownIndicatorProps,\n OptionProps,\n StylesConfig,\n} from 'react-select'\n\nimport { useMemo } from 'react'\nimport { components as rsComponents } from 'react-select'\n\nimport type { Option as OptionType } from '../ReactSelect/types.js'\nimport type { Props } from './types.js'\n\nimport { CheckIcon } from '../../icons/Check/index.js'\nimport { ChevronIcon } from '../../icons/Chevron/index.js'\nimport { CircledXIcon } from '../../icons/CircledX/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { ReactSelect } from '../ReactSelect/index.js'\nimport { formatOptions } from '../WhereBuilder/Condition/Select/formatOptions.js'\nimport './index.css'\n\nconst SmallDropdownIndicator: React.FC<\n {\n innerProps: JSX.IntrinsicElements['button']\n } & DropdownIndicatorProps<OptionType, true>\n> = (props) => {\n const {\n innerProps: { ref, ...restInnerProps },\n } = props\n\n return (\n <button\n className=\"timezone-picker__dropdown-indicator\"\n ref={ref}\n {...restInnerProps}\n onKeyDown={(e) => {\n if (e.key === 'Enter') {\n e.key = ' '\n }\n }}\n type=\"button\"\n >\n <ChevronIcon size={16} />\n </button>\n )\n}\n\nconst SmallClearIndicator: React.FC<ClearIndicatorProps<OptionType, true>> = (props) => {\n const {\n clearValue,\n innerProps: { ref, ...restInnerProps },\n } = props\n\n return (\n <div\n className=\"timezone-picker__clear-indicator\"\n ref={typeof ref === 'string' ? null : ref}\n {...restInnerProps}\n onKeyDown={(e) => {\n if (e.key === 'Enter') {\n clearValue()\n e.stopPropagation()\n }\n }}\n role=\"button\"\n tabIndex={0}\n >\n <CircledXIcon size={24} />\n </div>\n )\n}\n\nconst TimezoneOption: React.FC<OptionProps<OptionType, false>> = (props) => {\n const { children } = props\n\n return (\n <rsComponents.Option {...props}>\n <CheckIcon className=\"timezone-picker__option-check\" size={16} />\n <span className=\"timezone-picker__option-label\">{children}</span>\n </rsComponents.Option>\n )\n}\n\nexport const TimezonePicker: React.FC<Props> = (props) => {\n const {\n id,\n onChange: onChangeFromProps,\n options: optionsFromProps,\n readOnly: readOnlyFromProps,\n required,\n selectedTimezone: selectedTimezoneFromProps,\n } = props\n\n const { t } = useTranslation()\n\n const options = formatOptions(optionsFromProps)\n\n const selectedTimezone = useMemo(() => {\n return options.find((t) => {\n const value = typeof t === 'string' ? t : t.value\n return value === selectedTimezoneFromProps\n })\n }, [options, selectedTimezoneFromProps])\n\n const readOnly = Boolean(readOnlyFromProps) || options.length === 1\n\n return (\n <div className=\"timezone-picker-wrapper\">\n <span className=\"timezone-picker__label\">\n {t('general:timezone')}\n {required && <span className=\"timezone-picker__required\">*</span>}\n </span>\n <ReactSelect\n className=\"timezone-picker\"\n classNames={{\n menu: () => 'timezone-picker__menu',\n menuList: () => 'timezone-picker__menu-list',\n }}\n components={{\n ClearIndicator: SmallClearIndicator,\n DropdownIndicator: SmallDropdownIndicator,\n Option: TimezoneOption,\n }}\n customProps={{ menuPortalTheme: 'dark' }}\n disabled={readOnly}\n inputId={id}\n isClearable={!required}\n isCreatable={false}\n onChange={(val: OptionObject) => {\n if (onChangeFromProps) {\n onChangeFromProps(val?.value || '')\n }\n }}\n options={options}\n placeholder={t('general:none')}\n styles={\n {\n control: (base) => ({\n ...base,\n flexWrap: 'nowrap',\n }),\n option: (base) => ({\n ...base,\n alignItems: 'center',\n display: 'flex',\n gap: 'var(--spacer-1)',\n minWidth: 0,\n }),\n } as StylesConfig<OptionType>\n }\n value={selectedTimezone}\n />\n </div>\n )\n}\n"],"mappings":"AAAA;;;AAYA,SAASA,OAAO,QAAQ;AACxB,SAASC,UAAA,IAAcC,YAAY,QAAQ;AAK3C,SAASC,SAAS,QAAQ;AAC1B,SAASC,WAAW,QAAQ;AAC5B,SAASC,YAAY,QAAQ;AAC7B,SAASC,cAAc,QAAQ;AAC/B,SAASC,WAAW,QAAQ;AAC5B,SAASC,aAAa,QAAQ;AAC9B,OAAO;AAEP,MAAMC,sBAAA,GAIDC,KAAA;EACH,MAAM;IACJC,UAAA,EAAY;MAAEC,GAAG;MAAE,GAAGC;IAAA;EAAgB,CACvC,GAAGH,KAAA;EAEJ,oBACEI,IAAA,CAAC;IACCC,SAAA,EAAU;IACVH,GAAA,EAAKA,GAAA;IACJ,GAAGC,cAAc;IAClBG,SAAA,EAAYC,CAAA;MACV,IAAIA,CAAA,CAAEC,GAAG,KAAK,SAAS;QACrBD,CAAA,CAAEC,GAAG,GAAG;MACV;IACF;IACAC,IAAA,EAAK;cAEL,aAAAL,IAAA,CAACV,WAAA;MAAYgB,IAAA,EAAM;;;AAGzB;AAEA,MAAMC,mBAAA,GAAwEX,KAAA;EAC5E,MAAM;IACJY,UAAU;IACVX,UAAA,EAAY;MAAEC,GAAG;MAAE,GAAGC;IAAA;EAAgB,CACvC,GAAGH,KAAA;EAEJ,oBACEI,IAAA,CAAC;IACCC,SAAA,EAAU;IACVH,GAAA,EAAK,OAAOA,GAAA,KAAQ,WAAW,OAAOA,GAAA;IACrC,GAAGC,cAAc;IAClBG,SAAA,EAAYC,CAAA;MACV,IAAIA,CAAA,CAAEC,GAAG,KAAK,SAAS;QACrBI,UAAA;QACAL,CAAA,CAAEM,eAAe;MACnB;IACF;IACAC,IAAA,EAAK;IACLC,QAAA,EAAU;cAEV,aAAAX,IAAA,CAACT,YAAA;MAAae,IAAA,EAAM;;;AAG1B;AAEA,MAAMM,cAAA,GAA4DhB,KAAA;EAChE,MAAM;IAAEiB;EAAQ,CAAE,GAAGjB,KAAA;EAErB,oBACEkB,KAAA,CAAC1B,YAAA,CAAa2B,MAAM;IAAE,GAAGnB,KAAK;4BAC5BI,IAAA,CAACX,SAAA;MAAUY,SAAA,EAAU;MAAgCK,IAAA,EAAM;qBAC3DN,IAAA,CAAC;MAAKC,SAAA,EAAU;gBAAiCY;;;AAGvD;AAEA,OAAO,MAAMG,cAAA,GAAmCpB,KAAA;EAC9C,MAAM;IACJqB,EAAE;IACFC,QAAA,EAAUC,iBAAiB;IAC3BC,OAAA,EAASC,gBAAgB;IACzBC,QAAA,EAAUC,iBAAiB;IAC3BC,QAAQ;IACRC,gBAAA,EAAkBC;EAAyB,CAC5C,GAAG9B,KAAA;EAEJ,MAAM;IAAE+B;EAAC,CAAE,GAAGnC,cAAA;EAEd,MAAM4B,OAAA,GAAU1B,aAAA,CAAc2B,gBAAA;EAE9B,MAAMI,gBAAA,GAAmBvC,OAAA,CAAQ;IAC/B,OAAOkC,OAAA,CAAQQ,IAAI,CAAED,GAAA;MACnB,MAAME,KAAA,GAAQ,OAAOF,GAAA,KAAM,WAAWA,GAAA,GAAIA,GAAA,CAAEE,KAAK;MACjD,OAAOA,KAAA,KAAUH,yBAAA;IACnB;EACF,GAAG,CAACN,OAAA,EAASM,yBAAA,CAA0B;EAEvC,MAAMJ,QAAA,GAAWQ,OAAA,CAAQP,iBAAA,KAAsBH,OAAA,CAAQW,MAAM,KAAK;EAElE,oBACEjB,KAAA,CAAC;IAAIb,SAAA,EAAU;4BACba,KAAA,CAAC;MAAKb,SAAA,EAAU;iBACb0B,CAAA,CAAE,qBACFH,QAAA,iBAAYxB,IAAA,CAAC;QAAKC,SAAA,EAAU;kBAA4B;;qBAE3DD,IAAA,CAACP,WAAA;MACCQ,SAAA,EAAU;MACV+B,UAAA,EAAY;QACVC,IAAA,EAAMA,CAAA,KAAM;QACZC,QAAA,EAAUA,CAAA,KAAM;MAClB;MACA/C,UAAA,EAAY;QACVgD,cAAA,EAAgB5B,mBAAA;QAChB6B,iBAAA,EAAmBzC,sBAAA;QACnBoB,MAAA,EAAQH;MACV;MACAyB,WAAA,EAAa;QAAEC,eAAA,EAAiB;MAAO;MACvCC,QAAA,EAAUjB,QAAA;MACVkB,OAAA,EAASvB,EAAA;MACTwB,WAAA,EAAa,CAACjB,QAAA;MACdkB,WAAA,EAAa;MACbxB,QAAA,EAAWyB,GAAA;QACT,IAAIxB,iBAAA,EAAmB;UACrBA,iBAAA,CAAkBwB,GAAA,EAAKd,KAAA,IAAS;QAClC;MACF;MACAT,OAAA,EAASA,OAAA;MACTwB,WAAA,EAAajB,CAAA,CAAE;MACfkB,MAAA,EACE;QACEC,OAAA,EAAUC,IAAA,KAAU;UAClB,GAAGA,IAAI;UACPC,QAAA,EAAU;QACZ;QACAC,MAAA,EAASF,MAAA,KAAU;UACjB,GAAGA,MAAI;UACPG,UAAA,EAAY;UACZC,OAAA,EAAS;UACTC,GAAA,EAAK;UACLC,QAAA,EAAU;QACZ;MACF;MAEFxB,KAAA,EAAOJ;;;AAIf","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["useMemo","components","rsComponents","CheckIcon","ChevronIcon","CircledXIcon","useTranslation","ReactSelect","formatOptions","SmallDropdownIndicator","props","innerProps","ref","restInnerProps","isDisabled","_jsx","className","onKeyDown","e","key","type","size","SmallClearIndicator","clearValue","stopPropagation","role","tabIndex","TimezoneOption","children","_jsxs","Option","TimezonePicker","id","onChange","onChangeFromProps","options","optionsFromProps","readOnly","readOnlyFromProps","required","selectedTimezone","selectedTimezoneFromProps","t","find","value","Boolean","length","classNames","menu","menuList","ClearIndicator","DropdownIndicator","customProps","menuPortalTheme","disabled","inputId","isClearable","isCreatable","val","placeholder","styles","control","base","flexWrap","option","alignItems","display","gap","minWidth"],"sources":["../../../src/elements/TimezonePicker/index.tsx"],"sourcesContent":["'use client'\n\nimport type { OptionObject } from 'payload'\nimport type React from 'react'\nimport type { JSX } from 'react'\nimport type {\n ClearIndicatorProps,\n DropdownIndicatorProps,\n OptionProps,\n StylesConfig,\n} from 'react-select'\n\nimport { useMemo } from 'react'\nimport { components as rsComponents } from 'react-select'\n\nimport type { Option as OptionType } from '../ReactSelect/types.js'\nimport type { Props } from './types.js'\n\nimport { CheckIcon } from '../../icons/Check/index.js'\nimport { ChevronIcon } from '../../icons/Chevron/index.js'\nimport { CircledXIcon } from '../../icons/CircledX/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { ReactSelect } from '../ReactSelect/index.js'\nimport { formatOptions } from '../WhereBuilder/Condition/Select/formatOptions.js'\nimport './index.css'\n\nconst SmallDropdownIndicator: React.FC<\n {\n innerProps: JSX.IntrinsicElements['button']\n } & DropdownIndicatorProps<OptionType, true>\n> = (props) => {\n const {\n innerProps: { ref, ...restInnerProps },\n isDisabled,\n } = props\n\n if (isDisabled) {\n return null\n }\n\n return (\n <button\n className=\"timezone-picker__dropdown-indicator\"\n ref={ref}\n {...restInnerProps}\n onKeyDown={(e) => {\n if (e.key === 'Enter') {\n e.key = ' '\n }\n }}\n type=\"button\"\n >\n <ChevronIcon size={16} />\n </button>\n )\n}\n\nconst SmallClearIndicator: React.FC<ClearIndicatorProps<OptionType, true>> = (props) => {\n const {\n clearValue,\n innerProps: { ref, ...restInnerProps },\n } = props\n\n return (\n <div\n className=\"timezone-picker__clear-indicator\"\n ref={typeof ref === 'string' ? null : ref}\n {...restInnerProps}\n onKeyDown={(e) => {\n if (e.key === 'Enter') {\n clearValue()\n e.stopPropagation()\n }\n }}\n role=\"button\"\n tabIndex={0}\n >\n <CircledXIcon size={24} />\n </div>\n )\n}\n\nconst TimezoneOption: React.FC<OptionProps<OptionType, false>> = (props) => {\n const { children } = props\n\n return (\n <rsComponents.Option {...props}>\n <CheckIcon className=\"timezone-picker__option-check\" size={16} />\n <span className=\"timezone-picker__option-label\">{children}</span>\n </rsComponents.Option>\n )\n}\n\nexport const TimezonePicker: React.FC<Props> = (props) => {\n const {\n id,\n onChange: onChangeFromProps,\n options: optionsFromProps,\n readOnly: readOnlyFromProps,\n required,\n selectedTimezone: selectedTimezoneFromProps,\n } = props\n\n const { t } = useTranslation()\n\n const options = formatOptions(optionsFromProps)\n\n const selectedTimezone = useMemo(() => {\n return options.find((t) => {\n const value = typeof t === 'string' ? t : t.value\n return value === selectedTimezoneFromProps\n })\n }, [options, selectedTimezoneFromProps])\n\n const readOnly = Boolean(readOnlyFromProps) || options.length === 1\n\n return (\n <div className=\"timezone-picker-wrapper\">\n <span className=\"timezone-picker__label\">\n {t('general:timezone')}\n {required && <span className=\"timezone-picker__required\">*</span>}\n </span>\n <ReactSelect\n className=\"timezone-picker\"\n classNames={{\n menu: () => 'timezone-picker__menu',\n menuList: () => 'timezone-picker__menu-list',\n }}\n components={{\n ClearIndicator: SmallClearIndicator,\n DropdownIndicator: SmallDropdownIndicator,\n Option: TimezoneOption,\n }}\n customProps={{ menuPortalTheme: 'dark' }}\n disabled={readOnly}\n inputId={id}\n isClearable={!required}\n isCreatable={false}\n onChange={(val: OptionObject) => {\n if (onChangeFromProps) {\n onChangeFromProps(val?.value || '')\n }\n }}\n options={options}\n placeholder={t('general:none')}\n styles={\n {\n control: (base) => ({\n ...base,\n flexWrap: 'nowrap',\n }),\n option: (base) => ({\n ...base,\n alignItems: 'center',\n display: 'flex',\n gap: 'var(--spacer-1)',\n minWidth: 0,\n }),\n } as StylesConfig<OptionType>\n }\n value={selectedTimezone}\n />\n </div>\n )\n}\n"],"mappings":"AAAA;;;AAYA,SAASA,OAAO,QAAQ;AACxB,SAASC,UAAA,IAAcC,YAAY,QAAQ;AAK3C,SAASC,SAAS,QAAQ;AAC1B,SAASC,WAAW,QAAQ;AAC5B,SAASC,YAAY,QAAQ;AAC7B,SAASC,cAAc,QAAQ;AAC/B,SAASC,WAAW,QAAQ;AAC5B,SAASC,aAAa,QAAQ;AAC9B,OAAO;AAEP,MAAMC,sBAAA,GAIDC,KAAA;EACH,MAAM;IACJC,UAAA,EAAY;MAAEC,GAAG;MAAE,GAAGC;IAAA,CAAgB;IACtCC;EAAU,CACX,GAAGJ,KAAA;EAEJ,IAAII,UAAA,EAAY;IACd,OAAO;EACT;EAEA,oBACEC,IAAA,CAAC;IACCC,SAAA,EAAU;IACVJ,GAAA,EAAKA,GAAA;IACJ,GAAGC,cAAc;IAClBI,SAAA,EAAYC,CAAA;MACV,IAAIA,CAAA,CAAEC,GAAG,KAAK,SAAS;QACrBD,CAAA,CAAEC,GAAG,GAAG;MACV;IACF;IACAC,IAAA,EAAK;cAEL,aAAAL,IAAA,CAACX,WAAA;MAAYiB,IAAA,EAAM;;;AAGzB;AAEA,MAAMC,mBAAA,GAAwEZ,KAAA;EAC5E,MAAM;IACJa,UAAU;IACVZ,UAAA,EAAY;MAAEC,GAAG;MAAE,GAAGC;IAAA;EAAgB,CACvC,GAAGH,KAAA;EAEJ,oBACEK,IAAA,CAAC;IACCC,SAAA,EAAU;IACVJ,GAAA,EAAK,OAAOA,GAAA,KAAQ,WAAW,OAAOA,GAAA;IACrC,GAAGC,cAAc;IAClBI,SAAA,EAAYC,CAAA;MACV,IAAIA,CAAA,CAAEC,GAAG,KAAK,SAAS;QACrBI,UAAA;QACAL,CAAA,CAAEM,eAAe;MACnB;IACF;IACAC,IAAA,EAAK;IACLC,QAAA,EAAU;cAEV,aAAAX,IAAA,CAACV,YAAA;MAAagB,IAAA,EAAM;;;AAG1B;AAEA,MAAMM,cAAA,GAA4DjB,KAAA;EAChE,MAAM;IAAEkB;EAAQ,CAAE,GAAGlB,KAAA;EAErB,oBACEmB,KAAA,CAAC3B,YAAA,CAAa4B,MAAM;IAAE,GAAGpB,KAAK;4BAC5BK,IAAA,CAACZ,SAAA;MAAUa,SAAA,EAAU;MAAgCK,IAAA,EAAM;qBAC3DN,IAAA,CAAC;MAAKC,SAAA,EAAU;gBAAiCY;;;AAGvD;AAEA,OAAO,MAAMG,cAAA,GAAmCrB,KAAA;EAC9C,MAAM;IACJsB,EAAE;IACFC,QAAA,EAAUC,iBAAiB;IAC3BC,OAAA,EAASC,gBAAgB;IACzBC,QAAA,EAAUC,iBAAiB;IAC3BC,QAAQ;IACRC,gBAAA,EAAkBC;EAAyB,CAC5C,GAAG/B,KAAA;EAEJ,MAAM;IAAEgC;EAAC,CAAE,GAAGpC,cAAA;EAEd,MAAM6B,OAAA,GAAU3B,aAAA,CAAc4B,gBAAA;EAE9B,MAAMI,gBAAA,GAAmBxC,OAAA,CAAQ;IAC/B,OAAOmC,OAAA,CAAQQ,IAAI,CAAED,GAAA;MACnB,MAAME,KAAA,GAAQ,OAAOF,GAAA,KAAM,WAAWA,GAAA,GAAIA,GAAA,CAAEE,KAAK;MACjD,OAAOA,KAAA,KAAUH,yBAAA;IACnB;EACF,GAAG,CAACN,OAAA,EAASM,yBAAA,CAA0B;EAEvC,MAAMJ,QAAA,GAAWQ,OAAA,CAAQP,iBAAA,KAAsBH,OAAA,CAAQW,MAAM,KAAK;EAElE,oBACEjB,KAAA,CAAC;IAAIb,SAAA,EAAU;4BACba,KAAA,CAAC;MAAKb,SAAA,EAAU;iBACb0B,CAAA,CAAE,qBACFH,QAAA,iBAAYxB,IAAA,CAAC;QAAKC,SAAA,EAAU;kBAA4B;;qBAE3DD,IAAA,CAACR,WAAA;MACCS,SAAA,EAAU;MACV+B,UAAA,EAAY;QACVC,IAAA,EAAMA,CAAA,KAAM;QACZC,QAAA,EAAUA,CAAA,KAAM;MAClB;MACAhD,UAAA,EAAY;QACViD,cAAA,EAAgB5B,mBAAA;QAChB6B,iBAAA,EAAmB1C,sBAAA;QACnBqB,MAAA,EAAQH;MACV;MACAyB,WAAA,EAAa;QAAEC,eAAA,EAAiB;MAAO;MACvCC,QAAA,EAAUjB,QAAA;MACVkB,OAAA,EAASvB,EAAA;MACTwB,WAAA,EAAa,CAACjB,QAAA;MACdkB,WAAA,EAAa;MACbxB,QAAA,EAAWyB,GAAA;QACT,IAAIxB,iBAAA,EAAmB;UACrBA,iBAAA,CAAkBwB,GAAA,EAAKd,KAAA,IAAS;QAClC;MACF;MACAT,OAAA,EAASA,OAAA;MACTwB,WAAA,EAAajB,CAAA,CAAE;MACfkB,MAAA,EACE;QACEC,OAAA,EAAUC,IAAA,KAAU;UAClB,GAAGA,IAAI;UACPC,QAAA,EAAU;QACZ;QACAC,MAAA,EAASF,MAAA,KAAU;UACjB,GAAGA,MAAI;UACPG,UAAA,EAAY;UACZC,OAAA,EAAS;UACTC,GAAA,EAAK;UACLC,QAAA,EAAU;QACZ;MACF;MAEFxB,KAAA,EAAOJ;;;AAIf","ignoreList":[]}
@@ -4,15 +4,18 @@
4
4
  --caret-height: 7px;
5
5
  --caret-offset: 4px;
6
6
  --caret-border-color: var(--color-border);
7
- --tooltip-x: -50%;
8
7
  --tooltip-caret-x: 0px;
8
+ --tooltip-caret-y: 0px;
9
9
  --tooltip-max-width: none;
10
10
 
11
+ position: fixed;
12
+ top: 0;
13
+ left: 0;
14
+ z-index: var(--z-portal-element);
15
+ pointer-events: none;
16
+
11
17
  opacity: 0;
12
18
  background-color: var(--color-bg-tooltip);
13
- position: absolute;
14
- z-index: 3;
15
- left: 50%;
16
19
  max-width: var(--tooltip-max-width);
17
20
  padding: var(--spacer-1);
18
21
  color: var(--color-text-ontooltip);
@@ -26,6 +29,11 @@
26
29
  box-shadow: var(--elevation-300-tooltip);
27
30
  visibility: hidden;
28
31
 
32
+ &[data-wrap] {
33
+ white-space: normal;
34
+ overflow-wrap: break-word;
35
+ }
36
+
29
37
  &.field-error {
30
38
  background-color: var(--color-bg-danger);
31
39
  color: var(--color-text-ondanger);
@@ -51,11 +59,6 @@
51
59
  }
52
60
  }
53
61
 
54
- .tooltip--wrap {
55
- white-space: normal;
56
- overflow-wrap: break-word;
57
- }
58
-
59
62
  .tooltip__caret {
60
63
  position: absolute;
61
64
  pointer-events: none;
@@ -76,7 +79,6 @@
76
79
  .tooltip--show {
77
80
  visibility: visible;
78
81
  opacity: 1;
79
- transition: opacity 0.2s ease-in-out;
80
82
  cursor: default;
81
83
  }
82
84
 
@@ -94,13 +96,6 @@
94
96
  }
95
97
 
96
98
  .tooltip--position-top {
97
- top: 0;
98
- transform: translate3d(
99
- var(--tooltip-x),
100
- calc(-100% - var(--caret-height) - var(--caret-offset) + 1px),
101
- 0
102
- );
103
-
104
99
  .tooltip__caret {
105
100
  --color-border: var(--ramp-grey-700);
106
101
  top: calc(100% - 0.5px);
@@ -112,13 +107,6 @@
112
107
  }
113
108
 
114
109
  .tooltip--position-bottom {
115
- top: 100%;
116
- transform: translate3d(
117
- var(--tooltip-x),
118
- calc(var(--caret-height) + var(--caret-offset) - 1px),
119
- 0
120
- );
121
-
122
110
  .tooltip__caret {
123
111
  bottom: calc(100% - 0.5px);
124
112
  transform: rotate(180deg);
@@ -134,28 +122,21 @@
134
122
  }
135
123
 
136
124
  .tooltip--position-left {
137
- top: 50%;
138
- left: 0;
139
- transform: translate3d(calc(-100% - var(--caret-height) - var(--caret-offset)), -50%, 0);
140
-
141
125
  .tooltip__caret {
142
126
  top: calc(50% + 0.5px);
143
127
  left: calc(100% - 0.5px);
144
- transform: translateY(calc(1 * var(--caret-width) / 2)) rotate(-90deg);
128
+ transform: translateY(calc(1 * var(--caret-width) / 2 + var(--tooltip-caret-y)))
129
+ rotate(-90deg);
145
130
  transform-origin: top left;
146
131
  }
147
132
  }
148
133
 
149
134
  .tooltip--position-right {
150
- top: 50%;
151
- left: 100%;
152
- transform: translate3d(calc(var(--caret-height) + var(--caret-offset)), -50%, 0);
153
-
154
135
  .tooltip__caret {
155
136
  top: calc(50% + 0.5px);
156
137
  left: unset;
157
138
  right: calc(100% - 0.5px);
158
- transform: translateY(calc(1 * var(--caret-width) / 2)) rotate(90deg);
139
+ transform: translateY(calc(1 * var(--caret-width) / 2 + var(--tooltip-caret-y))) rotate(90deg);
159
140
  transform-origin: top right;
160
141
  }
161
142
  }
@@ -1,17 +1,25 @@
1
1
  import React from 'react';
2
2
  import './index.css';
3
+ type Side = 'bottom' | 'left' | 'right' | 'top';
3
4
  export type Props = {
4
5
  alignCaret?: 'center' | 'left' | 'right';
5
- boundingRef?: React.RefObject<HTMLElement | null>;
6
6
  children: React.ReactNode;
7
7
  className?: string;
8
8
  delay?: number;
9
- position?: 'bottom' | 'left' | 'right' | 'top';
9
+ /**
10
+ * Applied to the portaled tooltip element, so it can be located independent of its
11
+ * position in the DOM (e.g. by tests).
12
+ */
13
+ id?: string;
14
+ position?: Side;
10
15
  show?: boolean;
11
16
  /**
12
- * If the tooltip position should not change depending on if the toolbar is outside the boundingRef. @default false
17
+ * Disables adaptive placement: the tooltip always renders on `position` (or its
18
+ * default) instead of flipping to whichever side has room. It does not affect
19
+ * portaling - every tooltip is portaled to `document.body` regardless. @default false
13
20
  */
14
21
  staticPositioning?: boolean;
15
22
  };
16
23
  export declare const Tooltip: React.FC<Props>;
24
+ export {};
17
25
  //# sourceMappingURL=index.d.ts.map