@tulipfarm/sprout 0.3.1 → 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 +10 -10
  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 +4 -4
  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 +3 -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
@@ -14,24 +14,22 @@
14
14
  outline: 0 solid transparent;
15
15
  outline-offset: 0;
16
16
  }
17
- .sprout-input-group:has([data-slot="input-group-control"]:focus-visible) {
17
+ .sprout-input-group:has([data-slot='input-group-control']:focus-visible) {
18
18
  border-color: var(--sprout-border);
19
19
  outline: var(--sprout-focus-width) solid transparent;
20
20
  }
21
- .sprout-input-group:has(
22
- [data-slot="input-group-control"][aria-invalid="true"]
23
- ),
24
- .sprout-input-group:has([data-slot="input-group-control"][data-invalid]) {
21
+ .sprout-input-group:has([data-slot='input-group-control'][aria-invalid='true']),
22
+ .sprout-input-group:has([data-slot='input-group-control'][data-invalid]) {
25
23
  border-color: var(--sprout-danger);
26
24
  outline-color: var(--sprout-danger);
27
25
  }
28
- .sprout-input-group:has([data-slot="input-group-control"]:disabled) {
26
+ .sprout-input-group:has([data-slot='input-group-control']:disabled) {
29
27
  cursor: not-allowed;
30
28
  background-color: var(--sprout-hover);
31
29
  opacity: 0.5;
32
30
  }
33
- .sprout-input-group:has(> [data-align="block-start"]),
34
- .sprout-input-group:has(> [data-align="block-end"]) {
31
+ .sprout-input-group:has(> [data-align='block-start']),
32
+ .sprout-input-group:has(> [data-align='block-end']) {
35
33
  flex-direction: column;
36
34
  height: auto;
37
35
  }
@@ -40,8 +38,7 @@
40
38
  }
41
39
 
42
40
  /* Popups such as a combobox list draw their own focus, so the search row stays quiet. */
43
- :where([data-slot="combobox-content"])
44
- .sprout-input-group:has([data-slot="input-group-control"]:focus-visible) {
41
+ :where([data-slot='combobox-content']) .sprout-input-group:has([data-slot='input-group-control']:focus-visible) {
45
42
  border-color: var(--sprout-input);
46
43
  outline-color: transparent;
47
44
  }
@@ -58,26 +55,18 @@
58
55
  border-color: var(--sprout-input);
59
56
  border-radius: var(--sprout-radius-panel);
60
57
  }
61
- .sprout-input-group-variant-composer:has(
62
- [data-slot="input-group-control"]:focus-visible
63
- ),
64
- .sprout-input-group-variant-question-composer:has(
65
- [data-slot="input-group-control"]:focus-visible
66
- ) {
58
+ .sprout-input-group-variant-composer:has([data-slot='input-group-control']:focus-visible),
59
+ .sprout-input-group-variant-question-composer:has([data-slot='input-group-control']:focus-visible) {
67
60
  border-color: var(--sprout-border);
68
61
  outline: var(--sprout-focus-width) solid transparent;
69
62
  }
70
- .sprout-input-group-variant-composer:has(
71
- [data-slot="input-group-control"][aria-invalid="true"]
72
- ),
73
- .sprout-input-group-variant-question-composer:has(
74
- [data-slot="input-group-control"][aria-invalid="true"]
75
- ) {
63
+ .sprout-input-group-variant-composer:has([data-slot='input-group-control'][aria-invalid='true']),
64
+ .sprout-input-group-variant-question-composer:has([data-slot='input-group-control'][aria-invalid='true']) {
76
65
  border-color: var(--sprout-danger);
77
66
  box-shadow: none;
78
67
  }
79
- .sprout-input-group-variant-composer > [data-align="block-end"],
80
- .sprout-input-group-variant-question-composer > [data-align="block-end"] {
68
+ .sprout-input-group-variant-composer > [data-align='block-end'],
69
+ .sprout-input-group-variant-question-composer > [data-align='block-end'] {
81
70
  flex-wrap: wrap;
82
71
  gap: 4px;
83
72
  padding-inline: 8px;
@@ -101,7 +90,7 @@
101
90
  cursor: text;
102
91
  user-select: none;
103
92
  }
104
- .sprout-input-group-addon > svg:not([class*="size-"]) {
93
+ .sprout-input-group-addon > svg:not([class*='size-']) {
105
94
  flex-shrink: 0;
106
95
  width: 16px;
107
96
  height: 16px;
@@ -165,7 +154,7 @@
165
154
  flex-shrink: 0;
166
155
  pointer-events: none;
167
156
  }
168
- .sprout-input-group-text svg:not([class*="size-"]) {
157
+ .sprout-input-group-text svg:not([class*='size-']) {
169
158
  width: 16px;
170
159
  height: 16px;
171
160
  }
@@ -204,8 +193,7 @@
204
193
  border-radius: var(--sprout-radius-control);
205
194
  }
206
195
  @media (pointer: coarse) {
207
- .sprout-input-group-variant-composer
208
- .sprout-button.sprout-input-group-button {
196
+ .sprout-input-group-variant-composer .sprout-button.sprout-input-group-button {
209
197
  min-width: 44px;
210
198
  min-height: 44px;
211
199
  }
@@ -214,7 +202,7 @@
214
202
  .sprout-input.sprout-input-group-input,
215
203
  .sprout-input.sprout-input-group-input:focus-visible,
216
204
  .sprout-input.sprout-input-group-input:disabled,
217
- .sprout-input.sprout-input-group-input[aria-invalid="true"],
205
+ .sprout-input.sprout-input-group-input[aria-invalid='true'],
218
206
  .sprout-input.sprout-input-group-input[data-invalid] {
219
207
  border-color: transparent;
220
208
  background-color: transparent;
@@ -228,32 +216,28 @@
228
216
  border-radius: 0;
229
217
  text-overflow: ellipsis;
230
218
  }
231
- .sprout-input-group:has(> [data-align="inline-start"])
232
- > .sprout-input-group-input {
219
+ .sprout-input-group:has(> [data-align='inline-start']) > .sprout-input-group-input {
233
220
  padding-left: 6px;
234
221
  }
235
- .sprout-input-group:has(> [data-align="inline-end"])
236
- > .sprout-input-group-input {
222
+ .sprout-input-group:has(> [data-align='inline-end']) > .sprout-input-group-input {
237
223
  padding-right: 6px;
238
224
  }
239
- .sprout-input-group:has(> [data-align^="block"]) > .sprout-input-group-input {
225
+ .sprout-input-group:has(> [data-align^='block']) > .sprout-input-group-input {
240
226
  width: 100%;
241
227
  height: 30px;
242
228
  }
243
- .sprout-input-group:has(> [data-align="block-end"])
244
- > .sprout-input-group-input {
229
+ .sprout-input-group:has(> [data-align='block-end']) > .sprout-input-group-input {
245
230
  padding-top: 8px;
246
231
  }
247
- .sprout-input-group:has(> [data-align="block-start"])
248
- > .sprout-input-group-input {
232
+ .sprout-input-group:has(> [data-align='block-start']) > .sprout-input-group-input {
249
233
  padding-bottom: 8px;
250
234
  }
251
235
  .sprout-input-group-size-lg > .sprout-input-group-input {
252
236
  font-size: var(--sprout-text-base);
253
237
  line-height: 24px;
254
238
  }
255
- .sprout-input-group-input[type="search"]::-webkit-search-cancel-button,
256
- .sprout-input-group-input[type="search"]::-webkit-search-decoration {
239
+ .sprout-input-group-input[type='search']::-webkit-search-cancel-button,
240
+ .sprout-input-group-input[type='search']::-webkit-search-decoration {
257
241
  appearance: none;
258
242
  }
259
243
 
@@ -278,7 +262,7 @@
278
262
  .sprout-input-group {
279
263
  border-color: FieldText;
280
264
  }
281
- .sprout-input-group:has([data-slot="input-group-control"]:focus-visible) {
265
+ .sprout-input-group:has([data-slot='input-group-control']:focus-visible) {
282
266
  outline-color: Highlight;
283
267
  }
284
268
  }
@@ -28,9 +28,8 @@
28
28
  align-items: center;
29
29
  border-radius: var(--sprout-radius-control);
30
30
  }
31
- .sprout-input-otp-group:has(.sprout-input-otp-slot[aria-invalid="true"]) {
32
- box-shadow: 0 0 0 3px
33
- color-mix(in oklab, var(--sprout-danger) 20%, transparent);
31
+ .sprout-input-otp-group:has(.sprout-input-otp-slot[aria-invalid='true']) {
32
+ box-shadow: 0 0 0 3px color-mix(in oklab, var(--sprout-danger) 20%, transparent);
34
33
  }
35
34
 
36
35
  .sprout-input-otp-slot {
@@ -74,10 +73,10 @@
74
73
  outline: var(--sprout-focus-width) solid transparent;
75
74
  outline-offset: 0;
76
75
  }
77
- .sprout-input-otp-slot[aria-invalid="true"] {
76
+ .sprout-input-otp-slot[aria-invalid='true'] {
78
77
  border-color: var(--sprout-danger);
79
78
  }
80
- .sprout-input-otp-slot[aria-invalid="true"]:focus {
79
+ .sprout-input-otp-slot[aria-invalid='true']:focus {
81
80
  outline-color: color-mix(in oklab, var(--sprout-danger) 40%, transparent);
82
81
  }
83
82
  .sprout-input-otp-slot:disabled {
@@ -131,7 +130,7 @@
131
130
  .sprout-input-otp-slot:focus {
132
131
  outline: 2px solid Highlight;
133
132
  }
134
- .sprout-input-otp-slot[aria-invalid="true"] {
133
+ .sprout-input-otp-slot[aria-invalid='true'] {
135
134
  border-color: Mark;
136
135
  }
137
136
  }
@@ -31,21 +31,21 @@
31
31
  background-color: var(--sprout-hover);
32
32
  opacity: 0.5;
33
33
  }
34
- .sprout-input[aria-invalid="true"],
34
+ .sprout-input[aria-invalid='true'],
35
35
  .sprout-input[data-invalid] {
36
36
  border-color: var(--sprout-danger);
37
37
  }
38
- .sprout-input[aria-invalid="true"]:focus-visible,
38
+ .sprout-input[aria-invalid='true']:focus-visible,
39
39
  .sprout-input[data-invalid]:focus-visible {
40
40
  outline-color: var(--sprout-danger);
41
41
  }
42
42
 
43
- .sprout-input[type="file"] {
43
+ .sprout-input[type='file'] {
44
44
  padding-block: 0;
45
45
  line-height: 30px;
46
46
  cursor: pointer;
47
47
  }
48
- .sprout-input[type="file"]:disabled {
48
+ .sprout-input[type='file']:disabled {
49
49
  cursor: not-allowed;
50
50
  }
51
51
  .sprout-input::file-selector-button {
@@ -73,7 +73,7 @@
73
73
  font-size: var(--sprout-text-base);
74
74
  line-height: 24px;
75
75
  }
76
- .sprout-input-scale-lg[type="file"] {
76
+ .sprout-input-scale-lg[type='file'] {
77
77
  line-height: 42px;
78
78
  }
79
79
 
@@ -24,7 +24,7 @@
24
24
  user-select: none;
25
25
  pointer-events: none;
26
26
  }
27
- .sprout-kbd[data-variant="outline"] {
27
+ .sprout-kbd[data-variant='outline'] {
28
28
  border-color: var(--sprout-line);
29
29
  background: var(--sprout-surface);
30
30
  }
@@ -16,22 +16,9 @@
16
16
 
17
17
  /* A checkbox, switch, or radio inside the label, or just before it. */
18
18
  .sprout-label:has(
19
- > :is(
20
- [role="checkbox"],
21
- [role="switch"],
22
- [role="radio"],
23
- input[type="checkbox"],
24
- input[type="radio"]
25
- )
19
+ > :is([role='checkbox'], [role='switch'], [role='radio'], input[type='checkbox'], input[type='radio'])
26
20
  ),
27
- :is(
28
- [role="checkbox"],
29
- [role="switch"],
30
- [role="radio"],
31
- input[type="checkbox"],
32
- input[type="radio"]
33
- )
34
- + .sprout-label {
21
+ :is([role='checkbox'], [role='switch'], [role='radio'], input[type='checkbox'], input[type='radio']) + .sprout-label {
35
22
  cursor: pointer;
36
23
  line-height: 1.25rem;
37
24
  }
@@ -41,9 +28,9 @@
41
28
  > :is(
42
29
  textarea,
43
30
  select,
44
- input:not([type="checkbox"], [type="radio"], [type="hidden"]),
45
- [data-slot="input"],
46
- [data-slot="select-trigger"],
31
+ input:not([type='checkbox'], [type='radio'], [type='hidden']),
32
+ [data-slot='input'],
33
+ [data-slot='select-trigger'],
47
34
  [contenteditable]
48
35
  )
49
36
  ) {
@@ -52,29 +39,21 @@
52
39
  gap: 6px;
53
40
  }
54
41
 
55
- .sprout-label:has(:disabled, [data-disabled]:not([data-disabled="false"])) {
42
+ .sprout-label:has(:disabled, [data-disabled]:not([data-disabled='false'])) {
56
43
  color: var(--sprout-muted);
57
44
  cursor: not-allowed;
58
45
  }
59
46
 
60
47
  :is(input, textarea, select, button):disabled ~ .sprout-label,
61
- :is([role], [data-slot])[data-disabled]:not([data-disabled="false"])
62
- ~ .sprout-label,
48
+ :is([role], [data-slot])[data-disabled]:not([data-disabled='false']) ~ .sprout-label,
63
49
  .sprout-label:has(
64
- + :is(
65
- :is(input, textarea, select, button):disabled,
66
- [data-disabled]:not([data-disabled="false"])
67
- )
50
+ + :is(:is(input, textarea, select, button):disabled, [data-disabled]:not([data-disabled='false']))
68
51
  ) {
69
52
  cursor: not-allowed;
70
53
  opacity: 0.5;
71
54
  }
72
55
 
73
- :where(
74
- [data-slot="field"][data-disabled]:not([data-disabled="false"]),
75
- fieldset:disabled
76
- )
77
- .sprout-label {
56
+ :where([data-slot='field'][data-disabled]:not([data-disabled='false']), fieldset:disabled) .sprout-label {
78
57
  opacity: 0.5;
79
58
  pointer-events: none;
80
59
  }
@@ -63,7 +63,7 @@
63
63
  .sprout-mention-option:hover {
64
64
  background: color-mix(in oklab, var(--sprout-hover) 60%, transparent);
65
65
  }
66
- .sprout-mention-option[aria-selected="true"] {
66
+ .sprout-mention-option[aria-selected='true'] {
67
67
  background: var(--sprout-hover);
68
68
  color: var(--sprout-text);
69
69
  }
@@ -73,7 +73,7 @@
73
73
  align-items: center;
74
74
  color: var(--sprout-muted);
75
75
  }
76
- .sprout-mention-option[aria-selected="true"] .sprout-mention-option-media {
76
+ .sprout-mention-option[aria-selected='true'] .sprout-mention-option-media {
77
77
  color: var(--sprout-text);
78
78
  }
79
79
  .sprout-mention-option-media > :where(svg) {
@@ -132,7 +132,7 @@
132
132
  min-width: 0;
133
133
  overflow-wrap: anywhere;
134
134
  }
135
- .sprout-mention-status[data-tone="error"] .sprout-mention-status-text {
135
+ .sprout-mention-status[data-tone='error'] .sprout-mention-status-text {
136
136
  color: var(--sprout-danger);
137
137
  }
138
138
  .sprout-mention-status-action {
@@ -140,7 +140,7 @@
140
140
  }
141
141
 
142
142
  @media (forced-colors: active) {
143
- .sprout-mention-option[aria-selected="true"] {
143
+ .sprout-mention-option[aria-selected='true'] {
144
144
  outline: 2px solid Highlight;
145
145
  outline-offset: -1px;
146
146
  }
@@ -148,12 +148,10 @@
148
148
 
149
149
  @media (prefers-reduced-motion: no-preference) {
150
150
  .sprout-mention-list {
151
- animation: sprout-mention-list-in var(--sprout-motion-fast)
152
- var(--sprout-motion-ease);
151
+ animation: sprout-mention-list-in var(--sprout-motion-fast) var(--sprout-motion-ease);
153
152
  }
154
153
  .sprout-mention-option {
155
- transition: background-color var(--sprout-motion-fast)
156
- var(--sprout-motion-ease);
154
+ transition: background-color var(--sprout-motion-fast) var(--sprout-motion-ease);
157
155
  }
158
156
  }
159
157
  }
@@ -17,7 +17,7 @@
17
17
  font-size: var(--sprout-text-sm);
18
18
  line-height: 1.25rem;
19
19
  }
20
- .sprout-menubar[data-orientation="vertical"] {
20
+ .sprout-menubar[data-orientation='vertical'] {
21
21
  flex-direction: column;
22
22
  align-items: stretch;
23
23
  height: auto;
@@ -53,7 +53,7 @@
53
53
  pointer-events: none;
54
54
  }
55
55
  .sprout-menubar-trigger[data-popup-open],
56
- .sprout-menubar-trigger[aria-expanded="true"] {
56
+ .sprout-menubar-trigger[aria-expanded='true'] {
57
57
  background: var(--sprout-hover);
58
58
  }
59
59
  .sprout-menubar-trigger:focus-visible {
@@ -140,10 +140,10 @@
140
140
  background: var(--sprout-hover);
141
141
  color: var(--sprout-text);
142
142
  }
143
- .sprout-menubar-item[data-variant="destructive"] {
143
+ .sprout-menubar-item[data-variant='destructive'] {
144
144
  color: var(--sprout-danger);
145
145
  }
146
- .sprout-menubar-item[data-variant="destructive"][data-highlighted] {
146
+ .sprout-menubar-item[data-variant='destructive'][data-highlighted] {
147
147
  background: var(--sprout-danger-subtle);
148
148
  color: var(--sprout-danger);
149
149
  }
@@ -206,8 +206,7 @@
206
206
 
207
207
  @media (prefers-reduced-motion: no-preference) {
208
208
  .sprout-menubar-trigger {
209
- transition: background-color var(--sprout-motion-fast)
210
- var(--sprout-motion-ease);
209
+ transition: background-color var(--sprout-motion-fast) var(--sprout-motion-ease);
211
210
  }
212
211
  .sprout-menubar-content {
213
212
  transition:
@@ -14,7 +14,7 @@
14
14
  gap: 4px;
15
15
  min-width: 0;
16
16
  }
17
- .sprout-message-actions[data-author="human"] .sprout-message-actions-row {
17
+ .sprout-message-actions[data-author='human'] .sprout-message-actions-row {
18
18
  justify-content: flex-end;
19
19
  }
20
20
  /* Revealed by hovering the message, or by focus anywhere in it. */
@@ -67,8 +67,7 @@
67
67
  text-decoration: underline;
68
68
  text-decoration-thickness: 1px;
69
69
  text-underline-offset: 3px;
70
- transition: text-decoration-thickness var(--sprout-motion-fast)
71
- var(--sprout-motion-ease);
70
+ transition: text-decoration-thickness var(--sprout-motion-fast) var(--sprout-motion-ease);
72
71
  }
73
72
  .sprout-message-response a:hover {
74
73
  text-decoration-thickness: 2px;
@@ -133,7 +132,7 @@
133
132
  .sprout-message-response .contains-task-list .contains-task-list {
134
133
  padding-left: 1.5rem;
135
134
  }
136
- .sprout-message-response input[type="checkbox"] {
135
+ .sprout-message-response input[type='checkbox'] {
137
136
  margin: 0 0.5rem 0 0;
138
137
  vertical-align: -1px;
139
138
  accent-color: var(--sprout-primary);
@@ -154,8 +153,7 @@
154
153
 
155
154
  @media (prefers-reduced-motion: no-preference) {
156
155
  .sprout-message-response-caret {
157
- animation: sprout-message-response-pulse 2s cubic-bezier(0.4, 0, 0.6, 1)
158
- infinite;
156
+ animation: sprout-message-response-pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite;
159
157
  }
160
158
  }
161
159
  @media (prefers-reduced-motion: reduce) {
@@ -22,18 +22,11 @@
22
22
  border-radius: inherit;
23
23
  outline: none;
24
24
  scrollbar-width: thin;
25
- scrollbar-color: color-mix(in oklab, var(--sprout-muted) 40%, transparent)
26
- transparent;
25
+ scrollbar-color: color-mix(in oklab, var(--sprout-muted) 40%, transparent) transparent;
27
26
  scrollbar-gutter: stable;
28
27
  }
29
- .sprout-message-scroller-viewport[data-scrollable~="end"]:not(
30
- :focus-visible
31
- ) {
32
- mask-image: linear-gradient(
33
- to bottom,
34
- #000 calc(100% - var(--sprout-message-scroller-fade)),
35
- transparent
36
- );
28
+ .sprout-message-scroller-viewport[data-scrollable~='end']:not(:focus-visible) {
29
+ mask-image: linear-gradient(to bottom, #000 calc(100% - var(--sprout-message-scroller-fade)), transparent);
37
30
  }
38
31
  .sprout-message-scroller-viewport:focus-visible {
39
32
  outline: var(--sprout-focus-width) solid var(--sprout-focus-ring);
@@ -69,33 +62,33 @@
69
62
  translate: -50% var(--sprout-message-scroller-shift);
70
63
  box-shadow: var(--sprout-shadow-panel);
71
64
  }
72
- .sprout-message-scroller-button[data-variant="secondary"] {
65
+ .sprout-message-scroller-button[data-variant='secondary'] {
73
66
  border-color: var(--sprout-line);
74
67
  background: var(--sprout-surface);
75
68
  color: var(--sprout-text);
76
69
  }
77
- .sprout-message-scroller-button[data-variant="secondary"]:hover,
78
- .sprout-message-scroller-button[data-variant="secondary"]:active {
70
+ .sprout-message-scroller-button[data-variant='secondary']:hover,
71
+ .sprout-message-scroller-button[data-variant='secondary']:active {
79
72
  background: var(--sprout-hover);
80
73
  }
81
- .sprout-message-scroller-button[data-direction="end"] {
74
+ .sprout-message-scroller-button[data-direction='end'] {
82
75
  bottom: 16px;
83
76
  }
84
- .sprout-message-scroller-button[data-direction="start"] {
77
+ .sprout-message-scroller-button[data-direction='start'] {
85
78
  top: 16px;
86
79
  }
87
- .sprout-message-scroller-button[data-direction="start"] svg {
80
+ .sprout-message-scroller-button[data-direction='start'] svg {
88
81
  rotate: 180deg;
89
82
  }
90
- .sprout-message-scroller-button[data-active="false"] {
83
+ .sprout-message-scroller-button[data-active='false'] {
91
84
  pointer-events: none;
92
85
  opacity: 0;
93
86
  scale: 0.95;
94
87
  }
95
- .sprout-message-scroller-button[data-active="false"][data-direction="end"] {
88
+ .sprout-message-scroller-button[data-active='false'][data-direction='end'] {
96
89
  --sprout-message-scroller-shift: 100%;
97
90
  }
98
- .sprout-message-scroller-button[data-active="false"][data-direction="start"] {
91
+ .sprout-message-scroller-button[data-active='false'][data-direction='start'] {
99
92
  --sprout-message-scroller-shift: -100%;
100
93
  }
101
94
 
@@ -120,12 +113,12 @@
120
113
  background-color var(--sprout-motion-fast) ease-out,
121
114
  color var(--sprout-motion-fast) ease-out;
122
115
  }
123
- .sprout-message-scroller-button[data-active="false"] {
116
+ .sprout-message-scroller-button[data-active='false'] {
124
117
  transition-timing-function: cubic-bezier(0.7, 0, 0.84, 0);
125
118
  }
126
119
  }
127
120
  @media (prefers-reduced-motion: reduce) {
128
- .sprout-message-scroller-button[data-active="false"] {
121
+ .sprout-message-scroller-button[data-active='false'] {
129
122
  --sprout-message-scroller-shift: 0;
130
123
  scale: 1;
131
124
  }