@payloadcms/ui 4.0.0-internal.314c594 → 4.0.0-internal.31ba7ee

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 (952) hide show
  1. package/dist/css/app.css +1 -0
  2. package/dist/css/preflight.css +1 -0
  3. package/dist/css/spacing.css +3 -0
  4. package/dist/elements/APIKeyInput/index.d.ts +2 -0
  5. package/dist/elements/APIKeyInput/index.d.ts.map +1 -1
  6. package/dist/elements/APIKeyInput/index.js +27 -29
  7. package/dist/elements/APIKeyInput/index.js.map +1 -1
  8. package/dist/elements/AddNewRelation/index.css +0 -4
  9. package/dist/elements/AddNewRelation/index.d.ts.map +1 -1
  10. package/dist/elements/AddNewRelation/index.js +3 -2
  11. package/dist/elements/AddNewRelation/index.js.map +1 -1
  12. package/dist/elements/AppHeader/index.css +3 -0
  13. package/dist/elements/AppHeader/index.js +1 -1
  14. package/dist/elements/AppHeader/index.js.map +1 -1
  15. package/dist/elements/ArrayAction/index.d.ts +1 -0
  16. package/dist/elements/ArrayAction/index.d.ts.map +1 -1
  17. package/dist/elements/ArrayAction/index.js +35 -32
  18. package/dist/elements/ArrayAction/index.js.map +1 -1
  19. package/dist/elements/Autosave/index.d.ts.map +1 -1
  20. package/dist/elements/Autosave/index.js +2 -3
  21. package/dist/elements/Autosave/index.js.map +1 -1
  22. package/dist/elements/Banner/index.css +4 -0
  23. package/dist/elements/Banner/index.d.ts.map +1 -1
  24. package/dist/elements/Banner/index.js +1 -0
  25. package/dist/elements/Banner/index.js.map +1 -1
  26. package/dist/elements/BulkUpload/ActionsBar/index.css +1 -0
  27. package/dist/elements/BulkUpload/AddingFilesView/index.css +2 -4
  28. package/dist/elements/BulkUpload/FileSidebar/index.css +1 -0
  29. package/dist/elements/BulkUpload/FormsManager/createFormData.d.ts +1 -1
  30. package/dist/elements/BulkUpload/FormsManager/createFormData.d.ts.map +1 -1
  31. package/dist/elements/BulkUpload/FormsManager/createFormData.js +7 -3
  32. package/dist/elements/BulkUpload/FormsManager/createFormData.js.map +1 -1
  33. package/dist/elements/BulkUpload/FormsManager/index.d.ts.map +1 -1
  34. package/dist/elements/BulkUpload/FormsManager/index.js +18 -12
  35. package/dist/elements/BulkUpload/FormsManager/index.js.map +1 -1
  36. package/dist/elements/BulkUpload/index.css +2 -0
  37. package/dist/elements/Button/index.d.ts.map +1 -1
  38. package/dist/elements/Button/index.js +11 -0
  39. package/dist/elements/Button/index.js.map +1 -1
  40. package/dist/elements/Button/types.d.ts +8 -3
  41. package/dist/elements/Button/types.d.ts.map +1 -1
  42. package/dist/elements/Button/types.js.map +1 -1
  43. package/dist/elements/ClipboardAction/index.d.ts.map +1 -1
  44. package/dist/elements/ClipboardAction/index.js +1 -0
  45. package/dist/elements/ClipboardAction/index.js.map +1 -1
  46. package/dist/elements/Collapsible/index.css +1 -0
  47. package/dist/elements/ColumnSelection/Popup.css +8 -0
  48. package/dist/elements/ColumnSelection/Popup.d.ts.map +1 -1
  49. package/dist/elements/ColumnSelection/Popup.js +17 -14
  50. package/dist/elements/ColumnSelection/Popup.js.map +1 -1
  51. package/dist/elements/ColumnSelection/index.d.ts.map +1 -1
  52. package/dist/elements/ColumnSelection/index.js +59 -55
  53. package/dist/elements/ColumnSelection/index.js.map +1 -1
  54. package/dist/elements/Combobox/index.d.ts.map +1 -1
  55. package/dist/elements/Combobox/index.js +2 -0
  56. package/dist/elements/Combobox/index.js.map +1 -1
  57. package/dist/elements/CopyLocaleData/index.d.ts.map +1 -1
  58. package/dist/elements/CopyLocaleData/index.js +8 -9
  59. package/dist/elements/CopyLocaleData/index.js.map +1 -1
  60. package/dist/elements/CreateDocumentButton/index.d.ts.map +1 -1
  61. package/dist/elements/CreateDocumentButton/index.js +1 -0
  62. package/dist/elements/CreateDocumentButton/index.js.map +1 -1
  63. package/dist/elements/DatePicker/DatePicker.d.ts.map +1 -1
  64. package/dist/elements/DatePicker/DatePicker.js +113 -83
  65. package/dist/elements/DatePicker/DatePicker.js.map +1 -1
  66. package/dist/elements/DatePicker/index.css +7 -0
  67. package/dist/elements/DeleteMany/index.d.ts.map +1 -1
  68. package/dist/elements/DeleteMany/index.js +2 -3
  69. package/dist/elements/DeleteMany/index.js.map +1 -1
  70. package/dist/elements/Dialog/DialogModal/index.d.ts +1 -1
  71. package/dist/elements/Dialog/DialogModal/index.d.ts.map +1 -1
  72. package/dist/elements/Dialog/DialogModal/index.js +40 -28
  73. package/dist/elements/Dialog/DialogModal/index.js.map +1 -1
  74. package/dist/elements/Dialog/index.css +1 -0
  75. package/dist/elements/DocumentControls/index.css +1 -0
  76. package/dist/elements/DocumentControls/index.d.ts.map +1 -1
  77. package/dist/elements/DocumentControls/index.js +1 -0
  78. package/dist/elements/DocumentControls/index.js.map +1 -1
  79. package/dist/elements/DocumentDrawer/DrawerHeader/index.js +2 -2
  80. package/dist/elements/DocumentDrawer/DrawerHeader/index.js.map +1 -1
  81. package/dist/elements/DocumentDrawer/types.d.ts +1 -1
  82. package/dist/elements/DocumentDrawer/types.d.ts.map +1 -1
  83. package/dist/elements/DocumentDrawer/types.js.map +1 -1
  84. package/dist/elements/DocumentFields/index.css +2 -0
  85. package/dist/elements/DocumentHeader/Tabs/Tab/index.d.ts +1 -0
  86. package/dist/elements/DocumentHeader/Tabs/Tab/index.d.ts.map +1 -1
  87. package/dist/elements/DocumentHeader/Tabs/Tab/index.js +3 -3
  88. package/dist/elements/DocumentHeader/Tabs/Tab/index.js.map +1 -1
  89. package/dist/elements/DocumentHeader/Tabs/index.css +1 -0
  90. package/dist/elements/DocumentHeader/Tabs/index.d.ts +1 -0
  91. package/dist/elements/DocumentHeader/Tabs/index.d.ts.map +1 -1
  92. package/dist/elements/DocumentHeader/Tabs/index.js +5 -3
  93. package/dist/elements/DocumentHeader/Tabs/index.js.map +1 -1
  94. package/dist/elements/DocumentHeader/index.css +1 -0
  95. package/dist/elements/DocumentHeader/index.d.ts +1 -0
  96. package/dist/elements/DocumentHeader/index.d.ts.map +1 -1
  97. package/dist/elements/DocumentHeader/index.js +4 -2
  98. package/dist/elements/DocumentHeader/index.js.map +1 -1
  99. package/dist/elements/DraggableSortable/DraggableSortableItem/types.d.ts +1 -1
  100. package/dist/elements/DraggableSortable/DraggableSortableItem/types.d.ts.map +1 -1
  101. package/dist/elements/DraggableSortable/DraggableSortableItem/types.js.map +1 -1
  102. package/dist/elements/DraggableSortable/useDraggableSortable/index.d.ts.map +1 -1
  103. package/dist/elements/DraggableSortable/useDraggableSortable/index.js +11 -8
  104. package/dist/elements/DraggableSortable/useDraggableSortable/index.js.map +1 -1
  105. package/dist/elements/DraggableSortable/useDraggableSortable/types.d.ts +1 -0
  106. package/dist/elements/DraggableSortable/useDraggableSortable/types.d.ts.map +1 -1
  107. package/dist/elements/DraggableSortable/useDraggableSortable/types.js.map +1 -1
  108. package/dist/elements/Drawer/index.d.ts.map +1 -1
  109. package/dist/elements/Drawer/index.js +3 -1
  110. package/dist/elements/Drawer/index.js.map +1 -1
  111. package/dist/elements/Drawer/types.d.ts +2 -2
  112. package/dist/elements/Drawer/types.d.ts.map +1 -1
  113. package/dist/elements/Drawer/types.js.map +1 -1
  114. package/dist/elements/DuplicateDocument/index.d.ts.map +1 -1
  115. package/dist/elements/DuplicateDocument/index.js +2 -3
  116. package/dist/elements/DuplicateDocument/index.js.map +1 -1
  117. package/dist/elements/EditMany/DrawerContent.d.ts.map +1 -1
  118. package/dist/elements/EditMany/DrawerContent.js +2 -3
  119. package/dist/elements/EditMany/DrawerContent.js.map +1 -1
  120. package/dist/elements/EditUpload/index.css +2 -1
  121. package/dist/elements/EditUpload/index.js +53 -12
  122. package/dist/elements/EditUpload/index.js.map +1 -1
  123. package/dist/elements/FieldDiffContainer/index.css +1 -0
  124. package/dist/elements/FieldDiffContainer/index.js +1 -1
  125. package/dist/elements/FieldDiffContainer/index.js.map +1 -1
  126. package/dist/elements/FieldDiffLabel/index.css +1 -0
  127. package/dist/elements/FieldSelect/index.d.ts.map +1 -1
  128. package/dist/elements/FieldSelect/index.js +41 -24
  129. package/dist/elements/FieldSelect/index.js.map +1 -1
  130. package/dist/elements/FieldSelect/reduceFieldOptions.d.ts +5 -1
  131. package/dist/elements/FieldSelect/reduceFieldOptions.d.ts.map +1 -1
  132. package/dist/elements/FieldSelect/reduceFieldOptions.js +24 -4
  133. package/dist/elements/FieldSelect/reduceFieldOptions.js.map +1 -1
  134. package/dist/elements/FileDetails/StaticFileDetails/index.css +2 -0
  135. package/dist/elements/FileManager/FileToolbar/index.d.ts.map +1 -1
  136. package/dist/elements/FileManager/FileToolbar/index.js +1 -0
  137. package/dist/elements/FileManager/FileToolbar/index.js.map +1 -1
  138. package/dist/elements/FilterTrigger/index.d.ts +5 -1
  139. package/dist/elements/FilterTrigger/index.d.ts.map +1 -1
  140. package/dist/elements/FilterTrigger/index.js +6 -0
  141. package/dist/elements/FilterTrigger/index.js.map +1 -1
  142. package/dist/elements/FullscreenModal/index.d.ts.map +1 -1
  143. package/dist/elements/FullscreenModal/index.js +1 -1
  144. package/dist/elements/FullscreenModal/index.js.map +1 -1
  145. package/dist/elements/GroupBy/Popup.d.ts.map +1 -1
  146. package/dist/elements/GroupBy/Popup.js +74 -45
  147. package/dist/elements/GroupBy/Popup.js.map +1 -1
  148. package/dist/elements/GroupBy/index.d.ts.map +1 -1
  149. package/dist/elements/GroupBy/index.js +2 -0
  150. package/dist/elements/GroupBy/index.js.map +1 -1
  151. package/dist/elements/HTMLDiff/index.css +1 -0
  152. package/dist/elements/HTMLDiff/index.d.ts +3 -1
  153. package/dist/elements/HTMLDiff/index.d.ts.map +1 -1
  154. package/dist/elements/HTMLDiff/index.js +9 -3
  155. package/dist/elements/HTMLDiff/index.js.map +1 -1
  156. package/dist/elements/Hierarchy/ColumnBrowser/Column/index.css +3 -0
  157. package/dist/elements/Hierarchy/ColumnBrowser/Column/index.d.ts.map +1 -1
  158. package/dist/elements/Hierarchy/ColumnBrowser/Column/index.js +60 -47
  159. package/dist/elements/Hierarchy/ColumnBrowser/Column/index.js.map +1 -1
  160. package/dist/elements/Hierarchy/ColumnBrowser/ColumnItem/index.d.ts.map +1 -1
  161. package/dist/elements/Hierarchy/ColumnBrowser/ColumnItem/index.js +34 -27
  162. package/dist/elements/Hierarchy/ColumnBrowser/ColumnItem/index.js.map +1 -1
  163. package/dist/elements/Hierarchy/Field/index.server.d.ts +3 -2
  164. package/dist/elements/Hierarchy/Field/index.server.d.ts.map +1 -1
  165. package/dist/elements/Hierarchy/Field/index.server.js.map +1 -1
  166. package/dist/elements/Hierarchy/MoveMany/index.d.ts.map +1 -1
  167. package/dist/elements/Hierarchy/MoveMany/index.js +2 -3
  168. package/dist/elements/Hierarchy/MoveMany/index.js.map +1 -1
  169. package/dist/elements/Hierarchy/Search/index.d.ts.map +1 -1
  170. package/dist/elements/Hierarchy/Search/index.js +6 -7
  171. package/dist/elements/Hierarchy/Search/index.js.map +1 -1
  172. package/dist/elements/Hierarchy/Search/useHierarchySearch.d.ts.map +1 -1
  173. package/dist/elements/Hierarchy/Search/useHierarchySearch.js +2 -3
  174. package/dist/elements/Hierarchy/Search/useHierarchySearch.js.map +1 -1
  175. package/dist/elements/ItemsDrawer/index.css +3 -0
  176. package/dist/elements/ListControls/index.css +1 -0
  177. package/dist/elements/ListControls/index.d.ts.map +1 -1
  178. package/dist/elements/ListControls/index.js +8 -1
  179. package/dist/elements/ListControls/index.js.map +1 -1
  180. package/dist/elements/ListControls/types.d.ts +3 -1
  181. package/dist/elements/ListControls/types.d.ts.map +1 -1
  182. package/dist/elements/ListControls/types.js.map +1 -1
  183. package/dist/elements/ListControlsBar/index.css +1 -0
  184. package/dist/elements/ListHeader/DrawerTitleActions/ListDrawerCreateNewDocButton.js +1 -1
  185. package/dist/elements/ListHeader/DrawerTitleActions/ListDrawerCreateNewDocButton.js.map +1 -1
  186. package/dist/elements/ListHeader/TitleActions/ListEmptyTrashButton.d.ts.map +1 -1
  187. package/dist/elements/ListHeader/TitleActions/ListEmptyTrashButton.js +3 -4
  188. package/dist/elements/ListHeader/TitleActions/ListEmptyTrashButton.js.map +1 -1
  189. package/dist/elements/LivePreview/Toolbar/Controls/index.d.ts.map +1 -1
  190. package/dist/elements/LivePreview/Toolbar/Controls/index.js +3 -0
  191. package/dist/elements/LivePreview/Toolbar/Controls/index.js.map +1 -1
  192. package/dist/elements/LivePreview/Window/index.css +1 -0
  193. package/dist/elements/LivePreview/Window/index.js +1 -1
  194. package/dist/elements/LivePreview/Window/index.js.map +1 -1
  195. package/dist/elements/Loading/index.d.ts.map +1 -1
  196. package/dist/elements/Loading/index.js +1 -0
  197. package/dist/elements/Loading/index.js.map +1 -1
  198. package/dist/elements/Localizer/index.d.ts +3 -6
  199. package/dist/elements/Localizer/index.d.ts.map +1 -1
  200. package/dist/elements/Localizer/index.js +20 -12
  201. package/dist/elements/Localizer/index.js.map +1 -1
  202. package/dist/elements/Modal/index.d.ts +5 -1
  203. package/dist/elements/Modal/index.d.ts.map +1 -1
  204. package/dist/elements/Modal/index.js +69 -1
  205. package/dist/elements/Modal/index.js.map +1 -1
  206. package/dist/elements/Nav/SettingsMenuButton/index.d.ts.map +1 -1
  207. package/dist/elements/Nav/SettingsMenuButton/index.js +1 -0
  208. package/dist/elements/Nav/SettingsMenuButton/index.js.map +1 -1
  209. package/dist/elements/Nav/SidebarTabs/renderTabServerFn.js +3 -2
  210. package/dist/elements/Nav/SidebarTabs/renderTabServerFn.js.map +1 -1
  211. package/dist/elements/Nav/getNavPrefs.d.ts.map +1 -1
  212. package/dist/elements/Nav/getNavPrefs.js +2 -0
  213. package/dist/elements/Nav/getNavPrefs.js.map +1 -1
  214. package/dist/elements/Nav/index.css +2 -0
  215. package/dist/elements/PageControls/GroupByPageControls.d.ts +1 -0
  216. package/dist/elements/PageControls/GroupByPageControls.d.ts.map +1 -1
  217. package/dist/elements/PageControls/GroupByPageControls.js +9 -6
  218. package/dist/elements/PageControls/GroupByPageControls.js.map +1 -1
  219. package/dist/elements/PageControls/index.css +1 -0
  220. package/dist/elements/PageControls/index.d.ts +3 -0
  221. package/dist/elements/PageControls/index.d.ts.map +1 -1
  222. package/dist/elements/PageControls/index.js +42 -27
  223. package/dist/elements/PageControls/index.js.map +1 -1
  224. package/dist/elements/Pagination/ClickableArrow/index.d.ts +1 -0
  225. package/dist/elements/Pagination/ClickableArrow/index.d.ts.map +1 -1
  226. package/dist/elements/Pagination/ClickableArrow/index.js +46 -10
  227. package/dist/elements/Pagination/ClickableArrow/index.js.map +1 -1
  228. package/dist/elements/Pagination/SimplePagination/index.d.ts +1 -0
  229. package/dist/elements/Pagination/SimplePagination/index.d.ts.map +1 -1
  230. package/dist/elements/Pagination/SimplePagination/index.js +14 -8
  231. package/dist/elements/Pagination/SimplePagination/index.js.map +1 -1
  232. package/dist/elements/Pagination/index.d.ts +1 -0
  233. package/dist/elements/Pagination/index.d.ts.map +1 -1
  234. package/dist/elements/Pagination/index.js +36 -17
  235. package/dist/elements/Pagination/index.js.map +1 -1
  236. package/dist/elements/PerPage/index.d.ts +1 -0
  237. package/dist/elements/PerPage/index.d.ts.map +1 -1
  238. package/dist/elements/PerPage/index.js +24 -15
  239. package/dist/elements/PerPage/index.js.map +1 -1
  240. package/dist/elements/PillSelector/index.css +1 -0
  241. package/dist/elements/Popup/PopupButtonList/index.d.ts +8 -0
  242. package/dist/elements/Popup/PopupButtonList/index.d.ts.map +1 -1
  243. package/dist/elements/Popup/PopupButtonList/index.js +50 -6
  244. package/dist/elements/Popup/PopupButtonList/index.js.map +1 -1
  245. package/dist/elements/Popup/PopupTrigger/index.d.ts +9 -2
  246. package/dist/elements/Popup/PopupTrigger/index.d.ts.map +1 -1
  247. package/dist/elements/Popup/PopupTrigger/index.js +58 -6
  248. package/dist/elements/Popup/PopupTrigger/index.js.map +1 -1
  249. package/dist/elements/Popup/index.css +4 -2
  250. package/dist/elements/Popup/index.d.ts +6 -27
  251. package/dist/elements/Popup/index.d.ts.map +1 -1
  252. package/dist/elements/Popup/index.js +114 -75
  253. package/dist/elements/Popup/index.js.map +1 -1
  254. package/dist/elements/PreviewSizes/index.css +2 -0
  255. package/dist/elements/PublishButton/ScheduleDrawer/index.d.ts.map +1 -1
  256. package/dist/elements/PublishButton/ScheduleDrawer/index.js +8 -30
  257. package/dist/elements/PublishButton/ScheduleDrawer/index.js.map +1 -1
  258. package/dist/elements/PublishButton/ScheduleDrawer/types.d.ts +1 -1
  259. package/dist/elements/PublishButton/ScheduleDrawer/types.d.ts.map +1 -1
  260. package/dist/elements/PublishButton/ScheduleDrawer/types.js.map +1 -1
  261. package/dist/elements/PublishButton/index.css +1 -0
  262. package/dist/elements/PublishButton/index.d.ts.map +1 -1
  263. package/dist/elements/PublishButton/index.js +16 -31
  264. package/dist/elements/PublishButton/index.js.map +1 -1
  265. package/dist/elements/PublishMany/DrawerContent.d.ts.map +1 -1
  266. package/dist/elements/PublishMany/DrawerContent.js +2 -3
  267. package/dist/elements/PublishMany/DrawerContent.js.map +1 -1
  268. package/dist/elements/QueryPresets/QueryPresetBar/index.d.ts.map +1 -1
  269. package/dist/elements/QueryPresets/QueryPresetBar/index.js +18 -2
  270. package/dist/elements/QueryPresets/QueryPresetBar/index.js.map +1 -1
  271. package/dist/elements/QueryPresets/fields/ColumnsField/index.d.ts +3 -2
  272. package/dist/elements/QueryPresets/fields/ColumnsField/index.d.ts.map +1 -1
  273. package/dist/elements/QueryPresets/fields/ColumnsField/index.js.map +1 -1
  274. package/dist/elements/QueryPresets/fields/GroupByField/index.d.ts +3 -2
  275. package/dist/elements/QueryPresets/fields/GroupByField/index.d.ts.map +1 -1
  276. package/dist/elements/QueryPresets/fields/GroupByField/index.js.map +1 -1
  277. package/dist/elements/QueryPresets/fields/Heading/index.css +1 -0
  278. package/dist/elements/QueryPresets/fields/WhereField/index.d.ts +3 -2
  279. package/dist/elements/QueryPresets/fields/WhereField/index.d.ts.map +1 -1
  280. package/dist/elements/QueryPresets/fields/WhereField/index.js.map +1 -1
  281. package/dist/elements/ReactSelect/ClearIndicator/index.css +5 -0
  282. package/dist/elements/ReactSelect/ClearIndicator/index.d.ts.map +1 -1
  283. package/dist/elements/ReactSelect/ClearIndicator/index.js +51 -20
  284. package/dist/elements/ReactSelect/ClearIndicator/index.js.map +1 -1
  285. package/dist/elements/ReactSelect/DefaultMenuPortal.d.ts.map +1 -1
  286. package/dist/elements/ReactSelect/DefaultMenuPortal.js +2 -1
  287. package/dist/elements/ReactSelect/DefaultMenuPortal.js.map +1 -1
  288. package/dist/elements/ReactSelect/DropdownIndicator/index.d.ts +2 -4
  289. package/dist/elements/ReactSelect/DropdownIndicator/index.d.ts.map +1 -1
  290. package/dist/elements/ReactSelect/DropdownIndicator/index.js +16 -21
  291. package/dist/elements/ReactSelect/DropdownIndicator/index.js.map +1 -1
  292. package/dist/elements/ReactSelect/MultiValue/context.d.ts +6 -0
  293. package/dist/elements/ReactSelect/MultiValue/context.d.ts.map +1 -0
  294. package/dist/elements/ReactSelect/MultiValue/context.js +5 -0
  295. package/dist/elements/ReactSelect/MultiValue/context.js.map +1 -0
  296. package/dist/elements/ReactSelect/MultiValue/index.css +5 -0
  297. package/dist/elements/ReactSelect/MultiValue/index.d.ts.map +1 -1
  298. package/dist/elements/ReactSelect/MultiValue/index.js +89 -35
  299. package/dist/elements/ReactSelect/MultiValue/index.js.map +1 -1
  300. package/dist/elements/ReactSelect/MultiValueLabel/index.css +41 -1
  301. package/dist/elements/ReactSelect/MultiValueLabel/index.d.ts +5 -1
  302. package/dist/elements/ReactSelect/MultiValueLabel/index.d.ts.map +1 -1
  303. package/dist/elements/ReactSelect/MultiValueLabel/index.js +49 -4
  304. package/dist/elements/ReactSelect/MultiValueLabel/index.js.map +1 -1
  305. package/dist/elements/ReactSelect/MultiValueRemove/index.css +30 -4
  306. package/dist/elements/ReactSelect/MultiValueRemove/index.d.ts.map +1 -1
  307. package/dist/elements/ReactSelect/MultiValueRemove/index.js +92 -66
  308. package/dist/elements/ReactSelect/MultiValueRemove/index.js.map +1 -1
  309. package/dist/elements/ReactSelect/Option/index.d.ts +6 -0
  310. package/dist/elements/ReactSelect/Option/index.d.ts.map +1 -0
  311. package/dist/elements/ReactSelect/Option/index.js +30 -0
  312. package/dist/elements/ReactSelect/Option/index.js.map +1 -0
  313. package/dist/elements/ReactSelect/index.d.ts.map +1 -1
  314. package/dist/elements/ReactSelect/index.js +4 -1
  315. package/dist/elements/ReactSelect/index.js.map +1 -1
  316. package/dist/elements/ReactSelect/types.d.ts +7 -1
  317. package/dist/elements/ReactSelect/types.d.ts.map +1 -1
  318. package/dist/elements/ReactSelect/types.js.map +1 -1
  319. package/dist/elements/RelationshipTable/AddNewButton.d.ts.map +1 -1
  320. package/dist/elements/RelationshipTable/AddNewButton.js +1 -0
  321. package/dist/elements/RelationshipTable/AddNewButton.js.map +1 -1
  322. package/dist/elements/RelationshipTable/index.d.ts.map +1 -1
  323. package/dist/elements/RelationshipTable/index.js +61 -57
  324. package/dist/elements/RelationshipTable/index.js.map +1 -1
  325. package/dist/elements/RenderTitle/index.css +1 -0
  326. package/dist/elements/RestoreMany/index.d.ts.map +1 -1
  327. package/dist/elements/RestoreMany/index.js +2 -3
  328. package/dist/elements/RestoreMany/index.js.map +1 -1
  329. package/dist/elements/SaveDraftButton/index.d.ts.map +1 -1
  330. package/dist/elements/SaveDraftButton/index.js +2 -3
  331. package/dist/elements/SaveDraftButton/index.js.map +1 -1
  332. package/dist/elements/SelectRow/index.d.ts +1 -0
  333. package/dist/elements/SelectRow/index.d.ts.map +1 -1
  334. package/dist/elements/SelectRow/index.js +35 -27
  335. package/dist/elements/SelectRow/index.js.map +1 -1
  336. package/dist/elements/SortColumn/index.d.ts.map +1 -1
  337. package/dist/elements/SortColumn/index.js +63 -95
  338. package/dist/elements/SortColumn/index.js.map +1 -1
  339. package/dist/elements/SortHeader/index.d.ts.map +1 -1
  340. package/dist/elements/SortHeader/index.js +18 -36
  341. package/dist/elements/SortHeader/index.js.map +1 -1
  342. package/dist/elements/Status/index.d.ts.map +1 -1
  343. package/dist/elements/Status/index.js +2 -3
  344. package/dist/elements/Status/index.js.map +1 -1
  345. package/dist/elements/StepNav/index.d.ts.map +1 -1
  346. package/dist/elements/StepNav/index.js +1 -0
  347. package/dist/elements/StepNav/index.js.map +1 -1
  348. package/dist/elements/Switch/index.d.ts +1 -0
  349. package/dist/elements/Switch/index.d.ts.map +1 -1
  350. package/dist/elements/Switch/index.js +18 -16
  351. package/dist/elements/Switch/index.js.map +1 -1
  352. package/dist/elements/Table/DefaultCell/fields/File/index.css +18 -13
  353. package/dist/elements/Table/DefaultCell/fields/Hierarchy/index.css +26 -7
  354. package/dist/elements/Table/DefaultCell/fields/Hierarchy/index.js +3 -3
  355. package/dist/elements/Table/DefaultCell/fields/Hierarchy/index.js.map +1 -1
  356. package/dist/elements/Table/GridNavigation/useGridNavigation.d.ts +8 -0
  357. package/dist/elements/Table/GridNavigation/useGridNavigation.d.ts.map +1 -0
  358. package/dist/elements/Table/GridNavigation/useGridNavigation.js +397 -0
  359. package/dist/elements/Table/GridNavigation/useGridNavigation.js.map +1 -0
  360. package/dist/elements/Table/OrderableTable.d.ts +1 -0
  361. package/dist/elements/Table/OrderableTable.d.ts.map +1 -1
  362. package/dist/elements/Table/OrderableTable.js +8 -5
  363. package/dist/elements/Table/OrderableTable.js.map +1 -1
  364. package/dist/elements/Table/RelationshipProvider/index.d.ts.map +1 -1
  365. package/dist/elements/Table/RelationshipProvider/index.js +2 -3
  366. package/dist/elements/Table/RelationshipProvider/index.js.map +1 -1
  367. package/dist/elements/Table/TableIdentity.d.ts +10 -0
  368. package/dist/elements/Table/TableIdentity.d.ts.map +1 -0
  369. package/dist/elements/Table/TableIdentity.js +52 -0
  370. package/dist/elements/Table/TableIdentity.js.map +1 -0
  371. package/dist/elements/Table/index.css +24 -3
  372. package/dist/elements/Table/index.d.ts +3 -0
  373. package/dist/elements/Table/index.d.ts.map +1 -1
  374. package/dist/elements/Table/index.js +72 -29
  375. package/dist/elements/Table/index.js.map +1 -1
  376. package/dist/elements/Table/useAriaSort.d.ts +7 -0
  377. package/dist/elements/Table/useAriaSort.d.ts.map +1 -0
  378. package/dist/elements/Table/useAriaSort.js +53 -0
  379. package/dist/elements/Table/useAriaSort.js.map +1 -0
  380. package/dist/elements/TableSection/index.css +1 -0
  381. package/dist/elements/Tabs/index.css +1 -0
  382. package/dist/elements/Thumbnail/index.css +1 -0
  383. package/dist/elements/ThumbnailCard/index.d.ts.map +1 -1
  384. package/dist/elements/ThumbnailCard/index.js +10 -8
  385. package/dist/elements/ThumbnailCard/index.js.map +1 -1
  386. package/dist/elements/TimezonePicker/index.css +1 -0
  387. package/dist/elements/Tooltip/index.css +7 -0
  388. package/dist/elements/Tooltip/index.d.ts +1 -1
  389. package/dist/elements/Tooltip/index.js +1 -1
  390. package/dist/elements/Tooltip/index.js.map +1 -1
  391. package/dist/elements/UnpublishButton/index.d.ts.map +1 -1
  392. package/dist/elements/UnpublishButton/index.js +3 -4
  393. package/dist/elements/UnpublishButton/index.js.map +1 -1
  394. package/dist/elements/UnpublishMany/DrawerContent.d.ts.map +1 -1
  395. package/dist/elements/UnpublishMany/DrawerContent.js +2 -3
  396. package/dist/elements/UnpublishMany/DrawerContent.js.map +1 -1
  397. package/dist/elements/UserMenu/LanguageMenu/index.d.ts.map +1 -1
  398. package/dist/elements/UserMenu/LanguageMenu/index.js +3 -0
  399. package/dist/elements/UserMenu/LanguageMenu/index.js.map +1 -1
  400. package/dist/elements/UserMenu/SettingsMenu/index.d.ts.map +1 -1
  401. package/dist/elements/UserMenu/SettingsMenu/index.js +3 -0
  402. package/dist/elements/UserMenu/SettingsMenu/index.js.map +1 -1
  403. package/dist/elements/UserMenu/SubMenuHeader/index.d.ts.map +1 -1
  404. package/dist/elements/UserMenu/SubMenuHeader/index.js +2 -0
  405. package/dist/elements/UserMenu/SubMenuHeader/index.js.map +1 -1
  406. package/dist/elements/UserMenu/ThemeMenu/index.d.ts.map +1 -1
  407. package/dist/elements/UserMenu/ThemeMenu/index.js +3 -0
  408. package/dist/elements/UserMenu/ThemeMenu/index.js.map +1 -1
  409. package/dist/elements/UserMenu/index.d.ts.map +1 -1
  410. package/dist/elements/UserMenu/index.js +21 -4
  411. package/dist/elements/UserMenu/index.js.map +1 -1
  412. package/dist/elements/WhereBuilder/Condition/Relationship/index.js +1 -1
  413. package/dist/elements/WhereBuilder/Condition/Relationship/index.js.map +1 -1
  414. package/dist/elements/WhereBuilder/Condition/index.css +1 -0
  415. package/dist/elements/WhereBuilder/Condition/index.d.ts.map +1 -1
  416. package/dist/elements/WhereBuilder/Condition/index.js +7 -1
  417. package/dist/elements/WhereBuilder/Condition/index.js.map +1 -1
  418. package/dist/elements/WhereBuilder/index.css +2 -0
  419. package/dist/exports/shared/index.js +1 -1
  420. package/dist/exports/shared/index.js.map +3 -3
  421. package/dist/fields/Array/ArrayRow.d.ts.map +1 -1
  422. package/dist/fields/Array/ArrayRow.js +1 -0
  423. package/dist/fields/Array/ArrayRow.js.map +1 -1
  424. package/dist/fields/Array/index.css +1 -0
  425. package/dist/fields/Array/index.d.ts +3 -7
  426. package/dist/fields/Array/index.d.ts.map +1 -1
  427. package/dist/fields/Array/index.js +10 -7
  428. package/dist/fields/Array/index.js.map +1 -1
  429. package/dist/fields/Blocks/RowActions.d.ts.map +1 -1
  430. package/dist/fields/Blocks/RowActions.js +25 -16
  431. package/dist/fields/Blocks/RowActions.js.map +1 -1
  432. package/dist/fields/Blocks/index.css +1 -0
  433. package/dist/fields/Blocks/index.d.ts +2 -5
  434. package/dist/fields/Blocks/index.d.ts.map +1 -1
  435. package/dist/fields/Blocks/index.js +10 -7
  436. package/dist/fields/Blocks/index.js.map +1 -1
  437. package/dist/fields/Checkbox/Input.d.ts +2 -2
  438. package/dist/fields/Checkbox/Input.d.ts.map +1 -1
  439. package/dist/fields/Checkbox/Input.js +134 -152
  440. package/dist/fields/Checkbox/Input.js.map +1 -1
  441. package/dist/fields/Checkbox/index.css +185 -155
  442. package/dist/fields/Checkbox/index.d.ts +2 -12
  443. package/dist/fields/Checkbox/index.d.ts.map +1 -1
  444. package/dist/fields/Checkbox/index.js.map +1 -1
  445. package/dist/fields/Code/index.d.ts +2 -8
  446. package/dist/fields/Code/index.d.ts.map +1 -1
  447. package/dist/fields/Code/index.js.map +1 -1
  448. package/dist/fields/Collapsible/index.d.ts +2 -3
  449. package/dist/fields/Collapsible/index.d.ts.map +1 -1
  450. package/dist/fields/Collapsible/index.js.map +1 -1
  451. package/dist/fields/DateTime/index.d.ts +3 -7
  452. package/dist/fields/DateTime/index.d.ts.map +1 -1
  453. package/dist/fields/DateTime/index.js +1 -1
  454. package/dist/fields/DateTime/index.js.map +1 -1
  455. package/dist/fields/Email/index.d.ts +2 -7
  456. package/dist/fields/Email/index.d.ts.map +1 -1
  457. package/dist/fields/Email/index.js.map +1 -1
  458. package/dist/fields/FieldLabel/index.d.ts.map +1 -1
  459. package/dist/fields/FieldLabel/index.js +4 -5
  460. package/dist/fields/FieldLabel/index.js.map +1 -1
  461. package/dist/fields/Group/index.css +1 -0
  462. package/dist/fields/Group/index.d.ts +3 -5
  463. package/dist/fields/Group/index.d.ts.map +1 -1
  464. package/dist/fields/Group/index.js.map +1 -1
  465. package/dist/fields/JSON/index.d.ts +2 -6
  466. package/dist/fields/JSON/index.d.ts.map +1 -1
  467. package/dist/fields/JSON/index.js.map +1 -1
  468. package/dist/fields/Join/index.d.ts +2 -6
  469. package/dist/fields/Join/index.d.ts.map +1 -1
  470. package/dist/fields/Join/index.js.map +1 -1
  471. package/dist/fields/Number/index.d.ts +2 -7
  472. package/dist/fields/Number/index.d.ts.map +1 -1
  473. package/dist/fields/Number/index.js.map +1 -1
  474. package/dist/fields/Point/index.d.ts +3 -8
  475. package/dist/fields/Point/index.d.ts.map +1 -1
  476. package/dist/fields/Point/index.js.map +1 -1
  477. package/dist/fields/RadioGroup/index.js.map +1 -1
  478. package/dist/fields/Relationship/Input.d.ts.map +1 -1
  479. package/dist/fields/Relationship/Input.js +2 -3
  480. package/dist/fields/Relationship/Input.js.map +1 -1
  481. package/dist/fields/Relationship/index.d.ts +2 -6
  482. package/dist/fields/Relationship/index.d.ts.map +1 -1
  483. package/dist/fields/Relationship/index.js.map +1 -1
  484. package/dist/fields/Relationship/select-components/MultiValueLabel/index.d.ts.map +1 -1
  485. package/dist/fields/Relationship/select-components/MultiValueLabel/index.js +24 -2
  486. package/dist/fields/Relationship/select-components/MultiValueLabel/index.js.map +1 -1
  487. package/dist/fields/Row/index.css +2 -0
  488. package/dist/fields/Row/index.d.ts +2 -3
  489. package/dist/fields/Row/index.d.ts.map +1 -1
  490. package/dist/fields/Row/index.js.map +1 -1
  491. package/dist/fields/Select/index.d.ts +2 -9
  492. package/dist/fields/Select/index.d.ts.map +1 -1
  493. package/dist/fields/Select/index.js.map +1 -1
  494. package/dist/fields/Slug/index.d.ts.map +1 -1
  495. package/dist/fields/Slug/index.js +2 -3
  496. package/dist/fields/Slug/index.js.map +1 -1
  497. package/dist/fields/Tabs/index.css +1 -0
  498. package/dist/fields/Tabs/index.d.ts +2 -4
  499. package/dist/fields/Tabs/index.d.ts.map +1 -1
  500. package/dist/fields/Tabs/index.js.map +1 -1
  501. package/dist/fields/Text/index.d.ts +2 -8
  502. package/dist/fields/Text/index.d.ts.map +1 -1
  503. package/dist/fields/Text/index.js.map +1 -1
  504. package/dist/fields/Textarea/index.d.ts +2 -9
  505. package/dist/fields/Textarea/index.d.ts.map +1 -1
  506. package/dist/fields/Textarea/index.js.map +1 -1
  507. package/dist/fields/Upload/Input.d.ts.map +1 -1
  508. package/dist/fields/Upload/Input.js +2 -3
  509. package/dist/fields/Upload/Input.js.map +1 -1
  510. package/dist/fields/shared/index.d.ts +1 -1
  511. package/dist/fields/shared/index.d.ts.map +1 -1
  512. package/dist/fields/shared/index.js.map +1 -1
  513. package/dist/fields/shared/useRowFocus.d.ts +5 -0
  514. package/dist/fields/shared/useRowFocus.d.ts.map +1 -0
  515. package/dist/fields/shared/useRowFocus.js +50 -0
  516. package/dist/fields/shared/useRowFocus.js.map +1 -0
  517. package/dist/forms/Form/context.d.ts +3 -1
  518. package/dist/forms/Form/context.d.ts.map +1 -1
  519. package/dist/forms/Form/context.js +3 -1
  520. package/dist/forms/Form/context.js.map +1 -1
  521. package/dist/forms/Form/index.d.ts.map +1 -1
  522. package/dist/forms/Form/index.js +15 -7
  523. package/dist/forms/Form/index.js.map +1 -1
  524. package/dist/forms/NullifyField/index.d.ts.map +1 -1
  525. package/dist/forms/NullifyField/index.js +2 -3
  526. package/dist/forms/NullifyField/index.js.map +1 -1
  527. package/dist/forms/RenderFields/context.d.ts +2 -2
  528. package/dist/forms/RenderFields/context.js +2 -2
  529. package/dist/forms/RenderFields/context.js.map +1 -1
  530. package/dist/forms/RenderFields/index.css +1 -0
  531. package/dist/forms/fieldSchemasToFormState/addFieldStatePromise.d.ts.map +1 -1
  532. package/dist/forms/fieldSchemasToFormState/addFieldStatePromise.js +12 -4
  533. package/dist/forms/fieldSchemasToFormState/addFieldStatePromise.js.map +1 -1
  534. package/dist/forms/fieldSchemasToFormState/renderField.d.ts.map +1 -1
  535. package/dist/forms/fieldSchemasToFormState/renderField.js +3 -2
  536. package/dist/forms/fieldSchemasToFormState/renderField.js.map +1 -1
  537. package/dist/forms/fieldSchemasToFormState/serverFunctions/mergeAllowedFieldOverrides.d.ts +12 -0
  538. package/dist/forms/fieldSchemasToFormState/serverFunctions/mergeAllowedFieldOverrides.d.ts.map +1 -0
  539. package/dist/forms/fieldSchemasToFormState/serverFunctions/mergeAllowedFieldOverrides.js +42 -0
  540. package/dist/forms/fieldSchemasToFormState/serverFunctions/mergeAllowedFieldOverrides.js.map +1 -0
  541. package/dist/forms/fieldSchemasToFormState/serverFunctions/renderFieldServerFn.d.ts +8 -6
  542. package/dist/forms/fieldSchemasToFormState/serverFunctions/renderFieldServerFn.d.ts.map +1 -1
  543. package/dist/forms/fieldSchemasToFormState/serverFunctions/renderFieldServerFn.js +22 -9
  544. package/dist/forms/fieldSchemasToFormState/serverFunctions/renderFieldServerFn.js.map +1 -1
  545. package/dist/forms/fieldSchemasToFormState/types.d.ts +1 -0
  546. package/dist/forms/fieldSchemasToFormState/types.d.ts.map +1 -1
  547. package/dist/forms/fieldSchemasToFormState/types.js.map +1 -1
  548. package/dist/graphics/Logo/index.d.ts.map +1 -1
  549. package/dist/graphics/Logo/index.js +2 -0
  550. package/dist/graphics/Logo/index.js.map +1 -1
  551. package/dist/hooks/useControllableState.js +3 -3
  552. package/dist/hooks/useControllableState.js.map +1 -1
  553. package/dist/hooks/usePayloadAPI.d.ts.map +1 -1
  554. package/dist/hooks/usePayloadAPI.js +2 -3
  555. package/dist/hooks/usePayloadAPI.js.map +1 -1
  556. package/dist/layouts/Root/ResolveThemeOnClient.d.ts +12 -0
  557. package/dist/layouts/Root/ResolveThemeOnClient.d.ts.map +1 -0
  558. package/dist/layouts/Root/ResolveThemeOnClient.js +35 -0
  559. package/dist/layouts/Root/ResolveThemeOnClient.js.map +1 -0
  560. package/dist/layouts/Root/index.d.ts +3 -6
  561. package/dist/layouts/Root/index.d.ts.map +1 -1
  562. package/dist/layouts/Root/index.js +18 -13
  563. package/dist/layouts/Root/index.js.map +1 -1
  564. package/dist/providers/DocumentInfo/index.d.ts.map +1 -1
  565. package/dist/providers/DocumentInfo/index.js +32 -24
  566. package/dist/providers/DocumentInfo/index.js.map +1 -1
  567. package/dist/providers/DocumentInfo/types.d.ts +0 -10
  568. package/dist/providers/DocumentInfo/types.d.ts.map +1 -1
  569. package/dist/providers/DocumentInfo/types.js.map +1 -1
  570. package/dist/providers/LivePreview/index.d.ts.map +1 -1
  571. package/dist/providers/LivePreview/index.js +13 -6
  572. package/dist/providers/LivePreview/index.js.map +1 -1
  573. package/dist/providers/Locale/index.d.ts +1 -5
  574. package/dist/providers/Locale/index.d.ts.map +1 -1
  575. package/dist/providers/Locale/index.js +61 -140
  576. package/dist/providers/Locale/index.js.map +1 -1
  577. package/dist/providers/ModalAccessibility/index.d.ts +3 -0
  578. package/dist/providers/ModalAccessibility/index.d.ts.map +1 -0
  579. package/dist/providers/ModalAccessibility/index.js +102 -0
  580. package/dist/providers/ModalAccessibility/index.js.map +1 -0
  581. package/dist/providers/Root/index.d.ts.map +1 -1
  582. package/dist/providers/Root/index.js +7 -6
  583. package/dist/providers/Root/index.js.map +1 -1
  584. package/dist/providers/Selection/index.d.ts.map +1 -1
  585. package/dist/providers/Selection/index.js +2 -3
  586. package/dist/providers/Selection/index.js.map +1 -1
  587. package/dist/providers/ServerFunctions/index.d.ts +5 -1
  588. package/dist/providers/ServerFunctions/index.d.ts.map +1 -1
  589. package/dist/providers/ServerFunctions/index.js +15 -0
  590. package/dist/providers/ServerFunctions/index.js.map +1 -1
  591. package/dist/providers/TableColumns/buildColumnState/index.d.ts.map +1 -1
  592. package/dist/providers/TableColumns/buildColumnState/index.js +0 -1
  593. package/dist/providers/TableColumns/buildColumnState/index.js.map +1 -1
  594. package/dist/providers/ToastContainer/index.d.ts.map +1 -1
  595. package/dist/providers/ToastContainer/index.js +100 -33
  596. package/dist/providers/ToastContainer/index.js.map +1 -1
  597. package/dist/styles.css +5 -1
  598. package/dist/templates/Default/Wrapper/index.css +2 -0
  599. package/dist/templates/Default/index.css +1 -0
  600. package/dist/utilities/buildFormState.d.ts.map +1 -1
  601. package/dist/utilities/buildFormState.js +6 -2
  602. package/dist/utilities/buildFormState.js.map +1 -1
  603. package/dist/utilities/formatAbsoluteURL.d.ts +1 -1
  604. package/dist/utilities/formatAbsoluteURL.d.ts.map +1 -1
  605. package/dist/utilities/formatAbsoluteURL.js +18 -8
  606. package/dist/utilities/formatAbsoluteURL.js.map +1 -1
  607. package/dist/utilities/getActiveModal.d.ts +6 -0
  608. package/dist/utilities/getActiveModal.d.ts.map +1 -0
  609. package/dist/utilities/getActiveModal.js +8 -0
  610. package/dist/utilities/getActiveModal.js.map +1 -0
  611. package/dist/utilities/getDocPreferences.d.ts.map +1 -1
  612. package/dist/utilities/getDocPreferences.js +1 -0
  613. package/dist/utilities/getDocPreferences.js.map +1 -1
  614. package/dist/utilities/getHasScheduledPublish.d.ts +2 -3
  615. package/dist/utilities/getHasScheduledPublish.d.ts.map +1 -1
  616. package/dist/utilities/getHasScheduledPublish.js +2 -5
  617. package/dist/utilities/getHasScheduledPublish.js.map +1 -1
  618. package/dist/utilities/getPreferences.d.ts.map +1 -1
  619. package/dist/utilities/getPreferences.js +1 -0
  620. package/dist/utilities/getPreferences.js.map +1 -1
  621. package/dist/utilities/getRequestTheme.d.ts +8 -1
  622. package/dist/utilities/getRequestTheme.d.ts.map +1 -1
  623. package/dist/utilities/getRequestTheme.js +16 -4
  624. package/dist/utilities/getRequestTheme.js.map +1 -1
  625. package/dist/utilities/getVersions.d.ts.map +1 -1
  626. package/dist/utilities/getVersions.js +8 -0
  627. package/dist/utilities/getVersions.js.map +1 -1
  628. package/dist/utilities/handleAuthRedirect.d.ts.map +1 -1
  629. package/dist/utilities/handleAuthRedirect.js +4 -1
  630. package/dist/utilities/handleAuthRedirect.js.map +1 -1
  631. package/dist/utilities/handleServerFunctions.d.ts +9 -9
  632. package/dist/utilities/handleServerFunctions.d.ts.map +1 -1
  633. package/dist/utilities/handleServerFunctions.js +7 -5
  634. package/dist/utilities/handleServerFunctions.js.map +1 -1
  635. package/dist/utilities/isAbsoluteURL.d.ts +3 -0
  636. package/dist/utilities/isAbsoluteURL.d.ts.map +1 -0
  637. package/dist/utilities/isAbsoluteURL.js +15 -0
  638. package/dist/utilities/isAbsoluteURL.js.map +1 -0
  639. package/dist/utilities/isHttpURL.d.ts +3 -0
  640. package/dist/utilities/isHttpURL.d.ts.map +1 -0
  641. package/dist/utilities/isHttpURL.js +12 -0
  642. package/dist/utilities/isHttpURL.js.map +1 -0
  643. package/dist/utilities/isPathMatchingRoute.d.ts.map +1 -1
  644. package/dist/utilities/isPathMatchingRoute.js +7 -5
  645. package/dist/utilities/isPathMatchingRoute.js.map +1 -1
  646. package/dist/utilities/isPublicAdminRoute.d.ts.map +1 -1
  647. package/dist/utilities/isPublicAdminRoute.js +9 -6
  648. package/dist/utilities/isPublicAdminRoute.js.map +1 -1
  649. package/dist/utilities/renderTable.d.ts.map +1 -1
  650. package/dist/utilities/renderTable.js +11 -4
  651. package/dist/utilities/renderTable.js.map +1 -1
  652. package/dist/utilities/schedulePublishHandler.d.ts +8 -1
  653. package/dist/utilities/schedulePublishHandler.d.ts.map +1 -1
  654. package/dist/utilities/schedulePublishHandler.js +74 -5
  655. package/dist/utilities/schedulePublishHandler.js.map +1 -1
  656. package/dist/utilities/serverFunctionRegistry.d.ts.map +1 -1
  657. package/dist/utilities/serverFunctionRegistry.js +2 -1
  658. package/dist/utilities/serverFunctionRegistry.js.map +1 -1
  659. package/dist/utilities/slugify.d.ts.map +1 -1
  660. package/dist/utilities/slugify.js +2 -0
  661. package/dist/utilities/slugify.js.map +1 -1
  662. package/dist/utilities/upsertPreferences.d.ts.map +1 -1
  663. package/dist/utilities/upsertPreferences.js +3 -0
  664. package/dist/utilities/upsertPreferences.js.map +1 -1
  665. package/dist/views/API/index.client.d.ts.map +1 -1
  666. package/dist/views/API/index.client.js +2 -3
  667. package/dist/views/API/index.client.js.map +1 -1
  668. package/dist/views/API/index.css +1 -0
  669. package/dist/views/Account/index.d.ts +1 -1
  670. package/dist/views/Account/index.d.ts.map +1 -1
  671. package/dist/views/Account/index.js +8 -5
  672. package/dist/views/Account/index.js.map +1 -1
  673. package/dist/views/Dashboard/Default/ModularDashboard/DashboardStepNav.d.ts.map +1 -1
  674. package/dist/views/Dashboard/Default/ModularDashboard/DashboardStepNav.js +75 -115
  675. package/dist/views/Dashboard/Default/ModularDashboard/DashboardStepNav.js.map +1 -1
  676. package/dist/views/Dashboard/Default/ModularDashboard/WidgetContent/index.d.ts +7 -0
  677. package/dist/views/Dashboard/Default/ModularDashboard/WidgetContent/index.d.ts.map +1 -0
  678. package/dist/views/Dashboard/Default/ModularDashboard/WidgetContent/index.js +65 -0
  679. package/dist/views/Dashboard/Default/ModularDashboard/WidgetContent/index.js.map +1 -0
  680. package/dist/views/Dashboard/Default/ModularDashboard/WidgetEditControl.d.ts +2 -1
  681. package/dist/views/Dashboard/Default/ModularDashboard/WidgetEditControl.d.ts.map +1 -1
  682. package/dist/views/Dashboard/Default/ModularDashboard/WidgetEditControl.js +8 -2
  683. package/dist/views/Dashboard/Default/ModularDashboard/WidgetEditControl.js.map +1 -1
  684. package/dist/views/Dashboard/Default/ModularDashboard/index.client.d.ts.map +1 -1
  685. package/dist/views/Dashboard/Default/ModularDashboard/index.client.js +127 -89
  686. package/dist/views/Dashboard/Default/ModularDashboard/index.client.js.map +1 -1
  687. package/dist/views/Dashboard/Default/ModularDashboard/index.css +7 -3
  688. package/dist/views/Dashboard/Default/ModularDashboard/index.d.ts.map +1 -1
  689. package/dist/views/Dashboard/Default/ModularDashboard/index.js +1 -0
  690. package/dist/views/Dashboard/Default/ModularDashboard/index.js.map +1 -1
  691. package/dist/views/Dashboard/Default/ModularDashboard/renderWidget/getDefaultLayoutServerFn.d.ts.map +1 -1
  692. package/dist/views/Dashboard/Default/ModularDashboard/renderWidget/getDefaultLayoutServerFn.js +3 -1
  693. package/dist/views/Dashboard/Default/ModularDashboard/renderWidget/getDefaultLayoutServerFn.js.map +1 -1
  694. package/dist/views/Dashboard/Default/ModularDashboard/renderWidget/renderWidgetServerFn.d.ts.map +1 -1
  695. package/dist/views/Dashboard/Default/ModularDashboard/renderWidget/renderWidgetServerFn.js +2 -0
  696. package/dist/views/Dashboard/Default/ModularDashboard/renderWidget/renderWidgetServerFn.js.map +1 -1
  697. package/dist/views/Dashboard/Default/ModularDashboard/useDashboardLayout.d.ts.map +1 -1
  698. package/dist/views/Dashboard/Default/ModularDashboard/useDashboardLayout.js +3 -0
  699. package/dist/views/Dashboard/Default/ModularDashboard/useDashboardLayout.js.map +1 -1
  700. package/dist/views/Dashboard/Default/ModularDashboard/utils/sensors.d.ts.map +1 -1
  701. package/dist/views/Dashboard/Default/ModularDashboard/utils/sensors.js +2 -38
  702. package/dist/views/Dashboard/Default/ModularDashboard/utils/sensors.js.map +1 -1
  703. package/dist/views/Dashboard/index.d.ts.map +1 -1
  704. package/dist/views/Dashboard/index.js +2 -3
  705. package/dist/views/Dashboard/index.js.map +1 -1
  706. package/dist/views/Document/handleServerFunction.d.ts.map +1 -1
  707. package/dist/views/Document/handleServerFunction.js +3 -0
  708. package/dist/views/Document/handleServerFunction.js.map +1 -1
  709. package/dist/views/Document/index.d.ts +1 -1
  710. package/dist/views/Document/index.d.ts.map +1 -1
  711. package/dist/views/Document/index.js +10 -6
  712. package/dist/views/Document/index.js.map +1 -1
  713. package/dist/views/Document/renderDocumentSlots.d.ts +1 -0
  714. package/dist/views/Document/renderDocumentSlots.d.ts.map +1 -1
  715. package/dist/views/Document/renderDocumentSlots.js +7 -4
  716. package/dist/views/Document/renderDocumentSlots.js.map +1 -1
  717. package/dist/views/Edit/Auth/APIKey.d.ts +1 -1
  718. package/dist/views/Edit/Auth/APIKey.d.ts.map +1 -1
  719. package/dist/views/Edit/Auth/APIKey.js +233 -59
  720. package/dist/views/Edit/Auth/APIKey.js.map +1 -1
  721. package/dist/views/Edit/Auth/APIKeyGenerationModal.d.ts +12 -0
  722. package/dist/views/Edit/Auth/APIKeyGenerationModal.d.ts.map +1 -0
  723. package/dist/views/Edit/Auth/APIKeyGenerationModal.js +117 -0
  724. package/dist/views/Edit/Auth/APIKeyGenerationModal.js.map +1 -0
  725. package/dist/views/Edit/Auth/index.css +91 -0
  726. package/dist/views/Edit/Auth/index.d.ts.map +1 -1
  727. package/dist/views/Edit/Auth/index.js +10 -28
  728. package/dist/views/Edit/Auth/index.js.map +1 -1
  729. package/dist/views/Edit/Auth/types.d.ts +3 -1
  730. package/dist/views/Edit/Auth/types.d.ts.map +1 -1
  731. package/dist/views/Edit/Auth/types.js.map +1 -1
  732. package/dist/views/Edit/index.css +1 -0
  733. package/dist/views/ForgotPassword/ForgotPasswordForm/index.css +14 -0
  734. package/dist/views/ForgotPassword/ForgotPasswordForm/index.d.ts.map +1 -1
  735. package/dist/views/ForgotPassword/ForgotPasswordForm/index.js +209 -161
  736. package/dist/views/ForgotPassword/ForgotPasswordForm/index.js.map +1 -1
  737. package/dist/views/ForgotPassword/index.d.ts.map +1 -1
  738. package/dist/views/ForgotPassword/index.js +2 -11
  739. package/dist/views/ForgotPassword/index.js.map +1 -1
  740. package/dist/views/HierarchyList/HierarchyTable/ChildNameCell.d.ts.map +1 -1
  741. package/dist/views/HierarchyList/HierarchyTable/ChildNameCell.js +76 -62
  742. package/dist/views/HierarchyList/HierarchyTable/ChildNameCell.js.map +1 -1
  743. package/dist/views/HierarchyList/HierarchyTable/RelatedNameCell.d.ts.map +1 -1
  744. package/dist/views/HierarchyList/HierarchyTable/RelatedNameCell.js +35 -87
  745. package/dist/views/HierarchyList/HierarchyTable/RelatedNameCell.js.map +1 -1
  746. package/dist/views/HierarchyList/HierarchyTable/SlotTable.css +1 -101
  747. package/dist/views/HierarchyList/HierarchyTable/SlotTable.d.ts +2 -0
  748. package/dist/views/HierarchyList/HierarchyTable/SlotTable.d.ts.map +1 -1
  749. package/dist/views/HierarchyList/HierarchyTable/SlotTable.js +45 -32
  750. package/dist/views/HierarchyList/HierarchyTable/SlotTable.js.map +1 -1
  751. package/dist/views/HierarchyList/HierarchyTable/index.css +48 -36
  752. package/dist/views/HierarchyList/HierarchyTable/index.d.ts.map +1 -1
  753. package/dist/views/HierarchyList/HierarchyTable/index.js +2 -1
  754. package/dist/views/HierarchyList/HierarchyTable/index.js.map +1 -1
  755. package/dist/views/HierarchyList/TypeFilter/index.d.ts.map +1 -1
  756. package/dist/views/HierarchyList/TypeFilter/index.js +6 -7
  757. package/dist/views/HierarchyList/TypeFilter/index.js.map +1 -1
  758. package/dist/views/HierarchyList/index.css +1 -0
  759. package/dist/views/List/ListHeader/index.css +1 -0
  760. package/dist/views/List/ListHeader/index.d.ts +0 -1
  761. package/dist/views/List/ListHeader/index.d.ts.map +1 -1
  762. package/dist/views/List/ListHeader/index.js +2 -6
  763. package/dist/views/List/ListHeader/index.js.map +1 -1
  764. package/dist/views/List/enrichDocsWithVersionStatus.d.ts.map +1 -1
  765. package/dist/views/List/enrichDocsWithVersionStatus.js +1 -0
  766. package/dist/views/List/enrichDocsWithVersionStatus.js.map +1 -1
  767. package/dist/views/List/handleServerFunction.d.ts.map +1 -1
  768. package/dist/views/List/handleServerFunction.js +4 -1
  769. package/dist/views/List/handleServerFunction.js.map +1 -1
  770. package/dist/views/List/index.client.d.ts.map +1 -1
  771. package/dist/views/List/index.client.js +145 -124
  772. package/dist/views/List/index.client.js.map +1 -1
  773. package/dist/views/List/index.css +2 -1
  774. package/dist/views/List/index.d.ts.map +1 -1
  775. package/dist/views/List/index.js +2 -1
  776. package/dist/views/List/index.js.map +1 -1
  777. package/dist/views/NotFound/client.d.ts +2 -0
  778. package/dist/views/NotFound/client.d.ts.map +1 -0
  779. package/dist/views/NotFound/client.js +4 -0
  780. package/dist/views/NotFound/client.js.map +1 -0
  781. package/dist/views/NotFound/page.d.ts +4 -11
  782. package/dist/views/NotFound/page.d.ts.map +1 -1
  783. package/dist/views/NotFound/page.js +6 -5
  784. package/dist/views/NotFound/page.js.map +1 -1
  785. package/dist/views/Root/index.d.ts +6 -7
  786. package/dist/views/Root/index.d.ts.map +1 -1
  787. package/dist/views/Root/index.js +33 -24
  788. package/dist/views/Root/index.js.map +1 -1
  789. package/dist/views/Verify/index.d.ts +1 -1
  790. package/dist/views/Verify/index.d.ts.map +1 -1
  791. package/dist/views/Verify/index.js +4 -4
  792. package/dist/views/Verify/index.js.map +1 -1
  793. package/dist/views/Version/Default/SetStepNav.d.ts.map +1 -1
  794. package/dist/views/Version/Default/SetStepNav.js +10 -13
  795. package/dist/views/Version/Default/SetStepNav.js.map +1 -1
  796. package/dist/views/Version/Default/index.css +2 -0
  797. package/dist/views/Version/Default/index.d.ts.map +1 -1
  798. package/dist/views/Version/Default/index.js +12 -13
  799. package/dist/views/Version/Default/index.js.map +1 -1
  800. package/dist/views/Version/RenderFieldsToDiff/DiffCollapser/index.d.ts +1 -0
  801. package/dist/views/Version/RenderFieldsToDiff/DiffCollapser/index.d.ts.map +1 -1
  802. package/dist/views/Version/RenderFieldsToDiff/DiffCollapser/index.js +56 -50
  803. package/dist/views/Version/RenderFieldsToDiff/DiffCollapser/index.js.map +1 -1
  804. package/dist/views/Version/RenderFieldsToDiff/buildVersionFields.d.ts.map +1 -1
  805. package/dist/views/Version/RenderFieldsToDiff/buildVersionFields.js +41 -27
  806. package/dist/views/Version/RenderFieldsToDiff/buildVersionFields.js.map +1 -1
  807. package/dist/views/Version/RenderFieldsToDiff/fields/Checkbox/index.d.ts +3 -2
  808. package/dist/views/Version/RenderFieldsToDiff/fields/Checkbox/index.d.ts.map +1 -1
  809. package/dist/views/Version/RenderFieldsToDiff/fields/Checkbox/index.js.map +1 -1
  810. package/dist/views/Version/RenderFieldsToDiff/fields/Collapsible/index.d.ts +3 -2
  811. package/dist/views/Version/RenderFieldsToDiff/fields/Collapsible/index.d.ts.map +1 -1
  812. package/dist/views/Version/RenderFieldsToDiff/fields/Collapsible/index.js.map +1 -1
  813. package/dist/views/Version/RenderFieldsToDiff/fields/Date/index.css +8 -0
  814. package/dist/views/Version/RenderFieldsToDiff/fields/Date/index.d.ts +3 -2
  815. package/dist/views/Version/RenderFieldsToDiff/fields/Date/index.d.ts.map +1 -1
  816. package/dist/views/Version/RenderFieldsToDiff/fields/Date/index.js.map +1 -1
  817. package/dist/views/Version/RenderFieldsToDiff/fields/Group/index.d.ts +3 -2
  818. package/dist/views/Version/RenderFieldsToDiff/fields/Group/index.d.ts.map +1 -1
  819. package/dist/views/Version/RenderFieldsToDiff/fields/Group/index.js.map +1 -1
  820. package/dist/views/Version/RenderFieldsToDiff/fields/Iterable/index.d.ts.map +1 -1
  821. package/dist/views/Version/RenderFieldsToDiff/fields/Iterable/index.js +10 -0
  822. package/dist/views/Version/RenderFieldsToDiff/fields/Iterable/index.js.map +1 -1
  823. package/dist/views/Version/RenderFieldsToDiff/fields/Relationship/generateLabelFromValue.d.ts.map +1 -1
  824. package/dist/views/Version/RenderFieldsToDiff/fields/Relationship/generateLabelFromValue.js +1 -0
  825. package/dist/views/Version/RenderFieldsToDiff/fields/Relationship/generateLabelFromValue.js.map +1 -1
  826. package/dist/views/Version/RenderFieldsToDiff/fields/Relationship/index.css +1 -0
  827. package/dist/views/Version/RenderFieldsToDiff/fields/Relationship/index.d.ts +2 -2
  828. package/dist/views/Version/RenderFieldsToDiff/fields/Relationship/index.d.ts.map +1 -1
  829. package/dist/views/Version/RenderFieldsToDiff/fields/Relationship/index.js.map +1 -1
  830. package/dist/views/Version/RenderFieldsToDiff/fields/Row/index.d.ts +3 -2
  831. package/dist/views/Version/RenderFieldsToDiff/fields/Row/index.d.ts.map +1 -1
  832. package/dist/views/Version/RenderFieldsToDiff/fields/Row/index.js.map +1 -1
  833. package/dist/views/Version/RenderFieldsToDiff/fields/Select/index.d.ts +3 -2
  834. package/dist/views/Version/RenderFieldsToDiff/fields/Select/index.d.ts.map +1 -1
  835. package/dist/views/Version/RenderFieldsToDiff/fields/Select/index.js.map +1 -1
  836. package/dist/views/Version/RenderFieldsToDiff/fields/Tabs/index.d.ts +3 -2
  837. package/dist/views/Version/RenderFieldsToDiff/fields/Tabs/index.d.ts.map +1 -1
  838. package/dist/views/Version/RenderFieldsToDiff/fields/Tabs/index.js.map +1 -1
  839. package/dist/views/Version/RenderFieldsToDiff/fields/Text/index.d.ts +3 -2
  840. package/dist/views/Version/RenderFieldsToDiff/fields/Text/index.d.ts.map +1 -1
  841. package/dist/views/Version/RenderFieldsToDiff/fields/Text/index.js +3 -1
  842. package/dist/views/Version/RenderFieldsToDiff/fields/Text/index.js.map +1 -1
  843. package/dist/views/Version/RenderFieldsToDiff/fields/Upload/index.css +1 -0
  844. package/dist/views/Version/RenderFieldsToDiff/fields/Upload/index.d.ts +2 -2
  845. package/dist/views/Version/RenderFieldsToDiff/fields/Upload/index.d.ts.map +1 -1
  846. package/dist/views/Version/RenderFieldsToDiff/fields/Upload/index.js.map +1 -1
  847. package/dist/views/Version/RenderFieldsToDiff/index.css +2 -0
  848. package/dist/views/Version/RenderFieldsToDiff/utilities/countChangedFields.d.ts.map +1 -1
  849. package/dist/views/Version/RenderFieldsToDiff/utilities/countChangedFields.js +33 -1
  850. package/dist/views/Version/RenderFieldsToDiff/utilities/countChangedFields.js.map +1 -1
  851. package/dist/views/Version/RenderFieldsToDiff/utilities/getFieldsForRowComparison.d.ts +8 -2
  852. package/dist/views/Version/RenderFieldsToDiff/utilities/getFieldsForRowComparison.d.ts.map +1 -1
  853. package/dist/views/Version/RenderFieldsToDiff/utilities/getFieldsForRowComparison.js +17 -19
  854. package/dist/views/Version/RenderFieldsToDiff/utilities/getFieldsForRowComparison.js.map +1 -1
  855. package/dist/views/Version/Restore/index.d.ts.map +1 -1
  856. package/dist/views/Version/Restore/index.js +9 -6
  857. package/dist/views/Version/Restore/index.js.map +1 -1
  858. package/dist/views/Version/SelectLocales/index.d.ts.map +1 -1
  859. package/dist/views/Version/SelectLocales/index.js +1 -0
  860. package/dist/views/Version/SelectLocales/index.js.map +1 -1
  861. package/dist/views/Versions/VersionPillLabel/VersionPillLabel.d.ts.map +1 -1
  862. package/dist/views/Versions/VersionPillLabel/VersionPillLabel.js +2 -3
  863. package/dist/views/Versions/VersionPillLabel/VersionPillLabel.js.map +1 -1
  864. package/dist/views/Versions/VersionPillLabel/index.css +1 -0
  865. package/dist/views/Versions/index.client.d.ts.map +1 -1
  866. package/dist/views/Versions/index.client.js +3 -1
  867. package/dist/views/Versions/index.client.js.map +1 -1
  868. package/dist/views/Versions/index.css +1 -0
  869. package/dist/widgets/CollectionCards/index.css +4 -0
  870. package/dist/widgets/CollectionQuery/SortField/index.d.ts +3 -2
  871. package/dist/widgets/CollectionQuery/SortField/index.d.ts.map +1 -1
  872. package/dist/widgets/CollectionQuery/SortField/index.js.map +1 -1
  873. package/dist/widgets/RecentlyViewed/CollectionsField/index.d.ts +3 -2
  874. package/dist/widgets/RecentlyViewed/CollectionsField/index.d.ts.map +1 -1
  875. package/dist/widgets/RecentlyViewed/CollectionsField/index.js.map +1 -1
  876. package/package.json +17 -6
  877. package/dist/elements/ClipboardAction/clipboardUtilities.spec.js +0 -120
  878. package/dist/elements/ClipboardAction/clipboardUtilities.spec.js.map +0 -1
  879. package/dist/elements/ClipboardAction/isClipboardDataValid.spec.js +0 -144
  880. package/dist/elements/ClipboardAction/isClipboardDataValid.spec.js.map +0 -1
  881. package/dist/elements/ClipboardAction/mergeFormStateFromClipboard.spec.js +0 -885
  882. package/dist/elements/ClipboardAction/mergeFormStateFromClipboard.spec.js.map +0 -1
  883. package/dist/elements/ColumnSelection/matchesColumnSearch.spec.js +0 -87
  884. package/dist/elements/ColumnSelection/matchesColumnSearch.spec.js.map +0 -1
  885. package/dist/elements/CommandPalette/buildActions.spec.js +0 -158
  886. package/dist/elements/CommandPalette/buildActions.spec.js.map +0 -1
  887. package/dist/elements/CommandPalette/highlightLabel.spec.js +0 -78
  888. package/dist/elements/CommandPalette/highlightLabel.spec.js.map +0 -1
  889. package/dist/elements/FieldSelect/reduceFieldOptions.spec.js +0 -143
  890. package/dist/elements/FieldSelect/reduceFieldOptions.spec.js.map +0 -1
  891. package/dist/elements/Toasts/fieldErrors.spec.js +0 -46
  892. package/dist/elements/Toasts/fieldErrors.spec.js.map +0 -1
  893. package/dist/elements/WhereBuilder/Condition/Relationship/optionsReducer.spec.js +0 -152
  894. package/dist/elements/WhereBuilder/Condition/Relationship/optionsReducer.spec.js.map +0 -1
  895. package/dist/elements/WhereBuilder/conditionValue.spec.js +0 -65
  896. package/dist/elements/WhereBuilder/conditionValue.spec.js.map +0 -1
  897. package/dist/fields/Upload/Input.spec.js +0 -241
  898. package/dist/fields/Upload/Input.spec.js.map +0 -1
  899. package/dist/forms/fieldSchemasToFormState/fieldSchemasToFormState.spec.d.ts +0 -2
  900. package/dist/forms/fieldSchemasToFormState/fieldSchemasToFormState.spec.d.ts.map +0 -1
  901. package/dist/forms/fieldSchemasToFormState/fieldSchemasToFormState.spec.js +0 -67
  902. package/dist/forms/fieldSchemasToFormState/fieldSchemasToFormState.spec.js.map +0 -1
  903. package/dist/layouts/Root/index.spec.js +0 -20
  904. package/dist/layouts/Root/index.spec.js.map +0 -1
  905. package/dist/providers/Auth/authSessionRequests.spec.js +0 -121
  906. package/dist/providers/Auth/authSessionRequests.spec.js.map +0 -1
  907. package/dist/providers/Auth/sessionActivity.spec.js +0 -44
  908. package/dist/providers/Auth/sessionActivity.spec.js.map +0 -1
  909. package/dist/providers/Auth/tabSessionSync/index.spec.js +0 -463
  910. package/dist/providers/Auth/tabSessionSync/index.spec.js.map +0 -1
  911. package/dist/providers/Auth/useAuthSessionTimers.spec.js +0 -311
  912. package/dist/providers/Auth/useAuthSessionTimers.spec.js.map +0 -1
  913. package/dist/providers/RouteTransition/ProgressBar/index.spec.js +0 -44
  914. package/dist/providers/RouteTransition/ProgressBar/index.spec.js.map +0 -1
  915. package/dist/providers/TableColumns/buildColumnState/index.spec.js +0 -40
  916. package/dist/providers/TableColumns/buildColumnState/index.spec.js.map +0 -1
  917. package/dist/utilities/appendCacheTag.spec.js +0 -34
  918. package/dist/utilities/appendCacheTag.spec.js.map +0 -1
  919. package/dist/utilities/formatMetadata.spec.js +0 -83
  920. package/dist/utilities/formatMetadata.spec.js.map +0 -1
  921. package/dist/utilities/fuzzyMatch.spec.js +0 -38
  922. package/dist/utilities/fuzzyMatch.spec.js.map +0 -1
  923. package/dist/utilities/getRequestLocale.d.ts +0 -7
  924. package/dist/utilities/getRequestLocale.d.ts.map +0 -1
  925. package/dist/utilities/getRequestLocale.js +0 -20
  926. package/dist/utilities/getRequestLocale.js.map +0 -1
  927. package/dist/utilities/initReq.d.ts +0 -16
  928. package/dist/utilities/initReq.d.ts.map +0 -1
  929. package/dist/utilities/initReq.js +0 -111
  930. package/dist/utilities/initReq.js.map +0 -1
  931. package/dist/utilities/isCustomAdminView.spec.js +0 -90
  932. package/dist/utilities/isCustomAdminView.spec.js.map +0 -1
  933. package/dist/utilities/isPathMatchingRoute.spec.js +0 -178
  934. package/dist/utilities/isPathMatchingRoute.spec.js.map +0 -1
  935. package/dist/utilities/normalizeRelationshipValue.spec.js +0 -373
  936. package/dist/utilities/normalizeRelationshipValue.spec.js.map +0 -1
  937. package/dist/utilities/recentlyViewed.spec.js +0 -92
  938. package/dist/utilities/recentlyViewed.spec.js.map +0 -1
  939. package/dist/utilities/selectiveCache.d.ts +0 -12
  940. package/dist/utilities/selectiveCache.d.ts.map +0 -1
  941. package/dist/utilities/selectiveCache.js +0 -37
  942. package/dist/utilities/selectiveCache.js.map +0 -1
  943. package/dist/views/Root/getCustomCollectionViewByRoute.spec.js +0 -168
  944. package/dist/views/Root/getCustomCollectionViewByRoute.spec.js.map +0 -1
  945. package/dist/views/Version/RenderFieldsToDiff/utilities/countChangedFields.spec.js +0 -861
  946. package/dist/views/Version/RenderFieldsToDiff/utilities/countChangedFields.spec.js.map +0 -1
  947. package/dist/views/Version/RenderFieldsToDiff/utilities/fieldHasChanges.spec.js +0 -47
  948. package/dist/views/Version/RenderFieldsToDiff/utilities/fieldHasChanges.spec.js.map +0 -1
  949. package/dist/views/Version/RenderFieldsToDiff/utilities/getFieldsForRowComparison.spec.js +0 -135
  950. package/dist/views/Version/RenderFieldsToDiff/utilities/getFieldsForRowComparison.spec.js.map +0 -1
  951. package/dist/widgets/CollectionQuery/getCollectionFieldPaths.spec.js +0 -100
  952. package/dist/widgets/CollectionQuery/getCollectionFieldPaths.spec.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["c","_c","React","ChevronIcon","LanguageIcon","useTranslation","Popup","PopupList","LanguageMenuContent","$","i18n","languageOptions","switchLanguage","t0","_jsx","children","RadioGroup","map","t1","label","value","RadioGroupItem","active","language","onClick","LanguageMenu","onMobileOpen","t","_jsxs","className","type","size","direction","renderButton","t2","onKeyDown","aria","filter","Boolean","join","theme"],"sources":["../../../../src/elements/UserMenu/LanguageMenu/index.tsx"],"sourcesContent":["'use client'\nimport React from 'react'\n\nimport { ChevronIcon } from '../../../icons/Chevron/index.js'\nimport { LanguageIcon } from '../../../icons/Language/index.js'\nimport { useTranslation } from '../../../providers/Translation/index.js'\nimport { Popup, PopupList } from '../../Popup/index.js'\n\nexport const LanguageMenuContent: React.FC = () => {\n const { i18n, languageOptions, switchLanguage } = useTranslation()\n\n return (\n <div data-popup-prevent-close>\n <PopupList.RadioGroup>\n {languageOptions?.map(({ label, value }) => (\n <PopupList.RadioGroupItem\n active={i18n.language === value}\n key={value}\n onClick={() => {\n if (switchLanguage) {\n void switchLanguage(value)\n }\n }}\n >\n {label}\n </PopupList.RadioGroupItem>\n ))}\n </PopupList.RadioGroup>\n </div>\n )\n}\n\nexport const LanguageMenu: React.FC<{\n readonly onMobileOpen?: () => void\n}> = ({ onMobileOpen }) => {\n const { t } = useTranslation()\n\n if (onMobileOpen) {\n return (\n <button\n className=\"popup-button-list__button popup-button-list__button--submenu-trigger\"\n data-popup-prevent-close\n onClick={onMobileOpen}\n type=\"button\"\n >\n <span className=\"popup-button-list__submenu-icon\">\n <LanguageIcon size={24} />\n </span>\n <span className=\"popup-button-list__label\">{t('general:language')}</span>\n <span className=\"popup-button-list__chevron\">\n <ChevronIcon direction=\"right\" size={24} />\n </span>\n </button>\n )\n }\n\n return (\n <Popup\n renderButton={({ active, onClick, onKeyDown, ...aria }) => (\n <button\n {...aria}\n className={[\n 'popup-button-list__button',\n 'popup-button-list__button--submenu-trigger',\n active && 'popup-button-list__button--selected',\n ]\n .filter(Boolean)\n .join(' ')}\n onClick={onClick}\n onKeyDown={onKeyDown}\n type=\"button\"\n >\n <span className=\"popup-button-list__submenu-icon\">\n <LanguageIcon size={24} />\n </span>\n <span className=\"popup-button-list__label\">{t('general:language')}</span>\n <span className=\"popup-button-list__chevron\">\n <ChevronIcon direction=\"right\" size={16} />\n </span>\n </button>\n )}\n side=\"left\"\n size=\"large\"\n theme=\"dark\"\n >\n <LanguageMenuContent />\n </Popup>\n )\n}\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;;AACA,OAAOC,KAAA,MAAW;AAElB,SAASC,WAAW,QAAQ;AAC5B,SAASC,YAAY,QAAQ;AAC7B,SAASC,cAAc,QAAQ;AAC/B,SAASC,KAAK,EAAEC,SAAS,QAAQ;AAEjC,OAAO,MAAMC,mBAAA,GAAgCA,CAAA;EAAA,MAAAC,CAAA,GAAAR,EAAA;EAC3C;IAAAS,IAAA;IAAAC,eAAA;IAAAC;EAAA,IAAkDP,cAAA;EAAA,IAAAQ,EAAA;EAAA,IAAAJ,CAAA,QAAAC,IAAA,IAAAD,CAAA,QAAAE,eAAA,IAAAF,CAAA,QAAAG,cAAA;IAGhDC,EAAA,GAAAC,IAAA,CAAC;MAAA;MAAAC,QAAA,EACCD,IAAA,CAAAP,SAAA,CAAAS,UAAA;QAAAD,QAAA,EACGJ,eAAA,EAAAM,GAAA,CAAAC,EAAA;UAAsB;YAAAC,KAAA;YAAAC;UAAA,IAAAF,EAAgB;UAAA,OACrCJ,IAAA,CAAAP,SAAA,CAAAc,cAAA;YAAAC,MAAA,EACUZ,IAAA,CAAAa,QAAA,KAAkBH,KAAA;YAAAI,OAAA,EAAAA,CAAA;cAAA,IAGpBZ,cAAA;gBACGA,cAAA,CAAeQ,KAAA;cAAA;YAAA;YAAAL,QAAA,EAIvBI;UAAA,GAPIC,KAAA;QAAA;MAAA,C;;;;;;;;;SALbP,E;CAkBJ;AAEA,OAAO,MAAMY,YAAA,GAERZ,EAAA;EAAA,MAAAJ,CAAA,GAAAR,EAAA;EAAC;IAAAyB;EAAA,IAAAb,EAAgB;EACpB;IAAAc;EAAA,IAActB,cAAA;EAAA,IAEVqB,YAAA;IAAA,IAAAR,EAAA;IAAA,IAAAT,CAAA,QAAAiB,YAAA,IAAAjB,CAAA,QAAAkB,CAAA;MAEAT,EAAA,GAAAU,KAAA,CAAC;QAAAC,SAAA,EACW;QAAA;QAAAL,OAAA,EAEDE,YAAA;QAAAI,IAAA,EACJ;QAAAf,QAAA,GAELD,IAAA,CAAC;UAAAe,SAAA,EAAe;UAAAd,QAAA,EACdD,IAAA,CAAAV,YAAA;YAAA2B,IAAA;UAAA,C;YAEFjB,IAAA,CAAC;UAAAe,SAAA,EAAe;UAAAd,QAAA,EAA4BY,CAAA,CAAE;QAAA,C,GAC9Cb,IAAA,CAAC;UAAAe,SAAA,EAAe;UAAAd,QAAA,EACdD,IAAA,CAAAX,WAAA;YAAA6B,SAAA,EAAuB;YAAAD,IAAA;UAAA,C;;;;;;;;;WAX3Bb,E;;;;IAkBFA,EAAA,GAAAJ,IAAA,CAAAR,KAAA;MAAA2B,YAAA,EAAAC,EAAA;QACiB;UAAAZ,MAAA;UAAAE,OAAA;UAAAW,SAAA;UAAA,GAAAC;QAAA,IAAAF,EAAuC;QAAA,OACpDN,KAAA,CAAC;UAAA,GACKQ,IAAI;UAAAP,SAAA,EACG,CACT,6BACA,8CACAP,MAAA,IAAU,uCAAAe,MAAA,CAAAC,OAEF,EAAAC,IAAA,CACF;UAAAf,OAAA;UAAAW,SAAA;UAAAL,IAAA,EAGH;UAAAf,QAAA,GAELD,IAAA,CAAC;YAAAe,SAAA,EAAe;YAAAd,QAAA,EACdD,IAAA,CAAAV,YAAA;cAAA2B,IAAA;YAAA,C;cAEFjB,IAAA,CAAC;YAAAe,SAAA,EAAe;YAAAd,QAAA,EAA4BY,CAAA,CAAE;UAAA,C,GAC9Cb,IAAA,CAAC;YAAAe,SAAA,EAAe;YAAAd,QAAA,EACdD,IAAA,CAAAX,WAAA;cAAA6B,SAAA,EAAuB;cAAAD,IAAA;YAAA,C;;;;YAIxB;MAAAA,IAAA,EACA;MAAAS,KAAA,EACC;MAAAzB,QAAA,EAEND,IAAA,CAAAN,mBAAA,IAAC;IAAA,C;;;;;;SA5BHU,E;CA+BJ","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["c","_c","React","ChevronIcon","LanguageIcon","useTranslation","Popup","PopupList","LanguageMenuContent","$","i18n","languageOptions","switchLanguage","t0","_jsx","children","RadioGroup","map","t1","label","value","RadioGroupItem","active","language","onClick","LanguageMenu","onMobileOpen","t","_jsxs","className","role","tabIndex","type","size","direction","popupType","renderButton","t2","onKeyDown","aria","filter","Boolean","join","theme"],"sources":["../../../../src/elements/UserMenu/LanguageMenu/index.tsx"],"sourcesContent":["'use client'\nimport React from 'react'\n\nimport { ChevronIcon } from '../../../icons/Chevron/index.js'\nimport { LanguageIcon } from '../../../icons/Language/index.js'\nimport { useTranslation } from '../../../providers/Translation/index.js'\nimport { Popup, PopupList } from '../../Popup/index.js'\n\nexport const LanguageMenuContent: React.FC = () => {\n const { i18n, languageOptions, switchLanguage } = useTranslation()\n\n return (\n <div data-popup-prevent-close>\n <PopupList.RadioGroup>\n {languageOptions?.map(({ label, value }) => (\n <PopupList.RadioGroupItem\n active={i18n.language === value}\n key={value}\n onClick={() => {\n if (switchLanguage) {\n void switchLanguage(value)\n }\n }}\n >\n {label}\n </PopupList.RadioGroupItem>\n ))}\n </PopupList.RadioGroup>\n </div>\n )\n}\n\nexport const LanguageMenu: React.FC<{\n readonly onMobileOpen?: () => void\n}> = ({ onMobileOpen }) => {\n const { t } = useTranslation()\n\n if (onMobileOpen) {\n return (\n <button\n className=\"popup-button-list__button popup-button-list__button--submenu-trigger\"\n data-popup-prevent-close\n onClick={onMobileOpen}\n role=\"menuitem\"\n tabIndex={-1}\n type=\"button\"\n >\n <span className=\"popup-button-list__submenu-icon\">\n <LanguageIcon size={24} />\n </span>\n <span className=\"popup-button-list__label\">{t('general:language')}</span>\n <span className=\"popup-button-list__chevron\">\n <ChevronIcon direction=\"right\" size={24} />\n </span>\n </button>\n )\n }\n\n return (\n <Popup\n popupType=\"menu\"\n renderButton={({ active, onClick, onKeyDown, ...aria }) => (\n <button\n {...aria}\n className={[\n 'popup-button-list__button',\n 'popup-button-list__button--submenu-trigger',\n active && 'popup-button-list__button--selected',\n ]\n .filter(Boolean)\n .join(' ')}\n onClick={onClick}\n onKeyDown={onKeyDown}\n type=\"button\"\n >\n <span className=\"popup-button-list__submenu-icon\">\n <LanguageIcon size={24} />\n </span>\n <span className=\"popup-button-list__label\">{t('general:language')}</span>\n <span className=\"popup-button-list__chevron\">\n <ChevronIcon direction=\"right\" size={16} />\n </span>\n </button>\n )}\n side=\"left\"\n size=\"large\"\n theme=\"dark\"\n >\n <LanguageMenuContent />\n </Popup>\n )\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/elements/UserMenu/SettingsMenu/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAmB,MAAM,OAAO,CAAA;AAQvC,MAAM,MAAM,qBAAqB,GAAG;IAClC,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,KAAK,EAAE,KAAK,CAAC,SAAS,EAAE,CAAA;CACzB,CAAA;AAED,KAAK,iBAAiB,GAAG;IACvB,MAAM,EAAE,qBAAqB,EAAE,CAAA;IAC/B,YAAY,CAAC,EAAE,MAAM,IAAI,CAAA;CAC1B,CAAA;AAED,eAAO,MAAM,mBAAmB,EAAE,KAAK,CAAC,EAAE,CAAC;IAAE,MAAM,EAAE,qBAAqB,EAAE,CAAA;CAAE,CAY7E,CAAA;AAED,eAAO,MAAM,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC,iBAAiB,CAsDpD,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/elements/UserMenu/SettingsMenu/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAmB,MAAM,OAAO,CAAA;AAQvC,MAAM,MAAM,qBAAqB,GAAG;IAClC,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,KAAK,EAAE,KAAK,CAAC,SAAS,EAAE,CAAA;CACzB,CAAA;AAED,KAAK,iBAAiB,GAAG;IACvB,MAAM,EAAE,qBAAqB,EAAE,CAAA;IAC/B,YAAY,CAAC,EAAE,MAAM,IAAI,CAAA;CAC1B,CAAA;AAED,eAAO,MAAM,mBAAmB,EAAE,KAAK,CAAC,EAAE,CAAC;IAAE,MAAM,EAAE,qBAAqB,EAAE,CAAA;CAAE,CAY7E,CAAA;AAED,eAAO,MAAM,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC,iBAAiB,CAyDpD,CAAA"}
@@ -35,6 +35,8 @@ export const SettingsMenu = t0 => {
35
35
  className: "popup-button-list__button popup-button-list__button--submenu-trigger",
36
36
  "data-popup-prevent-close": true,
37
37
  onClick: onMobileOpen,
38
+ role: "menuitem",
39
+ tabIndex: -1,
38
40
  type: "button",
39
41
  children: [_jsx("span", {
40
42
  className: "popup-button-list__submenu-icon",
@@ -100,6 +102,7 @@ export const SettingsMenu = t0 => {
100
102
  let t2;
101
103
  if ($[5] !== groups || $[6] !== t1) {
102
104
  t2 = _jsx(Popup, {
105
+ popupType: "menu",
103
106
  renderButton: t1,
104
107
  side: "left",
105
108
  size: "large",
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["c","_c","React","Fragment","ChevronIcon","GearIcon","useTranslation","MenuSeparator","Popup","PopupList","SettingsMenuContent","groups","_jsx","_Fragment","map","group","groupIndex","_jsxs","GroupLabel","label","items","item","itemIndex","SettingsMenu","t0","$","onMobileOpen","t","t1","className","onClick","type","children","size","direction","t2","active","onKeyDown","aria","filter","Boolean","join","renderButton","theme"],"sources":["../../../../src/elements/UserMenu/SettingsMenu/index.tsx"],"sourcesContent":["'use client'\nimport React, { Fragment } from 'react'\n\nimport { ChevronIcon } from '../../../icons/Chevron/index.js'\nimport { GearIcon } from '../../../icons/Gear/index.js'\nimport { useTranslation } from '../../../providers/Translation/index.js'\nimport { MenuSeparator } from '../../MenuSeparator/index.js'\nimport { Popup, PopupList } from '../../Popup/index.js'\n\nexport type UserMenuSettingsGroup = {\n group?: string\n items: React.ReactNode[]\n}\n\ntype SettingsMenuProps = {\n groups: UserMenuSettingsGroup[]\n onMobileOpen?: () => void\n}\n\nexport const SettingsMenuContent: React.FC<{ groups: UserMenuSettingsGroup[] }> = ({ groups }) => (\n <>\n {groups.map((group, groupIndex) => (\n <Fragment key={`settings-group-${group.group}-${groupIndex}`}>\n {groupIndex > 0 && <MenuSeparator />}\n {group.group && <PopupList.GroupLabel label={group.group} />}\n {group.items.map((item, itemIndex) => (\n <Fragment key={`settings-item-${groupIndex}-${itemIndex}`}>{item}</Fragment>\n ))}\n </Fragment>\n ))}\n </>\n)\n\nexport const SettingsMenu: React.FC<SettingsMenuProps> = ({ groups, onMobileOpen }) => {\n const { t } = useTranslation()\n\n if (onMobileOpen) {\n return (\n <button\n className=\"popup-button-list__button popup-button-list__button--submenu-trigger\"\n data-popup-prevent-close\n onClick={onMobileOpen}\n type=\"button\"\n >\n <span className=\"popup-button-list__submenu-icon\">\n <GearIcon size={24} />\n </span>\n <span className=\"popup-button-list__label\">{t('general:settings')}</span>\n <span className=\"popup-button-list__chevron\">\n <ChevronIcon direction=\"right\" size={24} />\n </span>\n </button>\n )\n }\n\n return (\n <Popup\n renderButton={({ active, onClick, onKeyDown, ...aria }) => (\n <button\n {...aria}\n className={[\n 'popup-button-list__button',\n 'popup-button-list__button--submenu-trigger',\n active && 'popup-button-list__button--selected',\n ]\n .filter(Boolean)\n .join(' ')}\n onClick={onClick}\n onKeyDown={onKeyDown}\n type=\"button\"\n >\n <span className=\"popup-button-list__submenu-icon\">\n <GearIcon size={24} />\n </span>\n <span className=\"popup-button-list__label\">{t('general:settings')}</span>\n <span className=\"popup-button-list__chevron\">\n <ChevronIcon direction=\"right\" size={16} />\n </span>\n </button>\n )}\n side=\"left\"\n size=\"large\"\n theme=\"dark\"\n >\n <SettingsMenuContent groups={groups} />\n </Popup>\n )\n}\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;;AACA,OAAOC,KAAA,IAASC,QAAQ,QAAQ;AAEhC,SAASC,WAAW,QAAQ;AAC5B,SAASC,QAAQ,QAAQ;AACzB,SAASC,cAAc,QAAQ;AAC/B,SAASC,aAAa,QAAQ;AAC9B,SAASC,KAAK,EAAEC,SAAS,QAAQ;AAYjC,OAAO,MAAMC,mBAAA,GAAqEA,CAAC;EAAEC;AAAM,CAAE,kBAC3FC,IAAA,CAAAC,SAAA;YACGF,MAAA,CAAOG,GAAG,CAAC,CAACC,KAAA,EAAOC,UAAA,kBAClBC,KAAA,CAACd,QAAA;eACEa,UAAA,GAAa,kBAAKJ,IAAA,CAACL,aAAA,OACnBQ,KAAA,CAAMA,KAAK,iBAAIH,IAAA,CAACH,SAAA,CAAUS,UAAU;MAACC,KAAA,EAAOJ,KAAA,CAAMA;QAClDA,KAAA,CAAMK,KAAK,CAACN,GAAG,CAAC,CAACO,IAAA,EAAMC,SAAA,kBACtBV,IAAA,CAACT,QAAA;gBAA2DkB;OAA7C,iBAAiBL,UAAA,IAAcM,SAAA,EAAW;KAJ9C,kBAAkBP,KAAA,CAAMA,KAAK,IAAIC,UAAA,EAAY;;AAWlE,OAAO,MAAMO,YAAA,GAA4CC,EAAA;EAAA,MAAAC,CAAA,GAAAxB,EAAA;EAAC;IAAAU,MAAA;IAAAe;EAAA,IAAAF,EAAwB;EAChF;IAAAG;EAAA,IAAcrB,cAAA;EAAA,IAEVoB,YAAA;IAAA,IAAAE,EAAA;IAAA,IAAAH,CAAA,QAAAC,YAAA,IAAAD,CAAA,QAAAE,CAAA;MAEAC,EAAA,GAAAX,KAAA,CAAC;QAAAY,SAAA,EACW;QAAA;QAAAC,OAAA,EAEDJ,YAAA;QAAAK,IAAA,EACJ;QAAAC,QAAA,GAELpB,IAAA,CAAC;UAAAiB,SAAA,EAAe;UAAAG,QAAA,EACdpB,IAAA,CAAAP,QAAA;YAAA4B,IAAA;UAAA,C;YAEFrB,IAAA,CAAC;UAAAiB,SAAA,EAAe;UAAAG,QAAA,EAA4BL,CAAA,CAAE;QAAA,C,GAC9Cf,IAAA,CAAC;UAAAiB,SAAA,EAAe;UAAAG,QAAA,EACdpB,IAAA,CAAAR,WAAA;YAAA8B,SAAA,EAAuB;YAAAD,IAAA;UAAA,C;;;;;;;;;WAX3BL,E;;;;IAmBcA,EAAA,GAAAO,EAAA;MAAC;QAAAC,MAAA;QAAAN,OAAA;QAAAO,SAAA;QAAA,GAAAC;MAAA,IAAAH,EAAuC;MAAA,OACpDlB,KAAA,CAAC;QAAA,GACKqB,IAAI;QAAAT,SAAA,EACG,CACT,6BACA,8CACAO,MAAA,IAAU,uCAAAG,MAAA,CAAAC,OAEF,EAAAC,IAAA,CACF;QAAAX,OAAA;QAAAO,SAAA;QAAAN,IAAA,EAGH;QAAAC,QAAA,GAELpB,IAAA,CAAC;UAAAiB,SAAA,EAAe;UAAAG,QAAA,EACdpB,IAAA,CAAAP,QAAA;YAAA4B,IAAA;UAAA,C;YAEFrB,IAAA,CAAC;UAAAiB,SAAA,EAAe;UAAAG,QAAA,EAA4BL,CAAA,CAAE;QAAA,C,GAC9Cf,IAAA,CAAC;UAAAiB,SAAA,EAAe;UAAAG,QAAA,EACdpB,IAAA,CAAAR,WAAA;YAAA8B,SAAA,EAAuB;YAAAD,IAAA;UAAA,C;;;;;;;;;;;IApB/BE,EAAA,GAAAvB,IAAA,CAAAJ,KAAA;MAAAkC,YAAA,EACgBd,E;YAuBT;MAAAK,IAAA,EACA;MAAAU,KAAA,EACC;MAAAX,QAAA,EAENpB,IAAA,CAAAF,mBAAA;QAAAC;MAAA,C;;;;;;;;SA5BFwB,E;CA+BJ","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["c","_c","React","Fragment","ChevronIcon","GearIcon","useTranslation","MenuSeparator","Popup","PopupList","SettingsMenuContent","groups","_jsx","_Fragment","map","group","groupIndex","_jsxs","GroupLabel","label","items","item","itemIndex","SettingsMenu","t0","$","onMobileOpen","t","t1","className","onClick","role","tabIndex","type","children","size","direction","t2","active","onKeyDown","aria","filter","Boolean","join","popupType","renderButton","theme"],"sources":["../../../../src/elements/UserMenu/SettingsMenu/index.tsx"],"sourcesContent":["'use client'\nimport React, { Fragment } from 'react'\n\nimport { ChevronIcon } from '../../../icons/Chevron/index.js'\nimport { GearIcon } from '../../../icons/Gear/index.js'\nimport { useTranslation } from '../../../providers/Translation/index.js'\nimport { MenuSeparator } from '../../MenuSeparator/index.js'\nimport { Popup, PopupList } from '../../Popup/index.js'\n\nexport type UserMenuSettingsGroup = {\n group?: string\n items: React.ReactNode[]\n}\n\ntype SettingsMenuProps = {\n groups: UserMenuSettingsGroup[]\n onMobileOpen?: () => void\n}\n\nexport const SettingsMenuContent: React.FC<{ groups: UserMenuSettingsGroup[] }> = ({ groups }) => (\n <>\n {groups.map((group, groupIndex) => (\n <Fragment key={`settings-group-${group.group}-${groupIndex}`}>\n {groupIndex > 0 && <MenuSeparator />}\n {group.group && <PopupList.GroupLabel label={group.group} />}\n {group.items.map((item, itemIndex) => (\n <Fragment key={`settings-item-${groupIndex}-${itemIndex}`}>{item}</Fragment>\n ))}\n </Fragment>\n ))}\n </>\n)\n\nexport const SettingsMenu: React.FC<SettingsMenuProps> = ({ groups, onMobileOpen }) => {\n const { t } = useTranslation()\n\n if (onMobileOpen) {\n return (\n <button\n className=\"popup-button-list__button popup-button-list__button--submenu-trigger\"\n data-popup-prevent-close\n onClick={onMobileOpen}\n role=\"menuitem\"\n tabIndex={-1}\n type=\"button\"\n >\n <span className=\"popup-button-list__submenu-icon\">\n <GearIcon size={24} />\n </span>\n <span className=\"popup-button-list__label\">{t('general:settings')}</span>\n <span className=\"popup-button-list__chevron\">\n <ChevronIcon direction=\"right\" size={24} />\n </span>\n </button>\n )\n }\n\n return (\n <Popup\n popupType=\"menu\"\n renderButton={({ active, onClick, onKeyDown, ...aria }) => (\n <button\n {...aria}\n className={[\n 'popup-button-list__button',\n 'popup-button-list__button--submenu-trigger',\n active && 'popup-button-list__button--selected',\n ]\n .filter(Boolean)\n .join(' ')}\n onClick={onClick}\n onKeyDown={onKeyDown}\n type=\"button\"\n >\n <span className=\"popup-button-list__submenu-icon\">\n <GearIcon size={24} />\n </span>\n <span className=\"popup-button-list__label\">{t('general:settings')}</span>\n <span className=\"popup-button-list__chevron\">\n <ChevronIcon direction=\"right\" size={16} />\n </span>\n </button>\n )}\n side=\"left\"\n size=\"large\"\n theme=\"dark\"\n >\n <SettingsMenuContent groups={groups} />\n </Popup>\n )\n}\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;;AACA,OAAOC,KAAA,IAASC,QAAQ,QAAQ;AAEhC,SAASC,WAAW,QAAQ;AAC5B,SAASC,QAAQ,QAAQ;AACzB,SAASC,cAAc,QAAQ;AAC/B,SAASC,aAAa,QAAQ;AAC9B,SAASC,KAAK,EAAEC,SAAS,QAAQ;AAYjC,OAAO,MAAMC,mBAAA,GAAqEA,CAAC;EAAEC;AAAM,CAAE,kBAC3FC,IAAA,CAAAC,SAAA;YACGF,MAAA,CAAOG,GAAG,CAAC,CAACC,KAAA,EAAOC,UAAA,kBAClBC,KAAA,CAACd,QAAA;eACEa,UAAA,GAAa,kBAAKJ,IAAA,CAACL,aAAA,OACnBQ,KAAA,CAAMA,KAAK,iBAAIH,IAAA,CAACH,SAAA,CAAUS,UAAU;MAACC,KAAA,EAAOJ,KAAA,CAAMA;QAClDA,KAAA,CAAMK,KAAK,CAACN,GAAG,CAAC,CAACO,IAAA,EAAMC,SAAA,kBACtBV,IAAA,CAACT,QAAA;gBAA2DkB;OAA7C,iBAAiBL,UAAA,IAAcM,SAAA,EAAW;KAJ9C,kBAAkBP,KAAA,CAAMA,KAAK,IAAIC,UAAA,EAAY;;AAWlE,OAAO,MAAMO,YAAA,GAA4CC,EAAA;EAAA,MAAAC,CAAA,GAAAxB,EAAA;EAAC;IAAAU,MAAA;IAAAe;EAAA,IAAAF,EAAwB;EAChF;IAAAG;EAAA,IAAcrB,cAAA;EAAA,IAEVoB,YAAA;IAAA,IAAAE,EAAA;IAAA,IAAAH,CAAA,QAAAC,YAAA,IAAAD,CAAA,QAAAE,CAAA;MAEAC,EAAA,GAAAX,KAAA,CAAC;QAAAY,SAAA,EACW;QAAA;QAAAC,OAAA,EAEDJ,YAAA;QAAAK,IAAA,EACJ;QAAAC,QAAA;QAAAC,IAAA,EAEA;QAAAC,QAAA,GAELtB,IAAA,CAAC;UAAAiB,SAAA,EAAe;UAAAK,QAAA,EACdtB,IAAA,CAAAP,QAAA;YAAA8B,IAAA;UAAA,C;YAEFvB,IAAA,CAAC;UAAAiB,SAAA,EAAe;UAAAK,QAAA,EAA4BP,CAAA,CAAE;QAAA,C,GAC9Cf,IAAA,CAAC;UAAAiB,SAAA,EAAe;UAAAK,QAAA,EACdtB,IAAA,CAAAR,WAAA;YAAAgC,SAAA,EAAuB;YAAAD,IAAA;UAAA,C;;;;;;;;;WAb3BP,E;;;;IAsBcA,EAAA,GAAAS,EAAA;MAAC;QAAAC,MAAA;QAAAR,OAAA;QAAAS,SAAA;QAAA,GAAAC;MAAA,IAAAH,EAAuC;MAAA,OACpDpB,KAAA,CAAC;QAAA,GACKuB,IAAI;QAAAX,SAAA,EACG,CACT,6BACA,8CACAS,MAAA,IAAU,uCAAAG,MAAA,CAAAC,OAEF,EAAAC,IAAA,CACF;QAAAb,OAAA;QAAAS,SAAA;QAAAN,IAAA,EAGH;QAAAC,QAAA,GAELtB,IAAA,CAAC;UAAAiB,SAAA,EAAe;UAAAK,QAAA,EACdtB,IAAA,CAAAP,QAAA;YAAA8B,IAAA;UAAA,C;YAEFvB,IAAA,CAAC;UAAAiB,SAAA,EAAe;UAAAK,QAAA,EAA4BP,CAAA,CAAE;QAAA,C,GAC9Cf,IAAA,CAAC;UAAAiB,SAAA,EAAe;UAAAK,QAAA,EACdtB,IAAA,CAAAR,WAAA;YAAAgC,SAAA,EAAuB;YAAAD,IAAA;UAAA,C;;;;;;;;;;;IArB/BE,EAAA,GAAAzB,IAAA,CAAAJ,KAAA;MAAAoC,SAAA,EACY;MAAAC,YAAA,EACIjB,E;YAuBT;MAAAO,IAAA,EACA;MAAAW,KAAA,EACC;MAAAZ,QAAA,EAENtB,IAAA,CAAAF,mBAAA;QAAAC;MAAA,C;;;;;;;;SA7BF0B,E;CAgCJ","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/elements/UserMenu/SubMenuHeader/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAA;AAKzB,eAAO,MAAM,aAAa,EAAE,KAAK,CAAC,EAAE,CAAC;IACnC,QAAQ,CAAC,MAAM,EAAE,MAAM,IAAI,CAAA;IAC3B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;CACvB,CAiBA,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/elements/UserMenu/SubMenuHeader/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAA;AAKzB,eAAO,MAAM,aAAa,EAAE,KAAK,CAAC,EAAE,CAAC;IACnC,QAAQ,CAAC,MAAM,EAAE,MAAM,IAAI,CAAA;IAC3B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;CACvB,CAmBA,CAAA"}
@@ -16,6 +16,8 @@ export const SubMenuHeader = ({
16
16
  "aria-label": title,
17
17
  className: "user-menu__submenu-header-row",
18
18
  onClick: onBack,
19
+ role: "menuitem",
20
+ tabIndex: -1,
19
21
  type: "button",
20
22
  children: [/*#__PURE__*/_jsx("span", {
21
23
  className: "user-menu__submenu-back",
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["React","ChevronIcon","MenuSeparator","SubMenuHeader","onBack","title","_jsxs","className","_jsx","onClick","type","direction","size"],"sources":["../../../../src/elements/UserMenu/SubMenuHeader/index.tsx"],"sourcesContent":["'use client'\nimport React from 'react'\n\nimport { ChevronIcon } from '../../../icons/Chevron/index.js'\nimport { MenuSeparator } from '../../MenuSeparator/index.js'\n\nexport const SubMenuHeader: React.FC<{\n readonly onBack: () => void\n readonly title: string\n}> = ({ onBack, title }) => (\n <div className=\"user-menu__submenu-header\" data-popup-prevent-close>\n <div className=\"user-menu__submenu-header-wrap\">\n <button\n aria-label={title}\n className=\"user-menu__submenu-header-row\"\n onClick={onBack}\n type=\"button\"\n >\n <span className=\"user-menu__submenu-back\">\n <ChevronIcon direction=\"left\" size={24} />\n </span>\n <span className=\"user-menu__submenu-title\">{title}</span>\n </button>\n </div>\n <MenuSeparator />\n </div>\n)\n"],"mappings":"AAAA;;;AACA,OAAOA,KAAA,MAAW;AAElB,SAASC,WAAW,QAAQ;AAC5B,SAASC,aAAa,QAAQ;AAE9B,OAAO,MAAMC,aAAA,GAGRA,CAAC;EAAEC,MAAM;EAAEC;AAAK,CAAE,kBACrBC,KAAA,CAAC;EAAIC,SAAA,EAAU;EAA4B,0BAAwB;0BACjEC,IAAA,CAAC;IAAID,SAAA,EAAU;cACb,aAAAD,KAAA,CAAC;MACC,cAAYD,KAAA;MACZE,SAAA,EAAU;MACVE,OAAA,EAASL,MAAA;MACTM,IAAA,EAAK;8BAELF,IAAA,CAAC;QAAKD,SAAA,EAAU;kBACd,aAAAC,IAAA,CAACP,WAAA;UAAYU,SAAA,EAAU;UAAOC,IAAA,EAAM;;uBAEtCJ,IAAA,CAAC;QAAKD,SAAA,EAAU;kBAA4BF;;;mBAGhDG,IAAA,CAACN,aAAA","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["React","ChevronIcon","MenuSeparator","SubMenuHeader","onBack","title","_jsxs","className","_jsx","onClick","role","tabIndex","type","direction","size"],"sources":["../../../../src/elements/UserMenu/SubMenuHeader/index.tsx"],"sourcesContent":["'use client'\nimport React from 'react'\n\nimport { ChevronIcon } from '../../../icons/Chevron/index.js'\nimport { MenuSeparator } from '../../MenuSeparator/index.js'\n\nexport const SubMenuHeader: React.FC<{\n readonly onBack: () => void\n readonly title: string\n}> = ({ onBack, title }) => (\n <div className=\"user-menu__submenu-header\" data-popup-prevent-close>\n <div className=\"user-menu__submenu-header-wrap\">\n <button\n aria-label={title}\n className=\"user-menu__submenu-header-row\"\n onClick={onBack}\n role=\"menuitem\"\n tabIndex={-1}\n type=\"button\"\n >\n <span className=\"user-menu__submenu-back\">\n <ChevronIcon direction=\"left\" size={24} />\n </span>\n <span className=\"user-menu__submenu-title\">{title}</span>\n </button>\n </div>\n <MenuSeparator />\n </div>\n)\n"],"mappings":"AAAA;;;AACA,OAAOA,KAAA,MAAW;AAElB,SAASC,WAAW,QAAQ;AAC5B,SAASC,aAAa,QAAQ;AAE9B,OAAO,MAAMC,aAAA,GAGRA,CAAC;EAAEC,MAAM;EAAEC;AAAK,CAAE,kBACrBC,KAAA,CAAC;EAAIC,SAAA,EAAU;EAA4B,0BAAwB;0BACjEC,IAAA,CAAC;IAAID,SAAA,EAAU;cACb,aAAAD,KAAA,CAAC;MACC,cAAYD,KAAA;MACZE,SAAA,EAAU;MACVE,OAAA,EAASL,MAAA;MACTM,IAAA,EAAK;MACLC,QAAA,EAAU,CAAC;MACXC,IAAA,EAAK;8BAELJ,IAAA,CAAC;QAAKD,SAAA,EAAU;kBACd,aAAAC,IAAA,CAACP,WAAA;UAAYY,SAAA,EAAU;UAAOC,IAAA,EAAM;;uBAEtCN,IAAA,CAAC;QAAKD,SAAA,EAAU;kBAA4BF;;;mBAGhDG,IAAA,CAACN,aAAA","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/elements/UserMenu/ThemeMenu/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAA;AAQzB,eAAO,MAAM,gBAAgB,EAAE,KAAK,CAAC,EA2BpC,CAAA;AAED,eAAO,MAAM,SAAS,EAAE,KAAK,CAAC,EAAE,CAAC;IAC/B,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,IAAI,CAAA;CACnC,CAsDA,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/elements/UserMenu/ThemeMenu/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAA;AAQzB,eAAO,MAAM,gBAAgB,EAAE,KAAK,CAAC,EA2BpC,CAAA;AAED,eAAO,MAAM,SAAS,EAAE,KAAK,CAAC,EAAE,CAAC;IAC/B,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,IAAI,CAAA;CACnC,CAyDA,CAAA"}
@@ -72,6 +72,8 @@ export const ThemeMenu = t0 => {
72
72
  className: "popup-button-list__button popup-button-list__button--submenu-trigger",
73
73
  "data-popup-prevent-close": true,
74
74
  onClick: onMobileOpen,
75
+ role: "menuitem",
76
+ tabIndex: -1,
75
77
  type: "button",
76
78
  children: [_jsx("span", {
77
79
  className: "popup-button-list__submenu-icon",
@@ -100,6 +102,7 @@ export const ThemeMenu = t0 => {
100
102
  let t1;
101
103
  if ($[3] !== t) {
102
104
  t1 = _jsx(Popup, {
105
+ popupType: "menu",
103
106
  renderButton: t2 => {
104
107
  const {
105
108
  active,
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["c","_c","React","ChevronIcon","VariableColorIcon","useTheme","useTranslation","Popup","PopupList","ThemeMenuContent","$","autoMode","setTheme","theme","t","t0","options","label","value","activeValue","_jsx","children","RadioGroup","map","t1","RadioGroupItem","active","onClick","ThemeMenu","onMobileOpen","_jsxs","className","type","size","direction","renderButton","t2","onKeyDown","aria","filter","Boolean","join"],"sources":["../../../../src/elements/UserMenu/ThemeMenu/index.tsx"],"sourcesContent":["'use client'\nimport React from 'react'\n\nimport { ChevronIcon } from '../../../icons/Chevron/index.js'\nimport { VariableColorIcon } from '../../../icons/VariableColor/index.js'\nimport { useTheme } from '../../../providers/Theme/index.js'\nimport { useTranslation } from '../../../providers/Translation/index.js'\nimport { Popup, PopupList } from '../../Popup/index.js'\n\nexport const ThemeMenuContent: React.FC = () => {\n const { autoMode, setTheme, theme } = useTheme()\n const { t } = useTranslation()\n\n const options: { label: string; value: 'auto' | 'dark' | 'light' }[] = [\n { label: t('general:auto'), value: 'auto' },\n { label: t('general:light'), value: 'light' },\n { label: t('general:dark'), value: 'dark' },\n ]\n\n const activeValue: 'auto' | 'dark' | 'light' = autoMode ? 'auto' : theme\n\n return (\n <div data-popup-prevent-close>\n <PopupList.RadioGroup>\n {options.map(({ label, value }) => (\n <PopupList.RadioGroupItem\n active={activeValue === value}\n key={value}\n onClick={() => setTheme(value)}\n >\n {label}\n </PopupList.RadioGroupItem>\n ))}\n </PopupList.RadioGroup>\n </div>\n )\n}\n\nexport const ThemeMenu: React.FC<{\n readonly onMobileOpen?: () => void\n}> = ({ onMobileOpen }) => {\n const { t } = useTranslation()\n\n if (onMobileOpen) {\n return (\n <button\n className=\"popup-button-list__button popup-button-list__button--submenu-trigger\"\n data-popup-prevent-close\n onClick={onMobileOpen}\n type=\"button\"\n >\n <span className=\"popup-button-list__submenu-icon\">\n <VariableColorIcon size={24} />\n </span>\n <span className=\"popup-button-list__label\">{t('general:theme')}</span>\n <span className=\"popup-button-list__chevron\">\n <ChevronIcon direction=\"right\" size={24} />\n </span>\n </button>\n )\n }\n\n return (\n <Popup\n renderButton={({ active, onClick, onKeyDown, ...aria }) => (\n <button\n {...aria}\n className={[\n 'popup-button-list__button',\n 'popup-button-list__button--submenu-trigger',\n active && 'popup-button-list__button--selected',\n ]\n .filter(Boolean)\n .join(' ')}\n onClick={onClick}\n onKeyDown={onKeyDown}\n type=\"button\"\n >\n <span className=\"popup-button-list__submenu-icon\">\n <VariableColorIcon size={24} />\n </span>\n <span className=\"popup-button-list__label\">{t('general:theme')}</span>\n <span className=\"popup-button-list__chevron\">\n <ChevronIcon direction=\"right\" size={16} />\n </span>\n </button>\n )}\n side=\"left\"\n size=\"large\"\n theme=\"dark\"\n >\n <ThemeMenuContent />\n </Popup>\n )\n}\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;;AACA,OAAOC,KAAA,MAAW;AAElB,SAASC,WAAW,QAAQ;AAC5B,SAASC,iBAAiB,QAAQ;AAClC,SAASC,QAAQ,QAAQ;AACzB,SAASC,cAAc,QAAQ;AAC/B,SAASC,KAAK,EAAEC,SAAS,QAAQ;AAEjC,OAAO,MAAMC,gBAAA,GAA6BA,CAAA;EAAA,MAAAC,CAAA,GAAAT,EAAA;EACxC;IAAAU,QAAA;IAAAC,QAAA;IAAAC;EAAA,IAAsCR,QAAA;EACtC;IAAAS;EAAA,IAAcR,cAAA;EAAA,IAAAS,EAAA;EAAA,IAAAL,CAAA,QAAAC,QAAA,IAAAD,CAAA,QAAAE,QAAA,IAAAF,CAAA,QAAAI,CAAA,IAAAJ,CAAA,QAAAG,KAAA;IAEd,MAAAG,OAAA;MAAAC,KAAA,EACWH,CAAA,CAAE;MAAAI,KAAA,EAAwB;IAAA;MAAAD,KAAA,EAC1BH,CAAA,CAAE;MAAAI,KAAA,EAAyB;IAAA;MAAAD,KAAA,EAC3BH,CAAA,CAAE;MAAAI,KAAA,EAAwB;IAAA;IAGrC,MAAAC,WAAA,GAA+CR,QAAA,GAAW,SAASE,KAAA;IAGjEE,EAAA,GAAAK,IAAA,CAAC;MAAA;MAAAC,QAAA,EACCD,IAAA,CAAAZ,SAAA,CAAAc,UAAA;QAAAD,QAAA,EACGL,OAAA,CAAAO,GAAA,CAAAC,EAAA;UAAa;YAAAP,KAAA;YAAAC;UAAA,IAAAM,EAAgB;UAAA,OAC5BJ,IAAA,CAAAZ,SAAA,CAAAiB,cAAA;YAAAC,MAAA,EACUP,WAAA,KAAgBD,KAAA;YAAAS,OAAA,EAAAA,CAAA,KAETf,QAAA,CAASM,KAAA;YAAAG,QAAA,EAEvBJ;UAAA,GAHIC,KAAA;QAAA;MAAA,C;;;;;;;;;;SALbH,E;CAcJ;AAEA,OAAO,MAAMa,SAAA,GAERb,EAAA;EAAA,MAAAL,CAAA,GAAAT,EAAA;EAAC;IAAA4B;EAAA,IAAAd,EAAgB;EACpB;IAAAD;EAAA,IAAcR,cAAA;EAAA,IAEVuB,YAAA;IAAA,IAAAL,EAAA;IAAA,IAAAd,CAAA,QAAAmB,YAAA,IAAAnB,CAAA,QAAAI,CAAA;MAEAU,EAAA,GAAAM,KAAA,CAAC;QAAAC,SAAA,EACW;QAAA;QAAAJ,OAAA,EAEDE,YAAA;QAAAG,IAAA,EACJ;QAAAX,QAAA,GAELD,IAAA,CAAC;UAAAW,SAAA,EAAe;UAAAV,QAAA,EACdD,IAAA,CAAAhB,iBAAA;YAAA6B,IAAA;UAAA,C;YAEFb,IAAA,CAAC;UAAAW,SAAA,EAAe;UAAAV,QAAA,EAA4BP,CAAA,CAAE;QAAA,C,GAC9CM,IAAA,CAAC;UAAAW,SAAA,EAAe;UAAAV,QAAA,EACdD,IAAA,CAAAjB,WAAA;YAAA+B,SAAA,EAAuB;YAAAD,IAAA;UAAA,C;;;;;;;;;WAX3BT,E;;;;IAkBFA,EAAA,GAAAJ,IAAA,CAAAb,KAAA;MAAA4B,YAAA,EAAAC,EAAA;QACiB;UAAAV,MAAA;UAAAC,OAAA;UAAAU,SAAA;UAAA,GAAAC;QAAA,IAAAF,EAAuC;QAAA,OACpDN,KAAA,CAAC;UAAA,GACKQ,IAAI;UAAAP,SAAA,EACG,CACT,6BACA,8CACAL,MAAA,IAAU,uCAAAa,MAAA,CAAAC,OAEF,EAAAC,IAAA,CACF;UAAAd,OAAA;UAAAU,SAAA;UAAAL,IAAA,EAGH;UAAAX,QAAA,GAELD,IAAA,CAAC;YAAAW,SAAA,EAAe;YAAAV,QAAA,EACdD,IAAA,CAAAhB,iBAAA;cAAA6B,IAAA;YAAA,C;cAEFb,IAAA,CAAC;YAAAW,SAAA,EAAe;YAAAV,QAAA,EAA4BP,CAAA,CAAE;UAAA,C,GAC9CM,IAAA,CAAC;YAAAW,SAAA,EAAe;YAAAV,QAAA,EACdD,IAAA,CAAAjB,WAAA;cAAA+B,SAAA,EAAuB;cAAAD,IAAA;YAAA,C;;;;YAIxB;MAAAA,IAAA,EACA;MAAApB,KAAA,EACC;MAAAQ,QAAA,EAEND,IAAA,CAAAX,gBAAA,IAAC;IAAA,C;;;;;;SA5BHe,E;CA+BJ","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["c","_c","React","ChevronIcon","VariableColorIcon","useTheme","useTranslation","Popup","PopupList","ThemeMenuContent","$","autoMode","setTheme","theme","t","t0","options","label","value","activeValue","_jsx","children","RadioGroup","map","t1","RadioGroupItem","active","onClick","ThemeMenu","onMobileOpen","_jsxs","className","role","tabIndex","type","size","direction","popupType","renderButton","t2","onKeyDown","aria","filter","Boolean","join"],"sources":["../../../../src/elements/UserMenu/ThemeMenu/index.tsx"],"sourcesContent":["'use client'\nimport React from 'react'\n\nimport { ChevronIcon } from '../../../icons/Chevron/index.js'\nimport { VariableColorIcon } from '../../../icons/VariableColor/index.js'\nimport { useTheme } from '../../../providers/Theme/index.js'\nimport { useTranslation } from '../../../providers/Translation/index.js'\nimport { Popup, PopupList } from '../../Popup/index.js'\n\nexport const ThemeMenuContent: React.FC = () => {\n const { autoMode, setTheme, theme } = useTheme()\n const { t } = useTranslation()\n\n const options: { label: string; value: 'auto' | 'dark' | 'light' }[] = [\n { label: t('general:auto'), value: 'auto' },\n { label: t('general:light'), value: 'light' },\n { label: t('general:dark'), value: 'dark' },\n ]\n\n const activeValue: 'auto' | 'dark' | 'light' = autoMode ? 'auto' : theme\n\n return (\n <div data-popup-prevent-close>\n <PopupList.RadioGroup>\n {options.map(({ label, value }) => (\n <PopupList.RadioGroupItem\n active={activeValue === value}\n key={value}\n onClick={() => setTheme(value)}\n >\n {label}\n </PopupList.RadioGroupItem>\n ))}\n </PopupList.RadioGroup>\n </div>\n )\n}\n\nexport const ThemeMenu: React.FC<{\n readonly onMobileOpen?: () => void\n}> = ({ onMobileOpen }) => {\n const { t } = useTranslation()\n\n if (onMobileOpen) {\n return (\n <button\n className=\"popup-button-list__button popup-button-list__button--submenu-trigger\"\n data-popup-prevent-close\n onClick={onMobileOpen}\n role=\"menuitem\"\n tabIndex={-1}\n type=\"button\"\n >\n <span className=\"popup-button-list__submenu-icon\">\n <VariableColorIcon size={24} />\n </span>\n <span className=\"popup-button-list__label\">{t('general:theme')}</span>\n <span className=\"popup-button-list__chevron\">\n <ChevronIcon direction=\"right\" size={24} />\n </span>\n </button>\n )\n }\n\n return (\n <Popup\n popupType=\"menu\"\n renderButton={({ active, onClick, onKeyDown, ...aria }) => (\n <button\n {...aria}\n className={[\n 'popup-button-list__button',\n 'popup-button-list__button--submenu-trigger',\n active && 'popup-button-list__button--selected',\n ]\n .filter(Boolean)\n .join(' ')}\n onClick={onClick}\n onKeyDown={onKeyDown}\n type=\"button\"\n >\n <span className=\"popup-button-list__submenu-icon\">\n <VariableColorIcon size={24} />\n </span>\n <span className=\"popup-button-list__label\">{t('general:theme')}</span>\n <span className=\"popup-button-list__chevron\">\n <ChevronIcon direction=\"right\" size={16} />\n </span>\n </button>\n )}\n side=\"left\"\n size=\"large\"\n theme=\"dark\"\n >\n <ThemeMenuContent />\n </Popup>\n )\n}\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;;AACA,OAAOC,KAAA,MAAW;AAElB,SAASC,WAAW,QAAQ;AAC5B,SAASC,iBAAiB,QAAQ;AAClC,SAASC,QAAQ,QAAQ;AACzB,SAASC,cAAc,QAAQ;AAC/B,SAASC,KAAK,EAAEC,SAAS,QAAQ;AAEjC,OAAO,MAAMC,gBAAA,GAA6BA,CAAA;EAAA,MAAAC,CAAA,GAAAT,EAAA;EACxC;IAAAU,QAAA;IAAAC,QAAA;IAAAC;EAAA,IAAsCR,QAAA;EACtC;IAAAS;EAAA,IAAcR,cAAA;EAAA,IAAAS,EAAA;EAAA,IAAAL,CAAA,QAAAC,QAAA,IAAAD,CAAA,QAAAE,QAAA,IAAAF,CAAA,QAAAI,CAAA,IAAAJ,CAAA,QAAAG,KAAA;IAEd,MAAAG,OAAA;MAAAC,KAAA,EACWH,CAAA,CAAE;MAAAI,KAAA,EAAwB;IAAA;MAAAD,KAAA,EAC1BH,CAAA,CAAE;MAAAI,KAAA,EAAyB;IAAA;MAAAD,KAAA,EAC3BH,CAAA,CAAE;MAAAI,KAAA,EAAwB;IAAA;IAGrC,MAAAC,WAAA,GAA+CR,QAAA,GAAW,SAASE,KAAA;IAGjEE,EAAA,GAAAK,IAAA,CAAC;MAAA;MAAAC,QAAA,EACCD,IAAA,CAAAZ,SAAA,CAAAc,UAAA;QAAAD,QAAA,EACGL,OAAA,CAAAO,GAAA,CAAAC,EAAA;UAAa;YAAAP,KAAA;YAAAC;UAAA,IAAAM,EAAgB;UAAA,OAC5BJ,IAAA,CAAAZ,SAAA,CAAAiB,cAAA;YAAAC,MAAA,EACUP,WAAA,KAAgBD,KAAA;YAAAS,OAAA,EAAAA,CAAA,KAETf,QAAA,CAASM,KAAA;YAAAG,QAAA,EAEvBJ;UAAA,GAHIC,KAAA;QAAA;MAAA,C;;;;;;;;;;SALbH,E;CAcJ;AAEA,OAAO,MAAMa,SAAA,GAERb,EAAA;EAAA,MAAAL,CAAA,GAAAT,EAAA;EAAC;IAAA4B;EAAA,IAAAd,EAAgB;EACpB;IAAAD;EAAA,IAAcR,cAAA;EAAA,IAEVuB,YAAA;IAAA,IAAAL,EAAA;IAAA,IAAAd,CAAA,QAAAmB,YAAA,IAAAnB,CAAA,QAAAI,CAAA;MAEAU,EAAA,GAAAM,KAAA,CAAC;QAAAC,SAAA,EACW;QAAA;QAAAJ,OAAA,EAEDE,YAAA;QAAAG,IAAA,EACJ;QAAAC,QAAA;QAAAC,IAAA,EAEA;QAAAb,QAAA,GAELD,IAAA,CAAC;UAAAW,SAAA,EAAe;UAAAV,QAAA,EACdD,IAAA,CAAAhB,iBAAA;YAAA+B,IAAA;UAAA,C;YAEFf,IAAA,CAAC;UAAAW,SAAA,EAAe;UAAAV,QAAA,EAA4BP,CAAA,CAAE;QAAA,C,GAC9CM,IAAA,CAAC;UAAAW,SAAA,EAAe;UAAAV,QAAA,EACdD,IAAA,CAAAjB,WAAA;YAAAiC,SAAA,EAAuB;YAAAD,IAAA;UAAA,C;;;;;;;;;WAb3BX,E;;;;IAoBFA,EAAA,GAAAJ,IAAA,CAAAb,KAAA;MAAA8B,SAAA,EACY;MAAAC,YAAA,EAAAC,EAAA;QACK;UAAAb,MAAA;UAAAC,OAAA;UAAAa,SAAA;UAAA,GAAAC;QAAA,IAAAF,EAAuC;QAAA,OACpDT,KAAA,CAAC;UAAA,GACKW,IAAI;UAAAV,SAAA,EACG,CACT,6BACA,8CACAL,MAAA,IAAU,uCAAAgB,MAAA,CAAAC,OAEF,EAAAC,IAAA,CACF;UAAAjB,OAAA;UAAAa,SAAA;UAAAN,IAAA,EAGH;UAAAb,QAAA,GAELD,IAAA,CAAC;YAAAW,SAAA,EAAe;YAAAV,QAAA,EACdD,IAAA,CAAAhB,iBAAA;cAAA+B,IAAA;YAAA,C;cAEFf,IAAA,CAAC;YAAAW,SAAA,EAAe;YAAAV,QAAA,EAA4BP,CAAA,CAAE;UAAA,C,GAC9CM,IAAA,CAAC;YAAAW,SAAA,EAAe;YAAAV,QAAA,EACdD,IAAA,CAAAjB,WAAA;cAAAiC,SAAA,EAAuB;cAAAD,IAAA;YAAA,C;;;;YAIxB;MAAAA,IAAA,EACA;MAAAtB,KAAA,EACC;MAAAQ,QAAA,EAEND,IAAA,CAAAX,gBAAA,IAAC;IAAA,C;;;;;;SA7BHe,E;CAgCJ","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/UserMenu/index.tsx"],"names":[],"mappings":"AAGA,OAAO,KAA8B,MAAM,OAAO,CAAA;AAElD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAA;AAcpE,OAAO,aAAa,CAAA;AAIpB,KAAK,aAAa,GAAG;IACnB,YAAY,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAC9B,kBAAkB,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IACpC,kBAAkB,CAAC,EAAE,qBAAqB,EAAE,CAAA;CAC7C,CAAA;AAED,eAAO,MAAM,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC,aAAa,CA+J5C,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/UserMenu/index.tsx"],"names":[],"mappings":"AAGA,OAAO,KAA2C,MAAM,OAAO,CAAA;AAE/D,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAA;AAcpE,OAAO,aAAa,CAAA;AAIpB,KAAK,aAAa,GAAG;IACnB,YAAY,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAC9B,kBAAkB,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IACpC,kBAAkB,CAAC,EAAE,qBAAqB,EAAE,CAAA;CAC7C,CAAA;AAED,eAAO,MAAM,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC,aAAa,CAgL5C,CAAA"}
@@ -4,7 +4,7 @@ import { c as _c } from "react/compiler-runtime";
4
4
  import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
5
5
  import { useWindowInfo } from '@faceless-ui/window-info';
6
6
  import { formatAdminURL } from 'payload/shared';
7
- import React, { useEffect, useState } from 'react';
7
+ import React, { useCallback, useEffect, useState } from 'react';
8
8
  import { Account } from '../../graphics/Account/index.js';
9
9
  import { LogOutIcon } from '../../icons/LogOut/index.js';
10
10
  import { useAuth } from '../../providers/Auth/index.js';
@@ -62,6 +62,7 @@ export const UserMenu = t0 => {
62
62
  } = t6;
63
63
  const isMobile = Boolean(smallBreak);
64
64
  const [activeMobileSubmenu, setActiveMobileSubmenu] = useState(null);
65
+ const setMobileSubmenuRef = _temp;
65
66
  let t7;
66
67
  let t8;
67
68
  if ($[0] !== isMobile) {
@@ -88,7 +89,7 @@ export const UserMenu = t0 => {
88
89
  const identifier = user?.username ?? user?.email ?? "";
89
90
  const hasMultipleLanguages = Array.isArray(languageOptions) && languageOptions.length > 1;
90
91
  const showThemeMenu = adminTheme === "all";
91
- const hasSettingsItems = settingsItemGroups.some(_temp);
92
+ const hasSettingsItems = settingsItemGroups.some(_temp2);
92
93
  const showPreferencesGroup = showThemeMenu || hasMultipleLanguages;
93
94
  const logoutHref = formatAdminURL({
94
95
  adminRoute,
@@ -134,11 +135,13 @@ export const UserMenu = t0 => {
134
135
  className: baseClass,
135
136
  horizontalAlign: "right",
136
137
  onToggleClose: t9,
138
+ popupType: "menu",
137
139
  renderButton: t10,
138
140
  size: "large",
139
141
  theme: "dark",
140
142
  verticalAlign: "bottom",
141
- children: isMobile && activeMobileSubmenu ? _jsxs(_Fragment, {
143
+ children: isMobile && activeMobileSubmenu ? _jsxs("div", {
144
+ ref: setMobileSubmenuRef,
142
145
  children: [activeMobileSubmenu === "theme" && _jsxs(_Fragment, {
143
146
  children: [_jsx(SubMenuHeader, {
144
147
  onBack: () => setActiveMobileSubmenu(null),
@@ -161,6 +164,8 @@ export const UserMenu = t0 => {
161
164
  children: [_jsxs("a", {
162
165
  className: `${baseClass}__profile`,
163
166
  href: accountHref,
167
+ role: "menuitem",
168
+ tabIndex: -1,
164
169
  children: [_jsx("div", {
165
170
  className: `${baseClass}__avatar`,
166
171
  children: _jsx(RenderCustomComponent, {
@@ -199,7 +204,19 @@ export const UserMenu = t0 => {
199
204
  })
200
205
  });
201
206
  };
202
- function _temp(group) {
207
+ function _temp(element) {
208
+ if (!element) {
209
+ return;
210
+ }
211
+ setTimeout(() => {
212
+ const firstMenuItem = element.querySelector("[role=\"menuitem\"], [role=\"menuitemcheckbox\"], [role=\"menuitemradio\"]");
213
+ if (firstMenuItem) {
214
+ firstMenuItem.tabIndex = 0;
215
+ firstMenuItem.focus();
216
+ }
217
+ });
218
+ }
219
+ function _temp2(group) {
203
220
  return group.items.length > 0;
204
221
  }
205
222
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["c","_c","useWindowInfo","formatAdminURL","React","useEffect","useState","Account","LogOutIcon","useAuth","useConfig","useTranslation","MenuSeparator","Popup","PopupList","RenderCustomComponent","LanguageMenu","LanguageMenuContent","SettingsMenu","SettingsMenuContent","SubMenuHeader","ThemeMenu","ThemeMenuContent","baseClass","UserMenu","t0","$","CustomAvatar","CustomLogoutButton","settingsItemGroups","t1","undefined","user","languageOptions","t","config","t2","getEntityConfig","admin","t3","routes","t4","t5","theme","adminTheme","userSlug","account","accountRoute","logout","logoutRoute","adminRoute","breakpoints","t6","s","smallBreak","isMobile","Boolean","activeMobileSubmenu","setActiveMobileSubmenu","t7","t8","userCollectionConfig","collectionSlug","useAsTitle","titleValue","titleString","identifier","username","email","hasMultipleLanguages","Array","isArray","length","showThemeMenu","hasSettingsItems","some","_temp","showPreferencesGroup","logoutHref","path","accountHref","t9","Symbol","for","t10","t11","active","ariaProps","_jsx","className","filter","join","type","children","CustomComponent","Fallback","caret","horizontalAlign","onToggleClose","renderButton","verticalAlign","_jsxs","_Fragment","onBack","title","groups","href","ButtonGroup","onMobileOpen","MenuItem","Button","icon","group","items"],"sources":["../../../src/elements/UserMenu/index.tsx"],"sourcesContent":["'use client'\nimport { useWindowInfo } from '@faceless-ui/window-info'\nimport { formatAdminURL } from 'payload/shared'\nimport React, { useEffect, useState } from 'react'\n\nimport type { UserMenuSettingsGroup } from './SettingsMenu/index.js'\n\nimport { Account } from '../../graphics/Account/index.js'\nimport { LogOutIcon } from '../../icons/LogOut/index.js'\nimport { useAuth } from '../../providers/Auth/index.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { MenuSeparator } from '../MenuSeparator/index.js'\nimport { Popup, PopupList } from '../Popup/index.js'\nimport { RenderCustomComponent } from '../RenderCustomComponent/index.js'\nimport { LanguageMenu, LanguageMenuContent } from './LanguageMenu/index.js'\nimport { SettingsMenu, SettingsMenuContent } from './SettingsMenu/index.js'\nimport { SubMenuHeader } from './SubMenuHeader/index.js'\nimport { ThemeMenu, ThemeMenuContent } from './ThemeMenu/index.js'\nimport './index.css'\n\nconst baseClass = 'user-menu'\n\ntype UserMenuProps = {\n CustomAvatar?: React.ReactNode\n CustomLogoutButton?: React.ReactNode\n settingsItemGroups?: UserMenuSettingsGroup[]\n}\n\nexport const UserMenu: React.FC<UserMenuProps> = ({\n CustomAvatar,\n CustomLogoutButton,\n settingsItemGroups = [],\n}) => {\n const { user } = useAuth()\n const { languageOptions, t } = useTranslation()\n const {\n config: {\n admin: {\n routes: { account: accountRoute, logout: logoutRoute },\n theme: adminTheme,\n user: userSlug,\n },\n routes: { admin: adminRoute },\n },\n getEntityConfig,\n } = useConfig()\n const {\n breakpoints: { s: smallBreak },\n } = useWindowInfo()\n\n const isMobile = Boolean(smallBreak)\n\n const [activeMobileSubmenu, setActiveMobileSubmenu] = useState<\n 'language' | 'settings' | 'theme' | null\n >(null)\n\n useEffect(() => {\n if (!isMobile) {\n setActiveMobileSubmenu(null)\n }\n }, [isMobile])\n\n const userCollectionConfig = getEntityConfig({ collectionSlug: userSlug })\n const useAsTitle = userCollectionConfig?.admin?.useAsTitle ?? 'email'\n const titleValue =\n useAsTitle !== 'email' && user ? (user as Record<string, unknown>)[useAsTitle] : undefined\n const titleString = typeof titleValue === 'string' ? titleValue : undefined\n\n const identifier = user?.username ?? user?.email ?? ''\n const hasMultipleLanguages = Array.isArray(languageOptions) && languageOptions.length > 1\n const showThemeMenu = adminTheme === 'all'\n const hasSettingsItems = settingsItemGroups.some((group) => group.items.length > 0)\n const showPreferencesGroup = showThemeMenu || hasMultipleLanguages\n\n const logoutHref = formatAdminURL({ adminRoute, path: logoutRoute })\n const accountHref = formatAdminURL({ adminRoute, path: accountRoute })\n\n return (\n <Popup\n caret={false}\n className={baseClass}\n horizontalAlign=\"right\"\n onToggleClose={() => setActiveMobileSubmenu(null)}\n renderButton={({ active, ...ariaProps }) => (\n <button\n {...ariaProps}\n aria-label={t('authentication:account')}\n className={[`${baseClass}__trigger`, active && `${baseClass}__trigger--active`]\n .filter(Boolean)\n .join(' ')}\n type=\"button\"\n >\n <RenderCustomComponent CustomComponent={CustomAvatar} Fallback={<Account />} />\n </button>\n )}\n size=\"large\"\n theme=\"dark\"\n verticalAlign=\"bottom\"\n >\n {isMobile && activeMobileSubmenu ? (\n // Mobile submenu panel\n <>\n {activeMobileSubmenu === 'theme' && (\n <>\n <SubMenuHeader\n onBack={() => setActiveMobileSubmenu(null)}\n title={t('general:theme')}\n />\n <ThemeMenuContent />\n </>\n )}\n {activeMobileSubmenu === 'language' && (\n <>\n <SubMenuHeader\n onBack={() => setActiveMobileSubmenu(null)}\n title={t('general:language')}\n />\n <LanguageMenuContent />\n </>\n )}\n {activeMobileSubmenu === 'settings' && (\n <>\n <SubMenuHeader\n onBack={() => setActiveMobileSubmenu(null)}\n title={t('general:settings')}\n />\n <SettingsMenuContent groups={settingsItemGroups} />\n </>\n )}\n </>\n ) : (\n // Normal menu content (desktop always; mobile when no active submenu)\n <>\n {/* Profile header */}\n <a className={`${baseClass}__profile`} href={accountHref}>\n <div className={`${baseClass}__avatar`}>\n <RenderCustomComponent CustomComponent={CustomAvatar} Fallback={<Account />} />\n </div>\n <div>\n {titleString && <p className={`${baseClass}__name`}>{titleString}</p>}\n {identifier && <p className={`${baseClass}__identifier`}>{identifier}</p>}\n </div>\n </a>\n\n {/* Preferences group: Theme + Language */}\n {showPreferencesGroup && (\n <PopupList.ButtonGroup>\n {showThemeMenu && (\n <ThemeMenu\n onMobileOpen={isMobile ? () => setActiveMobileSubmenu('theme') : undefined}\n />\n )}\n {hasMultipleLanguages && (\n <LanguageMenu\n onMobileOpen={isMobile ? () => setActiveMobileSubmenu('language') : undefined}\n />\n )}\n </PopupList.ButtonGroup>\n )}\n\n <MenuSeparator />\n\n {/* Settings group */}\n {hasSettingsItems && (\n <>\n <PopupList.ButtonGroup>\n <SettingsMenu\n groups={settingsItemGroups}\n onMobileOpen={isMobile ? () => setActiveMobileSubmenu('settings') : undefined}\n />\n </PopupList.ButtonGroup>\n <MenuSeparator />\n </>\n )}\n\n {/* Account actions */}\n <PopupList.MenuItem>\n {CustomLogoutButton ?? (\n <PopupList.Button href={logoutHref} icon={<LogOutIcon />}>\n {t('authentication:logOut')}\n </PopupList.Button>\n )}\n </PopupList.MenuItem>\n </>\n )}\n </Popup>\n )\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["c","_c","useWindowInfo","formatAdminURL","React","useCallback","useEffect","useState","Account","LogOutIcon","useAuth","useConfig","useTranslation","MenuSeparator","Popup","PopupList","RenderCustomComponent","LanguageMenu","LanguageMenuContent","SettingsMenu","SettingsMenuContent","SubMenuHeader","ThemeMenu","ThemeMenuContent","baseClass","UserMenu","t0","$","CustomAvatar","CustomLogoutButton","settingsItemGroups","t1","undefined","user","languageOptions","t","config","t2","getEntityConfig","admin","t3","routes","t4","t5","theme","adminTheme","userSlug","account","accountRoute","logout","logoutRoute","adminRoute","breakpoints","t6","s","smallBreak","isMobile","Boolean","activeMobileSubmenu","setActiveMobileSubmenu","setMobileSubmenuRef","_temp","t7","t8","userCollectionConfig","collectionSlug","useAsTitle","titleValue","titleString","identifier","username","email","hasMultipleLanguages","Array","isArray","length","showThemeMenu","hasSettingsItems","some","_temp2","showPreferencesGroup","logoutHref","path","accountHref","t9","Symbol","for","t10","t11","active","ariaProps","_jsx","className","filter","join","type","children","CustomComponent","Fallback","caret","horizontalAlign","onToggleClose","popupType","renderButton","verticalAlign","_jsxs","ref","_Fragment","onBack","title","groups","href","role","tabIndex","ButtonGroup","onMobileOpen","MenuItem","Button","icon","element","setTimeout","firstMenuItem","querySelector","focus","group","items"],"sources":["../../../src/elements/UserMenu/index.tsx"],"sourcesContent":["'use client'\nimport { useWindowInfo } from '@faceless-ui/window-info'\nimport { formatAdminURL } from 'payload/shared'\nimport React, { useCallback, useEffect, useState } from 'react'\n\nimport type { UserMenuSettingsGroup } from './SettingsMenu/index.js'\n\nimport { Account } from '../../graphics/Account/index.js'\nimport { LogOutIcon } from '../../icons/LogOut/index.js'\nimport { useAuth } from '../../providers/Auth/index.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { MenuSeparator } from '../MenuSeparator/index.js'\nimport { Popup, PopupList } from '../Popup/index.js'\nimport { RenderCustomComponent } from '../RenderCustomComponent/index.js'\nimport { LanguageMenu, LanguageMenuContent } from './LanguageMenu/index.js'\nimport { SettingsMenu, SettingsMenuContent } from './SettingsMenu/index.js'\nimport { SubMenuHeader } from './SubMenuHeader/index.js'\nimport { ThemeMenu, ThemeMenuContent } from './ThemeMenu/index.js'\nimport './index.css'\n\nconst baseClass = 'user-menu'\n\ntype UserMenuProps = {\n CustomAvatar?: React.ReactNode\n CustomLogoutButton?: React.ReactNode\n settingsItemGroups?: UserMenuSettingsGroup[]\n}\n\nexport const UserMenu: React.FC<UserMenuProps> = ({\n CustomAvatar,\n CustomLogoutButton,\n settingsItemGroups = [],\n}) => {\n const { user } = useAuth()\n const { languageOptions, t } = useTranslation()\n const {\n config: {\n admin: {\n routes: { account: accountRoute, logout: logoutRoute },\n theme: adminTheme,\n user: userSlug,\n },\n routes: { admin: adminRoute },\n },\n getEntityConfig,\n } = useConfig()\n const {\n breakpoints: { s: smallBreak },\n } = useWindowInfo()\n\n const isMobile = Boolean(smallBreak)\n\n const [activeMobileSubmenu, setActiveMobileSubmenu] = useState<\n 'language' | 'settings' | 'theme' | null\n >(null)\n\n const setMobileSubmenuRef = useCallback((element: HTMLDivElement | null) => {\n if (!element) {\n return\n }\n\n setTimeout(() => {\n const firstMenuItem = element.querySelector<HTMLElement>(\n '[role=\"menuitem\"], [role=\"menuitemcheckbox\"], [role=\"menuitemradio\"]',\n )\n if (firstMenuItem) {\n firstMenuItem.tabIndex = 0\n firstMenuItem.focus()\n }\n })\n }, [])\n\n useEffect(() => {\n if (!isMobile) {\n setActiveMobileSubmenu(null)\n }\n }, [isMobile])\n\n const userCollectionConfig = getEntityConfig({ collectionSlug: userSlug })\n const useAsTitle = userCollectionConfig?.admin?.useAsTitle ?? 'email'\n const titleValue =\n useAsTitle !== 'email' && user ? (user as Record<string, unknown>)[useAsTitle] : undefined\n const titleString = typeof titleValue === 'string' ? titleValue : undefined\n\n const identifier = user?.username ?? user?.email ?? ''\n const hasMultipleLanguages = Array.isArray(languageOptions) && languageOptions.length > 1\n const showThemeMenu = adminTheme === 'all'\n const hasSettingsItems = settingsItemGroups.some((group) => group.items.length > 0)\n const showPreferencesGroup = showThemeMenu || hasMultipleLanguages\n\n const logoutHref = formatAdminURL({ adminRoute, path: logoutRoute })\n const accountHref = formatAdminURL({ adminRoute, path: accountRoute })\n\n return (\n <Popup\n caret={false}\n className={baseClass}\n horizontalAlign=\"right\"\n onToggleClose={() => setActiveMobileSubmenu(null)}\n popupType=\"menu\"\n renderButton={({ active, ...ariaProps }) => (\n <button\n {...ariaProps}\n aria-label={t('authentication:account')}\n className={[`${baseClass}__trigger`, active && `${baseClass}__trigger--active`]\n .filter(Boolean)\n .join(' ')}\n type=\"button\"\n >\n <RenderCustomComponent CustomComponent={CustomAvatar} Fallback={<Account />} />\n </button>\n )}\n size=\"large\"\n theme=\"dark\"\n verticalAlign=\"bottom\"\n >\n {isMobile && activeMobileSubmenu ? (\n // Mobile submenu panel\n <div ref={setMobileSubmenuRef}>\n {activeMobileSubmenu === 'theme' && (\n <>\n <SubMenuHeader\n onBack={() => setActiveMobileSubmenu(null)}\n title={t('general:theme')}\n />\n <ThemeMenuContent />\n </>\n )}\n {activeMobileSubmenu === 'language' && (\n <>\n <SubMenuHeader\n onBack={() => setActiveMobileSubmenu(null)}\n title={t('general:language')}\n />\n <LanguageMenuContent />\n </>\n )}\n {activeMobileSubmenu === 'settings' && (\n <>\n <SubMenuHeader\n onBack={() => setActiveMobileSubmenu(null)}\n title={t('general:settings')}\n />\n <SettingsMenuContent groups={settingsItemGroups} />\n </>\n )}\n </div>\n ) : (\n // Normal menu content (desktop always; mobile when no active submenu)\n <>\n {/* Profile header */}\n <a className={`${baseClass}__profile`} href={accountHref} role=\"menuitem\" tabIndex={-1}>\n <div className={`${baseClass}__avatar`}>\n <RenderCustomComponent CustomComponent={CustomAvatar} Fallback={<Account />} />\n </div>\n <div>\n {titleString && <p className={`${baseClass}__name`}>{titleString}</p>}\n {identifier && <p className={`${baseClass}__identifier`}>{identifier}</p>}\n </div>\n </a>\n\n {/* Preferences group: Theme + Language */}\n {showPreferencesGroup && (\n <PopupList.ButtonGroup>\n {showThemeMenu && (\n <ThemeMenu\n onMobileOpen={isMobile ? () => setActiveMobileSubmenu('theme') : undefined}\n />\n )}\n {hasMultipleLanguages && (\n <LanguageMenu\n onMobileOpen={isMobile ? () => setActiveMobileSubmenu('language') : undefined}\n />\n )}\n </PopupList.ButtonGroup>\n )}\n\n <MenuSeparator />\n\n {/* Settings group */}\n {hasSettingsItems && (\n <>\n <PopupList.ButtonGroup>\n <SettingsMenu\n groups={settingsItemGroups}\n onMobileOpen={isMobile ? () => setActiveMobileSubmenu('settings') : undefined}\n />\n </PopupList.ButtonGroup>\n <MenuSeparator />\n </>\n )}\n\n {/* Account actions */}\n <PopupList.MenuItem>\n {CustomLogoutButton ?? (\n <PopupList.Button href={logoutHref} icon={<LogOutIcon />}>\n {t('authentication:logOut')}\n </PopupList.Button>\n )}\n </PopupList.MenuItem>\n </>\n )}\n </Popup>\n )\n}\n"],"mappings":"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","ignoreList":[]}
@@ -83,7 +83,7 @@ export const RelationshipFilter = props => {
83
83
  const query = {
84
84
  depth: 0,
85
85
  limit: maxResultsPerRequest,
86
- locale: locale.code,
86
+ locale: locale?.code,
87
87
  page: loadedRelationship.nextPage,
88
88
  select: {
89
89
  [fieldToSearch]: true
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["formatAdminURL","qs","React","useCallback","useEffect","useReducer","useState","useDebounce","useEffectEvent","useConfig","useLocale","useTranslation","ReactSelect","optionsReducer","baseClass","maxResultsPerRequest","RelationshipFilter","props","disabled","field","admin","hasMany","relationTo","filterOptions","onChange","operator","value","placeholder","undefined","isSortable","isMultiValue","includes","config","routes","api","getEntityConfig","hasMultipleRelations","Array","isArray","options","dispatchOptions","search","setSearch","debouncedSearch","errorLoading","setErrorLoading","hasLoadedFirstOptions","setHasLoadedFirstOptions","i18n","t","locale","relationSlugs","loadedRelationships","useRef","Map","map","relation","hasLoadedAll","nextPage","addOptions","data","collection","collectionSlug","type","loadOptions","abortController","relationSlug","loadedRelationship","current","get","fieldToSearch","useAsTitle","where","and","query","depth","limit","code","page","select","push","like","response","fetch","apiRoute","path","stringify","addQueryPrefix","credentials","headers","language","signal","ok","json","docs","length","set","e","aborted","console","error","handleScrollToBottom","relationshipToLoad","entries","next","AbortController","findOptionsByValue","val","matchedOption","forEach","opt","some","subOpt","find","valueWithRelation","handleInputChange","input","required","addOptionByID","id","relations","abortControllers","controller","abort","_err","matchedOptions","option","i","classes","filter","Boolean","join","valueToRender","_jsx","className","isMulti","selected","onInputChange","onMenuScrollToBottom"],"sources":["../../../../../src/elements/WhereBuilder/Condition/Relationship/index.tsx"],"sourcesContent":["'use client'\nimport type { PaginatedDocs, Where } from 'payload'\n\nimport { formatAdminURL } from 'payload/shared'\nimport * as qs from 'qs-esm'\nimport React, { useCallback, useEffect, useReducer, useState } from 'react'\n\nimport type { Option } from '../../../ReactSelect/types.js'\nimport type { RelationshipFilterProps as Props, ValueWithRelation } from './types.js'\n\nimport { useDebounce } from '../../../../hooks/useDebounce.js'\nimport { useEffectEvent } from '../../../../hooks/useEffectEvent.js'\nimport { useConfig } from '../../../../providers/Config/index.js'\nimport { useLocale } from '../../../../providers/Locale/index.js'\nimport { useTranslation } from '../../../../providers/Translation/index.js'\nimport { ReactSelect } from '../../../ReactSelect/index.js'\nimport './index.css'\nimport optionsReducer from './optionsReducer.js'\n\nconst baseClass = 'condition-value-relationship'\n\nconst maxResultsPerRequest = 10\n\nexport const RelationshipFilter: React.FC<Props> = (props) => {\n const {\n disabled,\n field: { admin = {}, hasMany, relationTo },\n filterOptions,\n onChange,\n operator,\n value,\n } = props\n\n const placeholder = 'placeholder' in admin ? admin?.placeholder : undefined\n const isSortable = admin?.isSortable\n\n const isMultiValue = hasMany || ['in', 'not_in'].includes(operator)\n\n const {\n config: {\n routes: { api },\n },\n getEntityConfig,\n } = useConfig()\n\n const hasMultipleRelations = Array.isArray(relationTo)\n const [options, dispatchOptions] = useReducer(optionsReducer, [])\n const [search, setSearch] = useState('')\n const debouncedSearch = useDebounce(search, 300)\n const [errorLoading, setErrorLoading] = useState('')\n const [hasLoadedFirstOptions, setHasLoadedFirstOptions] = useState(false)\n const { i18n, t } = useTranslation()\n const locale = useLocale()\n\n const relationSlugs = hasMultipleRelations ? relationTo : [relationTo]\n\n const loadedRelationships = React.useRef<\n Map<\n string,\n {\n hasLoadedAll: boolean\n nextPage: number\n }\n >\n >(\n new Map(\n relationSlugs.map((relation) => [\n relation,\n {\n hasLoadedAll: false,\n nextPage: 1,\n },\n ]),\n ),\n )\n\n const addOptions = useCallback(\n (data, relation) => {\n const collection = getEntityConfig({ collectionSlug: relation })\n dispatchOptions({ type: 'ADD', collection, data, hasMultipleRelations, i18n, relation })\n },\n [hasMultipleRelations, i18n, getEntityConfig],\n )\n\n const loadOptions = useEffectEvent(\n async ({\n abortController,\n relationSlug,\n }: {\n abortController: AbortController\n relationSlug: string\n }) => {\n const loadedRelationship = loadedRelationships.current.get(relationSlug)\n\n if (relationSlug && !loadedRelationship.hasLoadedAll) {\n const collection = getEntityConfig({\n collectionSlug: relationSlug,\n })\n\n const fieldToSearch = collection?.admin?.useAsTitle || 'id'\n\n const where: Where = {\n and: [],\n }\n\n const query = {\n depth: 0,\n limit: maxResultsPerRequest,\n locale: locale.code,\n page: loadedRelationship.nextPage,\n select: {\n [fieldToSearch]: true,\n },\n where,\n }\n\n if (filterOptions && filterOptions?.[relationSlug]) {\n query.where.and.push(filterOptions[relationSlug])\n }\n\n if (debouncedSearch) {\n query.where.and.push({\n [fieldToSearch]: {\n like: debouncedSearch,\n },\n })\n }\n\n try {\n const response = await fetch(\n formatAdminURL({\n apiRoute: api,\n path: `/${relationSlug}${qs.stringify(query, { addQueryPrefix: true })}`,\n }),\n {\n credentials: 'include',\n headers: {\n 'Accept-Language': i18n.language,\n },\n signal: abortController.signal,\n },\n )\n\n if (response.ok) {\n const data: PaginatedDocs = await response.json()\n if (data.docs.length > 0) {\n addOptions(data, relationSlug)\n\n if (data.nextPage) {\n loadedRelationships.current.set(relationSlug, {\n hasLoadedAll: false,\n nextPage: data.nextPage,\n })\n } else {\n loadedRelationships.current.set(relationSlug, {\n hasLoadedAll: true,\n nextPage: null,\n })\n }\n }\n } else {\n setErrorLoading(t('error:unspecific'))\n }\n } catch (e) {\n if (!abortController.signal.aborted) {\n console.error(e) // eslint-disable-line no-console\n }\n }\n }\n\n setHasLoadedFirstOptions(true)\n },\n )\n\n const handleScrollToBottom = React.useCallback(() => {\n const relationshipToLoad = loadedRelationships.current.entries().next().value\n\n if (relationshipToLoad[0] && !relationshipToLoad[1].hasLoadedAll) {\n const abortController = new AbortController()\n\n void loadOptions({\n abortController,\n relationSlug: relationshipToLoad[0],\n })\n }\n }, [])\n\n const findOptionsByValue = useCallback((): Option | Option[] => {\n if (value) {\n if (isMultiValue) {\n if (Array.isArray(value)) {\n return value.map((val) => {\n if (hasMultipleRelations) {\n let matchedOption: Option\n\n options.forEach((opt) => {\n if (opt.options) {\n opt.options.some((subOpt) => {\n if (subOpt?.value == val.value) {\n matchedOption = subOpt\n return true\n }\n\n return false\n })\n }\n })\n\n return matchedOption\n }\n\n return options.find((opt) => opt.value == val)\n })\n }\n\n return undefined\n }\n\n if (hasMultipleRelations) {\n let matchedOption: Option\n\n const valueWithRelation = value as ValueWithRelation\n\n options.forEach((opt) => {\n if (opt?.options) {\n opt.options.some((subOpt) => {\n if (subOpt?.value == valueWithRelation.value) {\n matchedOption = subOpt\n return true\n }\n return false\n })\n }\n })\n\n return matchedOption\n }\n\n return options.find((opt) => opt.value == value)\n }\n\n return undefined\n }, [isMultiValue, hasMultipleRelations, value, options])\n\n const handleInputChange = useCallback(\n (input: string) => {\n if (input !== search) {\n dispatchOptions({ type: 'CLEAR', i18n, required: false })\n\n const relationSlugs = Array.isArray(relationTo) ? relationTo : [relationTo]\n\n loadedRelationships.current = new Map(\n relationSlugs.map((relation) => [\n relation,\n {\n hasLoadedAll: false,\n nextPage: 1,\n },\n ]),\n )\n\n setSearch(input)\n }\n },\n [i18n, relationTo, search],\n )\n\n const addOptionByID = useCallback(\n async (id, relation) => {\n if (!errorLoading && id !== 'null' && id && relation) {\n const response = await fetch(\n formatAdminURL({ apiRoute: api, path: `/${relation}/${id}?depth=0` }),\n {\n credentials: 'include',\n headers: {\n 'Accept-Language': i18n.language,\n },\n },\n )\n\n if (response.ok) {\n const data = await response.json()\n addOptions({ docs: [data] }, relation)\n } else {\n // eslint-disable-next-line no-console\n console.error(t('error:loadingDocument', { id }))\n }\n }\n },\n [i18n, addOptions, api, errorLoading, t],\n )\n\n /**\n * When `relationTo` changes externally, reset the options and reload them from scratch\n * The `loadOptions` dependency is a useEffectEvent which has no dependencies of its own\n * This means we can safely depend on it without it triggering this effect to run\n * This is useful because this effect should _only_ run when `relationTo` changes\n */\n useEffect(() => {\n const relations = Array.isArray(relationTo) ? relationTo : [relationTo]\n\n loadedRelationships.current = new Map(\n relations.map((relation) => [\n relation,\n {\n hasLoadedAll: false,\n nextPage: 1,\n },\n ]),\n )\n\n dispatchOptions({ type: 'CLEAR', i18n, required: false })\n setHasLoadedFirstOptions(false)\n\n const abortControllers: AbortController[] = []\n\n relations.forEach((relation) => {\n const abortController = new AbortController()\n\n void loadOptions({\n abortController,\n relationSlug: relation,\n })\n\n abortControllers.push(abortController)\n })\n\n return () => {\n abortControllers.forEach((controller) => {\n if (controller.signal) {\n try {\n controller.abort()\n } catch (_err) {\n // swallow error\n }\n }\n })\n }\n }, [i18n, relationTo, debouncedSearch, filterOptions])\n\n /**\n * Load any other options that might exist in the value that were not loaded already\n */\n useEffect(() => {\n if (value && hasLoadedFirstOptions) {\n if (isMultiValue) {\n const matchedOptions = findOptionsByValue()\n\n ;((matchedOptions as Option[]) || []).forEach((option, i) => {\n if (!option) {\n if (hasMultipleRelations) {\n void addOptionByID(value[i].value, value[i].relationTo)\n } else {\n void addOptionByID(value[i], relationTo)\n }\n }\n })\n } else {\n const matchedOption = findOptionsByValue()\n\n if (!matchedOption) {\n if (hasMultipleRelations) {\n const valueWithRelation = value as ValueWithRelation\n void addOptionByID(valueWithRelation.value, valueWithRelation.relationTo)\n } else {\n void addOptionByID(value, relationTo)\n }\n }\n }\n }\n }, [\n addOptionByID,\n findOptionsByValue,\n isMultiValue,\n hasMultipleRelations,\n relationTo,\n value,\n hasLoadedFirstOptions,\n ])\n\n const classes = ['field-type', baseClass, errorLoading && 'error-loading']\n .filter(Boolean)\n .join(' ')\n\n const valueToRender = (findOptionsByValue() || value) as Option\n\n return (\n <div className={classes}>\n {errorLoading ? (\n <div className={`${baseClass}__error-loading`}>{errorLoading}</div>\n ) : (\n <ReactSelect\n disabled={disabled}\n isMulti={isMultiValue}\n isSortable={isSortable}\n onChange={(selected) => {\n if (!selected) {\n onChange(null)\n return\n }\n\n if (isMultiValue && Array.isArray(selected)) {\n onChange(\n selected\n ? selected.map((option) => {\n if (hasMultipleRelations) {\n return {\n relationTo: option?.relationTo,\n value: option?.value,\n }\n }\n\n return option?.value\n })\n : null,\n )\n } else if (hasMultipleRelations && !Array.isArray(selected)) {\n onChange({\n relationTo: selected?.relationTo,\n value: selected?.value,\n })\n } else if (!Array.isArray(selected)) {\n onChange(selected?.value)\n }\n }}\n onInputChange={handleInputChange}\n onMenuScrollToBottom={handleScrollToBottom}\n options={options}\n placeholder={placeholder}\n value={valueToRender}\n />\n )}\n </div>\n )\n}\n"],"mappings":"AAAA;;;AAGA,SAASA,cAAc,QAAQ;AAC/B,YAAYC,EAAA,MAAQ;AACpB,OAAOC,KAAA,IAASC,WAAW,EAAEC,SAAS,EAAEC,UAAU,EAAEC,QAAQ,QAAQ;AAKpE,SAASC,WAAW,QAAQ;AAC5B,SAASC,cAAc,QAAQ;AAC/B,SAASC,SAAS,QAAQ;AAC1B,SAASC,SAAS,QAAQ;AAC1B,SAASC,cAAc,QAAQ;AAC/B,SAASC,WAAW,QAAQ;AAC5B,OAAO;AACP,OAAOC,cAAA,MAAoB;AAE3B,MAAMC,SAAA,GAAY;AAElB,MAAMC,oBAAA,GAAuB;AAE7B,OAAO,MAAMC,kBAAA,GAAuCC,KAAA;EAClD,MAAM;IACJC,QAAQ;IACRC,KAAA,EAAO;MAAEC,KAAA,GAAQ,CAAC,CAAC;MAAEC,OAAO;MAAEC;IAAU,CAAE;IAC1CC,aAAa;IACbC,QAAQ;IACRC,QAAQ;IACRC;EAAK,CACN,GAAGT,KAAA;EAEJ,MAAMU,WAAA,GAAc,iBAAiBP,KAAA,GAAQA,KAAA,EAAOO,WAAA,GAAcC,SAAA;EAClE,MAAMC,UAAA,GAAaT,KAAA,EAAOS,UAAA;EAE1B,MAAMC,YAAA,GAAeT,OAAA,IAAW,CAAC,MAAM,SAAS,CAACU,QAAQ,CAACN,QAAA;EAE1D,MAAM;IACJO,MAAA,EAAQ;MACNC,MAAA,EAAQ;QAAEC;MAAG;IAAE,CAChB;IACDC;EAAe,CAChB,GAAG1B,SAAA;EAEJ,MAAM2B,oBAAA,GAAuBC,KAAA,CAAMC,OAAO,CAAChB,UAAA;EAC3C,MAAM,CAACiB,OAAA,EAASC,eAAA,CAAgB,GAAGnC,UAAA,CAAWQ,cAAA,EAAgB,EAAE;EAChE,MAAM,CAAC4B,MAAA,EAAQC,SAAA,CAAU,GAAGpC,QAAA,CAAS;EACrC,MAAMqC,eAAA,GAAkBpC,WAAA,CAAYkC,MAAA,EAAQ;EAC5C,MAAM,CAACG,YAAA,EAAcC,eAAA,CAAgB,GAAGvC,QAAA,CAAS;EACjD,MAAM,CAACwC,qBAAA,EAAuBC,wBAAA,CAAyB,GAAGzC,QAAA,CAAS;EACnE,MAAM;IAAE0C,IAAI;IAAEC;EAAC,CAAE,GAAGtC,cAAA;EACpB,MAAMuC,MAAA,GAASxC,SAAA;EAEf,MAAMyC,aAAA,GAAgBf,oBAAA,GAAuBd,UAAA,GAAa,CAACA,UAAA,CAAW;EAEtE,MAAM8B,mBAAA,GAAsBlD,KAAA,CAAMmD,MAAM,CAStC,IAAIC,GAAA,CACFH,aAAA,CAAcI,GAAG,CAAEC,QAAA,IAAa,CAC9BA,QAAA,EACA;IACEC,YAAA,EAAc;IACdC,QAAA,EAAU;EACZ,EACD;EAIL,MAAMC,UAAA,GAAaxD,WAAA,CACjB,CAACyD,IAAA,EAAMJ,UAAA;IACL,MAAMK,UAAA,GAAa1B,eAAA,CAAgB;MAAE2B,cAAA,EAAgBN;IAAS;IAC9DhB,eAAA,CAAgB;MAAEuB,IAAA,EAAM;MAAOF,UAAA;MAAYD,IAAA;MAAMxB,oBAAA;MAAsBY,IAAA;MAAMQ,QAAA,EAAAA;IAAS;EACxF,GACA,CAACpB,oBAAA,EAAsBY,IAAA,EAAMb,eAAA,CAAgB;EAG/C,MAAM6B,WAAA,GAAcxD,cAAA,CAClB,OAAO;IACLyD,eAAe;IACfC;EAAY,CAIb;IACC,MAAMC,kBAAA,GAAqBf,mBAAA,CAAoBgB,OAAO,CAACC,GAAG,CAACH,YAAA;IAE3D,IAAIA,YAAA,IAAgB,CAACC,kBAAA,CAAmBV,YAAY,EAAE;MACpD,MAAMI,YAAA,GAAa1B,eAAA,CAAgB;QACjC2B,cAAA,EAAgBI;MAClB;MAEA,MAAMI,aAAA,GAAgBT,YAAA,EAAYzC,KAAA,EAAOmD,UAAA,IAAc;MAEvD,MAAMC,KAAA,GAAe;QACnBC,GAAA,EAAK;MACP;MAEA,MAAMC,KAAA,GAAQ;QACZC,KAAA,EAAO;QACPC,KAAA,EAAO7D,oBAAA;QACPmC,MAAA,EAAQA,MAAA,CAAO2B,IAAI;QACnBC,IAAA,EAAMX,kBAAA,CAAmBT,QAAQ;QACjCqB,MAAA,EAAQ;UACN,CAACT,aAAA,GAAgB;QACnB;QACAE;MACF;MAEA,IAAIjD,aAAA,IAAiBA,aAAA,GAAgB2C,YAAA,CAAa,EAAE;QAClDQ,KAAA,CAAMF,KAAK,CAACC,GAAG,CAACO,IAAI,CAACzD,aAAa,CAAC2C,YAAA,CAAa;MAClD;MAEA,IAAIvB,eAAA,EAAiB;QACnB+B,KAAA,CAAMF,KAAK,CAACC,GAAG,CAACO,IAAI,CAAC;UACnB,CAACV,aAAA,GAAgB;YACfW,IAAA,EAAMtC;UACR;QACF;MACF;MAEA,IAAI;QACF,MAAMuC,QAAA,GAAW,MAAMC,KAAA,CACrBnF,cAAA,CAAe;UACboF,QAAA,EAAUlD,GAAA;UACVmD,IAAA,EAAM,IAAInB,YAAA,GAAejE,EAAA,CAAGqF,SAAS,CAACZ,KAAA,EAAO;YAAEa,cAAA,EAAgB;UAAK;QACtE,IACA;UACEC,WAAA,EAAa;UACbC,OAAA,EAAS;YACP,mBAAmBzC,IAAA,CAAK0C;UAC1B;UACAC,MAAA,EAAQ1B,eAAA,CAAgB0B;QAC1B;QAGF,IAAIT,QAAA,CAASU,EAAE,EAAE;UACf,MAAMhC,MAAA,GAAsB,MAAMsB,QAAA,CAASW,IAAI;UAC/C,IAAIjC,MAAA,CAAKkC,IAAI,CAACC,MAAM,GAAG,GAAG;YACxBpC,UAAA,CAAWC,MAAA,EAAMM,YAAA;YAEjB,IAAIN,MAAA,CAAKF,QAAQ,EAAE;cACjBN,mBAAA,CAAoBgB,OAAO,CAAC4B,GAAG,CAAC9B,YAAA,EAAc;gBAC5CT,YAAA,EAAc;gBACdC,QAAA,EAAUE,MAAA,CAAKF;cACjB;YACF,OAAO;cACLN,mBAAA,CAAoBgB,OAAO,CAAC4B,GAAG,CAAC9B,YAAA,EAAc;gBAC5CT,YAAA,EAAc;gBACdC,QAAA,EAAU;cACZ;YACF;UACF;QACF,OAAO;UACLb,eAAA,CAAgBI,CAAA,CAAE;QACpB;MACF,EAAE,OAAOgD,CAAA,EAAG;QACV,IAAI,CAAChC,eAAA,CAAgB0B,MAAM,CAACO,OAAO,EAAE;UACnCC,OAAA,CAAQC,KAAK,CAACH,CAAA,GAAG;QACnB;MACF;IACF;IAEAlD,wBAAA,CAAyB;EAC3B;EAGF,MAAMsD,oBAAA,GAAuBnG,KAAA,CAAMC,WAAW,CAAC;IAC7C,MAAMmG,kBAAA,GAAqBlD,mBAAA,CAAoBgB,OAAO,CAACmC,OAAO,GAAGC,IAAI,GAAG9E,KAAK;IAE7E,IAAI4E,kBAAkB,CAAC,EAAE,IAAI,CAACA,kBAAkB,CAAC,EAAE,CAAC7C,YAAY,EAAE;MAChE,MAAMQ,iBAAA,GAAkB,IAAIwC,eAAA;MAE5B,KAAKzC,WAAA,CAAY;QACfC,eAAA,EAAAA,iBAAA;QACAC,YAAA,EAAcoC,kBAAkB,CAAC;MACnC;IACF;EACF,GAAG,EAAE;EAEL,MAAMI,kBAAA,GAAqBvG,WAAA,CAAY;IACrC,IAAIuB,KAAA,EAAO;MACT,IAAII,YAAA,EAAc;QAChB,IAAIO,KAAA,CAAMC,OAAO,CAACZ,KAAA,GAAQ;UACxB,OAAOA,KAAA,CAAM6B,GAAG,CAAEoD,GAAA;YAChB,IAAIvE,oBAAA,EAAsB;cACxB,IAAIwE,aAAA;cAEJrE,OAAA,CAAQsE,OAAO,CAAEC,GAAA;gBACf,IAAIA,GAAA,CAAIvE,OAAO,EAAE;kBACfuE,GAAA,CAAIvE,OAAO,CAACwE,IAAI,CAAEC,MAAA;oBAChB,IAAIA,MAAA,EAAQtF,KAAA,IAASiF,GAAA,CAAIjF,KAAK,EAAE;sBAC9BkF,aAAA,GAAgBI,MAAA;sBAChB,OAAO;oBACT;oBAEA,OAAO;kBACT;gBACF;cACF;cAEA,OAAOJ,aAAA;YACT;YAEA,OAAOrE,OAAA,CAAQ0E,IAAI,CAAEH,KAAA,IAAQA,KAAA,CAAIpF,KAAK,IAAIiF,GAAA;UAC5C;QACF;QAEA,OAAO/E,SAAA;MACT;MAEA,IAAIQ,oBAAA,EAAsB;QACxB,IAAIwE,eAAA;QAEJ,MAAMM,iBAAA,GAAoBxF,KAAA;QAE1Ba,OAAA,CAAQsE,OAAO,CAAEC,KAAA;UACf,IAAIA,KAAA,EAAKvE,OAAA,EAAS;YAChBuE,KAAA,CAAIvE,OAAO,CAACwE,IAAI,CAAEC,QAAA;cAChB,IAAIA,QAAA,EAAQtF,KAAA,IAASwF,iBAAA,CAAkBxF,KAAK,EAAE;gBAC5CkF,eAAA,GAAgBI,QAAA;gBAChB,OAAO;cACT;cACA,OAAO;YACT;UACF;QACF;QAEA,OAAOJ,eAAA;MACT;MAEA,OAAOrE,OAAA,CAAQ0E,IAAI,CAAEH,KAAA,IAAQA,KAAA,CAAIpF,KAAK,IAAIA,KAAA;IAC5C;IAEA,OAAOE,SAAA;EACT,GAAG,CAACE,YAAA,EAAcM,oBAAA,EAAsBV,KAAA,EAAOa,OAAA,CAAQ;EAEvD,MAAM4E,iBAAA,GAAoBhH,WAAA,CACvBiH,KAAA;IACC,IAAIA,KAAA,KAAU3E,MAAA,EAAQ;MACpBD,eAAA,CAAgB;QAAEuB,IAAA,EAAM;QAASf,IAAA;QAAMqE,QAAA,EAAU;MAAM;MAEvD,MAAMlE,eAAA,GAAgBd,KAAA,CAAMC,OAAO,CAAChB,UAAA,IAAcA,UAAA,GAAa,CAACA,UAAA,CAAW;MAE3E8B,mBAAA,CAAoBgB,OAAO,GAAG,IAAId,GAAA,CAChCH,eAAA,CAAcI,GAAG,CAAEC,UAAA,IAAa,CAC9BA,UAAA,EACA;QACEC,YAAA,EAAc;QACdC,QAAA,EAAU;MACZ,EACD;MAGHhB,SAAA,CAAU0E,KAAA;IACZ;EACF,GACA,CAACpE,IAAA,EAAM1B,UAAA,EAAYmB,MAAA,CAAO;EAG5B,MAAM6E,aAAA,GAAgBnH,WAAA,CACpB,OAAOoH,EAAA,EAAI/D,UAAA;IACT,IAAI,CAACZ,YAAA,IAAgB2E,EAAA,KAAO,UAAUA,EAAA,IAAM/D,UAAA,EAAU;MACpD,MAAM0B,UAAA,GAAW,MAAMC,KAAA,CACrBnF,cAAA,CAAe;QAAEoF,QAAA,EAAUlD,GAAA;QAAKmD,IAAA,EAAM,IAAI7B,UAAA,IAAY+D,EAAA;MAAa,IACnE;QACE/B,WAAA,EAAa;QACbC,OAAA,EAAS;UACP,mBAAmBzC,IAAA,CAAK0C;QAC1B;MACF;MAGF,IAAIR,UAAA,CAASU,EAAE,EAAE;QACf,MAAMhC,MAAA,GAAO,MAAMsB,UAAA,CAASW,IAAI;QAChClC,UAAA,CAAW;UAAEmC,IAAA,EAAM,CAAClC,MAAA;QAAM,GAAGJ,UAAA;MAC/B,OAAO;QACL;QACA2C,OAAA,CAAQC,KAAK,CAACnD,CAAA,CAAE,yBAAyB;UAAEsE;QAAG;MAChD;IACF;EACF,GACA,CAACvE,IAAA,EAAMW,UAAA,EAAYzB,GAAA,EAAKU,YAAA,EAAcK,CAAA,CAAE;EAG1C;;;;;;EAMA7C,SAAA,CAAU;IACR,MAAMoH,SAAA,GAAYnF,KAAA,CAAMC,OAAO,CAAChB,UAAA,IAAcA,UAAA,GAAa,CAACA,UAAA,CAAW;IAEvE8B,mBAAA,CAAoBgB,OAAO,GAAG,IAAId,GAAA,CAChCkE,SAAA,CAAUjE,GAAG,CAAEC,UAAA,IAAa,CAC1BA,UAAA,EACA;MACEC,YAAA,EAAc;MACdC,QAAA,EAAU;IACZ,EACD;IAGHlB,eAAA,CAAgB;MAAEuB,IAAA,EAAM;MAASf,IAAA;MAAMqE,QAAA,EAAU;IAAM;IACvDtE,wBAAA,CAAyB;IAEzB,MAAM0E,gBAAA,GAAsC,EAAE;IAE9CD,SAAA,CAAUX,OAAO,CAAErD,UAAA;MACjB,MAAMS,iBAAA,GAAkB,IAAIwC,eAAA;MAE5B,KAAKzC,WAAA,CAAY;QACfC,eAAA,EAAAA,iBAAA;QACAC,YAAA,EAAcV;MAChB;MAEAiE,gBAAA,CAAiBzC,IAAI,CAACf,iBAAA;IACxB;IAEA,OAAO;MACLwD,gBAAA,CAAiBZ,OAAO,CAAEa,UAAA;QACxB,IAAIA,UAAA,CAAW/B,MAAM,EAAE;UACrB,IAAI;YACF+B,UAAA,CAAWC,KAAK;UAClB,EAAE,OAAOC,IAAA,EAAM;YACb;UAAA;QAEJ;MACF;IACF;EACF,GAAG,CAAC5E,IAAA,EAAM1B,UAAA,EAAYqB,eAAA,EAAiBpB,aAAA,CAAc;EAErD;;;EAGAnB,SAAA,CAAU;IACR,IAAIsB,KAAA,IAASoB,qBAAA,EAAuB;MAClC,IAAIhB,YAAA,EAAc;QAChB,MAAM+F,cAAA,GAAiBnB,kBAAA;QAErB,CAAAmB,cAAC,IAA+B,EAAE,EAAEhB,OAAO,CAAC,CAACiB,MAAA,EAAQC,CAAA;UACrD,IAAI,CAACD,MAAA,EAAQ;YACX,IAAI1F,oBAAA,EAAsB;cACxB,KAAKkF,aAAA,CAAc5F,KAAK,CAACqG,CAAA,CAAE,CAACrG,KAAK,EAAEA,KAAK,CAACqG,CAAA,CAAE,CAACzG,UAAU;YACxD,OAAO;cACL,KAAKgG,aAAA,CAAc5F,KAAK,CAACqG,CAAA,CAAE,EAAEzG,UAAA;YAC/B;UACF;QACF;MACF,OAAO;QACL,MAAMsF,eAAA,GAAgBF,kBAAA;QAEtB,IAAI,CAACE,eAAA,EAAe;UAClB,IAAIxE,oBAAA,EAAsB;YACxB,MAAM8E,mBAAA,GAAoBxF,KAAA;YAC1B,KAAK4F,aAAA,CAAcJ,mBAAA,CAAkBxF,KAAK,EAAEwF,mBAAA,CAAkB5F,UAAU;UAC1E,OAAO;YACL,KAAKgG,aAAA,CAAc5F,KAAA,EAAOJ,UAAA;UAC5B;QACF;MACF;IACF;EACF,GAAG,CACDgG,aAAA,EACAZ,kBAAA,EACA5E,YAAA,EACAM,oBAAA,EACAd,UAAA,EACAI,KAAA,EACAoB,qBAAA,CACD;EAED,MAAMkF,OAAA,GAAU,CAAC,cAAclH,SAAA,EAAW8B,YAAA,IAAgB,gBAAgB,CACvEqF,MAAM,CAACC,OAAA,EACPC,IAAI,CAAC;EAER,MAAMC,aAAA,GAAiB1B,kBAAA,MAAwBhF,KAAA;EAE/C,oBACE2G,IAAA,CAAC;IAAIC,SAAA,EAAWN,OAAA;cACbpF,YAAA,gBACCyF,IAAA,CAAC;MAAIC,SAAA,EAAW,GAAGxH,SAAA,iBAA0B;gBAAG8B;sBAEhDyF,IAAA,CAACzH,WAAA;MACCM,QAAA,EAAUA,QAAA;MACVqH,OAAA,EAASzG,YAAA;MACTD,UAAA,EAAYA,UAAA;MACZL,QAAA,EAAWgH,QAAA;QACT,IAAI,CAACA,QAAA,EAAU;UACbhH,QAAA,CAAS;UACT;QACF;QAEA,IAAIM,YAAA,IAAgBO,KAAA,CAAMC,OAAO,CAACkG,QAAA,GAAW;UAC3ChH,QAAA,CACEgH,QAAA,GACIA,QAAA,CAASjF,GAAG,CAAEuE,QAAA;YACZ,IAAI1F,oBAAA,EAAsB;cACxB,OAAO;gBACLd,UAAA,EAAYwG,QAAA,EAAQxG,UAAA;gBACpBI,KAAA,EAAOoG,QAAA,EAAQpG;cACjB;YACF;YAEA,OAAOoG,QAAA,EAAQpG,KAAA;UACjB,KACA;QAER,OAAO,IAAIU,oBAAA,IAAwB,CAACC,KAAA,CAAMC,OAAO,CAACkG,QAAA,GAAW;UAC3DhH,QAAA,CAAS;YACPF,UAAA,EAAYkH,QAAA,EAAUlH,UAAA;YACtBI,KAAA,EAAO8G,QAAA,EAAU9G;UACnB;QACF,OAAO,IAAI,CAACW,KAAA,CAAMC,OAAO,CAACkG,QAAA,GAAW;UACnChH,QAAA,CAASgH,QAAA,EAAU9G,KAAA;QACrB;MACF;MACA+G,aAAA,EAAetB,iBAAA;MACfuB,oBAAA,EAAsBrC,oBAAA;MACtB9D,OAAA,EAASA,OAAA;MACTZ,WAAA,EAAaA,WAAA;MACbD,KAAA,EAAO0G;;;AAKjB","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["formatAdminURL","qs","React","useCallback","useEffect","useReducer","useState","useDebounce","useEffectEvent","useConfig","useLocale","useTranslation","ReactSelect","optionsReducer","baseClass","maxResultsPerRequest","RelationshipFilter","props","disabled","field","admin","hasMany","relationTo","filterOptions","onChange","operator","value","placeholder","undefined","isSortable","isMultiValue","includes","config","routes","api","getEntityConfig","hasMultipleRelations","Array","isArray","options","dispatchOptions","search","setSearch","debouncedSearch","errorLoading","setErrorLoading","hasLoadedFirstOptions","setHasLoadedFirstOptions","i18n","t","locale","relationSlugs","loadedRelationships","useRef","Map","map","relation","hasLoadedAll","nextPage","addOptions","data","collection","collectionSlug","type","loadOptions","abortController","relationSlug","loadedRelationship","current","get","fieldToSearch","useAsTitle","where","and","query","depth","limit","code","page","select","push","like","response","fetch","apiRoute","path","stringify","addQueryPrefix","credentials","headers","language","signal","ok","json","docs","length","set","e","aborted","console","error","handleScrollToBottom","relationshipToLoad","entries","next","AbortController","findOptionsByValue","val","matchedOption","forEach","opt","some","subOpt","find","valueWithRelation","handleInputChange","input","required","addOptionByID","id","relations","abortControllers","controller","abort","_err","matchedOptions","option","i","classes","filter","Boolean","join","valueToRender","_jsx","className","isMulti","selected","onInputChange","onMenuScrollToBottom"],"sources":["../../../../../src/elements/WhereBuilder/Condition/Relationship/index.tsx"],"sourcesContent":["'use client'\nimport type { PaginatedDocs, Where } from 'payload'\n\nimport { formatAdminURL } from 'payload/shared'\nimport * as qs from 'qs-esm'\nimport React, { useCallback, useEffect, useReducer, useState } from 'react'\n\nimport type { Option } from '../../../ReactSelect/types.js'\nimport type { RelationshipFilterProps as Props, ValueWithRelation } from './types.js'\n\nimport { useDebounce } from '../../../../hooks/useDebounce.js'\nimport { useEffectEvent } from '../../../../hooks/useEffectEvent.js'\nimport { useConfig } from '../../../../providers/Config/index.js'\nimport { useLocale } from '../../../../providers/Locale/index.js'\nimport { useTranslation } from '../../../../providers/Translation/index.js'\nimport { ReactSelect } from '../../../ReactSelect/index.js'\nimport './index.css'\nimport optionsReducer from './optionsReducer.js'\n\nconst baseClass = 'condition-value-relationship'\n\nconst maxResultsPerRequest = 10\n\nexport const RelationshipFilter: React.FC<Props> = (props) => {\n const {\n disabled,\n field: { admin = {}, hasMany, relationTo },\n filterOptions,\n onChange,\n operator,\n value,\n } = props\n\n const placeholder = 'placeholder' in admin ? admin?.placeholder : undefined\n const isSortable = admin?.isSortable\n\n const isMultiValue = hasMany || ['in', 'not_in'].includes(operator)\n\n const {\n config: {\n routes: { api },\n },\n getEntityConfig,\n } = useConfig()\n\n const hasMultipleRelations = Array.isArray(relationTo)\n const [options, dispatchOptions] = useReducer(optionsReducer, [])\n const [search, setSearch] = useState('')\n const debouncedSearch = useDebounce(search, 300)\n const [errorLoading, setErrorLoading] = useState('')\n const [hasLoadedFirstOptions, setHasLoadedFirstOptions] = useState(false)\n const { i18n, t } = useTranslation()\n const locale = useLocale()\n\n const relationSlugs = hasMultipleRelations ? relationTo : [relationTo]\n\n const loadedRelationships = React.useRef<\n Map<\n string,\n {\n hasLoadedAll: boolean\n nextPage: number\n }\n >\n >(\n new Map(\n relationSlugs.map((relation) => [\n relation,\n {\n hasLoadedAll: false,\n nextPage: 1,\n },\n ]),\n ),\n )\n\n const addOptions = useCallback(\n (data, relation) => {\n const collection = getEntityConfig({ collectionSlug: relation })\n dispatchOptions({ type: 'ADD', collection, data, hasMultipleRelations, i18n, relation })\n },\n [hasMultipleRelations, i18n, getEntityConfig],\n )\n\n const loadOptions = useEffectEvent(\n async ({\n abortController,\n relationSlug,\n }: {\n abortController: AbortController\n relationSlug: string\n }) => {\n const loadedRelationship = loadedRelationships.current.get(relationSlug)\n\n if (relationSlug && !loadedRelationship.hasLoadedAll) {\n const collection = getEntityConfig({\n collectionSlug: relationSlug,\n })\n\n const fieldToSearch = collection?.admin?.useAsTitle || 'id'\n\n const where: Where = {\n and: [],\n }\n\n const query = {\n depth: 0,\n limit: maxResultsPerRequest,\n locale: locale?.code,\n page: loadedRelationship.nextPage,\n select: {\n [fieldToSearch]: true,\n },\n where,\n }\n\n if (filterOptions && filterOptions?.[relationSlug]) {\n query.where.and.push(filterOptions[relationSlug])\n }\n\n if (debouncedSearch) {\n query.where.and.push({\n [fieldToSearch]: {\n like: debouncedSearch,\n },\n })\n }\n\n try {\n const response = await fetch(\n formatAdminURL({\n apiRoute: api,\n path: `/${relationSlug}${qs.stringify(query, { addQueryPrefix: true })}`,\n }),\n {\n credentials: 'include',\n headers: {\n 'Accept-Language': i18n.language,\n },\n signal: abortController.signal,\n },\n )\n\n if (response.ok) {\n const data: PaginatedDocs = await response.json()\n if (data.docs.length > 0) {\n addOptions(data, relationSlug)\n\n if (data.nextPage) {\n loadedRelationships.current.set(relationSlug, {\n hasLoadedAll: false,\n nextPage: data.nextPage,\n })\n } else {\n loadedRelationships.current.set(relationSlug, {\n hasLoadedAll: true,\n nextPage: null,\n })\n }\n }\n } else {\n setErrorLoading(t('error:unspecific'))\n }\n } catch (e) {\n if (!abortController.signal.aborted) {\n console.error(e) // eslint-disable-line no-console\n }\n }\n }\n\n setHasLoadedFirstOptions(true)\n },\n )\n\n const handleScrollToBottom = React.useCallback(() => {\n const relationshipToLoad = loadedRelationships.current.entries().next().value\n\n if (relationshipToLoad[0] && !relationshipToLoad[1].hasLoadedAll) {\n const abortController = new AbortController()\n\n void loadOptions({\n abortController,\n relationSlug: relationshipToLoad[0],\n })\n }\n }, [])\n\n const findOptionsByValue = useCallback((): Option | Option[] => {\n if (value) {\n if (isMultiValue) {\n if (Array.isArray(value)) {\n return value.map((val) => {\n if (hasMultipleRelations) {\n let matchedOption: Option\n\n options.forEach((opt) => {\n if (opt.options) {\n opt.options.some((subOpt) => {\n if (subOpt?.value == val.value) {\n matchedOption = subOpt\n return true\n }\n\n return false\n })\n }\n })\n\n return matchedOption\n }\n\n return options.find((opt) => opt.value == val)\n })\n }\n\n return undefined\n }\n\n if (hasMultipleRelations) {\n let matchedOption: Option\n\n const valueWithRelation = value as ValueWithRelation\n\n options.forEach((opt) => {\n if (opt?.options) {\n opt.options.some((subOpt) => {\n if (subOpt?.value == valueWithRelation.value) {\n matchedOption = subOpt\n return true\n }\n return false\n })\n }\n })\n\n return matchedOption\n }\n\n return options.find((opt) => opt.value == value)\n }\n\n return undefined\n }, [isMultiValue, hasMultipleRelations, value, options])\n\n const handleInputChange = useCallback(\n (input: string) => {\n if (input !== search) {\n dispatchOptions({ type: 'CLEAR', i18n, required: false })\n\n const relationSlugs = Array.isArray(relationTo) ? relationTo : [relationTo]\n\n loadedRelationships.current = new Map(\n relationSlugs.map((relation) => [\n relation,\n {\n hasLoadedAll: false,\n nextPage: 1,\n },\n ]),\n )\n\n setSearch(input)\n }\n },\n [i18n, relationTo, search],\n )\n\n const addOptionByID = useCallback(\n async (id, relation) => {\n if (!errorLoading && id !== 'null' && id && relation) {\n const response = await fetch(\n formatAdminURL({ apiRoute: api, path: `/${relation}/${id}?depth=0` }),\n {\n credentials: 'include',\n headers: {\n 'Accept-Language': i18n.language,\n },\n },\n )\n\n if (response.ok) {\n const data = await response.json()\n addOptions({ docs: [data] }, relation)\n } else {\n // eslint-disable-next-line no-console\n console.error(t('error:loadingDocument', { id }))\n }\n }\n },\n [i18n, addOptions, api, errorLoading, t],\n )\n\n /**\n * When `relationTo` changes externally, reset the options and reload them from scratch\n * The `loadOptions` dependency is a useEffectEvent which has no dependencies of its own\n * This means we can safely depend on it without it triggering this effect to run\n * This is useful because this effect should _only_ run when `relationTo` changes\n */\n useEffect(() => {\n const relations = Array.isArray(relationTo) ? relationTo : [relationTo]\n\n loadedRelationships.current = new Map(\n relations.map((relation) => [\n relation,\n {\n hasLoadedAll: false,\n nextPage: 1,\n },\n ]),\n )\n\n dispatchOptions({ type: 'CLEAR', i18n, required: false })\n setHasLoadedFirstOptions(false)\n\n const abortControllers: AbortController[] = []\n\n relations.forEach((relation) => {\n const abortController = new AbortController()\n\n void loadOptions({\n abortController,\n relationSlug: relation,\n })\n\n abortControllers.push(abortController)\n })\n\n return () => {\n abortControllers.forEach((controller) => {\n if (controller.signal) {\n try {\n controller.abort()\n } catch (_err) {\n // swallow error\n }\n }\n })\n }\n }, [i18n, relationTo, debouncedSearch, filterOptions])\n\n /**\n * Load any other options that might exist in the value that were not loaded already\n */\n useEffect(() => {\n if (value && hasLoadedFirstOptions) {\n if (isMultiValue) {\n const matchedOptions = findOptionsByValue()\n\n ;((matchedOptions as Option[]) || []).forEach((option, i) => {\n if (!option) {\n if (hasMultipleRelations) {\n void addOptionByID(value[i].value, value[i].relationTo)\n } else {\n void addOptionByID(value[i], relationTo)\n }\n }\n })\n } else {\n const matchedOption = findOptionsByValue()\n\n if (!matchedOption) {\n if (hasMultipleRelations) {\n const valueWithRelation = value as ValueWithRelation\n void addOptionByID(valueWithRelation.value, valueWithRelation.relationTo)\n } else {\n void addOptionByID(value, relationTo)\n }\n }\n }\n }\n }, [\n addOptionByID,\n findOptionsByValue,\n isMultiValue,\n hasMultipleRelations,\n relationTo,\n value,\n hasLoadedFirstOptions,\n ])\n\n const classes = ['field-type', baseClass, errorLoading && 'error-loading']\n .filter(Boolean)\n .join(' ')\n\n const valueToRender = (findOptionsByValue() || value) as Option\n\n return (\n <div className={classes}>\n {errorLoading ? (\n <div className={`${baseClass}__error-loading`}>{errorLoading}</div>\n ) : (\n <ReactSelect\n disabled={disabled}\n isMulti={isMultiValue}\n isSortable={isSortable}\n onChange={(selected) => {\n if (!selected) {\n onChange(null)\n return\n }\n\n if (isMultiValue && Array.isArray(selected)) {\n onChange(\n selected\n ? selected.map((option) => {\n if (hasMultipleRelations) {\n return {\n relationTo: option?.relationTo,\n value: option?.value,\n }\n }\n\n return option?.value\n })\n : null,\n )\n } else if (hasMultipleRelations && !Array.isArray(selected)) {\n onChange({\n relationTo: selected?.relationTo,\n value: selected?.value,\n })\n } else if (!Array.isArray(selected)) {\n onChange(selected?.value)\n }\n }}\n onInputChange={handleInputChange}\n onMenuScrollToBottom={handleScrollToBottom}\n options={options}\n placeholder={placeholder}\n value={valueToRender}\n />\n )}\n </div>\n )\n}\n"],"mappings":"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","ignoreList":[]}
@@ -55,6 +55,7 @@
55
55
  gap: var(--spacer-2);
56
56
  }
57
57
 
58
+ /* stylelint-disable-next-line plugin/no-max-width-media-query -- TODO: pre-existing; migrate to a mobile-first min-width query */
58
59
  @media (max-width: 768px) {
59
60
  .condition {
60
61
  display: block;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/elements/WhereBuilder/Condition/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAmD,MAAM,OAAO,CAAA;AAEvE,OAAO,KAAK,EACV,YAAY,EACZ,YAAY,EACZ,eAAe,EACf,eAAe,EACf,UAAU,EACV,KAAK,EACN,MAAM,aAAa,CAAA;AAEpB,MAAM,MAAM,KAAK,GAAG;IAClB,QAAQ,CAAC,YAAY,EAAE,YAAY,CAAA;IACnC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,mBAAmB,EAAE,OAAO,CAAA;IACrC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,aAAa,CAAC,EAAE,qBAAqB,CAAA;IAC9C,QAAQ,CAAC,gBAAgB,EAAE,OAAO,CAAA;IAClC,QAAQ,CAAC,IAAI,EAAE,KAAK,GAAG,IAAI,CAAA;IAC3B,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAA;IAC3B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,aAAa,EAAE,YAAY,EAAE,CAAA;IACtC,QAAQ,CAAC,eAAe,EAAE,eAAe,CAAA;IACzC,QAAQ,CAAC,cAAc,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IACzC,QAAQ,CAAC,eAAe,EAAE,eAAe,CAAA;IACzC,QAAQ,CAAC,UAAU,EAAE,UAAU,CAAA;IAC/B,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAA;CACtB,CAAA;AAED,OAAO,KAAK,EAAE,QAAQ,EAA2B,qBAAqB,EAAE,MAAM,SAAS,CAAA;AAcvF,OAAO,aAAa,CAAA;AAIpB,eAAO,MAAM,SAAS,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CAuMrC,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/elements/WhereBuilder/Condition/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAmD,MAAM,OAAO,CAAA;AAEvE,OAAO,KAAK,EACV,YAAY,EACZ,YAAY,EACZ,eAAe,EACf,eAAe,EACf,UAAU,EACV,KAAK,EACN,MAAM,aAAa,CAAA;AAEpB,MAAM,MAAM,KAAK,GAAG;IAClB,QAAQ,CAAC,YAAY,EAAE,YAAY,CAAA;IACnC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,mBAAmB,EAAE,OAAO,CAAA;IACrC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,aAAa,CAAC,EAAE,qBAAqB,CAAA;IAC9C,QAAQ,CAAC,gBAAgB,EAAE,OAAO,CAAA;IAClC,QAAQ,CAAC,IAAI,EAAE,KAAK,GAAG,IAAI,CAAA;IAC3B,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAA;IAC3B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,aAAa,EAAE,YAAY,EAAE,CAAA;IACtC,QAAQ,CAAC,eAAe,EAAE,eAAe,CAAA;IACzC,QAAQ,CAAC,cAAc,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IACzC,QAAQ,CAAC,eAAe,EAAE,eAAe,CAAA;IACzC,QAAQ,CAAC,UAAU,EAAE,UAAU,CAAA;IAC/B,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAA;CACtB,CAAA;AAED,OAAO,KAAK,EAAE,QAAQ,EAA2B,qBAAqB,EAAE,MAAM,SAAS,CAAA;AAcvF,OAAO,aAAa,CAAA;AAIpB,eAAO,MAAM,SAAS,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CA4MrC,CAAA"}
@@ -117,6 +117,7 @@ export const Condition = props => {
117
117
  className: `${baseClass}__join-label`,
118
118
  children: t('general:where')
119
119
  }) : /*#__PURE__*/_jsx(ReactSelect, {
120
+ "aria-label": t('general:filter'),
120
121
  classNames: {
121
122
  menu: () => 'condition__join-menu'
122
123
  },
@@ -143,8 +144,12 @@ export const Condition = props => {
143
144
  children: [/*#__PURE__*/_jsx("div", {
144
145
  className: `${baseClass}__field`,
145
146
  children: /*#__PURE__*/_jsx(ReactSelect, {
147
+ "aria-label": t('general:field'),
146
148
  disabled: disabled,
147
- filterOption: (option_1, inputValue) => (option_1?.data?.plainTextLabel || option_1.label).toLowerCase().includes(inputValue.toLowerCase()),
149
+ filterOption: (option_1, inputValue) => {
150
+ const label = typeof option_1?.data?.plainTextLabel === 'string' ? option_1.data.plainTextLabel : option_1.label;
151
+ return label.toLowerCase().includes(inputValue.toLowerCase());
152
+ },
148
153
  isClearable: false,
149
154
  onChange: handleFieldChange,
150
155
  options: reducedFields.filter(field_1 => !isFieldDisabled(field_1.field, 'filter')).map(f => ({
@@ -159,6 +164,7 @@ export const Condition = props => {
159
164
  }), /*#__PURE__*/_jsx("div", {
160
165
  className: `${baseClass}__operator`,
161
166
  children: /*#__PURE__*/_jsx(ReactSelect, {
167
+ "aria-label": t('general:filter'),
162
168
  disabled: disabled,
163
169
  isClearable: false,
164
170
  onChange: handleOperatorChange,
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["React","useCallback","useEffect","useRef","useState","isFieldDisabled","useDebounce","useEffectEvent","LineIcon","useTranslation","Button","ReactSelect","DefaultFilter","getOperatorValueTypes","baseClass","Condition","props","andIndex","disableRemoveButton","fieldPath","filterOptions","isFirstCondition","join","operator","orIndex","reducedFields","removeCondition","RenderedFilter","updateCondition","updateJoin","value","t","reducedField","find","field","internalValue","setInternalValue","debouncedValue","lastReportedValue","booleanSelect","includes","type","valueOptions","label","options","updateValue","normalizedValue","undefined","current","disabled","handleFieldChange","option","handleOperatorChange","operatorValueTypes","validOperatorValue","isValidValue","_jsx","className","_jsxs","classNames","menu","isClearable","onChange","filterOption","inputValue","data","plainTextLabel","toLowerCase","filter","map","f","operators","o","internalField","buttonStyle","icon","size","onClick"],"sources":["../../../../src/elements/WhereBuilder/Condition/index.tsx"],"sourcesContent":["'use client'\nimport React, { useCallback, useEffect, useRef, useState } from 'react'\n\nimport type {\n AddCondition,\n ReducedField,\n RemoveCondition,\n UpdateCondition,\n UpdateJoin,\n Value,\n} from '../types.js'\n\nexport type Props = {\n readonly addCondition: AddCondition\n readonly andIndex: number\n readonly disableRemoveButton: boolean\n readonly fieldPath: string\n readonly filterOptions?: ResolvedFilterOptions\n readonly isFirstCondition: boolean\n readonly join: 'and' | 'or'\n readonly operator: Operator\n readonly orIndex: number\n readonly reducedFields: ReducedField[]\n readonly removeCondition: RemoveCondition\n readonly RenderedFilter?: React.ReactNode\n readonly updateCondition: UpdateCondition\n readonly updateJoin: UpdateJoin\n readonly value: Value\n}\n\nimport type { Operator, Option as PayloadOption, ResolvedFilterOptions } from 'payload'\n\nimport { isFieldDisabled } from 'payload/shared'\n\nimport type { Option } from '../../ReactSelect/index.js'\n\nimport { useDebounce } from '../../../hooks/useDebounce.js'\nimport { useEffectEvent } from '../../../hooks/useEffectEvent.js'\nimport { LineIcon } from '../../../icons/Line/index.js'\nimport { useTranslation } from '../../../providers/Translation/index.js'\nimport { Button } from '../../Button/index.js'\nimport { ReactSelect } from '../../ReactSelect/index.js'\nimport { DefaultFilter } from './DefaultFilter/index.js'\nimport { getOperatorValueTypes } from './validOperators.js'\nimport './index.css'\n\nconst baseClass = 'condition'\n\nexport const Condition: React.FC<Props> = (props) => {\n const {\n andIndex,\n disableRemoveButton,\n fieldPath,\n filterOptions,\n isFirstCondition,\n join,\n operator,\n orIndex,\n reducedFields,\n removeCondition,\n RenderedFilter,\n updateCondition,\n updateJoin,\n value,\n } = props\n\n const { t } = useTranslation()\n\n const reducedField = reducedFields.find((field) => field.fieldPath === fieldPath)\n\n const [internalValue, setInternalValue] = useState<Value>(value)\n\n const debouncedValue = useDebounce(internalValue, 300)\n\n // Tracks the last value this row reported upward, so the downward sync below can tell our own\n // committed echo apart from a genuine external change (e.g. the row being cleared/reset).\n const lastReportedValue = useRef<Value>(value)\n\n const booleanSelect = ['exists'].includes(operator) || reducedField?.field?.type === 'checkbox'\n\n let valueOptions: PayloadOption[] = []\n\n if (booleanSelect) {\n valueOptions = [\n { label: t('general:true'), value: 'true' },\n { label: t('general:false'), value: 'false' },\n ]\n } else if (reducedField?.field && 'options' in reducedField.field) {\n valueOptions = reducedField.field.options\n }\n\n const updateValue = useEffectEvent(async (debouncedValue: Value) => {\n if (operator) {\n const normalizedValue =\n debouncedValue === null || debouncedValue === '' ? undefined : debouncedValue\n lastReportedValue.current = normalizedValue\n await updateCondition({\n type: 'value',\n andIndex,\n field: reducedField,\n operator,\n orIndex,\n value: normalizedValue,\n })\n }\n })\n\n useEffect(() => {\n void updateValue(debouncedValue)\n }, [debouncedValue])\n\n // Sync external value changes (e.g. the row being cleared or reset to a placeholder) down into\n // local state, but skip our own committed echo so this never clobbers in-progress typing.\n useEffect(() => {\n if (value !== lastReportedValue.current) {\n lastReportedValue.current = value\n setInternalValue(value)\n }\n }, [value])\n\n const disabled = !reducedField?.fieldPath || isFieldDisabled(reducedField?.field, 'filter')\n\n const handleFieldChange = useCallback(\n async (field: Option<string>) => {\n setInternalValue(undefined)\n await updateCondition({\n type: 'field',\n andIndex,\n field: reducedFields.find((option) => option.fieldPath === field.value),\n operator,\n orIndex,\n value: undefined,\n })\n },\n [andIndex, operator, orIndex, reducedFields, updateCondition],\n )\n\n const handleOperatorChange = useCallback(\n async (operator: Option<Operator>) => {\n const operatorValueTypes = getOperatorValueTypes(reducedField.field.type)\n const validOperatorValue = operatorValueTypes[operator.value] || 'any'\n const isValidValue =\n validOperatorValue === 'any' ||\n typeof value === validOperatorValue ||\n (validOperatorValue === 'boolean' && (value === 'true' || value === 'false'))\n\n if (!isValidValue) {\n // if the current value is not valid for the new operator\n // reset the value before passing it to updateCondition\n setInternalValue(undefined)\n }\n\n await updateCondition({\n type: 'operator',\n andIndex,\n field: reducedField,\n operator: operator.value,\n orIndex,\n value: isValidValue ? value : undefined,\n })\n },\n [andIndex, reducedField, orIndex, updateCondition, value],\n )\n\n return (\n <div className={baseClass}>\n <div className={`${baseClass}__wrap`}>\n <div className={`${baseClass}__join`}>\n {isFirstCondition ? (\n <span className={`${baseClass}__join-label`}>{t('general:where')}</span>\n ) : (\n <ReactSelect\n classNames={{\n menu: () => 'condition__join-menu',\n }}\n isClearable={false}\n onChange={(option: Option<'and' | 'or'>) =>\n updateJoin({ andIndex, join: option.value, orIndex })\n }\n options={[\n { label: t('general:and'), value: 'and' },\n { label: t('general:or'), value: 'or' },\n ]}\n value={{ label: join === 'and' ? t('general:and') : t('general:or'), value: join }}\n />\n )}\n </div>\n <div className={`${baseClass}__inputs`}>\n <div className={`${baseClass}__field`}>\n <ReactSelect\n disabled={disabled}\n filterOption={(option, inputValue) =>\n ((option?.data?.plainTextLabel as string) || option.label)\n .toLowerCase()\n .includes(inputValue.toLowerCase())\n }\n isClearable={false}\n onChange={handleFieldChange}\n options={reducedFields\n .filter((field) => !isFieldDisabled(field.field, 'filter'))\n .map((f) => ({ ...f, value: f.fieldPath }))}\n value={reducedField ? { ...reducedField, value: reducedField.fieldPath } : undefined}\n />\n </div>\n <div className={`${baseClass}__operator`}>\n <ReactSelect\n disabled={disabled}\n isClearable={false}\n onChange={handleOperatorChange}\n options={reducedField?.operators}\n value={reducedField?.operators.find((o) => operator === o.value) || null}\n />\n </div>\n <div className={`${baseClass}__value`}>\n {RenderedFilter || (\n <DefaultFilter\n booleanSelect={booleanSelect}\n disabled={\n !operator || !reducedField || isFieldDisabled(reducedField?.field, 'filter')\n }\n filterOptions={filterOptions}\n internalField={reducedField}\n onChange={setInternalValue}\n operator={operator}\n options={valueOptions}\n value={internalValue ?? ''}\n />\n )}\n </div>\n </div>\n <div className={`${baseClass}__actions`}>\n <Button\n buttonStyle=\"ghost\"\n className={`${baseClass}__actions-remove`}\n disabled={disableRemoveButton}\n icon={<LineIcon size={24} />}\n onClick={() =>\n removeCondition({\n andIndex,\n orIndex,\n })\n }\n />\n </div>\n </div>\n </div>\n )\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["React","useCallback","useEffect","useRef","useState","isFieldDisabled","useDebounce","useEffectEvent","LineIcon","useTranslation","Button","ReactSelect","DefaultFilter","getOperatorValueTypes","baseClass","Condition","props","andIndex","disableRemoveButton","fieldPath","filterOptions","isFirstCondition","join","operator","orIndex","reducedFields","removeCondition","RenderedFilter","updateCondition","updateJoin","value","t","reducedField","find","field","internalValue","setInternalValue","debouncedValue","lastReportedValue","booleanSelect","includes","type","valueOptions","label","options","updateValue","normalizedValue","undefined","current","disabled","handleFieldChange","option","handleOperatorChange","operatorValueTypes","validOperatorValue","isValidValue","_jsx","className","_jsxs","classNames","menu","isClearable","onChange","filterOption","inputValue","data","plainTextLabel","toLowerCase","filter","map","f","operators","o","internalField","buttonStyle","icon","size","onClick"],"sources":["../../../../src/elements/WhereBuilder/Condition/index.tsx"],"sourcesContent":["'use client'\nimport React, { useCallback, useEffect, useRef, useState } from 'react'\n\nimport type {\n AddCondition,\n ReducedField,\n RemoveCondition,\n UpdateCondition,\n UpdateJoin,\n Value,\n} from '../types.js'\n\nexport type Props = {\n readonly addCondition: AddCondition\n readonly andIndex: number\n readonly disableRemoveButton: boolean\n readonly fieldPath: string\n readonly filterOptions?: ResolvedFilterOptions\n readonly isFirstCondition: boolean\n readonly join: 'and' | 'or'\n readonly operator: Operator\n readonly orIndex: number\n readonly reducedFields: ReducedField[]\n readonly removeCondition: RemoveCondition\n readonly RenderedFilter?: React.ReactNode\n readonly updateCondition: UpdateCondition\n readonly updateJoin: UpdateJoin\n readonly value: Value\n}\n\nimport type { Operator, Option as PayloadOption, ResolvedFilterOptions } from 'payload'\n\nimport { isFieldDisabled } from 'payload/shared'\n\nimport type { Option } from '../../ReactSelect/index.js'\n\nimport { useDebounce } from '../../../hooks/useDebounce.js'\nimport { useEffectEvent } from '../../../hooks/useEffectEvent.js'\nimport { LineIcon } from '../../../icons/Line/index.js'\nimport { useTranslation } from '../../../providers/Translation/index.js'\nimport { Button } from '../../Button/index.js'\nimport { ReactSelect } from '../../ReactSelect/index.js'\nimport { DefaultFilter } from './DefaultFilter/index.js'\nimport { getOperatorValueTypes } from './validOperators.js'\nimport './index.css'\n\nconst baseClass = 'condition'\n\nexport const Condition: React.FC<Props> = (props) => {\n const {\n andIndex,\n disableRemoveButton,\n fieldPath,\n filterOptions,\n isFirstCondition,\n join,\n operator,\n orIndex,\n reducedFields,\n removeCondition,\n RenderedFilter,\n updateCondition,\n updateJoin,\n value,\n } = props\n\n const { t } = useTranslation()\n\n const reducedField = reducedFields.find((field) => field.fieldPath === fieldPath)\n\n const [internalValue, setInternalValue] = useState<Value>(value)\n\n const debouncedValue = useDebounce(internalValue, 300)\n\n // Tracks the last value this row reported upward, so the downward sync below can tell our own\n // committed echo apart from a genuine external change (e.g. the row being cleared/reset).\n const lastReportedValue = useRef<Value>(value)\n\n const booleanSelect = ['exists'].includes(operator) || reducedField?.field?.type === 'checkbox'\n\n let valueOptions: PayloadOption[] = []\n\n if (booleanSelect) {\n valueOptions = [\n { label: t('general:true'), value: 'true' },\n { label: t('general:false'), value: 'false' },\n ]\n } else if (reducedField?.field && 'options' in reducedField.field) {\n valueOptions = reducedField.field.options\n }\n\n const updateValue = useEffectEvent(async (debouncedValue: Value) => {\n if (operator) {\n const normalizedValue =\n debouncedValue === null || debouncedValue === '' ? undefined : debouncedValue\n lastReportedValue.current = normalizedValue\n await updateCondition({\n type: 'value',\n andIndex,\n field: reducedField,\n operator,\n orIndex,\n value: normalizedValue,\n })\n }\n })\n\n useEffect(() => {\n void updateValue(debouncedValue)\n }, [debouncedValue])\n\n // Sync external value changes (e.g. the row being cleared or reset to a placeholder) down into\n // local state, but skip our own committed echo so this never clobbers in-progress typing.\n useEffect(() => {\n if (value !== lastReportedValue.current) {\n lastReportedValue.current = value\n setInternalValue(value)\n }\n }, [value])\n\n const disabled = !reducedField?.fieldPath || isFieldDisabled(reducedField?.field, 'filter')\n\n const handleFieldChange = useCallback(\n async (field: Option<string>) => {\n setInternalValue(undefined)\n await updateCondition({\n type: 'field',\n andIndex,\n field: reducedFields.find((option) => option.fieldPath === field.value),\n operator,\n orIndex,\n value: undefined,\n })\n },\n [andIndex, operator, orIndex, reducedFields, updateCondition],\n )\n\n const handleOperatorChange = useCallback(\n async (operator: Option<Operator>) => {\n const operatorValueTypes = getOperatorValueTypes(reducedField.field.type)\n const validOperatorValue = operatorValueTypes[operator.value] || 'any'\n const isValidValue =\n validOperatorValue === 'any' ||\n typeof value === validOperatorValue ||\n (validOperatorValue === 'boolean' && (value === 'true' || value === 'false'))\n\n if (!isValidValue) {\n // if the current value is not valid for the new operator\n // reset the value before passing it to updateCondition\n setInternalValue(undefined)\n }\n\n await updateCondition({\n type: 'operator',\n andIndex,\n field: reducedField,\n operator: operator.value,\n orIndex,\n value: isValidValue ? value : undefined,\n })\n },\n [andIndex, reducedField, orIndex, updateCondition, value],\n )\n\n return (\n <div className={baseClass}>\n <div className={`${baseClass}__wrap`}>\n <div className={`${baseClass}__join`}>\n {isFirstCondition ? (\n <span className={`${baseClass}__join-label`}>{t('general:where')}</span>\n ) : (\n <ReactSelect\n aria-label={t('general:filter')}\n classNames={{\n menu: () => 'condition__join-menu',\n }}\n isClearable={false}\n onChange={(option: Option<'and' | 'or'>) =>\n updateJoin({ andIndex, join: option.value, orIndex })\n }\n options={[\n { label: t('general:and'), value: 'and' },\n { label: t('general:or'), value: 'or' },\n ]}\n value={{ label: join === 'and' ? t('general:and') : t('general:or'), value: join }}\n />\n )}\n </div>\n <div className={`${baseClass}__inputs`}>\n <div className={`${baseClass}__field`}>\n <ReactSelect\n aria-label={t('general:field')}\n disabled={disabled}\n filterOption={(option, inputValue) => {\n const label =\n typeof option?.data?.plainTextLabel === 'string'\n ? option.data.plainTextLabel\n : option.label\n return label.toLowerCase().includes(inputValue.toLowerCase())\n }}\n isClearable={false}\n onChange={handleFieldChange}\n options={reducedFields\n .filter((field) => !isFieldDisabled(field.field, 'filter'))\n .map((f) => ({ ...f, value: f.fieldPath }))}\n value={reducedField ? { ...reducedField, value: reducedField.fieldPath } : undefined}\n />\n </div>\n <div className={`${baseClass}__operator`}>\n <ReactSelect\n aria-label={t('general:filter')}\n disabled={disabled}\n isClearable={false}\n onChange={handleOperatorChange}\n options={reducedField?.operators}\n value={reducedField?.operators.find((o) => operator === o.value) || null}\n />\n </div>\n <div className={`${baseClass}__value`}>\n {RenderedFilter || (\n <DefaultFilter\n booleanSelect={booleanSelect}\n disabled={\n !operator || !reducedField || isFieldDisabled(reducedField?.field, 'filter')\n }\n filterOptions={filterOptions}\n internalField={reducedField}\n onChange={setInternalValue}\n operator={operator}\n options={valueOptions}\n value={internalValue ?? ''}\n />\n )}\n </div>\n </div>\n <div className={`${baseClass}__actions`}>\n <Button\n buttonStyle=\"ghost\"\n className={`${baseClass}__actions-remove`}\n disabled={disableRemoveButton}\n icon={<LineIcon size={24} />}\n onClick={() =>\n removeCondition({\n andIndex,\n orIndex,\n })\n }\n />\n </div>\n </div>\n </div>\n )\n}\n"],"mappings":"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","ignoreList":[]}