@snowcone-app/canvas 0.13.1 → 0.14.0

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.
Files changed (43) hide show
  1. package/dist/advanced.mjs +323 -327
  2. package/dist/advanced.mjs.map +1 -1
  3. package/dist/components/VisualGuideOverlay.d.ts +1 -1
  4. package/dist/components/ui/index.d.ts +34 -34
  5. package/dist/embed.mjs +34 -34
  6. package/dist/embed.mjs.map +1 -1
  7. package/dist/index.mjs +3 -3
  8. package/dist/style.css +1 -1
  9. package/dist/{template-fields-IgDV7PRY.js → template-fields-Dw-KK9DX.js} +182 -182
  10. package/dist/template-fields-Dw-KK9DX.js.map +1 -0
  11. package/dist/validation-BahKiJWj.js +22973 -0
  12. package/dist/validation-BahKiJWj.js.map +1 -0
  13. package/dist/vendor/ui/index.d.ts +35 -0
  14. package/dist/vendor/ui/lib/utils.d.ts +2 -0
  15. package/dist/vendor/ui/primitives/Button.d.ts +14 -0
  16. package/dist/vendor/ui/primitives/accordion.d.ts +37 -0
  17. package/dist/vendor/ui/primitives/badge.d.ts +20 -0
  18. package/dist/vendor/ui/primitives/card.d.ts +12 -0
  19. package/dist/vendor/ui/primitives/checkbox.d.ts +8 -0
  20. package/dist/vendor/ui/primitives/collapsible.d.ts +10 -0
  21. package/dist/vendor/ui/primitives/drawer.d.ts +66 -0
  22. package/dist/vendor/ui/primitives/dropdown-menu.d.ts +27 -0
  23. package/dist/vendor/ui/primitives/fieldset.d.ts +35 -0
  24. package/dist/vendor/ui/primitives/input.d.ts +18 -0
  25. package/dist/vendor/ui/primitives/kbd.d.ts +37 -0
  26. package/dist/vendor/ui/primitives/label.d.ts +5 -0
  27. package/dist/vendor/ui/primitives/link.d.ts +52 -0
  28. package/dist/vendor/ui/primitives/popover.d.ts +26 -0
  29. package/dist/vendor/ui/primitives/radio-group.d.ts +15 -0
  30. package/dist/vendor/ui/primitives/select.d.ts +17 -0
  31. package/dist/vendor/ui/primitives/separator.d.ts +4 -0
  32. package/dist/vendor/ui/primitives/slider.d.ts +26 -0
  33. package/dist/vendor/ui/primitives/spinner.d.ts +12 -0
  34. package/dist/vendor/ui/primitives/surface.d.ts +52 -0
  35. package/dist/vendor/ui/primitives/switch.d.ts +4 -0
  36. package/dist/vendor/ui/primitives/tabs.d.ts +28 -0
  37. package/dist/vendor/ui/primitives/text-field.d.ts +36 -0
  38. package/dist/vendor/ui/primitives/textarea.d.ts +10 -0
  39. package/dist/vendor/ui/primitives/tooltip.d.ts +19 -0
  40. package/package.json +7 -5
  41. package/dist/template-fields-IgDV7PRY.js.map +0 -1
  42. package/dist/validation-BpmNOvuY.js +0 -21177
  43. package/dist/validation-BpmNOvuY.js.map +0 -1
