@tulipfarm/sprout 0.3.0 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (349) hide show
  1. package/README.md +45 -40
  2. package/dist/components/accordion.d.ts +2 -2
  3. package/dist/components/accordion.js +9 -9
  4. package/dist/components/agent-fanout.d.ts +2 -2
  5. package/dist/components/agent-fanout.js +65 -87
  6. package/dist/components/alert-dialog.d.ts +6 -6
  7. package/dist/components/alert-dialog.js +20 -20
  8. package/dist/components/alert.d.ts +6 -6
  9. package/dist/components/alert.js +13 -13
  10. package/dist/components/aspect-ratio.d.ts +2 -2
  11. package/dist/components/aspect-ratio.js +2 -2
  12. package/dist/components/attachment.d.ts +17 -17
  13. package/dist/components/attachment.js +82 -115
  14. package/dist/components/avatar.d.ts +10 -10
  15. package/dist/components/avatar.js +14 -14
  16. package/dist/components/badge.d.ts +4 -4
  17. package/dist/components/badge.js +18 -18
  18. package/dist/components/board.d.ts +107 -0
  19. package/dist/components/board.js +640 -0
  20. package/dist/components/brand-icon.d.ts +6 -6
  21. package/dist/components/brand-icon.js +55 -63
  22. package/dist/components/breadcrumb.d.ts +11 -11
  23. package/dist/components/breadcrumb.js +16 -18
  24. package/dist/components/button-group.d.ts +6 -6
  25. package/dist/components/button-group.js +14 -14
  26. package/dist/components/button.d.ts +11 -11
  27. package/dist/components/button.js +46 -56
  28. package/dist/components/calendar.d.ts +5 -5
  29. package/dist/components/calendar.js +44 -53
  30. package/dist/components/canvas.d.ts +4 -4
  31. package/dist/components/canvas.js +39 -46
  32. package/dist/components/card.d.ts +6 -6
  33. package/dist/components/card.js +17 -17
  34. package/dist/components/carousel.d.ts +7 -7
  35. package/dist/components/carousel.js +57 -75
  36. package/dist/components/chart.d.ts +5 -112
  37. package/dist/components/chart.js +5 -172
  38. package/dist/components/chat-confirmation.d.ts +13 -11
  39. package/dist/components/chat-confirmation.js +32 -38
  40. package/dist/components/chat-input.d.ts +4 -4
  41. package/dist/components/chat-input.js +74 -81
  42. package/dist/components/chat-plan.d.ts +2 -2
  43. package/dist/components/chat-plan.js +15 -20
  44. package/dist/components/chat-sources.d.ts +8 -8
  45. package/dist/components/chat-sources.js +18 -27
  46. package/dist/components/checkbox.d.ts +1 -1
  47. package/dist/components/checkbox.js +9 -9
  48. package/dist/components/choice-list.d.ts +2 -2
  49. package/dist/components/choice-list.js +16 -18
  50. package/dist/components/code-block.d.ts +5 -5
  51. package/dist/components/code-block.js +26 -26
  52. package/dist/components/collapsible.d.ts +1 -1
  53. package/dist/components/collapsible.js +7 -11
  54. package/dist/components/combobox.d.ts +3 -3
  55. package/dist/components/combobox.js +24 -24
  56. package/dist/components/command.d.ts +13 -13
  57. package/dist/components/command.js +61 -73
  58. package/dist/components/context-menu.d.ts +5 -5
  59. package/dist/components/context-menu.js +22 -22
  60. package/dist/components/dialog.d.ts +6 -6
  61. package/dist/components/dialog.js +23 -28
  62. package/dist/components/direction.d.ts +1 -1
  63. package/dist/components/direction.js +1 -1
  64. package/dist/components/dropdown-menu.d.ts +5 -5
  65. package/dist/components/dropdown-menu.js +20 -20
  66. package/dist/components/field.d.ts +11 -11
  67. package/dist/components/field.js +41 -61
  68. package/dist/components/file-explorer.d.ts +2 -2
  69. package/dist/components/file-explorer.js +89 -105
  70. package/dist/components/file-viewer.d.ts +10 -10
  71. package/dist/components/file-viewer.js +112 -140
  72. package/dist/components/form.d.ts +7 -7
  73. package/dist/components/form.js +24 -28
  74. package/dist/components/glass-banner.d.ts +3 -3
  75. package/dist/components/glass-banner.js +21 -24
  76. package/dist/components/gradient-banner.d.ts +5 -5
  77. package/dist/components/gradient-banner.js +13 -22
  78. package/dist/components/hover-card.d.ts +4 -4
  79. package/dist/components/hover-card.js +6 -6
  80. package/dist/components/input-group.d.ts +11 -11
  81. package/dist/components/input-group.js +22 -36
  82. package/dist/components/input-otp.d.ts +10 -10
  83. package/dist/components/input-otp.js +13 -15
  84. package/dist/components/input.d.ts +1 -1
  85. package/dist/components/input.js +7 -7
  86. package/dist/components/kbd.d.ts +3 -3
  87. package/dist/components/kbd.js +5 -5
  88. package/dist/components/label.d.ts +2 -2
  89. package/dist/components/label.js +2 -2
  90. package/dist/components/mention-list.d.ts +3 -3
  91. package/dist/components/mention-list.js +10 -10
  92. package/dist/components/menubar.d.ts +6 -6
  93. package/dist/components/menubar.js +22 -22
  94. package/dist/components/message-actions.d.ts +2 -2
  95. package/dist/components/message-actions.js +29 -31
  96. package/dist/components/message-response.d.ts +3 -3
  97. package/dist/components/message-response.js +18 -18
  98. package/dist/components/message-scroller.d.ts +12 -12
  99. package/dist/components/message-scroller.js +44 -56
  100. package/dist/components/message.d.ts +11 -11
  101. package/dist/components/message.js +25 -25
  102. package/dist/components/navigation-menu.d.ts +2 -2
  103. package/dist/components/navigation-menu.js +15 -15
  104. package/dist/components/notice-banner.d.ts +2 -2
  105. package/dist/components/notice-banner.js +2 -2
  106. package/dist/components/page-content.d.ts +2 -2
  107. package/dist/components/page-content.js +2 -2
  108. package/dist/components/page-header.d.ts +1 -1
  109. package/dist/components/page-header.js +16 -16
  110. package/dist/components/pagination.d.ts +9 -9
  111. package/dist/components/pagination.js +17 -17
  112. package/dist/components/plan-outline.d.ts +2 -2
  113. package/dist/components/plan-outline.js +43 -60
  114. package/dist/components/popover.d.ts +6 -6
  115. package/dist/components/popover.js +15 -15
  116. package/dist/components/presence-cursor.d.ts +2 -2
  117. package/dist/components/presence-cursor.js +3 -3
  118. package/dist/components/progress.d.ts +1 -1
  119. package/dist/components/progress.js +8 -8
  120. package/dist/components/prompt-list.d.ts +3 -3
  121. package/dist/components/prompt-list.js +6 -6
  122. package/dist/components/questionnaire.d.ts +19 -19
  123. package/dist/components/questionnaire.js +183 -242
  124. package/dist/components/radio-group.d.ts +2 -2
  125. package/dist/components/radio-group.js +6 -6
  126. package/dist/components/reasoning-effort.d.ts +3 -3
  127. package/dist/components/reasoning-effort.js +9 -12
  128. package/dist/components/record-list.d.ts +66 -0
  129. package/dist/components/record-list.js +151 -0
  130. package/dist/components/resizable.d.ts +5 -5
  131. package/dist/components/resizable.js +76 -102
  132. package/dist/components/result-card.d.ts +10 -5
  133. package/dist/components/result-card.js +42 -53
  134. package/dist/components/result-notice.d.ts +18 -0
  135. package/dist/components/result-notice.js +29 -0
  136. package/dist/components/review-card.d.ts +6 -6
  137. package/dist/components/review-card.js +18 -18
  138. package/dist/components/rich-text-editor.d.ts +2 -2
  139. package/dist/components/rich-text-editor.js +56 -72
  140. package/dist/components/schema-diagram.d.ts +3 -3
  141. package/dist/components/schema-diagram.js +39 -53
  142. package/dist/components/scroll-area.d.ts +1 -1
  143. package/dist/components/scroll-area.js +10 -14
  144. package/dist/components/search-dialog.d.ts +6 -6
  145. package/dist/components/search-dialog.js +16 -16
  146. package/dist/components/search-field.d.ts +1 -1
  147. package/dist/components/search-field.js +11 -11
  148. package/dist/components/select.d.ts +3 -3
  149. package/dist/components/select.js +20 -20
  150. package/dist/components/selection-slot.d.ts +2 -2
  151. package/dist/components/selection-slot.js +6 -9
  152. package/dist/components/separator.d.ts +15 -15
  153. package/dist/components/separator.js +22 -27
  154. package/dist/components/settings-list.d.ts +3 -3
  155. package/dist/components/settings-list.js +5 -5
  156. package/dist/components/sheet.d.ts +6 -6
  157. package/dist/components/sheet.js +27 -27
  158. package/dist/components/sidebar.d.ts +22 -22
  159. package/dist/components/sidebar.js +57 -58
  160. package/dist/components/skeleton.d.ts +5 -5
  161. package/dist/components/skeleton.js +14 -21
  162. package/dist/components/slider.d.ts +2 -2
  163. package/dist/components/slider.js +6 -6
  164. package/dist/components/spinner.d.ts +5 -5
  165. package/dist/components/spinner.js +22 -26
  166. package/dist/components/sql-viewer.d.ts +14 -14
  167. package/dist/components/sql-viewer.js +99 -128
  168. package/dist/components/state-panel-samples.d.ts +2 -2
  169. package/dist/components/state-panel-samples.js +209 -245
  170. package/dist/components/state-panel.d.ts +2 -35
  171. package/dist/components/state-panel.js +2 -29
  172. package/dist/components/state-sample.d.ts +7 -7
  173. package/dist/components/state-sample.js +18 -31
  174. package/dist/components/switch.d.ts +1 -1
  175. package/dist/components/switch.js +7 -7
  176. package/dist/components/table-nuqs.d.ts +2 -2
  177. package/dist/components/table-nuqs.js +11 -12
  178. package/dist/components/table.d.ts +4 -4
  179. package/dist/components/table.js +166 -235
  180. package/dist/components/tabs.d.ts +2 -2
  181. package/dist/components/tabs.js +12 -12
  182. package/dist/components/textarea.d.ts +2 -2
  183. package/dist/components/textarea.js +6 -8
  184. package/dist/components/timeline.d.ts +3 -0
  185. package/dist/components/timeline.js +3 -0
  186. package/dist/components/toast.d.ts +2 -2
  187. package/dist/components/toast.js +19 -25
  188. package/dist/components/toggle-group.d.ts +2 -2
  189. package/dist/components/toggle-group.js +18 -20
  190. package/dist/components/toggle.d.ts +2 -2
  191. package/dist/components/toggle.js +8 -8
  192. package/dist/components/tool-activity.d.ts +1 -1
  193. package/dist/components/tool-activity.js +83 -110
  194. package/dist/components/toolbar-status.d.ts +2 -2
  195. package/dist/components/toolbar-status.js +7 -7
  196. package/dist/components/tooltip.d.ts +5 -5
  197. package/dist/components/tooltip.js +12 -11
  198. package/dist/components/typed-text.d.ts +2 -2
  199. package/dist/components/typed-text.js +10 -12
  200. package/dist/components/view-switcher.d.ts +51 -0
  201. package/dist/components/view-switcher.js +114 -0
  202. package/dist/index.d.ts +98 -93
  203. package/dist/index.js +98 -93
  204. package/dist/internal/chart-kit.d.ts +142 -0
  205. package/dist/internal/chart-kit.js +200 -0
  206. package/dist/internal/charts/bars.d.ts +61 -0
  207. package/dist/internal/charts/bars.js +86 -0
  208. package/dist/internal/charts/lines.d.ts +67 -0
  209. package/dist/internal/charts/lines.js +70 -0
  210. package/dist/internal/charts/more.d.ts +77 -0
  211. package/dist/internal/charts/more.js +68 -0
  212. package/dist/internal/charts/parts.d.ts +54 -0
  213. package/dist/internal/charts/parts.js +82 -0
  214. package/dist/internal/charts/timeline-dates.d.ts +38 -0
  215. package/dist/internal/charts/timeline-dates.js +113 -0
  216. package/dist/internal/charts/timeline-window.d.ts +31 -0
  217. package/dist/internal/charts/timeline-window.js +26 -0
  218. package/dist/internal/charts/timeline.d.ts +72 -0
  219. package/dist/internal/charts/timeline.js +287 -0
  220. package/dist/internal/classes.d.ts +1 -1
  221. package/dist/internal/classes.js +7 -9
  222. package/dist/internal/code-tokens.d.ts +2 -2
  223. package/dist/internal/code-tokens.js +12 -12
  224. package/dist/internal/fieldset.d.ts +1 -1
  225. package/dist/internal/fieldset.js +6 -6
  226. package/dist/internal/file-kind.d.ts +1 -1
  227. package/dist/internal/file-kind.js +43 -51
  228. package/dist/internal/flow.d.ts +4 -4
  229. package/dist/internal/flow.js +20 -23
  230. package/dist/internal/languages.js +999 -999
  231. package/dist/internal/message-scroller.d.ts +3 -3
  232. package/dist/internal/message-scroller.js +64 -112
  233. package/dist/internal/pressable.d.ts +1 -1
  234. package/dist/internal/pressable.js +7 -7
  235. package/dist/internal/state-panel.d.ts +35 -0
  236. package/dist/internal/state-panel.js +22 -0
  237. package/dist/internal/syntax.d.ts +2 -2
  238. package/dist/internal/syntax.js +36 -47
  239. package/dist/styles/accordion.css +3 -5
  240. package/dist/styles/agent-fanout.css +64 -60
  241. package/dist/styles/alert-dialog.css +12 -26
  242. package/dist/styles/alert.css +10 -15
  243. package/dist/styles/attachment.css +51 -93
  244. package/dist/styles/avatar.css +17 -24
  245. package/dist/styles/badge.css +11 -36
  246. package/dist/styles/board.css +571 -0
  247. package/dist/styles/brand-icon.css +7 -8
  248. package/dist/styles/breadcrumb.css +4 -7
  249. package/dist/styles/button-group.css +8 -14
  250. package/dist/styles/button.css +22 -27
  251. package/dist/styles/calendar.css +24 -36
  252. package/dist/styles/canvas.css +2 -3
  253. package/dist/styles/card.css +7 -23
  254. package/dist/styles/carousel.css +11 -12
  255. package/dist/styles/chart.css +215 -31
  256. package/dist/styles/chat-input.css +15 -39
  257. package/dist/styles/chat-plan.css +3 -4
  258. package/dist/styles/chat-sources.css +3 -6
  259. package/dist/styles/checkbox.css +11 -25
  260. package/dist/styles/choice-list.css +17 -31
  261. package/dist/styles/code-block.css +11 -25
  262. package/dist/styles/collapsible.css +10 -15
  263. package/dist/styles/combobox.css +11 -15
  264. package/dist/styles/command.css +5 -8
  265. package/dist/styles/context-menu.css +2 -2
  266. package/dist/styles/dialog.css +5 -16
  267. package/dist/styles/dropdown-menu.css +2 -2
  268. package/dist/styles/field.css +15 -21
  269. package/dist/styles/file-explorer.css +19 -33
  270. package/dist/styles/file-viewer.css +13 -17
  271. package/dist/styles/form.css +3 -3
  272. package/dist/styles/glass-banner.css +12 -47
  273. package/dist/styles/gradient-banner.css +17 -35
  274. package/dist/styles/hover-card.css +9 -15
  275. package/dist/styles/index.css +116 -108
  276. package/dist/styles/input-group.css +25 -41
  277. package/dist/styles/input-otp.css +5 -6
  278. package/dist/styles/input.css +5 -5
  279. package/dist/styles/kbd.css +1 -1
  280. package/dist/styles/label.css +9 -30
  281. package/dist/styles/mention-list.css +6 -8
  282. package/dist/styles/menubar.css +5 -6
  283. package/dist/styles/message-actions.css +1 -1
  284. package/dist/styles/message-response.css +3 -5
  285. package/dist/styles/message-scroller.css +14 -21
  286. package/dist/styles/message.css +23 -60
  287. package/dist/styles/navigation-menu.css +14 -29
  288. package/dist/styles/notice-banner.css +1 -2
  289. package/dist/styles/page-header.css +7 -10
  290. package/dist/styles/pagination.css +1 -4
  291. package/dist/styles/plan-outline.css +20 -37
  292. package/dist/styles/popover.css +10 -19
  293. package/dist/styles/presence-cursor.css +1 -2
  294. package/dist/styles/progress.css +2 -4
  295. package/dist/styles/prompt-list.css +6 -17
  296. package/dist/styles/questionnaire.css +16 -40
  297. package/dist/styles/radio-group.css +12 -23
  298. package/dist/styles/reasoning-effort.css +8 -15
  299. package/dist/styles/record-list.css +243 -0
  300. package/dist/styles/resizable.css +10 -11
  301. package/dist/styles/result-card.css +17 -3
  302. package/dist/styles/result-notice.css +80 -0
  303. package/dist/styles/review-card.css +2 -3
  304. package/dist/styles/rich-text-editor.css +1 -2
  305. package/dist/styles/schema-diagram.css +12 -17
  306. package/dist/styles/scroll-area.css +8 -10
  307. package/dist/styles/search-dialog.css +1 -5
  308. package/dist/styles/search-field.css +1 -2
  309. package/dist/styles/select.css +7 -7
  310. package/dist/styles/selection-slot.css +1 -2
  311. package/dist/styles/separator.css +7 -8
  312. package/dist/styles/settings-list.css +1 -2
  313. package/dist/styles/sheet.css +40 -73
  314. package/dist/styles/sidebar.css +17 -21
  315. package/dist/styles/skeleton.css +9 -11
  316. package/dist/styles/slider.css +11 -21
  317. package/dist/styles/spinner.css +2 -2
  318. package/dist/styles/sql-viewer.css +29 -29
  319. package/dist/styles/state-panel.css +8 -9
  320. package/dist/styles/state-sample.css +20 -33
  321. package/dist/styles/switch.css +11 -18
  322. package/dist/styles/table.css +51 -77
  323. package/dist/styles/tabs.css +12 -16
  324. package/dist/styles/textarea.css +3 -3
  325. package/dist/styles/themes/chatgpt.css +11 -23
  326. package/dist/styles/themes/claude.css +12 -24
  327. package/dist/styles/themes/cloudflare.css +11 -23
  328. package/dist/styles/themes/discord.css +11 -23
  329. package/dist/styles/themes/github.css +11 -23
  330. package/dist/styles/themes/grok.css +11 -23
  331. package/dist/styles/themes/linear.css +12 -25
  332. package/dist/styles/themes/neutral.css +11 -23
  333. package/dist/styles/themes/notion.css +11 -23
  334. package/dist/styles/themes/perplexity.css +11 -23
  335. package/dist/styles/themes/raycast.css +11 -23
  336. package/dist/styles/themes/spotify.css +11 -23
  337. package/dist/styles/themes/stripe.css +11 -23
  338. package/dist/styles/themes/supabase.css +11 -23
  339. package/dist/styles/themes/tulipfarm.css +9 -10
  340. package/dist/styles/themes/vercel.css +12 -25
  341. package/dist/styles/timeline.css +276 -0
  342. package/dist/styles/toast.css +13 -20
  343. package/dist/styles/toggle-group.css +17 -23
  344. package/dist/styles/toggle.css +8 -8
  345. package/dist/styles/tool-activity.css +7 -13
  346. package/dist/styles/toolbar-status.css +2 -7
  347. package/dist/styles/tooltip.css +15 -21
  348. package/dist/styles/view-switcher.css +279 -0
  349. package/package.json +21 -1
