sitero 0.1.0 → 0.1.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 (387) hide show
  1. package/dist/export/cms/client/components/editor/index.js +4 -0
  2. package/dist/export/cms/client/components/index.js +24 -20
  3. package/dist/export/cms/client/i18n/index.js +1 -0
  4. package/dist/export/cms/client/index.js +11 -0
  5. package/dist/export/cms/client/pages/index.js +10 -8
  6. package/dist/export/core/server/index.js +8 -0
  7. package/dist/export/index.js +2 -0
  8. package/dist/export/web/server/index.js +1 -0
  9. package/dist/src/cms/client/applications/create-applications.js +3 -1
  10. package/dist/src/cms/client/applications/ui/use-nav-items.js +203 -0
  11. package/dist/src/cms/client/infrastructure/i18n/intor-config.js +8 -5
  12. package/dist/src/cms/client/infrastructure/i18n/messages/en-US/resources/index.js +1 -0
  13. package/dist/src/cms/client/infrastructure/i18n/messages/index.js +9 -0
  14. package/dist/src/cms/client/infrastructure/i18n/messages/zh-TW/resources/index.js +1 -0
  15. package/dist/src/cms/client/interfaces/components/create-components.js +26 -24
  16. package/dist/src/cms/client/interfaces/components/create-post-contents.js +86 -0
  17. package/dist/src/cms/client/interfaces/components/resources/admin/admin-card.js +3 -0
  18. package/dist/src/cms/client/interfaces/components/resources/admin/admin-list.js +1 -0
  19. package/dist/src/cms/client/interfaces/components/resources/admin/admin-refresh-tokens/admin-refresh-token-card.js +4 -0
  20. package/dist/src/cms/client/interfaces/components/resources/admin/admin-relations-section.js +2 -2
  21. package/dist/src/cms/client/interfaces/components/resources/admin/admin-table.js +1 -1
  22. package/dist/src/cms/client/interfaces/components/resources/config/config-edit-content.js +20 -2
  23. package/dist/src/cms/client/interfaces/components/resources/config/config-show-content.js +1 -0
  24. package/dist/src/cms/client/interfaces/components/resources/file/file-card.js +4 -0
  25. package/dist/src/cms/client/interfaces/components/resources/file/file-list.js +1 -0
  26. package/dist/src/cms/client/interfaces/components/resources/file/file-relations-section.js +2 -2
  27. package/dist/src/cms/client/interfaces/components/resources/file/file-state-icons.js +1 -1
  28. package/dist/src/cms/client/interfaces/components/resources/file/search/is-locked-buttons.js +7 -0
  29. package/dist/src/cms/client/interfaces/components/resources/file/search/type-buttons.js +7 -0
  30. package/dist/src/cms/client/interfaces/components/resources/folder/file-manager/file-manager-header.js +1 -1
  31. package/dist/src/cms/client/interfaces/components/resources/folder/folder-card.js +4 -0
  32. package/dist/src/cms/client/interfaces/components/resources/folder/folder-state-icons.js +1 -1
  33. package/dist/src/cms/client/interfaces/components/resources/inquiry/inquiry-card.js +4 -0
  34. package/dist/src/cms/client/interfaces/components/resources/inquiry/inquiry-list.js +1 -0
  35. package/dist/src/cms/client/interfaces/components/resources/{category → post/category}/category-card.js +26 -19
  36. package/dist/src/cms/client/interfaces/components/resources/post/category/category-relations-section.js +90 -0
  37. package/dist/src/cms/client/interfaces/components/resources/{category → post/category}/category-table.js +28 -21
  38. package/dist/src/cms/client/interfaces/components/resources/post/content/post-create-content.js +463 -0
  39. package/dist/src/cms/client/interfaces/components/resources/post/content/post-edit-content.js +461 -0
  40. package/dist/src/cms/client/interfaces/components/resources/post/content/post-show-content.js +218 -0
  41. package/dist/src/cms/client/interfaces/components/resources/post/content/types.js +12 -0
  42. package/dist/src/cms/client/interfaces/components/resources/post/post-card.js +16 -70
  43. package/dist/src/cms/client/interfaces/components/resources/post/post-list.js +4 -6
  44. package/dist/src/cms/client/interfaces/components/resources/post/search/control-fields-buttons.js +10 -50
  45. package/dist/src/cms/client/interfaces/components/resources/{tag → post/tag}/tag-card.js +19 -17
  46. package/dist/src/cms/client/interfaces/components/resources/{tag → post/tag}/tag-relations-section.js +14 -14
  47. package/dist/src/cms/client/interfaces/components/resources/{tag → post/tag}/tag-table.js +20 -17
  48. package/dist/src/cms/client/interfaces/components/resources/{topic → post/topic}/topic-card.js +29 -22
  49. package/dist/src/cms/client/interfaces/components/resources/{topic → post/topic}/topic-table.js +32 -24
  50. package/dist/src/cms/client/interfaces/components/resources/seo-metadata/seo-form/fields/basic-tags.js +1 -1
  51. package/dist/src/cms/client/interfaces/components/resources/seo-metadata/seo-form/fields/json-ld-tags.js +1 -1
  52. package/dist/src/cms/client/interfaces/components/resources/seo-metadata/seo-form/fields/open-graph-tags.js +1 -1
  53. package/dist/src/cms/client/interfaces/components/resources/seo-metadata/seo-form/fields/twitter-tags.js +1 -1
  54. package/dist/src/cms/client/interfaces/components/resources/seo-metadata/seo-metadata-dialog.js +6 -0
  55. package/dist/src/cms/client/interfaces/components/ui/blocks/list-container/list-container.js +6 -0
  56. package/dist/src/cms/client/interfaces/components/ui/blocks/list-container/page-size-selector.js +6 -0
  57. package/dist/src/cms/client/interfaces/components/ui/blocks/page-header/page-header.js +7 -1
  58. package/dist/src/cms/client/interfaces/components/ui/blocks/page-header/presets/index.js +11 -0
  59. package/dist/src/cms/client/interfaces/components/ui/buttons/return-button.js +7 -0
  60. package/dist/src/cms/client/interfaces/components/ui/features/external-link.js +7 -0
  61. package/dist/src/cms/client/interfaces/components/ui/features/file/file-info/file-info.js +5 -1
  62. package/dist/src/cms/client/interfaces/components/ui/features/file/file-preview/file-preview-list.js +7 -0
  63. package/dist/src/cms/client/interfaces/components/ui/features/pick-modal/pick-modal-body.js +8 -4
  64. package/dist/src/cms/client/interfaces/components/ui/features/pick-modal/pick-modal-trigger.js +6 -0
  65. package/dist/src/cms/client/interfaces/components/ui/features/pick-modal/pick-modal.js +5 -0
  66. package/dist/src/cms/client/interfaces/components/ui/form/index-field.js +1 -0
  67. package/dist/src/cms/client/interfaces/components/ui/i18n/display/i18n-array-display.js +4 -1
  68. package/dist/src/cms/client/interfaces/components/ui/i18n/display/i18n-display.js +4 -1
  69. package/dist/src/cms/client/interfaces/components/ui/i18n/display/i18n-object-array-display.js +4 -1
  70. package/dist/src/cms/client/interfaces/components/ui/i18n/inputs/i18n-array-input.js +6 -0
  71. package/dist/src/cms/client/interfaces/components/ui/i18n/inputs/i18n-date-input.js +6 -0
  72. package/dist/src/cms/client/interfaces/components/ui/i18n/inputs/i18n-input.js +6 -0
  73. package/dist/src/cms/client/interfaces/components/ui/i18n/inputs/i18n-json-input.js +7 -1
  74. package/dist/src/cms/client/interfaces/components/ui/i18n/inputs/i18n-number-input.js +6 -0
  75. package/dist/src/cms/client/interfaces/components/ui/i18n/inputs/i18n-object-array-input.js +6 -0
  76. package/dist/src/cms/client/interfaces/components/ui/i18n/inputs/i18n-textarea.js +6 -0
  77. package/dist/src/cms/client/interfaces/components/ui/inputs/array-input.js +6 -0
  78. package/dist/src/cms/client/interfaces/components/ui/inputs/editor/base/built-in-plugins.js +1 -2
  79. package/dist/src/cms/client/interfaces/components/ui/inputs/editor/editor.js +1 -1
  80. package/dist/src/cms/client/interfaces/components/ui/inputs/editor/plugins/file-repository/upload-adapter.js +1 -1
  81. package/dist/src/cms/client/interfaces/components/ui/layouts/navbar/i18n-selector.js +5 -0
  82. package/dist/src/cms/client/interfaces/components/ui/layouts/navbar/nav-user.js +1 -0
  83. package/dist/src/cms/client/interfaces/components/ui/layouts/navbar/navbar.js +1 -0
  84. package/dist/src/cms/client/interfaces/components/ui/layouts/navbar/theme-selector.js +6 -0
  85. package/dist/src/cms/client/interfaces/pages/(auth)/email-unverified/page.js +1 -0
  86. package/dist/src/cms/client/interfaces/pages/(auth)/forgot-password/page.js +1 -0
  87. package/dist/src/cms/client/interfaces/pages/(auth)/layout.js +1 -0
  88. package/dist/src/cms/client/interfaces/pages/(auth)/reset-password/page.js +1 -0
  89. package/dist/src/cms/client/interfaces/pages/(auth)/sign-in/page.js +1 -0
  90. package/dist/src/cms/client/interfaces/pages/dashboard/(auth)/change-password/page.js +1 -0
  91. package/dist/src/cms/client/interfaces/pages/dashboard/content/content-management/_topicSlug_/category/_id_/edit/page.js +20 -4
  92. package/dist/src/cms/client/interfaces/pages/dashboard/content/content-management/_topicSlug_/category/_id_/page.js +43 -4
  93. package/dist/src/cms/client/interfaces/pages/dashboard/content/content-management/_topicSlug_/category/create/page.js +21 -5
  94. package/dist/src/cms/client/interfaces/pages/dashboard/content/content-management/_topicSlug_/page.js +97 -39
  95. package/dist/src/cms/client/interfaces/pages/dashboard/content/content-management/_topicSlug_/post/_id_/edit/page.js +34 -5
  96. package/dist/src/cms/client/interfaces/pages/dashboard/content/content-management/_topicSlug_/post/_id_/page.js +35 -4
  97. package/dist/src/cms/client/interfaces/pages/dashboard/content/content-management/_topicSlug_/post/create/page.js +34 -5
  98. package/dist/src/cms/client/interfaces/pages/dashboard/content/content-management/_topicSlug_/subcategory/_id_/edit/page.js +115 -0
  99. package/dist/src/cms/client/interfaces/pages/dashboard/content/content-management/_topicSlug_/subcategory/_id_/page.js +170 -0
  100. package/dist/src/cms/client/interfaces/pages/dashboard/content/content-management/_topicSlug_/subcategory/create/page.js +117 -0
  101. package/dist/src/cms/client/interfaces/pages/dashboard/content/content-management/page.js +8 -1
  102. package/dist/src/cms/client/interfaces/pages/dashboard/content/content-management/tag/_id_/edit/page.js +100 -0
  103. package/dist/src/cms/client/interfaces/pages/dashboard/content/{tag → content-management/tag}/_id_/page.js +40 -22
  104. package/dist/src/cms/client/interfaces/pages/dashboard/content/{tag/_id_/edit → content-management/tag/create}/page.js +24 -26
  105. package/dist/src/cms/client/interfaces/pages/dashboard/content/{tag/create → content-management/tag}/page.js +43 -27
  106. package/dist/src/cms/client/interfaces/pages/dashboard/content/{topic → content-management/topic}/_id_/edit/page.js +32 -15
  107. package/dist/src/cms/client/interfaces/pages/dashboard/content/{topic → content-management/topic}/_id_/page.js +36 -36
  108. package/dist/src/cms/client/interfaces/pages/dashboard/content/{topic/create → content-management/topic}/page.js +41 -15
  109. package/dist/src/cms/client/interfaces/pages/dashboard/layout.js +1 -0
  110. package/dist/src/cms/client/interfaces/pages/dashboard/page.js +1 -0
  111. package/dist/src/cms/client/interfaces/pages/dashboard/system/access/admin/page.js +1 -0
  112. package/dist/src/cms/client/interfaces/pages/dashboard/system/access/page.js +3 -2
  113. package/dist/src/cms/client/interfaces/pages/dashboard/system/storage/file/page.js +1 -0
  114. package/dist/src/cms/client/interfaces/pages/dashboard/system/storage/file-manager/page.js +1 -0
  115. package/dist/src/cms/client/interfaces/pages/dashboard/system/storage/folder/page.js +1 -0
  116. package/dist/src/cms/client/interfaces/pages/dashboard/system/storage/page.js +3 -2
  117. package/dist/src/cms/client/interfaces/pages/dashboard/system/storage/trash/page.js +1 -1
  118. package/dist/src/cms/client/interfaces/pages/dashboard/website/inquiry/_id_/page.js +1 -0
  119. package/dist/src/cms/client/interfaces/pages/dashboard/website/inquiry/page.js +1 -0
  120. package/dist/src/cms/client/interfaces/pages/dashboard/website/website-config/_slug_/edit/page.js +1 -0
  121. package/dist/src/cms/client/interfaces/pages/dashboard/website/website-config/_slug_/page.js +1 -0
  122. package/dist/src/cms/client/interfaces/pages/dashboard/website/website-config/page.js +1 -0
  123. package/dist/src/cms/client/interfaces/pages/dashboard/website/website-page/_slug_/edit/page.js +1 -0
  124. package/dist/src/cms/client/interfaces/pages/dashboard/website/website-page/_slug_/page.js +1 -1
  125. package/dist/src/cms/client/interfaces/pages/dashboard/website/website-page/page.js +1 -0
  126. package/dist/src/constants/paths/cms-paths.js +7 -4
  127. package/dist/src/core/domain/static/topics.js +29 -0
  128. package/dist/src/core/server/infrastructure/database/file/query/file-query-repository.js +1 -0
  129. package/dist/src/core/server/infrastructure/database/folder/query/folder-query-repository.js +1 -0
  130. package/dist/src/core/server/infrastructure/database/post/command/post-command-repository.js +6 -151
  131. package/dist/src/core/server/infrastructure/database/post/command/post-create-data.js +81 -0
  132. package/dist/src/core/server/infrastructure/database/post/command/post-update-data.js +86 -0
  133. package/dist/src/core/server/infrastructure/i18n/messages/index.js +9 -0
  134. package/dist/src/core/server/interfaces/actions/resources/file/commands/purge-many/file-purge-many-action.js +1 -0
  135. package/dist/src/core/server/interfaces/actions/resources/file/commands/soft-delete/file-soft-delete-action.js +1 -0
  136. package/dist/src/core/server/interfaces/actions/resources/file/commands/soft-delete-many/file-soft-delete-many-action.js +1 -0
  137. package/dist/src/core/server/interfaces/actions/resources/folder/commands/delete/folder-delete-action.js +1 -0
  138. package/dist/src/core/server/interfaces/actions/resources/folder/queries/folder-find-full-action.js +1 -0
  139. package/dist/src/core/server/seeders/folder/seeder.js +1 -0
  140. package/dist/src/web/server/applications/sitemap/get-post-items.js +46 -6
  141. package/dist/src/web/server/applications/sitemap/get-subcategory-items.js +34 -0
  142. package/dist/src/web/server/interfaces/create-web-interfaces.js +4 -0
  143. package/dist/src/web/server/interfaces/loaders/load-categories.js +6 -3
  144. package/dist/src/web/server/interfaces/loaders/load-category.js +8 -2
  145. package/dist/src/web/server/interfaces/loaders/load-post.js +8 -2
  146. package/dist/src/web/server/interfaces/loaders/load-posts.js +7 -3
  147. package/dist/src/web/server/interfaces/loaders/load-subcategories.js +61 -0
  148. package/dist/src/web/server/interfaces/loaders/load-subcategory.js +27 -0
  149. package/dist/types/export/cms/client/components/index.d.ts +4 -1
  150. package/dist/types/export/cms/client/components/index.d.ts.map +1 -1
  151. package/dist/types/export/cms/client/i18n/index.d.ts +1 -1
  152. package/dist/types/export/cms/client/i18n/index.d.ts.map +1 -1
  153. package/dist/types/export/cms/client/index.d.ts +1 -1
  154. package/dist/types/export/cms/client/index.d.ts.map +1 -1
  155. package/dist/types/export/cms/client/pages/index.d.ts +1 -1
  156. package/dist/types/export/cms/client/pages/index.d.ts.map +1 -1
  157. package/dist/types/export/core/server/index.d.ts +6 -1
  158. package/dist/types/export/core/server/index.d.ts.map +1 -1
  159. package/dist/types/export/index.d.ts +2 -2
  160. package/dist/types/export/index.d.ts.map +1 -1
  161. package/dist/types/export/web/server/index.d.ts +1 -1
  162. package/dist/types/export/web/server/index.d.ts.map +1 -1
  163. package/dist/types/src/cms/client/applications/create-applications.d.ts.map +1 -1
  164. package/dist/types/src/cms/client/applications/resources/post/use-create-form-data.d.ts +1 -1
  165. package/dist/types/src/cms/client/applications/resources/post/use-create-form-data.d.ts.map +1 -1
  166. package/dist/types/src/cms/client/applications/types.d.ts +2 -1
  167. package/dist/types/src/cms/client/applications/types.d.ts.map +1 -1
  168. package/dist/types/src/cms/client/applications/ui/index.d.ts +1 -0
  169. package/dist/types/src/cms/client/applications/ui/index.d.ts.map +1 -1
  170. package/dist/types/src/cms/client/applications/ui/use-nav-items.d.ts +20 -0
  171. package/dist/types/src/cms/client/applications/ui/use-nav-items.d.ts.map +1 -0
  172. package/dist/types/src/cms/client/infrastructure/i18n/index.d.ts +1 -0
  173. package/dist/types/src/cms/client/infrastructure/i18n/index.d.ts.map +1 -1
  174. package/dist/types/src/cms/client/infrastructure/i18n/intor-config.d.ts.map +1 -1
  175. package/dist/types/src/cms/client/infrastructure/i18n/messages/en-US/index.d.ts +3 -0
  176. package/dist/types/src/cms/client/infrastructure/i18n/messages/en-US/index.d.ts.map +1 -1
  177. package/dist/types/src/cms/client/infrastructure/i18n/messages/en-US/resources/index.d.ts +3 -0
  178. package/dist/types/src/cms/client/infrastructure/i18n/messages/en-US/resources/index.d.ts.map +1 -1
  179. package/dist/types/src/cms/client/infrastructure/i18n/messages/index.d.ts +1347 -0
  180. package/dist/types/src/cms/client/infrastructure/i18n/messages/index.d.ts.map +1 -0
  181. package/dist/types/src/cms/client/infrastructure/i18n/messages/zh-TW/index.d.ts +3 -0
  182. package/dist/types/src/cms/client/infrastructure/i18n/messages/zh-TW/index.d.ts.map +1 -1
  183. package/dist/types/src/cms/client/infrastructure/i18n/messages/zh-TW/resources/index.d.ts +3 -0
  184. package/dist/types/src/cms/client/infrastructure/i18n/messages/zh-TW/resources/index.d.ts.map +1 -1
  185. package/dist/types/src/cms/client/interfaces/components/create-components.d.ts +10 -5
  186. package/dist/types/src/cms/client/interfaces/components/create-components.d.ts.map +1 -1
  187. package/dist/types/src/cms/client/interfaces/components/create-post-contents.d.ts +38 -0
  188. package/dist/types/src/cms/client/interfaces/components/create-post-contents.d.ts.map +1 -0
  189. package/dist/types/src/cms/client/interfaces/components/resources/admin/admin-relations-section.d.ts +1 -2
  190. package/dist/types/src/cms/client/interfaces/components/resources/admin/admin-relations-section.d.ts.map +1 -1
  191. package/dist/types/src/cms/client/interfaces/components/resources/config/config-edit-content.d.ts +1 -1
  192. package/dist/types/src/cms/client/interfaces/components/resources/config/config-edit-content.d.ts.map +1 -1
  193. package/dist/types/src/cms/client/interfaces/components/resources/file/file-relations-section.d.ts +1 -2
  194. package/dist/types/src/cms/client/interfaces/components/resources/file/file-relations-section.d.ts.map +1 -1
  195. package/dist/types/src/cms/client/interfaces/components/resources/index.d.ts +5 -4
  196. package/dist/types/src/cms/client/interfaces/components/resources/index.d.ts.map +1 -1
  197. package/dist/types/src/cms/client/interfaces/components/resources/post/category/category-card.d.ts +8 -0
  198. package/dist/types/src/cms/client/interfaces/components/resources/post/category/category-card.d.ts.map +1 -0
  199. package/dist/types/src/cms/client/interfaces/components/resources/{category → post/category}/category-relations-section.d.ts +4 -4
  200. package/dist/types/src/cms/client/interfaces/components/resources/post/category/category-relations-section.d.ts.map +1 -0
  201. package/dist/types/src/cms/client/interfaces/components/resources/post/category/category-table.d.ts +8 -0
  202. package/dist/types/src/cms/client/interfaces/components/resources/post/category/category-table.d.ts.map +1 -0
  203. package/dist/types/src/cms/client/interfaces/components/resources/post/category/index.d.ts.map +1 -0
  204. package/dist/types/src/cms/client/interfaces/components/resources/post/content/index.d.ts +6 -0
  205. package/dist/types/src/cms/client/interfaces/components/resources/post/content/index.d.ts.map +1 -0
  206. package/dist/types/src/cms/client/interfaces/components/resources/post/content/post-create-content.d.ts +46 -0
  207. package/dist/types/src/cms/client/interfaces/components/resources/post/content/post-create-content.d.ts.map +1 -0
  208. package/dist/types/src/cms/client/interfaces/components/resources/post/content/post-edit-content.d.ts +45 -0
  209. package/dist/types/src/cms/client/interfaces/components/resources/post/content/post-edit-content.d.ts.map +1 -0
  210. package/dist/types/src/cms/client/interfaces/components/resources/post/content/post-show-content.d.ts +26 -0
  211. package/dist/types/src/cms/client/interfaces/components/resources/post/content/post-show-content.d.ts.map +1 -0
  212. package/dist/types/src/cms/client/interfaces/components/resources/post/content/types.d.ts +19 -0
  213. package/dist/types/src/cms/client/interfaces/components/resources/post/content/types.d.ts.map +1 -0
  214. package/dist/types/src/cms/client/interfaces/components/resources/post/index.d.ts +2 -0
  215. package/dist/types/src/cms/client/interfaces/components/resources/post/index.d.ts.map +1 -1
  216. package/dist/types/src/cms/client/interfaces/components/resources/post/post-card.d.ts +1 -8
  217. package/dist/types/src/cms/client/interfaces/components/resources/post/post-card.d.ts.map +1 -1
  218. package/dist/types/src/cms/client/interfaces/components/resources/post/post-list.d.ts +4 -3
  219. package/dist/types/src/cms/client/interfaces/components/resources/post/post-list.d.ts.map +1 -1
  220. package/dist/types/src/cms/client/interfaces/components/resources/post/post-relations-section.d.ts +1 -1
  221. package/dist/types/src/cms/client/interfaces/components/resources/post/post-relations-section.d.ts.map +1 -1
  222. package/dist/types/src/cms/client/interfaces/components/resources/post/search/control-fields-buttons.d.ts +0 -2
  223. package/dist/types/src/cms/client/interfaces/components/resources/post/search/control-fields-buttons.d.ts.map +1 -1
  224. package/dist/types/src/cms/client/interfaces/components/resources/post/tag/index.d.ts.map +1 -0
  225. package/dist/types/src/cms/client/interfaces/components/resources/{tag → post/tag}/tag-card.d.ts +1 -1
  226. package/dist/types/src/cms/client/interfaces/components/resources/post/tag/tag-card.d.ts.map +1 -0
  227. package/dist/types/src/cms/client/interfaces/components/resources/{tag → post/tag}/tag-relations-section.d.ts +4 -4
  228. package/dist/types/src/cms/client/interfaces/components/resources/post/tag/tag-relations-section.d.ts.map +1 -0
  229. package/dist/types/src/cms/client/interfaces/components/resources/{tag → post/tag}/tag-table.d.ts +1 -1
  230. package/dist/types/src/cms/client/interfaces/components/resources/post/tag/tag-table.d.ts.map +1 -0
  231. package/dist/types/src/cms/client/interfaces/components/resources/post/topic/index.d.ts.map +1 -0
  232. package/dist/types/src/cms/client/interfaces/components/resources/{topic → post/topic}/topic-card.d.ts +2 -2
  233. package/dist/types/src/cms/client/interfaces/components/resources/post/topic/topic-card.d.ts.map +1 -0
  234. package/dist/types/src/cms/client/interfaces/components/resources/{topic → post/topic}/topic-table.d.ts +2 -2
  235. package/dist/types/src/cms/client/interfaces/components/resources/post/topic/topic-table.d.ts.map +1 -0
  236. package/dist/types/src/cms/client/interfaces/components/ui/blocks/page-header/presets/index.d.ts.map +1 -1
  237. package/dist/types/src/cms/client/interfaces/components/ui/blocks/page-header/types.d.ts +1 -0
  238. package/dist/types/src/cms/client/interfaces/components/ui/blocks/page-header/types.d.ts.map +1 -1
  239. package/dist/types/src/cms/client/interfaces/components/ui/features/pick-modal/pick-modal.d.ts +2 -1
  240. package/dist/types/src/cms/client/interfaces/components/ui/features/pick-modal/pick-modal.d.ts.map +1 -1
  241. package/dist/types/src/cms/client/interfaces/components/ui/form/index-field.d.ts.map +1 -1
  242. package/dist/types/src/cms/client/interfaces/components/ui/i18n/display/i18n-array-display.d.ts.map +1 -1
  243. package/dist/types/src/cms/client/interfaces/components/ui/i18n/display/i18n-display.d.ts.map +1 -1
  244. package/dist/types/src/cms/client/interfaces/components/ui/i18n/display/i18n-object-array-display.d.ts.map +1 -1
  245. package/dist/types/src/cms/client/interfaces/components/ui/i18n/inputs/i18n-json-input.d.ts.map +1 -1
  246. package/dist/types/src/cms/client/interfaces/components/ui/inputs/editor/base/built-in-plugins.d.ts.map +1 -1
  247. package/dist/types/src/cms/client/interfaces/components/ui/layouts/content-container.d.ts +1 -1
  248. package/dist/types/src/cms/client/interfaces/components/ui/layouts/content-container.d.ts.map +1 -1
  249. package/dist/types/src/cms/client/interfaces/components/ui/layouts/sidebar/nav-main.d.ts +1 -1
  250. package/dist/types/src/cms/client/interfaces/components/ui/layouts/sidebar/nav-main.d.ts.map +1 -1
  251. package/dist/types/src/cms/client/interfaces/pages/dashboard/content/content-management/[topicSlug]/category/[id]/edit/page.d.ts +6 -2
  252. package/dist/types/src/cms/client/interfaces/pages/dashboard/content/content-management/[topicSlug]/category/[id]/edit/page.d.ts.map +1 -1
  253. package/dist/types/src/cms/client/interfaces/pages/dashboard/content/content-management/[topicSlug]/category/[id]/page.d.ts +6 -3
  254. package/dist/types/src/cms/client/interfaces/pages/dashboard/content/content-management/[topicSlug]/category/[id]/page.d.ts.map +1 -1
  255. package/dist/types/src/cms/client/interfaces/pages/dashboard/content/content-management/[topicSlug]/category/create/page.d.ts +6 -2
  256. package/dist/types/src/cms/client/interfaces/pages/dashboard/content/content-management/[topicSlug]/category/create/page.d.ts.map +1 -1
  257. package/dist/types/src/cms/client/interfaces/pages/dashboard/content/content-management/[topicSlug]/page.d.ts +3 -3
  258. package/dist/types/src/cms/client/interfaces/pages/dashboard/content/content-management/[topicSlug]/page.d.ts.map +1 -1
  259. package/dist/types/src/cms/client/interfaces/pages/dashboard/content/content-management/[topicSlug]/post/[id]/edit/page.d.ts +6 -2
  260. package/dist/types/src/cms/client/interfaces/pages/dashboard/content/content-management/[topicSlug]/post/[id]/edit/page.d.ts.map +1 -1
  261. package/dist/types/src/cms/client/interfaces/pages/dashboard/content/content-management/[topicSlug]/post/[id]/page.d.ts +7 -3
  262. package/dist/types/src/cms/client/interfaces/pages/dashboard/content/content-management/[topicSlug]/post/[id]/page.d.ts.map +1 -1
  263. package/dist/types/src/cms/client/interfaces/pages/dashboard/content/content-management/[topicSlug]/post/create/page.d.ts +6 -2
  264. package/dist/types/src/cms/client/interfaces/pages/dashboard/content/content-management/[topicSlug]/post/create/page.d.ts.map +1 -1
  265. package/dist/types/src/cms/client/interfaces/pages/dashboard/content/content-management/[topicSlug]/subcategory/[id]/edit/page.d.ts +24 -0
  266. package/dist/types/src/cms/client/interfaces/pages/dashboard/content/content-management/[topicSlug]/subcategory/[id]/edit/page.d.ts.map +1 -0
  267. package/dist/types/src/cms/client/interfaces/pages/dashboard/content/content-management/[topicSlug]/subcategory/[id]/page.d.ts +27 -0
  268. package/dist/types/src/cms/client/interfaces/pages/dashboard/content/content-management/[topicSlug]/subcategory/[id]/page.d.ts.map +1 -0
  269. package/dist/types/src/cms/client/interfaces/pages/dashboard/content/content-management/[topicSlug]/subcategory/create/page.d.ts +24 -0
  270. package/dist/types/src/cms/client/interfaces/pages/dashboard/content/content-management/[topicSlug]/subcategory/create/page.d.ts.map +1 -0
  271. package/dist/types/src/cms/client/interfaces/pages/dashboard/content/content-management/[topicSlug]/subcategory/index.d.ts +4 -0
  272. package/dist/types/src/cms/client/interfaces/pages/dashboard/content/content-management/[topicSlug]/subcategory/index.d.ts.map +1 -0
  273. package/dist/types/src/cms/client/interfaces/pages/dashboard/content/content-management/page.d.ts +3 -1
  274. package/dist/types/src/cms/client/interfaces/pages/dashboard/content/content-management/page.d.ts.map +1 -1
  275. package/dist/types/src/cms/client/interfaces/pages/dashboard/content/content-management/tag/[id]/edit/page.d.ts +20 -0
  276. package/dist/types/src/cms/client/interfaces/pages/dashboard/content/content-management/tag/[id]/edit/page.d.ts.map +1 -0
  277. package/dist/types/src/cms/client/interfaces/pages/dashboard/content/content-management/tag/[id]/page.d.ts +23 -0
  278. package/dist/types/src/cms/client/interfaces/pages/dashboard/content/content-management/tag/[id]/page.d.ts.map +1 -0
  279. package/dist/types/src/cms/client/interfaces/pages/dashboard/content/content-management/tag/create/page.d.ts +16 -0
  280. package/dist/types/src/cms/client/interfaces/pages/dashboard/content/content-management/tag/create/page.d.ts.map +1 -0
  281. package/dist/types/src/cms/client/interfaces/pages/dashboard/content/content-management/tag/index.d.ts.map +1 -0
  282. package/dist/types/src/cms/client/interfaces/pages/dashboard/content/content-management/tag/page.d.ts +14 -0
  283. package/dist/types/src/cms/client/interfaces/pages/dashboard/content/content-management/tag/page.d.ts.map +1 -0
  284. package/dist/types/src/cms/client/interfaces/pages/dashboard/content/content-management/topic/[id]/edit/page.d.ts +20 -0
  285. package/dist/types/src/cms/client/interfaces/pages/dashboard/content/content-management/topic/[id]/edit/page.d.ts.map +1 -0
  286. package/dist/types/src/cms/client/interfaces/pages/dashboard/content/content-management/topic/[id]/page.d.ts +20 -0
  287. package/dist/types/src/cms/client/interfaces/pages/dashboard/content/content-management/topic/[id]/page.d.ts.map +1 -0
  288. package/dist/types/src/cms/client/interfaces/pages/dashboard/content/{topic → content-management/topic}/index.d.ts +0 -1
  289. package/dist/types/src/cms/client/interfaces/pages/dashboard/content/content-management/topic/index.d.ts.map +1 -0
  290. package/dist/types/src/cms/client/interfaces/pages/dashboard/content/content-management/topic/page.d.ts +14 -0
  291. package/dist/types/src/cms/client/interfaces/pages/dashboard/content/content-management/topic/page.d.ts.map +1 -0
  292. package/dist/types/src/cms/client/interfaces/pages/index.d.ts +3 -2
  293. package/dist/types/src/cms/client/interfaces/pages/index.d.ts.map +1 -1
  294. package/dist/types/src/constants/paths/cms-paths.d.ts +9 -6
  295. package/dist/types/src/constants/paths/cms-paths.d.ts.map +1 -1
  296. package/dist/types/src/core/domain/index.d.ts +1 -1
  297. package/dist/types/src/core/domain/index.d.ts.map +1 -1
  298. package/dist/types/src/core/domain/static/index.d.ts +1 -1
  299. package/dist/types/src/core/domain/static/index.d.ts.map +1 -1
  300. package/dist/types/src/core/domain/static/post.d.ts +1 -1
  301. package/dist/types/src/core/domain/static/post.d.ts.map +1 -1
  302. package/dist/types/src/core/domain/static/topics.d.ts +36 -3
  303. package/dist/types/src/core/domain/static/topics.d.ts.map +1 -1
  304. package/dist/types/src/core/server/infrastructure/database/index.d.ts +1 -1
  305. package/dist/types/src/core/server/infrastructure/database/index.d.ts.map +1 -1
  306. package/dist/types/src/core/server/infrastructure/database/post/command/index.d.ts +2 -0
  307. package/dist/types/src/core/server/infrastructure/database/post/command/index.d.ts.map +1 -1
  308. package/dist/types/src/core/server/infrastructure/database/post/command/post-command-repository.d.ts +2 -2
  309. package/dist/types/src/core/server/infrastructure/database/post/command/post-command-repository.d.ts.map +1 -1
  310. package/dist/types/src/core/server/infrastructure/database/post/command/post-create-data.d.ts +160 -0
  311. package/dist/types/src/core/server/infrastructure/database/post/command/post-create-data.d.ts.map +1 -0
  312. package/dist/types/src/core/server/infrastructure/database/post/command/post-update-data.d.ts +207 -0
  313. package/dist/types/src/core/server/infrastructure/database/post/command/post-update-data.d.ts.map +1 -0
  314. package/dist/types/src/core/server/infrastructure/database/post/index.d.ts +1 -1
  315. package/dist/types/src/core/server/infrastructure/database/post/index.d.ts.map +1 -1
  316. package/dist/types/src/core/server/infrastructure/i18n/index.d.ts +1 -0
  317. package/dist/types/src/core/server/infrastructure/i18n/index.d.ts.map +1 -1
  318. package/dist/types/src/core/server/infrastructure/i18n/messages/index.d.ts +105 -0
  319. package/dist/types/src/core/server/infrastructure/i18n/messages/index.d.ts.map +1 -0
  320. package/dist/types/src/core/server/infrastructure/index.d.ts +1 -1
  321. package/dist/types/src/core/server/infrastructure/index.d.ts.map +1 -1
  322. package/dist/types/src/shared/form/types.d.ts +2 -2
  323. package/dist/types/src/shared/form/types.d.ts.map +1 -1
  324. package/dist/types/src/web/server/applications/index.d.ts +1 -1
  325. package/dist/types/src/web/server/applications/index.d.ts.map +1 -1
  326. package/dist/types/src/web/server/applications/sitemap/get-post-items.d.ts +3 -1
  327. package/dist/types/src/web/server/applications/sitemap/get-post-items.d.ts.map +1 -1
  328. package/dist/types/src/web/server/applications/sitemap/get-subcategory-items.d.ts +18 -0
  329. package/dist/types/src/web/server/applications/sitemap/get-subcategory-items.d.ts.map +1 -0
  330. package/dist/types/src/web/server/applications/sitemap/index.d.ts +1 -0
  331. package/dist/types/src/web/server/applications/sitemap/index.d.ts.map +1 -1
  332. package/dist/types/src/web/server/index.d.ts +1 -0
  333. package/dist/types/src/web/server/index.d.ts.map +1 -1
  334. package/dist/types/src/web/server/interfaces/create-web-interfaces.d.ts.map +1 -1
  335. package/dist/types/src/web/server/interfaces/loaders/index.d.ts +2 -0
  336. package/dist/types/src/web/server/interfaces/loaders/index.d.ts.map +1 -1
  337. package/dist/types/src/web/server/interfaces/loaders/load-categories.d.ts.map +1 -1
  338. package/dist/types/src/web/server/interfaces/loaders/load-category.d.ts.map +1 -1
  339. package/dist/types/src/web/server/interfaces/loaders/load-post.d.ts.map +1 -1
  340. package/dist/types/src/web/server/interfaces/loaders/load-posts.d.ts.map +1 -1
  341. package/dist/types/src/web/server/interfaces/loaders/load-subcategories.d.ts +10 -0
  342. package/dist/types/src/web/server/interfaces/loaders/load-subcategories.d.ts.map +1 -0
  343. package/dist/types/src/web/server/interfaces/loaders/load-subcategory.d.ts +8 -0
  344. package/dist/types/src/web/server/interfaces/loaders/load-subcategory.d.ts.map +1 -0
  345. package/dist/types/src/web/server/interfaces/types.d.ts +3 -1
  346. package/dist/types/src/web/server/interfaces/types.d.ts.map +1 -1
  347. package/package.json +2 -2
  348. package/dist/src/cms/client/interfaces/components/resources/category/category-relations-section.js +0 -82
  349. package/dist/src/cms/client/interfaces/pages/dashboard/content/tag/page.js +0 -81
  350. package/dist/src/cms/client/interfaces/pages/dashboard/content/topic/page.js +0 -79
  351. package/dist/types/src/cms/client/interfaces/components/resources/category/category-card.d.ts +0 -3
  352. package/dist/types/src/cms/client/interfaces/components/resources/category/category-card.d.ts.map +0 -1
  353. package/dist/types/src/cms/client/interfaces/components/resources/category/category-relations-section.d.ts.map +0 -1
  354. package/dist/types/src/cms/client/interfaces/components/resources/category/category-table.d.ts +0 -3
  355. package/dist/types/src/cms/client/interfaces/components/resources/category/category-table.d.ts.map +0 -1
  356. package/dist/types/src/cms/client/interfaces/components/resources/category/index.d.ts.map +0 -1
  357. package/dist/types/src/cms/client/interfaces/components/resources/tag/index.d.ts.map +0 -1
  358. package/dist/types/src/cms/client/interfaces/components/resources/tag/tag-card.d.ts.map +0 -1
  359. package/dist/types/src/cms/client/interfaces/components/resources/tag/tag-relations-section.d.ts.map +0 -1
  360. package/dist/types/src/cms/client/interfaces/components/resources/tag/tag-table.d.ts.map +0 -1
  361. package/dist/types/src/cms/client/interfaces/components/resources/topic/index.d.ts.map +0 -1
  362. package/dist/types/src/cms/client/interfaces/components/resources/topic/topic-card.d.ts.map +0 -1
  363. package/dist/types/src/cms/client/interfaces/components/resources/topic/topic-table.d.ts.map +0 -1
  364. package/dist/types/src/cms/client/interfaces/pages/dashboard/content/tag/[id]/edit/page.d.ts +0 -15
  365. package/dist/types/src/cms/client/interfaces/pages/dashboard/content/tag/[id]/edit/page.d.ts.map +0 -1
  366. package/dist/types/src/cms/client/interfaces/pages/dashboard/content/tag/[id]/page.d.ts +0 -17
  367. package/dist/types/src/cms/client/interfaces/pages/dashboard/content/tag/[id]/page.d.ts.map +0 -1
  368. package/dist/types/src/cms/client/interfaces/pages/dashboard/content/tag/create/page.d.ts +0 -11
  369. package/dist/types/src/cms/client/interfaces/pages/dashboard/content/tag/create/page.d.ts.map +0 -1
  370. package/dist/types/src/cms/client/interfaces/pages/dashboard/content/tag/index.d.ts.map +0 -1
  371. package/dist/types/src/cms/client/interfaces/pages/dashboard/content/tag/page.d.ts +0 -8
  372. package/dist/types/src/cms/client/interfaces/pages/dashboard/content/tag/page.d.ts.map +0 -1
  373. package/dist/types/src/cms/client/interfaces/pages/dashboard/content/topic/[id]/edit/page.d.ts +0 -15
  374. package/dist/types/src/cms/client/interfaces/pages/dashboard/content/topic/[id]/edit/page.d.ts.map +0 -1
  375. package/dist/types/src/cms/client/interfaces/pages/dashboard/content/topic/[id]/page.d.ts +0 -17
  376. package/dist/types/src/cms/client/interfaces/pages/dashboard/content/topic/[id]/page.d.ts.map +0 -1
  377. package/dist/types/src/cms/client/interfaces/pages/dashboard/content/topic/create/page.d.ts +0 -11
  378. package/dist/types/src/cms/client/interfaces/pages/dashboard/content/topic/create/page.d.ts.map +0 -1
  379. package/dist/types/src/cms/client/interfaces/pages/dashboard/content/topic/index.d.ts.map +0 -1
  380. package/dist/types/src/cms/client/interfaces/pages/dashboard/content/topic/page.d.ts +0 -12
  381. package/dist/types/src/cms/client/interfaces/pages/dashboard/content/topic/page.d.ts.map +0 -1
  382. package/dist/types/src/core/domain/translation.d.ts +0 -7
  383. package/dist/types/src/core/domain/translation.d.ts.map +0 -1
  384. /package/dist/types/src/cms/client/interfaces/components/resources/{category → post/category}/index.d.ts +0 -0
  385. /package/dist/types/src/cms/client/interfaces/components/resources/{tag → post/tag}/index.d.ts +0 -0
  386. /package/dist/types/src/cms/client/interfaces/components/resources/{topic → post/topic}/index.d.ts +0 -0
  387. /package/dist/types/src/cms/client/interfaces/pages/dashboard/content/{tag → content-management/tag}/index.d.ts +0 -0
