@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
@@ -6,15 +6,15 @@
6
6
  * that subtree.
7
7
  */
8
8
  @layer base {
9
- [data-sprout-theme="stripe"] {
9
+ [data-sprout-theme='stripe'] {
10
10
  --sprout-font: ui-sans-serif, system-ui, sans-serif;
11
11
  --sprout-radius-control: 0.375rem;
12
12
  --sprout-radius-panel: 0.5rem;
13
13
  }
14
14
 
15
- [data-sprout-theme="stripe"],
16
- .light[data-sprout-theme="stripe"],
17
- .light [data-sprout-theme="stripe"] {
15
+ [data-sprout-theme='stripe'],
16
+ .light[data-sprout-theme='stripe'],
17
+ .light [data-sprout-theme='stripe'] {
18
18
  --sprout-canvas: #f6f9fc;
19
19
  --sprout-surface: #ffffff;
20
20
  --sprout-hover: #f0f2f4;
@@ -40,17 +40,13 @@
40
40
  --sprout-success-subtle: #e8f4eb;
41
41
  --sprout-warning: #8a4b08;
42
42
  --sprout-warning-subtle: #fdf1dc;
43
- --sprout-primary-subtle: color-mix(
44
- in oklab,
45
- var(--sprout-primary) 10%,
46
- var(--sprout-surface)
47
- );
43
+ --sprout-primary-subtle: color-mix(in oklab, var(--sprout-primary) 10%, var(--sprout-surface));
48
44
  --sprout-secondary: #eef0f2;
49
45
  --sprout-overlay: rgb(18 18 18 / 0.35);
50
46
  }
51
47
 
52
- .dark[data-sprout-theme="stripe"],
53
- .dark [data-sprout-theme="stripe"] {
48
+ .dark[data-sprout-theme='stripe'],
49
+ .dark [data-sprout-theme='stripe'] {
54
50
  --sprout-canvas: #0a1929;
55
51
  --sprout-surface: #112640;
56
52
  --sprout-hover: #23374f;
@@ -76,18 +72,14 @@
76
72
  --sprout-success-subtle: #1c3223;
77
73
  --sprout-warning: #eec27e;
78
74
  --sprout-warning-subtle: #34291b;
79
- --sprout-primary-subtle: color-mix(
80
- in oklab,
81
- var(--sprout-primary) 16%,
82
- var(--sprout-surface)
83
- );
75
+ --sprout-primary-subtle: color-mix(in oklab, var(--sprout-primary) 16%, var(--sprout-surface));
84
76
  --sprout-secondary: #263951;
85
77
  --sprout-overlay: rgb(8 8 8 / 0.65);
86
78
  }
87
79
 
88
80
  @media (prefers-color-scheme: dark) {
89
- :root:not(.light):not(.dark)[data-sprout-theme="stripe"],
90
- :root:not(.light):not(.dark) [data-sprout-theme="stripe"] {
81
+ :root:not(.light):not(.dark)[data-sprout-theme='stripe'],
82
+ :root:not(.light):not(.dark) [data-sprout-theme='stripe'] {
91
83
  --sprout-canvas: #0a1929;
92
84
  --sprout-surface: #112640;
93
85
  --sprout-hover: #23374f;
@@ -113,11 +105,7 @@
113
105
  --sprout-success-subtle: #1c3223;
114
106
  --sprout-warning: #eec27e;
115
107
  --sprout-warning-subtle: #34291b;
116
- --sprout-primary-subtle: color-mix(
117
- in oklab,
118
- var(--sprout-primary) 16%,
119
- var(--sprout-surface)
120
- );
108
+ --sprout-primary-subtle: color-mix(in oklab, var(--sprout-primary) 16%, var(--sprout-surface));
121
109
  --sprout-secondary: #263951;
122
110
  --sprout-overlay: rgb(8 8 8 / 0.65);
123
111
  }
@@ -6,15 +6,15 @@
6
6
  * that subtree.
7
7
  */
8
8
  @layer base {
9
- [data-sprout-theme="supabase"] {
9
+ [data-sprout-theme='supabase'] {
10
10
  --sprout-font: ui-sans-serif, system-ui, sans-serif;
11
11
  --sprout-radius-control: 0.375rem;
12
12
  --sprout-radius-panel: 0.5rem;
13
13
  }
14
14
 
15
- [data-sprout-theme="supabase"],
16
- .light[data-sprout-theme="supabase"],
17
- .light [data-sprout-theme="supabase"] {
15
+ [data-sprout-theme='supabase'],
16
+ .light[data-sprout-theme='supabase'],
17
+ .light [data-sprout-theme='supabase'] {
18
18
  --sprout-canvas: #fcfcfc;
19
19
  --sprout-surface: #ffffff;
20
20
  --sprout-hover: #f1f1f1;
@@ -40,17 +40,13 @@
40
40
  --sprout-success-subtle: #e8f4eb;
41
41
  --sprout-warning: #8a4b08;
42
42
  --sprout-warning-subtle: #fdf1dc;
43
- --sprout-primary-subtle: color-mix(
44
- in oklab,
45
- var(--sprout-primary) 10%,
46
- var(--sprout-surface)
47
- );
43
+ --sprout-primary-subtle: color-mix(in oklab, var(--sprout-primary) 10%, var(--sprout-surface));
48
44
  --sprout-secondary: #efefef;
49
45
  --sprout-overlay: rgb(18 18 18 / 0.35);
50
46
  }
51
47
 
52
- .dark[data-sprout-theme="supabase"],
53
- .dark [data-sprout-theme="supabase"] {
48
+ .dark[data-sprout-theme='supabase'],
49
+ .dark [data-sprout-theme='supabase'] {
54
50
  --sprout-canvas: #121212;
55
51
  --sprout-surface: #171717;
56
52
  --sprout-hover: #282828;
@@ -76,18 +72,14 @@
76
72
  --sprout-success-subtle: #1c3223;
77
73
  --sprout-warning: #eec27e;
78
74
  --sprout-warning-subtle: #34291b;
79
- --sprout-primary-subtle: color-mix(
80
- in oklab,
81
- var(--sprout-primary) 16%,
82
- var(--sprout-surface)
83
- );
75
+ --sprout-primary-subtle: color-mix(in oklab, var(--sprout-primary) 16%, var(--sprout-surface));
84
76
  --sprout-secondary: #2a2a2a;
85
77
  --sprout-overlay: rgb(8 8 8 / 0.65);
86
78
  }
87
79
 
88
80
  @media (prefers-color-scheme: dark) {
89
- :root:not(.light):not(.dark)[data-sprout-theme="supabase"],
90
- :root:not(.light):not(.dark) [data-sprout-theme="supabase"] {
81
+ :root:not(.light):not(.dark)[data-sprout-theme='supabase'],
82
+ :root:not(.light):not(.dark) [data-sprout-theme='supabase'] {
91
83
  --sprout-canvas: #121212;
92
84
  --sprout-surface: #171717;
93
85
  --sprout-hover: #282828;
@@ -113,11 +105,7 @@
113
105
  --sprout-success-subtle: #1c3223;
114
106
  --sprout-warning: #eec27e;
115
107
  --sprout-warning-subtle: #34291b;
116
- --sprout-primary-subtle: color-mix(
117
- in oklab,
118
- var(--sprout-primary) 16%,
119
- var(--sprout-surface)
120
- );
108
+ --sprout-primary-subtle: color-mix(in oklab, var(--sprout-primary) 16%, var(--sprout-surface));
121
109
  --sprout-secondary: #2a2a2a;
122
110
  --sprout-overlay: rgb(8 8 8 / 0.65);
123
111
  }
@@ -7,16 +7,15 @@
7
7
  * @fontsource-variable/inter) or the system font is used.
8
8
  */
9
9
  @layer base {
10
- [data-sprout-theme="tulipfarm"] {
11
- --sprout-font:
12
- "Inter Variable", Inter, ui-sans-serif, system-ui, sans-serif;
10
+ [data-sprout-theme='tulipfarm'] {
11
+ --sprout-font: 'Inter Variable', Inter, ui-sans-serif, system-ui, sans-serif;
13
12
  --sprout-radius-control: 0.5rem;
14
13
  --sprout-radius-panel: 0.75rem;
15
14
  }
16
15
 
17
- [data-sprout-theme="tulipfarm"],
18
- .light[data-sprout-theme="tulipfarm"],
19
- .light [data-sprout-theme="tulipfarm"] {
16
+ [data-sprout-theme='tulipfarm'],
17
+ .light[data-sprout-theme='tulipfarm'],
18
+ .light [data-sprout-theme='tulipfarm'] {
20
19
  --sprout-canvas: #f9f9fa;
21
20
  --sprout-surface: #ffffff;
22
21
  --sprout-hover: #f5f5f7;
@@ -47,8 +46,8 @@
47
46
  --sprout-overlay: rgb(32 33 36 / 0.25);
48
47
  }
49
48
 
50
- .dark[data-sprout-theme="tulipfarm"],
51
- .dark [data-sprout-theme="tulipfarm"] {
49
+ .dark[data-sprout-theme='tulipfarm'],
50
+ .dark [data-sprout-theme='tulipfarm'] {
52
51
  --sprout-canvas: #101113;
53
52
  --sprout-surface: #16171a;
54
53
  --sprout-hover: #202125;
@@ -80,8 +79,8 @@
80
79
  }
81
80
 
82
81
  @media (prefers-color-scheme: dark) {
83
- :root:not(.light):not(.dark)[data-sprout-theme="tulipfarm"],
84
- :root:not(.light):not(.dark) [data-sprout-theme="tulipfarm"] {
82
+ :root:not(.light):not(.dark)[data-sprout-theme='tulipfarm'],
83
+ :root:not(.light):not(.dark) [data-sprout-theme='tulipfarm'] {
85
84
  --sprout-canvas: #101113;
86
85
  --sprout-surface: #16171a;
87
86
  --sprout-hover: #202125;
@@ -6,16 +6,15 @@
6
6
  * that subtree.
7
7
  */
8
8
  @layer base {
9
- [data-sprout-theme="vercel"] {
10
- --sprout-font:
11
- "Geist Variable", Geist, ui-sans-serif, system-ui, sans-serif;
9
+ [data-sprout-theme='vercel'] {
10
+ --sprout-font: 'Geist Variable', Geist, ui-sans-serif, system-ui, sans-serif;
12
11
  --sprout-radius-control: 0.375rem;
13
12
  --sprout-radius-panel: 0.75rem;
14
13
  }
15
14
 
16
- [data-sprout-theme="vercel"],
17
- .light[data-sprout-theme="vercel"],
18
- .light [data-sprout-theme="vercel"] {
15
+ [data-sprout-theme='vercel'],
16
+ .light[data-sprout-theme='vercel'],
17
+ .light [data-sprout-theme='vercel'] {
19
18
  --sprout-canvas: #fafafa;
20
19
  --sprout-surface: #ffffff;
21
20
  --sprout-hover: #f1f1f1;
@@ -41,17 +40,13 @@
41
40
  --sprout-success-subtle: #e8f4eb;
42
41
  --sprout-warning: #8a4b08;
43
42
  --sprout-warning-subtle: #fdf1dc;
44
- --sprout-primary-subtle: color-mix(
45
- in oklab,
46
- var(--sprout-primary) 10%,
47
- var(--sprout-surface)
48
- );
43
+ --sprout-primary-subtle: color-mix(in oklab, var(--sprout-primary) 10%, var(--sprout-surface));
49
44
  --sprout-secondary: #efefef;
50
45
  --sprout-overlay: rgb(18 18 18 / 0.35);
51
46
  }
52
47
 
53
- .dark[data-sprout-theme="vercel"],
54
- .dark [data-sprout-theme="vercel"] {
48
+ .dark[data-sprout-theme='vercel'],
49
+ .dark [data-sprout-theme='vercel'] {
55
50
  --sprout-canvas: #000000;
56
51
  --sprout-surface: #0a0a0a;
57
52
  --sprout-hover: #1c1c1c;
@@ -77,18 +72,14 @@
77
72
  --sprout-success-subtle: #1c3223;
78
73
  --sprout-warning: #eec27e;
79
74
  --sprout-warning-subtle: #34291b;
80
- --sprout-primary-subtle: color-mix(
81
- in oklab,
82
- var(--sprout-primary) 16%,
83
- var(--sprout-surface)
84
- );
75
+ --sprout-primary-subtle: color-mix(in oklab, var(--sprout-primary) 16%, var(--sprout-surface));
85
76
  --sprout-secondary: #1e1e1e;
86
77
  --sprout-overlay: rgb(8 8 8 / 0.65);
87
78
  }
88
79
 
89
80
  @media (prefers-color-scheme: dark) {
90
- :root:not(.light):not(.dark)[data-sprout-theme="vercel"],
91
- :root:not(.light):not(.dark) [data-sprout-theme="vercel"] {
81
+ :root:not(.light):not(.dark)[data-sprout-theme='vercel'],
82
+ :root:not(.light):not(.dark) [data-sprout-theme='vercel'] {
92
83
  --sprout-canvas: #000000;
93
84
  --sprout-surface: #0a0a0a;
94
85
  --sprout-hover: #1c1c1c;
@@ -114,11 +105,7 @@
114
105
  --sprout-success-subtle: #1c3223;
115
106
  --sprout-warning: #eec27e;
116
107
  --sprout-warning-subtle: #34291b;
117
- --sprout-primary-subtle: color-mix(
118
- in oklab,
119
- var(--sprout-primary) 16%,
120
- var(--sprout-surface)
121
- );
108
+ --sprout-primary-subtle: color-mix(in oklab, var(--sprout-primary) 16%, var(--sprout-surface));
122
109
  --sprout-secondary: #1e1e1e;
123
110
  --sprout-overlay: rgb(8 8 8 / 0.65);
124
111
  }
@@ -0,0 +1,276 @@
1
+ @layer components {
2
+ /* Record timeline: an HTML list of rows beside the chart. Rows and chart
3
+ bands share one height, so they line up. The axis band is 40px in the
4
+ chart code too. */
5
+ .sprout-timeline {
6
+ --sprout-timeline-row: 2.75rem;
7
+ --sprout-timeline-label: 15rem;
8
+ display: grid;
9
+ gap: 12px;
10
+ min-width: 0;
11
+ container-type: inline-size;
12
+ font-family: var(--sprout-font);
13
+ color: var(--sprout-text);
14
+ }
15
+ .sprout-timeline[aria-busy='true'] .sprout-timeline-grid:not([data-skeleton]) {
16
+ opacity: 0.6;
17
+ }
18
+ .sprout-timeline-notice:empty {
19
+ display: none;
20
+ }
21
+ .sprout-timeline-grid {
22
+ display: grid;
23
+ grid-template-columns: auto minmax(0, 1fr);
24
+ min-width: 0;
25
+ }
26
+ .sprout-timeline-labels {
27
+ display: grid;
28
+ grid-auto-rows: var(--sprout-timeline-row);
29
+ align-content: start;
30
+ min-width: 0;
31
+ margin: 0;
32
+ padding: 40px 0 0;
33
+ border-right: 1px solid var(--sprout-line);
34
+ list-style: none;
35
+ }
36
+ .sprout-timeline-row {
37
+ display: flex;
38
+ align-items: center;
39
+ gap: 8px;
40
+ box-sizing: border-box;
41
+ min-width: 0;
42
+ height: var(--sprout-timeline-row);
43
+ padding: 0 8px;
44
+ border-radius: var(--sprout-radius-control);
45
+ outline: none;
46
+ }
47
+ .sprout-timeline-row[data-hot] {
48
+ background: var(--sprout-hover);
49
+ }
50
+ .sprout-timeline-row[data-openable] {
51
+ cursor: pointer;
52
+ }
53
+ .sprout-timeline-row:focus-visible {
54
+ outline: 2px solid var(--sprout-focus-ring);
55
+ outline-offset: -2px;
56
+ }
57
+ .sprout-timeline-label {
58
+ display: grid;
59
+ gap: 2px;
60
+ flex: none;
61
+ width: var(--sprout-timeline-label);
62
+ min-width: 0;
63
+ }
64
+ .sprout-timeline-label-head {
65
+ display: flex;
66
+ align-items: center;
67
+ gap: 6px;
68
+ min-width: 0;
69
+ }
70
+ .sprout-timeline-label-title,
71
+ .sprout-timeline-label-dates {
72
+ overflow: hidden;
73
+ text-overflow: ellipsis;
74
+ white-space: nowrap;
75
+ }
76
+ .sprout-timeline-label-title {
77
+ min-width: 0;
78
+ font-size: var(--sprout-text-sm);
79
+ font-weight: 500;
80
+ line-height: 1.25rem;
81
+ }
82
+ .sprout-timeline-label-dates {
83
+ display: flex;
84
+ align-items: center;
85
+ gap: 6px;
86
+ min-width: 0;
87
+ color: var(--sprout-muted);
88
+ font-size: var(--sprout-text-xs);
89
+ line-height: 1rem;
90
+ font-variant-numeric: tabular-nums;
91
+ }
92
+ .sprout-timeline-label-text {
93
+ overflow: hidden;
94
+ text-overflow: ellipsis;
95
+ }
96
+ .sprout-timeline-label-clip {
97
+ flex: none;
98
+ color: var(--sprout-text);
99
+ }
100
+ .sprout-timeline-label-clip::before {
101
+ content: '· ';
102
+ color: var(--sprout-muted);
103
+ }
104
+ .sprout-timeline-label-marker {
105
+ flex: none;
106
+ }
107
+ .sprout-timeline-label-warning {
108
+ display: none;
109
+ flex: none;
110
+ color: var(--sprout-warning);
111
+ font-weight: 500;
112
+ }
113
+ .sprout-timeline-label-warning::after {
114
+ content: ' ·';
115
+ color: var(--sprout-muted);
116
+ font-weight: 400;
117
+ }
118
+ .sprout-timeline-row-actions {
119
+ display: flex;
120
+ align-items: center;
121
+ gap: 4px;
122
+ margin-left: auto;
123
+ }
124
+ .sprout-timeline-plot {
125
+ position: relative;
126
+ min-width: 0;
127
+ }
128
+ .sprout-timeline-band {
129
+ position: absolute;
130
+ inset-inline: 0;
131
+ top: calc(40px + var(--sprout-timeline-index) * var(--sprout-timeline-row));
132
+ height: var(--sprout-timeline-row);
133
+ background: var(--sprout-hover);
134
+ pointer-events: none;
135
+ }
136
+ .sprout-chart.sprout-timeline-chart {
137
+ position: relative;
138
+ height: calc(var(--sprout-timeline-count) * var(--sprout-timeline-row) + 40px);
139
+ }
140
+ .sprout-timeline-chart .recharts-cartesian-axis-tick-value {
141
+ font-variant-numeric: tabular-nums;
142
+ }
143
+ .sprout-timeline-chart .recharts-bar-rectangle,
144
+ .sprout-timeline-point {
145
+ cursor: inherit;
146
+ }
147
+ .sprout-timeline-chevron {
148
+ fill: none;
149
+ stroke: var(--sprout-surface);
150
+ stroke-width: 1.5;
151
+ stroke-linecap: round;
152
+ stroke-linejoin: round;
153
+ }
154
+ .sprout-timeline-today rect {
155
+ fill: var(--sprout-chart-1);
156
+ }
157
+ .sprout-timeline-today text {
158
+ fill: var(--sprout-surface);
159
+ font-size: 0.6875rem;
160
+ font-weight: 500;
161
+ }
162
+ .sprout-timeline-grid[data-skeleton] .sprout-timeline-label {
163
+ gap: 6px;
164
+ }
165
+ .sprout-timeline-skeleton-band {
166
+ display: flex;
167
+ align-items: center;
168
+ height: var(--sprout-timeline-row);
169
+ padding-inline: 16px;
170
+ }
171
+ .sprout-timeline-grid[data-skeleton] .sprout-timeline-plot {
172
+ padding-top: 40px;
173
+ }
174
+ .sprout-timeline-legend {
175
+ justify-content: flex-start;
176
+ padding-top: 0;
177
+ }
178
+ .sprout-timeline-undated {
179
+ display: flex;
180
+ flex-wrap: wrap;
181
+ align-items: center;
182
+ gap: 4px 12px;
183
+ margin: 0;
184
+ color: var(--sprout-muted);
185
+ font-size: var(--sprout-text-sm);
186
+ line-height: 1.25rem;
187
+ }
188
+ .sprout-timeline-state {
189
+ min-height: 12rem;
190
+ }
191
+ @container (max-width: 40rem) {
192
+ .sprout-timeline-grid {
193
+ --sprout-timeline-label: 8rem;
194
+ }
195
+ .sprout-timeline-row {
196
+ gap: 4px;
197
+ padding: 0 4px;
198
+ }
199
+ .sprout-timeline-label-clip,
200
+ .sprout-timeline-label-marker {
201
+ display: none;
202
+ }
203
+ .sprout-timeline-label-warning {
204
+ display: inline;
205
+ }
206
+ }
207
+
208
+ .sprout-timeline-window-bar {
209
+ display: flex;
210
+ flex-wrap: wrap;
211
+ align-items: center;
212
+ gap: 8px 12px;
213
+ min-width: 0;
214
+ font-family: var(--sprout-font);
215
+ }
216
+ .sprout-timeline-window-nav {
217
+ display: flex;
218
+ align-items: center;
219
+ gap: 4px;
220
+ }
221
+ .sprout-timeline-window-title {
222
+ flex: 1 1 auto;
223
+ min-width: 0;
224
+ margin: 0;
225
+ color: var(--sprout-text);
226
+ font-size: var(--sprout-text-base);
227
+ font-weight: 600;
228
+ line-height: 1.5rem;
229
+ font-variant-numeric: tabular-nums;
230
+ white-space: nowrap;
231
+ }
232
+ .sprout-timeline-window-actions {
233
+ display: flex;
234
+ flex-wrap: wrap;
235
+ align-items: center;
236
+ gap: 8px;
237
+ }
238
+ @media (max-width: 40rem) {
239
+ .sprout-timeline-window-zoom {
240
+ flex-basis: 100%;
241
+ width: 100%;
242
+ }
243
+ .sprout-timeline-window-zoom > * {
244
+ flex: 1 1 0;
245
+ }
246
+ }
247
+
248
+ @media (prefers-reduced-motion: no-preference) {
249
+ .sprout-timeline-row {
250
+ transition: background-color var(--sprout-motion-fast) var(--sprout-motion-ease);
251
+ }
252
+ .sprout-timeline-grid,
253
+ .sprout-timeline .sprout-timeline-state {
254
+ animation: sprout-timeline-in var(--sprout-motion-normal) var(--sprout-motion-ease);
255
+ }
256
+ .sprout-timeline-grid:not([data-skeleton]) {
257
+ transition: opacity var(--sprout-motion-normal) var(--sprout-motion-ease);
258
+ }
259
+ }
260
+ @keyframes sprout-timeline-in {
261
+ from {
262
+ opacity: 0.4;
263
+ }
264
+ }
265
+
266
+ @media (forced-colors: active) {
267
+ .sprout-timeline-row:focus-visible {
268
+ outline-color: Highlight;
269
+ }
270
+ .sprout-timeline-row[data-hot],
271
+ .sprout-timeline-band {
272
+ outline: 1px solid CanvasText;
273
+ outline-offset: -1px;
274
+ }
275
+ }
276
+ }
@@ -25,8 +25,7 @@
25
25
  --sprout-toast-scale: max(0, calc(1 - var(--toast-index) * 0.06));
26
26
  --sprout-toast-shrink: calc(1 - var(--sprout-toast-scale));
27
27
  --sprout-toast-offset-y: calc(
28
- var(--toast-offset-y) * -1 - var(--toast-index) *
29
- var(--sprout-toast-gap) + var(--toast-swipe-movement-y)
28
+ var(--toast-offset-y) * -1 - var(--toast-index) * var(--sprout-toast-gap) + var(--toast-swipe-movement-y)
30
29
  );
31
30
  position: absolute;
32
31
  right: 0;
@@ -49,8 +48,7 @@
49
48
  transform: translateX(var(--toast-swipe-movement-x))
50
49
  translateY(
51
50
  calc(
52
- var(--toast-swipe-movement-y) - var(--toast-index) *
53
- var(--sprout-toast-peek) - var(--sprout-toast-shrink) *
51
+ var(--toast-swipe-movement-y) - var(--toast-index) * var(--sprout-toast-peek) - var(--sprout-toast-shrink) *
54
52
  var(--sprout-toast-height)
55
53
  )
56
54
  )
@@ -65,7 +63,7 @@
65
63
  left: 0;
66
64
  width: 100%;
67
65
  height: calc(var(--sprout-toast-gap) + 1px);
68
- content: "";
66
+ content: '';
69
67
  }
70
68
  .sprout-toast:focus-visible {
71
69
  outline: var(--sprout-focus-width) solid var(--sprout-focus-ring);
@@ -73,25 +71,22 @@
73
71
  }
74
72
  .sprout-toast[data-expanded] {
75
73
  height: var(--toast-height);
76
- transform: translateX(var(--toast-swipe-movement-x))
77
- translateY(var(--sprout-toast-offset-y));
74
+ transform: translateX(var(--toast-swipe-movement-x)) translateY(var(--sprout-toast-offset-y));
78
75
  }
79
76
  .sprout-toast[data-limited] {
80
77
  opacity: 0;
81
78
  }
82
- .sprout-toast[data-ending-style][data-swipe-direction="down"] {
79
+ .sprout-toast[data-ending-style][data-swipe-direction='down'] {
83
80
  transform: translateY(calc(var(--toast-swipe-movement-y) + 150%));
84
81
  }
85
- .sprout-toast[data-ending-style][data-swipe-direction="up"] {
82
+ .sprout-toast[data-ending-style][data-swipe-direction='up'] {
86
83
  transform: translateY(calc(var(--toast-swipe-movement-y) - 150%));
87
84
  }
88
- .sprout-toast[data-ending-style][data-swipe-direction="left"] {
89
- transform: translateX(calc(var(--toast-swipe-movement-x) - 150%))
90
- translateY(var(--sprout-toast-offset-y));
85
+ .sprout-toast[data-ending-style][data-swipe-direction='left'] {
86
+ transform: translateX(calc(var(--toast-swipe-movement-x) - 150%)) translateY(var(--sprout-toast-offset-y));
91
87
  }
92
- .sprout-toast[data-ending-style][data-swipe-direction="right"] {
93
- transform: translateX(calc(var(--toast-swipe-movement-x) + 150%))
94
- translateY(var(--sprout-toast-offset-y));
88
+ .sprout-toast[data-ending-style][data-swipe-direction='right'] {
89
+ transform: translateX(calc(var(--toast-swipe-movement-x) + 150%)) translateY(var(--sprout-toast-offset-y));
95
90
  }
96
91
 
97
92
  .sprout-toast-content {
@@ -119,7 +114,7 @@
119
114
  height: 16px;
120
115
  pointer-events: none;
121
116
  }
122
- .sprout-toast-icon[data-type="error"] {
117
+ .sprout-toast-icon[data-type='error'] {
123
118
  color: var(--sprout-danger);
124
119
  }
125
120
 
@@ -156,7 +151,7 @@
156
151
  .sprout-toast-close::after {
157
152
  position: absolute;
158
153
  inset: -8px;
159
- content: "";
154
+ content: '';
160
155
  }
161
156
  .sprout-toast-close:hover {
162
157
  color: var(--sprout-text);
@@ -179,9 +174,7 @@
179
174
  transition: opacity var(--sprout-motion-fast) var(--sprout-motion-ease);
180
175
  }
181
176
  .sprout-toast[data-starting-style],
182
- .sprout-toast[data-ending-style]:not([data-limited]):not(
183
- [data-swipe-direction]
184
- ) {
177
+ .sprout-toast[data-ending-style]:not([data-limited]):not([data-swipe-direction]) {
185
178
  transform: translateY(150%);
186
179
  }
187
180
  }