@nocoo/basalt 3.2.1 → 3.2.4

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 (192) hide show
  1. package/README.md +25 -19
  2. package/ai/COMPATIBILITY.md +41 -36
  3. package/ai/DESIGN.md +53 -47
  4. package/ai/INTEGRATION.md +814 -820
  5. package/ai/RECIPES.md +334 -135
  6. package/ai/USAGE.md +2 -2
  7. package/ai/registry.json +384 -27
  8. package/ai/sources.json +2 -2
  9. package/dist/assets/brand-mark.js +1 -2
  10. package/dist/charts/area.js +1 -2
  11. package/dist/charts/bar.js +1 -2
  12. package/dist/charts/bullet.js +1 -2
  13. package/dist/charts/chart-colors.js +1 -2
  14. package/dist/charts/charts.js +1 -2
  15. package/dist/charts/config.js +1 -2
  16. package/dist/charts/custom-chart.js +1 -2
  17. package/dist/charts/date-navigation.js +1 -2
  18. package/dist/charts/donut.js +1 -2
  19. package/dist/charts/frame.js +1 -2
  20. package/dist/charts/frame.js.map +1 -1
  21. package/dist/charts/funnel.js +1 -2
  22. package/dist/charts/gauge.js +1 -2
  23. package/dist/charts/grouped-bar.js +1 -2
  24. package/dist/charts/heatmap-calendar.js +3 -7
  25. package/dist/charts/heatmap-calendar.js.map +1 -1
  26. package/dist/charts/heatmap-matrix.js +1 -2
  27. package/dist/charts/item-list.js +1 -2
  28. package/dist/charts/legend.js +1 -2
  29. package/dist/charts/line.js +1 -2
  30. package/dist/charts/palette.js +1 -2
  31. package/dist/charts/radar.js +1 -2
  32. package/dist/charts/sample.js +1 -2
  33. package/dist/charts/sankey.js +1 -2
  34. package/dist/charts/series.js +1 -2
  35. package/dist/charts/slot-bar.js +1 -2
  36. package/dist/charts/sparkline.js +1 -2
  37. package/dist/charts/stacked-bar.js +1 -2
  38. package/dist/charts/stat-card.js +1 -2
  39. package/dist/charts/timeline.js +1 -2
  40. package/dist/charts/timeseries.js +1 -2
  41. package/dist/charts/tooltip.js +31 -27
  42. package/dist/charts/tooltip.js.map +1 -1
  43. package/dist/components/accordion.js +1 -2
  44. package/dist/components/alert-dialog.js +1 -2
  45. package/dist/components/app-header.js +1 -2
  46. package/dist/components/app-shell.js +1 -2
  47. package/dist/components/approval-card.js +1 -2
  48. package/dist/components/autocomplete.js +1 -2
  49. package/dist/components/avatar.js +1 -2
  50. package/dist/components/badge.js +1 -2
  51. package/dist/components/banner.js +1 -2
  52. package/dist/components/basalt-mark.js +1 -2
  53. package/dist/components/battery-meter.js +1 -2
  54. package/dist/components/breadcrumbs.js +1 -2
  55. package/dist/components/button.d.ts +1 -1
  56. package/dist/components/button.js +3 -3
  57. package/dist/components/button.js.map +1 -1
  58. package/dist/components/chat-bubble.js +1 -2
  59. package/dist/components/chat-composer.js +1 -2
  60. package/dist/components/chat-header.js +1 -2
  61. package/dist/components/chat-inbox.js +1 -2
  62. package/dist/components/chat-markdown.js +1 -2
  63. package/dist/components/chat-message.js +1 -2
  64. package/dist/components/checkbox.js +1 -2
  65. package/dist/components/clipboard-text.js +1 -2
  66. package/dist/components/code.js +1 -2
  67. package/dist/components/collapsible.js +1 -2
  68. package/dist/components/collapsible.js.map +1 -1
  69. package/dist/components/combobox.js +1 -2
  70. package/dist/components/command-palette.js +1 -2
  71. package/dist/components/confirm-dialog.js +3 -12
  72. package/dist/components/confirm-dialog.js.map +1 -1
  73. package/dist/components/context-cards.js +1 -2
  74. package/dist/components/context-menu.js +1 -2
  75. package/dist/components/data-table.js +2 -7
  76. package/dist/components/data-table.js.map +1 -1
  77. package/dist/components/date-picker.js +7 -18
  78. package/dist/components/date-picker.js.map +1 -1
  79. package/dist/components/delete-resource.js +1 -2
  80. package/dist/components/description-list.js +1 -2
  81. package/dist/components/dialog.js +1 -2
  82. package/dist/components/diff-table.js +1 -2
  83. package/dist/components/dock.js +1 -2
  84. package/dist/components/dock.js.map +1 -1
  85. package/dist/components/dropdown-menu.js +1 -2
  86. package/dist/components/editable-nav-item.js +1 -2
  87. package/dist/components/empty.js +1 -2
  88. package/dist/components/fab.js +1 -2
  89. package/dist/components/field.js +1 -2
  90. package/dist/components/file-dropzone.js +1 -2
  91. package/dist/components/filter-bar.js +1 -2
  92. package/dist/components/flow.js +1 -2
  93. package/dist/components/grid.js +1 -2
  94. package/dist/components/hover-card.js +1 -2
  95. package/dist/components/icon-picker.js +1 -2
  96. package/dist/components/inline-editable.js +1 -2
  97. package/dist/components/input-area.js +1 -2
  98. package/dist/components/input-group.js +2 -3
  99. package/dist/components/input-group.js.map +1 -1
  100. package/dist/components/input.js +1 -2
  101. package/dist/components/label.js +1 -2
  102. package/dist/components/layer-card.js +1 -2
  103. package/dist/components/link.js +1 -2
  104. package/dist/components/loader.js +1 -2
  105. package/dist/components/loading-screen.js +1 -2
  106. package/dist/components/menu-bar.js +1 -2
  107. package/dist/components/meter.js +1 -2
  108. package/dist/components/multi-select.js +1 -2
  109. package/dist/components/navigation-menu.js +1 -2
  110. package/dist/components/overlay.js +1 -2
  111. package/dist/components/page-header.js +1 -2
  112. package/dist/components/pagination.js +1 -2
  113. package/dist/components/popover.js +1 -2
  114. package/dist/components/prompt-bar.js +1 -2
  115. package/dist/components/radio.js +2 -7
  116. package/dist/components/radio.js.map +1 -1
  117. package/dist/components/recommendation-card.js +1 -2
  118. package/dist/components/resource-list.js +1 -2
  119. package/dist/components/responsive-master-detail.js +1 -2
  120. package/dist/components/scroll-area.js +1 -2
  121. package/dist/components/section-rule.js +1 -2
  122. package/dist/components/segment-control.js +1 -2
  123. package/dist/components/select.js +1 -2
  124. package/dist/components/sensitive-input.js +1 -2
  125. package/dist/components/separator.js +1 -2
  126. package/dist/components/sheet.js +1 -2
  127. package/dist/components/sidebar.d.ts +53 -19
  128. package/dist/components/sidebar.js +201 -100
  129. package/dist/components/sidebar.js.map +1 -1
  130. package/dist/components/skeleton-line.js +1 -2
  131. package/dist/components/slider.js +1 -2
  132. package/dist/components/stat-strip.js +1 -2
  133. package/dist/components/switch.js +1 -2
  134. package/dist/components/table-of-contents.js +1 -2
  135. package/dist/components/table-pager.js +1 -2
  136. package/dist/components/table.js +1 -2
  137. package/dist/components/tabs.js +1 -2
  138. package/dist/components/tag-badge.js +1 -2
  139. package/dist/components/tag-color-picker.js +1 -2
  140. package/dist/components/text.js +1 -2
  141. package/dist/components/theme-toggle.js +1 -2
  142. package/dist/components/thinking.js +1 -2
  143. package/dist/components/toast.js +1 -2
  144. package/dist/components/toggle-group.js +1 -2
  145. package/dist/components/toggle.js +1 -2
  146. package/dist/components/tool-chips.js +1 -2
  147. package/dist/components/toolbar.js +1 -2
  148. package/dist/components/tooltip.js +1 -2
  149. package/dist/components/typeahead-field.js +6 -21
  150. package/dist/components/typeahead-field.js.map +1 -1
  151. package/dist/components/upload-queue.js +1 -2
  152. package/dist/index.d.ts +1 -1
  153. package/dist/index.js +11 -11
  154. package/dist/models/agent-feedback.js +1 -2
  155. package/dist/models/avatar.js +1 -2
  156. package/dist/models/code.js +1 -2
  157. package/dist/models/context-cards.js +1 -2
  158. package/dist/models/diff-table.js +1 -2
  159. package/dist/models/recommendation.js +1 -2
  160. package/dist/providers/accent.js +2 -7
  161. package/dist/providers/accent.js.map +1 -1
  162. package/dist/providers/link.js +1 -2
  163. package/dist/providers/theme.js +2 -7
  164. package/dist/providers/theme.js.map +1 -1
  165. package/dist/styles/standalone.css +55 -11
  166. package/dist/styles/tailwind.css +2 -0
  167. package/dist/styles/tokens.css +51 -6
  168. package/dist/utils/cn.js +1 -2
  169. package/dist/utils/control-surface.js +1 -2
  170. package/dist/utils/navigation.d.ts +1 -1
  171. package/dist/utils/navigation.js +2 -3
  172. package/dist/utils/navigation.js.map +1 -1
  173. package/dist/utils/preference-store.js +1 -2
  174. package/dist/utils/selection-indicator.js +1 -2
  175. package/dist/utils/use-checkable-group.js +1 -2
  176. package/dist/utils/use-hover-highlight.js +2 -3
  177. package/dist/utils/use-hover-highlight.js.map +1 -1
  178. package/dist/viewmodels/use-approval-card.js +11 -13
  179. package/dist/viewmodels/use-approval-card.js.map +1 -1
  180. package/dist/viewmodels/use-chat-composer.js +1 -2
  181. package/dist/viewmodels/use-chat-message.js +1 -2
  182. package/dist/viewmodels/use-code-block.js +1 -2
  183. package/dist/viewmodels/use-code-block.js.map +1 -1
  184. package/dist/viewmodels/use-context-cards.js +1 -2
  185. package/dist/viewmodels/use-diff-table.js +1 -2
  186. package/dist/viewmodels/use-diff-table.js.map +1 -1
  187. package/dist/viewmodels/use-loader.js +1 -2
  188. package/dist/viewmodels/use-recommendation-card.js +1 -2
  189. package/dist/viewmodels/use-recommendation-card.js.map +1 -1
  190. package/dist/viewmodels/use-thinking.js +1 -2
  191. package/dist/viewmodels/use-tool-chips.js +1 -2
  192. package/package.json +1 -1
