@xleddyl/nuxt-cms 0.4.4 → 0.5.1

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 (471) hide show
  1. package/README.md +1 -1
  2. package/dist/module.json +1 -1
  3. package/dist/module.mjs +22 -7
  4. package/dist/runtime/app/components/cms/BlockOutline.vue +56 -67
  5. package/dist/runtime/app/components/cms/BlockPalette.vue +3 -1
  6. package/dist/runtime/app/components/cms/BlocksField.vue +155 -149
  7. package/dist/runtime/app/components/cms/BrandMark.d.vue.ts +3 -1
  8. package/dist/runtime/app/components/cms/BrandMark.vue +24 -25
  9. package/dist/runtime/app/components/cms/BrandMark.vue.d.ts +3 -1
  10. package/dist/runtime/app/components/cms/{Checkbox.d.vue.ts → ConfirmGroups.d.vue.ts} +4 -4
  11. package/dist/runtime/app/components/cms/ConfirmGroups.vue +22 -0
  12. package/dist/runtime/app/components/cms/{Checkbox.vue.d.ts → ConfirmGroups.vue.d.ts} +4 -4
  13. package/dist/runtime/app/components/cms/EntryDrawer.d.vue.ts +2 -2
  14. package/dist/runtime/app/components/cms/EntryDrawer.vue +62 -47
  15. package/dist/runtime/app/components/cms/EntryDrawer.vue.d.ts +2 -2
  16. package/dist/runtime/app/components/cms/EntryForm.vue +100 -95
  17. package/dist/runtime/app/components/cms/FieldInput.vue +56 -32
  18. package/dist/runtime/app/components/cms/ImportModal.d.vue.ts +2 -2
  19. package/dist/runtime/app/components/cms/ImportModal.vue +80 -79
  20. package/dist/runtime/app/components/cms/ImportModal.vue.d.ts +2 -2
  21. package/dist/runtime/app/components/cms/JsonField.vue +17 -8
  22. package/dist/runtime/app/components/cms/ListFilters.vue +54 -63
  23. package/dist/runtime/app/components/cms/LocaleSwitch.vue +21 -18
  24. package/dist/runtime/app/components/cms/MediaDetail.vue +110 -72
  25. package/dist/runtime/app/components/cms/MediaField.vue +37 -29
  26. package/dist/runtime/app/components/cms/MediaFolderPicker.d.vue.ts +1 -0
  27. package/dist/runtime/app/components/cms/MediaFolderPicker.vue +77 -49
  28. package/dist/runtime/app/components/cms/MediaFolderPicker.vue.d.ts +1 -0
  29. package/dist/runtime/app/components/cms/MediaGallery.vue +300 -323
  30. package/dist/runtime/app/components/cms/MediaThumb.vue +7 -2
  31. package/dist/runtime/app/components/cms/MediaUpload.vue +37 -70
  32. package/dist/runtime/app/components/cms/RelationField.vue +23 -71
  33. package/dist/runtime/app/components/cms/RichTextField.vue +23 -177
  34. package/dist/runtime/app/components/cms/SettingsAccount.vue +96 -104
  35. package/dist/runtime/app/components/cms/SettingsColumns.vue +7 -6
  36. package/dist/runtime/app/components/cms/SettingsEntry.d.vue.ts +10 -1
  37. package/dist/runtime/app/components/cms/SettingsEntry.vue +35 -52
  38. package/dist/runtime/app/components/cms/SettingsEntry.vue.d.ts +10 -1
  39. package/dist/runtime/app/components/cms/SettingsLayout.vue +7 -4
  40. package/dist/runtime/app/components/cms/SettingsModal.d.vue.ts +0 -4
  41. package/dist/runtime/app/components/cms/SettingsModal.vue +102 -151
  42. package/dist/runtime/app/components/cms/SettingsModal.vue.d.ts +0 -4
  43. package/dist/runtime/app/components/cms/SettingsUsers.d.vue.ts +8 -1
  44. package/dist/runtime/app/components/cms/SettingsUsers.vue +182 -189
  45. package/dist/runtime/app/components/cms/SettingsUsers.vue.d.ts +8 -1
  46. package/dist/runtime/app/components/cms/SlugField.vue +9 -6
  47. package/dist/runtime/app/components/cms/StatusBadge.vue +7 -6
  48. package/dist/runtime/app/components/cms/TranslatableField.vue +11 -6
  49. package/dist/runtime/app/components/cms/VisualEditor.vue +243 -282
  50. package/dist/runtime/app/components/cms/WelcomeModal.vue +49 -41
  51. package/dist/runtime/app/composables/cms-confirm.d.ts +0 -6
  52. package/dist/runtime/app/composables/cms-confirm.js +13 -13
  53. package/dist/runtime/app/composables/cms-media-uploader.d.ts +4 -0
  54. package/dist/runtime/app/composables/cms-media-uploader.js +12 -40
  55. package/dist/runtime/app/composables/cms-theme.d.ts +3 -9
  56. package/dist/runtime/app/composables/cms-theme.js +1 -19
  57. package/dist/runtime/app/composables/cms-toast.d.ts +3 -4
  58. package/dist/runtime/app/composables/cms-toast.js +6 -13
  59. package/dist/runtime/app/layouts/cms-admin.d.vue.ts +2 -2
  60. package/dist/runtime/app/layouts/cms-admin.vue +184 -113
  61. package/dist/runtime/app/layouts/cms-admin.vue.d.ts +2 -2
  62. package/dist/runtime/app/layouts/cms-editor.d.vue.ts +2 -2
  63. package/dist/runtime/app/layouts/cms-editor.vue +9 -4
  64. package/dist/runtime/app/layouts/cms-editor.vue.d.ts +2 -2
  65. package/dist/runtime/app/pages/admin-collection.vue +178 -143
  66. package/dist/runtime/app/pages/admin-content.vue +35 -30
  67. package/dist/runtime/app/pages/admin-entry.vue +14 -9
  68. package/dist/runtime/app/pages/admin-login.vue +57 -54
  69. package/dist/runtime/app/pages/admin-media.vue +6 -4
  70. package/dist/runtime/app/pages/admin-preview.vue +3 -2
  71. package/dist/runtime/app/preview/PreviewOverlay.vue +9 -7
  72. package/dist/runtime/app/utils/ui.d.ts +1 -3
  73. package/dist/runtime/app/utils/ui.js +4 -2
  74. package/dist/runtime/assets/editor.css +1 -0
  75. package/dist/runtime/assets/main.css +1 -1
  76. package/dist/runtime/assets/media.css +1 -0
  77. package/dist/runtime/assets/shell.css +1 -0
  78. package/package.json +9 -8
  79. package/dist/runtime/app/components/cms/Alert.d.vue.ts +0 -17
  80. package/dist/runtime/app/components/cms/Alert.vue +0 -13
  81. package/dist/runtime/app/components/cms/Alert.vue.d.ts +0 -17
  82. package/dist/runtime/app/components/cms/Button.d.vue.ts +0 -26
  83. package/dist/runtime/app/components/cms/Button.vue +0 -48
  84. package/dist/runtime/app/components/cms/Button.vue.d.ts +0 -26
  85. package/dist/runtime/app/components/cms/Checkbox.vue +0 -21
  86. package/dist/runtime/app/components/cms/ConfirmModal.d.vue.ts +0 -3
  87. package/dist/runtime/app/components/cms/ConfirmModal.vue +0 -46
  88. package/dist/runtime/app/components/cms/ConfirmModal.vue.d.ts +0 -3
  89. package/dist/runtime/app/components/cms/Drawer.d.vue.ts +0 -30
  90. package/dist/runtime/app/components/cms/Drawer.vue +0 -61
  91. package/dist/runtime/app/components/cms/Drawer.vue.d.ts +0 -30
  92. package/dist/runtime/app/components/cms/DropdownMenu.d.vue.ts +0 -26
  93. package/dist/runtime/app/components/cms/DropdownMenu.vue +0 -48
  94. package/dist/runtime/app/components/cms/DropdownMenu.vue.d.ts +0 -26
  95. package/dist/runtime/app/components/cms/EmptyState.d.vue.ts +0 -19
  96. package/dist/runtime/app/components/cms/EmptyState.vue +0 -21
  97. package/dist/runtime/app/components/cms/EmptyState.vue.d.ts +0 -19
  98. package/dist/runtime/app/components/cms/Form.d.vue.ts +0 -37
  99. package/dist/runtime/app/components/cms/Form.vue +0 -63
  100. package/dist/runtime/app/components/cms/Form.vue.d.ts +0 -37
  101. package/dist/runtime/app/components/cms/FormField.d.vue.ts +0 -22
  102. package/dist/runtime/app/components/cms/FormField.vue +0 -35
  103. package/dist/runtime/app/components/cms/FormField.vue.d.ts +0 -22
  104. package/dist/runtime/app/components/cms/Icon.d.vue.ts +0 -6
  105. package/dist/runtime/app/components/cms/Icon.vue +0 -23
  106. package/dist/runtime/app/components/cms/Icon.vue.d.ts +0 -6
  107. package/dist/runtime/app/components/cms/Input.d.vue.ts +0 -27
  108. package/dist/runtime/app/components/cms/Input.vue +0 -46
  109. package/dist/runtime/app/components/cms/Input.vue.d.ts +0 -27
  110. package/dist/runtime/app/components/cms/Modal.d.vue.ts +0 -31
  111. package/dist/runtime/app/components/cms/Modal.vue +0 -49
  112. package/dist/runtime/app/components/cms/Modal.vue.d.ts +0 -31
  113. package/dist/runtime/app/components/cms/PageHeader.d.vue.ts +0 -25
  114. package/dist/runtime/app/components/cms/PageHeader.vue +0 -36
  115. package/dist/runtime/app/components/cms/PageHeader.vue.d.ts +0 -25
  116. package/dist/runtime/app/components/cms/Pagination.d.vue.ts +0 -15
  117. package/dist/runtime/app/components/cms/Pagination.vue +0 -51
  118. package/dist/runtime/app/components/cms/Pagination.vue.d.ts +0 -15
  119. package/dist/runtime/app/components/cms/PasswordInput.d.vue.ts +0 -17
  120. package/dist/runtime/app/components/cms/PasswordInput.vue +0 -81
  121. package/dist/runtime/app/components/cms/PasswordInput.vue.d.ts +0 -17
  122. package/dist/runtime/app/components/cms/Popover.d.vue.ts +0 -22
  123. package/dist/runtime/app/components/cms/Popover.vue +0 -27
  124. package/dist/runtime/app/components/cms/Popover.vue.d.ts +0 -22
  125. package/dist/runtime/app/components/cms/Search.d.vue.ts +0 -7
  126. package/dist/runtime/app/components/cms/Search.vue +0 -347
  127. package/dist/runtime/app/components/cms/Search.vue.d.ts +0 -7
  128. package/dist/runtime/app/components/cms/SelectMenu.d.vue.ts +0 -25
  129. package/dist/runtime/app/components/cms/SelectMenu.vue +0 -152
  130. package/dist/runtime/app/components/cms/SelectMenu.vue.d.ts +0 -25
  131. package/dist/runtime/app/components/cms/Spinner.d.vue.ts +0 -3
  132. package/dist/runtime/app/components/cms/Spinner.vue +0 -5
  133. package/dist/runtime/app/components/cms/Spinner.vue.d.ts +0 -3
  134. package/dist/runtime/app/components/cms/Switch.d.vue.ts +0 -10
  135. package/dist/runtime/app/components/cms/Switch.vue +0 -14
  136. package/dist/runtime/app/components/cms/Switch.vue.d.ts +0 -10
  137. package/dist/runtime/app/components/cms/Table.d.vue.ts +0 -51
  138. package/dist/runtime/app/components/cms/Table.vue +0 -115
  139. package/dist/runtime/app/components/cms/Table.vue.d.ts +0 -51
  140. package/dist/runtime/app/components/cms/Textarea.d.vue.ts +0 -15
  141. package/dist/runtime/app/components/cms/Textarea.vue +0 -16
  142. package/dist/runtime/app/components/cms/Textarea.vue.d.ts +0 -15
  143. package/dist/runtime/app/components/cms/Toaster.d.vue.ts +0 -3
  144. package/dist/runtime/app/components/cms/Toaster.vue +0 -48
  145. package/dist/runtime/app/components/cms/Toaster.vue.d.ts +0 -3
  146. package/dist/runtime/app/composables/cms-overlay.d.ts +0 -4
  147. package/dist/runtime/app/composables/cms-overlay.js +0 -23
  148. package/dist/runtime/assets/svg/academic-cap.svg +0 -3
  149. package/dist/runtime/assets/svg/adjustments-horizontal.svg +0 -3
  150. package/dist/runtime/assets/svg/adjustments-vertical.svg +0 -3
  151. package/dist/runtime/assets/svg/archive-box-arrow-down.svg +0 -3
  152. package/dist/runtime/assets/svg/archive-box-x-mark.svg +0 -3
  153. package/dist/runtime/assets/svg/archive-box.svg +0 -3
  154. package/dist/runtime/assets/svg/arrow-down-circle.svg +0 -3
  155. package/dist/runtime/assets/svg/arrow-down-left.svg +0 -3
  156. package/dist/runtime/assets/svg/arrow-down-on-square-stack.svg +0 -3
  157. package/dist/runtime/assets/svg/arrow-down-on-square.svg +0 -3
  158. package/dist/runtime/assets/svg/arrow-down-right.svg +0 -3
  159. package/dist/runtime/assets/svg/arrow-down-tray.svg +0 -3
  160. package/dist/runtime/assets/svg/arrow-down.svg +0 -3
  161. package/dist/runtime/assets/svg/arrow-left-circle.svg +0 -3
  162. package/dist/runtime/assets/svg/arrow-left-end-on-rectangle.svg +0 -3
  163. package/dist/runtime/assets/svg/arrow-left-on-rectangle.svg +0 -3
  164. package/dist/runtime/assets/svg/arrow-left-start-on-rectangle.svg +0 -3
  165. package/dist/runtime/assets/svg/arrow-left.svg +0 -3
  166. package/dist/runtime/assets/svg/arrow-long-down.svg +0 -3
  167. package/dist/runtime/assets/svg/arrow-long-left.svg +0 -3
  168. package/dist/runtime/assets/svg/arrow-long-right.svg +0 -3
  169. package/dist/runtime/assets/svg/arrow-long-up.svg +0 -3
  170. package/dist/runtime/assets/svg/arrow-path-rounded-square.svg +0 -3
  171. package/dist/runtime/assets/svg/arrow-path.svg +0 -3
  172. package/dist/runtime/assets/svg/arrow-right-circle.svg +0 -3
  173. package/dist/runtime/assets/svg/arrow-right-end-on-rectangle.svg +0 -3
  174. package/dist/runtime/assets/svg/arrow-right-on-rectangle.svg +0 -3
  175. package/dist/runtime/assets/svg/arrow-right-start-on-rectangle.svg +0 -3
  176. package/dist/runtime/assets/svg/arrow-right.svg +0 -3
  177. package/dist/runtime/assets/svg/arrow-small-down.svg +0 -3
  178. package/dist/runtime/assets/svg/arrow-small-left.svg +0 -3
  179. package/dist/runtime/assets/svg/arrow-small-right.svg +0 -3
  180. package/dist/runtime/assets/svg/arrow-small-up.svg +0 -3
  181. package/dist/runtime/assets/svg/arrow-top-right-on-square.svg +0 -3
  182. package/dist/runtime/assets/svg/arrow-trending-down.svg +0 -3
  183. package/dist/runtime/assets/svg/arrow-trending-up.svg +0 -3
  184. package/dist/runtime/assets/svg/arrow-turn-down-left.svg +0 -3
  185. package/dist/runtime/assets/svg/arrow-turn-down-right.svg +0 -3
  186. package/dist/runtime/assets/svg/arrow-turn-left-down.svg +0 -3
  187. package/dist/runtime/assets/svg/arrow-turn-left-up.svg +0 -3
  188. package/dist/runtime/assets/svg/arrow-turn-right-down.svg +0 -3
  189. package/dist/runtime/assets/svg/arrow-turn-right-up.svg +0 -3
  190. package/dist/runtime/assets/svg/arrow-turn-up-left.svg +0 -3
  191. package/dist/runtime/assets/svg/arrow-turn-up-right.svg +0 -3
  192. package/dist/runtime/assets/svg/arrow-up-circle.svg +0 -3
  193. package/dist/runtime/assets/svg/arrow-up-left.svg +0 -3
  194. package/dist/runtime/assets/svg/arrow-up-on-square-stack.svg +0 -3
  195. package/dist/runtime/assets/svg/arrow-up-on-square.svg +0 -3
  196. package/dist/runtime/assets/svg/arrow-up-right.svg +0 -3
  197. package/dist/runtime/assets/svg/arrow-up-tray.svg +0 -3
  198. package/dist/runtime/assets/svg/arrow-up.svg +0 -3
  199. package/dist/runtime/assets/svg/arrow-uturn-down.svg +0 -3
  200. package/dist/runtime/assets/svg/arrow-uturn-left.svg +0 -3
  201. package/dist/runtime/assets/svg/arrow-uturn-right.svg +0 -3
  202. package/dist/runtime/assets/svg/arrow-uturn-up.svg +0 -3
  203. package/dist/runtime/assets/svg/arrows-pointing-in.svg +0 -3
  204. package/dist/runtime/assets/svg/arrows-pointing-out.svg +0 -3
  205. package/dist/runtime/assets/svg/arrows-right-left.svg +0 -3
  206. package/dist/runtime/assets/svg/arrows-up-down.svg +0 -3
  207. package/dist/runtime/assets/svg/at-symbol.svg +0 -3
  208. package/dist/runtime/assets/svg/backspace.svg +0 -3
  209. package/dist/runtime/assets/svg/backward.svg +0 -3
  210. package/dist/runtime/assets/svg/banknotes.svg +0 -3
  211. package/dist/runtime/assets/svg/bars-2.svg +0 -3
  212. package/dist/runtime/assets/svg/bars-3-bottom-left.svg +0 -3
  213. package/dist/runtime/assets/svg/bars-3-bottom-right.svg +0 -3
  214. package/dist/runtime/assets/svg/bars-3-center-left.svg +0 -3
  215. package/dist/runtime/assets/svg/bars-3.svg +0 -3
  216. package/dist/runtime/assets/svg/bars-4.svg +0 -3
  217. package/dist/runtime/assets/svg/bars-arrow-down.svg +0 -3
  218. package/dist/runtime/assets/svg/bars-arrow-up.svg +0 -3
  219. package/dist/runtime/assets/svg/battery-0.svg +0 -3
  220. package/dist/runtime/assets/svg/battery-100.svg +0 -3
  221. package/dist/runtime/assets/svg/battery-50.svg +0 -3
  222. package/dist/runtime/assets/svg/beaker.svg +0 -3
  223. package/dist/runtime/assets/svg/bell-alert.svg +0 -3
  224. package/dist/runtime/assets/svg/bell-slash.svg +0 -3
  225. package/dist/runtime/assets/svg/bell-snooze.svg +0 -3
  226. package/dist/runtime/assets/svg/bell.svg +0 -3
  227. package/dist/runtime/assets/svg/bold.svg +0 -3
  228. package/dist/runtime/assets/svg/bolt-slash.svg +0 -3
  229. package/dist/runtime/assets/svg/bolt.svg +0 -3
  230. package/dist/runtime/assets/svg/book-open.svg +0 -3
  231. package/dist/runtime/assets/svg/bookmark-slash.svg +0 -3
  232. package/dist/runtime/assets/svg/bookmark-square.svg +0 -3
  233. package/dist/runtime/assets/svg/bookmark.svg +0 -3
  234. package/dist/runtime/assets/svg/briefcase.svg +0 -3
  235. package/dist/runtime/assets/svg/bug-ant.svg +0 -3
  236. package/dist/runtime/assets/svg/building-library.svg +0 -3
  237. package/dist/runtime/assets/svg/building-office-2.svg +0 -3
  238. package/dist/runtime/assets/svg/building-office.svg +0 -3
  239. package/dist/runtime/assets/svg/building-storefront.svg +0 -3
  240. package/dist/runtime/assets/svg/cake.svg +0 -3
  241. package/dist/runtime/assets/svg/calculator.svg +0 -3
  242. package/dist/runtime/assets/svg/calendar-date-range.svg +0 -3
  243. package/dist/runtime/assets/svg/calendar-days.svg +0 -3
  244. package/dist/runtime/assets/svg/calendar.svg +0 -3
  245. package/dist/runtime/assets/svg/camera.svg +0 -4
  246. package/dist/runtime/assets/svg/chart-bar-square.svg +0 -3
  247. package/dist/runtime/assets/svg/chart-bar.svg +0 -3
  248. package/dist/runtime/assets/svg/chart-pie.svg +0 -4
  249. package/dist/runtime/assets/svg/chat-bubble-bottom-center-text.svg +0 -3
  250. package/dist/runtime/assets/svg/chat-bubble-bottom-center.svg +0 -3
  251. package/dist/runtime/assets/svg/chat-bubble-left-ellipsis.svg +0 -3
  252. package/dist/runtime/assets/svg/chat-bubble-left-right.svg +0 -3
  253. package/dist/runtime/assets/svg/chat-bubble-left.svg +0 -3
  254. package/dist/runtime/assets/svg/chat-bubble-oval-left-ellipsis.svg +0 -3
  255. package/dist/runtime/assets/svg/chat-bubble-oval-left.svg +0 -3
  256. package/dist/runtime/assets/svg/check-badge.svg +0 -3
  257. package/dist/runtime/assets/svg/check-circle.svg +0 -3
  258. package/dist/runtime/assets/svg/check.svg +0 -3
  259. package/dist/runtime/assets/svg/chevron-double-down.svg +0 -3
  260. package/dist/runtime/assets/svg/chevron-double-left.svg +0 -3
  261. package/dist/runtime/assets/svg/chevron-double-right.svg +0 -3
  262. package/dist/runtime/assets/svg/chevron-double-up.svg +0 -4
  263. package/dist/runtime/assets/svg/chevron-down.svg +0 -3
  264. package/dist/runtime/assets/svg/chevron-left.svg +0 -3
  265. package/dist/runtime/assets/svg/chevron-right.svg +0 -3
  266. package/dist/runtime/assets/svg/chevron-up-down.svg +0 -3
  267. package/dist/runtime/assets/svg/chevron-up.svg +0 -3
  268. package/dist/runtime/assets/svg/circle-stack.svg +0 -3
  269. package/dist/runtime/assets/svg/clipboard-document-check.svg +0 -3
  270. package/dist/runtime/assets/svg/clipboard-document-list.svg +0 -3
  271. package/dist/runtime/assets/svg/clipboard-document.svg +0 -3
  272. package/dist/runtime/assets/svg/clipboard.svg +0 -3
  273. package/dist/runtime/assets/svg/clock.svg +0 -3
  274. package/dist/runtime/assets/svg/cloud-arrow-down.svg +0 -3
  275. package/dist/runtime/assets/svg/cloud-arrow-up.svg +0 -3
  276. package/dist/runtime/assets/svg/cloud.svg +0 -3
  277. package/dist/runtime/assets/svg/code-bracket-square.svg +0 -3
  278. package/dist/runtime/assets/svg/code-bracket.svg +0 -3
  279. package/dist/runtime/assets/svg/cog-6-tooth.svg +0 -4
  280. package/dist/runtime/assets/svg/cog-8-tooth.svg +0 -4
  281. package/dist/runtime/assets/svg/cog.svg +0 -3
  282. package/dist/runtime/assets/svg/command-line.svg +0 -3
  283. package/dist/runtime/assets/svg/computer-desktop.svg +0 -3
  284. package/dist/runtime/assets/svg/cpu-chip.svg +0 -3
  285. package/dist/runtime/assets/svg/credit-card.svg +0 -3
  286. package/dist/runtime/assets/svg/cube-transparent.svg +0 -3
  287. package/dist/runtime/assets/svg/cube.svg +0 -3
  288. package/dist/runtime/assets/svg/currency-bangladeshi.svg +0 -3
  289. package/dist/runtime/assets/svg/currency-dollar.svg +0 -3
  290. package/dist/runtime/assets/svg/currency-euro.svg +0 -3
  291. package/dist/runtime/assets/svg/currency-pound.svg +0 -3
  292. package/dist/runtime/assets/svg/currency-rupee.svg +0 -3
  293. package/dist/runtime/assets/svg/currency-yen.svg +0 -3
  294. package/dist/runtime/assets/svg/cursor-arrow-rays.svg +0 -3
  295. package/dist/runtime/assets/svg/cursor-arrow-ripple.svg +0 -3
  296. package/dist/runtime/assets/svg/device-phone-mobile.svg +0 -3
  297. package/dist/runtime/assets/svg/device-tablet.svg +0 -3
  298. package/dist/runtime/assets/svg/divide.svg +0 -3
  299. package/dist/runtime/assets/svg/document-arrow-down.svg +0 -3
  300. package/dist/runtime/assets/svg/document-arrow-up.svg +0 -3
  301. package/dist/runtime/assets/svg/document-chart-bar.svg +0 -3
  302. package/dist/runtime/assets/svg/document-check.svg +0 -3
  303. package/dist/runtime/assets/svg/document-currency-bangladeshi.svg +0 -3
  304. package/dist/runtime/assets/svg/document-currency-dollar.svg +0 -3
  305. package/dist/runtime/assets/svg/document-currency-euro.svg +0 -3
  306. package/dist/runtime/assets/svg/document-currency-pound.svg +0 -3
  307. package/dist/runtime/assets/svg/document-currency-rupee.svg +0 -3
  308. package/dist/runtime/assets/svg/document-currency-yen.svg +0 -3
  309. package/dist/runtime/assets/svg/document-duplicate.svg +0 -3
  310. package/dist/runtime/assets/svg/document-magnifying-glass.svg +0 -3
  311. package/dist/runtime/assets/svg/document-minus.svg +0 -3
  312. package/dist/runtime/assets/svg/document-plus.svg +0 -3
  313. package/dist/runtime/assets/svg/document-text.svg +0 -3
  314. package/dist/runtime/assets/svg/document.svg +0 -3
  315. package/dist/runtime/assets/svg/ellipsis-horizontal-circle.svg +0 -3
  316. package/dist/runtime/assets/svg/ellipsis-horizontal.svg +0 -3
  317. package/dist/runtime/assets/svg/ellipsis-vertical.svg +0 -3
  318. package/dist/runtime/assets/svg/envelope-open.svg +0 -3
  319. package/dist/runtime/assets/svg/envelope.svg +0 -3
  320. package/dist/runtime/assets/svg/equals.svg +0 -3
  321. package/dist/runtime/assets/svg/exclamation-circle.svg +0 -3
  322. package/dist/runtime/assets/svg/exclamation-triangle.svg +0 -3
  323. package/dist/runtime/assets/svg/eye-dropper.svg +0 -3
  324. package/dist/runtime/assets/svg/eye-slash.svg +0 -3
  325. package/dist/runtime/assets/svg/eye.svg +0 -4
  326. package/dist/runtime/assets/svg/face-frown.svg +0 -3
  327. package/dist/runtime/assets/svg/face-smile.svg +0 -3
  328. package/dist/runtime/assets/svg/film.svg +0 -3
  329. package/dist/runtime/assets/svg/finger-print.svg +0 -3
  330. package/dist/runtime/assets/svg/fire.svg +0 -4
  331. package/dist/runtime/assets/svg/flag.svg +0 -3
  332. package/dist/runtime/assets/svg/folder-arrow-down.svg +0 -3
  333. package/dist/runtime/assets/svg/folder-minus.svg +0 -3
  334. package/dist/runtime/assets/svg/folder-open.svg +0 -3
  335. package/dist/runtime/assets/svg/folder-plus.svg +0 -3
  336. package/dist/runtime/assets/svg/folder.svg +0 -3
  337. package/dist/runtime/assets/svg/forward.svg +0 -3
  338. package/dist/runtime/assets/svg/funnel.svg +0 -3
  339. package/dist/runtime/assets/svg/gif.svg +0 -3
  340. package/dist/runtime/assets/svg/gift-top.svg +0 -3
  341. package/dist/runtime/assets/svg/gift.svg +0 -3
  342. package/dist/runtime/assets/svg/globe-alt.svg +0 -3
  343. package/dist/runtime/assets/svg/globe-americas.svg +0 -3
  344. package/dist/runtime/assets/svg/globe-asia-australia.svg +0 -3
  345. package/dist/runtime/assets/svg/globe-europe-africa.svg +0 -3
  346. package/dist/runtime/assets/svg/h1.svg +0 -3
  347. package/dist/runtime/assets/svg/h2.svg +0 -3
  348. package/dist/runtime/assets/svg/h3.svg +0 -3
  349. package/dist/runtime/assets/svg/hand-raised.svg +0 -3
  350. package/dist/runtime/assets/svg/hand-thumb-down.svg +0 -3
  351. package/dist/runtime/assets/svg/hand-thumb-up.svg +0 -3
  352. package/dist/runtime/assets/svg/hashtag.svg +0 -3
  353. package/dist/runtime/assets/svg/heart.svg +0 -3
  354. package/dist/runtime/assets/svg/home-modern.svg +0 -3
  355. package/dist/runtime/assets/svg/home.svg +0 -3
  356. package/dist/runtime/assets/svg/identification.svg +0 -3
  357. package/dist/runtime/assets/svg/inbox-arrow-down.svg +0 -3
  358. package/dist/runtime/assets/svg/inbox-stack.svg +0 -3
  359. package/dist/runtime/assets/svg/inbox.svg +0 -3
  360. package/dist/runtime/assets/svg/information-circle.svg +0 -3
  361. package/dist/runtime/assets/svg/italic.svg +0 -3
  362. package/dist/runtime/assets/svg/key.svg +0 -3
  363. package/dist/runtime/assets/svg/language.svg +0 -3
  364. package/dist/runtime/assets/svg/lifebuoy.svg +0 -3
  365. package/dist/runtime/assets/svg/light-bulb.svg +0 -3
  366. package/dist/runtime/assets/svg/link-slash.svg +0 -3
  367. package/dist/runtime/assets/svg/link.svg +0 -3
  368. package/dist/runtime/assets/svg/list-bullet.svg +0 -3
  369. package/dist/runtime/assets/svg/lock-closed.svg +0 -3
  370. package/dist/runtime/assets/svg/lock-open.svg +0 -3
  371. package/dist/runtime/assets/svg/magnifying-glass-circle.svg +0 -3
  372. package/dist/runtime/assets/svg/magnifying-glass-minus.svg +0 -3
  373. package/dist/runtime/assets/svg/magnifying-glass-plus.svg +0 -3
  374. package/dist/runtime/assets/svg/magnifying-glass.svg +0 -3
  375. package/dist/runtime/assets/svg/map-pin.svg +0 -4
  376. package/dist/runtime/assets/svg/map.svg +0 -3
  377. package/dist/runtime/assets/svg/megaphone.svg +0 -3
  378. package/dist/runtime/assets/svg/microphone.svg +0 -3
  379. package/dist/runtime/assets/svg/minus-circle.svg +0 -3
  380. package/dist/runtime/assets/svg/minus-small.svg +0 -3
  381. package/dist/runtime/assets/svg/minus.svg +0 -3
  382. package/dist/runtime/assets/svg/moon.svg +0 -3
  383. package/dist/runtime/assets/svg/musical-note.svg +0 -3
  384. package/dist/runtime/assets/svg/newspaper.svg +0 -3
  385. package/dist/runtime/assets/svg/no-symbol.svg +0 -3
  386. package/dist/runtime/assets/svg/numbered-list.svg +0 -3
  387. package/dist/runtime/assets/svg/paint-brush.svg +0 -3
  388. package/dist/runtime/assets/svg/paper-airplane.svg +0 -3
  389. package/dist/runtime/assets/svg/paper-clip.svg +0 -3
  390. package/dist/runtime/assets/svg/pause-circle.svg +0 -3
  391. package/dist/runtime/assets/svg/pause.svg +0 -3
  392. package/dist/runtime/assets/svg/pencil-square.svg +0 -3
  393. package/dist/runtime/assets/svg/pencil.svg +0 -3
  394. package/dist/runtime/assets/svg/percent-badge.svg +0 -3
  395. package/dist/runtime/assets/svg/phone-arrow-down-left.svg +0 -3
  396. package/dist/runtime/assets/svg/phone-arrow-up-right.svg +0 -3
  397. package/dist/runtime/assets/svg/phone-x-mark.svg +0 -3
  398. package/dist/runtime/assets/svg/phone.svg +0 -3
  399. package/dist/runtime/assets/svg/photo.svg +0 -3
  400. package/dist/runtime/assets/svg/play-circle.svg +0 -4
  401. package/dist/runtime/assets/svg/play-pause.svg +0 -3
  402. package/dist/runtime/assets/svg/play.svg +0 -3
  403. package/dist/runtime/assets/svg/plus-circle.svg +0 -3
  404. package/dist/runtime/assets/svg/plus-small.svg +0 -3
  405. package/dist/runtime/assets/svg/plus.svg +0 -3
  406. package/dist/runtime/assets/svg/power.svg +0 -3
  407. package/dist/runtime/assets/svg/presentation-chart-bar.svg +0 -3
  408. package/dist/runtime/assets/svg/presentation-chart-line.svg +0 -3
  409. package/dist/runtime/assets/svg/printer.svg +0 -3
  410. package/dist/runtime/assets/svg/puzzle-piece.svg +0 -3
  411. package/dist/runtime/assets/svg/qr-code.svg +0 -4
  412. package/dist/runtime/assets/svg/question-mark-circle.svg +0 -3
  413. package/dist/runtime/assets/svg/queue-list.svg +0 -3
  414. package/dist/runtime/assets/svg/radio.svg +0 -3
  415. package/dist/runtime/assets/svg/receipt-percent.svg +0 -3
  416. package/dist/runtime/assets/svg/receipt-refund.svg +0 -3
  417. package/dist/runtime/assets/svg/rectangle-group.svg +0 -3
  418. package/dist/runtime/assets/svg/rectangle-stack.svg +0 -3
  419. package/dist/runtime/assets/svg/rocket-launch.svg +0 -3
  420. package/dist/runtime/assets/svg/rss.svg +0 -3
  421. package/dist/runtime/assets/svg/scale.svg +0 -3
  422. package/dist/runtime/assets/svg/scissors.svg +0 -3
  423. package/dist/runtime/assets/svg/server-stack.svg +0 -3
  424. package/dist/runtime/assets/svg/server.svg +0 -3
  425. package/dist/runtime/assets/svg/share.svg +0 -3
  426. package/dist/runtime/assets/svg/shield-check.svg +0 -3
  427. package/dist/runtime/assets/svg/shield-exclamation.svg +0 -3
  428. package/dist/runtime/assets/svg/shopping-bag.svg +0 -3
  429. package/dist/runtime/assets/svg/shopping-cart.svg +0 -3
  430. package/dist/runtime/assets/svg/signal-slash.svg +0 -3
  431. package/dist/runtime/assets/svg/signal.svg +0 -3
  432. package/dist/runtime/assets/svg/slash.svg +0 -3
  433. package/dist/runtime/assets/svg/sparkles.svg +0 -3
  434. package/dist/runtime/assets/svg/speaker-wave.svg +0 -3
  435. package/dist/runtime/assets/svg/speaker-x-mark.svg +0 -3
  436. package/dist/runtime/assets/svg/square-2-stack.svg +0 -3
  437. package/dist/runtime/assets/svg/square-3-stack-3d.svg +0 -3
  438. package/dist/runtime/assets/svg/squares-2x2.svg +0 -3
  439. package/dist/runtime/assets/svg/squares-plus.svg +0 -3
  440. package/dist/runtime/assets/svg/star.svg +0 -3
  441. package/dist/runtime/assets/svg/stop-circle.svg +0 -4
  442. package/dist/runtime/assets/svg/stop.svg +0 -3
  443. package/dist/runtime/assets/svg/strikethrough.svg +0 -3
  444. package/dist/runtime/assets/svg/sun.svg +0 -3
  445. package/dist/runtime/assets/svg/swatch.svg +0 -3
  446. package/dist/runtime/assets/svg/table-cells.svg +0 -3
  447. package/dist/runtime/assets/svg/tag.svg +0 -4
  448. package/dist/runtime/assets/svg/ticket.svg +0 -3
  449. package/dist/runtime/assets/svg/trash.svg +0 -3
  450. package/dist/runtime/assets/svg/trophy.svg +0 -3
  451. package/dist/runtime/assets/svg/truck.svg +0 -3
  452. package/dist/runtime/assets/svg/tv.svg +0 -3
  453. package/dist/runtime/assets/svg/underline.svg +0 -3
  454. package/dist/runtime/assets/svg/user-circle.svg +0 -3
  455. package/dist/runtime/assets/svg/user-group.svg +0 -3
  456. package/dist/runtime/assets/svg/user-minus.svg +0 -3
  457. package/dist/runtime/assets/svg/user-plus.svg +0 -3
  458. package/dist/runtime/assets/svg/user.svg +0 -3
  459. package/dist/runtime/assets/svg/users.svg +0 -3
  460. package/dist/runtime/assets/svg/variable.svg +0 -3
  461. package/dist/runtime/assets/svg/video-camera-slash.svg +0 -3
  462. package/dist/runtime/assets/svg/video-camera.svg +0 -3
  463. package/dist/runtime/assets/svg/view-columns.svg +0 -3
  464. package/dist/runtime/assets/svg/viewfinder-circle.svg +0 -3
  465. package/dist/runtime/assets/svg/wallet.svg +0 -3
  466. package/dist/runtime/assets/svg/wifi.svg +0 -3
  467. package/dist/runtime/assets/svg/window.svg +0 -3
  468. package/dist/runtime/assets/svg/wrench-screwdriver.svg +0 -3
  469. package/dist/runtime/assets/svg/wrench.svg +0 -4
  470. package/dist/runtime/assets/svg/x-circle.svg +0 -3
  471. package/dist/runtime/assets/svg/x-mark.svg +0 -3
