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,461 @@
1
+ "use client";
2
+ import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
3
+ import { useTranslator } from 'intor/react';
4
+ import { useRouter } from 'next/navigation';
5
+ import { POST_TYPES } from 'sitero-domain';
6
+ import '../../../../../../../constants/paths/redirect.js';
7
+ import '../../../../../../../constants/cms-locale.js';
8
+ import '../../../../../../../core/client/infrastructure/contexts/admin/admin.js';
9
+ import 'react';
10
+ import '../../../../../../../core/client/infrastructure/react-query/client.js';
11
+ import '@tanstack/react-query';
12
+ import { useCommand } from '../../../../../../../core/client/infrastructure/react-query/use-command.js';
13
+ import 'mime-types';
14
+ import 'clsx';
15
+ import 'tailwind-merge';
16
+ import 'zod';
17
+ import { getImgIdsFromHtmls } from '../../../../../applications/form/get-img-ids-from-htmls.js';
18
+ import { processContentHtml } from '../../../../../applications/form/process-content-html.js';
19
+ import { useParentPathname } from '../../../../../applications/ui/use-parent-pathname.js';
20
+ import 'lucide-react';
21
+ import '../../../../../../../core/domain/resources/admin/constants.js';
22
+ import '@radix-ui/react-avatar';
23
+ import '../../../shadcn/badge.js';
24
+ import '../../../shadcn/button.js';
25
+ import '@radix-ui/react-collapsible';
26
+ import '@radix-ui/react-dialog';
27
+ import '@radix-ui/react-dropdown-menu';
28
+ import '../../../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 { Separator } from '../../../shadcn/separator.js';
33
+ import '../../../shadcn/sidebar/sidebar.js';
34
+ import 'next-themes';
35
+ import 'sonner';
36
+ import '@radix-ui/react-tabs';
37
+ import '@radix-ui/react-tooltip';
38
+ import 'next/link';
39
+ import { Form } from '../../../ui/form/form.js';
40
+ import { Field } from '../../../ui/form/field.js';
41
+ import { FieldsContainer } from '../../../ui/form/containers/fields-container.js';
42
+ import { MainFields } from '../../../ui/form/containers/main-fields.js';
43
+ import { SideFields } from '../../../ui/form/containers/side-fields.js';
44
+ import { ControlFields } from '../../../ui/form/control-fields/control-fields.js';
45
+ import { ActionButtonsCard } from '../../../ui/cards/action-buttons-card.js';
46
+ import { PickModal } from '../../../ui/features/pick-modal/pick-modal.js';
47
+ import 'next/image';
48
+ import 'intor/next';
49
+ import { ContentContainer } from '../../../ui/layouts/content-container.js';
50
+ import { AdminCard } from '../../admin/admin-card.js';
51
+ import { CategoryCard } from '../category/category-card.js';
52
+ import { CategoryTable } from '../category/category-table.js';
53
+ import { TagCard } from '../tag/tag-card.js';
54
+ import { TagTable } from '../tag/tag-table.js';
55
+
56
+ function createPostEditContent({
57
+ usePostUpdateFormData,
58
+ postUpdateAction,
59
+ AdminList,
60
+ PostList,
61
+ PostCard,
62
+ FileList,
63
+ FileCard,
64
+ Uploader,
65
+ I18nTextarea,
66
+ I18nEditor,
67
+ I18nObjectArrayInput,
68
+ I18nNumberInput
69
+ }) {
70
+ return function PostEditContent({
71
+ postType,
72
+ parentType,
73
+ parentLabelKey,
74
+ isSubcategoryParent = false,
75
+ CategoryCard: CategoryCard$1 = CategoryCard,
76
+ CategoryTable: CategoryTable$1 = CategoryTable,
77
+ tagType = POST_TYPES.TAG,
78
+ post,
79
+ controlMeta,
80
+ isFetching,
81
+ isNotFound,
82
+ allowField
83
+ }) {
84
+ const { t, locale } = useTranslator();
85
+ const router = useRouter();
86
+ const parentPathname = useParentPathname();
87
+ const id = post?.id ?? "";
88
+ const topic = post?.topic;
89
+ const slug = post?.slug;
90
+ const topicSlug = topic?.slug;
91
+ const isFieldAllowed = (type, field, fieldRuleKey) => allowField({ topicSlug, type, field, fieldRuleKey });
92
+ const { formData, setFormData } = usePostUpdateFormData({
93
+ post,
94
+ type: postType
95
+ });
96
+ const { execute, isRedirecting, errors } = useCommand(
97
+ () => {
98
+ const contentImageIds = getImgIdsFromHtmls(
99
+ formData.translations.map((t2) => t2.content ?? "")
100
+ );
101
+ const translations = formData.translations.map((t2) => {
102
+ const { content, toc } = processContentHtml(t2.content);
103
+ return { ...t2, content, toc };
104
+ });
105
+ return postUpdateAction({
106
+ id,
107
+ formData: { ...formData, contentImageIds, translations }
108
+ });
109
+ },
110
+ { onSuccess: () => router.replace(parentPathname) }
111
+ );
112
+ return /* @__PURE__ */ jsx(ContentContainer, { isNotFound, children: /* @__PURE__ */ jsxs(Form, { onSubmit: () => void execute(), children: [
113
+ /* @__PURE__ */ jsxs(FieldsContainer, { children: [
114
+ /* @__PURE__ */ jsxs(MainFields, { children: [
115
+ /* @__PURE__ */ jsxs(Fragment, { children: [
116
+ isFieldAllowed(postType, "author", slug) && /* @__PURE__ */ jsx(Field, { label: t("resources.post.author.text"), children: /* @__PURE__ */ jsx(
117
+ PickModal,
118
+ {
119
+ fieldName: "author",
120
+ formData,
121
+ setFormData,
122
+ isLoading: isFetching,
123
+ isDisabled: isRedirecting,
124
+ itemList: /* @__PURE__ */ jsx(AdminList, {}),
125
+ pickedDisplay: /* @__PURE__ */ jsx(AdminCard, { admin: formData.author })
126
+ }
127
+ ) }),
128
+ isFieldAllowed(postType, "parents", slug) && parentType && /* @__PURE__ */ jsx(Field, { label: t(parentLabelKey ?? "resources.category.text"), children: /* @__PURE__ */ jsx(
129
+ PickModal,
130
+ {
131
+ fieldName: "parents",
132
+ formData,
133
+ setFormData,
134
+ isLoading: isFetching,
135
+ isDisabled: isRedirecting,
136
+ isMultiPick: true,
137
+ itemList: /* @__PURE__ */ jsx(
138
+ PostList,
139
+ {
140
+ usableFields: [
141
+ ...isFieldAllowed(parentType, "isActive") ? ["isActive"] : [],
142
+ ...isFieldAllowed(parentType, "isIndexActive") ? ["isIndexActive"] : [],
143
+ ...isFieldAllowed(parentType, "isSlugActive") ? ["isSlugActive"] : [],
144
+ ...isFieldAllowed(parentType, "isFeatured") ? ["isFeatured"] : [],
145
+ ...isFieldAllowed(parentType, "isShownOnHome") ? ["isShownOnHome"] : []
146
+ ],
147
+ type: parentType,
148
+ topicId: topic?.id,
149
+ Card: (props) => /* @__PURE__ */ jsx(
150
+ CategoryCard$1,
151
+ {
152
+ ...props,
153
+ isSubcategory: isSubcategoryParent
154
+ }
155
+ ),
156
+ Table: (props) => /* @__PURE__ */ jsx(
157
+ CategoryTable$1,
158
+ {
159
+ ...props,
160
+ isSubcategory: isSubcategoryParent
161
+ }
162
+ ),
163
+ localKey: `parent-${parentType}`
164
+ }
165
+ ),
166
+ pickedDisplay: formData.parents.map((parent) => /* @__PURE__ */ jsx(
167
+ CategoryCard$1,
168
+ {
169
+ post: parent,
170
+ isSubcategory: isSubcategoryParent
171
+ },
172
+ parent.id
173
+ ))
174
+ }
175
+ ) }),
176
+ isFieldAllowed(postType, "tags", slug) && /* @__PURE__ */ jsx(Field, { label: t("resources.tag.text"), children: /* @__PURE__ */ jsx(
177
+ PickModal,
178
+ {
179
+ fieldName: "tags",
180
+ formData,
181
+ setFormData,
182
+ isLoading: isFetching,
183
+ isDisabled: isRedirecting,
184
+ isMultiPick: true,
185
+ itemList: /* @__PURE__ */ jsx(
186
+ PostList,
187
+ {
188
+ usableFields: [
189
+ ...isFieldAllowed(tagType, "isActive") ? ["isActive"] : [],
190
+ ...isFieldAllowed(tagType, "isIndexActive") ? ["isIndexActive"] : [],
191
+ ...isFieldAllowed(tagType, "isSlugActive") ? ["isSlugActive"] : [],
192
+ ...isFieldAllowed(tagType, "isFeatured") ? ["isFeatured"] : [],
193
+ ...isFieldAllowed(tagType, "isShownOnHome") ? ["isShownOnHome"] : []
194
+ ],
195
+ type: tagType,
196
+ Card: TagCard,
197
+ Table: TagTable,
198
+ localKey: "tag"
199
+ }
200
+ ),
201
+ pickedDisplay: formData.tags.map((tag) => /* @__PURE__ */ jsx(TagCard, { post: tag }, tag.id))
202
+ }
203
+ ) }),
204
+ isFieldAllowed(postType, "coverImage", slug) && /* @__PURE__ */ jsx(Field, { label: t("resources.post.cover-image.text"), children: /* @__PURE__ */ jsx(
205
+ PickModal,
206
+ {
207
+ fieldName: "coverImage",
208
+ formData,
209
+ setFormData,
210
+ isLoading: isFetching,
211
+ isDisabled: isRedirecting,
212
+ itemList: /* @__PURE__ */ jsx(FileList, {}),
213
+ pickedDisplay: /* @__PURE__ */ jsx(FileCard, { file: formData.coverImage }),
214
+ aboveManagementCard: /* @__PURE__ */ jsx(Uploader, { accept: "image/*" })
215
+ }
216
+ ) })
217
+ ] }),
218
+ /* @__PURE__ */ jsxs(Fragment, { children: [
219
+ isFieldAllowed(postType, "text-content-separator", slug) && /* @__PURE__ */ jsx(Separator, { className: "my-4" }),
220
+ isFieldAllowed(postType, "title", slug) && /* @__PURE__ */ jsx(Field, { htmlFor: "title", label: t("resources.post.title.text"), children: /* @__PURE__ */ jsx(
221
+ I18nTextarea,
222
+ {
223
+ id: "title",
224
+ placeholder: t("resources.post.title.placeholder.text"),
225
+ fieldName: "title",
226
+ translations: formData.translations,
227
+ setFormData,
228
+ isLoading: isFetching,
229
+ isDisabled: isRedirecting,
230
+ errors
231
+ }
232
+ ) }),
233
+ isFieldAllowed(postType, "subtitle", slug) && /* @__PURE__ */ jsx(
234
+ Field,
235
+ {
236
+ htmlFor: "subtitle",
237
+ label: t("resources.post.subtitle.text"),
238
+ children: /* @__PURE__ */ jsx(
239
+ I18nTextarea,
240
+ {
241
+ id: "subtitle",
242
+ fieldName: "subtitle",
243
+ translations: formData.translations,
244
+ setFormData,
245
+ isLoading: isFetching,
246
+ isDisabled: isRedirecting,
247
+ errors,
248
+ placeholder: t(
249
+ "resources.post.subtitle.placeholder.text"
250
+ )
251
+ }
252
+ )
253
+ }
254
+ ),
255
+ isFieldAllowed(postType, "summary", slug) && /* @__PURE__ */ jsx(
256
+ Field,
257
+ {
258
+ htmlFor: "summary",
259
+ label: t("resources.post.summary.text"),
260
+ children: /* @__PURE__ */ jsx(
261
+ I18nTextarea,
262
+ {
263
+ id: "summary",
264
+ fieldName: "summary",
265
+ translations: formData.translations,
266
+ setFormData,
267
+ isLoading: isFetching,
268
+ isDisabled: isRedirecting,
269
+ errors,
270
+ placeholder: t("resources.post.summary.placeholder.text")
271
+ }
272
+ )
273
+ }
274
+ ),
275
+ isFieldAllowed(postType, "description", slug) && /* @__PURE__ */ jsx(
276
+ Field,
277
+ {
278
+ htmlFor: "description",
279
+ label: t("resources.post.description.text"),
280
+ children: /* @__PURE__ */ jsx(
281
+ I18nTextarea,
282
+ {
283
+ id: "description",
284
+ fieldName: "description",
285
+ translations: formData.translations,
286
+ setFormData,
287
+ isLoading: isFetching,
288
+ isDisabled: isRedirecting,
289
+ errors,
290
+ placeholder: t(
291
+ "resources.post.description.placeholder.text"
292
+ )
293
+ }
294
+ )
295
+ }
296
+ ),
297
+ isFieldAllowed(postType, "content", slug) && /* @__PURE__ */ jsx(Field, { label: t("resources.post.content.text"), children: /* @__PURE__ */ jsx(
298
+ I18nEditor,
299
+ {
300
+ locale,
301
+ fieldName: "content",
302
+ translations: formData.translations,
303
+ setFormData,
304
+ isLoading: isFetching,
305
+ isDisabled: isRedirecting,
306
+ errors
307
+ }
308
+ ) })
309
+ ] }),
310
+ /* @__PURE__ */ jsxs(Fragment, { children: [
311
+ isFieldAllowed(postType, "better-seo-separator", slug) && /* @__PURE__ */ jsx(Separator, { className: "my-4" }),
312
+ isFieldAllowed(postType, "externalLinks", slug) && /* @__PURE__ */ jsx(Field, { label: t("resources.post.external-links.text"), children: /* @__PURE__ */ jsx(
313
+ I18nObjectArrayInput,
314
+ {
315
+ fieldName: "externalLinks",
316
+ translations: formData.translations,
317
+ setFormData,
318
+ isLoading: isFetching,
319
+ isDisabled: isRedirecting,
320
+ errors,
321
+ fields: [
322
+ {
323
+ key: "name",
324
+ placeholder: t(
325
+ "resources.post.external-links.placeholder1.text"
326
+ )
327
+ },
328
+ {
329
+ key: "href",
330
+ placeholder: t(
331
+ "resources.post.external-links.placeholder2.text"
332
+ )
333
+ }
334
+ ]
335
+ }
336
+ ) }),
337
+ isFieldAllowed(postType, "faq", slug) && /* @__PURE__ */ jsx(Field, { label: t("resources.post.faq.text"), children: /* @__PURE__ */ jsx(
338
+ I18nObjectArrayInput,
339
+ {
340
+ fieldName: "faq",
341
+ translations: formData.translations,
342
+ setFormData,
343
+ isLoading: isFetching,
344
+ isDisabled: isRedirecting,
345
+ errors,
346
+ fields: [
347
+ {
348
+ key: "question",
349
+ placeholder: t(
350
+ "resources.post.faq.placeholder1.text"
351
+ )
352
+ },
353
+ {
354
+ key: "answer",
355
+ placeholder: t(
356
+ "resources.post.faq.placeholder2.text"
357
+ )
358
+ }
359
+ ]
360
+ }
361
+ ) }),
362
+ isFieldAllowed(postType, "readTime", slug) && /* @__PURE__ */ jsx(
363
+ Field,
364
+ {
365
+ htmlFor: "readTime",
366
+ label: t("resources.post.read-time.text"),
367
+ children: /* @__PURE__ */ jsx(
368
+ I18nNumberInput,
369
+ {
370
+ id: "readTime",
371
+ fieldName: "readTime",
372
+ placeholder: t(
373
+ "resources.post.read-time.placeholder.text"
374
+ ),
375
+ min: 0,
376
+ translations: formData.translations,
377
+ setFormData,
378
+ isLoading: isFetching,
379
+ isDisabled: isRedirecting,
380
+ errors
381
+ }
382
+ )
383
+ }
384
+ )
385
+ ] }),
386
+ /* @__PURE__ */ jsxs(Fragment, { children: [
387
+ isFieldAllowed(postType, "related-posts-separator", slug) && /* @__PURE__ */ jsx(Separator, { className: "my-4" }),
388
+ isFieldAllowed(postType, "relatedPosts", slug) && /* @__PURE__ */ jsx(Field, { label: t("resources.post.related-posts.text"), children: /* @__PURE__ */ jsx(
389
+ PickModal,
390
+ {
391
+ fieldName: "relatedPosts",
392
+ formData,
393
+ setFormData,
394
+ isLoading: isFetching,
395
+ isDisabled: isRedirecting,
396
+ isMultiPick: true,
397
+ itemList: /* @__PURE__ */ jsx(
398
+ PostList,
399
+ {
400
+ usableFields: [
401
+ ...isFieldAllowed(postType, "isActive") ? ["isActive"] : [],
402
+ ...isFieldAllowed(postType, "isIndexActive") ? ["isIndexActive"] : [],
403
+ ...isFieldAllowed(postType, "isSlugActive") ? ["isSlugActive"] : [],
404
+ ...isFieldAllowed(postType, "isFeatured") ? ["isFeatured"] : [],
405
+ ...isFieldAllowed(postType, "isShownOnHome") ? ["isShownOnHome"] : []
406
+ ],
407
+ type: postType,
408
+ topicId: topic?.id,
409
+ excludeIds: post ? [post?.id] : void 0
410
+ }
411
+ ),
412
+ pickedDisplay: formData.relatedPosts.map(
413
+ (relatedPost) => /* @__PURE__ */ jsx(PostCard, { post: relatedPost }, relatedPost.id)
414
+ )
415
+ }
416
+ ) })
417
+ ] })
418
+ ] }),
419
+ /* @__PURE__ */ jsxs(SideFields, { children: [
420
+ /* @__PURE__ */ jsx("div", { className: "max-lg:hidden", children: /* @__PURE__ */ jsx(
421
+ ActionButtonsCard,
422
+ {
423
+ action: "update",
424
+ isInitializing: isFetching,
425
+ isProcessing: isRedirecting
426
+ }
427
+ ) }),
428
+ /* @__PURE__ */ jsx(Separator, { className: "mt-4 lg:hidden" }),
429
+ /* @__PURE__ */ jsx(
430
+ ControlFields,
431
+ {
432
+ fields: [
433
+ ...isFieldAllowed(postType, "isActive", post?.slug) ? [{ key: "isActive" }] : [],
434
+ ...isFieldAllowed(postType, "isIndexActive", post?.slug) ? [{ key: "isIndexActive" }] : [],
435
+ ...isFieldAllowed(postType, "isSlugActive", post?.slug) ? [{ key: "isSlugActive" }] : [],
436
+ ...isFieldAllowed(postType, "isFeatured", post?.slug) ? [{ key: "isFeatured" }] : [],
437
+ ...isFieldAllowed(postType, "isShownOnHome", post?.slug) ? [{ key: "isShownOnHome" }] : []
438
+ ],
439
+ controlMeta,
440
+ formData,
441
+ setFormData,
442
+ isLoading: isFetching,
443
+ isDisabled: isRedirecting,
444
+ errors
445
+ }
446
+ )
447
+ ] })
448
+ ] }),
449
+ /* @__PURE__ */ jsx("div", { className: "fixed bottom-3 left-1/2 z-10 -translate-x-1/2 lg:hidden", children: /* @__PURE__ */ jsx(
450
+ ActionButtonsCard,
451
+ {
452
+ action: "update",
453
+ isInitializing: isFetching,
454
+ isProcessing: isRedirecting
455
+ }
456
+ ) })
457
+ ] }) });
458
+ };
459
+ }
460
+
461
+ export { createPostEditContent };
@@ -0,0 +1,218 @@
1
+ "use client";
2
+ import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
3
+ import { useTranslator } from 'intor/react';
4
+ import '../../../../../../../constants/paths/redirect.js';
5
+ import { DATE_FORMAT_OPTIONS } from '../../../../../../../constants/date.js';
6
+ import '../../../../../../../constants/cms-locale.js';
7
+ import '@radix-ui/react-avatar';
8
+ import 'mime-types';
9
+ import 'sitero-domain';
10
+ import 'clsx';
11
+ import 'tailwind-merge';
12
+ import 'zod';
13
+ import '../../../shadcn/badge.js';
14
+ import '../../../shadcn/button.js';
15
+ import '@radix-ui/react-collapsible';
16
+ import '@radix-ui/react-dialog';
17
+ import 'lucide-react';
18
+ import '@radix-ui/react-dropdown-menu';
19
+ import '../../../shadcn/input-group.js';
20
+ import '@radix-ui/react-label';
21
+ import '@radix-ui/react-radio-group';
22
+ import '@radix-ui/react-select';
23
+ import { Separator } from '../../../shadcn/separator.js';
24
+ import '../../../shadcn/sidebar/sidebar.js';
25
+ import 'next-themes';
26
+ import 'sonner';
27
+ import '@radix-ui/react-tabs';
28
+ import '@radix-ui/react-tooltip';
29
+ import { Field } from '../../../ui/form/field.js';
30
+ import { FieldBody } from '../../../ui/form/field-body.js';
31
+ import { FieldsContainer } from '../../../ui/form/containers/fields-container.js';
32
+ import { MainFields } from '../../../ui/form/containers/main-fields.js';
33
+ import { SideFields } from '../../../ui/form/containers/side-fields.js';
34
+ import 'react';
35
+ import { ControlFields } from '../../../ui/form/control-fields/control-fields.js';
36
+ import '../../../../../../../core/client/infrastructure/contexts/admin/admin.js';
37
+ import '../../../../../../../core/client/infrastructure/react-query/client.js';
38
+ import '@tanstack/react-query';
39
+ import 'next/navigation';
40
+ import '../../../../../../../core/domain/resources/admin/constants.js';
41
+ import 'intor/next';
42
+ import 'next/link';
43
+ import { ContentContainer } from '../../../ui/layouts/content-container.js';
44
+ import { AdminCard } from '../../admin/admin-card.js';
45
+ import { CategoryCard } from '../category/category-card.js';
46
+ import { TagCard } from '../tag/tag-card.js';
47
+
48
+ function createPostShowContent({
49
+ contentMaxWidth,
50
+ PostCard,
51
+ FileCard,
52
+ I18nDisplay,
53
+ I18nObjectArrayDisplay
54
+ }) {
55
+ return function PostShowContent({
56
+ post,
57
+ isFetching,
58
+ isNotFound,
59
+ children,
60
+ subcategoryType,
61
+ CategoryCard: CategoryCard$1 = CategoryCard,
62
+ allowField
63
+ }) {
64
+ const { t, format } = useTranslator();
65
+ const type = post?.type;
66
+ const topicSlug = post?.topic?.slug;
67
+ const categories = post?.parents;
68
+ const parentLabelKey = subcategoryType && categories?.[0]?.type === subcategoryType ? "resources.subcategory.text" : "resources.category.text";
69
+ const isFieldAllowed = (type2, field, fieldRuleKey) => allowField({ topicSlug, type: type2, field, fieldRuleKey });
70
+ return /* @__PURE__ */ jsx(ContentContainer, { isNotFound, children: /* @__PURE__ */ jsxs(FieldsContainer, { children: [
71
+ /* @__PURE__ */ jsxs(MainFields, { children: [
72
+ /* @__PURE__ */ jsxs(Fragment, { children: [
73
+ isFieldAllowed(type, "author", post?.slug) && /* @__PURE__ */ jsx(Field, { label: t("resources.post.author.text"), children: /* @__PURE__ */ jsx(FieldBody, { isLoading: isFetching, isEmpty: !post?.author, children: /* @__PURE__ */ jsx(AdminCard, { admin: post?.author || null, openNewTab: true }) }) }),
74
+ isFieldAllowed(type, "parents", post?.slug) && /* @__PURE__ */ jsx(Field, { label: t(parentLabelKey), children: /* @__PURE__ */ jsx(
75
+ FieldBody,
76
+ {
77
+ isLoading: isFetching,
78
+ isEmpty: categories?.length === 0,
79
+ children: categories?.map((p) => /* @__PURE__ */ jsx(
80
+ CategoryCard$1,
81
+ {
82
+ post: p,
83
+ openNewTab: true,
84
+ isSubcategory: p.type === subcategoryType
85
+ },
86
+ p.id
87
+ ))
88
+ }
89
+ ) }),
90
+ isFieldAllowed(type, "tags", post?.slug) && /* @__PURE__ */ jsx(Field, { label: t("resources.tag.text"), children: /* @__PURE__ */ jsx(
91
+ FieldBody,
92
+ {
93
+ isLoading: isFetching,
94
+ isEmpty: !post?.tags || post.tags.length === 0,
95
+ children: post?.tags?.map((p) => /* @__PURE__ */ jsx(TagCard, { post: p, openNewTab: true }, p.id))
96
+ }
97
+ ) }),
98
+ isFieldAllowed(type, "coverImage", post?.slug) && /* @__PURE__ */ jsx(Field, { label: t("resources.post.cover-image.text"), children: /* @__PURE__ */ jsx(FieldBody, { isLoading: isFetching, isEmpty: !post?.coverImage, children: /* @__PURE__ */ jsx(FileCard, { file: post?.coverImage || null, openNewTab: true }) }) })
99
+ ] }),
100
+ /* @__PURE__ */ jsxs(Fragment, { children: [
101
+ isFieldAllowed(type, "text-content-separator", post?.slug) && /* @__PURE__ */ jsx(Separator, { className: "my-4" }),
102
+ isFieldAllowed(type, "title", post?.slug) && /* @__PURE__ */ jsx(Field, { label: t("resources.post.title.text"), children: /* @__PURE__ */ jsx(
103
+ I18nDisplay,
104
+ {
105
+ fieldName: "title",
106
+ translations: post?.translations,
107
+ isLoading: isFetching
108
+ }
109
+ ) }),
110
+ isFieldAllowed(type, "subtitle", post?.slug) && /* @__PURE__ */ jsx(Field, { label: t("resources.post.subtitle.text"), children: /* @__PURE__ */ jsx(
111
+ I18nDisplay,
112
+ {
113
+ fieldName: "subtitle",
114
+ translations: post?.translations,
115
+ isLoading: isFetching
116
+ }
117
+ ) }),
118
+ isFieldAllowed(type, "summary", post?.slug) && /* @__PURE__ */ jsx(Field, { label: t("resources.post.summary.text"), children: /* @__PURE__ */ jsx(
119
+ I18nDisplay,
120
+ {
121
+ fieldName: "summary",
122
+ translations: post?.translations,
123
+ isLoading: isFetching
124
+ }
125
+ ) }),
126
+ isFieldAllowed(type, "description", post?.slug) && /* @__PURE__ */ jsx(Field, { label: t("resources.post.description.text"), children: /* @__PURE__ */ jsx(
127
+ I18nDisplay,
128
+ {
129
+ fieldName: "description",
130
+ translations: post?.translations,
131
+ isLoading: isFetching
132
+ }
133
+ ) }),
134
+ isFieldAllowed(type, "content", post?.slug) && /* @__PURE__ */ jsx(Field, { label: t("resources.post.content.text"), children: /* @__PURE__ */ jsx(
135
+ I18nDisplay,
136
+ {
137
+ fieldName: "content",
138
+ translations: post?.translations,
139
+ isLoading: isFetching,
140
+ isHtml: true,
141
+ style: { maxWidth: contentMaxWidth },
142
+ className: "mx-auto"
143
+ }
144
+ ) })
145
+ ] }),
146
+ /* @__PURE__ */ jsxs(Fragment, { children: [
147
+ isFieldAllowed(type, "better-seo-separator", post?.slug) && /* @__PURE__ */ jsx(Separator, { className: "my-4" }),
148
+ isFieldAllowed(type, "externalLinks", post?.slug) && /* @__PURE__ */ jsx(Field, { label: t("resources.post.external-links.text"), children: /* @__PURE__ */ jsx(
149
+ I18nObjectArrayDisplay,
150
+ {
151
+ fieldName: "externalLinks",
152
+ translations: post?.translations,
153
+ fields: [{ key: "name" }, { key: "href", isLink: true }],
154
+ isLoading: isFetching
155
+ }
156
+ ) }),
157
+ isFieldAllowed(type, "faq", post?.slug) && /* @__PURE__ */ jsx(Field, { label: t("resources.post.faq.text"), children: /* @__PURE__ */ jsx(
158
+ I18nObjectArrayDisplay,
159
+ {
160
+ fieldName: "faq",
161
+ translations: post?.translations,
162
+ fields: [{ key: "question" }, { key: "answer" }],
163
+ isLoading: isFetching
164
+ }
165
+ ) }),
166
+ isFieldAllowed(type, "readTime", post?.slug) && /* @__PURE__ */ jsx(Field, { label: t("resources.post.read-time.text"), children: /* @__PURE__ */ jsx(
167
+ I18nDisplay,
168
+ {
169
+ fieldName: "readTime",
170
+ translations: post?.translations,
171
+ isLoading: isFetching
172
+ }
173
+ ) })
174
+ ] }),
175
+ /* @__PURE__ */ jsxs(Fragment, { children: [
176
+ isFieldAllowed(type, "related-posts-separator", post?.slug) && /* @__PURE__ */ jsx(Separator, { className: "my-4" }),
177
+ isFieldAllowed(type, "relatedPosts", post?.slug) && /* @__PURE__ */ jsx(Field, { label: t("resources.post.related-posts.text"), children: /* @__PURE__ */ jsx(
178
+ FieldBody,
179
+ {
180
+ isLoading: isFetching,
181
+ isEmpty: !post?.relatedPosts || post.relatedPosts.length === 0,
182
+ children: /* @__PURE__ */ jsx("div", { className: "flex flex-wrap gap-3", children: post?.relatedPosts.map((p) => /* @__PURE__ */ jsx(PostCard, { post: p, openNewTab: true }, p.id)) })
183
+ }
184
+ ) })
185
+ ] }),
186
+ children
187
+ ] }),
188
+ /* @__PURE__ */ jsxs(SideFields, { children: [
189
+ /* @__PURE__ */ jsx(
190
+ Field,
191
+ {
192
+ label: t("resources.post.created-at.text"),
193
+ wrapperClassName: "max-lg:hidden",
194
+ children: /* @__PURE__ */ jsx(FieldBody, { isLoading: isFetching, children: post?.createdAt && format.date(new Date(post?.createdAt), DATE_FORMAT_OPTIONS) })
195
+ }
196
+ ),
197
+ /* @__PURE__ */ jsx(Separator, { className: "mt-6 lg:hidden" }),
198
+ /* @__PURE__ */ jsx(
199
+ ControlFields,
200
+ {
201
+ fields: [
202
+ ...isFieldAllowed(type, "isActive", post?.slug) ? [{ key: "isActive" }] : [],
203
+ ...isFieldAllowed(type, "isIndexActive", post?.slug) ? [{ key: "isIndexActive" }] : [],
204
+ ...isFieldAllowed(type, "isSlugActive", post?.slug) ? [{ key: "isSlugActive" }] : [],
205
+ ...isFieldAllowed(type, "isFeatured", post?.slug) ? [{ key: "isFeatured" }] : [],
206
+ ...isFieldAllowed(type, "isShownOnHome", post?.slug) ? [{ key: "isShownOnHome" }] : []
207
+ ],
208
+ formData: { ...post },
209
+ isDisplay: true,
210
+ isLoading: isFetching
211
+ }
212
+ )
213
+ ] })
214
+ ] }) });
215
+ };
216
+ }
217
+
218
+ export { createPostShowContent };