@sableui/react 0.1.1 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (137) hide show
  1. package/AGENTS.md +3 -1
  2. package/CHANGELOG.md +120 -0
  3. package/CONTRIBUTING.md +8 -0
  4. package/README.md +1 -0
  5. package/bin/sable-lint.mjs +0 -0
  6. package/bin/sable.mjs +68 -26
  7. package/dist/{_contract-CYScOdf5.d.ts → _contract-o3tUc8Ig.d.ts} +1 -1
  8. package/dist/blocks/index.d.ts +396 -0
  9. package/dist/blocks/index.js +1997 -0
  10. package/dist/chunk-6LCIBMMG.js +4908 -0
  11. package/dist/{chunk-J23ELQQZ.js → chunk-CKNM7KSB.js} +1664 -4270
  12. package/dist/chunk-K6LII3OE.js +5093 -0
  13. package/dist/{chunk-RWP4XBSK.js → chunk-KFZ43RKU.js} +1 -1
  14. package/dist/{chunk-PAOZBZME.js → chunk-NGBDP3BM.js} +1 -1
  15. package/dist/{chunk-5Z5KLOAU.js → chunk-TH563WLW.js} +14 -1
  16. package/dist/{chunk-JI7WJP2L.js → chunk-X276MF2W.js} +5 -0
  17. package/dist/foundations/index.js +1 -1
  18. package/dist/icon/index.js +2 -2
  19. package/dist/icon-sets/reicon.js +1 -1
  20. package/dist/index.d.ts +624 -133
  21. package/dist/index.js +767 -4964
  22. package/dist/ios/index.d.ts +14 -2
  23. package/dist/ios/index.js +10 -9
  24. package/dist/ios/preview.d.ts +11 -1
  25. package/dist/ios/preview.js +14 -9
  26. package/dist/ios/styles.css +26 -6
  27. package/dist/{meta-6dUzgC6M.d.ts → meta-CcE_SeFu.d.ts} +37 -1
  28. package/dist/patterns/index.d.ts +1 -1
  29. package/dist/patterns/index.js +1684 -471
  30. package/dist/presets/index.d.ts +1 -1
  31. package/dist/presets/index.js +1 -1
  32. package/dist/styles.css +238 -40
  33. package/dist/{theme-provider-BWcizhAt.d.ts → theme-provider-BE-KqUG-.d.ts} +1 -1
  34. package/dist/themes/atelier/atelier.css +3 -0
  35. package/dist/themes/atelier/index.d.ts +1 -1
  36. package/dist/themes/base/base.css +34 -4
  37. package/dist/themes/base/index.d.ts +1 -1
  38. package/dist/themes/ember/ember.css +3 -0
  39. package/dist/themes/ember/index.d.ts +1 -1
  40. package/dist/themes/index.d.ts +2 -2
  41. package/dist/themes/index.js +2 -2
  42. package/dist/themes/meridian/index.d.ts +1 -1
  43. package/dist/themes/meridian/meridian.css +10 -5
  44. package/dist/themes/poppy/index.d.ts +1 -1
  45. package/dist/themes/poppy/poppy.css +16 -0
  46. package/dist/themes/prism/index.d.ts +1 -1
  47. package/dist/themes/prism/prism.css +4 -1
  48. package/dist/themes/verdant/index.d.ts +1 -1
  49. package/dist/themes/verdant/verdant.css +7 -2
  50. package/llms/blocks/api-keys-block.md +79 -0
  51. package/llms/blocks/chat-thread-block.md +51 -0
  52. package/llms/blocks/command-palette-block.md +48 -0
  53. package/llms/blocks/cta-band-block.md +62 -0
  54. package/llms/blocks/danger-zone-block.md +69 -0
  55. package/llms/blocks/device-comparison-block.md +91 -0
  56. package/llms/blocks/event-card-block.md +84 -0
  57. package/llms/blocks/faq-block.md +72 -0
  58. package/llms/blocks/feature-grid-block.md +75 -0
  59. package/llms/blocks/feedback-form-block.md +66 -0
  60. package/llms/blocks/goal-progress-block.md +54 -0
  61. package/llms/blocks/hero-block.md +65 -0
  62. package/llms/blocks/invite-team-block.md +61 -0
  63. package/llms/blocks/invoice-history-block.md +84 -0
  64. package/llms/blocks/kpi-sparkline-block.md +57 -0
  65. package/llms/blocks/media-player-block.md +100 -0
  66. package/llms/blocks/newsletter-block.md +64 -0
  67. package/llms/blocks/not-found-block.md +56 -0
  68. package/llms/blocks/notification-list-block.md +63 -0
  69. package/llms/blocks/notification-settings-block.md +54 -0
  70. package/llms/blocks/order-tracking-block.md +62 -0
  71. package/llms/blocks/pricing-card-block.md +82 -0
  72. package/llms/blocks/pricing-table-block.md +129 -0
  73. package/llms/blocks/product-card-block.md +69 -0
  74. package/llms/blocks/profile-card-block.md +103 -0
  75. package/llms/blocks/profile-form-block.md +114 -0
  76. package/llms/blocks/revenue-breakdown-block.md +70 -0
  77. package/llms/blocks/sign-in-block.md +64 -0
  78. package/llms/blocks/sign-up-block.md +78 -0
  79. package/llms/blocks/site-footer-block.md +96 -0
  80. package/llms/blocks/stat-row-block.md +59 -0
  81. package/llms/blocks/steps-block.md +73 -0
  82. package/llms/blocks/task-list-block.md +81 -0
  83. package/llms/blocks/team-members-block.md +91 -0
  84. package/llms/blocks/testimonial-block.md +78 -0
  85. package/llms/blocks/traffic-sources-block.md +63 -0
  86. package/llms/blocks/traffic-trend-block.md +95 -0
  87. package/llms/blocks/upload-list-block.md +66 -0
  88. package/llms/blocks/verify-code-block.md +59 -0
  89. package/llms/blocks/wallet-block.md +84 -0
  90. package/llms/components/area-chart.md +112 -0
  91. package/llms/components/bar-chart.md +131 -0
  92. package/llms/components/bubble.md +5 -5
  93. package/llms/components/button.md +1 -1
  94. package/llms/components/card.md +2 -2
  95. package/llms/components/checkbox-card.md +1 -1
  96. package/llms/components/context-card.md +2 -2
  97. package/llms/components/context-menu.md +1 -1
  98. package/llms/components/date-tile.md +79 -0
  99. package/llms/components/dialog.md +1 -1
  100. package/llms/components/empty-state.md +4 -4
  101. package/llms/components/entity.md +5 -3
  102. package/llms/components/fieldset.md +1 -1
  103. package/llms/components/kbd.md +18 -6
  104. package/llms/components/line-chart.md +101 -0
  105. package/llms/components/menu.md +1 -1
  106. package/llms/components/{dots-menu.md → overflow-menu.md} +9 -9
  107. package/llms/components/pie-chart.md +103 -0
  108. package/llms/components/pill.md +1 -1
  109. package/llms/components/radar-chart.md +106 -0
  110. package/llms/components/radial-chart.md +102 -0
  111. package/llms/components/segmented-bar.md +102 -0
  112. package/llms/components/settings-menu.md +2 -2
  113. package/llms/components/side-nav.md +1 -1
  114. package/llms/components/skeleton.md +1 -1
  115. package/llms/components/sparkline.md +80 -0
  116. package/llms/components/table.md +1 -1
  117. package/llms/components/theme-selector.md +1 -1
  118. package/llms/foundations/shape.md +1 -1
  119. package/llms/patterns/auth-page.md +132 -42
  120. package/llms/patterns/brand-landing-page.md +271 -175
  121. package/llms/patterns/chat-panel.md +120 -39
  122. package/llms/patterns/dashboard-page.md +276 -65
  123. package/llms/patterns/feed-page.md +245 -64
  124. package/llms/patterns/landing-page.md +473 -75
  125. package/llms/patterns/list-detail-page.md +377 -68
  126. package/llms/patterns/settings-page.md +268 -67
  127. package/llms/reference/token-intent.md +4 -2
  128. package/llms/reference/utilities.md +20 -5
  129. package/llms/tasks/building-an-ios-prototype.md +4 -1
  130. package/llms/tasks/choosing-a-component.md +2 -2
  131. package/llms-full.txt +6428 -892
  132. package/llms.txt +67 -16
  133. package/package.json +5 -1
  134. package/registry.json +3217 -552
  135. package/targets/ios.json +88 -18
  136. package/llms/components/description.md +0 -96
  137. package/dist/{chunk-L6Y46C62.js → chunk-MXJX3NZI.js} +1 -1
package/dist/index.d.ts CHANGED
@@ -1,10 +1,10 @@
1
1
  import { ClassValue } from 'clsx';
