@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
@@ -0,0 +1,243 @@
1
+ @layer components {
2
+ .sprout-record-list {
3
+ --sprout-record-list-pad-y: 0.75rem;
4
+ --sprout-record-list-pad-x: 1rem;
5
+ container-type: inline-size;
6
+ box-sizing: border-box;
7
+ display: flex;
8
+ flex-direction: column;
9
+ min-width: 0;
10
+ border: 1px solid var(--sprout-line);
11
+ border-radius: var(--sprout-radius-panel);
12
+ background: var(--sprout-surface);
13
+ color: var(--sprout-text);
14
+ font-family: var(--sprout-font);
15
+ font-size: var(--sprout-text-sm);
16
+ line-height: 1.25rem;
17
+ overflow: hidden;
18
+ }
19
+ .sprout-record-list[data-density='sm'] {
20
+ --sprout-record-list-pad-y: 0.5rem;
21
+ --sprout-record-list-pad-x: 0.75rem;
22
+ }
23
+
24
+ .sprout-record-list-items {
25
+ margin: 0;
26
+ padding: 0;
27
+ list-style: none;
28
+ }
29
+ .sprout-record-list-items[aria-busy='true'] {
30
+ opacity: 0.55;
31
+ }
32
+
33
+ .sprout-record-list-item {
34
+ display: grid;
35
+ grid-template-columns: minmax(0, 1fr) auto auto;
36
+ grid-template-areas:
37
+ 'title badges actions'
38
+ 'values badges actions';
39
+ align-items: center;
40
+ column-gap: 0.75rem;
41
+ min-height: 2.75rem;
42
+ padding: var(--sprout-record-list-pad-y) var(--sprout-record-list-pad-x);
43
+ border-bottom: 1px solid var(--sprout-line);
44
+ outline: none;
45
+ }
46
+ .sprout-record-list-item:last-child {
47
+ border-bottom: 0;
48
+ }
49
+ .sprout-record-list-item[data-openable] {
50
+ cursor: pointer;
51
+ }
52
+ @media (hover: hover) {
53
+ .sprout-record-list-item:hover {
54
+ background-color: var(--sprout-hover);
55
+ }
56
+ }
57
+ .sprout-record-list-item:has([aria-expanded='true']),
58
+ .sprout-record-list-item:has(:focus-visible) {
59
+ background-color: var(--sprout-hover);
60
+ }
61
+ .sprout-record-list-item:focus-visible {
62
+ background-color: var(--sprout-hover);
63
+ outline: var(--sprout-focus-width) solid var(--sprout-focus-ring);
64
+ outline-offset: calc(var(--sprout-focus-width) * -1);
65
+ border-radius: 2px;
66
+ }
67
+
68
+ .sprout-record-list-title {
69
+ grid-area: title;
70
+ min-width: 0;
71
+ overflow: hidden;
72
+ font-weight: 500;
73
+ text-overflow: ellipsis;
74
+ white-space: nowrap;
75
+ }
76
+
77
+ .sprout-record-list-values {
78
+ grid-area: values;
79
+ display: flex;
80
+ flex-wrap: wrap;
81
+ gap: 0.25rem 1rem;
82
+ min-width: 0;
83
+ margin: 0.25rem 0 0;
84
+ font-size: var(--sprout-text-xs);
85
+ line-height: 1rem;
86
+ font-variant-numeric: tabular-nums;
87
+ }
88
+ .sprout-record-list-value {
89
+ display: flex;
90
+ align-items: baseline;
91
+ gap: 0.375rem;
92
+ min-width: 0;
93
+ max-width: 16rem;
94
+ }
95
+ .sprout-record-list-value > dt {
96
+ flex-shrink: 0;
97
+ color: var(--sprout-muted);
98
+ }
99
+ .sprout-record-list-value > dd {
100
+ min-width: 0;
101
+ margin: 0;
102
+ overflow: hidden;
103
+ color: var(--sprout-text);
104
+ font-weight: 500;
105
+ text-overflow: ellipsis;
106
+ white-space: nowrap;
107
+ }
108
+
109
+ .sprout-record-list-badges {
110
+ grid-area: badges;
111
+ display: flex;
112
+ flex-wrap: wrap;
113
+ justify-content: flex-end;
114
+ align-items: center;
115
+ gap: 0.25rem;
116
+ min-width: 0;
117
+ max-width: 18rem;
118
+ }
119
+
120
+ .sprout-record-list-actions {
121
+ grid-area: actions;
122
+ display: flex;
123
+ align-items: center;
124
+ gap: 0.25rem;
125
+ margin-inline-end: -0.25rem;
126
+ }
127
+
128
+ @container (max-width: 40rem) {
129
+ .sprout-record-list-item {
130
+ grid-template-columns: minmax(0, 1fr) auto;
131
+ grid-template-areas:
132
+ 'title actions'
133
+ 'values values'
134
+ 'badges badges';
135
+ align-items: start;
136
+ }
137
+ .sprout-record-list-title {
138
+ display: -webkit-box;
139
+ -webkit-box-orient: vertical;
140
+ -webkit-line-clamp: 2;
141
+ align-self: center;
142
+ white-space: normal;
143
+ overflow-wrap: anywhere;
144
+ }
145
+ .sprout-record-list-badges {
146
+ justify-content: flex-start;
147
+ max-width: none;
148
+ margin-top: 0.5rem;
149
+ }
150
+ .sprout-record-list-value {
151
+ max-width: 100%;
152
+ }
153
+ }
154
+
155
+ .sprout-record-list-state {
156
+ min-width: 0;
157
+ outline: none;
158
+ }
159
+ .sprout-record-list-empty-text {
160
+ margin: 0;
161
+ padding: 1.5rem var(--sprout-record-list-pad-x);
162
+ color: var(--sprout-muted);
163
+ text-align: center;
164
+ }
165
+
166
+ .sprout-record-list-skeleton {
167
+ gap: 0;
168
+ }
169
+ .sprout-record-list-skeleton-row {
170
+ display: flex;
171
+ align-items: center;
172
+ gap: 0.75rem;
173
+ padding: var(--sprout-record-list-pad-y) var(--sprout-record-list-pad-x);
174
+ border-bottom: 1px solid var(--sprout-line);
175
+ }
176
+ .sprout-record-list-skeleton-row:last-of-type {
177
+ border-bottom: 0;
178
+ }
179
+ .sprout-record-list-skeleton-main {
180
+ display: grid;
181
+ flex: 1;
182
+ gap: 0.5rem;
183
+ min-width: 0;
184
+ }
185
+ .sprout-record-list .sprout-record-list-skeleton-title {
186
+ width: min(40%, 16rem);
187
+ height: 14px;
188
+ }
189
+ .sprout-record-list .sprout-record-list-skeleton-values {
190
+ width: min(70%, 28rem);
191
+ height: 10px;
192
+ }
193
+
194
+ .sprout-record-list-footer {
195
+ display: flex;
196
+ justify-content: center;
197
+ min-width: 0;
198
+ padding: 0.5rem var(--sprout-record-list-pad-x);
199
+ border-top: 1px solid var(--sprout-line);
200
+ }
201
+ .sprout-record-list-footer > * {
202
+ margin-inline: 0;
203
+ }
204
+
205
+ .sprout-record-list-sr-only {
206
+ position: absolute;
207
+ width: 1px;
208
+ height: 1px;
209
+ overflow: hidden;
210
+ clip-path: inset(50%);
211
+ white-space: nowrap;
212
+ }
213
+
214
+ @media (prefers-reduced-motion: no-preference) {
215
+ .sprout-record-list-item {
216
+ transition: background-color var(--sprout-motion-fast) var(--sprout-motion-ease);
217
+ }
218
+ .sprout-record-list-items {
219
+ transition: opacity var(--sprout-motion-normal) var(--sprout-motion-ease);
220
+ }
221
+ .sprout-record-list-state,
222
+ .sprout-record-list-item {
223
+ animation: sprout-record-list-in var(--sprout-motion-normal) var(--sprout-motion-ease);
224
+ }
225
+ }
226
+
227
+ @keyframes sprout-record-list-in {
228
+ from {
229
+ opacity: 0.4;
230
+ }
231
+ }
232
+
233
+ @media (forced-colors: active) {
234
+ .sprout-record-list,
235
+ .sprout-record-list-item,
236
+ .sprout-record-list-footer {
237
+ border-color: CanvasText;
238
+ }
239
+ .sprout-record-list-item:focus-visible {
240
+ outline-color: Highlight;
241
+ }
242
+ }
243
+ }
@@ -7,7 +7,7 @@
7
7
  min-height: 0;
