betterstart-cli 0.0.118 → 0.0.120

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 +169 -61
  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 +2 -3
  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 +105 -77
  127. package/dist/cli.js.map +1 -1
  128. package/package.json +1 -1
@@ -44,7 +44,7 @@ function ContextMenuContent({
44
44
  <ContextMenuPrimitive.Popup
45
45
  data-slot="context-menu-content"
46
46
  className={cn(
47
- 'cn-menu-target cn-menu-translucent z-50 max-h-(--available-height) min-w-48 origin-(--transform-origin) overflow-x-hidden overflow-y-auto rounded-2xl bg-popover p-1 text-popover-foreground shadow-2xl ring-1 ring-foreground/5 duration-100 outline-none data-[side=bottom]:slide-in-from-top-2 data-[side=inline-end]:slide-in-from-left-2 data-[side=inline-start]:slide-in-from-right-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 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
+ 'cn-menu-target cn-menu-translucent z-50 max-h-(--available-height) min-w-48 origin-(--transform-origin) overflow-x-hidden overflow-y-auto rounded bg-popover p-1 text-popover-foreground shadow-2xl ring-1 ring-foreground/5 duration-100 outline-none data-[side=bottom]:slide-in-from-top-2 data-[side=inline-end]:slide-in-from-left-2 data-[side=inline-start]:slide-in-from-right-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 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}
@@ -69,7 +69,7 @@ function ContextMenuLabel({
69
69
  <ContextMenuPrimitive.GroupLabel
70
70
  data-slot="context-menu-label"
71
71
  data-inset={inset}
72
- className={cn('px-3 py-2.5 text-xs text-muted-foreground data-inset:pl-9.5', className)}
72
+ className={cn('px-3 py-2.5 text-muted-foreground data-inset:pl-9.5', className)}
73
73
  {...props}
74
74
  />
75
75
  )
@@ -90,7 +90,7 @@ function ContextMenuItem({
90
90
  data-inset={inset}
91
91
  data-variant={variant}
92
92
  className={cn(
93
- "group/context-menu-item relative flex cursor-default items-center gap-2.5 rounded-xl px-3 py-2 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground data-inset:pl-9.5 data-[variant=destructive]:text-destructive data-[variant=destructive]:focus:bg-destructive/10 data-[variant=destructive]:focus:text-destructive data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 focus:*:[svg]:text-accent-foreground data-[variant=destructive]:*:[svg]:text-destructive",
93
+ "group/context-menu-item relative flex cursor-default items-center gap-2.5 rounded px-3 py-2 outline-hidden select-none focus:bg-accent focus:text-accent-foreground data-inset:pl-9.5 data-[variant=destructive]:text-destructive data-[variant=destructive]:focus:bg-destructive/10 data-[variant=destructive]:focus:text-destructive data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 focus:*:[svg]:text-accent-foreground data-[variant=destructive]:*:[svg]:text-destructive",
94
94
  className
95
95
  )}
96
96
  {...props}
@@ -115,7 +115,7 @@ function ContextMenuSubTrigger({
115
115
  data-slot="context-menu-sub-trigger"
116
116
  data-inset={inset}
117
117
  className={cn(
118
- "flex cursor-default items-center rounded-xl px-3 py-2 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground data-inset:pl-9.5 data-open:bg-accent data-open:text-accent-foreground [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
118
+ "flex cursor-default items-center rounded px-3 py-2 outline-hidden select-none focus:bg-accent focus:text-accent-foreground data-inset:pl-9.5 data-open:bg-accent data-open:text-accent-foreground [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
119
119
  className
120
120
  )}
121
121
  {...props}
@@ -151,7 +151,7 @@ function ContextMenuCheckboxItem({
151
151
  data-slot="context-menu-checkbox-item"
152
152
  data-inset={inset}
153
153
  className={cn(
154
- "relative flex cursor-default items-center gap-2 rounded-xl py-2 pr-8 pl-3 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground data-inset:pl-9.5 data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
154
+ "relative flex cursor-default items-center gap-2 rounded py-2 pr-8 pl-3 outline-hidden select-none focus:bg-accent focus:text-accent-foreground data-inset:pl-9.5 data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
155
155
  className
156
156
  )}
157
157
  checked={checked}
@@ -184,7 +184,7 @@ function ContextMenuRadioItem({
184
184
  data-slot="context-menu-radio-item"
185
185
  data-inset={inset}
186
186
  className={cn(
187
- "relative flex cursor-default items-center gap-2 rounded-xl py-2 pr-8 pl-3 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground data-inset:pl-9.5 data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
187
+ "relative flex cursor-default items-center gap-2 rounded py-2 pr-8 pl-3 outline-hidden select-none focus:bg-accent focus:text-accent-foreground data-inset:pl-9.5 data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
188
188
  className
189
189
  )}
190
190
  {...props}
@@ -214,7 +214,7 @@ function ContextMenuShortcut({ className, ...props }: React.ComponentProps<'span
214
214
  <span
215
215
  data-slot="context-menu-shortcut"
216
216
  className={cn(
217
- 'ml-auto text-xs tracking-widest text-muted-foreground group-focus/context-menu-item:text-accent-foreground',
217
+ 'ml-auto tracking-widest text-muted-foreground group-focus/context-menu-item:text-accent-foreground',
218
218
  className
219
219
  )}
220
220
  {...props}
@@ -49,7 +49,7 @@ function DialogContent({
49
49
  <DialogPrimitive.Popup
50
50
  data-slot="dialog-content"
51
51
  className={cn(
52
- 'fixed top-1/2 left-1/2 z-50 grid w-full max-w-md -translate-x-1/2 -translate-y-1/2 gap-6 rounded-4xl bg-popover p-6 text-sm text-popover-foreground ring-1 ring-foreground/5 duration-100 outline-none 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',
52
+ 'fixed top-1/2 left-1/2 z-50 grid w-full max-w-md -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-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95',
53
53
  className
54
54
  )}
55
55
  {...props}
@@ -105,7 +105,7 @@ function DialogTitle({ className, ...props }: DialogPrimitive.Title.Props) {
105
105
  return (
106
106
  <DialogPrimitive.Title
107
107
  data-slot="dialog-title"
108
- className={cn('cn-font-heading text-base leading-none font-medium', className)}
108
+ className={cn('cn-font-heading leading-none font-medium', className)}
109
109
  {...props}
110
110
  />
111
111
  )
@@ -116,7 +116,7 @@ function DialogDescription({ className, ...props }: DialogPrimitive.Description.
116
116
  <DialogPrimitive.Description
117
117
  data-slot="dialog-description"
118
118
  className={cn(
119
- 'text-sm text-muted-foreground *:[a]:underline *:[a]:underline-offset-3 *:[a]:hover:text-foreground',
119
+ 'text-muted-foreground *:[a]:underline *:[a]:underline-offset-3 *:[a]:hover:text-foreground',
120
120
  className
121
121
  )}
122
122
  {...props}
@@ -85,7 +85,7 @@ function DrawerSwipeHandle({ className, ...props }: React.ComponentProps<'div'>)
85
85
  data-slot="drawer-swipe-handle"
86
86
  aria-hidden="true"
87
87
  className={cn(
88
- 'relative z-10 flex shrink-0 cursor-grab transition-opacity duration-200 group-data-nested-drawer-open/drawer-popup:opacity-0 group-data-nested-drawer-swiping/drawer-popup:opacity-100 group-data-[swipe-axis=x]/drawer-popup:h-full group-data-[swipe-axis=x]/drawer-popup:w-3 group-data-[swipe-axis=x]/drawer-popup:items-center group-data-[swipe-axis=y]/drawer-popup:h-3 group-data-[swipe-axis=y]/drawer-popup:w-full group-data-[swipe-axis=y]/drawer-popup:justify-center group-data-[swipe-direction=down]/drawer-popup:items-end group-data-[swipe-direction=left]/drawer-popup:order-last group-data-[swipe-direction=left]/drawer-popup:justify-start group-data-[swipe-direction=right]/drawer-popup:justify-end group-data-[swipe-direction=up]/drawer-popup:order-last group-data-[swipe-direction=up]/drawer-popup:items-start after:block after:shrink-0 after:rounded-full after:bg-muted group-data-[swipe-axis=x]/drawer-popup:after:h-[100px] group-data-[swipe-axis=x]/drawer-popup:after:w-1.5 group-data-[swipe-axis=y]/drawer-popup:after:h-1.5 group-data-[swipe-axis=y]/drawer-popup:after:w-[100px] active:cursor-grabbing',
88
+ 'relative z-10 flex shrink-0 cursor-grab transition-opacity duration-200 group-data-nested-drawer-open/drawer-popup:opacity-0 group-data-nested-drawer-swiping/drawer-popup:opacity-100 group-data-[swipe-axis=x]/drawer-popup:h-full group-data-[swipe-axis=x]/drawer-popup:w-3 group-data-[swipe-axis=x]/drawer-popup:items-center group-data-[swipe-axis=y]/drawer-popup:h-3 group-data-[swipe-axis=y]/drawer-popup:w-full group-data-[swipe-axis=y]/drawer-popup:justify-center group-data-[swipe-direction=down]/drawer-popup:items-end group-data-[swipe-direction=left]/drawer-popup:order-last group-data-[swipe-direction=left]/drawer-popup:justify-start group-data-[swipe-direction=right]/drawer-popup:justify-end group-data-[swipe-direction=up]/drawer-popup:order-last group-data-[swipe-direction=up]/drawer-popup:items-start after:block after:shrink-0 after:rounded after:bg-muted group-data-[swipe-axis=x]/drawer-popup:after:h-[100px] group-data-[swipe-axis=x]/drawer-popup:after:w-1.5 group-data-[swipe-axis=y]/drawer-popup:after:h-1.5 group-data-[swipe-axis=y]/drawer-popup:after:w-[100px] active:cursor-grabbing',
89
89
  className
90
90
  )}
91
91
  {...props}
@@ -111,7 +111,7 @@ function DrawerContent({ className, children, ...props }: DrawerPrimitive.Popup.
111
111
  data-snap-points={hasSnapPoints ? '' : undefined}
112
112
  className={cn(
113
113
  // Base.
114
- 'group/drawer-popup pointer-events-auto fixed z-50 m-(--drawer-inset,0px) flex h-(--drawer-content-height) max-h-(--drawer-content-max-height,none) min-h-0 w-(--drawer-content-width,auto) transform-[translate3d(var(--translate-x,0px),var(--translate-y,0px),0)_scale(var(--stack-scale))] flex-col rounded-4xl border border-popover bg-popover text-sm text-popover-foreground transition-[transform,height,opacity,filter] duration-450 ease-[cubic-bezier(0.22,1,0.36,1)] will-change-transform outline-none select-none [--drawer-bleed-background:transparent] [--drawer-inset:--spacing(2)] [interpolate-size:allow-keywords]',
114
+ 'group/drawer-popup pointer-events-auto fixed z-50 m-(--drawer-inset,0px) flex h-(--drawer-content-height) max-h-(--drawer-content-max-height,none) min-h-0 w-(--drawer-content-width,auto) transform-[translate3d(var(--translate-x,0px),var(--translate-y,0px),0)_scale(var(--stack-scale))] flex-col rounded border border-popover bg-popover text-popover-foreground transition-[transform,height,opacity,filter] duration-450 ease-[cubic-bezier(0.22,1,0.36,1)] will-change-transform outline-none select-none [--drawer-bleed-background:transparent] [--drawer-inset:--spacing(2)] [interpolate-size:allow-keywords]',
115
115
  // Nested.
116
116
  'data-nested-drawer-open:overflow-hidden data-nested-drawer-open:brightness-95',
117
117
  // Bleed.
@@ -142,7 +142,7 @@ function DrawerContent({ className, children, ...props }: DrawerPrimitive.Popup.
142
142
  <DrawerPrimitive.Content
143
143
  data-slot="drawer-content"
144
144
  className={cn(
145
- 'flex min-h-0 flex-1 flex-col overflow-hidden overscroll-contain rounded-[inherit] transition-opacity duration-300 ease-[cubic-bezier(0.45,1.005,0,1.005)] select-text group-data-nested-drawer-open/drawer-popup:opacity-0 group-data-nested-drawer-swiping/drawer-popup:opacity-100 group-data-swiping/drawer-popup:select-none'
145
+ 'flex min-h-0 flex-1 flex-col overflow-hidden overscroll-contain transition-opacity duration-300 ease-[cubic-bezier(0.45,1.005,0,1.005)] select-text group-data-nested-drawer-open/drawer-popup:opacity-0 group-data-nested-drawer-swiping/drawer-popup:opacity-100 group-data-swiping/drawer-popup:select-none'
146
146
  )}
147
147
  >
148
148
  {children}
@@ -180,7 +180,7 @@ function DrawerTitle({ className, ...props }: DrawerPrimitive.Title.Props) {
180
180
  return (
181
181
  <DrawerPrimitive.Title
182
182
  data-slot="drawer-title"
183
- className={cn('cn-font-heading text-base font-medium text-foreground', className)}
183
+ className={cn('cn-font-heading font-medium text-foreground', className)}
184
184
  {...props}
185
185
  />
186
186
  )
@@ -190,7 +190,7 @@ function DrawerDescription({ className, ...props }: DrawerPrimitive.Description.
190
190
  return (
191
191
  <DrawerPrimitive.Description
192
192
  data-slot="drawer-description"
193
- className={cn('text-sm text-balance text-muted-foreground', className)}
193
+ className={cn('text-balance text-muted-foreground', className)}
194
194
  {...props}
195
195
  />
196
196
  )
@@ -38,7 +38,7 @@ function DropdownMenuContent({
38
38
  <MenuPrimitive.Popup
39
39
  data-slot="dropdown-menu-content"
40
40
  className={cn(
41
- 'cn-menu-target cn-menu-translucent z-50 max-h-(--available-height) w-(--anchor-width) min-w-48 origin-(--transform-origin) overflow-x-hidden overflow-y-auto rounded-2xl bg-popover p-1 text-popover-foreground shadow-2xl ring-1 ring-foreground/5 duration-100 outline-none data-[side=bottom]:slide-in-from-top-2 data-[side=inline-end]:slide-in-from-left-2 data-[side=inline-start]:slide-in-from-right-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:overflow-hidden data-closed:fade-out-0 data-closed:zoom-out-95',
41
+ 'cn-menu-target cn-menu-translucent z-50 max-h-(--available-height) w-(--anchor-width) min-w-48 origin-(--transform-origin) overflow-x-hidden overflow-y-auto rounded bg-popover p-1 text-popover-foreground shadow-2xl ring-1 ring-foreground/5 duration-100 outline-none data-[side=bottom]:slide-in-from-top-2 data-[side=inline-end]:slide-in-from-left-2 data-[side=inline-start]:slide-in-from-right-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:overflow-hidden data-closed:fade-out-0 data-closed:zoom-out-95',
42
42
  className
43
43
  )}
44
44
  {...props}
@@ -63,7 +63,7 @@ function DropdownMenuLabel({
63
63
  <MenuPrimitive.GroupLabel
64
64
  data-slot="dropdown-menu-label"
65
65
  data-inset={inset}
66
- className={cn('px-3 py-2.5 text-xs text-muted-foreground data-inset:pl-9.5', className)}
66
+ className={cn('px-3 py-2.5 text-muted-foreground data-inset:pl-9.5', className)}
67
67
  {...props}
68
68
  />
69
69
  )
@@ -84,7 +84,7 @@ function DropdownMenuItem({
84
84
  data-inset={inset}
85
85
  data-variant={variant}
86
86
  className={cn(
87
- "group/dropdown-menu-item relative flex cursor-default items-center gap-2.5 rounded-xl px-3 py-2 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground not-data-[variant=destructive]:focus:**:text-accent-foreground data-inset:pl-9.5 data-[variant=destructive]:text-destructive data-[variant=destructive]:focus:bg-destructive/10 data-[variant=destructive]:focus:text-destructive data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 data-[variant=destructive]:*:[svg]:text-destructive",
87
+ "group/dropdown-menu-item relative flex cursor-default items-center gap-2.5 rounded px-3 py-2 outline-hidden select-none focus:bg-accent focus:text-accent-foreground not-data-[variant=destructive]:focus:**:text-accent-foreground data-inset:pl-9.5 data-[variant=destructive]:text-destructive data-[variant=destructive]:focus:bg-destructive/10 data-[variant=destructive]:focus:text-destructive data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 data-[variant=destructive]:*:[svg]:text-destructive",
88
88
  className
89
89
  )}
90
90
  {...props}
@@ -109,7 +109,7 @@ function DropdownMenuSubTrigger({
109
109
  data-slot="dropdown-menu-sub-trigger"
110
110
  data-inset={inset}
111
111
  className={cn(
112
- "flex cursor-default items-center gap-2 rounded-xl px-3 py-2 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground not-data-[variant=destructive]:focus:**:text-accent-foreground data-inset:pl-9.5 data-popup-open:bg-accent data-popup-open:text-accent-foreground data-open:bg-accent data-open:text-accent-foreground [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
112
+ "flex cursor-default items-center gap-2 rounded px-3 py-2 outline-hidden select-none focus:bg-accent focus:text-accent-foreground not-data-[variant=destructive]:focus:**:text-accent-foreground data-inset:pl-9.5 data-popup-open:bg-accent data-popup-open:text-accent-foreground data-open:bg-accent data-open:text-accent-foreground [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
113
113
  className
114
114
  )}
115
115
  {...props}
@@ -132,7 +132,7 @@ function DropdownMenuSubContent({
132
132
  <DropdownMenuContent
133
133
  data-slot="dropdown-menu-sub-content"
134
134
  className={cn(
135
- 'cn-menu-target cn-menu-translucent w-auto min-w-36 rounded-2xl bg-popover p-1 text-popover-foreground shadow-2xl ring-1 ring-foreground/5 duration-100 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 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',
135
+ 'cn-menu-target cn-menu-translucent w-auto min-w-36 rounded bg-popover p-1 text-popover-foreground shadow-2xl ring-1 ring-foreground/5 duration-100 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 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',
136
136
  className
137
137
  )}
138
138
  align={align}
@@ -158,7 +158,7 @@ function DropdownMenuCheckboxItem({
158
158
  data-slot="dropdown-menu-checkbox-item"
159
159
  data-inset={inset}
160
160
  className={cn(
161
- "relative flex cursor-default items-center gap-2.5 rounded-xl py-2 pr-8 pl-3 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground focus:**:text-accent-foreground data-inset:pl-9.5 data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
161
+ "relative flex cursor-default items-center gap-2.5 rounded py-2 pr-8 pl-3 outline-hidden select-none focus:bg-accent focus:text-accent-foreground focus:**:text-accent-foreground data-inset:pl-9.5 data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
162
162
  className
163
163
  )}
164
164
  checked={checked}
@@ -194,7 +194,7 @@ function DropdownMenuRadioItem({
194
194
  data-slot="dropdown-menu-radio-item"
195
195
  data-inset={inset}
196
196
  className={cn(
197
- "relative flex cursor-default items-center gap-2.5 rounded-xl py-2 pr-8 pl-3 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground focus:**:text-accent-foreground data-inset:pl-9.5 data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
197
+ "relative flex cursor-default items-center gap-2.5 rounded py-2 pr-8 pl-3 outline-hidden select-none focus:bg-accent focus:text-accent-foreground focus:**:text-accent-foreground data-inset:pl-9.5 data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
198
198
  className
199
199
  )}
200
200
  {...props}
@@ -227,7 +227,7 @@ function DropdownMenuShortcut({ className, ...props }: React.ComponentProps<'spa
227
227
  <span
228
228
  data-slot="dropdown-menu-shortcut"
229
229
  className={cn(
230
- 'ml-auto text-xs tracking-widest text-muted-foreground group-focus/dropdown-menu-item:text-accent-foreground',
230
+ 'ml-auto tracking-widest text-muted-foreground group-focus/dropdown-menu-item:text-accent-foreground',
231
231
  className
232
232
  )}
233
233
  {...props}
@@ -7,7 +7,7 @@ function Empty({ className, ...props }: React.ComponentProps<'div'>) {
7
7
  <div
8
8
  data-slot="empty"
9
9
  className={cn(
10
- 'flex w-full min-w-0 flex-1 flex-col items-center justify-center gap-4 rounded-lg border-dashed p-12 text-center text-balance',
10
+ 'flex w-full min-w-0 flex-1 flex-col items-center justify-center gap-4 rounded border-dashed p-12 text-center text-balance',
11
11
  className
12
12
  )}
13
13
  {...props}
@@ -31,7 +31,7 @@ const emptyMediaVariants = cva(
31
31
  variants: {
32
32
  variant: {
33
33
  default: 'bg-transparent',
34
- icon: "flex size-10 shrink-0 items-center justify-center rounded-lg bg-muted text-foreground [&_svg:not([class*='size-'])]:size-6"
34
+ icon: "flex size-10 shrink-0 items-center justify-center rounded bg-muted text-foreground [&_svg:not([class*='size-'])]:size-6"
35
35
  }
36
36
  },
37
37
  defaultVariants: {
@@ -59,7 +59,7 @@ function EmptyTitle({ className, ...props }: React.ComponentProps<'div'>) {
59
59
  return (
60
60
  <div
61
61
  data-slot="empty-title"
62
- className={cn('cn-font-heading text-lg font-medium tracking-tight', className)}
62
+ className={cn('cn-font-heading font-medium tracking-tight', className)}
63
63
  {...props}
64
64
  />
65
65
  )
@@ -70,7 +70,7 @@ function EmptyDescription({ className, ...props }: React.ComponentProps<'p'>) {
70
70
  <div
71
71
  data-slot="empty-description"
72
72
  className={cn(
73
- 'text-sm/relaxed text-muted-foreground [&>a]:underline [&>a]:underline-offset-4 [&>a:hover]:text-primary',
73
+ 'text-muted-foreground [&>a]:underline [&>a]:underline-offset-4 [&>a:hover]:text-primary',
74
74
  className
75
75
  )}
76
76
  {...props}
@@ -83,7 +83,7 @@ function EmptyContent({ className, ...props }: React.ComponentProps<'div'>) {
83
83
  <div
84
84
  data-slot="empty-content"
85
85
  className={cn(
86
- 'flex w-full max-w-sm min-w-0 flex-col items-center gap-4 text-sm text-balance',
86
+ 'flex w-full max-w-sm min-w-0 flex-col items-center gap-4 text-balance',
87
87
  className
88
88
  )}
89
89
  {...props}
@@ -29,10 +29,7 @@ function FieldLegend({
29
29
  <legend
30
30
  data-slot="field-legend"
31
31
  data-variant={variant}
32
- className={cn(
33
- 'mb-3 font-medium data-[variant=label]:text-sm data-[variant=legend]:text-base',
34
- className
35
- )}
32
+ className={cn('mb-3 font-medium', className)}
36
33
  {...props}
37
34
  />
38
35
  )
@@ -95,7 +92,7 @@ function FieldLabel({ className, ...props }: React.ComponentProps<typeof Label>)
95
92
  <Label
96
93
  data-slot="field-label"
97
94
  className={cn(
98
- 'group/field-label peer/field-label flex w-fit gap-2 leading-snug group-data-[disabled=true]/field:opacity-50 has-data-checked:border-primary/30 has-data-checked:bg-primary/5 has-[>[data-slot=field]]:rounded-xl has-[>[data-slot=field]]:border *:data-[slot=field]:p-4',
95
+ 'group/field-label peer/field-label flex w-fit gap-2 leading-snug group-data-[disabled=true]/field:opacity-50 has-data-checked:border-primary/30 has-data-checked:bg-primary/5 has-[>[data-slot=field]]:rounded has-[>[data-slot=field]]:border *:data-[slot=field]:p-4',
99
96
  'has-[>[data-slot=field]]:w-full has-[>[data-slot=field]]:flex-col',
100
97
  className
101
98
  )}
@@ -109,7 +106,7 @@ function FieldTitle({ className, ...props }: React.ComponentProps<'div'>) {
109
106
  <div
110
107
  data-slot="field-label"
111
108
  className={cn(
112
- 'flex w-fit items-center gap-2 text-sm font-medium group-data-[disabled=true]/field:opacity-50',
109
+ 'flex w-fit items-center gap-2 font-medium group-data-[disabled=true]/field:opacity-50',
113
110
  className
114
111
  )}
115
112
  {...props}
@@ -122,7 +119,7 @@ function FieldDescription({ className, ...props }: React.ComponentProps<'p'>) {
122
119
  <p
123
120
  data-slot="field-description"
124
121
  className={cn(
125
- 'text-left text-sm leading-normal font-normal text-muted-foreground group-has-data-horizontal/field:text-balance [[data-variant=legend]+&]:-mt-1.5',
122
+ 'text-left leading-normal font-normal text-muted-foreground group-has-data-horizontal/field:text-balance [[data-variant=legend]+&]:-mt-1.5',
126
123
  'last:mt-0 nth-last-2:-mt-1',
127
124
  '[&>a]:underline [&>a]:underline-offset-4 [&>a:hover]:text-primary',
128
125
  className
@@ -143,10 +140,7 @@ function FieldSeparator({
143
140
  <div
144
141
  data-slot="field-separator"
145
142
  data-content={!!children}
146
- className={cn(
147
- 'relative -my-2 h-5 text-sm group-data-[variant=outline]/field-group:-mb-2',
148
- className
149
- )}
143
+ className={cn('relative -my-2 h-5 group-data-[variant=outline]/field-group:-mb-2', className)}
150
144
  {...props}
151
145
  >
152
146
  <Separator className="absolute inset-0 top-1/2" />
@@ -200,7 +194,7 @@ function FieldError({
200
194
  <div
201
195
  role="alert"
202
196
  data-slot="field-error"
203
- className={cn('text-sm font-normal text-destructive', className)}
197
+ className={cn('font-normal text-destructive', className)}
204
198
  {...props}
205
199
  >
206
200
  {content}
@@ -122,7 +122,7 @@ const FormDescription = React.forwardRef<
122
122
  <p
123
123
  ref={ref}
124
124
  id={formDescriptionId}
125
- className={cn('text-[0.8rem] text-muted-foreground', className)}
125
+ className={cn('text-muted-foreground', className)}
126
126
  {...props}
127
127
  />
128
128
  )
@@ -144,7 +144,7 @@ const FormMessage = React.forwardRef<
144
144
  <p
145
145
  ref={ref}
146
146
  id={formMessageId}
147
- className={cn('text-[0.8rem] font-medium text-destructive', className)}
147
+ className={cn('font-medium text-destructive', className)}
148
148
  {...props}
149
149
  >
150
150
  {body}
@@ -32,7 +32,7 @@ function HoverCardContent({
32
32
  <PreviewCardPrimitive.Popup
33
33
  data-slot="hover-card-content"
34
34
  className={cn(
35
- 'z-50 w-72 origin-(--transform-origin) rounded-2xl bg-popover p-4 text-sm text-popover-foreground shadow-2xl ring-1 ring-foreground/5 outline-hidden duration-100 data-[side=bottom]:slide-in-from-top-2 data-[side=inline-end]:slide-in-from-left-2 data-[side=inline-start]:slide-in-from-right-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 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',
35
+ 'z-50 w-72 origin-(--transform-origin) rounded bg-popover p-4 text-popover-foreground shadow-2xl ring-1 ring-foreground/5 outline-hidden duration-100 data-[side=bottom]:slide-in-from-top-2 data-[side=inline-end]:slide-in-from-left-2 data-[side=inline-start]:slide-in-from-right-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 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',
36
36
  className
37
37
  )}
38
38
  {...props}
@@ -14,7 +14,7 @@ function InputGroup({ className, ...props }: React.ComponentProps<'div'>) {
14
14
  data-slot="input-group"
15
15
  role="group"
16
16
  className={cn(
17
- 'group/input-group relative flex h-9 w-full min-w-0 items-center rounded-4xl border border-input bg-input/30 transition-colors outline-none in-data-[slot=combobox-content]:focus-within:border-inherit in-data-[slot=combobox-content]:focus-within:ring-0 has-data-[align=block-end]:rounded-2xl has-data-[align=block-start]:rounded-2xl has-[[data-slot=input-group-control]:focus-visible]:border-ring has-[[data-slot=input-group-control]:focus-visible]:ring-[3px] has-[[data-slot=input-group-control]:focus-visible]:ring-ring/50 has-[[data-slot][aria-invalid=true]]:border-destructive has-[[data-slot][aria-invalid=true]]:ring-[3px] has-[[data-slot][aria-invalid=true]]:ring-destructive/20 has-[textarea]:rounded-xl has-[>[data-align=block-end]]:h-auto has-[>[data-align=block-end]]:flex-col has-[>[data-align=block-start]]:h-auto has-[>[data-align=block-start]]:flex-col has-[>textarea]:h-auto has-[>[data-align=block-end]]:[&>input]:pt-3 has-[>[data-align=block-start]]:[&>input]:pb-3 has-[>[data-align=inline-end]]:[&>input]:pr-1.5 has-[>[data-align=inline-start]]:[&>input]:pl-1.5',
17
+ 'group/input-group relative flex h-9 w-full min-w-0 items-center rounded border border-input bg-input/30 transition-colors outline-none in-data-[slot=combobox-content]:focus-within:border-inherit in-data-[slot=combobox-content]:focus-within:ring-0 has-data-[align=block-end]:rounded has-data-[align=block-start]:rounded has-[[data-slot=input-group-control]:focus-visible]:border-ring has-[[data-slot=input-group-control]:focus-visible]:ring-[3px] has-[[data-slot=input-group-control]:focus-visible]:ring-ring/50 has-[[data-slot][aria-invalid=true]]:border-destructive has-[[data-slot][aria-invalid=true]]:ring-[3px] has-[[data-slot][aria-invalid=true]]:ring-destructive/20 has-[textarea]:rounded has-[>[data-align=block-end]]:h-auto has-[>[data-align=block-end]]:flex-col has-[>[data-align=block-start]]:h-auto has-[>[data-align=block-start]]:flex-col has-[>textarea]:h-auto has-[>[data-align=block-end]]:[&>input]:pt-3 has-[>[data-align=block-start]]:[&>input]:pb-3 has-[>[data-align=inline-end]]:[&>input]:pr-1.5 has-[>[data-align=inline-start]]:[&>input]:pl-1.5',
18
18
  className
19
19
  )}
20
20
  {...props}
@@ -23,7 +23,7 @@ function InputGroup({ className, ...props }: React.ComponentProps<'div'>) {
23
23
  }
24
24
 
25
25
  const inputGroupAddonVariants = cva(
26
- "flex h-auto cursor-text items-center justify-center gap-2 py-2 text-sm font-medium text-muted-foreground select-none group-data-[disabled=true]/input-group:opacity-50 **:data-[slot=kbd]:rounded-4xl **:data-[slot=kbd]:bg-muted-foreground/10 **:data-[slot=kbd]:px-1.5 [&>svg:not([class*='size-'])]:size-4",
26
+ "flex h-auto cursor-text items-center justify-center gap-2 py-2 font-medium text-muted-foreground select-none group-data-[disabled=true]/input-group:opacity-50 **:data-[slot=kbd]:rounded **:data-[slot=kbd]:bg-muted-foreground/10 **:data-[slot=kbd]:px-1.5 [&>svg:not([class*='size-'])]:size-4",
27
27
  {
28
28
  variants: {
29
29
  align: {
@@ -70,7 +70,7 @@ function InputGroupAddon({
70
70
  )
71
71
  }
72
72
 
73
- const inputGroupButtonVariants = cva('flex items-center gap-2 rounded-4xl text-sm shadow-none', {
73
+ const inputGroupButtonVariants = cva('flex items-center gap-2 rounded shadow-none', {
74
74
  variants: {
75
75
  size: {
76
76
  xs: "h-6 gap-1 px-1.5 [&>svg:not([class*='size-'])]:size-3.5",
@@ -109,7 +109,7 @@ function InputGroupText({ className, ...props }: React.ComponentProps<'span'>) {
109
109
  return (
110
110
  <span
111
111
  className={cn(
112
- "flex items-center gap-2 text-sm text-muted-foreground [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4",
112
+ "flex items-center gap-2 text-muted-foreground [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4",
113
113
  className
114
114
  )}
115
115
  {...props}
@@ -122,7 +122,7 @@ function InputGroupInput({ className, ...props }: React.ComponentProps<'input'>)
122
122
  <Input
123
123
  data-slot="input-group-control"
124
124
  className={cn(
125
- 'flex-1 rounded-none border-0 bg-transparent shadow-none ring-0 focus-visible:ring-0 aria-invalid:ring-0',
125
+ 'flex-1 border-0 bg-transparent shadow-none ring-0 focus-visible:ring-0 aria-invalid:ring-0',
126
126
  className
127
127
  )}
128
128
  {...props}
@@ -135,7 +135,7 @@ function InputGroupTextarea({ className, ...props }: React.ComponentProps<'texta
135
135
  <Textarea
136
136
  data-slot="input-group-control"
137
137
  className={cn(
138
- 'flex-1 resize-none rounded-none border-0 bg-transparent py-2 shadow-none ring-0 focus-visible:ring-0 aria-invalid:ring-0',
138
+ 'flex-1 resize-none border-0 bg-transparent py-2 shadow-none ring-0 focus-visible:ring-0 aria-invalid:ring-0',
139
139
  className
140
140
  )}
141
141
  {...props}
@@ -31,7 +31,7 @@ function InputOTPGroup({ className, ...props }: React.ComponentProps<'div'>) {
31
31
  <div
32
32
  data-slot="input-otp-group"
33
33
  className={cn(
34
- 'flex items-center rounded-4xl has-aria-invalid:border-destructive has-aria-invalid:ring-[3px] has-aria-invalid:ring-destructive/20',
34
+ 'flex items-center rounded has-aria-invalid:border-destructive has-aria-invalid:ring-[3px] has-aria-invalid:ring-destructive/20',
35
35
  className
36
36
  )}
37
37
  {...props}
@@ -54,7 +54,7 @@ function InputOTPSlot({
54
54
  data-slot="input-otp-slot"
55
55
  data-active={isActive}
56
56
  className={cn(
57
- 'relative flex size-9 items-center justify-center border-y border-r border-input bg-input/30 text-sm transition-all outline-none first:rounded-l-4xl first:border-l last:rounded-r-4xl aria-invalid:border-destructive data-[active=true]:z-10 data-[active=true]:border-ring data-[active=true]:ring-[3px] data-[active=true]:ring-ring/50 data-[active=true]:aria-invalid:border-destructive data-[active=true]:aria-invalid:ring-destructive/20',
57
+ 'relative flex size-9 items-center justify-center border-y border-r border-input bg-input/30 transition-all outline-none first:rounded-l first:border-l last:rounded-r aria-invalid:border-destructive data-[active=true]:z-10 data-[active=true]:border-ring data-[active=true]:ring-[3px] data-[active=true]:ring-ring/50 data-[active=true]:aria-invalid:border-destructive data-[active=true]:aria-invalid:ring-destructive/20',
58
58
  className
59
59
  )}
60
60
  {...props}
@@ -8,7 +8,7 @@ function Input({ className, type, ...props }: React.ComponentProps<'input'>) {
8
8
  type={type}
9
9
  data-slot="input"
10
10
  className={cn(
11
- 'h-9 w-full min-w-0 rounded-4xl border border-input bg-input/30 px-3 py-1 text-sm transition-colors outline-none file:inline-flex file:h-7 file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground placeholder:text-muted-foreground focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-[3px] aria-invalid:ring-destructive/20',
11
+ 'h-9 w-full min-w-0 rounded border border-input bg-input/30 px-3 py-1 transition-colors outline-none file:inline-flex file:h-7 file:border-0 file:bg-transparent file:font-medium file:text-foreground placeholder:text-placeholder focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-[3px] aria-invalid:ring-destructive/20',
12
12
  className
13
13
  )}
14
14
  {...props}
@@ -32,7 +32,7 @@ function ItemSeparator({ className, ...props }: React.ComponentProps<typeof Sepa
32
32
  }
33
33
 
34
34
  const itemVariants = cva(
35
- 'group/item flex w-full flex-wrap items-center rounded-2xl border text-sm transition-colors duration-100 outline-none focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 [a]:transition-colors [a]:hover:bg-muted',
35
+ 'group/item flex w-full flex-wrap items-center rounded border transition-colors duration-100 outline-none focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 [a]:transition-colors [a]:hover:bg-muted',
36
36
  {
37
37
  variants: {
38
38
  variant: {
@@ -85,7 +85,7 @@ const itemMediaVariants = cva(
85
85
  default: 'bg-transparent',
86
86
  icon: "[&_svg:not([class*='size-'])]:size-4",
87
87
  image:
88
- 'size-10 overflow-hidden rounded-lg group-data-[size=sm]/item:size-8 group-data-[size=xs]/item:size-6 group-data-[size=xs]/item:rounded-md [&_img]:size-full [&_img]:object-cover'
88
+ 'size-10 overflow-hidden rounded group-data-[size=sm]/item:size-8 group-data-[size=xs]/item:size-6 group-data-[size=xs]/item:rounded [&_img]:size-full [&_img]:object-cover'
89
89
  }
90
90
  },
91
91
  defaultVariants: {
@@ -127,7 +127,7 @@ function ItemTitle({ className, ...props }: React.ComponentProps<'div'>) {
127
127
  <div
128
128
  data-slot="item-title"
129
129
  className={cn(
130
- 'line-clamp-1 flex w-fit items-center gap-2 text-sm leading-snug font-medium underline-offset-4',
130
+ 'line-clamp-1 flex w-fit items-center gap-2 leading-snug font-medium underline-offset-4',
131
131
  className
132
132
  )}
133
133
  {...props}
@@ -140,7 +140,7 @@ function ItemDescription({ className, ...props }: React.ComponentProps<'p'>) {
140
140
  <p
141
141
  data-slot="item-description"
142
142
  className={cn(
143
- 'line-clamp-2 text-left text-sm font-normal text-muted-foreground [&>a]:underline [&>a]:underline-offset-4 [&>a:hover]:text-primary',
143
+ 'line-clamp-2 text-left font-normal text-muted-foreground [&>a]:underline [&>a]:underline-offset-4 [&>a:hover]:text-primary',
144
144
  className
145
145
  )}
146
146
  {...props}
@@ -5,7 +5,7 @@ function Kbd({ className, ...props }: React.ComponentProps<'kbd'>) {
5
5
  <kbd
6
6
  data-slot="kbd"
7
7
  className={cn(
8
- "pointer-events-none inline-flex h-5 w-fit min-w-5 items-center justify-center gap-1 rounded-sm bg-muted px-1 font-sans text-xs font-medium text-muted-foreground select-none in-data-[slot=tooltip-content]:bg-background/20 in-data-[slot=tooltip-content]:text-background [&_svg:not([class*='size-'])]:size-3",
8
+ "pointer-events-none inline-flex h-5 w-fit min-w-5 items-center justify-center gap-1 rounded bg-muted px-1 font-sans font-medium text-muted-foreground select-none in-data-[slot=tooltip-content]:bg-background/20 in-data-[slot=tooltip-content]:text-background [&_svg:not([class*='size-'])]:size-3",
9
9
  className
10
10
  )}
11
11
  {...props}
@@ -11,7 +11,7 @@ const Label = React.forwardRef<HTMLLabelElement, React.ComponentProps<'label'>>(
11
11
  htmlFor={htmlFor}
12
12
  data-slot="label"
13
13
  className={cn(
14
- 'flex items-center gap-2 text-sm leading-none font-medium select-none group-data-[disabled=true]:pointer-events-none group-data-[disabled=true]:opacity-50 peer-disabled:cursor-not-allowed peer-disabled:opacity-50',
14
+ 'flex items-center gap-2 leading-none font-medium select-none group-data-[disabled=true]:pointer-events-none group-data-[disabled=true]:opacity-50 peer-disabled:cursor-not-allowed peer-disabled:opacity-50',
15
15
  className
16
16
  )}
17
17
  {...props}
@@ -25,7 +25,7 @@ function Menubar({ className, ...props }: MenubarPrimitive.Props) {
25
25
  return (
26
26
  <MenubarPrimitive
27
27
  data-slot="menubar"
28
- className={cn('flex h-9 items-center rounded-4xl border p-1', className)}
28
+ className={cn('flex h-9 items-center rounded border p-1', className)}
29
29
  {...props}
30
30
  />
31
31
  )
@@ -48,7 +48,7 @@ function MenubarTrigger({ className, ...props }: React.ComponentProps<typeof Dro
48
48
  <DropdownMenuTrigger
49
49
  data-slot="menubar-trigger"
50
50
  className={cn(
51
- 'flex items-center rounded-xl px-2 py-0.75 text-sm font-medium outline-hidden select-none hover:bg-muted aria-expanded:bg-muted',
51
+ 'flex items-center rounded px-2 py-0.75 font-medium outline-hidden select-none hover:bg-muted aria-expanded:bg-muted',
52
52
  className
53
53
  )}
54
54
  {...props}
@@ -70,7 +70,7 @@ function MenubarContent({
70
70
  alignOffset={alignOffset}
71
71
  sideOffset={sideOffset}
72
72
  className={cn(
73
- 'cn-menu-target cn-menu-translucent min-w-48 rounded-2xl bg-popover p-1 text-popover-foreground shadow-2xl ring-1 ring-foreground/5 duration-100 data-[side=bottom]:slide-in-from-top-2 data-[side=inline-end]:slide-in-from-left-2 data-[side=inline-start]:slide-in-from-right-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95',
73
+ 'cn-menu-target cn-menu-translucent min-w-48 rounded bg-popover p-1 text-popover-foreground shadow-2xl ring-1 ring-foreground/5 duration-100 data-[side=bottom]:slide-in-from-top-2 data-[side=inline-end]:slide-in-from-left-2 data-[side=inline-start]:slide-in-from-right-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95',
74
74
  className
75
75
  )}
76
76
  {...props}
@@ -90,7 +90,7 @@ function MenubarItem({
90
90
  data-inset={inset}
91
91
  data-variant={variant}
92
92
  className={cn(
93
- "group/menubar-item gap-2.5 rounded-xl px-3 py-2 text-sm focus:bg-accent focus:text-accent-foreground not-data-[variant=destructive]:focus:**:text-accent-foreground data-inset:pl-9.5 data-[variant=destructive]:text-destructive data-[variant=destructive]:focus:bg-destructive/10 data-[variant=destructive]:focus:text-destructive data-disabled:opacity-50 [&_svg:not([class*='size-'])]:size-4 data-[variant=destructive]:*:[svg]:text-destructive!",
93
+ "group/menubar-item gap-2.5 rounded px-3 py-2 focus:bg-accent focus:text-accent-foreground not-data-[variant=destructive]:focus:**:text-accent-foreground data-inset:pl-9.5 data-[variant=destructive]:text-destructive data-[variant=destructive]:focus:bg-destructive/10 data-[variant=destructive]:focus:text-destructive data-disabled:opacity-50 [&_svg:not([class*='size-'])]:size-4 data-[variant=destructive]:*:[svg]:text-destructive!",
94
94
  className
95
95
  )}
96
96
  {...props}
@@ -112,7 +112,7 @@ function MenubarCheckboxItem({
112
112
  data-slot="menubar-checkbox-item"
113
113
  data-inset={inset}
114
114
  className={cn(
115
- 'relative flex cursor-default items-center gap-2.5 rounded-xl py-2 pr-3 pl-9.5 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground focus:**:text-accent-foreground data-inset:pl-9.5 data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0',
115
+ 'relative flex cursor-default items-center gap-2.5 rounded py-2 pr-3 pl-9.5 outline-hidden select-none focus:bg-accent focus:text-accent-foreground focus:**:text-accent-foreground data-inset:pl-9.5 data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0',
116
116
  className
117
117
  )}
118
118
  checked={checked}
@@ -145,7 +145,7 @@ function MenubarRadioItem({
145
145
  data-slot="menubar-radio-item"
146
146
  data-inset={inset}
147
147
  className={cn(
148
- "relative flex cursor-default items-center gap-2.5 rounded-xl py-2 pr-3 pl-9.5 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground focus:**:text-accent-foreground data-inset:pl-9.5 data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
148
+ "relative flex cursor-default items-center gap-2.5 rounded py-2 pr-3 pl-9.5 outline-hidden select-none focus:bg-accent focus:text-accent-foreground focus:**:text-accent-foreground data-inset:pl-9.5 data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
149
149
  className
150
150
  )}
151
151
  {...props}
@@ -171,7 +171,7 @@ function MenubarLabel({
171
171
  <DropdownMenuLabel
172
172
  data-slot="menubar-label"
173
173
  data-inset={inset}
174
- className={cn('px-3.5 py-2.5 text-xs text-muted-foreground data-inset:pl-9.5', className)}
174
+ className={cn('px-3.5 py-2.5 text-muted-foreground data-inset:pl-9.5', className)}
175
175
  {...props}
176
176
  />
177
177
  )
@@ -198,7 +198,7 @@ function MenubarShortcut({
198
198
  <DropdownMenuShortcut
199
199
  data-slot="menubar-shortcut"
200
200
  className={cn(
201
- 'ml-auto text-xs tracking-widest text-muted-foreground group-focus/menubar-item:text-accent-foreground',
201
+ 'ml-auto tracking-widest text-muted-foreground group-focus/menubar-item:text-accent-foreground',
202
202
  className
203
203
  )}
204
204
  {...props}
@@ -222,7 +222,7 @@ function MenubarSubTrigger({
222
222
  data-slot="menubar-sub-trigger"
223
223
  data-inset={inset}
224
224
  className={cn(
225
- "gap-2 rounded-xl px-3 py-2 text-sm focus:bg-accent focus:text-accent-foreground data-inset:pl-9.5 data-open:bg-accent data-open:text-accent-foreground [&_svg:not([class*='size-'])]:size-4",
225
+ "gap-2 rounded px-3 py-2 focus:bg-accent focus:text-accent-foreground data-inset:pl-9.5 data-open:bg-accent data-open:text-accent-foreground [&_svg:not([class*='size-'])]:size-4",
226
226
  className
227
227
  )}
228
228
  {...props}
@@ -238,7 +238,7 @@ function MenubarSubContent({
238
238
  <DropdownMenuSubContent
239
239
  data-slot="menubar-sub-content"
240
240
  className={cn(
241
- 'cn-menu-target cn-menu-translucent min-w-32 rounded-2xl bg-popover p-1 text-popover-foreground shadow-2xl ring-1 ring-foreground/5 duration-100 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 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',
241
+ 'cn-menu-target cn-menu-translucent min-w-32 rounded bg-popover p-1 text-popover-foreground shadow-2xl ring-1 ring-foreground/5 duration-100 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 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',
242
242
  className
243
243
  )}
244
244
  {...props}
@@ -19,7 +19,7 @@ function NativeSelect({ className, size = 'default', ...props }: NativeSelectPro
19
19
  <select
20
20
  data-slot="native-select"
21
21
  data-size={size}
22
- className="h-9 w-full min-w-0 appearance-none rounded-4xl border border-input bg-input/30 py-1 pr-8 pl-3 text-sm transition-colors outline-none select-none selection:bg-primary selection:text-primary-foreground placeholder:text-muted-foreground focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:pointer-events-none disabled:cursor-not-allowed aria-invalid:border-destructive aria-invalid:ring-[3px] aria-invalid:ring-destructive/20 data-[size=sm]:h-8"
22
+ className="h-9 w-full min-w-0 appearance-none rounded border border-input bg-input/30 py-1 pr-8 pl-3 transition-colors outline-none select-none selection:bg-primary selection:text-primary-foreground placeholder:text-placeholder focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:pointer-events-none disabled:cursor-not-allowed aria-invalid:border-destructive aria-invalid:ring-[3px] aria-invalid:ring-destructive/20 data-[size=sm]:h-8"
23
23
  {...props}
24
24
  />
25
25
  <ChevronDownIcon