@@ -1,33 +1,32 @@
1
1
  <template>
2
- <span
3
- v-if="cmsBrand.logo.kind === 'svg'"
4
- class="cms-brand-logo"
5
- :class="{ 'is-lg': size === 'lg' }"
6
- aria-hidden="true"
7
- v-html="cmsBrand.logo.markup"
8
- />
9
- <img
10
- v-else-if="cmsBrand.logo.kind === 'image'"
11
- class="cms-brand-logo"
12
- :class="{ 'is-lg': size === 'lg' }"
13
- :src="cmsBrand.logo.src"
14
- :alt="cmsBrand.title"
15
- />
16
- <span v-else class="cms-brand-mark" :class="{ 'is-lg': size === 'lg' }" aria-hidden="true">
17
- <svg viewBox="0 0 16 16" fill="none">
18
- <path
19
- d="M4.5 5.5h7M4.5 8h7M4.5 10.5h4"
20
- stroke="currentColor"
21
- stroke-width="1.5"
22
- stroke-linecap="round"
23
- />
24
- </svg>
25
- </span>
2
+ <KBrand
3
+ :name="cmsBrand.title"
4
+ :subtitle="subtitle"
5
+ :size="size"
6
+ :logo="logo"
7
+ :hide-text="hideText"
8
+ show-name
9
+ >
10
+ <template #mark>
11
+ <svg class="cms-brand-glyph" viewBox="0 0 16 16" fill="none">
12
+ <path
13
+ d="M4.5 5.5h7M4.5 8h7M4.5 10.5h4"
14
+ stroke="currentColor"
15
+ stroke-width="1.5"
16
+ stroke-linecap="round"
17
+ />
18
+ </svg>
19
+ </template>
20
+ </KBrand>
26
21
  </template>
