convex-cms 0.0.15 → 0.0.16

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 (654) hide show
  1. package/README.md +18 -18
  2. package/admin/dist/types/admin/src/components/AdminLayout.d.ts +7 -0
  3. package/admin/dist/types/admin/src/components/AdminLayout.d.ts.map +1 -0
  4. package/admin/dist/types/admin/src/components/BreakingChangesWarningDialog.d.ts +11 -0
  5. package/admin/dist/types/admin/src/components/BreakingChangesWarningDialog.d.ts.map +1 -0
  6. package/admin/dist/types/admin/src/components/BulkActionBar.d.ts +8 -0
  7. package/admin/dist/types/admin/src/components/BulkActionBar.d.ts.map +1 -0
  8. package/admin/dist/types/admin/src/components/BulkOperationModal.d.ts +16 -0
  9. package/admin/dist/types/admin/src/components/BulkOperationModal.d.ts.map +1 -0
  10. package/admin/dist/types/admin/src/components/ContentEntryEditor.d.ts +42 -0
  11. package/admin/dist/types/admin/src/components/ContentEntryEditor.d.ts.map +1 -0
  12. package/admin/dist/types/admin/src/components/ContentTypeFormModal.d.ts +13 -0
  13. package/admin/dist/types/admin/src/components/ContentTypeFormModal.d.ts.map +1 -0
  14. package/admin/dist/types/admin/src/components/ErrorBoundary.d.ts +35 -0
  15. package/admin/dist/types/admin/src/components/ErrorBoundary.d.ts.map +1 -0
  16. package/admin/dist/types/admin/src/components/ErrorState.d.ts +52 -0
  17. package/admin/dist/types/admin/src/components/ErrorState.d.ts.map +1 -0
  18. package/admin/dist/types/admin/src/components/FieldGroupSection.d.ts +23 -0
  19. package/admin/dist/types/admin/src/components/FieldGroupSection.d.ts.map +1 -0
  20. package/admin/dist/types/admin/src/components/Header.d.ts +2 -0
  21. package/admin/dist/types/admin/src/components/Header.d.ts.map +1 -0
  22. package/admin/dist/types/admin/src/components/RouteGuard.d.ts +70 -0
  23. package/admin/dist/types/admin/src/components/RouteGuard.d.ts.map +1 -0
  24. package/admin/dist/types/admin/src/components/SchemaDriftWarning.d.ts +13 -0
  25. package/admin/dist/types/admin/src/components/SchemaDriftWarning.d.ts.map +1 -0
  26. package/admin/dist/types/admin/src/components/Sidebar.d.ts +2 -0
  27. package/admin/dist/types/admin/src/components/Sidebar.d.ts.map +1 -0
  28. package/admin/dist/types/admin/src/components/TaxonomyEditor.d.ts +19 -0
  29. package/admin/dist/types/admin/src/components/TaxonomyEditor.d.ts.map +1 -0
  30. package/admin/dist/types/admin/src/components/TermTree.d.ts +8 -0
  31. package/admin/dist/types/admin/src/components/TermTree.d.ts.map +1 -0
  32. package/admin/dist/types/admin/src/components/UploadDropzone.d.ts +20 -0
  33. package/admin/dist/types/admin/src/components/UploadDropzone.d.ts.map +1 -0
  34. package/admin/dist/types/admin/src/components/VersionCompare.d.ts +10 -0
  35. package/admin/dist/types/admin/src/components/VersionCompare.d.ts.map +1 -0
  36. package/admin/dist/types/admin/src/components/VersionHistory.d.ts +9 -0
  37. package/admin/dist/types/admin/src/components/VersionHistory.d.ts.map +1 -0
  38. package/admin/dist/types/admin/src/components/VersionRollbackModal.d.ts +11 -0
  39. package/admin/dist/types/admin/src/components/VersionRollbackModal.d.ts.map +1 -0
  40. package/admin/dist/types/admin/src/components/cmsds/CmsButton.d.ts +10 -0
  41. package/admin/dist/types/admin/src/components/cmsds/CmsButton.d.ts.map +1 -0
  42. package/admin/dist/types/admin/src/components/cmsds/CmsDialog.d.ts +28 -0
  43. package/admin/dist/types/admin/src/components/cmsds/CmsDialog.d.ts.map +1 -0
  44. package/admin/dist/types/admin/src/components/cmsds/CmsDropdown.d.ts +15 -0
  45. package/admin/dist/types/admin/src/components/cmsds/CmsDropdown.d.ts.map +1 -0
  46. package/admin/dist/types/admin/src/components/cmsds/CmsEmptyState.d.ts +14 -0
  47. package/admin/dist/types/admin/src/components/cmsds/CmsEmptyState.d.ts.map +1 -0
  48. package/admin/dist/types/admin/src/components/cmsds/CmsFilterBar.d.ts +25 -0
  49. package/admin/dist/types/admin/src/components/cmsds/CmsFilterBar.d.ts.map +1 -0
  50. package/admin/dist/types/admin/src/components/cmsds/CmsInput.d.ts +6 -0
  51. package/admin/dist/types/admin/src/components/cmsds/CmsInput.d.ts.map +1 -0
  52. package/admin/dist/types/admin/src/components/cmsds/CmsPageHeader.d.ts +9 -0
  53. package/admin/dist/types/admin/src/components/cmsds/CmsPageHeader.d.ts.map +1 -0
  54. package/admin/dist/types/admin/src/components/cmsds/CmsPagination.d.ts +9 -0
  55. package/admin/dist/types/admin/src/components/cmsds/CmsPagination.d.ts.map +1 -0
  56. package/admin/dist/types/admin/src/components/cmsds/CmsSelect.d.ts +16 -0
  57. package/admin/dist/types/admin/src/components/cmsds/CmsSelect.d.ts.map +1 -0
  58. package/admin/dist/types/admin/src/components/cmsds/CmsStatCard.d.ts +16 -0
  59. package/admin/dist/types/admin/src/components/cmsds/CmsStatCard.d.ts.map +1 -0
  60. package/admin/dist/types/admin/src/components/cmsds/CmsStatusBadge.d.ts +15 -0
  61. package/admin/dist/types/admin/src/components/cmsds/CmsStatusBadge.d.ts.map +1 -0
  62. package/admin/dist/types/admin/src/components/cmsds/CmsSurface.d.ts +9 -0
  63. package/admin/dist/types/admin/src/components/cmsds/CmsSurface.d.ts.map +1 -0
  64. package/admin/dist/types/admin/src/components/cmsds/CmsTable.d.ts +24 -0
  65. package/admin/dist/types/admin/src/components/cmsds/CmsTable.d.ts.map +1 -0
  66. package/admin/dist/types/admin/src/components/cmsds/CmsToolbar.d.ts +14 -0
  67. package/admin/dist/types/admin/src/components/cmsds/CmsToolbar.d.ts.map +1 -0
  68. package/admin/dist/types/admin/src/components/cmsds/index.d.ts +15 -0
  69. package/admin/dist/types/admin/src/components/cmsds/index.d.ts.map +1 -0
  70. package/admin/dist/types/admin/src/components/editor/AutosaveIndicator.d.ts +12 -0
  71. package/admin/dist/types/admin/src/components/editor/AutosaveIndicator.d.ts.map +1 -0
  72. package/admin/dist/types/admin/src/components/editor/EditorContentPanel.d.ts +11 -0
  73. package/admin/dist/types/admin/src/components/editor/EditorContentPanel.d.ts.map +1 -0
  74. package/admin/dist/types/admin/src/components/editor/EditorModals.d.ts +29 -0
  75. package/admin/dist/types/admin/src/components/editor/EditorModals.d.ts.map +1 -0
  76. package/admin/dist/types/admin/src/components/editor/EditorPropertiesPanel.d.ts +24 -0
  77. package/admin/dist/types/admin/src/components/editor/EditorPropertiesPanel.d.ts.map +1 -0
  78. package/admin/dist/types/admin/src/components/editor/EditorToolbar.d.ts +38 -0
  79. package/admin/dist/types/admin/src/components/editor/EditorToolbar.d.ts.map +1 -0
  80. package/admin/dist/types/admin/src/components/editor/index.d.ts +6 -0
  81. package/admin/dist/types/admin/src/components/editor/index.d.ts.map +1 -0
  82. package/admin/dist/types/admin/src/components/fields/ArrayObjectField.d.ts +3 -0
  83. package/admin/dist/types/admin/src/components/fields/ArrayObjectField.d.ts.map +1 -0
  84. package/admin/dist/types/admin/src/components/fields/BooleanField.d.ts +3 -0
  85. package/admin/dist/types/admin/src/components/fields/BooleanField.d.ts.map +1 -0
  86. package/admin/dist/types/admin/src/components/fields/CategoryField.d.ts +6 -0
  87. package/admin/dist/types/admin/src/components/fields/CategoryField.d.ts.map +1 -0
  88. package/admin/dist/types/admin/src/components/fields/DateField.d.ts +3 -0
  89. package/admin/dist/types/admin/src/components/fields/DateField.d.ts.map +1 -0
  90. package/admin/dist/types/admin/src/components/fields/DefaultFieldRenderer.d.ts +9 -0
  91. package/admin/dist/types/admin/src/components/fields/DefaultFieldRenderer.d.ts.map +1 -0
  92. package/admin/dist/types/admin/src/components/fields/FieldRenderer.d.ts +23 -0
  93. package/admin/dist/types/admin/src/components/fields/FieldRenderer.d.ts.map +1 -0
  94. package/admin/dist/types/admin/src/components/fields/FieldWrapper.d.ts +13 -0
  95. package/admin/dist/types/admin/src/components/fields/FieldWrapper.d.ts.map +1 -0
  96. package/admin/dist/types/admin/src/components/fields/JsonField.d.ts +7 -0
  97. package/admin/dist/types/admin/src/components/fields/JsonField.d.ts.map +1 -0
  98. package/admin/dist/types/admin/src/components/fields/MediaField.d.ts +6 -0
  99. package/admin/dist/types/admin/src/components/fields/MediaField.d.ts.map +1 -0
  100. package/admin/dist/types/admin/src/components/fields/MoneyField.d.ts +3 -0
  101. package/admin/dist/types/admin/src/components/fields/MoneyField.d.ts.map +1 -0
  102. package/admin/dist/types/admin/src/components/fields/MultiSelectField.d.ts +6 -0
  103. package/admin/dist/types/admin/src/components/fields/MultiSelectField.d.ts.map +1 -0
  104. package/admin/dist/types/admin/src/components/fields/NumberField.d.ts +3 -0
  105. package/admin/dist/types/admin/src/components/fields/NumberField.d.ts.map +1 -0
  106. package/admin/dist/types/admin/src/components/fields/ReferenceField.d.ts +6 -0
  107. package/admin/dist/types/admin/src/components/fields/ReferenceField.d.ts.map +1 -0
  108. package/admin/dist/types/admin/src/components/fields/RichTextField.d.ts +3 -0
  109. package/admin/dist/types/admin/src/components/fields/RichTextField.d.ts.map +1 -0
  110. package/admin/dist/types/admin/src/components/fields/SelectField.d.ts +6 -0
  111. package/admin/dist/types/admin/src/components/fields/SelectField.d.ts.map +1 -0
  112. package/admin/dist/types/admin/src/components/fields/TagField.d.ts +6 -0
  113. package/admin/dist/types/admin/src/components/fields/TagField.d.ts.map +1 -0
  114. package/admin/dist/types/admin/src/components/fields/TextAreaField.d.ts +3 -0
  115. package/admin/dist/types/admin/src/components/fields/TextAreaField.d.ts.map +1 -0
  116. package/admin/dist/types/admin/src/components/fields/TextField.d.ts +3 -0
  117. package/admin/dist/types/admin/src/components/fields/TextField.d.ts.map +1 -0
  118. package/admin/dist/types/admin/src/components/fields/registry.d.ts +18 -0
  119. package/admin/dist/types/admin/src/components/fields/registry.d.ts.map +1 -0
  120. package/admin/dist/types/admin/src/components/fields/types.d.ts +202 -0
  121. package/admin/dist/types/admin/src/components/fields/types.d.ts.map +1 -0
  122. package/admin/dist/types/admin/src/components/filters/TaxonomyFilter.d.ts +10 -0
  123. package/admin/dist/types/admin/src/components/filters/TaxonomyFilter.d.ts.map +1 -0
  124. package/admin/dist/types/admin/src/components/index.d.ts +9 -0
  125. package/admin/dist/types/admin/src/components/index.d.ts.map +1 -0
  126. package/admin/dist/types/admin/src/components/media/MediaAssetActions.d.ts +15 -0
  127. package/admin/dist/types/admin/src/components/media/MediaAssetActions.d.ts.map +1 -0
  128. package/admin/dist/types/admin/src/components/media/MediaAssetEditDialog.d.ts +17 -0
  129. package/admin/dist/types/admin/src/components/media/MediaAssetEditDialog.d.ts.map +1 -0
  130. package/admin/dist/types/admin/src/components/media/MediaBulkActionBar.d.ts +10 -0
  131. package/admin/dist/types/admin/src/components/media/MediaBulkActionBar.d.ts.map +1 -0
  132. package/admin/dist/types/admin/src/components/media/MediaFolderActions.d.ts +13 -0
  133. package/admin/dist/types/admin/src/components/media/MediaFolderActions.d.ts.map +1 -0
  134. package/admin/dist/types/admin/src/components/media/MediaFolderEditDialog.d.ts +14 -0
  135. package/admin/dist/types/admin/src/components/media/MediaFolderEditDialog.d.ts.map +1 -0
  136. package/admin/dist/types/admin/src/components/media/MediaMoveModal.d.ts +10 -0
  137. package/admin/dist/types/admin/src/components/media/MediaMoveModal.d.ts.map +1 -0
  138. package/admin/dist/types/admin/src/components/media/MediaPreviewModal.d.ts +27 -0
  139. package/admin/dist/types/admin/src/components/media/MediaPreviewModal.d.ts.map +1 -0
  140. package/admin/dist/types/admin/src/components/media/MediaTaxonomyPicker.d.ts +11 -0
  141. package/admin/dist/types/admin/src/components/media/MediaTaxonomyPicker.d.ts.map +1 -0
  142. package/admin/dist/types/admin/src/components/media/MediaTrashBulkActionBar.d.ts +11 -0
  143. package/admin/dist/types/admin/src/components/media/MediaTrashBulkActionBar.d.ts.map +1 -0
  144. package/admin/dist/types/admin/src/components/ui/alert-dialog.d.ts +15 -0
  145. package/admin/dist/types/admin/src/components/ui/alert-dialog.d.ts.map +1 -0
  146. package/admin/dist/types/admin/src/components/ui/alert.d.ts +10 -0
  147. package/admin/dist/types/admin/src/components/ui/alert.d.ts.map +1 -0
  148. package/admin/dist/types/admin/src/components/ui/avatar.d.ts +7 -0
  149. package/admin/dist/types/admin/src/components/ui/avatar.d.ts.map +1 -0
  150. package/admin/dist/types/admin/src/components/ui/badge.d.ts +10 -0
  151. package/admin/dist/types/admin/src/components/ui/badge.d.ts.map +1 -0
  152. package/admin/dist/types/admin/src/components/ui/breadcrumb.d.ts +12 -0
  153. package/admin/dist/types/admin/src/components/ui/breadcrumb.d.ts.map +1 -0
  154. package/admin/dist/types/admin/src/components/ui/button.d.ts +11 -0
  155. package/admin/dist/types/admin/src/components/ui/button.d.ts.map +1 -0
  156. package/admin/dist/types/admin/src/components/ui/calendar.d.ts +9 -0
  157. package/admin/dist/types/admin/src/components/ui/calendar.d.ts.map +1 -0
  158. package/admin/dist/types/admin/src/components/ui/card.d.ts +10 -0
  159. package/admin/dist/types/admin/src/components/ui/card.d.ts.map +1 -0
  160. package/admin/dist/types/admin/src/components/ui/checkbox.d.ts +5 -0
  161. package/admin/dist/types/admin/src/components/ui/checkbox.d.ts.map +1 -0
  162. package/admin/dist/types/admin/src/components/ui/collapsible.d.ts +7 -0
  163. package/admin/dist/types/admin/src/components/ui/collapsible.d.ts.map +1 -0
  164. package/admin/dist/types/admin/src/components/ui/command.d.ts +19 -0
  165. package/admin/dist/types/admin/src/components/ui/command.d.ts.map +1 -0
  166. package/admin/dist/types/admin/src/components/ui/dialog.d.ts +16 -0
  167. package/admin/dist/types/admin/src/components/ui/dialog.d.ts.map +1 -0
  168. package/admin/dist/types/admin/src/components/ui/drawer.d.ts +14 -0
  169. package/admin/dist/types/admin/src/components/ui/drawer.d.ts.map +1 -0
  170. package/admin/dist/types/admin/src/components/ui/dropdown-menu.d.ts +26 -0
  171. package/admin/dist/types/admin/src/components/ui/dropdown-menu.d.ts.map +1 -0
  172. package/admin/dist/types/admin/src/components/ui/field.d.ts +25 -0
  173. package/admin/dist/types/admin/src/components/ui/field.d.ts.map +1 -0
  174. package/admin/dist/types/admin/src/components/ui/input-group.d.ts +17 -0
  175. package/admin/dist/types/admin/src/components/ui/input-group.d.ts.map +1 -0
  176. package/admin/dist/types/admin/src/components/ui/input.d.ts +4 -0
  177. package/admin/dist/types/admin/src/components/ui/input.d.ts.map +1 -0
  178. package/admin/dist/types/admin/src/components/ui/label.d.ts +5 -0
  179. package/admin/dist/types/admin/src/components/ui/label.d.ts.map +1 -0
  180. package/admin/dist/types/admin/src/components/ui/popover.d.ts +8 -0
  181. package/admin/dist/types/admin/src/components/ui/popover.d.ts.map +1 -0
  182. package/admin/dist/types/admin/src/components/ui/scroll-area.d.ts +6 -0
  183. package/admin/dist/types/admin/src/components/ui/scroll-area.d.ts.map +1 -0
  184. package/admin/dist/types/admin/src/components/ui/select.d.ts +16 -0
  185. package/admin/dist/types/admin/src/components/ui/select.d.ts.map +1 -0
  186. package/admin/dist/types/admin/src/components/ui/separator.d.ts +5 -0
  187. package/admin/dist/types/admin/src/components/ui/separator.d.ts.map +1 -0
  188. package/admin/dist/types/admin/src/components/ui/sheet.d.ts +14 -0
  189. package/admin/dist/types/admin/src/components/ui/sheet.d.ts.map +1 -0
  190. package/admin/dist/types/admin/src/components/ui/sidebar.d.ts +70 -0
  191. package/admin/dist/types/admin/src/components/ui/sidebar.d.ts.map +1 -0
  192. package/admin/dist/types/admin/src/components/ui/skeleton.d.ts +3 -0
  193. package/admin/dist/types/admin/src/components/ui/skeleton.d.ts.map +1 -0
  194. package/admin/dist/types/admin/src/components/ui/spinner.d.ts +3 -0
  195. package/admin/dist/types/admin/src/components/ui/spinner.d.ts.map +1 -0
  196. package/admin/dist/types/admin/src/components/ui/switch.d.ts +5 -0
  197. package/admin/dist/types/admin/src/components/ui/switch.d.ts.map +1 -0
  198. package/admin/dist/types/admin/src/components/ui/table.d.ts +11 -0
  199. package/admin/dist/types/admin/src/components/ui/table.d.ts.map +1 -0
  200. package/admin/dist/types/admin/src/components/ui/tabs.d.ts +8 -0
  201. package/admin/dist/types/admin/src/components/ui/tabs.d.ts.map +1 -0
  202. package/admin/dist/types/admin/src/components/ui/textarea.d.ts +4 -0
  203. package/admin/dist/types/admin/src/components/ui/textarea.d.ts.map +1 -0
  204. package/admin/dist/types/admin/src/components/ui/toggle-group.d.ts +10 -0
  205. package/admin/dist/types/admin/src/components/ui/toggle-group.d.ts.map +1 -0
  206. package/admin/dist/types/admin/src/components/ui/toggle.d.ts +10 -0
  207. package/admin/dist/types/admin/src/components/ui/toggle.d.ts.map +1 -0
  208. package/admin/dist/types/admin/src/components/ui/tooltip.d.ts +8 -0
  209. package/admin/dist/types/admin/src/components/ui/tooltip.d.ts.map +1 -0
  210. package/admin/dist/types/admin/src/contexts/AdminConfigContext.d.ts +15 -0
  211. package/admin/dist/types/admin/src/contexts/AdminConfigContext.d.ts.map +1 -0
  212. package/admin/dist/types/admin/src/contexts/AuthContext.d.ts +161 -0
  213. package/admin/dist/types/admin/src/contexts/AuthContext.d.ts.map +1 -0
  214. package/admin/dist/types/admin/src/contexts/BreadcrumbContext.d.ts +12 -0
  215. package/admin/dist/types/admin/src/contexts/BreadcrumbContext.d.ts.map +1 -0
  216. package/admin/dist/types/admin/src/contexts/SettingsConfigContext.d.ts +30 -0
  217. package/admin/dist/types/admin/src/contexts/SettingsConfigContext.d.ts.map +1 -0
  218. package/admin/dist/types/admin/src/contexts/ThemeContext.d.ts +17 -0
  219. package/admin/dist/types/admin/src/contexts/ThemeContext.d.ts.map +1 -0
  220. package/admin/dist/types/admin/src/contexts/index.d.ts +6 -0
  221. package/admin/dist/types/admin/src/contexts/index.d.ts.map +1 -0
  222. package/admin/dist/types/admin/src/embed/components/EmbedHeader.d.ts +7 -0
  223. package/admin/dist/types/admin/src/embed/components/EmbedHeader.d.ts.map +1 -0
  224. package/admin/dist/types/admin/src/embed/components/EmbedLayout.d.ts +13 -0
  225. package/admin/dist/types/admin/src/embed/components/EmbedLayout.d.ts.map +1 -0
  226. package/admin/dist/types/admin/src/embed/components/EmbedSidebar.d.ts +8 -0
  227. package/admin/dist/types/admin/src/embed/components/EmbedSidebar.d.ts.map +1 -0
  228. package/admin/dist/types/admin/src/embed/components/index.d.ts +4 -0
  229. package/admin/dist/types/admin/src/embed/components/index.d.ts.map +1 -0
  230. package/admin/dist/types/admin/src/embed/contexts/ApiContext.d.ts +18 -0
  231. package/admin/dist/types/admin/src/embed/contexts/ApiContext.d.ts.map +1 -0
  232. package/admin/dist/types/admin/src/embed/index.d.ts +23 -0
  233. package/admin/dist/types/admin/src/embed/index.d.ts.map +1 -0
  234. package/admin/dist/types/admin/src/embed/navigation.d.ts +42 -0
  235. package/admin/dist/types/admin/src/embed/navigation.d.ts.map +1 -0
  236. package/admin/dist/types/admin/src/embed/pages/Content.d.ts +8 -0
  237. package/admin/dist/types/admin/src/embed/pages/Content.d.ts.map +1 -0
  238. package/admin/dist/types/admin/src/embed/pages/ContentTypeEntries.d.ts +10 -0
  239. package/admin/dist/types/admin/src/embed/pages/ContentTypeEntries.d.ts.map +1 -0
  240. package/admin/dist/types/admin/src/embed/pages/ContentTypes.d.ts +8 -0
  241. package/admin/dist/types/admin/src/embed/pages/ContentTypes.d.ts.map +1 -0
  242. package/admin/dist/types/admin/src/embed/pages/Dashboard.d.ts +8 -0
  243. package/admin/dist/types/admin/src/embed/pages/Dashboard.d.ts.map +1 -0
  244. package/admin/dist/types/admin/src/embed/pages/Entry.d.ts +7 -0
  245. package/admin/dist/types/admin/src/embed/pages/Entry.d.ts.map +1 -0
  246. package/admin/dist/types/admin/src/embed/pages/Media.d.ts +8 -0
  247. package/admin/dist/types/admin/src/embed/pages/Media.d.ts.map +1 -0
  248. package/admin/dist/types/admin/src/embed/pages/NewEntry.d.ts +7 -0
  249. package/admin/dist/types/admin/src/embed/pages/NewEntry.d.ts.map +1 -0
  250. package/admin/dist/types/admin/src/embed/pages/Settings.d.ts +11 -0
  251. package/admin/dist/types/admin/src/embed/pages/Settings.d.ts.map +1 -0
  252. package/admin/dist/types/admin/src/embed/pages/Taxonomies.d.ts +11 -0
  253. package/admin/dist/types/admin/src/embed/pages/Taxonomies.d.ts.map +1 -0
  254. package/admin/dist/types/admin/src/embed/pages/Trash.d.ts +11 -0
  255. package/admin/dist/types/admin/src/embed/pages/Trash.d.ts.map +1 -0
  256. package/admin/dist/types/admin/src/embed/pages/Users.d.ts +7 -0
  257. package/admin/dist/types/admin/src/embed/pages/Users.d.ts.map +1 -0
  258. package/admin/dist/types/admin/src/embed/pages/index.d.ts +12 -0
  259. package/admin/dist/types/admin/src/embed/pages/index.d.ts.map +1 -0
  260. package/admin/dist/types/admin/src/embed/types.d.ts +33 -0
  261. package/admin/dist/types/admin/src/embed/types.d.ts.map +1 -0
  262. package/admin/dist/types/admin/src/hooks/index.d.ts +4 -0
  263. package/admin/dist/types/admin/src/hooks/index.d.ts.map +1 -0
  264. package/admin/dist/types/admin/src/hooks/use-mobile.d.ts +2 -0
  265. package/admin/dist/types/admin/src/hooks/use-mobile.d.ts.map +1 -0
  266. package/admin/dist/types/admin/src/hooks/useBreadcrumbLabel.d.ts +2 -0
  267. package/admin/dist/types/admin/src/hooks/useBreadcrumbLabel.d.ts.map +1 -0
  268. package/admin/dist/types/admin/src/hooks/usePermissions.d.ts +65 -0
  269. package/admin/dist/types/admin/src/hooks/usePermissions.d.ts.map +1 -0
  270. package/admin/dist/types/admin/src/hooks/useTaxonomyId.d.ts +13 -0
  271. package/admin/dist/types/admin/src/hooks/useTaxonomyId.d.ts.map +1 -0
  272. package/admin/dist/types/admin/src/lib/admin-config.d.ts +69 -0
  273. package/admin/dist/types/admin/src/lib/admin-config.d.ts.map +1 -0
  274. package/admin/dist/types/admin/src/lib/cmsExports.d.ts +7 -0
  275. package/admin/dist/types/admin/src/lib/cmsExports.d.ts.map +1 -0
  276. package/admin/dist/types/admin/src/lib/cn.d.ts +3 -0
  277. package/admin/dist/types/admin/src/lib/cn.d.ts.map +1 -0
  278. package/admin/dist/types/admin/src/lib/embed-adapter.d.ts +10 -0
  279. package/admin/dist/types/admin/src/lib/embed-adapter.d.ts.map +1 -0
  280. package/admin/dist/types/admin/src/lib/icons.d.ts +7 -0
  281. package/admin/dist/types/admin/src/lib/icons.d.ts.map +1 -0
  282. package/admin/dist/types/admin/src/lib/motion.d.ts +27 -0
  283. package/admin/dist/types/admin/src/lib/motion.d.ts.map +1 -0
  284. package/admin/dist/types/admin/src/lib/navigation.d.ts +31 -0
  285. package/admin/dist/types/admin/src/lib/navigation.d.ts.map +1 -0
  286. package/admin/dist/types/admin/src/pages/ContentPage.d.ts +14 -0
  287. package/admin/dist/types/admin/src/pages/ContentPage.d.ts.map +1 -0
  288. package/admin/dist/types/admin/src/pages/ContentTypeEntriesPage.d.ts +15 -0
  289. package/admin/dist/types/admin/src/pages/ContentTypeEntriesPage.d.ts.map +1 -0
  290. package/admin/dist/types/admin/src/pages/ContentTypesPage.d.ts +14 -0
  291. package/admin/dist/types/admin/src/pages/ContentTypesPage.d.ts.map +1 -0
  292. package/admin/dist/types/admin/src/pages/DashboardPage.d.ts +15 -0
  293. package/admin/dist/types/admin/src/pages/DashboardPage.d.ts.map +1 -0
  294. package/admin/dist/types/admin/src/pages/MediaPage.d.ts +19 -0
  295. package/admin/dist/types/admin/src/pages/MediaPage.d.ts.map +1 -0
  296. package/admin/dist/types/admin/src/pages/SettingsPage.d.ts +14 -0
  297. package/admin/dist/types/admin/src/pages/SettingsPage.d.ts.map +1 -0
  298. package/admin/dist/types/admin/src/pages/TaxonomiesPage.d.ts +14 -0
  299. package/admin/dist/types/admin/src/pages/TaxonomiesPage.d.ts.map +1 -0
  300. package/admin/dist/types/admin/src/pages/TrashPage.d.ts +14 -0
  301. package/admin/dist/types/admin/src/pages/TrashPage.d.ts.map +1 -0
  302. package/admin/dist/types/admin/src/pages/UsersPage.d.ts +8 -0
  303. package/admin/dist/types/admin/src/pages/UsersPage.d.ts.map +1 -0
  304. package/admin/dist/types/admin/src/pages/index.d.ts +16 -0
  305. package/admin/dist/types/admin/src/pages/index.d.ts.map +1 -0
  306. package/admin/dist/types/admin/src/types/index.d.ts +144 -0
  307. package/admin/dist/types/admin/src/types/index.d.ts.map +1 -0
  308. package/admin/dist/types/admin/src/utils/errorParsing.d.ts +27 -0
  309. package/admin/dist/types/admin/src/utils/errorParsing.d.ts.map +1 -0
  310. package/admin/dist/types/admin/src/utils/index.d.ts +2 -0
  311. package/admin/dist/types/admin/src/utils/index.d.ts.map +1 -0
  312. package/admin/dist/types/src/client/admin/bulk.d.ts +79 -0
  313. package/admin/dist/types/src/client/admin/bulk.d.ts.map +1 -0
  314. package/admin/dist/types/src/client/admin/contentLock.d.ts +118 -0
  315. package/admin/dist/types/src/client/admin/contentLock.d.ts.map +1 -0
  316. package/admin/dist/types/src/client/admin/contentTypes.d.ts +1627 -0
  317. package/admin/dist/types/src/client/admin/contentTypes.d.ts.map +1 -0
  318. package/admin/dist/types/src/client/admin/dashboard.d.ts +16 -0
  319. package/admin/dist/types/src/client/admin/dashboard.d.ts.map +1 -0
  320. package/admin/dist/types/src/client/admin/entries.d.ts +357 -0
  321. package/admin/dist/types/src/client/admin/entries.d.ts.map +1 -0
  322. package/admin/dist/types/src/client/admin/index.d.ts +7502 -0
  323. package/admin/dist/types/src/client/admin/index.d.ts.map +1 -0
  324. package/admin/dist/types/src/client/admin/media.d.ts +1038 -0
  325. package/admin/dist/types/src/client/admin/media.d.ts.map +1 -0
  326. package/admin/dist/types/src/client/admin/settings.d.ts +50 -0
  327. package/admin/dist/types/src/client/admin/settings.d.ts.map +1 -0
  328. package/admin/dist/types/src/client/admin/taxonomies.d.ts +339 -0
  329. package/admin/dist/types/src/client/admin/taxonomies.d.ts.map +1 -0
  330. package/admin/dist/types/src/client/admin/trash.d.ts +90 -0
  331. package/admin/dist/types/src/client/admin/trash.d.ts.map +1 -0
  332. package/admin/dist/types/src/client/admin/types.d.ts +594 -0
  333. package/admin/dist/types/src/client/admin/types.d.ts.map +1 -0
  334. package/admin/dist/types/src/client/admin/users.d.ts +58 -0
  335. package/admin/dist/types/src/client/admin/users.d.ts.map +1 -0
  336. package/admin/dist/types/src/client/admin/validators.d.ts +7732 -0
  337. package/admin/dist/types/src/client/admin/validators.d.ts.map +1 -0
  338. package/admin/dist/types/src/client/admin/versions.d.ts +106 -0
  339. package/admin/dist/types/src/client/admin/versions.d.ts.map +1 -0
  340. package/admin/dist/types/src/client/adminConfig.d.ts +125 -0
  341. package/admin/dist/types/src/client/adminConfig.d.ts.map +1 -0
  342. package/admin/dist/types/src/client/config.d.ts +155 -0
  343. package/admin/dist/types/src/client/config.d.ts.map +1 -0
  344. package/admin/dist/types/src/client/field-types.d.ts +55 -0
  345. package/admin/dist/types/src/client/field-types.d.ts.map +1 -0
  346. package/admin/dist/types/src/client/fields.d.ts +70 -0
  347. package/admin/dist/types/src/client/fields.d.ts.map +1 -0
  348. package/admin/dist/types/src/client/registry.d.ts +77 -0
  349. package/admin/dist/types/src/client/registry.d.ts.map +1 -0
  350. package/admin/dist/types/src/client/schema/defineContentType.d.ts +233 -0
  351. package/admin/dist/types/src/client/schema/defineContentType.d.ts.map +1 -0
  352. package/admin/dist/types/src/client/schema/types.d.ts +540 -0
  353. package/admin/dist/types/src/client/schema/types.d.ts.map +1 -0
  354. package/admin/dist/types/src/client/types.d.ts +449 -0
  355. package/admin/dist/types/src/client/types.d.ts.map +1 -0
  356. package/admin/dist/types/src/client/utils/toSlug.d.ts +60 -0
  357. package/admin/dist/types/src/client/utils/toSlug.d.ts.map +1 -0
  358. package/admin/dist/types/src/client/workflows.d.ts +51 -0
  359. package/admin/dist/types/src/client/workflows.d.ts.map +1 -0
  360. package/admin/dist/types/src/component/_generated/component.d.ts +4813 -0
  361. package/admin/dist/types/src/component/_generated/component.d.ts.map +1 -0
  362. package/admin/dist/types/src/component/_generated/dataModel.d.ts +46 -0
  363. package/admin/dist/types/src/component/_generated/dataModel.d.ts.map +1 -0
  364. package/admin/dist/types/src/component/_generated/server.d.ts +121 -0
  365. package/admin/dist/types/src/component/_generated/server.d.ts.map +1 -0
  366. package/admin/dist/types/src/component/contentEntryMutations.d.ts +551 -0
  367. package/admin/dist/types/src/component/contentEntryMutations.d.ts.map +1 -0
  368. package/admin/dist/types/src/component/contentLock.d.ts +328 -0
  369. package/admin/dist/types/src/component/contentLock.d.ts.map +1 -0
  370. package/admin/dist/types/src/component/contentTypeMutations.d.ts +1253 -0
  371. package/admin/dist/types/src/component/contentTypeMutations.d.ts.map +1 -0
  372. package/admin/dist/types/src/component/documentTypes.d.ts +186 -0
  373. package/admin/dist/types/src/component/documentTypes.d.ts.map +1 -0
  374. package/admin/dist/types/src/component/eventEmitter.d.ts +309 -0
  375. package/admin/dist/types/src/component/eventEmitter.d.ts.map +1 -0
  376. package/admin/dist/types/src/component/lib/errors.d.ts +306 -0
  377. package/admin/dist/types/src/component/lib/errors.d.ts.map +1 -0
  378. package/admin/dist/types/src/component/lib/metadataExtractor.d.ts +245 -0
  379. package/admin/dist/types/src/component/lib/metadataExtractor.d.ts.map +1 -0
  380. package/admin/dist/types/src/component/lib/mutationAuth.d.ts +95 -0
  381. package/admin/dist/types/src/component/lib/mutationAuth.d.ts.map +1 -0
  382. package/admin/dist/types/src/component/lib/slugGenerator.d.ts +71 -0
  383. package/admin/dist/types/src/component/lib/slugGenerator.d.ts.map +1 -0
  384. package/admin/dist/types/src/component/lib/slugUniqueness.d.ts +131 -0
  385. package/admin/dist/types/src/component/lib/slugUniqueness.d.ts.map +1 -0
  386. package/admin/dist/types/src/component/lib/softDelete.d.ts +18 -0
  387. package/admin/dist/types/src/component/lib/softDelete.d.ts.map +1 -0
  388. package/admin/dist/types/src/component/localeFields.d.ts +508 -0
  389. package/admin/dist/types/src/component/localeFields.d.ts.map +1 -0
  390. package/admin/dist/types/src/component/mediaAssetMutations.d.ts +282 -0
  391. package/admin/dist/types/src/component/mediaAssetMutations.d.ts.map +1 -0
  392. package/admin/dist/types/src/component/roles.d.ts +649 -0
  393. package/admin/dist/types/src/component/roles.d.ts.map +1 -0
  394. package/admin/dist/types/src/component/schema.d.ts +5248 -0
  395. package/admin/dist/types/src/component/schema.d.ts.map +1 -0
  396. package/admin/dist/types/src/component/validation.d.ts +407 -0
  397. package/admin/dist/types/src/component/validation.d.ts.map +1 -0
  398. package/admin/dist/types/src/component/validators.d.ts +5722 -0
  399. package/admin/dist/types/src/component/validators.d.ts.map +1 -0
  400. package/admin/dist/types/src/react/index.d.ts +493 -0
  401. package/admin/dist/types/src/react/index.d.ts.map +1 -0
  402. package/admin/src/components/AdminLayout.tsx +14 -6
  403. package/admin/src/components/BreakingChangesWarningDialog.tsx +6 -6
  404. package/admin/src/components/BulkActionBar.tsx +3 -3
  405. package/admin/src/components/BulkOperationModal.tsx +7 -7
  406. package/admin/src/components/ContentEntryEditor.tsx +319 -630
  407. package/admin/src/components/ContentTypeFormModal.tsx +39 -28
  408. package/admin/src/components/FieldGroupSection.tsx +178 -0
  409. package/admin/src/components/Header.tsx +18 -12
  410. package/admin/src/components/RouteGuard.tsx +1 -1
  411. package/admin/src/components/SchemaDriftWarning.tsx +10 -6
  412. package/admin/src/components/Sidebar.tsx +180 -162
  413. package/admin/src/components/TaxonomyEditor.tsx +17 -17
  414. package/admin/src/components/TermTree.tsx +16 -16
  415. package/admin/src/components/UploadDropzone.tsx +18 -8
  416. package/admin/src/components/VersionCompare.tsx +7 -7
  417. package/admin/src/components/VersionHistory.tsx +7 -7
  418. package/admin/src/components/VersionRollbackModal.tsx +5 -5
  419. package/admin/src/components/cmsds/CmsButton.tsx +5 -27
  420. package/admin/src/components/cmsds/CmsDialog.tsx +3 -3
  421. package/admin/src/components/cmsds/CmsDropdown.tsx +1 -1
  422. package/admin/src/components/cmsds/CmsEmptyState.tsx +1 -1
  423. package/admin/src/components/cmsds/CmsField.tsx +3 -3
  424. package/admin/src/components/cmsds/CmsFilterBar.tsx +8 -7
  425. package/admin/src/components/cmsds/CmsInput.tsx +2 -2
  426. package/admin/src/components/cmsds/CmsPageHeader.tsx +4 -4
  427. package/admin/src/components/cmsds/CmsPagination.tsx +1 -1
  428. package/admin/src/components/cmsds/CmsSelect.tsx +2 -2
  429. package/admin/src/components/cmsds/CmsStatCard.tsx +2 -2
  430. package/admin/src/components/cmsds/CmsStatusBadge.tsx +2 -2
  431. package/admin/src/components/cmsds/CmsSurface.tsx +1 -1
  432. package/admin/src/components/cmsds/CmsTable.tsx +3 -3
  433. package/admin/src/components/cmsds/CmsToolbar.tsx +2 -2
  434. package/admin/src/components/cmsds/index.ts +0 -1
  435. package/admin/src/components/editor/AutosaveIndicator.tsx +56 -0
  436. package/admin/src/components/editor/EditorContentPanel.tsx +60 -0
  437. package/admin/src/components/editor/EditorModals.tsx +122 -0
  438. package/admin/src/components/editor/EditorPropertiesPanel.tsx +179 -0
  439. package/admin/src/components/editor/EditorToolbar.tsx +284 -0
  440. package/admin/src/components/editor/index.ts +5 -0
  441. package/admin/src/components/fields/ArrayObjectField.tsx +304 -0
  442. package/admin/src/components/fields/BooleanField.tsx +30 -35
  443. package/admin/src/components/fields/CategoryField.tsx +8 -7
  444. package/admin/src/components/fields/DateField.tsx +5 -5
  445. package/admin/src/components/fields/DefaultFieldRenderer.tsx +1 -1
  446. package/admin/src/components/fields/FieldRenderer.tsx +30 -0
  447. package/admin/src/components/fields/FieldWrapper.tsx +12 -25
  448. package/admin/src/components/fields/JsonField.tsx +3 -3
  449. package/admin/src/components/fields/MediaField.tsx +269 -132
  450. package/admin/src/components/fields/MoneyField.tsx +179 -0
  451. package/admin/src/components/fields/MultiSelectField.tsx +67 -62
  452. package/admin/src/components/fields/NumberField.tsx +141 -28
  453. package/admin/src/components/fields/ReferenceField.tsx +12 -12
  454. package/admin/src/components/fields/RichTextField.tsx +4 -4
  455. package/admin/src/components/fields/SelectField.tsx +10 -7
  456. package/admin/src/components/fields/TagField.tsx +11 -9
  457. package/admin/src/components/fields/TextAreaField.tsx +2 -2
  458. package/admin/src/components/fields/TextField.tsx +2 -2
  459. package/admin/src/components/fields/index.ts +4 -0
  460. package/admin/src/components/fields/registry.ts +2 -0
  461. package/admin/src/components/fields/types.ts +34 -0
  462. package/admin/src/components/filters/TaxonomyFilter.tsx +7 -7
  463. package/admin/src/components/media/MediaAssetActions.tsx +2 -2
  464. package/admin/src/components/media/MediaAssetEditDialog.tsx +30 -34
  465. package/admin/src/components/media/MediaBulkActionBar.tsx +1 -1
  466. package/admin/src/components/media/MediaFolderActions.tsx +2 -2
  467. package/admin/src/components/media/MediaFolderEditDialog.tsx +17 -15
  468. package/admin/src/components/media/MediaMoveModal.tsx +5 -5
  469. package/admin/src/components/media/MediaPreviewModal.tsx +5 -5
  470. package/admin/src/components/media/MediaTaxonomyPicker.tsx +6 -6
  471. package/admin/src/components/media/MediaTrashBulkActionBar.tsx +1 -1
  472. package/admin/src/components/ui/accordion.tsx +1 -1
  473. package/admin/src/components/ui/alert-dialog.tsx +2 -2
  474. package/admin/src/components/ui/alert.tsx +1 -1
  475. package/admin/src/components/ui/avatar.tsx +1 -1
  476. package/admin/src/components/ui/badge.tsx +1 -1
  477. package/admin/src/components/ui/breadcrumb.tsx +1 -1
  478. package/admin/src/components/ui/button.tsx +1 -1
  479. package/admin/src/components/ui/calendar.tsx +2 -2
  480. package/admin/src/components/ui/card.tsx +1 -1
  481. package/admin/src/components/ui/checkbox.tsx +1 -1
  482. package/admin/src/components/ui/collapsible.tsx +25 -5
  483. package/admin/src/components/ui/command.tsx +2 -2
  484. package/admin/src/components/ui/dialog.tsx +1 -1
  485. package/admin/src/components/ui/drawer.tsx +133 -0
  486. package/admin/src/components/ui/dropdown-menu.tsx +1 -1
  487. package/admin/src/components/ui/field.tsx +246 -0
  488. package/admin/src/components/ui/form.tsx +2 -2
  489. package/admin/src/components/ui/input-group.tsx +168 -0
  490. package/admin/src/components/ui/input.tsx +1 -1
  491. package/admin/src/components/ui/label.tsx +1 -1
  492. package/admin/src/components/ui/popover.tsx +1 -1
  493. package/admin/src/components/ui/scroll-area.tsx +1 -1
  494. package/admin/src/components/ui/select.tsx +1 -1
  495. package/admin/src/components/ui/separator.tsx +1 -1
  496. package/admin/src/components/ui/sheet.tsx +1 -1
  497. package/admin/src/components/ui/sidebar.tsx +8 -8
  498. package/admin/src/components/ui/skeleton.tsx +1 -1
  499. package/admin/src/components/ui/spinner.tsx +16 -0
  500. package/admin/src/components/ui/switch.tsx +1 -1
  501. package/admin/src/components/ui/table.tsx +1 -1
  502. package/admin/src/components/ui/tabs.tsx +1 -1
  503. package/admin/src/components/ui/textarea.tsx +1 -1
  504. package/admin/src/components/ui/toggle-group.tsx +83 -0
  505. package/admin/src/components/ui/toggle.tsx +45 -0
  506. package/admin/src/components/ui/tooltip.tsx +1 -1
  507. package/admin/src/contexts/SettingsConfigContext.tsx +1 -1
  508. package/admin/src/embed/components/EmbedHeader.tsx +13 -9
  509. package/admin/src/embed/components/EmbedLayout.tsx +13 -5
  510. package/admin/src/embed/components/EmbedSidebar.tsx +107 -102
  511. package/admin/src/embed/contexts/ApiContext.tsx +1 -1
  512. package/admin/src/embed/index.tsx +31 -32
  513. package/admin/src/embed/navigation.tsx +3 -0
  514. package/admin/src/embed/pages/Entry.tsx +50 -15
  515. package/admin/src/embed/pages/Users.tsx +11 -0
  516. package/admin/src/embed/pages/index.ts +1 -0
  517. package/admin/src/embed/theme.css +65 -0
  518. package/admin/src/hooks/index.ts +1 -0
  519. package/admin/src/hooks/useBreadcrumbLabel.ts +1 -1
  520. package/admin/src/hooks/useTaxonomyId.ts +32 -0
  521. package/admin/src/index.css +21 -0
  522. package/admin/src/lib/admin-config.ts +16 -0
  523. package/admin/src/lib/adminApi.ts +1 -1
  524. package/admin/src/lib/cmsExports.ts +8 -15
  525. package/admin/src/lib/icons.tsx +2 -0
  526. package/admin/src/pages/ContentPage.tsx +11 -11
  527. package/admin/src/pages/ContentTypeEntriesPage.tsx +9 -9
  528. package/admin/src/pages/ContentTypesPage.tsx +9 -9
  529. package/admin/src/pages/DashboardPage.tsx +7 -7
  530. package/admin/src/pages/MediaPage.tsx +26 -26
  531. package/admin/src/pages/SettingsPage.tsx +36 -39
  532. package/admin/src/pages/TaxonomiesPage.tsx +12 -12
  533. package/admin/src/pages/TrashPage.tsx +8 -8
  534. package/admin/src/pages/UsersPage.tsx +344 -0
  535. package/admin/src/pages/index.ts +1 -0
  536. package/admin/src/standalone/App.tsx +6 -6
  537. package/admin/src/standalone/config.ts +1 -1
  538. package/admin/src/standalone/router.tsx +17 -17
  539. package/admin-dist/assets/index-CQLWK5Wb.css +1 -0
  540. package/admin-dist/assets/index-DTgANhXL.js +104 -0
  541. package/admin-dist/index.html +2 -2
  542. package/dist/client/admin/contentLock.d.ts.map +1 -1
  543. package/dist/client/admin/contentTypes.d.ts +287 -4
  544. package/dist/client/admin/contentTypes.d.ts.map +1 -1
  545. package/dist/client/admin/contentTypes.js +19 -1
  546. package/dist/client/admin/contentTypes.js.map +1 -1
  547. package/dist/client/admin/entries.d.ts.map +1 -1
  548. package/dist/client/admin/index.d.ts +612 -8
  549. package/dist/client/admin/index.d.ts.map +1 -1
  550. package/dist/client/admin/index.js +34 -3
  551. package/dist/client/admin/index.js.map +1 -1
  552. package/dist/client/admin/media.d.ts.map +1 -1
  553. package/dist/client/admin/media.js +10 -1
  554. package/dist/client/admin/media.js.map +1 -1
  555. package/dist/client/admin/taxonomies.d.ts.map +1 -1
  556. package/dist/client/admin/taxonomies.js +36 -11
  557. package/dist/client/admin/taxonomies.js.map +1 -1
  558. package/dist/client/admin/trash.d.ts.map +1 -1
  559. package/dist/client/admin/types.d.ts +47 -7
  560. package/dist/client/admin/types.d.ts.map +1 -1
  561. package/dist/client/admin/users.d.ts +58 -0
  562. package/dist/client/admin/users.d.ts.map +1 -0
  563. package/dist/client/admin/users.js +111 -0
  564. package/dist/client/admin/users.js.map +1 -0
  565. package/dist/client/admin/validators.d.ts +1266 -120
  566. package/dist/client/admin/validators.d.ts.map +1 -1
  567. package/dist/client/admin/validators.js +3 -2
  568. package/dist/client/admin/validators.js.map +1 -1
  569. package/dist/client/admin/versions.d.ts.map +1 -1
  570. package/dist/client/config.js.map +1 -1
  571. package/dist/client/defineContent.d.ts +98 -8
  572. package/dist/client/defineContent.d.ts.map +1 -1
  573. package/dist/client/defineContent.js +329 -19
  574. package/dist/client/defineContent.js.map +1 -1
  575. package/dist/client/field-types.d.ts.map +1 -1
  576. package/dist/client/field-types.js +27 -0
  577. package/dist/client/field-types.js.map +1 -1
  578. package/dist/client/fields.d.ts +70 -0
  579. package/dist/client/fields.d.ts.map +1 -0
  580. package/dist/client/fields.js +118 -0
  581. package/dist/client/fields.js.map +1 -0
  582. package/dist/client/index.d.ts +3 -2
  583. package/dist/client/index.d.ts.map +1 -1
  584. package/dist/client/index.js +3 -1
  585. package/dist/client/index.js.map +1 -1
  586. package/dist/client/registry.js.map +1 -1
  587. package/dist/client/schema/defineContentType.d.ts +3 -3
  588. package/dist/client/schema/defineContentType.d.ts.map +1 -1
  589. package/dist/client/schema/defineContentType.js +86 -3
  590. package/dist/client/schema/defineContentType.js.map +1 -1
  591. package/dist/client/schema/index.d.ts +1 -1
  592. package/dist/client/schema/index.d.ts.map +1 -1
  593. package/dist/client/schema/index.js.map +1 -1
  594. package/dist/client/schema/types.d.ts +65 -9
  595. package/dist/client/schema/types.d.ts.map +1 -1
  596. package/dist/client/schema/types.js.map +1 -1
  597. package/dist/component/_generated/api.d.ts +2 -0
  598. package/dist/component/_generated/api.d.ts.map +1 -1
  599. package/dist/component/_generated/api.js.map +1 -1
  600. package/dist/component/_generated/component.d.ts +361 -18
  601. package/dist/component/_generated/component.d.ts.map +1 -1
  602. package/dist/component/authorization.d.ts.map +1 -1
  603. package/dist/component/authorization.js +1 -0
  604. package/dist/component/authorization.js.map +1 -1
  605. package/dist/component/cmsUsers.d.ts +97 -0
  606. package/dist/component/cmsUsers.d.ts.map +1 -0
  607. package/dist/component/cmsUsers.js +224 -0
  608. package/dist/component/cmsUsers.js.map +1 -0
  609. package/dist/component/contentEntryMutations.d.ts +7 -7
  610. package/dist/component/contentTypeMutations.d.ts +199 -11
  611. package/dist/component/contentTypeMutations.d.ts.map +1 -1
  612. package/dist/component/contentTypes.d.ts +98 -4
  613. package/dist/component/contentTypes.d.ts.map +1 -1
  614. package/dist/component/eventEmitter.d.ts +43 -14
  615. package/dist/component/eventEmitter.d.ts.map +1 -1
  616. package/dist/component/eventEmitter.js +50 -2
  617. package/dist/component/eventEmitter.js.map +1 -1
  618. package/dist/component/exportImport.d.ts +12 -12
  619. package/dist/component/mediaAssetMutations.d.ts +5 -5
  620. package/dist/component/mediaFolderMutations.d.ts +5 -5
  621. package/dist/component/ragContentIndexer.d.ts +51 -4
  622. package/dist/component/ragContentIndexer.d.ts.map +1 -1
  623. package/dist/component/roles.d.ts +4 -4
  624. package/dist/component/roles.d.ts.map +1 -1
  625. package/dist/component/roles.js +5 -1
  626. package/dist/component/roles.js.map +1 -1
  627. package/dist/component/schema.d.ts +897 -112
  628. package/dist/component/schema.d.ts.map +1 -1
  629. package/dist/component/schema.js +48 -7
  630. package/dist/component/schema.js.map +1 -1
  631. package/dist/component/taxonomies.d.ts +1 -1
  632. package/dist/component/taxonomies.d.ts.map +1 -1
  633. package/dist/component/taxonomies.js +11 -2
  634. package/dist/component/taxonomies.js.map +1 -1
  635. package/dist/component/validation.d.ts +22 -2
  636. package/dist/component/validation.d.ts.map +1 -1
  637. package/dist/component/validation.js +174 -1
  638. package/dist/component/validation.js.map +1 -1
  639. package/dist/component/validators.d.ts +847 -106
  640. package/dist/component/validators.d.ts.map +1 -1
  641. package/dist/component/validators.js +5 -2
  642. package/dist/component/validators.js.map +1 -1
  643. package/dist/component/webhookTrigger.d.ts +17 -17
  644. package/dist/component/webhookTrigger.d.ts.map +1 -1
  645. package/dist/component/webhookTrigger.js +4 -4
  646. package/dist/component/webhookTrigger.js.map +1 -1
  647. package/dist/react/index.d.ts +3 -2
  648. package/dist/react/index.d.ts.map +1 -1
  649. package/dist/react/index.js.map +1 -1
  650. package/dist/test.d.ts +309 -33
  651. package/dist/test.d.ts.map +1 -1
  652. package/package.json +238 -230
  653. package/admin-dist/assets/index-BrbXSzjb.css +0 -1
  654. package/admin-dist/assets/index-CdHu1-Ex.js +0 -96
