betterstart-cli 0.0.96 → 0.0.98

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 (301) hide show
  1. package/dist/assets/adapters/next/integrations/mailchimp/integration.ts +1 -1
  2. package/dist/assets/adapters/next/integrations/r2/actions/r2.ts +5 -5
  3. package/dist/assets/adapters/next/integrations/r2/integration.ts +1 -1
  4. package/dist/assets/adapters/next/integrations/railway-bucket/actions/railway-bucket.ts +6 -6
  5. package/dist/assets/adapters/next/integrations/railway-bucket/integration.ts +1 -1
  6. package/dist/assets/adapters/next/integrations/resend/integration.ts +1 -1
  7. package/dist/assets/adapters/next/integrations/vercel-blob/actions/vercel-blob.ts +1 -1
  8. package/dist/assets/adapters/next/integrations/vercel-blob/integration.ts +1 -1
  9. package/dist/assets/adapters/next/presets/blog/preset.ts +1 -1
  10. package/dist/assets/adapters/next/presets/portfolio/preset.ts +1 -1
  11. package/dist/assets/adapters/next/templates/init/api/storage-read-route.ts +2 -1
  12. package/dist/assets/adapters/next/templates/init/api/upload-route.ts +3 -2
  13. package/dist/assets/adapters/next/templates/init/components/layouts/admin-header.tsx +6 -6
  14. package/dist/assets/adapters/next/templates/init/components/layouts/admin-providers.tsx +1 -1
  15. package/dist/assets/adapters/next/templates/init/components/layouts/admin-sidebar-branding-skeleton.tsx +2 -2
  16. package/dist/assets/adapters/next/templates/init/components/layouts/admin-sidebar-nav-link-skeleton.tsx +1 -1
  17. package/dist/assets/adapters/next/templates/init/components/layouts/admin-sidebar-user-menu-skeleton.tsx +1 -1
  18. package/dist/assets/adapters/next/templates/init/components/layouts/admin-sidebar-user-menu.tsx +8 -8
  19. package/dist/assets/adapters/next/templates/init/components/layouts/admin-sidebar.tsx +5 -5
  20. package/dist/assets/adapters/next/templates/init/components/layouts/content-skeleton.tsx +4 -4
  21. package/dist/assets/adapters/next/templates/init/components/layouts/sidebar-branding.tsx +4 -4
  22. package/dist/assets/adapters/next/templates/init/components/shared/data-table/data-grid.tsx +2 -2
  23. package/dist/assets/adapters/next/templates/init/components/shared/data-table/data-table-pagination.tsx +5 -5
  24. package/dist/assets/adapters/next/templates/init/components/shared/data-table/data-table.tsx +3 -6
  25. package/dist/assets/adapters/next/templates/init/components/shared/delete-dialog.tsx +2 -2
  26. package/dist/assets/adapters/next/templates/init/components/shared/dev-mode/copyable-code-block.tsx +7 -7
  27. package/dist/assets/adapters/next/templates/init/components/shared/dev-mode/dev-mode-code-mirror.tsx +2 -2
  28. package/dist/assets/adapters/next/templates/init/components/shared/dev-mode/lifecycle-hooks-tab.tsx +7 -17
  29. package/dist/assets/adapters/next/templates/init/components/shared/dev-mode/plain-code-fallback.tsx +1 -1
  30. package/dist/assets/adapters/next/templates/init/components/shared/dev-mode/snippets-tab.tsx +3 -13
  31. package/dist/assets/adapters/next/templates/init/components/shared/dev-mode-integrate.tsx +5 -5
  32. package/dist/assets/adapters/next/templates/init/components/shared/entity-filters-bar.tsx +6 -6
  33. package/dist/assets/adapters/next/templates/init/components/shared/entity-metadata.tsx +2 -2
  34. package/dist/assets/adapters/next/templates/init/components/shared/entity-versions/entity-version-item.tsx +1 -1
  35. package/dist/assets/adapters/next/templates/init/components/shared/entity-versions/entity-version-restore-dialog.tsx +1 -1
  36. package/dist/assets/adapters/next/templates/init/components/shared/entity-versions/entity-versions-button.tsx +1 -1
  37. package/dist/assets/adapters/next/templates/init/components/shared/entity-versions/entity-versions-current-row.tsx +1 -1
  38. package/dist/assets/adapters/next/templates/init/components/shared/media/edit-media-dialog-content.tsx +5 -5
  39. package/dist/assets/adapters/next/templates/init/components/shared/media/edit-media-dialog.tsx +2 -2
  40. package/dist/assets/adapters/next/templates/init/components/shared/media/media-delete-dialog.tsx +2 -2
  41. package/dist/assets/adapters/next/templates/init/components/shared/media/media-delete-drawer.tsx +3 -3
  42. package/dist/assets/adapters/next/templates/init/components/shared/media/media-filters-bar.tsx +4 -4
  43. package/dist/assets/adapters/next/templates/init/components/shared/media/media-gallery-dialog.tsx +4 -4
  44. package/dist/assets/adapters/next/templates/init/components/shared/media/media-grid-item.tsx +5 -5
  45. package/dist/assets/adapters/next/templates/init/components/shared/media/media-grid-pagination.tsx +5 -5
  46. package/dist/assets/adapters/next/templates/init/components/shared/media/media-grid.tsx +1 -1
  47. package/dist/assets/adapters/next/templates/init/components/shared/media/media-preview.tsx +4 -4
  48. package/dist/assets/adapters/next/templates/init/components/shared/media/media-url-importer.tsx +5 -5
  49. package/dist/assets/adapters/next/templates/init/components/shared/page-header.tsx +4 -4
  50. package/dist/assets/adapters/next/templates/init/components/shared/search-input.tsx +6 -6
  51. package/dist/assets/adapters/next/templates/init/components/shared/sort-indicator.tsx +1 -1
  52. package/dist/assets/adapters/next/templates/init/components/shared/sort-order-dialog.tsx +4 -5
  53. package/dist/assets/adapters/next/templates/init/components/shared/sort-order-drag-overlay-item.tsx +1 -1
  54. package/dist/assets/adapters/next/templates/init/components/shared/sort-order-item.tsx +3 -3
  55. package/dist/assets/adapters/next/templates/init/hooks/content-editor/use-blockquote.ts +1 -70
  56. package/dist/assets/adapters/next/templates/init/hooks/content-editor/use-code-block.ts +1 -77
  57. package/dist/assets/adapters/next/templates/init/hooks/content-editor/use-color-highlight.ts +3 -51
  58. package/dist/assets/adapters/next/templates/init/hooks/content-editor/use-content-editor-media-insertion.ts +2 -2
  59. package/dist/assets/adapters/next/templates/init/hooks/content-editor/use-content-editor-slash-menu.ts +6 -8
  60. package/dist/assets/adapters/next/templates/init/hooks/content-editor/use-content-editor-source-mode.tsx +10 -8
  61. package/dist/assets/adapters/next/templates/init/hooks/content-editor/use-content-editor-table-add-controls.ts +4 -4
  62. package/dist/assets/adapters/next/templates/init/hooks/content-editor/use-content-editor.ts +7 -4
  63. package/dist/assets/adapters/next/templates/init/hooks/content-editor/use-heading-dropdown-menu.ts +3 -67
  64. package/dist/assets/adapters/next/templates/init/hooks/content-editor/use-heading.ts +1 -41
  65. package/dist/assets/adapters/next/templates/init/hooks/content-editor/use-is-breakpoint.ts +0 -8
  66. package/dist/assets/adapters/next/templates/init/hooks/content-editor/use-link-popover.ts +1 -83
  67. package/dist/assets/adapters/next/templates/init/hooks/content-editor/use-list-dropdown-menu.ts +3 -62
  68. package/dist/assets/adapters/next/templates/init/hooks/content-editor/use-list.ts +1 -43
  69. package/dist/assets/adapters/next/templates/init/hooks/content-editor/use-mark.ts +1 -72
  70. package/dist/assets/adapters/next/templates/init/hooks/content-editor/use-menu-navigation.ts +0 -35
  71. package/dist/assets/adapters/next/templates/init/hooks/content-editor/use-table-button.ts +2 -2
  72. package/dist/assets/adapters/next/templates/init/hooks/content-editor/use-tiptap-editor.ts +0 -11
  73. package/dist/assets/adapters/next/templates/init/hooks/content-editor/use-undo-redo.ts +1 -65
  74. package/dist/assets/adapters/next/templates/init/hooks/use-admin-theme.tsx +2 -4
  75. package/dist/assets/adapters/next/templates/init/hooks/use-dev-mode-integration.ts +1 -1
  76. package/dist/assets/adapters/next/templates/init/hooks/use-entity-versions.ts +1 -1
  77. package/dist/assets/adapters/next/templates/init/hooks/use-local-storage.ts +2 -7
  78. package/dist/assets/adapters/next/templates/init/hooks/use-media-filters-bar.ts +1 -1
  79. package/dist/assets/adapters/next/templates/init/hooks/use-media.ts +2 -2
  80. package/dist/assets/adapters/next/templates/init/hooks/use-page-boundary-blur-visibility.ts +1 -1
  81. package/dist/assets/adapters/next/templates/init/hooks/use-page-scroll-threshold.ts +1 -1
  82. package/dist/assets/adapters/next/templates/init/hooks/use-table-utils.ts +2 -2
  83. package/dist/assets/adapters/next/templates/init/hooks/use-upload.ts +6 -12
  84. package/dist/assets/adapters/next/templates/init/hooks/use-users.ts +1 -1
  85. package/dist/assets/adapters/next/templates/init/hooks/use-webhooks.ts +3 -2
  86. package/dist/assets/adapters/next/templates/init/lib/actions/audit/cleanup-audit-logs.ts +1 -1
  87. package/dist/assets/adapters/next/templates/init/lib/actions/audit/get-audit-logs.ts +5 -2
  88. package/dist/assets/adapters/next/templates/init/lib/actions/audit/record-audit-event.ts +1 -1
  89. package/dist/assets/adapters/next/templates/init/lib/actions/auth/auth.ts +4 -4
  90. package/dist/assets/adapters/next/templates/init/lib/actions/auth/middleware.ts +2 -10
  91. package/dist/assets/adapters/next/templates/init/lib/actions/email/form-delivery.ts +2 -2
  92. package/dist/assets/adapters/next/templates/init/lib/actions/email/provider.ts +1 -1
  93. package/dist/assets/adapters/next/templates/init/lib/actions/entity-versions/get-entity-versions.ts +1 -1
  94. package/dist/assets/adapters/next/templates/init/lib/actions/entity-versions/internal-create-entity-version.ts +1 -1
  95. package/dist/assets/adapters/next/templates/init/lib/actions/forms/get-all-form-settings.ts +1 -1
  96. package/dist/assets/adapters/next/templates/init/lib/actions/forms/get-form-settings.ts +1 -1
  97. package/dist/assets/adapters/next/templates/init/lib/actions/forms/index.ts +1 -5
  98. package/dist/assets/adapters/next/templates/init/lib/actions/forms/upsert-form-settings.ts +1 -1
  99. package/dist/assets/adapters/next/templates/init/lib/actions/media/create-media.ts +2 -1
  100. package/dist/assets/adapters/next/templates/init/lib/actions/media/delete-media-bulk.ts +1 -1
  101. package/dist/assets/adapters/next/templates/init/lib/actions/media/delete-media.ts +1 -1
  102. package/dist/assets/adapters/next/templates/init/lib/actions/media/get-media-by-id.ts +1 -1
  103. package/dist/assets/adapters/next/templates/init/lib/actions/media/get-media-by-ids.ts +1 -1
  104. package/dist/assets/adapters/next/templates/init/lib/actions/media/get-media.ts +5 -2
  105. package/dist/assets/adapters/next/templates/init/lib/actions/media/update-media.ts +1 -1
  106. package/dist/assets/adapters/next/templates/init/lib/actions/profile/change-own-password.ts +1 -1
  107. package/dist/assets/adapters/next/templates/init/lib/actions/profile/index.ts +1 -5
  108. package/dist/assets/adapters/next/templates/init/lib/actions/profile/update-email.ts +1 -1
  109. package/dist/assets/adapters/next/templates/init/lib/actions/storage/provider.ts +1 -1
  110. package/dist/assets/adapters/next/templates/init/lib/actions/upload/index.ts +1 -5
  111. package/dist/assets/adapters/next/templates/init/lib/actions/upload/upload-files.ts +2 -2
  112. package/dist/assets/adapters/next/templates/init/lib/actions/upload/upload-media-from-url.ts +1 -1
  113. package/dist/assets/adapters/next/templates/init/lib/actions/users/change-user-password.ts +1 -1
  114. package/dist/assets/adapters/next/templates/init/lib/actions/users/create-user.ts +1 -1
  115. package/dist/assets/adapters/next/templates/init/lib/actions/users/delete-user.ts +1 -1
  116. package/dist/assets/adapters/next/templates/init/lib/actions/users/get-users.ts +1 -1
  117. package/dist/assets/adapters/next/templates/init/lib/actions/users/update-user-role.ts +1 -1
  118. package/dist/assets/adapters/next/templates/init/lib/actions/webhooks/create-webhook.ts +1 -1
  119. package/dist/assets/adapters/next/templates/init/lib/actions/webhooks/delete-webhook.ts +1 -1
  120. package/dist/assets/adapters/next/templates/init/lib/actions/webhooks/dispatch.ts +1 -2
  121. package/dist/assets/adapters/next/templates/init/lib/actions/webhooks/get-webhook-deliveries.ts +1 -1
  122. package/dist/assets/adapters/next/templates/init/lib/actions/webhooks/get-webhook-secret.ts +1 -1
  123. package/dist/assets/adapters/next/templates/init/lib/actions/webhooks/get-webhook-subscriptions.ts +1 -1
  124. package/dist/assets/adapters/next/templates/init/lib/actions/webhooks/get-webhooks.ts +1 -1
  125. package/dist/assets/adapters/next/templates/init/lib/actions/webhooks/regenerate-webhook-secret.ts +1 -1
  126. package/dist/assets/adapters/next/templates/init/lib/actions/webhooks/register.ts +2 -2
  127. package/dist/assets/adapters/next/templates/init/lib/actions/webhooks/send-test-webhook.ts +1 -1
  128. package/dist/assets/adapters/next/templates/init/lib/actions/webhooks/update-webhook.ts +1 -1
  129. package/dist/assets/adapters/next/templates/init/lib/db/client.ts +1 -1
  130. package/dist/assets/adapters/next/templates/init/lib/db/core/schema.ts +4 -25
  131. package/dist/assets/adapters/next/templates/init/lib/lifecycle-hooks/register.ts +0 -7
  132. package/dist/assets/adapters/next/templates/init/lib/lifecycle-hooks/runner.ts +2 -2
  133. package/dist/assets/adapters/next/templates/init/pages/admin-layout.tsx +1 -1
  134. package/dist/assets/adapters/next/templates/init/pages/auth-gate-rsc.tsx +1 -1
  135. package/dist/assets/adapters/next/templates/init/pages/dashboard-page.tsx +6 -6
  136. package/dist/assets/adapters/next/templates/init/pages/forgot-password-form.tsx +5 -5
  137. package/dist/assets/adapters/next/templates/init/pages/login-form.tsx +4 -4
  138. package/dist/assets/adapters/next/templates/init/pages/media/media-page-content.tsx +7 -7
  139. package/dist/assets/adapters/next/templates/init/pages/media/media-page-skeleton.tsx +1 -1
  140. package/dist/assets/adapters/next/templates/init/pages/minimal-account-shell.tsx +2 -2
  141. package/dist/assets/adapters/next/templates/init/pages/profile/profile-form.tsx +1 -1
  142. package/dist/assets/adapters/next/templates/init/pages/profile/profile-page.tsx +1 -1
  143. package/dist/assets/adapters/next/templates/init/pages/reset-password-form.tsx +4 -4
  144. package/dist/assets/adapters/next/templates/init/pages/settings/audit-log/audit-log-columns.tsx +2 -2
  145. package/dist/assets/adapters/next/templates/init/pages/settings/audit-log/audit-log-detail-drawer.tsx +1 -1
  146. package/dist/assets/adapters/next/templates/init/pages/settings/audit-log/audit-log-detail-row.tsx +2 -2
  147. package/dist/assets/adapters/next/templates/init/pages/settings/audit-log/audit-log-page-content.tsx +2 -2
  148. package/dist/assets/adapters/next/templates/init/pages/settings/audit-log/audit-log-page-skeleton.tsx +1 -1
  149. package/dist/assets/adapters/next/templates/init/pages/settings/audit-log/audit-log-page.tsx +1 -1
  150. package/dist/assets/adapters/next/templates/init/pages/settings/audit-log/audit-log-table.tsx +5 -4
  151. package/dist/assets/adapters/next/templates/init/pages/settings/forms/forms-settings-page-content.tsx +4 -3
  152. package/dist/assets/adapters/next/templates/init/pages/settings/forms/forms-settings-page-skeleton.tsx +1 -1
  153. package/dist/assets/adapters/next/templates/init/pages/settings/forms/forms-settings-page.tsx +1 -1
  154. package/dist/assets/adapters/next/templates/init/pages/settings/forms/forms-settings-table.tsx +5 -4
  155. package/dist/assets/adapters/next/templates/init/pages/settings/webhooks/webhook-endpoint-dialog.tsx +4 -4
  156. package/dist/assets/adapters/next/templates/init/pages/settings/webhooks/webhooks-columns.tsx +7 -7
  157. package/dist/assets/adapters/next/templates/init/pages/settings/webhooks/webhooks-logs-columns.tsx +8 -8
  158. package/dist/assets/adapters/next/templates/init/pages/settings/webhooks/webhooks-logs-page-content.tsx +2 -2
  159. package/dist/assets/adapters/next/templates/init/pages/settings/webhooks/webhooks-logs-page.tsx +1 -1
  160. package/dist/assets/adapters/next/templates/init/pages/settings/webhooks/webhooks-logs-table.tsx +4 -3
  161. package/dist/assets/adapters/next/templates/init/pages/settings/webhooks/webhooks-page-content.tsx +2 -2
  162. package/dist/assets/adapters/next/templates/init/pages/settings/webhooks/webhooks-page-skeleton.tsx +1 -1
  163. package/dist/assets/adapters/next/templates/init/pages/settings/webhooks/webhooks-page.tsx +1 -1
  164. package/dist/assets/adapters/next/templates/init/pages/settings/webhooks/webhooks-table.tsx +4 -3
  165. package/dist/assets/adapters/next/templates/init/pages/users/change-password-dialog.tsx +1 -1
  166. package/dist/assets/adapters/next/templates/init/pages/users/columns.tsx +7 -6
  167. package/dist/assets/adapters/next/templates/init/pages/users/create-user-dialog.tsx +1 -1
  168. package/dist/assets/adapters/next/templates/init/pages/users/delete-user-dialog.tsx +1 -1
  169. package/dist/assets/adapters/next/templates/init/pages/users/edit-role-dialog.tsx +1 -1
  170. package/dist/assets/adapters/next/templates/init/pages/users/users-page-content.tsx +3 -2
  171. package/dist/assets/adapters/next/templates/init/pages/users/users-page-skeleton.tsx +1 -1
  172. package/dist/assets/adapters/next/templates/init/pages/users/users-table.tsx +9 -8
  173. package/dist/assets/adapters/next/templates/init/types/index.ts +0 -5
  174. package/dist/assets/adapters/next/templates/init/types/table-meta.ts +1 -1
  175. package/dist/assets/adapters/next/templates/init/utils/date/date.ts +1 -6
  176. package/dist/assets/adapters/next/templates/init/utils/editor/content-editor-rich-extensions.ts +2 -2
  177. package/dist/assets/adapters/next/templates/init/utils/editor/markdown.ts +5 -5
  178. package/dist/assets/adapters/next/templates/init/utils/editor/slash-commands.ts +2 -2
  179. package/dist/assets/adapters/next/templates/init/utils/editor/table-add-controls.ts +1 -1
  180. package/dist/assets/adapters/next/templates/init/utils/editor/tiptap.ts +8 -127
  181. package/dist/assets/adapters/next/templates/init/utils/media/query.ts +1 -1
  182. package/dist/assets/adapters/next/templates/init/utils/seo/seo.ts +0 -10
  183. package/dist/assets/adapters/next/templates/init/utils/shared/cn.ts +2 -1
  184. package/dist/assets/adapters/next/templates/init/utils/validation/validation.ts +0 -12
  185. package/dist/assets/shared-assets/react-admin/custom/content-editor/editor-toolbar.tsx +2 -2
  186. package/dist/assets/shared-assets/react-admin/custom/content-editor/horizontal-rule-button.tsx +1 -1
  187. package/dist/assets/shared-assets/react-admin/custom/content-editor/index.tsx +3 -3
  188. package/dist/assets/shared-assets/react-admin/custom/content-editor/main-toolbar-content.tsx +5 -5
  189. package/dist/assets/shared-assets/react-admin/custom/content-editor/math-bubble-menu.tsx +3 -3
  190. package/dist/assets/shared-assets/react-admin/custom/content-editor/math-button.tsx +1 -1
  191. package/dist/assets/shared-assets/react-admin/custom/content-editor/math-editor-controls.tsx +2 -2
  192. package/dist/assets/shared-assets/react-admin/custom/content-editor/math-popover-button.tsx +4 -3
  193. package/dist/assets/shared-assets/react-admin/custom/content-editor/mobile-toolbar-content.tsx +1 -1
  194. package/dist/assets/shared-assets/react-admin/custom/content-editor/remove-table-part-icon.tsx +2 -2
  195. package/dist/assets/shared-assets/react-admin/custom/content-editor/selection-bubble-menu.tsx +5 -5
  196. package/dist/assets/shared-assets/react-admin/custom/content-editor/slash-command-menu.tsx +9 -9
  197. package/dist/assets/shared-assets/react-admin/custom/content-editor/source-mode-dropdown-button.tsx +1 -1
  198. package/dist/assets/shared-assets/react-admin/custom/content-editor/source-mode.tsx +12 -18
  199. package/dist/assets/shared-assets/react-admin/custom/content-editor/table-add-controls.tsx +4 -4
  200. package/dist/assets/shared-assets/react-admin/custom/content-editor/table-bubble-menu.tsx +5 -5
  201. package/dist/assets/shared-assets/react-admin/custom/content-editor/table-button.tsx +1 -1
  202. package/dist/assets/shared-assets/react-admin/custom/content-editor/tiptap-extension/node-background-extension.ts +2 -25
  203. package/dist/assets/shared-assets/react-admin/custom/content-editor/tiptap-node/media-gallery-placeholder-node/media-gallery-placeholder-node-extension.ts +0 -20
  204. package/dist/assets/shared-assets/react-admin/custom/content-editor/tiptap-node/media-gallery-placeholder-node/media-gallery-placeholder-node.tsx +2 -2
  205. package/dist/assets/shared-assets/react-admin/custom/content-editor/tiptap-node/removable-image-node/removable-image-node.tsx +4 -4
  206. package/dist/assets/shared-assets/react-admin/custom/content-editor/tiptap-ui/blockquote-button/blockquote-button.tsx +4 -20
  207. package/dist/assets/shared-assets/react-admin/custom/content-editor/tiptap-ui/code-block-button/code-block-button.tsx +4 -20
  208. package/dist/assets/shared-assets/react-admin/custom/content-editor/tiptap-ui/color-highlight-button/color-highlight-button.tsx +4 -40
  209. package/dist/assets/shared-assets/react-admin/custom/content-editor/tiptap-ui/color-highlight-popover/color-highlight-popover-button.tsx +3 -5
  210. package/dist/assets/shared-assets/react-admin/custom/content-editor/tiptap-ui/color-highlight-popover/color-highlight-popover-content.tsx +7 -11
  211. package/dist/assets/shared-assets/react-admin/custom/content-editor/tiptap-ui/color-highlight-popover/color-highlight-popover.tsx +9 -14
  212. package/dist/assets/shared-assets/react-admin/custom/content-editor/tiptap-ui/color-highlight-popover/highlight-color-button.tsx +2 -2
  213. package/dist/assets/shared-assets/react-admin/custom/content-editor/tiptap-ui/color-highlight-popover/highlight-colors.ts +2 -4
  214. package/dist/assets/shared-assets/react-admin/custom/content-editor/tiptap-ui/color-highlight-popover/source-color-highlight-popover.tsx +9 -12
  215. package/dist/assets/shared-assets/react-admin/custom/content-editor/tiptap-ui/heading-dropdown-menu/heading-dropdown-menu-item.tsx +3 -2
  216. package/dist/assets/shared-assets/react-admin/custom/content-editor/tiptap-ui/heading-dropdown-menu/heading-dropdown-menu.tsx +6 -20
  217. package/dist/assets/shared-assets/react-admin/custom/content-editor/tiptap-ui/link-popover/link-button.tsx +3 -5
  218. package/dist/assets/shared-assets/react-admin/custom/content-editor/tiptap-ui/link-popover/link-content.tsx +1 -1
  219. package/dist/assets/shared-assets/react-admin/custom/content-editor/tiptap-ui/link-popover/link-control-popover.tsx +5 -3
  220. package/dist/assets/shared-assets/react-admin/custom/content-editor/tiptap-ui/link-popover/link-main.tsx +3 -15
  221. package/dist/assets/shared-assets/react-admin/custom/content-editor/tiptap-ui/link-popover/link-popover.tsx +6 -18
  222. package/dist/assets/shared-assets/react-admin/custom/content-editor/tiptap-ui/list-dropdown-menu/list-dropdown-menu-item.tsx +3 -2
  223. package/dist/assets/shared-assets/react-admin/custom/content-editor/tiptap-ui/list-dropdown-menu/list-dropdown-menu.tsx +4 -19
  224. package/dist/assets/shared-assets/react-admin/custom/content-editor/tiptap-ui/mark-button/mark-button.tsx +4 -21
  225. package/dist/assets/shared-assets/react-admin/custom/content-editor/tiptap-ui/undo-redo-button/undo-redo-button.tsx +4 -21
  226. package/dist/assets/shared-assets/react-admin/custom/date-picker.tsx +3 -5
  227. package/dist/assets/shared-assets/react-admin/custom/date-range-picker.tsx +2 -2
  228. package/dist/assets/shared-assets/react-admin/custom/gallery-field.tsx +11 -16
  229. package/dist/assets/shared-assets/react-admin/custom/icon-picker.tsx +17 -12
  230. package/dist/assets/shared-assets/react-admin/custom/icons-column-skeleton.tsx +2 -2
  231. package/dist/assets/shared-assets/react-admin/custom/media-field-empty-state.tsx +6 -6
  232. package/dist/assets/shared-assets/react-admin/custom/media-field.tsx +9 -9
  233. package/dist/assets/shared-assets/react-admin/custom/nested-object-list-field.tsx +3 -3
  234. package/dist/assets/shared-assets/react-admin/custom/placeholder-card.tsx +2 -2
  235. package/dist/assets/shared-assets/react-admin/custom/placeholder.tsx +2 -2
  236. package/dist/assets/shared-assets/react-admin/custom/progressive-blur.tsx +2 -2
  237. package/dist/assets/shared-assets/react-admin/custom/sortable-gallery-item.tsx +4 -4
  238. package/dist/assets/shared-assets/react-admin/custom/upload-dropzone.tsx +8 -8
  239. package/dist/assets/shared-assets/react-admin/ui/accordion.tsx +2 -2
  240. package/dist/assets/shared-assets/react-admin/ui/alert-dialog.tsx +5 -5
  241. package/dist/assets/shared-assets/react-admin/ui/alert.tsx +3 -2
  242. package/dist/assets/shared-assets/react-admin/ui/avatar.tsx +1 -1
  243. package/dist/assets/shared-assets/react-admin/ui/badge.tsx +4 -3
  244. package/dist/assets/shared-assets/react-admin/ui/breadcrumb.tsx +1 -1
  245. package/dist/assets/shared-assets/react-admin/ui/button-group.tsx +3 -2
  246. package/dist/assets/shared-assets/react-admin/ui/button.tsx +9 -8
  247. package/dist/assets/shared-assets/react-admin/ui/calendar.tsx +3 -2
  248. package/dist/assets/shared-assets/react-admin/ui/card.tsx +6 -6
  249. package/dist/assets/shared-assets/react-admin/ui/carousel.tsx +3 -2
  250. package/dist/assets/shared-assets/react-admin/ui/chart.tsx +1 -2
  251. package/dist/assets/shared-assets/react-admin/ui/checkbox.tsx +2 -2
  252. package/dist/assets/shared-assets/react-admin/ui/combobox.tsx +2 -2
  253. package/dist/assets/shared-assets/react-admin/ui/command.tsx +1 -2
  254. package/dist/assets/shared-assets/react-admin/ui/context-menu.tsx +3 -3
  255. package/dist/assets/shared-assets/react-admin/ui/dialog.tsx +4 -4
  256. package/dist/assets/shared-assets/react-admin/ui/direction.tsx +1 -1
  257. package/dist/assets/shared-assets/react-admin/ui/drawer.tsx +2 -2
  258. package/dist/assets/shared-assets/react-admin/ui/dropdown-menu.tsx +4 -4
  259. package/dist/assets/shared-assets/react-admin/ui/empty.tsx +2 -1
  260. package/dist/assets/shared-assets/react-admin/ui/field.tsx +2 -2
  261. package/dist/assets/shared-assets/react-admin/ui/form.tsx +4 -10
  262. package/dist/assets/shared-assets/react-admin/ui/hover-card.tsx +1 -1
  263. package/dist/assets/shared-assets/react-admin/ui/input-group.tsx +5 -4
  264. package/dist/assets/shared-assets/react-admin/ui/input-otp.tsx +1 -1
  265. package/dist/assets/shared-assets/react-admin/ui/input.tsx +2 -2
  266. package/dist/assets/shared-assets/react-admin/ui/item.tsx +3 -2
  267. package/dist/assets/shared-assets/react-admin/ui/label.tsx +1 -1
  268. package/dist/assets/shared-assets/react-admin/ui/menubar.tsx +3 -3
  269. package/dist/assets/shared-assets/react-admin/ui/native-select.tsx +1 -1
  270. package/dist/assets/shared-assets/react-admin/ui/navigation-menu.tsx +1 -1
  271. package/dist/assets/shared-assets/react-admin/ui/pagination.tsx +1 -2
  272. package/dist/assets/shared-assets/react-admin/ui/popover.tsx +1 -1
  273. package/dist/assets/shared-assets/react-admin/ui/progress.tsx +1 -1
  274. package/dist/assets/shared-assets/react-admin/ui/radio-group.tsx +1 -1
  275. package/dist/assets/shared-assets/react-admin/ui/resizable.tsx +1 -1
  276. package/dist/assets/shared-assets/react-admin/ui/scroll-area.tsx +2 -2
  277. package/dist/assets/shared-assets/react-admin/ui/select.tsx +3 -3
  278. package/dist/assets/shared-assets/react-admin/ui/separator.tsx +1 -1
  279. package/dist/assets/shared-assets/react-admin/ui/sheet.tsx +1 -1
  280. package/dist/assets/shared-assets/react-admin/ui/sidebar.tsx +7 -14
  281. package/dist/assets/shared-assets/react-admin/ui/slider.tsx +1 -1
  282. package/dist/assets/shared-assets/react-admin/ui/sonner.tsx +2 -1
  283. package/dist/assets/shared-assets/react-admin/ui/switch.tsx +1 -1
  284. package/dist/assets/shared-assets/react-admin/ui/table.tsx +2 -2
  285. package/dist/assets/shared-assets/react-admin/ui/tabs.tsx +5 -4
  286. package/dist/assets/shared-assets/react-admin/ui/textarea.tsx +2 -2
  287. package/dist/assets/shared-assets/react-admin/ui/toggle-group.tsx +2 -2
  288. package/dist/assets/shared-assets/react-admin/ui/toggle.tsx +3 -2
  289. package/dist/assets/shared-assets/react-admin/ui/tooltip.tsx +2 -2
  290. package/dist/{chunk-LGZBMR7E.js → chunk-AIQWGMU7.js} +138 -7
  291. package/dist/chunk-AIQWGMU7.js.map +1 -0
  292. package/dist/cli.js +9633 -9704
  293. package/dist/cli.js.map +1 -1
  294. package/dist/index.d.ts +2 -2
  295. package/dist/index.js +1 -1
  296. package/dist/index.js.map +1 -1
  297. package/dist/{template-reader-WRTNGRZV.js → template-reader-F2VFSDKV.js} +2 -2
  298. package/package.json +5 -5
  299. package/dist/assets/shared-assets/react-admin/dependencies.ts +0 -74
  300. package/dist/chunk-LGZBMR7E.js.map +0 -1
  301. /package/dist/{template-reader-WRTNGRZV.js.map → template-reader-F2VFSDKV.js.map} +0 -0
