@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
@@ -15,6 +15,7 @@
15
15
  </script>
16
16
 
17
17
  <script lang="ts">
18
+ import { tick } from 'svelte';
18
19
  import { SvelteSet } from 'svelte/reactivity';
19
20
 
20
21
  import { classNames } from '../../utilities/class-names.ts';
@@ -28,7 +29,7 @@
28
29
  value = $bindable([]),
29
30
  leftLabel = 'Available',
30
31
  rightLabel = 'Selected',
31
- onChange,
32
+ onchange,
32
33
  class: customClassName,
33
34
  ...rest
34
35
  }: TransferListProps = $props();
@@ -37,6 +38,9 @@
37
38
  let rightSelectedIds = $state<string[]>([]);
38
39
  let leftActiveId = $state<string | null>(null);
39
40
  let rightActiveId = $state<string | null>(null);
41
+ let focusedSide = $state<'left' | 'right' | null>(null);
42
+ let leftListElement: HTMLUListElement | undefined = $state();
43
+ let rightListElement: HTMLUListElement | undefined = $state();
40
44
 
41
45
  const announcer = useAnnouncer({ clearDelay: 5000 });
42
46
 
@@ -146,7 +150,7 @@
146
150
  function commitValue(nextValue: string[], announcement: string): void {
147
151
  const dedupedKnownValue = [...new Set(nextValue)].filter((id) => itemById.has(id));
148
152
  value = dedupedKnownValue;
149
- onChange?.(dedupedKnownValue);
153
+ onchange?.(dedupedKnownValue);
150
154
  announcer.announce(announcement);
151
155
  }
152
156
 
@@ -154,25 +158,35 @@
154
158
  return count === 1 ? 'item' : 'items';
155
159
  }
156
160
 
