betterstart-cli 0.0.119 → 0.0.121

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 (128) hide show
  1. package/dist/assets/adapters/next/integrations/resend/actions/render-password-reset-email.ts +5 -5
  2. package/dist/assets/adapters/next/templates/init/admin-globals.css +35 -23
  3. package/dist/assets/adapters/next/templates/init/components/layouts/admin-sidebar-branding-skeleton.tsx +1 -1
  4. package/dist/assets/adapters/next/templates/init/components/layouts/admin-sidebar-user-menu-skeleton.tsx +1 -1
  5. package/dist/assets/adapters/next/templates/init/components/layouts/admin-sidebar-user-menu.tsx +3 -3
  6. package/dist/assets/adapters/next/templates/init/components/layouts/content-skeleton.tsx +13 -13
  7. package/dist/assets/adapters/next/templates/init/components/layouts/sidebar-branding.tsx +2 -2
  8. package/dist/assets/adapters/next/templates/init/components/shared/data-table/data-grid-body.tsx +1 -1
  9. package/dist/assets/adapters/next/templates/init/components/shared/data-table/data-grid-header.tsx +1 -1
  10. package/dist/assets/adapters/next/templates/init/components/shared/data-table/data-grid.tsx +1 -1
  11. package/dist/assets/adapters/next/templates/init/components/shared/data-table/data-table-pagination.tsx +2 -2
  12. package/dist/assets/adapters/next/templates/init/components/shared/dev-mode/copyable-code-block.tsx +3 -7
  13. package/dist/assets/adapters/next/templates/init/components/shared/dev-mode/lifecycle-hooks-tab.tsx +2 -2
  14. package/dist/assets/adapters/next/templates/init/components/shared/dev-mode/plain-code-fallback.tsx +1 -1
  15. package/dist/assets/adapters/next/templates/init/components/shared/dev-mode/snippets-tab.tsx +1 -1
  16. package/dist/assets/adapters/next/templates/init/components/shared/dev-mode-integrate.tsx +2 -2
  17. package/dist/assets/adapters/next/templates/init/components/shared/entity-metadata.tsx +1 -1
  18. package/dist/assets/adapters/next/templates/init/components/shared/entity-versions/entity-version-item.tsx +2 -2
  19. package/dist/assets/adapters/next/templates/init/components/shared/entity-versions/entity-versions-current-row.tsx +2 -2
  20. package/dist/assets/adapters/next/templates/init/components/shared/entity-versions/entity-versions-drawer.tsx +2 -2
  21. package/dist/assets/adapters/next/templates/init/components/shared/media/edit-media-dialog-content.tsx +2 -2
  22. package/dist/assets/adapters/next/templates/init/components/shared/media/media-delete-drawer.tsx +5 -5
  23. package/dist/assets/adapters/next/templates/init/components/shared/media/media-grid-item.tsx +3 -3
  24. package/dist/assets/adapters/next/templates/init/components/shared/media/media-grid-pagination.tsx +2 -2
  25. package/dist/assets/adapters/next/templates/init/components/shared/media/media-preview.tsx +1 -1
  26. package/dist/assets/adapters/next/templates/init/components/shared/media/media-url-importer.tsx +1 -1
  27. package/dist/assets/adapters/next/templates/init/components/shared/page-header.tsx +1 -1
  28. package/dist/assets/adapters/next/templates/init/components/shared/sort-order-drag-overlay-item.tsx +1 -1
  29. package/dist/assets/adapters/next/templates/init/components/shared/sort-order-item.tsx +1 -1
  30. package/dist/assets/adapters/next/templates/init/pages/dashboard-page.tsx +3 -3
  31. package/dist/assets/adapters/next/templates/init/pages/forgot-password-form.tsx +2 -2
  32. package/dist/assets/adapters/next/templates/init/pages/forgot-password-page-skeleton.tsx +8 -8
  33. package/dist/assets/adapters/next/templates/init/pages/login-form.tsx +2 -2
  34. package/dist/assets/adapters/next/templates/init/pages/login-page-skeleton.tsx +8 -8
  35. package/dist/assets/adapters/next/templates/init/pages/minimal-account-shell.tsx +1 -1
  36. package/dist/assets/adapters/next/templates/init/pages/profile/profile-form.tsx +2 -2
  37. package/dist/assets/adapters/next/templates/init/pages/reset-password-form.tsx +3 -6
  38. package/dist/assets/adapters/next/templates/init/pages/reset-password-page-skeleton.tsx +8 -8
  39. package/dist/assets/adapters/next/templates/init/pages/settings/audit-log/audit-log-columns.tsx +4 -4
  40. package/dist/assets/adapters/next/templates/init/pages/settings/audit-log/audit-log-detail-row.tsx +2 -2
  41. package/dist/assets/adapters/next/templates/init/pages/settings/forms/forms-settings-columns.tsx +1 -1
  42. package/dist/assets/adapters/next/templates/init/pages/settings/webhooks/delete-webhook-dialog.tsx +1 -1
  43. package/dist/assets/adapters/next/templates/init/pages/settings/webhooks/webhook-endpoint-dialog.tsx +12 -16
  44. package/dist/assets/adapters/next/templates/init/pages/settings/webhooks/webhooks-columns.tsx +9 -9
  45. package/dist/assets/adapters/next/templates/init/pages/settings/webhooks/webhooks-logs-columns.tsx +7 -7
  46. package/dist/assets/adapters/next/templates/init/pages/users/columns.tsx +4 -4
  47. package/dist/assets/adapters/next/templates/init/utils/editor/inline-math-node-view.ts +1 -1
  48. package/dist/assets/adapters/next/templates/init/utils/editor/raw-content-block-node-view.ts +1 -1
  49. package/dist/assets/adapters/next/templates/init/utils/email/render-form-submission-rows.ts +1 -1
  50. package/dist/assets/adapters/next/templates/init/utils/email/render-notification-email.ts +3 -3
  51. package/dist/assets/adapters/next/templates/init/utils/email/render-thank-you-email.ts +3 -3
  52. package/dist/assets/shared-assets/react-admin/custom/content-editor/index.tsx +1 -1
  53. package/dist/assets/shared-assets/react-admin/custom/content-editor/math-bubble-menu.tsx +1 -1
  54. package/dist/assets/shared-assets/react-admin/custom/content-editor/math-editor-controls.tsx +1 -1
  55. package/dist/assets/shared-assets/react-admin/custom/content-editor/remove-table-part-icon.tsx +1 -1
  56. package/dist/assets/shared-assets/react-admin/custom/content-editor/selection-bubble-menu.tsx +2 -2
  57. package/dist/assets/shared-assets/react-admin/custom/content-editor/slash-command-menu.tsx +2 -4
  58. package/dist/assets/shared-assets/react-admin/custom/content-editor/source-mode.tsx +2 -2
  59. package/dist/assets/shared-assets/react-admin/custom/content-editor/table-add-controls.tsx +4 -4
  60. package/dist/assets/shared-assets/react-admin/custom/content-editor/table-bubble-menu.tsx +1 -1
  61. package/dist/assets/shared-assets/react-admin/custom/content-editor/tiptap-node/removable-image-node/removable-image-node.tsx +3 -3
  62. package/dist/assets/shared-assets/react-admin/custom/content-editor/tiptap-ui/color-highlight-button/highlight-swatch.tsx +2 -2
  63. package/dist/assets/shared-assets/react-admin/custom/content-editor/tiptap-ui/color-highlight-popover/color-highlight-popover-content.tsx +1 -1
  64. package/dist/assets/shared-assets/react-admin/custom/content-editor/tiptap-ui/color-highlight-popover/color-highlight-popover.tsx +1 -1
  65. package/dist/assets/shared-assets/react-admin/custom/content-editor/tiptap-ui/color-highlight-popover/highlight-color-button.tsx +2 -2
  66. package/dist/assets/shared-assets/react-admin/custom/content-editor/tiptap-ui/color-highlight-popover/source-color-highlight-popover.tsx +1 -1
  67. package/dist/assets/shared-assets/react-admin/custom/date-range-picker.tsx +9 -10
  68. package/dist/assets/shared-assets/react-admin/custom/dynamic-list-field.tsx +2 -2
  69. package/dist/assets/shared-assets/react-admin/custom/gallery-field.tsx +4 -4
  70. package/dist/assets/shared-assets/react-admin/custom/icon-picker.tsx +2 -3
  71. package/dist/assets/shared-assets/react-admin/custom/icons-column-skeleton.tsx +2 -2
  72. package/dist/assets/shared-assets/react-admin/custom/media-field.tsx +3 -3
  73. package/dist/assets/shared-assets/react-admin/custom/nested-object-list-field.tsx +1 -1
  74. package/dist/assets/shared-assets/react-admin/custom/placeholder-card.tsx +2 -2
  75. package/dist/assets/shared-assets/react-admin/custom/placeholder.tsx +3 -3
  76. package/dist/assets/shared-assets/react-admin/custom/sortable-gallery-item.tsx +1 -1
  77. package/dist/assets/shared-assets/react-admin/custom/upload-dropzone.tsx +3 -5
  78. package/dist/assets/shared-assets/react-admin/ui/accordion.tsx +3 -3
  79. package/dist/assets/shared-assets/react-admin/ui/alert-dialog.tsx +4 -4
  80. package/dist/assets/shared-assets/react-admin/ui/alert.tsx +2 -2
  81. package/dist/assets/shared-assets/react-admin/ui/avatar.tsx +5 -5
  82. package/dist/assets/shared-assets/react-admin/ui/badge.tsx +1 -1
  83. package/dist/assets/shared-assets/react-admin/ui/breadcrumb.tsx +1 -1
  84. package/dist/assets/shared-assets/react-admin/ui/button-group.tsx +4 -4
  85. package/dist/assets/shared-assets/react-admin/ui/button.tsx +2 -2
  86. package/dist/assets/shared-assets/react-admin/ui/calendar.tsx +15 -21
  87. package/dist/assets/shared-assets/react-admin/ui/card.tsx +5 -5
  88. package/dist/assets/shared-assets/react-admin/ui/carousel.tsx +2 -2
  89. package/dist/assets/shared-assets/react-admin/ui/chart.tsx +4 -4
  90. package/dist/assets/shared-assets/react-admin/ui/checkbox.tsx +1 -1
  91. package/dist/assets/shared-assets/react-admin/ui/combobox.tsx +6 -6
  92. package/dist/assets/shared-assets/react-admin/ui/context-menu.tsx +7 -7
  93. package/dist/assets/shared-assets/react-admin/ui/dialog.tsx +3 -3
  94. package/dist/assets/shared-assets/react-admin/ui/drawer.tsx +5 -5
  95. package/dist/assets/shared-assets/react-admin/ui/dropdown-menu.tsx +8 -8
  96. package/dist/assets/shared-assets/react-admin/ui/empty.tsx +5 -5
  97. package/dist/assets/shared-assets/react-admin/ui/field.tsx +6 -12
  98. package/dist/assets/shared-assets/react-admin/ui/form.tsx +2 -2
  99. package/dist/assets/shared-assets/react-admin/ui/hover-card.tsx +1 -1
  100. package/dist/assets/shared-assets/react-admin/ui/input-group.tsx +6 -6
  101. package/dist/assets/shared-assets/react-admin/ui/input-otp.tsx +2 -2
  102. package/dist/assets/shared-assets/react-admin/ui/input.tsx +1 -1
  103. package/dist/assets/shared-assets/react-admin/ui/item.tsx +4 -4
  104. package/dist/assets/shared-assets/react-admin/ui/kbd.tsx +1 -1
  105. package/dist/assets/shared-assets/react-admin/ui/label.tsx +1 -1
  106. package/dist/assets/shared-assets/react-admin/ui/menubar.tsx +10 -10
  107. package/dist/assets/shared-assets/react-admin/ui/native-select.tsx +1 -1
  108. package/dist/assets/shared-assets/react-admin/ui/navigation-menu.tsx +5 -5
  109. package/dist/assets/shared-assets/react-admin/ui/popover.tsx +3 -7
  110. package/dist/assets/shared-assets/react-admin/ui/progress.tsx +3 -3
  111. package/dist/assets/shared-assets/react-admin/ui/radio-group.tsx +2 -2
  112. package/dist/assets/shared-assets/react-admin/ui/resizable.tsx +1 -1
  113. package/dist/assets/shared-assets/react-admin/ui/scroll-area.tsx +2 -2
  114. package/dist/assets/shared-assets/react-admin/ui/select.tsx +4 -4
  115. package/dist/assets/shared-assets/react-admin/ui/sheet.tsx +3 -3
  116. package/dist/assets/shared-assets/react-admin/ui/sidebar.tsx +16 -16
  117. package/dist/assets/shared-assets/react-admin/ui/skeleton.tsx +1 -1
  118. package/dist/assets/shared-assets/react-admin/ui/slider.tsx +2 -2
  119. package/dist/assets/shared-assets/react-admin/ui/switch.tsx +2 -2
  120. package/dist/assets/shared-assets/react-admin/ui/table.tsx +2 -6
  121. package/dist/assets/shared-assets/react-admin/ui/tabs.tsx +3 -3
  122. package/dist/assets/shared-assets/react-admin/ui/textarea.tsx +1 -1
  123. package/dist/assets/shared-assets/react-admin/ui/toggle-group.tsx +2 -2
  124. package/dist/assets/shared-assets/react-admin/ui/toggle.tsx +1 -1
  125. package/dist/assets/shared-assets/react-admin/ui/tooltip.tsx +2 -2
  126. package/dist/cli.js +107 -79
  127. package/dist/cli.js.map +1 -1
  128. package/package.json +1 -1