@@ -1,183 +1,201 @@
1
1
  import { useState } from "react";
2
+ import { version } from "../../../package.json";
2
3
  import { Link, useRouterState } from "@tanstack/react-router";
3
4
  import { useQuery } from "convex/react";
4
5
  import { Layers, ChevronDown } from "lucide-react";
5
- import { cn } from "~/lib/cn";
6
- import { useAdminConfig } from "~/contexts";
7
- import { Icon } from "~/lib/icons";
8
- import { useApi } from "~/embed/contexts/ApiContext";
6
+ import { useAdminConfig } from "../contexts";
7
+ import { Icon } from "../lib/icons";
8
+ import { useApi } from "../embed/contexts/ApiContext";
9
9
  import {
10
- Collapsible,
11
- CollapsibleTrigger,
12
- CollapsibleContent,
13
- } from "~/components/ui/collapsible";
14
- import { ContentTypeFormModal } from "~/components/ContentTypeFormModal";
15
- import type { NavItem } from "~/lib/admin-config";
10
+ Collapsible,
11
+ CollapsibleTrigger,
12
+ CollapsibleContent,
13
+ } from "./ui/collapsible";
14
+ import {
15
+ Sidebar as ShadcnSidebar,
16
+ SidebarHeader,
17
+ SidebarContent,
18
+ SidebarFooter,
19
+ SidebarGroup,
20
+ SidebarGroupLabel,
21
+ SidebarMenu,
22
+ SidebarMenuItem,
23
+ SidebarMenuButton,
24
+ SidebarMenuSub,
25
+ SidebarMenuSubItem,
26
+ SidebarMenuSubButton,
27
+ useSidebar,
28
+ } from "./ui/sidebar";
29
+ import { ContentTypeFormModal } from "./ContentTypeFormModal";
30
+ import type { NavItem } from "../lib/admin-config";
16
31
 
