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