katecms 0.0.0-stage → 1.0.0-beta.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 (552) hide show
  1. package/README.md +5 -3
  2. package/dist/module.d.mts +93 -0
  3. package/dist/module.json +9 -0
  4. package/dist/module.mjs +579 -0
  5. package/dist/runtime/assets/img/katecms-logo.svg +17 -0
  6. package/dist/runtime/composables/getCollection.d.ts +62 -0
  7. package/dist/runtime/composables/getCollection.js +167 -0
  8. package/dist/runtime/composables/getOptions.d.ts +22 -0
  9. package/dist/runtime/composables/getOptions.js +22 -0
  10. package/dist/runtime/composables/getQueryCollection.d.ts +95 -0
  11. package/dist/runtime/composables/getQueryCollection.js +199 -0
  12. package/dist/runtime/composables/getTerms.d.ts +79 -0
  13. package/dist/runtime/composables/getTerms.js +148 -0
  14. package/dist/runtime/composables/useAuth.d.ts +14 -0
  15. package/dist/runtime/composables/useAuth.js +33 -0
  16. package/dist/runtime/composables/useAuthCooldown.d.ts +6 -0
  17. package/dist/runtime/composables/useAuthCooldown.js +44 -0
  18. package/dist/runtime/composables/useCmsPaths.d.ts +15 -0
  19. package/dist/runtime/composables/useCmsPaths.js +21 -0
  20. package/dist/runtime/composables/useKateCmsExtensions.d.ts +49 -0
  21. package/dist/runtime/composables/useKateCmsExtensions.js +29 -0
  22. package/dist/runtime/composables/useMediaLibrary.d.ts +84 -0
  23. package/dist/runtime/composables/useMediaLibrary.js +140 -0
  24. package/dist/runtime/composables/useMenuAccess.d.ts +8 -0
  25. package/dist/runtime/composables/useMenuAccess.js +16 -0
  26. package/dist/runtime/internal/admin/AdminHeader.d.vue.ts +24 -0
  27. package/dist/runtime/internal/admin/AdminHeader.vue +91 -0
  28. package/dist/runtime/internal/admin/AdminHeader.vue.d.ts +24 -0
  29. package/dist/runtime/internal/admin/AppMenu.d.vue.ts +3 -0
  30. package/dist/runtime/internal/admin/AppMenu.vue +244 -0
  31. package/dist/runtime/internal/admin/AppMenu.vue.d.ts +3 -0
  32. package/dist/runtime/internal/admin/AppUser.d.vue.ts +3 -0
  33. package/dist/runtime/internal/admin/AppUser.vue +227 -0
  34. package/dist/runtime/internal/admin/AppUser.vue.d.ts +3 -0
  35. package/dist/runtime/internal/admin/CollectionEntryForm.d.vue.ts +41 -0
  36. package/dist/runtime/internal/admin/CollectionEntryForm.vue +916 -0
  37. package/dist/runtime/internal/admin/CollectionEntryForm.vue.d.ts +41 -0
  38. package/dist/runtime/internal/admin/ConfirmDialog.d.vue.ts +28 -0
  39. package/dist/runtime/internal/admin/ConfirmDialog.vue +136 -0
  40. package/dist/runtime/internal/admin/ConfirmDialog.vue.d.ts +28 -0
  41. package/dist/runtime/internal/admin/DictionaryTermForm.d.vue.ts +33 -0
  42. package/dist/runtime/internal/admin/DictionaryTermForm.vue +328 -0
  43. package/dist/runtime/internal/admin/DictionaryTermForm.vue.d.ts +33 -0
  44. package/dist/runtime/internal/admin/EntryRevisions.d.vue.ts +15 -0
  45. package/dist/runtime/internal/admin/EntryRevisions.vue +125 -0
  46. package/dist/runtime/internal/admin/EntryRevisions.vue.d.ts +15 -0
  47. package/dist/runtime/internal/admin/MediaLibraryFilters.d.vue.ts +16 -0
  48. package/dist/runtime/internal/admin/MediaLibraryFilters.vue +153 -0
  49. package/dist/runtime/internal/admin/MediaLibraryFilters.vue.d.ts +16 -0
  50. package/dist/runtime/internal/admin/MediaLibraryModal.d.vue.ts +65 -0
  51. package/dist/runtime/internal/admin/MediaLibraryModal.vue +451 -0
  52. package/dist/runtime/internal/admin/MediaLibraryModal.vue.d.ts +65 -0
  53. package/dist/runtime/internal/admin/OptionPageForm.d.vue.ts +26 -0
  54. package/dist/runtime/internal/admin/OptionPageForm.vue +222 -0
  55. package/dist/runtime/internal/admin/OptionPageForm.vue.d.ts +26 -0
  56. package/dist/runtime/internal/admin/UserAvatarField.d.vue.ts +12 -0
  57. package/dist/runtime/internal/admin/UserAvatarField.vue +305 -0
  58. package/dist/runtime/internal/admin/UserAvatarField.vue.d.ts +12 -0
  59. package/dist/runtime/internal/fields/AccordionField.d.vue.ts +0 -0
  60. package/dist/runtime/internal/fields/AccordionField.vue +220 -0
  61. package/dist/runtime/internal/fields/AccordionField.vue.d.ts +0 -0
  62. package/dist/runtime/internal/fields/ButtonGroupField.d.vue.ts +0 -0
  63. package/dist/runtime/internal/fields/ButtonGroupField.vue +109 -0
  64. package/dist/runtime/internal/fields/ButtonGroupField.vue.d.ts +0 -0
  65. package/dist/runtime/internal/fields/CheckboxField.d.vue.ts +0 -0
  66. package/dist/runtime/internal/fields/CheckboxField.vue +190 -0
  67. package/dist/runtime/internal/fields/CheckboxField.vue.d.ts +0 -0
  68. package/dist/runtime/internal/fields/ColorPickerField.d.vue.ts +0 -0
  69. package/dist/runtime/internal/fields/ColorPickerField.vue +791 -0
  70. package/dist/runtime/internal/fields/ColorPickerField.vue.d.ts +0 -0
  71. package/dist/runtime/internal/fields/DatePickerField.d.vue.ts +0 -0
  72. package/dist/runtime/internal/fields/DatePickerField.vue +26 -0
  73. package/dist/runtime/internal/fields/DatePickerField.vue.d.ts +0 -0
  74. package/dist/runtime/internal/fields/DateTimePickerField.d.vue.ts +0 -0
  75. package/dist/runtime/internal/fields/DateTimePickerField.vue +26 -0
  76. package/dist/runtime/internal/fields/DateTimePickerField.vue.d.ts +0 -0
  77. package/dist/runtime/internal/fields/DictionaryField.d.vue.ts +0 -0
  78. package/dist/runtime/internal/fields/DictionaryField.vue +345 -0
  79. package/dist/runtime/internal/fields/DictionaryField.vue.d.ts +0 -0
  80. package/dist/runtime/internal/fields/EmailField.d.vue.ts +0 -0
  81. package/dist/runtime/internal/fields/EmailField.vue +21 -0
  82. package/dist/runtime/internal/fields/EmailField.vue.d.ts +0 -0
  83. package/dist/runtime/internal/fields/FileField.d.vue.ts +0 -0
  84. package/dist/runtime/internal/fields/FileField.vue +408 -0
  85. package/dist/runtime/internal/fields/FileField.vue.d.ts +0 -0
  86. package/dist/runtime/internal/fields/FlexibleContentField.d.vue.ts +0 -0
  87. package/dist/runtime/internal/fields/FlexibleContentField.vue +1114 -0
  88. package/dist/runtime/internal/fields/FlexibleContentField.vue.d.ts +0 -0
  89. package/dist/runtime/internal/fields/GalleryField.d.vue.ts +0 -0
  90. package/dist/runtime/internal/fields/GalleryField.vue +584 -0
  91. package/dist/runtime/internal/fields/GalleryField.vue.d.ts +0 -0
  92. package/dist/runtime/internal/fields/GroupField.d.vue.ts +0 -0
  93. package/dist/runtime/internal/fields/GroupField.vue +111 -0
  94. package/dist/runtime/internal/fields/GroupField.vue.d.ts +0 -0
  95. package/dist/runtime/internal/fields/ImageField.d.vue.ts +0 -0
  96. package/dist/runtime/internal/fields/ImageField.vue +638 -0
  97. package/dist/runtime/internal/fields/ImageField.vue.d.ts +0 -0
  98. package/dist/runtime/internal/fields/ImageSelectField.d.vue.ts +0 -0
  99. package/dist/runtime/internal/fields/ImageSelectField.vue +179 -0
  100. package/dist/runtime/internal/fields/ImageSelectField.vue.d.ts +0 -0
  101. package/dist/runtime/internal/fields/LinkField.d.vue.ts +0 -0
  102. package/dist/runtime/internal/fields/LinkField.vue +303 -0
  103. package/dist/runtime/internal/fields/LinkField.vue.d.ts +0 -0
  104. package/dist/runtime/internal/fields/NumberField.d.vue.ts +0 -0
  105. package/dist/runtime/internal/fields/NumberField.vue +25 -0
  106. package/dist/runtime/internal/fields/NumberField.vue.d.ts +0 -0
  107. package/dist/runtime/internal/fields/OembedField.d.vue.ts +0 -0
  108. package/dist/runtime/internal/fields/OembedField.vue +161 -0
  109. package/dist/runtime/internal/fields/OembedField.vue.d.ts +0 -0
  110. package/dist/runtime/internal/fields/OpenStreetMapField.d.vue.ts +0 -0
  111. package/dist/runtime/internal/fields/OpenStreetMapField.vue +1502 -0
  112. package/dist/runtime/internal/fields/OpenStreetMapField.vue.d.ts +0 -0
  113. package/dist/runtime/internal/fields/PageLinkField.d.vue.ts +0 -0
  114. package/dist/runtime/internal/fields/PageLinkField.vue +153 -0
  115. package/dist/runtime/internal/fields/PageLinkField.vue.d.ts +0 -0
  116. package/dist/runtime/internal/fields/PasswordField.d.vue.ts +0 -0
  117. package/dist/runtime/internal/fields/PasswordField.vue +108 -0
  118. package/dist/runtime/internal/fields/PasswordField.vue.d.ts +0 -0
  119. package/dist/runtime/internal/fields/PostObjectField.d.vue.ts +0 -0
  120. package/dist/runtime/internal/fields/PostObjectField.vue +151 -0
  121. package/dist/runtime/internal/fields/PostObjectField.vue.d.ts +0 -0
  122. package/dist/runtime/internal/fields/RadioField.d.vue.ts +0 -0
  123. package/dist/runtime/internal/fields/RadioField.vue +163 -0
  124. package/dist/runtime/internal/fields/RadioField.vue.d.ts +0 -0
  125. package/dist/runtime/internal/fields/RangeField.d.vue.ts +0 -0
  126. package/dist/runtime/internal/fields/RangeField.vue +48 -0
  127. package/dist/runtime/internal/fields/RangeField.vue.d.ts +0 -0
  128. package/dist/runtime/internal/fields/RelationshipField.d.vue.ts +0 -0
  129. package/dist/runtime/internal/fields/RelationshipField.vue +525 -0
  130. package/dist/runtime/internal/fields/RelationshipField.vue.d.ts +0 -0
  131. package/dist/runtime/internal/fields/RepeaterField.d.vue.ts +0 -0
  132. package/dist/runtime/internal/fields/RepeaterField.vue +856 -0
  133. package/dist/runtime/internal/fields/RepeaterField.vue.d.ts +0 -0
  134. package/dist/runtime/internal/fields/SelectField.d.vue.ts +21 -0
  135. package/dist/runtime/internal/fields/SelectField.vue +101 -0
  136. package/dist/runtime/internal/fields/SelectField.vue.d.ts +21 -0
  137. package/dist/runtime/internal/fields/SeparatorField.d.vue.ts +0 -0
  138. package/dist/runtime/internal/fields/SeparatorField.vue +63 -0
  139. package/dist/runtime/internal/fields/SeparatorField.vue.d.ts +0 -0
  140. package/dist/runtime/internal/fields/TabField.d.vue.ts +0 -0
  141. package/dist/runtime/internal/fields/TabField.vue +210 -0
  142. package/dist/runtime/internal/fields/TabField.vue.d.ts +0 -0
  143. package/dist/runtime/internal/fields/TextField.d.vue.ts +0 -0
  144. package/dist/runtime/internal/fields/TextField.vue +22 -0
  145. package/dist/runtime/internal/fields/TextField.vue.d.ts +0 -0
  146. package/dist/runtime/internal/fields/TextareaField.d.vue.ts +0 -0
  147. package/dist/runtime/internal/fields/TextareaField.vue +62 -0
  148. package/dist/runtime/internal/fields/TextareaField.vue.d.ts +0 -0
  149. package/dist/runtime/internal/fields/TimePickerField.d.vue.ts +0 -0
  150. package/dist/runtime/internal/fields/TimePickerField.vue +24 -0
  151. package/dist/runtime/internal/fields/TimePickerField.vue.d.ts +0 -0
  152. package/dist/runtime/internal/fields/TrueFalseField.d.vue.ts +0 -0
  153. package/dist/runtime/internal/fields/TrueFalseField.vue +151 -0
  154. package/dist/runtime/internal/fields/TrueFalseField.vue.d.ts +0 -0
  155. package/dist/runtime/internal/fields/UrlField.d.vue.ts +0 -0
  156. package/dist/runtime/internal/fields/UrlField.vue +21 -0
  157. package/dist/runtime/internal/fields/UrlField.vue.d.ts +0 -0
  158. package/dist/runtime/internal/fields/UserField.d.vue.ts +0 -0
  159. package/dist/runtime/internal/fields/UserField.vue +164 -0
  160. package/dist/runtime/internal/fields/UserField.vue.d.ts +0 -0
  161. package/dist/runtime/internal/fields/WysiwygField.d.vue.ts +0 -0
  162. package/dist/runtime/internal/fields/WysiwygField.vue +971 -0
  163. package/dist/runtime/internal/fields/WysiwygField.vue.d.ts +0 -0
  164. package/dist/runtime/internal/parts/DateTimeControl.d.vue.ts +90 -0
  165. package/dist/runtime/internal/parts/DateTimeControl.vue +568 -0
  166. package/dist/runtime/internal/parts/DateTimeControl.vue.d.ts +90 -0
  167. package/dist/runtime/internal/parts/FieldAddon.d.vue.ts +0 -0
  168. package/dist/runtime/internal/parts/FieldAddon.vue +43 -0
  169. package/dist/runtime/internal/parts/FieldAddon.vue.d.ts +0 -0
  170. package/dist/runtime/internal/parts/FieldInstructions.d.vue.ts +0 -0
  171. package/dist/runtime/internal/parts/FieldInstructions.vue +24 -0
  172. package/dist/runtime/internal/parts/FieldInstructions.vue.d.ts +0 -0
  173. package/dist/runtime/internal/parts/FieldLabel.d.vue.ts +0 -0
  174. package/dist/runtime/internal/parts/FieldLabel.vue +40 -0
  175. package/dist/runtime/internal/parts/FieldLabel.vue.d.ts +0 -0
  176. package/dist/runtime/internal/parts/FieldWrapper.d.vue.ts +0 -0
  177. package/dist/runtime/internal/parts/FieldWrapper.vue +47 -0
  178. package/dist/runtime/internal/parts/FieldWrapper.vue.d.ts +0 -0
  179. package/dist/runtime/internal/parts/ImageCropper.d.vue.ts +17 -0
  180. package/dist/runtime/internal/parts/ImageCropper.vue +363 -0
  181. package/dist/runtime/internal/parts/ImageCropper.vue.d.ts +17 -0
  182. package/dist/runtime/internal/parts/InputControl.d.vue.ts +0 -0
  183. package/dist/runtime/internal/parts/InputControl.vue +163 -0
  184. package/dist/runtime/internal/parts/InputControl.vue.d.ts +0 -0
  185. package/dist/runtime/internal/ui/UiButton.d.vue.ts +35 -0
  186. package/dist/runtime/internal/ui/UiButton.vue +204 -0
  187. package/dist/runtime/internal/ui/UiButton.vue.d.ts +35 -0
  188. package/dist/runtime/internal/ui/UiNotice.d.vue.ts +40 -0
  189. package/dist/runtime/internal/ui/UiNotice.vue +253 -0
  190. package/dist/runtime/internal/ui/UiNotice.vue.d.ts +40 -0
  191. package/dist/runtime/internal/ui/UiSelect.d.vue.ts +61 -0
  192. package/dist/runtime/internal/ui/UiSelect.vue +1212 -0
  193. package/dist/runtime/internal/ui/UiSelect.vue.d.ts +61 -0
  194. package/dist/runtime/middleware/auth-guard.d.ts +9 -0
  195. package/dist/runtime/middleware/auth-guard.js +37 -0
  196. package/dist/runtime/pages/admin/collections/[id].d.vue.ts +3 -0
  197. package/dist/runtime/pages/admin/collections/[id].vue +423 -0
  198. package/dist/runtime/pages/admin/collections/[id].vue.d.ts +3 -0
  199. package/dist/runtime/pages/admin/collections/create.d.vue.ts +3 -0
  200. package/dist/runtime/pages/admin/collections/create.vue +179 -0
  201. package/dist/runtime/pages/admin/collections/create.vue.d.ts +3 -0
  202. package/dist/runtime/pages/admin/collections/index.d.vue.ts +3 -0
  203. package/dist/runtime/pages/admin/collections/index.vue +828 -0
  204. package/dist/runtime/pages/admin/collections/index.vue.d.ts +3 -0
  205. package/dist/runtime/pages/admin/demo-fields.d.vue.ts +3 -0
  206. package/dist/runtime/pages/admin/demo-fields.vue +1327 -0
  207. package/dist/runtime/pages/admin/demo-fields.vue.d.ts +3 -0
  208. package/dist/runtime/pages/admin/dictionaries/[id].d.vue.ts +3 -0
  209. package/dist/runtime/pages/admin/dictionaries/[id].vue +213 -0
  210. package/dist/runtime/pages/admin/dictionaries/[id].vue.d.ts +3 -0
  211. package/dist/runtime/pages/admin/dictionaries/index.d.vue.ts +3 -0
  212. package/dist/runtime/pages/admin/dictionaries/index.vue +387 -0
  213. package/dist/runtime/pages/admin/dictionaries/index.vue.d.ts +3 -0
  214. package/dist/runtime/pages/admin/index.d.vue.ts +3 -0
  215. package/dist/runtime/pages/admin/index.vue +138 -0
  216. package/dist/runtime/pages/admin/index.vue.d.ts +3 -0
  217. package/dist/runtime/pages/admin/login.d.vue.ts +3 -0
  218. package/dist/runtime/pages/admin/login.vue +373 -0
  219. package/dist/runtime/pages/admin/login.vue.d.ts +3 -0
  220. package/dist/runtime/pages/admin/media.d.vue.ts +3 -0
  221. package/dist/runtime/pages/admin/media.vue +1054 -0
  222. package/dist/runtime/pages/admin/media.vue.d.ts +3 -0
  223. package/dist/runtime/pages/admin/options/[page].d.vue.ts +3 -0
  224. package/dist/runtime/pages/admin/options/[page].vue +151 -0
  225. package/dist/runtime/pages/admin/options/[page].vue.d.ts +3 -0
  226. package/dist/runtime/pages/admin/register.d.vue.ts +3 -0
  227. package/dist/runtime/pages/admin/register.vue +391 -0
  228. package/dist/runtime/pages/admin/register.vue.d.ts +3 -0
  229. package/dist/runtime/pages/admin/users/[id].d.vue.ts +3 -0
  230. package/dist/runtime/pages/admin/users/[id].vue +337 -0
  231. package/dist/runtime/pages/admin/users/[id].vue.d.ts +3 -0
  232. package/dist/runtime/pages/admin/users/create.d.vue.ts +3 -0
  233. package/dist/runtime/pages/admin/users/create.vue +201 -0
  234. package/dist/runtime/pages/admin/users/create.vue.d.ts +3 -0
  235. package/dist/runtime/pages/admin/users/index.d.vue.ts +3 -0
  236. package/dist/runtime/pages/admin/users/index.vue +329 -0
  237. package/dist/runtime/pages/admin/users/index.vue.d.ts +3 -0
  238. package/dist/runtime/pages/index.d.vue.ts +3 -0
  239. package/dist/runtime/pages/index.vue +399 -0
  240. package/dist/runtime/pages/index.vue.d.ts +3 -0
  241. package/dist/runtime/server/api/_katecms/auth/login.post.d.ts +5 -0
  242. package/dist/runtime/server/api/_katecms/auth/login.post.js +44 -0
  243. package/dist/runtime/server/api/_katecms/auth/logout.post.d.ts +4 -0
  244. package/dist/runtime/server/api/_katecms/auth/logout.post.js +6 -0
  245. package/dist/runtime/server/api/_katecms/auth/register.post.d.ts +19 -0
  246. package/dist/runtime/server/api/_katecms/auth/register.post.js +83 -0
  247. package/dist/runtime/server/api/_katecms/auth/state.get.d.ts +9 -0
  248. package/dist/runtime/server/api/_katecms/auth/state.get.js +12 -0
  249. package/dist/runtime/server/api/_katecms/collections/[collection]/[id].delete.d.ts +15 -0
  250. package/dist/runtime/server/api/_katecms/collections/[collection]/[id].delete.js +59 -0
  251. package/dist/runtime/server/api/_katecms/collections/[collection]/[id].get.d.ts +4 -0
  252. package/dist/runtime/server/api/_katecms/collections/[collection]/[id].get.js +50 -0
  253. package/dist/runtime/server/api/_katecms/collections/[collection]/[id].patch.d.ts +4 -0
  254. package/dist/runtime/server/api/_katecms/collections/[collection]/[id].patch.js +130 -0
  255. package/dist/runtime/server/api/_katecms/collections/[collection]/revisions/[revisionId].post.d.ts +4 -0
  256. package/dist/runtime/server/api/_katecms/collections/[collection]/revisions/[revisionId].post.js +123 -0
  257. package/dist/runtime/server/api/_katecms/collections/[collection]/revisions.get.d.ts +6 -0
  258. package/dist/runtime/server/api/_katecms/collections/[collection]/revisions.get.js +31 -0
  259. package/dist/runtime/server/api/_katecms/collections/[collection].get.d.ts +8 -0
  260. package/dist/runtime/server/api/_katecms/collections/[collection].get.js +135 -0
  261. package/dist/runtime/server/api/_katecms/collections/[collection].post.d.ts +4 -0
  262. package/dist/runtime/server/api/_katecms/collections/[collection].post.js +91 -0
  263. package/dist/runtime/server/api/_katecms/dictionaries/[dictionary]/[id].delete.d.ts +7 -0
  264. package/dist/runtime/server/api/_katecms/dictionaries/[dictionary]/[id].delete.js +31 -0
  265. package/dist/runtime/server/api/_katecms/dictionaries/[dictionary]/[id].get.d.ts +4 -0
  266. package/dist/runtime/server/api/_katecms/dictionaries/[dictionary]/[id].get.js +45 -0
  267. package/dist/runtime/server/api/_katecms/dictionaries/[dictionary]/[id].patch.d.ts +4 -0
  268. package/dist/runtime/server/api/_katecms/dictionaries/[dictionary]/[id].patch.js +83 -0
  269. package/dist/runtime/server/api/_katecms/dictionaries/[dictionary].get.d.ts +4 -0
  270. package/dist/runtime/server/api/_katecms/dictionaries/[dictionary].get.js +38 -0
  271. package/dist/runtime/server/api/_katecms/dictionaries/[dictionary].post.d.ts +4 -0
  272. package/dist/runtime/server/api/_katecms/dictionaries/[dictionary].post.js +64 -0
  273. package/dist/runtime/server/api/_katecms/media/[id]/regenerate.post.d.ts +8 -0
  274. package/dist/runtime/server/api/_katecms/media/[id]/regenerate.post.js +30 -0
  275. package/dist/runtime/server/api/_katecms/media/[id].delete.d.ts +7 -0
  276. package/dist/runtime/server/api/_katecms/media/[id].delete.js +22 -0
  277. package/dist/runtime/server/api/_katecms/media/[id].get.d.ts +9 -0
  278. package/dist/runtime/server/api/_katecms/media/[id].get.js +17 -0
  279. package/dist/runtime/server/api/_katecms/media/[id].patch.d.ts +6 -0
  280. package/dist/runtime/server/api/_katecms/media/[id].patch.js +48 -0
  281. package/dist/runtime/server/api/_katecms/media/index.get.d.ts +5 -0
  282. package/dist/runtime/server/api/_katecms/media/index.get.js +75 -0
  283. package/dist/runtime/server/api/_katecms/media/index.post.d.ts +9 -0
  284. package/dist/runtime/server/api/_katecms/media/index.post.js +84 -0
  285. package/dist/runtime/server/api/_katecms/media/regenerate.post.d.ts +7 -0
  286. package/dist/runtime/server/api/_katecms/media/regenerate.post.js +30 -0
  287. package/dist/runtime/server/api/_katecms/menu.get.d.ts +8 -0
  288. package/dist/runtime/server/api/_katecms/menu.get.js +14 -0
  289. package/dist/runtime/server/api/_katecms/oembed.get.d.ts +2 -0
  290. package/dist/runtime/server/api/_katecms/oembed.get.js +53 -0
  291. package/dist/runtime/server/api/_katecms/options/[page].get.d.ts +7 -0
  292. package/dist/runtime/server/api/_katecms/options/[page].get.js +28 -0
  293. package/dist/runtime/server/api/_katecms/options/[page].patch.d.ts +4 -0
  294. package/dist/runtime/server/api/_katecms/options/[page].patch.js +36 -0
  295. package/dist/runtime/server/api/_katecms/query.get.d.ts +24 -0
  296. package/dist/runtime/server/api/_katecms/query.get.js +270 -0
  297. package/dist/runtime/server/api/_katecms/relation/entries.get.d.ts +17 -0
  298. package/dist/runtime/server/api/_katecms/relation/entries.get.js +74 -0
  299. package/dist/runtime/server/api/_katecms/relation/terms.get.d.ts +17 -0
  300. package/dist/runtime/server/api/_katecms/relation/terms.get.js +51 -0
  301. package/dist/runtime/server/api/_katecms/resolve.get.d.ts +17 -0
  302. package/dist/runtime/server/api/_katecms/resolve.get.js +116 -0
  303. package/dist/runtime/server/api/_katecms/terms.get.d.ts +20 -0
  304. package/dist/runtime/server/api/_katecms/terms.get.js +201 -0
  305. package/dist/runtime/server/api/_katecms/users/[id].delete.d.ts +11 -0
  306. package/dist/runtime/server/api/_katecms/users/[id].delete.js +45 -0
  307. package/dist/runtime/server/api/_katecms/users/[id].patch.d.ts +19 -0
  308. package/dist/runtime/server/api/_katecms/users/[id].patch.js +129 -0
  309. package/dist/runtime/server/api/_katecms/users.get.d.ts +10 -0
  310. package/dist/runtime/server/api/_katecms/users.get.js +34 -0
  311. package/dist/runtime/server/api/_katecms/users.post.d.ts +10 -0
  312. package/dist/runtime/server/api/_katecms/users.post.js +62 -0
  313. package/dist/runtime/server/api/uploads/[...key].get.d.ts +3 -0
  314. package/dist/runtime/server/api/uploads/[...key].get.js +28 -0
  315. package/dist/runtime/server/kit.d.ts +5 -0
  316. package/dist/runtime/server/kit.js +5 -0
  317. package/dist/runtime/server/middleware/admin-headers.d.ts +3 -0
  318. package/dist/runtime/server/middleware/admin-headers.js +12 -0
  319. package/dist/runtime/server/plugins/auto-migrate.d.ts +2 -0
  320. package/dist/runtime/server/plugins/auto-migrate.js +45 -0
  321. package/dist/runtime/server/tsconfig.json +3 -0
  322. package/dist/runtime/server/utils/auth-attempts.d.ts +22 -0
  323. package/dist/runtime/server/utils/auth-attempts.js +42 -0
  324. package/dist/runtime/server/utils/auth-rate-limit.d.ts +11 -0
  325. package/dist/runtime/server/utils/auth-rate-limit.js +36 -0
  326. package/dist/runtime/server/utils/client-address.d.ts +16 -0
  327. package/dist/runtime/server/utils/client-address.js +23 -0
  328. package/dist/runtime/server/utils/collections.d.ts +42 -0
  329. package/dist/runtime/server/utils/collections.js +300 -0
  330. package/dist/runtime/server/utils/db.d.ts +3 -0
  331. package/dist/runtime/server/utils/db.js +25 -0
  332. package/dist/runtime/server/utils/dictionaries.d.ts +53 -0
  333. package/dist/runtime/server/utils/dictionaries.js +301 -0
  334. package/dist/runtime/server/utils/media-list.d.ts +18 -0
  335. package/dist/runtime/server/utils/media-list.js +84 -0
  336. package/dist/runtime/server/utils/media.d.ts +12 -0
  337. package/dist/runtime/server/utils/media.js +77 -0
  338. package/dist/runtime/server/utils/oembed-fetch.d.ts +4 -0
  339. package/dist/runtime/server/utils/oembed-fetch.js +142 -0
  340. package/dist/runtime/server/utils/options.d.ts +17 -0
  341. package/dist/runtime/server/utils/options.js +66 -0
  342. package/dist/runtime/server/utils/permissions.d.ts +13 -0
  343. package/dist/runtime/server/utils/permissions.js +20 -0
  344. package/dist/runtime/server/utils/public-fields-query.d.ts +6 -0
  345. package/dist/runtime/server/utils/public-fields-query.js +8 -0
  346. package/dist/runtime/server/utils/public-term.d.ts +8 -0
  347. package/dist/runtime/server/utils/public-term.js +80 -0
  348. package/dist/runtime/server/utils/regenerate.d.ts +12 -0
  349. package/dist/runtime/server/utils/regenerate.js +40 -0
  350. package/dist/runtime/server/utils/relation.d.ts +18 -0
  351. package/dist/runtime/server/utils/relation.js +77 -0
  352. package/dist/runtime/server/utils/request-address.d.ts +6 -0
  353. package/dist/runtime/server/utils/request-address.js +10 -0
  354. package/dist/runtime/server/utils/revisions.d.ts +20 -0
  355. package/dist/runtime/server/utils/revisions.js +172 -0
  356. package/dist/runtime/server/utils/session.d.ts +18 -0
  357. package/dist/runtime/server/utils/session.js +71 -0
  358. package/dist/runtime/server/utils/upload-headers.d.ts +2 -0
  359. package/dist/runtime/server/utils/upload-headers.js +30 -0
  360. package/dist/runtime/server/utils/users.d.ts +13 -0
  361. package/dist/runtime/server/utils/users.js +47 -0
  362. package/dist/runtime/utils/admin-users.d.ts +20 -0
  363. package/dist/runtime/utils/admin-users.js +19 -0
  364. package/dist/runtime/utils/auth-error.d.ts +6 -0
  365. package/dist/runtime/utils/auth-error.js +11 -0
  366. package/dist/runtime/utils/cms-paths.d.ts +5 -0
  367. package/dist/runtime/utils/cms-paths.js +13 -0
  368. package/dist/runtime/utils/collections.d.ts +176 -0
  369. package/dist/runtime/utils/collections.js +30 -0
  370. package/dist/runtime/utils/dictionaries.d.ts +65 -0
  371. package/dist/runtime/utils/dictionaries.js +14 -0
  372. package/dist/runtime/utils/field-errors.d.ts +4 -0
  373. package/dist/runtime/utils/field-errors.js +9 -0
  374. package/dist/runtime/utils/field-values.d.ts +19 -0
  375. package/dist/runtime/utils/field-values.js +82 -0
  376. package/dist/runtime/utils/helpers.d.ts +4 -0
  377. package/dist/runtime/utils/helpers.js +20 -0
  378. package/dist/runtime/utils/media-library-query.d.ts +54 -0
  379. package/dist/runtime/utils/media-library-query.js +190 -0
  380. package/dist/runtime/utils/options.d.ts +19 -0
  381. package/dist/runtime/utils/options.js +3 -0
  382. package/dist/runtime/utils/preview.d.ts +22 -0
  383. package/dist/runtime/utils/preview.js +33 -0
  384. package/dist/runtime/utils/relation.d.ts +33 -0
  385. package/dist/runtime/utils/relation.js +23 -0
  386. package/dist/runtime/utils/slugify.d.ts +2 -0
  387. package/dist/runtime/utils/slugify.js +4 -0
  388. package/dist/types.d.mts +7 -0
  389. package/package.json +84 -3
  390. package/src/admin-components.ts +124 -0
  391. package/src/module.ts +592 -0
  392. package/src/runtime/assets/img/katecms-logo.svg +17 -0
  393. package/src/runtime/assets/styles/_functions.scss +70 -0
  394. package/src/runtime/assets/styles/_index.scss +3 -0
  395. package/src/runtime/assets/styles/_mixins.scss +256 -0
  396. package/src/runtime/assets/styles/_variables.scss +35 -0
  397. package/src/runtime/composables/getCollection.ts +253 -0
  398. package/src/runtime/composables/getOptions.ts +42 -0
  399. package/src/runtime/composables/getQueryCollection.ts +325 -0
  400. package/src/runtime/composables/getTerms.ts +231 -0
  401. package/src/runtime/composables/useAuth.ts +43 -0
  402. package/src/runtime/composables/useAuthCooldown.ts +52 -0
  403. package/src/runtime/composables/useCmsPaths.ts +24 -0
  404. package/src/runtime/composables/useKateCmsExtensions.ts +81 -0
  405. package/src/runtime/composables/useMediaLibrary.ts +168 -0
  406. package/src/runtime/composables/useMenuAccess.ts +25 -0
  407. package/src/runtime/internal/admin/AdminHeader.vue +106 -0
  408. package/src/runtime/internal/admin/AppMenu.vue +290 -0
  409. package/src/runtime/internal/admin/AppUser.vue +260 -0
  410. package/src/runtime/internal/admin/CollectionEntryForm.vue +1044 -0
  411. package/src/runtime/internal/admin/ConfirmDialog.vue +164 -0
  412. package/src/runtime/internal/admin/DictionaryTermForm.vue +400 -0
  413. package/src/runtime/internal/admin/EntryRevisions.vue +145 -0
  414. package/src/runtime/internal/admin/MediaLibraryFilters.vue +186 -0
  415. package/src/runtime/internal/admin/MediaLibraryModal.vue +526 -0
  416. package/src/runtime/internal/admin/OptionPageForm.vue +277 -0
  417. package/src/runtime/internal/admin/UserAvatarField.vue +337 -0
  418. package/src/runtime/internal/fields/AccordionField.vue +258 -0
  419. package/src/runtime/internal/fields/ButtonGroupField.vue +144 -0
  420. package/src/runtime/internal/fields/CheckboxField.vue +228 -0
  421. package/src/runtime/internal/fields/ColorPickerField.vue +926 -0
  422. package/src/runtime/internal/fields/DatePickerField.vue +33 -0
  423. package/src/runtime/internal/fields/DateTimePickerField.vue +33 -0
  424. package/src/runtime/internal/fields/DictionaryField.vue +403 -0
  425. package/src/runtime/internal/fields/EmailField.vue +28 -0
  426. package/src/runtime/internal/fields/FileField.vue +480 -0
  427. package/src/runtime/internal/fields/FlexibleContentField.vue +1296 -0
  428. package/src/runtime/internal/fields/GalleryField.vue +677 -0
  429. package/src/runtime/internal/fields/GroupField.vue +136 -0
  430. package/src/runtime/internal/fields/ImageField.vue +730 -0
  431. package/src/runtime/internal/fields/ImageSelectField.vue +213 -0
  432. package/src/runtime/internal/fields/LinkField.vue +338 -0
  433. package/src/runtime/internal/fields/NumberField.vue +32 -0
  434. package/src/runtime/internal/fields/OembedField.vue +187 -0
  435. package/src/runtime/internal/fields/OpenStreetMapField.vue +1716 -0
  436. package/src/runtime/internal/fields/PageLinkField.vue +186 -0
  437. package/src/runtime/internal/fields/PasswordField.vue +127 -0
  438. package/src/runtime/internal/fields/PostObjectField.vue +187 -0
  439. package/src/runtime/internal/fields/RadioField.vue +195 -0
  440. package/src/runtime/internal/fields/RangeField.vue +62 -0
  441. package/src/runtime/internal/fields/RelationshipField.vue +604 -0
  442. package/src/runtime/internal/fields/RepeaterField.vue +999 -0
  443. package/src/runtime/internal/fields/SelectField.vue +118 -0
  444. package/src/runtime/internal/fields/SeparatorField.vue +77 -0
  445. package/src/runtime/internal/fields/TabField.vue +249 -0
  446. package/src/runtime/internal/fields/TextField.vue +29 -0
  447. package/src/runtime/internal/fields/TextareaField.vue +61 -0
  448. package/src/runtime/internal/fields/TimePickerField.vue +31 -0
  449. package/src/runtime/internal/fields/TrueFalseField.vue +181 -0
  450. package/src/runtime/internal/fields/UrlField.vue +28 -0
  451. package/src/runtime/internal/fields/UserField.vue +203 -0
  452. package/src/runtime/internal/fields/WysiwygField.vue +1061 -0
  453. package/src/runtime/internal/parts/DateTimeControl.vue +657 -0
  454. package/src/runtime/internal/parts/FieldAddon.vue +60 -0
  455. package/src/runtime/internal/parts/FieldInstructions.vue +38 -0
  456. package/src/runtime/internal/parts/FieldLabel.vue +56 -0
  457. package/src/runtime/internal/parts/FieldWrapper.vue +63 -0
  458. package/src/runtime/internal/parts/ImageCropper.vue +415 -0
  459. package/src/runtime/internal/parts/InputControl.vue +189 -0
  460. package/src/runtime/internal/ui/UiButton.vue +274 -0
  461. package/src/runtime/internal/ui/UiNotice.vue +302 -0
  462. package/src/runtime/internal/ui/UiSelect.vue +1420 -0
  463. package/src/runtime/middleware/auth-guard.ts +52 -0
  464. package/src/runtime/pages/admin/collections/[id].vue +486 -0
  465. package/src/runtime/pages/admin/collections/create.vue +208 -0
  466. package/src/runtime/pages/admin/collections/index.vue +955 -0
  467. package/src/runtime/pages/admin/demo-fields.vue +1354 -0
  468. package/src/runtime/pages/admin/dictionaries/[id].vue +246 -0
  469. package/src/runtime/pages/admin/dictionaries/index.vue +438 -0
  470. package/src/runtime/pages/admin/index.vue +155 -0
  471. package/src/runtime/pages/admin/login.vue +159 -0
  472. package/src/runtime/pages/admin/media.vue +1176 -0
  473. package/src/runtime/pages/admin/options/[page].vue +174 -0
  474. package/src/runtime/pages/admin/register.vue +179 -0
  475. package/src/runtime/pages/admin/users/[id].vue +382 -0
  476. package/src/runtime/pages/admin/users/create.vue +232 -0
  477. package/src/runtime/pages/admin/users/index.vue +374 -0
  478. package/src/runtime/pages/index.vue +265 -0
  479. package/src/runtime/server/api/_katecms/auth/login.post.ts +62 -0
  480. package/src/runtime/server/api/_katecms/auth/logout.post.ts +7 -0
  481. package/src/runtime/server/api/_katecms/auth/register.post.ts +112 -0
  482. package/src/runtime/server/api/_katecms/auth/state.get.ts +19 -0
  483. package/src/runtime/server/api/_katecms/collections/[collection]/[id].delete.ts +77 -0
  484. package/src/runtime/server/api/_katecms/collections/[collection]/[id].get.ts +57 -0
  485. package/src/runtime/server/api/_katecms/collections/[collection]/[id].patch.ts +157 -0
  486. package/src/runtime/server/api/_katecms/collections/[collection]/revisions/[revisionId].post.ts +133 -0
  487. package/src/runtime/server/api/_katecms/collections/[collection]/revisions.get.ts +35 -0
  488. package/src/runtime/server/api/_katecms/collections/[collection].get.ts +177 -0
  489. package/src/runtime/server/api/_katecms/collections/[collection].post.ts +111 -0
  490. package/src/runtime/server/api/_katecms/dictionaries/[dictionary]/[id].delete.ts +37 -0
  491. package/src/runtime/server/api/_katecms/dictionaries/[dictionary]/[id].get.ts +51 -0
  492. package/src/runtime/server/api/_katecms/dictionaries/[dictionary]/[id].patch.ts +101 -0
  493. package/src/runtime/server/api/_katecms/dictionaries/[dictionary].get.ts +43 -0
  494. package/src/runtime/server/api/_katecms/dictionaries/[dictionary].post.ts +78 -0
  495. package/src/runtime/server/api/_katecms/media/[id]/regenerate.post.ts +39 -0
  496. package/src/runtime/server/api/_katecms/media/[id].delete.ts +28 -0
  497. package/src/runtime/server/api/_katecms/media/[id].get.ts +25 -0
  498. package/src/runtime/server/api/_katecms/media/[id].patch.ts +60 -0
  499. package/src/runtime/server/api/_katecms/media/index.get.ts +96 -0
  500. package/src/runtime/server/api/_katecms/media/index.post.ts +104 -0
  501. package/src/runtime/server/api/_katecms/media/regenerate.post.ts +38 -0
  502. package/src/runtime/server/api/_katecms/menu.get.ts +19 -0
  503. package/src/runtime/server/api/_katecms/oembed.get.ts +62 -0
  504. package/src/runtime/server/api/_katecms/options/[page].get.ts +35 -0
  505. package/src/runtime/server/api/_katecms/options/[page].patch.ts +46 -0
  506. package/src/runtime/server/api/_katecms/query.get.ts +332 -0
  507. package/src/runtime/server/api/_katecms/relation/entries.get.ts +98 -0
  508. package/src/runtime/server/api/_katecms/relation/terms.get.ts +61 -0
  509. package/src/runtime/server/api/_katecms/resolve.get.ts +148 -0
  510. package/src/runtime/server/api/_katecms/terms.get.ts +258 -0
  511. package/src/runtime/server/api/_katecms/users/[id].delete.ts +57 -0
  512. package/src/runtime/server/api/_katecms/users/[id].patch.ts +177 -0
  513. package/src/runtime/server/api/_katecms/users.get.ts +48 -0
  514. package/src/runtime/server/api/_katecms/users.post.ts +85 -0
  515. package/src/runtime/server/api/uploads/[...key].get.ts +33 -0
  516. package/src/runtime/server/kit.ts +5 -0
  517. package/src/runtime/server/middleware/admin-headers.ts +14 -0
  518. package/src/runtime/server/plugins/auto-migrate.ts +53 -0
  519. package/src/runtime/server/tsconfig.json +3 -0
  520. package/src/runtime/server/utils/auth-attempts.ts +71 -0
  521. package/src/runtime/server/utils/auth-rate-limit.ts +48 -0
  522. package/src/runtime/server/utils/client-address.ts +41 -0
  523. package/src/runtime/server/utils/collections.ts +381 -0
  524. package/src/runtime/server/utils/db.ts +36 -0
  525. package/src/runtime/server/utils/dictionaries.ts +397 -0
  526. package/src/runtime/server/utils/media-list.ts +131 -0
  527. package/src/runtime/server/utils/media.ts +94 -0
  528. package/src/runtime/server/utils/oembed-fetch.ts +157 -0
  529. package/src/runtime/server/utils/options.ts +86 -0
  530. package/src/runtime/server/utils/permissions.ts +44 -0
  531. package/src/runtime/server/utils/public-fields-query.ts +14 -0
  532. package/src/runtime/server/utils/public-term.ts +98 -0
  533. package/src/runtime/server/utils/regenerate.ts +56 -0
  534. package/src/runtime/server/utils/relation.ts +96 -0
  535. package/src/runtime/server/utils/request-address.ts +16 -0
  536. package/src/runtime/server/utils/revisions.ts +256 -0
  537. package/src/runtime/server/utils/session.ts +112 -0
  538. package/src/runtime/server/utils/upload-headers.ts +35 -0
  539. package/src/runtime/server/utils/users.ts +67 -0
  540. package/src/runtime/utils/admin-users.ts +43 -0
  541. package/src/runtime/utils/auth-error.ts +22 -0
  542. package/src/runtime/utils/cms-paths.ts +17 -0
  543. package/src/runtime/utils/collections.ts +228 -0
  544. package/src/runtime/utils/dictionaries.ts +89 -0
  545. package/src/runtime/utils/field-errors.ts +12 -0
  546. package/src/runtime/utils/field-values.ts +101 -0
  547. package/src/runtime/utils/helpers.ts +33 -0
  548. package/src/runtime/utils/media-library-query.ts +263 -0
  549. package/src/runtime/utils/options.ts +25 -0
  550. package/src/runtime/utils/preview.ts +56 -0
  551. package/src/runtime/utils/relation.ts +60 -0
  552. package/src/runtime/utils/slugify.ts +10 -0