2
- import { C as ComponentMeta } from './meta-6dUzgC6M.js';
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';
2
+ import { C as ComponentMeta } from './meta-CcE_SeFu.js';
3
+ export { A as AnatomyMeta, a as BestPracticeMeta, E as ExampleMeta, M as MotionMeta, b as MotionSlot, c as PropMeta, R as RelatedMeta, S as SubcomponentMeta, U as UsageMeta } from './meta-CcE_SeFu.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';
@@ -122,7 +122,7 @@ declare const componentGuidance: Partial<Record<string, ComponentGuidance>>;
122
122
  * reader scanning for "Selection" or "Status" knows where to look without
123
123
  * knowing the system. A test keeps both lists sorted.
124
124
  */
125
- declare const COMPONENT_GROUPS: readonly ["Actions", "Badges & pills", "Chat & AI", "Containers", "Data display", "Forms", "Layout", "Loading & progress", "Media & mockups", "Navigation", "Overlays", "Selection", "Status", "Text & code"];
125
+ declare const COMPONENT_GROUPS: readonly ["Actions", "Badges & pills", "Charts", "Chat & AI", "Containers", "Data display", "Forms", "Layout", "Loading & progress", "Media & mockups", "Navigation", "Overlays", "Selection", "Status", "Text & code"];
126
126
  type ComponentGroup = (typeof COMPONENT_GROUPS)[number];
127
127
  /** Which surface language a component speaks. */
128
128
  type ComponentRegister = "page" | "workspace" | "either";
@@ -423,12 +423,23 @@ declare namespace Card {
423
423
  }
424
424
  declare function CardHeader({ className, ...props }: ComponentPropsWithRef<"div">): react.JSX.Element;
425
425
  /**
426
- * Header-aligned action slot — pins to the top-right of CardHeader (e.g. a
427
- * dots menu, close button, or switch). Place as a child of CardHeader.
426
+ * Header-aligned action slot — pins to the top-right of CardHeader (e.g. an
427
+ * overflow menu, close button, or switch). Place as a child of CardHeader.
428
428
  */
429
429
  declare function CardAction({ className, ...props }: ComponentPropsWithRef<"div">): react.JSX.Element;
430
430
  /** Title tier — a UI primitive title, not a document heading. */
431
- declare function CardTitle({ className, ...props }: ComponentPropsWithRef<"div">): react.JSX.Element;
431
+ interface CardTitleProps extends ComponentPropsWithRef<"div"> {
432
+ /**
433
+ * Render the title as another element — most often a heading, so a card's
434
+ * name joins the page outline: `render={<h2 />}`. The type tier stays.
435
+ */
436
+ render?: useRender.RenderProp;
437
+ }
438
+ /**
439
+ * The card's name. A `<div>` by default, because a card's heading level depends
440
+ * on where the card sits; pass `render={<h2 />}` (or h3…) to make it a heading.
441
+ */
442
+ declare function CardTitle({ className, render, ref, ...props }: CardTitleProps): react.ReactElement<unknown, string | react.JSXElementConstructor<any>>;
432
443
  declare function CardDescription({ className, ...props }: ComponentPropsWithRef<"p">): react.JSX.Element;
433
444
  /**
434
445
  * The body region. Full padding on all sides — CardContent does NOT assume a
@@ -468,6 +479,18 @@ declare function CardContent({ className, flush, ...props }: CardContentProps):
468
479
  * </Card>
469
480
  */
470
481
  declare function CardList({ className, ...props }: ComponentPropsWithRef<"div">): react.JSX.Element;
482
+ /**
483
+ * The card's closing band. Its top padding is zero because the part above
484
+ * normally owns the seam (CardContent's own bottom padding) — so the two cases
485
+ * where nothing above does are handled here:
486
+ *
487
+ * - straight after a CardHeader (no content between), it takes the card
488
+ * padding, or the actions sat right on the title;
489
+ * - after an edge-to-edge part (a flush CardContent, a CardList), whose last
490
+ * row runs to the card's edges, it takes the padding AND a hairline — the
491
+ * mirror of the hairline CardList draws under a CardHeader. Without it the
492
+ * footer read as one more row of the table or list above it.
493
+ */
471
494
  declare function CardFooter({ className, ...props }: ComponentPropsWithRef<"div">): react.JSX.Element;
472
495
 
473
496
  declare const cardMeta: ComponentMeta;
@@ -616,10 +639,10 @@ type TitleProps$3 = Omit<ComponentProps<typeof Dialog$1.Title>, "className"> & {
616
639
  className?: string;
617
640
  };
618
641
  declare function DialogTitle({ className, ...props }: TitleProps$3): react.JSX.Element;
