payload 0.20.1 → 0.20.4-beta.0

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 (363) hide show
  1. package/.eslintrc.js +21 -0
  2. package/CHANGELOG.md +33 -1
  3. package/components/elements.ts +1 -0
  4. package/components/index.js +2 -2
  5. package/components/styles.css +1 -1
  6. package/dist/admin/assets/fonts/SuisseIntl-Medium.woff +0 -0
  7. package/dist/admin/assets/fonts/SuisseIntl-Medium.woff2 +0 -0
  8. package/dist/admin/assets/fonts/merriweather-v30-latin-700.woff +0 -0
  9. package/dist/admin/assets/fonts/merriweather-v30-latin-700.woff2 +0 -0
  10. package/dist/admin/assets/fonts/merriweather-v30-latin-700italic.woff +0 -0
  11. package/dist/admin/assets/fonts/merriweather-v30-latin-700italic.woff2 +0 -0
  12. package/dist/admin/assets/fonts/merriweather-v30-latin-italic.woff +0 -0
  13. package/dist/admin/assets/fonts/merriweather-v30-latin-italic.woff2 +0 -0
  14. package/dist/admin/assets/fonts/merriweather-v30-latin-regular.woff +0 -0
  15. package/dist/admin/assets/fonts/merriweather-v30-latin-regular.woff2 +0 -0
  16. package/dist/admin/components/{forms/DraggableSection/ActionPanel → elements/ArrayAction}/index.d.ts +1 -2
  17. package/dist/admin/components/elements/ArrayAction/index.js +44 -0
  18. package/dist/admin/components/elements/ArrayAction/index.scss +54 -0
  19. package/dist/admin/components/elements/ArrayAction/types.d.ts +8 -0
  20. package/dist/admin/components/{forms/DraggableSection/ActionPanel → elements/ArrayAction}/types.js +0 -0
  21. package/dist/admin/components/elements/Banner/index.scss +13 -12
  22. package/dist/admin/components/elements/Button/index.js +2 -1
  23. package/dist/admin/components/elements/Button/index.scss +22 -21
  24. package/dist/admin/components/elements/Button/types.d.ts +2 -0
  25. package/dist/admin/components/elements/Card/index.js +3 -2
  26. package/dist/admin/components/elements/Card/index.scss +2 -2
  27. package/dist/admin/components/elements/Card/types.d.ts +1 -0
  28. package/dist/admin/components/{forms/DraggableSection/PositionPanel → elements/Collapsible}/index.d.ts +1 -2
  29. package/dist/admin/components/elements/Collapsible/index.js +43 -0
  30. package/dist/admin/components/elements/Collapsible/index.scss +113 -0
  31. package/dist/admin/components/elements/Collapsible/provider.d.ts +8 -0
  32. package/dist/admin/components/elements/Collapsible/provider.js +7 -0
  33. package/dist/admin/components/{forms/FieldTypeGutter → elements/Collapsible}/types.d.ts +7 -4
  34. package/dist/admin/components/{forms/DraggableSection/PositionPanel → elements/Collapsible}/types.js +0 -0
  35. package/dist/admin/components/elements/ColumnSelector/index.js +6 -3
  36. package/dist/admin/components/elements/ColumnSelector/index.scss +10 -1
  37. package/dist/admin/components/elements/DatePicker/index.scss +92 -47
  38. package/dist/admin/components/elements/DeleteDocument/index.js +5 -5
  39. package/dist/admin/components/elements/DeleteDocument/index.scss +5 -0
  40. package/dist/admin/components/elements/DeleteDocument/types.d.ts +1 -0
  41. package/dist/admin/components/elements/DuplicateDocument/index.js +1 -1
  42. package/dist/admin/components/elements/Eyebrow/index.js +4 -2
  43. package/dist/admin/components/elements/Eyebrow/index.scss +10 -6
  44. package/dist/admin/components/elements/FileDetails/index.scss +4 -4
  45. package/dist/admin/components/elements/GenerateConfirmation/index.js +1 -1
  46. package/dist/admin/components/elements/GenerateConfirmation/index.scss +5 -0
  47. package/dist/admin/components/elements/Gutter/index.d.ts +13 -0
  48. package/dist/admin/components/elements/Gutter/index.js +16 -0
  49. package/dist/admin/components/elements/Gutter/index.scss +19 -0
  50. package/dist/admin/components/elements/IDLabel/index.scss +2 -2
  51. package/dist/admin/components/elements/Loading/index.js +1 -1
  52. package/dist/admin/components/elements/Localizer/index.scss +2 -1
  53. package/dist/admin/components/elements/Nav/index.scss +12 -7
  54. package/dist/admin/components/elements/Paginator/ClickableArrow/index.scss +2 -2
  55. package/dist/admin/components/elements/Paginator/index.scss +5 -5
  56. package/dist/admin/components/elements/PerPage/index.js +1 -1
  57. package/dist/admin/components/elements/PerPage/index.scss +1 -2
  58. package/dist/admin/components/elements/Pill/index.scss +20 -16
  59. package/dist/admin/components/elements/Popup/PopupButton/index.js +2 -1
  60. package/dist/admin/components/elements/Popup/PopupButton/types.d.ts +1 -0
  61. package/dist/admin/components/elements/Popup/index.js +7 -7
  62. package/dist/admin/components/elements/Popup/index.scss +20 -17
  63. package/dist/admin/components/elements/Popup/types.d.ts +1 -0
  64. package/dist/admin/components/elements/ReactSelect/index.scss +20 -12
  65. package/dist/admin/components/elements/SortComplex/index.scss +3 -2
  66. package/dist/admin/components/elements/Status/index.js +2 -2
  67. package/dist/admin/components/elements/Status/index.scss +5 -0
  68. package/dist/admin/components/elements/StepNav/index.scss +0 -6
  69. package/dist/admin/components/elements/Table/index.js +2 -2
  70. package/dist/admin/components/elements/Table/index.scss +7 -4
  71. package/dist/admin/components/elements/Tooltip/index.scss +9 -9
  72. package/dist/admin/components/elements/UploadCard/index.scss +1 -1
  73. package/dist/admin/components/elements/WhereBuilder/Condition/Relationship/index.scss +3 -3
  74. package/dist/admin/components/elements/WhereBuilder/Condition/index.js +2 -2
  75. package/dist/admin/components/elements/WhereBuilder/index.js +1 -1
  76. package/dist/admin/components/elements/WhereBuilder/index.scss +1 -1
  77. package/dist/admin/components/forms/Error/index.scss +2 -3
  78. package/dist/admin/components/forms/FieldDescription/index.js +6 -2
  79. package/dist/admin/components/forms/FieldDescription/index.scss +1 -1
  80. package/dist/admin/components/forms/FieldDescription/types.d.ts +3 -2
  81. package/dist/admin/components/forms/FieldDescription/types.js +1 -1
  82. package/dist/admin/components/forms/Form/buildStateFromSchema/addFieldStatePromise.js +17 -0
  83. package/dist/admin/components/forms/Form/fieldReducer.js +18 -0
  84. package/dist/admin/components/forms/Label/index.scss +2 -2
  85. package/dist/admin/components/forms/RenderFields/index.js +2 -2
  86. package/dist/admin/components/forms/RenderFields/types.d.ts +1 -0
  87. package/dist/admin/components/forms/Submit/index.js +2 -2
  88. package/dist/admin/components/forms/field-types/Array/Array.js +93 -12
  89. package/dist/admin/components/forms/field-types/Array/index.scss +33 -35
  90. package/dist/admin/components/forms/field-types/Blocks/BlockSelector/BlockSelection/index.scss +3 -1
  91. package/dist/admin/components/forms/field-types/Blocks/Blocks.js +83 -37
  92. package/dist/admin/components/forms/{DraggableSection → field-types/Blocks}/SectionTitle/index.d.ts +0 -0
  93. package/dist/admin/components/forms/{DraggableSection → field-types/Blocks}/SectionTitle/index.js +8 -6
  94. package/dist/admin/components/forms/field-types/Blocks/SectionTitle/index.scss +49 -0
  95. package/dist/admin/components/forms/{DraggableSection → field-types/Blocks}/SectionTitle/types.d.ts +0 -1
  96. package/dist/admin/components/forms/{DraggableSection → field-types/Blocks}/SectionTitle/types.js +0 -0
  97. package/dist/admin/components/forms/field-types/Blocks/index.scss +53 -27
  98. package/dist/admin/components/forms/field-types/Checkbox/index.js +1 -1
  99. package/dist/admin/components/forms/field-types/Checkbox/index.scss +2 -2
  100. package/dist/admin/components/forms/field-types/Code/Code.js +4 -4
  101. package/dist/admin/components/forms/field-types/Code/index.scss +4 -4
  102. package/dist/admin/components/forms/{FieldTypeGutter → field-types/Collapsible}/index.d.ts +2 -2
  103. package/dist/admin/components/forms/field-types/Collapsible/index.js +44 -0
  104. package/dist/admin/components/forms/field-types/Collapsible/index.scss +11 -0
  105. package/dist/admin/components/forms/field-types/Collapsible/types.d.ts +8 -0
  106. package/dist/admin/components/forms/{DraggableSection → field-types/Collapsible}/types.js +0 -0
  107. package/dist/admin/components/forms/field-types/ConfirmPassword/index.js +2 -2
  108. package/dist/admin/components/forms/field-types/ConfirmPassword/index.scss +9 -9
  109. package/dist/admin/components/forms/field-types/DateTime/index.js +1 -1
  110. package/dist/admin/components/forms/field-types/DateTime/index.scss +1 -1
  111. package/dist/admin/components/forms/field-types/Email/index.js +1 -1
  112. package/dist/admin/components/forms/field-types/Email/index.scss +8 -8
  113. package/dist/admin/components/forms/field-types/Group/index.js +11 -14
  114. package/dist/admin/components/forms/field-types/Group/index.scss +25 -37
  115. package/dist/admin/components/forms/field-types/HiddenInput/index.js +1 -1
  116. package/dist/admin/components/forms/field-types/Number/index.js +2 -2
  117. package/dist/admin/components/forms/field-types/Number/index.scss +9 -9
  118. package/dist/admin/components/forms/field-types/Password/index.js +2 -2
  119. package/dist/admin/components/forms/field-types/Password/index.scss +9 -9
  120. package/dist/admin/components/forms/field-types/Point/index.js +4 -4
  121. package/dist/admin/components/forms/field-types/Point/index.scss +9 -9
  122. package/dist/admin/components/forms/field-types/RadioGroup/Input.d.ts +22 -0
  123. package/dist/admin/components/forms/field-types/RadioGroup/Input.js +41 -0
  124. package/dist/admin/components/forms/field-types/RadioGroup/RadioInput/index.js +1 -1
  125. package/dist/admin/components/forms/field-types/RadioGroup/RadioInput/index.scss +4 -4
  126. package/dist/admin/components/forms/field-types/RadioGroup/RadioInput/types.d.ts +2 -1
  127. package/dist/admin/components/forms/field-types/RadioGroup/index.d.ts +0 -1
  128. package/dist/admin/components/forms/field-types/RadioGroup/index.js +2 -35
  129. package/dist/admin/components/forms/field-types/RadioGroup/types.d.ts +1 -0
  130. package/dist/admin/components/forms/field-types/Relationship/index.js +1 -1
  131. package/dist/admin/components/forms/field-types/Relationship/index.scss +4 -4
  132. package/dist/admin/components/forms/field-types/RichText/RichText.js +30 -31
  133. package/dist/admin/components/forms/field-types/RichText/elements/link/index.js +1 -1
  134. package/dist/admin/components/forms/field-types/RichText/elements/link/index.scss +6 -6
  135. package/dist/admin/components/forms/field-types/RichText/elements/ol/index.d.ts +1 -0
  136. package/dist/admin/components/forms/field-types/RichText/elements/ol/index.js +2 -1
  137. package/dist/admin/components/forms/field-types/RichText/elements/ol/index.scss +7 -0
  138. package/dist/admin/components/forms/field-types/RichText/elements/relationship/Button/index.js +1 -1
  139. package/dist/admin/components/forms/field-types/RichText/elements/relationship/Button/index.scss +5 -3
  140. package/dist/admin/components/forms/field-types/RichText/elements/relationship/Element/index.scss +13 -2
  141. package/dist/admin/components/forms/field-types/RichText/elements/ul/index.d.ts +1 -0
  142. package/dist/admin/components/forms/field-types/RichText/elements/ul/index.js +2 -1
  143. package/dist/admin/components/forms/field-types/RichText/elements/ul/index.scss +7 -0
  144. package/dist/admin/components/forms/field-types/RichText/elements/upload/Element/EditModal/index.scss +6 -2
  145. package/dist/admin/components/forms/field-types/RichText/elements/upload/Element/index.js +1 -1
  146. package/dist/admin/components/forms/field-types/RichText/elements/upload/Element/index.scss +17 -4
  147. package/dist/admin/components/forms/field-types/RichText/elements/upload/addSwapModals.scss +2 -0
  148. package/dist/admin/components/forms/field-types/RichText/index.scss +66 -20
  149. package/dist/admin/components/forms/field-types/Select/Input.js +1 -1
  150. package/dist/admin/components/forms/field-types/Select/index.scss +1 -1
  151. package/dist/admin/components/forms/field-types/Tabs/index.d.ts +5 -0
  152. package/dist/admin/components/forms/field-types/Tabs/index.js +36 -0
  153. package/dist/admin/components/forms/field-types/Tabs/index.scss +91 -0
  154. package/dist/admin/components/forms/field-types/Tabs/types.d.ts +8 -0
  155. package/dist/admin/components/forms/{FieldTypeGutter → field-types/Tabs}/types.js +0 -0
  156. package/dist/admin/components/forms/field-types/Text/Input.js +2 -2
  157. package/dist/admin/components/forms/field-types/Text/index.scss +9 -9
  158. package/dist/admin/components/forms/field-types/Textarea/Input.js +2 -2
  159. package/dist/admin/components/forms/field-types/Textarea/index.scss +1 -1
  160. package/dist/admin/components/forms/field-types/Upload/Add/index.js +1 -3
  161. package/dist/admin/components/forms/field-types/Upload/Add/index.scss +2 -0
  162. package/dist/admin/components/forms/field-types/Upload/SelectExisting/index.scss +2 -0
  163. package/dist/admin/components/forms/field-types/Upload/index.scss +2 -2
  164. package/dist/admin/components/forms/field-types/index.d.ts +2 -0
  165. package/dist/admin/components/forms/field-types/index.js +4 -0
  166. package/dist/admin/components/forms/field-types/rowReducer.d.ts +39 -1
  167. package/dist/admin/components/forms/field-types/rowReducer.js +18 -5
  168. package/dist/admin/components/forms/useField/index.js +4 -5
  169. package/dist/admin/components/graphics/Account/index.js +14 -4
  170. package/dist/admin/components/graphics/Icon/index.js +9 -3
  171. package/dist/admin/components/graphics/Logo/index.js +16 -10
  172. package/dist/admin/components/icons/Calendar/index.scss +1 -1
  173. package/dist/admin/components/icons/Check/index.scss +1 -1
  174. package/dist/admin/components/icons/Chevron/index.scss +1 -1
  175. package/dist/admin/components/icons/CloseMenu/index.scss +1 -1
  176. package/dist/admin/components/icons/Copy/index.scss +1 -1
  177. package/dist/admin/components/icons/Drag/index.d.ts +6 -0
  178. package/dist/admin/components/icons/Drag/index.js +13 -0
  179. package/dist/admin/components/icons/Drag/index.scss +10 -0
  180. package/dist/admin/components/icons/Edit/index.scss +1 -1
  181. package/dist/admin/components/icons/IndentLeft/index.scss +2 -2
  182. package/dist/admin/components/icons/IndentRight/index.js +1 -1
  183. package/dist/admin/components/icons/IndentRight/index.scss +2 -2
  184. package/dist/admin/components/icons/LogOut/index.scss +1 -1
  185. package/dist/admin/components/icons/Menu/index.d.ts +1 -0
  186. package/dist/admin/components/icons/Menu/index.js +5 -4
  187. package/dist/admin/components/icons/Menu/index.scss +7 -0
  188. package/dist/admin/components/icons/More/index.d.ts +6 -0
  189. package/dist/admin/components/icons/More/index.js +10 -0
  190. package/dist/admin/components/icons/More/index.scss +10 -0
  191. package/dist/admin/components/icons/Plus/index.scss +1 -1
  192. package/dist/admin/components/icons/Relationship/index.scss +1 -1
  193. package/dist/admin/components/icons/Search/index.d.ts +1 -0
  194. package/dist/admin/components/icons/Search/index.js +4 -3
  195. package/dist/admin/components/icons/Search/index.scss +11 -0
  196. package/dist/admin/components/icons/Swap/index.scss +1 -1
  197. package/dist/admin/components/icons/Upload/index.scss +1 -1
  198. package/dist/admin/components/icons/X/index.d.ts +3 -1
  199. package/dist/admin/components/icons/X/index.js +4 -1
  200. package/dist/admin/components/icons/X/index.scss +1 -1
  201. package/dist/admin/components/modals/LeaveWithoutSaving/index.js +1 -1
  202. package/dist/admin/components/modals/LeaveWithoutSaving/index.scss +5 -0
  203. package/dist/admin/components/modals/StayLoggedIn/index.js +1 -1
  204. package/dist/admin/components/modals/StayLoggedIn/index.scss +5 -0
  205. package/dist/admin/components/templates/Default/index.scss +1 -7
  206. package/dist/admin/components/utilities/DocumentInfo/index.js +11 -0
  207. package/dist/admin/components/utilities/DocumentInfo/types.d.ts +2 -0
  208. package/dist/admin/components/utilities/Theme/index.d.ts +13 -0
  209. package/dist/admin/components/utilities/Theme/index.js +47 -0
  210. package/dist/admin/components/views/Account/Default.js +9 -4
  211. package/dist/admin/components/views/Account/ToggleTheme/index.d.ts +2 -0
  212. package/dist/admin/components/views/Account/ToggleTheme/index.js +23 -0
  213. package/dist/admin/components/views/Account/index.js +12 -14
  214. package/dist/admin/components/views/Account/index.scss +37 -21
  215. package/dist/admin/components/views/CreateFirstUser/index.js +4 -6
  216. package/dist/admin/components/views/Dashboard/Default.js +5 -4
  217. package/dist/admin/components/views/Dashboard/index.scss +3 -11
  218. package/dist/admin/components/views/Global/Default.js +3 -2
  219. package/dist/admin/components/views/Global/index.js +12 -14
  220. package/dist/admin/components/views/Global/index.scss +22 -22
  221. package/dist/admin/components/views/NotFound/index.d.ts +0 -1
  222. package/dist/admin/components/views/NotFound/index.js +2 -2
  223. package/dist/admin/components/views/Version/Compare/index.scss +3 -3
  224. package/dist/admin/components/views/Version/RenderFieldsToDiff/fields/Iterable/index.scss +4 -4
  225. package/dist/admin/components/views/Version/RenderFieldsToDiff/fields/Nested/index.scss +1 -1
  226. package/dist/admin/components/views/Version/RenderFieldsToDiff/fields/Relationship/index.js +2 -1
  227. package/dist/admin/components/views/Version/RenderFieldsToDiff/fields/Relationship/index.scss +1 -1
  228. package/dist/admin/components/views/Version/RenderFieldsToDiff/fields/Tabs/index.d.ts +7 -0
  229. package/dist/admin/components/views/Version/RenderFieldsToDiff/fields/Tabs/index.js +8 -0
  230. package/dist/admin/components/views/Version/RenderFieldsToDiff/fields/Text/index.js +2 -1
  231. package/dist/admin/components/views/Version/RenderFieldsToDiff/fields/Text/index.scss +1 -1
  232. package/dist/admin/components/views/Version/RenderFieldsToDiff/fields/index.d.ts +6 -0
  233. package/dist/admin/components/views/Version/RenderFieldsToDiff/fields/index.js +3 -0
  234. package/dist/admin/components/views/Version/RenderFieldsToDiff/fields/styles.d.ts +13 -0
  235. package/dist/admin/components/views/Version/RenderFieldsToDiff/fields/styles.js +13 -0
  236. package/dist/admin/components/views/Version/RenderFieldsToDiff/index.js +5 -1
  237. package/dist/admin/components/views/Version/Restore/index.js +1 -1
  238. package/dist/admin/components/views/Version/Restore/index.scss +5 -0
  239. package/dist/admin/components/views/Version/Version.js +2 -1
  240. package/dist/admin/components/views/Version/index.scss +4 -7
  241. package/dist/admin/components/views/Versions/index.js +3 -2
  242. package/dist/admin/components/views/Versions/index.scss +2 -12
  243. package/dist/admin/components/views/collections/Edit/Auth/index.scss +3 -2
  244. package/dist/admin/components/views/collections/Edit/Default.js +5 -4
  245. package/dist/admin/components/views/collections/Edit/Upload/index.scss +5 -5
  246. package/dist/admin/components/views/collections/Edit/index.js +16 -18
  247. package/dist/admin/components/views/collections/Edit/index.scss +20 -21
  248. package/dist/admin/components/views/collections/List/Cell/field-types/Checkbox/index.scss +4 -4
  249. package/dist/admin/components/views/collections/List/Cell/field-types/Code/index.scss +4 -4
  250. package/dist/admin/components/views/collections/List/Cell/field-types/Relationship/index.d.ts +1 -0
  251. package/dist/admin/components/views/collections/List/Cell/field-types/Relationship/index.js +41 -34
  252. package/dist/admin/components/views/collections/List/Cell/field-types/Relationship/index.scss +3 -0
  253. package/dist/admin/components/views/collections/List/Cell/field-types/Upload/index.d.ts +0 -5
  254. package/dist/admin/components/views/collections/List/Cell/field-types/Upload/index.js +0 -4
  255. package/dist/admin/components/views/collections/List/Cell/field-types/index.d.ts +1 -3
  256. package/dist/admin/components/views/collections/List/Cell/field-types/index.js +1 -2
  257. package/dist/admin/components/views/collections/List/Default.js +8 -6
  258. package/dist/admin/components/views/collections/List/RelationshipProvider/index.d.ts +19 -0
  259. package/dist/admin/components/views/collections/List/RelationshipProvider/index.js +46 -0
  260. package/dist/admin/components/views/collections/List/RelationshipProvider/reducer.d.ts +18 -0
  261. package/dist/admin/components/views/collections/List/RelationshipProvider/reducer.js +34 -0
  262. package/dist/admin/components/views/collections/List/buildColumns.js +26 -31
  263. package/dist/admin/components/views/collections/List/getInitialColumns.js +25 -23
  264. package/dist/admin/components/views/collections/List/index.js +2 -2
  265. package/dist/admin/components/views/collections/List/index.scss +4 -15
  266. package/dist/admin/index.js +7 -5
  267. package/dist/admin/scss/app.scss +52 -14
  268. package/dist/admin/scss/colors.scss +245 -0
  269. package/dist/admin/scss/fonts.scss +41 -14
  270. package/dist/admin/scss/resets.scss +1 -0
  271. package/dist/admin/scss/styles.scss +0 -2
  272. package/dist/admin/scss/toastify.scss +12 -8
  273. package/dist/admin/scss/type.scss +11 -9
  274. package/dist/admin/scss/vars.scss +50 -53
  275. package/dist/admin/utilities/flattenTopLevelFields.d.ts +3 -0
  276. package/dist/admin/utilities/flattenTopLevelFields.js +30 -0
  277. package/dist/admin/utilities/getOffsetTop.d.ts +1 -2
  278. package/dist/admin/utilities/getOffsetTop.js +1 -1
  279. package/dist/admin/utilities/scrollToID.d.ts +1 -0
  280. package/dist/admin/utilities/scrollToID.js +10 -0
  281. package/dist/auth/operations/access.js +6 -1
  282. package/dist/bin/generateTypes.js +11 -2
  283. package/dist/collections/graphql/init.js +2 -2
  284. package/dist/collections/operations/local/create.js +1 -1
  285. package/dist/collections/tests/collections.spec.js +1 -78
  286. package/dist/config/defaults.js +1 -2
  287. package/dist/config/schema.js +2 -2
  288. package/dist/config/types.d.ts +2 -2
  289. package/dist/express/admin.js +2 -2
  290. package/dist/fields/config/sanitize.js +8 -1
  291. package/dist/fields/config/schema.d.ts +2 -0
  292. package/dist/fields/config/schema.js +19 -7
  293. package/dist/fields/config/types.d.ts +19 -11
  294. package/dist/fields/config/types.js +2 -2
  295. package/dist/fields/hooks/afterChange/promise.js +18 -2
  296. package/dist/fields/hooks/afterRead/promise.js +22 -2
  297. package/dist/fields/hooks/beforeChange/promise.js +25 -2
  298. package/dist/fields/hooks/beforeValidate/promise.js +20 -2
  299. package/dist/fields/richText/recurseNestedFields.js +15 -1
  300. package/dist/graphql/schema/buildMutationInputType.d.ts +4 -1
  301. package/dist/graphql/schema/buildMutationInputType.js +94 -70
  302. package/dist/graphql/schema/buildObjectType.d.ts +5 -3
  303. package/dist/graphql/schema/buildObjectType.js +114 -71
  304. package/dist/graphql/schema/buildPoliciesType.js +9 -1
  305. package/dist/graphql/schema/buildWhereInputType.js +2 -2
  306. package/dist/graphql/schema/fieldToWhereInputSchemaMap.js +56 -7
  307. package/dist/graphql/schema/withNullableType.js +1 -1
  308. package/dist/index.d.ts +2 -1
  309. package/dist/index.js +9 -7
  310. package/dist/mongoose/buildSchema.js +28 -7
  311. package/dist/mongoose/connect.d.ts +1 -1
  312. package/dist/mongoose/connect.js +24 -19
  313. package/dist/mongoose/testCredentials.d.ts +7 -7
  314. package/dist/mongoose/testCredentials.js +1 -1
  315. package/dist/utilities/mapAsync.d.ts +1 -0
  316. package/dist/utilities/mapAsync.js +8 -0
  317. package/dist/webpack/getBaseConfig.js +1 -2
  318. package/docs/admin/customizing-css.mdx +16 -28
  319. package/docs/fields/collapsible.mdx +44 -0
  320. package/docs/fields/date.mdx +1 -1
  321. package/docs/fields/email.mdx +1 -1
  322. package/docs/fields/group.mdx +1 -1
  323. package/docs/fields/number.mdx +1 -1
  324. package/docs/fields/overview.mdx +1 -0
  325. package/docs/fields/point.mdx +1 -1
  326. package/docs/fields/radio.mdx +1 -1
  327. package/docs/fields/relationship.mdx +1 -1
  328. package/docs/fields/rich-text.mdx +1 -1
  329. package/docs/fields/row.mdx +1 -1
  330. package/docs/fields/select.mdx +1 -1
  331. package/docs/fields/tabs.mdx +9 -0
  332. package/docs/fields/text.mdx +1 -1
  333. package/docs/fields/textarea.mdx +1 -1
  334. package/docs/fields/ui.mdx +1 -1
  335. package/docs/fields/upload.mdx +1 -1
  336. package/package.json +13 -11
  337. package/scss/index.scss +0 -7
  338. package/dist/admin/assets/fonts/SuisseIntl-Light.woff +0 -0
  339. package/dist/admin/assets/fonts/SuisseIntl-Light.woff2 +0 -0
  340. package/dist/admin/assets/fonts/SuisseIntl-Thin.woff +0 -0
  341. package/dist/admin/assets/fonts/SuisseIntl-Thin.woff2 +0 -0
  342. package/dist/admin/components/forms/DraggableSection/ActionPanel/index.js +0 -22
  343. package/dist/admin/components/forms/DraggableSection/ActionPanel/index.scss +0 -12
  344. package/dist/admin/components/forms/DraggableSection/ActionPanel/types.d.ts +0 -11
  345. package/dist/admin/components/forms/DraggableSection/PositionPanel/index.js +0 -18
  346. package/dist/admin/components/forms/DraggableSection/PositionPanel/index.scss +0 -21
  347. package/dist/admin/components/forms/DraggableSection/PositionPanel/types.d.ts +0 -6
  348. package/dist/admin/components/forms/DraggableSection/SectionTitle/index.scss +0 -37
  349. package/dist/admin/components/forms/DraggableSection/index.d.ts +0 -5
  350. package/dist/admin/components/forms/DraggableSection/index.js +0 -40
  351. package/dist/admin/components/forms/DraggableSection/index.scss +0 -113
  352. package/dist/admin/components/forms/DraggableSection/types.d.ts +0 -24
  353. package/dist/admin/components/forms/FieldTypeGutter/context.d.ts +0 -6
  354. package/dist/admin/components/forms/FieldTypeGutter/context.js +0 -9
  355. package/dist/admin/components/forms/FieldTypeGutter/index.js +0 -18
  356. package/dist/admin/components/forms/FieldTypeGutter/index.scss +0 -87
  357. package/dist/admin/components/views/NotFound/index.scss +0 -10
  358. package/dist/collections/tests/uploads.spec.d.ts +0 -1
  359. package/dist/collections/tests/uploads.spec.js +0 -365
  360. package/dist/errors/errors.spec.d.ts +0 -1
  361. package/dist/errors/errors.spec.js +0 -29
  362. package/dist/utilities/flattenTopLevelFields.d.ts +0 -2
  363. package/dist/utilities/flattenTopLevelFields.js +0 -16
