@gradeui/ui 3.2.0 → 3.3.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.
package/dist/index.d.mts CHANGED
@@ -628,21 +628,28 @@ declare const Banner: React.ForwardRefExoticComponent<BannerProps & React.RefAtt
628
628
  * heights so a button placed next to a tab strip lines up without
629
629
  * any per-call className overrides:
630
630
  *
631
+ * 2xs: h-5 (20px) — densest tool-panel size; matches Figma Button size=2xs
632
+ * xs: h-6 (24px) — tool-panel density; matches Figma Button size=xs
631
633
  * sm: h-7 (28px) — matches `<TabsList size="sm">` height
632
634
  * md: h-8 (32px) — matches `<TabsList size="md">` height (default)
633
635
  * lg: h-10 (40px) — matches `<TabsList size="lg">` height
634
- * icon: h-8 w-8 — square variant, md height
635
636
  *
636
637
  * `default` is preserved as an alias for `md` so existing call sites
637
638
  * keep working through the rename.
638
639
  *
640
+ * `iconOnly` squares the button at WHATEVER `size` it has (2xs=20, sm=28,
641
+ * md=32, lg=40) by dropping horizontal padding and matching width to
642
+ * height. It's a boolean modifier on top of the height ramp — there is no
643
+ * separate icon size value — and the icon you pass as the child is centered.
644
+ *
639
645
  * Type and icon sizes also follow the Tabs scale (text-xs + size-3.5
640
646
  * at sm/md, text-sm + size-4 at lg) so the visual rhythm reads
641
647
  * consistent across primitives.
642
648
  */
643
649
  declare const buttonVariants: (props?: ({
644
650
  variant?: "link" | "default" | "secondary" | "destructive" | "outline" | "ghost" | "raised" | null | undefined;
645
- size?: "default" | "2xs" | "xs" | "sm" | "md" | "lg" | "icon" | null | undefined;
651
+ size?: "default" | "2xs" | "xs" | "sm" | "md" | "lg" | null | undefined;
652
+ iconOnly?: boolean | null | undefined;
646
653
  } & class_variance_authority_types.ClassProp) | undefined) => string;
647
654
  interface ButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement>, VariantProps<typeof buttonVariants> {
648
655
  asChild?: boolean;
@@ -657,6 +664,54 @@ interface ButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement>, Var
657
664
  }
658
665
  declare const Button: React.ForwardRefExoticComponent<ButtonProps & React.RefAttributes<HTMLButtonElement>>;
659
666
 
667
+ /**
668
+ * Section + Container — the page scaffold (STUDIO-SECTIONS.md).
669
+ *
670
+ * A page is an ordered stack of Sections. `Section` is the FULL-WIDTH band: it
671
+ * owns a colour `scope` (subtheme) + vertical `pad` rhythm, and nothing else —
672
+ * it never constrains width. `Container` is the measure: a centred max-width +
673
+ * gutters you drop INSIDE a section to contain content; omit it for a full-bleed
674
+ * band. The content is FREE; Section never bakes a title/CTA (that's
675
+ * `SectionBlock`'s opinionated job). The known composable parts (Eyebrow /
676
+ * Title / Subtitle / Description / Actions / Media) give the common shape
677
+ * design intent without constraining it.
678
+ */
679
+ type SectionScope = "default" | "inverse" | "brand" | "accent" | "muted" | "card";
680
+ type ContainerMaxW = "sm" | "md" | "lg" | "xl" | "prose" | "full";
681
+ declare const bandVariants: (props?: ({
682
+ pad?: "none" | "sm" | "md" | "lg" | "xl" | null | undefined;
683
+ } & class_variance_authority_types.ClassProp) | undefined) => string;
684
+ interface SectionProps extends React.HTMLAttributes<HTMLElement>, VariantProps<typeof bandVariants> {
685
+ /** Colour subtheme — applies the `scope-*` class (STUDIO-COLOR.md). Unset =
686
+ * the page surface (transparent). */
687
+ scope?: SectionScope;
688
+ /** Visual band background — image / video / gradient / shader (e.g.
689
+ * `<BackgroundFill>`). Renders BEHIND the content; Section owns the
690
+ * relative + overflow-hidden + z-layering. Works with `scope`, which
691
+ * re-tones the content tokens so text stays legible over the media. */
692
+ background?: React.ReactNode;
693
+ /** Semantic element. */
694
+ as?: "section" | "header" | "footer" | "div";
695
+ }
696
+ declare const Section: React.ForwardRefExoticComponent<SectionProps & React.RefAttributes<HTMLElement>>;
697
+ declare const containerVariants: (props?: ({
698
+ maxW?: "sm" | "md" | "lg" | "xl" | "full" | "prose" | null | undefined;
699
+ grid?: boolean | null | undefined;
700
+ } & class_variance_authority_types.ClassProp) | undefined) => string;
701
+ interface ContainerProps extends React.HTMLAttributes<HTMLDivElement>, VariantProps<typeof containerVariants> {
702
+ as?: "div" | "section";
703
+ }
704
+ declare const Container: React.ForwardRefExoticComponent<ContainerProps & React.RefAttributes<HTMLDivElement>>;
705
+ declare const SectionEyebrow: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLSpanElement> & React.RefAttributes<HTMLSpanElement>>;
706
+ declare const SectionTitle: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLHeadingElement> & React.RefAttributes<HTMLHeadingElement>>;
707
+ declare const SectionSubtitle: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLParagraphElement> & React.RefAttributes<HTMLParagraphElement>>;
708
+ declare const SectionDescription: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLParagraphElement> & React.RefAttributes<HTMLParagraphElement>>;
709
+ declare const SectionActions: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & React.RefAttributes<HTMLDivElement>>;
710
+ /** SectionMedia — a SLOT. Holds any media: a single image (MediaSurface),
711
+ * a Carousel, a VideoPlayer, an embed, or a whole app UI. The section
712
+ * doesn't care what's inside; the media frames itself. */
713
+ declare const SectionMedia: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & React.RefAttributes<HTMLDivElement>>;
714
+
660
715
  declare function Calendar({ className, classNames, showOutsideDays, captionLayout, buttonVariant, formatters, components, ...props }: React.ComponentProps<typeof DayPicker> & {
661
716
  buttonVariant?: React.ComponentProps<typeof Button>["variant"];
662
717
  }): React.JSX.Element;
@@ -2590,12 +2645,12 @@ declare const Separator: React.ForwardRefExoticComponent<Omit<SeparatorPrimitive
2590
2645
  * shared selection ring (`--selected`). Pass `label` to caption it (the
2591
2646
  * caption also becomes the accessible name / tooltip).
2592
2647
  *
2593
- * Sizing is the t-shirt scale (xs → xl); reach for `size` over `h-*`/`w-*`
2648
+ * Sizing is the t-shirt scale (2xs → xl, 16px → 56px); reach for `size` over `h-*`/`w-*`
2594
2649
  * utilities so the scale stays on tokens. Shape is square / rounded (rides
2595
2650
  * `--radius`) / circle.
2596
2651
  */
2597
2652
  declare const swatchVariants: (props?: ({
2598
- size?: "xs" | "sm" | "md" | "lg" | "xl" | null | undefined;
2653
+ size?: "2xs" | "xs" | "sm" | "md" | "lg" | "xl" | null | undefined;
2599
2654
  shape?: "rounded" | "square" | "circle" | null | undefined;
2600
2655
  } & class_variance_authority_types.ClassProp) | undefined) => string;
2601
2656
  type SwatchSize = NonNullable<VariantProps<typeof swatchVariants>["size"]>;
@@ -2605,6 +2660,13 @@ interface SwatchProps extends Omit<React.HTMLAttributes<HTMLElement>, "color">,
2605
2660
  color?: string;
2606
2661
  /** A Grade colour token name (no `--`), resolved as `oklch(var(--<token>))`. */
2607
2662
  token?: string;
