@lostgradient/cinder 0.5.0 → 0.6.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 (2051) hide show
  1. package/CHANGELOG.md +18 -0
  2. package/README.md +31 -1
  3. package/components.json +64 -2
  4. package/dist/cli/best-practices.d.ts +2 -0
  5. package/dist/cli/index.d.ts +14 -0
  6. package/dist/cli/index.js +978 -0
  7. package/dist/cli/knowledge.d.ts +23 -0
  8. package/dist/cli/manifest-validation.d.ts +2 -0
  9. package/dist/cli/mcp.d.ts +2 -0
  10. package/dist/cli/output.d.ts +21 -0
  11. package/dist/cli/types.d.ts +107 -0
  12. package/dist/components/action-row/action-row.css +133 -0
  13. package/dist/components/action-row/action-row.css.d.ts +1 -0
  14. package/dist/components/action-row/action-row.schema.d.ts +3 -0
  15. package/dist/components/action-row/action-row.schema.js +126 -0
  16. package/dist/components/action-row/action-row.svelte.d.ts +19 -0
  17. package/dist/components/action-row/action-row.types.d.ts +45 -0
  18. package/dist/components/action-row/action-row.variables.d.ts +2 -0
  19. package/dist/components/action-row/action-row.variables.js +61 -0
  20. package/dist/components/action-row/index.d.ts +5 -0
  21. package/dist/components/action-row/index.js +183 -0
  22. package/dist/components/approval-card/approval-card.css +31 -1
  23. package/dist/components/approval-card/approval-card.schema.js +6 -1
  24. package/dist/components/approval-card/approval-card.svelte.d.ts +1 -1
  25. package/dist/components/approval-card/approval-card.types.d.ts +20 -0
  26. package/dist/components/approval-card/index.d.ts +1 -1
  27. package/dist/components/approval-card/index.js +1392 -1218
  28. package/dist/components/autocomplete/index.js +79 -5
  29. package/dist/components/avatar-group/index.js +79 -5
  30. package/dist/components/badge/index.js +2 -2
  31. package/dist/components/bento-cell/index.d.ts +1 -1
  32. package/dist/components/blog-section/blog-section.css +2 -1
  33. package/dist/components/callout/callout.schema.js +6 -2
  34. package/dist/components/callout/callout.svelte.d.ts +2 -2
  35. package/dist/components/callout/callout.types.d.ts +25 -13
  36. package/dist/components/callout/index.d.ts +1 -1
  37. package/dist/components/callout/index.js +102 -39
  38. package/dist/components/card/card.css +53 -1
  39. package/dist/components/card/card.schema.js +5 -1
  40. package/dist/components/card/card.svelte.d.ts +1 -1
  41. package/dist/components/card/card.types.d.ts +3 -0
  42. package/dist/components/card/index.d.ts +1 -1
  43. package/dist/components/card/index.js +234 -58
  44. package/dist/components/chat/index.js +400 -14924
  45. package/dist/components/chat-conversation-header/index.js +247 -14773
  46. package/dist/components/chat-conversation-list/index.js +161 -14761
  47. package/dist/components/checkbox/checkbox.schema.js +5 -1
  48. package/dist/components/checkbox/checkbox.types.d.ts +2 -0
  49. package/dist/components/checkbox/index.js +6 -2
  50. package/dist/components/code-block/code-block.css +56 -2
  51. package/dist/components/code-block/index.js +3 -3
  52. package/dist/components/combobox/index.js +79 -5
  53. package/dist/components/command-menu/index.js +79 -5
  54. package/dist/components/context-menu/index.js +79 -5
  55. package/dist/components/copy-button/index.js +3 -3
  56. package/dist/components/data-table/index.js +6 -2
  57. package/dist/components/date-picker/index.js +79 -5
  58. package/dist/components/date-range-field/index.js +79 -5
  59. package/dist/components/diff-viewer/index.js +10 -10
  60. package/dist/components/dropdown/index.js +79 -5
  61. package/dist/components/dropdown-menu/index.js +79 -5
  62. package/dist/components/event-stream-viewer/index.js +3 -3
  63. package/dist/components/experimental/json-viewer/index.d.ts +3 -3
  64. package/dist/components/experimental/message/index.d.ts +3 -3
  65. package/dist/components/feature-section/feature-section.css +3 -2
  66. package/dist/components/footer/footer.css +2 -1
  67. package/dist/components/hero-section/hero-section.css +2 -1
  68. package/dist/components/hover-card/index.js +79 -5
  69. package/dist/components/json-schema-editor/index.js +97 -18
  70. package/dist/components/logo-cloud/logo-cloud.css +3 -2
  71. package/dist/components/markdown-editor/index.js +115 -39
  72. package/dist/components/menu-bar/index.js +79 -5
  73. package/dist/components/navigation-bar/index.d.ts +1 -1
  74. package/dist/components/navigation-bar/index.js +56 -31
  75. package/dist/components/navigation-bar/navigation-bar.css +15 -0
  76. package/dist/components/navigation-bar/navigation-bar.schema.js +6 -1
  77. package/dist/components/navigation-bar/navigation-bar.svelte.d.ts +1 -1
  78. package/dist/components/navigation-bar/navigation-bar.types.d.ts +8 -0
  79. package/dist/components/newsletter-section/newsletter-section.css +2 -1
  80. package/dist/components/pagination/index.js +9 -5
  81. package/dist/components/pagination/pagination.schema.js +12 -3
  82. package/dist/components/pagination/pagination.types.d.ts +6 -2
  83. package/dist/components/payload-inspector/index.js +6 -5
  84. package/dist/components/popover/index.js +79 -5
  85. package/dist/components/portal/index.js +79 -5
  86. package/dist/components/portal/portal.utilities.svelte.d.ts +25 -3
  87. package/dist/components/pricing-section/pricing-section.css +2 -1
  88. package/dist/components/review-editor/index.js +157 -77
  89. package/dist/components/run-step-timeline/index.js +2 -2
  90. package/dist/components/schema-form/index.js +6 -2
  91. package/dist/components/selection-popover/index.js +79 -5
  92. package/dist/components/sidebar/index.js +74 -106
  93. package/dist/components/sidebar/sidebar.css +14 -0
  94. package/dist/components/source-diff-viewer/index.d.ts +6 -0
  95. package/dist/components/source-diff-viewer/index.js +886 -0
  96. package/dist/components/source-diff-viewer/source-diff-viewer.css +129 -0
  97. package/dist/components/source-diff-viewer/source-diff-viewer.css.d.ts +1 -0
  98. package/dist/components/source-diff-viewer/source-diff-viewer.schema.d.ts +3 -0
  99. package/dist/components/source-diff-viewer/source-diff-viewer.schema.js +96 -0
  100. package/dist/components/source-diff-viewer/source-diff-viewer.svelte.d.ts +20 -0
  101. package/dist/components/source-diff-viewer/source-diff-viewer.types.d.ts +44 -0
  102. package/dist/components/source-diff-viewer/source-diff-viewer.utilities.d.ts +6 -0
  103. package/dist/components/source-diff-viewer/source-diff-viewer.variables.d.ts +2 -0
  104. package/dist/components/source-diff-viewer/source-diff-viewer.variables.js +61 -0
  105. package/dist/components/tabs/index.js +3 -2
  106. package/dist/components/tabs/tabs.css +6 -0
  107. package/dist/components/tabs/tabs.schema.js +6 -1
  108. package/dist/components/tabs/tabs.types.d.ts +5 -0
  109. package/dist/components/team-section/index.js +407 -155
  110. package/dist/components/team-section/team-section.css +2 -1
  111. package/dist/components/testimonial-section/index.js +314 -136
  112. package/dist/components/testimonial-section/testimonial-section.css +2 -1
  113. package/dist/components/toolbar/index.js +9 -2
  114. package/dist/components/toolbar/toolbar-group.svelte.d.ts +2 -2
  115. package/dist/components/toolbar/toolbar.css +10 -11
  116. package/dist/components/toolbar/toolbar.schema.js +2 -2
  117. package/dist/components/toolbar/toolbar.types.d.ts +2 -2
  118. package/dist/components/tooltip/index.js +79 -5
  119. package/dist/index.d.ts +8 -8
  120. package/dist/index.js +61813 -79580
  121. package/dist/server/components/access-gate/access-gate.schema.js +1 -1
  122. package/dist/server/components/access-gate/access-gate.variables.js +1 -1
  123. package/dist/server/components/access-gate/index.js +4 -3
  124. package/dist/server/components/accordion/accordion.schema.js +1 -1
  125. package/dist/server/components/accordion/accordion.variables.js +1 -1
  126. package/dist/server/components/accordion/index.js +1 -1
  127. package/dist/server/components/accordion-item/accordion-item.schema.js +1 -1
  128. package/dist/server/components/accordion-item/accordion-item.variables.js +1 -1
  129. package/dist/server/components/accordion-item/index.js +1 -1
  130. package/dist/server/components/action-row/action-row.schema.js +75 -0
  131. package/dist/server/components/action-row/action-row.variables.js +10 -0
  132. package/dist/server/components/action-row/index.js +12 -0
  133. package/dist/server/components/alert/alert.schema.js +1 -1
  134. package/dist/server/components/alert/alert.variables.js +1 -1
  135. package/dist/server/components/alert/index.js +1 -1
  136. package/dist/server/components/alert-dialog/alert-dialog.schema.js +1 -1
  137. package/dist/server/components/alert-dialog/alert-dialog.variables.js +1 -1
  138. package/dist/server/components/alert-dialog/index.js +1 -1
  139. package/dist/server/components/approval-card/approval-card.schema.js +7 -2
  140. package/dist/server/components/approval-card/approval-card.variables.js +1 -1
  141. package/dist/server/components/approval-card/index.js +13 -10
  142. package/dist/server/components/area-chart/area-chart.schema.js +1 -1
  143. package/dist/server/components/area-chart/area-chart.variables.js +1 -1
  144. package/dist/server/components/area-chart/index.js +1 -1
  145. package/dist/server/components/aspect-ratio/aspect-ratio.schema.js +1 -1
  146. package/dist/server/components/aspect-ratio/aspect-ratio.variables.js +1 -1
  147. package/dist/server/components/aspect-ratio/index.js +1 -1
  148. package/dist/server/components/autocomplete/autocomplete.schema.js +1 -1
  149. package/dist/server/components/autocomplete/autocomplete.variables.js +1 -1
  150. package/dist/server/components/autocomplete/index.js +5 -5
  151. package/dist/server/components/avatar/avatar.schema.js +1 -1
  152. package/dist/server/components/avatar/avatar.variables.js +1 -1
  153. package/dist/server/components/avatar/index.js +1 -1
  154. package/dist/server/components/avatar-group/avatar-group.schema.js +1 -1
  155. package/dist/server/components/avatar-group/avatar-group.variables.js +1 -1
  156. package/dist/server/components/avatar-group/index.js +5 -5
  157. package/dist/server/components/backdrop/backdrop.schema.js +1 -1
  158. package/dist/server/components/backdrop/backdrop.variables.js +1 -1
  159. package/dist/server/components/backdrop/index.js +1 -1
  160. package/dist/server/components/badge/badge.schema.js +1 -1
  161. package/dist/server/components/badge/badge.variables.js +1 -1
  162. package/dist/server/components/badge/index.js +3 -3
  163. package/dist/server/components/banner/banner.schema.js +1 -1
  164. package/dist/server/components/banner/banner.variables.js +1 -1
  165. package/dist/server/components/banner/index.js +1 -1
  166. package/dist/server/components/bar-chart/bar-chart.schema.js +1 -1
  167. package/dist/server/components/bar-chart/bar-chart.variables.js +1 -1
  168. package/dist/server/components/bar-chart/index.js +1 -1
  169. package/dist/server/components/bento-cell/bento-cell.schema.js +1 -1
  170. package/dist/server/components/bento-cell/bento-cell.variables.js +1 -1
  171. package/dist/server/components/bento-cell/index.js +1 -1
  172. package/dist/server/components/bento-grid/bento-grid.schema.js +1 -1
  173. package/dist/server/components/bento-grid/bento-grid.variables.js +1 -1
  174. package/dist/server/components/bento-grid/index.js +1 -1
  175. package/dist/server/components/blog-section/blog-section.schema.js +1 -1
  176. package/dist/server/components/blog-section/blog-section.variables.js +1 -1
  177. package/dist/server/components/blog-section/index.js +1 -1
  178. package/dist/server/components/breadcrumbs/breadcrumbs.schema.js +1 -1
  179. package/dist/server/components/breadcrumbs/breadcrumbs.variables.js +1 -1
  180. package/dist/server/components/breadcrumbs/index.js +1 -1
  181. package/dist/server/components/button/button.schema.js +1 -1
  182. package/dist/server/components/button/button.variables.js +1 -1
  183. package/dist/server/components/button/index.js +1 -1
  184. package/dist/server/components/button-group/button-group.schema.js +1 -1
  185. package/dist/server/components/button-group/button-group.variables.js +1 -1
  186. package/dist/server/components/button-group/index.js +1 -1
  187. package/dist/server/components/calendar/calendar.schema.js +1 -1
  188. package/dist/server/components/calendar/calendar.variables.js +1 -1
  189. package/dist/server/components/calendar/index.js +1 -1
  190. package/dist/server/components/callout/callout.schema.js +7 -3
  191. package/dist/server/components/callout/callout.variables.js +1 -1
  192. package/dist/server/components/callout/index.js +2 -2
  193. package/dist/server/components/capability-gate/capability-gate.schema.js +1 -1
  194. package/dist/server/components/capability-gate/capability-gate.variables.js +1 -1
  195. package/dist/server/components/capability-gate/index.js +1 -1
  196. package/dist/server/components/card/card.schema.js +6 -2
  197. package/dist/server/components/card/card.variables.js +1 -1
  198. package/dist/server/components/card/index.js +8 -4
  199. package/dist/server/components/carousel/carousel.schema.js +1 -1
  200. package/dist/server/components/carousel/carousel.variables.js +1 -1
  201. package/dist/server/components/carousel/index.js +1 -1
  202. package/dist/server/components/chat/chat.schema.js +1 -1
  203. package/dist/server/components/chat/chat.variables.js +1 -1
  204. package/dist/server/components/chat/index.js +19 -17
  205. package/dist/server/components/chat-conversation-header/chat-conversation-header.schema.js +1 -1
  206. package/dist/server/components/chat-conversation-header/chat-conversation-header.variables.js +1 -1
  207. package/dist/server/components/chat-conversation-header/index.js +9 -9
  208. package/dist/server/components/chat-conversation-list/chat-conversation-list.schema.js +1 -1
  209. package/dist/server/components/chat-conversation-list/chat-conversation-list.variables.js +1 -1
  210. package/dist/server/components/chat-conversation-list/index.js +5 -5
  211. package/dist/server/components/checkbox/checkbox.schema.js +6 -2
  212. package/dist/server/components/checkbox/checkbox.variables.js +1 -1
  213. package/dist/server/components/checkbox/index.js +4 -4
  214. package/dist/server/components/checkbox-group/checkbox-group.schema.js +1 -1
  215. package/dist/server/components/checkbox-group/checkbox-group.variables.js +1 -1
  216. package/dist/server/components/checkbox-group/index.js +1 -1
  217. package/dist/server/components/chip/chip.schema.js +1 -1
  218. package/dist/server/components/chip/chip.variables.js +1 -1
  219. package/dist/server/components/chip/index.js +1 -1
  220. package/dist/server/components/choice-grid/choice-grid.schema.js +1 -1
  221. package/dist/server/components/choice-grid/choice-grid.variables.js +1 -1
  222. package/dist/server/components/choice-grid/index.js +1 -1
  223. package/dist/server/components/choice-grid-item/choice-grid-item.schema.js +1 -1
  224. package/dist/server/components/choice-grid-item/choice-grid-item.variables.js +1 -1
  225. package/dist/server/components/choice-grid-item/index.js +1 -1
  226. package/dist/server/components/click-away-listener/click-away-listener.schema.js +1 -1
  227. package/dist/server/components/click-away-listener/click-away-listener.variables.js +1 -1
  228. package/dist/server/components/click-away-listener/index.js +1 -1
  229. package/dist/server/components/code-block/code-block.schema.js +1 -1
  230. package/dist/server/components/code-block/code-block.variables.js +1 -1
  231. package/dist/server/components/code-block/index.js +4 -4
  232. package/dist/server/components/collapsible/collapsible.schema.js +1 -1
  233. package/dist/server/components/collapsible/collapsible.variables.js +1 -1
  234. package/dist/server/components/collapsible/index.js +1 -1
  235. package/dist/server/components/color-field/color-field.schema.js +1 -1
  236. package/dist/server/components/color-field/color-field.variables.js +1 -1
  237. package/dist/server/components/color-field/index.js +4 -4
  238. package/dist/server/components/color-picker/color-picker.schema.js +1 -1
  239. package/dist/server/components/color-picker/color-picker.variables.js +1 -1
  240. package/dist/server/components/color-picker/index.js +1 -1
  241. package/dist/server/components/color-swatch-picker/color-swatch-picker.schema.js +1 -1
  242. package/dist/server/components/color-swatch-picker/color-swatch-picker.variables.js +1 -1
  243. package/dist/server/components/color-swatch-picker/index.js +1 -1
  244. package/dist/server/components/combobox/combobox.schema.js +1 -1
  245. package/dist/server/components/combobox/combobox.variables.js +1 -1
  246. package/dist/server/components/combobox/index.js +5 -5
  247. package/dist/server/components/command-item/command-item.schema.js +1 -1
  248. package/dist/server/components/command-item/command-item.variables.js +1 -1
  249. package/dist/server/components/command-item/index.js +1 -1
  250. package/dist/server/components/command-menu/command-menu.schema.js +1 -1
  251. package/dist/server/components/command-menu/command-menu.variables.js +1 -1
  252. package/dist/server/components/command-menu/index.js +3 -3
  253. package/dist/server/components/command-palette/command-palette.schema.js +1 -1
  254. package/dist/server/components/command-palette/command-palette.variables.js +1 -1
  255. package/dist/server/components/command-palette/index.js +1 -1
  256. package/dist/server/components/confirm-dialog/confirm-dialog.schema.js +1 -1
  257. package/dist/server/components/confirm-dialog/confirm-dialog.variables.js +1 -1
  258. package/dist/server/components/confirm-dialog/index.js +1 -1
  259. package/dist/server/components/container/container.schema.js +1 -1
  260. package/dist/server/components/container/container.variables.js +1 -1
  261. package/dist/server/components/container/index.js +1 -1
  262. package/dist/server/components/context-menu/context-menu.schema.js +1 -1
  263. package/dist/server/components/context-menu/context-menu.variables.js +1 -1
  264. package/dist/server/components/context-menu/index.js +5 -5
  265. package/dist/server/components/context-menu-trigger/context-menu-trigger.schema.js +1 -1
  266. package/dist/server/components/context-menu-trigger/context-menu-trigger.variables.js +1 -1
  267. package/dist/server/components/context-menu-trigger/index.js +1 -1
  268. package/dist/server/components/copy-button/copy-button.schema.js +1 -1
  269. package/dist/server/components/copy-button/copy-button.variables.js +1 -1
  270. package/dist/server/components/copy-button/index.js +3 -3
  271. package/dist/server/components/cta-section/cta-section.schema.js +1 -1
  272. package/dist/server/components/cta-section/cta-section.variables.js +1 -1
  273. package/dist/server/components/cta-section/index.js +1 -1
  274. package/dist/server/components/data-grid/data-grid.schema.js +1 -1
  275. package/dist/server/components/data-grid/data-grid.variables.js +1 -1
  276. package/dist/server/components/data-grid/index.js +1 -1
  277. package/dist/server/components/data-list/data-list.schema.js +1 -1
  278. package/dist/server/components/data-list/data-list.variables.js +1 -1
  279. package/dist/server/components/data-list/index.js +1 -1
  280. package/dist/server/components/data-table/data-table.schema.js +1 -1
  281. package/dist/server/components/data-table/data-table.variables.js +1 -1
  282. package/dist/server/components/data-table/index.js +5 -5
  283. package/dist/server/components/date-picker/date-picker.schema.js +1 -1
  284. package/dist/server/components/date-picker/date-picker.variables.js +1 -1
  285. package/dist/server/components/date-picker/index.js +5 -5
  286. package/dist/server/components/date-range-field/date-range-field.schema.js +1 -1
  287. package/dist/server/components/date-range-field/date-range-field.variables.js +1 -1
  288. package/dist/server/components/date-range-field/index.js +6 -6
  289. package/dist/server/components/description-list/description-list.schema.js +1 -1
  290. package/dist/server/components/description-list/description-list.variables.js +1 -1
  291. package/dist/server/components/description-list/index.js +1 -1
  292. package/dist/server/components/diff-statistics/diff-statistics.schema.js +1 -1
  293. package/dist/server/components/diff-statistics/diff-statistics.variables.js +1 -1
  294. package/dist/server/components/diff-statistics/index.js +1 -1
  295. package/dist/server/components/diff-viewer/diff-viewer.schema.js +1 -1
  296. package/dist/server/components/diff-viewer/diff-viewer.variables.js +1 -1
  297. package/dist/server/components/diff-viewer/index.js +4 -4
  298. package/dist/server/components/divider/divider.schema.js +1 -1
  299. package/dist/server/components/divider/divider.variables.js +1 -1
  300. package/dist/server/components/divider/index.js +1 -1
  301. package/dist/server/components/drawer/drawer.schema.js +1 -1
  302. package/dist/server/components/drawer/drawer.variables.js +1 -1
  303. package/dist/server/components/drawer/index.js +1 -1
  304. package/dist/server/components/dropdown/dropdown.schema.js +1 -1
  305. package/dist/server/components/dropdown/dropdown.variables.js +1 -1
  306. package/dist/server/components/dropdown/index.js +5 -5
  307. package/dist/server/components/dropdown-group/dropdown-group.schema.js +1 -1
  308. package/dist/server/components/dropdown-group/dropdown-group.variables.js +1 -1
  309. package/dist/server/components/dropdown-group/index.js +1 -1
  310. package/dist/server/components/dropdown-item/dropdown-item.schema.js +1 -1
  311. package/dist/server/components/dropdown-item/dropdown-item.variables.js +1 -1
  312. package/dist/server/components/dropdown-item/index.js +1 -1
  313. package/dist/server/components/dropdown-label/dropdown-label.schema.js +1 -1
  314. package/dist/server/components/dropdown-label/dropdown-label.variables.js +1 -1
  315. package/dist/server/components/dropdown-label/index.js +1 -1
  316. package/dist/server/components/dropdown-menu/dropdown-menu.schema.js +1 -1
  317. package/dist/server/components/dropdown-menu/dropdown-menu.variables.js +1 -1
  318. package/dist/server/components/dropdown-menu/index.js +4 -4
  319. package/dist/server/components/dropdown-separator/dropdown-separator.schema.js +1 -1
  320. package/dist/server/components/dropdown-separator/dropdown-separator.variables.js +1 -1
  321. package/dist/server/components/dropdown-separator/index.js +1 -1
  322. package/dist/server/components/dropdown-trigger/dropdown-trigger.schema.js +1 -1
  323. package/dist/server/components/dropdown-trigger/dropdown-trigger.variables.js +1 -1
  324. package/dist/server/components/dropdown-trigger/index.js +1 -1
  325. package/dist/server/components/empty-state/empty-state.schema.js +1 -1
  326. package/dist/server/components/empty-state/empty-state.variables.js +1 -1
  327. package/dist/server/components/empty-state/index.js +1 -1
  328. package/dist/server/components/event-stream-viewer/event-stream-viewer.schema.js +1 -1
  329. package/dist/server/components/event-stream-viewer/event-stream-viewer.variables.js +1 -1
  330. package/dist/server/components/event-stream-viewer/index.js +3 -3
  331. package/dist/server/components/event-timeline/event-timeline.schema.js +1 -1
  332. package/dist/server/components/event-timeline/event-timeline.variables.js +1 -1
  333. package/dist/server/components/event-timeline/index.js +1 -1
  334. package/dist/server/components/experimental/json-viewer/index.js +1 -1
  335. package/dist/server/components/experimental/message/index.js +1 -1
  336. package/dist/server/components/faceted-filter-bar/faceted-filter-bar.schema.js +1 -1
  337. package/dist/server/components/faceted-filter-bar/faceted-filter-bar.variables.js +1 -1
  338. package/dist/server/components/faceted-filter-bar/index.js +4 -4
  339. package/dist/server/components/feature-section/feature-section.schema.js +1 -1
  340. package/dist/server/components/feature-section/feature-section.variables.js +1 -1
  341. package/dist/server/components/feature-section/index.js +1 -1
  342. package/dist/server/components/feed/feed.schema.js +1 -1
  343. package/dist/server/components/feed/feed.variables.js +1 -1
  344. package/dist/server/components/feed/index.js +1 -1
  345. package/dist/server/components/feed-event/feed-event.schema.js +1 -1
  346. package/dist/server/components/feed-event/feed-event.variables.js +1 -1
  347. package/dist/server/components/feed-event/index.js +1 -1
  348. package/dist/server/components/file-upload/file-upload.schema.js +1 -1
  349. package/dist/server/components/file-upload/file-upload.variables.js +1 -1
  350. package/dist/server/components/file-upload/index.js +1 -1
  351. package/dist/server/components/floating-action-button/floating-action-button.schema.js +1 -1
  352. package/dist/server/components/floating-action-button/floating-action-button.variables.js +1 -1
  353. package/dist/server/components/floating-action-button/index.js +1 -1
  354. package/dist/server/components/focus-trap/focus-trap.schema.js +1 -1
  355. package/dist/server/components/focus-trap/focus-trap.variables.js +1 -1
  356. package/dist/server/components/focus-trap/index.js +1 -1
  357. package/dist/server/components/footer/footer.schema.js +1 -1
  358. package/dist/server/components/footer/footer.variables.js +1 -1
  359. package/dist/server/components/footer/index.js +1 -1
  360. package/dist/server/components/form-field/form-field.schema.js +1 -1
  361. package/dist/server/components/form-field/form-field.variables.js +1 -1
  362. package/dist/server/components/form-field/index.js +1 -1
  363. package/dist/server/components/form-section/form-section.schema.js +1 -1
  364. package/dist/server/components/form-section/form-section.variables.js +1 -1
  365. package/dist/server/components/form-section/index.js +1 -1
  366. package/dist/server/components/grid/grid.schema.js +1 -1
  367. package/dist/server/components/grid/grid.variables.js +1 -1
  368. package/dist/server/components/grid/index.js +1 -1
  369. package/dist/server/components/grid-item/grid-item.schema.js +1 -1
  370. package/dist/server/components/grid-item/grid-item.variables.js +1 -1
  371. package/dist/server/components/grid-item/index.js +1 -1
  372. package/dist/server/components/grid-list/grid-list.schema.js +1 -1
  373. package/dist/server/components/grid-list/grid-list.variables.js +1 -1
  374. package/dist/server/components/grid-list/index.js +1 -1
  375. package/dist/server/components/grid-list-item/grid-list-item.schema.js +1 -1
  376. package/dist/server/components/grid-list-item/grid-list-item.variables.js +1 -1
  377. package/dist/server/components/grid-list-item/index.js +1 -1
  378. package/dist/server/components/hero-section/hero-section.schema.js +1 -1
  379. package/dist/server/components/hero-section/hero-section.variables.js +1 -1
  380. package/dist/server/components/hero-section/index.js +1 -1
  381. package/dist/server/components/hover-card/hover-card.schema.js +1 -1
  382. package/dist/server/components/hover-card/hover-card.variables.js +1 -1
  383. package/dist/server/components/hover-card/index.js +3 -3
  384. package/dist/server/components/image/image.schema.js +1 -1
  385. package/dist/server/components/image/image.variables.js +1 -1
  386. package/dist/server/components/image/index.js +1 -1
  387. package/dist/server/components/inline-loading/index.js +1 -1
  388. package/dist/server/components/inline-loading/inline-loading.schema.js +1 -1
  389. package/dist/server/components/inline-loading/inline-loading.variables.js +1 -1
  390. package/dist/server/components/input/index.js +4 -4
  391. package/dist/server/components/input/input.schema.js +1 -1
  392. package/dist/server/components/input/input.variables.js +1 -1
  393. package/dist/server/components/invocation-rule-builder/index.js +1 -1
  394. package/dist/server/components/invocation-rule-builder/invocation-rule-builder.schema.js +1 -1
  395. package/dist/server/components/invocation-rule-builder/invocation-rule-builder.variables.js +1 -1
  396. package/dist/server/components/json-schema-editor/index.js +12 -12
  397. package/dist/server/components/json-schema-editor/json-schema-editor.schema.js +1 -1
  398. package/dist/server/components/json-schema-editor/json-schema-editor.variables.js +1 -1
  399. package/dist/server/components/json-viewer/index.js +1 -1
  400. package/dist/server/components/json-viewer/json-viewer.schema.js +1 -1
  401. package/dist/server/components/json-viewer/json-viewer.variables.js +1 -1
  402. package/dist/server/components/kanban-board/index.js +1 -1
  403. package/dist/server/components/kanban-board/kanban-board.schema.js +1 -1
  404. package/dist/server/components/kanban-board/kanban-board.variables.js +1 -1
  405. package/dist/server/components/kbd/index.js +1 -1
  406. package/dist/server/components/kbd/kbd.schema.js +1 -1
  407. package/dist/server/components/kbd/kbd.variables.js +1 -1
  408. package/dist/server/components/keyboard-shortcuts/index.js +1 -1
  409. package/dist/server/components/keyboard-shortcuts/keyboard-shortcuts.schema.js +1 -1
  410. package/dist/server/components/keyboard-shortcuts/keyboard-shortcuts.variables.js +1 -1
  411. package/dist/server/components/label/index.js +1 -1
  412. package/dist/server/components/label/label.schema.js +1 -1
  413. package/dist/server/components/label/label.variables.js +1 -1
  414. package/dist/server/components/line-chart/index.js +1 -1
  415. package/dist/server/components/line-chart/line-chart.schema.js +1 -1
  416. package/dist/server/components/line-chart/line-chart.variables.js +1 -1
  417. package/dist/server/components/link/index.js +1 -1
  418. package/dist/server/components/link/link.schema.js +1 -1
  419. package/dist/server/components/link/link.variables.js +1 -1
  420. package/dist/server/components/load-more/index.js +1 -1
  421. package/dist/server/components/load-more/load-more.schema.js +1 -1
  422. package/dist/server/components/load-more/load-more.variables.js +1 -1
  423. package/dist/server/components/locale-provider/index.js +1 -1
  424. package/dist/server/components/locale-provider/locale-provider.schema.js +1 -1
  425. package/dist/server/components/locale-provider/locale-provider.variables.js +1 -1
  426. package/dist/server/components/logo-cloud/index.js +1 -1
  427. package/dist/server/components/logo-cloud/logo-cloud.schema.js +1 -1
  428. package/dist/server/components/logo-cloud/logo-cloud.variables.js +1 -1
  429. package/dist/server/components/markdown-editor/index.js +12 -12
  430. package/dist/server/components/markdown-editor/markdown-editor.schema.js +1 -1
  431. package/dist/server/components/markdown-editor/markdown-editor.variables.js +1 -1
  432. package/dist/server/components/marquee/index.js +1 -1
  433. package/dist/server/components/marquee/marquee.schema.js +1 -1
  434. package/dist/server/components/marquee/marquee.variables.js +1 -1
  435. package/dist/server/components/masonry/index.js +1 -1
  436. package/dist/server/components/masonry/masonry.schema.js +1 -1
  437. package/dist/server/components/masonry/masonry.variables.js +1 -1
  438. package/dist/server/components/matrix-chart/index.js +1 -1
  439. package/dist/server/components/matrix-chart/matrix-chart.schema.js +1 -1
  440. package/dist/server/components/matrix-chart/matrix-chart.variables.js +1 -1
  441. package/dist/server/components/media-controls/index.js +1 -1
  442. package/dist/server/components/media-controls/media-controls.schema.js +1 -1
  443. package/dist/server/components/media-controls/media-controls.variables.js +1 -1
  444. package/dist/server/components/mega-menu/index.js +1 -1
  445. package/dist/server/components/mega-menu/mega-menu.schema.js +1 -1
  446. package/dist/server/components/mega-menu/mega-menu.variables.js +1 -1
  447. package/dist/server/components/menu-bar/index.js +5 -5
  448. package/dist/server/components/menu-bar/menu-bar.schema.js +1 -1
  449. package/dist/server/components/menu-bar/menu-bar.variables.js +1 -1
  450. package/dist/server/components/message/index.js +1 -1
  451. package/dist/server/components/message/message.schema.js +1 -1
  452. package/dist/server/components/message/message.variables.js +1 -1
  453. package/dist/server/components/meter/index.js +1 -1
  454. package/dist/server/components/meter/meter.schema.js +1 -1
  455. package/dist/server/components/meter/meter.variables.js +1 -1
  456. package/dist/server/components/modal/index.js +1 -1
  457. package/dist/server/components/modal/modal.schema.js +1 -1
  458. package/dist/server/components/modal/modal.variables.js +1 -1
  459. package/dist/server/components/multi-select/index.js +2 -2
  460. package/dist/server/components/multi-select/multi-select.schema.js +1 -1
  461. package/dist/server/components/multi-select/multi-select.variables.js +1 -1
  462. package/dist/server/components/navigation-bar/index.js +2 -2
  463. package/dist/server/components/navigation-bar/navigation-bar.schema.js +7 -2
  464. package/dist/server/components/navigation-bar/navigation-bar.variables.js +1 -1
  465. package/dist/server/components/navigation-item/index.js +1 -1
  466. package/dist/server/components/navigation-item/navigation-item.schema.js +1 -1
  467. package/dist/server/components/navigation-item/navigation-item.variables.js +1 -1
  468. package/dist/server/components/newsletter-section/index.js +4 -4
  469. package/dist/server/components/newsletter-section/newsletter-section.schema.js +1 -1
  470. package/dist/server/components/newsletter-section/newsletter-section.variables.js +1 -1
  471. package/dist/server/components/number-input/index.js +1 -1
  472. package/dist/server/components/number-input/number-input.schema.js +1 -1
  473. package/dist/server/components/number-input/number-input.variables.js +1 -1
  474. package/dist/server/components/page-header/index.js +1 -1
  475. package/dist/server/components/page-header/page-header.schema.js +1 -1
  476. package/dist/server/components/page-header/page-header.variables.js +1 -1
  477. package/dist/server/components/pagination/index.js +2 -2
  478. package/dist/server/components/pagination/pagination.schema.js +13 -4
  479. package/dist/server/components/pagination/pagination.variables.js +1 -1
  480. package/dist/server/components/payload-inspector/index.js +8 -8
  481. package/dist/server/components/payload-inspector/payload-inspector.schema.js +1 -1
  482. package/dist/server/components/payload-inspector/payload-inspector.variables.js +1 -1
  483. package/dist/server/components/permission-matrix/index.js +1 -1
  484. package/dist/server/components/permission-matrix/permission-matrix.schema.js +1 -1
  485. package/dist/server/components/permission-matrix/permission-matrix.variables.js +1 -1
  486. package/dist/server/components/phone-input/index.js +1 -1
  487. package/dist/server/components/phone-input/phone-input.schema.js +1 -1
  488. package/dist/server/components/phone-input/phone-input.variables.js +1 -1
  489. package/dist/server/components/pin-input/index.js +1 -1
  490. package/dist/server/components/pin-input/pin-input.schema.js +1 -1
  491. package/dist/server/components/pin-input/pin-input.variables.js +1 -1
  492. package/dist/server/components/popover/index.js +4 -4
  493. package/dist/server/components/popover/popover.schema.js +1 -1
  494. package/dist/server/components/popover/popover.variables.js +1 -1
  495. package/dist/server/components/portal/index.js +2 -2
  496. package/dist/server/components/portal/portal.schema.js +1 -1
  497. package/dist/server/components/portal/portal.variables.js +1 -1
  498. package/dist/server/components/pricing-card/index.js +1 -1
  499. package/dist/server/components/pricing-card/pricing-card.schema.js +1 -1
  500. package/dist/server/components/pricing-card/pricing-card.variables.js +1 -1
  501. package/dist/server/components/pricing-section/index.js +1 -1
  502. package/dist/server/components/pricing-section/pricing-section.schema.js +1 -1
  503. package/dist/server/components/pricing-section/pricing-section.variables.js +1 -1
  504. package/dist/server/components/progress/index.js +1 -1
  505. package/dist/server/components/progress/progress.schema.js +1 -1
  506. package/dist/server/components/progress/progress.variables.js +1 -1
  507. package/dist/server/components/qr-code/index.js +2 -2
  508. package/dist/server/components/qr-code/qr-code.schema.js +1 -1
  509. package/dist/server/components/qr-code/qr-code.variables.js +1 -1
  510. package/dist/server/components/radio-group/index.js +1 -1
  511. package/dist/server/components/radio-group/radio-group.schema.js +1 -1
  512. package/dist/server/components/radio-group/radio-group.variables.js +1 -1
  513. package/dist/server/components/rating/index.js +1 -1
  514. package/dist/server/components/rating/rating.schema.js +1 -1
  515. package/dist/server/components/rating/rating.variables.js +1 -1
  516. package/dist/server/components/resizable-panels/index.js +1 -1
  517. package/dist/server/components/resizable-panels/resizable-panels.schema.js +1 -1
  518. package/dist/server/components/resizable-panels/resizable-panels.variables.js +1 -1
  519. package/dist/server/components/review-editor/index.js +3392 -51
  520. package/dist/server/components/review-editor/review-editor.schema.js +1 -1
  521. package/dist/server/components/review-editor/review-editor.variables.js +1 -1
  522. package/dist/server/components/run-step-timeline/index.js +3 -3
  523. package/dist/server/components/run-step-timeline/run-step-timeline.schema.js +1 -1
  524. package/dist/server/components/run-step-timeline/run-step-timeline.variables.js +1 -1
  525. package/dist/server/components/schema-form/index.js +5 -5
  526. package/dist/server/components/schema-form/schema-form.schema.js +1 -1
  527. package/dist/server/components/schema-form/schema-form.variables.js +1 -1
  528. package/dist/server/components/scroll-area/index.js +1 -1
  529. package/dist/server/components/scroll-area/scroll-area.schema.js +1 -1
  530. package/dist/server/components/scroll-area/scroll-area.variables.js +1 -1
  531. package/dist/server/components/search-field/index.js +4 -4
  532. package/dist/server/components/search-field/search-field.schema.js +1 -1
  533. package/dist/server/components/search-field/search-field.variables.js +1 -1
  534. package/dist/server/components/secret-value-field/index.js +1 -1
  535. package/dist/server/components/secret-value-field/secret-value-field.schema.js +1 -1
  536. package/dist/server/components/secret-value-field/secret-value-field.variables.js +1 -1
  537. package/dist/server/components/section-heading/index.js +1 -1
  538. package/dist/server/components/section-heading/section-heading.schema.js +1 -1
  539. package/dist/server/components/section-heading/section-heading.variables.js +1 -1
  540. package/dist/server/components/segment/index.js +1 -1
  541. package/dist/server/components/segment/segment.schema.js +1 -1
  542. package/dist/server/components/segment/segment.variables.js +1 -1
  543. package/dist/server/components/segmented-control/index.js +1 -1
  544. package/dist/server/components/segmented-control/segmented-control.schema.js +1 -1
  545. package/dist/server/components/segmented-control/segmented-control.variables.js +1 -1
  546. package/dist/server/components/select/index.js +1 -1
  547. package/dist/server/components/select/select.schema.js +1 -1
  548. package/dist/server/components/select/select.variables.js +1 -1
  549. package/dist/server/components/selection-popover/index.js +4 -4
  550. package/dist/server/components/selection-popover/selection-popover.schema.js +1 -1
  551. package/dist/server/components/selection-popover/selection-popover.variables.js +1 -1
  552. package/dist/server/components/share-card/index.js +1 -1
  553. package/dist/server/components/share-card/share-card.schema.js +1 -1
  554. package/dist/server/components/share-card/share-card.variables.js +1 -1
  555. package/dist/server/components/sheet/index.js +1 -1
  556. package/dist/server/components/sheet/sheet.schema.js +1 -1
  557. package/dist/server/components/sheet/sheet.variables.js +1 -1
  558. package/dist/server/components/shortcut-hint/index.js +1 -1
  559. package/dist/server/components/shortcut-hint/shortcut-hint.schema.js +1 -1
  560. package/dist/server/components/shortcut-hint/shortcut-hint.variables.js +1 -1
  561. package/dist/server/components/side-navigation/index.js +1 -1
  562. package/dist/server/components/side-navigation/side-navigation.schema.js +1 -1
  563. package/dist/server/components/side-navigation/side-navigation.variables.js +1 -1
  564. package/dist/server/components/side-navigation-group/index.js +1 -1
  565. package/dist/server/components/side-navigation-group/side-navigation-group.schema.js +1 -1
  566. package/dist/server/components/side-navigation-group/side-navigation-group.variables.js +1 -1
  567. package/dist/server/components/side-navigation-item/index.js +1 -1
  568. package/dist/server/components/side-navigation-item/side-navigation-item.schema.js +1 -1
  569. package/dist/server/components/side-navigation-item/side-navigation-item.variables.js +1 -1
  570. package/dist/server/components/sidebar/index.js +2 -2
  571. package/dist/server/components/sidebar/sidebar.schema.js +1 -1
  572. package/dist/server/components/sidebar/sidebar.variables.js +1 -1
  573. package/dist/server/components/skeleton/index.js +1 -1
  574. package/dist/server/components/skeleton/skeleton.schema.js +1 -1
  575. package/dist/server/components/skeleton/skeleton.variables.js +1 -1
  576. package/dist/server/components/skip-link/index.js +1 -1
  577. package/dist/server/components/skip-link/skip-link.schema.js +1 -1
  578. package/dist/server/components/skip-link/skip-link.variables.js +1 -1
  579. package/dist/server/components/slider/index.js +1 -1
  580. package/dist/server/components/slider/slider.schema.js +1 -1
  581. package/dist/server/components/slider/slider.variables.js +1 -1
  582. package/dist/server/components/sortable-list/index.js +1 -1
  583. package/dist/server/components/sortable-list/sortable-list.schema.js +1 -1
  584. package/dist/server/components/sortable-list/sortable-list.variables.js +1 -1
  585. package/dist/server/components/source-diff-viewer/index.js +18 -0
  586. package/dist/server/components/source-diff-viewer/source-diff-viewer.schema.js +45 -0
  587. package/dist/server/components/source-diff-viewer/source-diff-viewer.variables.js +10 -0
  588. package/dist/server/components/sparkbar/index.js +1 -1
  589. package/dist/server/components/sparkbar/sparkbar.schema.js +1 -1
  590. package/dist/server/components/sparkbar/sparkbar.variables.js +1 -1
  591. package/dist/server/components/spectrogram/index.js +1 -1
  592. package/dist/server/components/spectrogram/spectrogram.schema.js +1 -1
  593. package/dist/server/components/spectrogram/spectrogram.variables.js +1 -1
  594. package/dist/server/components/spectrum-chart/index.js +1 -1
  595. package/dist/server/components/spectrum-chart/spectrum-chart.schema.js +1 -1
  596. package/dist/server/components/spectrum-chart/spectrum-chart.variables.js +1 -1
  597. package/dist/server/components/speed-dial/index.js +1 -1
  598. package/dist/server/components/speed-dial/speed-dial.schema.js +1 -1
  599. package/dist/server/components/speed-dial/speed-dial.variables.js +1 -1
  600. package/dist/server/components/speed-dial-action/index.js +1 -1
  601. package/dist/server/components/speed-dial-action/speed-dial-action.schema.js +1 -1
  602. package/dist/server/components/speed-dial-action/speed-dial-action.variables.js +1 -1
  603. package/dist/server/components/spinner/index.js +1 -1
  604. package/dist/server/components/spinner/spinner.schema.js +1 -1
  605. package/dist/server/components/spinner/spinner.variables.js +1 -1
  606. package/dist/server/components/stacked-list-item/index.js +1 -1
  607. package/dist/server/components/stacked-list-item/stacked-list-item.schema.js +1 -1
  608. package/dist/server/components/stacked-list-item/stacked-list-item.variables.js +1 -1
  609. package/dist/server/components/stat/index.js +1 -1
  610. package/dist/server/components/stat/stat.schema.js +1 -1
  611. package/dist/server/components/stat/stat.variables.js +1 -1
  612. package/dist/server/components/stat-group/index.js +1 -1
  613. package/dist/server/components/stat-group/stat-group.schema.js +1 -1
  614. package/dist/server/components/stat-group/stat-group.variables.js +1 -1
  615. package/dist/server/components/stats-section/index.js +1 -1
  616. package/dist/server/components/stats-section/stats-section.schema.js +1 -1
  617. package/dist/server/components/stats-section/stats-section.variables.js +1 -1
  618. package/dist/server/components/status-dot/index.js +1 -1
  619. package/dist/server/components/status-dot/status-dot.schema.js +1 -1
  620. package/dist/server/components/status-dot/status-dot.variables.js +1 -1
  621. package/dist/server/components/steps/index.js +1 -1
  622. package/dist/server/components/steps/steps.schema.js +1 -1
  623. package/dist/server/components/steps/steps.variables.js +1 -1
  624. package/dist/server/components/surface/index.js +1 -1
  625. package/dist/server/components/surface/surface.schema.js +1 -1
  626. package/dist/server/components/surface/surface.variables.js +1 -1
  627. package/dist/server/components/tab/index.js +1 -1
  628. package/dist/server/components/tab/tab.schema.js +1 -1
  629. package/dist/server/components/tab/tab.variables.js +1 -1
  630. package/dist/server/components/tab-list/index.js +1 -1
  631. package/dist/server/components/tab-list/tab-list.schema.js +1 -1
  632. package/dist/server/components/tab-list/tab-list.variables.js +1 -1
  633. package/dist/server/components/tab-panel/index.js +1 -1
  634. package/dist/server/components/tab-panel/tab-panel.schema.js +1 -1
  635. package/dist/server/components/tab-panel/tab-panel.variables.js +1 -1
  636. package/dist/server/components/table/index.js +3 -3
  637. package/dist/server/components/table/table.schema.js +1 -1
  638. package/dist/server/components/table/table.variables.js +1 -1
  639. package/dist/server/components/table-body/index.js +1 -1
  640. package/dist/server/components/table-body/table-body.schema.js +1 -1
  641. package/dist/server/components/table-body/table-body.variables.js +1 -1
  642. package/dist/server/components/table-cell/index.js +1 -1
  643. package/dist/server/components/table-cell/table-cell.schema.js +1 -1
  644. package/dist/server/components/table-cell/table-cell.variables.js +1 -1
  645. package/dist/server/components/table-header/index.js +1 -1
  646. package/dist/server/components/table-header/table-header.schema.js +1 -1
  647. package/dist/server/components/table-header/table-header.variables.js +1 -1
  648. package/dist/server/components/table-header-cell/index.js +1 -1
  649. package/dist/server/components/table-header-cell/table-header-cell.schema.js +1 -1
  650. package/dist/server/components/table-header-cell/table-header-cell.variables.js +1 -1
  651. package/dist/server/components/table-of-contents/index.js +1 -1
  652. package/dist/server/components/table-of-contents/table-of-contents.schema.js +1 -1
  653. package/dist/server/components/table-of-contents/table-of-contents.variables.js +1 -1
  654. package/dist/server/components/table-row/index.js +1 -1
  655. package/dist/server/components/table-row/table-row.schema.js +1 -1
  656. package/dist/server/components/table-row/table-row.variables.js +1 -1
  657. package/dist/server/components/tabs/index.js +4 -4
  658. package/dist/server/components/tabs/tabs.schema.js +7 -2
  659. package/dist/server/components/tabs/tabs.variables.js +1 -1
  660. package/dist/server/components/tag-input/index.js +3 -3
  661. package/dist/server/components/tag-input/tag-input.schema.js +1 -1
  662. package/dist/server/components/tag-input/tag-input.variables.js +1 -1
  663. package/dist/server/components/team-section/index.js +11 -7
  664. package/dist/server/components/team-section/team-section.schema.js +1 -1
  665. package/dist/server/components/team-section/team-section.variables.js +1 -1
  666. package/dist/server/components/testimonial-section/index.js +8 -4
  667. package/dist/server/components/testimonial-section/testimonial-section.schema.js +1 -1
  668. package/dist/server/components/testimonial-section/testimonial-section.variables.js +1 -1
  669. package/dist/server/components/textarea/index.js +1 -1
  670. package/dist/server/components/textarea/textarea.schema.js +1 -1
  671. package/dist/server/components/textarea/textarea.variables.js +1 -1
  672. package/dist/server/components/time-field/index.js +1 -1
  673. package/dist/server/components/time-field/time-field.schema.js +1 -1
  674. package/dist/server/components/time-field/time-field.variables.js +1 -1
  675. package/dist/server/components/timeline/index.js +1 -1
  676. package/dist/server/components/timeline/timeline.schema.js +1 -1
  677. package/dist/server/components/timeline/timeline.variables.js +1 -1
  678. package/dist/server/components/toast-region/index.js +1 -1
  679. package/dist/server/components/toast-region/toast-region.schema.js +1 -1
  680. package/dist/server/components/toast-region/toast-region.variables.js +1 -1
  681. package/dist/server/components/toggle/index.js +1 -1
  682. package/dist/server/components/toggle/toggle.schema.js +1 -1
  683. package/dist/server/components/toggle/toggle.variables.js +1 -1
  684. package/dist/server/components/toolbar/index.js +2 -2
  685. package/dist/server/components/toolbar/toolbar.schema.js +3 -3
  686. package/dist/server/components/toolbar/toolbar.variables.js +1 -1
  687. package/dist/server/components/tooltip/index.js +4 -4
  688. package/dist/server/components/tooltip/tooltip.schema.js +1 -1
  689. package/dist/server/components/tooltip/tooltip.variables.js +1 -1
  690. package/dist/server/components/transfer-list/index.js +1 -1
  691. package/dist/server/components/transfer-list/transfer-list.schema.js +1 -1
  692. package/dist/server/components/transfer-list/transfer-list.variables.js +1 -1
  693. package/dist/server/components/tree/index.js +1 -1
  694. package/dist/server/components/tree/tree.schema.js +1 -1
  695. package/dist/server/components/tree/tree.variables.js +1 -1
  696. package/dist/server/components/tree-item/index.js +1 -1
  697. package/dist/server/components/tree-item/tree-item.schema.js +1 -1
  698. package/dist/server/components/tree-item/tree-item.variables.js +1 -1
  699. package/dist/server/components/typography/index.js +1 -1
  700. package/dist/server/components/typography/typography.schema.js +1 -1
  701. package/dist/server/components/typography/typography.variables.js +1 -1
  702. package/dist/server/components/virtual-list/index.js +1 -1
  703. package/dist/server/components/virtual-list/virtual-list.schema.js +1 -1
  704. package/dist/server/components/virtual-list/virtual-list.variables.js +1 -1
  705. package/dist/server/components/visually-hidden/index.js +1 -1
  706. package/dist/server/components/visually-hidden/visually-hidden.schema.js +1 -1
  707. package/dist/server/components/visually-hidden/visually-hidden.variables.js +1 -1
  708. package/dist/server/components/waveform/index.js +1 -1
  709. package/dist/server/components/waveform/waveform.schema.js +1 -1
  710. package/dist/server/components/waveform/waveform.variables.js +1 -1
  711. package/dist/server/highlighters/shiki/index.js +1 -1
  712. package/dist/server/index-49we2xfs.js +344 -0
  713. package/dist/server/index-8fhvxk30.js +265 -0
  714. package/dist/server/index-x2ysg8ds.js +388 -0
  715. package/dist/server/index.js +165 -187
  716. package/dist/server/index.server-0e1m3agz.js +102 -0
  717. package/dist/server/index.server-0gwr59yw.js +9 -0
  718. package/dist/server/index.server-0q2bpsa1.js +98 -0
  719. package/dist/server/index.server-0v6na3yp.js +37 -0
  720. package/dist/server/index.server-1nh09ck7.js +377 -0
  721. package/dist/server/index.server-1vscnped.js +105 -0
  722. package/dist/server/index.server-2a789g24.js +1163 -0
  723. package/dist/server/index.server-2j52msk2.js +34 -0
  724. package/dist/server/index.server-3qdm4kcn.js +1028 -0
  725. package/dist/server/index.server-5knawt7p.js +94 -0
  726. package/dist/server/index.server-5npa16n7.js +9 -0
  727. package/dist/server/index.server-62mtrvr7.js +111 -0
  728. package/dist/server/index.server-73x2d3j3.js +9 -0
  729. package/dist/server/index.server-7fp0epev.js +143 -0
  730. package/dist/server/index.server-7yq1jgt3.js +9 -0
  731. package/dist/server/index.server-8cxs4kya.js +244 -0
  732. package/dist/server/index.server-98zf89h7.js +3842 -0
  733. package/dist/server/index.server-9j5sym59.js +23 -0
  734. package/dist/server/index.server-9s4na701.js +195 -0
  735. package/dist/server/index.server-a3dhq5t8.js +2309 -0
  736. package/dist/server/index.server-aeexcxdp.js +9 -0
  737. package/dist/server/index.server-atjc1qcq.js +83 -0
  738. package/dist/server/index.server-bfsbp9dz.js +169 -0
  739. package/dist/server/index.server-btgb3d56.js +195 -0
  740. package/dist/server/index.server-bvsb9gea.js +2 -0
  741. package/dist/server/index.server-cbtg8rq5.js +457 -0
  742. package/dist/server/index.server-cvnw3hw9.js +9 -0
  743. package/dist/server/index.server-d04aj37r.js +62 -0
  744. package/dist/server/index.server-dc35kh7d.js +1835 -0
  745. package/dist/server/index.server-dp9j2kkr.js +291 -0
  746. package/dist/server/index.server-e8x1hgw6.js +118 -0
  747. package/dist/server/index.server-ecm1vs3g.js +9 -0
  748. package/dist/server/index.server-egk5q7aj.js +148 -0
  749. package/dist/server/index.server-ezpdsg81.js +733 -0
  750. package/dist/server/index.server-f0hma3jp.js +9 -0
  751. package/dist/server/index.server-f23vtaw4.js +284 -0
  752. package/dist/server/index.server-ft1xvwqd.js +9 -0
  753. package/dist/server/index.server-g789yep6.js +1035 -0
  754. package/dist/server/index.server-gxf0d1p5.js +76 -0
  755. package/dist/server/index.server-hcfnae5y.js +126 -0
  756. package/dist/server/index.server-hd8gpehd.js +9 -0
  757. package/dist/server/index.server-hhxjaeen.js +35 -0
  758. package/dist/server/index.server-hpcs7tmh.js +271 -0
  759. package/dist/server/index.server-j5hn2qds.js +126 -0
  760. package/dist/server/index.server-jk4rx4aa.js +9 -0
  761. package/dist/server/index.server-jt1twhgk.js +726 -0
  762. package/dist/server/index.server-kd4b0342.js +607 -0
  763. package/dist/server/index.server-kvdrhzr3.js +176 -0
  764. package/dist/server/index.server-mehav5vs.js +31 -0
  765. package/dist/server/index.server-n39drzes.js +222 -0
  766. package/dist/server/index.server-nzgjr724.js +190 -0
  767. package/dist/server/index.server-pacrqvyz.js +9 -0
  768. package/dist/server/index.server-pakw5qm3.js +84 -0
  769. package/dist/server/index.server-pen9pxt6.js +117 -0
  770. package/dist/server/index.server-pp6vn6z6.js +294 -0
  771. package/dist/server/index.server-pxg74pyp.js +393 -0
  772. package/dist/server/index.server-q89dz8h1.js +72 -0
  773. package/dist/server/index.server-qfa2rxzx.js +177 -0
  774. package/dist/server/index.server-qwknp759.js +141 -0
  775. package/dist/server/index.server-rhhmdxtz.js +159 -0
  776. package/dist/server/index.server-rjap4k7y.js +1389 -0
  777. package/dist/server/index.server-s9khh4ry.js +56 -0
  778. package/dist/server/index.server-sh2rxejg.js +371 -0
  779. package/dist/server/index.server-tbxe02px.js +9 -0
  780. package/dist/server/index.server-te0d13bf.js +4416 -0
  781. package/dist/server/index.server-thedzn9z.js +100 -0
  782. package/dist/server/index.server-tnbaknbp.js +9 -0
  783. package/dist/server/index.server-txnxnbd6.js +161 -0
  784. package/dist/server/index.server-vne4rzfa.js +9 -0
  785. package/dist/server/index.server-vt6sn9y4.js +447 -0
  786. package/dist/server/index.server-wc9aggfz.js +197 -0
  787. package/dist/server/index.server-wm7mk5kw.js +93 -0
  788. package/dist/server/index.server-z1q7qnb8.js +84 -0
  789. package/dist/server/index.server-zeqv7nrz.js +184 -0
  790. package/dist/server/styles/base-guard.js +1 -1
  791. package/dist/utilities/__test-helpers__/announcer-wrapper.svelte.d.ts +7 -0
  792. package/package.json +189 -39
  793. package/src/components/_radio/radio.schema.json +36 -0
  794. package/src/components/_radio/radio.variables.json +1 -0
  795. package/src/components/_tree-select-all/tree-select-all.schema.json +38 -0
  796. package/src/components/_tree-select-all/tree-select-all.variables.json +1 -0
  797. package/src/components/access-gate/access-gate.schema.json +38 -0
  798. package/src/components/access-gate/access-gate.variables.json +1 -0
  799. package/src/components/accordion/accordion.schema.json +26 -0
  800. package/src/components/accordion/accordion.variables.json +1 -0
  801. package/src/components/accordion-item/accordion-item.schema.json +35 -0
  802. package/src/components/accordion-item/accordion-item.variables.json +1 -0
  803. package/src/components/action-row/action-row.css +133 -0
  804. package/src/components/action-row/action-row.examples.json +19 -0
  805. package/src/components/action-row/action-row.schema.json +66 -0
  806. package/src/components/action-row/action-row.variables.json +1 -0
  807. package/src/components/alert/alert.schema.json +38 -0
  808. package/src/components/alert/alert.variables.json +1 -0
  809. package/src/components/alert-dialog/alert-dialog.schema.json +53 -0
  810. package/src/components/alert-dialog/alert-dialog.variables.json +1 -0
  811. package/src/components/approval-card/approval-card.css +31 -1
  812. package/src/components/approval-card/approval-card.examples.json +1 -1
  813. package/src/components/approval-card/approval-card.schema.json +211 -0
  814. package/src/components/approval-card/approval-card.variables.json +1 -0
  815. package/src/components/area-chart/area-chart.schema.json +143 -0
  816. package/src/components/area-chart/area-chart.variables.json +1 -0
  817. package/src/components/aspect-ratio/aspect-ratio.schema.json +143 -0
  818. package/src/components/aspect-ratio/aspect-ratio.variables.json +1 -0
  819. package/src/components/autocomplete/autocomplete.schema.json +79 -0
  820. package/src/components/autocomplete/autocomplete.variables.json +1 -0
  821. package/src/components/avatar/avatar.schema.json +36 -0
  822. package/src/components/avatar/avatar.variables.json +1 -0
  823. package/src/components/avatar-group/avatar-group.schema.json +69 -0
  824. package/src/components/avatar-group/avatar-group.variables.json +1 -0
  825. package/src/components/backdrop/backdrop.schema.json +44 -0
  826. package/src/components/backdrop/backdrop.variables.json +1 -0
  827. package/src/components/badge/badge.schema.json +39 -0
  828. package/src/components/badge/badge.variables.json +1 -0
  829. package/src/components/banner/banner.schema.json +39 -0
  830. package/src/components/banner/banner.variables.json +1 -0
  831. package/src/components/bar-chart/bar-chart.schema.json +144 -0
  832. package/src/components/bar-chart/bar-chart.variables.json +1 -0
  833. package/src/components/bento-cell/bento-cell.schema.json +105 -0
  834. package/src/components/bento-cell/bento-cell.variables.json +1 -0
  835. package/src/components/bento-grid/bento-grid.schema.json +54 -0
  836. package/src/components/bento-grid/bento-grid.variables.json +1 -0
  837. package/src/components/blog-section/blog-section.css +2 -1
  838. package/src/components/blog-section/blog-section.schema.json +82 -0
  839. package/src/components/blog-section/blog-section.variables.json +1 -0
  840. package/src/components/breadcrumbs/breadcrumbs.schema.json +21 -0
  841. package/src/components/breadcrumbs/breadcrumbs.variables.json +1 -0
  842. package/src/components/button/button.schema.json +62 -0
  843. package/src/components/button/button.variables.json +1 -0
  844. package/src/components/button-group/button-group.schema.json +33 -0
  845. package/src/components/button-group/button-group.variables.json +1 -0
  846. package/src/components/calendar/calendar.schema.json +61 -0
  847. package/src/components/calendar/calendar.variables.json +1 -0
  848. package/src/components/callout/callout.schema.json +38 -0
  849. package/src/components/callout/callout.variables.json +1 -0
  850. package/src/components/capability-gate/capability-gate.schema.json +72 -0
  851. package/src/components/capability-gate/capability-gate.variables.json +1 -0
  852. package/src/components/card/card.css +53 -1
  853. package/src/components/card/card.examples.json +12 -0
  854. package/src/components/card/card.schema.json +64 -0
  855. package/src/components/card/card.variables.json +1 -0
  856. package/src/components/carousel/carousel.schema.json +46 -0
  857. package/src/components/carousel/carousel.variables.json +1 -0
  858. package/src/components/chat/chat.schema.json +250 -0
  859. package/src/components/chat/chat.variables.json +1 -0
  860. package/src/components/chat-conversation-header/chat-conversation-header.schema.json +34 -0
  861. package/src/components/chat-conversation-header/chat-conversation-header.variables.json +1 -0
  862. package/src/components/chat-conversation-list/chat-conversation-list.schema.json +45 -0
  863. package/src/components/chat-conversation-list/chat-conversation-list.variables.json +1 -0
  864. package/src/components/checkbox/checkbox.examples.json +6 -0
  865. package/src/components/checkbox/checkbox.schema.json +53 -0
  866. package/src/components/checkbox/checkbox.variables.json +1 -0
  867. package/src/components/checkbox-group/checkbox-group.schema.json +45 -0
  868. package/src/components/checkbox-group/checkbox-group.variables.json +1 -0
  869. package/src/components/chip/chip.schema.json +60 -0
  870. package/src/components/chip/chip.variables.json +1 -0
  871. package/src/components/choice-grid/choice-grid.schema.json +64 -0
  872. package/src/components/choice-grid/choice-grid.variables.json +1 -0
  873. package/src/components/choice-grid-item/choice-grid-item.schema.json +34 -0
  874. package/src/components/choice-grid-item/choice-grid-item.variables.json +1 -0
  875. package/src/components/click-away-listener/click-away-listener.schema.json +31 -0
  876. package/src/components/click-away-listener/click-away-listener.variables.json +1 -0
  877. package/src/components/code-block/code-block.css +56 -2
  878. package/src/components/code-block/code-block.schema.json +37 -0
  879. package/src/components/code-block/code-block.variables.json +1 -0
  880. package/src/components/collapsible/collapsible.schema.json +49 -0
  881. package/src/components/collapsible/collapsible.variables.json +1 -0
  882. package/src/components/color-field/color-field.schema.json +80 -0
  883. package/src/components/color-field/color-field.variables.json +1 -0
  884. package/src/components/color-picker/color-picker.schema.json +56 -0
  885. package/src/components/color-picker/color-picker.variables.json +1 -0
  886. package/src/components/color-swatch-picker/color-swatch-picker.schema.json +60 -0
  887. package/src/components/color-swatch-picker/color-swatch-picker.variables.json +1 -0
  888. package/src/components/combobox/combobox.schema.json +76 -0
  889. package/src/components/combobox/combobox.variables.json +1 -0
  890. package/src/components/command-item/command-item.schema.json +61 -0
  891. package/src/components/command-item/command-item.variables.json +1 -0
  892. package/src/components/command-menu/command-menu.schema.json +81 -0
  893. package/src/components/command-menu/command-menu.variables.json +1 -0
  894. package/src/components/command-palette/command-palette.schema.json +58 -0
  895. package/src/components/command-palette/command-palette.variables.json +1 -0
  896. package/src/components/confirm-dialog/confirm-dialog.schema.json +56 -0
  897. package/src/components/confirm-dialog/confirm-dialog.variables.json +1 -0
  898. package/src/components/container/container.schema.json +140 -0
  899. package/src/components/container/container.variables.json +1 -0
  900. package/src/components/context-menu/context-menu.schema.json +50 -0
  901. package/src/components/context-menu/context-menu.variables.json +1 -0
  902. package/src/components/context-menu-trigger/context-menu-trigger.schema.json +20 -0
  903. package/src/components/context-menu-trigger/context-menu-trigger.variables.json +1 -0
  904. package/src/components/copy-button/copy-button.schema.json +46 -0
  905. package/src/components/copy-button/copy-button.variables.json +1 -0
  906. package/src/components/cta-section/cta-section.schema.json +67 -0
  907. package/src/components/cta-section/cta-section.variables.json +1 -0
  908. package/src/components/data-grid/data-grid.schema.json +106 -0
  909. package/src/components/data-grid/data-grid.variables.json +1 -0
  910. package/src/components/data-list/data-list.schema.json +42 -0
  911. package/src/components/data-list/data-list.variables.json +1 -0
  912. package/src/components/data-table/data-table.schema.json +96 -0
  913. package/src/components/data-table/data-table.variables.json +1 -0
  914. package/src/components/date-picker/date-picker.schema.json +61 -0
  915. package/src/components/date-picker/date-picker.variables.json +1 -0
  916. package/src/components/date-range-field/date-range-field.schema.json +66 -0
  917. package/src/components/date-range-field/date-range-field.variables.json +1 -0
  918. package/src/components/description-list/description-list.schema.json +29 -0
  919. package/src/components/description-list/description-list.variables.json +1 -0
  920. package/src/components/diff-statistics/diff-statistics.schema.json +36 -0
  921. package/src/components/diff-statistics/diff-statistics.variables.json +1 -0
  922. package/src/components/diff-viewer/diff-viewer.schema.json +61 -0
  923. package/src/components/diff-viewer/diff-viewer.variables.json +1 -0
  924. package/src/components/divider/divider.schema.json +31 -0
  925. package/src/components/divider/divider.variables.json +1 -0
  926. package/src/components/drawer/drawer.schema.json +57 -0
  927. package/src/components/drawer/drawer.variables.json +1 -0
  928. package/src/components/dropdown/dropdown.schema.json +35 -0
  929. package/src/components/dropdown/dropdown.variables.json +1 -0
  930. package/src/components/dropdown-group/dropdown-group.schema.json +28 -0
  931. package/src/components/dropdown-group/dropdown-group.variables.json +1 -0
  932. package/src/components/dropdown-item/dropdown-item.schema.json +51 -0
  933. package/src/components/dropdown-item/dropdown-item.variables.json +1 -0
  934. package/src/components/dropdown-label/dropdown-label.schema.json +19 -0
  935. package/src/components/dropdown-label/dropdown-label.variables.json +1 -0
  936. package/src/components/dropdown-menu/dropdown-menu.schema.json +19 -0
  937. package/src/components/dropdown-menu/dropdown-menu.variables.json +1 -0
  938. package/src/components/dropdown-separator/dropdown-separator.schema.json +11 -0
  939. package/src/components/dropdown-separator/dropdown-separator.variables.json +1 -0
  940. package/src/components/dropdown-trigger/dropdown-trigger.schema.json +23 -0
  941. package/src/components/dropdown-trigger/dropdown-trigger.variables.json +1 -0
  942. package/src/components/empty-state/empty-state.schema.json +37 -0
  943. package/src/components/empty-state/empty-state.variables.json +1 -0
  944. package/src/components/event-stream-viewer/event-stream-viewer.schema.json +128 -0
  945. package/src/components/event-stream-viewer/event-stream-viewer.variables.json +1 -0
  946. package/src/components/event-timeline/event-timeline.schema.json +95 -0
  947. package/src/components/event-timeline/event-timeline.variables.json +1 -0
  948. package/src/components/faceted-filter-bar/faceted-filter-bar.schema.json +65 -0
  949. package/src/components/faceted-filter-bar/faceted-filter-bar.variables.json +1 -0
  950. package/src/components/feature-section/feature-section.css +3 -2
  951. package/src/components/feature-section/feature-section.schema.json +82 -0
  952. package/src/components/feature-section/feature-section.variables.json +1 -0
  953. package/src/components/feed/feed.schema.json +25 -0
  954. package/src/components/feed/feed.variables.json +1 -0
  955. package/src/components/feed-event/feed-event.schema.json +43 -0
  956. package/src/components/feed-event/feed-event.variables.json +1 -0
  957. package/src/components/file-upload/file-upload.schema.json +70 -0
  958. package/src/components/file-upload/file-upload.variables.json +6 -0
  959. package/src/components/floating-action-button/floating-action-button.schema.json +44 -0
  960. package/src/components/floating-action-button/floating-action-button.variables.json +1 -0
  961. package/src/components/focus-trap/focus-trap.schema.json +50 -0
  962. package/src/components/focus-trap/focus-trap.variables.json +1 -0
  963. package/src/components/footer/footer.css +2 -1
  964. package/src/components/footer/footer.schema.json +41 -0
  965. package/src/components/footer/footer.variables.json +1 -0
  966. package/src/components/form-field/form-field.schema.json +46 -0
  967. package/src/components/form-field/form-field.variables.json +1 -0
  968. package/src/components/form-section/form-section.schema.json +41 -0
  969. package/src/components/form-section/form-section.variables.json +1 -0
  970. package/src/components/grid/grid.schema.json +53 -0
  971. package/src/components/grid/grid.variables.json +1 -0
  972. package/src/components/grid-item/grid-item.schema.json +80 -0
  973. package/src/components/grid-item/grid-item.variables.json +1 -0
  974. package/src/components/grid-list/grid-list.schema.json +26 -0
  975. package/src/components/grid-list/grid-list.variables.json +1 -0
  976. package/src/components/grid-list-item/grid-list-item.schema.json +60 -0
  977. package/src/components/grid-list-item/grid-list-item.variables.json +1 -0
  978. package/src/components/hero-section/hero-section.css +2 -1
  979. package/src/components/hero-section/hero-section.schema.json +63 -0
  980. package/src/components/hero-section/hero-section.variables.json +1 -0
  981. package/src/components/hover-card/hover-card.schema.json +74 -0
  982. package/src/components/hover-card/hover-card.variables.json +1 -0
  983. package/src/components/image/image.schema.json +64 -0
  984. package/src/components/image/image.variables.json +1 -0
  985. package/src/components/inline-loading/inline-loading.schema.json +29 -0
  986. package/src/components/inline-loading/inline-loading.variables.json +1 -0
  987. package/src/components/input/input.schema.json +75 -0
  988. package/src/components/input/input.variables.json +1 -0
  989. package/src/components/invocation-rule-builder/invocation-rule-builder.schema.json +163 -0
  990. package/src/components/invocation-rule-builder/invocation-rule-builder.variables.json +1 -0
  991. package/src/components/json-schema-editor/json-schema-editor.schema.json +63 -0
  992. package/src/components/json-schema-editor/json-schema-editor.variables.json +1 -0
  993. package/src/components/json-viewer/json-viewer.schema.json +33 -0
  994. package/src/components/json-viewer/json-viewer.variables.json +1 -0
  995. package/src/components/kanban-board/kanban-board.schema.json +64 -0
  996. package/src/components/kanban-board/kanban-board.variables.json +6 -0
  997. package/src/components/kbd/kbd.schema.json +29 -0
  998. package/src/components/kbd/kbd.variables.json +1 -0
  999. package/src/components/keyboard-shortcuts/keyboard-shortcuts.schema.json +30 -0
  1000. package/src/components/keyboard-shortcuts/keyboard-shortcuts.variables.json +1 -0
  1001. package/src/components/label/label.schema.json +35 -0
  1002. package/src/components/label/label.variables.json +1 -0
  1003. package/src/components/line-chart/line-chart.schema.json +139 -0
  1004. package/src/components/line-chart/line-chart.variables.json +1 -0
  1005. package/src/components/link/link.schema.json +61 -0
  1006. package/src/components/link/link.variables.json +1 -0
  1007. package/src/components/load-more/load-more.schema.json +58 -0
  1008. package/src/components/load-more/load-more.variables.json +1 -0
  1009. package/src/components/locale-provider/locale-provider.schema.json +24 -0
  1010. package/src/components/locale-provider/locale-provider.variables.json +1 -0
  1011. package/src/components/logo-cloud/logo-cloud.css +3 -2
  1012. package/src/components/logo-cloud/logo-cloud.schema.json +63 -0
  1013. package/src/components/logo-cloud/logo-cloud.variables.json +1 -0
  1014. package/src/components/markdown-editor/markdown-editor.examples.json +6 -0
  1015. package/src/components/markdown-editor/markdown-editor.schema.json +111 -0
  1016. package/src/components/markdown-editor/markdown-editor.variables.json +1 -0
  1017. package/src/components/marquee/marquee.schema.json +50 -0
  1018. package/src/components/marquee/marquee.variables.json +1 -0
  1019. package/src/components/masonry/masonry.schema.json +34 -0
  1020. package/src/components/masonry/masonry.variables.json +1 -0
  1021. package/src/components/matrix-chart/matrix-chart.schema.json +90 -0
  1022. package/src/components/matrix-chart/matrix-chart.variables.json +1 -0
  1023. package/src/components/media-controls/media-controls.schema.json +68 -0
  1024. package/src/components/media-controls/media-controls.variables.json +1 -0
  1025. package/src/components/mega-menu/mega-menu.schema.json +37 -0
  1026. package/src/components/mega-menu/mega-menu.variables.json +1 -0
  1027. package/src/components/menu-bar/menu-bar.schema.json +32 -0
  1028. package/src/components/menu-bar/menu-bar.variables.json +1 -0
  1029. package/src/components/message/message.schema.json +38 -0
  1030. package/src/components/message/message.variables.json +1 -0
  1031. package/src/components/meter/meter.schema.json +51 -0
  1032. package/src/components/meter/meter.variables.json +1 -0
  1033. package/src/components/modal/modal.schema.json +77 -0
  1034. package/src/components/modal/modal.variables.json +1 -0
  1035. package/src/components/multi-select/multi-select.schema.json +88 -0
  1036. package/src/components/multi-select/multi-select.variables.json +1 -0
  1037. package/src/components/navigation-bar/navigation-bar.css +15 -0
  1038. package/src/components/navigation-bar/navigation-bar.examples.json +1 -1
  1039. package/src/components/navigation-bar/navigation-bar.schema.json +57 -0
  1040. package/src/components/navigation-bar/navigation-bar.variables.json +1 -0
  1041. package/src/components/navigation-item/navigation-item.schema.json +45 -0
  1042. package/src/components/navigation-item/navigation-item.variables.json +1 -0
  1043. package/src/components/newsletter-section/newsletter-section.css +2 -1
  1044. package/src/components/newsletter-section/newsletter-section.schema.json +62 -0
  1045. package/src/components/newsletter-section/newsletter-section.variables.json +1 -0
  1046. package/src/components/number-input/number-input.schema.json +91 -0
  1047. package/src/components/number-input/number-input.variables.json +1 -0
  1048. package/src/components/page-header/page-header.schema.json +29 -0
  1049. package/src/components/page-header/page-header.variables.json +1 -0
  1050. package/src/components/pagination/pagination.examples.json +12 -0
  1051. package/src/components/pagination/pagination.schema.json +33 -0
  1052. package/src/components/pagination/pagination.variables.json +1 -0
  1053. package/src/components/payload-inspector/payload-inspector.schema.json +63 -0
  1054. package/src/components/payload-inspector/payload-inspector.variables.json +1 -0
  1055. package/src/components/permission-matrix/permission-matrix.schema.json +70 -0
  1056. package/src/components/permission-matrix/permission-matrix.variables.json +1 -0
  1057. package/src/components/phone-input/phone-input.schema.json +572 -0
  1058. package/src/components/phone-input/phone-input.variables.json +1 -0
  1059. package/src/components/pin-input/pin-input.schema.json +82 -0
  1060. package/src/components/pin-input/pin-input.variables.json +1 -0
  1061. package/src/components/popover/popover.schema.json +88 -0
  1062. package/src/components/popover/popover.variables.json +1 -0
  1063. package/src/components/portal/portal.schema.json +39 -0
  1064. package/src/components/portal/portal.variables.json +1 -0
  1065. package/src/components/pricing-card/pricing-card.schema.json +50 -0
  1066. package/src/components/pricing-card/pricing-card.variables.json +1 -0
  1067. package/src/components/pricing-section/pricing-section.css +2 -1
  1068. package/src/components/pricing-section/pricing-section.schema.json +82 -0
  1069. package/src/components/pricing-section/pricing-section.variables.json +1 -0
  1070. package/src/components/progress/progress.schema.json +39 -0
  1071. package/src/components/progress/progress.variables.json +1 -0
  1072. package/src/components/qr-code/qr-code.schema.json +36 -0
  1073. package/src/components/qr-code/qr-code.variables.json +1 -0
  1074. package/src/components/radio-group/radio-group.schema.json +54 -0
  1075. package/src/components/radio-group/radio-group.variables.json +1 -0
  1076. package/src/components/rating/rating.schema.json +77 -0
  1077. package/src/components/rating/rating.variables.json +1 -0
  1078. package/src/components/resizable-panels/resizable-panels.schema.json +53 -0
  1079. package/src/components/resizable-panels/resizable-panels.variables.json +1 -0
  1080. package/src/components/review-editor/review-editor.schema.json +83 -0
  1081. package/src/components/review-editor/review-editor.variables.json +1 -0
  1082. package/src/components/run-step-timeline/run-step-timeline.schema.json +429 -0
  1083. package/src/components/run-step-timeline/run-step-timeline.variables.json +1 -0
  1084. package/src/components/schema-form/schema-form.schema.json +39 -0
  1085. package/src/components/schema-form/schema-form.variables.json +1 -0
  1086. package/src/components/scroll-area/scroll-area.schema.json +45 -0
  1087. package/src/components/scroll-area/scroll-area.variables.json +1 -0
  1088. package/src/components/search-field/search-field.schema.json +63 -0
  1089. package/src/components/search-field/search-field.variables.json +1 -0
  1090. package/src/components/secret-value-field/secret-value-field.schema.json +53 -0
  1091. package/src/components/secret-value-field/secret-value-field.variables.json +1 -0
  1092. package/src/components/section-heading/section-heading.schema.json +43 -0
  1093. package/src/components/section-heading/section-heading.variables.json +1 -0
  1094. package/src/components/segment/segment.schema.json +45 -0
  1095. package/src/components/segment/segment.variables.json +1 -0
  1096. package/src/components/segmented-control/segmented-control.schema.json +84 -0
  1097. package/src/components/segmented-control/segmented-control.variables.json +1 -0
  1098. package/src/components/select/select.schema.json +52 -0
  1099. package/src/components/select/select.variables.json +1 -0
  1100. package/src/components/selection-popover/selection-popover.schema.json +50 -0
  1101. package/src/components/selection-popover/selection-popover.variables.json +1 -0
  1102. package/src/components/share-card/share-card.schema.json +55 -0
  1103. package/src/components/share-card/share-card.variables.json +1 -0
  1104. package/src/components/sheet/sheet.schema.json +53 -0
  1105. package/src/components/sheet/sheet.variables.json +1 -0
  1106. package/src/components/shortcut-hint/shortcut-hint.schema.json +37 -0
  1107. package/src/components/shortcut-hint/shortcut-hint.variables.json +1 -0
  1108. package/src/components/side-navigation/side-navigation.schema.json +27 -0
  1109. package/src/components/side-navigation/side-navigation.variables.json +1 -0
  1110. package/src/components/side-navigation-group/side-navigation-group.schema.json +49 -0
  1111. package/src/components/side-navigation-group/side-navigation-group.variables.json +1 -0
  1112. package/src/components/side-navigation-item/side-navigation-item.schema.json +45 -0
  1113. package/src/components/side-navigation-item/side-navigation-item.variables.json +1 -0
  1114. package/src/components/sidebar/sidebar.css +14 -0
  1115. package/src/components/sidebar/sidebar.schema.json +38 -0
  1116. package/src/components/sidebar/sidebar.variables.json +1 -0
  1117. package/src/components/skeleton/skeleton.schema.json +23 -0
  1118. package/src/components/skeleton/skeleton.variables.json +1 -0
  1119. package/src/components/skip-link/skip-link.schema.json +25 -0
  1120. package/src/components/skip-link/skip-link.variables.json +1 -0
  1121. package/src/components/slider/slider.schema.json +82 -0
  1122. package/src/components/slider/slider.variables.json +1 -0
  1123. package/src/components/sortable-list/sortable-list.schema.json +64 -0
  1124. package/src/components/sortable-list/sortable-list.variables.json +1 -0
  1125. package/src/components/source-diff-viewer/source-diff-viewer.css +129 -0
  1126. package/src/components/source-diff-viewer/source-diff-viewer.examples.json +19 -0
  1127. package/src/components/source-diff-viewer/source-diff-viewer.schema.json +36 -0
  1128. package/src/components/source-diff-viewer/source-diff-viewer.variables.json +1 -0
  1129. package/src/components/sparkbar/sparkbar.schema.json +44 -0
  1130. package/src/components/sparkbar/sparkbar.variables.json +1 -0
  1131. package/src/components/spectrogram/spectrogram.schema.json +79 -0
  1132. package/src/components/spectrogram/spectrogram.variables.json +1 -0
  1133. package/src/components/spectrum-chart/spectrum-chart.schema.json +69 -0
  1134. package/src/components/spectrum-chart/spectrum-chart.variables.json +1 -0
  1135. package/src/components/speed-dial/speed-dial.schema.json +46 -0
  1136. package/src/components/speed-dial/speed-dial.variables.json +1 -0
  1137. package/src/components/speed-dial-action/speed-dial-action.schema.json +41 -0
  1138. package/src/components/speed-dial-action/speed-dial-action.variables.json +1 -0
  1139. package/src/components/spinner/spinner.schema.json +21 -0
  1140. package/src/components/spinner/spinner.variables.json +1 -0
  1141. package/src/components/stacked-list-item/stacked-list-item.schema.json +76 -0
  1142. package/src/components/stacked-list-item/stacked-list-item.variables.json +1 -0
  1143. package/src/components/stat/stat.schema.json +50 -0
  1144. package/src/components/stat/stat.variables.json +1 -0
  1145. package/src/components/stat-group/stat-group.schema.json +35 -0
  1146. package/src/components/stat-group/stat-group.variables.json +1 -0
  1147. package/src/components/stats-section/stats-section.schema.json +83 -0
  1148. package/src/components/stats-section/stats-section.variables.json +1 -0
  1149. package/src/components/status-dot/status-dot.schema.json +37 -0
  1150. package/src/components/status-dot/status-dot.variables.json +1 -0
  1151. package/src/components/steps/steps.schema.json +38 -0
  1152. package/src/components/steps/steps.variables.json +1 -0
  1153. package/src/components/surface/surface.schema.json +25 -0
  1154. package/src/components/surface/surface.variables.json +1 -0
  1155. package/src/components/tab/tab.schema.json +39 -0
  1156. package/src/components/tab/tab.variables.json +1 -0
  1157. package/src/components/tab-list/tab-list.schema.json +29 -0
  1158. package/src/components/tab-list/tab-list.variables.json +1 -0
  1159. package/src/components/tab-panel/tab-panel.schema.json +30 -0
  1160. package/src/components/tab-panel/tab-panel.variables.json +1 -0
  1161. package/src/components/table/table.schema.json +42 -0
  1162. package/src/components/table/table.variables.json +1 -0
  1163. package/src/components/table-body/table-body.schema.json +21 -0
  1164. package/src/components/table-body/table-body.variables.json +1 -0
  1165. package/src/components/table-cell/table-cell.schema.json +28 -0
  1166. package/src/components/table-cell/table-cell.variables.json +1 -0
  1167. package/src/components/table-header/table-header.schema.json +38 -0
  1168. package/src/components/table-header/table-header.variables.json +1 -0
  1169. package/src/components/table-header-cell/table-header-cell.schema.json +37 -0
  1170. package/src/components/table-header-cell/table-header-cell.variables.json +1 -0
  1171. package/src/components/table-of-contents/table-of-contents.schema.json +39 -0
  1172. package/src/components/table-of-contents/table-of-contents.variables.json +7 -0
  1173. package/src/components/table-row/table-row.schema.json +37 -0
  1174. package/src/components/table-row/table-row.variables.json +1 -0
  1175. package/src/components/tabs/tabs.css +6 -0
  1176. package/src/components/tabs/tabs.examples.json +6 -0
  1177. package/src/components/tabs/tabs.schema.json +42 -0
  1178. package/src/components/tabs/tabs.variables.json +1 -0
  1179. package/src/components/tag-input/tag-input.schema.json +162 -0
  1180. package/src/components/tag-input/tag-input.variables.json +1 -0
  1181. package/src/components/team-section/team-section.css +2 -1
  1182. package/src/components/team-section/team-section.schema.json +76 -0
  1183. package/src/components/team-section/team-section.variables.json +1 -0
  1184. package/src/components/testimonial-section/testimonial-section.css +2 -1
  1185. package/src/components/testimonial-section/testimonial-section.schema.json +71 -0
  1186. package/src/components/testimonial-section/testimonial-section.variables.json +1 -0
  1187. package/src/components/textarea/textarea.schema.json +58 -0
  1188. package/src/components/textarea/textarea.variables.json +1 -0
  1189. package/src/components/time-field/time-field.schema.json +77 -0
  1190. package/src/components/time-field/time-field.variables.json +1 -0
  1191. package/src/components/timeline/timeline.schema.json +90 -0
  1192. package/src/components/timeline/timeline.variables.json +1 -0
  1193. package/src/components/toast-region/toast-region.schema.json +39 -0
  1194. package/src/components/toast-region/toast-region.variables.json +1 -0
  1195. package/src/components/toggle/toggle.schema.json +53 -0
  1196. package/src/components/toggle/toggle.variables.json +1 -0
  1197. package/src/components/toolbar/toolbar.css +10 -11
  1198. package/src/components/toolbar/toolbar.examples.json +1 -1
  1199. package/src/components/toolbar/toolbar.schema.json +26 -0
  1200. package/src/components/toolbar/toolbar.variables.json +1 -0
  1201. package/src/components/tooltip/tooltip.schema.json +34 -0
  1202. package/src/components/tooltip/tooltip.variables.json +1 -0
  1203. package/src/components/transfer-list/transfer-list.schema.json +61 -0
  1204. package/src/components/transfer-list/transfer-list.variables.json +1 -0
  1205. package/src/components/tree/tree.schema.json +128 -0
  1206. package/src/components/tree/tree.variables.json +5 -0
  1207. package/src/components/tree-item/tree-item.schema.json +68 -0
  1208. package/src/components/tree-item/tree-item.variables.json +1 -0
  1209. package/src/components/typography/typography.schema.json +154 -0
  1210. package/src/components/typography/typography.variables.json +1 -0
  1211. package/src/components/virtual-list/virtual-list.schema.json +53 -0
  1212. package/src/components/virtual-list/virtual-list.variables.json +1 -0
  1213. package/src/components/visually-hidden/visually-hidden.schema.json +131 -0
  1214. package/src/components/visually-hidden/visually-hidden.variables.json +1 -0
  1215. package/src/components/waveform/waveform.schema.json +61 -0
  1216. package/src/components/waveform/waveform.variables.json +1 -0
  1217. package/src/index.ts +34 -37
  1218. package/src/styles/components.css +2 -0
  1219. package/src/styles/foundation.css +39 -0
  1220. package/src/styles/tokens-base.css +149 -0
  1221. package/src/styles/utilities.css +141 -21
  1222. package/dist/server/index-2ynappje.js +0 -388
  1223. package/dist/server/index-d3jpz7nh.js +0 -265
  1224. package/dist/server/index-v5tk8a0j.js +0 -344
  1225. package/dist/server/index.server-0n0h8wsw.js +0 -159
  1226. package/dist/server/index.server-1hrcs2mn.js +0 -55
  1227. package/dist/server/index.server-1q6csb7g.js +0 -62
  1228. package/dist/server/index.server-30s4ajz2.js +0 -3391
  1229. package/dist/server/index.server-37t15r2c.js +0 -9
  1230. package/dist/server/index.server-3jr3n02r.js +0 -1835
  1231. package/dist/server/index.server-3yvf1t1p.js +0 -197
  1232. package/dist/server/index.server-4h5tdvz1.js +0 -271
  1233. package/dist/server/index.server-4xer517a.js +0 -23
  1234. package/dist/server/index.server-51r677ht.js +0 -1035
  1235. package/dist/server/index.server-55x63e57.js +0 -9
  1236. package/dist/server/index.server-5zvh7svb.js +0 -9
  1237. package/dist/server/index.server-65wyd3qb.js +0 -244
  1238. package/dist/server/index.server-70y2sq2g.js +0 -9
  1239. package/dist/server/index.server-76z9qsxq.js +0 -93
  1240. package/dist/server/index.server-7pjefftj.js +0 -102
  1241. package/dist/server/index.server-7yp7j1bw.js +0 -371
  1242. package/dist/server/index.server-8s1t2e2w.js +0 -284
  1243. package/dist/server/index.server-90g4gszd.js +0 -1163
  1244. package/dist/server/index.server-989dxz7z.js +0 -9
  1245. package/dist/server/index.server-9ew3zj1z.js +0 -726
  1246. package/dist/server/index.server-9jqd7bxw.js +0 -117
  1247. package/dist/server/index.server-9zfs8c1b.js +0 -35
  1248. package/dist/server/index.server-9zqmr226.js +0 -117
  1249. package/dist/server/index.server-axf8h1gd.js +0 -161
  1250. package/dist/server/index.server-bt1gy21n.js +0 -100
  1251. package/dist/server/index.server-cpjmf3c9.js +0 -9
  1252. package/dist/server/index.server-dt0ccgbz.js +0 -3839
  1253. package/dist/server/index.server-e5zf44p5.js +0 -9
  1254. package/dist/server/index.server-eabjzvtt.js +0 -9
  1255. package/dist/server/index.server-edr3c033.js +0 -85
  1256. package/dist/server/index.server-eq83dtav.js +0 -195
  1257. package/dist/server/index.server-eqprncaf.js +0 -168
  1258. package/dist/server/index.server-ffcsn4km.js +0 -9
  1259. package/dist/server/index.server-fm19v7bt.js +0 -9
  1260. package/dist/server/index.server-g3qbp906.js +0 -377
  1261. package/dist/server/index.server-ga7e445m.js +0 -56
  1262. package/dist/server/index.server-gdtt4a78.js +0 -143
  1263. package/dist/server/index.server-gyg8tfq3.js +0 -176
  1264. package/dist/server/index.server-h2hjtvk4.js +0 -94
  1265. package/dist/server/index.server-hmqm1t7m.js +0 -222
  1266. package/dist/server/index.server-hrdm71tg.js +0 -194
  1267. package/dist/server/index.server-hybyy2xe.js +0 -177
  1268. package/dist/server/index.server-j3gec8b5.js +0 -393
  1269. package/dist/server/index.server-j89rzjcz.js +0 -9
  1270. package/dist/server/index.server-j8x6mvrh.js +0 -294
  1271. package/dist/server/index.server-jsxtrgrv.js +0 -9
  1272. package/dist/server/index.server-kfcst2vb.js +0 -9
  1273. package/dist/server/index.server-kfshf5nx.js +0 -111
  1274. package/dist/server/index.server-meehv9hp.js +0 -4416
  1275. package/dist/server/index.server-n16wn1ps.js +0 -15643
  1276. package/dist/server/index.server-n4f4tspa.js +0 -9
  1277. package/dist/server/index.server-pfn50743.js +0 -447
  1278. package/dist/server/index.server-pg2vydas.js +0 -190
  1279. package/dist/server/index.server-pm6q0dmn.js +0 -563
  1280. package/dist/server/index.server-pne61vry.js +0 -9
  1281. package/dist/server/index.server-rjgy0mc7.js +0 -1028
  1282. package/dist/server/index.server-rxa52bqt.js +0 -169
  1283. package/dist/server/index.server-sqnbagf9.js +0 -457
  1284. package/dist/server/index.server-svgs2fzj.js +0 -2309
  1285. package/dist/server/index.server-szrtfkbm.js +0 -31
  1286. package/dist/server/index.server-tgmm7xgc.js +0 -83
  1287. package/dist/server/index.server-v38m2bgg.js +0 -75
  1288. package/dist/server/index.server-v41vrqg7.js +0 -76
  1289. package/dist/server/index.server-vbn6z472.js +0 -291
  1290. package/dist/server/index.server-vdpcpdqc.js +0 -126
  1291. package/dist/server/index.server-vy5csx7j.js +0 -153
  1292. package/dist/server/index.server-w0y2bxb7.js +0 -72
  1293. package/dist/server/index.server-w7cxxf03.js +0 -9
  1294. package/dist/server/index.server-w8y3eqhp.js +0 -84
  1295. package/dist/server/index.server-wckvcay0.js +0 -50
  1296. package/dist/server/index.server-yg55jew8.js +0 -162
  1297. package/src/components/_internal/command-list-context.ts +0 -79
  1298. package/src/components/_internal/create-command-list-state.svelte.ts +0 -171
  1299. package/src/components/_internal/create-sliding-dialog-state.svelte.ts +0 -170
  1300. package/src/components/_internal/side-navigation-group-context.ts +0 -48
  1301. package/src/components/_radio/index.ts +0 -6
  1302. package/src/components/_radio/radio.svelte +0 -93
  1303. package/src/components/_radio/radio.types.ts +0 -27
  1304. package/src/components/_sortable-item.svelte +0 -587
  1305. package/src/components/_timeline-item/index.ts +0 -5
  1306. package/src/components/_timeline-item/timeline-item.svelte +0 -76
  1307. package/src/components/_timeline-item/timeline-item.types.ts +0 -51
  1308. package/src/components/_tree-expand-all/index.ts +0 -5
  1309. package/src/components/_tree-expand-all/tree-expand-all.svelte +0 -83
  1310. package/src/components/_tree-expand-all/tree-expand-all.types.ts +0 -15
  1311. package/src/components/_tree-select-all/index.ts +0 -5
  1312. package/src/components/_tree-select-all/tree-select-all.svelte +0 -68
  1313. package/src/components/_tree-select-all/tree-select-all.types.ts +0 -15
  1314. package/src/components/_visually-hidden-live-region.svelte +0 -120
  1315. package/src/components/access-gate/access-gate-inline.svelte +0 -417
  1316. package/src/components/access-gate/access-gate.svelte +0 -92
  1317. package/src/components/access-gate/access-gate.types.ts +0 -46
  1318. package/src/components/access-gate/index.ts +0 -6
  1319. package/src/components/accordion/accordion.context.ts +0 -16
  1320. package/src/components/accordion/accordion.svelte +0 -66
  1321. package/src/components/accordion/accordion.types.ts +0 -37
  1322. package/src/components/accordion/index.ts +0 -16
  1323. package/src/components/accordion-item/accordion-item.svelte +0 -77
  1324. package/src/components/accordion-item/accordion-item.types.ts +0 -33
  1325. package/src/components/accordion-item/index.ts +0 -6
  1326. package/src/components/alert/alert.svelte +0 -158
  1327. package/src/components/alert/alert.types.ts +0 -58
  1328. package/src/components/alert/index.ts +0 -6
  1329. package/src/components/alert-dialog/alert-dialog.svelte +0 -80
  1330. package/src/components/alert-dialog/alert-dialog.types.ts +0 -19
  1331. package/src/components/alert-dialog/index.ts +0 -6
  1332. package/src/components/approval-card/approval-card-state.ts +0 -24
  1333. package/src/components/approval-card/approval-card.svelte +0 -583
  1334. package/src/components/approval-card/approval-card.types.ts +0 -180
  1335. package/src/components/approval-card/index.ts +0 -16
  1336. package/src/components/area-chart/area-chart.svelte +0 -410
  1337. package/src/components/area-chart/area-chart.types.ts +0 -61
  1338. package/src/components/area-chart/index.ts +0 -6
  1339. package/src/components/aspect-ratio/aspect-ratio.svelte +0 -53
  1340. package/src/components/aspect-ratio/aspect-ratio.types.ts +0 -53
  1341. package/src/components/aspect-ratio/index.ts +0 -10
  1342. package/src/components/autocomplete/autocomplete.svelte +0 -563
  1343. package/src/components/autocomplete/autocomplete.types.ts +0 -74
  1344. package/src/components/autocomplete/index.ts +0 -11
  1345. package/src/components/avatar/avatar.svelte +0 -73
  1346. package/src/components/avatar/avatar.types.ts +0 -33
  1347. package/src/components/avatar/index.ts +0 -6
  1348. package/src/components/avatar-group/avatar-group.svelte +0 -195
  1349. package/src/components/avatar-group/avatar-group.types.ts +0 -97
  1350. package/src/components/avatar-group/index.ts +0 -6
  1351. package/src/components/backdrop/backdrop.svelte +0 -105
  1352. package/src/components/backdrop/backdrop.types.ts +0 -30
  1353. package/src/components/backdrop/index.ts +0 -6
  1354. package/src/components/badge/badge.svelte +0 -118
  1355. package/src/components/badge/badge.types.ts +0 -67
  1356. package/src/components/badge/index.ts +0 -6
  1357. package/src/components/banner/banner.svelte +0 -156
  1358. package/src/components/banner/banner.types.ts +0 -46
  1359. package/src/components/banner/index.ts +0 -6
  1360. package/src/components/bar-chart/bar-chart.svelte +0 -426
  1361. package/src/components/bar-chart/bar-chart.types.ts +0 -62
  1362. package/src/components/bar-chart/index.ts +0 -6
  1363. package/src/components/bento-cell/bento-cell.svelte +0 -62
  1364. package/src/components/bento-cell/bento-cell.types.ts +0 -24
  1365. package/src/components/bento-cell/index.ts +0 -6
  1366. package/src/components/bento-grid/bento-grid.svelte +0 -104
  1367. package/src/components/bento-grid/bento-grid.types.ts +0 -33
  1368. package/src/components/bento-grid/index.ts +0 -12
  1369. package/src/components/blog-section/blog-section.svelte +0 -107
  1370. package/src/components/blog-section/blog-section.types.ts +0 -59
  1371. package/src/components/blog-section/index.ts +0 -6
  1372. package/src/components/breadcrumbs/breadcrumbs.svelte +0 -51
  1373. package/src/components/breadcrumbs/breadcrumbs.types.ts +0 -43
  1374. package/src/components/breadcrumbs/index.ts +0 -6
  1375. package/src/components/button/button.constraints.ts +0 -102
  1376. package/src/components/button/button.svelte +0 -249
  1377. package/src/components/button/button.types.ts +0 -120
  1378. package/src/components/button/index.ts +0 -6
  1379. package/src/components/button-group/button-group.svelte +0 -127
  1380. package/src/components/button-group/button-group.types.ts +0 -34
  1381. package/src/components/button-group/index.ts +0 -6
  1382. package/src/components/calendar/calendar.svelte +0 -373
  1383. package/src/components/calendar/calendar.types.ts +0 -31
  1384. package/src/components/calendar/index.ts +0 -6
  1385. package/src/components/callout/callout.svelte +0 -85
  1386. package/src/components/callout/callout.types.ts +0 -80
  1387. package/src/components/callout/index.ts +0 -6
  1388. package/src/components/capability-gate/capability-gate.svelte +0 -186
  1389. package/src/components/capability-gate/capability-gate.types.ts +0 -83
  1390. package/src/components/capability-gate/index.ts +0 -10
  1391. package/src/components/card/card.svelte +0 -83
  1392. package/src/components/card/card.types.ts +0 -55
  1393. package/src/components/card/index.ts +0 -6
  1394. package/src/components/carousel/carousel.svelte +0 -255
  1395. package/src/components/carousel/carousel.types.ts +0 -47
  1396. package/src/components/carousel/index.ts +0 -11
  1397. package/src/components/chart.types.ts +0 -116
  1398. package/src/components/chat/adapter/chat-adapter.ts +0 -132
  1399. package/src/components/chat/adapter/index.ts +0 -15
  1400. package/src/components/chat/artifact/artifact-panel.svelte +0 -127
  1401. package/src/components/chat/artifact/artifact-viewer.svelte +0 -110
  1402. package/src/components/chat/artifact/chat-artifact-layout.svelte +0 -85
  1403. package/src/components/chat/artifact/index.ts +0 -3
  1404. package/src/components/chat/builders.ts +0 -33
  1405. package/src/components/chat/chat.svelte +0 -71
  1406. package/src/components/chat/chat.types.ts +0 -246
  1407. package/src/components/chat/container/chat-events.ts +0 -26
  1408. package/src/components/chat/container/chat-history-trigger.svelte +0 -115
  1409. package/src/components/chat/container/chat-jump-controls.svelte +0 -220
  1410. package/src/components/chat/container/chat-participant-typing.svelte +0 -156
  1411. package/src/components/chat/container/chat-search-bar.svelte +0 -266
  1412. package/src/components/chat/container/chat-status-announcer.svelte +0 -40
  1413. package/src/components/chat/container/chat.svelte +0 -2102
  1414. package/src/components/chat/container/index.ts +0 -64
  1415. package/src/components/chat/container/scroll-utilities.ts +0 -204
  1416. package/src/components/chat/container/use-chat-disclosure-state.svelte.ts +0 -96
  1417. package/src/components/chat/container/use-chat-keyboard-nav.svelte.ts +0 -203
  1418. package/src/components/chat/container/use-chat-message-groups.svelte.ts +0 -237
  1419. package/src/components/chat/container/use-chat-read-receipts.svelte.ts +0 -103
  1420. package/src/components/chat/container/use-chat-scroll-state.svelte.ts +0 -417
  1421. package/src/components/chat/container/use-chat-search.svelte.ts +0 -178
  1422. package/src/components/chat/container/use-chat-typing-indicator.svelte.ts +0 -200
  1423. package/src/components/chat/container/use-chat-unread-state.svelte.ts +0 -247
  1424. package/src/components/chat/container/use-chat-virtualizer.svelte.ts +0 -328
  1425. package/src/components/chat/conversation-model.ts +0 -44
  1426. package/src/components/chat/export/conversation-export-actions.svelte +0 -202
  1427. package/src/components/chat/export/index.ts +0 -9
  1428. package/src/components/chat/index.ts +0 -125
  1429. package/src/components/chat/input/attachment-kind.ts +0 -28
  1430. package/src/components/chat/input/chat-attachment-preview.svelte +0 -231
  1431. package/src/components/chat/input/chat-attachment.ts +0 -12
  1432. package/src/components/chat/input/chat-input.svelte +0 -938
  1433. package/src/components/chat/input/index.ts +0 -4
  1434. package/src/components/chat/message/chat-date-separator.svelte +0 -106
  1435. package/src/components/chat/message/chat-message-parts-renderer.svelte +0 -153
  1436. package/src/components/chat/message/chat-message-parts.ts +0 -163
  1437. package/src/components/chat/message/chat-message.svelte +0 -992
  1438. package/src/components/chat/message/chat-read-receipt.svelte +0 -115
  1439. package/src/components/chat/message/image-lightbox.svelte +0 -283
  1440. package/src/components/chat/message/index.ts +0 -6
  1441. package/src/components/chat/message/markdown-preview.svelte +0 -84
  1442. package/src/components/chat/message/message-attachments.svelte +0 -209
  1443. package/src/components/chat/message/message-content.svelte +0 -163
  1444. package/src/components/chat/message/parts/image-part.svelte +0 -27
  1445. package/src/components/chat/message/parts/markdown-part.svelte +0 -23
  1446. package/src/components/chat/message/parts/reasoning-part.svelte +0 -288
  1447. package/src/components/chat/message/parts/step-part.svelte +0 -134
  1448. package/src/components/chat/message/parts/suggestion-part.svelte +0 -99
  1449. package/src/components/chat/message/parts/tool-approval-part.svelte +0 -317
  1450. package/src/components/chat/message/parts/tool-call-part.svelte +0 -31
  1451. package/src/components/chat/message/parts/tool-result-part.svelte +0 -74
  1452. package/src/components/chat/message/tool-call-group.svelte +0 -303
  1453. package/src/components/chat/message/tool-payload-code.svelte +0 -76
  1454. package/src/components/chat/utilities/conversation.ts +0 -26
  1455. package/src/components/chat/utilities/index.ts +0 -33
  1456. package/src/components/chat/utilities/types.ts +0 -288
  1457. package/src/components/chat/utilities/utilities.ts +0 -507
  1458. package/src/components/chat-conversation-header/chat-conversation-header.svelte +0 -83
  1459. package/src/components/chat-conversation-header/chat-conversation-header.types.ts +0 -20
  1460. package/src/components/chat-conversation-header/index.ts +0 -9
  1461. package/src/components/chat-conversation-list/chat-conversation-list.svelte +0 -110
  1462. package/src/components/chat-conversation-list/chat-conversation-list.types.ts +0 -18
  1463. package/src/components/chat-conversation-list/conversation-summary.ts +0 -88
  1464. package/src/components/chat-conversation-list/index.ts +0 -11
  1465. package/src/components/checkbox/checkbox.svelte +0 -164
  1466. package/src/components/checkbox/checkbox.types.ts +0 -37
  1467. package/src/components/checkbox/index.ts +0 -6
  1468. package/src/components/checkbox-group/checkbox-group.svelte +0 -101
  1469. package/src/components/checkbox-group/checkbox-group.types.ts +0 -58
  1470. package/src/components/checkbox-group/index.ts +0 -6
  1471. package/src/components/chip/chip.svelte +0 -194
  1472. package/src/components/chip/chip.types.ts +0 -89
  1473. package/src/components/chip/index.ts +0 -15
  1474. package/src/components/choice-grid/choice-grid-context.ts +0 -30
  1475. package/src/components/choice-grid/choice-grid.svelte +0 -272
  1476. package/src/components/choice-grid/choice-grid.types.ts +0 -152
  1477. package/src/components/choice-grid/index.ts +0 -22
  1478. package/src/components/choice-grid-item/choice-grid-item.svelte +0 -139
  1479. package/src/components/choice-grid-item/choice-grid-item.types.ts +0 -30
  1480. package/src/components/choice-grid-item/index.ts +0 -6
  1481. package/src/components/click-away-listener/click-away-listener.svelte +0 -76
  1482. package/src/components/click-away-listener/click-away-listener.types.ts +0 -28
  1483. package/src/components/click-away-listener/index.ts +0 -5
  1484. package/src/components/code-block/code-block-default-highlighter.ts +0 -63
  1485. package/src/components/code-block/code-block.svelte +0 -141
  1486. package/src/components/code-block/code-block.types.ts +0 -54
  1487. package/src/components/code-block/index.ts +0 -6
  1488. package/src/components/collapsible/collapsible-bindable-harness.svelte +0 -19
  1489. package/src/components/collapsible/collapsible-open-prop-harness.svelte +0 -19
  1490. package/src/components/collapsible/collapsible-snippet-trigger-harness.svelte +0 -16
  1491. package/src/components/collapsible/collapsible.svelte +0 -122
  1492. package/src/components/collapsible/collapsible.types.ts +0 -75
  1493. package/src/components/collapsible/index.ts +0 -6
  1494. package/src/components/color-field/color-field.svelte +0 -446
  1495. package/src/components/color-field/color-field.types.ts +0 -60
  1496. package/src/components/color-field/index.ts +0 -6
  1497. package/src/components/color-picker/color-picker.svelte +0 -679
  1498. package/src/components/color-picker/color-picker.types.ts +0 -27
  1499. package/src/components/color-picker/index.ts +0 -6
  1500. package/src/components/color-swatch-picker/color-swatch-picker.svelte +0 -211
  1501. package/src/components/color-swatch-picker/color-swatch-picker.types.ts +0 -55
  1502. package/src/components/color-swatch-picker/index.ts +0 -6
  1503. package/src/components/combobox/combobox.svelte +0 -411
  1504. package/src/components/combobox/combobox.types.ts +0 -80
  1505. package/src/components/combobox/index.ts +0 -6
  1506. package/src/components/command-item/command-item.svelte +0 -144
  1507. package/src/components/command-item/command-item.types.ts +0 -42
  1508. package/src/components/command-item/index.ts +0 -6
  1509. package/src/components/command-menu/caret-rect.svelte.ts +0 -93
  1510. package/src/components/command-menu/command-menu-trigger.ts +0 -41
  1511. package/src/components/command-menu/command-menu.svelte +0 -179
  1512. package/src/components/command-menu/command-menu.types.ts +0 -49
  1513. package/src/components/command-menu/index.ts +0 -12
  1514. package/src/components/command-palette/command-palette.svelte +0 -237
  1515. package/src/components/command-palette/command-palette.types.ts +0 -30
  1516. package/src/components/command-palette/index.ts +0 -6
  1517. package/src/components/confirm-dialog/confirm-dialog.svelte +0 -72
  1518. package/src/components/confirm-dialog/confirm-dialog.types.ts +0 -52
  1519. package/src/components/confirm-dialog/index.ts +0 -6
  1520. package/src/components/container/container.svelte +0 -41
  1521. package/src/components/container/container.types.ts +0 -54
  1522. package/src/components/container/index.ts +0 -6
  1523. package/src/components/context-menu/context-menu.context.ts +0 -22
  1524. package/src/components/context-menu/context-menu.svelte +0 -219
  1525. package/src/components/context-menu/context-menu.types.ts +0 -24
  1526. package/src/components/context-menu/index.ts +0 -21
  1527. package/src/components/context-menu-trigger/context-menu-trigger.svelte +0 -183
  1528. package/src/components/context-menu-trigger/context-menu-trigger.types.ts +0 -8
  1529. package/src/components/context-menu-trigger/index.ts +0 -5
  1530. package/src/components/copy-button/__test-helpers__/copy-state-wrapper.svelte +0 -30
  1531. package/src/components/copy-button/copy-button.svelte +0 -104
  1532. package/src/components/copy-button/copy-button.types.ts +0 -49
  1533. package/src/components/copy-button/index.ts +0 -6
  1534. package/src/components/copy-button/use-copy-state.svelte.ts +0 -101
  1535. package/src/components/cta-section/cta-section.svelte +0 -67
  1536. package/src/components/cta-section/cta-section.types.ts +0 -55
  1537. package/src/components/cta-section/index.ts +0 -6
  1538. package/src/components/data-grid/_internal/column-model.svelte.ts +0 -220
  1539. package/src/components/data-grid/_internal/geometry.ts +0 -87
  1540. package/src/components/data-grid/_internal/keyboard-model.ts +0 -131
  1541. package/src/components/data-grid/_internal/selection-model.svelte.ts +0 -168
  1542. package/src/components/data-grid/_internal/sort-model.ts +0 -134
  1543. package/src/components/data-grid/_internal/virtualization-adapter.svelte.ts +0 -505
  1544. package/src/components/data-grid/data-grid-selection-bind-probe.ts +0 -15
  1545. package/src/components/data-grid/data-grid.svelte +0 -1030
  1546. package/src/components/data-grid/data-grid.types.ts +0 -124
  1547. package/src/components/data-grid/index.ts +0 -16
  1548. package/src/components/data-list/data-list.svelte +0 -60
  1549. package/src/components/data-list/data-list.types.ts +0 -53
  1550. package/src/components/data-list/index.ts +0 -6
  1551. package/src/components/data-table/data-table.svelte +0 -560
  1552. package/src/components/data-table/data-table.types.ts +0 -150
  1553. package/src/components/data-table/index.ts +0 -11
  1554. package/src/components/date-picker/date-picker.svelte +0 -243
  1555. package/src/components/date-picker/date-picker.types.ts +0 -33
  1556. package/src/components/date-picker/index.ts +0 -6
  1557. package/src/components/date-range-field/date-range-field.svelte +0 -403
  1558. package/src/components/date-range-field/date-range-field.types.ts +0 -84
  1559. package/src/components/date-range-field/index.ts +0 -11
  1560. package/src/components/description-list/description-list.svelte +0 -89
  1561. package/src/components/description-list/description-list.types.ts +0 -37
  1562. package/src/components/description-list/index.ts +0 -11
  1563. package/src/components/diff-statistics/diff-statistics.svelte +0 -111
  1564. package/src/components/diff-statistics/diff-statistics.types.ts +0 -32
  1565. package/src/components/diff-statistics/index.ts +0 -10
  1566. package/src/components/diff-viewer/diff-controller.svelte.ts +0 -314
  1567. package/src/components/diff-viewer/diff-front-matter.svelte +0 -89
  1568. package/src/components/diff-viewer/diff-line.svelte +0 -366
  1569. package/src/components/diff-viewer/diff-summary-bar.svelte +0 -125
  1570. package/src/components/diff-viewer/diff-toolbar.svelte +0 -233
  1571. package/src/components/diff-viewer/diff-viewer.svelte +0 -487
  1572. package/src/components/diff-viewer/diff-viewer.types.ts +0 -56
  1573. package/src/components/diff-viewer/front-matter-header.svelte +0 -178
  1574. package/src/components/diff-viewer/index.ts +0 -5
  1575. package/src/components/divider/divider.svelte +0 -78
  1576. package/src/components/divider/divider.types.ts +0 -75
  1577. package/src/components/divider/index.ts +0 -6
  1578. package/src/components/drawer/drawer.svelte +0 -197
  1579. package/src/components/drawer/drawer.types.ts +0 -52
  1580. package/src/components/drawer/index.ts +0 -6
  1581. package/src/components/dropdown/dropdown.context.ts +0 -23
  1582. package/src/components/dropdown/dropdown.svelte +0 -257
  1583. package/src/components/dropdown/dropdown.types.ts +0 -48
  1584. package/src/components/dropdown/index.ts +0 -32
  1585. package/src/components/dropdown-group/dropdown-group.svelte +0 -74
  1586. package/src/components/dropdown-group/dropdown-group.types.ts +0 -26
  1587. package/src/components/dropdown-group/index.ts +0 -5
  1588. package/src/components/dropdown-item/dropdown-item.svelte +0 -166
  1589. package/src/components/dropdown-item/dropdown-item.types.ts +0 -75
  1590. package/src/components/dropdown-item/index.ts +0 -10
  1591. package/src/components/dropdown-label/dropdown-label.svelte +0 -31
  1592. package/src/components/dropdown-label/dropdown-label.types.ts +0 -7
  1593. package/src/components/dropdown-label/index.ts +0 -5
  1594. package/src/components/dropdown-menu/dropdown-menu.svelte +0 -230
  1595. package/src/components/dropdown-menu/dropdown-menu.types.ts +0 -7
  1596. package/src/components/dropdown-menu/index.ts +0 -5
  1597. package/src/components/dropdown-separator/dropdown-separator.svelte +0 -33
  1598. package/src/components/dropdown-separator/dropdown-separator.types.ts +0 -5
  1599. package/src/components/dropdown-separator/index.ts +0 -5
  1600. package/src/components/dropdown-trigger/dropdown-trigger.svelte +0 -90
  1601. package/src/components/dropdown-trigger/dropdown-trigger.types.ts +0 -9
  1602. package/src/components/dropdown-trigger/index.ts +0 -5
  1603. package/src/components/empty-state/empty-state.svelte +0 -68
  1604. package/src/components/empty-state/empty-state.types.ts +0 -18
  1605. package/src/components/empty-state/index.ts +0 -6
  1606. package/src/components/event-stream-viewer/event-stream-viewer-keys.ts +0 -74
  1607. package/src/components/event-stream-viewer/event-stream-viewer.svelte +0 -491
  1608. package/src/components/event-stream-viewer/event-stream-viewer.types.ts +0 -212
  1609. package/src/components/event-stream-viewer/index.ts +0 -17
  1610. package/src/components/event-timeline/event-timeline.svelte +0 -199
  1611. package/src/components/event-timeline/event-timeline.types.ts +0 -80
  1612. package/src/components/event-timeline/index.ts +0 -12
  1613. package/src/components/experimental/json-viewer/index.ts +0 -19
  1614. package/src/components/experimental/message/index.ts +0 -19
  1615. package/src/components/faceted-filter-bar/faceted-filter-bar.svelte +0 -219
  1616. package/src/components/faceted-filter-bar/faceted-filter-bar.types.ts +0 -98
  1617. package/src/components/faceted-filter-bar/index.ts +0 -13
  1618. package/src/components/feature-section/feature-section.svelte +0 -88
  1619. package/src/components/feature-section/feature-section.types.ts +0 -63
  1620. package/src/components/feature-section/index.ts +0 -11
  1621. package/src/components/feed/feed.svelte +0 -30
  1622. package/src/components/feed/feed.types.ts +0 -15
  1623. package/src/components/feed/index.ts +0 -16
  1624. package/src/components/feed-event/feed-event.svelte +0 -51
  1625. package/src/components/feed-event/feed-event.types.ts +0 -58
  1626. package/src/components/feed-event/index.ts +0 -5
  1627. package/src/components/file-upload/file-upload.svelte +0 -433
  1628. package/src/components/file-upload/file-upload.types.ts +0 -60
  1629. package/src/components/file-upload/index.ts +0 -12
  1630. package/src/components/floating-action-button/floating-action-button.svelte +0 -145
  1631. package/src/components/floating-action-button/floating-action-button.types.ts +0 -100
  1632. package/src/components/floating-action-button/index.ts +0 -11
  1633. package/src/components/focus-trap/focus-trap.svelte +0 -45
  1634. package/src/components/focus-trap/focus-trap.types.ts +0 -28
  1635. package/src/components/focus-trap/focus-trap.utilities.svelte.ts +0 -297
  1636. package/src/components/focus-trap/index.ts +0 -6
  1637. package/src/components/footer/footer.svelte +0 -79
  1638. package/src/components/footer/footer.types.ts +0 -30
  1639. package/src/components/footer/index.ts +0 -6
  1640. package/src/components/form-field/form-field.svelte +0 -98
  1641. package/src/components/form-field/form-field.types.ts +0 -19
  1642. package/src/components/form-field/index.ts +0 -6
  1643. package/src/components/form-section/form-section.svelte +0 -80
  1644. package/src/components/form-section/form-section.types.ts +0 -34
  1645. package/src/components/form-section/index.ts +0 -6
  1646. package/src/components/grid/grid.svelte +0 -62
  1647. package/src/components/grid/grid.types.ts +0 -31
  1648. package/src/components/grid/index.ts +0 -17
  1649. package/src/components/grid-item/grid-item.svelte +0 -55
  1650. package/src/components/grid-item/grid-item.types.ts +0 -22
  1651. package/src/components/grid-item/index.ts +0 -5
  1652. package/src/components/grid-list/grid-list.svelte +0 -36
  1653. package/src/components/grid-list/grid-list.types.ts +0 -15
  1654. package/src/components/grid-list/index.ts +0 -16
  1655. package/src/components/grid-list-item/grid-list-item.svelte +0 -81
  1656. package/src/components/grid-list-item/grid-list-item.types.ts +0 -53
  1657. package/src/components/grid-list-item/index.ts +0 -5
  1658. package/src/components/hero-section/hero-section.svelte +0 -81
  1659. package/src/components/hero-section/hero-section.types.ts +0 -51
  1660. package/src/components/hero-section/index.ts +0 -10
  1661. package/src/components/hover-card/hover-card.svelte +0 -256
  1662. package/src/components/hover-card/hover-card.types.ts +0 -38
  1663. package/src/components/hover-card/index.ts +0 -6
  1664. package/src/components/icons/index.ts +0 -47
  1665. package/src/components/image/image.svelte +0 -116
  1666. package/src/components/image/image.types.ts +0 -58
  1667. package/src/components/image/index.ts +0 -6
  1668. package/src/components/inline-loading/index.ts +0 -6
  1669. package/src/components/inline-loading/inline-loading.svelte +0 -139
  1670. package/src/components/inline-loading/inline-loading.types.ts +0 -41
  1671. package/src/components/input/index.ts +0 -6
  1672. package/src/components/input/input.constraints.ts +0 -58
  1673. package/src/components/input/input.svelte +0 -214
  1674. package/src/components/input/input.types.ts +0 -62
  1675. package/src/components/invocation-rule-builder/index.ts +0 -14
  1676. package/src/components/invocation-rule-builder/invocation-rule-builder.svelte +0 -602
  1677. package/src/components/invocation-rule-builder/invocation-rule-builder.types.ts +0 -235
  1678. package/src/components/json-schema-editor/composition-branch-keys.ts +0 -35
  1679. package/src/components/json-schema-editor/diff-view.svelte +0 -45
  1680. package/src/components/json-schema-editor/form-view.svelte +0 -59
  1681. package/src/components/json-schema-editor/index.ts +0 -19
  1682. package/src/components/json-schema-editor/json-schema-editor-impl.svelte +0 -268
  1683. package/src/components/json-schema-editor/json-schema-editor-state.svelte.ts +0 -495
  1684. package/src/components/json-schema-editor/json-schema-editor-state.types.ts +0 -21
  1685. package/src/components/json-schema-editor/json-schema-editor-types.ts +0 -110
  1686. package/src/components/json-schema-editor/json-schema-editor.svelte +0 -40
  1687. package/src/components/json-schema-editor/json-schema-editor.types.ts +0 -47
  1688. package/src/components/json-schema-editor/json-schema-toolbar.svelte +0 -204
  1689. package/src/components/json-schema-editor/json-schema-validator.ts +0 -345
  1690. package/src/components/json-schema-editor/json-view.svelte +0 -80
  1691. package/src/components/json-schema-editor/property-editor.svelte +0 -630
  1692. package/src/components/json-schema-editor/property-list-validation.ts +0 -10
  1693. package/src/components/json-schema-editor/property-list.svelte +0 -341
  1694. package/src/components/json-viewer/_json-viewer-node.svelte +0 -161
  1695. package/src/components/json-viewer/index.ts +0 -6
  1696. package/src/components/json-viewer/json-viewer.svelte +0 -134
  1697. package/src/components/json-viewer/json-viewer.types.ts +0 -25
  1698. package/src/components/kanban-board/index.ts +0 -15
  1699. package/src/components/kanban-board/kanban-board-helpers.ts +0 -210
  1700. package/src/components/kanban-board/kanban-board.svelte +0 -691
  1701. package/src/components/kanban-board/kanban-board.types.ts +0 -75
  1702. package/src/components/kbd/index.ts +0 -6
  1703. package/src/components/kbd/kbd.svelte +0 -27
  1704. package/src/components/kbd/kbd.types.ts +0 -46
  1705. package/src/components/keyboard-shortcuts/index.ts +0 -10
  1706. package/src/components/keyboard-shortcuts/keyboard-shortcuts.svelte +0 -91
  1707. package/src/components/keyboard-shortcuts/keyboard-shortcuts.types.ts +0 -46
  1708. package/src/components/label/index.ts +0 -6
  1709. package/src/components/label/label.svelte +0 -44
  1710. package/src/components/label/label.types.ts +0 -22
  1711. package/src/components/line-chart/index.ts +0 -6
  1712. package/src/components/line-chart/line-chart.svelte +0 -423
  1713. package/src/components/line-chart/line-chart.types.ts +0 -56
  1714. package/src/components/link/index.ts +0 -6
  1715. package/src/components/link/link.svelte +0 -115
  1716. package/src/components/link/link.types.ts +0 -69
  1717. package/src/components/load-more/index.ts +0 -6
  1718. package/src/components/load-more/load-more.svelte +0 -135
  1719. package/src/components/load-more/load-more.types.ts +0 -29
  1720. package/src/components/locale-provider/index.ts +0 -5
  1721. package/src/components/locale-provider/locale-provider.svelte +0 -40
  1722. package/src/components/locale-provider/locale-provider.types.ts +0 -21
  1723. package/src/components/logo-cloud/index.ts +0 -6
  1724. package/src/components/logo-cloud/logo-cloud.svelte +0 -76
  1725. package/src/components/logo-cloud/logo-cloud.types.ts +0 -51
  1726. package/src/components/markdown-editor/editor-skeleton.svelte +0 -95
  1727. package/src/components/markdown-editor/editor-toolbar/editor-toolbar.svelte +0 -385
  1728. package/src/components/markdown-editor/editor-toolbar/index.ts +0 -18
  1729. package/src/components/markdown-editor/editor-toolbar/link-popover.svelte +0 -366
  1730. package/src/components/markdown-editor/editor-toolbar/toolbar-button.svelte +0 -125
  1731. package/src/components/markdown-editor/editor-toolbar/toolbar-dropdown.svelte +0 -139
  1732. package/src/components/markdown-editor/editor-toolbar/toolbar-separator.svelte +0 -35
  1733. package/src/components/markdown-editor/editor-toolbar/types.ts +0 -15
  1734. package/src/components/markdown-editor/index.ts +0 -10
  1735. package/src/components/markdown-editor/markdown-editor.svelte +0 -970
  1736. package/src/components/markdown-editor/markdown-editor.types.ts +0 -124
  1737. package/src/components/marquee/index.ts +0 -6
  1738. package/src/components/marquee/marquee.svelte +0 -268
  1739. package/src/components/marquee/marquee.types.ts +0 -44
  1740. package/src/components/masonry/index.ts +0 -6
  1741. package/src/components/masonry/masonry.svelte +0 -39
  1742. package/src/components/masonry/masonry.types.ts +0 -38
  1743. package/src/components/matrix-chart/index.ts +0 -10
  1744. package/src/components/matrix-chart/matrix-chart.svelte +0 -340
  1745. package/src/components/matrix-chart/matrix-chart.types.ts +0 -69
  1746. package/src/components/media-controls/index.ts +0 -6
  1747. package/src/components/media-controls/media-controls.svelte +0 -238
  1748. package/src/components/media-controls/media-controls.types.ts +0 -83
  1749. package/src/components/mega-menu/index.ts +0 -11
  1750. package/src/components/mega-menu/mega-menu.svelte +0 -415
  1751. package/src/components/mega-menu/mega-menu.types.ts +0 -48
  1752. package/src/components/menu-bar/index.ts +0 -16
  1753. package/src/components/menu-bar/menu-bar-dropdown-context.svelte +0 -31
  1754. package/src/components/menu-bar/menu-bar.svelte +0 -873
  1755. package/src/components/menu-bar/menu-bar.types.ts +0 -73
  1756. package/src/components/message/index.ts +0 -6
  1757. package/src/components/message/message.svelte +0 -60
  1758. package/src/components/message/message.types.ts +0 -31
  1759. package/src/components/meter/index.ts +0 -6
  1760. package/src/components/meter/meter.svelte +0 -203
  1761. package/src/components/meter/meter.types.ts +0 -50
  1762. package/src/components/modal/index.ts +0 -6
  1763. package/src/components/modal/modal.constraints.ts +0 -72
  1764. package/src/components/modal/modal.svelte +0 -270
  1765. package/src/components/modal/modal.types.ts +0 -41
  1766. package/src/components/multi-select/index.ts +0 -11
  1767. package/src/components/multi-select/multi-select.svelte +0 -577
  1768. package/src/components/multi-select/multi-select.types.ts +0 -53
  1769. package/src/components/navigation-bar/index.ts +0 -13
  1770. package/src/components/navigation-bar/navigation-bar.svelte +0 -255
  1771. package/src/components/navigation-bar/navigation-bar.types.ts +0 -46
  1772. package/src/components/navigation-item/index.ts +0 -6
  1773. package/src/components/navigation-item/navigation-item.svelte +0 -119
  1774. package/src/components/navigation-item/navigation-item.types.ts +0 -60
  1775. package/src/components/newsletter-section/index.ts +0 -6
  1776. package/src/components/newsletter-section/newsletter-section.svelte +0 -91
  1777. package/src/components/newsletter-section/newsletter-section.types.ts +0 -50
  1778. package/src/components/number-input/index.ts +0 -6
  1779. package/src/components/number-input/number-input.svelte +0 -612
  1780. package/src/components/number-input/number-input.types.ts +0 -56
  1781. package/src/components/page-header/index.ts +0 -6
  1782. package/src/components/page-header/page-header.svelte +0 -39
  1783. package/src/components/page-header/page-header.types.ts +0 -14
  1784. package/src/components/pagination/index.ts +0 -6
  1785. package/src/components/pagination/pagination.svelte +0 -182
  1786. package/src/components/pagination/pagination.types.ts +0 -12
  1787. package/src/components/payload-inspector/index.ts +0 -12
  1788. package/src/components/payload-inspector/payload-inspector.svelte +0 -404
  1789. package/src/components/payload-inspector/payload-inspector.types.ts +0 -123
  1790. package/src/components/permission-matrix/index.ts +0 -12
  1791. package/src/components/permission-matrix/permission-matrix.svelte +0 -181
  1792. package/src/components/permission-matrix/permission-matrix.types.ts +0 -73
  1793. package/src/components/phone-input/index.ts +0 -12
  1794. package/src/components/phone-input/phone-input-formatting.ts +0 -229
  1795. package/src/components/phone-input/phone-input.svelte +0 -516
  1796. package/src/components/phone-input/phone-input.types.ts +0 -91
  1797. package/src/components/pin-input/index.ts +0 -6
  1798. package/src/components/pin-input/pin-input.svelte +0 -346
  1799. package/src/components/pin-input/pin-input.types.ts +0 -68
  1800. package/src/components/popover/index.ts +0 -6
  1801. package/src/components/popover/popover.svelte +0 -308
  1802. package/src/components/popover/popover.types.ts +0 -60
  1803. package/src/components/portal/index.ts +0 -6
  1804. package/src/components/portal/portal.svelte +0 -55
  1805. package/src/components/portal/portal.types.ts +0 -25
  1806. package/src/components/portal/portal.utilities.svelte.ts +0 -179
  1807. package/src/components/pricing-card/index.ts +0 -6
  1808. package/src/components/pricing-card/pricing-card.svelte +0 -95
  1809. package/src/components/pricing-card/pricing-card.types.ts +0 -49
  1810. package/src/components/pricing-section/index.ts +0 -6
  1811. package/src/components/pricing-section/pricing-section.svelte +0 -84
  1812. package/src/components/pricing-section/pricing-section.types.ts +0 -55
  1813. package/src/components/progress/index.ts +0 -6
  1814. package/src/components/progress/progress.svelte +0 -123
  1815. package/src/components/progress/progress.types.ts +0 -45
  1816. package/src/components/qr-code/index.ts +0 -6
  1817. package/src/components/qr-code/qr-code.svelte +0 -160
  1818. package/src/components/qr-code/qr-code.types.ts +0 -36
  1819. package/src/components/radio-group/index.ts +0 -22
  1820. package/src/components/radio-group/radio-group-context.ts +0 -33
  1821. package/src/components/radio-group/radio-group.svelte +0 -123
  1822. package/src/components/radio-group/radio-group.types.ts +0 -47
  1823. package/src/components/rating/index.ts +0 -6
  1824. package/src/components/rating/rating.svelte +0 -380
  1825. package/src/components/rating/rating.types.ts +0 -59
  1826. package/src/components/resizable-panels/index.ts +0 -16
  1827. package/src/components/resizable-panels/resizable-panels-sizing.ts +0 -706
  1828. package/src/components/resizable-panels/resizable-panels.svelte +0 -470
  1829. package/src/components/resizable-panels/resizable-panels.types.ts +0 -79
  1830. package/src/components/review-editor/comment-composer.svelte +0 -333
  1831. package/src/components/review-editor/comment-list.svelte +0 -342
  1832. package/src/components/review-editor/comment-sidebar.svelte +0 -491
  1833. package/src/components/review-editor/export-actions.svelte +0 -215
  1834. package/src/components/review-editor/focus-navigation.ts +0 -220
  1835. package/src/components/review-editor/front-matter-fields.svelte +0 -176
  1836. package/src/components/review-editor/index.ts +0 -59
  1837. package/src/components/review-editor/live-region.svelte +0 -125
  1838. package/src/components/review-editor/review-editor-anchors.svelte.ts +0 -322
  1839. package/src/components/review-editor/review-editor-controls.svelte +0 -263
  1840. package/src/components/review-editor/review-editor-exports.ts +0 -145
  1841. package/src/components/review-editor/review-editor-front-matter.ts +0 -237
  1842. package/src/components/review-editor/review-editor-impl.svelte +0 -1812
  1843. package/src/components/review-editor/review-editor-selection-geometry.ts +0 -31
  1844. package/src/components/review-editor/review-editor-selection-types.ts +0 -68
  1845. package/src/components/review-editor/review-editor-selection.svelte.ts +0 -349
  1846. package/src/components/review-editor/review-editor-state.svelte.ts +0 -179
  1847. package/src/components/review-editor/review-editor-threads.svelte.ts +0 -643
  1848. package/src/components/review-editor/review-editor.svelte +0 -41
  1849. package/src/components/review-editor/review-editor.types.ts +0 -92
  1850. package/src/components/review-editor/thread-popover.svelte +0 -310
  1851. package/src/components/run-step-timeline/index.ts +0 -17
  1852. package/src/components/run-step-timeline/run-step-timeline.svelte +0 -470
  1853. package/src/components/run-step-timeline/run-step-timeline.types.ts +0 -310
  1854. package/src/components/schema-form/index.ts +0 -13
  1855. package/src/components/schema-form/schema-form-async.fixture.ts +0 -101
  1856. package/src/components/schema-form/schema-form-body.svelte +0 -646
  1857. package/src/components/schema-form/schema-form-model.ts +0 -369
  1858. package/src/components/schema-form/schema-form-validation.ts +0 -235
  1859. package/src/components/schema-form/schema-form.svelte +0 -58
  1860. package/src/components/schema-form/schema-form.types.ts +0 -40
  1861. package/src/components/scroll-area/index.ts +0 -10
  1862. package/src/components/scroll-area/scroll-area.svelte +0 -71
  1863. package/src/components/scroll-area/scroll-area.types.ts +0 -57
  1864. package/src/components/search-field/index.ts +0 -6
  1865. package/src/components/search-field/search-field.svelte +0 -148
  1866. package/src/components/search-field/search-field.types.ts +0 -46
  1867. package/src/components/secret-value-field/index.ts +0 -6
  1868. package/src/components/secret-value-field/secret-value-field.svelte +0 -227
  1869. package/src/components/secret-value-field/secret-value-field.types.ts +0 -47
  1870. package/src/components/section-heading/index.ts +0 -6
  1871. package/src/components/section-heading/section-heading.svelte +0 -64
  1872. package/src/components/section-heading/section-heading.types.ts +0 -37
  1873. package/src/components/segment/index.ts +0 -5
  1874. package/src/components/segment/segment.svelte +0 -107
  1875. package/src/components/segment/segment.types.ts +0 -39
  1876. package/src/components/segmented-control/index.ts +0 -6
  1877. package/src/components/segmented-control/segmented-control-state.svelte.ts +0 -240
  1878. package/src/components/segmented-control/segmented-control.svelte +0 -172
  1879. package/src/components/segmented-control/segmented-control.types.ts +0 -89
  1880. package/src/components/select/index.ts +0 -6
  1881. package/src/components/select/select.svelte +0 -126
  1882. package/src/components/select/select.types.ts +0 -28
  1883. package/src/components/selection-popover/index.ts +0 -6
  1884. package/src/components/selection-popover/selection-popover.svelte +0 -273
  1885. package/src/components/selection-popover/selection-popover.types.ts +0 -31
  1886. package/src/components/share-card/index.ts +0 -6
  1887. package/src/components/share-card/share-card.svelte +0 -346
  1888. package/src/components/share-card/share-card.types.ts +0 -69
  1889. package/src/components/sheet/index.ts +0 -6
  1890. package/src/components/sheet/sheet.svelte +0 -176
  1891. package/src/components/sheet/sheet.types.ts +0 -55
  1892. package/src/components/shortcut-hint/index.ts +0 -6
  1893. package/src/components/shortcut-hint/shortcut-hint.svelte +0 -62
  1894. package/src/components/shortcut-hint/shortcut-hint.types.ts +0 -35
  1895. package/src/components/side-navigation/index.ts +0 -19
  1896. package/src/components/side-navigation/side-navigation.svelte +0 -48
  1897. package/src/components/side-navigation/side-navigation.types.ts +0 -14
  1898. package/src/components/side-navigation-group/_contains-active-harness.svelte +0 -36
  1899. package/src/components/side-navigation-group/index.ts +0 -6
  1900. package/src/components/side-navigation-group/side-navigation-group.svelte +0 -143
  1901. package/src/components/side-navigation-group/side-navigation-group.types.ts +0 -21
  1902. package/src/components/side-navigation-item/index.ts +0 -5
  1903. package/src/components/side-navigation-item/side-navigation-item.svelte +0 -61
  1904. package/src/components/side-navigation-item/side-navigation-item.types.ts +0 -22
  1905. package/src/components/sidebar/index.ts +0 -6
  1906. package/src/components/sidebar/sidebar.svelte +0 -136
  1907. package/src/components/sidebar/sidebar.types.ts +0 -36
  1908. package/src/components/skeleton/index.ts +0 -6
  1909. package/src/components/skeleton/skeleton.svelte +0 -35
  1910. package/src/components/skeleton/skeleton.types.ts +0 -11
  1911. package/src/components/skip-link/index.ts +0 -5
  1912. package/src/components/skip-link/skip-link.svelte +0 -86
  1913. package/src/components/skip-link/skip-link.types.ts +0 -40
  1914. package/src/components/slider/index.ts +0 -12
  1915. package/src/components/slider/slider.svelte +0 -533
  1916. package/src/components/slider/slider.types.ts +0 -65
  1917. package/src/components/sortable-list/index.ts +0 -6
  1918. package/src/components/sortable-list/sortable-list.svelte +0 -150
  1919. package/src/components/sortable-list/sortable-list.types.ts +0 -41
  1920. package/src/components/sparkbar/index.ts +0 -6
  1921. package/src/components/sparkbar/sparkbar.svelte +0 -72
  1922. package/src/components/sparkbar/sparkbar.types.ts +0 -48
  1923. package/src/components/spectrogram/index.ts +0 -10
  1924. package/src/components/spectrogram/spectrogram.svelte +0 -272
  1925. package/src/components/spectrogram/spectrogram.types.ts +0 -74
  1926. package/src/components/spectrum-chart/index.ts +0 -10
  1927. package/src/components/spectrum-chart/spectrum-chart.svelte +0 -235
  1928. package/src/components/spectrum-chart/spectrum-chart.types.ts +0 -53
  1929. package/src/components/speed-dial/index.ts +0 -25
  1930. package/src/components/speed-dial/speed-dial.context.ts +0 -16
  1931. package/src/components/speed-dial/speed-dial.svelte +0 -205
  1932. package/src/components/speed-dial/speed-dial.types.ts +0 -59
  1933. package/src/components/speed-dial-action/index.ts +0 -8
  1934. package/src/components/speed-dial-action/speed-dial-action.svelte +0 -77
  1935. package/src/components/speed-dial-action/speed-dial-action.types.ts +0 -50
  1936. package/src/components/spinner/index.ts +0 -6
  1937. package/src/components/spinner/spinner.svelte +0 -33
  1938. package/src/components/spinner/spinner.types.ts +0 -27
  1939. package/src/components/stacked-list-item/index.ts +0 -6
  1940. package/src/components/stacked-list-item/stacked-list-item.svelte +0 -132
  1941. package/src/components/stacked-list-item/stacked-list-item.types.ts +0 -47
  1942. package/src/components/stat/index.ts +0 -6
  1943. package/src/components/stat/stat.svelte +0 -90
  1944. package/src/components/stat/stat.types.ts +0 -35
  1945. package/src/components/stat-group/index.ts +0 -16
  1946. package/src/components/stat-group/stat-group.svelte +0 -46
  1947. package/src/components/stat-group/stat-group.types.ts +0 -30
  1948. package/src/components/stats-section/index.ts +0 -6
  1949. package/src/components/stats-section/stats-section.svelte +0 -86
  1950. package/src/components/stats-section/stats-section.types.ts +0 -61
  1951. package/src/components/status-dot/index.ts +0 -11
  1952. package/src/components/status-dot/status-dot.svelte +0 -112
  1953. package/src/components/status-dot/status-dot.types.ts +0 -74
  1954. package/src/components/steps/index.ts +0 -6
  1955. package/src/components/steps/steps.svelte +0 -125
  1956. package/src/components/steps/steps.types.ts +0 -42
  1957. package/src/components/surface/index.ts +0 -6
  1958. package/src/components/surface/surface.svelte +0 -35
  1959. package/src/components/surface/surface.types.ts +0 -20
  1960. package/src/components/tab/index.ts +0 -6
  1961. package/src/components/tab/tab.svelte +0 -120
  1962. package/src/components/tab/tab.types.ts +0 -25
  1963. package/src/components/tab-list/index.ts +0 -6
  1964. package/src/components/tab-list/tab-list.svelte +0 -38
  1965. package/src/components/tab-list/tab-list.types.ts +0 -11
  1966. package/src/components/tab-panel/index.ts +0 -6
  1967. package/src/components/tab-panel/tab-panel-aria-labelledby-harness.svelte +0 -23
  1968. package/src/components/tab-panel/tab-panel.svelte +0 -51
  1969. package/src/components/tab-panel/tab-panel.types.ts +0 -16
  1970. package/src/components/table/index.ts +0 -33
  1971. package/src/components/table/table.context.ts +0 -65
  1972. package/src/components/table/table.svelte +0 -100
  1973. package/src/components/table/table.types.ts +0 -82
  1974. package/src/components/table-body/index.ts +0 -6
  1975. package/src/components/table-body/table-body.svelte +0 -29
  1976. package/src/components/table-body/table-body.types.ts +0 -7
  1977. package/src/components/table-cell/index.ts +0 -6
  1978. package/src/components/table-cell/table-cell.svelte +0 -32
  1979. package/src/components/table-cell/table-cell.types.ts +0 -32
  1980. package/src/components/table-header/index.ts +0 -6
  1981. package/src/components/table-header/table-header.svelte +0 -81
  1982. package/src/components/table-header/table-header.types.ts +0 -24
  1983. package/src/components/table-header-cell/index.ts +0 -6
  1984. package/src/components/table-header-cell/table-header-cell.svelte +0 -103
  1985. package/src/components/table-header-cell/table-header-cell.types.ts +0 -30
  1986. package/src/components/table-of-contents/index.ts +0 -6
  1987. package/src/components/table-of-contents/table-of-contents.svelte +0 -634
  1988. package/src/components/table-of-contents/table-of-contents.types.ts +0 -70
  1989. package/src/components/table-row/index.ts +0 -6
  1990. package/src/components/table-row/table-row.svelte +0 -134
  1991. package/src/components/table-row/table-row.types.ts +0 -51
  1992. package/src/components/tabs/index.ts +0 -21
  1993. package/src/components/tabs/tabs-context.ts +0 -29
  1994. package/src/components/tabs/tabs.svelte +0 -232
  1995. package/src/components/tabs/tabs.types.ts +0 -75
  1996. package/src/components/tag-input/index.ts +0 -6
  1997. package/src/components/tag-input/tag-input.svelte +0 -437
  1998. package/src/components/tag-input/tag-input.types.ts +0 -98
  1999. package/src/components/team-section/index.ts +0 -6
  2000. package/src/components/team-section/team-section.svelte +0 -100
  2001. package/src/components/team-section/team-section.types.ts +0 -59
  2002. package/src/components/testimonial-section/index.ts +0 -10
  2003. package/src/components/testimonial-section/testimonial-section.svelte +0 -88
  2004. package/src/components/testimonial-section/testimonial-section.types.ts +0 -57
  2005. package/src/components/textarea/index.ts +0 -6
  2006. package/src/components/textarea/textarea.svelte +0 -101
  2007. package/src/components/textarea/textarea.types.ts +0 -37
  2008. package/src/components/textarea-count.ts +0 -19
  2009. package/src/components/time-field/index.ts +0 -6
  2010. package/src/components/time-field/time-field.svelte +0 -277
  2011. package/src/components/time-field/time-field.types.ts +0 -70
  2012. package/src/components/timeline/index.ts +0 -14
  2013. package/src/components/timeline/timeline-groups.ts +0 -158
  2014. package/src/components/timeline/timeline.svelte +0 -101
  2015. package/src/components/timeline/timeline.types.ts +0 -80
  2016. package/src/components/toast-region/index.ts +0 -14
  2017. package/src/components/toast-region/toast-region.svelte +0 -725
  2018. package/src/components/toast-region/toast-region.types.ts +0 -31
  2019. package/src/components/toggle/index.ts +0 -6
  2020. package/src/components/toggle/toggle.svelte +0 -101
  2021. package/src/components/toggle/toggle.types.ts +0 -49
  2022. package/src/components/toolbar/index.ts +0 -18
  2023. package/src/components/toolbar/toolbar-group.svelte +0 -32
  2024. package/src/components/toolbar/toolbar-spacer.svelte +0 -40
  2025. package/src/components/toolbar/toolbar.svelte +0 -409
  2026. package/src/components/toolbar/toolbar.types.ts +0 -59
  2027. package/src/components/tooltip/index.ts +0 -6
  2028. package/src/components/tooltip/tooltip.svelte +0 -230
  2029. package/src/components/tooltip/tooltip.types.ts +0 -14
  2030. package/src/components/transfer-list/index.ts +0 -10
  2031. package/src/components/transfer-list/transfer-list.svelte +0 -428
  2032. package/src/components/transfer-list/transfer-list.types.ts +0 -58
  2033. package/src/components/tree/index.ts +0 -38
  2034. package/src/components/tree/tree-selection.ts +0 -88
  2035. package/src/components/tree/tree.svelte +0 -1400
  2036. package/src/components/tree/tree.types.ts +0 -106
  2037. package/src/components/tree-item/index.ts +0 -5
  2038. package/src/components/tree-item/tree-item.svelte +0 -925
  2039. package/src/components/tree-item/tree-item.types.ts +0 -53
  2040. package/src/components/typography/index.ts +0 -6
  2041. package/src/components/typography/typography.svelte +0 -77
  2042. package/src/components/typography/typography.types.ts +0 -117
  2043. package/src/components/virtual-list/index.ts +0 -16
  2044. package/src/components/virtual-list/virtual-list.svelte +0 -192
  2045. package/src/components/virtual-list/virtual-list.types.ts +0 -60
  2046. package/src/components/visually-hidden/index.ts +0 -5
  2047. package/src/components/visually-hidden/visually-hidden.svelte +0 -36
  2048. package/src/components/visually-hidden/visually-hidden.types.ts +0 -70
  2049. package/src/components/waveform/index.ts +0 -6
  2050. package/src/components/waveform/waveform.svelte +0 -274
  2051. package/src/components/waveform/waveform.types.ts +0 -54