@@ -5,7 +5,7 @@
5
5
  width: $baseline;
6
6
 
7
7
  .stroke {
8
- stroke: $color-dark-gray;
8
+ stroke: var(--theme-elevation-800);
9
9
  stroke-width: $style-stroke-width-s;
10
10
  }
11
11
  }
@@ -6,7 +6,7 @@
6
6
 
7
7
  .stroke {
8
8
  fill: none;
9
- stroke: $color-dark-gray;
9
+ stroke: var(--theme-elevation-800);
10
10
  stroke-width: $style-stroke-width-m;
11
11
  }
12
12
  }
@@ -6,7 +6,7 @@
6
6
 
7
7
  .stroke {
8
8
  fill: none;
9
- stroke: $color-dark-gray;
9
+ stroke: var(--theme-elevation-800);
10
10
  stroke-width: $style-stroke-width-m;
11
11
  }
12
12
  }
@@ -5,6 +5,6 @@
5
5
  width: $baseline;
6
6
 
7
7
  .fill {
8
- fill: $color-dark-gray;
8
+ fill: var(--theme-elevation-800);
9
9
  }
10
10
  }
@@ -6,7 +6,7 @@
6
6
 
7
7
  .stroke {
8
8
  fill: none;
9
- stroke: $color-dark-gray;
9
+ stroke: var(--theme-elevation-800);
10
10
  stroke-width: $style-stroke-width-s;
11
11
  }