@@ -4,7 +4,7 @@ import { BASALT_UI_CLASS as t } from "../utils/control-surface.js";
4
4
  import { Tooltip as n, TooltipContent as r, TooltipProvider as i, TooltipTrigger as a } from "./tooltip.js";
5
5
  import { Info as o } from "lucide-react";
6
6
  import { jsx as s, jsxs as c } from "react/jsx-runtime";
7
- //#region src/components/section-rule.tsx
7
+ // src/components/section-rule.tsx
8
8
  function l({ title: l, hint: u, actions: d, className: f, children: p, variant: m = "label", ...h }) {
9
9
  return /* @__PURE__ */ c("section", {
10
10
  className: e(t, m === "heading" ? "space-y-basalt-layout" : "space-y-basalt-layout-sm", f),
@@ -39,7 +39,6 @@ function l({ title: l, hint: u, actions: d, className: f, children: p, variant:
39
39
  }), p]
40
40
  });
41
41
  }
42
- //#endregion
43
42
  export { l as SectionRule };
44
43
 
45
44
  //# sourceMappingURL=section-rule.js.map
@@ -3,7 +3,7 @@ import { cn as e } from "../utils/cn.js";
3
3
  import { ToggleGroup as t, ToggleGroupItem as n } from "./toggle-group.js";