@@ -1,2102 +0,0 @@
1
- <script lang="ts" module>
2
- import type { Attachment } from 'svelte/attachments';
3
- import type { ChatAdapter, ChatCommand, ChatPushHandlers } from '../adapter/chat-adapter.ts';
4
- import type { Message, MessageInput } from '../conversation-model.ts';
5
- import type { ChatAttachment } from '../input/chat-attachment.ts';
6
-
7
- // `ChatProps` is owned by `../chat.types.ts` (the analyzer + schema generator
8
- // read that symbol). The implementation imports it from there rather than
9
- // redeclaring it, so the public type and the `$props()` shape can never drift.
10
- import type { ChatProps } from '../chat.types.ts';
11
-
12
- export type { ChatProps };
13
- export type {
14
- ChatScrollStateChangeEvent,
15
- ChatStopGeneratingEvent,
16
- ChatSubmitEvent,
17
- ChatUnreadIndicatorChangeEvent,
18
- } from './chat-events.ts';
19
- </script>
20
-
21
- <script lang="ts">
22
- import { tick, untrack } from 'svelte';
23
- import { classNames } from '../../../utilities/class-names.ts';
24
- import {
25
- getMessages,
26
- pairToolCallsWithResults,
27
- resolveMessageReasoning,
28
- resolveMessageSteps,
29
- resolveMessageSuggestions,
30
- } from '../utilities';
31
- import { ChatMessage, ChatDateSeparator } from '../message';
32
- import { ChatInput } from '../input';
33
- import { DEFAULT_SCROLL_CONFIGURATION } from './scroll-utilities';
34
- import { useChatScrollState } from './use-chat-scroll-state.svelte';
35
- import { useChatUnreadState } from './use-chat-unread-state.svelte';
36
- import { useChatKeyboardNav } from './use-chat-keyboard-nav.svelte';
37
- import { useChatSearch } from './use-chat-search.svelte';
38
- import { useIntersection } from '../../../utilities/use-intersection.svelte.ts';
39
- import ChatJumpControls from './chat-jump-controls.svelte';
40
- import ChatHistoryTrigger from './chat-history-trigger.svelte';
41
- import ChatStatusAnnouncer from './chat-status-announcer.svelte';
42
- import ChatSearchBar from './chat-search-bar.svelte';
43
- import {
44
- buildChatRenderRows,
45
- buildMessagesWithDateSeparators,
46
- chatRenderRowKey,
47
- findPairedToolResultIds,
48
- findRenderRowIndexByMessageId,
49
- type ChatRenderRow,
50
- } from './use-chat-message-groups.svelte.ts';
51
- import { ChatVirtualizer } from './use-chat-virtualizer.svelte.ts';
52
- import { useChatDisclosureState } from './use-chat-disclosure-state.svelte.ts';
53
- import type { VirtualItem } from '../../../_internal/virtual-item.ts';
54
- import { useChatTypingIndicator } from './use-chat-typing-indicator.svelte.ts';
55
- import { useChatReadReceipts } from './use-chat-read-receipts.svelte.ts';
56
- import ChatParticipantTyping from './chat-participant-typing.svelte';
57
- import ChatReadReceipt from '../message/chat-read-receipt.svelte';
58
-
59
- const noopAttachment: Attachment<HTMLElement> = () => {};
60
- type ChatMessageRenderRow = Extract<ChatRenderRow, { type: 'message' }>;
61
- type PendingHistoryScroll = {
62
- previousFirstMessageId: string | null;
63
- previousFirstTranscriptMessageId: string | null;
64
- previousFirstMessageViewportOffset: number;
65
- previousCount: number;
66
- previousScrollTop: number;
67
- previousScrollHeight: number;
68
- previousTotalSize: number;
69
- };
70
-
71
- let {
72
- id,
73
- conversation,
74
- atBottom = $bindable(true),
75
- unreadCount = $bindable(0),
76
- newMessageIndicatorVisible = $bindable(false),
77
- class: className,
78
- surfaceMode = 'default',
79
- density = 'comfortable',
80
- variant = 'bubble',
81
- bottomThreshold = DEFAULT_SCROLL_CONFIGURATION.bottomThreshold,
82
- jumpThreshold = DEFAULT_SCROLL_CONFIGURATION.jumpThreshold,
83
- streaming = false,
84
- streamingStatus,
85
- capabilities,
86
- virtualized = false,
87
- virtualizationEstimatedRowHeight = 88,
88
- virtualizationOverscan = 3,
89
- virtualizationInitialHeight = 640,
90
- moreHistoryAvailable = true,
91
- loadEarlierLabel = 'Load earlier messages',
92
- loadingEarlierLabel = 'Loading earlier messages',
93
- header,
94
- empty,
95
- emptyPrompts,
96
- messageActions,
97
- messageStatus,
98
- row,
99
- messagePart,
100
- viewportAttachment,
101
- typingParticipants,
102
- readReceipts,
103
- adapter,
104
- onadaptererror,
105
- onpushmessage,
106
- ontypingchange,
107
- onreadreceipt,
108
- onsubmit,
109
- onretry,
110
- onedit,
111
- onapprove,
112
- ondeny,
113
- messageReasoning,
114
- messageSteps,
115
- messageSuggestions,
116
- onsuggestionselect,
117
- onloadhistory,
118
- onstopgenerating,
119
- onjumptolatest,
120
- onscrollstatechange,
121
- onunreadindicatorchange,
122
- onexpandedchange,
123
- onattachmentadd,
124
- onattachmentremove,
125
- onattachmentfailure,
126
- ...rest
127
- }: ChatProps = $props();
128
-
129
- // ==========================================================================
130
- // Refs and Internal State
131
- // ==========================================================================
132
-
133
- let viewport = $state<HTMLElement | null>(null);
134
- let containerRef = $state<HTMLElement | null>(null);
135
- let inputRef:
136
- | {
137
- focus: () => void;
138
- clear: () => void;
139
- addFiles: (files: File[]) => void;
140
- getAttachments: () => ChatAttachment[];
141
- }
142
- | undefined;
143
- let searchBarRef = $state<{ focusInput: () => void } | undefined>(undefined);
144
- let historyTriggerRef = $state<{ focus: (options?: FocusOptions) => void } | undefined>(
145
- undefined,
146
- );
147
-
148
- // Container-level drag-and-drop state for full-window drop zone
149
- let isContainerDragOver = $state(false);
150
-
151
- // Streaming state: separate from the Conversation to avoid re-rendering the message list
152
- let streamingContent = $state('');
153
- let streamingMessageId = $state<string | null>(null);
154
- let streamingRowElement = $state<HTMLElement | null>(null);
155
-
156
- // Token buffer: accumulate tokens as an array; joined and flushed once per animation frame
157
- // to avoid O(n²) string work from calling join() on every push.
158
- let tokenBuffer: string[] = [];
159
- // rAF handle for batching token flushes and scroll throttling during streaming
160
- let streamingScrollRaf: number | undefined;
161
-
162
- // C3 — tool approval state. Keyed by tool call id. Both sets are UI-only and
163
- // are never written back to the transcript. A pending tool-approval part has
164
- // its call id in neither set (approved === undefined). Once the consumer or
165
- // adapter resolves the approval, the id moves into one of the sets and the
166
- // part re-derives to show the resolved state.
167
- let approvedToolCallIds = $state(new Set<string>());
168
- let deniedToolCallIds = $state(new Set<string>());
169
-
170
- // Per-message disclosure state (reasoning blocks + tool-call cards). UI-only;
171
- // never written to the transcript. Both are collapsed by default; toggling
172
- // triggers a virtualizer remeasure so the row's height tracks the expanded
173
- // content. Kept as separate instances so a message carrying both a reasoning
174
- // block and a tool-call card discloses each independently.
175
- function remeasureRow(messageId: string): void {
176
- if (!isVirtualized || !viewport) return;
177
- // Find the message row DOM node via the stable id and re-measure it so
178
- // the virtualizer updates the row's height after the disclosure transitions.
179
- const rowNode = viewport.querySelector<HTMLElement>(`#message-${CSS.escape(messageId)}`);
180
- if (rowNode) {
181
- chatVirtualizer.measureElementNode(rowNode);
182
- }
183
- }
184
- const reasoningState = useChatDisclosureState({ onRemeasureRow: remeasureRow });
185
- const toolCallState = useChatDisclosureState({ onRemeasureRow: remeasureRow });
186
-
187
- // Reset UI-only approval/disclosure/typing/receipt state on conversation change
188
- // so stale approved/denied sets, expanded reasoning/tool-call disclosures,
189
- // adapter-derived typing state, and accumulated read receipts from the previous conversation
190
- // are cleared (their message ids can collide). The void reference to
191
- // `conversationId` at the start of the effect body is the Svelte 5 pattern for
192
- // declaring a reactive dependency on a derived without reading its value.
193
- $effect(() => {
194
- conversationId;
195
- approvedToolCallIds = new Set();
196
- deniedToolCallIds = new Set();
197
- reasoningState.reset();
198
- toolCallState.reset();
199
- typingIndicatorState.reset();
200
- readReceiptsState.reset();
201
- });
202
-
203
- let isLoadingHistory = $state(false);
204
- let adapterHasMoreHistory = $state<boolean | undefined>(undefined);
205
- let historyAnnouncement = $state('');
206
- let pendingHistoryScroll: PendingHistoryScroll | null = $state(null);
207
- let deferredAdapterHasMoreHistory: boolean | null = null;
208
- let historyAnchorMessageId = $state<string | null>(null);
209
- let historyAnchorViewportOffset = $state<number | null>(null);
210
- let historyAnchorRestoredScrollTop: number | null = null;
211
- let previousHistoryConversationId: string | undefined;
212
- let previousHistoryAdapter: ChatAdapter | undefined;
213
-
214
- // ==========================================================================
215
- // Initialize Helpers
216
- // ==========================================================================
217
-
218
- const scrollState = useChatScrollState({
219
- getBottomThreshold: () => bottomThreshold,
220
- getJumpThreshold: () => jumpThreshold,
221
- onScrollStateChange: handleScrollStateChange,
222
- onReachBottom: () => {
223
- // The sentinel fires when the user reaches the bottom via
224
- // IntersectionObserver, which does not emit onScrollStateChange.
225
- // Update the bindable prop here so it stays in sync with the sentinel path.
226
- atBottom = true;
227
- if (unreadState.unreadCount > 0 || unreadState.newMessageIndicatorVisible) {
228
- unreadState.markAllAsRead();
229
- }
230
- },
231
- });
232
-
233
- const unreadState = useChatUnreadState({
234
- onUnreadIndicatorChange: (event) => {
235
- // Update the bindable props at the mutation site rather than via a $effect.
236
- unreadCount = event.unreadCount;
237
- newMessageIndicatorVisible = event.newMessageIndicatorVisible;
238
- onunreadindicatorchange?.(event);
239
- },
240
- });
241
-
242
- const keyboardNav = useChatKeyboardNav({
243
- onJumpToLatest: handleJumpToLatest,
244
- onJumpToStart: () => {
245
- if (isVirtualized) {
246
- chatVirtualizer.scrollToOffset(0, { behavior: scrollState.getScrollBehavior() });
247
- }
248
- },
249
- getScrollBehavior: scrollState.getScrollBehavior,
250
- getHistoryTrigger: () => (showHistoryTrigger ? historyTriggerRef : null),
251
- onVirtualMessageNavigation: (direction) => navigateVirtualMessage(direction),
252
- });
253
-
254
- const messages = $derived(getMessages(conversation));
255
- // C5 — suggested replies are a per-TURN affordance shown only beneath the last
256
- // message, not on every historical message that still carries the metadata.
257
- const lastMessageId = $derived(messages.at(-1)?.id);
258
- let previousAutoScrollMessageCount = getMessages(conversation).length;
259
-
260
- // The conversation id as a stable VALUE dependency. The subscribe effect keys
261
- // on this (not on `conversation.id` read inline) so a consumer passing a fresh
262
- // `conversation` snapshot on every transcript update — but with the same id —
263
- // does not tear down and reopen the real-time subscription each render.
264
- const conversationId = $derived(conversation.id);
265
-
266
- const showTypingIndicator = $derived(streaming && !streamingMessageId);
267
-
268
- // Expand capabilities object with per-feature defaults.
269
- const allowAttachments = $derived(capabilities?.attachments ?? true);
270
- const allowSearch = $derived(capabilities?.search ?? true);
271
- const allowCopy = $derived(capabilities?.copy ?? true);
272
- const allowEditing = $derived(capabilities?.editing ?? true);
273
- const allowRetry = $derived(capabilities?.retry ?? true);
274
- const toolCallPairsByCallId = $derived.by(() => {
275
- const toolCallPairs = pairToolCallsWithResults(messages);
276
- const map = new Map<string, ReturnType<typeof pairToolCallsWithResults>>();
277
- for (const pair of toolCallPairs) {
278
- const existing = map.get(pair.call.id);
279
- if (existing) {
280
- existing.push(pair);
281
- } else {
282
- map.set(pair.call.id, [pair]);
283
- }
284
- }
285
- return map;
286
- });
287
- const renderRows = $derived.by(() => {
288
- const pairedToolResultIds = findPairedToolResultIds(messages);
289
- const messagesWithDates = buildMessagesWithDateSeparators(messages, pairedToolResultIds);
290
- return buildChatRenderRows(messagesWithDates, {
291
- firstUnreadId: unreadState.firstUnreadId,
292
- showTypingIndicator,
293
- });
294
- });
295
- let hasMounted = $state(false);
296
- $effect(() => {
297
- hasMounted = true;
298
- });
299
-
300
- const isVirtualized = $derived(virtualized && hasMounted && messages.length > 0);
301
- const timelineResetIdentity = $derived(
302
- `${conversationId}:${isVirtualized ? 'virtualized' : 'full'}`,
303
- );
304
- const staticRowsResetIdentity = $derived(messages[0]?.id ?? '');
305
-
306
- const chatVirtualizer = new ChatVirtualizer({
307
- getScrollElement: () => viewport,
308
- getCount: () => (isVirtualized ? renderRows.length : 0),
309
- getItemKey: (index) => chatRenderRowKey(renderRows[index] ?? { type: 'typing' }),
310
- getEstimatedSize: () => virtualizationEstimatedRowHeight,
311
- getOverscan: () => virtualizationOverscan,
312
- getInitialHeight: () => virtualizationInitialHeight,
313
- getScrollPaddingStart: () => virtualSpacerOffsetTop(),
314
- });
315
-
316
- const virtualRows = $derived.by(() => {
317
- if (!isVirtualized) return [];
318
-
319
- const renderedIndexes = new Set<number>();
320
- const rows: { row: ChatRenderRow; virtualItem: VirtualItem }[] = [];
321
- for (const virtualItem of chatVirtualizer.virtualItems) {
322
- const row = renderRows[virtualItem.index];
323
- if (!row) continue;
324
- renderedIndexes.add(virtualItem.index);
325
- rows.push({ row, virtualItem: pinHistoryAnchorVirtualItem(row, virtualItem) });
326
- }
327
-
328
- if (streamingMessageId) {
329
- const streamingIndex = findRenderRowIndexByMessageId(renderRows, streamingMessageId);
330
- if (streamingIndex >= 0 && !renderedIndexes.has(streamingIndex)) {
331
- const virtualItem = chatVirtualizer.getVirtualItem(streamingIndex);
332
- if (!virtualItem) return rows;
333
- rows.push({
334
- row: renderRows[streamingIndex]!,
335
- virtualItem,
336
- });
337
- }
338
- }
339
-
340
- if (historyAnchorMessageId) {
341
- const historyAnchorIndex = findRenderRowIndexByMessageId(renderRows, historyAnchorMessageId);
342
- if (historyAnchorIndex >= 0 && !renderedIndexes.has(historyAnchorIndex)) {
343
- const virtualItem = chatVirtualizer.getVirtualItem(historyAnchorIndex);
344
- if (!virtualItem) return rows;
345
- const row = renderRows[historyAnchorIndex];
346
- if (row) {
347
- rows.push({
348
- row,
349
- virtualItem: pinHistoryAnchorVirtualItem(row, virtualItem),
350
- });
351
- }
352
- }
353
- }
354
-
355
- rows.sort((a, b) => a.virtualItem.index - b.virtualItem.index);
356
- return rows;
357
- });
358
-
359
- function pinHistoryAnchorVirtualItem(row: ChatRenderRow, virtualItem: VirtualItem): VirtualItem {
360
- if (
361
- historyAnchorViewportOffset === null ||
362
- row.type !== 'message' ||
363
- row.message.id !== historyAnchorMessageId
364
- ) {
365
- return virtualItem;
366
- }
367
-
368
- const scrollTop = viewport?.scrollTop ?? chatVirtualizer.scrollOffset;
369
- const start = Math.max(
370
- 0,
371
- scrollTop - chatVirtualizer.scrollPaddingStart + historyAnchorViewportOffset,
372
- );
373
- return {
374
- ...virtualItem,
375
- start,
376
- end: start + virtualItem.size,
377
- };
378
- }
379
-
380
- const searchState = useChatSearch({
381
- getMessages: () => messages,
382
- });
383
-
384
- // ==========================================================================
385
- // C6 — Per-participant typing indicators + read receipts (out-of-band state)
386
- // ==========================================================================
387
-
388
- const typingIndicatorState = useChatTypingIndicator({
389
- getTypingParticipants: () => typingParticipants,
390
- });
391
-
392
- const readReceiptsState = useChatReadReceipts({
393
- getReadReceipts: () => readReceipts,
394
- });
395
-
396
- // ==========================================================================
397
- // Derived Values
398
- // ==========================================================================
399
-
400
- const viewportAttach = $derived(viewportAttachment ?? noopAttachment);
401
- const effectiveHasMoreHistory = $derived(adapterHasMoreHistory ?? moreHistoryAvailable);
402
- const hasHistoryLoader = $derived(
403
- onloadhistory !== undefined || adapter?.loadOlderMessages !== undefined,
404
- );
405
- const showHistoryTrigger = $derived(hasHistoryLoader && effectiveHasMoreHistory);
406
-
407
- $effect(() => {
408
- chatVirtualizer.setScrollElement(isVirtualized ? viewport : null);
409
- });
410
-
411
- $effect(() => {
412
- for (const renderRow of renderRows) {
413
- chatRenderRowKey(renderRow);
414
- }
415
- chatVirtualizer.syncOptions();
416
- });
417
-
418
- $effect(() => {
419
- const currentConversationId = conversationId;
420
- const currentAdapter = adapter;
421
- if (previousHistoryConversationId === undefined) {
422
- previousHistoryConversationId = currentConversationId;
423
- previousHistoryAdapter = currentAdapter;
424
- return;
425
- }
426
-
427
- if (
428
- currentConversationId !== previousHistoryConversationId ||
429
- currentAdapter !== previousHistoryAdapter
430
- ) {
431
- adapterHasMoreHistory = undefined;
432
- pendingHistoryScroll = null;
433
- deferredAdapterHasMoreHistory = null;
434
- clearHistoryAnchor();
435
- }
436
- previousHistoryConversationId = currentConversationId;
437
- previousHistoryAdapter = currentAdapter;
438
- });
439
-
440
- // A retry/edit affordance shows when EITHER a callback OR the adapter can
441
- // handle it — so an adapter-only consumer (no `onretry`/`onedit`) still gets
442
- // working buttons, and a callback-only consumer is unchanged.
443
- const canRetry = $derived(onretry !== undefined || adapter?.retryMessage !== undefined);
444
- const canEdit = $derived(onedit !== undefined || adapter?.editMessage !== undefined);
445
-
446
- // Stable bottom-sentinel attachment. Wrapping useIntersection in $derived (matching
447
- // load-more) means the IntersectionObserver is only torn down + recreated when
448
- // `viewport` or `bottomThreshold` actually change — NOT on every chat re-render
449
- // (which is frequent during streaming and would otherwise make bottom detection flicker).
450
- const sentinelAttach = $derived(
451
- isVirtualized
452
- ? noopAttachment
453
- : useIntersection(scrollState.handleSentinelEntry, {
454
- root: viewport,
455
- rootMargin: `0px 0px ${bottomThreshold}px 0px`,
456
- }),
457
- );
458
-
459
- // Accessibility IDs
460
- const timelineId = $derived(`${id}-timeline`);
461
- const inputId = $derived(`${id}-input`);
462
- const statusId = $derived(`${id}-status`);
463
-
464
- // C3 — assertive announcement for action-required tool approvals. Derived from
465
- // the first pending tool-approval part in the current transcript. When a new
466
- // tool-approval part appears (outcome === 'action_required' + action present),
467
- // this updates and the assertive live region interrupts screen readers.
468
- const toolApprovalAssertiveMessage = $derived.by(() => {
469
- for (const message of messages) {
470
- if (
471
- message.role === 'tool-result' &&
472
- message.toolResult?.outcome === 'action_required' &&
473
- message.toolResult.action &&
474
- !approvedToolCallIds.has(message.toolResult.callId) &&
475
- !deniedToolCallIds.has(message.toolResult.callId)
476
- ) {
477
- const actionMessage =
478
- message.toolResult.action.message ??
479
- 'This tool call requires your approval before it can continue.';
480
- return `Action required: ${actionMessage}`;
481
- }
482
- }
483
- return '';
484
- });
485
-
486
- // ==========================================================================
487
- // Scroll Anchoring via $effect.pre
488
- // ==========================================================================
489
-
490
- /**
491
- * $effect.pre runs BEFORE DOM updates.
492
- * We capture scroll state here and schedule scroll-to-bottom after DOM updates.
493
- *
494
- * Key pattern: Read `messages.length` synchronously to register dependency,
495
- * then use `tick()` to wait for DOM updates before scrolling.
496
- */
497
- $effect.pre(() => {
498
- if (!viewport) return undefined;
499
-
500
- // Register dependency on message count
501
- const currentCount = messages.length;
502
- const isTranscriptAppend = currentCount > previousAutoScrollMessageCount;
503
- previousAutoScrollMessageCount = currentCount;
504
- // Keep the scroll extent as a dependency so virtual row measurement can
505
- // trigger one final bottom correction after the appended row is measured.
506
- const currentScrollExtent = isVirtualized ? chatVirtualizer.scrollSize : viewport.scrollHeight;
507
- void currentScrollExtent;
508
-
509
- // Read atBottom without making it a dependency (prevents loops)
510
- const atBottom = untrack(() => scrollState.atBottom);
511
-
512
- // Skip if user initiated a smooth scroll (e.g., via jump button)
513
- if (scrollState.isUserScrolling) return undefined;
514
-
515
- // Explicit history anchoring owns scroll restoration while a prepend is pending
516
- // and until the user scrolls away from the restored anchor.
517
- const hasActiveHistoryAnchor = untrack(
518
- () => pendingHistoryScroll !== null || historyAnchorMessageId !== null,
519
- );
520
- if (hasActiveHistoryAnchor) return undefined;
521
-
522
- if (atBottom && currentCount > 0) {
523
- let cancelled = false;
524
- const waitForBottomTarget = isTranscriptAppend ? waitForLayoutFrame() : tick();
525
- void waitForBottomTarget.then(() => {
526
- if (cancelled || !viewport || pendingHistoryScroll || historyAnchorMessageId !== null) {
527
- return;
528
- }
529
- if (isVirtualized) {
530
- chatVirtualizer.scrollToOffset(chatVirtualizer.scrollSize, { behavior: 'instant' });
531
- } else {
532
- viewport?.scrollTo({ top: viewport.scrollHeight, behavior: 'instant' });
533
- }
534
- });
535
-
536
- return () => {
537
- cancelled = true;
538
- };
539
- }
540
-
541
- return undefined;
542
- });
543
-
544
- $effect.pre(() => {
545
- if (!viewport || !pendingHistoryScroll) return;
546
-
547
- const pending = pendingHistoryScroll;
548
- messages.length;
549
- messages[0]?.id;
550
- void restorePendingHistoryScrollAfterLayout(pending);
551
- });
552
-
553
- async function waitForLayoutFrame(): Promise<void> {
554
- await tick();
555
- if (typeof requestAnimationFrame !== 'function') return;
556
-
557
- await new Promise<void>((resolve) => {
558
- requestAnimationFrame(() => resolve());
559
- });
560
- }
561
-
562
- async function restorePendingHistoryScrollAfterLayout(
563
- pending: PendingHistoryScroll,
564
- ): Promise<boolean> {
565
- await waitForLayoutFrame();
566
- if (pendingHistoryScroll !== pending) return false;
567
- return restoreHistoryScroll(pending);
568
- }
569
-
570
- function restoreHistoryScroll(pending: PendingHistoryScroll): boolean {
571
- if (!viewport) return false;
572
-
573
- const currentFirstMessageId = messages[0]?.id ?? null;
574
- const currentCount = messages.length;
575
- if (
576
- currentCount <= pending.previousCount ||
577
- currentFirstMessageId === pending.previousFirstTranscriptMessageId
578
- ) {
579
- return false;
580
- }
581
-
582
- const prependedCount = currentCount - pending.previousCount;
583
- pendingHistoryScroll = null;
584
- finishDeferredAdapterHistoryLoading();
585
- if (isVirtualized) {
586
- setHistoryAnchor(pending);
587
- }
588
-
589
- if (isVirtualized) {
590
- const newTotalSize = chatVirtualizer.scrollSize;
591
- const delta = newTotalSize - pending.previousTotalSize;
592
- const targetScrollTop = pending.previousScrollTop + delta;
593
- chatVirtualizer.scrollToOffset(targetScrollTop, { behavior: 'instant' });
594
- historyAnchorRestoredScrollTop = viewport?.scrollTop ?? chatVirtualizer.scrollOffset;
595
- } else {
596
- clearHistoryAnchor();
597
- const newTotalSize = viewport.scrollHeight;
598
- const delta = newTotalSize - pending.previousScrollHeight;
599
- viewport.scrollTo({
600
- top: pending.previousScrollTop + delta,
601
- behavior: 'instant',
602
- });
603
- }
604
- const announcement =
605
- prependedCount === 1
606
- ? '1 earlier message loaded.'
607
- : `${prependedCount} earlier messages loaded.`;
608
- historyAnnouncement = announcement;
609
- setTimeout(() => {
610
- if (historyAnnouncement === announcement) {
611
- historyAnnouncement = '';
612
- }
613
- }, 1000);
614
- void tick().then(() => {
615
- focusAfterHistoryRestore(pending);
616
- });
617
- return true;
618
- }
619
-
620
- function setHistoryAnchor(pending: PendingHistoryScroll): void {
621
- historyAnchorMessageId = pending.previousFirstMessageId;
622
- historyAnchorViewportOffset = pending.previousFirstMessageViewportOffset;
623
- historyAnchorRestoredScrollTop = null;
624
- }
625
-
626
- function clearHistoryAnchor(): void {
627
- historyAnchorMessageId = null;
628
- historyAnchorViewportOffset = null;
629
- historyAnchorRestoredScrollTop = null;
630
- }
631
-
632
- function clearHistoryAnchorAfterScroll(scrollTop: number): void {
633
- if (
634
- historyAnchorMessageId !== null &&
635
- historyAnchorRestoredScrollTop !== null &&
636
- Math.abs(scrollTop - historyAnchorRestoredScrollTop) > 2
637
- ) {
638
- clearHistoryAnchor();
639
- }
640
- }
641
-
642
- function handleScrollStateChange(event: {
643
- atBottom: boolean;
644
- scrollTop: number;
645
- scrollHeight: number;
646
- }): void {
647
- clearHistoryAnchorAfterScroll(event.scrollTop);
648
-
649
- // Update the bindable prop at the mutation site rather than via a $effect.
650
- atBottom = event.atBottom;
651
-
652
- onscrollstatechange?.(event);
653
- }
654
-
655
- function virtualSpacerOffsetTop(): number {
656
- if (!viewport) return 0;
657
-
658
- const spacer = viewport.querySelector<HTMLElement>('.chat-virtual-spacer');
659
- if (!spacer) return 0;
660
-
661
- const offsetTop = spacer.offsetTop;
662
- const spacerRect = spacer.getBoundingClientRect();
663
- const viewportRect = viewport.getBoundingClientRect();
664
- const hasLayoutBox =
665
- spacerRect.top !== 0 ||
666
- spacerRect.bottom !== 0 ||
667
- viewportRect.top !== 0 ||
668
- viewportRect.bottom !== 0;
669
- if (!hasLayoutBox) return Math.max(0, offsetTop);
670
-
671
- const rectOffset = spacerRect.top - viewportRect.top + viewport.scrollTop;
672
- return Math.max(0, Number.isFinite(rectOffset) ? rectOffset : offsetTop);
673
- }
674
-
675
- function focusAfterHistoryRestore(pending: PendingHistoryScroll): void {
676
- if (!viewport) return;
677
-
678
- if (showHistoryTrigger && historyTriggerRef) {
679
- historyTriggerRef.focus({ preventScroll: true });
680
- return;
681
- }
682
-
683
- const anchor = pending.previousFirstMessageId
684
- ? viewport.querySelector<HTMLElement>(
685
- `#message-${CSS.escape(pending.previousFirstMessageId)}`,
686
- )
687
- : null;
688
- const target = anchor ?? viewport.querySelector<HTMLElement>('.chat-message');
689
- target?.focus({ preventScroll: true });
690
- }
691
-
692
- // ==========================================================================
693
- // Process Messages for Unread Detection
694
- // ==========================================================================
695
-
696
- $effect(() => {
697
- // Pass a getter function for scrollState.atBottom to avoid creating a scroll dependency.
698
- // The effect should only re-run when messages change, not on every scroll.
699
- unreadState.processMessages(messages, conversation.id, () => scrollState.atBottom);
700
- });
701
-
702
- // ==========================================================================
703
- // Streaming rAF Cleanup
704
- // ==========================================================================
705
-
706
- // Cancel any pending animation frame when the component unmounts during active streaming.
707
- // Without this, the rAF callback fires after destruction and mutates orphaned $state.
708
- $effect(() => {
709
- return () => {
710
- if (streamingScrollRaf !== undefined) {
711
- cancelAnimationFrame(streamingScrollRaf);
712
- streamingScrollRaf = undefined;
713
- }
714
- };
715
- });
716
-
717
- // ==========================================================================
718
- // Adapter Real-Time Subscription
719
- // ==========================================================================
720
-
721
- // When an adapter exposes `subscribe`, open a real-time subscription keyed on
722
- // the conversation id and tear it down on cleanup. `$effect` never runs on the
723
- // server, so no browser guard is needed. Streaming pushes drive Chat's own
724
- // imperative buffer (so a push-driven stream is self-contained); transcript /
725
- // peripheral pushes forward to the consumer (Chat never mutates `conversation`).
726
- //
727
- // The effect re-subscribes ONLY when the adapter reference or the
728
- // `conversationId` VALUE changes — keying on the derived id value (not on
729
- // `conversation.id` read inline) means a new `conversation` snapshot bearing
730
- // the same id does not churn the subscription. The forwarding callbacks are
731
- // read through `untrack` at invocation time so a consumer passing inline arrow
732
- // functions (whose identity churns every render) does not tear down and reopen
733
- // the transport on every render — each handler still calls the LATEST callback,
734
- // it just isn't a dependency of the subscription effect.
735
- $effect(() => {
736
- const resolvedAdapter = adapter;
737
- if (!resolvedAdapter?.subscribe) return;
738
-
739
- const currentConversationId = conversationId;
740
- const handlers: ChatPushHandlers = {
741
- onMessage: (message) => untrack(() => onpushmessage)?.(message),
742
- onTypingChange: (isTyping) => {
743
- // Drive the C6 per-participant typing indicator via the adapter path.
744
- typingIndicatorState.handleAdapterTypingChange(isTyping);
745
- untrack(() => ontypingchange)?.(isTyping);
746
- },
747
- onReadReceipt: (event) => {
748
- // Accumulate the receipt into C6 read receipt state.
749
- readReceiptsState.handleAdapterReadReceipt(event);
750
- untrack(() => onreadreceipt)?.(event);
751
- },
752
- onStreamBegin: (messageId) => beginStreaming(messageId),
753
- onTokenPush: (token) => pushToken(token),
754
- onStreamEnd: () => endStreaming(),
755
- };
756
-
757
- const unsubscribe = resolvedAdapter.subscribe(currentConversationId, handlers);
758
-
759
- // Teardown: close the transport (guarding a contract-violating non-function
760
- // return so a bad adapter can't crash Svelte's cleanup), clear the imperative
761
- // streaming buffer, AND clear the adapter-derived C6 typing/receipt state.
762
- // Without the `endStreaming()`, a resubscribe or conversation switch mid-stream
763
- // (no `onStreamEnd` fired) would leave `streamingMessageId`/`streamingContent`
764
- // driving a row. Without the typing/receipt resets, an adapter that changed or
765
- // was removed for the SAME conversation would leave a synthetic typing
766
- // participant, a pending live-region timer, and accumulated receipts alive
767
- // (the conversation-change effect above only fires on an id change).
768
- return () => {
769
- if (typeof unsubscribe === 'function') unsubscribe();
770
- endStreaming();
771
- typingIndicatorState.reset();
772
- readReceiptsState.reset();
773
- };
774
- });
775
-
776
- // ==========================================================================
777
- // Create Scroll Attachment
778
- // ==========================================================================
779
-
780
- const scrollAttachment = scrollState.createScrollAttachment();
781
- const historyAnchorScrollAttachment = $derived<Attachment<HTMLElement>>(
782
- historyAnchorMessageId === null || historyAnchorRestoredScrollTop === null
783
- ? noopAttachment
784
- : (node) => {
785
- const handleScroll = () => clearHistoryAnchorAfterScroll(node.scrollTop);
786
- node.addEventListener('scroll', handleScroll, { passive: true });
787
-
788
- return () => node.removeEventListener('scroll', handleScroll);
789
- },
790
- );
791
- // ==========================================================================
792
- // Actions
793
- // ==========================================================================
794
-
795
- function handleJumpToLatest(): void {
796
- if (isVirtualized) {
797
- chatVirtualizer.scrollToIndex(Math.max(0, renderRows.length - 1), {
798
- align: 'end',
799
- behavior: scrollState.getScrollBehavior(),
800
- });
801
- unreadState.markAllAsRead();
802
- onjumptolatest?.();
803
- tick().then(() => {
804
- const lastMessage = viewport?.querySelector<HTMLElement>(
805
- `.chat-message-wrapper:last-of-type .chat-message`,
806
- );
807
- lastMessage?.focus();
808
- });
809
- return;
810
- }
811
-
812
- scrollState.jumpToLatest(viewport, () => {
813
- unreadState.markAllAsRead();
814
- onjumptolatest?.();
815
- });
816
- }
817
-
818
- // ==========================================================================
819
- // Command Dispatch (callbacks + optional adapter, one path)
820
- // ==========================================================================
821
-
822
- // One internal path for every user command so callback-driven and
823
- // adapter-driven usage behave identically. The adapter method takes
824
- // precedence when present (a transport owner); otherwise the callback fires.
825
- //
826
- // "Present" is decided by `runAdapterMethod` returning a value (not by the
827
- // method's own return value): the call site returns `undefined` ONLY when the
828
- // adapter lacks that optional method, and otherwise returns the method's
829
- // result wrapped in `Promise.resolve(...)`. This means a synchronously-
830
- // returning adapter method (one that resolves to `undefined` rather than a
831
- // promise) is still treated as "handled" — the callback does NOT also fire, so
832
- // there's no double-dispatch even for a type-violating sync method.
833
- //
834
- // The whole adapter path is wrapped so BOTH a rejected promise AND a
835
- // synchronous throw from the adapter route to `onadaptererror` rather than
836
- // escaping. `onadaptererror` is scoped to ADAPTER failures only — the fallback
837
- // callback path is the consumer's own code, so a throw there propagates
838
- // synchronously rather than being converted into a rejected dispatcher promise.
839
- function dispatchCommand(
840
- command: ChatCommand,
841
- runAdapterMethod: (adapter: ChatAdapter) => Promise<void> | undefined,
842
- callback: (() => void) | undefined,
843
- ): Promise<void> | void {
844
- if (adapter) {
845
- try {
846
- const run = runAdapterMethod(adapter);
847
- // `undefined` means the adapter has no such method → fall through to the
848
- // callback. Any other return (a promise, including one wrapping a sync
849
- // `undefined` result) means the adapter handled it — never fire the callback.
850
- if (run !== undefined) {
851
- return run.catch((error: unknown) => {
852
- onadaptererror?.({ command, error });
853
- });
854
- }
855
- } catch (error) {
856
- onadaptererror?.({ command, error });
857
- return;
858
- }
859
- }
860
- callback?.();
861
- }
862
-
863
- function handleSubmit(message: MessageInput, attachments: ChatAttachment[]): void {
864
- // Fire-and-forget the command (the dispatcher owns awaiting + error routing);
865
- // scroll immediately so the round-trip latency never delays the auto-scroll.
866
- // `Promise.resolve(...)` normalizes a sync-returning method to a promise so
867
- // the dispatcher always treats a present method as "handled" (sendMessage is
868
- // required, so it's always present here).
869
- void dispatchCommand(
870
- 'sendMessage',
871
- (resolvedAdapter) => Promise.resolve(resolvedAdapter.sendMessage(message, attachments)),
872
- () => onsubmit?.({ message, attachments }),
873
- );
874
-
875
- // Auto-scroll after sending.
876
- // Also update the bindable prop so the parent binding reflects the new
877
- // atBottom=true state immediately — scrollState.setAtBottom() only
878
- // updates the internal helper state; the bindable must be written explicitly
879
- // (matching the pattern in handleScrollStateChange and onReachBottom).
880
- scrollState.setAtBottom(true);
881
- atBottom = true;
882
- tick().then(() => {
883
- if (isVirtualized) {
884
- chatVirtualizer.scrollToOffset(chatVirtualizer.scrollSize, { behavior: 'instant' });
885
- } else {
886
- viewport?.scrollTo({ top: viewport.scrollHeight, behavior: 'instant' });
887
- }
888
- });
889
- }
890
-
891
- function captureHistoryScroll(): void {
892
- const previousFirstTranscriptMessageId = messages[0]?.id ?? null;
893
- const visibleAnchor = firstVisibleRenderedMessage();
894
- const previousFirstMessageId = visibleAnchor?.messageId ?? previousFirstTranscriptMessageId;
895
- const previousScrollTop = viewport?.scrollTop ?? chatVirtualizer.scrollOffset;
896
- const previousFirstMessageElement =
897
- previousFirstMessageId !== null ? renderedMessageById(previousFirstMessageId) : null;
898
- const previousFirstMessageViewportOffset =
899
- visibleAnchor?.viewportOffset ??
900
- (previousFirstMessageElement && viewport
901
- ? previousFirstMessageElement.getBoundingClientRect().top -
902
- viewport.getBoundingClientRect().top
903
- : 0);
904
- pendingHistoryScroll = {
905
- previousFirstMessageId,
906
- previousFirstTranscriptMessageId,
907
- previousFirstMessageViewportOffset,
908
- previousCount: messages.length,
909
- previousScrollTop,
910
- previousScrollHeight: viewport?.scrollHeight ?? 0,
911
- previousTotalSize: chatVirtualizer.scrollSize,
912
- };
913
- }
914
-
915
- async function settlePendingHistoryScroll(pending: PendingHistoryScroll): Promise<void> {
916
- for (let attempt = 0; attempt < 5; attempt += 1) {
917
- if (pendingHistoryScroll !== pending) return;
918
- if (await restorePendingHistoryScrollAfterLayout(pending)) return;
919
- }
920
-
921
- if (pendingHistoryScroll === pending) {
922
- pendingHistoryScroll = null;
923
- finishDeferredAdapterHistoryLoading();
924
- }
925
- }
926
-
927
- function finishDeferredAdapterHistoryLoading(): void {
928
- if (deferredAdapterHasMoreHistory === null) return;
929
-
930
- adapterHasMoreHistory = deferredAdapterHasMoreHistory;
931
- deferredAdapterHasMoreHistory = null;
932
- isLoadingHistory = false;
933
- }
934
-
935
- function historyTranscriptChanged(pending: PendingHistoryScroll): boolean {
936
- return (
937
- messages.length > pending.previousCount ||
938
- messages[0]?.id !== pending.previousFirstTranscriptMessageId
939
- );
940
- }
941
-
942
- async function handleLoadHistory(): Promise<void> {
943
- if (isLoadingHistory || !showHistoryTrigger) return;
944
-
945
- isLoadingHistory = true;
946
- captureHistoryScroll();
947
- const pending = pendingHistoryScroll;
948
- if (pending === null) {
949
- isLoadingHistory = false;
950
- return;
951
- }
952
-
953
- if (adapter?.loadOlderMessages) {
954
- let nextHasMoreHistory: boolean | undefined;
955
- try {
956
- const result = await adapter.loadOlderMessages(conversationId);
957
- nextHasMoreHistory = result.hasMore;
958
- } catch (error) {
959
- pendingHistoryScroll = null;
960
- isLoadingHistory = false;
961
- onadaptererror?.({ command: 'loadOlderMessages', error });
962
- return;
963
- }
964
-
965
- const transcriptChanged = historyTranscriptChanged(pending);
966
- if (isVirtualized && !transcriptChanged) {
967
- deferredAdapterHasMoreHistory = nextHasMoreHistory ?? null;
968
- await tick();
969
- if (historyTranscriptChanged(pending)) {
970
- await settlePendingHistoryScroll(pending);
971
- } else if (pendingHistoryScroll === pending) {
972
- pendingHistoryScroll = null;
973
- finishDeferredAdapterHistoryLoading();
974
- } else {
975
- finishDeferredAdapterHistoryLoading();
976
- }
977
- return;
978
- }
979
-
980
- if (isVirtualized || transcriptChanged) {
981
- await settlePendingHistoryScroll(pending);
982
- } else {
983
- pendingHistoryScroll = null;
984
- }
985
- adapterHasMoreHistory = nextHasMoreHistory;
986
- isLoadingHistory = false;
987
- return;
988
- }
989
-
990
- try {
991
- await onloadhistory?.();
992
- await settlePendingHistoryScroll(pending);
993
- } catch (error) {
994
- pendingHistoryScroll = null;
995
- throw error;
996
- } finally {
997
- isLoadingHistory = false;
998
- }
999
- }
1000
-
1001
- function handleRetry(messageId: string): void {
1002
- void dispatchCommand(
1003
- 'retryMessage',
1004
- // Return `undefined` ONLY when the optional method is absent; otherwise
1005
- // wrap its result so a present-but-sync method still counts as handled.
1006
- (resolvedAdapter) =>
1007
- resolvedAdapter.retryMessage
1008
- ? Promise.resolve(resolvedAdapter.retryMessage(messageId))
1009
- : undefined,
1010
- () => onretry?.(messageId),
1011
- );
1012
- }
1013
-
1014
- function handleEdit(event: { messageId: string; content: string }): void {
1015
- void dispatchCommand(
1016
- 'editMessage',
1017
- (resolvedAdapter) =>
1018
- resolvedAdapter.editMessage
1019
- ? Promise.resolve(resolvedAdapter.editMessage(event))
1020
- : undefined,
1021
- () => onedit?.(event),
1022
- );
1023
- }
1024
-
1025
- // C5 — suggestion selection handler. Calls the consumer callback then
1026
- // moves focus to the composer so keyboard users are not left stranded on a
1027
- // chip button that gets removed from the DOM when the suggestion set clears.
1028
- function handleSuggestionSelect(label: string): void {
1029
- onsuggestionselect?.(label);
1030
- inputRef?.focus();
1031
- }
1032
-
1033
- // C3 — an approve/deny affordance only resolves when SOMETHING can handle it —
1034
- // the adapter command OR the consumer callback. `canApprove`/`canDeny` gate
1035
- // both the button-enabled state (passed to ToolApprovalPart) and the resolve
1036
- // guard, so a consumer that wires neither path gets disabled buttons rather
1037
- // than a click that commits UI-only state to nowhere (matches canRetry/canEdit).
1038
- const canApprove = $derived(onapprove !== undefined || adapter?.approveToolCall !== undefined);
1039
- const canDeny = $derived(ondeny !== undefined || adapter?.denyToolCall !== undefined);
1040
-
1041
- // C3 — tool approval handlers. The resolution is recorded optimistically in the
1042
- // UI-only id sets for immediate feedback, then the adapter command (if present)
1043
- // runs and, on SUCCESS, the consumer callback fires (adapter-first-then-callback
1044
- // contract). Guard double-resolution: if the call id is already in either set,
1045
- // skip so a second tap/Escape cannot flip a resolved state. If the ADAPTER
1046
- // command REJECTS (or throws), the optimistic resolution is rolled back so the
1047
- // prompt returns to pending instead of being stuck "approved"/"denied" on a
1048
- // transport failure — the error routes to onadaptererror and the callback does
1049
- // NOT fire. With no adapter method, the callback fires synchronously.
1050
- function resolveToolApproval(
1051
- toolCallId: string,
1052
- command: 'approveToolCall' | 'denyToolCall',
1053
- canHandle: boolean,
1054
- commit: (id: string) => void,
1055
- rollback: (id: string) => void,
1056
- runAdapter: (adapter: ChatAdapter) => Promise<void> | undefined,
1057
- callback: (() => void) | undefined,
1058
- ): void {
1059
- if (!canHandle) return;
1060
- if (approvedToolCallIds.has(toolCallId) || deniedToolCallIds.has(toolCallId)) return;
1061
- commit(toolCallId);
1062
-
1063
- if (adapter) {
1064
- let run: Promise<void> | undefined;
1065
- try {
1066
- run = runAdapter(adapter);
1067
- } catch (error) {
1068
- rollback(toolCallId);
1069
- onadaptererror?.({ command, error });
1070
- return;
1071
- }
1072
- if (run !== undefined) {
1073
- void run.then(
1074
- () => callback?.(),
1075
- (error: unknown) => {
1076
- rollback(toolCallId);
1077
- onadaptererror?.({ command, error });
1078
- },
1079
- );
1080
- return;
1081
- }
1082
- }
1083
- callback?.();
1084
- }
1085
-
1086
- function handleApprove(toolCallId: string): void {
1087
- resolveToolApproval(
1088
- toolCallId,
1089
- 'approveToolCall',
1090
- canApprove,
1091
- (id) => (approvedToolCallIds = new Set([...approvedToolCallIds, id])),
1092
- (id) => (approvedToolCallIds = removeFromSet(approvedToolCallIds, id)),
1093
- (resolvedAdapter) =>
1094
- resolvedAdapter.approveToolCall
1095
- ? Promise.resolve(resolvedAdapter.approveToolCall(toolCallId))
1096
- : undefined,
1097
- () => onapprove?.(toolCallId),
1098
- );
1099
- }
1100
-
1101
- function handleDeny(toolCallId: string): void {
1102
- resolveToolApproval(
1103
- toolCallId,
1104
- 'denyToolCall',
1105
- canDeny,
1106
- (id) => (deniedToolCallIds = new Set([...deniedToolCallIds, id])),
1107
- (id) => (deniedToolCallIds = removeFromSet(deniedToolCallIds, id)),
1108
- (resolvedAdapter) =>
1109
- resolvedAdapter.denyToolCall
1110
- ? Promise.resolve(resolvedAdapter.denyToolCall(toolCallId))
1111
- : undefined,
1112
- () => ondeny?.(toolCallId),
1113
- );
1114
- }
1115
-
1116
- function removeFromSet(set: Set<string>, value: string): Set<string> {
1117
- const next = new Set(set);
1118
- next.delete(value);
1119
- return next;
1120
- }
1121
-
1122
- function handleStopGenerating(): void {
1123
- // Find the streaming message (last assistant message)
1124
- // Using backwards loop instead of findLast() for broader browser compatibility
1125
- let streamingMessage: Message | undefined;
1126
- for (let i = messages.length - 1; i >= 0; i--) {
1127
- const message = messages[i];
1128
- if (message?.role === 'assistant') {
1129
- streamingMessage = message;
1130
- break;
1131
- }
1132
- }
1133
- if (streamingMessage) {
1134
- // Local name avoids shadowing the module-level `streamingMessageId` $state.
1135
- const targetMessageId = streamingMessage.id;
1136
- void dispatchCommand(
1137
- 'stopGenerating',
1138
- (resolvedAdapter) =>
1139
- resolvedAdapter.stopGenerating
1140
- ? Promise.resolve(resolvedAdapter.stopGenerating(targetMessageId))
1141
- : undefined,
1142
- () => onstopgenerating?.({ messageId: targetMessageId }),
1143
- );
1144
- }
1145
- }
1146
-
1147
- function handlePromptClick(prompt: string): void {
1148
- // Filter to only ready attachments — pending ones have not yet resolved their
1149
- // textContent, so forwarding them would produce an inconsistent payload compared
1150
- // to the regular send-button flow which also filters on 'ready'.
1151
- const currentAttachments = (inputRef?.getAttachments() ?? []).filter(
1152
- (a) => a.status === 'ready',
1153
- );
1154
- handleSubmit({ role: 'user', content: prompt }, currentAttachments);
1155
- inputRef?.clear();
1156
- }
1157
-
1158
- function handleKeyDown(event: KeyboardEvent): void {
1159
- // Intercept Ctrl+F / Cmd+F to open in-app search instead of browser search.
1160
- // If the search bar is already open, refocus its input rather than being a no-op.
1161
- if (allowSearch && (event.ctrlKey || event.metaKey) && event.key === 'f') {
1162
- event.preventDefault();
1163
- if (searchState.isOpen) {
1164
- searchBarRef?.focusInput();
1165
- } else {
1166
- searchState.open();
1167
- }
1168
- return;
1169
- }
1170
-
1171
- // Let the chat keyboard nav helper handle all other shortcuts.
1172
- // The keyboard nav only handles Home/End/PageUp/PageDown/Arrow keys, so
1173
- // Enter and Escape pass through without conflict when the search bar is open.
1174
- // The search bar's own onkeydown handles Enter/Escape directly on its input.
1175
- keyboardNav.handleKeyDown(event, viewport);
1176
- }
1177
-
1178
- function messageIdFromElement(element: HTMLElement): string | null {
1179
- if (!element.id.startsWith('message-')) return null;
1180
- return element.id.slice('message-'.length);
1181
- }
1182
-
1183
- function renderedMessageById(messageId: string): HTMLElement | null {
1184
- return viewport?.querySelector<HTMLElement>(`#message-${CSS.escape(messageId)}`) ?? null;
1185
- }
1186
-
1187
- function firstVisibleRenderedMessage(): { messageId: string; viewportOffset: number } | null {
1188
- if (!viewport) return null;
1189
-
1190
- const viewportRect = viewport.getBoundingClientRect();
1191
- for (const message of viewport.querySelectorAll<HTMLElement>('.chat-message')) {
1192
- const messageId = messageIdFromElement(message);
1193
- if (!messageId) continue;
1194
-
1195
- const rect = message.getBoundingClientRect();
1196
- if (rect.bottom <= viewportRect.top || rect.top >= viewportRect.bottom) continue;
1197
-
1198
- return {
1199
- messageId,
1200
- viewportOffset: rect.top - viewportRect.top,
1201
- };
1202
- }
1203
-
1204
- return null;
1205
- }
1206
-
1207
- async function focusVirtualMessage(messageId: string): Promise<void> {
1208
- const existing = renderedMessageById(messageId);
1209
- if (existing) {
1210
- existing.focus();
1211
- existing.scrollIntoView({ behavior: scrollState.getScrollBehavior(), block: 'nearest' });
1212
- return;
1213
- }
1214
-
1215
- const targetIndex = findRenderRowIndexByMessageId(renderRows, messageId);
1216
- if (targetIndex < 0) return;
1217
-
1218
- chatVirtualizer.scrollToIndex(targetIndex, {
1219
- align: 'auto',
1220
- behavior: scrollState.getScrollBehavior(),
1221
- });
1222
- await tick();
1223
- const target = renderedMessageById(messageId);
1224
- target?.focus();
1225
- target?.scrollIntoView({ behavior: scrollState.getScrollBehavior(), block: 'nearest' });
1226
- }
1227
-
1228
- function navigateVirtualMessage(direction: 'next' | 'previous'): boolean {
1229
- if (!isVirtualized || !viewport) return false;
1230
- const activeElement =
1231
- document.activeElement instanceof HTMLElement ? document.activeElement : null;
1232
- if (!activeElement?.classList.contains('chat-message')) return false;
1233
-
1234
- const currentMessageId = messageIdFromElement(activeElement);
1235
- if (!currentMessageId) return false;
1236
-
1237
- const currentIndex = findRenderRowIndexByMessageId(renderRows, currentMessageId);
1238
- if (currentIndex < 0) return false;
1239
-
1240
- const step = direction === 'next' ? 1 : -1;
1241
- for (
1242
- let targetIndex = currentIndex + step;
1243
- targetIndex >= 0 && targetIndex < renderRows.length;
1244
- targetIndex += step
1245
- ) {
1246
- const targetRow = renderRows[targetIndex];
1247
- if (targetRow?.type !== 'message') continue;
1248
-
1249
- void focusVirtualMessage(targetRow.message.id);
1250
- return true;
1251
- }
1252
-
1253
- return true;
1254
- }
1255
-
1256
- // Scroll to the currently matched message when the current match changes
1257
- $effect(() => {
1258
- const match = searchState.currentMatch;
1259
- if (!match || !viewport) return;
1260
-
1261
- void scrollCurrentSearchMatch(match.message.id);
1262
- });
1263
-
1264
- async function scrollCurrentSearchMatch(messageId: string): Promise<void> {
1265
- if (!viewport) return;
1266
-
1267
- if (isVirtualized) {
1268
- const targetIndex = findRenderRowIndexByMessageId(renderRows, messageId);
1269
- if (targetIndex >= 0) {
1270
- chatVirtualizer.scrollToIndex(targetIndex, { align: 'center', behavior: 'auto' });
1271
- await tick();
1272
- }
1273
- }
1274
-
1275
- const messageElement = viewport.querySelector<HTMLElement>(`#message-${CSS.escape(messageId)}`);
1276
- if (messageElement) {
1277
- messageElement.scrollIntoView({ behavior: 'auto', block: 'nearest' });
1278
- }
1279
- }
1280
-
1281
- // ==========================================================================
1282
- // Container-Level Drag and Drop
1283
- // ==========================================================================
1284
-
1285
- function handleContainerDrop(event: DragEvent): void {
1286
- // Only intercept file drops — text/URL drops should not have their
1287
- // default behavior suppressed, matching the dragover guard above.
1288
- if (!event.dataTransfer?.types.includes('Files')) return;
1289
- isContainerDragOver = false;
1290
-
1291
- if (!allowAttachments) return;
1292
- event.preventDefault();
1293
-
1294
- const files = event.dataTransfer.files;
1295
- if (files.length > 0) {
1296
- inputRef?.addFiles(Array.from(files));
1297
- }
1298
- }
1299
-
1300
- function handleContainerDragOver(event: DragEvent): void {
1301
- // Only intercept file drags — text/URL drags should not show the file drop overlay
1302
- // or have their default behavior suppressed.
1303
- if (!event.dataTransfer?.types.includes('Files')) return;
1304
- if (!allowAttachments) return;
1305
- event.preventDefault();
1306
- event.dataTransfer.dropEffect = 'copy';
1307
- isContainerDragOver = true;
1308
- }
1309
-
1310
- function handleContainerDragLeave(event: DragEvent): void {
1311
- // Only clear if leaving the container entirely (not entering a child)
1312
- const container = event.currentTarget as HTMLElement;
1313
- if (!container.contains(event.relatedTarget as Node)) {
1314
- isContainerDragOver = false;
1315
- }
1316
- }
1317
-
1318
- // Capture-phase drop listener: resets the overlay even when a child (e.g. ChatInput)
1319
- // calls stopPropagation() on the drop event, which prevents the bubbling ondrop handler
1320
- // on this container from ever firing.
1321
- $effect(() => {
1322
- if (!containerRef) return;
1323
- function resetDragOver(event: DragEvent): void {
1324
- if (event.dataTransfer?.types.includes('Files')) {
1325
- isContainerDragOver = false;
1326
- }
1327
- }
1328
- containerRef.addEventListener('drop', resetDragOver, { capture: true });
1329
- return () => {
1330
- containerRef?.removeEventListener('drop', resetDragOver, { capture: true });
1331
- };
1332
- });
1333
-
1334
- // ==========================================================================
1335
- // Imperative API
1336
- // ==========================================================================
1337
-
1338
- export function scrollToBottom(): void {
1339
- if (isVirtualized) {
1340
- chatVirtualizer.scrollToOffset(chatVirtualizer.scrollSize, {
1341
- behavior: scrollState.getScrollBehavior(),
1342
- });
1343
- } else {
1344
- scrollState.scrollToBottom(viewport);
1345
- }
1346
- }
1347
-
1348
- export function scrollToTop(): void {
1349
- if (isVirtualized) {
1350
- chatVirtualizer.scrollToOffset(0, { behavior: scrollState.getScrollBehavior() });
1351
- } else {
1352
- scrollState.scrollToTop(viewport);
1353
- }
1354
- }
1355
-
1356
- export function focusInput(): void {
1357
- inputRef?.focus();
1358
- }
1359
-
1360
- /**
1361
- * Begin streaming content for a specific message.
1362
- * The message should already exist in the conversation.
1363
- * Replaces the typing indicator dots with actual content.
1364
- * Cancels any pending rAF from a prior pushToken call so a stale flush does
1365
- * not overwrite the fresh stream if beginStreaming is called without a
1366
- * preceding endStreaming.
1367
- */
1368
- export function beginStreaming(messageId: string): void {
1369
- if (streamingScrollRaf !== undefined) {
1370
- cancelAnimationFrame(streamingScrollRaf);
1371
- streamingScrollRaf = undefined;
1372
- }
1373
- streamingMessageId = messageId;
1374
- streamingContent = '';
1375
- tokenBuffer = [];
1376
- }
1377
-
1378
- /**
1379
- * Append a token to the streaming content buffer.
1380
- * Tokens are accumulated in an array and flushed (joined once) per animation frame,
1381
- * avoiding O(n²) work from calling join() on every individual token push.
1382
- * Scroll updates are batched in the same frame to avoid excessive layout work.
1383
- */
1384
- export function pushToken(token: string): void {
1385
- tokenBuffer.push(token);
1386
-
1387
- // Batch the join + scroll update to once per animation frame.
1388
- // Without this, join() is O(n) per push → O(n²) total across the stream.
1389
- if (streamingScrollRaf === undefined) {
1390
- streamingScrollRaf = requestAnimationFrame(() => {
1391
- streamingScrollRaf = undefined;
1392
- // Flush: join the entire buffer once per frame
1393
- streamingContent = tokenBuffer.join('');
1394
- if (streamingRowElement) {
1395
- tick().then(() => {
1396
- if (streamingRowElement) {
1397
- chatVirtualizer.measureElementNode(streamingRowElement);
1398
- }
1399
- });
1400
- }
1401
- // Auto-scroll if at bottom
1402
- if (scrollState.atBottom && viewport) {
1403
- if (isVirtualized) {
1404
- chatVirtualizer.scrollToOffset(chatVirtualizer.scrollSize, { behavior: 'instant' });
1405
- } else {
1406
- viewport.scrollTo({ top: viewport.scrollHeight, behavior: 'instant' });
1407
- }
1408
- }
1409
- });
1410
- }
1411
- }
1412
-
1413
- /**
1414
- * End streaming for the current message.
1415
- * The message's final content should already be committed to the Conversation.
1416
- * Cancels any pending rAF flush so the stale buffer is not written after endStreaming.
1417
- */
1418
- export function endStreaming(): void {
1419
- if (streamingScrollRaf !== undefined) {
1420
- cancelAnimationFrame(streamingScrollRaf);
1421
- streamingScrollRaf = undefined;
1422
- }
1423
- streamingMessageId = null;
1424
- streamingContent = '';
1425
- tokenBuffer = [];
1426
- }
1427
-
1428
- function virtualizedSpacerStyle(): string {
1429
- return `height: ${chatVirtualizer.totalSize}px; position: relative; width: 100%;`;
1430
- }
1431
-
1432
- function virtualizedRowStyle(virtualItem: VirtualItem): string {
1433
- return `position: absolute; inset-inline: 0; top: 0; transform: translateY(${virtualItem.start}px);`;
1434
- }
1435
-
1436
- function virtualRowAttachment(row: ChatRenderRow): Attachment<HTMLElement> {
1437
- return (node) => {
1438
- const detachMeasurement = chatVirtualizer.measureElement(node);
1439
- if (row.type === 'message' && row.message.id === streamingMessageId) {
1440
- streamingRowElement = node;
1441
- }
1442
-
1443
- return () => {
1444
- detachMeasurement?.();
1445
- if (streamingRowElement === node) {
1446
- streamingRowElement = null;
1447
- }
1448
- };
1449
- };
1450
- }
1451
- </script>
1452
-
1453
- <div
1454
- bind:this={containerRef}
1455
- {id}
1456
- class={classNames('cinder-chat', 'chat-container', className)}
1457
- data-surface-mode={surfaceMode}
1458
- data-cinder-density={density}
1459
- data-cinder-variant={variant}
1460
- role="region"
1461
- aria-label="Chat conversation"
1462
- onkeydown={handleKeyDown}
1463
- ondrop={handleContainerDrop}
1464
- ondragover={handleContainerDragOver}
1465
- ondragleave={handleContainerDragLeave}
1466
- {...rest}
1467
- >
1468
- {#if isContainerDragOver && allowAttachments}
1469
- <div class="chat-drop-overlay" aria-hidden="true">
1470
- <span class="chat-drop-label">Drop files here</span>
1471
- </div>
1472
- {/if}
1473
- {#if header}
1474
- <div class="chat-header">
1475
- {@render header()}
1476
- </div>
1477
- {/if}
1478
-
1479
- {#if allowSearch && searchState.isOpen}
1480
- <ChatSearchBar
1481
- bind:this={searchBarRef}
1482
- instanceId={id}
1483
- query={searchState.query}
1484
- matchCount={searchState.matchCount}
1485
- currentMatchIndex={searchState.currentMatchIndex}
1486
- onquerychange={searchState.setQuery}
1487
- onnext={searchState.nextMatch}
1488
- onprevious={searchState.previousMatch}
1489
- onclose={searchState.close}
1490
- />
1491
- {/if}
1492
-
1493
- {#snippet renderTypingIndicator()}
1494
- <div
1495
- class="chat-typing-indicator"
1496
- role="status"
1497
- aria-label={streamingStatus ?? 'Assistant is typing'}
1498
- >
1499
- {#if streamingStatus}
1500
- <span class="chat-typing-status">{streamingStatus}</span>
1501
- {:else}
1502
- <span class="chat-typing-dot" aria-hidden="true"></span>
1503
- <span class="chat-typing-dot" aria-hidden="true"></span>
1504
- <span class="chat-typing-dot" aria-hidden="true"></span>
1505
- {/if}
1506
- </div>
1507
- {/snippet}
1508
-
1509
- {#snippet renderMessageRow(messageRow: ChatMessageRenderRow)}
1510
- {@const message = messageRow.message}
1511
- {@const pairs = message.toolCall?.id
1512
- ? (toolCallPairsByCallId.get(message.toolCall.id) ?? [])
1513
- : []}
1514
- {@const isStreamingMessage = streamingMessageId === message.id}
1515
- {@const isCurrentSearchMatch =
1516
- searchState.isOpen &&
1517
- searchState.currentMatch !== null &&
1518
- searchState.currentMatch.message.id === message.id}
1519
- <!-- C4/C5: resolve reasoning/steps/suggestions overlays. Each prefers an
1520
- explicit per-message prop over `cinder:`-namespaced metadata, validates
1521
- both paths identically, and guards consumer-callback throws — so a
1522
- malformed callback can never break the chat render (see resolve* in
1523
- chat/utilities). A plain transcript yields `undefined` for all three. -->
1524
- {@const derivedReasoning = resolveMessageReasoning(message, messageReasoning)}
1525
- {@const derivedSteps = resolveMessageSteps(message, messageSteps)}
1526
- {@const derivedSuggestions =
1527
- message.id === lastMessageId
1528
- ? resolveMessageSuggestions(message, messageSuggestions)
1529
- : undefined}
1530
-
1531
- <!-- The built-in row. Wrapped in a snippet so the optional `row`
1532
- override can render it (inversion of control) or replace it. The
1533
- per-part `messagePart` override flows through into the message's
1534
- parts renderer. -->
1535
- {#snippet renderDefaultRow()}
1536
- {@const receipt =
1537
- message.role === 'user' ? readReceiptsState.getReceipt(message.id) : undefined}
1538
- <ChatMessage
1539
- {message}
1540
- toolCallPairs={pairs}
1541
- {messagePart}
1542
- onretry={allowRetry && canRetry ? handleRetry : undefined}
1543
- onedit={allowEditing && canEdit ? handleEdit : undefined}
1544
- showDefaultActions={allowCopy}
1545
- {onexpandedchange}
1546
- streaming={isStreamingMessage}
1547
- overrideContent={isStreamingMessage ? streamingContent : undefined}
1548
- searchMatch={isCurrentSearchMatch}
1549
- tabindex={-1}
1550
- approvedToolCallIds={approvedToolCallIds.size > 0 ? approvedToolCallIds : undefined}
1551
- deniedToolCallIds={deniedToolCallIds.size > 0 ? deniedToolCallIds : undefined}
1552
- onapprove={canApprove ? handleApprove : undefined}
1553
- ondeny={canDeny ? handleDeny : undefined}
1554
- reasoning={derivedReasoning}
1555
- steps={derivedSteps}
1556
- suggestions={derivedSuggestions}
1557
- reasoningExpanded={reasoningState.isExpanded(message.id)}
1558
- onreasoning={() => reasoningState.toggle(message.id)}
1559
- toolCallExpanded={toolCallState.isExpanded(message.id)}
1560
- ontoolcalltoggle={() => toolCallState.toggle(message.id)}
1561
- onsuggestionselect={handleSuggestionSelect}
1562
- >
1563
- {#snippet actions()}
1564
- {#if messageActions}
1565
- {@render messageActions(message)}
1566
- {/if}
1567
- {/snippet}
1568
- {#snippet status()}
1569
- {#if messageStatus}
1570
- {@render messageStatus(message)}
1571
- {:else if receipt}
1572
- <ChatReadReceipt {receipt} />
1573
- {/if}
1574
- {/snippet}
1575
- </ChatMessage>
1576
- {/snippet}
1577
-
1578
- {#if row}
1579
- {@render row(message, renderDefaultRow)}
1580
- {:else}
1581
- {@render renderDefaultRow()}
1582
- {/if}
1583
- {/snippet}
1584
-
1585
- {#snippet renderChatRow(renderRow: ChatRenderRow)}
1586
- {#if renderRow.type === 'date'}
1587
- <ChatDateSeparator date={renderRow.date} />
1588
- {:else if renderRow.type === 'unread-divider'}
1589
- <div class="chat-unread-divider" role="separator" aria-label="New messages below">
1590
- <span class="chat-unread-divider-line" aria-hidden="true"></span>
1591
- <span class="chat-unread-divider-label">New</span>
1592
- <span class="chat-unread-divider-line" aria-hidden="true"></span>
1593
- </div>
1594
- {:else if renderRow.type === 'typing'}
1595
- {@render renderTypingIndicator()}
1596
- {:else}
1597
- {@render renderMessageRow(renderRow)}
1598
- {/if}
1599
- {/snippet}
1600
-
1601
- {#key timelineResetIdentity}
1602
- <!-- svelte-ignore a11y_no_noninteractive_tabindex -->
1603
- <div
1604
- bind:this={viewport}
1605
- id={timelineId}
1606
- class="chat-timeline"
1607
- role="log"
1608
- aria-label="Messages"
1609
- aria-describedby={statusId}
1610
- aria-live={isVirtualized ? 'off' : 'polite'}
1611
- aria-relevant={isVirtualized ? undefined : 'additions'}
1612
- data-cinder-virtualized={isVirtualized ? '' : undefined}
1613
- tabindex="0"
1614
- {@attach scrollAttachment}
1615
- {@attach historyAnchorScrollAttachment}
1616
- {@attach viewportAttach}
1617
- >
1618
- {#if showHistoryTrigger}
1619
- <ChatHistoryTrigger
1620
- bind:this={historyTriggerRef}
1621
- loading={isLoadingHistory}
1622
- label={loadEarlierLabel}
1623
- loadingLabel={loadingEarlierLabel}
1624
- onload={() => void handleLoadHistory()}
1625
- />
1626
- {/if}
1627
-
1628
- {#if messages.length === 0}
1629
- {#if empty}
1630
- {@render empty()}
1631
- {:else}
1632
- <div class="chat-empty" role="status">
1633
- <p>No messages yet</p>
1634
- {#if emptyPrompts && emptyPrompts.length > 0}
1635
- <div class="chat-empty-prompts" role="group" aria-label="Suggested prompts">
1636
- {#each emptyPrompts as prompt, index (index)}
1637
- <button
1638
- type="button"
1639
- class="chat-empty-prompt"
1640
- onclick={() => handlePromptClick(prompt)}
1641
- >
1642
- {prompt}
1643
- </button>
1644
- {/each}
1645
- </div>
1646
- {/if}
1647
- </div>
1648
- {/if}
1649
- {:else if isVirtualized}
1650
- <div class="chat-virtual-spacer" style={virtualizedSpacerStyle()}>
1651
- {#each virtualRows as virtualRow (chatRenderRowKey(virtualRow.row))}
1652
- <div
1653
- class="chat-virtual-row"
1654
- data-cinder-virtual-index={virtualRow.virtualItem.index}
1655
- style={virtualizedRowStyle(virtualRow.virtualItem)}
1656
- {@attach virtualRowAttachment(virtualRow.row)}
1657
- >
1658
- {@render renderChatRow(virtualRow.row)}
1659
- </div>
1660
- {/each}
1661
- </div>
1662
- {:else}
1663
- {#key staticRowsResetIdentity}
1664
- {#each renderRows as renderRow (chatRenderRowKey(renderRow))}
1665
- {@render renderChatRow(renderRow)}
1666
- {/each}
1667
- {/key}
1668
- {/if}
1669
-
1670
- <!-- Per-participant typing indicator: above the bottom sentinel.
1671
- Always in DOM regardless of message count — the aria-live region must
1672
- exist before the first update fires so screen readers receive the
1673
- announcement even in an empty chat. The outer wrapper is always rendered;
1674
- the inner indicator mounts/unmounts via {#if isActive} inside the
1675
- component to replay the entrance animation on each typing start.
1676
- Virtualized path: sits outside the virtual spacer so it does not affect
1677
- row measurement. The sentinel remains the last element so
1678
- IntersectionObserver fires correctly when the typing region gains height. -->
1679
- <ChatParticipantTyping
1680
- typingLabel={typingIndicatorState.typingLabel}
1681
- participantCount={typingIndicatorState.participantCount}
1682
- />
1683
-
1684
- <!-- Bottom sentinel for IntersectionObserver -->
1685
- <div class="chat-bottom-sentinel" aria-hidden="true" {@attach sentinelAttach}></div>
1686
- </div>
1687
- {/key}
1688
-
1689
- <!-- Input Area with Jump Buttons -->
1690
- <div class="chat-input-wrapper">
1691
- <ChatJumpControls
1692
- showJumpButton={scrollState.showJumpButton}
1693
- hasNewMessageIndicator={unreadState.newMessageIndicatorVisible}
1694
- unreadCount={unreadState.unreadCount}
1695
- displayUnreadCount={unreadState.displayUnreadCount}
1696
- hasLargeCount={unreadState.hasLargeCount}
1697
- onjumptolatest={handleJumpToLatest}
1698
- />
1699
-
1700
- <!-- Input Area -->
1701
- <div class="chat-input-area">
1702
- <ChatInput
1703
- id={inputId}
1704
- bind:this={inputRef}
1705
- onsubmit={(message, attachments) => handleSubmit(message, attachments)}
1706
- disabled={streaming}
1707
- sending={streaming}
1708
- {allowAttachments}
1709
- onstop={streaming ? handleStopGenerating : undefined}
1710
- {onattachmentadd}
1711
- {onattachmentremove}
1712
- {onattachmentfailure}
1713
- />
1714
- </div>
1715
- </div>
1716
-
1717
- <ChatStatusAnnouncer
1718
- {statusId}
1719
- messageCount={messages.length}
1720
- announcerMessage={historyAnnouncement || unreadState.announcerMessage}
1721
- assertiveMessage={toolApprovalAssertiveMessage}
1722
- />
1723
-
1724
- <!-- Typing-participant live region: outside role="log" to avoid double announcement.
1725
- (ChatStatusAnnouncer is similarly placed outside the log for the same reason.)
1726
- Text is empty when nobody is typing, debounced for brief-burst suppression. -->
1727
- <div class="cinder-sr-only" aria-live="polite" aria-atomic="true">
1728
- {typingIndicatorState.announcedLabel}
1729
- </div>
1730
- </div>
1731
-
1732
- <style>
1733
- .chat-container {
1734
- container-type: inline-size;
1735
- display: flex;
1736
- flex-direction: column;
1737
- height: 100%;
1738
- position: relative;
1739
- background: var(--cinder-surface);
1740
- }
1741
-
1742
- .chat-container[data-surface-mode='transparent'] {
1743
- background: transparent;
1744
- }
1745
-
1746
- /* ==========================================================================
1747
- * Density tokens — intermediate contract between container and its children.
1748
- * ONLY the container reads `data-cinder-density`; children consume the
1749
- * custom properties below. The defaults match the historical hard-coded
1750
- * --cinder-space values (comfortable = no visual change from before).
1751
- * ========================================================================== */
1752
-
1753
- .chat-container {
1754
- --cinder-chat-message-gap: var(--cinder-space-3);
1755
- --cinder-chat-message-padding-inline: var(--cinder-space-4);
1756
- --cinder-chat-timeline-padding: var(--cinder-space-4);
1757
- /* Narrow-viewport tokens: tighter padding/gap at ≤480px (comfortable density). */
1758
- --cinder-chat-narrow-padding: var(--cinder-space-3);
1759
- --cinder-chat-narrow-gap: var(--cinder-space-2);
1760
- }
1761
-
1762
- .chat-container[data-cinder-density='compact'] {
1763
- --cinder-chat-message-gap: var(--cinder-space-1-5);
1764
- --cinder-chat-message-padding-inline: var(--cinder-space-2);
1765
- --cinder-chat-timeline-padding: var(--cinder-space-2);
1766
- /* Narrow-viewport tokens: proportionally tighter for compact density. */
1767
- --cinder-chat-narrow-padding: var(--cinder-space-1-5);
1768
- --cinder-chat-narrow-gap: var(--cinder-space-1);
1769
- }
1770
-
1771
- /* Full-window drop zone overlay */
1772
- .chat-drop-overlay {
1773
- position: absolute;
1774
- inset: 0;
1775
- z-index: 100;
1776
- display: flex;
1777
- align-items: center;
1778
- justify-content: center;
1779
- background: color-mix(in oklch, var(--cinder-accent), transparent 90%);
1780
- border: 2px dashed var(--cinder-accent);
1781
- border-radius: var(--cinder-radius-md);
1782
- pointer-events: none;
1783
- }
1784
-
1785
- .chat-drop-label {
1786
- font-size: var(--cinder-text-lg);
1787
- font-weight: var(--cinder-font-medium);
1788
- color: var(--cinder-accent-text);
1789
- background: var(--cinder-surface);
1790
- padding: var(--cinder-space-2) var(--cinder-space-4);
1791
- border-radius: var(--cinder-radius-md);
1792
- }
1793
-
1794
- .chat-header {
1795
- flex-shrink: 0;
1796
- border-bottom: 1px solid var(--cinder-border);
1797
- }
1798
-
1799
- /* Timeline / Message Area */
1800
- .chat-timeline {
1801
- flex: 1;
1802
- overflow-y: auto;
1803
- overflow-anchor: auto;
1804
- padding: var(--cinder-chat-timeline-padding);
1805
- display: flex;
1806
- flex-direction: column;
1807
- gap: var(--cinder-chat-message-gap);
1808
- }
1809
-
1810
- .chat-timeline[data-cinder-virtualized] {
1811
- display: block;
1812
- overflow-anchor: none;
1813
- }
1814
-
1815
- .chat-timeline[data-cinder-virtualized] > :global(.chat-history-trigger) {
1816
- margin-block-end: var(--cinder-chat-message-gap);
1817
- }
1818
-
1819
- .chat-virtual-spacer {
1820
- flex-shrink: 0;
1821
- }
1822
-
1823
- .chat-virtual-row {
1824
- box-sizing: border-box;
1825
- width: 100%;
1826
- padding-block-end: var(--cinder-chat-message-gap);
1827
- }
1828
-
1829
- /* Inset surface separates assistant bubbles (--cinder-surface) from the
1830
- * page-level background. Only applied in default surfaceMode; embedded
1831
- * contexts using surfaceMode="transparent" inherit their host's background. */
1832
- .chat-container[data-surface-mode='default'] .chat-timeline {
1833
- background: var(--cinder-surface-inset);
1834
- }
1835
-
1836
- /* The timeline is a scrollable region; an outset ring is clipped by its own
1837
- overflow, so paint an INSET ring (Strategy B-inset). */
1838
- .chat-timeline:focus-visible {
1839
- outline: var(--cinder-ring-width) solid transparent;
1840
- box-shadow: inset 0 0 0 var(--cinder-ring-width)
1841
- var(--_cinder-chat-timeline-ring, var(--cinder-ring-color));
1842
- }
1843
-
1844
- @media (forced-colors: active) {
1845
- .chat-timeline:focus-visible {
1846
- outline: var(--cinder-ring-width) solid ButtonText;
1847
- outline-offset: calc(var(--cinder-ring-width) * -1);
1848
- }
1849
- }
1850
-
1851
- /* Prevent non-last messages from being scroll anchors */
1852
- .chat-timeline > :not(:last-child) {
1853
- overflow-anchor: none;
1854
- }
1855
-
1856
- /* Empty State */
1857
- .chat-empty {
1858
- flex: 1;
1859
- display: flex;
1860
- flex-direction: column;
1861
- align-items: center;
1862
- justify-content: center;
1863
- gap: var(--cinder-space-4);
1864
- text-align: center;
1865
- color: var(--cinder-text-muted);
1866
- }
1867
-
1868
- .chat-empty-prompts {
1869
- display: flex;
1870
- flex-wrap: wrap;
1871
- gap: var(--cinder-space-2);
1872
- justify-content: center;
1873
- max-width: 36rem;
1874
- padding: 0 var(--cinder-space-4);
1875
- }
1876
-
1877
- .chat-empty-prompt {
1878
- padding: var(--cinder-space-2) var(--cinder-space-3);
1879
- font-size: var(--cinder-text-sm);
1880
- color: var(--cinder-text);
1881
- background: var(--cinder-surface-raised);
1882
- border: 1px solid var(--cinder-border);
1883
- border-radius: var(--cinder-radius-lg);
1884
- cursor: pointer;
1885
- transition:
1886
- background var(--cinder-duration-fast) var(--cinder-ease-standard),
1887
- border-color var(--cinder-duration-fast) var(--cinder-ease-standard);
1888
- }
1889
-
1890
- @media (hover: hover) {
1891
- .chat-empty-prompt:hover {
1892
- background: var(--cinder-surface-hover);
1893
- border-color: var(--cinder-accent);
1894
- }
1895
- }
1896
-
1897
- .chat-empty-prompt:focus-visible {
1898
- outline: var(--cinder-ring-width) solid transparent;
1899
- box-shadow: var(--_cinder-focus-ring-shadow);
1900
- }
1901
-
1902
- @media (forced-colors: active) {
1903
- .chat-empty-prompt:focus-visible {
1904
- outline: var(--cinder-ring-width) solid ButtonText;
1905
- outline-offset: 3px;
1906
- }
1907
- }
1908
-
1909
- /* Unread Divider */
1910
- .chat-unread-divider {
1911
- display: flex;
1912
- align-items: center;
1913
- gap: var(--cinder-space-3);
1914
- padding: var(--cinder-space-2) 0;
1915
- }
1916
-
1917
- .chat-unread-divider-line {
1918
- flex: 1;
1919
- height: 1px;
1920
- background: var(--cinder-accent);
1921
- }
1922
-
1923
- .chat-unread-divider-label {
1924
- display: inline-flex;
1925
- align-items: center;
1926
- padding: var(--cinder-space-0-5) var(--cinder-space-2);
1927
- font-size: var(--cinder-text-xs);
1928
- font-weight: var(--cinder-font-medium);
1929
- color: var(--cinder-accent-text);
1930
- background: color-mix(in oklch, var(--cinder-accent), transparent 92%);
1931
- border-radius: var(--cinder-radius-full);
1932
- }
1933
-
1934
- /* Bottom Sentinel (invisible) */
1935
- .chat-bottom-sentinel {
1936
- height: 1px;
1937
- flex-shrink: 0;
1938
- }
1939
-
1940
- /* Typing Indicator */
1941
- .chat-typing-indicator {
1942
- display: flex;
1943
- align-items: center;
1944
- gap: var(--cinder-space-1);
1945
- padding: var(--cinder-space-3) var(--cinder-space-4);
1946
- max-width: max-content;
1947
- background: var(--cinder-surface-raised);
1948
- border-radius: var(--cinder-radius-lg);
1949
- animation: typing-indicator-enter var(--cinder-duration) var(--cinder-ease-decelerate);
1950
- }
1951
-
1952
- @keyframes typing-indicator-enter {
1953
- from {
1954
- opacity: 0;
1955
- transform: translateY(0.5rem);
1956
- }
1957
- to {
1958
- opacity: 1;
1959
- transform: translateY(0);
1960
- }
1961
- }
1962
-
1963
- .chat-typing-status {
1964
- font-size: var(--cinder-text-sm);
1965
- color: var(--cinder-text-muted);
1966
- font-style: italic;
1967
- }
1968
-
1969
- .chat-typing-dot {
1970
- width: 0.5rem;
1971
- height: 0.5rem;
1972
- background: var(--cinder-text-muted);
1973
- border-radius: var(--cinder-radius-full);
1974
- animation: typing-bounce 1.4s ease-in-out infinite;
1975
- }
1976
-
1977
- .chat-typing-dot:nth-child(1) {
1978
- animation-delay: 0s;
1979
- }
1980
-
1981
- .chat-typing-dot:nth-child(2) {
1982
- animation-delay: 0.2s;
1983
- }
1984
-
1985
- .chat-typing-dot:nth-child(3) {
1986
- animation-delay: 0.4s;
1987
- }
1988
-
1989
- @keyframes typing-bounce {
1990
- 0%,
1991
- 60%,
1992
- 100% {
1993
- opacity: 0.4;
1994
- transform: translateY(0);
1995
- }
1996
- 30% {
1997
- opacity: 1;
1998
- transform: translateY(-0.25rem);
1999
- }
2000
- }
2001
-
2002
- @media (prefers-reduced-motion: reduce) {
2003
- .chat-typing-dot {
2004
- animation: typing-pulse 1.4s ease-in-out infinite;
2005
- }
2006
-
2007
- @keyframes typing-pulse {
2008
- 0%,
2009
- 100% {
2010
- opacity: 0.4;
2011
- }
2012
- 50% {
2013
- opacity: 1;
2014
- }
2015
- }
2016
-
2017
- /* Disable entrance animations for reduced motion */
2018
- .chat-typing-indicator {
2019
- animation: none;
2020
- }
2021
- }
2022
-
2023
- /* Input Wrapper - positions jump buttons relative to input */
2024
- .chat-input-wrapper {
2025
- position: relative;
2026
- flex-shrink: 0;
2027
- }
2028
-
2029
- /* Input Area */
2030
- .chat-input-area {
2031
- flex-shrink: 0;
2032
- padding: var(--cinder-chat-timeline-padding);
2033
- border-top: 1px solid var(--cinder-border);
2034
- background: var(--cinder-surface);
2035
- }
2036
-
2037
- .chat-container[data-surface-mode='transparent'] .chat-input-area {
2038
- background: transparent;
2039
- }
2040
-
2041
- /* Responsive adjustments: tighten padding at narrow widths.
2042
- Uses --cinder-chat-narrow-* tokens so each density gets an appropriate
2043
- reduced value (comfortable → space-3/space-2; compact → space-1-5/space-1). */
2044
- @container (max-width: 480px) {
2045
- .chat-timeline {
2046
- padding: var(--cinder-chat-narrow-padding);
2047
- gap: var(--cinder-chat-narrow-gap);
2048
- }
2049
-
2050
- .chat-input-area {
2051
- padding: var(--cinder-chat-narrow-padding);
2052
- }
2053
- }
2054
-
2055
- /* ==========================================================================
2056
- * Variant — flat: remove bubble backgrounds; role is communicated via
2057
- * alignment and role label only. Text renders on --cinder-surface-inset
2058
- * (the timeline background in default surfaceMode), which meets WCAG AA
2059
- * for --cinder-text. The `:global()` reach is required because bubble CSS
2060
- * lives in chat-message.svelte (a child component).
2061
- * ========================================================================== */
2062
-
2063
- /* Strip user bubble background + distinctive border radius */
2064
- .chat-container[data-cinder-variant='flat']
2065
- :global(.chat-message-wrapper[data-role='user'] .chat-message) {
2066
- background: transparent;
2067
- border-radius: var(--cinder-radius-lg);
2068
- }
2069
-
2070
- /* Strip assistant bubble background + border + shadow */
2071
- .chat-container[data-cinder-variant='flat']
2072
- :global(.chat-message-wrapper[data-role='assistant'] .chat-message) {
2073
- background: transparent;
2074
- border: none;
2075
- box-shadow: none;
2076
- border-radius: var(--cinder-radius-lg);
2077
- }
2078
-
2079
- /* In flat mode, the user header must flow in-document (not absolutely
2080
- positioned) so the role label appears above the message content.
2081
- The label itself is un-clipped below so it reads as visible text. */
2082
- .chat-container[data-cinder-variant='flat']
2083
- :global(.chat-message-wrapper[data-role='user'] .chat-message-header) {
2084
- position: static;
2085
- inset: unset;
2086
- }
2087
-
2088
- /* Un-hide the role label for user messages: in bubble mode alignment
2089
- communicates role; in flat mode there is no colored background, so the
2090
- label is the primary visible role signal. */
2091
- .chat-container[data-cinder-variant='flat']
2092
- :global(.chat-message-wrapper[data-role='user'] .chat-message-role) {
2093
- position: static;
2094
- width: auto;
2095
- height: auto;
2096
- padding: 0;
2097
- margin: 0;
2098
- overflow: visible;
2099
- clip: auto;
2100
- white-space: normal;
2101
- }
2102
- </style>