betterstart-cli 0.0.118 → 0.0.120
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/integrations/resend/actions/render-password-reset-email.ts +5 -5
- package/dist/assets/adapters/next/templates/init/admin-globals.css +169 -61
- package/dist/assets/adapters/next/templates/init/components/layouts/admin-sidebar-branding-skeleton.tsx +1 -1
- package/dist/assets/adapters/next/templates/init/components/layouts/admin-sidebar-user-menu-skeleton.tsx +1 -1
- package/dist/assets/adapters/next/templates/init/components/layouts/admin-sidebar-user-menu.tsx +3 -3
- package/dist/assets/adapters/next/templates/init/components/layouts/content-skeleton.tsx +13 -13
- package/dist/assets/adapters/next/templates/init/components/layouts/sidebar-branding.tsx +2 -2
- package/dist/assets/adapters/next/templates/init/components/shared/data-table/data-grid-body.tsx +1 -1
- package/dist/assets/adapters/next/templates/init/components/shared/data-table/data-grid-header.tsx +1 -1
- package/dist/assets/adapters/next/templates/init/components/shared/data-table/data-grid.tsx +1 -1
- package/dist/assets/adapters/next/templates/init/components/shared/data-table/data-table-pagination.tsx +2 -2
- package/dist/assets/adapters/next/templates/init/components/shared/dev-mode/copyable-code-block.tsx +3 -7
- package/dist/assets/adapters/next/templates/init/components/shared/dev-mode/lifecycle-hooks-tab.tsx +2 -2
- package/dist/assets/adapters/next/templates/init/components/shared/dev-mode/plain-code-fallback.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 +2 -2
- package/dist/assets/adapters/next/templates/init/components/shared/entity-metadata.tsx +1 -1
- package/dist/assets/adapters/next/templates/init/components/shared/entity-versions/entity-version-item.tsx +2 -2
- package/dist/assets/adapters/next/templates/init/components/shared/entity-versions/entity-versions-current-row.tsx +2 -2
- 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 +2 -2
- package/dist/assets/adapters/next/templates/init/components/shared/media/media-delete-drawer.tsx +5 -5
- package/dist/assets/adapters/next/templates/init/components/shared/media/media-grid-item.tsx +3 -3
- package/dist/assets/adapters/next/templates/init/components/shared/media/media-grid-pagination.tsx +2 -2
- package/dist/assets/adapters/next/templates/init/components/shared/media/media-preview.tsx +1 -1
- package/dist/assets/adapters/next/templates/init/components/shared/media/media-url-importer.tsx +1 -1
- package/dist/assets/adapters/next/templates/init/components/shared/page-header.tsx +1 -1
- package/dist/assets/adapters/next/templates/init/components/shared/sort-order-drag-overlay-item.tsx +1 -1
- package/dist/assets/adapters/next/templates/init/components/shared/sort-order-item.tsx +1 -1
- package/dist/assets/adapters/next/templates/init/pages/dashboard-page.tsx +3 -3
- package/dist/assets/adapters/next/templates/init/pages/forgot-password-form.tsx +2 -2
- package/dist/assets/adapters/next/templates/init/pages/forgot-password-page-skeleton.tsx +8 -8
- package/dist/assets/adapters/next/templates/init/pages/login-form.tsx +2 -2
- package/dist/assets/adapters/next/templates/init/pages/login-page-skeleton.tsx +8 -8
- package/dist/assets/adapters/next/templates/init/pages/minimal-account-shell.tsx +1 -1
- package/dist/assets/adapters/next/templates/init/pages/profile/profile-form.tsx +2 -2
- package/dist/assets/adapters/next/templates/init/pages/reset-password-form.tsx +3 -6
- package/dist/assets/adapters/next/templates/init/pages/reset-password-page-skeleton.tsx +8 -8
- package/dist/assets/adapters/next/templates/init/pages/settings/audit-log/audit-log-columns.tsx +4 -4
- package/dist/assets/adapters/next/templates/init/pages/settings/audit-log/audit-log-detail-row.tsx +2 -2
- package/dist/assets/adapters/next/templates/init/pages/settings/forms/forms-settings-columns.tsx +1 -1
- package/dist/assets/adapters/next/templates/init/pages/settings/webhooks/delete-webhook-dialog.tsx +1 -1
- package/dist/assets/adapters/next/templates/init/pages/settings/webhooks/webhook-endpoint-dialog.tsx +12 -16
- package/dist/assets/adapters/next/templates/init/pages/settings/webhooks/webhooks-columns.tsx +9 -9
- package/dist/assets/adapters/next/templates/init/pages/settings/webhooks/webhooks-logs-columns.tsx +7 -7
- package/dist/assets/adapters/next/templates/init/pages/users/columns.tsx +4 -4
- package/dist/assets/adapters/next/templates/init/utils/editor/inline-math-node-view.ts +1 -1
- package/dist/assets/adapters/next/templates/init/utils/editor/raw-content-block-node-view.ts +1 -1
- package/dist/assets/adapters/next/templates/init/utils/email/render-form-submission-rows.ts +1 -1
- package/dist/assets/adapters/next/templates/init/utils/email/render-notification-email.ts +3 -3
- package/dist/assets/adapters/next/templates/init/utils/email/render-thank-you-email.ts +3 -3
- package/dist/assets/shared-assets/react-admin/custom/content-editor/index.tsx +1 -1
- package/dist/assets/shared-assets/react-admin/custom/content-editor/math-bubble-menu.tsx +1 -1
- package/dist/assets/shared-assets/react-admin/custom/content-editor/math-editor-controls.tsx +1 -1
- package/dist/assets/shared-assets/react-admin/custom/content-editor/remove-table-part-icon.tsx +1 -1
- package/dist/assets/shared-assets/react-admin/custom/content-editor/selection-bubble-menu.tsx +2 -2
- package/dist/assets/shared-assets/react-admin/custom/content-editor/slash-command-menu.tsx +2 -4
- 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-add-controls.tsx +4 -4
- package/dist/assets/shared-assets/react-admin/custom/content-editor/table-bubble-menu.tsx +1 -1
- package/dist/assets/shared-assets/react-admin/custom/content-editor/tiptap-node/removable-image-node/removable-image-node.tsx +3 -3
- package/dist/assets/shared-assets/react-admin/custom/content-editor/tiptap-ui/color-highlight-button/highlight-swatch.tsx +2 -2
- package/dist/assets/shared-assets/react-admin/custom/content-editor/tiptap-ui/color-highlight-popover/color-highlight-popover-content.tsx +1 -1
- package/dist/assets/shared-assets/react-admin/custom/content-editor/tiptap-ui/color-highlight-popover/color-highlight-popover.tsx +1 -1
- package/dist/assets/shared-assets/react-admin/custom/content-editor/tiptap-ui/color-highlight-popover/highlight-color-button.tsx +2 -2
- package/dist/assets/shared-assets/react-admin/custom/content-editor/tiptap-ui/color-highlight-popover/source-color-highlight-popover.tsx +1 -1
- package/dist/assets/shared-assets/react-admin/custom/date-range-picker.tsx +9 -10
- package/dist/assets/shared-assets/react-admin/custom/dynamic-list-field.tsx +2 -2
- package/dist/assets/shared-assets/react-admin/custom/gallery-field.tsx +4 -4
- package/dist/assets/shared-assets/react-admin/custom/icon-picker.tsx +2 -3
- package/dist/assets/shared-assets/react-admin/custom/icons-column-skeleton.tsx +2 -2
- package/dist/assets/shared-assets/react-admin/custom/media-field.tsx +3 -3
- package/dist/assets/shared-assets/react-admin/custom/nested-object-list-field.tsx +1 -1
- package/dist/assets/shared-assets/react-admin/custom/placeholder-card.tsx +2 -2
- package/dist/assets/shared-assets/react-admin/custom/placeholder.tsx +3 -3
- package/dist/assets/shared-assets/react-admin/custom/sortable-gallery-item.tsx +1 -1
- package/dist/assets/shared-assets/react-admin/custom/upload-dropzone.tsx +3 -5
- package/dist/assets/shared-assets/react-admin/ui/accordion.tsx +3 -3
- package/dist/assets/shared-assets/react-admin/ui/alert-dialog.tsx +4 -4
- package/dist/assets/shared-assets/react-admin/ui/alert.tsx +2 -2
- package/dist/assets/shared-assets/react-admin/ui/avatar.tsx +5 -5
- package/dist/assets/shared-assets/react-admin/ui/badge.tsx +2 -3
- package/dist/assets/shared-assets/react-admin/ui/breadcrumb.tsx +1 -1
- package/dist/assets/shared-assets/react-admin/ui/button-group.tsx +4 -4
- package/dist/assets/shared-assets/react-admin/ui/button.tsx +2 -2
- package/dist/assets/shared-assets/react-admin/ui/calendar.tsx +15 -21
- package/dist/assets/shared-assets/react-admin/ui/card.tsx +5 -5
- package/dist/assets/shared-assets/react-admin/ui/carousel.tsx +2 -2
- package/dist/assets/shared-assets/react-admin/ui/chart.tsx +4 -4
- package/dist/assets/shared-assets/react-admin/ui/checkbox.tsx +1 -1
- package/dist/assets/shared-assets/react-admin/ui/combobox.tsx +6 -6
- package/dist/assets/shared-assets/react-admin/ui/context-menu.tsx +7 -7
- package/dist/assets/shared-assets/react-admin/ui/dialog.tsx +3 -3
- package/dist/assets/shared-assets/react-admin/ui/drawer.tsx +5 -5
- package/dist/assets/shared-assets/react-admin/ui/dropdown-menu.tsx +8 -8
- package/dist/assets/shared-assets/react-admin/ui/empty.tsx +5 -5
- package/dist/assets/shared-assets/react-admin/ui/field.tsx +6 -12
- package/dist/assets/shared-assets/react-admin/ui/form.tsx +2 -2
- package/dist/assets/shared-assets/react-admin/ui/hover-card.tsx +1 -1
- package/dist/assets/shared-assets/react-admin/ui/input-group.tsx +6 -6
- package/dist/assets/shared-assets/react-admin/ui/input-otp.tsx +2 -2
- package/dist/assets/shared-assets/react-admin/ui/input.tsx +1 -1
- package/dist/assets/shared-assets/react-admin/ui/item.tsx +4 -4
- package/dist/assets/shared-assets/react-admin/ui/kbd.tsx +1 -1
- package/dist/assets/shared-assets/react-admin/ui/label.tsx +1 -1
- package/dist/assets/shared-assets/react-admin/ui/menubar.tsx +10 -10
- package/dist/assets/shared-assets/react-admin/ui/native-select.tsx +1 -1
- package/dist/assets/shared-assets/react-admin/ui/navigation-menu.tsx +5 -5
- package/dist/assets/shared-assets/react-admin/ui/popover.tsx +3 -7
- package/dist/assets/shared-assets/react-admin/ui/progress.tsx +3 -3
- package/dist/assets/shared-assets/react-admin/ui/radio-group.tsx +2 -2
- package/dist/assets/shared-assets/react-admin/ui/resizable.tsx +1 -1
- package/dist/assets/shared-assets/react-admin/ui/scroll-area.tsx +2 -2
- package/dist/assets/shared-assets/react-admin/ui/select.tsx +4 -4
- package/dist/assets/shared-assets/react-admin/ui/sheet.tsx +3 -3
- package/dist/assets/shared-assets/react-admin/ui/sidebar.tsx +16 -16
- package/dist/assets/shared-assets/react-admin/ui/skeleton.tsx +1 -1
- package/dist/assets/shared-assets/react-admin/ui/slider.tsx +2 -2
- package/dist/assets/shared-assets/react-admin/ui/switch.tsx +2 -2
- package/dist/assets/shared-assets/react-admin/ui/table.tsx +2 -6
- package/dist/assets/shared-assets/react-admin/ui/tabs.tsx +3 -3
- package/dist/assets/shared-assets/react-admin/ui/textarea.tsx +1 -1
- package/dist/assets/shared-assets/react-admin/ui/toggle-group.tsx +2 -2
- package/dist/assets/shared-assets/react-admin/ui/toggle.tsx +1 -1
- package/dist/assets/shared-assets/react-admin/ui/tooltip.tsx +2 -2
- package/dist/cli.js +105 -77
- package/dist/cli.js.map +1 -1
- package/package.json +1 -1
|
@@ -44,7 +44,7 @@ function ContextMenuContent({
|
|
|
44
44
|
<ContextMenuPrimitive.Popup
|
|
45
45
|
data-slot="context-menu-content"
|
|
46
46
|
className={cn(
|
|
47
|
-
'cn-menu-target cn-menu-translucent z-50 max-h-(--available-height) min-w-48 origin-(--transform-origin) overflow-x-hidden overflow-y-auto rounded
|
|
47
|
+
'cn-menu-target cn-menu-translucent z-50 max-h-(--available-height) min-w-48 origin-(--transform-origin) overflow-x-hidden overflow-y-auto rounded bg-popover p-1 text-popover-foreground shadow-2xl ring-1 ring-foreground/5 duration-100 outline-none data-[side=bottom]:slide-in-from-top-2 data-[side=inline-end]:slide-in-from-left-2 data-[side=inline-start]:slide-in-from-right-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 data-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',
|
|
48
48
|
className
|
|
49
49
|
)}
|
|
50
50
|
{...props}
|
|
@@ -69,7 +69,7 @@ function ContextMenuLabel({
|
|
|
69
69
|
<ContextMenuPrimitive.GroupLabel
|
|
70
70
|
data-slot="context-menu-label"
|
|
71
71
|
data-inset={inset}
|
|
72
|
-
className={cn('px-3 py-2.5 text-
|
|
72
|
+
className={cn('px-3 py-2.5 text-muted-foreground data-inset:pl-9.5', className)}
|
|
73
73
|
{...props}
|
|
74
74
|
/>
|
|
75
75
|
)
|
|
@@ -90,7 +90,7 @@ function ContextMenuItem({
|
|
|
90
90
|
data-inset={inset}
|
|
91
91
|
data-variant={variant}
|
|
92
92
|
className={cn(
|
|
93
|
-
"group/context-menu-item relative flex cursor-default items-center gap-2.5 rounded
|
|
93
|
+
"group/context-menu-item relative flex cursor-default items-center gap-2.5 rounded px-3 py-2 outline-hidden select-none focus:bg-accent focus:text-accent-foreground data-inset:pl-9.5 data-[variant=destructive]:text-destructive data-[variant=destructive]:focus:bg-destructive/10 data-[variant=destructive]:focus:text-destructive data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 focus:*:[svg]:text-accent-foreground data-[variant=destructive]:*:[svg]:text-destructive",
|
|
94
94
|
className
|
|
95
95
|
)}
|
|
96
96
|
{...props}
|
|
@@ -115,7 +115,7 @@ function ContextMenuSubTrigger({
|
|
|
115
115
|
data-slot="context-menu-sub-trigger"
|
|
116
116
|
data-inset={inset}
|
|
117
117
|
className={cn(
|
|
118
|
-
"flex cursor-default items-center rounded
|
|
118
|
+
"flex cursor-default items-center rounded px-3 py-2 outline-hidden select-none focus:bg-accent focus:text-accent-foreground data-inset:pl-9.5 data-open:bg-accent data-open:text-accent-foreground [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
|
|
119
119
|
className
|
|
120
120
|
)}
|
|
121
121
|
{...props}
|
|
@@ -151,7 +151,7 @@ function ContextMenuCheckboxItem({
|
|
|
151
151
|
data-slot="context-menu-checkbox-item"
|
|
152
152
|
data-inset={inset}
|
|
153
153
|
className={cn(
|
|
154
|
-
"relative flex cursor-default items-center gap-2 rounded
|
|
154
|
+
"relative flex cursor-default items-center gap-2 rounded py-2 pr-8 pl-3 outline-hidden select-none focus:bg-accent focus:text-accent-foreground data-inset:pl-9.5 data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
|
|
155
155
|
className
|
|
156
156
|
)}
|
|
157
157
|
checked={checked}
|
|
@@ -184,7 +184,7 @@ function ContextMenuRadioItem({
|
|
|
184
184
|
data-slot="context-menu-radio-item"
|
|
185
185
|
data-inset={inset}
|
|
186
186
|
className={cn(
|
|
187
|
-
"relative flex cursor-default items-center gap-2 rounded
|
|
187
|
+
"relative flex cursor-default items-center gap-2 rounded py-2 pr-8 pl-3 outline-hidden select-none focus:bg-accent focus:text-accent-foreground data-inset:pl-9.5 data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
|
|
188
188
|
className
|
|
189
189
|
)}
|
|
190
190
|
{...props}
|
|
@@ -214,7 +214,7 @@ function ContextMenuShortcut({ className, ...props }: React.ComponentProps<'span
|
|
|
214
214
|
<span
|
|
215
215
|
data-slot="context-menu-shortcut"
|
|
216
216
|
className={cn(
|
|
217
|
-
'ml-auto
|
|
217
|
+
'ml-auto tracking-widest text-muted-foreground group-focus/context-menu-item:text-accent-foreground',
|
|
218
218
|
className
|
|
219
219
|
)}
|
|
220
220
|
{...props}
|
|
@@ -49,7 +49,7 @@ function DialogContent({
|
|
|
49
49
|
<DialogPrimitive.Popup
|
|
50
50
|
data-slot="dialog-content"
|
|
51
51
|
className={cn(
|
|
52
|
-
'fixed top-1/2 left-1/2 z-50 grid w-full max-w-md -translate-x-1/2 -translate-y-1/2 gap-6 rounded
|
|
52
|
+
'fixed top-1/2 left-1/2 z-50 grid w-full max-w-md -translate-x-1/2 -translate-y-1/2 gap-6 rounded bg-popover p-6 text-popover-foreground ring-1 ring-foreground/5 duration-100 outline-none data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95',
|
|
53
53
|
className
|
|
54
54
|
)}
|
|
55
55
|
{...props}
|
|
@@ -105,7 +105,7 @@ function DialogTitle({ className, ...props }: DialogPrimitive.Title.Props) {
|
|
|
105
105
|
return (
|
|
106
106
|
<DialogPrimitive.Title
|
|
107
107
|
data-slot="dialog-title"
|
|
108
|
-
className={cn('cn-font-heading
|
|
108
|
+
className={cn('cn-font-heading leading-none font-medium', className)}
|
|
109
109
|
{...props}
|
|
110
110
|
/>
|
|
111
111
|
)
|
|
@@ -116,7 +116,7 @@ function DialogDescription({ className, ...props }: DialogPrimitive.Description.
|
|
|
116
116
|
<DialogPrimitive.Description
|
|
117
117
|
data-slot="dialog-description"
|
|
118
118
|
className={cn(
|
|
119
|
-
'text-
|
|
119
|
+
'text-muted-foreground *:[a]:underline *:[a]:underline-offset-3 *:[a]:hover:text-foreground',
|
|
120
120
|
className
|
|
121
121
|
)}
|
|
122
122
|
{...props}
|
|
@@ -85,7 +85,7 @@ function DrawerSwipeHandle({ className, ...props }: React.ComponentProps<'div'>)
|
|
|
85
85
|
data-slot="drawer-swipe-handle"
|
|
86
86
|
aria-hidden="true"
|
|
87
87
|
className={cn(
|
|
88
|
-
'relative z-10 flex shrink-0 cursor-grab transition-opacity duration-200 group-data-nested-drawer-open/drawer-popup:opacity-0 group-data-nested-drawer-swiping/drawer-popup:opacity-100 group-data-[swipe-axis=x]/drawer-popup:h-full group-data-[swipe-axis=x]/drawer-popup:w-3 group-data-[swipe-axis=x]/drawer-popup:items-center group-data-[swipe-axis=y]/drawer-popup:h-3 group-data-[swipe-axis=y]/drawer-popup:w-full group-data-[swipe-axis=y]/drawer-popup:justify-center group-data-[swipe-direction=down]/drawer-popup:items-end group-data-[swipe-direction=left]/drawer-popup:order-last group-data-[swipe-direction=left]/drawer-popup:justify-start group-data-[swipe-direction=right]/drawer-popup:justify-end group-data-[swipe-direction=up]/drawer-popup:order-last group-data-[swipe-direction=up]/drawer-popup:items-start after:block after:shrink-0 after:rounded
|
|
88
|
+
'relative z-10 flex shrink-0 cursor-grab transition-opacity duration-200 group-data-nested-drawer-open/drawer-popup:opacity-0 group-data-nested-drawer-swiping/drawer-popup:opacity-100 group-data-[swipe-axis=x]/drawer-popup:h-full group-data-[swipe-axis=x]/drawer-popup:w-3 group-data-[swipe-axis=x]/drawer-popup:items-center group-data-[swipe-axis=y]/drawer-popup:h-3 group-data-[swipe-axis=y]/drawer-popup:w-full group-data-[swipe-axis=y]/drawer-popup:justify-center group-data-[swipe-direction=down]/drawer-popup:items-end group-data-[swipe-direction=left]/drawer-popup:order-last group-data-[swipe-direction=left]/drawer-popup:justify-start group-data-[swipe-direction=right]/drawer-popup:justify-end group-data-[swipe-direction=up]/drawer-popup:order-last group-data-[swipe-direction=up]/drawer-popup:items-start after:block after:shrink-0 after:rounded after:bg-muted group-data-[swipe-axis=x]/drawer-popup:after:h-[100px] group-data-[swipe-axis=x]/drawer-popup:after:w-1.5 group-data-[swipe-axis=y]/drawer-popup:after:h-1.5 group-data-[swipe-axis=y]/drawer-popup:after:w-[100px] active:cursor-grabbing',
|
|
89
89
|
className
|
|
90
90
|
)}
|
|
91
91
|
{...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
|
|
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]',
|
|
115
115
|
// Nested.
|
|
116
116
|
'data-nested-drawer-open:overflow-hidden data-nested-drawer-open:brightness-95',
|
|
117
117
|
// Bleed.
|
|
@@ -142,7 +142,7 @@ function DrawerContent({ className, children, ...props }: DrawerPrimitive.Popup.
|
|
|
142
142
|
<DrawerPrimitive.Content
|
|
143
143
|
data-slot="drawer-content"
|
|
144
144
|
className={cn(
|
|
145
|
-
'flex min-h-0 flex-1 flex-col overflow-hidden overscroll-contain
|
|
145
|
+
'flex min-h-0 flex-1 flex-col overflow-hidden overscroll-contain transition-opacity duration-300 ease-[cubic-bezier(0.45,1.005,0,1.005)] select-text group-data-nested-drawer-open/drawer-popup:opacity-0 group-data-nested-drawer-swiping/drawer-popup:opacity-100 group-data-swiping/drawer-popup:select-none'
|
|
146
146
|
)}
|
|
147
147
|
>
|
|
148
148
|
{children}
|
|
@@ -180,7 +180,7 @@ function DrawerTitle({ className, ...props }: DrawerPrimitive.Title.Props) {
|
|
|
180
180
|
return (
|
|
181
181
|
<DrawerPrimitive.Title
|
|
182
182
|
data-slot="drawer-title"
|
|
183
|
-
className={cn('cn-font-heading
|
|
183
|
+
className={cn('cn-font-heading font-medium text-foreground', className)}
|
|
184
184
|
{...props}
|
|
185
185
|
/>
|
|
186
186
|
)
|
|
@@ -190,7 +190,7 @@ function DrawerDescription({ className, ...props }: DrawerPrimitive.Description.
|
|
|
190
190
|
return (
|
|
191
191
|
<DrawerPrimitive.Description
|
|
192
192
|
data-slot="drawer-description"
|
|
193
|
-
className={cn('text-
|
|
193
|
+
className={cn('text-balance text-muted-foreground', className)}
|
|
194
194
|
{...props}
|
|
195
195
|
/>
|
|
196
196
|
)
|
|
@@ -38,7 +38,7 @@ function DropdownMenuContent({
|
|
|
38
38
|
<MenuPrimitive.Popup
|
|
39
39
|
data-slot="dropdown-menu-content"
|
|
40
40
|
className={cn(
|
|
41
|
-
'cn-menu-target cn-menu-translucent z-50 max-h-(--available-height) w-(--anchor-width) min-w-48 origin-(--transform-origin) overflow-x-hidden overflow-y-auto rounded
|
|
41
|
+
'cn-menu-target cn-menu-translucent z-50 max-h-(--available-height) w-(--anchor-width) min-w-48 origin-(--transform-origin) overflow-x-hidden overflow-y-auto rounded bg-popover p-1 text-popover-foreground shadow-2xl ring-1 ring-foreground/5 duration-100 outline-none data-[side=bottom]:slide-in-from-top-2 data-[side=inline-end]:slide-in-from-left-2 data-[side=inline-start]:slide-in-from-right-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:overflow-hidden data-closed:fade-out-0 data-closed:zoom-out-95',
|
|
42
42
|
className
|
|
43
43
|
)}
|
|
44
44
|
{...props}
|
|
@@ -63,7 +63,7 @@ function DropdownMenuLabel({
|
|
|
63
63
|
<MenuPrimitive.GroupLabel
|
|
64
64
|
data-slot="dropdown-menu-label"
|
|
65
65
|
data-inset={inset}
|
|
66
|
-
className={cn('px-3 py-2.5 text-
|
|
66
|
+
className={cn('px-3 py-2.5 text-muted-foreground data-inset:pl-9.5', className)}
|
|
67
67
|
{...props}
|
|
68
68
|
/>
|
|
69
69
|
)
|
|
@@ -84,7 +84,7 @@ function DropdownMenuItem({
|
|
|
84
84
|
data-inset={inset}
|
|
85
85
|
data-variant={variant}
|
|
86
86
|
className={cn(
|
|
87
|
-
"group/dropdown-menu-item relative flex cursor-default items-center gap-2.5 rounded
|
|
87
|
+
"group/dropdown-menu-item relative flex cursor-default items-center gap-2.5 rounded px-3 py-2 outline-hidden select-none focus:bg-accent focus:text-accent-foreground not-data-[variant=destructive]:focus:**:text-accent-foreground data-inset:pl-9.5 data-[variant=destructive]:text-destructive data-[variant=destructive]:focus:bg-destructive/10 data-[variant=destructive]:focus:text-destructive data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 data-[variant=destructive]:*:[svg]:text-destructive",
|
|
88
88
|
className
|
|
89
89
|
)}
|
|
90
90
|
{...props}
|
|
@@ -109,7 +109,7 @@ function DropdownMenuSubTrigger({
|
|
|
109
109
|
data-slot="dropdown-menu-sub-trigger"
|
|
110
110
|
data-inset={inset}
|
|
111
111
|
className={cn(
|
|
112
|
-
"flex cursor-default items-center gap-2 rounded
|
|
112
|
+
"flex cursor-default items-center gap-2 rounded px-3 py-2 outline-hidden select-none focus:bg-accent focus:text-accent-foreground not-data-[variant=destructive]:focus:**:text-accent-foreground data-inset:pl-9.5 data-popup-open:bg-accent data-popup-open:text-accent-foreground data-open:bg-accent data-open:text-accent-foreground [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
|
|
113
113
|
className
|
|
114
114
|
)}
|
|
115
115
|
{...props}
|
|
@@ -132,7 +132,7 @@ function DropdownMenuSubContent({
|
|
|
132
132
|
<DropdownMenuContent
|
|
133
133
|
data-slot="dropdown-menu-sub-content"
|
|
134
134
|
className={cn(
|
|
135
|
-
'cn-menu-target cn-menu-translucent w-auto min-w-36 rounded
|
|
135
|
+
'cn-menu-target cn-menu-translucent w-auto min-w-36 rounded bg-popover p-1 text-popover-foreground shadow-2xl ring-1 ring-foreground/5 duration-100 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95',
|
|
136
136
|
className
|
|
137
137
|
)}
|
|
138
138
|
align={align}
|
|
@@ -158,7 +158,7 @@ function DropdownMenuCheckboxItem({
|
|
|
158
158
|
data-slot="dropdown-menu-checkbox-item"
|
|
159
159
|
data-inset={inset}
|
|
160
160
|
className={cn(
|
|
161
|
-
"relative flex cursor-default items-center gap-2.5 rounded
|
|
161
|
+
"relative flex cursor-default items-center gap-2.5 rounded py-2 pr-8 pl-3 outline-hidden select-none focus:bg-accent focus:text-accent-foreground focus:**:text-accent-foreground data-inset:pl-9.5 data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
|
|
162
162
|
className
|
|
163
163
|
)}
|
|
164
164
|
checked={checked}
|
|
@@ -194,7 +194,7 @@ function DropdownMenuRadioItem({
|
|
|
194
194
|
data-slot="dropdown-menu-radio-item"
|
|
195
195
|
data-inset={inset}
|
|
196
196
|
className={cn(
|
|
197
|
-
"relative flex cursor-default items-center gap-2.5 rounded
|
|
197
|
+
"relative flex cursor-default items-center gap-2.5 rounded py-2 pr-8 pl-3 outline-hidden select-none focus:bg-accent focus:text-accent-foreground focus:**:text-accent-foreground data-inset:pl-9.5 data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
|
|
198
198
|
className
|
|
199
199
|
)}
|
|
200
200
|
{...props}
|
|
@@ -227,7 +227,7 @@ function DropdownMenuShortcut({ className, ...props }: React.ComponentProps<'spa
|
|
|
227
227
|
<span
|
|
228
228
|
data-slot="dropdown-menu-shortcut"
|
|
229
229
|
className={cn(
|
|
230
|
-
'ml-auto
|
|
230
|
+
'ml-auto tracking-widest text-muted-foreground group-focus/dropdown-menu-item:text-accent-foreground',
|
|
231
231
|
className
|
|
232
232
|
)}
|
|
233
233
|
{...props}
|
|
@@ -7,7 +7,7 @@ function Empty({ className, ...props }: React.ComponentProps<'div'>) {
|
|
|
7
7
|
<div
|
|
8
8
|
data-slot="empty"
|
|
9
9
|
className={cn(
|
|
10
|
-
'flex w-full min-w-0 flex-1 flex-col items-center justify-center gap-4 rounded
|
|
10
|
+
'flex w-full min-w-0 flex-1 flex-col items-center justify-center gap-4 rounded border-dashed p-12 text-center text-balance',
|
|
11
11
|
className
|
|
12
12
|
)}
|
|
13
13
|
{...props}
|
|
@@ -31,7 +31,7 @@ const emptyMediaVariants = cva(
|
|
|
31
31
|
variants: {
|
|
32
32
|
variant: {
|
|
33
33
|
default: 'bg-transparent',
|
|
34
|
-
icon: "flex size-10 shrink-0 items-center justify-center rounded
|
|
34
|
+
icon: "flex size-10 shrink-0 items-center justify-center rounded bg-muted text-foreground [&_svg:not([class*='size-'])]:size-6"
|
|
35
35
|
}
|
|
36
36
|
},
|
|
37
37
|
defaultVariants: {
|
|
@@ -59,7 +59,7 @@ function EmptyTitle({ className, ...props }: React.ComponentProps<'div'>) {
|
|
|
59
59
|
return (
|
|
60
60
|
<div
|
|
61
61
|
data-slot="empty-title"
|
|
62
|
-
className={cn('cn-font-heading
|
|
62
|
+
className={cn('cn-font-heading font-medium tracking-tight', className)}
|
|
63
63
|
{...props}
|
|
64
64
|
/>
|
|
65
65
|
)
|
|
@@ -70,7 +70,7 @@ function EmptyDescription({ className, ...props }: React.ComponentProps<'p'>) {
|
|
|
70
70
|
<div
|
|
71
71
|
data-slot="empty-description"
|
|
72
72
|
className={cn(
|
|
73
|
-
'text-
|
|
73
|
+
'text-muted-foreground [&>a]:underline [&>a]:underline-offset-4 [&>a:hover]:text-primary',
|
|
74
74
|
className
|
|
75
75
|
)}
|
|
76
76
|
{...props}
|
|
@@ -83,7 +83,7 @@ function EmptyContent({ className, ...props }: React.ComponentProps<'div'>) {
|
|
|
83
83
|
<div
|
|
84
84
|
data-slot="empty-content"
|
|
85
85
|
className={cn(
|
|
86
|
-
'flex w-full max-w-sm min-w-0 flex-col items-center gap-4 text-
|
|
86
|
+
'flex w-full max-w-sm min-w-0 flex-col items-center gap-4 text-balance',
|
|
87
87
|
className
|
|
88
88
|
)}
|
|
89
89
|
{...props}
|
|
@@ -29,10 +29,7 @@ function FieldLegend({
|
|
|
29
29
|
<legend
|
|
30
30
|
data-slot="field-legend"
|
|
31
31
|
data-variant={variant}
|
|
32
|
-
className={cn(
|
|
33
|
-
'mb-3 font-medium data-[variant=label]:text-sm data-[variant=legend]:text-base',
|
|
34
|
-
className
|
|
35
|
-
)}
|
|
32
|
+
className={cn('mb-3 font-medium', className)}
|
|
36
33
|
{...props}
|
|
37
34
|
/>
|
|
38
35
|
)
|
|
@@ -95,7 +92,7 @@ function FieldLabel({ className, ...props }: React.ComponentProps<typeof Label>)
|
|
|
95
92
|
<Label
|
|
96
93
|
data-slot="field-label"
|
|
97
94
|
className={cn(
|
|
98
|
-
'group/field-label peer/field-label flex w-fit gap-2 leading-snug group-data-[disabled=true]/field:opacity-50 has-data-checked:border-primary/30 has-data-checked:bg-primary/5 has-[>[data-slot=field]]:rounded
|
|
95
|
+
'group/field-label peer/field-label flex w-fit gap-2 leading-snug group-data-[disabled=true]/field:opacity-50 has-data-checked:border-primary/30 has-data-checked:bg-primary/5 has-[>[data-slot=field]]:rounded has-[>[data-slot=field]]:border *:data-[slot=field]:p-4',
|
|
99
96
|
'has-[>[data-slot=field]]:w-full has-[>[data-slot=field]]:flex-col',
|
|
100
97
|
className
|
|
101
98
|
)}
|
|
@@ -109,7 +106,7 @@ function FieldTitle({ className, ...props }: React.ComponentProps<'div'>) {
|
|
|
109
106
|
<div
|
|
110
107
|
data-slot="field-label"
|
|
111
108
|
className={cn(
|
|
112
|
-
'flex w-fit items-center gap-2
|
|
109
|
+
'flex w-fit items-center gap-2 font-medium group-data-[disabled=true]/field:opacity-50',
|
|
113
110
|
className
|
|
114
111
|
)}
|
|
115
112
|
{...props}
|
|
@@ -122,7 +119,7 @@ function FieldDescription({ className, ...props }: React.ComponentProps<'p'>) {
|
|
|
122
119
|
<p
|
|
123
120
|
data-slot="field-description"
|
|
124
121
|
className={cn(
|
|
125
|
-
'text-left
|
|
122
|
+
'text-left leading-normal font-normal text-muted-foreground group-has-data-horizontal/field:text-balance [[data-variant=legend]+&]:-mt-1.5',
|
|
126
123
|
'last:mt-0 nth-last-2:-mt-1',
|
|
127
124
|
'[&>a]:underline [&>a]:underline-offset-4 [&>a:hover]:text-primary',
|
|
128
125
|
className
|
|
@@ -143,10 +140,7 @@ function FieldSeparator({
|
|
|
143
140
|
<div
|
|
144
141
|
data-slot="field-separator"
|
|
145
142
|
data-content={!!children}
|
|
146
|
-
className={cn(
|
|
147
|
-
'relative -my-2 h-5 text-sm group-data-[variant=outline]/field-group:-mb-2',
|
|
148
|
-
className
|
|
149
|
-
)}
|
|
143
|
+
className={cn('relative -my-2 h-5 group-data-[variant=outline]/field-group:-mb-2', className)}
|
|
150
144
|
{...props}
|
|
151
145
|
>
|
|
152
146
|
<Separator className="absolute inset-0 top-1/2" />
|
|
@@ -200,7 +194,7 @@ function FieldError({
|
|
|
200
194
|
<div
|
|
201
195
|
role="alert"
|
|
202
196
|
data-slot="field-error"
|
|
203
|
-
className={cn('
|
|
197
|
+
className={cn('font-normal text-destructive', className)}
|
|
204
198
|
{...props}
|
|
205
199
|
>
|
|
206
200
|
{content}
|
|
@@ -122,7 +122,7 @@ const FormDescription = React.forwardRef<
|
|
|
122
122
|
<p
|
|
123
123
|
ref={ref}
|
|
124
124
|
id={formDescriptionId}
|
|
125
|
-
className={cn('text-
|
|
125
|
+
className={cn('text-muted-foreground', className)}
|
|
126
126
|
{...props}
|
|
127
127
|
/>
|
|
128
128
|
)
|
|
@@ -144,7 +144,7 @@ const FormMessage = React.forwardRef<
|
|
|
144
144
|
<p
|
|
145
145
|
ref={ref}
|
|
146
146
|
id={formMessageId}
|
|
147
|
-
className={cn('
|
|
147
|
+
className={cn('font-medium text-destructive', className)}
|
|
148
148
|
{...props}
|
|
149
149
|
>
|
|
150
150
|
{body}
|
|
@@ -32,7 +32,7 @@ function HoverCardContent({
|
|
|
32
32
|
<PreviewCardPrimitive.Popup
|
|
33
33
|
data-slot="hover-card-content"
|
|
34
34
|
className={cn(
|
|
35
|
-
'z-50 w-72 origin-(--transform-origin) rounded
|
|
35
|
+
'z-50 w-72 origin-(--transform-origin) rounded bg-popover p-4 text-popover-foreground shadow-2xl ring-1 ring-foreground/5 outline-hidden duration-100 data-[side=bottom]:slide-in-from-top-2 data-[side=inline-end]:slide-in-from-left-2 data-[side=inline-start]:slide-in-from-right-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 data-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',
|
|
36
36
|
className
|
|
37
37
|
)}
|
|
38
38
|
{...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
|
|
17
|
+
'group/input-group relative flex h-9 w-full min-w-0 items-center rounded border border-input 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}
|
|
@@ -23,7 +23,7 @@ function InputGroup({ className, ...props }: React.ComponentProps<'div'>) {
|
|
|
23
23
|
}
|
|
24
24
|
|
|
25
25
|
const inputGroupAddonVariants = cva(
|
|
26
|
-
"flex h-auto cursor-text items-center justify-center gap-2 py-2
|
|
26
|
+
"flex h-auto cursor-text items-center justify-center gap-2 py-2 font-medium text-muted-foreground select-none group-data-[disabled=true]/input-group:opacity-50 **:data-[slot=kbd]:rounded **:data-[slot=kbd]:bg-muted-foreground/10 **:data-[slot=kbd]:px-1.5 [&>svg:not([class*='size-'])]:size-4",
|
|
27
27
|
{
|
|
28
28
|
variants: {
|
|
29
29
|
align: {
|
|
@@ -70,7 +70,7 @@ function InputGroupAddon({
|
|
|
70
70
|
)
|
|
71
71
|
}
|
|
72
72
|
|
|
73
|
-
const inputGroupButtonVariants = cva('flex items-center gap-2 rounded
|
|
73
|
+
const inputGroupButtonVariants = cva('flex items-center gap-2 rounded shadow-none', {
|
|
74
74
|
variants: {
|
|
75
75
|
size: {
|
|
76
76
|
xs: "h-6 gap-1 px-1.5 [&>svg:not([class*='size-'])]:size-3.5",
|
|
@@ -109,7 +109,7 @@ function InputGroupText({ className, ...props }: React.ComponentProps<'span'>) {
|
|
|
109
109
|
return (
|
|
110
110
|
<span
|
|
111
111
|
className={cn(
|
|
112
|
-
"flex items-center gap-2 text-
|
|
112
|
+
"flex items-center gap-2 text-muted-foreground [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4",
|
|
113
113
|
className
|
|
114
114
|
)}
|
|
115
115
|
{...props}
|
|
@@ -122,7 +122,7 @@ function InputGroupInput({ className, ...props }: React.ComponentProps<'input'>)
|
|
|
122
122
|
<Input
|
|
123
123
|
data-slot="input-group-control"
|
|
124
124
|
className={cn(
|
|
125
|
-
'flex-1
|
|
125
|
+
'flex-1 border-0 bg-transparent shadow-none ring-0 focus-visible:ring-0 aria-invalid:ring-0',
|
|
126
126
|
className
|
|
127
127
|
)}
|
|
128
128
|
{...props}
|
|
@@ -135,7 +135,7 @@ function InputGroupTextarea({ className, ...props }: React.ComponentProps<'texta
|
|
|
135
135
|
<Textarea
|
|
136
136
|
data-slot="input-group-control"
|
|
137
137
|
className={cn(
|
|
138
|
-
'flex-1 resize-none
|
|
138
|
+
'flex-1 resize-none border-0 bg-transparent py-2 shadow-none ring-0 focus-visible:ring-0 aria-invalid:ring-0',
|
|
139
139
|
className
|
|
140
140
|
)}
|
|
141
141
|
{...props}
|
|
@@ -31,7 +31,7 @@ function InputOTPGroup({ className, ...props }: React.ComponentProps<'div'>) {
|
|
|
31
31
|
<div
|
|
32
32
|
data-slot="input-otp-group"
|
|
33
33
|
className={cn(
|
|
34
|
-
'flex items-center rounded
|
|
34
|
+
'flex items-center rounded has-aria-invalid:border-destructive has-aria-invalid:ring-[3px] has-aria-invalid:ring-destructive/20',
|
|
35
35
|
className
|
|
36
36
|
)}
|
|
37
37
|
{...props}
|
|
@@ -54,7 +54,7 @@ function InputOTPSlot({
|
|
|
54
54
|
data-slot="input-otp-slot"
|
|
55
55
|
data-active={isActive}
|
|
56
56
|
className={cn(
|
|
57
|
-
'relative flex size-9 items-center justify-center border-y border-r border-input bg-input/30
|
|
57
|
+
'relative flex size-9 items-center justify-center border-y border-r border-input 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
|
|
11
|
+
'h-9 w-full min-w-0 rounded border border-input bg-input/30 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}
|
|
@@ -32,7 +32,7 @@ function ItemSeparator({ className, ...props }: React.ComponentProps<typeof Sepa
|
|
|
32
32
|
}
|
|
33
33
|
|
|
34
34
|
const itemVariants = cva(
|
|
35
|
-
'group/item flex w-full flex-wrap items-center rounded
|
|
35
|
+
'group/item flex w-full flex-wrap items-center rounded border transition-colors duration-100 outline-none focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 [a]:transition-colors [a]:hover:bg-muted',
|
|
36
36
|
{
|
|
37
37
|
variants: {
|
|
38
38
|
variant: {
|
|
@@ -85,7 +85,7 @@ const itemMediaVariants = cva(
|
|
|
85
85
|
default: 'bg-transparent',
|
|
86
86
|
icon: "[&_svg:not([class*='size-'])]:size-4",
|
|
87
87
|
image:
|
|
88
|
-
'size-10 overflow-hidden rounded
|
|
88
|
+
'size-10 overflow-hidden rounded group-data-[size=sm]/item:size-8 group-data-[size=xs]/item:size-6 group-data-[size=xs]/item:rounded [&_img]:size-full [&_img]:object-cover'
|
|
89
89
|
}
|
|
90
90
|
},
|
|
91
91
|
defaultVariants: {
|
|
@@ -127,7 +127,7 @@ function ItemTitle({ className, ...props }: React.ComponentProps<'div'>) {
|
|
|
127
127
|
<div
|
|
128
128
|
data-slot="item-title"
|
|
129
129
|
className={cn(
|
|
130
|
-
'line-clamp-1 flex w-fit items-center gap-2
|
|
130
|
+
'line-clamp-1 flex w-fit items-center gap-2 leading-snug font-medium underline-offset-4',
|
|
131
131
|
className
|
|
132
132
|
)}
|
|
133
133
|
{...props}
|
|
@@ -140,7 +140,7 @@ function ItemDescription({ className, ...props }: React.ComponentProps<'p'>) {
|
|
|
140
140
|
<p
|
|
141
141
|
data-slot="item-description"
|
|
142
142
|
className={cn(
|
|
143
|
-
'line-clamp-2 text-left
|
|
143
|
+
'line-clamp-2 text-left font-normal text-muted-foreground [&>a]:underline [&>a]:underline-offset-4 [&>a:hover]:text-primary',
|
|
144
144
|
className
|
|
145
145
|
)}
|
|
146
146
|
{...props}
|
|
@@ -5,7 +5,7 @@ function Kbd({ className, ...props }: React.ComponentProps<'kbd'>) {
|
|
|
5
5
|
<kbd
|
|
6
6
|
data-slot="kbd"
|
|
7
7
|
className={cn(
|
|
8
|
-
"pointer-events-none inline-flex h-5 w-fit min-w-5 items-center justify-center gap-1 rounded
|
|
8
|
+
"pointer-events-none inline-flex h-5 w-fit min-w-5 items-center justify-center gap-1 rounded bg-muted px-1 font-sans font-medium text-muted-foreground select-none in-data-[slot=tooltip-content]:bg-background/20 in-data-[slot=tooltip-content]:text-background [&_svg:not([class*='size-'])]:size-3",
|
|
9
9
|
className
|
|
10
10
|
)}
|
|
11
11
|
{...props}
|
|
@@ -11,7 +11,7 @@ const Label = React.forwardRef<HTMLLabelElement, React.ComponentProps<'label'>>(
|
|
|
11
11
|
htmlFor={htmlFor}
|
|
12
12
|
data-slot="label"
|
|
13
13
|
className={cn(
|
|
14
|
-
'flex items-center gap-2
|
|
14
|
+
'flex items-center gap-2 leading-none font-medium select-none group-data-[disabled=true]:pointer-events-none group-data-[disabled=true]:opacity-50 peer-disabled:cursor-not-allowed peer-disabled:opacity-50',
|
|
15
15
|
className
|
|
16
16
|
)}
|
|
17
17
|
{...props}
|
|
@@ -25,7 +25,7 @@ function Menubar({ className, ...props }: MenubarPrimitive.Props) {
|
|
|
25
25
|
return (
|
|
26
26
|
<MenubarPrimitive
|
|
27
27
|
data-slot="menubar"
|
|
28
|
-
className={cn('flex h-9 items-center rounded
|
|
28
|
+
className={cn('flex h-9 items-center rounded border p-1', className)}
|
|
29
29
|
{...props}
|
|
30
30
|
/>
|
|
31
31
|
)
|
|
@@ -48,7 +48,7 @@ function MenubarTrigger({ className, ...props }: React.ComponentProps<typeof Dro
|
|
|
48
48
|
<DropdownMenuTrigger
|
|
49
49
|
data-slot="menubar-trigger"
|
|
50
50
|
className={cn(
|
|
51
|
-
'flex items-center rounded
|
|
51
|
+
'flex items-center rounded px-2 py-0.75 font-medium outline-hidden select-none hover:bg-muted aria-expanded:bg-muted',
|
|
52
52
|
className
|
|
53
53
|
)}
|
|
54
54
|
{...props}
|
|
@@ -70,7 +70,7 @@ function MenubarContent({
|
|
|
70
70
|
alignOffset={alignOffset}
|
|
71
71
|
sideOffset={sideOffset}
|
|
72
72
|
className={cn(
|
|
73
|
-
'cn-menu-target cn-menu-translucent min-w-48 rounded
|
|
73
|
+
'cn-menu-target cn-menu-translucent min-w-48 rounded bg-popover p-1 text-popover-foreground shadow-2xl ring-1 ring-foreground/5 duration-100 data-[side=bottom]:slide-in-from-top-2 data-[side=inline-end]:slide-in-from-left-2 data-[side=inline-start]:slide-in-from-right-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95',
|
|
74
74
|
className
|
|
75
75
|
)}
|
|
76
76
|
{...props}
|
|
@@ -90,7 +90,7 @@ function MenubarItem({
|
|
|
90
90
|
data-inset={inset}
|
|
91
91
|
data-variant={variant}
|
|
92
92
|
className={cn(
|
|
93
|
-
"group/menubar-item gap-2.5 rounded
|
|
93
|
+
"group/menubar-item gap-2.5 rounded px-3 py-2 focus:bg-accent focus:text-accent-foreground not-data-[variant=destructive]:focus:**:text-accent-foreground data-inset:pl-9.5 data-[variant=destructive]:text-destructive data-[variant=destructive]:focus:bg-destructive/10 data-[variant=destructive]:focus:text-destructive data-disabled:opacity-50 [&_svg:not([class*='size-'])]:size-4 data-[variant=destructive]:*:[svg]:text-destructive!",
|
|
94
94
|
className
|
|
95
95
|
)}
|
|
96
96
|
{...props}
|
|
@@ -112,7 +112,7 @@ function MenubarCheckboxItem({
|
|
|
112
112
|
data-slot="menubar-checkbox-item"
|
|
113
113
|
data-inset={inset}
|
|
114
114
|
className={cn(
|
|
115
|
-
'relative flex cursor-default items-center gap-2.5 rounded
|
|
115
|
+
'relative flex cursor-default items-center gap-2.5 rounded py-2 pr-3 pl-9.5 outline-hidden select-none focus:bg-accent focus:text-accent-foreground focus:**:text-accent-foreground data-inset:pl-9.5 data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0',
|
|
116
116
|
className
|
|
117
117
|
)}
|
|
118
118
|
checked={checked}
|
|
@@ -145,7 +145,7 @@ function MenubarRadioItem({
|
|
|
145
145
|
data-slot="menubar-radio-item"
|
|
146
146
|
data-inset={inset}
|
|
147
147
|
className={cn(
|
|
148
|
-
"relative flex cursor-default items-center gap-2.5 rounded
|
|
148
|
+
"relative flex cursor-default items-center gap-2.5 rounded py-2 pr-3 pl-9.5 outline-hidden select-none focus:bg-accent focus:text-accent-foreground focus:**:text-accent-foreground data-inset:pl-9.5 data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
|
|
149
149
|
className
|
|
150
150
|
)}
|
|
151
151
|
{...props}
|
|
@@ -171,7 +171,7 @@ function MenubarLabel({
|
|
|
171
171
|
<DropdownMenuLabel
|
|
172
172
|
data-slot="menubar-label"
|
|
173
173
|
data-inset={inset}
|
|
174
|
-
className={cn('px-3.5 py-2.5 text-
|
|
174
|
+
className={cn('px-3.5 py-2.5 text-muted-foreground data-inset:pl-9.5', className)}
|
|
175
175
|
{...props}
|
|
176
176
|
/>
|
|
177
177
|
)
|
|
@@ -198,7 +198,7 @@ function MenubarShortcut({
|
|
|
198
198
|
<DropdownMenuShortcut
|
|
199
199
|
data-slot="menubar-shortcut"
|
|
200
200
|
className={cn(
|
|
201
|
-
'ml-auto
|
|
201
|
+
'ml-auto tracking-widest text-muted-foreground group-focus/menubar-item:text-accent-foreground',
|
|
202
202
|
className
|
|
203
203
|
)}
|
|
204
204
|
{...props}
|
|
@@ -222,7 +222,7 @@ function MenubarSubTrigger({
|
|
|
222
222
|
data-slot="menubar-sub-trigger"
|
|
223
223
|
data-inset={inset}
|
|
224
224
|
className={cn(
|
|
225
|
-
"gap-2 rounded
|
|
225
|
+
"gap-2 rounded px-3 py-2 focus:bg-accent focus:text-accent-foreground data-inset:pl-9.5 data-open:bg-accent data-open:text-accent-foreground [&_svg:not([class*='size-'])]:size-4",
|
|
226
226
|
className
|
|
227
227
|
)}
|
|
228
228
|
{...props}
|
|
@@ -238,7 +238,7 @@ function MenubarSubContent({
|
|
|
238
238
|
<DropdownMenuSubContent
|
|
239
239
|
data-slot="menubar-sub-content"
|
|
240
240
|
className={cn(
|
|
241
|
-
'cn-menu-target cn-menu-translucent min-w-32 rounded
|
|
241
|
+
'cn-menu-target cn-menu-translucent min-w-32 rounded bg-popover p-1 text-popover-foreground shadow-2xl ring-1 ring-foreground/5 duration-100 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95',
|
|
242
242
|
className
|
|
243
243
|
)}
|
|
244
244
|
{...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
|
|
22
|
+
className="h-9 w-full min-w-0 appearance-none rounded border border-input 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
|