@lostgradient/cinder 0.3.0 → 0.4.1

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 (1760) hide show
  1. package/CHANGELOG.md +152 -0
  2. package/README.md +2 -2
  3. package/components.json +139 -87
  4. package/dist/_internal/locale-context.d.ts +9 -0
  5. package/dist/_internal/text-direction.d.ts +4 -0
  6. package/dist/_internal/tree-context.d.ts +2 -0
  7. package/dist/api-contract.d.ts +1 -1
  8. package/dist/components/_internal/create-command-list-state.svelte.d.ts +43 -0
  9. package/dist/components/_internal/create-sliding-dialog-state.svelte.d.ts +26 -0
  10. package/dist/components/_sortable-item.svelte.d.ts +1 -1
  11. package/dist/components/access-gate/index.js +379 -513
  12. package/dist/components/alert/alert.css +1 -1
  13. package/dist/components/alert/alert.schema.js +4 -4
  14. package/dist/components/alert/alert.types.d.ts +4 -4
  15. package/dist/components/alert/index.js +4 -4
  16. package/dist/components/alert-dialog/index.js +9 -3
  17. package/dist/components/approval-card/approval-card-state.d.ts +3 -0
  18. package/dist/components/approval-card/approval-card.css +239 -0
  19. package/dist/components/approval-card/approval-card.schema.js +236 -0
  20. package/dist/components/approval-card/approval-card.svelte.d.ts +21 -0
  21. package/dist/components/approval-card/approval-card.types.d.ts +155 -0
  22. package/dist/components/{subscription-badge/subscription-badge.variables.js → approval-card/approval-card.variables.js} +4 -4
  23. package/dist/components/approval-card/index.d.ts +5 -0
  24. package/dist/components/approval-card/index.js +3794 -0
  25. package/dist/components/autocomplete/autocomplete.css +12 -1
  26. package/dist/components/autocomplete/index.js +181 -143
  27. package/dist/components/avatar-group/index.js +98 -17
  28. package/dist/components/badge/badge.schema.js +6 -3
  29. package/dist/components/badge/badge.svelte.d.ts +4 -0
  30. package/dist/components/badge/badge.types.d.ts +18 -4
  31. package/dist/components/badge/index.d.ts +1 -1
  32. package/dist/components/badge/index.js +99 -3
  33. package/dist/components/banner/banner.schema.js +2 -2
  34. package/dist/components/banner/banner.types.d.ts +1 -1
  35. package/dist/components/banner/index.js +3 -3
  36. package/dist/components/button/button.css +1 -1
  37. package/dist/components/capability-gate/capability-gate.css +15 -2
  38. package/dist/components/capability-gate/capability-gate.schema.js +4 -4
  39. package/dist/components/capability-gate/capability-gate.types.d.ts +6 -6
  40. package/dist/components/capability-gate/index.js +7 -7
  41. package/dist/components/chat/chat.schema.js +11 -26
  42. package/dist/components/chat/chat.types.d.ts +30 -15
  43. package/dist/components/chat/container/chat-events.d.ts +2 -2
  44. package/dist/components/chat/container/chat-history-trigger.svelte.d.ts +1 -1
  45. package/dist/components/chat/container/chat.svelte.d.ts +1 -1
  46. package/dist/components/chat/container/use-chat-scroll-state.svelte.d.ts +4 -4
  47. package/dist/components/chat/container/use-chat-unread-state.svelte.d.ts +6 -6
  48. package/dist/components/chat/index.d.ts +1 -1
  49. package/dist/components/chat/index.js +2516 -2020
  50. package/dist/components/chat/input/chat-input.svelte.d.ts +3 -1
  51. package/dist/components/chat-conversation-header/index.js +327 -29
  52. package/dist/components/chat-conversation-list/chat-conversation-list.css +13 -0
  53. package/dist/components/checkbox/checkbox.css +3 -0
  54. package/dist/components/checkbox/checkbox.schema.js +6 -1
  55. package/dist/components/checkbox/checkbox.types.d.ts +2 -0
  56. package/dist/components/checkbox/index.js +78 -22
  57. package/dist/components/checkbox-group/checkbox-group.css +3 -0
  58. package/dist/components/checkbox-group/checkbox-group.schema.js +4 -4
  59. package/dist/components/checkbox-group/checkbox-group.types.d.ts +12 -7
  60. package/dist/components/checkbox-group/index.js +50 -21
  61. package/dist/components/choice-grid/index.js +2 -2
  62. package/dist/components/choice-grid-item/index.js +2 -2
  63. package/dist/components/click-away-listener/click-away-listener.schema.js +3 -3
  64. package/dist/components/click-away-listener/click-away-listener.types.d.ts +3 -3
  65. package/dist/components/click-away-listener/index.js +3 -3
  66. package/dist/components/code-block/code-block.css +4 -3
  67. package/dist/components/code-block/index.js +6 -5
  68. package/dist/components/collapsible/collapsible.schema.js +2 -2
  69. package/dist/components/collapsible/collapsible.types.d.ts +2 -2
  70. package/dist/components/collapsible/index.js +3 -3
  71. package/dist/components/color-field/color-field.schema.js +3 -3
  72. package/dist/components/color-field/color-field.types.d.ts +2 -2
  73. package/dist/components/color-field/index.js +133 -69
  74. package/dist/components/color-picker/index.js +29 -18
  75. package/dist/components/color-swatch-picker/index.js +29 -18
  76. package/dist/components/combobox/combobox.schema.js +10 -2
  77. package/dist/components/combobox/combobox.types.d.ts +9 -1
  78. package/dist/components/combobox/index.js +188 -75
  79. package/dist/components/command-item/command-item.css +10 -0
  80. package/dist/components/command-item/command-item.schema.js +9 -1
  81. package/dist/components/command-item/command-item.types.d.ts +4 -0
  82. package/dist/components/command-item/index.js +9 -1
  83. package/dist/components/command-menu/index.js +261 -161
  84. package/dist/components/command-palette/command-palette.schema.js +2 -3
  85. package/dist/components/command-palette/command-palette.types.d.ts +1 -2
  86. package/dist/components/command-palette/index.js +286 -192
  87. package/dist/components/confirm-dialog/index.js +9 -3
  88. package/dist/components/context-menu/context-menu.context.d.ts +2 -0
  89. package/dist/components/context-menu/index.js +366 -40
  90. package/dist/components/context-menu-trigger/index.js +11 -8
  91. package/dist/components/copy-button/index.js +6 -5
  92. package/dist/components/data-grid/_internal/column-model.svelte.d.ts +1 -0
  93. package/dist/components/data-grid/data-grid.css +25 -0
  94. package/dist/components/data-grid/data-grid.schema.js +3 -3
  95. package/dist/components/data-grid/data-grid.types.d.ts +8 -2
  96. package/dist/components/data-grid/index.js +11 -8
  97. package/dist/components/data-list/data-list.schema.js +7 -10
  98. package/dist/components/data-list/data-list.types.d.ts +5 -9
  99. package/dist/components/data-list/index.js +15 -39
  100. package/dist/components/data-table/data-table.css +33 -0
  101. package/dist/components/data-table/data-table.schema.js +30 -1
  102. package/dist/components/data-table/data-table.svelte.d.ts +4 -4
  103. package/dist/components/data-table/data-table.types.d.ts +26 -0
  104. package/dist/components/data-table/index.d.ts +1 -1
  105. package/dist/components/data-table/index.js +728 -310
  106. package/dist/components/date-range-field/date-range-field.schema.js +7 -3
  107. package/dist/components/date-range-field/date-range-field.svelte.d.ts +2 -2
  108. package/dist/components/date-range-field/date-range-field.types.d.ts +15 -10
  109. package/dist/components/date-range-field/index.d.ts +1 -1
  110. package/dist/components/date-range-field/index.js +160 -17
  111. package/dist/components/diff-viewer/diff-front-matter.svelte.d.ts +2 -2
  112. package/dist/components/diff-viewer/diff-line.svelte.d.ts +2 -2
  113. package/dist/components/diff-viewer/diff-toolbar.svelte.d.ts +2 -2
  114. package/dist/components/diff-viewer/diff-viewer.svelte.d.ts +1 -1
  115. package/dist/components/diff-viewer/diff-viewer.types.d.ts +3 -3
  116. package/dist/components/diff-viewer/index.d.ts +1 -1
  117. package/dist/components/diff-viewer/index.js +241 -71
  118. package/dist/components/drawer/index.js +353 -283
  119. package/dist/components/dropdown/dropdown.css +7 -1
  120. package/dist/components/dropdown/dropdown.types.d.ts +3 -0
  121. package/dist/components/dropdown/index.js +333 -35
  122. package/dist/components/dropdown-group/dropdown-group.schema.js +4 -4
  123. package/dist/components/dropdown-group/dropdown-group.types.d.ts +4 -4
  124. package/dist/components/dropdown-group/index.js +7 -7
  125. package/dist/components/dropdown-item/dropdown-item.schema.js +9 -1
  126. package/dist/components/dropdown-item/dropdown-item.types.d.ts +5 -0
  127. package/dist/components/dropdown-item/index.js +13 -8
  128. package/dist/components/dropdown-menu/index.js +302 -14
  129. package/dist/components/dropdown-trigger/index.js +11 -12
  130. package/dist/components/event-stream-viewer/event-stream-viewer-keys.d.ts +6 -0
  131. package/dist/components/event-stream-viewer/event-stream-viewer.css +46 -0
  132. package/dist/components/event-stream-viewer/event-stream-viewer.schema.js +83 -10
  133. package/dist/components/event-stream-viewer/event-stream-viewer.svelte.d.ts +3 -3
  134. package/dist/components/event-stream-viewer/event-stream-viewer.types.d.ts +124 -3
  135. package/dist/components/event-stream-viewer/index.d.ts +1 -1
  136. package/dist/components/event-stream-viewer/index.js +764 -409
  137. package/dist/components/experimental/json-viewer/index.d.ts +3 -1
  138. package/dist/components/experimental/json-viewer/index.js +396 -3
  139. package/dist/components/experimental/message/index.d.ts +3 -1
  140. package/dist/components/experimental/message/index.js +81 -3
  141. package/dist/components/faceted-filter-bar/faceted-filter-bar.css +9 -0
  142. package/dist/components/faceted-filter-bar/index.js +25 -6
  143. package/dist/components/file-upload/file-upload.css +5 -5
  144. package/dist/components/floating-action-button/floating-action-button.css +22 -22
  145. package/dist/components/floating-action-button/floating-action-button.schema.js +5 -5
  146. package/dist/components/floating-action-button/floating-action-button.svelte.d.ts +1 -1
  147. package/dist/components/floating-action-button/floating-action-button.types.d.ts +21 -21
  148. package/dist/components/floating-action-button/index.d.ts +1 -1
  149. package/dist/components/floating-action-button/index.js +8 -8
  150. package/dist/components/form-field/form-field.css +3 -13
  151. package/dist/components/form-field/index.js +2 -2
  152. package/dist/components/hover-card/index.js +69 -9
  153. package/dist/components/input/index.js +131 -67
  154. package/dist/components/input/input.schema.js +6 -1
  155. package/dist/components/input/input.types.d.ts +2 -0
  156. package/dist/components/invocation-rule-builder/index.d.ts +1 -1
  157. package/dist/components/invocation-rule-builder/index.js +184 -107
  158. package/dist/components/invocation-rule-builder/invocation-rule-builder.css +63 -6
  159. package/dist/components/invocation-rule-builder/invocation-rule-builder.schema.js +133 -35
  160. package/dist/components/invocation-rule-builder/invocation-rule-builder.svelte.d.ts +2 -2
  161. package/dist/components/invocation-rule-builder/invocation-rule-builder.types.d.ts +85 -8
  162. package/dist/components/json-schema-editor/diff-view.svelte.d.ts +1 -1
  163. package/dist/components/json-schema-editor/form-view.svelte.d.ts +2 -1
  164. package/dist/components/json-schema-editor/index.js +848 -382
  165. package/dist/components/json-schema-editor/json-schema-editor-state.svelte.d.ts +2 -12
  166. package/dist/components/json-schema-editor/json-schema-editor-state.types.d.ts +13 -0
  167. package/dist/components/json-schema-editor/json-schema-editor.css +6 -1
  168. package/dist/components/json-schema-editor/json-schema-toolbar.svelte.d.ts +2 -1
  169. package/dist/components/json-schema-editor/json-view.svelte.d.ts +1 -1
  170. package/dist/components/json-schema-editor/property-editor.svelte.d.ts +2 -0
  171. package/dist/components/json-schema-editor/property-list-validation.d.ts +1 -0
  172. package/dist/components/json-schema-editor/property-list.svelte.d.ts +1 -0
  173. package/dist/components/json-viewer/_json-viewer-node.svelte.d.ts +3 -0
  174. package/dist/components/json-viewer/index.js +112 -26
  175. package/dist/components/json-viewer/json-viewer.css +11 -0
  176. package/dist/components/kanban-board/index.js +18 -13
  177. package/dist/components/kanban-board/kanban-board.css +56 -3
  178. package/dist/components/keyboard-shortcuts/index.js +2 -2
  179. package/dist/components/keyboard-shortcuts/keyboard-shortcuts.css +2 -2
  180. package/dist/components/label/index.js +2 -2
  181. package/dist/components/label/label.css +2 -9
  182. package/dist/components/load-more/index.js +4 -4
  183. package/dist/components/load-more/load-more.css +13 -5
  184. package/dist/components/load-more/load-more.schema.js +4 -4
  185. package/dist/components/load-more/load-more.types.d.ts +3 -3
  186. package/dist/components/locale-provider/index.d.ts +4 -0
  187. package/dist/components/locale-provider/index.js +76 -0
  188. package/dist/components/{connection-indicator/connection-indicator.schema.js → locale-provider/locale-provider.schema.js} +18 -14
  189. package/dist/components/locale-provider/locale-provider.svelte.d.ts +17 -0
  190. package/dist/components/locale-provider/locale-provider.types.d.ts +17 -0
  191. package/dist/components/{connection-indicator/connection-indicator.variables.js → locale-provider/locale-provider.variables.js} +4 -4
  192. package/dist/components/markdown-editor/editor-toolbar/editor-toolbar.svelte.d.ts +2 -0
  193. package/dist/components/markdown-editor/index.js +744 -283
  194. package/dist/components/markdown-editor/markdown-editor.schema.js +4 -4
  195. package/dist/components/markdown-editor/markdown-editor.types.d.ts +4 -4
  196. package/dist/components/masonry/masonry.schema.js +4 -3
  197. package/dist/components/masonry/masonry.types.d.ts +13 -2
  198. package/dist/components/matrix-chart/index.js +245 -224
  199. package/dist/components/media-controls/index.js +7 -7
  200. package/dist/components/media-controls/media-controls.css +15 -4
  201. package/dist/components/media-controls/media-controls.schema.js +4 -4
  202. package/dist/components/media-controls/media-controls.types.d.ts +7 -7
  203. package/dist/components/menu-bar/index.d.ts +3 -1
  204. package/dist/components/menu-bar/index.js +3702 -3
  205. package/dist/components/menu-bar/menu-bar.css +11 -0
  206. package/dist/components/menu-bar/menu-bar.svelte.d.ts +1 -0
  207. package/dist/components/modal/index.js +9 -3
  208. package/dist/components/navigation-bar/index.js +4 -4
  209. package/dist/components/navigation-bar/navigation-bar.schema.js +2 -2
  210. package/dist/components/navigation-bar/navigation-bar.types.d.ts +1 -1
  211. package/dist/components/number-input/index.js +88 -42
  212. package/dist/components/number-input/number-input.schema.js +4 -3
  213. package/dist/components/number-input/number-input.types.d.ts +16 -5
  214. package/dist/components/payload-inspector/index.d.ts +1 -1
  215. package/dist/components/payload-inspector/index.js +271 -64
  216. package/dist/components/payload-inspector/payload-inspector.css +6 -0
  217. package/dist/components/payload-inspector/payload-inspector.schema.js +27 -15
  218. package/dist/components/payload-inspector/payload-inspector.svelte.d.ts +2 -2
  219. package/dist/components/payload-inspector/payload-inspector.types.d.ts +52 -3
  220. package/dist/components/permission-matrix/permission-matrix.css +10 -0
  221. package/dist/components/phone-input/index.js +56 -33
  222. package/dist/components/phone-input/phone-input.schema.js +2 -2
  223. package/dist/components/phone-input/phone-input.types.d.ts +3 -2
  224. package/dist/components/pin-input/index.js +46 -41
  225. package/dist/components/pin-input/pin-input.schema.js +9 -2
  226. package/dist/components/pin-input/pin-input.types.d.ts +10 -1
  227. package/dist/components/popover/index.js +11 -4
  228. package/dist/components/portal/index.js +3 -2
  229. package/dist/components/pricing-card/index.js +22 -7
  230. package/dist/components/radio-group/index.js +51 -21
  231. package/dist/components/radio-group/radio-group.css +3 -0
  232. package/dist/components/radio-group/radio-group.schema.js +3 -3
  233. package/dist/components/radio-group/radio-group.types.d.ts +6 -2
  234. package/dist/components/rating/index.js +1 -6
  235. package/dist/components/rating/rating.schema.js +9 -2
  236. package/dist/components/rating/rating.types.d.ts +6 -0
  237. package/dist/components/review-editor/comment-list.svelte.d.ts +1 -1
  238. package/dist/components/review-editor/index.d.ts +1 -1
  239. package/dist/components/review-editor/index.js +1151 -524
  240. package/dist/components/review-editor/review-editor-controls.svelte.d.ts +1 -1
  241. package/dist/components/review-editor/review-editor-impl.svelte.d.ts +4 -4
  242. package/dist/components/review-editor/review-editor-selection-types.d.ts +1 -1
  243. package/dist/components/review-editor/review-editor-state.svelte.d.ts +1 -1
  244. package/dist/components/review-editor/review-editor-threads.svelte.d.ts +2 -2
  245. package/dist/components/review-editor/review-editor.svelte.d.ts +2 -1
  246. package/dist/components/review-editor/review-editor.types.d.ts +77 -3
  247. package/dist/components/review-editor/thread-popover.svelte.d.ts +1 -1
  248. package/dist/components/run-step-timeline/index.d.ts +1 -1
  249. package/dist/components/run-step-timeline/index.js +747 -273
  250. package/dist/components/run-step-timeline/run-step-timeline.css +25 -5
  251. package/dist/components/run-step-timeline/run-step-timeline.schema.js +351 -21
  252. package/dist/components/run-step-timeline/run-step-timeline.svelte.d.ts +1 -1
  253. package/dist/components/run-step-timeline/run-step-timeline.types.d.ts +184 -3
  254. package/dist/components/schema-form/index.d.ts +1 -1
  255. package/dist/components/schema-form/index.js +1916 -474
  256. package/dist/components/schema-form/schema-form-async.fixture.d.ts +1 -0
  257. package/dist/components/schema-form/schema-form-body.svelte.d.ts +25 -0
  258. package/dist/components/schema-form/schema-form-model.d.ts +1 -4
  259. package/dist/components/schema-form/schema-form-validation.d.ts +1 -2
  260. package/dist/components/schema-form/schema-form.css +12 -74
  261. package/dist/components/schema-form/schema-form.schema.js +10 -3
  262. package/dist/components/schema-form/schema-form.svelte.d.ts +3 -3
  263. package/dist/components/schema-form/schema-form.types.d.ts +15 -8
  264. package/dist/components/scroll-area/index.js +3 -3
  265. package/dist/components/scroll-area/scroll-area.schema.js +2 -2
  266. package/dist/components/scroll-area/scroll-area.types.d.ts +1 -1
  267. package/dist/components/secret-value-field/index.js +10 -4
  268. package/dist/components/secret-value-field/secret-value-field.svelte.d.ts +1 -1
  269. package/dist/components/segment/index.js +8 -4
  270. package/dist/components/segmented-control/index.js +71 -5
  271. package/dist/components/segmented-control/segmented-control.css +22 -1
  272. package/dist/components/segmented-control/segmented-control.schema.js +5 -1
  273. package/dist/components/segmented-control/segmented-control.types.d.ts +2 -0
  274. package/dist/components/select/index.js +37 -24
  275. package/dist/components/select/select.css +9 -2
  276. package/dist/components/selection-popover/index.js +11 -4
  277. package/dist/components/share-card/index.js +3 -4
  278. package/dist/components/share-card/share-card.css +15 -4
  279. package/dist/components/sheet/index.js +365 -300
  280. package/dist/components/shortcut-hint/index.js +3 -3
  281. package/dist/components/sidebar/index.js +423 -353
  282. package/dist/components/sidebar/sidebar.schema.js +2 -2
  283. package/dist/components/sidebar/sidebar.types.d.ts +1 -1
  284. package/dist/components/slider/index.js +211 -9
  285. package/dist/components/slider/slider.css +14 -9
  286. package/dist/components/sortable-list/sortable-list.css +1 -1
  287. package/dist/components/sortable-list/sortable-list.types.d.ts +4 -4
  288. package/dist/components/spectrogram/index.js +224 -203
  289. package/dist/components/spectrum-chart/index.js +208 -187
  290. package/dist/components/speed-dial/index.js +11 -11
  291. package/dist/components/speed-dial/speed-dial.css +3 -3
  292. package/dist/components/speed-dial-action/index.js +9 -9
  293. package/dist/components/stat/index.js +26 -4
  294. package/dist/components/stat/stat.schema.js +2 -2
  295. package/dist/components/stat/stat.types.d.ts +2 -2
  296. package/dist/components/stat-group/index.js +26 -4
  297. package/dist/components/stat-group/stat-group.css +1 -1
  298. package/dist/components/status-dot/index.d.ts +1 -1
  299. package/dist/components/status-dot/index.js +47 -8
  300. package/dist/components/status-dot/status-dot.css +45 -1
  301. package/dist/components/status-dot/status-dot.schema.js +12 -5
  302. package/dist/components/status-dot/status-dot.svelte.d.ts +5 -1
  303. package/dist/components/status-dot/status-dot.types.d.ts +16 -6
  304. package/dist/components/steps/steps.css +3 -3
  305. package/dist/components/table/index.js +23 -17
  306. package/dist/components/table/table.css +10 -0
  307. package/dist/components/table/table.types.d.ts +3 -3
  308. package/dist/components/table-header/index.js +5 -5
  309. package/dist/components/table-header/table-header.schema.js +3 -3
  310. package/dist/components/table-header/table-header.types.d.ts +2 -2
  311. package/dist/components/table-header-cell/index.js +11 -5
  312. package/dist/components/table-row/index.js +7 -7
  313. package/dist/components/table-row/table-row.schema.js +3 -3
  314. package/dist/components/table-row/table-row.types.d.ts +6 -6
  315. package/dist/components/tabs/index.js +17 -4
  316. package/dist/components/tabs/tabs.schema.js +6 -1
  317. package/dist/components/tabs/tabs.types.d.ts +2 -0
  318. package/dist/components/tag-input/index.d.ts +3 -1
  319. package/dist/components/tag-input/index.js +566 -3
  320. package/dist/components/textarea/index.js +37 -24
  321. package/dist/components/textarea/textarea.css +16 -1
  322. package/dist/components/time-field/index.d.ts +5 -0
  323. package/dist/components/time-field/index.js +456 -0
  324. package/dist/components/time-field/time-field.css +60 -0
  325. package/dist/components/time-field/time-field.schema.d.ts +3 -0
  326. package/dist/components/time-field/time-field.schema.js +107 -0
  327. package/dist/components/time-field/time-field.svelte.d.ts +18 -0
  328. package/dist/components/time-field/time-field.types.d.ts +63 -0
  329. package/dist/components/time-field/time-field.variables.d.ts +2 -0
  330. package/dist/components/{experimental/connection-indicator/index.js → time-field/time-field.variables.js} +5 -14
  331. package/dist/components/toggle/index.js +39 -7
  332. package/dist/components/toggle/toggle.schema.js +11 -2
  333. package/dist/components/toggle/toggle.types.d.ts +2 -0
  334. package/dist/components/tooltip/index.js +98 -17
  335. package/dist/components/transfer-list/index.js +41 -11
  336. package/dist/components/transfer-list/transfer-list.css +22 -0
  337. package/dist/components/transfer-list/transfer-list.schema.js +2 -2
  338. package/dist/components/transfer-list/transfer-list.types.d.ts +2 -2
  339. package/dist/components/tree/index.js +303 -196
  340. package/dist/components/tree/tree.css +69 -0
  341. package/dist/components/tree/tree.schema.js +3 -3
  342. package/dist/components/tree/tree.types.d.ts +2 -2
  343. package/dist/components/tree-item/index.js +107 -68
  344. package/dist/components/tree-item/tree-item.schema.js +5 -5
  345. package/dist/components/tree-item/tree-item.types.d.ts +4 -4
  346. package/dist/components/virtual-list/index.js +98 -63
  347. package/dist/components/waveform/index.js +185 -164
  348. package/dist/editor/attach.d.ts +2 -2
  349. package/dist/editor/attach.js +10 -16
  350. package/dist/editor/editor.js +6 -6
  351. package/dist/editor/keymap-plugin.d.ts +2 -2
  352. package/dist/editor/keymap-plugin.js +4 -4
  353. package/dist/editor/types.d.ts +11 -11
  354. package/dist/index.d.ts +19 -17
  355. package/dist/index.js +106 -105
  356. package/dist/server/components/access-gate/access-gate.schema.js +2 -4
  357. package/dist/server/components/access-gate/access-gate.variables.js +2 -4
  358. package/dist/server/components/access-gate/index.js +21 -1688
  359. package/dist/server/components/accordion/accordion.schema.js +2 -4
  360. package/dist/server/components/accordion/accordion.variables.js +2 -4
  361. package/dist/server/components/accordion/index.js +10 -122
  362. package/dist/server/components/accordion-item/accordion-item.schema.js +2 -4
  363. package/dist/server/components/accordion-item/accordion-item.variables.js +2 -4
  364. package/dist/server/components/accordion-item/index.js +9 -46
  365. package/dist/server/components/alert/alert.schema.js +5 -7
  366. package/dist/server/components/alert/alert.variables.js +2 -4
  367. package/dist/server/components/alert/index.js +9 -108
  368. package/dist/server/components/alert-dialog/alert-dialog.schema.js +2 -4
  369. package/dist/server/components/alert-dialog/alert-dialog.variables.js +2 -4
  370. package/dist/server/components/alert-dialog/index.js +16 -779
  371. package/dist/server/components/approval-card/approval-card.schema.js +215 -0
  372. package/dist/server/components/approval-card/approval-card.variables.js +10 -0
  373. package/dist/server/components/approval-card/index.js +41 -0
  374. package/dist/server/components/area-chart/area-chart.schema.js +2 -4
  375. package/dist/server/components/area-chart/area-chart.variables.js +2 -4
  376. package/dist/server/components/area-chart/index.js +9 -1138
  377. package/dist/server/components/aspect-ratio/aspect-ratio.schema.js +2 -4
  378. package/dist/server/components/aspect-ratio/aspect-ratio.variables.js +2 -4
  379. package/dist/server/components/aspect-ratio/index.js +7 -42
  380. package/dist/server/components/autocomplete/autocomplete.schema.js +2 -4
  381. package/dist/server/components/autocomplete/autocomplete.variables.js +2 -4
  382. package/dist/server/components/autocomplete/index.js +19 -844
  383. package/dist/server/components/avatar/avatar.schema.js +2 -4
  384. package/dist/server/components/avatar/avatar.variables.js +2 -4
  385. package/dist/server/components/avatar/index.js +10 -94
  386. package/dist/server/components/avatar-group/avatar-group.schema.js +2 -4
  387. package/dist/server/components/avatar-group/avatar-group.variables.js +2 -4
  388. package/dist/server/components/avatar-group/index.js +16 -481
  389. package/dist/server/components/backdrop/backdrop.schema.js +2 -4
  390. package/dist/server/components/backdrop/backdrop.variables.js +2 -4
  391. package/dist/server/components/backdrop/index.js +9 -134
  392. package/dist/server/components/badge/badge.schema.js +7 -6
  393. package/dist/server/components/badge/badge.variables.js +2 -4
  394. package/dist/server/components/badge/index.js +9 -40
  395. package/dist/server/components/banner/banner.schema.js +3 -5
  396. package/dist/server/components/banner/banner.variables.js +2 -4
  397. package/dist/server/components/banner/index.js +7 -107
  398. package/dist/server/components/bar-chart/bar-chart.schema.js +2 -4
  399. package/dist/server/components/bar-chart/bar-chart.variables.js +2 -4
  400. package/dist/server/components/bar-chart/index.js +9 -1135
  401. package/dist/server/components/breadcrumbs/breadcrumbs.schema.js +2 -4
  402. package/dist/server/components/breadcrumbs/breadcrumbs.variables.js +2 -4
  403. package/dist/server/components/breadcrumbs/index.js +7 -52
  404. package/dist/server/components/button/button.schema.js +2 -4
  405. package/dist/server/components/button/button.variables.js +2 -4
  406. package/dist/server/components/button/index.js +11 -167
  407. package/dist/server/components/button-group/button-group.schema.js +2 -4
  408. package/dist/server/components/button-group/button-group.variables.js +2 -4
  409. package/dist/server/components/button-group/index.js +12 -132
  410. package/dist/server/components/callout/callout.schema.js +2 -4
  411. package/dist/server/components/callout/callout.variables.js +2 -4
  412. package/dist/server/components/callout/index.js +7 -67
  413. package/dist/server/components/capability-gate/capability-gate.schema.js +5 -7
  414. package/dist/server/components/capability-gate/capability-gate.variables.js +2 -4
  415. package/dist/server/components/capability-gate/index.js +9 -132
  416. package/dist/server/components/card/card.schema.js +2 -4
  417. package/dist/server/components/card/card.variables.js +2 -4
  418. package/dist/server/components/card/index.js +9 -82
  419. package/dist/server/components/chat/chat.schema.js +12 -29
  420. package/dist/server/components/chat/chat.variables.js +2 -4
  421. package/dist/server/components/chat/index.js +96 -8611
  422. package/dist/server/components/chat-conversation-header/chat-conversation-header.schema.js +2 -4
  423. package/dist/server/components/chat-conversation-header/chat-conversation-header.variables.js +2 -4
  424. package/dist/server/components/chat-conversation-header/index.js +36 -1463
  425. package/dist/server/components/chat-conversation-list/chat-conversation-list.schema.js +2 -4
  426. package/dist/server/components/chat-conversation-list/chat-conversation-list.variables.js +2 -4
  427. package/dist/server/components/chat-conversation-list/index.js +12 -348
  428. package/dist/server/components/checkbox/checkbox.schema.js +7 -4
  429. package/dist/server/components/checkbox/checkbox.variables.js +2 -4
  430. package/dist/server/components/checkbox/index.js +15 -155
  431. package/dist/server/components/checkbox-group/checkbox-group.schema.js +5 -7
  432. package/dist/server/components/checkbox-group/checkbox-group.variables.js +2 -4
  433. package/dist/server/components/checkbox-group/index.js +10 -97
  434. package/dist/server/components/chip/chip.schema.js +2 -4
  435. package/dist/server/components/chip/chip.variables.js +2 -4
  436. package/dist/server/components/chip/index.js +9 -136
  437. package/dist/server/components/choice-grid/choice-grid.schema.js +2 -4
  438. package/dist/server/components/choice-grid/choice-grid.variables.js +2 -4
  439. package/dist/server/components/choice-grid/index.js +12 -347
  440. package/dist/server/components/choice-grid-item/choice-grid-item.schema.js +2 -4
  441. package/dist/server/components/choice-grid-item/choice-grid-item.variables.js +2 -4
  442. package/dist/server/components/choice-grid-item/index.js +12 -103
  443. package/dist/server/components/click-away-listener/click-away-listener.schema.js +4 -6
  444. package/dist/server/components/click-away-listener/click-away-listener.variables.js +2 -4
  445. package/dist/server/components/click-away-listener/index.js +7 -37
  446. package/dist/server/components/code-block/code-block.schema.js +2 -4
  447. package/dist/server/components/code-block/code-block.variables.js +2 -4
  448. package/dist/server/components/code-block/index.js +19 -335
  449. package/dist/server/components/collapsible/collapsible.schema.js +3 -5
  450. package/dist/server/components/collapsible/collapsible.variables.js +2 -4
  451. package/dist/server/components/collapsible/index.js +10 -88
  452. package/dist/server/components/color-field/color-field.schema.js +4 -6
  453. package/dist/server/components/color-field/color-field.variables.js +2 -4
  454. package/dist/server/components/color-field/index.js +15 -643
  455. package/dist/server/components/color-picker/color-picker.schema.js +2 -4
  456. package/dist/server/components/color-picker/color-picker.variables.js +2 -4
  457. package/dist/server/components/color-picker/index.js +15 -906
  458. package/dist/server/components/color-swatch-picker/color-swatch-picker.schema.js +2 -4
  459. package/dist/server/components/color-swatch-picker/color-swatch-picker.variables.js +2 -4
  460. package/dist/server/components/color-swatch-picker/index.js +16 -461
  461. package/dist/server/components/combobox/combobox.schema.js +11 -5
  462. package/dist/server/components/combobox/combobox.variables.js +2 -4
  463. package/dist/server/components/combobox/index.js +19 -661
  464. package/dist/server/components/command-item/command-item.schema.js +10 -4
  465. package/dist/server/components/command-item/command-item.variables.js +2 -4
  466. package/dist/server/components/command-item/index.js +8 -113
  467. package/dist/server/components/command-menu/command-menu.schema.js +2 -4
  468. package/dist/server/components/command-menu/command-menu.variables.js +2 -4
  469. package/dist/server/components/command-menu/index.js +16 -461
  470. package/dist/server/components/command-palette/command-palette.schema.js +3 -6
  471. package/dist/server/components/command-palette/command-palette.variables.js +2 -4
  472. package/dist/server/components/command-palette/index.js +12 -318
  473. package/dist/server/components/confirm-dialog/confirm-dialog.schema.js +2 -4
  474. package/dist/server/components/confirm-dialog/confirm-dialog.variables.js +2 -4
  475. package/dist/server/components/confirm-dialog/index.js +16 -779
  476. package/dist/server/components/container/container.schema.js +2 -4
  477. package/dist/server/components/container/container.variables.js +2 -4
  478. package/dist/server/components/container/index.js +7 -44
  479. package/dist/server/components/context-menu/context-menu.schema.js +2 -4
  480. package/dist/server/components/context-menu/context-menu.variables.js +2 -4
  481. package/dist/server/components/context-menu/index.js +26 -878
  482. package/dist/server/components/context-menu-trigger/context-menu-trigger.schema.js +2 -4
  483. package/dist/server/components/context-menu-trigger/context-menu-trigger.variables.js +2 -4
  484. package/dist/server/components/context-menu-trigger/index.js +10 -159
  485. package/dist/server/components/copy-button/copy-button.schema.js +2 -4
  486. package/dist/server/components/copy-button/copy-button.variables.js +2 -4
  487. package/dist/server/components/copy-button/index.js +16 -260
  488. package/dist/server/components/data-grid/data-grid.schema.js +4 -6
  489. package/dist/server/components/data-grid/data-grid.variables.js +2 -4
  490. package/dist/server/components/data-grid/index.js +11 -2817
  491. package/dist/server/components/data-list/data-list.schema.js +8 -13
  492. package/dist/server/components/data-list/data-list.variables.js +2 -4
  493. package/dist/server/components/data-list/index.js +9 -96
  494. package/dist/server/components/data-table/data-table.schema.js +31 -4
  495. package/dist/server/components/data-table/data-table.variables.js +2 -4
  496. package/dist/server/components/data-table/index.js +23 -711
  497. package/dist/server/components/date-range-field/date-range-field.schema.js +8 -6
  498. package/dist/server/components/date-range-field/date-range-field.variables.js +2 -4
  499. package/dist/server/components/date-range-field/index.js +8 -184
  500. package/dist/server/components/description-list/description-list.schema.js +2 -4
  501. package/dist/server/components/description-list/description-list.variables.js +2 -4
  502. package/dist/server/components/description-list/index.js +11 -72
  503. package/dist/server/components/diff-statistics/diff-statistics.schema.js +2 -4
  504. package/dist/server/components/diff-statistics/diff-statistics.variables.js +2 -4
  505. package/dist/server/components/diff-statistics/index.js +9 -99
  506. package/dist/server/components/diff-viewer/diff-viewer.schema.js +2 -4
  507. package/dist/server/components/diff-viewer/diff-viewer.variables.js +2 -4
  508. package/dist/server/components/diff-viewer/index.js +29 -1874
  509. package/dist/server/components/divider/divider.schema.js +2 -4
  510. package/dist/server/components/divider/divider.variables.js +2 -4
  511. package/dist/server/components/divider/index.js +7 -78
  512. package/dist/server/components/drawer/drawer.schema.js +2 -4
  513. package/dist/server/components/drawer/drawer.variables.js +2 -4
  514. package/dist/server/components/drawer/index.js +17 -694
  515. package/dist/server/components/dropdown/dropdown.schema.js +2 -4
  516. package/dist/server/components/dropdown/dropdown.variables.js +2 -4
  517. package/dist/server/components/dropdown/index.js +27 -810
  518. package/dist/server/components/dropdown-group/dropdown-group.schema.js +5 -7
  519. package/dist/server/components/dropdown-group/dropdown-group.variables.js +2 -4
  520. package/dist/server/components/dropdown-group/index.js +9 -64
  521. package/dist/server/components/dropdown-item/dropdown-item.schema.js +10 -4
  522. package/dist/server/components/dropdown-item/dropdown-item.variables.js +2 -4
  523. package/dist/server/components/dropdown-item/index.js +10 -123
  524. package/dist/server/components/dropdown-label/dropdown-label.schema.js +2 -4
  525. package/dist/server/components/dropdown-label/dropdown-label.variables.js +2 -4
  526. package/dist/server/components/dropdown-label/index.js +9 -35
  527. package/dist/server/components/dropdown-menu/dropdown-menu.schema.js +2 -4
  528. package/dist/server/components/dropdown-menu/dropdown-menu.variables.js +2 -4
  529. package/dist/server/components/dropdown-menu/index.js +19 -258
  530. package/dist/server/components/dropdown-separator/dropdown-separator.schema.js +2 -4
  531. package/dist/server/components/dropdown-separator/dropdown-separator.variables.js +2 -4
  532. package/dist/server/components/dropdown-separator/index.js +9 -27
  533. package/dist/server/components/dropdown-trigger/dropdown-trigger.schema.js +2 -4
  534. package/dist/server/components/dropdown-trigger/dropdown-trigger.variables.js +2 -4
  535. package/dist/server/components/dropdown-trigger/index.js +10 -78
  536. package/dist/server/components/empty-state/empty-state.schema.js +2 -4
  537. package/dist/server/components/empty-state/empty-state.variables.js +2 -4
  538. package/dist/server/components/empty-state/index.js +9 -72
  539. package/dist/server/components/event-stream-viewer/event-stream-viewer.schema.js +84 -13
  540. package/dist/server/components/event-stream-viewer/event-stream-viewer.variables.js +2 -4
  541. package/dist/server/components/event-stream-viewer/index.js +17 -622
  542. package/dist/server/components/experimental/json-viewer/index.js +14 -17
  543. package/dist/server/components/experimental/message/index.js +13 -17
  544. package/dist/server/components/faceted-filter-bar/faceted-filter-bar.schema.js +2 -4
  545. package/dist/server/components/faceted-filter-bar/faceted-filter-bar.variables.js +2 -4
  546. package/dist/server/components/faceted-filter-bar/index.js +21 -731
  547. package/dist/server/components/feed/feed.schema.js +2 -4
  548. package/dist/server/components/feed/feed.variables.js +2 -4
  549. package/dist/server/components/feed/index.js +9 -96
  550. package/dist/server/components/feed-event/feed-event.schema.js +2 -4
  551. package/dist/server/components/feed-event/feed-event.variables.js +2 -4
  552. package/dist/server/components/feed-event/index.js +9 -69
  553. package/dist/server/components/file-upload/file-upload.schema.js +2 -4
  554. package/dist/server/components/file-upload/file-upload.variables.js +2 -4
  555. package/dist/server/components/file-upload/index.js +14 -459
  556. package/dist/server/components/floating-action-button/floating-action-button.schema.js +6 -8
  557. package/dist/server/components/floating-action-button/floating-action-button.variables.js +2 -4
  558. package/dist/server/components/floating-action-button/index.js +11 -101
  559. package/dist/server/components/focus-trap/focus-trap.schema.js +2 -4
  560. package/dist/server/components/focus-trap/focus-trap.variables.js +2 -4
  561. package/dist/server/components/focus-trap/index.js +10 -249
  562. package/dist/server/components/form-field/form-field.schema.js +2 -4
  563. package/dist/server/components/form-field/form-field.variables.js +2 -4
  564. package/dist/server/components/form-field/index.js +10 -145
  565. package/dist/server/components/form-section/form-section.schema.js +2 -4
  566. package/dist/server/components/form-section/form-section.variables.js +2 -4
  567. package/dist/server/components/form-section/index.js +9 -87
  568. package/dist/server/components/grid/grid.schema.js +2 -4
  569. package/dist/server/components/grid/grid.variables.js +2 -4
  570. package/dist/server/components/grid/index.js +9 -109
  571. package/dist/server/components/grid-item/grid-item.schema.js +2 -4
  572. package/dist/server/components/grid-item/grid-item.variables.js +2 -4
  573. package/dist/server/components/grid-item/index.js +9 -57
  574. package/dist/server/components/grid-list/grid-list.schema.js +2 -4
  575. package/dist/server/components/grid-list/grid-list.variables.js +2 -4
  576. package/dist/server/components/grid-list/index.js +8 -128
  577. package/dist/server/components/grid-list-item/grid-list-item.schema.js +2 -4
  578. package/dist/server/components/grid-list-item/grid-list-item.variables.js +2 -4
  579. package/dist/server/components/grid-list-item/index.js +9 -102
  580. package/dist/server/components/hover-card/hover-card.schema.js +2 -4
  581. package/dist/server/components/hover-card/hover-card.variables.js +2 -4
  582. package/dist/server/components/hover-card/index.js +13 -312
  583. package/dist/server/components/image/image.schema.js +2 -4
  584. package/dist/server/components/image/image.variables.js +2 -4
  585. package/dist/server/components/image/index.js +7 -83
  586. package/dist/server/components/input/index.js +15 -199
  587. package/dist/server/components/input/input.schema.js +7 -4
  588. package/dist/server/components/input/input.variables.js +2 -4
  589. package/dist/server/components/invocation-rule-builder/index.js +7 -328
  590. package/dist/server/components/invocation-rule-builder/invocation-rule-builder.schema.js +134 -38
  591. package/dist/server/components/invocation-rule-builder/invocation-rule-builder.variables.js +2 -4
  592. package/dist/server/components/json-schema-editor/index.js +56 -5446
  593. package/dist/server/components/json-schema-editor/json-schema-editor.schema.js +2 -4
  594. package/dist/server/components/json-schema-editor/json-schema-editor.variables.js +2 -4
  595. package/dist/server/components/json-viewer/index.js +9 -158
  596. package/dist/server/components/json-viewer/json-viewer.schema.js +2 -4
  597. package/dist/server/components/json-viewer/json-viewer.variables.js +2 -4
  598. package/dist/server/components/kanban-board/index.js +11 -1140
  599. package/dist/server/components/kanban-board/kanban-board.schema.js +2 -4
  600. package/dist/server/components/kanban-board/kanban-board.variables.js +2 -4
  601. package/dist/server/components/kbd/index.js +9 -44
  602. package/dist/server/components/kbd/kbd.schema.js +2 -4
  603. package/dist/server/components/kbd/kbd.variables.js +2 -4
  604. package/dist/server/components/keyboard-shortcuts/index.js +8 -113
  605. package/dist/server/components/keyboard-shortcuts/keyboard-shortcuts.schema.js +2 -4
  606. package/dist/server/components/keyboard-shortcuts/keyboard-shortcuts.variables.js +2 -4
  607. package/dist/server/components/label/index.js +7 -46
  608. package/dist/server/components/label/label.schema.js +2 -4
  609. package/dist/server/components/label/label.variables.js +2 -4
  610. package/dist/server/components/line-chart/index.js +9 -1147
  611. package/dist/server/components/line-chart/line-chart.schema.js +2 -4
  612. package/dist/server/components/line-chart/line-chart.variables.js +2 -4
  613. package/dist/server/components/link/index.js +9 -93
  614. package/dist/server/components/link/link.schema.js +2 -4
  615. package/dist/server/components/link/link.variables.js +2 -4
  616. package/dist/server/components/load-more/index.js +9 -141
  617. package/dist/server/components/load-more/load-more.schema.js +5 -7
  618. package/dist/server/components/load-more/load-more.variables.js +2 -4
  619. package/dist/server/components/locale-provider/index.js +13 -0
  620. package/dist/server/components/locale-provider/locale-provider.schema.js +33 -0
  621. package/dist/server/components/locale-provider/locale-provider.variables.js +10 -0
  622. package/dist/server/components/markdown-editor/index.js +44 -3761
  623. package/dist/server/components/markdown-editor/markdown-editor.schema.js +5 -7
  624. package/dist/server/components/markdown-editor/markdown-editor.variables.js +2 -4
  625. package/dist/server/components/masonry/index.js +7 -43
  626. package/dist/server/components/masonry/masonry.schema.js +5 -6
  627. package/dist/server/components/masonry/masonry.variables.js +2 -4
  628. package/dist/server/components/matrix-chart/index.js +10 -994
  629. package/dist/server/components/matrix-chart/matrix-chart.schema.js +2 -4
  630. package/dist/server/components/matrix-chart/matrix-chart.variables.js +2 -4
  631. package/dist/server/components/media-controls/index.js +8 -161
  632. package/dist/server/components/media-controls/media-controls.schema.js +5 -7
  633. package/dist/server/components/media-controls/media-controls.variables.js +2 -4
  634. package/dist/server/components/menu-bar/index.js +23 -6
  635. package/dist/server/components/menu-bar/menu-bar.schema.js +2 -4
  636. package/dist/server/components/menu-bar/menu-bar.variables.js +2 -4
  637. package/dist/server/components/message/index.js +7 -55
  638. package/dist/server/components/message/message.schema.js +2 -4
  639. package/dist/server/components/message/message.variables.js +2 -4
  640. package/dist/server/components/modal/index.js +16 -541
  641. package/dist/server/components/modal/modal.schema.js +2 -4
  642. package/dist/server/components/modal/modal.variables.js +2 -4
  643. package/dist/server/components/navigation-bar/index.js +7 -152
  644. package/dist/server/components/navigation-bar/navigation-bar.schema.js +3 -5
  645. package/dist/server/components/navigation-bar/navigation-bar.variables.js +2 -4
  646. package/dist/server/components/navigation-item/index.js +9 -81
  647. package/dist/server/components/navigation-item/navigation-item.schema.js +2 -4
  648. package/dist/server/components/navigation-item/navigation-item.variables.js +2 -4
  649. package/dist/server/components/number-input/index.js +14 -450
  650. package/dist/server/components/number-input/number-input.schema.js +5 -6
  651. package/dist/server/components/number-input/number-input.variables.js +2 -4
  652. package/dist/server/components/pagination/index.js +8 -101
  653. package/dist/server/components/pagination/pagination.schema.js +2 -4
  654. package/dist/server/components/pagination/pagination.variables.js +2 -4
  655. package/dist/server/components/payload-inspector/index.js +31 -1317
  656. package/dist/server/components/payload-inspector/payload-inspector.schema.js +28 -18
  657. package/dist/server/components/payload-inspector/payload-inspector.variables.js +2 -4
  658. package/dist/server/components/permission-matrix/index.js +11 -289
  659. package/dist/server/components/permission-matrix/permission-matrix.schema.js +2 -4
  660. package/dist/server/components/permission-matrix/permission-matrix.variables.js +2 -4
  661. package/dist/server/components/phone-input/index.js +13 -4514
  662. package/dist/server/components/phone-input/phone-input.schema.js +3 -5
  663. package/dist/server/components/phone-input/phone-input.variables.js +2 -4
  664. package/dist/server/components/pin-input/index.js +12 -317
  665. package/dist/server/components/pin-input/pin-input.schema.js +10 -5
  666. package/dist/server/components/pin-input/pin-input.variables.js +2 -4
  667. package/dist/server/components/popover/index.js +17 -422
  668. package/dist/server/components/popover/popover.schema.js +2 -4
  669. package/dist/server/components/popover/popover.variables.js +2 -4
  670. package/dist/server/components/portal/index.js +11 -109
  671. package/dist/server/components/portal/portal.schema.js +2 -4
  672. package/dist/server/components/portal/portal.variables.js +2 -4
  673. package/dist/server/components/pricing-card/index.js +10 -222
  674. package/dist/server/components/pricing-card/pricing-card.schema.js +2 -4
  675. package/dist/server/components/pricing-card/pricing-card.variables.js +2 -4
  676. package/dist/server/components/progress/index.js +11 -71
  677. package/dist/server/components/progress/progress.schema.js +2 -4
  678. package/dist/server/components/progress/progress.variables.js +2 -4
  679. package/dist/server/components/radio-group/index.js +10 -177
  680. package/dist/server/components/radio-group/radio-group.schema.js +4 -6
  681. package/dist/server/components/radio-group/radio-group.variables.js +2 -4
  682. package/dist/server/components/rating/index.js +12 -357
  683. package/dist/server/components/rating/rating.schema.js +10 -5
  684. package/dist/server/components/rating/rating.variables.js +2 -4
  685. package/dist/server/components/resizable-panels/index.js +10 -721
  686. package/dist/server/components/resizable-panels/resizable-panels.schema.js +2 -4
  687. package/dist/server/components/resizable-panels/resizable-panels.variables.js +2 -4
  688. package/dist/server/components/review-editor/index.js +83 -9047
  689. package/dist/server/components/review-editor/review-editor.schema.js +2 -4
  690. package/dist/server/components/review-editor/review-editor.variables.js +2 -4
  691. package/dist/server/components/run-step-timeline/index.js +15 -409
  692. package/dist/server/components/run-step-timeline/run-step-timeline.schema.js +352 -24
  693. package/dist/server/components/run-step-timeline/run-step-timeline.variables.js +2 -4
  694. package/dist/server/components/schema-form/index.js +21 -905
  695. package/dist/server/components/schema-form/schema-form.schema.js +11 -6
  696. package/dist/server/components/schema-form/schema-form.variables.js +2 -4
  697. package/dist/server/components/scroll-area/index.js +7 -52
  698. package/dist/server/components/scroll-area/scroll-area.schema.js +3 -5
  699. package/dist/server/components/scroll-area/scroll-area.variables.js +2 -4
  700. package/dist/server/components/search-field/index.js +19 -289
  701. package/dist/server/components/search-field/search-field.schema.js +2 -4
  702. package/dist/server/components/search-field/search-field.variables.js +2 -4
  703. package/dist/server/components/secret-value-field/index.js +11 -168
  704. package/dist/server/components/secret-value-field/secret-value-field.schema.js +2 -4
  705. package/dist/server/components/secret-value-field/secret-value-field.variables.js +2 -4
  706. package/dist/server/components/section-heading/index.js +7 -77
  707. package/dist/server/components/section-heading/section-heading.schema.js +2 -4
  708. package/dist/server/components/section-heading/section-heading.variables.js +2 -4
  709. package/dist/server/components/segment/index.js +12 -306
  710. package/dist/server/components/segment/segment.schema.js +2 -4
  711. package/dist/server/components/segment/segment.variables.js +2 -4
  712. package/dist/server/components/segmented-control/index.js +12 -308
  713. package/dist/server/components/segmented-control/segmented-control.schema.js +6 -4
  714. package/dist/server/components/segmented-control/segmented-control.variables.js +2 -4
  715. package/dist/server/components/select/index.js +14 -173
  716. package/dist/server/components/select/select.schema.js +2 -4
  717. package/dist/server/components/select/select.variables.js +2 -4
  718. package/dist/server/components/selection-popover/index.js +16 -437
  719. package/dist/server/components/selection-popover/selection-popover.schema.js +2 -4
  720. package/dist/server/components/selection-popover/selection-popover.variables.js +2 -4
  721. package/dist/server/components/share-card/index.js +9 -244
  722. package/dist/server/components/share-card/share-card.schema.js +2 -4
  723. package/dist/server/components/share-card/share-card.variables.js +2 -4
  724. package/dist/server/components/sheet/index.js +15 -698
  725. package/dist/server/components/sheet/sheet.schema.js +2 -4
  726. package/dist/server/components/sheet/sheet.variables.js +2 -4
  727. package/dist/server/components/shortcut-hint/index.js +8 -98
  728. package/dist/server/components/shortcut-hint/shortcut-hint.schema.js +2 -4
  729. package/dist/server/components/shortcut-hint/shortcut-hint.variables.js +2 -4
  730. package/dist/server/components/side-navigation/index.js +12 -240
  731. package/dist/server/components/side-navigation/side-navigation.schema.js +2 -4
  732. package/dist/server/components/side-navigation/side-navigation.variables.js +2 -4
  733. package/dist/server/components/side-navigation-group/index.js +11 -119
  734. package/dist/server/components/side-navigation-group/side-navigation-group.schema.js +2 -4
  735. package/dist/server/components/side-navigation-group/side-navigation-group.variables.js +2 -4
  736. package/dist/server/components/side-navigation-item/index.js +12 -117
  737. package/dist/server/components/side-navigation-item/side-navigation-item.schema.js +2 -4
  738. package/dist/server/components/side-navigation-item/side-navigation-item.variables.js +2 -4
  739. package/dist/server/components/sidebar/index.js +17 -854
  740. package/dist/server/components/sidebar/sidebar.schema.js +3 -5
  741. package/dist/server/components/sidebar/sidebar.variables.js +2 -4
  742. package/dist/server/components/skeleton/index.js +7 -28
  743. package/dist/server/components/skeleton/skeleton.schema.js +2 -4
  744. package/dist/server/components/skeleton/skeleton.variables.js +2 -4
  745. package/dist/server/components/skip-link/index.js +9 -105
  746. package/dist/server/components/skip-link/skip-link.schema.js +2 -4
  747. package/dist/server/components/skip-link/skip-link.variables.js +2 -4
  748. package/dist/server/components/slider/index.js +13 -394
  749. package/dist/server/components/slider/slider.schema.js +2 -4
  750. package/dist/server/components/slider/slider.variables.js +2 -4
  751. package/dist/server/components/sortable-list/index.js +9 -632
  752. package/dist/server/components/sortable-list/sortable-list.schema.js +2 -4
  753. package/dist/server/components/sortable-list/sortable-list.variables.js +2 -4
  754. package/dist/server/components/spectrogram/index.js +10 -934
  755. package/dist/server/components/spectrogram/spectrogram.schema.js +2 -4
  756. package/dist/server/components/spectrogram/spectrogram.variables.js +2 -4
  757. package/dist/server/components/spectrum-chart/index.js +9 -835
  758. package/dist/server/components/spectrum-chart/spectrum-chart.schema.js +2 -4
  759. package/dist/server/components/spectrum-chart/spectrum-chart.variables.js +2 -4
  760. package/dist/server/components/speed-dial/index.js +12 -388
  761. package/dist/server/components/speed-dial/speed-dial.schema.js +2 -4
  762. package/dist/server/components/speed-dial/speed-dial.variables.js +2 -4
  763. package/dist/server/components/speed-dial-action/index.js +12 -166
  764. package/dist/server/components/speed-dial-action/speed-dial-action.schema.js +2 -4
  765. package/dist/server/components/speed-dial-action/speed-dial-action.variables.js +2 -4
  766. package/dist/server/components/spinner/index.js +9 -36
  767. package/dist/server/components/spinner/spinner.schema.js +2 -4
  768. package/dist/server/components/spinner/spinner.variables.js +2 -4
  769. package/dist/server/components/stacked-list-item/index.js +9 -122
  770. package/dist/server/components/stacked-list-item/stacked-list-item.schema.js +2 -4
  771. package/dist/server/components/stacked-list-item/stacked-list-item.variables.js +2 -4
  772. package/dist/server/components/stat/index.js +12 -88
  773. package/dist/server/components/stat/stat.schema.js +3 -5
  774. package/dist/server/components/stat/stat.variables.js +2 -4
  775. package/dist/server/components/stat-group/index.js +11 -122
  776. package/dist/server/components/stat-group/stat-group.schema.js +2 -4
  777. package/dist/server/components/stat-group/stat-group.variables.js +2 -4
  778. package/dist/server/components/status-dot/index.js +9 -51
  779. package/dist/server/components/status-dot/status-dot.schema.js +13 -8
  780. package/dist/server/components/status-dot/status-dot.variables.js +2 -4
  781. package/dist/server/components/steps/index.js +10 -191
  782. package/dist/server/components/steps/steps.schema.js +2 -4
  783. package/dist/server/components/steps/steps.variables.js +2 -4
  784. package/dist/server/components/surface/index.js +10 -63
  785. package/dist/server/components/surface/surface.schema.js +2 -4
  786. package/dist/server/components/surface/surface.variables.js +2 -4
  787. package/dist/server/components/tab/index.js +11 -96
  788. package/dist/server/components/tab/tab.schema.js +2 -4
  789. package/dist/server/components/tab/tab.variables.js +2 -4
  790. package/dist/server/components/tab-list/index.js +10 -31
  791. package/dist/server/components/tab-list/tab-list.schema.js +2 -4
  792. package/dist/server/components/tab-list/tab-list.variables.js +2 -4
  793. package/dist/server/components/tab-panel/index.js +10 -40
  794. package/dist/server/components/tab-panel/tab-panel.schema.js +2 -4
  795. package/dist/server/components/tab-panel/tab-panel.variables.js +2 -4
  796. package/dist/server/components/table/index.js +19 -356
  797. package/dist/server/components/table/table.schema.js +2 -4
  798. package/dist/server/components/table/table.variables.js +2 -4
  799. package/dist/server/components/table-body/index.js +11 -49
  800. package/dist/server/components/table-body/table-body.schema.js +2 -4
  801. package/dist/server/components/table-body/table-body.variables.js +2 -4
  802. package/dist/server/components/table-cell/index.js +9 -41
  803. package/dist/server/components/table-cell/table-cell.schema.js +2 -4
  804. package/dist/server/components/table-cell/table-cell.variables.js +2 -4
  805. package/dist/server/components/table-header/index.js +11 -84
  806. package/dist/server/components/table-header/table-header.schema.js +4 -6
  807. package/dist/server/components/table-header/table-header.variables.js +2 -4
  808. package/dist/server/components/table-header-cell/index.js +11 -82
  809. package/dist/server/components/table-header-cell/table-header-cell.schema.js +2 -4
  810. package/dist/server/components/table-header-cell/table-header-cell.variables.js +2 -4
  811. package/dist/server/components/table-row/index.js +13 -130
  812. package/dist/server/components/table-row/table-row.schema.js +4 -6
  813. package/dist/server/components/table-row/table-row.variables.js +2 -4
  814. package/dist/server/components/tabs/index.js +16 -379
  815. package/dist/server/components/tabs/tabs.schema.js +7 -4
  816. package/dist/server/components/tabs/tabs.variables.js +2 -4
  817. package/dist/server/components/tag-input/index.js +16 -6
  818. package/dist/server/components/tag-input/tag-input.schema.js +2 -4
  819. package/dist/server/components/tag-input/tag-input.variables.js +2 -4
  820. package/dist/server/components/textarea/index.js +12 -176
  821. package/dist/server/components/textarea/textarea.schema.js +2 -4
  822. package/dist/server/components/textarea/textarea.variables.js +2 -4
  823. package/dist/server/components/time-field/index.js +15 -0
  824. package/dist/server/components/time-field/time-field.schema.js +86 -0
  825. package/dist/server/components/time-field/time-field.variables.js +10 -0
  826. package/dist/server/components/timeline/index.js +7 -248
  827. package/dist/server/components/timeline/timeline.schema.js +2 -4
  828. package/dist/server/components/timeline/timeline.variables.js +2 -4
  829. package/dist/server/components/toast-region/index.js +10 -717
  830. package/dist/server/components/toast-region/toast-region.schema.js +2 -4
  831. package/dist/server/components/toast-region/toast-region.variables.js +2 -4
  832. package/dist/server/components/toggle/index.js +10 -47
  833. package/dist/server/components/toggle/toggle.schema.js +12 -5
  834. package/dist/server/components/toggle/toggle.variables.js +2 -4
  835. package/dist/server/components/toolbar/index.js +15 -534
  836. package/dist/server/components/toolbar/toolbar.schema.js +2 -4
  837. package/dist/server/components/toolbar/toolbar.variables.js +2 -4
  838. package/dist/server/components/tooltip/index.js +15 -267
  839. package/dist/server/components/tooltip/tooltip.schema.js +2 -4
  840. package/dist/server/components/tooltip/tooltip.variables.js +2 -4
  841. package/dist/server/components/transfer-list/index.js +8 -321
  842. package/dist/server/components/transfer-list/transfer-list.schema.js +3 -5
  843. package/dist/server/components/transfer-list/transfer-list.variables.js +2 -4
  844. package/dist/server/components/tree/index.js +16 -3353
  845. package/dist/server/components/tree/tree.schema.js +4 -6
  846. package/dist/server/components/tree/tree.variables.js +2 -4
  847. package/dist/server/components/tree-item/index.js +11 -675
  848. package/dist/server/components/tree-item/tree-item.schema.js +6 -8
  849. package/dist/server/components/tree-item/tree-item.variables.js +2 -4
  850. package/dist/server/components/typography/index.js +7 -61
  851. package/dist/server/components/typography/typography.schema.js +2 -4
  852. package/dist/server/components/typography/typography.variables.js +2 -4
  853. package/dist/server/components/virtual-list/index.js +14 -177
  854. package/dist/server/components/virtual-list/virtual-list.schema.js +2 -4
  855. package/dist/server/components/virtual-list/virtual-list.variables.js +2 -4
  856. package/dist/server/components/visually-hidden/index.js +9 -37
  857. package/dist/server/components/visually-hidden/visually-hidden.schema.js +2 -4
  858. package/dist/server/components/visually-hidden/visually-hidden.variables.js +2 -4
  859. package/dist/server/components/waveform/index.js +9 -871
  860. package/dist/server/components/waveform/waveform.schema.js +2 -4
  861. package/dist/server/components/waveform/waveform.variables.js +2 -4
  862. package/dist/server/editor/attach.d.ts +2 -2
  863. package/dist/server/editor/attach.js +10 -16
  864. package/dist/server/editor/editor.js +6 -6
  865. package/dist/server/editor/keymap-plugin.d.ts +2 -2
  866. package/dist/server/editor/keymap-plugin.js +4 -4
  867. package/dist/server/editor/types.d.ts +11 -11
  868. package/dist/server/highlighters/shiki/index.js +8 -13
  869. package/dist/server/index.js +729 -42315
  870. package/dist/server/index.server-04pgs1m4.js +9 -0
  871. package/dist/server/index.server-06ak422z.js +726 -0
  872. package/dist/server/index.server-09ky0qhy.js +9 -0
  873. package/dist/server/index.server-0a8m173j.js +73 -0
  874. package/dist/server/index.server-0ed43ctm.js +3834 -0
  875. package/dist/server/index.server-0rj7syca.js +271 -0
  876. package/dist/server/index.server-0tnw5ter.js +39 -0
  877. package/dist/server/index.server-1c79f4fe.js +38 -0
  878. package/dist/server/index.server-1gsgt31t.js +9 -0
  879. package/dist/server/index.server-1k7j69zg.js +20 -0
  880. package/dist/server/index.server-1nzyv1av.js +50 -0
  881. package/dist/server/index.server-1tp7nabp.js +98 -0
  882. package/dist/server/index.server-1vsv7ngz.js +106 -0
  883. package/dist/server/index.server-1x7gd5rm.js +55 -0
  884. package/dist/server/index.server-1yn62azq.js +145 -0
  885. package/dist/server/index.server-20y4mdhm.js +167 -0
  886. package/dist/server/index.server-24kf2kgd.js +9 -0
  887. package/dist/server/index.server-27c3ewc8.js +9 -0
  888. package/dist/server/index.server-2fa12eg1.js +153 -0
  889. package/dist/server/index.server-2fz89mxv.js +9 -0
  890. package/dist/server/index.server-2g8qr4nk.js +72 -0
  891. package/dist/server/index.server-2h3y9v3e.js +15 -0
  892. package/dist/server/index.server-2q8eszkm.js +319 -0
  893. package/dist/server/index.server-2sjf4r4j.js +1036 -0
  894. package/dist/server/index.server-2tr8ba51.js +114 -0
  895. package/dist/server/index.server-2ymxf0ra.js +71 -0
  896. package/dist/server/index.server-317enkqq.js +2 -0
  897. package/dist/server/index.server-324f5vcc.js +195 -0
  898. package/dist/server/index.server-338vqndh.js +9 -0
  899. package/dist/server/index.server-34p02y48.js +149 -0
  900. package/dist/server/index.server-36yahywm.js +423 -0
  901. package/dist/server/index.server-37x76zdn.js +6 -0
  902. package/dist/server/index.server-3cwyrz8f.js +84 -0
  903. package/dist/server/index.server-3f5f7jd4.js +371 -0
  904. package/dist/server/index.server-3fvz5gak.js +30 -0
  905. package/dist/server/index.server-3jz24pb5.js +38 -0
  906. package/dist/server/index.server-3mbgzhq8.js +59 -0
  907. package/dist/server/index.server-3zzwg4ew.js +60 -0
  908. package/dist/server/index.server-41003crj.js +125 -0
  909. package/dist/server/index.server-42qeekwc.js +10 -0
  910. package/dist/server/index.server-493m9fm5.js +14 -0
  911. package/dist/server/index.server-4jc5ny87.js +174 -0
  912. package/dist/server/index.server-4p5znv15.js +92 -0
  913. package/dist/server/index.server-4pv40879.js +68 -0
  914. package/dist/server/index.server-4pyw3ask.js +86 -0
  915. package/dist/server/index.server-4t03p6p4.js +113 -0
  916. package/dist/server/index.server-4wphqyck.js +73 -0
  917. package/dist/server/index.server-52fkd3c2.js +53 -0
  918. package/dist/server/index.server-5599w5gj.js +41 -0
  919. package/dist/server/index.server-578qndbg.js +221 -0
  920. package/dist/server/index.server-5bxfjsbc.js +74 -0
  921. package/dist/server/index.server-5h2t2v49.js +9 -0
  922. package/dist/server/index.server-5hvm9w79.js +9 -0
  923. package/dist/server/index.server-5kt7t4y4.js +69 -0
  924. package/dist/server/index.server-5qknw2zb.js +46 -0
  925. package/dist/server/index.server-5s9645md.js +97 -0
  926. package/dist/server/index.server-5v74e1fz.js +29 -0
  927. package/dist/server/index.server-5zbf7wta.js +4463 -0
  928. package/dist/server/index.server-61g7sxkr.js +191 -0
  929. package/dist/server/index.server-62gb3jcw.js +9 -0
  930. package/dist/server/index.server-6492n4zt.js +107 -0
  931. package/dist/server/index.server-64bppvdn.js +9 -0
  932. package/dist/server/index.server-68hbjs6n.js +1642 -0
  933. package/dist/server/index.server-6dfav8r0.js +142 -0
  934. package/dist/server/index.server-6evw00zj.js +245 -0
  935. package/dist/server/index.server-6jnnp1s8.js +32 -0
  936. package/dist/server/index.server-6mdy1500.js +31 -0
  937. package/dist/server/index.server-6pdmym90.js +11 -0
  938. package/dist/server/index.server-6rw2v7f4.js +457 -0
  939. package/dist/server/index.server-6tc4k9n2.js +281 -0
  940. package/dist/server/index.server-6zgzghtm.js +157 -0
  941. package/dist/server/index.server-70c570r3.js +109 -0
  942. package/dist/server/index.server-76y146qj.js +141 -0
  943. package/dist/server/index.server-77gpgvab.js +68 -0
  944. package/dist/server/index.server-78d33trm.js +88 -0
  945. package/dist/server/index.server-7d9fgwdv.js +284 -0
  946. package/dist/server/index.server-7pdq2w0a.js +17 -0
  947. package/dist/server/index.server-7ptnbrtg.js +9 -0
  948. package/dist/server/index.server-7pxzf0ch.js +9 -0
  949. package/dist/server/index.server-7wsshxkg.js +166 -0
  950. package/dist/server/index.server-7yg3rd66.js +126 -0
  951. package/dist/server/index.server-8bqpdv5z.js +63 -0
  952. package/dist/server/index.server-8cvkc386.js +271 -0
  953. package/dist/server/index.server-8d3tttbj.js +31 -0
  954. package/dist/server/index.server-8gakk9d5.js +168 -0
  955. package/dist/server/index.server-8hdvr9bt.js +18 -0
  956. package/dist/server/index.server-8jm0z4vp.js +38 -0
  957. package/dist/server/index.server-8ysrmagt.js +9 -0
  958. package/dist/server/index.server-92ae8fk6.js +83 -0
  959. package/dist/server/index.server-93xr1xx4.js +192 -0
  960. package/dist/server/index.server-94b7tjs5.js +27 -0
  961. package/dist/server/index.server-94p65bqz.js +38 -0
  962. package/dist/server/index.server-94wsps5p.js +9 -0
  963. package/dist/server/index.server-96fg085d.js +9 -0
  964. package/dist/server/index.server-9cyktwxj.js +9 -0
  965. package/dist/server/index.server-9kas8kq5.js +462 -0
  966. package/dist/server/index.server-9pbg150a.js +9 -0
  967. package/dist/server/index.server-9r0zg6d9.js +102 -0
  968. package/dist/server/index.server-9r6rts7c.js +2 -0
  969. package/dist/server/index.server-9vqgsfds.js +9 -0
  970. package/dist/server/index.server-9w7qdn8h.js +22 -0
  971. package/dist/server/index.server-9xyn021z.js +9 -0
  972. package/dist/server/index.server-abm21gz1.js +41 -0
  973. package/dist/server/index.server-adgnf7ez.js +190 -0
  974. package/dist/server/index.server-ah91j894.js +564 -0
  975. package/dist/server/index.server-ajzk1x9v.js +224 -0
  976. package/dist/server/index.server-amfq2v2p.js +12 -0
  977. package/dist/server/index.server-ans2v9y9.js +45 -0
  978. package/dist/server/index.server-anyk9x1r.js +282 -0
  979. package/dist/server/index.server-att810se.js +362 -0
  980. package/dist/server/index.server-awaramqw.js +277 -0
  981. package/dist/server/index.server-axzcx0e9.js +9 -0
  982. package/dist/server/index.server-b14k8cq5.js +458 -0
  983. package/dist/server/index.server-b54c3kn2.js +22 -0
  984. package/dist/server/index.server-bfkka7x4.js +2 -0
  985. package/dist/server/index.server-bgcpy5vk.js +47 -0
  986. package/dist/server/index.server-bktae19b.js +75 -0
  987. package/dist/server/index.server-bkz7h7jx.js +100 -0
  988. package/dist/server/index.server-br63fj2h.js +9 -0
  989. package/dist/server/index.server-bs46fdxd.js +54 -0
  990. package/dist/server/index.server-bte0dfkh.js +30 -0
  991. package/dist/server/index.server-bxmyxbfm.js +95 -0
  992. package/dist/server/index.server-c29mzp9r.js +48 -0
  993. package/dist/server/index.server-c3gbtj71.js +65 -0
  994. package/dist/server/index.server-c5jyrshr.js +9 -0
  995. package/dist/server/index.server-c7t8taqa.js +23 -0
  996. package/dist/server/index.server-chh0fzxj.js +8 -0
  997. package/dist/server/index.server-chj73na5.js +655 -0
  998. package/dist/server/index.server-cjkcwy18.js +9 -0
  999. package/dist/server/index.server-d2e6xxc3.js +94 -0
  1000. package/dist/server/index.server-d63pwytk.js +85 -0
  1001. package/dist/server/index.server-d6peankz.js +563 -0
  1002. package/dist/server/index.server-dbkczma7.js +83 -0
  1003. package/dist/server/index.server-dezmeg8v.js +244 -0
  1004. package/dist/server/index.server-dpnwk6w4.js +9 -0
  1005. package/dist/server/index.server-dr17jbt2.js +162 -0
  1006. package/dist/server/index.server-dsf1bjt5.js +9 -0
  1007. package/dist/server/index.server-dt2rpjtk.js +90 -0
  1008. package/dist/server/index.server-dxkrc7sf.js +9 -0
  1009. package/dist/server/index.server-dyryxwe8.js +67 -0
  1010. package/dist/server/index.server-e10j3s54.js +93 -0
  1011. package/dist/server/index.server-e1gjs02r.js +147 -0
  1012. package/dist/server/index.server-e39mgany.js +9 -0
  1013. package/dist/server/index.server-e967et3j.js +77 -0
  1014. package/dist/server/index.server-e9g5b01k.js +9 -0
  1015. package/dist/server/index.server-ecv75266.js +9 -0
  1016. package/dist/server/index.server-eeq2c9pm.js +78 -0
  1017. package/dist/server/index.server-eknv9erd.js +169 -0
  1018. package/dist/server/index.server-emt82wev.js +447 -0
  1019. package/dist/server/index.server-en97tw08.js +9 -0
  1020. package/dist/server/index.server-eq2ca4j4.js +105 -0
  1021. package/dist/server/index.server-eqa0xxbt.js +72 -0
  1022. package/dist/server/index.server-et3p2cfq.js +14 -0
  1023. package/dist/server/index.server-ezn8d6zv.js +285 -0
  1024. package/dist/server/index.server-f1j0pjt8.js +99 -0
  1025. package/dist/server/index.server-f42dvea7.js +294 -0
  1026. package/dist/server/index.server-fankxd0h.js +362 -0
  1027. package/dist/server/index.server-fcgycatb.js +9 -0
  1028. package/dist/server/index.server-fdmb571x.js +116 -0
  1029. package/dist/server/index.server-fgpfrjbw.js +9 -0
  1030. package/dist/server/index.server-fhnhfrf4.js +9 -0
  1031. package/dist/server/index.server-fjzvm2c4.js +175 -0
  1032. package/dist/server/index.server-fn57dr4e.js +21 -0
  1033. package/dist/server/index.server-fnj6xyr0.js +1028 -0
  1034. package/dist/server/index.server-fy9eb0xp.js +101 -0
  1035. package/dist/server/index.server-fz2jddt8.js +613 -0
  1036. package/dist/server/index.server-g75bhbvb.js +2 -0
  1037. package/dist/server/index.server-g8kdhzf2.js +146 -0
  1038. package/dist/server/index.server-gae09raw.js +75 -0
  1039. package/dist/server/index.server-gbzsb04q.js +71 -0
  1040. package/dist/server/index.server-ge07r1p8.js +8 -0
  1041. package/dist/server/index.server-ghvqpc50.js +71 -0
  1042. package/dist/server/index.server-gj3eb1ce.js +23 -0
  1043. package/dist/server/index.server-grb4gyta.js +210 -0
  1044. package/dist/server/index.server-gtsdsv75.js +230 -0
  1045. package/dist/server/index.server-gw4atb82.js +216 -0
  1046. package/dist/server/index.server-gxhj1st8.js +9 -0
  1047. package/dist/server/index.server-h1vdh0nc.js +107 -0
  1048. package/dist/server/index.server-h54v6c32.js +21 -0
  1049. package/dist/server/index.server-h68sx7bz.js +37 -0
  1050. package/dist/server/index.server-hmw4afhn.js +25 -0
  1051. package/dist/server/index.server-hn1n8dwr.js +9 -0
  1052. package/dist/server/index.server-htmd13mc.js +2 -0
  1053. package/dist/server/index.server-hxz0tnr9.js +57 -0
  1054. package/dist/server/index.server-hzamrkgk.js +256 -0
  1055. package/dist/server/index.server-j2kh5fhy.js +9 -0
  1056. package/dist/server/index.server-jda8tyzf.js +53 -0
  1057. package/dist/server/index.server-jev5qwr3.js +9 -0
  1058. package/dist/server/index.server-jh1te4hy.js +9 -0
  1059. package/dist/server/index.server-jhvs517p.js +384 -0
  1060. package/dist/server/index.server-jky3p49s.js +9 -0
  1061. package/dist/server/index.server-js3eva86.js +8 -0
  1062. package/dist/server/index.server-jwwwgx0d.js +9 -0
  1063. package/dist/server/index.server-jx2qn5an.js +9 -0
  1064. package/dist/server/index.server-k02nvs46.js +50 -0
  1065. package/dist/server/index.server-k15sq5qf.js +294 -0
  1066. package/dist/server/index.server-k1hd2e0x.js +9 -0
  1067. package/dist/server/index.server-k454ba7j.js +291 -0
  1068. package/dist/server/index.server-k5fmb7tw.js +35 -0
  1069. package/dist/server/index.server-k7py0pfc.js +151 -0
  1070. package/dist/server/index.server-kb6w1a7c.js +27 -0
  1071. package/dist/server/index.server-kjtb596w.js +163 -0
  1072. package/dist/server/index.server-kq859dmc.js +1543 -0
  1073. package/dist/server/index.server-kykvc153.js +3393 -0
  1074. package/dist/server/index.server-m6phax03.js +137 -0
  1075. package/dist/server/index.server-m8d6yz6b.js +47 -0
  1076. package/dist/server/index.server-m9axazfh.js +9 -0
  1077. package/dist/server/index.server-m9n4b1bv.js +9 -0
  1078. package/dist/server/index.server-mc6vc1pm.js +63 -0
  1079. package/dist/server/index.server-mm4g29h0.js +85 -0
  1080. package/dist/server/index.server-msf37rwk.js +9 -0
  1081. package/dist/server/index.server-n3zbnw3w.js +194 -0
  1082. package/dist/server/index.server-n4zvbkvq.js +9 -0
  1083. package/dist/server/index.server-n562tmxd.js +197 -0
  1084. package/dist/server/index.server-n86bmg5s.js +393 -0
  1085. package/dist/server/index.server-najpstc3.js +224 -0
  1086. package/dist/server/index.server-nav1z5d8.js +59 -0
  1087. package/dist/server/index.server-nhnvxwz3.js +9 -0
  1088. package/dist/server/index.server-nj8mebze.js +14 -0
  1089. package/dist/server/index.server-nvktnr2d.js +2311 -0
  1090. package/dist/server/index.server-nw1n32dx.js +100 -0
  1091. package/dist/server/index.server-nwjjp9t6.js +71 -0
  1092. package/dist/server/index.server-nxx9ckb3.js +123 -0
  1093. package/dist/server/index.server-ny1hfypg.js +1138 -0
  1094. package/dist/server/index.server-nzjy03c0.js +189 -0
  1095. package/dist/server/index.server-p045dgmk.js +49 -0
  1096. package/dist/server/index.server-p3aw22qv.js +40 -0
  1097. package/dist/server/index.server-p617pg5j.js +9 -0
  1098. package/dist/server/index.server-p78n7r6g.js +37 -0
  1099. package/dist/server/index.server-pa4qcv70.js +9 -0
  1100. package/dist/server/index.server-pehx7yrn.js +72 -0
  1101. package/dist/server/index.server-pg65gmdb.js +117 -0
  1102. package/dist/server/index.server-ps1p8xrf.js +9 -0
  1103. package/dist/server/index.server-q160a4x5.js +9 -0
  1104. package/dist/server/index.server-q4qh8a6x.js +126 -0
  1105. package/dist/server/index.server-q550gsbe.js +83 -0
  1106. package/dist/server/index.server-qjdkp02z.js +117 -0
  1107. package/dist/server/index.server-qkfd0qa7.js +2 -0
  1108. package/dist/server/index.server-qkwnbj88.js +149 -0
  1109. package/dist/server/index.server-qq12yqwb.js +76 -0
  1110. package/dist/server/index.server-qreadmdy.js +85 -0
  1111. package/dist/server/index.server-qwn3yfyq.js +74 -0
  1112. package/dist/server/index.server-qxd1ej6r.js +161 -0
  1113. package/dist/server/index.server-qz23rh6j.js +34 -0
  1114. package/dist/server/index.server-r0wzpqh7.js +113 -0
  1115. package/dist/server/index.server-r30hm3ep.js +159 -0
  1116. package/dist/server/index.server-rf67m8v5.js +2 -0
  1117. package/dist/server/index.server-rpenapvz.js +57 -0
  1118. package/dist/server/index.server-rsjrjd13.js +223 -0
  1119. package/dist/server/index.server-s0xz0vmh.js +117 -0
  1120. package/dist/server/index.server-s84epxbr.js +134 -0
  1121. package/dist/server/index.server-sg3pthbn.js +81 -0
  1122. package/dist/server/index.server-sk2damtz.js +150 -0
  1123. package/dist/server/index.server-sz7qa1vs.js +9 -0
  1124. package/dist/server/index.server-sz8sxsj6.js +15 -0
  1125. package/dist/server/index.server-t437b1td.js +71 -0
  1126. package/dist/server/index.server-t9a3m15z.js +691 -0
  1127. package/dist/server/index.server-tesf3qd9.js +446 -0
  1128. package/dist/server/index.server-thp727nz.js +9 -0
  1129. package/dist/server/index.server-tjbpdh7b.js +47 -0
  1130. package/dist/server/index.server-tm012b9x.js +421 -0
  1131. package/dist/server/index.server-tp1j7few.js +53 -0
  1132. package/dist/server/index.server-tys344bj.js +61 -0
  1133. package/dist/server/index.server-v5qqrjej.js +30 -0
  1134. package/dist/server/index.server-v6kp8px5.js +68 -0
  1135. package/dist/server/index.server-va9x168w.js +30 -0
  1136. package/dist/server/index.server-vbnc9fac.js +377 -0
  1137. package/dist/server/index.server-vmsmaztb.js +35 -0
  1138. package/dist/server/index.server-vqgwwdzz.js +9 -0
  1139. package/dist/server/index.server-vqhdvsx5.js +151 -0
  1140. package/dist/server/index.server-vzvz108c.js +9 -0
  1141. package/dist/server/index.server-w6am2dxc.js +12 -0
  1142. package/dist/server/index.server-weae7gs2.js +15 -0
  1143. package/dist/server/index.server-wj91h1wk.js +666 -0
  1144. package/dist/server/index.server-wqkzae6a.js +41 -0
  1145. package/dist/server/index.server-wrx4sd6j.js +9 -0
  1146. package/dist/server/index.server-wrz6jqw1.js +59 -0
  1147. package/dist/server/index.server-x83rwh0m.js +49 -0
  1148. package/dist/server/index.server-xb4r3skb.js +9 -0
  1149. package/dist/server/index.server-xecgaeth.js +102 -0
  1150. package/dist/server/index.server-xjmx6rm8.js +1162 -0
  1151. package/dist/server/index.server-xmphf30z.js +9 -0
  1152. package/dist/server/index.server-xnh932xs.js +85 -0
  1153. package/dist/server/index.server-xp53vmj5.js +129 -0
  1154. package/dist/server/index.server-xpghbgpz.js +22 -0
  1155. package/dist/server/index.server-xqmtg1tq.js +9 -0
  1156. package/dist/server/index.server-xxddjkmm.js +9 -0
  1157. package/dist/server/index.server-y0q949bm.js +27 -0
  1158. package/dist/server/index.server-y16zcjfw.js +38 -0
  1159. package/dist/server/index.server-y3r39npa.js +54 -0
  1160. package/dist/server/index.server-y3xyech8.js +9 -0
  1161. package/dist/server/index.server-y68tcxw3.js +52 -0
  1162. package/dist/server/index.server-ya3f9g84.js +9 -0
  1163. package/dist/server/index.server-yaejrcc0.js +53 -0
  1164. package/dist/server/index.server-ygk52jt8.js +62 -0
  1165. package/dist/server/index.server-yheh2spx.js +66 -0
  1166. package/dist/server/index.server-yr9zjj1r.js +31 -0
  1167. package/dist/server/index.server-ytdfzwh1.js +56 -0
  1168. package/dist/server/index.server-z63wz94j.js +9 -0
  1169. package/dist/server/index.server-z7nvkz8v.js +8 -0
  1170. package/dist/server/index.server-zbcza3tc.js +62 -0
  1171. package/dist/server/index.server-zbf09rvx.js +111 -0
  1172. package/dist/server/index.server-zcfnwc9r.js +37 -0
  1173. package/dist/server/index.server-zdg2zpx1.js +28 -0
  1174. package/dist/server/index.server-zf0r6cj7.js +9 -0
  1175. package/dist/server/index.server-zm9kbbpp.js +9 -0
  1176. package/dist/server/index.server-zt7rjnct.js +100 -0
  1177. package/dist/server/index.server-zwjp26z8.js +21 -0
  1178. package/dist/server/styles/base-guard.js +6 -8
  1179. package/dist/utilities/attachments.d.ts +6 -6
  1180. package/dist/utilities/change-tracker.svelte.d.ts +1 -20
  1181. package/dist/utilities/change-tracker.types.d.ts +20 -0
  1182. package/dist/utilities/document-order.d.ts +0 -16
  1183. package/dist/utilities/sortable-controller.svelte.d.ts +1 -47
  1184. package/dist/utilities/sortable-controller.types.d.ts +48 -0
  1185. package/dist/utilities/typeahead.d.ts +13 -0
  1186. package/dist/utilities/use-announcer.svelte.d.ts +1 -24
  1187. package/dist/utilities/use-announcer.types.d.ts +24 -0
  1188. package/dist/utilities/use-history.svelte.d.ts +1 -52
  1189. package/dist/utilities/use-history.types.d.ts +52 -0
  1190. package/dist/utilities/use-intersection.svelte.d.ts +2 -13
  1191. package/dist/utilities/use-intersection.types.d.ts +13 -0
  1192. package/dist/utilities/use-mutation-observer.svelte.d.ts +2 -21
  1193. package/dist/utilities/use-mutation-observer.types.d.ts +21 -0
  1194. package/dist/utilities/use-reduced-motion.svelte.d.ts +1 -4
  1195. package/dist/utilities/use-reduced-motion.types.d.ts +4 -0
  1196. package/dist/utilities/use-resize-observer.svelte.d.ts +2 -9
  1197. package/dist/utilities/use-resize-observer.types.d.ts +9 -0
  1198. package/dist/utilities/value-change.d.ts +2 -0
  1199. package/package.json +439 -233
  1200. package/src/_internal/locale-context.ts +21 -0
  1201. package/src/_internal/text-direction.ts +213 -0
  1202. package/src/_internal/tree-context.ts +2 -0
  1203. package/src/_internal/tree-registry.svelte.ts +13 -15
  1204. package/src/components/_internal/create-command-list-state.svelte.ts +171 -0
  1205. package/src/components/_internal/create-sliding-dialog-state.svelte.ts +170 -0
  1206. package/src/components/_radio/README.md +1 -1
  1207. package/src/components/_sortable-item.svelte +1 -1
  1208. package/src/components/access-gate/access-gate-inline.svelte +3 -1
  1209. package/src/components/alert/README.md +8 -8
  1210. package/src/components/alert/alert.css +1 -1
  1211. package/src/components/alert/alert.examples.json +4 -4
  1212. package/src/components/alert/alert.svelte +3 -5
  1213. package/src/components/alert/alert.types.ts +4 -4
  1214. package/src/components/approval-card/README.md +92 -0
  1215. package/src/components/approval-card/approval-card-state.ts +24 -0
  1216. package/src/components/approval-card/approval-card.css +239 -0
  1217. package/src/components/approval-card/approval-card.examples.json +25 -0
  1218. package/src/components/approval-card/approval-card.svelte +583 -0
  1219. package/src/components/approval-card/approval-card.types.ts +180 -0
  1220. package/src/components/approval-card/index.ts +16 -0
  1221. package/src/components/autocomplete/autocomplete.css +12 -1
  1222. package/src/components/autocomplete/autocomplete.svelte +68 -29
  1223. package/src/components/badge/README.md +8 -7
  1224. package/src/components/badge/badge.svelte +80 -3
  1225. package/src/components/badge/badge.types.ts +36 -13
  1226. package/src/components/badge/index.ts +1 -1
  1227. package/src/components/banner/README.md +2 -2
  1228. package/src/components/banner/banner.examples.json +19 -0
  1229. package/src/components/banner/banner.svelte +2 -2
  1230. package/src/components/banner/banner.types.ts +1 -1
  1231. package/src/components/button/button.css +1 -1
  1232. package/src/components/callout/callout.examples.json +19 -0
  1233. package/src/components/capability-gate/README.md +3 -3
  1234. package/src/components/capability-gate/capability-gate.css +15 -2
  1235. package/src/components/capability-gate/capability-gate.examples.json +1 -1
  1236. package/src/components/capability-gate/capability-gate.svelte +7 -7
  1237. package/src/components/capability-gate/capability-gate.types.ts +6 -6
  1238. package/src/components/chat/README.md +6 -10
  1239. package/src/components/chat/chat.examples.json +8 -8
  1240. package/src/components/chat/chat.types.ts +31 -15
  1241. package/src/components/chat/container/chat-events.ts +2 -2
  1242. package/src/components/chat/container/chat-history-trigger.svelte +9 -1
  1243. package/src/components/chat/container/chat.svelte +47 -46
  1244. package/src/components/chat/container/use-chat-scroll-state.svelte.ts +21 -18
  1245. package/src/components/chat/container/use-chat-unread-state.svelte.ts +19 -19
  1246. package/src/components/chat/index.ts +1 -1
  1247. package/src/components/chat/input/chat-input.svelte +35 -13
  1248. package/src/components/chat/message/image-lightbox.svelte +38 -15
  1249. package/src/components/chat/message/message-attachments.svelte +1 -1
  1250. package/src/components/chat/message/parts/reasoning-part.svelte +8 -0
  1251. package/src/components/chat/message/parts/tool-approval-part.svelte +22 -9
  1252. package/src/components/chat-conversation-list/chat-conversation-list.css +13 -0
  1253. package/src/components/checkbox/README.md +1 -0
  1254. package/src/components/checkbox/checkbox.css +3 -0
  1255. package/src/components/checkbox/checkbox.svelte +44 -2
  1256. package/src/components/checkbox/checkbox.types.ts +2 -0
  1257. package/src/components/checkbox-group/README.md +2 -2
  1258. package/src/components/checkbox-group/checkbox-group.css +3 -0
  1259. package/src/components/checkbox-group/checkbox-group.examples.json +13 -0
  1260. package/src/components/checkbox-group/checkbox-group.svelte +23 -2
  1261. package/src/components/checkbox-group/checkbox-group.types.ts +12 -7
  1262. package/src/components/choice-grid-item/choice-grid-item.svelte +1 -1
  1263. package/src/components/click-away-listener/README.md +2 -2
  1264. package/src/components/click-away-listener/click-away-listener.examples.json +1 -1
  1265. package/src/components/click-away-listener/click-away-listener.svelte +2 -2
  1266. package/src/components/click-away-listener/click-away-listener.types.ts +3 -3
  1267. package/src/components/code-block/code-block.css +4 -3
  1268. package/src/components/collapsible/README.md +2 -2
  1269. package/src/components/collapsible/collapsible.svelte +2 -2
  1270. package/src/components/collapsible/collapsible.types.ts +5 -2
  1271. package/src/components/color-field/README.md +18 -18
  1272. package/src/components/color-field/color-field.svelte +2 -2
  1273. package/src/components/color-field/color-field.types.ts +2 -2
  1274. package/src/components/color-swatch-picker/color-swatch-picker.examples.json +13 -0
  1275. package/src/components/color-swatch-picker/color-swatch-picker.svelte +38 -24
  1276. package/src/components/combobox/README.md +3 -1
  1277. package/src/components/combobox/combobox.svelte +93 -17
  1278. package/src/components/combobox/combobox.types.ts +9 -1
  1279. package/src/components/command-item/README.md +13 -11
  1280. package/src/components/command-item/command-item.css +10 -0
  1281. package/src/components/command-item/command-item.svelte +11 -0
  1282. package/src/components/command-item/command-item.types.ts +4 -0
  1283. package/src/components/command-menu/command-menu.svelte +21 -102
  1284. package/src/components/command-palette/README.md +12 -12
  1285. package/src/components/command-palette/command-palette.examples.json +3 -3
  1286. package/src/components/command-palette/command-palette.svelte +17 -134
  1287. package/src/components/command-palette/command-palette.types.ts +1 -2
  1288. package/src/components/context-menu/context-menu.context.ts +2 -0
  1289. package/src/components/context-menu/context-menu.svelte +35 -9
  1290. package/src/components/context-menu-trigger/context-menu-trigger.svelte +9 -6
  1291. package/src/components/copy-button/copy-button.svelte +4 -3
  1292. package/src/components/data-grid/README.md +3 -3
  1293. package/src/components/data-grid/_internal/column-model.svelte.ts +2 -0
  1294. package/src/components/data-grid/data-grid.css +25 -0
  1295. package/src/components/data-grid/data-grid.svelte +7 -7
  1296. package/src/components/data-grid/data-grid.types.ts +8 -2
  1297. package/src/components/data-list/README.md +9 -9
  1298. package/src/components/data-list/data-list.examples.json +1 -1
  1299. package/src/components/data-list/data-list.svelte +3 -9
  1300. package/src/components/data-list/data-list.types.ts +5 -9
  1301. package/src/components/data-table/README.md +21 -15
  1302. package/src/components/data-table/data-table.css +33 -0
  1303. package/src/components/data-table/data-table.svelte +170 -8
  1304. package/src/components/data-table/data-table.types.ts +27 -0
  1305. package/src/components/data-table/index.ts +6 -1
  1306. package/src/components/date-range-field/README.md +9 -8
  1307. package/src/components/date-range-field/date-range-field.svelte +193 -19
  1308. package/src/components/date-range-field/date-range-field.types.ts +16 -10
  1309. package/src/components/date-range-field/index.ts +1 -0
  1310. package/src/components/diff-viewer/diff-front-matter.svelte +2 -2
  1311. package/src/components/diff-viewer/diff-line.svelte +32 -8
  1312. package/src/components/diff-viewer/diff-toolbar.svelte +3 -3
  1313. package/src/components/diff-viewer/diff-viewer.svelte +4 -4
  1314. package/src/components/diff-viewer/diff-viewer.types.ts +3 -3
  1315. package/src/components/diff-viewer/index.ts +1 -1
  1316. package/src/components/drawer/drawer.svelte +26 -145
  1317. package/src/components/dropdown/dropdown.css +7 -1
  1318. package/src/components/dropdown/dropdown.types.ts +3 -0
  1319. package/src/components/dropdown-group/README.md +6 -6
  1320. package/src/components/dropdown-group/dropdown-group.svelte +8 -8
  1321. package/src/components/dropdown-group/dropdown-group.types.ts +4 -4
  1322. package/src/components/dropdown-item/README.md +12 -10
  1323. package/src/components/dropdown-item/dropdown-item.svelte +16 -11
  1324. package/src/components/dropdown-item/dropdown-item.types.ts +5 -0
  1325. package/src/components/dropdown-menu/dropdown-menu.svelte +73 -9
  1326. package/src/components/dropdown-trigger/dropdown-trigger.svelte +4 -6
  1327. package/src/components/event-stream-viewer/README.md +38 -16
  1328. package/src/components/event-stream-viewer/event-stream-viewer-keys.ts +74 -0
  1329. package/src/components/event-stream-viewer/event-stream-viewer.css +46 -0
  1330. package/src/components/event-stream-viewer/event-stream-viewer.examples.json +6 -0
  1331. package/src/components/event-stream-viewer/event-stream-viewer.svelte +262 -69
  1332. package/src/components/event-stream-viewer/event-stream-viewer.types.ts +130 -3
  1333. package/src/components/event-stream-viewer/index.ts +6 -0
  1334. package/src/components/experimental/json-viewer/index.ts +3 -1
  1335. package/src/components/experimental/message/index.ts +3 -1
  1336. package/src/components/faceted-filter-bar/faceted-filter-bar.css +9 -0
  1337. package/src/components/faceted-filter-bar/faceted-filter-bar.svelte +31 -5
  1338. package/src/components/file-upload/file-upload.css +5 -5
  1339. package/src/components/file-upload/file-upload.examples.json +13 -0
  1340. package/src/components/floating-action-button/README.md +9 -9
  1341. package/src/components/floating-action-button/floating-action-button.css +22 -22
  1342. package/src/components/floating-action-button/floating-action-button.examples.json +1 -1
  1343. package/src/components/floating-action-button/floating-action-button.svelte +7 -7
  1344. package/src/components/floating-action-button/floating-action-button.types.ts +21 -21
  1345. package/src/components/floating-action-button/index.ts +1 -1
  1346. package/src/components/form-field/form-field.css +3 -13
  1347. package/src/components/form-field/form-field.svelte +4 -1
  1348. package/src/components/hover-card/hover-card.svelte +6 -7
  1349. package/src/components/image/image.examples.json +13 -0
  1350. package/src/components/input/README.md +16 -15
  1351. package/src/components/input/input.examples.json +1 -1
  1352. package/src/components/input/input.svelte +65 -28
  1353. package/src/components/input/input.types.ts +2 -0
  1354. package/src/components/invocation-rule-builder/README.md +14 -14
  1355. package/src/components/invocation-rule-builder/index.ts +1 -0
  1356. package/src/components/invocation-rule-builder/invocation-rule-builder.css +63 -6
  1357. package/src/components/invocation-rule-builder/invocation-rule-builder.svelte +73 -16
  1358. package/src/components/invocation-rule-builder/invocation-rule-builder.types.ts +99 -8
  1359. package/src/components/json-schema-editor/diff-view.svelte +1 -1
  1360. package/src/components/json-schema-editor/form-view.svelte +4 -2
  1361. package/src/components/json-schema-editor/json-schema-editor-impl.svelte +30 -18
  1362. package/src/components/json-schema-editor/json-schema-editor-state.svelte.ts +3 -20
  1363. package/src/components/json-schema-editor/json-schema-editor-state.types.ts +21 -0
  1364. package/src/components/json-schema-editor/json-schema-editor.css +6 -1
  1365. package/src/components/json-schema-editor/json-schema-toolbar.svelte +7 -1
  1366. package/src/components/json-schema-editor/json-view.svelte +2 -2
  1367. package/src/components/json-schema-editor/property-editor.svelte +38 -2
  1368. package/src/components/json-schema-editor/property-list-validation.ts +10 -0
  1369. package/src/components/json-schema-editor/property-list.svelte +48 -3
  1370. package/src/components/json-viewer/_json-viewer-node.svelte +55 -9
  1371. package/src/components/json-viewer/json-viewer.css +11 -0
  1372. package/src/components/json-viewer/json-viewer.svelte +63 -1
  1373. package/src/components/kanban-board/kanban-board.css +56 -3
  1374. package/src/components/kanban-board/kanban-board.svelte +10 -3
  1375. package/src/components/keyboard-shortcuts/keyboard-shortcuts.css +2 -2
  1376. package/src/components/keyboard-shortcuts/keyboard-shortcuts.svelte +1 -1
  1377. package/src/components/label/README.md +1 -1
  1378. package/src/components/label/label.css +2 -9
  1379. package/src/components/label/label.svelte +4 -2
  1380. package/src/components/load-more/README.md +4 -4
  1381. package/src/components/load-more/load-more.css +13 -5
  1382. package/src/components/load-more/load-more.examples.json +2 -2
  1383. package/src/components/load-more/load-more.svelte +4 -4
  1384. package/src/components/load-more/load-more.types.ts +3 -3
  1385. package/src/components/locale-provider/README.md +43 -0
  1386. package/src/components/locale-provider/index.ts +5 -0
  1387. package/src/components/locale-provider/locale-provider.svelte +40 -0
  1388. package/src/components/locale-provider/locale-provider.types.ts +21 -0
  1389. package/src/components/markdown-editor/README.md +3 -3
  1390. package/src/components/markdown-editor/editor-toolbar/editor-toolbar.svelte +5 -2
  1391. package/src/components/markdown-editor/editor-toolbar/link-popover.svelte +13 -0
  1392. package/src/components/markdown-editor/editor-toolbar/toolbar-dropdown.svelte +2 -0
  1393. package/src/components/markdown-editor/markdown-editor.svelte +14 -12
  1394. package/src/components/markdown-editor/markdown-editor.types.ts +4 -4
  1395. package/src/components/masonry/README.md +7 -7
  1396. package/src/components/masonry/masonry.types.ts +24 -2
  1397. package/src/components/matrix-chart/matrix-chart.svelte +7 -21
  1398. package/src/components/media-controls/README.md +3 -3
  1399. package/src/components/media-controls/media-controls.css +15 -4
  1400. package/src/components/media-controls/media-controls.examples.json +1 -1
  1401. package/src/components/media-controls/media-controls.svelte +6 -6
  1402. package/src/components/media-controls/media-controls.types.ts +10 -7
  1403. package/src/components/menu-bar/index.ts +4 -1
  1404. package/src/components/menu-bar/menu-bar.css +11 -0
  1405. package/src/components/menu-bar/menu-bar.svelte +329 -13
  1406. package/src/components/navigation-bar/README.md +1 -1
  1407. package/src/components/navigation-bar/navigation-bar.examples.json +1 -1
  1408. package/src/components/navigation-bar/navigation-bar.svelte +2 -2
  1409. package/src/components/navigation-bar/navigation-bar.types.ts +1 -1
  1410. package/src/components/number-input/README.md +18 -18
  1411. package/src/components/number-input/number-input.examples.json +13 -0
  1412. package/src/components/number-input/number-input.svelte +77 -38
  1413. package/src/components/number-input/number-input.types.ts +15 -5
  1414. package/src/components/pagination/README.md +3 -1
  1415. package/src/components/payload-inspector/README.md +11 -11
  1416. package/src/components/payload-inspector/index.ts +2 -0
  1417. package/src/components/payload-inspector/payload-inspector.css +6 -0
  1418. package/src/components/payload-inspector/payload-inspector.svelte +22 -4
  1419. package/src/components/payload-inspector/payload-inspector.types.ts +54 -3
  1420. package/src/components/permission-matrix/permission-matrix.css +10 -0
  1421. package/src/components/phone-input/README.md +1 -1
  1422. package/src/components/phone-input/phone-input.svelte +7 -1
  1423. package/src/components/phone-input/phone-input.types.ts +3 -2
  1424. package/src/components/pin-input/README.md +19 -19
  1425. package/src/components/pin-input/pin-input.svelte +16 -12
  1426. package/src/components/pin-input/pin-input.types.ts +10 -1
  1427. package/src/components/portal/portal.utilities.svelte.ts +4 -1
  1428. package/src/components/pricing-card/pricing-card.svelte +26 -1
  1429. package/src/components/radio-group/README.md +12 -12
  1430. package/src/components/radio-group/radio-group.css +3 -0
  1431. package/src/components/radio-group/radio-group.examples.json +3 -3
  1432. package/src/components/radio-group/radio-group.svelte +22 -2
  1433. package/src/components/radio-group/radio-group.types.ts +6 -2
  1434. package/src/components/rating/README.md +18 -18
  1435. package/src/components/rating/rating.svelte +0 -8
  1436. package/src/components/rating/rating.types.ts +6 -0
  1437. package/src/components/review-editor/comment-list.svelte +1 -1
  1438. package/src/components/review-editor/index.ts +1 -1
  1439. package/src/components/review-editor/review-editor-controls.svelte +8 -3
  1440. package/src/components/review-editor/review-editor-impl.svelte +11 -7
  1441. package/src/components/review-editor/review-editor-selection-types.ts +1 -1
  1442. package/src/components/review-editor/review-editor-selection.svelte.ts +1 -1
  1443. package/src/components/review-editor/review-editor-state.svelte.ts +1 -1
  1444. package/src/components/review-editor/review-editor-threads.svelte.ts +2 -2
  1445. package/src/components/review-editor/review-editor.types.ts +91 -3
  1446. package/src/components/review-editor/thread-popover.svelte +1 -1
  1447. package/src/components/run-step-timeline/README.md +53 -6
  1448. package/src/components/run-step-timeline/index.ts +6 -0
  1449. package/src/components/run-step-timeline/run-step-timeline.css +25 -5
  1450. package/src/components/run-step-timeline/run-step-timeline.examples.json +3 -3
  1451. package/src/components/run-step-timeline/run-step-timeline.svelte +314 -78
  1452. package/src/components/run-step-timeline/run-step-timeline.types.ts +190 -3
  1453. package/src/components/schema-form/README.md +9 -9
  1454. package/src/components/schema-form/index.ts +0 -1
  1455. package/src/components/schema-form/schema-form-async.fixture.ts +101 -0
  1456. package/src/components/schema-form/schema-form-body.svelte +646 -0
  1457. package/src/components/schema-form/schema-form-model.ts +4 -44
  1458. package/src/components/schema-form/schema-form-validation.ts +83 -46
  1459. package/src/components/schema-form/schema-form.css +12 -74
  1460. package/src/components/schema-form/schema-form.examples.json +0 -6
  1461. package/src/components/schema-form/schema-form.svelte +30 -598
  1462. package/src/components/schema-form/schema-form.types.ts +16 -12
  1463. package/src/components/scroll-area/README.md +1 -1
  1464. package/src/components/scroll-area/scroll-area.examples.json +3 -3
  1465. package/src/components/scroll-area/scroll-area.svelte +5 -5
  1466. package/src/components/scroll-area/scroll-area.types.ts +1 -1
  1467. package/src/components/secret-value-field/secret-value-field.svelte +10 -6
  1468. package/src/components/segmented-control/README.md +1 -0
  1469. package/src/components/segmented-control/segmented-control.css +22 -1
  1470. package/src/components/segmented-control/segmented-control.examples.json +2 -2
  1471. package/src/components/segmented-control/segmented-control.svelte +54 -1
  1472. package/src/components/segmented-control/segmented-control.types.ts +2 -0
  1473. package/src/components/select/select.css +9 -2
  1474. package/src/components/select/select.svelte +6 -1
  1475. package/src/components/selection-popover/selection-popover.examples.json +1 -1
  1476. package/src/components/share-card/share-card.css +15 -4
  1477. package/src/components/share-card/share-card.svelte +2 -4
  1478. package/src/components/sheet/sheet.svelte +30 -145
  1479. package/src/components/shortcut-hint/shortcut-hint.svelte +1 -1
  1480. package/src/components/side-navigation/side-navigation.examples.json +1 -1
  1481. package/src/components/sidebar/README.md +6 -2
  1482. package/src/components/sidebar/sidebar.examples.json +1 -1
  1483. package/src/components/sidebar/sidebar.svelte +4 -4
  1484. package/src/components/sidebar/sidebar.types.ts +1 -1
  1485. package/src/components/slider/slider.css +14 -9
  1486. package/src/components/slider/slider.svelte +33 -2
  1487. package/src/components/sortable-list/README.md +18 -1
  1488. package/src/components/sortable-list/sortable-list.css +1 -1
  1489. package/src/components/sortable-list/sortable-list.examples.json +13 -0
  1490. package/src/components/sortable-list/sortable-list.types.ts +4 -4
  1491. package/src/components/spectrogram/spectrogram.examples.json +1 -0
  1492. package/src/components/spectrogram/spectrogram.svelte +7 -19
  1493. package/src/components/spectrum-chart/spectrum-chart.svelte +8 -20
  1494. package/src/components/speed-dial/speed-dial.css +3 -3
  1495. package/src/components/speed-dial/speed-dial.examples.json +1 -1
  1496. package/src/components/speed-dial/speed-dial.svelte +2 -2
  1497. package/src/components/speed-dial-action/speed-dial-action.svelte +1 -1
  1498. package/src/components/stacked-list-item/stacked-list-item.examples.json +1 -1
  1499. package/src/components/stat/README.md +1 -1
  1500. package/src/components/stat/stat.svelte +7 -2
  1501. package/src/components/stat/stat.types.ts +2 -2
  1502. package/src/components/stat-group/stat-group.css +1 -1
  1503. package/src/components/status-dot/README.md +9 -7
  1504. package/src/components/status-dot/index.ts +6 -1
  1505. package/src/components/status-dot/status-dot.css +45 -1
  1506. package/src/components/status-dot/status-dot.examples.json +1 -1
  1507. package/src/components/status-dot/status-dot.svelte +57 -8
  1508. package/src/components/status-dot/status-dot.types.ts +17 -6
  1509. package/src/components/steps/steps.css +3 -3
  1510. package/src/components/table/table.css +10 -0
  1511. package/src/components/table/table.examples.json +1 -1
  1512. package/src/components/table/table.svelte +2 -2
  1513. package/src/components/table/table.types.ts +3 -3
  1514. package/src/components/table-header/README.md +2 -2
  1515. package/src/components/table-header/table-header.svelte +5 -5
  1516. package/src/components/table-header/table-header.types.ts +2 -2
  1517. package/src/components/table-header-cell/table-header-cell.svelte +13 -2
  1518. package/src/components/table-row/README.md +2 -2
  1519. package/src/components/table-row/table-row.svelte +6 -6
  1520. package/src/components/table-row/table-row.types.ts +6 -6
  1521. package/src/components/tabs/README.md +1 -0
  1522. package/src/components/tabs/tabs.svelte +11 -3
  1523. package/src/components/tabs/tabs.types.ts +2 -0
  1524. package/src/components/tag-input/index.ts +4 -1
  1525. package/src/components/textarea/textarea.css +16 -1
  1526. package/src/components/textarea/textarea.svelte +6 -1
  1527. package/src/components/time-field/README.md +60 -0
  1528. package/src/components/time-field/index.ts +6 -0
  1529. package/src/components/time-field/time-field.css +60 -0
  1530. package/src/components/time-field/time-field.examples.json +13 -0
  1531. package/src/components/time-field/time-field.svelte +277 -0
  1532. package/src/components/time-field/time-field.types.ts +70 -0
  1533. package/src/components/toggle/README.md +12 -11
  1534. package/src/components/toggle/toggle.svelte +19 -6
  1535. package/src/components/toggle/toggle.types.ts +2 -0
  1536. package/src/components/tooltip/tooltip.svelte +39 -14
  1537. package/src/components/transfer-list/README.md +1 -1
  1538. package/src/components/transfer-list/transfer-list.css +22 -0
  1539. package/src/components/transfer-list/transfer-list.svelte +44 -10
  1540. package/src/components/transfer-list/transfer-list.types.ts +5 -2
  1541. package/src/components/tree/README.md +2 -2
  1542. package/src/components/tree/tree.css +69 -0
  1543. package/src/components/tree/tree.examples.json +1 -1
  1544. package/src/components/tree/tree.svelte +71 -48
  1545. package/src/components/tree/tree.types.ts +2 -2
  1546. package/src/components/tree-item/README.md +4 -4
  1547. package/src/components/tree-item/tree-item.svelte +42 -12
  1548. package/src/components/tree-item/tree-item.types.ts +4 -4
  1549. package/src/components/virtual-list/virtual-list.svelte +5 -5
  1550. package/src/components/waveform/waveform.svelte +7 -19
  1551. package/src/index.ts +45 -20
  1552. package/src/styles/components/_field-label.css +20 -0
  1553. package/src/styles/components/_input-frame.css +2 -1
  1554. package/src/styles/components.css +3 -2
  1555. package/src/styles/index.css +1 -0
  1556. package/src/styles/tokens-base.css +3 -0
  1557. package/src/utilities/attachments.ts +15 -12
  1558. package/src/utilities/change-tracker.svelte.ts +1 -21
  1559. package/src/utilities/change-tracker.types.ts +21 -0
  1560. package/src/utilities/document-order.ts +8 -3
  1561. package/src/utilities/sortable-controller.svelte.ts +5 -47
  1562. package/src/utilities/sortable-controller.types.ts +49 -0
  1563. package/src/utilities/typeahead.ts +63 -0
  1564. package/src/utilities/use-announcer.svelte.ts +1 -26
  1565. package/src/utilities/use-announcer.types.ts +26 -0
  1566. package/src/utilities/use-history.svelte.ts +6 -56
  1567. package/src/utilities/use-history.types.ts +56 -0
  1568. package/src/utilities/use-intersection.svelte.ts +6 -15
  1569. package/src/utilities/use-intersection.types.ts +16 -0
  1570. package/src/utilities/use-mutation-observer.svelte.ts +6 -23
  1571. package/src/utilities/use-mutation-observer.types.ts +24 -0
  1572. package/src/utilities/use-reduced-motion.svelte.ts +1 -4
  1573. package/src/utilities/use-reduced-motion.types.ts +4 -0
  1574. package/src/utilities/use-resize-observer.svelte.ts +6 -11
  1575. package/src/utilities/use-resize-observer.types.ts +12 -0
  1576. package/src/utilities/value-change.ts +11 -0
  1577. package/dist/components/connection-indicator/connection-indicator.css +0 -63
  1578. package/dist/components/connection-indicator/connection-indicator.svelte.d.ts +0 -18
  1579. package/dist/components/connection-indicator/connection-indicator.types.d.ts +0 -14
  1580. package/dist/components/connection-indicator/index.d.ts +0 -5
  1581. package/dist/components/connection-indicator/index.js +0 -75
  1582. package/dist/components/experimental/connection-indicator/index.d.ts +0 -2
  1583. package/dist/components/review-editor/review-editor-types.d.ts +0 -77
  1584. package/dist/components/subscription-badge/index.d.ts +0 -5
  1585. package/dist/components/subscription-badge/index.js +0 -353
  1586. package/dist/components/subscription-badge/subscription-badge.css +0 -18
  1587. package/dist/components/subscription-badge/subscription-badge.schema.js +0 -47
  1588. package/dist/components/subscription-badge/subscription-badge.svelte.d.ts +0 -19
  1589. package/dist/components/subscription-badge/subscription-badge.types.d.ts +0 -28
  1590. package/dist/server/components/access-gate/index.css +0 -130
  1591. package/dist/server/components/accordion/index.css +0 -125
  1592. package/dist/server/components/accordion-item/index.css +0 -110
  1593. package/dist/server/components/alert/index.css +0 -91
  1594. package/dist/server/components/alert-dialog/index.css +0 -14
  1595. package/dist/server/components/area-chart/index.css +0 -167
  1596. package/dist/server/components/aspect-ratio/index.css +0 -19
  1597. package/dist/server/components/autocomplete/index.css +0 -89
  1598. package/dist/server/components/avatar/index.css +0 -74
  1599. package/dist/server/components/avatar-group/index.css +0 -98
  1600. package/dist/server/components/backdrop/index.css +0 -26
  1601. package/dist/server/components/badge/index.css +0 -77
  1602. package/dist/server/components/banner/index.css +0 -102
  1603. package/dist/server/components/bar-chart/index.css +0 -161
  1604. package/dist/server/components/breadcrumbs/index.css +0 -90
  1605. package/dist/server/components/button/index.css +0 -356
  1606. package/dist/server/components/button-group/index.css +0 -109
  1607. package/dist/server/components/callout/index.css +0 -84
  1608. package/dist/server/components/capability-gate/index.css +0 -124
  1609. package/dist/server/components/card/index.css +0 -79
  1610. package/dist/server/components/chat/index.css +0 -61
  1611. package/dist/server/components/chat-conversation-header/index.css +0 -309
  1612. package/dist/server/components/chat-conversation-list/index.css +0 -115
  1613. package/dist/server/components/checkbox/index.css +0 -152
  1614. package/dist/server/components/checkbox-group/index.css +0 -84
  1615. package/dist/server/components/chip/index.css +0 -199
  1616. package/dist/server/components/choice-grid/index.css +0 -103
  1617. package/dist/server/components/choice-grid-item/index.css +0 -86
  1618. package/dist/server/components/code-block/index.css +0 -128
  1619. package/dist/server/components/collapsible/index.css +0 -88
  1620. package/dist/server/components/color-field/index.css +0 -49
  1621. package/dist/server/components/color-picker/index.css +0 -134
  1622. package/dist/server/components/color-swatch-picker/index.css +0 -113
  1623. package/dist/server/components/combobox/index.css +0 -180
  1624. package/dist/server/components/command-item/index.css +0 -89
  1625. package/dist/server/components/command-menu/index.css +0 -130
  1626. package/dist/server/components/command-palette/index.css +0 -258
  1627. package/dist/server/components/confirm-dialog/index.css +0 -10
  1628. package/dist/server/components/connection-indicator/connection-indicator.schema.js +0 -31
  1629. package/dist/server/components/connection-indicator/connection-indicator.variables.js +0 -12
  1630. package/dist/server/components/connection-indicator/index.css +0 -60
  1631. package/dist/server/components/connection-indicator/index.js +0 -42
  1632. package/dist/server/components/container/index.css +0 -36
  1633. package/dist/server/components/context-menu/index.css +0 -268
  1634. package/dist/server/components/copy-button/index.css +0 -46
  1635. package/dist/server/components/data-grid/index.css +0 -245
  1636. package/dist/server/components/data-list/index.css +0 -20
  1637. package/dist/server/components/data-table/index.css +0 -215
  1638. package/dist/server/components/date-range-field/index.css +0 -178
  1639. package/dist/server/components/description-list/index.css +0 -83
  1640. package/dist/server/components/diff-statistics/index.css +0 -81
  1641. package/dist/server/components/divider/index.css +0 -45
  1642. package/dist/server/components/drawer/index.css +0 -191
  1643. package/dist/server/components/dropdown/index.css +0 -259
  1644. package/dist/server/components/empty-state/index.css +0 -43
  1645. package/dist/server/components/event-stream-viewer/index.css +0 -414
  1646. package/dist/server/components/experimental/connection-indicator/index.js +0 -23
  1647. package/dist/server/components/faceted-filter-bar/index.css +0 -108
  1648. package/dist/server/components/feed/index.css +0 -74
  1649. package/dist/server/components/file-upload/index.css +0 -183
  1650. package/dist/server/components/floating-action-button/index.css +0 -149
  1651. package/dist/server/components/form-field/index.css +0 -50
  1652. package/dist/server/components/form-section/index.css +0 -54
  1653. package/dist/server/components/grid/index.css +0 -26
  1654. package/dist/server/components/grid-list/index.css +0 -96
  1655. package/dist/server/components/hover-card/index.css +0 -53
  1656. package/dist/server/components/image/index.css +0 -37
  1657. package/dist/server/components/input/index.css +0 -213
  1658. package/dist/server/components/invocation-rule-builder/index.css +0 -262
  1659. package/dist/server/components/json-schema-editor/index.css +0 -331
  1660. package/dist/server/components/json-viewer/index.css +0 -117
  1661. package/dist/server/components/kanban-board/index.css +0 -194
  1662. package/dist/server/components/kbd/index.css +0 -44
  1663. package/dist/server/components/keyboard-shortcuts/index.css +0 -86
  1664. package/dist/server/components/label/index.css +0 -29
  1665. package/dist/server/components/line-chart/index.css +0 -168
  1666. package/dist/server/components/link/index.css +0 -70
  1667. package/dist/server/components/load-more/index.css +0 -74
  1668. package/dist/server/components/masonry/index.css +0 -14
  1669. package/dist/server/components/matrix-chart/index.css +0 -56
  1670. package/dist/server/components/media-controls/index.css +0 -109
  1671. package/dist/server/components/menu-bar/index.css +0 -364
  1672. package/dist/server/components/message/index.css +0 -54
  1673. package/dist/server/components/modal/index.css +0 -143
  1674. package/dist/server/components/navigation-bar/index.css +0 -157
  1675. package/dist/server/components/navigation-item/index.css +0 -88
  1676. package/dist/server/components/number-input/index.css +0 -111
  1677. package/dist/server/components/pagination/index.css +0 -110
  1678. package/dist/server/components/payload-inspector/index.css +0 -144
  1679. package/dist/server/components/permission-matrix/index.css +0 -161
  1680. package/dist/server/components/phone-input/index.css +0 -108
  1681. package/dist/server/components/pin-input/index.css +0 -91
  1682. package/dist/server/components/popover/index.css +0 -124
  1683. package/dist/server/components/pricing-card/index.css +0 -131
  1684. package/dist/server/components/progress/index.css +0 -136
  1685. package/dist/server/components/radio-group/index.css +0 -243
  1686. package/dist/server/components/rating/index.css +0 -117
  1687. package/dist/server/components/resizable-panels/index.css +0 -101
  1688. package/dist/server/components/review-editor/index.css +0 -259
  1689. package/dist/server/components/run-step-timeline/index.css +0 -161
  1690. package/dist/server/components/schema-form/index.css +0 -165
  1691. package/dist/server/components/scroll-area/index.css +0 -74
  1692. package/dist/server/components/search-field/index.css +0 -162
  1693. package/dist/server/components/secret-value-field/index.css +0 -124
  1694. package/dist/server/components/section-heading/index.css +0 -72
  1695. package/dist/server/components/segmented-control/index.css +0 -223
  1696. package/dist/server/components/select/index.css +0 -143
  1697. package/dist/server/components/selection-popover/index.css +0 -205
  1698. package/dist/server/components/share-card/index.css +0 -113
  1699. package/dist/server/components/sheet/index.css +0 -176
  1700. package/dist/server/components/shortcut-hint/index.css +0 -28
  1701. package/dist/server/components/side-navigation/index.css +0 -220
  1702. package/dist/server/components/side-navigation-group/index.css +0 -109
  1703. package/dist/server/components/sidebar/index.css +0 -86
  1704. package/dist/server/components/skeleton/index.css +0 -31
  1705. package/dist/server/components/slider/index.css +0 -112
  1706. package/dist/server/components/sortable-list/index.css +0 -117
  1707. package/dist/server/components/spectrogram/index.css +0 -46
  1708. package/dist/server/components/spectrum-chart/index.css +0 -51
  1709. package/dist/server/components/speed-dial/index.css +0 -111
  1710. package/dist/server/components/spinner/index.css +0 -57
  1711. package/dist/server/components/stacked-list-item/index.css +0 -114
  1712. package/dist/server/components/stat/index.css +0 -70
  1713. package/dist/server/components/stat-group/index.css +0 -64
  1714. package/dist/server/components/status-dot/index.css +0 -70
  1715. package/dist/server/components/steps/index.css +0 -287
  1716. package/dist/server/components/subscription-badge/index.css +0 -2
  1717. package/dist/server/components/subscription-badge/index.js +0 -308
  1718. package/dist/server/components/subscription-badge/subscription-badge.schema.js +0 -28
  1719. package/dist/server/components/subscription-badge/subscription-badge.variables.js +0 -12
  1720. package/dist/server/components/surface/index.css +0 -25
  1721. package/dist/server/components/tab/index.css +0 -2
  1722. package/dist/server/components/tab-list/index.css +0 -2
  1723. package/dist/server/components/tab-panel/index.css +0 -2
  1724. package/dist/server/components/table/index.css +0 -179
  1725. package/dist/server/components/table-body/index.css +0 -2
  1726. package/dist/server/components/table-cell/index.css +0 -2
  1727. package/dist/server/components/table-header/index.css +0 -2
  1728. package/dist/server/components/table-header-cell/index.css +0 -2
  1729. package/dist/server/components/table-row/index.css +0 -2
  1730. package/dist/server/components/tabs/index.css +0 -152
  1731. package/dist/server/components/tag-input/index.css +0 -170
  1732. package/dist/server/components/textarea/index.css +0 -103
  1733. package/dist/server/components/timeline/index.css +0 -143
  1734. package/dist/server/components/toast-region/index.css +0 -227
  1735. package/dist/server/components/toggle/index.css +0 -109
  1736. package/dist/server/components/toolbar/index.css +0 -63
  1737. package/dist/server/components/tooltip/index.css +0 -50
  1738. package/dist/server/components/transfer-list/index.css +0 -116
  1739. package/dist/server/components/tree/index.css +0 -273
  1740. package/dist/server/components/typography/index.css +0 -115
  1741. package/dist/server/components/virtual-list/index.css +0 -30
  1742. package/dist/server/components/waveform/index.css +0 -55
  1743. package/dist/server/index.css +0 -15032
  1744. package/src/components/connection-indicator/README.md +0 -41
  1745. package/src/components/connection-indicator/connection-indicator.css +0 -63
  1746. package/src/components/connection-indicator/connection-indicator.svelte +0 -44
  1747. package/src/components/connection-indicator/connection-indicator.types.ts +0 -18
  1748. package/src/components/connection-indicator/index.ts +0 -6
  1749. package/src/components/experimental/connection-indicator/index.ts +0 -20
  1750. package/src/components/review-editor/review-editor-types.ts +0 -92
  1751. package/src/components/subscription-badge/README.md +0 -50
  1752. package/src/components/subscription-badge/index.ts +0 -6
  1753. package/src/components/subscription-badge/subscription-badge.css +0 -18
  1754. package/src/components/subscription-badge/subscription-badge.examples.json +0 -19
  1755. package/src/components/subscription-badge/subscription-badge.svelte +0 -69
  1756. package/src/components/subscription-badge/subscription-badge.types.ts +0 -37
  1757. /package/dist/components/{connection-indicator/connection-indicator.schema.d.ts → approval-card/approval-card.schema.d.ts} +0 -0
  1758. /package/dist/components/{connection-indicator/connection-indicator.variables.d.ts → approval-card/approval-card.variables.d.ts} +0 -0
  1759. /package/dist/components/{subscription-badge/subscription-badge.schema.d.ts → locale-provider/locale-provider.schema.d.ts} +0 -0
  1760. /package/dist/components/{subscription-badge/subscription-badge.variables.d.ts → locale-provider/locale-provider.variables.d.ts} +0 -0
