@payloadcms/ui 3.0.0-canary.ef0a8d0 → 3.0.0-canary.f13d413

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 (574) hide show
  1. package/dist/elements/AppHeader/index.d.ts.map +1 -1
  2. package/dist/elements/AppHeader/index.js +5 -1
  3. package/dist/elements/AppHeader/index.js.map +1 -1
  4. package/dist/elements/ArrayAction/index.d.ts +1 -1
  5. package/dist/elements/ArrayAction/index.d.ts.map +1 -1
  6. package/dist/elements/ArrayAction/index.js +1 -1
  7. package/dist/elements/ArrayAction/index.js.map +1 -1
  8. package/dist/elements/ArrayAction/index.scss +0 -13
  9. package/dist/elements/Autosave/index.d.ts.map +1 -1
  10. package/dist/elements/Autosave/index.js +53 -28
  11. package/dist/elements/Autosave/index.js.map +1 -1
  12. package/dist/elements/Banner/index.scss +1 -1
  13. package/dist/elements/Button/index.js +1 -1
  14. package/dist/elements/Button/index.js.map +1 -1
  15. package/dist/elements/Button/index.scss +112 -118
  16. package/dist/elements/Button/types.d.ts +1 -1
  17. package/dist/elements/Button/types.d.ts.map +1 -1
  18. package/dist/elements/Button/types.js.map +1 -1
  19. package/dist/elements/Card/index.scss +38 -9
  20. package/dist/elements/CodeEditor/CodeEditor.d.ts.map +1 -1
  21. package/dist/elements/CodeEditor/CodeEditor.js +2 -1
  22. package/dist/elements/CodeEditor/CodeEditor.js.map +1 -1
  23. package/dist/elements/Collapsible/index.d.ts +1 -1
  24. package/dist/elements/Collapsible/index.d.ts.map +1 -1
  25. package/dist/elements/Collapsible/index.js +1 -1
  26. package/dist/elements/Collapsible/index.js.map +1 -1
  27. package/dist/elements/Collapsible/index.scss +61 -30
  28. package/dist/elements/ColumnSelector/index.scss +20 -2
  29. package/dist/elements/DatePicker/index.scss +3 -1
  30. package/dist/elements/DeleteDocument/index.d.ts.map +1 -1
  31. package/dist/elements/DeleteDocument/index.js +7 -3
  32. package/dist/elements/DeleteDocument/index.js.map +1 -1
  33. package/dist/elements/DeleteMany/index.d.ts.map +1 -1
  34. package/dist/elements/DeleteMany/index.js +4 -2
  35. package/dist/elements/DeleteMany/index.js.map +1 -1
  36. package/dist/elements/DocumentControls/index.d.ts.map +1 -1
  37. package/dist/elements/DocumentControls/index.js +5 -1
  38. package/dist/elements/DocumentControls/index.js.map +1 -1
  39. package/dist/elements/DocumentControls/index.scss +2 -2
  40. package/dist/elements/DocumentDrawer/DrawerContent.d.ts.map +1 -1
  41. package/dist/elements/DocumentDrawer/DrawerContent.js +0 -6
  42. package/dist/elements/DocumentDrawer/DrawerContent.js.map +1 -1
  43. package/dist/elements/DocumentDrawer/index.scss +4 -6
  44. package/dist/elements/DocumentFields/index.d.ts +1 -2
  45. package/dist/elements/DocumentFields/index.d.ts.map +1 -1
  46. package/dist/elements/DocumentFields/index.js +46 -48
  47. package/dist/elements/DocumentFields/index.js.map +1 -1
  48. package/dist/elements/DraggableSortable/DraggableSortableItem/index.d.ts.map +1 -1
  49. package/dist/elements/DraggableSortable/DraggableSortableItem/index.js +4 -2
  50. package/dist/elements/DraggableSortable/DraggableSortableItem/index.js.map +1 -1
  51. package/dist/elements/DraggableSortable/useDraggableSortable/index.d.ts.map +1 -1
  52. package/dist/elements/DraggableSortable/useDraggableSortable/index.js +10 -4
  53. package/dist/elements/DraggableSortable/useDraggableSortable/index.js.map +1 -1
  54. package/dist/elements/DraggableSortable/useDraggableSortable/types.d.ts +1 -0
  55. package/dist/elements/DraggableSortable/useDraggableSortable/types.d.ts.map +1 -1
  56. package/dist/elements/DraggableSortable/useDraggableSortable/types.js.map +1 -1
  57. package/dist/elements/Drawer/index.d.ts.map +1 -1
  58. package/dist/elements/Drawer/index.js +3 -0
  59. package/dist/elements/Drawer/index.js.map +1 -1
  60. package/dist/elements/Drawer/index.scss +13 -8
  61. package/dist/elements/Dropzone/index.js +2 -2
  62. package/dist/elements/Dropzone/index.js.map +1 -1
  63. package/dist/elements/Dropzone/index.scss +7 -3
  64. package/dist/elements/DuplicateDocument/index.d.ts.map +1 -1
  65. package/dist/elements/DuplicateDocument/index.js +10 -6
  66. package/dist/elements/DuplicateDocument/index.js.map +1 -1
  67. package/dist/elements/EditMany/index.d.ts +1 -2
  68. package/dist/elements/EditMany/index.d.ts.map +1 -1
  69. package/dist/elements/EditMany/index.js.map +1 -1
  70. package/dist/elements/EditMany/index.scss +2 -2
  71. package/dist/elements/EditUpload/index.d.ts +3 -6
  72. package/dist/elements/EditUpload/index.d.ts.map +1 -1
  73. package/dist/elements/EditUpload/index.js +20 -25
  74. package/dist/elements/EditUpload/index.js.map +1 -1
  75. package/dist/elements/EditUpload/index.scss +4 -1
  76. package/dist/elements/FieldSelect/index.d.ts +1 -2
  77. package/dist/elements/FieldSelect/index.d.ts.map +1 -1
  78. package/dist/elements/FieldSelect/index.js.map +1 -1
  79. package/dist/elements/FileDetails/FileMeta/index.scss +1 -0
  80. package/dist/elements/FileDetails/index.d.ts.map +1 -1
  81. package/dist/elements/FileDetails/index.js +3 -1
  82. package/dist/elements/FileDetails/index.js.map +1 -1
  83. package/dist/elements/FileDetails/index.scss +28 -12
  84. package/dist/elements/Hamburger/index.d.ts.map +1 -1
  85. package/dist/elements/Hamburger/index.js +17 -41
  86. package/dist/elements/Hamburger/index.js.map +1 -1
  87. package/dist/elements/Hamburger/index.scss +22 -102
  88. package/dist/elements/IDLabel/index.js +1 -1
  89. package/dist/elements/IDLabel/index.js.map +1 -1
  90. package/dist/elements/IDLabel/index.scss +2 -2
  91. package/dist/elements/ListControls/getTextFieldsToBeSearched.d.ts +1 -1
  92. package/dist/elements/ListControls/getTextFieldsToBeSearched.d.ts.map +1 -1
  93. package/dist/elements/ListControls/getTextFieldsToBeSearched.js.map +1 -1
  94. package/dist/elements/ListControls/index.d.ts +1 -2
  95. package/dist/elements/ListControls/index.d.ts.map +1 -1
  96. package/dist/elements/ListControls/index.js +43 -4
  97. package/dist/elements/ListControls/index.js.map +1 -1
  98. package/dist/elements/ListControls/index.scss +6 -12
  99. package/dist/elements/Localizer/index.d.ts.map +1 -1
  100. package/dist/elements/Localizer/index.js +6 -13
  101. package/dist/elements/Localizer/index.js.map +1 -1
  102. package/dist/elements/Logout/index.d.ts.map +1 -1
  103. package/dist/elements/Logout/index.js +7 -2
  104. package/dist/elements/Logout/index.js.map +1 -1
  105. package/dist/elements/NavGroup/index.scss +2 -2
  106. package/dist/elements/Pill/index.d.ts.map +1 -1
  107. package/dist/elements/Pill/index.js +1 -5
  108. package/dist/elements/Pill/index.js.map +1 -1
  109. package/dist/elements/Pill/index.scss +8 -21
  110. package/dist/elements/Popup/index.scss +6 -0
  111. package/dist/elements/PreviewButton/index.d.ts.map +1 -1
  112. package/dist/elements/PreviewButton/index.js +3 -1
  113. package/dist/elements/PreviewButton/index.js.map +1 -1
  114. package/dist/elements/PublishButton/index.js +1 -1
  115. package/dist/elements/PublishButton/index.js.map +1 -1
  116. package/dist/elements/ReactSelect/MultiValue/index.scss +25 -3
  117. package/dist/elements/ReactSelect/MultiValueLabel/index.scss +1 -1
  118. package/dist/elements/ReactSelect/MultiValueRemove/index.scss +3 -3
  119. package/dist/elements/ReactSelect/ValueContainer/index.scss +5 -12
  120. package/dist/elements/ReactSelect/index.scss +2 -3
  121. package/dist/elements/RenderTitle/index.scss +1 -1
  122. package/dist/elements/SaveButton/index.d.ts.map +1 -1
  123. package/dist/elements/SaveButton/index.js +4 -2
  124. package/dist/elements/SaveButton/index.js.map +1 -1
  125. package/dist/elements/SaveDraftButton/index.d.ts.map +1 -1
  126. package/dist/elements/SaveDraftButton/index.js +4 -2
  127. package/dist/elements/SaveDraftButton/index.js.map +1 -1
  128. package/dist/elements/SearchFilter/index.d.ts +5 -3
  129. package/dist/elements/SearchFilter/index.d.ts.map +1 -1
  130. package/dist/elements/SearchFilter/index.js +20 -63
  131. package/dist/elements/SearchFilter/index.js.map +1 -1
  132. package/dist/elements/SearchFilter/index.scss +2 -1
  133. package/dist/elements/SelectRow/index.scss +1 -0
  134. package/dist/elements/SortColumn/index.d.ts +2 -2
  135. package/dist/elements/SortColumn/index.d.ts.map +1 -1
  136. package/dist/elements/SortColumn/index.js +4 -4
  137. package/dist/elements/SortColumn/index.js.map +1 -1
  138. package/dist/elements/StayLoggedIn/index.d.ts.map +1 -1
  139. package/dist/elements/StayLoggedIn/index.js +8 -2
  140. package/dist/elements/StayLoggedIn/index.js.map +1 -1
  141. package/dist/elements/StepNav/types.d.ts +2 -2
  142. package/dist/elements/StepNav/types.d.ts.map +1 -1
  143. package/dist/elements/StepNav/types.js.map +1 -1
  144. package/dist/elements/Table/DefaultCell/fields/Code/index.scss +1 -1
  145. package/dist/elements/Table/DefaultCell/fields/JSON/index.scss +1 -1
  146. package/dist/elements/Table/DefaultCell/fields/Relationship/index.d.ts.map +1 -1
  147. package/dist/elements/Table/DefaultCell/fields/Relationship/index.js +19 -3
  148. package/dist/elements/Table/DefaultCell/fields/Relationship/index.js.map +1 -1
  149. package/dist/elements/Table/DefaultCell/index.d.ts.map +1 -1
  150. package/dist/elements/Table/DefaultCell/index.js +5 -1
  151. package/dist/elements/Table/DefaultCell/index.js.map +1 -1
  152. package/dist/elements/Table/index.d.ts +1 -2
  153. package/dist/elements/Table/index.d.ts.map +1 -1
  154. package/dist/elements/Table/index.js.map +1 -1
  155. package/dist/elements/Table/index.scss +10 -1
  156. package/dist/elements/TableColumns/buildColumnState.d.ts +1 -2
  157. package/dist/elements/TableColumns/buildColumnState.d.ts.map +1 -1
  158. package/dist/elements/TableColumns/buildColumnState.js.map +1 -1
  159. package/dist/elements/TableColumns/filterFields.d.ts +1 -1
  160. package/dist/elements/TableColumns/filterFields.d.ts.map +1 -1
  161. package/dist/elements/TableColumns/filterFields.js.map +1 -1
  162. package/dist/elements/TableColumns/getInitialColumns.d.ts +1 -1
  163. package/dist/elements/TableColumns/getInitialColumns.d.ts.map +1 -1
  164. package/dist/elements/TableColumns/getInitialColumns.js.map +1 -1
  165. package/dist/elements/ThumbnailCard/index.scss +10 -1
  166. package/dist/elements/Upload/index.d.ts.map +1 -1
  167. package/dist/elements/Upload/index.js +13 -28
  168. package/dist/elements/Upload/index.js.map +1 -1
  169. package/dist/elements/Upload/index.scss +2 -1
  170. package/dist/elements/WhereBuilder/Condition/Relationship/index.d.ts.map +1 -1
  171. package/dist/elements/WhereBuilder/Condition/Relationship/index.js +11 -5
  172. package/dist/elements/WhereBuilder/Condition/Relationship/index.js.map +1 -1
  173. package/dist/elements/WhereBuilder/Condition/index.d.ts.map +1 -1
  174. package/dist/elements/WhereBuilder/Condition/index.js +10 -2
  175. package/dist/elements/WhereBuilder/Condition/index.js.map +1 -1
  176. package/dist/elements/WhereBuilder/index.d.ts.map +1 -1
  177. package/dist/elements/WhereBuilder/index.js +7 -4
  178. package/dist/elements/WhereBuilder/index.js.map +1 -1
  179. package/dist/elements/WhereBuilder/reduceFieldMap.d.ts +1 -1
  180. package/dist/elements/WhereBuilder/reduceFieldMap.d.ts.map +1 -1
  181. package/dist/elements/WhereBuilder/reduceFieldMap.js +3 -3
  182. package/dist/elements/WhereBuilder/reduceFieldMap.js.map +1 -1
  183. package/dist/elements/WhereBuilder/types.d.ts +1 -2
  184. package/dist/elements/WhereBuilder/types.d.ts.map +1 -1
  185. package/dist/elements/WhereBuilder/types.js.map +1 -1
  186. package/dist/elements/withMergedProps/index.js +8 -2
  187. package/dist/elements/withMergedProps/index.js.map +1 -1
  188. package/dist/exports/client/{CodeEditor-OI35YO7H.js → CodeEditor-UPOVAXRP.js} +2 -2
  189. package/dist/exports/client/{CodeEditor-OI35YO7H.js.map → CodeEditor-UPOVAXRP.js.map} +2 -2
  190. package/dist/exports/client/{DatePicker-5IFHNQHA.js → DatePicker-XJHHMZP7.js} +2 -2
  191. package/dist/exports/client/chunk-TIH7OFW3.js +30 -0
  192. package/dist/exports/client/{chunk-WDFUZ6GL.js.map → chunk-TIH7OFW3.js.map} +2 -2
  193. package/dist/exports/client/index.d.ts +7 -7
  194. package/dist/exports/client/index.d.ts.map +1 -1
  195. package/dist/exports/client/index.js +27 -26
  196. package/dist/exports/client/index.js.map +4 -4
  197. package/dist/exports/shared/index.d.ts +1 -0
  198. package/dist/exports/shared/index.d.ts.map +1 -1
  199. package/dist/exports/shared/index.js +2 -2
  200. package/dist/exports/shared/index.js.map +4 -4
  201. package/dist/fields/Array/ArrayRow.d.ts +2 -3
  202. package/dist/fields/Array/ArrayRow.d.ts.map +1 -1
  203. package/dist/fields/Array/ArrayRow.js +4 -2
  204. package/dist/fields/Array/ArrayRow.js.map +1 -1
  205. package/dist/fields/Array/index.d.ts +2 -15
  206. package/dist/fields/Array/index.d.ts.map +1 -1
  207. package/dist/fields/Array/index.js +25 -8
  208. package/dist/fields/Array/index.js.map +1 -1
  209. package/dist/fields/Array/index.scss +3 -1
  210. package/dist/fields/Blocks/BlockRow.d.ts +2 -3
  211. package/dist/fields/Blocks/BlockRow.d.ts.map +1 -1
  212. package/dist/fields/Blocks/BlockRow.js +5 -1
  213. package/dist/fields/Blocks/BlockRow.js.map +1 -1
  214. package/dist/fields/Blocks/BlocksDrawer/BlockSearch/index.scss +3 -4
  215. package/dist/fields/Blocks/BlocksDrawer/index.d.ts +2 -3
  216. package/dist/fields/Blocks/BlocksDrawer/index.d.ts.map +1 -1
  217. package/dist/fields/Blocks/BlocksDrawer/index.js +1 -1
  218. package/dist/fields/Blocks/BlocksDrawer/index.js.map +1 -1
  219. package/dist/fields/Blocks/RowActions.d.ts +2 -3
  220. package/dist/fields/Blocks/RowActions.d.ts.map +1 -1
  221. package/dist/fields/Blocks/RowActions.js +1 -1
  222. package/dist/fields/Blocks/RowActions.js.map +1 -1
  223. package/dist/fields/Blocks/SectionTitle/index.scss +1 -0
  224. package/dist/fields/Blocks/index.d.ts +1 -14
  225. package/dist/fields/Blocks/index.d.ts.map +1 -1
  226. package/dist/fields/Blocks/index.js +22 -9
  227. package/dist/fields/Blocks/index.js.map +1 -1
  228. package/dist/fields/Checkbox/Input.d.ts +1 -1
  229. package/dist/fields/Checkbox/Input.d.ts.map +1 -1
  230. package/dist/fields/Checkbox/Input.js.map +1 -1
  231. package/dist/fields/Checkbox/index.d.ts +1 -1
  232. package/dist/fields/Checkbox/index.d.ts.map +1 -1
  233. package/dist/fields/Checkbox/index.js +2 -2
  234. package/dist/fields/Checkbox/index.js.map +1 -1
  235. package/dist/fields/Checkbox/index.scss +7 -8
  236. package/dist/fields/Code/index.d.ts +1 -9
  237. package/dist/fields/Code/index.d.ts.map +1 -1
  238. package/dist/fields/Code/index.js +2 -2
  239. package/dist/fields/Code/index.js.map +1 -1
  240. package/dist/fields/Code/index.scss +6 -0
  241. package/dist/fields/Collapsible/index.d.ts +1 -7
  242. package/dist/fields/Collapsible/index.d.ts.map +1 -1
  243. package/dist/fields/Collapsible/index.js +2 -2
  244. package/dist/fields/Collapsible/index.js.map +1 -1
  245. package/dist/fields/ConfirmPassword/index.d.ts +1 -0
  246. package/dist/fields/ConfirmPassword/index.d.ts.map +1 -1
  247. package/dist/fields/ConfirmPassword/index.js +12 -19
  248. package/dist/fields/ConfirmPassword/index.js.map +1 -1
  249. package/dist/fields/DateTime/index.d.ts +1 -9
  250. package/dist/fields/DateTime/index.d.ts.map +1 -1
  251. package/dist/fields/DateTime/index.js +2 -2
  252. package/dist/fields/DateTime/index.js.map +1 -1
  253. package/dist/fields/Email/index.d.ts +1 -9
  254. package/dist/fields/Email/index.d.ts.map +1 -1
  255. package/dist/fields/Email/index.js +2 -2
  256. package/dist/fields/Email/index.js.map +1 -1
  257. package/dist/fields/FieldDescription/index.d.ts +2 -2
  258. package/dist/fields/FieldDescription/index.d.ts.map +1 -1
  259. package/dist/fields/FieldDescription/index.js.map +1 -1
  260. package/dist/fields/FieldError/index.d.ts +2 -2
  261. package/dist/fields/FieldError/index.d.ts.map +1 -1
  262. package/dist/fields/FieldError/index.js.map +1 -1
  263. package/dist/fields/FieldLabel/index.d.ts +2 -2
  264. package/dist/fields/FieldLabel/index.d.ts.map +1 -1
  265. package/dist/fields/FieldLabel/index.js.map +1 -1
  266. package/dist/fields/Group/index.d.ts +2 -10
  267. package/dist/fields/Group/index.d.ts.map +1 -1
  268. package/dist/fields/Group/index.js +2 -2
  269. package/dist/fields/Group/index.js.map +1 -1
  270. package/dist/fields/Hidden/index.d.ts +2 -9
  271. package/dist/fields/Hidden/index.d.ts.map +1 -1
  272. package/dist/fields/Hidden/index.js +2 -2
  273. package/dist/fields/Hidden/index.js.map +1 -1
  274. package/dist/fields/JSON/index.d.ts +1 -9
  275. package/dist/fields/JSON/index.d.ts.map +1 -1
  276. package/dist/fields/JSON/index.js +2 -2
  277. package/dist/fields/JSON/index.js.map +1 -1
  278. package/dist/fields/Number/index.d.ts +1 -14
  279. package/dist/fields/Number/index.d.ts.map +1 -1
  280. package/dist/fields/Number/index.js +2 -2
  281. package/dist/fields/Number/index.js.map +1 -1
  282. package/dist/fields/Password/index.d.ts +14 -4
  283. package/dist/fields/Password/index.d.ts.map +1 -1
  284. package/dist/fields/Password/index.js +58 -45
  285. package/dist/fields/Password/index.js.map +1 -1
  286. package/dist/fields/Password/input.d.ts +5 -0
  287. package/dist/fields/Password/input.d.ts.map +1 -0
  288. package/dist/fields/Password/input.js +65 -0
  289. package/dist/fields/Password/input.js.map +1 -0
  290. package/dist/fields/Password/types.d.ts +27 -0
  291. package/dist/fields/Password/types.d.ts.map +1 -0
  292. package/dist/fields/Password/types.js.map +1 -0
  293. package/dist/fields/Point/index.d.ts +2 -9
  294. package/dist/fields/Point/index.d.ts.map +1 -1
  295. package/dist/fields/Point/index.js +2 -2
  296. package/dist/fields/Point/index.js.map +1 -1
  297. package/dist/fields/RadioGroup/Radio/index.d.ts +2 -3
  298. package/dist/fields/RadioGroup/Radio/index.d.ts.map +1 -1
  299. package/dist/fields/RadioGroup/Radio/index.js +4 -1
  300. package/dist/fields/RadioGroup/Radio/index.js.map +1 -1
  301. package/dist/fields/RadioGroup/Radio/index.scss +13 -6
  302. package/dist/fields/RadioGroup/index.d.ts +1 -12
  303. package/dist/fields/RadioGroup/index.d.ts.map +1 -1
  304. package/dist/fields/RadioGroup/index.js +2 -2
  305. package/dist/fields/RadioGroup/index.js.map +1 -1
  306. package/dist/fields/RadioGroup/index.scss +5 -1
  307. package/dist/fields/Relationship/AddNew/index.scss +3 -0
  308. package/dist/fields/Relationship/index.d.ts +1 -2
  309. package/dist/fields/Relationship/index.d.ts.map +1 -1
  310. package/dist/fields/Relationship/index.js +4 -3
  311. package/dist/fields/Relationship/index.js.map +1 -1
  312. package/dist/fields/Relationship/index.scss +7 -0
  313. package/dist/fields/Relationship/select-components/MultiValueLabel/index.scss +8 -5
  314. package/dist/fields/Relationship/types.d.ts +1 -11
  315. package/dist/fields/Relationship/types.d.ts.map +1 -1
  316. package/dist/fields/Relationship/types.js.map +1 -1
  317. package/dist/fields/RichText/index.d.ts +2 -8
  318. package/dist/fields/RichText/index.d.ts.map +1 -1
  319. package/dist/fields/RichText/index.js.map +1 -1
  320. package/dist/fields/Row/index.d.ts +1 -2
  321. package/dist/fields/Row/index.d.ts.map +1 -1
  322. package/dist/fields/Row/index.js +2 -2
  323. package/dist/fields/Row/index.js.map +1 -1
  324. package/dist/fields/Row/index.scss +1 -5
  325. package/dist/fields/Select/Input.d.ts +1 -2
  326. package/dist/fields/Select/Input.d.ts.map +1 -1
  327. package/dist/fields/Select/Input.js.map +1 -1
  328. package/dist/fields/Select/index.d.ts +1 -13
  329. package/dist/fields/Select/index.d.ts.map +1 -1
  330. package/dist/fields/Select/index.js +2 -2
  331. package/dist/fields/Select/index.js.map +1 -1
  332. package/dist/fields/Tabs/Tab/index.d.ts +1 -1
  333. package/dist/fields/Tabs/Tab/index.d.ts.map +1 -1
  334. package/dist/fields/Tabs/Tab/index.js.map +1 -1
  335. package/dist/fields/Tabs/index.d.ts +1 -9
  336. package/dist/fields/Tabs/index.d.ts.map +1 -1
  337. package/dist/fields/Tabs/index.js +24 -24
  338. package/dist/fields/Tabs/index.js.map +1 -1
  339. package/dist/fields/Text/Input.d.ts.map +1 -1
  340. package/dist/fields/Text/Input.js +13 -17
  341. package/dist/fields/Text/Input.js.map +1 -1
  342. package/dist/fields/Text/index.d.ts +3 -2
  343. package/dist/fields/Text/index.d.ts.map +1 -1
  344. package/dist/fields/Text/index.js +2 -2
  345. package/dist/fields/Text/index.js.map +1 -1
  346. package/dist/fields/Text/index.scss +6 -0
  347. package/dist/fields/Text/types.d.ts +1 -15
  348. package/dist/fields/Text/types.d.ts.map +1 -1
  349. package/dist/fields/Text/types.js.map +1 -1
  350. package/dist/fields/Textarea/index.d.ts +3 -2
  351. package/dist/fields/Textarea/index.d.ts.map +1 -1
  352. package/dist/fields/Textarea/index.js +2 -2
  353. package/dist/fields/Textarea/index.js.map +1 -1
  354. package/dist/fields/Textarea/index.scss +1 -6
  355. package/dist/fields/Textarea/types.d.ts +1 -11
  356. package/dist/fields/Textarea/types.d.ts.map +1 -1
  357. package/dist/fields/Textarea/types.js.map +1 -1
  358. package/dist/fields/Upload/Input.d.ts +5 -2
  359. package/dist/fields/Upload/Input.d.ts.map +1 -1
  360. package/dist/fields/Upload/Input.js +2 -2
  361. package/dist/fields/Upload/Input.js.map +1 -1
  362. package/dist/fields/Upload/index.d.ts +1 -1
  363. package/dist/fields/Upload/index.d.ts.map +1 -1
  364. package/dist/fields/Upload/index.js +20 -5
  365. package/dist/fields/Upload/index.js.map +1 -1
  366. package/dist/fields/Upload/index.scss +10 -3
  367. package/dist/fields/shared/index.d.ts +1 -25
  368. package/dist/fields/shared/index.d.ts.map +1 -1
  369. package/dist/fields/shared/index.js.map +1 -1
  370. package/dist/forms/Form/createNestedFieldPath.d.ts +1 -2
  371. package/dist/forms/Form/createNestedFieldPath.d.ts.map +1 -1
  372. package/dist/forms/Form/createNestedFieldPath.js.map +1 -1
  373. package/dist/forms/Form/fieldReducer.d.ts.map +1 -1
  374. package/dist/forms/Form/fieldReducer.js +11 -38
  375. package/dist/forms/Form/fieldReducer.js.map +1 -1
  376. package/dist/forms/Form/index.d.ts.map +1 -1
  377. package/dist/forms/Form/index.js +21 -23
  378. package/dist/forms/Form/index.js.map +1 -1
  379. package/dist/forms/Form/rowHelpers.d.ts +17 -0
  380. package/dist/forms/Form/rowHelpers.d.ts.map +1 -0
  381. package/dist/forms/Form/rowHelpers.js +24 -0
  382. package/dist/forms/Form/rowHelpers.js.map +1 -0
  383. package/dist/forms/Form/types.d.ts +3 -10
  384. package/dist/forms/Form/types.d.ts.map +1 -1
  385. package/dist/forms/Form/types.js.map +1 -1
  386. package/dist/forms/RenderFields/RenderField.d.ts +4 -3
  387. package/dist/forms/RenderFields/RenderField.d.ts.map +1 -1
  388. package/dist/forms/RenderFields/RenderField.js.map +1 -1
  389. package/dist/forms/RenderFields/index.scss +1 -1
  390. package/dist/forms/RenderFields/types.d.ts +1 -2
  391. package/dist/forms/RenderFields/types.d.ts.map +1 -1
  392. package/dist/forms/RenderFields/types.js.map +1 -1
  393. package/dist/forms/WatchChildErrors/buildPathSegments.d.ts +1 -1
  394. package/dist/forms/WatchChildErrors/buildPathSegments.d.ts.map +1 -1
  395. package/dist/forms/WatchChildErrors/buildPathSegments.js.map +1 -1
  396. package/dist/forms/WatchChildErrors/index.d.ts +1 -1
  397. package/dist/forms/WatchChildErrors/index.d.ts.map +1 -1
  398. package/dist/forms/WatchChildErrors/index.js.map +1 -1
  399. package/dist/forms/buildStateFromSchema/addFieldStatePromise.d.ts +1 -0
  400. package/dist/forms/buildStateFromSchema/addFieldStatePromise.d.ts.map +1 -1
  401. package/dist/forms/buildStateFromSchema/addFieldStatePromise.js +41 -19
  402. package/dist/forms/buildStateFromSchema/addFieldStatePromise.js.map +1 -1
  403. package/dist/forms/buildStateFromSchema/index.d.ts +1 -0
  404. package/dist/forms/buildStateFromSchema/index.d.ts.map +1 -1
  405. package/dist/forms/buildStateFromSchema/index.js +2 -1
  406. package/dist/forms/buildStateFromSchema/index.js.map +1 -1
  407. package/dist/forms/buildStateFromSchema/iterateFields.d.ts +2 -1
  408. package/dist/forms/buildStateFromSchema/iterateFields.d.ts.map +1 -1
  409. package/dist/forms/buildStateFromSchema/iterateFields.js +2 -1
  410. package/dist/forms/buildStateFromSchema/iterateFields.js.map +1 -1
  411. package/dist/forms/useField/index.d.ts.map +1 -1
  412. package/dist/forms/useField/index.js +14 -7
  413. package/dist/forms/useField/index.js.map +1 -1
  414. package/dist/forms/useField/types.d.ts +2 -2
  415. package/dist/forms/useField/types.d.ts.map +1 -1
  416. package/dist/forms/useField/types.js.map +1 -1
  417. package/dist/graphics/Account/index.d.ts.map +1 -1
  418. package/dist/graphics/Account/index.js +5 -1
  419. package/dist/graphics/Account/index.js.map +1 -1
  420. package/dist/hooks/usePayloadAPI.d.ts.map +1 -1
  421. package/dist/hooks/usePayloadAPI.js +5 -1
  422. package/dist/hooks/usePayloadAPI.js.map +1 -1
  423. package/dist/hooks/useUseAsTitle.d.ts +1 -2
  424. package/dist/hooks/useUseAsTitle.d.ts.map +1 -1
  425. package/dist/hooks/useUseAsTitle.js.map +1 -1
  426. package/dist/icons/Calendar/index.d.ts.map +1 -1
  427. package/dist/icons/Calendar/index.js +8 -33
  428. package/dist/icons/Calendar/index.js.map +1 -1
  429. package/dist/icons/Calendar/index.scss +1 -1
  430. package/dist/icons/Check/index.d.ts.map +1 -1
  431. package/dist/icons/Check/index.js +8 -17
  432. package/dist/icons/Check/index.js.map +1 -1
  433. package/dist/icons/Check/index.scss +1 -1
  434. package/dist/icons/Chevron/index.js +5 -4
  435. package/dist/icons/Chevron/index.js.map +1 -1
  436. package/dist/icons/Chevron/index.scss +2 -5
  437. package/dist/icons/CloseMenu/index.d.ts.map +1 -1
  438. package/dist/icons/CloseMenu/index.js +8 -22
  439. package/dist/icons/CloseMenu/index.js.map +1 -1
  440. package/dist/icons/CloseMenu/index.scss +2 -2
  441. package/dist/icons/CodeBlock/index.d.ts.map +1 -1
  442. package/dist/icons/CodeBlock/index.js +8 -14
  443. package/dist/icons/CodeBlock/index.js.map +1 -1
  444. package/dist/icons/Copy/index.d.ts.map +1 -1
  445. package/dist/icons/Copy/index.js +12 -16
  446. package/dist/icons/Copy/index.js.map +1 -1
  447. package/dist/icons/Copy/index.scss +1 -1
  448. package/dist/icons/DragHandle/index.d.ts.map +1 -1
  449. package/dist/icons/DragHandle/index.js +19 -25
  450. package/dist/icons/DragHandle/index.js.map +1 -1
  451. package/dist/icons/DragHandle/index.scss +2 -0
  452. package/dist/icons/Edit/index.d.ts.map +1 -1
  453. package/dist/icons/Edit/index.js +8 -21
  454. package/dist/icons/Edit/index.js.map +1 -1
  455. package/dist/icons/Edit/index.scss +3 -3
  456. package/dist/icons/Line/index.d.ts.map +1 -1
  457. package/dist/icons/Line/index.js +7 -6
  458. package/dist/icons/Line/index.js.map +1 -1
  459. package/dist/icons/Line/index.scss +1 -1
  460. package/dist/icons/Link/index.d.ts.map +1 -1
  461. package/dist/icons/Link/index.js +11 -14
  462. package/dist/icons/Link/index.js.map +1 -1
  463. package/dist/icons/Link/index.scss +1 -1
  464. package/dist/icons/LogOut/index.d.ts.map +1 -1
  465. package/dist/icons/LogOut/index.js +9 -24
  466. package/dist/icons/LogOut/index.js.map +1 -1
  467. package/dist/icons/LogOut/index.scss +1 -1
  468. package/dist/icons/Menu/index.d.ts.map +1 -1
  469. package/dist/icons/Menu/index.js +10 -28
  470. package/dist/icons/Menu/index.js.map +1 -1
  471. package/dist/icons/Menu/index.scss +3 -2
  472. package/dist/icons/MinimizeMaximize/index.d.ts.map +1 -1
  473. package/dist/icons/MinimizeMaximize/index.js +8 -35
  474. package/dist/icons/MinimizeMaximize/index.js.map +1 -1
  475. package/dist/icons/More/index.d.ts.map +1 -1
  476. package/dist/icons/More/index.js +10 -13
  477. package/dist/icons/More/index.js.map +1 -1
  478. package/dist/icons/More/index.scss +1 -0
  479. package/dist/icons/Plus/index.d.ts.map +1 -1
  480. package/dist/icons/Plus/index.js +10 -20
  481. package/dist/icons/Plus/index.js.map +1 -1
  482. package/dist/icons/Plus/index.scss +1 -1
  483. package/dist/icons/Search/index.d.ts.map +1 -1
  484. package/dist/icons/Search/index.js +8 -18
  485. package/dist/icons/Search/index.js.map +1 -1
  486. package/dist/icons/Search/index.scss +1 -1
  487. package/dist/icons/Swap/index.d.ts.map +1 -1
  488. package/dist/icons/Swap/index.js +8 -28
  489. package/dist/icons/Swap/index.js.map +1 -1
  490. package/dist/icons/Swap/index.scss +2 -2
  491. package/dist/icons/X/index.d.ts.map +1 -1
  492. package/dist/icons/X/index.js +10 -21
  493. package/dist/icons/X/index.js.map +1 -1
  494. package/dist/icons/X/index.scss +3 -3
  495. package/dist/providers/Auth/index.d.ts +1 -1
  496. package/dist/providers/Auth/index.d.ts.map +1 -1
  497. package/dist/providers/Auth/index.js +47 -76
  498. package/dist/providers/Auth/index.js.map +1 -1
  499. package/dist/providers/ComponentMap/buildComponentMap/collections.d.ts +2 -1
  500. package/dist/providers/ComponentMap/buildComponentMap/collections.d.ts.map +1 -1
  501. package/dist/providers/ComponentMap/buildComponentMap/collections.js +2 -1
  502. package/dist/providers/ComponentMap/buildComponentMap/collections.js.map +1 -1
  503. package/dist/providers/ComponentMap/buildComponentMap/fields.d.ts +2 -2
  504. package/dist/providers/ComponentMap/buildComponentMap/fields.d.ts.map +1 -1
  505. package/dist/providers/ComponentMap/buildComponentMap/fields.js +126 -96
  506. package/dist/providers/ComponentMap/buildComponentMap/fields.js.map +1 -1
  507. package/dist/providers/ComponentMap/buildComponentMap/globals.d.ts +2 -1
  508. package/dist/providers/ComponentMap/buildComponentMap/globals.d.ts.map +1 -1
  509. package/dist/providers/ComponentMap/buildComponentMap/globals.js +2 -1
  510. package/dist/providers/ComponentMap/buildComponentMap/globals.js.map +1 -1
  511. package/dist/providers/ComponentMap/buildComponentMap/index.d.ts.map +1 -1
  512. package/dist/providers/ComponentMap/buildComponentMap/index.js +2 -0
  513. package/dist/providers/ComponentMap/buildComponentMap/index.js.map +1 -1
  514. package/dist/providers/ComponentMap/buildComponentMap/types.d.ts +1 -55
  515. package/dist/providers/ComponentMap/buildComponentMap/types.d.ts.map +1 -1
  516. package/dist/providers/ComponentMap/buildComponentMap/types.js.map +1 -1
  517. package/dist/providers/ComponentMap/index.d.ts +2 -1
  518. package/dist/providers/ComponentMap/index.d.ts.map +1 -1
  519. package/dist/providers/ComponentMap/index.js.map +1 -1
  520. package/dist/providers/DocumentInfo/index.d.ts.map +1 -1
  521. package/dist/providers/DocumentInfo/index.js +58 -16
  522. package/dist/providers/DocumentInfo/index.js.map +1 -1
  523. package/dist/providers/ListQuery/index.d.ts +16 -9
  524. package/dist/providers/ListQuery/index.d.ts.map +1 -1
  525. package/dist/providers/ListQuery/index.js +8 -6
  526. package/dist/providers/ListQuery/index.js.map +1 -1
  527. package/dist/providers/Params/index.d.ts +2 -1
  528. package/dist/providers/Params/index.d.ts.map +1 -1
  529. package/dist/providers/Params/index.js.map +1 -1
  530. package/dist/providers/UploadEdits/index.d.ts +12 -0
  531. package/dist/providers/UploadEdits/index.d.ts.map +1 -0
  532. package/dist/providers/UploadEdits/index.js +30 -0
  533. package/dist/providers/UploadEdits/index.js.map +1 -0
  534. package/dist/scss/app.scss +2 -1
  535. package/dist/scss/toasts.scss +10 -3
  536. package/dist/scss/type.scss +14 -23
  537. package/dist/scss/vars.scss +26 -47
  538. package/dist/styles.css +1 -1
  539. package/dist/utilities/buildFieldSchemaMap/index.d.ts.map +1 -1
  540. package/dist/utilities/buildFieldSchemaMap/index.js +24 -0
  541. package/dist/utilities/buildFieldSchemaMap/index.js.map +1 -1
  542. package/dist/utilities/buildFormState.d.ts.map +1 -1
  543. package/dist/utilities/buildFormState.js +20 -10
  544. package/dist/utilities/buildFormState.js.map +1 -1
  545. package/dist/utilities/flattenFieldMap.d.ts +1 -1
  546. package/dist/utilities/flattenFieldMap.d.ts.map +1 -1
  547. package/dist/utilities/flattenFieldMap.js.map +1 -1
  548. package/dist/utilities/formatAdminURL.d.ts +9 -0
  549. package/dist/utilities/formatAdminURL.d.ts.map +1 -0
  550. package/dist/utilities/formatAdminURL.js +15 -0
  551. package/dist/utilities/formatAdminURL.js.map +1 -0
  552. package/package.json +7 -7
  553. package/dist/exports/client/chunk-WDFUZ6GL.js +0 -30
  554. package/dist/fields/Checkbox/types.d.ts +0 -12
  555. package/dist/fields/Checkbox/types.d.ts.map +0 -1
  556. package/dist/fields/Checkbox/types.js.map +0 -1
  557. package/dist/fields/Row/types.d.ts +0 -12
  558. package/dist/fields/Row/types.d.ts.map +0 -1
  559. package/dist/fields/Row/types.js +0 -3
  560. package/dist/fields/Row/types.js.map +0 -1
  561. package/dist/fields/Upload/types.d.ts +0 -10
  562. package/dist/fields/Upload/types.d.ts.map +0 -1
  563. package/dist/fields/Upload/types.js +0 -3
  564. package/dist/fields/Upload/types.js.map +0 -1
  565. package/dist/providers/FormQueryParams/index.d.ts +0 -13
  566. package/dist/providers/FormQueryParams/index.d.ts.map +0 -1
  567. package/dist/providers/FormQueryParams/index.js +0 -53
  568. package/dist/providers/FormQueryParams/index.js.map +0 -1
  569. package/dist/providers/FormQueryParams/types.d.ts +0 -16
  570. package/dist/providers/FormQueryParams/types.d.ts.map +0 -1
  571. package/dist/providers/FormQueryParams/types.js +0 -3
  572. package/dist/providers/FormQueryParams/types.js.map +0 -1
  573. /package/dist/exports/client/{DatePicker-5IFHNQHA.js.map → DatePicker-XJHHMZP7.js.map} +0 -0
  574. /package/dist/fields/{Checkbox → Password}/types.js +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/AppHeader/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAsC,MAAM,OAAO,CAAA;AAY1D,OAAO,cAAc,CAAA;AAIrB,eAAO,MAAM,SAAS,EAAE,KAAK,CAAC,EAoF7B,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/AppHeader/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAsC,MAAM,OAAO,CAAA;AAa1D,OAAO,cAAc,CAAA;AAIrB,eAAO,MAAM,SAAS,EAAE,KAAK,CAAC,EAoF7B,CAAA"}
