@sableui/react 0.1.1 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (61) hide show
  1. package/CHANGELOG.md +61 -0
  2. package/dist/{_contract-CYScOdf5.d.ts → _contract-o3tUc8Ig.d.ts} +1 -1
  3. package/dist/{chunk-J23ELQQZ.js → chunk-AOWBYEQ6.js} +4177 -1917
  4. package/dist/{chunk-RWP4XBSK.js → chunk-KFZ43RKU.js} +1 -1
  5. package/dist/{chunk-JI7WJP2L.js → chunk-X276MF2W.js} +5 -0
  6. package/dist/foundations/index.js +1 -1
  7. package/dist/index.d.ts +155 -101
  8. package/dist/index.js +582 -2778
  9. package/dist/ios/index.d.ts +6 -1
  10. package/dist/ios/index.js +4 -4
  11. package/dist/ios/preview.js +1 -1
  12. package/dist/ios/styles.css +20 -6
  13. package/dist/patterns/index.js +1683 -469
  14. package/dist/presets/index.d.ts +1 -1
  15. package/dist/presets/index.js +1 -1
  16. package/dist/styles.css +238 -40
  17. package/dist/{theme-provider-BWcizhAt.d.ts → theme-provider-BE-KqUG-.d.ts} +1 -1
  18. package/dist/themes/atelier/atelier.css +3 -0
  19. package/dist/themes/atelier/index.d.ts +1 -1
  20. package/dist/themes/base/base.css +11 -4
  21. package/dist/themes/base/index.d.ts +1 -1
  22. package/dist/themes/ember/ember.css +3 -0
  23. package/dist/themes/ember/index.d.ts +1 -1
  24. package/dist/themes/index.d.ts +2 -2
  25. package/dist/themes/meridian/index.d.ts +1 -1
  26. package/dist/themes/meridian/meridian.css +10 -5
  27. package/dist/themes/poppy/index.d.ts +1 -1
  28. package/dist/themes/poppy/poppy.css +16 -0
  29. package/dist/themes/prism/index.d.ts +1 -1
  30. package/dist/themes/prism/prism.css +4 -1
  31. package/dist/themes/verdant/index.d.ts +1 -1
  32. package/dist/themes/verdant/verdant.css +7 -2
  33. package/llms/components/bubble.md +5 -5
  34. package/llms/components/checkbox-card.md +1 -1
  35. package/llms/components/context-card.md +2 -2
  36. package/llms/components/dialog.md +1 -1
  37. package/llms/components/empty-state.md +4 -4
  38. package/llms/components/entity.md +1 -1
  39. package/llms/components/fieldset.md +1 -1
  40. package/llms/components/kbd.md +18 -6
  41. package/llms/components/pill.md +1 -1
  42. package/llms/components/side-nav.md +1 -1
  43. package/llms/components/skeleton.md +1 -1
  44. package/llms/components/theme-selector.md +1 -1
  45. package/llms/foundations/shape.md +1 -1
  46. package/llms/patterns/auth-page.md +132 -42
  47. package/llms/patterns/brand-landing-page.md +271 -175
  48. package/llms/patterns/chat-panel.md +120 -39
  49. package/llms/patterns/dashboard-page.md +277 -65
  50. package/llms/patterns/feed-page.md +245 -64
  51. package/llms/patterns/landing-page.md +473 -75
  52. package/llms/patterns/list-detail-page.md +385 -68
  53. package/llms/patterns/settings-page.md +279 -67
  54. package/llms/reference/token-intent.md +4 -2
  55. package/llms/reference/utilities.md +20 -5
  56. package/llms-full.txt +2244 -727
  57. package/llms.txt +14 -15
  58. package/package.json +1 -1
  59. package/registry.json +261 -238
  60. package/targets/ios.json +4 -15
  61. package/llms/components/description.md +0 -96