619
- type DescriptionProps$4 = Omit<ComponentProps<typeof Dialog$1.Description>, "className"> & {
642
+ type DescriptionProps$3 = Omit<ComponentProps<typeof Dialog$1.Description>, "className"> & {
620
643
  className?: string;
621
644
  };
622
- declare function DialogDescription({ className, ...props }: DescriptionProps$4): react.JSX.Element;
645
+ declare function DialogDescription({ className, ...props }: DescriptionProps$3): react.JSX.Element;
623
646
  declare function DialogHeader({ className, ...props }: ComponentProps<"div">): react.JSX.Element;
624
647
  declare function DialogFooter({ className, ...props }: ComponentProps<"div">): react.JSX.Element;
625
648
  /**
@@ -680,6 +703,36 @@ declare namespace Separator {
680
703
 
681
704
  declare const separatorMeta: ComponentMeta;
682
705
 
706
+ /**
707
+ * The iOS 16px rule, and why these three fields carry a second type tier.
708
+ *
709
+ * Mobile Safari zooms the whole page when a text field is focused whose
710
+ * COMPUTED font-size is under 16px, and it does not zoom back out. The page
711
+ * register's body tier is `text-body-md` = 0.9375rem = **15px** at a 16px root,
712
+ * so focusing any Sable Input/Textarea on an iPhone shifted the layout — with
713
+ * nothing in the package handling it. (`--control-*` cannot help: the trigger
714
+ * is font-size, not box height.)
715
+ *
716
+ * The fix stays inside the tier system, because rule #2 forbids hand-setting a
717
+ * font-size next to a paired utility: below `sm` the field renders the next
718
+ * paired tier UP — `text-body-lg`, 1.0625rem = 17px, which is also iOS's own
719
+ * field size — and the designed tier takes over from `sm`. Written as
720
+ * `max-sm:` rather than `sm:` on purpose: only the mobile arm is a variant, so
721
+ * a consumer's own unprefixed `text-*` on `className` still wins at every width
722
+ * it used to.
723
+ *
724
+ * Do NOT collapse this to one tier and do NOT swap it for a raw `text-base`.
725
+ *
726
+ * Compact (workspace) register is deliberately excluded: styles.css clamps
727
+ * every page tier to `min(page, --type-ui-*)` inside `[data-density="compact"]`,
728
+ * so the bump literally cannot land there — it would only trade the tier's 500
729
+ * weight for 400 while staying 12px. A tool panel on an iPhone is a register
730
+ * mismatch, not a type bug.
731
+ *
732
+ * Every text-entry field (and SelectTrigger / DatePicker, which stand in the
733
+ * same row) wears it via lib/field-shell; this is where the reasoning is
734
+ * written down.
735
+ */
683
736
  interface InputProps$1 extends Omit<ComponentPropsWithRef<"input">, "size"> {
684
737
  /**
685
738
  * The control ladder, matching Select and Combobox: `md` is the form field;
@@ -1124,6 +1177,8 @@ declare const tooltipMeta: ComponentMeta;
1124
1177
  * Avatar root — a circular, fixed-size frame that clips its image. The only axis
1125
1178
  * is `size`, which sets the square footprint; the image and fallback inherit it.
1126
1179
  * `bg-muted` is the resting surface shown behind a loading or missing image.
1180
+ * Each size also sets the label tier its initials (and a group's "+N") take,
1181
+ * so the initials grow with the circle instead of one 12px label in all three.
1127
1182
  */
1128
1183
  declare const avatarVariants: (props?: ({
1129
1184
  size?: "sm" | "md" | "lg" | null | undefined;
@@ -1142,7 +1197,7 @@ declare const avatarVariants: (props?: ({
1142
1197
  */
1143
1198
  declare const avatarGroupVariants: (props?: ({
1144
1199
  size?: "sm" | "md" | "lg" | null | undefined;
1145
- surface?: "background" | "card" | "popover" | "muted" | null | undefined;
1200
+ surface?: "card" | "background" | "popover" | "muted" | null | undefined;
1146
1201
  } & class_variance_authority_types.ClassProp) | undefined) => string;
1147
1202
 
1148
1203
  /**
@@ -1266,8 +1321,8 @@ declare namespace AvatarGroup {
1266
1321
  declare const avatarMeta: ComponentMeta;
1267
1322
 
1268
1323
  /**
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:
1324
+ * Skeleton — a loading placeholder. A muted block that stands in for content while it
1325
+ * 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
1326
  *
1272
1327
  * <Skeleton className="h-4 w-40" /> // a text line
1273
1328
  * <Skeleton className="size-10 rounded-full" /> // a circular avatar
@@ -1695,6 +1750,416 @@ declare const meterTrackVariants: (props?: ({
1695
1750
 
1696
1751
  declare const meterMeta: ComponentMeta;
1697
1752
 
1753
+ /**
1754
+ * One segment's fill. The decorative tones lead, because a breakdown names
1755
+ * categories (kinds of sale, file types, teams), not good and bad; the status
1756
+ * tones are there for the breakdown that is a judgement (passed / flaky /
1757
+ * failed).
1758
+ */
1759
+ declare const segmentedBarSegmentVariants: (props?: ({
1760
+ tone?: "primary" | "destructive" | "success" | "info" | "warning" | "neutral" | "standard" | "edition" | "collectible" | null | undefined;
1761
+ } & class_variance_authority_types.ClassProp) | undefined) => string;
1762
+ /** Bar thickness — the same three rails as Meter and Progress. */
1763
+ declare const segmentedBarVariants: (props?: ({
1764
+ size?: "sm" | "md" | "lg" | null | undefined;
1765
+ } & class_variance_authority_types.ClassProp) | undefined) => string;
1766
+
1767
+ type SegmentedBarTone = NonNullable<VariantProps<typeof segmentedBarSegmentVariants>["tone"]>;
1768
+ interface SegmentedBarSegment {
1769
+ /** The category's name — read out in the bar's accessible summary. */
1770
+ label: string;
1771
+ /** Its amount, in any unit; segments are sized by their share of the total. */
1772
+ value: number;
1773
+ /** Fill colour. Omitted, segments take the decorative tones in order. */
1774
+ tone?: SegmentedBarTone;
1775
+ }
1776
+ interface SegmentedBarProps extends Omit<ComponentPropsWithRef<"div">, "children" | "aria-label">, VariantProps<typeof segmentedBarVariants> {
1777
+ /** The categories, in the order they should read left to right. */
1778
+ segments: SegmentedBarSegment[];
1779
+ /** What the bar breaks down ("Revenue by type"). Prefixes the spoken summary. */
1780
+ label: string;
1781
+ /** BCP 47 locale for the spoken percentages. Defaults to the runtime's. */
1782
+ locale?: string;
1783
+ }
1784
+ /** The order segments take when they name no tone: the palette's decorative set first. */
1785
+ declare const SEGMENTED_BAR_TONES: readonly SegmentedBarTone[];
1786
+ /**
1787
+ * One bar split into the parts of a whole — revenue by type, storage by kind,
1788
+ * test results by outcome. `Meter` shows one reading against a range; this
1789
+ * shows how a total divides. The legend is yours to compose (a StatusDot, the
1790
+ * label and the share per row), because where it sits — under the bar, beside
1791
+ * it, in a table — depends on the card.
1792
+ *
1793
+ * The bar is one image to assistive tech, named by `label` and every
1794
+ * segment's share ("Revenue by type: Editions 42%, Collectibles 27%, …"), so a
1795
+ * legend that repeats it visually can stay out of the accessible reading.
1796
+ */
1797
+ declare function SegmentedBar({ segments, label, locale, size, className, ...props }: SegmentedBarProps): react.JSX.Element;
1798
+ declare namespace SegmentedBar {
1799
+ var displayName: string;
1800
+ }
1801
+
1802
+ declare const segmentedBarMeta: ComponentMeta;
1803
+
1804
+ /**
1805
+ * How a line runs between its points. `smooth` is monotone — it never
1806
+ * overshoots a value the data does not contain, so a peak is drawn where it
1807
+ * is; `step` holds each value to the midpoint between categories.
1808
+ */
1809
+ type ChartCurve = "smooth" | "linear" | "step";
1810
+
1811
+ /**
1812
+ * A series colour by role. The decorative tones lead — a chart names
1813
+ * categories (desktop / mobile, editions / collectibles), not good and bad —
1814
+ * and they follow the active theme and Customize → Color → Palette. The
1815
+ * status tones are for a series that IS a judgement (errors, warnings).
1816
+ */
1817
+ type ChartTone = "edition" | "collectible" | "standard" | "info" | "warning" | "primary" | "neutral" | "success" | "destructive";
1818
+ /** How many series colours the palette holds (--chart-1 … --chart-8). */
1819
+ declare const CHART_SERIES_COUNT = 8;
1820
+ /**
1821
+ * The colour of series `index` when it names none: the theme's chart palette,
1822
+ * in order. The palette (`--chart-1` … `--chart-8`, defined by the Base theme
1823
+ * and inherited by every other) is validated for colour-blind separation of
1824
+ * neighbours, a normal-vision floor, a lightness band and a chroma floor, in
1825
+ * light and dark. Past eight series, fold the rest into "Other".
1826
+ *
1827
+ * Also the bridge for a charting library: pass `chartColor(0)` and on to
1828
+ * Recharts or visx and their marks follow the theme too.
1829
+ */
1830
+ declare function chartColor(index: number): string;
1831
+ /**
1832
+ * The CSS colour for a tone as a chart fill — for a series that names its role
1833
+ * (`tone: "success"`), not for default series (see chartColor). Tones are
1834
+ * tuned to be legible as TEXT (dark, restrained); a plotted mark keeps the hue
1835
+ * but is lifted into the chart lightness band with a chroma floor, so a quiet
1836
+ * tone (a slate "standard") still reads as colour rather than grey.
1837
+ */
1838
+ declare function toneColor(tone: ChartTone): string;
1839
+ /** One plotted measure: which field of each datum, what to call it, how to colour it. */
1840
+ interface ChartSeries {
1841
+ /** The datum field holding this series' numbers. */
1842
+ key: string;
1843
+ /** Its name in the legend, tooltip and data table. */
1844
+ label: string;
1845
+ /** Colour by role (a status series: `success`, `destructive`). Omitted, series take the chart palette in order. */
1846
+ tone?: ChartTone;
1847
+ /** A CSS colour that overrides `tone` — a token reference keeps it themeable. */
1848
+ color?: string;
1849
+ /** A Sable icon name shown in the legend and tooltip instead of the swatch. */
1850
+ icon?: string;
1851
+ }
1852
+ /** One row of chart data: the category under `index`, numbers under each series key. */
1853
+ type ChartDatum = Record<string, unknown>;
1854
+ /**
1855
+ * Per-category styling for charts whose marks ARE categories (pie slices,
1856
+ * radial rings): keyed by the category's value in the data.
1857
+ */
1858
+ type ChartCategories = Record<string, {
1859
+ label?: string;
1860
+ tone?: ChartTone;
1861
+ color?: string;
1862
+ icon?: string;
1863
+ }>;
1864
+ /** A big number with a caption in the middle of a donut or radial chart. */
1865
+ interface ChartCenterLabel {
1866
+ value: string;
1867
+ label?: string;
1868
+ }
1869
+ /** How the tooltip marks each row. */
1870
+ type ChartTooltipIndicator = "dot" | "line" | "dashed" | "none";
1871
+ interface ChartTooltipOptions {
1872
+ /** Each row's marker. @default "dot" */
1873
+ indicator?: ChartTooltipIndicator;
1874
+ /** Drop the category heading — for a single series, where the value says enough. */
1875
+ hideLabel?: boolean;
1876
+ /** Rewrite the heading, e.g. a date key into "Tuesday, Oct 14". */
1877
+ labelFormatter?: (label: string, datum: ChartDatum) => ReactNode;
1878
+ /** Add a Total row summing every series at that category. */
1879
+ showTotal?: boolean;
1880
+ }
1881
+ /** A number as it should read on the axis (compact) and in the tooltip (full). */
1882
+ type ChartValueFormatter = (value: number) => string;
1883
+
1884
+ /** Props every cartesian chart (area, bar, line) shares. */
1885
+ interface CartesianBaseProps {
1886
+ /** The rows to plot, in order along the category axis. */
1887
+ data: ChartDatum[];
1888
+ /** The datum field naming each row's category (a month, a day, a channel). */
1889
+ index: string;
1890
+ /** The measures to plot, with labels and colours. */
1891
+ series: ChartSeries[];
1892
+ /** What the chart shows — its accessible name and the data table's caption. */
1893
+ label: string;
1894
+ className?: string;
1895
+ /** Format values on the axis, in labels, the tooltip and the data table. Default: compact on the axis, full elsewhere. */
1896
+ valueFormatter?: ChartValueFormatter;
1897
+ /** Format category labels on the axis ("January" → "Jan"). The tooltip keeps the full value. */
1898
+ indexFormatter?: (value: string) => string;
1899
+ /** BCP 47 locale for default number and date formatting. */
1900
+ locale?: string;
1901
+ /** Show a tooltip on hover and keyboard focus, or pass options. @default true */
1902
+ tooltip?: boolean | ChartTooltipOptions;
1903
+ /** Show the legend. @default true when there is more than one series */
1904
+ legend?: boolean;
1905
+ /** Hairline gridlines along the value axis. @default true (false for horizontal bars) */
1906
+ grid?: boolean;
1907
+ /** The horizontal axis. @default true for categories (columns), false for values (horizontal bars) */
1908
+ xAxis?: boolean;
1909
+ /** The vertical axis. @default false for values (columns), true for categories (horizontal bars) */
1910
+ yAxis?: boolean;
1911
+ /** Play the arrival when the chart scrolls into view. @default true */
1912
+ animate?: boolean;
1913
+ /** The highlighted row (controlled). `null` for none. */
1914
+ activeIndex?: number | null;
1915
+ /** The row highlighted at first — a tooltip that is open before anyone hovers. */
1916
+ defaultActiveIndex?: number | null;
1917
+ onActiveIndexChange?: (index: number | null) => void;
1918
+ }
1919
+
1920
+ interface AreaChartProps extends CartesianBaseProps {
1921
+ /** How the line runs between points. `smooth` never overshoots the data. @default "smooth" */
1922
+ curve?: ChartCurve;
1923
+ /** Stack the series on each other, or `"expand"` to show each category as 100%. @default false */
1924
+ stacked?: boolean | "expand";
1925
+ /** Fill each area with a fade from its colour to transparent instead of a flat tint. @default false */
1926
+ gradient?: boolean;
1927
+ }
1928
+ /**
1929
+ * A trend over a sequence (days, months), filled to the baseline — volume over
1930
+ * time at a glance. Series overlap as translucent tints, or stack to show a
1931
+ * total and its parts. The line draws on and the fill rises when the chart
1932
+ * scrolls into view; changing data eases the shape from old to new.
1933
+ */
1934
+ declare function AreaChart(props: AreaChartProps): react.JSX.Element;
1935
+ declare namespace AreaChart {
1936
+ var displayName: string;
1937
+ }
1938
+
1939
+ declare const areaChartMeta: ComponentMeta;
1940
+
1941
+ interface BarChartProps extends CartesianBaseProps {
1942
+ /** `vertical` columns rise from the bottom; `horizontal` bars run from the left, for long category names. @default "vertical" */
1943
+ orientation?: "vertical" | "horizontal";
1944
+ /** Stack the series in one bar, or `"expand"` to show each category as 100%. Unstacked series sit side by side. @default false */
1945
+ stacked?: boolean | "expand";
1946
+ /** Print each bar's value at its end, or (`"inside"`, horizontal) the category inside the bar too. @default false */
1947
+ labels?: boolean | "inside";
1948
+ /** Colour by series, or give each category its own tone (one series). @default "series" */
1949
+ colorBy?: "series" | "index";
1950
+ /** Colour negative values with this tone, so losses read apart from gains. */
1951
+ negativeTone?: ChartTone;
1952
+ /** Corner radius of each bar's far end, in px. Stacks round only the outer segment. @default 4 */
1953
+ radius?: number;
1954
+ /** Maximum thickness of a bar, in px — the band's leftover is air, not a fatter bar. Raise it for a bolder, presentation look. @default 24 */
1955
+ barWidth?: number;
1956
+ }
1957
+ /**
1958
+ * Bars comparing amounts across categories — the default chart for "how much
1959
+ * of each". Grouped, stacked, 100% stacked, horizontal, labelled or diverging
1960
+ * around zero. Bars rise from the baseline in sequence as the chart scrolls
1961
+ * into view; changing data eases each bar to its new length.
1962
+ */
1963
+ declare function BarChart(props: BarChartProps): react.JSX.Element;
1964
+ declare namespace BarChart {
1965
+ var displayName: string;
1966
+ }
1967
+
1968
+ declare const barChartMeta: ComponentMeta;
1969
+
1970
+ interface LineChartProps extends CartesianBaseProps {
1971
+ /** How the line runs between points. `smooth` never overshoots the data. @default "smooth" */
1972
+ curve?: ChartCurve;
1973
+ /** Mark every data point with a dot. @default false */
1974
+ dots?: boolean;
1975
+ /** Colour the dots by series, or each by its category. @default "series" */
1976
+ colorBy?: "series" | "index";
1977
+ /** Print each point's value above it. @default false */
1978
+ labels?: boolean;
1979
+ }
1980
+ /**
1981
+ * Lines over a sequence — for comparing how two or more measures move, where
1982
+ * fills would pile up. Lines draw on as the chart scrolls into view; changing
1983
+ * data eases each line from old to new.
1984
+ */
1985
+ declare function LineChart(props: LineChartProps): react.JSX.Element;
1986
+ declare namespace LineChart {
1987
+ var displayName: string;
1988
+ }
1989
+
1990
+ declare const lineChartMeta: ComponentMeta;
1991
+
1992
+ interface PieChartProps {
1993
+ /** One row per slice. */
1994
+ data: ChartDatum[];
1995
+ /** The datum field naming each slice. */
1996
+ index: string;
1997
+ /** The datum field holding each slice's amount — or several fields, drawn as concentric rings (outer first). */
1998
+ valueKey: string | string[];
1999
+ /** What the chart shows — its accessible name and the data table's caption. */
2000
+ label: string;
2001
+ /** Labels, tones and icons per slice, keyed by the slice's name. Unlisted slices take the tones in order. */
2002
+ categories?: ChartCategories;
2003
+ className?: string;
2004
+ /** Cut out the middle: `true` for a ring at 60% of the radius, or a ratio (0–0.9). @default false */
2005
+ donut?: boolean | number;
2006
+ /** A value and caption in the hole of a donut — the total, or the headline slice. */
2007
+ centerLabel?: ChartCenterLabel;
2008
+ /** A hairline in the surface colour between slices. @default true */
2009
+ separator?: boolean;
2010
+ /** Label each slice outside the pie or inside it. @default "none" */
2011
+ labels?: "none" | "outside" | "inside";
2012
+ /** What a slice label says. @default "value" */
2013
+ labelContent?: "value" | "percent" | "name";
2014
+ /** Show the legend. @default true unless slices are labelled */
2015
+ legend?: boolean;
2016
+ /** Show a tooltip on hover and keyboard focus, or pass options. @default true */
2017
+ tooltip?: boolean | ChartTooltipOptions;
2018
+ valueFormatter?: ChartValueFormatter;
2019
+ locale?: string;
2020
+ /** Sweep the slices in clockwise when the chart scrolls into view. @default true */
2021
+ animate?: boolean;
2022
+ /** The pulled-out slice (controlled). */
2023
+ activeIndex?: number | null;
2024
+ /** The slice pulled out at first — the one the caption is about. */
2025
+ defaultActiveIndex?: number | null;
2026
+ onActiveIndexChange?: (index: number | null) => void;
2027
+ }
2028
+ /**
2029
+ * Parts of a whole as slices — share of traffic, budget split, survey answers.
2030
+ * Best with two to six slices; past that, a BarChart compares more honestly.
2031
+ * A donut leaves room in the middle for the total. The slices sweep in
2032
+ * clockwise from 12 o'clock as the chart scrolls into view, and the active
2033
+ * slice pulls outward.
2034
+ */
2035
+ declare function PieChart({ data, index, valueKey, label, categories, className, donut, centerLabel, separator, labels, labelContent, legend, tooltip, valueFormatter, locale, animate, activeIndex, defaultActiveIndex, onActiveIndexChange, }: PieChartProps): react.JSX.Element;
2036
+ declare namespace PieChart {
2037
+ var displayName: string;
2038
+ }
2039
+
2040
+ declare const pieChartMeta: ComponentMeta;
2041
+
2042
+ interface RadarChartProps {
2043
+ /** One row per spoke (a skill, a month, a dimension). */
2044
+ data: ChartDatum[];
2045
+ /** The datum field naming each spoke. */
2046
+ index: string;
2047
+ /** The measures drawn as polygons. */
2048
+ series: ChartSeries[];
2049
+ /** What the chart shows — its accessible name and the data table's caption. */
2050
+ label: string;
2051
+ className?: string;
2052
+ /** The web behind the polygons: straight rings, round rings, or none. @default "polygon" */
2053
+ grid?: "polygon" | "circle" | "none";
2054
+ /** Tint the web's outer ring. @default false */
2055
+ gridFill?: boolean;
2056
+ /** Fill each polygon; `false` draws outlines only. @default true */
2057
+ filled?: boolean;
2058
+ /** Mark every vertex with a dot. @default false */
2059
+ dots?: boolean;
2060
+ /** Print the ring values along the top spoke. @default false */
2061
+ radiusAxis?: boolean;
2062
+ /** Show the legend. @default true when there is more than one series */
2063
+ legend?: boolean;
2064
+ /** Show a tooltip on hover and keyboard focus, or pass options. @default true */
2065
+ tooltip?: boolean | ChartTooltipOptions;
2066
+ valueFormatter?: ChartValueFormatter;
2067
+ locale?: string;
2068
+ /** Grow the polygons from the centre when the chart scrolls into view. @default true */
2069
+ animate?: boolean;
2070
+ activeIndex?: number | null;
2071
+ defaultActiveIndex?: number | null;
2072
+ onActiveIndexChange?: (index: number | null) => void;
2073
+ }
2074
+ /**
2075
+ * Several measures compared around a centre — a profile's shape at a glance
2076
+ * (skills, product scores, a month-by-month cycle). Best with five to eight
2077
+ * spokes and one to three series. Polygons grow out from the centre as the
2078
+ * chart scrolls into view.
2079
+ */
2080
+ declare function RadarChart({ data, index, series: rawSeries, label, className, grid, gridFill, filled, dots, radiusAxis, legend, tooltip, valueFormatter, locale, animate, activeIndex, defaultActiveIndex, onActiveIndexChange, }: RadarChartProps): react.JSX.Element;
2081
+ declare namespace RadarChart {
2082
+ var displayName: string;
2083
+ }
2084
+
2085
+ declare const radarChartMeta: ComponentMeta;
2086
+
2087
+ interface RadialChartProps {
2088
+ /** One row per ring, outermost first. */
2089
+ data: ChartDatum[];
2090
+ /** The datum field naming each ring. */
2091
+ index: string;
2092
+ /** The datum field holding each ring's amount. */
2093
+ valueKey: string;
2094
+ /** What the chart shows — its accessible name and the data table's caption. */
2095
+ label: string;
2096
+ /** Labels, tones and icons per ring, keyed by the ring's name. Unlisted rings take the tones in order. */
2097
+ categories?: ChartCategories;
2098
+ className?: string;
2099
+ /** The value a full ring stands for. @default the largest value */
2100
+ max?: number;
2101
+ /** How far round a full ring runs, in degrees: 360 for a circle, 180 for a gauge. @default 360 */
2102
+ sweep?: number;
2103
+ /** Stack every row along ONE ring (a split gauge) instead of a ring each. @default false */
2104
+ stacked?: boolean;
2105
+ /** Draw each ring's full track behind it in the muted surface. @default true */
2106
+ track?: boolean;
2107
+ /** Name each ring at its start. @default false */
2108
+ labels?: boolean;
2109
+ /** A value and caption in the middle — the total, or the headline ring. */
2110
+ centerLabel?: ChartCenterLabel;
2111
+ /** Show the legend. @default true unless rings are labelled */
2112
+ legend?: boolean;
2113
+ /** Show a tooltip on hover and keyboard focus, or pass options. @default true */
2114
+ tooltip?: boolean | ChartTooltipOptions;
2115
+ valueFormatter?: ChartValueFormatter;
2116
+ locale?: string;
2117
+ /** Draw the rings round from their start when the chart scrolls into view. @default true */
2118
+ animate?: boolean;
2119
+ activeIndex?: number | null;
2120
+ defaultActiveIndex?: number | null;
2121
+ onActiveIndexChange?: (index: number | null) => void;
2122
+ }
2123
+ /**
2124
+ * Progress or share drawn as rings — goals met, plan usage, a score. One ring
2125
+ * per row (outermost first), each against a muted track; `sweep={180}` makes a
2126
+ * gauge and `stacked` splits one ring between rows. Rings draw round from 12
2127
+ * o'clock (or the gauge's left) as the chart scrolls into view.
2128
+ */
2129
+ declare function RadialChart({ data, index, valueKey, label, categories, className, max, sweep, stacked, track, labels, centerLabel, legend, tooltip, valueFormatter, locale, animate, activeIndex, defaultActiveIndex, onActiveIndexChange, }: RadialChartProps): react.JSX.Element;
2130
+ declare namespace RadialChart {
2131
+ var displayName: string;
2132
+ }
2133
+
2134
+ declare const radialChartMeta: ComponentMeta;
2135
+
2136
+ interface SparklineProps extends Omit<ComponentPropsWithRef<"svg">, "children" | "aria-label"> {
2137
+ /** The values, oldest first. */
2138
+ data: number[];
2139
+ /** What the line tracks ("Revenue, last 30 days"). The spoken summary adds the range and latest value. */
2140
+ label: string;
2141
+ /** A line, a line over a soft fill, or columns. @default "line" */
2142
+ variant?: "line" | "area" | "bar";
2143
+ /** Colour by role. @default "primary" */
2144
+ tone?: ChartTone;
2145
+ /** Draw on (or rise) when it scrolls into view. @default true */
2146
+ animate?: boolean;
2147
+ /** BCP 47 locale for the spoken numbers. */
2148
+ locale?: string;
2149
+ }
2150
+ /**
2151
+ * A word-sized chart: the shape of a trend with no axes, inside a stat card,
2152
+ * a table cell or a sentence. Sized by className (h-8 w-24 by default) and
2153
+ * stretched to fit, so it follows its container. For values a reader needs
2154
+ * to look up, use AreaChart or LineChart.
2155
+ */
2156
+ declare function Sparkline({ data, label, variant, tone, animate, locale, className, ...props }: SparklineProps): react.JSX.Element;
2157
+ declare namespace Sparkline {
2158
+ var displayName: string;
2159
+ }
2160
+
2161
+ declare const sparklineMeta: ComponentMeta;
2162
+
1698
2163
  type StepStatus = "complete" | "current" | "upcoming" | "error";
1699
2164
  type StepperOrientation = "horizontal" | "vertical";
1700
2165
  type StepperIndicator = "number" | "dot";
@@ -2127,11 +2592,11 @@ type TitleProps$2 = Omit<ComponentProps<typeof Popover$1.Title>, "className"> &
2127
2592
  };
2128
2593
  /** Accessible heading that labels the popover (Base UI wires aria-labelledby). */
2129
2594
  declare function PopoverTitle({ className, ...props }: TitleProps$2): react.JSX.Element;
2130
- type DescriptionProps$3 = Omit<ComponentProps<typeof Popover$1.Description>, "className"> & {
2595
+ type DescriptionProps$2 = Omit<ComponentProps<typeof Popover$1.Description>, "className"> & {
2131
2596
  className?: string;
2132
2597
  };
2133
2598
  /** Supplementary copy below the title (Base UI wires aria-describedby). */
2134
- declare function PopoverDescription({ className, ...props }: DescriptionProps$3): react.JSX.Element;
2599
+ declare function PopoverDescription({ className, ...props }: DescriptionProps$2): react.JSX.Element;
2135
2600
  type ArrowProps$1 = Omit<ComponentProps<typeof Popover$1.Arrow>, "className"> & {
2136
2601
  className?: string;
2137
2602
  };
@@ -2319,10 +2784,10 @@ type TitleProps$1 = Omit<ComponentProps<typeof Drawer.Title>, "className"> & {
2319
2784
  className?: string;
2320
2785
  };
2321
2786
  declare function SheetTitle({ className, ...props }: TitleProps$1): react.JSX.Element;
2322
- type DescriptionProps$2 = Omit<ComponentProps<typeof Drawer.Description>, "className"> & {
2787
+ type DescriptionProps$1 = Omit<ComponentProps<typeof Drawer.Description>, "className"> & {
2323
2788
  className?: string;
2324
2789
  };
2325
- declare function SheetDescription({ className, ...props }: DescriptionProps$2): react.JSX.Element;
2790
+ declare function SheetDescription({ className, ...props }: DescriptionProps$1): react.JSX.Element;
2326
2791
  /** Stacked title + description block, pinned to the top of the sheet. */
2327
2792
  declare function SheetHeader({ className, ...props }: ComponentProps<"div">): react.JSX.Element;
2328
2793
  /** Action row, pushed to the bottom edge of the sheet via mt-auto. */
@@ -2356,17 +2821,32 @@ declare function TableRow({ className, ...props }: ComponentPropsWithRef<"tr">):
2356
2821
  declare namespace TableRow {
2357
2822
  var displayName: string;
2358
2823
  }
2824
+ interface TableHeadProps extends ComponentPropsWithRef<"th"> {
2825
+ /** A numeric column — end-aligned, tabular figures. Set it on the column's cells too. */
2826
+ numeric?: boolean;
2827
+ }
2359
2828
  /** A column header cell. */
2360
- declare function TableHead({ className, ...props }: ComponentPropsWithRef<"th">): react.JSX.Element;
2829
+ declare function TableHead({ className, numeric, ...props }: TableHeadProps): react.JSX.Element;
2361
2830
  declare namespace TableHead {
2362
2831
  var displayName: string;
2363
2832
  }
2833
+ interface TableCellProps extends ComponentPropsWithRef<"td"> {
2834
+ /** A numeric cell — end-aligned, tabular figures. Match the column's header. */
2835
+ numeric?: boolean;
2836
+ }
2364
2837
  /** A body cell. */
2365
- declare function TableCell({ className, ...props }: ComponentPropsWithRef<"td">): react.JSX.Element;
2838
+ declare function TableCell({ className, numeric, ...props }: TableCellProps): react.JSX.Element;
2366
2839
  declare namespace TableCell {
2367
2840
  var displayName: string;
2368
2841
  }
2369
- /** A bottom caption describing the table. */
2842
+ /**
2843
+ * A bottom caption describing the table. It is the table's last band, so it is
2844
+ * built like one: a hairline above it closes off the last row (TableBody drops
2845
+ * that row's own border), it sits on the cells' text edge (`--table-edge-px`,
2846
+ * so it lines up inside a flush Card too), and it has room below it rather
2847
+ * than touching whatever contains the table. Start-aligned, not the browser's
2848
+ * centred default — it reads with the cells, not as a title under them.
2849
+ */
2370
2850
  declare function TableCaption({ className, ...props }: ComponentPropsWithRef<"caption">): react.JSX.Element;
2371
2851
  declare namespace TableCaption {
2372
2852
  var displayName: string;
@@ -2449,9 +2929,11 @@ declare const dataTableMeta: ComponentMeta;
2449
2929
  * `selected` (the reader's own choice) takes a primary tint and a soft
2450
2930
  * primary edge — distinct from rest without a heavy dark outline.
2451
2931
  *
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.
2932
+ * Both sizes are fixed heights, md the larger: md sits on the density ladder's
2933
+ * xs control height (28px), sm is 24px — the touch-target floor. md used to be
2934
+ * padding-sized (~18px) while sm was 28px, so the "small" chip was the taller
2935
+ * one. A fixed-height chip centred with `items-center` needs no optical nudge,
2936
+ * so both drop it. Semantic tokens only — theme-safe in light and dark.
2455
2937
  */
2456
2938
  declare const pillVariants: (props?: ({
2457
2939
  appearance?: "outline" | "solid" | null | undefined;
@@ -2584,6 +3066,30 @@ declare namespace Calendar {
2584
3066
 
2585
3067
  declare const calendarMeta: ComponentMeta;
2586
3068
 
3069
+ interface DateTileProps extends Omit<ComponentPropsWithRef<"time">, "children" | "dateTime"> {
3070
+ /** The day to show. Read in local time — the tile names a calendar day, not an instant. */
3071
+ date: Date;
3072
+ /** BCP 47 locale for the month name. Defaults to the runtime's. */
3073
+ locale?: string;
3074
+ }
3075
+ /**
3076
+ * A calendar-page date: the month on a primary band over the day number. The
3077
+ * leading visual of an event, booking or deadline row — where a date is the
3078
+ * thing you scan for, not a detail in a sentence (that is `RelativeTime`, or
3079
+ * plain text).
3080
+ *
3081
+ * The corner follows the look up to a cap: past about the band's own height,
3082
+ * the curve starts cutting into the band and its text. `h-fit`, because the
3083
+ * tile usually sits in a flex row beside two lines of text and must not
3084
+ * stretch to their height.
3085
+ */
3086
+ declare function DateTile({ date, locale, className, ...props }: DateTileProps): react.JSX.Element;
3087
+ declare namespace DateTile {
3088
+ var displayName: string;
3089
+ }
3090
+
3091
+ declare const dateTileMeta: ComponentMeta;
3092
+
2587
3093
  /**
2588
3094
  * The trigger attributes a `Field` (or a hand-rolled label) wires onto its
2589
3095
  * control. Forwarded to the trigger button, so `<Field label=…><DatePicker /></Field>`
@@ -2749,6 +3255,10 @@ type ViewportProps = Omit<ComponentProps<typeof Toast.Viewport>, "className"> &
2749
3255
  * is irrelevant since it's screen-anchored. Pointer events pass through the gaps
2750
3256
  * so the page stays interactive around the toasts. `position` picks the anchor;
2751
3257
  * `className` merges last for safe-area or offset tweaks.
3258
+ *
3259
+ * Portaled to `<body>`: rendered in place, `fixed` resolved against any ancestor
3260
+ * with a transform, translate, filter or contain (a route's enter animation is
3261
+ * enough), so the stack landed in the content column instead of the screen corner.
2752
3262
  */
2753
3263
  declare function ToastViewport({ className, position, ...props }: ViewportProps): react.JSX.Element;
2754
3264
  type RootProps$1 = Omit<ComponentProps<typeof Toast.Root>, "className"> & {
@@ -2765,11 +3275,11 @@ type TitleProps = Omit<ComponentProps<typeof Toast.Title>, "className"> & {
2765
3275
  };
2766
3276
  /** The toast headline. Auto-associated as the toast's accessible name. */
2767
3277
  declare function ToastTitle({ className, ...props }: TitleProps): react.JSX.Element;
2768
- type DescriptionProps$1 = Omit<ComponentProps<typeof Toast.Description>, "className"> & {
3278
+ type DescriptionProps = Omit<ComponentProps<typeof Toast.Description>, "className"> & {
2769
3279
  className?: string;
2770
3280
  };
2771
3281
  /** Supporting body copy beneath the title. */
2772
- declare function ToastDescription({ className, ...props }: DescriptionProps$1): react.JSX.Element;
3282
+ declare function ToastDescription({ className, ...props }: DescriptionProps): react.JSX.Element;
2773
3283
  type CloseProps = Omit<ComponentProps<typeof Toast.Close>, "className"> & {
2774
3284
  className?: string;
2775
3285
  };
@@ -3424,7 +3934,14 @@ declare const paginationMeta: ComponentMeta;
3424
3934
 
3425
3935
  interface CodeProps extends ComponentPropsWithRef<"code"> {
3426
3936
  }
3427
- /** Inline code. A styled `<code>` for code spans inside running text. */
3937
+ /**
3938
+ * Inline code. A styled `<code>` for code spans inside running text.
3939
+ *
3940
+ * Sized from the text it sits in (`0.875em` — a mono face runs large, so a
3941
+ * touch under the surrounding size reads as the same size), not a fixed tier:
3942
+ * the fixed 11px read as fine print inside 15px body copy and went smaller
3943
+ * still in a heading. Padding is in em for the same reason.
3944
+ */
3428
3945
  declare function Code({ className, ...props }: CodeProps): react.JSX.Element;
3429
3946
  declare namespace Code {
3430
3947
  var displayName: string;
@@ -3477,6 +3994,25 @@ declare namespace CodeBlock {
3477
3994
 
3478
3995
  declare const codeBlockMeta: ComponentMeta;
3479
3996
 
3997
+ /**
3998
+ * The cap, sized from the text it sits in rather than fixed: `0.85em` type
3999
+ * (never under 12px) in a box `1.6em` of its own type tall, so the same Kbd
4000
+ * reads right inline in body copy, in a 12px menu row and in a tooltip.
4001
+ *
4002
+ * Sans, not mono: word keys (Esc, Enter, Ctrl) read as labels, and the modifier
4003
+ * symbols (⌘ ⇧ ⌥ ↵) are not in most mono faces — they fell back to a tiny
4004
+ * system glyph. Tabular figures keep number keys on one width.
4005
+ *
4006
+ * `key` is a raised key ON whatever surface it sits on (it takes the surface's
4007
+ * own fill, published as `--sable-surface-bg`), with a heavier bottom edge as
4008
+ * the key's lip — the flat muted chip it replaced barely read in dark mode.
4009
+ * `ghost` drops the cap for places that are already a surface of their own: a
4010
+ * menu row's shortcut column, a tooltip, an inverted chip.
4011
+ */
4012
+ declare const KBD_VARIANTS: {
4013
+ 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)]";
4014
+ readonly ghost: "text-current opacity-70";
4015
+ };
3480
4016
  interface KbdProps extends ComponentPropsWithRef<"kbd"> {
3481
4017
  /**
3482
4018
  * Render the platform's shortcut modifier instead of children: `⌘` on macOS
@@ -3485,16 +4021,43 @@ interface KbdProps extends ComponentPropsWithRef<"kbd"> {
3485
4021
  */
3486
4022
  mod?: boolean;
3487
4023
  }
4024
+ interface KbdProps extends ComponentPropsWithRef<"kbd"> {
4025
+ /**
4026
+ * Render the platform's shortcut modifier instead of children: `⌘` on macOS
4027
+ * and iOS, `Ctrl` everywhere else. Hardcoding either one shows half your
4028
+ * users the wrong key. @default false
4029
+ */
4030
+ mod?: boolean;
4031
+ /**
4032
+ * `key` draws a raised key cap; `ghost` is the bare label, for a menu row,
4033
+ * tooltip or any surface that is already its own frame. @default "key"
4034
+ */
4035
+ variant?: keyof typeof KBD_VARIANTS;
4036
+ }
3488
4037
  /**
3489
4038
  * A keyboard key indicator. Renders a styled `<kbd>` for a single key cap.
3490
- * `mod` renders the platform's shortcut modifier (⌘ or Ctrl).
4039
+ * `mod` renders the platform's shortcut modifier (⌘ or Ctrl). Show a combo as
4040
+ * one cap per key inside a KbdGroup.
3491
4041
  *
3492
- * <Kbd mod /> <Kbd>K</Kbd>
4042
+ * <KbdGroup><Kbd mod /><Kbd>K</Kbd></KbdGroup>
3493
4043
  */
3494
- declare function Kbd({ mod, className, children, ...props }: KbdProps): react.JSX.Element;
4044
+ declare function Kbd({ mod, variant, className, children, ...props }: KbdProps): react.JSX.Element;
3495
4045
  declare namespace Kbd {
3496
4046
  var displayName: string;
3497
4047
  }
4048
+ interface KbdGroupProps extends ComponentPropsWithRef<"kbd"> {
4049
+ }
4050
+ /**
4051
+ * A shortcut combo: one cap per key, set tight together. A nested `<kbd>` is
4052
+ * the HTML spelling of "this key, then that key", so the combo is announced as
4053
+ * one piece of keyboard input.
4054
+ *
4055
+ * <KbdGroup><Kbd mod /><Kbd>⇧</Kbd><Kbd>P</Kbd></KbdGroup>
4056
+ */
4057
+ declare function KbdGroup({ className, ...props }: KbdGroupProps): react.JSX.Element;
4058
+ declare namespace KbdGroup {
4059
+ var displayName: string;
4060
+ }
3498
4061
 
3499
4062
  declare const kbdMeta: ComponentMeta;
3500
4063
 
@@ -3656,7 +4219,7 @@ declare namespace Banner {
3656
4219
  declare const bannerMeta: ComponentMeta;
3657
4220
 
3658
4221
  interface EmptyStateProps extends Omit<ComponentPropsWithRef<"div">, "title"> {
3659
- /** A glyph in a tinted disc. A destructive state shows a warning by default. */
4222
+ /** A glyph, image or illustration above the title. A destructive state shows a warning by default. */
3660
4223
  icon?: ReactNode;
3661
4224
  title: ReactNode;
3662
4225
  description?: ReactNode;
@@ -3664,7 +4227,7 @@ interface EmptyStateProps extends Omit<ComponentPropsWithRef<"div">, "title"> {
3664
4227
  /** A large figure above the title — an error code like 404. */
3665
4228
  code?: ReactNode;
3666
4229
  /**
3667
- * `destructive` is an error state: a destructive disc, and `role="alert"` so
4230
+ * `destructive` is an error state: a destructive glyph, and `role="alert"` so
3668
4231
  * it is announced. @default "neutral"
3669
4232
  */
3670
4233
  tone?: "neutral" | "destructive";
@@ -3678,7 +4241,7 @@ interface EmptyStateProps extends Omit<ComponentPropsWithRef<"div">, "title"> {
3678
4241
  }
3679
4242
  /**
3680
4243
  * EmptyState — the centred "nothing here / something went wrong" block: an
3681
- * optional disc or code, a title, a description and an action. One component
4244
+ * optional glyph or code, a title, a description and an action. One component
3682
4245
  * for empty lists, page-level errors (`tone="destructive"`, `code`, `size="lg"`)
3683
4246
  * and error cards (`surface="card"`); it used to be three — EmptyState,
3684
4247
  * ErrorState and ErrorCard — whose titles, widths and spacing had drifted.
@@ -4390,22 +4953,6 @@ interface SidebarProps extends ComponentPropsWithRef<"aside"> {
4390
4953
  */
4391
4954
  variant?: "app" | "inline";
4392
4955
  }
4393
- /**
4394
- * Sidebar — the desktop side-navigation rail. An in-flow sticky column, hidden
4395
- * below `lg` (where the mobile AppHeader + BottomNav take over). Compose a brand
4396
- * header, a scrollable nav, and a bottom-anchored footer:
4397
- *
4398
- * <Sidebar collapsed={collapsed}>
4399
- * <SidebarHeader>{brand}</SidebarHeader>
4400
- * <SidebarNav>
4401
- * <SidebarItem icon={<Icon name="home" />} label="Home" active render={<Link to="/" />} />
4402
- * </SidebarNav>
4403
- * <SidebarFooter>{walletTrigger}</SidebarFooter>
4404
- * </Sidebar>
4405
- *
4406
- * Width is the `--sidebar-width` token (16rem), or `--sidebar-width-collapsed`
4407
- * (4rem) when `collapsed`; colors are the `--sidebar-*` set.
4408
- */
4409
4956
  declare function Sidebar({ collapsed, icons, variant, className, children, ...props }: SidebarProps): react.JSX.Element;
4410
4957
  declare namespace Sidebar {
4411
4958
  var displayName: string;
@@ -4626,71 +5173,6 @@ declare namespace PageHeader {
4626
5173
 
4627
5174
  declare const pageHeaderMeta: ComponentMeta;
4628
5175
 
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
5176
  interface SearchInputProps extends Omit<ComponentPropsWithRef<"input">, "onChange" | "value" | "defaultValue"> {
4695
5177
  /** Controlled value of the search field. */
4696
5178
  value?: string;
@@ -5156,9 +5638,16 @@ interface EntityBaseProps extends VariantProps<typeof entityVariants> {
5156
5638
  type EntityProps = EntityBaseProps & Omit<ComponentPropsWithRef<"div">, "title" | "onSelect"> & ({
5157
5639
  interactive?: false;
5158
5640
  onSelect?: never;
5641
+ selected?: never;
5159
5642
  } | {
5160
5643
  interactive: true;
5161
5644
  onSelect: () => void;
5645
+ /**
5646
+ * The current row of a selectable list (the open record in a
5647
+ * list–detail view): the row's button gets `aria-current="true"` and
5648
+ * the row takes the selected fill, which also holds on hover.
5649
+ */
5650
+ selected?: boolean;
5162
5651
  });
5163
5652
  /**
5164
5653
  * Entity — a list-row record: a leading visual, a title/subtitle column, and a
@@ -5166,7 +5655,8 @@ type EntityProps = EntityBaseProps & Omit<ComponentPropsWithRef<"div">, "title"
5166
5655
  * row never advertises clickability. The center column is `min-w-0` so both
5167
5656
  * lines truncate cleanly.
5168
5657
  *
5169
- * Pass `interactive` + `onSelect` to make the entire row a target. The leading
5658
+ * Pass `interactive` + `onSelect` to make the entire row a target, and
5659
+ * `selected` to mark the current row of a selectable list. The leading
5170
5660
  * visual and the text column become a real `<button>` (native focus, Enter and
5171
5661
  * Space), whose `::after` is stretched over the whole row so a click anywhere
5172
5662
  * selects it. The trailing `action` stays OUTSIDE that button and is lifted above
@@ -5176,7 +5666,7 @@ type EntityProps = EntityBaseProps & Omit<ComponentPropsWithRef<"div">, "title"
5176
5666
  * <Entity interactive onSelect={() => select(user)}
5177
5667
  * leading={<Avatar fallback="AM" />} title="Alex Morgan" subtitle="@alex" />
5178
5668
  */
5179
- declare function Entity({ leading, title, subtitle, action, density, className, interactive, onSelect, ...props }: EntityProps): react.JSX.Element;
5669
+ declare function Entity({ leading, title, subtitle, action, density, className, interactive, onSelect, selected, ...props }: EntityProps): react.JSX.Element;
5180
5670
  declare namespace Entity {
5181
5671
  var displayName: string;
5182
5672
  }
@@ -5306,7 +5796,8 @@ interface ShowMoreProps extends ComponentPropsWithRef<"div"> {
5306
5796
  /**
5307
5797
  * ShowMore — a collapsible content region with a bottom fade and a toggle.
5308
5798
  * Clips its children to `collapsedLines` (or `collapsedHeight`) while
5309
- * collapsed, overlays a gradient fade (from-background) so the cut text
5799
+ * collapsed, overlays a gradient fade (from the surface it sits on — the
5800
+ * `--sable-surface-bg` a Card or popover publishes, else the page) so the cut text
5310
5801
  * dissolves, and reveals the full content on toggle. Self-contained state
5311
5802
  * (useState); no Base UI behavior.
5312
5803
  *
@@ -5643,7 +6134,7 @@ declare namespace CommandMenuTrigger {
5643
6134
  declare const commandMenuMeta: ComponentMeta;
5644
6135
 
5645
6136
  type MenuContentProps = ComponentProps<typeof MenuContent>;
5646
- interface DotsMenuProps {
6137
+ interface OverflowMenuProps {
5647
6138
  /** The menu rows — MenuItem / MenuSeparator / MenuGroup, etc. */
5648
6139
  children: ReactNode;
5649
6140
  /** Alignment of the popup along its side. @default "end" */
@@ -5661,26 +6152,26 @@ interface DotsMenuProps {
5661
6152
  size?: "icon" | "icon-sm" | "icon-xs";
5662
6153
  }
5663
6154
  /**
5664
- * DotsMenu — an overflow "…" icon button that opens a Menu. A thin composition
6155
+ * OverflowMenu — the "more actions" icon button that opens a Menu. A thin composition
5665
6156
  * over our own Menu + Button + Icon: pass MenuItems as children and it wires the
5666
6157
  * ghost icon trigger, accessible label, and portal-rendered content for you.
5667
6158
  *
5668
- * <DotsMenu label="Post actions">
6159
+ * <OverflowMenu label="Post actions">
5669
6160
  * <MenuItem>Edit</MenuItem>
5670
6161
  * <MenuItem>Share</MenuItem>
5671
6162
  * <MenuSeparator />
5672
6163
  * <MenuItem variant="destructive">Delete</MenuItem>
5673
- * </DotsMenu>
6164
+ * </OverflowMenu>
5674
6165
  *
5675
6166
  * All Base UI menu behavior (roving focus, typeahead, Esc/outside dismissal)
5676
6167
  * comes through Menu; this component only owns the trigger affordance.
5677
6168
  */
5678
- declare function DotsMenu({ children, align, label, icon, size, }: DotsMenuProps): react.JSX.Element;
5679
- declare namespace DotsMenu {
6169
+ declare function OverflowMenu({ children, align, label, icon, size, }: OverflowMenuProps): react.JSX.Element;
6170
+ declare namespace OverflowMenu {
5680
6171
  var displayName: string;
5681
6172
  }
5682
6173
 
5683
- declare const dotsMenuMeta: ComponentMeta;
6174
+ declare const overflowMenuMeta: ComponentMeta;
5684
6175
 
5685
6176
  /**
5686
6177
  * ContextCard — a themed rich hover/preview card over Base UI's PreviewCard
@@ -6559,12 +7050,12 @@ interface BubbleProps extends ComponentPropsWithRef<"div"> {
6559
7050
  */
6560
7051
  variant?: "muted" | "primary" | "outline" | "plain";
6561
7052
  /**
6562
- * Which side of the conversation the bubble is on — flattens the corner
6563
- * nearest the speaker. Match it to the enclosing `<Message align>`.
7053
+ * Which side of the conversation the bubble is on — puts the tail on
7054
+ * the speaker's side. Match it to the enclosing `<Message align>`.
6564
7055
  * @default "start"
6565
7056
  */
6566
7057
  align?: "start" | "end";
6567
- /** Flatten the speaker-side corner. Turn it off for a run of grouped messages. @default true */
7058
+ /** Draw the speaker-side tail. Turn it off for a run of grouped messages. @default true */
6568
7059
  tail?: boolean;
6569
7060
  }
6570
7061
  /**
@@ -6591,10 +7082,10 @@ interface BubbleProps extends ComponentPropsWithRef<"div"> {
6591
7082
  *
6592
7083
  * Two judgment calls worth inheriting: the bubble is capped at a readable
6593
7084
  * 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.
7085
+ * the tail is a small ear off a squared top corner, the same 5px in every
7086
+ * theme's radius language, so the speaker's side always reads.
6596
7087
  */
6597
- declare function Bubble({ variant, align, tail, className, ...props }: BubbleProps): react.JSX.Element;
7088
+ declare function Bubble({ variant, align, tail, className, children, ...props }: BubbleProps): react.JSX.Element;
6598
7089
  declare namespace Bubble {
6599
7090
  var displayName: string;
6600
7091
  }
@@ -7008,6 +7499,6 @@ interface UseCopyResult {
7008
7499
  */
7009
7500
  declare function useCopy(text: string, { timeout }?: UseCopyOptions): UseCopyResult;
7010
7501
 
7011
- declare const SABLE_UI_VERSION: "0.1.1";
7502
+ declare const SABLE_UI_VERSION: "0.3.0";
7012
7503
 
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 };
7504
+ export { Accordion, AccordionItem, AccordionPanel, AccordionTrigger, AlertDialog, AlertDialogClose, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogOverlay, AlertDialogTitle, AlertDialogTrigger, AppHeader, type AppHeaderProps, AppShell, type AppShellProps, AreaChart, type AreaChartProps, 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, BarChart, type BarChartProps, 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, CHART_SERIES_COUNT, COMPONENT_GROUPS, COMPONENT_TAXONOMY, Calendar, type CalendarProps, Card, CardAction, CardContent, type CardContentProps, CardDescription, CardFooter, CardHeader, CardList, type CardProps, CardTitle, type CardTitleProps, Carousel, type CarouselProps, type CarouselSlidesToShow, type ChartCategories, type ChartCenterLabel, type ChartCurve, type ChartDatum, type ChartSeries, type ChartTone, type ChartTooltipIndicator, type ChartTooltipOptions, type ChartValueFormatter, 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, DateTile, type DateTileProps, Density, DensityProvider, Density as DensityValue, DestructiveActionModal, type DestructiveActionModalProps, Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, type DialogSize, DialogTitle, DialogTrigger, 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, LineChart, type LineChartProps, 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, OverflowMenu, type OverflowMenuProps, PageHeader, type PageHeaderProps, PageLoader, type PageLoaderProps, Pagination, type PaginationProps, Panel, PanelGroup, PanelResizer, type PanelResizerProps, PanelSection, type PanelWidthBounds, Phone, type PhoneProps, PieChart, type PieChartProps, Pill, type PillProps, Popover, PopoverArrow, PopoverClose, PopoverContent, PopoverDescription, PopoverPortal, PopoverTitle, PopoverTrigger, Presence, type PresenceProps, Progress, ProgressIndicator, ProgressLabel, type ProgressSize, ProgressTrack, ProgressValue, PropertyPair, PropertyRow, RadarChart, type RadarChartProps, RadialChart, type RadialChartProps, Radio, RadioCard, type RadioCardProps, type RadioCardTone, RadioGroup, RelativeTime, type RelativeTimeProps, Reveal, type RevealProps, type Rgb, SABLE_UI_VERSION, SEGMENTED_BAR_TONES, STATUS_TONES, STATUS_TONE_ICON, type ScrollCommandOptions, Scroller, type ScrollerProps, ScrubField, type ScrubFieldProps, SearchInput, type SearchInputProps, SegmentedBar, type SegmentedBarProps, type SegmentedBarSegment, type SegmentedBarTone, 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, Sparkline, type SparklineProps, 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, type ToastPosition, 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, areaChartMeta, attachmentMeta, avatarGroupVariants, avatarMeta, avatarVariants, badgeMeta, badgeVariants, bannerMeta, bannerVariants, barChartMeta, bottomNavMeta, breadcrumbsMeta, browserMeta, bubbleMeta, buttonMeta, buttonVariants, calendarMeta, cardMeta, carouselMeta, chartColor, toneColor as chartToneColor, chatComposerMeta, checkboxCardMeta, checkboxMeta, cn, codeBlockMeta, codeMeta, collapsibleMeta, colorFieldMeta, comboboxMeta, commandMenuMeta, componentGuidance, componentLabel, componentSlug, componentsInGroup, contextCardMeta, contextMenuMeta, dataTableMeta, datePickerMeta, dateTileMeta, destructiveActionModalMeta, dialogMeta, emptyStateMeta, entityMeta, feedbackMeta, fieldsetMeta, fileDropzoneMeta, fileDropzoneVariants, formMeta, formatFileSize, formatHex, glidingHighlightMeta, hsvToRgb, hueColor, inlineStatusMeta, inputMeta, isTransparent, kbdMeta, labelMeta, lineChartMeta, markerMeta, marqueeMeta, menuMeta, messageMeta, messageScrollerMeta, meterIndicatorVariants, meterMeta, meterTrackVariants, middleTruncateMeta, noteMeta, noteVariants, notificationBadgeMeta, notificationCountVariants, notificationDotVariants, numberFieldMeta, otpFieldMeta, overflowMenuMeta, pageHeaderMeta, pageLoaderMeta, paginationMeta, panelGroupMeta, panelSectionMeta, parseHex, phoneMeta, pieChartMeta, pillMeta, pillVariants, popoverMeta, progressMeta, progressTrackVariants, radarChartMeta, radialChartMeta, radioCardMeta, radioMeta, relativeTimeMeta, rgbToHsv, scrollerMeta, scrubFieldMeta, searchInputMeta, segmentedBarMeta, segmentedBarSegmentVariants, segmentedBarVariants, selectMeta, separatorMeta, settingsMenuMeta, sheetMeta, sheetVariants, showMoreMeta, sideNavMeta, sidebarMeta, skeletonMeta, sliderMeta, sparklineMeta, 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 };