@opengis/cms 0.0.22 → 0.0.24

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 (211) hide show
  1. package/package.json +2 -10
  2. package/src/index.js +23 -0
  3. package/module/cms/card/cms.content.table/index.yml +0 -17
  4. package/module/cms/card/cms.content.table/main_info.hbs +0 -26
  5. package/module/cms/card/cms.menu.table/content_info.hbs +0 -16
  6. package/module/cms/card/cms.menu.table/index.yml +0 -18
  7. package/module/cms/card/cms.menu.table/main_info.hbs +0 -22
  8. package/module/cms/card/cms.settings.table/index.yml +0 -13
  9. package/module/cms/card/cms.settings.table/main_info.hbs +0 -20
  10. package/module/cms/cls/content.status.json +0 -18
  11. package/module/cms/cls/user_type.json +0 -10
  12. package/module/cms/form/admin.users.form.json +0 -78
  13. package/module/cms/form/cms.content.form.json +0 -79
  14. package/module/cms/form/cms.menu.form.json +0 -69
  15. package/module/cms/form/cms.settings.form.json +0 -32
  16. package/module/cms/menu.json +0 -24
  17. package/module/cms/router.js +0 -169
  18. package/module/cms/select/cms.page_type.sql +0 -2
  19. package/module/cms/select/collection.sql +0 -1
  20. package/module/cms/select/locale.sql +0 -17
  21. package/module/cms/select/news_tag_id.sql +0 -12
  22. package/module/cms/select/tag_id.sql +0 -1
  23. package/module/cms/table/admin.users.table.json +0 -54
  24. package/module/cms/table/cms.content.table.json +0 -106
  25. package/module/cms/table/cms.menu.table.json +0 -73
  26. package/module/cms/table/cms.settings.table.json +0 -57
  27. package/module/cms/table/collection.default.table.json +0 -102
  28. package/module/cms/table/single.default.table.json +0 -115
  29. package/src/App.css +0 -52
  30. package/src/App.vue +0 -62
  31. package/src/assets/image.png +0 -0
  32. package/src/assets/main.css +0 -3
  33. package/src/assets/tailwind-3.4.17.js +0 -113
  34. package/src/components/LanguageSwitcher.vue +0 -73
  35. package/src/components/SettingsCard.vue +0 -40
  36. package/src/components/builder/CreateForm.vue +0 -128
  37. package/src/components/builder/formTypeSchema.js +0 -145
  38. package/src/components/builder/tabs/index.ts +0 -9
  39. package/src/components/builder/tabs/vs-builder-edit.vue +0 -133
  40. package/src/components/builder/tabs/vs-builder-monaco.vue +0 -29
  41. package/src/components/builder/tabs/vs-builder-preview.vue +0 -39
  42. package/src/components/builder/vs-builder-datatable-controls.vue +0 -138
  43. package/src/components/builder/vs-builder-datatable-form.vue +0 -80
  44. package/src/components/builder/vs-builder-datatable.vue +0 -191
  45. package/src/components/builder/vs-builder-list-item.vue +0 -110
  46. package/src/components/collections/CollectionsBreadcrumb.vue +0 -52
  47. package/src/components/collections/CollectionsGrid.vue +0 -176
  48. package/src/components/collections/ContentBlock.vue +0 -75
  49. package/src/components/collections/formWrapper.vue +0 -156
  50. package/src/components/dashboard/ContentItem.vue +0 -82
  51. package/src/components/dashboard/DashboardHeader.vue +0 -33
  52. package/src/components/dashboard/QuickActions.vue +0 -84
  53. package/src/components/dashboard/RecentContent.vue +0 -54
  54. package/src/components/dashboard/StatCard.vue +0 -63
  55. package/src/components/dashboard/StatsGrid.vue +0 -28
  56. package/src/components/form-components/MonacoEditor.vue +0 -104
  57. package/src/components/form-components/VsFormMeta.vue +0 -40
  58. package/src/components/form-components/VsFormTags.vue +0 -150
  59. package/src/components/form-components/custom-datatable/vs-form-custom-datatable-add.vue +0 -84
  60. package/src/components/form-components/custom-datatable/vs-form-custom-datatable-controls.vue +0 -106
  61. package/src/components/form-components/index.js +0 -23
  62. package/src/components/form-components/reference/vs-form-reference-add.vue +0 -92
  63. package/src/components/form-components/reference/vs-form-reference-controls.vue +0 -101
  64. package/src/components/form-components/reference-list/referenceOptionList.js +0 -78
  65. package/src/components/form-components/reference-list/vs-form-reference-add.vue +0 -145
  66. package/src/components/form-components/reference-list/vs-form-reference-choce.vue +0 -39
  67. package/src/components/form-components/reference-list/vs-form-reference-controls.vue +0 -110
  68. package/src/components/form-components/reference-skeleton/about-skeleton.vue +0 -37
  69. package/src/components/form-components/reference-skeleton/banner-skeleton.vue +0 -29
  70. package/src/components/form-components/reference-skeleton/body-skeleton.vue +0 -56
  71. package/src/components/form-components/reference-skeleton/cards-skeleton.vue +0 -47
  72. package/src/components/form-components/reference-skeleton/documents-skeleton.vue +0 -64
  73. package/src/components/form-components/reference-skeleton/faq-skeleton.vue +0 -64
  74. package/src/components/form-components/reference-skeleton/form-skeleton.vue +0 -41
  75. package/src/components/form-components/reference-skeleton/index.js +0 -36
  76. package/src/components/form-components/reference-skeleton/infoLine-skeleton.vue +0 -37
  77. package/src/components/form-components/reference-skeleton/news-skeleton.vue +0 -54
  78. package/src/components/form-components/reference-skeleton/slider-skeleton.vue +0 -41
  79. package/src/components/form-components/reference-skeleton/tabs-skeleton.vue +0 -40
  80. package/src/components/form-components/reference-skeleton/team-skeleton.vue +0 -103
  81. package/src/components/form-components/reference-skeleton/usefulLinks-skeleton.vue +0 -52
  82. package/src/components/form-components/reference-skeleton/video-skeleton.vue +0 -36
  83. package/src/components/form-components/testReferenceTypes.js +0 -773
  84. package/src/components/form-components/vs-form-color-picker.vue +0 -29
  85. package/src/components/form-components/vs-form-custom-datatable.vue +0 -214
  86. package/src/components/form-components/vs-form-integer.vue +0 -86
  87. package/src/components/form-components/vs-form-key-value.vue +0 -201
  88. package/src/components/form-components/vs-form-marcdown-md.vue +0 -3
  89. package/src/components/form-components/vs-form-media-select.vue +0 -780
  90. package/src/components/form-components/vs-form-reference-list.vue +0 -97
  91. package/src/components/form-components/vs-form-reference.vue +0 -59
  92. package/src/components/form-components/vs-form-relation.vue +0 -30
  93. package/src/components/form-components/vs-form-reletion-link.vue +0 -34
  94. package/src/components/form-components/vs-form-select-collection.vue +0 -0
  95. package/src/components/form-components/vs-form-slug.vue +0 -72
  96. package/src/components/form-components/vs-form-tiptap.vue +0 -7
  97. package/src/components/form-components/vs-richtext-md.vue +0 -3
  98. package/src/components/icons/BellIcon.vue +0 -17
  99. package/src/components/icons/GlobeIcon.vue +0 -18
  100. package/src/components/icons/KeyIcon.vue +0 -20
  101. package/src/components/icons/PaletteIcon.vue +0 -22
  102. package/src/components/icons/SettingsIcon.vue +0 -19
  103. package/src/components/icons/ShieldIcon.vue +0 -18
  104. package/src/components/icons/UsersIcon.vue +0 -19
  105. package/src/components/icons/icon-chevron-right.vue +0 -16
  106. package/src/components/icons/icon-drag.vue +0 -20
  107. package/src/components/icons/icon-file-text.vue +0 -21
  108. package/src/components/icons/icon-folder.vue +0 -18
  109. package/src/components/icons/icon-grid.vue +0 -17
  110. package/src/components/icons/icon-group.vue +0 -19
  111. package/src/components/icons/icon-home.vue +0 -16
  112. package/src/components/icons/icon-image.vue +0 -18
  113. package/src/components/icons/icon-list.vue +0 -20
  114. package/src/components/icons/icon-more.vue +0 -17
  115. package/src/components/icons/icon-plus.vue +0 -17
  116. package/src/components/icons-types/icon-array.vue +0 -22
  117. package/src/components/icons-types/icon-boolean.vue +0 -18
  118. package/src/components/icons-types/icon-datalist.vue +0 -22
  119. package/src/components/icons-types/icon-date.vue +0 -20
  120. package/src/components/icons-types/icon-datetime.vue +0 -20
  121. package/src/components/icons-types/icon-file.vue +0 -21
  122. package/src/components/icons-types/icon-gallery.vue +0 -18
  123. package/src/components/icons-types/icon-image.vue +0 -19
  124. package/src/components/icons-types/icon-integer.vue +0 -20
  125. package/src/components/icons-types/icon-merkdown.vue +0 -18
  126. package/src/components/icons-types/icon-multiselect.vue +0 -22
  127. package/src/components/icons-types/icon-number.vue +0 -20
  128. package/src/components/icons-types/icon-radio.vue +0 -22
  129. package/src/components/icons-types/icon-reference-list.vue +0 -22
  130. package/src/components/icons-types/icon-reference.vue +0 -20
  131. package/src/components/icons-types/icon-relation.vue +0 -22
  132. package/src/components/icons-types/icon-richtext.vue +0 -18
  133. package/src/components/icons-types/icon-select.vue +0 -22
  134. package/src/components/icons-types/icon-slug.vue +0 -19
  135. package/src/components/icons-types/icon-text.vue +0 -19
  136. package/src/components/icons-types/index.js +0 -43
  137. package/src/components/layout/Layout.vue +0 -67
  138. package/src/components/layout/Sidebar.vue +0 -128
  139. package/src/components/media/FileUploadProgress.vue +0 -29
  140. package/src/components/media/MediaBreadcrumb.vue +0 -42
  141. package/src/components/media/MediaCreateFolder.vue +0 -59
  142. package/src/components/media/MediaFileInfo.vue +0 -148
  143. package/src/components/media/MediaGrid.vue +0 -148
  144. package/src/components/media/MediaList.vue +0 -148
  145. package/src/components/media/MediaViewControls.vue +0 -38
  146. package/src/components/media/TypeTag.vue +0 -23
  147. package/src/components/menu/AddNewItemInTree.vue +0 -75
  148. package/src/components/menu/MenuBody.vue +0 -149
  149. package/src/components/menu/MenuItem.vue +0 -73
  150. package/src/components/menu/MenuList.vue +0 -101
  151. package/src/components/referencec/index.ts +0 -7
  152. package/src/components/referencec/vs-reference-faq.vue +0 -61
  153. package/src/components/referencec/vs-reference-user-card.vue +0 -40
  154. package/src/components/settings/NotificationSettings.vue +0 -32
  155. package/src/components/settings/SettingsTable.vue +0 -50
  156. package/src/components/settings/SettingsTitle.vue +0 -33
  157. package/src/components/settings/SettingsToggleItem.vue +0 -25
  158. package/src/components/sidebar/DropdownMenu.vue +0 -34
  159. package/src/components/sidebar/SettingsSidebar.vue +0 -121
  160. package/src/components/sidebar/SidebarFooter.vue +0 -52
  161. package/src/components/sidebar/SidebarHeader.vue +0 -57
  162. package/src/components/sidebar/SidebarMenu.vue +0 -78
  163. package/src/components/ui/EmptyData.vue +0 -76
  164. package/src/components/ui/UniversalTable.vue +0 -310
  165. package/src/components/ui/UniversalTableFilters.vue +0 -0
  166. package/src/components/ui/UniversalTablePagination.vue +0 -118
  167. package/src/components/ui/VsPreview.vue +0 -75
  168. package/src/composables/useCollectionView.ts +0 -21
  169. package/src/composables/useDebounce.ts +0 -26
  170. package/src/composables/useMonaco.ts +0 -28
  171. package/src/composables/useTheme.ts +0 -40
  172. package/src/content/test-slug/metadata.json +0 -1
  173. package/src/i18n.ts +0 -75
  174. package/src/index.css +0 -3
  175. package/src/index.ts +0 -122
  176. package/src/locales/en.json +0 -778
  177. package/src/locales/uk.json +0 -797
  178. package/src/main.ts +0 -41
  179. package/src/pages/Dashboard.vue +0 -168
  180. package/src/pages/EmailPage.vue +0 -183
  181. package/src/pages/FeedbackPage.vue +0 -232
  182. package/src/pages/MediaPage.vue +0 -372
  183. package/src/pages/TagsPage.vue +0 -207
  184. package/src/pages/builder/BuilderPage.vue +0 -195
  185. package/src/pages/builder/EditCollectionPage.vue +0 -163
  186. package/src/pages/collections/ArticlesPage.vue +0 -385
  187. package/src/pages/collections/CollectionsPage.vue +0 -146
  188. package/src/pages/collections/SingletonsPage.vue +0 -119
  189. package/src/pages/collections/contentForm.vue +0 -484
  190. package/src/pages/collections/schema/seo.ts +0 -27
  191. package/src/pages/menu/MenuAddPage.vue +0 -123
  192. package/src/pages/menu/MenuItemPage.vue +0 -183
  193. package/src/pages/menu/MenuPage.vue +0 -133
  194. package/src/pages/settings/ApiKeys.vue +0 -75
  195. package/src/pages/settings/Appearance.vue +0 -80
  196. package/src/pages/settings/Logs.vue +0 -260
  197. package/src/pages/settings/PermissionsPage.vue +0 -237
  198. package/src/pages/settings/Settings.vue +0 -186
  199. package/src/pages/settings/Users.vue +0 -109
  200. package/src/pages/settings/general.vue +0 -154
  201. package/src/pages/settings/generalScheme.js +0 -132
  202. package/src/pages/users/AddUser.vue +0 -106
  203. package/src/pages/users/UsersPage.vue +0 -98
  204. package/src/props/builder.ts +0 -67
  205. package/src/props/content.ts +0 -56
  206. package/src/props/media.ts +0 -63
  207. package/src/router/index.ts +0 -181
  208. package/src/types/fastify-auth.d.ts +0 -4
  209. package/src/utils/getField.js +0 -270
  210. package/src/utils/translit.js +0 -19
  211. package/src/vite-env.d.ts +0 -1