12
12
  }
@@ -0,0 +1,6 @@
1
+ import React from 'react';
2
+ import './index.scss';
3
+ declare const DragHandle: React.FC<{
4
+ className?: string;
5
+ }>;
6
+ export default DragHandle;
@@ -0,0 +1,13 @@
1
+ import React from 'react';
2
+ import './index.scss';
3
+ const DragHandle = ({ className }) => (React.createElement("svg", { className: [
4
+ 'icon icon--drag-handle',
5
+ className,
6
+ ].filter(Boolean).join(' '), viewBox: "0 0 25 25", xmlns: "http://www.w3.org/2000/svg" },
7
+ React.createElement("circle", { cx: "10.468", cy: "14.5", r: "1", className: "fill" }),
8
+ React.createElement("circle", { cx: "14.532", cy: "14.5", r: "1", className: "fill" }),
9
+ React.createElement("circle", { cx: "10.468", cy: "11.35", r: "1", className: "fill" }),
10
+ React.createElement("circle", { cx: "14.532", cy: "11.35", r: "1", className: "fill" }),
11
+ React.createElement("circle", { cx: "10.468", cy: "8.3", r: "1", className: "fill" }),
12
+ React.createElement("circle", { cx: "14.532", cy: "8.3", r: "1", className: "fill" })));
13
+ export default DragHandle;
@@ -0,0 +1,10 @@
1
+ @import '../../../scss/styles';
2
+
3
+ .icon--drag-handle {
4
+ height: $baseline;
5
+ width: $baseline;
6
+
7
+ .fill {
8
+ fill: var(--theme-elevation-800);
9
+ }
10
+ }
@@ -6,7 +6,7 @@
6
6
  shape-rendering: auto;
