betterstart-cli 0.0.106 → 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/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/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/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.tsx +8 -7
- 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 +90 -110
- package/dist/cli.js.map +1 -1
- package/package.json +1 -1
|
@@ -108,9 +108,7 @@ export function CreateUserDialog() {
|
|
|
108
108
|
|
|
109
109
|
return (
|
|
110
110
|
<Dialog open={open} onOpenChange={handleOpenChange}>
|
|
111
|
-
<DialogTrigger
|
|
112
|
-
<Button>Create User</Button>
|
|
113
|
-
</DialogTrigger>
|
|
111
|
+
<DialogTrigger render={<Button />}>Create User</DialogTrigger>
|
|
114
112
|
<DialogContent className="sm:max-w-135">
|
|
115
113
|
<Form {...form}>
|
|
116
114
|
<form onSubmit={form.handleSubmit((values) => mutation.mutate(values))}>
|
|
@@ -104,11 +104,17 @@ export function DeleteUserDialog({ userId, userName, isCurrentUser }: DeleteUser
|
|
|
104
104
|
|
|
105
105
|
return (
|
|
106
106
|
<AlertDialog open={open} onOpenChange={handleOpenChange}>
|
|
107
|
-
<AlertDialogTrigger
|
|
108
|
-
|
|
109
|
-
<
|
|
110
|
-
|
|
111
|
-
|
|
107
|
+
<AlertDialogTrigger
|
|
108
|
+
render={
|
|
109
|
+
<DropdownMenuItem
|
|
110
|
+
variant="destructive"
|
|
111
|
+
closeOnClick={false}
|
|
112
|
+
onClick={(event) => event.preventDefault()}
|
|
113
|
+
/>
|
|
114
|
+
}
|
|
115
|
+
>
|
|
116
|
+
<Trash className="size-4" />
|
|
117
|
+
Delete user
|
|
112
118
|
</AlertDialogTrigger>
|
|
113
119
|
<AlertDialogContent>
|
|
114
120
|
<Form {...form}>
|
|
@@ -56,7 +56,7 @@ export function EditRoleDialog({ userId, currentRole, userName, children }: Edit
|
|
|
56
56
|
|
|
57
57
|
return (
|
|
58
58
|
<Dialog open={open} onOpenChange={setOpen}>
|
|
59
|
-
<DialogTrigger
|
|
59
|
+
<DialogTrigger render={children as React.ReactElement} />
|
|
60
60
|
<DialogContent className="sm:max-w-87.5">
|
|
61
61
|
<DialogHeader>
|
|
62
62
|
<DialogTitle>Edit Role</DialogTitle>
|
|
@@ -36,17 +36,19 @@ export function MathPopoverButton({
|
|
|
36
36
|
|
|
37
37
|
return (
|
|
38
38
|
<Popover open={isOpen} onOpenChange={setIsOpen}>
|
|
39
|
-
<PopoverTrigger
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
39
|
+
<PopoverTrigger
|
|
40
|
+
render={
|
|
41
|
+
<MathButton
|
|
42
|
+
{...buttonProps}
|
|
43
|
+
text={text}
|
|
44
|
+
disabled={disabled || !canInsert}
|
|
45
|
+
aria-label="Insert math"
|
|
46
|
+
title="Math"
|
|
47
|
+
onPointerDown={(event) => event.preventDefault()}
|
|
48
|
+
onClick={() => setIsOpen((current) => !current)}
|
|
49
|
+
/>
|
|
50
|
+
}
|
|
51
|
+
/>
|
|
50
52
|
<PopoverContent align="start" className="w-auto gap-0 p-0">
|
|
51
53
|
<MathEditorControls
|
|
52
54
|
disabled={disabled || !canInsert}
|
package/dist/assets/shared-assets/react-admin/custom/content-editor/source-mode-dropdown-button.tsx
CHANGED
|
@@ -29,20 +29,22 @@ export function SourceModeDropdownButton({
|
|
|
29
29
|
|
|
30
30
|
return (
|
|
31
31
|
<DropdownMenu open={isOpen} onOpenChange={setIsOpen}>
|
|
32
|
-
<DropdownMenuTrigger
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
32
|
+
<DropdownMenuTrigger
|
|
33
|
+
render={
|
|
34
|
+
<Button
|
|
35
|
+
type="button"
|
|
36
|
+
variant="ghost"
|
|
37
|
+
size="icon-sm"
|
|
38
|
+
className="w-auto px-2"
|
|
39
|
+
aria-label={ariaLabel ?? label}
|
|
40
|
+
title={label}
|
|
41
|
+
onPointerDown={(event) => event.preventDefault()}
|
|
42
|
+
onClick={() => setIsOpen((current) => !current)}
|
|
43
|
+
/>
|
|
44
|
+
}
|
|
45
|
+
>
|
|
46
|
+
<Icon />
|
|
47
|
+
<ChevronDownIcon className="tiptap-button-dropdown-small" />
|
|
46
48
|
</DropdownMenuTrigger>
|
|
47
49
|
<DropdownMenuContent align="start" className="w-auto min-w-40">
|
|
48
50
|
<DropdownMenuGroup>{children}</DropdownMenuGroup>
|
|
@@ -173,7 +173,7 @@ export function SourceMode({
|
|
|
173
173
|
disabled={disabled}
|
|
174
174
|
aria-label={option.label}
|
|
175
175
|
title={option.label}
|
|
176
|
-
|
|
176
|
+
onClick={() => applyHeading(option.level)}
|
|
177
177
|
>
|
|
178
178
|
<Icon />
|
|
179
179
|
<span className="tiptap-button-text">{option.label}</span>
|
|
@@ -191,7 +191,7 @@ export function SourceMode({
|
|
|
191
191
|
disabled={disabled}
|
|
192
192
|
aria-label={option.label}
|
|
193
193
|
title={option.label}
|
|
194
|
-
|
|
194
|
+
onClick={() => applyList(option.type)}
|
|
195
195
|
>
|
|
196
196
|
<Icon />
|
|
197
197
|
<span className="tiptap-button-text">{option.label}</span>
|
|
@@ -19,18 +19,20 @@ export function TableButton({ disabled, editor, onInsertTable }: TableButtonProp
|
|
|
19
19
|
|
|
20
20
|
return (
|
|
21
21
|
<Popover open={tableButton.isOpen} onOpenChange={tableButton.setIsOpen}>
|
|
22
|
-
<PopoverTrigger
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
22
|
+
<PopoverTrigger
|
|
23
|
+
render={
|
|
24
|
+
<Button
|
|
25
|
+
type="button"
|
|
26
|
+
variant="ghost"
|
|
27
|
+
size="sm"
|
|
28
|
+
disabled={tableButton.isDisabled}
|
|
29
|
+
aria-label="Insert table"
|
|
30
|
+
title="Table"
|
|
31
|
+
/>
|
|
32
|
+
}
|
|
33
|
+
>
|
|
34
|
+
<TableIcon />
|
|
35
|
+
<span className="tiptap-button-text">Table</span>
|
|
34
36
|
</PopoverTrigger>
|
|
35
37
|
<PopoverContent align="start" className="w-72 p-4">
|
|
36
38
|
<div className="flex flex-col gap-3" onKeyDownCapture={tableButton.handleKeyDown}>
|
|
@@ -69,20 +69,22 @@ export function ColorHighlightPopover({
|
|
|
69
69
|
|
|
70
70
|
return (
|
|
71
71
|
<Popover open={isOpen} onOpenChange={handleOpenChange}>
|
|
72
|
-
<PopoverTrigger
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
72
|
+
<PopoverTrigger
|
|
73
|
+
render={
|
|
74
|
+
<ColorHighlightPopoverButton
|
|
75
|
+
disabled={disabled || !canColorHighlight}
|
|
76
|
+
data-active-state={isActive ? 'on' : 'off'}
|
|
77
|
+
data-disabled={disabled || !canColorHighlight}
|
|
78
|
+
aria-pressed={isActive}
|
|
79
|
+
aria-label={label}
|
|
80
|
+
title={label}
|
|
81
|
+
tooltip={tooltip}
|
|
82
|
+
{...props}
|
|
83
|
+
ref={ref}
|
|
84
|
+
/>
|
|
85
|
+
}
|
|
86
|
+
>
|
|
87
|
+
<Icon />
|
|
86
88
|
</PopoverTrigger>
|
|
87
89
|
<PopoverContent
|
|
88
90
|
aria-label="Highlight colors"
|
|
@@ -31,19 +31,21 @@ export function SourceColorHighlightPopover({
|
|
|
31
31
|
|
|
32
32
|
return (
|
|
33
33
|
<Popover open={isOpen} onOpenChange={setIsOpen}>
|
|
34
|
-
<PopoverTrigger
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
34
|
+
<PopoverTrigger
|
|
35
|
+
render={
|
|
36
|
+
<ColorHighlightPopoverButton
|
|
37
|
+
disabled={disabled}
|
|
38
|
+
data-active-state="off"
|
|
39
|
+
data-disabled={disabled}
|
|
40
|
+
aria-pressed={false}
|
|
41
|
+
aria-label="Highlight"
|
|
42
|
+
title="Highlight"
|
|
43
|
+
tooltip={tooltip}
|
|
44
|
+
{...props}
|
|
45
|
+
/>
|
|
46
|
+
}
|
|
47
|
+
>
|
|
48
|
+
<HighlighterIcon />
|
|
47
49
|
</PopoverTrigger>
|
|
48
50
|
<PopoverContent
|
|
49
51
|
aria-label="Highlight colors"
|
|
@@ -61,35 +61,37 @@ export function HeadingDropdownMenu({
|
|
|
61
61
|
|
|
62
62
|
return (
|
|
63
63
|
<DropdownMenu modal={false} open={isOpen} onOpenChange={handleOpenChange}>
|
|
64
|
-
<DropdownMenuTrigger
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
children
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
64
|
+
<DropdownMenuTrigger
|
|
65
|
+
render={
|
|
66
|
+
<Button
|
|
67
|
+
type="button"
|
|
68
|
+
variant="ghost"
|
|
69
|
+
data-active-state={isActive ? 'on' : 'off'}
|
|
70
|
+
role="button"
|
|
71
|
+
tabIndex={-1}
|
|
72
|
+
disabled={!canToggle}
|
|
73
|
+
data-disabled={!canToggle}
|
|
74
|
+
aria-label="Format text as heading"
|
|
75
|
+
aria-pressed={isActive}
|
|
76
|
+
title={getControlTooltipTitle(tooltip, 'Heading')}
|
|
77
|
+
size="icon-sm"
|
|
78
|
+
className="w-auto px-2"
|
|
79
|
+
{...buttonProps}
|
|
80
|
+
ref={ref}
|
|
81
|
+
onPointerDown={(event) => event.preventDefault()}
|
|
82
|
+
onClick={() => handleOpenChange(!isOpen)}
|
|
83
|
+
>
|
|
84
|
+
{children ? (
|
|
85
|
+
children
|
|
86
|
+
) : (
|
|
87
|
+
<>
|
|
88
|
+
<Icon />
|
|
89
|
+
<ChevronDownIcon className="tiptap-button-dropdown-small" />
|
|
90
|
+
</>
|
|
91
|
+
)}
|
|
92
|
+
</Button>
|
|
93
|
+
}
|
|
94
|
+
></DropdownMenuTrigger>
|
|
93
95
|
|
|
94
96
|
<DropdownMenuContent
|
|
95
97
|
align="start"
|
|
@@ -62,19 +62,21 @@ export function LinkControlPopover({
|
|
|
62
62
|
|
|
63
63
|
return (
|
|
64
64
|
<Popover open={isOpen} onOpenChange={handleOnOpenChange}>
|
|
65
|
-
<PopoverTrigger
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
65
|
+
<PopoverTrigger
|
|
66
|
+
render={
|
|
67
|
+
<LinkButton
|
|
68
|
+
{...buttonProps}
|
|
69
|
+
disabled={isDisabled}
|
|
70
|
+
data-active-state={isActive ? 'on' : 'off'}
|
|
71
|
+
data-disabled={isDisabled}
|
|
72
|
+
aria-label={label}
|
|
73
|
+
aria-pressed={isActive}
|
|
74
|
+
onClick={handleClick}
|
|
75
|
+
ref={ref}
|
|
76
|
+
/>
|
|
77
|
+
}
|
|
78
|
+
>
|
|
79
|
+
{children ?? <LinkIcon />}
|
|
78
80
|
</PopoverTrigger>
|
|
79
81
|
|
|
80
82
|
<PopoverContent className="w-auto max-w-[calc(100vw-2rem)]">
|
|
@@ -59,26 +59,28 @@ export function ListDropdownMenu({
|
|
|
59
59
|
|
|
60
60
|
return (
|
|
61
61
|
<DropdownMenu modal={false} open={isOpen} onOpenChange={handleOnOpenChange}>
|
|
62
|
-
<DropdownMenuTrigger
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
62
|
+
<DropdownMenuTrigger
|
|
63
|
+
render={
|
|
64
|
+
<Button
|
|
65
|
+
type="button"
|
|
66
|
+
variant="ghost"
|
|
67
|
+
data-active-state={isActive ? 'on' : 'off'}
|
|
68
|
+
role="button"
|
|
69
|
+
tabIndex={-1}
|
|
70
|
+
disabled={!canToggle}
|
|
71
|
+
data-disabled={!canToggle}
|
|
72
|
+
aria-label="List options"
|
|
73
|
+
title={getControlTooltipTitle(tooltip, 'List')}
|
|
74
|
+
size="icon-sm"
|
|
75
|
+
className="w-auto px-2"
|
|
76
|
+
{...props}
|
|
77
|
+
onPointerDown={(event) => event.preventDefault()}
|
|
78
|
+
onClick={() => handleOnOpenChange(!isOpen)}
|
|
79
|
+
/>
|
|
80
|
+
}
|
|
81
|
+
>
|
|
82
|
+
<Icon />
|
|
83
|
+
<ChevronDownIcon className="tiptap-button-dropdown-small" />
|
|
82
84
|
</DropdownMenuTrigger>
|
|
83
85
|
|
|
84
86
|
<DropdownMenuContent
|
|
@@ -32,20 +32,22 @@ export function DatePicker({
|
|
|
32
32
|
|
|
33
33
|
return (
|
|
34
34
|
<Popover open={open} onOpenChange={setOpen}>
|
|
35
|
-
<PopoverTrigger
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
35
|
+
<PopoverTrigger
|
|
36
|
+
render={
|
|
37
|
+
<Button
|
|
38
|
+
variant="outline"
|
|
39
|
+
size="lg"
|
|
40
|
+
className={cn(
|
|
41
|
+
'w-full justify-start pl-3! text-left font-normal',
|
|
42
|
+
{ 'text-muted-foreground': !date },
|
|
43
|
+
className
|
|
44
|
+
)}
|
|
45
|
+
disabled={disabled}
|
|
46
|
+
/>
|
|
47
|
+
}
|
|
48
|
+
>
|
|
49
|
+
<CalendarIcon className="size-4" />
|
|
50
|
+
{date ? format(date, 'PPP') : <span>{placeholder}</span>}
|
|
49
51
|
</PopoverTrigger>
|
|
50
52
|
<PopoverContent className="w-auto overflow-hidden p-0" align="start">
|
|
51
53
|
<Calendar
|
|
@@ -130,12 +130,14 @@ export function DateRangePicker({
|
|
|
130
130
|
}
|
|
131
131
|
}}
|
|
132
132
|
>
|
|
133
|
-
<PopoverTrigger
|
|
134
|
-
|
|
135
|
-
<
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
133
|
+
<PopoverTrigger
|
|
134
|
+
render={
|
|
135
|
+
<Button variant="outline" className={cn('w-[206px]', className)} disabled={disabled} />
|
|
136
|
+
}
|
|
137
|
+
>
|
|
138
|
+
<CalendarIcon />
|
|
139
|
+
<span className="min-w-0 flex-1 truncate text-left tabular-nums">{triggerLabel}</span>
|
|
140
|
+
<ChevronDown />
|
|
139
141
|
</PopoverTrigger>
|
|
140
142
|
<PopoverContent className="w-[282px] gap-0 overflow-hidden rounded-sm p-0" align="start">
|
|
141
143
|
<Calendar
|
|
@@ -346,16 +346,17 @@ const IconPicker = React.forwardRef<React.ComponentRef<typeof PopoverTrigger>, I
|
|
|
346
346
|
}, [isPopoverVisible, virtualizer])
|
|
347
347
|
|
|
348
348
|
const selectedIconName = (value || selectedIcon) as IconName | undefined
|
|
349
|
+
const trigger = React.isValidElement(children) ? (
|
|
350
|
+
children
|
|
351
|
+
) : (
|
|
352
|
+
<Button variant="outline" size="lg">
|
|
353
|
+
{selectedIconName ? <DynamicIcon name={selectedIconName} /> : triggerPlaceholder}
|
|
354
|
+
</Button>
|
|
355
|
+
)
|
|
349
356
|
|
|
350
357
|
return (
|
|
351
358
|
<Popover open={open ?? isOpen} onOpenChange={handleOpenChange} modal={modal}>
|
|
352
|
-
<PopoverTrigger ref={ref}
|
|
353
|
-
{children || (
|
|
354
|
-
<Button variant="outline" size="lg">
|
|
355
|
-
{selectedIconName ? <DynamicIcon name={selectedIconName} /> : triggerPlaceholder}
|
|
356
|
-
</Button>
|
|
357
|
-
)}
|
|
358
|
-
</PopoverTrigger>
|
|
359
|
+
<PopoverTrigger ref={ref} render={trigger} {...props} />
|
|
359
360
|
<PopoverContent className="w-64 p-2">
|
|
360
361
|
{searchable && (
|
|
361
362
|
<Input placeholder={searchPlaceholder} onChange={handleSearchChange} className="mb-2" />
|
|
@@ -170,10 +170,8 @@ export function NestedObjectListField({
|
|
|
170
170
|
|
|
171
171
|
<CardContent className="p-0!">
|
|
172
172
|
<Accordion
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
value={expanded}
|
|
176
|
-
onValueChange={handleExpandedChange}
|
|
173
|
+
value={expanded ? [expanded] : []}
|
|
174
|
+
onValueChange={(nextValue) => handleExpandedChange(nextValue[0] ?? '')}
|
|
177
175
|
className="border-none"
|
|
178
176
|
>
|
|
179
177
|
{items.map((_, index) => (
|
|
@@ -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
|
|