@sableui/react 0.16.0 → 0.18.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 (95) hide show
  1. package/AGENTS.md +10 -3
  2. package/CHANGELOG.md +132 -0
  3. package/README.md +11 -4
  4. package/bin/sable.mjs +160 -18
  5. package/dist/activity-DT8VK9fx.d.ts +25 -0
  6. package/dist/adapters/github.d.ts +41 -0
  7. package/dist/adapters/github.js +24 -0
  8. package/dist/blocks/approval-block.js +30 -48
  9. package/dist/blocks/approval-block.meta.js +7 -8
  10. package/dist/blocks/index.d.ts +1 -1
  11. package/dist/components/activity-heatmap/activity-heatmap.js +420 -0
  12. package/dist/components/activity-heatmap/activity-heatmap.meta.js +142 -0
  13. package/dist/components/activity-heatmap/index.js +9 -0
  14. package/dist/components/code-block/code-block.js +5 -3
  15. package/dist/components/code-block/code-block.meta.js +6 -0
  16. package/dist/components/dialog/dialog.js +25 -5
  17. package/dist/components/dialog/dialog.meta.js +26 -5
  18. package/dist/components/media-image/media-image.js +3 -1
  19. package/dist/components/media-image/media-image.meta.js +15 -1
  20. package/dist/components/media-tile/media-tile.js +13 -1
  21. package/dist/components/media-tile/media-tile.meta.js +10 -0
  22. package/dist/components/page-header/page-header.js +9 -4
  23. package/dist/components/page-header/page-header.meta.js +26 -1
  24. package/dist/components/pill/pill.meta.js +15 -6
  25. package/dist/components/pill/pill.variants.js +1 -0
  26. package/dist/components/search-input/search-input.js +30 -5
  27. package/dist/components/search-input/search-input.meta.js +29 -4
  28. package/dist/components/section-header/section-header.js +27 -17
  29. package/dist/components/section-header/section-header.meta.js +27 -5
  30. package/dist/components/section-rail/index.js +7 -0
  31. package/dist/components/section-rail/section-rail.js +153 -0
  32. package/dist/components/section-rail/section-rail.meta.js +189 -0
  33. package/dist/components/sheet/sheet.js +15 -3
  34. package/dist/components/sheet/sheet.meta.js +2 -2
  35. package/dist/file-hashes.json +53 -39
  36. package/dist/icon-sets/reicon.js +23 -1
  37. package/dist/index.d.ts +364 -27
  38. package/dist/index.js +11 -1
  39. package/dist/layout/AspectBox.js +2 -5
  40. package/dist/layout/Bleed.js +10 -6
  41. package/dist/layout/Center.js +11 -3
  42. package/dist/layout/Columns.js +6 -3
  43. package/dist/layout/Grid.js +14 -6
  44. package/dist/layout/GridOverlay.js +7 -7
  45. package/dist/layout/Region.js +18 -3
  46. package/dist/layout/Row.js +27 -20
  47. package/dist/layout/Spacer.js +13 -2
  48. package/dist/layout/SplitPane.js +1 -1
  49. package/dist/layout/Stack.js +25 -18
  50. package/dist/layout/index.d.ts +57 -6
  51. package/dist/lib/chart/activity.js +32 -0
  52. package/dist/lib/chart/calendar.js +67 -0
  53. package/dist/lib/chart/chart-tooltip.js +2 -2
  54. package/dist/lib/chart/heat.js +55 -0
  55. package/dist/lib/focus-return.js +53 -0
  56. package/dist/lib/taxonomy.js +2 -0
  57. package/dist/lib/use-active-section.js +59 -0
  58. package/dist/styles.css +122 -114
  59. package/llms/blocks/approval-block.md +40 -55
  60. package/llms/components/activity-heatmap.md +133 -0
  61. package/llms/components/code-block.md +1 -0
  62. package/llms/components/dialog.md +34 -3
  63. package/llms/components/media-image.md +12 -0
  64. package/llms/components/media-tile.md +21 -0
  65. package/llms/components/page-header.md +16 -1
  66. package/llms/components/pill.md +24 -5
  67. package/llms/components/search-input.md +37 -4
  68. package/llms/components/section-header.md +28 -4
  69. package/llms/components/section-rail.md +101 -0
  70. package/llms/components/sheet.md +2 -2
  71. package/llms/layout/aspect-box.md +1 -1
  72. package/llms/layout/bleed.md +1 -1
  73. package/llms/layout/center.md +1 -1
  74. package/llms/layout/columns.md +1 -1
  75. package/llms/layout/grid.md +1 -1
  76. package/llms/layout/region.md +1 -1
  77. package/llms/layout/row.md +9 -1
  78. package/llms/layout/spacer.md +1 -1
  79. package/llms/layout/split-pane.md +1 -1
  80. package/llms/layout/stack.md +1 -1
  81. package/llms/tasks/auditing-an-app.md +31 -0
  82. package/llms/tasks/getting-started.md +10 -3
  83. package/llms/tasks/using-presets.md +1 -2
  84. package/llms-full.txt +516 -90
  85. package/llms.txt +5 -3
  86. package/package.json +6 -1
  87. package/registry.json +745 -46
  88. package/scripts/adoption.mjs +239 -0
  89. package/scripts/agent-setup.mjs +110 -18
  90. package/scripts/grade.mjs +17 -0
  91. package/scripts/wiring.mjs +2 -1
  92. package/skills/entry/SKILL.md +1 -1
  93. package/skills/sable/SKILL.md +33 -4
  94. package/skills/sable/agents/openai.yaml +1 -1
  95. package/targets/ios.json +18 -0
