betterstart-cli 0.0.122 → 0.0.124
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/admin-globals.css +8 -16
- package/dist/assets/adapters/next/templates/init/components/shared/dev-mode/copyable-code-block.tsx +5 -5
- package/dist/assets/adapters/next/templates/init/components/shared/dev-mode/dev-mode-code-mirror.tsx +1 -2
- package/dist/assets/adapters/next/templates/init/components/shared/dev-mode-integrate.tsx +2 -2
- package/dist/assets/adapters/next/templates/init/components/shared/entity-filters-bar.tsx +1 -1
- package/dist/assets/adapters/next/templates/init/components/shared/entity-versions/entity-versions-drawer.tsx +2 -2
- package/dist/assets/adapters/next/templates/init/components/shared/media/edit-media-dialog-content.tsx +1 -1
- package/dist/assets/adapters/next/templates/init/components/shared/media/media-filters-bar.tsx +1 -1
- package/dist/assets/adapters/next/templates/init/components/shared/page-header.tsx +1 -1
- package/dist/assets/adapters/next/templates/init/components/shared/sort-order-dialog.tsx +1 -1
- package/dist/assets/adapters/next/templates/init/hooks/content-editor/use-content-editor-source-mode.tsx +1 -1
- package/dist/assets/adapters/next/templates/init/pages/media/media-page-content.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 +1 -1
- package/dist/assets/shared-assets/react-admin/ui/accordion.tsx +1 -1
- package/dist/assets/shared-assets/react-admin/ui/button.tsx +1 -1
- package/dist/assets/shared-assets/react-admin/ui/card.tsx +11 -7
- package/dist/assets/shared-assets/react-admin/ui/checkbox.tsx +1 -1
- package/dist/assets/shared-assets/react-admin/ui/combobox.tsx +1 -1
- package/dist/assets/shared-assets/react-admin/ui/drawer.tsx +2 -2
- package/dist/assets/shared-assets/react-admin/ui/input-group.tsx +1 -1
- package/dist/assets/shared-assets/react-admin/ui/input-otp.tsx +1 -1
- package/dist/assets/shared-assets/react-admin/ui/input.tsx +1 -1
- package/dist/assets/shared-assets/react-admin/ui/native-select.tsx +1 -1
- package/dist/assets/shared-assets/react-admin/ui/radio-group.tsx +1 -1
- package/dist/assets/shared-assets/react-admin/ui/select.tsx +1 -1
- package/dist/assets/shared-assets/react-admin/ui/tabs.tsx +3 -3
- package/dist/assets/shared-assets/react-admin/ui/textarea.tsx +1 -1
- package/dist/assets/shared-assets/react-admin/ui/toggle.tsx +1 -1
- package/dist/cli.js +50 -23
- package/dist/cli.js.map +1 -1
- package/package.json +1 -1
- package/dist/assets/adapters/next/templates/init/pages/container-layout.tsx +0 -3
|
@@ -7,9 +7,10 @@
|
|
|
7
7
|
|
|
8
8
|
@theme inline {
|
|
9
9
|
--color-background: var(--background);
|
|
10
|
+
--color-background-light: var(--background-light);
|
|
10
11
|
--color-foreground: var(--foreground);
|
|
11
|
-
--font-sans: var(--font-sans);
|
|
12
|
-
--font-mono: var(--font-geist-mono)
|
|
12
|
+
--font-sans: var(--font-geist-sans);
|
|
13
|
+
--font-mono: var(--font-geist-mono);
|
|
13
14
|
--color-sidebar-ring: var(--sidebar-ring);
|
|
14
15
|
--color-sidebar-border: var(--sidebar-border);
|
|
15
16
|
--color-sidebar-accent-foreground: var(--sidebar-accent-foreground);
|
|
@@ -48,6 +49,7 @@
|
|
|
48
49
|
--text-*: initial;
|
|
49
50
|
--radius-*: initial;
|
|
50
51
|
--radius: 6px;
|
|
52
|
+
--radius-lg: calc(var(--radius) + 2px);
|
|
51
53
|
--font-heading: var(--font-sans);
|
|
52
54
|
--shadow-sm: var(--shadow-small);
|
|
53
55
|
--shadow-md: var(--shadow-medium);
|
|
@@ -194,8 +196,9 @@
|
|
|
194
196
|
--ds-pink-1000: lab(12.9204% 31.3916 -0.183001);
|
|
195
197
|
|
|
196
198
|
--background: var(--ds-background-200);
|
|
199
|
+
--background-light: var(--ds-background-100);
|
|
197
200
|
--foreground: var(--ds-gray-1000);
|
|
198
|
-
--card: var(--
|
|
201
|
+
--card: var(--color-white);
|
|
199
202
|
--card-foreground: var(--ds-gray-1000);
|
|
200
203
|
--popover: var(--ds-background-100);
|
|
201
204
|
--popover-foreground: var(--ds-gray-1000);
|
|
@@ -204,7 +207,7 @@
|
|
|
204
207
|
--secondary: var(--ds-gray-200);
|
|
205
208
|
--secondary-foreground: var(--ds-gray-1000);
|
|
206
209
|
--muted: var(--ds-gray-100);
|
|
207
|
-
--muted-foreground: var(--ds-gray-
|
|
210
|
+
--muted-foreground: var(--ds-gray-800);
|
|
208
211
|
--placeholder: var(--ds-gray-700);
|
|
209
212
|
--accent: var(--ds-gray-100);
|
|
210
213
|
--accent-foreground: var(--ds-gray-1000);
|
|
@@ -214,7 +217,7 @@
|
|
|
214
217
|
--warning-foreground: var(--ds-amber-900);
|
|
215
218
|
--border: var(--ds-gray-400);
|
|
216
219
|
--highlight: var(--ds-gray-600);
|
|
217
|
-
--input: var(--
|
|
220
|
+
--input: var(--color-white);
|
|
218
221
|
--ring: var(--ds-gray-600);
|
|
219
222
|
--chart-1: var(--ds-blue-700);
|
|
220
223
|
--chart-2: var(--ds-purple-700);
|
|
@@ -298,22 +301,11 @@
|
|
|
298
301
|
line-height: 20px;
|
|
299
302
|
}
|
|
300
303
|
|
|
301
|
-
.admin-root {
|
|
302
|
-
font-family: var(--font-geist-sans), ui-sans-serif, system-ui, sans-serif;
|
|
303
|
-
}
|
|
304
|
-
|
|
305
304
|
.admin-root .tiptap-button-icon,
|
|
306
305
|
.admin-root .tiptap-button-icon-sub {
|
|
307
306
|
@apply text-foreground;
|
|
308
307
|
}
|
|
309
308
|
|
|
310
|
-
.admin-root code,
|
|
311
|
-
.admin-root pre,
|
|
312
|
-
.admin-root kbd {
|
|
313
|
-
font-family:
|
|
314
|
-
var(--font-geist-mono), ui-monospace, SFMono-Regular, monospace;
|
|
315
|
-
}
|
|
316
|
-
|
|
317
309
|
html {
|
|
318
310
|
@apply font-sans;
|
|
319
311
|
}
|
package/dist/assets/adapters/next/templates/init/components/shared/dev-mode/copyable-code-block.tsx
CHANGED
|
@@ -32,10 +32,10 @@ export function CopyableCodeBlock({ label, code, language, tabs }: CopyableCodeB
|
|
|
32
32
|
const hasTabs = codeTabs.length > 1
|
|
33
33
|
|
|
34
34
|
return (
|
|
35
|
-
<Card className="flex w-full flex-col gap-0 p-0">
|
|
35
|
+
<Card className="flex h-full w-full flex-col gap-0 p-0">
|
|
36
36
|
{hasTabs ? (
|
|
37
37
|
<Tabs value={activeTab.id} onValueChange={setActiveTabId} className="min-h-0 flex-1 gap-0">
|
|
38
|
-
<CardHeader className="flex items-center justify-between gap-2
|
|
38
|
+
<CardHeader className="flex items-center justify-between gap-2 py-1!">
|
|
39
39
|
<div className="flex min-w-0 flex-1 items-center gap-2">
|
|
40
40
|
<span className="min-w-0 truncate font-medium text-muted-foreground">{label}</span>
|
|
41
41
|
<TabsList className="h-fit! shrink-0">
|
|
@@ -61,7 +61,7 @@ export function CopyableCodeBlock({ label, code, language, tabs }: CopyableCodeB
|
|
|
61
61
|
|
|
62
62
|
{codeTabs.map((tab) => (
|
|
63
63
|
<TabsContent key={tab.id} value={tab.id} className="min-h-0 overflow-auto">
|
|
64
|
-
<CardContent className="h-full overflow-auto p-0">
|
|
64
|
+
<CardContent className="h-full overflow-auto border-t p-0">
|
|
65
65
|
<React.Suspense fallback={<PlainCodeFallback code={tab.code} />}>
|
|
66
66
|
<LazyCodeMirror code={tab.code} language={tab.language} />
|
|
67
67
|
</React.Suspense>
|
|
@@ -71,7 +71,7 @@ export function CopyableCodeBlock({ label, code, language, tabs }: CopyableCodeB
|
|
|
71
71
|
</Tabs>
|
|
72
72
|
) : (
|
|
73
73
|
<>
|
|
74
|
-
<CardHeader className="flex items-center justify-between gap-2
|
|
74
|
+
<CardHeader className="flex items-center justify-between gap-2 py-1!">
|
|
75
75
|
<span className="min-w-0 truncate font-medium text-muted-foreground">{label}</span>
|
|
76
76
|
<Button
|
|
77
77
|
type="button"
|
|
@@ -85,7 +85,7 @@ export function CopyableCodeBlock({ label, code, language, tabs }: CopyableCodeB
|
|
|
85
85
|
{isCopied ? <Check /> : <Copy />}
|
|
86
86
|
</Button>
|
|
87
87
|
</CardHeader>
|
|
88
|
-
<CardContent className="overflow-auto p-0">
|
|
88
|
+
<CardContent className="h-full overflow-auto border-t p-0">
|
|
89
89
|
<React.Suspense fallback={<PlainCodeFallback code={code} />}>
|
|
90
90
|
<LazyCodeMirror code={code} language={language} />
|
|
91
91
|
</React.Suspense>
|
|
@@ -51,7 +51,7 @@ export function DevModeIntegrateButton({
|
|
|
51
51
|
<Code2 />
|
|
52
52
|
<span className="inline">Dev Mode</span>
|
|
53
53
|
</DrawerTrigger>
|
|
54
|
-
<DrawerContent className="w-full overflow-hidden data-[swipe-direction=right]:max-w-
|
|
54
|
+
<DrawerContent className="w-full overflow-hidden data-[swipe-direction=right]:max-w-2xl">
|
|
55
55
|
<DrawerHeader className="pb-4">
|
|
56
56
|
<DrawerTitle>{integration.schemaLabel}</DrawerTitle>
|
|
57
57
|
<DrawerDescription>
|
|
@@ -60,7 +60,7 @@ export function DevModeIntegrateButton({
|
|
|
60
60
|
</DrawerHeader>
|
|
61
61
|
|
|
62
62
|
{loadedIntegration ? (
|
|
63
|
-
<Tabs defaultValue="snippets" className="min-h-0 flex-1 gap-
|
|
63
|
+
<Tabs defaultValue="snippets" className="min-h-0 flex-1 gap-2 overflow-hidden px-6 pb-4">
|
|
64
64
|
<TabsList className="w-full">
|
|
65
65
|
<TabsTrigger value="snippets">Snippets</TabsTrigger>
|
|
66
66
|
<TabsTrigger value="lifecycle-hooks">Lifecycle Hooks</TabsTrigger>
|
|
@@ -64,7 +64,7 @@ export function EntityFiltersBar({
|
|
|
64
64
|
return (
|
|
65
65
|
<div
|
|
66
66
|
className={cn(
|
|
67
|
-
'sticky top-14 z-10
|
|
67
|
+
'sticky top-14 z-10 mt-6 mb-3 flex flex-row items-center justify-between gap-1 overflow-x-clip bg-background px-6 transition-shadow',
|
|
68
68
|
{
|
|
69
69
|
'shadow-modal/3': hasScrolled
|
|
70
70
|
}
|
|
@@ -43,8 +43,8 @@ export function EntityVersionsDrawer({
|
|
|
43
43
|
}: EntityVersionsDrawerProps) {
|
|
44
44
|
return (
|
|
45
45
|
<Drawer swipeDirection="right" open={open} onOpenChange={onOpenChange} modal>
|
|
46
|
-
<DrawerContent className="
|
|
47
|
-
<DrawerHeader>
|
|
46
|
+
<DrawerContent className="w-full data-[swipe-direction=right]:max-w-lg">
|
|
47
|
+
<DrawerHeader className="pb-4">
|
|
48
48
|
<DrawerTitle>Versions</DrawerTitle>
|
|
49
49
|
<DrawerDescription>
|
|
50
50
|
Review previous {entityType} versions and restore a saved state.
|
|
@@ -91,7 +91,7 @@ export function EditMediaDialogContent({
|
|
|
91
91
|
}
|
|
92
92
|
|
|
93
93
|
return (
|
|
94
|
-
<DrawerContent className="
|
|
94
|
+
<DrawerContent className="w-full overflow-hidden">
|
|
95
95
|
<div
|
|
96
96
|
ref={handleDrawerContainerRef}
|
|
97
97
|
className="pointer-events-none absolute inset-3 z-20 overflow-hidden rounded"
|
package/dist/assets/adapters/next/templates/init/components/shared/media/media-filters-bar.tsx
CHANGED
|
@@ -48,7 +48,7 @@ export function MediaFiltersBar({
|
|
|
48
48
|
return (
|
|
49
49
|
<div
|
|
50
50
|
className={cn(
|
|
51
|
-
'sticky top-14 z-9
|
|
51
|
+
'sticky top-14 z-9 mt-6 mb-3 flex flex-row items-center justify-between gap-1 overflow-clip bg-background px-6 transition-shadow',
|
|
52
52
|
{
|
|
53
53
|
'shadow-modal/3': hasScrolled
|
|
54
54
|
}
|
|
@@ -23,7 +23,7 @@ export function PageHeader({
|
|
|
23
23
|
|
|
24
24
|
return (
|
|
25
25
|
<>
|
|
26
|
-
<header className="fixed top-0 right-0 left-(--admin-shell-content-left) z-
|
|
26
|
+
<header className="fixed top-0 right-0 left-(--admin-shell-content-left) z-30 grid h-14 grid-cols-[minmax(0,1fr)_auto_minmax(0,1fr)] items-center border-t border-b border-border/80 bg-sidebar px-4 transition-[left] duration-200 ease-linear">
|
|
27
27
|
<div className="flex w-full items-center justify-start gap-2">
|
|
28
28
|
{hasBackButton && (
|
|
29
29
|
<Button variant="ghost" size="icon" onClick={() => router.back()}>
|
|
@@ -192,7 +192,7 @@ export function SortOrderDialog({
|
|
|
192
192
|
onOpenChange={onOpenChange}
|
|
193
193
|
onOpenChangeComplete={handleDrawerAnimationEnd}
|
|
194
194
|
>
|
|
195
|
-
<DrawerContent className="
|
|
195
|
+
<DrawerContent className="w-full overflow-hidden data-[swipe-direction=right]:max-w-md">
|
|
196
196
|
<div className="relative z-10 flex min-h-0 flex-1 flex-col gap-3 overflow-hidden">
|
|
197
197
|
<DrawerHeader>
|
|
198
198
|
<DrawerTitle>{title}</DrawerTitle>
|
|
@@ -39,7 +39,7 @@ import { githubLightInit } from '@uiw/codemirror-theme-github'
|
|
|
39
39
|
import { NuqsAdapter } from 'nuqs/adapters/react'
|
|
40
40
|
import { createRoot } from 'react-dom/client'
|
|
41
41
|
|
|
42
|
-
const ADMIN_MONO_FONT_FAMILY = 'var(--font-geist-mono)
|
|
42
|
+
const ADMIN_MONO_FONT_FAMILY = 'var(--font-geist-mono)'
|
|
43
43
|
const editorTheme = githubLightInit({ settings: { fontFamily: ADMIN_MONO_FONT_FAMILY } })
|
|
44
44
|
|
|
45
45
|
type MarkdownMediaGalleryWidgetProps = {
|
|
@@ -206,7 +206,7 @@ export function MediaPageContent() {
|
|
|
206
206
|
}
|
|
207
207
|
/>
|
|
208
208
|
|
|
209
|
-
<main className="flex-1 space-y-3 px-
|
|
209
|
+
<main className="flex-1 space-y-3 px-6 pb-6">
|
|
210
210
|
<div className="flex w-full flex-col gap-4 pt-px">
|
|
211
211
|
{activeTab === 'url' ? (
|
|
212
212
|
<MediaUrlImporter
|
|
@@ -37,7 +37,7 @@ function formatMetadata(metadata: Record<string, unknown> | null): string {
|
|
|
37
37
|
export function AuditLogDetailDrawer({ auditLog, open, onOpenChange }: AuditLogDetailDrawerProps) {
|
|
38
38
|
return (
|
|
39
39
|
<Drawer swipeDirection="right" open={open} onOpenChange={onOpenChange} modal>
|
|
40
|
-
<DrawerContent className="
|
|
40
|
+
<DrawerContent className="w-full data-[swipe-direction=right]:max-w-xl">
|
|
41
41
|
<DrawerHeader>
|
|
42
42
|
<DrawerTitle>Audit Event</DrawerTitle>
|
|
43
43
|
<DrawerDescription>
|
package/dist/assets/adapters/next/templates/init/pages/settings/forms/form-notifications-drawer.tsx
CHANGED
|
@@ -83,7 +83,7 @@ export function FormNotificationsDrawer({
|
|
|
83
83
|
|
|
84
84
|
return (
|
|
85
85
|
<Drawer swipeDirection="right" open={open} onOpenChange={onOpenChange} modal>
|
|
86
|
-
<DrawerContent className="
|
|
86
|
+
<DrawerContent className="w-full data-[swipe-direction=right]:max-w-xl">
|
|
87
87
|
<Form {...form}>
|
|
88
88
|
<form
|
|
89
89
|
autoComplete="off"
|
|
@@ -16,7 +16,7 @@ function AccordionItem({ className, ...props }: AccordionPrimitive.Item.Props) {
|
|
|
16
16
|
return (
|
|
17
17
|
<AccordionPrimitive.Item
|
|
18
18
|
data-slot="accordion-item"
|
|
19
|
-
className={cn('not-last:border-b data-open:bg-
|
|
19
|
+
className={cn('not-last:border-b data-open:bg-background-light', className)}
|
|
20
20
|
{...props}
|
|
21
21
|
/>
|
|
22
22
|
)
|
|
@@ -10,7 +10,7 @@ const buttonVariants = cva(
|
|
|
10
10
|
variant: {
|
|
11
11
|
default: 'bg-primary text-primary-foreground hover:bg-primary/80',
|
|
12
12
|
outline:
|
|
13
|
-
'border-border bg-input/
|
|
13
|
+
'border-border bg-input hover:border-foreground/10 hover:bg-accent hover:text-foreground aria-expanded:bg-muted aria-expanded:text-foreground',
|
|
14
14
|
secondary:
|
|
15
15
|
'bg-secondary text-secondary-foreground hover:bg-[color-mix(in_oklch,var(--secondary),var(--foreground)_5%)] aria-expanded:bg-secondary aria-expanded:text-secondary-foreground',
|
|
16
16
|
ghost:
|
|
@@ -11,7 +11,7 @@ function Card({
|
|
|
11
11
|
data-slot="card"
|
|
12
12
|
data-size={size}
|
|
13
13
|
className={cn(
|
|
14
|
-
'group/card flex flex-col
|
|
14
|
+
'group/card flex flex-col overflow-clip rounded-lg border bg-accent text-card-foreground has-[>img:first-child]:pt-0 *:[img:first-child]:rounded-t-lg *:[img:last-child]:rounded-b',
|
|
15
15
|
className
|
|
16
16
|
)}
|
|
17
17
|
{...props}
|
|
@@ -24,7 +24,7 @@ function CardHeader({ className, ...props }: React.ComponentProps<'div'>) {
|
|
|
24
24
|
<div
|
|
25
25
|
data-slot="card-header"
|
|
26
26
|
className={cn(
|
|
27
|
-
'group/card-header grid auto-rows-min items-start gap-2 rounded-t px-
|
|
27
|
+
'group/card-header grid auto-rows-min items-start gap-2 rounded-t-lg bg-accent px-5 py-2 has-data-[slot=card-action]:grid-cols-[1fr_auto] has-data-[slot=card-description]:grid-rows-[auto_auto]',
|
|
28
28
|
className
|
|
29
29
|
)}
|
|
30
30
|
{...props}
|
|
@@ -64,7 +64,14 @@ function CardAction({ className, ...props }: React.ComponentProps<'div'>) {
|
|
|
64
64
|
|
|
65
65
|
function CardContent({ className, ...props }: React.ComponentProps<'div'>) {
|
|
66
66
|
return (
|
|
67
|
-
<div
|
|
67
|
+
<div
|
|
68
|
+
data-slot="card-content"
|
|
69
|
+
className={cn(
|
|
70
|
+
'overflow-clip rounded-t-lg bg-card px-5 py-5 [[data-slot=card-header]~&]:border-t',
|
|
71
|
+
className
|
|
72
|
+
)}
|
|
73
|
+
{...props}
|
|
74
|
+
/>
|
|
68
75
|
)
|
|
69
76
|
}
|
|
70
77
|
|
|
@@ -72,10 +79,7 @@ function CardFooter({ className, ...props }: React.ComponentProps<'div'>) {
|
|
|
72
79
|
return (
|
|
73
80
|
<div
|
|
74
81
|
data-slot="card-footer"
|
|
75
|
-
className={cn(
|
|
76
|
-
'flex items-center rounded-b px-(--card-spacing) [.border-t]:pt-(--card-spacing)',
|
|
77
|
-
className
|
|
78
|
-
)}
|
|
82
|
+
className={cn('flex items-center rounded-b px-5 [.border-t]:pt-(--card-spacing)', className)}
|
|
79
83
|
{...props}
|
|
80
84
|
/>
|
|
81
85
|
)
|
|
@@ -9,7 +9,7 @@ function Checkbox({ className, ...props }: CheckboxPrimitive.Root.Props) {
|
|
|
9
9
|
<CheckboxPrimitive.Root
|
|
10
10
|
data-slot="checkbox"
|
|
11
11
|
className={cn(
|
|
12
|
-
'peer relative flex size-4 shrink-0 items-center justify-center rounded border border-
|
|
12
|
+
'peer relative flex size-4 shrink-0 items-center justify-center rounded border border-border transition-shadow outline-none group-has-disabled/field:opacity-50 after:absolute after:-inset-x-3 after:-inset-y-2 focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 aria-invalid:aria-checked:border-primary data-checked:border-primary data-checked:bg-primary data-checked:text-primary-foreground',
|
|
13
13
|
className
|
|
14
14
|
)}
|
|
15
15
|
{...props}
|
|
@@ -207,7 +207,7 @@ function ComboboxChips({
|
|
|
207
207
|
<ComboboxPrimitive.Chips
|
|
208
208
|
data-slot="combobox-chips"
|
|
209
209
|
className={cn(
|
|
210
|
-
'flex min-h-9 flex-wrap items-center gap-1.5 rounded border border-
|
|
210
|
+
'flex min-h-9 flex-wrap items-center gap-1.5 rounded border border-border bg-input/30 bg-clip-padding px-2.5 py-1.5 transition-colors focus-within:border-ring focus-within:ring-[3px] focus-within:ring-ring/50 has-aria-invalid:border-destructive has-aria-invalid:ring-[3px] has-aria-invalid:ring-destructive/20 has-data-[slot=combobox-chip]:px-1.5',
|
|
211
211
|
className
|
|
212
212
|
)}
|
|
213
213
|
{...props}
|
|
@@ -111,7 +111,7 @@ function DrawerContent({ className, children, ...props }: DrawerPrimitive.Popup.
|
|
|
111
111
|
data-snap-points={hasSnapPoints ? '' : undefined}
|
|
112
112
|
className={cn(
|
|
113
113
|
// Base.
|
|
114
|
-
'group/drawer-popup pointer-events-auto fixed z-50 m-(--drawer-inset,0px) flex h-(--drawer-content-height) max-h-(--drawer-content-max-height,none) min-h-0 w-(--drawer-content-width,auto) transform-[translate3d(var(--translate-x,0px),var(--translate-y,0px),0)_scale(var(--stack-scale))] flex-col rounded border border-popover bg-popover text-popover-foreground transition-[transform,height,opacity,filter] duration-450 ease-[cubic-bezier(0.22,1,0.36,1)] will-change-transform outline-none select-none [--drawer-bleed-background:transparent] [--drawer-inset:--spacing(2)] [interpolate-size:allow-keywords]',
|
|
114
|
+
'group/drawer-popup pointer-events-auto fixed z-50 m-(--drawer-inset,0px) flex h-(--drawer-content-height) max-h-(--drawer-content-max-height,none) min-h-0 w-(--drawer-content-width,auto) transform-[translate3d(var(--translate-x,0px),var(--translate-y,0px),0)_scale(var(--stack-scale))] flex-col rounded border border-popover bg-popover text-popover-foreground transition-[transform,height,opacity,filter] duration-450 ease-[cubic-bezier(0.22,1,0.36,1)] will-change-transform outline-none select-none [--drawer-bleed-background:transparent] [--drawer-inset:--spacing(2)] [interpolate-size:allow-keywords] data-[swipe-direction=right]:max-w-md',
|
|
115
115
|
// Nested.
|
|
116
116
|
'data-nested-drawer-open:overflow-hidden data-nested-drawer-open:brightness-95',
|
|
117
117
|
// Bleed.
|
|
@@ -158,7 +158,7 @@ function DrawerHeader({ className, ...props }: React.ComponentProps<'div'>) {
|
|
|
158
158
|
<div
|
|
159
159
|
data-slot="drawer-header"
|
|
160
160
|
className={cn(
|
|
161
|
-
'flex shrink-0 flex-col
|
|
161
|
+
'flex shrink-0 flex-col px-6 py-4 pb-0 text-left group-data-[swipe-axis=y]/drawer-popup:text-center',
|
|
162
162
|
className
|
|
163
163
|
)}
|
|
164
164
|
{...props}
|
|
@@ -14,7 +14,7 @@ function InputGroup({ className, ...props }: React.ComponentProps<'div'>) {
|
|
|
14
14
|
data-slot="input-group"
|
|
15
15
|
role="group"
|
|
16
16
|
className={cn(
|
|
17
|
-
'group/input-group relative flex h-9 w-full min-w-0 items-center rounded border border-
|
|
17
|
+
'group/input-group relative flex h-9 w-full min-w-0 items-center rounded border border-border bg-input/30 transition-colors outline-none in-data-[slot=combobox-content]:focus-within:border-inherit in-data-[slot=combobox-content]:focus-within:ring-0 has-data-[align=block-end]:rounded has-data-[align=block-start]:rounded has-[[data-slot=input-group-control]:focus-visible]:border-ring has-[[data-slot=input-group-control]:focus-visible]:ring-[3px] has-[[data-slot=input-group-control]:focus-visible]:ring-ring/50 has-[[data-slot][aria-invalid=true]]:border-destructive has-[[data-slot][aria-invalid=true]]:ring-[3px] has-[[data-slot][aria-invalid=true]]:ring-destructive/20 has-[textarea]:rounded has-[>[data-align=block-end]]:h-auto has-[>[data-align=block-end]]:flex-col has-[>[data-align=block-start]]:h-auto has-[>[data-align=block-start]]:flex-col has-[>textarea]:h-auto has-[>[data-align=block-end]]:[&>input]:pt-3 has-[>[data-align=block-start]]:[&>input]:pb-3 has-[>[data-align=inline-end]]:[&>input]:pr-1.5 has-[>[data-align=inline-start]]:[&>input]:pl-1.5',
|
|
18
18
|
className
|
|
19
19
|
)}
|
|
20
20
|
{...props}
|
|
@@ -54,7 +54,7 @@ function InputOTPSlot({
|
|
|
54
54
|
data-slot="input-otp-slot"
|
|
55
55
|
data-active={isActive}
|
|
56
56
|
className={cn(
|
|
57
|
-
'relative flex size-9 items-center justify-center border-y border-r border-
|
|
57
|
+
'relative flex size-9 items-center justify-center border-y border-r border-border bg-input/30 transition-all outline-none first:rounded-l first:border-l last:rounded-r aria-invalid:border-destructive data-[active=true]:z-10 data-[active=true]:border-ring data-[active=true]:ring-[3px] data-[active=true]:ring-ring/50 data-[active=true]:aria-invalid:border-destructive data-[active=true]:aria-invalid:ring-destructive/20',
|
|
58
58
|
className
|
|
59
59
|
)}
|
|
60
60
|
{...props}
|
|
@@ -8,7 +8,7 @@ function Input({ className, type, ...props }: React.ComponentProps<'input'>) {
|
|
|
8
8
|
type={type}
|
|
9
9
|
data-slot="input"
|
|
10
10
|
className={cn(
|
|
11
|
-
'h-9 w-full min-w-0 rounded border border-
|
|
11
|
+
'h-9 w-full min-w-0 rounded border border-border bg-input px-3 py-1 transition-colors outline-none file:inline-flex file:h-7 file:border-0 file:bg-transparent file:font-medium file:text-foreground placeholder:text-placeholder focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-[3px] aria-invalid:ring-destructive/20',
|
|
12
12
|
className
|
|
13
13
|
)}
|
|
14
14
|
{...props}
|
|
@@ -19,7 +19,7 @@ function NativeSelect({ className, size = 'default', ...props }: NativeSelectPro
|
|
|
19
19
|
<select
|
|
20
20
|
data-slot="native-select"
|
|
21
21
|
data-size={size}
|
|
22
|
-
className="h-9 w-full min-w-0 appearance-none rounded border border-
|
|
22
|
+
className="h-9 w-full min-w-0 appearance-none rounded border border-border bg-input/30 py-1 pr-8 pl-3 transition-colors outline-none select-none selection:bg-primary selection:text-primary-foreground placeholder:text-placeholder focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:pointer-events-none disabled:cursor-not-allowed aria-invalid:border-destructive aria-invalid:ring-[3px] aria-invalid:ring-destructive/20 data-[size=sm]:h-8"
|
|
23
23
|
{...props}
|
|
24
24
|
/>
|
|
25
25
|
<ChevronDownIcon
|
|
@@ -19,7 +19,7 @@ function RadioGroupItem({ className, ...props }: RadioPrimitive.Root.Props) {
|
|
|
19
19
|
<RadioPrimitive.Root
|
|
20
20
|
data-slot="radio-group-item"
|
|
21
21
|
className={cn(
|
|
22
|
-
'group/radio-group-item peer relative flex aspect-square size-4 shrink-0 rounded border border-
|
|
22
|
+
'group/radio-group-item peer relative flex aspect-square size-4 shrink-0 rounded border border-border outline-none after:absolute after:-inset-x-3 after:-inset-y-2 focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 aria-invalid:aria-checked:border-primary data-checked:border-primary data-checked:bg-primary data-checked:text-primary-foreground',
|
|
23
23
|
className
|
|
24
24
|
)}
|
|
25
25
|
{...props}
|
|
@@ -40,7 +40,7 @@ function SelectTrigger({
|
|
|
40
40
|
data-slot="select-trigger"
|
|
41
41
|
data-size={size}
|
|
42
42
|
className={cn(
|
|
43
|
-
"flex w-fit items-center justify-between gap-1.5 rounded border border-
|
|
43
|
+
"flex w-fit items-center justify-between gap-1.5 rounded border border-border bg-input/30 px-3 py-2 whitespace-nowrap transition-colors outline-none focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-[3px] aria-invalid:ring-destructive/20 data-placeholder:text-placeholder data-[size=default]:h-9 data-[size=sm]:h-8 *:data-[slot=select-value]:line-clamp-1 *:data-[slot=select-value]:flex *:data-[slot=select-value]:items-center *:data-[slot=select-value]:gap-1.5 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
|
|
44
44
|
className
|
|
45
45
|
)}
|
|
46
46
|
{...props}
|
|
@@ -51,9 +51,9 @@ function TabsTrigger({ className, ...props }: TabsPrimitive.Tab.Props) {
|
|
|
51
51
|
<TabsPrimitive.Tab
|
|
52
52
|
data-slot="tabs-trigger"
|
|
53
53
|
className={cn(
|
|
54
|
-
"relative inline-flex h-[calc(100%-1px)] flex-1 items-center justify-center gap-1.5 rounded border border-transparent px-2 py-1 font-medium whitespace-nowrap text-foreground/60 transition-all group-data-vertical/tabs:w-full group-data-vertical/tabs:justify-start group-data-vertical/tabs:px-2.5 group-data-vertical/tabs:py-1.5 hover:text-foreground focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 focus-visible:outline-1 focus-visible:outline-ring disabled:pointer-events-none disabled:opacity-50 has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 aria-disabled:pointer-events-none aria-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
|
|
55
|
-
'group-data-[variant=line]/tabs-list:bg-transparent group-data-[variant=line]/tabs-list:data-active:bg-transparent',
|
|
56
|
-
'data-active:bg-
|
|
54
|
+
"relative inline-flex h-[calc(100%-1px)] flex-1 items-center justify-center gap-1.5 rounded border border-transparent bg-clip-padding px-2 py-1 font-medium whitespace-nowrap text-foreground/60 transition-all group-data-vertical/tabs:w-full group-data-vertical/tabs:justify-start group-data-vertical/tabs:px-2.5 group-data-vertical/tabs:py-1.5 hover:text-foreground focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 focus-visible:outline-1 focus-visible:outline-ring disabled:pointer-events-none disabled:opacity-50 has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 aria-disabled:pointer-events-none aria-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
|
|
55
|
+
'group-data-[variant=line]/tabs-list:bg-transparent group-data-[variant=line]/tabs-list:data-active:border-transparent group-data-[variant=line]/tabs-list:data-active:bg-transparent',
|
|
56
|
+
'data-active:border-border data-active:bg-input data-active:text-foreground',
|
|
57
57
|
'after:absolute after:bg-foreground after:opacity-0 after:transition-opacity group-data-horizontal/tabs:after:inset-x-0 group-data-horizontal/tabs:after:bottom-[-5px] group-data-horizontal/tabs:after:h-0.5 group-data-vertical/tabs:after:inset-y-0 group-data-vertical/tabs:after:-right-1 group-data-vertical/tabs:after:w-0.5 group-data-[variant=line]/tabs-list:data-active:after:opacity-100',
|
|
58
58
|
className
|
|
59
59
|
)}
|
|
@@ -6,7 +6,7 @@ function Textarea({ className, ...props }: React.ComponentProps<'textarea'>) {
|
|
|
6
6
|
<textarea
|
|
7
7
|
data-slot="textarea"
|
|
8
8
|
className={cn(
|
|
9
|
-
'flex field-sizing-content min-h-16 w-full resize-none rounded border border-
|
|
9
|
+
'flex field-sizing-content min-h-16 w-full resize-none rounded border border-border bg-input/30 px-3 py-3 transition-colors outline-none placeholder:text-placeholder focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-[3px] aria-invalid:ring-destructive/20',
|
|
10
10
|
className
|
|
11
11
|
)}
|
|
12
12
|
{...props}
|