4
4
  import * as r from "react";
5
5
  import { jsx as i, jsxs as a } from "react/jsx-runtime";
6
- //#region src/components/segment-control.tsx
6
+ // src/components/segment-control.tsx
7
7
  var o = r.forwardRef(({ allOption: o, className: s, disabled: c = !1, legend: l, onValueChange: u, options: d, value: f, ...p }, m) => {
8
8
  let h = r.useId(), g = o ? [{
9
9
  ...o,
@@ -40,7 +40,6 @@ var o = r.forwardRef(({ allOption: o, className: s, disabled: c = !1, legend: l,
40
40
  });
41
41
  });
42
42
  o.displayName = "SegmentControl";
43
- //#endregion
44
43
  export { o as SegmentControl };
45
44
 
46
45
  //# sourceMappingURL=segment-control.js.map
@@ -7,7 +7,7 @@ import * as o from "react";
7
7
  import { Check as s, ChevronDown as c } from "lucide-react";
8
8
  import { jsx as l, jsxs as u } from "react/jsx-runtime";
9
9
  import * as d from "@radix-ui/react-select";
10
- //#region src/components/select.tsx
10
+ // src/components/select.tsx
11
11
  var f = d.Root, p = d.Value, m = d.Group, h = {
12
12
  sm: "basalt-action basalt-action-sm",
13
13
  default: "basalt-action",
@@ -60,7 +60,6 @@ var y = o.forwardRef(({ className: t, children: n, ...i }, a) => /* @__PURE__ */
60
60
  })]
61
61
  }));
