@gradeui/ui 1.2.0 → 2.0.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/components/ui/background-fill.md +135 -0
- package/components/ui/checkbox-card.md +43 -0
- package/components/ui/checkbox.md +2 -2
- package/components/ui/dropdown-menu.md +2 -0
- package/components/ui/field.md +26 -0
- package/components/ui/fill-picker.md +36 -0
- package/components/ui/input.md +27 -2
- package/components/ui/label.md +2 -1
- package/components/ui/logo.md +59 -0
- package/components/ui/message.md +34 -0
- package/components/ui/radio-card.md +41 -0
- package/components/ui/radio-group.md +2 -2
- package/components/ui/screen-animator.md +54 -0
- package/components/ui/select.md +16 -4
- package/components/ui/switch-card.md +30 -0
- package/components/ui/switch.md +2 -2
- package/components/ui/textarea.md +2 -1
- package/components/ui/three-scene.md +22 -1
- package/dist/contracts.js +6 -6
- package/dist/contracts.js.map +1 -1
- package/dist/contracts.mjs +6 -6
- package/dist/contracts.mjs.map +1 -1
- package/dist/index.d.mts +703 -42
- package/dist/index.d.ts +703 -42
- package/dist/index.js +90 -56
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +90 -56
- package/dist/index.mjs.map +1 -1
- package/dist/styles.css +2 -1
- package/dist/tailwind-preset.js +1 -1
- package/dist/tailwind-preset.js.map +1 -1
- package/dist/tailwind-preset.mjs +1 -1
- package/dist/tailwind-preset.mjs.map +1 -1
- package/package.json +4 -4
package/dist/index.d.ts
CHANGED
|
@@ -9,6 +9,8 @@ import * as AvatarPrimitive from '@radix-ui/react-avatar';
|
|
|
9
9
|
import { DayPicker, DayButton, DateRange } from 'react-day-picker';
|
|
10
10
|
import { UseEmblaCarouselType } from 'embla-carousel-react';
|
|
11
11
|
import * as CheckboxPrimitive from '@radix-ui/react-checkbox';
|
|
12
|
+
import * as RadioGroupPrimitive from '@radix-ui/react-radio-group';
|
|
13
|
+
import * as SwitchPrimitives from '@radix-ui/react-switch';
|
|
12
14
|
import { Language } from 'prism-react-renderer';
|
|
13
15
|
import { LexicalEditor } from 'lexical';
|
|
14
16
|
import * as DialogPrimitive from '@radix-ui/react-dialog';
|
|
@@ -16,14 +18,12 @@ import * as DropdownMenuPrimitive from '@radix-ui/react-dropdown-menu';
|
|
|
16
18
|
import * as LabelPrimitive from '@radix-ui/react-label';
|
|
17
19
|
import * as PopoverPrimitive from '@radix-ui/react-popover';
|
|
18
20
|
import * as ProgressPrimitive from '@radix-ui/react-progress';
|
|
19
|
-
import * as RadioGroupPrimitive from '@radix-ui/react-radio-group';
|
|
20
21
|
import * as ResizablePrimitive from 'react-resizable-panels';
|
|
21
22
|
import * as ScrollAreaPrimitive from '@radix-ui/react-scroll-area';
|
|
22
23
|
import * as SelectPrimitive from '@radix-ui/react-select';
|
|
23
24
|
import * as SeparatorPrimitive from '@radix-ui/react-separator';
|
|
24
25
|
import * as SliderPrimitive from '@radix-ui/react-slider';
|
|
25
26
|
import { UniqueIdentifier } from '@dnd-kit/core';
|
|
26
|
-
import * as SwitchPrimitives from '@radix-ui/react-switch';
|
|
27
27
|
import * as TabsPrimitive from '@radix-ui/react-tabs';
|
|
28
28
|
import * as TogglePrimitive from '@radix-ui/react-toggle';
|
|
29
29
|
import * as ToggleGroupPrimitive from '@radix-ui/react-toggle-group';
|
|
@@ -48,6 +48,7 @@ declare const MediaSurfaceContract: _gradeui_contracts.ComponentContract<{
|
|
|
48
48
|
hint: {
|
|
49
49
|
schema: z.ZodOptional<z.ZodEnum<["album", "tv-show", "movie", "game", "book", "portrait", "landscape", "poster", "product", "food", "video", "audio", "embed", "3d", "generic"]>>;
|
|
50
50
|
design: "knob";
|
|
51
|
+
group: string;
|
|
51
52
|
control: "glyph-picker";
|
|
52
53
|
label: string;
|
|
53
54
|
description: string;
|
|
@@ -93,6 +94,7 @@ declare const MediaSurfaceContract: _gradeui_contracts.ComponentContract<{
|
|
|
93
94
|
alt: {
|
|
94
95
|
schema: z.ZodOptional<z.ZodString>;
|
|
95
96
|
design: "content";
|
|
97
|
+
group: string;
|
|
96
98
|
control: "text";
|
|
97
99
|
label: string;
|
|
98
100
|
description: string;
|
|
@@ -101,6 +103,7 @@ declare const MediaSurfaceContract: _gradeui_contracts.ComponentContract<{
|
|
|
101
103
|
src: {
|
|
102
104
|
schema: z.ZodOptional<z.ZodString>;
|
|
103
105
|
design: "content";
|
|
106
|
+
group: string;
|
|
104
107
|
control: "url";
|
|
105
108
|
label: string;
|
|
106
109
|
description: string;
|
|
@@ -174,14 +177,14 @@ declare const MediaSurfaceContract: _gradeui_contracts.ComponentContract<{
|
|
|
174
177
|
description: z.ZodOptional<z.ZodString>;
|
|
175
178
|
}, "strip", z.ZodTypeAny, {
|
|
176
179
|
kind: "book";
|
|
177
|
-
title?: string | undefined;
|
|
178
180
|
description?: string | undefined;
|
|
181
|
+
title?: string | undefined;
|
|
179
182
|
author?: string | undefined;
|
|
180
183
|
isbn?: string | undefined;
|
|
181
184
|
}, {
|
|
182
185
|
kind: "book";
|
|
183
|
-
title?: string | undefined;
|
|
184
186
|
description?: string | undefined;
|
|
187
|
+
title?: string | undefined;
|
|
185
188
|
author?: string | undefined;
|
|
186
189
|
isbn?: string | undefined;
|
|
187
190
|
}>, z.ZodObject<{
|
|
@@ -486,7 +489,7 @@ declare const AppShellFooter: React$1.ForwardRefExoticComponent<AppShellFooterPr
|
|
|
486
489
|
* directly still works and overrides the variant defaults.
|
|
487
490
|
*/
|
|
488
491
|
declare const avatarSizes: (props?: ({
|
|
489
|
-
size?: "sm" | "md" | "lg" | "xs" | "
|
|
492
|
+
size?: "sm" | "md" | "lg" | "xl" | "xs" | "2xs" | null | undefined;
|
|
490
493
|
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
491
494
|
interface AvatarProps extends React$1.ComponentPropsWithoutRef<typeof AvatarPrimitive.Root>, VariantProps<typeof avatarSizes> {
|
|
492
495
|
}
|
|
@@ -495,6 +498,7 @@ declare const AvatarImage: React$1.ForwardRefExoticComponent<Omit<AvatarPrimitiv
|
|
|
495
498
|
declare const avatarFallbackTones: (props?: ({
|
|
496
499
|
tone?: "muted" | "primary" | "violet" | "amber" | "emerald" | "sky" | "rose" | "plum" | "lime" | null | undefined;
|
|
497
500
|
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
501
|
+
type AvatarTone = NonNullable<VariantProps<typeof avatarFallbackTones>["tone"]>;
|
|
498
502
|
interface AvatarFallbackProps extends React$1.ComponentPropsWithoutRef<typeof AvatarPrimitive.Fallback>, VariantProps<typeof avatarFallbackTones> {
|
|
499
503
|
}
|
|
500
504
|
declare const AvatarFallback: React$1.ForwardRefExoticComponent<AvatarFallbackProps & React$1.RefAttributes<HTMLSpanElement>>;
|
|
@@ -567,7 +571,7 @@ type Surface = "solid" | "translucent" | "glass" | "glass-strong";
|
|
|
567
571
|
*/
|
|
568
572
|
declare const bannerVariants: (props?: ({
|
|
569
573
|
variant?: "default" | "info" | "success" | "warning" | "destructive" | "announcement" | null | undefined;
|
|
570
|
-
align?: "
|
|
574
|
+
align?: "between" | "start" | "center" | null | undefined;
|
|
571
575
|
sticky?: boolean | null | undefined;
|
|
572
576
|
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
573
577
|
interface BannerProps extends Omit<React$1.HTMLAttributes<HTMLDivElement>, "title">, VariantProps<typeof bannerVariants> {
|
|
@@ -623,8 +627,8 @@ declare const Banner: React$1.ForwardRefExoticComponent<BannerProps & React$1.Re
|
|
|
623
627
|
* consistent across primitives.
|
|
624
628
|
*/
|
|
625
629
|
declare const buttonVariants: (props?: ({
|
|
626
|
-
variant?: "
|
|
627
|
-
size?: "
|
|
630
|
+
variant?: "default" | "destructive" | "outline" | "secondary" | "ghost" | "link" | "raised" | null | undefined;
|
|
631
|
+
size?: "sm" | "md" | "lg" | "default" | "icon" | "xs" | "2xs" | null | undefined;
|
|
628
632
|
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
629
633
|
interface ButtonProps extends React$1.ButtonHTMLAttributes<HTMLButtonElement>, VariantProps<typeof buttonVariants> {
|
|
630
634
|
asChild?: boolean;
|
|
@@ -799,6 +803,107 @@ declare const CardFooter: React$1.ForwardRefExoticComponent<React$1.HTMLAttribut
|
|
|
799
803
|
|
|
800
804
|
declare const Checkbox: React$1.ForwardRefExoticComponent<Omit<CheckboxPrimitive.CheckboxProps & React$1.RefAttributes<HTMLButtonElement>, "ref"> & React$1.RefAttributes<HTMLButtonElement>>;
|
|
801
805
|
|
|
806
|
+
/**
|
|
807
|
+
* Field — the inline composition primitive for a control + its caption.
|
|
808
|
+
*
|
|
809
|
+
* Pairs a bare control (Checkbox / RadioGroupItem / Switch) with a label,
|
|
810
|
+
* an optional description, and an optional trailing slot — and wires the
|
|
811
|
+
* accessibility plumbing for you:
|
|
812
|
+
*
|
|
813
|
+
* - generates one id, hands it to the control, and points the label's
|
|
814
|
+
* `htmlFor` at it (click-the-label-to-toggle for free)
|
|
815
|
+
* - if a <Field.Description> is present, links it via `aria-describedby`
|
|
816
|
+
*
|
|
817
|
+
* The control stays a bare primitive — Field clones it to inject the id +
|
|
818
|
+
* aria wiring, so Checkbox/Radio/Switch never grow a `description` prop.
|
|
819
|
+
*
|
|
820
|
+
* <Field>
|
|
821
|
+
* <Checkbox value="terms" />
|
|
822
|
+
* <Field.Label>Accept terms</Field.Label>
|
|
823
|
+
* <Field.Description>You agree to the privacy policy.</Field.Description>
|
|
824
|
+
* <Field.Trailing><Badge>New</Badge></Field.Trailing>
|
|
825
|
+
* </Field>
|
|
826
|
+
*
|
|
827
|
+
* Two layouts:
|
|
828
|
+
* - `option` (default) — control leads, text stacks beside it. The
|
|
829
|
+
* checkbox/radio-with-label case. Top-aligned for two lines.
|
|
830
|
+
* - `setting` — text leads, control pinned trailing. The classic
|
|
831
|
+
* settings row (label + description on the left, Switch right).
|
|
832
|
+
*
|
|
833
|
+
* For a selectable *card* (the whole surface is the control), reach for
|
|
834
|
+
* RadioCard / CheckboxCard / SwitchCard instead — see `selection-card.tsx`.
|
|
835
|
+
*/
|
|
836
|
+
type FieldLayout = "option" | "setting";
|
|
837
|
+
declare const FieldLabel: React$1.ForwardRefExoticComponent<Omit<React$1.DetailedHTMLProps<React$1.LabelHTMLAttributes<HTMLLabelElement>, HTMLLabelElement>, "ref"> & React$1.RefAttributes<HTMLLabelElement>>;
|
|
838
|
+
declare const FieldDescription: React$1.ForwardRefExoticComponent<Omit<React$1.DetailedHTMLProps<React$1.HTMLAttributes<HTMLParagraphElement>, HTMLParagraphElement>, "ref"> & React$1.RefAttributes<HTMLParagraphElement>>;
|
|
839
|
+
declare const FieldTrailing: React$1.ForwardRefExoticComponent<React$1.HTMLAttributes<HTMLDivElement> & React$1.RefAttributes<HTMLDivElement>>;
|
|
840
|
+
interface FieldProps extends React$1.HTMLAttributes<HTMLDivElement> {
|
|
841
|
+
/** `option` (control leads) or `setting` (text leads, control trailing). */
|
|
842
|
+
layout?: FieldLayout;
|
|
843
|
+
}
|
|
844
|
+
declare const Field: React$1.ForwardRefExoticComponent<FieldProps & React$1.RefAttributes<HTMLDivElement>> & {
|
|
845
|
+
Label: React$1.ForwardRefExoticComponent<Omit<React$1.DetailedHTMLProps<React$1.LabelHTMLAttributes<HTMLLabelElement>, HTMLLabelElement>, "ref"> & React$1.RefAttributes<HTMLLabelElement>>;
|
|
846
|
+
Description: React$1.ForwardRefExoticComponent<Omit<React$1.DetailedHTMLProps<React$1.HTMLAttributes<HTMLParagraphElement>, HTMLParagraphElement>, "ref"> & React$1.RefAttributes<HTMLParagraphElement>>;
|
|
847
|
+
Trailing: React$1.ForwardRefExoticComponent<React$1.HTMLAttributes<HTMLDivElement> & React$1.RefAttributes<HTMLDivElement>>;
|
|
848
|
+
};
|
|
849
|
+
|
|
850
|
+
/**
|
|
851
|
+
* Selection cards — RadioCard / CheckboxCard / SwitchCard.
|
|
852
|
+
*
|
|
853
|
+
* The whole card IS the control. RadioCard renders as a
|
|
854
|
+
* `RadioGroupPrimitive.Item`, CheckboxCard as a `CheckboxPrimitive.Root`,
|
|
855
|
+
* SwitchCard as a `SwitchPrimitives.Root` — so focus, hover, and the
|
|
856
|
+
* checked state all live on the parent surface, and the entire card is the
|
|
857
|
+
* hit target. The small glyph (dot / check / switch) is just a visual
|
|
858
|
+
* indicator; it differs by type on purpose, because that's how someone
|
|
859
|
+
* reads single-select vs multi-select vs toggle at a glance.
|
|
860
|
+
*
|
|
861
|
+
* All three share ONE surface (`.gds-selection-card`) so they look identical
|
|
862
|
+
* sitting together. Every visual is token-driven (`--gds-selection-card-*`
|
|
863
|
+
* with semantic fallbacks), so a project can re-skin the cards through the
|
|
864
|
+
* per-project override layer without forking the component.
|
|
865
|
+
*
|
|
866
|
+
* <RadioGroup defaultValue="standard" className="grid gap-3">
|
|
867
|
+
* <RadioCard value="standard" label="Standard" description="4–10 business days" />
|
|
868
|
+
* <RadioCard value="fast" label="Fast" description="2–5 business days" />
|
|
869
|
+
* <RadioCard value="next-day" label="Next day" description="1 business day" />
|
|
870
|
+
* </RadioGroup>
|
|
871
|
+
*
|
|
872
|
+
* IMPORTANT — interactive content. Because the card is itself a control
|
|
873
|
+
* (a `role=radio`/`checkbox`/`switch` button), you must NOT nest other
|
|
874
|
+
* interactive elements (Slider, Input, Button, links) inside it. Put only
|
|
875
|
+
* static content here (text, images, badges). If a card needs its own
|
|
876
|
+
* controls, use a plain `Card` containing a `Field` row + the control as
|
|
877
|
+
* siblings instead.
|
|
878
|
+
*/
|
|
879
|
+
type IndicatorPosition = "leading" | "trailing";
|
|
880
|
+
interface SelectionCardOwnProps {
|
|
881
|
+
/** Title line. Omit and pass `children` for fully custom content. */
|
|
882
|
+
label?: React$1.ReactNode;
|
|
883
|
+
/** Secondary line under the label. */
|
|
884
|
+
description?: React$1.ReactNode;
|
|
885
|
+
/** Optional slot rendered between the content and the indicator
|
|
886
|
+
* (a Badge, price, kbd hint, …). */
|
|
887
|
+
aside?: React$1.ReactNode;
|
|
888
|
+
/** Hide the dot/check/switch glyph — selection is then conveyed purely by
|
|
889
|
+
* the card's selected border + background. Semantics stay intact. */
|
|
890
|
+
hideIndicator?: boolean;
|
|
891
|
+
/** Which side the indicator sits on. Default `trailing`. */
|
|
892
|
+
indicatorPosition?: IndicatorPosition;
|
|
893
|
+
}
|
|
894
|
+
interface RadioCardProps extends Omit<React$1.ComponentPropsWithoutRef<typeof RadioGroupPrimitive.Item>, "children">, SelectionCardOwnProps {
|
|
895
|
+
children?: React$1.ReactNode;
|
|
896
|
+
}
|
|
897
|
+
declare const RadioCard: React$1.ForwardRefExoticComponent<RadioCardProps & React$1.RefAttributes<HTMLButtonElement>>;
|
|
898
|
+
interface CheckboxCardProps extends Omit<React$1.ComponentPropsWithoutRef<typeof CheckboxPrimitive.Root>, "children">, SelectionCardOwnProps {
|
|
899
|
+
children?: React$1.ReactNode;
|
|
900
|
+
}
|
|
901
|
+
declare const CheckboxCard: React$1.ForwardRefExoticComponent<CheckboxCardProps & React$1.RefAttributes<HTMLButtonElement>>;
|
|
902
|
+
interface SwitchCardProps extends Omit<React$1.ComponentPropsWithoutRef<typeof SwitchPrimitives.Root>, "children">, SelectionCardOwnProps {
|
|
903
|
+
children?: React$1.ReactNode;
|
|
904
|
+
}
|
|
905
|
+
declare const SwitchCard: React$1.ForwardRefExoticComponent<SwitchCardProps & React$1.RefAttributes<HTMLButtonElement>>;
|
|
906
|
+
|
|
802
907
|
/**
|
|
803
908
|
* Code — syntax-highlighted code surface with diff, line-emphasis, and
|
|
804
909
|
* reveal animation modes. Designed for marketing heroes ("diff hero"),
|
|
@@ -1068,6 +1173,15 @@ interface MessageProps extends Omit<React$1.HTMLAttributes<HTMLDivElement>, "tit
|
|
|
1068
1173
|
* "your messages" in DM threads.
|
|
1069
1174
|
*/
|
|
1070
1175
|
align?: "start" | "end";
|
|
1176
|
+
/**
|
|
1177
|
+
* Row rhythm. `default` is the canonical chat / channel-feed shape.
|
|
1178
|
+
* `compact` tightens text sizes + gaps for dense side-panel use
|
|
1179
|
+
* (Studio comments tab, activity feeds, notification rows where many
|
|
1180
|
+
* rows stack vertically and the surface is narrow). Avatar size is
|
|
1181
|
+
* still consumer-controlled — pair `density="compact"` with
|
|
1182
|
+
* `Avatar size="xs"` for the tightest rhythm.
|
|
1183
|
+
*/
|
|
1184
|
+
density?: "default" | "compact";
|
|
1071
1185
|
/**
|
|
1072
1186
|
* Body content (the message text). Accepts any node so consumers
|
|
1073
1187
|
* can embed rich content — Markdown-rendered prose, images,
|
|
@@ -1162,23 +1276,38 @@ declare function typeText(text: string, onTick: (partial: string) => void, stagg
|
|
|
1162
1276
|
* (mount / inView / manual), loop, pre-delay, completion signal, and
|
|
1163
1277
|
* the imperative play() / stop() API.
|
|
1164
1278
|
*
|
|
1279
|
+
* Reduced motion: this hook is the declarative-motion layer's accessibility
|
|
1280
|
+
* boundary. When the OS reports `prefers-reduced-motion: reduce` OR the
|
|
1281
|
+
* global `data-motion="off"` toggle is set (both via `useReducedMotion`),
|
|
1282
|
+
* the runner settles on the FINAL frame instead of animating — zeroed
|
|
1283
|
+
* timings run every step instantly and the sequence never loops, so the
|
|
1284
|
+
* end state shows and holds. That keeps lib/demo honouring the same motion
|
|
1285
|
+
* control as ThreeScene and the CSS reset; without it, a screen built with
|
|
1286
|
+
* <Code> would keep typing under reduced motion and would not be accessible.
|
|
1287
|
+
*
|
|
1165
1288
|
* Authoring guide for `interpret`:
|
|
1166
1289
|
* - `await sleep(ms, ctx.signal)` for any pause so stop() can short
|
|
1167
1290
|
* a long wait cleanly.
|
|
1168
1291
|
* - `await typeText(text, onTick, stagger, ctx.signal)` for typing
|
|
1169
|
-
* loops, again so stop() interrupts mid-character.
|
|
1292
|
+
* loops, again so stop() interrupts mid-character. A non-positive
|
|
1293
|
+
* stagger (what the reduced-motion preset supplies) emits the whole
|
|
1294
|
+
* string in one tick, so the final state shows with no animation.
|
|
1170
1295
|
* - Read `ctx.speed` to grab the resolved DEMO_SPEED_PRESETS entry
|
|
1171
1296
|
* when a step doesn't pin its own cadence.
|
|
1172
1297
|
* - Throw nothing on cancel — the helpers do it for you. Anything
|
|
1173
1298
|
* else thrown is treated as a real bug and bubbles to the console.
|
|
1174
1299
|
*/
|
|
1175
1300
|
interface ScriptedDemoContext {
|
|
1176
|
-
/** Resolved speed preset for the current run. */
|
|
1301
|
+
/** Resolved speed preset for the current run. Zeroed under reduced motion. */
|
|
1177
1302
|
speed: (typeof DEMO_SPEED_PRESETS)[DemoSpeed];
|
|
1178
1303
|
/** AbortSignal that fires on stop() / unmount / steps change. */
|
|
1179
1304
|
signal: AbortSignal;
|
|
1180
1305
|
/** Live cancellation check for code paths that can't take a signal. */
|
|
1181
1306
|
cancelled: () => boolean;
|
|
1307
|
+
/** True when the run is in reduced-motion mode (settling, not animating).
|
|
1308
|
+
* Most interpreters don't need this — zeroed timings handle it — but a
|
|
1309
|
+
* step that does something non-timing-based (confetti, sound) can skip it. */
|
|
1310
|
+
reduced: boolean;
|
|
1182
1311
|
}
|
|
1183
1312
|
interface UseScriptedDemoOptions<TStep> {
|
|
1184
1313
|
/** The steps to run. Undefined or empty means "no script". */
|
|
@@ -1197,6 +1326,10 @@ interface UseScriptedDemoOptions<TStep> {
|
|
|
1197
1326
|
play?: boolean;
|
|
1198
1327
|
/** Loop the sequence forever after completion. Pause length controlled by `loopDelay`. */
|
|
1199
1328
|
loop?: boolean;
|
|
1329
|
+
/** Cap the number of loop cycles, then settle and stop. A demo is a movie —
|
|
1330
|
+
* it shouldn't spin forever. Default Infinity. Grid/embed surfaces set a
|
|
1331
|
+
* small number so the loop ends instead of running unattended. */
|
|
1332
|
+
maxLoops?: number;
|
|
1200
1333
|
/**
|
|
1201
1334
|
* Milliseconds to pause between loop cycles. Only applies when
|
|
1202
1335
|
* `loop` is true. Defaults to 2000. Marketing surfaces that want
|
|
@@ -1713,6 +1846,15 @@ declare const DialogDescription: React$1.ForwardRefExoticComponent<Omit<DialogPr
|
|
|
1713
1846
|
|
|
1714
1847
|
declare const DropdownMenu: React$1.FC<DropdownMenuPrimitive.DropdownMenuProps>;
|
|
1715
1848
|
declare const DropdownMenuTrigger: React$1.ForwardRefExoticComponent<DropdownMenuPrimitive.DropdownMenuTriggerProps & React$1.RefAttributes<HTMLButtonElement>>;
|
|
1849
|
+
/**
|
|
1850
|
+
* Menu density. Set `size` on `<DropdownMenuContent>` (or
|
|
1851
|
+
* `<DropdownMenuSubContent>`) and every item inside — Item, Checkbox,
|
|
1852
|
+
* Radio, SubTrigger, Label — picks up matching padding / text-size via
|
|
1853
|
+
* context (which flows through the Radix portal). Mirrors Select so a
|
|
1854
|
+
* compact trigger can have an equally compact menu. `xs` is the
|
|
1855
|
+
* tool-panel density (the Studio inspector).
|
|
1856
|
+
*/
|
|
1857
|
+
type DropdownMenuSize = "default" | "sm" | "xs";
|
|
1716
1858
|
declare const DropdownMenuGroup: React$1.ForwardRefExoticComponent<DropdownMenuPrimitive.DropdownMenuGroupProps & React$1.RefAttributes<HTMLDivElement>>;
|
|
1717
1859
|
declare const DropdownMenuPortal: React$1.FC<DropdownMenuPrimitive.DropdownMenuPortalProps>;
|
|
1718
1860
|
declare const DropdownMenuSub: React$1.FC<DropdownMenuPrimitive.DropdownMenuSubProps>;
|
|
@@ -1723,6 +1865,8 @@ declare const DropdownMenuSubTrigger: React$1.ForwardRefExoticComponent<Omit<Dro
|
|
|
1723
1865
|
interface DropdownMenuSubContentProps extends React$1.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.SubContent> {
|
|
1724
1866
|
/** What the submenu surface is *made of*. See dropdown-menu.md. */
|
|
1725
1867
|
surface?: Surface;
|
|
1868
|
+
/** Menu density — cascades to items via context. */
|
|
1869
|
+
size?: DropdownMenuSize;
|
|
1726
1870
|
}
|
|
1727
1871
|
declare const DropdownMenuSubContent: React$1.ForwardRefExoticComponent<DropdownMenuSubContentProps & React$1.RefAttributes<HTMLDivElement>>;
|
|
1728
1872
|
interface DropdownMenuContentProps extends React$1.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Content> {
|
|
@@ -1732,6 +1876,8 @@ interface DropdownMenuContentProps extends React$1.ComponentPropsWithoutRef<type
|
|
|
1732
1876
|
* floating over rich canvases. See dropdown-menu.md.
|
|
1733
1877
|
*/
|
|
1734
1878
|
surface?: Surface;
|
|
1879
|
+
/** Menu density — cascades to items via context. */
|
|
1880
|
+
size?: DropdownMenuSize;
|
|
1735
1881
|
}
|
|
1736
1882
|
declare const DropdownMenuContent: React$1.ForwardRefExoticComponent<DropdownMenuContentProps & React$1.RefAttributes<HTMLDivElement>>;
|
|
1737
1883
|
declare const DropdownMenuItem: React$1.ForwardRefExoticComponent<Omit<DropdownMenuPrimitive.DropdownMenuItemProps & React$1.RefAttributes<HTMLDivElement>, "ref"> & {
|
|
@@ -1761,15 +1907,26 @@ declare const DropdownMenuShortcut: {
|
|
|
1761
1907
|
* rationale.
|
|
1762
1908
|
*/
|
|
1763
1909
|
declare const inputVariants: (props?: ({
|
|
1764
|
-
size?: "default" | "
|
|
1910
|
+
size?: "sm" | "default" | "xs" | "2xs" | null | undefined;
|
|
1765
1911
|
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
1766
1912
|
type InputSize = NonNullable<VariantProps<typeof inputVariants>["size"]>;
|
|
1767
1913
|
type InputProps = Omit<React$1.ComponentProps<"input">, "size"> & {
|
|
1768
1914
|
size?: InputSize;
|
|
1915
|
+
/** Adornment rendered inside the field on the leading edge — an icon,
|
|
1916
|
+
* a unit, a prefix. Non-interactive by default (clicks pass through
|
|
1917
|
+
* to focus the input); pass an element with its own pointer-events
|
|
1918
|
+
* if you need it clickable. */
|
|
1919
|
+
startSlot?: React$1.ReactNode;
|
|
1920
|
+
/** Adornment rendered inside the field on the trailing edge — a unit
|
|
1921
|
+
* ("px"), a clear button, a stepper. Same pointer rules as
|
|
1922
|
+
* `startSlot`. */
|
|
1923
|
+
endSlot?: React$1.ReactNode;
|
|
1769
1924
|
};
|
|
1770
1925
|
declare const Input: React$1.ForwardRefExoticComponent<Omit<InputProps, "ref"> & React$1.RefAttributes<HTMLInputElement>>;
|
|
1771
1926
|
|
|
1772
|
-
declare const Label: React$1.ForwardRefExoticComponent<Omit<LabelPrimitive.LabelProps & React$1.RefAttributes<HTMLLabelElement>, "ref"> & VariantProps<(props?:
|
|
1927
|
+
declare const Label: React$1.ForwardRefExoticComponent<Omit<LabelPrimitive.LabelProps & React$1.RefAttributes<HTMLLabelElement>, "ref"> & VariantProps<(props?: ({
|
|
1928
|
+
size?: "sm" | "default" | "xs" | "2xs" | null | undefined;
|
|
1929
|
+
} & class_variance_authority_types.ClassProp) | undefined) => string> & React$1.RefAttributes<HTMLLabelElement>>;
|
|
1773
1930
|
|
|
1774
1931
|
declare const Popover: React$1.FC<PopoverPrimitive.PopoverProps>;
|
|
1775
1932
|
declare const PopoverTrigger: React$1.ForwardRefExoticComponent<PopoverPrimitive.PopoverTriggerProps & React$1.RefAttributes<HTMLButtonElement>>;
|
|
@@ -1912,7 +2069,7 @@ declare const RadioGroupItem: React$1.ForwardRefExoticComponent<Omit<RadioGroupP
|
|
|
1912
2069
|
* </ResizablePanelGroup>
|
|
1913
2070
|
*/
|
|
1914
2071
|
declare const ResizablePanelGroup: ({ className, ...props }: React$1.ComponentProps<typeof ResizablePrimitive.PanelGroup>) => React$1.JSX.Element;
|
|
1915
|
-
declare const ResizablePanel: React$1.ForwardRefExoticComponent<Omit<React$1.HTMLAttributes<
|
|
2072
|
+
declare const ResizablePanel: React$1.ForwardRefExoticComponent<Omit<React$1.HTMLAttributes<HTMLDivElement | HTMLElement | HTMLObjectElement | HTMLSelectElement | HTMLTextAreaElement | HTMLMapElement | HTMLTitleElement | HTMLVideoElement | HTMLButtonElement | HTMLLinkElement | HTMLLabelElement | HTMLStyleElement | HTMLSourceElement | HTMLHtmlElement | HTMLOptionElement | HTMLTableColElement | HTMLAudioElement | HTMLEmbedElement | HTMLProgressElement | HTMLHRElement | HTMLTableElement | HTMLAnchorElement | HTMLFormElement | HTMLHeadingElement | HTMLImageElement | HTMLInputElement | HTMLLIElement | HTMLOListElement | HTMLParagraphElement | HTMLSpanElement | HTMLUListElement | HTMLAreaElement | HTMLBaseElement | HTMLQuoteElement | HTMLBodyElement | HTMLBRElement | HTMLCanvasElement | HTMLDataElement | HTMLDataListElement | HTMLModElement | HTMLDetailsElement | HTMLDialogElement | HTMLDListElement | HTMLFieldSetElement | HTMLHeadElement | HTMLIFrameElement | HTMLLegendElement | HTMLMetaElement | HTMLMeterElement | HTMLOptGroupElement | HTMLOutputElement | HTMLPreElement | HTMLSlotElement | HTMLScriptElement | HTMLTemplateElement | HTMLTableSectionElement | HTMLTableCellElement | HTMLTimeElement | HTMLTableRowElement | HTMLTrackElement | HTMLTableCaptionElement | HTMLMenuElement | HTMLPictureElement>, "id" | "onResize"> & {
|
|
1916
2073
|
className?: string | undefined;
|
|
1917
2074
|
collapsedSize?: number | undefined;
|
|
1918
2075
|
collapsible?: boolean | undefined;
|
|
@@ -1951,9 +2108,9 @@ declare const ResizableHandle: ({ withHandle, className, ...props }: React$1.Com
|
|
|
1951
2108
|
* etc.) and is a separate primitive.
|
|
1952
2109
|
*/
|
|
1953
2110
|
declare const rowVariants: (props?: ({
|
|
1954
|
-
gap?: "none" | "sm" | "md" | "lg" | "
|
|
1955
|
-
align?: "
|
|
1956
|
-
justify?: "
|
|
2111
|
+
gap?: "none" | "sm" | "md" | "lg" | "xl" | "xs" | "2xl" | null | undefined;
|
|
2112
|
+
align?: "start" | "center" | "end" | "stretch" | "baseline" | null | undefined;
|
|
2113
|
+
justify?: "between" | "start" | "center" | "end" | "around" | "evenly" | null | undefined;
|
|
1957
2114
|
wrap?: boolean | null | undefined;
|
|
1958
2115
|
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
1959
2116
|
interface RowProps extends React$1.HTMLAttributes<HTMLDivElement>, VariantProps<typeof rowVariants> {
|
|
@@ -1987,8 +2144,8 @@ declare const Row: React$1.ForwardRefExoticComponent<RowProps & React$1.RefAttri
|
|
|
1987
2144
|
*/
|
|
1988
2145
|
declare const gridVariants: (props?: ({
|
|
1989
2146
|
cols?: "1" | "2" | "3" | "4" | "5" | "6" | "12" | null | undefined;
|
|
1990
|
-
gap?: "none" | "sm" | "md" | "lg" | "
|
|
1991
|
-
align?: "
|
|
2147
|
+
gap?: "none" | "sm" | "md" | "lg" | "xl" | "xs" | "2xl" | null | undefined;
|
|
2148
|
+
align?: "start" | "center" | "end" | "stretch" | null | undefined;
|
|
1992
2149
|
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
1993
2150
|
interface GridProps extends React$1.HTMLAttributes<HTMLDivElement>, VariantProps<typeof gridVariants> {
|
|
1994
2151
|
/** When true, render as the single child element via Radix Slot — lets
|
|
@@ -2020,10 +2177,10 @@ declare const Grid: React$1.ForwardRefExoticComponent<GridProps & React$1.RefAtt
|
|
|
2020
2177
|
* case. Flex is the escape hatch, not the default.
|
|
2021
2178
|
*/
|
|
2022
2179
|
declare const flexVariants: (props?: ({
|
|
2023
|
-
direction?: "
|
|
2024
|
-
gap?: "none" | "sm" | "md" | "lg" | "
|
|
2025
|
-
align?: "
|
|
2026
|
-
justify?: "
|
|
2180
|
+
direction?: "row" | "col" | "row-reverse" | "col-reverse" | null | undefined;
|
|
2181
|
+
gap?: "none" | "sm" | "md" | "lg" | "xl" | "xs" | "2xl" | null | undefined;
|
|
2182
|
+
align?: "start" | "center" | "end" | "stretch" | "baseline" | null | undefined;
|
|
2183
|
+
justify?: "between" | "start" | "center" | "end" | "around" | "evenly" | null | undefined;
|
|
2027
2184
|
wrap?: "wrap" | "nowrap" | "wrap-reverse" | null | undefined;
|
|
2028
2185
|
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
2029
2186
|
interface FlexProps extends React$1.HTMLAttributes<HTMLDivElement>, VariantProps<typeof flexVariants> {
|
|
@@ -2040,6 +2197,15 @@ declare const ScrollBar: React$1.ForwardRefExoticComponent<Omit<ScrollAreaPrimit
|
|
|
2040
2197
|
declare const Select: React$1.FC<SelectPrimitive.SelectProps>;
|
|
2041
2198
|
declare const SelectGroup: React$1.ForwardRefExoticComponent<SelectPrimitive.SelectGroupProps & React$1.RefAttributes<HTMLDivElement>>;
|
|
2042
2199
|
declare const SelectValue: React$1.ForwardRefExoticComponent<SelectPrimitive.SelectValueProps & React$1.RefAttributes<HTMLSpanElement>>;
|
|
2200
|
+
/**
|
|
2201
|
+
* Menu density. Set `size` on `<SelectContent>` and every `<SelectItem>`
|
|
2202
|
+
* inside it picks up matching padding / text-size / check-indicator
|
|
2203
|
+
* sizing via context — so a compact trigger (`size="xs"`) can have an
|
|
2204
|
+
* equally compact dropdown without per-item overrides. React context
|
|
2205
|
+
* flows through the Radix portal (it follows the React tree, not the
|
|
2206
|
+
* DOM), so items styled this way work even though the menu is portaled.
|
|
2207
|
+
*/
|
|
2208
|
+
type SelectMenuSize = "default" | "sm" | "xs" | "2xs";
|
|
2043
2209
|
/**
|
|
2044
2210
|
* Select trigger variants — `size` lets dense surfaces (the
|
|
2045
2211
|
* Studio inspector, settings sheets) reach for a compact `sm`
|
|
@@ -2048,17 +2214,33 @@ declare const SelectValue: React$1.ForwardRefExoticComponent<SelectPrimitive.Sel
|
|
|
2048
2214
|
* existing call site.
|
|
2049
2215
|
*/
|
|
2050
2216
|
declare const selectTriggerVariants: (props?: ({
|
|
2051
|
-
size?: "default" | "
|
|
2217
|
+
size?: "sm" | "default" | "xs" | "2xs" | null | undefined;
|
|
2052
2218
|
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
2053
2219
|
type SelectTriggerSize = NonNullable<VariantProps<typeof selectTriggerVariants>["size"]>;
|
|
2054
2220
|
declare const SelectTrigger: React$1.ForwardRefExoticComponent<Omit<SelectPrimitive.SelectTriggerProps & React$1.RefAttributes<HTMLButtonElement>, "ref"> & {
|
|
2055
2221
|
size?: SelectTriggerSize;
|
|
2222
|
+
/** Adornment rendered inside the trigger on the leading edge — a
|
|
2223
|
+
* property glyph, a unit. Mirrors Input's startSlot. Grouped with
|
|
2224
|
+
* the value in a div (NOT a bare span: the trigger's
|
|
2225
|
+
* `[&>span]:line-clamp-1` would stack a span's children
|
|
2226
|
+
* vertically). */
|
|
2227
|
+
startSlot?: React$1.ReactNode;
|
|
2228
|
+
/** Hide the dropdown chevron — Figma-style token fields keep the
|
|
2229
|
+
* right edge for their own affordances (detach/attach). */
|
|
2230
|
+
chevron?: boolean;
|
|
2056
2231
|
} & React$1.RefAttributes<HTMLButtonElement>>;
|
|
2057
2232
|
declare const SelectScrollUpButton: React$1.ForwardRefExoticComponent<Omit<SelectPrimitive.SelectScrollUpButtonProps & React$1.RefAttributes<HTMLDivElement>, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
|
|
2058
2233
|
declare const SelectScrollDownButton: React$1.ForwardRefExoticComponent<Omit<SelectPrimitive.SelectScrollDownButtonProps & React$1.RefAttributes<HTMLDivElement>, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
|
|
2059
|
-
declare const SelectContent: React$1.ForwardRefExoticComponent<Omit<SelectPrimitive.SelectContentProps & React$1.RefAttributes<HTMLDivElement>, "ref"> &
|
|
2234
|
+
declare const SelectContent: React$1.ForwardRefExoticComponent<Omit<SelectPrimitive.SelectContentProps & React$1.RefAttributes<HTMLDivElement>, "ref"> & {
|
|
2235
|
+
size?: SelectMenuSize;
|
|
2236
|
+
} & React$1.RefAttributes<HTMLDivElement>>;
|
|
2060
2237
|
declare const SelectLabel: React$1.ForwardRefExoticComponent<Omit<SelectPrimitive.SelectLabelProps & React$1.RefAttributes<HTMLDivElement>, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
|
|
2061
|
-
declare const SelectItem: React$1.ForwardRefExoticComponent<Omit<SelectPrimitive.SelectItemProps & React$1.RefAttributes<HTMLDivElement>, "ref"> &
|
|
2238
|
+
declare const SelectItem: React$1.ForwardRefExoticComponent<Omit<SelectPrimitive.SelectItemProps & React$1.RefAttributes<HTMLDivElement>, "ref"> & {
|
|
2239
|
+
/** Optional right-aligned secondary text (e.g. a token's resolved
|
|
2240
|
+
* value). Rendered in the menu row only — NOT inside ItemText, so
|
|
2241
|
+
* it never mirrors into the trigger via SelectValue. */
|
|
2242
|
+
hint?: React$1.ReactNode;
|
|
2243
|
+
} & React$1.RefAttributes<HTMLDivElement>>;
|
|
2062
2244
|
declare const SelectSeparator: React$1.ForwardRefExoticComponent<Omit<SelectPrimitive.SelectSeparatorProps & React$1.RefAttributes<HTMLDivElement>, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
|
|
2063
2245
|
|
|
2064
2246
|
declare const Separator: React$1.ForwardRefExoticComponent<Omit<SeparatorPrimitive.SeparatorProps & React$1.RefAttributes<HTMLDivElement>, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
|
|
@@ -2069,7 +2251,7 @@ declare const SheetClose: React$1.ForwardRefExoticComponent<DialogPrimitive.Dial
|
|
|
2069
2251
|
declare const SheetPortal: React$1.FC<DialogPrimitive.DialogPortalProps>;
|
|
2070
2252
|
declare const SheetOverlay: React$1.ForwardRefExoticComponent<Omit<DialogPrimitive.DialogOverlayProps & React$1.RefAttributes<HTMLDivElement>, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
|
|
2071
2253
|
declare const sheetVariants: (props?: ({
|
|
2072
|
-
side?: "
|
|
2254
|
+
side?: "top" | "right" | "bottom" | "left" | null | undefined;
|
|
2073
2255
|
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
2074
2256
|
interface SheetContentProps extends React$1.ComponentPropsWithoutRef<typeof DialogPrimitive.Content>, VariantProps<typeof sheetVariants> {
|
|
2075
2257
|
/**
|
|
@@ -2207,9 +2389,9 @@ declare const Sortable: SortableRootComponent;
|
|
|
2207
2389
|
* for a centred narrow column (auth cards, marketing copy).
|
|
2208
2390
|
*/
|
|
2209
2391
|
declare const stackVariants: (props?: ({
|
|
2210
|
-
gap?: "none" | "sm" | "md" | "lg" | "
|
|
2211
|
-
align?: "
|
|
2212
|
-
justify?: "
|
|
2392
|
+
gap?: "none" | "sm" | "md" | "lg" | "xl" | "xs" | "2xl" | null | undefined;
|
|
2393
|
+
align?: "start" | "center" | "end" | "stretch" | null | undefined;
|
|
2394
|
+
justify?: "between" | "start" | "center" | "end" | "around" | "evenly" | null | undefined;
|
|
2213
2395
|
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
2214
2396
|
interface StackProps extends React$1.HTMLAttributes<HTMLDivElement>, VariantProps<typeof stackVariants> {
|
|
2215
2397
|
/** When true, render as the single child element via Radix Slot — lets
|
|
@@ -2219,7 +2401,20 @@ interface StackProps extends React$1.HTMLAttributes<HTMLDivElement>, VariantProp
|
|
|
2219
2401
|
}
|
|
2220
2402
|
declare const Stack: React$1.ForwardRefExoticComponent<StackProps & React$1.RefAttributes<HTMLDivElement>>;
|
|
2221
2403
|
|
|
2222
|
-
|
|
2404
|
+
/**
|
|
2405
|
+
* Switch — track + thumb scale together via the shared control size
|
|
2406
|
+
* scale. Dimensions stay on Tailwind's spacing scale (no arbitrary
|
|
2407
|
+
* values): thumb travel = trackWidth − thumbWidth − 2×border, which
|
|
2408
|
+
* lands on a clean `translate-x-*` step at each size. `xs`/`sm` are the
|
|
2409
|
+
* dense tool-panel sizes (the Studio inspector).
|
|
2410
|
+
*/
|
|
2411
|
+
declare const switchTrackVariants: (props?: ({
|
|
2412
|
+
size?: "sm" | "default" | "xs" | "2xs" | null | undefined;
|
|
2413
|
+
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
2414
|
+
type SwitchSize = NonNullable<VariantProps<typeof switchTrackVariants>["size"]>;
|
|
2415
|
+
declare const Switch: React$1.ForwardRefExoticComponent<Omit<Omit<SwitchPrimitives.SwitchProps & React$1.RefAttributes<HTMLButtonElement>, "ref">, "size"> & {
|
|
2416
|
+
size?: SwitchSize;
|
|
2417
|
+
} & React$1.RefAttributes<HTMLButtonElement>>;
|
|
2223
2418
|
|
|
2224
2419
|
declare const Table: React$1.ForwardRefExoticComponent<React$1.HTMLAttributes<HTMLTableElement> & React$1.RefAttributes<HTMLTableElement>>;
|
|
2225
2420
|
declare const TableHeader: React$1.ForwardRefExoticComponent<React$1.HTMLAttributes<HTMLTableSectionElement> & React$1.RefAttributes<HTMLTableSectionElement>>;
|
|
@@ -2336,15 +2531,27 @@ interface TabsTriggerProps extends React$1.ComponentPropsWithoutRef<typeof TabsP
|
|
|
2336
2531
|
declare const TabsTrigger: React$1.ForwardRefExoticComponent<TabsTriggerProps & React$1.RefAttributes<HTMLButtonElement>>;
|
|
2337
2532
|
declare const TabsContent: React$1.ForwardRefExoticComponent<Omit<TabsPrimitive.TabsContentProps & React$1.RefAttributes<HTMLDivElement>, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
|
|
2338
2533
|
|
|
2339
|
-
|
|
2534
|
+
/**
|
|
2535
|
+
* Textarea variants — `size` mirrors Input so the whole form-control
|
|
2536
|
+
* family scales together. Default keeps the existing min-h-[80px] /
|
|
2537
|
+
* px-3 / text-sm; `sm` and `xs` are for dense tool panels.
|
|
2538
|
+
*/
|
|
2539
|
+
declare const textareaVariants: (props?: ({
|
|
2540
|
+
size?: "sm" | "default" | "xs" | "2xs" | null | undefined;
|
|
2541
|
+
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
2542
|
+
type TextareaSize = NonNullable<VariantProps<typeof textareaVariants>["size"]>;
|
|
2543
|
+
type TextareaProps = Omit<React$1.ComponentProps<"textarea">, "size"> & {
|
|
2544
|
+
size?: TextareaSize;
|
|
2545
|
+
};
|
|
2546
|
+
declare const Textarea: React$1.ForwardRefExoticComponent<Omit<TextareaProps, "ref"> & React$1.RefAttributes<HTMLTextAreaElement>>;
|
|
2340
2547
|
|
|
2341
2548
|
declare const toggleVariants: (props?: ({
|
|
2342
2549
|
variant?: "default" | "outline" | null | undefined;
|
|
2343
|
-
size?: "default" | "
|
|
2550
|
+
size?: "sm" | "lg" | "default" | "xs" | "2xs" | null | undefined;
|
|
2344
2551
|
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
2345
2552
|
declare const Toggle: React$1.ForwardRefExoticComponent<Omit<TogglePrimitive.ToggleProps & React$1.RefAttributes<HTMLButtonElement>, "ref"> & VariantProps<(props?: ({
|
|
2346
2553
|
variant?: "default" | "outline" | null | undefined;
|
|
2347
|
-
size?: "default" | "
|
|
2554
|
+
size?: "sm" | "lg" | "default" | "xs" | "2xs" | null | undefined;
|
|
2348
2555
|
} & class_variance_authority_types.ClassProp) | undefined) => string> & React$1.RefAttributes<HTMLButtonElement>>;
|
|
2349
2556
|
|
|
2350
2557
|
declare const TooltipProvider: React$1.FC<TooltipPrimitive.TooltipProviderProps>;
|
|
@@ -2429,7 +2636,7 @@ declare const ToggleGroupItem: React$1.ForwardRefExoticComponent<Omit<ToggleGrou
|
|
|
2429
2636
|
* persistent footer toolbars on mobile-style layouts.
|
|
2430
2637
|
*/
|
|
2431
2638
|
declare const toolbarVariants: (props?: ({
|
|
2432
|
-
position?: "
|
|
2639
|
+
position?: "top" | "bottom" | "inline" | null | undefined;
|
|
2433
2640
|
variant?: "default" | "transparent" | "subtle" | null | undefined;
|
|
2434
2641
|
size?: "sm" | "md" | "lg" | null | undefined;
|
|
2435
2642
|
sticky?: boolean | null | undefined;
|
|
@@ -2673,6 +2880,78 @@ declare const Map: React$1.ForwardRefExoticComponent<MapProps & React$1.RefAttri
|
|
|
2673
2880
|
|
|
2674
2881
|
declare const MapMarker: React$1.NamedExoticComponent<MapMarkerProps>;
|
|
2675
2882
|
|
|
2883
|
+
/**
|
|
2884
|
+
* lib/motion — the global motion control for gradeui.
|
|
2885
|
+
*
|
|
2886
|
+
* One choke point for "should this animate?". Every animated component
|
|
2887
|
+
* (ThreeScene, RivePlayer, VideoPlayer, aura surfaces) asks
|
|
2888
|
+
* `useReducedMotion()`, so flipping motion off in one place stills them all.
|
|
2889
|
+
*
|
|
2890
|
+
* Two independent inputs, ORed together (reduce-only by design — the toggle
|
|
2891
|
+
* can ADD restriction but never override a user's OS preference to force
|
|
2892
|
+
* motion ON):
|
|
2893
|
+
*
|
|
2894
|
+
* 1. the OS `prefers-reduced-motion: reduce` media query, and
|
|
2895
|
+
* 2. a `data-motion="off"` attribute on the document root (`<html>`),
|
|
2896
|
+
* the manual toggle.
|
|
2897
|
+
*
|
|
2898
|
+
* The attribute is the same mechanism the renderer's `data-fidelity` flag
|
|
2899
|
+
* uses: stamp it on `<html>` and CSS + components react. Inside Studio's
|
|
2900
|
+
* Fast Frame / embed / share iframes it is driven over postMessage
|
|
2901
|
+
* (`grade:set-motion`), so the toggle reaches into the sandbox where the
|
|
2902
|
+
* ThreeScene surfaces actually run. A matching `[data-motion="off"]` CSS
|
|
2903
|
+
* reset in `styles/globals.css` covers pure-CSS animation/transition.
|
|
2904
|
+
*
|
|
2905
|
+
* Sibling to lib/demo (the scripted-reveal spine).
|
|
2906
|
+
*/
|
|
2907
|
+
/** The attribute stamped on `<html>` to force motion off. */
|
|
2908
|
+
declare const MOTION_ATTR = "data-motion";
|
|
2909
|
+
/**
|
|
2910
|
+
* Returns `true` when motion should be suppressed — either the OS reports
|
|
2911
|
+
* `prefers-reduced-motion: reduce`, or the global `data-motion="off"` toggle
|
|
2912
|
+
* is set on `<html>`. Stays live: re-reads on media-query change and on the
|
|
2913
|
+
* attribute mutating.
|
|
2914
|
+
*
|
|
2915
|
+
* SSR-safe — defaults to `false` (motion allowed) on the server and
|
|
2916
|
+
* rehydrates in an effect, so it never causes a hydration mismatch.
|
|
2917
|
+
*/
|
|
2918
|
+
declare function useReducedMotion(): boolean;
|
|
2919
|
+
/**
|
|
2920
|
+
* @deprecated Prefer {@link useReducedMotion}. Kept for back-compat with the
|
|
2921
|
+
* components that import it from `media-surface`; it now also folds in the
|
|
2922
|
+
* global `data-motion="off"` toggle, not just the OS query.
|
|
2923
|
+
*/
|
|
2924
|
+
declare const usePrefersReducedMotion: typeof useReducedMotion;
|
|
2925
|
+
/**
|
|
2926
|
+
* Returns `true` when the page is actually being watched — the tab is visible
|
|
2927
|
+
* AND (for a top-level document) the window is focused. Inside an iframe the
|
|
2928
|
+
* focus check is skipped, because an iframe rarely "has focus" even when its
|
|
2929
|
+
* tab is frontmost; it falls back to visibility, which correctly tracks the
|
|
2930
|
+
* top tab. Use it to PAUSE autoplay loops when nobody's looking: a movie stops
|
|
2931
|
+
* when you tab away.
|
|
2932
|
+
*
|
|
2933
|
+
* SSR-safe — defaults to `true` and rehydrates in an effect.
|
|
2934
|
+
*
|
|
2935
|
+
* Scope, deliberately: this knows about tab visibility + window focus, NOT
|
|
2936
|
+
* whether the element is scrolled into view (pair it with an
|
|
2937
|
+
* IntersectionObserver — e.g. motion's `useInView` — for that), and NOT
|
|
2938
|
+
* whether a cross-document iframe has scrolled off its PARENT's viewport. An
|
|
2939
|
+
* iframe can't see the parent's scroll; the parent must observe the host and
|
|
2940
|
+
* pause it. See the grid poster/promote policy in STUDIO-CAPTURE.md.
|
|
2941
|
+
*/
|
|
2942
|
+
declare function usePageActive(): boolean;
|
|
2943
|
+
/**
|
|
2944
|
+
* Imperatively set the global motion toggle on `<html>`.
|
|
2945
|
+
*
|
|
2946
|
+
* setMotion(false) → stamps `data-motion="off"` (animation suppressed)
|
|
2947
|
+
* setMotion(true) → removes the attribute (default: respect the OS only)
|
|
2948
|
+
*
|
|
2949
|
+
* Reduce-only: turning motion "on" never forces animation for a viewer whose
|
|
2950
|
+
* OS asks for reduced motion — `useReducedMotion()` still honours the query.
|
|
2951
|
+
* No-op on the server.
|
|
2952
|
+
*/
|
|
2953
|
+
declare function setMotion(enabled: boolean): void;
|
|
2954
|
+
|
|
2676
2955
|
/**
|
|
2677
2956
|
* MediaSurface — the shared shell used by VideoPlayer, RivePlayer, ThreeScene
|
|
2678
2957
|
* AND the canonical "media slot" primitive for still images, posters, album
|
|
@@ -2710,7 +2989,7 @@ declare const MapMarker: React$1.NamedExoticComponent<MapMarkerProps>;
|
|
|
2710
2989
|
* the right semantics.
|
|
2711
2990
|
*/
|
|
2712
2991
|
|
|
2713
|
-
type MediaAspect = "video" | "square" | "portrait" | "wide" | "auto";
|
|
2992
|
+
type MediaAspect = "video" | "standard" | "square" | "portrait" | "wide" | "auto";
|
|
2714
2993
|
type MediaRadius = "none" | "sm" | "md" | "lg" | "xl";
|
|
2715
2994
|
/**
|
|
2716
2995
|
* What kind of media is this slot intended for? Drives three things:
|
|
@@ -2854,6 +3133,11 @@ declare global {
|
|
|
2854
3133
|
interface Window {
|
|
2855
3134
|
__gradeMediaUrls?: MediaUrlMap;
|
|
2856
3135
|
__gradeMediaOverrides?: MediaOverrideMap;
|
|
3136
|
+
/** Source-keys with a Fill request currently in flight. Stamped by
|
|
3137
|
+
* the sandbox agent on `grade:set-media-pending`; drives the
|
|
3138
|
+
* placeholder's Presence shimmer (gds-aura-shimmer) so slots read
|
|
3139
|
+
* as "being generated" rather than inert while the resolver works. */
|
|
3140
|
+
__gradeMediaPending?: Record<string, true>;
|
|
2857
3141
|
}
|
|
2858
3142
|
}
|
|
2859
3143
|
interface MediaSurfaceProps extends Omit<React$1.HTMLAttributes<HTMLDivElement>, "children"> {
|
|
@@ -2968,8 +3252,6 @@ interface BaseMediaProps {
|
|
|
2968
3252
|
className?: string;
|
|
2969
3253
|
style?: React$1.CSSProperties;
|
|
2970
3254
|
}
|
|
2971
|
-
/** Hook — returns `true` when the OS reports reduced-motion preference. */
|
|
2972
|
-
declare function usePrefersReducedMotion(): boolean;
|
|
2973
3255
|
|
|
2974
3256
|
/**
|
|
2975
3257
|
* VideoPlayer — native HTML5 video wrapped in a MediaSurface.
|
|
@@ -3013,6 +3295,217 @@ interface RivePlayerProps extends BaseMediaProps {
|
|
|
3013
3295
|
}
|
|
3014
3296
|
declare const RivePlayer: React$1.ForwardRefExoticComponent<RivePlayerProps & React$1.RefAttributes<HTMLDivElement>>;
|
|
3015
3297
|
|
|
3298
|
+
/**
|
|
3299
|
+
* Logo — a brand mark with lockup, background-mode, and monochrome
|
|
3300
|
+
* variations, fed bespoke artwork per slot.
|
|
3301
|
+
*
|
|
3302
|
+
* A brand rarely has one logo: there's a square mark for tight spaces, a
|
|
3303
|
+
* horizontal lockup for headers, and single-colour versions for busy or
|
|
3304
|
+
* inverted backgrounds. This component holds that set and renders the right
|
|
3305
|
+
* one for the context, so a sidenav, toolbar, and footer can all reach for
|
|
3306
|
+
* `<Logo>` and ask for the lockup/mode they need.
|
|
3307
|
+
*
|
|
3308
|
+
* Artwork is yours: each slot is any React node — an inline `<svg>`, an
|
|
3309
|
+
* `<img>`, or a component. Supply only what you have; the component falls
|
|
3310
|
+
* back across appearances and lockups so a partial set still renders
|
|
3311
|
+
* something. Monochrome artwork should paint with `currentColor` so it
|
|
3312
|
+
* inherits the surrounding text colour.
|
|
3313
|
+
*
|
|
3314
|
+
* Selection is explicit, not theme-coupled: set `mode="dark"` when the logo
|
|
3315
|
+
* sits on a dark surface. (Wrap it in your own theme hook if you want it
|
|
3316
|
+
* automatic.)
|
|
3317
|
+
*/
|
|
3318
|
+
type LogoLockup = "square" | "horizontal" | "icon";
|
|
3319
|
+
type LogoMode = "light" | "dark";
|
|
3320
|
+
type LogoSize = "sm" | "md" | "lg" | "xl";
|
|
3321
|
+
/** Artwork for one lockup. `light`/`dark` are the full-colour versions for a
|
|
3322
|
+
* light or dark background; `mono` is a single-colour treatment that
|
|
3323
|
+
* inherits `currentColor` and works on any background. */
|
|
3324
|
+
interface LogoVariant {
|
|
3325
|
+
light?: React$1.ReactNode;
|
|
3326
|
+
dark?: React$1.ReactNode;
|
|
3327
|
+
mono?: React$1.ReactNode;
|
|
3328
|
+
}
|
|
3329
|
+
/** The brand artwork set, keyed by lockup then appearance. */
|
|
3330
|
+
interface LogoSources {
|
|
3331
|
+
square?: LogoVariant;
|
|
3332
|
+
horizontal?: LogoVariant;
|
|
3333
|
+
icon?: LogoVariant;
|
|
3334
|
+
}
|
|
3335
|
+
interface LogoProps extends Omit<React$1.HTMLAttributes<HTMLElement>, "children"> {
|
|
3336
|
+
/** The brand artwork. Supply only the slots you have. Optional — with
|
|
3337
|
+
* no artwork at all the neutral placeholder renders, which keeps
|
|
3338
|
+
* layout intact (and keeps a model-emitted bare `<Logo />` from
|
|
3339
|
+
* crashing a Studio preview). */
|
|
3340
|
+
sources?: LogoSources;
|
|
3341
|
+
/** Which lockup to show. Falls back to another lockup if this one is
|
|
3342
|
+
* empty. Default `"horizontal"`. */
|
|
3343
|
+
lockup?: LogoLockup;
|
|
3344
|
+
/** The background the logo sits on — selects the light/dark artwork.
|
|
3345
|
+
* Explicit (not theme-coupled). Default `"light"`. */
|
|
3346
|
+
mode?: LogoMode;
|
|
3347
|
+
/** Render the monochrome artwork instead of full colour. Mono inherits
|
|
3348
|
+
* `currentColor`, so set the text colour on a parent. Default `false`. */
|
|
3349
|
+
mono?: boolean;
|
|
3350
|
+
/** Height of the logo — a t-shirt token or a raw pixel number. Width is
|
|
3351
|
+
* intrinsic (square/icon are 1:1, horizontal keeps its ratio).
|
|
3352
|
+
* Default `"md"`. */
|
|
3353
|
+
size?: LogoSize | number;
|
|
3354
|
+
/** Accessible name (e.g. the brand name) → `aria-label` + `role="img"`.
|
|
3355
|
+
* Omit and set `decorative` when something nearby already names it. */
|
|
3356
|
+
label?: string;
|
|
3357
|
+
/** Mark the logo decorative (`aria-hidden`, no role). Use when the brand
|
|
3358
|
+
* name is already in the DOM beside it. */
|
|
3359
|
+
decorative?: boolean;
|
|
3360
|
+
/** Optional link target — renders the logo as an `<a>` (logo-links-home). */
|
|
3361
|
+
href?: string;
|
|
3362
|
+
}
|
|
3363
|
+
declare const Logo: React$1.ForwardRefExoticComponent<LogoProps & React$1.RefAttributes<HTMLElement>>;
|
|
3364
|
+
|
|
3365
|
+
/**
|
|
3366
|
+
* ScreenAnimator — wrap any content in a directed camera.
|
|
3367
|
+
*
|
|
3368
|
+
* Give it a list of `shots` (a zoom + focal point + dwell) and it tours them:
|
|
3369
|
+
* flies in from offscreen, eases between shots, settles back to the start,
|
|
3370
|
+
* exits, and loops, with a focus spotlight, a synthetic cursor, captions, and
|
|
3371
|
+
* a play/pause/restart transport. The content stays live and interactive
|
|
3372
|
+
* underneath; the camera just directs the eye. It works around ANY children,
|
|
3373
|
+
* a dashboard, an app shell, a single card.
|
|
3374
|
+
*
|
|
3375
|
+
* It's the reusable form of the camera in the embed (`useCameraTimeline` /
|
|
3376
|
+
* `ZoomPan`) and the `camera-tour` scaffold — see STUDIO-DIRECTOR.md. Honours
|
|
3377
|
+
* reduced motion (settles on the starter frame, no movement).
|
|
3378
|
+
*/
|
|
3379
|
+
interface ScreenAnimatorShot {
|
|
3380
|
+
/** Magnification (1 = fit). >1 pushes in. */
|
|
3381
|
+
zoom?: number;
|
|
3382
|
+
/** Focal point as fractions of the content (0..1). Defaults to centre. */
|
|
3383
|
+
cx?: number;
|
|
3384
|
+
cy?: number;
|
|
3385
|
+
/** Milliseconds to dwell on this shot. */
|
|
3386
|
+
hold?: number;
|
|
3387
|
+
/** Milliseconds to glide INTO this shot from the previous one. */
|
|
3388
|
+
trans?: number;
|
|
3389
|
+
/** Caption shown while on this shot. */
|
|
3390
|
+
label?: string;
|
|
3391
|
+
}
|
|
3392
|
+
interface ScreenAnimatorProps {
|
|
3393
|
+
/** The shot list. Omit (or one shot) for a static framed view. */
|
|
3394
|
+
shots?: ScreenAnimatorShot[];
|
|
3395
|
+
/** Start playing on mount. Default true. */
|
|
3396
|
+
autoplay?: boolean;
|
|
3397
|
+
/** Loop the tour (fly in → shots → back to start → exit → repeat). Default true. */
|
|
3398
|
+
loop?: boolean;
|
|
3399
|
+
/** Cap the number of loop cycles, then settle and stop — a demo is a movie,
|
|
3400
|
+
* it shouldn't spin forever. Default Infinity (loops while watched). Set a
|
|
3401
|
+
* small number for grid/embed contexts so it ends. */
|
|
3402
|
+
maxLoops?: number;
|
|
3403
|
+
/** Show the play / pause / restart transport. Default true. */
|
|
3404
|
+
controls?: boolean;
|
|
3405
|
+
/** Dim the edges when pushed in (focus vignette). Default false — opt in. */
|
|
3406
|
+
spotlight?: boolean;
|
|
3407
|
+
/** Render the synthetic cursor pulse on detail shots. Default true. */
|
|
3408
|
+
cursor?: boolean;
|
|
3409
|
+
/** Fly in from offscreen on start (and exit on loop). Default true. */
|
|
3410
|
+
enter?: boolean;
|
|
3411
|
+
/** Where the caption sits over the frame. Default "bottom". */
|
|
3412
|
+
captionPosition?: "top" | "bottom";
|
|
3413
|
+
/** Background of the stage the content sits on while it's small (fly in/out).
|
|
3414
|
+
* A CSS background string. Default a dark cinematic stage. */
|
|
3415
|
+
stage?: string;
|
|
3416
|
+
/** A live backdrop rendered BEHIND the content, filling the stage — an
|
|
3417
|
+
* image, a gradient, or a `<ThreeScene>` shader. Shows around the screen
|
|
3418
|
+
* while it's small (fly in/out) and behind any padding. */
|
|
3419
|
+
backdrop?: React$1.ReactNode;
|
|
3420
|
+
className?: string;
|
|
3421
|
+
style?: React$1.CSSProperties;
|
|
3422
|
+
children: React$1.ReactNode;
|
|
3423
|
+
}
|
|
3424
|
+
declare function ScreenAnimator({ shots, autoplay, loop, maxLoops, controls, spotlight, cursor, enter, captionPosition, stage, backdrop, className, style, children, }: ScreenAnimatorProps): React$1.JSX.Element;
|
|
3425
|
+
|
|
3426
|
+
/**
|
|
3427
|
+
* Control schema — the canonical, UI-agnostic descriptor for a shader's
|
|
3428
|
+
* (or effect layer's) tweakable parameters. Shared by base demos AND the
|
|
3429
|
+
* universal post stack, so a single `<ShaderControls schema={...} />`
|
|
3430
|
+
* renders any of them.
|
|
3431
|
+
*
|
|
3432
|
+
* Ported from the three-lab experiments (the proven shape) and extended
|
|
3433
|
+
* with two controls from the Paper reference — `segmented` and
|
|
3434
|
+
* `colorList` (Paper's colorCount) — plus an optional palette-slot
|
|
3435
|
+
* binding on `color` (the "Line colour → accent" affordance).
|
|
3436
|
+
*
|
|
3437
|
+
* Kept free of three.js / React imports so post-stack.ts and any other
|
|
3438
|
+
* renderer can depend on it without a circular import.
|
|
3439
|
+
*/
|
|
3440
|
+
/** Global palette slots a colour control can bind to. */
|
|
3441
|
+
type PaletteSlot = "primary" | "secondary" | "accent" | "background";
|
|
3442
|
+
type NumberControl = {
|
|
3443
|
+
type: "slider";
|
|
3444
|
+
key: string;
|
|
3445
|
+
label: string;
|
|
3446
|
+
min: number;
|
|
3447
|
+
max: number;
|
|
3448
|
+
step: number;
|
|
3449
|
+
default: number;
|
|
3450
|
+
/** Display unit appended in the readout (e.g. "px", "°", "%"). */
|
|
3451
|
+
unit?: string;
|
|
3452
|
+
};
|
|
3453
|
+
type ColorControl = {
|
|
3454
|
+
type: "color";
|
|
3455
|
+
key: string;
|
|
3456
|
+
label: string;
|
|
3457
|
+
default: string;
|
|
3458
|
+
/** When set, the control FOLLOWS this palette slot (re-tints with the
|
|
3459
|
+
* theme, shows a "→ accent" affordance) until the user overrides it. */
|
|
3460
|
+
slot?: PaletteSlot;
|
|
3461
|
+
};
|
|
3462
|
+
/** A variable-length list of colours — Paper's colorCount + swatches. */
|
|
3463
|
+
type ColorListControl = {
|
|
3464
|
+
type: "colorList";
|
|
3465
|
+
key: string;
|
|
3466
|
+
label: string;
|
|
3467
|
+
default: string[];
|
|
3468
|
+
/** Min / max swatches the user can add. */
|
|
3469
|
+
min?: number;
|
|
3470
|
+
max?: number;
|
|
3471
|
+
};
|
|
3472
|
+
type ToggleControl = {
|
|
3473
|
+
type: "toggle";
|
|
3474
|
+
key: string;
|
|
3475
|
+
label: string;
|
|
3476
|
+
default: boolean;
|
|
3477
|
+
};
|
|
3478
|
+
type SelectControl = {
|
|
3479
|
+
type: "select";
|
|
3480
|
+
key: string;
|
|
3481
|
+
label: string;
|
|
3482
|
+
options: ReadonlyArray<{
|
|
3483
|
+
value: string;
|
|
3484
|
+
label: string;
|
|
3485
|
+
}>;
|
|
3486
|
+
default: string;
|
|
3487
|
+
};
|
|
3488
|
+
/** Same data as a select, rendered as a segmented toggle (≤4 options). */
|
|
3489
|
+
type SegmentedControl = {
|
|
3490
|
+
type: "segmented";
|
|
3491
|
+
key: string;
|
|
3492
|
+
label: string;
|
|
3493
|
+
options: ReadonlyArray<{
|
|
3494
|
+
value: string;
|
|
3495
|
+
label: string;
|
|
3496
|
+
}>;
|
|
3497
|
+
default: string;
|
|
3498
|
+
};
|
|
3499
|
+
type DividerControl = {
|
|
3500
|
+
type: "divider";
|
|
3501
|
+
key: string;
|
|
3502
|
+
/** Optional section heading above the divider line. */
|
|
3503
|
+
label?: string;
|
|
3504
|
+
};
|
|
3505
|
+
type ControlSpec = NumberControl | ColorControl | ColorListControl | ToggleControl | SelectControl | SegmentedControl | DividerControl;
|
|
3506
|
+
/** A flat bag of current values, keyed by ControlSpec.key. */
|
|
3507
|
+
type DemoState = Record<string, number | string | boolean | string[]>;
|
|
3508
|
+
|
|
3016
3509
|
/**
|
|
3017
3510
|
* Shared types for the three.js layer of the design system.
|
|
3018
3511
|
*
|
|
@@ -3082,6 +3575,7 @@ interface PostPreset {
|
|
|
3082
3575
|
};
|
|
3083
3576
|
};
|
|
3084
3577
|
}
|
|
3578
|
+
|
|
3085
3579
|
/** A shader preset is the data needed to instantiate one of the canned scenes. */
|
|
3086
3580
|
interface ShaderPreset {
|
|
3087
3581
|
id: string;
|
|
@@ -3099,6 +3593,10 @@ interface ShaderPreset {
|
|
|
3099
3593
|
defaultPalette?: Partial<Palette>;
|
|
3100
3594
|
/** Static poster image path for non-hover previews. Served from /public. */
|
|
3101
3595
|
poster?: string;
|
|
3596
|
+
/** Tweakable controls for this base shader (drives the controls panel
|
|
3597
|
+
* + maps to uniforms). Effect layers (grain etc.) carry their own
|
|
3598
|
+
* controls separately via EffectLayerSpec. */
|
|
3599
|
+
controls?: ControlSpec[];
|
|
3102
3600
|
}
|
|
3103
3601
|
|
|
3104
3602
|
/**
|
|
@@ -3153,7 +3651,7 @@ declare function buildFragmentShaderScene(userFragment: string): SceneFactory;
|
|
|
3153
3651
|
* play/pause overlay. Scene pauses when offscreen (pauseOffscreen default `true`).
|
|
3154
3652
|
*/
|
|
3155
3653
|
|
|
3156
|
-
interface ThreeSceneProps extends Omit<BaseMediaProps, "src" | "poster"> {
|
|
3654
|
+
interface ThreeSceneProps extends Omit<BaseMediaProps, "src" | "poster">, Omit<React$1.HTMLAttributes<HTMLDivElement>, keyof BaseMediaProps> {
|
|
3157
3655
|
/** Preset id from the shader preset registry. */
|
|
3158
3656
|
preset?: string;
|
|
3159
3657
|
/**
|
|
@@ -3169,8 +3667,12 @@ interface ThreeSceneProps extends Omit<BaseMediaProps, "src" | "poster"> {
|
|
|
3169
3667
|
fragmentShader?: string;
|
|
3170
3668
|
/** Called when a supplied `fragmentShader` fails to compile. */
|
|
3171
3669
|
onShaderError?: (error: ShaderCompileError) => void;
|
|
3172
|
-
/** Post-FX preset
|
|
3173
|
-
|
|
3670
|
+
/** Post-FX preset. Either a registry id (`"vhs"`) OR a full `PostPreset`
|
|
3671
|
+
* object — pass an object (e.g. from `postStateToPreset`) to drive the
|
|
3672
|
+
* stack live from a controls panel; changes are applied via the
|
|
3673
|
+
* composer's `setPreset` WITHOUT remounting WebGL. Defaults to the
|
|
3674
|
+
* base preset's `defaultPostPreset` or "vhs". */
|
|
3675
|
+
postPreset?: string | PostPreset;
|
|
3174
3676
|
/** Palette overrides. Unset slots fall back to `DEFAULT_PALETTE`. */
|
|
3175
3677
|
palette?: Partial<Palette>;
|
|
3176
3678
|
/**
|
|
@@ -3182,9 +3684,168 @@ interface ThreeSceneProps extends Omit<BaseMediaProps, "src" | "poster"> {
|
|
|
3182
3684
|
poster?: string;
|
|
3183
3685
|
/** Pixel-ratio cap. Defaults to `Math.min(window.devicePixelRatio, 2)`. */
|
|
3184
3686
|
maxDpr?: number;
|
|
3687
|
+
/**
|
|
3688
|
+
* Controlled play/pause. When provided, pauses/resumes the render loop
|
|
3689
|
+
* WITHOUT remounting the WebGL context (unlike `autoPlay`, which only
|
|
3690
|
+
* sets the initial state and remounts on change). Use for "animate on
|
|
3691
|
+
* hover" thumbnails. Reduced-motion still forces paused.
|
|
3692
|
+
*/
|
|
3693
|
+
play?: boolean;
|
|
3185
3694
|
}
|
|
3186
3695
|
declare const ThreeScene: React$1.ForwardRefExoticComponent<ThreeSceneProps & React$1.RefAttributes<HTMLDivElement>>;
|
|
3187
3696
|
|
|
3697
|
+
/**
|
|
3698
|
+
* ShaderControls — renders a `ControlSpec[]` schema into a live controls
|
|
3699
|
+
* panel using the DS control primitives. One component drives every
|
|
3700
|
+
* shader's params, the universal post stack (POST_CONTROLS), and any
|
|
3701
|
+
* effect layer — because they all describe themselves as ControlSpec[].
|
|
3702
|
+
*
|
|
3703
|
+
* Controlled: parent owns the `DemoState` and gets `onChange(key, value)`
|
|
3704
|
+
* on every edit. UI-only; it knows nothing about WebGL.
|
|
3705
|
+
*
|
|
3706
|
+
* Mapping:
|
|
3707
|
+
* slider → Slider + editable number (with optional unit)
|
|
3708
|
+
* segmented → ToggleGroup (single)
|
|
3709
|
+
* select → Select (compact)
|
|
3710
|
+
* toggle → Switch
|
|
3711
|
+
* color → swatch + hex field (with optional "→ slot" binding hint)
|
|
3712
|
+
* colorList → N swatches + add/remove (Paper's colorCount)
|
|
3713
|
+
* divider → section heading + rule
|
|
3714
|
+
*/
|
|
3715
|
+
|
|
3716
|
+
interface ShaderControlsProps {
|
|
3717
|
+
controls: readonly ControlSpec[];
|
|
3718
|
+
state: DemoState;
|
|
3719
|
+
onChange: (key: string, value: number | string | boolean | string[]) => void;
|
|
3720
|
+
disabled?: boolean;
|
|
3721
|
+
className?: string;
|
|
3722
|
+
}
|
|
3723
|
+
declare function ShaderControls({ controls, state, onChange, disabled, className, }: ShaderControlsProps): React$1.JSX.Element;
|
|
3724
|
+
|
|
3725
|
+
/**
|
|
3726
|
+
* BackgroundFill — a frame's background *paint*, as a layer.
|
|
3727
|
+
*
|
|
3728
|
+
* This is the render boundary for the "fill" model: a generative
|
|
3729
|
+
* background (shader), an image, a video, a gradient, a repeating
|
|
3730
|
+
* texture, or a solid token is NEVER a free-standing selectable node.
|
|
3731
|
+
* It is a paint that belongs to a frame, exactly like a fill in Figma /
|
|
3732
|
+
* Paper. The frame is the thing you select; this layer is plumbing.
|
|
3733
|
+
*
|
|
3734
|
+
* Drop it as the FIRST child of a `relative` frame. It paints an
|
|
3735
|
+
* `absolute inset-0`, `z-0`, `pointer-events-none` layer behind the
|
|
3736
|
+
* frame's content — so siblings that carry `relative z-10` (or any
|
|
3737
|
+
* positioned/z-indexed content) sit on top automatically. It is marked
|
|
3738
|
+
* `data-gds-part="frame-fill"` + `aria-hidden` so Studio treats it as
|
|
3739
|
+
* chrome (not separately selectable) and a11y trees skip it.
|
|
3740
|
+
*
|
|
3741
|
+
* The `type` switch picks what gets painted:
|
|
3742
|
+
* none → renders nothing
|
|
3743
|
+
* solid → a theme token (or any CSS colour)
|
|
3744
|
+
* gradient → a linear-gradient from from/via/to stops
|
|
3745
|
+
* image → an <img> (object-fit) or a tiled background (repeat)
|
|
3746
|
+
* video → a muted, looping, autoplaying <video>
|
|
3747
|
+
* shader → a <ThreeScene> generative shader (preset or GLSL)
|
|
3748
|
+
*
|
|
3749
|
+
* Common controls — `opacity` and `blendMode` — apply to every type,
|
|
3750
|
+
* mirroring the inspector's Blending section.
|
|
3751
|
+
*/
|
|
3752
|
+
|
|
3753
|
+
type BackgroundFillType = "none" | "solid" | "gradient" | "image" | "video" | "shader";
|
|
3754
|
+
type BackgroundFillFit = "cover" | "contain" | "fill" | "none";
|
|
3755
|
+
interface BackgroundFillProps {
|
|
3756
|
+
/** Which paint to render. */
|
|
3757
|
+
type: BackgroundFillType;
|
|
3758
|
+
/** Token name (`primary`, `card`, …) or any CSS colour. */
|
|
3759
|
+
color?: string;
|
|
3760
|
+
/** Gradient stops — token names or CSS colours. `shape: "radial"`
|
|
3761
|
+
* swaps the linear paint for a radial wash (the classic "soft glow
|
|
3762
|
+
* behind the hero"); `at` positions its centre, `size` fixes the
|
|
3763
|
+
* ellipse (e.g. "45rem 50rem" — defaults to farthest-corner).
|
|
3764
|
+
* `angle` is linear-only; `at`/`size` are radial-only. */
|
|
3765
|
+
gradient?: {
|
|
3766
|
+
from?: string;
|
|
3767
|
+
via?: string;
|
|
3768
|
+
to?: string;
|
|
3769
|
+
angle?: number;
|
|
3770
|
+
shape?: "linear" | "radial";
|
|
3771
|
+
at?: string;
|
|
3772
|
+
size?: string;
|
|
3773
|
+
};
|
|
3774
|
+
/** Image or video URL. */
|
|
3775
|
+
src?: string;
|
|
3776
|
+
/** object-fit for image / video. Default `cover`. */
|
|
3777
|
+
fit?: BackgroundFillFit;
|
|
3778
|
+
/** CSS object-position / background-position. Default `center`. */
|
|
3779
|
+
position?: string;
|
|
3780
|
+
/** Tile the image (uses background-image + repeat instead of <img>). */
|
|
3781
|
+
repeat?: boolean;
|
|
3782
|
+
/** Tile size when `repeat` (CSS background-size, e.g. "120px"). */
|
|
3783
|
+
tileSize?: string;
|
|
3784
|
+
/** Shader preset id (see ThreeScene). */
|
|
3785
|
+
preset?: string;
|
|
3786
|
+
/** Custom GLSL fragment shader (takes precedence over preset). */
|
|
3787
|
+
fragmentShader?: string;
|
|
3788
|
+
/** Palette overrides for the shader. */
|
|
3789
|
+
palette?: Partial<Palette>;
|
|
3790
|
+
/** Post-FX preset id or live PostPreset object. */
|
|
3791
|
+
postPreset?: string | PostPreset;
|
|
3792
|
+
/** Layer opacity (0–1). */
|
|
3793
|
+
opacity?: number;
|
|
3794
|
+
/** CSS mix-blend-mode against the frame behind it. */
|
|
3795
|
+
blendMode?: React$1.CSSProperties["mixBlendMode"];
|
|
3796
|
+
/** Corner radius — match the frame's so the paint clips cleanly. */
|
|
3797
|
+
radius?: MediaRadius;
|
|
3798
|
+
className?: string;
|
|
3799
|
+
style?: React$1.CSSProperties;
|
|
3800
|
+
}
|
|
3801
|
+
declare const BackgroundFill: React$1.ForwardRefExoticComponent<BackgroundFillProps & React$1.RefAttributes<HTMLDivElement>>;
|
|
3802
|
+
|
|
3803
|
+
/**
|
|
3804
|
+
* FillPicker — Grade's paint picker, modelled on Figma's fill popover.
|
|
3805
|
+
*
|
|
3806
|
+
* A type-icon row across the top (solid · gradient · image · pattern ·
|
|
3807
|
+
* video · shader) switches the panel below to that paint's controls,
|
|
3808
|
+
* with a global opacity at the foot. It emits a `FillValue` that maps
|
|
3809
|
+
* 1:1 onto `<BackgroundFill>` props, so the inspector's Fill section and
|
|
3810
|
+
* any frame background share one control + one data shape.
|
|
3811
|
+
*
|
|
3812
|
+
* Grade is token-led, so the SOLID tab leads with theme-token swatches
|
|
3813
|
+
* (the "Libraries" half of Figma's picker) rather than a freeform HSV
|
|
3814
|
+
* square. A custom-colour square is a deliberate later pass.
|
|
3815
|
+
*/
|
|
3816
|
+
|
|
3817
|
+
/** A paint value — the serialisable shape both the picker and
|
|
3818
|
+
* `<BackgroundFill>` speak. */
|
|
3819
|
+
interface FillValue {
|
|
3820
|
+
type: BackgroundFillType;
|
|
3821
|
+
color?: string;
|
|
3822
|
+
gradient?: {
|
|
3823
|
+
from?: string;
|
|
3824
|
+
via?: string;
|
|
3825
|
+
to?: string;
|
|
3826
|
+
angle?: number;
|
|
3827
|
+
};
|
|
3828
|
+
src?: string;
|
|
3829
|
+
fit?: BackgroundFillFit;
|
|
3830
|
+
repeat?: boolean;
|
|
3831
|
+
tileSize?: string;
|
|
3832
|
+
preset?: string;
|
|
3833
|
+
palette?: Partial<Palette>;
|
|
3834
|
+
postPreset?: string | PostPreset;
|
|
3835
|
+
opacity?: number;
|
|
3836
|
+
}
|
|
3837
|
+
/** Theme tokens offered as solid / gradient swatches. */
|
|
3838
|
+
declare const FILL_TOKENS: readonly ["primary", "accent", "secondary", "muted", "card", "background", "destructive", "transparent"];
|
|
3839
|
+
interface FillPickerProps {
|
|
3840
|
+
value: FillValue;
|
|
3841
|
+
onChange: (value: FillValue) => void;
|
|
3842
|
+
className?: string;
|
|
3843
|
+
}
|
|
3844
|
+
declare function FillPicker({ value, onChange, className }: FillPickerProps): React$1.JSX.Element;
|
|
3845
|
+
declare namespace FillPicker {
|
|
3846
|
+
var displayName: string;
|
|
3847
|
+
}
|
|
3848
|
+
|
|
3188
3849
|
/**
|
|
3189
3850
|
* ShaderPresetPreview — a thumbnail-sized preview of a shader preset.
|
|
3190
3851
|
*
|
|
@@ -3204,7 +3865,7 @@ interface ShaderPresetPreviewProps {
|
|
|
3204
3865
|
postPreset?: string;
|
|
3205
3866
|
palette?: Partial<Palette>;
|
|
3206
3867
|
className?: string;
|
|
3207
|
-
aspect?: "video" | "square" | "portrait" | "wide";
|
|
3868
|
+
aspect?: "video" | "standard" | "square" | "portrait" | "wide";
|
|
3208
3869
|
radius?: "none" | "sm" | "md" | "lg" | "xl";
|
|
3209
3870
|
/** Text label shown on the card. Defaults to preset label. */
|
|
3210
3871
|
label?: string;
|
|
@@ -3756,4 +4417,4 @@ declare function GradeModeSwitcher({ className, variant }: GradeModeSwitcherProp
|
|
|
3756
4417
|
*/
|
|
3757
4418
|
declare function ThemeToggle(): React$1.JSX.Element;
|
|
3758
4419
|
|
|
3759
|
-
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, BUILT_IN_INPUTS, 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 ChartPalette, Checkbox, Code, type CodeDiff, type CodeLanguage, type CodeProps, type CodeReveal, type CodeTrigger, type ColorIntensity, Composer, type ComposerAttachment, type ComposerAttachmentConfig, type ComposerContent, type ComposerFormat, type ComposerHandle, type ComposerMentionItem, type ComposerProps, ComposerReply, type ComposerStep, type ComposerTriggerConfig, DEMO_SPEED_PRESETS, 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, FRAGMENT_HEADER, Flex, type FlexProps, type FontKey, GRADE_PRE_HYDRATION_SCRIPT, type GeneratedTheme, GradeModeSwitcher, GradeThemeProvider, type GradeThemeProviderProps, GradeThemeSwitcher, Grid, type GridProps, Input, type InputStyle, Label, LenisProvider, Map, MapHandle, MapMarker, MapMarkerProps, MapProps, type MediaAspect, type MediaRadius, MediaSurface, MediaSurfaceContract, type MediaSurfaceProps, Message, type MessageProps, type ModeName, MultiSelect, type MultiSelectOption, type MultiSelectProps, type OKLCHTriplet, type Palette, Popover, PopoverAnchor, PopoverContent, PopoverTrigger, type PostPreset, Progress, 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, type ScriptedDemoContext, type ScriptedDemoState, ScrollArea, ScrollBar, Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue, Separator, ShaderCompileError, 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, Switch, 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 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, shaderPresetById, shaderPresets, shellVariants, stackVariants, themeToCSSVars, toggleVariants, useCarouselApi, useGradeTheme, useMaybeGradeTheme, usePrefersReducedMotion, useScriptedDemo };
|
|
4420
|
+
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 ChartPalette, Checkbox, CheckboxCard, type CheckboxCardProps, Code, type CodeDiff, type CodeLanguage, type CodeProps, type CodeReveal, type CodeTrigger, type ColorIntensity, Composer, type ComposerAttachment, type ComposerAttachmentConfig, type ComposerContent, type ComposerFormat, type ComposerHandle, type ComposerMentionItem, type ComposerProps, ComposerReply, type ComposerStep, type ComposerTriggerConfig, DEMO_SPEED_PRESETS, 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, 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, MultiSelect, type MultiSelectOption, type MultiSelectProps, type OKLCHTriplet, type Palette, Popover, PopoverAnchor, PopoverContent, PopoverTrigger, type PostPreset, Progress, 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, 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 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, themeToCSSVars, toggleVariants, useCarouselApi, useGradeTheme, useMaybeGradeTheme, usePageActive, usePrefersReducedMotion, useReducedMotion, useScriptedDemo };
|