package/dist/index.d.ts CHANGED
@@ -9,7 +9,7 @@ export { AspectBox, AspectBoxProps, Bleed, BleedProps, Breakpoint, Center, Cente
9
9
  export { Icon, IconContextValue, IconProps, IconProvider, IconProviderProps, composeIconSets, useIconSet } from './icon/index.js';
10
10
  export { a as IconRenderProps, I as IconSet, b as IconVariant } from './registry-CyL28OzJ.js';
11
11
  import * as react from 'react';
12
- import { ReactNode, AnimationEvent, ComponentPropsWithoutRef, ElementType, ReactElement, Ref, ComponentPropsWithRef, MouseEvent, ComponentProps, AriaAttributes, FormEvent } from 'react';
12
+ import { ReactNode, AnimationEvent, ComponentPropsWithoutRef, ElementType, ReactElement, Ref, ComponentPropsWithRef, MouseEvent, ComponentProps, AriaAttributes, RefObject, FormEvent, CSSProperties } from 'react';
13
13
  import { VariantProps } from 'class-variance-authority';
14
14
  import { useRender } from '@base-ui/react/use-render';
15
15
  import * as class_variance_authority_types from 'class-variance-authority/types';
@@ -27,6 +27,8 @@ import { Tooltip as Tooltip$1 } from '@base-ui/react/tooltip';
27
27
  import { Avatar as Avatar$1 } from '@base-ui/react/avatar';
28
28
  import { Progress as Progress$1 } from '@base-ui/react/progress';
29
29
  import { Meter as Meter$1 } from '@base-ui/react/meter';
30
+ import { a as ActivityData } from './activity-DT8VK9fx.js';
31
+ export { A as ActivityDay, m as mergeActivity } from './activity-DT8VK9fx.js';
30
32
  import { Toggle as Toggle$1 } from '@base-ui/react/toggle';
31
33
  import { ToggleGroup as ToggleGroup$1 } from '@base-ui/react/toggle-group';
32
34
  import { Toolbar as Toolbar$1 } from '@base-ui/react/toolbar';
@@ -1315,8 +1317,13 @@ declare const badgeMeta: ComponentMeta;
1315
1317
  * <img src="…" alt="Studio, 2026" className="max-h-full max-w-full object-contain" />
1316
1318
  * </DialogContent>
1317
1319
  * </Dialog>
1320
+ *
1321
+ * Opened from your own button through controlled `open`, with no DialogTrigger,
1322
+ * it still returns focus to that button on close: the root records whatever
1323
+ * held focus when `open` turned true and makes it DialogContent's default
1324
+ * `finalFocus` (lib/focus-return has the why). An explicit `finalFocus` wins.
1318
1325
  */
1319
- declare const Dialog: typeof Dialog$1.Root;
1326
+ declare function Dialog<Payload = unknown>({ open, onOpenChange, ...props }: Dialog$1.Root.Props<Payload>): react.JSX.Element;
1320
1327
  declare const DialogTrigger: Dialog$1.Trigger;
1321
1328
  declare const DialogClose: react.ForwardRefExoticComponent<Omit<_base_ui_react.AlertDialogCloseProps, "ref"> & react.RefAttributes<HTMLButtonElement>>;
1322
1329
  declare const DialogPortal: {
@@ -1368,9 +1375,20 @@ type PopupProps$1 = Omit<ComponentProps<typeof Dialog$1.Popup>, "className"> & {
1368
1375
  * children directly and the media sizes itself to the viewport.
1369
1376
  */
1370
1377
  scroll?: boolean;
1378
+ /**
1379
+ * Keep the content mounted while the dialog is closed, hidden, instead of
1380
+ * unmounting it. Opt in for a draft the user may come back to: a half-written
1381
+ * form closed by Esc or a stray click keeps its fields (typed values, React
1382
+ * state, scroll position) when it reopens. Leave it off otherwise: a dialog
1383
+ * that should start fresh each time, or one with live content (polling,
1384
+ * video), should not keep running behind a closed door. Reset the draft
1385
+ * yourself once it is submitted or discarded.
1386
+ * @default false
1387
+ */
1388
+ keepMounted?: boolean;
1371
1389
  };
1372
1390
  /** Backdrop + popup surface. Renders through a portal. */
1373
- declare function DialogContent({ size, showCloseButton, scroll, ...props }: PopupProps$1): react.JSX.Element;
1391
+ declare function DialogContent({ size, showCloseButton, scroll, finalFocus, ref, ...props }: PopupProps$1): react.JSX.Element;
1374
1392
  type TitleProps$3 = Omit<ComponentProps<typeof Dialog$1.Title>, "className"> & {
1375
1393
  className?: string;
1376
1394
  };
@@ -1404,7 +1422,7 @@ declare function DialogFooter({ className, ...props }: ComponentProps<"div">): r
1404
1422
  * </AlertDialogContent>
1405
1423
  * </AlertDialog>
1406
1424
  */
1407
- declare const AlertDialog: typeof AlertDialog$1.Root;
1425
+ declare function AlertDialog<Payload = unknown>({ open, onOpenChange, ...props }: AlertDialog$1.Root.Props<Payload>): react.JSX.Element;
1408
1426
  declare const AlertDialogTrigger: AlertDialog$1.Trigger;
1409
1427
  declare const AlertDialogClose: react.ForwardRefExoticComponent<Omit<_base_ui_react.AlertDialogCloseProps, "ref"> & react.RefAttributes<HTMLButtonElement>>;
1410
1428
  declare const AlertDialogContent: typeof DialogContent;
@@ -3244,6 +3262,172 @@ declare namespace Sparkline {
3244
3262
 
3245
3263
  declare const sparklineMeta: ComponentMeta;
3246
3264
 
3265
+ /**
3266
+ * Levels and colour for a heatmap: how a value becomes one of a few steps, and
3267
+ * what each step looks like on the active theme.
3268
+ */
3269
+ /** What a scale function is told about the data it is scaling. */
3270
+ interface ActivityStats {
3271
+ /** The smallest positive value. */
3272
+ min: number;
3273
+ /** The largest value. */
3274
+ max: number;
3275
+ /** How many levels there are, including the empty level 0. */
3276
+ levels: number;
3277
+ }
3278
+ /**
3279
+ * How a value becomes a level. `"quantile"` splits the positive values evenly
3280
+ * between the levels above 0, as GitHub does, so one outlier does not wash the
3281
+ * rest out. `"linear"` divides 0…max evenly. An array gives the lower bound of
3282
+ * each level from 1 up; a function decides for itself.
3283
+ */
3284
+ type ActivityScale = "quantile" | "linear" | number[] | ((value: number, stats: ActivityStats) => number);
3285
+ interface ActivityLevels {
3286
+ /** The lower bound of each level from 1 up (`thresholds[0]` is level 1). Empty for a scale function. */
3287
+ thresholds: number[];
3288
+ /** The level of a value: 0 for nothing, up to `levels - 1`. */
3289
+ level: (value: number) => number;
3290
+ }
3291
+ /**
3292
+ * The levels for a set of values. Zero and negative values are always level 0;
3293
+ * any positive value is at least level 1, so a day with activity never reads as
3294
+ * a day without it.
3295
+ */
3296
+ declare function activityLevels(values: number[], { levels, scale }?: {
3297
+ levels?: number;
3298
+ scale?: ActivityScale;
3299
+ }): ActivityLevels;
3300
+
3301
+ /** A day as the heatmap resolved it — what `tooltip`, `renderCell` and the callbacks receive. */
3302
+ interface ActivityHeatmapDay {
3303
+ date: string;
3304
+ value: number;
3305
+ level: number;
3306
+ category?: string;
3307
+ }
3308
+ /** What `renderCell` is told about the cell it draws into. */
3309
+ interface ActivityHeatmapCell {
3310
+ level: number;
3311
+ /** The cell's fill, as a CSS colour. */
3312
+ color: string;
3313
+ /** The cell's edge length in px. */
3314
+ size: number;
3315
+ }
3316
+ interface ActivityHeatmapProps extends Omit<ComponentPropsWithRef<"figure">, "children"> {
3317
+ /** What the grid shows ("Contributions in 2026") — its caption and accessible name. */
3318
+ label: string;
3319
+ /** The days, as a list or a map of date to value. Sparse is fine; a missing day is 0. */
3320
+ data: ActivityData;
3321
+ /** First day drawn, "YYYY-MM-DD". @default 53 weeks before `end`, from the start of that week */
3322
+ start?: string;
3323
+ /** Last day drawn, "YYYY-MM-DD". @default today */
3324
+ end?: string;
3325
+ /** Draw Jan 1 – Dec 31 of this year. Wins over `start` / `end`. */
3326
+ year?: number;
3327
+ /** 0 puts Sunday on top, 1 Monday. @default the locale's */
3328
+ weekStart?: 0 | 1;
3329
+ /** How many levels, including the empty level 0. @default 5 */
3330
+ levels?: number;
3331
+ /** How a value becomes a level. A day's own `level` always wins. @default "quantile" */
3332
+ levelScale?: ActivityScale;
3333
+ /** The hue of the intensity ramp. Decorative tones lead; `"success"` gives the GitHub look. @default "1" */
3334
+ tone?: ChartTone;
3335
+ /** Colour cells by `day.category` instead of one ramp — a label and tone (or colour) per key. */
3336
+ categories?: ChartCategories;
3337
+ /** Names the value in the tooltip and each cell's name: "contributions", or `{ one, other }` to pluralise. */
3338
+ unit?: string | {
3339
+ one: string;
3340
+ other: string;
3341
+ };
3342
+ /** Formats a value. @default in full up to 9,999, compact past it */
3343
+ formatValue?: (value: number) => string;
3344
+ /** Show a tooltip on hover, focus and tap; a function replaces its content. @default true */
3345
+ tooltip?: boolean | ((day: ActivityHeatmapDay) => ReactNode);
3346
+ /** The Less–More ramp, or swatches for categories. @default true */
3347
+ legend?: boolean;
3348
+ /** The ramp's end words. @default ["Less", "More"] */
3349
+ legendLabels?: [string, string];
3350
+ /** Short month names over each month's first week. @default true */
3351
+ monthLabels?: boolean;
3352
+ /** Which weekday names to show beside the rows. @default "alternate" (Mon, Wed, Fri) */
3353
+ weekdayLabels?: "alternate" | "all" | "none";
3354
+ /** The smallest a cell may get before the grid scrolls instead of shrinking: 10, 12 or 14 px. @default "md" */
3355
+ size?: "sm" | "md" | "lg";
3356
+ /** Grow cells to fill the width, up to 20 px. @default true */
3357
+ stretch?: boolean;
3358
+ /** The hovered or focused day, controlled. */
3359
+ activeDate?: string | null;
3360
+ defaultActiveDate?: string | null;
3361
+ onActiveDateChange?: (date: string | null) => void;
3362
+ /** The selected day, controlled. Selection is on only when `onSelectDate` is set. */
3363
+ selectedDate?: string | null;
3364
+ /** Called when a day is clicked or chosen with Enter / Space — as GitHub filters its feed below. */
3365
+ onSelectDate?: (date: string) => void;
3366
+ /** Draw something into a cell (an icon for a milestone, a reward, an outage). Rendered over the fill. */
3367
+ renderCell?: (day: ActivityHeatmapDay, cell: ActivityHeatmapCell) => ReactNode;
3368
+ /** Draw the empty grid, shimmering, while data loads. */
3369
+ loading?: boolean;
3370
+ /**
3371
+ * How much motion this component uses: `full` (default) inherits the app's
3372
+ * policy, `subtle` keeps feedback and drops the flourish, `off` stills it.
3373
+ * The weeks fading in as the grid scrolls into view is the flourish.
3374
+ */
3375
+ motion?: MotionLevel;
3376
+ /** BCP 47 locale for month and weekday names, numbers and plurals. */
3377
+ locale?: string;
3378
+ }
3379
+ /**
3380
+ * A calendar heatmap: one value per day as a grid of weeks by weekdays — the
3381
+ * GitHub contribution graph, for any daily measure (commits, habits, sales,
3382
+ * uptime). Levels come from the data by quartile unless a day brings its own;
3383
+ * categories colour days by source instead of intensity.
3384
+ *
3385
+ * The grid is a real `role="grid"` table, as GitHub's is: one tab stop, arrow
3386
+ * keys between days, each cell named with its date and value. It fills the
3387
+ * width down to `size`; narrower than that, the weeks scroll sideways (opening
3388
+ * on the latest) while the weekday labels and legend stay put.
3389
+ */
3390
+ declare function ActivityHeatmap({ label, data, start, end, year, weekStart, levels, levelScale, tone, categories, unit, formatValue, tooltip, legend, legendLabels, monthLabels, weekdayLabels, size, stretch, activeDate, defaultActiveDate, onActiveDateChange, selectedDate, onSelectDate, renderCell, loading, motion, locale, className, style, ref, ...props }: ActivityHeatmapProps): react.JSX.Element;
3391
+ declare namespace ActivityHeatmap {
3392
+ var displayName: string;
3393
+ }
3394
+
3395
+ declare const activityHeatmapMeta: ComponentMeta;
3396
+
3397
+ interface ActivityWeek {
3398
+ /** Day numbers for each row, top to bottom; null where the day falls outside the range. */
3399
+ days: (number | null)[];
3400
+ }
3401
+ interface ActivityMonth {
3402
+ /** The first day of the month (or of the range, for a partial first month). */
3403
+ day: number;
3404
+ /** The week column the month's header starts at. */
3405
+ week: number;
3406
+ /** How many week columns it spans. */
3407
+ span: number;
3408
+ }
3409
+ interface ActivityGrid {
3410
+ start: number;
3411
+ end: number;
3412
+ weekStart: 0 | 1;
3413
+ /** The day number in the top-left slot, which may sit before `start`. */
3414
+ origin: number;
3415
+ weeks: ActivityWeek[];
3416
+ /** Month header segments, left to right, spanning every week column between them. */
3417
+ months: ActivityMonth[];
3418
+ }
3419
+ /**
3420
+ * The weeks-by-weekdays grid for a range: one column per week, one row per
3421
+ * weekday starting at `weekStart`, with partial first and last weeks padded by
3422
+ * nulls. Month segments start at the week holding each month's 1st; the weeks
3423
+ * before the first 1st belong to the range's opening month.
3424
+ */
3425
+ declare function activityGrid({ start, end, weekStart }: {
3426
+ start: number;
3427
+ end: number;
3428
+ weekStart: 0 | 1;
3429
+ }): ActivityGrid;
3430
+
3247
3431
  type StepStatus = "complete" | "current" | "upcoming" | "error";
3248
3432
  type StepperOrientation = "horizontal" | "vertical";
3249
3433
  type StepperIndicator = "number" | "dot";
@@ -3878,7 +4062,7 @@ type SheetSnapPoint = number | string;
3878
4062
  * to a panel that slides sideways.
3879
4063
  */
3880
4064
  type SheetProps<Payload = unknown> = Omit<Drawer.Root.Props<Payload>, "swipeDirection">;
3881
- declare function Sheet<Payload = unknown>({ snapPoints, snapPoint, defaultSnapPoint, onSnapPointChange, snapToSequentialPoints, ...props }: SheetProps<Payload>): react.JSX.Element;
4065
+ declare function Sheet<Payload = unknown>({ snapPoints, snapPoint, defaultSnapPoint, onSnapPointChange, snapToSequentialPoints, open, onOpenChange, ...props }: SheetProps<Payload>): react.JSX.Element;
3882
4066
  declare const SheetTrigger: Drawer.Trigger;
3883
4067
  declare const SheetClose: Drawer.Close;
3884
4068
  declare const SheetPortal: {
@@ -3888,7 +4072,7 @@ declare const SheetPortal: {
3888
4072
  type ContentProps$4 = Omit<ComponentProps<typeof Drawer.Popup>, "className"> & VariantProps<typeof sheetVariants> & {
3889
4073
  className?: string;
3890
4074
  };
3891
- declare function SheetContent({ className, children, side, initialFocus, ref, style, ...props }: ContentProps$4): react.JSX.Element;
4075
+ declare function SheetContent({ className, children, side, initialFocus, finalFocus, ref, style, ...props }: ContentProps$4): react.JSX.Element;
3892
4076
  type TitleProps$1 = Omit<ComponentProps<typeof Drawer.Title>, "className"> & {
3893
4077
  className?: string;
3894
4078
  };
@@ -4071,7 +4255,7 @@ declare namespace DataTable {
4071
4255
  declare const dataTableMeta: ComponentMeta;
4072
4256
 
4073
4257
  /**
4074
- * A chip someone clicks. Two appearances, two sizes, one `selected` state each:
4258
+ * A chip someone clicks. Two appearances, three sizes, one `selected` state each:
4075
4259
  *
4076
4260
  * - `solid` (default): the filter-row chip. Rests on the secondary surface;
4077
4261
  * `selected` lifts it onto the primary surface so the active filter reads at
@@ -4082,15 +4266,24 @@ declare const dataTableMeta: ComponentMeta;
4082
4266
  * `selected` (the reader's own choice) takes a primary tint and a soft
4083
4267
  * primary edge — distinct from rest without a heavy dark outline.
4084
4268
  *
4085
- * Both sizes are fixed heights, md the larger: md sits on the density ladder's
4086
- * xs control height (28px), sm is 24px — the touch-target floor. md used to be
4269
+ * All sizes are fixed heights. md sits on the density ladder's xs control
4270
+ * height (28px), sm is 24px — the touch-target floor, deliberately NOT a
4271
+ * ladder step, so a compact scope cannot shrink it under 24. md used to be
4087
4272
  * padding-sized (~18px) while sm was 28px, so the "small" chip was the taller
4088
4273
  * one. A fixed-height chip centred with `items-center` needs no optical nudge,
4089
- * so both drop it. Semantic tokens only — theme-safe in light and dark.
4274
+ * so all drop it. Semantic tokens only — theme-safe in light and dark.
4275
+ *
4276
+ * `lg` sits on `--control-sm` (32px, compact 28), the rung the spacing doctrine
4277
+ * gives toolbar controls: Button `sm`, Toggle and SearchInput `sm` stand on it
4278
+ * too, so a filter row beside a search field and its buttons is one height. A
4279
+ * page toolbar is the case it exists for ("All · Products · Open source" …
4280
+ * [Find a project]). md's 28px is the chip under or among content, and no text
4281
+ * field shares it — Input / SearchInput `xs` is the inset tool-panel field, a
4282
+ * different surface — so md beside a field is always a mismatch.
4090
4283
  */
4091
4284
  declare const pillVariants: (props?: ({
4092
4285
  appearance?: "outline" | "solid" | null | undefined;
4093
- size?: "sm" | "md" | null | undefined;
4286
+ size?: "sm" | "md" | "lg" | null | undefined;
4094
4287
  selected?: boolean | null | undefined;
4095
4288
  tone?: "blue" | "green" | "orange" | "pink" | "purple" | "red" | "teal" | "yellow" | "neutral" | null | undefined;
4096
4289
  } & class_variance_authority_types.ClassProp) | undefined) => string;
@@ -4108,8 +4301,10 @@ interface PillProps extends ComponentPropsWithRef<"button">, Omit<VariantProps<t
4108
4301
  * half clickable and half not.
4109
4302
  *
4110
4303
  * `appearance="outline"` is the quiet chip for choices that annotate other
4111
- * content (a reaction, a tag on a card); `size="sm"` puts it on the xs control
4112
- * height. Use these rather than restyling a Pill with classes — an override is
4304
+ * content (a reaction, a tag on a card); `size="sm"` is the small chip under
4305
+ * content, `size="lg"` the toolbar chip that shares `--control-sm` with a
4306
+ * SearchInput `size="sm"` and Button `size="sm"` beside it. Use these rather
4307
+ * than restyling a Pill with classes — an override is
4113
4308
  * a look that exists nowhere else in the system. `tone="blue"` (any palette
4114
4309
  * family) colours the chip as a category, like a tag picker's choices.
4115
4310
  */
@@ -5214,6 +5409,13 @@ interface CodeBlockProps extends ComponentPropsWithRef<"div"> {
5214
5409
  * What Snippet was.
5215
5410
  */
5216
5411
  prompt?: string;
5412
+ /**
5413
+ * Wrap long lines instead of scrolling them. For prose in a code face (a
5414
+ * prompt to paste into an agent, a log line), where the end of a line
5415
+ * scrolled out of view hides what it says. Code keeps scrolling: wrapping
5416
+ * breaks the indentation it is read by.
5417
+ */
5418
+ wrap?: boolean;
5217
5419
  }
5218
5420
  /**
5219
5421
  * A multi-line code block. An optional header bar carries the filename and a
@@ -5224,7 +5426,7 @@ interface CodeBlockProps extends ComponentPropsWithRef<"div"> {
5224
5426
  * Highlighting is opt-in through `highlight` or `CodeHighlightProvider`.
5225
5427
  * Soft-square (rounded-md), never a pill.
5226
5428
  */
5227
- declare function CodeBlock({ code, filename, showCopy, highlight, prompt, className, ...props }: CodeBlockProps): react.JSX.Element;
5429
+ declare function CodeBlock({ code, filename, showCopy, highlight, prompt, wrap, className, ...props }: CodeBlockProps): react.JSX.Element;
5228
5430
  declare namespace CodeBlock {
5229
5431
  var displayName: string;
5230
5432
  }
@@ -6471,6 +6673,67 @@ declare namespace SideNavItem {
6471
6673
 
6472
6674
  declare const sideNavMeta: ComponentMeta;
6473
6675
 
6676
+ interface SectionRailSection {
6677
+ /** The section element's `id` — the rail links to `#id` and watches it. */
6678
+ id: string;
6679
+ /** The section's name: the tooltip, and the link's accessible name. */
6680
+ label: string;
6681
+ }
6682
+ interface SectionRailProps extends Omit<ComponentPropsWithRef<"nav">, "children"> {
6683
+ /** The sections, in document order. */
6684
+ sections: readonly SectionRailSection[];
6685
+ /**
6686
+ * The current section's id, when the parent decides it. Leave it unset and
6687
+ * the rail follows the scroll itself.
6688
+ */
6689
+ value?: string;
6690
+ /** Called with the new id when the reader scrolls into a section or picks one. */
6691
+ onValueChange?: (id: string) => void;
6692
+ /**
6693
+ * Where the reading line sits, as a fraction of the viewport from its top.
6694
+ * A section becomes current once its top crosses it.
6695
+ * @default 0.35
6696
+ */
6697
+ offset?: number;
6698
+ /** The element that scrolls, when it is not the window. */
6699
+ root?: RefObject<HTMLElement | null>;
6700
+ /**
6701
+ * Which edge of the page the rail sits on. The labels open toward the
6702
+ * content, on the other side.
6703
+ * @default "left"
6704
+ */
6705
+ side?: "left" | "right";
6706
+ /**
6707
+ * How much motion this component uses: `full` (default) inherits the app's
6708
+ * policy, `subtle` keeps feedback and drops the marker's glide, `off` stills
6709
+ * it. It can only turn motion down — it never overrides a reader's
6710
+ * reduce-motion setting.
6711
+ */
6712
+ motion?: MotionLevel;
6713
+ }
6714
+ /**
6715
+ * SectionRail — a slim vertical rail of dots, one per section of a long page,
6716
+ * that shows where the reader is and jumps to any section. A bar marks the
6717
+ * current section and glides to the next as the page scrolls; hovering or
6718
+ * focusing a dot names its section in a tooltip that travels with the pointer.
6719
+ *
6720
+ * <SectionRail
6721
+ * sections={[{ id: "overview", label: "Overview" }, { id: "process", label: "Process" }]}
6722
+ * className="fixed top-1/2 left-6 z-(--z-nav) -translate-y-1/2 max-lg:hidden"
6723
+ * />
6724
+ *
6725
+ * It renders in flow; place it with layout classes. Picking a dot scrolls to
6726
+ * the section with the page's own `scroll-behavior` (instantly under reduced
6727
+ * motion) and, at page level, puts its id in the URL without adding a history
6728
+ * entry. Give sections a `scroll-mt-*` when a sticky header would cover them.
6729
+ */
6730
+ declare function SectionRail({ sections, value, onValueChange, offset, root, side, motion, className, "aria-label": ariaLabel, ref, ...props }: SectionRailProps): react.JSX.Element;
6731
+ declare namespace SectionRail {
6732
+ var displayName: string;
6733
+ }
6734
+
6735
+ declare const sectionRailMeta: ComponentMeta;
6736
+
6474
6737
  /**
6475
6738
  * BottomNav — the mobile bottom tab bar. Fixed to the bottom edge, hidden at
6476
6739
  * `lg` (the desktop Sidebar takes over). Pads the home-indicator safe area and
@@ -6549,6 +6812,14 @@ interface PageHeaderProps extends Omit<ComponentPropsWithRef<"div">, "title"> {
6549
6812
  * shows a PageHeader as an example. @default "h1"
6550
6813
  */
6551
6814
  titleAs?: "h1" | "h2";
6815
+ /**
6816
+ * The title's scale. `md` (text-heading-2 over a text-body-sm description)
6817
+ * for product pages: settings, lists, dashboards. `lg` (text-display-lg over
6818
+ * a text-body-lg lede) for an editorial page: a personal site, a marketing
6819
+ * page, an article index. Display type is never product chrome, so keep `lg`
6820
+ * off app routes. @default "md"
6821
+ */
6822
+ size?: "md" | "lg";
6552
6823
  }
6553
6824
  /**
6554
6825
  * PageHeader — an in-flow page heading block: a title row (optional back control
@@ -6562,9 +6833,10 @@ interface PageHeaderProps extends Omit<ComponentPropsWithRef<"div">, "title"> {
6562
6833
  * must never be cut — and the actions drop under it when the row runs out of
6563
6834
  * room. Beside a back control or actions the title sits in a band one control
6564
6835
  * tall, so a one-line title centres on the buttons and a wrapped one starts level
6565
- * with them.
6836
+ * with them. A title whose line is taller than the controls (`size="lg"`) is
6837
+ * lifted by half the difference instead, so its first line still centres on them.
6566
6838
  */
6567
- declare function PageHeader({ title, description, back, actions, titleAs: Title, className, children, ...props }: PageHeaderProps): react.JSX.Element;
6839
+ declare function PageHeader({ title, description, back, actions, titleAs: Title, size, className, children, ...props }: PageHeaderProps): react.JSX.Element;
6568
6840
  declare namespace PageHeader {
6569
6841
  var displayName: string;
6570
6842
  }
@@ -6592,11 +6864,13 @@ interface SectionHeaderProps extends Omit<ComponentPropsWithRef<"div">, "title">
6592
6864
  */
6593
6865
  titleId?: string;
6594
6866
  /**
6595
- * Visual weight, independent of the heading level. `md` (text-heading-3) for
6596
- * a page's sections and shelves; `sm` (text-heading-4) for a denser set —
6597
- * settings groups, subsections, a sidebar's sections. @default "md"
6867
+ * Visual weight, independent of the heading level. `lg` (text-heading-2 over
6868
+ * a text-body-md description) for an editorial page's sections, under a
6869
+ * `PageHeader size="lg"`; `md` (text-heading-3) for a page's sections and
6870
+ * shelves; `sm` (text-heading-4) for a denser set — settings groups,
6871
+ * subsections, a sidebar's sections. @default "md"
6598
6872
  */
6599
- size?: "md" | "sm";
6873
+ size?: "lg" | "md" | "sm";
6600
6874
  }
6601
6875
  /**
6602
6876
  * SectionHeader — the heading block for one section of a page: a title, an
@@ -6614,7 +6888,9 @@ interface SectionHeaderProps extends Omit<ComponentPropsWithRef<"div">, "title">
6614
6888
  *
6615
6889
  * It shares PageHeader's title row: the title wraps rather than truncating,
6616
6890
  * the actions keep to the title's row and drop beneath it only when the row
6617
- * runs out of room. It carries no outer spacing — the Stack or Page it sits in
6891
+ * runs out of room. A title whose line is taller than the controls (`lg`, or
6892
+ * a denser register's shorter ladder) is lifted by half the difference, so its
6893
+ * first line stays centred on them. It carries no outer spacing — the Stack or Page it sits in
6618
6894
  * owns the rhythm between the header and what it introduces.
6619
6895
  */
6620
6896
  declare function SectionHeader({ title, description, actions, titleAs, titleId, size, className, ...props }: SectionHeaderProps): react.JSX.Element;
@@ -6624,7 +6900,20 @@ declare namespace SectionHeader {
6624
6900
 
6625
6901
  declare const sectionHeaderMeta: ComponentMeta;
6626
6902
 
6627
- interface SearchInputProps extends Omit<ComponentPropsWithRef<"input">, "onChange" | "value" | "defaultValue"> {
6903
+ /** The rungs of the control ladder a SearchInput stands on. */
6904
+ type SearchInputSize = "md" | "sm" | "xs";
6905
+ interface SearchInputProps extends Omit<ComponentPropsWithRef<"input">, "onChange" | "value" | "defaultValue" | "size"> {
6906
+ /**
6907
+ * Which rung of the control ladder the field stands on — the same names as
6908
+ * Input, Select and Combobox. `md` is the form field. `sm` is the toolbar
6909
+ * field: it shares `--control-sm` with Pill `lg` and Button `sm`, so a row
6910
+ * of filter chips beside the search is one height. `xs` is the inset
6911
+ * tool-panel field, Input `xs`'s surface. The magnifier and clear button
6912
+ * scale and stay centred at every rung. The native numeric `size` attribute
6913
+ * is omitted; the field's width comes from `className`.
6914
+ * @default "md"
6915
+ */
6916
+ size?: SearchInputSize;
6628
6917
  /** Controlled value of the search field. */
6629
6918
  value?: string;
6630
6919
  /**
@@ -6658,7 +6947,7 @@ interface SearchInputProps extends Omit<ComponentPropsWithRef<"input">, "onChang
6658
6947
  * Controlled via `value` + `onValueChange`, or uncontrolled via `defaultValue`;
6659
6948
  * pass `onClear` to hook the reset. `className` sizes the whole field.
6660
6949
  */
6661
- declare function SearchInput({ value, defaultValue, onValueChange, onClear, placeholder, className, inputClassName, ref, type, ...props }: SearchInputProps): react.JSX.Element;
6950
+ declare function SearchInput({ value, defaultValue, onValueChange, onClear, placeholder, className, inputClassName, size, ref, type, ...props }: SearchInputProps): react.JSX.Element;
6662
6951
  declare namespace SearchInput {
6663
6952
  var displayName: string;
6664
6953
  }
@@ -8631,6 +8920,14 @@ interface MediaImageProps extends Omit<ComponentPropsWithRef<"div">, "children">
8631
8920
  * the muted surface — a logo, a product shot that must not be cropped.
8632
8921
  */
8633
8922
  fit?: "cover" | "contain";
8923
+ /**
8924
+ * Where the image sits in its frame — CSS `object-position`, the sibling of
8925
+ * `fit`. Under `cover` it is the part kept when the crop trims the rest (a
8926
+ * face at `"50% 30%"`, a horizon at `"bottom"`); under `contain` it is the
8927
+ * side the letterbox gives way to. Takes any object-position value.
8928
+ * @default "center"
8929
+ */
8930
+ position?: CSSProperties["objectPosition"];
8634
8931
  /** `srcSet` / `sizes` for responsive images, passed to the `<img>`. */
8635
8932
  srcSet?: string;
8636
8933
  sizes?: string;
@@ -8661,7 +8958,7 @@ interface MediaImageProps extends Omit<ComponentPropsWithRef<"div">, "children">
8661
8958
  * — painting the art first would flash a colourful stand-in for a frame and
8662
8959
  * then swap it for the photo. Once loaded, the image fades in.
8663
8960
  */
8664
- declare function MediaImage({ src, alt, seed, fallback, fit, srcSet, sizes, loading, className, ...props }: MediaImageProps): react.JSX.Element;
8961
+ declare function MediaImage({ src, alt, seed, fallback, fit, position, srcSet, sizes, loading, className, ...props }: MediaImageProps): react.JSX.Element;
8665
8962
  declare namespace MediaImage {
8666
8963
  var displayName: string;
8667
8964
  }
@@ -8699,6 +8996,13 @@ interface MediaTileProps extends Omit<ComponentPropsWithRef<"div">, "title"> {
8699
8996
  alt?: string;
8700
8997
  /** Seeds the fallback art. Defaults to `title` when it is a string. */
8701
8998
  seed?: string | number;
8999
+ /**
9000
+ * Which part of the cover the crop keeps — CSS `object-position`, passed to
9001
+ * the cover's MediaImage: `"50% 30%"` for a face, `"top"` for a poster's
9002
+ * title. Store it with the image when each one frames differently.
9003
+ * @default "center"
9004
+ */
9005
+ position?: CSSProperties["objectPosition"];
8702
9006
  /**
8703
9007
  * The cover's shape: `square` (albums, podcasts, playlists), `video` (16:9),
8704
9008
  * `poster` (2:3 — films, books), or any width / height ratio.
@@ -8762,7 +9066,7 @@ interface MediaTileProps extends Omit<ComponentPropsWithRef<"div">, "title"> {
8762
9066
  * and the cover is drawn above it with `order`, so focus moves the way a
8763
9067
  * reader names the item — what it is, who made it, then what to do with it.
8764
9068
  */
8765
- declare function MediaTile({ title, subtitle, meta, src, srcSet, sizes, alt, seed, aspect, size, href, render, subtitleHref, subtitleRender, action, badge, titleAs: TitleTag, loading, className, ...props }: MediaTileProps): react.JSX.Element;
9069
+ declare function MediaTile({ title, subtitle, meta, src, srcSet, sizes, alt, seed, position, aspect, size, href, render, subtitleHref, subtitleRender, action, badge, titleAs: TitleTag, loading, className, ...props }: MediaTileProps): react.JSX.Element;
8766
9070
  declare namespace MediaTile {
8767
9071
  var displayName: string;
8768
9072
  }
@@ -9880,6 +10184,39 @@ interface SmoothWheelOptions {
9880
10184
  */
9881
10185
  declare function useSmoothWheel({ axis, mapVertical, smooth, }?: SmoothWheelOptions): (node: HTMLElement | null) => void;
9882
10186
 
9883
- declare const SABLE_UI_VERSION: "0.16.0";
10187
+ interface UseActiveSectionOptions {
10188
+ /**
10189
+ * Where the reading line sits, as a fraction of the viewport's height from
10190
+ * its top. A section becomes current once its top crosses the line, so the
10191
+ * one being read wins over the one merely peeking in at the bottom.
10192
+ * @default 0.35
10193
+ */
10194
+ offset?: number;
10195
+ /**
10196
+ * The element that scrolls, when it is not the window — a `Scroller`, an
10197
+ * inset `AppShell` main, a docs preview.
10198
+ */
10199
+ root?: RefObject<HTMLElement | null>;
10200
+ }
10201
+ /**
10202
+ * useActiveSection — which of these sections the reader is in. The scroll spy
10203
+ * behind `SectionRail`, exported for a contents list a consumer draws itself
10204
+ * (an "On this page" column, a chapter select).
10205
+ *
10206
+ * const active = useActiveSection(["intro", "usage", "api"])
10207
+ *
10208
+ * The current section is the last one, in the order given, whose top has
10209
+ * crossed the reading line (`offset`). Before any has, the first one is
10210
+ * current: the reader is at the start. Once the scroller reaches its end the
10211
+ * last section in view wins instead, because a short closing section can never
10212
+ * climb to the line and would otherwise never become current.
10213
+ *
10214
+ * Measures on scroll and resize, at most once a frame. Ids missing from the
10215
+ * document are skipped, so sections may mount late. Returns `null` only for an
10216
+ * empty list.
10217
+ */
10218
+ declare function useActiveSection(ids: readonly string[], { offset, root }?: UseActiveSectionOptions): string | null;
10219
+
10220
+ declare const SABLE_UI_VERSION: "0.18.0";
9884
10221
 
9885
- export { Accordion, AccordionItem, AccordionPanel, AccordionTrigger, AlertDialog, AlertDialogClose, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogOverlay, AlertDialogTitle, AlertDialogTrigger, AppHeader, type AppHeaderProps, AppShell, type AppShellProps, AreaChart, type AreaChartProps, type ArtIntensity, type ArtTone, 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, BubbleReactionAdd, type BubbleReactionAddProps, type BubbleReactionProps, BubbleReactions, type BubbleReactionsProps, Burst, type BurstProps, Button, type ButtonBleed, ButtonGroup, type ButtonGroupProps, type ButtonProps, CHART_SERIES_COUNT, COMPONENT_GROUPS, COMPONENT_TAXONOMY, Calendar, type CalendarProps, Card, CardAction, CardContent, type CardContentProps, CardDescription, CardFooter, type CardFooterProps, CardHeader, CardList, type CardProps, CardTitle, type CardTitleProps, CaretMenu, CaretMenuItem, type CaretMenuItemProps, type CaretMenuProps, type CaretTrigger, type CaretTriggerField, type CaretTriggerMatch, 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, ConfirmButton, type ConfirmButtonProps, type ConstraintFlag, ContextCard, ContextCardArrow, ContextCardContent, ContextCardPortal, ContextCardTrigger, ContextMenu, ContextMenuContent, ContextMenuGroup, ContextMenuGroupLabel, ContextMenuItem, ContextMenuPortal, ContextMenuSeparator, ContextMenuTrigger, type CopySource, DEFAULT_REACTIONS, DataTable, type DataTableColumn, type DataTableProps, type DataTableRowKey, 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, DisclosurePicker, DisclosurePickerEmpty, DisclosurePickerList, type DisclosurePickerListProps, DisclosurePickerOption, type DisclosurePickerOptionProps, DisclosurePickerPanel, type DisclosurePickerPanelProps, type DisclosurePickerProps, type DisclosurePickerSearch, DisclosurePickerTrigger, type DisclosurePickerTriggerProps, EmptyState, type EmptyStateProps, Entity, type EntityProps, Feedback, type FeedbackData, type FeedbackProps, type FeedbackRating, Field, type FieldProps, Fieldset, FieldsetContent, FieldsetDescription, FieldsetFooter, FieldsetLegend, type FieldsetVariant, FileDropzone, type FileDropzoneProps, type FileRejection, type FileRejectionCode, FontPicker, type FontPickerFont, type FontPickerOption, type FontPickerProps, Form, type FormProps, GlidingHighlight, type GlidingHighlightProps, GradientArt, type GradientArtProps, type Hsv, InlineStatus, type InlineStatusProps, type StatusTone as InlineTone, Input, InputGroup, type InputGroupProps, type InputProps$1 as InputProps, Kbd, KbdGroup, type KbdGroupProps, type KbdProps, Label, type LabelProps$2 as LabelProps, LikeButton, type LikeButtonProps, LineChart, type LineChartProps, Marker, type MarkerProps, Marquee, type MarqueeProps, MediaImage, type MediaImageProps, MediaTile, type MediaTileProps, Menu, MenuCheckboxItem, MenuContent, MenuGroup, MenuGroupLabel, MenuItem, MenuLinkItem, MenuPortal, MenuRadioGroup, MenuRadioItem, MenuReactions, type MenuReactionsProps, MenuSeparator, MenuSubmenu, MenuSubmenuTrigger, MenuTrigger, Menubar, type MenubarProps, MenubarTrigger, type MenubarTriggerProps, Message, type MessageProps, MessageScroller, type MessageScrollerHandle, type MessageScrollerProps, Meter, MeterIndicator, MeterLabel, type MeterSize, type MeterTone, MeterTrack, MeterValue, MiddleTruncate, type MiddleTruncateProps, type MotionLevel, type MotionPolicy, MotionProvider, type MotionProviderProps, MotionScope, type MotionScopeProps, NavigationMenu, NavigationMenuContent, NavigationMenuItem, NavigationMenuLink, NavigationMenuList, NavigationMenuTrigger, Note, type NoteAction, type NoteProps, NotificationBadge, type NotificationBadgeProps, NumberField, type NumberFieldProps, NumberTicker, type NumberTickerProps, type OrbMode, type OrbSize, OtpField, type OtpFieldProps, OverflowMenu, type OverflowMenuProps, PALETTE_COLORS, PALETTE_FAMILIES, PALETTE_SCALES, PALETTE_STEPS, PALETTE_TONES, PageHeader, type PageHeaderProps, PageLoader, type PageLoaderProps, Pagination, type PaginationProps, type PaletteColor, type PaletteFamily, type PaletteStep, 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, type Presentation, PresentationProvider, Progress, ProgressIndicator, ProgressLabel, type ProgressSize, ProgressTrack, ProgressValue, PropertyGroup, PropertyPair, PropertyRow, RadarChart, type RadarChartProps, RadialChart, type RadialChartProps, Radio, RadioCard, type RadioCardProps, type RadioCardTone, RadioGroup, type Reaction, ReactionPicker, type ReactionPickerProps, 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, SectionHeader, type SectionHeaderProps, SegmentedBar, type SegmentedBarProps, type SegmentedBarSegment, type SegmentedBarTone, Select, SelectContent, SelectGroup, SelectGroupLabel, SelectItem, SelectPortal, SelectSeparator, SelectTrigger, SelectValue, Separator, type SeparatorProps$2 as SeparatorProps, SettingsMenu, type SettingsMenuProps, SettingsRow, type SettingsRowProps, Sheet, SheetClose, SheetContent, SheetDescription, SheetFooter, SheetHeader, SheetList, SheetPortal, type SheetProps, type SheetSnapPoint, SheetTitle, SheetTrigger, ShowMore, type ShowMoreProps, SideNav, type SideNavActiveVariant, SideNavGroup, type SideNavGroupProps, SideNavItem, type SideNavItemProps, type SideNavProps, type SideNavSize, Sidebar, SidebarBrand, type SidebarBrandProps, SidebarFooter, SidebarHeader, SidebarItem, type SidebarItemProps, SidebarNav, type SidebarProps, SimpleTooltip, Skeleton, SkipLink, Slider, SliderControl, SliderIndicator, SliderRoot, SliderThumb, SliderTrack, SliderValue, type SmoothWheelOptions, 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, TOOL_CALL_STATUS_LABELS, 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, ThemePreview, type ThemePreviewProps, ThemeSelector, type ThemeSelectorProps, ThemeSwitcher, type ThemeSwitcherProps, ThinkingOrb, type ThinkingOrbProps, ToastAction, type ToastApi, ToastClose, ToastContent, ToastDescription, type ToastManagerApi, type ToastOptions, type ToastPosition, ToastProvider, type ToastProviderProps, ToastRoot, ToastTitle, type ToastType, ToastViewport, Toggle, ToggleGroup, type ToggleGroupAppearance, Toggle as ToggleGroupItem, ToolCall, type ToolCallProps, type ToolCallStatus, Toolbar, ToolbarButton, type ToolbarButtonProps, ToolbarGroup, type ToolbarGroupProps, ToolbarInput, type ToolbarInputProps, ToolbarLink, type ToolbarLinkProps, type ToolbarProps, ToolbarSeparator, type ToolbarSeparatorProps, Tooltip, TooltipArrow, TooltipContent, TooltipGroup, type TooltipGroupProps, TooltipPortal, TooltipProvider, TooltipTrigger, Tree, TreeAddRow, TreeEmpty, TreeRow, TreeSection, type UseCaretTriggerOptions, type UseCaretTriggerResult, type UseCopyOptions, type UseCopyResult, type UseInViewOptions, type UseMatchHighlightOptions, 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, buttonGroupMeta, buttonMeta, buttonVariants, calendarMeta, cardMeta, caretMenuMeta, carouselMeta, chartColor, toneColor as chartToneColor, chatComposerMeta, checkboxCardMeta, checkboxMeta, cn, codeBlockMeta, codeMeta, collapsibleMeta, colorFieldMeta, comboboxMeta, commandMenuMeta, componentGuidance, componentLabel, componentSlug, componentsInGroup, confirmButtonMeta, contextCardMeta, contextMenuMeta, dataTableMeta, datePickerMeta, dateTileMeta, destructiveActionModalMeta, dialogMeta, disclosurePickerMeta, emptyStateMeta, entityMeta, feedbackMeta, fieldsetMeta, fileDropzoneMeta, fileDropzoneVariants, fontPickerMeta, formMeta, formatFileSize, formatHex, glidingHighlightMeta, gradientArtMeta, hsvToRgb, hueColor, inlineStatusMeta, inputGroupMeta, inputMeta, isPaletteColor, isTransparent, kbdMeta, labelMeta, likeButtonMeta, lineChartMeta, markerMeta, marqueeMeta, mediaImageMeta, mediaTileMeta, menuMeta, menubarMeta, messageMeta, messageScrollerMeta, meterIndicatorVariants, meterMeta, meterTrackVariants, middleTruncateMeta, motionAttribute, navigationMenuMeta, noteMeta, noteVariants, notificationBadgeMeta, notificationCountVariants, notificationDotVariants, numberFieldMeta, numberTickerMeta, otpFieldMeta, overflowMenuMeta, pageHeaderMeta, pageLoaderMeta, paginationMeta, panelGroupMeta, panelSectionMeta, parseHex, phoneMeta, pieChartMeta, pillMeta, pillVariants, popoverMeta, progressMeta, progressTrackVariants, radarChartMeta, radialChartMeta, radioCardMeta, radioMeta, reactionPickerMeta, relativeTimeMeta, rgbToHsv, scrollerMeta, scrubFieldMeta, searchInputMeta, sectionHeaderMeta, 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, toolCallMeta, toolbarGroupVariants, toolbarMeta, toolbarSeparatorVariants, toolbarVariants, tooltipMeta, treeIndent, treeMeta, useAnchoredDensity, useAutoSize, useCaretTrigger, useComboboxFilteredItems, useCommandMenuShortcut, useCopy, useDensity, useDisclosurePicker, useInView, useMatchHighlight, useMotion, useMotionLevel, usePanelWidth, usePresentation, useReducedMotion, useScrollActivity, useShake, useSidebar, useSmoothWheel, useToast, useToastManager, useTypeTier, videoMeta, workspaceMeta };
10222
+ export { Accordion, AccordionItem, AccordionPanel, AccordionTrigger, ActivityData, type ActivityGrid, ActivityHeatmap, type ActivityHeatmapCell, type ActivityHeatmapDay, type ActivityHeatmapProps, type ActivityLevels, type ActivityMonth, type ActivityScale, type ActivityStats, type ActivityWeek, AlertDialog, AlertDialogClose, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogOverlay, AlertDialogTitle, AlertDialogTrigger, AppHeader, type AppHeaderProps, AppShell, type AppShellProps, AreaChart, type AreaChartProps, type ArtIntensity, type ArtTone, 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, BubbleReactionAdd, type BubbleReactionAddProps, type BubbleReactionProps, BubbleReactions, type BubbleReactionsProps, Burst, type BurstProps, Button, type ButtonBleed, ButtonGroup, type ButtonGroupProps, type ButtonProps, CHART_SERIES_COUNT, COMPONENT_GROUPS, COMPONENT_TAXONOMY, Calendar, type CalendarProps, Card, CardAction, CardContent, type CardContentProps, CardDescription, CardFooter, type CardFooterProps, CardHeader, CardList, type CardProps, CardTitle, type CardTitleProps, CaretMenu, CaretMenuItem, type CaretMenuItemProps, type CaretMenuProps, type CaretTrigger, type CaretTriggerField, type CaretTriggerMatch, 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, ConfirmButton, type ConfirmButtonProps, type ConstraintFlag, ContextCard, ContextCardArrow, ContextCardContent, ContextCardPortal, ContextCardTrigger, ContextMenu, ContextMenuContent, ContextMenuGroup, ContextMenuGroupLabel, ContextMenuItem, ContextMenuPortal, ContextMenuSeparator, ContextMenuTrigger, type CopySource, DEFAULT_REACTIONS, DataTable, type DataTableColumn, type DataTableProps, type DataTableRowKey, 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, DisclosurePicker, DisclosurePickerEmpty, DisclosurePickerList, type DisclosurePickerListProps, DisclosurePickerOption, type DisclosurePickerOptionProps, DisclosurePickerPanel, type DisclosurePickerPanelProps, type DisclosurePickerProps, type DisclosurePickerSearch, DisclosurePickerTrigger, type DisclosurePickerTriggerProps, EmptyState, type EmptyStateProps, Entity, type EntityProps, Feedback, type FeedbackData, type FeedbackProps, type FeedbackRating, Field, type FieldProps, Fieldset, FieldsetContent, FieldsetDescription, FieldsetFooter, FieldsetLegend, type FieldsetVariant, FileDropzone, type FileDropzoneProps, type FileRejection, type FileRejectionCode, FontPicker, type FontPickerFont, type FontPickerOption, type FontPickerProps, Form, type FormProps, GlidingHighlight, type GlidingHighlightProps, GradientArt, type GradientArtProps, type Hsv, InlineStatus, type InlineStatusProps, type StatusTone as InlineTone, Input, InputGroup, type InputGroupProps, type InputProps$1 as InputProps, Kbd, KbdGroup, type KbdGroupProps, type KbdProps, Label, type LabelProps$2 as LabelProps, LikeButton, type LikeButtonProps, LineChart, type LineChartProps, Marker, type MarkerProps, Marquee, type MarqueeProps, MediaImage, type MediaImageProps, MediaTile, type MediaTileProps, Menu, MenuCheckboxItem, MenuContent, MenuGroup, MenuGroupLabel, MenuItem, MenuLinkItem, MenuPortal, MenuRadioGroup, MenuRadioItem, MenuReactions, type MenuReactionsProps, MenuSeparator, MenuSubmenu, MenuSubmenuTrigger, MenuTrigger, Menubar, type MenubarProps, MenubarTrigger, type MenubarTriggerProps, Message, type MessageProps, MessageScroller, type MessageScrollerHandle, type MessageScrollerProps, Meter, MeterIndicator, MeterLabel, type MeterSize, type MeterTone, MeterTrack, MeterValue, MiddleTruncate, type MiddleTruncateProps, type MotionLevel, type MotionPolicy, MotionProvider, type MotionProviderProps, MotionScope, type MotionScopeProps, NavigationMenu, NavigationMenuContent, NavigationMenuItem, NavigationMenuLink, NavigationMenuList, NavigationMenuTrigger, Note, type NoteAction, type NoteProps, NotificationBadge, type NotificationBadgeProps, NumberField, type NumberFieldProps, NumberTicker, type NumberTickerProps, type OrbMode, type OrbSize, OtpField, type OtpFieldProps, OverflowMenu, type OverflowMenuProps, PALETTE_COLORS, PALETTE_FAMILIES, PALETTE_SCALES, PALETTE_STEPS, PALETTE_TONES, PageHeader, type PageHeaderProps, PageLoader, type PageLoaderProps, Pagination, type PaginationProps, type PaletteColor, type PaletteFamily, type PaletteStep, 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, type Presentation, PresentationProvider, Progress, ProgressIndicator, ProgressLabel, type ProgressSize, ProgressTrack, ProgressValue, PropertyGroup, PropertyPair, PropertyRow, RadarChart, type RadarChartProps, RadialChart, type RadialChartProps, Radio, RadioCard, type RadioCardProps, type RadioCardTone, RadioGroup, type Reaction, ReactionPicker, type ReactionPickerProps, 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, SectionHeader, type SectionHeaderProps, SectionRail, type SectionRailProps, type SectionRailSection, SegmentedBar, type SegmentedBarProps, type SegmentedBarSegment, type SegmentedBarTone, Select, SelectContent, SelectGroup, SelectGroupLabel, SelectItem, SelectPortal, SelectSeparator, SelectTrigger, SelectValue, Separator, type SeparatorProps$2 as SeparatorProps, SettingsMenu, type SettingsMenuProps, SettingsRow, type SettingsRowProps, Sheet, SheetClose, SheetContent, SheetDescription, SheetFooter, SheetHeader, SheetList, SheetPortal, type SheetProps, type SheetSnapPoint, SheetTitle, SheetTrigger, ShowMore, type ShowMoreProps, SideNav, type SideNavActiveVariant, SideNavGroup, type SideNavGroupProps, SideNavItem, type SideNavItemProps, type SideNavProps, type SideNavSize, Sidebar, SidebarBrand, type SidebarBrandProps, SidebarFooter, SidebarHeader, SidebarItem, type SidebarItemProps, SidebarNav, type SidebarProps, SimpleTooltip, Skeleton, SkipLink, Slider, SliderControl, SliderIndicator, SliderRoot, SliderThumb, SliderTrack, SliderValue, type SmoothWheelOptions, 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, TOOL_CALL_STATUS_LABELS, 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, ThemePreview, type ThemePreviewProps, ThemeSelector, type ThemeSelectorProps, ThemeSwitcher, type ThemeSwitcherProps, ThinkingOrb, type ThinkingOrbProps, ToastAction, type ToastApi, ToastClose, ToastContent, ToastDescription, type ToastManagerApi, type ToastOptions, type ToastPosition, ToastProvider, type ToastProviderProps, ToastRoot, ToastTitle, type ToastType, ToastViewport, Toggle, ToggleGroup, type ToggleGroupAppearance, Toggle as ToggleGroupItem, ToolCall, type ToolCallProps, type ToolCallStatus, Toolbar, ToolbarButton, type ToolbarButtonProps, ToolbarGroup, type ToolbarGroupProps, ToolbarInput, type ToolbarInputProps, ToolbarLink, type ToolbarLinkProps, type ToolbarProps, ToolbarSeparator, type ToolbarSeparatorProps, Tooltip, TooltipArrow, TooltipContent, TooltipGroup, type TooltipGroupProps, TooltipPortal, TooltipProvider, TooltipTrigger, Tree, TreeAddRow, TreeEmpty, TreeRow, TreeSection, type UseActiveSectionOptions, type UseCaretTriggerOptions, type UseCaretTriggerResult, type UseCopyOptions, type UseCopyResult, type UseInViewOptions, type UseMatchHighlightOptions, type UsePanelWidthOptions, Video, type VideoProps, ViewTransitionName, type ViewTransitionNameProps, Workspace, WorkspaceBar, WorkspaceCanvas, accordionMeta, activityGrid, activityHeatmapMeta, activityLevels, appHeaderMeta, appShellMeta, areaChartMeta, attachmentMeta, avatarGroupVariants, avatarMeta, avatarVariants, badgeMeta, badgeVariants, bannerMeta, bannerVariants, barChartMeta, bottomNavMeta, breadcrumbsMeta, browserMeta, bubbleMeta, buttonGroupMeta, buttonMeta, buttonVariants, calendarMeta, cardMeta, caretMenuMeta, carouselMeta, chartColor, toneColor as chartToneColor, chatComposerMeta, checkboxCardMeta, checkboxMeta, cn, codeBlockMeta, codeMeta, collapsibleMeta, colorFieldMeta, comboboxMeta, commandMenuMeta, componentGuidance, componentLabel, componentSlug, componentsInGroup, confirmButtonMeta, contextCardMeta, contextMenuMeta, dataTableMeta, datePickerMeta, dateTileMeta, destructiveActionModalMeta, dialogMeta, disclosurePickerMeta, emptyStateMeta, entityMeta, feedbackMeta, fieldsetMeta, fileDropzoneMeta, fileDropzoneVariants, fontPickerMeta, formMeta, formatFileSize, formatHex, glidingHighlightMeta, gradientArtMeta, hsvToRgb, hueColor, inlineStatusMeta, inputGroupMeta, inputMeta, isPaletteColor, isTransparent, kbdMeta, labelMeta, likeButtonMeta, lineChartMeta, markerMeta, marqueeMeta, mediaImageMeta, mediaTileMeta, menuMeta, menubarMeta, messageMeta, messageScrollerMeta, meterIndicatorVariants, meterMeta, meterTrackVariants, middleTruncateMeta, motionAttribute, navigationMenuMeta, noteMeta, noteVariants, notificationBadgeMeta, notificationCountVariants, notificationDotVariants, numberFieldMeta, numberTickerMeta, otpFieldMeta, overflowMenuMeta, pageHeaderMeta, pageLoaderMeta, paginationMeta, panelGroupMeta, panelSectionMeta, parseHex, phoneMeta, pieChartMeta, pillMeta, pillVariants, popoverMeta, progressMeta, progressTrackVariants, radarChartMeta, radialChartMeta, radioCardMeta, radioMeta, reactionPickerMeta, relativeTimeMeta, rgbToHsv, scrollerMeta, scrubFieldMeta, searchInputMeta, sectionHeaderMeta, sectionRailMeta, 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, toolCallMeta, toolbarGroupVariants, toolbarMeta, toolbarSeparatorVariants, toolbarVariants, tooltipMeta, treeIndent, treeMeta, useActiveSection, useAnchoredDensity, useAutoSize, useCaretTrigger, useComboboxFilteredItems, useCommandMenuShortcut, useCopy, useDensity, useDisclosurePicker, useInView, useMatchHighlight, useMotion, useMotionLevel, usePanelWidth, usePresentation, useReducedMotion, useScrollActivity, useShake, useSidebar, useSmoothWheel, useToast, useToastManager, useTypeTier, videoMeta, workspaceMeta };