@@ -1,22 +0,0 @@
1
- <template>
2
- <svg
3
- xmlns="http://www.w3.org/2000/svg"
4
- width="24"
5
- height="24"
6
- viewBox="0 0 24 24"
7
- fill="none"
8
- stroke="currentColor"
9
- stroke-width="2"
10
- stroke-linecap="round"
11
- stroke-linejoin="round"
12
- class="w-4 h-4 text-gray-700 lucide lucide-list"
13
- __v0_r="0,5361,5384"
14
- >
15
- <line x1="8" x2="21" y1="6" y2="6"></line>
16
- <line x1="8" x2="21" y1="12" y2="12"></line>
17
- <line x1="8" x2="21" y1="18" y2="18"></line>
18
- <line x1="3" x2="3.01" y1="6" y2="6"></line>
19
- <line x1="3" x2="3.01" y1="12" y2="12"></line>
20
- <line x1="3" x2="3.01" y1="18" y2="18"></line>
21
- </svg>
22
- </template>
@@ -1,18 +0,0 @@
1
- <template>
2
- <svg
3
- xmlns="http://www.w3.org/2000/svg"
4
- width="24"
5
- height="24"
6
- viewBox="0 0 24 24"
7
- fill="none"
8
- stroke="currentColor"
9
- stroke-width="2"
10
- stroke-linecap="round"
11
- stroke-linejoin="round"
12
- class="w-4 h-4 text-gray-700 lucide lucide-toggle-left"
13
- __v0_r="0,5361,5384"
14
- >
15
- <rect width="20" height="12" x="2" y="6" rx="6" ry="6"></rect>
16
- <circle cx="8" cy="12" r="2"></circle>
17
- </svg>
18
- </template>
@@ -1,22 +0,0 @@
1
- <template>
2
- <svg
3
- xmlns="http://www.w3.org/2000/svg"
4
- width="24"
5
- height="24"
6
- viewBox="0 0 24 24"
7
- fill="none"
8
- stroke="currentColor"
9
- stroke-width="2"
10
- stroke-linecap="round"
11
- stroke-linejoin="round"
12
- class="w-4 h-4 text-gray-700 lucide lucide-list"
13
- __v0_r="0,5361,5384"
14
- >
15
- <line x1="8" x2="21" y1="6" y2="6"></line>
16
- <line x1="8" x2="21" y1="12" y2="12"></line>
17
- <line x1="8" x2="21" y1="18" y2="18"></line>
18
- <line x1="3" x2="3.01" y1="6" y2="6"></line>
19
- <line x1="3" x2="3.01" y1="12" y2="12"></line>
20
- <line x1="3" x2="3.01" y1="18" y2="18"></line>
21
- </svg>
22
- </template>
@@ -1,20 +0,0 @@
1
- <template>
2
- <svg
3
- xmlns="http://www.w3.org/2000/svg"
4
- width="24"
5
- height="24"
6
- viewBox="0 0 24 24"
7
- fill="none"
8
- stroke="currentColor"
9
- stroke-width="2"
10
- stroke-linecap="round"
11
- stroke-linejoin="round"
12
- class="w-4 h-4 text-gray-700 lucide lucide-calendar"
13
- __v0_r="0,5361,5384"
14
- >
15
- <path d="M8 2v4"></path>
16
- <path d="M16 2v4"></path>
17
- <rect width="18" height="18" x="3" y="4" rx="2"></rect>
18
- <path d="M3 10h18"></path>
19
- </svg>
20
- </template>
@@ -1,20 +0,0 @@
1
- <template>
2
- <svg
3
- xmlns="http://www.w3.org/2000/svg"
4
- width="24"
5
- height="24"
6
- viewBox="0 0 24 24"
7
- fill="none"
8
- stroke="currentColor"
9
- stroke-width="2"
10
- stroke-linecap="round"
11
- stroke-linejoin="round"
12
- class="w-4 h-4 text-gray-700 lucide lucide-calendar"
13
- __v0_r="0,5361,5384"
14
- >
15
- <path d="M8 2v4"></path>
16
- <path d="M16 2v4"></path>
17
- <rect width="18" height="18" x="3" y="4" rx="2"></rect>
18
- <path d="M3 10h18"></path>
19
- </svg>
20
- </template>
@@ -1,21 +0,0 @@
1
- <template>
2
- <svg
3
- xmlns="http://www.w3.org/2000/svg"
4
- width="24"
5
- height="24"
6
- viewBox="0 0 24 24"
7
- fill="none"
8
- stroke="currentColor"
9
- stroke-width="2"
10
- stroke-linecap="round"
11
- stroke-linejoin="round"
12
- class="w-4 h-4 text-gray-700 lucide lucide-file-text"
13
- __v0_r="0,5361,5384"
14
- >
15
- <path d="M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z"></path>
16
- <path d="M14 2v4a2 2 0 0 0 2 2h4"></path>
17
- <path d="M10 9H8"></path>
18
- <path d="M16 13H8"></path>
19
- <path d="M16 17H8"></path>
20
- </svg>
21
- </template>
@@ -1,18 +0,0 @@
1
- <template>
2
- <svg
3
- xmlns="http://www.w3.org/2000/svg"
4
- width="24"
5
- height="24"
6
- viewBox="0 0 24 24"
7
- fill="none"
8
- stroke="currentColor"
9
- stroke-width="2"
10
- stroke-linecap="round"
11
- stroke-linejoin="round"
12
- class="lucide lucide-image-icon w-5 h-5 mr-3"
13
- >
14
- <rect width="18" height="18" x="3" y="3" rx="2" ry="2"></rect>
15
- <circle cx="9" cy="9" r="2"></circle>
16
- <path d="m21 15-3.086-3.086a2 2 0 0 0-2.828 0L6 21"></path>
17
- </svg>
18
- </template>
@@ -1,19 +0,0 @@
1
- <template>
2
- <svg
3
- xmlns="http://www.w3.org/2000/svg"
4
- width="24"
5
- height="24"
6
- viewBox="0 0 24 24"
7
- fill="none"
8
- stroke="currentColor"
9
- stroke-width="2"
10
- stroke-linecap="round"
11
- stroke-linejoin="round"
12
- class="w-4 h-4 text-gray-700 lucide lucide-image"
13
- __v0_r="0,5361,5384"
14
- >
15
- <rect width="18" height="18" x="3" y="3" rx="2" ry="2"></rect>
16
- <circle cx="9" cy="9" r="2"></circle>
17
- <path d="m21 15-3.086-3.086a2 2 0 0 0-2.828 0L6 21"></path>
18
- </svg>
19
- </template>
@@ -1,20 +0,0 @@
1
- <template>
2
- <svg
3
- xmlns="http://www.w3.org/2000/svg"
4
- width="24"
5
- height="24"
6
- viewBox="0 0 24 24"
7
- fill="none"
8
- stroke="currentColor"
9
- stroke-width="2"
10
- stroke-linecap="round"
11
- stroke-linejoin="round"
12
- class="w-4 h-4 text-gray-700 lucide lucide-hash"
13
- __v0_r="0,5361,5384"
14
- >
15
- <line x1="4" x2="20" y1="9" y2="9"></line>
16
- <line x1="4" x2="20" y1="15" y2="15"></line>
17
- <line x1="10" x2="8" y1="3" y2="21"></line>
18
- <line x1="16" x2="14" y1="3" y2="21"></line>
19
- </svg>
20
- </template>
@@ -1,18 +0,0 @@
1
- <template>
2
- <svg
3
- xmlns="http://www.w3.org/2000/svg"
4
- width="24"
5
- height="24"
6
- viewBox="0 0 24 24"
7
- fill="none"
8
- stroke="currentColor"
9
- stroke-width="2"
10
- stroke-linecap="round"
11
- stroke-linejoin="round"
12
- class="w-4 h-4 text-gray-700 lucide lucide-code"
13
- __v0_r="0,5361,5384"
14
- >
15
- <polyline points="16 18 22 12 16 6"></polyline>
16
- <polyline points="8 6 2 12 8 18"></polyline>
17
- </svg>
18
- </template>
@@ -1,22 +0,0 @@
1
- <template>
2
- <svg
3
- xmlns="http://www.w3.org/2000/svg"
4
- width="24"
5
- height="24"
6
- viewBox="0 0 24 24"
7
- fill="none"
8
- stroke="currentColor"
9
- stroke-width="2"
10
- stroke-linecap="round"
11
- stroke-linejoin="round"
12
- class="w-4 h-4 text-gray-700 lucide lucide-list"
13
- __v0_r="0,5361,5384"
14
- >
15
- <line x1="8" x2="21" y1="6" y2="6"></line>
16
- <line x1="8" x2="21" y1="12" y2="12"></line>
17
- <line x1="8" x2="21" y1="18" y2="18"></line>
18
- <line x1="3" x2="3.01" y1="6" y2="6"></line>
19
- <line x1="3" x2="3.01" y1="12" y2="12"></line>
20
- <line x1="3" x2="3.01" y1="18" y2="18"></line>
21
- </svg>
22
- </template>
@@ -1,20 +0,0 @@
1
- <template>
2
- <svg
3
- xmlns="http://www.w3.org/2000/svg"
4
- width="24"
5
- height="24"
6
- viewBox="0 0 24 24"
7
- fill="none"
8
- stroke="currentColor"
9
- stroke-width="2"
10
- stroke-linecap="round"
11
- stroke-linejoin="round"
12
- class="w-4 h-4 text-gray-700 lucide lucide-hash"
13
- __v0_r="0,5361,5384"
14
- >
15
- <line x1="4" x2="20" y1="9" y2="9"></line>
16
- <line x1="4" x2="20" y1="15" y2="15"></line>
17
- <line x1="10" x2="8" y1="3" y2="21"></line>
18
- <line x1="16" x2="14" y1="3" y2="21"></line>
19
- </svg>
20
- </template>
@@ -1,22 +0,0 @@
1
- <template>
2
- <svg
3
- xmlns="http://www.w3.org/2000/svg"
4
- width="24"
5
- height="24"
6
- viewBox="0 0 24 24"
7
- fill="none"
8
- stroke="currentColor"
9
- stroke-width="2"
10
- stroke-linecap="round"
11
- stroke-linejoin="round"
12
- class="w-4 h-4 text-gray-700 lucide lucide-list"
13
- __v0_r="0,5361,5384"
14
- >
15
- <line x1="8" x2="21" y1="6" y2="6"></line>
16
- <line x1="8" x2="21" y1="12" y2="12"></line>
17
- <line x1="8" x2="21" y1="18" y2="18"></line>
18
- <line x1="3" x2="3.01" y1="6" y2="6"></line>
19
- <line x1="3" x2="3.01" y1="12" y2="12"></line>
20
- <line x1="3" x2="3.01" y1="18" y2="18"></line>
21
- </svg>
22
- </template>
@@ -1,22 +0,0 @@
1
- <template>
2
- <svg
3
- xmlns="http://www.w3.org/2000/svg"
4
- width="24"
5
- height="24"
6
- viewBox="0 0 24 24"
7
- fill="none"
8
- stroke="currentColor"
9
- stroke-width="2"
10
- stroke-linecap="round"
11
- stroke-linejoin="round"
12
- class="w-4 h-4 text-gray-700 lucide lucide-list"
13
- __v0_r="0,5361,5384"
14
- >
15
- <line x1="8" x2="21" y1="6" y2="6"></line>
16
- <line x1="8" x2="21" y1="12" y2="12"></line>
17
- <line x1="8" x2="21" y1="18" y2="18"></line>
18
- <line x1="3" x2="3.01" y1="6" y2="6"></line>
19
- <line x1="3" x2="3.01" y1="12" y2="12"></line>
20
- <line x1="3" x2="3.01" y1="18" y2="18"></line>
21
- </svg>
22
- </template>
@@ -1,20 +0,0 @@
1
- <template>
2
- <svg
3
- xmlns="http://www.w3.org/2000/svg"
4
- width="24"
5
- height="24"
6
- viewBox="0 0 24 24"
7
- fill="none"
8
- stroke="currentColor"
9
- stroke-width="2"
10
- stroke-linecap="round"
11
- stroke-linejoin="round"
12
- class="w-4 h-4 text-gray-700 lucide lucide-link2"
13
- __v0_r="0,5361,5384"
14
- >
15
- <path d="M9 17H7A5 5 0 0 1 7 7h2"></path>
16
- <path d="M15 7h2a5 5 0 1 1 0 10h-2"></path>
17
- <line x1="8" x2="16" y1="12" y2="12"></line>
18
- </svg>
19
- </template>
20
-
@@ -1,22 +0,0 @@
1
- <template>
2
- <svg
3
- xmlns="http://www.w3.org/2000/svg"
4
- width="24"
5
- height="24"
6
- viewBox="0 0 24 24"
7
- fill="none"
8
- stroke="currentColor"
9
- stroke-width="2"
10
- stroke-linecap="round"
11
- stroke-linejoin="round"
12
- class="w-4 h-4 text-gray-700 lucide lucide-list"
13
- __v0_r="0,5361,5384"
14
- >
15
- <line x1="8" x2="21" y1="6" y2="6"></line>
16
- <line x1="8" x2="21" y1="12" y2="12"></line>
17
- <line x1="8" x2="21" y1="18" y2="18"></line>
18
- <line x1="3" x2="3.01" y1="6" y2="6"></line>
19
- <line x1="3" x2="3.01" y1="12" y2="12"></line>
20
- <line x1="3" x2="3.01" y1="18" y2="18"></line>
21
- </svg>
22
- </template>
@@ -1,18 +0,0 @@
1
- <template>
2
- <svg
3
- xmlns="http://www.w3.org/2000/svg"
4
- width="24"
5
- height="24"
6
- viewBox="0 0 24 24"
7
- fill="none"
8
- stroke="currentColor"
9
- stroke-width="2"
10
- stroke-linecap="round"
11
- stroke-linejoin="round"
12
- class="w-4 h-4 text-gray-700 lucide lucide-code"
13
- __v0_r="0,5361,5384"
14
- >
15
- <polyline points="16 18 22 12 16 6"></polyline>
16
- <polyline points="8 6 2 12 8 18"></polyline>
17
- </svg>
18
- </template>
@@ -1,22 +0,0 @@
1
- <template>
2
- <svg
3
- xmlns="http://www.w3.org/2000/svg"
4
- width="24"
5
- height="24"
6
- viewBox="0 0 24 24"
7
- fill="none"
8
- stroke="currentColor"
9
- stroke-width="2"
10
- stroke-linecap="round"
11
- stroke-linejoin="round"
12
- class="w-4 h-4 text-gray-700 lucide lucide-list"
13
- __v0_r="0,5361,5384"
14
- >
15
- <line x1="8" x2="21" y1="6" y2="6"></line>
16
- <line x1="8" x2="21" y1="12" y2="12"></line>
17
- <line x1="8" x2="21" y1="18" y2="18"></line>
18
- <line x1="3" x2="3.01" y1="6" y2="6"></line>
19
- <line x1="3" x2="3.01" y1="12" y2="12"></line>
20
- <line x1="3" x2="3.01" y1="18" y2="18"></line>
21
- </svg>
22
- </template>
@@ -1,19 +0,0 @@
1
- <template>
2
- <svg
3
- xmlns="http://www.w3.org/2000/svg"
4
- width="24"
5
- height="24"
6
- viewBox="0 0 24 24"
7
- fill="none"
8
- stroke="currentColor"
9
- stroke-width="2"
10
- stroke-linecap="round"
11
- stroke-linejoin="round"
12
- class="w-4 h-4 text-gray-700 lucide lucide-link2"
13
- __v0_r="0,5361,5384"
14
- >
15
- <path d="M9 17H7A5 5 0 0 1 7 7h2"></path>
16
- <path d="M15 7h2a5 5 0 1 1 0 10h-2"></path>
17
- <line x1="8" x2="16" y1="12" y2="12"></line>
18
- </svg>
19
- </template>
@@ -1,19 +0,0 @@
1
- <template>
2
- <svg
3
- xmlns="http://www.w3.org/2000/svg"
4
- width="24"
5
- height="24"
6
- viewBox="0 0 24 24"
7
- fill="none"
8
- stroke="currentColor"
9
- stroke-width="2"
10
- stroke-linecap="round"
11
- stroke-linejoin="round"
12
- class="w-4 h-4 text-gray-700 lucide lucide-type"
13
- __v0_r="0,5361,5384"
14
- >
15
- <polyline points="4 7 4 4 20 4 20 7"></polyline>
16
- <line x1="9" x2="15" y1="20" y2="20"></line>
17
- <line x1="12" x2="12" y1="4" y2="20"></line>
18
- </svg>
19
- </template>
@@ -1,43 +0,0 @@
1
- import IconText from "./icon-text.vue";
2
- import IconNumber from "./icon-number.vue";
3
- import IconDate from "./icon-date.vue";
4
- import IconDatetime from "./icon-datetime.vue";
5
- import IconRichtext from "./icon-richtext.vue";
6
- import IconBoolean from "./icon-boolean.vue";
7
- import IconFile from "./icon-file.vue";
8
- import IconImage from "./icon-image.vue";
9
- import IconArray from "./icon-array.vue";
10
- import IconSelect from "./icon-select.vue";
11
- import IconSlug from "./icon-slug.vue";
12
- import IconDatalist from "./icon-datalist.vue";
13
- import IconReference from "./icon-reference.vue";
14
- import IconReferenceList from "./icon-reference-list.vue";
15
- import IconRelation from "./icon-relation.vue";
16
- import IconMultiselect from "./icon-multiselect.vue";
17
- import IconRadio from "./icon-radio.vue";
18
- import IconInteger from "./icon-integer.vue";
19
- import IconGallery from "./icon-gallery.vue";
20
- import IconMarkdown from "./icon-merkdown.vue";
21
-
22
- export default {
23
- IconText,
24
- IconNumber,
25
- IconDate,
26
- IconDatetime,
27
- IconRichtext,
28
- IconBoolean,
29
- IconFile,
30
- IconImage,
31
- IconArray,
32
- IconSelect,
33
- IconSlug,
34
- IconDatalist,
35
- IconReference,
36
- IconReferenceList,
37
- IconRelation,
38
- IconMultiselect,
39
- IconRadio,
40
- IconInteger,
41
- IconGallery,
42
- IconMarkdown,
43
- };
@@ -1,67 +0,0 @@
1
- <template>
2
- <div
3
- class="flex-1 min-h-screen overflow-y-auto bg-gradient-to-br from-slate-50 via-blue-50 to-indigo-50 dark:from-slate-900 dark:via-slate-800 dark:to-slate-900"
4
- >
5
- <div class="flex h-screen transition-colors">
6
- <SettingsSidebar v-if="route.path.includes('/settings')" />
7
- <Sidebar v-else />
8
-
9
- <main class="flex-1 p-4 overflow-y-auto md:p-6">
10
- <router-view></router-view>
11
- </main>
12
- </div>
13
- </div>
14
- </template>
15
-
16
- <script setup lang="ts">
17
- import { onMounted, ref, provide, getCurrentInstance } from "vue";
18
- import { useTheme } from "../../composables/useTheme";
19
- import Sidebar from "./Sidebar.vue";
20
- import SettingsSidebar from "../sidebar/SettingsSidebar.vue";
21
- import { useRoute } from "vue-router";
22
- const { theme } = useTheme();
23
- const route = useRoute();
24
- // Динамічний список типів контенту
25
- const contentTypes = ref<any[]>([]);
26
- const menu = ref<any[]>([]);
27
- const app = getCurrentInstance();
28
-
29
- async function fetchContentTypes() {
30
- try {
31
- const res = await fetch("/api/cms-type?type=collection");
32
- if (!res.ok) throw new Error("Failed to fetch content types");
33
- const data = await res.json();
34
- // Вибираємо тільки типи-колекції (type === 'collection')
35
- const sortedData = data.rows.sort((a: any, b: any) => {
36
- // "сторінки" (id='pages') завжди перші
37
- if (a.id === "pages") return -1;
38
- if (b.id === "pages") return 1;
39
- return 0;
40
- });
41
- menu.value = sortedData;
42
- contentTypes.value = sortedData;
43
- } catch (e) {
44
- console.error("Error fetching content types:", e);
45
- }
46
- }
47
-
48
- async function fetchSettings() {
49
- const res = await fetch("/api/settings");
50
- const data = await res.json();
51
- // Звернення до глобальної змінної через getCurrentInstance
52
- if (app && app.appContext.config.globalProperties.$settings) {
53
- app.appContext.config.globalProperties.$settings.locales =
54
- data.settings.locales;
55
- app.appContext.config.globalProperties.$settings.locale =
56
- data.settings.locale;
57
- }
58
- }
59
-
60
- provide("menu", menu);
61
- provide("fetchContentTypes", fetchContentTypes);
62
-
63
- onMounted(() => {
64
- fetchContentTypes();
65
- fetchSettings();
66
- });
67
- </script>
@@ -1,128 +0,0 @@
1
- <template>
2
- <aside
3
- class="flex-col hidden w-64 transition-colors duration-200 bg-white border-r border-gray-200 md:flex dark:border-gray-700 dark:bg-gray-800"
4
- >
5
- <SidebarHeader />
6
-
7
- <nav class="sidebar-menu flex-1 p-2 overflow-y-auto bg-white dark:bg-slate-800">
8
- <SidebarMenu
9
- :navigation-items="navigationItems"
10
- />
11
- </nav>
12
-
13
- <SidebarFooter />
14
- </aside>
15
- </template>
16
-
17
- <script setup lang="ts">
18
- import { computed, ref, onMounted } from "vue";
19
- import SidebarMenu from "../sidebar/SidebarMenu.vue";
20
- import SidebarFooter from "../sidebar/SidebarFooter.vue";
21
- import SidebarHeader from "../sidebar/SidebarHeader.vue";
22
- import {
23
- Home,
24
- FileText,
25
- Image,
26
- Menu,
27
- Settings,
28
- Tag,
29
- Users,
30
- } from "lucide-vue-next";
31
-
32
- const userType = ref<string | null>(null);
33
-
34
- const fetchUserData = async () => {
35
- try {
36
- const response = await fetch('/user');
37
- const data = await response.json();
38
- userType.value = data?.user?.user_type || null;
39
- } catch (error) {
40
- console.error('Error fetching user data:', error);
41
- }
42
- };
43
-
44
- onMounted(() => {
45
- fetchUserData();
46
- });
47
-
48
- const navigationItems = computed(() => {
49
- const allNavigationItems = [
50
- {
51
- id: "dashboard",
52
- path: "/",
53
- label: "navigation.dashboard",
54
- icon: Home,
55
- },
56
- {
57
- id: "content",
58
- path: "/collections",
59
- label: "common.content",
60
- icon: FileText,
61
- },
62
- {
63
- id: "menu",
64
- path: "/menu",
65
- label: "navigation.singletonsMenu",
66
- icon: Menu,
67
- },
68
- // {
69
- // id: "feedback",
70
- // path: "/feedback",
71
- // label: "navigation.feedback",
72
- // icon: FolderUp,
73
- // },
74
- // {
75
- // id: "email",
76
- // path: "/email",
77
- // label: "navigation.email",
78
- // icon: Mail,
79
- // },
80
- {
81
- id: "tags",
82
- path: "/tags",
83
- label: "navigation.tags",
84
- icon: Tag,
85
- },
86
- {
87
- id: "users",
88
- path: "/users",
89
- label: "navigation.users",
90
- icon: Users,
91
- },
92
- {
93
- id: "media",
94
- path: "/media",
95
- label: "navigation.media",
96
- icon: Image,
97
- },
98
- {
99
- id: "settings",
100
- path: "/settings",
101
- label: "navigation.settings",
102
- icon: Settings,
103
- },
104
- ];
105
-
106
- // If user_type is not "admin", filter out "users" and "settings"
107
- if (userType.value !== "admin") {
108
- return allNavigationItems.filter(item => item.id !== "users" && item.id !== "settings");
109
- }
110
- return allNavigationItems;
111
- });
112
- </script>
113
-
114
- <style scoped>
115
- .sidebar-menu {
116
- overflow-y: auto;
117
- scrollbar-width: thin;
118
- scrollbar-color: #e0e0e0 #f5f5f5;
119
- }
120
-
121
- .sidebar-menu::-webkit-scrollbar {
122
- width: 4px;
123
- }
124
-
125
- .sidebar-menu::-webkit-scrollbar-thumb {
126
- border-radius: 0;
127
- }
128
- </style>