27
22
 
28
23
  <script setup>
24
+ import { Brand as KBrand } from "@xleddyl/443-components-vue";
29
25
  import { cmsBrand } from "#cms-brand";
30
26
  defineProps({
31
- size: { type: String, required: false }
27
+ size: { type: String, required: false, default: "md" },
28
+ subtitle: { type: String, required: false },
29
+ hideText: { type: Boolean, required: false }
32
30
  });
31
+ const logo = cmsBrand.logo.kind === "svg" ? cmsBrand.logo.markup : cmsBrand.logo.kind === "image" ? cmsBrand.logo.src : void 0;
33
32
  </script>
@@ -1,5 +1,7 @@
1
1
  type __VLS_Props = {
2
- size?: 'md' | 'lg';
2
+ size?: 'sm' | 'md' | 'lg';
3
+ subtitle?: string;
4
+ hideText?: boolean;
3
5
  };
4
6
  declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
5
7
  declare const _default: typeof __VLS_export;
@@ -1,11 +1,11 @@
1
+ import type { CmsConfirmGroup } from '../../composables/cms-confirm.js';
1
2
  type __VLS_Props = {
2
- checked?: boolean;
3
- indeterminate?: boolean;
3
+ groups: CmsConfirmGroup[];
4
4
  };
5
5
  declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
