@tulipfarm/sprout 0.3.0 → 0.4.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 (349) hide show
  1. package/README.md +45 -40
  2. package/dist/components/accordion.d.ts +2 -2
  3. package/dist/components/accordion.js +9 -9
  4. package/dist/components/agent-fanout.d.ts +2 -2
  5. package/dist/components/agent-fanout.js +65 -87
  6. package/dist/components/alert-dialog.d.ts +6 -6
  7. package/dist/components/alert-dialog.js +20 -20
  8. package/dist/components/alert.d.ts +6 -6
  9. package/dist/components/alert.js +13 -13
  10. package/dist/components/aspect-ratio.d.ts +2 -2
  11. package/dist/components/aspect-ratio.js +2 -2
  12. package/dist/components/attachment.d.ts +17 -17
  13. package/dist/components/attachment.js +82 -115
  14. package/dist/components/avatar.d.ts +10 -10
  15. package/dist/components/avatar.js +14 -14
  16. package/dist/components/badge.d.ts +4 -4
  17. package/dist/components/badge.js +18 -18
  18. package/dist/components/board.d.ts +107 -0
  19. package/dist/components/board.js +640 -0
  20. package/dist/components/brand-icon.d.ts +6 -6
  21. package/dist/components/brand-icon.js +55 -63
  22. package/dist/components/breadcrumb.d.ts +11 -11
  23. package/dist/components/breadcrumb.js +16 -18
  24. package/dist/components/button-group.d.ts +6 -6
  25. package/dist/components/button-group.js +14 -14
  26. package/dist/components/button.d.ts +11 -11
  27. package/dist/components/button.js +46 -56
  28. package/dist/components/calendar.d.ts +5 -5
  29. package/dist/components/calendar.js +44 -53
  30. package/dist/components/canvas.d.ts +4 -4
  31. package/dist/components/canvas.js +39 -46
  32. package/dist/components/card.d.ts +6 -6
  33. package/dist/components/card.js +17 -17
  34. package/dist/components/carousel.d.ts +7 -7
  35. package/dist/components/carousel.js +57 -75
  36. package/dist/components/chart.d.ts +5 -112
  37. package/dist/components/chart.js +5 -172
  38. package/dist/components/chat-confirmation.d.ts +13 -11
  39. package/dist/components/chat-confirmation.js +32 -38
  40. package/dist/components/chat-input.d.ts +4 -4
  41. package/dist/components/chat-input.js +74 -81
  42. package/dist/components/chat-plan.d.ts +2 -2
  43. package/dist/components/chat-plan.js +15 -20
  44. package/dist/components/chat-sources.d.ts +8 -8
  45. package/dist/components/chat-sources.js +18 -27
  46. package/dist/components/checkbox.d.ts +1 -1
  47. package/dist/components/checkbox.js +9 -9
  48. package/dist/components/choice-list.d.ts +2 -2
  49. package/dist/components/choice-list.js +16 -18
  50. package/dist/components/code-block.d.ts +5 -5
  51. package/dist/components/code-block.js +26 -26
  52. package/dist/components/collapsible.d.ts +1 -1
  53. package/dist/components/collapsible.js +7 -11
  54. package/dist/components/combobox.d.ts +3 -3
  55. package/dist/components/combobox.js +24 -24
  56. package/dist/components/command.d.ts +13 -13
  57. package/dist/components/command.js +61 -73
  58. package/dist/components/context-menu.d.ts +5 -5
  59. package/dist/components/context-menu.js +22 -22
  60. package/dist/components/dialog.d.ts +6 -6
  61. package/dist/components/dialog.js +23 -28
  62. package/dist/components/direction.d.ts +1 -1
  63. package/dist/components/direction.js +1 -1
  64. package/dist/components/dropdown-menu.d.ts +5 -5
  65. package/dist/components/dropdown-menu.js +20 -20
  66. package/dist/components/field.d.ts +11 -11
  67. package/dist/components/field.js +41 -61
  68. package/dist/components/file-explorer.d.ts +2 -2
  69. package/dist/components/file-explorer.js +89 -105
  70. package/dist/components/file-viewer.d.ts +10 -10
  71. package/dist/components/file-viewer.js +112 -140
  72. package/dist/components/form.d.ts +7 -7
  73. package/dist/components/form.js +24 -28
  74. package/dist/components/glass-banner.d.ts +3 -3
  75. package/dist/components/glass-banner.js +21 -24
  76. package/dist/components/gradient-banner.d.ts +5 -5
  77. package/dist/components/gradient-banner.js +13 -22
  78. package/dist/components/hover-card.d.ts +4 -4
  79. package/dist/components/hover-card.js +6 -6
  80. package/dist/components/input-group.d.ts +11 -11
  81. package/dist/components/input-group.js +22 -36
  82. package/dist/components/input-otp.d.ts +10 -10
  83. package/dist/components/input-otp.js +13 -15
  84. package/dist/components/input.d.ts +1 -1
  85. package/dist/components/input.js +7 -7
  86. package/dist/components/kbd.d.ts +3 -3
  87. package/dist/components/kbd.js +5 -5
  88. package/dist/components/label.d.ts +2 -2
  89. package/dist/components/label.js +2 -2
  90. package/dist/components/mention-list.d.ts +3 -3
  91. package/dist/components/mention-list.js +10 -10
  92. package/dist/components/menubar.d.ts +6 -6
  93. package/dist/components/menubar.js +22 -22
  94. package/dist/components/message-actions.d.ts +2 -2
  95. package/dist/components/message-actions.js +29 -31
  96. package/dist/components/message-response.d.ts +3 -3
  97. package/dist/components/message-response.js +18 -18
  98. package/dist/components/message-scroller.d.ts +12 -12
  99. package/dist/components/message-scroller.js +44 -56
  100. package/dist/components/message.d.ts +11 -11
  101. package/dist/components/message.js +25 -25
  102. package/dist/components/navigation-menu.d.ts +2 -2
  103. package/dist/components/navigation-menu.js +15 -15
  104. package/dist/components/notice-banner.d.ts +2 -2
  105. package/dist/components/notice-banner.js +2 -2
  106. package/dist/components/page-content.d.ts +2 -2
  107. package/dist/components/page-content.js +2 -2
  108. package/dist/components/page-header.d.ts +1 -1
  109. package/dist/components/page-header.js +16 -16
  110. package/dist/components/pagination.d.ts +9 -9
  111. package/dist/components/pagination.js +17 -17
  112. package/dist/components/plan-outline.d.ts +2 -2
  113. package/dist/components/plan-outline.js +43 -60
  114. package/dist/components/popover.d.ts +6 -6
  115. package/dist/components/popover.js +15 -15
  116. package/dist/components/presence-cursor.d.ts +2 -2
  117. package/dist/components/presence-cursor.js +3 -3
  118. package/dist/components/progress.d.ts +1 -1
  119. package/dist/components/progress.js +8 -8
  120. package/dist/components/prompt-list.d.ts +3 -3
  121. package/dist/components/prompt-list.js +6 -6
  122. package/dist/components/questionnaire.d.ts +19 -19
  123. package/dist/components/questionnaire.js +183 -242
  124. package/dist/components/radio-group.d.ts +2 -2
  125. package/dist/components/radio-group.js +6 -6
  126. package/dist/components/reasoning-effort.d.ts +3 -3
  127. package/dist/components/reasoning-effort.js +9 -12
  128. package/dist/components/record-list.d.ts +66 -0
  129. package/dist/components/record-list.js +151 -0
  130. package/dist/components/resizable.d.ts +5 -5
  131. package/dist/components/resizable.js +76 -102
  132. package/dist/components/result-card.d.ts +10 -5
  133. package/dist/components/result-card.js +42 -53
  134. package/dist/components/result-notice.d.ts +18 -0
  135. package/dist/components/result-notice.js +29 -0
  136. package/dist/components/review-card.d.ts +6 -6
  137. package/dist/components/review-card.js +18 -18
  138. package/dist/components/rich-text-editor.d.ts +2 -2
  139. package/dist/components/rich-text-editor.js +56 -72
  140. package/dist/components/schema-diagram.d.ts +3 -3
  141. package/dist/components/schema-diagram.js +39 -53
  142. package/dist/components/scroll-area.d.ts +1 -1
  143. package/dist/components/scroll-area.js +10 -14
  144. package/dist/components/search-dialog.d.ts +6 -6
  145. package/dist/components/search-dialog.js +16 -16
  146. package/dist/components/search-field.d.ts +1 -1
  147. package/dist/components/search-field.js +11 -11
  148. package/dist/components/select.d.ts +3 -3
  149. package/dist/components/select.js +20 -20
  150. package/dist/components/selection-slot.d.ts +2 -2
  151. package/dist/components/selection-slot.js +6 -9
  152. package/dist/components/separator.d.ts +15 -15
  153. package/dist/components/separator.js +22 -27
  154. package/dist/components/settings-list.d.ts +3 -3
  155. package/dist/components/settings-list.js +5 -5
  156. package/dist/components/sheet.d.ts +6 -6
  157. package/dist/components/sheet.js +27 -27
  158. package/dist/components/sidebar.d.ts +22 -22
  159. package/dist/components/sidebar.js +57 -58
  160. package/dist/components/skeleton.d.ts +5 -5
  161. package/dist/components/skeleton.js +14 -21
  162. package/dist/components/slider.d.ts +2 -2
  163. package/dist/components/slider.js +6 -6
  164. package/dist/components/spinner.d.ts +5 -5
  165. package/dist/components/spinner.js +22 -26
  166. package/dist/components/sql-viewer.d.ts +14 -14
  167. package/dist/components/sql-viewer.js +99 -128
  168. package/dist/components/state-panel-samples.d.ts +2 -2
  169. package/dist/components/state-panel-samples.js +209 -245
  170. package/dist/components/state-panel.d.ts +2 -35
  171. package/dist/components/state-panel.js +2 -29
  172. package/dist/components/state-sample.d.ts +7 -7
  173. package/dist/components/state-sample.js +18 -31
  174. package/dist/components/switch.d.ts +1 -1
  175. package/dist/components/switch.js +7 -7
  176. package/dist/components/table-nuqs.d.ts +2 -2
  177. package/dist/components/table-nuqs.js +11 -12
  178. package/dist/components/table.d.ts +4 -4
  179. package/dist/components/table.js +166 -235
  180. package/dist/components/tabs.d.ts +2 -2
  181. package/dist/components/tabs.js +12 -12
  182. package/dist/components/textarea.d.ts +2 -2
  183. package/dist/components/textarea.js +6 -8
  184. package/dist/components/timeline.d.ts +3 -0
  185. package/dist/components/timeline.js +3 -0
  186. package/dist/components/toast.d.ts +2 -2
  187. package/dist/components/toast.js +19 -25
  188. package/dist/components/toggle-group.d.ts +2 -2
  189. package/dist/components/toggle-group.js +18 -20
  190. package/dist/components/toggle.d.ts +2 -2
  191. package/dist/components/toggle.js +8 -8
  192. package/dist/components/tool-activity.d.ts +1 -1
  193. package/dist/components/tool-activity.js +83 -110
  194. package/dist/components/toolbar-status.d.ts +2 -2
  195. package/dist/components/toolbar-status.js +7 -7
  196. package/dist/components/tooltip.d.ts +5 -5
  197. package/dist/components/tooltip.js +12 -11
  198. package/dist/components/typed-text.d.ts +2 -2
  199. package/dist/components/typed-text.js +10 -12
  200. package/dist/components/view-switcher.d.ts +51 -0
  201. package/dist/components/view-switcher.js +114 -0
  202. package/dist/index.d.ts +98 -93
  203. package/dist/index.js +98 -93
  204. package/dist/internal/chart-kit.d.ts +142 -0
  205. package/dist/internal/chart-kit.js +200 -0
  206. package/dist/internal/charts/bars.d.ts +61 -0
  207. package/dist/internal/charts/bars.js +86 -0
  208. package/dist/internal/charts/lines.d.ts +67 -0
  209. package/dist/internal/charts/lines.js +70 -0
  210. package/dist/internal/charts/more.d.ts +77 -0
  211. package/dist/internal/charts/more.js +68 -0
  212. package/dist/internal/charts/parts.d.ts +54 -0
  213. package/dist/internal/charts/parts.js +82 -0
  214. package/dist/internal/charts/timeline-dates.d.ts +38 -0
  215. package/dist/internal/charts/timeline-dates.js +113 -0
  216. package/dist/internal/charts/timeline-window.d.ts +31 -0
  217. package/dist/internal/charts/timeline-window.js +26 -0
  218. package/dist/internal/charts/timeline.d.ts +72 -0
  219. package/dist/internal/charts/timeline.js +287 -0
  220. package/dist/internal/classes.d.ts +1 -1
  221. package/dist/internal/classes.js +7 -9
  222. package/dist/internal/code-tokens.d.ts +2 -2
  223. package/dist/internal/code-tokens.js +12 -12
  224. package/dist/internal/fieldset.d.ts +1 -1
  225. package/dist/internal/fieldset.js +6 -6
  226. package/dist/internal/file-kind.d.ts +1 -1
  227. package/dist/internal/file-kind.js +43 -51
  228. package/dist/internal/flow.d.ts +4 -4
  229. package/dist/internal/flow.js +20 -23
  230. package/dist/internal/languages.js +999 -999
  231. package/dist/internal/message-scroller.d.ts +3 -3
  232. package/dist/internal/message-scroller.js +64 -112
  233. package/dist/internal/pressable.d.ts +1 -1
  234. package/dist/internal/pressable.js +7 -7
  235. package/dist/internal/state-panel.d.ts +35 -0
  236. package/dist/internal/state-panel.js +22 -0
  237. package/dist/internal/syntax.d.ts +2 -2
  238. package/dist/internal/syntax.js +36 -47
  239. package/dist/styles/accordion.css +3 -5
  240. package/dist/styles/agent-fanout.css +64 -60
  241. package/dist/styles/alert-dialog.css +12 -26
  242. package/dist/styles/alert.css +10 -15
  243. package/dist/styles/attachment.css +51 -93
  244. package/dist/styles/avatar.css +17 -24
  245. package/dist/styles/badge.css +11 -36
  246. package/dist/styles/board.css +571 -0
  247. package/dist/styles/brand-icon.css +7 -8
  248. package/dist/styles/breadcrumb.css +4 -7
  249. package/dist/styles/button-group.css +8 -14
  250. package/dist/styles/button.css +22 -27
  251. package/dist/styles/calendar.css +24 -36
  252. package/dist/styles/canvas.css +2 -3
  253. package/dist/styles/card.css +7 -23
  254. package/dist/styles/carousel.css +11 -12
  255. package/dist/styles/chart.css +215 -31
  256. package/dist/styles/chat-input.css +15 -39
  257. package/dist/styles/chat-plan.css +3 -4
  258. package/dist/styles/chat-sources.css +3 -6
  259. package/dist/styles/checkbox.css +11 -25
  260. package/dist/styles/choice-list.css +17 -31
  261. package/dist/styles/code-block.css +11 -25
  262. package/dist/styles/collapsible.css +10 -15
  263. package/dist/styles/combobox.css +11 -15
  264. package/dist/styles/command.css +5 -8
  265. package/dist/styles/context-menu.css +2 -2
  266. package/dist/styles/dialog.css +5 -16
  267. package/dist/styles/dropdown-menu.css +2 -2
  268. package/dist/styles/field.css +15 -21
  269. package/dist/styles/file-explorer.css +19 -33
  270. package/dist/styles/file-viewer.css +13 -17
  271. package/dist/styles/form.css +3 -3
  272. package/dist/styles/glass-banner.css +12 -47
  273. package/dist/styles/gradient-banner.css +17 -35
  274. package/dist/styles/hover-card.css +9 -15
  275. package/dist/styles/index.css +116 -108
  276. package/dist/styles/input-group.css +25 -41
  277. package/dist/styles/input-otp.css +5 -6
  278. package/dist/styles/input.css +5 -5
  279. package/dist/styles/kbd.css +1 -1
  280. package/dist/styles/label.css +9 -30
  281. package/dist/styles/mention-list.css +6 -8
  282. package/dist/styles/menubar.css +5 -6
  283. package/dist/styles/message-actions.css +1 -1
  284. package/dist/styles/message-response.css +3 -5
  285. package/dist/styles/message-scroller.css +14 -21
  286. package/dist/styles/message.css +23 -60
  287. package/dist/styles/navigation-menu.css +14 -29
  288. package/dist/styles/notice-banner.css +1 -2
  289. package/dist/styles/page-header.css +7 -10
  290. package/dist/styles/pagination.css +1 -4
  291. package/dist/styles/plan-outline.css +20 -37
  292. package/dist/styles/popover.css +10 -19
  293. package/dist/styles/presence-cursor.css +1 -2
  294. package/dist/styles/progress.css +2 -4
  295. package/dist/styles/prompt-list.css +6 -17
  296. package/dist/styles/questionnaire.css +16 -40
  297. package/dist/styles/radio-group.css +12 -23
  298. package/dist/styles/reasoning-effort.css +8 -15
  299. package/dist/styles/record-list.css +243 -0
  300. package/dist/styles/resizable.css +10 -11
  301. package/dist/styles/result-card.css +17 -3
  302. package/dist/styles/result-notice.css +80 -0
  303. package/dist/styles/review-card.css +2 -3
  304. package/dist/styles/rich-text-editor.css +1 -2
  305. package/dist/styles/schema-diagram.css +12 -17
  306. package/dist/styles/scroll-area.css +8 -10
  307. package/dist/styles/search-dialog.css +1 -5
  308. package/dist/styles/search-field.css +1 -2
  309. package/dist/styles/select.css +7 -7
  310. package/dist/styles/selection-slot.css +1 -2
  311. package/dist/styles/separator.css +7 -8
  312. package/dist/styles/settings-list.css +1 -2
  313. package/dist/styles/sheet.css +40 -73
  314. package/dist/styles/sidebar.css +17 -21
  315. package/dist/styles/skeleton.css +9 -11
  316. package/dist/styles/slider.css +11 -21
  317. package/dist/styles/spinner.css +2 -2
  318. package/dist/styles/sql-viewer.css +29 -29
  319. package/dist/styles/state-panel.css +8 -9
  320. package/dist/styles/state-sample.css +20 -33
  321. package/dist/styles/switch.css +11 -18
  322. package/dist/styles/table.css +51 -77
  323. package/dist/styles/tabs.css +12 -16
  324. package/dist/styles/textarea.css +3 -3
  325. package/dist/styles/themes/chatgpt.css +11 -23
  326. package/dist/styles/themes/claude.css +12 -24
  327. package/dist/styles/themes/cloudflare.css +11 -23
  328. package/dist/styles/themes/discord.css +11 -23
  329. package/dist/styles/themes/github.css +11 -23
  330. package/dist/styles/themes/grok.css +11 -23
  331. package/dist/styles/themes/linear.css +12 -25
  332. package/dist/styles/themes/neutral.css +11 -23
  333. package/dist/styles/themes/notion.css +11 -23
  334. package/dist/styles/themes/perplexity.css +11 -23
  335. package/dist/styles/themes/raycast.css +11 -23
  336. package/dist/styles/themes/spotify.css +11 -23
  337. package/dist/styles/themes/stripe.css +11 -23
  338. package/dist/styles/themes/supabase.css +11 -23
  339. package/dist/styles/themes/tulipfarm.css +9 -10
  340. package/dist/styles/themes/vercel.css +12 -25
  341. package/dist/styles/timeline.css +276 -0
  342. package/dist/styles/toast.css +13 -20
  343. package/dist/styles/toggle-group.css +17 -23
  344. package/dist/styles/toggle.css +8 -8
  345. package/dist/styles/tool-activity.css +7 -13
  346. package/dist/styles/toolbar-status.css +2 -7
  347. package/dist/styles/tooltip.css +15 -21
  348. package/dist/styles/view-switcher.css +279 -0
  349. package/package.json +21 -1