@@ -0,0 +1,3393 @@
1
+ import {
2
+ Selection_popover
3
+ } from "./index.server-r30hm3ep.js";
4
+ import {
5
+ Textarea
6
+ } from "./index.server-41003crj.js";
7
+ import {
8
+ Diff_statistics
9
+ } from "./index.server-4p5znv15.js";
10
+ import {
11
+ Diff_viewer
12
+ } from "./index.server-fnj6xyr0.js";
13
+ import {
14
+ Checkbox
15
+ } from "./index.server-qjdkp02z.js";
16
+ import {
17
+ Markdown_editor
18
+ } from "./index.server-xjmx6rm8.js";
19
+ import {
20
+ Segment
21
+ } from "./index.server-qreadmdy.js";
22
+ import {
23
+ Segmented_control
24
+ } from "./index.server-nxx9ckb3.js";
25
+ import {
26
+ Input
27
+ } from "./index.server-8gakk9d5.js";
28
+ import {
29
+ createCopyState,
30
+ stringifyOrNull
31
+ } from "./index.server-nwjjp9t6.js";
32
+ import {
33
+ Dropdown
34
+ } from "./index.server-kjtb596w.js";
35
+ import {
36
+ Dropdown_trigger
37
+ } from "./index.server-77gpgvab.js";
38
+ import {
39
+ Dropdown_item
40
+ } from "./index.server-r0wzpqh7.js";
41
+ import {
42
+ Dropdown_menu
43
+ } from "./index.server-4jc5ny87.js";
44
+ import {
45
+ createAnchoredOverlay
46
+ } from "./index.server-94b7tjs5.js";
47
+ import {
48
+ useReducedMotion
49
+ } from "./index.server-8hdvr9bt.js";
50
+ import {
51
+ Git_branch,
52
+ Message_square,
53
+ Plus,
54
+ Trash_2
55
+ } from "./index.server-eq2ca4j4.js";
56
+ import {
57
+ Ellipsis,
58
+ Pencil
59
+ } from "./index.server-nav1z5d8.js";
60
+ import {
61
+ X
62
+ } from "./index.server-3fvz5gak.js";
63
+ import {
64
+ Rotate_ccw
65
+ } from "./index.server-e10j3s54.js";
66
+ import {
67
+ File_code
68
+ } from "./index.server-p78n7r6g.js";
69
+ import {
70
+ File_text
71
+ } from "./index.server-y16zcjfw.js";
72
+ import {
73
+ Badge
74
+ } from "./index.server-bkz7h7jx.js";
75
+ import {
76
+ Copy
77
+ } from "./index.server-ans2v9y9.js";
78
+ import {
79
+ Check
80
+ } from "./index.server-y0q949bm.js";
81
+ import {
82
+ Button
83
+ } from "./index.server-34p02y48.js";
84
+ import {
85
+ devWarn
86
+ } from "./index.server-nj8mebze.js";
87
+ import {
88
+ classNames
89
+ } from "./index.server-z7nvkz8v.js";
90
+
91
+ // src/components/review-editor/review-editor.svelte
92
+ import * as $11 from "svelte/internal/server";
93
+
94
+ // src/components/review-editor/review-editor-impl.svelte
95
+ import * as $10 from "svelte/internal/server";
96
+
97
+ // src/components/review-editor/focus-navigation.ts
98
+ var FOCUSABLE_SELECTOR = 'button, [href], input, select, textarea, [tabindex]:not([tabindex="-1"])';
99
+ function createFocusRegionNavigator(regions, options = {}) {
100
+ const { isRegionActive, customFocusHandler } = options;
101
+ function getActiveRegions() {
102
+ if (!isRegionActive) {
103
+ return regions;
104
+ }
105
+ return regions.filter(isRegionActive);
106
+ }
107
+ function getFallbackRegion() {
108
+ const firstRegion = regions[0];
109
+ if (!firstRegion) {
110
+ throw new Error("createFocusRegionNavigator requires at least one focus region.");
111
+ }
112
+ return firstRegion;
113
+ }
114
+ function getCurrentRegion(container) {
115
+ const active = document.activeElement;
116
+ if (!active || !container.contains(active)) {
117
+ return null;
118
+ }
119
+ for (const region of regions) {
120
+ const element = container.querySelector(region.selector);
121
+ if (element?.contains(active)) {
122
+ return region;
123
+ }
124
+ }
125
+ return null;
126
+ }
127
+ function getNextRegion(current, reverse = false) {
128
+ const activeRegions = getActiveRegions();
129
+ if (activeRegions.length === 0) {
130
+ return getFallbackRegion();
131
+ }
132
+ if (!current) {
133
+ return activeRegions[0] ?? getFallbackRegion();
134
+ }
135
+ const currentIndex = activeRegions.findIndex((r) => r.id === current.id);
136
+ if (currentIndex === -1) {
137
+ return activeRegions[0] ?? getFallbackRegion();
138
+ }
139
+ const nextIndex = reverse ? (currentIndex - 1 + activeRegions.length) % activeRegions.length : (currentIndex + 1) % activeRegions.length;
140
+ return activeRegions[nextIndex] ?? getFallbackRegion();
141
+ }
142
+ function focusRegion(container, region) {
143
+ if (customFocusHandler?.(region, container)) {
144
+ return;
145
+ }
146
+ const element = container.querySelector(region.selector);
147
+ if (element instanceof HTMLElement) {
148
+ const focusable = element.querySelector(FOCUSABLE_SELECTOR);
149
+ (focusable ?? element).focus();
150
+ }
151
+ }
152
+ return {
153
+ getCurrentRegion,
154
+ getNextRegion,
155
+ focusRegion,
156
+ getActiveRegions
157
+ };
158
+ }
159
+
160
+ // src/utilities/change-tracker.svelte.ts
161
+ import * as $ from "svelte/internal/server";
162
+ import { contentEquals, contentEqualsWithFrontMatter } from "@lostgradient/cinder/markdown/pipeline";
163
+ function simpleHash(str) {
164
+ let hash = 5381;
165
+ for (let i = 0;i < str.length; i++) {
166
+ hash = (hash << 5) + hash ^ str.charCodeAt(i);
167
+ }
168
+ return hash >>> 0;
169
+ }
170
+ function createChangeTracker(options = {}) {
171
+ const { debounceMs = 300, includeFrontMatter = false } = options;
172
+ let baseline = "";
173
+ let current = "";
174
+ let baselineHash = 0;
175
+ let currentHash = 0;
176
+ let isPending = false;
177
+ let semanticResult = null;
178
+ let verifyTimeout = null;
179
+ const isDirtyFast = $.derived(() => {
180
+ if (baseline === current)
181
+ return false;
182
+ if (baseline.length !== current.length)
183
+ return true;
184
+ return currentHash !== baselineHash;
185
+ });
186
+ const hasChanges = $.derived(() => {
187
+ if (!isDirtyFast())
188
+ return false;
189
+ if (semanticResult !== null)
190
+ return semanticResult;
191
+ return true;
192
+ });
193
+ function doSemanticVerification() {
194
+ const equals = includeFrontMatter ? contentEqualsWithFrontMatter(baseline, current) : contentEquals(baseline, current);
195
+ semanticResult = !equals;
196
+ isPending = false;
197
+ }
198
+ function scheduleVerification(base, curr, baseHash, currHash) {
199
+ if (verifyTimeout) {
200
+ clearTimeout(verifyTimeout);
201
+ verifyTimeout = null;
202
+ }
203
+ semanticResult = null;
204
+ if (base === curr) {
205
+ isPending = false;
206
+ return;
207
+ }
208
+ if (baseHash === currHash && base.length === curr.length) {
209
+ isPending = true;
210
+ verifyTimeout = setTimeout(doSemanticVerification, debounceMs);
211
+ return;
212
+ }
213
+ isPending = true;
214
+ verifyTimeout = setTimeout(doSemanticVerification, debounceMs);
215
+ }
216
+ return {
217
+ get hasChanges() {
218
+ return hasChanges();
219
+ },
220
+ get isPending() {
221
+ return isPending;
222
+ },
223
+ setBaseline(value) {
224
+ baseline = value;
225
+ baselineHash = simpleHash(value);
226
+ semanticResult = null;
227
+ },
228
+ setCurrent(value) {
229
+ current = value;
230
+ currentHash = simpleHash(value);
231
+ semanticResult = null;
232
+ },
233
+ verifyNow() {
234
+ if (verifyTimeout) {
235
+ clearTimeout(verifyTimeout);
236
+ verifyTimeout = null;
237
+ }
238
+ if (baseline === current) {
239
+ isPending = false;
240
+ semanticResult = false;
241
+ return false;
242
+ }
243
+ doSemanticVerification();
244
+ return semanticResult ?? false;
245
+ },
246
+ destroy() {
247
+ if (verifyTimeout) {
248
+ clearTimeout(verifyTimeout);
249
+ verifyTimeout = null;
250
+ }
251
+ }
252
+ };
253
+ }
254
+
255
+ // src/components/review-editor/review-editor-impl.svelte
256
+ import { contentEquals as contentEquals2, normalize } from "@lostgradient/cinder/markdown/pipeline";
257
+ import { textOffsetToProseMirrorPosition } from "@lostgradient/cinder/editor";
258
+ import { createAnchorPlugin, anchorPluginKey } from "@lostgradient/cinder/commentary/anchor-decorations";
259
+ import {
260
+ reanchorQuote,
261
+ ANCHOR_CONTEXT_LENGTH,
262
+ generateId,
263
+ extractMentions,
264
+ createDocumentAnchor
265
+ } from "@lostgradient/cinder/commentary/comments";
266
+ import { buildAnchorFromSelection } from "@lostgradient/cinder/commentary/anchoring";
267
+
268
+ // src/components/review-editor/thread-popover.svelte
269
+ import * as $4 from "svelte/internal/server";
270
+ import { isDocumentAnchor } from "@lostgradient/cinder/commentary/comments";
271
+
272
+ // src/components/review-editor/comment-list.svelte
273
+ import * as $2 from "svelte/internal/server";
274
+
275
+ // src/utilities/format-date.ts
276
+ var MINUTE = 60000;
277
+ var HOUR = 3600000;
278
+ var DAY = 86400000;
279
+ var WEEK = 604800000;
280
+ var MONTH = 2592000000;
281
+ function toDate(input) {
282
+ if (input instanceof Date)
283
+ return input;
284
+ if (typeof input === "number")
285
+ return new Date(input);
286
+ return new Date(input);
287
+ }
288
+ function formatRelativeTime(input) {
289
+ const date = toDate(input);
290
+ const now = Date.now();
291
+ const elapsed = now - date.getTime();
292
+ if (elapsed < MINUTE)
293
+ return "just now";
294
+ if (elapsed < HOUR)
295
+ return `${Math.floor(elapsed / MINUTE)}m ago`;
296
+ if (elapsed < DAY)
297
+ return `${Math.floor(elapsed / HOUR)}h ago`;
298
+ if (elapsed < WEEK)
299
+ return `${Math.floor(elapsed / DAY)}d ago`;
300
+ if (elapsed < MONTH)
301
+ return `${Math.floor(elapsed / WEEK)}w ago`;
302
+ return new Intl.DateTimeFormat("en-US", {
303
+ month: "short",
304
+ day: "numeric",
305
+ year: "numeric",
306
+ timeZone: "UTC"
307
+ }).format(date);
308
+ }
309
+ // src/components/review-editor/comment-list.svelte
310
+ function Comment_list($$renderer, $$props) {
311
+ $$renderer.component(($$renderer2) => {
312
+ let {
313
+ comments,
314
+ currentUserId,
315
+ mode = "edit",
316
+ class: className,
317
+ onupdate,
318
+ ondelete
319
+ } = $$props;
320
+ const visibleComments = $2.derived(() => comments.filter((c) => !("deletedAt" in c) || !c.deletedAt));
321
+ let editingCommentId = null;
322
+ let editingBody = "";
323
+ function startEdit(comment) {
324
+ editingCommentId = comment.id;
325
+ editingBody = comment.body;
326
+ }
327
+ function cancelEdit() {
328
+ editingCommentId = null;
329
+ editingBody = "";
330
+ }
331
+ function saveEdit(commentId) {
332
+ if (editingBody.trim()) {
333
+ onupdate?.(commentId, editingBody.trim());
334
+ }
335
+ cancelEdit();
336
+ }
337
+ function handleEditKeyDown(event, commentId) {
338
+ if (event.key === "Escape") {
339
+ cancelEdit();
340
+ } else if (event.key === "Enter" && (event.metaKey || event.ctrlKey)) {
341
+ event.preventDefault();
342
+ saveEdit(commentId);
343
+ }
344
+ }
345
+ function canEditComment(comment) {
346
+ return mode !== "readonly" && comment.authorId === currentUserId;
347
+ }
348
+ function canDeleteComment(comment) {
349
+ return mode !== "readonly" && comment.authorId === currentUserId;
350
+ }
351
+ $$renderer2.push(`<div${$2.attr_class($2.clsx(classNames("comment-list", className)), "svelte-11dydst")}><!--[-->`);
352
+ const each_array = $2.ensure_array_like(visibleComments());
353
+ for (let $$index = 0, $$length = each_array.length;$$index < $$length; $$index++) {
354
+ let comment = each_array[$$index];
355
+ $$renderer2.push(`<article class="comment svelte-11dydst"${$2.attr("data-comment-id", comment.id)}><header class="comment-header svelte-11dydst"><div class="comment-author svelte-11dydst"><div class="comment-avatar svelte-11dydst" aria-hidden="true">${$2.escape(comment.authorId.charAt(0).toUpperCase())}</div> <span class="comment-author-name svelte-11dydst">${$2.escape(comment.authorId)}</span></div> <div class="comment-meta svelte-11dydst"><time class="comment-time svelte-11dydst"${$2.attr("datetime", comment.createdAt)}${$2.attr("title", comment.createdAt)}>${$2.escape(formatRelativeTime(comment.createdAt))}</time> `);
356
+ if ("editedAt" in comment && comment.editedAt) {
357
+ $$renderer2.push("<!--[0-->");
358
+ $$renderer2.push(`<span class="comment-edited svelte-11dydst"${$2.attr("title", `Edited ${comment.editedAt}`)}>(edited)</span>`);
359
+ } else {
360
+ $$renderer2.push("<!--[-1-->");
361
+ }
362
+ $$renderer2.push(`<!--]--></div></header> `);
363
+ if (editingCommentId === comment.id) {
364
+ $$renderer2.push("<!--[0-->");
365
+ $$renderer2.push(`<div class="comment-edit svelte-11dydst"><label${$2.attr("for", `${$2.stringify(comment.id)}-edit`)} class="sr-only svelte-11dydst">Edit comment</label> <textarea${$2.attr("id", `${$2.stringify(comment.id)}-edit`)} class="comment-edit-textarea svelte-11dydst"${$2.attr("rows", 3)}>`);
366
+ const $$body = $2.escape(editingBody);
367
+ if ($$body) {
368
+ $$renderer2.push(`${$$body}`);
369
+ } else {}
370
+ $$renderer2.push(`</textarea> <div class="comment-edit-actions svelte-11dydst">`);
371
+ Button($$renderer2, {
372
+ variant: "ghost",
373
+ size: "xs",
374
+ onclick: cancelEdit,
375
+ children: ($$renderer3) => {
376
+ $$renderer3.push(`<!---->Cancel`);
377
+ },
378
+ $$slots: { default: true }
379
+ });
380
+ $$renderer2.push(`<!----> `);
381
+ Button($$renderer2, {
382
+ variant: "primary",
383
+ size: "xs",
384
+ onclick: () => saveEdit(comment.id),
385
+ disabled: !editingBody.trim(),
386
+ children: ($$renderer3) => {
387
+ $$renderer3.push(`<!---->Save`);
388
+ },
389
+ $$slots: { default: true }
390
+ });
391
+ $$renderer2.push(`<!----></div></div>`);
392
+ } else {
393
+ $$renderer2.push("<!--[-1-->");
394
+ $$renderer2.push(`<div class="comment-body svelte-11dydst">${$2.escape(comment.body)}</div>`);
395
+ }
396
+ $$renderer2.push(`<!--]--> `);
397
+ if (mode !== "readonly" && editingCommentId !== comment.id) {
398
+ $$renderer2.push("<!--[0-->");
399
+ $$renderer2.push(`<div class="comment-actions svelte-11dydst">`);
400
+ if (canEditComment(comment)) {
401
+ $$renderer2.push("<!--[0-->");
402
+ $$renderer2.push(`<button type="button" class="comment-action svelte-11dydst" aria-label="Edit comment" title="Edit comment">`);
403
+ Pencil($$renderer2, { class: "icon-sm" });
404
+ $$renderer2.push(`<!----></button>`);
405
+ } else {
406
+ $$renderer2.push("<!--[-1-->");
407
+ }
408
+ $$renderer2.push(`<!--]--> `);
409
+ if (canDeleteComment(comment)) {
410
+ $$renderer2.push("<!--[0-->");
411
+ $$renderer2.push(`<button type="button" class="comment-action comment-action-danger svelte-11dydst" aria-label="Delete comment" title="Delete comment">`);
412
+ Trash_2($$renderer2, { class: "icon-sm" });
413
+ $$renderer2.push(`<!----></button>`);
414
+ } else {
415
+ $$renderer2.push("<!--[-1-->");
416
+ }
417
+ $$renderer2.push(`<!--]--></div>`);
418
+ } else {
419
+ $$renderer2.push("<!--[-1-->");
420
+ }
421
+ $$renderer2.push(`<!--]--></article>`);
422
+ }
423
+ $$renderer2.push(`<!--]--> `);
424
+ if (visibleComments().length === 0) {
425
+ $$renderer2.push("<!--[0-->");
426
+ $$renderer2.push(`<p class="comment-list-empty svelte-11dydst">No comments yet.</p>`);
427
+ } else {
428
+ $$renderer2.push("<!--[-1-->");
429
+ }
430
+ $$renderer2.push(`<!--]--></div>`);
431
+ });
432
+ }
433
+
434
+ // src/components/review-editor/comment-composer.svelte
435
+ import * as $3 from "svelte/internal/server";
436
+ function Comment_composer($$renderer, $$props) {
437
+ $$renderer.component(($$renderer2) => {
438
+ let {
439
+ id,
440
+ value = "",
441
+ placeholder = "Write a comment...",
442
+ disabled = false,
443
+ loading = false,
444
+ error,
445
+ minRows = 3,
446
+ maxRows,
447
+ autoExpand = true,
448
+ class: className,
449
+ onsubmit,
450
+ oncancel,
451
+ actions,
452
+ $$slots,
453
+ $$events,
454
+ ...rest
455
+ } = $$props;
456
+ let textareaElement = null;
457
+ const isMac = $3.derived(() => {
458
+ if (typeof navigator === "undefined")
459
+ return false;
460
+ if ("userAgentData" in navigator && navigator.userAgentData) {
461
+ return navigator.userAgentData.platform === "macOS";
462
+ }
463
+ return /Mac|iPhone|iPad|iPod/.test(navigator.userAgent);
464
+ });
465
+ const errorId = $3.derived(() => `${id}-error`);
466
+ const canSubmit = $3.derived(() => value.trim().length > 0 && !disabled && !loading);
467
+ const dynamicRows = $3.derived(() => {
468
+ if (!autoExpand)
469
+ return minRows;
470
+ const lineCount = (value.match(/\n/g) || []).length + 1;
471
+ let rows = Math.max(minRows, lineCount);
472
+ if (maxRows !== undefined) {
473
+ rows = Math.min(rows, maxRows);
474
+ }
475
+ return rows;
476
+ });
477
+ function handleSubmit(event) {
478
+ event.preventDefault();
479
+ if (!canSubmit())
480
+ return;
481
+ onsubmit?.(value.trim());
482
+ value = "";
483
+ textareaElement?.focus();
484
+ }
485
+ function handleKeyDown(event) {
486
+ if (event.key === "Enter" && (event.metaKey || event.ctrlKey)) {
487
+ event.preventDefault();
488
+ if (canSubmit()) {
489
+ onsubmit?.(value.trim());
490
+ value = "";
491
+ textareaElement?.focus();
492
+ }
493
+ return;
494
+ }
495
+ if (event.key === "Escape" && oncancel) {
496
+ event.preventDefault();
497
+ oncancel();
498
+ }
499
+ }
500
+ function focus() {
501
+ textareaElement?.focus();
502
+ }
503
+ function selectAll() {
504
+ textareaElement?.select();
505
+ }
506
+ function clear() {
507
+ value = "";
508
+ textareaElement?.focus();
509
+ }
510
+ $$renderer2.push(`<form${$3.attr_class($3.clsx(classNames("comment-composer", className)), "svelte-uu92gn")}><label${$3.attr("for", id)} class="sr-only svelte-uu92gn">Comment</label> <div class="comment-composer-textarea-container svelte-uu92gn"><textarea${$3.attributes({
511
+ id,
512
+ class: "comment-composer-textarea",
513
+ "data-has-error": !!error,
514
+ placeholder,
515
+ disabled: disabled || loading,
516
+ rows: dynamicRows(),
517
+ "aria-invalid": error ? "true" : undefined,
518
+ "aria-describedby": error ? errorId() : undefined,
519
+ "aria-busy": loading ? "true" : undefined,
520
+ ...rest
521
+ }, "svelte-uu92gn")}>`);
522
+ const $$body = $3.escape(value);
523
+ if ($$body) {
524
+ $$renderer2.push(`${$$body}`);
525
+ } else {}
526
+ $$renderer2.push(`</textarea> <div class="comment-composer-inline-submit svelte-uu92gn">`);
527
+ Button($$renderer2, {
528
+ type: "submit",
529
+ variant: "primary",
530
+ size: "xs",
531
+ disabled: !canSubmit(),
532
+ loading,
533
+ children: ($$renderer3) => {
534
+ $$renderer3.push(`<!---->${$3.escape(loading ? "Sending..." : "Comment")}`);
535
+ },
536
+ $$slots: { default: true }
537
+ });
538
+ $$renderer2.push(`<!----></div></div> `);
539
+ if (error) {
540
+ $$renderer2.push("<!--[0-->");
541
+ $$renderer2.push(`<p${$3.attr("id", errorId())} class="comment-composer-error svelte-uu92gn" role="alert">${$3.escape(error)}</p>`);
542
+ } else {
543
+ $$renderer2.push("<!--[-1-->");
544
+ }
545
+ $$renderer2.push(`<!--]--> <div class="comment-composer-footer svelte-uu92gn"><span class="comment-composer-hint svelte-uu92gn"><kbd class="svelte-uu92gn">${$3.escape(isMac() ? "⌘" : "Ctrl")}</kbd><kbd class="svelte-uu92gn">↵</kbd> to submit</span> <div class="comment-composer-actions svelte-uu92gn">`);
546
+ if (actions) {
547
+ $$renderer2.push("<!--[0-->");
548
+ actions($$renderer2);
549
+ $$renderer2.push(`<!---->`);
550
+ } else if (oncancel) {
551
+ $$renderer2.push("<!--[1-->");
552
+ Button($$renderer2, {
553
+ variant: "ghost",
554
+ size: "xs",
555
+ onclick: oncancel,
556
+ disabled: loading,
557
+ children: ($$renderer3) => {
558
+ $$renderer3.push(`<!---->Cancel`);
559
+ },
560
+ $$slots: { default: true }
561
+ });
562
+ } else {
563
+ $$renderer2.push("<!--[-1-->");
564
+ }
565
+ $$renderer2.push(`<!--]--></div></div></form>`);
566
+ $3.bind_props($$props, { value, focus, selectAll, clear });
567
+ });
568
+ }
569
+
570
+ // src/components/review-editor/thread-popover.svelte
571
+ function Thread_popover($$renderer, $$props) {
572
+ $$renderer.component(($$renderer2) => {
573
+ let {
574
+ id,
575
+ thread,
576
+ currentUserId,
577
+ mode = "edit",
578
+ position,
579
+ class: className,
580
+ onclose,
581
+ ondelete,
582
+ oncommentcreate,
583
+ oncommentupdate,
584
+ oncommentdelete
585
+ } = $$props;
586
+ const isReadonly = $4.derived(() => mode === "readonly");
587
+ let popoverElement = null;
588
+ const virtualAnchor = $4.derived(() => {
589
+ if (!position)
590
+ return null;
591
+ return {
592
+ getBoundingClientRect: () => ({
593
+ x: position.x,
594
+ y: position.y,
595
+ top: position.y,
596
+ left: position.x,
597
+ right: position.x,
598
+ bottom: position.y,
599
+ width: 0,
600
+ height: 0
601
+ })
602
+ };
603
+ });
604
+ const anchoredOverlay = createAnchoredOverlay({
605
+ open: () => Boolean(position),
606
+ anchor: () => virtualAnchor(),
607
+ panel: () => popoverElement,
608
+ placement: () => "right-start",
609
+ offset: () => 8,
610
+ widthMode: () => "content"
611
+ });
612
+ function handleKeyDown(event) {
613
+ if (event.key === "Escape" && !event.defaultPrevented) {
614
+ event.preventDefault();
615
+ onclose?.();
616
+ }
617
+ }
618
+ function handleDelete() {
619
+ ondelete?.(thread.id);
620
+ }
621
+ function handleCommentUpdate(commentId, body) {
622
+ oncommentupdate?.(thread.id, commentId, body);
623
+ }
624
+ function handleCommentDelete(commentId) {
625
+ oncommentdelete?.(thread.id, commentId);
626
+ }
627
+ function handleCommentCreate(body) {
628
+ oncommentcreate?.(thread.id, body);
629
+ }
630
+ const isDocumentComment = $4.derived(() => isDocumentAnchor(thread.anchor));
631
+ const displayTitle = $4.derived(() => {
632
+ if (isDocumentComment()) {
633
+ return null;
634
+ }
635
+ const quote = thread.anchor.quote;
636
+ return quote.length > 30 ? `${quote.slice(0, 30)}...` : quote;
637
+ });
638
+ $$renderer2.push(`<div${$4.attr("id", id)} role="dialog" aria-modal="true"${$4.attr("aria-labelledby", `${$4.stringify(id)}-title`)} tabindex="-1"${$4.attr_class($4.clsx(classNames("thread-popover", className)), "svelte-jqotwh")}${$4.attr_style(anchoredOverlay.positionStyle)}${$4.attr("data-position-ready", anchoredOverlay.positionReady)}${$4.attr("inert", !anchoredOverlay.positionReady ? true : undefined, true)}><header class="thread-popover-header svelte-jqotwh"><div class="thread-popover-title-row svelte-jqotwh"><h2${$4.attr("id", `${$4.stringify(id)}-title`)} class="thread-popover-title svelte-jqotwh">`);
639
+ if (isDocumentComment()) {
640
+ $$renderer2.push("<!--[0-->");
641
+ $$renderer2.push(`<span class="thread-popover-document-label svelte-jqotwh">`);
642
+ File_text($$renderer2, { class: "icon-xs" });
643
+ $$renderer2.push(`<!----> Document comment</span>`);
644
+ } else {
645
+ $$renderer2.push("<!--[-1-->");
646
+ $$renderer2.push(`<span class="thread-popover-quote svelte-jqotwh"${$4.attr("title", thread.anchor.quote)}>"${$4.escape(displayTitle())}"</span>`);
647
+ }
648
+ $$renderer2.push(`<!--]--></h2> <div class="thread-popover-header-actions svelte-jqotwh">`);
649
+ if (!isReadonly()) {
650
+ $$renderer2.push("<!--[0-->");
651
+ Button($$renderer2, {
652
+ variant: "ghost",
653
+ size: "xs",
654
+ onclick: handleDelete,
655
+ disabled: !currentUserId,
656
+ "aria-label": "Delete thread",
657
+ children: ($$renderer3) => {
658
+ Trash_2($$renderer3, { class: "icon-sm" });
659
+ },
660
+ $$slots: { default: true }
661
+ });
662
+ } else {
663
+ $$renderer2.push("<!--[-1-->");
664
+ }
665
+ $$renderer2.push(`<!--]--> <button type="button" class="thread-popover-close svelte-jqotwh" aria-label="Close">`);
666
+ X($$renderer2, { class: "icon-sm" });
667
+ $$renderer2.push(`<!----></button></div></div></header> <div class="thread-popover-content svelte-jqotwh">`);
668
+ Comment_list($$renderer2, {
669
+ comments: thread.comments,
670
+ currentUserId,
671
+ mode,
672
+ onupdate: handleCommentUpdate,
673
+ ondelete: handleCommentDelete
674
+ });
675
+ $$renderer2.push(`<!----></div> `);
676
+ if (!isReadonly() && currentUserId) {
677
+ $$renderer2.push("<!--[0-->");
678
+ $$renderer2.push(`<div class="thread-popover-composer svelte-jqotwh">`);
679
+ Comment_composer($$renderer2, {
680
+ id: `${$4.stringify(id)}-composer`,
681
+ placeholder: "Reply...",
682
+ onsubmit: handleCommentCreate
683
+ });
684
+ $$renderer2.push(`<!----></div>`);
685
+ } else {
686
+ $$renderer2.push("<!--[-1-->");
687
+ }
688
+ $$renderer2.push(`<!--]--></div>`);
689
+ });
690
+ }
691
+
692
+ // src/components/review-editor/live-region.svelte
693
+ import * as $5 from "svelte/internal/server";
694
+ function Live_region($$renderer, $$props) {
695
+ $$renderer.component(($$renderer2) => {
696
+ let { class: className } = $$props;
697
+ let message = "";
698
+ let priority = "polite";
699
+ let clearTimeoutId = null;
700
+ let announceVersion = 0;
701
+ let isDestroyed = false;
702
+ function announce(text, announcePriority = "polite") {
703
+ if (isDestroyed)
704
+ return;
705
+ const version = ++announceVersion;
706
+ if (clearTimeoutId) {
707
+ clearTimeout(clearTimeoutId);
708
+ clearTimeoutId = null;
709
+ }
710
+ message = "";
711
+ priority = announcePriority;
712
+ queueMicrotask(() => {
713
+ if (isDestroyed || announceVersion !== version)
714
+ return;
715
+ message = text;
716
+ clearTimeoutId = setTimeout(() => {
717
+ if (isDestroyed || announceVersion !== version)
718
+ return;
719
+ message = "";
720
+ clearTimeoutId = null;
721
+ }, 1000);
722
+ });
723
+ }
724
+ if (priority === "polite") {
725
+ $$renderer2.push("<!--[0-->");
726
+ $$renderer2.push(`<div role="status" aria-live="polite" aria-atomic="true"${$5.attr_class($5.clsx(classNames("sr-only", className)))}>${$5.escape(message)}</div>`);
727
+ } else {
728
+ $$renderer2.push("<!--[-1-->");
729
+ $$renderer2.push(`<div role="alert" aria-live="assertive" aria-atomic="true"${$5.attr_class($5.clsx(classNames("sr-only", className)))}>${$5.escape(message)}</div>`);
730
+ }
731
+ $$renderer2.push(`<!--]-->`);
732
+ $5.bind_props($$props, { announce });
733
+ });
734
+ }
735
+
736
+ // src/components/review-editor/export-actions.svelte
737
+ import * as $6 from "svelte/internal/server";
738
+ function Export_actions($$renderer, $$props) {
739
+ $$renderer.component(($$renderer2) => {
740
+ let {
741
+ id,
742
+ onexportcontent,
743
+ onexportsummary,
744
+ onexportjson,
745
+ onexportdiff,
746
+ onexportcomments,
747
+ class: className
748
+ } = $$props;
749
+ const copyState = createCopyState();
750
+ async function handleCopy(format) {
751
+ let content;
752
+ switch (format) {
753
+ case "content":
754
+ if (!onexportcontent)
755
+ return;
756
+ content = onexportcontent();
757
+ break;
758
+ case "summary":
759
+ content = onexportsummary();
760
+ break;
761
+ case "json":
762
+ content = onexportjson();
763
+ break;
764
+ case "diff":
765
+ content = onexportdiff();
766
+ break;
767
+ case "comments":
768
+ if (!onexportcomments)
769
+ return;
770
+ content = onexportcomments();
771
+ break;
772
+ }
773
+ await copyState.trigger(format, content);
774
+ }
775
+ const formatLabels = {
776
+ content: "Content",
777
+ summary: "Summary (for LLM)",
778
+ json: "JSON",
779
+ diff: "Git Diff",
780
+ comments: "Comments"
781
+ };
782
+ $$renderer2.push(`<div${$6.attr_class($6.clsx(classNames("export-actions", className)), "svelte-1cj1bq5")}><div class="cinder-sr-only" aria-live="polite" aria-atomic="true">`);
783
+ if (copyState.copiedKey) {
784
+ $$renderer2.push("<!--[0-->");
785
+ $$renderer2.push(`Copied ${$6.escape(formatLabels[copyState.copiedKey])}`);
786
+ } else {
787
+ $$renderer2.push("<!--[-1-->");
788
+ }
789
+ $$renderer2.push(`<!--]--></div> `);
790
+ Dropdown($$renderer2, {
791
+ id,
792
+ children: ($$renderer3) => {
793
+ Dropdown_trigger($$renderer3, {
794
+ class: "export-trigger",
795
+ "aria-label": "Copy to clipboard",
796
+ showCaret: false,
797
+ children: ($$renderer4) => {
798
+ Copy($$renderer4, { class: "icon-sm" });
799
+ $$renderer4.push(`<!----> <span class="cinder-sr-only">Copy</span>`);
800
+ },
801
+ $$slots: { default: true }
802
+ });
803
+ $$renderer3.push(`<!----> `);
804
+ Dropdown_menu($$renderer3, {
805
+ children: ($$renderer4) => {
806
+ if (onexportcontent) {
807
+ $$renderer4.push("<!--[0-->");
808
+ Dropdown_item($$renderer4, {
809
+ onclick: () => handleCopy("content"),
810
+ children: ($$renderer5) => {
811
+ if (copyState.copiedKey === "content") {
812
+ $$renderer5.push("<!--[0-->");
813
+ Check($$renderer5, { class: "icon-sm export-icon-success" });
814
+ } else {
815
+ $$renderer5.push("<!--[-1-->");
816
+ File_text($$renderer5, { class: "icon-sm" });
817
+ }
818
+ $$renderer5.push(`<!--]--> <span>${$6.escape(formatLabels.content)}</span> `);
819
+ if (copyState.copiedKey === "content") {
820
+ $$renderer5.push("<!--[0-->");
821
+ $$renderer5.push(`<span class="copied-label svelte-1cj1bq5">Copied!</span>`);
822
+ } else {
823
+ $$renderer5.push("<!--[-1-->");
824
+ }
825
+ $$renderer5.push(`<!--]-->`);
826
+ },
827
+ $$slots: { default: true }
828
+ });
829
+ } else {
830
+ $$renderer4.push("<!--[-1-->");
831
+ }
832
+ $$renderer4.push(`<!--]--> `);
833
+ Dropdown_item($$renderer4, {
834
+ onclick: () => handleCopy("summary"),
835
+ children: ($$renderer5) => {
836
+ if (copyState.copiedKey === "summary") {
837
+ $$renderer5.push("<!--[0-->");
838
+ Check($$renderer5, { class: "icon-sm export-icon-success" });
839
+ } else {
840
+ $$renderer5.push("<!--[-1-->");
841
+ File_text($$renderer5, { class: "icon-sm" });
842
+ }
843
+ $$renderer5.push(`<!--]--> <span>${$6.escape(formatLabels.summary)}</span> `);
844
+ if (copyState.copiedKey === "summary") {
845
+ $$renderer5.push("<!--[0-->");
846
+ $$renderer5.push(`<span class="copied-label svelte-1cj1bq5">Copied!</span>`);
847
+ } else {
848
+ $$renderer5.push("<!--[-1-->");
849
+ }
850
+ $$renderer5.push(`<!--]-->`);
851
+ },
852
+ $$slots: { default: true }
853
+ });
854
+ $$renderer4.push(`<!----> `);
855
+ Dropdown_item($$renderer4, {
856
+ onclick: () => handleCopy("diff"),
857
+ children: ($$renderer5) => {
858
+ if (copyState.copiedKey === "diff") {
859
+ $$renderer5.push("<!--[0-->");
860
+ Check($$renderer5, { class: "icon-sm export-icon-success" });
861
+ } else {
862
+ $$renderer5.push("<!--[-1-->");
863
+ Git_branch($$renderer5, { class: "icon-sm" });
864
+ }
865
+ $$renderer5.push(`<!--]--> <span>${$6.escape(formatLabels.diff)}</span> `);
866
+ if (copyState.copiedKey === "diff") {
867
+ $$renderer5.push("<!--[0-->");
868
+ $$renderer5.push(`<span class="copied-label svelte-1cj1bq5">Copied!</span>`);
869
+ } else {
870
+ $$renderer5.push("<!--[-1-->");
871
+ }
872
+ $$renderer5.push(`<!--]-->`);
873
+ },
874
+ $$slots: { default: true }
875
+ });
876
+ $$renderer4.push(`<!----> `);
877
+ if (onexportcomments) {
878
+ $$renderer4.push("<!--[0-->");
879
+ Dropdown_item($$renderer4, {
880
+ onclick: () => handleCopy("comments"),
881
+ children: ($$renderer5) => {
882
+ if (copyState.copiedKey === "comments") {
883
+ $$renderer5.push("<!--[0-->");
884
+ Check($$renderer5, { class: "icon-sm export-icon-success" });
885
+ } else {
886
+ $$renderer5.push("<!--[-1-->");
887
+ Message_square($$renderer5, { class: "icon-sm" });
888
+ }
889
+ $$renderer5.push(`<!--]--> <span>${$6.escape(formatLabels.comments)}</span> `);
890
+ if (copyState.copiedKey === "comments") {
891
+ $$renderer5.push("<!--[0-->");
892
+ $$renderer5.push(`<span class="copied-label svelte-1cj1bq5">Copied!</span>`);
893
+ } else {
894
+ $$renderer5.push("<!--[-1-->");
895
+ }
896
+ $$renderer5.push(`<!--]-->`);
897
+ },
898
+ $$slots: { default: true }
899
+ });
900
+ } else {
901
+ $$renderer4.push("<!--[-1-->");
902
+ }
903
+ $$renderer4.push(`<!--]--> `);
904
+ Dropdown_item($$renderer4, {
905
+ onclick: () => handleCopy("json"),
906
+ children: ($$renderer5) => {
907
+ if (copyState.copiedKey === "json") {
908
+ $$renderer5.push("<!--[0-->");
909
+ Check($$renderer5, { class: "icon-sm export-icon-success" });
910
+ } else {
911
+ $$renderer5.push("<!--[-1-->");
912
+ File_code($$renderer5, { class: "icon-sm" });
913
+ }
914
+ $$renderer5.push(`<!--]--> <span>${$6.escape(formatLabels.json)}</span> `);
915
+ if (copyState.copiedKey === "json") {
916
+ $$renderer5.push("<!--[0-->");
917
+ $$renderer5.push(`<span class="copied-label svelte-1cj1bq5">Copied!</span>`);
918
+ } else {
919
+ $$renderer5.push("<!--[-1-->");
920
+ }
921
+ $$renderer5.push(`<!--]-->`);
922
+ },
923
+ $$slots: { default: true }
924
+ });
925
+ $$renderer4.push(`<!---->`);
926
+ },
927
+ $$slots: { default: true }
928
+ });
929
+ $$renderer3.push(`<!---->`);
930
+ },
931
+ $$slots: { default: true }
932
+ });
933
+ $$renderer2.push(`<!----></div>`);
934
+ });
935
+ }
936
+
937
+ // src/components/review-editor/comment-sidebar.svelte
938
+ import * as $7 from "svelte/internal/server";
939
+
940
+ // src/utilities/truncate.ts
941
+ function truncate(text, maxLength, ellipsis = "…") {
942
+ if (text.length <= maxLength)
943
+ return text;
944
+ if (maxLength <= ellipsis.length)
945
+ return text.slice(0, maxLength);
946
+ return text.slice(0, maxLength - ellipsis.length) + ellipsis;
947
+ }
948
+ // src/components/review-editor/comment-sidebar.svelte
949
+ import { getVisibleComments, isDocumentAnchor as isDocumentAnchor2 } from "@lostgradient/cinder/commentary/comments";
950
+ function Comment_sidebar($$renderer, $$props) {
951
+ $$renderer.component(($$renderer2) => {
952
+ let {
953
+ id,
954
+ threads,
955
+ activeThreadId = null,
956
+ readonly = false,
957
+ onthreadselect,
958
+ onclearall,
959
+ onadddocumentcomment,
960
+ class: className
961
+ } = $$props;
962
+ let showConfirmClear = false;
963
+ let composingDocumentComment = false;
964
+ function handleStartDocumentComment() {
965
+ composingDocumentComment = true;
966
+ }
967
+ function handleCancelDocumentComment() {
968
+ composingDocumentComment = false;
969
+ }
970
+ function handleSubmitDocumentComment(body) {
971
+ onadddocumentcomment?.(body);
972
+ composingDocumentComment = false;
973
+ }
974
+ const $$d = $7.derived(() => {
975
+ const visible = threads.filter((thread) => getVisibleComments(thread).length > 0);
976
+ const docThreads = visible.filter((thread) => isDocumentAnchor2(thread.anchor));
977
+ const txtThreads = visible.filter((thread) => !isDocumentAnchor2(thread.anchor)).sort((a, b) => {
978
+ const posA = a.anchor.from ?? a.anchor.originalPosition?.offset ?? 0;
979
+ const posB = b.anchor.from ?? b.anchor.originalPosition?.offset ?? 0;
980
+ return posA - posB;
981
+ });
982
+ return { documentThreads: docThreads, textThreads: txtThreads };
983
+ }), documentThreads = $7.derived(() => $$d().documentThreads), textThreads = $7.derived(() => $$d().textThreads);
984
+ const visibleThreads = $7.derived(() => [...documentThreads(), ...textThreads()]);
985
+ function getPreview(thread) {
986
+ const comments = getVisibleComments(thread);
987
+ const firstComment = comments[0];
988
+ if (!firstComment)
989
+ return "";
990
+ return truncate(firstComment.body, 80);
991
+ }
992
+ function handleThreadClick(threadId) {
993
+ onthreadselect?.(threadId);
994
+ }
995
+ function handleClearAllClick() {
996
+ showConfirmClear = true;
997
+ }
998
+ function handleConfirmClear() {
999
+ onclearall?.();
1000
+ showConfirmClear = false;
1001
+ }
1002
+ function handleCancelClear() {
1003
+ showConfirmClear = false;
1004
+ }
1005
+ $$renderer2.push(`<aside${$7.attr("id", id)}${$7.attr_class($7.clsx(classNames("comment-sidebar", className)), "svelte-1g8l8sh")} aria-label="Comment threads"><div class="sidebar-header svelte-1g8l8sh">`);
1006
+ Message_square($$renderer2, { class: "icon-sm" });
1007
+ $$renderer2.push(`<!----> <h2 class="sidebar-title svelte-1g8l8sh">Comments</h2> <span class="thread-count svelte-1g8l8sh">${$7.escape(visibleThreads().length)}</span> `);
1008
+ if (!readonly) {
1009
+ $$renderer2.push("<!--[0-->");
1010
+ Button($$renderer2, {
1011
+ variant: "ghost",
1012
+ size: "xs",
1013
+ "aria-label": composingDocumentComment ? "Cancel document comment" : "Add document comment",
1014
+ title: composingDocumentComment ? "Cancel adding document comment" : "Add comment about the entire document",
1015
+ onclick: composingDocumentComment ? handleCancelDocumentComment : handleStartDocumentComment,
1016
+ children: ($$renderer3) => {
1017
+ if (composingDocumentComment) {
1018
+ $$renderer3.push("<!--[0-->");
1019
+ X($$renderer3, { class: "icon-sm" });
1020
+ } else {
1021
+ $$renderer3.push("<!--[-1-->");
1022
+ Plus($$renderer3, { class: "icon-sm" });
1023
+ }
1024
+ $$renderer3.push(`<!--]-->`);
1025
+ },
1026
+ $$slots: { default: true }
1027
+ });
1028
+ } else {
1029
+ $$renderer2.push("<!--[-1-->");
1030
+ }
1031
+ $$renderer2.push(`<!--]--> `);
1032
+ if (!readonly && visibleThreads().length > 0) {
1033
+ $$renderer2.push("<!--[0-->");
1034
+ Dropdown($$renderer2, {
1035
+ id: `${$7.stringify(id)}-actions`,
1036
+ children: ($$renderer3) => {
1037
+ Dropdown_trigger($$renderer3, {
1038
+ class: "actions-trigger",
1039
+ "aria-label": "Comment actions",
1040
+ showCaret: false,
1041
+ children: ($$renderer4) => {
1042
+ Ellipsis($$renderer4, { class: "icon-sm" });
1043
+ },
1044
+ $$slots: { default: true }
1045
+ });
1046
+ $$renderer3.push(`<!----> `);
1047
+ Dropdown_menu($$renderer3, {
1048
+ children: ($$renderer4) => {
1049
+ Dropdown_item($$renderer4, {
1050
+ variant: "danger",
1051
+ onclick: handleClearAllClick,
1052
+ children: ($$renderer5) => {
1053
+ Trash_2($$renderer5, { class: "icon-sm" });
1054
+ $$renderer5.push(`<!----> Clear all comments`);
1055
+ },
1056
+ $$slots: { default: true }
1057
+ });
1058
+ },
1059
+ $$slots: { default: true }
1060
+ });
1061
+ $$renderer3.push(`<!---->`);
1062
+ },
1063
+ $$slots: { default: true }
1064
+ });
1065
+ } else {
1066
+ $$renderer2.push("<!--[-1-->");
1067
+ }
1068
+ $$renderer2.push(`<!--]--></div> `);
1069
+ if (showConfirmClear) {
1070
+ $$renderer2.push("<!--[0-->");
1071
+ $$renderer2.push(`<div class="confirm-clear svelte-1g8l8sh" role="alertdialog"${$7.attr("aria-labelledby", `${$7.stringify(id)}-confirm-title`)}><p${$7.attr("id", `${$7.stringify(id)}-confirm-title`)} class="confirm-message svelte-1g8l8sh">Delete all ${$7.escape(visibleThreads().length)} comment threads?</p> <div class="confirm-actions svelte-1g8l8sh">`);
1072
+ Button($$renderer2, {
1073
+ variant: "secondary",
1074
+ size: "xs",
1075
+ onclick: handleCancelClear,
1076
+ children: ($$renderer3) => {
1077
+ $$renderer3.push(`<!---->Cancel`);
1078
+ },
1079
+ $$slots: { default: true }
1080
+ });
1081
+ $$renderer2.push(`<!----> `);
1082
+ Button($$renderer2, {
1083
+ variant: "danger",
1084
+ size: "xs",
1085
+ onclick: handleConfirmClear,
1086
+ children: ($$renderer3) => {
1087
+ $$renderer3.push(`<!---->Delete All`);
1088
+ },
1089
+ $$slots: { default: true }
1090
+ });
1091
+ $$renderer2.push(`<!----></div></div>`);
1092
+ } else {
1093
+ $$renderer2.push("<!--[-1-->");
1094
+ }
1095
+ $$renderer2.push(`<!--]--> `);
1096
+ if (composingDocumentComment) {
1097
+ $$renderer2.push("<!--[0-->");
1098
+ $$renderer2.push(`<div class="document-comment-composer svelte-1g8l8sh"><div class="document-comment-header svelte-1g8l8sh">`);
1099
+ File_text($$renderer2, { class: "icon-xs" });
1100
+ $$renderer2.push(`<!----> <span>Document comment</span></div> `);
1101
+ Comment_composer($$renderer2, {
1102
+ id: `${$7.stringify(id)}-document-composer`,
1103
+ placeholder: "Add a comment about the entire document...",
1104
+ onsubmit: handleSubmitDocumentComment,
1105
+ oncancel: handleCancelDocumentComment
1106
+ });
1107
+ $$renderer2.push(`<!----></div>`);
1108
+ } else {
1109
+ $$renderer2.push("<!--[-1-->");
1110
+ }
1111
+ $$renderer2.push(`<!--]--> <div class="thread-list svelte-1g8l8sh">`);
1112
+ if (visibleThreads().length === 0) {
1113
+ $$renderer2.push("<!--[0-->");
1114
+ $$renderer2.push(`<div class="empty-state svelte-1g8l8sh"><p class="empty-message svelte-1g8l8sh">No comments yet</p> <p class="empty-hint svelte-1g8l8sh">Select text or click + to add a comment</p></div>`);
1115
+ } else {
1116
+ $$renderer2.push("<!--[-1-->");
1117
+ $$renderer2.push(`<!--[-->`);
1118
+ const each_array = $7.ensure_array_like(documentThreads());
1119
+ for (let $$index = 0, $$length = each_array.length;$$index < $$length; $$index++) {
1120
+ let thread = each_array[$$index];
1121
+ $$renderer2.push(`<button type="button" class="thread-item svelte-1g8l8sh" data-document="true"${$7.attr("data-active", activeThreadId === thread.id || undefined)}${$7.attr("aria-current", activeThreadId === thread.id ? "true" : undefined)}><div class="thread-document-label svelte-1g8l8sh">`);
1122
+ File_text($$renderer2, { class: "icon-xs" });
1123
+ $$renderer2.push(`<!----> <span>Document comment</span></div> <p class="thread-preview svelte-1g8l8sh">${$7.escape(getPreview(thread))}</p></button>`);
1124
+ }
1125
+ $$renderer2.push(`<!--]--> <!--[-->`);
1126
+ const each_array_1 = $7.ensure_array_like(textThreads());
1127
+ for (let $$index_1 = 0, $$length = each_array_1.length;$$index_1 < $$length; $$index_1++) {
1128
+ let thread = each_array_1[$$index_1];
1129
+ $$renderer2.push(`<button type="button" class="thread-item svelte-1g8l8sh"${$7.attr("data-active", activeThreadId === thread.id || undefined)}${$7.attr("aria-current", activeThreadId === thread.id ? "true" : undefined)}><blockquote class="thread-quote svelte-1g8l8sh">${$7.escape(truncate(thread.anchor.quote, 60))}</blockquote> <p class="thread-preview svelte-1g8l8sh">${$7.escape(getPreview(thread))}</p></button>`);
1130
+ }
1131
+ $$renderer2.push(`<!--]-->`);
1132
+ }
1133
+ $$renderer2.push(`<!--]--></div></aside>`);
1134
+ });
1135
+ }
1136
+
1137
+ // src/components/review-editor/front-matter-fields.svelte
1138
+ import * as $8 from "svelte/internal/server";
1139
+ import { untrack } from "svelte";
1140
+ import { parseFrontMatter as parseFrontMatter2, validateFrontMatter as validateFrontMatter2 } from "@lostgradient/cinder/markdown/pipeline";
1141
+
1142
+ // src/components/review-editor/review-editor-front-matter.ts
1143
+ import {
1144
+ parseFrontMatter,
1145
+ serializeYaml,
1146
+ stringifyFrontMatter,
1147
+ validateFrontMatter
1148
+ } from "@lostgradient/cinder/markdown/pipeline";
1149
+ function parseReviewEditorFrontMatter(markdown) {
1150
+ const parsed = parseFrontMatter(markdown);
1151
+ const bodyOffset = parsed.hasFrontMatter ? markdown.length - parsed.body.length : 0;
1152
+ return {
1153
+ hasFrontMatter: parsed.hasFrontMatter,
1154
+ data: parsed.data,
1155
+ raw: parsed.hasFrontMatter ? parsed.raw ?? "" : null,
1156
+ body: parsed.hasFrontMatter ? parsed.body : markdown,
1157
+ bodyOffset
1158
+ };
1159
+ }
1160
+ function reviewStateToMarkdown(state) {
1161
+ if (parseReviewEditorFrontMatter(state.content).hasFrontMatter)
1162
+ return state.content;
1163
+ if (state.frontMatterRaw == null && state.frontMatter == null)
1164
+ return state.content;
1165
+ if (state.frontMatterRaw === undefined)
1166
+ return state.content;
1167
+ return stringifyFrontMatter(state.frontMatter ?? null, state.content, {
1168
+ originalRaw: state.frontMatterRaw,
1169
+ originalData: state.frontMatter ?? null,
1170
+ preserveEmptyFrontMatter: true
1171
+ });
1172
+ }
1173
+ function combineFrontMatterAndBody(frontMatter, body) {
1174
+ if (!frontMatter.hasFrontMatter)
1175
+ return body;
1176
+ if (frontMatter.data === null && frontMatter.raw !== null && frontMatter.raw.trim() !== "") {
1177
+ return `---
1178
+ ${frontMatter.raw}
1179
+ ---
1180
+ ${body}`;
1181
+ }
1182
+ return stringifyFrontMatter(frontMatter.data, body, {
1183
+ originalRaw: frontMatter.raw,
1184
+ originalData: frontMatter.data,
1185
+ preserveEmptyFrontMatter: true
1186
+ });
1187
+ }
1188
+ function replaceFrontMatterData(markdown, data) {
1189
+ const frontMatter = parseReviewEditorFrontMatter(markdown);
1190
+ if (!frontMatter.hasFrontMatter)
1191
+ return markdown;
1192
+ return stringifyFrontMatter(data, frontMatter.body, {
1193
+ originalRaw: frontMatter.raw,
1194
+ originalData: frontMatter.data,
1195
+ preserveEmptyFrontMatter: true
1196
+ });
1197
+ }
1198
+ function serializeYamlFieldValue(value) {
1199
+ const raw = serializeYaml({ value });
1200
+ if (raw.startsWith(`value:
1201
+ `)) {
1202
+ return raw.slice(`value:
1203
+ `.length).replace(/^ /gm, "");
1204
+ }
1205
+ return raw.replace(/^value:\s?/, "");
1206
+ }
1207
+ function parseYamlFieldValue(raw) {
1208
+ const validation = validateFrontMatter(`value:
1209
+ ${indentYaml(raw)}`);
1210
+ if (!validation.valid) {
1211
+ return { valid: false, error: validation.error ?? "Invalid YAML syntax" };
1212
+ }
1213
+ const parsed = parseFrontMatter(`---
1214
+ value:
1215
+ ${indentYaml(raw)}
1216
+ ---
1217
+ `);
1218
+ return { valid: true, value: parsed.data?.["value"] };
1219
+ }
1220
+ function documentPositionToBodyPosition(position, bodyOffset) {
1221
+ return Math.max(0, position - bodyOffset);
1222
+ }
1223
+ function bodyPositionToDocumentPosition(position, bodyOffset) {
1224
+ return position + bodyOffset;
1225
+ }
1226
+ function documentAnchorToBodyAnchor(anchor, bodyOffset) {
1227
+ return offsetAnchor(anchor, -bodyOffset);
1228
+ }
1229
+ function documentPersistedAnchorToBodyAnchor(anchor, bodyOffset) {
1230
+ return offsetPersistedAnchor(anchor, -bodyOffset);
1231
+ }
1232
+ function bodyAnchorToDocumentAnchor(anchor, bodyOffset, documentText) {
1233
+ return offsetAnchor(anchor, bodyOffset, documentText);
1234
+ }
1235
+ function remapDocumentAnchorBodyOffset(anchor, previousBodyOffset, nextBodyOffset, nextDocumentText) {
1236
+ if (previousBodyOffset === nextBodyOffset)
1237
+ return anchor;
1238
+ return bodyAnchorToDocumentAnchor(documentAnchorToBodyAnchor(anchor, previousBodyOffset), nextBodyOffset, nextDocumentText);
1239
+ }
1240
+ function bodyAnchorUpdateToDocumentAnchorUpdate(update, bodyOffset) {
1241
+ const documentUpdate = {
1242
+ ...update,
1243
+ from: bodyPositionToDocumentPosition(update.from, bodyOffset),
1244
+ to: bodyPositionToDocumentPosition(update.to, bodyOffset)
1245
+ };
1246
+ if (update.lastKnownOffset !== undefined) {
1247
+ documentUpdate.lastKnownOffset = bodyPositionToDocumentPosition(update.lastKnownOffset, bodyOffset);
1248
+ }
1249
+ return documentUpdate;
1250
+ }
1251
+ function offsetAnchor(anchor, offset, documentText) {
1252
+ if (anchor.type === "document")
1253
+ return anchor;
1254
+ const originalPosition = anchor.originalPosition;
1255
+ const originalPositionOffset = originalPosition === undefined ? undefined : Math.max(0, originalPosition.offset + offset);
1256
+ return {
1257
+ ...anchor,
1258
+ from: Math.max(0, anchor.from + offset),
1259
+ to: Math.max(0, anchor.to + offset),
1260
+ lastKnownOffset: anchor.lastKnownOffset === undefined ? undefined : Math.max(0, anchor.lastKnownOffset + offset),
1261
+ originalPosition: originalPosition === undefined || originalPositionOffset === undefined ? undefined : textOffsetToLineColumn(documentText, originalPositionOffset, originalPosition)
1262
+ };
1263
+ }
1264
+ function offsetPersistedAnchor(anchor, offset) {
1265
+ if (anchor.type === "document")
1266
+ return anchor;
1267
+ const originalPosition = anchor.originalPosition;
1268
+ const originalPositionOffset = originalPosition === undefined ? undefined : Math.max(0, originalPosition.offset + offset);
1269
+ return {
1270
+ ...anchor,
1271
+ lastKnownOffset: anchor.lastKnownOffset === undefined ? undefined : Math.max(0, anchor.lastKnownOffset + offset),
1272
+ originalPosition: originalPosition === undefined || originalPositionOffset === undefined ? undefined : { ...originalPosition, offset: originalPositionOffset }
1273
+ };
1274
+ }
1275
+ function indentYaml(raw) {
1276
+ if (raw.trim() === "")
1277
+ return " null";
1278
+ return raw.split(`
1279
+ `).map((line) => line.trim() === "" ? line : ` ${line}`).join(`
1280
+ `);
1281
+ }
1282
+ function textOffsetToLineColumn(documentText, offset, fallback) {
1283
+ if (documentText === undefined) {
1284
+ return { ...fallback, offset };
1285
+ }
1286
+ let line = 1;
1287
+ let column = 1;
1288
+ const clampedOffset = Math.max(0, Math.min(offset, documentText.length));
1289
+ for (let index = 0;index < clampedOffset; index++) {
1290
+ if (documentText[index] === `
1291
+ `) {
1292
+ line++;
1293
+ column = 1;
1294
+ } else {
1295
+ column++;
1296
+ }
1297
+ }
1298
+ return { offset: clampedOffset, line, column };
1299
+ }
1300
+
1301
+ // src/components/review-editor/front-matter-fields.svelte
1302
+ function Front_matter_fields($$renderer, $$props) {
1303
+ $$renderer.component(($$renderer2) => {
1304
+ let { id, data, raw, readonly = false, onchange } = $$props;
1305
+ const entries = $8.derived(() => Object.entries(data ?? {}));
1306
+ const hasParsedFields = $8.derived(() => data !== null && entries().length > 0);
1307
+ const shouldShowRawYaml = $8.derived(() => !hasParsedFields() && raw !== null);
1308
+ let rawDraft = untrack(() => raw) ?? "";
1309
+ let rawError = undefined;
1310
+ let lastRaw = null;
1311
+ let complexDrafts = {};
1312
+ let complexErrors = {};
1313
+ let lastComplexKeys = "";
1314
+ function patchField(name, value) {
1315
+ if (readonly)
1316
+ return;
1317
+ onchange({ ...data ?? {}, [name]: value });
1318
+ }
1319
+ function handleNumberInput(name, rawValue) {
1320
+ if (rawValue.trim() === "") {
1321
+ patchField(name, null);
1322
+ return;
1323
+ }
1324
+ const parsed = Number(rawValue);
1325
+ if (!Number.isFinite(parsed))
1326
+ return;
1327
+ patchField(name, parsed);
1328
+ }
1329
+ function handleComplexInput(name, rawValue) {
1330
+ complexDrafts = { ...complexDrafts, [name]: rawValue };
1331
+ const parsed = parseYamlFieldValue(rawValue);
1332
+ if (!parsed.valid) {
1333
+ complexErrors = { ...complexErrors, [name]: parsed.error };
1334
+ return;
1335
+ }
1336
+ const nextErrors = { ...complexErrors };
1337
+ delete nextErrors[name];
1338
+ complexErrors = nextErrors;
1339
+ patchField(name, parsed.value);
1340
+ }
1341
+ function handleRawInput(rawValue) {
1342
+ rawDraft = rawValue;
1343
+ const validation = validateFrontMatter2(rawValue);
1344
+ rawError = validation.error;
1345
+ if (!validation.valid || readonly)
1346
+ return;
1347
+ const parsed = parseFrontMatter2(`---
1348
+ ${rawValue}
1349
+ ---
1350
+ `);
1351
+ onchange(parsed.data);
1352
+ }
1353
+ function fieldId(name) {
1354
+ return `${id}-${name.replace(/[^a-zA-Z0-9_-]/g, "-")}`;
1355
+ }
1356
+ function isComplexValue(value) {
1357
+ return typeof value === "object" && value !== null;
1358
+ }
1359
+ $$renderer2.push(`<section class="review-editor-front-matter"${$8.attr("aria-labelledby", `${id}-heading`)}><div class="review-editor-front-matter__header"><h3${$8.attr("id", `${id}-heading`)} class="review-editor-front-matter__title">Front matter</h3></div> <div class="review-editor-front-matter__body">`);
1360
+ if (hasParsedFields()) {
1361
+ $$renderer2.push("<!--[0-->");
1362
+ $$renderer2.push(`<!--[-->`);
1363
+ const each_array = $8.ensure_array_like(entries());
1364
+ for (let $$index = 0, $$length = each_array.length;$$index < $$length; $$index++) {
1365
+ let [name, fieldValue] = each_array[$$index];
1366
+ $$renderer2.push(`<div class="review-editor-front-matter__field">`);
1367
+ if (typeof fieldValue === "boolean") {
1368
+ $$renderer2.push("<!--[0-->");
1369
+ Checkbox($$renderer2, {
1370
+ id: fieldId(name),
1371
+ label: name,
1372
+ checked: fieldValue,
1373
+ disabled: readonly,
1374
+ onchange: (event) => patchField(name, event.currentTarget.checked)
1375
+ });
1376
+ } else if (typeof fieldValue === "number") {
1377
+ $$renderer2.push("<!--[1-->");
1378
+ Input($$renderer2, {
1379
+ id: fieldId(name),
1380
+ label: name,
1381
+ value: String(fieldValue),
1382
+ disabled: readonly,
1383
+ oninput: (event) => handleNumberInput(name, event.currentTarget.value)
1384
+ });
1385
+ } else if (typeof fieldValue === "string") {
1386
+ $$renderer2.push("<!--[2-->");
1387
+ Input($$renderer2, {
1388
+ id: fieldId(name),
1389
+ label: name,
1390
+ value: fieldValue,
1391
+ disabled: readonly,
1392
+ oninput: (event) => patchField(name, event.currentTarget.value)
1393
+ });
1394
+ } else if (isComplexValue(fieldValue)) {
1395
+ $$renderer2.push("<!--[3-->");
1396
+ Textarea($$renderer2, {
1397
+ id: fieldId(name),
1398
+ label: name,
1399
+ value: complexDrafts[name] ?? serializeYamlFieldValue(fieldValue),
1400
+ error: complexErrors[name] ?? "",
1401
+ disabled: readonly,
1402
+ rows: Math.max(3, (complexDrafts[name] ?? serializeYamlFieldValue(fieldValue)).split(`
1403
+ `).length),
1404
+ oninput: (event) => handleComplexInput(name, event.currentTarget.value)
1405
+ });
1406
+ } else {
1407
+ $$renderer2.push("<!--[-1-->");
1408
+ Input($$renderer2, {
1409
+ id: fieldId(name),
1410
+ label: name,
1411
+ value: fieldValue === null ? "null" : String(fieldValue),
1412
+ disabled: readonly,
1413
+ oninput: (event) => patchField(name, event.currentTarget.value)
1414
+ });
1415
+ }
1416
+ $$renderer2.push(`<!--]--></div>`);
1417
+ }
1418
+ $$renderer2.push(`<!--]-->`);
1419
+ } else if (shouldShowRawYaml()) {
1420
+ $$renderer2.push("<!--[1-->");
1421
+ Textarea($$renderer2, {
1422
+ id: `${id}-raw`,
1423
+ label: "YAML",
1424
+ value: rawDraft,
1425
+ error: rawError ?? "",
1426
+ disabled: readonly,
1427
+ rows: Math.max(3, rawDraft.split(`
1428
+ `).length),
1429
+ oninput: (event) => handleRawInput(event.currentTarget.value)
1430
+ });
1431
+ } else {
1432
+ $$renderer2.push("<!--[-1-->");
1433
+ $$renderer2.push(`<p class="review-editor-front-matter__empty">No front matter fields.</p>`);
1434
+ }
1435
+ $$renderer2.push(`<!--]--></div></section>`);
1436
+ });
1437
+ }
1438
+
1439
+ // src/components/review-editor/review-editor-controls.svelte
1440
+ import * as $9 from "svelte/internal/server";
1441
+ function Review_editor_controls($$renderer, $$props) {
1442
+ $$renderer.component(($$renderer2) => {
1443
+ let {
1444
+ id,
1445
+ activeView,
1446
+ viewPanelIds,
1447
+ onViewChange,
1448
+ showDiffTabs = true,
1449
+ diffStats,
1450
+ diffViewMode = "unified",
1451
+ hasContentChanges = false,
1452
+ readonly = false,
1453
+ onRevertAll,
1454
+ commentCount = 0,
1455
+ sidebarOpen = false,
1456
+ onSidebarToggle,
1457
+ trailing,
1458
+ class: className
1459
+ } = $$props;
1460
+ function handleViewChange(view) {
1461
+ onViewChange?.(view);
1462
+ }
1463
+ const commentsToggleLabel = $9.derived(() => `${sidebarOpen ? "Close" : "Open"} comments sidebar (${commentCount} ${commentCount === 1 ? "comment" : "comments"})`);
1464
+ let previousCommentCount = null;
1465
+ let liveAnnouncementText = "";
1466
+ let $$settled = true;
1467
+ let $$inner_renderer;
1468
+ function $$render_inner($$renderer3) {
1469
+ $$renderer3.push(`<div${$9.attr("id", id)}${$9.attr_class($9.clsx(classNames("review-editor-controls", className)), "svelte-161pl7w")} role="toolbar" aria-label="Review editor controls"><div class="controls-leading svelte-161pl7w">`);
1470
+ Segmented_control($$renderer3, {
1471
+ id: `${$9.stringify(id)}-view-mode`,
1472
+ label: "Review editor view",
1473
+ hideLabel: true,
1474
+ variant: "tablist",
1475
+ size: "sm",
1476
+ density: "toolbar",
1477
+ value: activeView,
1478
+ onchange: handleViewChange,
1479
+ children: ($$renderer4) => {
1480
+ {
1481
+ let leading = function($$renderer5) {
1482
+ Pencil($$renderer5, { class: "icon-xs" });
1483
+ };
1484
+ Segment($$renderer4, {
1485
+ value: "editor",
1486
+ controls: viewPanelIds?.editor,
1487
+ leading,
1488
+ children: ($$renderer5) => {
1489
+ $$renderer5.push(`<!---->Editor`);
1490
+ },
1491
+ $$slots: { leading: true, default: true }
1492
+ });
1493
+ }
1494
+ $$renderer4.push(`<!----> `);
1495
+ if (showDiffTabs) {
1496
+ $$renderer4.push("<!--[0-->");
1497
+ {
1498
+ let leading = function($$renderer5) {
1499
+ Git_branch($$renderer5, { class: "icon-xs" });
1500
+ };
1501
+ Segment($$renderer4, {
1502
+ value: "diff",
1503
+ controls: viewPanelIds?.diff,
1504
+ leading,
1505
+ children: ($$renderer5) => {
1506
+ $$renderer5.push(`<!---->Diff`);
1507
+ },
1508
+ $$slots: { leading: true, default: true }
1509
+ });
1510
+ }
1511
+ $$renderer4.push(`<!----> `);
1512
+ {
1513
+ let leading = function($$renderer5) {
1514
+ File_text($$renderer5, { class: "icon-xs" });
1515
+ };
1516
+ Segment($$renderer4, {
1517
+ value: "summary",
1518
+ controls: viewPanelIds?.summary,
1519
+ leading,
1520
+ children: ($$renderer5) => {
1521
+ $$renderer5.push(`<!---->Summary`);
1522
+ },
1523
+ $$slots: { leading: true, default: true }
1524
+ });
1525
+ }
1526
+ $$renderer4.push(`<!---->`);
1527
+ } else {
1528
+ $$renderer4.push("<!--[-1-->");
1529
+ }
1530
+ $$renderer4.push(`<!--]-->`);
1531
+ },
1532
+ $$slots: { default: true }
1533
+ });
1534
+ $$renderer3.push(`<!----> `);
1535
+ if (diffStats && (diffStats.added > 0 || diffStats.removed > 0 || diffStats.modified > 0)) {
1536
+ $$renderer3.push("<!--[0-->");
1537
+ Diff_statistics($$renderer3, {
1538
+ variant: "compact",
1539
+ density: "toolbar",
1540
+ added: diffStats.added,
1541
+ removed: diffStats.removed,
1542
+ modified: diffStats.modified,
1543
+ hideZero: true
1544
+ });
1545
+ } else {
1546
+ $$renderer3.push("<!--[-1-->");
1547
+ }
1548
+ $$renderer3.push(`<!--]--> `);
1549
+ if (activeView === "diff") {
1550
+ $$renderer3.push("<!--[0-->");
1551
+ $$renderer3.push(`<div class="controls-separator svelte-161pl7w" aria-hidden="true"></div> `);
1552
+ Segmented_control($$renderer3, {
1553
+ id: `${$9.stringify(id)}-diff-view-mode`,
1554
+ selectionMode: "single",
1555
+ size: "sm",
1556
+ density: "toolbar",
1557
+ label: "Diff view mode",
1558
+ hideLabel: true,
1559
+ get value() {
1560
+ return diffViewMode;
1561
+ },
1562
+ set value($$value) {
1563
+ diffViewMode = $$value;
1564
+ $$settled = false;
1565
+ },
1566
+ children: ($$renderer4) => {
1567
+ Segment($$renderer4, {
1568
+ value: "unified",
1569
+ children: ($$renderer5) => {
1570
+ $$renderer5.push(`<!---->Unified`);
1571
+ },
1572
+ $$slots: { default: true }
1573
+ });
1574
+ $$renderer4.push(`<!----> `);
1575
+ Segment($$renderer4, {
1576
+ value: "final",
1577
+ children: ($$renderer5) => {
1578
+ $$renderer5.push(`<!---->Final`);
1579
+ },
1580
+ $$slots: { default: true }
1581
+ });
1582
+ $$renderer4.push(`<!----> `);
1583
+ Segment($$renderer4, {
1584
+ value: "original",
1585
+ children: ($$renderer5) => {
1586
+ $$renderer5.push(`<!---->Original`);
1587
+ },
1588
+ $$slots: { default: true }
1589
+ });
1590
+ $$renderer4.push(`<!---->`);
1591
+ },
1592
+ $$slots: { default: true }
1593
+ });
1594
+ $$renderer3.push(`<!---->`);
1595
+ } else {
1596
+ $$renderer3.push("<!--[-1-->");
1597
+ }
1598
+ $$renderer3.push(`<!--]--></div> <div class="controls-trailing svelte-161pl7w">`);
1599
+ if (activeView === "diff" && hasContentChanges && !readonly) {
1600
+ $$renderer3.push("<!--[0-->");
1601
+ Button($$renderer3, {
1602
+ variant: "ghost",
1603
+ size: "sm",
1604
+ onclick: onRevertAll,
1605
+ "aria-label": "Revert all changes",
1606
+ title: "Revert all changes",
1607
+ children: ($$renderer4) => {
1608
+ Rotate_ccw($$renderer4, { class: "icon-sm" });
1609
+ $$renderer4.push(`<!----> <span class="cinder-sr-only">Revert All</span>`);
1610
+ },
1611
+ $$slots: { default: true }
1612
+ });
1613
+ } else {
1614
+ $$renderer3.push("<!--[-1-->");
1615
+ }
1616
+ $$renderer3.push(`<!--]--> <div class="comments-toggle-wrapper svelte-161pl7w">`);
1617
+ Button($$renderer3, {
1618
+ variant: "ghost",
1619
+ size: "sm",
1620
+ onclick: onSidebarToggle,
1621
+ "aria-expanded": sidebarOpen,
1622
+ "aria-controls": `${$9.stringify(id)}-sidebar`,
1623
+ "aria-label": commentsToggleLabel(),
1624
+ title: sidebarOpen ? "Close comments sidebar" : "Open comments sidebar",
1625
+ children: ($$renderer4) => {
1626
+ Message_square($$renderer4, { class: "icon-sm" });
1627
+ $$renderer4.push(`<!----> `);
1628
+ Badge($$renderer4, {
1629
+ "aria-hidden": "true",
1630
+ size: "sm",
1631
+ variant: "neutral",
1632
+ children: ($$renderer5) => {
1633
+ $$renderer5.push(`<!---->${$9.escape(commentCount)}`);
1634
+ },
1635
+ $$slots: { default: true }
1636
+ });
1637
+ $$renderer4.push(`<!---->`);
1638
+ },
1639
+ $$slots: { default: true }
1640
+ });
1641
+ $$renderer3.push(`<!----></div> `);
1642
+ if (trailing) {
1643
+ $$renderer3.push("<!--[0-->");
1644
+ trailing($$renderer3);
1645
+ $$renderer3.push(`<!---->`);
1646
+ } else {
1647
+ $$renderer3.push("<!--[-1-->");
1648
+ }
1649
+ $$renderer3.push(`<!--]--></div></div> <div role="status" aria-live="polite" aria-atomic="true" class="comments-count-announcer cinder-sr-only">${$9.escape(liveAnnouncementText)}</div>`);
1650
+ }
1651
+ do {
1652
+ $$settled = true;
1653
+ $$inner_renderer = $$renderer2.copy();
1654
+ $$render_inner($$inner_renderer);
1655
+ } while (!$$settled);
1656
+ $$renderer2.subsume($$inner_renderer);
1657
+ $9.bind_props($$props, { diffViewMode });
1658
+ });
1659
+ }
1660
+
1661
+ // src/components/review-editor/review-editor-selection-geometry.ts
1662
+ function getSelectionAnchorRect(range) {
1663
+ const rect = Array.from(range.getClientRects()).find((clientRect) => {
1664
+ return clientRect.width > 0 && clientRect.height > 0;
1665
+ }) ?? range.getBoundingClientRect();
1666
+ if (rect.width === 0 && rect.height === 0)
1667
+ return null;
1668
+ return rect;
1669
+ }
1670
+ function getSelectionAnchorPosition(range) {
1671
+ const rect = getSelectionAnchorRect(range);
1672
+ if (!rect)
1673
+ return null;
1674
+ return {
1675
+ x: rect.left + rect.width / 2,
1676
+ y: rect.top,
1677
+ height: rect.height
1678
+ };
1679
+ }
1680
+
1681
+ // src/components/review-editor/review-editor-impl.svelte
1682
+ import { computeLineDiff, getDiffStats } from "@lostgradient/cinder/markdown/diff/line-diff";
1683
+ import {
1684
+ generateMarkdownSummary,
1685
+ generateUnifiedDiff,
1686
+ generateCommentsExport
1687
+ } from "@lostgradient/cinder/commentary/export";
1688
+ function Review_editor_impl($$renderer, $$props) {
1689
+ $$renderer.component(($$renderer2) => {
1690
+ const reducedMotion = useReducedMotion();
1691
+ let {
1692
+ id,
1693
+ original = "",
1694
+ value = "",
1695
+ threads = [],
1696
+ mode = "edit",
1697
+ currentUserId,
1698
+ placeholder = "Start writing...",
1699
+ name,
1700
+ class: className,
1701
+ onchange,
1702
+ onthreadcreate,
1703
+ onthreaddelete,
1704
+ oncommentcreate,
1705
+ oncommentupdate,
1706
+ oncommentdelete,
1707
+ snapshotMode = false
1708
+ } = $$props;
1709
+ let containerElement = null;
1710
+ let editorRef = undefined;
1711
+ let liveRegionRef = undefined;
1712
+ let editorViewReady = false;
1713
+ let currentSelection = null;
1714
+ let popoverThreadId = null;
1715
+ let popoverPosition = null;
1716
+ let selectTimeoutId = null;
1717
+ let activeThreadId = null;
1718
+ let sidebarOpen = false;
1719
+ const currentDocument = $10.derived(() => parseReviewEditorFrontMatter(value));
1720
+ const editorValue = $10.derived(() => currentDocument().body);
1721
+ const viewPanelIds = $10.derived(() => ({
1722
+ editor: `${id}-editor-panel`,
1723
+ diff: `${id}-diff-panel`,
1724
+ summary: `${id}-summary-panel`
1725
+ }));
1726
+ let activeView = "editor";
1727
+ let diffViewMode = "unified";
1728
+ const diffStats = $10.derived(() => {
1729
+ if (!original) {
1730
+ return { added: 0, removed: 0, modified: 0 };
1731
+ }
1732
+ const normalizedOriginal = normalize(original);
1733
+ const normalizedCurrent = normalize(value);
1734
+ const lineDiffs = computeLineDiff(normalizedOriginal, normalizedCurrent);
1735
+ return getDiffStats(lineDiffs);
1736
+ });
1737
+ const hasContentChanges = $10.derived(() => diffStats().added > 0 || diffStats().removed > 0 || diffStats().modified > 0);
1738
+ const commentCount = $10.derived(() => threads.reduce((count, thread) => {
1739
+ return count + thread.comments.filter((c) => !c.deletedAt).length;
1740
+ }, 0));
1741
+ const summaryContent = $10.derived(() => {
1742
+ const result = exportMarkdownSummary();
1743
+ return result.markdown.replace(/^# Review Summary\n+/, "");
1744
+ });
1745
+ let selectionPopoverPosition = null;
1746
+ let capturedSelectionForPopover = null;
1747
+ let selectionPopoverExpanded = false;
1748
+ const showSelectionPopover = $10.derived(() => activeView === "editor" && mode === "edit" && currentUserId !== undefined && (selectionPopoverPosition !== null || selectionPopoverExpanded) && popoverThreadId === null);
1749
+ const POSITION_DELAY_MS = 350;
1750
+ function getScrollBehavior() {
1751
+ return reducedMotion.current ? "instant" : "smooth";
1752
+ }
1753
+ function announce(message, priority = "polite") {
1754
+ liveRegionRef?.announce(message, priority);
1755
+ }
1756
+ const popoverThread = $10.derived(() => {
1757
+ if (!popoverThreadId)
1758
+ return null;
1759
+ return threads.find((t) => t.id === popoverThreadId) ?? null;
1760
+ });
1761
+ function scrollAnchorIntoView(threadId) {
1762
+ const editorDom = editorRef?.getView()?.dom;
1763
+ const anchorElement = editorDom?.querySelector(`[data-thread-id="${threadId}"]`);
1764
+ if (anchorElement) {
1765
+ anchorElement.scrollIntoView({ behavior: getScrollBehavior(), block: "center" });
1766
+ }
1767
+ }
1768
+ function handlePopoverClose() {
1769
+ if (selectTimeoutId !== null) {
1770
+ clearTimeout(selectTimeoutId);
1771
+ selectTimeoutId = null;
1772
+ }
1773
+ popoverThreadId = null;
1774
+ popoverPosition = null;
1775
+ activeThreadId = null;
1776
+ }
1777
+ function handlePopoverDelete(threadId) {
1778
+ if (currentUserId) {
1779
+ deleteThread(threadId);
1780
+ handlePopoverClose();
1781
+ }
1782
+ }
1783
+ function handlePopoverCommentUpdate(threadId, commentId, body) {
1784
+ updateComment(threadId, commentId, body);
1785
+ }
1786
+ function handlePopoverCommentDelete(threadId, commentId) {
1787
+ deleteComment(threadId, commentId);
1788
+ }
1789
+ function handlePopoverCommentCreate(threadId, body) {
1790
+ if (currentUserId) {
1791
+ createComment(threadId, body, currentUserId);
1792
+ }
1793
+ }
1794
+ function calculateViewportPosition(from) {
1795
+ const view = editorRef?.getView();
1796
+ if (!view)
1797
+ return null;
1798
+ try {
1799
+ const coords = view.coordsAtPos(documentPositionToBodyPosition(from, currentDocument().bodyOffset));
1800
+ if (coords) {
1801
+ return {
1802
+ top: coords.top + 24,
1803
+ left: Math.max(16, coords.left)
1804
+ };
1805
+ }
1806
+ } catch {}
1807
+ return null;
1808
+ }
1809
+ let lastSyncedFingerprint = null;
1810
+ let pendingState = null;
1811
+ function createSyncFingerprint(threadsToSync) {
1812
+ return threadsToSync.map((t) => {
1813
+ const a = t.anchor;
1814
+ return `${t.id}:${a.from}:${a.to}:${a.quote}:${a.prefix}:${a.suffix}:${a.lastKnownOffset ?? ""}`;
1815
+ }).join("|");
1816
+ }
1817
+ function createPluginSyncFingerprint(threadsToSync) {
1818
+ return `${currentDocument().bodyOffset}|${createSyncFingerprint(threadsToSync)}`;
1819
+ }
1820
+ function handleAnchorsUpdate(updates) {
1821
+ threads = threads.map((thread) => {
1822
+ const update = updates.find((u) => u.threadId === thread.id);
1823
+ if (update) {
1824
+ const documentUpdate = bodyAnchorUpdateToDocumentAnchorUpdate(update, currentDocument().bodyOffset);
1825
+ return {
1826
+ ...thread,
1827
+ anchor: {
1828
+ ...thread.anchor,
1829
+ from: documentUpdate.from,
1830
+ to: documentUpdate.to,
1831
+ quote: documentUpdate.quote,
1832
+ prefix: documentUpdate.prefix,
1833
+ suffix: documentUpdate.suffix,
1834
+ lastKnownOffset: documentUpdate.lastKnownOffset
1835
+ }
1836
+ };
1837
+ }
1838
+ return thread;
1839
+ });
1840
+ lastSyncedFingerprint = createPluginSyncFingerprint(threads);
1841
+ }
1842
+ const anchorPlugin = createAnchorPlugin({
1843
+ onAnchorsUpdate: handleAnchorsUpdate,
1844
+ onAnchorClick: handleAnchorClick
1845
+ });
1846
+ function handleAnchorClick(threadId, event) {
1847
+ if (selectTimeoutId !== null) {
1848
+ clearTimeout(selectTimeoutId);
1849
+ selectTimeoutId = null;
1850
+ }
1851
+ selectionPopoverPosition = null;
1852
+ capturedSelectionForPopover = null;
1853
+ selectionPopoverExpanded = false;
1854
+ activeThreadId = threadId;
1855
+ const thread = threads.find((t) => t.id === threadId);
1856
+ if (thread) {
1857
+ popoverPosition = { x: event.clientX + 16, y: event.clientY };
1858
+ popoverThreadId = threadId;
1859
+ }
1860
+ }
1861
+ function syncThreadsToPlugin(threadsToSync) {
1862
+ const view = editorRef?.getView();
1863
+ if (!view)
1864
+ return;
1865
+ const fingerprint = createPluginSyncFingerprint(threadsToSync);
1866
+ if (fingerprint === lastSyncedFingerprint)
1867
+ return;
1868
+ lastSyncedFingerprint = fingerprint;
1869
+ view.dispatch(view.state.tr.setMeta(anchorPluginKey, {
1870
+ type: "sync",
1871
+ threads: threadsToSync.map((thread) => ({
1872
+ ...thread,
1873
+ anchor: documentAnchorToBodyAnchor(thread.anchor, currentDocument().bodyOffset)
1874
+ })),
1875
+ source: "external"
1876
+ }));
1877
+ }
1878
+ function attemptReanchoring() {
1879
+ if (!pendingState)
1880
+ return;
1881
+ const view = editorRef?.getView();
1882
+ if (!view)
1883
+ return;
1884
+ const currentMarkdown = editorRef?.getMarkdown() ?? "";
1885
+ const pendingDocument = parseReviewEditorFrontMatter(pendingState.content);
1886
+ const expectedMarkdown = pendingDocument.body;
1887
+ if (!contentEquals2(currentMarkdown, expectedMarkdown)) {
1888
+ return;
1889
+ }
1890
+ const state = pendingState;
1891
+ pendingState = null;
1892
+ const { doc } = view.state;
1893
+ const documentText = doc.textBetween(0, doc.content.size, `
1894
+ `);
1895
+ const reanchoredThreads = [];
1896
+ for (const persistedThread of state.threads) {
1897
+ const bodyPersistedAnchor = documentPersistedAnchorToBodyAnchor(persistedThread.anchor, pendingDocument.bodyOffset);
1898
+ const result = reanchorQuote(documentText, bodyPersistedAnchor);
1899
+ if (!result.found) {
1900
+ onthreaddelete?.({ threadId: persistedThread.id });
1901
+ continue;
1902
+ }
1903
+ const from = textOffsetToProseMirrorPosition(doc, result.from);
1904
+ const to = textOffsetToProseMirrorPosition(doc, result.to);
1905
+ if (from !== null && to !== null) {
1906
+ const matchedQuote = documentText.slice(result.from, result.to);
1907
+ const newPrefix = documentText.slice(Math.max(0, result.from - ANCHOR_CONTEXT_LENGTH), result.from);
1908
+ const newSuffix = documentText.slice(result.to, Math.min(documentText.length, result.to + ANCHOR_CONTEXT_LENGTH));
1909
+ reanchoredThreads.push({
1910
+ ...persistedThread,
1911
+ anchor: {
1912
+ ...persistedThread.anchor,
1913
+ from: from + pendingDocument.bodyOffset,
1914
+ to: to + pendingDocument.bodyOffset,
1915
+ quote: matchedQuote,
1916
+ prefix: newPrefix,
1917
+ suffix: newSuffix,
1918
+ status: "anchored",
1919
+ lastKnownOffset: result.from + pendingDocument.bodyOffset
1920
+ }
1921
+ });
1922
+ }
1923
+ }
1924
+ threads = reanchoredThreads;
1925
+ syncThreadsToPlugin(threads);
1926
+ }
1927
+ const isReadonly = $10.derived(() => mode === "readonly");
1928
+ const changeTracker = createChangeTracker({ debounceMs: 300, includeFrontMatter: true });
1929
+ let selectionTimeoutId = null;
1930
+ const SELECTION_DEBOUNCE_MS = 20;
1931
+ function handleSelectionChange(selection) {
1932
+ if (!editorViewReady) {
1933
+ editorViewReady = true;
1934
+ }
1935
+ currentSelection = selection;
1936
+ }
1937
+ function handleChange(newValue) {
1938
+ value = newValue;
1939
+ onchange?.(newValue);
1940
+ }
1941
+ function handleEditorBodyChange(newBody) {
1942
+ handleChange(combineFrontMatterAndBody(currentDocument(), newBody));
1943
+ }
1944
+ function handleFrontMatterChange(data) {
1945
+ const previousBodyOffset = currentDocument().bodyOffset;
1946
+ const nextValue = replaceFrontMatterData(value, data);
1947
+ const nextDocument = parseReviewEditorFrontMatter(nextValue);
1948
+ if (previousBodyOffset !== nextDocument.bodyOffset) {
1949
+ threads = threads.map((thread) => ({
1950
+ ...thread,
1951
+ anchor: remapDocumentAnchorBodyOffset(thread.anchor, previousBodyOffset, nextDocument.bodyOffset, nextValue)
1952
+ }));
1953
+ }
1954
+ handleChange(nextValue);
1955
+ }
1956
+ function focus() {
1957
+ editorRef?.focus();
1958
+ }
1959
+ function getMarkdown() {
1960
+ const body = editorRef?.getMarkdown() ?? currentDocument().body;
1961
+ return combineFrontMatterAndBody(currentDocument(), body);
1962
+ }
1963
+ function setMarkdown(content) {
1964
+ value = content;
1965
+ editorRef?.setMarkdown(parseReviewEditorFrontMatter(content).body);
1966
+ }
1967
+ function getAst() {
1968
+ return editorRef?.getAst();
1969
+ }
1970
+ function getSelection() {
1971
+ const selection = editorRef?.getSelection();
1972
+ if (!selection)
1973
+ return null;
1974
+ return {
1975
+ ...selection,
1976
+ from: selection.from + currentDocument().bodyOffset,
1977
+ to: selection.to + currentDocument().bodyOffset
1978
+ };
1979
+ }
1980
+ function scrollToThread(threadId) {
1981
+ const thread = threads.find((t) => t.id === threadId);
1982
+ if (!thread)
1983
+ return;
1984
+ const view = editorRef?.getView();
1985
+ if (view && thread.anchor.from !== undefined) {
1986
+ const coords = view.coordsAtPos(documentPositionToBodyPosition(thread.anchor.from, currentDocument().bodyOffset));
1987
+ if (coords) {
1988
+ view.dom.scrollTo({
1989
+ top: coords.top - 100,
1990
+ behavior: getScrollBehavior()
1991
+ });
1992
+ }
1993
+ }
1994
+ }
1995
+ function handleSidebarThreadSelect(threadId) {
1996
+ const thread = threads.find((t) => t.id === threadId);
1997
+ if (!thread)
1998
+ return;
1999
+ activeThreadId = threadId;
2000
+ scrollToThread(threadId);
2001
+ setTimeout(() => {
2002
+ const view = editorRef?.getView();
2003
+ if (view && thread.anchor.from !== undefined) {
2004
+ const coords = view.coordsAtPos(documentPositionToBodyPosition(thread.anchor.from, currentDocument().bodyOffset));
2005
+ if (coords) {
2006
+ popoverPosition = { x: coords.left + 16, y: coords.top };
2007
+ popoverThreadId = threadId;
2008
+ }
2009
+ }
2010
+ }, POSITION_DELAY_MS);
2011
+ }
2012
+ function handleAddDocumentComment(body) {
2013
+ if (!currentUserId) {
2014
+ devWarn("Cannot add document comment: no currentUserId");
2015
+ return;
2016
+ }
2017
+ createDocumentThread(body, currentUserId);
2018
+ }
2019
+ function getState() {
2020
+ const persistedThreads = threads.map((thread) => ({
2021
+ ...thread,
2022
+ anchor: {
2023
+ quote: thread.anchor.quote,
2024
+ prefix: thread.anchor.prefix,
2025
+ suffix: thread.anchor.suffix,
2026
+ status: thread.anchor.status,
2027
+ blockId: thread.anchor.blockId,
2028
+ originalPosition: thread.anchor.originalPosition,
2029
+ originalQuote: thread.anchor.originalQuote,
2030
+ lastKnownOffset: thread.anchor.lastKnownOffset
2031
+ }
2032
+ }));
2033
+ return {
2034
+ schemaVersion: 4,
2035
+ content: value,
2036
+ original: original || undefined,
2037
+ threads: persistedThreads,
2038
+ reviewSession: undefined,
2039
+ frontMatter: currentDocument().data,
2040
+ frontMatterRaw: currentDocument().raw,
2041
+ updatedAt: new Date().toISOString()
2042
+ };
2043
+ }
2044
+ function setState(state) {
2045
+ const nextValue = reviewStateToMarkdown(state);
2046
+ value = nextValue;
2047
+ if (state.original !== undefined) {
2048
+ original = state.original;
2049
+ }
2050
+ pendingState = { ...state, content: nextValue };
2051
+ attemptReanchoring();
2052
+ }
2053
+ function getView() {
2054
+ return editorRef?.getView() ?? null;
2055
+ }
2056
+ function getEditor() {
2057
+ return editorRef?.getEditor() ?? null;
2058
+ }
2059
+ function exportMarkdownSummary(options = undefined) {
2060
+ return generateMarkdownSummary(getState(), options);
2061
+ }
2062
+ function exportUnifiedDiff(options = undefined) {
2063
+ return generateUnifiedDiff(getState(), options);
2064
+ }
2065
+ function handleExportContent() {
2066
+ return value;
2067
+ }
2068
+ function handleExportSummary() {
2069
+ return exportMarkdownSummary().markdown;
2070
+ }
2071
+ function handleExportJSON() {
2072
+ const json = stringifyOrNull(getState());
2073
+ if (json === null) {
2074
+ return '{"error": "Failed to serialize editor state"}';
2075
+ }
2076
+ return json;
2077
+ }
2078
+ function handleExportDiff() {
2079
+ return exportUnifiedDiff().diff;
2080
+ }
2081
+ function handleExportComments() {
2082
+ return generateCommentsExport(getState()).markdown;
2083
+ }
2084
+ function getFieldName(field) {
2085
+ return name ? `${name}-${field}` : field;
2086
+ }
2087
+ const formOriginal = $10.derived(() => original);
2088
+ const formCurrent = $10.derived(() => value);
2089
+ const formComments = $10.derived(() => JSON.stringify(threads));
2090
+ const formDiff = $10.derived(() => exportUnifiedDiff().diff);
2091
+ const formSummary = $10.derived(() => exportMarkdownSummary().markdown);
2092
+ function getFormData() {
2093
+ return {
2094
+ original: formOriginal(),
2095
+ current: formCurrent(),
2096
+ comments: formComments(),
2097
+ diff: formDiff(),
2098
+ summary: formSummary()
2099
+ };
2100
+ }
2101
+ function reset() {
2102
+ value = original;
2103
+ onchange?.(original);
2104
+ for (const thread of threads) {
2105
+ onthreaddelete?.({ threadId: thread.id });
2106
+ }
2107
+ popoverThreadId = null;
2108
+ popoverPosition = null;
2109
+ activeThreadId = null;
2110
+ activeView = "editor";
2111
+ selectionPopoverPosition = null;
2112
+ capturedSelectionForPopover = null;
2113
+ selectionPopoverExpanded = false;
2114
+ announce("Review reset");
2115
+ }
2116
+ function handleSelectionComment(body) {
2117
+ function failWithMessage(message) {
2118
+ devWarn(message);
2119
+ selectionPopoverPosition = null;
2120
+ capturedSelectionForPopover = null;
2121
+ selectionPopoverExpanded = false;
2122
+ announce("Could not add comment. Please try selecting text again.", "assertive");
2123
+ }
2124
+ if (!currentUserId) {
2125
+ failWithMessage("Cannot create comment: no currentUserId set");
2126
+ return;
2127
+ }
2128
+ if (!capturedSelectionForPopover) {
2129
+ failWithMessage("Cannot create comment: no captured selection");
2130
+ return;
2131
+ }
2132
+ if (mode === "readonly") {
2133
+ failWithMessage("Cannot create thread: editor is readonly");
2134
+ return;
2135
+ }
2136
+ const view = editorRef?.getView();
2137
+ if (!view) {
2138
+ failWithMessage("Cannot create thread: editor view not available");
2139
+ return;
2140
+ }
2141
+ const { from, to } = capturedSelectionForPopover;
2142
+ const docSize = view.state.doc.content.size;
2143
+ if (from < 0 || to > docSize || from > to) {
2144
+ failWithMessage("Cannot create thread: captured selection is out of bounds");
2145
+ return;
2146
+ }
2147
+ const anchor = bodyAnchorToDocumentAnchor(buildAnchorFromSelection(view, from, to), currentDocument().bodyOffset, value);
2148
+ const requestId = generateId();
2149
+ const mentions = extractMentions(body);
2150
+ const event = {
2151
+ requestId,
2152
+ anchor,
2153
+ body,
2154
+ authorId: currentUserId,
2155
+ mentions: mentions.length > 0 ? mentions : undefined
2156
+ };
2157
+ onthreadcreate?.(event);
2158
+ capturedSelectionForPopover = null;
2159
+ selectionPopoverPosition = null;
2160
+ selectionPopoverExpanded = false;
2161
+ announce("Comment added");
2162
+ }
2163
+ function handleSelectionPopoverExpand() {
2164
+ selectionPopoverExpanded = true;
2165
+ }
2166
+ function handleSelectionPopoverCancel() {
2167
+ selectionPopoverExpanded = false;
2168
+ }
2169
+ function handleSelectionPopoverClose() {
2170
+ selectionPopoverPosition = null;
2171
+ capturedSelectionForPopover = null;
2172
+ selectionPopoverExpanded = false;
2173
+ }
2174
+ function createThread(body, authorId) {
2175
+ if (!currentSelection || currentSelection.isCollapsed) {
2176
+ devWarn("Cannot create thread: no text selected");
2177
+ return null;
2178
+ }
2179
+ if (mode === "readonly") {
2180
+ devWarn("Cannot create thread: editor is readonly");
2181
+ return null;
2182
+ }
2183
+ const view = editorRef?.getView();
2184
+ if (!view) {
2185
+ devWarn("Cannot create thread: editor view not available");
2186
+ return null;
2187
+ }
2188
+ const { from, to } = currentSelection;
2189
+ const anchor = bodyAnchorToDocumentAnchor(buildAnchorFromSelection(view, from, to), currentDocument().bodyOffset, value);
2190
+ const mentions = extractMentions(body);
2191
+ const requestId = generateId();
2192
+ const event = {
2193
+ requestId,
2194
+ anchor,
2195
+ body,
2196
+ authorId,
2197
+ mentions: mentions.length > 0 ? mentions : undefined
2198
+ };
2199
+ onthreadcreate?.(event);
2200
+ announce("Comment added");
2201
+ return requestId;
2202
+ }
2203
+ function createDocumentThread(body, authorId) {
2204
+ if (mode === "readonly") {
2205
+ devWarn("Cannot create thread: editor is readonly");
2206
+ return null;
2207
+ }
2208
+ const anchor = createDocumentAnchor();
2209
+ const mentions = extractMentions(body);
2210
+ const requestId = generateId();
2211
+ const event = {
2212
+ requestId,
2213
+ anchor,
2214
+ body,
2215
+ authorId,
2216
+ mentions: mentions.length > 0 ? mentions : undefined
2217
+ };
2218
+ onthreadcreate?.(event);
2219
+ announce("Document comment added");
2220
+ return requestId;
2221
+ }
2222
+ function deleteThread(threadId) {
2223
+ if (mode === "readonly")
2224
+ return;
2225
+ const thread = threads.find((t) => t.id === threadId);
2226
+ if (!thread)
2227
+ return;
2228
+ onthreaddelete?.({ threadId });
2229
+ }
2230
+ function clearAllThreads() {
2231
+ if (mode === "readonly")
2232
+ return;
2233
+ if (threads.length === 0)
2234
+ return;
2235
+ for (const thread of threads) {
2236
+ onthreaddelete?.({ threadId: thread.id });
2237
+ }
2238
+ popoverThreadId = null;
2239
+ popoverPosition = null;
2240
+ activeThreadId = null;
2241
+ announce("All comments cleared");
2242
+ }
2243
+ function createComment(threadId, body, authorId) {
2244
+ if (mode === "readonly")
2245
+ return null;
2246
+ const thread = threads.find((t) => t.id === threadId);
2247
+ if (!thread)
2248
+ return null;
2249
+ const mentions = extractMentions(body);
2250
+ const requestId = generateId();
2251
+ oncommentcreate?.({
2252
+ requestId,
2253
+ threadId,
2254
+ body,
2255
+ authorId,
2256
+ mentions: mentions.length > 0 ? mentions : undefined
2257
+ });
2258
+ announce("Comment added");
2259
+ return requestId;
2260
+ }
2261
+ function updateComment(threadId, commentId, body) {
2262
+ if (mode === "readonly")
2263
+ return;
2264
+ const thread = threads.find((t) => t.id === threadId);
2265
+ const comment = thread?.comments.find((c) => c.id === commentId);
2266
+ if (!comment || comment.deletedAt)
2267
+ return;
2268
+ const mentions = extractMentions(body);
2269
+ oncommentupdate?.({
2270
+ threadId,
2271
+ commentId,
2272
+ body,
2273
+ mentions: mentions.length > 0 ? mentions : undefined
2274
+ });
2275
+ }
2276
+ function deleteComment(threadId, commentId, soft = true) {
2277
+ if (mode === "readonly")
2278
+ return;
2279
+ const thread = threads.find((t) => t.id === threadId);
2280
+ const comment = thread?.comments.find((c) => c.id === commentId);
2281
+ if (!comment || soft && comment.deletedAt)
2282
+ return;
2283
+ oncommentdelete?.({ threadId, commentId, soft });
2284
+ announce("Comment deleted");
2285
+ }
2286
+ function createBlockThread(body, authorId) {
2287
+ if (mode === "readonly") {
2288
+ devWarn("Cannot create block thread: editor is readonly");
2289
+ return null;
2290
+ }
2291
+ const view = editorRef?.getView();
2292
+ if (!view) {
2293
+ devWarn("Cannot create block thread: editor view not available");
2294
+ return null;
2295
+ }
2296
+ const { from } = view.state.selection;
2297
+ const resolvedPos = view.state.doc.resolve(from);
2298
+ for (let depth = resolvedPos.depth;depth > 0; depth--) {
2299
+ const node = resolvedPos.node(depth);
2300
+ if (!node.isBlock)
2301
+ continue;
2302
+ const blockFrom = resolvedPos.start(depth);
2303
+ const blockTo = resolvedPos.end(depth);
2304
+ const anchor = bodyAnchorToDocumentAnchor(buildAnchorFromSelection(view, blockFrom, blockTo), currentDocument().bodyOffset, value);
2305
+ const mentions = extractMentions(body);
2306
+ const requestId = generateId();
2307
+ onthreadcreate?.({
2308
+ requestId,
2309
+ anchor,
2310
+ body,
2311
+ authorId,
2312
+ mentions: mentions.length > 0 ? mentions : undefined
2313
+ });
2314
+ return requestId;
2315
+ }
2316
+ devWarn("Cannot create block thread: cursor not inside a block");
2317
+ return null;
2318
+ }
2319
+ const focusRegions = [
2320
+ {
2321
+ id: "editor",
2322
+ selector: ".review-editor-main",
2323
+ label: "Editor"
2324
+ },
2325
+ { id: "popover", selector: ".thread-popover", label: "Thread" }
2326
+ ];
2327
+ const focusNavigator = createFocusRegionNavigator(focusRegions, {
2328
+ isRegionActive: (region) => {
2329
+ if (region.id === "popover") {
2330
+ return popoverThread() !== null;
2331
+ }
2332
+ return true;
2333
+ },
2334
+ customFocusHandler: (region) => {
2335
+ if (region.id === "editor") {
2336
+ editorRef?.getView()?.focus();
2337
+ return true;
2338
+ }
2339
+ return false;
2340
+ }
2341
+ });
2342
+ function handleContainerKeyDown(event) {
2343
+ if (event.key !== "F6")
2344
+ return;
2345
+ const container = event.currentTarget;
2346
+ if (!(container instanceof HTMLElement))
2347
+ return;
2348
+ event.preventDefault();
2349
+ const current = focusNavigator.getCurrentRegion(container);
2350
+ const next = focusNavigator.getNextRegion(current, event.shiftKey);
2351
+ focusNavigator.focusRegion(container, next);
2352
+ }
2353
+ function exportActionsSnippet($$renderer3) {
2354
+ Export_actions($$renderer3, {
2355
+ id: `${$10.stringify(id)}-export`,
2356
+ onexportcontent: handleExportContent,
2357
+ onexportsummary: handleExportSummary,
2358
+ onexportjson: handleExportJSON,
2359
+ onexportdiff: handleExportDiff,
2360
+ onexportcomments: handleExportComments
2361
+ });
2362
+ }
2363
+ let $$settled = true;
2364
+ let $$inner_renderer;
2365
+ function $$render_inner($$renderer3) {
2366
+ $$renderer3.push(`<div data-testid="review-editor"${$10.attr_class($10.clsx(classNames("review-editor-container", className)), "svelte-1rnat08")}${$10.attr("data-mode", mode)}${$10.attr("data-view", activeView)}${$10.attr("data-ready", editorViewReady && !pendingState ? true : undefined)}${$10.attr("data-snapshot-mode", snapshotMode || undefined)}>`);
2367
+ Live_region($$renderer3, {});
2368
+ $$renderer3.push(`<!----> `);
2369
+ if (name) {
2370
+ $$renderer3.push("<!--[0-->");
2371
+ $$renderer3.push(`<input type="hidden"${$10.attr("name", getFieldName("original"))}${$10.attr("value", formOriginal())} class="svelte-1rnat08"/> <input type="hidden"${$10.attr("name", getFieldName("current"))}${$10.attr("value", formCurrent())} class="svelte-1rnat08"/> <input type="hidden"${$10.attr("name", getFieldName("comments"))}${$10.attr("value", formComments())} class="svelte-1rnat08"/> <input type="hidden"${$10.attr("name", getFieldName("diff"))}${$10.attr("value", formDiff())} class="svelte-1rnat08"/> <input type="hidden"${$10.attr("name", getFieldName("summary"))}${$10.attr("value", formSummary())} class="svelte-1rnat08"/>`);
2372
+ } else {
2373
+ $$renderer3.push("<!--[-1-->");
2374
+ }
2375
+ $$renderer3.push(`<!--]--> `);
2376
+ Review_editor_controls($$renderer3, {
2377
+ id: `${$10.stringify(id)}-controls`,
2378
+ activeView,
2379
+ viewPanelIds: viewPanelIds(),
2380
+ onViewChange: (view) => {
2381
+ if (view !== "editor") {
2382
+ selectionPopoverPosition = null;
2383
+ capturedSelectionForPopover = null;
2384
+ selectionPopoverExpanded = false;
2385
+ }
2386
+ activeView = view;
2387
+ announce(`Switched to ${view} view`);
2388
+ },
2389
+ showDiffTabs: !!original,
2390
+ diffStats: diffStats(),
2391
+ hasContentChanges: hasContentChanges(),
2392
+ readonly: isReadonly(),
2393
+ onRevertAll: () => {
2394
+ value = original;
2395
+ onchange?.(original);
2396
+ announce("All changes reverted");
2397
+ },
2398
+ commentCount: commentCount(),
2399
+ sidebarOpen,
2400
+ onSidebarToggle: () => sidebarOpen = !sidebarOpen,
2401
+ trailing: exportActionsSnippet,
2402
+ get diffViewMode() {
2403
+ return diffViewMode;
2404
+ },
2405
+ set diffViewMode($$value) {
2406
+ diffViewMode = $$value;
2407
+ $$settled = false;
2408
+ }
2409
+ });
2410
+ $$renderer3.push(`<!----> <div class="review-editor-main svelte-1rnat08">`);
2411
+ if (activeView === "editor") {
2412
+ $$renderer3.push("<!--[0-->");
2413
+ $$renderer3.push(`<div${$10.attr("id", viewPanelIds().editor)} class="review-editor-view-panel svelte-1rnat08" role="tabpanel" aria-label="Editor view">`);
2414
+ if (currentDocument().hasFrontMatter) {
2415
+ $$renderer3.push("<!--[0-->");
2416
+ Front_matter_fields($$renderer3, {
2417
+ id: `${id}-front-matter`,
2418
+ data: currentDocument().data,
2419
+ raw: currentDocument().raw,
2420
+ readonly: isReadonly(),
2421
+ onchange: handleFrontMatterChange
2422
+ });
2423
+ } else {
2424
+ $$renderer3.push("<!--[-1-->");
2425
+ }
2426
+ $$renderer3.push(`<!--]--> `);
2427
+ Markdown_editor($$renderer3, {
2428
+ id,
2429
+ value: editorValue(),
2430
+ mode: "wysiwyg",
2431
+ readonly: isReadonly(),
2432
+ placeholder,
2433
+ plugins: [anchorPlugin],
2434
+ snapshotMode,
2435
+ onchange: handleEditorBodyChange,
2436
+ onready: () => {
2437
+ if (!editorViewReady) {
2438
+ editorViewReady = true;
2439
+ }
2440
+ },
2441
+ onselectionchange: handleSelectionChange
2442
+ });
2443
+ $$renderer3.push(`<!----></div>`);
2444
+ } else if (activeView === "diff") {
2445
+ $$renderer3.push("<!--[1-->");
2446
+ $$renderer3.push(`<div${$10.attr("id", viewPanelIds().diff)} class="review-editor-view-panel svelte-1rnat08" role="tabpanel" aria-label="Diff view">`);
2447
+ {
2448
+ let toolbar = function($$renderer4) {};
2449
+ Diff_viewer($$renderer3, {
2450
+ original,
2451
+ current: value,
2452
+ readonly: isReadonly(),
2453
+ get viewMode() {
2454
+ return diffViewMode;
2455
+ },
2456
+ set viewMode($$value) {
2457
+ diffViewMode = $$value;
2458
+ $$settled = false;
2459
+ },
2460
+ toolbar,
2461
+ $$slots: { toolbar: true }
2462
+ });
2463
+ }
2464
+ $$renderer3.push(`<!----></div>`);
2465
+ } else {
2466
+ $$renderer3.push("<!--[-1-->");
2467
+ $$renderer3.push(`<div${$10.attr("id", viewPanelIds().summary)} class="review-editor-view-panel svelte-1rnat08" role="tabpanel" aria-label="Summary view">`);
2468
+ if (hasContentChanges() || threads.length > 0) {
2469
+ $$renderer3.push("<!--[0-->");
2470
+ Markdown_editor($$renderer3, {
2471
+ id: `${$10.stringify(id)}-summary`,
2472
+ value: summaryContent(),
2473
+ mode: "wysiwyg",
2474
+ readonly: true,
2475
+ showToolbar: false,
2476
+ placeholder: ""
2477
+ });
2478
+ } else {
2479
+ $$renderer3.push("<!--[-1-->");
2480
+ $$renderer3.push(`<div class="summary-view svelte-1rnat08" role="region" aria-label="Review summary"><div class="summary-empty svelte-1rnat08"><p class="svelte-1rnat08">No changes or comments to summarize.</p> <p class="summary-hint svelte-1rnat08">Edit the document or add comments to generate a summary.</p></div></div>`);
2481
+ }
2482
+ $$renderer3.push(`<!--]--></div>`);
2483
+ }
2484
+ $$renderer3.push(`<!--]--></div> `);
2485
+ if (sidebarOpen) {
2486
+ $$renderer3.push("<!--[0-->");
2487
+ Comment_sidebar($$renderer3, {
2488
+ id: `${$10.stringify(id)}-sidebar`,
2489
+ threads,
2490
+ activeThreadId,
2491
+ readonly: isReadonly(),
2492
+ onthreadselect: handleSidebarThreadSelect,
2493
+ onclearall: clearAllThreads,
2494
+ onadddocumentcomment: handleAddDocumentComment
2495
+ });
2496
+ } else {
2497
+ $$renderer3.push("<!--[-1-->");
2498
+ }
2499
+ $$renderer3.push(`<!--]--> `);
2500
+ if (popoverThread() && popoverPosition) {
2501
+ $$renderer3.push("<!--[0-->");
2502
+ Thread_popover($$renderer3, {
2503
+ id: `${$10.stringify(id)}-thread-popover`,
2504
+ thread: popoverThread(),
2505
+ currentUserId,
2506
+ mode,
2507
+ position: popoverPosition,
2508
+ onclose: handlePopoverClose,
2509
+ ondelete: handlePopoverDelete,
2510
+ oncommentcreate: handlePopoverCommentCreate,
2511
+ oncommentupdate: handlePopoverCommentUpdate,
2512
+ oncommentdelete: handlePopoverCommentDelete
2513
+ });
2514
+ } else {
2515
+ $$renderer3.push("<!--[-1-->");
2516
+ }
2517
+ $$renderer3.push(`<!--]--> `);
2518
+ if (showSelectionPopover()) {
2519
+ $$renderer3.push("<!--[0-->");
2520
+ Selection_popover($$renderer3, {
2521
+ id: `${$10.stringify(id)}-selection-popover`,
2522
+ position: selectionPopoverPosition,
2523
+ open: showSelectionPopover(),
2524
+ oncommentsubmit: handleSelectionComment,
2525
+ onexpand: handleSelectionPopoverExpand,
2526
+ oncancel: handleSelectionPopoverCancel,
2527
+ onclose: handleSelectionPopoverClose
2528
+ });
2529
+ } else {
2530
+ $$renderer3.push("<!--[-1-->");
2531
+ }
2532
+ $$renderer3.push(`<!--]--></div>`);
2533
+ }
2534
+ do {
2535
+ $$settled = true;
2536
+ $$inner_renderer = $$renderer2.copy();
2537
+ $$render_inner($$inner_renderer);
2538
+ } while (!$$settled);
2539
+ $$renderer2.subsume($$inner_renderer);
2540
+ $10.bind_props($$props, {
2541
+ original,
2542
+ value,
2543
+ threads,
2544
+ focus,
2545
+ getMarkdown,
2546
+ setMarkdown,
2547
+ getAst,
2548
+ getSelection,
2549
+ scrollToThread,
2550
+ getState,
2551
+ setState,
2552
+ getView,
2553
+ getEditor,
2554
+ exportMarkdownSummary,
2555
+ exportUnifiedDiff,
2556
+ getFormData,
2557
+ reset,
2558
+ createThread,
2559
+ createDocumentThread,
2560
+ deleteThread,
2561
+ clearAllThreads,
2562
+ createComment,
2563
+ updateComment,
2564
+ deleteComment,
2565
+ createBlockThread
2566
+ });
2567
+ });
2568
+ }
2569
+
2570
+ // src/components/review-editor/review-editor.svelte
2571
+ function Review_editor($$renderer, $$props) {
2572
+ $$renderer.component(($$renderer2) => {
2573
+ let {
2574
+ class: customClassName,
2575
+ original = "",
2576
+ value = "",
2577
+ threads = [],
2578
+ $$slots,
2579
+ $$events,
2580
+ ...rest
2581
+ } = $$props;
2582
+ const mergedClassName = $11.derived(() => classNames(customClassName));
2583
+ let $$settled = true;
2584
+ let $$inner_renderer;
2585
+ function $$render_inner($$renderer3) {
2586
+ Review_editor_impl($$renderer3, $11.spread_props([
2587
+ { class: mergedClassName() },
2588
+ rest,
2589
+ {
2590
+ get original() {
2591
+ return original;
2592
+ },
2593
+ set original($$value) {
2594
+ original = $$value;
2595
+ $$settled = false;
2596
+ },
2597
+ get value() {
2598
+ return value;
2599
+ },
2600
+ set value($$value) {
2601
+ value = $$value;
2602
+ $$settled = false;
2603
+ },
2604
+ get threads() {
2605
+ return threads;
2606
+ },
2607
+ set threads($$value) {
2608
+ threads = $$value;
2609
+ $$settled = false;
2610
+ }
2611
+ }
2612
+ ]));
2613
+ }
2614
+ do {
2615
+ $$settled = true;
2616
+ $$inner_renderer = $$renderer2.copy();
2617
+ $$render_inner($$inner_renderer);
2618
+ } while (!$$settled);
2619
+ $$renderer2.subsume($$inner_renderer);
2620
+ $11.bind_props($$props, { original, value, threads });
2621
+ });
2622
+ }
2623
+
2624
+ // src/components/review-editor/review-editor-state.svelte.ts
2625
+ import * as $12 from "svelte/internal/server";
2626
+ import { generateMarkdownSummary as generateMarkdownSummary2 } from "@lostgradient/cinder/commentary/export";
2627
+ import { computeLineDiff as computeLineDiff2, getDiffStats as getDiffStats2 } from "@lostgradient/cinder/markdown/diff/line-diff";
2628
+ import { normalize as normalize2 } from "@lostgradient/cinder/markdown/pipeline";
2629
+ function createReviewEditorState(options) {
2630
+ const { getOriginal, getValue, getThreads } = options;
2631
+ let activeView = "editor";
2632
+ let diffViewMode = "unified";
2633
+ const diffStats = $12.derived(() => {
2634
+ const original = getOriginal();
2635
+ if (!original) {
2636
+ return { added: 0, removed: 0, modified: 0 };
2637
+ }
2638
+ const normalizedOriginal = normalize2(original);
2639
+ const normalizedCurrent = normalize2(getValue());
2640
+ const lineDiffs = computeLineDiff2(normalizedOriginal, normalizedCurrent);
2641
+ return getDiffStats2(lineDiffs);
2642
+ });
2643
+ const hasContentChanges = $12.derived(() => diffStats().added > 0 || diffStats().removed > 0 || diffStats().modified > 0);
2644
+ const commentCount = $12.derived(() => {
2645
+ const threads = getThreads();
2646
+ return threads.reduce((count, thread) => {
2647
+ return count + thread.comments.filter((c) => !c.deletedAt).length;
2648
+ }, 0);
2649
+ });
2650
+ const summaryContent = $12.derived(() => {
2651
+ const threads = getThreads();
2652
+ const state = {
2653
+ schemaVersion: 4,
2654
+ content: getValue(),
2655
+ original: getOriginal() || undefined,
2656
+ threads: threads.map((t) => ({
2657
+ ...t,
2658
+ anchor: {
2659
+ quote: t.anchor.quote,
2660
+ prefix: t.anchor.prefix,
2661
+ suffix: t.anchor.suffix,
2662
+ status: t.anchor.status,
2663
+ blockId: t.anchor.blockId,
2664
+ originalPosition: t.anchor.originalPosition,
2665
+ originalQuote: t.anchor.originalQuote,
2666
+ lastKnownOffset: t.anchor.lastKnownOffset
2667
+ }
2668
+ })),
2669
+ updatedAt: ""
2670
+ };
2671
+ const result = generateMarkdownSummary2(state);
2672
+ return result.markdown.replace(/^# Review Summary\n+/, "");
2673
+ });
2674
+ return {
2675
+ get activeView() {
2676
+ return activeView;
2677
+ },
2678
+ setActiveView(view) {
2679
+ activeView = view;
2680
+ },
2681
+ get diffViewMode() {
2682
+ return diffViewMode;
2683
+ },
2684
+ setDiffViewMode(mode) {
2685
+ diffViewMode = mode;
2686
+ },
2687
+ get diffStats() {
2688
+ return diffStats();
2689
+ },
2690
+ get hasContentChanges() {
2691
+ return hasContentChanges();
2692
+ },
2693
+ get commentCount() {
2694
+ return commentCount();
2695
+ },
2696
+ get summaryContent() {
2697
+ return summaryContent();
2698
+ }
2699
+ };
2700
+ }
2701
+ // src/components/review-editor/review-editor-threads.svelte.ts
2702
+ import * as $13 from "svelte/internal/server";
2703
+ import { buildAnchorFromSelection as buildAnchorFromSelection2 } from "@lostgradient/cinder/commentary/anchoring";
2704
+ import { createDocumentAnchor as createDocumentAnchor2, extractMentions as extractMentions2, generateId as generateId2 } from "@lostgradient/cinder/commentary/comments";
2705
+ var POSITION_DELAY_MS = 350;
2706
+ function createThreadManager(options) {
2707
+ const {
2708
+ getThreads,
2709
+ getEditorView,
2710
+ getMode,
2711
+ getCurrentUserId,
2712
+ getScrollBehavior,
2713
+ announce,
2714
+ onthreadcreate,
2715
+ onthreaddelete,
2716
+ oncommentcreate,
2717
+ oncommentupdate,
2718
+ oncommentdelete,
2719
+ onBeforePopoverOpen
2720
+ } = options;
2721
+ let popoverThreadId = null;
2722
+ let popoverPosition = null;
2723
+ let activeThreadId = null;
2724
+ let selectTimeoutId = null;
2725
+ const popoverThread = $13.derived(() => {
2726
+ if (!popoverThreadId)
2727
+ return null;
2728
+ return getThreads().find((t) => t.id === popoverThreadId) ?? null;
2729
+ });
2730
+ function calculateViewportPosition(from) {
2731
+ const view = getEditorView();
2732
+ if (!view)
2733
+ return null;
2734
+ try {
2735
+ const coords = view.coordsAtPos(from);
2736
+ if (coords) {
2737
+ return { x: Math.max(16, coords.left), y: coords.top + 24 };
2738
+ }
2739
+ } catch {}
2740
+ return null;
2741
+ }
2742
+ function scrollAnchorIntoView(threadId) {
2743
+ const editorDom = getEditorView()?.dom;
2744
+ const anchorElement = editorDom?.querySelector(`[data-thread-id="${threadId}"]`);
2745
+ if (anchorElement) {
2746
+ anchorElement.scrollIntoView({ behavior: getScrollBehavior(), block: "center" });
2747
+ }
2748
+ }
2749
+ function scrollToThread(threadId) {
2750
+ const thread = getThreads().find((t) => t.id === threadId);
2751
+ if (!thread)
2752
+ return;
2753
+ const view = getEditorView();
2754
+ if (view && thread.anchor.from !== undefined) {
2755
+ const coords = view.coordsAtPos(thread.anchor.from);
2756
+ if (coords) {
2757
+ view.dom.scrollTo({ top: coords.top - 100, behavior: getScrollBehavior() });
2758
+ }
2759
+ }
2760
+ }
2761
+ function openPopover(threadId, position) {
2762
+ popoverThreadId = threadId;
2763
+ popoverPosition = position;
2764
+ activeThreadId = threadId;
2765
+ }
2766
+ function closePopover() {
2767
+ if (selectTimeoutId !== null) {
2768
+ clearTimeout(selectTimeoutId);
2769
+ selectTimeoutId = null;
2770
+ }
2771
+ popoverThreadId = null;
2772
+ popoverPosition = null;
2773
+ activeThreadId = null;
2774
+ }
2775
+ function handleAnchorClick(threadId, event) {
2776
+ if (selectTimeoutId !== null) {
2777
+ clearTimeout(selectTimeoutId);
2778
+ selectTimeoutId = null;
2779
+ }
2780
+ onBeforePopoverOpen?.();
2781
+ activeThreadId = threadId;
2782
+ const thread = getThreads().find((t) => t.id === threadId);
2783
+ if (thread) {
2784
+ popoverPosition = { x: event.clientX + 16, y: event.clientY };
2785
+ popoverThreadId = threadId;
2786
+ }
2787
+ }
2788
+ function handleSidebarThreadSelect(threadId) {
2789
+ const thread = getThreads().find((t) => t.id === threadId);
2790
+ if (!thread)
2791
+ return;
2792
+ onBeforePopoverOpen?.();
2793
+ activeThreadId = threadId;
2794
+ scrollToThread(threadId);
2795
+ selectTimeoutId = setTimeout(() => {
2796
+ selectTimeoutId = null;
2797
+ const view = getEditorView();
2798
+ if (view && thread.anchor.from !== undefined) {
2799
+ const coords = view.coordsAtPos(thread.anchor.from);
2800
+ if (coords) {
2801
+ popoverPosition = { x: coords.left + 16, y: coords.top };
2802
+ popoverThreadId = threadId;
2803
+ }
2804
+ }
2805
+ }, POSITION_DELAY_MS);
2806
+ }
2807
+ function createThread(body, authorId, selection) {
2808
+ if (!selection || selection.from === selection.to) {
2809
+ devWarn("Cannot create thread: no text selected");
2810
+ return null;
2811
+ }
2812
+ if (getMode() === "readonly") {
2813
+ devWarn("Cannot create thread: editor is readonly");
2814
+ return null;
2815
+ }
2816
+ const view = getEditorView();
2817
+ if (!view) {
2818
+ devWarn("Cannot create thread: editor view not available");
2819
+ return null;
2820
+ }
2821
+ const { from, to } = selection;
2822
+ const anchor = buildAnchorFromSelection2(view, from, to);
2823
+ const mentions = extractMentions2(body);
2824
+ const requestId = generateId2();
2825
+ const event = {
2826
+ requestId,
2827
+ anchor,
2828
+ body,
2829
+ authorId,
2830
+ mentions: mentions.length > 0 ? mentions : undefined
2831
+ };
2832
+ onthreadcreate?.(event);
2833
+ announce("Comment added");
2834
+ return requestId;
2835
+ }
2836
+ function createDocumentThread(body, authorId) {
2837
+ if (getMode() === "readonly") {
2838
+ devWarn("Cannot create thread: editor is readonly");
2839
+ return null;
2840
+ }
2841
+ const anchor = createDocumentAnchor2();
2842
+ const mentions = extractMentions2(body);
2843
+ const requestId = generateId2();
2844
+ const event = {
2845
+ requestId,
2846
+ anchor,
2847
+ body,
2848
+ authorId,
2849
+ mentions: mentions.length > 0 ? mentions : undefined
2850
+ };
2851
+ onthreadcreate?.(event);
2852
+ announce("Document comment added");
2853
+ return requestId;
2854
+ }
2855
+ function createBlockThread(body, authorId) {
2856
+ if (getMode() === "readonly") {
2857
+ devWarn("Cannot create block thread: editor is readonly");
2858
+ return null;
2859
+ }
2860
+ const view = getEditorView();
2861
+ if (!view) {
2862
+ devWarn("Cannot create block thread: editor view not available");
2863
+ return null;
2864
+ }
2865
+ const { from } = view.state.selection;
2866
+ const resolvedPos = view.state.doc.resolve(from);
2867
+ for (let depth = resolvedPos.depth;depth > 0; depth--) {
2868
+ const node = resolvedPos.node(depth);
2869
+ if (!node.isBlock)
2870
+ continue;
2871
+ const blockFrom = resolvedPos.start(depth);
2872
+ const blockTo = resolvedPos.end(depth);
2873
+ const anchor = buildAnchorFromSelection2(view, blockFrom, blockTo);
2874
+ const mentions = extractMentions2(body);
2875
+ const requestId = generateId2();
2876
+ onthreadcreate?.({
2877
+ requestId,
2878
+ anchor,
2879
+ body,
2880
+ authorId,
2881
+ mentions: mentions.length > 0 ? mentions : undefined
2882
+ });
2883
+ return requestId;
2884
+ }
2885
+ devWarn("Cannot create block thread: cursor not inside a block");
2886
+ return null;
2887
+ }
2888
+ function deleteThread(threadId) {
2889
+ if (getMode() === "readonly")
2890
+ return;
2891
+ const thread = getThreads().find((t) => t.id === threadId);
2892
+ if (!thread)
2893
+ return;
2894
+ onthreaddelete?.({ threadId });
2895
+ }
2896
+ function clearAllThreads() {
2897
+ if (getMode() === "readonly")
2898
+ return;
2899
+ const threads = getThreads();
2900
+ if (threads.length === 0)
2901
+ return;
2902
+ for (const thread of threads) {
2903
+ onthreaddelete?.({ threadId: thread.id });
2904
+ }
2905
+ popoverThreadId = null;
2906
+ popoverPosition = null;
2907
+ activeThreadId = null;
2908
+ announce("All comments cleared");
2909
+ }
2910
+ function createComment(threadId, body, authorId) {
2911
+ if (getMode() === "readonly")
2912
+ return null;
2913
+ const thread = getThreads().find((t) => t.id === threadId);
2914
+ if (!thread)
2915
+ return null;
2916
+ const mentions = extractMentions2(body);
2917
+ const requestId = generateId2();
2918
+ oncommentcreate?.({
2919
+ requestId,
2920
+ threadId,
2921
+ body,
2922
+ authorId,
2923
+ mentions: mentions.length > 0 ? mentions : undefined
2924
+ });
2925
+ announce("Comment added");
2926
+ return requestId;
2927
+ }
2928
+ function updateComment(threadId, commentId, body) {
2929
+ if (getMode() === "readonly")
2930
+ return;
2931
+ const thread = getThreads().find((t) => t.id === threadId);
2932
+ const comment = thread?.comments.find((c) => c.id === commentId);
2933
+ if (!comment || comment.deletedAt)
2934
+ return;
2935
+ const mentions = extractMentions2(body);
2936
+ oncommentupdate?.({
2937
+ threadId,
2938
+ commentId,
2939
+ body,
2940
+ mentions: mentions.length > 0 ? mentions : undefined
2941
+ });
2942
+ }
2943
+ function deleteComment(threadId, commentId, soft = true) {
2944
+ if (getMode() === "readonly")
2945
+ return;
2946
+ const thread = getThreads().find((t) => t.id === threadId);
2947
+ const comment = thread?.comments.find((c) => c.id === commentId);
2948
+ if (!comment || soft && comment.deletedAt)
2949
+ return;
2950
+ oncommentdelete?.({ threadId, commentId, soft });
2951
+ announce("Comment deleted");
2952
+ }
2953
+ function handlePopoverClose() {
2954
+ closePopover();
2955
+ }
2956
+ function handlePopoverDelete(threadId) {
2957
+ const currentUserId = getCurrentUserId();
2958
+ if (currentUserId) {
2959
+ deleteThread(threadId);
2960
+ closePopover();
2961
+ }
2962
+ }
2963
+ function handlePopoverCommentCreate(threadId, body) {
2964
+ const currentUserId = getCurrentUserId();
2965
+ if (currentUserId) {
2966
+ createComment(threadId, body, currentUserId);
2967
+ }
2968
+ }
2969
+ function handlePopoverCommentUpdate(threadId, commentId, body) {
2970
+ updateComment(threadId, commentId, body);
2971
+ }
2972
+ function handlePopoverCommentDelete(threadId, commentId) {
2973
+ deleteComment(threadId, commentId);
2974
+ }
2975
+ function destroy() {
2976
+ if (selectTimeoutId !== null) {
2977
+ clearTimeout(selectTimeoutId);
2978
+ selectTimeoutId = null;
2979
+ }
2980
+ }
2981
+ return {
2982
+ get popoverThreadId() {
2983
+ return popoverThreadId;
2984
+ },
2985
+ get popoverPosition() {
2986
+ return popoverPosition;
2987
+ },
2988
+ get popoverThread() {
2989
+ return popoverThread();
2990
+ },
2991
+ get activeThreadId() {
2992
+ return activeThreadId;
2993
+ },
2994
+ openPopover,
2995
+ closePopover,
2996
+ handleAnchorClick,
2997
+ handleSidebarThreadSelect,
2998
+ createThread,
2999
+ createDocumentThread,
3000
+ createBlockThread,
3001
+ deleteThread,
3002
+ clearAllThreads,
3003
+ createComment,
3004
+ updateComment,
3005
+ deleteComment,
3006
+ handlePopoverClose,
3007
+ handlePopoverDelete,
3008
+ handlePopoverCommentCreate,
3009
+ handlePopoverCommentUpdate,
3010
+ handlePopoverCommentDelete,
3011
+ scrollAnchorIntoView,
3012
+ scrollToThread,
3013
+ calculateViewportPosition,
3014
+ destroy
3015
+ };
3016
+ }
3017
+ // src/components/review-editor/review-editor-selection.svelte.ts
3018
+ import * as $14 from "svelte/internal/server";
3019
+ import { buildAnchorFromSelection as buildAnchorFromSelection3 } from "@lostgradient/cinder/commentary/anchoring";
3020
+ import { extractMentions as extractMentions3, generateId as generateId3 } from "@lostgradient/cinder/commentary/comments";
3021
+ var SELECTION_DEBOUNCE_MS = 20;
3022
+ function createSelectionPopover(options) {
3023
+ const {
3024
+ getId,
3025
+ getMainRef,
3026
+ getEditorView,
3027
+ getMode,
3028
+ getActiveView,
3029
+ getCurrentUserId,
3030
+ isThreadPopoverOpen,
3031
+ announce,
3032
+ onthreadcreate
3033
+ } = options;
3034
+ let position = null;
3035
+ let capturedSelection = null;
3036
+ let expanded = false;
3037
+ let selectionTimeoutId = null;
3038
+ let isListening = false;
3039
+ let computeVersion = 0;
3040
+ const visible = $14.derived(() => {
3041
+ return getActiveView() === "editor" && getMode() === "edit" && getCurrentUserId() !== undefined && (position !== null || expanded) && !isThreadPopoverOpen();
3042
+ });
3043
+ function clearTimeouts() {
3044
+ if (selectionTimeoutId !== null) {
3045
+ clearTimeout(selectionTimeoutId);
3046
+ selectionTimeoutId = null;
3047
+ }
3048
+ }
3049
+ function clear() {
3050
+ clearTimeouts();
3051
+ position = null;
3052
+ capturedSelection = null;
3053
+ expanded = false;
3054
+ computeVersion++;
3055
+ }
3056
+ function close() {
3057
+ clear();
3058
+ }
3059
+ function handleExpand() {
3060
+ expanded = true;
3061
+ }
3062
+ function handleCancel() {
3063
+ expanded = false;
3064
+ }
3065
+ function handleComment(body) {
3066
+ function failWithMessage(message) {
3067
+ devWarn(message);
3068
+ clear();
3069
+ announce("Could not add comment. Please try selecting text again.", "assertive");
3070
+ }
3071
+ const currentUserId = getCurrentUserId();
3072
+ if (!currentUserId) {
3073
+ failWithMessage("Cannot create comment: no currentUserId set");
3074
+ return;
3075
+ }
3076
+ if (!capturedSelection) {
3077
+ failWithMessage("Cannot create comment: no captured selection");
3078
+ return;
3079
+ }
3080
+ if (getMode() === "readonly") {
3081
+ failWithMessage("Cannot create thread: editor is readonly");
3082
+ return;
3083
+ }
3084
+ const view = getEditorView();
3085
+ if (!view) {
3086
+ failWithMessage("Cannot create thread: editor view not available");
3087
+ return;
3088
+ }
3089
+ const { from, to } = capturedSelection;
3090
+ const docSize = view.state.doc.content.size;
3091
+ if (from < 0 || to > docSize || from > to) {
3092
+ failWithMessage("Cannot create thread: captured selection is out of bounds");
3093
+ return;
3094
+ }
3095
+ const anchor = buildAnchorFromSelection3(view, from, to);
3096
+ const requestId = generateId3();
3097
+ const mentions = extractMentions3(body);
3098
+ const event = {
3099
+ requestId,
3100
+ anchor,
3101
+ body,
3102
+ authorId: currentUserId,
3103
+ mentions: mentions.length > 0 ? mentions : undefined
3104
+ };
3105
+ onthreadcreate?.(event);
3106
+ clear();
3107
+ announce("Comment added");
3108
+ }
3109
+ function handleBrowserSelectionChange() {
3110
+ clearTimeouts();
3111
+ if (getMode() !== "edit") {
3112
+ position = null;
3113
+ capturedSelection = null;
3114
+ return;
3115
+ }
3116
+ const selectionPopoverElement = document.getElementById(`${getId()}-selection-popover`);
3117
+ if (selectionPopoverElement?.contains(document.activeElement)) {
3118
+ return;
3119
+ }
3120
+ if (expanded) {
3121
+ return;
3122
+ }
3123
+ const browserSelection = window.getSelection();
3124
+ if (!browserSelection || browserSelection.isCollapsed) {
3125
+ position = null;
3126
+ capturedSelection = null;
3127
+ expanded = false;
3128
+ return;
3129
+ }
3130
+ const mainRef = getMainRef();
3131
+ const anchorNode = browserSelection.anchorNode;
3132
+ if (!mainRef || !anchorNode || !mainRef.contains(anchorNode)) {
3133
+ position = null;
3134
+ capturedSelection = null;
3135
+ expanded = false;
3136
+ return;
3137
+ }
3138
+ const version = ++computeVersion;
3139
+ selectionTimeoutId = setTimeout(() => {
3140
+ selectionTimeoutId = null;
3141
+ if (computeVersion !== version)
3142
+ return;
3143
+ const sel = window.getSelection();
3144
+ if (!sel || sel.isCollapsed) {
3145
+ position = null;
3146
+ capturedSelection = null;
3147
+ return;
3148
+ }
3149
+ const range = sel.getRangeAt(0);
3150
+ const anchorPosition = getSelectionAnchorPosition(range);
3151
+ if (anchorPosition) {
3152
+ const view = getEditorView();
3153
+ if (view) {
3154
+ const { from, to } = view.state.selection;
3155
+ if (from !== to) {
3156
+ capturedSelection = { from, to };
3157
+ position = anchorPosition;
3158
+ }
3159
+ }
3160
+ }
3161
+ }, SELECTION_DEBOUNCE_MS);
3162
+ }
3163
+ function startListening() {
3164
+ if (isListening || typeof document === "undefined")
3165
+ return;
3166
+ document.addEventListener("selectionchange", handleBrowserSelectionChange);
3167
+ isListening = true;
3168
+ }
3169
+ function stopListening() {
3170
+ if (!isListening || typeof document === "undefined")
3171
+ return;
3172
+ document.removeEventListener("selectionchange", handleBrowserSelectionChange);
3173
+ isListening = false;
3174
+ }
3175
+ function destroy() {
3176
+ stopListening();
3177
+ clearTimeouts();
3178
+ }
3179
+ return {
3180
+ get position() {
3181
+ return position;
3182
+ },
3183
+ get capturedSelection() {
3184
+ return capturedSelection;
3185
+ },
3186
+ get expanded() {
3187
+ return expanded;
3188
+ },
3189
+ get visible() {
3190
+ return visible();
3191
+ },
3192
+ handleComment,
3193
+ handleExpand,
3194
+ handleCancel,
3195
+ close,
3196
+ clear,
3197
+ startListening,
3198
+ stopListening,
3199
+ destroy
3200
+ };
3201
+ }
3202
+ // src/components/review-editor/review-editor-anchors.svelte.ts
3203
+ import * as $15 from "svelte/internal/server";
3204
+ import { anchorPluginKey as anchorPluginKey2, createAnchorPlugin as createAnchorPlugin2 } from "@lostgradient/cinder/commentary/anchor-decorations";
3205
+ import { ANCHOR_CONTEXT_LENGTH as ANCHOR_CONTEXT_LENGTH2, reanchorQuote as reanchorQuote2 } from "@lostgradient/cinder/commentary/comments";
3206
+ import { textOffsetToProseMirrorPosition as textOffsetToProseMirrorPosition2 } from "@lostgradient/cinder/editor";
3207
+ import { contentEquals as contentEquals3 } from "@lostgradient/cinder/markdown/pipeline";
3208
+ function createSyncFingerprint(threads) {
3209
+ return threads.map((thread) => {
3210
+ const anchor = thread.anchor;
3211
+ return `${thread.id}:${anchor.from}:${anchor.to}:${anchor.quote}:${anchor.prefix}:${anchor.suffix}:${anchor.lastKnownOffset ?? ""}`;
3212
+ }).join("|");
3213
+ }
3214
+ function createAnchorManager(options) {
3215
+ const {
3216
+ getThreads,
3217
+ setThreads,
3218
+ getEditorView,
3219
+ getMarkdown,
3220
+ getValue,
3221
+ onAnchorClick,
3222
+ onthreaddelete
3223
+ } = options;
3224
+ let lastSyncedFingerprint = null;
3225
+ let pendingState = null;
3226
+ function handleAnchorsUpdate(updates) {
3227
+ const threads = getThreads();
3228
+ const updatedThreads = threads.map((thread) => {
3229
+ const update = updates.find((u) => u.threadId === thread.id);
3230
+ if (update) {
3231
+ return {
3232
+ ...thread,
3233
+ anchor: {
3234
+ ...thread.anchor,
3235
+ from: update.from,
3236
+ to: update.to,
3237
+ quote: update.quote,
3238
+ prefix: update.prefix,
3239
+ suffix: update.suffix,
3240
+ lastKnownOffset: update.lastKnownOffset
3241
+ }
3242
+ };
3243
+ }
3244
+ return thread;
3245
+ });
3246
+ setThreads(updatedThreads);
3247
+ lastSyncedFingerprint = createSyncFingerprint(updatedThreads);
3248
+ }
3249
+ const plugin = createAnchorPlugin2({ onAnchorsUpdate: handleAnchorsUpdate, onAnchorClick });
3250
+ function syncThreadsToPlugin(threads) {
3251
+ const view = getEditorView();
3252
+ if (!view)
3253
+ return;
3254
+ const fingerprint = createSyncFingerprint(threads);
3255
+ if (fingerprint === lastSyncedFingerprint)
3256
+ return;
3257
+ lastSyncedFingerprint = fingerprint;
3258
+ view.dispatch(view.state.tr.setMeta(anchorPluginKey2, { type: "sync", threads, source: "external" }));
3259
+ }
3260
+ function attemptReanchoring() {
3261
+ if (!pendingState)
3262
+ return;
3263
+ const view = getEditorView();
3264
+ if (!view)
3265
+ return;
3266
+ const currentMarkdown = getMarkdown();
3267
+ const expectedMarkdown = pendingState.content;
3268
+ if (!contentEquals3(currentMarkdown, expectedMarkdown)) {
3269
+ return;
3270
+ }
3271
+ const state = pendingState;
3272
+ pendingState = null;
3273
+ const { doc } = view.state;
3274
+ const documentText = doc.textBetween(0, doc.content.size, `
3275
+ `);
3276
+ const reanchoredThreads = [];
3277
+ for (const persistedThread of state.threads) {
3278
+ const result = reanchorQuote2(documentText, persistedThread.anchor);
3279
+ if (!result.found) {
3280
+ onthreaddelete?.({ threadId: persistedThread.id });
3281
+ continue;
3282
+ }
3283
+ const from = textOffsetToProseMirrorPosition2(doc, result.from);
3284
+ const to = textOffsetToProseMirrorPosition2(doc, result.to);
3285
+ if (from !== null && to !== null) {
3286
+ const matchedQuote = documentText.slice(result.from, result.to);
3287
+ const newPrefix = documentText.slice(Math.max(0, result.from - ANCHOR_CONTEXT_LENGTH2), result.from);
3288
+ const newSuffix = documentText.slice(result.to, Math.min(documentText.length, result.to + ANCHOR_CONTEXT_LENGTH2));
3289
+ reanchoredThreads.push({
3290
+ ...persistedThread,
3291
+ anchor: {
3292
+ ...persistedThread.anchor,
3293
+ from,
3294
+ to,
3295
+ quote: matchedQuote,
3296
+ prefix: newPrefix,
3297
+ suffix: newSuffix,
3298
+ status: "anchored",
3299
+ lastKnownOffset: result.from
3300
+ }
3301
+ });
3302
+ }
3303
+ }
3304
+ setThreads(reanchoredThreads);
3305
+ syncThreadsToPlugin(reanchoredThreads);
3306
+ }
3307
+ return {
3308
+ get plugin() {
3309
+ return plugin;
3310
+ },
3311
+ get pendingState() {
3312
+ return pendingState;
3313
+ },
3314
+ setPendingState(state) {
3315
+ pendingState = state;
3316
+ },
3317
+ attemptReanchoring,
3318
+ syncThreadsToPlugin,
3319
+ createSyncFingerprint,
3320
+ handleAnchorsUpdate
3321
+ };
3322
+ }
3323
+ function toPersistedThreads(threads) {
3324
+ return threads.map((thread) => ({
3325
+ ...thread,
3326
+ anchor: {
3327
+ quote: thread.anchor.quote,
3328
+ prefix: thread.anchor.prefix,
3329
+ suffix: thread.anchor.suffix,
3330
+ status: thread.anchor.status,
3331
+ blockId: thread.anchor.blockId,
3332
+ originalPosition: thread.anchor.originalPosition,
3333
+ originalQuote: thread.anchor.originalQuote,
3334
+ lastKnownOffset: thread.anchor.lastKnownOffset
3335
+ }
3336
+ }));
3337
+ }
3338
+ // src/components/review-editor/review-editor-exports.ts
3339
+ import {
3340
+ generateCommentsExport as generateCommentsExport2,
3341
+ generateMarkdownSummary as generateMarkdownSummary3,
3342
+ generateUnifiedDiff as generateUnifiedDiff2
3343
+ } from "@lostgradient/cinder/commentary/export";
3344
+ function buildFormData(state) {
3345
+ return {
3346
+ original: state.original ?? "",
3347
+ current: state.content,
3348
+ comments: JSON.stringify(state.threads),
3349
+ diff: generateUnifiedDiff2(state).diff,
3350
+ summary: generateMarkdownSummary3(state).markdown
3351
+ };
3352
+ }
3353
+ function buildFormDataFromValues(original, current, threads) {
3354
+ const state = {
3355
+ schemaVersion: 4,
3356
+ content: current,
3357
+ original,
3358
+ threads: threads.map((t) => ({
3359
+ ...t,
3360
+ anchor: {
3361
+ quote: t.anchor.quote,
3362
+ prefix: t.anchor.prefix,
3363
+ suffix: t.anchor.suffix,
3364
+ status: t.anchor.status,
3365
+ blockId: t.anchor.blockId,
3366
+ originalPosition: t.anchor.originalPosition,
3367
+ originalQuote: t.anchor.originalQuote,
3368
+ lastKnownOffset: t.anchor.lastKnownOffset
3369
+ }
3370
+ })),
3371
+ updatedAt: new Date().toISOString()
3372
+ };
3373
+ return buildFormData(state);
3374
+ }
3375
+ function exportMarkdownSummary(state, options) {
3376
+ return generateMarkdownSummary3(state, options);
3377
+ }
3378
+ function exportUnifiedDiff(state, options) {
3379
+ return generateUnifiedDiff2(state, options);
3380
+ }
3381
+ function exportCommentsMarkdown(state) {
3382
+ return generateCommentsExport2(state).markdown;
3383
+ }
3384
+ function getSummaryContentWithoutHeading(state) {
3385
+ const result = generateMarkdownSummary3(state);
3386
+ return result.markdown.replace(/^# Review Summary\n+/, "");
3387
+ }
3388
+
3389
+ // src/components/review-editor/index.ts
3390
+ var review_editor_default = Review_editor;
3391
+ export { Comment_list, Comment_composer, Thread_popover, Export_actions, Review_editor, createReviewEditorState, createThreadManager, createSelectionPopover, createAnchorManager, toPersistedThreads, buildFormData, buildFormDataFromValues, exportMarkdownSummary, exportUnifiedDiff, exportCommentsMarkdown, getSummaryContentWithoutHeading, review_editor_default };
3392
+
3393
+ //# debugId=07F3B0BEC63F9CCF64756E2164756E21