6
- toggle: () => any;
6
+ close: () => any;
7
7
  }, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
8
- onToggle?: (() => any) | undefined;
8
+ onClose?: (() => any) | undefined;
9
9
  }>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
10
10
  declare const _default: typeof __VLS_export;
11
11
  export default _default;
@@ -0,0 +1,22 @@
1
+ <template>
2
+ <div class="cms-confirm-groups">
3
+ <section v-for="group in groups" :key="group.title" class="cms-confirm-group">
4
+ <h3 class="cms-confirm-group-title" :title="group.title">{{ group.title }}</h3>
5
+ <ul class="cms-confirm-list">
6
+ <li v-for="link in group.links" :key="link.to + link.meta">
7
+ <NuxtLink :to="link.to" class="cms-confirm-link" @click="emit('close')">
8
+ <span class="cms-confirm-link-title">{{ link.title }}</span>
9
+ <span class="cms-confirm-link-meta">{{ link.meta }}</span>
10
+ </NuxtLink>
11
+ </li>
12
+ </ul>
13
+ </section>
14
+ </div>
15
+ </template>
16
+
17
+ <script setup>
18
+ defineProps({
19
+ groups: { type: Array, required: true }
20
+ });
21
+ const emit = defineEmits(["close"]);
22
+ </script>
@@ -1,11 +1,11 @@
1
+ import type { CmsConfirmGroup } from '../../composables/cms-confirm.js';
1
2
  type __VLS_Props = {
2
- checked?: boolean;
3
- indeterminate?: boolean;
3
+ groups: CmsConfirmGroup[];
4
4
  };