@@ -0,0 +1,17 @@
1
+ <svg width="601" height="113" viewBox="0 0 601 113" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path d="M0 73.5024C0 67.1551 7.03756 63.3357 12.3596 66.7947L32.4495 79.8518C35.2876 81.6964 37 84.8516 37 88.2365V104.416C37 110.681 30.1253 114.515 24.7955 111.222L4.74437 98.8355C1.79524 97.0136 0 93.7944 0 90.3279V73.5024Z" fill="#2F6FED"/>
3
+ <path d="M124 73.7263C124 67.3334 116.872 63.523 111.556 67.074L92.4454 79.8399C89.6678 81.6953 88 84.815 88 88.1553V104.206C88 110.515 94.9619 114.341 100.288 110.96L119.36 98.8506C122.25 97.016 124 93.8311 124 90.4084V73.7263Z" fill="#2F6FED"/>
4
+ <path d="M15.9111 36.6614C19.8909 33.9187 25.1276 33.8313 29.1966 36.4397L53.1869 51.8182C56.629 54.0247 58.7108 57.832 58.7108 61.9207L58.7108 76.0704C58.7108 81.59 52.6207 84.9382 47.9602 81.9808L4.69729 54.5268C1.06676 52.223 0.966882 46.9603 4.50738 44.5204L15.9111 36.6614Z" fill="#2F6FED"/>
5
+ <path d="M108.017 36.6761C104.036 33.9251 98.7925 33.8341 94.7186 36.4454L70.7378 51.8173C67.2955 54.0238 65.2136 57.8312 65.2136 61.92L65.2136 76.0955C65.2136 81.6097 71.2931 84.9588 75.9541 82.0123L119.291 54.6165C122.926 52.3184 123.034 47.0542 119.496 44.609L108.017 36.6761Z" fill="#2F6FED"/>
6
+ <path d="M30 23.9492C30 20.3616 31.8302 17.0219 34.8541 15.0915L55.5429 1.88389C59.4806 -0.629939 64.5194 -0.629935 68.4571 1.88389L89.1459 15.0915C92.1698 17.0219 94 20.3616 94 23.9492C94 27.5737 92.1322 30.9424 89.058 32.8624L68.3568 45.7915C64.4671 48.2209 59.5329 48.2209 55.6432 45.7915L34.942 32.8624C31.8678 30.9424 30 27.5737 30 23.9492Z" fill="#2F6FED"/>
7
+ <path d="M157 32.7617C157 23.9252 164.163 16.7617 173 16.7617H174.5L201.5 65.7617L223.463 25.1504C226.258 19.9822 231.661 16.7617 237.537 16.7617H245V84.7617C245 93.046 238.284 99.7617 230 99.7617V43.2617L212.591 75.1775C210.377 79.2363 206.123 81.7617 201.5 81.7617C196.862 81.7617 192.58 79.2766 190.279 75.2499L172 43.2617V84.7617C172 93.046 165.284 99.7617 157 99.7617V32.7617Z" fill="#141A2A"/>
8
+ <path d="M257 52.7617C257 44.4774 263.716 37.7617 272 37.7617V84.7617C272 93.046 265.284 99.7617 257 99.7617V52.7617Z" fill="#141A2A"/>
9
+ <path d="M257 28.7617C257 22.1343 262.373 16.7617 269 16.7617H272V20.7617C272 27.3891 266.627 32.7617 260 32.7617H257V28.7617Z" fill="#141A2A"/>
10
+ <path d="M282 53.7617C282 44.9252 289.163 37.7617 298 37.7617H324C324 44.3891 318.627 49.7617 312 49.7617H304C300.134 49.7617 297 52.8957 297 56.7617V84.7617C297 93.046 290.284 99.7617 282 99.7617V53.7617Z" fill="#141A2A"/>
11
+ <path d="M366 37.7617C374.284 37.7617 381 44.4774 381 52.7617V82.7617C381 92.1506 373.389 99.7617 364 99.7617H339C330.716 99.7617 324 93.046 324 84.7617V76.7617C324 68.4774 330.716 61.7617 339 61.7617H367V55.7617C367 52.448 364.314 49.7617 361 49.7617H327C327 43.1343 332.373 37.7617 339 37.7617H366ZM342 72.7617C339.239 72.7617 337 75.0003 337 77.7617V83.7617C337 86.5231 339.239 88.7617 342 88.7617H362C364.761 88.7617 367 86.5231 367 83.7617V72.7617H342Z" fill="#141A2A"/>
12
+ <path d="M391 52.7617C391 44.4774 397.716 37.7617 406 37.7617V84.7617C406 93.046 399.284 99.7617 391 99.7617V52.7617Z" fill="#141A2A"/>
13
+ <path d="M391 28.7617C391 22.1343 396.373 16.7617 403 16.7617H406V20.7617C406 27.3891 400.627 32.7617 394 32.7617H391V28.7617Z" fill="#141A2A"/>
14
+ <path d="M416 57.7617C416 46.716 424.954 37.7617 436 37.7617H465C465 44.3891 459.627 49.7617 453 49.7617H436C432.134 49.7617 429 52.8957 429 56.7617V81.7617C429 85.6277 432.134 88.7617 436 88.7617H465C465 94.8369 460.075 99.7617 454 99.7617H436C424.954 99.7617 416 90.8074 416 79.7617V57.7617Z" fill="#2F6FED"/>
15
+ <path d="M475 50.8867C475 43.638 480.876 37.7617 488.125 37.7617L508.375 74.3641L523.708 46.1267C526.507 40.9717 531.903 37.7617 537.769 37.7617H541V88.5117C541 94.7249 535.963 99.7617 529.75 99.7617V57.5569L516.702 81.3823C515.036 84.4245 511.843 86.3159 508.375 86.3159C504.896 86.3159 501.682 84.4548 499.951 81.4369L486.25 57.5569V88.5117C486.25 94.7249 481.213 99.7617 475 99.7617V50.8867Z" fill="#2F6FED"/>
16
+ <path d="M551 56.2901C551 46.0572 559.295 37.7617 569.528 37.7617H599C599 43.8369 594.075 48.7617 588 48.7617H568C564.686 48.7617 562 51.448 562 54.7617V57.7617C562 61.0754 564.686 63.7617 568 63.7617H583C592.941 63.7617 601 71.8206 601 81.7617C601 91.7028 592.941 99.7617 583 99.7617H551C551 93.6866 555.925 88.7617 562 88.7617H584C587.314 88.7617 590 86.0754 590 82.7617V80.7784C590 77.4582 587.304 74.7692 583.983 74.7784L569.58 74.8185C559.327 74.847 551 66.5432 551 56.2901Z" fill="#2F6FED"/>
17
+ </svg>
@@ -0,0 +1,62 @@
1
+ import type { AdminEntry } from '../utils/collections.js';
2
+ export interface GetCollectionOptions {
3
+ /** Override the path (default: current route). */
4
+ path?: string;
5
+ /**
6
+ * Include drafts when the requester may `collections:read` the matched
7
+ * collection. Also read from `?preview=1` on the current route.
8
+ */
9
+ preview?: boolean;
10
+ /**
11
+ * Narrow statuses. `draft` is ignored unless preview is granted.
12
+ * Also read from `?status=` on the current route.
13
+ */
14
+ status?: 'published' | 'draft' | Array<'published' | 'draft'>;
15
+ /** Archive listing page. Also read from `?page=` on the current route. */
16
+ page?: number;
17
+ /**
18
+ * Archive listing page size. Also read from `?perPage=` on the current route.
19
+ * Default: the matched collection's `perPage` (10). `-1` returns every entry.
20
+ */
21
+ perPage?: number;
22
+ }
23
+ /**
24
+ * Resolve the CMS entry or archive for the current (or given) path via
25
+ * collection `rewrite` / `has_archive`.
26
+ *
27
+ * Public pages stay published-only unless `preview` is set (option or
28
+ * `?preview=1`) and the visitor is signed in with read access.
29
+ * Collections with `public: false` do not resolve.
30
+ *
31
+ * A call for the current route emits `katecms:collection` with the resolved
32
+ * page. Addons use that hook to apply document head.
33
+ *
34
+ * @example
35
+ * ```vue
36
+ * <script setup lang="ts">
37
+ * const { entry, link } = await getCollection()
38
+ * const preview = await getCollection({ preview: true, status: 'draft' })
39
+ * const { isArchive, entries } = await getCollection()
40
+ * </script>
41
+ * ```
42
+ */
43
+ export declare function getCollection(options?: GetCollectionOptions): Promise<never[] | {
44
+ kind: import("vue").ComputedRef<"entry" | "archive" | "term">;
45
+ isArchive: import("vue").ComputedRef<boolean>;
46
+ isTerm: import("vue").ComputedRef<boolean>;
47
+ entry: import("vue").ComputedRef<AdminEntry | null>;
48
+ term: import("vue").ComputedRef<import("../utils/collections.js").PublicDictionaryTerm | null>;
49
+ termPath: import("vue").ComputedRef<string | null>;
50
+ entries: import("vue").ComputedRef<AdminEntry[] | import("../utils/collections.js").PublicTermEntry[]>;
51
+ collection: import("vue").ComputedRef<import("../utils/collections.js").AdminCollectionMeta | null>;
52
+ link: import("vue").ComputedRef<string | null>;
53
+ permalink: (item: AdminEntry) => string | null;
54
+ preview: import("vue").ComputedRef<boolean>;
55
+ page: import("vue").ComputedRef<number>;
56
+ perPage: import("vue").ComputedRef<number>;
57
+ total: import("vue").ComputedRef<number>;
58
+ pending: import("vue").Ref<boolean, boolean>;
59
+ error: import("vue").Ref<import("nuxt/app").NuxtError<unknown> | undefined, import("nuxt/app").NuxtError<unknown> | undefined>;
60
+ refresh: (opts?: import("nuxt/app").AsyncDataExecuteOptions) => Promise<void>;
61
+ path: import("vue").ComputedRef<string>;
62
+ }>;
@@ -0,0 +1,167 @@
1
+ import { computed, getCurrentInstance } from "vue";
2
+ import { useAsyncData, useNuxtApp, useRequestFetch, useRoute } from "#imports";
3
+ import { buildPublicPath, resolveArchivePath } from "@katecms/core";
4
+ import { isTruthyQueryParam, parsePublicStatusParam } from "../utils/preview.js";
5
+ import { MIRAICMS_COLLECTION_HOOK } from "./useKateCmsExtensions.js";
6
+ const collectionHookTargets = /* @__PURE__ */ new WeakSet();
7
+ function samePublicPath(left, right) {
8
+ const normalize = (path) => {
9
+ const withSlash = path.startsWith("/") ? path : `/${path}`;
10
+ return withSlash.length > 1 && withSlash.endsWith("/") ? withSlash.slice(0, -1) : withSlash;
11
+ };
12
+ return normalize(left) === normalize(right);
13
+ }
14
+ function useCurrentPublicPath() {
15
+ const route = useRoute();
16
+ return computed(() => {
17
+ const slugParam = route.params.slug;
18
+ if (Array.isArray(slugParam) && slugParam.length > 0) {
19
+ return `/${slugParam.map(String).join("/")}`;
20
+ }
21
+ if (typeof slugParam === "string" && slugParam) {
22
+ return `/${slugParam}`;
23
+ }
24
+ const path = route.path || "/";
25
+ return path.length > 1 && path.endsWith("/") ? path.slice(0, -1) : path;
26
+ });
27
+ }
28
+ function statusQueryValue(status) {
29
+ if (!status) {
30
+ return void 0;
31
+ }
32
+ return Array.isArray(status) ? status.join(",") : status;
33
+ }
34
+ function pageQueryValue(value, fallback, allowUnlimited = false) {
35
+ if (typeof fallback === "number" && Number.isInteger(fallback) && (fallback >= 1 || allowUnlimited && fallback === -1)) {
36
+ return fallback;
37
+ }
38
+ const raw = Array.isArray(value) ? value[0] : value;
39
+ const n = Number(raw);
40
+ if (allowUnlimited && n === -1) {
41
+ return -1;
42
+ }
43
+ if (!Number.isInteger(n) || n < 1) {
44
+ return void 0;
45
+ }
46
+ return n;
47
+ }
48
+ export async function getCollection(options = {}) {
49
+ const nuxtApp = useNuxtApp();
50
+ const caller = getCurrentInstance();
51
+ const route = useRoute();
52
+ const currentPath = useCurrentPublicPath();
53
+ const tracksDocument = options.path == null || samePublicPath(options.path, currentPath.value);
54
+ const path = computed(() => options.path || currentPath.value);
55
+ const preview = computed(() => options.preview ?? isTruthyQueryParam(route.query.preview));
56
+ const status = computed(
57
+ () => statusQueryValue(options.status) ?? ((parsePublicStatusParam(route.query.status) ?? []).join(",") || void 0)
58
+ );
59
+ const page = computed(() => pageQueryValue(route.query.page, options.page));
60
+ const perPage = computed(() => pageQueryValue(route.query.perPage, options.perPage, true));
61
+ const requestFetch = useRequestFetch();
62
+ const { data, pending, error, refresh } = await useAsyncData(
63
+ `katecms-resolve:${path.value}:${preview.value ? "1" : "0"}:${status.value ?? ""}:${page.value ?? ""}:${perPage.value ?? ""}`,
64
+ () => requestFetch("/api/_katecms/resolve", {
65
+ query: {
66
+ path: path.value,
67
+ ...preview.value ? { preview: "1" } : {},
68
+ ...status.value ? { status: status.value } : {},
69
+ ...page.value ? { page: page.value } : {},
70
+ ...perPage.value ? { perPage: perPage.value } : {}
71
+ }
72
+ }),
73
+ { watch: [path, preview, status, page, perPage] }
74
+ );
75
+ const resolved = data.value;
76
+ const isArchivePayload = resolved?.kind === "archive";
77
+ const isTermPayload = resolved?.kind === "term";
78
+ if (error.value || !resolved || !isArchivePayload && !isTermPayload && resolved.kind !== "entry") {
79
+ return [];
80
+ }
81
+ if (resolved.kind === "entry" && !resolved.entry) {
82
+ return [];
83
+ }
84
+ if (resolved.kind === "term" && !resolved.term) {
85
+ return [];
86
+ }
87
+ const kind = computed(() => data.value?.kind ?? "entry");
88
+ const isArchive = computed(() => data.value?.kind === "archive");
89
+ const isTerm = computed(() => data.value?.kind === "term");
90
+ const entry = computed(() => data.value?.kind === "entry" ? data.value.entry : null);
91
+ const term = computed(() => data.value?.kind === "term" ? data.value.term : null);
92
+ const termPath = computed(() => data.value?.kind === "term" ? data.value.path : null);
93
+ const entries = computed(() => {
94
+ if (data.value?.kind === "archive" || data.value?.kind === "term") {
95
+ return data.value.entries;
96
+ }
97
+ return [];
98
+ });
99
+ const collection = computed(() => {
100
+ const resolvedPage = data.value;
101
+ if (resolvedPage?.kind === "entry" || resolvedPage?.kind === "archive") {
102
+ return resolvedPage.collection;
103
+ }
104
+ return null;
105
+ });
106
+ const isPreview = computed(() => {
107
+ const resolvedPage = data.value;
108
+ if (resolvedPage?.kind === "entry" || resolvedPage?.kind === "archive") {
109
+ return resolvedPage.preview;
110
+ }
111
+ return false;
112
+ });
113
+ const archivePage = computed(() => data.value?.kind === "archive" ? data.value.page : 1);
114
+ const archivePerPage = computed(() => data.value?.kind === "archive" ? data.value.perPage : 0);
115
+ const total = computed(() => data.value?.kind === "archive" ? data.value.total : 0);
116
+ const link = computed(() => {
117
+ if (data.value?.kind === "term") {
118
+ return data.value.path;
119
+ }
120
+ const meta = collection.value;
121
+ if (!meta) {
122
+ return null;
123
+ }
124
+ if (data.value?.kind === "archive") {
125
+ return resolveArchivePath(meta, meta.slug);
126
+ }
127
+ const resolvedEntry = entry.value;
128
+ if (!resolvedEntry) {
129
+ return null;
130
+ }
131
+ return buildPublicPath(meta.rewrite, meta.slug, resolvedEntry.slugPath || resolvedEntry.slug);
132
+ });
133
+ function permalink(item) {
134
+ const meta = collection.value;
135
+ if (!meta || !meta.public) {
136
+ return null;
137
+ }
138
+ return buildPublicPath(meta.rewrite, meta.slug, item.slugPath || item.slug);
139
+ }
140
+ if (tracksDocument && caller && !collectionHookTargets.has(caller)) {
141
+ collectionHookTargets.add(caller);
142
+ const page2 = { isArchive, isTerm, entry, term, collection, link };
143
+ nuxtApp.runWithContext(() => {
144
+ void nuxtApp.callHook(MIRAICMS_COLLECTION_HOOK, page2);
145
+ });
146
+ }
147
+ return {
148
+ kind,
149
+ isArchive,
150
+ isTerm,
151
+ entry,
152
+ term,
153
+ termPath,
154
+ entries,
155
+ collection,
156
+ link,
157
+ permalink,
158
+ preview: isPreview,
159
+ page: archivePage,
160
+ perPage: archivePerPage,
161
+ total,
162
+ pending,
163
+ error,
164
+ refresh,
165
+ path
166
+ };
167
+ }
@@ -0,0 +1,22 @@
1
+ export interface GetOptionsOptions {
2
+ /** Option page slug from CMS config (e.g. `site`). */
3
+ option: string;
4
+ }
5
+ /**
6
+ * Load stored values for an options page.
7
+ *
8
+ * @example
9
+ * ```vue
10
+ * <script setup lang="ts">
11
+ * const { values } = await getOptions({ option: 'site' })
12
+ * </script>
13
+ * ```
14
+ */
15
+ export declare function getOptions(options: GetOptionsOptions): Promise<{
16
+ slug: import("vue").ComputedRef<string>;
17
+ values: import("vue").ComputedRef<Record<string, unknown>>;
18
+ pending: import("vue").Ref<boolean, boolean>;
19
+ error: import("vue").Ref<import("nuxt/app").NuxtError<unknown> | undefined, import("nuxt/app").NuxtError<unknown> | undefined>;
20
+ refresh: (opts?: import("nuxt/app").AsyncDataExecuteOptions) => Promise<void>;
21
+ option: import("vue").ComputedRef<string>;
22
+ }>;
@@ -0,0 +1,22 @@
1
+ import { computed } from "vue";
2
+ import { useAsyncData, useRequestFetch } from "#imports";
3
+ import { optionApi } from "../utils/options.js";
4
+ export async function getOptions(options) {
5
+ const option = computed(() => options.option);
6
+ const requestFetch = useRequestFetch();
7
+ const { data, pending, error, refresh } = await useAsyncData(
8
+ `katecms-options:${option.value}`,
9
+ () => requestFetch(optionApi(option.value)),
10
+ { watch: [option] }
11
+ );
12
+ const values = computed(() => data.value?.values ?? {});
13
+ const slug = computed(() => data.value?.page.slug ?? option.value);
14
+ return {
15
+ slug,
16
+ values,
17
+ pending,
18
+ error,
19
+ refresh,
20
+ option
21
+ };
22
+ }
@@ -0,0 +1,95 @@
1
+ import type { CollectionOrderField, DictionaryQuery, FieldsQuery } from '@katecms/core';
2
+ import type { AdminEntry } from '../utils/collections.js';
3
+ export type QueryCollectionOrderBy = CollectionOrderField | 'date' | 'modified' | 'name' | 'includeIds';
4
+ export type QueryCollectionSlug = 'any' | (string & {});
5
+ export interface GetQueryCollectionOptions {
6
+ /** Collection slug(s). `'any'` includes every public collection. */
7
+ collection: QueryCollectionSlug | QueryCollectionSlug[];
8
+ /**
9
+ * Include drafts when the requester may `collections:read` every queried
10
+ * collection. Also read from `?preview=1` on the current route.
11
+ */
12
+ preview?: boolean;
13
+ /**
14
+ * Narrow statuses. `draft` is ignored unless preview is granted.
15
+ * Also read from `?status=` on the current route.
16
+ */
17
+ status?: 'published' | 'draft' | Array<'published' | 'draft'>;
18
+ /** Listing page. Also read from `?page=` on the current route. */
19
+ page?: number;
20
+ /**
21
+ * Page size. Also read from `?perPage=` on the current route.
22
+ * Default: the collection's `perPage` when a single type is queried,
23
+ * otherwise 10. `-1` returns every match.
24
+ */
25
+ perPage?: number;
26
+ /** Title/slug search. */
27
+ search?: string;
28
+ /** Exact title(s). */
29
+ title?: string | string[];
30
+ /** Only these entry ids. */
31
+ includeIds?: number | number[];
32
+ /** Skip these entry ids. */
33
+ excludeIds?: number | number[];
34
+ /** Parent id; `null` / `0` is top-level. */
35
+ parentId?: number | null;
36
+ /** Entries whose parent id is in this list. `0` is top-level. */
37
+ parentIds?: number | number[];
38
+ /** Skip entries whose parent id is in this list. `0` is top-level. */
39
+ excludeParentIds?: number | number[];
40
+ /** Only these authors. */
41
+ authorIn?: number[];
42
+ /** Skip these authors. */
43
+ authorNotIn?: number[];
44
+ /** Entry slug(s). */
45
+ slug?: string | string[];
46
+ /** Entry slug(s). */
47
+ slugs?: string | string[];
48
+ /** Filter by dictionary rows (`relation` + `queries`). */
49
+ dictionaryQuery?: DictionaryQuery;
50
+ /** Filter by entry `fields` JSON (`relation` + `queries`). */
51
+ fieldsQuery?: FieldsQuery;
52
+ /** Sort field. `date` → `published_at`, `modified` → `updated_at`, `name` → `slug`, `includeIds` → `includeIds` order. */
53
+ orderBy?: QueryCollectionOrderBy;
54
+ order?: 'asc' | 'desc';
55
+ }
56
+ /**
57
+ * List public collection entries by filters.
58
+ *
59
+ * Collections with `public: false` are omitted. Results stay published-only
60
+ * unless `preview` is set (option or `?preview=1`) and the visitor may read
61
+ * every queried collection.
62
+ *
63
+ * @example
64
+ * ```vue
65
+ * <script setup lang="ts">
66
+ * const { entries, permalink } = await getQueryCollection({
67
+ * collection: 'any',
68
+ * perPage: 10,
69
+ * orderBy: 'date',
70
+ * })
71
+ * const mixed = await getQueryCollection({
72
+ * collection: ['post', 'page'],
73
+ * dictionaryQuery: {
74
+ * relation: 'AND',
75
+ * queries: [
76
+ * { dictionary: 'services', field: 'slug', terms: 'theme-1' },
77
+ * { dictionary: 'categories', operator: 'NOT IN', terms: 'category-1' },
78
+ * ],
79
+ * },
80
+ * })
81
+ * </script>
82
+ * ```
83
+ */
84
+ export declare function getQueryCollection(options: GetQueryCollectionOptions): Promise<{
85
+ entries: import("vue").ComputedRef<AdminEntry[]>;
86
+ collections: import("vue").ComputedRef<import("../utils/collections.js").AdminCollectionMeta[]>;
87
+ permalink: (item: AdminEntry) => string | null;
88
+ preview: import("vue").ComputedRef<boolean>;
89
+ page: import("vue").ComputedRef<number>;
90
+ perPage: import("vue").ComputedRef<number>;
91
+ total: import("vue").ComputedRef<number>;
92
+ pending: import("vue").Ref<boolean, boolean>;
93
+ error: import("vue").Ref<import("nuxt/app").NuxtError<unknown> | undefined, import("nuxt/app").NuxtError<unknown> | undefined>;
94
+ refresh: (opts?: import("nuxt/app").AsyncDataExecuteOptions) => Promise<void>;
95
+ }>;
@@ -0,0 +1,199 @@
1
+ import { computed } from "vue";
2
+ import { useAsyncData, useRequestFetch, useRoute } from "#imports";
3
+ import { buildPublicPath } from "@katecms/core";
4
+ import { isTruthyQueryParam, parsePublicStatusParam } from "../utils/preview.js";
5
+ function asList(value) {
6
+ if (value == null) {
7
+ return [];
8
+ }
9
+ const raw = Array.isArray(value) ? value : [value];
10
+ return [...new Set(raw.map((item) => String(item).trim()).filter(Boolean))];
11
+ }
12
+ function csv(value) {
13
+ const list = asList(value);
14
+ return list.length > 0 ? list.join(",") : void 0;
15
+ }
16
+ function csvAll(...values) {
17
+ const list = [...new Set(values.flatMap((value) => asList(value)))];
18
+ return list.length > 0 ? list.join(",") : void 0;
19
+ }
20
+ function parentIdToken(value) {
21
+ if (value === void 0) {
22
+ return void 0;
23
+ }
24
+ if (value == null || value === 0) {
25
+ return 0;
26
+ }
27
+ return value;
28
+ }
29
+ function parentIdsCsv(parentId, parentIds) {
30
+ const tokens = [];
31
+ const seen = /* @__PURE__ */ new Set();
32
+ const push = (value) => {
33
+ if (value === void 0 || seen.has(value)) {
34
+ return;
35
+ }
36
+ seen.add(value);
37
+ tokens.push(value);
38
+ };
39
+ const list = parentIds == null ? [] : Array.isArray(parentIds) ? parentIds : [parentIds];
40
+ for (const id of list) {
41
+ push(parentIdToken(id));
42
+ }
43
+ push(parentIdToken(parentId));
44
+ return tokens.length > 0 ? tokens.join(",") : void 0;
45
+ }
46
+ function statusQueryValue(status) {
47
+ if (!status) {
48
+ return void 0;
49
+ }
50
+ return Array.isArray(status) ? status.join(",") : status;
51
+ }
52
+ function pageQueryValue(value, fallback, allowUnlimited = false) {
53
+ if (typeof fallback === "number" && Number.isInteger(fallback) && (fallback >= 1 || allowUnlimited && fallback === -1)) {
54
+ return fallback;
55
+ }
56
+ const raw = Array.isArray(value) ? value[0] : value;
57
+ const n = Number(raw);
58
+ if (allowUnlimited && n === -1) {
59
+ return -1;
60
+ }
61
+ if (!Number.isInteger(n) || n < 1) {
62
+ return void 0;
63
+ }
64
+ return n;
65
+ }
66
+ export async function getQueryCollection(options) {
67
+ const route = useRoute();
68
+ const collection = computed(() => asList(options.collection).join(","));
69
+ const preview = computed(() => options.preview ?? isTruthyQueryParam(route.query.preview));
70
+ const status = computed(
71
+ () => statusQueryValue(options.status) ?? ((parsePublicStatusParam(route.query.status) ?? []).join(",") || void 0)
72
+ );
73
+ const page = computed(() => pageQueryValue(route.query.page, options.page));
74
+ const perPage = computed(() => pageQueryValue(route.query.perPage, options.perPage, true));
75
+ const search = computed(() => options.search);
76
+ const title = computed(() => csv(options.title));
77
+ const includeIds = computed(() => csv(options.includeIds));
78
+ const excludeIds = computed(() => csv(options.excludeIds));
79
+ const parentIds = computed(() => parentIdsCsv(options.parentId, options.parentIds));
80
+ const excludeParentIds = computed(() => csv(options.excludeParentIds));
81
+ const authorIn = computed(() => csv(options.authorIn));
82
+ const authorNotIn = computed(() => csv(options.authorNotIn));
83
+ const slug = computed(() => csvAll(options.slugs, options.slug));
84
+ const dictionaryQuery = computed(() => options.dictionaryQuery ? JSON.stringify(options.dictionaryQuery) : void 0);
85
+ const fieldsQuery = computed(() => options.fieldsQuery ? JSON.stringify(options.fieldsQuery) : void 0);
86
+ const orderBy = computed(() => options.orderBy);
87
+ const order = computed(() => options.order);
88
+ const titleSet = computed(() => options.title !== void 0);
89
+ const includeIdsSet = computed(() => options.includeIds !== void 0);
90
+ const excludeIdsSet = computed(() => options.excludeIds !== void 0);
91
+ const parentIdsSet = computed(
92
+ () => options.parentId !== void 0 || options.parentIds !== void 0
93
+ );
94
+ const excludeParentIdsSet = computed(() => options.excludeParentIds !== void 0);
95
+ const authorInSet = computed(() => options.authorIn !== void 0);
96
+ const authorNotInSet = computed(() => options.authorNotIn !== void 0);
97
+ const slugSet = computed(() => options.slug !== void 0 || options.slugs !== void 0);
98
+ const requestFetch = useRequestFetch();
99
+ const { data, pending, error, refresh } = await useAsyncData(
100
+ [
101
+ "katecms-query",
102
+ collection.value,
103
+ preview.value ? "1" : "0",
104
+ status.value ?? "",
105
+ page.value ?? "",
106
+ perPage.value ?? "",
107
+ search.value ?? "",
108
+ titleSet.value ? title.value ?? "" : "-",
109
+ includeIdsSet.value ? includeIds.value ?? "" : "-",
110
+ excludeIdsSet.value ? excludeIds.value ?? "" : "-",
111
+ parentIdsSet.value ? parentIds.value ?? "" : "-",
112
+ excludeParentIdsSet.value ? excludeParentIds.value ?? "" : "-",
113
+ authorInSet.value ? authorIn.value ?? "" : "-",
114
+ authorNotInSet.value ? authorNotIn.value ?? "" : "-",
115
+ slugSet.value ? slug.value ?? "" : "-",
116
+ dictionaryQuery.value ?? "",
117
+ fieldsQuery.value ?? "",
118
+ orderBy.value ?? "",
119
+ order.value ?? ""
120
+ ].join(":"),
121
+ () => requestFetch("/api/_katecms/query", {
122
+ query: {
123
+ collection: collection.value,
124
+ ...preview.value ? { preview: "1" } : {},
125
+ ...status.value ? { status: status.value } : {},
126
+ ...page.value ? { page: page.value } : {},
127
+ ...perPage.value ? { perPage: perPage.value } : {},
128
+ ...search.value ? { search: search.value } : {},
129
+ ...titleSet.value ? { title: title.value ?? "" } : {},
130
+ ...includeIdsSet.value ? { includeIds: includeIds.value ?? "" } : {},
131
+ ...excludeIdsSet.value ? { excludeIds: excludeIds.value ?? "" } : {},
132
+ ...parentIdsSet.value ? { parentIds: parentIds.value ?? "" } : {},
133
+ ...excludeParentIdsSet.value ? { excludeParentIds: excludeParentIds.value ?? "" } : {},
134
+ ...authorInSet.value ? { authorIn: authorIn.value ?? "" } : {},
135
+ ...authorNotInSet.value ? { authorNotIn: authorNotIn.value ?? "" } : {},
136
+ ...slugSet.value ? { slug: slug.value ?? "" } : {},
137
+ ...dictionaryQuery.value ? { dictionaryQuery: dictionaryQuery.value } : {},
138
+ ...fieldsQuery.value ? { fieldsQuery: fieldsQuery.value } : {},
139
+ ...orderBy.value ? { orderBy: orderBy.value } : {},
140
+ ...order.value ? { order: order.value } : {}
141
+ }
142
+ }),
143
+ {
144
+ watch: [
145
+ collection,
146
+ preview,
147
+ status,
148
+ page,
149
+ perPage,
150
+ search,
151
+ title,
152
+ titleSet,
153
+ includeIds,
154
+ includeIdsSet,
155
+ excludeIds,
156
+ excludeIdsSet,
157
+ parentIds,
158
+ parentIdsSet,
159
+ excludeParentIds,
160
+ excludeParentIdsSet,
161
+ authorIn,
162
+ authorInSet,
163
+ authorNotIn,
164
+ authorNotInSet,
165
+ slug,
166
+ slugSet,
167
+ dictionaryQuery,
168
+ fieldsQuery,
169
+ orderBy,
170
+ order
171
+ ]
172
+ }
173
+ );
174
+ const entries = computed(() => data.value?.entries ?? []);
175
+ const collections = computed(() => data.value?.collections ?? []);
176
+ const isPreview = computed(() => data.value?.preview === true);
177
+ const queryPage = computed(() => data.value?.page ?? 1);
178
+ const queryPerPage = computed(() => data.value?.perPage ?? 0);
179
+ const total = computed(() => data.value?.total ?? 0);
180
+ function permalink(item) {
181
+ const meta = collections.value.find((entry) => entry.slug === item.type);
182
+ if (!meta || !meta.public) {
183
+ return null;
184
+ }
185
+ return buildPublicPath(meta.rewrite, meta.slug, item.slugPath || item.slug);
186
+ }
187
+ return {
188
+ entries,
189
+ collections,
190
+ permalink,
191
+ preview: isPreview,
192
+ page: queryPage,
193
+ perPage: queryPerPage,
194
+ total,
195
+ pending,
196
+ error,
197
+ refresh
198
+ };
199
+ }
@@ -0,0 +1,79 @@
1
+ import type { FieldsQuery, TermOrderBy, TermOrderField, TermsReturn } from '@katecms/core';
2
+ export interface GetTermsOptions {
3
+ /** Dictionary slug(s). */
4
+ dictionary: string | string[];
5
+ /**
6
+ * Page size. Omitted or `-1` returns every match.
7
+ */
8
+ perPage?: number;
9
+ /** How many matches to skip. Default: `0`. */
10
+ offset?: number;
11
+ /** Only these term ids. */
12
+ includeIds?: number | number[];
13
+ /** Skip these term ids. */
14
+ excludeIds?: number | number[];
15
+ /** Skip these terms and every descendant. */
16
+ excludeTreeIds?: number | number[];
17
+ /** Direct parent. `null` / `0` is top-level. */
18
+ parentId?: number | null;
19
+ /** Every descendant of this term. The term itself is not included. */
20
+ childOf?: number;
21
+ /** Skip terms that have children. Default: `false`. */
22
+ childless?: boolean;
23
+ /** Exact slug(s). */
24
+ slug?: string | string[];
25
+ /** Exact title(s). */
26
+ title?: string | string[];
27
+ /** Case-insensitive substring of title or slug. */
28
+ search?: string;
29
+ /** Hide terms with no published entries. Default: `true`. */
30
+ hideEmpty?: boolean;
31
+ /**
32
+ * When `hideEmpty` is set, keep an empty term if a descendant has entries.
33
+ * Default: `true`.
34
+ */
35
+ hierarchical?: boolean;
36
+ /** Add descendant entry counts to each term's `count`. Default: `false`. */
37
+ padCounts?: boolean;
38
+ /** Filter term `fields`. */
39
+ fieldsQuery?: FieldsQuery;
40
+ /** Default: `title`. */
41
+ orderBy?: TermOrderBy;
42
+ /** Key used when `orderBy` is `field`. */
43
+ orderByField?: TermOrderField;
44
+ /** Default: `asc`. */
45
+ order?: 'asc' | 'desc';
46
+ /**
47
+ * Shape of the result. `count` is the number of matches before `perPage`.
48
+ * Default: `all`.
49
+ */
50
+ return?: TermsReturn;
51
+ }
52
+ /**
53
+ * List dictionary terms.
54
+ *
55
+ * `count` is the number of published entries in public collections.
56
+ * `hideEmpty` drops terms whose count is 0, unless `hierarchical` keeps a
57
+ * parent that has a non-empty descendant.
58
+ *
59
+ * @example
60
+ * ```vue
61
+ * <script setup lang="ts">
62
+ * const { terms } = await getTerms({
63
+ * dictionary: 'services',
64
+ * hideEmpty: true,
65
+ * orderBy: 'title',
66
+ * })
67
+ * </script>
68
+ * ```
69
+ */
70
+ export declare function getTerms(options: GetTermsOptions): Promise<{
71
+ terms: import("vue").ComputedRef<import("@katecms/core").QueryTerm[]>;
72
+ ids: import("vue").ComputedRef<number[]>;
73
+ titles: import("vue").ComputedRef<string[]>;
74
+ map: import("vue").ComputedRef<Record<string, string | number | null>>;
75
+ total: import("vue").ComputedRef<number>;
76
+ pending: import("vue").Ref<boolean, boolean>;
77
+ error: import("vue").Ref<import("nuxt/app").NuxtError<unknown> | undefined, import("nuxt/app").NuxtError<unknown> | undefined>;
78
+ refresh: (opts?: import("nuxt/app").AsyncDataExecuteOptions) => Promise<void>;
79
+ }>;