7
7
 
8
8
  .fill {
9
- fill: $color-dark-gray;
9
+ fill: var(--theme-elevation-800);
10
10
  stroke: none;
11
11
  }
12
12
  }
@@ -6,11 +6,11 @@
6
6
 
7
7
  .stroke {
8
8
  fill: none;
9
- stroke: $color-dark-gray;
9
+ stroke: var(--theme-elevation-800);
10
10
  stroke-width: $style-stroke-width-m;
11
11
  }
12
12
 
13
13
  .fill {
14
- fill: $color-dark-gray;
14
+ fill: var(--theme-elevation-800);
15
15
  }
16
16
  }
@@ -1,7 +1,7 @@
1
1
  import React from 'react';
2
2
  import './index.scss';
3
3
  const IndentRight = () => (React.createElement("svg", { className: "icon icon--indent-right", xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 25 25" },
4
- React.createElement("path", { d: "M10 9.61502L5 6.04361L5 13.1864L10 9.61502Z", fill: "#333333" }),
4
+ React.createElement("path", { d: "M10 9.61502L5 6.04361L5 13.1864L10 9.61502Z", className: "fill" }),
5
5
  React.createElement("rect", { x: "11.9375", y: "5.68199", width: "9.0675", height: "2.15625", className: "fill" }),
6
6
  React.createElement("rect", { x: "11.9375", y: "11.4738", width: "9.0675", height: "2.15625", className: "fill" }),
7
7
  React.createElement("rect", { x: "5", y: "17.2656", width: "16.005", height: "2.15625", className: "fill" })));
@@ -6,11 +6,11 @@
6
6
 
7
7
  .stroke {
8
8
  fill: none;
9
- stroke: $color-dark-gray;
9
+ stroke: var(--theme-elevation-800);
10
10
  stroke-width: $style-stroke-width-m;
11
11
  }
12
12
 
13
13
  .fill {
14
- fill: $color-dark-gray;
14
+ fill: var(--theme-elevation-800);
15
15
  }
16
16
  }