@@ -21,7 +21,7 @@ function Phone({ statusBar = true, systemChrome = true, className, children, ...
21
21
  /* @__PURE__ */ jsx("span", { "aria-hidden": true, className: "absolute -start-[0.6cqi] top-[34%] h-[7%] w-[0.8cqi] rounded-s-full bg-(--phone-band)" }),
22
22
  /* @__PURE__ */ jsx("span", { "aria-hidden": true, className: "absolute -end-[0.6cqi] top-[27%] h-[10.5%] w-[0.8cqi] rounded-e-full bg-(--phone-band)" }),
23
23
  /* @__PURE__ */ jsx("span", { "aria-hidden": true, className: "absolute -end-[0.4cqi] top-[55%] h-[6%] w-[0.6cqi] rounded-e-full bg-(--phone-band)" }),
24
- /* @__PURE__ */ jsx("div", { className: "relative rounded-[18cqi] bg-(--phone-body) p-[3.7cqi] shadow-xl ring-[0.5cqi] ring-(--phone-band) ring-inset", children: /* @__PURE__ */ jsxs("div", { className: "relative aspect-[402/874] overflow-hidden rounded-[14.3cqi] bg-background text-foreground", children: [
24
+ /* @__PURE__ */ jsx("div", { className: "relative rounded-[18cqi] bg-(--phone-body) p-[3.7cqi] shadow-xl ring-[0.5cqi] ring-(--phone-band) ring-inset", children: /* @__PURE__ */ jsxs("div", { className: "relative aspect-[402/874] overflow-hidden rounded-[14.3cqi] bg-background text-foreground [clip-path:inset(0_round_14.3cqi)]", children: [
25
25
  /* @__PURE__ */ jsx("div", { className: cn("h-full overflow-auto overscroll-contain scrollbar-hidden", statusBar && "pt-[14.3cqi]"), children }),
26
26
  statusBar ? /* @__PURE__ */ jsxs(
27
27
  "div",
@@ -16,6 +16,11 @@ var SEMANTIC_TOKENS = [
16
16
  // higher-contrast step. See DESIGN.md / CONTRIBUTING.md → "Theme contract".
17
17
  "border-strong",
18
18
  "input",
19
+ // The resting edge of a control whose outline IS the control — a checkbox,
20
+ // a radio, an off switch track. Unlike `input` (a text field also has a fill
21
+ // and a caret to find it by), nothing else marks these, so WCAG 1.4.11 holds
22
+ // them to 3:1 on every surface. Gated in contrast.ts → NON_TEXT_PAIRS.
23
+ "control-border",
19
24
  "ring",
20
25
  // Actions
21
26
  "primary",
@@ -327,7 +327,7 @@ var shape = {
327
327
  },
328
328
  {
329
329
  rule: "A list of rows inside a rounded popup uses popup-inset on the popup, rounded-popup-item on the rows and popup-bleed on a separator.",
330
- why: "All three derive from the popup's radius: the inset grows to a third of it (never below --spacing(1), so density moves it too), the rows take what is left, and a separator bleeds by exactly the inset. A rounder look gets more room instead of rows that round into pills, and the default ladder still lands on the familiar 4px inset and 8px rows.",
330
+ why: "All three derive from the popup's radius: the inset grows to a third of it (never below --spacing(1), so density moves it too), the rows take what is left after the inset and the 1px border, and a separator bleeds by exactly the inset. A rounder look gets more room instead of rows that round into pills; the default ladder lands on a 4px inset and 7px rows.",
331
331
  enforcedBy: "sable-lint: popup-separator-bleed"
332
332
  },
333
333
  {
package/dist/index.d.ts CHANGED
@@ -1,10 +1,10 @@
1
1
  import { ClassValue } from 'clsx';
2
2
  import { C as ComponentMeta } from './meta-6dUzgC6M.js';
3
3
  export { A as AnatomyMeta, B as BestPracticeMeta, E as ExampleMeta, M as MotionMeta, a as MotionSlot, b as PropMeta, R as RelatedMeta, S as SubcomponentMeta, U as UsageMeta } from './meta-6dUzgC6M.js';
4
- import { T as ThemeManifest, a as ThemeMode$1 } from './_contract-CYScOdf5.js';
5
- export { D as DENSITY_TOKENS, b as DensityToken, M as MOTION_TOKENS, c as MotionToken, R as RADIUS_TOKENS, d as RadiusToken, S as SEMANTIC_TOKENS, e as SemanticToken, f as TYPE_OVERLINE_TOKENS, g as TYPE_REFINEMENT_TOKENS, h as TYPE_SCALE_TOKENS, i as TYPE_UI_TOKENS, j as TypeOverlineToken, k as TypeRefinementToken, l as TypeScaleToken, m as TypeUiToken, W as WORKSPACE_SURFACE_TOKENS, n as WorkspaceSurfaceToken } from './_contract-CYScOdf5.js';
6
- import { T as ThemeId } from './theme-provider-BWcizhAt.js';
7
- export { D as DEFAULT_THEME_ID, S as SABLE_COLOR_STORAGE_KEY, a as SABLE_THEME_ATTRIBUTE, b as SABLE_THEME_STORAGE_KEY, c as SableColorMode, d as SableThemeContextValue, e as SableThemePreference, f as SableThemeProvider, g as SableThemeProviderProps, h as applySableColorMode, i as applySableTheme, k as defaultThemeId, m as getThemeManifest, o as isThemeId, t as themeIds, p as themeManifestById, q as themeManifests, u as useSableTheme } from './theme-provider-BWcizhAt.js';
4
+ import { T as ThemeManifest, a as ThemeMode$1 } from './_contract-o3tUc8Ig.js';
5
+ export { D as DENSITY_TOKENS, b as DensityToken, M as MOTION_TOKENS, c as MotionToken, R as RADIUS_TOKENS, d as RadiusToken, S as SEMANTIC_TOKENS, e as SemanticToken, f as TYPE_OVERLINE_TOKENS, g as TYPE_REFINEMENT_TOKENS, h as TYPE_SCALE_TOKENS, i as TYPE_UI_TOKENS, j as TypeOverlineToken, k as TypeRefinementToken, l as TypeScaleToken, m as TypeUiToken, W as WORKSPACE_SURFACE_TOKENS, n as WorkspaceSurfaceToken } from './_contract-o3tUc8Ig.js';
6
+ import { T as ThemeId } from './theme-provider-BE-KqUG-.js';
7
+ export { D as DEFAULT_THEME_ID, S as SABLE_COLOR_STORAGE_KEY, a as SABLE_THEME_ATTRIBUTE, b as SABLE_THEME_STORAGE_KEY, c as SableColorMode, d as SableThemeContextValue, e as SableThemePreference, f as SableThemeProvider, g as SableThemeProviderProps, h as applySableColorMode, i as applySableTheme, k as defaultThemeId, m as getThemeManifest, o as isThemeId, t as themeIds, p as themeManifestById, q as themeManifests, u as useSableTheme } from './theme-provider-BE-KqUG-.js';
8
8
  export { AspectBox, AspectBoxProps, Bleed, BleedProps, Breakpoint, Center, CenterProps, Col, ColProps, Columns, ColumnsProps, Grid, GridOverlay, GridOverlayProps, GridProps, Page, PageProps, Region, RegionMax, RegionProps, Responsive, Row, RowProps, SafeArea, SafeAreaProps, Spacer, SpacerProps, SplitPane, SplitPaneProps, Stack, StackProps } from './layout/index.js';
9
9
  export { Icon, IconContextValue, IconProps, IconProvider, IconProviderProps, composeIconSets, useIconSet } from './icon/index.js';
10
10
  export { reiconIconSet as fallbackIconSet, reiconIconNames, reiconIconSet } from './icon-sets/reicon.js';
@@ -468,6 +468,18 @@ declare function CardContent({ className, flush, ...props }: CardContentProps):
468
468
  * </Card>
469
469
  */
470
470
  declare function CardList({ className, ...props }: ComponentPropsWithRef<"div">): react.JSX.Element;
471
+ /**
472
+ * The card's closing band. Its top padding is zero because the part above
473
+ * normally owns the seam (CardContent's own bottom padding) — so the two cases
474
+ * where nothing above does are handled here:
475
+ *
476
+ * - straight after a CardHeader (no content between), it takes the card
477
+ * padding, or the actions sat right on the title;
478
+ * - after an edge-to-edge part (a flush CardContent, a CardList), whose last
479
+ * row runs to the card's edges, it takes the padding AND a hairline — the
480
+ * mirror of the hairline CardList draws under a CardHeader. Without it the
481
+ * footer read as one more row of the table or list above it.
482
+ */
471
483
  declare function CardFooter({ className, ...props }: ComponentPropsWithRef<"div">): react.JSX.Element;
472
484
 
473
485
  declare const cardMeta: ComponentMeta;
@@ -616,10 +628,10 @@ type TitleProps$3 = Omit<ComponentProps<typeof Dialog$1.Title>, "className"> & {
616
628
  className?: string;
617
629
  };
618
630
  declare function DialogTitle({ className, ...props }: TitleProps$3): react.JSX.Element;
619
- type DescriptionProps$4 = Omit<ComponentProps<typeof Dialog$1.Description>, "className"> & {
631
+ type DescriptionProps$3 = Omit<ComponentProps<typeof Dialog$1.Description>, "className"> & {
620
632
  className?: string;
621
633
  };
622
- declare function DialogDescription({ className, ...props }: DescriptionProps$4): react.JSX.Element;
634
+ declare function DialogDescription({ className, ...props }: DescriptionProps$3): react.JSX.Element;
623
635
  declare function DialogHeader({ className, ...props }: ComponentProps<"div">): react.JSX.Element;
624
636
  declare function DialogFooter({ className, ...props }: ComponentProps<"div">): react.JSX.Element;
625
637
  /**
@@ -680,6 +692,36 @@ declare namespace Separator {
680
692
 
681
693
  declare const separatorMeta: ComponentMeta;
682
694
 
695
+ /**
696
+ * The iOS 16px rule, and why these three fields carry a second type tier.
697
+ *
698
+ * Mobile Safari zooms the whole page when a text field is focused whose
699
+ * COMPUTED font-size is under 16px, and it does not zoom back out. The page
700
+ * register's body tier is `text-body-md` = 0.9375rem = **15px** at a 16px root,
701
+ * so focusing any Sable Input/Textarea on an iPhone shifted the layout — with
702
+ * nothing in the package handling it. (`--control-*` cannot help: the trigger
703
+ * is font-size, not box height.)
704
+ *
705
+ * The fix stays inside the tier system, because rule #2 forbids hand-setting a
706
+ * font-size next to a paired utility: below `sm` the field renders the next
707
+ * paired tier UP — `text-body-lg`, 1.0625rem = 17px, which is also iOS's own
708
+ * field size — and the designed tier takes over from `sm`. Written as
709
+ * `max-sm:` rather than `sm:` on purpose: only the mobile arm is a variant, so
710
+ * a consumer's own unprefixed `text-*` on `className` still wins at every width
711
+ * it used to.
712
+ *
713
+ * Do NOT collapse this to one tier and do NOT swap it for a raw `text-base`.
714
+ *
715
+ * Compact (workspace) register is deliberately excluded: styles.css clamps
716
+ * every page tier to `min(page, --type-ui-*)` inside `[data-density="compact"]`,
717
+ * so the bump literally cannot land there — it would only trade the tier's 500
718
+ * weight for 400 while staying 12px. A tool panel on an iPhone is a register
719
+ * mismatch, not a type bug.
720
+ *
721
+ * Every text-entry field (and SelectTrigger / DatePicker, which stand in the
722
+ * same row) wears it via lib/field-shell; this is where the reasoning is
723
+ * written down.
724
+ */
683
725
  interface InputProps$1 extends Omit<ComponentPropsWithRef<"input">, "size"> {
684
726
  /**
685
727
  * The control ladder, matching Select and Combobox: `md` is the form field;
@@ -1124,6 +1166,8 @@ declare const tooltipMeta: ComponentMeta;
1124
1166
  * Avatar root — a circular, fixed-size frame that clips its image. The only axis
1125
1167
  * is `size`, which sets the square footprint; the image and fallback inherit it.
1126
1168
  * `bg-muted` is the resting surface shown behind a loading or missing image.
1169
+ * Each size also sets the label tier its initials (and a group's "+N") take,
1170
+ * so the initials grow with the circle instead of one 12px label in all three.
1127
1171
  */
1128
1172
  declare const avatarVariants: (props?: ({
1129
1173
  size?: "sm" | "md" | "lg" | null | undefined;
@@ -1266,8 +1310,8 @@ declare namespace AvatarGroup {
1266
1310
  declare const avatarMeta: ComponentMeta;
1267
1311
 
1268
1312
  /**
1269
- * Skeleton — a loading placeholder. A muted block with a shimmer sweep that stands in for
1270
- * content while it loads. Style the shape with utilities on the caller side:
1313
+ * Skeleton — a loading placeholder. A muted block that stands in for content while it
1314
+ * loads, with a sheen that passes through every skeleton on screen as one eased wave. Style the shape with utilities on the caller side:
1271
1315
  *
1272
1316
  * <Skeleton className="h-4 w-40" /> // a text line
1273
1317
  * <Skeleton className="size-10 rounded-full" /> // a circular avatar
@@ -2127,11 +2171,11 @@ type TitleProps$2 = Omit<ComponentProps<typeof Popover$1.Title>, "className"> &
2127
2171
  };
2128
2172
  /** Accessible heading that labels the popover (Base UI wires aria-labelledby). */
2129
2173
  declare function PopoverTitle({ className, ...props }: TitleProps$2): react.JSX.Element;
2130
- type DescriptionProps$3 = Omit<ComponentProps<typeof Popover$1.Description>, "className"> & {
2174
+ type DescriptionProps$2 = Omit<ComponentProps<typeof Popover$1.Description>, "className"> & {
2131
2175
  className?: string;
2132
2176
  };
2133
2177
  /** Supplementary copy below the title (Base UI wires aria-describedby). */
2134
- declare function PopoverDescription({ className, ...props }: DescriptionProps$3): react.JSX.Element;
2178
+ declare function PopoverDescription({ className, ...props }: DescriptionProps$2): react.JSX.Element;
2135
2179
  type ArrowProps$1 = Omit<ComponentProps<typeof Popover$1.Arrow>, "className"> & {
2136
2180
  className?: string;
2137
2181
  };
@@ -2319,10 +2363,10 @@ type TitleProps$1 = Omit<ComponentProps<typeof Drawer.Title>, "className"> & {
2319
2363
  className?: string;
2320
2364
  };
2321
2365
  declare function SheetTitle({ className, ...props }: TitleProps$1): react.JSX.Element;
2322
- type DescriptionProps$2 = Omit<ComponentProps<typeof Drawer.Description>, "className"> & {
2366
+ type DescriptionProps$1 = Omit<ComponentProps<typeof Drawer.Description>, "className"> & {
2323
2367
  className?: string;
2324
2368
  };
2325
- declare function SheetDescription({ className, ...props }: DescriptionProps$2): react.JSX.Element;
2369
+ declare function SheetDescription({ className, ...props }: DescriptionProps$1): react.JSX.Element;
2326
2370
  /** Stacked title + description block, pinned to the top of the sheet. */
2327
2371
  declare function SheetHeader({ className, ...props }: ComponentProps<"div">): react.JSX.Element;
2328
2372
  /** Action row, pushed to the bottom edge of the sheet via mt-auto. */
@@ -2356,17 +2400,32 @@ declare function TableRow({ className, ...props }: ComponentPropsWithRef<"tr">):
2356
2400
  declare namespace TableRow {
2357
2401
  var displayName: string;
2358
2402
  }
2403
+ interface TableHeadProps extends ComponentPropsWithRef<"th"> {
2404
+ /** A numeric column — end-aligned, tabular figures. Set it on the column's cells too. */
2405
+ numeric?: boolean;
2406
+ }
2359
2407
  /** A column header cell. */
2360
- declare function TableHead({ className, ...props }: ComponentPropsWithRef<"th">): react.JSX.Element;
2408
+ declare function TableHead({ className, numeric, ...props }: TableHeadProps): react.JSX.Element;
2361
2409
  declare namespace TableHead {
2362
2410
  var displayName: string;
2363
2411
  }
2412
+ interface TableCellProps extends ComponentPropsWithRef<"td"> {
2413
+ /** A numeric cell — end-aligned, tabular figures. Match the column's header. */
2414
+ numeric?: boolean;
2415
+ }
2364
2416
  /** A body cell. */
2365
- declare function TableCell({ className, ...props }: ComponentPropsWithRef<"td">): react.JSX.Element;
2417
+ declare function TableCell({ className, numeric, ...props }: TableCellProps): react.JSX.Element;
2366
2418
  declare namespace TableCell {
2367
2419
  var displayName: string;
2368
2420
  }
2369
- /** A bottom caption describing the table. */
2421
+ /**
2422
+ * A bottom caption describing the table. It is the table's last band, so it is
2423
+ * built like one: a hairline above it closes off the last row (TableBody drops
2424
+ * that row's own border), it sits on the cells' text edge (`--table-edge-px`,
2425
+ * so it lines up inside a flush Card too), and it has room below it rather
2426
+ * than touching whatever contains the table. Start-aligned, not the browser's
2427
+ * centred default — it reads with the cells, not as a title under them.
2428
+ */
2370
2429
  declare function TableCaption({ className, ...props }: ComponentPropsWithRef<"caption">): react.JSX.Element;
2371
2430
  declare namespace TableCaption {
2372
2431
  var displayName: string;
@@ -2449,9 +2508,11 @@ declare const dataTableMeta: ComponentMeta;
2449
2508
  * `selected` (the reader's own choice) takes a primary tint and a soft
2450
2509
  * primary edge — distinct from rest without a heavy dark outline.
2451
2510
  *
2452
- * `size="sm"` sits on the density ladder's xs control height and drops the
2453
- * optical label nudge, which a fixed-height chip centred with `items-center`
2454
- * does not need. Semantic tokens only — theme-safe in light and dark.
2511
+ * Both sizes are fixed heights, md the larger: md sits on the density ladder's
2512
+ * xs control height (28px), sm is 24px — the touch-target floor. md used to be
2513
+ * padding-sized (~18px) while sm was 28px, so the "small" chip was the taller
2514
+ * one. A fixed-height chip centred with `items-center` needs no optical nudge,
2515
+ * so both drop it. Semantic tokens only — theme-safe in light and dark.
2455
2516
  */
2456
2517
  declare const pillVariants: (props?: ({
2457
2518
  appearance?: "outline" | "solid" | null | undefined;
@@ -2749,6 +2810,10 @@ type ViewportProps = Omit<ComponentProps<typeof Toast.Viewport>, "className"> &
2749
2810
  * is irrelevant since it's screen-anchored. Pointer events pass through the gaps
2750
2811
  * so the page stays interactive around the toasts. `position` picks the anchor;
2751
2812
  * `className` merges last for safe-area or offset tweaks.
2813
+ *
2814
+ * Portaled to `<body>`: rendered in place, `fixed` resolved against any ancestor
2815
+ * with a transform, translate, filter or contain (a route's enter animation is
2816
+ * enough), so the stack landed in the content column instead of the screen corner.
2752
2817
  */
2753
2818
  declare function ToastViewport({ className, position, ...props }: ViewportProps): react.JSX.Element;
2754
2819
  type RootProps$1 = Omit<ComponentProps<typeof Toast.Root>, "className"> & {
@@ -2765,11 +2830,11 @@ type TitleProps = Omit<ComponentProps<typeof Toast.Title>, "className"> & {
2765
2830
  };
2766
2831
  /** The toast headline. Auto-associated as the toast's accessible name. */
2767
2832
  declare function ToastTitle({ className, ...props }: TitleProps): react.JSX.Element;
2768
- type DescriptionProps$1 = Omit<ComponentProps<typeof Toast.Description>, "className"> & {
2833
+ type DescriptionProps = Omit<ComponentProps<typeof Toast.Description>, "className"> & {
2769
2834
  className?: string;
2770
2835
  };
2771
2836
  /** Supporting body copy beneath the title. */
2772
- declare function ToastDescription({ className, ...props }: DescriptionProps$1): react.JSX.Element;
2837
+ declare function ToastDescription({ className, ...props }: DescriptionProps): react.JSX.Element;
2773
2838
  type CloseProps = Omit<ComponentProps<typeof Toast.Close>, "className"> & {
2774
2839
  className?: string;
2775
2840
  };
@@ -3424,7 +3489,14 @@ declare const paginationMeta: ComponentMeta;
3424
3489
 
3425
3490
  interface CodeProps extends ComponentPropsWithRef<"code"> {
3426
3491
  }
3427
- /** Inline code. A styled `<code>` for code spans inside running text. */
3492
+ /**
3493
+ * Inline code. A styled `<code>` for code spans inside running text.
3494
+ *
3495
+ * Sized from the text it sits in (`0.875em` — a mono face runs large, so a
3496
+ * touch under the surrounding size reads as the same size), not a fixed tier:
3497
+ * the fixed 11px read as fine print inside 15px body copy and went smaller
3498
+ * still in a heading. Padding is in em for the same reason.
3499
+ */
3428
3500
  declare function Code({ className, ...props }: CodeProps): react.JSX.Element;
3429
3501
  declare namespace Code {
3430
3502
  var displayName: string;
@@ -3477,6 +3549,25 @@ declare namespace CodeBlock {
3477
3549
 
3478
3550
  declare const codeBlockMeta: ComponentMeta;
3479
3551
 
3552
+ /**
3553
+ * The cap, sized from the text it sits in rather than fixed: `0.85em` type
3554
+ * (never under 12px) in a box `1.6em` of its own type tall, so the same Kbd
3555
+ * reads right inline in body copy, in a 12px menu row and in a tooltip.
3556
+ *
3557
+ * Sans, not mono: word keys (Esc, Enter, Ctrl) read as labels, and the modifier
3558
+ * symbols (⌘ ⇧ ⌥ ↵) are not in most mono faces — they fell back to a tiny
3559
+ * system glyph. Tabular figures keep number keys on one width.
3560
+ *
3561
+ * `key` is a raised key ON whatever surface it sits on (it takes the surface's
3562
+ * own fill, published as `--sable-surface-bg`), with a heavier bottom edge as
3563
+ * the key's lip — the flat muted chip it replaced barely read in dark mode.
3564
+ * `ghost` drops the cap for places that are already a surface of their own: a
3565
+ * menu row's shortcut column, a tooltip, an inverted chip.
3566
+ */
3567
+ declare const KBD_VARIANTS: {
3568
+ readonly key: "rounded-xs border border-border border-b-border-strong bg-[var(--sable-surface-bg,var(--background))] text-muted-foreground shadow-[0_1px_0_0_var(--border)]";
3569
+ readonly ghost: "text-current opacity-70";
3570
+ };
3480
3571
  interface KbdProps extends ComponentPropsWithRef<"kbd"> {
3481
3572
  /**
3482
3573
  * Render the platform's shortcut modifier instead of children: `⌘` on macOS
@@ -3485,16 +3576,43 @@ interface KbdProps extends ComponentPropsWithRef<"kbd"> {
3485
3576
  */
3486
3577
  mod?: boolean;
3487
3578
  }
3579
+ interface KbdProps extends ComponentPropsWithRef<"kbd"> {
3580
+ /**
3581
+ * Render the platform's shortcut modifier instead of children: `⌘` on macOS
3582
+ * and iOS, `Ctrl` everywhere else. Hardcoding either one shows half your
3583
+ * users the wrong key. @default false
3584
+ */
3585
+ mod?: boolean;
3586
+ /**
3587
+ * `key` draws a raised key cap; `ghost` is the bare label, for a menu row,
3588
+ * tooltip or any surface that is already its own frame. @default "key"
3589
+ */
3590
+ variant?: keyof typeof KBD_VARIANTS;
3591
+ }
3488
3592
  /**
3489
3593
  * A keyboard key indicator. Renders a styled `<kbd>` for a single key cap.
3490
- * `mod` renders the platform's shortcut modifier (⌘ or Ctrl).
3594
+ * `mod` renders the platform's shortcut modifier (⌘ or Ctrl). Show a combo as
3595
+ * one cap per key inside a KbdGroup.
3491
3596
  *
3492
- * <Kbd mod /> <Kbd>K</Kbd>
3597
+ * <KbdGroup><Kbd mod /><Kbd>K</Kbd></KbdGroup>
3493
3598
  */
3494
- declare function Kbd({ mod, className, children, ...props }: KbdProps): react.JSX.Element;
3599
+ declare function Kbd({ mod, variant, className, children, ...props }: KbdProps): react.JSX.Element;
3495
3600
  declare namespace Kbd {
3496
3601
  var displayName: string;
3497
3602
  }
3603
+ interface KbdGroupProps extends ComponentPropsWithRef<"kbd"> {
3604
+ }
3605
+ /**
3606
+ * A shortcut combo: one cap per key, set tight together. A nested `<kbd>` is
3607
+ * the HTML spelling of "this key, then that key", so the combo is announced as
3608
+ * one piece of keyboard input.
3609
+ *
3610
+ * <KbdGroup><Kbd mod /><Kbd>⇧</Kbd><Kbd>P</Kbd></KbdGroup>
3611
+ */
3612
+ declare function KbdGroup({ className, ...props }: KbdGroupProps): react.JSX.Element;
3613
+ declare namespace KbdGroup {
3614
+ var displayName: string;
3615
+ }
3498
3616
 
3499
3617
  declare const kbdMeta: ComponentMeta;
3500
3618
 
@@ -3656,7 +3774,7 @@ declare namespace Banner {
3656
3774
  declare const bannerMeta: ComponentMeta;
3657
3775
 
3658
3776
  interface EmptyStateProps extends Omit<ComponentPropsWithRef<"div">, "title"> {
3659
- /** A glyph in a tinted disc. A destructive state shows a warning by default. */
3777
+ /** A glyph, image or illustration above the title. A destructive state shows a warning by default. */
3660
3778
  icon?: ReactNode;
3661
3779
  title: ReactNode;
3662
3780
  description?: ReactNode;
@@ -3664,7 +3782,7 @@ interface EmptyStateProps extends Omit<ComponentPropsWithRef<"div">, "title"> {
3664
3782
  /** A large figure above the title — an error code like 404. */
3665
3783
  code?: ReactNode;
3666
3784
  /**
3667
- * `destructive` is an error state: a destructive disc, and `role="alert"` so
3785
+ * `destructive` is an error state: a destructive glyph, and `role="alert"` so
3668
3786
  * it is announced. @default "neutral"
3669
3787
  */
3670
3788
  tone?: "neutral" | "destructive";
@@ -3678,7 +3796,7 @@ interface EmptyStateProps extends Omit<ComponentPropsWithRef<"div">, "title"> {
3678
3796
  }
3679
3797
  /**
3680
3798
  * EmptyState — the centred "nothing here / something went wrong" block: an
3681
- * optional disc or code, a title, a description and an action. One component
3799
+ * optional glyph or code, a title, a description and an action. One component
3682
3800
  * for empty lists, page-level errors (`tone="destructive"`, `code`, `size="lg"`)
3683
3801
  * and error cards (`surface="card"`); it used to be three — EmptyState,
3684
3802
  * ErrorState and ErrorCard — whose titles, widths and spacing had drifted.
@@ -4626,71 +4744,6 @@ declare namespace PageHeader {
4626
4744
 
4627
4745
  declare const pageHeaderMeta: ComponentMeta;
4628
4746
 
4629
- /**
4630
- * The definition-list container. A single-column grid by default; `cols="2"`
4631
- * lays term/detail pairs two-wide when the list is at least @md wide (a container query) for compact metadata blocks.
4632
- * Semantic tokens only — no palette references.
4633
- */
4634
- declare const descriptionVariants: (props?: ({
4635
- cols?: "1" | "2" | null | undefined;
4636
- } & class_variance_authority_types.ClassProp) | undefined) => string;
4637
- /**
4638
- * The detail (value) tone. `default` is the plain foreground value; the semantic
4639
- * tones color a status value (e.g. "Ended" muted, "Active" success) without an
4640
- * inline conditional palette class. Semantic tokens only.
4641
- */
4642
- declare const detailToneVariants: (props?: ({
4643
- tone?: "muted" | "destructive" | "success" | "default" | "warning" | null | undefined;
4644
- } & class_variance_authority_types.ClassProp) | undefined) => string;
4645
-
4646
- /** Detail value tone — see `detailToneVariants`. */
4647
- type DescriptionTone = NonNullable<VariantProps<typeof detailToneVariants>["tone"]>;
4648
- interface DescriptionProps extends ComponentPropsWithRef<"dl">, VariantProps<typeof descriptionVariants> {
4649
- }
4650
- /**
4651
- * A labeled key/value list (definition list). Compose with `DescriptionTerm` +
4652
- * `DescriptionDetail`, or use the ergonomic `DescriptionItem` shorthand. The
4653
- * grid aligns terms and details into columns; `cols="2"` packs pairs two-wide once the list's container is wide enough.
4654
- */
4655
- declare function Description({ cols, className, ...props }: DescriptionProps): react.JSX.Element;
4656
- declare namespace Description {
4657
- var displayName: string;
4658
- }
4659
- /** The key. Muted label tier; sits in the first grid column. */
4660
- declare function DescriptionTerm({ className, ...props }: ComponentPropsWithRef<"dt">): react.JSX.Element;
4661
- declare namespace DescriptionTerm {
4662
- var displayName: string;
4663
- }
4664
- interface DescriptionDetailProps extends ComponentPropsWithRef<"dd">, VariantProps<typeof detailToneVariants> {
4665
- }
4666
- /**
4667
- * The value. Body tier on the foreground; sits in the second grid column. Pass a
4668
- * `tone` to color a status value (success/warning/destructive/muted).
4669
- */
4670
- declare function DescriptionDetail({ tone, className, ...props }: DescriptionDetailProps): react.JSX.Element;
4671
- declare namespace DescriptionDetail {
4672
- var displayName: string;
4673
- }
4674
- interface DescriptionItemProps {
4675
- /** The key shown in the term column. */
4676
- term: ReactNode;
4677
- /** The value shown in the detail column. Falls back to `children`. */
4678
- detail?: ReactNode;
4679
- /** Color the detail value to encode a status (success/warning/destructive/muted). */
4680
- tone?: DescriptionTone;
4681
- children?: ReactNode;
4682
- }
4683
- /**
4684
- * Ergonomic shorthand for one term/detail pair — renders a `DescriptionTerm`
4685
- * followed by a `DescriptionDetail`. Pass the value via `detail` or `children`.
4686
- */
4687
- declare function DescriptionItem({ term, detail, tone, children, }: DescriptionItemProps): react.JSX.Element;
4688
- declare namespace DescriptionItem {
4689
- var displayName: string;
4690
- }
4691
-
4692
- declare const descriptionMeta: ComponentMeta;
4693
-
4694
4747
  interface SearchInputProps extends Omit<ComponentPropsWithRef<"input">, "onChange" | "value" | "defaultValue"> {
4695
4748
  /** Controlled value of the search field. */
4696
4749
  value?: string;
@@ -5306,7 +5359,8 @@ interface ShowMoreProps extends ComponentPropsWithRef<"div"> {
5306
5359
  /**
5307
5360
  * ShowMore — a collapsible content region with a bottom fade and a toggle.
5308
5361
  * Clips its children to `collapsedLines` (or `collapsedHeight`) while
5309
- * collapsed, overlays a gradient fade (from-background) so the cut text
5362
+ * collapsed, overlays a gradient fade (from the surface it sits on — the
5363
+ * `--sable-surface-bg` a Card or popover publishes, else the page) so the cut text
5310
5364
  * dissolves, and reveals the full content on toggle. Self-contained state
5311
5365
  * (useState); no Base UI behavior.
5312
5366
  *
@@ -6559,12 +6613,12 @@ interface BubbleProps extends ComponentPropsWithRef<"div"> {
6559
6613
  */
6560
6614
  variant?: "muted" | "primary" | "outline" | "plain";
6561
6615
  /**
6562
- * Which side of the conversation the bubble is on — flattens the corner
6563
- * nearest the speaker. Match it to the enclosing `<Message align>`.
6616
+ * Which side of the conversation the bubble is on — puts the tail on
6617
+ * the speaker's side. Match it to the enclosing `<Message align>`.
6564
6618
  * @default "start"
6565
6619
  */
6566
6620
  align?: "start" | "end";
6567
- /** Flatten the speaker-side corner. Turn it off for a run of grouped messages. @default true */
6621
+ /** Draw the speaker-side tail. Turn it off for a run of grouped messages. @default true */
6568
6622
  tail?: boolean;
6569
6623
  }
6570
6624
  /**
@@ -6591,10 +6645,10 @@ interface BubbleProps extends ComponentPropsWithRef<"div"> {
6591
6645
  *
6592
6646
  * Two judgment calls worth inheriting: the bubble is capped at a readable
6593
6647
  * measure (~42rem) so a wide window does not produce 140-character lines, and
6594
- * the "tail" is a flattened corner rather than a drawn arrow so it survives
6595
- * every theme's radius language without per-theme geometry.
6648
+ * the tail is a small ear off a squared top corner, the same 5px in every
6649
+ * theme's radius language, so the speaker's side always reads.
6596
6650
  */
6597
- declare function Bubble({ variant, align, tail, className, ...props }: BubbleProps): react.JSX.Element;
6651
+ declare function Bubble({ variant, align, tail, className, children, ...props }: BubbleProps): react.JSX.Element;
6598
6652
  declare namespace Bubble {
6599
6653
  var displayName: string;
6600
6654
  }
@@ -7008,6 +7062,6 @@ interface UseCopyResult {
7008
7062
  */
7009
7063
  declare function useCopy(text: string, { timeout }?: UseCopyOptions): UseCopyResult;
7010
7064
 
7011
- declare const SABLE_UI_VERSION: "0.1.1";
7065
+ declare const SABLE_UI_VERSION: "0.2.0";
7012
7066
 
7013
- export { Accordion, AccordionItem, AccordionPanel, AccordionTrigger, AlertDialog, AlertDialogClose, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogOverlay, AlertDialogTitle, AlertDialogTrigger, AppHeader, type AppHeaderProps, AppShell, type AppShellProps, Attachment, type AttachmentProps, Avatar, AvatarFallback, AvatarGroup, AvatarGroupCount, type AvatarGroupCountProps, type AvatarGroupProps, AvatarImage, type AvatarProps, AvatarRoot, BADGE_APPEARANCES, BADGE_TONES, Badge, type BadgeAppearance, type BadgeProps, type BadgeTone, Banner, type BannerProps, BottomNav, BottomNavItem, type BottomNavItemProps, BreadcrumbItem, type BreadcrumbItemProps, BreadcrumbLink, type BreadcrumbLinkProps, BreadcrumbPage, type BreadcrumbPageProps, BreadcrumbSeparator, type BreadcrumbSeparatorProps, Breadcrumbs, type BreadcrumbsProps, Browser, type BrowserProps, Bubble, type BubbleProps, BubbleReaction, type BubbleReactionProps, BubbleReactions, type BubbleReactionsProps, Button, type ButtonProps, COMPONENT_GROUPS, COMPONENT_TAXONOMY, Calendar, type CalendarProps, Card, CardAction, CardContent, type CardContentProps, CardDescription, CardFooter, CardHeader, CardList, type CardProps, CardTitle, Carousel, type CarouselProps, type CarouselSlidesToShow, ChatComposer, type ChatComposerProps, Checkbox, CheckboxCard, type CheckboxCardProps, type CheckboxCardTone, CheckboxGroup, type CheckboxGroupProps, Code, CodeBlock, type CodeBlockProps, CodeHighlightProvider, type CodeHighlighter, type CodeProps, Collapsible, CollapsibleIndicator, CollapsiblePanel, CollapsibleTrigger, ColorField, type ColorFieldProps, Combobox, ComboboxChips, ComboboxClear, ComboboxContent, ComboboxEmpty, ComboboxGroup, ComboboxGroupLabel, ComboboxInput, ComboboxItem, type ComboboxItemGroup, ComboboxItemIndicator, ComboboxList, ComboboxPortal, type ComboboxProps, ComboboxValue, ComboboxVirtualList, type ComboboxVirtualListProps, type CommandFilter, type CommandItem, CommandMenu, CommandMenuGroup, type CommandMenuGroupProps, CommandMenuItem, type CommandMenuItemProps, CommandMenuPanel, type CommandMenuPanelProps, type CommandMenuProps, CommandMenuTrigger, type CommandMenuTriggerProps, type ComponentGroup, type ComponentGuidance, ComponentMeta, type ComponentRegister, ContextCard, ContextCardArrow, ContextCardContent, ContextCardPortal, ContextCardTrigger, ContextMenu, ContextMenuContent, ContextMenuGroup, ContextMenuGroupLabel, ContextMenuItem, ContextMenuPortal, ContextMenuSeparator, ContextMenuTrigger, DataTable, type DataTableColumn, type DataTableProps, DatePicker, type DatePickerProps, Density, DensityProvider, Density as DensityValue, Description, DescriptionDetail, DescriptionItem, type DescriptionItemProps, type DescriptionProps, DescriptionTerm, DestructiveActionModal, type DestructiveActionModalProps, Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, type DialogSize, DialogTitle, DialogTrigger, DotsMenu, type DotsMenuProps, EmptyState, type EmptyStateProps, Entity, type EntityProps, Feedback, type FeedbackData, type FeedbackProps, type FeedbackRating, Field, type FieldProps, Fieldset, FieldsetContent, FieldsetDescription, FieldsetFooter, FieldsetLegend, FileDropzone, type FileDropzoneProps, type FileRejection, type FileRejectionCode, Form, type FormProps, GlidingHighlight, type GlidingHighlightProps, type Hsv, InlineStatus, type InlineStatusProps, type StatusTone as InlineTone, Input, type InputProps$1 as InputProps, Kbd, type KbdProps, Label, type LabelProps$2 as LabelProps, Marker, type MarkerProps, Marquee, type MarqueeProps, Menu, MenuCheckboxItem, MenuContent, MenuGroup, MenuGroupLabel, MenuItem, MenuPortal, MenuRadioGroup, MenuRadioItem, MenuSeparator, MenuSubmenu, MenuSubmenuTrigger, MenuTrigger, Message, type MessageProps, MessageScroller, type MessageScrollerHandle, type MessageScrollerProps, Meter, MeterIndicator, MeterLabel, type MeterSize, type MeterTone, MeterTrack, MeterValue, MiddleTruncate, type MiddleTruncateProps, type MotionPolicy, MotionProvider, type MotionProviderProps, Note, type NoteAction, type NoteProps, NotificationBadge, type NotificationBadgeProps, NumberField, type NumberFieldProps, type OrbMode, type OrbSize, OtpField, type OtpFieldProps, PageHeader, type PageHeaderProps, PageLoader, type PageLoaderProps, Pagination, type PaginationProps, Panel, PanelGroup, PanelResizer, type PanelResizerProps, PanelSection, type PanelWidthBounds, Phone, type PhoneProps, Pill, type PillProps, Popover, PopoverArrow, PopoverClose, PopoverContent, PopoverDescription, PopoverPortal, PopoverTitle, PopoverTrigger, Presence, type PresenceProps, Progress, ProgressIndicator, ProgressLabel, type ProgressSize, ProgressTrack, ProgressValue, PropertyPair, PropertyRow, Radio, RadioCard, type RadioCardProps, type RadioCardTone, RadioGroup, RelativeTime, type RelativeTimeProps, Reveal, type RevealProps, type Rgb, SABLE_UI_VERSION, STATUS_TONES, STATUS_TONE_ICON, type ScrollCommandOptions, Scroller, type ScrollerProps, ScrubField, type ScrubFieldProps, SearchInput, type SearchInputProps, Select, SelectContent, SelectGroup, SelectGroupLabel, SelectItem, SelectPortal, SelectSeparator, SelectTrigger, SelectValue, Separator, type SeparatorProps$3 as SeparatorProps, SettingsMenu, type SettingsMenuProps, SettingsRow, type SettingsRowProps, Sheet, SheetClose, SheetContent, SheetDescription, SheetFooter, SheetHeader, SheetPortal, SheetTitle, SheetTrigger, ShowMore, type ShowMoreProps, SideNav, type SideNavActiveVariant, SideNavGroup, type SideNavGroupProps, SideNavItem, type SideNavItemProps, type SideNavProps, type SideNavSize, Sidebar, SidebarFooter, SidebarHeader, SidebarItem, type SidebarItemProps, SidebarNav, type SidebarProps, SimpleTooltip, Skeleton, Slider, SliderControl, SliderIndicator, SliderRoot, SliderThumb, SliderTrack, SliderValue, Spinner, type SpinnerProps, StatusBar, StatusBarGroup, StatusBarSeparator, StatusDot, type StatusDotProps, type StatusTone, type StepStatus, Stepper, StepperItem, type StepperItemProps, type StepperOrientation, type StepperProps, StreamingText, type StreamingTextProps, Switch, TRANSPARENT, Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableRow, Tabs, TabsPanel as TabsContent, TabsList, TabsPanel, TabsTrigger, TextReveal, type TextRevealProps, Textarea, type TextareaProps, ThemeId, ThemeManifest, ThemeMode$1 as ThemeManifestMode, type ThemeMode, ThemeSelector, type ThemeSelectorProps, ThemeSwitcher, type ThemeSwitcherProps, ThinkingOrb, type ThinkingOrbProps, ToastAction, type ToastApi, ToastClose, ToastDescription, type ToastManagerApi, type ToastOptions, ToastProvider, type ToastProviderProps, ToastRoot, ToastTitle, type ToastType, ToastViewport, Toggle, ToggleGroup, type ToggleGroupAppearance, Toggle as ToggleGroupItem, Toolbar, ToolbarButton, type ToolbarButtonProps, ToolbarGroup, type ToolbarGroupProps, ToolbarInput, type ToolbarInputProps, ToolbarLink, type ToolbarLinkProps, type ToolbarProps, ToolbarSeparator, type ToolbarSeparatorProps, Tooltip, TooltipArrow, TooltipContent, TooltipPortal, TooltipProvider, TooltipTrigger, Tree, TreeAddRow, TreeEmpty, TreeRow, TreeSection, type UseCopyOptions, type UseCopyResult, type UseInViewOptions, type UsePanelWidthOptions, Video, type VideoProps, ViewTransitionName, type ViewTransitionNameProps, Workspace, WorkspaceBar, WorkspaceCanvas, accordionMeta, appHeaderMeta, appShellMeta, attachmentMeta, avatarGroupVariants, avatarMeta, avatarVariants, badgeMeta, badgeVariants, bannerMeta, bannerVariants, bottomNavMeta, breadcrumbsMeta, browserMeta, bubbleMeta, buttonMeta, buttonVariants, calendarMeta, cardMeta, carouselMeta, chatComposerMeta, checkboxCardMeta, checkboxMeta, cn, codeBlockMeta, codeMeta, collapsibleMeta, colorFieldMeta, comboboxMeta, commandMenuMeta, componentGuidance, componentLabel, componentSlug, componentsInGroup, contextCardMeta, contextMenuMeta, dataTableMeta, datePickerMeta, descriptionMeta, descriptionVariants, destructiveActionModalMeta, dialogMeta, dotsMenuMeta, emptyStateMeta, entityMeta, feedbackMeta, fieldsetMeta, fileDropzoneMeta, fileDropzoneVariants, formMeta, formatFileSize, formatHex, glidingHighlightMeta, hsvToRgb, hueColor, inlineStatusMeta, inputMeta, isTransparent, kbdMeta, labelMeta, markerMeta, marqueeMeta, menuMeta, messageMeta, messageScrollerMeta, meterIndicatorVariants, meterMeta, meterTrackVariants, middleTruncateMeta, noteMeta, noteVariants, notificationBadgeMeta, notificationCountVariants, notificationDotVariants, numberFieldMeta, otpFieldMeta, pageHeaderMeta, pageLoaderMeta, paginationMeta, panelGroupMeta, panelSectionMeta, parseHex, phoneMeta, pillMeta, pillVariants, popoverMeta, progressMeta, progressTrackVariants, radioCardMeta, radioMeta, relativeTimeMeta, rgbToHsv, scrollerMeta, scrubFieldMeta, searchInputMeta, selectMeta, separatorMeta, settingsMenuMeta, sheetMeta, sheetVariants, showMoreMeta, sideNavMeta, sidebarMeta, skeletonMeta, sliderMeta, spinnerMeta, startViewTransition, statusBarMeta, statusDotMeta, statusDotVariants, stepperConnectorVariants, stepperIndicatorVariants, stepperMeta, streamingTextMeta, supportsViewTransitions, switchMeta, tableMeta, tabsMeta, textareaMeta, themeSelectorMeta, themeSwitcherMeta, thinkingOrbMeta, toast, toastMeta, toggleMeta, toolbarGroupVariants, toolbarMeta, toolbarSeparatorVariants, toolbarVariants, tooltipMeta, treeIndent, treeMeta, useAnchoredDensity, useComboboxFilteredItems, useCommandMenuShortcut, useCopy, useDensity, useInView, useMotion, usePanelWidth, useReducedMotion, useScrollActivity, useSidebar, useToast, useToastManager, useTypeTier, videoMeta, workspaceMeta };
7067
+ export { Accordion, AccordionItem, AccordionPanel, AccordionTrigger, AlertDialog, AlertDialogClose, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogOverlay, AlertDialogTitle, AlertDialogTrigger, AppHeader, type AppHeaderProps, AppShell, type AppShellProps, Attachment, type AttachmentProps, Avatar, AvatarFallback, AvatarGroup, AvatarGroupCount, type AvatarGroupCountProps, type AvatarGroupProps, AvatarImage, type AvatarProps, AvatarRoot, BADGE_APPEARANCES, BADGE_TONES, Badge, type BadgeAppearance, type BadgeProps, type BadgeTone, Banner, type BannerProps, BottomNav, BottomNavItem, type BottomNavItemProps, BreadcrumbItem, type BreadcrumbItemProps, BreadcrumbLink, type BreadcrumbLinkProps, BreadcrumbPage, type BreadcrumbPageProps, BreadcrumbSeparator, type BreadcrumbSeparatorProps, Breadcrumbs, type BreadcrumbsProps, Browser, type BrowserProps, Bubble, type BubbleProps, BubbleReaction, type BubbleReactionProps, BubbleReactions, type BubbleReactionsProps, Button, type ButtonProps, COMPONENT_GROUPS, COMPONENT_TAXONOMY, Calendar, type CalendarProps, Card, CardAction, CardContent, type CardContentProps, CardDescription, CardFooter, CardHeader, CardList, type CardProps, CardTitle, Carousel, type CarouselProps, type CarouselSlidesToShow, ChatComposer, type ChatComposerProps, Checkbox, CheckboxCard, type CheckboxCardProps, type CheckboxCardTone, CheckboxGroup, type CheckboxGroupProps, Code, CodeBlock, type CodeBlockProps, CodeHighlightProvider, type CodeHighlighter, type CodeProps, Collapsible, CollapsibleIndicator, CollapsiblePanel, CollapsibleTrigger, ColorField, type ColorFieldProps, Combobox, ComboboxChips, ComboboxClear, ComboboxContent, ComboboxEmpty, ComboboxGroup, ComboboxGroupLabel, ComboboxInput, ComboboxItem, type ComboboxItemGroup, ComboboxItemIndicator, ComboboxList, ComboboxPortal, type ComboboxProps, ComboboxValue, ComboboxVirtualList, type ComboboxVirtualListProps, type CommandFilter, type CommandItem, CommandMenu, CommandMenuGroup, type CommandMenuGroupProps, CommandMenuItem, type CommandMenuItemProps, CommandMenuPanel, type CommandMenuPanelProps, type CommandMenuProps, CommandMenuTrigger, type CommandMenuTriggerProps, type ComponentGroup, type ComponentGuidance, ComponentMeta, type ComponentRegister, ContextCard, ContextCardArrow, ContextCardContent, ContextCardPortal, ContextCardTrigger, ContextMenu, ContextMenuContent, ContextMenuGroup, ContextMenuGroupLabel, ContextMenuItem, ContextMenuPortal, ContextMenuSeparator, ContextMenuTrigger, DataTable, type DataTableColumn, type DataTableProps, DatePicker, type DatePickerProps, Density, DensityProvider, Density as DensityValue, DestructiveActionModal, type DestructiveActionModalProps, Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, type DialogSize, DialogTitle, DialogTrigger, DotsMenu, type DotsMenuProps, EmptyState, type EmptyStateProps, Entity, type EntityProps, Feedback, type FeedbackData, type FeedbackProps, type FeedbackRating, Field, type FieldProps, Fieldset, FieldsetContent, FieldsetDescription, FieldsetFooter, FieldsetLegend, FileDropzone, type FileDropzoneProps, type FileRejection, type FileRejectionCode, Form, type FormProps, GlidingHighlight, type GlidingHighlightProps, type Hsv, InlineStatus, type InlineStatusProps, type StatusTone as InlineTone, Input, type InputProps$1 as InputProps, Kbd, KbdGroup, type KbdGroupProps, type KbdProps, Label, type LabelProps$2 as LabelProps, Marker, type MarkerProps, Marquee, type MarqueeProps, Menu, MenuCheckboxItem, MenuContent, MenuGroup, MenuGroupLabel, MenuItem, MenuPortal, MenuRadioGroup, MenuRadioItem, MenuSeparator, MenuSubmenu, MenuSubmenuTrigger, MenuTrigger, Message, type MessageProps, MessageScroller, type MessageScrollerHandle, type MessageScrollerProps, Meter, MeterIndicator, MeterLabel, type MeterSize, type MeterTone, MeterTrack, MeterValue, MiddleTruncate, type MiddleTruncateProps, type MotionPolicy, MotionProvider, type MotionProviderProps, Note, type NoteAction, type NoteProps, NotificationBadge, type NotificationBadgeProps, NumberField, type NumberFieldProps, type OrbMode, type OrbSize, OtpField, type OtpFieldProps, PageHeader, type PageHeaderProps, PageLoader, type PageLoaderProps, Pagination, type PaginationProps, Panel, PanelGroup, PanelResizer, type PanelResizerProps, PanelSection, type PanelWidthBounds, Phone, type PhoneProps, Pill, type PillProps, Popover, PopoverArrow, PopoverClose, PopoverContent, PopoverDescription, PopoverPortal, PopoverTitle, PopoverTrigger, Presence, type PresenceProps, Progress, ProgressIndicator, ProgressLabel, type ProgressSize, ProgressTrack, ProgressValue, PropertyPair, PropertyRow, Radio, RadioCard, type RadioCardProps, type RadioCardTone, RadioGroup, RelativeTime, type RelativeTimeProps, Reveal, type RevealProps, type Rgb, SABLE_UI_VERSION, STATUS_TONES, STATUS_TONE_ICON, type ScrollCommandOptions, Scroller, type ScrollerProps, ScrubField, type ScrubFieldProps, SearchInput, type SearchInputProps, Select, SelectContent, SelectGroup, SelectGroupLabel, SelectItem, SelectPortal, SelectSeparator, SelectTrigger, SelectValue, Separator, type SeparatorProps$3 as SeparatorProps, SettingsMenu, type SettingsMenuProps, SettingsRow, type SettingsRowProps, Sheet, SheetClose, SheetContent, SheetDescription, SheetFooter, SheetHeader, SheetPortal, SheetTitle, SheetTrigger, ShowMore, type ShowMoreProps, SideNav, type SideNavActiveVariant, SideNavGroup, type SideNavGroupProps, SideNavItem, type SideNavItemProps, type SideNavProps, type SideNavSize, Sidebar, SidebarFooter, SidebarHeader, SidebarItem, type SidebarItemProps, SidebarNav, type SidebarProps, SimpleTooltip, Skeleton, Slider, SliderControl, SliderIndicator, SliderRoot, SliderThumb, SliderTrack, SliderValue, Spinner, type SpinnerProps, StatusBar, StatusBarGroup, StatusBarSeparator, StatusDot, type StatusDotProps, type StatusTone, type StepStatus, Stepper, StepperItem, type StepperItemProps, type StepperOrientation, type StepperProps, StreamingText, type StreamingTextProps, Switch, TRANSPARENT, Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableRow, Tabs, TabsPanel as TabsContent, TabsList, TabsPanel, TabsTrigger, TextReveal, type TextRevealProps, Textarea, type TextareaProps, ThemeId, ThemeManifest, ThemeMode$1 as ThemeManifestMode, type ThemeMode, ThemeSelector, type ThemeSelectorProps, ThemeSwitcher, type ThemeSwitcherProps, ThinkingOrb, type ThinkingOrbProps, ToastAction, type ToastApi, ToastClose, ToastDescription, type ToastManagerApi, type ToastOptions, ToastProvider, type ToastProviderProps, ToastRoot, ToastTitle, type ToastType, ToastViewport, Toggle, ToggleGroup, type ToggleGroupAppearance, Toggle as ToggleGroupItem, Toolbar, ToolbarButton, type ToolbarButtonProps, ToolbarGroup, type ToolbarGroupProps, ToolbarInput, type ToolbarInputProps, ToolbarLink, type ToolbarLinkProps, type ToolbarProps, ToolbarSeparator, type ToolbarSeparatorProps, Tooltip, TooltipArrow, TooltipContent, TooltipPortal, TooltipProvider, TooltipTrigger, Tree, TreeAddRow, TreeEmpty, TreeRow, TreeSection, type UseCopyOptions, type UseCopyResult, type UseInViewOptions, type UsePanelWidthOptions, Video, type VideoProps, ViewTransitionName, type ViewTransitionNameProps, Workspace, WorkspaceBar, WorkspaceCanvas, accordionMeta, appHeaderMeta, appShellMeta, attachmentMeta, avatarGroupVariants, avatarMeta, avatarVariants, badgeMeta, badgeVariants, bannerMeta, bannerVariants, bottomNavMeta, breadcrumbsMeta, browserMeta, bubbleMeta, buttonMeta, buttonVariants, calendarMeta, cardMeta, carouselMeta, chatComposerMeta, checkboxCardMeta, checkboxMeta, cn, codeBlockMeta, codeMeta, collapsibleMeta, colorFieldMeta, comboboxMeta, commandMenuMeta, componentGuidance, componentLabel, componentSlug, componentsInGroup, contextCardMeta, contextMenuMeta, dataTableMeta, datePickerMeta, destructiveActionModalMeta, dialogMeta, dotsMenuMeta, emptyStateMeta, entityMeta, feedbackMeta, fieldsetMeta, fileDropzoneMeta, fileDropzoneVariants, formMeta, formatFileSize, formatHex, glidingHighlightMeta, hsvToRgb, hueColor, inlineStatusMeta, inputMeta, isTransparent, kbdMeta, labelMeta, markerMeta, marqueeMeta, menuMeta, messageMeta, messageScrollerMeta, meterIndicatorVariants, meterMeta, meterTrackVariants, middleTruncateMeta, noteMeta, noteVariants, notificationBadgeMeta, notificationCountVariants, notificationDotVariants, numberFieldMeta, otpFieldMeta, pageHeaderMeta, pageLoaderMeta, paginationMeta, panelGroupMeta, panelSectionMeta, parseHex, phoneMeta, pillMeta, pillVariants, popoverMeta, progressMeta, progressTrackVariants, radioCardMeta, radioMeta, relativeTimeMeta, rgbToHsv, scrollerMeta, scrubFieldMeta, searchInputMeta, selectMeta, separatorMeta, settingsMenuMeta, sheetMeta, sheetVariants, showMoreMeta, sideNavMeta, sidebarMeta, skeletonMeta, sliderMeta, spinnerMeta, startViewTransition, statusBarMeta, statusDotMeta, statusDotVariants, stepperConnectorVariants, stepperIndicatorVariants, stepperMeta, streamingTextMeta, supportsViewTransitions, switchMeta, tableMeta, tabsMeta, textareaMeta, themeSelectorMeta, themeSwitcherMeta, thinkingOrbMeta, toast, toastMeta, toggleMeta, toolbarGroupVariants, toolbarMeta, toolbarSeparatorVariants, toolbarVariants, tooltipMeta, treeIndent, treeMeta, useAnchoredDensity, useComboboxFilteredItems, useCommandMenuShortcut, useCopy, useDensity, useInView, useMotion, usePanelWidth, useReducedMotion, useScrollActivity, useSidebar, useToast, useToastManager, useTypeTier, videoMeta, workspaceMeta };