@@ -6,6 +6,7 @@ import { Account } from '../../graphics/Account/index.js';
6
6
  import { useActions } from '../../providers/Actions/index.js';
7
7
  import { useConfig } from '../../providers/Config/index.js';
8
8
  import { useTranslation } from '../../providers/Translation/index.js';
9
+ import { formatAdminURL } from '../../utilities/formatAdminURL.js';
9
10
  import { Hamburger } from '../Hamburger/index.js';
10
11
  import { LocalizerLabel } from '../Localizer/LocalizerLabel/index.js';
11
12
  import { Localizer } from '../Localizer/index.js';
@@ -91,7 +92,10 @@ export const AppHeader = ()=>{
91
92
  /*#__PURE__*/ _jsx(LinkElement, {
92
93
  "aria-label": t('authentication:account'),
93
94
  className: `${baseClass}__account`,
94
- href: `${adminRoute}${accountRoute}`,
95
+ href: formatAdminURL({
96
+ adminRoute,
97
+ path: accountRoute
98
+ }),
95
99
  tabIndex: 0,
96
100
  children: /*#__PURE__*/ _jsx(Account, {})
97
101
  })
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/elements/AppHeader/index.tsx"],"sourcesContent":["'use client'\nimport LinkWithDefault from 'next/link.js'\nimport React, { useEffect, useRef, useState } from 'react'\n\nimport { Account } from '../../graphics/Account/index.js'\nimport { useActions } from '../../providers/Actions/index.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { Hamburger } from '../Hamburger/index.js'\nimport { LocalizerLabel } from '../Localizer/LocalizerLabel/index.js'\nimport { Localizer } from '../Localizer/index.js'\nimport { NavToggler } from '../Nav/NavToggler/index.js'\nimport { useNav } from '../Nav/context.js'\nimport { StepNav } from '../StepNav/index.js'\nimport './index.scss'\n\nconst baseClass = 'app-header'\n\nexport const AppHeader: React.FC = () => {\n const { t } = useTranslation()\n\n const {\n admin: {\n routes: { account: accountRoute },\n },\n localization,\n routes: { admin: adminRoute },\n } = useConfig()\n\n const { actions } = useActions()\n\n const { navOpen } = useNav()\n\n const customControlsRef = useRef<HTMLDivElement>(null)\n const [isScrollable, setIsScrollable] = useState(false)\n\n useEffect(() => {\n const checkIsScrollable = () => {\n const el = customControlsRef.current\n if (el) {\n const scrollable = el.scrollWidth > el.clientWidth\n setIsScrollable(scrollable)\n }\n }\n\n checkIsScrollable()\n window.addEventListener('resize', checkIsScrollable)\n\n return () => {\n window.removeEventListener('resize', checkIsScrollable)\n }\n }, [actions])\n\n const Link = LinkWithDefault.default\n\n const LinkElement = Link || 'a'\n\n return (\n <header className={[baseClass, navOpen && `${baseClass}--nav-open`].filter(Boolean).join(' ')}>\n <div className={`${baseClass}__bg`} />\n <div className={`${baseClass}__content`}>\n <div className={`${baseClass}__wrapper`}>\n <NavToggler className={`${baseClass}__mobile-nav-toggler`} tabIndex={-1}>\n <Hamburger />\n </NavToggler>\n <div className={`${baseClass}__controls-wrapper`}>\n <div className={`${baseClass}__step-nav-wrapper`}>\n <StepNav Link={Link} className={`${baseClass}__step-nav`} />\n </div>\n <div className={`${baseClass}__actions-wrapper`}>\n <div className={`${baseClass}__actions`} ref={customControlsRef}>\n {Array.isArray(actions) &&\n actions.map((Action, i) => (\n <div\n className={\n isScrollable && i === actions.length - 1 ? `${baseClass}__last-action` : ''\n }\n key={i}\n >\n {Action}\n </div>\n ))}\n </div>\n {isScrollable && <div className={`${baseClass}__gradient-placeholder`} />}\n </div>\n {localization && (\n <LocalizerLabel ariaLabel=\"invisible\" className={`${baseClass}__localizer-spacing`} />\n )}\n <LinkElement\n aria-label={t('authentication:account')}\n className={`${baseClass}__account`}\n href={`${adminRoute}${accountRoute}`}\n tabIndex={0}\n >\n <Account />\n </LinkElement>\n </div>\n </div>\n </div>\n <Localizer className={`${baseClass}__localizer`} />\n </header>\n )\n}\n"],"names":["LinkWithDefault","React","useEffect","useRef","useState","Account","useActions","useConfig","useTranslation","Hamburger","LocalizerLabel","Localizer","NavToggler","useNav","StepNav","baseClass","AppHeader","t","admin","routes","account","accountRoute","localization","adminRoute","actions","navOpen","customControlsRef","isScrollable","setIsScrollable","checkIsScrollable","el","current","scrollable","scrollWidth","clientWidth","window","addEventListener","removeEventListener","Link","default","LinkElement","header","className","filter","Boolean","join","div","tabIndex","ref","Array","isArray","map","Action","i","length","ariaLabel","aria-label","href"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../src/elements/AppHeader/index.tsx"],"sourcesContent":["'use client'\nimport LinkWithDefault from 'next/link.js'\nimport React, { useEffect, useRef, useState } from 'react'\n\nimport { Account } from '../../graphics/Account/index.js'\nimport { useActions } from '../../providers/Actions/index.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { formatAdminURL } from '../../utilities/formatAdminURL.js'\nimport { Hamburger } from '../Hamburger/index.js'\nimport { LocalizerLabel } from '../Localizer/LocalizerLabel/index.js'\nimport { Localizer } from '../Localizer/index.js'\nimport { NavToggler } from '../Nav/NavToggler/index.js'\nimport { useNav } from '../Nav/context.js'\nimport { StepNav } from '../StepNav/index.js'\nimport './index.scss'\n\nconst baseClass = 'app-header'\n\nexport const AppHeader: React.FC = () => {\n const { t } = useTranslation()\n\n const {\n admin: {\n routes: { account: accountRoute },\n },\n localization,\n routes: { admin: adminRoute },\n } = useConfig()\n\n const { actions } = useActions()\n\n const { navOpen } = useNav()\n\n const customControlsRef = useRef<HTMLDivElement>(null)\n const [isScrollable, setIsScrollable] = useState(false)\n\n useEffect(() => {\n const checkIsScrollable = () => {\n const el = customControlsRef.current\n if (el) {\n const scrollable = el.scrollWidth > el.clientWidth\n setIsScrollable(scrollable)\n }\n }\n\n checkIsScrollable()\n window.addEventListener('resize', checkIsScrollable)\n\n return () => {\n window.removeEventListener('resize', checkIsScrollable)\n }\n }, [actions])\n\n const Link = LinkWithDefault.default\n\n const LinkElement = Link || 'a'\n\n return (\n <header className={[baseClass, navOpen && `${baseClass}--nav-open`].filter(Boolean).join(' ')}>\n <div className={`${baseClass}__bg`} />\n <div className={`${baseClass}__content`}>\n <div className={`${baseClass}__wrapper`}>\n <NavToggler className={`${baseClass}__mobile-nav-toggler`} tabIndex={-1}>\n <Hamburger />\n </NavToggler>\n <div className={`${baseClass}__controls-wrapper`}>\n <div className={`${baseClass}__step-nav-wrapper`}>\n <StepNav Link={Link} className={`${baseClass}__step-nav`} />\n </div>\n <div className={`${baseClass}__actions-wrapper`}>\n <div className={`${baseClass}__actions`} ref={customControlsRef}>\n {Array.isArray(actions) &&\n actions.map((Action, i) => (\n <div\n className={\n isScrollable && i === actions.length - 1 ? `${baseClass}__last-action` : ''\n }\n key={i}\n >\n {Action}\n </div>\n ))}\n </div>\n {isScrollable && <div className={`${baseClass}__gradient-placeholder`} />}\n </div>\n {localization && (\n <LocalizerLabel ariaLabel=\"invisible\" className={`${baseClass}__localizer-spacing`} />\n )}\n <LinkElement\n aria-label={t('authentication:account')}\n className={`${baseClass}__account`}\n href={formatAdminURL({ adminRoute, path: accountRoute })}\n tabIndex={0}\n >\n <Account />\n </LinkElement>\n </div>\n </div>\n </div>\n <Localizer className={`${baseClass}__localizer`} />\n </header>\n )\n}\n"],"names":["LinkWithDefault","React","useEffect","useRef","useState","Account","useActions","useConfig","useTranslation","formatAdminURL","Hamburger","LocalizerLabel","Localizer","NavToggler","useNav","StepNav","baseClass","AppHeader","t","admin","routes","account","accountRoute","localization","adminRoute","actions","navOpen","customControlsRef","isScrollable","setIsScrollable","checkIsScrollable","el","current","scrollable","scrollWidth","clientWidth","window","addEventListener","removeEventListener","Link","default","LinkElement","header","className","filter","Boolean","join","div","tabIndex","ref","Array","isArray","map","Action","i","length","ariaLabel","aria-label","href","path"],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import React from 'react';
2
2
  import './index.scss';
3
3
  export type Props = {
4
- addRow: (current: number, blockType?: string) => void;
4
+ addRow: (current: number, blockType?: string) => Promise<void> | void;
5
5
  duplicateRow: (current: number) => void;
6
6
  hasMaxRows: boolean;
7
7
  index: number;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/ArrayAction/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAA;AASzB,OAAO,cAAc,CAAA;AAIrB,MAAM,MAAM,KAAK,GAAG;IAClB,MAAM,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,KAAK,IAAI,CAAA;IACrD,YAAY,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAA;IACvC,UAAU,EAAE,OAAO,CAAA;IACnB,KAAK,EAAE,MAAM,CAAA;IACb,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,KAAK,IAAI,CAAA;IAC3C,SAAS,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;IAClC,QAAQ,EAAE,MAAM,CAAA;CACjB,CAAA;AAED,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CAyFvC,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/ArrayAction/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAA;AASzB,OAAO,cAAc,CAAA;AAIrB,MAAM,MAAM,KAAK,GAAG;IAClB,MAAM,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAA;IACrE,YAAY,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAA;IACvC,UAAU,EAAE,OAAO,CAAA;IACnB,KAAK,EAAE,MAAM,CAAA;IACb,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,KAAK,IAAI,CAAA;IAC3C,SAAS,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;IAClC,QAAQ,EAAE,MAAM,CAAA;CACjB,CAAA;AAED,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CAyFvC,CAAA"}
@@ -56,7 +56,7 @@ export const ArrayAction = ({ addRow, duplicateRow, hasMaxRows, index, isSortabl
56
56
  /*#__PURE__*/ _jsxs(PopupList.Button, {
57
57
  className: `${baseClass}__action ${baseClass}__add`,
58
58
  onClick: ()=>{
59
- addRow(index + 1);
59
+ void addRow(index + 1);
60
60
  close();
61
61
  },
62
62
  children: [
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/elements/ArrayAction/index.tsx"],"sourcesContent":["'use client'\nimport React from 'react'\n\nimport { ChevronIcon } from '../../icons/Chevron/index.js'\nimport { CopyIcon } from '../../icons/Copy/index.js'\nimport { MoreIcon } from '../../icons/More/index.js'\nimport { PlusIcon } from '../../icons/Plus/index.js'\nimport { XIcon } from '../../icons/X/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { Popup, PopupList } from '../Popup/index.js'\nimport './index.scss'\n\nconst baseClass = 'array-actions'\n\nexport type Props = {\n addRow: (current: number, blockType?: string) => void\n duplicateRow: (current: number) => void\n hasMaxRows: boolean\n index: number\n isSortable?: boolean\n moveRow: (from: number, to: number) => void\n removeRow: (index: number) => void\n rowCount: number\n}\n\nexport const ArrayAction: React.FC<Props> = ({\n addRow,\n duplicateRow,\n hasMaxRows,\n index,\n isSortable,\n moveRow,\n removeRow,\n rowCount,\n}) => {\n const { t } = useTranslation()\n\n return (\n <Popup\n button={<MoreIcon />}\n buttonClassName={`${baseClass}__button`}\n className={baseClass}\n horizontalAlign=\"center\"\n render={({ close }) => {\n return (\n <PopupList.ButtonGroup buttonSize=\"small\">\n {isSortable && index !== 0 && (\n <PopupList.Button\n className={`${baseClass}__action ${baseClass}__move-up`}\n onClick={() => {\n moveRow(index, index - 1)\n close()\n }}\n >\n <div className={`${baseClass}__action-chevron`}>\n <ChevronIcon direction=\"up\" />\n </div>\n {t('general:moveUp')}\n </PopupList.Button>\n )}\n {isSortable && index < rowCount - 1 && (\n <PopupList.Button\n className={`${baseClass}__action`}\n onClick={() => {\n moveRow(index, index + 1)\n close()\n }}\n >\n <div className={`${baseClass}__action-chevron`}>\n <ChevronIcon />\n </div>\n {t('general:moveDown')}\n </PopupList.Button>\n )}\n {!hasMaxRows && (\n <React.Fragment>\n <PopupList.Button\n className={`${baseClass}__action ${baseClass}__add`}\n onClick={() => {\n addRow(index + 1)\n close()\n }}\n >\n <PlusIcon />\n {t('general:addBelow')}\n </PopupList.Button>\n <PopupList.Button\n className={`${baseClass}__action ${baseClass}__duplicate`}\n onClick={() => {\n duplicateRow(index)\n close()\n }}\n >\n <CopyIcon />\n {t('general:duplicate')}\n </PopupList.Button>\n </React.Fragment>\n )}\n <PopupList.Button\n className={`${baseClass}__action ${baseClass}__remove`}\n onClick={() => {\n removeRow(index)\n close()\n }}\n >\n <XIcon />\n {t('general:remove')}\n </PopupList.Button>\n </PopupList.ButtonGroup>\n )\n }}\n size=\"medium\"\n />\n )\n}\n"],"names":["React","ChevronIcon","CopyIcon","MoreIcon","PlusIcon","XIcon","useTranslation","Popup","PopupList","baseClass","ArrayAction","addRow","duplicateRow","hasMaxRows","index","isSortable","moveRow","removeRow","rowCount","t","button","buttonClassName","className","horizontalAlign","render","close","ButtonGroup","buttonSize","Button","onClick","div","direction","Fragment","size"],"mappings":"AAAA;;AACA,OAAOA,WAAW,QAAO;AAEzB,SAASC,WAAW,QAAQ,+BAA8B;AAC1D,SAASC,QAAQ,QAAQ,4BAA2B;AACpD,SAASC,QAAQ,QAAQ,4BAA2B;AACpD,SAASC,QAAQ,QAAQ,4BAA2B;AACpD,SAASC,KAAK,QAAQ,yBAAwB;AAC9C,SAASC,cAAc,QAAQ,uCAAsC;AACrE,SAASC,KAAK,EAAEC,SAAS,QAAQ,oBAAmB;AACpD,OAAO,eAAc;AAErB,MAAMC,YAAY;AAalB,OAAO,MAAMC,cAA+B,CAAC,EAC3CC,MAAM,EACNC,YAAY,EACZC,UAAU,EACVC,KAAK,EACLC,UAAU,EACVC,OAAO,EACPC,SAAS,EACTC,QAAQ,EACT;IACC,MAAM,EAAEC,CAAC,EAAE,GAAGb;IAEd,qBACE,KAACC;QACCa,sBAAQ,KAACjB;QACTkB,iBAAiB,CAAC,EAAEZ,UAAU,QAAQ,CAAC;QACvCa,WAAWb;QACXc,iBAAgB;QAChBC,QAAQ,CAAC,EAAEC,KAAK,EAAE;YAChB,qBACE,MAACjB,UAAUkB,WAAW;gBAACC,YAAW;;oBAC/BZ,cAAcD,UAAU,mBACvB,MAACN,UAAUoB,MAAM;wBACfN,WAAW,CAAC,EAAEb,UAAU,SAAS,EAAEA,UAAU,SAAS,CAAC;wBACvDoB,SAAS;4BACPb,QAAQF,OAAOA,QAAQ;4BACvBW;wBACF;;0CAEA,KAACK;gCAAIR,WAAW,CAAC,EAAEb,UAAU,gBAAgB,CAAC;0CAC5C,cAAA,KAACR;oCAAY8B,WAAU;;;4BAExBZ,EAAE;;;oBAGNJ,cAAcD,QAAQI,WAAW,mBAChC,MAACV,UAAUoB,MAAM;wBACfN,WAAW,CAAC,EAAEb,UAAU,QAAQ,CAAC;wBACjCoB,SAAS;4BACPb,QAAQF,OAAOA,QAAQ;4BACvBW;wBACF;;0CAEA,KAACK;gCAAIR,WAAW,CAAC,EAAEb,UAAU,gBAAgB,CAAC;0CAC5C,cAAA,KAACR;;4BAEFkB,EAAE;;;oBAGN,CAACN,4BACA,MAACb,MAAMgC,QAAQ;;0CACb,MAACxB,UAAUoB,MAAM;gCACfN,WAAW,CAAC,EAAEb,UAAU,SAAS,EAAEA,UAAU,KAAK,CAAC;gCACnDoB,SAAS;oCACPlB,OAAOG,QAAQ;oCACfW;gCACF;;kDAEA,KAACrB;oCACAe,EAAE;;;0CAEL,MAACX,UAAUoB,MAAM;gCACfN,WAAW,CAAC,EAAEb,UAAU,SAAS,EAAEA,UAAU,WAAW,CAAC;gCACzDoB,SAAS;oCACPjB,aAAaE;oCACbW;gCACF;;kDAEA,KAACvB;oCACAiB,EAAE;;;;;kCAIT,MAACX,UAAUoB,MAAM;wBACfN,WAAW,CAAC,EAAEb,UAAU,SAAS,EAAEA,UAAU,QAAQ,CAAC;wBACtDoB,SAAS;4BACPZ,UAAUH;4BACVW;wBACF;;0CAEA,KAACpB;4BACAc,EAAE;;;;;QAIX;QACAc,MAAK;;AAGX,EAAC"}
1
+ {"version":3,"sources":["../../../src/elements/ArrayAction/index.tsx"],"sourcesContent":["'use client'\nimport React from 'react'\n\nimport { ChevronIcon } from '../../icons/Chevron/index.js'\nimport { CopyIcon } from '../../icons/Copy/index.js'\nimport { MoreIcon } from '../../icons/More/index.js'\nimport { PlusIcon } from '../../icons/Plus/index.js'\nimport { XIcon } from '../../icons/X/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { Popup, PopupList } from '../Popup/index.js'\nimport './index.scss'\n\nconst baseClass = 'array-actions'\n\nexport type Props = {\n addRow: (current: number, blockType?: string) => Promise<void> | void\n duplicateRow: (current: number) => void\n hasMaxRows: boolean\n index: number\n isSortable?: boolean\n moveRow: (from: number, to: number) => void\n removeRow: (index: number) => void\n rowCount: number\n}\n\nexport const ArrayAction: React.FC<Props> = ({\n addRow,\n duplicateRow,\n hasMaxRows,\n index,\n isSortable,\n moveRow,\n removeRow,\n rowCount,\n}) => {\n const { t } = useTranslation()\n\n return (\n <Popup\n button={<MoreIcon />}\n buttonClassName={`${baseClass}__button`}\n className={baseClass}\n horizontalAlign=\"center\"\n render={({ close }) => {\n return (\n <PopupList.ButtonGroup buttonSize=\"small\">\n {isSortable && index !== 0 && (\n <PopupList.Button\n className={`${baseClass}__action ${baseClass}__move-up`}\n onClick={() => {\n moveRow(index, index - 1)\n close()\n }}\n >\n <div className={`${baseClass}__action-chevron`}>\n <ChevronIcon direction=\"up\" />\n </div>\n {t('general:moveUp')}\n </PopupList.Button>\n )}\n {isSortable && index < rowCount - 1 && (\n <PopupList.Button\n className={`${baseClass}__action`}\n onClick={() => {\n moveRow(index, index + 1)\n close()\n }}\n >\n <div className={`${baseClass}__action-chevron`}>\n <ChevronIcon />\n </div>\n {t('general:moveDown')}\n </PopupList.Button>\n )}\n {!hasMaxRows && (\n <React.Fragment>\n <PopupList.Button\n className={`${baseClass}__action ${baseClass}__add`}\n onClick={() => {\n void addRow(index + 1)\n close()\n }}\n >\n <PlusIcon />\n {t('general:addBelow')}\n </PopupList.Button>\n <PopupList.Button\n className={`${baseClass}__action ${baseClass}__duplicate`}\n onClick={() => {\n duplicateRow(index)\n close()\n }}\n >\n <CopyIcon />\n {t('general:duplicate')}\n </PopupList.Button>\n </React.Fragment>\n )}\n <PopupList.Button\n className={`${baseClass}__action ${baseClass}__remove`}\n onClick={() => {\n removeRow(index)\n close()\n }}\n >\n <XIcon />\n {t('general:remove')}\n </PopupList.Button>\n </PopupList.ButtonGroup>\n )\n }}\n size=\"medium\"\n />\n )\n}\n"],"names":["React","ChevronIcon","CopyIcon","MoreIcon","PlusIcon","XIcon","useTranslation","Popup","PopupList","baseClass","ArrayAction","addRow","duplicateRow","hasMaxRows","index","isSortable","moveRow","removeRow","rowCount","t","button","buttonClassName","className","horizontalAlign","render","close","ButtonGroup","buttonSize","Button","onClick","div","direction","Fragment","size"],"mappings":"AAAA;;AACA,OAAOA,WAAW,QAAO;AAEzB,SAASC,WAAW,QAAQ,+BAA8B;AAC1D,SAASC,QAAQ,QAAQ,4BAA2B;AACpD,SAASC,QAAQ,QAAQ,4BAA2B;AACpD,SAASC,QAAQ,QAAQ,4BAA2B;AACpD,SAASC,KAAK,QAAQ,yBAAwB;AAC9C,SAASC,cAAc,QAAQ,uCAAsC;AACrE,SAASC,KAAK,EAAEC,SAAS,QAAQ,oBAAmB;AACpD,OAAO,eAAc;AAErB,MAAMC,YAAY;AAalB,OAAO,MAAMC,cAA+B,CAAC,EAC3CC,MAAM,EACNC,YAAY,EACZC,UAAU,EACVC,KAAK,EACLC,UAAU,EACVC,OAAO,EACPC,SAAS,EACTC,QAAQ,EACT;IACC,MAAM,EAAEC,CAAC,EAAE,GAAGb;IAEd,qBACE,KAACC;QACCa,sBAAQ,KAACjB;QACTkB,iBAAiB,CAAC,EAAEZ,UAAU,QAAQ,CAAC;QACvCa,WAAWb;QACXc,iBAAgB;QAChBC,QAAQ,CAAC,EAAEC,KAAK,EAAE;YAChB,qBACE,MAACjB,UAAUkB,WAAW;gBAACC,YAAW;;oBAC/BZ,cAAcD,UAAU,mBACvB,MAACN,UAAUoB,MAAM;wBACfN,WAAW,CAAC,EAAEb,UAAU,SAAS,EAAEA,UAAU,SAAS,CAAC;wBACvDoB,SAAS;4BACPb,QAAQF,OAAOA,QAAQ;4BACvBW;wBACF;;0CAEA,KAACK;gCAAIR,WAAW,CAAC,EAAEb,UAAU,gBAAgB,CAAC;0CAC5C,cAAA,KAACR;oCAAY8B,WAAU;;;4BAExBZ,EAAE;;;oBAGNJ,cAAcD,QAAQI,WAAW,mBAChC,MAACV,UAAUoB,MAAM;wBACfN,WAAW,CAAC,EAAEb,UAAU,QAAQ,CAAC;wBACjCoB,SAAS;4BACPb,QAAQF,OAAOA,QAAQ;4BACvBW;wBACF;;0CAEA,KAACK;gCAAIR,WAAW,CAAC,EAAEb,UAAU,gBAAgB,CAAC;0CAC5C,cAAA,KAACR;;4BAEFkB,EAAE;;;oBAGN,CAACN,4BACA,MAACb,MAAMgC,QAAQ;;0CACb,MAACxB,UAAUoB,MAAM;gCACfN,WAAW,CAAC,EAAEb,UAAU,SAAS,EAAEA,UAAU,KAAK,CAAC;gCACnDoB,SAAS;oCACP,KAAKlB,OAAOG,QAAQ;oCACpBW;gCACF;;kDAEA,KAACrB;oCACAe,EAAE;;;0CAEL,MAACX,UAAUoB,MAAM;gCACfN,WAAW,CAAC,EAAEb,UAAU,SAAS,EAAEA,UAAU,WAAW,CAAC;gCACzDoB,SAAS;oCACPjB,aAAaE;oCACbW;gCACF;;kDAEA,KAACvB;oCACAiB,EAAE;;;;;kCAIT,MAACX,UAAUoB,MAAM;wBACfN,WAAW,CAAC,EAAEb,UAAU,SAAS,EAAEA,UAAU,QAAQ,CAAC;wBACtDoB,SAAS;4BACPZ,UAAUH;4BACVW;wBACF;;0CAEA,KAACpB;4BACAc,EAAE;;;;;QAIX;QACAc,MAAK;;AAGX,EAAC"}
@@ -30,17 +30,4 @@
30
30
  }
31
31
  }
32
32
  }
33
-
34
- &__move-up {
35
- margin-bottom: 2px;
36
- }
37
-
38
- &__move-down {
39
- margin-top: 6px;
40
- margin-bottom: 2px;
41
- }
42
-
43
- &__action-chevron {
44
- padding: 0 calc(var(--base) / 4);
45
- }
46
33
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/Autosave/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,sBAAsB,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAA;AAGzE,OAAO,KAAsC,MAAM,OAAO,CAAA;AAiB1D,OAAO,cAAc,CAAA;AAIrB,MAAM,MAAM,KAAK,GAAG;IAClB,UAAU,CAAC,EAAE,sBAAsB,CAAA;IACnC,MAAM,CAAC,EAAE,kBAAkB,CAAA;IAC3B,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IACpB,qBAAqB,EAAE,MAAM,CAAA;CAC9B,CAAA;AAED,eAAO,MAAM,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CAkNpC,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/Autosave/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,sBAAsB,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAA;AAGzE,OAAO,KAAsC,MAAM,OAAO,CAAA;AAiB1D,OAAO,cAAc,CAAA;AAMrB,MAAM,MAAM,KAAK,GAAG;IAClB,UAAU,CAAC,EAAE,sBAAsB,CAAA;IACnC,MAAM,CAAC,EAAE,kBAAkB,CAAA;IAC3B,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IACpB,qBAAqB,EAAE,MAAM,CAAA;CAC9B,CAAA;AAED,eAAO,MAAM,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CA2OpC,CAAA"}
@@ -14,11 +14,13 @@ import { formatTimeToNow } from '../../utilities/formatDate.js';
14
14
  import { reduceFieldsToValuesWithValidation } from '../../utilities/reduceFieldsToValuesWithValidation.js';
15
15
  import './index.scss';
16
16
  const baseClass = 'autosave';
17
+ // The minimum time the saving state should be shown
18
+ const minimumAnimationTime = 1000;
17
19
  export const Autosave = ({ id, collection, global: globalDoc, publishedDocUpdatedAt })=>{
18
20
  const { routes: { api }, serverURL } = useConfig();
19
21
  const { docConfig, getVersions, versions } = useDocumentInfo();
20
22
  const { reportUpdate } = useDocumentEvents();
21
- const { dispatchFields, setSubmitted } = useForm();
23
+ const { dispatchFields, setModified, setSubmitted } = useForm();
22
24
  const submitted = useFormSubmitted();
23
25
  const versionsConfig = docConfig?.versions;
24
26
  const [fields] = useAllFormFields();
@@ -51,8 +53,12 @@ export const Autosave = ({ id, collection, global: globalDoc, publishedDocUpdate
51
53
  useEffect(()=>{
52
54
  const abortController = new AbortController();
53
55
  let autosaveTimeout = undefined;
56
+ // We need to log the time in order to figure out if we need to trigger the state off later
57
+ let startTimestamp = undefined;
58
+ let endTimestamp = undefined;
54
59
  const autosave = ()=>{
55
60
  if (modified) {
61
+ startTimestamp = new Date().getTime();
56
62
  setSaving(true);
57
63
  let url;
58
64
  let method;
@@ -68,36 +74,40 @@ export const Autosave = ({ id, collection, global: globalDoc, publishedDocUpdate
68
74
  method = 'POST';
69
75
  }
70
76
  if (url) {
71
- autosaveTimeout = setTimeout(async ()=>{
72
- if (modifiedRef.current) {
73
- const { data, valid } = {
74
- ...reduceFieldsToValuesWithValidation(fieldRef.current, true)
75
- };
76
- data._status = 'draft';
77
- const skipSubmission = submitted && !valid && versionsConfig?.drafts && versionsConfig?.drafts?.validate;
78
- if (!skipSubmission) {
79
- const res = await fetch(url, {
80
- body: JSON.stringify(data),
81
- credentials: 'include',
82
- headers: {
83
- 'Accept-Language': i18n.language,
84
- 'Content-Type': 'application/json'
85
- },
86
- method,
87
- signal: abortController.signal
88
- });
77
+ if (modifiedRef.current) {
78
+ const { data, valid } = {
79
+ ...reduceFieldsToValuesWithValidation(fieldRef.current, true)
80
+ };
81
+ data._status = 'draft';
82
+ const skipSubmission = submitted && !valid && versionsConfig?.drafts && versionsConfig?.drafts?.validate;
83
+ if (!skipSubmission) {
84
+ void fetch(url, {
85
+ body: JSON.stringify(data),
86
+ credentials: 'include',
87
+ headers: {
88
+ 'Accept-Language': i18n.language,
89
+ 'Content-Type': 'application/json'
90
+ },
91
+ method,
92
+ signal: abortController.signal
93
+ }).then((res)=>{
94
+ const newDate = new Date();
95
+ // We need to log the time in order to figure out if we need to trigger the state off later
96
+ endTimestamp = newDate.getTime();
89
97
  if (res.status === 200) {
90
- const newDate = new Date();
91
98
  setLastSaved(newDate.getTime());
92
99
  reportUpdate({
93
100
  id,
94
101
  entitySlug,
95
102
  updatedAt: newDate.toISOString()
96
103
  });
104
+ setModified(false);
97
105
  void getVersions();
106
+ } else {
107
+ return res.json();
98
108
  }
99
- if (versionsConfig?.drafts && versionsConfig?.drafts?.validate && res.status === 400) {
100
- const json = await res.json();
109
+ }).then((json)=>{
110
+ if (versionsConfig?.drafts && versionsConfig?.drafts?.validate && json.errors) {
101
111
  if (Array.isArray(json.errors)) {
102
112
  const [fieldErrors, nonFieldErrors] = json.errors.reduce(([fieldErrs, nonFieldErrs], err)=>{
103
113
  const newFieldErrs = [];
@@ -140,17 +150,31 @@ export const Autosave = ({ id, collection, global: globalDoc, publishedDocUpdate
140
150
  return;
141
151
  }
142
152
  }
143
- }
153
+ }).then(()=>{
154
+ // If request was faster than minimum animation time, animate the difference
155
+ if (endTimestamp - startTimestamp < minimumAnimationTime) {
156
+ autosaveTimeout = setTimeout(()=>{
157
+ setSaving(false);
158
+ }, minimumAnimationTime - (endTimestamp - startTimestamp));
159
+ } else {
160
+ setSaving(false);
161
+ }
162
+ });
144
163
  }
145
- setSaving(false);
146
- }, 1000);
164
+ }
147
165
  }
148
166
  }
149
167
  };
150
168
  void autosave();
151
169
  return ()=>{
152
- clearTimeout(autosaveTimeout);
153
- if (abortController.signal) abortController.abort();
170
+ if (autosaveTimeout) clearTimeout(autosaveTimeout);
171
+ if (abortController.signal) {
172
+ try {
173
+ abortController.abort();
174
+ } catch (error) {
175
+ // swallow error
176
+ }
177
+ }
154
178
  setSaving(false);
155
179
  };
156
180
  }, [
@@ -166,6 +190,7 @@ export const Autosave = ({ id, collection, global: globalDoc, publishedDocUpdate
166
190
  reportUpdate,
167
191
  serverURL,
168
192
  setSubmitted,
193
+ setModified,
169
194
  versionsConfig?.drafts,
170
195
  debouncedFields,
171
196
  submitted
@@ -184,7 +209,7 @@ export const Autosave = ({ id, collection, global: globalDoc, publishedDocUpdate
184
209
  className: baseClass,
185
210
  children: [
186
211
  saving && t('general:saving'),
187
- !saving && lastSaved && /*#__PURE__*/ _jsx(React.Fragment, {
212
+ !saving && Boolean(lastSaved) && /*#__PURE__*/ _jsx(React.Fragment, {
188
213
  children: t('version:lastSavedAgo', {
189
214
  distance: formatTimeToNow({
190
215
  date: lastSaved,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/elements/Autosave/index.tsx"],"sourcesContent":["'use client'\n// TODO: abstract the `next/navigation` dependency out from this component\nimport type { ClientCollectionConfig, ClientGlobalConfig } from 'payload'\n\nimport { versionDefaults } from 'payload/shared'\nimport React, { useEffect, useRef, useState } from 'react'\nimport { toast } from 'sonner'\n\nimport {\n useAllFormFields,\n useForm,\n useFormModified,\n useFormSubmitted,\n} from '../../forms/Form/context.js'\nimport { useDebounce } from '../../hooks/useDebounce.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useDocumentEvents } from '../../providers/DocumentEvents/index.js'\nimport { useDocumentInfo } from '../../providers/DocumentInfo/index.js'\nimport { useLocale } from '../../providers/Locale/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { formatTimeToNow } from '../../utilities/formatDate.js'\nimport { reduceFieldsToValuesWithValidation } from '../../utilities/reduceFieldsToValuesWithValidation.js'\nimport './index.scss'\n\nconst baseClass = 'autosave'\n\nexport type Props = {\n collection?: ClientCollectionConfig\n global?: ClientGlobalConfig\n id?: number | string\n publishedDocUpdatedAt: string\n}\n\nexport const Autosave: React.FC<Props> = ({\n id,\n collection,\n global: globalDoc,\n publishedDocUpdatedAt,\n}) => {\n const {\n routes: { api },\n serverURL,\n } = useConfig()\n const { docConfig, getVersions, versions } = useDocumentInfo()\n const { reportUpdate } = useDocumentEvents()\n const { dispatchFields, setSubmitted } = useForm()\n const submitted = useFormSubmitted()\n const versionsConfig = docConfig?.versions\n\n const [fields] = useAllFormFields()\n const formModified = useFormModified()\n const { code: locale } = useLocale()\n const { i18n, t } = useTranslation()\n\n let interval = versionDefaults.autosaveInterval\n if (versionsConfig.drafts && versionsConfig.drafts.autosave)\n interval = versionsConfig.drafts.autosave.interval\n\n const [saving, setSaving] = useState(false)\n const [lastSaved, setLastSaved] = useState<number>()\n const debouncedFields = useDebounce(fields, interval)\n const modified = useDebounce(formModified, interval)\n const fieldRef = useRef(fields)\n const modifiedRef = useRef(modified)\n const localeRef = useRef(locale)\n const debouncedRef = useRef(debouncedFields)\n\n debouncedRef.current = debouncedFields\n\n // Store fields in ref so the autosave func\n // can always retrieve the most to date copies\n // after the timeout has executed\n fieldRef.current = fields\n\n // Store modified in ref so the autosave func\n // can bail out if modified becomes false while\n // timing out during autosave\n modifiedRef.current = modified\n\n // Store locale in ref so the autosave func\n // can always retrieve the most to date locale\n localeRef.current = locale\n\n // When debounced fields change, autosave\n useEffect(() => {\n const abortController = new AbortController()\n let autosaveTimeout = undefined\n\n const autosave = () => {\n if (modified) {\n setSaving(true)\n\n let url: string\n let method: string\n let entitySlug: string\n\n if (collection && id) {\n entitySlug = collection.slug\n url = `${serverURL}${api}/${entitySlug}/${id}?draft=true&autosave=true&locale=${localeRef.current}`\n method = 'PATCH'\n }\n\n if (globalDoc) {\n entitySlug = globalDoc.slug\n url = `${serverURL}${api}/globals/${entitySlug}?draft=true&autosave=true&locale=${localeRef.current}`\n method = 'POST'\n }\n\n if (url) {\n autosaveTimeout = setTimeout(async () => {\n if (modifiedRef.current) {\n const { data, valid } = {\n ...reduceFieldsToValuesWithValidation(fieldRef.current, true),\n }\n data._status = 'draft'\n const skipSubmission =\n submitted && !valid && versionsConfig?.drafts && versionsConfig?.drafts?.validate\n\n if (!skipSubmission) {\n const res = await fetch(url, {\n body: JSON.stringify(data),\n credentials: 'include',\n headers: {\n 'Accept-Language': i18n.language,\n 'Content-Type': 'application/json',\n },\n method,\n signal: abortController.signal,\n })\n\n if (res.status === 200) {\n const newDate = new Date()\n setLastSaved(newDate.getTime())\n reportUpdate({\n id,\n entitySlug,\n updatedAt: newDate.toISOString(),\n })\n void getVersions()\n }\n\n if (\n versionsConfig?.drafts &&\n versionsConfig?.drafts?.validate &&\n res.status === 400\n ) {\n const json = await res.json()\n if (Array.isArray(json.errors)) {\n const [fieldErrors, nonFieldErrors] = json.errors.reduce(\n ([fieldErrs, nonFieldErrs], err) => {\n const newFieldErrs = []\n const newNonFieldErrs = []\n\n if (err?.message) {\n newNonFieldErrs.push(err)\n }\n\n if (Array.isArray(err?.data)) {\n err.data.forEach((dataError) => {\n if (dataError?.field) {\n newFieldErrs.push(dataError)\n } else {\n newNonFieldErrs.push(dataError)\n }\n })\n }\n\n return [\n [...fieldErrs, ...newFieldErrs],\n [...nonFieldErrs, ...newNonFieldErrs],\n ]\n },\n [[], []],\n )\n\n dispatchFields({\n type: 'ADD_SERVER_ERRORS',\n errors: fieldErrors,\n })\n\n nonFieldErrors.forEach((err) => {\n toast.error(err.message || i18n.t('error:unknown'))\n })\n\n setSubmitted(true)\n setSaving(false)\n return\n }\n }\n }\n }\n\n setSaving(false)\n }, 1000)\n }\n }\n }\n\n void autosave()\n\n return () => {\n clearTimeout(autosaveTimeout)\n if (abortController.signal) abortController.abort()\n setSaving(false)\n }\n }, [\n api,\n collection,\n dispatchFields,\n getVersions,\n globalDoc,\n i18n,\n id,\n interval,\n modified,\n reportUpdate,\n serverURL,\n setSubmitted,\n versionsConfig?.drafts,\n debouncedFields,\n submitted,\n ])\n\n useEffect(() => {\n if (versions?.docs?.[0]) {\n setLastSaved(new Date(versions.docs[0].updatedAt).getTime())\n } else if (publishedDocUpdatedAt) {\n setLastSaved(new Date(publishedDocUpdatedAt).getTime())\n }\n }, [publishedDocUpdatedAt, versions])\n\n return (\n <div className={baseClass}>\n {saving && t('general:saving')}\n {!saving && lastSaved && (\n <React.Fragment>\n {t('version:lastSavedAgo', {\n distance: formatTimeToNow({ date: lastSaved, i18n }),\n })}\n </React.Fragment>\n )}\n </div>\n )\n}\n"],"names":["versionDefaults","React","useEffect","useRef","useState","toast","useAllFormFields","useForm","useFormModified","useFormSubmitted","useDebounce","useConfig","useDocumentEvents","useDocumentInfo","useLocale","useTranslation","formatTimeToNow","reduceFieldsToValuesWithValidation","baseClass","Autosave","id","collection","global","globalDoc","publishedDocUpdatedAt","routes","api","serverURL","docConfig","getVersions","versions","reportUpdate","dispatchFields","setSubmitted","submitted","versionsConfig","fields","formModified","code","locale","i18n","t","interval","autosaveInterval","drafts","autosave","saving","setSaving","lastSaved","setLastSaved","debouncedFields","modified","fieldRef","modifiedRef","localeRef","debouncedRef","current","abortController","AbortController","autosaveTimeout","undefined","url","method","entitySlug","slug","setTimeout","data","valid","_status","skipSubmission","validate","res","fetch","body","JSON","stringify","credentials","headers","language","signal","status","newDate","Date","getTime","updatedAt","toISOString","json","Array","isArray","errors","fieldErrors","nonFieldErrors","reduce","fieldErrs","nonFieldErrs","err","newFieldErrs","newNonFieldErrs","message","push","forEach","dataError","field","type","error","clearTimeout","abort","docs","div","className","Fragment","distance","date"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../src/elements/Autosave/index.tsx"],"sourcesContent":["'use client'\n// TODO: abstract the `next/navigation` dependency out from this component\nimport type { ClientCollectionConfig, ClientGlobalConfig } from 'payload'\n\nimport { versionDefaults } from 'payload/shared'\nimport React, { useEffect, useRef, useState } from 'react'\nimport { toast } from 'sonner'\n\nimport {\n useAllFormFields,\n useForm,\n useFormModified,\n useFormSubmitted,\n} from '../../forms/Form/context.js'\nimport { useDebounce } from '../../hooks/useDebounce.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useDocumentEvents } from '../../providers/DocumentEvents/index.js'\nimport { useDocumentInfo } from '../../providers/DocumentInfo/index.js'\nimport { useLocale } from '../../providers/Locale/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { formatTimeToNow } from '../../utilities/formatDate.js'\nimport { reduceFieldsToValuesWithValidation } from '../../utilities/reduceFieldsToValuesWithValidation.js'\nimport './index.scss'\n\nconst baseClass = 'autosave'\n// The minimum time the saving state should be shown\nconst minimumAnimationTime = 1000\n\nexport type Props = {\n collection?: ClientCollectionConfig\n global?: ClientGlobalConfig\n id?: number | string\n publishedDocUpdatedAt: string\n}\n\nexport const Autosave: React.FC<Props> = ({\n id,\n collection,\n global: globalDoc,\n publishedDocUpdatedAt,\n}) => {\n const {\n routes: { api },\n serverURL,\n } = useConfig()\n const { docConfig, getVersions, versions } = useDocumentInfo()\n const { reportUpdate } = useDocumentEvents()\n const { dispatchFields, setModified, setSubmitted } = useForm()\n const submitted = useFormSubmitted()\n const versionsConfig = docConfig?.versions\n\n const [fields] = useAllFormFields()\n const formModified = useFormModified()\n const { code: locale } = useLocale()\n const { i18n, t } = useTranslation()\n\n let interval = versionDefaults.autosaveInterval\n if (versionsConfig.drafts && versionsConfig.drafts.autosave)\n interval = versionsConfig.drafts.autosave.interval\n\n const [saving, setSaving] = useState(false)\n const [lastSaved, setLastSaved] = useState<number>()\n const debouncedFields = useDebounce(fields, interval)\n const modified = useDebounce(formModified, interval)\n const fieldRef = useRef(fields)\n const modifiedRef = useRef(modified)\n const localeRef = useRef(locale)\n const debouncedRef = useRef(debouncedFields)\n\n debouncedRef.current = debouncedFields\n\n // Store fields in ref so the autosave func\n // can always retrieve the most to date copies\n // after the timeout has executed\n fieldRef.current = fields\n\n // Store modified in ref so the autosave func\n // can bail out if modified becomes false while\n // timing out during autosave\n modifiedRef.current = modified\n\n // Store locale in ref so the autosave func\n // can always retrieve the most to date locale\n localeRef.current = locale\n\n // When debounced fields change, autosave\n useEffect(() => {\n const abortController = new AbortController()\n let autosaveTimeout = undefined\n // We need to log the time in order to figure out if we need to trigger the state off later\n let startTimestamp = undefined\n let endTimestamp = undefined\n\n const autosave = () => {\n if (modified) {\n startTimestamp = new Date().getTime()\n\n setSaving(true)\n\n let url: string\n let method: string\n let entitySlug: string\n\n if (collection && id) {\n entitySlug = collection.slug\n url = `${serverURL}${api}/${entitySlug}/${id}?draft=true&autosave=true&locale=${localeRef.current}`\n method = 'PATCH'\n }\n\n if (globalDoc) {\n entitySlug = globalDoc.slug\n url = `${serverURL}${api}/globals/${entitySlug}?draft=true&autosave=true&locale=${localeRef.current}`\n method = 'POST'\n }\n\n if (url) {\n if (modifiedRef.current) {\n const { data, valid } = {\n ...reduceFieldsToValuesWithValidation(fieldRef.current, true),\n }\n data._status = 'draft'\n const skipSubmission =\n submitted && !valid && versionsConfig?.drafts && versionsConfig?.drafts?.validate\n\n if (!skipSubmission) {\n void fetch(url, {\n body: JSON.stringify(data),\n credentials: 'include',\n headers: {\n 'Accept-Language': i18n.language,\n 'Content-Type': 'application/json',\n },\n method,\n signal: abortController.signal,\n })\n .then((res) => {\n const newDate = new Date()\n // We need to log the time in order to figure out if we need to trigger the state off later\n endTimestamp = newDate.getTime()\n\n if (res.status === 200) {\n setLastSaved(newDate.getTime())\n\n reportUpdate({\n id,\n entitySlug,\n updatedAt: newDate.toISOString(),\n })\n setModified(false)\n void getVersions()\n } else {\n return res.json()\n }\n })\n .then((json) => {\n if (versionsConfig?.drafts && versionsConfig?.drafts?.validate && json.errors) {\n if (Array.isArray(json.errors)) {\n const [fieldErrors, nonFieldErrors] = json.errors.reduce(\n ([fieldErrs, nonFieldErrs], err) => {\n const newFieldErrs = []\n const newNonFieldErrs = []\n\n if (err?.message) {\n newNonFieldErrs.push(err)\n }\n\n if (Array.isArray(err?.data)) {\n err.data.forEach((dataError) => {\n if (dataError?.field) {\n newFieldErrs.push(dataError)\n } else {\n newNonFieldErrs.push(dataError)\n }\n })\n }\n\n return [\n [...fieldErrs, ...newFieldErrs],\n [...nonFieldErrs, ...newNonFieldErrs],\n ]\n },\n [[], []],\n )\n\n dispatchFields({\n type: 'ADD_SERVER_ERRORS',\n errors: fieldErrors,\n })\n\n nonFieldErrors.forEach((err) => {\n toast.error(err.message || i18n.t('error:unknown'))\n })\n\n setSubmitted(true)\n setSaving(false)\n return\n }\n }\n })\n .then(() => {\n // If request was faster than minimum animation time, animate the difference\n if (endTimestamp - startTimestamp < minimumAnimationTime) {\n autosaveTimeout = setTimeout(\n () => {\n setSaving(false)\n },\n minimumAnimationTime - (endTimestamp - startTimestamp),\n )\n } else {\n setSaving(false)\n }\n })\n }\n }\n }\n }\n }\n\n void autosave()\n\n return () => {\n if (autosaveTimeout) clearTimeout(autosaveTimeout)\n if (abortController.signal) {\n try {\n abortController.abort()\n } catch (error) {\n // swallow error\n }\n }\n setSaving(false)\n }\n }, [\n api,\n collection,\n dispatchFields,\n getVersions,\n globalDoc,\n i18n,\n id,\n interval,\n modified,\n reportUpdate,\n serverURL,\n setSubmitted,\n setModified,\n versionsConfig?.drafts,\n debouncedFields,\n submitted,\n ])\n\n useEffect(() => {\n if (versions?.docs?.[0]) {\n setLastSaved(new Date(versions.docs[0].updatedAt).getTime())\n } else if (publishedDocUpdatedAt) {\n setLastSaved(new Date(publishedDocUpdatedAt).getTime())\n }\n }, [publishedDocUpdatedAt, versions])\n\n return (\n <div className={baseClass}>\n {saving && t('general:saving')}\n {!saving && Boolean(lastSaved) && (\n <React.Fragment>\n {t('version:lastSavedAgo', {\n distance: formatTimeToNow({ date: lastSaved, i18n }),\n })}\n </React.Fragment>\n )}\n </div>\n )\n}\n"],"names":["versionDefaults","React","useEffect","useRef","useState","toast","useAllFormFields","useForm","useFormModified","useFormSubmitted","useDebounce","useConfig","useDocumentEvents","useDocumentInfo","useLocale","useTranslation","formatTimeToNow","reduceFieldsToValuesWithValidation","baseClass","minimumAnimationTime","Autosave","id","collection","global","globalDoc","publishedDocUpdatedAt","routes","api","serverURL","docConfig","getVersions","versions","reportUpdate","dispatchFields","setModified","setSubmitted","submitted","versionsConfig","fields","formModified","code","locale","i18n","t","interval","autosaveInterval","drafts","autosave","saving","setSaving","lastSaved","setLastSaved","debouncedFields","modified","fieldRef","modifiedRef","localeRef","debouncedRef","current","abortController","AbortController","autosaveTimeout","undefined","startTimestamp","endTimestamp","Date","getTime","url","method","entitySlug","slug","data","valid","_status","skipSubmission","validate","fetch","body","JSON","stringify","credentials","headers","language","signal","then","res","newDate","status","updatedAt","toISOString","json","errors","Array","isArray","fieldErrors","nonFieldErrors","reduce","fieldErrs","nonFieldErrs","err","newFieldErrs","newNonFieldErrs","message","push","forEach","dataError","field","type","error","setTimeout","clearTimeout","abort","docs","div","className","Boolean","Fragment","distance","date"],"mappings":"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"}
@@ -7,7 +7,7 @@
7
7
  vertical-align: middle;
8
8
  background: var(--theme-elevation-100);
9
9
  color: var(--theme-elevation-800);
10
- border-radius: $style-radius-s;
10
+ border-radius: $style-radius-m;
11
11
  padding: base(0.5);
12
12
  margin-bottom: $baseline;
13
13
 
@@ -59,7 +59,7 @@ export const Button = /*#__PURE__*/ forwardRef((props, ref)=>{
59
59
  disabled && `${baseClass}--disabled`,
60
60
  round && `${baseClass}--round`,
61
61
  size && `${baseClass}--size-${size}`,
62
- iconPosition && `${baseClass}--icon-position-${iconPosition}`,
62
+ icon && iconPosition && `${baseClass}--icon-position-${iconPosition}`,
63
63
  tooltip && `${baseClass}--has-tooltip`
64
64
  ].filter(Boolean).join(' ');
65
65
  function handleClick(event) {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/elements/Button/index.tsx"],"sourcesContent":["'use client'\nimport React, { Fragment, forwardRef, isValidElement } from 'react'\n\nimport type { Props } from './types.js'\n\nimport { ChevronIcon } from '../../icons/Chevron/index.js'\nimport { EditIcon } from '../../icons/Edit/index.js'\nimport { LinkIcon } from '../../icons/Link/index.js'\nimport { PlusIcon } from '../../icons/Plus/index.js'\nimport { SwapIcon } from '../../icons/Swap/index.js'\nimport { XIcon } from '../../icons/X/index.js'\nimport { Tooltip } from '../Tooltip/index.js'\nimport './index.scss'\n\nconst icons = {\n chevron: ChevronIcon,\n edit: EditIcon,\n link: LinkIcon,\n plus: PlusIcon,\n swap: SwapIcon,\n x: XIcon,\n}\n\nconst baseClass = 'btn'\n\nexport const ButtonContents = ({ children, icon, showTooltip, tooltip }) => {\n const BuiltInIcon = icons[icon]\n\n return (\n <Fragment>\n {tooltip && (\n <Tooltip className={`${baseClass}__tooltip`} show={showTooltip}>\n {tooltip}\n </Tooltip>\n )}\n <span className={`${baseClass}__content`}>\n {children && <span className={`${baseClass}__label`}>{children}</span>}\n {icon && (\n <span className={`${baseClass}__icon`}>\n {isValidElement(icon) && icon}\n {BuiltInIcon && <BuiltInIcon />}\n </span>\n )}\n </span>\n </Fragment>\n )\n}\n\nexport const Button = forwardRef<HTMLAnchorElement | HTMLButtonElement, Props>((props, ref) => {\n const {\n id,\n type = 'button',\n Link,\n 'aria-label': ariaLabel,\n buttonStyle = 'primary',\n children,\n className,\n disabled,\n el = 'button',\n icon,\n iconPosition = 'right',\n iconStyle = 'without-border',\n newTab,\n onClick,\n round,\n size = 'medium',\n to,\n tooltip,\n url,\n } = props\n\n const [showTooltip, setShowTooltip] = React.useState(false)\n\n const classes = [\n baseClass,\n className && className,\n buttonStyle && `${baseClass}--style-${buttonStyle}`,\n icon && `${baseClass}--icon`,\n iconStyle && `${baseClass}--icon-style-${iconStyle}`,\n icon && !children && `${baseClass}--icon-only`,\n disabled && `${baseClass}--disabled`,\n round && `${baseClass}--round`,\n size && `${baseClass}--size-${size}`,\n iconPosition && `${baseClass}--icon-position-${iconPosition}`,\n tooltip && `${baseClass}--has-tooltip`,\n ]\n .filter(Boolean)\n .join(' ')\n\n function handleClick(event) {\n setShowTooltip(false)\n if (type !== 'submit' && onClick) event.preventDefault()\n if (onClick) onClick(event)\n }\n\n const buttonProps = {\n id,\n type,\n 'aria-disabled': disabled,\n 'aria-label': ariaLabel,\n className: classes,\n disabled,\n onClick: !disabled ? handleClick : undefined,\n onMouseEnter: tooltip ? () => setShowTooltip(true) : undefined,\n onMouseLeave: tooltip ? () => setShowTooltip(false) : undefined,\n rel: newTab ? 'noopener noreferrer' : undefined,\n target: newTab ? '_blank' : undefined,\n }\n\n switch (el) {\n case 'link':\n if (!Link) {\n console.error('Link is required when using el=\"link\"', children)\n return null\n }\n\n return (\n <Link {...buttonProps} href={to || url} to={to || url}>\n <ButtonContents icon={icon} showTooltip={showTooltip} tooltip={tooltip}>\n {children}\n </ButtonContents>\n </Link>\n )\n\n case 'anchor':\n return (\n <a {...buttonProps} href={url} ref={ref as React.Ref<HTMLAnchorElement>}>\n <ButtonContents icon={icon} showTooltip={showTooltip} tooltip={tooltip}>\n {children}\n </ButtonContents>\n </a>\n )\n\n default:\n const Tag = el // eslint-disable-line no-case-declarations\n\n return (\n <Tag ref={ref} type=\"submit\" {...buttonProps}>\n <ButtonContents icon={icon} showTooltip={showTooltip} tooltip={tooltip}>\n {children}\n </ButtonContents>\n </Tag>\n )\n }\n})\n"],"names":["React","Fragment","forwardRef","isValidElement","ChevronIcon","EditIcon","LinkIcon","PlusIcon","SwapIcon","XIcon","Tooltip","icons","chevron","edit","link","plus","swap","x","baseClass","ButtonContents","children","icon","showTooltip","tooltip","BuiltInIcon","className","show","span","Button","props","ref","id","type","Link","ariaLabel","buttonStyle","disabled","el","iconPosition","iconStyle","newTab","onClick","round","size","to","url","setShowTooltip","useState","classes","filter","Boolean","join","handleClick","event","preventDefault","buttonProps","undefined","onMouseEnter","onMouseLeave","rel","target","console","error","href","a","Tag"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../src/elements/Button/index.tsx"],"sourcesContent":["'use client'\nimport React, { Fragment, forwardRef, isValidElement } from 'react'\n\nimport type { Props } from './types.js'\n\nimport { ChevronIcon } from '../../icons/Chevron/index.js'\nimport { EditIcon } from '../../icons/Edit/index.js'\nimport { LinkIcon } from '../../icons/Link/index.js'\nimport { PlusIcon } from '../../icons/Plus/index.js'\nimport { SwapIcon } from '../../icons/Swap/index.js'\nimport { XIcon } from '../../icons/X/index.js'\nimport { Tooltip } from '../Tooltip/index.js'\nimport './index.scss'\n\nconst icons = {\n chevron: ChevronIcon,\n edit: EditIcon,\n link: LinkIcon,\n plus: PlusIcon,\n swap: SwapIcon,\n x: XIcon,\n}\n\nconst baseClass = 'btn'\n\nexport const ButtonContents = ({ children, icon, showTooltip, tooltip }) => {\n const BuiltInIcon = icons[icon]\n\n return (\n <Fragment>\n {tooltip && (\n <Tooltip className={`${baseClass}__tooltip`} show={showTooltip}>\n {tooltip}\n </Tooltip>\n )}\n <span className={`${baseClass}__content`}>\n {children && <span className={`${baseClass}__label`}>{children}</span>}\n {icon && (\n <span className={`${baseClass}__icon`}>\n {isValidElement(icon) && icon}\n {BuiltInIcon && <BuiltInIcon />}\n </span>\n )}\n </span>\n </Fragment>\n )\n}\n\nexport const Button = forwardRef<HTMLAnchorElement | HTMLButtonElement, Props>((props, ref) => {\n const {\n id,\n type = 'button',\n Link,\n 'aria-label': ariaLabel,\n buttonStyle = 'primary',\n children,\n className,\n disabled,\n el = 'button',\n icon,\n iconPosition = 'right',\n iconStyle = 'without-border',\n newTab,\n onClick,\n round,\n size = 'medium',\n to,\n tooltip,\n url,\n } = props\n\n const [showTooltip, setShowTooltip] = React.useState(false)\n\n const classes = [\n baseClass,\n className && className,\n buttonStyle && `${baseClass}--style-${buttonStyle}`,\n icon && `${baseClass}--icon`,\n iconStyle && `${baseClass}--icon-style-${iconStyle}`,\n icon && !children && `${baseClass}--icon-only`,\n disabled && `${baseClass}--disabled`,\n round && `${baseClass}--round`,\n size && `${baseClass}--size-${size}`,\n icon && iconPosition && `${baseClass}--icon-position-${iconPosition}`,\n tooltip && `${baseClass}--has-tooltip`,\n ]\n .filter(Boolean)\n .join(' ')\n\n function handleClick(event) {\n setShowTooltip(false)\n if (type !== 'submit' && onClick) event.preventDefault()\n if (onClick) onClick(event)\n }\n\n const buttonProps = {\n id,\n type,\n 'aria-disabled': disabled,\n 'aria-label': ariaLabel,\n className: classes,\n disabled,\n onClick: !disabled ? handleClick : undefined,\n onMouseEnter: tooltip ? () => setShowTooltip(true) : undefined,\n onMouseLeave: tooltip ? () => setShowTooltip(false) : undefined,\n rel: newTab ? 'noopener noreferrer' : undefined,\n target: newTab ? '_blank' : undefined,\n }\n\n switch (el) {\n case 'link':\n if (!Link) {\n console.error('Link is required when using el=\"link\"', children)\n return null\n }\n\n return (\n <Link {...buttonProps} href={to || url} to={to || url}>\n <ButtonContents icon={icon} showTooltip={showTooltip} tooltip={tooltip}>\n {children}\n </ButtonContents>\n </Link>\n )\n\n case 'anchor':\n return (\n <a {...buttonProps} href={url} ref={ref as React.Ref<HTMLAnchorElement>}>\n <ButtonContents icon={icon} showTooltip={showTooltip} tooltip={tooltip}>\n {children}\n </ButtonContents>\n </a>\n )\n\n default:\n const Tag = el // eslint-disable-line no-case-declarations\n\n return (\n <Tag ref={ref} type=\"submit\" {...buttonProps}>\n <ButtonContents icon={icon} showTooltip={showTooltip} tooltip={tooltip}>\n {children}\n </ButtonContents>\n </Tag>\n )\n }\n})\n"],"names":["React","Fragment","forwardRef","isValidElement","ChevronIcon","EditIcon","LinkIcon","PlusIcon","SwapIcon","XIcon","Tooltip","icons","chevron","edit","link","plus","swap","x","baseClass","ButtonContents","children","icon","showTooltip","tooltip","BuiltInIcon","className","show","span","Button","props","ref","id","type","Link","ariaLabel","buttonStyle","disabled","el","iconPosition","iconStyle","newTab","onClick","round","size","to","url","setShowTooltip","useState","classes","filter","Boolean","join","handleClick","event","preventDefault","buttonProps","undefined","onMouseEnter","onMouseLeave","rel","target","console","error","href","a","Tag"],"mappings":"AAAA;;AACA,OAAOA,SAASC,QAAQ,EAAEC,UAAU,EAAEC,cAAc,QAAQ,QAAO;AAInE,SAASC,WAAW,QAAQ,+BAA8B;AAC1D,SAASC,QAAQ,QAAQ,4BAA2B;AACpD,SAASC,QAAQ,QAAQ,4BAA2B;AACpD,SAASC,QAAQ,QAAQ,4BAA2B;AACpD,SAASC,QAAQ,QAAQ,4BAA2B;AACpD,SAASC,KAAK,QAAQ,yBAAwB;AAC9C,SAASC,OAAO,QAAQ,sBAAqB;AAC7C,OAAO,eAAc;AAErB,MAAMC,QAAQ;IACZC,SAASR;IACTS,MAAMR;IACNS,MAAMR;IACNS,MAAMR;IACNS,MAAMR;IACNS,GAAGR;AACL;AAEA,MAAMS,YAAY;AAElB,OAAO,MAAMC,iBAAiB,CAAC,EAAEC,QAAQ,EAAEC,IAAI,EAAEC,WAAW,EAAEC,OAAO,EAAE;IACrE,MAAMC,cAAcb,KAAK,CAACU,KAAK;IAE/B,qBACE,MAACpB;;YACEsB,yBACC,KAACb;gBAAQe,WAAW,CAAC,EAAEP,UAAU,SAAS,CAAC;gBAAEQ,MAAMJ;0BAChDC;;0BAGL,MAACI;gBAAKF,WAAW,CAAC,EAAEP,UAAU,SAAS,CAAC;;oBACrCE,0BAAY,KAACO;wBAAKF,WAAW,CAAC,EAAEP,UAAU,OAAO,CAAC;kCAAGE;;oBACrDC,sBACC,MAACM;wBAAKF,WAAW,CAAC,EAAEP,UAAU,MAAM,CAAC;;0CAClCf,eAAekB,SAASA;4BACxBG,6BAAe,KAACA;;;;;;;AAM7B,EAAC;AAED,OAAO,MAAMI,uBAAS1B,WAAyD,CAAC2B,OAAOC;IACrF,MAAM,EACJC,EAAE,EACFC,OAAO,QAAQ,EACfC,IAAI,EACJ,cAAcC,SAAS,EACvBC,cAAc,SAAS,EACvBf,QAAQ,EACRK,SAAS,EACTW,QAAQ,EACRC,KAAK,QAAQ,EACbhB,IAAI,EACJiB,eAAe,OAAO,EACtBC,YAAY,gBAAgB,EAC5BC,MAAM,EACNC,OAAO,EACPC,KAAK,EACLC,OAAO,QAAQ,EACfC,EAAE,EACFrB,OAAO,EACPsB,GAAG,EACJ,GAAGhB;IAEJ,MAAM,CAACP,aAAawB,eAAe,GAAG9C,MAAM+C,QAAQ,CAAC;IAErD,MAAMC,UAAU;QACd9B;QACAO,aAAaA;QACbU,eAAe,CAAC,EAAEjB,UAAU,QAAQ,EAAEiB,YAAY,CAAC;QACnDd,QAAQ,CAAC,EAAEH,UAAU,MAAM,CAAC;QAC5BqB,aAAa,CAAC,EAAErB,UAAU,aAAa,EAAEqB,UAAU,CAAC;QACpDlB,QAAQ,CAACD,YAAY,CAAC,EAAEF,UAAU,WAAW,CAAC;QAC9CkB,YAAY,CAAC,EAAElB,UAAU,UAAU,CAAC;QACpCwB,SAAS,CAAC,EAAExB,UAAU,OAAO,CAAC;QAC9ByB,QAAQ,CAAC,EAAEzB,UAAU,OAAO,EAAEyB,KAAK,CAAC;QACpCtB,QAAQiB,gBAAgB,CAAC,EAAEpB,UAAU,gBAAgB,EAAEoB,aAAa,CAAC;QACrEf,WAAW,CAAC,EAAEL,UAAU,aAAa,CAAC;KACvC,CACE+B,MAAM,CAACC,SACPC,IAAI,CAAC;IAER,SAASC,YAAYC,KAAK;QACxBP,eAAe;QACf,IAAId,SAAS,YAAYS,SAASY,MAAMC,cAAc;QACtD,IAAIb,SAASA,QAAQY;IACvB;IAEA,MAAME,cAAc;QAClBxB;QACAC;QACA,iBAAiBI;QACjB,cAAcF;QACdT,WAAWuB;QACXZ;QACAK,SAAS,CAACL,WAAWgB,cAAcI;QACnCC,cAAclC,UAAU,IAAMuB,eAAe,QAAQU;QACrDE,cAAcnC,UAAU,IAAMuB,eAAe,SAASU;QACtDG,KAAKnB,SAAS,wBAAwBgB;QACtCI,QAAQpB,SAAS,WAAWgB;IAC9B;IAEA,OAAQnB;QACN,KAAK;YACH,IAAI,CAACJ,MAAM;gBACT4B,QAAQC,KAAK,CAAC,yCAAyC1C;gBACvD,OAAO;YACT;YAEA,qBACE,KAACa;gBAAM,GAAGsB,WAAW;gBAAEQ,MAAMnB,MAAMC;gBAAKD,IAAIA,MAAMC;0BAChD,cAAA,KAAC1B;oBAAeE,MAAMA;oBAAMC,aAAaA;oBAAaC,SAASA;8BAC5DH;;;QAKT,KAAK;YACH,qBACE,KAAC4C;gBAAG,GAAGT,WAAW;gBAAEQ,MAAMlB;gBAAKf,KAAKA;0BAClC,cAAA,KAACX;oBAAeE,MAAMA;oBAAMC,aAAaA;oBAAaC,SAASA;8BAC5DH;;;QAKT;YACE,MAAM6C,MAAM5B,GAAG,2CAA2C;;YAE1D,qBACE,KAAC4B;gBAAInC,KAAKA;gBAAKE,MAAK;gBAAU,GAAGuB,WAAW;0BAC1C,cAAA,KAACpC;oBAAeE,MAAMA;oBAAMC,aAAaA;oBAAaC,SAASA;8BAC5DH;;;IAIX;AACF,GAAE"}