betterstart-cli 0.0.105 → 0.0.107
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-nav-link.tsx +10 -8
- package/dist/assets/adapters/next/templates/init/components/layouts/admin-sidebar-nav-link-skeleton.tsx +1 -5
- package/dist/assets/adapters/next/templates/init/components/layouts/admin-sidebar-user-menu.tsx +54 -48
- package/dist/assets/adapters/next/templates/init/components/layouts/admin-sign-out.tsx +2 -2
- package/dist/assets/adapters/next/templates/init/components/shared/data-table/data-grid-body.tsx +20 -0
- package/dist/assets/adapters/next/templates/init/components/shared/data-table/data-grid-cell.tsx +20 -0
- package/dist/assets/adapters/next/templates/init/components/shared/data-table/data-grid-head.tsx +21 -0
- package/dist/assets/adapters/next/templates/init/components/shared/data-table/data-grid-header.tsx +20 -0
- package/dist/assets/adapters/next/templates/init/components/shared/data-table/data-grid-row.tsx +22 -0
- package/dist/assets/adapters/next/templates/init/components/shared/data-table/data-grid.tsx +7 -81
- package/dist/assets/adapters/next/templates/init/components/shared/delete-dialog.tsx +3 -5
- package/dist/assets/adapters/next/templates/init/components/shared/dev-mode/lifecycle-hooks-tab.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 +5 -7
- package/dist/assets/adapters/next/templates/init/components/shared/entity-filters-bar.tsx +9 -10
- package/dist/assets/adapters/next/templates/init/components/shared/entity-versions/entity-version-item.tsx +2 -4
- package/dist/assets/adapters/next/templates/init/components/shared/entity-versions/entity-version-restore-dialog.tsx +2 -4
- package/dist/assets/adapters/next/templates/init/components/shared/entity-versions/entity-versions-current-row.tsx +2 -4
- package/dist/assets/adapters/next/templates/init/components/shared/entity-versions/entity-versions-drawer.tsx +1 -1
- package/dist/assets/adapters/next/templates/init/components/shared/media/edit-media-dialog.tsx +2 -2
- package/dist/assets/adapters/next/templates/init/components/shared/media/media-delete-dialog.tsx +5 -5
- package/dist/assets/adapters/next/templates/init/components/shared/media/media-delete-drawer.tsx +52 -53
- package/dist/assets/adapters/next/templates/init/components/shared/sort-order-dialog.tsx +3 -5
- package/dist/assets/adapters/next/templates/init/pages/dashboard-page.tsx +1 -1
- package/dist/assets/adapters/next/templates/init/pages/settings/audit-log/audit-log-detail-drawer.tsx +1 -1
- package/dist/assets/adapters/next/templates/init/pages/settings/forms/form-notifications-drawer.tsx +5 -5
- package/dist/assets/adapters/next/templates/init/pages/settings/webhooks/webhook-actions.tsx +20 -20
- package/dist/assets/adapters/next/templates/init/pages/users/change-password-dialog.tsx +7 -5
- package/dist/assets/adapters/next/templates/init/pages/users/columns.tsx +3 -5
- package/dist/assets/adapters/next/templates/init/pages/users/create-user-dialog.tsx +1 -3
- package/dist/assets/adapters/next/templates/init/pages/users/delete-user-dialog.tsx +11 -5
- package/dist/assets/adapters/next/templates/init/pages/users/edit-role-dialog.tsx +1 -1
- package/dist/assets/shared-assets/react-admin/custom/content-editor/math-popover-button.tsx +13 -11
- package/dist/assets/shared-assets/react-admin/custom/content-editor/source-mode-dropdown-button.tsx +16 -14
- 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-button.tsx +14 -12
- package/dist/assets/shared-assets/react-admin/custom/content-editor/tiptap-ui/blockquote-button/blockquote-button.tsx +4 -11
- package/dist/assets/shared-assets/react-admin/custom/content-editor/tiptap-ui/blockquote-button/blockquote-shortcut-badge.tsx +15 -0
- package/dist/assets/shared-assets/react-admin/custom/content-editor/tiptap-ui/code-block-button/code-block-button.tsx +4 -11
- package/dist/assets/shared-assets/react-admin/custom/content-editor/tiptap-ui/code-block-button/code-block-shortcut-badge.tsx +15 -0
- package/dist/assets/shared-assets/react-admin/custom/content-editor/tiptap-ui/color-highlight-button/color-highlight-button.tsx +6 -42
- package/dist/assets/shared-assets/react-admin/custom/content-editor/tiptap-ui/color-highlight-button/color-highlight-shortcut-badge.tsx +15 -0
- package/dist/assets/shared-assets/react-admin/custom/content-editor/tiptap-ui/color-highlight-button/highlight-swatch.tsx +34 -0
- package/dist/assets/shared-assets/react-admin/custom/content-editor/tiptap-ui/color-highlight-popover/color-highlight-popover.tsx +16 -14
- package/dist/assets/shared-assets/react-admin/custom/content-editor/tiptap-ui/color-highlight-popover/source-color-highlight-popover.tsx +15 -13
- package/dist/assets/shared-assets/react-admin/custom/content-editor/tiptap-ui/heading-dropdown-menu/heading-dropdown-menu-item.tsx +1 -1
- package/dist/assets/shared-assets/react-admin/custom/content-editor/tiptap-ui/heading-dropdown-menu/heading-dropdown-menu.tsx +31 -29
- package/dist/assets/shared-assets/react-admin/custom/content-editor/tiptap-ui/link-popover/link-control-popover.tsx +15 -13
- package/dist/assets/shared-assets/react-admin/custom/content-editor/tiptap-ui/list-dropdown-menu/list-dropdown-menu-item.tsx +1 -1
- package/dist/assets/shared-assets/react-admin/custom/content-editor/tiptap-ui/list-dropdown-menu/list-dropdown-menu.tsx +22 -20
- package/dist/assets/shared-assets/react-admin/custom/content-editor/tiptap-ui/mark-button/mark-button.tsx +5 -14
- package/dist/assets/shared-assets/react-admin/custom/content-editor/tiptap-ui/mark-button/mark-shortcut-badge.tsx +18 -0
- package/dist/assets/shared-assets/react-admin/custom/content-editor/tiptap-ui/undo-redo-button/history-shortcut-badge.tsx +18 -0
- package/dist/assets/shared-assets/react-admin/custom/content-editor/tiptap-ui/undo-redo-button/undo-redo-button.tsx +5 -14
- package/dist/assets/shared-assets/react-admin/custom/date-picker.tsx +16 -14
- package/dist/assets/shared-assets/react-admin/custom/date-range-picker.tsx +8 -6
- package/dist/assets/shared-assets/react-admin/custom/icon-picker/memoized-icon.tsx +10 -0
- package/dist/assets/shared-assets/react-admin/custom/icon-picker.tsx +9 -10
- package/dist/assets/shared-assets/react-admin/custom/nested-object-list-field.tsx +2 -4
- package/dist/assets/shared-assets/react-admin/ui/accordion.tsx +11 -28
- package/dist/assets/shared-assets/react-admin/ui/alert-dialog.tsx +30 -47
- package/dist/assets/shared-assets/react-admin/ui/alert.tsx +4 -4
- package/dist/assets/shared-assets/react-admin/ui/aspect-ratio.tsx +18 -5
- package/dist/assets/shared-assets/react-admin/ui/avatar.tsx +10 -13
- package/dist/assets/shared-assets/react-admin/ui/badge.tsx +21 -20
- package/dist/assets/shared-assets/react-admin/ui/breadcrumb.tsx +20 -19
- package/dist/assets/shared-assets/react-admin/ui/button-group.tsx +25 -24
- package/dist/assets/shared-assets/react-admin/ui/button.tsx +22 -31
- package/dist/assets/shared-assets/react-admin/ui/calendar.tsx +9 -6
- package/dist/assets/shared-assets/react-admin/ui/card.tsx +6 -16
- package/dist/assets/shared-assets/react-admin/ui/carousel.tsx +20 -17
- package/dist/assets/shared-assets/react-admin/ui/chart.tsx +19 -16
- package/dist/assets/shared-assets/react-admin/ui/checkbox.tsx +3 -4
- package/dist/assets/shared-assets/react-admin/ui/collapsible.tsx +6 -10
- package/dist/assets/shared-assets/react-admin/ui/combobox.tsx +10 -36
- package/dist/assets/shared-assets/react-admin/ui/command.tsx +7 -6
- package/dist/assets/shared-assets/react-admin/ui/context-menu.tsx +77 -79
- package/dist/assets/shared-assets/react-admin/ui/dialog.tsx +29 -54
- package/dist/assets/shared-assets/react-admin/ui/direction.tsx +1 -18
- package/dist/assets/shared-assets/react-admin/ui/drawer.tsx +121 -49
- package/dist/assets/shared-assets/react-admin/ui/dropdown-menu.tsx +117 -131
- package/dist/assets/shared-assets/react-admin/ui/empty.tsx +3 -3
- package/dist/assets/shared-assets/react-admin/ui/field.tsx +20 -30
- package/dist/assets/shared-assets/react-admin/ui/form.tsx +27 -31
- package/dist/assets/shared-assets/react-admin/ui/hover-card.tsx +26 -18
- package/dist/assets/shared-assets/react-admin/ui/input-group.tsx +25 -12
- package/dist/assets/shared-assets/react-admin/ui/input-otp.tsx +3 -3
- package/dist/assets/shared-assets/react-admin/ui/input.tsx +4 -3
- package/dist/assets/shared-assets/react-admin/ui/item.tsx +26 -19
- package/dist/assets/shared-assets/react-admin/ui/label.tsx +18 -14
- package/dist/assets/shared-assets/react-admin/ui/menubar.tsx +80 -73
- package/dist/assets/shared-assets/react-admin/ui/native-select.tsx +3 -3
- package/dist/assets/shared-assets/react-admin/ui/navigation-menu.tsx +40 -39
- package/dist/assets/shared-assets/react-admin/ui/pagination.tsx +18 -11
- package/dist/assets/shared-assets/react-admin/ui/popover.tsx +31 -30
- package/dist/assets/shared-assets/react-admin/ui/progress.tsx +51 -16
- package/dist/assets/shared-assets/react-admin/ui/radio-group.tsx +11 -17
- package/dist/assets/shared-assets/react-admin/ui/resizable.tsx +1 -1
- package/dist/assets/shared-assets/react-admin/ui/scroll-area.tsx +9 -13
- package/dist/assets/shared-assets/react-admin/ui/select.tsx +66 -60
- package/dist/assets/shared-assets/react-admin/ui/separator.tsx +3 -10
- package/dist/assets/shared-assets/react-admin/ui/sheet.tsx +22 -27
- package/dist/assets/shared-assets/react-admin/ui/sidebar.tsx +144 -126
- package/dist/assets/shared-assets/react-admin/ui/skeleton.tsx +1 -1
- package/dist/assets/shared-assets/react-admin/ui/slider.tsx +27 -29
- package/dist/assets/shared-assets/react-admin/ui/sonner.tsx +8 -3
- package/dist/assets/shared-assets/react-admin/ui/spinner.tsx +4 -3
- package/dist/assets/shared-assets/react-admin/ui/switch.tsx +4 -5
- package/dist/assets/shared-assets/react-admin/ui/table.tsx +8 -21
- package/dist/assets/shared-assets/react-admin/ui/tabs.tsx +11 -16
- package/dist/assets/shared-assets/react-admin/ui/textarea.tsx +2 -2
- package/dist/assets/shared-assets/react-admin/ui/toggle-group.tsx +12 -11
- package/dist/assets/shared-assets/react-admin/ui/toggle.tsx +4 -5
- package/dist/assets/shared-assets/react-admin/ui/tooltip.tsx +29 -27
- package/dist/cli.js +145 -111
- package/dist/cli.js.map +1 -1
- package/package.json +1 -1
|
@@ -1,47 +1,34 @@
|
|
|
1
|
-
'use client'
|
|
2
|
-
|
|
3
|
-
import type * as React from 'react'
|
|
4
1
|
import { cn } from '@admin/utils/shared/cn'
|
|
2
|
+
import { Accordion as AccordionPrimitive } from '@base-ui/react/accordion'
|
|
5
3
|
import { ChevronDownIcon, ChevronUpIcon } from 'lucide-react'
|
|
6
|
-
import { Accordion as AccordionPrimitive } from 'radix-ui'
|
|
7
4
|
|
|
8
|
-
function Accordion({ className, ...props }:
|
|
5
|
+
function Accordion({ className, ...props }: AccordionPrimitive.Root.Props) {
|
|
9
6
|
return (
|
|
10
7
|
<AccordionPrimitive.Root
|
|
11
8
|
data-slot="accordion"
|
|
12
|
-
className={cn(
|
|
13
|
-
'flex w-full flex-col overflow-hidden rounded-sm border border-border bg-card shadow-2xl/1',
|
|
14
|
-
className
|
|
15
|
-
)}
|
|
9
|
+
className={cn('flex w-full flex-col overflow-hidden rounded-2xl border', className)}
|
|
16
10
|
{...props}
|
|
17
11
|
/>
|
|
18
12
|
)
|
|
19
13
|
}
|
|
20
14
|
|
|
21
|
-
function AccordionItem({
|
|
22
|
-
className,
|
|
23
|
-
...props
|
|
24
|
-
}: React.ComponentProps<typeof AccordionPrimitive.Item>) {
|
|
15
|
+
function AccordionItem({ className, ...props }: AccordionPrimitive.Item.Props) {
|
|
25
16
|
return (
|
|
26
17
|
<AccordionPrimitive.Item
|
|
27
18
|
data-slot="accordion-item"
|
|
28
|
-
className={cn('not-last:border-b data-open:bg-
|
|
19
|
+
className={cn('not-last:border-b data-open:bg-muted/50', className)}
|
|
29
20
|
{...props}
|
|
30
21
|
/>
|
|
31
22
|
)
|
|
32
23
|
}
|
|
33
24
|
|
|
34
|
-
function AccordionTrigger({
|
|
35
|
-
className,
|
|
36
|
-
children,
|
|
37
|
-
...props
|
|
38
|
-
}: React.ComponentProps<typeof AccordionPrimitive.Trigger>) {
|
|
25
|
+
function AccordionTrigger({ className, children, ...props }: AccordionPrimitive.Trigger.Props) {
|
|
39
26
|
return (
|
|
40
27
|
<AccordionPrimitive.Header className="flex">
|
|
41
28
|
<AccordionPrimitive.Trigger
|
|
42
29
|
data-slot="accordion-trigger"
|
|
43
30
|
className={cn(
|
|
44
|
-
'group/accordion-trigger relative flex flex-1 items-start justify-between gap-6 border border-transparent p-4 text-left text-sm font-medium transition-all outline-none disabled:pointer-events-none disabled:opacity-50 **:data-[slot=accordion-trigger-icon]:ml-auto **:data-[slot=accordion-trigger-icon]:size-4 **:data-[slot=accordion-trigger-icon]:text-foreground',
|
|
31
|
+
'group/accordion-trigger relative flex flex-1 items-start justify-between gap-6 border border-transparent p-4 text-left text-sm font-medium transition-all outline-none hover:underline aria-disabled:pointer-events-none aria-disabled:opacity-50 **:data-[slot=accordion-trigger-icon]:ml-auto **:data-[slot=accordion-trigger-icon]:size-4 **:data-[slot=accordion-trigger-icon]:text-muted-foreground',
|
|
45
32
|
className
|
|
46
33
|
)}
|
|
47
34
|
{...props}
|
|
@@ -60,26 +47,22 @@ function AccordionTrigger({
|
|
|
60
47
|
)
|
|
61
48
|
}
|
|
62
49
|
|
|
63
|
-
function AccordionContent({
|
|
64
|
-
className,
|
|
65
|
-
children,
|
|
66
|
-
...props
|
|
67
|
-
}: React.ComponentProps<typeof AccordionPrimitive.Content>) {
|
|
50
|
+
function AccordionContent({ className, children, ...props }: AccordionPrimitive.Panel.Props) {
|
|
68
51
|
return (
|
|
69
|
-
<AccordionPrimitive.
|
|
52
|
+
<AccordionPrimitive.Panel
|
|
70
53
|
data-slot="accordion-content"
|
|
71
54
|
className="overflow-hidden px-4 text-sm data-open:animate-accordion-down data-closed:animate-accordion-up"
|
|
72
55
|
{...props}
|
|
73
56
|
>
|
|
74
57
|
<div
|
|
75
58
|
className={cn(
|
|
76
|
-
'h-
|
|
59
|
+
'h-(--accordion-panel-height) pt-0 pb-4 data-ending-style:h-0 data-starting-style:h-0 [&_a]:underline [&_a]:underline-offset-3 [&_a]:hover:text-foreground [&_p:not(:last-child)]:mb-4',
|
|
77
60
|
className
|
|
78
61
|
)}
|
|
79
62
|
>
|
|
80
63
|
{children}
|
|
81
64
|
</div>
|
|
82
|
-
</AccordionPrimitive.
|
|
65
|
+
</AccordionPrimitive.Panel>
|
|
83
66
|
)
|
|
84
67
|
}
|
|
85
68
|
|
|
@@ -1,33 +1,28 @@
|
|
|
1
1
|
'use client'
|
|
2
2
|
|
|
3
|
-
import
|
|
3
|
+
import * as React from 'react'
|
|
4
4
|
import { Button } from '@admin/components/ui/button'
|
|
5
5
|
import { cn } from '@admin/utils/shared/cn'
|
|
6
|
-
import { AlertDialog as AlertDialogPrimitive } from '
|
|
6
|
+
import { AlertDialog as AlertDialogPrimitive } from '@base-ui/react/alert-dialog'
|
|
7
7
|
|
|
8
|
-
function AlertDialog({ ...props }:
|
|
8
|
+
function AlertDialog({ ...props }: AlertDialogPrimitive.Root.Props) {
|
|
9
9
|
return <AlertDialogPrimitive.Root data-slot="alert-dialog" {...props} />
|
|
10
10
|
}
|
|
11
11
|
|
|
12
|
-
function AlertDialogTrigger({
|
|
13
|
-
...props
|
|
14
|
-
}: React.ComponentProps<typeof AlertDialogPrimitive.Trigger>) {
|
|
12
|
+
function AlertDialogTrigger({ ...props }: AlertDialogPrimitive.Trigger.Props) {
|
|
15
13
|
return <AlertDialogPrimitive.Trigger data-slot="alert-dialog-trigger" {...props} />
|
|
16
14
|
}
|
|
17
15
|
|
|
18
|
-
function AlertDialogPortal({ ...props }:
|
|
16
|
+
function AlertDialogPortal({ ...props }: AlertDialogPrimitive.Portal.Props) {
|
|
19
17
|
return <AlertDialogPrimitive.Portal data-slot="alert-dialog-portal" {...props} />
|
|
20
18
|
}
|
|
21
19
|
|
|
22
|
-
function AlertDialogOverlay({
|
|
23
|
-
className,
|
|
24
|
-
...props
|
|
25
|
-
}: React.ComponentProps<typeof AlertDialogPrimitive.Overlay>) {
|
|
20
|
+
function AlertDialogOverlay({ className, ...props }: AlertDialogPrimitive.Backdrop.Props) {
|
|
26
21
|
return (
|
|
27
|
-
<AlertDialogPrimitive.
|
|
22
|
+
<AlertDialogPrimitive.Backdrop
|
|
28
23
|
data-slot="alert-dialog-overlay"
|
|
29
24
|
className={cn(
|
|
30
|
-
'fixed inset-0 z-50 bg-black/80 duration-100 supports-backdrop-filter:backdrop-blur-xs data-open:animate-in data-open:fade-in-0 data-closed:animate-out data-closed:fade-out-0',
|
|
25
|
+
'fixed inset-0 isolate z-50 bg-black/80 duration-100 supports-backdrop-filter:backdrop-blur-xs data-open:animate-in data-open:fade-in-0 data-closed:animate-out data-closed:fade-out-0',
|
|
31
26
|
className
|
|
32
27
|
)}
|
|
33
28
|
{...props}
|
|
@@ -39,17 +34,17 @@ function AlertDialogContent({
|
|
|
39
34
|
className,
|
|
40
35
|
size = 'default',
|
|
41
36
|
...props
|
|
42
|
-
}:
|
|
37
|
+
}: AlertDialogPrimitive.Popup.Props & {
|
|
43
38
|
size?: 'default' | 'sm'
|
|
44
39
|
}) {
|
|
45
40
|
return (
|
|
46
41
|
<AlertDialogPortal>
|
|
47
42
|
<AlertDialogOverlay />
|
|
48
|
-
<AlertDialogPrimitive.
|
|
43
|
+
<AlertDialogPrimitive.Popup
|
|
49
44
|
data-slot="alert-dialog-content"
|
|
50
45
|
data-size={size}
|
|
51
46
|
className={cn(
|
|
52
|
-
'group/alert-dialog-content fixed top-1/2 left-1/2 z-50 grid w-full -translate-x-1/2 -translate-y-1/2 gap-6
|
|
47
|
+
'group/alert-dialog-content fixed top-1/2 left-1/2 z-50 grid w-full -translate-x-1/2 -translate-y-1/2 gap-6 rounded-4xl bg-popover p-6 text-popover-foreground ring-1 ring-foreground/5 duration-100 outline-none data-[size=default]:max-w-xs data-[size=sm]:max-w-xs data-[size=default]: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',
|
|
53
48
|
className
|
|
54
49
|
)}
|
|
55
50
|
{...props}
|
|
@@ -63,7 +58,7 @@ function AlertDialogHeader({ className, ...props }: React.ComponentProps<'div'>)
|
|
|
63
58
|
<div
|
|
64
59
|
data-slot="alert-dialog-header"
|
|
65
60
|
className={cn(
|
|
66
|
-
'grid grid-rows-[auto_1fr] place-items-center gap-1.5
|
|
61
|
+
'grid grid-rows-[auto_1fr] place-items-center gap-1.5 text-center has-data-[slot=alert-dialog-media]:grid-rows-[auto_auto_1fr] has-data-[slot=alert-dialog-media]:gap-x-6 sm:group-data-[size=default]/alert-dialog-content:place-items-start sm:group-data-[size=default]/alert-dialog-content:text-left sm:group-data-[size=default]/alert-dialog-content:has-data-[slot=alert-dialog-media]:grid-rows-[auto_1fr]',
|
|
67
62
|
className
|
|
68
63
|
)}
|
|
69
64
|
{...props}
|
|
@@ -75,7 +70,7 @@ function AlertDialogBody({ className, ...props }: React.ComponentProps<'div'>) {
|
|
|
75
70
|
return (
|
|
76
71
|
<div
|
|
77
72
|
data-slot="alert-dialog-body"
|
|
78
|
-
className={cn('flex flex-col gap-
|
|
73
|
+
className={cn('flex flex-col gap-4', className)}
|
|
79
74
|
{...props}
|
|
80
75
|
/>
|
|
81
76
|
)
|
|
@@ -85,7 +80,10 @@ function AlertDialogFooter({ className, ...props }: React.ComponentProps<'div'>)
|
|
|
85
80
|
return (
|
|
86
81
|
<div
|
|
87
82
|
data-slot="alert-dialog-footer"
|
|
88
|
-
className={cn(
|
|
83
|
+
className={cn(
|
|
84
|
+
'flex flex-col-reverse gap-2 group-data-[size=sm]/alert-dialog-content:grid group-data-[size=sm]/alert-dialog-content:grid-cols-2 sm:flex-row sm:justify-end',
|
|
85
|
+
className
|
|
86
|
+
)}
|
|
89
87
|
{...props}
|
|
90
88
|
/>
|
|
91
89
|
)
|
|
@@ -96,7 +94,7 @@ function AlertDialogMedia({ className, ...props }: React.ComponentProps<'div'>)
|
|
|
96
94
|
<div
|
|
97
95
|
data-slot="alert-dialog-media"
|
|
98
96
|
className={cn(
|
|
99
|
-
"mb-2 inline-flex size-16 items-center justify-center rounded-
|
|
97
|
+
"mb-2 inline-flex size-16 items-center justify-center rounded-full bg-muted sm:group-data-[size=default]/alert-dialog-content:row-span-2 *:[svg:not([class*='size-'])]:size-8",
|
|
100
98
|
className
|
|
101
99
|
)}
|
|
102
100
|
{...props}
|
|
@@ -112,7 +110,7 @@ function AlertDialogTitle({
|
|
|
112
110
|
<AlertDialogPrimitive.Title
|
|
113
111
|
data-slot="alert-dialog-title"
|
|
114
112
|
className={cn(
|
|
115
|
-
'font-heading text-lg font-medium sm:group-data-[size=default]/alert-dialog-content:group-has-data-[slot=alert-dialog-media]/alert-dialog-content:col-start-2',
|
|
113
|
+
'cn-font-heading text-lg font-medium sm:group-data-[size=default]/alert-dialog-content:group-has-data-[slot=alert-dialog-media]/alert-dialog-content:col-start-2',
|
|
116
114
|
className
|
|
117
115
|
)}
|
|
118
116
|
{...props}
|
|
@@ -128,7 +126,7 @@ function AlertDialogDescription({
|
|
|
128
126
|
<AlertDialogPrimitive.Description
|
|
129
127
|
data-slot="alert-dialog-description"
|
|
130
128
|
className={cn(
|
|
131
|
-
'text-sm text-balance text-foreground md:text-pretty *:[a]:underline *:[a]:underline-offset-3 *:[a]:hover:text-foreground',
|
|
129
|
+
'text-sm text-balance text-muted-foreground md:text-pretty *:[a]:underline *:[a]:underline-offset-3 *:[a]:hover:text-foreground',
|
|
132
130
|
className
|
|
133
131
|
)}
|
|
134
132
|
{...props}
|
|
@@ -136,22 +134,8 @@ function AlertDialogDescription({
|
|
|
136
134
|
)
|
|
137
135
|
}
|
|
138
136
|
|
|
139
|
-
function AlertDialogAction({
|
|
140
|
-
className
|
|
141
|
-
variant = 'destructive',
|
|
142
|
-
size = 'default',
|
|
143
|
-
...props
|
|
144
|
-
}: React.ComponentProps<typeof AlertDialogPrimitive.Action> &
|
|
145
|
-
Pick<React.ComponentProps<typeof Button>, 'variant' | 'size'>) {
|
|
146
|
-
return (
|
|
147
|
-
<Button variant={variant} size={size} asChild>
|
|
148
|
-
<AlertDialogPrimitive.Action
|
|
149
|
-
data-slot="alert-dialog-action"
|
|
150
|
-
className={cn('w-full', className)}
|
|
151
|
-
{...props}
|
|
152
|
-
/>
|
|
153
|
-
</Button>
|
|
154
|
-
)
|
|
137
|
+
function AlertDialogAction({ className, ...props }: React.ComponentProps<typeof Button>) {
|
|
138
|
+
return <Button data-slot="alert-dialog-action" className={cn(className)} {...props} />
|
|
155
139
|
}
|
|
156
140
|
|
|
157
141
|
function AlertDialogCancel({
|
|
@@ -159,24 +143,23 @@ function AlertDialogCancel({
|
|
|
159
143
|
variant = 'outline',
|
|
160
144
|
size = 'default',
|
|
161
145
|
...props
|
|
162
|
-
}:
|
|
146
|
+
}: AlertDialogPrimitive.Close.Props &
|
|
163
147
|
Pick<React.ComponentProps<typeof Button>, 'variant' | 'size'>) {
|
|
164
148
|
return (
|
|
165
|
-
<
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
</Button>
|
|
149
|
+
<AlertDialogPrimitive.Close
|
|
150
|
+
data-slot="alert-dialog-cancel"
|
|
151
|
+
className={cn(className)}
|
|
152
|
+
render={<Button variant={variant} size={size} />}
|
|
153
|
+
{...props}
|
|
154
|
+
/>
|
|
172
155
|
)
|
|
173
156
|
}
|
|
174
157
|
|
|
175
158
|
export {
|
|
176
159
|
AlertDialog,
|
|
177
160
|
AlertDialogAction,
|
|
178
|
-
AlertDialogCancel,
|
|
179
161
|
AlertDialogBody,
|
|
162
|
+
AlertDialogCancel,
|
|
180
163
|
AlertDialogContent,
|
|
181
164
|
AlertDialogDescription,
|
|
182
165
|
AlertDialogFooter,
|
|
@@ -1,16 +1,16 @@
|
|
|
1
|
-
import
|
|
1
|
+
import * as React from 'react'
|
|
2
2
|
import type { VariantProps } from 'class-variance-authority'
|
|
3
3
|
import { cn } from '@admin/utils/shared/cn'
|
|
4
4
|
import { cva } from 'class-variance-authority'
|
|
5
5
|
|
|
6
6
|
const alertVariants = cva(
|
|
7
|
-
"group/alert relative grid w-full gap-0.5 rounded-
|
|
7
|
+
"group/alert relative grid w-full gap-0.5 rounded-lg border px-4 py-3 text-left text-sm has-data-[slot=alert-action]:relative has-data-[slot=alert-action]:pr-18 has-[>svg]:grid-cols-[auto_1fr] has-[>svg]:gap-x-2.5 *:[svg]:row-span-2 *:[svg]:translate-y-0.5 *:[svg]:text-current *:[svg:not([class*='size-'])]:size-4",
|
|
8
8
|
{
|
|
9
9
|
variants: {
|
|
10
10
|
variant: {
|
|
11
|
-
default: 'bg-card text-foreground',
|
|
11
|
+
default: 'bg-card text-card-foreground',
|
|
12
12
|
destructive:
|
|
13
|
-
'bg-card text-destructive *:data-[slot=alert-description]:text-destructive/90 *:[svg]:text-
|
|
13
|
+
'bg-card text-destructive *:data-[slot=alert-description]:text-destructive/90 *:[svg]:text-current'
|
|
14
14
|
}
|
|
15
15
|
},
|
|
16
16
|
defaultVariants: {
|
|
@@ -1,9 +1,22 @@
|
|
|
1
|
-
|
|
1
|
+
import { cn } from '@admin/utils/shared/cn'
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
3
|
+
function AspectRatio({
|
|
4
|
+
ratio,
|
|
5
|
+
className,
|
|
6
|
+
...props
|
|
7
|
+
}: React.ComponentProps<'div'> & { ratio: number }) {
|
|
8
|
+
return (
|
|
9
|
+
<div
|
|
10
|
+
data-slot="aspect-ratio"
|
|
11
|
+
style={
|
|
12
|
+
{
|
|
13
|
+
'--ratio': ratio
|
|
14
|
+
} as React.CSSProperties
|
|
15
|
+
}
|
|
16
|
+
className={cn('relative aspect-(--ratio)', className)}
|
|
17
|
+
{...props}
|
|
18
|
+
/>
|
|
19
|
+
)
|
|
7
20
|
}
|
|
8
21
|
|
|
9
22
|
export { AspectRatio }
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
'use client'
|
|
2
2
|
|
|
3
|
-
import
|
|
3
|
+
import * as React from 'react'
|
|
4
4
|
import { cn } from '@admin/utils/shared/cn'
|
|
5
|
-
import { Avatar as AvatarPrimitive } from '
|
|
5
|
+
import { Avatar as AvatarPrimitive } from '@base-ui/react/avatar'
|
|
6
6
|
|
|
7
7
|
function Avatar({
|
|
8
8
|
className,
|
|
9
9
|
size = 'default',
|
|
10
10
|
...props
|
|
11
|
-
}:
|
|
11
|
+
}: AvatarPrimitive.Root.Props & {
|
|
12
12
|
size?: 'default' | 'sm' | 'lg'
|
|
13
13
|
}) {
|
|
14
14
|
return (
|
|
@@ -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-full select-none after:absolute after:inset-0 after:rounded-full after:border after:border-border after:mix-blend-darken data-[size=lg]:size-10 data-[size=sm]:size-6 dark:after:mix-blend-lighten',
|
|
20
20
|
className
|
|
21
21
|
)}
|
|
22
22
|
{...props}
|
|
@@ -24,25 +24,22 @@ function Avatar({
|
|
|
24
24
|
)
|
|
25
25
|
}
|
|
26
26
|
|
|
27
|
-
function AvatarImage({ className, ...props }:
|
|
27
|
+
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-full object-cover', className)}
|
|
32
32
|
{...props}
|
|
33
33
|
/>
|
|
34
34
|
)
|
|
35
35
|
}
|
|
36
36
|
|
|
37
|
-
function AvatarFallback({
|
|
38
|
-
className,
|
|
39
|
-
...props
|
|
40
|
-
}: React.ComponentProps<typeof AvatarPrimitive.Fallback>) {
|
|
37
|
+
function AvatarFallback({ className, ...props }: AvatarPrimitive.Fallback.Props) {
|
|
41
38
|
return (
|
|
42
39
|
<AvatarPrimitive.Fallback
|
|
43
40
|
data-slot="avatar-fallback"
|
|
44
41
|
className={cn(
|
|
45
|
-
'flex size-full items-center justify-center rounded-
|
|
42
|
+
'flex size-full items-center justify-center rounded-full bg-muted text-sm text-muted-foreground group-data-[size=sm]/avatar:text-xs',
|
|
46
43
|
className
|
|
47
44
|
)}
|
|
48
45
|
{...props}
|
|
@@ -55,7 +52,7 @@ function AvatarBadge({ className, ...props }: React.ComponentProps<'span'>) {
|
|
|
55
52
|
<span
|
|
56
53
|
data-slot="avatar-badge"
|
|
57
54
|
className={cn(
|
|
58
|
-
'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-full bg-primary text-primary-foreground bg-blend-color ring-2 ring-background select-none',
|
|
59
56
|
'group-data-[size=sm]/avatar:size-2 group-data-[size=sm]/avatar:[&>svg]:hidden',
|
|
60
57
|
'group-data-[size=default]/avatar:size-2.5 group-data-[size=default]/avatar:[&>svg]:size-2',
|
|
61
58
|
'group-data-[size=lg]/avatar:size-3 group-data-[size=lg]/avatar:[&>svg]:size-2',
|
|
@@ -84,7 +81,7 @@ function AvatarGroupCount({ className, ...props }: React.ComponentProps<'div'>)
|
|
|
84
81
|
<div
|
|
85
82
|
data-slot="avatar-group-count"
|
|
86
83
|
className={cn(
|
|
87
|
-
'relative flex size-8 shrink-0 items-center justify-center rounded-
|
|
84
|
+
'relative flex size-8 shrink-0 items-center justify-center rounded-full bg-muted text-sm text-muted-foreground ring-2 ring-background group-has-data-[size=lg]/avatar-group:size-10 group-has-data-[size=sm]/avatar-group:size-6 [&>svg]:size-4 group-has-data-[size=lg]/avatar-group:[&>svg]:size-5 group-has-data-[size=sm]/avatar-group:[&>svg]:size-3',
|
|
88
85
|
className
|
|
89
86
|
)}
|
|
90
87
|
{...props}
|
|
@@ -1,23 +1,20 @@
|
|
|
1
|
-
import type * as React from 'react'
|
|
2
1
|
import type { VariantProps } from 'class-variance-authority'
|
|
3
2
|
import { cn } from '@admin/utils/shared/cn'
|
|
3
|
+
import { mergeProps } from '@base-ui/react/merge-props'
|
|
4
|
+
import { useRender } from '@base-ui/react/use-render'
|
|
4
5
|
import { cva } from 'class-variance-authority'
|
|
5
|
-
import { Slot } from 'radix-ui'
|
|
6
6
|
|
|
7
7
|
const badgeVariants = cva(
|
|
8
|
-
'group/badge inline-flex h-
|
|
8
|
+
'group/badge inline-flex h-5 w-fit shrink-0 items-center justify-center gap-1 overflow-hidden rounded-4xl border border-transparent px-2 py-0.5 text-xs font-medium whitespace-nowrap transition-all focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 [&>svg]:pointer-events-none [&>svg]:size-3!',
|
|
9
9
|
{
|
|
10
10
|
variants: {
|
|
11
11
|
variant: {
|
|
12
12
|
default: 'bg-primary text-primary-foreground [a]:hover:bg-primary/80',
|
|
13
|
-
secondary:
|
|
14
|
-
'border border-border bg-secondary text-secondary-foreground [a]:hover:bg-secondary/80',
|
|
13
|
+
secondary: 'bg-secondary text-secondary-foreground [a]:hover:bg-secondary/80',
|
|
15
14
|
destructive:
|
|
16
15
|
'bg-destructive/10 text-destructive focus-visible:ring-destructive/20 dark:bg-destructive/20 dark:focus-visible:ring-destructive/40 [a]:hover:bg-destructive/20',
|
|
17
|
-
success:
|
|
18
|
-
'bg-green-500/10 text-green-700 focus-visible:ring-green-500/20 dark:bg-green-500/20 dark:focus-visible:ring-green-500/40 [a]:hover:bg-green-500/20',
|
|
19
16
|
outline:
|
|
20
|
-
'border-border bg-
|
|
17
|
+
'border-border bg-input/30 text-foreground [a]:hover:bg-muted [a]:hover:text-muted-foreground',
|
|
21
18
|
ghost: 'hover:bg-muted hover:text-muted-foreground dark:hover:bg-muted/50',
|
|
22
19
|
link: 'text-primary underline-offset-4 hover:underline'
|
|
23
20
|
}
|
|
@@ -31,19 +28,23 @@ const badgeVariants = cva(
|
|
|
31
28
|
function Badge({
|
|
32
29
|
className,
|
|
33
30
|
variant = 'default',
|
|
34
|
-
|
|
31
|
+
render,
|
|
35
32
|
...props
|
|
36
|
-
}:
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
33
|
+
}: useRender.ComponentProps<'span'> & VariantProps<typeof badgeVariants>) {
|
|
34
|
+
return useRender({
|
|
35
|
+
defaultTagName: 'span',
|
|
36
|
+
props: mergeProps<'span'>(
|
|
37
|
+
{
|
|
38
|
+
className: cn(badgeVariants({ variant }), className)
|
|
39
|
+
},
|
|
40
|
+
props
|
|
41
|
+
),
|
|
42
|
+
render,
|
|
43
|
+
state: {
|
|
44
|
+
slot: 'badge',
|
|
45
|
+
variant
|
|
46
|
+
}
|
|
47
|
+
})
|
|
47
48
|
}
|
|
48
49
|
|
|
49
50
|
export { Badge, badgeVariants }
|
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
import
|
|
1
|
+
import * as React from 'react'
|
|
2
2
|
import { cn } from '@admin/utils/shared/cn'
|
|
3
|
+
import { mergeProps } from '@base-ui/react/merge-props'
|
|
4
|
+
import { useRender } from '@base-ui/react/use-render'
|
|
3
5
|
import { ChevronRightIcon, MoreHorizontalIcon } from 'lucide-react'
|
|
4
|
-
import { Slot } from 'radix-ui'
|
|
5
6
|
|
|
6
7
|
function Breadcrumb({ className, ...props }: React.ComponentProps<'nav'>) {
|
|
7
8
|
return <nav aria-label="breadcrumb" data-slot="breadcrumb" className={cn(className)} {...props} />
|
|
@@ -30,28 +31,28 @@ function BreadcrumbItem({ className, ...props }: React.ComponentProps<'li'>) {
|
|
|
30
31
|
)
|
|
31
32
|
}
|
|
32
33
|
|
|
33
|
-
function BreadcrumbLink({
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
/>
|
|
48
|
-
)
|
|
34
|
+
function BreadcrumbLink({ className, render, ...props }: useRender.ComponentProps<'a'>) {
|
|
35
|
+
return useRender({
|
|
36
|
+
defaultTagName: 'a',
|
|
37
|
+
props: mergeProps<'a'>(
|
|
38
|
+
{
|
|
39
|
+
className: cn('transition-colors hover:text-foreground', className)
|
|
40
|
+
},
|
|
41
|
+
props
|
|
42
|
+
),
|
|
43
|
+
render,
|
|
44
|
+
state: {
|
|
45
|
+
slot: 'breadcrumb-link'
|
|
46
|
+
}
|
|
47
|
+
})
|
|
49
48
|
}
|
|
50
49
|
|
|
51
50
|
function BreadcrumbPage({ className, ...props }: React.ComponentProps<'span'>) {
|
|
52
51
|
return (
|
|
53
52
|
<span
|
|
54
53
|
data-slot="breadcrumb-page"
|
|
54
|
+
role="link"
|
|
55
|
+
aria-disabled="true"
|
|
55
56
|
aria-current="page"
|
|
56
57
|
className={cn('font-normal text-foreground', className)}
|
|
57
58
|
{...props}
|
|
@@ -68,7 +69,7 @@ function BreadcrumbSeparator({ children, className, ...props }: React.ComponentP
|
|
|
68
69
|
className={cn('[&>svg]:size-3.5', className)}
|
|
69
70
|
{...props}
|
|
70
71
|
>
|
|
71
|
-
{children ?? <ChevronRightIcon />}
|
|
72
|
+
{children ?? <ChevronRightIcon className="cn-rtl-flip" />}
|
|
72
73
|
</li>
|
|
73
74
|
)
|
|
74
75
|
}
|
|
@@ -1,18 +1,19 @@
|
|
|
1
1
|
import type { VariantProps } from 'class-variance-authority'
|
|
2
2
|
import { Separator } from '@admin/components/ui/separator'
|
|
3
3
|
import { cn } from '@admin/utils/shared/cn'
|
|
4
|
+
import { mergeProps } from '@base-ui/react/merge-props'
|
|
5
|
+
import { useRender } from '@base-ui/react/use-render'
|
|
4
6
|
import { cva } from 'class-variance-authority'
|
|
5
|
-
import { Slot } from 'radix-ui'
|
|
6
7
|
|
|
7
8
|
const buttonGroupVariants = cva(
|
|
8
|
-
"
|
|
9
|
+
"flex w-fit items-stretch *:focus-visible:relative *:focus-visible:z-10 has-[>[data-slot=button-group]]:gap-2 has-[select[aria-hidden=true]:last-child]:[&>[data-slot=select-trigger]:last-of-type]:rounded-r-4xl [&>[data-slot=select-trigger]:not([class*='w-'])]:w-fit [&>input]:flex-1",
|
|
9
10
|
{
|
|
10
11
|
variants: {
|
|
11
12
|
orientation: {
|
|
12
13
|
horizontal:
|
|
13
|
-
'
|
|
14
|
+
'*:data-slot:rounded-r-none [&>[data-slot]:not(:has(~[data-slot]))]:rounded-r-4xl! [&>[data-slot]~[data-slot]]:rounded-l-none [&>[data-slot]~[data-slot]]:border-l-0',
|
|
14
15
|
vertical:
|
|
15
|
-
'flex-col
|
|
16
|
+
'flex-col *:data-slot:rounded-b-none [&>[data-slot]:not(:has(~[data-slot]))]:rounded-b-4xl! [&>[data-slot]~[data-slot]]:rounded-t-none [&>[data-slot]~[data-slot]]:border-t-0'
|
|
16
17
|
}
|
|
17
18
|
},
|
|
18
19
|
defaultVariants: {
|
|
@@ -25,9 +26,10 @@ function ButtonGroup({
|
|
|
25
26
|
className,
|
|
26
27
|
orientation,
|
|
27
28
|
...props
|
|
28
|
-
}: React.ComponentProps<'
|
|
29
|
+
}: React.ComponentProps<'div'> & VariantProps<typeof buttonGroupVariants>) {
|
|
29
30
|
return (
|
|
30
|
-
<
|
|
31
|
+
<div
|
|
32
|
+
role="group"
|
|
31
33
|
data-slot="button-group"
|
|
32
34
|
data-orientation={orientation}
|
|
33
35
|
className={cn(buttonGroupVariants({ orientation }), className)}
|
|
@@ -36,24 +38,23 @@ function ButtonGroup({
|
|
|
36
38
|
)
|
|
37
39
|
}
|
|
38
40
|
|
|
39
|
-
function ButtonGroupText({
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
)
|
|
41
|
+
function ButtonGroupText({ className, render, ...props }: useRender.ComponentProps<'div'>) {
|
|
42
|
+
return useRender({
|
|
43
|
+
defaultTagName: 'div',
|
|
44
|
+
props: mergeProps<'div'>(
|
|
45
|
+
{
|
|
46
|
+
className: cn(
|
|
47
|
+
"flex items-center gap-2 rounded-4xl border bg-muted px-2.5 text-sm font-medium [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4",
|
|
48
|
+
className
|
|
49
|
+
)
|
|
50
|
+
},
|
|
51
|
+
props
|
|
52
|
+
),
|
|
53
|
+
render,
|
|
54
|
+
state: {
|
|
55
|
+
slot: 'button-group-text'
|
|
56
|
+
}
|
|
57
|
+
})
|
|
57
58
|
}
|
|
58
59
|
|
|
59
60
|
function ButtonGroupSeparator({
|