@@ -1,5 +1,9 @@
1
1
  'use client'
2
2
 
3
+ import * as React from 'react'
4
+ import type { IconData } from './icons-data'
5
+ import type { VirtualItem } from '@tanstack/react-virtual'
6
+ import type { IconName } from 'lucide-react/dynamic'
3
7
  import { Button } from '@admin/components/ui/button'
4
8
  import { Input } from '@admin/components/ui/input'
5
9
  import { Popover, PopoverContent, PopoverTrigger } from '@admin/components/ui/popover'
@@ -10,14 +14,13 @@ import {
10
14
  TooltipTrigger
11
15
  } from '@admin/components/ui/tooltip'
12
16
  import { cn } from '@admin/utils/shared/cn'
13
- import { useVirtualizer, type VirtualItem } from '@tanstack/react-virtual'
17
+ import { useVirtualizer } from '@tanstack/react-virtual'
14
18
  import Fuse from 'fuse.js'
15
- import { DynamicIcon, dynamicIconImports, type IconName } from 'lucide-react/dynamic'
16
- import * as React from 'react'
19
+ import { DynamicIcon, dynamicIconImports } from 'lucide-react/dynamic'
17
20
  import { useCallback, useMemo, useState } from 'react'
18
21
  import { useDebounceValue } from 'usehooks-ts'