@@ -45,20 +45,16 @@
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
 
@@ -66,20 +62,20 @@
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-default: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-default:has([data-slot='attachment-media']) {
73
69
  padding: 8px;
74
70
  }
75
71
  .sprout-attachment-size-sm {
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-sm: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-sm:has([data-slot='attachment-media']) {
83
79
  padding: 6px;
84
80
  }
85
81
  .sprout-attachment-size-xs {
@@ -87,10 +83,10 @@
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-xs: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-xs: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
 
@@ -129,38 +125,33 @@
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-xs .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-xs.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,32 @@
30
30
  mix-blend-mode: lighten;
31
31
  }
32
32
  }
33
- :is(.sprout-avatar, .sprout-entity-avatar)[data-size="xs"] {
33
+ :is(.sprout-avatar, .sprout-entity-avatar)[data-size='xs'] {
34
34
  --sprout-avatar-size: 1.25rem;
35
35
  font-size: var(--sprout-text-xs);
36
36
  }
37
- :is(.sprout-avatar, .sprout-entity-avatar)[data-size="sm"] {
37
+ :is(.sprout-avatar, .sprout-entity-avatar)[data-size='sm'] {
38
38
  --sprout-avatar-size: 1.5rem;
39
39
  font-size: var(--sprout-text-xs);
40
40
  }
41
- .sprout-avatar[data-size="lg"] {
41
+ .sprout-avatar[data-size='lg'] {
42
42
  --sprout-avatar-size: 2.5rem;
43
43
  }
44
- .sprout-entity-avatar[data-size="lg"] {
44
+ .sprout-entity-avatar[data-size='lg'] {
45
45
  --sprout-avatar-size: 2.5rem;
46
46
  font-size: var(--sprout-text-base);
47
47
  }
48
- .sprout-entity-avatar[data-size="xl"] {
48
+ .sprout-entity-avatar[data-size='xl'] {
49
49
  --sprout-avatar-size: 4rem;
50
50
  font-size: 1.5rem;
51
51
  }
52
52
  .sprout-entity-avatar {
53
53
  overflow: hidden;
54
54
  }
55
- .sprout-entity-avatar[data-shape="square"] {
55
+ .sprout-entity-avatar[data-shape='square'] {
56
56
  border-radius: 0.5rem;
57
57
  }
58
- .sprout-entity-avatar[data-shape="square"][data-size="xs"] {
58
+ .sprout-entity-avatar[data-shape='square'][data-size='xs'] {
59
59
  border-radius: 0.25rem;
60
60
  }
61
61
 
@@ -65,8 +65,7 @@
65
65
  aspect-ratio: 1;
66
66
  border-radius: inherit;
67
67
  object-fit: cover;
68
- transition: opacity var(--sprout-motion-normal, 180ms)
69
- var(--sprout-motion-ease, ease);
68
+ transition: opacity var(--sprout-motion-normal, 180ms) var(--sprout-motion-ease, ease);
70
69
  }
71
70
  .sprout-avatar-image[data-starting-style],
72
71
  .sprout-avatar-image[data-ending-style] {
@@ -110,20 +109,18 @@
110
109
  width: 0.5rem;
111
110
  height: 0.5rem;
112
111
  }
113
- .sprout-avatar[data-size="xs"] > .sprout-avatar-badge {
112
+ .sprout-avatar[data-size='xs'] > .sprout-avatar-badge {
114
113
  width: 0.375rem;
115
114
  height: 0.375rem;
116
115
  }
117
- .sprout-avatar[data-size="sm"] > .sprout-avatar-badge {
116
+ .sprout-avatar[data-size='sm'] > .sprout-avatar-badge {
118
117
  width: 0.5rem;
119
118
  height: 0.5rem;
120
119
  }
121
- .sprout-avatar:is([data-size="xs"], [data-size="sm"])
122
- > .sprout-avatar-badge
123
- > svg {
120
+ .sprout-avatar:is([data-size='xs'], [data-size='sm']) > .sprout-avatar-badge > svg {
124
121
  display: none;
125
122
  }
126
- .sprout-avatar[data-size="lg"] > .sprout-avatar-badge {
123
+ .sprout-avatar[data-size='lg'] > .sprout-avatar-badge {
127
124
  width: 0.75rem;
128
125
  height: 0.75rem;
129
126
  }
@@ -156,24 +153,20 @@
156
153
  width: 1rem;
157
154
  height: 1rem;
158
155
  }
159
- .sprout-avatar-group:has(> [data-size="sm"]) > .sprout-avatar-group-count {
156
+ .sprout-avatar-group:has(> [data-size='sm']) > .sprout-avatar-group-count {
160
157
  width: 1.5rem;
161
158
  height: 1.5rem;
162
159
  font-size: var(--sprout-text-xs);
163
160
  }
164
- .sprout-avatar-group:has(> [data-size="sm"])
165
- > .sprout-avatar-group-count
166
- > svg {
161
+ .sprout-avatar-group:has(> [data-size='sm']) > .sprout-avatar-group-count > svg {
167
162
  width: 0.75rem;
168
163
  height: 0.75rem;
169
164
  }
170
- .sprout-avatar-group:has(> [data-size="lg"]) > .sprout-avatar-group-count {
165
+ .sprout-avatar-group:has(> [data-size='lg']) > .sprout-avatar-group-count {
171
166
  width: 2.5rem;
172
167
  height: 2.5rem;
173
168
  }
174
- .sprout-avatar-group:has(> [data-size="lg"])
175
- > .sprout-avatar-group-count
176
- > svg {
169
+ .sprout-avatar-group:has(> [data-size='lg']) > .sprout-avatar-group-count > svg {
177
170
  width: 1.25rem;
178
171
  height: 1.25rem;
179
172
  }
@@ -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 {