betterstart-cli 0.0.22 → 0.0.23
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/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 +1 -1
- 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/snippets-tab.tsx +1 -1
- package/dist/assets/adapters/next/templates/init/components/shared/entity-versions/entity-version-item.tsx +1 -1
- package/dist/assets/adapters/next/templates/init/components/shared/entity-versions/entity-versions-current-row.tsx +1 -1
- package/dist/assets/adapters/next/templates/init/components/shared/entity-versions/entity-versions-drawer.tsx +3 -3
- 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 +3 -3
- package/dist/assets/adapters/next/templates/init/components/shared/media/media-gallery-dialog.tsx +62 -64
- package/dist/assets/adapters/next/templates/init/components/shared/media/media-grid-item.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/data/navigation.ts +1 -3
- package/dist/assets/adapters/next/templates/init/lib/actions/auth/auth.ts +8 -0
- package/dist/assets/adapters/next/templates/init/lib/actions/profile/change-own-password.ts +59 -0
- package/dist/assets/adapters/next/templates/init/lib/actions/profile/index.ts +6 -1
- package/dist/assets/adapters/next/templates/init/lib/actions/profile/types.ts +10 -0
- package/dist/assets/adapters/next/templates/init/lib/actions/users/change-user-password.ts +77 -0
- package/dist/assets/adapters/next/templates/init/lib/actions/users/index.ts +3 -0
- package/dist/assets/adapters/next/templates/init/lib/actions/users/types.ts +10 -0
- package/dist/assets/adapters/next/templates/init/lib/db/core/schema.ts +4 -0
- package/dist/assets/adapters/next/templates/init/pages/dashboard-page.tsx +1 -1
- package/dist/assets/adapters/next/templates/init/pages/forgot-password-page-skeleton.tsx +1 -1
- package/dist/assets/adapters/next/templates/init/pages/login-page-skeleton.tsx +1 -1
- package/dist/assets/adapters/next/templates/init/pages/media/media-page-content.tsx +13 -18
- package/dist/assets/adapters/next/templates/init/pages/profile/profile-form.tsx +133 -1
- package/dist/assets/adapters/next/templates/init/pages/reset-password-page-skeleton.tsx +1 -1
- package/dist/assets/adapters/next/templates/init/pages/users/change-password-dialog.tsx +229 -0
- package/dist/assets/adapters/next/templates/init/pages/users/columns.tsx +22 -14
- package/dist/assets/adapters/next/templates/init/pages/users/create-user-dialog.tsx +99 -93
- package/dist/assets/adapters/next/templates/init/pages/users/delete-user-dialog.tsx +17 -25
- package/dist/assets/adapters/next/templates/init/pages/users/users-table.tsx +5 -4
- 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/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/table-bubble-menu.tsx +1 -1
- package/dist/assets/shared-assets/react-admin/custom/content-editor/tiptap-ui/color-highlight-button/color-highlight-button.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 +1 -1
- package/dist/assets/shared-assets/react-admin/custom/media-field-empty-state.tsx +19 -12
- package/dist/assets/shared-assets/react-admin/custom/media-field.tsx +2 -2
- 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 +1 -1
- package/dist/assets/shared-assets/react-admin/custom/placeholder.tsx +1 -1
- package/dist/assets/shared-assets/react-admin/ui/accordion.tsx +1 -1
- package/dist/assets/shared-assets/react-admin/ui/alert-dialog.tsx +15 -4
- package/dist/assets/shared-assets/react-admin/ui/alert.tsx +1 -1
- 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/button-group.tsx +3 -3
- package/dist/assets/shared-assets/react-admin/ui/button.tsx +6 -6
- package/dist/assets/shared-assets/react-admin/ui/card.tsx +4 -4
- package/dist/assets/shared-assets/react-admin/ui/carousel.tsx +2 -2
- package/dist/assets/shared-assets/react-admin/ui/chart.tsx +1 -1
- package/dist/assets/shared-assets/react-admin/ui/combobox.tsx +4 -4
- package/dist/assets/shared-assets/react-admin/ui/command.tsx +3 -3
- package/dist/assets/shared-assets/react-admin/ui/context-menu.tsx +6 -6
- package/dist/assets/shared-assets/react-admin/ui/dialog.tsx +29 -6
- package/dist/assets/shared-assets/react-admin/ui/drawer.tsx +2 -2
- package/dist/assets/shared-assets/react-admin/ui/dropdown-menu.tsx +6 -6
- package/dist/assets/shared-assets/react-admin/ui/empty.tsx +2 -2
- package/dist/assets/shared-assets/react-admin/ui/field.tsx +1 -1
- package/dist/assets/shared-assets/react-admin/ui/hover-card.tsx +1 -1
- package/dist/assets/shared-assets/react-admin/ui/input-group.tsx +5 -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 +2 -2
- package/dist/assets/shared-assets/react-admin/ui/menubar.tsx +8 -8
- package/dist/assets/shared-assets/react-admin/ui/native-select.tsx +1 -1
- package/dist/assets/shared-assets/react-admin/ui/navigation-menu.tsx +4 -4
- package/dist/assets/shared-assets/react-admin/ui/popover.tsx +1 -1
- package/dist/assets/shared-assets/react-admin/ui/progress.tsx +1 -1
- 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 +1 -1
- package/dist/assets/shared-assets/react-admin/ui/select.tsx +3 -3
- package/dist/assets/shared-assets/react-admin/ui/sidebar.tsx +10 -10
- 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/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 +1 -1
- package/dist/cli.js +5372 -4243
- 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-sm select-none after:absolute after:inset-0 after:rounded-sm after:border after:border-border after:mix-blend-darken data-[size=lg]:size-10 data-[size=sm]:size-6 dark:after:mix-blend-lighten',
|
|
20
20
|
className
|
|
21
21
|
)}
|
|
22
22
|
{...props}
|
|
@@ -28,7 +28,7 @@ function AvatarImage({ className, ...props }: React.ComponentProps<typeof Avatar
|
|
|
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-sm object-cover', className)}
|
|
32
32
|
{...props}
|
|
33
33
|
/>
|
|
34
34
|
)
|
|
@@ -42,7 +42,7 @@ function AvatarFallback({
|
|
|
42
42
|
<AvatarPrimitive.Fallback
|
|
43
43
|
data-slot="avatar-fallback"
|
|
44
44
|
className={cn(
|
|
45
|
-
'flex size-full items-center justify-center rounded-
|
|
45
|
+
'flex size-full items-center justify-center rounded-sm bg-muted text-sm text-muted-foreground group-data-[size=sm]/avatar:text-xs',
|
|
46
46
|
className
|
|
47
47
|
)}
|
|
48
48
|
{...props}
|
|
@@ -55,7 +55,7 @@ function AvatarBadge({ className, ...props }: React.ComponentProps<'span'>) {
|
|
|
55
55
|
<span
|
|
56
56
|
data-slot="avatar-badge"
|
|
57
57
|
className={cn(
|
|
58
|
-
'absolute right-0 bottom-0 z-10 inline-flex items-center justify-center rounded-
|
|
58
|
+
'absolute right-0 bottom-0 z-10 inline-flex items-center justify-center rounded-sm bg-primary text-primary-foreground bg-blend-color ring-2 ring-background select-none',
|
|
59
59
|
'group-data-[size=sm]/avatar:size-2 group-data-[size=sm]/avatar:[&>svg]:hidden',
|
|
60
60
|
'group-data-[size=default]/avatar:size-2.5 group-data-[size=default]/avatar:[&>svg]:size-2',
|
|
61
61
|
'group-data-[size=lg]/avatar:size-3 group-data-[size=lg]/avatar:[&>svg]:size-2',
|
|
@@ -84,7 +84,7 @@ function AvatarGroupCount({ className, ...props }: React.ComponentProps<'div'>)
|
|
|
84
84
|
<div
|
|
85
85
|
data-slot="avatar-group-count"
|
|
86
86
|
className={cn(
|
|
87
|
-
'relative flex size-8 shrink-0 items-center justify-center rounded-
|
|
87
|
+
'relative flex size-8 shrink-0 items-center justify-center rounded-sm 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',
|
|
88
88
|
className
|
|
89
89
|
)}
|
|
90
90
|
{...props}
|
|
@@ -4,7 +4,7 @@ import { Slot } from 'radix-ui'
|
|
|
4
4
|
import type * as React from 'react'
|
|
5
5
|
|
|
6
6
|
const badgeVariants = cva(
|
|
7
|
-
'group/badge inline-flex h-6 w-fit shrink-0 items-center justify-center gap-1 overflow-hidden rounded-
|
|
7
|
+
'group/badge inline-flex h-6 w-fit shrink-0 items-center justify-center gap-1 overflow-hidden rounded-sm 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 dark:aria-invalid:ring-destructive/40 [&>svg]:pointer-events-none [&>svg]:size-3!',
|
|
8
8
|
{
|
|
9
9
|
variants: {
|
|
10
10
|
variant: {
|
|
@@ -4,12 +4,12 @@ import { cva, type VariantProps } from 'class-variance-authority'
|
|
|
4
4
|
import { Slot } from 'radix-ui'
|
|
5
5
|
|
|
6
6
|
const buttonGroupVariants = cva(
|
|
7
|
-
"group/button-group 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-
|
|
7
|
+
"group/button-group 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-sm [&>[data-slot=select-trigger]:not([class*='w-'])]:w-fit [&>input]:flex-1 [&>button]:min-w-0 [&>button]:scale-100!",
|
|
8
8
|
{
|
|
9
9
|
variants: {
|
|
10
10
|
orientation: {
|
|
11
11
|
horizontal:
|
|
12
|
-
'[&>*:not(:first-child)]:rounded-l-none [&>*:not(:first-child)]:border-l-0 [&>*:not(:last-child)]:rounded-r-none [&>[data-slot]:not(:has(~[data-slot]))]:rounded-r-
|
|
12
|
+
'[&>*:not(:first-child)]:rounded-l-none [&>*:not(:first-child)]:border-l-0 [&>*:not(:last-child)]:rounded-r-none [&>[data-slot]:not(:has(~[data-slot]))]:rounded-r-sm!',
|
|
13
13
|
vertical:
|
|
14
14
|
'flex-col [&>*:not(:first-child)]:rounded-t-none [&>*:not(:first-child)]:border-t-0 [&>*:not(:last-child)]:rounded-b-none [&>[data-slot]:not(:has(~[data-slot]))]:rounded-b-4xl!'
|
|
15
15
|
}
|
|
@@ -47,7 +47,7 @@ function ButtonGroupText({
|
|
|
47
47
|
return (
|
|
48
48
|
<Comp
|
|
49
49
|
className={cn(
|
|
50
|
-
"flex items-center gap-2 rounded-
|
|
50
|
+
"flex items-center gap-2 rounded-sm border bg-muted px-2.5 text-sm font-medium [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4",
|
|
51
51
|
className
|
|
52
52
|
)}
|
|
53
53
|
{...props}
|
|
@@ -4,29 +4,29 @@ import { Slot } from 'radix-ui'
|
|
|
4
4
|
import * as React from 'react'
|
|
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-sm 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]:scale-97 disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg]:text-current [&_svg:not([class*='size-'])]:size-3.5 cursor-pointer [&_svg]:[stroke-width:1.5] min-w-0",
|
|
8
8
|
{
|
|
9
9
|
variants: {
|
|
10
10
|
variant: {
|
|
11
11
|
default: 'bg-primary border-primary text-primary-foreground hover:bg-primary/80',
|
|
12
12
|
outline:
|
|
13
|
-
'border-border bg-card hover:bg-secondary hover:text-foreground aria-expanded:bg-secondary aria-expanded:text-foreground hover:border-primary/10',
|
|
13
|
+
'border border-border bg-card hover:bg-secondary hover:text-foreground aria-expanded:bg-secondary aria-expanded:text-foreground hover:border-primary/10',
|
|
14
14
|
secondary:
|
|
15
15
|
'bg-secondary border border-primary/8 text-secondary-foreground hover:bg-secondary/80 aria-expanded:bg-secondary aria-expanded:text-secondary-foreground',
|
|
16
16
|
ghost:
|
|
17
17
|
'hover:bg-secondary hover:text-foreground aria-expanded:bg-secondary aria-expanded:text-foreground dark:hover:bg-secondary/50',
|
|
18
18
|
destructive:
|
|
19
|
-
'bg-destructive/10 border-destructive/20 text-destructive hover:bg-destructive/15 focus-visible:border-destructive/40 focus-visible:ring-destructive/20 dark:bg-destructive/20 dark:hover:bg-destructive/30 dark:focus-visible:ring-destructive/40 [&_svg]:text-destructive',
|
|
19
|
+
'border bg-destructive/10 border-destructive/20 text-destructive hover:bg-destructive/15 focus-visible:border-destructive/40 focus-visible:ring-destructive/20 dark:bg-destructive/20 dark:hover:bg-destructive/30 dark:focus-visible:ring-destructive/40 [&_svg]:text-destructive',
|
|
20
20
|
warning:
|
|
21
|
-
'bg-warning/10 border-warning/20 text-warning hover:bg-warning/15 focus-visible:border-warning/40 focus-visible:ring-warning/15 dark:bg-warning/20 dark:hover:bg-warning/30 dark:focus-visible:ring-warning/40 [&_svg]:text-warning',
|
|
21
|
+
'border bg-warning/10 border-warning/20 text-warning hover:bg-warning/15 focus-visible:border-warning/40 focus-visible:ring-warning/15 dark:bg-warning/20 dark:hover:bg-warning/30 dark:focus-visible:ring-warning/40 [&_svg]:text-warning',
|
|
22
22
|
link: 'text-primary underline-offset-4 hover:underline'
|
|
23
23
|
},
|
|
24
24
|
size: {
|
|
25
|
-
default: 'h-
|
|
25
|
+
default: 'h-10 gap-1.5 px-3',
|
|
26
26
|
xs: "h-6 gap-1 px-2.5 text-xs [&_svg:not([class*='size-'])]:size-3",
|
|
27
27
|
sm: 'h-8 gap-1 px-3',
|
|
28
28
|
lg: 'h-10 gap-1.5 px-4',
|
|
29
|
-
icon: 'size-
|
|
29
|
+
icon: 'size-10',
|
|
30
30
|
'icon-xs': "size-6 [&_svg:not([class*='size-'])]:size-3",
|
|
31
31
|
'icon-sm': 'size-8',
|
|
32
32
|
'icon-lg': 'size-10'
|
|
@@ -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 rounded-
|
|
14
|
+
'group/card flex flex-col rounded-sm has-[>[data-slot=card-header]]:bg-transparent has-[>[data-slot=card-header]]:border-none has-[>[data-slot=card-footer]]:border-none text-sm text-foreground has-[>img:first-child]:pt-0 data-[size=sm]:gap-4 data-[size=sm]:py-4 *:[img:first-child]:rounded-t-sm *:[img:last-child]:rounded-b-sm [&_[data-slot=card]:last-of-type:last-child]:rounded-b-sm [&_[data-slot=card]:first-of-type:first-child]:rounded-t-sm',
|
|
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 @container/card-header grid auto-rows-min items-start gap-2 rounded-t-
|
|
27
|
+
'group/card-header @container/card-header grid auto-rows-min items-start gap-2 rounded-t-sm px-3 has-data-[slot=card-action]:grid-cols-[1fr_auto] has-data-[slot=card-description]:grid-rows-[auto_auto] border-x border-t [.border-b]:pb-6 border-border bg-muted pt-2.5 [text-box-trim:trim-both] -mb-1 pb-3',
|
|
28
28
|
className
|
|
29
29
|
)}
|
|
30
30
|
{...props}
|
|
@@ -70,7 +70,7 @@ function CardContent({ className, ...props }: React.ComponentProps<'div'>) {
|
|
|
70
70
|
<div
|
|
71
71
|
data-slot="card-content"
|
|
72
72
|
className={cn(
|
|
73
|
-
'group-has-[>[data-slot=card-header]]/card:px-5 rounded-
|
|
73
|
+
'group-has-[>[data-slot=card-header]]/card:px-5 rounded-sm border border-border bg-card group-has-[>[data-slot=card-footer]]/card:bg-card p-8 flex flex-col overflow-hidden shadow-input relative',
|
|
74
74
|
className
|
|
75
75
|
)}
|
|
76
76
|
{...props}
|
|
@@ -83,7 +83,7 @@ function CardFooter({ className, ...props }: React.ComponentProps<'div'>) {
|
|
|
83
83
|
<div
|
|
84
84
|
data-slot="card-footer"
|
|
85
85
|
className={cn(
|
|
86
|
-
'flex items-center border border-border bg-muted -mt-2 pt-3.5 pb-2 rounded-b-
|
|
86
|
+
'flex items-center border border-border bg-muted -mt-2 pt-3.5 pb-2 rounded-b-sm px-4',
|
|
87
87
|
className
|
|
88
88
|
)}
|
|
89
89
|
{...props}
|
|
@@ -180,7 +180,7 @@ function CarouselPrevious({
|
|
|
180
180
|
variant={variant}
|
|
181
181
|
size={size}
|
|
182
182
|
className={cn(
|
|
183
|
-
'absolute touch-manipulation rounded-
|
|
183
|
+
'absolute touch-manipulation rounded-sm',
|
|
184
184
|
{
|
|
185
185
|
'top-1/2 -left-12 -translate-y-1/2': orientation === 'horizontal',
|
|
186
186
|
'-top-12 left-1/2 -translate-x-1/2 rotate-90': orientation !== 'horizontal'
|
|
@@ -211,7 +211,7 @@ function CarouselNext({
|
|
|
211
211
|
variant={variant}
|
|
212
212
|
size={size}
|
|
213
213
|
className={cn(
|
|
214
|
-
'absolute touch-manipulation rounded-
|
|
214
|
+
'absolute touch-manipulation rounded-sm',
|
|
215
215
|
{
|
|
216
216
|
'top-1/2 -right-12 -translate-y-1/2': orientation === 'horizontal',
|
|
217
217
|
'-bottom-12 left-1/2 -translate-x-1/2 rotate-90': orientation !== 'horizontal'
|
|
@@ -163,7 +163,7 @@ function ChartTooltipContent({
|
|
|
163
163
|
return (
|
|
164
164
|
<div
|
|
165
165
|
className={cn(
|
|
166
|
-
'grid min-w-32 items-start gap-1.5 rounded-
|
|
166
|
+
'grid min-w-32 items-start gap-1.5 rounded-sm border border-border/50 bg-background px-2.5 py-1.5 text-xs shadow-xl',
|
|
167
167
|
className
|
|
168
168
|
)}
|
|
169
169
|
>
|
|
@@ -121,7 +121,7 @@ function ComboboxContent({
|
|
|
121
121
|
data-slot="combobox-content"
|
|
122
122
|
data-chips={!!anchor}
|
|
123
123
|
className={cn(
|
|
124
|
-
'group/combobox-content 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-
|
|
124
|
+
'group/combobox-content 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-sm 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 animate-none! relative bg-popover/70 before:pointer-events-none before:absolute before:inset-0 before:-z-1 before:rounded-[inherit] before:backdrop-blur-2xl before:backdrop-saturate-150 **:data-[slot$=-item]:focus:bg-foreground/10 **:data-[slot$=-item]:data-highlighted:bg-foreground/10 **:data-[slot$=-separator]:bg-foreground/5 **:data-[slot$=-trigger]:focus:bg-foreground/10 **:data-[slot$=-trigger]:aria-expanded:bg-foreground/10! **:data-[variant=destructive]:focus:bg-foreground/10! **:data-[variant=destructive]:text-accent-foreground! **:data-[variant=destructive]:**:text-accent-foreground!',
|
|
125
125
|
className
|
|
126
126
|
)}
|
|
127
127
|
{...props}
|
|
@@ -157,7 +157,7 @@ function ComboboxItem({
|
|
|
157
157
|
ref={ref}
|
|
158
158
|
data-slot="combobox-item"
|
|
159
159
|
className={cn(
|
|
160
|
-
"relative flex w-full cursor-default items-center gap-2.5 rounded-
|
|
160
|
+
"relative flex w-full cursor-default items-center gap-2.5 rounded-sm 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",
|
|
161
161
|
className
|
|
162
162
|
)}
|
|
163
163
|
{...props}
|
|
@@ -223,7 +223,7 @@ function ComboboxChips({
|
|
|
223
223
|
<ComboboxPrimitive.Chips
|
|
224
224
|
data-slot="combobox-chips"
|
|
225
225
|
className={cn(
|
|
226
|
-
'flex min-h-9 flex-wrap items-center gap-1.5 rounded-
|
|
226
|
+
'flex min-h-9 flex-wrap items-center gap-1.5 rounded-sm 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 dark:has-aria-invalid:border-destructive/50 dark:has-aria-invalid:ring-destructive/40',
|
|
227
227
|
className
|
|
228
228
|
)}
|
|
229
229
|
{...props}
|
|
@@ -243,7 +243,7 @@ function ComboboxChip({
|
|
|
243
243
|
<ComboboxPrimitive.Chip
|
|
244
244
|
data-slot="combobox-chip"
|
|
245
245
|
className={cn(
|
|
246
|
-
'flex h-[calc(--spacing(5.5))] w-fit items-center justify-center gap-1 rounded-
|
|
246
|
+
'flex h-[calc(--spacing(5.5))] w-fit items-center justify-center gap-1 rounded-sm 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',
|
|
247
247
|
className
|
|
248
248
|
)}
|
|
249
249
|
{...props}
|
|
@@ -19,7 +19,7 @@ function Command({ className, ...props }: React.ComponentProps<typeof CommandPri
|
|
|
19
19
|
<CommandPrimitive
|
|
20
20
|
data-slot="command"
|
|
21
21
|
className={cn(
|
|
22
|
-
'flex size-full flex-col overflow-hidden rounded-
|
|
22
|
+
'flex size-full flex-col overflow-hidden rounded-sm bg-popover p-1 text-popover-foreground',
|
|
23
23
|
className
|
|
24
24
|
)}
|
|
25
25
|
{...props}
|
|
@@ -47,7 +47,7 @@ function CommandDialog({
|
|
|
47
47
|
<DialogDescription>{description}</DialogDescription>
|
|
48
48
|
</DialogHeader>
|
|
49
49
|
<DialogContent
|
|
50
|
-
className={cn('top-1/3 translate-y-0 overflow-hidden rounded-
|
|
50
|
+
className={cn('top-1/3 translate-y-0 overflow-hidden rounded-sm! p-0', className)}
|
|
51
51
|
showCloseButton={showCloseButton}
|
|
52
52
|
>
|
|
53
53
|
{children}
|
|
@@ -143,7 +143,7 @@ function CommandItem({
|
|
|
143
143
|
<CommandPrimitive.Item
|
|
144
144
|
data-slot="command-item"
|
|
145
145
|
className={cn(
|
|
146
|
-
"group/command-item relative flex cursor-default items-center gap-2 rounded-
|
|
146
|
+
"group/command-item relative flex cursor-default items-center gap-2 rounded-sm px-3 py-2 text-sm outline-hidden select-none in-data-[slot=dialog-content]:rounded-sm data-[disabled=true]:pointer-events-none data-[disabled=true]:opacity-50 data-[selected=true]:bg-muted data-[selected=true]:text-foreground [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 [&[data-selected=true]_svg]:text-foreground",
|
|
147
147
|
className
|
|
148
148
|
)}
|
|
149
149
|
{...props}
|
|
@@ -51,7 +51,7 @@ function ContextMenuContent({
|
|
|
51
51
|
<ContextMenuPrimitive.Content
|
|
52
52
|
data-slot="context-menu-content"
|
|
53
53
|
className={cn(
|
|
54
|
-
'z-50 max-h-(--radix-context-menu-content-available-height) min-w-48 origin-(--radix-context-menu-content-transform-origin) overflow-x-hidden overflow-y-auto rounded-
|
|
54
|
+
'z-50 max-h-(--radix-context-menu-content-available-height) min-w-48 origin-(--radix-context-menu-content-transform-origin) overflow-x-hidden overflow-y-auto rounded-sm 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 animate-none! relative bg-popover/70 before:pointer-events-none before:absolute before:inset-0 before:-z-1 before:rounded-[inherit] before:backdrop-blur-2xl before:backdrop-saturate-150 **:data-[slot$=-item]:focus:bg-foreground/10 **:data-[slot$=-item]:data-highlighted:bg-foreground/10 **:data-[slot$=-separator]:bg-foreground/5 **:data-[slot$=-trigger]:focus:bg-foreground/10 **:data-[slot$=-trigger]:aria-expanded:bg-foreground/10! **:data-[variant=destructive]:focus:bg-foreground/10! **:data-[variant=destructive]:text-accent-foreground! **:data-[variant=destructive]:**:text-accent-foreground!',
|
|
55
55
|
className
|
|
56
56
|
)}
|
|
57
57
|
{...props}
|
|
@@ -75,7 +75,7 @@ function ContextMenuItem({
|
|
|
75
75
|
data-inset={inset}
|
|
76
76
|
data-variant={variant}
|
|
77
77
|
className={cn(
|
|
78
|
-
"group/context-menu-item relative flex cursor-default items-center gap-2.5 rounded-
|
|
78
|
+
"group/context-menu-item relative flex cursor-default items-center gap-2.5 rounded-sm px-3 py-2 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground data-inset:pl-9.5 data-[variant=destructive]:text-destructive data-[variant=destructive]:focus:bg-destructive/10 data-[variant=destructive]:focus:text-destructive dark:data-[variant=destructive]:focus:bg-destructive/20 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-foreground data-[variant=destructive]:*:[svg]:text-foreground",
|
|
79
79
|
className
|
|
80
80
|
)}
|
|
81
81
|
{...props}
|
|
@@ -96,7 +96,7 @@ function ContextMenuSubTrigger({
|
|
|
96
96
|
data-slot="context-menu-sub-trigger"
|
|
97
97
|
data-inset={inset}
|
|
98
98
|
className={cn(
|
|
99
|
-
"flex cursor-default items-center rounded-
|
|
99
|
+
"flex cursor-default items-center rounded-sm px-3 py-2 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground data-inset:pl-9.5 data-open:bg-accent data-open:text-accent-foreground [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
|
|
100
100
|
className
|
|
101
101
|
)}
|
|
102
102
|
{...props}
|
|
@@ -115,7 +115,7 @@ function ContextMenuSubContent({
|
|
|
115
115
|
<ContextMenuPrimitive.SubContent
|
|
116
116
|
data-slot="context-menu-sub-content"
|
|
117
117
|
className={cn(
|
|
118
|
-
'z-50 min-w-32 origin-(--radix-context-menu-content-transform-origin) overflow-hidden rounded-
|
|
118
|
+
'z-50 min-w-32 origin-(--radix-context-menu-content-transform-origin) overflow-hidden rounded-sm border p-1 text-popover-foreground shadow-lg 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 animate-none! relative bg-popover/70 before:pointer-events-none before:absolute before:inset-0 before:-z-1 before:rounded-[inherit] before:backdrop-blur-2xl before:backdrop-saturate-150 **:data-[slot$=-item]:focus:bg-foreground/10 **:data-[slot$=-item]:data-highlighted:bg-foreground/10 **:data-[slot$=-separator]:bg-foreground/5 **:data-[slot$=-trigger]:focus:bg-foreground/10 **:data-[slot$=-trigger]:aria-expanded:bg-foreground/10! **:data-[variant=destructive]:focus:bg-foreground/10! **:data-[variant=destructive]:text-accent-foreground! **:data-[variant=destructive]:**:text-accent-foreground!',
|
|
119
119
|
className
|
|
120
120
|
)}
|
|
121
121
|
{...props}
|
|
@@ -137,7 +137,7 @@ function ContextMenuCheckboxItem({
|
|
|
137
137
|
data-slot="context-menu-checkbox-item"
|
|
138
138
|
data-inset={inset}
|
|
139
139
|
className={cn(
|
|
140
|
-
"relative flex cursor-default items-center gap-2 rounded-
|
|
140
|
+
"relative flex cursor-default items-center gap-2 rounded-sm py-2 pr-8 pl-3 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground data-inset:pl-9.5 data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
|
|
141
141
|
className
|
|
142
142
|
)}
|
|
143
143
|
checked={checked}
|
|
@@ -166,7 +166,7 @@ function ContextMenuRadioItem({
|
|
|
166
166
|
data-slot="context-menu-radio-item"
|
|
167
167
|
data-inset={inset}
|
|
168
168
|
className={cn(
|
|
169
|
-
"relative flex cursor-default items-center gap-2 rounded-
|
|
169
|
+
"relative flex cursor-default items-center gap-2 rounded-sm py-2 pr-8 pl-3 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground data-inset:pl-9.5 data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
|
|
170
170
|
className
|
|
171
171
|
)}
|
|
172
172
|
{...props}
|
|
@@ -52,7 +52,7 @@ function DialogContent({
|
|
|
52
52
|
<DialogPrimitive.Content
|
|
53
53
|
data-slot="dialog-content"
|
|
54
54
|
className={cn(
|
|
55
|
-
'fixed top-1/2 left-1/2 z-50 grid w-full max-w-[calc(100%-2rem)] -translate-x-1/2 -translate-y-1/2 gap-
|
|
55
|
+
'fixed top-1/2 left-1/2 z-50 grid w-full max-w-[calc(100%-2rem)] -translate-x-1/2 -translate-y-1/2 gap-0 rounded-sm text-sm text-popover-foreground ring-1 ring-foreground/5 duration-100 outline-none sm:max-w-md 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 overflow-hidden bg-card',
|
|
56
56
|
className
|
|
57
57
|
)}
|
|
58
58
|
{...props}
|
|
@@ -73,7 +73,24 @@ function DialogContent({
|
|
|
73
73
|
|
|
74
74
|
function DialogHeader({ className, ...props }: React.ComponentProps<'div'>) {
|
|
75
75
|
return (
|
|
76
|
-
<div
|
|
76
|
+
<div
|
|
77
|
+
data-slot="dialog-header"
|
|
78
|
+
className={cn('flex flex-col gap-1 px-6 pt-6 pb-4', className)}
|
|
79
|
+
{...props}
|
|
80
|
+
/>
|
|
81
|
+
)
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
function DialogBody({ className, ...props }: React.ComponentProps<'div'>) {
|
|
85
|
+
return (
|
|
86
|
+
<div
|
|
87
|
+
data-slot="dialog-body"
|
|
88
|
+
className={cn(
|
|
89
|
+
'flex shadow-input flex-col gap-1 p-6 rounded-sm bg-card border border-border',
|
|
90
|
+
className
|
|
91
|
+
)}
|
|
92
|
+
{...props}
|
|
93
|
+
/>
|
|
77
94
|
)
|
|
78
95
|
}
|
|
79
96
|
|
|
@@ -88,15 +105,20 @@ function DialogFooter({
|
|
|
88
105
|
return (
|
|
89
106
|
<div
|
|
90
107
|
data-slot="dialog-footer"
|
|
91
|
-
className={cn(
|
|
108
|
+
className={cn(
|
|
109
|
+
'flex flex-col-reverse gap-1 px-6 pt-4 items-center pb-5 bg-muted sm:flex-row sm:justify-between',
|
|
110
|
+
className
|
|
111
|
+
)}
|
|
92
112
|
{...props}
|
|
93
113
|
>
|
|
94
|
-
{children}
|
|
95
114
|
{showCloseButton && (
|
|
96
115
|
<DialogPrimitive.Close asChild>
|
|
97
|
-
<Button variant="outline">
|
|
116
|
+
<Button variant="outline" size="lg">
|
|
117
|
+
Close
|
|
118
|
+
</Button>
|
|
98
119
|
</DialogPrimitive.Close>
|
|
99
120
|
)}
|
|
121
|
+
<div className="flex items-center gap-2">{children}</div>
|
|
100
122
|
</div>
|
|
101
123
|
)
|
|
102
124
|
}
|
|
@@ -137,5 +159,6 @@ export {
|
|
|
137
159
|
DialogOverlay,
|
|
138
160
|
DialogPortal,
|
|
139
161
|
DialogTitle,
|
|
140
|
-
DialogTrigger
|
|
162
|
+
DialogTrigger,
|
|
163
|
+
DialogBody
|
|
141
164
|
}
|
|
@@ -67,7 +67,7 @@ function DrawerContent({
|
|
|
67
67
|
<DrawerPrimitive.Content
|
|
68
68
|
data-slot="drawer-content"
|
|
69
69
|
className={cn(
|
|
70
|
-
'group/drawer-content fixed z-50 flex h-auto flex-col bg-transparent p-2 text-sm text-popover-foreground before:absolute before:inset-2 before:-z-10 before:rounded-
|
|
70
|
+
'group/drawer-content fixed z-50 flex h-auto flex-col bg-transparent p-2 text-sm text-popover-foreground before:absolute before:inset-2 before:-z-10 before:rounded-sm before:border before:border-border before:bg-popover data-[vaul-drawer-direction=bottom]:inset-x-0 data-[vaul-drawer-direction=bottom]:bottom-0 data-[vaul-drawer-direction=bottom]:mt-24 data-[vaul-drawer-direction=bottom]:max-h-[80vh] data-[vaul-drawer-direction=left]:inset-y-0 data-[vaul-drawer-direction=left]:left-0 data-[vaul-drawer-direction=left]:w-3/4 data-[vaul-drawer-direction=right]:inset-y-0 data-[vaul-drawer-direction=right]:right-0 data-[vaul-drawer-direction=right]:w-3/4 data-[vaul-drawer-direction=top]:inset-x-0 data-[vaul-drawer-direction=top]:top-0 data-[vaul-drawer-direction=top]:mb-24 data-[vaul-drawer-direction=top]:max-h-[80vh] data-[vaul-drawer-direction=left]:sm:max-w-sm data-[vaul-drawer-direction=right]:sm:max-w-md space-y-4',
|
|
71
71
|
className
|
|
72
72
|
)}
|
|
73
73
|
style={{ touchAction: 'auto', userSelect: 'text', ...style }}
|
|
@@ -96,7 +96,7 @@ function DrawerFooter({ className, ...props }: React.ComponentProps<'div'>) {
|
|
|
96
96
|
return (
|
|
97
97
|
<div
|
|
98
98
|
data-slot="drawer-footer"
|
|
99
|
-
className={cn('mt-auto flex flex-col gap-2
|
|
99
|
+
className={cn('mt-auto flex flex-col gap-2 px-6 py-6', className)}
|
|
100
100
|
{...props}
|
|
101
101
|
/>
|
|
102
102
|
)
|
|
@@ -47,7 +47,7 @@ function DropdownMenuContent({
|
|
|
47
47
|
sideOffset={sideOffset}
|
|
48
48
|
align={align}
|
|
49
49
|
className={cn(
|
|
50
|
-
'z-50 max-h-(--radix-dropdown-menu-content-available-height)
|
|
50
|
+
'z-50 max-h-(--radix-dropdown-menu-content-available-height) min-w-35 origin-(--radix-dropdown-menu-content-transform-origin) overflow-x-hidden overflow-y-auto rounded-sm p-1 text-popover-foreground shadow-2xl/10 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-[state=closed]:overflow-hidden dark:ring-foreground/10 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 relative bg-popover/70 before:pointer-events-none before:absolute before:inset-0 before:-z-1 before:rounded-[inherit] before:backdrop-blur-2xl before:backdrop-saturate-150 **:data-[slot$=-item]:focus:bg-foreground/10 **:data-[slot$=-item]:data-highlighted:bg-foreground/10 **:data-[slot$=-separator]:bg-foreground/5 **:data-[slot$=-trigger]:focus:bg-foreground/10 **:data-[slot$=-trigger]:aria-expanded:bg-foreground/10!',
|
|
51
51
|
className
|
|
52
52
|
)}
|
|
53
53
|
{...props}
|
|
@@ -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-sm px-3 py-2 text-sm outline-hidden select-none focus:bg-accent focus:text-foreground not-data-[variant=destructive]:focus:**:text-foreground data-inset:pl-9.5 data-[variant=destructive]:text-destructive data-[variant=destructive]:focus:bg-destructive/10 data-[variant=destructive]:focus:text-destructive dark:data-[variant=destructive]:focus:bg-destructive/20 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}
|
|
@@ -106,7 +106,7 @@ function DropdownMenuCheckboxItem({
|
|
|
106
106
|
data-slot="dropdown-menu-checkbox-item"
|
|
107
107
|
data-inset={inset}
|
|
108
108
|
className={cn(
|
|
109
|
-
"relative flex cursor-default items-center gap-2.5 rounded-
|
|
109
|
+
"relative flex cursor-default items-center gap-2.5 rounded-sm py-2 pr-8 pl-3 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground focus:**:text-accent-foreground data-inset:pl-9.5 data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
|
|
110
110
|
className
|
|
111
111
|
)}
|
|
112
112
|
checked={checked}
|
|
@@ -144,7 +144,7 @@ function DropdownMenuRadioItem({
|
|
|
144
144
|
data-slot="dropdown-menu-radio-item"
|
|
145
145
|
data-inset={inset}
|
|
146
146
|
className={cn(
|
|
147
|
-
"relative flex cursor-default items-center gap-2.5 rounded-
|
|
147
|
+
"relative flex cursor-default items-center gap-2.5 rounded-sm py-2 pr-8 pl-3 text-sm outline-hidden select-none focus:bg-secondary hover:bg-secondary focus:text-foreground focus:**:text-foreground data-inset:pl-9.5 data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
|
|
148
148
|
className
|
|
149
149
|
)}
|
|
150
150
|
{...props}
|
|
@@ -222,7 +222,7 @@ function DropdownMenuSubTrigger({
|
|
|
222
222
|
data-slot="dropdown-menu-sub-trigger"
|
|
223
223
|
data-inset={inset}
|
|
224
224
|
className={cn(
|
|
225
|
-
"flex cursor-default items-center gap-2 rounded-
|
|
225
|
+
"flex cursor-default items-center gap-2 rounded-sm px-3 py-2 text-sm outline-hidden select-none focus:bg-secondary focus:text-foreground not-data-[variant=destructive]:focus:**:text-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",
|
|
226
226
|
className
|
|
227
227
|
)}
|
|
228
228
|
{...props}
|
|
@@ -241,7 +241,7 @@ function DropdownMenuSubContent({
|
|
|
241
241
|
<DropdownMenuPrimitive.SubContent
|
|
242
242
|
data-slot="dropdown-menu-sub-content"
|
|
243
243
|
className={cn(
|
|
244
|
-
'z-50 min-w-36 origin-(--radix-dropdown-menu-content-transform-origin) overflow-hidden rounded-
|
|
244
|
+
'z-50 min-w-36 origin-(--radix-dropdown-menu-content-transform-origin) overflow-hidden rounded-sm 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 relative bg-popover/70 before:pointer-events-none before:absolute before:inset-0 before:-z-1 before:rounded-[inherit] before:backdrop-blur-2xl before:backdrop-saturate-150 **:data-[slot$=-item]:focus:bg-foreground/10 **:data-[slot$=-item]:data-highlighted:bg-foreground/10 **:data-[slot$=-separator]:bg-foreground/5 **:data-[slot$=-trigger]:focus:bg-foreground/10 **:data-[slot$=-trigger]:aria-expanded:bg-foreground/10!',
|
|
245
245
|
className
|
|
246
246
|
)}
|
|
247
247
|
{...props}
|
|
@@ -6,7 +6,7 @@ function Empty({ className, ...props }: React.ComponentProps<'div'>) {
|
|
|
6
6
|
<div
|
|
7
7
|
data-slot="empty"
|
|
8
8
|
className={cn(
|
|
9
|
-
'flex w-full min-w-0 flex-1 flex-col items-center justify-center gap-4 rounded-
|
|
9
|
+
'flex w-full min-w-0 flex-1 flex-col items-center justify-center gap-4 rounded-sm border-dashed p-12 text-center text-balance',
|
|
10
10
|
className
|
|
11
11
|
)}
|
|
12
12
|
{...props}
|
|
@@ -30,7 +30,7 @@ const emptyMediaVariants = cva(
|
|
|
30
30
|
variants: {
|
|
31
31
|
variant: {
|
|
32
32
|
default: 'bg-transparent',
|
|
33
|
-
icon: "flex size-10 shrink-0 items-center justify-center rounded-
|
|
33
|
+
icon: "flex size-10 shrink-0 items-center justify-center rounded-sm bg-muted text-foreground [&_svg:not([class*='size-'])]:size-6"
|
|
34
34
|
}
|
|
35
35
|
},
|
|
36
36
|
defaultVariants: {
|
|
@@ -99,7 +99,7 @@ function FieldLabel({ className, ...props }: React.ComponentProps<typeof Label>)
|
|
|
99
99
|
<Label
|
|
100
100
|
data-slot="field-label"
|
|
101
101
|
className={cn(
|
|
102
|
-
'group/field-label peer/field-label flex w-fit gap-2 leading-snug group-data-[disabled=true]/field:opacity-50 has-data-checked:border-primary/30 has-data-checked:bg-primary/5 has-[>[data-slot=field]]:rounded-
|
|
102
|
+
'group/field-label peer/field-label flex w-fit gap-2 leading-snug group-data-[disabled=true]/field:opacity-50 has-data-checked:border-primary/30 has-data-checked:bg-primary/5 has-[>[data-slot=field]]:rounded-sm has-[>[data-slot=field]]:border *:data-[slot=field]:p-4 dark:has-data-checked:border-primary/20 dark:has-data-checked:bg-primary/10',
|
|
103
103
|
'has-[>[data-slot=field]]:w-full has-[>[data-slot=field]]:flex-col',
|
|
104
104
|
className
|
|
105
105
|
)}
|
|
@@ -25,7 +25,7 @@ function HoverCardContent({
|
|
|
25
25
|
align={align}
|
|
26
26
|
sideOffset={sideOffset}
|
|
27
27
|
className={cn(
|
|
28
|
-
'z-50 w-72 origin-(--radix-hover-card-content-transform-origin) rounded-
|
|
28
|
+
'z-50 w-72 origin-(--radix-hover-card-content-transform-origin) rounded-sm bg-popover p-4 text-sm text-popover-foreground shadow-2xl ring-1 ring-foreground/5 outline-hidden duration-100 data-[side=bottom]:slide-in-from-top-2 data-[side=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',
|
|
29
29
|
className
|
|
30
30
|
)}
|
|
31
31
|
{...props}
|
|
@@ -12,7 +12,7 @@ function InputGroup({ className, ...props }: React.ComponentProps<'div'>) {
|
|
|
12
12
|
<div
|
|
13
13
|
data-slot="input-group"
|
|
14
14
|
className={cn(
|
|
15
|
-
'group/input-group border border-border relative m-0 flex h-11 w-full min-w-0 items-stretch rounded-
|
|
15
|
+
'group/input-group border border-border relative m-0 flex h-11 w-full min-w-0 items-stretch rounded-sm bg-input p-0 transition-colors outline-none [min-inline-size:0] in-data-[slot=combobox-content]:focus-within:border-inherit in-data-[slot=combobox-content]:focus-within:ring-0 has-data-[align=block-end]:rounded-sm has-data-[align=block-start]:rounded-sm has-[[data-slot=input-group-control]:focus-visible]:border-ring has-[[data-slot=input-group-control]:focus-visible]:ring-[3px] has-[[data-slot=input-group-control]:focus-visible]:ring-ring/50 has-[[data-slot][aria-invalid=true]]:border-destructive has-[[data-slot][aria-invalid=true]]:ring-[3px] has-[[data-slot][aria-invalid=true]]:ring-destructive/20 has-[textarea]:rounded-sm has-[>[data-align=block-end]]:h-auto has-[>[data-align=block-end]]:flex-col has-[>[data-align=block-start]]:h-auto has-[>[data-align=block-start]]:flex-col has-[>textarea]:h-auto dark:has-[[data-slot][aria-invalid=true]]:ring-destructive/40 has-[>[data-align=block-start]]:[&>input]:pb-3 has-[>[data-align=inline-end]]:[&>input]:pr-1.5 has-[>[data-align=inline-start]]:[&>input]:pl-1.5',
|
|
16
16
|
className
|
|
17
17
|
)}
|
|
18
18
|
{...props}
|
|
@@ -21,13 +21,12 @@ function InputGroup({ className, ...props }: React.ComponentProps<'div'>) {
|
|
|
21
21
|
}
|
|
22
22
|
|
|
23
23
|
const inputGroupAddonVariants = cva(
|
|
24
|
-
"flex h-auto cursor-text items-center justify-center gap-2 text-sm font-medium select-none group-data-[disabled=true]/input-group:opacity-50 **:data-[slot=kbd]:rounded-
|
|
24
|
+
"flex h-auto cursor-text items-center justify-center gap-2 text-sm font-medium select-none group-data-[disabled=true]/input-group:opacity-50 **:data-[slot=kbd]:rounded-sm **:data-[slot=kbd]:bg-muted-foreground/10 **:data-[slot=kbd]:px-1.5 [&>svg:not([class*='size-'])]:size-4",
|
|
25
25
|
{
|
|
26
26
|
variants: {
|
|
27
27
|
align: {
|
|
28
|
-
'inline-start':
|
|
29
|
-
|
|
30
|
-
'inline-end': 'order-last self-stretch pr-2 has-[>button]:-mr-1 has-[>kbd]:mr-[-0.15rem]',
|
|
28
|
+
'inline-start': 'order-first self-stretch has-[>button]:-ml-1 has-[>kbd]:ml-[-0.15rem]',
|
|
29
|
+
'inline-end': 'order-last self-stretch has-[>button]:-mr-1 has-[>kbd]:mr-[-0.15rem]',
|
|
31
30
|
'block-start': 'order-first w-full justify-start px-3 [.border-b]:pb-3',
|
|
32
31
|
'block-end': 'order-last w-full justify-start px-3 pb-3 group-has-[>input]/input-group:pb-3'
|
|
33
32
|
}
|
|
@@ -53,7 +52,7 @@ function InputGroupAddon({
|
|
|
53
52
|
)
|
|
54
53
|
}
|
|
55
54
|
|
|
56
|
-
const inputGroupButtonVariants = cva('flex items-center gap-2 rounded-
|
|
55
|
+
const inputGroupButtonVariants = cva('flex items-center gap-2 rounded-sm text-sm shadow-none', {
|
|
57
56
|
variants: {
|
|
58
57
|
size: {
|
|
59
58
|
xs: "h-6 gap-1 px-1.5 [&>svg:not([class*='size-'])]:size-3.5",
|
|
@@ -31,7 +31,7 @@ function InputOTPGroup({ className, ...props }: React.ComponentProps<'div'>) {
|
|
|
31
31
|
<div
|
|
32
32
|
data-slot="input-otp-group"
|
|
33
33
|
className={cn(
|
|
34
|
-
'flex items-center rounded-
|
|
34
|
+
'flex items-center rounded-sm has-aria-invalid:border-destructive has-aria-invalid:ring-[3px] has-aria-invalid:ring-destructive/20 dark:has-aria-invalid:ring-destructive/40',
|
|
35
35
|
className
|
|
36
36
|
)}
|
|
37
37
|
{...props}
|
|
@@ -54,7 +54,7 @@ function InputOTPSlot({
|
|
|
54
54
|
data-slot="input-otp-slot"
|
|
55
55
|
data-active={isActive}
|
|
56
56
|
className={cn(
|
|
57
|
-
'relative flex size-9 items-center justify-center border-y border-r border-input bg-input/30 text-sm transition-all outline-none first:rounded-l-
|
|
57
|
+
'relative flex size-9 items-center justify-center border-y border-r border-input bg-input/30 text-sm transition-all outline-none first:rounded-l-sm first:border-l last:rounded-r-sm aria-invalid:border-destructive data-[active=true]:z-10 data-[active=true]:border-ring data-[active=true]:ring-[3px] data-[active=true]:ring-ring/50 data-[active=true]:aria-invalid:border-destructive data-[active=true]:aria-invalid:ring-destructive/20 dark:data-[active=true]:aria-invalid:ring-destructive/40',
|
|
58
58
|
className
|
|
59
59
|
)}
|
|
60
60
|
{...props}
|
|
@@ -7,7 +7,7 @@ function Input({ className, type, ...props }: React.ComponentProps<'input'>) {
|
|
|
7
7
|
type={type}
|
|
8
8
|
data-slot="input"
|
|
9
9
|
className={cn(
|
|
10
|
-
'h-
|
|
10
|
+
'h-10 w-full min-w-0 rounded-sm border border-border bg-input px-4 py-1 text-base transition-colors outline-none file:inline-flex file:h-7 file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground placeholder:text-muted-foreground focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-[3px] aria-invalid:ring-destructive/20 md:text-sm dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 hover:border-primary/13 shadow-input',
|
|
11
11
|
className
|
|
12
12
|
)}
|
|
13
13
|
{...props}
|
|
@@ -29,7 +29,7 @@ function ItemSeparator({ className, ...props }: React.ComponentProps<typeof Sepa
|
|
|
29
29
|
}
|
|
30
30
|
|
|
31
31
|
const itemVariants = cva(
|
|
32
|
-
'group/item flex w-full flex-wrap items-center rounded-
|
|
32
|
+
'group/item flex w-full flex-wrap items-center rounded-sm border text-sm transition-colors duration-100 outline-none focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 [a]:transition-colors [a]:hover:bg-muted',
|
|
33
33
|
{
|
|
34
34
|
variants: {
|
|
35
35
|
variant: {
|
|
@@ -77,7 +77,7 @@ const itemMediaVariants = cva(
|
|
|
77
77
|
default: 'bg-transparent',
|
|
78
78
|
icon: "[&_svg:not([class*='size-'])]:size-4",
|
|
79
79
|
image:
|
|
80
|
-
'size-10 overflow-hidden rounded-
|
|
80
|
+
'size-10 overflow-hidden rounded-sm group-data-[size=sm]/item:size-8 group-data-[size=xs]/item:size-6 group-data-[size=xs]/item:rounded-md [&_img]:size-full [&_img]:object-cover'
|
|
81
81
|
}
|
|
82
82
|
},
|
|
83
83
|
defaultVariants: {
|