157
- function moveSelectedRight(): void {
161
+ function focusList(side: 'left' | 'right'): void {
162
+ const listElement = side === 'left' ? leftListElement : rightListElement;
163
+ listElement?.focus();
164
+ focusedSide = side;
165
+ }
166
+
167
+ async function moveSelectedRight(): Promise<void> {
158
168
  if (movableLeftSelectedIds.length === 0) return;
159
169
  commitValue(
160
170
  [...knownValue, ...movableLeftSelectedIds],
161
171
  `${movableLeftSelectedIds.length} ${pluralize(movableLeftSelectedIds.length)} moved to ${rightLabel}.`,
162
172
  );
163
173
  leftSelectedIds = [];
174
+ await tick();
175
+ focusList(leftItems.some((item) => canMoveItem('left', item)) ? 'left' : 'right');
164
176
  }
165
177
 
166
- function moveAllRight(): void {
178
+ async function moveAllRight(): Promise<void> {
167
179
  if (movableLeftItemIds.length === 0) return;
168
180
  commitValue(
169
181
  [...knownValue, ...movableLeftItemIds],
170
182
  `${movableLeftItemIds.length} ${pluralize(movableLeftItemIds.length)} moved to ${rightLabel}.`,
171
183
  );
172
184
  leftSelectedIds = [];
185
+ await tick();
186
+ focusList('right');
173
187
  }
174
188
 
175
- function moveSelectedLeft(): void {
189
+ async function moveSelectedLeft(): Promise<void> {
176
190
  if (movableRightSelectedIds.length === 0) return;
177
191
  const removing = new Set(movableRightSelectedIds);
178
192
  commitValue(
@@ -180,9 +194,11 @@
180
194
  `${movableRightSelectedIds.length} ${pluralize(movableRightSelectedIds.length)} moved to ${leftLabel}.`,
181
195
  );
182
196
  rightSelectedIds = [];
197
+ await tick();
198
+ focusList(rightItems.length > 0 ? 'right' : 'left');
183
199
  }
184
200
 
185
- function moveAllLeft(): void {
201
+ async function moveAllLeft(): Promise<void> {
186
202
  if (movableRightItemIds.length === 0) return;
187
203
  const removing = new Set(movableRightItemIds);
188
204
  commitValue(
@@ -190,6 +206,8 @@
190
206
  `${movableRightItemIds.length} ${pluralize(movableRightItemIds.length)} moved to ${leftLabel}.`,
191
207
  );
192
208
  rightSelectedIds = [];
209
+ await tick();
210
+ focusList('left');
193
211
  }
194
212
 
195
213
  function toggleId(side: 'left' | 'right', id: string): void {
@@ -238,6 +256,7 @@
238
256
  }
239
257
 
240
258
  function handleListFocus(side: 'left' | 'right'): void {
259
+ focusedSide = side;
241
260
  if (side === 'left') {
242
261
  leftActiveId = resolvedLeftActiveId;
243
262
  } else {
@@ -245,6 +264,13 @@
245
264
  }
246
265
  }
247
266
 
267
+ function handleListBlur(event: FocusEvent, side: 'left' | 'right'): void {
268
+ const nextTarget = event.relatedTarget instanceof Node ? event.relatedTarget : null;
269
+ const currentTarget = event.currentTarget instanceof HTMLElement ? event.currentTarget : null;
270
+ if (currentTarget && nextTarget && currentTarget.contains(nextTarget)) return;
271
+ if (focusedSide === side) focusedSide = null;
272
+ }
273
+
248
274
  function handleListKeydown(event: KeyboardEvent, side: 'left' | 'right'): void {
249
275
  const sideItems = side === 'left' ? leftItems : rightItems;
250
276
  const activeId = side === 'left' ? resolvedLeftActiveId : resolvedRightActiveId;
@@ -292,13 +318,15 @@
292
318
  <section class="cinder-transfer-list__panel" aria-labelledby={`${baseId}-left-label`}>
293
319
  <h3 id={`${baseId}-left-label`} class="cinder-transfer-list__label">{leftLabel}</h3>
294
320
  <ul
321
+ bind:this={leftListElement}
295
322
  class="cinder-transfer-list__list"
296
323
  role="listbox"
297
324
  aria-multiselectable="true"
298
325
  aria-labelledby={`${baseId}-left-label`}
299
- aria-activedescendant={leftActiveOptionId}
326
+ aria-activedescendant={focusedSide === 'left' ? leftActiveOptionId : undefined}
300
327
  tabindex="0"
301
328
  onfocus={() => handleListFocus('left')}
329
+ onblur={(event) => handleListBlur(event, 'left')}
302
330
  onclick={(event) => handleListClick(event, 'left')}
303
331
  onkeydown={(event) => handleListKeydown(event, 'left')}
304
332
  >
@@ -309,7 +337,9 @@
309
337
  role="option"
310
338
  aria-selected={leftSelectedSet.has(item.id) ? 'true' : 'false'}
311
339
  aria-disabled={item.disabled ? 'true' : undefined}
312
- data-cinder-active={resolvedLeftActiveId === item.id ? 'true' : undefined}
340
+ data-cinder-active={focusedSide === 'left' && resolvedLeftActiveId === item.id
341
+ ? 'true'
342
+ : undefined}
313
343
  data-cinder-transfer-list-item-id={item.id}
314
344
  >
315
345
  {item.label}
@@ -362,13 +392,15 @@
362
392
  <section class="cinder-transfer-list__panel" aria-labelledby={`${baseId}-right-label`}>
363
393
  <h3 id={`${baseId}-right-label`} class="cinder-transfer-list__label">{rightLabel}</h3>
364
394
  <ul
395
+ bind:this={rightListElement}
365
396
  class="cinder-transfer-list__list"
366
397
  role="listbox"
367
398
  aria-multiselectable="true"
368
399
  aria-labelledby={`${baseId}-right-label`}
369
- aria-activedescendant={rightActiveOptionId}
400
+ aria-activedescendant={focusedSide === 'right' ? rightActiveOptionId : undefined}
370
401
  tabindex="0"
371
402
  onfocus={() => handleListFocus('right')}
403
+ onblur={(event) => handleListBlur(event, 'right')}
372
404
  onclick={(event) => handleListClick(event, 'right')}
373
405
  onkeydown={(event) => handleListKeydown(event, 'right')}
374
406
  >
@@ -378,7 +410,9 @@
378
410
  class="cinder-transfer-list__option"
379
411
  role="option"
380
412
  aria-selected={rightSelectedSet.has(item.id) ? 'true' : 'false'}
381
- data-cinder-active={resolvedRightActiveId === item.id ? 'true' : undefined}
413
+ data-cinder-active={focusedSide === 'right' && resolvedRightActiveId === item.id
414
+ ? 'true'
415
+ : undefined}
382
416
  data-cinder-transfer-list-item-id={item.id}
383
417
  >
384
418
  {item.label}
@@ -13,7 +13,10 @@ export type TransferListItem = {
13
13
  };
14
14
 
15
15
  /** Props for the TransferList component. */
16
- export type TransferListProps = Omit<HTMLAttributes<HTMLDivElement>, 'children' | 'class'> & {
16
+ export type TransferListProps = Omit<
17
+ HTMLAttributes<HTMLDivElement>,
18
+ 'children' | 'class' | 'onchange'
19
+ > & {
17
20
  /** Full item pool. Item IDs must be unique; duplicate IDs after the first are ignored. The component never mutates this array. */
18
21
  items: TransferListItem[];
19
22
  /** Unique IDs currently assigned to the right-side selected list. Supports `bind:value`. Unknown IDs are ignored and dropped on the next transfer. */
@@ -29,7 +32,7 @@ export type TransferListProps = Omit<HTMLAttributes<HTMLDivElement>, 'children'
29
32
  */
30
33
  rightLabel?: string;
31
34
  /** Called with the next right-side value after a transfer. */
32
- onChange?: (value: string[]) => void;
35
+ onchange?: (value: string[]) => void;
33
36
  /** Custom class merged with `.cinder-transfer-list`. */
34
37
  class?: string;
35
38
  };
@@ -53,8 +53,8 @@ The leaf remains importable individually for à-la-carte builds — see
53
53
  | `children` | `(opaque)` | no | — | Tree items (snippet). Required when virtualized is false or omitted; mutually exclusive with items. Not expressible in JSON Schema; see the component types for the signature. |
54
54
  | `filterPredicate` | `(opaque)` | no | — | Custom filter predicate. Default: case-insensitive label substring matching. Not expressible in JSON Schema; see the component types for the signature. |
55
55
  | `items` | `(opaque)` | no | — | Data-driven Tree items. Required when virtualized is true; mutually exclusive with children. Not expressible in JSON Schema; see the component types for the signature. |
56
- | `onFilterChange` | `(opaque)` | no | — | Fires whenever the built-in search input changes the filter query. Not expressible in JSON Schema; see the component types for the signature. |
57
- | `onReorder` | `(opaque)` | no | — | Called when a draggable item is dropped before, after, or into another tree item. Not expressible in JSON Schema; see the component types for the signature. |
56
+ | `onfilterchange` | `(opaque)` | no | — | Fires whenever the built-in search input changes the filter query. Not expressible in JSON Schema; see the component types for the signature. |
57
+ | `onreorder` | `(opaque)` | no | — | Called when a draggable item is dropped before, after, or into another tree item. Not expressible in JSON Schema; see the component types for the signature. |
58
58
  | `ref` | `(opaque)` | no | — | Typed programmatic handle. Use `bind:ref` to receive it. Not expressible in JSON Schema; see the component types for the signature. |
59
59
  | `selectionControls` | `(opaque)` | no | — | Optional selection controls rendered before the role="tree" element. Not expressible in JSON Schema; see the component types for the signature. |
60
60
  | `virtualizedItem` | `(opaque)` | no | — | Optional custom virtualized row renderer. Not expressible in JSON Schema; see the component types for the signature. |
@@ -52,6 +52,14 @@
52
52
  box-shadow: 0 0 0 var(--cinder-ring-width) var(--cinder-ring-color);
53
53
  }
54
54
 
55
+ @media (forced-colors: active) {
56
+ .cinder-tree__filter-input:focus-visible {
57
+ outline: var(--cinder-ring-width) solid ButtonText;
58
+ outline-offset: 3px;
59
+ box-shadow: none;
60
+ }
61
+ }
62
+
55
63
  .cinder-tree__selection-controls {
56
64
  display: flex;
57
65
  flex-wrap: wrap;
@@ -151,6 +159,51 @@
151
159
  user-select: none;
152
160
  }
153
161
 
162
+ .cinder-tree-item__disclosure,
163
+ .cinder-tree-item__disclosure-spacer {
164
+ flex: 0 0 auto;
165
+ inline-size: 1rem;
166
+ block-size: 1rem;
167
+ }
168
+
169
+ .cinder-tree-item__disclosure {
170
+ display: inline-flex;
171
+ align-items: center;
172
+ justify-content: center;
173
+ padding: 0;
174
+ border: 0;
175
+ border-radius: var(--cinder-radius-sm);
176
+ background: transparent;
177
+ color: currentcolor;
178
+ cursor: pointer;
179
+ }
180
+
181
+ .cinder-tree-item__disclosure > span {
182
+ inline-size: 0.45rem;
183
+ block-size: 0.45rem;
184
+ border-inline-end: 1.5px solid currentcolor;
185
+ border-block-end: 1.5px solid currentcolor;
186
+ transform: rotate(-45deg);
187
+ transition: transform var(--cinder-duration-fast) var(--cinder-ease-standard);
188
+ }
189
+
190
+ .cinder-tree-item__disclosure[aria-expanded='true'] > span {
191
+ transform: rotate(45deg);
192
+ }
193
+
194
+ .cinder-tree-item__disclosure:focus-visible {
195
+ outline: var(--cinder-ring-width) solid transparent;
196
+ box-shadow: 0 0 0 var(--cinder-ring-width) var(--cinder-ring-color);
197
+ }
198
+
199
+ @media (forced-colors: active) {
200
+ .cinder-tree-item__disclosure:focus-visible {
201
+ outline: var(--cinder-ring-width) solid ButtonText;
202
+ outline-offset: 2px;
203
+ box-shadow: none;
204
+ }
205
+ }
206
+
154
207
  .cinder-tree-item__checkbox {
155
208
  flex: 0 0 auto;
156
209
  width: 1rem;
@@ -186,6 +239,14 @@
186
239
  box-shadow: 0 0 0 var(--cinder-ring-width) var(--cinder-ring-color);
187
240
  }
188
241
 
242
+ @media (forced-colors: active) {
243
+ .cinder-tree-item__drag-handle:focus-visible {
244
+ outline: var(--cinder-ring-width) solid ButtonText;
245
+ outline-offset: 2px;
246
+ box-shadow: none;
247
+ }
248
+ }
249
+
189
250
  /* Long labels must not force the tree wider than its container or overlap the
190
251
  * checkbox at narrow (mobile) widths. The element also carries `cinder-_truncate`
191
252
  * (the shared utility), which supplies overflow:hidden / text-overflow:ellipsis /
@@ -273,6 +334,14 @@
273
334
  box-shadow: 0 0 0 var(--cinder-ring-width) var(--cinder-ring-color);
274
335
  }
275
336
 
337
+ @media (forced-colors: active) {
338
+ .cinder-tree-item__rename-input:focus-visible {
339
+ outline: var(--cinder-ring-width) solid ButtonText;
340
+ outline-offset: 3px;
341
+ box-shadow: none;
342
+ }
343
+ }
344
+
276
345
  .cinder-tree-item__rename-input[aria-invalid='true'] {
277
346
  border-color: var(--cinder-danger);
278
347
  }
@@ -37,7 +37,7 @@
37
37
  "id": "reorder",
38
38
  "title": "Drag reorder",
39
39
  "description": "Draggable tree items emit a consumer-owned reorder target. The example records the last drop so pointer behavior can be verified.",
40
- "code": "<script lang=\"ts\">\n import { Tree } from '@lostgradient/cinder/tree';\n\n type ReorderTarget = {\n id: string;\n position: 'before' | 'after' | 'child';\n };\n\n const items = [\n { id: 'alpha', label: 'Alpha' },\n { id: 'beta', label: 'Beta', branch: true },\n { id: 'gamma', label: 'Gamma' },\n { id: 'delta', label: 'Delta' },\n { id: 'epsilon', label: 'Epsilon' },\n { id: 'zeta', label: 'Zeta' },\n ];\n\n let lastDrop = $state('none');\n\n function handleReorder(draggedId: string, target: ReorderTarget): void {\n lastDrop = `${draggedId}:${target.position}:${target.id}`;\n }\n</script>\n\n<Tree\n class=\"reorder-tree\"\n aria-label=\"Reorder files\"\n onReorder={handleReorder}\n style=\"max-block-size: 7rem; overflow: auto; border: 1px solid var(--cinder-border); border-radius: var(--cinder-radius-md);\"\n>\n {#each items as item (item.id)}\n {#if item.branch}\n <Tree.Item id={item.id} label={item.label} branch draggable />\n {:else}\n <Tree.Item id={item.id} label={item.label} draggable />\n {/if}\n {/each}\n</Tree>\n\n<p data-testid=\"last-drop\" style=\"margin-block-start: 0.75rem;\">\n {lastDrop}\n</p>\n"
40
+ "code": "<script lang=\"ts\">\n import { Tree } from '@lostgradient/cinder/tree';\n\n type ReorderTarget = {\n id: string;\n position: 'before' | 'after' | 'child';\n };\n\n const items = [\n { id: 'alpha', label: 'Alpha' },\n { id: 'beta', label: 'Beta', branch: true },\n { id: 'gamma', label: 'Gamma' },\n { id: 'delta', label: 'Delta' },\n { id: 'epsilon', label: 'Epsilon' },\n { id: 'zeta', label: 'Zeta' },\n ];\n\n let lastDrop = $state('none');\n\n function handleReorder(draggedId: string, target: ReorderTarget): void {\n lastDrop = `${draggedId}:${target.position}:${target.id}`;\n }\n</script>\n\n<Tree\n class=\"reorder-tree\"\n aria-label=\"Reorder files\"\n onreorder={handleReorder}\n style=\"max-block-size: 7rem; overflow: auto; border: 1px solid var(--cinder-border); border-radius: var(--cinder-radius-md);\"\n>\n {#each items as item (item.id)}\n {#if item.branch}\n <Tree.Item id={item.id} label={item.label} branch draggable />\n {:else}\n <Tree.Item id={item.id} label={item.label} draggable />\n {/if}\n {/each}\n</Tree>\n\n<p data-testid=\"last-drop\" style=\"margin-block-start: 0.75rem;\">\n {lastDrop}\n</p>\n"
41
41
  },
42
42
  {
43
43
  "id": "virtualized",
@@ -76,11 +76,11 @@
76
76
  style: styleAttribute,
77
77
  selectionControls,
78
78
  filterValue,
79
- onFilterChange,
79
+ onfilterchange,
80
80
  filterPlaceholder = 'Search tree',
81
81
  showSearch = false,
82
82
  filterPredicate = defaultFilterPredicate,
83
- onReorder,
83
+ onreorder,
84
84
  children,
85
85
  ...rest
86
86
  }: TreeProps = $props();
@@ -192,7 +192,7 @@
192
192
  () => new Map(flattenedDataItems.map((item) => [item.id, item])),
193
193
  );
194
194
  const hasTreeChrome = $derived(
195
- selectionControls != null || showSearch || filtering || onReorder != null,
195
+ selectionControls != null || showSearch || filtering || onreorder != null,
196
196
  );
197
197
  const hasRegisteredItems = $derived(
198
198
  isVirtualizedTree ? flattenedDataItems.length > 0 : registry.size > 0,
@@ -386,6 +386,17 @@
386
386
  );
387
387
  }
388
388
 
389
+ function virtualizedFilterForcedOpen(item: FlattenedTreeDataItem): boolean {
390
+ return (
391
+ item.branch &&
392
+ filtering &&
393
+ !expandedIds.includes(item.id) &&
394
+ visibleDataItems.some(
395
+ (visibleItem) => visibleItem.id !== item.id && visibleItem.ancestorIds.includes(item.id),
396
+ )
397
+ );
398
+ }
399
+
389
400
  function firstVisibleVirtualizedChildIndex(parentId: string): number {
390
401
  return visibleDataItems.findIndex((item) => item.parentId === parentId);
391
402
  }
@@ -430,7 +441,7 @@
430
441
  }
431
442
 
432
443
  $effect(() => {
433
- if (!onReorder) {
444
+ if (!onreorder) {
434
445
  dragController = null;
435
446
  return;
436
447
  }
@@ -443,7 +454,7 @@
443
454
  isBranch: (id) => registry.getNode(id)?.isBranch() ?? false,
444
455
  focus: focusNode,
445
456
  announce: announceDrag,
446
- commit: (draggedId, target) => onReorder?.(draggedId, target),
457
+ commit: (draggedId, target) => onreorder?.(draggedId, target),
447
458
  })),
448
459
  );
449
460
  });
@@ -561,7 +572,7 @@
561
572
  focusItem(id);
562
573
  }
563
574
 
564
- function scrollToRow(id: string, options?: ScrollIntoViewOptions): void {
575
+ function scrollToRow(id: string, options: ScrollIntoViewOptions | undefined = undefined): void {
565
576
  if (isVirtualizedTree) {
566
577
  const index = visibleIds.indexOf(id);
567
578
  if (index !== -1) {
@@ -805,6 +816,15 @@
805
816
  isFocused(id) {
806
817
  return effectiveFocusedId === id;
807
818
  },
819
+ positionInSet(id) {
820
+ const siblings = registry.siblingsOf(id).filter((siblingId) => visibleIdSet.has(siblingId));
821
+ const index = siblings.indexOf(id);
822
+ return index === -1 ? undefined : index + 1;
823
+ },
824
+ setSize(id) {
825
+ const siblings = registry.siblingsOf(id).filter((siblingId) => visibleIdSet.has(siblingId));
826
+ return siblings.length || undefined;
827
+ },
808
828
  isVisible(id) {
809
829
  return visibleIdSet.has(id);
810
830
  },
@@ -1053,7 +1073,7 @@
1053
1073
 
1054
1074
  function updateFilterValue(next: string): void {
1055
1075
  if (!isFilterControlled) uncontrolledFilterValue = next;
1056
- onFilterChange?.(next);
1076
+ onfilterchange?.(next);
1057
1077
  }
1058
1078
 
1059
1079
  function handleFilterInput(event: Event): void {
@@ -1165,12 +1185,21 @@
1165
1185
  focusedId = item.id;
1166
1186
  treeElement?.focus();
1167
1187
  if (event.detail > 1) return;
1188
+
1168
1189
  if (!item.disabled) toggleSelectedInternal(item.id, event);
1190
+
1169
1191
  if (item.branch && !event.shiftKey && !event.metaKey && !event.ctrlKey) {
1170
1192
  setExpandedInternal(item.id, !expandedIds.includes(item.id));
1171
1193
  }
1172
1194
  }
1173
1195
 
1196
+ function handleVirtualizedDisclosureClick(item: FlattenedTreeDataItem, event: MouseEvent): void {
1197
+ event.stopPropagation();
1198
+ focusedId = item.id;
1199
+ treeElement?.focus();
1200
+ setExpandedInternal(item.id, !expandedIds.includes(item.id));
1201
+ }
1202
+
1174
1203
  function syncVirtualizedCheckboxElement(element: HTMLInputElement, id: string): void {
1175
1204
  const state = selectionStateForId(id);
1176
1205
  element.checked = state.checked;
@@ -1248,6 +1277,20 @@
1248
1277
  onkeydown={(event) => handleVirtualizedItemKeydown(item, event)}
1249
1278
  >
1250
1279
  <div class="cinder-tree-item__row" style={`padding-inline-start: ${item.level * 1.25}rem;`}>
1280
+ {#if item.branch && !virtualizedFilterForcedOpen(item)}
1281
+ <button
1282
+ type="button"
1283
+ class="cinder-tree-item__disclosure"
1284
+ aria-label={`${virtualizedItemExpanded(item) ? 'Collapse' : 'Expand'} ${item.label}`}
1285
+ aria-expanded={virtualizedItemExpanded(item)}
1286
+ tabindex="-1"
1287
+ onclick={(event) => handleVirtualizedDisclosureClick(item, event)}
1288
+ >
1289
+ <span aria-hidden="true"></span>
1290
+ </button>
1291
+ {:else}
1292
+ <span class="cinder-tree-item__disclosure-spacer" aria-hidden="true"></span>
1293
+ {/if}
1251
1294
  {#if checkboxSelectionActive()}
1252
1295
  <input
1253
1296
  type="checkbox"
@@ -1339,7 +1382,7 @@
1339
1382
  </div>
1340
1383
  {/if}
1341
1384
 
1342
- {#if onReorder}
1385
+ {#if onreorder}
1343
1386
  <div id={dragInstructionsId} class="cinder-sr-only">
1344
1387
  Press Control Shift Space to lift the focused item, or Space from the reorder handle. Use
1345
1388
  arrow keys to move. Press Space to drop, Escape to cancel.
@@ -1358,7 +1401,7 @@
1358
1401
  priority="polite"
1359
1402
  />
1360
1403
 
1361
- {#if onReorder}
1404
+ {#if onreorder}
1362
1405
  <VisuallyHiddenLiveRegion
1363
1406
  message={dragAnnouncement}
1364
1407
  announcementSequence={dragAnnouncementSequence}
@@ -69,7 +69,7 @@ type TreeSharedProps = Omit<
69
69
  /** Controlled filter query. When provided, matching is driven by this value. */
70
70
  filterValue?: string;
71
71
  /** Fires whenever the built-in search input changes the filter query. */
72
- onFilterChange?: (value: string) => void;
72
+ onfilterchange?: (value: string) => void;
73
73
  /** Placeholder and accessible label for the built-in search input. Default: 'Search tree'. */
74
74
  filterPlaceholder?: string;
75
75
  /** Render the built-in search input before the role="tree" element. Default: false. */
@@ -77,7 +77,7 @@ type TreeSharedProps = Omit<
77
77
  /** Custom filter predicate. Default: case-insensitive label substring matching. */
78
78
  filterPredicate?: TreeFilterPredicate;
79
79
  /** Called when a draggable item is dropped before, after, or into another tree item. */
80
- onReorder?: (draggedId: string, target: TreeReorderTarget) => void;
80
+ onreorder?: (draggedId: string, target: TreeReorderTarget) => void;
81
81
  /** Additional CSS class merged with `.cinder-tree`. */
82
82
  class?: string;
83
83
  /** Optional selection controls rendered before the role="tree" element. */
@@ -19,14 +19,14 @@ snippet. The flat `@lostgradient/cinder/tree-item` subpath remains exported for
19
19
  | `branch` | `boolean` | no | — | Marks the node as an expandable branch. A node is a leaf unless it sets `branch` or `loadChildren`; supplying a `children` snippet alone is not enough. Marking the node as a branch lets the tree render the correct expand affordance and `aria-expanded` state before any children exist (for example, before an async `loadChildren` resolves). |
20
20
  | `class` | `string` | no | — | Additional CSS class merged with `.cinder-tree-item`. |
21
21
  | `disabled` | `boolean` | no | — | When true, the item cannot be selected or actioned. Still keyboard-reachable. |
22
- | `draggable` | `boolean` | no | — | Render a reorder handle when the parent Tree provides onReorder. |
22
+ | `draggable` | `boolean` | no | — | Render a reorder handle when the parent Tree provides onreorder. |
23
23
  | `id` | `string` | yes | — | Stable unique id within the tree. |
24
24
  | `label` | `string` | yes | — | Accessible name for the item. Also used as the typeahead key. |
25
25
  | `selectionScopeIds` | `string`[] | no | — | Explicit selectable ids controlled by this item in cascade checkbox-selection mode. |
26
26
  | `children` | `(opaque)` | no | — | Nested TreeItem children for branch nodes. Not expressible in JSON Schema; see the component types for the signature. |
27
- | `loadChildren` | `(opaque)` | no | — | Async loader called the first time the item is expanded. Implies `branch=true`. The loader mutates consumer-owned reactive state; it returns no data. Errors are forwarded to `onLoadError` if provided, otherwise logged via `console.error` with a `[cinder-tree]` prefix. Not expressible in JSON Schema; see the component types for the signature. |
28
- | `onLoadError` | `(opaque)` | no | — | Called when `loadChildren` rejects with a non-abort error. Not expressible in JSON Schema; see the component types for the signature. |
29
- | `onRename` | `(opaque)` | no | — | Called when inline label editing commits a new label. Not expressible in JSON Schema; see the component types for the signature. |
27
+ | `loadChildren` | `(opaque)` | no | — | Async loader called the first time the item is expanded. Implies `branch=true`. The loader mutates consumer-owned reactive state; it returns no data. Errors are forwarded to `onloaderror` if provided, otherwise logged via `console.error` with a `[cinder-tree]` prefix. Not expressible in JSON Schema; see the component types for the signature. |
28
+ | `onloaderror` | `(opaque)` | no | — | Called when `loadChildren` rejects with a non-abort error. Not expressible in JSON Schema; see the component types for the signature. |
29
+ | `onrename` | `(opaque)` | no | — | Called when inline label editing commits a new label. Not expressible in JSON Schema; see the component types for the signature. |
30
30
  | `row` | `(opaque)` | no | — | Optional row content snippet override. Default renders `label`. Not expressible in JSON Schema; see the component types for the signature. |
31
31
 
32
32
  <!-- generated:props:end -->
@@ -45,8 +45,8 @@
45
45
  draggable = false,
46
46
  branch = false,
47
47
  loadChildren,
48
- onLoadError,
49
- onRename,
48
+ onloaderror,
49
+ onrename,
50
50
  selectionScopeIds,
51
51
  row,
52
52
  children,
@@ -105,6 +105,8 @@
105
105
  const isExpanded = $derived(context.expandedIds.includes(id));
106
106
  const isSelected = $derived(context.selectedIds.includes(id));
107
107
  const isFocused = $derived(context.focusedId === id);
108
+ const positionInSet = $derived(context.positionInSet(id));
109
+ const setSize = $derived(context.setSize(id));
108
110
  const isFiltering = $derived(context.filtering);
109
111
  const isVisible = $derived(
110
112
  !isFiltering ||
@@ -113,6 +115,7 @@
113
115
  );
114
116
  const hasVisibleDescendant = $derived(context.hasVisibleDescendant(id));
115
117
  const renderedExpanded = $derived(isExpanded || (isFiltering && hasVisibleDescendant));
118
+ const filterForcedOpen = $derived(isBranch && isFiltering && hasVisibleDescendant && !isExpanded);
116
119
  const shouldProbeFilterChildren = $derived(
117
120
  isBranch && isFiltering && !isExpanded && probedFilterValue !== context.filterValue,
118
121
  );
@@ -122,7 +125,7 @@
122
125
  const checkboxSelectionActive = $derived(context.checkboxSelectionActive());
123
126
  const selectionState = $derived(context.selectionStateFor(id));
124
127
  const labelSegments = $derived.by(() => splitLabelForHighlight(label, context.filterValue));
125
- const canRename = $derived(!disabled && onRename != null);
128
+ const canRename = $derived(!disabled && onrename != null);
126
129
  const editingLabel = $derived(`Editing: ${label}`);
127
130
  const dragController = $derived(context.dragController);
128
131
  const canDrag = $derived(draggable && !disabled && dragController != null);
@@ -248,8 +251,8 @@
248
251
  loaded = false;
249
252
  // Collapse the branch on error
250
253
  context.setExpanded(id, false);
251
- if (onLoadError) {
252
- onLoadError(error, id);
254
+ if (onloaderror) {
255
+ onloaderror(error, id);
253
256
  } else {
254
257
  console.error('[cinder-tree] loadChildren failed for item', id, error);
255
258
  }
@@ -352,7 +355,7 @@
352
355
  announceRename(`Editing ${label}. Press Enter to confirm, Escape to cancel.`);
353
356
  }
354
357
 
355
- function finishEdit(afterFocus?: () => void): void {
358
+ function finishEdit(afterFocus: (() => void) | undefined = undefined): void {
356
359
  editing = false;
357
360
  renameError = '';
358
361
  renamePending = false;
@@ -368,7 +371,7 @@
368
371
  finishEdit();
369
372
  }
370
373
 
371
- async function commitEdit(afterFocus?: () => void): Promise<boolean> {
374
+ async function commitEdit(afterFocus: (() => void) | undefined = undefined): Promise<boolean> {
372
375
  if (!editing || renamePending) return false;
373
376
 
374
377
  if (editValue.trim().length === 0) {
@@ -378,7 +381,7 @@
378
381
  return false;
379
382
  }
380
383
 
381
- if (!onRename) {
384
+ if (!onrename) {
382
385
  finishEdit(afterFocus);
383
386
  return true;
384
387
  }
@@ -386,7 +389,7 @@
386
389
  renamePending = true;
387
390
  renameError = '';
388
391
  try {
389
- await onRename(id, editValue);
392
+ await onrename(id, editValue);
390
393
  announceRename(`${editValue}, renamed.`);
391
394
  finishEdit(afterFocus);
392
395
  return true;
@@ -671,14 +674,24 @@
671
674
 
672
675
  if (event.detail > 1) return;
673
676
 
674
- if (!disabled && !checkboxSelectionActive) context.toggleSelected(id, event);
677
+ if (disabled) {
678
+ if (isBranch) context.setExpanded(id, !isExpanded);
679
+ return;
680
+ }
681
+
682
+ if (!checkboxSelectionActive) context.toggleSelected(id, event);
675
683
 
676
684
  if (isBranch && !event.shiftKey && !event.metaKey && !event.ctrlKey) {
677
- // Plain click on a branch row toggles expand, including disabled branches.
678
685
  context.setExpanded(id, !isExpanded);
679
686
  }
680
687
  }
681
688
 
689
+ function handleDisclosureClick(event: MouseEvent): void {
690
+ event.stopPropagation();
691
+ outerElement?.focus();
692
+ context.setExpanded(id, !isExpanded);
693
+ }
694
+
682
695
  function handleLabelDoubleClick(event: MouseEvent): void {
683
696
  event.preventDefault();
684
697
  event.stopPropagation();
@@ -754,6 +767,8 @@
754
767
  aria-labelledby={editing ? undefined : `${treeItemElementId}-label`}
755
768
  aria-level={level}
756
769
  aria-expanded={isBranch ? renderedExpanded : undefined}
770
+ aria-posinset={positionInSet}
771
+ aria-setsize={setSize}
757
772
  aria-selected={context.selectionMode === 'none' || checkboxSelectionActive
758
773
  ? undefined
759
774
  : isSelected}
@@ -778,6 +793,21 @@
778
793
  >
779
794
  <span id={`${treeItemElementId}-label`} class="cinder-sr-only">{label}</span>
780
795
  <div class="cinder-tree-item__row">
796
+ {#if isBranch && !filterForcedOpen}
797
+ <button
798
+ type="button"
799
+ class="cinder-tree-item__disclosure"
800
+ aria-label={`${renderedExpanded ? 'Collapse' : 'Expand'} ${label}`}
801
+ aria-expanded={renderedExpanded}
802
+ tabindex="-1"
803
+ onclick={handleDisclosureClick}
804
+ >
805
+ <span aria-hidden="true"></span>
806
+ </button>
807
+ {:else}
808
+ <span class="cinder-tree-item__disclosure-spacer" aria-hidden="true"></span>
809
+ {/if}
810
+
781
811
  {#if canDrag}
782
812
  <button
783
813
  bind:this={dragHandleElement}
@@ -885,7 +915,7 @@
885
915
  {@render children?.()}
886
916
  </div>
887
917
  {/if}
888
- {#if onRename}
918
+ {#if onrename}
889
919
  <VisuallyHiddenLiveRegion
890
920
  message={renameAnnouncement}
891
921
  announcementSequence={renameAnnouncementSequence}