@@ -0,0 +1,35 @@
1
+ /**
2
+ * Vendored @snowcone-app/ui primitives (phase 1 of the CSS-prefix refactor).
3
+ *
4
+ * These files are verbatim copies of packages/ui/src/primitives/* (plus
5
+ * lib/utils.ts) so that @snowcone-app/canvas is self-contained — no runtime
6
+ * dependency on @snowcone-app/ui. Do not edit logic or class names here in
7
+ * this phase; phase 2 applies the CSS prefix codemod to this directory.
8
+ *
9
+ * Mirrors the `export *` style of packages/ui/src/index.ts for the same files.
10
+ */
11
+ export * from './primitives/Button';
12
+ export * from './primitives/accordion';
13
+ export * from './primitives/badge';
14
+ export * from './primitives/card';
15
+ export * from './primitives/checkbox';
16
+ export * from './primitives/collapsible';
17
+ export * from './primitives/drawer';
18
+ export * from './primitives/dropdown-menu';
19
+ export * from './primitives/fieldset';
20
+ export * from './primitives/input';
21
+ export * from './primitives/kbd';
22
+ export * from './primitives/label';
23
+ export * from './primitives/link';
24
+ export * from './primitives/popover';
25
+ export * from './primitives/radio-group';
26
+ export * from './primitives/select';
27
+ export * from './primitives/separator';
28
+ export * from './primitives/slider';
29
+ export * from './primitives/spinner';
30
+ export * from './primitives/surface';
31
+ export * from './primitives/switch';
32
+ export * from './primitives/tabs';
33
+ export * from './primitives/text-field';
34
+ export * from './primitives/textarea';
35
+ export * from './primitives/tooltip';
@@ -0,0 +1,2 @@
1
+ import { ClassValue } from 'clsx';
2
+ export declare function cn(...inputs: ClassValue[]): string;
@@ -0,0 +1,14 @@
1
+ import { VariantProps } from 'class-variance-authority';
2
+ import * as React from 'react';
3
+ declare const buttonVariants: (props?: ({
4
+ variant?: "default" | "link" | "outline" | "secondary" | "primary" | "tertiary" | "field" | "ghost" | "destructive" | "option-text" | "option-swatch" | "action" | "action-icon" | null | undefined;
5
+ size?: "default" | "none" | "icon" | "toolbar" | "sm" | "md" | "lg" | null | undefined;
6
+ } & import('class-variance-authority/types').ClassProp) | undefined) => string;
7
+ export interface ButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement>, VariantProps<typeof buttonVariants> {
8
+ asChild?: boolean;
9
+ onPress?: (e?: React.MouseEvent<HTMLButtonElement>) => void;
10
+ isPending?: boolean;
11
+ selected?: boolean;
12
+ }
13
+ declare const Button: React.ForwardRefExoticComponent<ButtonProps & React.RefAttributes<HTMLButtonElement>>;
14
+ export { Button, buttonVariants };
@@ -0,0 +1,37 @@
1
+ import * as React from 'react';
2
+ interface AccordionSingleProps {
3
+ type: 'single';
4
+ value?: string;
5
+ defaultValue?: string;
6
+ onValueChange?: (value: string) => void;
7
+ collapsible?: boolean;
8
+ children: React.ReactNode;
9
+ className?: string;
10
+ }
11
+ interface AccordionMultipleProps {
12
+ type?: 'multiple';
13
+ value?: string[];
14
+ defaultValue?: string[];
15
+ onValueChange?: (value: string[]) => void;
16
+ children: React.ReactNode;
17
+ className?: string;
18
+ }
19
+ type AccordionProps = AccordionSingleProps | AccordionMultipleProps;
20
+ declare const Accordion: React.ForwardRefExoticComponent<AccordionProps & React.RefAttributes<HTMLDivElement>>;
21
+ interface AccordionItemProps {
22
+ value: string;
23
+ children: React.ReactNode;
24
+ className?: string;
25
+ disabled?: boolean;
26
+ }
27
+ declare const AccordionItem: React.ForwardRefExoticComponent<AccordionItemProps & React.RefAttributes<HTMLDivElement>>;
28
+ interface AccordionTriggerProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {
29
+ children: React.ReactNode;
30
+ }
31
+ declare const AccordionTrigger: React.ForwardRefExoticComponent<AccordionTriggerProps & React.RefAttributes<HTMLButtonElement>>;
32
+ interface AccordionContentProps {
33
+ children: React.ReactNode;
34
+ className?: string;
35
+ }
36
+ declare const AccordionContent: React.ForwardRefExoticComponent<AccordionContentProps & React.RefAttributes<HTMLDivElement>>;
37
+ export { Accordion, AccordionItem, AccordionTrigger, AccordionContent };
@@ -0,0 +1,20 @@
1
+ import { VariantProps } from 'class-variance-authority';
2
+ import * as React from 'react';
3
+ declare const badgeVariants: (props?: ({
4
+ variant?: "default" | "warning" | "gradient" | "outline" | "secondary" | "destructive" | "success" | null | undefined;
5
+ size?: "default" | "sm" | "lg" | null | undefined;
6
+ } & import('class-variance-authority/types').ClassProp) | undefined) => string;
7
+ export interface BadgeProps extends React.HTMLAttributes<HTMLDivElement>, VariantProps<typeof badgeVariants> {
8
+ color?: 'default' | 'primary' | 'secondary' | 'success' | 'warning' | 'danger';
9
+ /** Whether to show a dot indicator */
10
+ dot?: boolean;
11
+ /** Content to show on the left */
12
+ startContent?: React.ReactNode;
13
+ /** Content to show on the right */
14
+ endContent?: React.ReactNode;
15
+ /** Close button click handler (makes badge dismissible) */
16
+ onClose?: () => void;
17
+ }
18
+ declare function Badge({ className, variant, size, color, dot, startContent, endContent, onClose, children, ...props }: BadgeProps): import("react/jsx-runtime").JSX.Element;
19
+ declare const Chip: typeof Badge;
20
+ export { Badge, Chip, badgeVariants };
@@ -0,0 +1,12 @@
1
+ import * as React from 'react';
2
+ interface CardProps extends React.HTMLAttributes<HTMLDivElement> {
3
+ /** Visual variant - 'outlined' adds border and shadow */
4
+ variant?: 'default' | 'outlined';
5
+ }
6
+ declare const Card: React.ForwardRefExoticComponent<CardProps & React.RefAttributes<HTMLDivElement>>;
7
+ declare const CardHeader: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & React.RefAttributes<HTMLDivElement>>;
8
+ declare const CardTitle: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLHeadingElement> & React.RefAttributes<HTMLParagraphElement>>;
9
+ declare const CardDescription: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLParagraphElement> & React.RefAttributes<HTMLParagraphElement>>;
10
+ declare const CardContent: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & React.RefAttributes<HTMLDivElement>>;
11
+ declare const CardFooter: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & React.RefAttributes<HTMLDivElement>>;
12
+ export { Card, CardHeader, CardFooter, CardTitle, CardDescription, CardContent };
@@ -0,0 +1,8 @@
1
+ import * as React from 'react';
2
+ import * as CheckboxPrimitive from '@radix-ui/react-checkbox';
3
+ interface CheckboxProps extends React.ComponentPropsWithoutRef<typeof CheckboxPrimitive.Root> {
4
+ /** Visual variant - auto-detected from Surface context, or can be set explicitly */
5
+ variant?: 'default' | 'filled';
6
+ }
7
+ declare const Checkbox: React.ForwardRefExoticComponent<CheckboxProps & React.RefAttributes<HTMLButtonElement>>;
8
+ export { Checkbox };
@@ -0,0 +1,10 @@
1
+ import * as React from 'react';
2
+ import * as CollapsiblePrimitive from '@radix-ui/react-collapsible';
3
+ declare const CollapsibleRoot: React.ForwardRefExoticComponent<Omit<CollapsiblePrimitive.CollapsibleProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
4
+ declare const CollapsibleTrigger: React.ForwardRefExoticComponent<CollapsiblePrimitive.CollapsibleTriggerProps & React.RefAttributes<HTMLButtonElement>>;
5
+ declare const CollapsibleContent: React.ForwardRefExoticComponent<Omit<CollapsiblePrimitive.CollapsibleContentProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
6
+ declare const Collapsible: React.ForwardRefExoticComponent<Omit<CollapsiblePrimitive.CollapsibleProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
7
+ declare const Disclosure: React.ForwardRefExoticComponent<Omit<CollapsiblePrimitive.CollapsibleProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
8
+ declare const DisclosureTrigger: React.ForwardRefExoticComponent<CollapsiblePrimitive.CollapsibleTriggerProps & React.RefAttributes<HTMLButtonElement>>;
9
+ declare const DisclosureContent: React.ForwardRefExoticComponent<Omit<CollapsiblePrimitive.CollapsibleContentProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
10
+ export { Collapsible, CollapsibleTrigger, CollapsibleContent, CollapsibleRoot, Disclosure, DisclosureTrigger, DisclosureContent, };
@@ -0,0 +1,66 @@
1
+ import * as React from "react";
2
+ interface DrawerProps {
3
+ open?: boolean;
4
+ defaultOpen?: boolean;
5
+ onOpenChange?: (open: boolean) => void;
6
+ children: React.ReactNode;
7
+ }
8
+ declare function Drawer({ open: controlledOpen, defaultOpen, onOpenChange, children, }: DrawerProps): import("react/jsx-runtime").JSX.Element;
9
+ declare namespace Drawer {
10
+ var displayName: string;
11
+ }
12
+ interface DrawerTriggerProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {
13
+ asChild?: boolean;
14
+ }
15
+ declare const DrawerTrigger: React.ForwardRefExoticComponent<DrawerTriggerProps & React.RefAttributes<HTMLButtonElement>>;
16
+ interface DrawerCloseProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {
17
+ asChild?: boolean;
18
+ }
19
+ declare const DrawerClose: React.ForwardRefExoticComponent<DrawerCloseProps & React.RefAttributes<HTMLButtonElement>>;
20
+ interface DrawerContentProps extends React.HTMLAttributes<HTMLDivElement> {
21
+ /** Drawer placement. Default: 'bottom' */
22
+ placement?: "bottom" | "left" | "right";
23
+ /** Explicit height for bottom drawer. Use this when you want the drawer to always be a specific size. */
24
+ height?: string;
25
+ /** Max height for bottom drawer. Default: '80dvh'. Only used if height is not set. */
26
+ maxHeight?: string;
27
+ /** Width for side drawers (left/right). Can be CSS value like '400px' or '80vw'. */
28
+ width?: string;
29
+ /** Max width for side drawers. Default: '400px' */
30
+ maxWidth?: string;
31
+ /** Whether to show the overlay/backdrop. Default: true */
32
+ showOverlay?: boolean;
33
+ /** Whether to hide the drag handle. Default: false */
34
+ hideHandle?: boolean;
35
+ /** Overlay opacity (0-1). Default: 0.3 */
36
+ overlayOpacity?: number;
37
+ /** Whether to lock body scroll when drawer is open. Default: true */
38
+ lockBodyScroll?: boolean;
39
+ /** Whether to use dialog ARIA attributes (role="dialog", aria-modal). Default: true */
40
+ useDialogRole?: boolean;
41
+ /** Disable swipe gestures for closing the drawer. Default: false. */
42
+ disableSwipeGestures?: boolean;
43
+ /** Animation duration in ms. Default: 300 (DEBUG: 2000) */
44
+ animationDuration?: number;
45
+ /** Show a gradient fade at the bottom that hides when scrolled to bottom. Default: true */
46
+ showScrollFade?: boolean;
47
+ /** Color for the scroll fade gradient. Should match drawer background. Default: uses CSS variable */
48
+ scrollFadeColor?: string;
49
+ /** Height ratio for bottom drawer (0-1). Deprecated - use height prop instead. Will set height to heightRatio * 100vh. */
50
+ heightRatio?: number;
51
+ /** Whether to add safe area padding at the bottom. Default: false. Deprecated - safe area is handled automatically via CSS. */
52
+ safeAreaPadding?: boolean;
53
+ }
54
+ declare const DrawerContent: React.ForwardRefExoticComponent<DrawerContentProps & React.RefAttributes<HTMLDivElement>>;
55
+ declare const DrawerHeader: {
56
+ ({ className, ...props }: React.HTMLAttributes<HTMLDivElement>): import("react/jsx-runtime").JSX.Element;
57
+ displayName: string;
58
+ };
59
+ declare const DrawerFooter: {
60
+ ({ className, ...props }: React.HTMLAttributes<HTMLDivElement>): import("react/jsx-runtime").JSX.Element;
61
+ displayName: string;
62
+ };
63
+ declare const DrawerTitle: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLHeadingElement> & React.RefAttributes<HTMLHeadingElement>>;
64
+ declare const DrawerDescription: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLParagraphElement> & React.RefAttributes<HTMLParagraphElement>>;
65
+ export { Drawer, DrawerTrigger, DrawerClose, DrawerContent, DrawerHeader, DrawerFooter, DrawerTitle, DrawerDescription, };
66
+ export { Drawer as IOSDrawer, DrawerTrigger as IOSDrawerTrigger, DrawerClose as IOSDrawerClose, DrawerContent as IOSDrawerContent, DrawerHeader as IOSDrawerHeader, DrawerFooter as IOSDrawerFooter, DrawerTitle as IOSDrawerTitle, DrawerDescription as IOSDrawerDescription, };
@@ -0,0 +1,27 @@
1
+ import * as React from 'react';
2
+ import * as DropdownMenuPrimitive from '@radix-ui/react-dropdown-menu';
3
+ declare const DropdownMenu: React.FC<DropdownMenuPrimitive.DropdownMenuProps>;
4
+ declare const DropdownMenuTrigger: React.ForwardRefExoticComponent<DropdownMenuPrimitive.DropdownMenuTriggerProps & React.RefAttributes<HTMLButtonElement>>;
5
+ declare const DropdownMenuGroup: React.ForwardRefExoticComponent<DropdownMenuPrimitive.DropdownMenuGroupProps & React.RefAttributes<HTMLDivElement>>;
6
+ declare const DropdownMenuPortal: React.FC<DropdownMenuPrimitive.DropdownMenuPortalProps>;
7
+ declare const DropdownMenuSub: React.FC<DropdownMenuPrimitive.DropdownMenuSubProps>;
8
+ declare const DropdownMenuRadioGroup: React.ForwardRefExoticComponent<DropdownMenuPrimitive.DropdownMenuRadioGroupProps & React.RefAttributes<HTMLDivElement>>;
9
+ declare const DropdownMenuSubTrigger: React.ForwardRefExoticComponent<Omit<DropdownMenuPrimitive.DropdownMenuSubTriggerProps & React.RefAttributes<HTMLDivElement>, "ref"> & {
10
+ inset?: boolean;
11
+ } & React.RefAttributes<HTMLDivElement>>;
12
+ declare const DropdownMenuSubContent: React.ForwardRefExoticComponent<Omit<DropdownMenuPrimitive.DropdownMenuSubContentProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
13
+ declare const DropdownMenuContent: React.ForwardRefExoticComponent<Omit<DropdownMenuPrimitive.DropdownMenuContentProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
14
+ declare const DropdownMenuItem: React.ForwardRefExoticComponent<Omit<DropdownMenuPrimitive.DropdownMenuItemProps & React.RefAttributes<HTMLDivElement>, "ref"> & {
15
+ inset?: boolean;
16
+ } & React.RefAttributes<HTMLDivElement>>;
17
+ declare const DropdownMenuCheckboxItem: React.ForwardRefExoticComponent<Omit<DropdownMenuPrimitive.DropdownMenuCheckboxItemProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
18
+ declare const DropdownMenuRadioItem: React.ForwardRefExoticComponent<Omit<DropdownMenuPrimitive.DropdownMenuRadioItemProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
19
+ declare const DropdownMenuLabel: React.ForwardRefExoticComponent<Omit<DropdownMenuPrimitive.DropdownMenuLabelProps & React.RefAttributes<HTMLDivElement>, "ref"> & {
20
+ inset?: boolean;
21
+ } & React.RefAttributes<HTMLDivElement>>;
22
+ declare const DropdownMenuSeparator: React.ForwardRefExoticComponent<Omit<DropdownMenuPrimitive.DropdownMenuSeparatorProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
23
+ declare const DropdownMenuShortcut: {
24
+ ({ className, ...props }: React.HTMLAttributes<HTMLSpanElement>): import("react/jsx-runtime").JSX.Element;
25
+ displayName: string;
26
+ };
27
+ export { DropdownMenu, DropdownMenuTrigger, DropdownMenuContent, DropdownMenuItem, DropdownMenuCheckboxItem, DropdownMenuRadioItem, DropdownMenuLabel, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuGroup, DropdownMenuPortal, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuRadioGroup, };
@@ -0,0 +1,35 @@
1
+ import * as React from 'react';
2
+ export interface FieldsetProps extends React.FieldsetHTMLAttributes<HTMLFieldSetElement> {
3
+ }
4
+ /**
5
+ * Fieldset - A semantic grouping element for form controls.
6
+ *
7
+ * Use this to group related form elements together with an optional legend.
8
+ *
9
+ * @example
10
+ * ```tsx
11
+ * <Fieldset>
12
+ * <legend className="text-sm font-medium">Personal Info</legend>
13
+ * <TextField>
14
+ * <Label>Name</Label>
15
+ * <Input placeholder="Enter name..." />
16
+ * </TextField>
17
+ * </Fieldset>
18
+ * ```
19
+ */
20
+ declare const Fieldset: React.ForwardRefExoticComponent<FieldsetProps & React.RefAttributes<HTMLFieldSetElement>>;
21
+ export interface LegendProps extends React.HTMLAttributes<HTMLLegendElement> {
22
+ }
23
+ /**
24
+ * Legend - A caption for a fieldset.
25
+ *
26
+ * @example
27
+ * ```tsx
28
+ * <Fieldset>
29
+ * <Legend>Account Settings</Legend>
30
+ * ...
31
+ * </Fieldset>
32
+ * ```
33
+ */
34
+ declare const Legend: React.ForwardRefExoticComponent<LegendProps & React.RefAttributes<HTMLLegendElement>>;
35
+ export { Fieldset, Legend };
@@ -0,0 +1,18 @@
1
+ import * as React from 'react';
2
+ export interface InputProps extends React.InputHTMLAttributes<HTMLInputElement> {
3
+ /** Whether the input is in an invalid state */
4
+ isInvalid?: boolean;
5
+ /** Content to display at the start of the input */
6
+ startContent?: React.ReactNode;
7
+ /** Content to display at the end of the input */
8
+ endContent?: React.ReactNode;
9
+ /**
10
+ * Visual variant - auto-detected from Surface context, or can be set explicitly
11
+ * - `default`: Standard field styling for forms (bg-field)
12
+ * - `filled`: Field on elevated surface (bg-field-on-surface)
13
+ * - `subtle`: Blends with buttons/tabs in toolbars (bg-default)
14
+ */
15
+ variant?: 'default' | 'filled' | 'subtle';
16
+ }
17
+ declare const Input: React.ForwardRefExoticComponent<InputProps & React.RefAttributes<HTMLInputElement>>;
18
+ export { Input };
@@ -0,0 +1,37 @@
1
+ import { VariantProps } from 'class-variance-authority';
2
+ import * as React from 'react';
3
+ declare const kbdVariants: (props?: ({
4
+ variant?: "default" | "outline" | "minimal" | null | undefined;
5
+ size?: "sm" | "md" | "lg" | null | undefined;
6
+ } & import('class-variance-authority/types').ClassProp) | undefined) => string;
7
+ export interface KbdProps extends React.HTMLAttributes<HTMLElement>, VariantProps<typeof kbdVariants> {
8
+ /**
9
+ * The keyboard key(s) to display.
10
+ * Can use special values that will be transformed:
11
+ * - "cmd" or "command" -> displays platform-specific modifier (⌘ on Mac, Ctrl on Windows)
12
+ * - "ctrl" -> ⌃
13
+ * - "alt" or "option" -> ⌥
14
+ * - "shift" -> ⇧
15
+ * - "enter" or "return" -> ↵
16
+ * - "backspace" or "delete" -> ⌫
17
+ * - "escape" or "esc" -> Esc
18
+ * - "tab" -> ⇥
19
+ * - "space" -> Space
20
+ * - "up", "down", "left", "right" -> arrows
21
+ */
22
+ keys?: string | string[];
23
+ }
24
+ /**
25
+ * Kbd - Keyboard key display component.
26
+ *
27
+ * Displays keyboard shortcuts in a visually consistent way.
28
+ *
29
+ * @example
30
+ * ```tsx
31
+ * <Kbd>K</Kbd>
32
+ * <Kbd keys={['cmd', 'shift', 'P']} />
33
+ * <Kbd keys="cmd+K" />
34
+ * ```
35
+ */
36
+ declare const Kbd: React.ForwardRefExoticComponent<KbdProps & React.RefAttributes<HTMLElement>>;
37
+ export { Kbd, kbdVariants };
@@ -0,0 +1,5 @@
1
+ import { VariantProps } from 'class-variance-authority';
2
+ import * as React from 'react';
3
+ import * as LabelPrimitive from '@radix-ui/react-label';
4
+ declare const Label: React.ForwardRefExoticComponent<Omit<LabelPrimitive.LabelProps & React.RefAttributes<HTMLLabelElement>, "ref"> & VariantProps<(props?: import('class-variance-authority/types').ClassProp | undefined) => string> & React.RefAttributes<HTMLLabelElement>>;
5
+ export { Label };
@@ -0,0 +1,52 @@
1
+ import { VariantProps } from 'class-variance-authority';
2
+ import * as React from 'react';
3
+ declare const linkVariants: (props?: ({
4
+ color?: "default" | "warning" | "secondary" | "primary" | "success" | "danger" | null | undefined;
5
+ size?: "sm" | "md" | "lg" | null | undefined;
6
+ underline?: "none" | "always" | "hover" | null | undefined;
7
+ underlineOffset?: 2 | 1 | 3 | null | undefined;
8
+ } & import('class-variance-authority/types').ClassProp) | undefined) => string;
9
+ export interface LinkProps extends Omit<React.AnchorHTMLAttributes<HTMLAnchorElement>, 'color'>, VariantProps<typeof linkVariants> {
10
+ /**
11
+ * If true, the link will be rendered as its child element (using Radix Slot).
12
+ * Useful for integrating with routing libraries like Next.js Link.
13
+ */
14
+ asChild?: boolean;
15
+ /**
16
+ * If true, adds an external link icon.
17
+ */
18
+ isExternal?: boolean;
19
+ /**
20
+ * If true, shows a block-style link (full width with padding).
21
+ */
22
+ isBlock?: boolean;
23
+ }
24
+ /**
25
+ * Link - A styled anchor component for navigation.
26
+ *
27
+ * Supports animated underlines, external link indicators, and integration
28
+ * with routing libraries via the asChild prop.
29
+ *
30
+ * @example
31
+ * ```tsx
32
+ * <Link href="/about">About</Link>
33
+ * <Link href="https://example.com" isExternal>External Link</Link>
34
+ * <Link asChild underline="hover">
35
+ * <NextLink href="/dashboard">Dashboard</NextLink>
36
+ * </Link>
37
+ * ```
38
+ */
39
+ declare const Link: React.ForwardRefExoticComponent<LinkProps & React.RefAttributes<HTMLAnchorElement>>;
40
+ /**
41
+ * LinkIcon - External link indicator icon.
42
+ *
43
+ * Used automatically when isExternal is true, or can be used manually.
44
+ */
45
+ interface LinkIconProps extends React.SVGAttributes<SVGElement> {
46
+ /**
47
+ * If true, renders as child element using Slot.
48
+ */
49
+ asChild?: boolean;
50
+ }
51
+ declare const LinkIcon: React.ForwardRefExoticComponent<LinkIconProps & React.RefAttributes<SVGSVGElement>>;
52
+ export { Link, LinkIcon, linkVariants };
@@ -0,0 +1,26 @@
1
+ import * as React from 'react';
2
+ import * as PopoverPrimitive from '@radix-ui/react-popover';
3
+ declare const PopoverRoot: React.FC<PopoverPrimitive.PopoverProps>;
4
+ declare const PopoverTrigger: React.ForwardRefExoticComponent<PopoverPrimitive.PopoverTriggerProps & React.RefAttributes<HTMLButtonElement>>;
5
+ declare const PopoverAnchor: React.ForwardRefExoticComponent<PopoverPrimitive.PopoverAnchorProps & React.RefAttributes<HTMLDivElement>>;
6
+ interface PopoverContentProps extends React.ComponentPropsWithoutRef<typeof PopoverPrimitive.Content> {
7
+ /** Preserve text selection when popover opens (useful for canvas/editor contexts) */
8
+ preserveSelection?: boolean;
9
+ /** Use maximum z-index to appear above fullscreen modals (for canvas/editor contexts) */
10
+ maxZIndex?: boolean;
11
+ }
12
+ declare const PopoverContent: React.ForwardRefExoticComponent<PopoverContentProps & React.RefAttributes<HTMLDivElement>>;
13
+ interface PopoverProps {
14
+ children: React.ReactNode;
15
+ open?: boolean;
16
+ onOpenChange?: (open: boolean) => void;
17
+ defaultOpen?: boolean;
18
+ modal?: boolean;
19
+ }
20
+ declare const Popover: (({ children, open, onOpenChange, ...props }: PopoverProps) => import("react/jsx-runtime").JSX.Element) & {
21
+ Trigger: React.ForwardRefExoticComponent<PopoverPrimitive.PopoverTriggerProps & React.RefAttributes<HTMLButtonElement>>;
22
+ Content: React.ForwardRefExoticComponent<PopoverContentProps & React.RefAttributes<HTMLDivElement>>;
23
+ Anchor: React.ForwardRefExoticComponent<PopoverPrimitive.PopoverAnchorProps & React.RefAttributes<HTMLDivElement>>;
24
+ Dialog: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & React.RefAttributes<HTMLDivElement>>;
25
+ };
26
+ export { Popover, PopoverTrigger, PopoverContent, PopoverAnchor, PopoverRoot };
@@ -0,0 +1,15 @@
1
+ import * as React from 'react';
2
+ import * as RadioGroupPrimitive from '@radix-ui/react-radio-group';
3
+ declare const RadioGroup: React.ForwardRefExoticComponent<Omit<RadioGroupPrimitive.RadioGroupProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
4
+ interface RadioGroupItemProps extends React.ComponentPropsWithoutRef<typeof RadioGroupPrimitive.Item> {
5
+ /** Visual variant - auto-detected from Surface context, or can be set explicitly */
6
+ variant?: 'default' | 'filled';
7
+ }
8
+ declare const RadioGroupItem: React.ForwardRefExoticComponent<RadioGroupItemProps & React.RefAttributes<HTMLButtonElement>>;
9
+ interface RadioProps extends React.ComponentPropsWithoutRef<typeof RadioGroupPrimitive.Item> {
10
+ children?: React.ReactNode;
11
+ /** Visual variant - auto-detected from Surface context, or can be set explicitly */
12
+ variant?: 'default' | 'filled';
13
+ }
14
+ declare const Radio: React.ForwardRefExoticComponent<RadioProps & React.RefAttributes<HTMLButtonElement>>;
15
+ export { RadioGroup, RadioGroupItem, Radio };
@@ -0,0 +1,17 @@
1
+ import * as React from 'react';
2
+ import * as SelectPrimitive from '@radix-ui/react-select';
3
+ declare const Select: React.FC<SelectPrimitive.SelectProps>;
4
+ declare const SelectGroup: React.ForwardRefExoticComponent<SelectPrimitive.SelectGroupProps & React.RefAttributes<HTMLDivElement>>;
5
+ declare const SelectValue: React.ForwardRefExoticComponent<SelectPrimitive.SelectValueProps & React.RefAttributes<HTMLSpanElement>>;
6
+ interface SelectTriggerProps extends React.ComponentPropsWithoutRef<typeof SelectPrimitive.Trigger> {
7
+ /** Visual variant - auto-detected from Surface context, or can be set explicitly */
8
+ variant?: 'default' | 'filled';
9
+ }
10
+ declare const SelectTrigger: React.ForwardRefExoticComponent<SelectTriggerProps & React.RefAttributes<HTMLButtonElement>>;
11
+ declare const SelectScrollUpButton: React.ForwardRefExoticComponent<Omit<SelectPrimitive.SelectScrollUpButtonProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
12
+ declare const SelectScrollDownButton: React.ForwardRefExoticComponent<Omit<SelectPrimitive.SelectScrollDownButtonProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
13
+ declare const SelectContent: React.ForwardRefExoticComponent<Omit<SelectPrimitive.SelectContentProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
14
+ declare const SelectLabel: React.ForwardRefExoticComponent<Omit<SelectPrimitive.SelectLabelProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
15
+ declare const SelectItem: React.ForwardRefExoticComponent<Omit<SelectPrimitive.SelectItemProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
16
+ declare const SelectSeparator: React.ForwardRefExoticComponent<Omit<SelectPrimitive.SelectSeparatorProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
17
+ export { Select, SelectGroup, SelectValue, SelectTrigger, SelectContent, SelectLabel, SelectItem, SelectSeparator, SelectScrollUpButton, SelectScrollDownButton, };
@@ -0,0 +1,4 @@
1
+ import * as React from 'react';
2
+ import * as SeparatorPrimitive from '@radix-ui/react-separator';
3
+ declare const Separator: React.ForwardRefExoticComponent<Omit<SeparatorPrimitive.SeparatorProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
4
+ export { Separator };
@@ -0,0 +1,26 @@
1
+ import * as React from 'react';
2
+ import * as SliderPrimitive from '@radix-ui/react-slider';
3
+ interface SliderProps extends Omit<React.ComponentPropsWithoutRef<typeof SliderPrimitive.Root>, 'value' | 'onValueChange'> {
4
+ value?: number | number[];
5
+ onValueChange?: (value: number[]) => void;
6
+ onChangeEnd?: (value: number[]) => void;
7
+ children?: React.ReactNode;
8
+ }
9
+ declare const SliderTrack: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLSpanElement> & React.RefAttributes<HTMLSpanElement>>;
10
+ declare const SliderThumb: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLSpanElement> & React.RefAttributes<HTMLSpanElement>>;
11
+ declare const SliderFill: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLSpanElement> & React.RefAttributes<HTMLSpanElement>>;
12
+ interface SliderOutputProps extends Omit<React.HTMLAttributes<HTMLSpanElement>, 'children'> {
13
+ children?: React.ReactNode | ((props: {
14
+ state: {
15
+ values: number[];
16
+ };
17
+ }) => React.ReactNode);
18
+ }
19
+ declare const SliderOutput: React.ForwardRefExoticComponent<SliderOutputProps & React.RefAttributes<HTMLSpanElement>>;
20
+ declare const Slider: React.ForwardRefExoticComponent<SliderProps & React.RefAttributes<HTMLSpanElement>> & {
21
+ Track: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLSpanElement> & React.RefAttributes<HTMLSpanElement>>;
22
+ Thumb: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLSpanElement> & React.RefAttributes<HTMLSpanElement>>;
23
+ Fill: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLSpanElement> & React.RefAttributes<HTMLSpanElement>>;
24
+ Output: React.ForwardRefExoticComponent<SliderOutputProps & React.RefAttributes<HTMLSpanElement>>;
25
+ };
26
+ export { Slider, SliderTrack, SliderThumb, SliderFill, SliderOutput };
@@ -0,0 +1,12 @@
1
+ import { VariantProps } from 'class-variance-authority';
2
+ import * as React from 'react';
3
+ declare const spinnerVariants: (props?: ({
4
+ size?: "sm" | "md" | "lg" | "xl" | null | undefined;
5
+ color?: "warning" | "current" | "secondary" | "primary" | "success" | "danger" | null | undefined;
6
+ } & import('class-variance-authority/types').ClassProp) | undefined) => string;
7
+ export interface SpinnerProps extends Omit<React.ComponentProps<'span'>, 'color'>, VariantProps<typeof spinnerVariants> {
8
+ /** Label for screen readers */
9
+ label?: string;
10
+ }
11
+ declare function Spinner({ className, size, color, label, ...props }: SpinnerProps): import("react/jsx-runtime").JSX.Element;
12
+ export { Spinner, spinnerVariants };
@@ -0,0 +1,52 @@
1
+ import { VariantProps } from 'class-variance-authority';
2
+ import * as React from 'react';
3
+ /**
4
+ * Surface Context
5
+ *
6
+ * Provides information about the current surface variant to child components.
7
+ * This allows form components (Input, TextArea, etc.) to automatically adapt
8
+ * their styling based on their container's surface variant.
9
+ *
10
+ * Default is 'transparent' so that form fields on the page background
11
+ * (not inside a Surface/Card) use the white/shadow style.
12
+ */
13
+ declare const SurfaceContext: React.Context<{
14
+ variant: "transparent" | "default" | "secondary";
15
+ }>;
16
+ /**
17
+ * Hook to access the current surface context
18
+ */
19
+ export declare function useSurface(): {
20
+ variant: "transparent" | "default" | "secondary";
21
+ };
22
+ declare const surfaceVariants: (props?: ({
23
+ variant?: "default" | "transparent" | "secondary" | null | undefined;
24
+ } & import('class-variance-authority/types').ClassProp) | undefined) => string;
25
+ export interface SurfaceProps extends React.HTMLAttributes<HTMLDivElement>, VariantProps<typeof surfaceVariants> {
26
+ /**
27
+ * Change the default rendered element for the one passed as a child,
28
+ * merging their props and behavior.
29
+ */
30
+ asChild?: boolean;
31
+ }
32
+ /**
33
+ * Surface Component
34
+ *
35
+ * A semantic container that provides surface-level styling and context for child components.
36
+ *
37
+ * ## Variants:
38
+ * - `transparent` - No background
39
+ * - `default` - Card/panel surface (bg-card)
40
+ * - `secondary` - Raised/muted surface (bg-default)
41
+ *
42
+ * Form fields automatically adapt their styling based on which surface they're on.
43
+ *
44
+ * @example
45
+ * ```tsx
46
+ * <Surface variant="default">
47
+ * <Input placeholder="On a card surface" />
48
+ * </Surface>
49
+ * ```
50
+ */
51
+ declare const Surface: React.ForwardRefExoticComponent<SurfaceProps & React.RefAttributes<HTMLDivElement>>;
52
+ export { Surface, surfaceVariants, SurfaceContext };
@@ -0,0 +1,4 @@
1
+ import * as React from 'react';
2
+ import * as SwitchPrimitive from '@radix-ui/react-switch';
3
+ declare const Switch: React.ForwardRefExoticComponent<Omit<SwitchPrimitive.SwitchProps & React.RefAttributes<HTMLButtonElement>, "ref"> & React.RefAttributes<HTMLButtonElement>>;
4
+ export { Switch };
@@ -0,0 +1,28 @@
1
+ import * as React from 'react';
2
+ import * as TabsPrimitive from '@radix-ui/react-tabs';
3
+ interface TabsProps extends Omit<React.ComponentPropsWithoutRef<typeof TabsPrimitive.Root>, 'value' | 'onValueChange'> {
4
+ value?: string;
5
+ onValueChange?: (value: string) => void;
6
+ }
7
+ declare const TabsRoot: React.ForwardRefExoticComponent<TabsProps & React.RefAttributes<HTMLDivElement>>;
8
+ declare const TabsList: React.ForwardRefExoticComponent<Omit<TabsPrimitive.TabsListProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
9
+ interface TabsTriggerProps extends Omit<React.ComponentPropsWithoutRef<typeof TabsPrimitive.Trigger>, 'value'> {
10
+ id?: string;
11
+ value?: string;
12
+ }
13
+ declare const TabsTrigger: React.ForwardRefExoticComponent<TabsTriggerProps & React.RefAttributes<HTMLButtonElement>>;
14
+ interface TabsContentProps extends Omit<React.ComponentPropsWithoutRef<typeof TabsPrimitive.Content>, 'value'> {
15
+ id?: string;
16
+ value?: string;
17
+ }
18
+ declare const TabsContent: React.ForwardRefExoticComponent<TabsContentProps & React.RefAttributes<HTMLDivElement>>;
19
+ declare const Tabs: React.ForwardRefExoticComponent<TabsProps & React.RefAttributes<HTMLDivElement>> & {
20
+ List: React.ForwardRefExoticComponent<Omit<TabsPrimitive.TabsListProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
21
+ ListContainer: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & React.RefAttributes<HTMLDivElement>>;
22
+ Tab: React.ForwardRefExoticComponent<TabsTriggerProps & React.RefAttributes<HTMLButtonElement>>;
23
+ Trigger: React.ForwardRefExoticComponent<TabsTriggerProps & React.RefAttributes<HTMLButtonElement>>;
24
+ Panel: React.ForwardRefExoticComponent<TabsContentProps & React.RefAttributes<HTMLDivElement>>;
25
+ Content: React.ForwardRefExoticComponent<TabsContentProps & React.RefAttributes<HTMLDivElement>>;
26
+ Indicator: () => null;
27
+ };
28
+ export { Tabs, TabsList, TabsTrigger, TabsContent, TabsRoot };