@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
@@ -45,52 +45,48 @@
45
45
  font-family: inherit;
46
46
  }
47
47
  .sprout-attachment:has(> a, > button):hover {
48
- background: color-mix(
49
- in oklab,
50
- var(--sprout-hover) 50%,
51
- var(--sprout-surface)
52
- );
48
+ background: color-mix(in oklab, var(--sprout-hover) 50%, var(--sprout-surface));
53
49
  }
54
50
  .sprout-attachment:has(> .sprout-attachment-trigger:focus-visible) {
55
51
  outline: var(--sprout-focus-width) solid var(--sprout-focus-ring);
56
52
  outline-offset: 0;
57
53
  }
58
- .sprout-attachment[data-state="idle"] {
54
+ .sprout-attachment[data-state='idle'] {
59
55
  border-style: dashed;
60
56
  }
61
- .sprout-attachment[data-state="error"] {
57
+ .sprout-attachment[data-state='error'] {
62
58
  border-color: color-mix(in oklab, var(--sprout-danger) 35%, transparent);
63
59
  }
64
60
 
65
- .sprout-attachment-size-default {
61
+ .sprout-attachment-size-lg {
66
62
  gap: 8px;
67
63
  font-size: var(--sprout-text-sm);
68
64
  }
69
- .sprout-attachment-size-default:has([data-slot="attachment-content"]) {
65
+ .sprout-attachment-size-lg:has([data-slot='attachment-content']) {
70
66
  padding: 8px 10px;
71
67
  }
72
- .sprout-attachment-size-default:has([data-slot="attachment-media"]) {
68
+ .sprout-attachment-size-lg:has([data-slot='attachment-media']) {
73
69
  padding: 8px;
74
70
  }
75
- .sprout-attachment-size-sm {
71
+ .sprout-attachment-size-md {
76
72
  gap: 10px;
77
73
  font-size: var(--sprout-text-xs);
78
74
  }
79
- .sprout-attachment-size-sm:has([data-slot="attachment-content"]) {
75
+ .sprout-attachment-size-md:has([data-slot='attachment-content']) {
80
76
  padding: 6px 8px;
81
77
  }
82
- .sprout-attachment-size-sm:has([data-slot="attachment-media"]) {
78
+ .sprout-attachment-size-md:has([data-slot='attachment-media']) {
83
79
  padding: 6px;
84
80
  }
85
- .sprout-attachment-size-xs {
81
+ .sprout-attachment-size-sm {
86
82
  gap: 6px;
87
83
  border-radius: 8px;
88
84
  font-size: var(--sprout-text-xs);
89
85
  }
90
- .sprout-attachment-size-xs:has([data-slot="attachment-content"]) {
86
+ .sprout-attachment-size-sm:has([data-slot='attachment-content']) {
91
87
  padding: 4px 6px;
92
88
  }
93
- .sprout-attachment-size-xs:has([data-slot="attachment-media"]) {
89
+ .sprout-attachment-size-sm:has([data-slot='attachment-media']) {
94
90
  padding: 4px;
95
91
  }
96
92
 
@@ -102,7 +98,7 @@
102
98
  width: 6rem;
103
99
  flex-direction: column;
104
100
  }
105
- .sprout-attachment-vertical:has([data-slot="attachment-content"]) {
101
+ .sprout-attachment-vertical:has([data-slot='attachment-content']) {
106
102
  width: 7.5rem;
107
103
  }
108
104
 
@@ -119,48 +115,43 @@
119
115
  background: var(--sprout-hover);
120
116
  color: var(--sprout-text);
121
117
  }
122
- .sprout-attachment-size-sm .sprout-attachment-media {
118
+ .sprout-attachment-size-md .sprout-attachment-media {
123
119
  width: 32px;
124
120
  }
125
- .sprout-attachment-size-xs .sprout-attachment-media {
121
+ .sprout-attachment-size-sm .sprout-attachment-media {
126
122
  width: 28px;
127
123
  border-radius: 6px;
128
124
  }
129
125
  .sprout-attachment-vertical .sprout-attachment-media {
130
126
  width: 100%;
131
127
  }
132
- .sprout-attachment[data-state="error"] .sprout-attachment-media {
128
+ .sprout-attachment[data-state='error'] .sprout-attachment-media {
133
129
  background: var(--sprout-danger-subtle);
134
130
  color: var(--sprout-danger);
135
131
  }
136
132
  .sprout-attachment-media svg {
137
133
  pointer-events: none;
138
134
  }
139
- .sprout-attachment-media svg:not([class*="size-"]) {
135
+ .sprout-attachment-media svg:not([class*='size-']) {
140
136
  width: 16px;
141
137
  height: 16px;
142
138
  }
143
- .sprout-attachment-vertical
144
- .sprout-attachment-media
145
- svg:not([class*="size-"]),
146
- .sprout-attachment-vertical .sprout-attachment-media > [data-slot="spinner"] {
139
+ .sprout-attachment-vertical .sprout-attachment-media svg:not([class*='size-']),
140
+ .sprout-attachment-vertical .sprout-attachment-media > [data-slot='spinner'] {
147
141
  width: 24px;
148
142
  height: 24px;
149
143
  }
150
- .sprout-attachment-size-xs
151
- .sprout-attachment-media
152
- svg:not([class*="size-"]) {
144
+ .sprout-attachment-size-sm .sprout-attachment-media svg:not([class*='size-']) {
153
145
  width: 14px;
154
146
  height: 14px;
155
147
  }
156
- .sprout-attachment-media[data-variant="image"] {
148
+ .sprout-attachment-media[data-variant='image'] {
157
149
  opacity: 0.6;
158
150
  }
159
- .sprout-attachment:is([data-state="done"], [data-state="idle"])
160
- .sprout-attachment-media[data-variant="image"] {
151
+ .sprout-attachment:is([data-state='done'], [data-state='idle']) .sprout-attachment-media[data-variant='image'] {
161
152
  opacity: 1;
162
153
  }
163
- .sprout-attachment-media[data-variant="image"] > img {
154
+ .sprout-attachment-media[data-variant='image'] > img {
164
155
  width: 100%;
165
156
  aspect-ratio: 1;
166
157
  object-fit: cover;
@@ -195,7 +186,7 @@
195
186
  text-overflow: ellipsis;
196
187
  white-space: nowrap;
197
188
  }
198
- .sprout-attachment[data-state="error"] .sprout-attachment-description {
189
+ .sprout-attachment[data-state='error'] .sprout-attachment-description {
199
190
  color: var(--sprout-danger);
200
191
  }
201
192
 
@@ -215,8 +206,7 @@
215
206
  .sprout-attachment-vertical .sprout-attachment-actions .sprout-button {
216
207
  background: color-mix(in oklab, var(--sprout-surface) 88%, transparent);
217
208
  }
218
- .sprout-attachment-size-xs.sprout-attachment-vertical
219
- .sprout-attachment-actions {
209
+ .sprout-attachment-size-sm.sprout-attachment-vertical .sprout-attachment-actions {
220
210
  top: 6px;
221
211
  right: 6px;
222
212
  }
@@ -235,13 +225,8 @@
235
225
  }
236
226
 
237
227
  /* The name shimmers while the file uploads or processes. */
238
- .sprout-attachment:is([data-state="uploading"], [data-state="processing"])
239
- .sprout-attachment-title,
240
- .sprout-file-attachment:is(
241
- [data-state="uploading"],
242
- [data-state="processing"]
243
- )
244
- .sprout-file-attachment-name {
228
+ .sprout-attachment:is([data-state='uploading'], [data-state='processing']) .sprout-attachment-title,
229
+ .sprout-file-attachment:is([data-state='uploading'], [data-state='processing']) .sprout-file-attachment-name {
245
230
  color: var(--sprout-muted);
246
231
  }
247
232
 
@@ -301,31 +286,22 @@
301
286
  align-items: center;
302
287
  pointer-events: none;
303
288
  }
304
- .sprout-attachment-carousel-edge[data-side="start"] {
289
+ .sprout-attachment-carousel-edge[data-side='start'] {
305
290
  left: 0;
306
291
  padding-right: 32px;
307
- background: linear-gradient(
308
- to right,
309
- var(--sprout-attachment-fade),
310
- transparent
311
- );
292
+ background: linear-gradient(to right, var(--sprout-attachment-fade), transparent);
312
293
  }
313
- .sprout-attachment-carousel-edge[data-side="end"] {
294
+ .sprout-attachment-carousel-edge[data-side='end'] {
314
295
  right: 0;
315
296
  padding-left: 32px;
316
- background: linear-gradient(
317
- to left,
318
- var(--sprout-attachment-fade),
319
- transparent
320
- );
297
+ background: linear-gradient(to left, var(--sprout-attachment-fade), transparent);
321
298
  }
322
299
  .sprout-attachment-carousel-arrow {
323
300
  opacity: 0;
324
301
  pointer-events: auto;
325
302
  }
326
303
  .sprout-attachment-group-carousel:hover .sprout-attachment-carousel-arrow,
327
- .sprout-attachment-group-carousel:focus-within
328
- .sprout-attachment-carousel-arrow,
304
+ .sprout-attachment-group-carousel:focus-within .sprout-attachment-carousel-arrow,
329
305
  .sprout-attachment-carousel-arrow:focus-visible {
330
306
  opacity: 1;
331
307
  }
@@ -361,20 +337,19 @@
361
337
  .sprout-file-type-icon-badge {
362
338
  fill: var(--sprout-file-generic);
363
339
  }
364
- .sprout-file-type-icon[data-kind="pdf"] .sprout-file-type-icon-badge {
340
+ .sprout-file-type-icon[data-kind='pdf'] .sprout-file-type-icon-badge {
365
341
  fill: var(--sprout-file-pdf);
366
342
  }
367
- .sprout-file-type-icon[data-kind="sheet"] .sprout-file-type-icon-badge {
343
+ .sprout-file-type-icon[data-kind='sheet'] .sprout-file-type-icon-badge {
368
344
  fill: var(--sprout-file-sheet);
369
345
  }
370
- .sprout-file-type-icon:is([data-kind="document"], [data-kind="google"])
371
- .sprout-file-type-icon-badge {
346
+ .sprout-file-type-icon:is([data-kind='document'], [data-kind='google']) .sprout-file-type-icon-badge {
372
347
  fill: var(--sprout-file-document);
373
348
  }
374
- .sprout-file-type-icon[data-kind="slides"] .sprout-file-type-icon-badge {
349
+ .sprout-file-type-icon[data-kind='slides'] .sprout-file-type-icon-badge {
375
350
  fill: var(--sprout-file-slides);
376
351
  }
377
- .sprout-file-type-icon[data-kind="image"] .sprout-file-type-icon-badge {
352
+ .sprout-file-type-icon[data-kind='image'] .sprout-file-type-icon-badge {
378
353
  fill: var(--sprout-file-image);
379
354
  }
380
355
  .sprout-file-type-icon-label {
@@ -393,32 +368,30 @@
393
368
  color: var(--sprout-text);
394
369
  font-family: inherit;
395
370
  }
396
- .sprout-file-attachment[data-state="error"] {
371
+ .sprout-file-attachment[data-state='error'] {
397
372
  border-color: var(--sprout-danger);
398
373
  }
399
- .sprout-file-attachment[data-variant="list"] {
374
+ .sprout-file-attachment[data-variant='list'] {
400
375
  display: flex;
401
376
  align-items: center;
402
377
  gap: 8px;
403
378
  padding: 8px;
404
379
  }
405
- .sprout-file-attachment[data-variant="inline"] {
380
+ .sprout-file-attachment[data-variant='inline'] {
406
381
  display: flex;
407
382
  align-items: center;
408
383
  gap: 4px;
409
384
  max-width: 100%;
410
385
  padding-left: 8px;
411
386
  }
412
- .sprout-file-attachment[data-variant="inline"]:not(
413
- :has(.sprout-file-attachment-actions)
414
- ) {
387
+ .sprout-file-attachment[data-variant='inline']:not(:has(.sprout-file-attachment-actions)) {
415
388
  padding-right: 10px;
416
389
  }
417
- .sprout-file-attachment[data-variant="grid"] {
390
+ .sprout-file-attachment[data-variant='grid'] {
418
391
  display: flex;
419
392
  flex-direction: column;
420
393
  }
421
- .sprout-file-attachment[data-variant="chip"] {
394
+ .sprout-file-attachment[data-variant='chip'] {
422
395
  display: flex;
423
396
  flex-shrink: 0;
424
397
  align-items: center;
@@ -428,7 +401,7 @@
428
401
  padding: 0 12px 0 10px;
429
402
  box-shadow: var(--sprout-shadow-control);
430
403
  }
431
- .sprout-file-attachment[data-variant="chip"][data-removable] {
404
+ .sprout-file-attachment[data-variant='chip'][data-removable] {
432
405
  padding-right: 4px;
433
406
  }
434
407
 
@@ -451,10 +424,10 @@
451
424
  button.sprout-file-attachment-open:disabled {
452
425
  cursor: default;
453
426
  }
454
- .sprout-file-attachment[data-variant="grid"] .sprout-file-attachment-open {
427
+ .sprout-file-attachment[data-variant='grid'] .sprout-file-attachment-open {
455
428
  padding: 12px;
456
429
  }
457
- .sprout-file-attachment[data-variant="chip"] .sprout-file-attachment-open {
430
+ .sprout-file-attachment[data-variant='chip'] .sprout-file-attachment-open {
458
431
  display: flex;
459
432
  align-items: center;
460
433
  gap: 8px;
@@ -469,14 +442,8 @@
469
442
  outline: var(--sprout-focus-width) solid var(--sprout-focus-ring);
470
443
  outline-offset: 0;
471
444
  }
472
- .sprout-file-attachment:has(
473
- button.sprout-file-attachment-open:not(:disabled)
474
- ):hover {
475
- background: color-mix(
476
- in oklab,
477
- var(--sprout-hover) 50%,
478
- var(--sprout-surface)
479
- );
445
+ .sprout-file-attachment:has(button.sprout-file-attachment-open:not(:disabled)):hover {
446
+ background: color-mix(in oklab, var(--sprout-hover) 50%, var(--sprout-surface));
480
447
  }
481
448
 
482
449
  .sprout-file-attachment-name {
@@ -489,7 +456,7 @@
489
456
  text-overflow: ellipsis;
490
457
  white-space: nowrap;
491
458
  }
492
- .sprout-file-attachment[data-variant="chip"] .sprout-file-attachment-name {
459
+ .sprout-file-attachment[data-variant='chip'] .sprout-file-attachment-name {
493
460
  font-size: var(--sprout-text-xs);
494
461
  line-height: 1rem;
495
462
  }
@@ -502,7 +469,7 @@
502
469
  font-size: var(--sprout-text-xs);
503
470
  line-height: 1rem;
504
471
  }
505
- .sprout-file-attachment[data-state="error"] .sprout-file-attachment-status,
472
+ .sprout-file-attachment[data-state='error'] .sprout-file-attachment-status,
506
473
  .sprout-file-attachment-failed {
507
474
  color: var(--sprout-danger);
508
475
  }
@@ -516,7 +483,7 @@
516
483
  flex-shrink: 0;
517
484
  color: var(--sprout-muted);
518
485
  }
519
- .sprout-file-attachment[data-variant="list"] .sprout-file-attachment-media {
486
+ .sprout-file-attachment[data-variant='list'] .sprout-file-attachment-media {
520
487
  align-items: center;
521
488
  justify-content: center;
522
489
  width: 40px;
@@ -585,7 +552,7 @@
585
552
  flex-shrink: 0;
586
553
  align-items: center;
587
554
  }
588
- .sprout-file-attachment[data-variant="grid"] .sprout-file-attachment-actions {
555
+ .sprout-file-attachment[data-variant='grid'] .sprout-file-attachment-actions {
589
556
  position: absolute;
590
557
  top: 4px;
591
558
  right: 4px;
@@ -608,11 +575,7 @@
608
575
  padding: 20px;
609
576
  border: 1px dashed var(--sprout-input);
610
577
  border-radius: 12px;
611
- background: color-mix(
612
- in oklab,
613
- var(--sprout-hover) 30%,
614
- var(--sprout-surface)
615
- );
578
+ background: color-mix(in oklab, var(--sprout-hover) 30%, var(--sprout-surface));
616
579
  color: var(--sprout-text);
617
580
  text-align: center;
618
581
  }
@@ -646,7 +609,7 @@
646
609
  background-color var(--sprout-motion-normal) var(--sprout-motion-ease),
647
610
  border-color var(--sprout-motion-normal) var(--sprout-motion-ease);
648
611
  }
649
- .sprout-attachment-media[data-variant="image"] {
612
+ .sprout-attachment-media[data-variant='image'] {
650
613
  transition: opacity var(--sprout-motion-normal) var(--sprout-motion-ease);
651
614
  }
652
615
  .sprout-attachment-carousel-arrow {
@@ -658,13 +621,8 @@
658
621
  .sprout-attachment-carousel-viewport {
659
622
  scroll-behavior: smooth;
660
623
  }
661
- .sprout-attachment:is([data-state="uploading"], [data-state="processing"])
662
- .sprout-attachment-title,
663
- .sprout-file-attachment:is(
664
- [data-state="uploading"],
665
- [data-state="processing"]
666
- )
667
- .sprout-file-attachment-name {
624
+ .sprout-attachment:is([data-state='uploading'], [data-state='processing']) .sprout-attachment-title,
625
+ .sprout-file-attachment:is([data-state='uploading'], [data-state='processing']) .sprout-file-attachment-name {
668
626
  background: linear-gradient(
669
627
  90deg,
670
628
  var(--sprout-muted) 0%,
@@ -14,7 +14,7 @@
14
14
  user-select: none;
15
15
  }
16
16
  .sprout-avatar::after {
17
- content: "";
17
+ content: '';
18
18
  position: absolute;
19
19
  inset: 0;
20
20
  border: 1px solid var(--sprout-line);
@@ -30,32 +30,24 @@
30
30
  mix-blend-mode: lighten;
31
31
  }
32
32
  }
33
- :is(.sprout-avatar, .sprout-entity-avatar)[data-size="xs"] {
34
- --sprout-avatar-size: 1.25rem;
35
- font-size: var(--sprout-text-xs);
36
- }
37
- :is(.sprout-avatar, .sprout-entity-avatar)[data-size="sm"] {
33
+ :is(.sprout-avatar, .sprout-entity-avatar)[data-size='sm'] {
38
34
  --sprout-avatar-size: 1.5rem;
39
35
  font-size: var(--sprout-text-xs);
40
36
  }
41
- .sprout-avatar[data-size="lg"] {
37
+ .sprout-avatar[data-size='lg'] {
42
38
  --sprout-avatar-size: 2.5rem;
43
39
  }
44
- .sprout-entity-avatar[data-size="lg"] {
40
+ .sprout-entity-avatar[data-size='lg'] {
45
41
  --sprout-avatar-size: 2.5rem;
46
42
  font-size: var(--sprout-text-base);
47
43
  }
48
- .sprout-entity-avatar[data-size="xl"] {
49
- --sprout-avatar-size: 4rem;
50
- font-size: 1.5rem;
51
- }
52
44
  .sprout-entity-avatar {
53
45
  overflow: hidden;
54
46
  }
55
- .sprout-entity-avatar[data-shape="square"] {
47
+ .sprout-entity-avatar[data-shape='square'] {
56
48
  border-radius: 0.5rem;
57
49
  }
58
- .sprout-entity-avatar[data-shape="square"][data-size="xs"] {
50
+ .sprout-entity-avatar[data-shape='square'][data-size='sm'] {
59
51
  border-radius: 0.25rem;
60
52
  }
61
53
 
@@ -65,8 +57,7 @@
65
57
  aspect-ratio: 1;
66
58
  border-radius: inherit;
67
59
  object-fit: cover;
68
- transition: opacity var(--sprout-motion-normal, 180ms)
69
- var(--sprout-motion-ease, ease);
60
+ transition: opacity var(--sprout-motion-normal, 180ms) var(--sprout-motion-ease, ease);
70
61
  }
71
62
  .sprout-avatar-image[data-starting-style],
72
63
  .sprout-avatar-image[data-ending-style] {
@@ -110,20 +101,14 @@
110
101
  width: 0.5rem;
111
102
  height: 0.5rem;
112
103
  }
113
- .sprout-avatar[data-size="xs"] > .sprout-avatar-badge {
114
- width: 0.375rem;
115
- height: 0.375rem;
116
- }
117
- .sprout-avatar[data-size="sm"] > .sprout-avatar-badge {
104
+ .sprout-avatar[data-size='sm'] > .sprout-avatar-badge {
118
105
  width: 0.5rem;
119
106
  height: 0.5rem;
120
107
  }
121
- .sprout-avatar:is([data-size="xs"], [data-size="sm"])
122
- > .sprout-avatar-badge
123
- > svg {
108
+ .sprout-avatar[data-size='sm'] > .sprout-avatar-badge > svg {
124
109
  display: none;
125
110
  }
126
- .sprout-avatar[data-size="lg"] > .sprout-avatar-badge {
111
+ .sprout-avatar[data-size='lg'] > .sprout-avatar-badge {
127
112
  width: 0.75rem;
128
113
  height: 0.75rem;
129
114
  }
@@ -156,24 +141,20 @@
156
141
  width: 1rem;
157
142
  height: 1rem;
158
143
  }
159
- .sprout-avatar-group:has(> [data-size="sm"]) > .sprout-avatar-group-count {
144
+ .sprout-avatar-group:has(> [data-size='sm']) > .sprout-avatar-group-count {
160
145
  width: 1.5rem;
161
146
  height: 1.5rem;
162
147
  font-size: var(--sprout-text-xs);
163
148
  }
164
- .sprout-avatar-group:has(> [data-size="sm"])
165
- > .sprout-avatar-group-count
166
- > svg {
149
+ .sprout-avatar-group:has(> [data-size='sm']) > .sprout-avatar-group-count > svg {
167
150
  width: 0.75rem;
168
151
  height: 0.75rem;
169
152
  }
170
- .sprout-avatar-group:has(> [data-size="lg"]) > .sprout-avatar-group-count {
153
+ .sprout-avatar-group:has(> [data-size='lg']) > .sprout-avatar-group-count {
171
154
  width: 2.5rem;
172
155
  height: 2.5rem;
173
156
  }
174
- .sprout-avatar-group:has(> [data-size="lg"])
175
- > .sprout-avatar-group-count
176
- > svg {
157
+ .sprout-avatar-group:has(> [data-size='lg']) > .sprout-avatar-group-count > svg {
177
158
  width: 1.25rem;
178
159
  height: 1.25rem;
179
160
  }
@@ -23,10 +23,10 @@
23
23
  text-decoration: none;
24
24
  color: var(--sprout-text);
25
25
  }
26
- .sprout-badge:has(> [data-icon="inline-start"]) {
26
+ .sprout-badge:has(> [data-icon='inline-start']) {
27
27
  padding-inline-start: 6px;
28
28
  }
29
- .sprout-badge:has(> [data-icon="inline-end"]) {
29
+ .sprout-badge:has(> [data-icon='inline-end']) {
30
30
  padding-inline-end: 6px;
31
31
  }
32
32
  .sprout-badge > svg {
@@ -39,10 +39,9 @@
39
39
  outline: var(--sprout-focus-width) solid var(--sprout-focus-ring);
40
40
  outline-offset: 0;
41
41
  }
42
- .sprout-badge[aria-invalid="true"] {
42
+ .sprout-badge[aria-invalid='true'] {
43
43
  border-color: var(--sprout-danger);
44
- box-shadow: 0 0 0 3px
45
- color-mix(in oklab, var(--sprout-danger) 22%, transparent);
44
+ box-shadow: 0 0 0 3px color-mix(in oklab, var(--sprout-danger) 22%, transparent);
46
45
  }
47
46
  .sprout-badge:is(a[href], button):not(:disabled) {
48
47
  cursor: pointer;
@@ -52,7 +51,7 @@
52
51
  margin: 0;
53
52
  }
54
53
  .sprout-badge:is(button):disabled,
55
- .sprout-badge[aria-disabled="true"] {
54
+ .sprout-badge[aria-disabled='true'] {
56
55
  opacity: 0.55;
57
56
  cursor: not-allowed;
58
57
  }
@@ -115,46 +114,22 @@
115
114
 
116
115
  @media (hover: hover) {
117
116
  .sprout-badge-default:is(a[href], button:not(:disabled)):hover {
118
- background: color-mix(
119
- in oklab,
120
- var(--sprout-primary) 16%,
121
- var(--sprout-surface)
122
- );
117
+ background: color-mix(in oklab, var(--sprout-primary) 16%, var(--sprout-surface));
123
118
  }
124
119
  .sprout-badge-success:is(a[href], button:not(:disabled)):hover {
125
- background: color-mix(
126
- in oklab,
127
- var(--sprout-success) 18%,
128
- var(--sprout-success-subtle)
129
- );
120
+ background: color-mix(in oklab, var(--sprout-success) 18%, var(--sprout-success-subtle));
130
121
  }
131
122
  .sprout-badge-warning:is(a[href], button:not(:disabled)):hover {
132
- background: color-mix(
133
- in oklab,
134
- var(--sprout-warning) 18%,
135
- var(--sprout-warning-subtle)
136
- );
123
+ background: color-mix(in oklab, var(--sprout-warning) 18%, var(--sprout-warning-subtle));
137
124
  }
138
125
  .sprout-badge-info:is(a[href], button:not(:disabled)):hover {
139
- background: color-mix(
140
- in oklab,
141
- var(--sprout-info) 18%,
142
- var(--sprout-info-subtle)
143
- );
126
+ background: color-mix(in oklab, var(--sprout-info) 18%, var(--sprout-info-subtle));
144
127
  }
145
128
  .sprout-badge-secondary:is(a[href], button:not(:disabled)):hover {
146
- background: color-mix(
147
- in oklab,
148
- var(--sprout-text) 8%,
149
- var(--sprout-secondary)
150
- );
129
+ background: color-mix(in oklab, var(--sprout-text) 8%, var(--sprout-secondary));
151
130
  }
152
131
  .sprout-badge-destructive:is(a[href], button:not(:disabled)):hover {
153
- background: color-mix(
154
- in oklab,
155
- var(--sprout-danger) 20%,
156
- var(--sprout-danger-subtle)
157
- );
132
+ background: color-mix(in oklab, var(--sprout-danger) 20%, var(--sprout-danger-subtle));
158
133
  }
159
134
  .sprout-badge-outline:is(a[href], button:not(:disabled)):hover,
160
135
  .sprout-badge-ghost:is(a[href], button:not(:disabled)):hover {