@gradeui/ui 1.0.0 → 1.1.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
@@ -9,6 +9,7 @@ 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 { Language } from 'prism-react-renderer';
12
13
  import * as DialogPrimitive from '@radix-ui/react-dialog';
13
14
  import * as DropdownMenuPrimitive from '@radix-ui/react-dropdown-menu';
14
15
  import * as LabelPrimitive from '@radix-ui/react-label';
@@ -249,11 +250,11 @@ declare const MediaSurfaceContract: _gradeui_contracts.ComponentContract<{
249
250
  kind: z.ZodLiteral<"generic">;
250
251
  prompt: z.ZodString;
251
252
  }, "strip", z.ZodTypeAny, {
252
- kind: "generic";
253
253
  prompt: string;
254
- }, {
255
254
  kind: "generic";
255
+ }, {
256
256
  prompt: string;
257
+ kind: "generic";
257
258
  }>, z.ZodUnion<[z.ZodObject<{
258
259
  kind: z.ZodLiteral<"video">;
259
260
  }, "strip", z.ZodTypeAny, {
@@ -379,10 +380,10 @@ declare const AccordionContent: React$1.ForwardRefExoticComponent<Omit<Accordion
379
380
  * `variant="warning"` or `variant="info"` depending on temperature.
380
381
  */
381
382
  declare const calloutVariants: (props?: ({
382
- variant?: "default" | "destructive" | "success" | "warning" | "info" | null | undefined;
383
+ variant?: "default" | "info" | "success" | "warning" | "destructive" | null | undefined;
383
384
  } & class_variance_authority_types.ClassProp) | undefined) => string;
384
385
  declare const Callout: React$1.ForwardRefExoticComponent<React$1.HTMLAttributes<HTMLDivElement> & VariantProps<(props?: ({
385
- variant?: "default" | "destructive" | "success" | "warning" | "info" | null | undefined;
386
+ variant?: "default" | "info" | "success" | "warning" | "destructive" | null | undefined;
386
387
  } & class_variance_authority_types.ClassProp) | undefined) => string> & React$1.RefAttributes<HTMLDivElement>>;
387
388
  declare const CalloutTitle: React$1.ForwardRefExoticComponent<React$1.HTMLAttributes<HTMLHeadingElement> & React$1.RefAttributes<HTMLParagraphElement>>;
388
389
  declare const CalloutDescription: React$1.ForwardRefExoticComponent<React$1.HTMLAttributes<HTMLParagraphElement> & React$1.RefAttributes<HTMLParagraphElement>>;
@@ -470,13 +471,109 @@ declare const AvatarImage: React$1.ForwardRefExoticComponent<Omit<AvatarPrimitiv
470
471
  declare const AvatarFallback: React$1.ForwardRefExoticComponent<Omit<AvatarPrimitive.AvatarFallbackProps & React$1.RefAttributes<HTMLSpanElement>, "ref"> & React$1.RefAttributes<HTMLSpanElement>>;
471
472
 
472
473
  declare const badgeVariants: (props?: ({
473
- variant?: "default" | "destructive" | "outline" | "secondary" | "success" | "warning" | "info" | "highlight" | "success-soft" | "warning-soft" | "destructive-soft" | "info-soft" | "highlight-soft" | "success-outline" | "warning-outline" | "destructive-outline" | "info-outline" | null | undefined;
474
+ variant?: "default" | "info" | "success" | "warning" | "destructive" | "outline" | "secondary" | "highlight" | "success-soft" | "warning-soft" | "destructive-soft" | "info-soft" | "highlight-soft" | "success-outline" | "warning-outline" | "destructive-outline" | "info-outline" | null | undefined;
474
475
  rounded?: "default" | "full" | null | undefined;
475
476
  } & class_variance_authority_types.ClassProp) | undefined) => string;
476
477
  interface BadgeProps extends React$1.HTMLAttributes<HTMLDivElement>, VariantProps<typeof badgeVariants> {
477
478
  }
478
479
  declare function Badge({ className, variant, rounded, ...props }: BadgeProps): React$1.JSX.Element;
479
480
 
481
+ /**
482
+ * Surface — what a container is *made of*.
483
+ *
484
+ * Shared across every component that surfaces content (Card, Dialog,
485
+ * Sheet, Popover, DropdownMenu, HoverCard, SectionBlock). Picking the
486
+ * material is a first-class prop axis on each of those components,
487
+ * orthogonal to elevation (how high) and aura (what it radiates) — see
488
+ * gradeui/PRESENCE.md for the three-axis model.
489
+ *
490
+ * Putting this on the prop API instead of leaving it as a className
491
+ * escape-hatch buys three things:
492
+ *
493
+ * 1. Studio's inspector surfaces a `surface` knob on every container
494
+ * so users can flip the material without touching code.
495
+ * 2. The model has a first-class vocabulary to pick from — without
496
+ * this it reaches for `bg-card/40 backdrop-blur-md` Tailwind soup
497
+ * and loses the edge highlight + theme-aware blur tuning.
498
+ * 3. Themes can retune `--surface-blur-*` / `--surface-alpha-*`
499
+ * centrally and every container moves with them.
500
+ *
501
+ * The CSS classes referenced here live in packages/ui/styles/globals.css
502
+ * (and the apps/docs mirror) under the SURFACE CLASSES section.
503
+ */
504
+ type Surface = "solid" | "translucent" | "glass" | "glass-strong";
505
+
506
+ /**
507
+ * Banner — full-width horizontal strip surfacing system-level state or
508
+ * announcements that should stay visible until acknowledged.
509
+ *
510
+ * The shape is the difference from Callout:
511
+ *
512
+ * Callout = inline boxed message in the layout flow (rounded box,
513
+ * body-paragraph width, lives inside a Card/Section).
514
+ * Banner = full-bleed horizontal strip across a page / panel /
515
+ * AppShellHeader top. Single-line by default.
516
+ *
517
+ * Use cases that should be Banner, not Callout, not Dialog:
518
+ * - "You're previewing this from main — switch to your branch"
519
+ * - "We're investigating an incident affecting search"
520
+ * - "Send your design to Figma — get the Grade plugin"
521
+ * - "New: scaffold-playground tab"
522
+ *
523
+ * Three Presence axes apply: variant (intent colour), surface
524
+ * (material), shadow utilities for elevation. The default is
525
+ * `variant="default" surface="solid"`, which yields a calm announcement
526
+ * strip in the active theme. Status variants pick up the soft / deep
527
+ * token pairs (`--info-soft` + `--info-deep`, etc.), same pattern as
528
+ * Callout.
529
+ *
530
+ * AUTHORING ORIGIN: this primitive was extracted out of
531
+ * `apps/docs/components/studio/figma-intro-banner.tsx` after the user
532
+ * flagged that ad-hoc banner as invisible — it was reaching for
533
+ * `--gds-primary` / `--gds-border` / `--gds-foreground` tokens that
534
+ * don't exist (our tokens are unprefixed). The inline-style fallbacks
535
+ * kicked in and the chrome washed out completely. Banner exists so the
536
+ * "I need a one-line announcement strip" need lands in a primitive that
537
+ * cannot get the token names wrong.
538
+ */
539
+ declare const bannerVariants: (props?: ({
540
+ variant?: "default" | "info" | "success" | "warning" | "destructive" | "announcement" | null | undefined;
541
+ align?: "start" | "center" | "between" | null | undefined;
542
+ sticky?: boolean | null | undefined;
543
+ } & class_variance_authority_types.ClassProp) | undefined) => string;
544
+ interface BannerProps extends Omit<React$1.HTMLAttributes<HTMLDivElement>, "title">, VariantProps<typeof bannerVariants> {
545
+ /**
546
+ * Material the banner is *made of*. Defaults to `solid` (the
547
+ * variant's tinted bg). `glass` is useful when the banner sits over
548
+ * a hero image / generative backdrop and the imagery underneath
549
+ * should remain visible.
550
+ */
551
+ surface?: Surface;
552
+ /**
553
+ * Show a close button at the trailing end. The button calls
554
+ * `onDismiss` if provided; otherwise the consumer controls
555
+ * visibility via standard React state on the parent.
556
+ */
557
+ dismissible?: boolean;
558
+ /**
559
+ * Callback when the user clicks the trailing close button. Required
560
+ * when `dismissible` is set if you want the banner to actually
561
+ * disappear (the primitive itself stays controlled).
562
+ */
563
+ onDismiss?: () => void;
564
+ /**
565
+ * Leading slot — typically a single Lucide icon. The status icon
566
+ * is NOT inferred from variant; pass the one that fits your message.
567
+ */
568
+ icon?: React$1.ReactNode;
569
+ /**
570
+ * Optional trailing action — usually a Button or anchor. Sits to the
571
+ * left of the dismiss button.
572
+ */
573
+ action?: React$1.ReactNode;
574
+ }
575
+ declare const Banner: React$1.ForwardRefExoticComponent<BannerProps & React$1.RefAttributes<HTMLDivElement>>;
576
+
480
577
  /**
481
578
  * Button — primary action primitive.
482
579
  *
@@ -498,7 +595,7 @@ declare function Badge({ className, variant, rounded, ...props }: BadgeProps): R
498
595
  */
499
596
  declare const buttonVariants: (props?: ({
500
597
  variant?: "default" | "destructive" | "outline" | "secondary" | "ghost" | "link" | "raised" | null | undefined;
501
- size?: "default" | "sm" | "md" | "lg" | "icon" | null | undefined;
598
+ size?: "default" | "icon" | "sm" | "md" | "lg" | null | undefined;
502
599
  } & class_variance_authority_types.ClassProp) | undefined) => string;
503
600
  interface ButtonProps extends React$1.ButtonHTMLAttributes<HTMLButtonElement>, VariantProps<typeof buttonVariants> {
504
601
  asChild?: boolean;
@@ -649,7 +746,22 @@ declare const Carousel: CarouselRootComponent;
649
746
 
650
747
  declare function useCarouselApi(): EmblaApi | undefined;
651
748
 
652
- declare const Card: React$1.ForwardRefExoticComponent<React$1.HTMLAttributes<HTMLDivElement> & React$1.RefAttributes<HTMLDivElement>>;
749
+ interface CardProps extends React$1.HTMLAttributes<HTMLDivElement> {
750
+ /**
751
+ * What the card surface is *made of*. Composes with `shadow-elevation-*`
752
+ * (depth) and `gds-aura-*` (state signal) — see PRESENCE.md.
753
+ *
754
+ * - `solid` (default): opaque `bg-card`.
755
+ * - `translucent`: ~82% opacity, no blur. Menu sheets, popovers.
756
+ * - `glass`: ~58% opacity + 14px blur + edge highlight. Floating panels.
757
+ * - `glass-strong`: ~42% opacity + 24px blur. Full-page overlays.
758
+ *
759
+ * When `surface` is set to anything other than `solid`, the base
760
+ * `bg-card` is dropped so the glass alpha can pass through.
761
+ */
762
+ surface?: Surface;
763
+ }
764
+ declare const Card: React$1.ForwardRefExoticComponent<CardProps & React$1.RefAttributes<HTMLDivElement>>;
653
765
  declare const CardHeader: React$1.ForwardRefExoticComponent<React$1.HTMLAttributes<HTMLDivElement> & React$1.RefAttributes<HTMLDivElement>>;
654
766
  declare const CardTitle: React$1.ForwardRefExoticComponent<React$1.HTMLAttributes<HTMLDivElement> & React$1.RefAttributes<HTMLDivElement>>;
655
767
  declare const CardDescription: React$1.ForwardRefExoticComponent<React$1.HTMLAttributes<HTMLDivElement> & React$1.RefAttributes<HTMLDivElement>>;
@@ -658,6 +770,171 @@ declare const CardFooter: React$1.ForwardRefExoticComponent<React$1.HTMLAttribut
658
770
 
659
771
  declare const Checkbox: React$1.ForwardRefExoticComponent<Omit<CheckboxPrimitive.CheckboxProps & React$1.RefAttributes<HTMLButtonElement>, "ref"> & React$1.RefAttributes<HTMLButtonElement>>;
660
772
 
773
+ /**
774
+ * Code — syntax-highlighted code surface with diff, line-emphasis, and
775
+ * reveal animation modes. Designed for marketing heroes ("diff hero"),
776
+ * docs blocks, and changelog entries.
777
+ *
778
+ * Engine choice: prism-react-renderer. Sync, ~6kb, render-prop API hands
779
+ * us `tokens` as data. Already in use in Studio's CodeView so the repo
780
+ * has one highlighter, not two. Async highlighters (shiki) would either
781
+ * flash unstyled on hydration or balloon the marketing bundle once you
782
+ * include enough langs to matter. See gradeui/STUDIO.md for the Studio
783
+ * variant.
784
+ *
785
+ * Theme is CSS-variable driven (`--gds-code-*`), so token palette
786
+ * inverts with the theme without us re-rendering a different prism
787
+ * theme. The prism `theme` prop just hands each token type a
788
+ * `color: var(--gds-code-<thing>)` so the cascade does the work.
789
+ *
790
+ * Animation strategy: motion (already a dep). `reveal="lines"` staggers
791
+ * each line in; `typewriter` reveals tokens one-at-a-time per line;
792
+ * `diff` plays the removed → added swap. The `trigger` prop selects
793
+ * what kicks it off — `inView` is the common case for scroll-driven
794
+ * marketing surfaces; `mount` fires immediately; `manual` reads `play`.
795
+ */
796
+ type CodeLanguage = Language;
797
+ type CodeReveal = "none" | "lines" | "typewriter" | "diff";
798
+ type CodeTrigger = "mount" | "inView" | "manual";
799
+ type CodeSpeed = "slow" | "normal" | "fast";
800
+ /**
801
+ * Step shape for scripted terminal / CLI sessions. Lives on `<Code>`
802
+ * itself rather than a sibling `CodeSequence` so the theme bridge,
803
+ * prompt prop, cursor, surface tokens, and prism highlighter aren't
804
+ * duplicated. When `steps` is provided, it overrides `source` + `reveal`
805
+ * and runs the machine below internally.
806
+ *
807
+ * - `type` — types text into the buffer as if a user were typing
808
+ * - `output` — appends text instantly as command output (no prompt,
809
+ * no per-char delay, often muted in render)
810
+ * - `wait` — pauses for `ms` milliseconds before the next step
811
+ * - `clear` — wipes the buffer (terminal `clear`)
812
+ */
813
+ type CodeStep = {
814
+ type: "type";
815
+ text: string;
816
+ speed?: CodeSpeed;
817
+ } | {
818
+ type: "output";
819
+ text: string;
820
+ } | {
821
+ type: "wait";
822
+ ms: number;
823
+ } | {
824
+ type: "clear";
825
+ };
826
+ interface CodeDiff {
827
+ /** 1-indexed line numbers marked as added (green bg + `+` gutter). */
828
+ added?: number[];
829
+ /** 1-indexed line numbers marked as removed (red bg + `-` gutter). */
830
+ removed?: number[];
831
+ }
832
+ interface CodeProps extends Omit<React$1.HTMLAttributes<HTMLDivElement>, "children"> {
833
+ /**
834
+ * Source code to render. Optional when `steps` is provided — the
835
+ * scripted machine builds its own buffer and ignores `source`. When
836
+ * neither `source` nor `steps` is set, the block renders empty.
837
+ */
838
+ source?: string;
839
+ /** Prism language id — `tsx` handles JSX too. Defaults to `tsx`. */
840
+ language?: CodeLanguage;
841
+ /**
842
+ * 1-indexed lines (or `[start, end]` ranges) to emphasise with the
843
+ * highlight background. Composes with `diff` — diff colours win.
844
+ */
845
+ highlight?: number | number[] | Array<number | [number, number]>;
846
+ /** Diff mode — paints +added / -removed lines and renders a gutter. */
847
+ diff?: CodeDiff;
848
+ /** Reveal animation. Defaults to `none`. */
849
+ reveal?: CodeReveal;
850
+ /** What triggers the reveal. Defaults to `mount`. */
851
+ trigger?: CodeTrigger;
852
+ /** For `trigger="manual"` — set true to play. */
853
+ play?: boolean;
854
+ /**
855
+ * Animation feel — slow / normal (default) / fast. Maps onto sensible
856
+ * stagger + pre-reveal delay values so authors don't have to think.
857
+ * Explicit `stagger` / `delay` override the preset if provided.
858
+ */
859
+ speed?: CodeSpeed;
860
+ /** Delay before the reveal starts (ms). Overrides the `speed` preset. */
861
+ delay?: number;
862
+ /**
863
+ * Per-line stagger for `lines`/`diff`, per-token for `typewriter`
864
+ * (ms). Overrides the `speed` preset.
865
+ */
866
+ stagger?: number;
867
+ /** Show 1-indexed line numbers in a gutter. */
868
+ showLineNumbers?: boolean;
869
+ /** Optional filename / label in the chrome header. */
870
+ filename?: string;
871
+ /** Wrap long lines instead of horizontal scroll. */
872
+ wrap?: boolean;
873
+ /** Hide the surrounding chrome (border, header, padding). */
874
+ bare?: boolean;
875
+ /**
876
+ * String prepended to every line. Use for terminal emulation
877
+ * (`prompt="$ "` for bash, `prompt="> "` for PowerShell, `prompt=">>> "`
878
+ * for Python REPL). Prompt characters render in muted token colour,
879
+ * don't pick up the typewriter stagger (they're chrome, not content),
880
+ * and are aria-hidden so screen readers don't read them.
881
+ */
882
+ prompt?: string;
883
+ /**
884
+ * Show a blinking cursor at the tail of the reveal — implies the
885
+ * "typing" gesture in marketing demos and terminal sessions.
886
+ * Defaults to `true` when `reveal="typewriter"`, `false` otherwise.
887
+ * Pass explicit `true` to keep the cursor up after a `lines` reveal
888
+ * completes, or `false` to hide it on a typewriter run.
889
+ */
890
+ cursor?: boolean;
891
+ /**
892
+ * Scripted terminal session. When provided, takes precedence over
893
+ * `source` + `reveal` — the component runs the step machine,
894
+ * progressively appending characters per step. Pairs naturally with
895
+ * `language="bash"` + `prompt="$ "` + `cursor` (all default-on).
896
+ *
897
+ * Output lines are rendered without a prompt prefix and at a muted
898
+ * token colour so they read as command output rather than input.
899
+ * Use `wait` between commands to let the user catch up.
900
+ *
901
+ * Example:
902
+ * <Code language="bash" prompt="$ " steps={[
903
+ * { type: "type", text: "pnpm add @gradeui/ui" },
904
+ * { type: "wait", ms: 500 },
905
+ * { type: "output", text: "added 47 packages in 2.3s" },
906
+ * { type: "type", text: "pnpm gradeui init" },
907
+ * ]} />
908
+ */
909
+ steps?: CodeStep[];
910
+ /**
911
+ * When `steps` is set: loops the sequence forever after completion
912
+ * (with a 2s pause + clear between cycles). For "always-on" hero
913
+ * demos that need to keep playing.
914
+ */
915
+ loop?: boolean;
916
+ /**
917
+ * Container sizing — `auto` (default) grows with the rendered lines.
918
+ * A number is treated as pixels (`300` → `300px`); a string is passed
919
+ * through as CSS (`"20rem"`, `"50vh"`, `"calc(100vh - 4rem)"`).
920
+ *
921
+ * Overflowing content scrolls. Pair with `wrap` to break long lines
922
+ * instead of horizontal scroll.
923
+ */
924
+ height?: number | string | "auto";
925
+ /**
926
+ * Cap the visible line count — the container is fixed at exactly
927
+ * `maxLines * 1lh` and additional lines scroll. Use for terminal
928
+ * windows ("show me the last 8 lines"), code-tour cards, and
929
+ * marketing surfaces that need a stable vertical rhythm regardless
930
+ * of how much content is in the snippet.
931
+ *
932
+ * Wins over `height` when both are set.
933
+ */
934
+ maxLines?: number;
935
+ }
936
+ declare const Code: React$1.ForwardRefExoticComponent<CodeProps & React$1.RefAttributes<HTMLDivElement>>;
937
+
661
938
  /**
662
939
  * DatePicker + DateRangePicker
663
940
  *
@@ -728,7 +1005,21 @@ declare const DialogTrigger: React$1.ForwardRefExoticComponent<DialogPrimitive.D
728
1005
  declare const DialogPortal: React$1.FC<DialogPrimitive.DialogPortalProps>;
729
1006
  declare const DialogClose: React$1.ForwardRefExoticComponent<DialogPrimitive.DialogCloseProps & React$1.RefAttributes<HTMLButtonElement>>;
730
1007
  declare const DialogOverlay: React$1.ForwardRefExoticComponent<Omit<DialogPrimitive.DialogOverlayProps & React$1.RefAttributes<HTMLDivElement>, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
731
- declare const DialogContent: React$1.ForwardRefExoticComponent<Omit<DialogPrimitive.DialogContentProps & React$1.RefAttributes<HTMLDivElement>, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
1008
+ interface DialogContentProps extends React$1.ComponentPropsWithoutRef<typeof DialogPrimitive.Content> {
1009
+ /**
1010
+ * What the dialog surface is *made of*. Composes with the overlay
1011
+ * scrim — see PRESENCE.md and dialog.md for scenarios.
1012
+ *
1013
+ * - `solid` (default): opaque `bg-background`.
1014
+ * - `translucent`: ~82% opacity, no blur — "presence without drama".
1015
+ * - `glass`: 58% opacity + 14px blur + edge highlight. The page
1016
+ * underneath shows through softly.
1017
+ * - `glass-strong`: 42% opacity + 24px blur. For dialogs that should
1018
+ * feel like an overlay rather than a panel.
1019
+ */
1020
+ surface?: Surface;
1021
+ }
1022
+ declare const DialogContent: React$1.ForwardRefExoticComponent<DialogContentProps & React$1.RefAttributes<HTMLDivElement>>;
732
1023
  declare const DialogHeader: {
733
1024
  ({ className, ...props }: React$1.HTMLAttributes<HTMLDivElement>): React$1.JSX.Element;
734
1025
  displayName: string;
@@ -749,8 +1040,20 @@ declare const DropdownMenuRadioGroup: React$1.ForwardRefExoticComponent<Dropdown
749
1040
  declare const DropdownMenuSubTrigger: React$1.ForwardRefExoticComponent<Omit<DropdownMenuPrimitive.DropdownMenuSubTriggerProps & React$1.RefAttributes<HTMLDivElement>, "ref"> & {
750
1041
  inset?: boolean;
751
1042
  } & React$1.RefAttributes<HTMLDivElement>>;
752
- declare const DropdownMenuSubContent: React$1.ForwardRefExoticComponent<Omit<DropdownMenuPrimitive.DropdownMenuSubContentProps & React$1.RefAttributes<HTMLDivElement>, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
753
- declare const DropdownMenuContent: React$1.ForwardRefExoticComponent<Omit<DropdownMenuPrimitive.DropdownMenuContentProps & React$1.RefAttributes<HTMLDivElement>, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
1043
+ interface DropdownMenuSubContentProps extends React$1.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.SubContent> {
1044
+ /** What the submenu surface is *made of*. See dropdown-menu.md. */
1045
+ surface?: Surface;
1046
+ }
1047
+ declare const DropdownMenuSubContent: React$1.ForwardRefExoticComponent<DropdownMenuSubContentProps & React$1.RefAttributes<HTMLDivElement>>;
1048
+ interface DropdownMenuContentProps extends React$1.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Content> {
1049
+ /**
1050
+ * What the menu surface is *made of*. `solid` (default) is `bg-popover`.
1051
+ * `translucent` matches Apple HIG / iOS menu sheets. `glass` for menus
1052
+ * floating over rich canvases. See dropdown-menu.md.
1053
+ */
1054
+ surface?: Surface;
1055
+ }
1056
+ declare const DropdownMenuContent: React$1.ForwardRefExoticComponent<DropdownMenuContentProps & React$1.RefAttributes<HTMLDivElement>>;
754
1057
  declare const DropdownMenuItem: React$1.ForwardRefExoticComponent<Omit<DropdownMenuPrimitive.DropdownMenuItemProps & React$1.RefAttributes<HTMLDivElement>, "ref"> & {
755
1058
  inset?: boolean;
756
1059
  } & React$1.RefAttributes<HTMLDivElement>>;
@@ -791,7 +1094,15 @@ declare const Label: React$1.ForwardRefExoticComponent<Omit<LabelPrimitive.Label
791
1094
  declare const Popover: React$1.FC<PopoverPrimitive.PopoverProps>;
792
1095
  declare const PopoverTrigger: React$1.ForwardRefExoticComponent<PopoverPrimitive.PopoverTriggerProps & React$1.RefAttributes<HTMLButtonElement>>;
793
1096
  declare const PopoverAnchor: React$1.ForwardRefExoticComponent<PopoverPrimitive.PopoverAnchorProps & React$1.RefAttributes<HTMLDivElement>>;
794
- declare const PopoverContent: React$1.ForwardRefExoticComponent<Omit<PopoverPrimitive.PopoverContentProps & React$1.RefAttributes<HTMLDivElement>, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
1097
+ interface PopoverContentProps extends React$1.ComponentPropsWithoutRef<typeof PopoverPrimitive.Content> {
1098
+ /**
1099
+ * What the popover surface is *made of*. Defaults to `solid`
1100
+ * (`bg-popover`). `translucent` is the Apple HIG menu-sheet feel.
1101
+ * `glass` for floating panels over rich canvases.
1102
+ */
1103
+ surface?: Surface;
1104
+ }
1105
+ declare const PopoverContent: React$1.ForwardRefExoticComponent<PopoverContentProps & React$1.RefAttributes<HTMLDivElement>>;
795
1106
 
796
1107
  declare const Progress: React$1.ForwardRefExoticComponent<Omit<ProgressPrimitive.ProgressProps & React$1.RefAttributes<HTMLDivElement>, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
797
1108
 
@@ -921,7 +1232,7 @@ declare const RadioGroupItem: React$1.ForwardRefExoticComponent<Omit<RadioGroupP
921
1232
  * </ResizablePanelGroup>
922
1233
  */
923
1234
  declare const ResizablePanelGroup: ({ className, ...props }: React$1.ComponentProps<typeof ResizablePrimitive.PanelGroup>) => React$1.JSX.Element;
924
- declare const ResizablePanel: React$1.ForwardRefExoticComponent<Omit<React$1.HTMLAttributes<HTMLDivElement | HTMLElement | HTMLObjectElement | HTMLSelectElement | HTMLTextAreaElement | HTMLMapElement | HTMLTitleElement | HTMLButtonElement | HTMLLinkElement | HTMLLabelElement | HTMLStyleElement | HTMLTableColElement | HTMLVideoElement | HTMLAudioElement | HTMLEmbedElement | HTMLSourceElement | 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 | HTMLHtmlElement | HTMLIFrameElement | HTMLLegendElement | HTMLMetaElement | HTMLMeterElement | HTMLOptGroupElement | HTMLOptionElement | HTMLOutputElement | HTMLPreElement | HTMLSlotElement | HTMLScriptElement | HTMLTemplateElement | HTMLTableSectionElement | HTMLTableCellElement | HTMLTimeElement | HTMLTableRowElement | HTMLTrackElement | HTMLTableCaptionElement | HTMLMenuElement | HTMLPictureElement>, "id" | "onResize"> & {
1235
+ declare const ResizablePanel: React$1.ForwardRefExoticComponent<Omit<React$1.HTMLAttributes<HTMLDivElement | HTMLElement | HTMLObjectElement | HTMLSelectElement | HTMLTextAreaElement | HTMLMapElement | HTMLTitleElement | HTMLButtonElement | HTMLLinkElement | HTMLLabelElement | HTMLStyleElement | HTMLSourceElement | HTMLHtmlElement | HTMLTableColElement | HTMLVideoElement | 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 | HTMLOptionElement | HTMLOutputElement | HTMLPreElement | HTMLSlotElement | HTMLScriptElement | HTMLTemplateElement | HTMLTableSectionElement | HTMLTableCellElement | HTMLTimeElement | HTMLTableRowElement | HTMLTrackElement | HTMLTableCaptionElement | HTMLMenuElement | HTMLPictureElement>, "id" | "onResize"> & {
925
1236
  className?: string | undefined;
926
1237
  collapsedSize?: number | undefined;
927
1238
  collapsible?: boolean | undefined;
@@ -962,7 +1273,7 @@ declare const ResizableHandle: ({ withHandle, className, ...props }: React$1.Com
962
1273
  declare const rowVariants: (props?: ({
963
1274
  gap?: "none" | "sm" | "md" | "lg" | "xs" | "xl" | "2xl" | null | undefined;
964
1275
  align?: "start" | "center" | "end" | "stretch" | "baseline" | null | undefined;
965
- justify?: "start" | "center" | "end" | "between" | "around" | "evenly" | null | undefined;
1276
+ justify?: "start" | "center" | "between" | "end" | "around" | "evenly" | null | undefined;
966
1277
  wrap?: boolean | null | undefined;
967
1278
  } & class_variance_authority_types.ClassProp) | undefined) => string;
968
1279
  interface RowProps extends React$1.HTMLAttributes<HTMLDivElement>, VariantProps<typeof rowVariants> {
@@ -1032,7 +1343,7 @@ declare const flexVariants: (props?: ({
1032
1343
  direction?: "row" | "col" | "row-reverse" | "col-reverse" | null | undefined;
1033
1344
  gap?: "none" | "sm" | "md" | "lg" | "xs" | "xl" | "2xl" | null | undefined;
1034
1345
  align?: "start" | "center" | "end" | "stretch" | "baseline" | null | undefined;
1035
- justify?: "start" | "center" | "end" | "between" | "around" | "evenly" | null | undefined;
1346
+ justify?: "start" | "center" | "between" | "end" | "around" | "evenly" | null | undefined;
1036
1347
  wrap?: "wrap" | "nowrap" | "wrap-reverse" | null | undefined;
1037
1348
  } & class_variance_authority_types.ClassProp) | undefined) => string;
1038
1349
  interface FlexProps extends React$1.HTMLAttributes<HTMLDivElement>, VariantProps<typeof flexVariants> {
@@ -1081,6 +1392,13 @@ declare const sheetVariants: (props?: ({
1081
1392
  side?: "top" | "right" | "bottom" | "left" | null | undefined;
1082
1393
  } & class_variance_authority_types.ClassProp) | undefined) => string;
1083
1394
  interface SheetContentProps extends React$1.ComponentPropsWithoutRef<typeof DialogPrimitive.Content>, VariantProps<typeof sheetVariants> {
1395
+ /**
1396
+ * What the sheet panel is *made of*. `solid` is the default opaque
1397
+ * `bg-background`. `glass` lets the page show through with a 14px
1398
+ * blur — the canonical "inspector panel" feel. Composes with the
1399
+ * overlay scrim. See sheet.md for scenarios.
1400
+ */
1401
+ surface?: Surface;
1084
1402
  }
1085
1403
  declare const SheetContent: React$1.ForwardRefExoticComponent<SheetContentProps & React$1.RefAttributes<HTMLDivElement>>;
1086
1404
  declare const SheetHeader: {
@@ -1211,7 +1529,7 @@ declare const Sortable: SortableRootComponent;
1211
1529
  declare const stackVariants: (props?: ({
1212
1530
  gap?: "none" | "sm" | "md" | "lg" | "xs" | "xl" | "2xl" | null | undefined;
1213
1531
  align?: "start" | "center" | "end" | "stretch" | null | undefined;
1214
- justify?: "start" | "center" | "end" | "between" | "around" | "evenly" | null | undefined;
1532
+ justify?: "start" | "center" | "between" | "end" | "around" | "evenly" | null | undefined;
1215
1533
  } & class_variance_authority_types.ClassProp) | undefined) => string;
1216
1534
  interface StackProps extends React$1.HTMLAttributes<HTMLDivElement>, VariantProps<typeof stackVariants> {
1217
1535
  /** When true, render as the single child element via Radix Slot — lets
@@ -1432,7 +1750,7 @@ declare const ToggleGroupItem: React$1.ForwardRefExoticComponent<Omit<ToggleGrou
1432
1750
  */
1433
1751
  declare const toolbarVariants: (props?: ({
1434
1752
  position?: "top" | "bottom" | "inline" | null | undefined;
1435
- variant?: "default" | "subtle" | "transparent" | null | undefined;
1753
+ variant?: "default" | "transparent" | "subtle" | null | undefined;
1436
1754
  size?: "sm" | "md" | "lg" | null | undefined;
1437
1755
  sticky?: boolean | null | undefined;
1438
1756
  } & class_variance_authority_types.ClassProp) | undefined) => string;
@@ -2758,4 +3076,4 @@ declare function GradeModeSwitcher({ className, variant }: GradeModeSwitcherProp
2758
3076
  */
2759
3077
  declare function ThemeToggle(): React$1.JSX.Element;
2760
3078
 
2761
- 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, type BaseMediaProps, 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, type ColorIntensity, DatePicker, type DatePickerProps, DateRangePicker, type DateRangePickerProps, 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, 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, RivePlayer, type RivePlayerProps, Row, type RowProps, type SceneContext, type SceneFactory, type SceneHandle, 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, VideoPlayer, type VideoPlayerProps, asideVariants as appShellAsideVariants, footerVariants as appShellFooterVariants, headerVariants as appShellHeaderVariants, mainVariants as appShellMainVariants, navVariants as appShellNavVariants, applyThemeToRoot, badgeVariants, buildFragmentShaderScene, builtInThemes, buttonVariants, calloutVariants, calmInput, cn, defaultPostPreset, defaultThemeId, deleteUserTheme, 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 };
3079
+ 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, 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, DatePicker, type DatePickerProps, DateRangePicker, type DateRangePickerProps, 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, 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, RivePlayer, type RivePlayerProps, Row, type RowProps, type SceneContext, type SceneFactory, type SceneHandle, 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, 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, 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 };