19
22
  import { IconsColumnSkeleton } from './icons-column-skeleton'
20
- import { type IconData, iconsData } from './icons-data'
23
+ import { iconsData } from './icons-data'
21
24
 
22
25
  const DEFAULT_ICONS = iconsData.filter((icon: IconData) => {
23
26
  return icon.name in dynamicIconImports
@@ -26,8 +29,10 @@ const DEFAULT_ICONS = iconsData.filter((icon: IconData) => {
26
29
  const MemoizedIcon = React.memo(({ name }: { name: IconName }) => <DynamicIcon name={name} />)
27
30
  MemoizedIcon.displayName = 'MemoizedIcon'
28
31
 
29
- interface IconPickerProps
30
- extends Omit<React.ComponentPropsWithoutRef<typeof PopoverTrigger>, 'onSelect' | 'onOpenChange'> {
32
+ interface IconPickerProps extends Omit<
33
+ React.ComponentPropsWithoutRef<typeof PopoverTrigger>,
34
+ 'onSelect' | 'onOpenChange'
35
+ > {
31
36
  value?: string
32
37
  defaultValue?: string
33
38
  onValueChange?: (value: string) => void
@@ -258,7 +263,7 @@ const IconPicker = React.forwardRef<React.ComponentRef<typeof PopoverTrigger>, I
258
263
  <Tooltip>
259
264
  <TooltipTrigger
260
265
  className={cn(
261
- 'p-2 rounded-md border hover:bg-foreground/10 transition',
266
+ 'rounded-md border p-2 transition hover:bg-foreground/10',
262
267
  'flex items-center justify-center'
263
268
  )}
264
269
  onClick={() => handleIconClick(icon.name as IconName)}
@@ -302,18 +307,18 @@ const IconPicker = React.forwardRef<React.ComponentRef<typeof PopoverTrigger>, I
302
307
 
303
308
  if (item.type === 'category') {
304
309
  return (
305
- <div key={virtualItem.key} style={itemStyle} className="bg-background z-10">
306
- <h3 className="font-medium text-sm capitalize">
310
+ <div key={virtualItem.key} style={itemStyle} className="z-10 bg-background">
311
+ <h3 className="text-sm font-medium capitalize">
307
312
  {categorizedIcons[item.categoryIndex].name}
308
313
  </h3>
309
- <div className="h-[1px] bg-foreground/10 w-full" />
314
+ <div className="h-[1px] w-full bg-foreground/10" />
310
315
  </div>
311
316
  )
312
317
  }
313
318
 
314
319
  return (
315
320
  <div key={virtualItem.key} data-index={virtualItem.index} style={itemStyle}>
316
- <div className="grid grid-cols-5 gap-2 w-full">{item.icons?.map(renderIcon)}</div>
321
+ <div className="grid w-full grid-cols-5 gap-2">{item.icons?.map(renderIcon)}</div>
317
322
  </div>
318
323
  )
319
324
  })}
@@ -358,7 +363,7 @@ const IconPicker = React.forwardRef<React.ComponentRef<typeof PopoverTrigger>, I
358
363
  <Input placeholder={searchPlaceholder} onChange={handleSearchChange} className="mb-2" />
359
364
  )}
360
365
  {categorized && search.trim() === '' && (
361
- <div className="flex flex-row gap-1 mt-2 overflow-x-auto pb-2">{categoryButtons}</div>
366
+ <div className="mt-2 flex flex-row gap-1 overflow-x-auto pb-2">{categoryButtons}</div>
362
367
  )}
363
368
  <div
364
369
  ref={parentRef}
@@ -4,9 +4,9 @@ const ICON_SKELETON_KEYS = Array.from({ length: 40 }, (_, index) => `icon-skelet
4
4
 
5
5
  export function IconsColumnSkeleton() {
6
6
  return (
7
- <div className="flex flex-col gap-2 w-full">
7
+ <div className="flex w-full flex-col gap-2">
8
8
  <Skeleton className="h-4 w-1/2 rounded-md" />
9
- <div className="grid grid-cols-5 gap-2 w-full">
9
+ <div className="grid w-full grid-cols-5 gap-2">
10
10
  {ICON_SKELETON_KEYS.map((key) => (
11
11
  <Skeleton key={key} className="h-10 w-10 rounded-md" />
12
12
  ))}
@@ -1,9 +1,9 @@
1
1
  'use client'
2
2
 
3
+ import type { AdminMedia } from '@admin/types'
3
4
  import { MediaGalleryDialog } from '@admin/components/shared/media/media-gallery-dialog'
4
5
  import { Button } from '@admin/components/ui/button'
5
6
  import { Card, CardContent } from '@admin/components/ui/card'
6
- import type { AdminMedia } from '@admin/types'
7
7
  import { cn } from '@admin/utils/shared/cn'
8
8
  import { ImageIcon } from 'lucide-react'
9
9
 
@@ -40,18 +40,18 @@ export function MediaFieldEmptyState({
40
40
  return (
41
41
  <div className={className}>
42
42
  <Card
43
- className={cn('group p-0 gap-0', {
44
- 'cursor-not-allowed opacity-50 pointer-events-none': disabled
43
+ className={cn('group gap-0 p-0', {
44
+ 'pointer-events-none cursor-not-allowed opacity-50': disabled
45
45
  })}
46
46
  onClick={() => !disabled && onOpenChange(true)}
47
47
  >
48
- <CardContent className="relative p-0 justify-center items-center flex flex-col h-40 hover:bg-muted/50 transition-colors duration-200">
48
+ <CardContent className="relative flex h-40 flex-col items-center justify-center p-0 transition-colors duration-200 hover:bg-muted/50">
49
49
  <ImageIcon
50
- className="text-muted-foreground transition-opacity group-hover:opacity-0 group-focus-within:opacity-0"
50
+ className="text-muted-foreground transition-opacity group-focus-within:opacity-0 group-hover:opacity-0"
51
51
  strokeWidth={1}
52
52
  />
53
53
  {showAddButton ? (
54
- <div className="absolute inset-0 flex items-center justify-center gap-1 opacity-0 transition-opacity duration-200 ease-out group-hover:opacity-100 group-focus-within:opacity-100">
54
+ <div className="absolute inset-0 flex items-center justify-center gap-1 opacity-0 transition-opacity duration-200 ease-out group-focus-within:opacity-100 group-hover:opacity-100">
55
55
  <Button
56
56
  type="button"
57
57
  data-media-field-action="true"
@@ -1,17 +1,17 @@
1
1
  'use client'
2
2
 
3
+ import * as React from 'react'
4
+ import type { AdminMedia } from '@admin/types'
3
5
  import { MediaGalleryDialog } from '@admin/components/shared/media/media-gallery-dialog'
4
6
  import { MediaPreview } from '@admin/components/shared/media/media-preview'
5
7
  import { Button } from '@admin/components/ui/button'
6
8
  import { Card, CardContent, CardFooter } from '@admin/components/ui/card'
7
9
  import { useCopyToClipboard } from '@admin/hooks/use-copy-to-clipboard'
8
10
  import { useMediaById } from '@admin/hooks/use-media'
9
- import type { AdminMedia } from '@admin/types'
10
11
  import { createAdminMediaFromUrl } from '@admin/utils/media/fallback'
11
12
  import { cn } from '@admin/utils/shared/cn'
12
13
  import { Check, Copy, Link2 } from 'lucide-react'
13
14
  import Link from 'next/link'
14
- import * as React from 'react'
15
15
  import { MediaFieldEmptyState } from './media-field-empty-state'
16
16
 
17
17
  type MediaFieldValueMode = 'id' | 'url'
@@ -82,10 +82,10 @@ export function MediaField({
82
82
  return (
83
83
  <div className={cn('group relative', className)}>
84
84
  <Card className="p-0">
85
- <CardContent className="p-0! relative">
85
+ <CardContent className="relative p-0!">
86
86
  <div
87
87
  data-media-field-preview
88
- className="relative aspect-video rounded-sm bg-background overflow-hidden"
88
+ className="relative aspect-video overflow-hidden rounded-sm bg-background"
89
89
  >
90
90
  <MediaPreview media={selectedMedia} showMetadata={Boolean(media)} />
91
91
  </div>
@@ -94,15 +94,15 @@ export function MediaField({
94
94
  <>
95
95
  <div
96
96
  aria-hidden="true"
97
- className="pointer-events-none absolute inset-0 bg-black/10 opacity-0 backdrop-blur-xs transition-opacity duration-300 ease-out group-hover:opacity-100 group-focus-within:opacity-100 rounded-sm"
97
+ className="pointer-events-none absolute inset-0 rounded-sm bg-black/10 opacity-0 backdrop-blur-xs transition-opacity duration-300 ease-out group-focus-within:opacity-100 group-hover:opacity-100"
98
98
  />
99
- <div className="absolute inset-0 flex flex-col items-center justify-center gap-1 opacity-0 transition-opacity duration-200 ease-out group-hover:opacity-100 group-focus-within:opacity-100">
99
+ <div className="absolute inset-0 flex flex-col items-center justify-center gap-1 opacity-0 transition-opacity duration-200 ease-out group-focus-within:opacity-100 group-hover:opacity-100">
100
100
  <Button
101
101
  type="button"
102
102
  data-media-field-action="true"
103
103
  variant="outline"
104
104
  onClick={handleChangeImage}
105
- className="border-primary/10 w-[100px]"
105
+ className="w-[100px] border-primary/10"
106
106
  >
107
107
  Change
108
108
  </Button>
@@ -129,7 +129,7 @@ export function MediaField({
129
129
  href={selectedMedia.url}
130
130
  target="_blank"
131
131
  rel="noopener noreferrer"
132
- className="min-w-0 truncate text-foreground hover:underline underline-offset-4"
132
+ className="min-w-0 truncate text-foreground underline-offset-4 hover:underline"
133
133
  >
134
134
  {selectedMedia.url}
135
135
  </Link>
@@ -141,7 +141,7 @@ export function MediaField({
141
141
  variant="ghost"
142
142
  title={hasCopiedMediaUrl ? 'Copied' : 'Copy media URL'}
143
143
  onClick={() => copyMediaUrl(selectedMedia.url)}
144
- className="shrink-0 size-7"
144
+ className="size-7 shrink-0"
145
145
  >
146
146
  {hasCopiedMediaUrl ? <Check className="text-foreground" /> : <Copy />}
147
147
  </Button>
@@ -1,5 +1,6 @@
1
1
  'use client'
2
2
 
3
+ import * as React from 'react'
3
4
  import {
4
5
  Accordion,
5
6
  AccordionContent,
@@ -12,7 +13,6 @@ import { FormDescription, FormField, FormItem, FormLabel } from '@admin/componen
12
13
  import { cloneDefaultValue, createListItemKey } from '@admin/utils/form/list-field'
13
14
  import { cn } from '@admin/utils/shared/cn'
14
15
  import { Plus, X } from 'lucide-react'
15
- import * as React from 'react'
16
16
  import { useFormContext, useWatch } from 'react-hook-form'
17
17
 
18
18
  interface NestedObjectListFieldProps {
@@ -189,7 +189,7 @@ export function NestedObjectListField({
189
189
  type="button"
190
190
  variant="ghost"
191
191
  size="icon-sm"
192
- className="absolute right-10 top-1/2 shrink-0 -translate-y-1/2"
192
+ className="absolute top-1/2 right-10 shrink-0 -translate-y-1/2"
193
193
  aria-label={`Remove ${singularLabel}`}
194
194
  onClick={() => handleRemove(index)}
195
195
  disabled={disabled}
@@ -197,7 +197,7 @@ export function NestedObjectListField({
197
197
  <X />
198
198
  </Button>
199
199
  </div>
200
- <AccordionContent className="space-y-5 border rounded-sm border-border p-5 bg-background mb-4">
200
+ <AccordionContent className="mb-4 space-y-5 rounded-sm border border-border bg-background p-5">
201
201
  {children(index)}
202
202
  </AccordionContent>
203
203
  </AccordionItem>
@@ -1,5 +1,5 @@
1
- import { cn } from '@admin/utils/shared/cn'
2
1
  import type * as React from 'react'
2
+ import { cn } from '@admin/utils/shared/cn'
3
3
 
4
4
  interface PlaceholderCardProps {
5
5
  icon?: React.ReactNode
@@ -19,7 +19,7 @@ export function PlaceholderCard({
19
19
  return (
20
20
  <div
21
21
  className={cn(
22
- 'flex h-75 border border-border border-dashed bg-background flex-col items-center justify-center gap-5 rounded-sm',
22
+ 'flex h-75 flex-col items-center justify-center gap-5 rounded-sm border border-dashed border-border bg-background',
23
23
  className
24
24
  )}
25
25
  >
@@ -1,5 +1,5 @@
1
- import { cn } from '@admin/utils/shared/cn'
2
1
  import type * as React from 'react'
2
+ import { cn } from '@admin/utils/shared/cn'
3
3
 
4
4
  type PlaceholderProps = {
5
5
  label: string
@@ -12,7 +12,7 @@ export function Placeholder({ label, description, action, className, ...props }:
12
12
  return (
13
13
  <div
14
14
  className={cn(
15
- 'border flex items-center flex-col gap-2 border-dashed border-border rounded-sm p-8 bg-background',
15
+ 'flex flex-col items-center gap-2 rounded-sm border border-dashed border-border bg-background p-8',
16
16
  className
17
17
  )}
18
18
  {...props}
@@ -1,9 +1,9 @@
1
1
  'use client'
2
2
 
3
+ import type * as React from 'react'
3
4
  import { usePageBoundaryBlurVisibility } from '@admin/hooks/use-page-boundary-blur-visibility'
4
5
  import { cn } from '@admin/utils/shared/cn'
5
6
  import { motion } from 'motion/react'
6
- import type * as React from 'react'
7
7
 
8
8
  type ProgressiveBlurProps = React.ComponentProps<typeof motion.div> & {
9
9
  backgroundColor?: string
@@ -36,7 +36,7 @@ function ProgressiveBlur({
36
36
  animate={{ opacity: isVisible ? 1 : 0 }}
37
37
  transition={{ duration: 0.16, ease: 'easeOut' }}
38
38
  className={cn(
39
- 'pointer-events-none h-(--progressive-blur-height) w-full shrink-0 select-none [background:var(--progressive-blur-background)] [-webkit-backdrop-filter:blur(var(--progressive-blur-amount))] [backdrop-filter:blur(var(--progressive-blur-amount))] [-webkit-mask-image:var(--progressive-blur-mask)] mask-(--progressive-blur-mask)',
39
+ 'pointer-events-none h-(--progressive-blur-height) w-full shrink-0 mask-(--progressive-blur-mask) [backdrop-filter:blur(var(--progressive-blur-amount))] select-none [-webkit-backdrop-filter:blur(var(--progressive-blur-amount))] [-webkit-mask-image:var(--progressive-blur-mask)] [background:var(--progressive-blur-background)]',
40
40
  className
41
41
  )}
42
42
  style={
@@ -1,10 +1,10 @@
1
+ import type * as React from 'react'
1
2
  import { Button } from '@admin/components/ui/button'
2
3
  import { Card, CardContent, CardFooter } from '@admin/components/ui/card'
3
4
  import { Skeleton } from '@admin/components/ui/skeleton'
4
5
  import { useSortable } from '@dnd-kit/sortable'
5
6
  import { CSS } from '@dnd-kit/utilities'
6
7
  import { GripVertical } from 'lucide-react'
7
- import type * as React from 'react'
8
8
 
9
9
  export function SortableGalleryItem({
10
10
  id,
@@ -37,8 +37,8 @@ export function SortableGalleryItem({
37
37
  className="pointer-events-none absolute inset-0 opacity-0 transition-opacity group-data-[gallery-dragging=true]:opacity-100"
38
38
  >
39
39
  <Card className="h-full">
40
- <CardContent className="p-2 flex flex-col">
41
- <div className="flex size-full bg-background border border-border rounded-sm aspect-square overflow-hidden">
40
+ <CardContent className="flex flex-col p-2">
41
+ <div className="flex aspect-square size-full overflow-hidden rounded-sm border border-border bg-background">
42
42
  <Skeleton className="size-full" />
43
43
  </div>
44
44
  </CardContent>
@@ -54,7 +54,7 @@ export function SortableGalleryItem({
54
54
  data-gallery-drag-handle
55
55
  variant="outline"
56
56
  size="icon-sm"
57
- className="absolute right-1 top-1 z-10 cursor-grab touch-none opacity-0 transition-[opacity,transform] group-hover:opacity-100 active:scale-[0.96] active:cursor-grabbing border-primary/10"
57
+ className="absolute top-1 right-1 z-10 cursor-grab touch-none border-primary/10 opacity-0 transition-[opacity,transform] group-hover:opacity-100 active:scale-[0.96] active:cursor-grabbing"
58
58
  >
59
59
  <GripVertical className="size-3.5 text-foreground" />
60
60
  </Button>
@@ -1,13 +1,13 @@
1
1
  'use client'
2
2
 
3
+ import * as React from 'react'
4
+ import type { UploadProgress } from '@admin/types'
3
5
  import { Button } from '@admin/components/ui/button'
4
6
  import { Card, CardContent } from '@admin/components/ui/card'
5
7
  import { Progress } from '@admin/components/ui/progress'
6
- import type { UploadProgress } from '@admin/types'
7
8
  import { cn } from '@admin/utils/shared/cn'
8
9
  import { parseDropzoneAccept } from '@admin/utils/upload/upload'
9
10
  import { GalleryVerticalEnd } from 'lucide-react'
10
- import * as React from 'react'
11
11
  import { useDropzone } from 'react-dropzone'
12
12
 
13
13
  export interface UploadDropzoneHandle {
@@ -68,7 +68,7 @@ export function UploadDropzone({
68
68
  className: cn(
69
69
  'flex items-center justify-center',
70
70
  {
71
- 'bg-muted ring-1 ring-border p-2 transition-all duration-100': isDragActive,
71
+ 'bg-muted p-2 ring-1 ring-border transition-all duration-100': isDragActive,
72
72
  'cursor-not-allowed': disabled || isUploading
73
73
  },
74
74
  className
@@ -76,20 +76,20 @@ export function UploadDropzone({
76
76
  'aria-label': 'File upload dropzone'
77
77
  })}
78
78
  >
79
- <CardContent className="w-full h-full">
79
+ <CardContent className="h-full w-full">
80
80
  {isUploading ? (
81
81
  <div
82
82
  data-slot="upload-dropzone-progress"
83
- className="flex w-full flex-col h-full justify-center items-center gap-3 text-center"
83
+ className="flex h-full w-full flex-col items-center justify-center gap-3 text-center"
84
84
  >
85
- <p className="font-medium text-sm">Uploading files…</p>
86
- <Progress value={progressPercent} className="h-2 max-w-sm mx-auto" />
85
+ <p className="text-sm font-medium">Uploading files…</p>
86
+ <Progress value={progressPercent} className="mx-auto h-2 max-w-sm" />
87
87
  <p className="text-sm text-muted-foreground">{progressPercent}% complete</p>
88
88
  </div>
89
89
  ) : (
90
90
  <div
91
91
  data-slot="upload-dropzone-idle"
92
- className="flex w-full flex-col h-full justify-center items-center gap-3 text-center"
92
+ className="flex h-full w-full flex-col items-center justify-center gap-3 text-center"
93
93
  >
94
94
  <Button type="button" variant="outline" onClick={open}>
95
95
  <GalleryVerticalEnd />
@@ -1,16 +1,16 @@
1
1
  'use client'
2
2
 
3
+ import type * as React from 'react'
3
4
  import { cn } from '@admin/utils/shared/cn'
4
5
  import { ChevronDownIcon, ChevronUpIcon } from 'lucide-react'
5
6
  import { Accordion as AccordionPrimitive } from 'radix-ui'
6
- import type * as React from 'react'
7
7
 
8
8
  function Accordion({ className, ...props }: React.ComponentProps<typeof AccordionPrimitive.Root>) {
9
9
  return (
10
10
  <AccordionPrimitive.Root
11
11
  data-slot="accordion"
12
12
  className={cn(
13
- 'flex w-full flex-col rounded-sm overflow-hidden border border-border bg-card shadow-2xl/1',
13
+ 'flex w-full flex-col overflow-hidden rounded-sm border border-border bg-card shadow-2xl/1',
14
14
  className
15
15
  )}
16
16
  {...props}
@@ -1,9 +1,9 @@
1
1
  'use client'
2
2
 
3
+ import type * as React from 'react'
3
4
  import { Button } from '@admin/components/ui/button'
4
5
  import { cn } from '@admin/utils/shared/cn'
5
6
  import { AlertDialog as AlertDialogPrimitive } from 'radix-ui'
6
- import type * as React from 'react'
7
7
 
8
8
  function AlertDialog({ ...props }: React.ComponentProps<typeof AlertDialogPrimitive.Root>) {
9
9
  return <AlertDialogPrimitive.Root data-slot="alert-dialog" {...props} />
@@ -49,7 +49,7 @@ function AlertDialogContent({
49
49
  data-slot="alert-dialog-content"
50
50
  data-size={size}
51
51
  className={cn(
52
- 'group/alert-dialog-content fixed top-1/2 left-1/2 z-50 grid w-full -translate-x-1/2 -translate-y-1/2 gap-6 rounded-sm bg-muted text-popover-foreground ring-1 ring-foreground/5 duration-100 outline-none data-[size=default]:max-w-xs data-[size=sm]:max-w-xs data-[size=default]:sm:max-w-md data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95 overflow-hidden',
52
+ 'group/alert-dialog-content fixed top-1/2 left-1/2 z-50 grid w-full -translate-x-1/2 -translate-y-1/2 gap-6 overflow-hidden rounded-sm bg-muted text-popover-foreground ring-1 ring-foreground/5 duration-100 outline-none data-[size=default]:max-w-xs data-[size=sm]:max-w-xs data-[size=default]:sm:max-w-md data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95',
53
53
  className
54
54
  )}
55
55
  {...props}
@@ -63,7 +63,7 @@ function AlertDialogHeader({ className, ...props }: React.ComponentProps<'div'>)
63
63
  <div
64
64
  data-slot="alert-dialog-header"
65
65
  className={cn(
66
- 'grid grid-rows-[auto_1fr] place-items-center gap-1.5 text-center has-data-[slot=alert-dialog-media]:grid-rows-[auto_auto_1fr] has-data-[slot=alert-dialog-media]:gap-x-6 sm:group-data-[size=default]/alert-dialog-content:place-items-start sm:group-data-[size=default]/alert-dialog-content:text-left sm:group-data-[size=default]/alert-dialog-content:has-data-[slot=alert-dialog-media]:grid-rows-[auto_1fr] bg-muted px-6 pt-6',
66
+ 'grid grid-rows-[auto_1fr] place-items-center gap-1.5 bg-muted px-6 pt-6 text-center has-data-[slot=alert-dialog-media]:grid-rows-[auto_auto_1fr] has-data-[slot=alert-dialog-media]:gap-x-6 sm:group-data-[size=default]/alert-dialog-content:place-items-start sm:group-data-[size=default]/alert-dialog-content:text-left sm:group-data-[size=default]/alert-dialog-content:has-data-[slot=alert-dialog-media]:grid-rows-[auto_1fr]',
67
67
  className
68
68
  )}
69
69
  {...props}
@@ -75,7 +75,7 @@ function AlertDialogBody({ className, ...props }: React.ComponentProps<'div'>) {
75
75
  return (
76
76
  <div
77
77
  data-slot="alert-dialog-body"
78
- className={cn('flex shadow-input flex-col gap-1 px-6 py-6', className)}
78
+ className={cn('flex flex-col gap-1 px-6 py-6 shadow-input', className)}
79
79
  {...props}
80
80
  />
81
81
  )
@@ -85,7 +85,7 @@ function AlertDialogFooter({ className, ...props }: React.ComponentProps<'div'>)
85
85
  return (
86
86
  <div
87
87
  data-slot="alert-dialog-footer"
88
- className={cn('grid w-full grid-cols-2 gap-1 px-6 pb-5 bg-muted *:w-full', className)}
88
+ className={cn('grid w-full grid-cols-2 gap-1 bg-muted px-6 pb-5 *:w-full', className)}
89
89
  {...props}
90
90
  />
91
91
  )
@@ -1,6 +1,7 @@
1
- import { cn } from '@admin/utils/shared/cn'
2
- import { cva, type VariantProps } from 'class-variance-authority'
3
1
  import type * as React from 'react'
2
+ import type { VariantProps } from 'class-variance-authority'
3
+ import { cn } from '@admin/utils/shared/cn'
4
+ import { cva } from 'class-variance-authority'
4
5
 
5
6
  const alertVariants = cva(
6
7
  "group/alert relative grid w-full gap-0.5 rounded-sm border px-4 py-3 text-left text-sm has-data-[slot=alert-action]:relative has-data-[slot=alert-action]:pr-18 has-[>svg]:grid-cols-[auto_1fr] has-[>svg]:gap-x-2.5 *:[svg]:row-span-2 *:[svg]:translate-y-0.5 *:[svg]:text-foreground *:[svg:not([class*='size-'])]:size-4",
@@ -1,8 +1,8 @@
1
1
  'use client'
2
2
 
3
+ import type * as React from 'react'
3
4
  import { cn } from '@admin/utils/shared/cn'
4
5
  import { Avatar as AvatarPrimitive } from 'radix-ui'
5
- import type * as React from 'react'
6
6
 
7
7
  function Avatar({
8
8
  className,
@@ -1,7 +1,8 @@
1
+ import type * as React from 'react'
2
+ import type { VariantProps } from 'class-variance-authority'
1
3
  import { cn } from '@admin/utils/shared/cn'
2
- import { cva, type VariantProps } from 'class-variance-authority'
4
+ import { cva } from 'class-variance-authority'
3
5
  import { Slot } from 'radix-ui'
4
- import type * as React from 'react'
5
6
 
6
7
  const badgeVariants = cva(
7
8
  'group/badge inline-flex h-6 w-fit shrink-0 items-center justify-center gap-1 overflow-hidden rounded-sm border border-transparent px-2 py-0.5 text-xs font-medium whitespace-nowrap transition-all focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 [&>svg]:pointer-events-none [&>svg]:size-3!',
@@ -10,7 +11,7 @@ const badgeVariants = cva(
10
11
  variant: {
11
12
  default: 'bg-primary text-primary-foreground [a]:hover:bg-primary/80',
12
13
  secondary:
13
- 'bg-secondary border border-border text-secondary-foreground [a]:hover:bg-secondary/80',
14
+ 'border border-border bg-secondary text-secondary-foreground [a]:hover:bg-secondary/80',
14
15
  destructive:
15
16
  'bg-destructive/10 text-destructive focus-visible:ring-destructive/20 dark:bg-destructive/20 dark:focus-visible:ring-destructive/40 [a]:hover:bg-destructive/20',
16
17
  success:
@@ -1,7 +1,7 @@
1
+ import type * as React from 'react'
1
2
  import { cn } from '@admin/utils/shared/cn'
2
3
  import { ChevronRightIcon, MoreHorizontalIcon } from 'lucide-react'
3
4
  import { Slot } from 'radix-ui'
4
- import type * as React from 'react'
5
5
 
6
6
  function Breadcrumb({ className, ...props }: React.ComponentProps<'nav'>) {
7
7
  return <nav aria-label="breadcrumb" data-slot="breadcrumb" className={cn(className)} {...props} />
@@ -1,10 +1,11 @@
1
+ import type { VariantProps } from 'class-variance-authority'
1
2
  import { Separator } from '@admin/components/ui/separator'
2
3
  import { cn } from '@admin/utils/shared/cn'
3
- import { cva, type VariantProps } from 'class-variance-authority'
4
+ import { cva } from 'class-variance-authority'
4
5
  import { Slot } from 'radix-ui'
5
6
 
6
7
  const buttonGroupVariants = cva(
7
- "group/button-group flex w-fit items-stretch *:focus-visible:relative *:focus-visible:z-10 has-[>[data-slot=button-group]]:gap-2 has-[select[aria-hidden=true]:last-child]:[&>[data-slot=select-trigger]:last-of-type]:rounded-r-sm [&>[data-slot=select-trigger]:not([class*='w-'])]:w-fit [&>input]:flex-1 [&>button]:min-w-0 [&>button]:scale-100!",
8
+ "group/button-group flex w-fit items-stretch *:focus-visible:relative *:focus-visible:z-10 has-[>[data-slot=button-group]]:gap-2 has-[select[aria-hidden=true]:last-child]:[&>[data-slot=select-trigger]:last-of-type]:rounded-r-sm [&>[data-slot=select-trigger]:not([class*='w-'])]:w-fit [&>button]:min-w-0 [&>button]:scale-100! [&>input]:flex-1",
8
9
  {
9
10
  variants: {
10
11
  orientation: {
@@ -1,24 +1,25 @@
1
+ import * as React from 'react'
2
+ import type { VariantProps } from 'class-variance-authority'
1
3
  import { cn } from '@admin/utils/shared/cn'
2
- import { cva, type VariantProps } from 'class-variance-authority'
4
+ import { cva } from 'class-variance-authority'
3
5
  import { Slot } from 'radix-ui'
4
- import * as React from 'react'
5
6
 
6
7
  const buttonVariants = cva(
7
- "group/button inline-flex shrink-0 items-center justify-center rounded-sm bg-clip-padding text-sm font-medium whitespace-nowrap transition-all outline-none select-none focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 active:not-aria-[haspopup]:scale-97 disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg]:text-current [&_svg:not([class*='size-'])]:size-3.5 cursor-pointer [&_svg]:[stroke-width:1.5] min-w-0",
8
+ "group/button inline-flex min-w-0 shrink-0 cursor-pointer items-center justify-center rounded-sm bg-clip-padding text-sm font-medium whitespace-nowrap transition-all outline-none select-none focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 active:not-aria-[haspopup]:scale-97 disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg]:[stroke-width:1.5] [&_svg]:text-current [&_svg:not([class*='size-'])]:size-3.5",
8
9
  {
9
10
  variants: {
10
11
  variant: {
11
- default: 'bg-primary border-primary text-primary-foreground hover:bg-primary/80',
12
+ default: 'border-primary bg-primary text-primary-foreground hover:bg-primary/80',
12
13
  outline:
13
- 'border border-border bg-card hover:bg-secondary hover:text-foreground aria-expanded:bg-secondary aria-expanded:text-foreground hover:border-primary/10',
14
+ 'border border-border bg-card hover:border-primary/10 hover:bg-secondary hover:text-foreground aria-expanded:bg-secondary aria-expanded:text-foreground',
14
15
  secondary:
15
- 'bg-secondary border border-primary/8 text-secondary-foreground hover:bg-secondary/80 aria-expanded:bg-secondary aria-expanded:text-secondary-foreground',
16
+ 'border border-primary/8 bg-secondary text-secondary-foreground hover:bg-secondary/80 aria-expanded:bg-secondary aria-expanded:text-secondary-foreground',
16
17
  ghost:
17
18
  'hover:bg-secondary hover:text-foreground aria-expanded:bg-secondary aria-expanded:text-foreground dark:hover:bg-secondary/50',
18
19
  destructive:
19
- 'border bg-destructive/10 border-destructive/20 text-destructive hover:bg-destructive/15 focus-visible:border-destructive/40 focus-visible:ring-destructive/20 dark:bg-destructive/20 dark:hover:bg-destructive/30 dark:focus-visible:ring-destructive/40 [&_svg]:text-destructive',
20
+ 'border border-destructive/20 bg-destructive/10 text-destructive hover:bg-destructive/15 focus-visible:border-destructive/40 focus-visible:ring-destructive/20 dark:bg-destructive/20 dark:hover:bg-destructive/30 dark:focus-visible:ring-destructive/40 [&_svg]:text-destructive',
20
21
  warning:
21
- 'border bg-warning/10 border-warning/20 text-warning hover:bg-warning/15 focus-visible:border-warning/40 focus-visible:ring-warning/15 dark:bg-warning/20 dark:hover:bg-warning/30 dark:focus-visible:ring-warning/40 [&_svg]:text-warning',
22
+ 'border border-warning/20 bg-warning/10 text-warning hover:bg-warning/15 focus-visible:border-warning/40 focus-visible:ring-warning/15 dark:bg-warning/20 dark:hover:bg-warning/30 dark:focus-visible:ring-warning/40 [&_svg]:text-warning',
22
23
  link: 'text-primary underline-offset-4 hover:underline'
23
24
  },
24
25
  size: {
@@ -1,10 +1,11 @@
1
1
  'use client'
2
2
 
3
+ import * as React from 'react'
4
+ import type { DayButton, Locale } from 'react-day-picker'
3
5
  import { Button, buttonVariants } from '@admin/components/ui/button'
4
6
  import { cn } from '@admin/utils/shared/cn'
5
7
  import { ChevronDownIcon, ChevronLeftIcon, ChevronRightIcon } from 'lucide-react'
6
- import * as React from 'react'
7
- import { type DayButton, DayPicker, getDefaultClassNames, type Locale } from 'react-day-picker'
8
+ import { DayPicker, getDefaultClassNames } from 'react-day-picker'
8
9
 
9
10
  function Calendar({
10
11
  className,
@@ -1,5 +1,5 @@
1
- import { cn } from '@admin/utils/shared/cn'
2
1
  import type * as React from 'react'
2
+ import { cn } from '@admin/utils/shared/cn'
3
3
 
4
4
  function Card({
5
5
  className,
@@ -11,7 +11,7 @@ function Card({
11
11
  data-slot="card"
12
12
  data-size={size}
13
13
  className={cn(
14
- 'group/card flex flex-col rounded-sm has-[>[data-slot=card-header]]:bg-transparent has-[>[data-slot=card-header]]:border-none has-[>[data-slot=card-footer]]:border-none text-sm text-foreground has-[>img:first-child]:pt-0 data-[size=sm]:gap-4 data-[size=sm]:py-4 *:[img:first-child]:rounded-t-sm *:[img:last-child]:rounded-b-sm [&_[data-slot=card]:last-of-type:last-child]:rounded-b-sm [&_[data-slot=card]:first-of-type:first-child]:rounded-t-sm',
14
+ 'group/card flex flex-col rounded-sm text-sm text-foreground has-[>[data-slot=card-footer]]:border-none has-[>[data-slot=card-header]]:border-none has-[>[data-slot=card-header]]:bg-transparent has-[>img:first-child]:pt-0 data-[size=sm]:gap-4 data-[size=sm]:py-4 [&_[data-slot=card]:first-of-type:first-child]:rounded-t-sm [&_[data-slot=card]:last-of-type:last-child]:rounded-b-sm *:[img:first-child]:rounded-t-sm *:[img:last-child]:rounded-b-sm',
15
15
  className
16
16
  )}
17
17
  {...props}
@@ -24,7 +24,7 @@ function CardHeader({ className, ...props }: React.ComponentProps<'div'>) {
24
24
  <div
25
25
  data-slot="card-header"
26
26
  className={cn(
27
- 'group/card-header @container/card-header grid auto-rows-min items-start gap-1 rounded-t-sm px-3 has-data-[slot=card-action]:grid-cols-[1fr_auto] has-data-[slot=card-description]:grid-rows-[auto_auto] border-x border-t [.border-b]:pb-6 border-border bg-muted pt-2.5 [text-box-trim:trim-both] -mb-1 pb-3',
27
+ 'group/card-header @container/card-header -mb-1 grid auto-rows-min items-start gap-1 rounded-t-sm border-x border-t border-border bg-muted px-3 pt-2.5 pb-3 [text-box-trim:trim-both] has-data-[slot=card-action]:grid-cols-[1fr_auto] has-data-[slot=card-description]:grid-rows-[auto_auto] [.border-b]:pb-6',
28
28
  className
29
29
  )}
30
30
  {...props}
@@ -37,7 +37,7 @@ function CardTitle({ className, ...props }: React.ComponentProps<'div'>) {
37
37
  <div
38
38
  data-slot="card-title"
39
39
  className={cn(
40
- 'font-heading [text-box-trim:trim-both] text-xs text-muted-foreground font-medium',
40
+ 'font-heading text-xs font-medium text-muted-foreground [text-box-trim:trim-both]',
41
41
  className
42
42
  )}
43
43
  {...props}
@@ -70,7 +70,7 @@ function CardContent({ className, ...props }: React.ComponentProps<'div'>) {
70
70
  <div
71
71
  data-slot="card-content"
72
72
  className={cn(
73
- 'group-has-[>[data-slot=card-header]]/card:px-5 rounded-sm border border-border bg-card group-has-[>[data-slot=card-footer]]/card:bg-card p-8 flex flex-col overflow-hidden shadow-input relative',
73
+ 'relative flex flex-col overflow-hidden rounded-sm border border-border bg-card p-8 shadow-input group-has-[>[data-slot=card-footer]]/card:bg-card group-has-[>[data-slot=card-header]]/card:px-5',
74
74
  className
75
75
  )}
76
76
  {...props}
@@ -83,7 +83,7 @@ function CardFooter({ className, ...props }: React.ComponentProps<'div'>) {
83
83
  <div
84
84
  data-slot="card-footer"
85
85
  className={cn(
86
- 'flex items-center border border-border bg-muted -mt-2 pt-3.5 pb-2 rounded-b-sm px-4',
86
+ '-mt-2 flex items-center rounded-b-sm border border-border bg-muted px-4 pt-3.5 pb-2',
87
87
  className
88
88
  )}
89
89
  {...props}
@@ -1,10 +1,11 @@
1
1
  'use client'
2
2
 
3
+ import * as React from 'react'
4
+ import type { UseEmblaCarouselType } from 'embla-carousel-react'
3
5
  import { Button } from '@admin/components/ui/button'
4
6
  import { cn } from '@admin/utils/shared/cn'
5
- import useEmblaCarousel, { type UseEmblaCarouselType } from 'embla-carousel-react'
7
+ import useEmblaCarousel from 'embla-carousel-react'
6
8
  import { ChevronLeftIcon, ChevronRightIcon } from 'lucide-react'
7
- import * as React from 'react'
8
9
 
9
10
  type CarouselApi = UseEmblaCarouselType[1]
10
11
  type UseCarouselParameters = Parameters<typeof useEmblaCarousel>