@sableui/react 0.18.0 → 0.19.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 (84) hide show
  1. package/CHANGELOG.md +129 -0
  2. package/bin/sable.mjs +108 -14
  3. package/dist/{_contract-CDa9-NdB.d.ts → _contract-DlklV0Im.d.ts} +2 -2
  4. package/dist/blocks/index.d.ts +1 -1
  5. package/dist/components/avatar/avatar.js +16 -7
  6. package/dist/components/avatar/avatar.meta.js +43 -10
  7. package/dist/components/avatar/avatar.variants.js +26 -2
  8. package/dist/components/collapsible/collapsible.js +6 -5
  9. package/dist/components/collapsible/collapsible.meta.js +14 -5
  10. package/dist/components/data-table/data-table.js +132 -45
  11. package/dist/components/data-table/data-table.meta.js +63 -4
  12. package/dist/components/date-picker/date-picker.js +13 -6
  13. package/dist/components/date-picker/date-picker.meta.js +22 -0
  14. package/dist/components/menu/menu.js +2 -0
  15. package/dist/components/menu/menu.meta.js +2 -2
  16. package/dist/components/panel-group/panel-group.js +17 -1
  17. package/dist/components/panel-group/panel-group.meta.js +43 -3
  18. package/dist/components/side-nav/side-nav.variants.js +8 -3
  19. package/dist/components/sidebar/index.js +4 -0
  20. package/dist/components/sidebar/sidebar.js +90 -11
  21. package/dist/components/sidebar/sidebar.meta.js +38 -4
  22. package/dist/components/table/table.js +7 -3
  23. package/dist/components/tabs/tabs.js +10 -2
  24. package/dist/components/tabs/tabs.meta.js +4 -0
  25. package/dist/components/workspace/workspace.js +13 -3
  26. package/dist/components/workspace/workspace.meta.js +109 -1
  27. package/dist/file-hashes.json +53 -49
  28. package/dist/foundations/typography.js +13 -0
  29. package/dist/icon/Icon.js +21 -2
  30. package/dist/icon/index.d.ts +36 -1
  31. package/dist/icon/index.js +5 -0
  32. package/dist/icon/names.js +240 -0
  33. package/dist/icon-sets/reicon.js +19 -1
  34. package/dist/index.d.ts +272 -50
  35. package/dist/index.js +11 -1
  36. package/dist/lib/chart/heat.js +1 -1
  37. package/dist/lib/cn.js +1 -0
  38. package/dist/lib/use-media-query.js +41 -0
  39. package/dist/{meta-DX5r5wQL.d.ts → meta-Dfm9AExe.d.ts} +6 -0
  40. package/dist/patterns/dashboard-page.js +23 -17
  41. package/dist/patterns/index.d.ts +7 -2
  42. package/dist/patterns/index.js +5 -1
  43. package/dist/patterns/tracker-page.js +392 -0
  44. package/dist/patterns/tracker-page.meta.js +40 -0
  45. package/dist/presets/index.d.ts +1 -1
  46. package/dist/styles.css +179 -74
  47. package/dist/{theme-provider-BydfM5Z0.d.ts → theme-provider-BUBealk_.d.ts} +1 -1
  48. package/dist/themes/_contract.js +9 -1
  49. package/dist/themes/atelier/index.d.ts +1 -1
  50. package/dist/themes/ember/index.d.ts +1 -1
  51. package/dist/themes/index.d.ts +2 -2
  52. package/dist/themes/meridian/index.d.ts +1 -1
  53. package/dist/themes/poppy/index.d.ts +1 -1
  54. package/dist/themes/prism/index.d.ts +1 -1
  55. package/dist/themes/sable/index.d.ts +1 -1
  56. package/dist/themes/verdant/index.d.ts +1 -1
  57. package/llms/components/avatar.md +32 -9
  58. package/llms/components/collapsible.md +12 -4
  59. package/llms/components/data-table.md +40 -3
  60. package/llms/components/date-picker.md +15 -1
  61. package/llms/components/menu.md +1 -1
  62. package/llms/components/panel-group.md +34 -2
  63. package/llms/components/sidebar.md +17 -4
  64. package/llms/components/tabs.md +1 -0
  65. package/llms/components/workspace.md +81 -1
  66. package/llms/foundations/typography.md +4 -1
  67. package/llms/patterns/dashboard-page.md +18 -15
  68. package/llms/patterns/tracker-page.md +450 -0
  69. package/llms/reference/token-intent.md +3 -1
  70. package/llms/reference/utilities.md +4 -1
  71. package/llms/tasks/auditing-an-app.md +4 -1
  72. package/llms/tasks/building-a-page.md +3 -2
  73. package/llms/tasks/building-a-tool.md +101 -5
  74. package/llms/tasks/building-with-sable.md +11 -3
  75. package/llms/tasks/creating-a-preset.md +9 -0
  76. package/llms-full.txt +843 -54
  77. package/llms.txt +8 -7
  78. package/package.json +2 -1
  79. package/registry.json +491 -36
  80. package/scripts/adoption.mjs +15 -2
  81. package/scripts/app-css.mjs +129 -0
  82. package/scripts/grade.mjs +161 -2
  83. package/scripts/lint-rules.mjs +126 -0
  84. package/skills/sable/SKILL.md +33 -4
package/dist/index.d.ts CHANGED
@@ -1,12 +1,13 @@
1
1
  import { ClassValue } from 'clsx';