17
32
  export function Sidebar() {
18
- const routerState = useRouterState();
19
- const currentPath = routerState.location.pathname;
20
- const config = useAdminConfig();
21
- const { navItems, branding, layout } = config;
22
- const api = useApi();
33
+ const routerState = useRouterState();
34
+ const currentPath = routerState.location.pathname;
35
+ const config = useAdminConfig();
36
+ const { navItems, branding } = config;
37
+ const api = useApi();
38
+ const { setOpenMobile, isMobile } = useSidebar();
23
39
 
24
- const [isCreateModalOpen, setIsCreateModalOpen] = useState(false);
40
+ const [isCreateModalOpen, setIsCreateModalOpen] = useState(false);
25
41
 
26
- const contentTypesResult = useQuery(api.listContentTypes, {
27
- isActive: true,
28
- });
29
- const contentTypes = contentTypesResult?.page ?? [];
42
+ const contentTypesResult = useQuery(api.listContentTypes, {
43
+ isActive: true,
44
+ });
45
+ const contentTypes = contentTypesResult?.page ?? [];
30
46
 
31
- const isActive = (to: string, exact?: boolean) => {
32
- if (exact) {
33
- return currentPath === to;
34
- }
35
- return currentPath.startsWith(to);
36
- };
47
+ const isActive = (to: string, exact?: boolean) => {
48
+ if (exact) {
49
+ return currentPath === to;
50
+ }
51
+ return currentPath.startsWith(to);
52
+ };
37
53
 
38
- const isContentActive =
39
- currentPath === "/content" ||
40
- currentPath.startsWith("/entries/type/") ||
41
- currentPath.startsWith("/entries/new/") ||
42
- currentPath.startsWith("/entries/");
54
+ const isContentActive =
55
+ currentPath === "/content" ||
56
+ currentPath.startsWith("/entries/type/") ||
57
+ currentPath.startsWith("/entries/new/") ||
58
+ currentPath.startsWith("/entries/");
43
59
 
44
- const renderNavItem = (item: NavItem) => {
45
- if (item.id === "content") {
46
- return renderContentMenu(item);
47
- }
60
+ const closeMobileSheet = () => {
61
+ if (isMobile) setOpenMobile(false);
62
+ };
48
63
 
49
- return (
50
- <Link
51
- key={item.id}
52
- to={item.path}
53
- className={cn(
54
- "flex items-center gap-3 rounded-md px-2 py-2 text-sm font-medium transition-colors",
55
- isActive(item.path, item.exact)
56
- ? "bg-sidebar-accent text-sidebar-accent-foreground"
57
- : "text-sidebar-foreground hover:bg-sidebar-accent/50 hover:text-sidebar-accent-foreground"
58
- )}
59
- >
60
- <Icon name={item.icon} className="size-5" />
61
- <span className="flex-1">{item.label}</span>
62
- {item.badge && (
63
- <span className="rounded-full bg-sidebar-primary px-2 py-0.5 text-xs text-sidebar-primary-foreground">
64
- {item.badge}
65
- </span>
66
- )}
67
- </Link>
68
- );
69
- };
64
+ const renderNavItem = (item: NavItem) => {
65
+ if (item.id === "content") {
66
+ return renderContentMenu(item);
67
+ }
70
68
 
71
- const renderContentMenu = (item: NavItem) => (
72
- <Collapsible key={item.id} defaultOpen={isContentActive}>
73
- <CollapsibleTrigger
74
- className={cn(
75
- "flex w-full items-center gap-3 rounded-md px-2 py-2 text-sm font-medium transition-colors",
76
- isContentActive
77
- ? "bg-sidebar-accent text-sidebar-accent-foreground"
78
- : "text-sidebar-foreground hover:bg-sidebar-accent/50 hover:text-sidebar-accent-foreground",
79
- "group"
80
- )}
81
- >
82
- <Icon name={item.icon} className="size-5" />
83
- <span className="flex-1 text-left">{item.label}</span>
84
- <ChevronDown className="size-4 transition-transform duration-200 group-data-[state=open]:rotate-180" />
85
- </CollapsibleTrigger>
86
- <CollapsibleContent>
87
- <div className="ml-5 mt-1 space-y-1 border-l border-sidebar-border pl-3">
88
- <Link
89
- to="/content"
90
- className={cn(
91
- "flex items-center gap-2 rounded-md px-2 py-1.5 text-sm transition-colors",
92
- currentPath === "/content"
93
- ? "bg-sidebar-accent/60 text-sidebar-accent-foreground"
94
- : "text-sidebar-foreground/80 hover:bg-sidebar-accent/30 hover:text-sidebar-accent-foreground"
95
- )}
96
- >
97
- All Entries
98
- </Link>
99
- {contentTypes.map((type) => (
100
- <Link
101
- key={type._id}
102
- to="/entries/type/$contentTypeId"
103
- params={{ contentTypeId: type._id }}
104
- className={cn(
105
- "flex items-center gap-2 rounded-md px-2 py-1.5 text-sm transition-colors",
106
- currentPath === `/entries/type/${type._id}`
107
- ? "bg-sidebar-accent/60 text-sidebar-accent-foreground"
108
- : "text-sidebar-foreground/80 hover:bg-sidebar-accent/30 hover:text-sidebar-accent-foreground"
109
- )}
110
- >
111
- {type.displayName}
112
- </Link>
113
- ))}
114
- {contentTypes.length === 0 && contentTypesResult !== undefined && (
115
- <button
116
- type="button"
117
- onClick={() => setIsCreateModalOpen(true)}
118
- className="flex w-full items-center gap-2 rounded-md px-2 py-1.5 text-left text-sm text-sidebar-foreground/60 hover:bg-sidebar-accent/30 hover:text-sidebar-accent-foreground"
119
- >
120
- + Create content type
121
- </button>
122
- )}
123
- </div>
124
- </CollapsibleContent>
125
- </Collapsible>
126
- );
69
+ return (
70
+ <SidebarMenuItem key={item.id}>
71
+ <SidebarMenuButton
72
+ asChild
73
+ isActive={isActive(item.path, item.exact)}
74
+ onClick={closeMobileSheet}
75
+ >
76
+ <Link to={item.path}>
77
+ <Icon name={item.icon} className="size-5" />
78
+ <span>{item.label}</span>
79
+ {item.badge && (
80
+ <span className="ml-auto rounded-full bg-sidebar-primary px-2 py-0.5 text-xs text-sidebar-primary-foreground">
81
+ {item.badge}
82
+ </span>
83
+ )}
84
+ </Link>
85
+ </SidebarMenuButton>
86
+ </SidebarMenuItem>
87
+ );
88
+ };
127
89
 
128
- const sidebarWidth = layout.sidebarWidth;
90
+ const renderContentMenu = (item: NavItem) => (
91
+ <Collapsible
92
+ key={item.id}
93
+ defaultOpen={isContentActive}
94
+ className="group/collapsible"
95
+ >
96
+ <SidebarMenuItem>
97
+ <CollapsibleTrigger asChild>
98
+ <SidebarMenuButton isActive={isContentActive}>
99
+ <Icon name={item.icon} className="size-5" />
100
+ <span>{item.label}</span>
101
+ <ChevronDown className="ml-auto size-4 transition-transform duration-200 group-data-[state=open]/collapsible:rotate-180" />
102
+ </SidebarMenuButton>
103
+ </CollapsibleTrigger>
104
+ <CollapsibleContent>
105
+ <SidebarMenuSub>
106
+ <SidebarMenuSubItem>
107
+ <SidebarMenuSubButton
108
+ asChild
109
+ isActive={currentPath === "/content"}
110
+ onClick={closeMobileSheet}
111
+ >
112
+ <Link to="/content">All Entries</Link>
113
+ </SidebarMenuSubButton>
114
+ </SidebarMenuSubItem>
115
+ {contentTypes.map((type) => (
116
+ <SidebarMenuSubItem key={type._id}>
117
+ <SidebarMenuSubButton
118
+ asChild
119
+ isActive={currentPath === `/entries/type/${type._id}`}
120
+ onClick={closeMobileSheet}
121
+ >
122
+ <Link
123
+ to="/entries/type/$contentTypeId"
124
+ params={{ contentTypeId: type._id }}
125
+ >
126
+ {type.displayName}
127
+ </Link>
128
+ </SidebarMenuSubButton>
129
+ </SidebarMenuSubItem>
130
+ ))}
131
+ {contentTypes.length === 0 && contentTypesResult !== undefined && (
132
+ <SidebarMenuSubItem>
133
+ <SidebarMenuSubButton
134
+ onClick={() => setIsCreateModalOpen(true)}
135
+ className="text-sidebar-foreground/60"
136
+ >
137
+ + Create content type
138
+ </SidebarMenuSubButton>
139
+ </SidebarMenuSubItem>
140
+ )}
141
+ </SidebarMenuSub>
142
+ </CollapsibleContent>
143
+ </SidebarMenuItem>
144
+ </Collapsible>
145
+ );
129
146
 
130
- return (
131
- <>
132
- <aside
133
- className="fixed inset-y-0 left-0 z-50 flex flex-col border-r border-sidebar-border bg-sidebar"
134
- style={{ width: sidebarWidth }}
135
- >
136
- <div className="flex h-14 items-center gap-2 border-b border-sidebar-border px-4">
137
- <Link to="/" className="flex items-center gap-2 font-semibold text-sidebar-foreground">
138
- {branding.logo ? (
139
- <img src={branding.logo} alt={branding.appName} className="size-8" />
140
- ) : (
141
- <div className="flex size-8 items-center justify-center rounded-lg bg-sidebar-primary text-sidebar-primary-foreground">
142
- <Layers className="size-4" />
143
- </div>
144
- )}
145
- <span className="text-base">{branding.appName}</span>
146
- </Link>
147
- </div>
147
+ return (
148
+ <>
149
+ <ShadcnSidebar collapsible="offcanvas" className="bg-sidebar">
150
+ <SidebarHeader className="border-none">
151
+ <Link
152
+ to="/"
153
+ className="flex h-14 items-center gap-2 px-2 font-semibold text-sidebar-foreground"
154
+ onClick={closeMobileSheet}
155
+ >
156
+ {branding.logo ? (
157
+ <img
158
+ src={branding.logo}
159
+ alt={branding.appName}
160
+ className="size-8"
161
+ />
162
+ ) : (
163
+ <div className="flex size-8 items-center justify-center rounded-lg bg-sidebar-primary text-sidebar-primary-foreground">
164
+ <Layers className="size-4" />
165
+ </div>
166
+ )}
167
+ <span className="text-base">{branding.appName}</span>
168
+ </Link>
169
+ </SidebarHeader>
148
170
 
149
- <nav className="flex-1 space-y-6 overflow-y-auto p-4">
150
- {navItems.main.length > 0 && (
151
- <div className="space-y-1">
152
- <span className="px-2 text-xs font-medium uppercase tracking-wider text-sidebar-foreground/60">
153
- Main
154
- </span>
155
- <div className="space-y-1 pt-2">{navItems.main.map(renderNavItem)}</div>
156
- </div>
157
- )}
171
+ <SidebarContent>
172
+ {navItems.main.length > 0 && (
173
+ <SidebarGroup>
174
+ <SidebarGroupLabel>Main</SidebarGroupLabel>
175
+ <SidebarMenu>{navItems.main.map(renderNavItem)}</SidebarMenu>
176
+ </SidebarGroup>
177
+ )}
158
178
 
159
- {navItems.config.length > 0 && (
160
- <div className="space-y-1">
161
- <span className="px-2 text-xs font-medium uppercase tracking-wider text-sidebar-foreground/60">
162
- Configuration
163
- </span>
164
- <div className="space-y-1 pt-2">{navItems.config.map(renderNavItem)}</div>
165
- </div>
166
- )}
167
- </nav>
179
+ {navItems.config.length > 0 && (
180
+ <SidebarGroup>
181
+ <SidebarGroupLabel>Configuration</SidebarGroupLabel>
182
+ <SidebarMenu>{navItems.config.map(renderNavItem)}</SidebarMenu>
183
+ </SidebarGroup>
184
+ )}
185
+ </SidebarContent>
168
186
 
169
- <div className="border-t border-sidebar-border p-4">
170
- <div className="flex items-center justify-between text-xs text-sidebar-foreground/60">
171
- <span>Version</span>
172
- <span className="font-mono">0.1.0</span>
173
- </div>
174
- </div>
175
- </aside>
187
+ <SidebarFooter className="border-t border-sidebar-border">
188
+ <div className="flex items-center justify-between text-xs text-sidebar-foreground/60">
189
+ <span>Version</span>
190
+ <span className="font-mono">{version}</span>
191
+ </div>
192
+ </SidebarFooter>
193
+ </ShadcnSidebar>
176
194
 
177
- <ContentTypeFormModal
178
- isOpen={isCreateModalOpen}
179
- onClose={() => setIsCreateModalOpen(false)}
180
- />
181
- </>
182
- );
195
+ <ContentTypeFormModal
196
+ isOpen={isCreateModalOpen}
197
+ onClose={() => setIsCreateModalOpen(false)}
198
+ />
199
+ </>
200
+ );
183
201
  }