@@ -1,35 +1,2 @@
1
- import type { ComponentType, HTMLAttributes, ReactNode } from "react";
2
- export declare const statePanelKindNames: readonly ["empty", "loading", "success", "unavailable", "error"];
3
- export type StatePanelKind = (typeof statePanelKindNames)[number];
4
- export type StatePanelHeading = "h1" | "h2" | "h3" | "h4";
5
- export type StatePanelIcon = ComponentType<{
6
- size?: number;
7
- }>;
8
- interface StatePanelBaseProps extends Omit<HTMLAttributes<HTMLElement>, "title" | "children" | "role"> {
9
- title: ReactNode;
10
- description: ReactNode;
11
- /** Heading element for `title`. Match the surrounding document outline. */
12
- heading?: StatePanelHeading | undefined;
13
- /**
14
- * Icon for `empty` and `unavailable`. Pass `null` to show no icon.
15
- * Other kinds use a fixed icon.
16
- */
17
- icon?: StatePanelIcon | null | undefined;
18
- /** Actions or guidance shown below the description. */
19
- children?: ReactNode;
20
- }
21
- export type StatePanelProps = StatePanelBaseProps & ({
22
- kind: "empty";
23
- /** Decorative preview of the filled state. Switches to the split layout. */
24
- sample?: ReactNode;
25
- } | {
26
- kind: "loading" | "success" | "unavailable";
27
- sample?: never;
28
- } | {
29
- kind: "error";
30
- /** Errors always offer a recovery action or guidance. */
31
- children: ReactNode;
32
- sample?: never;
33
- });
34
- export declare function StatePanel({ kind, title, description, heading: Heading, icon, children, sample, className, ...props }: StatePanelProps): import("react").JSX.Element;
35
- export * from "./state-panel-samples.js";
1
+ export * from '../internal/state-panel.js';
2
+ export * from './state-panel-samples.js';
@@ -1,29 +1,2 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { Check } from "reicon-react/icons/Check";
3
- import { Inbox } from "reicon-react/icons/Inbox";
4
- import { Warning } from "reicon-react/icons/Warning";
5
- import { cn } from "../internal/classes.js";
6
- import { Spinner } from "./spinner.js";
7
- export const statePanelKindNames = [
8
- "empty",
9
- "loading",
10
- "success",
11
- "unavailable",
12
- "error",
13
- ];
14
- const roles = {
15
- error: "alert",
16
- loading: "status",
17
- success: "status",
18
- };
19
- function Media({ kind, Icon }) {
20
- return (_jsx("div", { "data-slot": "state-panel-media", className: "sprout-state-panel-media", "aria-hidden": "true", children: kind === "loading" ? (_jsx(Spinner, { "aria-hidden": "true" })) : kind === "success" ? (_jsx(Check, { size: 20 })) : kind === "error" ? (_jsx(Warning, { size: 20, className: "sprout-state-panel-danger" })) : (_jsx(Icon, { size: 20 })) }));
21
- }
22
- export function StatePanel({ kind, title, description, heading: Heading = "h2", icon = Inbox, children, sample, className, ...props }) {
23
- const media = icon === null && (kind === "empty" || kind === "unavailable") ? null : (_jsx(Media, { kind: kind, Icon: icon ?? Inbox }));
24
- const hasActions = children !== undefined && children !== null && children !== false;
25
- if (sample)
26
- return (_jsx("section", { "data-slot": "state-panel", "data-kind": kind, "data-layout": "sample", ...props, className: cn("sprout-state-panel", className), children: _jsxs("div", { className: "sprout-state-panel-card", children: [_jsxs("div", { className: "sprout-state-panel-copy", children: [media, _jsxs("div", { className: "sprout-state-panel-text", children: [_jsx(Heading, { className: "sprout-state-panel-title", children: title }), _jsx("p", { className: "sprout-state-panel-description", children: description })] }), hasActions && (_jsx("div", { "data-slot": "state-panel-actions", className: "sprout-state-panel-actions", children: children }))] }), _jsx("div", { "data-slot": "state-panel-sample", className: "sprout-state-panel-sample", "aria-hidden": "true", inert: true, children: _jsx("div", { className: "sprout-state-panel-sample-window", children: sample }) })] }) }));
27
- return (_jsxs("div", { "data-slot": "state-panel", "data-kind": kind, "data-layout": "centered", ...props, className: cn("sprout-state-panel", className), children: [media, _jsxs("div", { role: roles[kind], "aria-atomic": "true", className: "sprout-state-panel-text", children: [_jsx(Heading, { className: "sprout-state-panel-title", children: title }), _jsx("p", { className: "sprout-state-panel-description", children: description })] }), hasActions && (_jsx("div", { "data-slot": "state-panel-actions", className: "sprout-state-panel-actions", children: children }))] }));
28
- }
29
- export * from "./state-panel-samples.js";
1
+ export * from '../internal/state-panel.js';
2
+ export * from './state-panel-samples.js';
@@ -1,8 +1,8 @@
1
- import { type ComponentType, type HTMLAttributes, type ReactNode } from "react";
1
+ import { type ComponentType, type HTMLAttributes, type ReactNode } from 'react';
2
2
  export type SampleIcon = ComponentType<{
3
3
  size?: number;
4
4
  }>;
