@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,1115 +1,882 @@
1
1
  <script lang="ts" module>
2
- import type { EditorSelection } from '@lostgradient/cinder/editor';
3
- import type {
4
- Thread,
5
- PersistedThread,
6
- ThreadCreateEvent,
7
- ReviewState,
8
- AnchorUpdate,
9
- } from '@lostgradient/cinder/commentary/comments';
10
- import type { ReviewEditorProps, ReviewFormData } from './review-editor.types.ts';
11
-
12
- export type { ReviewMode, ReviewEditorProps, ReviewFormData } from './review-editor.types.ts';
13
-
14
- /** Type alias for thread ID to improve readability in state declarations */
15
- type ThreadId = string;
2
+ export {};
16
3
  </script>
17
4
 
18
5
  <script lang="ts">
19
- import { classNames } from '../../utilities/class-names.ts';
20
- import { devWarn } from '../../utilities/dev-warn.ts';
21
- import { useReducedMotion } from '../../utilities/use-reduced-motion.svelte.ts';
22
- import { createFocusRegionNavigator, type FocusRegion } from './focus-navigation.ts';
23
- import { createChangeTracker } from '../../utilities/change-tracker.svelte.ts';
24
- import { stringifyOrNull } from '../../utilities/stringify.ts';
25
- import MarkdownEditor from '../markdown-editor/markdown-editor.svelte';
26
- import { contentEquals, normalize } from '@lostgradient/cinder/markdown/pipeline';
27
- import { textOffsetToProseMirrorPosition } from '@lostgradient/cinder/editor';
28
- import {
29
- createAnchorPlugin,
30
- anchorPluginKey,
31
- } from '@lostgradient/cinder/commentary/anchor-decorations';
32
- import {
33
- reanchorQuote,
34
- ANCHOR_CONTEXT_LENGTH,
35
- generateId,
36
- extractMentions,
37
- createDocumentAnchor,
38
- } from '@lostgradient/cinder/commentary/comments';
39
- import { buildAnchorFromSelection } from '@lostgradient/cinder/commentary/anchoring';
40
- import ThreadPopover from './thread-popover.svelte';
41
- import LiveRegion from './live-region.svelte';
42
- import ExportActions from './export-actions.svelte';
43
- import CommentSidebar from './comment-sidebar.svelte';
44
- import FrontMatterFields from './front-matter-fields.svelte';
45
- import ReviewEditorControls from './review-editor-controls.svelte';
46
- import {
47
- bodyAnchorToDocumentAnchor,
48
- bodyAnchorUpdateToDocumentAnchorUpdate,
49
- combineFrontMatterAndBody,
50
- documentAnchorToBodyAnchor,
51
- documentPersistedAnchorToBodyAnchor,
52
- documentPositionToBodyPosition,
53
- parseReviewEditorFrontMatter,
54
- replaceFrontMatterData,
55
- remapDocumentAnchorBodyOffset,
56
- reviewStateToMarkdown,
57
- } from './review-editor-front-matter.ts';
58
- import type {
59
- ReviewEditorDiffViewMode as DiffViewMode,
60
- ReviewEditorViewType as ViewType,
61
- } from './review-editor.types.ts';
62
- import {
63
- getSelectionAnchorPosition,
64
- type SelectionAnchorPosition,
65
- } from './review-editor-selection-geometry.ts';
66
- import DiffViewer from '../diff-viewer/diff-viewer.svelte';
67
- import SelectionPopover from '../selection-popover/selection-popover.svelte';
68
- import { computeLineDiff, getDiffStats } from '@lostgradient/cinder/markdown/diff/line-diff';
69
- import {
70
- generateMarkdownSummary,
71
- generateUnifiedDiff,
72
- generateCommentsExport,
73
- type MarkdownSummaryOptions,
74
- type MarkdownSummaryResult,
75
- type UnifiedDiffOptions,
76
- type UnifiedDiffResult,
77
- } from '@lostgradient/cinder/commentary/export';
78
-
79
- // Shared reduced-motion preference (OVERLAY-POLICY: use the shared hook, not inline matchMedia).
80
- const reducedMotion = useReducedMotion();
81
-
82
- let {
83
- id,
84
- original = $bindable(''),
85
- value = $bindable(''),
86
- threads = $bindable<Thread[]>([]),
87
- mode = 'edit',
88
- currentUserId,
89
- placeholder = 'Start writing...',
90
- name,
91
- class: className,
92
- onchange,
93
- onthreadcreate,
94
- onthreaddelete,
95
- oncommentcreate,
96
- oncommentupdate,
97
- oncommentdelete,
98
- snapshotMode = false,
99
- }: ReviewEditorProps = $props();
100
-
101
- // Blur any focused element inside this component on mount when snapshotMode
102
- // is active. This prevents the initial screenshot from capturing a focused
103
- // ring or blinking caret. We track the container element via bind:this.
104
- let containerElement = $state<HTMLDivElement | null>(null);
105
-
106
- $effect(() => {
107
- if (!snapshotMode) return;
108
- if (!containerElement) return;
6
+ import { classNames } from '../../utilities/class-names.ts';
7
+ import { devWarn } from '../../utilities/dev-warn.ts';
8
+ import { useReducedMotion } from '../../utilities/use-reduced-motion.svelte.ts';
9
+ import { createFocusRegionNavigator } from './focus-navigation.ts';
10
+ import { createChangeTracker } from '../../utilities/change-tracker.svelte.ts';
11
+ import { stringifyOrNull } from '../../utilities/stringify.ts';
12
+ import MarkdownEditor from '../markdown-editor/markdown-editor.svelte';
13
+ import { contentEquals, normalize } from '@lostgradient/cinder/markdown/pipeline';
14
+ import { textOffsetToProseMirrorPosition } from '@lostgradient/cinder/editor';
15
+ import { createAnchorPlugin, anchorPluginKey, } from '@lostgradient/cinder/commentary/anchor-decorations';
16
+ import { reanchorQuote, ANCHOR_CONTEXT_LENGTH, generateId, extractMentions, createDocumentAnchor, } from '@lostgradient/cinder/commentary/comments';
17
+ import { buildAnchorFromSelection } from '@lostgradient/cinder/commentary/anchoring';
18
+ import ThreadPopover from './thread-popover.svelte';
19
+ import LiveRegion from './live-region.svelte';
20
+ import ExportActions from './export-actions.svelte';
21
+ import CommentSidebar from './comment-sidebar.svelte';
22
+ import FrontMatterFields from './front-matter-fields.svelte';
23
+ import ReviewEditorControls from './review-editor-controls.svelte';
24
+ import { bodyAnchorToDocumentAnchor, bodyAnchorUpdateToDocumentAnchorUpdate, combineFrontMatterAndBody, documentAnchorToBodyAnchor, documentPersistedAnchorToBodyAnchor, documentPositionToBodyPosition, parseReviewEditorFrontMatter, replaceFrontMatterData, remapDocumentAnchorBodyOffset, reviewStateToMarkdown, } from './review-editor-front-matter.ts';
25
+ import { getSelectionAnchorPosition, } from './review-editor-selection-geometry.ts';
26
+ import DiffViewer from '../diff-viewer/diff-viewer.svelte';
27
+ import SelectionPopover from '../selection-popover/selection-popover.svelte';
28
+ import { computeLineDiff, getDiffStats } from '@lostgradient/cinder/markdown/diff/line-diff';
29
+ import { generateMarkdownSummary, generateUnifiedDiff, generateCommentsExport, } from '@lostgradient/cinder/commentary/export';
30
+ // Shared reduced-motion preference (OVERLAY-POLICY: use the shared hook, not inline matchMedia).
31
+ const reducedMotion = useReducedMotion();
32
+ let { id, original = $bindable(''), value = $bindable(''), threads = $bindable([]), mode = 'edit', currentUserId, placeholder = 'Start writing...', name, class: className, onchange, onthreadcreate, onthreaddelete, oncommentcreate, oncommentupdate, oncommentdelete, snapshotMode = false, } = $props();
33
+ // Blur any focused element inside this component on mount when snapshotMode
34
+ // is active. This prevents the initial screenshot from capturing a focused
35
+ // ring or blinking caret. We track the container element via bind:this.
36
+ let containerElement = $state(null);
37
+ $effect(() => {
38
+ if (!snapshotMode)
39
+ return;
40
+ if (!containerElement)
41
+ return;
109
42
  const active = document.activeElement;
110
43
  if (active instanceof HTMLElement && containerElement.contains(active)) {
111
- active.blur();
44
+ active.blur();
112
45
  }
113
- });
114
-
115
- // Reference to the underlying MarkdownEditor. Using the imported component
116
- // as a type is the Svelte ambient pattern — `*.svelte` declares the import
117
- // as a constructable type with the component's `export function` methods.
118
- let editorRef: MarkdownEditor | undefined = $state();
119
-
120
- // Reference to LiveRegion for screen reader announcements (DEP-47)
121
- let liveRegionRef: LiveRegion | undefined = $state();
122
-
123
- // Track when editor view is ready (for effects that need to wait for async editor creation)
124
- let editorViewReady = $state(false);
125
-
126
- // Track current selection for thread creation
127
- let currentSelection = $state<EditorSelection | null>(null);
128
-
129
- // =========================================================================
130
- // Thread Popover State
131
- // =========================================================================
132
-
133
- // Thread popover state
134
- let popoverThreadId = $state<ThreadId | null>(null);
135
- let popoverPosition = $state<{ x: number; y: number } | null>(null);
136
-
137
- // Timer handle for panel selection scroll-then-position delay.
138
- // Stored at component level so we can cancel it when switching threads.
139
- let selectTimeoutId: ReturnType<typeof setTimeout> | null = null;
140
-
141
- // Cleanup: cancel pending panel selection timeout on component unmount.
142
- // This prevents the callback from executing on a destroyed component.
143
- $effect(() => {
46
+ });
47
+ // Reference to the underlying MarkdownEditor. Using the imported component
48
+ // as a type is the Svelte ambient pattern — `*.svelte` declares the import
49
+ // as a constructable type with the component's `export function` methods.
50
+ let editorRef = $state();
51
+ // Reference to LiveRegion for screen reader announcements (DEP-47)
52
+ let liveRegionRef = $state();
53
+ // Track when editor view is ready (for effects that need to wait for async editor creation)
54
+ let editorViewReady = $state(false);
55
+ // Track current selection for thread creation
56
+ let currentSelection = $state(null);
57
+ // =========================================================================
58
+ // Thread Popover State
59
+ // =========================================================================
60
+ // Thread popover state
61
+ let popoverThreadId = $state(null);
62
+ let popoverPosition = $state(null);
63
+ // Timer handle for panel selection scroll-then-position delay.
64
+ // Stored at component level so we can cancel it when switching threads.
65
+ let selectTimeoutId = null;
66
+ // Cleanup: cancel pending panel selection timeout on component unmount.
67
+ // This prevents the callback from executing on a destroyed component.
68
+ $effect(() => {
144
69
  return () => {
145
- if (selectTimeoutId !== null) {
146
- clearTimeout(selectTimeoutId);
147
- selectTimeoutId = null;
148
- }
70
+ if (selectTimeoutId !== null) {
71
+ clearTimeout(selectTimeoutId);
72
+ selectTimeoutId = null;
73
+ }
149
74
  };
150
- });
151
-
152
- // Internal active thread tracking (not exposed as bindable prop)
153
- let activeThreadId = $state<string | null>(null);
154
-
155
- // Comment sidebar toggle state
156
- let sidebarOpen = $state(false);
157
-
158
- const currentDocument = $derived(parseReviewEditorFrontMatter(value));
159
- const editorValue = $derived(currentDocument.body);
160
- const viewPanelIds = $derived({
75
+ });
76
+ // Internal active thread tracking (not exposed as bindable prop)
77
+ let activeThreadId = $state(null);
78
+ // Comment sidebar toggle state
79
+ let sidebarOpen = $state(false);
80
+ const currentDocument = $derived(parseReviewEditorFrontMatter(value));
81
+ const editorValue = $derived(currentDocument.body);
82
+ const viewPanelIds = $derived({
161
83
  editor: `${id}-editor-panel`,
162
84
  diff: `${id}-diff-panel`,
163
85
  summary: `${id}-summary-panel`,
164
- });
165
-
166
- // =========================================================================
167
- // View Switching State (DEP-47)
168
- // =========================================================================
169
-
170
- /** Active view: editor for editing, diff for comparing, summary for review */
171
- let activeView = $state<ViewType>('editor');
172
-
173
- /** Diff view mode: unified shows all changes, final shows current state, original shows baseline */
174
- let diffViewMode = $state<DiffViewMode>('unified');
175
-
176
- // =========================================================================
177
- // Diff Statistics (DEP-47)
178
- // =========================================================================
179
-
180
- /**
181
- * Compute diff statistics from original vs current content.
182
- * Uses the same line-diff algorithm as DiffViewer for consistency.
183
- */
184
- const diffStats = $derived.by(() => {
86
+ });
87
+ // =========================================================================
88
+ // View Switching State (DEP-47)
89
+ // =========================================================================
90
+ /** Active view: editor for editing, diff for comparing, summary for review */
91
+ let activeView = $state('editor');
92
+ /** Diff view mode: unified shows all changes, final shows current state, original shows baseline */
93
+ let diffViewMode = $state('unified');
94
+ // =========================================================================
95
+ // Diff Statistics (DEP-47)
96
+ // =========================================================================
97
+ /**
98
+ * Compute diff statistics from original vs current content.
99
+ * Uses the same line-diff algorithm as DiffViewer for consistency.
100
+ */
101
+ const diffStats = $derived.by(() => {
185
102
  if (!original) {
186
- return { added: 0, removed: 0, modified: 0 };
103
+ return { added: 0, removed: 0, modified: 0 };
187
104
  }
188
105
  // Normalize both inputs to avoid false positives from formatting differences
189
106
  const normalizedOriginal = normalize(original);
190
107
  const normalizedCurrent = normalize(value);
191
108
  const lineDiffs = computeLineDiff(normalizedOriginal, normalizedCurrent);
192
109
  return getDiffStats(lineDiffs);
193
- });
194
-
195
- /** Whether there are any content changes */
196
- const hasContentChanges = $derived(
197
- diffStats.added > 0 || diffStats.removed > 0 || diffStats.modified > 0,
198
- );
199
-
200
- /** Total comment count (excluding soft-deleted comments) */
201
- const commentCount = $derived(
202
- threads.reduce((count, thread) => {
203
- return count + thread.comments.filter((c) => !c.deletedAt).length;
204
- }, 0),
205
- );
206
-
207
- /**
208
- * Summary content for the Summary view (without the "# Review Summary" heading).
209
- * The heading is useful for clipboard exports but redundant in the UI preview
210
- * since the view tab already indicates this is a summary.
211
- */
212
- const summaryContent = $derived.by(() => {
110
+ });
111
+ /** Whether there are any content changes */
112
+ const hasContentChanges = $derived(diffStats.added > 0 || diffStats.removed > 0 || diffStats.modified > 0);
113
+ /** Total comment count (excluding soft-deleted comments) */
114
+ const commentCount = $derived(threads.reduce((count, thread) => {
115
+ return count + thread.comments.filter((c) => !c.deletedAt).length;
116
+ }, 0));
117
+ /**
118
+ * Summary content for the Summary view (without the "# Review Summary" heading).
119
+ * The heading is useful for clipboard exports but redundant in the UI preview
120
+ * since the view tab already indicates this is a summary.
121
+ */
122
+ const summaryContent = $derived.by(() => {
213
123
  const result = exportMarkdownSummary();
214
124
  // Strip the "# Review Summary\n" heading from the beginning
215
125
  return result.markdown.replace(/^# Review Summary\n+/, '');
216
- });
217
-
218
- // =========================================================================
219
- // Selection Popover State (DEP-47)
220
- // =========================================================================
221
-
222
- /** Position for the selection popover (viewport-relative) */
223
- let selectionPopoverPosition = $state<SelectionAnchorPosition | null>(null);
224
-
225
- /**
226
- * Captured selection range for thread creation.
227
- * We capture this when the popover appears because clicking the popover button
228
- * will collapse the browser selection before handleSelectionComment runs.
229
- */
230
- let capturedSelectionForPopover = $state<{ from: number; to: number } | null>(null);
231
-
232
- /** Whether the selection popover is in expanded form state (user clicked to add comment) */
233
- let selectionPopoverExpanded = $state(false);
234
-
235
- /** Whether the selection popover should be visible */
236
- const showSelectionPopover = $derived(
237
- activeView === 'editor' &&
238
- mode === 'edit' &&
239
- // Must have a user ID to create comments
240
- currentUserId !== undefined &&
241
- // Position is only set when browser selection is non-collapsed
242
- // (checked via window.getSelection() in the debounced handler)
243
- // OR the popover is already expanded (user is composing a comment)
244
- (selectionPopoverPosition !== null || selectionPopoverExpanded) &&
245
- // Don't show if a thread popover is already open
246
- popoverThreadId === null,
247
- );
248
-
249
- /** Delay for scroll-then-position pattern (matches smooth scroll duration) */
250
- const POSITION_DELAY_MS = 350;
251
-
252
- /**
253
- * Get the preferred scroll behavior respecting prefers-reduced-motion.
254
- * @returns 'instant' if user prefers reduced motion, 'smooth' otherwise
255
- */
256
- function getScrollBehavior(): ScrollBehavior {
126
+ });
127
+ // =========================================================================
128
+ // Selection Popover State (DEP-47)
129
+ // =========================================================================
130
+ /** Position for the selection popover (viewport-relative) */
131
+ let selectionPopoverPosition = $state(null);
132
+ /**
133
+ * Captured selection range for thread creation.
134
+ * We capture this when the popover appears because clicking the popover button
135
+ * will collapse the browser selection before handleSelectionComment runs.
136
+ */
137
+ let capturedSelectionForPopover = $state(null);
138
+ /** Whether the selection popover is in expanded form state (user clicked to add comment) */
139
+ let selectionPopoverExpanded = $state(false);
140
+ /** Whether the selection popover should be visible */
141
+ const showSelectionPopover = $derived(activeView === 'editor' &&
142
+ mode === 'edit' &&
143
+ // Must have a user ID to create comments
144
+ currentUserId !== undefined &&
145
+ // Position is only set when browser selection is non-collapsed
146
+ // (checked via window.getSelection() in the debounced handler)
147
+ // OR the popover is already expanded (user is composing a comment)
148
+ (selectionPopoverPosition !== null || selectionPopoverExpanded) &&
149
+ // Don't show if a thread popover is already open
150
+ popoverThreadId === null);
151
+ /** Delay for scroll-then-position pattern (matches smooth scroll duration) */
152
+ const POSITION_DELAY_MS = 350;
153
+ /**
154
+ * Get the preferred scroll behavior respecting prefers-reduced-motion.
155
+ * @returns 'instant' if user prefers reduced motion, 'smooth' otherwise
156
+ */
157
+ function getScrollBehavior() {
257
158
  return reducedMotion.current ? 'instant' : 'smooth';
258
- }
259
-
260
- // =========================================================================
261
- // Screen Reader Announcements (DEP-47)
262
- // =========================================================================
263
-
264
- /**
265
- * Announce a message to screen readers via the LiveRegion component.
266
- * Safe to call before the ref is available (no-op in that case).
267
- *
268
- * @param message - The message to announce
269
- * @param priority - 'polite' (default) or 'assertive'
270
- */
271
- function announce(message: string, priority: 'polite' | 'assertive' = 'polite'): void {
159
+ }
160
+ // =========================================================================
161
+ // Screen Reader Announcements (DEP-47)
162
+ // =========================================================================
163
+ /**
164
+ * Announce a message to screen readers via the LiveRegion component.
165
+ * Safe to call before the ref is available (no-op in that case).
166
+ *
167
+ * @param message - The message to announce
168
+ * @param priority - 'polite' (default) or 'assertive'
169
+ */
170
+ function announce(message, priority = 'polite') {
272
171
  liveRegionRef?.announce(message, priority);
273
- }
274
-
275
- // Get the popover thread
276
- const popoverThread = $derived.by(() => {
277
- if (!popoverThreadId) return null;
172
+ }
173
+ // Get the popover thread
174
+ const popoverThread = $derived.by(() => {
175
+ if (!popoverThreadId)
176
+ return null;
278
177
  return threads.find((t) => t.id === popoverThreadId) ?? null;
279
- });
280
-
281
- // Clear popover if thread is deleted
282
- $effect(() => {
178
+ });
179
+ // Clear popover if thread is deleted
180
+ $effect(() => {
283
181
  if (popoverThreadId && !popoverThread) {
284
- popoverThreadId = null;
285
- popoverPosition = null;
182
+ popoverThreadId = null;
183
+ popoverPosition = null;
286
184
  }
287
- });
288
-
289
- // Clear internal active thread if it no longer exists
290
- $effect(() => {
185
+ });
186
+ // Clear internal active thread if it no longer exists
187
+ $effect(() => {
291
188
  if (activeThreadId && !threads.some((t) => t.id === activeThreadId)) {
292
- activeThreadId = null;
189
+ activeThreadId = null;
293
190
  }
294
- });
295
-
296
- // Deep linking: open popover when activeThreadId is set externally (e.g., URL navigation).
297
- $effect(() => {
298
- let positionTimeoutId: ReturnType<typeof setTimeout> | null = null;
299
-
191
+ });
192
+ // Deep linking: open popover when activeThreadId is set externally (e.g., URL navigation).
193
+ $effect(() => {
194
+ let positionTimeoutId = null;
300
195
  if (activeThreadId && popoverThreadId !== activeThreadId) {
301
- const thread = threads.find((t) => t.id === activeThreadId);
302
- if (thread) {
303
- const threadIdToOpen = activeThreadId;
304
-
305
- // First, scroll the anchor into view. We defer popover positioning until
306
- // after the scroll completes to avoid the popover appearing off-screen.
307
- scrollAnchorIntoView(threadIdToOpen);
308
-
309
- // After scrolling, calculate position and open the popover.
310
- // We re-fetch the thread inside the callback to avoid using stale data
311
- // if the threads array changes during the scroll delay.
312
- positionTimeoutId = setTimeout(() => {
313
- // Re-fetch thread to ensure we have current data (thread may have been deleted/modified)
314
- const currentThread = threads.find((t) => t.id === threadIdToOpen);
315
- if (!currentThread) return;
316
-
317
- const pos = calculateViewportPosition(currentThread.anchor.from);
318
- if (pos) {
319
- popoverPosition = { x: pos.left + 16, y: pos.top };
320
- popoverThreadId = threadIdToOpen;
321
- }
322
- }, POSITION_DELAY_MS);
323
- }
196
+ const thread = threads.find((t) => t.id === activeThreadId);
197
+ if (thread) {
198
+ const threadIdToOpen = activeThreadId;
199
+ // First, scroll the anchor into view. We defer popover positioning until
200
+ // after the scroll completes to avoid the popover appearing off-screen.
201
+ scrollAnchorIntoView(threadIdToOpen);
202
+ // After scrolling, calculate position and open the popover.
203
+ // We re-fetch the thread inside the callback to avoid using stale data
204
+ // if the threads array changes during the scroll delay.
205
+ positionTimeoutId = setTimeout(() => {
206
+ // Re-fetch thread to ensure we have current data (thread may have been deleted/modified)
207
+ const currentThread = threads.find((t) => t.id === threadIdToOpen);
208
+ if (!currentThread)
209
+ return;
210
+ const pos = calculateViewportPosition(currentThread.anchor.from);
211
+ if (pos) {
212
+ popoverPosition = { x: pos.left + 16, y: pos.top };
213
+ popoverThreadId = threadIdToOpen;
214
+ }
215
+ }, POSITION_DELAY_MS);
216
+ }
324
217
  }
325
-
326
218
  // Cleanup: cancel pending timeout if effect re-runs or component unmounts
327
219
  return () => {
328
- if (positionTimeoutId !== null) {
329
- clearTimeout(positionTimeoutId);
330
- }
220
+ if (positionTimeoutId !== null) {
221
+ clearTimeout(positionTimeoutId);
222
+ }
331
223
  };
332
- });
333
-
334
- /**
335
- * Scroll the editor to bring an anchor position into view.
336
- * @param threadId - The thread ID to scroll to (passed explicitly to avoid stale closure)
337
- */
338
- function scrollAnchorIntoView(threadId: ThreadId): void {
224
+ });
225
+ /**
226
+ * Scroll the editor to bring an anchor position into view.
227
+ * @param threadId - The thread ID to scroll to (passed explicitly to avoid stale closure)
228
+ */
229
+ function scrollAnchorIntoView(threadId) {
339
230
  // Query using the passed threadId, not the reactive activeThreadId,
340
231
  // to avoid race conditions when called from setTimeout.
341
232
  // Scope query to editor DOM to handle multiple ReviewEditor instances on page.
342
233
  const editorDom = editorRef?.getView()?.dom;
343
234
  const anchorElement = editorDom?.querySelector(`[data-thread-id="${threadId}"]`);
344
235
  if (anchorElement) {
345
- anchorElement.scrollIntoView({ behavior: getScrollBehavior(), block: 'center' });
236
+ anchorElement.scrollIntoView({ behavior: getScrollBehavior(), block: 'center' });
346
237
  }
347
- }
348
-
349
- // =========================================================================
350
- // Thread Popover Handlers
351
- // =========================================================================
352
-
353
- /**
354
- * Handle closing the thread popover.
355
- * Also clears activeThreadId to prevent the deep-linking effect from
356
- * immediately reopening the popover, and cancels any pending panel selection timeout.
357
- */
358
- function handlePopoverClose(): void {
238
+ }
239
+ // =========================================================================
240
+ // Thread Popover Handlers
241
+ // =========================================================================
242
+ /**
243
+ * Handle closing the thread popover.
244
+ * Also clears activeThreadId to prevent the deep-linking effect from
245
+ * immediately reopening the popover, and cancels any pending panel selection timeout.
246
+ */
247
+ function handlePopoverClose() {
359
248
  // Cancel any pending panel selection timeout
360
249
  if (selectTimeoutId !== null) {
361
- clearTimeout(selectTimeoutId);
362
- selectTimeoutId = null;
250
+ clearTimeout(selectTimeoutId);
251
+ selectTimeoutId = null;
363
252
  }
364
-
365
253
  popoverThreadId = null;
366
254
  popoverPosition = null;
367
255
  activeThreadId = null;
368
- }
369
-
370
- /**
371
- * Handle thread delete from popover.
372
- */
373
- function handlePopoverDelete(threadId: string): void {
256
+ }
257
+ /**
258
+ * Handle thread delete from popover.
259
+ */
260
+ function handlePopoverDelete(threadId) {
374
261
  if (currentUserId) {
375
- deleteThread(threadId);
376
- handlePopoverClose();
262
+ deleteThread(threadId);
263
+ handlePopoverClose();
377
264
  }
378
- }
379
-
380
- /**
381
- * Handle comment update from popover.
382
- */
383
- function handlePopoverCommentUpdate(threadId: string, commentId: string, body: string): void {
265
+ }
266
+ /**
267
+ * Handle comment update from popover.
268
+ */
269
+ function handlePopoverCommentUpdate(threadId, commentId, body) {
384
270
  updateComment(threadId, commentId, body);
385
- }
386
-
387
- /**
388
- * Handle comment delete from popover.
389
- */
390
- function handlePopoverCommentDelete(threadId: string, commentId: string): void {
271
+ }
272
+ /**
273
+ * Handle comment delete from popover.
274
+ */
275
+ function handlePopoverCommentDelete(threadId, commentId) {
391
276
  deleteComment(threadId, commentId);
392
- }
393
-
394
- /**
395
- * Handle comment create from popover.
396
- */
397
- function handlePopoverCommentCreate(threadId: string, body: string): void {
277
+ }
278
+ /**
279
+ * Handle comment create from popover.
280
+ */
281
+ function handlePopoverCommentCreate(threadId, body) {
398
282
  if (currentUserId) {
399
- createComment(threadId, body, currentUserId);
283
+ createComment(threadId, body, currentUserId);
400
284
  }
401
- }
402
-
403
- /**
404
- * Calculate position for fixed-position popovers near an anchor.
405
- * Returns viewport-relative coordinates for use with position: fixed elements
406
- * (ThreadPopover).
407
- */
408
- function calculateViewportPosition(from: number): { top: number; left: number } | null {
285
+ }
286
+ /**
287
+ * Calculate position for fixed-position popovers near an anchor.
288
+ * Returns viewport-relative coordinates for use with position: fixed elements
289
+ * (ThreadPopover).
290
+ */
291
+ function calculateViewportPosition(from) {
409
292
  const view = editorRef?.getView();
410
- if (!view) return null;
411
-
293
+ if (!view)
294
+ return null;
412
295
  try {
413
- const coords = view.coordsAtPos(
414
- documentPositionToBodyPosition(from, currentDocument.bodyOffset),
415
- );
416
- if (coords) {
417
- // coords are already viewport-relative from ProseMirror
418
- return {
419
- top: coords.top + 24, // Below the anchor
420
- left: Math.max(16, coords.left), // Minimum 16px from viewport edge
421
- };
422
- }
423
- } catch {
424
- // Position may be invalid
296
+ const coords = view.coordsAtPos(documentPositionToBodyPosition(from, currentDocument.bodyOffset));
297
+ if (coords) {
298
+ // coords are already viewport-relative from ProseMirror
299
+ return {
300
+ top: coords.top + 24, // Below the anchor
301
+ left: Math.max(16, coords.left), // Minimum 16px from viewport edge
302
+ };
303
+ }
304
+ }
305
+ catch {
306
+ // Position may be invalid
425
307
  }
426
308
  return null;
427
- }
428
-
429
- // =========================================================================
430
- // Anchor Plugin Integration (DEP-39)
431
- // =========================================================================
432
-
433
- // Track last synced state to prevent thrashing
434
- let lastSyncedFingerprint: string | null = null;
435
-
436
- // Pending state for deferred re-anchoring (setState flow)
437
- let pendingState: ReviewState | null = $state(null);
438
-
439
- /**
440
- * Create fingerprint including all mutable anchor fields.
441
- * This prevents sync thrashing when quote/prefix/suffix change.
442
- */
443
- function createSyncFingerprint(threadsToSync: Thread[]): string {
309
+ }
310
+ // =========================================================================
311
+ // Anchor Plugin Integration (DEP-39)
312
+ // =========================================================================
313
+ // Track last synced state to prevent thrashing
314
+ let lastSyncedFingerprint = null;
315
+ // Pending state for deferred re-anchoring (setState flow)
316
+ let pendingState = $state(null);
317
+ /**
318
+ * Create fingerprint including all mutable anchor fields.
319
+ * This prevents sync thrashing when quote/prefix/suffix change.
320
+ */
321
+ function createSyncFingerprint(threadsToSync) {
444
322
  return threadsToSync
445
- .map((t) => {
323
+ .map((t) => {
446
324
  const a = t.anchor;
447
325
  // Include lastKnownOffset to propagate disambiguation updates
448
326
  return `${t.id}:${a.from}:${a.to}:${a.quote}:${a.prefix}:${a.suffix}:${a.lastKnownOffset ?? ''}`;
449
- })
450
- .join('|');
451
- }
452
-
453
- function createPluginSyncFingerprint(threadsToSync: Thread[]): string {
327
+ })
328
+ .join('|');
329
+ }
330
+ function createPluginSyncFingerprint(threadsToSync) {
454
331
  return `${currentDocument.bodyOffset}|${createSyncFingerprint(threadsToSync)}`;
455
- }
456
-
457
- /**
458
- * Handle anchor position updates from the plugin.
459
- * Called when the plugin detects position changes.
460
- */
461
- function handleAnchorsUpdate(updates: AnchorUpdate[]): void {
332
+ }
333
+ /**
334
+ * Handle anchor position updates from the plugin.
335
+ * Called when the plugin detects position changes.
336
+ */
337
+ function handleAnchorsUpdate(updates) {
462
338
  // Update published threads
463
339
  threads = threads.map((thread) => {
464
- const update = updates.find((u) => u.threadId === thread.id);
465
- if (update) {
466
- const documentUpdate = bodyAnchorUpdateToDocumentAnchorUpdate(
467
- update,
468
- currentDocument.bodyOffset,
469
- );
470
- return {
471
- ...thread,
472
- anchor: {
473
- ...thread.anchor,
474
- from: documentUpdate.from,
475
- to: documentUpdate.to,
476
- quote: documentUpdate.quote,
477
- prefix: documentUpdate.prefix,
478
- suffix: documentUpdate.suffix,
479
- lastKnownOffset: documentUpdate.lastKnownOffset,
480
- },
481
- };
482
- }
483
- return thread;
340
+ const update = updates.find((u) => u.threadId === thread.id);
341
+ if (update) {
342
+ const documentUpdate = bodyAnchorUpdateToDocumentAnchorUpdate(update, currentDocument.bodyOffset);
343
+ return {
344
+ ...thread,
345
+ anchor: {
346
+ ...thread.anchor,
347
+ from: documentUpdate.from,
348
+ to: documentUpdate.to,
349
+ quote: documentUpdate.quote,
350
+ prefix: documentUpdate.prefix,
351
+ suffix: documentUpdate.suffix,
352
+ lastKnownOffset: documentUpdate.lastKnownOffset,
353
+ },
354
+ };
355
+ }
356
+ return thread;
484
357
  });
485
-
486
358
  // Update fingerprint to skip re-sync
487
359
  lastSyncedFingerprint = createPluginSyncFingerprint(threads);
488
- }
489
-
490
- // Create anchor plugin in instance script (per-instance, before mount)
491
- // This runs once per ReviewEditor instance during initialization
492
- const anchorPlugin = createAnchorPlugin({
360
+ }
361
+ // Create anchor plugin in instance script (per-instance, before mount)
362
+ // This runs once per ReviewEditor instance during initialization
363
+ const anchorPlugin = createAnchorPlugin({
493
364
  onAnchorsUpdate: handleAnchorsUpdate,
494
365
  onAnchorClick: handleAnchorClick,
495
- });
496
-
497
- /**
498
- * Handle click on an anchor decoration.
499
- * Opens the thread popover at the click location.
500
- */
501
- function handleAnchorClick(threadId: string, event: MouseEvent): void {
366
+ });
367
+ /**
368
+ * Handle click on an anchor decoration.
369
+ * Opens the thread popover at the click location.
370
+ */
371
+ function handleAnchorClick(threadId, event) {
502
372
  // Cancel any pending panel selection timer to prevent race conditions
503
373
  // where the timer callback would unexpectedly switch to a different thread
504
374
  if (selectTimeoutId !== null) {
505
- clearTimeout(selectTimeoutId);
506
- selectTimeoutId = null;
375
+ clearTimeout(selectTimeoutId);
376
+ selectTimeoutId = null;
507
377
  }
508
-
509
378
  // Clear selection popover state when opening a thread popover
510
379
  // Otherwise stale state persists and the popover may reappear at an invalid position
511
380
  selectionPopoverPosition = null;
512
381
  capturedSelectionForPopover = null;
513
382
  selectionPopoverExpanded = false;
514
-
515
383
  // Set active thread and open popover
516
384
  activeThreadId = threadId;
517
-
518
385
  // Find the thread to show the popover
519
386
  const thread = threads.find((t) => t.id === threadId);
520
387
  if (thread) {
521
- // Position popover near the click location
522
- popoverPosition = { x: event.clientX + 16, y: event.clientY };
523
- popoverThreadId = threadId;
388
+ // Position popover near the click location
389
+ popoverPosition = { x: event.clientX + 16, y: event.clientY };
390
+ popoverThreadId = threadId;
524
391
  }
525
- }
526
-
527
- /**
528
- * Sync threads to the anchor plugin via meta-transaction.
529
- */
530
- function syncThreadsToPlugin(threadsToSync: Thread[]): void {
392
+ }
393
+ /**
394
+ * Sync threads to the anchor plugin via meta-transaction.
395
+ */
396
+ function syncThreadsToPlugin(threadsToSync) {
531
397
  const view = editorRef?.getView();
532
- if (!view) return;
533
-
398
+ if (!view)
399
+ return;
534
400
  const fingerprint = createPluginSyncFingerprint(threadsToSync);
535
-
536
401
  // Skip if already synced
537
- if (fingerprint === lastSyncedFingerprint) return;
402
+ if (fingerprint === lastSyncedFingerprint)
403
+ return;
538
404
  lastSyncedFingerprint = fingerprint;
539
-
540
- view.dispatch(
541
- view.state.tr.setMeta(anchorPluginKey, {
405
+ view.dispatch(view.state.tr.setMeta(anchorPluginKey, {
542
406
  type: 'sync',
543
407
  threads: threadsToSync.map((thread) => ({
544
- ...thread,
545
- anchor: documentAnchorToBodyAnchor(thread.anchor, currentDocument.bodyOffset),
408
+ ...thread,
409
+ anchor: documentAnchorToBodyAnchor(thread.anchor, currentDocument.bodyOffset),
546
410
  })),
547
411
  source: 'external',
548
- }),
549
- );
550
- }
551
-
552
- /**
553
- * Attempt re-anchoring for pending state.
554
- * Called when setState is invoked and when editor content changes.
555
- *
556
- * Threads whose anchor text cannot be found are removed (auto-delete behavior).
557
- */
558
- function attemptReanchoring(): void {
559
- if (!pendingState) return;
560
-
412
+ }));
413
+ }
414
+ /**
415
+ * Attempt re-anchoring for pending state.
416
+ * Called when setState is invoked and when editor content changes.
417
+ *
418
+ * Threads whose anchor text cannot be found are removed (auto-delete behavior).
419
+ */
420
+ function attemptReanchoring() {
421
+ if (!pendingState)
422
+ return;
561
423
  const view = editorRef?.getView();
562
- if (!view) return;
563
-
424
+ if (!view)
425
+ return;
564
426
  // Compare markdown using contentEquals (handles normalization)
565
427
  const currentMarkdown = editorRef?.getMarkdown() ?? '';
566
428
  const pendingDocument = parseReviewEditorFrontMatter(pendingState.content);
567
429
  const expectedMarkdown = pendingDocument.body;
568
-
569
430
  if (!contentEquals(currentMarkdown, expectedMarkdown)) {
570
- // Content not synced yet - will retry when editor updates
571
- return;
431
+ // Content not synced yet - will retry when editor updates
432
+ return;
572
433
  }
573
-
574
434
  const state = pendingState;
575
435
  pendingState = null;
576
-
577
436
  const { doc } = view.state;
578
437
  const documentText = doc.textBetween(0, doc.content.size, '\n');
579
-
580
438
  // Re-anchor threads, filtering out those that can't be found
581
- const reanchoredThreads: Thread[] = [];
582
-
439
+ const reanchoredThreads = [];
583
440
  for (const persistedThread of state.threads) {
584
- const bodyPersistedAnchor = documentPersistedAnchorToBodyAnchor(
585
- persistedThread.anchor,
586
- pendingDocument.bodyOffset,
587
- );
588
- const result = reanchorQuote(documentText, bodyPersistedAnchor);
589
-
590
- // If anchor text not found, skip this thread (auto-delete)
591
- if (!result.found) {
592
- onthreaddelete?.({ threadId: persistedThread.id });
593
- continue;
594
- }
595
-
596
- const from = textOffsetToProseMirrorPosition(doc, result.from);
597
- const to = textOffsetToProseMirrorPosition(doc, result.to);
598
-
599
- if (from !== null && to !== null) {
600
- // Extract the matched quote and context from the current document
601
- // This prevents the plugin from detecting false drift on subsequent transactions
602
- const matchedQuote = documentText.slice(result.from, result.to);
603
- const newPrefix = documentText.slice(
604
- Math.max(0, result.from - ANCHOR_CONTEXT_LENGTH),
605
- result.from,
606
- );
607
- const newSuffix = documentText.slice(
608
- result.to,
609
- Math.min(documentText.length, result.to + ANCHOR_CONTEXT_LENGTH),
610
- );
611
-
612
- reanchoredThreads.push({
613
- ...persistedThread,
614
- anchor: {
615
- ...persistedThread.anchor,
616
- from: from + pendingDocument.bodyOffset,
617
- to: to + pendingDocument.bodyOffset,
618
- quote: matchedQuote,
619
- prefix: newPrefix,
620
- suffix: newSuffix,
621
- status: 'anchored',
622
- lastKnownOffset: result.from + pendingDocument.bodyOffset,
623
- },
624
- });
625
- }
441
+ const bodyPersistedAnchor = documentPersistedAnchorToBodyAnchor(persistedThread.anchor, pendingDocument.bodyOffset);
442
+ const result = reanchorQuote(documentText, bodyPersistedAnchor);
443
+ // If anchor text not found, skip this thread (auto-delete)
444
+ if (!result.found) {
445
+ onthreaddelete?.({ threadId: persistedThread.id });
446
+ continue;
447
+ }
448
+ const from = textOffsetToProseMirrorPosition(doc, result.from);
449
+ const to = textOffsetToProseMirrorPosition(doc, result.to);
450
+ if (from !== null && to !== null) {
451
+ // Extract the matched quote and context from the current document
452
+ // This prevents the plugin from detecting false drift on subsequent transactions
453
+ const matchedQuote = documentText.slice(result.from, result.to);
454
+ const newPrefix = documentText.slice(Math.max(0, result.from - ANCHOR_CONTEXT_LENGTH), result.from);
455
+ const newSuffix = documentText.slice(result.to, Math.min(documentText.length, result.to + ANCHOR_CONTEXT_LENGTH));
456
+ reanchoredThreads.push({
457
+ ...persistedThread,
458
+ anchor: {
459
+ ...persistedThread.anchor,
460
+ from: from + pendingDocument.bodyOffset,
461
+ to: to + pendingDocument.bodyOffset,
462
+ quote: matchedQuote,
463
+ prefix: newPrefix,
464
+ suffix: newSuffix,
465
+ status: 'anchored',
466
+ lastKnownOffset: result.from + pendingDocument.bodyOffset,
467
+ },
468
+ });
469
+ }
626
470
  }
627
-
628
471
  threads = reanchoredThreads;
629
-
630
472
  // Sync threads to plugin
631
473
  syncThreadsToPlugin(threads);
632
- }
633
-
634
- // Retry re-anchoring when editor content changes (handles async content sync)
635
- // We read `value` to create a dependency so this effect re-runs when content changes.
636
- // This is critical for setState flow where pendingState exists but content isn't synced yet.
637
- $effect(() => {
474
+ }
475
+ // Retry re-anchoring when editor content changes (handles async content sync)
476
+ // We read `value` to create a dependency so this effect re-runs when content changes.
477
+ // This is critical for setState flow where pendingState exists but content isn't synced yet.
478
+ $effect(() => {
638
479
  void value; // Create dependency on value
639
480
  if (pendingState && editorRef?.getView()) {
640
- attemptReanchoring();
481
+ attemptReanchoring();
641
482
  }
642
- });
643
-
644
- // Sync threads to plugin when they change externally
645
- // Runs for empty arrays too - needed to clear stale decorations when all threads removed
646
- $effect(() => {
483
+ });
484
+ // Sync threads to plugin when they change externally
485
+ // Runs for empty arrays too - needed to clear stale decorations when all threads removed
486
+ $effect(() => {
647
487
  // Only sync if editor is ready and we don't have pending state
648
488
  if (editorRef?.getView() && !pendingState) {
649
- syncThreadsToPlugin(threads);
489
+ syncThreadsToPlugin(threads);
650
490
  }
651
- });
652
-
653
- // Determine if editor is readonly based on mode
654
- const isReadonly = $derived(mode === 'readonly');
655
-
656
- // Clear selection popover state when mode changes to readonly
657
- // This prevents stale popover state from persisting across mode transitions
658
- $effect(() => {
491
+ });
492
+ // Determine if editor is readonly based on mode
493
+ const isReadonly = $derived(mode === 'readonly');
494
+ // Clear selection popover state when mode changes to readonly
495
+ // This prevents stale popover state from persisting across mode transitions
496
+ $effect(() => {
659
497
  if (mode === 'readonly') {
660
- selectionPopoverPosition = null;
661
- capturedSelectionForPopover = null;
662
- selectionPopoverExpanded = false;
498
+ selectionPopoverPosition = null;
499
+ capturedSelectionForPopover = null;
500
+ selectionPopoverExpanded = false;
663
501
  }
664
- });
665
-
666
- // =========================================================================
667
- // Optimized Change Detection (DEP-47)
668
- // =========================================================================
669
-
670
- /**
671
- * Change tracker with lazy dirty flag and debounced semantic verification.
672
- * Avoids per-keystroke normalize() calls which are expensive for large documents.
673
- */
674
- const changeTracker = createChangeTracker({
502
+ });
503
+ // =========================================================================
504
+ // Optimized Change Detection (DEP-47)
505
+ // =========================================================================
506
+ /**
507
+ * Change tracker with lazy dirty flag and debounced semantic verification.
508
+ * Avoids per-keystroke normalize() calls which are expensive for large documents.
509
+ */
510
+ const changeTracker = createChangeTracker({
675
511
  debounceMs: 300,
676
512
  includeFrontMatter: true,
677
- });
678
-
679
- // Wire baseline and current values to the tracker
680
- $effect(() => {
513
+ });
514
+ // Wire baseline and current values to the tracker
515
+ $effect(() => {
681
516
  changeTracker.setBaseline(original);
682
- });
683
-
684
- $effect(() => {
517
+ });
518
+ $effect(() => {
685
519
  changeTracker.setCurrent(value);
686
- });
687
-
688
- /** Timeout ID for debounced selection position calculation */
689
- let selectionTimeoutId: ReturnType<typeof setTimeout> | null = null;
690
-
691
- /** Debounce delay for selection position calculation (ms) */
692
- const SELECTION_DEBOUNCE_MS = 20;
693
-
694
- // Listen to browser's native selectionchange event
695
- // This is more reliable than ProseMirror's selection events for detecting visual selection
696
- $effect(() => {
697
- if (typeof document === 'undefined') return;
698
-
699
- function handleBrowserSelectionChange() {
700
- // Clear any pending calculation
701
- if (selectionTimeoutId !== null) {
702
- clearTimeout(selectionTimeoutId);
703
- selectionTimeoutId = null;
704
- }
705
-
706
- // Only process in edit mode
707
- if (mode !== 'edit') {
708
- selectionPopoverPosition = null;
709
- capturedSelectionForPopover = null;
710
- return;
711
- }
712
-
713
- // Don't clear the popover if focus is within it (user is interacting with the form)
714
- const selectionPopoverElement = document.getElementById(`${id}-selection-popover`);
715
- if (selectionPopoverElement?.contains(document.activeElement)) {
716
- return;
717
- }
718
-
719
- // Don't clear the popover if it's expanded (user is composing a comment)
720
- // This is especially important for Safari where clicking a button doesn't focus it,
721
- // which would otherwise cause the popover to close unexpectedly
722
- if (selectionPopoverExpanded) {
520
+ });
521
+ /** Timeout ID for debounced selection position calculation */
522
+ let selectionTimeoutId = null;
523
+ /** Debounce delay for selection position calculation (ms) */
524
+ const SELECTION_DEBOUNCE_MS = 20;
525
+ // Listen to browser's native selectionchange event
526
+ // This is more reliable than ProseMirror's selection events for detecting visual selection
527
+ $effect(() => {
528
+ if (typeof document === 'undefined')
723
529
  return;
724
- }
725
-
726
- const browserSelection = window.getSelection();
727
-
728
- // If selection is collapsed, hide popover immediately and reset all popover state
729
- if (!browserSelection || browserSelection.isCollapsed) {
730
- selectionPopoverPosition = null;
731
- capturedSelectionForPopover = null;
732
- selectionPopoverExpanded = false;
733
- return;
734
- }
735
-
736
- // Check if selection is within the actual editor DOM (not front matter controls,
737
- // sidebar, or toolbar content).
738
- const anchorNode = browserSelection.anchorNode;
739
- const editorDom = editorRef?.getView()?.dom;
740
- if (!editorDom || !anchorNode || !editorDom.contains(anchorNode)) {
741
- selectionPopoverPosition = null;
742
- capturedSelectionForPopover = null;
743
- selectionPopoverExpanded = false;
744
- return;
745
- }
746
-
747
- // Debounce position calculation to let rapid selection events settle
748
- selectionTimeoutId = setTimeout(() => {
749
- selectionTimeoutId = null;
750
-
751
- // Re-check selection after debounce
752
- const sel = window.getSelection();
753
- if (!sel || sel.isCollapsed) {
754
- selectionPopoverPosition = null;
755
- capturedSelectionForPopover = null;
756
- return;
530
+ function handleBrowserSelectionChange() {
531
+ // Clear any pending calculation
532
+ if (selectionTimeoutId !== null) {
533
+ clearTimeout(selectionTimeoutId);
534
+ selectionTimeoutId = null;
757
535
  }
758
-
759
- // Get the selection range and compute position from the browser's DOM
760
- const range = sel.getRangeAt(0);
761
- const anchorPosition = getSelectionAnchorPosition(range);
762
-
763
- if (anchorPosition) {
764
- // Capture the ProseMirror selection range for thread creation
765
- // We need this because clicking the popover will collapse the selection
766
- // Get selection directly from the view since currentSelection state
767
- // may not be updated yet when the native selectionchange fires
768
- const view = editorRef?.getView();
769
- if (view) {
770
- const { from, to } = view.state.selection;
771
- if (from !== to) {
772
- capturedSelectionForPopover = { from, to };
773
- // Only show popover when we have a valid captured selection
774
- // This prevents showing a popover that can't submit due to timing mismatches
775
- selectionPopoverPosition = anchorPosition;
776
- }
777
- }
536
+ // Only process in edit mode
537
+ if (mode !== 'edit') {
538
+ selectionPopoverPosition = null;
539
+ capturedSelectionForPopover = null;
540
+ return;
541
+ }
542
+ // Don't clear the popover if focus is within it (user is interacting with the form)
543
+ const selectionPopoverElement = document.getElementById(`${id}-selection-popover`);
544
+ if (selectionPopoverElement?.contains(document.activeElement)) {
545
+ return;
546
+ }
547
+ // Don't clear the popover if it's expanded (user is composing a comment)
548
+ // This is especially important for Safari where clicking a button doesn't focus it,
549
+ // which would otherwise cause the popover to close unexpectedly
550
+ if (selectionPopoverExpanded) {
551
+ return;
778
552
  }
779
- }, SELECTION_DEBOUNCE_MS);
553
+ const browserSelection = window.getSelection();
554
+ // If selection is collapsed, hide popover immediately and reset all popover state
555
+ if (!browserSelection || browserSelection.isCollapsed) {
556
+ selectionPopoverPosition = null;
557
+ capturedSelectionForPopover = null;
558
+ selectionPopoverExpanded = false;
559
+ return;
560
+ }
561
+ // Check if selection is within the actual editor DOM (not front matter controls,
562
+ // sidebar, or toolbar content).
563
+ const anchorNode = browserSelection.anchorNode;
564
+ const editorDom = editorRef?.getView()?.dom;
565
+ if (!editorDom || !anchorNode || !editorDom.contains(anchorNode)) {
566
+ selectionPopoverPosition = null;
567
+ capturedSelectionForPopover = null;
568
+ selectionPopoverExpanded = false;
569
+ return;
570
+ }
571
+ // Debounce position calculation to let rapid selection events settle
572
+ selectionTimeoutId = setTimeout(() => {
573
+ selectionTimeoutId = null;
574
+ // Re-check selection after debounce
575
+ const sel = window.getSelection();
576
+ if (!sel || sel.isCollapsed) {
577
+ selectionPopoverPosition = null;
578
+ capturedSelectionForPopover = null;
579
+ return;
580
+ }
581
+ // Get the selection range and compute position from the browser's DOM
582
+ const range = sel.getRangeAt(0);
583
+ const anchorPosition = getSelectionAnchorPosition(range);
584
+ if (anchorPosition) {
585
+ // Capture the ProseMirror selection range for thread creation
586
+ // We need this because clicking the popover will collapse the selection
587
+ // Get selection directly from the view since currentSelection state
588
+ // may not be updated yet when the native selectionchange fires
589
+ const view = editorRef?.getView();
590
+ if (view) {
591
+ const { from, to } = view.state.selection;
592
+ if (from !== to) {
593
+ capturedSelectionForPopover = { from, to };
594
+ // Only show popover when we have a valid captured selection
595
+ // This prevents showing a popover that can't submit due to timing mismatches
596
+ selectionPopoverPosition = anchorPosition;
597
+ }
598
+ }
599
+ }
600
+ }, SELECTION_DEBOUNCE_MS);
780
601
  }
781
-
782
602
  document.addEventListener('selectionchange', handleBrowserSelectionChange);
783
-
784
603
  return () => {
785
- document.removeEventListener('selectionchange', handleBrowserSelectionChange);
786
- if (selectionTimeoutId !== null) {
787
- clearTimeout(selectionTimeoutId);
788
- selectionTimeoutId = null;
789
- }
604
+ document.removeEventListener('selectionchange', handleBrowserSelectionChange);
605
+ if (selectionTimeoutId !== null) {
606
+ clearTimeout(selectionTimeoutId);
607
+ selectionTimeoutId = null;
608
+ }
790
609
  };
791
- });
792
-
793
- // Handle selection changes from ProseMirror (for currentSelection state)
794
- function handleSelectionChange(selection: EditorSelection | null) {
610
+ });
611
+ // Handle selection changes from ProseMirror (for currentSelection state)
612
+ function handleSelectionChange(selection) {
795
613
  // Mark editor as ready on first selection change (fired when editor initializes)
796
614
  if (!editorViewReady) {
797
- editorViewReady = true;
615
+ editorViewReady = true;
798
616
  }
799
617
  currentSelection = selection;
800
- }
801
-
802
- // Handle content changes
803
- function handleChange(newValue: string) {
618
+ }
619
+ // Handle content changes
620
+ function handleChange(newValue) {
804
621
  value = newValue;
805
622
  onchange?.(newValue);
806
- }
807
-
808
- function handleEditorBodyChange(newBody: string) {
623
+ }
624
+ function handleEditorBodyChange(newBody) {
809
625
  handleChange(combineFrontMatterAndBody(currentDocument, newBody));
810
- }
811
-
812
- function handleFrontMatterChange(data: Record<string, unknown> | null) {
626
+ }
627
+ function handleFrontMatterChange(data) {
813
628
  const previousBodyOffset = currentDocument.bodyOffset;
814
629
  const nextValue = replaceFrontMatterData(value, data);
815
630
  const nextDocument = parseReviewEditorFrontMatter(nextValue);
816
-
817
631
  if (previousBodyOffset !== nextDocument.bodyOffset) {
818
- threads = threads.map((thread) => ({
819
- ...thread,
820
- anchor: remapDocumentAnchorBodyOffset(
821
- thread.anchor,
822
- previousBodyOffset,
823
- nextDocument.bodyOffset,
824
- nextValue,
825
- ),
826
- }));
632
+ threads = threads.map((thread) => ({
633
+ ...thread,
634
+ anchor: remapDocumentAnchorBodyOffset(thread.anchor, previousBodyOffset, nextDocument.bodyOffset, nextValue),
635
+ }));
827
636
  }
828
-
829
637
  handleChange(nextValue);
830
- }
831
-
832
- // =========================================================================
833
- // Imperative Methods
834
- // =========================================================================
835
-
836
- /** Focus the editor */
837
- export function focus(): void {
638
+ }
639
+ // =========================================================================
640
+ // Imperative Methods
641
+ // =========================================================================
642
+ /** Focus the editor */
643
+ export function focus() {
838
644
  editorRef?.focus();
839
- }
840
-
841
- /** Get current markdown content */
842
- export function getMarkdown(): string {
645
+ }
646
+ /** Get current markdown content */
647
+ export function getMarkdown() {
843
648
  const body = editorRef?.getMarkdown() ?? currentDocument.body;
844
649
  return combineFrontMatterAndBody(currentDocument, body);
845
- }
846
-
847
- /** Set markdown content */
848
- export function setMarkdown(content: string): void {
650
+ }
651
+ /** Set markdown content */
652
+ export function setMarkdown(content) {
849
653
  value = content;
850
654
  editorRef?.setMarkdown(parseReviewEditorFrontMatter(content).body);
851
- }
852
-
853
- /** Get current AST */
854
- export function getAst() {
655
+ }
656
+ /** Get current AST */
657
+ export function getAst() {
855
658
  return editorRef?.getAst();
856
- }
857
-
858
- /** Get current selection */
859
- export function getSelection(): EditorSelection | null {
659
+ }
660
+ /** Get current selection */
661
+ export function getSelection() {
860
662
  const selection = editorRef?.getSelection();
861
- if (!selection) return null;
663
+ if (!selection)
664
+ return null;
862
665
  return {
863
- ...selection,
864
- from: selection.from + currentDocument.bodyOffset,
865
- to: selection.to + currentDocument.bodyOffset,
666
+ ...selection,
667
+ from: selection.from + currentDocument.bodyOffset,
668
+ to: selection.to + currentDocument.bodyOffset,
866
669
  };
867
- }
868
-
869
- /** Scroll to a specific thread's anchor position in the editor */
870
- export function scrollToThread(threadId: string): void {
670
+ }
671
+ /** Scroll to a specific thread's anchor position in the editor */
672
+ export function scrollToThread(threadId) {
871
673
  const thread = threads.find((t) => t.id === threadId);
872
- if (!thread) return;
873
-
674
+ if (!thread)
675
+ return;
874
676
  const view = editorRef?.getView();
875
677
  if (view && thread.anchor.from !== undefined) {
876
- // Scroll the anchor position into view
877
- const coords = view.coordsAtPos(
878
- documentPositionToBodyPosition(thread.anchor.from, currentDocument.bodyOffset),
879
- );
880
- if (coords) {
881
- view.dom.scrollTo({
882
- top: coords.top - 100, // Offset from top
883
- behavior: getScrollBehavior(),
884
- });
885
- }
678
+ // Scroll the anchor position into view
679
+ const coords = view.coordsAtPos(documentPositionToBodyPosition(thread.anchor.from, currentDocument.bodyOffset));
680
+ if (coords) {
681
+ view.dom.scrollTo({
682
+ top: coords.top - 100, // Offset from top
683
+ behavior: getScrollBehavior(),
684
+ });
685
+ }
886
686
  }
887
- }
888
-
889
- /**
890
- * Handle thread selection from the comment sidebar.
891
- * Scrolls to the thread and opens its popover.
892
- */
893
- function handleSidebarThreadSelect(threadId: string): void {
687
+ }
688
+ /**
689
+ * Handle thread selection from the comment sidebar.
690
+ * Scrolls to the thread and opens its popover.
691
+ */
692
+ function handleSidebarThreadSelect(threadId) {
894
693
  const thread = threads.find((t) => t.id === threadId);
895
- if (!thread) return;
896
-
694
+ if (!thread)
695
+ return;
897
696
  // Set active thread
898
697
  activeThreadId = threadId;
899
-
900
698
  // Scroll to the thread
901
699
  scrollToThread(threadId);
902
-
903
700
  // Open popover at anchor position after scroll completes
904
701
  setTimeout(() => {
905
- const view = editorRef?.getView();
906
- if (view && thread.anchor.from !== undefined) {
907
- const coords = view.coordsAtPos(
908
- documentPositionToBodyPosition(thread.anchor.from, currentDocument.bodyOffset),
909
- );
910
- if (coords) {
911
- popoverPosition = { x: coords.left + 16, y: coords.top };
912
- popoverThreadId = threadId;
702
+ const view = editorRef?.getView();
703
+ if (view && thread.anchor.from !== undefined) {
704
+ const coords = view.coordsAtPos(documentPositionToBodyPosition(thread.anchor.from, currentDocument.bodyOffset));
705
+ if (coords) {
706
+ popoverPosition = { x: coords.left + 16, y: coords.top };
707
+ popoverThreadId = threadId;
708
+ }
913
709
  }
914
- }
915
710
  }, POSITION_DELAY_MS);
916
- }
917
-
918
- /**
919
- * Handle request to add a document-level comment from the sidebar.
920
- * The body is provided by the inline CommentComposer in the sidebar.
921
- */
922
- function handleAddDocumentComment(body: string): void {
711
+ }
712
+ /**
713
+ * Handle request to add a document-level comment from the sidebar.
714
+ * The body is provided by the inline CommentComposer in the sidebar.
715
+ */
716
+ function handleAddDocumentComment(body) {
923
717
  if (!currentUserId) {
924
- devWarn('Cannot add document comment: no currentUserId');
925
- return;
718
+ devWarn('Cannot add document comment: no currentUserId');
719
+ return;
926
720
  }
927
-
928
721
  createDocumentThread(body, currentUserId);
929
- }
930
-
931
- /**
932
- * Get serializable review state.
933
- * Threads are converted to persisted format for re-anchoring.
934
- *
935
- * Content is preserved as the complete Markdown document, including front matter.
936
- */
937
- export function getState(): ReviewState {
938
- const persistedThreads: PersistedThread[] = threads.map((thread) => ({
939
- ...thread,
940
- anchor: {
941
- quote: thread.anchor.quote,
942
- prefix: thread.anchor.prefix,
943
- suffix: thread.anchor.suffix,
944
- status: thread.anchor.status,
945
- blockId: thread.anchor.blockId,
946
- originalPosition: thread.anchor.originalPosition,
947
- originalQuote: thread.anchor.originalQuote, // Preserve for history
948
- lastKnownOffset: thread.anchor.lastKnownOffset, // For disambiguation
949
- },
722
+ }
723
+ /**
724
+ * Get serializable review state.
725
+ * Threads are converted to persisted format for re-anchoring.
726
+ *
727
+ * Content is preserved as the complete Markdown document, including front matter.
728
+ */
729
+ export function getState() {
730
+ const persistedThreads = threads.map((thread) => ({
731
+ ...thread,
732
+ anchor: {
733
+ quote: thread.anchor.quote,
734
+ prefix: thread.anchor.prefix,
735
+ suffix: thread.anchor.suffix,
736
+ status: thread.anchor.status,
737
+ blockId: thread.anchor.blockId,
738
+ originalPosition: thread.anchor.originalPosition,
739
+ originalQuote: thread.anchor.originalQuote, // Preserve for history
740
+ lastKnownOffset: thread.anchor.lastKnownOffset, // For disambiguation
741
+ },
950
742
  }));
951
-
952
743
  return {
953
- schemaVersion: 4,
954
- content: value,
955
- original: original || undefined,
956
- threads: persistedThreads,
957
- reviewSession: undefined,
958
- frontMatter: currentDocument.data,
959
- frontMatterRaw: currentDocument.raw,
960
- updatedAt: new Date().toISOString(),
744
+ schemaVersion: 4,
745
+ content: value,
746
+ original: original || undefined,
747
+ threads: persistedThreads,
748
+ reviewSession: undefined,
749
+ frontMatter: currentDocument.data,
750
+ frontMatterRaw: currentDocument.raw,
751
+ updatedAt: new Date().toISOString(),
961
752
  };
962
- }
963
-
964
- /**
965
- * Restore review state from serialized data.
966
- * Thread anchors are re-anchored using the quote/prefix/suffix context.
967
- *
968
- * Note: This updates both content and original baseline from the incoming state,
969
- * ensuring subsequent diffs and exports use the correct baseline.
970
- */
971
- export function setState(state: ReviewState): void {
753
+ }
754
+ /**
755
+ * Restore review state from serialized data.
756
+ * Thread anchors are re-anchored using the quote/prefix/suffix context.
757
+ *
758
+ * Note: This updates both content and original baseline from the incoming state,
759
+ * ensuring subsequent diffs and exports use the correct baseline.
760
+ */
761
+ export function setState(state) {
972
762
  const nextValue = reviewStateToMarkdown(state);
973
763
  value = nextValue;
974
764
  // Update original baseline if provided in state, so diffs work correctly
975
765
  if (state.original !== undefined) {
976
- original = state.original;
766
+ original = state.original;
977
767
  }
978
768
  pendingState = { ...state, content: nextValue };
979
-
980
769
  // Attempt re-anchoring immediately if editor is ready
981
770
  attemptReanchoring();
982
- }
983
-
984
- /** Get direct access to ProseMirror view (advanced use) */
985
- export function getView() {
771
+ }
772
+ /** Get direct access to ProseMirror view (advanced use) */
773
+ export function getView() {
986
774
  return editorRef?.getView() ?? null;
987
- }
988
-
989
- /** Get direct access to Milkdown editor (advanced use) */
990
- export function getEditor() {
775
+ }
776
+ /** Get direct access to Milkdown editor (advanced use) */
777
+ export function getEditor() {
991
778
  return editorRef?.getEditor() ?? null;
992
- }
993
-
994
- // =========================================================================
995
- // Export Operations
996
- // =========================================================================
997
-
998
- /**
999
- * Export an LLM-optimized Markdown summary of the review.
1000
- * Includes document changes and comment threads
1001
- * in a structured format suitable for LLM analysis.
1002
- */
1003
- export function exportMarkdownSummary(
1004
- options: MarkdownSummaryOptions | undefined = undefined,
1005
- ): MarkdownSummaryResult {
779
+ }
780
+ // =========================================================================
781
+ // Export Operations
782
+ // =========================================================================
783
+ /**
784
+ * Export an LLM-optimized Markdown summary of the review.
785
+ * Includes document changes and comment threads
786
+ * in a structured format suitable for LLM analysis.
787
+ */
788
+ export function exportMarkdownSummary(options = undefined) {
1006
789
  return generateMarkdownSummary(getState(), options);
1007
- }
1008
-
1009
- /**
1010
- * Export a Git-compatible unified diff.
1011
- * The output can be applied with `git apply` or `patch` command.
1012
- */
1013
- export function exportUnifiedDiff(
1014
- options: UnifiedDiffOptions | undefined = undefined,
1015
- ): UnifiedDiffResult {
790
+ }
791
+ /**
792
+ * Export a Git-compatible unified diff.
793
+ * The output can be applied with `git apply` or `patch` command.
794
+ */
795
+ export function exportUnifiedDiff(options = undefined) {
1016
796
  return generateUnifiedDiff(getState(), options);
1017
- }
1018
-
1019
- // =========================================================================
1020
- // Export Action Callbacks (for ExportActions component)
1021
- // =========================================================================
1022
-
1023
- /** Get plain markdown content for clipboard export */
1024
- function handleExportContent(): string {
797
+ }
798
+ // =========================================================================
799
+ // Export Action Callbacks (for ExportActions component)
800
+ // =========================================================================
801
+ /** Get plain markdown content for clipboard export */
802
+ function handleExportContent() {
1025
803
  return value;
1026
- }
1027
-
1028
- /** Get LLM-optimized summary for clipboard export */
1029
- function handleExportSummary(): string {
804
+ }
805
+ /** Get LLM-optimized summary for clipboard export */
806
+ function handleExportSummary() {
1030
807
  return exportMarkdownSummary().markdown;
1031
- }
1032
-
1033
- /** Get JSON state for clipboard export */
1034
- function handleExportJSON(): string {
808
+ }
809
+ /** Get JSON state for clipboard export */
810
+ function handleExportJSON() {
1035
811
  const json = stringifyOrNull(getState());
1036
812
  // Return error message if serialization fails (circular refs, BigInt, etc.)
1037
813
  // This prevents copying invalid JSON like "[object Object]" to clipboard
1038
814
  if (json === null) {
1039
- return '{"error": "Failed to serialize editor state"}';
815
+ return '{"error": "Failed to serialize editor state"}';
1040
816
  }
1041
817
  return json;
1042
- }
1043
-
1044
- /** Get unified diff for clipboard export */
1045
- function handleExportDiff(): string {
818
+ }
819
+ /** Get unified diff for clipboard export */
820
+ function handleExportDiff() {
1046
821
  return exportUnifiedDiff().diff;
1047
- }
1048
-
1049
- /** Get comments export for clipboard export */
1050
- function handleExportComments(): string {
822
+ }
823
+ /** Get comments export for clipboard export */
824
+ function handleExportComments() {
1051
825
  return generateCommentsExport(getState()).markdown;
1052
- }
1053
-
1054
- // =========================================================================
1055
- // Form Participation (FormData integration)
1056
- // =========================================================================
1057
-
1058
- /**
1059
- * Derive field name with optional prefix.
1060
- * Used for hidden inputs when participating in a parent form.
1061
- */
1062
- function getFieldName(field: string): string {
826
+ }
827
+ // =========================================================================
828
+ // Form Participation (FormData integration)
829
+ // =========================================================================
830
+ /**
831
+ * Derive field name with optional prefix.
832
+ * Used for hidden inputs when participating in a parent form.
833
+ */
834
+ function getFieldName(field) {
1063
835
  return name ? `${name}-${field}` : field;
1064
- }
1065
-
1066
- /**
1067
- * Derived values for hidden inputs (computed reactively).
1068
- * These power both the hidden form inputs and the getFormData() method.
1069
- */
1070
- const formOriginal = $derived(original);
1071
- const formCurrent = $derived(value);
1072
- const formComments = $derived(JSON.stringify(threads));
1073
- const formDiff = $derived(exportUnifiedDiff().diff);
1074
- const formSummary = $derived(exportMarkdownSummary().markdown);
1075
-
1076
- /**
1077
- * Get form data as a structured object.
1078
- * Use this for programmatic access when not using native form submission.
1079
- *
1080
- * @example
1081
- * ```ts
1082
- * const data = editor.getFormData();
1083
- * await fetch('/api/review', {
1084
- * method: 'POST',
1085
- * body: JSON.stringify(data)
1086
- * });
1087
- * ```
1088
- */
1089
- export function getFormData(): ReviewFormData {
836
+ }
837
+ /**
838
+ * Derived values for hidden inputs (computed reactively).
839
+ * These power both the hidden form inputs and the getFormData() method.
840
+ */
841
+ const formOriginal = $derived(original);
842
+ const formCurrent = $derived(value);
843
+ const formComments = $derived(JSON.stringify(threads));
844
+ const formDiff = $derived(exportUnifiedDiff().diff);
845
+ const formSummary = $derived(exportMarkdownSummary().markdown);
846
+ /**
847
+ * Get form data as a structured object.
848
+ * Use this for programmatic access when not using native form submission.
849
+ *
850
+ * @example
851
+ * ```ts
852
+ * const data = editor.getFormData();
853
+ * await fetch('/api/review', {
854
+ * method: 'POST',
855
+ * body: JSON.stringify(data)
856
+ * });
857
+ * ```
858
+ */
859
+ export function getFormData() {
1090
860
  return {
1091
- original: formOriginal,
1092
- current: formCurrent,
1093
- comments: formComments,
1094
- diff: formDiff,
1095
- summary: formSummary,
861
+ original: formOriginal,
862
+ current: formCurrent,
863
+ comments: formComments,
864
+ diff: formDiff,
865
+ summary: formSummary,
1096
866
  };
1097
- }
1098
-
1099
- /**
1100
- * Reset the editor to its initial state.
1101
- * Reverts content to original and clears all threads.
1102
- */
1103
- export function reset(): void {
867
+ }
868
+ /**
869
+ * Reset the editor to its initial state.
870
+ * Reverts content to original and clears all threads.
871
+ */
872
+ export function reset() {
1104
873
  // Revert content
1105
874
  value = original;
1106
875
  onchange?.(original);
1107
-
1108
876
  // Clear all threads
1109
877
  for (const thread of threads) {
1110
- onthreaddelete?.({ threadId: thread.id });
878
+ onthreaddelete?.({ threadId: thread.id });
1111
879
  }
1112
-
1113
880
  // Clear UI state
1114
881
  popoverThreadId = null;
1115
882
  popoverPosition = null;
@@ -1118,471 +885,401 @@
1118
885
  selectionPopoverPosition = null;
1119
886
  capturedSelectionForPopover = null;
1120
887
  selectionPopoverExpanded = false;
1121
-
1122
888
  announce('Review reset');
1123
- }
1124
-
1125
- // =========================================================================
1126
- // Selection Popover Handlers
1127
- // =========================================================================
1128
-
1129
- /**
1130
- * Handle the comment submission from the selection popover.
1131
- * Creates a new thread at the captured selection using currentUserId as author.
1132
- *
1133
- * We use capturedSelectionForPopover instead of currentSelection because
1134
- * clicking the popover button collapses the browser selection before this runs.
1135
- *
1136
- * @param body - The comment body from the selection popover form
1137
- */
1138
- function handleSelectionComment(body: string): void {
889
+ }
890
+ // =========================================================================
891
+ // Selection Popover Handlers
892
+ // =========================================================================
893
+ /**
894
+ * Handle the comment submission from the selection popover.
895
+ * Creates a new thread at the captured selection using currentUserId as author.
896
+ *
897
+ * We use capturedSelectionForPopover instead of currentSelection because
898
+ * clicking the popover button collapses the browser selection before this runs.
899
+ *
900
+ * @param body - The comment body from the selection popover form
901
+ */
902
+ function handleSelectionComment(body) {
1139
903
  // Helper to clear popover state and announce failure
1140
- function failWithMessage(message: string): void {
1141
- devWarn(message);
1142
- selectionPopoverPosition = null;
1143
- capturedSelectionForPopover = null;
1144
- selectionPopoverExpanded = false;
1145
- announce('Could not add comment. Please try selecting text again.', 'assertive');
904
+ function failWithMessage(message) {
905
+ devWarn(message);
906
+ selectionPopoverPosition = null;
907
+ capturedSelectionForPopover = null;
908
+ selectionPopoverExpanded = false;
909
+ announce('Could not add comment. Please try selecting text again.', 'assertive');
1146
910
  }
1147
-
1148
911
  if (!currentUserId) {
1149
- failWithMessage('Cannot create comment: no currentUserId set');
1150
- return;
912
+ failWithMessage('Cannot create comment: no currentUserId set');
913
+ return;
1151
914
  }
1152
-
1153
915
  // Use captured selection - clicking the popover collapses browser selection
1154
916
  if (!capturedSelectionForPopover) {
1155
- failWithMessage('Cannot create comment: no captured selection');
1156
- return;
917
+ failWithMessage('Cannot create comment: no captured selection');
918
+ return;
1157
919
  }
1158
-
1159
920
  if (mode === 'readonly') {
1160
- failWithMessage('Cannot create thread: editor is readonly');
1161
- return;
921
+ failWithMessage('Cannot create thread: editor is readonly');
922
+ return;
1162
923
  }
1163
-
1164
924
  const view = editorRef?.getView();
1165
925
  if (!view) {
1166
- failWithMessage('Cannot create thread: editor view not available');
1167
- return;
926
+ failWithMessage('Cannot create thread: editor view not available');
927
+ return;
1168
928
  }
1169
-
1170
929
  const { from, to } = capturedSelectionForPopover;
1171
-
1172
930
  // Validate positions are still within document bounds
1173
931
  // User may have edited the document while popover was expanded
1174
932
  const docSize = view.state.doc.content.size;
1175
933
  if (from < 0 || to > docSize || from > to) {
1176
- failWithMessage('Cannot create thread: captured selection is out of bounds');
1177
- return;
934
+ failWithMessage('Cannot create thread: captured selection is out of bounds');
935
+ return;
1178
936
  }
1179
-
1180
937
  // Build anchor using shared helper
1181
- const anchor = bodyAnchorToDocumentAnchor(
1182
- buildAnchorFromSelection(view, from, to),
1183
- currentDocument.bodyOffset,
1184
- value,
1185
- );
1186
-
938
+ const anchor = bodyAnchorToDocumentAnchor(buildAnchorFromSelection(view, from, to), currentDocument.bodyOffset, value);
1187
939
  // Generate requestId for correlating optimistic updates
1188
940
  const requestId = generateId();
1189
-
1190
941
  // Extract @mentions from the comment body
1191
942
  const mentions = extractMentions(body);
1192
-
1193
943
  // Fire the create event with the comment body
1194
- const event: ThreadCreateEvent = {
1195
- requestId,
1196
- anchor,
1197
- body,
1198
- authorId: currentUserId,
1199
- mentions: mentions.length > 0 ? mentions : undefined,
944
+ const event = {
945
+ requestId,
946
+ anchor,
947
+ body,
948
+ authorId: currentUserId,
949
+ mentions: mentions.length > 0 ? mentions : undefined,
1200
950
  };
1201
951
  onthreadcreate?.(event);
1202
-
1203
952
  // Clear state
1204
953
  capturedSelectionForPopover = null;
1205
954
  selectionPopoverPosition = null;
1206
955
  selectionPopoverExpanded = false;
1207
-
1208
956
  announce('Comment added');
1209
- }
1210
-
1211
- /**
1212
- * Handle the selection popover expanding to show the comment form.
1213
- * This keeps the popover visible even when the browser selection collapses.
1214
- */
1215
- function handleSelectionPopoverExpand(): void {
957
+ }
958
+ /**
959
+ * Handle the selection popover expanding to show the comment form.
960
+ * This keeps the popover visible even when the browser selection collapses.
961
+ */
962
+ function handleSelectionPopoverExpand() {
1216
963
  selectionPopoverExpanded = true;
1217
- }
1218
-
1219
- /**
1220
- * Handle the selection popover cancel action.
1221
- * Resets expanded state so new selections can be processed.
1222
- */
1223
- function handleSelectionPopoverCancel(): void {
964
+ }
965
+ /**
966
+ * Handle the selection popover cancel action.
967
+ * Resets expanded state so new selections can be processed.
968
+ */
969
+ function handleSelectionPopoverCancel() {
1224
970
  selectionPopoverExpanded = false;
1225
971
  // Keep position and captured selection so user can re-expand if they want
1226
- }
1227
-
1228
- /**
1229
- * Close the selection popover.
1230
- */
1231
- function handleSelectionPopoverClose(): void {
972
+ }
973
+ /**
974
+ * Close the selection popover.
975
+ */
976
+ function handleSelectionPopoverClose() {
1232
977
  selectionPopoverPosition = null;
1233
978
  capturedSelectionForPopover = null;
1234
979
  selectionPopoverExpanded = false;
1235
- }
1236
-
1237
- // =========================================================================
1238
- // Thread Operations
1239
- // =========================================================================
1240
-
1241
- /**
1242
- * Create a new thread at the current selection.
1243
- * Requires non-collapsed selection in edit or comment mode.
1244
- *
1245
- * Returns requestId for correlating with backend response, or null if creation failed.
1246
- *
1247
- * No-op (returns null) if:
1248
- * - No text is selected (collapsed selection)
1249
- * - Editor is in readonly mode
1250
- * - Editor view is not available
1251
- */
1252
- export function createThread(body: string, authorId: string): string | null {
980
+ }
981
+ // =========================================================================
982
+ // Thread Operations
983
+ // =========================================================================
984
+ /**
985
+ * Create a new thread at the current selection.
986
+ * Requires non-collapsed selection in edit or comment mode.
987
+ *
988
+ * Returns requestId for correlating with backend response, or null if creation failed.
989
+ *
990
+ * No-op (returns null) if:
991
+ * - No text is selected (collapsed selection)
992
+ * - Editor is in readonly mode
993
+ * - Editor view is not available
994
+ */
995
+ export function createThread(body, authorId) {
1253
996
  if (!currentSelection || currentSelection.isCollapsed) {
1254
- devWarn('Cannot create thread: no text selected');
1255
- return null;
997
+ devWarn('Cannot create thread: no text selected');
998
+ return null;
1256
999
  }
1257
-
1258
1000
  if (mode === 'readonly') {
1259
- devWarn('Cannot create thread: editor is readonly');
1260
- return null;
1001
+ devWarn('Cannot create thread: editor is readonly');
1002
+ return null;
1261
1003
  }
1262
-
1263
1004
  const view = editorRef?.getView();
1264
1005
  if (!view) {
1265
- devWarn('Cannot create thread: editor view not available');
1266
- return null;
1006
+ devWarn('Cannot create thread: editor view not available');
1007
+ return null;
1267
1008
  }
1268
-
1269
1009
  const { from, to } = currentSelection;
1270
-
1271
1010
  // Build anchor using shared helper
1272
- const anchor = bodyAnchorToDocumentAnchor(
1273
- buildAnchorFromSelection(view, from, to),
1274
- currentDocument.bodyOffset,
1275
- value,
1276
- );
1277
-
1011
+ const anchor = bodyAnchorToDocumentAnchor(buildAnchorFromSelection(view, from, to), currentDocument.bodyOffset, value);
1278
1012
  // Extract mentions from comment body
1279
1013
  const mentions = extractMentions(body);
1280
-
1281
1014
  // Generate requestId for correlating optimistic updates
1282
1015
  const requestId = generateId();
1283
-
1284
1016
  // Fire the create event (parent handles actual thread creation)
1285
- const event: ThreadCreateEvent = {
1286
- requestId,
1287
- anchor,
1288
- body,
1289
- authorId,
1290
- mentions: mentions.length > 0 ? mentions : undefined,
1017
+ const event = {
1018
+ requestId,
1019
+ anchor,
1020
+ body,
1021
+ authorId,
1022
+ mentions: mentions.length > 0 ? mentions : undefined,
1291
1023
  };
1292
1024
  onthreadcreate?.(event);
1293
-
1294
1025
  announce('Comment added');
1295
1026
  return requestId;
1296
- }
1297
-
1298
- /**
1299
- * Create a document-level comment thread.
1300
- *
1301
- * Document-level comments are not anchored to specific text but apply to
1302
- * the entire document. They appear at the top of the comment sidebar.
1303
- *
1304
- * Returns requestId for correlating with backend response, or null if creation failed.
1305
- */
1306
- export function createDocumentThread(body: string, authorId: string): string | null {
1027
+ }
1028
+ /**
1029
+ * Create a document-level comment thread.
1030
+ *
1031
+ * Document-level comments are not anchored to specific text but apply to
1032
+ * the entire document. They appear at the top of the comment sidebar.
1033
+ *
1034
+ * Returns requestId for correlating with backend response, or null if creation failed.
1035
+ */
1036
+ export function createDocumentThread(body, authorId) {
1307
1037
  if (mode === 'readonly') {
1308
- devWarn('Cannot create thread: editor is readonly');
1309
- return null;
1038
+ devWarn('Cannot create thread: editor is readonly');
1039
+ return null;
1310
1040
  }
1311
-
1312
1041
  // Create document-level anchor
1313
1042
  const anchor = createDocumentAnchor();
1314
-
1315
1043
  // Extract mentions from comment body
1316
1044
  const mentions = extractMentions(body);
1317
-
1318
1045
  // Generate requestId for correlating optimistic updates
1319
1046
  const requestId = generateId();
1320
-
1321
1047
  // Fire the create event (parent handles actual thread creation)
1322
- const event: ThreadCreateEvent = {
1323
- requestId,
1324
- anchor,
1325
- body,
1326
- authorId,
1327
- mentions: mentions.length > 0 ? mentions : undefined,
1048
+ const event = {
1049
+ requestId,
1050
+ anchor,
1051
+ body,
1052
+ authorId,
1053
+ mentions: mentions.length > 0 ? mentions : undefined,
1328
1054
  };
1329
1055
  onthreadcreate?.(event);
1330
-
1331
1056
  announce('Document comment added');
1332
1057
  return requestId;
1333
- }
1334
-
1335
- /**
1336
- * Delete a thread.
1337
- *
1338
- * Silently returns without emitting an event if:
1339
- * - Editor is in readonly mode (mode === 'readonly')
1340
- * - Thread does not exist
1341
- *
1342
- * This silent no-op behavior supports declarative UI patterns where callers
1343
- * don't need to pre-check conditions before calling mutation methods.
1344
- */
1345
- export function deleteThread(threadId: string): void {
1346
- if (mode === 'readonly') return;
1347
-
1058
+ }
1059
+ /**
1060
+ * Delete a thread.
1061
+ *
1062
+ * Silently returns without emitting an event if:
1063
+ * - Editor is in readonly mode (mode === 'readonly')
1064
+ * - Thread does not exist
1065
+ *
1066
+ * This silent no-op behavior supports declarative UI patterns where callers
1067
+ * don't need to pre-check conditions before calling mutation methods.
1068
+ */
1069
+ export function deleteThread(threadId) {
1070
+ if (mode === 'readonly')
1071
+ return;
1348
1072
  const thread = threads.find((t) => t.id === threadId);
1349
- if (!thread) return;
1350
-
1073
+ if (!thread)
1074
+ return;
1351
1075
  onthreaddelete?.({ threadId });
1352
- }
1353
-
1354
- /**
1355
- * Delete all threads (clear all comments).
1356
- *
1357
- * Silently does nothing if:
1358
- * - Editor is in readonly mode (mode === 'readonly')
1359
- * - No threads exist
1360
- *
1361
- * Fires onthreaddelete for each thread.
1362
- */
1363
- export function clearAllThreads(): void {
1364
- if (mode === 'readonly') return;
1365
- if (threads.length === 0) return;
1366
-
1076
+ }
1077
+ /**
1078
+ * Delete all threads (clear all comments).
1079
+ *
1080
+ * Silently does nothing if:
1081
+ * - Editor is in readonly mode (mode === 'readonly')
1082
+ * - No threads exist
1083
+ *
1084
+ * Fires onthreaddelete for each thread.
1085
+ */
1086
+ export function clearAllThreads() {
1087
+ if (mode === 'readonly')
1088
+ return;
1089
+ if (threads.length === 0)
1090
+ return;
1367
1091
  // Fire delete event for each thread
1368
1092
  for (const thread of threads) {
1369
- onthreaddelete?.({ threadId: thread.id });
1093
+ onthreaddelete?.({ threadId: thread.id });
1370
1094
  }
1371
-
1372
1095
  // Clear any active selection state
1373
1096
  popoverThreadId = null;
1374
1097
  popoverPosition = null;
1375
1098
  activeThreadId = null;
1376
-
1377
1099
  announce('All comments cleared');
1378
- }
1379
-
1380
- // =========================================================================
1381
- // Comment Operations
1382
- // =========================================================================
1383
-
1384
- /**
1385
- * Create a new comment in an existing thread.
1386
- *
1387
- * @returns requestId for correlating with backend response, or null if creation was blocked
1388
- *
1389
- * Silently returns null without emitting an event if:
1390
- * - Editor is in readonly mode (mode === 'readonly')
1391
- * - Thread does not exist
1392
- *
1393
- * This silent no-op behavior supports declarative UI patterns where callers
1394
- * don't need to pre-check conditions before calling mutation methods.
1395
- */
1396
- export function createComment(threadId: string, body: string, authorId: string): string | null {
1397
- if (mode === 'readonly') return null;
1398
-
1100
+ }
1101
+ // =========================================================================
1102
+ // Comment Operations
1103
+ // =========================================================================
1104
+ /**
1105
+ * Create a new comment in an existing thread.
1106
+ *
1107
+ * @returns requestId for correlating with backend response, or null if creation was blocked
1108
+ *
1109
+ * Silently returns null without emitting an event if:
1110
+ * - Editor is in readonly mode (mode === 'readonly')
1111
+ * - Thread does not exist
1112
+ *
1113
+ * This silent no-op behavior supports declarative UI patterns where callers
1114
+ * don't need to pre-check conditions before calling mutation methods.
1115
+ */
1116
+ export function createComment(threadId, body, authorId) {
1117
+ if (mode === 'readonly')
1118
+ return null;
1399
1119
  const thread = threads.find((t) => t.id === threadId);
1400
- if (!thread) return null;
1401
-
1120
+ if (!thread)
1121
+ return null;
1402
1122
  const mentions = extractMentions(body);
1403
1123
  const requestId = generateId();
1404
-
1405
1124
  oncommentcreate?.({
1406
- requestId,
1407
- threadId,
1408
- body,
1409
- authorId,
1410
- mentions: mentions.length > 0 ? mentions : undefined,
1125
+ requestId,
1126
+ threadId,
1127
+ body,
1128
+ authorId,
1129
+ mentions: mentions.length > 0 ? mentions : undefined,
1411
1130
  });
1412
-
1413
1131
  announce('Comment added');
1414
1132
  return requestId;
1415
- }
1416
-
1417
- /**
1418
- * Update an existing comment.
1419
- *
1420
- * Silently returns without emitting an event if:
1421
- * - Editor is in readonly mode (mode === 'readonly')
1422
- * - Thread or comment does not exist
1423
- * - Comment is soft-deleted
1424
- *
1425
- * This silent no-op behavior supports declarative UI patterns where callers
1426
- * don't need to pre-check conditions before calling mutation methods.
1427
- */
1428
- export function updateComment(threadId: string, commentId: string, body: string): void {
1429
- if (mode === 'readonly') return;
1430
-
1133
+ }
1134
+ /**
1135
+ * Update an existing comment.
1136
+ *
1137
+ * Silently returns without emitting an event if:
1138
+ * - Editor is in readonly mode (mode === 'readonly')
1139
+ * - Thread or comment does not exist
1140
+ * - Comment is soft-deleted
1141
+ *
1142
+ * This silent no-op behavior supports declarative UI patterns where callers
1143
+ * don't need to pre-check conditions before calling mutation methods.
1144
+ */
1145
+ export function updateComment(threadId, commentId, body) {
1146
+ if (mode === 'readonly')
1147
+ return;
1431
1148
  const thread = threads.find((t) => t.id === threadId);
1432
1149
  const comment = thread?.comments.find((c) => c.id === commentId);
1433
- if (!comment || comment.deletedAt) return;
1434
-
1150
+ if (!comment || comment.deletedAt)
1151
+ return;
1435
1152
  const mentions = extractMentions(body);
1436
-
1437
1153
  oncommentupdate?.({
1438
- threadId,
1439
- commentId,
1440
- body,
1441
- mentions: mentions.length > 0 ? mentions : undefined,
1154
+ threadId,
1155
+ commentId,
1156
+ body,
1157
+ mentions: mentions.length > 0 ? mentions : undefined,
1442
1158
  });
1443
- }
1444
-
1445
- /**
1446
- * Delete a comment.
1447
- *
1448
- * Silently returns without emitting an event if:
1449
- * - Editor is in readonly mode (mode === 'readonly')
1450
- * - Thread or comment does not exist
1451
- * - Soft delete is requested but comment is already soft-deleted
1452
- *
1453
- * This silent no-op behavior supports declarative UI patterns where callers
1454
- * don't need to pre-check conditions before calling mutation methods.
1455
- *
1456
- * @param soft - If true (default), sets deletedAt for soft delete. If false, requests hard delete.
1457
- */
1458
- export function deleteComment(threadId: string, commentId: string, soft: boolean = true): void {
1459
- if (mode === 'readonly') return;
1460
-
1159
+ }
1160
+ /**
1161
+ * Delete a comment.
1162
+ *
1163
+ * Silently returns without emitting an event if:
1164
+ * - Editor is in readonly mode (mode === 'readonly')
1165
+ * - Thread or comment does not exist
1166
+ * - Soft delete is requested but comment is already soft-deleted
1167
+ *
1168
+ * This silent no-op behavior supports declarative UI patterns where callers
1169
+ * don't need to pre-check conditions before calling mutation methods.
1170
+ *
1171
+ * @param soft - If true (default), sets deletedAt for soft delete. If false, requests hard delete.
1172
+ */
1173
+ export function deleteComment(threadId, commentId, soft = true) {
1174
+ if (mode === 'readonly')
1175
+ return;
1461
1176
  const thread = threads.find((t) => t.id === threadId);
1462
1177
  const comment = thread?.comments.find((c) => c.id === commentId);
1463
- if (!comment || (soft && comment.deletedAt)) return;
1464
-
1178
+ if (!comment || (soft && comment.deletedAt))
1179
+ return;
1465
1180
  oncommentdelete?.({ threadId, commentId, soft });
1466
1181
  announce('Comment deleted');
1467
- }
1468
-
1469
- // =========================================================================
1470
- // Block-Level Thread Creation
1471
- // =========================================================================
1472
-
1473
- /**
1474
- * Create a thread anchored to the block containing the cursor.
1475
- * Works even with a collapsed selection (no text selected).
1476
- *
1477
- * Returns requestId for correlating with backend response, or null if creation failed.
1478
- *
1479
- * No-op (returns null) if:
1480
- * - Editor is in readonly mode
1481
- * - Editor view is not available
1482
- * - Cursor is not inside a block
1483
- */
1484
- export function createBlockThread(body: string, authorId: string): string | null {
1182
+ }
1183
+ // =========================================================================
1184
+ // Block-Level Thread Creation
1185
+ // =========================================================================
1186
+ /**
1187
+ * Create a thread anchored to the block containing the cursor.
1188
+ * Works even with a collapsed selection (no text selected).
1189
+ *
1190
+ * Returns requestId for correlating with backend response, or null if creation failed.
1191
+ *
1192
+ * No-op (returns null) if:
1193
+ * - Editor is in readonly mode
1194
+ * - Editor view is not available
1195
+ * - Cursor is not inside a block
1196
+ */
1197
+ export function createBlockThread(body, authorId) {
1485
1198
  if (mode === 'readonly') {
1486
- devWarn('Cannot create block thread: editor is readonly');
1487
- return null;
1199
+ devWarn('Cannot create block thread: editor is readonly');
1200
+ return null;
1488
1201
  }
1489
-
1490
1202
  const view = editorRef?.getView();
1491
1203
  if (!view) {
1492
- devWarn('Cannot create block thread: editor view not available');
1493
- return null;
1204
+ devWarn('Cannot create block thread: editor view not available');
1205
+ return null;
1494
1206
  }
1495
-
1496
1207
  const { from } = view.state.selection;
1497
1208
  const resolvedPos = view.state.doc.resolve(from);
1498
-
1499
1209
  // Find the nearest block-level node
1500
1210
  for (let depth = resolvedPos.depth; depth > 0; depth--) {
1501
- const node = resolvedPos.node(depth);
1502
- if (!node.isBlock) continue;
1503
-
1504
- // Get the block's inner positions (content bounds)
1505
- const blockFrom = resolvedPos.start(depth);
1506
- const blockTo = resolvedPos.end(depth);
1507
-
1508
- // Build anchor for the entire block
1509
- const anchor = bodyAnchorToDocumentAnchor(
1510
- buildAnchorFromSelection(view, blockFrom, blockTo),
1511
- currentDocument.bodyOffset,
1512
- value,
1513
- );
1514
-
1515
- // Extract mentions and generate requestId
1516
- const mentions = extractMentions(body);
1517
- const requestId = generateId();
1518
-
1519
- // Fire the create event
1520
- onthreadcreate?.({
1521
- requestId,
1522
- anchor,
1523
- body,
1524
- authorId,
1525
- mentions: mentions.length > 0 ? mentions : undefined,
1526
- });
1527
-
1528
- return requestId;
1211
+ const node = resolvedPos.node(depth);
1212
+ if (!node.isBlock)
1213
+ continue;
1214
+ // Get the block's inner positions (content bounds)
1215
+ const blockFrom = resolvedPos.start(depth);
1216
+ const blockTo = resolvedPos.end(depth);
1217
+ // Build anchor for the entire block
1218
+ const anchor = bodyAnchorToDocumentAnchor(buildAnchorFromSelection(view, blockFrom, blockTo), currentDocument.bodyOffset, value);
1219
+ // Extract mentions and generate requestId
1220
+ const mentions = extractMentions(body);
1221
+ const requestId = generateId();
1222
+ // Fire the create event
1223
+ onthreadcreate?.({
1224
+ requestId,
1225
+ anchor,
1226
+ body,
1227
+ authorId,
1228
+ mentions: mentions.length > 0 ? mentions : undefined,
1229
+ });
1230
+ return requestId;
1529
1231
  }
1530
-
1531
1232
  devWarn('Cannot create block thread: cursor not inside a block');
1532
1233
  return null;
1533
- }
1534
-
1535
- // =========================================================================
1536
- // Keyboard Navigation (F6 Landmark Navigation)
1537
- // =========================================================================
1538
-
1539
- /**
1540
- * Focus regions for F6 navigation.
1541
- * The 'popover' region is conditionally included when a thread popover is open.
1542
- */
1543
- const focusRegions: FocusRegion[] = [
1234
+ }
1235
+ // =========================================================================
1236
+ // Keyboard Navigation (F6 Landmark Navigation)
1237
+ // =========================================================================
1238
+ /**
1239
+ * Focus regions for F6 navigation.
1240
+ * The 'popover' region is conditionally included when a thread popover is open.
1241
+ */
1242
+ const focusRegions = [
1544
1243
  { id: 'editor', selector: '.review-editor-main', label: 'Editor' },
1545
1244
  { id: 'popover', selector: '.thread-popover', label: 'Thread' },
1546
- ];
1547
-
1548
- /**
1549
- * Focus region navigator with conditional popover inclusion and custom editor focus.
1550
- */
1551
- const focusNavigator = createFocusRegionNavigator(focusRegions, {
1245
+ ];
1246
+ /**
1247
+ * Focus region navigator with conditional popover inclusion and custom editor focus.
1248
+ */
1249
+ const focusNavigator = createFocusRegionNavigator(focusRegions, {
1552
1250
  // Only include popover region when a thread popover is actually open
1553
1251
  isRegionActive: (region) => {
1554
- if (region.id === 'popover') {
1555
- return popoverThread !== null;
1556
- }
1557
- return true;
1252
+ if (region.id === 'popover') {
1253
+ return popoverThread !== null;
1254
+ }
1255
+ return true;
1558
1256
  },
1559
1257
  // Custom focus handler for the editor region (ProseMirror needs special handling)
1560
1258
  customFocusHandler: (region) => {
1561
- if (region.id === 'editor') {
1562
- editorRef?.getView()?.focus();
1563
- return true; // Handled
1564
- }
1565
- return false; // Use default behavior
1259
+ if (region.id === 'editor') {
1260
+ editorRef?.getView()?.focus();
1261
+ return true; // Handled
1262
+ }
1263
+ return false; // Use default behavior
1566
1264
  },
1567
- });
1568
-
1569
- /**
1570
- * Handle F6 keyboard navigation between regions.
1571
- * Uses event.currentTarget to scope navigation to this specific editor instance,
1572
- * supporting multiple ReviewEditor instances on the same page.
1573
- */
1574
- function handleContainerKeyDown(event: KeyboardEvent): void {
1575
- if (event.key !== 'F6') return;
1576
-
1265
+ });
1266
+ /**
1267
+ * Handle F6 keyboard navigation between regions.
1268
+ * Uses event.currentTarget to scope navigation to this specific editor instance,
1269
+ * supporting multiple ReviewEditor instances on the same page.
1270
+ */
1271
+ function handleContainerKeyDown(event) {
1272
+ if (event.key !== 'F6')
1273
+ return;
1577
1274
  // Use currentTarget (the element with the listener) to get this specific editor container
1578
1275
  const container = event.currentTarget;
1579
- if (!(container instanceof HTMLElement)) return;
1580
-
1276
+ if (!(container instanceof HTMLElement))
1277
+ return;
1581
1278
  event.preventDefault();
1582
1279
  const current = focusNavigator.getCurrentRegion(container);
1583
1280
  const next = focusNavigator.getNextRegion(current, event.shiftKey);
1584
1281
  focusNavigator.focusRegion(container, next);
1585
- }
1282
+ }
1586
1283
  </script>
1587
1284
 
1588
1285
  <!-- Export actions snippet for passing to controls -->