sitero 0.1.0 → 0.1.2

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