8
8
  overflow: hidden;
9
9
  }
10
- .sprout-resizable-group[data-orientation="vertical"] {
10
+ .sprout-resizable-group[data-orientation='vertical'] {
11
11
  flex-direction: column;
12
12
  }
13
13
 
@@ -30,26 +30,26 @@
30
30
  touch-action: none;
31
31
  user-select: none;
32
32
  }
33
- .sprout-resizable-handle[data-orientation="vertical"] {
33
+ .sprout-resizable-handle[data-orientation='vertical'] {
34
34
  width: 1px;
35
35
  cursor: col-resize;
36
36
  }
37
- .sprout-resizable-handle[data-orientation="horizontal"] {
37
+ .sprout-resizable-handle[data-orientation='horizontal'] {
38
38
  height: 1px;
39
39
  cursor: row-resize;
40
40
  }
41
41
  /* A wider invisible hit area keeps the 1px line easy to grab. */
42
42
  .sprout-resizable-handle::after {
43
- content: "";
43
+ content: '';
44
44
  position: absolute;
45
45
  }
46
- .sprout-resizable-handle[data-orientation="vertical"]::after {
46
+ .sprout-resizable-handle[data-orientation='vertical']::after {
47
47
  inset-block: 0;
48
48
  left: 50%;
49
49
  width: 9px;
50
50
  transform: translateX(-50%);
51
51
  }
52
- .sprout-resizable-handle[data-orientation="horizontal"]::after {
52
+ .sprout-resizable-handle[data-orientation='horizontal']::after {
53
53
  inset-inline: 0;
54
54
  top: 50%;
55
55
  height: 9px;
@@ -71,12 +71,11 @@
71
71
  border-radius: 999px;
72
72
  background: var(--sprout-border);
73
73
  }
74
- .sprout-resizable-handle[data-orientation="vertical"] .sprout-resizable-grip {
74
+ .sprout-resizable-handle[data-orientation='vertical'] .sprout-resizable-grip {
75
75
  width: 6px;
76
76
  height: 24px;
77
77
  }
78
- .sprout-resizable-handle[data-orientation="horizontal"]
79
- .sprout-resizable-grip {
78
+ .sprout-resizable-handle[data-orientation='horizontal'] .sprout-resizable-grip {
80
79
  width: 24px;
81
80
  height: 6px;
82
81
  }
@@ -89,10 +88,10 @@
89
88
  }
90
89
 
91
90
  @media (pointer: coarse) {
92
- .sprout-resizable-handle[data-orientation="vertical"]::after {
91
+ .sprout-resizable-handle[data-orientation='vertical']::after {
93
92
  width: 24px;
94
93
  }
95
- .sprout-resizable-handle[data-orientation="horizontal"]::after {
94
+ .sprout-resizable-handle[data-orientation='horizontal']::after {
96
95
  height: 24px;
97
96
  }
98
97
  }
@@ -90,10 +90,10 @@
90
90
  .sprout-result-card-status > svg {
91
91
  flex-shrink: 0;
92
92
  }
93
- .sprout-result-card-status[data-tone="success"] {
93
+ .sprout-result-card-status[data-tone='success'] {
94
94
  color: var(--sprout-success);
95
95
  }
96
- .sprout-result-card-status[data-tone="error"] {
96
+ .sprout-result-card-status[data-tone='error'] {
97
97
  color: var(--sprout-danger);
98
98
  }
99
99
  .sprout-result-card-action {
@@ -124,7 +124,7 @@
124
124
  .sprout-result-card-app + .sprout-result-card-app {
125
125
  margin-inline-start: -8px;
126
126
  }
127
- .sprout-result-card-action .sprout-button-size-result-card {
127
+ .sprout-result-card-action .sprout-button {
128
128
  height: 44px;
129
129
  }
130
130
  }
@@ -202,7 +202,7 @@
202
202
  flex-shrink: 0;
203
203
  color: var(--sprout-muted);
204
204
  }
205
- .sprout-result-app-action[data-state="failed"] .sprout-result-app-prefix {
205
+ .sprout-result-app-action[data-state='failed'] .sprout-result-app-prefix {
206
206
  color: var(--sprout-danger);
207
207
  }
208
208
  .sprout-result-app-label {
@@ -0,0 +1,80 @@
1
+ @layer components {
2
+ .sprout-result-notice {
3
+ box-sizing: border-box;
4
+ display: flex;
5
+ flex-wrap: wrap;
6
+ align-items: center;
7
+ gap: 4px 12px;
8
+ width: 100%;
9
+ min-width: 0;
10
+ min-height: 36px;
11
+ padding: 3px 3px 3px 10px;
12
+ border: 1px solid var(--sprout-line);
13
+ border-radius: calc(var(--sprout-radius-control) + 2px);
14
+ background: var(--sprout-surface);
15
+ color: var(--sprout-muted);
16
+ font-family: var(--sprout-font);
17
+ font-size: var(--sprout-text-sm);
18
+ line-height: 1.25rem;
19
+ font-variant-numeric: tabular-nums;
20
+ }
21
+ .sprout-result-notice:not(:has(> [data-slot='result-notice-action'])) {
22
+ padding-inline-end: 10px;
23
+ }
24
+
25
+ .sprout-result-notice-content {
26
+ display: flex;
27
+ flex: 1 1 16rem;
28
+ align-items: flex-start;
29
+ gap: 8px;
30
+ min-width: 0;
31
+ padding-block: 4px;
32
+ }
33
+
34
+ .sprout-result-notice-icon {
35
+ flex-shrink: 0;
36
+ width: 16px;
37
+ height: 16px;
38
+ translate: 0 2px;
39
+ }
40
+
41
+ .sprout-result-notice-message {
42
+ min-width: 0;
43
+ margin: 0;
44
+ overflow-wrap: anywhere;
45
+ }
46
+ .sprout-result-notice-message strong {
47
+ color: var(--sprout-text);
48
+ font-weight: 500;
49
+ }
50
+
51
+ .sprout-result-notice-action {
52
+ display: flex;
53
+ flex-wrap: wrap;
54
+ align-items: center;
55
+ flex-shrink: 0;
56
+ gap: 8px;
57
+ min-width: 0;
58
+ /* Lines a wrapped ghost button's label up with the message text. */
59
+ padding-inline-start: 14px;
60
+ }
61
+
62
+ @media (forced-colors: active) {
63
+ .sprout-result-notice {
64
+ border-color: CanvasText;
65
+ }
66
+ }
67
+
68
+ @media (prefers-reduced-motion: no-preference) {
69
+ .sprout-result-notice {
70
+ animation: sprout-result-notice-in var(--sprout-motion-normal) var(--sprout-motion-ease);
71
+ }
72
+ }
73
+
74
+ @keyframes sprout-result-notice-in {
75
+ from {
76
+ opacity: 0;
77
+ transform: translateY(-2px);
78
+ }
79
+ }
80
+ }
@@ -76,7 +76,7 @@
76
76
  }
77
77
  /* The whole header is the click target; the title button stays the named control. */
78
78
  .sprout-review-card-trigger::after {
79
- content: "";
79
+ content: '';
80
80
  position: absolute;
81
81
  inset: 0;
82
82
  }
@@ -228,8 +228,7 @@
228
228
 
229
229
  @media (prefers-reduced-motion: no-preference) {
230
230
  .sprout-review-card-header {
231
- transition: background-color var(--sprout-motion-fast, 120ms)
232
- var(--sprout-motion-ease, ease-out);
231
+ transition: background-color var(--sprout-motion-fast, 120ms) var(--sprout-motion-ease, ease-out);
233
232
  }
234
233
  }
235
234
  }
@@ -5,7 +5,7 @@
5
5
  min-width: 0;
6
6
  color: var(--sprout-text);
7
7
  }
8
- .sprout-rich-text-editor-size-compact,
8
+ .sprout-rich-text-editor-size-sm,
9
9
  .sprout-rich-text-editor-condensed {
10
10
  display: flex;
11
11
  align-items: flex-end;
@@ -21,7 +21,7 @@
21
21
  /* Holds the editor's height before Tiptap mounts on the client. */
22
22
  min-height: 5rem;
23
23
  }
24
- .sprout-rich-text-editor-size-compact > .sprout-rich-text-editor-body,
24
+ .sprout-rich-text-editor-size-sm > .sprout-rich-text-editor-body,
25
25
  .sprout-rich-text-editor-condensed > .sprout-rich-text-editor-body {
26
26
  min-height: 2.5rem;
27
27
  }
@@ -41,7 +41,7 @@
41
41
  outline: 0 solid transparent;
42
42
  outline-offset: 0;
43
43
  }
44
- .sprout-rich-text-editor-size-compact .sprout-rich-text-editor-content {
44
+ .sprout-rich-text-editor-size-sm .sprout-rich-text-editor-content {
45
45
  min-height: 2.5rem;
46
46
  max-height: 8rem;
47
47
  font-size: var(--sprout-text-sm);
@@ -70,8 +70,7 @@
70
70
  pointer-events: none;
71
71
  }
72
72
 
73
- .sprout-rich-text-editor-content
74
- :where(p, h1, h2, h3, blockquote, pre, ul, ol) {
73
+ .sprout-rich-text-editor-content :where(p, h1, h2, h3, blockquote, pre, ul, ol) {
75
74
  margin: 0;
76
75
  }
77
76
  .sprout-rich-text-editor-content :where(h1, h2, h3) {
@@ -210,13 +210,13 @@
210
210
  color: var(--sprout-text);
211
211
  box-shadow: var(--sprout-shadow-control);
212
212
  }
213
- .sprout-schema-table[data-state="new"] {
213
+ .sprout-schema-table[data-state='new'] {
214
214
  border-top-color: var(--sprout-success);
215
215
  }
216
- .sprout-schema-table[data-state="changed"] {
216
+ .sprout-schema-table[data-state='changed'] {
217
217
  border-top-color: var(--sprout-warning);
218
218
  }
219
- .sprout-schema-table[data-state="linked"] {
219
+ .sprout-schema-table[data-state='linked'] {
220
220
  border-style: dashed;
221
221
  border-top-color: var(--sprout-line);
222
222
  }
@@ -232,11 +232,7 @@
232
232
  height: 44px;
233
233
  padding: 0 12px;
234
234
  border-bottom: 1px solid var(--sprout-line);
235
- background: color-mix(
236
- in oklab,
237
- var(--sprout-hover) 45%,
238
- var(--sprout-surface)
239
- );
235
+ background: color-mix(in oklab, var(--sprout-hover) 45%, var(--sprout-surface));
240
236
  }
241
237
  .sprout-schema-table-title {
242
238
  flex: 1;
@@ -271,13 +267,13 @@
271
267
  .sprout-schema-field:last-child {
272
268
  border-bottom: 0;
273
269
  }
274
- .sprout-schema-field[data-change="added"] {
270
+ .sprout-schema-field[data-change='added'] {
275
271
  background: var(--sprout-success-subtle);
276
272
  }
277
- .sprout-schema-field[data-change="changed"] {
273
+ .sprout-schema-field[data-change='changed'] {
278
274
  background: var(--sprout-warning-subtle);
279
275
  }
280
- .sprout-schema-field[data-change="removed"] {
276
+ .sprout-schema-field[data-change='removed'] {
281
277
  background: var(--sprout-danger-subtle);
282
278
  }
283
279
  .sprout-schema-field-line {
@@ -288,7 +284,7 @@
288
284
  font-size: 0.8125rem;
289
285
  line-height: 1.25rem;
290
286
  }
291
- .sprout-schema-field[data-change="removed"] .sprout-schema-field-line {
287
+ .sprout-schema-field[data-change='removed'] .sprout-schema-field-line {
292
288
  text-decoration: line-through;
293
289
  }
294
290
  .sprout-schema-field-key {
@@ -382,15 +378,15 @@
382
378
  height: 10px;
383
379
  border-radius: 2px;
384
380
  }
385
- .sprout-schema-legend-swatch[data-change="added"] {
381
+ .sprout-schema-legend-swatch[data-change='added'] {
386
382
  background: var(--sprout-success-subtle);
387
383
  box-shadow: 0 0 0 1px var(--sprout-success);
388
384
  }
389
- .sprout-schema-legend-swatch[data-change="changed"] {
385
+ .sprout-schema-legend-swatch[data-change='changed'] {
390
386
  background: var(--sprout-warning-subtle);
391
387
  box-shadow: 0 0 0 1px var(--sprout-warning);
392
388
  }
393
- .sprout-schema-legend-swatch[data-change="removed"] {
389
+ .sprout-schema-legend-swatch[data-change='removed'] {
394
390
  background: var(--sprout-danger-subtle);
395
391
  box-shadow: 0 0 0 1px var(--sprout-danger);
396
392
  }
@@ -409,8 +405,7 @@
409
405
 
410
406
  @media (prefers-reduced-motion: no-preference) {
411
407
  .sprout-schema-table {
412
- transition: box-shadow var(--sprout-motion-normal)
413
- var(--sprout-motion-ease);
408
+ transition: box-shadow var(--sprout-motion-normal) var(--sprout-motion-ease);
414
409
  }
415
410
  .sprout-schema-flow .react-flow__node {
416
411
  transition: outline-color var(--sprout-motion-fast) ease-out;
@@ -3,13 +3,13 @@
3
3
  position: relative;
4
4
  min-width: 0;
5
5
  }
6
- .sprout-scroll-area[data-size="sm"] {
6
+ .sprout-scroll-area[data-size='sm'] {
7
7
  height: 10rem;
8
8
  }
9
- .sprout-scroll-area[data-size="md"] {
9
+ .sprout-scroll-area[data-size='md'] {
10
10
  height: 16rem;
11
11
  }
12
- .sprout-scroll-area[data-variant="table"] {
12
+ .sprout-scroll-area[data-variant='table'] {
13
13
  width: 100%;
14
14
  border: 1px solid var(--sprout-input);
15
15
  border-radius: calc(var(--sprout-radius-control) + 2px);
@@ -26,7 +26,7 @@
26
26
  outline: var(--sprout-focus-width) solid var(--sprout-focus-ring);
27
27
  outline-offset: -1px;
28
28
  }
29
- .sprout-scroll-area[data-variant="table"] > .sprout-scroll-area-viewport {
29
+ .sprout-scroll-area[data-variant='table'] > .sprout-scroll-area-viewport {
30
30
  max-height: 60dvh;
31
31
  }
32
32
 
@@ -37,12 +37,12 @@
37
37
  touch-action: none;
38
38
  user-select: none;
39
39
  }
40
- .sprout-scroll-area-scrollbar[data-orientation="vertical"] {
40
+ .sprout-scroll-area-scrollbar[data-orientation='vertical'] {
41
41
  width: 10px;
42
42
  height: 100%;
43
43
  border-left: 1px solid transparent;
44
44
  }
45
- .sprout-scroll-area-scrollbar[data-orientation="horizontal"] {
45
+ .sprout-scroll-area-scrollbar[data-orientation='horizontal'] {
46
46
  height: 10px;
47
47
  flex-direction: column;
48
48
  border-top: 1px solid transparent;
@@ -66,12 +66,10 @@
66
66
 
67
67
  @media (prefers-reduced-motion: no-preference) {
68
68
  .sprout-scroll-area-viewport {
69
- transition: outline-color var(--sprout-motion-fast)
70
- var(--sprout-motion-ease);
69
+ transition: outline-color var(--sprout-motion-fast) var(--sprout-motion-ease);
71
70
  }
72
71
  .sprout-scroll-area-thumb {
73
- transition: background-color var(--sprout-motion-fast)
74
- var(--sprout-motion-ease);
72
+ transition: background-color var(--sprout-motion-fast) var(--sprout-motion-ease);
75
73
  }
76
74
  }
77
75
  }
@@ -253,11 +253,7 @@
253
253
  height: 44px;
254
254
  padding-inline: 16px;
255
255
  border-top: 1px solid var(--sprout-line);
256
- background: color-mix(
257
- in oklab,
258
- var(--sprout-canvas) 70%,
259
- var(--sprout-surface)
260
- );
256
+ background: color-mix(in oklab, var(--sprout-canvas) 70%, var(--sprout-surface));
261
257
  color: var(--sprout-muted);
262
258
  font-size: var(--sprout-text-xs);
263
259
  line-height: 1rem;
@@ -4,8 +4,7 @@
4
4
  }
5
5
  @media (prefers-reduced-motion: no-preference) {
6
6
  .sprout-search-field-clear {
7
- animation: sprout-search-field-clear-in var(--sprout-motion-fast, 120ms)
8
- var(--sprout-motion-ease, ease-out);
7
+ animation: sprout-search-field-clear-in var(--sprout-motion-fast, 120ms) var(--sprout-motion-ease, ease-out);
9
8
  }
10
9
  }
11
10
  @keyframes sprout-search-field-clear-in {