@@ -5,7 +5,7 @@
5
5
  width: $baseline;
6
6
 
7
7
  .stroke {
8
- stroke: $color-dark-gray;
8
+ stroke: var(--theme-elevation-800);
9
9
  stroke-width: 2px;
10
10
  }
11
11
  }
@@ -1,3 +1,4 @@
1
1
  import React from 'react';
2
+ import './index.scss';
2
3
  declare const Menu: React.FC;
3
4
  export default Menu;
@@ -1,6 +1,7 @@
1
1
  import React from 'react';
2
- const Menu = () => (React.createElement("svg", { width: "25", height: "25", viewBox: "0 0 25 25", fill: "none", xmlns: "http://www.w3.org/2000/svg" },
3
- React.createElement("rect", { x: "3.5", y: "4.5", width: "18", height: "2", fill: "#333333" }),
4
- React.createElement("rect", { x: "3.5", y: "11.5", width: "18", height: "2", fill: "#333333" }),
5
- React.createElement("rect", { x: "3.5", y: "18.5", width: "18", height: "2", fill: "#333333" })));
2
+ import './index.scss';
3
+ const Menu = () => (React.createElement("svg", { width: "25", height: "25", viewBox: "0 0 25 25", fill: "none", className: "icon icon--menu", xmlns: "http://www.w3.org/2000/svg" },
4
+ React.createElement("rect", { x: "3.5", y: "4.5", width: "18", height: "2", className: "fill" }),
5
+ React.createElement("rect", { x: "3.5", y: "11.5", width: "18", height: "2", className: "fill" }),
6
+ React.createElement("rect", { x: "3.5", y: "18.5", width: "18", height: "2", className: "fill" })));
6
7
  export default Menu;
