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,6 @@
1
1
  'use client'
2
2
 
3
+ import * as React from 'react'
3
4
  import { authClient } from '@admin/auth/client'
4
5
  import { Button } from '@admin/components/ui/button'
5
6
  import { Card, CardContent } from '@admin/components/ui/card'
@@ -12,7 +13,6 @@ import Image from 'next/image'
12
13
  import Link from 'next/link'
13
14
  import { useRouter } from 'next/navigation'
14
15
  import { parseAsStringLiteral, useQueryState } from 'nuqs'
15
- import * as React from 'react'
16
16
 
17
17
  export function LoginForm({ className, ...props }: React.ComponentProps<'div'>) {
18
18
  const router = useRouter()
@@ -64,18 +64,18 @@ export function LoginForm({ className, ...props }: React.ComponentProps<'div'>)
64
64
  />
65
65
  </div>
66
66
  <form onSubmit={handleSubmit} className="p-6 md:p-20">
67
- <FieldGroup className="pb-12 gap-10">
67
+ <FieldGroup className="gap-10 pb-12">
68
68
  <div className="flex flex-col items-start">
69
69
  <h1 className="text-xl font-medium">Welcome back</h1>
70
70
  <p className="text-balance text-muted-foreground">Login to your account</p>
71
71
  </div>
72
72
  {resetSuccess ? (
73
- <div className="bg-emerald-500/10 text-emerald-700 dark:text-emerald-400 text-sm p-3 rounded-md">
73
+ <div className="rounded-md bg-emerald-500/10 p-3 text-sm text-emerald-700 dark:text-emerald-400">
74
74
  Password reset successfully. Please log in with your new password.
75
75
  </div>
76
76
  ) : null}
77
77
  {error ? (
78
- <div className="bg-destructive/10 text-destructive text-sm p-3 rounded-md">
78
+ <div className="rounded-md bg-destructive/10 p-3 text-sm text-destructive">
79
79
  {error}
80
80
  </div>
81
81
  ) : null}
@@ -1,25 +1,25 @@
1
1
  'use client'
2
2
 
3
+ import * as mediaHooks from '@admin/hooks/use-media'
4
+ import * as React from 'react'
5
+ import type { ContentTypeFilter } from '@admin/components/shared/media/media-filters-bar'
6
+ import type { AdminMedia } from '@admin/types'
3
7
  import { deleteMediaBulk } from '@admin/actions/media'
4
8
  import { UploadDropzone } from '@admin/components/custom/upload-dropzone'
5
9
  import { DeleteDialog } from '@admin/components/shared/delete-dialog'
6
10
  import { EditMediaDialog } from '@admin/components/shared/media/edit-media-dialog'
7
11
  import { MediaEmptyState } from '@admin/components/shared/media/media-empty-state'
8
- import type { ContentTypeFilter } from '@admin/components/shared/media/media-filters-bar'
9
12
  import { MediaFiltersBar } from '@admin/components/shared/media/media-filters-bar'
10
13
  import { MediaGrid } from '@admin/components/shared/media/media-grid'
11
14
  import { MediaGridPagination } from '@admin/components/shared/media/media-grid-pagination'
12
15
  import { MediaUrlImporter } from '@admin/components/shared/media/media-url-importer'
13
16
  import { PageHeader } from '@admin/components/shared/page-header'
14
17
  import { Tabs, TabsList, TabsTrigger } from '@admin/components/ui/tabs'
15
- import * as mediaHooks from '@admin/hooks/use-media'
16
18
  import { useMediaFiltersBar } from '@admin/hooks/use-media-filters-bar'
17
19
  import { useUpload } from '@admin/hooks/use-upload'
18
- import type { AdminMedia } from '@admin/types'
19
20
  import { useMutation, useQueryClient } from '@tanstack/react-query'
20
21
  import { Link, Upload } from 'lucide-react'
21
22
  import { parseAsInteger, parseAsString, useQueryState } from 'nuqs'
22
- import * as React from 'react'
23
23
  import { toast } from 'sonner'
24
24
 
25
25
  const SEARCH_PARSER = parseAsString.withDefault('')
@@ -205,7 +205,7 @@ export function MediaPageContent() {
205
205
  }
206
206
  />
207
207
 
208
- <main className="space-y-3 px-4 pb-4 flex-1">
208
+ <main className="flex-1 space-y-3 px-4 pb-4">
209
209
  <div className="flex w-full flex-col gap-4 pt-px">
210
210
  {activeTab === 'url' ? (
211
211
  <MediaUrlImporter
@@ -219,7 +219,7 @@ export function MediaPageContent() {
219
219
  progress={progress}
220
220
  isUploading={isUploading}
221
221
  multiple
222
- className="h-37 shrink-0 w-full"
222
+ className="h-37 w-full shrink-0"
223
223
  />
224
224
  )}
225
225
  </div>
@@ -237,7 +237,7 @@ export function MediaPageContent() {
237
237
  selectedIds={selected}
238
238
  isSelectMode={isSelectMode}
239
239
  onItemClick={handleItemClick}
240
- className="lg:grid-cols-12 pb-12 pt-px px-px"
240
+ className="px-px pt-px pb-12 lg:grid-cols-12"
241
241
  />
242
242
  {total > DEFAULT_MEDIA_PAGE_SIZE ? (
243
243
  <MediaGridPagination
@@ -1,6 +1,6 @@
1
1
  export function MediaPageSkeleton() {
2
2
  return (
3
- <div className="flex items-center justify-center h-48">
3
+ <div className="flex h-48 items-center justify-center">
4
4
  <div className="text-muted-foreground">Loading Media…</div>
5
5
  </div>
6
6
  )
@@ -9,11 +9,11 @@ export function MinimalAccountShell({
9
9
  children: React.ReactNode
10
10
  }) {
11
11
  return (
12
- <div className="min-h-screen flex flex-col">
12
+ <div className="flex min-h-screen flex-col">
13
13
  <header className="sticky top-0 z-50 flex h-14 items-center justify-between border-b bg-background px-6">
14
14
  <Link
15
15
  href="/admin/profile"
16
- className="text-sm font-medium hover:text-foreground/80 transition-colors"
16
+ className="text-sm font-medium transition-colors hover:text-foreground/80"
17
17
  >
18
18
  {name}
19
19
  </Link>
@@ -1,5 +1,6 @@
1
1
  'use client'
2
2
 
3
+ import * as React from 'react'
3
4
  import {
4
5
  changeOwnPassword,
5
6
  invalidateUsersCache,
@@ -31,7 +32,6 @@ import { Input } from '@admin/components/ui/input'
31
32
  import { standardSchemaResolver } from '@hookform/resolvers/standard-schema'
32
33
  import { LoaderCircle } from 'lucide-react'
33
34
  import { useRouter } from 'next/navigation'
34
- import * as React from 'react'
35
35
  import { useForm } from 'react-hook-form'
36
36
  import { toast } from 'sonner'
37
37
  import { z } from 'zod/v3'
@@ -17,7 +17,7 @@ export default async function ProfilePage() {
17
17
  return (
18
18
  <>
19
19
  {showPageHeader && <PageHeader title="Profile" />}
20
- <main className="container mx-auto max-w-5xl w-full p-4">
20
+ <main className="container mx-auto w-full max-w-5xl p-4">
21
21
  <ProfileForm
22
22
  user={{
23
23
  name: session.user.name,
@@ -1,5 +1,6 @@
1
1
  'use client'
2
2
 
3
+ import * as React from 'react'
3
4
  import { authClient } from '@admin/auth/client'
4
5
  import { Button } from '@admin/components/ui/button'
5
6
  import { Card, CardContent } from '@admin/components/ui/card'
@@ -11,7 +12,6 @@ import Image from 'next/image'
11
12
  import Link from 'next/link'
12
13
  import { useRouter } from 'next/navigation'
13
14
  import { createSerializer, parseAsString, parseAsStringLiteral, useQueryState } from 'nuqs'
14
- import * as React from 'react'
15
15
 
16
16
  const serializeLoginUrl = createSerializer({
17
17
  reset: parseAsStringLiteral(['success'])
@@ -41,7 +41,7 @@ export function ResetPasswordForm({ className, ...props }: React.ComponentProps<
41
41
  />
42
42
  </div>
43
43
  <div className="p-6 md:p-20">
44
- <FieldGroup className="pb-12 gap-10">
44
+ <FieldGroup className="gap-10 pb-12">
45
45
  <div className="flex flex-col items-start">
46
46
  <h1 className="text-xl font-medium">Invalid reset link</h1>
47
47
  <p className="text-balance text-muted-foreground">
@@ -108,13 +108,13 @@ export function ResetPasswordForm({ className, ...props }: React.ComponentProps<
108
108
  />
109
109
  </div>
110
110
  <form onSubmit={handleSubmit} className="p-6 md:p-20">
111
- <FieldGroup className="pb-12 gap-10">
111
+ <FieldGroup className="gap-10 pb-12">
112
112
  <div className="flex flex-col items-start">
113
113
  <h1 className="text-xl font-medium">Reset password</h1>
114
114
  <p className="text-balance text-muted-foreground">Enter your new password below</p>
115
115
  </div>
116
116
  {error ? (
117
- <div className="bg-destructive/10 text-destructive text-sm p-3 rounded-md">
117
+ <div className="rounded-md bg-destructive/10 p-3 text-sm text-destructive">
118
118
  {error}
119
119
  </div>
120
120
  ) : null}
@@ -1,10 +1,10 @@
1
1
  'use client'
2
2
 
3
3
  import type { AuditLogEntry, AuditLogSortField } from '@admin/actions/audit'
4
+ import type { ColumnDef } from '@tanstack/react-table'
4
5
  import { SortIndicator } from '@admin/components/shared/sort-indicator'
5
6
  import { Badge } from '@admin/components/ui/badge'
6
7
  import { Button } from '@admin/components/ui/button'
7
- import type { ColumnDef } from '@tanstack/react-table'
8
8
 
9
9
  export const AUDIT_LOG_SORT_FIELDS = [
10
10
  'createdAt',
@@ -53,7 +53,7 @@ function SortableAuditLogHeader({
53
53
  <Button
54
54
  variant="ghost"
55
55
  onClick={() => column.toggleSorting(column.getIsSorted() === 'asc')}
56
- className="w-full min-w-0 justify-start overflow-hidden px-0! border-none rounded-none bg-transparent! scale-100! group"
56
+ className="group w-full min-w-0 scale-100! justify-start overflow-hidden rounded-none border-none bg-transparent! px-0!"
57
57
  aria-label={`Sort by ${label}, ${sortLabel}`}
58
58
  aria-sort={
59
59
  sortDirection === 'asc' ? 'ascending' : sortDirection === 'desc' ? 'descending' : 'none'
@@ -46,7 +46,7 @@ export function AuditLogDetailDrawer({ auditLog, open, onOpenChange }: AuditLogD
46
46
  </DrawerHeader>
47
47
  <ScrollArea className="min-h-0 flex-1 px-6">
48
48
  {auditLog ? (
49
- <div className="flex flex-col w-full gap-4">
49
+ <div className="flex w-full flex-col gap-4">
50
50
  <Card>
51
51
  <CardHeader>
52
52
  <CardTitle>Event Details</CardTitle>
@@ -7,9 +7,9 @@ interface AuditLogDetailRowProps {
7
7
 
8
8
  export function AuditLogDetailRow({ label, value }: AuditLogDetailRowProps) {
9
9
  return (
10
- <div className="grid grid-cols-[120px_1fr] gap-3 border-b border-border py-2 px-4 last:border-b-0">
10
+ <div className="grid grid-cols-[120px_1fr] gap-3 border-b border-border px-4 py-2 last:border-b-0">
11
11
  <dt className="text-sm font-medium text-muted-foreground">{label}</dt>
12
- <dd className="min-w-0 text-sm text-foreground break-words">{value || 'Unknown'}</dd>
12
+ <dd className="min-w-0 text-sm break-words text-foreground">{value || 'Unknown'}</dd>
13
13
  </div>
14
14
  )
15
15
  }
@@ -1,12 +1,12 @@
1
1
  'use client'
2
2
 
3
+ import * as React from 'react'
3
4
  import type { AuditLogEntry } from '@admin/actions/audit'
4
5
  import { AUDIT_LOG_ACTIONS, AUDIT_LOG_CATEGORIES } from '@admin/actions/audit'
5
6
  import { EntityFiltersBar } from '@admin/components/shared/entity-filters-bar'
6
7
  import { PageHeader } from '@admin/components/shared/page-header'
7
8
  import { useIsFetching } from '@tanstack/react-query'
8
9
  import { parseAsInteger, parseAsString, useQueryState, useQueryStates } from 'nuqs'
9
- import * as React from 'react'
10
10
  import { createAuditLogColumns } from './audit-log-columns'
11
11
  import { AuditLogDetailDrawer } from './audit-log-detail-drawer'
12
12
  import { AuditLogTable } from './audit-log-table'
@@ -114,7 +114,7 @@ export function AuditLogPageContent() {
114
114
  isPending={isSearchFetching}
115
115
  onSearch={handleSearch}
116
116
  />
117
- <main className="space-y-4 px-4 pb-4 flex-1">
117
+ <main className="flex-1 space-y-4 px-4 pb-4">
118
118
  <AuditLogTable
119
119
  columns={columns}
120
120
  search={search}
@@ -1,6 +1,6 @@
1
1
  export function AuditLogPageSkeleton() {
2
2
  return (
3
- <div className="flex items-center justify-center h-48">
3
+ <div className="flex h-48 items-center justify-center">
4
4
  <div className="text-muted-foreground">Loading Audit Logs…</div>
5
5
  </div>
6
6
  )
@@ -1,5 +1,5 @@
1
- import { requireRole, UserRole } from '@admin/auth/middleware'
2
1
  import * as React from 'react'
2
+ import { requireRole, UserRole } from '@admin/auth/middleware'
3
3
  import { AuditLogPageContent } from './audit-log-page-content'
4
4
  import { AuditLogPageSkeleton } from './audit-log-page-skeleton'
5
5
 
@@ -1,6 +1,8 @@
1
1
  'use client'
2
2
 
3
+ import * as React from 'react'
3
4
  import type { AuditLogEntry, AuditLogQuery, AuditLogSortField } from '@admin/actions/audit'
5
+ import type { ColumnDef } from '@tanstack/react-table'
4
6
  import {
5
7
  DataGrid,
6
8
  DataGridBody,
@@ -13,10 +15,9 @@ import { DataTablePagination } from '@admin/components/shared/data-table/data-ta
13
15
  import { useAuditLogs } from '@admin/hooks/use-audit-log'
14
16
  import { useTableUtils } from '@admin/hooks/use-table-utils'
15
17
  import { cn } from '@admin/utils/shared/cn'
16
- import { type ColumnDef, flexRender, getCoreRowModel, useReactTable } from '@tanstack/react-table'
18
+ import { flexRender, getCoreRowModel, useReactTable } from '@tanstack/react-table'
17
19
  import { GripVertical } from 'lucide-react'
18
20
  import { parseAsInteger, parseAsString, useQueryStates } from 'nuqs'
19
- import * as React from 'react'
20
21
  import { AUDIT_LOG_SORT_FIELDS } from './audit-log-columns'
21
22
 
22
23
  interface AuditLogTableProps<TValue> extends React.HTMLAttributes<HTMLDivElement> {
@@ -160,7 +161,7 @@ export function AuditLogTable<TValue>({
160
161
  .join(' ')
161
162
 
162
163
  return (
163
- <div className={cn('flex flex-col gap-6 pt-px pb-2 h-full', className)}>
164
+ <div className={cn('flex h-full flex-col gap-6 pt-px pb-2', className)}>
164
165
  <DataGrid
165
166
  containerClassName="min-h-0 flex-1"
166
167
  containerRef={tableContainerRef}
@@ -197,7 +198,7 @@ export function AuditLogTable<TValue>({
197
198
  <button
198
199
  type="button"
199
200
  aria-label={`Resize ${resizeLabel} column`}
200
- className="group/resize-handle absolute right-0 top-0 z-10 flex h-full w-5 cursor-col-resize touch-none select-none items-center justify-center text-muted-foreground opacity-0 transition-opacity hover:text-foreground focus-visible:text-foreground focus-visible:opacity-100 focus-visible:outline-none group-focus-within/resize-header:opacity-100 data-[column-hovered=true]:opacity-100 data-[resizing=true]:opacity-100"
201
+ className="group/resize-handle absolute top-0 right-0 z-10 flex h-full w-5 cursor-col-resize touch-none items-center justify-center text-muted-foreground opacity-0 transition-opacity select-none group-focus-within/resize-header:opacity-100 hover:text-foreground focus-visible:text-foreground focus-visible:opacity-100 focus-visible:outline-none data-[column-hovered=true]:opacity-100 data-[resizing=true]:opacity-100"
201
202
  data-resize-handle
202
203
  data-column-hovered={
203
204
  hoveredColumnId === header.column.id ? 'true' : 'false'
@@ -1,11 +1,12 @@
1
1
  'use client'
2
2
 
3
+ import * as React from 'react'
4
+ import type { FormSettingsRow } from './forms-settings-columns'
3
5
  import { PageHeader } from '@admin/components/shared/page-header'
4
6
  import { webhookEventSources } from '@admin/data/webhook-events'
5
7
  import { useFormSettingsList } from '@admin/hooks/use-webhooks'
6
- import * as React from 'react'
7
8
  import { FormNotificationsDrawer } from './form-notifications-drawer'
8
- import { createFormSettingsColumns, type FormSettingsRow } from './forms-settings-columns'
9
+ import { createFormSettingsColumns } from './forms-settings-columns'
9
10
  import { FormsSettingsTable } from './forms-settings-table'
10
11
 
11
12
  export function FormsSettingsPageContent() {
@@ -36,7 +37,7 @@ export function FormsSettingsPageContent() {
36
37
  return (
37
38
  <React.Fragment>
38
39
  <PageHeader title="Form Settings" />
39
- <main className="space-y-4 px-4 pb-4 flex-1 pt-4">
40
+ <main className="flex-1 space-y-4 px-4 pt-4 pb-4">
40
41
  <FormsSettingsTable
41
42
  columns={columns}
42
43
  rows={rows}
@@ -1,6 +1,6 @@
1
1
  export function FormsSettingsPageSkeleton() {
2
2
  return (
3
- <div className="flex items-center justify-center h-48">
3
+ <div className="flex h-48 items-center justify-center">
4
4
  <div className="text-muted-foreground">Loading Form Settings…</div>
5
5
  </div>
6
6
  )
@@ -1,5 +1,5 @@
1
- import { requireRole, UserRole } from '@admin/auth/middleware'
2
1
  import * as React from 'react'
2
+ import { requireRole, UserRole } from '@admin/auth/middleware'
3
3
  import { FormsSettingsPageContent } from './forms-settings-page-content'
4
4
  import { FormsSettingsPageSkeleton } from './forms-settings-page-skeleton'
5
5
 
@@ -1,5 +1,8 @@
1
1
  'use client'
2
2
 
3
+ import type * as React from 'react'
4
+ import type { FormSettingsRow } from './forms-settings-columns'
5
+ import type { ColumnDef } from '@tanstack/react-table'
3
6
  import {
4
7
  DataGrid,
5
8
  DataGridBody,
@@ -9,9 +12,7 @@ import {
9
12
  DataGridRow
10
13
  } from '@admin/components/shared/data-table/data-grid'
11
14
  import { cn } from '@admin/utils/shared/cn'
12
- import { type ColumnDef, flexRender, getCoreRowModel, useReactTable } from '@tanstack/react-table'
13
- import type * as React from 'react'
14
- import type { FormSettingsRow } from './forms-settings-columns'
15
+ import { flexRender, getCoreRowModel, useReactTable } from '@tanstack/react-table'
15
16
 
16
17
  interface FormsSettingsTableProps extends React.HTMLAttributes<HTMLDivElement> {
17
18
  columns: ColumnDef<FormSettingsRow>[]
@@ -32,7 +33,7 @@ export function FormsSettingsTable({
32
33
  })
33
34
 
34
35
  return (
35
- <div className={cn('flex flex-col gap-6 pt-px pb-2 h-full', className)}>
36
+ <div className={cn('flex h-full flex-col gap-6 pt-px pb-2', className)}>
36
37
  <DataGrid
37
38
  containerClassName="min-h-0 flex-1"
38
39
  gridTemplateColumns="minmax(200px, 1fr) minmax(240px, 2fr)"
@@ -1,5 +1,6 @@
1
1
  'use client'
2
2
 
3
+ import * as React from 'react'
3
4
  import type { WebhookEndpointListItem } from '@admin/actions/webhooks'
4
5
  import {
5
6
  createWebhook,
@@ -34,7 +35,6 @@ import { useWebhookSubscriptions } from '@admin/hooks/use-webhooks'
34
35
  import { standardSchemaResolver } from '@hookform/resolvers/standard-schema'
35
36
  import { useMutation, useQueryClient } from '@tanstack/react-query'
36
37
  import { LoaderCircle } from 'lucide-react'
37
- import * as React from 'react'
38
38
  import { useForm } from 'react-hook-form'
39
39
  import { toast } from 'sonner'
40
40
  import { z } from 'zod/v3'
@@ -242,7 +242,7 @@ export function WebhookEndpointDialog({ webhook, open, onOpenChange }: WebhookEn
242
242
  />
243
243
  {isEdit && (
244
244
  <div className="space-y-2 rounded-md border border-border p-3">
245
- <p className="text-sm font-medium leading-none">Signing secret</p>
245
+ <p className="text-sm leading-none font-medium">Signing secret</p>
246
246
  <div className="flex items-center gap-2">
247
247
  <span className="min-w-0 flex-1 truncate font-mono text-xs">
248
248
  {secret ?? 'whsec_••••••••••••••••'}
@@ -283,7 +283,7 @@ export function WebhookEndpointDialog({ webhook, open, onOpenChange }: WebhookEn
283
283
  <React.Fragment>
284
284
  {formSources.length > 0 && (
285
285
  <fieldset className="space-y-2 rounded-md border border-border p-3">
286
- <legend className="px-1 text-xs font-medium uppercase tracking-wide text-muted-foreground">
286
+ <legend className="px-1 text-xs font-medium tracking-wide text-muted-foreground uppercase">
287
287
  Events · Forms
288
288
  </legend>
289
289
  {formSources.flatMap((source) =>
@@ -308,7 +308,7 @@ export function WebhookEndpointDialog({ webhook, open, onOpenChange }: WebhookEn
308
308
  )}
309
309
  {contentSources.length > 0 && (
310
310
  <fieldset className="space-y-2 rounded-md border border-border p-3">
311
- <legend className="px-1 text-xs font-medium uppercase tracking-wide text-muted-foreground">
311
+ <legend className="px-1 text-xs font-medium tracking-wide text-muted-foreground uppercase">
312
312
  Events · Entities
313
313
  </legend>
314
314
  {contentSources.flatMap((source) =>
@@ -1,10 +1,10 @@
1
1
  'use client'
2
2
 
3
3
  import type { WebhookEndpointListItem } from '@admin/actions/webhooks'
4
+ import type { ColumnDef } from '@tanstack/react-table'
4
5
  import { SortIndicator } from '@admin/components/shared/sort-indicator'
5
6
  import { Badge } from '@admin/components/ui/badge'
6
7
  import { Button } from '@admin/components/ui/button'
7
- import type { ColumnDef } from '@tanstack/react-table'
8
8
  import { formatDistanceToNow } from 'date-fns'
9
9
  import { WebhookActions } from './webhook-actions'
10
10
  import { WebhookEnabledSwitch } from './webhook-enabled-switch'
@@ -35,7 +35,7 @@ export function createWebhooksColumns({
35
35
  <Button
36
36
  variant="ghost"
37
37
  onClick={() => column.toggleSorting(column.getIsSorted() === 'asc')}
38
- className="w-full min-w-0 justify-start overflow-hidden px-0! border-none rounded-none bg-transparent! scale-100! group"
38
+ className="group w-full min-w-0 scale-100! justify-start overflow-hidden rounded-none border-none bg-transparent! px-0!"
39
39
  aria-label={`Sort by Name, ${sortLabel}`}
40
40
  aria-sort={
41
41
  sortDirection === 'asc'
@@ -69,7 +69,7 @@ export function createWebhooksColumns({
69
69
  <Button
70
70
  variant="ghost"
71
71
  onClick={() => column.toggleSorting(column.getIsSorted() === 'asc')}
72
- className="w-full min-w-0 justify-start overflow-hidden px-0! border-none rounded-none bg-transparent! scale-100! group"
72
+ className="group w-full min-w-0 scale-100! justify-start overflow-hidden rounded-none border-none bg-transparent! px-0!"
73
73
  aria-label={`Sort by URL, ${sortLabel}`}
74
74
  aria-sort={
75
75
  sortDirection === 'asc'
@@ -104,7 +104,7 @@ export function createWebhooksColumns({
104
104
  <Button
105
105
  variant="ghost"
106
106
  onClick={() => column.toggleSorting(column.getIsSorted() === 'asc')}
107
- className="w-full min-w-0 justify-start overflow-hidden px-0! border-none rounded-none bg-transparent! scale-100! group"
107
+ className="group w-full min-w-0 scale-100! justify-start overflow-hidden rounded-none border-none bg-transparent! px-0!"
108
108
  aria-label={`Sort by Enabled, ${sortLabel}`}
109
109
  aria-sort={
110
110
  sortDirection === 'asc'
@@ -137,7 +137,7 @@ export function createWebhooksColumns({
137
137
  <Button
138
138
  variant="ghost"
139
139
  onClick={() => column.toggleSorting(column.getIsSorted() === 'asc')}
140
- className="w-full min-w-0 justify-start overflow-hidden px-0! border-none rounded-none bg-transparent! scale-100! group"
140
+ className="group w-full min-w-0 scale-100! justify-start overflow-hidden rounded-none border-none bg-transparent! px-0!"
141
141
  aria-label={`Sort by Events, ${sortLabel}`}
142
142
  aria-sort={
143
143
  sortDirection === 'asc'
@@ -170,7 +170,7 @@ export function createWebhooksColumns({
170
170
  <Button
171
171
  variant="ghost"
172
172
  onClick={() => column.toggleSorting(column.getIsSorted() === 'asc')}
173
- className="w-full min-w-0 justify-start overflow-hidden px-0! border-none rounded-none bg-transparent! scale-100! group"
173
+ className="group w-full min-w-0 scale-100! justify-start overflow-hidden rounded-none border-none bg-transparent! px-0!"
174
174
  aria-label={`Sort by Last delivery, ${sortLabel}`}
175
175
  aria-sort={
176
176
  sortDirection === 'asc'
@@ -217,7 +217,7 @@ export function createWebhooksColumns({
217
217
  <Button
218
218
  variant="ghost"
219
219
  onClick={() => column.toggleSorting(column.getIsSorted() === 'asc')}
220
- className="w-full min-w-0 justify-start overflow-hidden px-0! border-none rounded-none bg-transparent! scale-100! group"
220
+ className="group w-full min-w-0 scale-100! justify-start overflow-hidden rounded-none border-none bg-transparent! px-0!"
221
221
  aria-label={`Sort by Created, ${sortLabel}`}
222
222
  aria-sort={
223
223
  sortDirection === 'asc'
@@ -1,10 +1,10 @@
1
1
  'use client'
2
2
 
3
3
  import type { WebhookDeliveryEntry } from '@admin/actions/webhooks'
4
+ import type { ColumnDef } from '@tanstack/react-table'
4
5
  import { SortIndicator } from '@admin/components/shared/sort-indicator'
5
6
  import { Badge } from '@admin/components/ui/badge'
6
7
  import { Button } from '@admin/components/ui/button'
7
- import type { ColumnDef } from '@tanstack/react-table'
8
8
  import { formatDistanceToNow } from 'date-fns'
9
9
 
10
10
  export const logsColumns: ColumnDef<WebhookDeliveryEntry>[] = [
@@ -24,7 +24,7 @@ export const logsColumns: ColumnDef<WebhookDeliveryEntry>[] = [
24
24
  <Button
25
25
  variant="ghost"
26
26
  onClick={() => column.toggleSorting(column.getIsSorted() === 'asc')}
27
- className="w-full min-w-0 justify-start overflow-hidden px-0! border-none rounded-none bg-transparent! scale-100! group"
27
+ className="group w-full min-w-0 scale-100! justify-start overflow-hidden rounded-none border-none bg-transparent! px-0!"
28
28
  aria-label={`Sort by Status, ${sortLabel}`}
29
29
  aria-sort={
30
30
  sortDirection === 'asc' ? 'ascending' : sortDirection === 'desc' ? 'descending' : 'none'
@@ -60,7 +60,7 @@ export const logsColumns: ColumnDef<WebhookDeliveryEntry>[] = [
60
60
  <Button
61
61
  variant="ghost"
62
62
  onClick={() => column.toggleSorting(column.getIsSorted() === 'asc')}
63
- className="w-full min-w-0 justify-start overflow-hidden px-0! border-none rounded-none bg-transparent! scale-100! group"
63
+ className="group w-full min-w-0 scale-100! justify-start overflow-hidden rounded-none border-none bg-transparent! px-0!"
64
64
  aria-label={`Sort by Event, ${sortLabel}`}
65
65
  aria-sort={
66
66
  sortDirection === 'asc' ? 'ascending' : sortDirection === 'desc' ? 'descending' : 'none'
@@ -89,7 +89,7 @@ export const logsColumns: ColumnDef<WebhookDeliveryEntry>[] = [
89
89
  <Button
90
90
  variant="ghost"
91
91
  onClick={() => column.toggleSorting(column.getIsSorted() === 'asc')}
92
- className="w-full min-w-0 justify-start overflow-hidden px-0! border-none rounded-none bg-transparent! scale-100! group"
92
+ className="group w-full min-w-0 scale-100! justify-start overflow-hidden rounded-none border-none bg-transparent! px-0!"
93
93
  aria-label={`Sort by Endpoint, ${sortLabel}`}
94
94
  aria-sort={
95
95
  sortDirection === 'asc' ? 'ascending' : sortDirection === 'desc' ? 'descending' : 'none'
@@ -118,7 +118,7 @@ export const logsColumns: ColumnDef<WebhookDeliveryEntry>[] = [
118
118
  <Button
119
119
  variant="ghost"
120
120
  onClick={() => column.toggleSorting(column.getIsSorted() === 'asc')}
121
- className="w-full min-w-0 justify-start overflow-hidden px-0! border-none rounded-none bg-transparent! scale-100! group"
121
+ className="group w-full min-w-0 scale-100! justify-start overflow-hidden rounded-none border-none bg-transparent! px-0!"
122
122
  aria-label={`Sort by Attempt, ${sortLabel}`}
123
123
  aria-sort={
124
124
  sortDirection === 'asc' ? 'ascending' : sortDirection === 'desc' ? 'descending' : 'none'
@@ -147,7 +147,7 @@ export const logsColumns: ColumnDef<WebhookDeliveryEntry>[] = [
147
147
  <Button
148
148
  variant="ghost"
149
149
  onClick={() => column.toggleSorting(column.getIsSorted() === 'asc')}
150
- className="w-full min-w-0 justify-start overflow-hidden px-0! border-none rounded-none bg-transparent! scale-100! group"
150
+ className="group w-full min-w-0 scale-100! justify-start overflow-hidden rounded-none border-none bg-transparent! px-0!"
151
151
  aria-label={`Sort by Duration, ${sortLabel}`}
152
152
  aria-sort={
153
153
  sortDirection === 'asc' ? 'ascending' : sortDirection === 'desc' ? 'descending' : 'none'
@@ -159,7 +159,7 @@ export const logsColumns: ColumnDef<WebhookDeliveryEntry>[] = [
159
159
  )
160
160
  },
161
161
  cell: ({ row }) => (
162
- <span className="tabular-nums text-muted-foreground">{row.original.durationMs} ms</span>
162
+ <span className="text-muted-foreground tabular-nums">{row.original.durationMs} ms</span>
163
163
  )
164
164
  },
165
165
  {
@@ -178,7 +178,7 @@ export const logsColumns: ColumnDef<WebhookDeliveryEntry>[] = [
178
178
  <Button
179
179
  variant="ghost"
180
180
  onClick={() => column.toggleSorting(column.getIsSorted() === 'asc')}
181
- className="w-full min-w-0 justify-start overflow-hidden px-0! border-none rounded-none bg-transparent! scale-100! group"
181
+ className="group w-full min-w-0 scale-100! justify-start overflow-hidden rounded-none border-none bg-transparent! px-0!"
182
182
  aria-label={`Sort by When, ${sortLabel}`}
183
183
  aria-sort={
184
184
  sortDirection === 'asc' ? 'ascending' : sortDirection === 'desc' ? 'descending' : 'none'
@@ -1,11 +1,11 @@
1
1
  'use client'
2
2
 
3
+ import * as React from 'react'
3
4
  import { EntityFiltersBar } from '@admin/components/shared/entity-filters-bar'
4
5
  import { PageHeader } from '@admin/components/shared/page-header'
5
6
  import { useWebhookOptions } from '@admin/hooks/use-webhooks'
6
7
  import { useIsFetching } from '@tanstack/react-query'
7
8
  import { parseAsInteger, parseAsString, useQueryState, useQueryStates } from 'nuqs'
8
- import * as React from 'react'
9
9
  import { logsColumns } from './webhooks-logs-columns'
10
10
  import { WebhooksLogsTable } from './webhooks-logs-table'
11
11
 
@@ -102,7 +102,7 @@ export function WebhooksLogsPageContent() {
102
102
  isPending={isSearchFetching}
103
103
  onSearch={handleSearch}
104
104
  />
105
- <main className="space-y-4 px-4 pb-4 flex-1">
105
+ <main className="flex-1 space-y-4 px-4 pb-4">
106
106
  <WebhooksLogsTable
107
107
  columns={logsColumns}
108
108
  search={search}
@@ -1,5 +1,5 @@
1
- import { requireRole, UserRole } from '@admin/auth/middleware'
2
1
  import * as React from 'react'
2
+ import { requireRole, UserRole } from '@admin/auth/middleware'
3
3
  import { WebhooksLogsPageContent } from '../webhooks-logs-page-content'
4
4
  import { WebhooksPageSkeleton } from '../webhooks-page-skeleton'
5
5
 
@@ -1,6 +1,7 @@
1
1
  'use client'
2
2
 
3
3
  import type { WebhookDeliveryEntry } from '@admin/actions/webhooks'
4
+ import type { ColumnDef } from '@tanstack/react-table'
4
5
  import {
5
6
  DataGrid,
6
7
  DataGridBody,
@@ -13,7 +14,7 @@ import { DataTablePagination } from '@admin/components/shared/data-table/data-ta
13
14
  import { useTableUtils } from '@admin/hooks/use-table-utils'
14
15
  import { useWebhookDeliveries } from '@admin/hooks/use-webhooks'
15
16
  import { cn } from '@admin/utils/shared/cn'
16
- import { type ColumnDef, flexRender, getCoreRowModel, useReactTable } from '@tanstack/react-table'
17
+ import { flexRender, getCoreRowModel, useReactTable } from '@tanstack/react-table'
17
18
  import { GripVertical } from 'lucide-react'
18
19
  import { parseAsInteger, parseAsString, useQueryStates } from 'nuqs'
19
20
 
@@ -127,7 +128,7 @@ export function WebhooksLogsTable<TValue>({
127
128
  .join(' ')
128
129
 
129
130
  return (
130
- <div className={cn('flex flex-col gap-6 pt-px pb-2 h-full', className)}>
131
+ <div className={cn('flex h-full flex-col gap-6 pt-px pb-2', className)}>
131
132
  <DataGrid
132
133
  containerClassName="min-h-0 flex-1"
133
134
  containerRef={tableContainerRef}
@@ -164,7 +165,7 @@ export function WebhooksLogsTable<TValue>({
164
165
  <button
165
166
  type="button"
166
167
  aria-label={`Resize ${resizeLabel} column`}
167
- className="group/resize-handle absolute right-0 top-0 z-10 flex h-full w-5 cursor-col-resize touch-none select-none items-center justify-center text-muted-foreground opacity-0 transition-opacity hover:text-foreground focus-visible:text-foreground focus-visible:opacity-100 focus-visible:outline-none group-focus-within/resize-header:opacity-100 data-[column-hovered=true]:opacity-100 data-[resizing=true]:opacity-100"
168
+ className="group/resize-handle absolute top-0 right-0 z-10 flex h-full w-5 cursor-col-resize touch-none items-center justify-center text-muted-foreground opacity-0 transition-opacity select-none group-focus-within/resize-header:opacity-100 hover:text-foreground focus-visible:text-foreground focus-visible:opacity-100 focus-visible:outline-none data-[column-hovered=true]:opacity-100 data-[resizing=true]:opacity-100"
168
169
  data-resize-handle
169
170
  data-column-hovered={
170
171
  hoveredColumnId === header.column.id ? 'true' : 'false'