2
- import { C as ComponentMeta } from './meta-DX5r5wQL.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-DX5r5wQL.js';
4
- import { T as ThemeManifest, a as ThemeMode$1 } from './_contract-CDa9-NdB.js';
5
- export { A as APP_SHELL_TOKENS, b as ART_TOKENS, D as DENSITY_TOKENS, c as DensityToken, F as FIELD_TOKENS, M as MARK_TOKENS, d as MOTION_TOKENS, e as MotionToken, P as PALETTE_TOKENS, R as RADIUS_TOKENS, f as RHYTHM_TOKENS, g as RadiusToken, h as RhythmToken, S as SEMANTIC_TOKENS, i as SemanticToken, j as TYPE_OVERLINE_TOKENS, k as TYPE_REFINEMENT_TOKENS, l as TYPE_SCALE_TOKENS, m as TYPE_UI_TOKENS, n as TypeOverlineToken, o as TypeRefinementToken, p as TypeScaleToken, q as TypeUiToken, W as WORKSPACE_SURFACE_TOKENS, r as WorkspaceSurfaceToken } from './_contract-CDa9-NdB.js';
6
- import { T as ThemeId } from './theme-provider-BydfM5Z0.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-BydfM5Z0.js';
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
- export { Icon, IconContextValue, IconProps, IconProvider, IconProviderProps, composeIconSets, useIconSet } from './icon/index.js';
2
+ import { C as ComponentMeta } from './meta-Dfm9AExe.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-Dfm9AExe.js';
4
+ import { T as ThemeManifest, a as ThemeMode$1 } from './_contract-DlklV0Im.js';
5
+ export { A as APP_SHELL_TOKENS, b as ART_TOKENS, D as DENSITY_TOKENS, c as DensityToken, F as FIELD_TOKENS, M as MARK_TOKENS, d as MOTION_TOKENS, e as MotionToken, P as PALETTE_TOKENS, R as RADIUS_TOKENS, f as RHYTHM_TOKENS, g as RadiusToken, h as RhythmToken, S as SEMANTIC_TOKENS, i as SemanticToken, j as TYPE_OVERLINE_TOKENS, k as TYPE_REFINEMENT_TOKENS, l as TYPE_SCALE_TOKENS, m as TYPE_UI_TOKENS, n as TypeOverlineToken, o as TypeRefinementToken, p as TypeScaleToken, q as TypeUiToken, W as WORKSPACE_SURFACE_TOKENS, r as WorkspaceSurfaceToken } from './_contract-DlklV0Im.js';
6
+ import { T as ThemeId } from './theme-provider-BUBealk_.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-BUBealk_.js';
8
+ import { Breakpoint } from './layout/index.js';
9
+ export { AspectBox, AspectBoxProps, Bleed, BleedProps, 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';
10
+ export { ICON_ALIASES, ICON_NAMES, Icon, IconContextValue, IconName, IconProps, IconProvider, IconProviderProps, composeIconSets, nearestIconNames, resolveIconAlias, useIconSet } from './icon/index.js';
10
11
  export { a as IconRenderProps, I as IconSet, b as IconVariant } from './registry-CyL28OzJ.js';
11
12
  import * as react from 'react';
12
13
  import { ReactNode, AnimationEvent, ComponentPropsWithoutRef, ElementType, ReactElement, Ref, ComponentPropsWithRef, MouseEvent, ComponentProps, AriaAttributes, RefObject, FormEvent, CSSProperties } from 'react';
@@ -1128,6 +1129,11 @@ type SubmenuTriggerProps = Omit<ComponentProps<typeof Menu$1.SubmenuTrigger>, "c
1128
1129
  className?: string;
1129
1130
  /** Trailing value shown before the chevron — the current choice, usually. */
1130
1131
  value?: ComponentProps<"span">["children"];
1132
+ /**
1133
+ * Leading icon, as MenuItem's: a submenu row among items that have icons
1134
+ * takes one too, or its label starts a column left of theirs.
1135
+ */
1136
+ icon?: ReactNode;
1131
1137
  };
1132
1138
  /**
1133
1139
  * The row that opens a submenu. Styled as a MenuItem plus a trailing chevron,
@@ -1135,7 +1141,7 @@ type SubmenuTriggerProps = Omit<ComponentProps<typeof Menu$1.SubmenuTrigger>, "c
1135
1141
  * as `Effort High ›` rather than making the reader open each row to find out
1136
1142
  * what is set.
1137
1143
  */
1138
- declare function MenuSubmenuTrigger({ className, children, value, ...props }: SubmenuTriggerProps): react.JSX.Element;
1144
+ declare function MenuSubmenuTrigger({ className, children, value, icon, ...props }: SubmenuTriggerProps): react.JSX.Element;
1139
1145
  /**
1140
1146
  * A single-choice group inside a menu. Controlled via `value`/`onValueChange`,
1141
1147
  * uncontrolled via `defaultValue`.
@@ -1253,7 +1259,7 @@ declare const BADGE_APPEARANCES: readonly ["soft", "outline", "solid", "overlay"
1253
1259
  type BadgeAppearance = (typeof BADGE_APPEARANCES)[number];
1254
1260
  declare const badgeVariants: (props?: ({
1255
1261
  appearance?: "overlay" | "outline" | "solid" | "soft" | "plain" | null | undefined;
1256
- tone?: "1" | "2" | "3" | "destructive" | "success" | "blue" | "green" | "orange" | "pink" | "purple" | "red" | "teal" | "yellow" | "neutral" | "warning" | "info" | null | undefined;
1262
+ tone?: "1" | "2" | "3" | "destructive" | "success" | "blue" | "green" | "orange" | "pink" | "purple" | "red" | "teal" | "yellow" | "info" | "warning" | "neutral" | null | undefined;
1257
1263
  size?: "sm" | "md" | null | undefined;
1258
1264
  } & class_variance_authority_types.ClassProp) | undefined) => string;
1259
1265
 
@@ -2071,22 +2077,9 @@ declare namespace TooltipGroup {
2071
2077
 
2072
2078
  declare const tooltipMeta: ComponentMeta;
2073
2079
 
2074
- /**
2075
- * Avatar root — a circular, fixed-size frame that clips its image. The only axis
2076
- * is `size`, which sets the square footprint; the image and fallback inherit it.
2077
- * `bg-muted` is the resting surface shown behind a loading or missing image.
2078
- * Each size also sets the tier its initials (and a group's "+N") take, so the
2079
- * initials grow with the circle instead of one 12px label at every size. They
2080
- * hold roughly 30% of the diameter all the way up: the label tiers cover the
2081
- * row sizes; past them the initials are a mark standing in for a face — type
2082
- * as image — so the portrait sizes borrow heading-2 (28px in 96) and display-lg
2083
- * (48px in 160), the tiers built to be read as a shape at that size.
2084
- *
2085
- * `xl` and `2xl` are portrait sizes — a profile header, an artist hero, a
2086
- * roster tile — not row sizes, so AvatarGroup stops at `lg`.
2087
- */
2088
2080
  declare const avatarVariants: (props?: ({
2089
- size?: "sm" | "md" | "lg" | "xl" | "2xl" | null | undefined;
2081
+ size?: "sm" | "md" | "lg" | "xl" | "2xl" | "xs" | "2xs" | null | undefined;
2082
+ shape?: "square" | "circle" | null | undefined;
2090
2083
  } & class_variance_authority_types.ClassProp) | undefined) => string;