@@ -0,0 +1,7 @@
1
+ @import '../../../scss/styles';
2
+
3
+ .icon--menu {
4
+ .fill {
5
+ fill: var(--theme-text);
6
+ }
7
+ }
@@ -0,0 +1,6 @@
1
+ import React from 'react';
2
+ import './index.scss';
3
+ declare const DragHandle: React.FC<{
4
+ className?: string;
5
+ }>;
6
+ export default DragHandle;
@@ -0,0 +1,10 @@
1
+ import React from 'react';
2
+ import './index.scss';
3
+ const DragHandle = ({ className }) => (React.createElement("svg", { className: [
4
+ 'icon icon--more',
5
+ className,
6
+ ].filter(Boolean).join(' '), viewBox: "0 0 25 25", xmlns: "http://www.w3.org/2000/svg" },
7
+ React.createElement("circle", { cx: "16.3872", cy: "12.5", r: "1", className: "fill" }),
8
+ React.createElement("circle", { cx: "12.3872", cy: "12.5", r: "1", className: "fill" }),
9
+ React.createElement("circle", { cx: "8.61279", cy: "12.5", r: "1", className: "fill" })));
10
+ export default DragHandle;
@@ -0,0 +1,10 @@
1
+ @import '../../../scss/styles';
2
+
3
+ .icon--more {
4
+ height: $baseline;
5
+ width: $baseline;
6
+
7
+ .fill {
8
+ fill: var(--theme-elevation-800);
9
+ }
10
+ }
@@ -5,7 +5,7 @@
5
5
  height: $baseline;
6
6
 
7
7
  .stroke {
8
- stroke: $color-dark-gray;
8
+ stroke: var(--theme-elevation-800);
9
9
  stroke-width: $style-stroke-width;
10
10
  }
11
11
  }
@@ -6,7 +6,7 @@
6
6
 
7
7
  .stroke {
8
8
  fill: none;
9
- stroke: $color-dark-gray;
9
+ stroke: var(--theme-elevation-800);
10
10
  stroke-width: $style-stroke-width-m;
11
11
  }
12
12
  }
@@ -1,3 +1,4 @@
1
1
  import React from 'react';
2
+ import './index.scss';
2
3
  declare const Search: React.FC;
3
4
  export default Search;
@@ -1,5 +1,6 @@
1
1
  import React from 'react';
2
- const Search = () => (React.createElement("svg", { width: "25", height: "25", viewBox: "0 0 25 25", fill: "none", xmlns: "http://www.w3.org/2000/svg", className: "icon icon--search" },
3
- React.createElement("circle", { cx: "11.2069", cy: "10.7069", r: "5", stroke: "#333333", strokeWidth: "2" }),
4
- React.createElement("line", { x1: "14.914", y1: "13.9998", x2: "20.5002", y2: "19.586", stroke: "#333333", strokeWidth: "2" })));
2
+ import './index.scss';
3
+ const Search = () => (React.createElement("svg", { viewBox: "0 0 25 25", fill: "none", xmlns: "http://www.w3.org/2000/svg", className: "icon icon--search" },
4
+ React.createElement("circle", { cx: "11.2069", cy: "10.7069", r: "5", className: "stroke" }),
5
+ React.createElement("line", { x1: "14.914", y1: "13.9998", x2: "20.5002", y2: "19.586", className: "stroke" })));
5
6
  export default Search;
@@ -0,0 +1,11 @@
1
+ @import '../../../scss/styles';
2
+
3
+ .icon--search {
4
+ height: $baseline;
5
+ width: $baseline;
6
+
7
+ .stroke {
8
+ stroke: var(--theme-elevation-800);
9
+ stroke-width: $style-stroke-width-s;
10
+ }
11
+ }
@@ -6,7 +6,7 @@
6
6
 
7
7
  .stroke {
8
8
  fill: none;
9
- stroke: $color-dark-gray;
9
+ stroke: var(--theme-elevation-800);
10
10
  stroke-width: $style-stroke-width-m;
11
11
  }
12
12
  }
@@ -5,7 +5,7 @@
5
5
  width: $baseline;
6
6
 
7
7
  .fill {
8
- fill: $color-dark-gray;
8
+ fill: var(--theme-elevation-800);
9
9
  stroke: none;
10
10
  }
11
11
  }
@@ -1,4 +1,6 @@
1
1
  import React from 'react';
2
2
  import './index.scss';
3
- declare const X: React.FC;
3
+ declare const X: React.FC<{
4
+ className?: string;
5
+ }>;
4
6
  export default X;
@@ -1,6 +1,9 @@
1
1
  import React from 'react';
2
2
  import './index.scss';