@@ -0,0 +1,115 @@
1
+ "use client";
2
+ import { jsxs, Fragment, jsx } from 'react/jsx-runtime';
3
+ import { useTranslator } from 'intor/react';
4
+ import { Notebook } from 'lucide-react';
5
+ import { useParams } from 'next/navigation';
6
+ import { POST_TYPES } from 'sitero-domain';
7
+ import '../../../../../../../../../../../constants/paths/redirect.js';
8
+ import '../../../../../../../../../../../constants/cms-locale.js';
9
+ import '../../../../../../../../../../../core/client/infrastructure/contexts/admin/admin.js';
10
+ import 'react';
11
+ import '../../../../../../../../../../../core/client/infrastructure/react-query/client.js';
12
+ import '@tanstack/react-query';
13
+ import 'mime-types';
14
+ import { findTranslation } from '../../../../../../../../../../../shared/translation/find-translation.js';
15
+ import 'clsx';
16
+ import 'tailwind-merge';
17
+ import { ensureArray } from '../../../../../../../../../../../shared/utils/ensure-array.js';
18
+ import 'zod';
19
+ import 'sonner';
20
+ import { useQuery } from '../../../../../../../../../../../core/client/infrastructure/react-query/use-query.js';
21
+ import { getControlMeta } from '../../../../../../../../../applications/form/get-control-meta.js';
22
+ import '../../../../../../../../../../../core/domain/resources/admin/constants.js';
23
+ import { PageHeader } from '../../../../../../../../components/ui/blocks/page-header/page-header.js';
24
+ import '@radix-ui/react-avatar';
25
+ import '../../../../../../../../components/shadcn/badge.js';
26
+ import '../../../../../../../../components/shadcn/button.js';
27
+ import '@radix-ui/react-collapsible';
28
+ import '@radix-ui/react-dialog';
29
+ import '@radix-ui/react-dropdown-menu';
30
+ import '../../../../../../../../components/shadcn/input-group.js';
31
+ import '@radix-ui/react-label';
32
+ import '@radix-ui/react-radio-group';
33
+ import '@radix-ui/react-select';
34
+ import '@radix-ui/react-separator';
35
+ import '../../../../../../../../components/shadcn/sidebar/sidebar.js';
36
+ import 'next-themes';
37
+ import '@radix-ui/react-tabs';
38
+ import '@radix-ui/react-tooltip';
39
+ import 'next/link';
40
+ import { Badge } from '../../../../../../../../components/ui/display/badge.js';
41
+
42
+ function createSubcategoryEditPage({
43
+ postFindAction,
44
+ postFindFullAction,
45
+ postFindManyAction,
46
+ renderPostEditContent,
47
+ PostEditContent,
48
+ allowField
49
+ }) {
50
+ return function SubcategoryEditPage() {
51
+ const { t, locale } = useTranslator();
52
+ const { id, topicSlug } = useParams();
53
+ const allowFieldInTopic = (params) => allowField?.({ ...params, topicSlug: params.topicSlug ?? topicSlug }) ?? false;
54
+ const categoryType = POST_TYPES.CATEGORY;
55
+ const subcategoryType = POST_TYPES.SUBCATEGORY;
56
+ const { data: topic, isFetching: isFetchingTopic } = useQuery(
57
+ () => postFindAction({ type: POST_TYPES.TOPIC, slug: topicSlug }),
58
+ ["postFindAction", POST_TYPES.TOPIC, topicSlug],
59
+ { select: (data) => data?.post }
60
+ );
61
+ const {
62
+ data: subcategory,
63
+ isFetching,
64
+ isNotFound
65
+ } = useQuery(() => postFindFullAction({ id }), ["postFindFullAction", id], {
66
+ select: (data) => data?.post
67
+ });
68
+ const { data: categories, isFetching: isFetchingControlMeta } = useQuery(
69
+ () => postFindManyAction({ type: subcategoryType, topicId: topic?.id }),
70
+ ["postFindManyAction", subcategoryType, topic?.id],
71
+ { select: (data) => data?.posts, enabled: !!topic }
72
+ );
73
+ const controlMeta = getControlMeta({
74
+ records: ensureArray(categories),
75
+ excludeIndex: subcategory?.index,
76
+ excludeSlug: subcategory?.slug
77
+ });
78
+ return /* @__PURE__ */ jsxs(Fragment, { children: [
79
+ /* @__PURE__ */ jsx(
80
+ PageHeader,
81
+ {
82
+ variant: "edit",
83
+ titleProps: {
84
+ icon: Notebook,
85
+ title: t("resources.subcategory.text"),
86
+ leftChildren: /* @__PURE__ */ jsx(Badge, { isLoading: isFetchingTopic, children: findTranslation(topic?.translations, locale)?.title })
87
+ }
88
+ }
89
+ ),
90
+ PostEditContent && allowField && /* @__PURE__ */ jsx(
91
+ PostEditContent,
92
+ {
93
+ post: subcategory,
94
+ postType: subcategoryType,
95
+ parentType: categoryType,
96
+ parentLabelKey: "resources.category.text",
97
+ controlMeta,
98
+ isFetching: isFetchingTopic || isFetching || isFetchingControlMeta,
99
+ isNotFound,
100
+ allowField: allowFieldInTopic
101
+ }
102
+ ),
103
+ renderPostEditContent?.({
104
+ subcategory,
105
+ categoryType,
106
+ subcategoryType,
107
+ controlMeta,
108
+ isFetching: isFetchingTopic || isFetching || isFetchingControlMeta,
109
+ isNotFound
110
+ })
111
+ ] });
112
+ };
113
+ }
114
+
115
+ export { createSubcategoryEditPage };
@@ -0,0 +1,170 @@
1
+ "use client";
2
+ import { jsxs, Fragment, jsx } from 'react/jsx-runtime';
3
+ import { useTranslator } from 'intor/react';
4
+ import { Notebook } from 'lucide-react';
5
+ import { useParams, useRouter } from 'next/navigation';
6
+ import { POST_TYPES } from 'sitero-domain';
7
+ import { CMS_PATHS } from '../../../../../../../../../../constants/paths/cms-paths.js';
8
+ import '../../../../../../../../../../constants/paths/redirect.js';
9
+ import '../../../../../../../../../../constants/cms-locale.js';
10
+ import '../../../../../../../../../../core/client/infrastructure/contexts/admin/admin.js';
11
+ import 'react';
12
+ import '../../../../../../../../../../core/client/infrastructure/react-query/client.js';
13
+ import '@tanstack/react-query';
14
+ import { useCommand } from '../../../../../../../../../../core/client/infrastructure/react-query/use-command.js';
15
+ import { useQuery } from '../../../../../../../../../../core/client/infrastructure/react-query/use-query.js';
16
+ import 'mime-types';
17
+ import { findTranslation } from '../../../../../../../../../../shared/translation/find-translation.js';
18
+ import 'clsx';
19
+ import 'tailwind-merge';
20
+ import { joinUrl } from '../../../../../../../../../../shared/utils/join-url.js';
21
+ import 'zod';
22
+ import { PageHeader } from '../../../../../../../components/ui/blocks/page-header/page-header.js';
23
+ import '@radix-ui/react-avatar';
24
+ import '../../../../../../../components/shadcn/badge.js';
25
+ import '../../../../../../../components/shadcn/button.js';
26
+ import '@radix-ui/react-collapsible';
27
+ import '@radix-ui/react-dialog';
28
+ import '@radix-ui/react-dropdown-menu';
29
+ import '../../../../../../../components/shadcn/input-group.js';
30
+ import '@radix-ui/react-label';
31
+ import '@radix-ui/react-radio-group';
32
+ import '@radix-ui/react-select';
33
+ import '@radix-ui/react-separator';
34
+ import '../../../../../../../components/shadcn/sidebar/sidebar.js';
35
+ import 'next-themes';
36
+ import 'sonner';
37
+ import '@radix-ui/react-tabs';
38
+ import '@radix-ui/react-tooltip';
39
+ import '../../../../../../../../../../core/domain/resources/admin/constants.js';
40
+ import 'next/link';
41
+ import { Badge } from '../../../../../../../components/ui/display/badge.js';
42
+ import { ExternalLink } from '../../../../../../../components/ui/features/external-link.js';
43
+ import 'next/image';
44
+
45
+ function createSubcategoryShowPage({
46
+ enableSeoMetadata,
47
+ externalHref,
48
+ postFindAction,
49
+ postFindFullAction,
50
+ postDeleteAction,
51
+ SeoMetadataDialog,
52
+ renderPostShowContent,
53
+ PostShowContent,
54
+ allowField,
55
+ CategoryRelationsSection
56
+ }) {
57
+ return function CategoryShowPage() {
58
+ const { t, locale } = useTranslator();
59
+ const { id, topicSlug } = useParams();
60
+ const router = useRouter();
61
+ const postType = POST_TYPES.POST;
62
+ const isFieldAllowed = (type, field, fieldRuleKey) => allowField?.({ topicSlug, type, field, fieldRuleKey }) ?? false;
63
+ const { data: topic, isFetching: isFetchingTopic } = useQuery(
64
+ () => postFindAction({ type: POST_TYPES.TOPIC, slug: topicSlug }),
65
+ ["postFindAction", POST_TYPES.TOPIC, topicSlug],
66
+ { select: (data) => data?.post }
67
+ );
68
+ const {
69
+ data: subcategory,
70
+ isFetching,
71
+ isNotFound
72
+ } = useQuery(() => postFindFullAction({ id }), ["postFindFullAction", id], {
73
+ select: (data) => data?.post
74
+ });
75
+ const { execute, isRedirecting } = useCommand(
76
+ () => postDeleteAction({ id }),
77
+ {
78
+ onSuccess: () => router.replace(
79
+ joinUrl(
80
+ CMS_PATHS.content["content-management"].pathname,
81
+ topicSlug
82
+ )
83
+ )
84
+ }
85
+ );
86
+ return /* @__PURE__ */ jsxs(Fragment, { children: [
87
+ /* @__PURE__ */ jsx(
88
+ PageHeader,
89
+ {
90
+ variant: "show",
91
+ titleProps: {
92
+ icon: Notebook,
93
+ title: t("resources.subcategory.text"),
94
+ leftChildren: /* @__PURE__ */ jsx(Badge, { isLoading: isFetchingTopic, children: findTranslation(topic?.translations, locale)?.title })
95
+ },
96
+ returnButtonProps: {
97
+ href: joinUrl(
98
+ CMS_PATHS.content["content-management"].pathname,
99
+ topicSlug
100
+ )
101
+ },
102
+ editButtonProps: {
103
+ href: joinUrl(
104
+ CMS_PATHS.content["content-management"].subcategory.pathname(
105
+ topicSlug
106
+ ),
107
+ id,
108
+ "edit"
109
+ )
110
+ },
111
+ destroyButtonProps: {
112
+ onClick: () => {
113
+ if (!confirm(t("ui.dialog.confirm.text"))) return;
114
+ void execute();
115
+ },
116
+ isLoading: isRedirecting,
117
+ isDisabled: isFetching || subcategory?.isLocked
118
+ },
119
+ rightChildren: /* @__PURE__ */ jsxs("div", { className: "flex gap-2", children: [
120
+ !!enableSeoMetadata && /* @__PURE__ */ jsx(
121
+ SeoMetadataDialog,
122
+ {
123
+ id: subcategory?.id,
124
+ isArticle: true,
125
+ isLoading: isFetching,
126
+ isDisabled: isNotFound
127
+ }
128
+ ),
129
+ subcategory && externalHref?.(subcategory) && /* @__PURE__ */ jsx(ExternalLink, { href: externalHref?.(subcategory) })
130
+ ] }),
131
+ isDisabled: isFetching,
132
+ isNotFound,
133
+ isLocked: subcategory?.isLocked
134
+ }
135
+ ),
136
+ PostShowContent && allowField && /* @__PURE__ */ jsx(
137
+ PostShowContent,
138
+ {
139
+ post: subcategory,
140
+ isFetching,
141
+ isNotFound,
142
+ allowField,
143
+ children: subcategory && CategoryRelationsSection && /* @__PURE__ */ jsx(
144
+ CategoryRelationsSection,
145
+ {
146
+ category: subcategory,
147
+ headerProps: { children: t("resources.post.text") },
148
+ usableFields: [
149
+ ...isFieldAllowed(postType, "isActive") ? ["isActive"] : [],
150
+ ...isFieldAllowed(postType, "isIndexActive") ? ["isIndexActive"] : [],
151
+ ...isFieldAllowed(postType, "isSlugActive") ? ["isSlugActive"] : [],
152
+ ...isFieldAllowed(postType, "isFeatured") ? ["isFeatured"] : [],
153
+ ...isFieldAllowed(postType, "isShownOnHome") ? ["isShownOnHome"] : []
154
+ ]
155
+ }
156
+ )
157
+ }
158
+ ),
159
+ renderPostShowContent?.({
160
+ subcategory,
161
+ postType,
162
+ isFetching,
163
+ isNotFound,
164
+ headerProps: { children: t("resources.post.text") }
165
+ })
166
+ ] });
167
+ };
168
+ }
169
+
170
+ export { createSubcategoryShowPage };
@@ -0,0 +1,117 @@
1
+ "use client";
2
+ import { jsxs, Fragment, jsx } from 'react/jsx-runtime';
3
+ import { useTranslator } from 'intor/react';
4
+ import { useParams } from 'next/navigation';
5
+ import { POST_TYPES } from 'sitero-domain';
6
+ import { CMS_PATHS } from '../../../../../../../../../../constants/paths/cms-paths.js';
7
+ import '../../../../../../../../../../constants/paths/redirect.js';
8
+ import '../../../../../../../../../../constants/cms-locale.js';
9
+ import '../../../../../../../../../../core/client/infrastructure/contexts/admin/admin.js';
10
+ import 'react';
11
+ import '../../../../../../../../../../core/client/infrastructure/react-query/client.js';
12
+ import '@tanstack/react-query';
13
+ import 'mime-types';
14
+ import { findTranslation } from '../../../../../../../../../../shared/translation/find-translation.js';
15
+ import 'clsx';
16
+ import 'tailwind-merge';
17
+ import { ensureArray } from '../../../../../../../../../../shared/utils/ensure-array.js';
18
+ import { joinUrl } from '../../../../../../../../../../shared/utils/join-url.js';
19
+ import 'zod';
20
+ import 'sonner';
21
+ import { useQuery } from '../../../../../../../../../../core/client/infrastructure/react-query/use-query.js';
22
+ import { getControlMeta } from '../../../../../../../../applications/form/get-control-meta.js';
23
+ import 'lucide-react';
24
+ import '../../../../../../../../../../core/domain/resources/admin/constants.js';
25
+ import { PageHeader } from '../../../../../../../components/ui/blocks/page-header/page-header.js';
26
+ import '@radix-ui/react-avatar';
27
+ import '../../../../../../../components/shadcn/badge.js';
28
+ import '../../../../../../../components/shadcn/button.js';
29
+ import '@radix-ui/react-collapsible';
30
+ import '@radix-ui/react-dialog';
31
+ import '@radix-ui/react-dropdown-menu';
32
+ import '../../../../../../../components/shadcn/input-group.js';
33
+ import '@radix-ui/react-label';
34
+ import '@radix-ui/react-radio-group';
35
+ import '@radix-ui/react-select';
36
+ import '@radix-ui/react-separator';
37
+ import '../../../../../../../components/shadcn/sidebar/sidebar.js';
38
+ import 'next-themes';
39
+ import '@radix-ui/react-tabs';
40
+ import '@radix-ui/react-tooltip';
41
+ import 'next/link';
42
+ import { Badge } from '../../../../../../../components/ui/display/badge.js';
43
+
44
+ function createSubcategoryCreatePage({
45
+ postFindAction,
46
+ postFindManyAction,
47
+ renderPostCreateContent,
48
+ PostCreateContent,
49
+ allowField
50
+ }) {
51
+ return function SubcategoryCreatePage() {
52
+ const { t, locale } = useTranslator();
53
+ const { topicSlug } = useParams();
54
+ const allowFieldInTopic = (params) => allowField?.({ ...params, topicSlug: params.topicSlug ?? topicSlug }) ?? false;
55
+ const categoryType = POST_TYPES.CATEGORY;
56
+ const subcategoryType = POST_TYPES.SUBCATEGORY;
57
+ const returnHref = joinUrl(
58
+ CMS_PATHS.content["content-management"].pathname,
59
+ topicSlug
60
+ );
61
+ const {
62
+ data: topic,
63
+ isFetching: isFetchingTopic,
64
+ isNotFound
65
+ } = useQuery(
66
+ () => postFindAction({ type: POST_TYPES.TOPIC, slug: topicSlug }),
67
+ ["postFindAction", POST_TYPES.TOPIC, topicSlug],
68
+ { select: (data) => data?.post }
69
+ );
70
+ const { data: subcategories, isFetching: isFetchingControlMeta } = useQuery(
71
+ () => postFindManyAction({ type: subcategoryType, topicId: topic?.id }),
72
+ ["postFindManyAction", subcategoryType, topic?.id],
73
+ { select: (data) => data?.posts, enabled: !!topic }
74
+ );
75
+ const controlMeta = getControlMeta({ records: ensureArray(subcategories) });
76
+ return /* @__PURE__ */ jsxs(Fragment, { children: [
77
+ /* @__PURE__ */ jsx(
78
+ PageHeader,
79
+ {
80
+ variant: "create",
81
+ titleProps: {
82
+ title: t("resources.subcategory.text"),
83
+ leftChildren: /* @__PURE__ */ jsx(Badge, { isLoading: isFetchingTopic, children: findTranslation(topic?.translations, locale)?.title })
84
+ },
85
+ returnButtonProps: {
86
+ href: returnHref
87
+ },
88
+ isDisabled: isFetchingTopic || isFetchingControlMeta,
89
+ isNotFound
90
+ }
91
+ ),
92
+ PostCreateContent && allowField && /* @__PURE__ */ jsx(
93
+ PostCreateContent,
94
+ {
95
+ topic,
96
+ postType: subcategoryType,
97
+ parentType: categoryType,
98
+ parentLabelKey: "resources.category.text",
99
+ controlMeta,
100
+ isFetching: isFetchingTopic || isFetchingControlMeta,
101
+ allowField: allowFieldInTopic,
102
+ cancelButtonHref: returnHref
103
+ }
104
+ ),
105
+ renderPostCreateContent?.({
106
+ topic,
107
+ categoryType,
108
+ subcategoryType,
109
+ controlMeta,
110
+ isFetching: isFetchingTopic || isFetchingControlMeta,
111
+ cancelButtonHref: returnHref
112
+ })
113
+ ] });
114
+ };
115
+ }
116
+
117
+ export { createSubcategoryCreatePage };
@@ -19,6 +19,8 @@ import { joinUrl } from '../../../../../../../shared/utils/join-url.js';
19
19
  import 'zod';
