betterstart-cli 0.0.119 → 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.
- package/dist/assets/adapters/next/integrations/resend/actions/render-password-reset-email.ts +5 -5
- package/dist/assets/adapters/next/templates/init/admin-globals.css +35 -23
- package/dist/assets/adapters/next/templates/init/components/layouts/admin-sidebar-branding-skeleton.tsx +1 -1
- package/dist/assets/adapters/next/templates/init/components/layouts/admin-sidebar-user-menu-skeleton.tsx +1 -1
- package/dist/assets/adapters/next/templates/init/components/layouts/admin-sidebar-user-menu.tsx +3 -3
- package/dist/assets/adapters/next/templates/init/components/layouts/content-skeleton.tsx +13 -13
- package/dist/assets/adapters/next/templates/init/components/layouts/sidebar-branding.tsx +2 -2
- package/dist/assets/adapters/next/templates/init/components/shared/data-table/data-grid-body.tsx +1 -1
- package/dist/assets/adapters/next/templates/init/components/shared/data-table/data-grid-header.tsx +1 -1
- package/dist/assets/adapters/next/templates/init/components/shared/data-table/data-grid.tsx +1 -1
- package/dist/assets/adapters/next/templates/init/components/shared/data-table/data-table-pagination.tsx +2 -2
- package/dist/assets/adapters/next/templates/init/components/shared/dev-mode/copyable-code-block.tsx +3 -7
- package/dist/assets/adapters/next/templates/init/components/shared/dev-mode/lifecycle-hooks-tab.tsx +2 -2
- package/dist/assets/adapters/next/templates/init/components/shared/dev-mode/plain-code-fallback.tsx +1 -1
- package/dist/assets/adapters/next/templates/init/components/shared/dev-mode/snippets-tab.tsx +1 -1
- package/dist/assets/adapters/next/templates/init/components/shared/dev-mode-integrate.tsx +2 -2
- package/dist/assets/adapters/next/templates/init/components/shared/entity-metadata.tsx +1 -1
- package/dist/assets/adapters/next/templates/init/components/shared/entity-versions/entity-version-item.tsx +2 -2
- package/dist/assets/adapters/next/templates/init/components/shared/entity-versions/entity-versions-current-row.tsx +2 -2
- package/dist/assets/adapters/next/templates/init/components/shared/entity-versions/entity-versions-drawer.tsx +2 -2
- package/dist/assets/adapters/next/templates/init/components/shared/media/edit-media-dialog-content.tsx +2 -2
- package/dist/assets/adapters/next/templates/init/components/shared/media/media-delete-drawer.tsx +5 -5
- package/dist/assets/adapters/next/templates/init/components/shared/media/media-grid-item.tsx +3 -3
- package/dist/assets/adapters/next/templates/init/components/shared/media/media-grid-pagination.tsx +2 -2
- package/dist/assets/adapters/next/templates/init/components/shared/media/media-preview.tsx +1 -1
- package/dist/assets/adapters/next/templates/init/components/shared/media/media-url-importer.tsx +1 -1
- package/dist/assets/adapters/next/templates/init/components/shared/page-header.tsx +1 -1
- package/dist/assets/adapters/next/templates/init/components/shared/sort-order-drag-overlay-item.tsx +1 -1
- package/dist/assets/adapters/next/templates/init/components/shared/sort-order-item.tsx +1 -1
- package/dist/assets/adapters/next/templates/init/pages/dashboard-page.tsx +3 -3
- package/dist/assets/adapters/next/templates/init/pages/forgot-password-form.tsx +2 -2
- package/dist/assets/adapters/next/templates/init/pages/forgot-password-page-skeleton.tsx +8 -8
- package/dist/assets/adapters/next/templates/init/pages/login-form.tsx +2 -2
- package/dist/assets/adapters/next/templates/init/pages/login-page-skeleton.tsx +8 -8
- package/dist/assets/adapters/next/templates/init/pages/minimal-account-shell.tsx +1 -1
- package/dist/assets/adapters/next/templates/init/pages/profile/profile-form.tsx +2 -2
- package/dist/assets/adapters/next/templates/init/pages/reset-password-form.tsx +3 -6
- package/dist/assets/adapters/next/templates/init/pages/reset-password-page-skeleton.tsx +8 -8
- package/dist/assets/adapters/next/templates/init/pages/settings/audit-log/audit-log-columns.tsx +4 -4
- package/dist/assets/adapters/next/templates/init/pages/settings/audit-log/audit-log-detail-row.tsx +2 -2
- package/dist/assets/adapters/next/templates/init/pages/settings/forms/forms-settings-columns.tsx +1 -1
- package/dist/assets/adapters/next/templates/init/pages/settings/webhooks/delete-webhook-dialog.tsx +1 -1
- package/dist/assets/adapters/next/templates/init/pages/settings/webhooks/webhook-endpoint-dialog.tsx +12 -16
- package/dist/assets/adapters/next/templates/init/pages/settings/webhooks/webhooks-columns.tsx +9 -9
- package/dist/assets/adapters/next/templates/init/pages/settings/webhooks/webhooks-logs-columns.tsx +7 -7
- package/dist/assets/adapters/next/templates/init/pages/users/columns.tsx +4 -4
- package/dist/assets/adapters/next/templates/init/utils/editor/inline-math-node-view.ts +1 -1
- package/dist/assets/adapters/next/templates/init/utils/editor/raw-content-block-node-view.ts +1 -1
- package/dist/assets/adapters/next/templates/init/utils/email/render-form-submission-rows.ts +1 -1
- package/dist/assets/adapters/next/templates/init/utils/email/render-notification-email.ts +3 -3
- package/dist/assets/adapters/next/templates/init/utils/email/render-thank-you-email.ts +3 -3
- package/dist/assets/shared-assets/react-admin/custom/content-editor/index.tsx +1 -1
- package/dist/assets/shared-assets/react-admin/custom/content-editor/math-bubble-menu.tsx +1 -1
- package/dist/assets/shared-assets/react-admin/custom/content-editor/math-editor-controls.tsx +1 -1
- package/dist/assets/shared-assets/react-admin/custom/content-editor/remove-table-part-icon.tsx +1 -1
- package/dist/assets/shared-assets/react-admin/custom/content-editor/selection-bubble-menu.tsx +2 -2
- package/dist/assets/shared-assets/react-admin/custom/content-editor/slash-command-menu.tsx +2 -4
- package/dist/assets/shared-assets/react-admin/custom/content-editor/source-mode.tsx +2 -2
- package/dist/assets/shared-assets/react-admin/custom/content-editor/table-add-controls.tsx +4 -4
- package/dist/assets/shared-assets/react-admin/custom/content-editor/table-bubble-menu.tsx +1 -1
- package/dist/assets/shared-assets/react-admin/custom/content-editor/tiptap-node/removable-image-node/removable-image-node.tsx +3 -3
- package/dist/assets/shared-assets/react-admin/custom/content-editor/tiptap-ui/color-highlight-button/highlight-swatch.tsx +2 -2
- package/dist/assets/shared-assets/react-admin/custom/content-editor/tiptap-ui/color-highlight-popover/color-highlight-popover-content.tsx +1 -1
- package/dist/assets/shared-assets/react-admin/custom/content-editor/tiptap-ui/color-highlight-popover/color-highlight-popover.tsx +1 -1
- package/dist/assets/shared-assets/react-admin/custom/content-editor/tiptap-ui/color-highlight-popover/highlight-color-button.tsx +2 -2
- package/dist/assets/shared-assets/react-admin/custom/content-editor/tiptap-ui/color-highlight-popover/source-color-highlight-popover.tsx +1 -1
- package/dist/assets/shared-assets/react-admin/custom/date-range-picker.tsx +9 -10
- package/dist/assets/shared-assets/react-admin/custom/dynamic-list-field.tsx +2 -2
- package/dist/assets/shared-assets/react-admin/custom/gallery-field.tsx +4 -4
- package/dist/assets/shared-assets/react-admin/custom/icon-picker.tsx +2 -3
- package/dist/assets/shared-assets/react-admin/custom/icons-column-skeleton.tsx +2 -2
- package/dist/assets/shared-assets/react-admin/custom/media-field.tsx +3 -3
- package/dist/assets/shared-assets/react-admin/custom/nested-object-list-field.tsx +1 -1
- package/dist/assets/shared-assets/react-admin/custom/placeholder-card.tsx +2 -2
- package/dist/assets/shared-assets/react-admin/custom/placeholder.tsx +3 -3
- package/dist/assets/shared-assets/react-admin/custom/sortable-gallery-item.tsx +1 -1
- package/dist/assets/shared-assets/react-admin/custom/upload-dropzone.tsx +3 -5
- package/dist/assets/shared-assets/react-admin/ui/accordion.tsx +3 -3
- package/dist/assets/shared-assets/react-admin/ui/alert-dialog.tsx +4 -4
- package/dist/assets/shared-assets/react-admin/ui/alert.tsx +2 -2
- package/dist/assets/shared-assets/react-admin/ui/avatar.tsx +5 -5
- package/dist/assets/shared-assets/react-admin/ui/badge.tsx +1 -1
- package/dist/assets/shared-assets/react-admin/ui/breadcrumb.tsx +1 -1
- package/dist/assets/shared-assets/react-admin/ui/button-group.tsx +4 -4
- package/dist/assets/shared-assets/react-admin/ui/button.tsx +2 -2
- package/dist/assets/shared-assets/react-admin/ui/calendar.tsx +15 -21
- package/dist/assets/shared-assets/react-admin/ui/card.tsx +5 -5
- package/dist/assets/shared-assets/react-admin/ui/carousel.tsx +2 -2
- package/dist/assets/shared-assets/react-admin/ui/chart.tsx +4 -4
- package/dist/assets/shared-assets/react-admin/ui/checkbox.tsx +1 -1
- package/dist/assets/shared-assets/react-admin/ui/combobox.tsx +6 -6
- package/dist/assets/shared-assets/react-admin/ui/context-menu.tsx +7 -7
- package/dist/assets/shared-assets/react-admin/ui/dialog.tsx +3 -3
- package/dist/assets/shared-assets/react-admin/ui/drawer.tsx +5 -5
- package/dist/assets/shared-assets/react-admin/ui/dropdown-menu.tsx +8 -8
- package/dist/assets/shared-assets/react-admin/ui/empty.tsx +5 -5
- package/dist/assets/shared-assets/react-admin/ui/field.tsx +6 -12
- package/dist/assets/shared-assets/react-admin/ui/form.tsx +2 -2
- package/dist/assets/shared-assets/react-admin/ui/hover-card.tsx +1 -1
- package/dist/assets/shared-assets/react-admin/ui/input-group.tsx +6 -6
- package/dist/assets/shared-assets/react-admin/ui/input-otp.tsx +2 -2
- package/dist/assets/shared-assets/react-admin/ui/input.tsx +1 -1
- package/dist/assets/shared-assets/react-admin/ui/item.tsx +4 -4
- package/dist/assets/shared-assets/react-admin/ui/kbd.tsx +1 -1
- package/dist/assets/shared-assets/react-admin/ui/label.tsx +1 -1
- package/dist/assets/shared-assets/react-admin/ui/menubar.tsx +10 -10
- package/dist/assets/shared-assets/react-admin/ui/native-select.tsx +1 -1
- package/dist/assets/shared-assets/react-admin/ui/navigation-menu.tsx +5 -5
- package/dist/assets/shared-assets/react-admin/ui/popover.tsx +3 -7
- package/dist/assets/shared-assets/react-admin/ui/progress.tsx +3 -3
- package/dist/assets/shared-assets/react-admin/ui/radio-group.tsx +2 -2
- package/dist/assets/shared-assets/react-admin/ui/resizable.tsx +1 -1
- package/dist/assets/shared-assets/react-admin/ui/scroll-area.tsx +2 -2
- package/dist/assets/shared-assets/react-admin/ui/select.tsx +4 -4
- package/dist/assets/shared-assets/react-admin/ui/sheet.tsx +3 -3
- package/dist/assets/shared-assets/react-admin/ui/sidebar.tsx +16 -16
- package/dist/assets/shared-assets/react-admin/ui/skeleton.tsx +1 -1
- package/dist/assets/shared-assets/react-admin/ui/slider.tsx +2 -2
- package/dist/assets/shared-assets/react-admin/ui/switch.tsx +2 -2
- package/dist/assets/shared-assets/react-admin/ui/table.tsx +2 -6
- package/dist/assets/shared-assets/react-admin/ui/tabs.tsx +3 -3
- package/dist/assets/shared-assets/react-admin/ui/textarea.tsx +1 -1
- package/dist/assets/shared-assets/react-admin/ui/toggle-group.tsx +2 -2
- package/dist/assets/shared-assets/react-admin/ui/toggle.tsx +1 -1
- package/dist/assets/shared-assets/react-admin/ui/tooltip.tsx +2 -2
- package/dist/cli.js +105 -77
- package/dist/cli.js.map +1 -1
- package/package.json +1 -1
|
@@ -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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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,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
|
|
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
|
|
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
|
-
'
|
|
14
|
+
'[&>[data-slot]:not(:has(~[data-slot]))]:rounded-r! [&>[data-slot]~[data-slot]]:border-l-0',
|
|
15
15
|
vertical:
|
|
16
|
-
'flex-col
|
|
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
|
|
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
|
|
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
|
|
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-
|
|
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
|
|
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
|
|
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
|
|
75
|
-
: 'cn-calendar-caption-label flex items-center gap-1 rounded
|
|
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
|
|
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
|
|
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
|
|
94
|
-
: '[&:first-child[data-selected=true]_button]:rounded-l
|
|
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
|
|
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:
|
|
98
|
+
range_middle: defaultClassNames.range_middle,
|
|
102
99
|
range_end: cn(
|
|
103
|
-
'relative isolate z-0 rounded-r
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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-
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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-
|
|
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-
|
|
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
|
|
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
|
|
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}
|
|
@@ -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
|
|
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-
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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-
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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-
|
|
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
|
|
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-
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
230
|
+
'ml-auto tracking-widest text-muted-foreground group-focus/dropdown-menu-item:text-accent-foreground',
|
|
231
231
|
className
|
|
232
232
|
)}
|
|
233
233
|
{...props}
|