3
- const X = () => (React.createElement("svg", { width: "25", height: "25", className: "icon icon--x", xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 25 25" },
3
+ const X = ({ className }) => (React.createElement("svg", { width: "25", height: "25", className: [
4
+ className,
5
+ 'icon icon--x',
6
+ ].filter(Boolean).join(' '), xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 25 25" },
4
7
  React.createElement("line", { className: "stroke", x1: "8.74612", y1: "16.347", x2: "16.3973", y2: "8.69584" }),
5
8
  React.createElement("line", { className: "stroke", x1: "8.6027", y1: "8.69585", x2: "16.2539", y2: "16.3471" })));
6
9
  export default X;
@@ -2,7 +2,7 @@
2
2
 
3
3
  .icon--x {
4
4
  line {
5
- stroke: $color-dark-gray;
5
+ stroke: var(--theme-elevation-800);
6
6
  stroke-width: $style-stroke-width;
7
7
  }
8
8
  }
@@ -10,7 +10,7 @@ const LeaveWithoutSaving = () => {
10
10
  const modified = useFormModified();
11
11
  const { user } = useAuth();
12
12
  return (React.createElement(NavigationPrompt, { when: Boolean(modified && user) }, ({ onConfirm, onCancel }) => (React.createElement("div", { className: modalSlug },
13
- React.createElement(MinimalTemplate, null,
13
+ React.createElement(MinimalTemplate, { className: `${modalSlug}__template` },
14
14
  React.createElement("h1", null, "Leave without saving"),
15
15
  React.createElement("p", null, "Your changes have not been saved. If you leave now, you will lose your changes."),
16
16
  React.createElement(Button, { onClick: onCancel, buttonStyle: "secondary" }, "Stay on this page"),
@@ -9,6 +9,11 @@
9
9
  bottom: 0;
10
10
  left: 0;
11
11
 
12
+ &__template {
13
+ position: relative;
14
+ z-index: 1;
15
+ }
16
+
12
17
  .btn {
13
18
  margin-right: $baseline;
14
19
  }
@@ -12,7 +12,7 @@ const StayLoggedInModal = (props) => {
12
12
  const { routes: { admin } } = useConfig();
13
13
  const { closeAll: closeAllModals } = useModal();
14
14
  return (React.createElement(Modal, { className: baseClass, slug: "stay-logged-in" },
15
- React.createElement(MinimalTemplate, null,
15
+ React.createElement(MinimalTemplate, { className: `${baseClass}__template` },
16
16
  React.createElement("h1", null, "Stay logged in"),
17
17
  React.createElement("p", null, "You haven't been active in a little while and will shortly be automatically logged out for your own security. Would you like to stay logged in?"),
18
18
  React.createElement("div", { className: `${baseClass}__actions` },
@@ -6,6 +6,11 @@
6
6
  align-items: center;
7
7
  height: 100%;
8
8
 
9
+ &__template {
10
+ position: relative;
11
+ z-index: 1;
12
+ }
13
+
9
14
  .btn {
10
15
  margin-right: base(1);
11
16
  }
@@ -5,22 +5,16 @@
5
5
  display: flex;
6
6
 
7
7
  &__wrap {
8
- padding-left: base(2);
9
8
  min-width: 0;
10
9
  width: 100%;
11
10
  flex-grow: 1;
12
11
  }
13
12
 
14
- @include large-break {
15
- &__wrap {
16
- padding-left: base(1);
17
- }
18
- }
19
-
20
13
  @include mid-break {
21
14
  display: block;
22
15
  width: 100%;
23
16
  margin-left: 0;
17
+ padding-top: base(3);
24
18
 
25
19
  &__wrap {
26
20
  padding: 0 0 $baseline;
@@ -1,9 +1,12 @@
1
1
  import React, { createContext, useCallback, useContext, useEffect, useState, } from 'react';
2
2
  import qs from 'qs';
3
3
  import { useConfig } from '../Config';
4
+ import { usePreferences } from '../Preferences';
4
5
  const Context = createContext({});
5
6
  export const DocumentInfoProvider = ({ children, global, collection, id, }) => {
6
7
  const { serverURL, routes: { api } } = useConfig();
8
+ const { getPreference } = usePreferences();
9
+ const [preferences, setPreferences] = useState();
7
10
  const [publishedDoc, setPublishedDoc] = useState(null);
8
11
  const [versions, setVersions] = useState(null);
9
12
  const [unpublishedVersions, setUnpublishedVersions] = useState(null);
@@ -118,6 +121,13 @@ export const DocumentInfoProvider = ({ children, global, collection, id, }) => {
118
121
  useEffect(() => {
119
122
  getVersions();
120
123
  }, [getVersions]);
124
+ useEffect(() => {
125
+ const getDocPreferences = async () => {
126
+ const existingPreferences = await getPreference(preferencesKey);
127
+ setPreferences(existingPreferences || { fields: {} });
128
+ };
129
+ getDocPreferences();
130
+ }, [getPreference, preferencesKey]);
121
131
  const value = {
122
132
  slug,
123
133
  type,
@@ -129,6 +139,7 @@ export const DocumentInfoProvider = ({ children, global, collection, id, }) => {
129
139
  getVersions,
130
140
  publishedDoc,
131
141
  id,
142
+ preferences,
132
143
  };
133
144
  return (React.createElement(Context.Provider, { value: value }, children));
134
145
  };
@@ -2,6 +2,7 @@ import React from 'react';
2
2
  import { SanitizedCollectionConfig, TypeWithID, TypeWithTimestamps } from '../../../../collections/config/types';
3
3
  import { SanitizedGlobalConfig } from '../../../../globals/config/types';
4
4
  import { PaginatedDocs } from '../../../../mongoose/types';
5
+ import { DocumentPreferences } from '../../../../preferences/types';
5
6
  import { TypeWithVersion } from '../../../../versions/types';
6
7
  export declare type Version = TypeWithVersion<any>;
7
8
  export declare type ContextType = {
@@ -16,6 +17,7 @@ export declare type ContextType = {
16
17
  _status?: string;
17
18
  };
18
19
  getVersions: () => Promise<void>;
20
+ preferences?: DocumentPreferences;
19
21
  };
20
22
  export declare type Props = {
21
23
  collection?: SanitizedCollectionConfig;
@@ -0,0 +1,13 @@
1
+ import React from 'react';
2
+ export declare type Theme = 'light' | 'dark';
3
+ export declare type ThemeContext = {
4
+ theme: Theme;
5
+ setTheme: (theme: Theme) => void;
6
+ autoMode: boolean;
7
+ };
8
+ declare const Context: React.Context<ThemeContext>;
9
+ export declare const ThemeProvider: React.FC<{
10
+ children?: React.ReactNode;
11
+ }>;
12
+ export declare const useTheme: () => ThemeContext;
13
+ export default Context;
@@ -0,0 +1,47 @@
1
+ import React, { createContext, useCallback, useContext, useState, } from 'react';
2
+ const initialContext = {
3
+ theme: 'light',
4
+ setTheme: () => null,
5
+ autoMode: true,
6
+ };
7
+ const Context = createContext(initialContext);
8
+ const localStorageKey = 'payload-theme';
9
+ const getTheme = () => {
10
+ let theme;
11
+ const themeFromStorage = window.localStorage.getItem(localStorageKey);
12
+ if (themeFromStorage === 'light' || themeFromStorage === 'dark') {
13
+ theme = themeFromStorage;
14
+ }
15
+ else {
16
+ theme = (window.matchMedia && window.matchMedia('(prefers-color-scheme: dark)').matches) ? 'dark' : 'light';
17
+ }
18
+ document.documentElement.setAttribute('data-theme', theme);
19
+ return theme;
20
+ };
21
+ export const ThemeProvider = ({ children }) => {
22
+ const [theme, setThemeState] = useState(getTheme);
23
+ const [autoMode, setAutoMode] = useState(() => {
24
+ const themeFromStorage = window.localStorage.getItem(localStorageKey);
25
+ return !themeFromStorage;
26
+ });
27
+ const setTheme = useCallback((themeToSet) => {
28
+ if (themeToSet === 'light' || themeToSet === 'dark') {
29
+ setThemeState(themeToSet);
30
+ setAutoMode(false);
31
+ window.localStorage.setItem(localStorageKey, themeToSet);
32
+ document.documentElement.setAttribute('data-theme', themeToSet);
33
+ }
34
+ else if (themeToSet === 'auto') {
35
+ const existingThemeFromStorage = window.localStorage.getItem(localStorageKey);
36
+ if (existingThemeFromStorage)
37
+ window.localStorage.removeItem(localStorageKey);
38
+ const themeFromOS = (window.matchMedia && window.matchMedia('(prefers-color-scheme: dark)').matches) ? 'dark' : 'light';
39
+ document.documentElement.setAttribute('data-theme', themeFromOS);
40
+ setAutoMode(true);
41
+ setThemeState(themeFromOS);
42
+ }
43
+ }, []);
44
+ return (React.createElement(Context.Provider, { value: { theme, setTheme, autoMode } }, children));
45
+ };
46
+ export const useTheme = () => useContext(Context);
47
+ export default Context;
@@ -15,6 +15,8 @@ import Meta from '../../utilities/Meta';
15
15
  import Auth from '../collections/Edit/Auth';
16
16
  import Loading from '../../elements/Loading';
17
17
  import { OperationContext } from '../../utilities/OperationProvider';
18
+ import { ToggleTheme } from './ToggleTheme';
19
+ import { Gutter } from '../../elements/Gutter';
18
20
  import './index.scss';
19
21
  const baseClass = 'account';
20
22
  const DefaultAccount = (props) => {
@@ -34,11 +36,14 @@ const DefaultAccount = (props) => {
34
36
  React.createElement(Eyebrow, null),
35
37
  !(((_a = collection.versions) === null || _a === void 0 ? void 0 : _a.drafts) && ((_c = (_b = collection.versions) === null || _b === void 0 ? void 0 : _b.drafts) === null || _c === void 0 ? void 0 : _c.autosave)) && (React.createElement(LeaveWithoutSaving, null)),
36
38
  React.createElement("div", { className: `${baseClass}__edit` },
37
- React.createElement("header", { className: `${baseClass}__header` },
39
+ React.createElement(Gutter, { className: `${baseClass}__header` },
38
40
  React.createElement("h1", null,
39
- React.createElement(RenderTitle, { ...{ data, useAsTitle, fallback: '[Untitled]' } }))),
40
- React.createElement(Auth, { useAPIKey: auth.useAPIKey, collection: collection, email: data === null || data === void 0 ? void 0 : data.email, operation: "update" }),
41
- React.createElement(RenderFields, { permissions: permissions.fields, readOnly: !hasSavePermission, filter: (field) => { var _a; return ((_a = field === null || field === void 0 ? void 0 : field.admin) === null || _a === void 0 ? void 0 : _a.position) !== 'sidebar'; }, fieldTypes: fieldTypes, fieldSchema: fields }))),
41
+ React.createElement(RenderTitle, { ...{ data, useAsTitle, fallback: '[Untitled]' } })),
42
+ React.createElement(Auth, { useAPIKey: auth.useAPIKey, collection: collection, email: data === null || data === void 0 ? void 0 : data.email, operation: "update" }),
43
+ React.createElement(RenderFields, { permissions: permissions.fields, readOnly: !hasSavePermission, filter: (field) => { var _a; return ((_a = field === null || field === void 0 ? void 0 : field.admin) === null || _a === void 0 ? void 0 : _a.position) !== 'sidebar'; }, fieldTypes: fieldTypes, fieldSchema: fields })),
44
+ React.createElement(Gutter, { className: `${baseClass}__payload-settings` },
45
+ React.createElement("h3", null, "Payload Settings"),
46
+ React.createElement(ToggleTheme, null)))),
42
47
  React.createElement("div", { className: `${baseClass}__sidebar-wrap` },
43
48
  React.createElement("div", { className: `${baseClass}__sidebar` },
44
49
  React.createElement("div", { className: `${baseClass}__sidebar-sticky-wrap` },
@@ -0,0 +1,2 @@
1
+ import React from 'react';
2
+ export declare const ToggleTheme: React.FC;
@@ -0,0 +1,23 @@
1
+ import React, { useCallback } from 'react';
2
+ import RadioGroupInput from '../../../forms/field-types/RadioGroup/Input';
3
+ import { useTheme } from '../../../utilities/Theme';
4
+ export const ToggleTheme = () => {
5
+ const { theme, setTheme, autoMode } = useTheme();
6
+ const onChange = useCallback((newTheme) => {
7
+ setTheme(newTheme);
8
+ }, [setTheme]);
9
+ return (React.createElement(RadioGroupInput, { name: "theme", label: "Admin Theme", value: autoMode ? 'auto' : theme, onChange: onChange, options: [
10
+ {
11
+ label: 'Automatic',
12
+ value: 'auto',
13
+ },
14
+ {
15
+ label: 'Light',
16
+ value: 'light',
17
+ },
18
+ {
19
+ label: 'Dark',
20
+ value: 'dark',
21
+ },
22
+ ] }));
23
+ };
@@ -8,7 +8,6 @@ import { useLocale } from '../../utilities/Locale';
8
8
  import DefaultAccount from './Default';
9
9
  import buildStateFromSchema from '../../forms/Form/buildStateFromSchema';
10
10
  import RenderCustomComponent from '../../utilities/RenderCustomComponent';
11
- import { NegativeFieldGutterProvider } from '../../forms/FieldTypeGutter/context';
12
11
  import { useDocumentInfo } from '../../utilities/DocumentInfo';
13
12
  const AccountView = () => {
14
13
  var _a, _b;
@@ -17,7 +16,7 @@ const AccountView = () => {
17
16
  const { setStepNav } = useStepNav();
18
17
  const { user, permissions } = useAuth();
19
18
  const [initialState, setInitialState] = useState({});
20
- const { id } = useDocumentInfo();
19
+ const { id, preferences } = useDocumentInfo();
21
20
  const { serverURL, routes: { api }, collections, admin: { user: adminUser, components: { views: { Account: CustomAccount, } = {
22
21
  Account: undefined,
23
22
  }, } = {}, } = {
@@ -26,7 +25,7 @@ const AccountView = () => {
26
25
  const collection = collections.find((coll) => coll.slug === user.collection);
27
26
  const { fields } = collection;
28
27
  const collectionPermissions = (_a = permissions === null || permissions === void 0 ? void 0 : permissions.collections) === null || _a === void 0 ? void 0 : _a[adminUser];
29
- const [{ data, isLoading }] = usePayloadAPI(`${serverURL}${api}/${collection === null || collection === void 0 ? void 0 : collection.slug}/${user === null || user === void 0 ? void 0 : user.id}?depth=0`, { initialParams: { 'fallback-locale': 'null' } });
28
+ const [{ data, isLoading: isLoadingDocument }] = usePayloadAPI(`${serverURL}${api}/${collection === null || collection === void 0 ? void 0 : collection.slug}/${user === null || user === void 0 ? void 0 : user.id}?depth=0`, { initialParams: { 'fallback-locale': 'null' } });
30
29
  const hasSavePermission = (_b = collectionPermissions === null || collectionPermissions === void 0 ? void 0 : collectionPermissions.update) === null || _b === void 0 ? void 0 : _b.permission;
31
30
  const dataToRender = (locationState === null || locationState === void 0 ? void 0 : locationState.data) || data;
32
31
  const apiURL = `${serverURL}${api}/${user.collection}/${data === null || data === void 0 ? void 0 : data.id}`;
@@ -44,16 +43,15 @@ const AccountView = () => {
44
43
  };
45
44
  awaitInitialState();
46
45
  }, [dataToRender, fields, id, user, locale]);
47
- return (React.createElement(NegativeFieldGutterProvider, { allow: true },
48
- React.createElement(RenderCustomComponent, { DefaultComponent: DefaultAccount, CustomComponent: CustomAccount, componentProps: {
49
- action,
50
- data,
51
- collection,
52
- permissions: collectionPermissions,
53
- hasSavePermission,
54
- initialState,
55
- apiURL,
56
- isLoading,
57
- } })));
46
+ return (React.createElement(RenderCustomComponent, { DefaultComponent: DefaultAccount, CustomComponent: CustomAccount, componentProps: {
47
+ action,
48
+ data,
49
+ collection,
50
+ permissions: collectionPermissions,
51
+ hasSavePermission,
52
+ initialState,
53
+ apiURL,
54
+ isLoading: isLoadingDocument || !preferences,
55
+ } }));
58
56
  };
59
57
  export default AccountView;