@@ -1,12 +1,12 @@
1
1
  import { useState, useCallback, useEffect } from 'react'
2
2
  import { useMutation } from 'convex/react'
3
- import { useApi } from '~/embed/contexts/ApiContext'
4
- import { CmsDialog } from '~/components/cmsds/CmsDialog'
5
- import { CmsButton } from '~/components/cmsds/CmsButton'
6
- import { Input } from '~/components/ui/input'
7
- import { Label } from '~/components/ui/label'
8
- import { Textarea } from '~/components/ui/textarea'
9
- import { Checkbox } from '~/components/ui/checkbox'
3
+ import { useApi } from '../embed/contexts/ApiContext'
4
+ import { CmsDialog } from './cmsds/CmsDialog'
5
+ import { CmsButton } from './cmsds/CmsButton'
6
+ import { Input } from './ui/input'
7
+ import { Label } from './ui/label'
8
+ import { Textarea } from './ui/textarea'
9
+ import { Checkbox } from './ui/checkbox'
10
10
 
11
11
  interface Taxonomy {
12
12
  _id: string
@@ -186,14 +186,14 @@ export function TaxonomyEditor({
186
186
  </>
187
187
  }
188
188
  >
189
- <form onSubmit={handleSubmit} className="space-y-4">
189
+ <form onSubmit={handleSubmit} className="flex flex-col gap-4">
190
190
  {submitError && (
191
191
  <div className="diff-removed rounded-lg border px-3 py-2 text-sm">
192
192
  {submitError}
193
193
  </div>
194
194
  )}
195
195
 
196
- <div className="space-y-2">
196
+ <div className="flex flex-col gap-2">
197
197
  <Label htmlFor="displayName">
198
198
  Display Name <span className="text-destructive">*</span>
199
199
  </Label>
@@ -210,7 +210,7 @@ export function TaxonomyEditor({
210
210
  )}
211
211
  </div>
212
212
 
213
- <div className="space-y-2">
213
+ <div className="flex flex-col gap-2">
214
214
  <Label htmlFor="name">
215
215
  Slug <span className="text-destructive">*</span>
216
216
  </Label>
@@ -235,7 +235,7 @@ export function TaxonomyEditor({
235
235
  )}
236
236
  </div>
237
237
 
238
- <div className="space-y-2">
238
+ <div className="flex flex-col gap-2">
239
239
  <Label htmlFor="description">Description</Label>
240
240
  <Textarea
241
241
  id="description"
@@ -248,7 +248,7 @@ export function TaxonomyEditor({
248
248
  </div>
249
249
 
250
250
  <div className="grid grid-cols-2 gap-4">
251
- <div className="space-y-2">
251
+ <div className="flex flex-col gap-2">
252
252
  <Label htmlFor="icon">Icon</Label>
253
253
  <Input
254
254
  id="icon"
@@ -260,7 +260,7 @@ export function TaxonomyEditor({
260
260
  <p className="text-xs text-muted-foreground">Emoji or icon name</p>
261
261
  </div>
262
262
 
263
- <div className="space-y-2">
263
+ <div className="flex flex-col gap-2">
264
264
  <Label htmlFor="sortOrder">Sort Order</Label>
265
265
  <Input
266
266
  id="sortOrder"
@@ -274,7 +274,7 @@ export function TaxonomyEditor({
274
274
  </div>
275
275
  </div>
276
276
 
277
- <div className="space-y-4 pt-2">
277
+ <div className="flex flex-col gap-4 pt-2">
278
278
  <div className="flex items-start gap-3">
279
279
  <Checkbox
280
280
  id="isHierarchical"
@@ -284,7 +284,7 @@ export function TaxonomyEditor({
284
284
  }
285
285
  disabled={isSubmitting || isEditing}
286
286
  />
287
- <div className="space-y-0.5">
287
+ <div className="flex flex-col gap-0.5">
288
288
  <Label
289
289
  htmlFor="isHierarchical"
290
290
  className="cursor-pointer font-medium"
@@ -311,7 +311,7 @@ export function TaxonomyEditor({
311
311
  }
312
312
  disabled={isSubmitting}
313
313
  />
314
- <div className="space-y-0.5">
314
+ <div className="flex flex-col gap-0.5">
315
315
  <Label
316
316
  htmlFor="allowInlineCreation"
317
317
  className="cursor-pointer font-medium"
@@ -333,7 +333,7 @@ export function TaxonomyEditor({
333
333
  }
334
334
  disabled={isSubmitting}
335
335
  />
336
- <div className="space-y-0.5">
336
+ <div className="flex flex-col gap-0.5">
337
337
  <Label htmlFor="isActive" className="cursor-pointer font-medium">
338
338
  Active
339
339
  </Label>
@@ -1,14 +1,14 @@
1
1
  import { useState, useCallback } from 'react'
2
2
  import { useQuery, useMutation } from 'convex/react'
3
- import { useApi } from '~/embed/contexts/ApiContext'
4
- import { CmsDialog, CmsConfirmDialog } from '~/components/cmsds/CmsDialog'
5
- import { CmsButton } from '~/components/cmsds/CmsButton'
6
- import { CmsEmptyState } from '~/components/cmsds/CmsEmptyState'
7
- import { Input } from '~/components/ui/input'
8
- import { Label } from '~/components/ui/label'
9
- import { Textarea } from '~/components/ui/textarea'
3
+ import { useApi } from '../embed/contexts/ApiContext'
4
+ import { CmsDialog, CmsConfirmDialog } from './cmsds/CmsDialog'
5
+ import { CmsButton } from './cmsds/CmsButton'
6
+ import { CmsEmptyState } from './cmsds/CmsEmptyState'
7
+ import { Input } from './ui/input'
8
+ import { Label } from './ui/label'
9
+ import { Textarea } from './ui/textarea'
10
10
  import { ChevronRight, ChevronDown, Plus, Pencil, Trash2, Tags } from 'lucide-react'
11
- import { cn } from '~/lib/cn'
11
+ import { cn } from '../lib/cn'
12
12
 
13
13
  interface Term {
14
14
  _id: string
@@ -187,7 +187,7 @@ export function TermTree({
187
187
  }
188
188
 
189
189
  return (
190
- <div className="space-y-4">
190
+ <div className="flex flex-col gap-4">
191
191
  <div className="flex items-center justify-between">
192
192
  <h3 className="text-sm font-medium text-foreground">Terms</h3>
193
193
  <CmsButton variant="secondary" size="sm" onClick={() => handleCreateTerm()}>
@@ -436,14 +436,14 @@ function TermEditModal({
436
436
  </>
437
437
  }
438
438
  >
439
- <form onSubmit={handleSubmit} className="space-y-4">
439
+ <form onSubmit={handleSubmit} className="flex flex-col gap-4">
440
440
  {submitError && (
441
441
  <div className="diff-removed rounded-lg border px-3 py-2 text-sm">
442
442
  {submitError}
443
443
  </div>
444
444
  )}
445
445
 
446
- <div className="space-y-2">
446
+ <div className="flex flex-col gap-2">
447
447
  <Label htmlFor="termName">
448
448
  Name <span className="text-destructive">*</span>
449
449
  </Label>
@@ -460,7 +460,7 @@ function TermEditModal({
460
460
  )}
461
461
  </div>
462
462
 
463
- <div className="space-y-2">
463
+ <div className="flex flex-col gap-2">
464
464
  <Label htmlFor="termSlug">
465
465
  Slug <span className="text-destructive">*</span>
466
466
  </Label>
@@ -480,7 +480,7 @@ function TermEditModal({
480
480
  )}
481
481
  </div>
482
482
 
483
- <div className="space-y-2">
483
+ <div className="flex flex-col gap-2">
484
484
  <Label htmlFor="termDescription">Description</Label>
485
485
  <Textarea
486
486
  id="termDescription"
@@ -493,7 +493,7 @@ function TermEditModal({
493
493
  </div>
494
494
 
495
495
  <div className="grid grid-cols-3 gap-3">
496
- <div className="space-y-2">
496
+ <div className="flex flex-col gap-2">
497
497
  <Label htmlFor="termColor">Color</Label>
498
498
  <Input
499
499
  id="termColor"
@@ -505,7 +505,7 @@ function TermEditModal({
505
505
  />
506
506
  </div>
507
507
 
508
- <div className="space-y-2">
508
+ <div className="flex flex-col gap-2">
509
509
  <Label htmlFor="termIcon">Icon</Label>
510
510
  <Input
511
511
  id="termIcon"
@@ -516,7 +516,7 @@ function TermEditModal({
516
516
  />
517
517
  </div>
518
518
 
519
- <div className="space-y-2">
519
+ <div className="flex flex-col gap-2">
520
520
  <Label htmlFor="termSortOrder">Sort Order</Label>
521
521
  <Input
522
522
  id="termSortOrder"
@@ -3,10 +3,10 @@ import {
3
3
  useMediaUploadQueue,
4
4
  type UploadQueueFile,
5
5
  type UploadQueueFileStatus,
6
- } from '~/lib/cmsExports'
6
+ } from '../lib/cmsExports'
7
7
  import type { FunctionReference } from 'convex/server'
8
- import { CmsButton } from '~/components/cmsds/CmsButton'
9
- import { cn } from '~/lib/cn'
8
+ import { CmsButton } from './cmsds/CmsButton'
9
+ import { cn } from '../lib/cn'
10
10
  import { Upload, Check, X, RefreshCw, AlertCircle } from 'lucide-react'
11
11
 
12
12
  export interface UploadDropzoneProps {
@@ -116,16 +116,25 @@ export function UploadDropzone({
116
116
  [validateFile, queue]
117
117
  )
118
118
 
119
+ // Use a counter to handle drag enter/leave on child elements.
120
+ // dragenter fires when entering children, dragleave fires when leaving them.
121
+ // Only deactivate when the counter reaches 0 (fully left the dropzone).
122
+ const dragCounterRef = useRef(0)
123
+
119
124
  const handleDragEnter = useCallback((e: React.DragEvent) => {
120
125
  e.preventDefault()
121
126
  e.stopPropagation()
127
+ dragCounterRef.current++
122
128
  setIsDragActive(true)
123
129
  }, [])
124
130
 
125
131
  const handleDragLeave = useCallback((e: React.DragEvent) => {
126
132
  e.preventDefault()
127
133
  e.stopPropagation()
128
- setIsDragActive(false)
134
+ dragCounterRef.current--
135
+ if (dragCounterRef.current === 0) {
136
+ setIsDragActive(false)
137
+ }
129
138
  }, [])
130
139
 
131
140
  const handleDragOver = useCallback((e: React.DragEvent) => {
@@ -137,6 +146,7 @@ export function UploadDropzone({
137
146
  (e: React.DragEvent) => {
138
147
  e.preventDefault()
139
148
  e.stopPropagation()
149
+ dragCounterRef.current = 0
140
150
  setIsDragActive(false)
141
151
  if (e.dataTransfer.files?.length) {
142
152
  addFiles(e.dataTransfer.files)
@@ -178,12 +188,12 @@ export function UploadDropzone({
178
188
  const hasCompletedOrFailed = completedCount > 0 || errorCount > 0
179
189
 
180
190
  return (
181
- <div className="space-y-4">
191
+ <div className="flex flex-col gap-4">
182
192
  {validationErrors.size > 0 && (
183
193
  <div className="rounded-md border border-destructive/50 bg-destructive/10 p-3">
184
194
  <div className="flex items-start gap-2">
185
195
  <AlertCircle className="mt-0.5 size-4 shrink-0 text-destructive" />
186
- <div className="flex-1 space-y-1">
196
+ <div className="flex flex-col gap-1 flex-1">
187
197
  {Array.from(validationErrors.entries()).map(([filename, error]) => (
188
198
  <p key={filename} className="text-sm text-destructive">
189
199
  <span className="font-medium">{filename}:</span> {error}
@@ -233,7 +243,7 @@ export function UploadDropzone({
233
243
  )}
234
244
 
235
245
  {queue.files.length > 0 && (
236
- <div className="space-y-3">
246
+ <div className="flex flex-col gap-3">
237
247
  <div className="flex items-center justify-between">
238
248
  <div className="flex items-center gap-2 text-sm">
239
249
  <span className="font-medium">
@@ -287,7 +297,7 @@ export function UploadDropzone({
287
297
  </div>
288
298
  )}
289
299
 
290
- <div className="space-y-2">
300
+ <div className="flex max-h-64 flex-col gap-2 overflow-y-auto">
291
301
  {queue.files.map((uploadFile: UploadQueueFile) => (
292
302
  <div
293
303
  key={uploadFile.id}