@@ -83,7 +83,7 @@ export function ContentEditor({
83
83
  toolbarEnd={
84
84
  <ModeToggleButton isSourceMode={isSourceMode} onClick={handleModeChange} />
85
85
  }
86
- className="max-h-none min-h-0 flex-1 resize-none rounded-none border-0"
86
+ className="max-h-none min-h-0 flex-1 resize-none border-0"
87
87
  />
88
88
  ) : (
89
89
  <>
@@ -61,7 +61,7 @@ export function MathBubbleMenu({ editor }: { editor: Editor }) {
61
61
  role="toolbar"
62
62
  aria-label="Math formatting toolbar"
63
63
  className={cn(
64
- 'flex items-center gap-1 overflow-x-auto rounded-sm border border-border bg-popover p-0 text-popover-foreground shadow-menu [scrollbar-width:none] [&::-webkit-scrollbar]:hidden',
64
+ 'flex items-center gap-1 overflow-x-auto rounded border border-border bg-popover p-0 text-popover-foreground shadow-menu [scrollbar-width:none] [&::-webkit-scrollbar]:hidden',
65
65
  'relative z-50'
66
66
  )}
67
67
  >
@@ -70,7 +70,7 @@ export function MathEditorControls({
70
70
  onKeyDown={handleKeyDown}
71
71
  placeholder="Paste LaTeX..."
72
72
  disabled={disabled}
73
- className="min-h-24 resize-y rounded-md text-sm"
73
+ className="min-h-24 resize-y rounded"
74
74
  />
75
75
 
76
76
  <div className="flex flex-wrap items-center gap-1">
@@ -11,7 +11,7 @@ export function RemoveTablePartIcon({
11
11
  return (
12
12
  <span className="tiptap-button-icon relative inline-flex size-4 items-center justify-center">
13
13
  <Icon className="size-4" />
14
- <MinusIcon className="absolute -right-1 -bottom-0.5 size-3 rounded-sm border border-border bg-card stroke-3" />
14
+ <MinusIcon className="absolute -right-1 -bottom-0.5 size-3 rounded border border-border bg-card stroke-3" />
15
15
  </span>
16
16
  )
17
17
  }
@@ -72,7 +72,7 @@ export function SelectionBubbleMenu({ editor }: { editor: Editor }) {
72
72
  role="toolbar"
73
73
  aria-label="Link formatting toolbar"
74
74
  className={cn(
75
- 'flex items-center gap-1 overflow-x-auto rounded-sm border border-border bg-popover p-4 text-foreground shadow-2xl [scrollbar-width:none] [&::-webkit-scrollbar]:hidden',
75
+ 'flex items-center gap-1 overflow-x-auto rounded border border-border bg-popover p-4 text-foreground shadow-2xl [scrollbar-width:none] [&::-webkit-scrollbar]:hidden',
76
76
  'relative z-50'
77
77
  )}
78
78
  >
@@ -101,7 +101,7 @@ export function SelectionBubbleMenu({ editor }: { editor: Editor }) {
101
101
  aria-label="Selection formatting toolbar"
102
102
  onPointerDownCapture={handleSelectionMenuPointerDown}
103
103
  className={cn(
104
- 'flex items-center gap-1 overflow-x-auto rounded-sm border border-border bg-popover p-1 text-popover-foreground shadow-menu [scrollbar-width:none] [&::-webkit-scrollbar]:hidden',
104
+ 'flex items-center gap-1 overflow-x-auto rounded border border-border bg-popover p-1 text-popover-foreground shadow-menu [scrollbar-width:none] [&::-webkit-scrollbar]:hidden',
105
105
  'relative z-50'
106
106
  )}
107
107
  >
@@ -174,14 +174,12 @@ export function SlashCommandMenu({
174
174
  }
175
175
  )}
176
176
  >
177
- <span className="flex size-8 shrink-0 items-center justify-center rounded-sm border border-border bg-card shadow-input">
177
+ <span className="flex size-8 shrink-0 items-center justify-center rounded border border-border bg-card shadow-input">
178
178
  <Icon />
179
179
  </span>
180
180
  <span className="flex w-full min-w-0 flex-col space-y-1">
181
181
  <span className="leading-none font-medium">{command.title}</span>
182
- <span className="truncate text-xs text-muted-foreground">
183
- {command.description}
184
- </span>
182
+ <span className="truncate text-muted-foreground">{command.description}</span>
185
183
  </span>
186
184
  </ComboboxItem>
187
185
  )
@@ -120,7 +120,7 @@ export function SourceMode({
120
120
  return (
121
121
  <div
122
122
  className={cn(
123
- 'content-editor-wrapper relative flex max-h-[90vh] min-h-source-editor resize-y flex-col overflow-hidden rounded-md border bg-background',
123
+ 'content-editor-wrapper relative flex max-h-[90vh] min-h-source-editor resize-y flex-col overflow-hidden rounded border bg-background',
124
124
  { 'opacity-50': disabled },
125
125
  className
126
126
  )}
@@ -332,7 +332,7 @@ export function SourceMode({
332
332
  highlightActiveLineGutter: false
333
333
  }}
334
334
  className={cn(
335
- 'flex min-h-0 flex-1 flex-col overflow-hidden font-mono text-sm leading-6 font-normal [&_.cm-content]:!bg-transparent [&_.cm-editor]:!bg-input [&_.cm-gutters]:!bg-input [&_.cm-scroller]:!bg-input',
335
+ 'flex min-h-0 flex-1 flex-col overflow-hidden font-mono leading-6 font-normal [&_.cm-content]:!bg-transparent [&_.cm-editor]:!bg-input [&_.cm-gutters]:!bg-input [&_.cm-scroller]:!bg-input',
336
336
  {
337
337
  'cursor-not-allowed opacity-50': disabled
338
338
  }
@@ -16,27 +16,27 @@ export function TableAddControls({ controls }: TableAddControlsProps) {
16
16
  <div className="not-prose contents" contentEditable={false}>
17
17
  <Button
18
18
  aria-label="Add table column"
19
- className="group absolute top-0 right-0 bottom-6 z-[1] inline-flex h-auto w-4 shrink-0 cursor-pointer items-center justify-center rounded-none border border-border bg-muted/80 p-0 whitespace-nowrap transition-colors outline-none select-none hover:bg-muted focus-visible:bg-muted focus-visible:ring-[3px] focus-visible:ring-ring/50"
19
+ className="group absolute top-0 right-0 bottom-6 z-[1] inline-flex h-auto w-4 shrink-0 cursor-pointer items-center justify-center border border-border bg-muted/80 p-0 whitespace-nowrap transition-colors outline-none select-none hover:bg-muted focus-visible:bg-muted focus-visible:ring-[3px] focus-visible:ring-ring/50"
20
20
  onClick={controls.addColumn}
21
21
  onPointerDown={(event) => event.preventDefault()}
22
22
  title="Add table column"
23
23
  type="button"
24
24
  variant="outline"
25
25
  >
26
- <span className="pointer-events-none inline-flex size-6 shrink-0 items-center justify-center rounded-md border border-border bg-input text-foreground transition-colors group-hover:bg-secondary group-focus-visible:bg-secondary">
26
+ <span className="pointer-events-none inline-flex size-6 shrink-0 items-center justify-center rounded border border-border bg-input text-foreground transition-colors group-hover:bg-secondary group-focus-visible:bg-secondary">
27
27
  <PlusIcon aria-hidden="true" />
28
28
  </span>
29
29
  </Button>
30
30
  <Button
31
31
  aria-label="Add table row"
32
- className="group absolute right-6 bottom-0 left-0 z-[1] inline-flex h-4 w-auto shrink-0 cursor-pointer items-center justify-center rounded-none border border-border bg-muted/80 p-0 whitespace-nowrap transition-colors outline-none select-none hover:bg-muted focus-visible:bg-muted focus-visible:ring-[3px] focus-visible:ring-ring/50"
32
+ className="group absolute right-6 bottom-0 left-0 z-[1] inline-flex h-4 w-auto shrink-0 cursor-pointer items-center justify-center border border-border bg-muted/80 p-0 whitespace-nowrap transition-colors outline-none select-none hover:bg-muted focus-visible:bg-muted focus-visible:ring-[3px] focus-visible:ring-ring/50"
33
33
  onClick={controls.addRow}
34
34
  onPointerDown={(event) => event.preventDefault()}
35
35
  title="Add table row"
36
36
  type="button"
37
37
  variant="outline"
38
38
  >
39
- <span className="pointer-events-none inline-flex size-6 shrink-0 items-center justify-center rounded-md border border-border bg-input text-foreground transition-colors group-hover:bg-secondary group-focus-visible:bg-secondary">
39
+ <span className="pointer-events-none inline-flex size-6 shrink-0 items-center justify-center rounded border border-border bg-input text-foreground transition-colors group-hover:bg-secondary group-focus-visible:bg-secondary">
40
40
  <PlusIcon aria-hidden="true" />
41
41
  </span>
42
42
  </Button>
@@ -198,7 +198,7 @@ export function TableBubbleMenu({ editor }: { editor: Editor }) {
198
198
  role="toolbar"
199
199
  aria-label="Table formatting toolbar"
200
200
  className={cn(
201
- 'flex items-center gap-1 overflow-x-auto rounded-sm border border-border bg-popover p-1 text-popover-foreground shadow-menu [scrollbar-width:none] [&::-webkit-scrollbar]:hidden',
201
+ 'flex items-center gap-1 overflow-x-auto rounded border border-border bg-popover p-1 text-popover-foreground shadow-menu [scrollbar-width:none] [&::-webkit-scrollbar]:hidden',
202
202
  'relative z-50'
203
203
  )}
204
204
  >
@@ -94,7 +94,7 @@ export const RemovableImageNode: React.FC<NodeViewProps> = (props) => {
94
94
 
95
95
  return (
96
96
  <NodeViewWrapper
97
- className="not-prose relative my-4 block max-w-full rounded-md"
97
+ className="not-prose relative my-4 block max-w-full rounded"
98
98
  contentEditable={false}
99
99
  data-content-editor-image-node=""
100
100
  onMouseEnter={() => setIsControlsVisible(true)}
@@ -111,7 +111,7 @@ export const RemovableImageNode: React.FC<NodeViewProps> = (props) => {
111
111
  style={{ width: width ? `${width}px` : '100%' }}
112
112
  >
113
113
  <div
114
- className="relative max-w-full overflow-hidden rounded-md bg-muted/20"
114
+ className="relative max-w-full overflow-hidden rounded bg-muted/20"
115
115
  style={{ aspectRatio }}
116
116
  >
117
117
  {src && (
@@ -130,7 +130,7 @@ export const RemovableImageNode: React.FC<NodeViewProps> = (props) => {
130
130
  <div
131
131
  data-content-editor-image-controls-overlay=""
132
132
  className={cn(
133
- 'pointer-events-none absolute inset-0 flex items-center justify-center gap-1 rounded-md bg-black/10 backdrop-blur-xs transition-opacity duration-200 ease-out',
133
+ 'pointer-events-none absolute inset-0 flex items-center justify-center gap-1 rounded bg-black/10 backdrop-blur-xs transition-opacity duration-200 ease-out',
134
134
  {
135
135
  'opacity-100': isControlsVisible,
136
136
  'opacity-0': !isControlsVisible
@@ -7,10 +7,10 @@ function HighlightSwatch({ highlightColor }: { highlightColor: string }) {
7
7
  return (
8
8
  <span
9
9
  className={cn(
10
- 'relative -mx-[0.175rem] size-5 rounded-sm transition-transform duration-200 ease-in-out',
10
+ 'relative -mx-[0.175rem] size-5 rounded transition-transform duration-200 ease-in-out',
11
11
  'bg-[var(--highlight-color)]',
12
12
  'shadow-[inset_0_0_0_1px_var(--highlight-shadow),_0_1px_2px_var(--highlight-shadow-soft)]',
13
- "after:absolute after:inset-0 after:box-border after:size-full after:rounded-sm after:border after:opacity-0 after:transition-opacity after:duration-200 after:ease-in-out after:content-['']",
13
+ "after:absolute after:inset-0 after:box-border after:size-full after:rounded after:border after:opacity-0 after:transition-opacity after:duration-200 after:ease-in-out after:content-['']",
14
14
  'after:border-[var(--highlight-after-border)]',
15
15
  'group-data-[active-state=on]/highlight:scale-110',
16
16
  'group-data-[highlighted=true]/highlight:scale-110',
@@ -114,7 +114,7 @@ export function ColorHighlightPopoverContent(props: ColorHighlightPopoverContent
114
114
  role="menuitem"
115
115
  variant="ghost"
116
116
  size="icon-sm"
117
- className="rounded-sm"
117
+ className="rounded"
118
118
  data-highlighted={selectedIndex === colors.length}
119
119
  disabled={disabled}
120
120
  data-disabled={disabled}
@@ -88,7 +88,7 @@ export function ColorHighlightPopover({
88
88
  </PopoverTrigger>
89
89
  <PopoverContent
90
90
  aria-label="Highlight colors"
91
- className="w-auto max-w-[calc(100vw-2rem)] gap-0 rounded-sm p-0"
91
+ className="w-auto max-w-[calc(100vw-2rem)] gap-0 rounded p-0"
92
92
  >
93
93
  <ColorHighlightPopoverContent
94
94
  editor={editor}
@@ -38,7 +38,7 @@ export function HighlightColorButton({
38
38
  useColorValue={useColorValue}
39
39
  style={buttonStyle}
40
40
  size="icon-sm"
41
- className="rounded-sm"
41
+ className="rounded"
42
42
  />
43
43
  )
44
44
  }
@@ -48,7 +48,7 @@ export function HighlightColorButton({
48
48
  type="button"
49
49
  variant="ghost"
50
50
  size="icon-sm"
51
- className={cn('group/highlight rounded-sm')}
51
+ className={cn('group/highlight rounded')}
52
52
  disabled={disabled}
53
53
  data-disabled={disabled}
54
54
  aria-label={`${color.label} highlight color`}
@@ -49,7 +49,7 @@ export function SourceColorHighlightPopover({
49
49
  </PopoverTrigger>
50
50
  <PopoverContent
51
51
  aria-label="Highlight colors"
52
- className="w-auto max-w-[calc(100vw-2rem)] gap-0 rounded-sm p-0"
52
+ className="w-auto max-w-[calc(100vw-2rem)] gap-0 rounded p-0"
53
53
  >
54
54
  <ColorHighlightPopoverContent
55
55
  mode="source"
@@ -144,7 +144,7 @@ export function DateRangePicker({
144
144
  <ChevronDown />
145
145
  </PopoverTrigger>
146
146
  <PopoverContent
147
- className="w-date-range-popover gap-0 overflow-hidden rounded-sm p-0"
147
+ className="w-date-range-popover gap-0 overflow-hidden rounded p-0"
148
148
  align="start"
149
149
  >
150
150
  <Calendar
@@ -162,16 +162,15 @@ export function DateRangePicker({
162
162
  month: 'flex w-full flex-col gap-2',
163
163
  nav: 'absolute right-0 top-0 flex items-center gap-1',
164
164
  month_caption: 'flex h-8 items-center justify-start pr-18',
165
- caption_label: 'text-sm font-semibold text-foreground',
165
+ caption_label: 'font-semibold text-foreground',
166
166
  weekdays: 'flex',
167
- weekday:
168
- 'flex-1 text-center text-xs font-normal leading-8 text-muted-foreground select-none',
167
+ weekday: 'flex-1 text-center font-normal leading-8 text-muted-foreground select-none',
169
168
  week: 'mt-1 flex w-full'
170
169
  }}
171
170
  />
172
171
  <div className="flex flex-col gap-2 border-t p-3">
173
172
  <div className="flex flex-col gap-1">
174
- <label className="text-sm text-muted-foreground" htmlFor="date-range-start-date">
173
+ <label className="text-muted-foreground" htmlFor="date-range-start-date">
175
174
  Start
176
175
  </label>
177
176
  <div className="grid grid-cols-[1fr_96px] gap-2">
@@ -180,19 +179,19 @@ export function DateRangePicker({
180
179
  value={fromInput}
181
180
  onChange={(event) => handleDateInputChange('from', event.target.value)}
182
181
  placeholder="Apr 10, 2026"
183
- className="h-8 rounded-md px-3 text-sm"
182
+ className="h-8 rounded px-3"
184
183
  />
185
184
  <Input
186
185
  type="time"
187
186
  value={fromTime}
188
187
  onChange={(event) => setFromTime(event.target.value)}
189
188
  aria-label="Start time"
190
- className="h-8 rounded-md px-3 text-sm tabular-nums"
189
+ className="h-8 rounded px-3 tabular-nums"
191
190
  />
192
191
  </div>
193
192
  </div>
194
193
  <div className="flex flex-col gap-1">
195
- <label className="text-sm text-muted-foreground" htmlFor="date-range-end-date">
194
+ <label className="text-muted-foreground" htmlFor="date-range-end-date">
196
195
  End
197
196
  </label>
198
197
  <div className="grid grid-cols-[1fr_96px] gap-2">
@@ -201,14 +200,14 @@ export function DateRangePicker({
201
200
  value={toInput}
202
201
  onChange={(event) => handleDateInputChange('to', event.target.value)}
203
202
  placeholder="Apr 30, 2026"
204
- className="h-8 rounded-md px-3 text-sm"
203
+ className="h-8 rounded px-3"
205
204
  />
206
205
  <Input
207
206
  type="time"
208
207
  value={toTime}
209
208
  onChange={(event) => setToTime(event.target.value)}
210
209
  aria-label="End time"
211
- className="h-8 rounded-md px-3 text-sm tabular-nums"
210
+ className="h-8 rounded px-3 tabular-nums"
212
211
  />
213
212
  </div>
214
213
  </div>
@@ -76,7 +76,7 @@ export function DynamicListField({
76
76
  </div>
77
77
 
78
78
  {fields.length === 0 && (
79
- <div className="text-sm text-muted-foreground">
79
+ <div className="text-muted-foreground">
80
80
  No items added yet. Click "Add {label}" to get started.
81
81
  </div>
82
82
  )}
@@ -114,7 +114,7 @@ export function DynamicListField({
114
114
  </div>
115
115
 
116
116
  {maxItems && (
117
- <div className="text-xs text-muted-foreground">
117
+ <div className="text-muted-foreground">
118
118
  {fields.length} / {maxItems} items
119
119
  </div>
120
120
  )}
@@ -192,9 +192,9 @@ export function GalleryField({
192
192
  <CarouselItem className="basis-gallery-item pl-3">
193
193
  <Card className="h-full" onClick={() => setOpen(true)}>
194
194
  <CardContent className="flex cursor-pointer flex-col p-2">
195
- <div className="flex aspect-square size-full flex-col items-center justify-center gap-1 overflow-hidden rounded-sm border border-border bg-background text-muted-foreground transition-colors hover:text-foreground">
195
+ <div className="flex aspect-square size-full flex-col items-center justify-center gap-1 overflow-hidden rounded border border-border bg-background text-muted-foreground transition-colors hover:text-foreground">
196
196
  <Plus className="size-6" strokeWidth={1.5} />
197
- <span className="text-sm">Add Images</span>
197
+ <span>Add Images</span>
198
198
  </div>
199
199
  </CardContent>
200
200
  <CardFooter>
@@ -224,7 +224,7 @@ export function GalleryField({
224
224
  ) : (
225
225
  <Card>
226
226
  <CardContent className="flex flex-col p-2">
227
- <div className="flex aspect-square size-full overflow-hidden rounded-sm border border-border bg-background">
227
+ <div className="flex aspect-square size-full overflow-hidden rounded border border-border bg-background">
228
228
  <Skeleton className="size-full" />
229
229
  </div>
230
230
  </CardContent>
@@ -258,7 +258,7 @@ export function GalleryField({
258
258
  ) : (
259
259
  <Card>
260
260
  <CardContent className="flex flex-col p-2">
261
- <div className="flex aspect-square size-full overflow-hidden rounded-sm border border-border bg-background">
261
+ <div className="flex aspect-square size-full overflow-hidden rounded border border-border bg-background">
262
262
  <Skeleton className="size-full" />
263
263
  </div>
264
264
  </CardContent>
@@ -244,7 +244,6 @@ const IconPicker = React.forwardRef<React.ComponentRef<typeof PopoverTrigger>, I
244
244
  <Button
245
245
  key={category.name}
246
246
  variant={'outline'}
247
- className="text-xs"
248
247
  onClick={(e) => {
249
248
  e.stopPropagation()
250
249
  scrollToCategory(category.name)
@@ -261,7 +260,7 @@ const IconPicker = React.forwardRef<React.ComponentRef<typeof PopoverTrigger>, I
261
260
  <Tooltip>
262
261
  <TooltipTrigger
263
262
  className={cn(
264
- 'rounded-md border p-2 transition hover:bg-foreground/10',
263
+ 'rounded border p-2 transition hover:bg-foreground/10',
265
264
  'flex items-center justify-center'
266
265
  )}
267
266
  onClick={() => handleIconClick(icon.name as IconName)}
@@ -306,7 +305,7 @@ const IconPicker = React.forwardRef<React.ComponentRef<typeof PopoverTrigger>, I
306
305
  if (item.type === 'category') {
307
306
  return (
308
307
  <div key={virtualItem.key} style={itemStyle} className="z-10 bg-background">
309
- <h3 className="text-sm font-medium capitalize">
308
+ <h3 className="font-medium capitalize">
310
309
  {categorizedIcons[item.categoryIndex].name}
311
310
  </h3>
312
311
  <div className="h-[1px] w-full bg-foreground/10" />
@@ -5,10 +5,10 @@ const ICON_SKELETON_KEYS = Array.from({ length: 40 }, (_, index) => `icon-skelet
5
5
  export function IconsColumnSkeleton() {
6
6
  return (
7
7
  <div className="flex w-full flex-col gap-2">
8
- <Skeleton className="h-4 w-1/2 rounded-md" />
8
+ <Skeleton className="h-4 w-1/2 rounded" />
9
9
  <div className="grid w-full grid-cols-5 gap-2">
10
10
  {ICON_SKELETON_KEYS.map((key) => (
11
- <Skeleton key={key} className="h-10 w-10 rounded-md" />
11
+ <Skeleton key={key} className="h-10 w-10 rounded" />
12
12
  ))}
13
13
  </div>
14
14
  </div>
@@ -85,7 +85,7 @@ export function MediaField({
85
85
  <CardContent className="relative p-0!">
86
86
  <div
87
87
  data-media-field-preview
88
- className="relative aspect-video overflow-hidden rounded-sm bg-background"
88
+ className="relative aspect-video overflow-hidden rounded bg-background"
89
89
  >
90
90
  <MediaPreview media={selectedMedia} showMetadata={Boolean(media)} />
91
91
  </div>
@@ -94,7 +94,7 @@ export function MediaField({
94
94
  <>
95
95
  <div
96
96
  aria-hidden="true"
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"
97
+ className="pointer-events-none absolute inset-0 rounded 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
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
@@ -147,7 +147,7 @@ export function MediaField({
147
147
  </Button>
148
148
  </div>
149
149
  ) : (
150
- <span className="w-full truncate text-sm text-muted-foreground">
150
+ <span className="w-full truncate text-muted-foreground">
151
151
  {selectedMedia.filename}
152
152
  </span>
153
153
  )}
@@ -198,7 +198,7 @@ export function NestedObjectListField({
198
198
  <X />
199
199
  </Button>
200
200
  </div>
201
- <AccordionContent className="mb-4 space-y-5 rounded-sm border border-border bg-background p-5">
201
+ <AccordionContent className="mb-4 space-y-5 rounded border border-border bg-background p-5">
202
202
  {children(index)}
203
203
  </AccordionContent>
204
204
  </AccordionItem>
@@ -19,14 +19,14 @@ export function PlaceholderCard({
19
19
  return (
20
20
  <div
21
21
  className={cn(
22
- 'flex h-75 flex-col items-center justify-center gap-5 rounded-sm border border-dashed border-border bg-background',
22
+ 'flex h-75 flex-col items-center justify-center gap-5 rounded border border-dashed border-border bg-background',
23
23
  className
24
24
  )}
25
25
  >
26
26
  {icon}
27
27
  <div className="space-y-2 text-center">
28
28
  <p className="font-medium">{title}</p>
29
- {description && <p className="text-sm text-muted-foreground">{description}</p>}
29
+ {description && <p className="text-muted-foreground">{description}</p>}
30
30
  </div>
31
31
  {action}
32
32
  </div>
@@ -12,13 +12,13 @@ export function Placeholder({ label, description, action, className, ...props }:
12
12
  return (
13
13
  <div
14
14
  className={cn(
15
- 'flex flex-col items-center gap-2 rounded-sm border border-dashed border-border bg-background p-8',
15
+ 'flex flex-col items-center gap-2 rounded border border-dashed border-border bg-background p-8',
16
16
  className
17
17
  )}
18
18
  {...props}
19
19
  >
20
- <h4 className="text-sm font-medium">{label}</h4>
21
- <p className="text-sm text-muted-foreground">{description}</p>
20
+ <h4 className="font-medium">{label}</h4>
21
+ <p className="text-muted-foreground">{description}</p>
22
22
  <div className="flex pt-4">{action}</div>
23
23
  </div>
24
24
  )
@@ -38,7 +38,7 @@ export function SortableGalleryItem({
38
38
  >
39
39
  <Card className="h-full">
40
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">
41
+ <div className="flex aspect-square size-full overflow-hidden rounded border border-border bg-background">
42
42
  <Skeleton className="size-full" />
43
43
  </div>
44
44
  </CardContent>
@@ -82,9 +82,9 @@ export function UploadDropzone({
82
82
  data-slot="upload-dropzone-progress"
83
83
  className="flex h-full w-full flex-col items-center justify-center gap-3 text-center"
84
84
  >
85
- <p className="text-sm font-medium">Uploading files…</p>
85
+ <p className="font-medium">Uploading files…</p>
86
86
  <Progress value={progressPercent} className="mx-auto h-2 max-w-sm" />
87
- <p className="text-sm text-muted-foreground">{progressPercent}% complete</p>
87
+ <p className="text-muted-foreground">{progressPercent}% complete</p>
88
88
  </div>
89
89
  ) : (
90
90
  <div
@@ -95,9 +95,7 @@ export function UploadDropzone({
95
95
  <GalleryVerticalEnd />
96
96
  Add files
97
97
  </Button>
98
- <p className="text-sm text-muted-foreground">
99
- Drag & drop images, videos, or documents here
100
- </p>
98
+ <p className="text-muted-foreground">Drag & drop images, videos, or documents here</p>
101
99
  </div>
102
100
  )}
103
101
  <input {...getInputProps({ className: 'hidden' })} />
@@ -6,7 +6,7 @@ function Accordion({ className, ...props }: AccordionPrimitive.Root.Props) {
6
6
  return (
7
7
  <AccordionPrimitive.Root
8
8
  data-slot="accordion"
9
- className={cn('flex w-full flex-col overflow-hidden rounded-2xl border', className)}
9
+ className={cn('flex w-full flex-col overflow-hidden rounded border', className)}
10
10
  {...props}
11
11
  />
12
12
  )
@@ -28,7 +28,7 @@ function AccordionTrigger({ className, children, ...props }: AccordionPrimitive.
28
28
  <AccordionPrimitive.Trigger
29
29
  data-slot="accordion-trigger"
30
30
  className={cn(
31
- 'group/accordion-trigger relative flex flex-1 items-start justify-between gap-6 border border-transparent p-4 text-left text-sm font-medium transition-all outline-none hover:underline aria-disabled:pointer-events-none aria-disabled:opacity-50 **:data-[slot=accordion-trigger-icon]:ml-auto **:data-[slot=accordion-trigger-icon]:size-4 **:data-[slot=accordion-trigger-icon]:text-muted-foreground',
31
+ 'group/accordion-trigger relative flex flex-1 items-start justify-between gap-6 border border-transparent p-4 text-left font-medium transition-all outline-none hover:underline aria-disabled:pointer-events-none aria-disabled:opacity-50 **:data-[slot=accordion-trigger-icon]:ml-auto **:data-[slot=accordion-trigger-icon]:size-4 **:data-[slot=accordion-trigger-icon]:text-muted-foreground',
32
32
  className
33
33
  )}
34
34
  {...props}
@@ -51,7 +51,7 @@ function AccordionContent({ className, children, ...props }: AccordionPrimitive.
51
51
  return (
52
52
  <AccordionPrimitive.Panel
53
53
  data-slot="accordion-content"
54
- className="overflow-hidden px-4 text-sm data-open:animate-accordion-down data-closed:animate-accordion-up"
54
+ className="overflow-hidden px-4 data-open:animate-accordion-down data-closed:animate-accordion-up"
55
55
  {...props}
56
56
  >
57
57
  <div
@@ -44,7 +44,7 @@ function AlertDialogContent({
44
44
  data-slot="alert-dialog-content"
45
45
  data-size={size}
46
46
  className={cn(
47
- '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-4xl bg-popover p-6 text-popover-foreground ring-1 ring-foreground/5 duration-100 outline-none data-[size=default]:max-w-md data-[size=sm]:max-w-xs 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',
47
+ '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 bg-popover p-6 text-popover-foreground ring-1 ring-foreground/5 duration-100 outline-none data-[size=default]:max-w-md data-[size=sm]:max-w-xs 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',
48
48
  className
49
49
  )}
50
50
  {...props}
@@ -94,7 +94,7 @@ function AlertDialogMedia({ className, ...props }: React.ComponentProps<'div'>)
94
94
  <div
95
95
  data-slot="alert-dialog-media"
96
96
  className={cn(
97
- "mb-2 inline-flex size-16 items-center justify-center rounded-full bg-muted group-data-[size=default]/alert-dialog-content:row-span-2 *:[svg:not([class*='size-'])]:size-8",
97
+ "mb-2 inline-flex size-16 items-center justify-center rounded bg-muted group-data-[size=default]/alert-dialog-content:row-span-2 *:[svg:not([class*='size-'])]:size-8",
98
98
  className
99
99
  )}
100
100
  {...props}
@@ -110,7 +110,7 @@ function AlertDialogTitle({
110
110
  <AlertDialogPrimitive.Title
111
111
  data-slot="alert-dialog-title"
112
112
  className={cn(
113
- 'cn-font-heading text-lg font-medium group-data-[size=default]/alert-dialog-content:group-has-data-[slot=alert-dialog-media]/alert-dialog-content:col-start-2',
113
+ 'cn-font-heading font-medium group-data-[size=default]/alert-dialog-content:group-has-data-[slot=alert-dialog-media]/alert-dialog-content:col-start-2',
114
114
  className
115
115
  )}
116
116
  {...props}
@@ -126,7 +126,7 @@ function AlertDialogDescription({
126
126
  <AlertDialogPrimitive.Description
127
127
  data-slot="alert-dialog-description"
128
128
  className={cn(
129
- 'text-sm text-pretty text-muted-foreground *:[a]:underline *:[a]:underline-offset-3 *:[a]:hover:text-foreground',
129
+ 'text-pretty text-muted-foreground *:[a]:underline *:[a]:underline-offset-3 *:[a]:hover:text-foreground',
130
130
  className
131
131
  )}
132
132
  {...props}
@@ -4,7 +4,7 @@ import { cn } from '@admin/utils/shared/cn'
4
4
  import { cva } from 'class-variance-authority'
5
5
 
6
6
  const alertVariants = cva(
7
- "group/alert relative grid w-full gap-0.5 rounded-lg 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-current *:[svg:not([class*='size-'])]:size-4",
7
+ "group/alert relative grid w-full gap-0.5 rounded border px-4 py-3 text-left 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-current *:[svg:not([class*='size-'])]:size-4",
8
8
  {
9
9
  variants: {
10
10
  variant: {
@@ -52,7 +52,7 @@ function AlertDescription({ className, ...props }: React.ComponentProps<'div'>)
52
52
  <div
53
53
  data-slot="alert-description"
54
54
  className={cn(
55
- 'text-sm text-pretty text-muted-foreground [&_a]:underline [&_a]:underline-offset-3 [&_a]:hover:text-foreground [&_p:not(:last-child)]:mb-4',
55
+ 'text-pretty text-muted-foreground [&_a]:underline [&_a]:underline-offset-3 [&_a]:hover:text-foreground [&_p:not(:last-child)]:mb-4',
56
56
  className
57
57
  )}
58
58
  {...props}