5
5
  declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
6
- toggle: () => any;
6
+ close: () => any;
7
7
  }, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
8
- onToggle?: (() => any) | undefined;
8
+ onClose?: (() => any) | undefined;
9
9
  }>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
10
10
  declare const _default: typeof __VLS_export;
11
11
  export default _default;
@@ -10,15 +10,15 @@ type __VLS_ModelProps = {
10
10
  };
11
11
  type __VLS_PublicProps = __VLS_Props & __VLS_ModelProps;
12
12
  declare const __VLS_export: import("vue").DefineComponent<__VLS_PublicProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
13
+ "update:open": (value: boolean) => any;
13
14
  saved: () => any;
14
15
  deleted: () => any;
15
16
  duplicate: (values: Record<string, unknown>) => any;
16
- "update:open": (value: boolean) => any;
17
17
  }, string, import("vue").PublicProps, Readonly<__VLS_PublicProps> & Readonly<{
18
+ "onUpdate:open"?: ((value: boolean) => any) | undefined;
18
19
  onSaved?: (() => any) | undefined;
19
20
  onDeleted?: (() => any) | undefined;
20
21
  onDuplicate?: ((values: Record<string, unknown>) => any) | undefined;
21
- "onUpdate:open"?: ((value: boolean) => any) | undefined;
22
22
  }>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