20
20
  import 'sonner';
21
21
  import { useQuery } from '../../../../../../../core/client/infrastructure/react-query/use-query.js';
22
+ import '../../../../../../../core/domain/resources/admin/constants.js';
23
+ import { isContentTopic } from '../../../../../../../core/domain/static/topics.js';
22
24
  import '@radix-ui/react-avatar';
23
25
  import '../../../../components/shadcn/badge.js';
24
26
  import '../../../../components/shadcn/button.js';
@@ -43,6 +45,7 @@ import 'intor/next';
43
45
  import { ContentContainer } from '../../../../components/ui/layouts/content-container.js';
44
46
 
45
47
  function createContentManagementPage({
48
+ topics: staticTopics,
46
49
  postFindManyAction
47
50
  }) {
48
51
  return function ContentManagementPage() {
@@ -50,7 +53,11 @@ function createContentManagementPage({
50
53
  const { data: topics, isFetching } = useQuery(
51
54
  () => postFindManyAction({ type: POST_TYPES.TOPIC }),
52
55
  ["postFindManyAction", POST_TYPES.TOPIC],
53
- { select: (data) => data?.posts }
56
+ {
57
+ select: (data) => ensureArray(data?.posts).filter(
58
+ (topic) => isContentTopic(staticTopics, topic.slug)
59
+ )
60
+ }
54
61
  );
55
62
  return /* @__PURE__ */ jsxs(Fragment, { children: [
56
63
  /* @__PURE__ */ jsx(
@@ -0,0 +1,100 @@
1
+ "use client";
2
+ import { jsxs, Fragment, jsx } from 'react/jsx-runtime';
3
+ import { useTranslator } from 'intor/react';
4
+ import { Tag } from 'lucide-react';
5
+ import { useParams } from 'next/navigation';
6
+ import { POST_TYPES } from 'sitero-domain';
7
+ import '../../../../../../../../../../constants/paths/redirect.js';
8
+ import '../../../../../../../../../../constants/cms-locale.js';
9
+ import '../../../../../../../../../../core/client/infrastructure/contexts/admin/admin.js';
10
+ import 'react';
11
+ import '../../../../../../../../../../core/client/infrastructure/react-query/client.js';
12
+ import '@tanstack/react-query';
13
+ import 'mime-types';
14
+ import 'clsx';
15
+ import 'tailwind-merge';
16
+ import { ensureArray } from '../../../../../../../../../../shared/utils/ensure-array.js';
17
+ import 'zod';
18
+ import 'sonner';
19
+ import { useQuery } from '../../../../../../../../../../core/client/infrastructure/react-query/use-query.js';
20
+ import { getControlMeta } from '../../../../../../../../applications/form/get-control-meta.js';
21
+ import '../../../../../../../../../../core/domain/resources/admin/constants.js';
22
+ import { PageHeader } from '../../../../../../../components/ui/blocks/page-header/page-header.js';
23
+ import '@radix-ui/react-avatar';
24
+ import '../../../../../../../components/shadcn/badge.js';
25
+ import '../../../../../../../components/shadcn/button.js';
26
+ import '@radix-ui/react-collapsible';
27
+ import '@radix-ui/react-dialog';
28
+ import '@radix-ui/react-dropdown-menu';
29
+ import '../../../../../../../components/shadcn/input-group.js';
30
+ import '@radix-ui/react-label';
31
+ import '@radix-ui/react-radio-group';
32
+ import '@radix-ui/react-select';
33
+ import '@radix-ui/react-separator';
34
+ import '../../../../../../../components/shadcn/sidebar/sidebar.js';
35
+ import 'next-themes';
36
+ import '@radix-ui/react-tabs';
37
+ import '@radix-ui/react-tooltip';
38
+
39
+ function createTagEditPage({
40
+ type = POST_TYPES.TAG,
41
+ postFindFullAction,
42
+ postFindManyAction,
43
+ renderPostEditContent,
44
+ PostEditContent,
45
+ allowField
46
+ }) {
47
+ return function TagEditPage() {
48
+ const { t } = useTranslator();
49
+ const { id } = useParams();
50
+ const {
51
+ data: tag,
52
+ isFetching,
53
+ isNotFound
54
+ } = useQuery(() => postFindFullAction({ id }), ["postFindFullAction", id], {
55
+ select: (data) => data?.post
56
+ });
57
+ const { data: tags, isFetching: isFetchingControlMeta } = useQuery(
58
+ () => postFindManyAction({ type }),
59
+ ["postFindManyAction", type],
60
+ { select: (data) => data?.posts }
61
+ );
62
+ const controlMeta = getControlMeta({
63
+ records: ensureArray(tags),
64
+ excludeIndex: tag?.index,
65
+ excludeSlug: tag?.slug
66
+ });
67
+ const isScopeNotFound = isNotFound || !!tag && tag.type !== type;
68
+ return /* @__PURE__ */ jsxs(Fragment, { children: [
69
+ /* @__PURE__ */ jsx(
70
+ PageHeader,
71
+ {
72
+ variant: "edit",
73
+ titleProps: {
74
+ icon: Tag,
75
+ title: t("resources.tag.text")
76
+ }
77
+ }
78
+ ),
79
+ PostEditContent && allowField && /* @__PURE__ */ jsx(
80
+ PostEditContent,
81
+ {
82
+ post: tag,
83
+ postType: type,
84
+ controlMeta,
85
+ isFetching: isFetching || isFetchingControlMeta,
86
+ isNotFound: isScopeNotFound,
87
+ allowField
88
+ }
89
+ ),
90
+ renderPostEditContent?.({
91
+ tag,
92
+ controlMeta,
93
+ isFetching: isFetching || isFetchingControlMeta,
94
+ isNotFound: isScopeNotFound
95
+ })
96
+ ] });
97
+ };
98
+ }
99
+
100
+ export { createTagEditPage };
@@ -3,49 +3,54 @@ import { jsxs, Fragment, jsx } from 'react/jsx-runtime';
3
3
  import { useTranslator } from 'intor/react';
4
4
  import { Tag } from 'lucide-react';
5
5
  import { useParams, useRouter } from 'next/navigation';
6
- import { CMS_PATHS } from '../../../../../../../../constants/paths/cms-paths.js';
7
- import '../../../../../../../../constants/paths/redirect.js';
8
- import '../../../../../../../../constants/cms-locale.js';
9
- import '../../../../../../../../core/client/infrastructure/contexts/admin/admin.js';
6
+ import { POST_TYPES } from 'sitero-domain';
7
+ import { CMS_PATHS } from '../../../../../../../../../constants/paths/cms-paths.js';
8
+ import '../../../../../../../../../constants/paths/redirect.js';
9
+ import '../../../../../../../../../constants/cms-locale.js';
10
+ import '../../../../../../../../../core/client/infrastructure/contexts/admin/admin.js';
10
11
  import 'react';
11
- import '../../../../../../../../core/client/infrastructure/react-query/client.js';
12
+ import '../../../../../../../../../core/client/infrastructure/react-query/client.js';
12
13
  import '@tanstack/react-query';
13
- import { useCommand } from '../../../../../../../../core/client/infrastructure/react-query/use-command.js';
14
- import { useQuery } from '../../../../../../../../core/client/infrastructure/react-query/use-query.js';
14
+ import { useCommand } from '../../../../../../../../../core/client/infrastructure/react-query/use-command.js';
15
+ import { useQuery } from '../../../../../../../../../core/client/infrastructure/react-query/use-query.js';
15
16
  import 'mime-types';
16
- import 'sitero-domain';
17
17
  import 'clsx';
18
18
  import 'tailwind-merge';
19
19
  import 'zod';
20
- import { PageHeader } from '../../../../../components/ui/blocks/page-header/page-header.js';
20
+ import { PageHeader } from '../../../../../../components/ui/blocks/page-header/page-header.js';
21
21
  import '@radix-ui/react-avatar';
22
- import '../../../../../components/shadcn/badge.js';
23
- import '../../../../../components/shadcn/button.js';
22
+ import '../../../../../../components/shadcn/badge.js';
23
+ import '../../../../../../components/shadcn/button.js';
24
24
  import '@radix-ui/react-collapsible';
25
25
  import '@radix-ui/react-dialog';
26
26
  import '@radix-ui/react-dropdown-menu';
27
- import '../../../../../components/shadcn/input-group.js';
27
+ import '../../../../../../components/shadcn/input-group.js';
28
28
  import '@radix-ui/react-label';
29
29
  import '@radix-ui/react-radio-group';
30
30
  import '@radix-ui/react-select';
31
31
  import '@radix-ui/react-separator';
32
- import '../../../../../components/shadcn/sidebar/sidebar.js';
32
+ import '../../../../../../components/shadcn/sidebar/sidebar.js';
33
33
  import 'next-themes';
34
34
  import 'sonner';
35
35
  import '@radix-ui/react-tabs';
36
36
  import '@radix-ui/react-tooltip';
37
+ import '../../../../../../../../../core/domain/resources/admin/constants.js';
37
38
  import 'next/link';
38
- import '../../../../../../../../core/domain/resources/admin/constants.js';
39
- import { ExternalLink } from '../../../../../components/ui/features/external-link.js';
39
+ import { ExternalLink } from '../../../../../../components/ui/features/external-link.js';
40
40
  import 'next/image';
41
41
 
42
42
  function createTagShowPage({
43
+ type = POST_TYPES.TAG,
44
+ returnHref = CMS_PATHS.content["content-management"].tag.pathname,
43
45
  enableSeoMetadata,
44
46
  externalHref,
45
47
  postFindFullAction,
46
48
  postDeleteAction,
47
49
  SeoMetadataDialog,
48
- renderPostShowContent
50
+ renderPostShowContent,
51
+ PostShowContent,
52
+ allowField,
53
+ TagRelationsSection
49
54
  }) {
50
55
  return function TagShowPage() {
51
56
  const { t } = useTranslator();
@@ -58,9 +63,12 @@ function createTagShowPage({
58
63
  } = useQuery(() => postFindFullAction({ id }), ["postFindFullAction", id], {
59
64
  select: (data) => data?.post
60
65
  });
66
+ const isScopeNotFound = isNotFound || !!tag && tag.type !== type;
61
67
  const { execute, isRedirecting } = useCommand(
62
68
  () => postDeleteAction({ id }),
63
- { onSuccess: () => router.replace(CMS_PATHS.content.tag.pathname) }
69
+ {
70
+ onSuccess: () => router.replace(returnHref)
71
+ }
64
72
  );
65
73
  return /* @__PURE__ */ jsxs(Fragment, { children: [
66
74
  /* @__PURE__ */ jsx(
@@ -86,19 +94,29 @@ function createTagShowPage({
86
94
  id,
87
95
  isArticle: true,
88
96
  isLoading: isFetching,
89
- isDisabled: isNotFound
97
+ isDisabled: isScopeNotFound
90
98
  }
91
99
  ),
92
100
  tag && externalHref?.(tag) && /* @__PURE__ */ jsx(ExternalLink, { href: externalHref?.(tag) })
93
101
  ] }),
94
- isDisabled: isFetching,
95
- isNotFound
102
+ isDisabled: isFetching || isScopeNotFound,
103
+ isNotFound: isScopeNotFound
96
104
  }
97
105
  ),
98
- renderPostShowContent({
106
+ PostShowContent && allowField && /* @__PURE__ */ jsx(
107
+ PostShowContent,
108
+ {
109
+ post: tag,
110
+ isFetching,
111
+ isNotFound: isScopeNotFound,
112
+ allowField,
113
+ children: tag && TagRelationsSection && /* @__PURE__ */ jsx(TagRelationsSection, { tag })
114
+ }
115
+ ),
116
+ renderPostShowContent?.({
99
117
  tag,
100
118
  isFetching,
101
- isNotFound
119
+ isNotFound: isScopeNotFound
102
120
  })
103
121
  ] });
104
122
  };