5
- export interface SampleWindowProps extends Omit<HTMLAttributes<HTMLDivElement>, "children"> {
5
+ export interface SampleWindowProps extends Omit<HTMLAttributes<HTMLDivElement>, 'children'> {
6
6
  /** Page icon at the start of the title bar. */
7
7
  icon: SampleIcon;
8
8
  /** Breadcrumb parts. The last part is the current page. */
@@ -20,7 +20,7 @@ export type SampleColumn = {
20
20
  label: string;
21
21
  size?: SampleColumnSize;
22
22
  };
23
- export interface SampleTableProps extends Omit<HTMLAttributes<HTMLDivElement>, "children"> {
23
+ export interface SampleTableProps extends Omit<HTMLAttributes<HTMLDivElement>, 'children'> {
24
24
  columns: readonly SampleColumn[];
25
25
  rows: readonly (readonly ReactNode[])[];
26
26
  }
@@ -31,7 +31,7 @@ export type SampleListItem = {
31
31
  detail?: string;
32
32
  trailing?: ReactNode;
33
33
  };
34
- export interface SampleListProps extends Omit<HTMLAttributes<HTMLDivElement>, "children"> {
34
+ export interface SampleListProps extends Omit<HTMLAttributes<HTMLDivElement>, 'children'> {
35
35
  items: readonly SampleListItem[];
36
36
  }
37
37
  export declare function SampleList({ items, className, ...props }: SampleListProps): import("react").JSX.Element;
@@ -46,18 +46,18 @@ export declare const sampleMarkToneNames: readonly ["red", "orange", "green", "b
46
46
  export type SampleMarkTone = (typeof sampleMarkToneNames)[number];
47
47
  export declare const sampleMarkSizeNames: readonly ["sm", "md"];
48
48
  export type SampleMarkSize = (typeof sampleMarkSizeNames)[number];
49
- export interface SampleMarkProps extends Omit<HTMLAttributes<HTMLSpanElement>, "children"> {
49
+ export interface SampleMarkProps extends Omit<HTMLAttributes<HTMLSpanElement>, 'children'> {
50
50
  tone: SampleMarkTone;
51
51
  size?: SampleMarkSize | undefined;
52
52
  }
53
53
  export declare function SampleMark({ tone, size, className, ...props }: SampleMarkProps): import("react").JSX.Element;
54
54
  export declare const sampleBarWidthNames: readonly ["sm", "md", "lg"];
55
55
  export type SampleBarWidth = (typeof sampleBarWidthNames)[number];
56
- export interface SampleBarProps extends Omit<HTMLAttributes<HTMLSpanElement>, "children"> {
56
+ export interface SampleBarProps extends Omit<HTMLAttributes<HTMLSpanElement>, 'children'> {
57
57
  width?: SampleBarWidth | undefined;
58
58
  }
59
59
  export declare function SampleBar({ width, className, ...props }: SampleBarProps): import("react").JSX.Element;
60
- export interface SampleIconTileProps extends Omit<HTMLAttributes<HTMLSpanElement>, "children"> {
60
+ export interface SampleIconTileProps extends Omit<HTMLAttributes<HTMLSpanElement>, 'children'> {
61
61
  icon: SampleIcon;
62
62
  }
63
63
  export declare function SampleIconTile({ icon: Icon, className, ...props }: SampleIconTileProps): import("react").JSX.Element;
@@ -1,42 +1,29 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { Fragment, } from "react";
3
- import { cn } from "../internal/classes.js";
4
- export function SampleWindow({ icon: Icon, trail, tabs, label = "Example", children, className, ...props }) {
5
- return (_jsxs("div", { "data-slot": "state-sample", ...props, className: cn("sprout-state-sample", className), children: [_jsxs("div", { className: "sprout-state-sample-bar", children: [_jsx("span", { className: "sprout-state-sample-icon", "aria-hidden": "true", children: _jsx(Icon, { size: 14 }) }), trail.map((part, index) => (_jsxs(Fragment, { children: [index > 0 && (_jsx("span", { className: "sprout-state-sample-faint", "aria-hidden": "true", children: "/" })), _jsx("span", { className: "sprout-state-sample-crumb", "data-current": index === trail.length - 1 ? "" : undefined, children: part })] }, index))), _jsx("span", { className: "sprout-state-sample-faint", "aria-hidden": "true", children: "\u00B7\u00B7\u00B7" }), _jsx("span", { className: "sprout-state-sample-label", children: label })] }), tabs && tabs.length > 0 && (_jsx("div", { className: "sprout-state-sample-tabs", children: tabs.map((tab, index) => (_jsx("span", { className: "sprout-state-sample-tab", "data-selected": index === 0 ? "" : undefined, children: tab }, index))) })), children] }));
2
+ import { Fragment } from 'react';
3
+ import { cn } from '../internal/classes.js';
4
+ export function SampleWindow({ icon: Icon, trail, tabs, label = 'Example', children, className, ...props }) {
5
+ return (_jsxs("div", { "data-slot": "state-sample", ...props, className: cn('sprout-state-sample', className), children: [_jsxs("div", { className: "sprout-state-sample-bar", children: [_jsx("span", { className: "sprout-state-sample-icon", "aria-hidden": "true", children: _jsx(Icon, { size: 14 }) }), trail.map((part, index) => (_jsxs(Fragment, { children: [index > 0 && (_jsx("span", { className: "sprout-state-sample-faint", "aria-hidden": "true", children: "/" })), _jsx("span", { className: "sprout-state-sample-crumb", "data-current": index === trail.length - 1 ? '' : undefined, children: part })] }, index))), _jsx("span", { className: "sprout-state-sample-faint", "aria-hidden": "true", children: "\u00B7\u00B7\u00B7" }), _jsx("span", { className: "sprout-state-sample-label", children: label })] }), tabs && tabs.length > 0 && (_jsx("div", { className: "sprout-state-sample-tabs", children: tabs.map((tab, index) => (_jsx("span", { className: "sprout-state-sample-tab", "data-selected": index === 0 ? '' : undefined, children: tab }, index))) })), children] }));
6
6
  }
7
- export const sampleColumnSizeNames = ["wide", "default", "narrow"];
7
+ export const sampleColumnSizeNames = ['wide', 'default', 'narrow'];
8
8
  export function SampleTable({ columns, rows, className, ...props }) {
9
- return (_jsxs("div", { "data-slot": "state-sample-table", ...props, className: cn("sprout-state-sample-table", className), children: [_jsxs("div", { className: "sprout-state-sample-head", children: [_jsx("span", { className: "sprout-state-sample-check", "aria-hidden": "true" }), columns.map((column, index) => (_jsx("span", { className: "sprout-state-sample-cell", "data-size": column.size ?? "default", children: column.label }, index)))] }), rows.map((row, rowIndex) => (_jsxs("div", { className: "sprout-state-sample-row", children: [_jsx("span", { className: "sprout-state-sample-check", "aria-hidden": "true" }), row.map((cell, cellIndex) => (_jsx("span", { className: "sprout-state-sample-cell", "data-size": columns[cellIndex]?.size ?? "default", children: cell }, cellIndex)))] }, rowIndex)))] }));
9
+ return (_jsxs("div", { "data-slot": "state-sample-table", ...props, className: cn('sprout-state-sample-table', className), children: [_jsxs("div", { className: "sprout-state-sample-head", children: [_jsx("span", { className: "sprout-state-sample-check", "aria-hidden": "true" }), columns.map((column, index) => (_jsx("span", { className: "sprout-state-sample-cell", "data-size": column.size ?? 'default', children: column.label }, index)))] }), rows.map((row, rowIndex) => (_jsxs("div", { className: "sprout-state-sample-row", children: [_jsx("span", { className: "sprout-state-sample-check", "aria-hidden": "true" }), row.map((cell, cellIndex) => (_jsx("span", { className: "sprout-state-sample-cell", "data-size": columns[cellIndex]?.size ?? 'default', children: cell }, cellIndex)))] }, rowIndex)))] }));
10
10
  }
11
11
  export function SampleList({ items, className, ...props }) {
12
- return (_jsx("div", { "data-slot": "state-sample-list", ...props, className: cn("sprout-state-sample-list", className), children: items.map((item, index) => (_jsxs("div", { className: "sprout-state-sample-item", children: [item.leading && (_jsx("span", { className: "sprout-state-sample-leading", children: item.leading })), _jsxs("span", { className: "sprout-state-sample-copy", children: [_jsx("span", { className: "sprout-state-sample-title", children: item.title }), item.detail && (_jsx("span", { className: "sprout-state-sample-detail", children: item.detail }))] }), item.trailing && (_jsx("span", { className: "sprout-state-sample-trailing", children: item.trailing }))] }, index))) }));
12
+ return (_jsx("div", { "data-slot": "state-sample-list", ...props, className: cn('sprout-state-sample-list', className), children: items.map((item, index) => (_jsxs("div", { className: "sprout-state-sample-item", children: [item.leading && _jsx("span", { className: "sprout-state-sample-leading", children: item.leading }), _jsxs("span", { className: "sprout-state-sample-copy", children: [_jsx("span", { className: "sprout-state-sample-title", children: item.title }), item.detail && _jsx("span", { className: "sprout-state-sample-detail", children: item.detail })] }), item.trailing && _jsx("span", { className: "sprout-state-sample-trailing", children: item.trailing })] }, index))) }));
13
13
  }
14
- export const sampleTextToneNames = [
15
- "default",
16
- "strong",
17
- "muted",
18
- "link",
19
- "mono",
20
- ];
21
- export function SampleText({ tone = "default", className, ...props }) {
22
- return (_jsx("span", { "data-slot": "state-sample-text", "data-tone": tone, ...props, className: cn("sprout-state-sample-text", className) }));
14
+ export const sampleTextToneNames = ['default', 'strong', 'muted', 'link', 'mono'];
15
+ export function SampleText({ tone = 'default', className, ...props }) {
16
+ return (_jsx("span", { "data-slot": "state-sample-text", "data-tone": tone, ...props, className: cn('sprout-state-sample-text', className) }));
23
17
  }
24
- export const sampleMarkToneNames = [
25
- "red",
26
- "orange",
27
- "green",
28
- "blue",
29
- "violet",
30
- "teal",
31
- ];
32
- export const sampleMarkSizeNames = ["sm", "md"];
33
- export function SampleMark({ tone, size = "sm", className, ...props }) {
34
- return (_jsx("span", { "data-slot": "state-sample-mark", "data-tone": tone, "data-size": size, "aria-hidden": "true", ...props, className: cn("sprout-state-sample-mark", className) }));
18
+ export const sampleMarkToneNames = ['red', 'orange', 'green', 'blue', 'violet', 'teal'];
19
+ export const sampleMarkSizeNames = ['sm', 'md'];
20
+ export function SampleMark({ tone, size = 'sm', className, ...props }) {
21
+ return (_jsx("span", { "data-slot": "state-sample-mark", "data-tone": tone, "data-size": size, "aria-hidden": "true", ...props, className: cn('sprout-state-sample-mark', className) }));
35
22
  }
36
- export const sampleBarWidthNames = ["sm", "md", "lg"];
37
- export function SampleBar({ width = "md", className, ...props }) {
38
- return (_jsx("span", { "data-slot": "state-sample-bar", "data-width": width, "aria-hidden": "true", ...props, className: cn("sprout-state-sample-placeholder", className) }));
23
+ export const sampleBarWidthNames = ['sm', 'md', 'lg'];
24
+ export function SampleBar({ width = 'md', className, ...props }) {
25
+ return (_jsx("span", { "data-slot": "state-sample-bar", "data-width": width, "aria-hidden": "true", ...props, className: cn('sprout-state-sample-placeholder', className) }));
39
26
  }
40
27
  export function SampleIconTile({ icon: Icon, className, ...props }) {
41
- return (_jsx("span", { "data-slot": "state-sample-icon-tile", "aria-hidden": "true", ...props, className: cn("sprout-state-sample-icon-tile", className), children: _jsx(Icon, { size: 14 }) }));
28
+ return (_jsx("span", { "data-slot": "state-sample-icon-tile", "aria-hidden": "true", ...props, className: cn('sprout-state-sample-icon-tile', className), children: _jsx(Icon, { size: 14 }) }));
42
29
  }
@@ -1,4 +1,4 @@
1
- import { Switch as BaseSwitch } from "@base-ui/react/switch";
1
+ import { Switch as BaseSwitch } from '@base-ui/react/switch';
2
2
  export declare const switchSizeNames: readonly ["default", "sm"];
3
3
  export type SwitchSize = (typeof switchSizeNames)[number];
4
4
  export interface SwitchProps extends BaseSwitch.Root.Props {
@@ -1,14 +1,14 @@
1
- "use client";
1
+ 'use client';
2
2
  import { jsx as _jsx } from "react/jsx-runtime";
3
- import { Switch as BaseSwitch } from "@base-ui/react/switch";
4
- import { cn, stateClassName } from "../internal/classes.js";
5
- import { useFieldsetDisabled } from "../internal/fieldset.js";
6
- export const switchSizeNames = ["default", "sm"];
3
+ import { Switch as BaseSwitch } from '@base-ui/react/switch';
4
+ import { cn, stateClassName } from '../internal/classes.js';
5
+ import { useFieldsetDisabled } from '../internal/fieldset.js';
6
+ export const switchSizeNames = ['default', 'sm'];
7
7
  /**
8
8
  * An on/off switch for a setting that applies right away. Name it with a
9
9
  * wrapping `Label`, a `Label htmlFor` pointing at its `id`, or `aria-label`.
10
10
  */
11
- export function Switch({ size = "default", className, disabled, ref, ...props }) {
11
+ export function Switch({ size = 'default', className, disabled, ref, ...props }) {
12
12
  const [fieldsetDisabled, fieldsetRef] = useFieldsetDisabled(ref);
13
- return (_jsx(BaseSwitch.Root, { "data-slot": "switch", "data-size": size, ...props, ref: fieldsetRef, disabled: disabled || fieldsetDisabled, className: stateClassName(cn("sprout-switch", `sprout-switch-size-${size}`), className), children: _jsx(BaseSwitch.Thumb, { "data-slot": "switch-thumb", className: "sprout-switch-thumb" }) }));
13
+ return (_jsx(BaseSwitch.Root, { "data-slot": "switch", "data-size": size, ...props, ref: fieldsetRef, disabled: disabled || fieldsetDisabled, className: stateClassName(cn('sprout-switch', `sprout-switch-size-${size}`), className), children: _jsx(BaseSwitch.Thumb, { "data-slot": "switch-thumb", className: "sprout-switch-thumb" }) }));
14
14
  }
@@ -1,4 +1,4 @@
1
- import type { TableState } from "./table.js";
1
+ import type { TableState } from './table.js';
2
2
  export interface TableUrlStateOptions {
3
3
  /** Prefixes every query key, for pages with more than one Table. */
4
4
  prefix?: string;
@@ -10,7 +10,7 @@ export interface TableUrlStateOptions {
10
10
  * URL with nuqs, so a shared link opens the same view. Spread the result into
11
11
  * `<Table {...useTableUrlState()} />`. Needs a nuqs adapter higher in the tree.
12
12
  */
13
- export declare function useTableUrlState({ prefix, pageSize, }?: TableUrlStateOptions): {
13
+ export declare function useTableUrlState({ prefix, pageSize }?: TableUrlStateOptions): {
14
14
  state: Partial<TableState>;
15
15
  onStateChange: (next: TableState) => undefined;
16
16
  };
@@ -1,17 +1,16 @@
1
- "use client";
2
- import { createParser, parseAsArrayOf, parseAsInteger, parseAsJson, parseAsString, useQueryStates, } from "nuqs";
1
+ 'use client';
2
+ import { createParser, parseAsArrayOf, parseAsInteger, parseAsJson, parseAsString, useQueryStates } from 'nuqs';
3
3
  const parseAsSorting = createParser({
4
- parse: (value) => value
5
- .split(",")
4
+ parse: value => value
5
+ .split(',')
6
6
  .filter(Boolean)
7
- .map((part) => {
8
- const [id = "", dir] = part.split(".");
9
- return { id, desc: dir === "desc" };
7
+ .map(part => {
8
+ const [id = '', dir] = part.split('.');
9
+ return { id, desc: dir === 'desc' };
10
10
  }),
11
- serialize: (sorting) => sorting.map((s) => `${s.id}.${s.desc ? "desc" : "asc"}`).join(","),
11
+ serialize: sorting => sorting.map(s => `${s.id}.${s.desc ? 'desc' : 'asc'}`).join(','),
12
12
  });
13
- const isFilters = (value) => Array.isArray(value) &&
14
- value.every((f) => typeof f === "object" && f !== null && typeof f.id === "string")
13
+ const isFilters = (value) => Array.isArray(value) && value.every(f => typeof f === 'object' && f !== null && typeof f.id === 'string')
15
14
  ? value
16
15
  : null;
17
16
  /**
@@ -19,11 +18,11 @@ const isFilters = (value) => Array.isArray(value) &&
19
18
  * URL with nuqs, so a shared link opens the same view. Spread the result into
20
19
  * `<Table {...useTableUrlState()} />`. Needs a nuqs adapter higher in the tree.
21
20
  */
22
- export function useTableUrlState({ prefix = "", pageSize = 10, } = {}) {
21
+ export function useTableUrlState({ prefix = '', pageSize = 10 } = {}) {
23
22
  const [query, setQuery] = useQueryStates({
24
23
  sort: parseAsSorting.withDefault([]),
25
24
  filters: parseAsJson(isFilters).withDefault([]),
26
- q: parseAsString.withDefault(""),
25
+ q: parseAsString.withDefault(''),
27
26
  group: parseAsArrayOf(parseAsString).withDefault([]),
28
27
  page: parseAsInteger.withDefault(1),
29
28
  size: parseAsInteger.withDefault(pageSize),
@@ -1,5 +1,5 @@
1
- import { type ReactNode } from "react";
2
- import { type ColumnFiltersState, type ColumnOrderState, type ColumnPinningState, type ColumnSizingState, type ColumnVisibilityState, type ExpandedState, type GroupingState, type PaginationState, type RowData, type SortingState } from "@tanstack/react-table";
1
+ import { type ReactNode } from 'react';
2
+ import { type ColumnFiltersState, type ColumnOrderState, type ColumnPinningState, type ColumnSizingState, type ColumnVisibilityState, type ExpandedState, type GroupingState, type PaginationState, type RowData, type SortingState } from '@tanstack/react-table';
3
3
  export declare const tableVariantNames: readonly ["plain", "grid"];
4
4
  export declare const tableNarrowNames: readonly ["scroll", "stack"];
5
5
  export declare const tableAlignNames: readonly ["left", "right"];
@@ -38,7 +38,7 @@ export interface TableColumn<Row> {
38
38
  aggregate?: TableAggregate;
39
39
  /** Formats aggregate values. Defaults to `toLocaleString()`. */
40
40
  formatAggregate?: (value: number) => ReactNode;
41
- pin?: "left" | "right";
41
+ pin?: 'left' | 'right';
42
42
  hidden?: boolean;
43
43
  }
44
44
  /**
@@ -60,7 +60,7 @@ export interface TableState {
60
60
  export declare const tableLayoutKeys: readonly ["columnSizing", "columnOrder", "columnPinning", "columnVisibility"];
61
61
  export interface TableProps<Row> {
62
62
  /** Names the table, and the scrolling region when it overflows. */
63
- "aria-label": string;
63
+ 'aria-label': string;
64
64
  data: Row[];
65
65
  columns: TableColumn<Row>[];
66
66
  getRowId: (row: Row) => string;