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
|
@@ -20,14 +20,16 @@ export function AdminNavLink({
|
|
|
20
20
|
: pathname === href || pathname.startsWith(`${href}/`)
|
|
21
21
|
|
|
22
22
|
return (
|
|
23
|
-
<SidebarMenuButton
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
23
|
+
<SidebarMenuButton
|
|
24
|
+
render={
|
|
25
|
+
<Link
|
|
26
|
+
aria-current={isActive ? 'page' : undefined}
|
|
27
|
+
data-active={isActive ? true : undefined}
|
|
28
|
+
href={href}
|
|
29
|
+
/>
|
|
30
|
+
}
|
|
31
|
+
>
|
|
32
|
+
{children}
|
|
31
33
|
</SidebarMenuButton>
|
|
32
34
|
)
|
|
33
35
|
}
|
|
@@ -3,9 +3,5 @@ import { SidebarMenuButton } from '@admin/components/ui/sidebar'
|
|
|
3
3
|
import Link from 'next/link'
|
|
4
4
|
|
|
5
5
|
export function SidebarNavLinkSkeleton({ href, children }: { href: string; children: ReactNode }) {
|
|
6
|
-
return
|
|
7
|
-
<SidebarMenuButton asChild>
|
|
8
|
-
<Link href={href}>{children}</Link>
|
|
9
|
-
</SidebarMenuButton>
|
|
10
|
-
)
|
|
6
|
+
return <SidebarMenuButton render={<Link href={href} />}>{children}</SidebarMenuButton>
|
|
11
7
|
}
|
package/dist/assets/adapters/next/templates/init/components/layouts/admin-sidebar-user-menu.tsx
CHANGED
|
@@ -24,61 +24,67 @@ export async function SidebarUserMenu() {
|
|
|
24
24
|
<SidebarMenu className="h-full">
|
|
25
25
|
<SidebarMenuItem className="h-full">
|
|
26
26
|
<DropdownMenu>
|
|
27
|
-
<DropdownMenuTrigger
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
<
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
<
|
|
40
|
-
|
|
27
|
+
<DropdownMenuTrigger
|
|
28
|
+
render={
|
|
29
|
+
<Button
|
|
30
|
+
variant="ghost"
|
|
31
|
+
className="h-full w-full justify-start border-none bg-transparent! px-3 text-left ring-0!"
|
|
32
|
+
>
|
|
33
|
+
<Avatar className="size-8 shrink-0">
|
|
34
|
+
<AvatarImage src={user.image ?? undefined} />
|
|
35
|
+
<AvatarFallback className="text-xs font-semibold group-hover:bg-white">
|
|
36
|
+
{user.name?.charAt(0) ?? user.email?.charAt(0) ?? '?'}
|
|
37
|
+
</AvatarFallback>
|
|
38
|
+
</Avatar>
|
|
39
|
+
<div className="flex-1 truncate group-data-[collapsible=icon]:hidden">
|
|
40
|
+
<p className="truncate font-medium">{user.name}</p>
|
|
41
|
+
</div>
|
|
41
42
|
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
43
|
+
<div className="group-data-[collapsible=icon]:hidden">
|
|
44
|
+
<span
|
|
45
|
+
className={cn(
|
|
46
|
+
buttonVariants({ variant: 'outline', size: 'icon' }),
|
|
47
|
+
'size-7 rounded-sm group-hover:bg-white'
|
|
48
|
+
)}
|
|
49
|
+
>
|
|
50
|
+
<Ellipsis strokeWidth={2} className="size-4" />
|
|
51
|
+
</span>
|
|
52
|
+
</div>
|
|
53
|
+
</Button>
|
|
54
|
+
}
|
|
55
|
+
/>
|
|
54
56
|
<DropdownMenuContent align="start" alignOffset={12} className="w-68 p-1">
|
|
55
57
|
<DropdownMenuGroup>
|
|
56
|
-
<DropdownMenuItem
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
</
|
|
58
|
+
<DropdownMenuItem
|
|
59
|
+
className="justify-between"
|
|
60
|
+
render={
|
|
61
|
+
<Link
|
|
62
|
+
href="/admin/profile"
|
|
63
|
+
prefetch={true}
|
|
64
|
+
className="flex w-full items-center justify-between gap-2 py-2 pr-1"
|
|
65
|
+
/>
|
|
66
|
+
}
|
|
67
|
+
>
|
|
68
|
+
<div className="flex items-center gap-2">
|
|
69
|
+
<div className="flex flex-col">
|
|
70
|
+
<p className="truncate font-medium">{user.name}</p>
|
|
71
|
+
<p className="truncate text-sm font-normal text-muted-foreground [text-box-trim:trim-start]">
|
|
72
|
+
{user.email}
|
|
73
|
+
</p>
|
|
69
74
|
</div>
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
</
|
|
75
|
+
</div>
|
|
76
|
+
<Button variant="ghost" className="pointer-events-none size-8! shrink-0">
|
|
77
|
+
<Settings strokeWidth={2} className="size-4" />
|
|
78
|
+
</Button>
|
|
74
79
|
</DropdownMenuItem>
|
|
75
80
|
</DropdownMenuGroup>
|
|
76
81
|
<DropdownMenuGroup>
|
|
77
|
-
<DropdownMenuItem
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
</
|
|
82
|
+
<DropdownMenuItem
|
|
83
|
+
className="justify-between"
|
|
84
|
+
render={<Link href="https://betterstart.io/docs" target="_blank" />}
|
|
85
|
+
>
|
|
86
|
+
<span>Docs</span>
|
|
87
|
+
<BookOpen strokeWidth={1.2} className="size-4" />
|
|
82
88
|
</DropdownMenuItem>
|
|
83
89
|
<AdminSignOut className="justify-between" />
|
|
84
90
|
</DropdownMenuGroup>
|
package/dist/assets/adapters/next/templates/init/components/shared/data-table/data-grid-body.tsx
ADDED
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
'use client'
|
|
2
|
+
|
|
3
|
+
import type * as React from 'react'
|
|
4
|
+
import { cn } from '@admin/utils/shared/cn'
|
|
5
|
+
|
|
6
|
+
function DataGridBody({ className, ...props }: React.ComponentProps<'div'>) {
|
|
7
|
+
return (
|
|
8
|
+
<div
|
|
9
|
+
role="rowgroup"
|
|
10
|
+
data-slot="data-grid-body"
|
|
11
|
+
className={cn(
|
|
12
|
+
"relative col-span-full grid grid-cols-subgrid overflow-hidden rounded-sm bg-card shadow-input after:pointer-events-none after:absolute after:inset-0 after:rounded-sm after:border after:border-border after:content-['']",
|
|
13
|
+
className
|
|
14
|
+
)}
|
|
15
|
+
{...props}
|
|
16
|
+
/>
|
|
17
|
+
)
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
export { DataGridBody }
|
package/dist/assets/adapters/next/templates/init/components/shared/data-table/data-grid-cell.tsx
ADDED
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
'use client'
|
|
2
|
+
|
|
3
|
+
import type * as React from 'react'
|
|
4
|
+
import { cn } from '@admin/utils/shared/cn'
|
|
5
|
+
|
|
6
|
+
function DataGridCell({ className, ...props }: React.ComponentProps<'div'>) {
|
|
7
|
+
return (
|
|
8
|
+
<div
|
|
9
|
+
role="cell"
|
|
10
|
+
data-slot="data-grid-cell"
|
|
11
|
+
className={cn(
|
|
12
|
+
'grid min-h-12 items-center px-3 py-1.5 whitespace-nowrap [&:has([role=checkbox])]:pr-0',
|
|
13
|
+
className
|
|
14
|
+
)}
|
|
15
|
+
{...props}
|
|
16
|
+
/>
|
|
17
|
+
)
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
export { DataGridCell }
|
package/dist/assets/adapters/next/templates/init/components/shared/data-table/data-grid-head.tsx
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
'use client'
|
|
2
|
+
|
|
3
|
+
import type * as React from 'react'
|
|
4
|
+
import { cn } from '@admin/utils/shared/cn'
|
|
5
|
+
|
|
6
|
+
function DataGridHead({ className, ...props }: React.ComponentProps<'div'>) {
|
|
7
|
+
return (
|
|
8
|
+
<div
|
|
9
|
+
role="columnheader"
|
|
10
|
+
data-slot="data-grid-head"
|
|
11
|
+
className={cn(
|
|
12
|
+
'grid h-9.5 items-center px-3 text-left font-medium whitespace-nowrap text-muted-foreground *:h-full [&:has([role=checkbox])]:pr-0',
|
|
13
|
+
className
|
|
14
|
+
)}
|
|
15
|
+
tabIndex={-1}
|
|
16
|
+
{...props}
|
|
17
|
+
/>
|
|
18
|
+
)
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
export { DataGridHead }
|
package/dist/assets/adapters/next/templates/init/components/shared/data-table/data-grid-header.tsx
ADDED
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
'use client'
|
|
2
|
+
|
|
3
|
+
import type * as React from 'react'
|
|
4
|
+
import { cn } from '@admin/utils/shared/cn'
|
|
5
|
+
|
|
6
|
+
function DataGridHeader({ className, ...props }: React.ComponentProps<'div'>) {
|
|
7
|
+
return (
|
|
8
|
+
<div
|
|
9
|
+
role="rowgroup"
|
|
10
|
+
data-slot="data-grid-header"
|
|
11
|
+
className={cn(
|
|
12
|
+
"relative col-span-full -mb-1 grid grid-cols-subgrid rounded-t-sm bg-muted pb-1 after:pointer-events-none after:absolute after:inset-0 after:rounded-t-sm after:border-x after:border-t after:border-border after:content-['']",
|
|
13
|
+
className
|
|
14
|
+
)}
|
|
15
|
+
{...props}
|
|
16
|
+
/>
|
|
17
|
+
)
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
export { DataGridHeader }
|
package/dist/assets/adapters/next/templates/init/components/shared/data-table/data-grid-row.tsx
ADDED
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
'use client'
|
|
2
|
+
|
|
3
|
+
import type * as React from 'react'
|
|
4
|
+
import { cn } from '@admin/utils/shared/cn'
|
|
5
|
+
|
|
6
|
+
function DataGridRow({ className, style, ...props }: React.ComponentProps<'div'>) {
|
|
7
|
+
return (
|
|
8
|
+
<div
|
|
9
|
+
role="row"
|
|
10
|
+
data-slot="data-grid-row"
|
|
11
|
+
className={cn(
|
|
12
|
+
'grid border-b transition-colors last:border-b-0 has-aria-expanded:bg-muted/50 data-[state=selected]:bg-muted',
|
|
13
|
+
className
|
|
14
|
+
)}
|
|
15
|
+
style={{ ...style, gridColumn: '1 / -1', gridTemplateColumns: 'subgrid' }}
|
|
16
|
+
tabIndex={-1}
|
|
17
|
+
{...props}
|
|
18
|
+
/>
|
|
19
|
+
)
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
export { DataGridRow }
|
|
@@ -9,12 +9,6 @@ type DataGridProps = React.ComponentProps<'div'> & {
|
|
|
9
9
|
gridTemplateColumns: string
|
|
10
10
|
}
|
|
11
11
|
|
|
12
|
-
const dataGridTableRole = { role: 'table' } as const
|
|
13
|
-
const dataGridRowGroupRole = { role: 'rowgroup' } as const
|
|
14
|
-
const dataGridRowRole = { role: 'row' } as const
|
|
15
|
-
const dataGridColumnHeaderRole = { role: 'columnheader' } as const
|
|
16
|
-
const dataGridCellRole = { role: 'cell' } as const
|
|
17
|
-
|
|
18
12
|
function DataGrid({
|
|
19
13
|
className,
|
|
20
14
|
containerClassName,
|
|
@@ -30,7 +24,7 @@ function DataGrid({
|
|
|
30
24
|
className={cn('relative min-w-0 overflow-auto', containerClassName)}
|
|
31
25
|
>
|
|
32
26
|
<div
|
|
33
|
-
|
|
27
|
+
role="table"
|
|
34
28
|
data-slot="data-grid"
|
|
35
29
|
className={cn('grid min-w-full text-sm', className)}
|
|
36
30
|
style={{ ...style, gridTemplateColumns }}
|
|
@@ -40,77 +34,9 @@ function DataGrid({
|
|
|
40
34
|
)
|
|
41
35
|
}
|
|
42
36
|
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
"relative col-span-full -mb-1 grid grid-cols-subgrid rounded-t-sm bg-muted pb-1 after:pointer-events-none after:absolute after:inset-0 after:rounded-t-sm after:border-x after:border-t after:border-border after:content-['']",
|
|
50
|
-
className
|
|
51
|
-
)}
|
|
52
|
-
{...props}
|
|
53
|
-
/>
|
|
54
|
-
)
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
function DataGridBody({ className, ...props }: React.ComponentProps<'div'>) {
|
|
58
|
-
return (
|
|
59
|
-
<div
|
|
60
|
-
{...dataGridRowGroupRole}
|
|
61
|
-
data-slot="data-grid-body"
|
|
62
|
-
className={cn(
|
|
63
|
-
"relative col-span-full grid grid-cols-subgrid overflow-hidden rounded-sm bg-card shadow-input after:pointer-events-none after:absolute after:inset-0 after:rounded-sm after:border after:border-border after:content-['']",
|
|
64
|
-
className
|
|
65
|
-
)}
|
|
66
|
-
{...props}
|
|
67
|
-
/>
|
|
68
|
-
)
|
|
69
|
-
}
|
|
70
|
-
|
|
71
|
-
function DataGridRow({ className, style, ...props }: React.ComponentProps<'div'>) {
|
|
72
|
-
return (
|
|
73
|
-
<div
|
|
74
|
-
{...dataGridRowRole}
|
|
75
|
-
data-slot="data-grid-row"
|
|
76
|
-
className={cn(
|
|
77
|
-
'grid border-b transition-colors last:border-b-0 has-aria-expanded:bg-muted/50 data-[state=selected]:bg-muted',
|
|
78
|
-
className
|
|
79
|
-
)}
|
|
80
|
-
style={{ ...style, gridColumn: '1 / -1', gridTemplateColumns: 'subgrid' }}
|
|
81
|
-
tabIndex={-1}
|
|
82
|
-
{...props}
|
|
83
|
-
/>
|
|
84
|
-
)
|
|
85
|
-
}
|
|
86
|
-
|
|
87
|
-
function DataGridHead({ className, ...props }: React.ComponentProps<'div'>) {
|
|
88
|
-
return (
|
|
89
|
-
<div
|
|
90
|
-
{...dataGridColumnHeaderRole}
|
|
91
|
-
data-slot="data-grid-head"
|
|
92
|
-
className={cn(
|
|
93
|
-
'grid h-9.5 items-center px-3 text-left font-medium whitespace-nowrap text-muted-foreground *:h-full [&:has([role=checkbox])]:pr-0',
|
|
94
|
-
className
|
|
95
|
-
)}
|
|
96
|
-
tabIndex={-1}
|
|
97
|
-
{...props}
|
|
98
|
-
/>
|
|
99
|
-
)
|
|
100
|
-
}
|
|
101
|
-
|
|
102
|
-
function DataGridCell({ className, ...props }: React.ComponentProps<'div'>) {
|
|
103
|
-
return (
|
|
104
|
-
<div
|
|
105
|
-
{...dataGridCellRole}
|
|
106
|
-
data-slot="data-grid-cell"
|
|
107
|
-
className={cn(
|
|
108
|
-
'grid min-h-12 items-center px-3 py-1.5 whitespace-nowrap [&:has([role=checkbox])]:pr-0',
|
|
109
|
-
className
|
|
110
|
-
)}
|
|
111
|
-
{...props}
|
|
112
|
-
/>
|
|
113
|
-
)
|
|
114
|
-
}
|
|
115
|
-
|
|
116
|
-
export { DataGrid, DataGridHeader, DataGridBody, DataGridHead, DataGridRow, DataGridCell }
|
|
37
|
+
export { DataGridBody } from './data-grid-body'
|
|
38
|
+
export { DataGridCell } from './data-grid-cell'
|
|
39
|
+
export { DataGridHead } from './data-grid-head'
|
|
40
|
+
export { DataGridHeader } from './data-grid-header'
|
|
41
|
+
export { DataGridRow } from './data-grid-row'
|
|
42
|
+
export { DataGrid }
|
|
@@ -34,11 +34,9 @@ export function DeleteDialog({
|
|
|
34
34
|
|
|
35
35
|
return (
|
|
36
36
|
<AlertDialog open={open} onOpenChange={setOpen}>
|
|
37
|
-
<AlertDialogTrigger
|
|
38
|
-
<
|
|
39
|
-
|
|
40
|
-
Delete {count} {label}
|
|
41
|
-
</Button>
|
|
37
|
+
<AlertDialogTrigger render={<Button variant="destructive" size="default" />}>
|
|
38
|
+
<Trash2 className="-ml-0.5 size-3.5" strokeWidth={2} />
|
|
39
|
+
Delete {count} {label}
|
|
42
40
|
</AlertDialogTrigger>
|
|
43
41
|
<AlertDialogContent>
|
|
44
42
|
<AlertDialogHeader>
|
package/dist/assets/adapters/next/templates/init/components/shared/dev-mode/lifecycle-hooks-tab.tsx
CHANGED
|
@@ -50,7 +50,7 @@ export function LifecycleHooksTab({ lifecycleHooks }: LifecycleHooksTabProps) {
|
|
|
50
50
|
}
|
|
51
51
|
|
|
52
52
|
return (
|
|
53
|
-
<Accordion
|
|
53
|
+
<Accordion defaultValue={[firstHook.id]} className="min-h-0 shrink-0 rounded-sm">
|
|
54
54
|
{lifecycleHooks.map((hook) => {
|
|
55
55
|
const HookIcon = LIFECYCLE_HOOK_ICONS[hook.icon]
|
|
56
56
|
const phaseLabel = LIFECYCLE_HOOK_PHASE_LABELS[hook.phase]
|
package/dist/assets/adapters/next/templates/init/components/shared/dev-mode/snippets-tab.tsx
CHANGED
|
@@ -47,7 +47,7 @@ export function SnippetsTab({ snippets }: SnippetsTabProps) {
|
|
|
47
47
|
}
|
|
48
48
|
|
|
49
49
|
return (
|
|
50
|
-
<Accordion
|
|
50
|
+
<Accordion defaultValue={[firstSnippet.id]} className="min-h-0 shrink-0 rounded-sm">
|
|
51
51
|
{snippets.map((snippet) => {
|
|
52
52
|
const SnippetIcon = SNIPPET_ICONS[snippet.icon]
|
|
53
53
|
const snippetKindLabel = SNIPPET_KIND_LABELS[snippet.kind]
|
|
@@ -46,14 +46,12 @@ export function DevModeIntegrateButton({
|
|
|
46
46
|
}
|
|
47
47
|
|
|
48
48
|
return (
|
|
49
|
-
<Drawer
|
|
50
|
-
<DrawerTrigger
|
|
51
|
-
<
|
|
52
|
-
|
|
53
|
-
<span className="hidden sm:inline">Dev Mode</span>
|
|
54
|
-
</Button>
|
|
49
|
+
<Drawer swipeDirection="right" onOpenChange={handleOpenChange}>
|
|
50
|
+
<DrawerTrigger render={<Button type="button" variant="outline" />}>
|
|
51
|
+
<Code2 />
|
|
52
|
+
<span className="hidden sm:inline">Dev Mode</span>
|
|
55
53
|
</DrawerTrigger>
|
|
56
|
-
<DrawerContent className="w-full overflow-hidden data-[
|
|
54
|
+
<DrawerContent className="w-full overflow-hidden data-[swipe-direction=right]:sm:max-w-2xl data-[swipe-direction=right]:lg:max-w-4xl">
|
|
57
55
|
<DrawerHeader className="pb-4">
|
|
58
56
|
<DrawerTitle>{integration.schemaLabel}</DrawerTitle>
|
|
59
57
|
<DrawerDescription>
|
|
@@ -104,17 +104,16 @@ export function EntityFiltersBar({
|
|
|
104
104
|
return (
|
|
105
105
|
<div key={filter.key} className="relative flex items-center gap-1">
|
|
106
106
|
<DropdownMenu>
|
|
107
|
-
<DropdownMenuTrigger
|
|
108
|
-
<Button variant="outline" className="w-45 justify-between"
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
107
|
+
<DropdownMenuTrigger
|
|
108
|
+
render={<Button variant="outline" className="w-45 justify-between" />}
|
|
109
|
+
>
|
|
110
|
+
{filter.value
|
|
111
|
+
? (filter.options.find((o) => o.value === filter.value)?.label ?? filter.label)
|
|
112
|
+
: `All ${filter.label}`}
|
|
113
113
|
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
</Button>
|
|
114
|
+
{!filter.value && (
|
|
115
|
+
<ChevronDown className="absolute top-1/2 right-2.5 size-4 -translate-y-1/2 text-foreground" />
|
|
116
|
+
)}
|
|
118
117
|
</DropdownMenuTrigger>
|
|
119
118
|
<DropdownMenuContent align="start">
|
|
120
119
|
<DropdownMenuRadioGroup
|
|
@@ -36,10 +36,8 @@ export function EntityVersionItem({
|
|
|
36
36
|
<Badge variant="secondary">v{version.version}</Badge>
|
|
37
37
|
</div>
|
|
38
38
|
<Tooltip>
|
|
39
|
-
<TooltipTrigger
|
|
40
|
-
|
|
41
|
-
Saved {formatDistanceToNow(createdDate, { addSuffix: true })}
|
|
42
|
-
</p>
|
|
39
|
+
<TooltipTrigger render={<p className="w-fit text-xs text-muted-foreground" />}>
|
|
40
|
+
Saved {formatDistanceToNow(createdDate, { addSuffix: true })}
|
|
43
41
|
</TooltipTrigger>
|
|
44
42
|
<TooltipContent>{format(createdDate, 'PPpp')}</TooltipContent>
|
|
45
43
|
</Tooltip>
|
|
@@ -48,10 +48,8 @@ export function EntityVersionRestoreDialog({
|
|
|
48
48
|
|
|
49
49
|
return (
|
|
50
50
|
<AlertDialog open={open} onOpenChange={setOpen}>
|
|
51
|
-
<AlertDialogTrigger
|
|
52
|
-
|
|
53
|
-
Restore
|
|
54
|
-
</Button>
|
|
51
|
+
<AlertDialogTrigger render={<Button variant="outline" size="sm" />}>
|
|
52
|
+
Restore
|
|
55
53
|
</AlertDialogTrigger>
|
|
56
54
|
<AlertDialogContent>
|
|
57
55
|
<AlertDialogHeader>
|
|
@@ -34,10 +34,8 @@ export function EntityVersionsCurrentRow({ updatedAt, author }: EntityVersionsCu
|
|
|
34
34
|
<Badge variant="outline">Current</Badge>
|
|
35
35
|
</div>
|
|
36
36
|
<Tooltip>
|
|
37
|
-
<TooltipTrigger
|
|
38
|
-
|
|
39
|
-
Edited {formatDistanceToNow(updatedDate, { addSuffix: true })}
|
|
40
|
-
</p>
|
|
37
|
+
<TooltipTrigger render={<p className="w-fit text-xs text-muted-foreground" />}>
|
|
38
|
+
Edited {formatDistanceToNow(updatedDate, { addSuffix: true })}
|
|
41
39
|
</TooltipTrigger>
|
|
42
40
|
<TooltipContent>{format(updatedDate, 'PPpp')}</TooltipContent>
|
|
43
41
|
</Tooltip>
|
|
@@ -42,7 +42,7 @@ export function EntityVersionsDrawer({
|
|
|
42
42
|
onRestored
|
|
43
43
|
}: EntityVersionsDrawerProps) {
|
|
44
44
|
return (
|
|
45
|
-
<Drawer
|
|
45
|
+
<Drawer swipeDirection="right" open={open} onOpenChange={onOpenChange} modal>
|
|
46
46
|
<DrawerContent className="h-full sm:max-w-lg">
|
|
47
47
|
<DrawerHeader>
|
|
48
48
|
<DrawerTitle>Versions</DrawerTitle>
|
package/dist/assets/adapters/next/templates/init/components/shared/media/edit-media-dialog.tsx
CHANGED
|
@@ -31,10 +31,10 @@ export function EditMediaDialog({ media, open, onOpenChange, onSaved }: EditMedi
|
|
|
31
31
|
|
|
32
32
|
return (
|
|
33
33
|
<Drawer
|
|
34
|
-
|
|
34
|
+
swipeDirection="right"
|
|
35
35
|
open={isOpen}
|
|
36
36
|
onOpenChange={handleOpenChange}
|
|
37
|
-
|
|
37
|
+
onOpenChangeComplete={(nextOpen) => {
|
|
38
38
|
if (nextOpen) {
|
|
39
39
|
setClosingMedia(null)
|
|
40
40
|
return
|
package/dist/assets/adapters/next/templates/init/components/shared/media/media-delete-dialog.tsx
CHANGED
|
@@ -52,11 +52,11 @@ export function MediaDeleteDialog({ media, disabled = false, onDeleted }: MediaD
|
|
|
52
52
|
|
|
53
53
|
return (
|
|
54
54
|
<AlertDialog>
|
|
55
|
-
<AlertDialogTrigger
|
|
56
|
-
<Button variant="destructive" disabled={disabled || isPending}
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
55
|
+
<AlertDialogTrigger
|
|
56
|
+
render={<Button variant="destructive" disabled={disabled || isPending} />}
|
|
57
|
+
>
|
|
58
|
+
<Trash2 />
|
|
59
|
+
Delete media
|
|
60
60
|
</AlertDialogTrigger>
|
|
61
61
|
<AlertDialogContent>
|
|
62
62
|
<AlertDialogHeader>
|