2091
2084
  /**
2092
2085
  * AvatarGroup — an overlapping stack. Each child is pulled left by about an
@@ -2101,7 +2094,7 @@ declare const avatarVariants: (props?: ({
2101
2094
  * cases.
2102
2095
  */
2103
2096
  declare const avatarGroupVariants: (props?: ({
2104
- size?: "sm" | "md" | "lg" | null | undefined;
2097
+ size?: "sm" | "md" | "lg" | "xs" | "2xs" | null | undefined;
2105
2098
  surface?: "card" | "background" | "popover" | "muted" | null | undefined;
2106
2099
  } & class_variance_authority_types.ClassProp) | undefined) => string;
2107
2100
 
@@ -2116,13 +2109,22 @@ declare const avatarGroupVariants: (props?: ({
2116
2109
  *
2117
2110
  * <Avatar src={user.pfp} alt={user.name} fallback="AM" size="lg" />
2118
2111
  */
2112
+ /** The fallback's colour: the muted surface, or a palette family's wash and ink. */
2113
+ type AvatarTone = "neutral" | PaletteColor;
2119
2114
  type RootProps$5 = Omit<ComponentProps<typeof Avatar$1.Root>, "className"> & VariantProps<typeof avatarVariants> & {
2115
+ /**
2116
+ * Paint the resting surface from a palette family instead of the muted
2117
+ * grey: its wash behind, its deep ink on the initials — the pair a soft
2118
+ * Badge uses, held to contrast in every theme. For a category colour (a
2119
+ * project, a workspace, a team) that should not read as a status.
2120
+ */
2121
+ tone?: AvatarTone;
2120
2122
  className?: string;
2121
2123
  };
2122
2124
  /** The row sizes. `xl`/`2xl` are portraits, which are never stacked. */
2123
2125
  type AvatarGroupSize = NonNullable<VariantProps<typeof avatarGroupVariants>["size"]>;
2124
- /** The circular frame. Clips the image; holds the `size` axis. */
2125
- declare function AvatarRoot({ size, className, ...props }: RootProps$5): react.JSX.Element;
2126
+ /** The frame. Clips the image; holds the `size`, `shape` and `tone` axes. */
2127
+ declare function AvatarRoot({ size, shape, tone, className, ...props }: RootProps$5): react.JSX.Element;
2126
2128
  declare namespace AvatarRoot {
2127
2129
  var displayName: string;
2128
2130
  }
@@ -2176,7 +2178,7 @@ interface AvatarProps extends RootProps$5 {
2176
2178
  * The ergonomic, all-in-one avatar. Composes Root + Image + Fallback from simple
2177
2179
  * props. Pass `src`/`alt` for the picture and `fallback` for the resting state.
2178
2180
  */
2179
- declare function Avatar({ src, alt, fallback, fallbackDelay, size, status, variant, seed, className, ...props }: AvatarProps): react.JSX.Element;
2181
+ declare function Avatar({ src, alt, fallback, fallbackDelay, size, shape, tone, status, variant, seed, className, ...props }: AvatarProps): react.JSX.Element;
2180
2182
  declare namespace Avatar {
2181
2183
  var displayName: string;
2182
2184
  }
@@ -2198,7 +2200,8 @@ declare namespace AvatarGroupCount {
2198
2200
  }
2199
2201
  interface AvatarGroupProps extends Omit<ComponentProps<"div">, "className"> {
2200
2202
  /**
2201
- * Size of every avatar in the group: 32px / 40px / 48px. Overrides each
2203
+ * Size of every avatar in the group: 20px / 24px for dense rows, 32px /
2204
+ * 40px / 48px otherwise. Overrides each
2202
2205
  * child's own size. The portrait sizes (`xl`, `2xl`) are not offered: a
2203
2206
  * stack is a row-sized summary of people, never a set of portraits.
2204
2207
  */
@@ -2795,7 +2798,7 @@ declare const numberTickerMeta: ComponentMeta;
2795
2798
  * failed).
2796
2799
  */
2797
2800
  declare const segmentedBarSegmentVariants: (props?: ({
2798
- tone?: "1" | "2" | "3" | "primary" | "destructive" | "success" | "neutral" | "warning" | "info" | null | undefined;
2801
+ tone?: "1" | "2" | "3" | "primary" | "destructive" | "success" | "info" | "warning" | "neutral" | null | undefined;
2799
2802
  } & class_variance_authority_types.ClassProp) | undefined) => string;
2800
2803
  /** Bar thickness — the same three rails as Meter and Progress. */
2801
2804
  declare const segmentedBarVariants: (props?: ({
@@ -4110,6 +4113,13 @@ declare const sheetMeta: ComponentMeta;
4110
4113
  * Styled native table. Wraps the <table> in a horizontally scrollable frame so
4111
4114
  * wide tables stay responsive without breaking layout. Caption renders at the
4112
4115
  * bottom. No rounding on cells; rows are separated by hairline borders.
4116
+ *
4117
+ * Density-aware. The head height and the cells' block padding read
4118
+ * `--table-head-h` / `--table-cell-py`, which the compact scope sets (28px
4119
+ * head, 32px rows), and the cells' type follows the register: body-sm on a
4120
+ * page, the 12px ui reading tier in a workspace — a row is the content a
4121
+ * tracker is read for, so it takes prose weight, not the 11px supporting tier
4122
+ * the compact remap would otherwise give body-sm.
4113
4123
  */
4114
4124
  declare function Table({ className, ...props }: ComponentPropsWithRef<"table">): react.JSX.Element;
4115
4125
  declare namespace Table {
@@ -4194,6 +4204,19 @@ interface DataTableColumn<Row> {
4194
4204
  className?: string;
4195
4205
  }
4196
4206
  type DataTableRowKey = string | number;
4207
+ /** How one group of rows is labelled and ordered. */
4208
+ interface DataTableGroup {
4209
+ /** The value `groupBy` returns for the rows in this group. */
4210
+ key: string;
4211
+ /** The group's name in its header row. @default the key */
4212
+ label?: ReactNode;
4213
+ /** A leading glyph for the header row — a status mark, an icon. */
4214
+ icon?: ReactNode;
4215
+ /** Trailing controls in the header row, e.g. an icon Button that adds a row to this group. */
4216
+ action?: ReactNode;
4217
+ /** Whether the group starts open when `expandedGroups` is not passed. @default true */
4218
+ defaultExpanded?: boolean;
4219
+ }
4197
4220
  interface DataTableProps<Row> {
4198
4221
  /** Column definitions, left to right. */
4199
4222
  columns: DataTableColumn<Row>[];
@@ -4227,13 +4250,32 @@ interface DataTableProps<Row> {
4227
4250
  empty?: ReactNode;
4228
4251
  /** Bottom caption. */
4229
4252
  caption?: ReactNode;
4253
+ /**
4254
+ * Group the rows under header rows, by the key this returns (a status, an
4255
+ * owner, a day). One header for the whole table, so every group shares the
4256
+ * columns; sorting applies within each group.
4257
+ */
4258
+ groupBy?: (row: Row) => string;
4259
+ /**
4260
+ * Order and presentation of the groups, by key. Groups `groupBy` returns
4261
+ * that are not listed follow, in the order their first row appears in `data`.
4262
+ * A listed group with no rows is not shown.
4263
+ */
4264
+ groups?: DataTableGroup[];
4265
+ /** Whether a group's header row opens and closes it. @default true */
4266
+ collapsible?: boolean;
4267
+ /** The open groups, by key (controlled). Without it each group starts at its `defaultExpanded`. */
4268
+ expandedGroups?: ReadonlySet<string>;
4269
+ /** Called with the new set of open group keys when a group is opened or closed. */
4270
+ onExpandedGroupsChange?: (keys: Set<string>) => void;
4230
4271
  className?: string;
4231
4272
  }
4232
4273
  /**
4233
4274
  * DataTable — a data-driven table over the Table primitives: a `columns` def + a
4234
4275
  * `data` array, with built-in client-side sorting (click a `sortable` header to
4235
4276
  * cycle asc → desc → none), optional row click, checkbox selection for bulk
4236
- * actions (`selectedKeys` + `onSelectedKeysChange`), and an empty state.
4277
+ * actions (`selectedKeys` + `onSelectedKeysChange`), rows grouped under
4278
+ * collapsible header rows (`groupBy` + `groups`), and an empty state.
4237
4279
  * For server-side data or paging, sort/page the `data` you pass in and pair it
4238
4280
  * with `Pagination`.
4239
4281
  *
@@ -4247,7 +4289,7 @@ interface DataTableProps<Row> {
4247
4289
  * ]}
4248
4290
  * />
4249
4291
  */
4250
- declare function DataTable<Row>({ columns, data, rowKey, onRowClick, isRowSelected, selectedKeys, onSelectedKeysChange, rowSelectionLabel, selectAllLabel, defaultSort, empty, caption, className, }: DataTableProps<Row>): react.JSX.Element;
4292
+ declare function DataTable<Row>({ columns, data, rowKey, onRowClick, isRowSelected, selectedKeys, onSelectedKeysChange, rowSelectionLabel, selectAllLabel, defaultSort, empty, caption, groupBy, groups, collapsible, expandedGroups, onExpandedGroupsChange, className, }: DataTableProps<Row>): react.JSX.Element;
4251
4293
  declare namespace DataTable {
4252
4294
  var displayName: string;
4253
4295
  }
@@ -4382,7 +4424,7 @@ declare const notificationBadgeMeta: ComponentMeta;
4382
4424
  * rounded-full and shrink-0 so it holds its shape inline next to text.
4383
4425
  */
4384
4426
  declare const statusDotVariants: (props?: ({
4385
- tone?: "1" | "2" | "3" | "destructive" | "success" | "blue" | "green" | "orange" | "pink" | "purple" | "red" | "teal" | "yellow" | "neutral" | "warning" | "info" | null | undefined;
4427
+ tone?: "1" | "2" | "3" | "destructive" | "success" | "blue" | "green" | "orange" | "pink" | "purple" | "red" | "teal" | "yellow" | "info" | "warning" | "neutral" | null | undefined;
4386
4428
  size?: "sm" | "md" | "lg" | null | undefined;
4387
4429
  } & class_variance_authority_types.ClassProp) | undefined) => string;
4388
4430
 
@@ -4503,6 +4545,21 @@ interface DatePickerProps extends TriggerAttributes {
4503
4545
  minDate?: Date;
4504
4546
  /** Latest selectable day (inclusive); later days are disabled. */
4505
4547
  maxDate?: Date;
4548
+ /**
4549
+ * The trigger's rung. `md` is the form field, beside Input and Select. `xs`
4550
+ * is the property-grid rung (24px in a workspace): an inset `panel-field`
4551
+ * well with no border, the same shape as SelectTrigger `size="xs"` and
4552
+ * ScrubField on the neighbouring rows of an inspector.
4553
+ * @default "md"
4554
+ */
4555
+ size?: "md" | "xs";
4556
+ /**
4557
+ * How the trigger writes the chosen date, as `Intl.DateTimeFormat` options
4558
+ * in the reader's locale — `{ month: "short", day: "numeric" }` for "Oct 23"
4559
+ * where the rest of a list writes dates that way. Omitted: "Oct 23, 2026"
4560
+ * (and "Oct 23, 2026 at 14:30" under `granularity="minute"`).
4561
+ */
4562
+ formatOptions?: Intl.DateTimeFormatOptions;
4506
4563
  /** Extra classes for the trigger button. */
4507
4564
  className?: string;
4508
4565
  }
@@ -4816,19 +4873,32 @@ declare const accordionMeta: ComponentMeta;
4816
4873
  declare const Collapsible: react.ForwardRefExoticComponent<Omit<_base_ui_react.CollapsibleRootProps, "ref"> & react.RefAttributes<HTMLDivElement>>;
4817
4874
  declare const CollapsibleTrigger: react.ForwardRefExoticComponent<Omit<_base_ui_react.CollapsibleTriggerProps, "ref"> & react.RefAttributes<HTMLButtonElement>>;
4818
4875
  /**
4819
- * An auto-rotating chevron for a Collapsible trigger — the disclosure caret that
4820
- * flips 180° when the panel opens (parity with AccordionTrigger's chevron). Drop
4821
- * it inside the trigger's content and mark the trigger with the `group/collapsible`
4822
- * class so the indicator can read its open state (Base UI puts `data-panel-open`
4823
- * on the trigger, not the icon):
4876
+ * Where the closed caret points, and so how it turns. `down` flips 180° on open
4877
+ * (parity with AccordionTrigger's chevron). `end` points to the inline end while
4878
+ * closed (right in LTR, left in RTL) and turns down a quarter on open — the
4879
+ * caret a grouped list or a tree row uses.
4880
+ */
4881
+ declare const DIRECTION: {
4882
+ readonly down: "[[data-panel-open]_&]:rotate-180";
4883
+ readonly end: "-rotate-90 rtl:rotate-90 [[data-panel-open]_&]:rotate-0";
4884
+ };
4885
+ interface CollapsibleIndicatorProps {
4886
+ /** Where the caret points while closed. @default "down" */
4887
+ direction?: keyof typeof DIRECTION;
4888
+ className?: string;
4889
+ }
4890
+ /**
4891
+ * An auto-rotating chevron for a Collapsible trigger. Drop it anywhere inside
4892
+ * the trigger's content; nothing else to set up. Base UI puts `data-panel-open`
4893
+ * on the trigger, not the icon, so the glyph reads it from the trigger above
4894
+ * it. (It used to need a `group/collapsible` class on the trigger, and an app
4895
+ * that missed that rotated its own chevron with no transition instead.)
4824
4896
  *
4825
- * <CollapsibleTrigger className="group/collapsible" render={
4897
+ * <CollapsibleTrigger render={
4826
4898
  * <Button variant="ghost">Details <CollapsibleIndicator /></Button>
4827
4899
  * } />
4828
4900
  */
4829
- declare function CollapsibleIndicator({ className }: {
4830
- className?: string;
4831
- }): react.JSX.Element;
4901
+ declare function CollapsibleIndicator({ direction, className }: CollapsibleIndicatorProps): react.JSX.Element;
4832
4902
  type PanelProps$1 = Omit<ComponentProps<typeof Collapsible$1.Panel>, "className"> & {
4833
4903
  className?: string;
4834
4904
  };
@@ -5509,7 +5579,7 @@ declare const kbdMeta: ComponentMeta;
5509
5579
  * (neutral/info/success/warning/destructive).
5510
5580
  */
5511
5581
  declare const noteVariants: (props?: ({
5512
- tone?: "destructive" | "success" | "neutral" | "warning" | "info" | null | undefined;
5582
+ tone?: "destructive" | "success" | "info" | "warning" | "neutral" | null | undefined;
5513
5583
  } & class_variance_authority_types.ClassProp) | undefined) => string;
5514
5584
 
5515
5585
  /**
@@ -5619,7 +5689,7 @@ declare const inlineStatusMeta: ComponentMeta;
5619
5689
  * and `sticky` positioning live in `banner.tsx`.
5620
5690
  */
5621
5691
  declare const bannerVariants: (props?: ({
5622
- tone?: "1" | "destructive" | "success" | "neutral" | "warning" | "info" | null | undefined;
5692
+ tone?: "1" | "destructive" | "success" | "info" | "warning" | "neutral" | null | undefined;
5623
5693
  appearance?: "solid" | "soft" | null | undefined;
5624
5694
  } & class_variance_authority_types.ClassProp) | undefined) => string;
5625
5695
 
@@ -5697,6 +5767,12 @@ type WorkspaceProps = Omit<ComponentProps<"div">, "children"> & {
5697
5767
  toolbar?: ReactNode;
5698
5768
  /** Bottom chrome — usually a StatusBar. */
5699
5769
  statusBar?: ReactNode;
5770
+ /**
5771
+ * Phone navigation — usually a BottomNav. Its row is reserved below `lg`
5772
+ * (BottomNav's own breakpoint) and gone above it, so the body ends where the
5773
+ * nav begins without the app subtracting the nav's height from the viewport.
5774
+ */
5775
+ bottomNav?: ReactNode;
5700
5776
  /**
5701
5777
  * Density scope for everything inside. Defaults to `compact`, because a
5702
5778
  * workspace IS the compact register — see DESIGN.md → Registers.
@@ -5723,7 +5799,14 @@ type WorkspaceProps = Omit<ComponentProps<"div">, "children"> & {
5723
5799
  * </PanelGroup>
5724
5800
  * </Workspace>
5725
5801
  *
5726
- * Two structural details do the real work:
5802
+ * Three structural details do the real work:
5803
+ *
5804
+ * - The shell is a flex column and the body is its only `flex-1` row. Every
5805
+ * slot is optional, and a fixed `auto / 1fr / auto` grid assumed all of them:
5806
+ * with no toolbar, the body fell into the first `auto` track and the status
5807
+ * bar took the `1fr` one, so the body sized to its content and the status bar
5808
+ * was pushed off the bottom. A slot whose component renders nothing now costs
5809
+ * nothing too, which a track list counted from the props could not promise.
5727
5810
  *
5728
5811
  * - `min-h-0` on the body row. Without it a grid/flex child refuses to shrink
5729
5812
  * below its content, `overflow-y-auto` never activates on a panel, and panels
@@ -5732,7 +5815,7 @@ type WorkspaceProps = Omit<ComponentProps<"div">, "children"> & {
5732
5815
  * - `data-density` scopes the control ladder, so every control inside lands on
5733
5816
  * the workspace sizes without any selector overriding a height afterwards.
5734
5817
  */
5735
- declare function Workspace({ toolbar, statusBar, density, skipLinkLabel, className, children, ...props }: WorkspaceProps): react.JSX.Element;
5818
+ declare function Workspace({ toolbar, statusBar, bottomNav, density, skipLinkLabel, className, children, ...props }: WorkspaceProps): react.JSX.Element;
5736
5819
  declare namespace Workspace {
5737
5820
  var displayName: string;
5738
5821
  }
@@ -5760,6 +5843,46 @@ declare namespace WorkspaceBar {
5760
5843
 
5761
5844
  declare const workspaceMeta: ComponentMeta;
5762
5845
 
5846
+ /** A named viewport breakpoint: Tailwind's defaults, which Sable's `lg:` chrome follows. */
5847
+ type ViewportBreakpoint = Exclude<Breakpoint, "base">;
5848
+ /**
5849
+ * The min-width each breakpoint starts at, in rem — Tailwind v4's defaults
5850
+ * (sm 40 / md 48 / lg 64 / xl 80 / 2xl 96), so `useBelowBreakpoint("lg")` flips
5851
+ * at exactly the width where an `lg:` class starts to apply.
5852
+ */
5853
+ declare const VIEWPORT_BREAKPOINTS: Record<ViewportBreakpoint, string>;
5854
+ /** The query that is true below `breakpoint`: the complement of its `lg:`-style min-width. */
5855
+ declare function belowBreakpointQuery(breakpoint: ViewportBreakpoint): string;
5856
+ interface UseMediaQueryOptions {
5857
+ /**
5858
+ * What the server (and the first client render, before hydration settles)
5859
+ * reports. @default false
5860
+ */
5861
+ serverValue?: boolean;
5862
+ }
5863
+ /**
5864
+ * `true` while a media query matches, kept live as the viewport changes.
5865
+ *
5866
+ * Read through useSyncExternalStore, so there is no setState in a resize
5867
+ * listener, no tearing under concurrent rendering, and no hydration mismatch:
5868
+ * the server reports `serverValue`, and the client reconciles on hydration.
5869
+ * Don't hand-roll a `window.innerWidth` read in state plus a `resize` listener
5870
+ * in an effect; that renders the wrong layout first and re-renders on every
5871
+ * pixel of a drag.
5872
+ *
5873
+ * const coarse = useMediaQuery("(pointer: coarse)")
5874
+ */
5875
+ declare function useMediaQuery(query: string, { serverValue }?: UseMediaQueryOptions): boolean;
5876
+ /**
5877
+ * `true` below a named breakpoint, the width where Sable's own chrome changes
5878
+ * shape (Sidebar and BottomNav swap at `lg`). Use it to branch structure that a
5879
+ * class can't express — a docked panel becoming a sheet — and prefer `lg:` and
5880
+ * friends for anything that is only styling.
5881
+ *
5882
+ * const narrow = useBelowBreakpoint("lg")
5883
+ */
5884
+ declare function useBelowBreakpoint(breakpoint?: ViewportBreakpoint, options?: UseMediaQueryOptions): boolean;
5885
+
5763
5886
  interface UsePanelWidthOptions {
5764
5887
  /** localStorage key. Omit to keep the width in memory only (per hook instance). */
5765
5888
  storageKey?: string;
@@ -5810,14 +5933,47 @@ type PanelProps = Omit<ComponentProps<"aside">, "children"> & {
5810
5933
  * body region instead.
5811
5934
  */
5812
5935
  scroll?: boolean;
5936
+ /**
5937
+ * What the panel becomes below `below`, where a docked column no longer fits
5938
+ * beside the canvas. @default "dock"
5939
+ *
5940
+ * - `"dock"` keeps it docked at every width (today's behaviour).
5941
+ * - `"sheet"` moves it into a Sheet on the panel's `side`, open while `open`
5942
+ * is true: an inspector becomes a sheet over the list, a navigation rail a
5943
+ * drawer. Wire `onOpenChange` so Esc, the scrim and a swipe can close it.
5944
+ * - `"hidden"` drops it, for chrome a phone does without.
5945
+ */
5946
+ narrow?: "dock" | "sheet" | "hidden";
5947
+ /**
5948
+ * Whether the panel is showing. Docked, it defaults to `true`, and `false`
5949
+ * removes the column so the canvas takes its width (an inspector with nothing
5950
+ * selected). As a sheet it is the sheet's open state and defaults to `false`:
5951
+ * a modal that opened by itself on every phone load would block the app.
5952
+ */
5953
+ open?: boolean;
5954
+ /** Called when the sheet asks to close (Esc, scrim, swipe) or open. */
5955
+ onOpenChange?: (open: boolean) => void;
5956
+ /**
5957
+ * The edge the sheet slides in from when `narrow="sheet"`. A panel docked
5958
+ * before the canvas is a `"left"` one. @default "right"
5959
+ */
5960
+ side?: "left" | "right";
5961
+ /** The breakpoint `narrow` applies below. Matches Sidebar's and BottomNav's swap. @default "lg" */
5962
+ below?: ViewportBreakpoint;
5813
5963
  /** Panel content. Optional: an empty flexible centre is a valid placeholder. */
5814
5964
  children?: ReactNode;
5815
5965
  };
5816
5966
  /**
5817
5967
  * Panel — one docked chrome column. Fixed-width when `width` is set, flexible
5818
5968
  * otherwise. Scrolls its own content; the group never scrolls.
5969
+ *
5970
+ * Below `below`, `narrow` decides what a docked column becomes. The content is
5971
+ * rendered once, in whichever of the two places applies, so an app never mounts
5972
+ * its inspector twice (a Panel for desktop and a Sheet for phones, each holding
5973
+ * its own copy of the same form). Crossing the breakpoint remounts it, so keep
5974
+ * state that must survive a rotation in the app, not in the panel's children.
5819
5975
  */
5820
- declare function Panel({ label, width, scroll, className, children, ...props }: PanelProps): react.JSX.Element;
5976
+ declare function Panel({ label, width, scroll, narrow, open, onOpenChange, side, below, className, children, ...props }: PanelProps): react.JSX.Element | null;
5821
5977
  declare namespace Panel {
5822
5978
  var displayName: string;
5823
5979
  }
@@ -6457,7 +6613,15 @@ type SidebarContextValue = {
6457
6613
  * paint, so an expanded rail's labels are simply there on load.
6458
6614
  */
6459
6615
  reopened?: boolean;
6616
+ /**
6617
+ * The row rung every part of the rail draws from: `rail` on a page,
6618
+ * `rail-compact` inside a compact scope such as a Workspace. One value, so
6619
+ * the brand, the items, the group labels and the account row stay on the
6620
+ * same columns at either density.
6621
+ */
6622
+ rung: RailRung;
6460
6623
  };
6624
+ type RailRung = "rail" | "rail-compact";
6461
6625
  declare function useSidebar(): SidebarContextValue;
6462
6626
  interface SidebarProps extends ComponentPropsWithRef<"aside"> {
6463
6627
  /**
@@ -6585,6 +6749,64 @@ declare function SidebarItem({ icon, label, active, badge, render, className, "a
6585
6749
  declare namespace SidebarItem {
6586
6750
  var displayName: string;
6587
6751
  }
6752
+ interface SidebarGroupProps extends ComponentPropsWithRef<"div"> {
6753
+ /** The group's name, shown above its items on the rail's columns. Collapsed, a hairline stands in for it. */
6754
+ label?: ReactNode;
6755
+ }
6756
+ /**
6757
+ * A labelled run of SidebarItems inside SidebarNav: "Workspace", "Favorites".
6758
+ * The label starts on the items' icon column, so a group reads as part of the
6759
+ * rail rather than a heading dropped onto it. Without it, a rail that needed
6760
+ * groups reached for SideNav, whose rows sit on different columns from the
6761
+ * brand above and the account row below.
6762
+ *
6763
+ * <SidebarNav>
6764
+ * <SidebarGroup label="Workspace">
6765
+ * <SidebarItem icon={<Icon name="folder" />} label="Projects" />
6766
+ * </SidebarGroup>
6767
+ * </SidebarNav>
6768
+ */
6769
+ declare function SidebarGroup({ label, className, children, ...props }: SidebarGroupProps): react.JSX.Element;
6770
+ declare namespace SidebarGroup {
6771
+ var displayName: string;
6772
+ }
6773
+ interface SidebarAccountProps extends Omit<ComponentPropsWithRef<"button">, "children" | "title"> {
6774
+ /** The person or workspace: an Avatar sized to the slot, `xs` on a page rail and `2xs` in a compact one. */
6775
+ avatar: ReactNode;
6776
+ /** The name, on the items' label column. */
6777
+ label: ReactNode;
6778
+ /** One quiet line under the label: a plan, a role, a workspace, "Demo". Not a badge. */
6779
+ detail?: ReactNode;
6780
+ /**
6781
+ * The trailing glyph that says the row opens something. Defaults to an
6782
+ * up-down chevron (the row usually opens a menu of account actions); `false`
6783
+ * drops it.
6784
+ */
6785
+ indicator?: ReactNode | false;
6786
+ /** Render as another element, most often an account Menu's trigger through `MenuTrigger render`. */
6787
+ render?: useRender.RenderProp;
6788
+ }
6789
+ /**
6790
+ * The account row at the foot of the rail: the avatar in the items' icon slot,
6791
+ * the name on their label column, one detail line, and a chevron that says it
6792
+ * opens a menu. Settings, appearance and sign-out live in that menu, so the
6793
+ * footer is one row instead of a Settings button stacked over a person.
6794
+ *
6795
+ * <SidebarFooter>
6796
+ * <Menu>
6797
+ * <MenuTrigger render={<SidebarAccount avatar={<Avatar size="2xs" fallback="EL" alt="" />} label="Emma Lee" detail="Forma Studio" />} />
6798
+ * <MenuContent side="top" align="start">…</MenuContent>
6799
+ * </Menu>
6800
+ * </SidebarFooter>
6801
+ *
6802
+ * It replaces an Entity patched with `[--entity-py:0]`: an Entity has its own
6803
+ * insets and lands on none of the rail's columns. Collapsed, the avatar alone
6804
+ * stays, centred on the icon column, with the label in a tooltip.
6805
+ */
6806
+ declare function SidebarAccount({ avatar, label, detail, indicator, render, className, "aria-label": ariaLabel, ...props }: SidebarAccountProps): react.JSX.Element;
6807
+ declare namespace SidebarAccount {
6808
+ var displayName: string;
6809
+ }
6588
6810
 
6589
6811
  declare const sidebarMeta: ComponentMeta;
6590
6812
 
@@ -10217,6 +10439,6 @@ interface UseActiveSectionOptions {
10217
10439
  */
10218
10440
  declare function useActiveSection(ids: readonly string[], { offset, root }?: UseActiveSectionOptions): string | null;
10219
10441
 
10220
- declare const SABLE_UI_VERSION: "0.18.0";
10442
+ declare const SABLE_UI_VERSION: "0.19.0";
10221
10443
 
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 };
10444
+ 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, Breakpoint, 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 DataTableGroup, 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, SidebarAccount, type SidebarAccountProps, SidebarBrand, type SidebarBrandProps, SidebarFooter, SidebarGroup, type SidebarGroupProps, 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 UseMediaQueryOptions, type UsePanelWidthOptions, VIEWPORT_BREAKPOINTS, Video, type VideoProps, ViewTransitionName, type ViewTransitionNameProps, type ViewportBreakpoint, Workspace, WorkspaceBar, WorkspaceCanvas, accordionMeta, activityGrid, activityHeatmapMeta, activityLevels, appHeaderMeta, appShellMeta, areaChartMeta, attachmentMeta, avatarGroupVariants, avatarMeta, avatarVariants, badgeMeta, badgeVariants, bannerMeta, bannerVariants, barChartMeta, belowBreakpointQuery, 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, useBelowBreakpoint, useCaretTrigger, useComboboxFilteredItems, useCommandMenuShortcut, useCopy, useDensity, useDisclosurePicker, useInView, useMatchHighlight, useMediaQuery, useMotion, useMotionLevel, usePanelWidth, usePresentation, useReducedMotion, useScrollActivity, useShake, useSidebar, useSmoothWheel, useToast, useToastManager, useTypeTier, videoMeta, workspaceMeta };
package/dist/index.js CHANGED
@@ -178,6 +178,12 @@ export * from "./components/marker/index.js";
178
178
  import { Density, DensityProvider, useDensity, useAnchoredDensity, useTypeTier } from "./lib/density.js";
179
179
  import { PresentationProvider, usePresentation } from "./lib/presentation.js";
180
180
  import { useScrollActivity } from "./lib/use-scroll-activity.js";
181
+ import {
182
+ belowBreakpointQuery,
183
+ useBelowBreakpoint,
184
+ useMediaQuery,
185
+ VIEWPORT_BREAKPOINTS
186
+ } from "./lib/use-media-query.js";
181
187
  import { useMatchHighlight } from "./lib/use-match-highlight.js";
182
188
  import { useCopy } from "./lib/use-copy.js";
183
189
  import { useSmoothWheel } from "./lib/use-smooth-wheel.js";
@@ -187,7 +193,7 @@ import {
187
193
  } from "./lib/use-caret-trigger.js";
188
194
  import { STATUS_TONES, STATUS_TONE_ICON } from "./lib/status-tone.js";
189
195
  import { PALETTE_COLORS, PALETTE_FAMILIES, PALETTE_SCALES, PALETTE_STEPS, PALETTE_TONES, isPaletteColor } from "./lib/palette.js";
190
- var SABLE_UI_VERSION = "0.18.0";
196
+ var SABLE_UI_VERSION = "0.19.0";
191
197
  export {
192
198
  APP_SHELL_TOKENS,
193
199
  ART_TOKENS,
@@ -223,11 +229,13 @@ export {
223
229
  TYPE_REFINEMENT_TOKENS,
224
230
  TYPE_SCALE_TOKENS,
225
231
  TYPE_UI_TOKENS,
232
+ VIEWPORT_BREAKPOINTS,
226
233
  WORKSPACE_SURFACE_TOKENS,
227
234
  activityGrid,
228
235
  activityLevels,
229
236
  applySableColorMode,
230
237
  applySableTheme,
238
+ belowBreakpointQuery,
231
239
  chartColor,
232
240
  toneColor as chartToneColor,
233
241
  componentGuidance,
@@ -245,10 +253,12 @@ export {
245
253
  themeManifests,
246
254
  useActiveSection,
247
255
  useAnchoredDensity,
256
+ useBelowBreakpoint,
248
257
  useCaretTrigger,
249
258
  useCopy,
250
259
  useDensity,
251
260
  useMatchHighlight,
261
+ useMediaQuery,
252
262
  usePresentation,
253
263
  useSableTheme,
254
264
  useScrollActivity,
@@ -33,7 +33,7 @@ function activityLevels(values, { levels = 5, scale = "quantile" } = {}) {
33
33
  }
34
34
  };
35
35
  }
36
- var HEAT_EMPTY = "color-mix(in oklch, var(--foreground) 8%, transparent)";
36
+ var HEAT_EMPTY = "color-mix(in oklab, var(--foreground) 8%, transparent)";
37
37
  function heatColor(base, level, levels) {
38
38
  if (level <= 0) return HEAT_EMPTY;
39
39
  const top = Math.max(1, levels - 1);