62
62
  y.displayName = d.Item.displayName;
63
- //#endregion
64
63
  export { f as Select, v as SelectContent, m as SelectGroup, y as SelectItem, _ as SelectLabel, g as SelectTrigger, p as SelectValue };
65
64
 
66
65
  //# sourceMappingURL=select.js.map
@@ -6,7 +6,7 @@ import { Input as r } from "./input.js";
6
6
  import * as i from "react";
7
7
  import { Eye as a, EyeOff as o } from "lucide-react";
8
8
  import { jsx as s, jsxs as c } from "react/jsx-runtime";
9
- //#region src/components/sensitive-input.tsx
9
+ // src/components/sensitive-input.tsx
10
10
  var l = i.forwardRef(({ className: l, revealLabel: u, hideLabel: d, disabled: f, size: p = "default", passwordManagerIgnore: m = !1, ...h }, g) => {
11
11
  let [_, v] = i.useState(!1);
12
12
  return /* @__PURE__ */ c("div", {
@@ -35,7 +35,6 @@ var l = i.forwardRef(({ className: l, revealLabel: u, hideLabel: d, disabled: f,
35
35
  });
36
36
  });
37
37
  l.displayName = "SensitiveInput";
38
- //#endregion
39
38
  export { l as SensitiveInput };
40
39
 
41
40
  //# sourceMappingURL=sensitive-input.js.map
@@ -3,7 +3,7 @@ import { cn as e } from "../utils/cn.js";
3
3
  import * as t from "react";
4
4
  import { jsx as n } from "react/jsx-runtime";
5
5
  import * as r from "@radix-ui/react-separator";
6
- //#region src/components/separator.tsx
6
+ // src/components/separator.tsx
7
7
  var i = t.forwardRef(({ className: t, orientation: i = "horizontal", decorative: a = !0, ...o }, s) => /* @__PURE__ */ n(r.Root, {
8
8
  ref: s,
9
9
  decorative: a,
@@ -12,7 +12,6 @@ var i = t.forwardRef(({ className: t, orientation: i = "horizontal", decorative:
12
12
  ...o
13
13
  }));
14
14
  i.displayName = r.Root.displayName;
15
- //#endregion
16
15
  export { i as Separator };
17
16
 
18
17
  //# sourceMappingURL=separator.js.map
@@ -5,7 +5,7 @@ import { OVERLAY_LAYER as n, OVERLAY_MOTION as r } from "./overlay.js";
5
5
  import * as i from "react";
6
6
  import { jsx as a, jsxs as o } from "react/jsx-runtime";
7
7
  import * as s from "@radix-ui/react-dialog";
8
- //#region src/components/sheet.tsx
8
+ // src/components/sheet.tsx
9
9
  var c = s.Root, l = s.Trigger, u = s.Close, d = i.forwardRef(({ className: t, ...n }, r) => /* @__PURE__ */ a(s.Title, {
10
10
  ref: r,
11
11
  className: e("text-basalt-xl font-semibold leading-basalt-tight tracking-tight", t),
@@ -53,7 +53,6 @@ var g = ({ className: t, ...n }) => /* @__PURE__ */ a("div", {
53
53
  ...n
54
54
  });
55
55
  g.displayName = "SheetFooter";
56
- //#endregion
57
56
  export { c as Sheet, u as SheetClose, m as SheetContent, f as SheetDescription, g as SheetFooter, h as SheetHeader, d as SheetTitle, l as SheetTrigger };
58
57
 
59
58
  //# sourceMappingURL=sheet.js.map
@@ -1,4 +1,5 @@
1
- import { type ButtonHTMLAttributes, type HTMLAttributes, type ReactNode, type RefObject } from "react";
1
+ import { type AnchorHTMLAttributes, type ButtonHTMLAttributes, type HTMLAttributes, type ReactNode, type RefObject } from "react";
2
+ import { type ButtonProps } from "./button.js";
2
3
  export type SidebarSide = "left" | "right";
3
4
  export interface SidebarContextValue {
4
5
  /**
@@ -102,11 +103,34 @@ export type SidebarProps = HTMLAttributes<HTMLElement> & {
102
103
  * @default false
103
104
  */
104
105
  collapsed?: boolean;
106
+ /**
107
+ * Show the resize handle for an expanded provider-backed sidebar.
108
+ * @default true
109
+ */
110
+ resizable?: boolean;
105
111
  };
106
- export declare function Sidebar({ collapsed: collapsedProp, className, children, onMouseEnter, onMouseLeave, style, ...props }: SidebarProps): import("react").JSX.Element;
112
+ export declare function Sidebar({ collapsed: collapsedProp, resizable, className, children, onMouseEnter, onMouseLeave, style, ...props }: SidebarProps): import("react").JSX.Element;
107
113
  export interface SidebarHeaderProps extends HTMLAttributes<HTMLDivElement> {
108
114
  }
109
115
  export declare function SidebarHeader({ className, ...props }: SidebarHeaderProps): import("react").JSX.Element;
116
+ export interface SidebarBrandProps extends Omit<HTMLAttributes<HTMLDivElement>, "children"> {
117
+ /** Brand mark rendered in the fixed collapsed-rail slot. */
118
+ logo: ReactNode;
119
+ /** Product or workspace name. */
120
+ name: ReactNode;
121
+ /** Optional version or release metadata, rendered at the auxiliary type size. */
122
+ version?: ReactNode;
123
+ /** Optional trailing action, conventionally a `SidebarToggle`. */
124
+ action?: ReactNode;
125
+ }
126
+ export declare function SidebarBrand({ logo, name, version, action, className, ...props }: SidebarBrandProps): import("react").JSX.Element;
127
+ export interface SidebarToggleProps extends Omit<ButtonProps, "children" | "size" | "aria-expanded"> {
128
+ /** Accessible label while the sidebar is collapsed. @default "Expand sidebar" */
129
+ expandLabel?: string;
130
+ /** Accessible label while the sidebar is expanded. @default "Collapse sidebar" */
131
+ collapseLabel?: string;
132
+ }
133
+ export declare function SidebarToggle({ "aria-label": ariaLabel, expandLabel, collapseLabel, onClick, variant, ...props }: SidebarToggleProps): import("react").JSX.Element;
110
134
  /**
111
135
  * Props for `SidebarSearch`. Renders a native `<button>` element and accepts all standard button HTML attributes and click handlers.
112
136
  */
@@ -124,25 +148,34 @@ export declare function SidebarNav({ className, ...props }: SidebarNavProps): im
124
148
  export interface SidebarPartitionProps extends HTMLAttributes<HTMLParagraphElement> {
125
149
  }
126
150
  export declare function SidebarPartition({ className, ...props }: SidebarPartitionProps): import("react").JSX.Element;
127
- export type SidebarItemProps = ButtonHTMLAttributes<HTMLButtonElement> & {
128
- /**
129
- * Mark the item as the current page.
130
- * @default false
131
- */
151
+ type SidebarRowProps = {
152
+ /** Mark the item as the current page. @default false */
132
153
  active?: boolean;
154
+ /** Item content. */
155
+ children?: ReactNode;
156
+ /** Additional CSS classes. */
157
+ className?: string;
133
158
  };
134
- export declare function SidebarItem({ active, className, ...props }: SidebarItemProps): import("react").JSX.Element;
135
- /**
136
- * Props for `SidebarIconItem`. Accepts standard button HTML attributes. The caller is responsible for providing accessible labeling via `aria-label` or `aria-labelledby` as icon buttons do not automatically generate accessible names.
137
- */
138
- export interface SidebarIconItemProps extends ButtonHTMLAttributes<HTMLButtonElement> {
139
- /**
140
- * Mark the icon button as active page item.
141
- * @default false
142
- */
143
- active?: boolean;
144
- }
145
- export declare function SidebarIconItem({ active, className, ...props }: SidebarIconItemProps): import("react").JSX.Element;
159
+ type SidebarButtonRowProps = Omit<ButtonHTMLAttributes<HTMLButtonElement>, "children" | "className" | "disabled"> & SidebarRowProps & {
160
+ asChild?: false;
161
+ disabled?: boolean;
162
+ href?: never;
163
+ };
164
+ type SidebarSlotRowProps = Omit<ButtonHTMLAttributes<HTMLButtonElement>, "children" | "className" | "disabled"> & SidebarRowProps & {
165
+ /** Render the item onto its single enabled child element. */
166
+ asChild: true;
167
+ disabled?: never;
168
+ href?: never;
169
+ };
170
+ type SidebarLinkRowProps = Omit<AnchorHTMLAttributes<HTMLAnchorElement>, "children" | "className" | "href"> & SidebarRowProps & {
171
+ /** Application route interpreted by LinkProvider. */
172
+ href: string;
173
+ asChild?: never;
174
+ };
175
+ export type SidebarItemProps = SidebarButtonRowProps | SidebarSlotRowProps | SidebarLinkRowProps;
176
+ export declare function SidebarItem(props: SidebarItemProps): import("react").JSX.Element;
177
+ export type SidebarIconItemProps = SidebarButtonRowProps | SidebarSlotRowProps | SidebarLinkRowProps;
178
+ export declare function SidebarIconItem(props: SidebarIconItemProps): import("react").JSX.Element;
146
179
  /**
147
180
  * Props for `SidebarGroup`. Uncontrolled collapsible section that accepts only the documented properties. It does not accept controlled open props or arbitrary DOM attributes.
148
181
  */
@@ -193,3 +226,4 @@ export interface ContentIslandProps extends HTMLAttributes<HTMLDivElement> {
193
226
  mobileSurface?: "inset" | "edge-to-edge";
194
227
  }
195
228
  export declare function ContentIsland({ mobileSurface, className, ...props }: ContentIslandProps): import("react").JSX.Element;
229
+ export {};