@tulipfarm/sprout 0.3.1 → 0.5.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 (355) hide show
  1. package/README.md +75 -68
  2. package/dist/components/accordion.d.ts +2 -2
  3. package/dist/components/accordion.js +9 -9
  4. package/dist/components/agent-avatar.d.ts +27 -0
  5. package/dist/components/agent-avatar.js +67 -0
  6. package/dist/components/agent-fanout.d.ts +2 -2
  7. package/dist/components/agent-fanout.js +65 -87
  8. package/dist/components/alert-dialog.d.ts +8 -8
  9. package/dist/components/alert-dialog.js +21 -21
  10. package/dist/components/alert.d.ts +6 -6
  11. package/dist/components/alert.js +13 -13
  12. package/dist/components/aspect-ratio.d.ts +2 -2
  13. package/dist/components/aspect-ratio.js +2 -2
  14. package/dist/components/attachment.d.ts +18 -18
  15. package/dist/components/attachment.js +82 -115
  16. package/dist/components/avatar.d.ts +9 -17
  17. package/dist/components/avatar.js +14 -51
  18. package/dist/components/badge.d.ts +4 -4
  19. package/dist/components/badge.js +18 -18
  20. package/dist/components/board.d.ts +107 -0
  21. package/dist/components/board.js +640 -0
  22. package/dist/components/brand-icon.d.ts +6 -6
  23. package/dist/components/brand-icon.js +55 -63
  24. package/dist/components/breadcrumb.d.ts +11 -11
  25. package/dist/components/breadcrumb.js +16 -18
  26. package/dist/components/button-group.d.ts +6 -6
  27. package/dist/components/button-group.js +14 -14
  28. package/dist/components/button.d.ts +13 -13
  29. package/dist/components/button.js +31 -57
  30. package/dist/components/calendar.d.ts +5 -5
  31. package/dist/components/calendar.js +44 -53
  32. package/dist/components/canvas.d.ts +4 -4
  33. package/dist/components/canvas.js +39 -46
  34. package/dist/components/card.d.ts +7 -7
  35. package/dist/components/card.js +17 -17
  36. package/dist/components/carousel.d.ts +7 -7
  37. package/dist/components/carousel.js +57 -75
  38. package/dist/components/chart.d.ts +5 -112
  39. package/dist/components/chart.js +5 -172
  40. package/dist/components/chat-confirmation.d.ts +10 -10
  41. package/dist/components/chat-confirmation.js +32 -38
  42. package/dist/components/chat-input.d.ts +4 -4
  43. package/dist/components/chat-input.js +74 -81
  44. package/dist/components/chat-plan.d.ts +2 -2
  45. package/dist/components/chat-plan.js +15 -20
  46. package/dist/components/chat-sources.d.ts +8 -8
  47. package/dist/components/chat-sources.js +18 -27
  48. package/dist/components/checkbox.d.ts +1 -1
  49. package/dist/components/checkbox.js +9 -9
  50. package/dist/components/choice-list.d.ts +2 -2
  51. package/dist/components/choice-list.js +16 -18
  52. package/dist/components/code-block.d.ts +5 -5
  53. package/dist/components/code-block.js +26 -26
  54. package/dist/components/collapsible.d.ts +1 -1
  55. package/dist/components/collapsible.js +7 -11
  56. package/dist/components/combobox.d.ts +12 -6
  57. package/dist/components/combobox.js +27 -26
  58. package/dist/components/command.d.ts +13 -13
  59. package/dist/components/command.js +61 -73
  60. package/dist/components/context-menu.d.ts +5 -5
  61. package/dist/components/context-menu.js +22 -22
  62. package/dist/components/dialog.d.ts +6 -6
  63. package/dist/components/dialog.js +23 -28
  64. package/dist/components/direction.d.ts +1 -1
  65. package/dist/components/direction.js +1 -1
  66. package/dist/components/dropdown-menu.d.ts +5 -5
  67. package/dist/components/dropdown-menu.js +20 -20
  68. package/dist/components/field.d.ts +11 -11
  69. package/dist/components/field.js +41 -61
  70. package/dist/components/file-explorer.d.ts +2 -2
  71. package/dist/components/file-explorer.js +89 -105
  72. package/dist/components/file-viewer.d.ts +10 -10
  73. package/dist/components/file-viewer.js +112 -140
  74. package/dist/components/form.d.ts +7 -7
  75. package/dist/components/form.js +24 -28
  76. package/dist/components/glass-banner.d.ts +3 -3
  77. package/dist/components/glass-banner.js +21 -24
  78. package/dist/components/gradient-banner.d.ts +7 -7
  79. package/dist/components/gradient-banner.js +13 -22
  80. package/dist/components/hover-card.d.ts +4 -4
  81. package/dist/components/hover-card.js +6 -6
  82. package/dist/components/input-group.d.ts +18 -18
  83. package/dist/components/input-group.js +25 -39
  84. package/dist/components/input-otp.d.ts +14 -10
  85. package/dist/components/input-otp.js +15 -15
  86. package/dist/components/input.d.ts +3 -3
  87. package/dist/components/input.js +7 -7
  88. package/dist/components/kbd.d.ts +3 -3
  89. package/dist/components/kbd.js +5 -5
  90. package/dist/components/label.d.ts +2 -2
  91. package/dist/components/label.js +2 -2
  92. package/dist/components/mention-list.d.ts +3 -3
  93. package/dist/components/mention-list.js +10 -10
  94. package/dist/components/menubar.d.ts +6 -6
  95. package/dist/components/menubar.js +22 -22
  96. package/dist/components/message-actions.d.ts +2 -2
  97. package/dist/components/message-actions.js +29 -31
  98. package/dist/components/message-response.d.ts +3 -3
  99. package/dist/components/message-response.js +18 -18
  100. package/dist/components/message-scroller.d.ts +12 -12
  101. package/dist/components/message-scroller.js +44 -56
  102. package/dist/components/message.d.ts +11 -11
  103. package/dist/components/message.js +25 -25
  104. package/dist/components/navigation-menu.d.ts +2 -2
  105. package/dist/components/navigation-menu.js +15 -15
  106. package/dist/components/notice-banner.d.ts +2 -2
  107. package/dist/components/notice-banner.js +2 -2
  108. package/dist/components/page-content.d.ts +2 -2
  109. package/dist/components/page-content.js +2 -2
  110. package/dist/components/page-header.d.ts +1 -1
  111. package/dist/components/page-header.js +17 -17
  112. package/dist/components/pagination.d.ts +9 -9
  113. package/dist/components/pagination.js +17 -17
  114. package/dist/components/plan-outline.d.ts +2 -2
  115. package/dist/components/plan-outline.js +43 -60
  116. package/dist/components/popover.d.ts +6 -6
  117. package/dist/components/popover.js +15 -15
  118. package/dist/components/presence-cursor.d.ts +2 -2
  119. package/dist/components/presence-cursor.js +3 -3
  120. package/dist/components/progress.d.ts +1 -1
  121. package/dist/components/progress.js +8 -8
  122. package/dist/components/prompt-list.d.ts +3 -3
  123. package/dist/components/prompt-list.js +6 -6
  124. package/dist/components/questionnaire.d.ts +19 -19
  125. package/dist/components/questionnaire.js +183 -242
  126. package/dist/components/radio-group.d.ts +2 -2
  127. package/dist/components/radio-group.js +6 -6
  128. package/dist/components/reasoning-effort.d.ts +3 -3
  129. package/dist/components/reasoning-effort.js +9 -12
  130. package/dist/components/record-list.d.ts +66 -0
  131. package/dist/components/record-list.js +151 -0
  132. package/dist/components/resizable.d.ts +5 -5
  133. package/dist/components/resizable.js +76 -102
  134. package/dist/components/result-card.d.ts +4 -4
  135. package/dist/components/result-card.js +42 -53
  136. package/dist/components/result-notice.d.ts +18 -0
  137. package/dist/components/result-notice.js +29 -0
  138. package/dist/components/review-card.d.ts +6 -6
  139. package/dist/components/review-card.js +18 -18
  140. package/dist/components/rich-text-editor.d.ts +5 -5
  141. package/dist/components/rich-text-editor.js +56 -72
  142. package/dist/components/schema-diagram.d.ts +3 -3
  143. package/dist/components/schema-diagram.js +39 -53
  144. package/dist/components/scroll-area.d.ts +3 -3
  145. package/dist/components/scroll-area.js +10 -14
  146. package/dist/components/search-dialog.d.ts +6 -6
  147. package/dist/components/search-dialog.js +16 -16
  148. package/dist/components/search-field.d.ts +1 -1
  149. package/dist/components/search-field.js +11 -11
  150. package/dist/components/select.d.ts +5 -9
  151. package/dist/components/select.js +20 -20
  152. package/dist/components/selection-slot.d.ts +2 -2
  153. package/dist/components/selection-slot.js +6 -9
  154. package/dist/components/separator.d.ts +15 -15
  155. package/dist/components/separator.js +22 -27
  156. package/dist/components/settings-list.d.ts +3 -3
  157. package/dist/components/settings-list.js +5 -5
  158. package/dist/components/sheet.d.ts +6 -6
  159. package/dist/components/sheet.js +27 -27
  160. package/dist/components/sidebar.d.ts +22 -22
  161. package/dist/components/sidebar.js +57 -58
  162. package/dist/components/skeleton.d.ts +5 -5
  163. package/dist/components/skeleton.js +14 -21
  164. package/dist/components/slider.d.ts +2 -2
  165. package/dist/components/slider.js +6 -6
  166. package/dist/components/spinner.d.ts +7 -7
  167. package/dist/components/spinner.js +22 -26
  168. package/dist/components/sql-viewer.d.ts +14 -14
  169. package/dist/components/sql-viewer.js +99 -128
  170. package/dist/components/state-panel-samples.d.ts +2 -2
  171. package/dist/components/state-panel-samples.js +209 -245
  172. package/dist/components/state-panel.d.ts +2 -35
  173. package/dist/components/state-panel.js +2 -29
  174. package/dist/components/state-sample.d.ts +8 -8
  175. package/dist/components/state-sample.js +18 -31
  176. package/dist/components/switch.d.ts +3 -3
  177. package/dist/components/switch.js +7 -7
  178. package/dist/components/table-nuqs.d.ts +2 -2
  179. package/dist/components/table-nuqs.js +11 -12
  180. package/dist/components/table.d.ts +4 -4
  181. package/dist/components/table.js +166 -235
  182. package/dist/components/tabs.d.ts +2 -2
  183. package/dist/components/tabs.js +12 -12
  184. package/dist/components/textarea.d.ts +2 -2
  185. package/dist/components/textarea.js +6 -8
  186. package/dist/components/timeline.d.ts +3 -0
  187. package/dist/components/timeline.js +3 -0
  188. package/dist/components/toast.d.ts +2 -2
  189. package/dist/components/toast.js +19 -25
  190. package/dist/components/toggle-group.d.ts +4 -4
  191. package/dist/components/toggle-group.js +18 -20
  192. package/dist/components/toggle.d.ts +4 -4
  193. package/dist/components/toggle.js +8 -8
  194. package/dist/components/tool-activity.d.ts +1 -1
  195. package/dist/components/tool-activity.js +83 -110
  196. package/dist/components/toolbar-status.d.ts +2 -2
  197. package/dist/components/toolbar-status.js +7 -7
  198. package/dist/components/tooltip.d.ts +5 -5
  199. package/dist/components/tooltip.js +12 -11
  200. package/dist/components/typed-text.d.ts +2 -2
  201. package/dist/components/typed-text.js +10 -12
  202. package/dist/components/view-switcher.d.ts +51 -0
  203. package/dist/components/view-switcher.js +114 -0
  204. package/dist/index.d.ts +99 -93
  205. package/dist/index.js +99 -93
  206. package/dist/internal/agent-avatar-artwork.d.ts +4 -0
  207. package/dist/internal/agent-avatar-artwork.js +219 -0
  208. package/dist/internal/chart-kit.d.ts +142 -0
  209. package/dist/internal/chart-kit.js +200 -0
  210. package/dist/internal/charts/bars.d.ts +61 -0
  211. package/dist/internal/charts/bars.js +86 -0
  212. package/dist/internal/charts/lines.d.ts +67 -0
  213. package/dist/internal/charts/lines.js +70 -0
  214. package/dist/internal/charts/more.d.ts +77 -0
  215. package/dist/internal/charts/more.js +68 -0
  216. package/dist/internal/charts/parts.d.ts +54 -0
  217. package/dist/internal/charts/parts.js +82 -0
  218. package/dist/internal/charts/timeline-dates.d.ts +38 -0
  219. package/dist/internal/charts/timeline-dates.js +113 -0
  220. package/dist/internal/charts/timeline-window.d.ts +31 -0
  221. package/dist/internal/charts/timeline-window.js +26 -0
  222. package/dist/internal/charts/timeline.d.ts +72 -0
  223. package/dist/internal/charts/timeline.js +287 -0
  224. package/dist/internal/classes.d.ts +1 -1
  225. package/dist/internal/classes.js +7 -9
  226. package/dist/internal/code-tokens.d.ts +2 -2
  227. package/dist/internal/code-tokens.js +12 -12
  228. package/dist/internal/fieldset.d.ts +1 -1
  229. package/dist/internal/fieldset.js +6 -6
  230. package/dist/internal/file-kind.d.ts +1 -1
  231. package/dist/internal/file-kind.js +43 -51
  232. package/dist/internal/flow.d.ts +4 -4
  233. package/dist/internal/flow.js +20 -23
  234. package/dist/internal/hash.d.ts +1 -0
  235. package/dist/internal/hash.js +9 -0
  236. package/dist/internal/languages.js +999 -999
  237. package/dist/internal/message-scroller.d.ts +3 -3
  238. package/dist/internal/message-scroller.js +64 -112
  239. package/dist/internal/pressable.d.ts +1 -1
  240. package/dist/internal/pressable.js +7 -7
  241. package/dist/internal/state-panel.d.ts +35 -0
  242. package/dist/internal/state-panel.js +22 -0
  243. package/dist/internal/syntax.d.ts +2 -2
  244. package/dist/internal/syntax.js +36 -47
  245. package/dist/styles/accordion.css +3 -5
  246. package/dist/styles/agent-fanout.css +64 -60
  247. package/dist/styles/alert-dialog.css +12 -26
  248. package/dist/styles/alert.css +10 -15
  249. package/dist/styles/attachment.css +56 -98
  250. package/dist/styles/avatar.css +14 -33
  251. package/dist/styles/badge.css +11 -36
  252. package/dist/styles/board.css +571 -0
  253. package/dist/styles/brand-icon.css +7 -8
  254. package/dist/styles/breadcrumb.css +4 -7
  255. package/dist/styles/button-group.css +9 -15
  256. package/dist/styles/button.css +45 -175
  257. package/dist/styles/calendar.css +24 -36
  258. package/dist/styles/canvas.css +2 -3
  259. package/dist/styles/card.css +7 -23
  260. package/dist/styles/carousel.css +11 -12
  261. package/dist/styles/chart.css +215 -31
  262. package/dist/styles/chat-input.css +15 -39
  263. package/dist/styles/chat-plan.css +3 -4
  264. package/dist/styles/chat-sources.css +4 -6
  265. package/dist/styles/checkbox.css +11 -25
  266. package/dist/styles/choice-list.css +17 -31
  267. package/dist/styles/code-block.css +11 -25
  268. package/dist/styles/collapsible.css +10 -15
  269. package/dist/styles/combobox.css +24 -17
  270. package/dist/styles/command.css +8 -9
  271. package/dist/styles/context-menu.css +4 -2
  272. package/dist/styles/dialog.css +5 -16
  273. package/dist/styles/dropdown-menu.css +4 -2
  274. package/dist/styles/field.css +15 -21
  275. package/dist/styles/file-explorer.css +19 -33
  276. package/dist/styles/file-viewer.css +13 -17
  277. package/dist/styles/form.css +3 -3
  278. package/dist/styles/glass-banner.css +12 -47
  279. package/dist/styles/gradient-banner.css +16 -39
  280. package/dist/styles/hover-card.css +9 -15
  281. package/dist/styles/index.css +121 -112
  282. package/dist/styles/input-group.css +61 -69
  283. package/dist/styles/input-otp.css +18 -9
  284. package/dist/styles/input.css +19 -11
  285. package/dist/styles/kbd.css +1 -1
  286. package/dist/styles/label.css +9 -30
  287. package/dist/styles/mention-list.css +6 -8
  288. package/dist/styles/menubar.css +9 -8
  289. package/dist/styles/message-actions.css +1 -1
  290. package/dist/styles/message-response.css +3 -5
  291. package/dist/styles/message-scroller.css +14 -21
  292. package/dist/styles/message.css +23 -60
  293. package/dist/styles/navigation-menu.css +15 -30
  294. package/dist/styles/notice-banner.css +1 -2
  295. package/dist/styles/page-header.css +11 -10
  296. package/dist/styles/pagination.css +12 -6
  297. package/dist/styles/plan-outline.css +20 -37
  298. package/dist/styles/popover.css +10 -19
  299. package/dist/styles/presence-cursor.css +1 -2
  300. package/dist/styles/progress.css +2 -4
  301. package/dist/styles/prompt-list.css +6 -17
  302. package/dist/styles/questionnaire.css +16 -40
  303. package/dist/styles/radio-group.css +12 -23
  304. package/dist/styles/reasoning-effort.css +8 -15
  305. package/dist/styles/record-list.css +243 -0
  306. package/dist/styles/resizable.css +10 -11
  307. package/dist/styles/result-card.css +4 -4
  308. package/dist/styles/result-notice.css +80 -0
  309. package/dist/styles/review-card.css +2 -3
  310. package/dist/styles/rich-text-editor.css +4 -5
  311. package/dist/styles/schema-diagram.css +12 -17
  312. package/dist/styles/scroll-area.css +8 -10
  313. package/dist/styles/search-dialog.css +1 -5
  314. package/dist/styles/search-field.css +1 -2
  315. package/dist/styles/select.css +15 -19
  316. package/dist/styles/selection-slot.css +1 -2
  317. package/dist/styles/separator.css +7 -8
  318. package/dist/styles/settings-list.css +1 -2
  319. package/dist/styles/sheet.css +40 -73
  320. package/dist/styles/sidebar.css +32 -34
  321. package/dist/styles/skeleton.css +9 -11
  322. package/dist/styles/slider.css +11 -21
  323. package/dist/styles/spinner.css +2 -2
  324. package/dist/styles/sql-viewer.css +29 -29
  325. package/dist/styles/state-panel.css +8 -9
  326. package/dist/styles/state-sample.css +20 -33
  327. package/dist/styles/switch.css +11 -18
  328. package/dist/styles/table.css +62 -81
  329. package/dist/styles/tabs.css +13 -19
  330. package/dist/styles/textarea.css +3 -3
  331. package/dist/styles/themes/chatgpt.css +11 -23
  332. package/dist/styles/themes/claude.css +12 -24
  333. package/dist/styles/themes/cloudflare.css +11 -23
  334. package/dist/styles/themes/discord.css +11 -23
  335. package/dist/styles/themes/github.css +11 -23
  336. package/dist/styles/themes/grok.css +11 -23
  337. package/dist/styles/themes/linear.css +12 -25
  338. package/dist/styles/themes/neutral.css +11 -23
  339. package/dist/styles/themes/notion.css +11 -23
  340. package/dist/styles/themes/perplexity.css +11 -23
  341. package/dist/styles/themes/raycast.css +11 -23
  342. package/dist/styles/themes/spotify.css +11 -23
  343. package/dist/styles/themes/stripe.css +11 -23
  344. package/dist/styles/themes/supabase.css +11 -23
  345. package/dist/styles/themes/tulipfarm.css +9 -10
  346. package/dist/styles/themes/vercel.css +12 -25
  347. package/dist/styles/timeline.css +276 -0
  348. package/dist/styles/toast.css +13 -20
  349. package/dist/styles/toggle-group.css +23 -29
  350. package/dist/styles/toggle.css +14 -14
  351. package/dist/styles/tool-activity.css +7 -13
  352. package/dist/styles/toolbar-status.css +2 -7
  353. package/dist/styles/tooltip.css +15 -21
  354. package/dist/styles/view-switcher.css +297 -0
  355. package/package.json +25 -1