2663
+ /** Fill kind. Defaults to "solid", or is inferred from `image` / `gradient`
2664
+ * when omitted. Drives what the chip renders in place. */
2665
+ type?: "solid" | "gradient" | "image";
2666
+ /** CSS gradient for `type="gradient"` — e.g. `"linear-gradient(135deg,#6366f1,#ec4899)"`. */
2667
+ gradient?: string;
2668
+ /** Image URL for `type="image"` — rendered cover-fit behind the chip. */
2669
+ image?: string;
2608
2670
  /** Optional caption rendered beneath the chip; also the accessible name. */
2609
2671
  label?: React.ReactNode;
2610
2672
  /** Draws the shared selection ring (`--selected`). */
@@ -2770,7 +2832,7 @@ interface SortableItemProps extends React.HTMLAttributes<HTMLDivElement> {
2770
2832
  declare const SortableItem: React.ForwardRefExoticComponent<SortableItemProps & React.RefAttributes<HTMLDivElement>>;
2771
2833
  interface SortableHandleProps extends React.HTMLAttributes<HTMLElement> {
2772
2834
  /** Render as the child element via Slot — typical pattern is
2773
- * `<Sortable.Handle asChild><Button variant="ghost" size="icon">…</Button></Sortable.Handle>`. */
2835
+ * `<Sortable.Handle asChild><Button variant="ghost" iconOnly>…</Button></Sortable.Handle>`. */
2774
2836
  asChild?: boolean;
2775
2837
  }
2776
2838
  declare const SortableHandle: React.ForwardRefExoticComponent<SortableHandleProps & React.RefAttributes<HTMLElement>>;
@@ -4549,6 +4611,133 @@ declare function FillPicker({ value, onChange, className }: FillPickerProps): Re
4549
4611
  declare namespace FillPicker {
4550
4612
  var displayName: string;
4551
4613
  }
4614
+ interface FillSectionProps {
4615
+ /** The ordered list of fills (top-most last, Figma-style — but the list
4616
+ * renders in array order; the consumer owns z-ordering semantics). */
4617
+ value: FillValue[];
4618
+ /** Fired with the next list on any add / edit / remove / reorder. */
4619
+ onChange: (value: FillValue[]) => void;
4620
+ /** Section heading. Default "Fills". */
4621
+ title?: string;
4622
+ className?: string;
4623
+ }
4624
+ declare function FillSection({ value, onChange, title, className, }: FillSectionProps): React.JSX.Element;
4625
+ declare namespace FillSection {
4626
+ var displayName: string;
4627
+ }
4628
+
4629
+ /**
4630
+ * ColorPicker — a token-led, grouped, searchable colour picker. The
4631
+ * single-select sibling of FillPicker's solid tab: where FillPicker is the
4632
+ * full Figma paint popover (solid / gradient / image / …), ColorPicker is
4633
+ * the focused "pick one colour token" control.
4634
+ *
4635
+ * Two exports:
4636
+ * - <ColorPickerPanel> — the popover BODY (header + search + grouped
4637
+ * list). Reusable: the inspector's colour fields host it inside their
4638
+ * own TokenField-chrome popover so every colour control shares ONE
4639
+ * panel. Matches the Figma "Color Picker" frame: a "Color" title with
4640
+ * a ghost close button, a search input, then DropdownMenuItem-style
4641
+ * rows (Swatch + token name + check) grouped by family.
4642
+ * - <ColorPicker> — panel + a self-contained trigger (swatch + name or,
4643
+ * with `triggerVariant="inline"`, just the swatch).
4644
+ *
4645
+ * Grade is token-led, so the value is a token NAME ("action/primary"), the
4646
+ * literal "transparent", or null. The Swatch resolves the live CSS variable,
4647
+ * so every chip re-voices when the theme changes.
4648
+ */
4649
+
4650
+ /** A named family of colour tokens, rendered as one group in the list. */
4651
+ interface ColorTokenGroup {
4652
+ /** Group heading (e.g. "action"). */
4653
+ group: string;
4654
+ /** Token NAMES in this group (e.g. "action/primary"). */
4655
+ tokens: string[];
4656
+ }
4657
+ /** Default token groups — the Grade semantic colour families. */
4658
+ declare const DEFAULT_COLOR_TOKEN_GROUPS: ColorTokenGroup[];
4659
+ /** The literal value for "no fill". */
4660
+ declare const TRANSPARENT = "transparent";
4661
+ type ColorPickerTriggerVariant = "default" | "inline";
4662
+ interface ColorPickerProps {
4663
+ /** A Grade colour token NAME ("action/primary"), the literal "transparent",
4664
+ * or null when nothing is picked. */
4665
+ value?: string | null;
4666
+ /** Fired with the next value (token name, "transparent", or null). */
4667
+ onValueChange?: (value: string | null) => void;
4668
+ /** Token families offered in the list. Defaults to the Grade semantic set. */
4669
+ tokens?: ColorTokenGroup[];
4670
+ /** Show the search input. Default true. */
4671
+ searchable?: boolean;
4672
+ /** `default` (form-control surface, swatch + name) or `inline` (just a
4673
+ * clickable swatch — the inspector / fill-row affordance). */
4674
+ triggerVariant?: ColorPickerTriggerVariant;
4675
+ /** Trigger text when nothing is selected. */
4676
+ placeholder?: string;
4677
+ /** Search-input placeholder. */
4678
+ searchPlaceholder?: string;
4679
+ /** Message rendered when search returns no rows. */
4680
+ emptyMessage?: string;
4681
+ /** Include a "Transparent" option at the top. Default true. */
4682
+ allowTransparent?: boolean;
4683
+ /** Popover header title. Default "Color"; pass null to drop the header. */
4684
+ title?: string | null;
4685
+ /** PopoverContent alignment. Default "start". */
4686
+ align?: "start" | "center" | "end";
4687
+ /** Lock the control to a display of its current value. */
4688
+ disabled?: boolean;
4689
+ /** Extra classes on the trigger. */
4690
+ className?: string;
4691
+ /** Forwarded to the trigger for tests / Studio selection. */
4692
+ id?: string;
4693
+ "aria-label"?: string;
4694
+ }
4695
+ declare const ColorPicker: React.ForwardRefExoticComponent<ColorPickerProps & React.RefAttributes<HTMLButtonElement>>;
4696
+
4697
+ /**
4698
+ * GradientEditor — edit a multi-stop CSS gradient with token-led stops.
4699
+ *
4700
+ * A type Select (Linear / Radial / Angular) with reverse + rotate actions, a
4701
+ * live full-width preview bar (a <Swatch type="gradient">), then a "Stops"
4702
+ * list: each stop is a position %, a colour (token via <ColorPicker>, or a
4703
+ * raw colour), an opacity %, and a remove button. An add button in the Stops
4704
+ * header appends a stop.
4705
+ *
4706
+ * The CSS gradient string is computed from type + angle + stops; token stops
4707
+ * resolve to `oklch(var(--<token>))` so the preview re-voices with the theme.
4708
+ * It emits the structured `GradientValue` (NOT a string) so the value stays
4709
+ * editable and serialisable — the caller renders the string via
4710
+ * `gradientToCss(value)` (exported alongside).
4711
+ */
4712
+
4713
+ type GradientType = "linear" | "radial" | "angular";
4714
+ /** A single colour stop. `token` wins over `color`; `opacity` is 0–1. */
4715
+ interface GradientStop {
4716
+ /** Stable key for list rendering / edits. */
4717
+ id: string;
4718
+ /** Position along the gradient, 0–100 (%). */
4719
+ position: number;
4720
+ /** A Grade colour token NAME ("action/primary"). Takes precedence. */
4721
+ token?: string;
4722
+ /** A raw CSS colour, used when no `token`. */
4723
+ color?: string;
4724
+ /** Stop opacity, 0–1. */
4725
+ opacity: number;
4726
+ }
4727
+ interface GradientValue {
4728
+ type: GradientType;
4729
+ /** Angle in degrees for linear / angular gradients. */
4730
+ angle?: number;
4731
+ stops: GradientStop[];
4732
+ }
4733
+ /** Compute the CSS gradient string from a structured value. */
4734
+ declare function gradientToCss(value: GradientValue): string;
4735
+ interface GradientEditorProps {
4736
+ value: GradientValue;
4737
+ onChange: (value: GradientValue) => void;
4738
+ className?: string;
4739
+ }
4740
+ declare const GradientEditor: React.ForwardRefExoticComponent<GradientEditorProps & React.RefAttributes<HTMLDivElement>>;
4552
4741
 
4553
4742
  /**
4554
4743
  * ShaderPresetPreview — a thumbnail-sized preview of a shader preset.
@@ -5226,4 +5415,4 @@ declare function GradeModeSwitcher({ className, variant }: GradeModeSwitcherProp
5226
5415
  */
5227
5416
  declare function ThemeToggle(): React.JSX.Element;
5228
5417
 
5229
- export { ALL_MODES, Accordion, AccordionContent, AccordionItem, AccordionTrigger, AppShell, AppShellAside, type AppShellAsideProps, AppShellFooter, type AppShellFooterProps, AppShellHeader, type AppShellHeaderProps, AppShellMain, type AppShellMainProps, AppShellNav, type AppShellNavProps, type AppShellProps, Avatar, AvatarFallback, AvatarImage, type AvatarTone, BUILT_IN_INPUTS, BackgroundFill, type BackgroundFillFit, type BackgroundFillProps, type BackgroundFillType, Badge, Banner, type BannerProps, type BaseMediaProps, BlinkingCursor, type BlinkingCursorProps, Breadcrumb, BreadcrumbEllipsis, BreadcrumbItem, BreadcrumbLink, BreadcrumbList, type BreadcrumbMenuItem, BreadcrumbMenuTrigger, BreadcrumbPage, BreadcrumbSeparator, Button, type ButtonShape, COMPONENT_CONTRACTS, Calendar, CalendarDayButton, Callout, CalloutDescription, CalloutTitle, Card, CardContent, CardDescription, CardFooter, CardHeader, type CardStyle, CardTitle, Carousel, CarouselArrows, type CarouselArrowsProps, type AutoplayConfig as CarouselAutoplayConfig, CarouselDots, type CarouselDotsProps, type CarouselNavButtonProps, CarouselNext, CarouselPrev, type CarouselProps, CarouselSlide, type CarouselSlideProps, CarouselVideoSlide, type CarouselVideoSlideProps, type ChartConfig, ChartContainer, ChartLegend, ChartLegendContent, type ChartPalette, ChartStyle, ChartTooltip, ChartTooltipContent, Checkbox, CheckboxCard, type CheckboxCardProps, Code, type CodeDiff, type CodeLanguage, type CodeProps, type CodeReveal, type CodeTrigger, type ColorIntensity, Combobox, type ComboboxOption, type ComboboxProps, Composer, type ComposerAttachment, type ComposerAttachmentConfig, type ComposerContent, type ComposerFormat, type ComposerHandle, type ComposerMentionItem, type ComposerProps, ComposerReply, type ComposerStep, type ComposerTriggerConfig, DEMO_SPEED_PRESETS, DataView, type DataViewBadgeOption, type DataViewCellType, type DataViewColumn, DataViewColumns, type DataViewColumnsProps, type DataViewMode, type DataViewProps, type DataViewState, DataViewToggle, type DataViewToggleProps, DatePicker, type DatePickerProps, DateRangePicker, type DateRangePickerProps, type DemoSpeed, DemoStage, type DemoStageProps, type DemoTrigger, Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, FILL_TOKENS, FRAGMENT_HEADER, Field, FieldDescription, FieldLabel, type FieldProps, FieldTrailing, FillPicker, type FillPickerProps, type FillValue, Flex, type FlexProps, type FontKey, GRADE_PRE_HYDRATION_SCRIPT, type GeneratedTheme, GradeLoader, type GradeLoaderProps, type GradeLoaderSize, GradeModeSwitcher, GradeThemeProvider, type GradeThemeProviderProps, GradeThemeSwitcher, Grid, type GridProps, Input, type InputStyle, Label, LenisProvider, Logo, type LogoLockup, type LogoMode, type LogoProps, type LogoSize, type LogoSources, type LogoVariant, MOTION_ATTR, Map, MapHandle, MapMarker, MapMarkerProps, MapProps, type MediaAspect, type MediaRadius, MediaSurface, MediaSurfaceContract, type MediaSurfaceProps, Message, type MessageProps, type ModeName, Motion, MotionOverlay, type MotionOverlayProps, type MotionOverlayZone, type MotionProps, MotionScene, type MotionSceneProps, type MotionSceneRegistration, type MotionSceneTransition, MotionScreen, type MotionScreenAnimate, type MotionScreenProps, MotionText, type MotionTextProps, type MotionTextTemplate, MultiSelect, type MultiSelectOption, type MultiSelectProps, type OKLCHTriplet, type Palette, Popover, PopoverAnchor, PopoverContent, PopoverTrigger, type PostPreset, Progress, PropertyList, type PropertyListProps, PropertyListRow, type PropertyListRowProps, RadioCard, type RadioCardProps, RadioGroup, RadioGroupItem, type RadiusStyle, type Ramp, ResizableHandle, ResizablePanel, ResizablePanelGroup, Reveal, type RevealAnimation, type RevealProps, type RevealStep, RivePlayer, type RivePlayerProps, Row, type RowProps, type SceneContext, type SceneFactory, type SceneHandle, ScreenAnimator, type ScreenAnimatorProps, type ScreenAnimatorShot, type ScriptedDemoContext, type ScriptedDemoState, ScrollArea, ScrollBar, Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue, Separator, ShaderCompileError, ShaderControls, type ShaderControlsProps, type ShaderPreset, ShaderPresetPicker, type ShaderPresetPickerProps, ShaderPresetPreview, type ShaderPresetPreviewProps, type ShadowIntensity, Sheet, SheetClose, SheetContent, SheetDescription, SheetFooter, SheetHeader, SheetOverlay, SheetPortal, SheetTitle, SheetTrigger, Sidebar, SidebarContent, type SidebarContentProps, SidebarFooter, type SidebarFooterProps, SidebarHeader, type SidebarHeaderProps, SidebarItem, type SidebarItemProps, type SidebarProps, SidebarSection, type SidebarSectionProps, SidebarTreeItem, type SidebarTreeItemProps, Skeleton, Slider, Sortable, SortableGroup, type SortableGroupProps, SortableHandle, type SortableHandleProps, SortableItem, type SortableItemProps, type SortableProps, type SpacingDensity, Stack, type StackProps, Swatch, SwatchGroup, type SwatchGroupProps, type SwatchProps, Switch, SwitchCard, type SwitchCardProps, Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableRow, Tabs, TabsContent, TabsList, TabsTrigger, Textarea, type ThemeInput, ThemeToggle, ThreeScene, type ThreeSceneProps, Toggle, ToggleGroup, ToggleGroupItem, Toolbar, type ToolbarProps, ToolbarSlot, type ToolbarSlotProps, Tooltip, TooltipContent, TooltipProvider, TooltipTrigger, type TypeScalePreset, type UseDataViewOptions, type UseScriptedDemoOptions, VideoPlayer, type VideoPlayerProps, asideVariants as appShellAsideVariants, footerVariants as appShellFooterVariants, headerVariants as appShellHeaderVariants, mainVariants as appShellMainVariants, navVariants as appShellNavVariants, applyThemeToRoot, badgeVariants, bannerVariants, buildFragmentShaderScene, builtInThemes, buttonVariants, calloutVariants, calmInput, cn, defaultPostPreset, defaultThemeId, deleteUserTheme, sleep as demoSleep, typeText as demoTypeText, duplicateTheme, energyInput, flexVariants, generateTheme, getComponentContract, getTheme, gridVariants, listContractedComponents, listThemes, listUserThemes, loadUserThemeInput, postPresets, rowVariants, saveUserTheme, sceneRegistry, setMotion, shaderPresetById, shaderPresets, shellVariants, stackVariants, swatchVariants, themeToCSSVars, toggleVariants, useCarouselApi, useDataView, useGradeTheme, useMaybeGradeTheme, useMotionScene, usePageActive, usePrefersReducedMotion, useReducedMotion, useScriptedDemo };
5418
+ export { ALL_MODES, Accordion, AccordionContent, AccordionItem, AccordionTrigger, AppShell, AppShellAside, type AppShellAsideProps, AppShellFooter, type AppShellFooterProps, AppShellHeader, type AppShellHeaderProps, AppShellMain, type AppShellMainProps, AppShellNav, type AppShellNavProps, type AppShellProps, Avatar, AvatarFallback, AvatarImage, type AvatarTone, BUILT_IN_INPUTS, BackgroundFill, type BackgroundFillFit, type BackgroundFillProps, type BackgroundFillType, Badge, Banner, type BannerProps, type BaseMediaProps, BlinkingCursor, type BlinkingCursorProps, Breadcrumb, BreadcrumbEllipsis, BreadcrumbItem, BreadcrumbLink, BreadcrumbList, type BreadcrumbMenuItem, BreadcrumbMenuTrigger, BreadcrumbPage, BreadcrumbSeparator, Button, type ButtonShape, TRANSPARENT as COLOR_PICKER_TRANSPARENT, COMPONENT_CONTRACTS, Calendar, CalendarDayButton, Callout, CalloutDescription, CalloutTitle, Card, CardContent, CardDescription, CardFooter, CardHeader, type CardStyle, CardTitle, Carousel, CarouselArrows, type CarouselArrowsProps, type AutoplayConfig as CarouselAutoplayConfig, CarouselDots, type CarouselDotsProps, type CarouselNavButtonProps, CarouselNext, CarouselPrev, type CarouselProps, CarouselSlide, type CarouselSlideProps, CarouselVideoSlide, type CarouselVideoSlideProps, type ChartConfig, ChartContainer, ChartLegend, ChartLegendContent, type ChartPalette, ChartStyle, ChartTooltip, ChartTooltipContent, Checkbox, CheckboxCard, type CheckboxCardProps, Code, type CodeDiff, type CodeLanguage, type CodeProps, type CodeReveal, type CodeTrigger, type ColorIntensity, ColorPicker, type ColorPickerProps, type ColorTokenGroup, Combobox, type ComboboxOption, type ComboboxProps, Composer, type ComposerAttachment, type ComposerAttachmentConfig, type ComposerContent, type ComposerFormat, type ComposerHandle, type ComposerMentionItem, type ComposerProps, ComposerReply, type ComposerStep, type ComposerTriggerConfig, Container, type ContainerMaxW, type ContainerProps, DEFAULT_COLOR_TOKEN_GROUPS, DEMO_SPEED_PRESETS, DataView, type DataViewBadgeOption, type DataViewCellType, type DataViewColumn, DataViewColumns, type DataViewColumnsProps, type DataViewMode, type DataViewProps, type DataViewState, DataViewToggle, type DataViewToggleProps, DatePicker, type DatePickerProps, DateRangePicker, type DateRangePickerProps, type DemoSpeed, DemoStage, type DemoStageProps, type DemoTrigger, Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, FILL_TOKENS, FRAGMENT_HEADER, Field, FieldDescription, FieldLabel, type FieldProps, FieldTrailing, FillPicker, type FillPickerProps, FillSection, type FillSectionProps, type FillValue, Flex, type FlexProps, type FontKey, GRADE_PRE_HYDRATION_SCRIPT, type GeneratedTheme, GradeLoader, type GradeLoaderProps, type GradeLoaderSize, GradeModeSwitcher, GradeThemeProvider, type GradeThemeProviderProps, GradeThemeSwitcher, GradientEditor, type GradientEditorProps, type GradientStop, type GradientType, type GradientValue, Grid, type GridProps, Input, type InputStyle, Label, LenisProvider, Logo, type LogoLockup, type LogoMode, type LogoProps, type LogoSize, type LogoSources, type LogoVariant, MOTION_ATTR, Map, MapHandle, MapMarker, MapMarkerProps, MapProps, type MediaAspect, type MediaRadius, MediaSurface, MediaSurfaceContract, type MediaSurfaceProps, Message, type MessageProps, type ModeName, Motion, MotionOverlay, type MotionOverlayProps, type MotionOverlayZone, type MotionProps, MotionScene, type MotionSceneProps, type MotionSceneRegistration, type MotionSceneTransition, MotionScreen, type MotionScreenAnimate, type MotionScreenProps, MotionText, type MotionTextProps, type MotionTextTemplate, MultiSelect, type MultiSelectOption, type MultiSelectProps, type OKLCHTriplet, type Palette, Popover, PopoverAnchor, PopoverContent, PopoverTrigger, type PostPreset, Progress, PropertyList, type PropertyListProps, PropertyListRow, type PropertyListRowProps, RadioCard, type RadioCardProps, RadioGroup, RadioGroupItem, type RadiusStyle, type Ramp, ResizableHandle, ResizablePanel, ResizablePanelGroup, Reveal, type RevealAnimation, type RevealProps, type RevealStep, RivePlayer, type RivePlayerProps, Row, type RowProps, type SceneContext, type SceneFactory, type SceneHandle, ScreenAnimator, type ScreenAnimatorProps, type ScreenAnimatorShot, type ScriptedDemoContext, type ScriptedDemoState, ScrollArea, ScrollBar, Section, SectionActions, SectionDescription, SectionEyebrow, SectionMedia, type SectionProps, type SectionScope, SectionSubtitle, SectionTitle, Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue, Separator, ShaderCompileError, ShaderControls, type ShaderControlsProps, type ShaderPreset, ShaderPresetPicker, type ShaderPresetPickerProps, ShaderPresetPreview, type ShaderPresetPreviewProps, type ShadowIntensity, Sheet, SheetClose, SheetContent, SheetDescription, SheetFooter, SheetHeader, SheetOverlay, SheetPortal, SheetTitle, SheetTrigger, Sidebar, SidebarContent, type SidebarContentProps, SidebarFooter, type SidebarFooterProps, SidebarHeader, type SidebarHeaderProps, SidebarItem, type SidebarItemProps, type SidebarProps, SidebarSection, type SidebarSectionProps, SidebarTreeItem, type SidebarTreeItemProps, Skeleton, Slider, Sortable, SortableGroup, type SortableGroupProps, SortableHandle, type SortableHandleProps, SortableItem, type SortableItemProps, type SortableProps, type SpacingDensity, Stack, type StackProps, Swatch, SwatchGroup, type SwatchGroupProps, type SwatchProps, Switch, SwitchCard, type SwitchCardProps, Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableRow, Tabs, TabsContent, TabsList, TabsTrigger, Textarea, type ThemeInput, ThemeToggle, ThreeScene, type ThreeSceneProps, Toggle, ToggleGroup, ToggleGroupItem, Toolbar, type ToolbarProps, ToolbarSlot, type ToolbarSlotProps, Tooltip, TooltipContent, TooltipProvider, TooltipTrigger, type TypeScalePreset, type UseDataViewOptions, type UseScriptedDemoOptions, VideoPlayer, type VideoPlayerProps, asideVariants as appShellAsideVariants, footerVariants as appShellFooterVariants, headerVariants as appShellHeaderVariants, mainVariants as appShellMainVariants, navVariants as appShellNavVariants, applyThemeToRoot, badgeVariants, bannerVariants, buildFragmentShaderScene, builtInThemes, buttonVariants, calloutVariants, calmInput, cn, containerVariants, defaultPostPreset, defaultThemeId, deleteUserTheme, sleep as demoSleep, typeText as demoTypeText, duplicateTheme, energyInput, flexVariants, generateTheme, getComponentContract, getTheme, gradientToCss, gridVariants, listContractedComponents, listThemes, listUserThemes, loadUserThemeInput, postPresets, rowVariants, saveUserTheme, sceneRegistry, bandVariants as sectionBandVariants, setMotion, shaderPresetById, shaderPresets, shellVariants, stackVariants, swatchVariants, themeToCSSVars, toggleVariants, useCarouselApi, useDataView, useGradeTheme, useMaybeGradeTheme, useMotionScene, usePageActive, usePrefersReducedMotion, useReducedMotion, useScriptedDemo };
package/dist/index.d.ts CHANGED
@@ -628,21 +628,28 @@ declare const Banner: React.ForwardRefExoticComponent<BannerProps & React.RefAtt
628
628
  * heights so a button placed next to a tab strip lines up without
629
629
  * any per-call className overrides:
630
630
  *
631
+ * 2xs: h-5 (20px) — densest tool-panel size; matches Figma Button size=2xs
632
+ * xs: h-6 (24px) — tool-panel density; matches Figma Button size=xs
631
633
  * sm: h-7 (28px) — matches `<TabsList size="sm">` height
632
634
  * md: h-8 (32px) — matches `<TabsList size="md">` height (default)
633
635
  * lg: h-10 (40px) — matches `<TabsList size="lg">` height
634
- * icon: h-8 w-8 — square variant, md height
635
636
  *
636
637
  * `default` is preserved as an alias for `md` so existing call sites
637
638
  * keep working through the rename.
638
639
  *
640
+ * `iconOnly` squares the button at WHATEVER `size` it has (2xs=20, sm=28,
641
+ * md=32, lg=40) by dropping horizontal padding and matching width to
642
+ * height. It's a boolean modifier on top of the height ramp — there is no
643
+ * separate icon size value — and the icon you pass as the child is centered.
644
+ *
639
645
  * Type and icon sizes also follow the Tabs scale (text-xs + size-3.5
640
646
  * at sm/md, text-sm + size-4 at lg) so the visual rhythm reads
641
647
  * consistent across primitives.
642
648
  */
643
649
  declare const buttonVariants: (props?: ({
644
650
  variant?: "link" | "default" | "secondary" | "destructive" | "outline" | "ghost" | "raised" | null | undefined;
645
- size?: "default" | "2xs" | "xs" | "sm" | "md" | "lg" | "icon" | null | undefined;
651
+ size?: "default" | "2xs" | "xs" | "sm" | "md" | "lg" | null | undefined;
652
+ iconOnly?: boolean | null | undefined;
646
653
  } & class_variance_authority_types.ClassProp) | undefined) => string;
647
654
  interface ButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement>, VariantProps<typeof buttonVariants> {
648
655
  asChild?: boolean;
@@ -657,6 +664,54 @@ interface ButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement>, Var
657
664
  }
658
665
  declare const Button: React.ForwardRefExoticComponent<ButtonProps & React.RefAttributes<HTMLButtonElement>>;
659
666
 
667
+ /**
668
+ * Section + Container — the page scaffold (STUDIO-SECTIONS.md).
669
+ *
670
+ * A page is an ordered stack of Sections. `Section` is the FULL-WIDTH band: it
671
+ * owns a colour `scope` (subtheme) + vertical `pad` rhythm, and nothing else —
672
+ * it never constrains width. `Container` is the measure: a centred max-width +
673
+ * gutters you drop INSIDE a section to contain content; omit it for a full-bleed
674
+ * band. The content is FREE; Section never bakes a title/CTA (that's
675
+ * `SectionBlock`'s opinionated job). The known composable parts (Eyebrow /
676
+ * Title / Subtitle / Description / Actions / Media) give the common shape
677
+ * design intent without constraining it.
678
+ */
679
+ type SectionScope = "default" | "inverse" | "brand" | "accent" | "muted" | "card";
680
+ type ContainerMaxW = "sm" | "md" | "lg" | "xl" | "prose" | "full";
681
+ declare const bandVariants: (props?: ({
682
+ pad?: "none" | "sm" | "md" | "lg" | "xl" | null | undefined;
683
+ } & class_variance_authority_types.ClassProp) | undefined) => string;
684
+ interface SectionProps extends React.HTMLAttributes<HTMLElement>, VariantProps<typeof bandVariants> {
685
+ /** Colour subtheme — applies the `scope-*` class (STUDIO-COLOR.md). Unset =
686
+ * the page surface (transparent). */
687
+ scope?: SectionScope;
688
+ /** Visual band background — image / video / gradient / shader (e.g.
689
+ * `<BackgroundFill>`). Renders BEHIND the content; Section owns the
690
+ * relative + overflow-hidden + z-layering. Works with `scope`, which
691
+ * re-tones the content tokens so text stays legible over the media. */
692
+ background?: React.ReactNode;
693
+ /** Semantic element. */
694
+ as?: "section" | "header" | "footer" | "div";
695
+ }
696
+ declare const Section: React.ForwardRefExoticComponent<SectionProps & React.RefAttributes<HTMLElement>>;
697
+ declare const containerVariants: (props?: ({
698
+ maxW?: "sm" | "md" | "lg" | "xl" | "full" | "prose" | null | undefined;
699
+ grid?: boolean | null | undefined;
700
+ } & class_variance_authority_types.ClassProp) | undefined) => string;
701
+ interface ContainerProps extends React.HTMLAttributes<HTMLDivElement>, VariantProps<typeof containerVariants> {
702
+ as?: "div" | "section";
703
+ }
704
+ declare const Container: React.ForwardRefExoticComponent<ContainerProps & React.RefAttributes<HTMLDivElement>>;
705
+ declare const SectionEyebrow: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLSpanElement> & React.RefAttributes<HTMLSpanElement>>;
706
+ declare const SectionTitle: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLHeadingElement> & React.RefAttributes<HTMLHeadingElement>>;
707
+ declare const SectionSubtitle: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLParagraphElement> & React.RefAttributes<HTMLParagraphElement>>;
708
+ declare const SectionDescription: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLParagraphElement> & React.RefAttributes<HTMLParagraphElement>>;
709
+ declare const SectionActions: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & React.RefAttributes<HTMLDivElement>>;
710
+ /** SectionMedia — a SLOT. Holds any media: a single image (MediaSurface),
711
+ * a Carousel, a VideoPlayer, an embed, or a whole app UI. The section
712
+ * doesn't care what's inside; the media frames itself. */
713
+ declare const SectionMedia: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & React.RefAttributes<HTMLDivElement>>;
714
+
660
715
  declare function Calendar({ className, classNames, showOutsideDays, captionLayout, buttonVariant, formatters, components, ...props }: React.ComponentProps<typeof DayPicker> & {
661
716
  buttonVariant?: React.ComponentProps<typeof Button>["variant"];
662
717
  }): React.JSX.Element;
@@ -2590,12 +2645,12 @@ declare const Separator: React.ForwardRefExoticComponent<Omit<SeparatorPrimitive
2590
2645
  * shared selection ring (`--selected`). Pass `label` to caption it (the
2591
2646
  * caption also becomes the accessible name / tooltip).
2592
2647
  *
2593
- * Sizing is the t-shirt scale (xs → xl); reach for `size` over `h-*`/`w-*`
2648
+ * Sizing is the t-shirt scale (2xs → xl, 16px → 56px); reach for `size` over `h-*`/`w-*`
2594
2649
  * utilities so the scale stays on tokens. Shape is square / rounded (rides
2595
2650
  * `--radius`) / circle.
2596
2651
  */
2597
2652
  declare const swatchVariants: (props?: ({
2598
- size?: "xs" | "sm" | "md" | "lg" | "xl" | null | undefined;
2653
+ size?: "2xs" | "xs" | "sm" | "md" | "lg" | "xl" | null | undefined;
2599
2654
  shape?: "rounded" | "square" | "circle" | null | undefined;
2600
2655
  } & class_variance_authority_types.ClassProp) | undefined) => string;
2601
2656
  type SwatchSize = NonNullable<VariantProps<typeof swatchVariants>["size"]>;
@@ -2605,6 +2660,13 @@ interface SwatchProps extends Omit<React.HTMLAttributes<HTMLElement>, "color">,
2605
2660
  color?: string;
2606
2661
  /** A Grade colour token name (no `--`), resolved as `oklch(var(--<token>))`. */
2607
2662
  token?: string;
2663
+ /** Fill kind. Defaults to "solid", or is inferred from `image` / `gradient`
2664
+ * when omitted. Drives what the chip renders in place. */
2665
+ type?: "solid" | "gradient" | "image";
2666
+ /** CSS gradient for `type="gradient"` — e.g. `"linear-gradient(135deg,#6366f1,#ec4899)"`. */
2667
+ gradient?: string;
2668
+ /** Image URL for `type="image"` — rendered cover-fit behind the chip. */
2669
+ image?: string;
2608
2670
  /** Optional caption rendered beneath the chip; also the accessible name. */
2609
2671
  label?: React.ReactNode;
2610
2672
  /** Draws the shared selection ring (`--selected`). */
@@ -2770,7 +2832,7 @@ interface SortableItemProps extends React.HTMLAttributes<HTMLDivElement> {
2770
2832
  declare const SortableItem: React.ForwardRefExoticComponent<SortableItemProps & React.RefAttributes<HTMLDivElement>>;
2771
2833
  interface SortableHandleProps extends React.HTMLAttributes<HTMLElement> {
2772
2834
  /** Render as the child element via Slot — typical pattern is
2773
- * `<Sortable.Handle asChild><Button variant="ghost" size="icon">…</Button></Sortable.Handle>`. */
2835
+ * `<Sortable.Handle asChild><Button variant="ghost" iconOnly>…</Button></Sortable.Handle>`. */
2774
2836
  asChild?: boolean;
2775
2837
  }
2776
2838
  declare const SortableHandle: React.ForwardRefExoticComponent<SortableHandleProps & React.RefAttributes<HTMLElement>>;
@@ -4549,6 +4611,133 @@ declare function FillPicker({ value, onChange, className }: FillPickerProps): Re
4549
4611
  declare namespace FillPicker {
4550
4612
  var displayName: string;
4551
4613
  }
4614
+ interface FillSectionProps {
4615
+ /** The ordered list of fills (top-most last, Figma-style — but the list
4616
+ * renders in array order; the consumer owns z-ordering semantics). */
4617
+ value: FillValue[];
4618
+ /** Fired with the next list on any add / edit / remove / reorder. */
4619
+ onChange: (value: FillValue[]) => void;
4620
+ /** Section heading. Default "Fills". */
4621
+ title?: string;
4622
+ className?: string;
4623
+ }
4624
+ declare function FillSection({ value, onChange, title, className, }: FillSectionProps): React.JSX.Element;
4625
+ declare namespace FillSection {
4626
+ var displayName: string;
4627
+ }
4628
+
4629
+ /**
4630
+ * ColorPicker — a token-led, grouped, searchable colour picker. The
4631
+ * single-select sibling of FillPicker's solid tab: where FillPicker is the
4632
+ * full Figma paint popover (solid / gradient / image / …), ColorPicker is
4633
+ * the focused "pick one colour token" control.
4634
+ *
4635
+ * Two exports:
4636
+ * - <ColorPickerPanel> — the popover BODY (header + search + grouped
4637
+ * list). Reusable: the inspector's colour fields host it inside their
4638
+ * own TokenField-chrome popover so every colour control shares ONE
4639
+ * panel. Matches the Figma "Color Picker" frame: a "Color" title with
4640
+ * a ghost close button, a search input, then DropdownMenuItem-style
4641
+ * rows (Swatch + token name + check) grouped by family.
4642
+ * - <ColorPicker> — panel + a self-contained trigger (swatch + name or,
4643
+ * with `triggerVariant="inline"`, just the swatch).
4644
+ *
4645
+ * Grade is token-led, so the value is a token NAME ("action/primary"), the
4646
+ * literal "transparent", or null. The Swatch resolves the live CSS variable,
4647
+ * so every chip re-voices when the theme changes.
4648
+ */
4649
+
4650
+ /** A named family of colour tokens, rendered as one group in the list. */
4651
+ interface ColorTokenGroup {
4652
+ /** Group heading (e.g. "action"). */
4653
+ group: string;
4654
+ /** Token NAMES in this group (e.g. "action/primary"). */
4655
+ tokens: string[];
4656
+ }
4657
+ /** Default token groups — the Grade semantic colour families. */
4658
+ declare const DEFAULT_COLOR_TOKEN_GROUPS: ColorTokenGroup[];
4659
+ /** The literal value for "no fill". */
4660
+ declare const TRANSPARENT = "transparent";
4661
+ type ColorPickerTriggerVariant = "default" | "inline";
4662
+ interface ColorPickerProps {
4663
+ /** A Grade colour token NAME ("action/primary"), the literal "transparent",
4664
+ * or null when nothing is picked. */
4665
+ value?: string | null;
4666
+ /** Fired with the next value (token name, "transparent", or null). */
4667
+ onValueChange?: (value: string | null) => void;
4668
+ /** Token families offered in the list. Defaults to the Grade semantic set. */
4669
+ tokens?: ColorTokenGroup[];
4670
+ /** Show the search input. Default true. */
4671
+ searchable?: boolean;
4672
+ /** `default` (form-control surface, swatch + name) or `inline` (just a
4673
+ * clickable swatch — the inspector / fill-row affordance). */
4674
+ triggerVariant?: ColorPickerTriggerVariant;
4675
+ /** Trigger text when nothing is selected. */
4676
+ placeholder?: string;
4677
+ /** Search-input placeholder. */
4678
+ searchPlaceholder?: string;
4679
+ /** Message rendered when search returns no rows. */
4680
+ emptyMessage?: string;
4681
+ /** Include a "Transparent" option at the top. Default true. */
4682
+ allowTransparent?: boolean;
4683
+ /** Popover header title. Default "Color"; pass null to drop the header. */
4684
+ title?: string | null;
4685
+ /** PopoverContent alignment. Default "start". */
4686
+ align?: "start" | "center" | "end";
4687
+ /** Lock the control to a display of its current value. */
4688
+ disabled?: boolean;
4689
+ /** Extra classes on the trigger. */
4690
+ className?: string;
4691
+ /** Forwarded to the trigger for tests / Studio selection. */
4692
+ id?: string;
4693
+ "aria-label"?: string;
4694
+ }
4695
+ declare const ColorPicker: React.ForwardRefExoticComponent<ColorPickerProps & React.RefAttributes<HTMLButtonElement>>;
4696
+
4697
+ /**
4698
+ * GradientEditor — edit a multi-stop CSS gradient with token-led stops.
4699
+ *
4700
+ * A type Select (Linear / Radial / Angular) with reverse + rotate actions, a
4701
+ * live full-width preview bar (a <Swatch type="gradient">), then a "Stops"
4702
+ * list: each stop is a position %, a colour (token via <ColorPicker>, or a
4703
+ * raw colour), an opacity %, and a remove button. An add button in the Stops
4704
+ * header appends a stop.
4705
+ *
4706
+ * The CSS gradient string is computed from type + angle + stops; token stops
4707
+ * resolve to `oklch(var(--<token>))` so the preview re-voices with the theme.
4708
+ * It emits the structured `GradientValue` (NOT a string) so the value stays
4709
+ * editable and serialisable — the caller renders the string via
4710
+ * `gradientToCss(value)` (exported alongside).
4711
+ */
4712
+
4713
+ type GradientType = "linear" | "radial" | "angular";
4714
+ /** A single colour stop. `token` wins over `color`; `opacity` is 0–1. */
4715
+ interface GradientStop {
4716
+ /** Stable key for list rendering / edits. */
4717
+ id: string;
4718
+ /** Position along the gradient, 0–100 (%). */
4719
+ position: number;
4720
+ /** A Grade colour token NAME ("action/primary"). Takes precedence. */
4721
+ token?: string;
4722
+ /** A raw CSS colour, used when no `token`. */
4723
+ color?: string;
4724
+ /** Stop opacity, 0–1. */
4725
+ opacity: number;
4726
+ }
4727
+ interface GradientValue {
4728
+ type: GradientType;
4729
+ /** Angle in degrees for linear / angular gradients. */
4730
+ angle?: number;
4731
+ stops: GradientStop[];
4732
+ }
4733
+ /** Compute the CSS gradient string from a structured value. */
4734
+ declare function gradientToCss(value: GradientValue): string;
4735
+ interface GradientEditorProps {
4736
+ value: GradientValue;
4737
+ onChange: (value: GradientValue) => void;
4738
+ className?: string;
4739
+ }
4740
+ declare const GradientEditor: React.ForwardRefExoticComponent<GradientEditorProps & React.RefAttributes<HTMLDivElement>>;
4552
4741
 
4553
4742
  /**
4554
4743
  * ShaderPresetPreview — a thumbnail-sized preview of a shader preset.
@@ -5226,4 +5415,4 @@ declare function GradeModeSwitcher({ className, variant }: GradeModeSwitcherProp
5226
5415
  */
5227
5416
  declare function ThemeToggle(): React.JSX.Element;
5228
5417
 
5229
- export { ALL_MODES, Accordion, AccordionContent, AccordionItem, AccordionTrigger, AppShell, AppShellAside, type AppShellAsideProps, AppShellFooter, type AppShellFooterProps, AppShellHeader, type AppShellHeaderProps, AppShellMain, type AppShellMainProps, AppShellNav, type AppShellNavProps, type AppShellProps, Avatar, AvatarFallback, AvatarImage, type AvatarTone, BUILT_IN_INPUTS, BackgroundFill, type BackgroundFillFit, type BackgroundFillProps, type BackgroundFillType, Badge, Banner, type BannerProps, type BaseMediaProps, BlinkingCursor, type BlinkingCursorProps, Breadcrumb, BreadcrumbEllipsis, BreadcrumbItem, BreadcrumbLink, BreadcrumbList, type BreadcrumbMenuItem, BreadcrumbMenuTrigger, BreadcrumbPage, BreadcrumbSeparator, Button, type ButtonShape, COMPONENT_CONTRACTS, Calendar, CalendarDayButton, Callout, CalloutDescription, CalloutTitle, Card, CardContent, CardDescription, CardFooter, CardHeader, type CardStyle, CardTitle, Carousel, CarouselArrows, type CarouselArrowsProps, type AutoplayConfig as CarouselAutoplayConfig, CarouselDots, type CarouselDotsProps, type CarouselNavButtonProps, CarouselNext, CarouselPrev, type CarouselProps, CarouselSlide, type CarouselSlideProps, CarouselVideoSlide, type CarouselVideoSlideProps, type ChartConfig, ChartContainer, ChartLegend, ChartLegendContent, type ChartPalette, ChartStyle, ChartTooltip, ChartTooltipContent, Checkbox, CheckboxCard, type CheckboxCardProps, Code, type CodeDiff, type CodeLanguage, type CodeProps, type CodeReveal, type CodeTrigger, type ColorIntensity, Combobox, type ComboboxOption, type ComboboxProps, Composer, type ComposerAttachment, type ComposerAttachmentConfig, type ComposerContent, type ComposerFormat, type ComposerHandle, type ComposerMentionItem, type ComposerProps, ComposerReply, type ComposerStep, type ComposerTriggerConfig, DEMO_SPEED_PRESETS, DataView, type DataViewBadgeOption, type DataViewCellType, type DataViewColumn, DataViewColumns, type DataViewColumnsProps, type DataViewMode, type DataViewProps, type DataViewState, DataViewToggle, type DataViewToggleProps, DatePicker, type DatePickerProps, DateRangePicker, type DateRangePickerProps, type DemoSpeed, DemoStage, type DemoStageProps, type DemoTrigger, Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, FILL_TOKENS, FRAGMENT_HEADER, Field, FieldDescription, FieldLabel, type FieldProps, FieldTrailing, FillPicker, type FillPickerProps, type FillValue, Flex, type FlexProps, type FontKey, GRADE_PRE_HYDRATION_SCRIPT, type GeneratedTheme, GradeLoader, type GradeLoaderProps, type GradeLoaderSize, GradeModeSwitcher, GradeThemeProvider, type GradeThemeProviderProps, GradeThemeSwitcher, Grid, type GridProps, Input, type InputStyle, Label, LenisProvider, Logo, type LogoLockup, type LogoMode, type LogoProps, type LogoSize, type LogoSources, type LogoVariant, MOTION_ATTR, Map, MapHandle, MapMarker, MapMarkerProps, MapProps, type MediaAspect, type MediaRadius, MediaSurface, MediaSurfaceContract, type MediaSurfaceProps, Message, type MessageProps, type ModeName, Motion, MotionOverlay, type MotionOverlayProps, type MotionOverlayZone, type MotionProps, MotionScene, type MotionSceneProps, type MotionSceneRegistration, type MotionSceneTransition, MotionScreen, type MotionScreenAnimate, type MotionScreenProps, MotionText, type MotionTextProps, type MotionTextTemplate, MultiSelect, type MultiSelectOption, type MultiSelectProps, type OKLCHTriplet, type Palette, Popover, PopoverAnchor, PopoverContent, PopoverTrigger, type PostPreset, Progress, PropertyList, type PropertyListProps, PropertyListRow, type PropertyListRowProps, RadioCard, type RadioCardProps, RadioGroup, RadioGroupItem, type RadiusStyle, type Ramp, ResizableHandle, ResizablePanel, ResizablePanelGroup, Reveal, type RevealAnimation, type RevealProps, type RevealStep, RivePlayer, type RivePlayerProps, Row, type RowProps, type SceneContext, type SceneFactory, type SceneHandle, ScreenAnimator, type ScreenAnimatorProps, type ScreenAnimatorShot, type ScriptedDemoContext, type ScriptedDemoState, ScrollArea, ScrollBar, Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue, Separator, ShaderCompileError, ShaderControls, type ShaderControlsProps, type ShaderPreset, ShaderPresetPicker, type ShaderPresetPickerProps, ShaderPresetPreview, type ShaderPresetPreviewProps, type ShadowIntensity, Sheet, SheetClose, SheetContent, SheetDescription, SheetFooter, SheetHeader, SheetOverlay, SheetPortal, SheetTitle, SheetTrigger, Sidebar, SidebarContent, type SidebarContentProps, SidebarFooter, type SidebarFooterProps, SidebarHeader, type SidebarHeaderProps, SidebarItem, type SidebarItemProps, type SidebarProps, SidebarSection, type SidebarSectionProps, SidebarTreeItem, type SidebarTreeItemProps, Skeleton, Slider, Sortable, SortableGroup, type SortableGroupProps, SortableHandle, type SortableHandleProps, SortableItem, type SortableItemProps, type SortableProps, type SpacingDensity, Stack, type StackProps, Swatch, SwatchGroup, type SwatchGroupProps, type SwatchProps, Switch, SwitchCard, type SwitchCardProps, Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableRow, Tabs, TabsContent, TabsList, TabsTrigger, Textarea, type ThemeInput, ThemeToggle, ThreeScene, type ThreeSceneProps, Toggle, ToggleGroup, ToggleGroupItem, Toolbar, type ToolbarProps, ToolbarSlot, type ToolbarSlotProps, Tooltip, TooltipContent, TooltipProvider, TooltipTrigger, type TypeScalePreset, type UseDataViewOptions, type UseScriptedDemoOptions, VideoPlayer, type VideoPlayerProps, asideVariants as appShellAsideVariants, footerVariants as appShellFooterVariants, headerVariants as appShellHeaderVariants, mainVariants as appShellMainVariants, navVariants as appShellNavVariants, applyThemeToRoot, badgeVariants, bannerVariants, buildFragmentShaderScene, builtInThemes, buttonVariants, calloutVariants, calmInput, cn, defaultPostPreset, defaultThemeId, deleteUserTheme, sleep as demoSleep, typeText as demoTypeText, duplicateTheme, energyInput, flexVariants, generateTheme, getComponentContract, getTheme, gridVariants, listContractedComponents, listThemes, listUserThemes, loadUserThemeInput, postPresets, rowVariants, saveUserTheme, sceneRegistry, setMotion, shaderPresetById, shaderPresets, shellVariants, stackVariants, swatchVariants, themeToCSSVars, toggleVariants, useCarouselApi, useDataView, useGradeTheme, useMaybeGradeTheme, useMotionScene, usePageActive, usePrefersReducedMotion, useReducedMotion, useScriptedDemo };
5418
+ export { ALL_MODES, Accordion, AccordionContent, AccordionItem, AccordionTrigger, AppShell, AppShellAside, type AppShellAsideProps, AppShellFooter, type AppShellFooterProps, AppShellHeader, type AppShellHeaderProps, AppShellMain, type AppShellMainProps, AppShellNav, type AppShellNavProps, type AppShellProps, Avatar, AvatarFallback, AvatarImage, type AvatarTone, BUILT_IN_INPUTS, BackgroundFill, type BackgroundFillFit, type BackgroundFillProps, type BackgroundFillType, Badge, Banner, type BannerProps, type BaseMediaProps, BlinkingCursor, type BlinkingCursorProps, Breadcrumb, BreadcrumbEllipsis, BreadcrumbItem, BreadcrumbLink, BreadcrumbList, type BreadcrumbMenuItem, BreadcrumbMenuTrigger, BreadcrumbPage, BreadcrumbSeparator, Button, type ButtonShape, TRANSPARENT as COLOR_PICKER_TRANSPARENT, COMPONENT_CONTRACTS, Calendar, CalendarDayButton, Callout, CalloutDescription, CalloutTitle, Card, CardContent, CardDescription, CardFooter, CardHeader, type CardStyle, CardTitle, Carousel, CarouselArrows, type CarouselArrowsProps, type AutoplayConfig as CarouselAutoplayConfig, CarouselDots, type CarouselDotsProps, type CarouselNavButtonProps, CarouselNext, CarouselPrev, type CarouselProps, CarouselSlide, type CarouselSlideProps, CarouselVideoSlide, type CarouselVideoSlideProps, type ChartConfig, ChartContainer, ChartLegend, ChartLegendContent, type ChartPalette, ChartStyle, ChartTooltip, ChartTooltipContent, Checkbox, CheckboxCard, type CheckboxCardProps, Code, type CodeDiff, type CodeLanguage, type CodeProps, type CodeReveal, type CodeTrigger, type ColorIntensity, ColorPicker, type ColorPickerProps, type ColorTokenGroup, Combobox, type ComboboxOption, type ComboboxProps, Composer, type ComposerAttachment, type ComposerAttachmentConfig, type ComposerContent, type ComposerFormat, type ComposerHandle, type ComposerMentionItem, type ComposerProps, ComposerReply, type ComposerStep, type ComposerTriggerConfig, Container, type ContainerMaxW, type ContainerProps, DEFAULT_COLOR_TOKEN_GROUPS, DEMO_SPEED_PRESETS, DataView, type DataViewBadgeOption, type DataViewCellType, type DataViewColumn, DataViewColumns, type DataViewColumnsProps, type DataViewMode, type DataViewProps, type DataViewState, DataViewToggle, type DataViewToggleProps, DatePicker, type DatePickerProps, DateRangePicker, type DateRangePickerProps, type DemoSpeed, DemoStage, type DemoStageProps, type DemoTrigger, Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, FILL_TOKENS, FRAGMENT_HEADER, Field, FieldDescription, FieldLabel, type FieldProps, FieldTrailing, FillPicker, type FillPickerProps, FillSection, type FillSectionProps, type FillValue, Flex, type FlexProps, type FontKey, GRADE_PRE_HYDRATION_SCRIPT, type GeneratedTheme, GradeLoader, type GradeLoaderProps, type GradeLoaderSize, GradeModeSwitcher, GradeThemeProvider, type GradeThemeProviderProps, GradeThemeSwitcher, GradientEditor, type GradientEditorProps, type GradientStop, type GradientType, type GradientValue, Grid, type GridProps, Input, type InputStyle, Label, LenisProvider, Logo, type LogoLockup, type LogoMode, type LogoProps, type LogoSize, type LogoSources, type LogoVariant, MOTION_ATTR, Map, MapHandle, MapMarker, MapMarkerProps, MapProps, type MediaAspect, type MediaRadius, MediaSurface, MediaSurfaceContract, type MediaSurfaceProps, Message, type MessageProps, type ModeName, Motion, MotionOverlay, type MotionOverlayProps, type MotionOverlayZone, type MotionProps, MotionScene, type MotionSceneProps, type MotionSceneRegistration, type MotionSceneTransition, MotionScreen, type MotionScreenAnimate, type MotionScreenProps, MotionText, type MotionTextProps, type MotionTextTemplate, MultiSelect, type MultiSelectOption, type MultiSelectProps, type OKLCHTriplet, type Palette, Popover, PopoverAnchor, PopoverContent, PopoverTrigger, type PostPreset, Progress, PropertyList, type PropertyListProps, PropertyListRow, type PropertyListRowProps, RadioCard, type RadioCardProps, RadioGroup, RadioGroupItem, type RadiusStyle, type Ramp, ResizableHandle, ResizablePanel, ResizablePanelGroup, Reveal, type RevealAnimation, type RevealProps, type RevealStep, RivePlayer, type RivePlayerProps, Row, type RowProps, type SceneContext, type SceneFactory, type SceneHandle, ScreenAnimator, type ScreenAnimatorProps, type ScreenAnimatorShot, type ScriptedDemoContext, type ScriptedDemoState, ScrollArea, ScrollBar, Section, SectionActions, SectionDescription, SectionEyebrow, SectionMedia, type SectionProps, type SectionScope, SectionSubtitle, SectionTitle, Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue, Separator, ShaderCompileError, ShaderControls, type ShaderControlsProps, type ShaderPreset, ShaderPresetPicker, type ShaderPresetPickerProps, ShaderPresetPreview, type ShaderPresetPreviewProps, type ShadowIntensity, Sheet, SheetClose, SheetContent, SheetDescription, SheetFooter, SheetHeader, SheetOverlay, SheetPortal, SheetTitle, SheetTrigger, Sidebar, SidebarContent, type SidebarContentProps, SidebarFooter, type SidebarFooterProps, SidebarHeader, type SidebarHeaderProps, SidebarItem, type SidebarItemProps, type SidebarProps, SidebarSection, type SidebarSectionProps, SidebarTreeItem, type SidebarTreeItemProps, Skeleton, Slider, Sortable, SortableGroup, type SortableGroupProps, SortableHandle, type SortableHandleProps, SortableItem, type SortableItemProps, type SortableProps, type SpacingDensity, Stack, type StackProps, Swatch, SwatchGroup, type SwatchGroupProps, type SwatchProps, Switch, SwitchCard, type SwitchCardProps, Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableRow, Tabs, TabsContent, TabsList, TabsTrigger, Textarea, type ThemeInput, ThemeToggle, ThreeScene, type ThreeSceneProps, Toggle, ToggleGroup, ToggleGroupItem, Toolbar, type ToolbarProps, ToolbarSlot, type ToolbarSlotProps, Tooltip, TooltipContent, TooltipProvider, TooltipTrigger, type TypeScalePreset, type UseDataViewOptions, type UseScriptedDemoOptions, VideoPlayer, type VideoPlayerProps, asideVariants as appShellAsideVariants, footerVariants as appShellFooterVariants, headerVariants as appShellHeaderVariants, mainVariants as appShellMainVariants, navVariants as appShellNavVariants, applyThemeToRoot, badgeVariants, bannerVariants, buildFragmentShaderScene, builtInThemes, buttonVariants, calloutVariants, calmInput, cn, containerVariants, defaultPostPreset, defaultThemeId, deleteUserTheme, sleep as demoSleep, typeText as demoTypeText, duplicateTheme, energyInput, flexVariants, generateTheme, getComponentContract, getTheme, gradientToCss, gridVariants, listContractedComponents, listThemes, listUserThemes, loadUserThemeInput, postPresets, rowVariants, saveUserTheme, sceneRegistry, bandVariants as sectionBandVariants, setMotion, shaderPresetById, shaderPresets, shellVariants, stackVariants, swatchVariants, themeToCSSVars, toggleVariants, useCarouselApi, useDataView, useGradeTheme, useMaybeGradeTheme, useMotionScene, usePageActive, usePrefersReducedMotion, useReducedMotion, useScriptedDemo };