@01.software/ui 0.2.0 → 0.2.3
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/CHANGELOG.md +25 -0
- package/README.md +27 -4
- package/dist/accordion.js +1 -1
- package/dist/badge.js +1 -1
- package/dist/button.js +1 -1
- package/dist/checkbox.js +1 -1
- package/dist/command-menu.d.ts +1 -1
- package/dist/command-menu.js +4 -4
- package/dist/dialog.js +1 -1
- package/dist/input.js +1 -1
- package/dist/internal/menu-styles.d.ts +1 -1
- package/dist/internal/menu-styles.js +1 -1
- package/dist/menubar.d.ts +2 -2
- package/dist/menubar.js +42 -4
- package/dist/radio-group.js +1 -1
- package/dist/select.js +2 -2
- package/dist/slider.js +1 -1
- package/dist/styles.css +1 -1
- package/dist/switch.js +1 -1
- package/dist/tabs.js +4 -4
- package/dist/textarea.js +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,30 @@
|
|
|
1
1
|
# @01.software/ui
|
|
2
2
|
|
|
3
|
+
## 0.2.3
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- c621ec1: Unify keyboard focus around shared width, color and offset tokens: a muted 1px
|
|
8
|
+
outline with a 2px outer offset, inset menu indicators and destructive invalid
|
|
9
|
+
fields. Preserve existing `--ui-focus` and `--ui-focus-on-solid` color overrides and
|
|
10
|
+
preserve the system high-contrast fallback.
|
|
11
|
+
|
|
12
|
+
## 0.2.2
|
|
13
|
+
|
|
14
|
+
### Patch Changes
|
|
15
|
+
|
|
16
|
+
- 4e22218: Use a muted 1px inset keyboard focus indicator, with compact-control and checked-state contrast handling. Preserve invalid-field focus and system high-contrast visibility. Document card focus ownership and the existing TabsContent tabIndex opt-out.
|
|
17
|
+
|
|
18
|
+
Align compact tab triggers with the default 28px minimum height and let long labels wrap without overflowing their inner highlight. Apply the shared inset focus treatment to standalone command-menu triggers as well as composed controls.
|
|
19
|
+
|
|
20
|
+
Keep dropdown, context and menubar submenus within Radix’s available width on narrow screens.
|
|
21
|
+
|
|
22
|
+
## 0.2.1
|
|
23
|
+
|
|
24
|
+
### Patch Changes
|
|
25
|
+
|
|
26
|
+
- f27ede2: Keep the newly opened `Menubar` menu open when the pointer moves between open menus while the previous menu plays its exit motion.
|
|
27
|
+
|
|
3
28
|
## 0.2.0
|
|
4
29
|
|
|
5
30
|
### Minor Changes
|
package/README.md
CHANGED
|
@@ -95,8 +95,21 @@ and Button heights align at 32px; compact Button/Select sizes are 28px. Let
|
|
|
95
95
|
long labels wrap and use responsive Field layout where labels need more room.
|
|
96
96
|
|
|
97
97
|
Tabs use a compact segmented tray by default; `variant="line"` and vertical
|
|
98
|
-
orientation support denser settings/navigation.
|
|
99
|
-
|
|
98
|
+
orientation support denser settings/navigation. Both default and
|
|
99
|
+
`visual="compact"` triggers have a 28px minimum height; longer labels may wrap
|
|
100
|
+
and grow instead of overflowing. The compact inner highlight stays within its
|
|
101
|
+
trigger. All interactive primitives keep visible keyboard focus: a muted 1px outline
|
|
102
|
+
with a 2px outer offset. Menu/list items use a -1px inset so the indicator
|
|
103
|
+
stays inside the popup. Invalid fields, including checked controls, use the
|
|
104
|
+
destructive focus color. Forced colors use a system-colored 2px outline.
|
|
105
|
+
Typography remains inherited from the consumer. The package does not install
|
|
106
|
+
global input listeners; applications may choose their own modality policy.
|
|
107
|
+
|
|
108
|
+
Informational cards do not need `tabIndex`. Use a native link or button when the
|
|
109
|
+
whole card is an action, with no nested interactive controls. When a card has
|
|
110
|
+
inner actions, only those controls participate in Tab navigation. `TabsContent`
|
|
111
|
+
remains focusable by default for text-only content; use `tabIndex={-1}` on a
|
|
112
|
+
panel whose content already provides an appropriate first focus target.
|
|
100
113
|
|
|
101
114
|
## Styles, themes and overrides
|
|
102
115
|
|
|
@@ -112,8 +125,15 @@ scale/height travel while preserving opacity feedback. The `--ui-surface` token
|
|
|
112
125
|
surface in dark mode; consumers can override it alongside the existing palette.
|
|
113
126
|
Public theme tokens are
|
|
114
127
|
`--foreground`, `--background`, `--muted-foreground`, `--border`,
|
|
115
|
-
`--destructive`, `--paper`, `--ink
|
|
116
|
-
|
|
128
|
+
`--destructive`, `--paper`, `--ink`, `--ink-muted`, plus
|
|
129
|
+
`--focus-ring-width`, `--focus-ring-color`, `--focus-ring-offset` and
|
|
130
|
+
`--focus-ring-inset-offset`. The default color mixes ink 65% with paper in both
|
|
131
|
+
themes. Primitives read the public `--ui-focus` color and checked/indeterminate
|
|
132
|
+
Checkbox and checked Switch read `--ui-focus-on-solid`. Both default to
|
|
133
|
+
`--focus-ring-color`, so existing overrides on the root, a theme or a control
|
|
134
|
+
continue to work. Invalid fields retain `--destructive` instead of the solid
|
|
135
|
+
customization. Set the canonical default color on the root/theme alongside its
|
|
136
|
+
aliases, or override the public color variables directly for a subtree. Token names and default states are subject to semver.
|
|
117
137
|
|
|
118
138
|
This is a global stylesheet with unprefixed utility/token names; coexistence
|
|
119
139
|
with another system defining the same names is outside the support boundary.
|
|
@@ -153,3 +173,6 @@ LICENSE and THIRD_PARTY_NOTICES.md contain the existing MIT distribution and
|
|
|
153
173
|
shadcn/Tailwind attribution. Consumer-installed peers/dependencies retain their
|
|
154
174
|
licenses. Web fonts are not distributed. Source/tag evidence is not an npm
|
|
155
175
|
provenance attestation for this private repository.
|
|
176
|
+
|
|
177
|
+
Submenus constrain both their minimum and maximum width to the space Radix
|
|
178
|
+
reports as available, so nested menus remain inside narrow viewports.
|
package/dist/accordion.js
CHANGED
|
@@ -8,7 +8,7 @@ function AccordionItem({ className, ...props }) {
|
|
|
8
8
|
return (_jsx(AccordionPrimitive.Item, { "data-slot": "accordion-item", className: cn('rounded-sm', className), ...props }));
|
|
9
9
|
}
|
|
10
10
|
function AccordionTrigger({ className, children, ...props }) {
|
|
11
|
-
return (_jsx(AccordionPrimitive.Header, { "data-slot": "accordion-header", className: "flex", children: _jsxs(AccordionPrimitive.Trigger, { "data-slot": "accordion-trigger", className: cn('group hover:bg-foreground/5 flex min-h-8 flex-1 items-center justify-between gap-3 rounded-sm px-2 py-2 text-left text-xs font-medium hover:no-underline focus-visible:outline-
|
|
11
|
+
return (_jsx(AccordionPrimitive.Header, { "data-slot": "accordion-header", className: "flex", children: _jsxs(AccordionPrimitive.Trigger, { "data-slot": "accordion-trigger", className: cn('group hover:bg-foreground/5 flex min-h-8 flex-1 items-center justify-between gap-3 rounded-sm px-2 py-2 text-left text-xs font-medium hover:no-underline focus-visible:outline-[length:var(--focus-ring-width)] focus-visible:outline-offset-[var(--focus-ring-offset)] focus-visible:outline-[var(--ui-focus)] focus-visible:outline-solid disabled:pointer-events-none disabled:opacity-50', className), ...props, children: [children, _jsx(ChevronDown, { "aria-hidden": "true", className: "text-muted-foreground size-3 shrink-0 transition-transform group-data-[state=open]:rotate-180 motion-reduce:transition-none" })] }) }));
|
|
12
12
|
}
|
|
13
13
|
function AccordionContent({ className, children, ...props }) {
|
|
14
14
|
return (_jsx(AccordionPrimitive.Content, { "data-slot": "accordion-content", className: "motion-collapse", ...props, children: _jsx("div", { className: cn('text-muted-foreground px-2 pt-1 pb-3 text-xs leading-relaxed', className), children: children }) }));
|
package/dist/badge.js
CHANGED
|
@@ -2,7 +2,7 @@ import { jsx as _jsx } from "react/jsx-runtime";
|
|
|
2
2
|
import { Slot } from 'radix-ui';
|
|
3
3
|
import { cva } from 'class-variance-authority';
|
|
4
4
|
import { cn } from './internal/cn.js';
|
|
5
|
-
const badgeVariants = cva('inline-flex min-h-5 w-fit shrink-0 items-center justify-center gap-1 rounded-sm px-1.5 py-0.5 text-[0.6875rem] leading-none font-medium whitespace-nowrap [&_svg]:size-3 [&_svg]:shrink-0 focus-visible:outline-
|
|
5
|
+
const badgeVariants = cva('inline-flex min-h-5 w-fit shrink-0 items-center justify-center gap-1 rounded-sm px-1.5 py-0.5 text-[0.6875rem] leading-none font-medium whitespace-nowrap [&_svg]:size-3 [&_svg]:shrink-0 focus-visible:outline-[length:var(--focus-ring-width)] focus-visible:outline-solid focus-visible:outline-offset-[var(--focus-ring-offset)] focus-visible:outline-[var(--ui-focus)]', {
|
|
6
6
|
variants: {
|
|
7
7
|
variant: {
|
|
8
8
|
default: 'bg-foreground/10 text-foreground',
|
package/dist/button.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
2
|
import { cva } from 'class-variance-authority';
|
|
3
3
|
import { cn } from './internal/cn.js';
|
|
4
|
-
const buttonVariants = cva("no-underline hover:no-underline inline-flex items-center justify-center gap-1 rounded-sm text-xs leading-none whitespace-nowrap transition-colors active:opacity-100 [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-3.5 focus-visible:outline-
|
|
4
|
+
const buttonVariants = cva("no-underline hover:no-underline inline-flex items-center justify-center gap-1 rounded-sm text-xs leading-none whitespace-nowrap transition-colors active:opacity-100 [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-3.5 focus-visible:outline-[length:var(--focus-ring-width)] focus-visible:outline-solid focus-visible:outline-offset-[var(--focus-ring-offset)] focus-visible:outline-[var(--ui-focus)] disabled:pointer-events-none disabled:opacity-50", {
|
|
5
5
|
variants: {
|
|
6
6
|
variant: {
|
|
7
7
|
default: 'bg-[color-mix(in_oklab,var(--ink)_14%,transparent)] font-medium text-[var(--ink)] hover:bg-[color-mix(in_oklab,var(--ink)_18%,transparent)]',
|
package/dist/checkbox.js
CHANGED
|
@@ -4,6 +4,6 @@ import { Checkbox as CheckboxPrimitive } from 'radix-ui';
|
|
|
4
4
|
import { Check, Minus } from 'lucide-react';
|
|
5
5
|
import { cn } from './internal/cn.js';
|
|
6
6
|
function Checkbox({ className, ...props }) {
|
|
7
|
-
return (_jsx(CheckboxPrimitive.Root, { "data-slot": "checkbox", className: cn("peer border-foreground/50 text-background aria-invalid:border-destructive aria-invalid:data-[state=checked]:border-destructive aria-invalid:data-[state=indeterminate]:border-destructive data-[state=checked]:border-foreground data-[state=checked]:bg-foreground data-[state=indeterminate]:border-foreground data-[state=indeterminate]:bg-foreground relative grid size-4 shrink-0 place-items-center rounded-sm border bg-[var(--paper)] shadow-xs transition-colors outline-none before:absolute before:-inset-1 before:content-[''] focus-visible:outline-
|
|
7
|
+
return (_jsx(CheckboxPrimitive.Root, { "data-slot": "checkbox", className: cn("peer border-foreground/50 text-background aria-invalid:border-destructive aria-invalid:data-[state=checked]:border-destructive aria-invalid:data-[state=indeterminate]:border-destructive data-[state=checked]:border-foreground data-[state=checked]:bg-foreground data-[state=indeterminate]:border-foreground data-[state=indeterminate]:bg-foreground relative grid size-4 shrink-0 place-items-center rounded-sm border bg-[var(--paper)] shadow-xs transition-colors outline-none before:absolute before:-inset-1 before:content-[''] focus-visible:outline-[length:var(--focus-ring-width)] focus-visible:outline-offset-[var(--focus-ring-offset)] focus-visible:outline-[var(--ui-focus)] focus-visible:outline-solid disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:focus-visible:outline-[var(--destructive)] data-[state=checked]:focus-visible:outline-[var(--ui-focus-on-solid)] aria-invalid:data-[state=checked]:focus-visible:outline-[var(--destructive)] data-[state=indeterminate]:focus-visible:outline-[var(--ui-focus-on-solid)] aria-invalid:data-[state=indeterminate]:focus-visible:outline-[var(--destructive)] motion-reduce:transition-none", className), ...props, children: _jsxs(CheckboxPrimitive.Indicator, { "data-slot": "checkbox-indicator", className: "group/indicator grid place-items-center", children: [_jsx(Check, { "aria-hidden": "true", className: "size-3 group-data-[state=indeterminate]/indicator:hidden" }), _jsx(Minus, { "aria-hidden": "true", className: "size-3 group-data-[state=checked]/indicator:hidden" })] }) }));
|
|
8
8
|
}
|
|
9
9
|
export { Checkbox };
|
package/dist/command-menu.d.ts
CHANGED
|
@@ -6,7 +6,7 @@ export declare function CommandMenuRoot({ mode, children, }: {
|
|
|
6
6
|
mode?: Mode;
|
|
7
7
|
children: ReactNode;
|
|
8
8
|
}): import("react/jsx-runtime").JSX.Element;
|
|
9
|
-
export declare function CommandMenuTrigger(props: ComponentProps<typeof DropdownMenu.Trigger>): import("react/jsx-runtime").JSX.Element;
|
|
9
|
+
export declare function CommandMenuTrigger({ className, ...props }: ComponentProps<typeof DropdownMenu.Trigger>): import("react/jsx-runtime").JSX.Element;
|
|
10
10
|
export declare function CommandMenuContent({ className, children, ...props }: ComponentProps<typeof ContextMenu.Content>): import("react/jsx-runtime").JSX.Element;
|
|
11
11
|
export declare function CommandMenuItem({ className, inset, variant, ...props }: ComponentProps<typeof DropdownMenu.Item> & {
|
|
12
12
|
inset?: boolean;
|
package/dist/command-menu.js
CHANGED
|
@@ -12,9 +12,9 @@ export function CommandMenuRoot({ mode = 'dropdown', children, }) {
|
|
|
12
12
|
const Root = mode === 'context' ? ContextMenu.Root : DropdownMenu.Root;
|
|
13
13
|
return (_jsx(ModeContext.Provider, { value: mode, children: _jsx(Root, { children: children }) }));
|
|
14
14
|
}
|
|
15
|
-
export function CommandMenuTrigger(props) {
|
|
15
|
+
export function CommandMenuTrigger({ className, ...props }) {
|
|
16
16
|
const P = useParts();
|
|
17
|
-
return _jsx(P.Trigger, { "data-slot": "command-menu-trigger", ...props });
|
|
17
|
+
return (_jsx(P.Trigger, { "data-slot": "command-menu-trigger", className: cn('focus-visible:outline-[length:var(--focus-ring-width)] focus-visible:outline-offset-[var(--focus-ring-offset)] focus-visible:outline-[var(--ui-focus)] focus-visible:outline-solid', className), ...props }));
|
|
18
18
|
}
|
|
19
19
|
export function CommandMenuContent({ className, children, ...props }) {
|
|
20
20
|
const mode = useContext(ModeContext);
|
|
@@ -64,6 +64,6 @@ export function CommandMenuSubContent({ className, ...props }) {
|
|
|
64
64
|
const mode = useContext(ModeContext);
|
|
65
65
|
const P = useParts();
|
|
66
66
|
return (_jsx(P.Portal, { children: _jsx(P.SubContent, { "data-slot": "command-menu-sub-content", collisionPadding: 16, sideOffset: 4, className: cn(menuContentClassName, mode === 'context'
|
|
67
|
-
? 'max-h-(--radix-context-menu-content-available-height)'
|
|
68
|
-
: 'max-h-(--radix-dropdown-menu-content-available-height)', className), ...props }) }));
|
|
67
|
+
? 'max-h-(--radix-context-menu-content-available-height) max-w-[min(20rem,var(--radix-context-menu-content-available-width))] min-w-[min(12rem,var(--radix-context-menu-content-available-width))] [overflow-wrap:anywhere]'
|
|
68
|
+
: 'max-h-(--radix-dropdown-menu-content-available-height) max-w-[min(20rem,var(--radix-dropdown-menu-content-available-width))] min-w-[min(12rem,var(--radix-dropdown-menu-content-available-width))] [overflow-wrap:anywhere]', className), ...props }) }));
|
|
69
69
|
}
|
package/dist/dialog.js
CHANGED
|
@@ -11,7 +11,7 @@ function DialogOverlay({ className, ...props }) {
|
|
|
11
11
|
return (_jsx(DialogPrimitive.Overlay, { "data-slot": "dialog-overlay", className: cn('motion-fade fixed inset-0 z-50 bg-black/40', className), ...props }));
|
|
12
12
|
}
|
|
13
13
|
function DialogContent({ className, children, showCloseButton = true, closeLabel = '닫기', ...props }) {
|
|
14
|
-
return (_jsxs(DialogPortal, { children: [_jsx(DialogOverlay, {}), _jsxs(DialogPrimitive.Content, { "data-slot": "dialog-content", className: cn('motion-modal border-foreground/10 fixed top-1/2 left-1/2 z-50 grid max-h-[calc(100dvh-2rem)] w-[calc(100%-2rem)] max-w-md -translate-x-1/2 -translate-y-1/2 gap-4 overflow-y-auto rounded-lg border bg-[var(--ui-surface,var(--paper))] p-5 text-xs [overflow-wrap:anywhere] shadow-xl outline-none', className), ...props, children: [children, showCloseButton && (_jsx(DialogPrimitive.Close, { "data-slot": "dialog-close", type: "button", "aria-label": closeLabel, className: "text-muted-foreground hover:bg-foreground/5 hover:text-foreground absolute top-3 right-3 grid size-7 place-items-center rounded-sm hover:no-underline focus-visible:outline-
|
|
14
|
+
return (_jsxs(DialogPortal, { children: [_jsx(DialogOverlay, {}), _jsxs(DialogPrimitive.Content, { "data-slot": "dialog-content", className: cn('motion-modal border-foreground/10 fixed top-1/2 left-1/2 z-50 grid max-h-[calc(100dvh-2rem)] w-[calc(100%-2rem)] max-w-md -translate-x-1/2 -translate-y-1/2 gap-4 overflow-y-auto rounded-lg border bg-[var(--ui-surface,var(--paper))] p-5 text-xs [overflow-wrap:anywhere] shadow-xl outline-none', className), ...props, children: [children, showCloseButton && (_jsx(DialogPrimitive.Close, { "data-slot": "dialog-close", type: "button", "aria-label": closeLabel, className: "text-muted-foreground hover:bg-foreground/5 hover:text-foreground absolute top-3 right-3 grid size-7 place-items-center rounded-sm hover:no-underline focus-visible:outline-[length:var(--focus-ring-width)] focus-visible:outline-offset-[var(--focus-ring-offset)] focus-visible:outline-[var(--ui-focus)] focus-visible:outline-solid", children: _jsx(X, { "aria-hidden": "true", className: "size-3.5" }) }))] })] }));
|
|
15
15
|
}
|
|
16
16
|
function DialogHeader({ className, ...props }) {
|
|
17
17
|
return (_jsx("div", { "data-slot": "dialog-header", className: cn('grid gap-1.5 pr-6', className), ...props }));
|
package/dist/input.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
2
|
import { cn } from './internal/cn.js';
|
|
3
3
|
function Input({ className, type, ...props }) {
|
|
4
|
-
return (_jsx("input", { type: type, "data-slot": "input", className: cn('border-border placeholder:text-muted-foreground
|
|
4
|
+
return (_jsx("input", { type: type, "data-slot": "input", className: cn('border-border placeholder:text-muted-foreground aria-invalid:border-destructive aria-invalid:focus-visible:border-destructive bg-foreground/[0.03] hover:bg-foreground/5 h-8 w-full min-w-0 rounded-sm border px-2 py-1 text-xs outline-none focus-visible:outline-[length:var(--focus-ring-width)] focus-visible:outline-offset-[var(--focus-ring-offset)] focus-visible:outline-[var(--ui-focus)] focus-visible:outline-solid disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:focus-visible:outline-[var(--destructive)]', className), ...props }));
|
|
5
5
|
}
|
|
6
6
|
export { Input };
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
/** Shared neutral menu surfaces; geometry belongs to each Radix positioning primitive. `motion-*` hooks live in motion.css. */
|
|
2
|
-
export declare const menuItemClassName = "data-[highlighted]:bg-foreground/[0.08] relative flex min-h-7 cursor-default items-center gap-2 rounded-sm px-2 py-0.5 leading-relaxed no-underline outline-none select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50";
|
|
2
|
+
export declare const menuItemClassName = "data-[highlighted]:bg-foreground/[0.08] relative flex min-h-7 cursor-default items-center gap-2 rounded-sm px-2 py-0.5 leading-relaxed no-underline outline-none focus-visible:outline-[length:var(--focus-ring-width)] focus-visible:outline-solid focus-visible:outline-offset-[var(--focus-ring-inset-offset)] focus-visible:outline-[var(--ui-focus)] select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50";
|
|
3
3
|
export declare const menuContentClassName = "motion-pop border-foreground/10 z-50 max-w-[min(20rem,calc(100vw-2rem))] min-w-48 overflow-y-auto rounded-md border bg-[var(--ui-surface,var(--paper))] p-0.5 text-xs shadow-lg outline-none";
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
/** Shared neutral menu surfaces; geometry belongs to each Radix positioning primitive. `motion-*` hooks live in motion.css. */
|
|
2
|
-
export const menuItemClassName = 'data-[highlighted]:bg-foreground/[0.08] relative flex min-h-7 cursor-default items-center gap-2 rounded-sm px-2 py-0.5 leading-relaxed no-underline outline-none select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50';
|
|
2
|
+
export const menuItemClassName = 'data-[highlighted]:bg-foreground/[0.08] relative flex min-h-7 cursor-default items-center gap-2 rounded-sm px-2 py-0.5 leading-relaxed no-underline outline-none focus-visible:outline-[length:var(--focus-ring-width)] focus-visible:outline-solid focus-visible:outline-offset-[var(--focus-ring-inset-offset)] focus-visible:outline-[var(--ui-focus)] select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50';
|
|
3
3
|
export const menuContentClassName = 'motion-pop border-foreground/10 z-50 max-w-[min(20rem,calc(100vw-2rem))] min-w-48 overflow-y-auto rounded-md border bg-[var(--ui-surface,var(--paper))] p-0.5 text-xs shadow-lg outline-none';
|
package/dist/menubar.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type
|
|
1
|
+
import { type ComponentProps } from 'react';
|
|
2
2
|
import { Menubar as MenubarPrimitive } from 'radix-ui';
|
|
3
3
|
declare const MenubarMenu: typeof MenubarPrimitive.Menu;
|
|
4
4
|
declare const MenubarGroup: import("react").ForwardRefExoticComponent<MenubarPrimitive.MenubarGroupProps & import("react").RefAttributes<HTMLDivElement>>;
|
|
@@ -6,7 +6,7 @@ declare const MenubarRadioGroup: import("react").ForwardRefExoticComponent<Menub
|
|
|
6
6
|
declare const MenubarSub: import("react").FC<MenubarPrimitive.MenubarSubProps>;
|
|
7
7
|
declare function Menubar({ className, ...props }: ComponentProps<typeof MenubarPrimitive.Root>): import("react/jsx-runtime").JSX.Element;
|
|
8
8
|
declare function MenubarTrigger({ className, ...props }: ComponentProps<typeof MenubarPrimitive.Trigger>): import("react/jsx-runtime").JSX.Element;
|
|
9
|
-
declare function MenubarContent({ className, portalLabel, align, sideOffset, collisionPadding, ...props }: ComponentProps<typeof MenubarPrimitive.Content> & {
|
|
9
|
+
declare function MenubarContent({ className, portalLabel, align, sideOffset, collisionPadding, ref: forwardedRef, onFocusOutside, onPointerDownOutside, ...props }: ComponentProps<typeof MenubarPrimitive.Content> & {
|
|
10
10
|
portalLabel?: string;
|
|
11
11
|
}): import("react/jsx-runtime").JSX.Element;
|
|
12
12
|
declare function MenubarItem({ className, inset, variant, ...props }: ComponentProps<typeof MenubarPrimitive.Item> & {
|
package/dist/menubar.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { useCallback, useRef, } from 'react';
|
|
3
4
|
import { Menubar as MenubarPrimitive } from 'radix-ui';
|
|
4
5
|
import { Check, ChevronRight } from 'lucide-react';
|
|
5
6
|
import { cn } from './internal/cn.js';
|
|
@@ -15,10 +16,47 @@ function Menubar({ className, ...props }) {
|
|
|
15
16
|
return (_jsx(MenubarPrimitive.Root, { "data-slot": "menubar", className: cn('bg-foreground/[0.035] flex min-w-0 flex-wrap items-center gap-0.5 rounded-md px-2 py-1 text-xs outline-none', className), ...props }));
|
|
16
17
|
}
|
|
17
18
|
function MenubarTrigger({ className, ...props }) {
|
|
18
|
-
return (_jsx(MenubarPrimitive.Trigger, { "data-slot": "menubar-trigger", className: cn('data-[state=open]:bg-foreground/10 focus-visible:bg-foreground/10 min-h-6 cursor-default rounded-sm px-2 py-0.5 no-underline outline-none hover:no-underline focus-visible:outline-
|
|
19
|
+
return (_jsx(MenubarPrimitive.Trigger, { "data-slot": "menubar-trigger", className: cn('data-[state=open]:bg-foreground/10 focus-visible:bg-foreground/10 min-h-6 cursor-default rounded-sm px-2 py-0.5 no-underline outline-none hover:no-underline focus-visible:outline-[length:var(--focus-ring-width)] focus-visible:outline-offset-[var(--focus-ring-offset)] focus-visible:outline-[var(--ui-focus)] focus-visible:outline-solid disabled:opacity-40', className), ...props }));
|
|
19
20
|
}
|
|
20
|
-
|
|
21
|
-
|
|
21
|
+
/**
|
|
22
|
+
* Presence keeps a closing menu mounted during its exit motion. Moving between
|
|
23
|
+
* open menus must not let that closing layer dismiss the menu replacing it.
|
|
24
|
+
*/
|
|
25
|
+
function useClosingLayerGuard(forwardedRef) {
|
|
26
|
+
const content = useRef(null);
|
|
27
|
+
// Stable, cleanup-preserving composition like Radix composeRefs.
|
|
28
|
+
const ref = useCallback((node) => {
|
|
29
|
+
content.current = node;
|
|
30
|
+
if (typeof forwardedRef === 'function') {
|
|
31
|
+
const cleanup = forwardedRef(node);
|
|
32
|
+
return () => {
|
|
33
|
+
content.current = null;
|
|
34
|
+
if (typeof cleanup === 'function')
|
|
35
|
+
cleanup();
|
|
36
|
+
else
|
|
37
|
+
forwardedRef(null);
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
if (forwardedRef)
|
|
41
|
+
forwardedRef.current = node;
|
|
42
|
+
return () => {
|
|
43
|
+
content.current = null;
|
|
44
|
+
if (forwardedRef)
|
|
45
|
+
forwardedRef.current = null;
|
|
46
|
+
};
|
|
47
|
+
}, [forwardedRef]);
|
|
48
|
+
function guard(handler) {
|
|
49
|
+
return (event) => {
|
|
50
|
+
handler?.(event);
|
|
51
|
+
if (content.current?.dataset.state === 'closed')
|
|
52
|
+
event.preventDefault();
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
return { ref, guard };
|
|
56
|
+
}
|
|
57
|
+
function MenubarContent({ className, portalLabel, align = 'start', sideOffset = 4, collisionPadding = 16, ref: forwardedRef, onFocusOutside, onPointerDownOutside, ...props }) {
|
|
58
|
+
const { ref, guard } = useClosingLayerGuard(forwardedRef);
|
|
59
|
+
return (_jsx(MenuContentPortal, { label: portalLabel, children: _jsx(MenubarPrimitive.Content, { ref: ref, "data-slot": "menubar-content", align: align, sideOffset: sideOffset, collisionPadding: collisionPadding, onFocusOutside: guard(onFocusOutside), onPointerDownOutside: guard(onPointerDownOutside), className: cn(menuContentClassName, 'max-h-(--radix-menubar-content-available-height)', className), ...props }) }));
|
|
22
60
|
}
|
|
23
61
|
function MenubarItem({ className, inset = false, variant = 'default', ...props }) {
|
|
24
62
|
return (_jsx(MenubarPrimitive.Item, { "data-slot": "menubar-item", className: cn(menuItemClassName, inset && 'pl-7', variant === 'destructive' && 'text-destructive', className), ...props }));
|
|
@@ -39,7 +77,7 @@ function MenubarSubTrigger({ className, children, inset = false, ...props }) {
|
|
|
39
77
|
return (_jsxs(MenubarPrimitive.SubTrigger, { "data-slot": "menubar-sub-trigger", className: cn(menuItemClassName, 'data-[state=open]:bg-foreground/[0.08]', inset && 'pl-7', className), ...props, children: [children, _jsx(ChevronRight, { "aria-hidden": "true", className: "ml-auto size-3 shrink-0" })] }));
|
|
40
78
|
}
|
|
41
79
|
function MenubarSubContent({ className, portalLabel, sideOffset = 4, collisionPadding = 16, ...props }) {
|
|
42
|
-
return (_jsx(MenuContentPortal, { label: portalLabel, children: _jsx(MenubarPrimitive.SubContent, { "data-slot": "menubar-sub-content", sideOffset: sideOffset, collisionPadding: collisionPadding, className: cn(menuContentClassName, 'max-h-(--radix-menubar-content-available-height)', className), ...props }) }));
|
|
80
|
+
return (_jsx(MenuContentPortal, { label: portalLabel, children: _jsx(MenubarPrimitive.SubContent, { "data-slot": "menubar-sub-content", sideOffset: sideOffset, collisionPadding: collisionPadding, className: cn(menuContentClassName, 'max-h-(--radix-menubar-content-available-height) max-w-[min(20rem,var(--radix-menubar-content-available-width))] min-w-[min(12rem,var(--radix-menubar-content-available-width))] [overflow-wrap:anywhere]', className), ...props }) }));
|
|
43
81
|
}
|
|
44
82
|
function MenubarShortcut({ className, ...props }) {
|
|
45
83
|
return (_jsx("span", { "data-slot": "menubar-shortcut", "aria-hidden": "true", className: cn('text-muted-foreground ml-auto shrink-0 pl-5 text-xs whitespace-nowrap tabular-nums', className), ...props }));
|
package/dist/radio-group.js
CHANGED
|
@@ -6,6 +6,6 @@ function RadioGroup({ className, ...props }) {
|
|
|
6
6
|
return (_jsx(RadioGroupPrimitive.Root, { "data-slot": "radio-group", className: cn('grid gap-3', className), ...props }));
|
|
7
7
|
}
|
|
8
8
|
function RadioGroupItem({ className, children, ...props }) {
|
|
9
|
-
return (_jsx(RadioGroupPrimitive.Item, { "data-slot": "radio-group-item", className: cn('text-foreground data-[state=checked]:border-foreground grid size-4 shrink-0 place-items-center rounded-full border border-[var(--ink-muted)] bg-transparent transition-colors outline-none focus-visible:outline-
|
|
9
|
+
return (_jsx(RadioGroupPrimitive.Item, { "data-slot": "radio-group-item", className: cn('text-foreground data-[state=checked]:border-foreground grid size-4 shrink-0 place-items-center rounded-full border border-[var(--ink-muted)] bg-transparent transition-colors outline-none focus-visible:outline-[length:var(--focus-ring-width)] focus-visible:outline-offset-[var(--focus-ring-offset)] focus-visible:outline-[var(--ui-focus)] focus-visible:outline-solid disabled:cursor-not-allowed disabled:opacity-50', className), ...props, children: children ?? (_jsx(RadioGroupPrimitive.Indicator, { "data-slot": "radio-group-indicator", className: "size-2 rounded-full bg-current" })) }));
|
|
10
10
|
}
|
|
11
11
|
export { RadioGroup, RadioGroupItem };
|
package/dist/select.js
CHANGED
|
@@ -13,7 +13,7 @@ function SelectValue({ ...props }) {
|
|
|
13
13
|
return _jsx(SelectPrimitive.Value, { "data-slot": "select-value", ...props });
|
|
14
14
|
}
|
|
15
15
|
function SelectTrigger({ className, size = 'default', children, ...props }) {
|
|
16
|
-
return (_jsxs(SelectPrimitive.Trigger, { "data-slot": "select-trigger", "data-size": size, className: cn('border-border aria-invalid:border-destructive data-placeholder:text-muted-foreground hover:bg-foreground/5 bg-foreground/[0.03] flex w-full items-center justify-between gap-2 rounded-sm border px-2 py-1 text-xs whitespace-nowrap outline-none hover:no-underline focus-visible:outline-
|
|
16
|
+
return (_jsxs(SelectPrimitive.Trigger, { "data-slot": "select-trigger", "data-size": size, className: cn('border-border aria-invalid:border-destructive data-placeholder:text-muted-foreground hover:bg-foreground/5 bg-foreground/[0.03] flex w-full items-center justify-between gap-2 rounded-sm border px-2 py-1 text-xs whitespace-nowrap outline-none hover:no-underline focus-visible:outline-[length:var(--focus-ring-width)] focus-visible:outline-offset-[var(--focus-ring-offset)] focus-visible:outline-[var(--ui-focus)] focus-visible:outline-solid disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:focus-visible:outline-[var(--destructive)] data-[size=default]:h-8 data-[size=sm]:h-7', className), ...props, children: [children, _jsx(SelectPrimitive.Icon, { asChild: true, children: _jsx(ChevronDown, { "aria-hidden": "true", className: "text-muted-foreground size-3.5 shrink-0" }) })] }));
|
|
17
17
|
}
|
|
18
18
|
function SelectContent({ className, children, position = 'popper', align = 'start', sideOffset = 4, ...props }) {
|
|
19
19
|
return (_jsx(SelectPrimitive.Portal, { children: _jsx(SelectPrimitive.Content, { "data-slot": "select-content", className: cn('motion-pop border-border text-foreground border-foreground/10 relative z-50 max-h-(--radix-select-content-available-height) min-w-32 overflow-x-hidden overflow-y-auto rounded-md border bg-[var(--ui-surface,var(--paper))] shadow-lg', position === 'popper' && 'min-w-(--radix-select-trigger-width)', className), position: position, align: align, sideOffset: sideOffset, ...props, children: _jsx(SelectPrimitive.Viewport, { className: "p-0.5", children: children }) }) }));
|
|
@@ -22,7 +22,7 @@ function SelectLabel({ className, ...props }) {
|
|
|
22
22
|
return (_jsx(SelectPrimitive.Label, { "data-slot": "select-label", className: cn('text-muted-foreground px-1.5 py-1 text-xs', className), ...props }));
|
|
23
23
|
}
|
|
24
24
|
function SelectItem({ className, children, ...props }) {
|
|
25
|
-
return (_jsxs(SelectPrimitive.Item, { "data-slot": "select-item", className: cn('data-[highlighted]:bg-foreground/10 data-[highlighted]:text-foreground hover:text-foreground relative flex min-h-7 w-full cursor-default items-center rounded-sm py-1 pr-2 pl-6 text-xs outline-
|
|
25
|
+
return (_jsxs(SelectPrimitive.Item, { "data-slot": "select-item", className: cn('data-[highlighted]:bg-foreground/10 data-[highlighted]:text-foreground hover:text-foreground relative flex min-h-7 w-full cursor-default items-center rounded-sm py-1 pr-2 pl-6 text-xs outline-none select-none focus-visible:outline-[length:var(--focus-ring-width)] focus-visible:outline-offset-[var(--focus-ring-inset-offset)] focus-visible:outline-[var(--ui-focus)] focus-visible:outline-solid data-disabled:pointer-events-none data-disabled:opacity-50 data-[state=checked]:font-semibold', className), ...props, children: [_jsx(SelectPrimitive.ItemIndicator, { className: "absolute left-1.5 inline-flex items-center", children: _jsx(Check, { "aria-hidden": "true", className: "size-3" }) }), _jsx(SelectPrimitive.ItemText, { children: children })] }));
|
|
26
26
|
}
|
|
27
27
|
function SelectSeparator({ className, ...props }) {
|
|
28
28
|
return (_jsx(SelectPrimitive.Separator, { "data-slot": "select-separator", className: cn('bg-border h-px', className), ...props }));
|
package/dist/slider.js
CHANGED
|
@@ -12,6 +12,6 @@ function Slider({ className, defaultValue, value, min = 0, max = 100, disabled =
|
|
|
12
12
|
? undefined
|
|
13
13
|
: labelledBy && values.length > 1
|
|
14
14
|
? `${labelledBy} ${id}-thumb-${index}`
|
|
15
|
-
: labelledBy, className: "border-foreground/40 block size-3.5 shrink-0 rounded-full border bg-[var(--paper)] shadow-xs focus-visible:outline-
|
|
15
|
+
: labelledBy, className: "border-foreground/40 block size-3.5 shrink-0 rounded-full border bg-[var(--paper)] shadow-xs focus-visible:outline-[length:var(--focus-ring-width)] focus-visible:outline-offset-[var(--focus-ring-offset)] focus-visible:outline-[var(--ui-focus)] focus-visible:outline-solid" })] }, index)))] }));
|
|
16
16
|
}
|
|
17
17
|
export { Slider };
|
package/dist/styles.css
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/*! tailwindcss v4.3.0 | MIT License | https://tailwindcss.com */
|
|
2
|
-
@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-space-y-reverse:0;--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-ordinal:initial;--tw-slashed-zero:initial;--tw-numeric-figure:initial;--tw-numeric-spacing:initial;--tw-numeric-fraction:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-content:""}}}@layer theme{:root,:host{--color-black:#000;--spacing:.25rem;--container-md:28rem;--text-xs:.75rem;--text-xs--line-height:calc(1 / .75);--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--leading-relaxed:1.625;--radius-sm:.25rem;--radius-md:.375rem;--radius-lg:.5rem;--animate-pulse:pulse 2s cubic-bezier(.4, 0, .6, 1) infinite;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1)}}@layer base{:where([data-slot=button],[data-slot=input],[data-slot^=field],[data-slot^=select-],[data-slot^=radio-group],[data-slot^=tabs],[data-slot=label],[data-slot^=accordion-],[data-slot^=alert],[data-slot=badge],[data-slot^=checkbox],[data-slot^=dialog-],[data-slot^=popover-],[data-slot^=progress],[data-slot=separator],[data-slot=skeleton],[data-slot^=slider],[data-slot^=switch],[data-slot=textarea],[data-slot=tooltip-content],[data-slot^=menubar],[data-slot^=command-menu-],[data-slot=dropdown-menu-content],[data-slot=context-menu-content]){box-sizing:border-box;border:0 solid var(--border)}:where([data-slot=button],[data-slot=select-trigger],[data-slot=select-scroll-up-button],[data-slot=select-scroll-down-button],[data-slot=radio-group-item],[data-slot=tabs-trigger],[data-slot=input],[data-slot=textarea],[data-slot=accordion-trigger],[data-slot=checkbox],[data-slot=dialog-close],[data-slot=slider-thumb],[data-slot=switch],[data-slot=menubar-trigger],[data-slot=command-menu-trigger]){font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;text-transform:none;background-color:#0000;border-radius:0;margin:0;padding:0}button:where([data-slot=button],[data-slot=select-trigger],[data-slot=select-scroll-up-button],[data-slot=select-scroll-down-button],[data-slot=radio-group-item],[data-slot=tabs-trigger],[data-slot=accordion-trigger],[data-slot=checkbox],[data-slot=dialog-close],[data-slot=slider-thumb],[data-slot=switch],[data-slot=menubar-trigger],[data-slot=command-menu-trigger]){appearance:button}:where([data-slot=field-set]){min-width:0;margin:0;padding:0}:where([data-slot=field-legend]){padding:0}:where([data-slot=field-description],[data-slot=field-error] ul){margin:0;padding:0}:where([data-slot=accordion-header],[data-slot=alert-title],[data-slot=dialog-title],[data-slot=popover-title]){font-size:inherit;font-weight:inherit;margin:0}:where([data-slot=dialog-description],[data-slot=popover-description],[data-slot=alert-description] p){margin:0}:where([data-slot=select-trigger],[data-slot=select-content],[data-slot=accordion-trigger],[data-slot=alert],[data-slot=badge],[data-slot=checkbox],[data-slot=dialog-content],[data-slot^=menubar],[data-slot^=command-menu-]) svg{vertical-align:middle;display:block}}@layer components{:root{--motion-ease-out:cubic-bezier(.22, 1, .36, 1);--motion-duration-enter:.16s;--motion-duration-exit:.11s;--motion-duration-modal-enter:.2s;--motion-duration-modal-exit:.14s;--motion-duration-collapse:.2s;--motion-pop-scale:.97;--motion-pop-exit-scale:.99;--motion-modal-scale:.96;--motion-modal-exit-scale:.98}@keyframes motion-fade-in{0%{opacity:0}}@keyframes motion-fade-out{to{opacity:0}}@keyframes motion-pop-in{0%{opacity:0;scale:var(--motion-pop-scale)}}@keyframes motion-pop-out{to{opacity:0;scale:var(--motion-pop-exit-scale)}}@keyframes motion-modal-in{0%{opacity:0;scale:var(--motion-modal-scale)}}@keyframes motion-modal-out{to{opacity:0;scale:var(--motion-modal-exit-scale)}}@keyframes motion-collapse-open{0%{height:0}to{height:var(--radix-accordion-content-height)}}@keyframes motion-collapse-close{0%{height:var(--radix-accordion-content-height)}to{height:0}}.motion-pop{transform-origin:var(--radix-popover-content-transform-origin,var(--radix-tooltip-content-transform-origin,var(--radix-menubar-content-transform-origin,var(--radix-dropdown-menu-content-transform-origin,var(--radix-context-menu-content-transform-origin,center)))))}.motion-pop:is([data-state=open],[data-state=delayed-open]){animation:motion-pop-in var(--motion-duration-enter) var(--motion-ease-out)}.motion-pop[data-state=closed]{animation:motion-pop-out var(--motion-duration-exit) var(--motion-ease-out) forwards}.motion-fade[data-state=open]{animation:motion-fade-in var(--motion-duration-modal-enter) var(--motion-ease-out)}.motion-fade[data-state=closed]{animation:motion-fade-out var(--motion-duration-modal-exit) var(--motion-ease-out) forwards}.motion-modal[data-state=open]{animation:motion-modal-in var(--motion-duration-modal-enter) var(--motion-ease-out)}.motion-modal[data-state=closed]{animation:motion-modal-out var(--motion-duration-modal-exit) var(--motion-ease-out) forwards}.motion-collapse{overflow:hidden}.motion-collapse[data-state=open]{animation:motion-collapse-open var(--motion-duration-collapse) var(--motion-ease-out)}.motion-collapse[data-state=closed]{animation:motion-collapse-close var(--motion-duration-collapse) var(--motion-ease-out)}@media (prefers-reduced-motion:reduce){:root{--motion-pop-scale:1;--motion-pop-exit-scale:1;--motion-modal-scale:1;--motion-modal-exit-scale:1}.motion-collapse{animation:none!important}}}@layer utilities{.pointer-events-none{pointer-events:none}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.inset-0{inset:calc(var(--spacing) * 0)}.top-1\/2{top:50%}.top-3{top:calc(var(--spacing) * 3)}.right-3{right:calc(var(--spacing) * 3)}.left-1\.5{left:calc(var(--spacing) * 1.5)}.left-1\/2{left:50%}.left-2{left:calc(var(--spacing) * 2)}.z-50{z-index:50}.mx-1{margin-inline:calc(var(--spacing) * 1)}.my-1{margin-block:calc(var(--spacing) * 1)}.mb-1{margin-bottom:calc(var(--spacing) * 1)}.mb-2{margin-bottom:calc(var(--spacing) * 2)}.ml-4{margin-left:calc(var(--spacing) * 4)}.ml-auto{margin-left:auto}.block{display:block}.flex{display:flex}.grid{display:grid}.inline-flex{display:inline-flex}.size-2{width:calc(var(--spacing) * 2);height:calc(var(--spacing) * 2)}.size-3{width:calc(var(--spacing) * 3);height:calc(var(--spacing) * 3)}.size-3\.5{width:calc(var(--spacing) * 3.5);height:calc(var(--spacing) * 3.5)}.size-4{width:calc(var(--spacing) * 4);height:calc(var(--spacing) * 4)}.size-7{width:calc(var(--spacing) * 7);height:calc(var(--spacing) * 7)}.h-1\.5{height:calc(var(--spacing) * 1.5)}.h-5{height:calc(var(--spacing) * 5)}.h-7{height:calc(var(--spacing) * 7)}.h-8{height:calc(var(--spacing) * 8)}.h-11{height:calc(var(--spacing) * 11)}.h-fit{height:fit-content}.h-full{height:100%}.h-px{height:1px}.max-h-\(--radix-context-menu-content-available-height\){max-height:var(--radix-context-menu-content-available-height)}.max-h-\(--radix-dropdown-menu-content-available-height\){max-height:var(--radix-dropdown-menu-content-available-height)}.max-h-\(--radix-menubar-content-available-height\){max-height:var(--radix-menubar-content-available-height)}.max-h-\(--radix-popover-content-available-height\){max-height:var(--radix-popover-content-available-height)}.max-h-\(--radix-select-content-available-height\){max-height:var(--radix-select-content-available-height)}.max-h-\[calc\(100dvh-2rem\)\]{max-height:calc(100dvh - 2rem)}.min-h-5{min-height:calc(var(--spacing) * 5)}.min-h-6{min-height:calc(var(--spacing) * 6)}.min-h-7{min-height:calc(var(--spacing) * 7)}.min-h-8{min-height:calc(var(--spacing) * 8)}.min-h-20{min-height:calc(var(--spacing) * 20)}.w-1\/2{width:50%}.w-8{width:calc(var(--spacing) * 8)}.w-64{width:calc(var(--spacing) * 64)}.w-\[calc\(100\%-2rem\)\]{width:calc(100% - 2rem)}.w-fit{width:fit-content}.w-full{width:100%}.max-w-\[calc\(100vw-2rem\)\]{max-width:calc(100vw - 2rem)}.max-w-\[min\(16rem\,calc\(100vw-2rem\)\)\]{max-width:min(16rem,100vw - 2rem)}.max-w-\[min\(20rem\,calc\(100vw-2rem\)\)\]{max-width:min(20rem,100vw - 2rem)}.max-w-full{max-width:100%}.max-w-md{max-width:var(--container-md)}.min-w-\(--radix-select-trigger-width\){min-width:var(--radix-select-trigger-width)}.min-w-0{min-width:calc(var(--spacing) * 0)}.min-w-32{min-width:calc(var(--spacing) * 32)}.min-w-48{min-width:calc(var(--spacing) * 48)}.flex-1{flex:1}.flex-none{flex:none}.shrink-0{flex-shrink:0}.grow{flex-grow:1}.-translate-x-1\/2{--tw-translate-x:calc(calc(1 / 2 * 100%) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.-translate-y-1\/2{--tw-translate-y:calc(calc(1 / 2 * 100%) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.cursor-default{cursor:default}.touch-none{touch-action:none}.resize-y{resize:vertical}.list-disc{list-style-type:disc}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.place-items-center{place-items:center}.items-center{align-items:center}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.gap-0\.5{gap:calc(var(--spacing) * .5)}.gap-1{gap:calc(var(--spacing) * 1)}.gap-1\.5{gap:calc(var(--spacing) * 1.5)}.gap-2{gap:calc(var(--spacing) * 2)}.gap-3{gap:calc(var(--spacing) * 3)}.gap-4{gap:calc(var(--spacing) * 4)}:where(.space-y-3>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 3) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 3) * calc(1 - var(--tw-space-y-reverse)))}.overflow-hidden{overflow:hidden}.overflow-x-hidden{overflow-x:hidden}.overflow-y-auto{overflow-y:auto}.rounded-full{border-radius:3.40282e38px}.rounded-lg{border-radius:var(--radius-lg)}.rounded-md{border-radius:var(--radius-md)}.rounded-sm{border-radius:var(--radius-sm)}.border{border-style:var(--tw-border-style);border-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-\[var\(--ink-muted\)\]{border-color:var(--ink-muted)}.border-border{border-color:var(--border)}.border-foreground\/10{border-color:var(--foreground)}@supports (color:color-mix(in lab, red, red)){.border-foreground\/10{border-color:color-mix(in oklab, var(--foreground) 10%, transparent)}}.border-foreground\/40{border-color:var(--foreground)}@supports (color:color-mix(in lab, red, red)){.border-foreground\/40{border-color:color-mix(in oklab, var(--foreground) 40%, transparent)}}.border-foreground\/50{border-color:var(--foreground)}@supports (color:color-mix(in lab, red, red)){.border-foreground\/50{border-color:color-mix(in oklab, var(--foreground) 50%, transparent)}}.bg-\[color-mix\(in_oklab\,var\(--ink\)_8\%\,transparent\)\]{background-color:var(--ink)}@supports (color:color-mix(in lab, red, red)){.bg-\[color-mix\(in_oklab\,var\(--ink\)_8\%\,transparent\)\]{background-color:color-mix(in oklab,var(--ink) 8%,transparent)}}.bg-\[color-mix\(in_oklab\,var\(--ink\)_14\%\,transparent\)\]{background-color:var(--ink)}@supports (color:color-mix(in lab, red, red)){.bg-\[color-mix\(in_oklab\,var\(--ink\)_14\%\,transparent\)\]{background-color:color-mix(in oklab,var(--ink) 14%,transparent)}}.bg-\[var\(--paper\)\]{background-color:var(--paper)}.bg-\[var\(--ui-surface\,var\(--paper\)\)\]{background-color:var(--ui-surface,var(--paper))}.bg-black\/40{background-color:#0006}@supports (color:color-mix(in lab, red, red)){.bg-black\/40{background-color:color-mix(in oklab, var(--color-black) 40%, transparent)}}.bg-border{background-color:var(--border)}.bg-current{background-color:currentColor}.bg-destructive\/10{background-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.bg-destructive\/10{background-color:color-mix(in oklab, var(--destructive) 10%, transparent)}}.bg-foreground\/5{background-color:var(--foreground)}@supports (color:color-mix(in lab, red, red)){.bg-foreground\/5{background-color:color-mix(in oklab, var(--foreground) 5%, transparent)}}.bg-foreground\/10{background-color:var(--foreground)}@supports (color:color-mix(in lab, red, red)){.bg-foreground\/10{background-color:color-mix(in oklab, var(--foreground) 10%, transparent)}}.bg-foreground\/60{background-color:var(--foreground)}@supports (color:color-mix(in lab, red, red)){.bg-foreground\/60{background-color:color-mix(in oklab, var(--foreground) 60%, transparent)}}.bg-foreground\/65{background-color:var(--foreground)}@supports (color:color-mix(in lab, red, red)){.bg-foreground\/65{background-color:color-mix(in oklab, var(--foreground) 65%, transparent)}}.bg-foreground\/\[0\.03\]{background-color:var(--foreground)}@supports (color:color-mix(in lab, red, red)){.bg-foreground\/\[0\.03\]{background-color:color-mix(in oklab, var(--foreground) 3%, transparent)}}.bg-foreground\/\[0\.06\]{background-color:var(--foreground)}@supports (color:color-mix(in lab, red, red)){.bg-foreground\/\[0\.06\]{background-color:color-mix(in oklab, var(--foreground) 6%, transparent)}}.bg-foreground\/\[0\.07\]{background-color:var(--foreground)}@supports (color:color-mix(in lab, red, red)){.bg-foreground\/\[0\.07\]{background-color:color-mix(in oklab, var(--foreground) 7.0%, transparent)}}.bg-foreground\/\[0\.035\]{background-color:var(--foreground)}@supports (color:color-mix(in lab, red, red)){.bg-foreground\/\[0\.035\]{background-color:color-mix(in oklab, var(--foreground) 3.5%, transparent)}}.bg-transparent{background-color:#0000}.p-0\.5{padding:calc(var(--spacing) * .5)}.p-3{padding:calc(var(--spacing) * 3)}.p-5{padding:calc(var(--spacing) * 5)}.px-0{padding-inline:calc(var(--spacing) * 0)}.px-1\.5{padding-inline:calc(var(--spacing) * 1.5)}.px-2{padding-inline:calc(var(--spacing) * 2)}.px-2\.5{padding-inline:calc(var(--spacing) * 2.5)}.px-3{padding-inline:calc(var(--spacing) * 3)}.px-px{padding-inline:1px}.py-0{padding-block:calc(var(--spacing) * 0)}.py-0\.5{padding-block:calc(var(--spacing) * .5)}.py-1{padding-block:calc(var(--spacing) * 1)}.py-1\.5{padding-block:calc(var(--spacing) * 1.5)}.py-2{padding-block:calc(var(--spacing) * 2)}.pt-1{padding-top:calc(var(--spacing) * 1)}.pr-2{padding-right:calc(var(--spacing) * 2)}.pr-6{padding-right:calc(var(--spacing) * 6)}.pb-3{padding-bottom:calc(var(--spacing) * 3)}.pl-5{padding-left:calc(var(--spacing) * 5)}.pl-6{padding-left:calc(var(--spacing) * 6)}.pl-7{padding-left:calc(var(--spacing) * 7)}.text-left{text-align:left}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.text-\[0\.6875rem\]{font-size:.6875rem}.leading-none{--tw-leading:1;line-height:1}.leading-relaxed{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.\[overflow-wrap\:anywhere\]{overflow-wrap:anywhere}.whitespace-nowrap{white-space:nowrap}.text-\[var\(--ink\)\]{color:var(--ink)}.text-background{color:var(--background)}.text-destructive{color:var(--destructive)}.text-foreground{color:var(--foreground)}.text-muted-foreground{color:var(--muted-foreground)}.tabular-nums{--tw-numeric-spacing:tabular-nums;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.no-underline{text-decoration-line:none}.shadow-lg{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a), 0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-xl{--tw-shadow:0 20px 25px -5px var(--tw-shadow-color,#0000001a), 0 8px 10px -6px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-xs{--tw-shadow:0 1px 2px 0 var(--tw-shadow-color,#0000000d);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.outline-hidden{--tw-outline-style:none;outline-style:none}@media (forced-colors:active){.outline-hidden{outline-offset:2px;outline:2px solid #0000}}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.transition-\[width\]{transition-property:width;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.outline-none{--tw-outline-style:none;outline-style:none}.select-none{-webkit-user-select:none;user-select:none}.group-data-\[disabled\=true\]\:pointer-events-none:is(:where(.group)[data-disabled=true] *){pointer-events:none}.group-data-\[disabled\=true\]\:opacity-50:is(:where(.group)[data-disabled=true] *),.group-data-\[disabled\=true\]\/field\:opacity-50:is(:where(.group\/field)[data-disabled=true] *){opacity:.5}.group-data-\[orientation\=vertical\]\/tabs\:flex-col:is(:where(.group\/tabs)[data-orientation=vertical] *){flex-direction:column}.group-data-\[orientation\=vertical\]\/tabs\:items-stretch:is(:where(.group\/tabs)[data-orientation=vertical] *){align-items:stretch}.group-data-\[orientation\=vertical\]\/tabs\:border-r:is(:where(.group\/tabs)[data-orientation=vertical] *){border-right-style:var(--tw-border-style);border-right-width:1px}.group-data-\[orientation\=vertical\]\/tabs\:border-b-0:is(:where(.group\/tabs)[data-orientation=vertical] *){border-bottom-style:var(--tw-border-style);border-bottom-width:0}.group-data-\[state\=active\]\:bg-foreground\/10:is(:where(.group)[data-state=active] *){background-color:var(--foreground)}@supports (color:color-mix(in lab, red, red)){.group-data-\[state\=active\]\:bg-foreground\/10:is(:where(.group)[data-state=active] *){background-color:color-mix(in oklab, var(--foreground) 10%, transparent)}}.group-data-\[state\=active\]\:font-medium:is(:where(.group)[data-state=active] *){--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.group-data-\[state\=active\]\:text-foreground:is(:where(.group)[data-state=active] *){color:var(--foreground)}.group-data-\[state\=checked\]\/indicator\:hidden:is(:where(.group\/indicator)[data-state=checked] *),.group-data-\[state\=indeterminate\]\/indicator\:hidden:is(:where(.group\/indicator)[data-state=indeterminate] *){display:none}.group-data-\[state\=open\]\:rotate-180:is(:where(.group)[data-state=open] *){rotate:180deg}.group-data-\[variant\=line\]\/tabs-list\:rounded-none:is(:where(.group\/tabs-list)[data-variant=line] *){border-radius:0}.group-data-\[variant\=line\]\/tabs-list\:border-b-2:is(:where(.group\/tabs-list)[data-variant=line] *){border-bottom-style:var(--tw-border-style);border-bottom-width:2px}.group-data-\[variant\=line\]\/tabs-list\:border-transparent:is(:where(.group\/tabs-list)[data-variant=line] *){border-color:#0000}.group-data-\[variant\=line\]\/tabs-list\:px-2:is(:where(.group\/tabs-list)[data-variant=line] *){padding-inline:calc(var(--spacing) * 2)}.group-data-\[variant\=line\]\/tabs-list\:py-2:is(:where(.group\/tabs-list)[data-variant=line] *){padding-block:calc(var(--spacing) * 2)}.group-data-\[variant\=line\]\/tabs-list\:group-data-\[orientation\=vertical\]\/tabs\:border-r-2:is(:where(.group\/tabs-list)[data-variant=line] *):is(:where(.group\/tabs)[data-orientation=vertical] *){border-right-style:var(--tw-border-style);border-right-width:2px}.group-data-\[variant\=line\]\/tabs-list\:group-data-\[orientation\=vertical\]\/tabs\:border-b-0:is(:where(.group\/tabs-list)[data-variant=line] *):is(:where(.group\/tabs)[data-orientation=vertical] *){border-bottom-style:var(--tw-border-style);border-bottom-width:0}.peer-disabled\:cursor-not-allowed:is(:where(.peer):disabled~*){cursor:not-allowed}.peer-disabled\:opacity-50:is(:where(.peer):disabled~*){opacity:.5}.placeholder\:text-muted-foreground::placeholder{color:var(--muted-foreground)}.before\:absolute:before{content:var(--tw-content);position:absolute}.before\:-inset-1:before{content:var(--tw-content);inset:calc(var(--spacing) * -1)}.before\:inset-x-0:before{content:var(--tw-content);inset-inline:calc(var(--spacing) * 0)}.before\:-inset-y-0\.5:before{content:var(--tw-content);inset-block:calc(var(--spacing) * -.5)}.before\:hidden:before{content:var(--tw-content);display:none}.before\:content-\[\'\'\]:before{--tw-content:"";content:var(--tw-content)}.group-data-\[variant\=line\]\/tabs-list\:before\:hidden:is(:where(.group\/tabs-list)[data-variant=line] *):before,.after\:hidden:after,.group-data-\[variant\=line\]\/tabs-list\:after\:hidden:is(:where(.group\/tabs-list)[data-variant=line] *):after{content:var(--tw-content);display:none}@media (hover:hover){.hover\:bg-\[color-mix\(in_oklab\,var\(--ink\)_8\%\,transparent\)\]:hover{background-color:var(--ink)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-\[color-mix\(in_oklab\,var\(--ink\)_8\%\,transparent\)\]:hover{background-color:color-mix(in oklab,var(--ink) 8%,transparent)}}.hover\:bg-\[color-mix\(in_oklab\,var\(--ink\)_11\%\,transparent\)\]:hover{background-color:var(--ink)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-\[color-mix\(in_oklab\,var\(--ink\)_11\%\,transparent\)\]:hover{background-color:color-mix(in oklab,var(--ink) 11%,transparent)}}.hover\:bg-\[color-mix\(in_oklab\,var\(--ink\)_18\%\,transparent\)\]:hover{background-color:var(--ink)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-\[color-mix\(in_oklab\,var\(--ink\)_18\%\,transparent\)\]:hover{background-color:color-mix(in oklab,var(--ink) 18%,transparent)}}.hover\:bg-foreground\/5:hover{background-color:var(--foreground)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-foreground\/5:hover{background-color:color-mix(in oklab, var(--foreground) 5%, transparent)}}.hover\:text-foreground:hover{color:var(--foreground)}.hover\:no-underline:hover{text-decoration-line:none}}.focus-visible\:border-foreground:focus-visible{border-color:var(--foreground)}.focus-visible\:bg-foreground\/10:focus-visible{background-color:var(--foreground)}@supports (color:color-mix(in lab, red, red)){.focus-visible\:bg-foreground\/10:focus-visible{background-color:color-mix(in oklab, var(--foreground) 10%, transparent)}}.focus-visible\:outline-2:focus-visible{outline-style:var(--tw-outline-style);outline-width:2px}.focus-visible\:outline-offset-2:focus-visible{outline-offset:2px}.focus-visible\:outline-offset-\[-2px\]:focus-visible{outline-offset:-2px}.focus-visible\:outline-\[var\(--ink\)\]:focus-visible{outline-color:var(--ink)}.focus-visible\:outline-solid:focus-visible{--tw-outline-style:solid;outline-style:solid}.active\:opacity-100:active{opacity:1}.disabled\:pointer-events-none:disabled{pointer-events:none}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-40:disabled{opacity:.4}.disabled\:opacity-50:disabled{opacity:.5}.has-\[\[data-visual\=compact\]\]\:rounded-none:has([data-visual=compact]){border-radius:0}.has-\[\[data-visual\=compact\]\]\:bg-transparent:has([data-visual=compact]){background-color:#0000}.has-\[\[data-visual\=compact\]\]\:p-0:has([data-visual=compact]){padding:calc(var(--spacing) * 0)}.aria-invalid\:border-destructive[aria-invalid=true],.aria-invalid\:focus-visible\:border-destructive[aria-invalid=true]:focus-visible{border-color:var(--destructive)}.aria-invalid\:focus-visible\:outline-\[var\(--destructive\)\][aria-invalid=true]:focus-visible{outline-color:var(--destructive)}.data-disabled\:pointer-events-none[data-disabled]{pointer-events:none}.data-disabled\:opacity-50[data-disabled]{opacity:.5}.data-placeholder\:text-muted-foreground[data-placeholder]{color:var(--muted-foreground)}.data-\[disabled\]\:pointer-events-none[data-disabled]{pointer-events:none}.data-\[disabled\]\:opacity-50[data-disabled]{opacity:.5}.data-\[highlighted\]\:bg-foreground\/10[data-highlighted]{background-color:var(--foreground)}@supports (color:color-mix(in lab, red, red)){.data-\[highlighted\]\:bg-foreground\/10[data-highlighted]{background-color:color-mix(in oklab, var(--foreground) 10%, transparent)}}.data-\[highlighted\]\:bg-foreground\/\[0\.08\][data-highlighted]{background-color:var(--foreground)}@supports (color:color-mix(in lab, red, red)){.data-\[highlighted\]\:bg-foreground\/\[0\.08\][data-highlighted]{background-color:color-mix(in oklab, var(--foreground) 8%, transparent)}}.data-\[highlighted\]\:text-foreground[data-highlighted]{color:var(--foreground)}.data-\[orientation\=horizontal\]\:h-1[data-orientation=horizontal]{height:calc(var(--spacing) * 1)}.data-\[orientation\=horizontal\]\:h-full[data-orientation=horizontal]{height:100%}.data-\[orientation\=horizontal\]\:h-px[data-orientation=horizontal]{height:1px}.data-\[orientation\=horizontal\]\:w-full[data-orientation=horizontal]{width:100%}.data-\[orientation\=vertical\]\:flex[data-orientation=vertical]{display:flex}.data-\[orientation\=vertical\]\:h-32[data-orientation=vertical]{height:calc(var(--spacing) * 32)}.data-\[orientation\=vertical\]\:h-full[data-orientation=vertical]{height:100%}.data-\[orientation\=vertical\]\:min-h-0[data-orientation=vertical]{min-height:calc(var(--spacing) * 0)}.data-\[orientation\=vertical\]\:w-1[data-orientation=vertical]{width:calc(var(--spacing) * 1)}.data-\[orientation\=vertical\]\:w-6[data-orientation=vertical]{width:calc(var(--spacing) * 6)}.data-\[orientation\=vertical\]\:w-full[data-orientation=vertical]{width:100%}.data-\[orientation\=vertical\]\:w-px[data-orientation=vertical]{width:1px}.data-\[orientation\=vertical\]\:flex-col[data-orientation=vertical]{flex-direction:column}.data-\[orientation\=vertical\]\:items-start[data-orientation=vertical]{align-items:flex-start}.data-\[orientation\=vertical\]\:gap-4[data-orientation=vertical]{gap:calc(var(--spacing) * 4)}.data-\[size\=default\]\:h-8[data-size=default]{height:calc(var(--spacing) * 8)}.data-\[size\=sm\]\:h-7[data-size=sm]{height:calc(var(--spacing) * 7)}.data-\[state\=active\]\:bg-\[var\(--ui-surface\,var\(--paper\)\)\][data-state=active]{background-color:var(--ui-surface,var(--paper))}.data-\[state\=active\]\:bg-transparent[data-state=active]{background-color:#0000}.data-\[state\=active\]\:font-medium[data-state=active]{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.data-\[state\=active\]\:font-normal[data-state=active]{--tw-font-weight:var(--font-weight-normal);font-weight:var(--font-weight-normal)}.data-\[state\=active\]\:text-foreground[data-state=active]{color:var(--foreground)}.data-\[state\=active\]\:shadow-sm[data-state=active]{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.group-data-\[variant\=line\]\/tabs-list\:data-\[state\=active\]\:border-foreground:is(:where(.group\/tabs-list)[data-variant=line] *)[data-state=active]{border-color:var(--foreground)}.group-data-\[variant\=line\]\/tabs-list\:data-\[state\=active\]\:bg-transparent:is(:where(.group\/tabs-list)[data-variant=line] *)[data-state=active]{background-color:#0000}.group-data-\[variant\=line\]\/tabs-list\:data-\[state\=active\]\:shadow-none:is(:where(.group\/tabs-list)[data-variant=line] *)[data-state=active]{--tw-shadow:0 0 #0000;box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.data-\[state\=checked\]\:translate-x-3[data-state=checked]{--tw-translate-x:calc(var(--spacing) * 3);translate:var(--tw-translate-x) var(--tw-translate-y)}.data-\[state\=checked\]\:border-foreground[data-state=checked]{border-color:var(--foreground)}.data-\[state\=checked\]\:bg-\[var\(--paper\)\][data-state=checked]{background-color:var(--paper)}.data-\[state\=checked\]\:bg-foreground[data-state=checked]{background-color:var(--foreground)}.data-\[state\=checked\]\:font-semibold[data-state=checked]{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.aria-invalid\:data-\[state\=checked\]\:border-destructive[aria-invalid=true][data-state=checked]{border-color:var(--destructive)}.data-\[state\=inactive\]\:text-muted-foreground[data-state=inactive]{color:var(--muted-foreground)}.data-\[state\=indeterminate\]\:border-foreground[data-state=indeterminate]{border-color:var(--foreground)}.data-\[state\=indeterminate\]\:bg-foreground[data-state=indeterminate]{background-color:var(--foreground)}.aria-invalid\:data-\[state\=indeterminate\]\:border-destructive[aria-invalid=true][data-state=indeterminate]{border-color:var(--destructive)}.data-\[state\=open\]\:bg-foreground\/10[data-state=open]{background-color:var(--foreground)}@supports (color:color-mix(in lab, red, red)){.data-\[state\=open\]\:bg-foreground\/10[data-state=open]{background-color:color-mix(in oklab, var(--foreground) 10%, transparent)}}.data-\[state\=open\]\:bg-foreground\/\[0\.08\][data-state=open]{background-color:var(--foreground)}@supports (color:color-mix(in lab, red, red)){.data-\[state\=open\]\:bg-foreground\/\[0\.08\][data-state=open]{background-color:color-mix(in oklab, var(--foreground) 8%, transparent)}}@media (prefers-reduced-motion:no-preference){.motion-safe\:animate-pulse{animation:var(--animate-pulse)}}@media (prefers-reduced-motion:reduce){.motion-reduce\:animate-none{animation:none}.motion-reduce\:transition-none{transition-property:none}}@media (min-width:40rem){.sm\:flex-row{flex-direction:row}.sm\:items-start{align-items:flex-start}.sm\:gap-3{gap:calc(var(--spacing) * 3)}}.\[\&_p\]\:not-last\:mb-2 p:not(:last-child){margin-bottom:calc(var(--spacing) * 2)}.\[\&_svg\]\:size-3 svg{width:calc(var(--spacing) * 3);height:calc(var(--spacing) * 3)}.\[\&_svg\]\:shrink-0 svg{flex-shrink:0}.\[\&_svg\:not\(\[class\*\=\'size-\'\]\)\]\:size-3\.5 svg:not([class*=size-]){width:calc(var(--spacing) * 3.5);height:calc(var(--spacing) * 3.5)}.\[\&\:has\(\>svg\)\]\:pl-10:has(>svg){padding-left:calc(var(--spacing) * 10)}.\[\&\>\[data-slot\=field-content\]\]\:min-w-0>[data-slot=field-content]{min-width:calc(var(--spacing) * 0)}.\[\&\>\[data-slot\=field-content\]\]\:flex-1>[data-slot=field-content]{flex:1}@media (min-width:40rem){.sm\:\[\&\>\[data-slot\=field-content\]\]\:flex-1>[data-slot=field-content]{flex:1}}.\[\&\>\[data-slot\=field-label\]\]\:mb-0>[data-slot=field-label]{margin-bottom:calc(var(--spacing) * 0)}.\[\&\>\[data-slot\=field-label\]\]\:shrink-0>[data-slot=field-label]{flex-shrink:0}.\[\&\>\[data-slot\=field-label\]\]\:pt-1\.5>[data-slot=field-label]{padding-top:calc(var(--spacing) * 1.5)}@media (min-width:40rem){.sm\:\[\&\>\[data-slot\=field-label\]\]\:mb-0>[data-slot=field-label]{margin-bottom:calc(var(--spacing) * 0)}.sm\:\[\&\>\[data-slot\=field-label\]\]\:shrink-0>[data-slot=field-label]{flex-shrink:0}.sm\:\[\&\>\[data-slot\=field-label\]\]\:pt-1\.5>[data-slot=field-label]{padding-top:calc(var(--spacing) * 1.5)}}.\[\&\>svg\]\:absolute>svg{position:absolute}.\[\&\>svg\]\:top-3>svg{top:calc(var(--spacing) * 3)}.\[\&\>svg\]\:left-3>svg{left:calc(var(--spacing) * 3)}.\[\&\>svg\]\:size-4>svg{width:calc(var(--spacing) * 4);height:calc(var(--spacing) * 4)}}:root,[data-theme=light]{--foreground:#121212;--background:#efefef;--muted-foreground:#646464;--border:#12121224;--destructive:#7b2626;--paper:#fafafa;--ui-surface:#fafafa;--ink:#1a1a1a;--ink-muted:#6f6f6f}[data-theme=dark]{--foreground:#ececec;--background:#0d0d0d;--muted-foreground:#969696;--border:#ececec24;--destructive:#d47a7a;--paper:#0d0d0d;--ui-surface:#1a1a1a;--ink:#ececec;--ink-muted:#9a9a9a}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-ordinal{syntax:"*";inherits:false}@property --tw-slashed-zero{syntax:"*";inherits:false}@property --tw-numeric-figure{syntax:"*";inherits:false}@property --tw-numeric-spacing{syntax:"*";inherits:false}@property --tw-numeric-fraction{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-content{syntax:"*";inherits:false;initial-value:""}@keyframes pulse{50%{opacity:.5}}
|
|
2
|
+
@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-space-y-reverse:0;--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-ordinal:initial;--tw-slashed-zero:initial;--tw-numeric-figure:initial;--tw-numeric-spacing:initial;--tw-numeric-fraction:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-content:""}}}@layer theme{:root,:host{--color-black:#000;--spacing:.25rem;--container-md:28rem;--text-xs:.75rem;--text-xs--line-height:calc(1 / .75);--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--leading-relaxed:1.625;--radius-sm:.25rem;--radius-md:.375rem;--radius-lg:.5rem;--animate-pulse:pulse 2s cubic-bezier(.4, 0, .6, 1) infinite;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1)}}@layer base{:where([data-slot=button],[data-slot=input],[data-slot^=field],[data-slot^=select-],[data-slot^=radio-group],[data-slot^=tabs],[data-slot=label],[data-slot^=accordion-],[data-slot^=alert],[data-slot=badge],[data-slot^=checkbox],[data-slot^=dialog-],[data-slot^=popover-],[data-slot^=progress],[data-slot=separator],[data-slot=skeleton],[data-slot^=slider],[data-slot^=switch],[data-slot=textarea],[data-slot=tooltip-content],[data-slot^=menubar],[data-slot^=command-menu-],[data-slot=dropdown-menu-content],[data-slot=context-menu-content]){box-sizing:border-box;border:0 solid var(--border)}:where([data-slot=button],[data-slot=select-trigger],[data-slot=select-scroll-up-button],[data-slot=select-scroll-down-button],[data-slot=radio-group-item],[data-slot=tabs-trigger],[data-slot=input],[data-slot=textarea],[data-slot=accordion-trigger],[data-slot=checkbox],[data-slot=dialog-close],[data-slot=slider-thumb],[data-slot=switch],[data-slot=menubar-trigger],[data-slot=command-menu-trigger]){font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;text-transform:none;background-color:#0000;border-radius:0;margin:0;padding:0}button:where([data-slot=button],[data-slot=select-trigger],[data-slot=select-scroll-up-button],[data-slot=select-scroll-down-button],[data-slot=radio-group-item],[data-slot=tabs-trigger],[data-slot=accordion-trigger],[data-slot=checkbox],[data-slot=dialog-close],[data-slot=slider-thumb],[data-slot=switch],[data-slot=menubar-trigger],[data-slot=command-menu-trigger]){appearance:button}:where([data-slot=field-set]){min-width:0;margin:0;padding:0}:where([data-slot=field-legend]){padding:0}:where([data-slot=field-description],[data-slot=field-error] ul){margin:0;padding:0}:where([data-slot=accordion-header],[data-slot=alert-title],[data-slot=dialog-title],[data-slot=popover-title]){font-size:inherit;font-weight:inherit;margin:0}:where([data-slot=dialog-description],[data-slot=popover-description],[data-slot=alert-description] p){margin:0}:where([data-slot=select-trigger],[data-slot=select-content],[data-slot=accordion-trigger],[data-slot=alert],[data-slot=badge],[data-slot=checkbox],[data-slot=dialog-content],[data-slot^=menubar],[data-slot^=command-menu-]) svg{vertical-align:middle;display:block}}@layer components{:root{--motion-ease-out:cubic-bezier(.22, 1, .36, 1);--motion-duration-enter:.16s;--motion-duration-exit:.11s;--motion-duration-modal-enter:.2s;--motion-duration-modal-exit:.14s;--motion-duration-collapse:.2s;--motion-pop-scale:.97;--motion-pop-exit-scale:.99;--motion-modal-scale:.96;--motion-modal-exit-scale:.98}@keyframes motion-fade-in{0%{opacity:0}}@keyframes motion-fade-out{to{opacity:0}}@keyframes motion-pop-in{0%{opacity:0;scale:var(--motion-pop-scale)}}@keyframes motion-pop-out{to{opacity:0;scale:var(--motion-pop-exit-scale)}}@keyframes motion-modal-in{0%{opacity:0;scale:var(--motion-modal-scale)}}@keyframes motion-modal-out{to{opacity:0;scale:var(--motion-modal-exit-scale)}}@keyframes motion-collapse-open{0%{height:0}to{height:var(--radix-accordion-content-height)}}@keyframes motion-collapse-close{0%{height:var(--radix-accordion-content-height)}to{height:0}}.motion-pop{transform-origin:var(--radix-popover-content-transform-origin,var(--radix-tooltip-content-transform-origin,var(--radix-menubar-content-transform-origin,var(--radix-dropdown-menu-content-transform-origin,var(--radix-context-menu-content-transform-origin,center)))))}.motion-pop:is([data-state=open],[data-state=delayed-open]){animation:motion-pop-in var(--motion-duration-enter) var(--motion-ease-out)}.motion-pop[data-state=closed]{animation:motion-pop-out var(--motion-duration-exit) var(--motion-ease-out) forwards}.motion-fade[data-state=open]{animation:motion-fade-in var(--motion-duration-modal-enter) var(--motion-ease-out)}.motion-fade[data-state=closed]{animation:motion-fade-out var(--motion-duration-modal-exit) var(--motion-ease-out) forwards}.motion-modal[data-state=open]{animation:motion-modal-in var(--motion-duration-modal-enter) var(--motion-ease-out)}.motion-modal[data-state=closed]{animation:motion-modal-out var(--motion-duration-modal-exit) var(--motion-ease-out) forwards}.motion-collapse{overflow:hidden}.motion-collapse[data-state=open]{animation:motion-collapse-open var(--motion-duration-collapse) var(--motion-ease-out)}.motion-collapse[data-state=closed]{animation:motion-collapse-close var(--motion-duration-collapse) var(--motion-ease-out)}@media (prefers-reduced-motion:reduce){:root{--motion-pop-scale:1;--motion-pop-exit-scale:1;--motion-modal-scale:1;--motion-modal-exit-scale:1}.motion-collapse{animation:none!important}}}@layer utilities{.pointer-events-none{pointer-events:none}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.inset-0{inset:calc(var(--spacing) * 0)}.top-1\/2{top:50%}.top-3{top:calc(var(--spacing) * 3)}.right-3{right:calc(var(--spacing) * 3)}.left-1\.5{left:calc(var(--spacing) * 1.5)}.left-1\/2{left:50%}.left-2{left:calc(var(--spacing) * 2)}.z-50{z-index:50}.mx-1{margin-inline:calc(var(--spacing) * 1)}.my-1{margin-block:calc(var(--spacing) * 1)}.mb-1{margin-bottom:calc(var(--spacing) * 1)}.mb-2{margin-bottom:calc(var(--spacing) * 2)}.ml-4{margin-left:calc(var(--spacing) * 4)}.ml-auto{margin-left:auto}.block{display:block}.flex{display:flex}.grid{display:grid}.inline-flex{display:inline-flex}.size-2{width:calc(var(--spacing) * 2);height:calc(var(--spacing) * 2)}.size-3{width:calc(var(--spacing) * 3);height:calc(var(--spacing) * 3)}.size-3\.5{width:calc(var(--spacing) * 3.5);height:calc(var(--spacing) * 3.5)}.size-4{width:calc(var(--spacing) * 4);height:calc(var(--spacing) * 4)}.size-7{width:calc(var(--spacing) * 7);height:calc(var(--spacing) * 7)}.h-1\.5{height:calc(var(--spacing) * 1.5)}.h-5{height:calc(var(--spacing) * 5)}.h-7{height:calc(var(--spacing) * 7)}.h-8{height:calc(var(--spacing) * 8)}.h-fit{height:fit-content}.h-full{height:100%}.h-px{height:1px}.max-h-\(--radix-context-menu-content-available-height\){max-height:var(--radix-context-menu-content-available-height)}.max-h-\(--radix-dropdown-menu-content-available-height\){max-height:var(--radix-dropdown-menu-content-available-height)}.max-h-\(--radix-menubar-content-available-height\){max-height:var(--radix-menubar-content-available-height)}.max-h-\(--radix-popover-content-available-height\){max-height:var(--radix-popover-content-available-height)}.max-h-\(--radix-select-content-available-height\){max-height:var(--radix-select-content-available-height)}.max-h-\[calc\(100dvh-2rem\)\]{max-height:calc(100dvh - 2rem)}.min-h-5{min-height:calc(var(--spacing) * 5)}.min-h-6{min-height:calc(var(--spacing) * 6)}.min-h-7{min-height:calc(var(--spacing) * 7)}.min-h-8{min-height:calc(var(--spacing) * 8)}.min-h-20{min-height:calc(var(--spacing) * 20)}.w-1\/2{width:50%}.w-8{width:calc(var(--spacing) * 8)}.w-64{width:calc(var(--spacing) * 64)}.w-\[calc\(100\%-2rem\)\]{width:calc(100% - 2rem)}.w-fit{width:fit-content}.w-full{width:100%}.max-w-\[calc\(100vw-2rem\)\]{max-width:calc(100vw - 2rem)}.max-w-\[min\(16rem\,calc\(100vw-2rem\)\)\]{max-width:min(16rem,100vw - 2rem)}.max-w-\[min\(20rem\,calc\(100vw-2rem\)\)\]{max-width:min(20rem,100vw - 2rem)}.max-w-\[min\(20rem\,var\(--radix-context-menu-content-available-width\)\)\]{max-width:min(20rem, var(--radix-context-menu-content-available-width))}.max-w-\[min\(20rem\,var\(--radix-dropdown-menu-content-available-width\)\)\]{max-width:min(20rem, var(--radix-dropdown-menu-content-available-width))}.max-w-\[min\(20rem\,var\(--radix-menubar-content-available-width\)\)\]{max-width:min(20rem, var(--radix-menubar-content-available-width))}.max-w-full{max-width:100%}.max-w-md{max-width:var(--container-md)}.min-w-\(--radix-select-trigger-width\){min-width:var(--radix-select-trigger-width)}.min-w-0{min-width:calc(var(--spacing) * 0)}.min-w-32{min-width:calc(var(--spacing) * 32)}.min-w-48{min-width:calc(var(--spacing) * 48)}.min-w-\[min\(12rem\,var\(--radix-context-menu-content-available-width\)\)\]{min-width:min(12rem, var(--radix-context-menu-content-available-width))}.min-w-\[min\(12rem\,var\(--radix-dropdown-menu-content-available-width\)\)\]{min-width:min(12rem, var(--radix-dropdown-menu-content-available-width))}.min-w-\[min\(12rem\,var\(--radix-menubar-content-available-width\)\)\]{min-width:min(12rem, var(--radix-menubar-content-available-width))}.flex-1{flex:1}.flex-none{flex:none}.shrink-0{flex-shrink:0}.grow{flex-grow:1}.-translate-x-1\/2{--tw-translate-x:calc(calc(1 / 2 * 100%) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.-translate-y-1\/2{--tw-translate-y:calc(calc(1 / 2 * 100%) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.cursor-default{cursor:default}.touch-none{touch-action:none}.resize-y{resize:vertical}.list-disc{list-style-type:disc}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.place-items-center{place-items:center}.items-center{align-items:center}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.gap-0\.5{gap:calc(var(--spacing) * .5)}.gap-1{gap:calc(var(--spacing) * 1)}.gap-1\.5{gap:calc(var(--spacing) * 1.5)}.gap-2{gap:calc(var(--spacing) * 2)}.gap-3{gap:calc(var(--spacing) * 3)}.gap-4{gap:calc(var(--spacing) * 4)}:where(.space-y-3>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 3) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 3) * calc(1 - var(--tw-space-y-reverse)))}.overflow-hidden{overflow:hidden}.overflow-x-hidden{overflow-x:hidden}.overflow-y-auto{overflow-y:auto}.rounded-full{border-radius:3.40282e38px}.rounded-lg{border-radius:var(--radius-lg)}.rounded-md{border-radius:var(--radius-md)}.rounded-sm{border-radius:var(--radius-sm)}.border{border-style:var(--tw-border-style);border-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-\[var\(--ink-muted\)\]{border-color:var(--ink-muted)}.border-border{border-color:var(--border)}.border-foreground\/10{border-color:var(--foreground)}@supports (color:color-mix(in lab, red, red)){.border-foreground\/10{border-color:color-mix(in oklab, var(--foreground) 10%, transparent)}}.border-foreground\/40{border-color:var(--foreground)}@supports (color:color-mix(in lab, red, red)){.border-foreground\/40{border-color:color-mix(in oklab, var(--foreground) 40%, transparent)}}.border-foreground\/50{border-color:var(--foreground)}@supports (color:color-mix(in lab, red, red)){.border-foreground\/50{border-color:color-mix(in oklab, var(--foreground) 50%, transparent)}}.bg-\[color-mix\(in_oklab\,var\(--ink\)_8\%\,transparent\)\]{background-color:var(--ink)}@supports (color:color-mix(in lab, red, red)){.bg-\[color-mix\(in_oklab\,var\(--ink\)_8\%\,transparent\)\]{background-color:color-mix(in oklab,var(--ink) 8%,transparent)}}.bg-\[color-mix\(in_oklab\,var\(--ink\)_14\%\,transparent\)\]{background-color:var(--ink)}@supports (color:color-mix(in lab, red, red)){.bg-\[color-mix\(in_oklab\,var\(--ink\)_14\%\,transparent\)\]{background-color:color-mix(in oklab,var(--ink) 14%,transparent)}}.bg-\[var\(--paper\)\]{background-color:var(--paper)}.bg-\[var\(--ui-surface\,var\(--paper\)\)\]{background-color:var(--ui-surface,var(--paper))}.bg-black\/40{background-color:#0006}@supports (color:color-mix(in lab, red, red)){.bg-black\/40{background-color:color-mix(in oklab, var(--color-black) 40%, transparent)}}.bg-border{background-color:var(--border)}.bg-current{background-color:currentColor}.bg-destructive\/10{background-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.bg-destructive\/10{background-color:color-mix(in oklab, var(--destructive) 10%, transparent)}}.bg-foreground\/5{background-color:var(--foreground)}@supports (color:color-mix(in lab, red, red)){.bg-foreground\/5{background-color:color-mix(in oklab, var(--foreground) 5%, transparent)}}.bg-foreground\/10{background-color:var(--foreground)}@supports (color:color-mix(in lab, red, red)){.bg-foreground\/10{background-color:color-mix(in oklab, var(--foreground) 10%, transparent)}}.bg-foreground\/60{background-color:var(--foreground)}@supports (color:color-mix(in lab, red, red)){.bg-foreground\/60{background-color:color-mix(in oklab, var(--foreground) 60%, transparent)}}.bg-foreground\/65{background-color:var(--foreground)}@supports (color:color-mix(in lab, red, red)){.bg-foreground\/65{background-color:color-mix(in oklab, var(--foreground) 65%, transparent)}}.bg-foreground\/\[0\.03\]{background-color:var(--foreground)}@supports (color:color-mix(in lab, red, red)){.bg-foreground\/\[0\.03\]{background-color:color-mix(in oklab, var(--foreground) 3%, transparent)}}.bg-foreground\/\[0\.06\]{background-color:var(--foreground)}@supports (color:color-mix(in lab, red, red)){.bg-foreground\/\[0\.06\]{background-color:color-mix(in oklab, var(--foreground) 6%, transparent)}}.bg-foreground\/\[0\.07\]{background-color:var(--foreground)}@supports (color:color-mix(in lab, red, red)){.bg-foreground\/\[0\.07\]{background-color:color-mix(in oklab, var(--foreground) 7.0%, transparent)}}.bg-foreground\/\[0\.035\]{background-color:var(--foreground)}@supports (color:color-mix(in lab, red, red)){.bg-foreground\/\[0\.035\]{background-color:color-mix(in oklab, var(--foreground) 3.5%, transparent)}}.bg-transparent{background-color:#0000}.p-0\.5{padding:calc(var(--spacing) * .5)}.p-3{padding:calc(var(--spacing) * 3)}.p-5{padding:calc(var(--spacing) * 5)}.px-0{padding-inline:calc(var(--spacing) * 0)}.px-1\.5{padding-inline:calc(var(--spacing) * 1.5)}.px-2{padding-inline:calc(var(--spacing) * 2)}.px-2\.5{padding-inline:calc(var(--spacing) * 2.5)}.px-3{padding-inline:calc(var(--spacing) * 3)}.px-px{padding-inline:1px}.py-0{padding-block:calc(var(--spacing) * 0)}.py-0\.5{padding-block:calc(var(--spacing) * .5)}.py-1{padding-block:calc(var(--spacing) * 1)}.py-1\.5{padding-block:calc(var(--spacing) * 1.5)}.py-2{padding-block:calc(var(--spacing) * 2)}.pt-1{padding-top:calc(var(--spacing) * 1)}.pr-2{padding-right:calc(var(--spacing) * 2)}.pr-6{padding-right:calc(var(--spacing) * 6)}.pb-3{padding-bottom:calc(var(--spacing) * 3)}.pl-5{padding-left:calc(var(--spacing) * 5)}.pl-6{padding-left:calc(var(--spacing) * 6)}.pl-7{padding-left:calc(var(--spacing) * 7)}.text-left{text-align:left}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.text-\[0\.6875rem\]{font-size:.6875rem}.leading-4{--tw-leading:calc(var(--spacing) * 4);line-height:calc(var(--spacing) * 4)}.leading-none{--tw-leading:1;line-height:1}.leading-relaxed{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.\[overflow-wrap\:anywhere\]{overflow-wrap:anywhere}.whitespace-normal{white-space:normal}.whitespace-nowrap{white-space:nowrap}.text-\[var\(--ink\)\]{color:var(--ink)}.text-background{color:var(--background)}.text-destructive{color:var(--destructive)}.text-foreground{color:var(--foreground)}.text-muted-foreground{color:var(--muted-foreground)}.tabular-nums{--tw-numeric-spacing:tabular-nums;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.no-underline{text-decoration-line:none}.shadow-lg{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a), 0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-xl{--tw-shadow:0 20px 25px -5px var(--tw-shadow-color,#0000001a), 0 8px 10px -6px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-xs{--tw-shadow:0 1px 2px 0 var(--tw-shadow-color,#0000000d);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.transition-\[width\]{transition-property:width;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.outline-none{--tw-outline-style:none;outline-style:none}.select-none{-webkit-user-select:none;user-select:none}.group-data-\[disabled\=true\]\:pointer-events-none:is(:where(.group)[data-disabled=true] *){pointer-events:none}.group-data-\[disabled\=true\]\:opacity-50:is(:where(.group)[data-disabled=true] *),.group-data-\[disabled\=true\]\/field\:opacity-50:is(:where(.group\/field)[data-disabled=true] *){opacity:.5}.group-data-\[orientation\=vertical\]\/tabs\:flex-col:is(:where(.group\/tabs)[data-orientation=vertical] *){flex-direction:column}.group-data-\[orientation\=vertical\]\/tabs\:items-stretch:is(:where(.group\/tabs)[data-orientation=vertical] *){align-items:stretch}.group-data-\[orientation\=vertical\]\/tabs\:border-r:is(:where(.group\/tabs)[data-orientation=vertical] *){border-right-style:var(--tw-border-style);border-right-width:1px}.group-data-\[orientation\=vertical\]\/tabs\:border-b-0:is(:where(.group\/tabs)[data-orientation=vertical] *){border-bottom-style:var(--tw-border-style);border-bottom-width:0}.group-data-\[state\=active\]\:bg-foreground\/10:is(:where(.group)[data-state=active] *){background-color:var(--foreground)}@supports (color:color-mix(in lab, red, red)){.group-data-\[state\=active\]\:bg-foreground\/10:is(:where(.group)[data-state=active] *){background-color:color-mix(in oklab, var(--foreground) 10%, transparent)}}.group-data-\[state\=active\]\:font-medium:is(:where(.group)[data-state=active] *){--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.group-data-\[state\=active\]\:text-foreground:is(:where(.group)[data-state=active] *){color:var(--foreground)}.group-data-\[state\=checked\]\/indicator\:hidden:is(:where(.group\/indicator)[data-state=checked] *),.group-data-\[state\=indeterminate\]\/indicator\:hidden:is(:where(.group\/indicator)[data-state=indeterminate] *){display:none}.group-data-\[state\=open\]\:rotate-180:is(:where(.group)[data-state=open] *){rotate:180deg}.group-data-\[variant\=line\]\/tabs-list\:rounded-none:is(:where(.group\/tabs-list)[data-variant=line] *){border-radius:0}.group-data-\[variant\=line\]\/tabs-list\:border-b-2:is(:where(.group\/tabs-list)[data-variant=line] *){border-bottom-style:var(--tw-border-style);border-bottom-width:2px}.group-data-\[variant\=line\]\/tabs-list\:border-transparent:is(:where(.group\/tabs-list)[data-variant=line] *){border-color:#0000}.group-data-\[variant\=line\]\/tabs-list\:px-2:is(:where(.group\/tabs-list)[data-variant=line] *){padding-inline:calc(var(--spacing) * 2)}.group-data-\[variant\=line\]\/tabs-list\:py-2:is(:where(.group\/tabs-list)[data-variant=line] *){padding-block:calc(var(--spacing) * 2)}.group-data-\[variant\=line\]\/tabs-list\:group-data-\[orientation\=vertical\]\/tabs\:border-r-2:is(:where(.group\/tabs-list)[data-variant=line] *):is(:where(.group\/tabs)[data-orientation=vertical] *){border-right-style:var(--tw-border-style);border-right-width:2px}.group-data-\[variant\=line\]\/tabs-list\:group-data-\[orientation\=vertical\]\/tabs\:border-b-0:is(:where(.group\/tabs-list)[data-variant=line] *):is(:where(.group\/tabs)[data-orientation=vertical] *){border-bottom-style:var(--tw-border-style);border-bottom-width:0}.peer-disabled\:cursor-not-allowed:is(:where(.peer):disabled~*){cursor:not-allowed}.peer-disabled\:opacity-50:is(:where(.peer):disabled~*){opacity:.5}.placeholder\:text-muted-foreground::placeholder{color:var(--muted-foreground)}.before\:absolute:before{content:var(--tw-content);position:absolute}.before\:-inset-1:before{content:var(--tw-content);inset:calc(var(--spacing) * -1)}.before\:inset-x-0:before{content:var(--tw-content);inset-inline:calc(var(--spacing) * 0)}.before\:-inset-y-0\.5:before{content:var(--tw-content);inset-block:calc(var(--spacing) * -.5)}.before\:hidden:before{content:var(--tw-content);display:none}.before\:content-\[\'\'\]:before{--tw-content:"";content:var(--tw-content)}.group-data-\[variant\=line\]\/tabs-list\:before\:hidden:is(:where(.group\/tabs-list)[data-variant=line] *):before,.after\:hidden:after,.group-data-\[variant\=line\]\/tabs-list\:after\:hidden:is(:where(.group\/tabs-list)[data-variant=line] *):after{content:var(--tw-content);display:none}@media (hover:hover){.hover\:bg-\[color-mix\(in_oklab\,var\(--ink\)_8\%\,transparent\)\]:hover{background-color:var(--ink)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-\[color-mix\(in_oklab\,var\(--ink\)_8\%\,transparent\)\]:hover{background-color:color-mix(in oklab,var(--ink) 8%,transparent)}}.hover\:bg-\[color-mix\(in_oklab\,var\(--ink\)_11\%\,transparent\)\]:hover{background-color:var(--ink)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-\[color-mix\(in_oklab\,var\(--ink\)_11\%\,transparent\)\]:hover{background-color:color-mix(in oklab,var(--ink) 11%,transparent)}}.hover\:bg-\[color-mix\(in_oklab\,var\(--ink\)_18\%\,transparent\)\]:hover{background-color:var(--ink)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-\[color-mix\(in_oklab\,var\(--ink\)_18\%\,transparent\)\]:hover{background-color:color-mix(in oklab,var(--ink) 18%,transparent)}}.hover\:bg-foreground\/5:hover{background-color:var(--foreground)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-foreground\/5:hover{background-color:color-mix(in oklab, var(--foreground) 5%, transparent)}}.hover\:text-foreground:hover{color:var(--foreground)}.hover\:no-underline:hover{text-decoration-line:none}}.focus-visible\:bg-foreground\/10:focus-visible{background-color:var(--foreground)}@supports (color:color-mix(in lab, red, red)){.focus-visible\:bg-foreground\/10:focus-visible{background-color:color-mix(in oklab, var(--foreground) 10%, transparent)}}.focus-visible\:outline-\[length\:var\(--focus-ring-width\)\]:focus-visible{outline-style:var(--tw-outline-style);outline-width:var(--focus-ring-width)}.focus-visible\:outline-offset-\[var\(--focus-ring-inset-offset\)\]:focus-visible{outline-offset:var(--focus-ring-inset-offset)}.focus-visible\:outline-offset-\[var\(--focus-ring-offset\)\]:focus-visible{outline-offset:var(--focus-ring-offset)}.focus-visible\:outline-\[var\(--ui-focus\)\]:focus-visible{outline-color:var(--ui-focus)}.focus-visible\:outline-solid:focus-visible{--tw-outline-style:solid;outline-style:solid}.active\:opacity-100:active{opacity:1}.disabled\:pointer-events-none:disabled{pointer-events:none}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-40:disabled{opacity:.4}.disabled\:opacity-50:disabled{opacity:.5}.has-\[\[data-visual\=compact\]\]\:rounded-none:has([data-visual=compact]){border-radius:0}.has-\[\[data-visual\=compact\]\]\:bg-transparent:has([data-visual=compact]){background-color:#0000}.has-\[\[data-visual\=compact\]\]\:p-0:has([data-visual=compact]){padding:calc(var(--spacing) * 0)}.aria-invalid\:border-destructive[aria-invalid=true],.aria-invalid\:focus-visible\:border-destructive[aria-invalid=true]:focus-visible{border-color:var(--destructive)}.aria-invalid\:focus-visible\:outline-\[var\(--destructive\)\][aria-invalid=true]:focus-visible{outline-color:var(--destructive)}.data-disabled\:pointer-events-none[data-disabled]{pointer-events:none}.data-disabled\:opacity-50[data-disabled]{opacity:.5}.data-placeholder\:text-muted-foreground[data-placeholder]{color:var(--muted-foreground)}.data-\[disabled\]\:pointer-events-none[data-disabled]{pointer-events:none}.data-\[disabled\]\:opacity-50[data-disabled]{opacity:.5}.data-\[highlighted\]\:bg-foreground\/10[data-highlighted]{background-color:var(--foreground)}@supports (color:color-mix(in lab, red, red)){.data-\[highlighted\]\:bg-foreground\/10[data-highlighted]{background-color:color-mix(in oklab, var(--foreground) 10%, transparent)}}.data-\[highlighted\]\:bg-foreground\/\[0\.08\][data-highlighted]{background-color:var(--foreground)}@supports (color:color-mix(in lab, red, red)){.data-\[highlighted\]\:bg-foreground\/\[0\.08\][data-highlighted]{background-color:color-mix(in oklab, var(--foreground) 8%, transparent)}}.data-\[highlighted\]\:text-foreground[data-highlighted]{color:var(--foreground)}.data-\[orientation\=horizontal\]\:h-1[data-orientation=horizontal]{height:calc(var(--spacing) * 1)}.data-\[orientation\=horizontal\]\:h-full[data-orientation=horizontal]{height:100%}.data-\[orientation\=horizontal\]\:h-px[data-orientation=horizontal]{height:1px}.data-\[orientation\=horizontal\]\:w-full[data-orientation=horizontal]{width:100%}.data-\[orientation\=vertical\]\:flex[data-orientation=vertical]{display:flex}.data-\[orientation\=vertical\]\:h-32[data-orientation=vertical]{height:calc(var(--spacing) * 32)}.data-\[orientation\=vertical\]\:h-full[data-orientation=vertical]{height:100%}.data-\[orientation\=vertical\]\:min-h-0[data-orientation=vertical]{min-height:calc(var(--spacing) * 0)}.data-\[orientation\=vertical\]\:w-1[data-orientation=vertical]{width:calc(var(--spacing) * 1)}.data-\[orientation\=vertical\]\:w-6[data-orientation=vertical]{width:calc(var(--spacing) * 6)}.data-\[orientation\=vertical\]\:w-full[data-orientation=vertical]{width:100%}.data-\[orientation\=vertical\]\:w-px[data-orientation=vertical]{width:1px}.data-\[orientation\=vertical\]\:flex-col[data-orientation=vertical]{flex-direction:column}.data-\[orientation\=vertical\]\:items-start[data-orientation=vertical]{align-items:flex-start}.data-\[orientation\=vertical\]\:gap-4[data-orientation=vertical]{gap:calc(var(--spacing) * 4)}.data-\[size\=default\]\:h-8[data-size=default]{height:calc(var(--spacing) * 8)}.data-\[size\=sm\]\:h-7[data-size=sm]{height:calc(var(--spacing) * 7)}.data-\[state\=active\]\:bg-\[var\(--ui-surface\,var\(--paper\)\)\][data-state=active]{background-color:var(--ui-surface,var(--paper))}.data-\[state\=active\]\:bg-transparent[data-state=active]{background-color:#0000}.data-\[state\=active\]\:font-medium[data-state=active]{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.data-\[state\=active\]\:font-normal[data-state=active]{--tw-font-weight:var(--font-weight-normal);font-weight:var(--font-weight-normal)}.data-\[state\=active\]\:text-foreground[data-state=active]{color:var(--foreground)}.data-\[state\=active\]\:shadow-sm[data-state=active]{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.group-data-\[variant\=line\]\/tabs-list\:data-\[state\=active\]\:border-foreground:is(:where(.group\/tabs-list)[data-variant=line] *)[data-state=active]{border-color:var(--foreground)}.group-data-\[variant\=line\]\/tabs-list\:data-\[state\=active\]\:bg-transparent:is(:where(.group\/tabs-list)[data-variant=line] *)[data-state=active]{background-color:#0000}.group-data-\[variant\=line\]\/tabs-list\:data-\[state\=active\]\:shadow-none:is(:where(.group\/tabs-list)[data-variant=line] *)[data-state=active]{--tw-shadow:0 0 #0000;box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.data-\[state\=checked\]\:translate-x-3[data-state=checked]{--tw-translate-x:calc(var(--spacing) * 3);translate:var(--tw-translate-x) var(--tw-translate-y)}.data-\[state\=checked\]\:border-foreground[data-state=checked]{border-color:var(--foreground)}.data-\[state\=checked\]\:bg-\[var\(--paper\)\][data-state=checked]{background-color:var(--paper)}.data-\[state\=checked\]\:bg-foreground[data-state=checked]{background-color:var(--foreground)}.data-\[state\=checked\]\:font-semibold[data-state=checked]{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.data-\[state\=checked\]\:focus-visible\:outline-\[var\(--ui-focus-on-solid\)\][data-state=checked]:focus-visible{outline-color:var(--ui-focus-on-solid)}.aria-invalid\:data-\[state\=checked\]\:border-destructive[aria-invalid=true][data-state=checked]{border-color:var(--destructive)}.aria-invalid\:data-\[state\=checked\]\:focus-visible\:outline-\[var\(--destructive\)\][aria-invalid=true][data-state=checked]:focus-visible{outline-color:var(--destructive)}.data-\[state\=inactive\]\:text-muted-foreground[data-state=inactive]{color:var(--muted-foreground)}.data-\[state\=indeterminate\]\:border-foreground[data-state=indeterminate]{border-color:var(--foreground)}.data-\[state\=indeterminate\]\:bg-foreground[data-state=indeterminate]{background-color:var(--foreground)}.data-\[state\=indeterminate\]\:focus-visible\:outline-\[var\(--ui-focus-on-solid\)\][data-state=indeterminate]:focus-visible{outline-color:var(--ui-focus-on-solid)}.aria-invalid\:data-\[state\=indeterminate\]\:border-destructive[aria-invalid=true][data-state=indeterminate]{border-color:var(--destructive)}.aria-invalid\:data-\[state\=indeterminate\]\:focus-visible\:outline-\[var\(--destructive\)\][aria-invalid=true][data-state=indeterminate]:focus-visible{outline-color:var(--destructive)}.data-\[state\=open\]\:bg-foreground\/10[data-state=open]{background-color:var(--foreground)}@supports (color:color-mix(in lab, red, red)){.data-\[state\=open\]\:bg-foreground\/10[data-state=open]{background-color:color-mix(in oklab, var(--foreground) 10%, transparent)}}.data-\[state\=open\]\:bg-foreground\/\[0\.08\][data-state=open]{background-color:var(--foreground)}@supports (color:color-mix(in lab, red, red)){.data-\[state\=open\]\:bg-foreground\/\[0\.08\][data-state=open]{background-color:color-mix(in oklab, var(--foreground) 8%, transparent)}}@media (prefers-reduced-motion:no-preference){.motion-safe\:animate-pulse{animation:var(--animate-pulse)}}@media (prefers-reduced-motion:reduce){.motion-reduce\:animate-none{animation:none}.motion-reduce\:transition-none{transition-property:none}}@media (min-width:40rem){.sm\:flex-row{flex-direction:row}.sm\:items-start{align-items:flex-start}.sm\:gap-3{gap:calc(var(--spacing) * 3)}}.\[\&_p\]\:not-last\:mb-2 p:not(:last-child){margin-bottom:calc(var(--spacing) * 2)}.\[\&_svg\]\:size-3 svg{width:calc(var(--spacing) * 3);height:calc(var(--spacing) * 3)}.\[\&_svg\]\:shrink-0 svg{flex-shrink:0}.\[\&_svg\:not\(\[class\*\=\'size-\'\]\)\]\:size-3\.5 svg:not([class*=size-]){width:calc(var(--spacing) * 3.5);height:calc(var(--spacing) * 3.5)}.\[\&\:has\(\>svg\)\]\:pl-10:has(>svg){padding-left:calc(var(--spacing) * 10)}.\[\&\>\[data-slot\=field-content\]\]\:min-w-0>[data-slot=field-content]{min-width:calc(var(--spacing) * 0)}.\[\&\>\[data-slot\=field-content\]\]\:flex-1>[data-slot=field-content]{flex:1}@media (min-width:40rem){.sm\:\[\&\>\[data-slot\=field-content\]\]\:flex-1>[data-slot=field-content]{flex:1}}.\[\&\>\[data-slot\=field-label\]\]\:mb-0>[data-slot=field-label]{margin-bottom:calc(var(--spacing) * 0)}.\[\&\>\[data-slot\=field-label\]\]\:shrink-0>[data-slot=field-label]{flex-shrink:0}.\[\&\>\[data-slot\=field-label\]\]\:pt-1\.5>[data-slot=field-label]{padding-top:calc(var(--spacing) * 1.5)}@media (min-width:40rem){.sm\:\[\&\>\[data-slot\=field-label\]\]\:mb-0>[data-slot=field-label]{margin-bottom:calc(var(--spacing) * 0)}.sm\:\[\&\>\[data-slot\=field-label\]\]\:shrink-0>[data-slot=field-label]{flex-shrink:0}.sm\:\[\&\>\[data-slot\=field-label\]\]\:pt-1\.5>[data-slot=field-label]{padding-top:calc(var(--spacing) * 1.5)}}.\[\&\>svg\]\:absolute>svg{position:absolute}.\[\&\>svg\]\:top-3>svg{top:calc(var(--spacing) * 3)}.\[\&\>svg\]\:left-3>svg{left:calc(var(--spacing) * 3)}.\[\&\>svg\]\:size-4>svg{width:calc(var(--spacing) * 4);height:calc(var(--spacing) * 4)}@media (forced-colors:active){[data-slot]:not([tabindex="-1"]:not(:is(a[href],button,input,textarea,select,summary,[role=button],[role=tab],[role=radio],[role=checkbox],[role=switch],[role=slider],[role=menuitem],[role=menuitemradio],[role=menuitemcheckbox],[role=option]))):focus-visible{outline-offset:2px!important;outline:2px solid highlight!important}}}:root,[data-theme=light]{--foreground:#121212;--background:#efefef;--muted-foreground:#646464;--border:#12121224;--destructive:#7b2626;--paper:#fafafa;--ui-surface:#fafafa;--ink:#1a1a1a;--ink-muted:#6f6f6f}[data-theme=dark]{--foreground:#ececec;--background:#0d0d0d;--muted-foreground:#969696;--border:#ececec24;--destructive:#d47a7a;--paper:#0d0d0d;--ui-surface:#1a1a1a;--ink:#ececec;--ink-muted:#9a9a9a}:root,[data-theme=light],[data-theme=dark]{--focus-ring-width:1px;--focus-ring-color:var(--ink)}@supports (color:color-mix(in lab, red, red)){:root,[data-theme=light],[data-theme=dark]{--focus-ring-color:color-mix(in srgb, var(--ink) 65%, var(--paper))}}:root,[data-theme=light],[data-theme=dark]{--focus-ring-offset:2px;--focus-ring-inset-offset:-1px;--ui-focus:var(--focus-ring-color);--ui-focus-on-solid:var(--focus-ring-color)}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-ordinal{syntax:"*";inherits:false}@property --tw-slashed-zero{syntax:"*";inherits:false}@property --tw-numeric-figure{syntax:"*";inherits:false}@property --tw-numeric-spacing{syntax:"*";inherits:false}@property --tw-numeric-fraction{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-content{syntax:"*";inherits:false;initial-value:""}@keyframes pulse{50%{opacity:.5}}
|
package/dist/switch.js
CHANGED
|
@@ -3,6 +3,6 @@ import { jsx as _jsx } from "react/jsx-runtime";
|
|
|
3
3
|
import { Switch as SwitchPrimitive } from 'radix-ui';
|
|
4
4
|
import { cn } from './internal/cn.js';
|
|
5
5
|
function Switch({ className, ...props }) {
|
|
6
|
-
return (_jsx(SwitchPrimitive.Root, { "data-slot": "switch", className: cn("peer border-border bg-foreground/10 aria-invalid:border-destructive aria-invalid:data-[state=checked]:border-destructive data-[state=checked]:border-foreground data-[state=checked]:bg-foreground relative inline-flex h-5 w-8 shrink-0 items-center rounded-full border px-px transition-colors outline-none before:absolute before:inset-x-0 before:-inset-y-0.5 before:content-[''] focus-visible:outline-
|
|
6
|
+
return (_jsx(SwitchPrimitive.Root, { "data-slot": "switch", className: cn("peer border-border bg-foreground/10 aria-invalid:border-destructive aria-invalid:data-[state=checked]:border-destructive data-[state=checked]:border-foreground data-[state=checked]:bg-foreground relative inline-flex h-5 w-8 shrink-0 items-center rounded-full border px-px transition-colors outline-none before:absolute before:inset-x-0 before:-inset-y-0.5 before:content-[''] focus-visible:outline-[length:var(--focus-ring-width)] focus-visible:outline-offset-[var(--focus-ring-offset)] focus-visible:outline-[var(--ui-focus)] focus-visible:outline-solid disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:focus-visible:outline-[var(--destructive)] data-[state=checked]:focus-visible:outline-[var(--ui-focus-on-solid)] aria-invalid:data-[state=checked]:focus-visible:outline-[var(--destructive)] motion-reduce:transition-none", className), ...props, children: _jsx(SwitchPrimitive.Thumb, { "data-slot": "switch-thumb", className: "bg-foreground/60 pointer-events-none block size-4 rounded-full shadow-xs transition-transform data-[state=checked]:translate-x-3 data-[state=checked]:bg-[var(--paper)] data-[state=checked]:focus-visible:outline-[var(--ui-focus-on-solid)] aria-invalid:data-[state=checked]:focus-visible:outline-[var(--destructive)] motion-reduce:transition-none" }) }));
|
|
7
7
|
}
|
|
8
8
|
export { Switch };
|
package/dist/tabs.js
CHANGED
|
@@ -21,11 +21,11 @@ function TabsList({ className, variant = 'default', ...props }) {
|
|
|
21
21
|
return (_jsx(TabsPrimitive.List, { "data-slot": "tabs-list", "data-variant": variant, className: cn(tabsListVariants({ variant }), className), ...props }));
|
|
22
22
|
}
|
|
23
23
|
function TabsTrigger({ className, visual = 'default', children, ...props }) {
|
|
24
|
-
return (_jsx(TabsPrimitive.Trigger, { "data-slot": "tabs-trigger", "data-visual": visual, className: cn('inline-flex items-center justify-center px-0 py-0 text-xs transition-colors focus-visible:outline-
|
|
25
|
-
? 'group h-
|
|
26
|
-
: 'data-[state=active]:text-foreground min-h-7 rounded-sm px-2.5 py-1 data-[state=active]:bg-[var(--ui-surface,var(--paper))] data-[state=active]:font-medium data-[state=active]:shadow-sm', 'data-[state=inactive]:text-muted-foreground hover:text-foreground', 'group-data-[variant=line]/tabs-list:data-[state=active]:border-foreground group-data-[variant=line]/tabs-list:rounded-none group-data-[variant=line]/tabs-list:border-b-2 group-data-[variant=line]/tabs-list:border-transparent group-data-[variant=line]/tabs-list:px-2 group-data-[variant=line]/tabs-list:py-2 group-data-[variant=line]/tabs-list:group-data-[orientation=vertical]/tabs:border-r-2 group-data-[variant=line]/tabs-list:group-data-[orientation=vertical]/tabs:border-b-0 group-data-[variant=line]/tabs-list:before:hidden group-data-[variant=line]/tabs-list:after:hidden group-data-[variant=line]/tabs-list:data-[state=active]:bg-transparent group-data-[variant=line]/tabs-list:data-[state=active]:shadow-none', className), ...props, children: visual === 'compact' ? (_jsx("span", { className: "group-data-[state=active]:bg-foreground/10 group-data-[state=active]:text-foreground rounded-sm px-2 py-1
|
|
24
|
+
return (_jsx(TabsPrimitive.Trigger, { "data-slot": "tabs-trigger", "data-visual": visual, className: cn('inline-flex items-center justify-center px-0 py-0 text-xs transition-colors focus-visible:outline-[length:var(--focus-ring-width)] focus-visible:outline-offset-[var(--focus-ring-offset)] focus-visible:outline-[var(--ui-focus)] focus-visible:outline-solid disabled:pointer-events-none disabled:opacity-50', visual === 'compact'
|
|
25
|
+
? 'group min-h-7 max-w-full min-w-0 flex-none before:hidden after:hidden data-[state=active]:bg-transparent data-[state=active]:font-normal'
|
|
26
|
+
: 'data-[state=active]:text-foreground min-h-7 rounded-sm px-2.5 py-1 data-[state=active]:bg-[var(--ui-surface,var(--paper))] data-[state=active]:font-medium data-[state=active]:shadow-sm', 'data-[state=inactive]:text-muted-foreground hover:text-foreground', 'group-data-[variant=line]/tabs-list:data-[state=active]:border-foreground group-data-[variant=line]/tabs-list:rounded-none group-data-[variant=line]/tabs-list:border-b-2 group-data-[variant=line]/tabs-list:border-transparent group-data-[variant=line]/tabs-list:px-2 group-data-[variant=line]/tabs-list:py-2 group-data-[variant=line]/tabs-list:group-data-[orientation=vertical]/tabs:border-r-2 group-data-[variant=line]/tabs-list:group-data-[orientation=vertical]/tabs:border-b-0 group-data-[variant=line]/tabs-list:before:hidden group-data-[variant=line]/tabs-list:after:hidden group-data-[variant=line]/tabs-list:data-[state=active]:bg-transparent group-data-[variant=line]/tabs-list:data-[state=active]:shadow-none', className), ...props, children: visual === 'compact' ? (_jsx("span", { className: "group-data-[state=active]:bg-foreground/10 group-data-[state=active]:text-foreground min-w-0 rounded-sm px-2 py-1 leading-4 [overflow-wrap:anywhere] whitespace-normal group-data-[state=active]:font-medium", children: children })) : (children) }));
|
|
27
27
|
}
|
|
28
28
|
function TabsContent({ className, ...props }) {
|
|
29
|
-
return (_jsx(TabsPrimitive.Content, { "data-slot": "tabs-content", className: cn('text-xs outline-none focus-visible:outline-
|
|
29
|
+
return (_jsx(TabsPrimitive.Content, { "data-slot": "tabs-content", className: cn('text-xs outline-none focus-visible:outline-[length:var(--focus-ring-width)] focus-visible:outline-offset-[var(--focus-ring-offset)] focus-visible:outline-[var(--ui-focus)] focus-visible:outline-solid', className), ...props }));
|
|
30
30
|
}
|
|
31
31
|
export { Tabs, TabsList, TabsTrigger, TabsContent, tabsListVariants };
|
package/dist/textarea.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
2
|
import { cn } from './internal/cn.js';
|
|
3
3
|
function Textarea({ className, ...props }) {
|
|
4
|
-
return (_jsx("textarea", { "data-slot": "textarea", className: cn('border-border placeholder:text-muted-foreground aria-invalid:border-destructive bg-foreground/[0.03] min-h-20 w-full min-w-0 resize-y rounded-sm border px-2 py-1.5 text-xs leading-relaxed outline-none focus-visible:outline-
|
|
4
|
+
return (_jsx("textarea", { "data-slot": "textarea", className: cn('border-border placeholder:text-muted-foreground aria-invalid:border-destructive bg-foreground/[0.03] min-h-20 w-full min-w-0 resize-y rounded-sm border px-2 py-1.5 text-xs leading-relaxed outline-none focus-visible:outline-[length:var(--focus-ring-width)] focus-visible:outline-offset-[var(--focus-ring-offset)] focus-visible:outline-[var(--ui-focus)] focus-visible:outline-solid disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:focus-visible:outline-[var(--destructive)]', className), ...props }));
|
|
5
5
|
}
|
|
6
6
|
export { Textarea };
|