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
@@ -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}
@@ -16,7 +16,7 @@ function Avatar({
16
16
  data-slot="avatar"
17
17
  data-size={size}
18
18
  className={cn(
19
- 'group/avatar relative flex size-8 shrink-0 rounded-full select-none after:absolute after:inset-0 after:rounded-full after:border after:border-border after:mix-blend-darken data-[size=lg]:size-10 data-[size=sm]:size-6',
19
+ 'group/avatar relative flex size-8 shrink-0 rounded select-none after:absolute after:inset-0 after:rounded after:border after:border-border after:mix-blend-darken data-[size=lg]:size-10 data-[size=sm]:size-6',
20
20
  className
21
21
  )}
22
22
  {...props}
@@ -28,7 +28,7 @@ function AvatarImage({ className, ...props }: AvatarPrimitive.Image.Props) {
28
28
  return (
29
29
  <AvatarPrimitive.Image
30
30
  data-slot="avatar-image"
31
- className={cn('aspect-square size-full rounded-full object-cover', className)}
31
+ className={cn('aspect-square size-full rounded object-cover', className)}
32
32
  {...props}
33
33
  />
34
34
  )
@@ -39,7 +39,7 @@ function AvatarFallback({ className, ...props }: AvatarPrimitive.Fallback.Props)
39
39
  <AvatarPrimitive.Fallback
40
40
  data-slot="avatar-fallback"
41
41
  className={cn(
42
- 'flex size-full items-center justify-center rounded-full bg-muted text-sm text-muted-foreground group-data-[size=sm]/avatar:text-xs',
42
+ 'flex size-full items-center justify-center rounded bg-muted text-muted-foreground',
43
43
  className
44
44
  )}
45
45
  {...props}
@@ -52,7 +52,7 @@ function AvatarBadge({ className, ...props }: React.ComponentProps<'span'>) {
52
52
  <span
53
53
  data-slot="avatar-badge"
54
54
  className={cn(
55
- 'absolute right-0 bottom-0 z-10 inline-flex items-center justify-center rounded-full bg-primary text-primary-foreground bg-blend-color ring-2 ring-background select-none',
55
+ 'absolute right-0 bottom-0 z-10 inline-flex items-center justify-center rounded bg-primary text-primary-foreground bg-blend-color ring-2 ring-background select-none',
56
56
  'group-data-[size=sm]/avatar:size-2 group-data-[size=sm]/avatar:[&>svg]:hidden',
57
57
  'group-data-[size=default]/avatar:size-2.5 group-data-[size=default]/avatar:[&>svg]:size-2',
58
58
  'group-data-[size=lg]/avatar:size-3 group-data-[size=lg]/avatar:[&>svg]:size-2',
@@ -81,7 +81,7 @@ function AvatarGroupCount({ className, ...props }: React.ComponentProps<'div'>)
81
81
  <div
82
82
  data-slot="avatar-group-count"
83
83
  className={cn(
84
- 'relative flex size-8 shrink-0 items-center justify-center rounded-full bg-muted text-sm text-muted-foreground ring-2 ring-background group-has-data-[size=lg]/avatar-group:size-10 group-has-data-[size=sm]/avatar-group:size-6 [&>svg]:size-4 group-has-data-[size=lg]/avatar-group:[&>svg]:size-5 group-has-data-[size=sm]/avatar-group:[&>svg]:size-3',
84
+ 'relative flex size-8 shrink-0 items-center justify-center rounded bg-muted text-muted-foreground ring-2 ring-background group-has-data-[size=lg]/avatar-group:size-10 group-has-data-[size=sm]/avatar-group:size-6 [&>svg]:size-4 group-has-data-[size=lg]/avatar-group:[&>svg]:size-5 group-has-data-[size=sm]/avatar-group:[&>svg]:size-3',
85
85
  className
86
86
  )}
87
87
  {...props}
@@ -5,7 +5,7 @@ import { useRender } from '@base-ui/react/use-render'
5
5
  import { cva } from 'class-variance-authority'
6
6
 
7
7
  const badgeVariants = cva(
8
- 'group/badge inline-flex h-5 w-fit shrink-0 items-center justify-center gap-1 overflow-hidden rounded-4xl border border-transparent px-2 py-0.5 text-xs font-medium whitespace-nowrap transition-all focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 aria-invalid:border-destructive aria-invalid:ring-destructive/20 [&>svg]:pointer-events-none [&>svg]:size-3!',
8
+ 'group/badge inline-flex h-5 w-fit shrink-0 items-center justify-center gap-1 overflow-hidden rounded border border-transparent px-2 py-0.5 font-medium whitespace-nowrap transition-all focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 aria-invalid:border-destructive aria-invalid:ring-destructive/20 [&>svg]:pointer-events-none [&>svg]:size-3!',
9
9
  {
10
10
  variants: {
11
11
  variant: {
@@ -13,8 +13,7 @@ const badgeVariants = cva(
13
13
  secondary: 'bg-secondary text-secondary-foreground [a]:hover:bg-secondary/80',
14
14
  destructive:
15
15
  'bg-destructive/10 text-destructive focus-visible:ring-destructive/20 [a]:hover:bg-destructive/20',
16
- success:
17
- 'bg-emerald-500/10 text-emerald-700 focus-visible:ring-emerald-500/20 [a]:hover:bg-emerald-500/20',
16
+ success: 'bg-success/10 text-success focus-visible:ring-success/20 [a]:hover:bg-success/20',
18
17
  outline:
19
18
  'border-border bg-input/30 text-foreground [a]:hover:bg-muted [a]:hover:text-muted-foreground',
20
19
  ghost: 'hover:bg-muted hover:text-muted-foreground',
@@ -13,7 +13,7 @@ function BreadcrumbList({ className, ...props }: React.ComponentProps<'ol'>) {
13
13
  <ol
14
14
  data-slot="breadcrumb-list"
15
15
  className={cn(
16
- 'flex flex-wrap items-center gap-2.5 text-sm wrap-break-word text-muted-foreground',
16
+ 'flex flex-wrap items-center gap-2.5 wrap-break-word text-muted-foreground',
17
17
  className
18
18
  )}
19
19
  {...props}
@@ -6,14 +6,14 @@ import { useRender } from '@base-ui/react/use-render'
6
6
  import { cva } from 'class-variance-authority'
7
7
 
8
8
  const buttonGroupVariants = cva(
9
- "flex w-fit items-stretch *:focus-visible:relative *:focus-visible:z-10 has-[>[data-slot=button-group]]:gap-2 has-[select[aria-hidden=true]:last-child]:[&>[data-slot=select-trigger]:last-of-type]:rounded-r-4xl [&>[data-slot=select-trigger]:not([class*='w-'])]:w-fit [&>input]:flex-1",
9
+ "flex w-fit items-stretch *:focus-visible:relative *:focus-visible:z-10 has-[>[data-slot=button-group]]:gap-2 has-[select[aria-hidden=true]:last-child]:[&>[data-slot=select-trigger]:last-of-type]:rounded-r [&>[data-slot=select-trigger]:not([class*='w-'])]:w-fit [&>input]:flex-1",
10
10
  {
11
11
  variants: {
12
12
  orientation: {
13
13
  horizontal:
14
- '*:data-slot:rounded-r-none [&>[data-slot]:not(:has(~[data-slot]))]:rounded-r-4xl! [&>[data-slot]~[data-slot]]:rounded-l-none [&>[data-slot]~[data-slot]]:border-l-0',
14
+ '[&>[data-slot]:not(:has(~[data-slot]))]:rounded-r! [&>[data-slot]~[data-slot]]:border-l-0',
15
15
  vertical:
16
- 'flex-col *:data-slot:rounded-b-none [&>[data-slot]:not(:has(~[data-slot]))]:rounded-b-4xl! [&>[data-slot]~[data-slot]]:rounded-t-none [&>[data-slot]~[data-slot]]:border-t-0'
16
+ 'flex-col [&>[data-slot]:not(:has(~[data-slot]))]:rounded-b! [&>[data-slot]~[data-slot]]:border-t-0'
17
17
  }
18
18
  },
19
19
  defaultVariants: {
@@ -44,7 +44,7 @@ function ButtonGroupText({ className, render, ...props }: useRender.ComponentPro
44
44
  props: mergeProps<'div'>(
45
45
  {
46
46
  className: cn(
47
- "flex items-center gap-2 rounded-4xl border bg-muted px-2.5 text-sm font-medium [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4",
47
+ "flex items-center gap-2 rounded border bg-muted px-2.5 font-medium [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4",
48
48
  className
49
49
  )
50
50
  },
@@ -4,7 +4,7 @@ import { Button as ButtonPrimitive } from '@base-ui/react/button'
4
4
  import { cva } from 'class-variance-authority'
5
5
 
6
6
  const buttonVariants = cva(
7
- "group/button inline-flex shrink-0 items-center justify-center rounded-4xl border border-transparent bg-clip-padding text-sm font-medium whitespace-nowrap transition-all outline-none select-none focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 active:not-aria-[haspopup]:translate-y-px disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-[3px] aria-invalid:ring-destructive/20 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
7
+ "group/button inline-flex shrink-0 items-center justify-center rounded border border-transparent bg-clip-padding font-medium whitespace-nowrap transition-all outline-none select-none focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 active:not-aria-[haspopup]:translate-y-px disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-[3px] aria-invalid:ring-destructive/20 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
8
8
  {
9
9
  variants: {
10
10
  variant: {
@@ -24,7 +24,7 @@ const buttonVariants = cva(
24
24
  size: {
25
25
  default:
26
26
  'h-9 gap-1.5 px-3 has-data-[icon=inline-end]:pr-2.5 has-data-[icon=inline-start]:pl-2.5',
27
- xs: "h-6 gap-1 px-2.5 text-xs has-data-[icon=inline-end]:pr-2 has-data-[icon=inline-start]:pl-2 [&_svg:not([class*='size-'])]:size-3",
27
+ xs: "h-6 gap-1 px-2.5 has-data-[icon=inline-end]:pr-2 has-data-[icon=inline-start]:pl-2 [&_svg:not([class*='size-'])]:size-3",
28
28
  sm: 'h-8 gap-1 px-3 has-data-[icon=inline-end]:pr-2 has-data-[icon=inline-start]:pl-2',
29
29
  lg: 'h-10 gap-1.5 px-4 has-data-[icon=inline-end]:pr-3 has-data-[icon=inline-start]:pl-3',
30
30
  icon: 'size-9',
@@ -26,7 +26,7 @@ function Calendar({
26
26
  <DayPicker
27
27
  showOutsideDays={showOutsideDays}
28
28
  className={cn(
29
- 'group/calendar bg-background p-3 [--cell-radius:var(--radius-4xl)] [--cell-size:--spacing(8)] in-data-[slot=card-content]:bg-transparent in-data-[slot=popover-content]:bg-transparent',
29
+ 'group/calendar bg-background p-3 [--cell-size:--spacing(8)] in-data-[slot=card-content]:bg-transparent in-data-[slot=popover-content]:bg-transparent',
30
30
  String.raw`rtl:**:[.rdp-button\_next>svg]:rotate-180`,
31
31
  String.raw`rtl:**:[.rdp-button\_previous>svg]:rotate-180`,
32
32
  className
@@ -60,53 +60,47 @@ function Calendar({
60
60
  defaultClassNames.month_caption
61
61
  ),
62
62
  dropdowns: cn(
63
- 'flex h-(--cell-size) w-full items-center justify-center gap-1.5 text-sm font-medium',
63
+ 'flex h-(--cell-size) w-full items-center justify-center gap-1.5 font-medium',
64
64
  defaultClassNames.dropdowns
65
65
  ),
66
66
  dropdown_root: cn(
67
- 'cn-calendar-dropdown-root relative rounded-(--cell-radius)',
67
+ 'cn-calendar-dropdown-root relative rounded',
68
68
  defaultClassNames.dropdown_root
69
69
  ),
70
70
  dropdown: cn('absolute inset-0 bg-popover opacity-0', defaultClassNames.dropdown),
71
71
  caption_label: cn(
72
72
  'font-medium select-none',
73
73
  captionLayout === 'label'
74
- ? 'cn-calendar-caption text-sm'
75
- : 'cn-calendar-caption-label flex items-center gap-1 rounded-(--cell-radius) text-sm [&>svg]:size-3.5 [&>svg]:text-muted-foreground',
74
+ ? 'cn-calendar-caption'
75
+ : 'cn-calendar-caption-label flex items-center gap-1 rounded [&>svg]:size-3.5 [&>svg]:text-muted-foreground',
76
76
  defaultClassNames.caption_label
77
77
  ),
78
78
  month_grid: cn('w-full border-collapse', defaultClassNames.month_grid),
79
79
  weekdays: cn('flex', defaultClassNames.weekdays),
80
80
  weekday: cn(
81
- 'flex-1 rounded-(--cell-radius) text-[0.8rem] font-normal text-muted-foreground select-none',
81
+ 'flex-1 rounded font-normal text-muted-foreground select-none',
82
82
  defaultClassNames.weekday
83
83
  ),
84
84
  week: cn('mt-2 flex w-full', defaultClassNames.week),
85
85
  week_number_header: cn('w-(--cell-size) select-none', defaultClassNames.week_number_header),
86
- week_number: cn(
87
- 'text-[0.8rem] text-muted-foreground select-none',
88
- defaultClassNames.week_number
89
- ),
86
+ week_number: cn('text-muted-foreground select-none', defaultClassNames.week_number),
90
87
  day: cn(
91
- 'group/day relative aspect-square h-full w-full rounded-(--cell-radius) p-0 text-center select-none [&:last-child[data-selected=true]_button]:rounded-r-(--cell-radius)',
88
+ 'group/day relative aspect-square h-full w-full rounded p-0 text-center select-none [&:last-child[data-selected=true]_button]:rounded-r',
92
89
  props.showWeekNumber
93
- ? '[&:nth-child(2)[data-selected=true]_button]:rounded-l-(--cell-radius)'
94
- : '[&:first-child[data-selected=true]_button]:rounded-l-(--cell-radius)',
90
+ ? '[&:nth-child(2)[data-selected=true]_button]:rounded-l'
91
+ : '[&:first-child[data-selected=true]_button]:rounded-l',
95
92
  defaultClassNames.day
96
93
  ),
97
94
  range_start: cn(
98
- 'relative isolate z-0 rounded-l-(--cell-radius) bg-muted after:absolute after:inset-y-0 after:right-0 after:w-4 after:bg-muted',
95
+ 'relative isolate z-0 rounded-l bg-muted after:absolute after:inset-y-0 after:right-0 after:w-4 after:bg-muted',
99
96
  defaultClassNames.range_start
100
97
  ),
101
- range_middle: cn('rounded-none', defaultClassNames.range_middle),
98
+ range_middle: defaultClassNames.range_middle,
102
99
  range_end: cn(
103
- 'relative isolate z-0 rounded-r-(--cell-radius) bg-muted after:absolute after:inset-y-0 after:left-0 after:w-4 after:bg-muted',
100
+ 'relative isolate z-0 rounded-r bg-muted after:absolute after:inset-y-0 after:left-0 after:w-4 after:bg-muted',
104
101
  defaultClassNames.range_end
105
102
  ),
106
- today: cn(
107
- 'rounded-(--cell-radius) bg-muted text-foreground data-[selected=true]:rounded-none',
108
- defaultClassNames.today
109
- ),
103
+ today: cn('rounded bg-muted text-foreground', defaultClassNames.today),
110
104
  outside: cn(
111
105
  'text-muted-foreground aria-selected:text-muted-foreground',
112
106
  defaultClassNames.outside
@@ -176,7 +170,7 @@ function CalendarDayButton({
176
170
  data-range-end={modifiers.range_end}
177
171
  data-range-middle={modifiers.range_middle}
178
172
  className={cn(
179
- 'relative isolate z-10 flex aspect-square size-auto w-full min-w-(--cell-size) flex-col gap-1 border-0 leading-none font-normal group-data-[focused=true]/day:relative group-data-[focused=true]/day:z-10 group-data-[focused=true]/day:border-ring group-data-[focused=true]/day:ring-[3px] group-data-[focused=true]/day:ring-ring/50 data-[range-end=true]:rounded-(--cell-radius) data-[range-end=true]:rounded-r-(--cell-radius) data-[range-end=true]:bg-primary data-[range-end=true]:text-primary-foreground data-[range-middle=true]:rounded-none data-[range-middle=true]:bg-muted data-[range-middle=true]:text-foreground data-[range-start=true]:rounded-(--cell-radius) data-[range-start=true]:rounded-l-(--cell-radius) data-[range-start=true]:bg-primary data-[range-start=true]:text-primary-foreground data-[selected-single=true]:bg-primary data-[selected-single=true]:text-primary-foreground [&>span]:text-xs [&>span]:opacity-70',
173
+ 'relative isolate z-10 flex aspect-square size-auto w-full min-w-(--cell-size) flex-col gap-1 border-0 leading-none font-normal group-data-[focused=true]/day:relative group-data-[focused=true]/day:z-10 group-data-[focused=true]/day:border-ring group-data-[focused=true]/day:ring-[3px] group-data-[focused=true]/day:ring-ring/50 data-[range-end=true]:rounded data-[range-end=true]:rounded-r data-[range-end=true]:bg-primary data-[range-end=true]:text-primary-foreground data-[range-middle=true]:bg-muted data-[range-middle=true]:text-foreground data-[range-start=true]:rounded data-[range-start=true]:rounded-l data-[range-start=true]:bg-primary data-[range-start=true]:text-primary-foreground data-[selected-single=true]:bg-primary data-[selected-single=true]:text-primary-foreground [&>span]:opacity-70',
180
174
  defaultClassNames.day,
181
175
  className
182
176
  )}
@@ -11,7 +11,7 @@ function Card({
11
11
  data-slot="card"
12
12
  data-size={size}
13
13
  className={cn(
14
- 'group/card flex flex-col gap-(--card-spacing) overflow-hidden rounded-2xl bg-card py-(--card-spacing) text-sm text-card-foreground ring-1 ring-foreground/10 [--card-spacing:--spacing(6)] has-[>img:first-child]:pt-0 data-[size=sm]:[--card-spacing:--spacing(4)] *:[img:first-child]:rounded-t-xl *:[img:last-child]:rounded-b-xl',
14
+ 'group/card flex flex-col gap-(--card-spacing) overflow-hidden rounded bg-card py-(--card-spacing) text-card-foreground ring-1 ring-foreground/10 [--card-spacing:--spacing(6)] has-[>img:first-child]:pt-0 data-[size=sm]:[--card-spacing:--spacing(4)] *:[img:first-child]:rounded-t *:[img:last-child]:rounded-b',
15
15
  className
16
16
  )}
17
17
  {...props}
@@ -24,7 +24,7 @@ function CardHeader({ className, ...props }: React.ComponentProps<'div'>) {
24
24
  <div
25
25
  data-slot="card-header"
26
26
  className={cn(
27
- 'group/card-header grid auto-rows-min items-start gap-2 rounded-t-xl px-(--card-spacing) has-data-[slot=card-action]:grid-cols-[1fr_auto] has-data-[slot=card-description]:grid-rows-[auto_auto] [.border-b]:pb-(--card-spacing)',
27
+ 'group/card-header grid auto-rows-min items-start gap-2 rounded-t px-(--card-spacing) has-data-[slot=card-action]:grid-cols-[1fr_auto] has-data-[slot=card-description]:grid-rows-[auto_auto] [.border-b]:pb-(--card-spacing)',
28
28
  className
29
29
  )}
30
30
  {...props}
@@ -36,7 +36,7 @@ function CardTitle({ className, ...props }: React.ComponentProps<'div'>) {
36
36
  return (
37
37
  <div
38
38
  data-slot="card-title"
39
- className={cn('cn-font-heading text-base font-medium', className)}
39
+ className={cn('cn-font-heading font-medium', className)}
40
40
  {...props}
41
41
  />
42
42
  )
@@ -46,7 +46,7 @@ function CardDescription({ className, ...props }: React.ComponentProps<'div'>) {
46
46
  return (
47
47
  <div
48
48
  data-slot="card-description"
49
- className={cn('text-sm text-muted-foreground', className)}
49
+ className={cn('text-muted-foreground', className)}
50
50
  {...props}
51
51
  />
52
52
  )
@@ -73,7 +73,7 @@ function CardFooter({ className, ...props }: React.ComponentProps<'div'>) {
73
73
  <div
74
74
  data-slot="card-footer"
75
75
  className={cn(
76
- 'flex items-center rounded-b-xl px-(--card-spacing) [.border-t]:pt-(--card-spacing)',
76
+ 'flex items-center rounded-b px-(--card-spacing) [.border-t]:pt-(--card-spacing)',
77
77
  className
78
78
  )}
79
79
  {...props}
@@ -184,7 +184,7 @@ function CarouselPrevious({
184
184
  variant={variant}
185
185
  size={size}
186
186
  className={cn(
187
- 'absolute touch-manipulation rounded-full',
187
+ 'absolute touch-manipulation rounded',
188
188
  {
189
189
  'inset-y-0 -left-12 my-auto': orientation === 'horizontal',
190
190
  '-top-12 left-1/2 -translate-x-1/2 rotate-90': orientation === 'vertical'
@@ -215,7 +215,7 @@ function CarouselNext({
215
215
  variant={variant}
216
216
  size={size}
217
217
  className={cn(
218
- 'absolute touch-manipulation rounded-full',
218
+ 'absolute touch-manipulation rounded',
219
219
  {
220
220
  'inset-y-0 -right-12 my-auto': orientation === 'horizontal',
221
221
  '-bottom-12 left-1/2 -translate-x-1/2 rotate-90': orientation === 'vertical'
@@ -57,7 +57,7 @@ function ChartContainer({
57
57
  data-slot="chart"
58
58
  data-chart={chartId}
59
59
  className={cn(
60
- "flex aspect-video justify-center text-xs [&_.recharts-cartesian-axis-tick_text]:fill-muted-foreground [&_.recharts-cartesian-grid_line[stroke='#ccc']]:stroke-border/50 [&_.recharts-curve.recharts-tooltip-cursor]:stroke-border [&_.recharts-dot[stroke='#fff']]:stroke-transparent [&_.recharts-layer]:outline-hidden [&_.recharts-polar-grid_[stroke='#ccc']]:stroke-border [&_.recharts-radial-bar-background-sector]:fill-muted [&_.recharts-rectangle.recharts-tooltip-cursor]:fill-muted [&_.recharts-reference-line_[stroke='#ccc']]:stroke-border [&_.recharts-sector]:outline-hidden [&_.recharts-sector[stroke='#fff']]:stroke-transparent [&_.recharts-surface]:outline-hidden",
60
+ "flex aspect-video justify-center [&_.recharts-cartesian-axis-tick_text]:fill-muted-foreground [&_.recharts-cartesian-grid_line[stroke='#ccc']]:stroke-border/50 [&_.recharts-curve.recharts-tooltip-cursor]:stroke-border [&_.recharts-dot[stroke='#fff']]:stroke-transparent [&_.recharts-layer]:outline-hidden [&_.recharts-polar-grid_[stroke='#ccc']]:stroke-border [&_.recharts-radial-bar-background-sector]:fill-muted [&_.recharts-rectangle.recharts-tooltip-cursor]:fill-muted [&_.recharts-reference-line_[stroke='#ccc']]:stroke-border [&_.recharts-sector]:outline-hidden [&_.recharts-sector[stroke='#fff']]:stroke-transparent [&_.recharts-surface]:outline-hidden",
61
61
  className
62
62
  )}
63
63
  {...props}
@@ -156,7 +156,7 @@ function ChartTooltipContent({
156
156
  return (
157
157
  <div
158
158
  className={cn(
159
- 'grid min-w-32 items-start gap-1.5 rounded-lg border border-border/50 bg-background px-2.5 py-1.5 text-xs shadow-xl',
159
+ 'grid min-w-32 items-start gap-1.5 rounded border border-border/50 bg-background px-2.5 py-1.5 shadow-xl',
160
160
  className
161
161
  )}
162
162
  >
@@ -187,7 +187,7 @@ function ChartTooltipContent({
187
187
  !hideIndicator && (
188
188
  <div
189
189
  className={cn(
190
- 'shrink-0 rounded-[2px] border-(--color-border) bg-(--color-bg)',
190
+ 'shrink-0 rounded border-(--color-border) bg-(--color-bg)',
191
191
  {
192
192
  'h-2.5 w-2.5': indicator === 'dot',
193
193
  'w-1': indicator === 'line',
@@ -278,7 +278,7 @@ function ChartLegendContent({
278
278
  <itemConfig.icon />
279
279
  ) : (
280
280
  <div
281
- className="h-2 w-2 shrink-0 rounded-[2px]"
281
+ className="h-2 w-2 shrink-0 rounded"
282
282
  style={{
283
283
  backgroundColor: item.color
284
284
  }}
@@ -9,7 +9,7 @@ function Checkbox({ className, ...props }: CheckboxPrimitive.Root.Props) {
9
9
  <CheckboxPrimitive.Root
10
10
  data-slot="checkbox"
11
11
  className={cn(
12
- 'peer relative flex size-4 shrink-0 items-center justify-center rounded-[6px] border border-input transition-shadow outline-none group-has-disabled/field:opacity-50 after:absolute after:-inset-x-3 after:-inset-y-2 focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 aria-invalid:aria-checked:border-primary data-checked:border-primary data-checked:bg-primary data-checked:text-primary-foreground',
12
+ 'peer relative flex size-4 shrink-0 items-center justify-center rounded border border-input transition-shadow outline-none group-has-disabled/field:opacity-50 after:absolute after:-inset-x-3 after:-inset-y-2 focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 aria-invalid:aria-checked:border-primary data-checked:border-primary data-checked:bg-primary data-checked:text-primary-foreground',
13
13
  className
14
14
  )}
15
15
  {...props}
@@ -113,7 +113,7 @@ function ComboboxContent({
113
113
  data-slot="combobox-content"
114
114
  data-chips={!!anchor}
115
115
  className={cn(
116
- 'cn-menu-target cn-menu-translucent group/combobox-content relative max-h-(--available-height) w-(--anchor-width) max-w-(--available-width) min-w-[calc(var(--anchor-width)+--spacing(7))] origin-(--transform-origin) overflow-hidden rounded-2xl bg-popover text-popover-foreground shadow-2xl ring-1 ring-foreground/5 duration-100 data-[chips=true]:min-w-(--anchor-width) 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-[slot=input-group]:m-1 *:data-[slot=input-group]:mb-0 *:data-[slot=input-group]:h-9 *:data-[slot=input-group]:border-none *:data-[slot=input-group]:bg-input/30 *:data-[slot=input-group]:shadow-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',
116
+ 'cn-menu-target cn-menu-translucent group/combobox-content relative max-h-(--available-height) w-(--anchor-width) max-w-(--available-width) min-w-[calc(var(--anchor-width)+--spacing(7))] origin-(--transform-origin) overflow-hidden rounded bg-popover text-popover-foreground shadow-2xl ring-1 ring-foreground/5 duration-100 data-[chips=true]:min-w-(--anchor-width) 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-[slot=input-group]:m-1 *:data-[slot=input-group]:mb-0 *:data-[slot=input-group]:h-9 *:data-[slot=input-group]:border-none *:data-[slot=input-group]:bg-input/30 *:data-[slot=input-group]:shadow-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',
117
117
  className
118
118
  )}
119
119
  {...props}
@@ -141,7 +141,7 @@ function ComboboxItem({ className, children, ...props }: ComboboxPrimitive.Item.
141
141
  <ComboboxPrimitive.Item
142
142
  data-slot="combobox-item"
143
143
  className={cn(
144
- "relative flex w-full cursor-default items-center gap-2.5 rounded-xl py-2 pr-8 pl-3 text-sm outline-hidden select-none data-highlighted:bg-accent data-highlighted:text-accent-foreground not-data-[variant=destructive]:data-highlighted:**:text-accent-foreground data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
144
+ "relative flex w-full cursor-default items-center gap-2.5 rounded py-2 pr-8 pl-3 outline-hidden select-none data-highlighted:bg-accent data-highlighted:text-accent-foreground not-data-[variant=destructive]:data-highlighted:**:text-accent-foreground data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
145
145
  className
146
146
  )}
147
147
  {...props}
@@ -166,7 +166,7 @@ function ComboboxLabel({ className, ...props }: ComboboxPrimitive.GroupLabel.Pro
166
166
  return (
167
167
  <ComboboxPrimitive.GroupLabel
168
168
  data-slot="combobox-label"
169
- className={cn('px-3.5 py-2.5 text-xs text-muted-foreground', className)}
169
+ className={cn('px-3.5 py-2.5 text-muted-foreground', className)}
170
170
  {...props}
171
171
  />
172
172
  )
@@ -181,7 +181,7 @@ function ComboboxEmpty({ className, ...props }: ComboboxPrimitive.Empty.Props) {
181
181
  <ComboboxPrimitive.Empty
182
182
  data-slot="combobox-empty"
183
183
  className={cn(
184
- 'hidden w-full justify-center py-2 text-center text-sm text-muted-foreground group-data-empty/combobox-content:flex',
184
+ 'hidden w-full justify-center py-2 text-center text-muted-foreground group-data-empty/combobox-content:flex',
185
185
  className
186
186
  )}
187
187
  {...props}
@@ -207,7 +207,7 @@ function ComboboxChips({
207
207
  <ComboboxPrimitive.Chips
208
208
  data-slot="combobox-chips"
209
209
  className={cn(
210
- 'flex min-h-9 flex-wrap items-center gap-1.5 rounded-4xl border border-input bg-input/30 bg-clip-padding px-2.5 py-1.5 text-sm transition-colors focus-within:border-ring focus-within:ring-[3px] focus-within:ring-ring/50 has-aria-invalid:border-destructive has-aria-invalid:ring-[3px] has-aria-invalid:ring-destructive/20 has-data-[slot=combobox-chip]:px-1.5',
210
+ 'flex min-h-9 flex-wrap items-center gap-1.5 rounded border border-input bg-input/30 bg-clip-padding px-2.5 py-1.5 transition-colors focus-within:border-ring focus-within:ring-[3px] focus-within:ring-ring/50 has-aria-invalid:border-destructive has-aria-invalid:ring-[3px] has-aria-invalid:ring-destructive/20 has-data-[slot=combobox-chip]:px-1.5',
211
211
  className
212
212
  )}
213
213
  {...props}
@@ -227,7 +227,7 @@ function ComboboxChip({
227
227
  <ComboboxPrimitive.Chip
228
228
  data-slot="combobox-chip"
229
229
  className={cn(
230
- 'flex h-[calc(--spacing(5.5))] w-fit items-center justify-center gap-1 rounded-4xl bg-muted-foreground/10 px-2 text-xs font-medium whitespace-nowrap text-foreground has-disabled:pointer-events-none has-disabled:cursor-not-allowed has-disabled:opacity-50 has-data-[slot=combobox-chip-remove]:pr-0',
230
+ 'flex h-[calc(--spacing(5.5))] w-fit items-center justify-center gap-1 rounded bg-muted-foreground/10 px-2 font-medium whitespace-nowrap text-foreground has-disabled:pointer-events-none has-disabled:cursor-not-allowed has-disabled:opacity-50 has-data-[slot=combobox-chip-remove]:pr-0',
231
231
  className
232
232
  )}
233
233
  {...props}