23
23
  declare const _default: typeof __VLS_export;
24
24
  export default _default;
@@ -1,10 +1,17 @@
1
1
  <template>
2
- <CmsDrawer v-model:open="open" :title="title" @close="requestClose">
3
- <template v-if="drafts && !loading" #badge>
4
- <CmsStatusBadge :published="published" />
2
+ <KDrawer v-model:open="open" :title="title" size="lg" :before-close="confirmClose">
3
+ <template v-if="drafts && !loading" #title-trailing>
4
+ <KBadge
5
+ dot
6
+ :tone="published ? 'success' : 'neutral'"
7
+ :variant="published ? 'soft' : 'outline'"
8
+ :label="published ? 'Published' : 'Draft'"
9
+ />
5
10
  </template>
6
11
 
7
- <CmsSpinner v-if="loading" />
12
+ <KStack v-if="loading" align="center" justify="center" class="cms-drawer-loading">
13
+ <KSpinner size="lg" label="Loading" />
14
+ </KStack>
8
15
 
9
16
  <CmsEntryForm
10
17
  v-else
@@ -21,57 +28,66 @@
21
28
  />
22
29
 
23
30
  <template #footer>
24
- <div v-if="!isNew" class="cms-actions">
25
- <CmsButton
26
- label="Delete"
27
- icon="trash"
28
- variant="ghost"
29
- color="error"
30
- :disabled="saving || loading"
31
- @click="remove"
32
- />
33
- <CmsButton
34
- label="Duplicate"
35
- icon="document-duplicate"
36
- variant="ghost"
37
- color="neutral"
38
- :disabled="saving || loading"
39
- @click="duplicate"
40
- />
41
- </div>
42
- <span v-else />
43
- <div class="cms-actions">
44
- <CmsButton
45
- v-if="drafts"
46
- type="submit"
47
- :form="FORM_ID"
48
- :label="published ? 'Make draft' : 'Publish'"
49
- variant="soft"
50
- :loading="saving"
51
- :disabled="loading"
52
- @click="togglePublished"
53
- />
54
- <CmsButton
55
- type="submit"
56
- :form="FORM_ID"
57
- label="Save"
58
- :loading="saving"
59
- :disabled="loading"
60
- />
61
- </div>
31
+ <KStack direction="row" justify="between" gap="sm" wrap class="cms-drawer-actions">
32
+ <KStack v-if="!isNew" direction="row" gap="sm">
33
+ <KButton
34
+ label="Delete"
35
+ icon="trash"
36
+ variant="ghost"
37
+ tone="danger"
38
+ :disabled="saving || loading"
39
+ @click="remove"
40
+ />
41
+ <KButton
42
+ label="Duplicate"
43
+ :icon="cmsIcon('document-duplicate')"
44
+ variant="ghost"
45
+ tone="neutral"
46
+ :disabled="saving || loading"
47
+ @click="duplicate"
48
+ />
49
+ </KStack>
50
+ <span v-else />
51
+ <KStack direction="row" gap="sm">
52
+ <KButton
53
+ v-if="drafts"
54
+ type="submit"
55
+ :form="FORM_ID"
56
+ :label="published ? 'Make draft' : 'Publish'"
57
+ variant="soft"
58
+ :loading="saving"
59
+ :disabled="loading"
60
+ @click="togglePublished"
61
+ />
62
+ <KButton
63
+ type="submit"
64
+ :form="FORM_ID"
65
+ label="Save"
66
+ :loading="saving"
67
+ :disabled="loading"
68
+ />
69
+ </KStack>
70
+ </KStack>
62
71
  </template>
