@lostgradient/cinder 0.3.0 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (921) hide show
  1. package/CHANGELOG.md +146 -0
  2. package/README.md +2 -2
  3. package/components.json +138 -86
  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/access-gate/index.js +379 -513
  11. package/dist/components/alert/alert.css +1 -1
  12. package/dist/components/alert/alert.schema.js +4 -4
  13. package/dist/components/alert/alert.types.d.ts +4 -4
  14. package/dist/components/alert/index.js +4 -4
  15. package/dist/components/alert-dialog/index.js +9 -3
  16. package/dist/components/approval-card/approval-card-state.d.ts +3 -0
  17. package/dist/components/approval-card/approval-card.css +239 -0
  18. package/dist/components/approval-card/approval-card.schema.js +236 -0
  19. package/dist/components/approval-card/approval-card.svelte.d.ts +21 -0
  20. package/dist/components/approval-card/approval-card.types.d.ts +155 -0
  21. package/dist/components/{subscription-badge/subscription-badge.variables.js → approval-card/approval-card.variables.js} +4 -4
  22. package/dist/components/approval-card/index.d.ts +5 -0
  23. package/dist/components/approval-card/index.js +3794 -0
  24. package/dist/components/autocomplete/autocomplete.css +12 -1
  25. package/dist/components/autocomplete/index.js +106 -81
  26. package/dist/components/avatar-group/index.js +3 -2
  27. package/dist/components/badge/badge.schema.js +6 -3
  28. package/dist/components/badge/badge.svelte.d.ts +4 -0
  29. package/dist/components/badge/badge.types.d.ts +18 -4
  30. package/dist/components/badge/index.d.ts +1 -1
  31. package/dist/components/badge/index.js +99 -3
  32. package/dist/components/banner/banner.schema.js +2 -2
  33. package/dist/components/banner/banner.types.d.ts +1 -1
  34. package/dist/components/banner/index.js +3 -3
  35. package/dist/components/button/button.css +1 -1
  36. package/dist/components/capability-gate/capability-gate.css +15 -2
  37. package/dist/components/capability-gate/capability-gate.schema.js +4 -4
  38. package/dist/components/capability-gate/capability-gate.types.d.ts +6 -6
  39. package/dist/components/capability-gate/index.js +7 -7
  40. package/dist/components/chat/chat.schema.js +11 -26
  41. package/dist/components/chat/chat.types.d.ts +30 -15
  42. package/dist/components/chat/container/chat-events.d.ts +2 -2
  43. package/dist/components/chat/container/chat-history-trigger.svelte.d.ts +1 -1
  44. package/dist/components/chat/container/chat.svelte.d.ts +1 -1
  45. package/dist/components/chat/container/use-chat-scroll-state.svelte.d.ts +4 -4
  46. package/dist/components/chat/container/use-chat-unread-state.svelte.d.ts +6 -6
  47. package/dist/components/chat/index.d.ts +1 -1
  48. package/dist/components/chat/index.js +2257 -1913
  49. package/dist/components/chat/input/chat-input.svelte.d.ts +3 -1
  50. package/dist/components/chat-conversation-header/index.js +261 -29
  51. package/dist/components/chat-conversation-list/chat-conversation-list.css +13 -0
  52. package/dist/components/checkbox/checkbox.css +3 -0
  53. package/dist/components/checkbox/checkbox.schema.js +6 -1
  54. package/dist/components/checkbox/checkbox.types.d.ts +2 -0
  55. package/dist/components/checkbox/index.js +78 -22
  56. package/dist/components/checkbox-group/checkbox-group.css +3 -0
  57. package/dist/components/checkbox-group/checkbox-group.schema.js +4 -4
  58. package/dist/components/checkbox-group/checkbox-group.types.d.ts +12 -7
  59. package/dist/components/checkbox-group/index.js +50 -21
  60. package/dist/components/choice-grid/index.js +2 -2
  61. package/dist/components/choice-grid-item/index.js +2 -2
  62. package/dist/components/click-away-listener/click-away-listener.schema.js +3 -3
  63. package/dist/components/click-away-listener/click-away-listener.types.d.ts +3 -3
  64. package/dist/components/click-away-listener/index.js +3 -3
  65. package/dist/components/code-block/code-block.css +4 -3
  66. package/dist/components/code-block/index.js +6 -5
  67. package/dist/components/collapsible/collapsible.schema.js +2 -2
  68. package/dist/components/collapsible/collapsible.types.d.ts +2 -2
  69. package/dist/components/collapsible/index.js +3 -3
  70. package/dist/components/color-field/color-field.schema.js +3 -3
  71. package/dist/components/color-field/color-field.types.d.ts +2 -2
  72. package/dist/components/color-field/index.js +133 -69
  73. package/dist/components/color-picker/index.js +29 -18
  74. package/dist/components/color-swatch-picker/index.js +29 -18
  75. package/dist/components/combobox/combobox.schema.js +6 -2
  76. package/dist/components/combobox/combobox.types.d.ts +7 -1
  77. package/dist/components/combobox/index.js +112 -60
  78. package/dist/components/command-item/command-item.css +10 -0
  79. package/dist/components/command-item/command-item.schema.js +9 -1
  80. package/dist/components/command-item/command-item.types.d.ts +4 -0
  81. package/dist/components/command-item/index.js +9 -1
  82. package/dist/components/command-menu/index.js +257 -161
  83. package/dist/components/command-palette/command-palette.schema.js +2 -3
  84. package/dist/components/command-palette/command-palette.types.d.ts +1 -2
  85. package/dist/components/command-palette/index.js +282 -192
  86. package/dist/components/confirm-dialog/index.js +9 -3
  87. package/dist/components/context-menu/context-menu.context.d.ts +2 -0
  88. package/dist/components/context-menu/index.js +300 -40
  89. package/dist/components/context-menu-trigger/index.js +11 -8
  90. package/dist/components/copy-button/index.js +6 -5
  91. package/dist/components/data-grid/_internal/column-model.svelte.d.ts +1 -0
  92. package/dist/components/data-grid/data-grid.css +25 -0
  93. package/dist/components/data-grid/data-grid.schema.js +3 -3
  94. package/dist/components/data-grid/data-grid.types.d.ts +8 -2
  95. package/dist/components/data-grid/index.js +11 -8
  96. package/dist/components/data-list/data-list.schema.js +7 -10
  97. package/dist/components/data-list/data-list.types.d.ts +5 -9
  98. package/dist/components/data-list/index.js +15 -39
  99. package/dist/components/data-table/data-table.css +13 -0
  100. package/dist/components/data-table/index.js +32 -19
  101. package/dist/components/date-range-field/date-range-field.schema.js +7 -3
  102. package/dist/components/date-range-field/date-range-field.svelte.d.ts +2 -2
  103. package/dist/components/date-range-field/date-range-field.types.d.ts +15 -10
  104. package/dist/components/date-range-field/index.d.ts +1 -1
  105. package/dist/components/date-range-field/index.js +160 -17
  106. package/dist/components/diff-viewer/diff-front-matter.svelte.d.ts +2 -2
  107. package/dist/components/diff-viewer/diff-line.svelte.d.ts +2 -2
  108. package/dist/components/diff-viewer/diff-toolbar.svelte.d.ts +2 -2
  109. package/dist/components/diff-viewer/diff-viewer.svelte.d.ts +1 -1
  110. package/dist/components/diff-viewer/diff-viewer.types.d.ts +3 -3
  111. package/dist/components/diff-viewer/index.d.ts +1 -1
  112. package/dist/components/diff-viewer/index.js +171 -67
  113. package/dist/components/drawer/index.js +353 -283
  114. package/dist/components/dropdown/dropdown.css +7 -1
  115. package/dist/components/dropdown/dropdown.types.d.ts +3 -0
  116. package/dist/components/dropdown/index.js +267 -35
  117. package/dist/components/dropdown-group/dropdown-group.schema.js +4 -4
  118. package/dist/components/dropdown-group/dropdown-group.types.d.ts +4 -4
  119. package/dist/components/dropdown-group/index.js +7 -7
  120. package/dist/components/dropdown-item/dropdown-item.schema.js +9 -1
  121. package/dist/components/dropdown-item/dropdown-item.types.d.ts +5 -0
  122. package/dist/components/dropdown-item/index.js +13 -8
  123. package/dist/components/dropdown-menu/index.js +236 -14
  124. package/dist/components/dropdown-trigger/index.js +11 -12
  125. package/dist/components/event-stream-viewer/event-stream-viewer-keys.d.ts +6 -0
  126. package/dist/components/event-stream-viewer/event-stream-viewer.css +46 -0
  127. package/dist/components/event-stream-viewer/event-stream-viewer.schema.js +83 -10
  128. package/dist/components/event-stream-viewer/event-stream-viewer.svelte.d.ts +3 -3
  129. package/dist/components/event-stream-viewer/event-stream-viewer.types.d.ts +124 -3
  130. package/dist/components/event-stream-viewer/index.d.ts +1 -1
  131. package/dist/components/event-stream-viewer/index.js +764 -409
  132. package/dist/components/faceted-filter-bar/faceted-filter-bar.css +9 -0
  133. package/dist/components/faceted-filter-bar/index.js +25 -6
  134. package/dist/components/file-upload/file-upload.css +5 -5
  135. package/dist/components/floating-action-button/floating-action-button.css +22 -22
  136. package/dist/components/floating-action-button/floating-action-button.schema.js +5 -5
  137. package/dist/components/floating-action-button/floating-action-button.svelte.d.ts +1 -1
  138. package/dist/components/floating-action-button/floating-action-button.types.d.ts +21 -21
  139. package/dist/components/floating-action-button/index.d.ts +1 -1
  140. package/dist/components/floating-action-button/index.js +8 -8
  141. package/dist/components/form-field/form-field.css +3 -13
  142. package/dist/components/form-field/index.js +2 -2
  143. package/dist/components/hover-card/index.js +3 -2
  144. package/dist/components/input/index.js +131 -67
  145. package/dist/components/input/input.schema.js +6 -1
  146. package/dist/components/input/input.types.d.ts +2 -0
  147. package/dist/components/invocation-rule-builder/index.d.ts +1 -1
  148. package/dist/components/invocation-rule-builder/index.js +184 -107
  149. package/dist/components/invocation-rule-builder/invocation-rule-builder.css +63 -6
  150. package/dist/components/invocation-rule-builder/invocation-rule-builder.schema.js +133 -35
  151. package/dist/components/invocation-rule-builder/invocation-rule-builder.svelte.d.ts +2 -2
  152. package/dist/components/invocation-rule-builder/invocation-rule-builder.types.d.ts +85 -8
  153. package/dist/components/json-schema-editor/form-view.svelte.d.ts +1 -0
  154. package/dist/components/json-schema-editor/index.js +677 -357
  155. package/dist/components/json-schema-editor/json-schema-editor.css +6 -1
  156. package/dist/components/json-schema-editor/json-schema-toolbar.svelte.d.ts +1 -0
  157. package/dist/components/json-schema-editor/property-editor.svelte.d.ts +2 -0
  158. package/dist/components/json-schema-editor/property-list-validation.d.ts +1 -0
  159. package/dist/components/json-schema-editor/property-list.svelte.d.ts +1 -0
  160. package/dist/components/json-viewer/_json-viewer-node.svelte.d.ts +3 -0
  161. package/dist/components/json-viewer/index.js +112 -26
  162. package/dist/components/json-viewer/json-viewer.css +11 -0
  163. package/dist/components/kanban-board/index.js +18 -13
  164. package/dist/components/kanban-board/kanban-board.css +56 -3
  165. package/dist/components/keyboard-shortcuts/index.js +2 -2
  166. package/dist/components/keyboard-shortcuts/keyboard-shortcuts.css +2 -2
  167. package/dist/components/label/index.js +2 -2
  168. package/dist/components/label/label.css +2 -9
  169. package/dist/components/load-more/index.js +4 -4
  170. package/dist/components/load-more/load-more.css +13 -5
  171. package/dist/components/load-more/load-more.schema.js +4 -4
  172. package/dist/components/load-more/load-more.types.d.ts +3 -3
  173. package/dist/components/locale-provider/index.d.ts +4 -0
  174. package/dist/components/locale-provider/index.js +76 -0
  175. package/dist/components/{connection-indicator/connection-indicator.schema.js → locale-provider/locale-provider.schema.js} +18 -14
  176. package/dist/components/locale-provider/locale-provider.svelte.d.ts +17 -0
  177. package/dist/components/locale-provider/locale-provider.types.d.ts +17 -0
  178. package/dist/components/{connection-indicator/connection-indicator.variables.js → locale-provider/locale-provider.variables.js} +4 -4
  179. package/dist/components/markdown-editor/editor-toolbar/editor-toolbar.svelte.d.ts +2 -0
  180. package/dist/components/markdown-editor/index.js +437 -128
  181. package/dist/components/markdown-editor/markdown-editor.schema.js +4 -4
  182. package/dist/components/markdown-editor/markdown-editor.types.d.ts +4 -4
  183. package/dist/components/masonry/masonry.schema.js +4 -3
  184. package/dist/components/masonry/masonry.types.d.ts +13 -2
  185. package/dist/components/matrix-chart/index.js +245 -224
  186. package/dist/components/media-controls/index.js +7 -7
  187. package/dist/components/media-controls/media-controls.css +15 -4
  188. package/dist/components/media-controls/media-controls.schema.js +4 -4
  189. package/dist/components/media-controls/media-controls.types.d.ts +7 -7
  190. package/dist/components/menu-bar/menu-bar.css +11 -0
  191. package/dist/components/menu-bar/menu-bar.svelte.d.ts +1 -0
  192. package/dist/components/modal/index.js +9 -3
  193. package/dist/components/navigation-bar/index.js +4 -4
  194. package/dist/components/navigation-bar/navigation-bar.schema.js +2 -2
  195. package/dist/components/navigation-bar/navigation-bar.types.d.ts +1 -1
  196. package/dist/components/number-input/index.js +88 -42
  197. package/dist/components/number-input/number-input.schema.js +4 -3
  198. package/dist/components/number-input/number-input.types.d.ts +16 -5
  199. package/dist/components/payload-inspector/index.d.ts +1 -1
  200. package/dist/components/payload-inspector/index.js +271 -64
  201. package/dist/components/payload-inspector/payload-inspector.css +6 -0
  202. package/dist/components/payload-inspector/payload-inspector.schema.js +27 -15
  203. package/dist/components/payload-inspector/payload-inspector.svelte.d.ts +2 -2
  204. package/dist/components/payload-inspector/payload-inspector.types.d.ts +52 -3
  205. package/dist/components/permission-matrix/permission-matrix.css +10 -0
  206. package/dist/components/phone-input/index.js +56 -33
  207. package/dist/components/phone-input/phone-input.schema.js +2 -2
  208. package/dist/components/phone-input/phone-input.types.d.ts +3 -2
  209. package/dist/components/pin-input/index.js +46 -41
  210. package/dist/components/pin-input/pin-input.schema.js +9 -2
  211. package/dist/components/pin-input/pin-input.types.d.ts +10 -1
  212. package/dist/components/popover/index.js +11 -4
  213. package/dist/components/portal/index.js +3 -2
  214. package/dist/components/pricing-card/index.js +22 -7
  215. package/dist/components/radio-group/index.js +51 -21
  216. package/dist/components/radio-group/radio-group.css +3 -0
  217. package/dist/components/radio-group/radio-group.schema.js +3 -3
  218. package/dist/components/radio-group/radio-group.types.d.ts +6 -2
  219. package/dist/components/rating/index.js +1 -6
  220. package/dist/components/rating/rating.schema.js +9 -2
  221. package/dist/components/rating/rating.types.d.ts +6 -0
  222. package/dist/components/review-editor/comment-list.svelte.d.ts +1 -1
  223. package/dist/components/review-editor/index.d.ts +1 -1
  224. package/dist/components/review-editor/index.js +789 -314
  225. package/dist/components/review-editor/review-editor-controls.svelte.d.ts +1 -1
  226. package/dist/components/review-editor/review-editor-impl.svelte.d.ts +4 -4
  227. package/dist/components/review-editor/review-editor-selection-types.d.ts +1 -1
  228. package/dist/components/review-editor/review-editor-state.svelte.d.ts +1 -1
  229. package/dist/components/review-editor/review-editor-threads.svelte.d.ts +2 -2
  230. package/dist/components/review-editor/review-editor.svelte.d.ts +2 -1
  231. package/dist/components/review-editor/review-editor.types.d.ts +77 -3
  232. package/dist/components/review-editor/thread-popover.svelte.d.ts +1 -1
  233. package/dist/components/run-step-timeline/index.d.ts +1 -1
  234. package/dist/components/run-step-timeline/index.js +747 -273
  235. package/dist/components/run-step-timeline/run-step-timeline.css +25 -5
  236. package/dist/components/run-step-timeline/run-step-timeline.schema.js +351 -21
  237. package/dist/components/run-step-timeline/run-step-timeline.svelte.d.ts +1 -1
  238. package/dist/components/run-step-timeline/run-step-timeline.types.d.ts +184 -3
  239. package/dist/components/schema-form/index.d.ts +1 -1
  240. package/dist/components/schema-form/index.js +1916 -474
  241. package/dist/components/schema-form/schema-form-async.fixture.d.ts +1 -0
  242. package/dist/components/schema-form/schema-form-body.svelte.d.ts +25 -0
  243. package/dist/components/schema-form/schema-form-model.d.ts +1 -4
  244. package/dist/components/schema-form/schema-form-validation.d.ts +1 -2
  245. package/dist/components/schema-form/schema-form.css +12 -74
  246. package/dist/components/schema-form/schema-form.schema.js +10 -3
  247. package/dist/components/schema-form/schema-form.svelte.d.ts +3 -3
  248. package/dist/components/schema-form/schema-form.types.d.ts +15 -8
  249. package/dist/components/scroll-area/index.js +3 -3
  250. package/dist/components/scroll-area/scroll-area.schema.js +2 -2
  251. package/dist/components/scroll-area/scroll-area.types.d.ts +1 -1
  252. package/dist/components/secret-value-field/index.js +10 -4
  253. package/dist/components/secret-value-field/secret-value-field.svelte.d.ts +1 -1
  254. package/dist/components/segmented-control/segmented-control.css +22 -1
  255. package/dist/components/select/index.js +37 -24
  256. package/dist/components/select/select.css +9 -2
  257. package/dist/components/selection-popover/index.js +11 -4
  258. package/dist/components/share-card/index.js +3 -4
  259. package/dist/components/share-card/share-card.css +15 -4
  260. package/dist/components/sheet/index.js +365 -300
  261. package/dist/components/shortcut-hint/index.js +3 -3
  262. package/dist/components/sidebar/index.js +423 -353
  263. package/dist/components/sidebar/sidebar.schema.js +2 -2
  264. package/dist/components/sidebar/sidebar.types.d.ts +1 -1
  265. package/dist/components/slider/index.js +211 -9
  266. package/dist/components/slider/slider.css +14 -9
  267. package/dist/components/sortable-list/sortable-list.css +1 -1
  268. package/dist/components/spectrogram/index.js +224 -203
  269. package/dist/components/spectrum-chart/index.js +208 -187
  270. package/dist/components/speed-dial/index.js +11 -11
  271. package/dist/components/speed-dial/speed-dial.css +3 -3
  272. package/dist/components/speed-dial-action/index.js +9 -9
  273. package/dist/components/stat/index.js +26 -4
  274. package/dist/components/stat/stat.schema.js +2 -2
  275. package/dist/components/stat/stat.types.d.ts +2 -2
  276. package/dist/components/stat-group/index.js +26 -4
  277. package/dist/components/stat-group/stat-group.css +1 -1
  278. package/dist/components/status-dot/index.d.ts +1 -1
  279. package/dist/components/status-dot/index.js +47 -8
  280. package/dist/components/status-dot/status-dot.css +45 -1
  281. package/dist/components/status-dot/status-dot.schema.js +12 -5
  282. package/dist/components/status-dot/status-dot.svelte.d.ts +5 -1
  283. package/dist/components/status-dot/status-dot.types.d.ts +16 -6
  284. package/dist/components/steps/steps.css +3 -3
  285. package/dist/components/table/index.js +23 -17
  286. package/dist/components/table/table.css +10 -0
  287. package/dist/components/table/table.types.d.ts +3 -3
  288. package/dist/components/table-header/index.js +5 -5
  289. package/dist/components/table-header/table-header.schema.js +3 -3
  290. package/dist/components/table-header/table-header.types.d.ts +2 -2
  291. package/dist/components/table-header-cell/index.js +11 -5
  292. package/dist/components/table-row/index.js +7 -7
  293. package/dist/components/table-row/table-row.schema.js +3 -3
  294. package/dist/components/table-row/table-row.types.d.ts +6 -6
  295. package/dist/components/tabs/index.js +17 -4
  296. package/dist/components/tabs/tabs.schema.js +6 -1
  297. package/dist/components/tabs/tabs.types.d.ts +2 -0
  298. package/dist/components/textarea/index.js +37 -24
  299. package/dist/components/textarea/textarea.css +16 -1
  300. package/dist/components/time-field/index.d.ts +5 -0
  301. package/dist/components/time-field/index.js +456 -0
  302. package/dist/components/time-field/time-field.css +60 -0
  303. package/dist/components/time-field/time-field.schema.d.ts +3 -0
  304. package/dist/components/time-field/time-field.schema.js +107 -0
  305. package/dist/components/time-field/time-field.svelte.d.ts +18 -0
  306. package/dist/components/time-field/time-field.types.d.ts +63 -0
  307. package/dist/components/time-field/time-field.variables.d.ts +2 -0
  308. package/dist/components/{experimental/connection-indicator/index.js → time-field/time-field.variables.js} +5 -14
  309. package/dist/components/toggle/index.js +39 -7
  310. package/dist/components/toggle/toggle.schema.js +11 -2
  311. package/dist/components/toggle/toggle.types.d.ts +2 -0
  312. package/dist/components/tooltip/index.js +3 -2
  313. package/dist/components/transfer-list/index.js +41 -11
  314. package/dist/components/transfer-list/transfer-list.css +22 -0
  315. package/dist/components/transfer-list/transfer-list.schema.js +2 -2
  316. package/dist/components/transfer-list/transfer-list.types.d.ts +2 -2
  317. package/dist/components/tree/index.js +238 -153
  318. package/dist/components/tree/tree.css +69 -0
  319. package/dist/components/tree/tree.schema.js +3 -3
  320. package/dist/components/tree/tree.types.d.ts +2 -2
  321. package/dist/components/tree-item/index.js +107 -68
  322. package/dist/components/tree-item/tree-item.schema.js +5 -5
  323. package/dist/components/tree-item/tree-item.types.d.ts +4 -4
  324. package/dist/components/virtual-list/index.js +98 -63
  325. package/dist/components/waveform/index.js +185 -164
  326. package/dist/editor/attach.d.ts +2 -2
  327. package/dist/editor/attach.js +10 -16
  328. package/dist/editor/editor.js +6 -6
  329. package/dist/editor/keymap-plugin.d.ts +2 -2
  330. package/dist/editor/keymap-plugin.js +4 -4
  331. package/dist/editor/types.d.ts +11 -11
  332. package/dist/index.d.ts +14 -12
  333. package/dist/index.js +106 -105
  334. package/dist/server/components/access-gate/index.js +176 -305
  335. package/dist/server/components/alert/alert.schema.js +4 -4
  336. package/dist/server/components/alert/index.css +1 -1
  337. package/dist/server/components/alert/index.js +4 -4
  338. package/dist/server/components/alert-dialog/index.js +9 -3
  339. package/dist/server/components/approval-card/approval-card.schema.js +217 -0
  340. package/dist/server/components/approval-card/approval-card.variables.js +12 -0
  341. package/dist/server/components/approval-card/index.css +1767 -0
  342. package/dist/server/components/approval-card/index.js +2499 -0
  343. package/dist/server/components/autocomplete/index.css +12 -1
  344. package/dist/server/components/autocomplete/index.js +34 -24
  345. package/dist/server/components/badge/badge.schema.js +6 -3
  346. package/dist/server/components/badge/index.js +71 -4
  347. package/dist/server/components/banner/banner.schema.js +2 -2
  348. package/dist/server/components/banner/index.js +3 -3
  349. package/dist/server/components/button/index.css +1 -1
  350. package/dist/server/components/capability-gate/capability-gate.schema.js +4 -4
  351. package/dist/server/components/capability-gate/index.css +10 -2
  352. package/dist/server/components/capability-gate/index.js +5 -5
  353. package/dist/server/components/chat/chat.schema.js +11 -26
  354. package/dist/server/components/chat/index.js +695 -438
  355. package/dist/server/components/chat-conversation-header/index.css +7 -1
  356. package/dist/server/components/chat-conversation-header/index.js +215 -17
  357. package/dist/server/components/chat-conversation-list/index.css +8 -0
  358. package/dist/server/components/checkbox/checkbox.schema.js +6 -1
  359. package/dist/server/components/checkbox/index.css +3 -0
  360. package/dist/server/components/checkbox/index.js +41 -4
  361. package/dist/server/components/checkbox-group/checkbox-group.schema.js +4 -4
  362. package/dist/server/components/checkbox-group/index.css +3 -0
  363. package/dist/server/components/checkbox-group/index.js +23 -4
  364. package/dist/server/components/choice-grid/index.js +2 -2
  365. package/dist/server/components/choice-grid-item/index.js +2 -2
  366. package/dist/server/components/click-away-listener/click-away-listener.schema.js +3 -3
  367. package/dist/server/components/click-away-listener/index.js +2 -2
  368. package/dist/server/components/code-block/index.css +4 -3
  369. package/dist/server/components/code-block/index.js +1 -6
  370. package/dist/server/components/collapsible/collapsible.schema.js +2 -2
  371. package/dist/server/components/collapsible/index.js +3 -3
  372. package/dist/server/components/color-field/color-field.schema.js +3 -3
  373. package/dist/server/components/color-field/index.js +61 -17
  374. package/dist/server/components/color-picker/index.js +29 -12
  375. package/dist/server/components/color-swatch-picker/index.js +29 -12
  376. package/dist/server/components/combobox/combobox.schema.js +6 -2
  377. package/dist/server/components/combobox/index.js +61 -12
  378. package/dist/server/components/command-item/command-item.schema.js +9 -1
  379. package/dist/server/components/command-item/index.css +1 -0
  380. package/dist/server/components/command-item/index.js +10 -2
  381. package/dist/server/components/command-menu/index.css +1 -0
  382. package/dist/server/components/command-menu/index.js +193 -102
  383. package/dist/server/components/command-palette/command-palette.schema.js +2 -3
  384. package/dist/server/components/command-palette/index.css +1 -0
  385. package/dist/server/components/command-palette/index.js +190 -106
  386. package/dist/server/components/confirm-dialog/index.js +9 -3
  387. package/dist/server/components/context-menu/index.css +7 -1
  388. package/dist/server/components/context-menu/index.js +244 -26
  389. package/dist/server/components/context-menu-trigger/index.js +7 -4
  390. package/dist/server/components/copy-button/index.js +1 -6
  391. package/dist/server/components/data-grid/data-grid.schema.js +3 -3
  392. package/dist/server/components/data-grid/index.css +23 -0
  393. package/dist/server/components/data-grid/index.js +9 -7
  394. package/dist/server/components/data-list/data-list.schema.js +7 -10
  395. package/dist/server/components/data-list/index.js +7 -21
  396. package/dist/server/components/data-table/index.css +20 -0
  397. package/dist/server/components/data-table/index.js +26 -16
  398. package/dist/server/components/date-range-field/date-range-field.schema.js +7 -3
  399. package/dist/server/components/date-range-field/index.js +146 -12
  400. package/dist/server/components/diff-viewer/index.js +79 -7
  401. package/dist/server/components/drawer/index.js +260 -193
  402. package/dist/server/components/dropdown/index.css +7 -1
  403. package/dist/server/components/dropdown/index.js +221 -23
  404. package/dist/server/components/dropdown-group/dropdown-group.schema.js +4 -4
  405. package/dist/server/components/dropdown-group/index.js +7 -7
  406. package/dist/server/components/dropdown-item/dropdown-item.schema.js +9 -1
  407. package/dist/server/components/dropdown-item/index.js +12 -7
  408. package/dist/server/components/dropdown-menu/index.js +197 -13
  409. package/dist/server/components/dropdown-trigger/index.js +5 -2
  410. package/dist/server/components/event-stream-viewer/event-stream-viewer.schema.js +83 -10
  411. package/dist/server/components/event-stream-viewer/index.css +323 -0
  412. package/dist/server/components/event-stream-viewer/index.js +406 -139
  413. package/dist/server/components/faceted-filter-bar/index.css +10 -1
  414. package/dist/server/components/faceted-filter-bar/index.js +24 -6
  415. package/dist/server/components/file-upload/index.css +3 -3
  416. package/dist/server/components/floating-action-button/floating-action-button.schema.js +5 -5
  417. package/dist/server/components/floating-action-button/index.css +16 -16
  418. package/dist/server/components/floating-action-button/index.js +5 -5
  419. package/dist/server/components/form-field/index.css +0 -10
  420. package/dist/server/components/form-field/index.js +2 -2
  421. package/dist/server/components/input/index.js +59 -15
  422. package/dist/server/components/input/input.schema.js +6 -1
  423. package/dist/server/components/invocation-rule-builder/index.css +51 -6
  424. package/dist/server/components/invocation-rule-builder/index.js +56 -17
  425. package/dist/server/components/invocation-rule-builder/invocation-rule-builder.schema.js +133 -35
  426. package/dist/server/components/json-schema-editor/index.css +4 -1
  427. package/dist/server/components/json-schema-editor/index.js +282 -52
  428. package/dist/server/components/json-viewer/index.css +7 -1
  429. package/dist/server/components/json-viewer/index.js +83 -11
  430. package/dist/server/components/kanban-board/index.css +42 -3
  431. package/dist/server/components/kanban-board/index.js +7 -6
  432. package/dist/server/components/keyboard-shortcuts/index.css +2 -2
  433. package/dist/server/components/keyboard-shortcuts/index.js +2 -2
  434. package/dist/server/components/label/index.css +0 -10
  435. package/dist/server/components/label/index.js +2 -2
  436. package/dist/server/components/load-more/index.css +12 -4
  437. package/dist/server/components/load-more/index.js +5 -5
  438. package/dist/server/components/load-more/load-more.schema.js +4 -4
  439. package/dist/server/components/locale-provider/index.js +55 -0
  440. package/dist/server/components/locale-provider/locale-provider.schema.js +35 -0
  441. package/dist/server/components/locale-provider/locale-provider.variables.js +12 -0
  442. package/dist/server/components/markdown-editor/index.js +297 -60
  443. package/dist/server/components/markdown-editor/markdown-editor.schema.js +4 -4
  444. package/dist/server/components/masonry/masonry.schema.js +4 -3
  445. package/dist/server/components/matrix-chart/index.js +62 -39
  446. package/dist/server/components/media-controls/index.css +11 -3
  447. package/dist/server/components/media-controls/index.js +7 -7
  448. package/dist/server/components/media-controls/media-controls.schema.js +4 -4
  449. package/dist/server/components/menu-bar/index.css +15 -1
  450. package/dist/server/components/modal/index.js +9 -3
  451. package/dist/server/components/navigation-bar/index.js +3 -3
  452. package/dist/server/components/navigation-bar/navigation-bar.schema.js +2 -2
  453. package/dist/server/components/number-input/index.js +56 -18
  454. package/dist/server/components/number-input/number-input.schema.js +4 -3
  455. package/dist/server/components/payload-inspector/index.css +616 -0
  456. package/dist/server/components/payload-inspector/index.js +181 -22
  457. package/dist/server/components/payload-inspector/payload-inspector.schema.js +27 -15
  458. package/dist/server/components/permission-matrix/index.css +8 -0
  459. package/dist/server/components/phone-input/index.js +21 -3
  460. package/dist/server/components/phone-input/phone-input.schema.js +2 -2
  461. package/dist/server/components/pin-input/index.js +12 -7
  462. package/dist/server/components/pin-input/pin-input.schema.js +9 -2
  463. package/dist/server/components/popover/index.js +9 -3
  464. package/dist/server/components/pricing-card/index.js +22 -7
  465. package/dist/server/components/radio-group/index.css +3 -0
  466. package/dist/server/components/radio-group/index.js +24 -3
  467. package/dist/server/components/radio-group/radio-group.schema.js +3 -3
  468. package/dist/server/components/rating/rating.schema.js +9 -2
  469. package/dist/server/components/review-editor/index.js +426 -80
  470. package/dist/server/components/run-step-timeline/index.css +503 -6
  471. package/dist/server/components/run-step-timeline/index.js +455 -109
  472. package/dist/server/components/run-step-timeline/run-step-timeline.schema.js +351 -21
  473. package/dist/server/components/schema-form/index.css +11 -69
  474. package/dist/server/components/schema-form/index.js +1291 -218
  475. package/dist/server/components/schema-form/schema-form.schema.js +10 -3
  476. package/dist/server/components/scroll-area/index.js +3 -3
  477. package/dist/server/components/scroll-area/scroll-area.schema.js +2 -2
  478. package/dist/server/components/secret-value-field/index.js +4 -4
  479. package/dist/server/components/segmented-control/index.css +15 -1
  480. package/dist/server/components/select/index.css +9 -2
  481. package/dist/server/components/select/index.js +9 -2
  482. package/dist/server/components/selection-popover/index.js +9 -3
  483. package/dist/server/components/share-card/index.css +11 -3
  484. package/dist/server/components/share-card/index.js +1 -5
  485. package/dist/server/components/sheet/index.js +265 -195
  486. package/dist/server/components/sidebar/index.js +274 -207
  487. package/dist/server/components/sidebar/sidebar.schema.js +2 -2
  488. package/dist/server/components/slider/index.css +13 -9
  489. package/dist/server/components/slider/index.js +173 -4
  490. package/dist/server/components/sortable-list/index.css +1 -1
  491. package/dist/server/components/spectrogram/index.js +68 -45
  492. package/dist/server/components/spectrum-chart/index.js +54 -31
  493. package/dist/server/components/speed-dial/index.css +3 -3
  494. package/dist/server/components/speed-dial/index.js +8 -8
  495. package/dist/server/components/speed-dial-action/index.js +6 -6
  496. package/dist/server/components/stat/index.js +26 -4
  497. package/dist/server/components/stat/stat.schema.js +2 -2
  498. package/dist/server/components/stat-group/index.css +1 -1
  499. package/dist/server/components/stat-group/index.js +26 -4
  500. package/dist/server/components/status-dot/index.css +45 -1
  501. package/dist/server/components/status-dot/index.js +35 -7
  502. package/dist/server/components/status-dot/status-dot.schema.js +12 -5
  503. package/dist/server/components/steps/index.css +3 -3
  504. package/dist/server/components/table/index.css +8 -0
  505. package/dist/server/components/table/index.js +22 -16
  506. package/dist/server/components/table-header/index.js +6 -6
  507. package/dist/server/components/table-header/table-header.schema.js +3 -3
  508. package/dist/server/components/table-header-cell/index.js +9 -3
  509. package/dist/server/components/table-row/index.js +7 -7
  510. package/dist/server/components/table-row/table-row.schema.js +3 -3
  511. package/dist/server/components/tabs/index.js +18 -4
  512. package/dist/server/components/tabs/tabs.schema.js +6 -1
  513. package/dist/server/components/textarea/index.css +16 -1
  514. package/dist/server/components/textarea/index.js +9 -2
  515. package/dist/server/components/time-field/index.css +58 -0
  516. package/dist/server/components/time-field/index.js +291 -0
  517. package/dist/server/components/time-field/time-field.schema.js +88 -0
  518. package/dist/server/components/time-field/time-field.variables.js +12 -0
  519. package/dist/server/components/toggle/index.js +40 -7
  520. package/dist/server/components/toggle/toggle.schema.js +11 -2
  521. package/dist/server/components/transfer-list/index.css +16 -0
  522. package/dist/server/components/transfer-list/index.js +37 -11
  523. package/dist/server/components/transfer-list/transfer-list.schema.js +2 -2
  524. package/dist/server/components/tree/index.css +68 -0
  525. package/dist/server/components/tree/index.js +67 -20
  526. package/dist/server/components/tree/tree.schema.js +3 -3
  527. package/dist/server/components/tree-item/index.js +34 -13
  528. package/dist/server/components/tree-item/tree-item.schema.js +5 -5
  529. package/dist/server/components/virtual-list/index.js +36 -13
  530. package/dist/server/components/waveform/index.js +51 -28
  531. package/dist/server/editor/attach.d.ts +2 -2
  532. package/dist/server/editor/attach.js +10 -16
  533. package/dist/server/editor/editor.js +6 -6
  534. package/dist/server/editor/keymap-plugin.d.ts +2 -2
  535. package/dist/server/editor/keymap-plugin.js +4 -4
  536. package/dist/server/editor/types.d.ts +11 -11
  537. package/dist/server/index.css +2033 -1463
  538. package/dist/server/index.js +7203 -5135
  539. package/dist/utilities/attachments.d.ts +6 -6
  540. package/dist/utilities/value-change.d.ts +2 -0
  541. package/package.json +96 -63
  542. package/src/_internal/locale-context.ts +21 -0
  543. package/src/_internal/text-direction.ts +213 -0
  544. package/src/_internal/tree-context.ts +2 -0
  545. package/src/components/_internal/create-command-list-state.svelte.ts +171 -0
  546. package/src/components/_internal/create-sliding-dialog-state.svelte.ts +170 -0
  547. package/src/components/_radio/README.md +1 -1
  548. package/src/components/access-gate/access-gate-inline.svelte +3 -1
  549. package/src/components/alert/README.md +8 -8
  550. package/src/components/alert/alert.css +1 -1
  551. package/src/components/alert/alert.examples.json +4 -4
  552. package/src/components/alert/alert.svelte +3 -5
  553. package/src/components/alert/alert.types.ts +4 -4
  554. package/src/components/approval-card/README.md +92 -0
  555. package/src/components/approval-card/approval-card-state.ts +24 -0
  556. package/src/components/approval-card/approval-card.css +239 -0
  557. package/src/components/approval-card/approval-card.examples.json +25 -0
  558. package/src/components/approval-card/approval-card.svelte +583 -0
  559. package/src/components/approval-card/approval-card.types.ts +180 -0
  560. package/src/components/approval-card/index.ts +16 -0
  561. package/src/components/autocomplete/autocomplete.css +12 -1
  562. package/src/components/autocomplete/autocomplete.svelte +53 -27
  563. package/src/components/badge/README.md +8 -7
  564. package/src/components/badge/badge.svelte +80 -3
  565. package/src/components/badge/badge.types.ts +36 -13
  566. package/src/components/badge/index.ts +1 -1
  567. package/src/components/banner/README.md +2 -2
  568. package/src/components/banner/banner.examples.json +19 -0
  569. package/src/components/banner/banner.svelte +2 -2
  570. package/src/components/banner/banner.types.ts +1 -1
  571. package/src/components/button/button.css +1 -1
  572. package/src/components/callout/callout.examples.json +19 -0
  573. package/src/components/capability-gate/README.md +3 -3
  574. package/src/components/capability-gate/capability-gate.css +15 -2
  575. package/src/components/capability-gate/capability-gate.examples.json +1 -1
  576. package/src/components/capability-gate/capability-gate.svelte +7 -7
  577. package/src/components/capability-gate/capability-gate.types.ts +6 -6
  578. package/src/components/chat/README.md +6 -10
  579. package/src/components/chat/chat.examples.json +8 -8
  580. package/src/components/chat/chat.types.ts +31 -15
  581. package/src/components/chat/container/chat-events.ts +2 -2
  582. package/src/components/chat/container/chat-history-trigger.svelte +9 -1
  583. package/src/components/chat/container/chat.svelte +47 -46
  584. package/src/components/chat/container/use-chat-scroll-state.svelte.ts +21 -18
  585. package/src/components/chat/container/use-chat-unread-state.svelte.ts +19 -19
  586. package/src/components/chat/index.ts +1 -1
  587. package/src/components/chat/input/chat-input.svelte +35 -13
  588. package/src/components/chat/message/image-lightbox.svelte +38 -15
  589. package/src/components/chat/message/message-attachments.svelte +1 -1
  590. package/src/components/chat/message/parts/reasoning-part.svelte +8 -0
  591. package/src/components/chat/message/parts/tool-approval-part.svelte +22 -9
  592. package/src/components/chat-conversation-list/chat-conversation-list.css +13 -0
  593. package/src/components/checkbox/README.md +1 -0
  594. package/src/components/checkbox/checkbox.css +3 -0
  595. package/src/components/checkbox/checkbox.svelte +44 -2
  596. package/src/components/checkbox/checkbox.types.ts +2 -0
  597. package/src/components/checkbox-group/README.md +2 -2
  598. package/src/components/checkbox-group/checkbox-group.css +3 -0
  599. package/src/components/checkbox-group/checkbox-group.examples.json +13 -0
  600. package/src/components/checkbox-group/checkbox-group.svelte +23 -2
  601. package/src/components/checkbox-group/checkbox-group.types.ts +12 -7
  602. package/src/components/choice-grid-item/choice-grid-item.svelte +1 -1
  603. package/src/components/click-away-listener/README.md +2 -2
  604. package/src/components/click-away-listener/click-away-listener.examples.json +1 -1
  605. package/src/components/click-away-listener/click-away-listener.svelte +2 -2
  606. package/src/components/click-away-listener/click-away-listener.types.ts +3 -3
  607. package/src/components/code-block/code-block.css +4 -3
  608. package/src/components/collapsible/README.md +2 -2
  609. package/src/components/collapsible/collapsible.svelte +2 -2
  610. package/src/components/collapsible/collapsible.types.ts +5 -2
  611. package/src/components/color-field/README.md +18 -18
  612. package/src/components/color-field/color-field.svelte +2 -2
  613. package/src/components/color-field/color-field.types.ts +2 -2
  614. package/src/components/color-swatch-picker/color-swatch-picker.examples.json +13 -0
  615. package/src/components/color-swatch-picker/color-swatch-picker.svelte +38 -24
  616. package/src/components/combobox/README.md +2 -1
  617. package/src/components/combobox/combobox.svelte +38 -17
  618. package/src/components/combobox/combobox.types.ts +7 -1
  619. package/src/components/command-item/README.md +13 -11
  620. package/src/components/command-item/command-item.css +10 -0
  621. package/src/components/command-item/command-item.svelte +11 -0
  622. package/src/components/command-item/command-item.types.ts +4 -0
  623. package/src/components/command-menu/command-menu.svelte +21 -102
  624. package/src/components/command-palette/README.md +12 -12
  625. package/src/components/command-palette/command-palette.examples.json +3 -3
  626. package/src/components/command-palette/command-palette.svelte +17 -134
  627. package/src/components/command-palette/command-palette.types.ts +1 -2
  628. package/src/components/context-menu/context-menu.context.ts +2 -0
  629. package/src/components/context-menu/context-menu.svelte +35 -9
  630. package/src/components/context-menu-trigger/context-menu-trigger.svelte +9 -6
  631. package/src/components/copy-button/copy-button.svelte +4 -3
  632. package/src/components/data-grid/README.md +3 -3
  633. package/src/components/data-grid/_internal/column-model.svelte.ts +2 -0
  634. package/src/components/data-grid/data-grid.css +25 -0
  635. package/src/components/data-grid/data-grid.svelte +7 -7
  636. package/src/components/data-grid/data-grid.types.ts +8 -2
  637. package/src/components/data-list/README.md +9 -9
  638. package/src/components/data-list/data-list.examples.json +1 -1
  639. package/src/components/data-list/data-list.svelte +3 -9
  640. package/src/components/data-list/data-list.types.ts +5 -9
  641. package/src/components/data-table/data-table.css +13 -0
  642. package/src/components/data-table/data-table.svelte +13 -3
  643. package/src/components/date-range-field/README.md +9 -8
  644. package/src/components/date-range-field/date-range-field.svelte +193 -19
  645. package/src/components/date-range-field/date-range-field.types.ts +16 -10
  646. package/src/components/date-range-field/index.ts +1 -0
  647. package/src/components/diff-viewer/diff-front-matter.svelte +2 -2
  648. package/src/components/diff-viewer/diff-line.svelte +32 -8
  649. package/src/components/diff-viewer/diff-toolbar.svelte +3 -3
  650. package/src/components/diff-viewer/diff-viewer.svelte +4 -4
  651. package/src/components/diff-viewer/diff-viewer.types.ts +3 -3
  652. package/src/components/diff-viewer/index.ts +1 -1
  653. package/src/components/drawer/drawer.svelte +26 -145
  654. package/src/components/dropdown/dropdown.css +7 -1
  655. package/src/components/dropdown/dropdown.types.ts +3 -0
  656. package/src/components/dropdown-group/README.md +6 -6
  657. package/src/components/dropdown-group/dropdown-group.svelte +8 -8
  658. package/src/components/dropdown-group/dropdown-group.types.ts +4 -4
  659. package/src/components/dropdown-item/README.md +2 -0
  660. package/src/components/dropdown-item/dropdown-item.svelte +14 -11
  661. package/src/components/dropdown-item/dropdown-item.types.ts +5 -0
  662. package/src/components/dropdown-menu/dropdown-menu.svelte +42 -9
  663. package/src/components/dropdown-trigger/dropdown-trigger.svelte +4 -6
  664. package/src/components/event-stream-viewer/README.md +38 -16
  665. package/src/components/event-stream-viewer/event-stream-viewer-keys.ts +74 -0
  666. package/src/components/event-stream-viewer/event-stream-viewer.css +46 -0
  667. package/src/components/event-stream-viewer/event-stream-viewer.examples.json +6 -0
  668. package/src/components/event-stream-viewer/event-stream-viewer.svelte +262 -69
  669. package/src/components/event-stream-viewer/event-stream-viewer.types.ts +130 -3
  670. package/src/components/event-stream-viewer/index.ts +6 -0
  671. package/src/components/faceted-filter-bar/faceted-filter-bar.css +9 -0
  672. package/src/components/faceted-filter-bar/faceted-filter-bar.svelte +31 -5
  673. package/src/components/file-upload/file-upload.css +5 -5
  674. package/src/components/file-upload/file-upload.examples.json +13 -0
  675. package/src/components/floating-action-button/README.md +9 -9
  676. package/src/components/floating-action-button/floating-action-button.css +22 -22
  677. package/src/components/floating-action-button/floating-action-button.examples.json +1 -1
  678. package/src/components/floating-action-button/floating-action-button.svelte +7 -7
  679. package/src/components/floating-action-button/floating-action-button.types.ts +21 -21
  680. package/src/components/floating-action-button/index.ts +1 -1
  681. package/src/components/form-field/form-field.css +3 -13
  682. package/src/components/form-field/form-field.svelte +4 -1
  683. package/src/components/image/image.examples.json +13 -0
  684. package/src/components/input/README.md +16 -15
  685. package/src/components/input/input.examples.json +1 -1
  686. package/src/components/input/input.svelte +65 -28
  687. package/src/components/input/input.types.ts +2 -0
  688. package/src/components/invocation-rule-builder/README.md +14 -14
  689. package/src/components/invocation-rule-builder/index.ts +1 -0
  690. package/src/components/invocation-rule-builder/invocation-rule-builder.css +63 -6
  691. package/src/components/invocation-rule-builder/invocation-rule-builder.svelte +73 -16
  692. package/src/components/invocation-rule-builder/invocation-rule-builder.types.ts +99 -8
  693. package/src/components/json-schema-editor/form-view.svelte +3 -1
  694. package/src/components/json-schema-editor/json-schema-editor-impl.svelte +30 -18
  695. package/src/components/json-schema-editor/json-schema-editor.css +6 -1
  696. package/src/components/json-schema-editor/json-schema-toolbar.svelte +6 -0
  697. package/src/components/json-schema-editor/json-view.svelte +1 -1
  698. package/src/components/json-schema-editor/property-editor.svelte +38 -2
  699. package/src/components/json-schema-editor/property-list-validation.ts +10 -0
  700. package/src/components/json-schema-editor/property-list.svelte +48 -3
  701. package/src/components/json-viewer/_json-viewer-node.svelte +55 -9
  702. package/src/components/json-viewer/json-viewer.css +11 -0
  703. package/src/components/json-viewer/json-viewer.svelte +63 -1
  704. package/src/components/kanban-board/kanban-board.css +56 -3
  705. package/src/components/kanban-board/kanban-board.svelte +10 -3
  706. package/src/components/keyboard-shortcuts/keyboard-shortcuts.css +2 -2
  707. package/src/components/keyboard-shortcuts/keyboard-shortcuts.svelte +1 -1
  708. package/src/components/label/README.md +1 -1
  709. package/src/components/label/label.css +2 -9
  710. package/src/components/label/label.svelte +4 -2
  711. package/src/components/load-more/README.md +4 -4
  712. package/src/components/load-more/load-more.css +13 -5
  713. package/src/components/load-more/load-more.examples.json +2 -2
  714. package/src/components/load-more/load-more.svelte +4 -4
  715. package/src/components/load-more/load-more.types.ts +3 -3
  716. package/src/components/locale-provider/README.md +43 -0
  717. package/src/components/locale-provider/index.ts +5 -0
  718. package/src/components/locale-provider/locale-provider.svelte +40 -0
  719. package/src/components/locale-provider/locale-provider.types.ts +21 -0
  720. package/src/components/markdown-editor/README.md +3 -3
  721. package/src/components/markdown-editor/editor-toolbar/editor-toolbar.svelte +5 -2
  722. package/src/components/markdown-editor/editor-toolbar/link-popover.svelte +13 -0
  723. package/src/components/markdown-editor/editor-toolbar/toolbar-dropdown.svelte +2 -0
  724. package/src/components/markdown-editor/markdown-editor.svelte +14 -12
  725. package/src/components/markdown-editor/markdown-editor.types.ts +4 -4
  726. package/src/components/masonry/README.md +7 -7
  727. package/src/components/masonry/masonry.types.ts +24 -2
  728. package/src/components/matrix-chart/matrix-chart.svelte +7 -21
  729. package/src/components/media-controls/README.md +3 -3
  730. package/src/components/media-controls/media-controls.css +15 -4
  731. package/src/components/media-controls/media-controls.examples.json +1 -1
  732. package/src/components/media-controls/media-controls.svelte +6 -6
  733. package/src/components/media-controls/media-controls.types.ts +10 -7
  734. package/src/components/menu-bar/menu-bar.css +11 -0
  735. package/src/components/menu-bar/menu-bar.svelte +81 -12
  736. package/src/components/navigation-bar/README.md +1 -1
  737. package/src/components/navigation-bar/navigation-bar.examples.json +1 -1
  738. package/src/components/navigation-bar/navigation-bar.svelte +2 -2
  739. package/src/components/navigation-bar/navigation-bar.types.ts +1 -1
  740. package/src/components/number-input/README.md +18 -18
  741. package/src/components/number-input/number-input.examples.json +13 -0
  742. package/src/components/number-input/number-input.svelte +77 -38
  743. package/src/components/number-input/number-input.types.ts +15 -5
  744. package/src/components/pagination/README.md +3 -1
  745. package/src/components/payload-inspector/README.md +11 -11
  746. package/src/components/payload-inspector/index.ts +2 -0
  747. package/src/components/payload-inspector/payload-inspector.css +6 -0
  748. package/src/components/payload-inspector/payload-inspector.svelte +22 -4
  749. package/src/components/payload-inspector/payload-inspector.types.ts +54 -3
  750. package/src/components/permission-matrix/permission-matrix.css +10 -0
  751. package/src/components/phone-input/README.md +1 -1
  752. package/src/components/phone-input/phone-input.svelte +7 -1
  753. package/src/components/phone-input/phone-input.types.ts +3 -2
  754. package/src/components/pin-input/README.md +19 -19
  755. package/src/components/pin-input/pin-input.svelte +16 -12
  756. package/src/components/pin-input/pin-input.types.ts +10 -1
  757. package/src/components/portal/portal.utilities.svelte.ts +4 -1
  758. package/src/components/pricing-card/pricing-card.svelte +26 -1
  759. package/src/components/radio-group/README.md +12 -12
  760. package/src/components/radio-group/radio-group.css +3 -0
  761. package/src/components/radio-group/radio-group.examples.json +3 -3
  762. package/src/components/radio-group/radio-group.svelte +22 -2
  763. package/src/components/radio-group/radio-group.types.ts +6 -2
  764. package/src/components/rating/README.md +18 -18
  765. package/src/components/rating/rating.svelte +0 -8
  766. package/src/components/rating/rating.types.ts +6 -0
  767. package/src/components/review-editor/comment-list.svelte +1 -1
  768. package/src/components/review-editor/index.ts +1 -1
  769. package/src/components/review-editor/review-editor-controls.svelte +8 -3
  770. package/src/components/review-editor/review-editor-impl.svelte +11 -7
  771. package/src/components/review-editor/review-editor-selection-types.ts +1 -1
  772. package/src/components/review-editor/review-editor-selection.svelte.ts +1 -1
  773. package/src/components/review-editor/review-editor-state.svelte.ts +1 -1
  774. package/src/components/review-editor/review-editor-threads.svelte.ts +2 -2
  775. package/src/components/review-editor/review-editor.types.ts +91 -3
  776. package/src/components/review-editor/thread-popover.svelte +1 -1
  777. package/src/components/run-step-timeline/README.md +53 -6
  778. package/src/components/run-step-timeline/index.ts +6 -0
  779. package/src/components/run-step-timeline/run-step-timeline.css +25 -5
  780. package/src/components/run-step-timeline/run-step-timeline.examples.json +3 -3
  781. package/src/components/run-step-timeline/run-step-timeline.svelte +314 -78
  782. package/src/components/run-step-timeline/run-step-timeline.types.ts +190 -3
  783. package/src/components/schema-form/README.md +9 -9
  784. package/src/components/schema-form/index.ts +0 -1
  785. package/src/components/schema-form/schema-form-async.fixture.ts +101 -0
  786. package/src/components/schema-form/schema-form-body.svelte +646 -0
  787. package/src/components/schema-form/schema-form-model.ts +4 -44
  788. package/src/components/schema-form/schema-form-validation.ts +83 -46
  789. package/src/components/schema-form/schema-form.css +12 -74
  790. package/src/components/schema-form/schema-form.examples.json +0 -6
  791. package/src/components/schema-form/schema-form.svelte +30 -598
  792. package/src/components/schema-form/schema-form.types.ts +16 -12
  793. package/src/components/scroll-area/README.md +1 -1
  794. package/src/components/scroll-area/scroll-area.examples.json +3 -3
  795. package/src/components/scroll-area/scroll-area.svelte +5 -5
  796. package/src/components/scroll-area/scroll-area.types.ts +1 -1
  797. package/src/components/secret-value-field/secret-value-field.svelte +10 -6
  798. package/src/components/segmented-control/segmented-control.css +22 -1
  799. package/src/components/segmented-control/segmented-control.examples.json +2 -2
  800. package/src/components/select/select.css +9 -2
  801. package/src/components/select/select.svelte +6 -1
  802. package/src/components/selection-popover/selection-popover.examples.json +1 -1
  803. package/src/components/share-card/share-card.css +15 -4
  804. package/src/components/share-card/share-card.svelte +2 -4
  805. package/src/components/sheet/sheet.svelte +30 -145
  806. package/src/components/shortcut-hint/shortcut-hint.svelte +1 -1
  807. package/src/components/side-navigation/side-navigation.examples.json +1 -1
  808. package/src/components/sidebar/README.md +6 -2
  809. package/src/components/sidebar/sidebar.examples.json +1 -1
  810. package/src/components/sidebar/sidebar.svelte +4 -4
  811. package/src/components/sidebar/sidebar.types.ts +1 -1
  812. package/src/components/slider/slider.css +14 -9
  813. package/src/components/slider/slider.svelte +33 -2
  814. package/src/components/sortable-list/README.md +18 -1
  815. package/src/components/sortable-list/sortable-list.css +1 -1
  816. package/src/components/sortable-list/sortable-list.examples.json +13 -0
  817. package/src/components/spectrogram/spectrogram.examples.json +1 -0
  818. package/src/components/spectrogram/spectrogram.svelte +7 -19
  819. package/src/components/spectrum-chart/spectrum-chart.svelte +8 -20
  820. package/src/components/speed-dial/speed-dial.css +3 -3
  821. package/src/components/speed-dial/speed-dial.examples.json +1 -1
  822. package/src/components/speed-dial/speed-dial.svelte +2 -2
  823. package/src/components/speed-dial-action/speed-dial-action.svelte +1 -1
  824. package/src/components/stacked-list-item/stacked-list-item.examples.json +1 -1
  825. package/src/components/stat/README.md +1 -1
  826. package/src/components/stat/stat.svelte +7 -2
  827. package/src/components/stat/stat.types.ts +2 -2
  828. package/src/components/stat-group/stat-group.css +1 -1
  829. package/src/components/status-dot/README.md +9 -7
  830. package/src/components/status-dot/index.ts +6 -1
  831. package/src/components/status-dot/status-dot.css +45 -1
  832. package/src/components/status-dot/status-dot.examples.json +1 -1
  833. package/src/components/status-dot/status-dot.svelte +57 -8
  834. package/src/components/status-dot/status-dot.types.ts +17 -6
  835. package/src/components/steps/steps.css +3 -3
  836. package/src/components/table/table.css +10 -0
  837. package/src/components/table/table.examples.json +1 -1
  838. package/src/components/table/table.svelte +2 -2
  839. package/src/components/table/table.types.ts +3 -3
  840. package/src/components/table-header/README.md +2 -2
  841. package/src/components/table-header/table-header.svelte +5 -5
  842. package/src/components/table-header/table-header.types.ts +2 -2
  843. package/src/components/table-header-cell/table-header-cell.svelte +13 -2
  844. package/src/components/table-row/README.md +2 -2
  845. package/src/components/table-row/table-row.svelte +6 -6
  846. package/src/components/table-row/table-row.types.ts +6 -6
  847. package/src/components/tabs/README.md +1 -0
  848. package/src/components/tabs/tabs.svelte +11 -3
  849. package/src/components/tabs/tabs.types.ts +2 -0
  850. package/src/components/textarea/textarea.css +16 -1
  851. package/src/components/textarea/textarea.svelte +6 -1
  852. package/src/components/time-field/README.md +60 -0
  853. package/src/components/time-field/index.ts +6 -0
  854. package/src/components/time-field/time-field.css +60 -0
  855. package/src/components/time-field/time-field.examples.json +13 -0
  856. package/src/components/time-field/time-field.svelte +277 -0
  857. package/src/components/time-field/time-field.types.ts +70 -0
  858. package/src/components/toggle/README.md +12 -11
  859. package/src/components/toggle/toggle.svelte +19 -6
  860. package/src/components/toggle/toggle.types.ts +2 -0
  861. package/src/components/transfer-list/README.md +1 -1
  862. package/src/components/transfer-list/transfer-list.css +22 -0
  863. package/src/components/transfer-list/transfer-list.svelte +44 -10
  864. package/src/components/transfer-list/transfer-list.types.ts +5 -2
  865. package/src/components/tree/README.md +2 -2
  866. package/src/components/tree/tree.css +69 -0
  867. package/src/components/tree/tree.examples.json +1 -1
  868. package/src/components/tree/tree.svelte +52 -9
  869. package/src/components/tree/tree.types.ts +2 -2
  870. package/src/components/tree-item/README.md +4 -4
  871. package/src/components/tree-item/tree-item.svelte +42 -12
  872. package/src/components/tree-item/tree-item.types.ts +4 -4
  873. package/src/components/virtual-list/virtual-list.svelte +5 -5
  874. package/src/components/waveform/waveform.svelte +7 -19
  875. package/src/index.ts +40 -16
  876. package/src/styles/components/_field-label.css +20 -0
  877. package/src/styles/components/_input-frame.css +2 -1
  878. package/src/styles/components.css +3 -2
  879. package/src/styles/index.css +1 -0
  880. package/src/styles/tokens-base.css +3 -0
  881. package/src/utilities/attachments.ts +15 -12
  882. package/src/utilities/value-change.ts +11 -0
  883. package/dist/components/connection-indicator/connection-indicator.css +0 -63
  884. package/dist/components/connection-indicator/connection-indicator.svelte.d.ts +0 -18
  885. package/dist/components/connection-indicator/connection-indicator.types.d.ts +0 -14
  886. package/dist/components/connection-indicator/index.d.ts +0 -5
  887. package/dist/components/connection-indicator/index.js +0 -75
  888. package/dist/components/experimental/connection-indicator/index.d.ts +0 -2
  889. package/dist/components/review-editor/review-editor-types.d.ts +0 -77
  890. package/dist/components/subscription-badge/index.d.ts +0 -5
  891. package/dist/components/subscription-badge/index.js +0 -353
  892. package/dist/components/subscription-badge/subscription-badge.css +0 -18
  893. package/dist/components/subscription-badge/subscription-badge.schema.js +0 -47
  894. package/dist/components/subscription-badge/subscription-badge.svelte.d.ts +0 -19
  895. package/dist/components/subscription-badge/subscription-badge.types.d.ts +0 -28
  896. package/dist/server/components/connection-indicator/connection-indicator.schema.js +0 -31
  897. package/dist/server/components/connection-indicator/connection-indicator.variables.js +0 -12
  898. package/dist/server/components/connection-indicator/index.css +0 -60
  899. package/dist/server/components/connection-indicator/index.js +0 -42
  900. package/dist/server/components/experimental/connection-indicator/index.js +0 -23
  901. package/dist/server/components/subscription-badge/index.css +0 -2
  902. package/dist/server/components/subscription-badge/index.js +0 -308
  903. package/dist/server/components/subscription-badge/subscription-badge.schema.js +0 -28
  904. package/dist/server/components/subscription-badge/subscription-badge.variables.js +0 -12
  905. package/src/components/connection-indicator/README.md +0 -41
  906. package/src/components/connection-indicator/connection-indicator.css +0 -63
  907. package/src/components/connection-indicator/connection-indicator.svelte +0 -44
  908. package/src/components/connection-indicator/connection-indicator.types.ts +0 -18
  909. package/src/components/connection-indicator/index.ts +0 -6
  910. package/src/components/experimental/connection-indicator/index.ts +0 -20
  911. package/src/components/review-editor/review-editor-types.ts +0 -92
  912. package/src/components/subscription-badge/README.md +0 -50
  913. package/src/components/subscription-badge/index.ts +0 -6
  914. package/src/components/subscription-badge/subscription-badge.css +0 -18
  915. package/src/components/subscription-badge/subscription-badge.examples.json +0 -19
  916. package/src/components/subscription-badge/subscription-badge.svelte +0 -69
  917. package/src/components/subscription-badge/subscription-badge.types.ts +0 -37
  918. /package/dist/components/{connection-indicator/connection-indicator.schema.d.ts → approval-card/approval-card.schema.d.ts} +0 -0
  919. /package/dist/components/{connection-indicator/connection-indicator.variables.d.ts → approval-card/approval-card.variables.d.ts} +0 -0
  920. /package/dist/components/{subscription-badge/subscription-badge.schema.d.ts → locale-provider/locale-provider.schema.d.ts} +0 -0
  921. /package/dist/components/{subscription-badge/subscription-badge.variables.d.ts → locale-provider/locale-provider.variables.d.ts} +0 -0