@@ -7,7 +7,7 @@
7
7
  align-items: center;
8
8
  justify-content: center;
9
9
  gap: 6px;
10
- height: 28px;
10
+ height: var(--sprout-control-height);
11
11
  padding: 0 10px;
12
12
  border: 1px solid transparent;
13
13
  border-radius: var(--sprout-radius-control);
@@ -28,7 +28,7 @@
28
28
  flex-shrink: 0;
29
29
  pointer-events: none;
30
30
  }
31
- .sprout-button svg:not([class*="size-"]) {
31
+ .sprout-button svg:not([class*='size-']) {
32
32
  width: var(--sprout-button-icon);
33
33
  height: var(--sprout-button-icon);
34
34
  }
@@ -38,14 +38,14 @@
38
38
  }
39
39
  .sprout-button:disabled,
40
40
  .sprout-button[data-disabled],
41
- .sprout-button[aria-disabled="true"] {
41
+ .sprout-button[aria-disabled='true'] {
42
42
  pointer-events: none;
43
43
  opacity: 0.5;
44
44
  }
45
- .sprout-button[aria-busy="true"] {
45
+ .sprout-button[aria-busy='true'] {
46
46
  cursor: progress;
47
47
  }
48
- .sprout-button[aria-invalid="true"] {
48
+ .sprout-button[aria-invalid='true'] {
49
49
  border-color: var(--sprout-danger);
50
50
  }
51
51
 
@@ -68,7 +68,7 @@
68
68
  background: var(--sprout-hover);
69
69
  }
70
70
  .sprout-button-variant-outline:active,
71
- .sprout-button-variant-outline[aria-expanded="true"] {
71
+ .sprout-button-variant-outline[aria-expanded='true'] {
72
72
  background: var(--sprout-active);
73
73
  }
74
74
  .sprout-button-variant-secondary {
@@ -76,7 +76,7 @@
76
76
  }
77
77
  .sprout-button-variant-secondary:hover,
78
78
  .sprout-button-variant-secondary:active,
79
- .sprout-button-variant-secondary[aria-expanded="true"] {
79
+ .sprout-button-variant-secondary[aria-expanded='true'] {
80
80
  background: var(--sprout-active);
81
81
  }
82
82
  .sprout-button-variant-ghost {
@@ -84,8 +84,8 @@
84
84
  color: var(--sprout-muted);
85
85
  }
86
86
  .sprout-button-variant-ghost:hover,
87
- .sprout-button-variant-ghost[aria-expanded="true"],
88
- .sprout-button-variant-ghost[aria-pressed="true"] {
87
+ .sprout-button-variant-ghost[aria-expanded='true'],
88
+ .sprout-button-variant-ghost[aria-pressed='true'] {
89
89
  background: var(--sprout-hover);
90
90
  color: var(--sprout-text);
91
91
  }
@@ -104,6 +104,17 @@
104
104
  .sprout-button-variant-destructive:focus-visible {
105
105
  outline-color: var(--sprout-danger);
106
106
  }
107
+ .sprout-button-variant-ghost-destructive {
108
+ background: transparent;
109
+ color: var(--sprout-danger);
110
+ }
111
+ .sprout-button-variant-ghost-destructive:hover,
112
+ .sprout-button-variant-ghost-destructive:active {
113
+ background: color-mix(in srgb, var(--sprout-danger) 10%, transparent);
114
+ }
115
+ .sprout-button-variant-ghost-destructive:focus-visible {
116
+ outline-color: var(--sprout-danger);
117
+ }
107
118
  .sprout-button-variant-link {
108
119
  background: transparent;
109
120
  color: var(--sprout-primary);
@@ -118,162 +129,35 @@
118
129
  }
119
130
  .sprout-button-variant-scope:hover,
120
131
  .sprout-button-variant-scope:active,
121
- .sprout-button-variant-scope[aria-expanded="true"] {
132
+ .sprout-button-variant-scope[aria-expanded='true'] {
122
133
  background: color-mix(in srgb, var(--sprout-info) 16%, transparent);
123
134
  }
124
135
 
125
- .sprout-button-size-default:has([data-icon="inline-start"]),
126
- .sprout-button-size-lg:has([data-icon="inline-start"]) {
136
+ .sprout-button-size-md:has([data-icon='inline-start']),
137
+ .sprout-button-size-lg:has([data-icon='inline-start']) {
127
138
  padding-inline-start: 8px;
128
139
  }
129
- .sprout-button-size-default:has([data-icon="inline-end"]),
130
- .sprout-button-size-lg:has([data-icon="inline-end"]) {
140
+ .sprout-button-size-md:has([data-icon='inline-end']),
141
+ .sprout-button-size-lg:has([data-icon='inline-end']) {
131
142
  padding-inline-end: 8px;
132
143
  }
133
- .sprout-button-size-xs {
134
- --sprout-button-icon: 0.75rem;
135
- gap: 4px;
136
- height: 24px;
137
- padding: 0 8px;
138
- border-radius: min(var(--sprout-radius-control), 10px);
139
- font-size: var(--sprout-text-xs);
140
- }
141
144
  .sprout-button-size-sm {
142
145
  --sprout-button-icon: 0.875rem;
143
146
  gap: 4px;
147
+ height: calc(var(--sprout-control-height) - 4px);
144
148
  padding: 0 10px;
145
149
  border-radius: min(var(--sprout-radius-control), 12px);
146
150
  font-size: var(--sprout-text-xs);
151
+ line-height: 16px;
147
152
  }
148
- .sprout-button-size-xs:has([data-icon="inline-start"]),
149
- .sprout-button-size-sm:has([data-icon="inline-start"]) {
153
+ .sprout-button-size-sm:has([data-icon='inline-start']) {
150
154
  padding-inline-start: 6px;
151
155
  }
152
- .sprout-button-size-xs:has([data-icon="inline-end"]),
153
- .sprout-button-size-sm:has([data-icon="inline-end"]) {
156
+ .sprout-button-size-sm:has([data-icon='inline-end']) {
154
157
  padding-inline-end: 6px;
155
158
  }
156
159
  .sprout-button-size-lg {
157
- height: 36px;
158
- }
159
- .sprout-button-size-back {
160
- --sprout-button-icon: 0.875rem;
161
- gap: 4px;
162
- padding: 0 10px 0 6px;
163
- border-radius: min(var(--sprout-radius-control), 12px);
164
- font-size: var(--sprout-text-xs);
165
- }
166
- .sprout-button-size-onboarding {
167
- gap: 8px;
168
- width: 100%;
169
- height: 44px;
170
- padding: 0 16px;
171
- font-size: var(--sprout-text-base);
172
- }
173
- .sprout-button-size-bud,
174
- .sprout-button-size-bud-labeled {
175
- border-radius: 999px;
176
- cursor: grab;
177
- touch-action: none;
178
- }
179
- .sprout-button-size-bud:active,
180
- .sprout-button-size-bud-labeled:active {
181
- cursor: grabbing;
182
- }
183
- .sprout-button-size-bud {
184
- width: 64px;
185
- height: 64px;
186
- padding: 0;
187
- }
188
- .sprout-button-size-bud-labeled {
189
- gap: 8px;
190
- height: 48px;
191
- padding: 0 16px 0 8px;
192
- }
193
- .sprout-button-size-chat-row {
194
- justify-content: space-between;
195
- gap: 16px;
196
- width: 100%;
197
- min-width: 0;
198
- height: 44px;
199
- padding: 0 12px;
200
- color: var(--sprout-text);
201
- text-align: start;
202
- }
203
- .sprout-button-size-task-link {
204
- justify-content: flex-start;
205
- min-width: 0;
206
- max-width: 100%;
207
- height: auto;
208
- min-height: 32px;
209
- padding-block: 4px;
210
- text-align: start;
211
- white-space: normal;
212
- }
213
- .sprout-button-size-card-title {
214
- justify-content: flex-start;
215
- gap: 8px;
216
- width: 100%;
217
- min-width: 0;
218
- height: 40px;
219
- padding: 0;
220
- color: var(--sprout-text);
221
- text-align: start;
222
- white-space: normal;
223
- }
224
- .sprout-button-size-result-card {
225
- height: 32px;
226
- padding: 0 12px;
227
- }
228
- .sprout-button-size-calendar-title {
229
- gap: 4px;
230
- height: 32px;
231
- padding: 0 4px;
232
- color: var(--sprout-text);
233
- letter-spacing: -0.015em;
234
- }
235
- .sprout-button-size-calendar {
236
- height: 32px;
237
- padding: 0 8px;
238
- font-size: var(--sprout-text-xs);
239
- }
240
- .sprout-button-size-calendar-icon {
241
- width: 32px;
242
- height: 32px;
243
- padding: 0;
244
- }
245
- .sprout-button-size-nav {
246
- justify-content: flex-start;
247
- gap: 8px;
248
- width: 100%;
249
- height: 32px;
250
- text-align: start;
251
- }
252
- .sprout-button-size-column-header,
253
- .sprout-button-size-column-header-end {
254
- --sprout-button-icon: 0.875rem;
255
- gap: 4px;
256
- padding: 0 8px;
257
- }
258
- .sprout-button-size-column-header {
259
- margin-inline-start: -8px;
260
- }
261
- .sprout-button-size-column-header-end {
262
- flex-direction: row-reverse;
263
- margin-inline-end: -8px;
264
- }
265
- .sprout-button-size-table-link {
266
- justify-content: flex-start;
267
- min-width: 0;
268
- height: auto;
269
- padding: 2px 0;
270
- text-align: start;
271
- }
272
- .sprout-button-size-badge {
273
- min-width: 0;
274
- max-width: 176px;
275
- padding: 0 10px;
276
- border-radius: 999px;
160
+ height: calc(var(--sprout-control-height) + 4px);
277
161
  }
278
162
  .sprout-button-size-icon,
279
163
  .sprout-button-size-icon-xs,
@@ -282,8 +166,8 @@
282
166
  padding: 0;
283
167
  }
284
168
  .sprout-button-size-icon {
285
- width: 32px;
286
- height: 32px;
169
+ width: var(--sprout-control-height);
170
+ height: var(--sprout-control-height);
287
171
  }
288
172
  .sprout-button-size-icon-xs {
289
173
  --sprout-button-icon: 0.75rem;
@@ -292,18 +176,17 @@
292
176
  border-radius: min(var(--sprout-radius-control), 10px);
293
177
  }
294
178
  .sprout-button-size-icon-sm {
295
- width: 28px;
296
- height: 28px;
179
+ width: calc(var(--sprout-control-height) - 4px);
180
+ height: calc(var(--sprout-control-height) - 4px);
297
181
  border-radius: min(var(--sprout-radius-control), 12px);
298
182
  }
299
183
  .sprout-button-size-icon-lg {
300
- width: 36px;
301
- height: 36px;
184
+ width: calc(var(--sprout-control-height) + 4px);
185
+ height: calc(var(--sprout-control-height) + 4px);
302
186
  }
303
- [data-slot="button-group"] .sprout-button-size-xs,
304
- [data-slot="button-group"] .sprout-button-size-sm,
305
- [data-slot="button-group"] .sprout-button-size-icon-xs,
306
- [data-slot="button-group"] .sprout-button-size-icon-sm {
187
+ [data-slot='button-group'] .sprout-button-size-sm,
188
+ [data-slot='button-group'] .sprout-button-size-icon-xs,
189
+ [data-slot='button-group'] .sprout-button-size-icon-sm {
307
190
  border-radius: var(--sprout-radius-control);
308
191
  }
309
192
 
@@ -317,23 +200,21 @@
317
200
  font-family: var(--sprout-font);
318
201
  }
319
202
  /* Long labels such as "Add #channel to execution limits" wrap instead of overflowing. */
320
- .sprout-button-action
321
- > :is(
322
- .sprout-button-size-default,
323
- .sprout-button-size-sm,
324
- .sprout-button-size-lg
325
- ),
203
+ .sprout-button-action > :is(.sprout-button-size-md, .sprout-button-size-sm, .sprout-button-size-lg),
326
204
  .sprout-action-group-row > .sprout-button {
327
205
  max-width: 100%;
328
206
  height: auto;
329
- min-height: 28px;
207
+ min-height: var(--sprout-control-height);
330
208
  padding-block: 3px;
331
209
  white-space: normal;
332
210
  overflow-wrap: anywhere;
333
211
  text-align: center;
334
212
  }
213
+ .sprout-button-action > .sprout-button-size-sm {
214
+ min-height: calc(var(--sprout-control-height) - 4px);
215
+ }
335
216
  .sprout-button-action > .sprout-button-size-lg {
336
- min-height: 36px;
217
+ min-height: calc(var(--sprout-control-height) + 4px);
337
218
  }
338
219
  .sprout-action-group-row {
339
220
  display: flex;
@@ -348,17 +229,6 @@
348
229
  max-width: 100%;
349
230
  }
350
231
 
351
- @media (min-width: 640px) {
352
- .sprout-button-size-calendar-title {
353
- font-size: 1.125rem;
354
- }
355
- }
356
- @media (max-width: 639px) {
357
- .sprout-button-size-back {
358
- width: 28px;
359
- padding-inline: 0;
360
- }
361
- }
362
232
  @media (pointer: coarse) {
363
233
  .sprout-button,
364
234
  .sprout-button-action > .sprout-button,
@@ -14,12 +14,12 @@
14
14
  line-height: 1.25rem;
15
15
  }
16
16
  /* Inside a popover or card the host owns the surface and padding. */
17
- [data-slot="popover-content"] > .sprout-calendar {
17
+ [data-slot='popover-content'] > .sprout-calendar {
18
18
  width: 100%;
19
19
  padding: 0;
20
20
  background: transparent;
21
21
  }
22
- [data-slot="card-content"] .sprout-calendar {
22
+ [data-slot='card-content'] .sprout-calendar {
23
23
  background: transparent;
24
24
  }
25
25
 
@@ -61,7 +61,7 @@
61
61
  border-radius: var(--sprout-calendar-radius);
62
62
  pointer-events: auto;
63
63
  }
64
- .sprout-calendar-nav-button[aria-disabled="true"] {
64
+ .sprout-calendar-nav-button[aria-disabled='true'] {
65
65
  pointer-events: none;
66
66
  opacity: 0.5;
67
67
  }
@@ -69,9 +69,7 @@
69
69
  width: 1rem;
70
70
  height: 1rem;
71
71
  }
72
- .sprout-calendar:dir(rtl):not([dir])
73
- .sprout-calendar-nav-button
74
- .sprout-calendar-chevron {
72
+ .sprout-calendar:dir(rtl):not([dir]) .sprout-calendar-nav-button .sprout-calendar-chevron {
75
73
  transform: rotate(180deg);
76
74
  }
77
75
 
@@ -173,12 +171,10 @@
173
171
  background: var(--sprout-calendar-band);
174
172
  }
175
173
  .sprout-calendar-range-start {
176
- border-radius: var(--sprout-calendar-radius) 0 0
177
- var(--sprout-calendar-radius);
174
+ border-radius: var(--sprout-calendar-radius) 0 0 var(--sprout-calendar-radius);
178
175
  }
179
176
  .sprout-calendar-range-end {
180
- border-radius: 0 var(--sprout-calendar-radius) var(--sprout-calendar-radius)
181
- 0;
177
+ border-radius: 0 var(--sprout-calendar-radius) var(--sprout-calendar-radius) 0;
182
178
  }
183
179
  .sprout-calendar-range-start.sprout-calendar-range-end {
184
180
  border-radius: var(--sprout-calendar-radius);
@@ -186,15 +182,11 @@
186
182
  .sprout-calendar-range-middle {
187
183
  border-radius: 0;
188
184
  }
189
- .sprout-calendar:dir(rtl)
190
- .sprout-calendar-range-start:not(.sprout-calendar-range-end) {
191
- border-radius: 0 var(--sprout-calendar-radius) var(--sprout-calendar-radius)
192
- 0;
185
+ .sprout-calendar:dir(rtl) .sprout-calendar-range-start:not(.sprout-calendar-range-end) {
186
+ border-radius: 0 var(--sprout-calendar-radius) var(--sprout-calendar-radius) 0;
193
187
  }
194
- .sprout-calendar:dir(rtl)
195
- .sprout-calendar-range-end:not(.sprout-calendar-range-start) {
196
- border-radius: var(--sprout-calendar-radius) 0 0
197
- var(--sprout-calendar-radius);
188
+ .sprout-calendar:dir(rtl) .sprout-calendar-range-end:not(.sprout-calendar-range-start) {
189
+ border-radius: var(--sprout-calendar-radius) 0 0 var(--sprout-calendar-radius);
198
190
  }
199
191
  .sprout-calendar-hidden {
200
192
  visibility: hidden;
@@ -234,23 +226,23 @@
234
226
  .sprout-calendar-today .sprout-calendar-day-button:hover {
235
227
  background: var(--sprout-active);
236
228
  }
237
- .sprout-calendar-day-button[data-range-middle="true"] {
229
+ .sprout-calendar-day-button[data-range-middle='true'] {
238
230
  border-radius: 0;
239
231
  background: var(--sprout-calendar-band);
240
232
  color: var(--sprout-text);
241
233
  }
242
- .sprout-calendar-day-button[data-range-middle="true"]:hover {
234
+ .sprout-calendar-day-button[data-range-middle='true']:hover {
243
235
  background: var(--sprout-active);
244
236
  }
245
- .sprout-calendar-day-button[data-selected-single="true"],
246
- .sprout-calendar-day-button[data-range-start="true"],
247
- .sprout-calendar-day-button[data-range-end="true"] {
237
+ .sprout-calendar-day-button[data-selected-single='true'],
238
+ .sprout-calendar-day-button[data-range-start='true'],
239
+ .sprout-calendar-day-button[data-range-end='true'] {
248
240
  background: var(--sprout-primary);
249
241
  color: var(--sprout-on-primary);
250
242
  }
251
- .sprout-calendar-day-button[data-selected-single="true"]:hover,
252
- .sprout-calendar-day-button[data-range-start="true"]:hover,
253
- .sprout-calendar-day-button[data-range-end="true"]:hover {
243
+ .sprout-calendar-day-button[data-selected-single='true']:hover,
244
+ .sprout-calendar-day-button[data-range-start='true']:hover,
245
+ .sprout-calendar-day-button[data-range-end='true']:hover {
254
246
  background: var(--sprout-primary-hover);
255
247
  }
256
248
  /* A selected run that wraps a week keeps rounded ends at the row edges. */
@@ -258,12 +250,8 @@
258
250
  border-start-end-radius: var(--sprout-calendar-radius);
259
251
  border-end-end-radius: var(--sprout-calendar-radius);
260
252
  }
261
- .sprout-calendar:not([data-week-numbers])
262
- .sprout-calendar-day:first-child[data-selected]
263
- .sprout-calendar-day-button,
264
- .sprout-calendar[data-week-numbers]
265
- .sprout-calendar-day:nth-child(2)[data-selected]
266
- .sprout-calendar-day-button {
253
+ .sprout-calendar:not([data-week-numbers]) .sprout-calendar-day:first-child[data-selected] .sprout-calendar-day-button,
254
+ .sprout-calendar[data-week-numbers] .sprout-calendar-day:nth-child(2)[data-selected] .sprout-calendar-day-button {
267
255
  border-start-start-radius: var(--sprout-calendar-radius);
268
256
  border-end-start-radius: var(--sprout-calendar-radius);
269
257
  }
@@ -278,13 +266,13 @@
278
266
  }
279
267
 
280
268
  @media (forced-colors: active) {
281
- .sprout-calendar-day-button[data-selected-single="true"],
282
- .sprout-calendar-day-button[data-range-start="true"],
283
- .sprout-calendar-day-button[data-range-end="true"] {
269
+ .sprout-calendar-day-button[data-selected-single='true'],
270
+ .sprout-calendar-day-button[data-range-start='true'],
271
+ .sprout-calendar-day-button[data-range-end='true'] {
284
272
  outline: 2px solid Highlight;
285
273
  outline-offset: -1px;
286
274
  }
287
- .sprout-calendar-day-button[data-range-middle="true"] {
275
+ .sprout-calendar-day-button[data-range-middle='true'] {
288
276
  outline: 1px dashed Highlight;
289
277
  outline-offset: -1px;
290
278
  }
@@ -128,9 +128,8 @@
128
128
  position: absolute;
129
129
  inset: 6px 4px;
130
130
  border-radius: calc(var(--sprout-radius-control) - 2px);
131
- content: "";
132
- transition: background-color var(--sprout-motion-fast)
133
- var(--sprout-motion-ease);
131
+ content: '';
132
+ transition: background-color var(--sprout-motion-fast) var(--sprout-motion-ease);
134
133
  }
135
134
  .sprout-canvas-tab[data-hover],
136
135
  .sprout-canvas-tab-close[data-hover] {
@@ -1,31 +1,18 @@
1
1
  @layer base {
2
2
  :root,
3
3
  .light {
4
- --sprout-card-raised: color-mix(
5
- in oklab,
6
- var(--sprout-text) 3%,
7
- var(--sprout-surface)
8
- );
9
- --sprout-card-raised-shadow:
10
- 0 1px 3px rgb(24 24 24 / 0.08), 0 1px 2px -1px rgb(24 24 24 / 0.06);
4
+ --sprout-card-raised: color-mix(in oklab, var(--sprout-text) 3%, var(--sprout-surface));
5
+ --sprout-card-raised-shadow: 0 1px 3px rgb(24 24 24 / 0.08), 0 1px 2px -1px rgb(24 24 24 / 0.06);
11
6
  }
12
7
 
13
8
  .dark {
14
- --sprout-card-raised: color-mix(
15
- in oklab,
16
- var(--sprout-text) 8%,
17
- var(--sprout-surface)
18
- );
9
+ --sprout-card-raised: color-mix(in oklab, var(--sprout-text) 8%, var(--sprout-surface));
19
10
  --sprout-card-raised-shadow: none;
20
11
  }
21
12
 
22
13
  @media (prefers-color-scheme: dark) {
23
14
  :root:not(.light):not(.dark) {
24
- --sprout-card-raised: color-mix(
25
- in oklab,
26
- var(--sprout-text) 8%,
27
- var(--sprout-surface)
28
- );
15
+ --sprout-card-raised: color-mix(in oklab, var(--sprout-text) 8%, var(--sprout-surface));
29
16
  --sprout-card-raised-shadow: none;
30
17
  }
31
18
  }
@@ -59,10 +46,7 @@
59
46
  }
60
47
 
61
48
  /* The footer is flush with the bottom edge, even inside a wrapper. */
62
- .sprout-card:has(
63
- > [data-slot="card-footer"],
64
- > :not([data-slot]) > [data-slot="card-footer"]
65
- ) {
49
+ .sprout-card:has(> [data-slot='card-footer'], > :not([data-slot]) > [data-slot='card-footer']) {
66
50
  padding-bottom: 0;
67
51
  }
68
52
  .sprout-card:has(> img:first-child) {
@@ -83,11 +67,11 @@
83
67
  min-width: 0;
84
68
  padding-inline: var(--sprout-card-spacing);
85
69
  }
86
- .sprout-card-header:has(> [data-slot="card-action"]) {
70
+ .sprout-card-header:has(> [data-slot='card-action']) {
87
71
  grid-template-columns: minmax(0, 1fr) auto;
88
72
  column-gap: 12px;
89
73
  }
90
- .sprout-card-header:has(> [data-slot="card-description"]) {
74
+ .sprout-card-header:has(> [data-slot='card-description']) {
91
75
  grid-template-rows: auto auto;
92
76
  }
93
77
  .sprout-card-header.border-b {
@@ -14,13 +14,13 @@
14
14
  .sprout-carousel-content::-webkit-scrollbar {
15
15
  display: none;
16
16
  }
17
- .sprout-carousel-content[data-orientation="horizontal"] {
17
+ .sprout-carousel-content[data-orientation='horizontal'] {
18
18
  overflow-y: hidden;
19
19
  overscroll-behavior-x: contain;
20
20
  scroll-snap-type: x mandatory;
21
21
  touch-action: pan-x pinch-zoom;
22
22
  }
23
- .sprout-carousel-content[data-orientation="vertical"] {
23
+ .sprout-carousel-content[data-orientation='vertical'] {
24
24
  height: 100%;
25
25
  min-height: 0;
26
26
  overflow-x: hidden;
@@ -45,8 +45,7 @@
45
45
  display: flex;
46
46
  gap: var(--sprout-carousel-gap, 16px);
47
47
  }
48
- .sprout-carousel-content[data-orientation="vertical"]
49
- > .sprout-carousel-track {
48
+ .sprout-carousel-content[data-orientation='vertical'] > .sprout-carousel-track {
50
49
  flex-direction: column;
51
50
  height: 100%;
52
51
  }
@@ -58,10 +57,10 @@
58
57
  min-height: 0;
59
58
  scroll-snap-align: start;
60
59
  }
61
- [data-align="center"] > .sprout-carousel-track > .sprout-carousel-item {
60
+ [data-align='center'] > .sprout-carousel-track > .sprout-carousel-item {
62
61
  scroll-snap-align: center;
63
62
  }
64
- [data-align="end"] > .sprout-carousel-track > .sprout-carousel-item {
63
+ [data-align='end'] > .sprout-carousel-track > .sprout-carousel-item {
65
64
  scroll-snap-align: end;
66
65
  }
67
66
 
@@ -71,25 +70,25 @@
71
70
  box-shadow: var(--sprout-shadow-control);
72
71
  touch-action: manipulation;
73
72
  }
74
- .sprout-carousel-control[data-orientation="horizontal"] {
73
+ .sprout-carousel-control[data-orientation='horizontal'] {
75
74
  inset-block: 0;
76
75
  margin-block: auto;
77
76
  }
78
- .sprout-carousel-previous[data-orientation="horizontal"] {
77
+ .sprout-carousel-previous[data-orientation='horizontal'] {
79
78
  left: calc(-1 * var(--sprout-carousel-control-offset, 48px));
80
79
  }
81
- .sprout-carousel-next[data-orientation="horizontal"] {
80
+ .sprout-carousel-next[data-orientation='horizontal'] {
82
81
  right: calc(-1 * var(--sprout-carousel-control-offset, 48px));
83
82
  }
84
- .sprout-carousel-control[data-orientation="vertical"] {
83
+ .sprout-carousel-control[data-orientation='vertical'] {
85
84
  left: 50%;
86
85
  translate: -50% 0;
87
86
  rotate: 90deg;
88
87
  }
89
- .sprout-carousel-previous[data-orientation="vertical"] {
88
+ .sprout-carousel-previous[data-orientation='vertical'] {
90
89
  top: calc(-1 * var(--sprout-carousel-control-offset, 48px));
91
90
  }
92
- .sprout-carousel-next[data-orientation="vertical"] {
91
+ .sprout-carousel-next[data-orientation='vertical'] {
93
92
  bottom: calc(-1 * var(--sprout-carousel-control-offset, 48px));
94
93
  }
95
94
  @media (pointer: coarse) {