63
- </CmsDrawer>
72
+ </KDrawer>
64
73
  </template>
65
74
 
66
75
  <script setup>
67
76
  import { isTranslatableField, selectDisplayValue } from "#nuxt-cms";
77
+ import {
78
+ Badge as KBadge,
79
+ Button as KButton,
80
+ Drawer as KDrawer,
81
+ Spinner as KSpinner,
82
+ Stack as KStack
83
+ } from "@xleddyl/443-components-vue";
68
84
  import { computed, ref, watch } from "#imports";
69
85
  import { duplicateEntryValues } from "../../../shared/duplicate";
70
86
  import { useCmsConfirm } from "../../composables/cms-confirm";
71
87
  import { useCmsRuntime } from "../../composables/cms-runtime";
72
88
  import { useCmsToast } from "../../composables/cms-toast";
73
89
  import { cmsApi } from "../../utils/api";
74
- import { errorMessage } from "../../utils/ui";
90
+ import { cmsIcon, errorMessage } from "../../utils/ui";
75
91
  const FORM_ID = "cms-entry-drawer-form";
76
92
  const props = defineProps({
77
93
  collection: { type: String, required: true },
@@ -169,9 +185,8 @@ watch(
169
185
  },
170
186
  { immediate: true }
171
187
  );
172
- async function requestClose() {
173
- if (dirty.value && !await confirmAction("You have unsaved changes. Close anyway?")) return;
174
- open.value = false;
188
+ function confirmClose() {
189
+ return !dirty.value || confirmAction("You have unsaved changes. Close anyway?");
175
190
  }
176
191
  async function save() {
177
192
  if (saving.value) return;
@@ -10,15 +10,15 @@ type __VLS_ModelProps = {
10
10
  };
11
11
  type __VLS_PublicProps = __VLS_Props & __VLS_ModelProps;
12
12
  declare const __VLS_export: import("vue").DefineComponent<__VLS_PublicProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
13
+ "update:open": (value: boolean) => any;
13
14
  saved: () => any;
14
15
  deleted: () => any;
15
16
  duplicate: (values: Record<string, unknown>) => any;
16
- "update:open": (value: boolean) => any;
17
17
  }, string, import("vue").PublicProps, Readonly<__VLS_PublicProps> & Readonly<{
18
+ "onUpdate:open"?: ((value: boolean) => any) | undefined;
18
19
  onSaved?: (() => any) | undefined;
19
20
  onDeleted?: (() => any) | undefined;
20
21
  onDuplicate?: ((values: Record<string, unknown>) => any) | undefined;
21
- "onUpdate:open"?: ((value: boolean) => any) | undefined;
22
22
  }>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
23
23
  declare const _default: typeof __VLS_export;
24
24
  export default _default;
@@ -1,106 +1,71 @@
1
1
  <template>
2
- <CmsForm
3
- :id="formId"
4
- ref="form"
5
- :state="state"
6
- :schema="schema"
7
- :warnings="warnings"
8
- @submit="emit('submit')"
9
- @error="onError"
10
- >
11
- <div v-if="tabList.length > 1" class="cms-tabs" role="tablist">
12
- <button
13
- v-for="tab in tabList"
14
- :key="tab.id"
15
- type="button"
16
- role="tab"
17
- class="cms-tab"
18
- :class="{ 'is-active': tab.id === activeTab }"
19
- :aria-selected="tab.id === activeTab"
20
- @click="activeTab = tab.id"
21
- >
22
- {{ tab.label }}
23
- </button>
24
- </div>
25
- <div class="cms-form-layout">
26
- <div class="cms-form-main">
27
- <component
28
- :is="section.title ? 'section' : 'div'"
29
- v-for="section in sections"
30
- :key="section.id"
31
- class="cms-form-section"
32
- :class="{ 'is-titled': !!section.title, 'is-collapsed': isCollapsed(section) }"
33
- >
34
- <button
35
- v-if="section.title"
36
- type="button"
37
- class="cms-form-section-header"
38
- :aria-expanded="!isCollapsed(section)"
39
- @click="toggleSection(section.id)"
2
+ <KForm :id="formId" ref="formRef" :form="form" :focus-on-error="false" class="cms-form">
3
+ <component :is="tabbed ? KTabs : 'div'" v-bind="tabsBinding" class="cms-form-body">
4
+ <template #[panelSlot]>
5
+ <div class="cms-form-main">
6
+ <component
7
+ :is="section.title ? KAccordion : 'div'"
8
+ v-for="section in sections"
9
+ :key="section.id"
10
+ v-bind="sectionBinding(section)"
11
+ class="cms-form-section"
40
12
  >
41
- <span class="cms-form-section-text">
42
- <span class="cms-form-section-title">{{ section.title }}</span>
43
- <span v-if="section.description" class="cms-form-section-description">
44
- {{ section.description }}
45
- </span>
46
- </span>
47
- <CmsIcon name="chevron-down" class="cms-form-section-chevron size-4" />
48
- </button>
49
- <div v-show="!isCollapsed(section)" class="cms-form-rows">
50
- <div
51
- v-for="row in section.rows"
52
- :key="row.join('|')"
53
- class="cms-form-row"
54
- :style="{ '--cms-row-cols': row.length }"
55
- >
56
- <CmsFormField
57
- v-for="key in row"
58
- :key="key"
59
- :label="fields[key].label"
60
- :description="fields[key].description"
61
- :icon="fieldIcon(fields[key])"
62
- :name="key"
63
- :required="fields[key].required"
64
- :data-cms-field="key"
65
- :class="{ 'is-search-focus': highlighted === key }"
13
+ <div class="cms-form-rows" :class="{ 'cms-form-section-body': section.title }">
14
+ <div
15
+ v-for="row in section.rows"
16
+ :key="row.join('|')"
17
+ class="cms-form-row"
18
+ :style="{ '--cms-row-cols': row.length }"
66
19
  >
67
- <template
68
- v-if="hasLocaleSwitch(fields[key]) && i18n.locales.length > 1"
69
- #label-actions
20
+ <KFormField
21
+ v-for="key in row"
22
+ :key="key"
23
+ :name="key"
24
+ :label="fields[key].label"
25
+ :description="fields[key].description"
26
+ :icon="cmsIcon(fieldIcon(fields[key]))"
27
+ :required="fields[key].required"
28
+ :data-cms-field="key"
29
+ :class="{ 'cms-search-focus': highlighted === key }"
70
30
  >
71
- <CmsLocaleSwitch
72
- :model-value="localeFor(key)"
73
- :value="
31
+ <template
32
+ v-if="hasLocaleSwitch(fields[key]) && i18n.locales.length > 1"
33
+ #label-actions
34
+ >
35
+ <CmsLocaleSwitch
36
+ :model-value="localeFor(key)"
37
+ :value="
74
38
  isTranslatableField(fields[key]) ? state[key] : null
75
39
  "
76
- @update:model-value="(locale) => setLocale(key, locale)"
40
+ @update:model-value="(locale) => setLocale(key, locale)"
41
+ />
42
+ </template>
43
+ <CmsFieldInput
44
+ v-model="state[key]"
45
+ :field="fields[key]"
46
+ :locale="localeFor(key)"
47
+ :slug-source="slugSource(fields[key])"
48
+ :entry-name="entryName"
49
+ :field-key="key"
77
50
  />
78
- </template>
79
- <CmsFieldInput
80
- v-model="state[key]"
81
- :field="fields[key]"
82
- :locale="localeFor(key)"
83
- :slug-source="slugSource(fields[key])"
84
- :entry-name="entryName"
85
- :field-key="key"
86
- />
87
- </CmsFormField>
51
+ </KFormField>
52
+ </div>
88
53
  </div>
89
- </div>
90
- </component>
91
- </div>
92
- </div>
93
- <div v-if="footer" class="cms-form-actions">
94
- <CmsButton type="submit" label="Save" :loading="loading" />
95
- <CmsButton
54
+ </component>
55
+ </div>
56
+ </template>
57
+ </component>
58
+ <KStack v-if="footer" direction="row" justify="end" gap="sm">
59
+ <KButton type="submit" label="Save" :loading="loading" />
60
+ <KButton
96
61
  v-if="drafts"
97
62
  type="submit"
98
63
  :label="published ? 'Make draft' : 'Publish'"
99
64
  :loading="loading"
100
65
  @click="togglePublished"
101
66
  />
102
- </div>
103
- </CmsForm>
67
+ </KStack>
68
+ </KForm>
104
69
  </template>
105
70
 
106
71
  <script setup>
@@ -112,13 +77,22 @@ import {
112
77
  resolveFormLayout,
113
78
  slugSourceValue
114
79
  } from "#nuxt-cms";
80
+ import {
81
+ Accordion as KAccordion,
82
+ Button as KButton,
83
+ Form as KForm,
84
+ FormField as KFormField,
85
+ Stack as KStack,
86
+ Tabs as KTabs,
87
+ useForm
88
+ } from "@xleddyl/443-components-vue";
115
89
  import { computed, nextTick, onMounted, ref, watch } from "#imports";
116
90
  import cmsConfig from "#cms-config";
117
91
  import { buildEntrySchema, entryValidationWarnings } from "../../../shared/validation";
118
92
  import { useCmsFieldFocus } from "../../composables/cms-field-focus";
119
93
  import { useCmsRuntime } from "../../composables/cms-runtime";
120
94
  import { entryFormLayout, useCmsSettingsState } from "../../composables/cms-settings";
121
- import { fieldIcon } from "../../utils/ui";
95
+ import { cmsIcon, fieldIcon } from "../../utils/ui";
122
96
  const props = defineProps({
123
97
  fields: { type: Object, required: true },
124
98
  tabs: { type: Array, required: false },
@@ -139,6 +113,18 @@ const activeTab = ref(tabList.value[0]?.id ?? "");
139
113
  watch(tabList, (tabs) => {
140
114
  if (!tabs.some((tab) => tab.id === activeTab.value)) activeTab.value = tabs[0]?.id ?? "";
141
115
  });
116
+ const tabbed = computed(() => tabList.value.length > 1);
117
+ const panelSlot = computed(() => tabbed.value ? "panel" : "default");
118
+ const tabsBinding = computed(
119
+ () => tabbed.value ? {
120
+ items: tabList.value.map((tab) => ({ value: tab.id, label: tab.label })),
121
+ modelValue: activeTab.value,
122
+ panelFocusable: false,
123
+ "onUpdate:modelValue": (value) => {
124
+ activeTab.value = String(value ?? "");
125
+ }
126
+ } : {}
127
+ );
142
128
  const settings = useCmsSettingsState();
143
129
  const layout = computed(
144
130
  () => props.entryName ? entryFormLayout(props.entryName, settings.value, props.fields) : resolveFormLayout(props.fields, void 0)
@@ -165,6 +151,16 @@ function toggleSection(id) {
165
151
  const section = sections.value.find((s) => s.id === id);
166
152
  if (section) toggled.value = { ...toggled.value, [id]: !isCollapsed(section) };
167
153
  }
154
+ function sectionBinding(section) {
155
+ if (!section.title) return {};
156
+ return {
157
+ items: [{ value: section.id, title: section.title, description: section.description }],
158
+ variant: "outline",
159
+ contentVariant: "neutral",
160
+ modelValue: isCollapsed(section) ? null : section.id,
161
+ "onUpdate:modelValue": () => toggleSection(section.id)
162
+ };
163
+ }
168
164
  function revealField(key) {
169
165
  for (const section of sections.value) {
170
166
  if (section.rows.some((row) => row.includes(key)) && isCollapsed(section)) {
@@ -172,9 +168,11 @@ function revealField(key) {
172
168
  }
173
169
  }
174
170
  }
175
- function onError() {
176
- const issue = schema.value.safeParse(state.value).error?.issues[0];
177
- const key = issue ? String(issue.path[0] ?? "") : "";
171
+ function firstErrorKey(errors) {
172
+ const keys = Object.keys(errors).filter((key) => errors[key]);
173
+ return Object.keys(props.fields).find((key) => keys.includes(key)) ?? keys[0]?.split(".")[0] ?? "";
174
+ }
175
+ function onError(key) {
178
176
  const field = key ? props.fields[key] : void 0;
179
177
  if (field && tabList.value.length) {
180
178
  const tab = fieldTab(field, tabList.value);
@@ -213,6 +211,13 @@ function warnings(values) {
213
211
  props.path
214
212
  );
215
213
  }
214
+ const form = useForm({
215
+ values: state,
216
+ validator: schema,
217
+ warnings,
218
+ onSubmit: () => emit("submit"),
219
+ onInvalid: (errors) => onError(firstErrorKey(errors))
220
+ });
216
221
  const published = computed({
217
222
  get: () => state.value.status === "published",
218
223
  set: (value) => {
@@ -222,7 +227,7 @@ const published = computed({
222
227
  function togglePublished() {
223
228
  published.value = !published.value;
224
229
  }
225
- const form = ref(null);
230
+ const formRef = ref(null);
226
231
  const { highlighted, reveal } = useCmsFieldFocus();
227
232
  function applyFocus(focus) {
228
233
  if (focus.tab && tabList.value.some((tab2) => tab2.id === focus.tab)) activeTab.value = focus.tab;
@@ -236,7 +241,7 @@ function applyFocus(focus) {
236
241
  }
237
242
  void nextTick(() => {
238
243
  revealField(key);
239
- reveal(() => form.value?.$el, key);
244
+ reveal(() => formRef.value?.$el, key);
240
245
  });
241
246
  }
242
247
  onMounted(() => {