@@ -211,7 +211,7 @@ function computeCoordsFromPlacement(_ref, placement, rtl) {
211
211
  }
212
212
  return coords;
213
213
  }
214
- async function detectOverflow(state10, options) {
214
+ async function detectOverflow(state11, options) {
215
215
  var _await$platform$isEle;
216
216
  if (options === undefined) {
217
217
  options = {};
@@ -223,14 +223,14 @@ async function detectOverflow(state10, options) {
223
223
  rects,
224
224
  elements,
225
225
  strategy
226
- } = state10;
226
+ } = state11;
227
227
  const {
228
228
  boundary = "clippingAncestors",
229
229
  rootBoundary = "viewport",
230
230
  elementContext = "floating",
231
231
  altBoundary = false,
232
232
  padding = 0
233
- } = evaluate(options, state10);
233
+ } = evaluate(options, state11);
234
234
  const paddingObject = getPaddingObject(padding);
235
235
  const altContext = elementContext === "floating" ? "reference" : "floating";
236
236
  const element3 = elements[altBoundary ? altContext : elementContext];
@@ -314,19 +314,19 @@ function getRectsByLine(rects) {
314
314
  }
315
315
  return groups.map((rect) => rectToClientRect(getBoundingRect(rect)));
316
316
  }
317
- async function convertValueToCoords(state10, options) {
317
+ async function convertValueToCoords(state11, options) {
318
318
  const {
319
319
  placement,
320
320
  platform,
321
321
  elements
322
- } = state10;
322
+ } = state11;
323
323
  const rtl = await (platform.isRTL == null ? undefined : platform.isRTL(elements.floating));
324
324
  const side = getSide(placement);
325
325
  const alignment = getAlignment(placement);
326
326
  const isVertical = getSideAxis(placement) === "y";
327
327
  const mainAxisMulti = originSides.has(side) ? -1 : 1;
328
328
  const crossAxisMulti = rtl && isVertical ? -1 : 1;
329
- const rawValue = evaluate(options, state10);
329
+ const rawValue = evaluate(options, state11);
330
330
  let {
331
331
  mainAxis,
332
332
  crossAxis,
@@ -440,7 +440,7 @@ var MAX_RESET_COUNT = 50, computePosition = async (reference, floating, config)
440
440
  }, arrow = (options) => ({
441
441
  name: "arrow",
442
442
  options,
443
- async fn(state10) {
443
+ async fn(state11) {
444
444
  const {
445
445
  x,
446
446
  y,
@@ -449,11 +449,11 @@ var MAX_RESET_COUNT = 50, computePosition = async (reference, floating, config)
449
449
  platform,
450
450
  elements,
451
451
  middlewareData
452
- } = state10;
452
+ } = state11;
453
453
  const {
454
454
  element: element3,
455
455
  padding = 0
456
- } = evaluate(options, state10) || {};
456
+ } = evaluate(options, state11) || {};
457
457
  if (element3 == null) {
458
458
  return {};
459
459
  }
@@ -505,7 +505,7 @@ var MAX_RESET_COUNT = 50, computePosition = async (reference, floating, config)
505
505
  return {
506
506
  name: "autoPlacement",
507
507
  options,
508
- async fn(state10) {
508
+ async fn(state11) {
509
509
  var _middlewareData$autoP, _middlewareData$autoP2, _placementsThatFitOnE;
510
510
  const {
511
511
  rects,
@@ -513,16 +513,16 @@ var MAX_RESET_COUNT = 50, computePosition = async (reference, floating, config)
513
513
  placement,
514
514
  platform,
515
515
  elements
516
- } = state10;
516
+ } = state11;
517
517
  const {
518
518
  crossAxis = false,
519
519
  alignment,
520
520
  allowedPlacements = placements,
521
521
  autoAlignment = true,
522
522
  ...detectOverflowOptions
523
- } = evaluate(options, state10);
523
+ } = evaluate(options, state11);
524
524
  const placements$1 = alignment !== undefined || allowedPlacements === placements ? getPlacementList(alignment || null, autoAlignment, allowedPlacements) : allowedPlacements;
525
- const overflow = await platform.detectOverflow(state10, detectOverflowOptions);
525
+ const overflow = await platform.detectOverflow(state11, detectOverflowOptions);
526
526
  const currentIndex = ((_middlewareData$autoP = middlewareData.autoPlacement) == null ? undefined : _middlewareData$autoP.index) || 0;
527
527
  const currentPlacement = placements$1[currentIndex];
528
528
  if (currentPlacement == null) {
@@ -580,7 +580,7 @@ var MAX_RESET_COUNT = 50, computePosition = async (reference, floating, config)
580
580
  return {
581
581
  name: "flip",
582
582
  options,
583
- async fn(state10) {
583
+ async fn(state11) {
584
584
  var _middlewareData$arrow, _middlewareData$flip;
585
585
  const {
586
586
  placement,
@@ -589,7 +589,7 @@ var MAX_RESET_COUNT = 50, computePosition = async (reference, floating, config)
589
589
  initialPlacement,
590
590
  platform,
591
591
  elements
592
- } = state10;
592
+ } = state11;
593
593
  const {
594
594
  mainAxis: checkMainAxis = true,
595
595
  crossAxis: checkCrossAxis = true,
@@ -598,7 +598,7 @@ var MAX_RESET_COUNT = 50, computePosition = async (reference, floating, config)
598
598
  fallbackAxisSideDirection = "none",
599
599
  flipAlignment = true,
600
600
  ...detectOverflowOptions
601
- } = evaluate(options, state10);
601
+ } = evaluate(options, state11);
602
602
  if ((_middlewareData$arrow = middlewareData.arrow) != null && _middlewareData$arrow.alignmentOffset) {
603
603
  return {};
604
604
  }
@@ -612,7 +612,7 @@ var MAX_RESET_COUNT = 50, computePosition = async (reference, floating, config)
612
612
  fallbackPlacements.push(...getOppositeAxisPlacements(initialPlacement, flipAlignment, fallbackAxisSideDirection, rtl));
613
613
  }
614
614
  const placements2 = [initialPlacement, ...fallbackPlacements];
615
- const overflow = await platform.detectOverflow(state10, detectOverflowOptions);
615
+ const overflow = await platform.detectOverflow(state11, detectOverflowOptions);
616
616
  const overflows = [];
617
617
  let overflowsData = ((_middlewareData$flip = middlewareData.flip) == null ? undefined : _middlewareData$flip.overflows) || [];
618
618
  if (checkMainAxis) {
@@ -684,18 +684,18 @@ var MAX_RESET_COUNT = 50, computePosition = async (reference, floating, config)
684
684
  return {
685
685
  name: "hide",
686
686
  options,
687
- async fn(state10) {
687
+ async fn(state11) {
688
688
  const {
689
689
  rects,
690
690
  platform
691
- } = state10;
691
+ } = state11;
692
692
  const {
693
693
  strategy = "referenceHidden",
694
694
  ...detectOverflowOptions
695
- } = evaluate(options, state10);
695
+ } = evaluate(options, state11);
696
696
  switch (strategy) {
697
697
  case "referenceHidden": {
698
- const overflow = await platform.detectOverflow(state10, {
698
+ const overflow = await platform.detectOverflow(state11, {
699
699
  ...detectOverflowOptions,
700
700
  elementContext: "reference"
701
701
  });
@@ -708,7 +708,7 @@ var MAX_RESET_COUNT = 50, computePosition = async (reference, floating, config)
708
708
  };
709
709
  }
710
710
  case "escaped": {
711
- const overflow = await platform.detectOverflow(state10, {
711
+ const overflow = await platform.detectOverflow(state11, {
712
712
  ...detectOverflowOptions,
713
713
  altBoundary: true
714
714
  });
@@ -733,19 +733,19 @@ var MAX_RESET_COUNT = 50, computePosition = async (reference, floating, config)
733
733
  return {
734
734
  name: "inline",
735
735
  options,
736
- async fn(state10) {
736
+ async fn(state11) {
737
737
  const {
738
738
  placement,
739
739
  elements,
740
740
  rects,
741
741
  platform,
742
742
  strategy
743
- } = state10;
743
+ } = state11;
744
744
  const {
745
745
  padding = 2,
746
746
  x,
747
747
  y
748
- } = evaluate(options, state10);
748
+ } = evaluate(options, state11);
749
749
  const nativeClientRects = Array.from(await (platform.getClientRects == null ? undefined : platform.getClientRects(elements.reference)) || []);
750
750
  const clientRects = getRectsByLine(nativeClientRects);
751
751
  const fallback = rectToClientRect(getBoundingRect(nativeClientRects));
@@ -823,15 +823,15 @@ var MAX_RESET_COUNT = 50, computePosition = async (reference, floating, config)
823
823
  return {
824
824
  name: "offset",
825
825
  options,
826
- async fn(state10) {
826
+ async fn(state11) {
827
827
  var _middlewareData$offse, _middlewareData$arrow;
828
828
  const {
829
829
  x,
830
830
  y,
831
831
  placement,
832
832
  middlewareData
833
- } = state10;
834
- const diffCoords = await convertValueToCoords(state10, options);
833
+ } = state11;
834
+ const diffCoords = await convertValueToCoords(state11, options);
835
835
  if (placement === ((_middlewareData$offse = middlewareData.offset) == null ? undefined : _middlewareData$offse.placement) && (_middlewareData$arrow = middlewareData.arrow) != null && _middlewareData$arrow.alignmentOffset) {
836
836
  return {};
837
837
  }
@@ -852,13 +852,13 @@ var MAX_RESET_COUNT = 50, computePosition = async (reference, floating, config)
852
852
  return {
853
853
  name: "shift",
854
854
  options,
855
- async fn(state10) {
855
+ async fn(state11) {
856
856
  const {
857
857
  x,
858
858
  y,
859
859
  placement,
860
860
  platform
861
- } = state10;
861
+ } = state11;
862
862
  const {
863
863
  mainAxis: checkMainAxis = true,
864
864
  crossAxis: checkCrossAxis = false,
@@ -875,12 +875,12 @@ var MAX_RESET_COUNT = 50, computePosition = async (reference, floating, config)
875
875
  }
876
876
  },
877
877
  ...detectOverflowOptions
878
- } = evaluate(options, state10);
878
+ } = evaluate(options, state11);
879
879
  const coords = {
880
880
  x,
881
881
  y
882
882
  };
883
- const overflow = await platform.detectOverflow(state10, detectOverflowOptions);
883
+ const overflow = await platform.detectOverflow(state11, detectOverflowOptions);
884
884
  const crossAxis = getSideAxis(getSide(placement));
885
885
  const mainAxis = getOppositeAxis(crossAxis);
886
886
  let mainAxisCoord = coords[mainAxis];
@@ -900,7 +900,7 @@ var MAX_RESET_COUNT = 50, computePosition = async (reference, floating, config)
900
900
  crossAxisCoord = clamp(min2, crossAxisCoord, max2);
901
901
  }
902
902
  const limitedCoords = limiter.fn({
903
- ...state10,
903
+ ...state11,
904
904
  [mainAxis]: mainAxisCoord,
905
905
  [crossAxis]: crossAxisCoord
906
906
  });
@@ -923,19 +923,19 @@ var MAX_RESET_COUNT = 50, computePosition = async (reference, floating, config)
923
923
  }
924
924
  return {
925
925
  options,
926
- fn(state10) {
926
+ fn(state11) {
927
927
  const {
928
928
  x,
929
929
  y,
930
930
  placement,
931
931
  rects,
932
932
  middlewareData
933
- } = state10;
933
+ } = state11;
934
934
  const {
935
935
  offset: offset2 = 0,
936
936
  mainAxis: checkMainAxis = true,
937
937
  crossAxis: checkCrossAxis = true
938
- } = evaluate(options, state10);
938
+ } = evaluate(options, state11);
939
939
  const coords = {
940
940
  x,
941
941
  y
@@ -944,7 +944,7 @@ var MAX_RESET_COUNT = 50, computePosition = async (reference, floating, config)
944
944
  const mainAxis = getOppositeAxis(crossAxis);
945
945
  let mainAxisCoord = coords[mainAxis];
946
946
  let crossAxisCoord = coords[crossAxis];
947
- const rawOffset = evaluate(offset2, state10);
947
+ const rawOffset = evaluate(offset2, state11);
948
948
  const computedOffset = typeof rawOffset === "number" ? {
949
949
  mainAxis: rawOffset,
950
950
  crossAxis: 0
@@ -988,19 +988,19 @@ var MAX_RESET_COUNT = 50, computePosition = async (reference, floating, config)
988
988
  return {
989
989
  name: "size",
990
990
  options,
991
- async fn(state10) {
991
+ async fn(state11) {
992
992
  var _state$middlewareData, _state$middlewareData2;
993
993
  const {
994
994
  placement,
995
995
  rects,
996
996
  platform,
997
997
  elements
998
- } = state10;
998
+ } = state11;
999
999
  const {
1000
1000
  apply = () => {},
1001
1001
  ...detectOverflowOptions
1002
- } = evaluate(options, state10);
1003
- const overflow = await platform.detectOverflow(state10, detectOverflowOptions);
1002
+ } = evaluate(options, state11);
1003
+ const overflow = await platform.detectOverflow(state11, detectOverflowOptions);
1004
1004
  const side = getSide(placement);
1005
1005
  const alignment = getAlignment(placement);
1006
1006
  const isYAxis = getSideAxis(placement) === "y";
@@ -1021,13 +1021,13 @@ var MAX_RESET_COUNT = 50, computePosition = async (reference, floating, config)
1021
1021
  const maximumClippingWidth = width - overflow.left - overflow.right;
1022
1022
  const overflowAvailableHeight = min(height - overflow[heightSide], maximumClippingHeight);
1023
1023
  const overflowAvailableWidth = min(width - overflow[widthSide], maximumClippingWidth);
1024
- const noShift = !state10.middlewareData.shift;
1024
+ const noShift = !state11.middlewareData.shift;
1025
1025
  let availableHeight = overflowAvailableHeight;
1026
1026
  let availableWidth = overflowAvailableWidth;
1027
- if ((_state$middlewareData = state10.middlewareData.shift) != null && _state$middlewareData.enabled.x) {
1027
+ if ((_state$middlewareData = state11.middlewareData.shift) != null && _state$middlewareData.enabled.x) {
1028
1028
  availableWidth = maximumClippingWidth;
1029
1029
  }
1030
- if ((_state$middlewareData2 = state10.middlewareData.shift) != null && _state$middlewareData2.enabled.y) {
1030
+ if ((_state$middlewareData2 = state11.middlewareData.shift) != null && _state$middlewareData2.enabled.y) {
1031
1031
  availableHeight = maximumClippingHeight;
1032
1032
  }
1033
1033
  if (noShift && !alignment) {
@@ -1042,7 +1042,7 @@ var MAX_RESET_COUNT = 50, computePosition = async (reference, floating, config)
1042
1042
  }
1043
1043
  }
1044
1044
  await apply({
1045
- ...state10,
1045
+ ...state11,
1046
1046
  availableWidth,
1047
1047
  availableHeight
1048
1048
  });
@@ -1902,7 +1902,8 @@ function copyInheritedPortalAttributes(element, source, inheritAttributes, fallb
1902
1902
  dir: element.getAttribute("dir"),
1903
1903
  theme: element.getAttribute("data-cinder-theme")
1904
1904
  }) {
1905
- const inheritedDir = inheritAttributes && source ? source.closest("[dir]")?.getAttribute("dir") : null;
1905
+ const preservesExplicitDirection = element.dataset["cinderExplicitDirection"] === "true";
1906
+ const inheritedDir = inheritAttributes && source && !preservesExplicitDirection ? source.closest("[dir]")?.getAttribute("dir") : null;
1906
1907
  const nextDir = inheritedDir ?? fallbackAttributes.dir;
1907
1908
  if (nextDir) {
1908
1909
  element.setAttribute("dir", nextDir);
@@ -2116,9 +2117,46 @@ function useAnnouncer(options) {
2116
2117
  // src/components/badge/badge.svelte
2117
2118
  import"svelte/internal/disclose-version";
2118
2119
  import * as $4 from "svelte/internal/client";
2120
+ var root_3 = $4.from_svg(`<path></path>`);
2121
+ var root_2 = $4.from_svg(`<svg class="icon-sm" aria-hidden="true" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></svg>`);
2122
+ var root_1 = $4.from_html(`<!> <!>`, 1);
2119
2123
  var root2 = $4.from_html(`<span><!></span>`);
2120
2124
  function Badge($$anchor, $$props) {
2121
2125
  $4.push($$props, true);
2126
+ const subscriptionStateConfigurations = {
2127
+ active: { variant: "success", label: "Active" },
2128
+ trialing: { variant: "info", label: "Trialing" },
2129
+ "past-due": { variant: "warning", label: "Past due" },
2130
+ canceled: { variant: "neutral", label: "Canceled" },
2131
+ expired: { variant: "danger", label: "Expired" },
2132
+ refunded: { variant: "neutral", label: "Refunded" }
2133
+ };
2134
+ const subscriptionStateIconPaths = {
2135
+ active: ["M21.801 10A10 10 0 1 1 17 3.335", "m9 11 3 3L22 4"],
2136
+ trialing: ["M12 6v6l4 2", "M21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0Z"],
2137
+ "past-due": [
2138
+ "m21.73 18-8-14a2 2 0 0 0-3.46 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3Z",
2139
+ "M12 9v4",
2140
+ "M12 17h.01"
2141
+ ],
2142
+ canceled: [
2143
+ "M15 9 9 15",
2144
+ "M9 9l6 6",
2145
+ "M22 12A10 10 0 1 1 12 2a10 10 0 0 1 10 10Z"
2146
+ ],
2147
+ expired: [
2148
+ "M8 2v4",
2149
+ "M16 2v4",
2150
+ "M21 13V6a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h8",
2151
+ "M3 10h18",
2152
+ "m17 14-5-5",
2153
+ "m12 14 5 5"
2154
+ ],
2155
+ refunded: [
2156
+ "M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8",
2157
+ "M3 3v5h5"
2158
+ ]
2159
+ };
2122
2160
  let variant = $4.prop($$props, "variant", 3, "neutral"), size = $4.prop($$props, "size", 3, "md"), mono = $4.prop($$props, "mono", 3, false), rest = $4.rest_props($$props, [
2123
2161
  "$$slots",
2124
2162
  "$$events",
@@ -2126,19 +2164,78 @@ function Badge($$anchor, $$props) {
2126
2164
  "variant",
2127
2165
  "size",
2128
2166
  "mono",
2167
+ "subscriptionState",
2129
2168
  "class",
2130
2169
  "children"
2131
2170
  ]);
2171
+ const subscriptionStateConfiguration = $4.derived(() => $$props.subscriptionState === undefined ? undefined : subscriptionStateConfigurations[$$props.subscriptionState]);
2172
+ const resolvedVariant = $4.derived(() => $4.get(subscriptionStateConfiguration)?.variant ?? variant());
2173
+ const resolvedSubscriptionIconPaths = $4.derived(() => $$props.subscriptionState === undefined ? undefined : subscriptionStateIconPaths[$$props.subscriptionState]);
2132
2174
  var span = root2();
2133
2175
  $4.attribute_effect(span, ($0) => ({
2134
2176
  class: $0,
2135
- "data-cinder-variant": variant(),
2177
+ "data-cinder-variant": $4.get(resolvedVariant),
2136
2178
  "data-cinder-size": size(),
2137
2179
  "data-cinder-mono": mono() ? "" : undefined,
2180
+ "data-cinder-subscription-state": $$props.subscriptionState,
2138
2181
  ...rest
2139
2182
  }), [() => classNames("cinder-badge", $$props.class)]);
2140
2183
  var node = $4.child(span);
2141
- $4.snippet(node, () => $$props.children ?? $4.noop);
2184
+ {
2185
+ var consequent_2 = ($$anchor2) => {
2186
+ var fragment = root_1();
2187
+ var node_1 = $4.first_child(fragment);
2188
+ {
2189
+ var consequent = ($$anchor3) => {
2190
+ var svg = root_2();
2191
+ $4.each(svg, 20, () => $4.get(resolvedSubscriptionIconPaths), (iconPath) => iconPath, ($$anchor4, iconPath) => {
2192
+ var path = root_3();
2193
+ $4.template_effect(() => $4.set_attribute(path, "d", iconPath));
2194
+ $4.append($$anchor4, path);
2195
+ });
2196
+ $4.reset(svg);
2197
+ $4.append($$anchor3, svg);
2198
+ };
2199
+ $4.if(node_1, ($$render) => {
2200
+ if ($4.get(resolvedSubscriptionIconPaths))
2201
+ $$render(consequent);
2202
+ });
2203
+ }
2204
+ var node_2 = $4.sibling(node_1, 2);
2205
+ {
2206
+ var consequent_1 = ($$anchor3) => {
2207
+ var fragment_1 = $4.comment();
2208
+ var node_3 = $4.first_child(fragment_1);
2209
+ $4.snippet(node_3, () => $$props.children);
2210
+ $4.append($$anchor3, fragment_1);
2211
+ };
2212
+ var alternate = ($$anchor3) => {
2213
+ var text2 = $4.text();
2214
+ $4.template_effect(() => $4.set_text(text2, $4.get(subscriptionStateConfiguration).label));
2215
+ $4.append($$anchor3, text2);
2216
+ };
2217
+ $4.if(node_2, ($$render) => {
2218
+ if ($$props.children)
2219
+ $$render(consequent_1);
2220
+ else
2221
+ $$render(alternate, -1);
2222
+ });
2223
+ }
2224
+ $4.append($$anchor2, fragment);
2225
+ };
2226
+ var alternate_1 = ($$anchor2) => {
2227
+ var fragment_3 = $4.comment();
2228
+ var node_4 = $4.first_child(fragment_3);
2229
+ $4.snippet(node_4, () => $$props.children ?? $4.noop);
2230
+ $4.append($$anchor2, fragment_3);
2231
+ };
2232
+ $4.if(node, ($$render) => {
2233
+ if ($4.get(subscriptionStateConfiguration))
2234
+ $$render(consequent_2);
2235
+ else
2236
+ $$render(alternate_1, -1);
2237
+ });
2238
+ }
2142
2239
  $4.reset(span);
2143
2240
  $4.append($$anchor, span);
2144
2241
  $4.pop();
@@ -2192,7 +2289,7 @@ var [getTabsContextStrict, setTabsContext] = createContext();
2192
2289
  var getTabsContext = getTabsContextStrict;
2193
2290
 
2194
2291
  // src/components/tab/tab.svelte
2195
- var root_1 = $5.from_html(`<span class="cinder-tab__trailing" aria-hidden="true"><!></span>`);
2292
+ var root_12 = $5.from_html(`<span class="cinder-tab__trailing" aria-hidden="true"><!></span>`);
2196
2293
  var root3 = $5.from_html(`<button type="button" role="tab"><!> <!></button>`);
2197
2294
  function Tab($$anchor, $$props) {
2198
2295
  $5.push($$props, true);
@@ -2235,7 +2332,7 @@ function Tab($$anchor, $$props) {
2235
2332
  var node_1 = $5.sibling(node, 2);
2236
2333
  {
2237
2334
  var consequent = ($$anchor2) => {
2238
- var span = root_1();
2335
+ var span = root_12();
2239
2336
  var node_2 = $5.child(span);
2240
2337
  $5.snippet(node_2, () => $$props.trailing);
2241
2338
  $5.reset(span);
@@ -2297,7 +2394,7 @@ function Tab_list($$anchor, $$props) {
2297
2394
  // src/components/tab-panel/tab-panel.svelte
2298
2395
  import"svelte/internal/disclose-version";
2299
2396
  import * as $7 from "svelte/internal/client";
2300
- var root_12 = $7.from_html(`<div role="tabpanel" tabindex="0"><!></div>`);
2397
+ var root_13 = $7.from_html(`<div role="tabpanel" tabindex="0"><!></div>`);
2301
2398
  function Tab_panel($$anchor, $$props) {
2302
2399
  $7.push($$props, true);
2303
2400
  const tabs = getTabsContext();
@@ -2308,7 +2405,7 @@ function Tab_panel($$anchor, $$props) {
2308
2405
  var node = $7.first_child(fragment);
2309
2406
  {
2310
2407
  var consequent = ($$anchor2) => {
2311
- var div = root_12();
2408
+ var div = root_13();
2312
2409
  var node_1 = $7.child(div);
2313
2410
  $7.snippet(node_1, () => $$props.children);
2314
2411
  $7.reset(div);
@@ -2403,6 +2500,13 @@ function getFocusableIndex(selectedIndex, length, isDisabled) {
2403
2500
  return findFirstIndex(length, isDisabled, 0);
2404
2501
  }
2405
2502
 
2503
+ // src/utilities/value-change.ts
2504
+ function commitValue(proposed, onValueChange, setValue) {
2505
+ const committed = onValueChange?.(proposed) ?? proposed;
2506
+ setValue(committed);
2507
+ return committed;
2508
+ }
2509
+
2406
2510
  // src/components/tabs/tabs.svelte
2407
2511
  var root5 = $8.from_html(`<div><!></div>`);
2408
2512
  function Tabs($$anchor, $$props) {
@@ -2475,7 +2579,9 @@ function Tabs($$anchor, $$props) {
2475
2579
  if (focusedValue === undefined)
2476
2580
  return;
2477
2581
  event.preventDefault();
2478
- value(focusedValue);
2582
+ commitValue(focusedValue, $$props.onValueChange, (next) => {
2583
+ value(next);
2584
+ });
2479
2585
  return;
2480
2586
  }
2481
2587
  const isHorizontal = orientation() === "horizontal";
@@ -2503,7 +2609,9 @@ function Tabs($$anchor, $$props) {
2503
2609
  return;
2504
2610
  focusValue(nextValue);
2505
2611
  if ($8.get(effectiveActivateOnFocus)) {
2506
- value(nextValue);
2612
+ commitValue(nextValue, $$props.onValueChange, (next) => {
2613
+ value(next);
2614
+ });
2507
2615
  }
2508
2616
  }
2509
2617
  setTabsContext({
@@ -2520,7 +2628,9 @@ function Tabs($$anchor, $$props) {
2520
2628
  return baseId;
2521
2629
  },
2522
2630
  select(next) {
2523
- value(next);
2631
+ commitValue(next, $$props.onValueChange, (nextValue) => {
2632
+ value(nextValue);
2633
+ });
2524
2634
  },
2525
2635
  isActive(candidate) {
2526
2636
  return value() === candidate;
@@ -2583,9 +2693,9 @@ import * as $31 from "svelte/internal/client";
2583
2693
  import"svelte/internal/disclose-version";
2584
2694
  import * as $9 from "svelte/internal/client";
2585
2695
  import { tick } from "svelte";
2586
- var root_2 = $9.from_html(`<div class="cinder-alert__icon" aria-hidden="true"><!></div>`);
2587
- var root_3 = $9.from_html(`<button type="button" class="cinder-_dismiss-button cinder-alert__dismiss" aria-label="Dismiss alert"><svg class="cinder-alert__dismiss-icon" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" fill="currentColor" aria-hidden="true"><path d="M6.28 5.22a.75.75 0 00-1.06 1.06L8.94 10l-3.72 3.72a.75.75 0 101.06 1.06L10 11.06l3.72 3.72a.75.75 0 101.06-1.06L11.06 10l3.72-3.72a.75.75 0 00-1.06-1.06L10 8.94 6.28 5.22z"></path></svg></button>`);
2588
- var root_13 = $9.from_html(`<div><!> <div class="cinder-alert__content"><!></div> <!></div>`);
2696
+ var root_22 = $9.from_html(`<div class="cinder-alert__icon" aria-hidden="true"><!></div>`);
2697
+ var root_32 = $9.from_html(`<button type="button" class="cinder-_dismiss-button cinder-alert__dismiss" aria-label="Dismiss alert"><svg class="cinder-alert__dismiss-icon" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" fill="currentColor" aria-hidden="true"><path d="M6.28 5.22a.75.75 0 00-1.06 1.06L8.94 10l-3.72 3.72a.75.75 0 101.06 1.06L10 11.06l3.72 3.72a.75.75 0 101.06-1.06L11.06 10l3.72-3.72a.75.75 0 00-1.06-1.06L10 8.94 6.28 5.22z"></path></svg></button>`);
2698
+ var root_14 = $9.from_html(`<div><!> <div class="cinder-alert__content"><!></div> <!></div>`);
2589
2699
  function Alert($$anchor, $$props) {
2590
2700
  $9.push($$props, true);
2591
2701
  const FOCUSABLE_SELECTOR = 'button:not([disabled]), a[href], input:not([disabled]), select:not([disabled]), textarea:not([disabled]), [tabindex]:not([tabindex="-1"])';
@@ -2595,12 +2705,12 @@ function Alert($$anchor, $$props) {
2595
2705
  "$$legacy",
2596
2706
  "variant",
2597
2707
  "dismissible",
2598
- "onDismiss",
2708
+ "ondismiss",
2599
2709
  "class",
2600
2710
  "children",
2601
2711
  "icon"
2602
2712
  ]);
2603
- const resolvedVariant = $9.derived(() => variant() === "danger" ? "error" : variant());
2713
+ const resolvedVariant = $9.derived(variant);
2604
2714
  let visible = $9.state(true);
2605
2715
  let rootElement = $9.state(undefined);
2606
2716
  async function handleDismiss() {
@@ -2611,7 +2721,7 @@ function Alert($$anchor, $$props) {
2611
2721
  await tick();
2612
2722
  if (focusTarget?.isConnected)
2613
2723
  focusTarget.focus();
2614
- $$props.onDismiss?.();
2724
+ $$props.ondismiss?.();
2615
2725
  }
2616
2726
  function resolveFocusTarget(alertElement) {
2617
2727
  const alertDocument = alertElement.ownerDocument;
@@ -2648,7 +2758,7 @@ function Alert($$anchor, $$props) {
2648
2758
  var node = $9.first_child(fragment);
2649
2759
  {
2650
2760
  var consequent_2 = ($$anchor2) => {
2651
- var div = root_13();
2761
+ var div = root_14();
2652
2762
  $9.attribute_effect(div, ($0) => ({
2653
2763
  ...$9.get(restWithoutForbidden),
2654
2764
  class: $0,
@@ -2660,7 +2770,7 @@ function Alert($$anchor, $$props) {
2660
2770
  var node_1 = $9.child(div);
2661
2771
  {
2662
2772
  var consequent = ($$anchor3) => {
2663
- var div_1 = root_2();
2773
+ var div_1 = root_22();
2664
2774
  var node_2 = $9.child(div_1);
2665
2775
  $9.snippet(node_2, () => $$props.icon);
2666
2776
  $9.reset(div_1);
@@ -2678,7 +2788,7 @@ function Alert($$anchor, $$props) {
2678
2788
  var node_4 = $9.sibling(div_2, 2);
2679
2789
  {
2680
2790
  var consequent_1 = ($$anchor3) => {
2681
- var button = root_3();
2791
+ var button = root_32();
2682
2792
  $9.delegated("click", button, handleDismiss);
2683
2793
  $9.append($$anchor3, button);
2684
2794
  };
@@ -2704,22 +2814,22 @@ $9.delegate(["click"]);
2704
2814
  // src/components/button/button.svelte
2705
2815
  import"svelte/internal/disclose-version";
2706
2816
  import * as $10 from "svelte/internal/client";
2707
- var root_22 = $10.from_html(`<span class="cinder-button__icon" aria-hidden="true"><!></span>`);
2817
+ var root_23 = $10.from_html(`<span class="cinder-button__icon" aria-hidden="true"><!></span>`);
2708
2818
  var root_4 = $10.from_html(`<span class="cinder-sr-only"> </span>`);
2709
2819
  var root_5 = $10.from_html(`<span class="cinder-button__icon" aria-hidden="true"><!></span>`);
2710
- var root_32 = $10.from_html(`<!> <!>`, 1);
2820
+ var root_33 = $10.from_html(`<!> <!>`, 1);
2711
2821
  var root_8 = $10.from_html(`<span class="cinder-button__icon" aria-hidden="true"><!></span>`);
2712
- var root_14 = $10.from_html(`<!> <!> <!>`, 1);
2822
+ var root_15 = $10.from_html(`<!> <!> <!>`, 1);
2713
2823
  var root_9 = $10.from_html(`<a><!></a>`);
2714
2824
  var root_10 = $10.from_html(`<button><!></button>`);
2715
2825
  function Button($$anchor, $$props) {
2716
2826
  $10.push($$props, true);
2717
2827
  const buttonContent = ($$anchor2) => {
2718
- var fragment = root_14();
2828
+ var fragment = root_15();
2719
2829
  var node = $10.first_child(fragment);
2720
2830
  {
2721
2831
  var consequent = ($$anchor3) => {
2722
- var span = root_22();
2832
+ var span = root_23();
2723
2833
  var node_1 = $10.child(span);
2724
2834
  $10.snippet(node_1, () => $$props.leadingIcon);
2725
2835
  $10.reset(span);
@@ -2733,14 +2843,14 @@ function Button($$anchor, $$props) {
2733
2843
  var node_2 = $10.sibling(node, 2);
2734
2844
  {
2735
2845
  var consequent_3 = ($$anchor3) => {
2736
- var fragment_1 = root_32();
2846
+ var fragment_1 = root_33();
2737
2847
  var node_3 = $10.first_child(fragment_1);
2738
2848
  {
2739
2849
  var consequent_1 = ($$anchor4) => {
2740
2850
  var span_1 = root_4();
2741
- var text2 = $10.child(span_1, true);
2851
+ var text3 = $10.child(span_1, true);
2742
2852
  $10.reset(span_1);
2743
- $10.template_effect(() => $10.set_text(text2, $$props.label));
2853
+ $10.template_effect(() => $10.set_text(text3, $$props.label));
2744
2854
  $10.append($$anchor4, span_1);
2745
2855
  };
2746
2856
  $10.if(node_3, ($$render) => {
@@ -3402,7 +3512,7 @@ function Front_matter_header($$anchor, $$props) {
3402
3512
  var node_1 = $18.sibling(span, 2);
3403
3513
  File_text(node_1, { class: "icon-sm" });
3404
3514
  var span_1 = $18.sibling(node_1, 2);
3405
- var text3 = $18.child(span_1, true);
3515
+ var text4 = $18.child(span_1, true);
3406
3516
  $18.reset(span_1);
3407
3517
  var node_2 = $18.sibling(span_1, 2);
3408
3518
  {
@@ -3429,7 +3539,7 @@ function Front_matter_header($$anchor, $$props) {
3429
3539
  });
3430
3540
  }
3431
3541
  $18.reset(button);
3432
- $18.template_effect(() => $18.set_text(text3, label()));
3542
+ $18.template_effect(() => $18.set_text(text4, label()));
3433
3543
  $18.append($$anchor, button);
3434
3544
  $18.pop();
3435
3545
  }
@@ -3437,7 +3547,7 @@ function Front_matter_header($$anchor, $$props) {
3437
3547
  // src/components/diff-viewer/diff-line.svelte
3438
3548
  import"svelte/internal/disclose-version";
3439
3549
  import * as $19 from "svelte/internal/client";
3440
- var root_23 = $19.from_html(`<div><span class="diff-gutter svelte-hc3elb"></span> <span class="diff-text svelte-hc3elb"> </span></div>`);
3550
+ var root_24 = $19.from_html(`<div><span class="diff-gutter svelte-hc3elb"></span> <span class="diff-text svelte-hc3elb"> </span></div>`);
3441
3551
  var root_42 = $19.from_html(`<button type="button"><span class="diff-gutter svelte-hc3elb">+</span> <span class="diff-text svelte-hc3elb"> </span></button>`);
3442
3552
  var root_52 = $19.from_html(`<div><span class="diff-gutter svelte-hc3elb">+</span> <span class="diff-text svelte-hc3elb"> </span></div>`);
3443
3553
  var root_82 = $19.from_html(`<del class="svelte-hc3elb"> </del>`);
@@ -3469,6 +3579,11 @@ function Diff_line($$anchor, $$props) {
3469
3579
  return true;
3470
3580
  });
3471
3581
  const isInteractive = $19.derived(() => $$props.diff.type !== "same" && $$props.onselect !== undefined);
3582
+ const accessibleLineLabel = $19.derived(() => {
3583
+ const text5 = $$props.diff.type === "modified" ? $$props.viewMode === "original" ? $$props.diff.oldText : $$props.viewMode === "final" ? $$props.diff.newText : `${$$props.diff.oldText} changed to ${$$props.diff.newText}` : $$props.diff.text;
3584
+ const typeLabel = $$props.diff.type === "added" ? "Added line" : $$props.diff.type === "removed" ? "Removed line" : "Modified line";
3585
+ return `${typeLabel}: ${text5 || "blank line"}`;
3586
+ });
3472
3587
  var fragment = $19.comment();
3473
3588
  var node = $19.first_child(fragment);
3474
3589
  {
@@ -3477,14 +3592,14 @@ function Diff_line($$anchor, $$props) {
3477
3592
  var node_1 = $19.first_child(fragment_1);
3478
3593
  {
3479
3594
  var consequent = ($$anchor3) => {
3480
- var div = root_23();
3595
+ var div = root_24();
3481
3596
  var span = $19.sibling($19.child(div), 2);
3482
- var text4 = $19.child(span, true);
3597
+ var text_1 = $19.child(span, true);
3483
3598
  $19.reset(span);
3484
3599
  $19.reset(div);
3485
3600
  $19.template_effect(($0) => {
3486
3601
  $19.set_class(div, 1, $0, "svelte-hc3elb");
3487
- $19.set_text(text4, $$props.diff.text || " ");
3602
+ $19.set_text(text_1, $$props.diff.text || " ");
3488
3603
  }, [() => $19.clsx(classNames("diff-line", $$props.class))]);
3489
3604
  $19.append($$anchor3, div);
3490
3605
  };
@@ -3495,13 +3610,14 @@ function Diff_line($$anchor, $$props) {
3495
3610
  var consequent_1 = ($$anchor4) => {
3496
3611
  var button = root_42();
3497
3612
  var span_1 = $19.sibling($19.child(button), 2);
3498
- var text_1 = $19.child(span_1, true);
3613
+ var text_2 = $19.child(span_1, true);
3499
3614
  $19.reset(span_1);
3500
3615
  $19.reset(button);
3501
3616
  $19.template_effect(($0) => {
3502
3617
  $19.set_class(button, 1, $0, "svelte-hc3elb");
3503
3618
  $19.set_attribute(button, "data-selected", selected());
3504
- $19.set_text(text_1, $$props.diff.text || " ");
3619
+ $19.set_attribute(button, "aria-label", $19.get(accessibleLineLabel));
3620
+ $19.set_text(text_2, $$props.diff.text || " ");
3505
3621
  }, [
3506
3622
  () => $19.clsx(classNames("diff-line diff-line-added", $$props.class))
3507
3623
  ]);
@@ -3513,13 +3629,13 @@ function Diff_line($$anchor, $$props) {
3513
3629
  var alternate = ($$anchor4) => {
3514
3630
  var div_1 = root_52();
3515
3631
  var span_2 = $19.sibling($19.child(div_1), 2);
3516
- var text_2 = $19.child(span_2, true);
3632
+ var text_3 = $19.child(span_2, true);
3517
3633
  $19.reset(span_2);
3518
3634
  $19.reset(div_1);
3519
3635
  $19.template_effect(($0) => {
3520
3636
  $19.set_class(div_1, 1, $0, "svelte-hc3elb");
3521
3637
  $19.set_attribute(div_1, "data-selected", selected());
3522
- $19.set_text(text_2, $$props.diff.text || " ");
3638
+ $19.set_text(text_3, $$props.diff.text || " ");
3523
3639
  }, [
3524
3640
  () => $19.clsx(classNames("diff-line diff-line-added", $$props.class))
3525
3641
  ]);
@@ -3542,22 +3658,22 @@ function Diff_line($$anchor, $$props) {
3542
3658
  var consequent_4 = ($$anchor4) => {
3543
3659
  var button_1 = root_7();
3544
3660
  var span_3 = $19.child(button_1);
3545
- var text_3 = $19.child(span_3, true);
3661
+ var text_4 = $19.child(span_3, true);
3546
3662
  $19.reset(span_3);
3547
3663
  var span_4 = $19.sibling(span_3, 2);
3548
3664
  var node_4 = $19.child(span_4);
3549
3665
  {
3550
3666
  var consequent_3 = ($$anchor5) => {
3551
3667
  var del = root_82();
3552
- var text_4 = $19.child(del, true);
3668
+ var text_5 = $19.child(del, true);
3553
3669
  $19.reset(del);
3554
- $19.template_effect(() => $19.set_text(text_4, $$props.diff.text || " "));
3670
+ $19.template_effect(() => $19.set_text(text_5, $$props.diff.text || " "));
3555
3671
  $19.append($$anchor5, del);
3556
3672
  };
3557
3673
  var alternate_1 = ($$anchor5) => {
3558
- var text_5 = $19.text();
3559
- $19.template_effect(() => $19.set_text(text_5, $$props.diff.text || " "));
3560
- $19.append($$anchor5, text_5);
3674
+ var text_6 = $19.text();
3675
+ $19.template_effect(() => $19.set_text(text_6, $$props.diff.text || " "));
3676
+ $19.append($$anchor5, text_6);
3561
3677
  };
3562
3678
  $19.if(node_4, ($$render) => {
3563
3679
  if ($19.get(showStrikethrough))
@@ -3571,7 +3687,8 @@ function Diff_line($$anchor, $$props) {
3571
3687
  $19.template_effect(($0) => {
3572
3688
  $19.set_class(button_1, 1, $0, "svelte-hc3elb");
3573
3689
  $19.set_attribute(button_1, "data-selected", selected());
3574
- $19.set_text(text_3, $19.get(showStrikethrough) ? "-" : "");
3690
+ $19.set_attribute(button_1, "aria-label", $19.get(accessibleLineLabel));
3691
+ $19.set_text(text_4, $19.get(showStrikethrough) ? "-" : "");
3575
3692
  }, [
3576
3693
  () => $19.clsx(classNames("diff-line", $19.get(showStrikethrough) ? "diff-line-removed" : "diff-line-removed-original", $$props.class))
3577
3694
  ]);
@@ -3583,22 +3700,22 @@ function Diff_line($$anchor, $$props) {
3583
3700
  var alternate_3 = ($$anchor4) => {
3584
3701
  var div_2 = root_102();
3585
3702
  var span_5 = $19.child(div_2);
3586
- var text_6 = $19.child(span_5, true);
3703
+ var text_7 = $19.child(span_5, true);
3587
3704
  $19.reset(span_5);
3588
3705
  var span_6 = $19.sibling(span_5, 2);
3589
3706
  var node_5 = $19.child(span_6);
3590
3707
  {
3591
3708
  var consequent_5 = ($$anchor5) => {
3592
3709
  var del_1 = root_11();
3593
- var text_7 = $19.child(del_1, true);
3710
+ var text_8 = $19.child(del_1, true);
3594
3711
  $19.reset(del_1);
3595
- $19.template_effect(() => $19.set_text(text_7, $$props.diff.text || " "));
3712
+ $19.template_effect(() => $19.set_text(text_8, $$props.diff.text || " "));
3596
3713
  $19.append($$anchor5, del_1);
3597
3714
  };
3598
3715
  var alternate_2 = ($$anchor5) => {
3599
- var text_8 = $19.text();
3600
- $19.template_effect(() => $19.set_text(text_8, $$props.diff.text || " "));
3601
- $19.append($$anchor5, text_8);
3716
+ var text_9 = $19.text();
3717
+ $19.template_effect(() => $19.set_text(text_9, $$props.diff.text || " "));
3718
+ $19.append($$anchor5, text_9);
3602
3719
  };
3603
3720
  $19.if(node_5, ($$render) => {
3604
3721
  if ($19.get(showStrikethrough))
@@ -3612,7 +3729,7 @@ function Diff_line($$anchor, $$props) {
3612
3729
  $19.template_effect(($0) => {
3613
3730
  $19.set_class(div_2, 1, $0, "svelte-hc3elb");
3614
3731
  $19.set_attribute(div_2, "data-selected", selected());
3615
- $19.set_text(text_6, $19.get(showStrikethrough) ? "-" : "");
3732
+ $19.set_text(text_7, $19.get(showStrikethrough) ? "-" : "");
3616
3733
  }, [
3617
3734
  () => $19.clsx(classNames("diff-line", $19.get(showStrikethrough) ? "diff-line-removed" : "diff-line-removed-original", $$props.class))
3618
3735
  ]);
@@ -3656,23 +3773,23 @@ function Diff_line($$anchor, $$props) {
3656
3773
  {
3657
3774
  var consequent_8 = ($$anchor8) => {
3658
3775
  var span_9 = root_19();
3659
- var text_9 = $19.child(span_9, true);
3776
+ var text_10 = $19.child(span_9, true);
3660
3777
  $19.reset(span_9);
3661
- $19.template_effect(() => $19.set_text(text_9, $19.get(wordChange).text));
3778
+ $19.template_effect(() => $19.set_text(text_10, $19.get(wordChange).text));
3662
3779
  $19.append($$anchor8, span_9);
3663
3780
  };
3664
3781
  var consequent_9 = ($$anchor8) => {
3665
3782
  var del_2 = root_20();
3666
- var text_10 = $19.child(del_2, true);
3783
+ var text_11 = $19.child(del_2, true);
3667
3784
  $19.reset(del_2);
3668
- $19.template_effect(() => $19.set_text(text_10, $19.get(wordChange).text));
3785
+ $19.template_effect(() => $19.set_text(text_11, $19.get(wordChange).text));
3669
3786
  $19.append($$anchor8, del_2);
3670
3787
  };
3671
3788
  var consequent_10 = ($$anchor8) => {
3672
3789
  var ins = root_21();
3673
- var text_11 = $19.child(ins, true);
3790
+ var text_12 = $19.child(ins, true);
3674
3791
  $19.reset(ins);
3675
- $19.template_effect(() => $19.set_text(text_11, $19.get(wordChange).text));
3792
+ $19.template_effect(() => $19.set_text(text_12, $19.get(wordChange).text));
3676
3793
  $19.append($$anchor8, ins);
3677
3794
  };
3678
3795
  $19.if(node_10, ($$render) => {
@@ -3699,9 +3816,9 @@ function Diff_line($$anchor, $$props) {
3699
3816
  $19.append($$anchor5, fragment_7);
3700
3817
  };
3701
3818
  var alternate_5 = ($$anchor5) => {
3702
- var text_12 = $19.text();
3703
- $19.template_effect(() => $19.set_text(text_12, $19.get(displayText) || " "));
3704
- $19.append($$anchor5, text_12);
3819
+ var text_13 = $19.text();
3820
+ $19.template_effect(() => $19.set_text(text_13, $19.get(displayText) || " "));
3821
+ $19.append($$anchor5, text_13);
3705
3822
  };
3706
3823
  $19.if(node_7, ($$render) => {
3707
3824
  if ($$props.viewMode === "unified")
@@ -3715,6 +3832,7 @@ function Diff_line($$anchor, $$props) {
3715
3832
  $19.template_effect(($0) => {
3716
3833
  $19.set_class(button_2, 1, $0, "svelte-hc3elb");
3717
3834
  $19.set_attribute(button_2, "data-selected", selected());
3835
+ $19.set_attribute(button_2, "aria-label", $19.get(accessibleLineLabel));
3718
3836
  }, [
3719
3837
  () => $19.clsx(classNames("diff-line", $19.get(lineClass), $$props.class))
3720
3838
  ]);
@@ -3746,23 +3864,23 @@ function Diff_line($$anchor, $$props) {
3746
3864
  {
3747
3865
  var consequent_14 = ($$anchor8) => {
3748
3866
  var span_12 = root_28();
3749
- var text_13 = $19.child(span_12, true);
3867
+ var text_14 = $19.child(span_12, true);
3750
3868
  $19.reset(span_12);
3751
- $19.template_effect(() => $19.set_text(text_13, $19.get(wordChange).text));
3869
+ $19.template_effect(() => $19.set_text(text_14, $19.get(wordChange).text));
3752
3870
  $19.append($$anchor8, span_12);
3753
3871
  };
3754
3872
  var consequent_15 = ($$anchor8) => {
3755
3873
  var del_3 = root_29();
3756
- var text_14 = $19.child(del_3, true);
3874
+ var text_15 = $19.child(del_3, true);
3757
3875
  $19.reset(del_3);
3758
- $19.template_effect(() => $19.set_text(text_14, $19.get(wordChange).text));
3876
+ $19.template_effect(() => $19.set_text(text_15, $19.get(wordChange).text));
3759
3877
  $19.append($$anchor8, del_3);
3760
3878
  };
3761
3879
  var consequent_16 = ($$anchor8) => {
3762
3880
  var ins_1 = root_30();
3763
- var text_15 = $19.child(ins_1, true);
3881
+ var text_16 = $19.child(ins_1, true);
3764
3882
  $19.reset(ins_1);
3765
- $19.template_effect(() => $19.set_text(text_15, $19.get(wordChange).text));
3883
+ $19.template_effect(() => $19.set_text(text_16, $19.get(wordChange).text));
3766
3884
  $19.append($$anchor8, ins_1);
3767
3885
  };
3768
3886
  $19.if(node_14, ($$render) => {
@@ -3789,9 +3907,9 @@ function Diff_line($$anchor, $$props) {
3789
3907
  $19.append($$anchor5, fragment_11);
3790
3908
  };
3791
3909
  var alternate_7 = ($$anchor5) => {
3792
- var text_16 = $19.text();
3793
- $19.template_effect(() => $19.set_text(text_16, $19.get(displayText) || " "));
3794
- $19.append($$anchor5, text_16);
3910
+ var text_17 = $19.text();
3911
+ $19.template_effect(() => $19.set_text(text_17, $19.get(displayText) || " "));
3912
+ $19.append($$anchor5, text_17);
3795
3913
  };
3796
3914
  $19.if(node_11, ($$render) => {
3797
3915
  if ($$props.viewMode === "unified")
@@ -3843,7 +3961,7 @@ function Diff_line($$anchor, $$props) {
3843
3961
  $19.delegate(["click"]);
3844
3962
 
3845
3963
  // src/components/diff-viewer/diff-front-matter.svelte
3846
- var root_15 = $20.from_html(`<div class="front-matter-content svelte-113383m"></div>`);
3964
+ var root_16 = $20.from_html(`<div class="front-matter-content svelte-113383m"></div>`);
3847
3965
  var root9 = $20.from_html(`<div><!> <!></div>`);
3848
3966
  function Diff_front_matter($$anchor, $$props) {
3849
3967
  $20.push($$props, true);
@@ -3890,7 +4008,7 @@ function Diff_front_matter($$anchor, $$props) {
3890
4008
  var node_1 = $20.sibling(node, 2);
3891
4009
  {
3892
4010
  var consequent = ($$anchor2) => {
3893
- var div_1 = root_15();
4011
+ var div_1 = root_16();
3894
4012
  $20.each(div_1, 23, () => $$props.diffs, (lineDiff, idx) => `fm-${idx}:${lineDiff.type}:${lineDiff.type === "modified" ? lineDiff.newText : lineDiff.text}`, ($$anchor3, lineDiff) => {
3895
4013
  Diff_line($$anchor3, {
3896
4014
  get diff() {
@@ -3948,9 +4066,9 @@ function Kbd($$anchor, $$props) {
3948
4066
  $21.append($$anchor2, fragment);
3949
4067
  };
3950
4068
  var alternate = ($$anchor2) => {
3951
- var text5 = $21.text();
3952
- $21.template_effect(() => $21.set_text(text5, $$props.label));
3953
- $21.append($$anchor2, text5);
4069
+ var text6 = $21.text();
4070
+ $21.template_effect(() => $21.set_text(text6, $$props.label));
4071
+ $21.append($$anchor2, text6);
3954
4072
  };
3955
4073
  $21.if(node, ($$render) => {
3956
4074
  if ($$props.children)
@@ -4117,8 +4235,8 @@ class SegmentedControlController {
4117
4235
  }
4118
4236
 
4119
4237
  // src/components/segment/segment.svelte
4120
- var root_16 = $23.from_html(`<span class="cinder-segmented-control-option-icon" aria-hidden="true"><!></span>`);
4121
- var root_24 = $23.from_html(`<span class="cinder-segmented-control-option-trailing" aria-hidden="true"><!></span>`);
4238
+ var root_18 = $23.from_html(`<span class="cinder-segmented-control-option-icon" aria-hidden="true"><!></span>`);
4239
+ var root_25 = $23.from_html(`<span class="cinder-segmented-control-option-trailing" aria-hidden="true"><!></span>`);
4122
4240
  var root11 = $23.from_html(`<button><!> <!> <!></button>`);
4123
4241
  function Segment($$anchor, $$props) {
4124
4242
  $23.push($$props, true);
@@ -4177,7 +4295,7 @@ function Segment($$anchor, $$props) {
4177
4295
  var node_1 = $23.child(button);
4178
4296
  {
4179
4297
  var consequent = ($$anchor2) => {
4180
- var span = root_16();
4298
+ var span = root_18();
4181
4299
  var node_2 = $23.child(span);
4182
4300
  $23.snippet(node_2, () => $$props.leading);
4183
4301
  $23.reset(span);
@@ -4193,7 +4311,7 @@ function Segment($$anchor, $$props) {
4193
4311
  var node_4 = $23.sibling(node_3, 2);
4194
4312
  {
4195
4313
  var consequent_1 = ($$anchor2) => {
4196
- var span_1 = root_24();
4314
+ var span_1 = root_25();
4197
4315
  var node_5 = $23.child(span_1);
4198
4316
  $23.snippet(node_5, () => $$props.trailing);
4199
4317
  $23.reset(span_1);
@@ -4269,7 +4387,7 @@ function Segmented_control($$anchor, $$props) {
4269
4387
  const effectiveSize = $24.derived(() => $$props.density === "toolbar" ? "sm" : size());
4270
4388
  var div = root12();
4271
4389
  var span = $24.child(div);
4272
- var text5 = $24.child(span, true);
4390
+ var text6 = $24.child(span, true);
4273
4391
  $24.reset(span);
4274
4392
  var div_1 = $24.sibling(span, 2);
4275
4393
  var event_handler = (event) => controller.handleKeydown(event);
@@ -4297,7 +4415,7 @@ function Segmented_control($$anchor, $$props) {
4297
4415
  $24.template_effect(($0) => {
4298
4416
  $24.set_attribute(span, "id", `${$$props.id}-label`);
4299
4417
  $24.set_class(span, 1, $0);
4300
- $24.set_text(text5, $$props.label);
4418
+ $24.set_text(text6, $$props.label);
4301
4419
  }, [
4302
4420
  () => $24.clsx(classNames("cinder-segmented-control-label", hideLabel() && "cinder-sr-only"))
4303
4421
  ]);
@@ -4321,10 +4439,10 @@ function Spinner($$anchor, $$props) {
4321
4439
  "data-cinder-size": size()
4322
4440
  }), [() => classNames("cinder-spinner", $$props.class)]);
4323
4441
  var span_1 = $25.child(span);
4324
- var text5 = $25.child(span_1, true);
4442
+ var text6 = $25.child(span_1, true);
4325
4443
  $25.reset(span_1);
4326
4444
  $25.reset(span);
4327
- $25.template_effect(() => $25.set_text(text5, label()));
4445
+ $25.template_effect(() => $25.set_text(text6, label()));
4328
4446
  $25.append($$anchor, span);
4329
4447
  $25.pop();
4330
4448
  }
@@ -4381,7 +4499,7 @@ function Refresh_cw($$anchor, $$props) {
4381
4499
  }));
4382
4500
  }
4383
4501
  // src/components/diff-viewer/diff-toolbar.svelte
4384
- var root_18 = $28.from_html(`<!> <!> <!>`, 1);
4502
+ var root_110 = $28.from_html(`<!> <!> <!>`, 1);
4385
4503
  var root_112 = $28.from_html(`<span class="no-changes svelte-1p8ursg">No changes</span>`);
4386
4504
  var root_172 = $28.from_html(`<!> Revert All`, 1);
4387
4505
  var root_192 = $28.from_html(`<!> Compute Diff`, 1);
@@ -4428,14 +4546,14 @@ function Diff_toolbar($$anchor, $$props) {
4428
4546
  viewMode($$value);
4429
4547
  },
4430
4548
  children: ($$anchor2, $$slotProps) => {
4431
- var fragment = root_18();
4549
+ var fragment = root_110();
4432
4550
  var node_1 = $28.first_child(fragment);
4433
4551
  Segment(node_1, {
4434
4552
  value: "unified",
4435
4553
  children: ($$anchor3, $$slotProps2) => {
4436
4554
  $28.next();
4437
- var text6 = $28.text("Unified");
4438
- $28.append($$anchor3, text6);
4555
+ var text7 = $28.text("Unified");
4556
+ $28.append($$anchor3, text7);
4439
4557
  },
4440
4558
  $$slots: { default: true }
4441
4559
  });
@@ -4726,7 +4844,7 @@ var root_6 = $29.from_html(`<div class="diff-warning svelte-1fvc2en" role="statu
4726
4844
  var root_113 = $29.from_html(`<!> Revert`, 1);
4727
4845
  var root_103 = $29.from_html(`<div class="hunk-header svelte-1fvc2en"><span class="hunk-range svelte-1fvc2en"> </span> <!></div>`);
4728
4846
  var root_92 = $29.from_html(`<!> <!>`, 1);
4729
- var root_110 = $29.from_html(`<!> <!> <div class="diff-content svelte-1fvc2en"><!> <!></div>`, 1);
4847
+ var root_111 = $29.from_html(`<!> <!> <div class="diff-content svelte-1fvc2en"><!> <!></div>`, 1);
4730
4848
  function Diff_viewer($$anchor, $$props) {
4731
4849
  const instanceId = $29.props_id();
4732
4850
  $29.push($$props, true);
@@ -4888,7 +5006,7 @@ ${match[1] ?? ""}
4888
5006
  return $29.get($1);
4889
5007
  },
4890
5008
  children: ($$anchor2, $$slotProps) => {
4891
- var fragment_1 = root_110();
5009
+ var fragment_1 = root_111();
4892
5010
  var node = $29.first_child(fragment_1);
4893
5011
  {
4894
5012
  var consequent = ($$anchor3) => {
@@ -4963,8 +5081,8 @@ ${match[1] ?? ""}
4963
5081
  {
4964
5082
  var consequent_3 = ($$anchor3) => {
4965
5083
  var div = root_6();
4966
- var text6 = $29.child(div);
4967
- var node_5 = $29.sibling(text6);
5084
+ var text7 = $29.child(div);
5085
+ var node_5 = $29.sibling(text7);
4968
5086
  {
4969
5087
  var consequent_2 = ($$anchor4) => {
4970
5088
  var span = root_72();
@@ -4979,7 +5097,7 @@ ${match[1] ?? ""}
4979
5097
  });
4980
5098
  }
4981
5099
  $29.reset(div);
4982
- $29.template_effect(() => $29.set_text(text6, `${$29.get(diffState).warning ?? ""} `));
5100
+ $29.template_effect(() => $29.set_text(text7, `${$29.get(diffState).warning ?? ""} `));
4983
5101
  $29.append($$anchor3, div);
4984
5102
  };
4985
5103
  $29.if(node_4, ($$render) => {
@@ -5087,8 +5205,8 @@ ${match[1] ?? ""}
5087
5205
  // src/components/empty-state/empty-state.svelte
5088
5206
  import"svelte/internal/disclose-version";
5089
5207
  import * as $30 from "svelte/internal/client";
5090
- var root_111 = $30.from_html(`<div class="cinder-empty-state-icon" aria-hidden="true"><!></div>`);
5091
- var root_33 = $30.from_html(`<p class="cinder-empty-state-description"> </p>`);
5208
+ var root_114 = $30.from_html(`<div class="cinder-empty-state-icon" aria-hidden="true"><!></div>`);
5209
+ var root_34 = $30.from_html(`<p class="cinder-empty-state-description"> </p>`);
5092
5210
  var root_43 = $30.from_html(`<div class="cinder-empty-state-action"><!></div>`);
5093
5211
  var root15 = $30.from_html(`<div><!> <!> <!> <!></div>`);
5094
5212
  function Empty_state($$anchor, $$props) {
@@ -5117,7 +5235,7 @@ function Empty_state($$anchor, $$props) {
5117
5235
  var node = $30.child(div);
5118
5236
  {
5119
5237
  var consequent = ($$anchor2) => {
5120
- var div_1 = root_111();
5238
+ var div_1 = root_114();
5121
5239
  var node_1 = $30.child(div_1);
5122
5240
  $30.snippet(node_1, () => $$props.icon);
5123
5241
  $30.reset(div_1);
@@ -5131,14 +5249,14 @@ function Empty_state($$anchor, $$props) {
5131
5249
  var node_2 = $30.sibling(node, 2);
5132
5250
  $30.element(node_2, () => $30.get(tag), false, ($$element, $$anchor2) => {
5133
5251
  $30.attribute_effect($$element, () => ({ id: titleId, class: "cinder-empty-state-title" }));
5134
- var text7 = $30.text();
5135
- $30.template_effect(() => $30.set_text(text7, $$props.title));
5136
- $30.append($$anchor2, text7);
5252
+ var text8 = $30.text();
5253
+ $30.template_effect(() => $30.set_text(text8, $$props.title));
5254
+ $30.append($$anchor2, text8);
5137
5255
  });
5138
5256
  var node_3 = $30.sibling(node_2, 2);
5139
5257
  {
5140
5258
  var consequent_1 = ($$anchor2) => {
5141
- var p = root_33();
5259
+ var p = root_34();
5142
5260
  var text_1 = $30.child(p, true);
5143
5261
  $30.reset(p);
5144
5262
  $30.template_effect(() => $30.set_text(text_1, $$props.description));
@@ -5169,7 +5287,7 @@ function Empty_state($$anchor, $$props) {
5169
5287
  }
5170
5288
 
5171
5289
  // src/components/json-schema-editor/diff-view.svelte
5172
- var root_25 = $31.from_html(`<p>The diff shows the committed state; uncommitted JSON edits are not included.</p> <div class="cinder-jse-dirty-actions"><!> <!></div>`, 1);
5290
+ var root_27 = $31.from_html(`<p>The diff shows the committed state; uncommitted JSON edits are not included.</p> <div class="cinder-jse-dirty-actions"><!> <!></div>`, 1);
5173
5291
  var root16 = $31.from_html(`<div><!> <!></div>`);
5174
5292
  function Diff_view($$anchor, $$props) {
5175
5293
  $31.push($$props, true);
@@ -5180,7 +5298,7 @@ function Diff_view($$anchor, $$props) {
5180
5298
  Alert($$anchor2, {
5181
5299
  variant: "warning",
5182
5300
  children: ($$anchor3, $$slotProps) => {
5183
- var fragment_1 = root_25();
5301
+ var fragment_1 = root_27();
5184
5302
  var div_1 = $31.sibling($31.first_child(fragment_1), 2);
5185
5303
  var node_1 = $31.child(div_1);
5186
5304
  Button(node_1, {
@@ -5189,8 +5307,8 @@ function Diff_view($$anchor, $$props) {
5189
5307
  onclick: () => $$props.state.applyJsonDraft(),
5190
5308
  children: ($$anchor4, $$slotProps2) => {
5191
5309
  $31.next();
5192
- var text8 = $31.text("Apply JSON");
5193
- $31.append($$anchor4, text8);
5310
+ var text9 = $31.text("Apply JSON");
5311
+ $31.append($$anchor4, text9);
5194
5312
  },
5195
5313
  $$slots: { default: true }
5196
5314
  });
@@ -5259,6 +5377,7 @@ import * as $39 from "svelte/internal/client";
5259
5377
  // src/components/json-schema-editor/property-editor.svelte
5260
5378
  import"svelte/internal/disclose-version";
5261
5379
  import * as $38 from "svelte/internal/client";
5380
+ import { onDestroy as onDestroy2 } from "svelte";
5262
5381
 
5263
5382
  // src/components/checkbox/checkbox.svelte
5264
5383
  import"svelte/internal/disclose-version";
@@ -5311,9 +5430,10 @@ function setFormFieldContext(context) {
5311
5430
  var getFormFieldContext = optionalContext(getFormFieldContextStrict);
5312
5431
 
5313
5432
  // src/components/checkbox/checkbox.svelte
5314
- var root_114 = $32.from_html(`<label class="cinder-checkbox-field__label"> </label>`);
5315
- var root_27 = $32.from_html(`<p class="cinder-checkbox-field__description"> </p>`);
5316
- var root_34 = $32.from_html(`<p class="cinder-checkbox-field__error" aria-live="polite"> </p>`);
5433
+ var root_210 = $32.from_html(`<span class="cinder-_required-marker" aria-hidden="true">*</span>`);
5434
+ var root_116 = $32.from_html(`<label class="cinder-checkbox-field__label"> <!></label>`);
5435
+ var root_35 = $32.from_html(`<p class="cinder-checkbox-field__description"> </p>`);
5436
+ var root_44 = $32.from_html(`<p class="cinder-checkbox-field__error" aria-live="polite"> </p>`);
5317
5437
  var root17 = $32.from_html(`<div class="cinder-checkbox-field"><div class="cinder-checkbox-row"><span class="cinder-checkbox-field__control"><input/> <span class="cinder-checkbox-field__indicator" aria-hidden="true"></span></span> <!></div> <!> <!></div>`);
5318
5438
  function Checkbox($$anchor, $$props) {
5319
5439
  const generatedId = $32.props_id();
@@ -5324,6 +5444,7 @@ function Checkbox($$anchor, $$props) {
5324
5444
  "$$legacy",
5325
5445
  "id",
5326
5446
  "checked",
5447
+ "onValueChange",
5327
5448
  "indeterminate",
5328
5449
  "label",
5329
5450
  "description",
@@ -5332,7 +5453,8 @@ function Checkbox($$anchor, $$props) {
5332
5453
  "required",
5333
5454
  "class",
5334
5455
  "aria-describedby",
5335
- "aria-invalid"
5456
+ "aria-invalid",
5457
+ "onchange"
5336
5458
  ]);
5337
5459
  const context = getFormFieldContext();
5338
5460
  const field = $32.derived(() => resolveFieldControl({
@@ -5358,6 +5480,40 @@ function Checkbox($$anchor, $$props) {
5358
5480
  $32.get(inputElement).indeterminate = indeterminate() && !checked();
5359
5481
  }
5360
5482
  });
5483
+ let resetSyncTimeout;
5484
+ function syncCheckedAfterFormReset() {
5485
+ if (resetSyncTimeout !== undefined)
5486
+ clearTimeout(resetSyncTimeout);
5487
+ resetSyncTimeout = setTimeout(() => {
5488
+ resetSyncTimeout = undefined;
5489
+ if (!$32.get(inputElement))
5490
+ return;
5491
+ checked($32.get(inputElement).checked);
5492
+ $32.get(inputElement).indeterminate = indeterminate() && !$32.get(inputElement).checked;
5493
+ }, 0);
5494
+ }
5495
+ $32.user_effect(() => {
5496
+ const form = $32.get(inputElement)?.form;
5497
+ if (!form)
5498
+ return;
5499
+ form.addEventListener("reset", syncCheckedAfterFormReset);
5500
+ return () => {
5501
+ form.removeEventListener("reset", syncCheckedAfterFormReset);
5502
+ if (resetSyncTimeout !== undefined) {
5503
+ clearTimeout(resetSyncTimeout);
5504
+ resetSyncTimeout = undefined;
5505
+ }
5506
+ };
5507
+ });
5508
+ function handleChange(event2) {
5509
+ const target = event2.currentTarget;
5510
+ const committed = commitValue(target.checked, $$props.onValueChange, (next6) => {
5511
+ checked(next6);
5512
+ });
5513
+ target.checked = committed;
5514
+ target.indeterminate = indeterminate() && !committed;
5515
+ $$props.onchange?.(event2);
5516
+ }
5361
5517
  var div = root17();
5362
5518
  var div_1 = $32.child(div);
5363
5519
  var span = $32.child(div_1);
@@ -5365,39 +5521,52 @@ function Checkbox($$anchor, $$props) {
5365
5521
  $32.attribute_effect(input, ($0) => ({
5366
5522
  id: $32.get(field).id,
5367
5523
  type: "checkbox",
5524
+ ...rest,
5368
5525
  disabled: $32.get(field).disabled,
5369
5526
  required: $32.get(field).required,
5527
+ checked: checked(),
5528
+ onchange: handleChange,
5370
5529
  class: $0,
5371
5530
  "aria-invalid": $32.get(field).ariaInvalid,
5372
- "aria-describedby": $32.get(field).describedBy,
5373
- ...rest
5531
+ "aria-describedby": $32.get(field).describedBy
5374
5532
  }), [() => classNames("cinder-checkbox", $$props.class)], undefined, undefined, undefined, true);
5375
5533
  $32.bind_this(input, ($$value) => $32.set(inputElement, $$value), () => $32.get(inputElement));
5376
5534
  $32.next(2);
5377
5535
  $32.reset(span);
5378
5536
  var node = $32.sibling(span, 2);
5379
5537
  {
5380
- var consequent = ($$anchor2) => {
5381
- var label_1 = root_114();
5382
- var text8 = $32.child(label_1, true);
5538
+ var consequent_1 = ($$anchor2) => {
5539
+ var label_1 = root_116();
5540
+ var text9 = $32.child(label_1);
5541
+ var node_1 = $32.sibling(text9);
5542
+ {
5543
+ var consequent = ($$anchor3) => {
5544
+ var span_1 = root_210();
5545
+ $32.append($$anchor3, span_1);
5546
+ };
5547
+ $32.if(node_1, ($$render) => {
5548
+ if ($32.get(field).required)
5549
+ $$render(consequent);
5550
+ });
5551
+ }
5383
5552
  $32.reset(label_1);
5384
5553
  $32.template_effect(() => {
5385
5554
  $32.set_attribute(label_1, "for", $32.get(field).id);
5386
5555
  $32.set_attribute(label_1, "data-disabled", $32.get(field).disabled || undefined);
5387
- $32.set_text(text8, $$props.label);
5556
+ $32.set_text(text9, `${$$props.label ?? ""} `);
5388
5557
  });
5389
5558
  $32.append($$anchor2, label_1);
5390
5559
  };
5391
5560
  $32.if(node, ($$render) => {
5392
5561
  if ($$props.label)
5393
- $$render(consequent);
5562
+ $$render(consequent_1);
5394
5563
  });
5395
5564
  }
5396
5565
  $32.reset(div_1);
5397
- var node_1 = $32.sibling(div_1, 2);
5566
+ var node_2 = $32.sibling(div_1, 2);
5398
5567
  {
5399
- var consequent_1 = ($$anchor2) => {
5400
- var p = root_27();
5568
+ var consequent_2 = ($$anchor2) => {
5569
+ var p = root_35();
5401
5570
  var text_1 = $32.child(p, true);
5402
5571
  $32.reset(p);
5403
5572
  $32.template_effect(() => {
@@ -5406,15 +5575,15 @@ function Checkbox($$anchor, $$props) {
5406
5575
  });
5407
5576
  $32.append($$anchor2, p);
5408
5577
  };
5409
- $32.if(node_1, ($$render) => {
5578
+ $32.if(node_2, ($$render) => {
5410
5579
  if ($$props.description)
5411
- $$render(consequent_1);
5580
+ $$render(consequent_2);
5412
5581
  });
5413
5582
  }
5414
- var node_2 = $32.sibling(node_1, 2);
5583
+ var node_3 = $32.sibling(node_2, 2);
5415
5584
  {
5416
- var consequent_2 = ($$anchor2) => {
5417
- var p_1 = root_34();
5585
+ var consequent_3 = ($$anchor2) => {
5586
+ var p_1 = root_44();
5418
5587
  var text_2 = $32.child(p_1, true);
5419
5588
  $32.reset(p_1);
5420
5589
  $32.template_effect(() => {
@@ -5423,13 +5592,12 @@ function Checkbox($$anchor, $$props) {
5423
5592
  });
5424
5593
  $32.append($$anchor2, p_1);
5425
5594
  };
5426
- $32.if(node_2, ($$render) => {
5595
+ $32.if(node_3, ($$render) => {
5427
5596
  if ($$props.error)
5428
- $$render(consequent_2);
5597
+ $$render(consequent_3);
5429
5598
  });
5430
5599
  }
5431
5600
  $32.reset(div);
5432
- $32.bind_checked(input, checked);
5433
5601
  $32.append($$anchor, div);
5434
5602
  $32.pop();
5435
5603
  }
@@ -5438,35 +5606,38 @@ function Checkbox($$anchor, $$props) {
5438
5606
  import"svelte/internal/disclose-version";
5439
5607
  import * as $33 from "svelte/internal/client";
5440
5608
  var calendarIcon = ($$anchor) => {
5441
- var svg = root_116();
5609
+ var svg = root_117();
5442
5610
  $33.append($$anchor, svg);
5443
5611
  };
5444
- var root_116 = $33.from_svg(`<svg aria-hidden="true" xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="3" y="4" width="18" height="18" rx="2" ry="2"></rect><line x1="16" y1="2" x2="16" y2="6"></line><line x1="8" y1="2" x2="8" y2="6"></line><line x1="3" y1="10" x2="21" y2="10"></line></svg>`);
5445
- var root_210 = $33.from_html(`<input/>`);
5446
- var root_35 = $33.from_html(`<label class="cinder-input-field__label"> </label>`);
5447
- var root_53 = $33.from_html(`<span class="cinder-input-group__leading cinder-_truncate"><!></span>`);
5448
- var root_62 = $33.from_html(`<span class="cinder-input-group__trailing cinder-_truncate"><!></span>`);
5449
- var root_73 = $33.from_html(`<span class="cinder-input-group__trailing cinder-input-group__date-icon cinder-_truncate" aria-hidden="true"><!></span>`);
5450
- var root_44 = $33.from_html(`<div class="cinder-input-group"><!> <!> <!></div>`);
5451
- var root_93 = $33.from_html(`<p class="cinder-input-field__description"> </p>`);
5452
- var root_104 = $33.from_html(`<p class="cinder-input-field__error" aria-live="polite"> </p>`);
5612
+ var root_117 = $33.from_svg(`<svg aria-hidden="true" xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="3" y="4" width="18" height="18" rx="2" ry="2"></rect><line x1="16" y1="2" x2="16" y2="6"></line><line x1="8" y1="2" x2="8" y2="6"></line><line x1="3" y1="10" x2="21" y2="10"></line></svg>`);
5613
+ var root_213 = $33.from_html(`<input/>`);
5614
+ var root_45 = $33.from_html(`<span class="cinder-_required-marker" aria-hidden="true">*</span>`);
5615
+ var root_36 = $33.from_html(`<label class="cinder-input-field__label"> <!></label>`);
5616
+ var root_62 = $33.from_html(`<span class="cinder-input-group__leading cinder-_truncate"><!></span>`);
5617
+ var root_73 = $33.from_html(`<span class="cinder-input-group__trailing cinder-_truncate"><!></span>`);
5618
+ var root_83 = $33.from_html(`<span class="cinder-input-group__trailing cinder-input-group__date-icon cinder-_truncate" aria-hidden="true"><!></span>`);
5619
+ var root_53 = $33.from_html(`<div class="cinder-input-group"><!> <!> <!></div>`);
5620
+ var root_104 = $33.from_html(`<p class="cinder-input-field__description"> </p>`);
5621
+ var root_115 = $33.from_html(`<p class="cinder-input-field__error" aria-live="polite"> </p>`);
5453
5622
  var root18 = $33.from_html(`<div class="cinder-input-field"><!> <!> <!> <!></div>`);
5454
5623
  function Input($$anchor, $$props) {
5455
5624
  $33.push($$props, true);
5456
5625
  const inputElement = ($$anchor2) => {
5457
- var input = root_210();
5626
+ var input = root_213();
5458
5627
  $33.attribute_effect(input, ($0) => ({
5459
5628
  id: $$props.id,
5460
5629
  type: type(),
5630
+ ...rest,
5461
5631
  disabled: $33.get(resolvedDisabled),
5462
5632
  required: $33.get(resolvedRequired),
5633
+ value: value(),
5634
+ oninput: handleInput,
5463
5635
  class: $0,
5464
5636
  "data-cinder-native-date": $33.get(rendersNativeDateIcon) ? "" : undefined,
5465
5637
  "aria-invalid": $33.get(resolvedAriaInvalid),
5466
- "aria-describedby": $33.get(describedBy),
5467
- ...rest
5638
+ "aria-describedby": $33.get(describedBy)
5468
5639
  }), [() => classNames("cinder-input", $$props.class)], undefined, undefined, undefined, true);
5469
- $33.bind_value(input, value);
5640
+ $33.bind_this(input, ($$value) => $33.set(inputNode, $$value), () => $33.get(inputNode));
5470
5641
  $33.append($$anchor2, input);
5471
5642
  };
5472
5643
  let value = $33.prop($$props, "value", 15, ""), type = $33.prop($$props, "type", 3, "text"), leadingInteractive = $33.prop($$props, "leadingInteractive", 3, false), trailingInteractive = $33.prop($$props, "trailingInteractive", 3, false), rest = $33.rest_props($$props, [
@@ -5475,6 +5646,7 @@ function Input($$anchor, $$props) {
5475
5646
  "$$legacy",
5476
5647
  "id",
5477
5648
  "value",
5649
+ "onValueChange",
5478
5650
  "label",
5479
5651
  "description",
5480
5652
  "error",
@@ -5486,7 +5658,9 @@ function Input($$anchor, $$props) {
5486
5658
  "trailing",
5487
5659
  "leadingInteractive",
5488
5660
  "trailingInteractive",
5489
- "aria-describedby"
5661
+ "aria-describedby",
5662
+ "aria-invalid",
5663
+ "oninput"
5490
5664
  ]);
5491
5665
  const context = getFormFieldContext();
5492
5666
  $33.user_effect(() => {
@@ -5494,83 +5668,134 @@ function Input($$anchor, $$props) {
5494
5668
  devWarn(`[cinder/Input] id mismatch: Input id="${$$props.id}" but wrapping FormField expects controlId="${context.controlId}". Set the same id on both.`);
5495
5669
  }
5496
5670
  });
5497
- const defaultDescriptionId = $33.derived(() => describeId($$props.id, !!$$props.description));
5498
- const defaultErrorId = $33.derived(() => errorId($$props.id, !!$$props.error));
5499
- const ownDescriptionId = $33.derived(() => $$props.description && $33.get(defaultDescriptionId) === context?.descriptionId ? `${$$props.id}-input-description` : $33.get(defaultDescriptionId));
5500
- const ownErrorId = $33.derived(() => $$props.error && $33.get(defaultErrorId) === context?.errorId ? `${$$props.id}-input-error` : $33.get(defaultErrorId));
5501
- const resolvedDescriptionId = $33.derived(() => $33.get(ownDescriptionId) ?? context?.descriptionId);
5502
- const resolvedErrorId = $33.derived(() => $33.get(ownErrorId) ?? context?.errorId);
5503
- const describedBy = $33.derived(() => composeDescribedBy($33.get(resolvedDescriptionId), $33.get(resolvedErrorId), $$props["aria-describedby"]));
5504
- const resolvedAriaInvalid = $33.derived(() => $$props.error ? ariaInvalid(true) : context?.invalid ?? rest["aria-invalid"] ?? ariaInvalid(false));
5505
- const resolvedRequired = $33.derived(() => $$props.required ?? context?.required ?? false);
5506
- const resolvedDisabled = $33.derived(() => $$props.disabled ?? context?.disabled ?? false);
5671
+ const field = $33.derived(() => resolveFieldControl({
5672
+ id: $$props.id,
5673
+ generatedId: $$props.id,
5674
+ context,
5675
+ hasDescription: !!$$props.description,
5676
+ hasError: !!$$props.error,
5677
+ localIdNamespace: "input",
5678
+ consumerDescribedBy: $$props["aria-describedby"],
5679
+ consumerInvalid: $$props["aria-invalid"],
5680
+ required: $$props.required,
5681
+ disabled: $$props.disabled
5682
+ }));
5683
+ const ownDescriptionId = $33.derived(() => $33.get(field).ownDescriptionId);
5684
+ const ownErrorId = $33.derived(() => $33.get(field).ownErrorId);
5685
+ const describedBy = $33.derived(() => $33.get(field).describedBy);
5686
+ const resolvedAriaInvalid = $33.derived(() => $33.get(field).ariaInvalid);
5687
+ const resolvedRequired = $33.derived(() => $33.get(field).required);
5688
+ const resolvedDisabled = $33.derived(() => $33.get(field).disabled);
5507
5689
  const isNativeDateInput = $33.derived(() => type() === "date");
5508
5690
  const rendersNativeDateIcon = $33.derived(() => $33.get(isNativeDateInput) && !$$props.trailing);
5509
5691
  const hasTrailing = $33.derived(() => !!$$props.trailing || $33.get(isNativeDateInput));
5510
5692
  const hasGroupWrapper = $33.derived(() => !!$$props.leading || $33.get(hasTrailing));
5511
- const isInvalid = $33.derived(() => $33.get(resolvedAriaInvalid) === "true" || $33.get(resolvedAriaInvalid) === true);
5693
+ const isInvalid = $33.derived(() => $33.get(resolvedAriaInvalid) === "true");
5694
+ let inputNode = $33.state(undefined);
5695
+ let resetSyncTimeout;
5696
+ function syncValueAfterFormReset() {
5697
+ if (resetSyncTimeout !== undefined)
5698
+ clearTimeout(resetSyncTimeout);
5699
+ resetSyncTimeout = setTimeout(() => {
5700
+ resetSyncTimeout = undefined;
5701
+ if ($33.get(inputNode))
5702
+ value($33.get(inputNode).value);
5703
+ }, 0);
5704
+ }
5705
+ $33.user_effect(() => {
5706
+ const form = $33.get(inputNode)?.form;
5707
+ if (!form)
5708
+ return;
5709
+ form.addEventListener("reset", syncValueAfterFormReset);
5710
+ return () => {
5711
+ form.removeEventListener("reset", syncValueAfterFormReset);
5712
+ if (resetSyncTimeout !== undefined) {
5713
+ clearTimeout(resetSyncTimeout);
5714
+ resetSyncTimeout = undefined;
5715
+ }
5716
+ };
5717
+ });
5718
+ function handleInput(event2) {
5719
+ const target = event2.currentTarget;
5720
+ const committed = commitValue(target.value, $$props.onValueChange, (next6) => {
5721
+ value(next6);
5722
+ });
5723
+ target.value = committed;
5724
+ $$props.oninput?.(event2);
5725
+ }
5512
5726
  var div = root18();
5513
5727
  var node = $33.child(div);
5514
5728
  {
5515
- var consequent = ($$anchor2) => {
5516
- var label_1 = root_35();
5517
- var text8 = $33.child(label_1, true);
5729
+ var consequent_1 = ($$anchor2) => {
5730
+ var label_1 = root_36();
5731
+ var text9 = $33.child(label_1);
5732
+ var node_1 = $33.sibling(text9);
5733
+ {
5734
+ var consequent = ($$anchor3) => {
5735
+ var span = root_45();
5736
+ $33.append($$anchor3, span);
5737
+ };
5738
+ $33.if(node_1, ($$render) => {
5739
+ if ($33.get(resolvedRequired))
5740
+ $$render(consequent);
5741
+ });
5742
+ }
5518
5743
  $33.reset(label_1);
5519
5744
  $33.template_effect(() => {
5520
5745
  $33.set_attribute(label_1, "for", $$props.id);
5521
5746
  $33.set_attribute(label_1, "data-disabled", $33.get(resolvedDisabled) || undefined);
5522
- $33.set_text(text8, $$props.label);
5747
+ $33.set_text(text9, `${$$props.label ?? ""} `);
5523
5748
  });
5524
5749
  $33.append($$anchor2, label_1);
5525
5750
  };
5526
5751
  $33.if(node, ($$render) => {
5527
5752
  if ($$props.label)
5528
- $$render(consequent);
5753
+ $$render(consequent_1);
5529
5754
  });
5530
5755
  }
5531
- var node_1 = $33.sibling(node, 2);
5756
+ var node_2 = $33.sibling(node, 2);
5532
5757
  {
5533
- var consequent_4 = ($$anchor2) => {
5534
- var div_1 = root_44();
5535
- var node_2 = $33.child(div_1);
5536
- {
5537
- var consequent_1 = ($$anchor3) => {
5538
- var span = root_53();
5539
- var node_3 = $33.child(span);
5540
- $33.snippet(node_3, () => $$props.leading);
5541
- $33.reset(span);
5542
- $33.template_effect(() => $33.set_attribute(span, "aria-hidden", leadingInteractive() ? undefined : "true"));
5543
- $33.append($$anchor3, span);
5544
- };
5545
- $33.if(node_2, ($$render) => {
5546
- if ($$props.leading)
5547
- $$render(consequent_1);
5548
- });
5549
- }
5550
- var node_4 = $33.sibling(node_2, 2);
5551
- inputElement(node_4);
5552
- var node_5 = $33.sibling(node_4, 2);
5758
+ var consequent_5 = ($$anchor2) => {
5759
+ var div_1 = root_53();
5760
+ var node_3 = $33.child(div_1);
5553
5761
  {
5554
5762
  var consequent_2 = ($$anchor3) => {
5555
5763
  var span_1 = root_62();
5556
- var node_6 = $33.child(span_1);
5557
- $33.snippet(node_6, () => $$props.trailing);
5764
+ var node_4 = $33.child(span_1);
5765
+ $33.snippet(node_4, () => $$props.leading);
5558
5766
  $33.reset(span_1);
5559
- $33.template_effect(() => $33.set_attribute(span_1, "aria-hidden", trailingInteractive() ? undefined : "true"));
5767
+ $33.template_effect(() => $33.set_attribute(span_1, "aria-hidden", leadingInteractive() ? undefined : "true"));
5560
5768
  $33.append($$anchor3, span_1);
5561
5769
  };
5770
+ $33.if(node_3, ($$render) => {
5771
+ if ($$props.leading)
5772
+ $$render(consequent_2);
5773
+ });
5774
+ }
5775
+ var node_5 = $33.sibling(node_3, 2);
5776
+ inputElement(node_5);
5777
+ var node_6 = $33.sibling(node_5, 2);
5778
+ {
5562
5779
  var consequent_3 = ($$anchor3) => {
5563
5780
  var span_2 = root_73();
5564
5781
  var node_7 = $33.child(span_2);
5565
- calendarIcon(node_7);
5782
+ $33.snippet(node_7, () => $$props.trailing);
5566
5783
  $33.reset(span_2);
5784
+ $33.template_effect(() => $33.set_attribute(span_2, "aria-hidden", trailingInteractive() ? undefined : "true"));
5567
5785
  $33.append($$anchor3, span_2);
5568
5786
  };
5569
- $33.if(node_5, ($$render) => {
5787
+ var consequent_4 = ($$anchor3) => {
5788
+ var span_3 = root_83();
5789
+ var node_8 = $33.child(span_3);
5790
+ calendarIcon(node_8);
5791
+ $33.reset(span_3);
5792
+ $33.append($$anchor3, span_3);
5793
+ };
5794
+ $33.if(node_6, ($$render) => {
5570
5795
  if ($$props.trailing)
5571
- $$render(consequent_2);
5796
+ $$render(consequent_3);
5572
5797
  else if ($33.get(rendersNativeDateIcon))
5573
- $$render(consequent_3, 1);
5798
+ $$render(consequent_4, 1);
5574
5799
  });
5575
5800
  }
5576
5801
  $33.reset(div_1);
@@ -5586,17 +5811,17 @@ function Input($$anchor, $$props) {
5586
5811
  var alternate = ($$anchor2) => {
5587
5812
  inputElement($$anchor2);
5588
5813
  };
5589
- $33.if(node_1, ($$render) => {
5814
+ $33.if(node_2, ($$render) => {
5590
5815
  if ($33.get(hasGroupWrapper))
5591
- $$render(consequent_4);
5816
+ $$render(consequent_5);
5592
5817
  else
5593
5818
  $$render(alternate, -1);
5594
5819
  });
5595
5820
  }
5596
- var node_8 = $33.sibling(node_1, 2);
5821
+ var node_9 = $33.sibling(node_2, 2);
5597
5822
  {
5598
- var consequent_5 = ($$anchor2) => {
5599
- var p = root_93();
5823
+ var consequent_6 = ($$anchor2) => {
5824
+ var p = root_104();
5600
5825
  var text_1 = $33.child(p, true);
5601
5826
  $33.reset(p);
5602
5827
  $33.template_effect(() => {
@@ -5605,15 +5830,15 @@ function Input($$anchor, $$props) {
5605
5830
  });
5606
5831
  $33.append($$anchor2, p);
5607
5832
  };
5608
- $33.if(node_8, ($$render) => {
5833
+ $33.if(node_9, ($$render) => {
5609
5834
  if ($$props.description)
5610
- $$render(consequent_5);
5835
+ $$render(consequent_6);
5611
5836
  });
5612
5837
  }
5613
- var node_9 = $33.sibling(node_8, 2);
5838
+ var node_10 = $33.sibling(node_9, 2);
5614
5839
  {
5615
- var consequent_6 = ($$anchor2) => {
5616
- var p_1 = root_104();
5840
+ var consequent_7 = ($$anchor2) => {
5841
+ var p_1 = root_115();
5617
5842
  var text_2 = $33.child(p_1, true);
5618
5843
  $33.reset(p_1);
5619
5844
  $33.template_effect(() => {
@@ -5622,9 +5847,9 @@ function Input($$anchor, $$props) {
5622
5847
  });
5623
5848
  $33.append($$anchor2, p_1);
5624
5849
  };
5625
- $33.if(node_9, ($$render) => {
5850
+ $33.if(node_10, ($$render) => {
5626
5851
  if ($$props.error)
5627
- $$render(consequent_6);
5852
+ $$render(consequent_7);
5628
5853
  });
5629
5854
  }
5630
5855
  $33.reset(div);
@@ -5971,14 +6196,15 @@ function reconcileCompositionBranchKeys(existingKeys, branchCount, createKey) {
5971
6196
  // src/components/json-schema-editor/property-list.svelte
5972
6197
  import"svelte/internal/disclose-version";
5973
6198
  import * as $37 from "svelte/internal/client";
6199
+ import { onDestroy } from "svelte";
5974
6200
 
5975
6201
  // src/components/chip/chip.svelte
5976
6202
  import"svelte/internal/disclose-version";
5977
6203
  import * as $36 from "svelte/internal/client";
5978
- var root_213 = $36.from_html(`<span class="cinder-chip__icon" aria-hidden="true"><!></span>`);
5979
- var root_117 = $36.from_html(`<button><!> <span class="cinder-chip__label"> </span></button>`);
5980
- var root_45 = $36.from_html(`<span class="cinder-chip__icon" aria-hidden="true"><!></span>`);
5981
- var root_36 = $36.from_html(`<span><!> <span class="cinder-chip__label"> </span> <button type="button" class="cinder-chip__remove"><span aria-hidden="true">×</span></button></span>`);
6204
+ var root_215 = $36.from_html(`<span class="cinder-chip__icon" aria-hidden="true"><!></span>`);
6205
+ var root_118 = $36.from_html(`<button><!> <span class="cinder-chip__label"> </span></button>`);
6206
+ var root_46 = $36.from_html(`<span class="cinder-chip__icon" aria-hidden="true"><!></span>`);
6207
+ var root_37 = $36.from_html(`<span><!> <span class="cinder-chip__label"> </span> <button type="button" class="cinder-chip__remove"><span aria-hidden="true">×</span></button></span>`);
5982
6208
  var root_63 = $36.from_html(`<span class="cinder-chip__icon" aria-hidden="true"><!></span>`);
5983
6209
  var root_54 = $36.from_html(`<span><!> <span class="cinder-chip__label"> </span></span>`);
5984
6210
  function Chip($$anchor, $$props) {
@@ -6035,7 +6261,7 @@ function Chip($$anchor, $$props) {
6035
6261
  var node = $36.first_child(fragment);
6036
6262
  {
6037
6263
  var consequent_1 = ($$anchor2) => {
6038
- var button = root_117();
6264
+ var button = root_118();
6039
6265
  var event_handler = (event3) => {
6040
6266
  if ($36.get(disabled))
6041
6267
  return;
@@ -6060,7 +6286,7 @@ function Chip($$anchor, $$props) {
6060
6286
  var node_1 = $36.child(button);
6061
6287
  {
6062
6288
  var consequent = ($$anchor3) => {
6063
- var span = root_213();
6289
+ var span = root_215();
6064
6290
  var node_2 = $36.child(span);
6065
6291
  $36.snippet(node_2, () => $36.get(leadingIcon));
6066
6292
  $36.reset(span);
@@ -6072,14 +6298,14 @@ function Chip($$anchor, $$props) {
6072
6298
  });
6073
6299
  }
6074
6300
  var span_1 = $36.sibling(node_1, 2);
6075
- var text8 = $36.child(span_1, true);
6301
+ var text9 = $36.child(span_1, true);
6076
6302
  $36.reset(span_1);
6077
6303
  $36.reset(button);
6078
- $36.template_effect(() => $36.set_text(text8, $36.get(label)));
6304
+ $36.template_effect(() => $36.set_text(text9, $36.get(label)));
6079
6305
  $36.append($$anchor2, button);
6080
6306
  };
6081
6307
  var consequent_3 = ($$anchor2) => {
6082
- var span_2 = root_36();
6308
+ var span_2 = root_37();
6083
6309
  $36.attribute_effect(span_2, ($0) => ({
6084
6310
  ...$36.get(rest),
6085
6311
  role: "group",
@@ -6095,7 +6321,7 @@ function Chip($$anchor, $$props) {
6095
6321
  var node_3 = $36.child(span_2);
6096
6322
  {
6097
6323
  var consequent_2 = ($$anchor3) => {
6098
- var span_3 = root_45();
6324
+ var span_3 = root_46();
6099
6325
  var node_4 = $36.child(span_3);
6100
6326
  $36.snippet(node_4, () => $36.get(leadingIcon));
6101
6327
  $36.reset(span_3);
@@ -6167,11 +6393,16 @@ function Chip($$anchor, $$props) {
6167
6393
  }
6168
6394
  $36.delegate(["click"]);
6169
6395
 
6396
+ // src/components/json-schema-editor/property-list-validation.ts
6397
+ function calculatePropertyValidationErrorCount(propertyNames, childValidationCounts, hasRenameError) {
6398
+ return (hasRenameError ? 1 : 0) + propertyNames.reduce((total, key) => total + (childValidationCounts[key] ?? 0), 0);
6399
+ }
6400
+
6170
6401
  // src/components/json-schema-editor/property-list.svelte
6171
- var root_37 = $37.from_html(`<p class="cinder-jse-property-list__empty">No properties yet.</p>`);
6172
- var root_94 = $37.from_html(`<div class="cinder-jse-property-row__panel"><!> <!></div>`);
6173
- var root_46 = $37.from_html(`<div class="cinder-jse-property-row"><div class="cinder-jse-property-row__summary"><button type="button" class="cinder-jse-property-row__trigger"><span class="cinder-jse-property-row__chevron" aria-hidden="true">▸</span> <span class="cinder-jse-property-row__name"> </span> <span class="cinder-jse-property-row__type"> </span></button> <span class="cinder-jse-property-row__spacer"></span> <!> <!> <!> <!></div> <!></div>`);
6174
- var root_115 = $37.from_html(`<details class="cinder-jse-required-only"><summary class="cinder-jse-required-only__summary"> </summary> <div class="cinder-jse-required-only__panel"><!> <!> <!></div></details>`);
6402
+ var root_38 = $37.from_html(`<p class="cinder-jse-property-list__empty">No properties yet.</p>`);
6403
+ var root_93 = $37.from_html(`<div class="cinder-jse-property-row__panel"><!> <!></div>`);
6404
+ var root_47 = $37.from_html(`<div class="cinder-jse-property-row"><div class="cinder-jse-property-row__summary"><button type="button" class="cinder-jse-property-row__trigger"><span class="cinder-jse-property-row__chevron" aria-hidden="true">▸</span> <span class="cinder-jse-property-row__name"> </span> <span class="cinder-jse-property-row__type"> </span></button> <span class="cinder-jse-property-row__spacer"></span> <!> <!> <!> <!></div> <!></div>`);
6405
+ var root_119 = $37.from_html(`<details class="cinder-jse-required-only"><summary class="cinder-jse-required-only__summary"> </summary> <div class="cinder-jse-required-only__panel"><!> <!> <!></div></details>`);
6175
6406
  var root20 = $37.from_html(`<div class="cinder-jse-property-list"><!> <!> <!> <!> <!></div>`);
6176
6407
  function Property_list($$anchor, $$props) {
6177
6408
  $37.push($$props, true);
@@ -6181,6 +6412,14 @@ function Property_list($$anchor, $$props) {
6181
6412
  let draftNames = $37.proxy({});
6182
6413
  let renameError = $37.state(null);
6183
6414
  let expanded = $37.proxy({});
6415
+ let childValidationCounts = $37.state($37.proxy({}));
6416
+ const validationErrorCount = $37.derived(() => calculatePropertyValidationErrorCount($37.get(propertyNames), $37.get(childValidationCounts), $37.get(renameError) !== null));
6417
+ $37.user_effect(() => {
6418
+ $$props.onvalidationerrorcount?.($37.get(validationErrorCount));
6419
+ });
6420
+ onDestroy(() => {
6421
+ $$props.onvalidationerrorcount?.(0);
6422
+ });
6184
6423
  function getDraftName(key) {
6185
6424
  return draftNames[key] ?? key;
6186
6425
  }
@@ -6220,6 +6459,11 @@ function Property_list($$anchor, $$props) {
6220
6459
  expanded[draft] = true;
6221
6460
  delete expanded[oldKey];
6222
6461
  }
6462
+ const childCount = $37.get(childValidationCounts)[oldKey];
6463
+ if (childCount !== undefined) {
6464
+ const { [oldKey]: _removedChildCount, ...remainingChildCounts } = $37.get(childValidationCounts);
6465
+ $37.set(childValidationCounts, { ...remainingChildCounts, [draft]: childCount }, true);
6466
+ }
6223
6467
  $$props.onchange(next7, nextRequired);
6224
6468
  }
6225
6469
  function deleteProperty(key) {
@@ -6230,8 +6474,25 @@ function Property_list($$anchor, $$props) {
6230
6474
  const nextRequired = $$props.required.filter((name) => name !== key);
6231
6475
  delete draftNames[key];
6232
6476
  delete expanded[key];
6477
+ const { [key]: _removedChildCount, ...remainingChildCounts } = $37.get(childValidationCounts);
6478
+ $37.set(childValidationCounts, remainingChildCounts, true);
6233
6479
  $$props.onchange(next7, nextRequired);
6234
6480
  }
6481
+ function setChildValidationErrorCount(key, count) {
6482
+ if (($37.get(childValidationCounts)[key] ?? 0) === count)
6483
+ return;
6484
+ if (count === 0) {
6485
+ const { [key]: _removedChildCount, ...remainingChildCounts } = $37.get(childValidationCounts);
6486
+ $37.set(childValidationCounts, remainingChildCounts, true);
6487
+ return;
6488
+ }
6489
+ $37.set(childValidationCounts, { ...$37.get(childValidationCounts), [key]: count }, true);
6490
+ }
6491
+ function toggleExpanded(key, isOpen) {
6492
+ expanded[key] = !isOpen;
6493
+ if (isOpen)
6494
+ setChildValidationErrorCount(key, 0);
6495
+ }
6235
6496
  function moveProperty(key, direction) {
6236
6497
  if (readonly())
6237
6498
  return;
@@ -6249,12 +6510,12 @@ function Property_list($$anchor, $$props) {
6249
6510
  function toggleRequired(key) {
6250
6511
  if (readonly())
6251
6512
  return;
6252
- const set13 = new Set($$props.required);
6253
- if (set13.has(key))
6254
- set13.delete(key);
6513
+ const set14 = new Set($$props.required);
6514
+ if (set14.has(key))
6515
+ set14.delete(key);
6255
6516
  else
6256
- set13.add(key);
6257
- $$props.onchange($$props.properties, [...set13]);
6517
+ set14.add(key);
6518
+ $$props.onchange($$props.properties, [...set14]);
6258
6519
  }
6259
6520
  function setPropertySchema(key, schema) {
6260
6521
  if (readonly())
@@ -6304,12 +6565,12 @@ function Property_list($$anchor, $$props) {
6304
6565
  {
6305
6566
  var consequent = ($$anchor2) => {
6306
6567
  Alert($$anchor2, {
6307
- variant: "error",
6568
+ variant: "danger",
6308
6569
  children: ($$anchor3, $$slotProps) => {
6309
6570
  $37.next();
6310
- var text9 = $37.text();
6311
- $37.template_effect(() => $37.set_text(text9, $37.get(renameError)));
6312
- $37.append($$anchor3, text9);
6571
+ var text10 = $37.text();
6572
+ $37.template_effect(() => $37.set_text(text10, $37.get(renameError)));
6573
+ $37.append($$anchor3, text10);
6313
6574
  },
6314
6575
  $$slots: { default: true }
6315
6576
  });
@@ -6322,7 +6583,7 @@ function Property_list($$anchor, $$props) {
6322
6583
  var node_1 = $37.sibling(node, 2);
6323
6584
  {
6324
6585
  var consequent_1 = ($$anchor2) => {
6325
- var p = root_37();
6586
+ var p = root_38();
6326
6587
  $37.append($$anchor2, p);
6327
6588
  };
6328
6589
  $37.if(node_1, ($$render) => {
@@ -6335,7 +6596,7 @@ function Property_list($$anchor, $$props) {
6335
6596
  const isRequired = $37.derived(() => $$props.required.includes(key));
6336
6597
  const isOpen = $37.derived(() => expanded[key] === true);
6337
6598
  const panelId = $37.derived(() => `${$$props.idPrefix}-${key}-panel`);
6338
- var div_1 = root_46();
6599
+ var div_1 = root_47();
6339
6600
  var div_2 = $37.child(div_1);
6340
6601
  var button = $37.child(div_2);
6341
6602
  var span = $37.sibling($37.child(button), 2);
@@ -6430,7 +6691,7 @@ function Property_list($$anchor, $$props) {
6430
6691
  var node_7 = $37.sibling(div_2, 2);
6431
6692
  {
6432
6693
  var consequent_2 = ($$anchor3) => {
6433
- var div_3 = root_94();
6694
+ var div_3 = root_93();
6434
6695
  var node_8 = $37.child(div_3);
6435
6696
  {
6436
6697
  let $0 = $37.derived(() => `${$$props.idPrefix}-${key}-name`);
@@ -6472,6 +6733,7 @@ function Property_list($$anchor, $$props) {
6472
6733
  get value() {
6473
6734
  return $37.get($38);
6474
6735
  },
6736
+ onvalidationerrorcount: (count) => setChildValidationErrorCount(key, count),
6475
6737
  onchange: (next7) => setPropertySchema(key, next7)
6476
6738
  });
6477
6739
  }
@@ -6487,12 +6749,14 @@ function Property_list($$anchor, $$props) {
6487
6749
  $37.reset(div_1);
6488
6750
  $37.template_effect(($0) => {
6489
6751
  $37.set_attribute(div_1, "data-cinder-required", $37.get(isRequired) ? "" : undefined);
6752
+ $37.set_style(div_2, `--cinder-jse-property-depth: ${depth()}`);
6753
+ $37.set_attribute(button, "aria-label", `${$37.get(isOpen) ? "Collapse" : "Expand"} ${key} property`);
6490
6754
  $37.set_attribute(button, "aria-expanded", $37.get(isOpen));
6491
6755
  $37.set_attribute(button, "aria-controls", $37.get(panelId));
6492
6756
  $37.set_text(text_1, key);
6493
6757
  $37.set_text(text_2, $0);
6494
6758
  }, [() => summariseType($$props.properties[key] ?? {})]);
6495
- $37.delegated("click", button, () => expanded[key] = !$37.get(isOpen));
6759
+ $37.delegated("click", button, () => toggleExpanded(key, $37.get(isOpen)));
6496
6760
  $37.append($$anchor2, div_1);
6497
6761
  });
6498
6762
  var node_10 = $37.sibling(node_2, 2);
@@ -6513,7 +6777,7 @@ function Property_list($$anchor, $$props) {
6513
6777
  var node_11 = $37.sibling(node_10, 2);
6514
6778
  {
6515
6779
  var consequent_3 = ($$anchor2) => {
6516
- var details = root_115();
6780
+ var details = root_119();
6517
6781
  var summary = $37.child(details);
6518
6782
  var text_8 = $37.child(summary);
6519
6783
  $37.reset(summary);
@@ -6638,11 +6902,11 @@ var NUMBER_CONSTRAINT_FIELDS = [
6638
6902
  { key: "exclusiveMaximum", label: "Exclusive maximum" },
6639
6903
  { key: "multipleOf", label: "Multiple of" }
6640
6904
  ];
6641
- var root_38 = $38.from_html(`<div class="cinder-jse-boolean-schema"><span> </span> <!></div>`);
6905
+ var root_39 = $38.from_html(`<div class="cinder-jse-boolean-schema"><span> </span> <!></div>`);
6642
6906
  var root_55 = $38.from_html(`<button type="button" class="cinder-jse-collapsed"><span class="cinder-jse-collapsed__summary"> </span> <span class="cinder-jse-collapsed__hint">Expand</span></button>`);
6643
6907
  var root_74 = $38.from_html(`<div class="cinder-jse-section-header"><!></div>`);
6644
6908
  var root_105 = $38.from_html(`<div class="cinder-jse-section"><h4 class="cinder-jse-section__title">Properties</h4> <!></div>`);
6645
- var root_118 = $38.from_html(`<div class="cinder-jse-section"><h4 class="cinder-jse-section__title">Array items</h4> <!></div>`);
6909
+ var root_1111 = $38.from_html(`<div class="cinder-jse-section"><h4 class="cinder-jse-section__title">Array items</h4> <!></div>`);
6646
6910
  var root_122 = $38.from_html(`<details class="cinder-jse-section cinder-jse-section--collapsible"><summary class="cinder-jse-section__title">String constraints</summary> <div class="cinder-jse-section__body"><!> <!> <!> <!></div></details>`);
6647
6911
  var root_132 = $38.from_html(`<details class="cinder-jse-section cinder-jse-section--collapsible"><summary class="cinder-jse-section__title">Number constraints</summary> <div class="cinder-jse-section__body"></div></details>`);
6648
6912
  var root_173 = $38.from_html(`<!> <!>`, 1);
@@ -6671,7 +6935,7 @@ function Property_editor($$anchor, $$props) {
6671
6935
  const preservedKeys = $38.derived(() => {
6672
6936
  return Object.keys($38.get(objectValue)).filter((key) => !EDITABLE_KEYWORDS.has(key));
6673
6937
  });
6674
- function patch(edits, opts) {
6938
+ function patch(edits, opts = undefined) {
6675
6939
  if (readonly())
6676
6940
  return;
6677
6941
  const next8 = { ...$38.get(objectValue), ...edits };
@@ -6753,6 +7017,24 @@ function Property_editor($$anchor, $$props) {
6753
7017
  parts.push(`"${$38.get(objectValue).title}"`);
6754
7018
  return parts.join(" · ");
6755
7019
  }
7020
+ let childValidationCounts = $38.state($38.proxy({}));
7021
+ const validationErrorCount = $38.derived(() => Object.values($38.get(childValidationCounts)).reduce((total, count) => total + count, 0));
7022
+ $38.user_effect(() => {
7023
+ $$props.onvalidationerrorcount?.($38.get(validationErrorCount));
7024
+ });
7025
+ onDestroy2(() => {
7026
+ $$props.onvalidationerrorcount?.(0);
7027
+ });
7028
+ function setChildValidationErrorCount(key, count) {
7029
+ if (($38.get(childValidationCounts)[key] ?? 0) === count)
7030
+ return;
7031
+ if (count === 0) {
7032
+ const { [key]: _removedChildCount, ...remainingChildCounts } = $38.get(childValidationCounts);
7033
+ $38.set(childValidationCounts, remainingChildCounts, true);
7034
+ return;
7035
+ }
7036
+ $38.set(childValidationCounts, { ...$38.get(childValidationCounts), [key]: count }, true);
7037
+ }
6756
7038
  function patchProperties(properties, required) {
6757
7039
  const edits = { properties };
6758
7040
  edits.required = required.length > 0 ? required : undefined;
@@ -6804,8 +7086,13 @@ function Property_editor($$anchor, $$props) {
6804
7086
  }
6805
7087
  function removeCompositionBranch(keyword, branchIndex) {
6806
7088
  const list = Array.isArray($38.get(objectValue)[keyword]) ? [...$38.get(objectValue)[keyword]] : [];
7089
+ const removedBranchKey = $38.get(compositionBranchKeys)[keyword][branchIndex];
7090
+ const nextBranchKeys = [...$38.get(compositionBranchKeys)[keyword]];
6807
7091
  list.splice(branchIndex, 1);
6808
- setKeywordKeys(keyword, $38.get(compositionBranchKeys)[keyword].toSpliced(branchIndex, 1));
7092
+ nextBranchKeys.splice(branchIndex, 1);
7093
+ setKeywordKeys(keyword, nextBranchKeys);
7094
+ if (removedBranchKey)
7095
+ setChildValidationErrorCount(`${keyword}:${removedBranchKey}`, 0);
6809
7096
  patchComposition(keyword, list.length > 0 ? list : undefined);
6810
7097
  }
6811
7098
  function addCompositionBranch(keyword) {
@@ -6825,15 +7112,15 @@ function Property_editor($$anchor, $$props) {
6825
7112
  variant: "info",
6826
7113
  children: ($$anchor3, $$slotProps) => {
6827
7114
  $38.next();
6828
- var text10 = $38.text();
6829
- text10.nodeValue = "Schema depth exceeded (30). Edit deeper sections via the JSON view.";
6830
- $38.append($$anchor3, text10);
7115
+ var text11 = $38.text();
7116
+ text11.nodeValue = "Schema depth exceeded (30). Edit deeper sections via the JSON view.";
7117
+ $38.append($$anchor3, text11);
6831
7118
  },
6832
7119
  $$slots: { default: true }
6833
7120
  });
6834
7121
  };
6835
7122
  var consequent_1 = ($$anchor2) => {
6836
- var div_1 = root_38();
7123
+ var div_1 = root_39();
6837
7124
  var span = $38.child(div_1);
6838
7125
  var text_1 = $38.child(span);
6839
7126
  $38.reset(span);
@@ -7005,6 +7292,7 @@ function Property_editor($$anchor, $$props) {
7005
7292
  get required() {
7006
7293
  return $38.get($210);
7007
7294
  },
7295
+ onvalidationerrorcount: (count) => setChildValidationErrorCount("properties", count),
7008
7296
  onchange: patchProperties
7009
7297
  });
7010
7298
  }
@@ -7019,7 +7307,7 @@ function Property_editor($$anchor, $$props) {
7019
7307
  var node_10 = $38.sibling(node_8, 2);
7020
7308
  {
7021
7309
  var consequent_5 = ($$anchor3) => {
7022
- var div_7 = root_118();
7310
+ var div_7 = root_1111();
7023
7311
  var node_11 = $38.sibling($38.child(div_7), 2);
7024
7312
  {
7025
7313
  let $0 = $38.derived(() => `${$$props.idPrefix}-items`);
@@ -7042,6 +7330,7 @@ function Property_editor($$anchor, $$props) {
7042
7330
  get value() {
7043
7331
  return $38.get($39);
7044
7332
  },
7333
+ onvalidationerrorcount: (count) => setChildValidationErrorCount("items", count),
7045
7334
  onchange: (next8) => setItems(next8)
7046
7335
  });
7047
7336
  }
@@ -7206,6 +7495,7 @@ function Property_editor($$anchor, $$props) {
7206
7495
  var div_10 = $38.sibling(summary, 2);
7207
7496
  var node_20 = $38.child(div_10);
7208
7497
  $38.each(node_20, 19, () => $38.get(objectValue)[keyword], (branch, branchIndex) => $38.get(compositionBranchKeys)[keyword][branchIndex], ($$anchor5, branch, branchIndex) => {
7498
+ const branchKey = $38.derived(() => $38.get(compositionBranchKeys)[keyword][$38.get(branchIndex)]);
7209
7499
  var fragment_6 = root_173();
7210
7500
  var node_21 = $38.first_child(fragment_6);
7211
7501
  {
@@ -7228,6 +7518,7 @@ function Property_editor($$anchor, $$props) {
7228
7518
  get value() {
7229
7519
  return $38.get(branch);
7230
7520
  },
7521
+ onvalidationerrorcount: (count) => setChildValidationErrorCount(`${keyword}:${$38.get(branchKey)}`, count),
7231
7522
  onchange: (next8) => {
7232
7523
  const list = [...$38.get(objectValue)[keyword]];
7233
7524
  list[$38.get(branchIndex)] = next8;
@@ -7430,7 +7721,7 @@ function Property_editor($$anchor, $$props) {
7430
7721
  $38.delegate(["click"]);
7431
7722
 
7432
7723
  // src/components/json-schema-editor/form-view.svelte
7433
- var root_215 = $39.from_html(`<p>The JSON view has uncommitted changes. Apply or discard them to edit in the form.</p> <div class="cinder-jse-dirty-actions"><!> <!></div>`, 1);
7724
+ var root_216 = $39.from_html(`<p>The JSON view has uncommitted changes. Apply or discard them to edit in the form.</p> <div class="cinder-jse-dirty-actions"><!> <!></div>`, 1);
7434
7725
  var root22 = $39.from_html(`<div><!> <!></div>`);
7435
7726
  function Form_view($$anchor, $$props) {
7436
7727
  $39.push($$props, true);
@@ -7442,7 +7733,7 @@ function Form_view($$anchor, $$props) {
7442
7733
  Alert($$anchor2, {
7443
7734
  variant: "warning",
7444
7735
  children: ($$anchor3, $$slotProps) => {
7445
- var fragment_1 = root_215();
7736
+ var fragment_1 = root_216();
7446
7737
  var div_1 = $39.sibling($39.first_child(fragment_1), 2);
7447
7738
  var node_1 = $39.child(div_1);
7448
7739
  Button(node_1, {
@@ -7451,8 +7742,8 @@ function Form_view($$anchor, $$props) {
7451
7742
  onclick: () => $$props.state.applyJsonDraft(),
7452
7743
  children: ($$anchor4, $$slotProps2) => {
7453
7744
  $39.next();
7454
- var text11 = $39.text("Apply JSON");
7455
- $39.append($$anchor4, text11);
7745
+ var text12 = $39.text("Apply JSON");
7746
+ $39.append($$anchor4, text12);
7456
7747
  },
7457
7748
  $$slots: { default: true }
7458
7749
  });
@@ -7507,6 +7798,9 @@ function Form_view($$anchor, $$props) {
7507
7798
  get value() {
7508
7799
  return $39.get(rootSchema);
7509
7800
  },
7801
+ get onvalidationerrorcount() {
7802
+ return $$props.onvalidationerrorcount;
7803
+ },
7510
7804
  onchange: (next9, options) => $$props.state.commitFromForm(next9, options)
7511
7805
  });
7512
7806
  }
@@ -7805,12 +8099,12 @@ function extractParsePosition(error, source) {
7805
8099
  }
7806
8100
  return { line, column };
7807
8101
  }
7808
- function tryParseJson(text11) {
8102
+ function tryParseJson(text12) {
7809
8103
  try {
7810
- return { ok: true, value: JSON.parse(text11) };
8104
+ return { ok: true, value: JSON.parse(text12) };
7811
8105
  } catch (error) {
7812
8106
  if (error instanceof SyntaxError) {
7813
- const position = extractParsePosition(error, text11);
8107
+ const position = extractParsePosition(error, text12);
7814
8108
  const errorPayload = {
7815
8109
  message: error.message
7816
8110
  };
@@ -8170,8 +8464,8 @@ function createEditorState(options) {
8170
8464
  setView(next9) {
8171
8465
  $41.set(view, next9, true);
8172
8466
  },
8173
- setJsonDraftText(text11) {
8174
- $41.set(jsonDraftText, text11, true);
8467
+ setJsonDraftText(text12) {
8468
+ $41.set(jsonDraftText, text12, true);
8175
8469
  scheduleValidation();
8176
8470
  },
8177
8471
  discardJsonDraft() {
@@ -8306,7 +8600,6 @@ import { untrack as untrack4 } from "svelte";
8306
8600
  // src/components/copy-button/copy-button.svelte
8307
8601
  import"svelte/internal/disclose-version";
8308
8602
  import * as $45 from "svelte/internal/client";
8309
- import { onDestroy } from "svelte";
8310
8603
 
8311
8604
  // ../../node_modules/lucide-svelte/dist/icons/check.svelte
8312
8605
  import"svelte/internal/disclose-version";
@@ -8367,20 +8660,20 @@ function Copy($$anchor, $$props) {
8367
8660
  }));
8368
8661
  }
8369
8662
  // src/utilities/clipboard.ts
8370
- async function copyToClipboard(text11) {
8663
+ async function copyToClipboard(text12) {
8371
8664
  if (typeof navigator !== "undefined" && navigator.clipboard?.writeText) {
8372
8665
  try {
8373
- await navigator.clipboard.writeText(text11);
8666
+ await navigator.clipboard.writeText(text12);
8374
8667
  return true;
8375
8668
  } catch {}
8376
8669
  }
8377
- return legacyCopy(text11);
8670
+ return legacyCopy(text12);
8378
8671
  }
8379
- function legacyCopy(text11) {
8672
+ function legacyCopy(text12) {
8380
8673
  if (typeof document === "undefined")
8381
8674
  return false;
8382
8675
  const textarea = document.createElement("textarea");
8383
- textarea.value = text11;
8676
+ textarea.value = text12;
8384
8677
  textarea.setAttribute("readonly", "");
8385
8678
  textarea.setAttribute("aria-hidden", "true");
8386
8679
  textarea.setAttribute("tabindex", "-1");
@@ -8437,13 +8730,13 @@ function _visually_hidden_live_region($$anchor, $$props) {
8437
8730
  }, 0);
8438
8731
  });
8439
8732
  var div = root23();
8440
- var text11 = $44.child(div, true);
8733
+ var text12 = $44.child(div, true);
8441
8734
  $44.reset(div);
8442
8735
  $44.template_effect(($0) => {
8443
8736
  $44.set_attribute(div, "role", priority() === "assertive" ? "alert" : "status");
8444
8737
  $44.set_attribute(div, "aria-live", priority() === "assertive" ? "assertive" : "polite");
8445
8738
  $44.set_class(div, 1, $0);
8446
- $44.set_text(text11, $44.get(rendered));
8739
+ $44.set_text(text12, $44.get(rendered));
8447
8740
  }, [() => $44.clsx(classNames("cinder-sr-only", $$props.class))]);
8448
8741
  $44.append($$anchor, div);
8449
8742
  $44.pop();
@@ -8480,9 +8773,11 @@ function Copy_button($$anchor, $$props) {
8480
8773
  $45.set(copied, false);
8481
8774
  }, confirmDuration());
8482
8775
  }
8483
- onDestroy(() => {
8484
- if (resetTimer)
8485
- clearTimeout(resetTimer);
8776
+ $45.user_effect(() => {
8777
+ return () => {
8778
+ if (resetTimer)
8779
+ clearTimeout(resetTimer);
8780
+ };
8486
8781
  });
8487
8782
  var fragment = root24();
8488
8783
  var button = $45.first_child(fragment);
@@ -8506,8 +8801,8 @@ function Copy_button($$anchor, $$props) {
8506
8801
  Check($$anchor2, { class: "icon-sm", "aria-hidden": "true" });
8507
8802
  };
8508
8803
  var consequent_2 = ($$anchor2) => {
8509
- var text12 = $45.text("Copied");
8510
- $45.append($$anchor2, text12);
8804
+ var text13 = $45.text("Copied");
8805
+ $45.append($$anchor2, text13);
8511
8806
  };
8512
8807
  var consequent_3 = ($$anchor2) => {
8513
8808
  var fragment_3 = $45.comment();
@@ -8552,7 +8847,10 @@ function Copy_button($$anchor, $$props) {
8552
8847
  var root25 = $46.from_html(`<div role="toolbar" tabindex="-1" aria-label="Schema editor actions"><div class="cinder-jse-toolbar__left"><!> <!></div> <div class="cinder-jse-toolbar__right"><!> <!> <!> <!></div></div>`);
8553
8848
  function Json_schema_toolbar($$anchor, $$props) {
8554
8849
  $46.push($$props, true);
8850
+ let localValidationErrorCount = $46.prop($$props, "localValidationErrorCount", 3, 0);
8555
8851
  const validationBadgeVariant = $46.derived(() => {
8852
+ if (localValidationErrorCount() > 0)
8853
+ return "danger";
8556
8854
  switch ($$props.state.validationStatus) {
8557
8855
  case "valid":
8558
8856
  return "success";
@@ -8563,6 +8861,9 @@ function Json_schema_toolbar($$anchor, $$props) {
8563
8861
  }
8564
8862
  });
8565
8863
  const validationBadgeText = $46.derived(() => {
8864
+ if (localValidationErrorCount() > 0) {
8865
+ return `Invalid — ${localValidationErrorCount()} field ${localValidationErrorCount() === 1 ? "error" : "errors"}`;
8866
+ }
8566
8867
  switch ($$props.state.validationStatus) {
8567
8868
  case "valid":
8568
8869
  return `Valid (${$$props.state.activeDraft})`;
@@ -8645,9 +8946,9 @@ function Json_schema_toolbar($$anchor, $$props) {
8645
8946
  },
8646
8947
  children: ($$anchor2, $$slotProps) => {
8647
8948
  $46.next();
8648
- var text13 = $46.text();
8649
- $46.template_effect(() => $46.set_text(text13, $46.get(validationBadgeText)));
8650
- $46.append($$anchor2, text13);
8949
+ var text14 = $46.text();
8950
+ $46.template_effect(() => $46.set_text(text14, $46.get(validationBadgeText)));
8951
+ $46.append($$anchor2, text14);
8651
8952
  },
8652
8953
  $$slots: { default: true }
8653
8954
  });
@@ -8786,10 +9087,11 @@ function resolveMaximumLength(value) {
8786
9087
  }
8787
9088
 
8788
9089
  // src/components/textarea/textarea.svelte
8789
- var root_119 = $47.from_html(`<label class="cinder-textarea-label"> </label>`);
8790
- var root_216 = $47.from_html(`<p class="cinder-textarea-description"> </p>`);
8791
- var root_39 = $47.from_html(`<output class="cinder-textarea-count" aria-live="polite" aria-atomic="true"> </output>`);
8792
- var root_47 = $47.from_html(`<p class="cinder-textarea-error" aria-live="polite"> </p>`);
9090
+ var root_217 = $47.from_html(`<span class="cinder-_required-marker" aria-hidden="true">*</span>`);
9091
+ var root_120 = $47.from_html(`<label class="cinder-textarea-label"> <!></label>`);
9092
+ var root_310 = $47.from_html(`<p class="cinder-textarea-description"> </p>`);
9093
+ var root_48 = $47.from_html(`<output class="cinder-textarea-count" aria-live="polite" aria-atomic="true"> </output>`);
9094
+ var root_56 = $47.from_html(`<p class="cinder-textarea-error" aria-live="polite"> </p>`);
8793
9095
  var root26 = $47.from_html(`<div class="cinder-textarea-field"><!> <textarea></textarea> <!> <!> <!></div>`);
8794
9096
  function Textarea($$anchor, $$props) {
8795
9097
  $47.push($$props, true);
@@ -8832,19 +9134,31 @@ function Textarea($$anchor, $$props) {
8832
9134
  var div = root26();
8833
9135
  var node = $47.child(div);
8834
9136
  {
8835
- var consequent = ($$anchor2) => {
8836
- var label_1 = root_119();
8837
- var text13 = $47.child(label_1, true);
9137
+ var consequent_1 = ($$anchor2) => {
9138
+ var label_1 = root_120();
9139
+ var text14 = $47.child(label_1);
9140
+ var node_1 = $47.sibling(text14);
9141
+ {
9142
+ var consequent = ($$anchor3) => {
9143
+ var span = root_217();
9144
+ $47.append($$anchor3, span);
9145
+ };
9146
+ $47.if(node_1, ($$render) => {
9147
+ if ($47.get(field).required)
9148
+ $$render(consequent);
9149
+ });
9150
+ }
8838
9151
  $47.reset(label_1);
8839
9152
  $47.template_effect(() => {
8840
9153
  $47.set_attribute(label_1, "for", $$props.id);
8841
- $47.set_text(text13, $$props.label);
9154
+ $47.set_attribute(label_1, "data-disabled", $47.get(field).disabled || undefined);
9155
+ $47.set_text(text14, `${$$props.label ?? ""} `);
8842
9156
  });
8843
9157
  $47.append($$anchor2, label_1);
8844
9158
  };
8845
9159
  $47.if(node, ($$render) => {
8846
9160
  if ($$props.label)
8847
- $$render(consequent);
9161
+ $$render(consequent_1);
8848
9162
  });
8849
9163
  }
8850
9164
  var textarea = $47.sibling(node, 2);
@@ -8862,10 +9176,10 @@ function Textarea($$anchor, $$props) {
8862
9176
  }), [
8863
9177
  () => classNames("cinder-_input-frame", "cinder-textarea", $$props.class)
8864
9178
  ]);
8865
- var node_1 = $47.sibling(textarea, 2);
9179
+ var node_2 = $47.sibling(textarea, 2);
8866
9180
  {
8867
- var consequent_1 = ($$anchor2) => {
8868
- var p = root_216();
9181
+ var consequent_2 = ($$anchor2) => {
9182
+ var p = root_310();
8869
9183
  var text_1 = $47.child(p, true);
8870
9184
  $47.reset(p);
8871
9185
  $47.template_effect(() => {
@@ -8874,15 +9188,15 @@ function Textarea($$anchor, $$props) {
8874
9188
  });
8875
9189
  $47.append($$anchor2, p);
8876
9190
  };
8877
- $47.if(node_1, ($$render) => {
9191
+ $47.if(node_2, ($$render) => {
8878
9192
  if ($$props.description)
8879
- $$render(consequent_1);
9193
+ $$render(consequent_2);
8880
9194
  });
8881
9195
  }
8882
- var node_2 = $47.sibling(node_1, 2);
9196
+ var node_3 = $47.sibling(node_2, 2);
8883
9197
  {
8884
- var consequent_2 = ($$anchor2) => {
8885
- var output = root_39();
9198
+ var consequent_3 = ($$anchor2) => {
9199
+ var output = root_48();
8886
9200
  var text_2 = $47.child(output);
8887
9201
  $47.reset(output);
8888
9202
  $47.template_effect(() => {
@@ -8892,15 +9206,15 @@ function Textarea($$anchor, $$props) {
8892
9206
  });
8893
9207
  $47.append($$anchor2, output);
8894
9208
  };
8895
- $47.if(node_2, ($$render) => {
9209
+ $47.if(node_3, ($$render) => {
8896
9210
  if ($47.get(countId))
8897
- $$render(consequent_2);
9211
+ $$render(consequent_3);
8898
9212
  });
8899
9213
  }
8900
- var node_3 = $47.sibling(node_2, 2);
9214
+ var node_4 = $47.sibling(node_3, 2);
8901
9215
  {
8902
- var consequent_3 = ($$anchor2) => {
8903
- var p_1 = root_47();
9216
+ var consequent_4 = ($$anchor2) => {
9217
+ var p_1 = root_56();
8904
9218
  var text_3 = $47.child(p_1, true);
8905
9219
  $47.reset(p_1);
8906
9220
  $47.template_effect(() => {
@@ -8909,9 +9223,9 @@ function Textarea($$anchor, $$props) {
8909
9223
  });
8910
9224
  $47.append($$anchor2, p_1);
8911
9225
  };
8912
- $47.if(node_3, ($$render) => {
9226
+ $47.if(node_4, ($$render) => {
8913
9227
  if ($$props.error)
8914
- $$render(consequent_3);
9228
+ $$render(consequent_4);
8915
9229
  });
8916
9230
  }
8917
9231
  $47.reset(div);
@@ -8951,8 +9265,8 @@ function Json_view($$anchor, $$props) {
8951
9265
  variant: "warning",
8952
9266
  children: ($$anchor3, $$slotProps) => {
8953
9267
  $48.next();
8954
- var text14 = $48.text("Draft modified — Apply to commit");
8955
- $48.append($$anchor3, text14);
9268
+ var text15 = $48.text("Draft modified — Apply to commit");
9269
+ $48.append($$anchor3, text15);
8956
9270
  },
8957
9271
  $$slots: { default: true }
8958
9272
  });
@@ -9022,7 +9336,7 @@ function Json_view($$anchor, $$props) {
9022
9336
  {
9023
9337
  var consequent_1 = ($$anchor2) => {
9024
9338
  Alert($$anchor2, {
9025
- variant: "error",
9339
+ variant: "danger",
9026
9340
  children: ($$anchor3, $$slotProps) => {
9027
9341
  var pre = root_65();
9028
9342
  var text_3 = $48.child(pre, true);
@@ -9058,10 +9372,10 @@ function detectMacPlatform() {
9058
9372
  return /Mac/.test(navigator.platform);
9059
9373
  }
9060
9374
  var isMacPlatform = detectMacPlatform();
9061
- var root_95 = $49.from_html(`<span class="cinder-sr-only">, has changes</span>`);
9062
- var root_83 = $49.from_html(`Diff<!>`, 1);
9063
- var root_217 = $49.from_html(`<!> <!> <!>`, 1);
9064
- var root_121 = $49.from_html(`<!> <!> <!> <!>`, 1);
9375
+ var root_94 = $49.from_html(`<span class="cinder-sr-only">, has changes</span>`);
9376
+ var root_84 = $49.from_html(`Diff<!>`, 1);
9377
+ var root_218 = $49.from_html(`<!> <!> <!>`, 1);
9378
+ var root_123 = $49.from_html(`<!> <!> <!> <!>`, 1);
9065
9379
  var root28 = $49.from_html(`<div data-cinder-jse="" role="region" aria-label="JSON Schema editor"><!> <!></div>`);
9066
9380
  function Json_schema_editor_impl($$anchor, $$props) {
9067
9381
  $49.push($$props, true);
@@ -9083,44 +9397,46 @@ function Json_schema_editor_impl($$anchor, $$props) {
9083
9397
  options.draftOverride = $$props.draftOverride;
9084
9398
  return options;
9085
9399
  });
9086
- const state19 = createEditorState(stateOptions);
9400
+ let localValidationErrorCount = $49.state(0);
9401
+ const editorState = createEditorState(stateOptions);
9402
+ const toolbarValidationErrorCount = $49.derived(() => view() === "form" ? $49.get(localValidationErrorCount) : 0);
9087
9403
  $49.user_effect(() => {
9088
- state19.setReadonly(readonly());
9404
+ editorState.setReadonly(readonly());
9089
9405
  });
9090
9406
  let lastDraftOverride = untrack5(() => $$props.draftOverride);
9091
9407
  $49.user_effect(() => {
9092
9408
  if ($$props.draftOverride !== lastDraftOverride) {
9093
9409
  lastDraftOverride = $$props.draftOverride;
9094
- state19.setDraftOverride($$props.draftOverride);
9410
+ editorState.setDraftOverride($$props.draftOverride);
9095
9411
  }
9096
9412
  });
9097
9413
  $49.user_effect(() => {
9098
- return () => state19.destroy();
9414
+ return () => editorState.destroy();
9099
9415
  });
9100
9416
  let lastSchemaKey = untrack5(() => $$props.schemaKey);
9101
9417
  $49.user_effect(() => {
9102
9418
  if ($$props.schemaKey !== lastSchemaKey) {
9103
9419
  lastSchemaKey = $$props.schemaKey;
9104
9420
  untrack5(() => {
9105
- state19.reload($$props.schema, $$props.original);
9421
+ editorState.reload($$props.schema, $$props.original);
9106
9422
  });
9107
9423
  announcer.announce("Schema reloaded");
9108
9424
  }
9109
9425
  });
9110
9426
  $49.user_effect(() => {
9111
- if (state19.view !== view())
9112
- state19.setView(view());
9427
+ if (editorState.view !== view())
9428
+ editorState.setView(view());
9113
9429
  });
9114
9430
  function handleUndo() {
9115
- const label = state19.undo();
9431
+ const label = editorState.undo();
9116
9432
  announcer.announce(label ? `Undid: ${label}` : "Undid last edit");
9117
9433
  }
9118
9434
  function handleRedo() {
9119
- const label = state19.redo();
9435
+ const label = editorState.redo();
9120
9436
  announcer.announce(label ? `Redid: ${label}` : "Redid edit");
9121
9437
  }
9122
9438
  function handleRevert() {
9123
- state19.revert();
9439
+ editorState.revert();
9124
9440
  announcer.announce("Reverted to original schema");
9125
9441
  }
9126
9442
  function isEditableTarget(target) {
@@ -9150,7 +9466,10 @@ function Json_schema_editor_impl($$anchor, $$props) {
9150
9466
  var node = $49.child(div);
9151
9467
  Json_schema_toolbar(node, {
9152
9468
  get state() {
9153
- return state19;
9469
+ return editorState;
9470
+ },
9471
+ get localValidationErrorCount() {
9472
+ return $49.get(toolbarValidationErrorCount);
9154
9473
  },
9155
9474
  onUndo: handleUndo,
9156
9475
  onRedo: handleRedo,
@@ -9165,19 +9484,19 @@ function Json_schema_editor_impl($$anchor, $$props) {
9165
9484
  view($$value);
9166
9485
  },
9167
9486
  children: ($$anchor2, $$slotProps) => {
9168
- var fragment = root_121();
9487
+ var fragment = root_123();
9169
9488
  var node_2 = $49.first_child(fragment);
9170
9489
  Tab_list(node_2, {
9171
9490
  label: "Editor view",
9172
9491
  children: ($$anchor3, $$slotProps2) => {
9173
- var fragment_1 = root_217();
9492
+ var fragment_1 = root_218();
9174
9493
  var node_3 = $49.first_child(fragment_1);
9175
9494
  Tab(node_3, {
9176
9495
  value: "form",
9177
9496
  children: ($$anchor4, $$slotProps3) => {
9178
9497
  $49.next();
9179
- var text15 = $49.text("Form");
9180
- $49.append($$anchor4, text15);
9498
+ var text16 = $49.text("Form");
9499
+ $49.append($$anchor4, text16);
9181
9500
  },
9182
9501
  $$slots: { default: true }
9183
9502
  });
@@ -9210,7 +9529,7 @@ function Json_schema_editor_impl($$anchor, $$props) {
9210
9529
  });
9211
9530
  };
9212
9531
  $49.if(node_6, ($$render) => {
9213
- if (state19.hasChanges)
9532
+ if (editorState.hasChanges)
9214
9533
  $$render(consequent);
9215
9534
  });
9216
9535
  }
@@ -9221,15 +9540,15 @@ function Json_schema_editor_impl($$anchor, $$props) {
9221
9540
  trailing,
9222
9541
  children: ($$anchor4, $$slotProps3) => {
9223
9542
  $49.next();
9224
- var fragment_4 = root_83();
9543
+ var fragment_4 = root_84();
9225
9544
  var node_7 = $49.sibling($49.first_child(fragment_4));
9226
9545
  {
9227
9546
  var consequent_1 = ($$anchor5) => {
9228
- var span = root_95();
9547
+ var span = root_94();
9229
9548
  $49.append($$anchor5, span);
9230
9549
  };
9231
9550
  $49.if(node_7, ($$render) => {
9232
- if (state19.hasChanges)
9551
+ if (editorState.hasChanges)
9233
9552
  $$render(consequent_1);
9234
9553
  });
9235
9554
  }
@@ -9250,11 +9569,12 @@ function Json_schema_editor_impl($$anchor, $$props) {
9250
9569
  let $0 = $49.derived(() => `${$$props.id}-form`);
9251
9570
  Form_view($$anchor3, {
9252
9571
  get state() {
9253
- return state19;
9572
+ return editorState;
9254
9573
  },
9255
9574
  get idPrefix() {
9256
9575
  return $49.get($0);
9257
- }
9576
+ },
9577
+ onvalidationerrorcount: (count) => $49.set(localValidationErrorCount, count, true)
9258
9578
  });
9259
9579
  }
9260
9580
  },
@@ -9268,7 +9588,7 @@ function Json_schema_editor_impl($$anchor, $$props) {
9268
9588
  let $0 = $49.derived(() => `${$$props.id}-json`);
9269
9589
  Json_view($$anchor3, {
9270
9590
  get state() {
9271
- return state19;
9591
+ return editorState;
9272
9592
  },
9273
9593
  get idPrefix() {
9274
9594
  return $49.get($0);
@@ -9284,7 +9604,7 @@ function Json_schema_editor_impl($$anchor, $$props) {
9284
9604
  children: ($$anchor3, $$slotProps2) => {
9285
9605
  Diff_view($$anchor3, {
9286
9606
  get state() {
9287
- return state19;
9607
+ return editorState;
9288
9608
  }
9289
9609
  });
9290
9610
  },
@@ -9332,4 +9652,4 @@ export {
9332
9652
  Json_schema_editor as JsonSchemaEditor
9333
9653
  };
9334
9654
 
9335
- //# debugId=C72460391DD042CA64756E2164756E21
9655
+ //# debugId=3EE686B0D5E2F54864756E2164756E21