@xleddyl/nuxt-cms 0.4.4 → 0.5.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 (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
package/README.md CHANGED
@@ -11,7 +11,7 @@ nuxt-cms is a Nuxt module that adds a CMS to your Nuxt app. The CMS runs in the
11
11
  ## Features
12
12
 
13
13
  - **Content types in code.** You declare collections, singles, pages and content types (news, blog) in `cms.config.ts`. The module generates the database schema, the migrations and the TypeScript types.
14
- - **Admin panel at `/cms`.** Editors manage entries, drafts and media, filter and duplicate entries, and import or export a collection as JSON or CSV. The panel has a light and a dark theme, a global search (⌘K) and admin accounts.
14
+ - **Admin panel at `/cms`.** Editors manage entries, drafts and media, filter and duplicate entries, and import or export a collection as JSON or CSV. The panel has a light and a dark theme, a global search (⌘K) and admin accounts. It is built on [@xleddyl/443-components-vue](https://www.npmjs.com/package/@xleddyl/443-components-vue), installed for you; the module adds no Tailwind or other build plugins to your app.
15
15
  - **Visual editor.** Editors build content from your own site components, on a live preview of the site.
16
16
  - **GraphQL API.** A read-only, typed API with filters, sorting and pagination. Composables such as `useCmsCollection` and `useCmsContent` query it for you.
17
17
  - **Your database.** SQLite (default), Postgres, libSQL/Turso or Cloudflare D1.
package/dist/module.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@xleddyl/nuxt-cms",
3
3
  "configKey": "cms",
4
- "version": "0.4.4",
4
+ "version": "0.5.0",
5
5
  "builder": {
6
6
  "@nuxt/module-builder": "1.0.2",
7
7
  "unbuild": "unknown"
package/dist/module.mjs CHANGED
@@ -3,9 +3,7 @@ import { existsSync, readFileSync } from 'node:fs';
3
3
  import { createRequire } from 'node:module';
4
4
  import { extname, resolve, isAbsolute, join, relative, dirname } from 'node:path';
5
5
  import { fileURLToPath } from 'node:url';
6
- import { defineNuxtModule, createResolver, useLogger, addImports, addTemplate, addServerPlugin, addTypeTemplate, addVitePlugin, addComponentsDir, addRouteMiddleware, extendPages, addServerHandler, resolvePath, addComponent } from '@nuxt/kit';
7
- import tailwindcss from '@tailwindcss/vite';
8
- import svgLoader from 'vite-svg-loader';
6
+ import { defineNuxtModule, createResolver, useLogger, addImports, addTemplate, addServerPlugin, addTypeTemplate, addComponentsDir, addRouteMiddleware, extendPages, addServerHandler, resolvePath, addComponent } from '@nuxt/kit';
9
7
  import { introspectionFromSchema, buildSchema } from 'graphql';
10
8
  import { minifyIntrospection, outputIntrospectionFile } from 'gql.tada/internal';
11
9
  import { createJiti } from 'jiti';
@@ -1527,7 +1525,23 @@ const module$1 = defineNuxtModule({
1527
1525
  moduleDependencies: (nuxt) => resolveCmsEnabled(
1528
1526
  nuxt.options.cms?.enabled,
1529
1527
  process.env[CMS_ENABLED_ENV]
1530
- ) ? { "nuxt-auth-utils": {} } : {},
1528
+ ) ? {
1529
+ "nuxt-auth-utils": {},
1530
+ "@xleddyl/443-components-vue/nuxt": {
1531
+ defaults: {
1532
+ editor: true,
1533
+ icons: {
1534
+ collections: [
1535
+ {
1536
+ prefix: "heroicons",
1537
+ from: resolveImport("@iconify-json/heroicons/icons.json"),
1538
+ exclude: ["*-solid", "*-20-*", "*-16-*"]
1539
+ }
1540
+ ]
1541
+ }
1542
+ }
1543
+ }
1544
+ } : {},
1531
1545
  defaults: {
1532
1546
  configPath: "cms.config",
1533
1547
  admin: {
@@ -1885,12 +1899,13 @@ const module$1 = defineNuxtModule({
1885
1899
  getContents: () => renderBrandFile(resolveBrand(resolved.admin, brandPaths).brand)
1886
1900
  });
1887
1901
  nuxt.options.alias["#cms-brand"] = brandTemplate.dst;
1888
- addVitePlugin(tailwindcss());
1889
- addVitePlugin(svgLoader({ defaultImport: "url", svgoConfig: { plugins: ["prefixIds"] } }));
1890
1902
  nuxt.options.css.push(
1891
1903
  resolveImport("@fontsource-variable/geist/index.css"),
1892
1904
  resolveImport("@fontsource-variable/geist-mono/index.css"),
1893
- resolver.resolve("./runtime/assets/main.css")
1905
+ resolver.resolve("./runtime/assets/main.css"),
1906
+ resolver.resolve("./runtime/assets/shell.css"),
1907
+ resolver.resolve("./runtime/assets/media.css"),
1908
+ resolver.resolve("./runtime/assets/editor.css")
1894
1909
  );
1895
1910
  nuxt.hook("app:templates", (app) => {
1896
1911
  app.layouts["cms-admin"] = {
@@ -1,57 +1,42 @@
1
1
  <template>
2
- <ol class="cms-outline" aria-label="Blocks">
3
- <li
4
- v-for="(item, index) in items"
5
- :key="uidFor(item)"
6
- class="cms-outline-row"
7
- :class="{
8
- 'is-selected': index === selected,
9
- 'is-hidden': isHiddenBlock(item),
10
- 'is-dragging': dragIndex === index,
11
- 'is-drop-target': dropIndex === index && dragIndex !== index
12
- }"
13
- draggable="true"
14
- @dragstart="onDragStart(index, $event)"
15
- @dragover.prevent="dropIndex = index"
16
- @dragleave="dropIndex === index && (dropIndex = null)"
17
- @drop.prevent="onDrop(index)"
18
- @dragend="onDragEnd"
19
- >
20
- <span class="cms-outline-grip" aria-hidden="true">
21
- <CmsIcon name="bars-2" class="size-3.5" />
22
- </span>
23
- <button
24
- type="button"
25
- class="cms-outline-main"
26
- :aria-current="index === selected ? 'true' : void 0"
27
- :aria-label="`${labelOf(item)}, ${index + 1} of ${items.length}${isHiddenBlock(item) ? ', hidden' : ''}. Alt and the arrow keys move it`"
28
- aria-keyshortcuts="Alt+ArrowUp Alt+ArrowDown"
29
- @click="emit('select', index)"
30
- @keydown.alt.up.prevent="index > 0 && emit('move', index, index - 1)"
31
- @keydown.alt.down.prevent="index < items.length - 1 && emit('move', index, index + 1)"
32
- >
33
- <CmsIcon :name="blockOf(item)?.icon ?? 'rectangle-stack'" class="size-4 shrink-0" />
34
- <span class="cms-outline-text">
35
- <span class="cms-outline-label">{{ labelOf(item) }}</span>
36
- <span v-if="summaryOf(item)" class="cms-outline-summary">
37
- {{ summaryOf(item) }}
38
- </span>
2
+ <KTree
3
+ :nodes="nodes"
4
+ :selected="selectedId"
5
+ label="Blocks"
6
+ size="sm"
7
+ :bordered="false"
8
+ reorderable
9
+ @select="onSelect"
10
+ @move="onMove"
11
+ >
12
+ <template #label="{ node }">
13
+ <span class="cms-outline-text" :class="{ 'is-hidden': hiddenIds.has(node.id) }">
14
+ <span class="cms-outline-label">{{ node.label }}</span>
15
+ <span v-if="node.description" class="cms-outline-summary">
16
+ {{ node.description }}
39
17
  </span>
40
- <CmsIcon
41
- v-if="isHiddenBlock(item)"
42
- name="eye-slash"
43
- class="cms-outline-hidden size-4 shrink-0"
44
- />
45
- </button>
46
- </li>
47
- </ol>
18
+ </span>
19
+ </template>
20
+ <template #meta="{ node }">
21
+ <template v-if="hiddenIds.has(node.id)">
22
+ <KIcon name="eye-slash" class="cms-outline-hidden" />
23
+ <KVisuallyHidden>Hidden</KVisuallyHidden>
24
+ </template>
25
+ </template>
26
+ </KTree>
48
27
  </template>
49
28
 
50
29
  <script setup>
51
30
  import { isHiddenBlock } from "#nuxt-cms";
52
- import { ref } from "#imports";
31
+ import {
32
+ Icon as KIcon,
33
+ Tree as KTree,
34
+ VisuallyHidden as KVisuallyHidden
35
+ } from "@xleddyl/443-components-vue";
36
+ import { computed } from "#imports";
53
37
  import { blockSummary } from "../../../shared/preview";
54
38
  import { useCmsRuntime } from "../../composables/cms-runtime";
39
+ import { cmsIcon } from "../../utils/ui";
55
40
  const props = defineProps({
56
41
  items: { type: Array, required: true },
57
42
  field: { type: Object, required: true },
@@ -73,27 +58,31 @@ function uidFor(item) {
73
58
  function blockOf(item) {
74
59
  return props.field.blocks?.[String(item.type)];
75
60
  }
76
- function labelOf(item) {
77
- return blockOf(item)?.label ?? String(item.type);
78
- }
79
- function summaryOf(item) {
80
- return blockSummary(blockOf(item), item, props.locale, i18n.defaultLocale, 60);
81
- }
82
- const dragIndex = ref(null);
83
- const dropIndex = ref(null);
84
- function onDragStart(index, event) {
85
- dragIndex.value = index;
86
- if (event.dataTransfer) {
87
- event.dataTransfer.effectAllowed = "move";
88
- event.dataTransfer.setData("text/plain", String(index));
89
- }
90
- }
91
- function onDrop(index) {
92
- if (dragIndex.value !== null && dragIndex.value !== index) emit("move", dragIndex.value, index);
93
- onDragEnd();
61
+ const nodes = computed(
62
+ () => props.items.map((item) => {
63
+ const block = blockOf(item);
64
+ return {
65
+ id: uidFor(item),
66
+ label: block?.label ?? String(item.type),
67
+ description: blockSummary(block, item, props.locale, i18n.defaultLocale, 60) || void 0,
68
+ icon: cmsIcon(block?.icon ?? "rectangle-stack")
69
+ };
70
+ })
71
+ );
72
+ const hiddenIds = computed(
73
+ () => new Set(
74
+ props.items.filter((item) => isHiddenBlock(item)).map((item) => uidFor(item))
75
+ )
76
+ );
77
+ const selectedId = computed(() => {
78
+ const item = props.selected === null ? void 0 : props.items[props.selected];
79
+ return item ? uidFor(item) : null;
80
+ });
81
+ function onSelect(node) {
82
+ const index = nodes.value.findIndex((entry) => entry.id === node.id);
83
+ if (index !== -1) emit("select", index);
94
84
  }
95
- function onDragEnd() {
96
- dragIndex.value = null;
97
- dropIndex.value = null;
85
+ function onMove(move) {
86
+ emit("move", move.from.index, move.to.index);
98
87
  }
99
88
  </script>
@@ -8,7 +8,7 @@
8
8
  @click="emit('pick', String(type))"
9
9
  >
10
10
  <span class="cms-palette-icon">
11
- <CmsIcon :name="block.icon ?? 'rectangle-stack'" class="size-4" />
11
+ <KIcon :name="cmsIcon(block.icon ?? 'rectangle-stack')" />
12
12
  </span>
13
13
  <span class="cms-palette-text">
14
14
  <span class="cms-palette-label">{{ block.label }}</span>
@@ -21,6 +21,8 @@
21
21
  </template>
22
22
 
23
23
  <script setup>
24
+ import { Icon as KIcon } from "@xleddyl/443-components-vue";
25
+ import { cmsIcon } from "../../utils/ui";
24
26
  defineProps({
25
27
  blocks: { type: Object, required: true },
26
28
  label: { type: String, required: false, default: "Available blocks" }
@@ -1,10 +1,10 @@
1
1
  <template>
2
- <div class="flex flex-col gap-3">
2
+ <KStack gap="sm" class="cms-blocks-field">
3
3
  <div class="cms-blocks-grid">
4
4
  <div
5
5
  v-for="(item, index) in items"
6
6
  :key="uidFor(item)"
7
- class="cms-card cms-block-tile"
7
+ class="cms-block-tile"
8
8
  :class="{
9
9
  'is-muted': isHidden(item),
10
10
  'is-dragging': dragIndex === index,
@@ -45,9 +45,9 @@
45
45
  <span v-else-if="summaryOf(item)" class="cms-block-summary">
46
46
  {{ summaryOf(item) }}
47
47
  </span>
48
- <CmsIcon v-else :name="iconOf(item)" class="size-7" />
48
+ <KIcon v-else :name="cmsIcon(iconOf(item))" class="cms-block-icon" />
49
49
 
50
- <CmsIcon v-if="isHidden(item)" name="eye-slash" class="cms-block-hidden size-4" />
50
+ <KIcon v-if="isHidden(item)" name="eye-slash" class="cms-block-hidden" />
51
51
 
52
52
  <template v-if="mediaOnly">
53
53
  <span
@@ -55,7 +55,7 @@
55
55
  class="cms-block-missing"
56
56
  title="Not found in the media library"
57
57
  >
58
- <CmsIcon name="exclamation-triangle" class="size-3.5" />
58
+ <KIcon name="exclamation-triangle" />
59
59
  </span>
60
60
  <button
61
61
  type="button"
@@ -64,7 +64,7 @@
64
64
  title="Remove"
65
65
  @click.stop="remove(index)"
66
66
  >
67
- <CmsIcon name="x-mark" class="size-3.5" />
67
+ <KIcon name="x-mark" />
68
68
  </button>
69
69
  </template>
70
70
  </component>
@@ -77,35 +77,33 @@
77
77
  @keydown.left.prevent="index > 0 && move(index, -1)"
78
78
  @keydown.right.prevent="index < items.length - 1 && move(index, 1)"
79
79
  >
80
- <CmsIcon name="bars-2" class="size-4" />
80
+ <KIcon :name="cmsIcon('bars-2')" />
81
81
  </button>
82
82
  <span class="cms-block-bar-name" :title="barTitle(item)">{{ barLabel(item) }}</span>
83
83
  <span
84
84
  v-if="hasMissingMedia(item)"
85
- class="cms-media-missing-icon"
85
+ class="cms-block-missing-icon"
86
86
  title="Not found in the media library"
87
87
  >
88
- <CmsIcon name="exclamation-triangle" class="size-4" />
88
+ <KIcon name="exclamation-triangle" />
89
89
  </span>
90
- <div class="cms-block-bar-actions">
91
- <CmsButton
92
- icon="trash"
93
- size="xs"
94
- variant="ghost"
95
- color="error"
96
- aria-label="Remove block"
97
- @click="remove(index)"
98
- />
99
- </div>
90
+ <KButton
91
+ icon="trash"
92
+ size="xs"
93
+ variant="ghost"
94
+ tone="danger"
95
+ aria-label="Remove block"
96
+ @click="remove(index)"
97
+ />
100
98
  </div>
101
99
  </div>
102
100
 
103
- <CmsDropdownMenu v-if="canAdd && addItems.length > 1" :items="addItems">
101
+ <KDropdownMenu v-if="canAdd && addItems.length > 1" :items="addItems">
104
102
  <button type="button" class="cms-block-add">
105
- <CmsIcon name="plus" class="size-5" />
103
+ <KIcon name="plus" />
106
104
  <span>Add</span>
107
105
  </button>
108
- </CmsDropdownMenu>
106
+ </KDropdownMenu>
109
107
  <button
110
108
  v-else
111
109
  type="button"
@@ -114,132 +112,142 @@
114
112
  :title="canAdd ? void 0 : countHint"
115
113
  @click="addFirst"
116
114
  >
117
- <CmsIcon name="plus" class="size-5" />
115
+ <KIcon name="plus" />
118
116
  <span>{{ mediaOnly ? addMediaLabel : "Add" }}</span>
119
117
  </button>
120
118
  </div>
121
119
 
122
- <p v-if="countHint" class="cms-form-description">{{ countHint }}</p>
120
+ <p v-if="countHint" class="cms-field-hint">{{ countHint }}</p>
123
121
 
124
- <CmsButton
122
+ <div v-if="visual">
123
+ <KButton
124
+ label="Open visual editor"
125
+ :icon="cmsIcon('window')"
126
+ size="sm"
127
+ variant="soft"
128
+ tone="neutral"
129
+ @click="visualOpen = true"
130
+ />
131
+ </div>
132
+
133
+ <KModal
125
134
  v-if="visual"
126
- class="self-start"
127
- label="Open visual editor"
128
- icon="window"
129
- size="sm"
130
- variant="soft"
131
- color="neutral"
132
- @click="visualOpen = true"
133
- />
135
+ v-model:open="visualOpen"
136
+ size="fullscreen"
137
+ flush
138
+ hide-close
139
+ class="cms-editor-modal"
140
+ aria-label="Visual editor"
141
+ >
142
+ <CmsVisualEditor
143
+ :state="{ [fieldKey]: model }"
144
+ :entry-name="entryName"
145
+ :field-key="fieldKey"
146
+ :fields="{ [fieldKey]: field }"
147
+ :title="field.label"
148
+ @update:state="onVisualUpdate"
149
+ >
150
+ <template #start>
151
+ <KButton
152
+ icon="arrow-left"
153
+ size="sm"
154
+ variant="ghost"
155
+ tone="neutral"
156
+ aria-label="Back to the form"
157
+ title="Back to the form"
158
+ @click="visualOpen = false"
159
+ />
160
+ </template>
161
+ <template #actions>
162
+ <KButton label="Done" size="sm" @click="visualOpen = false" />
163
+ </template>
164
+ </CmsVisualEditor>
165
+ </KModal>
134
166
 
135
- <Teleport to="body">
136
- <div v-if="visual && visualOpen" class="cms-scope cms-editor-overlay" :data-theme="theme">
137
- <CmsVisualEditor
138
- :state="{ [fieldKey]: model }"
139
- :entry-name="entryName"
140
- :field-key="fieldKey"
141
- :fields="{ [fieldKey]: field }"
142
- :title="field.label"
143
- @update:state="onVisualUpdate"
144
- >
145
- <template #start>
146
- <CmsButton
147
- icon="arrow-left"
148
- size="sm"
149
- variant="ghost"
150
- color="neutral"
151
- aria-label="Back to the form"
152
- title="Back to the form"
153
- @click="visualOpen = false"
154
- />
155
- </template>
156
- <template #actions>
157
- <CmsButton label="Done" size="sm" @click="visualOpen = false" />
158
- </template>
159
- </CmsVisualEditor>
160
- </div>
161
- </Teleport>
167
+ <KModal v-if="mediaOnly" v-model:open="pickerOpen" title="Media" size="lg">
168
+ <CmsMediaGallery
169
+ v-model:folder="pickerFolder"
170
+ selectable
171
+ :media-type="mediaOnly.field.mediaType"
172
+ :accept="mediaOnly.field.accept"
173
+ @select="addMedia"
174
+ />
175
+ </KModal>
162
176
 
163
- <CmsModal v-if="mediaOnly" v-model:open="pickerOpen" title="Media" size="lg">
164
- <template #body>
165
- <CmsMediaGallery
166
- v-model:folder="pickerFolder"
167
- selectable
168
- :media-type="mediaOnly.field.mediaType"
169
- :accept="mediaOnly.field.accept"
170
- @select="addMedia"
171
- />
172
- </template>
173
- </CmsModal>
177
+ <KModal v-model:open="editorOpen" :title="editorTitle">
178
+ <KStack gap="md">
179
+ <KFormField
180
+ v-for="(blockField, blockKey) in editorFields"
181
+ :key="blockKey"
182
+ :label="blockField.label"
183
+ :icon="cmsIcon(fieldIcon(blockField))"
184
+ :required="blockField.required"
185
+ >
186
+ <CmsFieldInput
187
+ :model-value="editorItem?.[blockKey]"
188
+ :field="blockField"
189
+ :locale="locale"
190
+ @update:model-value="(value) => updateEditorField(blockKey, value)"
191
+ />
192
+ </KFormField>
193
+ </KStack>
174
194
 
175
- <CmsModal v-model:open="editorOpen" :title="editorTitle">
176
- <template #body>
177
- <div class="flex flex-col gap-4">
178
- <CmsFormField
179
- v-for="(blockField, blockKey) in editorFields"
180
- :key="blockKey"
181
- :label="blockField.label"
182
- :icon="fieldIcon(blockField)"
183
- :required="blockField.required"
184
- >
185
- <CmsFieldInput
186
- :model-value="editorItem?.[blockKey]"
187
- :field="blockField"
188
- :locale="locale"
189
- @update:model-value="(value) => updateEditorField(blockKey, value)"
195
+ <template #footer>
196
+ <KStack
197
+ direction="row"
198
+ justify="between"
199
+ gap="sm"
200
+ wrap
201
+ class="cms-block-editor-actions"
202
+ >
203
+ <KStack direction="row" gap="sm" wrap>
204
+ <KButton
205
+ icon="chevron-left"
206
+ variant="soft"
207
+ tone="neutral"
208
+ aria-label="Move earlier"
209
+ :disabled="editorIndex === 0"
210
+ @click="moveCurrent(-1)"
190
211
  />
191
- </CmsFormField>
192
-
193
- <div class="cms-actions justify-between">
194
- <div class="cms-actions">
195
- <CmsButton
196
- icon="chevron-left"
197
- variant="soft"
198
- color="neutral"
199
- aria-label="Move earlier"
200
- :disabled="editorIndex === 0"
201
- @click="moveCurrent(-1)"
202
- />
203
- <CmsButton
204
- icon="chevron-right"
205
- variant="soft"
206
- color="neutral"
207
- aria-label="Move later"
208
- :disabled="editorIndex === items.length - 1"
209
- @click="moveCurrent(1)"
210
- />
211
- <CmsButton
212
- label="Duplicate"
213
- icon="document-duplicate"
214
- variant="soft"
215
- color="neutral"
216
- :disabled="!canAdd"
217
- @click="duplicateCurrent"
218
- />
219
- <CmsButton
220
- v-if="editorItem && !declaresHiddenField(blockOf(editorItem))"
221
- :label="isHidden(editorItem) ? 'Show' : 'Hide'"
222
- :icon="isHidden(editorItem) ? 'eye' : 'eye-slash'"
223
- variant="soft"
224
- color="neutral"
225
- @click="toggleHiddenCurrent"
226
- />
227
- </div>
228
- <div class="cms-actions">
229
- <CmsButton
230
- label="Remove"
231
- icon="trash"
232
- variant="soft"
233
- color="error"
234
- @click="removeCurrent"
235
- />
236
- <CmsButton label="Done" @click="editorOpen = false" />
237
- </div>
238
- </div>
239
- </div>
212
+ <KButton
213
+ icon="chevron-right"
214
+ variant="soft"
215
+ tone="neutral"
216
+ aria-label="Move later"
217
+ :disabled="editorIndex === items.length - 1"
218
+ @click="moveCurrent(1)"
219
+ />
220
+ <KButton
221
+ label="Duplicate"
222
+ :icon="cmsIcon('document-duplicate')"
223
+ variant="soft"
224
+ tone="neutral"
225
+ :disabled="!canAdd"
226
+ @click="duplicateCurrent"
227
+ />
228
+ <KButton
229
+ v-if="editorItem && !declaresHiddenField(blockOf(editorItem))"
230
+ :label="isHidden(editorItem) ? 'Show' : 'Hide'"
231
+ :icon="cmsIcon(isHidden(editorItem) ? 'eye' : 'eye-slash')"
232
+ variant="soft"
233
+ tone="neutral"
234
+ @click="toggleHiddenCurrent"
235
+ />
236
+ </KStack>
237
+ <KStack direction="row" gap="sm">
238
+ <KButton
239
+ label="Remove"
240
+ icon="trash"
241
+ variant="soft"
242
+ tone="danger"
243
+ @click="removeCurrent"
244
+ />
245
+ <KButton label="Done" @click="editorOpen = false" />
246
+ </KStack>
247
+ </KStack>
240
248
  </template>
241
- </CmsModal>
242
- </div>
249
+ </KModal>
250
+ </KStack>
243
251
  </template>
244
252
 
245
253
  <script setup>
@@ -254,12 +262,18 @@ import {
254
262
  mediaTypeForKey,
255
263
  pickTranslatedMedia
256
264
  } from "#nuxt-cms";
257
- import { computed, ref, useState, watch } from "#imports";
265
+ import {
266
+ Button as KButton,
267
+ DropdownMenu as KDropdownMenu,
268
+ FormField as KFormField,
269
+ Icon as KIcon,
270
+ Modal as KModal,
271
+ Stack as KStack
272
+ } from "@xleddyl/443-components-vue";
273
+ import { computed, ref, useState } from "#imports";
258
274
  import { useCmsMediaKeys } from "../../composables/cms-media-keys";
259
- import { useCmsOverlay } from "../../composables/cms-overlay";
260
275
  import { useCmsRuntime } from "../../composables/cms-runtime";
261
- import { useCmsTheme } from "../../composables/cms-theme";
262
- import { fieldIcon } from "../../utils/ui";
276
+ import { cmsIcon, fieldIcon } from "../../utils/ui";
263
277
  const props = defineProps({
264
278
  field: { type: Object, required: true },
265
279
  locale: { type: String, required: false },
@@ -299,14 +313,6 @@ const visual = computed(() => {
299
313
  return !mediaOnly.value && !!props.entryName && !!props.fieldKey && !!list.length && list.every((block) => typeof block.component === "string" && !!block.component.trim());
300
314
  });
301
315
  const visualOpen = ref(false);
302
- const theme = useCmsTheme();
303
- const visualOverlay = useCmsOverlay(() => {
304
- visualOpen.value = false;
305
- });
306
- watch(visualOpen, (open) => {
307
- if (open) visualOverlay.activate();
308
- else visualOverlay.deactivate();
309
- });
310
316
  function onVisualUpdate(state) {
311
317
  const value = props.fieldKey ? state[props.fieldKey] : null;
312
318
  model.value = Array.isArray(value) && value.length ? value : null;
@@ -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;