@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
@@ -9,7 +9,7 @@
9
9
  max-width: 100%;
10
10
  border-radius: var(--sprout-radius-control);
11
11
  }
12
- .sprout-toggle-group[data-orientation="vertical"] {
12
+ .sprout-toggle-group[data-orientation='vertical'] {
13
13
  flex-direction: column;
14
14
  align-items: stretch;
15
15
  }
@@ -46,14 +46,14 @@
46
46
  flex-shrink: 0;
47
47
  pointer-events: none;
48
48
  }
49
- .sprout-toggle-group-item svg:not([class*="size-"]) {
49
+ .sprout-toggle-group-item svg:not([class*='size-']) {
50
50
  width: var(--sprout-toggle-group-icon);
51
51
  height: var(--sprout-toggle-group-icon);
52
52
  }
53
- .sprout-toggle-group-item:has(> [data-icon="inline-start"]) {
53
+ .sprout-toggle-group-item:has(> [data-icon='inline-start']) {
54
54
  padding-inline-start: 8px;
55
55
  }
56
- .sprout-toggle-group-item:has(> [data-icon="inline-end"]) {
56
+ .sprout-toggle-group-item:has(> [data-icon='inline-end']) {
57
57
  padding-inline-end: 8px;
58
58
  }
59
59
  .sprout-toggle-group-item:focus-visible {
@@ -91,10 +91,10 @@
91
91
  font-size: var(--sprout-text-xs);
92
92
  line-height: 16px;
93
93
  }
94
- .sprout-toggle-group-item-size-sm:has(> [data-icon="inline-start"]) {
94
+ .sprout-toggle-group-item-size-sm:has(> [data-icon='inline-start']) {
95
95
  padding-inline-start: 6px;
96
96
  }
97
- .sprout-toggle-group-item-size-sm:has(> [data-icon="inline-end"]) {
97
+ .sprout-toggle-group-item-size-sm:has(> [data-icon='inline-end']) {
98
98
  padding-inline-end: 6px;
99
99
  }
100
100
  .sprout-toggle-group-item-size-lg {
@@ -103,49 +103,43 @@
103
103
  }
104
104
 
105
105
  /* spacing={0} joins items into one segmented control. */
106
- .sprout-toggle-group-item[data-spacing="0"] {
106
+ .sprout-toggle-group-item[data-spacing='0'] {
107
107
  padding-inline: 8px;
108
108
  border-radius: 0;
109
109
  box-shadow: none;
110
110
  }
111
- .sprout-toggle-group[data-spacing="0"][data-variant="outline"] {
111
+ .sprout-toggle-group[data-spacing='0'][data-variant='outline'] {
112
112
  box-shadow: var(--sprout-shadow-control);
113
113
  }
114
- .sprout-toggle-group-item[data-spacing="0"]:has(
115
- > [data-icon="inline-start"]
116
- ) {
114
+ .sprout-toggle-group-item[data-spacing='0']:has(> [data-icon='inline-start']) {
117
115
  padding-inline-start: 6px;
118
116
  }
119
- .sprout-toggle-group-item[data-spacing="0"]:has(> [data-icon="inline-end"]) {
117
+ .sprout-toggle-group-item[data-spacing='0']:has(> [data-icon='inline-end']) {
120
118
  padding-inline-end: 6px;
121
119
  }
122
- .sprout-toggle-group-item[data-spacing="0"][data-orientation="horizontal"]:first-child {
120
+ .sprout-toggle-group-item[data-spacing='0'][data-orientation='horizontal']:first-child {
123
121
  border-start-start-radius: var(--sprout-radius-control);
124
122
  border-end-start-radius: var(--sprout-radius-control);
125
123
  }
126
- .sprout-toggle-group-item[data-spacing="0"][data-orientation="horizontal"]:last-child {
124
+ .sprout-toggle-group-item[data-spacing='0'][data-orientation='horizontal']:last-child {
127
125
  border-start-end-radius: var(--sprout-radius-control);
128
126
  border-end-end-radius: var(--sprout-radius-control);
129
127
  }
130
- .sprout-toggle-group-item[data-spacing="0"][data-orientation="vertical"]:first-child {
128
+ .sprout-toggle-group-item[data-spacing='0'][data-orientation='vertical']:first-child {
131
129
  border-start-start-radius: var(--sprout-radius-control);
132
130
  border-start-end-radius: var(--sprout-radius-control);
133
131
  }
134
- .sprout-toggle-group-item[data-spacing="0"][data-orientation="vertical"]:last-child {
132
+ .sprout-toggle-group-item[data-spacing='0'][data-orientation='vertical']:last-child {
135
133
  border-end-start-radius: var(--sprout-radius-control);
136
134
  border-end-end-radius: var(--sprout-radius-control);
137
135
  }
138
- .sprout-toggle-group-item-outline[data-spacing="0"][data-orientation="horizontal"]:not(
139
- :first-child
140
- ) {
136
+ .sprout-toggle-group-item-outline[data-spacing='0'][data-orientation='horizontal']:not(:first-child) {
141
137
  border-inline-start-width: 0;
142
138
  }
143
- .sprout-toggle-group-item-outline[data-spacing="0"][data-orientation="vertical"]:not(
144
- :first-child
145
- ) {
139
+ .sprout-toggle-group-item-outline[data-spacing='0'][data-orientation='vertical']:not(:first-child) {
146
140
  border-top-width: 0;
147
141
  }
148
- .sprout-toggle-group-item[data-spacing="0"]:focus-visible {
142
+ .sprout-toggle-group-item[data-spacing='0']:focus-visible {
149
143
  outline-offset: -1px;
150
144
  }
151
145
 
@@ -32,14 +32,14 @@
32
32
  flex-shrink: 0;
33
33
  pointer-events: none;
34
34
  }
35
- .sprout-toggle svg:not([class*="size-"]) {
35
+ .sprout-toggle svg:not([class*='size-']) {
36
36
  width: var(--sprout-toggle-icon);
37
37
  height: var(--sprout-toggle-icon);
38
38
  }
39
- .sprout-toggle:has(> [data-icon="inline-start"]) {
39
+ .sprout-toggle:has(> [data-icon='inline-start']) {
40
40
  padding-inline-start: 8px;
41
41
  }
42
- .sprout-toggle:has(> [data-icon="inline-end"]) {
42
+ .sprout-toggle:has(> [data-icon='inline-end']) {
43
43
  padding-inline-end: 8px;
44
44
  }
45
45
  .sprout-toggle:focus-visible {
@@ -52,7 +52,7 @@
52
52
  cursor: not-allowed;
53
53
  opacity: 0.5;
54
54
  }
55
- .sprout-toggle[aria-busy="true"] {
55
+ .sprout-toggle[aria-busy='true'] {
56
56
  cursor: progress;
57
57
  }
58
58
  @media (hover: hover) {
@@ -66,10 +66,10 @@
66
66
  background-color: var(--sprout-primary-subtle);
67
67
  color: var(--sprout-primary);
68
68
  }
69
- .sprout-toggle[aria-invalid="true"] {
69
+ .sprout-toggle[aria-invalid='true'] {
70
70
  border-color: var(--sprout-danger);
71
71
  }
72
- .sprout-toggle[aria-invalid="true"]:focus-visible {
72
+ .sprout-toggle[aria-invalid='true']:focus-visible {
73
73
  outline-color: var(--sprout-danger);
74
74
  }
75
75
 
@@ -86,10 +86,10 @@
86
86
  font-size: var(--sprout-text-xs);
87
87
  line-height: 16px;
88
88
  }
89
- .sprout-toggle-size-sm:has(> [data-icon="inline-start"]) {
89
+ .sprout-toggle-size-sm:has(> [data-icon='inline-start']) {
90
90
  padding-inline-start: 6px;
91
91
  }
92
- .sprout-toggle-size-sm:has(> [data-icon="inline-end"]) {
92
+ .sprout-toggle-size-sm:has(> [data-icon='inline-end']) {
93
93
  padding-inline-end: 6px;
94
94
  }
95
95
  .sprout-toggle-size-lg {
@@ -57,16 +57,12 @@
57
57
  z-index: 1;
58
58
  inset: 0 0 auto;
59
59
  height: 20px;
60
- content: "";
60
+ content: '';
61
61
  opacity: 0;
62
62
  pointer-events: none;
63
63
  background: linear-gradient(
64
64
  to bottom,
65
- color-mix(
66
- in srgb,
67
- var(--sprout-activity-panel-fade, var(--sprout-surface)) 94%,
68
- transparent
69
- ),
65
+ color-mix(in srgb, var(--sprout-activity-panel-fade, var(--sprout-surface)) 94%, transparent),
70
66
  transparent
71
67
  );
72
68
  backdrop-filter: blur(3px);
@@ -141,7 +137,7 @@
141
137
  padding: 8px 0;
142
138
  font-size: var(--sprout-text-xs);
143
139
  }
144
- .sprout-tool-activity-older[data-tone="danger"] {
140
+ .sprout-tool-activity-older[data-tone='danger'] {
145
141
  color: var(--sprout-danger);
146
142
  }
147
143
  .sprout-tool-activity-list {
@@ -195,8 +191,7 @@
195
191
  color: var(--sprout-muted);
196
192
  overflow-wrap: anywhere;
197
193
  }
198
- .sprout-tool-activity-row[data-status="running"]
199
- .sprout-tool-activity-label-text {
194
+ .sprout-tool-activity-row[data-status='running'] .sprout-tool-activity-label-text {
200
195
  color: var(--sprout-text);
201
196
  }
202
197
  .sprout-tool-activity-query,
@@ -218,7 +213,7 @@
218
213
  line-height: 1rem;
219
214
  overflow-wrap: anywhere;
220
215
  }
221
- .sprout-tool-activity-detail[data-tone="danger"] {
216
+ .sprout-tool-activity-detail[data-tone='danger'] {
222
217
  color: var(--sprout-danger);
223
218
  }
224
219
  .sprout-tool-activity-details {
@@ -282,7 +277,7 @@
282
277
  height: 20px;
283
278
  object-fit: contain;
284
279
  }
285
- .sprout-tool-activity-favicon[data-status="loading"] > img {
280
+ .sprout-tool-activity-favicon[data-status='loading'] > img {
286
281
  opacity: 0;
287
282
  }
288
283
  .sprout-tool-activity-source-title {
@@ -370,8 +365,7 @@
370
365
  transition: opacity var(--sprout-motion-fast) ease-out;
371
366
  }
372
367
  .sprout-tool-activity-row {
373
- animation: sprout-tool-activity-in var(--sprout-motion-normal) ease-out
374
- both;
368
+ animation: sprout-tool-activity-in var(--sprout-motion-normal) ease-out both;
375
369
  }
376
370
  .sprout-tool-activity-mark-arc {
377
371
  animation: sprout-tool-activity-spin 1s linear infinite;
@@ -16,11 +16,7 @@
16
16
  max-width: 100%;
17
17
  }
18
18
  /* The darker tint keeps AA contrast on the hovered and open background. */
19
- .sprout-toolbar-status-trigger[data-status="error"]:is(
20
- :hover,
21
- :active,
22
- [data-popup-open]
23
- ) {
19
+ .sprout-toolbar-status-trigger[data-status='error']:is(:hover, :active, [data-popup-open]) {
24
20
  background: color-mix(in srgb, var(--sprout-danger) 18%, transparent);
25
21
  color: var(--sprout-danger-hover);
26
22
  }
@@ -37,8 +33,7 @@
37
33
  gap: 2px;
38
34
  min-width: 0;
39
35
  }
40
- .sprout-toolbar-status-content[data-status="error"]
41
- .sprout-toolbar-status-title {
36
+ .sprout-toolbar-status-content[data-status='error'] .sprout-toolbar-status-title {
42
37
  color: var(--sprout-danger);
43
38
  }
44
39
 
@@ -37,34 +37,34 @@
37
37
  background: var(--sprout-surface);
38
38
  rotate: 45deg;
39
39
  }
40
- .sprout-tooltip-arrow[data-side="top"] {
40
+ .sprout-tooltip-arrow[data-side='top'] {
41
41
  bottom: -4.5px;
42
42
  border-top-color: transparent;
43
43
  border-left-color: transparent;
44
44
  }
45
- .sprout-tooltip-arrow[data-side="bottom"] {
45
+ .sprout-tooltip-arrow[data-side='bottom'] {
46
46
  top: -4.5px;
47
47
  border-right-color: transparent;
48
48
  border-bottom-color: transparent;
49
49
  }
50
- .sprout-tooltip-arrow:is([data-side="right"], [data-side="inline-end"]) {
50
+ .sprout-tooltip-arrow:is([data-side='right'], [data-side='inline-end']) {
51
51
  left: -4.5px;
52
52
  border-top-color: transparent;
53
53
  border-right-color: transparent;
54
54
  }
55
- .sprout-tooltip-arrow:is([data-side="left"], [data-side="inline-start"]) {
55
+ .sprout-tooltip-arrow:is([data-side='left'], [data-side='inline-start']) {
56
56
  right: -4.5px;
57
57
  border-bottom-color: transparent;
58
58
  border-left-color: transparent;
59
59
  }
60
- [dir="rtl"] .sprout-tooltip-arrow[data-side="inline-end"] {
60
+ [dir='rtl'] .sprout-tooltip-arrow[data-side='inline-end'] {
61
61
  right: -4.5px;
62
62
  left: auto;
63
63
  border: 1px solid var(--sprout-line);
64
64
  border-bottom-color: transparent;
65
65
  border-left-color: transparent;
66
66
  }
67
- [dir="rtl"] .sprout-tooltip-arrow[data-side="inline-start"] {
67
+ [dir='rtl'] .sprout-tooltip-arrow[data-side='inline-start'] {
68
68
  left: -4.5px;
69
69
  right: auto;
70
70
  border: 1px solid var(--sprout-line);
@@ -91,28 +91,22 @@
91
91
  opacity: 0;
92
92
  scale: 0.96;
93
93
  }
94
- .sprout-tooltip-content[data-side="top"]:is(
95
- [data-starting-style],
96
- [data-ending-style]
97
- ) {
94
+ .sprout-tooltip-content[data-side='top']:is([data-starting-style], [data-ending-style]) {
98
95
  translate: 0 var(--sprout-tooltip-shift);
99
96
  }
100
- .sprout-tooltip-content[data-side="bottom"]:is(
97
+ .sprout-tooltip-content[data-side='bottom']:is([data-starting-style], [data-ending-style]) {
98
+ translate: 0 calc(var(--sprout-tooltip-shift) * -1);
99
+ }
100
+ .sprout-tooltip-content:is([data-side='right'], [data-side='inline-end']):is(
101
101
  [data-starting-style],
102
102
  [data-ending-style]
103
103
  ) {
104
- translate: 0 calc(var(--sprout-tooltip-shift) * -1);
105
- }
106
- .sprout-tooltip-content:is(
107
- [data-side="right"],
108
- [data-side="inline-end"]
109
- ):is([data-starting-style], [data-ending-style]) {
110
104
  translate: calc(var(--sprout-tooltip-shift) * -1) 0;
111
105
  }
112
- .sprout-tooltip-content:is(
113
- [data-side="left"],
114
- [data-side="inline-start"]
115
- ):is([data-starting-style], [data-ending-style]) {
106
+ .sprout-tooltip-content:is([data-side='left'], [data-side='inline-start']):is(
107
+ [data-starting-style],
108
+ [data-ending-style]
109
+ ) {
116
110
  translate: var(--sprout-tooltip-shift) 0;
117
111
  }
118
112
  .sprout-tooltip-content[data-instant] {
@@ -0,0 +1,279 @@
1
+ @layer components {
2
+ .sprout-view-switcher {
3
+ display: flex;
4
+ align-items: center;
5
+ gap: 4px;
6
+ min-width: 0;
7
+ border-bottom: 1px solid var(--sprout-line);
8
+ font-family: var(--sprout-font);
9
+ container-type: inline-size;
10
+ }
11
+
12
+ .sprout-view-switcher-tabs.sprout-tabs {
13
+ display: flex;
14
+ flex: 0 1 auto;
15
+ min-width: 0;
16
+ }
17
+
18
+ .sprout-view-switcher-list.sprout-tabs-list {
19
+ --sprout-view-switcher-fade-start: 0px;
20
+ --sprout-view-switcher-fade-end: 0px;
21
+ justify-content: flex-start;
22
+ gap: 2px;
23
+ width: auto;
24
+ max-width: 100%;
25
+ height: 40px;
26
+ padding: 0 2px;
27
+ overflow-x: auto;
28
+ overflow-y: hidden;
29
+ overscroll-behavior-x: contain;
30
+ scrollbar-width: none;
31
+ mask-image: linear-gradient(
32
+ to right,
33
+ transparent 0,
34
+ #000 var(--sprout-view-switcher-fade-start),
35
+ #000 calc(100% - var(--sprout-view-switcher-fade-end)),
36
+ transparent 100%
37
+ );
38
+ }
39
+ .sprout-view-switcher-list::-webkit-scrollbar {
40
+ display: none;
41
+ }
42
+ .sprout-view-switcher-list[data-overflow-start] {
43
+ --sprout-view-switcher-fade-start: 24px;
44
+ }
45
+ .sprout-view-switcher-list[data-overflow-end] {
46
+ --sprout-view-switcher-fade-end: 24px;
47
+ }
48
+ .sprout-view-switcher-list:dir(rtl) {
49
+ mask-image: linear-gradient(
50
+ to left,
51
+ transparent 0,
52
+ #000 var(--sprout-view-switcher-fade-start),
53
+ #000 calc(100% - var(--sprout-view-switcher-fade-end)),
54
+ transparent 100%
55
+ );
56
+ }
57
+
58
+ .sprout-view-switcher-tab.sprout-tabs-trigger {
59
+ flex: none;
60
+ gap: 6px;
61
+ height: 30px;
62
+ padding: 0 8px;
63
+ border: 0;
64
+ color: var(--sprout-muted);
65
+ }
66
+ .sprout-view-switcher-tab.sprout-tabs-trigger::after {
67
+ display: none;
68
+ }
69
+ .sprout-view-switcher-tab.sprout-tabs-trigger:focus-visible {
70
+ outline-offset: -2px;
71
+ }
72
+ .sprout-view-switcher-tab.sprout-tabs-trigger[data-active] {
73
+ color: var(--sprout-text);
74
+ }
75
+ .sprout-view-switcher-tab[data-closable] {
76
+ padding-inline-end: 4px;
77
+ }
78
+ @media (hover: hover) {
79
+ .sprout-view-switcher-tab.sprout-tabs-trigger:hover {
80
+ background: var(--sprout-hover);
81
+ color: var(--sprout-text);
82
+ }
83
+ }
84
+
85
+ .sprout-view-switcher-icon {
86
+ display: inline-flex;
87
+ flex-shrink: 0;
88
+ }
89
+ .sprout-view-switcher-tab .sprout-view-switcher-icon svg {
90
+ width: 14px;
91
+ height: 14px;
92
+ }
93
+
94
+ .sprout-view-switcher-close {
95
+ display: inline-flex;
96
+ flex-shrink: 0;
97
+ align-items: center;
98
+ justify-content: center;
99
+ width: 16px;
100
+ height: 16px;
101
+ border-radius: calc(var(--sprout-radius-control) - 2px);
102
+ color: var(--sprout-muted);
103
+ opacity: 0;
104
+ cursor: pointer;
105
+ }
106
+ .sprout-view-switcher-tab .sprout-view-switcher-close svg {
107
+ width: 12px;
108
+ height: 12px;
109
+ pointer-events: none;
110
+ }
111
+ .sprout-view-switcher-tab:focus-visible .sprout-view-switcher-close,
112
+ .sprout-view-switcher-tab:hover .sprout-view-switcher-close {
113
+ opacity: 1;
114
+ }
115
+ .sprout-view-switcher-close:hover {
116
+ background: var(--sprout-active);
117
+ color: var(--sprout-text);
118
+ }
119
+ @media (hover: none) {
120
+ .sprout-view-switcher-close {
121
+ opacity: 1;
122
+ }
123
+ }
124
+
125
+ .sprout-view-switcher-indicator {
126
+ position: absolute;
127
+ bottom: 0;
128
+ left: var(--active-tab-left);
129
+ width: var(--active-tab-width);
130
+ height: 2px;
131
+ border-radius: 2px 2px 0 0;
132
+ background: var(--sprout-text);
133
+ pointer-events: none;
134
+ }
135
+
136
+ .sprout-view-switcher-add.sprout-button {
137
+ flex: none;
138
+ color: var(--sprout-muted);
139
+ }
140
+ .sprout-view-switcher-add.sprout-button:hover,
141
+ .sprout-view-switcher-add.sprout-button[data-popup-open] {
142
+ color: var(--sprout-text);
143
+ }
144
+
145
+ .sprout-view-switcher-actions {
146
+ display: flex;
147
+ flex: none;
148
+ align-items: center;
149
+ gap: 4px;
150
+ margin-inline-start: auto;
151
+ padding-inline-start: 8px;
152
+ }
153
+
154
+ @container (max-width: 479px) {
155
+ .sprout-view-switcher-add-label {
156
+ position: absolute;
157
+ width: 1px;
158
+ height: 1px;
159
+ overflow: hidden;
160
+ clip-path: inset(50%);
161
+ white-space: nowrap;
162
+ }
163
+ .sprout-view-switcher-add.sprout-button {
164
+ padding-inline: 6px;
165
+ }
166
+ }
167
+
168
+ .sprout-view-switcher-menu.sprout-dropdown-menu-content {
169
+ width: min(36rem, var(--available-width));
170
+ padding: 6px;
171
+ container-type: inline-size;
172
+ }
173
+ .sprout-view-switcher-options {
174
+ display: grid;
175
+ grid-template-columns: repeat(2, minmax(0, 1fr));
176
+ gap: 2px;
177
+ }
178
+ @container (max-width: 479px) {
179
+ .sprout-view-switcher-options {
180
+ grid-template-columns: minmax(0, 1fr);
181
+ }
182
+ }
183
+
184
+ .sprout-view-switcher-option.sprout-dropdown-menu-item {
185
+ align-items: flex-start;
186
+ gap: 10px;
187
+ padding: 8px;
188
+ }
189
+ .sprout-view-switcher-tile {
190
+ display: inline-flex;
191
+ flex-shrink: 0;
192
+ align-items: center;
193
+ justify-content: center;
194
+ width: 32px;
195
+ height: 32px;
196
+ border-radius: var(--sprout-radius-control);
197
+ background: var(--sprout-hover);
198
+ color: var(--sprout-text);
199
+ }
200
+ .sprout-view-switcher-option[data-highlighted] .sprout-view-switcher-tile {
201
+ background: var(--sprout-surface);
202
+ box-shadow: inset 0 0 0 1px var(--sprout-line);
203
+ }
204
+ .sprout-view-switcher-option-text {
205
+ display: grid;
206
+ flex: 1 1 auto;
207
+ gap: 2px;
208
+ min-width: 0;
209
+ padding-top: 1px;
210
+ }
211
+ .sprout-view-switcher-option-title {
212
+ font-weight: 500;
213
+ line-height: 1.25rem;
214
+ }
215
+ .sprout-view-switcher-option-note {
216
+ color: var(--sprout-muted);
217
+ font-size: var(--sprout-text-xs);
218
+ line-height: 1rem;
219
+ overflow-wrap: anywhere;
220
+ }
221
+ .sprout-view-switcher-check {
222
+ display: inline-flex;
223
+ flex-shrink: 0;
224
+ align-self: center;
225
+ color: var(--sprout-text);
226
+ }
227
+
228
+ .sprout-view-switcher-option.sprout-dropdown-menu-item[data-disabled] {
229
+ opacity: 1;
230
+ cursor: not-allowed;
231
+ }
232
+ .sprout-view-switcher-option[data-disabled] .sprout-view-switcher-tile {
233
+ background: transparent;
234
+ box-shadow: inset 0 0 0 1px var(--sprout-line);
235
+ color: var(--sprout-muted);
236
+ }
237
+ .sprout-view-switcher-option[data-disabled] .sprout-view-switcher-option-title {
238
+ color: var(--sprout-muted);
239
+ }
240
+ .sprout-view-switcher-option-note[data-kind='unavailable'] {
241
+ white-space: normal;
242
+ }
243
+
244
+ .sprout-view-switcher-sr-only {
245
+ position: absolute;
246
+ width: 1px;
247
+ height: 1px;
248
+ overflow: hidden;
249
+ clip-path: inset(50%);
250
+ white-space: nowrap;
251
+ }
252
+
253
+ @media (forced-colors: active) {
254
+ .sprout-view-switcher-indicator {
255
+ background: Highlight;
256
+ }
257
+ .sprout-view-switcher-tile {
258
+ border: 1px solid CanvasText;
259
+ }
260
+ }
261
+
262
+ @media (prefers-reduced-motion: no-preference) {
263
+ .sprout-view-switcher-indicator {
264
+ transition:
265
+ left var(--sprout-motion-normal) var(--sprout-motion-ease),
266
+ width var(--sprout-motion-normal) var(--sprout-motion-ease);
267
+ }
268
+ .sprout-view-switcher-close {
269
+ transition:
270
+ opacity var(--sprout-motion-fast) var(--sprout-motion-ease),
271
+ background-color var(--sprout-motion-fast) var(--sprout-motion-ease);
272
+ }
273
+ .sprout-view-switcher-tile {
274
+ transition:
275
+ background-color var(--sprout-motion-fast) var(--sprout-motion-ease),
276
+ box-shadow var(--sprout-motion-fast) var(--sprout-motion-ease);
277
+ }
278
+ }
279
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tulipfarm/sprout",
3
- "version": "0.3.0",
3
+ "version": "0.4.0",
4
4
  "description": "Considered React controls. Built with Base UI and Tailwind CSS.",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -64,6 +64,10 @@
64
64
  "types": "./dist/components/badge.d.ts",
65
65
  "import": "./dist/components/badge.js"
66
66
  },
67
+ "./board": {
68
+ "types": "./dist/components/board.d.ts",
69
+ "import": "./dist/components/board.js"
70
+ },
67
71
  "./brand-icon": {
68
72
  "types": "./dist/components/brand-icon.d.ts",
69
73
  "import": "./dist/components/brand-icon.js"
@@ -100,6 +104,10 @@
100
104
  "types": "./dist/components/chart.d.ts",
101
105
  "import": "./dist/components/chart.js"
102
106
  },
107
+ "./timeline": {
108
+ "types": "./dist/components/timeline.d.ts",
109
+ "import": "./dist/components/timeline.js"
110
+ },
103
111
  "./chat-confirmation": {
104
112
  "types": "./dist/components/chat-confirmation.d.ts",
105
113
  "import": "./dist/components/chat-confirmation.js"
@@ -280,6 +288,10 @@
280
288
  "types": "./dist/components/reasoning-effort.d.ts",
281
289
  "import": "./dist/components/reasoning-effort.js"
282
290
  },
291
+ "./record-list": {
292
+ "types": "./dist/components/record-list.d.ts",
293
+ "import": "./dist/components/record-list.js"
294
+ },
283
295
  "./resizable": {
284
296
  "types": "./dist/components/resizable.d.ts",
285
297
  "import": "./dist/components/resizable.js"
@@ -288,6 +300,10 @@
288
300
  "types": "./dist/components/result-card.d.ts",
289
301
  "import": "./dist/components/result-card.js"
290
302
  },
303
+ "./result-notice": {
304
+ "types": "./dist/components/result-notice.d.ts",
305
+ "import": "./dist/components/result-notice.js"
306
+ },
291
307
  "./review-card": {
292
308
  "types": "./dist/components/review-card.d.ts",
293
309
  "import": "./dist/components/review-card.js"
@@ -408,6 +424,10 @@
408
424
  "types": "./dist/components/typed-text.d.ts",
409
425
  "import": "./dist/components/typed-text.js"
410
426
  },
427
+ "./view-switcher": {
428
+ "types": "./dist/components/view-switcher.d.ts",
429
+ "import": "./dist/components/view-switcher.js"
430
+ },
411
431
  "./styles.css": "./dist/styles/index.css",
412
432
  "./themes/*": "./dist/styles/themes/*",
413
433
  "./package.json": "./package.json"