@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
@@ -0,0 +1,3794 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __returnValue = (v) => v;
3
+ function __exportSetter(name, newValue) {
4
+ this[name] = __returnValue.bind(null, newValue);
5
+ }
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, {
9
+ get: all[name],
10
+ enumerable: true,
11
+ configurable: true,
12
+ set: __exportSetter.bind(all, name)
13
+ });
14
+ };
15
+ var __esm = (fn, res) => () => (fn && (res = fn(fn = 0)), res);
16
+ var __require = /* @__PURE__ */ ((x) => typeof require !== "undefined" ? require : typeof Proxy !== "undefined" ? new Proxy(x, {
17
+ get: (a, b) => (typeof require !== "undefined" ? require : a)[b]
18
+ }) : x)(function(x) {
19
+ if (typeof require !== "undefined")
20
+ return require.apply(this, arguments);
21
+ throw Error('Dynamic require of "' + x + '" is not supported');
22
+ });
23
+
24
+ // src/utilities/retrying-loader-cache.ts
25
+ function createRetryingLoaderCache(loader) {
26
+ let cached;
27
+ return () => {
28
+ if (cached === undefined) {
29
+ const pending = loader();
30
+ pending.catch(() => {
31
+ if (cached === pending) {
32
+ cached = undefined;
33
+ }
34
+ });
35
+ cached = pending;
36
+ }
37
+ return cached;
38
+ };
39
+ }
40
+
41
+ // src/highlighters/shiki/index.ts
42
+ var exports_shiki = {};
43
+ __export(exports_shiki, {
44
+ shikiHighlighter: () => shikiHighlighter,
45
+ createRetryingLoaderCache: () => createRetryingLoaderCache
46
+ });
47
+ function escapeHtml(value) {
48
+ const safe = typeof value === "string" ? value : "";
49
+ return safe.replaceAll("&", "&amp;").replaceAll("<", "&lt;").replaceAll(">", "&gt;").replaceAll('"', "&quot;").replaceAll("'", "&#39;");
50
+ }
51
+ function plaintextBlock(code) {
52
+ return `<pre class="shiki shiki-plaintext"><code>${escapeHtml(code)}</code></pre>`;
53
+ }
54
+ function stripRootPreTabIndex(html) {
55
+ const openingPre = /^<pre\b[^>]*>/i.exec(html);
56
+ if (openingPre === null)
57
+ return html;
58
+ return openingPre[0].replace(/\s+tabindex=(?:"[^"]*"|'[^']*'|[^\s>]+)/i, "") + html.slice(openingPre[0].length);
59
+ }
60
+ function shikiHighlighter(options = {}) {
61
+ const { theme = DEFAULT_THEME, langs } = options;
62
+ const warnedLanguages = new Set;
63
+ const loadShiki = createRetryingLoaderCache(async () => {
64
+ const module_ = await import("shiki");
65
+ if (langs !== undefined) {
66
+ for (const lang of langs) {
67
+ try {
68
+ await module_.codeToHtml("", { lang, ...buildThemeOption(theme) });
69
+ } catch {}
70
+ }
71
+ }
72
+ return {
73
+ codeToHtml: module_.codeToHtml,
74
+ bundledLanguages: module_.bundledLanguages
75
+ };
76
+ });
77
+ return async function highlight(code, lang) {
78
+ const normalizedLang = typeof lang === "string" ? lang.trim().split(/\s+/, 1)[0] ?? "" : "";
79
+ if (normalizedLang === "") {
80
+ return plaintextBlock(code);
81
+ }
82
+ let shiki;
83
+ try {
84
+ shiki = await loadShiki();
85
+ } catch (error) {
86
+ console.warn("[cinder/highlighters/shiki] failed to load shiki:", error);
87
+ return plaintextBlock(code);
88
+ }
89
+ if (!Object.hasOwn(shiki.bundledLanguages, normalizedLang)) {
90
+ if (!warnedLanguages.has(normalizedLang)) {
91
+ warnedLanguages.add(normalizedLang);
92
+ console.warn(`[cinder/highlighters/shiki] language "${normalizedLang}" is not in Shiki's bundle; rendering as plaintext.`);
93
+ }
94
+ return plaintextBlock(code);
95
+ }
96
+ try {
97
+ const html = await shiki.codeToHtml(code, {
98
+ lang: normalizedLang,
99
+ ...buildThemeOption(theme)
100
+ });
101
+ return stripRootPreTabIndex(html);
102
+ } catch (error) {
103
+ if (!warnedLanguages.has(normalizedLang)) {
104
+ warnedLanguages.add(normalizedLang);
105
+ console.warn(`[cinder/highlighters/shiki] failed to highlight "${normalizedLang}":`, error);
106
+ }
107
+ return plaintextBlock(code);
108
+ }
109
+ };
110
+ }
111
+ function buildThemeOption(theme) {
112
+ if (typeof theme === "string")
113
+ return { theme };
114
+ return { themes: theme };
115
+ }
116
+ var DEFAULT_THEME;
117
+ var init_shiki = __esm(() => {
118
+ DEFAULT_THEME = {
119
+ light: "github-light",
120
+ dark: "github-dark"
121
+ };
122
+ });
123
+
124
+ // src/components/approval-card/index.ts
125
+ import"@lostgradient/cinder/approval-card/styles";
126
+
127
+ // src/components/approval-card/approval-card.svelte
128
+ import"svelte/internal/disclose-version";
129
+ import * as $22 from "svelte/internal/client";
130
+ import { onDestroy as onDestroy2 } from "svelte";
131
+
132
+ // src/utilities/class-names.ts
133
+ function classNames(...parts) {
134
+ return parts.filter((part) => typeof part === "string" && part.length > 0).join(" ");
135
+ }
136
+
137
+ // src/components/badge/badge.svelte
138
+ import"svelte/internal/disclose-version";
139
+ import * as $ from "svelte/internal/client";
140
+ var root_3 = $.from_svg(`<path></path>`);
141
+ var root_2 = $.from_svg(`<svg class="icon-sm" aria-hidden="true" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></svg>`);
142
+ var root_1 = $.from_html(`<!> <!>`, 1);
143
+ var root = $.from_html(`<span><!></span>`);
144
+ function Badge($$anchor, $$props) {
145
+ $.push($$props, true);
146
+ const subscriptionStateConfigurations = {
147
+ active: { variant: "success", label: "Active" },
148
+ trialing: { variant: "info", label: "Trialing" },
149
+ "past-due": { variant: "warning", label: "Past due" },
150
+ canceled: { variant: "neutral", label: "Canceled" },
151
+ expired: { variant: "danger", label: "Expired" },
152
+ refunded: { variant: "neutral", label: "Refunded" }
153
+ };
154
+ const subscriptionStateIconPaths = {
155
+ active: ["M21.801 10A10 10 0 1 1 17 3.335", "m9 11 3 3L22 4"],
156
+ trialing: ["M12 6v6l4 2", "M21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0Z"],
157
+ "past-due": [
158
+ "m21.73 18-8-14a2 2 0 0 0-3.46 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3Z",
159
+ "M12 9v4",
160
+ "M12 17h.01"
161
+ ],
162
+ canceled: [
163
+ "M15 9 9 15",
164
+ "M9 9l6 6",
165
+ "M22 12A10 10 0 1 1 12 2a10 10 0 0 1 10 10Z"
166
+ ],
167
+ expired: [
168
+ "M8 2v4",
169
+ "M16 2v4",
170
+ "M21 13V6a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h8",
171
+ "M3 10h18",
172
+ "m17 14-5-5",
173
+ "m12 14 5 5"
174
+ ],
175
+ refunded: [
176
+ "M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8",
177
+ "M3 3v5h5"
178
+ ]
179
+ };
180
+ let variant = $.prop($$props, "variant", 3, "neutral"), size = $.prop($$props, "size", 3, "md"), mono = $.prop($$props, "mono", 3, false), rest = $.rest_props($$props, [
181
+ "$$slots",
182
+ "$$events",
183
+ "$$legacy",
184
+ "variant",
185
+ "size",
186
+ "mono",
187
+ "subscriptionState",
188
+ "class",
189
+ "children"
190
+ ]);
191
+ const subscriptionStateConfiguration = $.derived(() => $$props.subscriptionState === undefined ? undefined : subscriptionStateConfigurations[$$props.subscriptionState]);
192
+ const resolvedVariant = $.derived(() => $.get(subscriptionStateConfiguration)?.variant ?? variant());
193
+ const resolvedSubscriptionIconPaths = $.derived(() => $$props.subscriptionState === undefined ? undefined : subscriptionStateIconPaths[$$props.subscriptionState]);
194
+ var span = root();
195
+ $.attribute_effect(span, ($0) => ({
196
+ class: $0,
197
+ "data-cinder-variant": $.get(resolvedVariant),
198
+ "data-cinder-size": size(),
199
+ "data-cinder-mono": mono() ? "" : undefined,
200
+ "data-cinder-subscription-state": $$props.subscriptionState,
201
+ ...rest
202
+ }), [() => classNames("cinder-badge", $$props.class)]);
203
+ var node = $.child(span);
204
+ {
205
+ var consequent_2 = ($$anchor2) => {
206
+ var fragment = root_1();
207
+ var node_1 = $.first_child(fragment);
208
+ {
209
+ var consequent = ($$anchor3) => {
210
+ var svg = root_2();
211
+ $.each(svg, 20, () => $.get(resolvedSubscriptionIconPaths), (iconPath) => iconPath, ($$anchor4, iconPath) => {
212
+ var path = root_3();
213
+ $.template_effect(() => $.set_attribute(path, "d", iconPath));
214
+ $.append($$anchor4, path);
215
+ });
216
+ $.reset(svg);
217
+ $.append($$anchor3, svg);
218
+ };
219
+ $.if(node_1, ($$render) => {
220
+ if ($.get(resolvedSubscriptionIconPaths))
221
+ $$render(consequent);
222
+ });
223
+ }
224
+ var node_2 = $.sibling(node_1, 2);
225
+ {
226
+ var consequent_1 = ($$anchor3) => {
227
+ var fragment_1 = $.comment();
228
+ var node_3 = $.first_child(fragment_1);
229
+ $.snippet(node_3, () => $$props.children);
230
+ $.append($$anchor3, fragment_1);
231
+ };
232
+ var alternate = ($$anchor3) => {
233
+ var text2 = $.text();
234
+ $.template_effect(() => $.set_text(text2, $.get(subscriptionStateConfiguration).label));
235
+ $.append($$anchor3, text2);
236
+ };
237
+ $.if(node_2, ($$render) => {
238
+ if ($$props.children)
239
+ $$render(consequent_1);
240
+ else
241
+ $$render(alternate, -1);
242
+ });
243
+ }
244
+ $.append($$anchor2, fragment);
245
+ };
246
+ var alternate_1 = ($$anchor2) => {
247
+ var fragment_3 = $.comment();
248
+ var node_4 = $.first_child(fragment_3);
249
+ $.snippet(node_4, () => $$props.children ?? $.noop);
250
+ $.append($$anchor2, fragment_3);
251
+ };
252
+ $.if(node, ($$render) => {
253
+ if ($.get(subscriptionStateConfiguration))
254
+ $$render(consequent_2);
255
+ else
256
+ $$render(alternate_1, -1);
257
+ });
258
+ }
259
+ $.reset(span);
260
+ $.append($$anchor, span);
261
+ $.pop();
262
+ }
263
+
264
+ // src/components/button/button.svelte
265
+ import"svelte/internal/disclose-version";
266
+ import * as $2 from "svelte/internal/client";
267
+
268
+ // ../../node_modules/esm-env/true.js
269
+ var true_default = true;
270
+ // src/utilities/dev-warn.ts
271
+ function devWarn(message, ...args) {
272
+ if (!true_default)
273
+ return;
274
+ console.warn(message, ...args);
275
+ }
276
+
277
+ // src/components/button/button.svelte
278
+ var root_22 = $2.from_html(`<span class="cinder-button__icon" aria-hidden="true"><!></span>`);
279
+ var root_4 = $2.from_html(`<span class="cinder-sr-only"> </span>`);
280
+ var root_5 = $2.from_html(`<span class="cinder-button__icon" aria-hidden="true"><!></span>`);
281
+ var root_32 = $2.from_html(`<!> <!>`, 1);
282
+ var root_8 = $2.from_html(`<span class="cinder-button__icon" aria-hidden="true"><!></span>`);
283
+ var root_12 = $2.from_html(`<!> <!> <!>`, 1);
284
+ var root_9 = $2.from_html(`<a><!></a>`);
285
+ var root_10 = $2.from_html(`<button><!></button>`);
286
+ function Button($$anchor, $$props) {
287
+ $2.push($$props, true);
288
+ const buttonContent = ($$anchor2) => {
289
+ var fragment = root_12();
290
+ var node = $2.first_child(fragment);
291
+ {
292
+ var consequent = ($$anchor3) => {
293
+ var span = root_22();
294
+ var node_1 = $2.child(span);
295
+ $2.snippet(node_1, () => $$props.leadingIcon);
296
+ $2.reset(span);
297
+ $2.append($$anchor3, span);
298
+ };
299
+ $2.if(node, ($$render) => {
300
+ if ($$props.leadingIcon)
301
+ $$render(consequent);
302
+ });
303
+ }
304
+ var node_2 = $2.sibling(node, 2);
305
+ {
306
+ var consequent_3 = ($$anchor3) => {
307
+ var fragment_1 = root_32();
308
+ var node_3 = $2.first_child(fragment_1);
309
+ {
310
+ var consequent_1 = ($$anchor4) => {
311
+ var span_1 = root_4();
312
+ var text3 = $2.child(span_1, true);
313
+ $2.reset(span_1);
314
+ $2.template_effect(() => $2.set_text(text3, $$props.label));
315
+ $2.append($$anchor4, span_1);
316
+ };
317
+ $2.if(node_3, ($$render) => {
318
+ if (!$2.get(resolvedAriaLabel) && !$2.get(resolvedAriaLabelledBy) && $$props.label)
319
+ $$render(consequent_1);
320
+ });
321
+ }
322
+ var node_4 = $2.sibling(node_3, 2);
323
+ {
324
+ var consequent_2 = ($$anchor4) => {
325
+ var span_2 = root_5();
326
+ var node_5 = $2.child(span_2);
327
+ $2.snippet(node_5, () => $$props.children);
328
+ $2.reset(span_2);
329
+ $2.append($$anchor4, span_2);
330
+ };
331
+ $2.if(node_4, ($$render) => {
332
+ if ($$props.children)
333
+ $$render(consequent_2);
334
+ });
335
+ }
336
+ $2.append($$anchor3, fragment_1);
337
+ };
338
+ var consequent_4 = ($$anchor3) => {
339
+ var fragment_2 = $2.comment();
340
+ var node_6 = $2.first_child(fragment_2);
341
+ $2.snippet(node_6, () => $$props.children);
342
+ $2.append($$anchor3, fragment_2);
343
+ };
344
+ var alternate = ($$anchor3) => {
345
+ var text_1 = $2.text();
346
+ $2.template_effect(() => $2.set_text(text_1, $$props.label));
347
+ $2.append($$anchor3, text_1);
348
+ };
349
+ $2.if(node_2, ($$render) => {
350
+ if (iconOnly())
351
+ $$render(consequent_3);
352
+ else if ($$props.children)
353
+ $$render(consequent_4, 1);
354
+ else
355
+ $$render(alternate, -1);
356
+ });
357
+ }
358
+ var node_7 = $2.sibling(node_2, 2);
359
+ {
360
+ var consequent_5 = ($$anchor3) => {
361
+ var span_3 = root_8();
362
+ var node_8 = $2.child(span_3);
363
+ $2.snippet(node_8, () => $$props.trailingIcon);
364
+ $2.reset(span_3);
365
+ $2.append($$anchor3, span_3);
366
+ };
367
+ $2.if(node_7, ($$render) => {
368
+ if ($$props.trailingIcon)
369
+ $$render(consequent_5);
370
+ });
371
+ }
372
+ $2.append($$anchor2, fragment);
373
+ };
374
+ const variant = $2.prop($$props, "variant", 3, "secondary"), size = $2.prop($$props, "size", 3, "md"), fullWidth = $2.prop($$props, "fullWidth", 3, false), loading = $2.prop($$props, "loading", 3, false), iconOnly = $2.prop($$props, "iconOnly", 3, false), rest = $2.rest_props($$props, [
375
+ "$$slots",
376
+ "$$events",
377
+ "$$legacy",
378
+ "variant",
379
+ "size",
380
+ "fullWidth",
381
+ "loading",
382
+ "iconOnly",
383
+ "leadingIcon",
384
+ "trailingIcon",
385
+ "children",
386
+ "label",
387
+ "class",
388
+ "href",
389
+ "onclick",
390
+ "aria-disabled",
391
+ "aria-busy",
392
+ "aria-label",
393
+ "aria-labelledby",
394
+ "aria-expanded",
395
+ "aria-controls",
396
+ "aria-haspopup"
397
+ ]);
398
+ const mergedClassName = $2.derived(() => classNames("cinder-button", $$props.class));
399
+ const dataAttributes = $2.derived(() => ({
400
+ "data-cinder-variant": variant(),
401
+ "data-cinder-size": size(),
402
+ "data-cinder-full-width": fullWidth() ? "" : undefined,
403
+ "data-cinder-loading": loading() ? "" : undefined,
404
+ "data-cinder-icon-only": iconOnly() ? "" : undefined
405
+ }));
406
+ const resolvedAriaDisabled = $2.derived(() => loading() ? "true" : $$props["aria-disabled"]);
407
+ const resolvedAriaBusy = $2.derived(() => loading() ? "true" : $$props["aria-busy"]);
408
+ const resolvedAriaLabel = $2.derived(() => typeof $$props["aria-label"] === "string" && $$props["aria-label"].trim().length > 0 ? $$props["aria-label"] : undefined);
409
+ const resolvedAriaLabelledBy = $2.derived(() => typeof $$props["aria-labelledby"] === "string" && $$props["aria-labelledby"].trim().length > 0 ? $$props["aria-labelledby"] : undefined);
410
+ const anchorAttributes = rest;
411
+ const buttonAttributes = rest;
412
+ const anchorTabIndex = $2.derived(() => $$props.tabindex);
413
+ const buttonType = $2.derived(() => $$props.type);
414
+ const buttonDisabled = $2.derived(() => $$props.disabled ?? false);
415
+ function handleClick(event) {
416
+ if (loading()) {
417
+ event.preventDefault();
418
+ return;
419
+ }
420
+ if (typeof $$props.onclick === "function") {
421
+ $$props.onclick(event);
422
+ }
423
+ }
424
+ $2.user_effect(() => {
425
+ const hasLabel = typeof $$props.label === "string" && $$props.label.trim().length > 0;
426
+ const hasChildren = Boolean($$props.children);
427
+ const hasAriaLabel = $2.get(resolvedAriaLabel) !== undefined;
428
+ const hasAriaLabelledBy = $2.get(resolvedAriaLabelledBy) !== undefined;
429
+ if (!hasLabel && !hasChildren && !hasAriaLabel && !hasAriaLabelledBy) {
430
+ devWarn("[cinder/Button] rendered without an accessible name — pass a non-empty `label`, `children`, `aria-label`, or `aria-labelledby`.");
431
+ }
432
+ if (iconOnly() && !hasAriaLabel && !hasAriaLabelledBy && !hasLabel) {
433
+ devWarn("[cinder/Button] iconOnly=true requires aria-label, aria-labelledby, or a non-empty label.");
434
+ }
435
+ if (iconOnly() && !$$props.leadingIcon && !$$props.trailingIcon && !$$props.children) {
436
+ devWarn("[cinder/Button] iconOnly=true requires a visible icon — pass leadingIcon, trailingIcon, or children.");
437
+ }
438
+ });
439
+ var fragment_4 = $2.comment();
440
+ var node_9 = $2.first_child(fragment_4);
441
+ {
442
+ var consequent_6 = ($$anchor2) => {
443
+ var a = root_9();
444
+ $2.attribute_effect(a, () => ({
445
+ ...anchorAttributes,
446
+ href: loading() ? undefined : $$props.href,
447
+ tabindex: loading() ? -1 : $2.get(anchorTabIndex),
448
+ class: $2.get(mergedClassName),
449
+ ...$2.get(dataAttributes),
450
+ "aria-disabled": $2.get(resolvedAriaDisabled),
451
+ "aria-busy": $2.get(resolvedAriaBusy),
452
+ "aria-label": $2.get(resolvedAriaLabel),
453
+ "aria-labelledby": $2.get(resolvedAriaLabelledBy),
454
+ "aria-expanded": $$props["aria-expanded"],
455
+ "aria-controls": $$props["aria-controls"],
456
+ "aria-haspopup": $$props["aria-haspopup"],
457
+ onclick: handleClick
458
+ }));
459
+ var node_10 = $2.child(a);
460
+ buttonContent(node_10);
461
+ $2.reset(a);
462
+ $2.append($$anchor2, a);
463
+ };
464
+ var alternate_1 = ($$anchor2) => {
465
+ var button = root_10();
466
+ $2.attribute_effect(button, () => ({
467
+ ...buttonAttributes,
468
+ type: $2.get(buttonType) ?? "button",
469
+ class: $2.get(mergedClassName),
470
+ ...$2.get(dataAttributes),
471
+ disabled: $2.get(buttonDisabled) || loading(),
472
+ "aria-disabled": $2.get(resolvedAriaDisabled),
473
+ "aria-busy": $2.get(resolvedAriaBusy),
474
+ "aria-label": $2.get(resolvedAriaLabel),
475
+ "aria-labelledby": $2.get(resolvedAriaLabelledBy),
476
+ "aria-expanded": $$props["aria-expanded"],
477
+ "aria-controls": $$props["aria-controls"],
478
+ "aria-haspopup": $$props["aria-haspopup"],
479
+ onclick: handleClick
480
+ }));
481
+ var node_11 = $2.child(button);
482
+ buttonContent(node_11);
483
+ $2.reset(button);
484
+ $2.append($$anchor2, button);
485
+ };
486
+ $2.if(node_9, ($$render) => {
487
+ if ($$props.href !== undefined)
488
+ $$render(consequent_6);
489
+ else
490
+ $$render(alternate_1, -1);
491
+ });
492
+ }
493
+ $2.append($$anchor, fragment_4);
494
+ $2.pop();
495
+ }
496
+
497
+ // src/components/button-group/button-group.svelte
498
+ import"svelte/internal/disclose-version";
499
+ import * as $4 from "svelte/internal/client";
500
+
501
+ // src/utilities/use-mutation-observer.svelte.ts
502
+ import * as $3 from "svelte/internal/client";
503
+ function useMutationObserver(onMutate, options = {}) {
504
+ const {
505
+ childList,
506
+ attributes,
507
+ characterData,
508
+ subtree,
509
+ attributeFilter,
510
+ attributeOldValue,
511
+ characterDataOldValue,
512
+ enabled = () => true
513
+ } = options;
514
+ const init = {};
515
+ if (childList !== undefined)
516
+ init.childList = childList;
517
+ if (attributes !== undefined)
518
+ init.attributes = attributes;
519
+ if (characterData !== undefined)
520
+ init.characterData = characterData;
521
+ if (subtree !== undefined)
522
+ init.subtree = subtree;
523
+ if (attributeFilter !== undefined)
524
+ init.attributeFilter = attributeFilter;
525
+ if (attributeOldValue !== undefined)
526
+ init.attributeOldValue = attributeOldValue;
527
+ if (characterDataOldValue !== undefined)
528
+ init.characterDataOldValue = characterDataOldValue;
529
+ if (init.childList === undefined && init.attributes === undefined && init.characterData === undefined) {
530
+ init.childList = true;
531
+ }
532
+ return (node) => {
533
+ if (typeof MutationObserver === "undefined") {
534
+ return () => {};
535
+ }
536
+ let observer = null;
537
+ const disconnectObserver = () => {
538
+ observer?.disconnect();
539
+ observer = null;
540
+ };
541
+ $3.user_effect(() => {
542
+ if (!enabled()) {
543
+ disconnectObserver();
544
+ return;
545
+ }
546
+ observer = new MutationObserver((mutations) => {
547
+ if (!enabled()) {
548
+ return;
549
+ }
550
+ onMutate(mutations);
551
+ });
552
+ observer.observe(node, init);
553
+ return () => {
554
+ disconnectObserver();
555
+ };
556
+ });
557
+ return () => {
558
+ disconnectObserver();
559
+ };
560
+ };
561
+ }
562
+
563
+ // src/components/button-group/button-group.svelte
564
+ var groupIdCounter = 0;
565
+ var root2 = $4.from_html(`<div><!></div>`);
566
+ function Button_group($$anchor, $$props) {
567
+ $4.push($$props, true);
568
+ let orientation = $4.prop($$props, "orientation", 3, "horizontal"), rest = $4.rest_props($$props, [
569
+ "$$slots",
570
+ "$$events",
571
+ "$$legacy",
572
+ "label",
573
+ "labelledBy",
574
+ "orientation",
575
+ "class",
576
+ "children"
577
+ ]);
578
+ const mergedClassName = $4.derived(() => classNames("cinder-button-group", $$props.class));
579
+ const ariaLabelAttribute = $4.derived(() => typeof $$props.label === "string" ? $$props.label : undefined);
580
+ const ariaLabelledByAttribute = $4.derived(() => typeof $$props.labelledBy === "string" ? $$props.labelledBy : undefined);
581
+ const groupId = String(++groupIdCounter);
582
+ const tagDirectChildren = (element) => {
583
+ const ATTR = "data-cinder-button-group-item";
584
+ const tagged = new Set;
585
+ const sync = () => {
586
+ const currentChildren = new Set(Array.from(element.children));
587
+ for (const child4 of currentChildren) {
588
+ child4.setAttribute(ATTR, groupId);
589
+ tagged.add(child4);
590
+ }
591
+ for (const previouslyTagged of Array.from(tagged)) {
592
+ if (!currentChildren.has(previouslyTagged)) {
593
+ if (previouslyTagged.getAttribute(ATTR) === groupId) {
594
+ previouslyTagged.removeAttribute(ATTR);
595
+ }
596
+ tagged.delete(previouslyTagged);
597
+ }
598
+ }
599
+ };
600
+ sync();
601
+ const detachObserver = useMutationObserver(sync, { childList: true })(element);
602
+ return () => {
603
+ detachObserver?.();
604
+ for (const child4 of Array.from(tagged)) {
605
+ if (child4.getAttribute(ATTR) === groupId) {
606
+ child4.removeAttribute(ATTR);
607
+ }
608
+ }
609
+ };
610
+ };
611
+ $4.user_effect(() => {
612
+ const hasLabel = typeof $$props.label === "string";
613
+ const hasLabelledBy = typeof $$props.labelledBy === "string";
614
+ if (!hasLabel && !hasLabelledBy) {
615
+ devWarn("[cinder/ButtonGroup] rendered without a non-empty accessible name — pass a non-empty 'label' or 'labelledBy'.");
616
+ return;
617
+ }
618
+ if (hasLabel && $$props.label.trim().length === 0) {
619
+ devWarn("[cinder/ButtonGroup] rendered without a non-empty accessible name — pass a non-empty 'label' or 'labelledBy'.");
620
+ }
621
+ if (hasLabelledBy && $$props.labelledBy.trim().length === 0) {
622
+ devWarn("[cinder/ButtonGroup] rendered without a non-empty accessible name — pass a non-empty 'label' or 'labelledBy'.");
623
+ }
624
+ });
625
+ var div = root2();
626
+ $4.attribute_effect(div, () => ({
627
+ ...rest,
628
+ role: "group",
629
+ "aria-label": $4.get(ariaLabelAttribute),
630
+ "aria-labelledby": $4.get(ariaLabelledByAttribute),
631
+ class: $4.get(mergedClassName),
632
+ "data-cinder-orientation": orientation()
633
+ }));
634
+ var node = $4.child(div);
635
+ $4.snippet(node, () => $$props.children);
636
+ $4.reset(div);
637
+ $4.attach(div, () => tagDirectChildren);
638
+ $4.append($$anchor, div);
639
+ $4.pop();
640
+ }
641
+
642
+ // src/components/card/card.svelte
643
+ import"svelte/internal/disclose-version";
644
+ import * as $5 from "svelte/internal/client";
645
+ var root_13 = $5.from_html(`<div class="cinder-card__header"><!></div>`);
646
+ var root_42 = $5.from_html(`<p class="cinder-card__description"> </p>`);
647
+ var root_23 = $5.from_html(`<div class="cinder-card__header"><!> <!></div>`);
648
+ var root_52 = $5.from_html(`<div class="cinder-card__footer"><!></div>`);
649
+ var root3 = $5.from_html(`<div><!> <div class="cinder-card__body"><!></div> <!></div>`);
650
+ function Card($$anchor, $$props) {
651
+ $5.push($$props, true);
652
+ let headingLevel = $5.prop($$props, "headingLevel", 3, 3), variant = $5.prop($$props, "variant", 3, "card"), bodyTone = $5.prop($$props, "bodyTone", 3, "default"), footerTone = $5.prop($$props, "footerTone", 3, "default"), edgeToEdgeOnMobile = $5.prop($$props, "edgeToEdgeOnMobile", 3, false), padding = $5.prop($$props, "padding", 3, "default"), rest = $5.rest_props($$props, [
653
+ "$$slots",
654
+ "$$events",
655
+ "$$legacy",
656
+ "class",
657
+ "children",
658
+ "header",
659
+ "title",
660
+ "headingLevel",
661
+ "description",
662
+ "footer",
663
+ "variant",
664
+ "bodyTone",
665
+ "footerTone",
666
+ "edgeToEdgeOnMobile",
667
+ "padding"
668
+ ]);
669
+ const resolvedHeadingLevel = $5.derived(() => Number.isFinite(Math.trunc(Number(headingLevel()))) ? Math.min(6, Math.max(1, Math.trunc(Number(headingLevel())))) : 3);
670
+ const titleTag = $5.derived(() => `h${$5.get(resolvedHeadingLevel)}`);
671
+ var div = root3();
672
+ $5.attribute_effect(div, ($0) => ({
673
+ class: $0,
674
+ "data-cinder-variant": variant(),
675
+ "data-cinder-edge-to-edge-mobile": edgeToEdgeOnMobile() ? "" : undefined,
676
+ ...rest
677
+ }), [() => classNames("cinder-card", $$props.class)]);
678
+ var node = $5.child(div);
679
+ {
680
+ var consequent = ($$anchor2) => {
681
+ var div_1 = root_13();
682
+ var node_1 = $5.child(div_1);
683
+ $5.snippet(node_1, () => $$props.header);
684
+ $5.reset(div_1);
685
+ $5.append($$anchor2, div_1);
686
+ };
687
+ var consequent_2 = ($$anchor2) => {
688
+ var div_2 = root_23();
689
+ var node_2 = $5.child(div_2);
690
+ $5.element(node_2, () => $5.get(titleTag), false, ($$element, $$anchor3) => {
691
+ $5.set_class($$element, 0, "cinder-card__title");
692
+ var text4 = $5.text();
693
+ $5.template_effect(() => $5.set_text(text4, $$props.title));
694
+ $5.append($$anchor3, text4);
695
+ });
696
+ var node_3 = $5.sibling(node_2, 2);
697
+ {
698
+ var consequent_1 = ($$anchor3) => {
699
+ var p = root_42();
700
+ var text_1 = $5.child(p, true);
701
+ $5.reset(p);
702
+ $5.template_effect(() => $5.set_text(text_1, $$props.description));
703
+ $5.append($$anchor3, p);
704
+ };
705
+ $5.if(node_3, ($$render) => {
706
+ if ($$props.description)
707
+ $$render(consequent_1);
708
+ });
709
+ }
710
+ $5.reset(div_2);
711
+ $5.append($$anchor2, div_2);
712
+ };
713
+ $5.if(node, ($$render) => {
714
+ if ($$props.header)
715
+ $$render(consequent);
716
+ else if ($$props.title)
717
+ $$render(consequent_2, 1);
718
+ });
719
+ }
720
+ var div_3 = $5.sibling(node, 2);
721
+ var node_4 = $5.child(div_3);
722
+ $5.snippet(node_4, () => $$props.children);
723
+ $5.reset(div_3);
724
+ var node_5 = $5.sibling(div_3, 2);
725
+ {
726
+ var consequent_3 = ($$anchor2) => {
727
+ var div_4 = root_52();
728
+ var node_6 = $5.child(div_4);
729
+ $5.snippet(node_6, () => $$props.footer);
730
+ $5.reset(div_4);
731
+ $5.template_effect(() => $5.set_attribute(div_4, "data-cinder-tone", footerTone()));
732
+ $5.append($$anchor2, div_4);
733
+ };
734
+ $5.if(node_5, ($$render) => {
735
+ if ($$props.footer)
736
+ $$render(consequent_3);
737
+ });
738
+ }
739
+ $5.reset(div);
740
+ $5.template_effect(() => {
741
+ $5.set_attribute(div_3, "data-cinder-tone", bodyTone());
742
+ $5.set_attribute(div_3, "data-cinder-padding", padding());
743
+ });
744
+ $5.append($$anchor, div);
745
+ $5.pop();
746
+ }
747
+
748
+ // src/components/code-block/code-block.svelte
749
+ import"svelte/internal/disclose-version";
750
+ import * as $11 from "svelte/internal/client";
751
+
752
+ // src/components/code-block/code-block-default-highlighter.ts
753
+ var loadShikiAdapterModule = createRetryingLoaderCache(() => Promise.resolve().then(() => (init_shiki(), exports_shiki)));
754
+ var defaultHighlighter;
755
+ async function loadDefaultHighlighter() {
756
+ if (defaultHighlighter !== undefined)
757
+ return defaultHighlighter;
758
+ const module_ = await loadShikiAdapterModule();
759
+ defaultHighlighter ??= module_.shikiHighlighter();
760
+ return defaultHighlighter;
761
+ }
762
+
763
+ // src/components/copy-button/copy-button.svelte
764
+ import"svelte/internal/disclose-version";
765
+ import * as $10 from "svelte/internal/client";
766
+
767
+ // ../../node_modules/lucide-svelte/dist/icons/check.svelte
768
+ import"svelte/internal/disclose-version";
769
+ import"svelte/internal/flags/legacy";
770
+ import * as $7 from "svelte/internal/client";
771
+
772
+ // ../../node_modules/lucide-svelte/dist/Icon.svelte
773
+ import"svelte/internal/disclose-version";
774
+ import"svelte/internal/flags/legacy";
775
+ import * as $6 from "svelte/internal/client";
776
+
777
+ // ../../node_modules/lucide-svelte/dist/defaultAttributes.js
778
+ var defaultAttributes = {
779
+ xmlns: "http://www.w3.org/2000/svg",
780
+ width: 24,
781
+ height: 24,
782
+ viewBox: "0 0 24 24",
783
+ fill: "none",
784
+ stroke: "currentColor",
785
+ "stroke-width": 2,
786
+ "stroke-linecap": "round",
787
+ "stroke-linejoin": "round"
788
+ };
789
+ var defaultAttributes_default = defaultAttributes;
790
+
791
+ // ../../node_modules/lucide-svelte/dist/Icon.svelte
792
+ var root4 = $6.from_svg(`<svg><!><!></svg>`);
793
+ function Icon($$anchor, $$props) {
794
+ const $$sanitized_props = $6.legacy_rest_props($$props, ["children", "$$slots", "$$events", "$$legacy"]);
795
+ const $$restProps = $6.legacy_rest_props($$sanitized_props, [
796
+ "name",
797
+ "color",
798
+ "size",
799
+ "strokeWidth",
800
+ "absoluteStrokeWidth",
801
+ "iconNode"
802
+ ]);
803
+ $6.push($$props, false);
804
+ let name = $6.prop($$props, "name", 8, undefined);
805
+ let color = $6.prop($$props, "color", 8, "currentColor");
806
+ let size = $6.prop($$props, "size", 8, 24);
807
+ let strokeWidth = $6.prop($$props, "strokeWidth", 8, 2);
808
+ let absoluteStrokeWidth = $6.prop($$props, "absoluteStrokeWidth", 8, false);
809
+ let iconNode = $6.prop($$props, "iconNode", 24, () => []);
810
+ const mergeClasses = (...classes) => classes.filter((className, index2, array) => {
811
+ return Boolean(className) && array.indexOf(className) === index2;
812
+ }).join(" ");
813
+ $6.init();
814
+ var svg = root4();
815
+ $6.attribute_effect(svg, ($0, $1) => ({
816
+ ...defaultAttributes_default,
817
+ ...$$restProps,
818
+ width: size(),
819
+ height: size(),
820
+ stroke: color(),
821
+ "stroke-width": $0,
822
+ class: $1
823
+ }), [
824
+ () => ($6.deep_read_state(absoluteStrokeWidth()), $6.deep_read_state(strokeWidth()), $6.deep_read_state(size()), $6.untrack(() => absoluteStrokeWidth() ? Number(strokeWidth()) * 24 / Number(size()) : strokeWidth())),
825
+ () => ($6.deep_read_state(name()), $6.deep_read_state($$sanitized_props), $6.untrack(() => mergeClasses("lucide-icon", "lucide", name() ? `lucide-${name()}` : "", $$sanitized_props.class)))
826
+ ]);
827
+ var node = $6.child(svg);
828
+ $6.each(node, 1, iconNode, $6.index, ($$anchor2, $$item) => {
829
+ var $$array = $6.derived(() => $6.to_array($6.get($$item), 2));
830
+ let tag = () => $6.get($$array)[0];
831
+ let attrs = () => $6.get($$array)[1];
832
+ var fragment = $6.comment();
833
+ var node_1 = $6.first_child(fragment);
834
+ $6.element(node_1, tag, true, ($$element, $$anchor3) => {
835
+ $6.attribute_effect($$element, () => ({ ...attrs() }));
836
+ });
837
+ $6.append($$anchor2, fragment);
838
+ });
839
+ var node_2 = $6.sibling(node);
840
+ $6.slot(node_2, $$props, "default", {}, null);
841
+ $6.reset(svg);
842
+ $6.append($$anchor, svg);
843
+ $6.pop();
844
+ }
845
+
846
+ // ../../node_modules/lucide-svelte/dist/icons/check.svelte
847
+ function Check($$anchor, $$props) {
848
+ const $$sanitized_props = $7.legacy_rest_props($$props, ["children", "$$slots", "$$events", "$$legacy"]);
849
+ const iconNode = [["path", { d: "M20 6 9 17l-5-5" }]];
850
+ Icon($$anchor, $7.spread_props({ name: "check" }, () => $$sanitized_props, {
851
+ get iconNode() {
852
+ return iconNode;
853
+ },
854
+ children: ($$anchor2, $$slotProps) => {
855
+ var fragment_1 = $7.comment();
856
+ var node = $7.first_child(fragment_1);
857
+ $7.slot(node, $$props, "default", {}, null);
858
+ $7.append($$anchor2, fragment_1);
859
+ },
860
+ $$slots: { default: true }
861
+ }));
862
+ }
863
+ // ../../node_modules/lucide-svelte/dist/icons/copy.svelte
864
+ import"svelte/internal/disclose-version";
865
+ import"svelte/internal/flags/legacy";
866
+ import * as $8 from "svelte/internal/client";
867
+ function Copy($$anchor, $$props) {
868
+ const $$sanitized_props = $8.legacy_rest_props($$props, ["children", "$$slots", "$$events", "$$legacy"]);
869
+ const iconNode = [
870
+ [
871
+ "rect",
872
+ {
873
+ width: "14",
874
+ height: "14",
875
+ x: "8",
876
+ y: "8",
877
+ rx: "2",
878
+ ry: "2"
879
+ }
880
+ ],
881
+ [
882
+ "path",
883
+ {
884
+ d: "M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2"
885
+ }
886
+ ]
887
+ ];
888
+ Icon($$anchor, $8.spread_props({ name: "copy" }, () => $$sanitized_props, {
889
+ get iconNode() {
890
+ return iconNode;
891
+ },
892
+ children: ($$anchor2, $$slotProps) => {
893
+ var fragment_1 = $8.comment();
894
+ var node = $8.first_child(fragment_1);
895
+ $8.slot(node, $$props, "default", {}, null);
896
+ $8.append($$anchor2, fragment_1);
897
+ },
898
+ $$slots: { default: true }
899
+ }));
900
+ }
901
+ // src/utilities/clipboard.ts
902
+ async function copyToClipboard(text4) {
903
+ if (typeof navigator !== "undefined" && navigator.clipboard?.writeText) {
904
+ try {
905
+ await navigator.clipboard.writeText(text4);
906
+ return true;
907
+ } catch {}
908
+ }
909
+ return legacyCopy(text4);
910
+ }
911
+ function legacyCopy(text4) {
912
+ if (typeof document === "undefined")
913
+ return false;
914
+ const textarea = document.createElement("textarea");
915
+ textarea.value = text4;
916
+ textarea.setAttribute("readonly", "");
917
+ textarea.setAttribute("aria-hidden", "true");
918
+ textarea.setAttribute("tabindex", "-1");
919
+ textarea.style.position = "absolute";
920
+ textarea.style.left = "-9999px";
921
+ document.body.appendChild(textarea);
922
+ textarea.select();
923
+ let succeeded = false;
924
+ try {
925
+ succeeded = document.execCommand("copy");
926
+ } catch {
927
+ succeeded = false;
928
+ }
929
+ textarea.remove();
930
+ return succeeded;
931
+ }
932
+
933
+ // src/components/_visually-hidden-live-region.svelte
934
+ import"svelte/internal/disclose-version";
935
+ import * as $9 from "svelte/internal/client";
936
+ var root5 = $9.from_html(`<div aria-atomic="true"> </div>`);
937
+ function _visually_hidden_live_region($$anchor, $$props) {
938
+ $9.push($$props, true);
939
+ let message = $9.prop($$props, "message", 3, ""), announcementSequence = $9.prop($$props, "announcementSequence", 3, 0), priority = $9.prop($$props, "priority", 3, "polite");
940
+ let rendered = $9.state("");
941
+ let setTimeoutId = null;
942
+ let version = 0;
943
+ let isDestroyed = false;
944
+ $9.user_effect(() => {
945
+ return () => {
946
+ isDestroyed = true;
947
+ if (setTimeoutId) {
948
+ clearTimeout(setTimeoutId);
949
+ setTimeoutId = null;
950
+ }
951
+ };
952
+ });
953
+ $9.user_effect(() => {
954
+ const next = message();
955
+ announcementSequence();
956
+ const current = ++version;
957
+ if (setTimeoutId) {
958
+ clearTimeout(setTimeoutId);
959
+ setTimeoutId = null;
960
+ }
961
+ $9.set(rendered, "");
962
+ if (next === "")
963
+ return;
964
+ setTimeoutId = setTimeout(() => {
965
+ if (isDestroyed || version !== current)
966
+ return;
967
+ $9.set(rendered, next, true);
968
+ setTimeoutId = null;
969
+ }, 0);
970
+ });
971
+ var div = root5();
972
+ var text4 = $9.child(div, true);
973
+ $9.reset(div);
974
+ $9.template_effect(($0) => {
975
+ $9.set_attribute(div, "role", priority() === "assertive" ? "alert" : "status");
976
+ $9.set_attribute(div, "aria-live", priority() === "assertive" ? "assertive" : "polite");
977
+ $9.set_class(div, 1, $0);
978
+ $9.set_text(text4, $9.get(rendered));
979
+ }, [() => $9.clsx(classNames("cinder-sr-only", $$props.class))]);
980
+ $9.append($$anchor, div);
981
+ $9.pop();
982
+ }
983
+
984
+ // src/components/copy-button/copy-button.svelte
985
+ var root6 = $10.from_html(`<button><!></button> <!>`, 1);
986
+ function Copy_button($$anchor, $$props) {
987
+ $10.push($$props, true);
988
+ let confirmDuration = $10.prop($$props, "confirmDuration", 3, 1500), iconOnly = $10.prop($$props, "iconOnly", 3, false), rest = $10.rest_props($$props, [
989
+ "$$slots",
990
+ "$$events",
991
+ "$$legacy",
992
+ "value",
993
+ "confirmDuration",
994
+ "label",
995
+ "copiedLabel",
996
+ "iconOnly",
997
+ "class",
998
+ "children",
999
+ "confirmation"
1000
+ ]);
1001
+ let copied = $10.state(false);
1002
+ let resetTimer;
1003
+ const copiedAnnouncement = $10.derived(() => $10.get(copied) ? $$props.copiedLabel ?? "Copied" : "");
1004
+ async function handleClick() {
1005
+ const ok = await copyToClipboard($$props.value);
1006
+ if (!ok)
1007
+ return;
1008
+ $10.set(copied, true);
1009
+ if (resetTimer)
1010
+ clearTimeout(resetTimer);
1011
+ resetTimer = setTimeout(() => {
1012
+ $10.set(copied, false);
1013
+ }, confirmDuration());
1014
+ }
1015
+ $10.user_effect(() => {
1016
+ return () => {
1017
+ if (resetTimer)
1018
+ clearTimeout(resetTimer);
1019
+ };
1020
+ });
1021
+ var fragment = root6();
1022
+ var button = $10.first_child(fragment);
1023
+ $10.attribute_effect(button, ($0) => ({
1024
+ ...rest,
1025
+ type: "button",
1026
+ "data-cinder-copied": $10.get(copied) || undefined,
1027
+ "aria-label": $$props.label ?? "Copy to clipboard",
1028
+ onclick: handleClick,
1029
+ class: $0
1030
+ }), [() => classNames("cinder-copy-button", $$props.class)]);
1031
+ var node = $10.child(button);
1032
+ {
1033
+ var consequent = ($$anchor2) => {
1034
+ var fragment_1 = $10.comment();
1035
+ var node_1 = $10.first_child(fragment_1);
1036
+ $10.snippet(node_1, () => $$props.confirmation);
1037
+ $10.append($$anchor2, fragment_1);
1038
+ };
1039
+ var consequent_1 = ($$anchor2) => {
1040
+ Check($$anchor2, { class: "icon-sm", "aria-hidden": "true" });
1041
+ };
1042
+ var consequent_2 = ($$anchor2) => {
1043
+ var text5 = $10.text("Copied");
1044
+ $10.append($$anchor2, text5);
1045
+ };
1046
+ var consequent_3 = ($$anchor2) => {
1047
+ var fragment_3 = $10.comment();
1048
+ var node_2 = $10.first_child(fragment_3);
1049
+ $10.snippet(node_2, () => $$props.children);
1050
+ $10.append($$anchor2, fragment_3);
1051
+ };
1052
+ var consequent_4 = ($$anchor2) => {
1053
+ Copy($$anchor2, { class: "icon-sm", "aria-hidden": "true" });
1054
+ };
1055
+ var alternate = ($$anchor2) => {
1056
+ var text_1 = $10.text("Copy");
1057
+ $10.append($$anchor2, text_1);
1058
+ };
1059
+ $10.if(node, ($$render) => {
1060
+ if ($10.get(copied) && $$props.confirmation)
1061
+ $$render(consequent);
1062
+ else if ($10.get(copied) && iconOnly())
1063
+ $$render(consequent_1, 1);
1064
+ else if ($10.get(copied))
1065
+ $$render(consequent_2, 2);
1066
+ else if ($$props.children)
1067
+ $$render(consequent_3, 3);
1068
+ else if (iconOnly())
1069
+ $$render(consequent_4, 4);
1070
+ else
1071
+ $$render(alternate, -1);
1072
+ });
1073
+ }
1074
+ $10.reset(button);
1075
+ var node_3 = $10.sibling(button, 2);
1076
+ _visually_hidden_live_region(node_3, {
1077
+ get message() {
1078
+ return $10.get(copiedAnnouncement);
1079
+ }
1080
+ });
1081
+ $10.append($$anchor, fragment);
1082
+ $10.pop();
1083
+ }
1084
+
1085
+ // src/components/code-block/code-block.svelte
1086
+ var root_24 = $11.from_html(`<span class="cinder-code-block__language"> </span>`);
1087
+ var root_14 = $11.from_html(`<header class="cinder-code-block__header"><!> <!></header>`);
1088
+ var root_43 = $11.from_html(`<pre class="cinder-code-block__pre"><code class="cinder-code-block__code"> </code></pre>`);
1089
+ var root_6 = $11.from_html(`<div class="cinder-code-block__highlighted"></div>`);
1090
+ var root_7 = $11.from_html(`<pre class="cinder-code-block__pre"><code class="cinder-code-block__code"> </code></pre>`);
1091
+ var root7 = $11.from_html(`<div><!> <div class="cinder-code-block__viewport" tabindex="0"><!></div></div>`);
1092
+ function Code_block($$anchor, $$props) {
1093
+ $11.push($$props, true);
1094
+ let copyable = $11.prop($$props, "copyable", 3, false);
1095
+ let highlighted = $11.state(null);
1096
+ $11.user_effect(() => {
1097
+ if ($$props.highlight === false || !$$props.language) {
1098
+ $11.set(highlighted, null);
1099
+ return;
1100
+ }
1101
+ const pendingCode = $$props.code;
1102
+ const pendingLanguage = $$props.language;
1103
+ const explicitHighlighter = $$props.highlighter;
1104
+ $11.set(highlighted, null);
1105
+ let cancelled = false;
1106
+ (async () => {
1107
+ try {
1108
+ const resolvedHighlighter = explicitHighlighter ?? await loadDefaultHighlighter();
1109
+ if (cancelled)
1110
+ return;
1111
+ const html2 = await resolvedHighlighter(pendingCode, pendingLanguage);
1112
+ if (!cancelled)
1113
+ $11.set(highlighted, html2 === "" ? null : html2, true);
1114
+ } catch (error) {
1115
+ if (!cancelled)
1116
+ $11.set(highlighted, null);
1117
+ const detail = error instanceof Error ? `${error.name}: ${error.message}` : String(error);
1118
+ devWarn(`[cinder/CodeBlock] highlight failed for language "${pendingLanguage}":`, detail);
1119
+ }
1120
+ })();
1121
+ return () => {
1122
+ cancelled = true;
1123
+ };
1124
+ });
1125
+ var div = root7();
1126
+ var node = $11.child(div);
1127
+ {
1128
+ var consequent_2 = ($$anchor2) => {
1129
+ var header = root_14();
1130
+ var node_1 = $11.child(header);
1131
+ {
1132
+ var consequent = ($$anchor3) => {
1133
+ var span = root_24();
1134
+ var text5 = $11.child(span, true);
1135
+ $11.reset(span);
1136
+ $11.template_effect(() => $11.set_text(text5, $$props.language));
1137
+ $11.append($$anchor3, span);
1138
+ };
1139
+ $11.if(node_1, ($$render) => {
1140
+ if ($$props.language)
1141
+ $$render(consequent);
1142
+ });
1143
+ }
1144
+ var node_2 = $11.sibling(node_1, 2);
1145
+ {
1146
+ var consequent_1 = ($$anchor3) => {
1147
+ Copy_button($$anchor3, {
1148
+ get value() {
1149
+ return $$props.code;
1150
+ },
1151
+ class: "cinder-code-block__copy",
1152
+ label: "Copy code",
1153
+ copiedLabel: "Code copied",
1154
+ iconOnly: true
1155
+ });
1156
+ };
1157
+ $11.if(node_2, ($$render) => {
1158
+ if (copyable())
1159
+ $$render(consequent_1);
1160
+ });
1161
+ }
1162
+ $11.reset(header);
1163
+ $11.append($$anchor2, header);
1164
+ };
1165
+ $11.if(node, ($$render) => {
1166
+ if ($$props.language || copyable())
1167
+ $$render(consequent_2);
1168
+ });
1169
+ }
1170
+ var div_1 = $11.sibling(node, 2);
1171
+ var node_3 = $11.child(div_1);
1172
+ {
1173
+ const failed = ($$anchor2) => {
1174
+ var pre = root_43();
1175
+ var code_1 = $11.child(pre);
1176
+ var text_1 = $11.child(code_1, true);
1177
+ $11.reset(code_1);
1178
+ $11.reset(pre);
1179
+ $11.template_effect(() => $11.set_text(text_1, $$props.code));
1180
+ $11.append($$anchor2, pre);
1181
+ };
1182
+ $11.boundary(node_3, { failed }, ($$anchor2) => {
1183
+ var fragment_1 = $11.comment();
1184
+ var node_4 = $11.first_child(fragment_1);
1185
+ {
1186
+ var consequent_3 = ($$anchor3) => {
1187
+ var div_2 = root_6();
1188
+ $11.html(div_2, () => $11.get(highlighted), true);
1189
+ $11.reset(div_2);
1190
+ $11.append($$anchor3, div_2);
1191
+ };
1192
+ var alternate = ($$anchor3) => {
1193
+ var pre_1 = root_7();
1194
+ var code_2 = $11.child(pre_1);
1195
+ var text_2 = $11.child(code_2, true);
1196
+ $11.reset(code_2);
1197
+ $11.reset(pre_1);
1198
+ $11.template_effect(() => $11.set_text(text_2, $$props.code));
1199
+ $11.append($$anchor3, pre_1);
1200
+ };
1201
+ $11.if(node_4, ($$render) => {
1202
+ if ($11.get(highlighted) !== null)
1203
+ $$render(consequent_3);
1204
+ else
1205
+ $$render(alternate, -1);
1206
+ });
1207
+ }
1208
+ $11.append($$anchor2, fragment_1);
1209
+ });
1210
+ }
1211
+ $11.reset(div_1);
1212
+ $11.reset(div);
1213
+ $11.template_effect(($0) => $11.set_class(div, 1, $0), [() => $11.clsx(classNames("cinder-code-block", $$props.class))]);
1214
+ $11.append($$anchor, div);
1215
+ $11.pop();
1216
+ }
1217
+
1218
+ // src/components/payload-inspector/payload-inspector.svelte
1219
+ import"svelte/internal/disclose-version";
1220
+ import * as $19 from "svelte/internal/client";
1221
+
1222
+ // src/components/description-list/description-list.svelte
1223
+ import"svelte/internal/disclose-version";
1224
+ import * as $12 from "svelte/internal/client";
1225
+ var root_25 = $12.from_html(`<div class="cinder-description-list__actions"><!></div>`);
1226
+ var root_15 = $12.from_html(`<div class="cinder-description-list__row"><dt> </dt> <dd><div class="cinder-description-list__definition"> </div> <!></dd></div>`);
1227
+ var root8 = $12.from_html(`<dl></dl>`);
1228
+ function Description_list($$anchor, $$props) {
1229
+ $12.push($$props, true);
1230
+ let variant = $12.prop($$props, "variant", 3, "default"), rest = $12.rest_props($$props, [
1231
+ "$$slots",
1232
+ "$$events",
1233
+ "$$legacy",
1234
+ "items",
1235
+ "variant",
1236
+ "class",
1237
+ "actions"
1238
+ ]);
1239
+ const duplicateKey = $12.derived(() => {
1240
+ const seen = new Set;
1241
+ for (const item of $$props.items) {
1242
+ const key = item.id ?? item.term;
1243
+ if (seen.has(key))
1244
+ return key;
1245
+ seen.add(key);
1246
+ }
1247
+ return;
1248
+ });
1249
+ let lastWarnedDuplicateKey;
1250
+ $12.user_effect(() => {
1251
+ if ($12.get(duplicateKey) === undefined) {
1252
+ lastWarnedDuplicateKey = undefined;
1253
+ return;
1254
+ }
1255
+ if ($12.get(duplicateKey) !== lastWarnedDuplicateKey) {
1256
+ lastWarnedDuplicateKey = $12.get(duplicateKey);
1257
+ devWarn(`[cinder/DescriptionList] Duplicate key "${$12.get(duplicateKey)}". Two items share a term and no \`id\`. Provide a unique \`id\` on each DescriptionListItem to avoid broken reconciliation.`);
1258
+ }
1259
+ });
1260
+ var dl = root8();
1261
+ $12.attribute_effect(dl, ($0) => ({ ...rest, class: $0, "data-cinder-variant": variant() }), [() => classNames("cinder-description-list", $$props.class)]);
1262
+ $12.each(dl, 21, () => $$props.items, (item) => item.id ?? item.term, ($$anchor2, item) => {
1263
+ var div = root_15();
1264
+ var dt = $12.child(div);
1265
+ var text5 = $12.child(dt, true);
1266
+ $12.reset(dt);
1267
+ var dd = $12.sibling(dt, 2);
1268
+ var div_1 = $12.child(dd);
1269
+ var text_1 = $12.child(div_1, true);
1270
+ $12.reset(div_1);
1271
+ var node = $12.sibling(div_1, 2);
1272
+ {
1273
+ var consequent = ($$anchor3) => {
1274
+ var div_2 = root_25();
1275
+ var node_1 = $12.child(div_2);
1276
+ $12.snippet(node_1, () => $$props.actions, () => $12.get(item));
1277
+ $12.reset(div_2);
1278
+ $12.append($$anchor3, div_2);
1279
+ };
1280
+ $12.if(node, ($$render) => {
1281
+ if ($$props.actions)
1282
+ $$render(consequent);
1283
+ });
1284
+ }
1285
+ $12.reset(dd);
1286
+ $12.reset(div);
1287
+ $12.template_effect(() => {
1288
+ $12.set_class(dt, 1, $12.clsx(variant() === "narrow" ? "cinder-sr-only" : undefined));
1289
+ $12.set_text(text5, $12.get(item).term);
1290
+ $12.set_text(text_1, $12.get(item).definition);
1291
+ });
1292
+ $12.append($$anchor2, div);
1293
+ });
1294
+ $12.reset(dl);
1295
+ $12.append($$anchor, dl);
1296
+ $12.pop();
1297
+ }
1298
+
1299
+ // src/components/json-viewer/json-viewer.svelte
1300
+ import"svelte/internal/disclose-version";
1301
+ import * as $14 from "svelte/internal/client";
1302
+
1303
+ // src/components/json-viewer/_json-viewer-node.svelte
1304
+ import"svelte/internal/disclose-version";
1305
+ import * as $13 from "svelte/internal/client";
1306
+ import { untrack as untrack2 } from "svelte";
1307
+ var root_33 = $13.from_html(`<span class="cinder-json-viewer__key"> </span>`);
1308
+ var root_44 = $13.from_html(`<span class="cinder-json-viewer__summary"> </span> <span class="cinder-json-viewer__brace"> </span>`, 1);
1309
+ var root_62 = $13.from_html(`<li role="none"><!></li>`);
1310
+ var root_53 = $13.from_html(`<ul class="cinder-json-viewer__children" role="group"></ul> <span class="cinder-json-viewer__brace"> </span>`, 1);
1311
+ var root_26 = $13.from_html(`<span role="treeitem"><button type="button" class="cinder-json-viewer__toggle" tabindex="-1"><!> <span class="cinder-json-viewer__caret"></span> <span class="cinder-json-viewer__brace"> </span> <!></button> <!></span>`);
1312
+ var root_82 = $13.from_html(`<span class="cinder-json-viewer__key"> </span>`);
1313
+ var root_72 = $13.from_html(`<span class="cinder-json-viewer__node" role="treeitem"><!> <span class="cinder-json-viewer__too-deep">…</span></span>`);
1314
+ var root_102 = $13.from_html(`<span class="cinder-json-viewer__key"> </span>`);
1315
+ var root_92 = $13.from_html(`<span class="cinder-json-viewer__node" role="treeitem"><!> <span class="cinder-json-viewer__value"><!></span></span>`);
1316
+ function _json_viewer_node($$anchor, $$props) {
1317
+ $13.push($$props, true);
1318
+ let root9 = $13.prop($$props, "root", 3, false);
1319
+ const isObject = $13.derived(() => $$props.value !== null && typeof $$props.value === "object");
1320
+ const isArray = $13.derived(() => Array.isArray($$props.value));
1321
+ const tooDeep = $13.derived(() => $$props.depth >= $$props.maxDepth);
1322
+ let collapsed = $13.state($13.proxy(untrack2(() => $$props.depth >= $$props.initialDepth)));
1323
+ const entries = $13.derived(() => {
1324
+ if (!$13.get(isObject) || $13.get(tooDeep))
1325
+ return [];
1326
+ if ($13.get(isArray)) {
1327
+ return $$props.value.map((item, i) => [i, item]);
1328
+ }
1329
+ return Object.entries($$props.value);
1330
+ });
1331
+ const itemCount = $13.derived(() => $13.get(entries).length);
1332
+ const collectionLabel = $13.derived(() => `${$13.get(isArray) ? "array" : "object"}, ${$13.get(itemCount)} ${$13.get(itemCount) === 1 ? "item" : "items"}`);
1333
+ const toggleLabel = $13.derived(() => $$props.keyName === undefined ? $13.get(collectionLabel) : `${$$props.keyName}: ${$13.get(collectionLabel)}`);
1334
+ function valueClass(v) {
1335
+ if (v === null)
1336
+ return "null";
1337
+ if (typeof v === "string")
1338
+ return "string";
1339
+ if (typeof v === "number")
1340
+ return "number";
1341
+ if (typeof v === "boolean")
1342
+ return "boolean";
1343
+ return "unknown";
1344
+ }
1345
+ var fragment = $13.comment();
1346
+ var node = $13.first_child(fragment);
1347
+ {
1348
+ var consequent_3 = ($$anchor2) => {
1349
+ var span = root_26();
1350
+ var button = $13.child(span);
1351
+ var node_1 = $13.child(button);
1352
+ {
1353
+ var consequent = ($$anchor3) => {
1354
+ var span_1 = root_33();
1355
+ var text6 = $13.child(span_1);
1356
+ $13.reset(span_1);
1357
+ $13.template_effect(() => $13.set_text(text6, `${$$props.keyName ?? ""}:`));
1358
+ $13.append($$anchor3, span_1);
1359
+ };
1360
+ $13.if(node_1, ($$render) => {
1361
+ if ($$props.keyName !== undefined)
1362
+ $$render(consequent);
1363
+ });
1364
+ }
1365
+ var span_2 = $13.sibling(node_1, 2);
1366
+ var span_3 = $13.sibling(span_2, 2);
1367
+ var text_1 = $13.child(span_3, true);
1368
+ $13.reset(span_3);
1369
+ var node_2 = $13.sibling(span_3, 2);
1370
+ {
1371
+ var consequent_1 = ($$anchor3) => {
1372
+ var fragment_1 = root_44();
1373
+ var span_4 = $13.first_child(fragment_1);
1374
+ var text_2 = $13.child(span_4);
1375
+ $13.reset(span_4);
1376
+ var span_5 = $13.sibling(span_4, 2);
1377
+ var text_3 = $13.child(span_5, true);
1378
+ $13.reset(span_5);
1379
+ $13.template_effect(() => {
1380
+ $13.set_text(text_2, `${$13.get(itemCount) ?? ""} ${$13.get(itemCount) === 1 ? "item" : "items"}`);
1381
+ $13.set_text(text_3, $13.get(isArray) ? "]" : "}");
1382
+ });
1383
+ $13.append($$anchor3, fragment_1);
1384
+ };
1385
+ $13.if(node_2, ($$render) => {
1386
+ if ($13.get(collapsed))
1387
+ $$render(consequent_1);
1388
+ });
1389
+ }
1390
+ $13.reset(button);
1391
+ var node_3 = $13.sibling(button, 2);
1392
+ {
1393
+ var consequent_2 = ($$anchor3) => {
1394
+ var fragment_2 = root_53();
1395
+ var ul = $13.first_child(fragment_2);
1396
+ $13.each(ul, 23, () => $13.get(entries), ([k, v]) => k, ($$anchor4, $$item, index2) => {
1397
+ var $$array = $13.derived(() => $13.to_array($13.get($$item), 2));
1398
+ let k = () => $13.get($$array)[0];
1399
+ let v = () => $13.get($$array)[1];
1400
+ var li = root_62();
1401
+ var node_4 = $13.child(li);
1402
+ {
1403
+ let $0 = $13.derived(() => $$props.depth + 1);
1404
+ let $1 = $13.derived(() => $13.get(index2) + 1);
1405
+ _json_viewer_node(node_4, {
1406
+ get value() {
1407
+ return v();
1408
+ },
1409
+ get keyName() {
1410
+ return k();
1411
+ },
1412
+ get depth() {
1413
+ return $13.get($0);
1414
+ },
1415
+ get initialDepth() {
1416
+ return $$props.initialDepth;
1417
+ },
1418
+ get maxDepth() {
1419
+ return $$props.maxDepth;
1420
+ },
1421
+ get position() {
1422
+ return $13.get($1);
1423
+ },
1424
+ get setSize() {
1425
+ return $13.get(entries).length;
1426
+ }
1427
+ });
1428
+ }
1429
+ $13.reset(li);
1430
+ $13.append($$anchor4, li);
1431
+ });
1432
+ $13.reset(ul);
1433
+ var span_6 = $13.sibling(ul, 2);
1434
+ var text_4 = $13.child(span_6, true);
1435
+ $13.reset(span_6);
1436
+ $13.template_effect(() => $13.set_text(text_4, $13.get(isArray) ? "]" : "}"));
1437
+ $13.append($$anchor3, fragment_2);
1438
+ };
1439
+ $13.if(node_3, ($$render) => {
1440
+ if (!$13.get(collapsed))
1441
+ $$render(consequent_2);
1442
+ });
1443
+ }
1444
+ $13.reset(span);
1445
+ $13.template_effect(($0) => {
1446
+ $13.set_class(span, 1, $0);
1447
+ $13.set_attribute(span, "aria-expanded", !$13.get(collapsed));
1448
+ $13.set_attribute(span, "aria-label", $13.get(toggleLabel));
1449
+ $13.set_attribute(span, "aria-level", $$props.depth + 1);
1450
+ $13.set_attribute(span, "aria-posinset", $$props.position);
1451
+ $13.set_attribute(span, "aria-setsize", $$props.setSize);
1452
+ $13.set_attribute(span, "tabindex", root9() ? 0 : -1);
1453
+ $13.set_attribute(button, "aria-label", $13.get(toggleLabel));
1454
+ $13.set_attribute(span_2, "data-cinder-collapsed", $13.get(collapsed) || undefined);
1455
+ $13.set_text(text_1, $13.get(isArray) ? "[" : "{");
1456
+ }, [() => $13.clsx(classNames("cinder-json-viewer__node"))]);
1457
+ $13.delegated("click", button, () => $13.set(collapsed, !$13.get(collapsed)));
1458
+ $13.append($$anchor2, span);
1459
+ };
1460
+ var consequent_5 = ($$anchor2) => {
1461
+ var span_7 = root_72();
1462
+ var node_5 = $13.child(span_7);
1463
+ {
1464
+ var consequent_4 = ($$anchor3) => {
1465
+ var span_8 = root_82();
1466
+ var text_5 = $13.child(span_8);
1467
+ $13.reset(span_8);
1468
+ $13.template_effect(() => $13.set_text(text_5, `${$$props.keyName ?? ""}:`));
1469
+ $13.append($$anchor3, span_8);
1470
+ };
1471
+ $13.if(node_5, ($$render) => {
1472
+ if ($$props.keyName !== undefined)
1473
+ $$render(consequent_4);
1474
+ });
1475
+ }
1476
+ $13.next(2);
1477
+ $13.reset(span_7);
1478
+ $13.template_effect(() => {
1479
+ $13.set_attribute(span_7, "tabindex", root9() ? 0 : -1);
1480
+ $13.set_attribute(span_7, "aria-level", $$props.depth + 1);
1481
+ $13.set_attribute(span_7, "aria-posinset", $$props.position);
1482
+ $13.set_attribute(span_7, "aria-setsize", $$props.setSize);
1483
+ });
1484
+ $13.append($$anchor2, span_7);
1485
+ };
1486
+ var alternate_1 = ($$anchor2) => {
1487
+ var span_9 = root_92();
1488
+ var node_6 = $13.child(span_9);
1489
+ {
1490
+ var consequent_6 = ($$anchor3) => {
1491
+ var span_10 = root_102();
1492
+ var text_6 = $13.child(span_10);
1493
+ $13.reset(span_10);
1494
+ $13.template_effect(() => $13.set_text(text_6, `${$$props.keyName ?? ""}:`));
1495
+ $13.append($$anchor3, span_10);
1496
+ };
1497
+ $13.if(node_6, ($$render) => {
1498
+ if ($$props.keyName !== undefined)
1499
+ $$render(consequent_6);
1500
+ });
1501
+ }
1502
+ var span_11 = $13.sibling(node_6, 2);
1503
+ var node_7 = $13.child(span_11);
1504
+ {
1505
+ var consequent_7 = ($$anchor3) => {
1506
+ var text_7 = $13.text();
1507
+ $13.template_effect(() => $13.set_text(text_7, `"${$$props.value ?? ""}"`));
1508
+ $13.append($$anchor3, text_7);
1509
+ };
1510
+ var alternate = ($$anchor3) => {
1511
+ var text_8 = $13.text();
1512
+ $13.template_effect(($0) => $13.set_text(text_8, $0), [() => String($$props.value)]);
1513
+ $13.append($$anchor3, text_8);
1514
+ };
1515
+ $13.if(node_7, ($$render) => {
1516
+ if (typeof $$props.value === "string")
1517
+ $$render(consequent_7);
1518
+ else
1519
+ $$render(alternate, -1);
1520
+ });
1521
+ }
1522
+ $13.reset(span_11);
1523
+ $13.reset(span_9);
1524
+ $13.template_effect(($0) => {
1525
+ $13.set_attribute(span_9, "tabindex", root9() ? 0 : -1);
1526
+ $13.set_attribute(span_9, "aria-level", $$props.depth + 1);
1527
+ $13.set_attribute(span_9, "aria-posinset", $$props.position);
1528
+ $13.set_attribute(span_9, "aria-setsize", $$props.setSize);
1529
+ $13.set_attribute(span_11, "data-cinder-type", $0);
1530
+ }, [() => valueClass($$props.value)]);
1531
+ $13.append($$anchor2, span_9);
1532
+ };
1533
+ $13.if(node, ($$render) => {
1534
+ if ($13.get(isObject) && !$13.get(tooDeep))
1535
+ $$render(consequent_3);
1536
+ else if ($13.get(isObject) && $13.get(tooDeep))
1537
+ $$render(consequent_5, 1);
1538
+ else
1539
+ $$render(alternate_1, -1);
1540
+ });
1541
+ }
1542
+ $13.append($$anchor, fragment);
1543
+ $13.pop();
1544
+ }
1545
+ $13.delegate(["click"]);
1546
+
1547
+ // src/components/json-viewer/json-viewer.svelte
1548
+ var root_16 = $14.from_html(`<div class="cinder-json-viewer__fallback" role="status"><p>This value can't be serialized as JSON (it may contain a circular reference or a BigInt).</p> <p>Pass a plain JSON-serializable value, or use the consumer's download or copy action.</p></div>`);
1549
+ var root_27 = $14.from_html(`<div class="cinder-json-viewer__fallback" role="status"><p> </p> <p>Use the consumer's download or copy action to inspect the raw JSON.</p></div>`);
1550
+ var root_34 = $14.from_html(`<div role="tree" aria-label="JSON tree" tabindex="-1"><!></div>`);
1551
+ var root9 = $14.from_html(`<div><!></div>`);
1552
+ function Json_viewer($$anchor, $$props) {
1553
+ $14.push($$props, true);
1554
+ let initialDepth = $14.prop($$props, "initialDepth", 3, 1), maxDepth = $14.prop($$props, "maxDepth", 3, 50), maxBytes = $14.prop($$props, "maxBytes", 3, 1048576);
1555
+ const serialized = $14.derived(() => {
1556
+ try {
1557
+ const json = JSON.stringify($$props.value);
1558
+ if (typeof json !== "string")
1559
+ return { ok: false };
1560
+ return { ok: true, size: new Blob([json]).size };
1561
+ } catch {
1562
+ return { ok: false };
1563
+ }
1564
+ });
1565
+ const unserializable = $14.derived(() => !$14.get(serialized).ok);
1566
+ const tooLarge = $14.derived(() => $14.get(serialized).ok && $14.get(serialized).size > maxBytes());
1567
+ function handleTreeKeydown(event) {
1568
+ const tree = event.currentTarget;
1569
+ const items = Array.from(tree.querySelectorAll('[role="treeitem"]'));
1570
+ const eventTarget = event.target instanceof HTMLElement ? event.target : null;
1571
+ const current = eventTarget?.closest('[role="treeitem"]') ?? null;
1572
+ const targetIsToggle = eventTarget?.closest(".cinder-json-viewer__toggle") !== null;
1573
+ const currentIndex = current ? items.indexOf(current) : -1;
1574
+ function focusItem(index2) {
1575
+ const item = items[index2];
1576
+ item?.focus();
1577
+ }
1578
+ if (event.key === "ArrowDown") {
1579
+ event.preventDefault();
1580
+ focusItem(Math.min(currentIndex + 1, items.length - 1));
1581
+ } else if (event.key === "ArrowUp") {
1582
+ event.preventDefault();
1583
+ focusItem(Math.max(currentIndex - 1, 0));
1584
+ } else if (event.key === "Home") {
1585
+ event.preventDefault();
1586
+ focusItem(0);
1587
+ } else if (event.key === "End") {
1588
+ event.preventDefault();
1589
+ focusItem(items.length - 1);
1590
+ } else if (event.key === "ArrowRight" && current && !targetIsToggle) {
1591
+ if (current.getAttribute("aria-expanded") === "false") {
1592
+ event.preventDefault();
1593
+ current.querySelector(".cinder-json-viewer__toggle")?.click();
1594
+ } else if (current.getAttribute("aria-expanded") === "true") {
1595
+ const firstChild = current.querySelector('.cinder-json-viewer__children [role="treeitem"]');
1596
+ if (firstChild) {
1597
+ event.preventDefault();
1598
+ firstChild.focus();
1599
+ }
1600
+ }
1601
+ } else if (event.key === "ArrowLeft" && current && !targetIsToggle) {
1602
+ if (current.getAttribute("aria-expanded") === "true") {
1603
+ event.preventDefault();
1604
+ current.querySelector(".cinder-json-viewer__toggle")?.click();
1605
+ } else {
1606
+ const parent = current.parentElement?.closest('[role="treeitem"]');
1607
+ if (parent) {
1608
+ event.preventDefault();
1609
+ parent.focus();
1610
+ }
1611
+ }
1612
+ } else if ((event.key === "Enter" || event.key === " " || event.key === "Spacebar") && current && !targetIsToggle) {
1613
+ event.preventDefault();
1614
+ const toggle = current.querySelector(".cinder-json-viewer__toggle");
1615
+ toggle?.click();
1616
+ }
1617
+ }
1618
+ var div = root9();
1619
+ var node = $14.child(div);
1620
+ {
1621
+ var consequent = ($$anchor2) => {
1622
+ var div_1 = root_16();
1623
+ $14.append($$anchor2, div_1);
1624
+ };
1625
+ var consequent_1 = ($$anchor2) => {
1626
+ var div_2 = root_27();
1627
+ var p = $14.child(div_2);
1628
+ var text6 = $14.child(p);
1629
+ $14.reset(p);
1630
+ $14.next(2);
1631
+ $14.reset(div_2);
1632
+ $14.template_effect(($0, $1) => $14.set_text(text6, `Payload too large to render (~${$0 ?? ""} KB; cap
1633
+ is ${$1 ?? ""} KB).`), [
1634
+ () => Math.round(($14.get(serialized).ok ? $14.get(serialized).size : 0) / 1024),
1635
+ () => Math.round(maxBytes() / 1024)
1636
+ ]);
1637
+ $14.append($$anchor2, div_2);
1638
+ };
1639
+ var alternate = ($$anchor2) => {
1640
+ var div_3 = root_34();
1641
+ var node_1 = $14.child(div_3);
1642
+ _json_viewer_node(node_1, {
1643
+ get value() {
1644
+ return $$props.value;
1645
+ },
1646
+ depth: 0,
1647
+ get initialDepth() {
1648
+ return initialDepth();
1649
+ },
1650
+ get maxDepth() {
1651
+ return maxDepth();
1652
+ },
1653
+ position: 1,
1654
+ setSize: 1,
1655
+ root: true
1656
+ });
1657
+ $14.reset(div_3);
1658
+ $14.delegated("keydown", div_3, handleTreeKeydown);
1659
+ $14.append($$anchor2, div_3);
1660
+ };
1661
+ $14.if(node, ($$render) => {
1662
+ if ($14.get(unserializable))
1663
+ $$render(consequent);
1664
+ else if ($14.get(tooLarge))
1665
+ $$render(consequent_1, 1);
1666
+ else
1667
+ $$render(alternate, -1);
1668
+ });
1669
+ }
1670
+ $14.reset(div);
1671
+ $14.template_effect(($0) => $14.set_class(div, 1, $0), [
1672
+ () => $14.clsx(classNames("cinder-json-viewer", $$props.class))
1673
+ ]);
1674
+ $14.append($$anchor, div);
1675
+ $14.pop();
1676
+ }
1677
+ $14.delegate(["keydown"]);
1678
+
1679
+ // src/components/tabs/tabs.svelte
1680
+ import"svelte/internal/disclose-version";
1681
+ import * as $15 from "svelte/internal/client";
1682
+
1683
+ // src/components/tabs/tabs-context.ts
1684
+ import { createContext } from "svelte";
1685
+ var [getTabsContextStrict, setTabsContext] = createContext();
1686
+ var getTabsContext = getTabsContextStrict;
1687
+
1688
+ // src/utilities/roving-tabindex.ts
1689
+ var ROVING_KEYS = new Set(["ArrowLeft", "ArrowRight", "ArrowUp", "ArrowDown", "Home", "End"]);
1690
+ function isRovingKey(key) {
1691
+ return ROVING_KEYS.has(key);
1692
+ }
1693
+ function findNextIndex(currentIndex, length, direction, isDisabled) {
1694
+ if (length === 0)
1695
+ return -1;
1696
+ if (!isDisabled) {
1697
+ return (currentIndex + direction + length) % length;
1698
+ }
1699
+ for (let offset = 1;offset <= length; offset += 1) {
1700
+ const candidateIndex = (currentIndex + offset * direction + length * offset) % length;
1701
+ if (!isDisabled(candidateIndex)) {
1702
+ return candidateIndex;
1703
+ }
1704
+ }
1705
+ return currentIndex;
1706
+ }
1707
+ function findFirstIndex(length, isDisabled, currentIndex = 0) {
1708
+ if (length === 0)
1709
+ return -1;
1710
+ if (!isDisabled)
1711
+ return 0;
1712
+ for (let index2 = 0;index2 < length; index2 += 1) {
1713
+ if (!isDisabled(index2))
1714
+ return index2;
1715
+ }
1716
+ return currentIndex;
1717
+ }
1718
+ function findLastIndex(length, isDisabled, currentIndex = 0) {
1719
+ if (length === 0)
1720
+ return -1;
1721
+ if (!isDisabled)
1722
+ return length - 1;
1723
+ for (let index2 = length - 1;index2 >= 0; index2 -= 1) {
1724
+ if (!isDisabled(index2))
1725
+ return index2;
1726
+ }
1727
+ return currentIndex;
1728
+ }
1729
+ function handleRovingKeydown(event, currentIndex, length, options = {}) {
1730
+ const { isDisabled, vertical = true, horizontal = true } = options;
1731
+ if (length === 0)
1732
+ return null;
1733
+ switch (event.key) {
1734
+ case "ArrowRight":
1735
+ return horizontal ? findNextIndex(currentIndex, length, 1, isDisabled) : null;
1736
+ case "ArrowDown":
1737
+ return vertical ? findNextIndex(currentIndex, length, 1, isDisabled) : null;
1738
+ case "ArrowLeft":
1739
+ return horizontal ? findNextIndex(currentIndex, length, -1, isDisabled) : null;
1740
+ case "ArrowUp":
1741
+ return vertical ? findNextIndex(currentIndex, length, -1, isDisabled) : null;
1742
+ case "Home":
1743
+ return findFirstIndex(length, isDisabled, currentIndex);
1744
+ case "End":
1745
+ return findLastIndex(length, isDisabled, currentIndex);
1746
+ default:
1747
+ return null;
1748
+ }
1749
+ }
1750
+ function getFocusableIndex(selectedIndex, length, isDisabled) {
1751
+ if (length === 0)
1752
+ return -1;
1753
+ if (selectedIndex >= 0 && selectedIndex < length)
1754
+ return selectedIndex;
1755
+ return findFirstIndex(length, isDisabled, 0);
1756
+ }
1757
+
1758
+ // src/utilities/value-change.ts
1759
+ function commitValue(proposed, onValueChange, setValue) {
1760
+ const committed = onValueChange?.(proposed) ?? proposed;
1761
+ setValue(committed);
1762
+ return committed;
1763
+ }
1764
+
1765
+ // src/components/tabs/tabs.svelte
1766
+ var root10 = $15.from_html(`<div><!></div>`);
1767
+ function Tabs($$anchor, $$props) {
1768
+ const baseId = $15.props_id();
1769
+ $15.push($$props, true);
1770
+ let value = $15.prop($$props, "value", 15, ""), orientation = $15.prop($$props, "orientation", 3, "horizontal");
1771
+ const effectiveActivateOnFocus = $15.derived(() => $$props.activateOnFocus ?? orientation() === "horizontal");
1772
+ const buttons = new Map;
1773
+ let version = $15.state(0);
1774
+ const focusableValue = $15.derived(() => {
1775
+ $15.get(version);
1776
+ for (const [registeredValue, entry] of buttons) {
1777
+ if (!entry.disabled)
1778
+ return registeredValue;
1779
+ }
1780
+ return;
1781
+ });
1782
+ function focusValue(target) {
1783
+ const entry = buttons.get(target);
1784
+ if (entry)
1785
+ entry.button.focus();
1786
+ }
1787
+ function resolveFocusedIndex(active) {
1788
+ const entries = [...buttons.values()];
1789
+ return entries.findIndex(({ button }) => button === active);
1790
+ }
1791
+ function readActiveElement(event) {
1792
+ const target = event.target instanceof HTMLElement ? event.target : null;
1793
+ if (target) {
1794
+ for (const { button } of buttons.values()) {
1795
+ if (button === target)
1796
+ return target;
1797
+ }
1798
+ }
1799
+ const currentTarget = event.currentTarget instanceof HTMLElement ? event.currentTarget : null;
1800
+ return currentTarget?.ownerDocument.activeElement ?? null;
1801
+ }
1802
+ function resolveStartingIndex(event) {
1803
+ const entries = [...buttons.values()];
1804
+ if (entries.length === 0)
1805
+ return -1;
1806
+ const focused = resolveFocusedIndex(readActiveElement(event));
1807
+ if (focused !== -1)
1808
+ return focused;
1809
+ const order = [...buttons.keys()];
1810
+ const activeIdx = order.indexOf(value());
1811
+ if (activeIdx !== -1 && !entries[activeIdx]?.disabled)
1812
+ return activeIdx;
1813
+ return entries.findIndex((entry) => !entry.disabled);
1814
+ }
1815
+ function isOrientedKey(key, isHorizontal) {
1816
+ if (!isRovingKey(key))
1817
+ return false;
1818
+ if (key === "Home" || key === "End")
1819
+ return true;
1820
+ if (isHorizontal)
1821
+ return key === "ArrowLeft" || key === "ArrowRight";
1822
+ return key === "ArrowUp" || key === "ArrowDown";
1823
+ }
1824
+ function handleKeydown(event) {
1825
+ const entries = [...buttons.values()];
1826
+ const order = [...buttons.keys()];
1827
+ if (event.key === "Enter" || event.key === " ") {
1828
+ const focused = resolveFocusedIndex(readActiveElement(event));
1829
+ if (focused === -1)
1830
+ return;
1831
+ if (entries[focused]?.disabled !== false)
1832
+ return;
1833
+ const focusedValue = order[focused];
1834
+ if (focusedValue === undefined)
1835
+ return;
1836
+ event.preventDefault();
1837
+ commitValue(focusedValue, $$props.onValueChange, (next3) => {
1838
+ value(next3);
1839
+ });
1840
+ return;
1841
+ }
1842
+ const isHorizontal = orientation() === "horizontal";
1843
+ if (!isOrientedKey(event.key, isHorizontal))
1844
+ return;
1845
+ if (entries.length === 0)
1846
+ return;
1847
+ const currentIndex = resolveStartingIndex(event);
1848
+ if (currentIndex === -1) {
1849
+ event.preventDefault();
1850
+ return;
1851
+ }
1852
+ const nextIdx = handleRovingKeydown(event, currentIndex, entries.length, {
1853
+ isDisabled: (i) => entries[i]?.disabled ?? false,
1854
+ horizontal: isHorizontal,
1855
+ vertical: !isHorizontal
1856
+ });
1857
+ if (nextIdx === null)
1858
+ return;
1859
+ event.preventDefault();
1860
+ if (nextIdx === currentIndex)
1861
+ return;
1862
+ const nextValue = order[nextIdx];
1863
+ if (nextValue === undefined)
1864
+ return;
1865
+ focusValue(nextValue);
1866
+ if ($15.get(effectiveActivateOnFocus)) {
1867
+ commitValue(nextValue, $$props.onValueChange, (next3) => {
1868
+ value(next3);
1869
+ });
1870
+ }
1871
+ }
1872
+ setTabsContext({
1873
+ get value() {
1874
+ return value();
1875
+ },
1876
+ get orientation() {
1877
+ return orientation();
1878
+ },
1879
+ get activateOnFocus() {
1880
+ return $15.get(effectiveActivateOnFocus);
1881
+ },
1882
+ get baseId() {
1883
+ return baseId;
1884
+ },
1885
+ select(next3) {
1886
+ commitValue(next3, $$props.onValueChange, (nextValue) => {
1887
+ value(nextValue);
1888
+ });
1889
+ },
1890
+ isActive(candidate) {
1891
+ return value() === candidate;
1892
+ },
1893
+ register(target, button, disabled = false) {
1894
+ const existing = buttons.get(target);
1895
+ if (existing) {
1896
+ existing.button = button;
1897
+ existing.disabled = disabled;
1898
+ } else {
1899
+ buttons.set(target, { button, disabled });
1900
+ }
1901
+ $15.set(version, $15.get(version) + 1);
1902
+ },
1903
+ unregister(target) {
1904
+ if (buttons.delete(target)) {
1905
+ $15.set(version, $15.get(version) + 1);
1906
+ }
1907
+ },
1908
+ setDisabled(target, disabled) {
1909
+ const existing = buttons.get(target);
1910
+ if (!existing)
1911
+ return;
1912
+ if (existing.disabled === disabled)
1913
+ return;
1914
+ existing.disabled = disabled;
1915
+ $15.set(version, $15.get(version) + 1);
1916
+ },
1917
+ isFocusable(candidate) {
1918
+ value();
1919
+ $15.get(version);
1920
+ const selectedEntry = buttons.get(value());
1921
+ const selectedIsEnabled = selectedEntry !== undefined && !selectedEntry.disabled;
1922
+ const entry = buttons.get(candidate);
1923
+ if (!entry || entry.disabled)
1924
+ return false;
1925
+ if (selectedIsEnabled)
1926
+ return value() === candidate;
1927
+ return $15.get(focusableValue) === candidate;
1928
+ },
1929
+ handleKeydown
1930
+ });
1931
+ var div = root10();
1932
+ var node = $15.child(div);
1933
+ $15.snippet(node, () => $$props.children);
1934
+ $15.reset(div);
1935
+ $15.template_effect(($0) => {
1936
+ $15.set_class(div, 1, $0);
1937
+ $15.set_attribute(div, "data-cinder-orientation", orientation());
1938
+ }, [() => $15.clsx(classNames("cinder-tabs", $$props.class))]);
1939
+ $15.append($$anchor, div);
1940
+ $15.pop();
1941
+ }
1942
+
1943
+ // src/components/tab-list/tab-list.svelte
1944
+ import"svelte/internal/disclose-version";
1945
+ import * as $16 from "svelte/internal/client";
1946
+ var root11 = $16.from_html(`<div role="tablist"><!></div>`);
1947
+ function Tab_list($$anchor, $$props) {
1948
+ $16.push($$props, true);
1949
+ const tabs = getTabsContext();
1950
+ var div = root11();
1951
+ var node = $16.child(div);
1952
+ $16.snippet(node, () => $$props.children);
1953
+ $16.reset(div);
1954
+ $16.template_effect(($0) => {
1955
+ $16.set_class(div, 1, $0);
1956
+ $16.set_attribute(div, "data-cinder-orientation", tabs.orientation);
1957
+ $16.set_attribute(div, "aria-label", $$props.label);
1958
+ $16.set_attribute(div, "aria-labelledby", $$props.labelledBy);
1959
+ $16.set_attribute(div, "aria-orientation", tabs.orientation);
1960
+ }, [() => $16.clsx(classNames("cinder-tab-list", $$props.class))]);
1961
+ $16.append($$anchor, div);
1962
+ $16.pop();
1963
+ }
1964
+
1965
+ // src/components/tab/tab.svelte
1966
+ import"svelte/internal/disclose-version";
1967
+ import * as $17 from "svelte/internal/client";
1968
+ import { untrack as untrack3 } from "svelte";
1969
+
1970
+ // src/_internal/collection.ts
1971
+ function createSingleSelection(getValue, setValue) {
1972
+ return {
1973
+ get value() {
1974
+ return getValue();
1975
+ },
1976
+ select(next3) {
1977
+ setValue(next3);
1978
+ },
1979
+ isSelected(candidate) {
1980
+ return getValue() === candidate;
1981
+ }
1982
+ };
1983
+ }
1984
+ function createMultiSelection(getValues, setValues) {
1985
+ return {
1986
+ get values() {
1987
+ return getValues();
1988
+ },
1989
+ toggle(item) {
1990
+ const current = getValues();
1991
+ const index2 = current.indexOf(item);
1992
+ if (index2 === -1) {
1993
+ setValues([...current, item]);
1994
+ } else {
1995
+ setValues(current.filter((existing) => existing !== item));
1996
+ }
1997
+ },
1998
+ isSelected(candidate) {
1999
+ return getValues().includes(candidate);
2000
+ }
2001
+ };
2002
+ }
2003
+ function rovingTabIndex(isActive) {
2004
+ return isActive ? 0 : -1;
2005
+ }
2006
+
2007
+ // src/components/tab/tab.svelte
2008
+ var root_17 = $17.from_html(`<span class="cinder-tab__trailing" aria-hidden="true"><!></span>`);
2009
+ var root12 = $17.from_html(`<button type="button" role="tab"><!> <!></button>`);
2010
+ function Tab($$anchor, $$props) {
2011
+ $17.push($$props, true);
2012
+ let disabled = $17.prop($$props, "disabled", 3, false);
2013
+ const tabs = getTabsContext();
2014
+ const tabId = $17.derived(() => $$props.id ?? `${tabs.baseId}-tab-${$$props.value}`);
2015
+ const panelId = $17.derived(() => `${tabs.baseId}-panel-${$$props.value}`);
2016
+ const isActive = $17.derived(() => tabs.isActive($$props.value));
2017
+ const isFocusable = $17.derived(() => tabs.isFocusable($$props.value));
2018
+ let buttonElement = $17.state(undefined);
2019
+ const registeredValue = untrack3(() => $$props.value);
2020
+ $17.user_effect(() => {
2021
+ if (!$17.get(buttonElement))
2022
+ return;
2023
+ const button = $17.get(buttonElement);
2024
+ const initialDisabled = untrack3(() => disabled());
2025
+ untrack3(() => {
2026
+ tabs.register(registeredValue, button, initialDisabled);
2027
+ });
2028
+ return () => {
2029
+ untrack3(() => {
2030
+ tabs.unregister(registeredValue);
2031
+ });
2032
+ };
2033
+ });
2034
+ $17.user_effect(() => {
2035
+ const next3 = disabled();
2036
+ untrack3(() => {
2037
+ tabs.setDisabled(registeredValue, next3);
2038
+ });
2039
+ });
2040
+ function handleClick() {
2041
+ if (disabled())
2042
+ return;
2043
+ tabs.select($$props.value);
2044
+ }
2045
+ var button_1 = root12();
2046
+ var node = $17.child(button_1);
2047
+ $17.snippet(node, () => $$props.children);
2048
+ var node_1 = $17.sibling(node, 2);
2049
+ {
2050
+ var consequent = ($$anchor2) => {
2051
+ var span = root_17();
2052
+ var node_2 = $17.child(span);
2053
+ $17.snippet(node_2, () => $$props.trailing);
2054
+ $17.reset(span);
2055
+ $17.append($$anchor2, span);
2056
+ };
2057
+ $17.if(node_1, ($$render) => {
2058
+ if ($$props.trailing)
2059
+ $$render(consequent);
2060
+ });
2061
+ }
2062
+ $17.reset(button_1);
2063
+ $17.bind_this(button_1, ($$value) => $17.set(buttonElement, $$value), () => $17.get(buttonElement));
2064
+ $17.template_effect(($0, $1) => {
2065
+ $17.set_attribute(button_1, "id", $17.get(tabId));
2066
+ $17.set_class(button_1, 1, $0);
2067
+ $17.set_attribute(button_1, "data-cinder-value", $$props.value);
2068
+ $17.set_attribute(button_1, "data-cinder-active", $17.get(isActive) ? "" : undefined);
2069
+ $17.set_attribute(button_1, "data-cinder-disabled", disabled() || undefined);
2070
+ $17.set_attribute(button_1, "data-variant", tabs.orientation);
2071
+ $17.set_attribute(button_1, "aria-selected", $17.get(isActive));
2072
+ $17.set_attribute(button_1, "aria-controls", $17.get(panelId));
2073
+ $17.set_attribute(button_1, "tabindex", $1);
2074
+ button_1.disabled = disabled();
2075
+ }, [
2076
+ () => $17.clsx(classNames("cinder-tab", $$props.class)),
2077
+ () => rovingTabIndex($17.get(isFocusable))
2078
+ ]);
2079
+ $17.delegated("click", button_1, handleClick);
2080
+ $17.delegated("keydown", button_1, function(...$$args) {
2081
+ tabs.handleKeydown?.apply(this, $$args);
2082
+ });
2083
+ $17.append($$anchor, button_1);
2084
+ $17.pop();
2085
+ }
2086
+ $17.delegate(["click", "keydown"]);
2087
+
2088
+ // src/components/tab-panel/tab-panel.svelte
2089
+ import"svelte/internal/disclose-version";
2090
+ import * as $18 from "svelte/internal/client";
2091
+ var root_18 = $18.from_html(`<div role="tabpanel" tabindex="0"><!></div>`);
2092
+ function Tab_panel($$anchor, $$props) {
2093
+ $18.push($$props, true);
2094
+ const tabs = getTabsContext();
2095
+ const isActive = $18.derived(() => tabs.isActive($$props.value));
2096
+ const panelId = $18.derived(() => `${tabs.baseId}-panel-${$$props.value}`);
2097
+ const labelledBy = $18.derived(() => $$props.ariaLabelledby ?? `${tabs.baseId}-tab-${$$props.value}`);
2098
+ var fragment = $18.comment();
2099
+ var node = $18.first_child(fragment);
2100
+ {
2101
+ var consequent = ($$anchor2) => {
2102
+ var div = root_18();
2103
+ var node_1 = $18.child(div);
2104
+ $18.snippet(node_1, () => $$props.children);
2105
+ $18.reset(div);
2106
+ $18.template_effect(($0) => {
2107
+ $18.set_attribute(div, "id", $18.get(panelId));
2108
+ $18.set_class(div, 1, $0);
2109
+ $18.set_attribute(div, "data-cinder-value", $$props.value);
2110
+ $18.set_attribute(div, "aria-labelledby", $18.get(labelledBy));
2111
+ }, [() => $18.clsx(classNames("cinder-tab-panel", $$props.class))]);
2112
+ $18.append($$anchor2, div);
2113
+ };
2114
+ $18.if(node, ($$render) => {
2115
+ if ($18.get(isActive))
2116
+ $$render(consequent);
2117
+ });
2118
+ }
2119
+ $18.append($$anchor, fragment);
2120
+ $18.pop();
2121
+ }
2122
+
2123
+ // src/components/payload-inspector/payload-inspector.svelte
2124
+ var root_19 = $19.from_html(`<span class="cinder-payload-inspector__size"> </span>`);
2125
+ var root_73 = $19.from_html(`<!> <!> <!>`, 1);
2126
+ var root_122 = $19.from_html(`<div class="cinder-payload-inspector__empty" role="status">No payload</div>`);
2127
+ var root_182 = $19.from_html(`<div class="cinder-payload-inspector__notice cinder-payload-inspector__notice--warning" role="alert"> </div>`);
2128
+ var root_192 = $19.from_html(`<div class="cinder-payload-inspector__summary-value"><span class="cinder-payload-inspector__summary-value-label">Value</span> <span class="cinder-payload-inspector__primitive"> </span></div>`);
2129
+ var root_132 = $19.from_html(`<div class="cinder-payload-inspector__summary"><div class="cinder-payload-inspector__summary-badges"><!> <!></div> <!> <!> <!></div>`);
2130
+ var root_11 = $19.from_html(`<div class="cinder-payload-inspector__panel"><!> <!></div>`);
2131
+ var root_21 = $19.from_html(`<div class="cinder-payload-inspector__empty" role="status">No payload</div>`);
2132
+ var root_222 = $19.from_html(`<div class="cinder-payload-inspector__notice cinder-payload-inspector__notice--warning" role="alert"> </div>`);
2133
+ var root_232 = $19.from_html(`<div class="cinder-payload-inspector__notice" role="status">This value can't be serialized as JSON (it may contain circular references or BigInt
2134
+ values).</div>`);
2135
+ var root_20 = $19.from_html(`<div class="cinder-payload-inspector__panel"><!> <!> <!> <!></div>`);
2136
+ var root_262 = $19.from_html(`<div class="cinder-payload-inspector__empty" role="status">No payload</div>`);
2137
+ var root_272 = $19.from_html(`<div class="cinder-payload-inspector__notice cinder-payload-inspector__notice--warning">This payload has been truncated by the producer. The raw view shows only the received
2138
+ portion.</div>`);
2139
+ var root_28 = $19.from_html(`<div class="cinder-payload-inspector__notice" role="status">This value can't be serialized as JSON (it may contain circular references or BigInt
2140
+ values).</div>`);
2141
+ var root_252 = $19.from_html(`<div class="cinder-payload-inspector__panel cinder-payload-inspector__panel--code"><!> <!> <!> <!></div>`);
2142
+ var root_63 = $19.from_html(`<!> <!> <!> <!>`, 1);
2143
+ var root13 = $19.from_html(`<section><div class="cinder-payload-inspector__header"><span class="cinder-payload-inspector__label"> </span> <div class="cinder-payload-inspector__header-actions"><!> <!> <!> <!></div></div> <div class="cinder-payload-inspector__tabs"><!></div></section>`);
2144
+ function Payload_inspector($$anchor, $$props) {
2145
+ $19.push($$props, true);
2146
+ let truncated = $19.prop($$props, "truncated", 3, false), maxBytes = $19.prop($$props, "maxBytes", 3, 1048576), activeView = $19.prop($$props, "activeView", 15, "summary"), label = $19.prop($$props, "label", 3, "Payload inspector"), rest = $19.rest_props($$props, [
2147
+ "$$slots",
2148
+ "$$events",
2149
+ "$$legacy",
2150
+ "value",
2151
+ "truncated",
2152
+ "maxBytes",
2153
+ "meta",
2154
+ "format",
2155
+ "parse",
2156
+ "activeView",
2157
+ "label",
2158
+ "class"
2159
+ ]);
2160
+ function shouldParseString(raw) {
2161
+ const trimmed = raw.trim();
2162
+ if (/^[{\["]/.test(trimmed))
2163
+ return true;
2164
+ return /^(?:true|false|null|-?(?:0|[1-9]\d*)(?:\.\d+)?(?:[eE][+-]?\d+)?)$/.test(trimmed);
2165
+ }
2166
+ const parseResult = $19.derived(() => {
2167
+ if (typeof $$props.value !== "string") {
2168
+ return { ok: true, parsed: $$props.value };
2169
+ }
2170
+ if ($$props.value.trim() === "") {
2171
+ return { ok: true, parsed: null };
2172
+ }
2173
+ if ($$props.parse === undefined && !shouldParseString($$props.value)) {
2174
+ return { ok: true, parsed: $$props.value };
2175
+ }
2176
+ try {
2177
+ const parser = $$props.parse ?? JSON.parse;
2178
+ return { ok: true, parsed: parser($$props.value) };
2179
+ } catch (error) {
2180
+ return {
2181
+ ok: false,
2182
+ error: error instanceof Error ? error.message : String(error)
2183
+ };
2184
+ }
2185
+ });
2186
+ const parsedValue = $19.derived(() => $19.get(parseResult).ok ? $19.get(parseResult).parsed : undefined);
2187
+ const sizeResult = $19.derived(() => {
2188
+ if (!$19.get(parseResult).ok)
2189
+ return { ok: false };
2190
+ try {
2191
+ const json = JSON.stringify($19.get(parsedValue));
2192
+ if (typeof json !== "string")
2193
+ return { ok: false };
2194
+ return { ok: true, bytes: new Blob([json]).size };
2195
+ } catch {
2196
+ return { ok: false };
2197
+ }
2198
+ });
2199
+ const byteLabel = $19.derived(() => {
2200
+ if (!$19.get(sizeResult).ok)
2201
+ return "Unknown size";
2202
+ const bytes = $19.get(sizeResult).bytes;
2203
+ if (bytes < 1024)
2204
+ return `${bytes} B`;
2205
+ if (bytes < 1024 * 1024)
2206
+ return `${(bytes / 1024).toFixed(1)} KB`;
2207
+ return `${(bytes / (1024 * 1024)).toFixed(1)} MB`;
2208
+ });
2209
+ const rawText = $19.derived(() => {
2210
+ if (!$19.get(parseResult).ok) {
2211
+ return typeof $$props.value === "string" ? $$props.value : "";
2212
+ }
2213
+ try {
2214
+ const formatter = $$props.format ?? ((v) => JSON.stringify(v, null, 2));
2215
+ return formatter($19.get(parsedValue)) ?? "";
2216
+ } catch {
2217
+ return typeof $$props.value === "string" ? $$props.value : "";
2218
+ }
2219
+ });
2220
+ const unserializable = $19.derived(() => {
2221
+ if (typeof $$props.value === "string" || !$19.get(parseResult).ok)
2222
+ return false;
2223
+ try {
2224
+ JSON.stringify($19.get(parsedValue));
2225
+ return false;
2226
+ } catch {
2227
+ return true;
2228
+ }
2229
+ });
2230
+ const summaryItems = $19.derived(() => {
2231
+ const items = [];
2232
+ items.push({ term: "Size", definition: $19.get(byteLabel) });
2233
+ if ($$props.meta?.contentType) {
2234
+ items.push({ term: "Content type", definition: $$props.meta.contentType });
2235
+ }
2236
+ if ($$props.meta?.source) {
2237
+ items.push({ term: "Source", definition: $$props.meta.source });
2238
+ }
2239
+ if ($$props.meta?.timestamp) {
2240
+ let displayTime = $$props.meta.timestamp;
2241
+ try {
2242
+ displayTime = new Date($$props.meta.timestamp).toLocaleString();
2243
+ } catch {}
2244
+ items.push({ term: "Timestamp", definition: displayTime });
2245
+ }
2246
+ return items;
2247
+ });
2248
+ const valueKind = $19.derived(() => {
2249
+ if (!$19.get(parseResult).ok)
2250
+ return "invalid";
2251
+ const v = $19.get(parsedValue);
2252
+ if (v === null)
2253
+ return "null";
2254
+ if (v === undefined)
2255
+ return "undefined";
2256
+ if (typeof v === "boolean")
2257
+ return "boolean";
2258
+ if (typeof v === "number")
2259
+ return "number";
2260
+ if (typeof v === "string")
2261
+ return "string";
2262
+ if (Array.isArray(v))
2263
+ return "array";
2264
+ return "object";
2265
+ });
2266
+ const isPrimitive = $19.derived(() => $19.get(valueKind) === "null" || $19.get(valueKind) === "undefined" || $19.get(valueKind) === "boolean" || $19.get(valueKind) === "number" || $19.get(valueKind) === "string");
2267
+ const isEmpty = $19.derived(() => $19.get(parsedValue) === undefined && $$props.value === undefined);
2268
+ const copyRawText = $19.derived(() => {
2269
+ if (typeof $$props.value === "string")
2270
+ return $$props.value;
2271
+ if (!$19.get(parseResult).ok)
2272
+ return "";
2273
+ try {
2274
+ return JSON.stringify($19.get(parsedValue)) ?? "";
2275
+ } catch {
2276
+ return "";
2277
+ }
2278
+ });
2279
+ const copyFormattedText = $19.derived(() => {
2280
+ if (!$19.get(parseResult).ok)
2281
+ return $19.get(rawText);
2282
+ try {
2283
+ return JSON.stringify($19.get(parsedValue), null, 2) ?? "";
2284
+ } catch {
2285
+ return $19.get(rawText);
2286
+ }
2287
+ });
2288
+ const canCopyFormatted = $19.derived(() => !$19.get(isEmpty) && $19.get(parseResult).ok && !$19.get(unserializable));
2289
+ const canCopyRaw = $19.derived(() => !$19.get(isEmpty) && (typeof $$props.value === "string" || $19.get(canCopyFormatted)));
2290
+ function kindVariant(kind) {
2291
+ if (kind === "invalid")
2292
+ return "danger";
2293
+ if (kind === "null" || kind === "undefined")
2294
+ return "warning";
2295
+ if (kind === "object" || kind === "array")
2296
+ return "info";
2297
+ return "neutral";
2298
+ }
2299
+ var section = root13();
2300
+ $19.attribute_effect(section, ($0) => ({ ...rest, class: $0, "aria-label": label() }), [() => classNames("cinder-payload-inspector", $$props.class)]);
2301
+ var div = $19.child(section);
2302
+ var span = $19.child(div);
2303
+ var text7 = $19.child(span, true);
2304
+ $19.reset(span);
2305
+ var div_1 = $19.sibling(span, 2);
2306
+ var node = $19.child(div_1);
2307
+ {
2308
+ var consequent = ($$anchor2) => {
2309
+ var span_1 = root_19();
2310
+ var text_1 = $19.child(span_1, true);
2311
+ $19.reset(span_1);
2312
+ $19.template_effect(() => {
2313
+ $19.set_attribute(span_1, "aria-label", `${$19.get(byteLabel)} payload size`);
2314
+ $19.set_text(text_1, $19.get(byteLabel));
2315
+ });
2316
+ $19.append($$anchor2, span_1);
2317
+ };
2318
+ $19.if(node, ($$render) => {
2319
+ if ($19.get(sizeResult).ok)
2320
+ $$render(consequent);
2321
+ });
2322
+ }
2323
+ var node_1 = $19.sibling(node, 2);
2324
+ {
2325
+ var consequent_1 = ($$anchor2) => {
2326
+ Badge($$anchor2, {
2327
+ variant: "warning",
2328
+ size: "xs",
2329
+ children: ($$anchor3, $$slotProps) => {
2330
+ $19.next();
2331
+ var text_2 = $19.text("Truncated");
2332
+ $19.append($$anchor3, text_2);
2333
+ },
2334
+ $$slots: { default: true }
2335
+ });
2336
+ };
2337
+ $19.if(node_1, ($$render) => {
2338
+ if (truncated())
2339
+ $$render(consequent_1);
2340
+ });
2341
+ }
2342
+ var node_2 = $19.sibling(node_1, 2);
2343
+ {
2344
+ var consequent_2 = ($$anchor2) => {
2345
+ Copy_button($$anchor2, {
2346
+ get value() {
2347
+ return $19.get(copyFormattedText);
2348
+ },
2349
+ label: "Copy formatted",
2350
+ copiedLabel: "Formatted copied",
2351
+ title: "Copy formatted payload",
2352
+ iconOnly: true
2353
+ });
2354
+ };
2355
+ $19.if(node_2, ($$render) => {
2356
+ if ($19.get(canCopyFormatted))
2357
+ $$render(consequent_2);
2358
+ });
2359
+ }
2360
+ var node_3 = $19.sibling(node_2, 2);
2361
+ {
2362
+ var consequent_3 = ($$anchor2) => {
2363
+ Copy_button($$anchor2, {
2364
+ get value() {
2365
+ return $19.get(copyRawText);
2366
+ },
2367
+ label: "Copy raw",
2368
+ copiedLabel: "Raw copied",
2369
+ title: "Copy raw payload",
2370
+ iconOnly: true
2371
+ });
2372
+ };
2373
+ $19.if(node_3, ($$render) => {
2374
+ if ($19.get(canCopyRaw))
2375
+ $$render(consequent_3);
2376
+ });
2377
+ }
2378
+ $19.reset(div_1);
2379
+ $19.reset(div);
2380
+ var div_2 = $19.sibling(div, 2);
2381
+ var node_4 = $19.child(div_2);
2382
+ Tabs(node_4, {
2383
+ get value() {
2384
+ return activeView();
2385
+ },
2386
+ set value($$value) {
2387
+ activeView($$value);
2388
+ },
2389
+ children: ($$anchor2, $$slotProps) => {
2390
+ var fragment_3 = root_63();
2391
+ var node_5 = $19.first_child(fragment_3);
2392
+ Tab_list(node_5, {
2393
+ label: "Inspector views",
2394
+ children: ($$anchor3, $$slotProps2) => {
2395
+ var fragment_4 = root_73();
2396
+ var node_6 = $19.first_child(fragment_4);
2397
+ Tab(node_6, {
2398
+ value: "summary",
2399
+ children: ($$anchor4, $$slotProps3) => {
2400
+ $19.next();
2401
+ var text_3 = $19.text("Summary");
2402
+ $19.append($$anchor4, text_3);
2403
+ },
2404
+ $$slots: { default: true }
2405
+ });
2406
+ var node_7 = $19.sibling(node_6, 2);
2407
+ Tab(node_7, {
2408
+ value: "tree",
2409
+ children: ($$anchor4, $$slotProps3) => {
2410
+ $19.next();
2411
+ var text_4 = $19.text("Tree");
2412
+ $19.append($$anchor4, text_4);
2413
+ },
2414
+ $$slots: { default: true }
2415
+ });
2416
+ var node_8 = $19.sibling(node_7, 2);
2417
+ Tab(node_8, {
2418
+ value: "raw",
2419
+ children: ($$anchor4, $$slotProps3) => {
2420
+ $19.next();
2421
+ var text_5 = $19.text("Raw");
2422
+ $19.append($$anchor4, text_5);
2423
+ },
2424
+ $$slots: { default: true }
2425
+ });
2426
+ $19.append($$anchor3, fragment_4);
2427
+ },
2428
+ $$slots: { default: true }
2429
+ });
2430
+ var node_9 = $19.sibling(node_5, 2);
2431
+ Tab_panel(node_9, {
2432
+ value: "summary",
2433
+ children: ($$anchor3, $$slotProps2) => {
2434
+ var div_3 = root_11();
2435
+ var node_10 = $19.child(div_3);
2436
+ {
2437
+ var consequent_4 = ($$anchor4) => {
2438
+ var div_4 = root_122();
2439
+ $19.append($$anchor4, div_4);
2440
+ };
2441
+ $19.if(node_10, ($$render) => {
2442
+ if ($19.get(isEmpty))
2443
+ $$render(consequent_4);
2444
+ });
2445
+ }
2446
+ var node_11 = $19.sibling(node_10, 2);
2447
+ {
2448
+ var consequent_9 = ($$anchor4) => {
2449
+ var div_5 = root_132();
2450
+ var div_6 = $19.child(div_5);
2451
+ var node_12 = $19.child(div_6);
2452
+ {
2453
+ let $0 = $19.derived(() => kindVariant($19.get(valueKind)));
2454
+ Badge(node_12, {
2455
+ get variant() {
2456
+ return $19.get($0);
2457
+ },
2458
+ size: "xs",
2459
+ mono: true,
2460
+ children: ($$anchor5, $$slotProps3) => {
2461
+ $19.next();
2462
+ var text_6 = $19.text();
2463
+ $19.template_effect(() => $19.set_text(text_6, $19.get(valueKind)));
2464
+ $19.append($$anchor5, text_6);
2465
+ },
2466
+ $$slots: { default: true }
2467
+ });
2468
+ }
2469
+ var node_13 = $19.sibling(node_12, 2);
2470
+ {
2471
+ var consequent_5 = ($$anchor5) => {
2472
+ Badge($$anchor5, {
2473
+ variant: "warning",
2474
+ size: "xs",
2475
+ children: ($$anchor6, $$slotProps3) => {
2476
+ $19.next();
2477
+ var text_7 = $19.text("Truncated");
2478
+ $19.append($$anchor6, text_7);
2479
+ },
2480
+ $$slots: { default: true }
2481
+ });
2482
+ };
2483
+ $19.if(node_13, ($$render) => {
2484
+ if (truncated())
2485
+ $$render(consequent_5);
2486
+ });
2487
+ }
2488
+ $19.reset(div_6);
2489
+ var node_14 = $19.sibling(div_6, 2);
2490
+ {
2491
+ var consequent_6 = ($$anchor5) => {
2492
+ Description_list($$anchor5, {
2493
+ get items() {
2494
+ return $19.get(summaryItems);
2495
+ },
2496
+ variant: "two-column"
2497
+ });
2498
+ };
2499
+ $19.if(node_14, ($$render) => {
2500
+ if ($19.get(summaryItems).length > 0)
2501
+ $$render(consequent_6);
2502
+ });
2503
+ }
2504
+ var node_15 = $19.sibling(node_14, 2);
2505
+ {
2506
+ var consequent_7 = ($$anchor5) => {
2507
+ var div_7 = root_182();
2508
+ var text_8 = $19.child(div_7);
2509
+ $19.reset(div_7);
2510
+ $19.template_effect(() => $19.set_text(text_8, `Parse error: ${$19.get(parseResult).error ?? ""}`));
2511
+ $19.append($$anchor5, div_7);
2512
+ };
2513
+ $19.if(node_15, ($$render) => {
2514
+ if (!$19.get(parseResult).ok)
2515
+ $$render(consequent_7);
2516
+ });
2517
+ }
2518
+ var node_16 = $19.sibling(node_15, 2);
2519
+ {
2520
+ var consequent_8 = ($$anchor5) => {
2521
+ var div_8 = root_192();
2522
+ var span_2 = $19.sibling($19.child(div_8), 2);
2523
+ var text_9 = $19.child(span_2, true);
2524
+ $19.reset(span_2);
2525
+ $19.reset(div_8);
2526
+ $19.template_effect(($0) => $19.set_text(text_9, $0), [() => String($19.get(parsedValue))]);
2527
+ $19.append($$anchor5, div_8);
2528
+ };
2529
+ $19.if(node_16, ($$render) => {
2530
+ if ($19.get(parseResult).ok && $19.get(isPrimitive))
2531
+ $$render(consequent_8);
2532
+ });
2533
+ }
2534
+ $19.reset(div_5);
2535
+ $19.append($$anchor4, div_5);
2536
+ };
2537
+ $19.if(node_11, ($$render) => {
2538
+ if (!$19.get(isEmpty))
2539
+ $$render(consequent_9);
2540
+ });
2541
+ }
2542
+ $19.reset(div_3);
2543
+ $19.append($$anchor3, div_3);
2544
+ },
2545
+ $$slots: { default: true }
2546
+ });
2547
+ var node_17 = $19.sibling(node_9, 2);
2548
+ Tab_panel(node_17, {
2549
+ value: "tree",
2550
+ children: ($$anchor3, $$slotProps2) => {
2551
+ var div_9 = root_20();
2552
+ var node_18 = $19.child(div_9);
2553
+ {
2554
+ var consequent_10 = ($$anchor4) => {
2555
+ var div_10 = root_21();
2556
+ $19.append($$anchor4, div_10);
2557
+ };
2558
+ $19.if(node_18, ($$render) => {
2559
+ if ($19.get(isEmpty))
2560
+ $$render(consequent_10);
2561
+ });
2562
+ }
2563
+ var node_19 = $19.sibling(node_18, 2);
2564
+ {
2565
+ var consequent_11 = ($$anchor4) => {
2566
+ var div_11 = root_222();
2567
+ var text_10 = $19.child(div_11);
2568
+ $19.reset(div_11);
2569
+ $19.template_effect(() => $19.set_text(text_10, `Cannot render tree: ${$19.get(parseResult).error ?? ""}`));
2570
+ $19.append($$anchor4, div_11);
2571
+ };
2572
+ $19.if(node_19, ($$render) => {
2573
+ if (!$19.get(isEmpty) && !$19.get(parseResult).ok)
2574
+ $$render(consequent_11);
2575
+ });
2576
+ }
2577
+ var node_20 = $19.sibling(node_19, 2);
2578
+ {
2579
+ var consequent_12 = ($$anchor4) => {
2580
+ var div_12 = root_232();
2581
+ $19.append($$anchor4, div_12);
2582
+ };
2583
+ $19.if(node_20, ($$render) => {
2584
+ if (!$19.get(isEmpty) && $19.get(parseResult).ok && $19.get(unserializable))
2585
+ $$render(consequent_12);
2586
+ });
2587
+ }
2588
+ var node_21 = $19.sibling(node_20, 2);
2589
+ {
2590
+ var consequent_13 = ($$anchor4) => {
2591
+ Json_viewer($$anchor4, {
2592
+ get value() {
2593
+ return $19.get(parsedValue);
2594
+ },
2595
+ get maxBytes() {
2596
+ return maxBytes();
2597
+ }
2598
+ });
2599
+ };
2600
+ $19.if(node_21, ($$render) => {
2601
+ if (!$19.get(isEmpty) && $19.get(parseResult).ok && !$19.get(unserializable))
2602
+ $$render(consequent_13);
2603
+ });
2604
+ }
2605
+ $19.reset(div_9);
2606
+ $19.append($$anchor3, div_9);
2607
+ },
2608
+ $$slots: { default: true }
2609
+ });
2610
+ var node_22 = $19.sibling(node_17, 2);
2611
+ Tab_panel(node_22, {
2612
+ value: "raw",
2613
+ children: ($$anchor3, $$slotProps2) => {
2614
+ var div_13 = root_252();
2615
+ var node_23 = $19.child(div_13);
2616
+ {
2617
+ var consequent_14 = ($$anchor4) => {
2618
+ var div_14 = root_262();
2619
+ $19.append($$anchor4, div_14);
2620
+ };
2621
+ $19.if(node_23, ($$render) => {
2622
+ if ($19.get(isEmpty))
2623
+ $$render(consequent_14);
2624
+ });
2625
+ }
2626
+ var node_24 = $19.sibling(node_23, 2);
2627
+ {
2628
+ var consequent_15 = ($$anchor4) => {
2629
+ var div_15 = root_272();
2630
+ $19.append($$anchor4, div_15);
2631
+ };
2632
+ $19.if(node_24, ($$render) => {
2633
+ if (!$19.get(isEmpty) && truncated())
2634
+ $$render(consequent_15);
2635
+ });
2636
+ }
2637
+ var node_25 = $19.sibling(node_24, 2);
2638
+ {
2639
+ var consequent_16 = ($$anchor4) => {
2640
+ var div_16 = root_28();
2641
+ $19.append($$anchor4, div_16);
2642
+ };
2643
+ $19.if(node_25, ($$render) => {
2644
+ if (!$19.get(isEmpty) && $19.get(unserializable))
2645
+ $$render(consequent_16);
2646
+ });
2647
+ }
2648
+ var node_26 = $19.sibling(node_25, 2);
2649
+ {
2650
+ var consequent_17 = ($$anchor4) => {
2651
+ Code_block($$anchor4, {
2652
+ get code() {
2653
+ return $19.get(rawText);
2654
+ },
2655
+ highlight: false,
2656
+ class: "cinder-payload-inspector__raw"
2657
+ });
2658
+ };
2659
+ $19.if(node_26, ($$render) => {
2660
+ if (!$19.get(isEmpty) && !$19.get(unserializable))
2661
+ $$render(consequent_17);
2662
+ });
2663
+ }
2664
+ $19.reset(div_13);
2665
+ $19.append($$anchor3, div_13);
2666
+ },
2667
+ $$slots: { default: true }
2668
+ });
2669
+ $19.append($$anchor2, fragment_3);
2670
+ },
2671
+ $$slots: { default: true }
2672
+ });
2673
+ $19.reset(div_2);
2674
+ $19.reset(section);
2675
+ $19.template_effect(() => $19.set_text(text7, label()));
2676
+ $19.append($$anchor, section);
2677
+ $19.pop();
2678
+ }
2679
+
2680
+ // src/components/secret-value-field/secret-value-field.svelte
2681
+ import"svelte/internal/disclose-version";
2682
+ import * as $20 from "svelte/internal/client";
2683
+ import { onDestroy, untrack as untrack4 } from "svelte";
2684
+ var root_110 = $20.from_html(`<span class="cinder-secret-value-field__prefix" aria-hidden="true"> </span>`);
2685
+ var root_29 = $20.from_html(`<span class="cinder-secret-value-field__suffix" aria-hidden="true"> </span>`);
2686
+ var root_45 = $20.from_svg(`<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" fill="currentColor" class="cinder-secret-value-field__icon" aria-hidden="true"><path fill-rule="evenodd" d="M3.28 2.22a.75.75 0 00-1.06 1.06l14.5 14.5a.75.75 0 101.06-1.06l-1.745-1.745a10.029 10.029 0 003.3-4.38 1.651 1.651 0 000-1.185A10.004 10.004 0 009.999 3a9.956 9.956 0 00-4.744 1.194L3.28 2.22zM7.752 6.69l1.092 1.092a2.5 2.5 0 013.374 3.373l1.091 1.092a4 4 0 00-5.557-5.557z" clip-rule="evenodd"></path><path d="M10.748 13.93l2.523 2.524a9.987 9.987 0 01-3.27.547c-4.258 0-7.894-2.66-9.337-6.41a1.651 1.651 0 010-1.186A10.007 10.007 0 012.839 6.02L6.07 9.252a4 4 0 004.678 4.678z"></path></svg>`);
2687
+ var root_54 = $20.from_svg(`<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" fill="currentColor" class="cinder-secret-value-field__icon" aria-hidden="true"><path d="M10 12.5a2.5 2.5 0 100-5 2.5 2.5 0 000 5z"></path><path fill-rule="evenodd" d="M.664 10.59a1.651 1.651 0 010-1.186A10.004 10.004 0 0110 3c4.257 0 7.893 2.66 9.336 6.41.147.381.146.804 0 1.186A10.004 10.004 0 0110 17c-4.257 0-7.893-2.66-9.336-6.41zM14 10a4 4 0 11-8 0 4 4 0 018 0z" clip-rule="evenodd"></path></svg>`);
2688
+ var root_35 = $20.from_html(`<button type="button" class="cinder-secret-value-field__toggle"><!></button>`);
2689
+ var root_64 = $20.from_svg(`<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" fill="currentColor" class="cinder-secret-value-field__icon" aria-hidden="true"><path fill-rule="evenodd" d="M16.704 4.153a.75.75 0 01.143 1.052l-8 10.5a.75.75 0 01-1.127.075l-4.5-4.5a.75.75 0 011.06-1.06l3.894 3.893 7.48-9.817a.75.75 0 011.05-.143z" clip-rule="evenodd"></path></svg>`);
2690
+ var root_74 = $20.from_svg(`<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" fill="currentColor" class="cinder-secret-value-field__icon" aria-hidden="true"><path d="M7 3.5A1.5 1.5 0 018.5 2h3.879a1.5 1.5 0 011.06.44l3.122 3.12A1.5 1.5 0 0117 6.622V12.5a1.5 1.5 0 01-1.5 1.5h-1v-3.379a3 3 0 00-.879-2.121L10.5 5.379A3 3 0 008.379 4.5H7v-1z"></path><path d="M4.5 6A1.5 1.5 0 003 7.5v9A1.5 1.5 0 004.5 18h7a1.5 1.5 0 001.5-1.5v-5.879a1.5 1.5 0 00-.44-1.06L9.44 6.439A1.5 1.5 0 008.378 6H4.5z"></path></svg>`);
2691
+ var root_83 = $20.from_html(`<div class="cinder-secret-value-field__warning"><!></div>`);
2692
+ var root14 = $20.from_html(`<div><span class="cinder-secret-value-field__label"> </span> <div class="cinder-secret-value-field__row" role="group"><!> <span class="cinder-secret-value-field__value"> </span> <!> <div class="cinder-secret-value-field__actions"><!> <button type="button" class="cinder-secret-value-field__copy"><!></button></div></div> <!> <!></div>`);
2693
+ function Secret_value_field($$anchor, $$props) {
2694
+ const fieldId = $20.props_id();
2695
+ $20.push($$props, true);
2696
+ let label = $20.prop($$props, "label", 3, "Secret value"), allowReveal = $20.prop($$props, "allowReveal", 3, false), initiallyRevealed = $20.prop($$props, "initiallyRevealed", 3, false), confirmDuration = $20.prop($$props, "confirmDuration", 3, 1500), copiedLabel = $20.prop($$props, "copiedLabel", 3, "Copied"), rest = $20.rest_props($$props, [
2697
+ "$$slots",
2698
+ "$$events",
2699
+ "$$legacy",
2700
+ "value",
2701
+ "prefix",
2702
+ "suffix",
2703
+ "label",
2704
+ "allowReveal",
2705
+ "initiallyRevealed",
2706
+ "confirmDuration",
2707
+ "copiedLabel",
2708
+ "warning",
2709
+ "class"
2710
+ ]);
2711
+ let revealed = $20.state($20.proxy(untrack4(() => initiallyRevealed())));
2712
+ let previousValue = $20.state($20.proxy(untrack4(() => $$props.value)));
2713
+ let copied = $20.state(false);
2714
+ let resetTimer;
2715
+ const copiedAnnouncement = $20.derived(() => $20.get(copied) ? copiedLabel() : "");
2716
+ const MASK = "••••••••••••••••";
2717
+ async function handleCopy() {
2718
+ const ok = await copyToClipboard($$props.value);
2719
+ if (!ok)
2720
+ return;
2721
+ $20.set(copied, true);
2722
+ if (resetTimer)
2723
+ clearTimeout(resetTimer);
2724
+ resetTimer = setTimeout(() => {
2725
+ $20.set(copied, false);
2726
+ }, confirmDuration());
2727
+ }
2728
+ function handleRevealToggle() {
2729
+ if (!allowReveal())
2730
+ return;
2731
+ $20.set(revealed, !$20.get(revealed));
2732
+ }
2733
+ $20.user_effect(() => {
2734
+ if ($$props.value === $20.get(previousValue))
2735
+ return;
2736
+ $20.set(previousValue, $$props.value, true);
2737
+ $20.set(revealed, initiallyRevealed());
2738
+ });
2739
+ onDestroy(() => {
2740
+ if (resetTimer)
2741
+ clearTimeout(resetTimer);
2742
+ });
2743
+ var div = root14();
2744
+ $20.attribute_effect(div, ($0) => ({
2745
+ ...rest,
2746
+ class: $0,
2747
+ "data-cinder-copied": $20.get(copied) || undefined,
2748
+ "data-cinder-revealed": $20.get(revealed) || undefined
2749
+ }), [() => classNames("cinder-secret-value-field", $$props.class)]);
2750
+ var span = $20.child(div);
2751
+ var text7 = $20.child(span, true);
2752
+ $20.reset(span);
2753
+ var div_1 = $20.sibling(span, 2);
2754
+ var node = $20.child(div_1);
2755
+ {
2756
+ var consequent = ($$anchor2) => {
2757
+ var span_1 = root_110();
2758
+ var text_1 = $20.child(span_1, true);
2759
+ $20.reset(span_1);
2760
+ $20.template_effect(() => $20.set_text(text_1, $$props.prefix));
2761
+ $20.append($$anchor2, span_1);
2762
+ };
2763
+ $20.if(node, ($$render) => {
2764
+ if ($$props.prefix)
2765
+ $$render(consequent);
2766
+ });
2767
+ }
2768
+ var span_2 = $20.sibling(node, 2);
2769
+ var text_2 = $20.child(span_2, true);
2770
+ $20.reset(span_2);
2771
+ var node_1 = $20.sibling(span_2, 2);
2772
+ {
2773
+ var consequent_1 = ($$anchor2) => {
2774
+ var span_3 = root_29();
2775
+ var text_3 = $20.child(span_3, true);
2776
+ $20.reset(span_3);
2777
+ $20.template_effect(() => $20.set_text(text_3, $$props.suffix));
2778
+ $20.append($$anchor2, span_3);
2779
+ };
2780
+ $20.if(node_1, ($$render) => {
2781
+ if ($$props.suffix)
2782
+ $$render(consequent_1);
2783
+ });
2784
+ }
2785
+ var div_2 = $20.sibling(node_1, 2);
2786
+ var node_2 = $20.child(div_2);
2787
+ {
2788
+ var consequent_3 = ($$anchor2) => {
2789
+ var button = root_35();
2790
+ var node_3 = $20.child(button);
2791
+ {
2792
+ var consequent_2 = ($$anchor3) => {
2793
+ var svg = root_45();
2794
+ $20.append($$anchor3, svg);
2795
+ };
2796
+ var alternate = ($$anchor3) => {
2797
+ var svg_1 = root_54();
2798
+ $20.append($$anchor3, svg_1);
2799
+ };
2800
+ $20.if(node_3, ($$render) => {
2801
+ if ($20.get(revealed))
2802
+ $$render(consequent_2);
2803
+ else
2804
+ $$render(alternate, -1);
2805
+ });
2806
+ }
2807
+ $20.reset(button);
2808
+ $20.template_effect(() => {
2809
+ $20.set_attribute(button, "aria-pressed", $20.get(revealed));
2810
+ $20.set_attribute(button, "aria-label", $20.get(revealed) ? `Hide ${label()}` : `Reveal ${label()}`);
2811
+ });
2812
+ $20.delegated("click", button, handleRevealToggle);
2813
+ $20.append($$anchor2, button);
2814
+ };
2815
+ $20.if(node_2, ($$render) => {
2816
+ if (allowReveal())
2817
+ $$render(consequent_3);
2818
+ });
2819
+ }
2820
+ var button_1 = $20.sibling(node_2, 2);
2821
+ var node_4 = $20.child(button_1);
2822
+ {
2823
+ var consequent_4 = ($$anchor2) => {
2824
+ var svg_2 = root_64();
2825
+ $20.append($$anchor2, svg_2);
2826
+ };
2827
+ var alternate_1 = ($$anchor2) => {
2828
+ var svg_3 = root_74();
2829
+ $20.append($$anchor2, svg_3);
2830
+ };
2831
+ $20.if(node_4, ($$render) => {
2832
+ if ($20.get(copied))
2833
+ $$render(consequent_4);
2834
+ else
2835
+ $$render(alternate_1, -1);
2836
+ });
2837
+ }
2838
+ $20.reset(button_1);
2839
+ $20.reset(div_2);
2840
+ $20.reset(div_1);
2841
+ var node_5 = $20.sibling(div_1, 2);
2842
+ {
2843
+ var consequent_5 = ($$anchor2) => {
2844
+ var div_3 = root_83();
2845
+ var node_6 = $20.child(div_3);
2846
+ $20.snippet(node_6, () => $$props.warning);
2847
+ $20.reset(div_3);
2848
+ $20.append($$anchor2, div_3);
2849
+ };
2850
+ $20.if(node_5, ($$render) => {
2851
+ if ($$props.warning)
2852
+ $$render(consequent_5);
2853
+ });
2854
+ }
2855
+ var node_7 = $20.sibling(node_5, 2);
2856
+ _visually_hidden_live_region(node_7, {
2857
+ get message() {
2858
+ return $20.get(copiedAnnouncement);
2859
+ }
2860
+ });
2861
+ $20.reset(div);
2862
+ $20.template_effect(() => {
2863
+ $20.set_attribute(span, "id", fieldId);
2864
+ $20.set_text(text7, label());
2865
+ $20.set_attribute(div_1, "aria-labelledby", fieldId);
2866
+ $20.set_attribute(span_2, "aria-label", $20.get(revealed) ? `${label()}, revealed` : `${label()}, masked`);
2867
+ $20.set_attribute(span_2, "data-cinder-masked", !$20.get(revealed) || undefined);
2868
+ $20.set_text(text_2, $20.get(revealed) ? $$props.value : MASK);
2869
+ $20.set_attribute(button_1, "aria-label", `Copy ${label()}`);
2870
+ $20.set_attribute(button_1, "data-cinder-copied", $20.get(copied) || undefined);
2871
+ });
2872
+ $20.delegated("click", button_1, handleCopy);
2873
+ $20.append($$anchor, div);
2874
+ $20.pop();
2875
+ }
2876
+ $20.delegate(["click"]);
2877
+
2878
+ // src/components/status-dot/status-dot.svelte
2879
+ import"svelte/internal/disclose-version";
2880
+ import * as $21 from "svelte/internal/client";
2881
+ var root_111 = $21.from_html(`<span class="cinder-status-dot__label"> </span>`);
2882
+ var root_211 = $21.from_html(`<span class="cinder-sr-only"> </span>`);
2883
+ var root15 = $21.from_html(`<span><span class="cinder-status-dot__indicator" aria-hidden="true"></span> <!> <!></span>`);
2884
+ function Status_dot($$anchor, $$props) {
2885
+ $21.push($$props, true);
2886
+ const connectionStatusMap = {
2887
+ connected: "online",
2888
+ connecting: "warning",
2889
+ disconnected: "offline",
2890
+ error: "danger"
2891
+ };
2892
+ const connectionLabels = {
2893
+ connected: "Connected",
2894
+ connecting: "Connecting",
2895
+ disconnected: "Disconnected",
2896
+ error: "Error"
2897
+ };
2898
+ let showLabel = $21.prop($$props, "showLabel", 3, true), size = $21.prop($$props, "size", 3, "md"), rest = $21.rest_props($$props, [
2899
+ "$$slots",
2900
+ "$$events",
2901
+ "$$legacy",
2902
+ "status",
2903
+ "connectionState",
2904
+ "label",
2905
+ "live",
2906
+ "showLabel",
2907
+ "size",
2908
+ "class",
2909
+ "aria-label"
2910
+ ]);
2911
+ const normalizedAriaLabel = $21.derived(() => $$props["aria-label"]?.trim() ? $$props["aria-label"].trim() : undefined);
2912
+ const resolvedStatus = $21.derived(() => $$props.status ?? ($$props.connectionState === undefined ? "neutral" : connectionStatusMap[$$props.connectionState]));
2913
+ const resolvedLive = $21.derived(() => $$props.live ?? $$props.connectionState !== undefined);
2914
+ const normalizedLabel = $21.derived(() => $$props.label?.trim() ? $$props.label.trim() : $$props.connectionState === undefined ? undefined : connectionLabels[$$props.connectionState]);
2915
+ const hasVisibleLabel = $21.derived(() => showLabel() && $21.get(normalizedLabel) !== undefined);
2916
+ const resolvedAriaLabel = $21.derived(() => $21.get(normalizedAriaLabel) ?? $21.get(normalizedLabel) ?? $21.get(resolvedStatus));
2917
+ const visibleLabelIsLiveDuplicate = $21.derived(() => $21.get(resolvedLive) && $21.get(normalizedLabel) !== undefined && $21.get(resolvedAriaLabel) !== $21.get(normalizedLabel));
2918
+ const needsHiddenLiveLabel = $21.derived(() => $21.get(resolvedLive) && (!$21.get(hasVisibleLabel) || $21.get(visibleLabelIsLiveDuplicate)));
2919
+ var span = root15();
2920
+ $21.attribute_effect(span, ($0) => ({
2921
+ ...rest,
2922
+ class: $0,
2923
+ "data-cinder-status": $21.get(resolvedStatus),
2924
+ "data-cinder-state": $$props.connectionState,
2925
+ "data-cinder-size": size(),
2926
+ role: $21.get(resolvedLive) ? "status" : "img",
2927
+ "aria-live": $21.get(resolvedLive) ? "polite" : undefined,
2928
+ "aria-atomic": $21.get(resolvedLive) ? "true" : undefined,
2929
+ "aria-label": $21.get(resolvedLive) ? undefined : $21.get(resolvedAriaLabel)
2930
+ }), [() => classNames("cinder-status-dot", $$props.class)]);
2931
+ var node = $21.sibling($21.child(span), 2);
2932
+ {
2933
+ var consequent = ($$anchor2) => {
2934
+ var span_1 = root_111();
2935
+ var text7 = $21.child(span_1, true);
2936
+ $21.reset(span_1);
2937
+ $21.template_effect(() => {
2938
+ $21.set_attribute(span_1, "aria-hidden", $21.get(visibleLabelIsLiveDuplicate) ? "true" : undefined);
2939
+ $21.set_text(text7, $21.get(normalizedLabel));
2940
+ });
2941
+ $21.append($$anchor2, span_1);
2942
+ };
2943
+ $21.if(node, ($$render) => {
2944
+ if ($21.get(hasVisibleLabel))
2945
+ $$render(consequent);
2946
+ });
2947
+ }
2948
+ var node_1 = $21.sibling(node, 2);
2949
+ {
2950
+ var consequent_1 = ($$anchor2) => {
2951
+ var span_2 = root_211();
2952
+ var text_1 = $21.child(span_2, true);
2953
+ $21.reset(span_2);
2954
+ $21.template_effect(() => $21.set_text(text_1, $21.get(resolvedAriaLabel)));
2955
+ $21.append($$anchor2, span_2);
2956
+ };
2957
+ $21.if(node_1, ($$render) => {
2958
+ if ($21.get(needsHiddenLiveLabel))
2959
+ $$render(consequent_1);
2960
+ });
2961
+ }
2962
+ $21.reset(span);
2963
+ $21.append($$anchor, span);
2964
+ $21.pop();
2965
+ }
2966
+
2967
+ // src/components/approval-card/approval-card-state.ts
2968
+ function resolveEffectiveApprovalState(approvalState, expirationTimestamp, currentTime) {
2969
+ if (approvalState !== "pending" || expirationTimestamp === undefined)
2970
+ return approvalState;
2971
+ return resolveComparisonTime(currentTime) >= expirationTimestamp ? "expired" : approvalState;
2972
+ }
2973
+ function isApprovalActionable(approvalState, expirationTimestamp, currentTime) {
2974
+ if (approvalState !== "pending")
2975
+ return false;
2976
+ if (expirationTimestamp === undefined)
2977
+ return true;
2978
+ return resolveComparisonTime(currentTime) < expirationTimestamp;
2979
+ }
2980
+ function resolveComparisonTime(currentTime) {
2981
+ return currentTime ?? Date.now();
2982
+ }
2983
+
2984
+ // src/components/approval-card/approval-card.svelte
2985
+ var root_112 = $22.from_html(`<div class="cinder-approval-card__header"><div class="cinder-approval-card__title-group"><p class="cinder-approval-card__eyebrow"> </p> <h3 class="cinder-approval-card__title"> </h3> <p class="cinder-approval-card__description"> </p></div> <div class="cinder-approval-card__badges" role="group" aria-label="Approval status"><!> <!> <!></div></div>`);
2986
+ var root_65 = $22.from_html(`<div class="cinder-approval-card__metadata-item"><dt>Snapshot</dt> <dd> </dd></div>`);
2987
+ var root_75 = $22.from_html(`<section class="cinder-approval-card__section" aria-label="Sandbox context"><h4 class="cinder-approval-card__section-title">Sandbox</h4> <dl class="cinder-approval-card__metadata cinder-approval-card__metadata--compact"><div class="cinder-approval-card__metadata-item"><dt>Provider</dt> <dd> </dd></div> <div class="cinder-approval-card__metadata-item"><dt>Name</dt> <dd> </dd></div> <div class="cinder-approval-card__metadata-item"><dt>Working directory</dt> <dd> </dd></div></dl></section>`);
2988
+ var root_113 = $22.from_html(`<p class="cinder-approval-card__muted">Review the touched files and arguments before approving this file write.</p>`);
2989
+ var root_123 = $22.from_html(`<p class="cinder-approval-card__muted">Review the arguments and metadata before approving this operation.</p>`);
2990
+ var root_152 = $22.from_html(`<li> </li>`);
2991
+ var root_133 = $22.from_html(`<div class="cinder-approval-card__files"><div class="cinder-approval-card__section-heading"><h5 class="cinder-approval-card__subsection-title">Files touched</h5> <!></div> <ul class="cinder-approval-card__file-list"></ul></div>`);
2992
+ var root_172 = $22.from_html(`<p class="cinder-approval-card__muted">No arguments were provided.</p>`);
2993
+ var root_183 = $22.from_html(`<section class="cinder-approval-card__section" aria-label="Environment names"><h4 class="cinder-approval-card__section-title">Environment</h4> <div class="cinder-approval-card__environment-list"></div></section>`);
2994
+ var root_212 = $22.from_html(`<!> <!> <!> <!> <!>`, 1);
2995
+ var root_292 = $22.from_html(`<p class="cinder-approval-card__error" role="alert"> </p>`);
2996
+ var root_282 = $22.from_html(`<div class="cinder-approval-card__editor"><label class="cinder-approval-card__editor-label">Edited arguments JSON</label> <p class="cinder-approval-card__muted">Confirming parses this JSON and sends the parsed value to the approval callback.</p> <textarea class="cinder-approval-card__textarea" rows="8" spellcheck="false"></textarea> <!> <div class="cinder-approval-card__editor-actions"><!></div></div>`);
2997
+ var root_202 = $22.from_html(`<section class="cinder-approval-card__section cinder-approval-card__actions-section"><!> <!></section>`);
2998
+ var root_31 = $22.from_html(`<p class="cinder-approval-card__readonly-summary">No approval actions are available for this request.</p>`);
2999
+ var root_55 = $22.from_html(`<div class="cinder-approval-card__body"><dl class="cinder-approval-card__metadata" aria-label="Approval metadata"><div class="cinder-approval-card__metadata-item"><dt>Policy</dt> <dd> </dd></div> <div class="cinder-approval-card__metadata-item"><dt>Idempotency key</dt> <dd> </dd></div> <!></dl> <!> <section class="cinder-approval-card__section" aria-label="Operation details"><div class="cinder-approval-card__section-heading"><h4 class="cinder-approval-card__section-title">Operation</h4> <!></div> <!> <!></section> <section class="cinder-approval-card__section" aria-label="Arguments preview"><!></section> <!> <!></div>`);
3000
+ var root16 = $22.from_html(`<section><!></section>`);
3001
+ function Approval_card($$anchor, $$props) {
3002
+ const generatedId = $22.props_id();
3003
+ $22.push($$props, true);
3004
+ const ARGUMENTS_PREVIEW_MAX_CHARACTERS = 4096;
3005
+ let env = $22.prop($$props, "env", 19, () => []), editableArgs = $22.prop($$props, "editableArgs", 3, false), rest = $22.rest_props($$props, [
3006
+ "$$slots",
3007
+ "$$events",
3008
+ "$$legacy",
3009
+ "tool",
3010
+ "sandbox",
3011
+ "operation",
3012
+ "env",
3013
+ "snapshotId",
3014
+ "policyVersion",
3015
+ "idempotencyKey",
3016
+ "expiresAt",
3017
+ "state",
3018
+ "editableArgs",
3019
+ "onapprove",
3020
+ "onapprovewithedits",
3021
+ "ondeny",
3022
+ "onremember",
3023
+ "oncancel",
3024
+ "id",
3025
+ "class"
3026
+ ]);
3027
+ const rootId = $22.derived(() => $$props.id ?? generatedId);
3028
+ const titleId = $22.derived(() => `${$22.get(rootId)}-title`);
3029
+ const descriptionId = $22.derived(() => `${$22.get(rootId)}-description`);
3030
+ const editDescriptionId = $22.derived(() => `${$22.get(rootId)}-edit-description`);
3031
+ const editErrorId = $22.derived(() => `${$22.get(rootId)}-edit-error`);
3032
+ let currentTime = $22.state(undefined);
3033
+ let editingArgumentsSeedKey = $22.state(null);
3034
+ let editedArgumentsDrafts = $22.state($22.proxy({}));
3035
+ let expirationTimer;
3036
+ const expirationTimestamp = $22.derived(() => parseExpirationTimestamp($$props.expiresAt));
3037
+ const effectiveState = $22.derived(() => resolveEffectiveApprovalState($$props.state, $22.get(expirationTimestamp), $22.get(currentTime)));
3038
+ const isActionable = $22.derived(() => isApprovalActionable($$props.state, $22.get(expirationTimestamp), $22.get(currentTime)));
3039
+ const operationKindLabel = $22.derived(() => formatOperationKind($$props.operation.kind));
3040
+ const riskLabel = $22.derived(() => formatRisk($$props.tool.risk));
3041
+ const stateText = $22.derived(() => formatState($22.get(effectiveState)));
3042
+ const stateDescription = $22.derived(() => $22.get(isActionable) ? `${$22.get(operationKindLabel)} approval is waiting for a decision.` : `No approval actions are available because this request is ${$22.get(stateText).toLowerCase()}.`);
3043
+ const expirationText = $22.derived(() => {
3044
+ if ($22.get(effectiveState) === "expired")
3045
+ return "Expired";
3046
+ if ($$props.state !== "pending" || $22.get(expirationTimestamp) === undefined || $22.get(currentTime) === undefined) {
3047
+ return;
3048
+ }
3049
+ return `Expires in ${formatRemainingTime($22.get(expirationTimestamp) - $22.get(currentTime))}`;
3050
+ });
3051
+ const hasArgumentsPreview = $22.derived(() => $$props.operation.argsPreview !== undefined);
3052
+ const editableArgumentsValue = $22.derived(() => normalizeArgumentsPreviewValue($$props.operation.argsPreview));
3053
+ const argumentsPreview = $22.derived(() => prepareArgumentsPreview($22.get(editableArgumentsValue)));
3054
+ const filesTouched = $22.derived(() => $$props.operation.filesTouched ?? []);
3055
+ const filesTouchedLabel = $22.derived(() => `${$22.get(filesTouched).length} file${$22.get(filesTouched).length === 1 ? "" : "s"}`);
3056
+ const environmentNames = $22.derived(() => sanitizeEnvironmentNames(env()));
3057
+ const currentEditedArgumentsText = $22.derived(() => formatEditableArguments($22.get(editableArgumentsValue)));
3058
+ const currentEditedArgumentsSeedKey = $22.derived(() => `${$$props.idempotencyKey}\x00${$22.get(currentEditedArgumentsText)}`);
3059
+ const canEditArguments = $22.derived(() => editableArgs() && $22.get(hasArgumentsPreview));
3060
+ const editingArguments = $22.derived(() => $22.get(canEditArguments) && $22.get(editingArgumentsSeedKey) === $22.get(currentEditedArgumentsSeedKey));
3061
+ const editedArgumentsText = $22.derived(() => $22.get(editedArgumentsDrafts)[$22.get(currentEditedArgumentsSeedKey)] ?? $22.get(currentEditedArgumentsText));
3062
+ const editParseResult = $22.derived(() => parseJsonText($22.get(editedArgumentsText)));
3063
+ const canConfirmEditedApproval = $22.derived(() => $22.get(canEditArguments) && $22.get(editParseResult).ok && typeof $$props.onapprovewithedits === "function");
3064
+ $22.user_effect(() => {
3065
+ clearExpirationTimer();
3066
+ if ($$props.state === "pending" && $22.get(expirationTimestamp) !== undefined) {
3067
+ const updateCurrentTime = () => {
3068
+ const nextCurrentTime = Date.now();
3069
+ $22.set(currentTime, nextCurrentTime, true);
3070
+ if (nextCurrentTime >= $22.get(expirationTimestamp)) {
3071
+ clearExpirationTimer();
3072
+ return;
3073
+ }
3074
+ const nextDelay = Math.min(1000, $22.get(expirationTimestamp) - nextCurrentTime);
3075
+ expirationTimer = setTimeout(updateCurrentTime, nextDelay);
3076
+ };
3077
+ updateCurrentTime();
3078
+ }
3079
+ return clearExpirationTimer;
3080
+ });
3081
+ onDestroy2(clearExpirationTimer);
3082
+ function clearExpirationTimer() {
3083
+ if (expirationTimer !== undefined) {
3084
+ clearTimeout(expirationTimer);
3085
+ expirationTimer = undefined;
3086
+ }
3087
+ }
3088
+ function parseExpirationTimestamp(value) {
3089
+ if (!value)
3090
+ return;
3091
+ const timestamp = Date.parse(value);
3092
+ return Number.isFinite(timestamp) ? timestamp : undefined;
3093
+ }
3094
+ function formatRemainingTime(milliseconds) {
3095
+ const totalSeconds = Math.max(0, Math.ceil(milliseconds / 1000));
3096
+ const hours = Math.floor(totalSeconds / 3600);
3097
+ const minutes = Math.floor(totalSeconds % 3600 / 60);
3098
+ const seconds = totalSeconds % 60;
3099
+ if (hours > 0)
3100
+ return `${hours}h ${minutes}m`;
3101
+ if (minutes > 0)
3102
+ return `${minutes}m ${seconds}s`;
3103
+ return `${seconds}s`;
3104
+ }
3105
+ function formatRisk(risk) {
3106
+ switch (risk) {
3107
+ case "low":
3108
+ return "Low risk";
3109
+ case "medium":
3110
+ return "Medium risk";
3111
+ case "high":
3112
+ return "High risk";
3113
+ }
3114
+ }
3115
+ function riskBadgeVariant(risk) {
3116
+ switch (risk) {
3117
+ case "low":
3118
+ return "success";
3119
+ case "medium":
3120
+ return "warning";
3121
+ case "high":
3122
+ return "danger";
3123
+ }
3124
+ }
3125
+ function formatOperationKind(kind) {
3126
+ switch (kind) {
3127
+ case "command":
3128
+ return "Command";
3129
+ case "file-write":
3130
+ return "File write";
3131
+ case "patch":
3132
+ return "Patch";
3133
+ case "other":
3134
+ return "Operation";
3135
+ }
3136
+ }
3137
+ function formatState(approvalState) {
3138
+ switch (approvalState) {
3139
+ case "pending":
3140
+ return "Pending";
3141
+ case "approved":
3142
+ return "Approved";
3143
+ case "approved_with_edits":
3144
+ return "Approved with edits";
3145
+ case "denied":
3146
+ return "Denied";
3147
+ case "expired":
3148
+ return "Expired";
3149
+ case "cancelled":
3150
+ return "Cancelled";
3151
+ }
3152
+ }
3153
+ function stateDotStatus(approvalState) {
3154
+ switch (approvalState) {
3155
+ case "pending":
3156
+ return "pending";
3157
+ case "approved":
3158
+ case "approved_with_edits":
3159
+ return "success";
3160
+ case "denied":
3161
+ return "danger";
3162
+ case "expired":
3163
+ return "neutral";
3164
+ case "cancelled":
3165
+ return "offline";
3166
+ }
3167
+ }
3168
+ function normalizeArgumentsPreviewValue(value) {
3169
+ if (typeof value !== "string")
3170
+ return value;
3171
+ try {
3172
+ return JSON.parse(value);
3173
+ } catch {
3174
+ return value;
3175
+ }
3176
+ }
3177
+ function prepareArgumentsPreview(value) {
3178
+ try {
3179
+ const serialized = JSON.stringify(value);
3180
+ if (typeof serialized !== "string" || serialized.length <= ARGUMENTS_PREVIEW_MAX_CHARACTERS) {
3181
+ return {
3182
+ value: typeof value === "string" ? serialized : value,
3183
+ truncated: false
3184
+ };
3185
+ }
3186
+ return {
3187
+ value: {
3188
+ notice: "Arguments preview truncated",
3189
+ originalCharacters: serialized.length,
3190
+ displayedCharacters: ARGUMENTS_PREVIEW_MAX_CHARACTERS,
3191
+ excerpt: serialized.slice(0, ARGUMENTS_PREVIEW_MAX_CHARACTERS)
3192
+ },
3193
+ truncated: true
3194
+ };
3195
+ } catch {
3196
+ return { value, truncated: false };
3197
+ }
3198
+ }
3199
+ function formatEditableArguments(value) {
3200
+ try {
3201
+ const serialized = JSON.stringify(value, null, 2);
3202
+ return serialized ?? "null";
3203
+ } catch {
3204
+ return "{}";
3205
+ }
3206
+ }
3207
+ function parseJsonText(text8) {
3208
+ try {
3209
+ return { ok: true, value: JSON.parse(text8) };
3210
+ } catch {
3211
+ return { ok: false, message: "Edited arguments must be valid JSON." };
3212
+ }
3213
+ }
3214
+ function sanitizeEnvironmentName(name) {
3215
+ const [firstPart] = name.split("=");
3216
+ return firstPart?.trim() ?? "";
3217
+ }
3218
+ function sanitizeEnvironmentNames(names) {
3219
+ const seen = [];
3220
+ const sanitizedNames = [];
3221
+ for (const name of names) {
3222
+ const sanitizedName = sanitizeEnvironmentName(name);
3223
+ if (!sanitizedName || seen.includes(sanitizedName))
3224
+ continue;
3225
+ seen.push(sanitizedName);
3226
+ sanitizedNames.push(sanitizedName);
3227
+ }
3228
+ return sanitizedNames;
3229
+ }
3230
+ function currentApprovalIsActionable() {
3231
+ const comparisonTime = $22.get(expirationTimestamp) === undefined ? $22.get(currentTime) : Date.now();
3232
+ const actionable = isApprovalActionable($$props.state, $22.get(expirationTimestamp), comparisonTime);
3233
+ if (!actionable && $$props.state === "pending" && $22.get(expirationTimestamp) !== undefined) {
3234
+ $22.set(currentTime, comparisonTime, true);
3235
+ }
3236
+ return actionable;
3237
+ }
3238
+ function beginEditingArguments() {
3239
+ if (!currentApprovalIsActionable())
3240
+ return;
3241
+ if (!$22.get(canEditArguments))
3242
+ return;
3243
+ if (!($22.get(currentEditedArgumentsSeedKey) in $22.get(editedArgumentsDrafts))) {
3244
+ $22.set(editedArgumentsDrafts, {
3245
+ ...$22.get(editedArgumentsDrafts),
3246
+ [$22.get(currentEditedArgumentsSeedKey)]: $22.get(currentEditedArgumentsText)
3247
+ }, true);
3248
+ }
3249
+ $22.set(editingArgumentsSeedKey, $22.get(currentEditedArgumentsSeedKey), true);
3250
+ }
3251
+ function handleEditedArgumentsInput(event) {
3252
+ $22.set(editedArgumentsDrafts, {
3253
+ ...$22.get(editedArgumentsDrafts),
3254
+ [$22.get(currentEditedArgumentsSeedKey)]: event.currentTarget.value
3255
+ }, true);
3256
+ }
3257
+ function handleApprove() {
3258
+ if (!currentApprovalIsActionable())
3259
+ return;
3260
+ $$props.onapprove?.();
3261
+ }
3262
+ function handleApproveWithEdits() {
3263
+ if (!currentApprovalIsActionable())
3264
+ return;
3265
+ if (!$22.get(canEditArguments))
3266
+ return;
3267
+ if (!$22.get(editParseResult).ok)
3268
+ return;
3269
+ $$props.onapprovewithedits?.($22.get(editParseResult).value);
3270
+ }
3271
+ function handleDeny() {
3272
+ if (!currentApprovalIsActionable())
3273
+ return;
3274
+ $$props.ondeny?.();
3275
+ }
3276
+ function handleRemember() {
3277
+ if (!currentApprovalIsActionable())
3278
+ return;
3279
+ $$props.onremember?.();
3280
+ }
3281
+ function handleCancel() {
3282
+ if (!currentApprovalIsActionable())
3283
+ return;
3284
+ $$props.oncancel?.();
3285
+ }
3286
+ var section = root16();
3287
+ $22.attribute_effect(section, ($0) => ({
3288
+ ...rest,
3289
+ id: $22.get(rootId),
3290
+ class: $0,
3291
+ "aria-labelledby": $22.get(titleId),
3292
+ "aria-describedby": $22.get(descriptionId),
3293
+ "data-cinder-state": $22.get(effectiveState),
3294
+ "data-cinder-risk": $$props.tool.risk
3295
+ }), [() => classNames("cinder-approval-card", $$props.class)]);
3296
+ var node = $22.child(section);
3297
+ {
3298
+ const header = ($$anchor2) => {
3299
+ var div = root_112();
3300
+ var div_1 = $22.child(div);
3301
+ var p = $22.child(div_1);
3302
+ var text_1 = $22.child(p);
3303
+ $22.reset(p);
3304
+ var h3 = $22.sibling(p, 2);
3305
+ var text_2 = $22.child(h3);
3306
+ $22.reset(h3);
3307
+ var p_1 = $22.sibling(h3, 2);
3308
+ var text_3 = $22.child(p_1, true);
3309
+ $22.reset(p_1);
3310
+ $22.reset(div_1);
3311
+ var div_2 = $22.sibling(div_1, 2);
3312
+ var node_1 = $22.child(div_2);
3313
+ {
3314
+ let $0 = $22.derived(() => stateDotStatus($22.get(effectiveState)));
3315
+ Status_dot(node_1, {
3316
+ get status() {
3317
+ return $22.get($0);
3318
+ },
3319
+ get label() {
3320
+ return $22.get(stateText);
3321
+ }
3322
+ });
3323
+ }
3324
+ var node_2 = $22.sibling(node_1, 2);
3325
+ {
3326
+ let $0 = $22.derived(() => riskBadgeVariant($$props.tool.risk));
3327
+ Badge(node_2, {
3328
+ get variant() {
3329
+ return $22.get($0);
3330
+ },
3331
+ size: "sm",
3332
+ children: ($$anchor3, $$slotProps) => {
3333
+ $22.next();
3334
+ var text_4 = $22.text();
3335
+ $22.template_effect(() => $22.set_text(text_4, $22.get(riskLabel)));
3336
+ $22.append($$anchor3, text_4);
3337
+ },
3338
+ $$slots: { default: true }
3339
+ });
3340
+ }
3341
+ var node_3 = $22.sibling(node_2, 2);
3342
+ {
3343
+ var consequent = ($$anchor3) => {
3344
+ {
3345
+ let $0 = $22.derived(() => $22.get(effectiveState) === "expired" ? "neutral" : "warning");
3346
+ Badge($$anchor3, {
3347
+ get variant() {
3348
+ return $22.get($0);
3349
+ },
3350
+ size: "sm",
3351
+ children: ($$anchor4, $$slotProps) => {
3352
+ $22.next();
3353
+ var text_5 = $22.text();
3354
+ $22.template_effect(() => $22.set_text(text_5, $22.get(expirationText)));
3355
+ $22.append($$anchor4, text_5);
3356
+ },
3357
+ $$slots: { default: true }
3358
+ });
3359
+ }
3360
+ };
3361
+ $22.if(node_3, ($$render) => {
3362
+ if ($22.get(expirationText))
3363
+ $$render(consequent);
3364
+ });
3365
+ }
3366
+ $22.reset(div_2);
3367
+ $22.reset(div);
3368
+ $22.template_effect(() => {
3369
+ $22.set_text(text_1, `${$22.get(operationKindLabel) ?? ""} approval`);
3370
+ $22.set_attribute(h3, "id", $22.get(titleId));
3371
+ $22.set_text(text_2, `Approval required for ${$$props.tool.name ?? ""}`);
3372
+ $22.set_attribute(p_1, "id", $22.get(descriptionId));
3373
+ $22.set_text(text_3, $22.get(stateDescription));
3374
+ });
3375
+ $22.append($$anchor2, div);
3376
+ };
3377
+ Card(node, {
3378
+ padding: "none",
3379
+ class: "cinder-approval-card__surface",
3380
+ header,
3381
+ children: ($$anchor2, $$slotProps) => {
3382
+ var div_3 = root_55();
3383
+ var dl = $22.child(div_3);
3384
+ var div_4 = $22.child(dl);
3385
+ var dd = $22.sibling($22.child(div_4), 2);
3386
+ var text_6 = $22.child(dd, true);
3387
+ $22.reset(dd);
3388
+ $22.reset(div_4);
3389
+ var div_5 = $22.sibling(div_4, 2);
3390
+ var dd_1 = $22.sibling($22.child(div_5), 2);
3391
+ var text_7 = $22.child(dd_1, true);
3392
+ $22.reset(dd_1);
3393
+ $22.reset(div_5);
3394
+ var node_4 = $22.sibling(div_5, 2);
3395
+ {
3396
+ var consequent_1 = ($$anchor3) => {
3397
+ var div_6 = root_65();
3398
+ var dd_2 = $22.sibling($22.child(div_6), 2);
3399
+ var text_8 = $22.child(dd_2, true);
3400
+ $22.reset(dd_2);
3401
+ $22.reset(div_6);
3402
+ $22.template_effect(() => $22.set_text(text_8, $$props.snapshotId));
3403
+ $22.append($$anchor3, div_6);
3404
+ };
3405
+ $22.if(node_4, ($$render) => {
3406
+ if ($$props.snapshotId)
3407
+ $$render(consequent_1);
3408
+ });
3409
+ }
3410
+ $22.reset(dl);
3411
+ var node_5 = $22.sibling(dl, 2);
3412
+ {
3413
+ var consequent_2 = ($$anchor3) => {
3414
+ var section_1 = root_75();
3415
+ var dl_1 = $22.sibling($22.child(section_1), 2);
3416
+ var div_7 = $22.child(dl_1);
3417
+ var dd_3 = $22.sibling($22.child(div_7), 2);
3418
+ var text_9 = $22.child(dd_3, true);
3419
+ $22.reset(dd_3);
3420
+ $22.reset(div_7);
3421
+ var div_8 = $22.sibling(div_7, 2);
3422
+ var dd_4 = $22.sibling($22.child(div_8), 2);
3423
+ var text_10 = $22.child(dd_4, true);
3424
+ $22.reset(dd_4);
3425
+ $22.reset(div_8);
3426
+ var div_9 = $22.sibling(div_8, 2);
3427
+ var dd_5 = $22.sibling($22.child(div_9), 2);
3428
+ var text_11 = $22.child(dd_5, true);
3429
+ $22.reset(dd_5);
3430
+ $22.reset(div_9);
3431
+ $22.reset(dl_1);
3432
+ $22.reset(section_1);
3433
+ $22.template_effect(() => {
3434
+ $22.set_text(text_9, $$props.sandbox.provider);
3435
+ $22.set_text(text_10, $$props.sandbox.name);
3436
+ $22.set_text(text_11, $$props.sandbox.workingDir);
3437
+ });
3438
+ $22.append($$anchor3, section_1);
3439
+ };
3440
+ $22.if(node_5, ($$render) => {
3441
+ if ($$props.sandbox)
3442
+ $$render(consequent_2);
3443
+ });
3444
+ }
3445
+ var section_2 = $22.sibling(node_5, 2);
3446
+ var div_10 = $22.child(section_2);
3447
+ var node_6 = $22.sibling($22.child(div_10), 2);
3448
+ Badge(node_6, {
3449
+ size: "sm",
3450
+ mono: true,
3451
+ children: ($$anchor3, $$slotProps2) => {
3452
+ $22.next();
3453
+ var text_12 = $22.text();
3454
+ $22.template_effect(() => $22.set_text(text_12, $$props.operation.kind));
3455
+ $22.append($$anchor3, text_12);
3456
+ },
3457
+ $$slots: { default: true }
3458
+ });
3459
+ $22.reset(div_10);
3460
+ var node_7 = $22.sibling(div_10, 2);
3461
+ {
3462
+ var consequent_3 = ($$anchor3) => {
3463
+ Code_block($$anchor3, {
3464
+ get code() {
3465
+ return $$props.operation.command;
3466
+ },
3467
+ language: "shell",
3468
+ highlight: false
3469
+ });
3470
+ };
3471
+ var consequent_4 = ($$anchor3) => {
3472
+ Code_block($$anchor3, {
3473
+ get code() {
3474
+ return $$props.operation.diff;
3475
+ },
3476
+ language: "diff",
3477
+ highlight: false
3478
+ });
3479
+ };
3480
+ var consequent_5 = ($$anchor3) => {
3481
+ var p_2 = root_113();
3482
+ $22.append($$anchor3, p_2);
3483
+ };
3484
+ var alternate = ($$anchor3) => {
3485
+ var p_3 = root_123();
3486
+ $22.append($$anchor3, p_3);
3487
+ };
3488
+ $22.if(node_7, ($$render) => {
3489
+ if ($$props.operation.kind === "command" && $$props.operation.command)
3490
+ $$render(consequent_3);
3491
+ else if ($$props.operation.kind === "patch" && $$props.operation.diff)
3492
+ $$render(consequent_4, 1);
3493
+ else if ($$props.operation.kind === "file-write")
3494
+ $$render(consequent_5, 2);
3495
+ else
3496
+ $$render(alternate, -1);
3497
+ });
3498
+ }
3499
+ var node_8 = $22.sibling(node_7, 2);
3500
+ {
3501
+ var consequent_6 = ($$anchor3) => {
3502
+ var div_11 = root_133();
3503
+ var div_12 = $22.child(div_11);
3504
+ var node_9 = $22.sibling($22.child(div_12), 2);
3505
+ Badge(node_9, {
3506
+ size: "sm",
3507
+ children: ($$anchor4, $$slotProps2) => {
3508
+ $22.next();
3509
+ var text_13 = $22.text();
3510
+ $22.template_effect(() => $22.set_text(text_13, $22.get(filesTouchedLabel)));
3511
+ $22.append($$anchor4, text_13);
3512
+ },
3513
+ $$slots: { default: true }
3514
+ });
3515
+ $22.reset(div_12);
3516
+ var ul = $22.sibling(div_12, 2);
3517
+ $22.each(ul, 23, () => $22.get(filesTouched), (file, fileIndex) => `${fileIndex}:${file}`, ($$anchor4, file) => {
3518
+ var li = root_152();
3519
+ var text_14 = $22.child(li, true);
3520
+ $22.reset(li);
3521
+ $22.template_effect(() => $22.set_text(text_14, $22.get(file)));
3522
+ $22.append($$anchor4, li);
3523
+ });
3524
+ $22.reset(ul);
3525
+ $22.reset(div_11);
3526
+ $22.append($$anchor3, div_11);
3527
+ };
3528
+ $22.if(node_8, ($$render) => {
3529
+ if ($22.get(filesTouched).length > 0)
3530
+ $$render(consequent_6);
3531
+ });
3532
+ }
3533
+ $22.reset(section_2);
3534
+ var section_3 = $22.sibling(section_2, 2);
3535
+ var node_10 = $22.child(section_3);
3536
+ {
3537
+ var consequent_7 = ($$anchor3) => {
3538
+ Payload_inspector($$anchor3, {
3539
+ get value() {
3540
+ return $22.get(argumentsPreview).value;
3541
+ },
3542
+ get truncated() {
3543
+ return $22.get(argumentsPreview).truncated;
3544
+ },
3545
+ label: "Arguments preview"
3546
+ });
3547
+ };
3548
+ var alternate_1 = ($$anchor3) => {
3549
+ var p_4 = root_172();
3550
+ $22.append($$anchor3, p_4);
3551
+ };
3552
+ $22.if(node_10, ($$render) => {
3553
+ if ($22.get(hasArgumentsPreview))
3554
+ $$render(consequent_7);
3555
+ else
3556
+ $$render(alternate_1, -1);
3557
+ });
3558
+ }
3559
+ $22.reset(section_3);
3560
+ var node_11 = $22.sibling(section_3, 2);
3561
+ {
3562
+ var consequent_8 = ($$anchor3) => {
3563
+ var section_4 = root_183();
3564
+ var div_13 = $22.sibling($22.child(section_4), 2);
3565
+ $22.each(div_13, 23, () => $22.get(environmentNames), (environmentName, environmentIndex) => `${environmentIndex}:${environmentName}`, ($$anchor4, environmentName) => {
3566
+ Secret_value_field($$anchor4, {
3567
+ get value() {
3568
+ return $22.get(environmentName);
3569
+ },
3570
+ get label() {
3571
+ return $22.get(environmentName);
3572
+ }
3573
+ });
3574
+ });
3575
+ $22.reset(div_13);
3576
+ $22.reset(section_4);
3577
+ $22.append($$anchor3, section_4);
3578
+ };
3579
+ $22.if(node_11, ($$render) => {
3580
+ if ($22.get(environmentNames).length > 0)
3581
+ $$render(consequent_8);
3582
+ });
3583
+ }
3584
+ var node_12 = $22.sibling(node_11, 2);
3585
+ {
3586
+ var consequent_12 = ($$anchor3) => {
3587
+ var section_5 = root_202();
3588
+ var node_13 = $22.child(section_5);
3589
+ Button_group(node_13, {
3590
+ label: "Approval actions",
3591
+ children: ($$anchor4, $$slotProps2) => {
3592
+ var fragment_9 = root_212();
3593
+ var node_14 = $22.first_child(fragment_9);
3594
+ {
3595
+ let $0 = $22.derived(() => !$$props.onapprove);
3596
+ Button(node_14, {
3597
+ type: "button",
3598
+ variant: "primary",
3599
+ onclick: handleApprove,
3600
+ get disabled() {
3601
+ return $22.get($0);
3602
+ },
3603
+ children: ($$anchor5, $$slotProps3) => {
3604
+ $22.next();
3605
+ var text_15 = $22.text("Approve");
3606
+ $22.append($$anchor5, text_15);
3607
+ },
3608
+ $$slots: { default: true }
3609
+ });
3610
+ }
3611
+ var node_15 = $22.sibling(node_14, 2);
3612
+ {
3613
+ var consequent_9 = ($$anchor5) => {
3614
+ {
3615
+ let $0 = $22.derived(() => !$$props.onapprovewithedits);
3616
+ Button($$anchor5, {
3617
+ type: "button",
3618
+ variant: "secondary",
3619
+ onclick: beginEditingArguments,
3620
+ get disabled() {
3621
+ return $22.get($0);
3622
+ },
3623
+ children: ($$anchor6, $$slotProps3) => {
3624
+ $22.next();
3625
+ var text_16 = $22.text("Approve with edits");
3626
+ $22.append($$anchor6, text_16);
3627
+ },
3628
+ $$slots: { default: true }
3629
+ });
3630
+ }
3631
+ };
3632
+ $22.if(node_15, ($$render) => {
3633
+ if ($22.get(canEditArguments))
3634
+ $$render(consequent_9);
3635
+ });
3636
+ }
3637
+ var node_16 = $22.sibling(node_15, 2);
3638
+ {
3639
+ let $0 = $22.derived(() => !$$props.ondeny);
3640
+ Button(node_16, {
3641
+ type: "button",
3642
+ variant: "soft-danger",
3643
+ onclick: handleDeny,
3644
+ get disabled() {
3645
+ return $22.get($0);
3646
+ },
3647
+ children: ($$anchor5, $$slotProps3) => {
3648
+ $22.next();
3649
+ var text_17 = $22.text("Deny");
3650
+ $22.append($$anchor5, text_17);
3651
+ },
3652
+ $$slots: { default: true }
3653
+ });
3654
+ }
3655
+ var node_17 = $22.sibling(node_16, 2);
3656
+ {
3657
+ let $0 = $22.derived(() => !$$props.onremember);
3658
+ Button(node_17, {
3659
+ type: "button",
3660
+ variant: "soft",
3661
+ onclick: handleRemember,
3662
+ get disabled() {
3663
+ return $22.get($0);
3664
+ },
3665
+ children: ($$anchor5, $$slotProps3) => {
3666
+ $22.next();
3667
+ var text_18 = $22.text("Remember");
3668
+ $22.append($$anchor5, text_18);
3669
+ },
3670
+ $$slots: { default: true }
3671
+ });
3672
+ }
3673
+ var node_18 = $22.sibling(node_17, 2);
3674
+ {
3675
+ let $0 = $22.derived(() => !$$props.oncancel);
3676
+ Button(node_18, {
3677
+ type: "button",
3678
+ variant: "ghost",
3679
+ onclick: handleCancel,
3680
+ get disabled() {
3681
+ return $22.get($0);
3682
+ },
3683
+ children: ($$anchor5, $$slotProps3) => {
3684
+ $22.next();
3685
+ var text_19 = $22.text("Cancel");
3686
+ $22.append($$anchor5, text_19);
3687
+ },
3688
+ $$slots: { default: true }
3689
+ });
3690
+ }
3691
+ $22.append($$anchor4, fragment_9);
3692
+ },
3693
+ $$slots: { default: true }
3694
+ });
3695
+ var node_19 = $22.sibling(node_13, 2);
3696
+ {
3697
+ var consequent_11 = ($$anchor4) => {
3698
+ var div_14 = root_282();
3699
+ var label = $22.child(div_14);
3700
+ var p_5 = $22.sibling(label, 2);
3701
+ var textarea = $22.sibling(p_5, 2);
3702
+ $22.remove_textarea_child(textarea);
3703
+ var node_20 = $22.sibling(textarea, 2);
3704
+ {
3705
+ var consequent_10 = ($$anchor5) => {
3706
+ var p_6 = root_292();
3707
+ var text_20 = $22.child(p_6, true);
3708
+ $22.reset(p_6);
3709
+ $22.template_effect(() => {
3710
+ $22.set_attribute(p_6, "id", $22.get(editErrorId));
3711
+ $22.set_text(text_20, $22.get(editParseResult).message);
3712
+ });
3713
+ $22.append($$anchor5, p_6);
3714
+ };
3715
+ $22.if(node_20, ($$render) => {
3716
+ if (!$22.get(editParseResult).ok)
3717
+ $$render(consequent_10);
3718
+ });
3719
+ }
3720
+ var div_15 = $22.sibling(node_20, 2);
3721
+ var node_21 = $22.child(div_15);
3722
+ {
3723
+ let $0 = $22.derived(() => !$22.get(canConfirmEditedApproval));
3724
+ Button(node_21, {
3725
+ type: "button",
3726
+ variant: "primary",
3727
+ onclick: handleApproveWithEdits,
3728
+ get disabled() {
3729
+ return $22.get($0);
3730
+ },
3731
+ children: ($$anchor5, $$slotProps2) => {
3732
+ $22.next();
3733
+ var text_21 = $22.text("Confirm edited approval");
3734
+ $22.append($$anchor5, text_21);
3735
+ },
3736
+ $$slots: { default: true }
3737
+ });
3738
+ }
3739
+ $22.reset(div_15);
3740
+ $22.reset(div_14);
3741
+ $22.template_effect(() => {
3742
+ $22.set_attribute(label, "for", `${$22.get(rootId)}-edited-arguments`);
3743
+ $22.set_attribute(p_5, "id", $22.get(editDescriptionId));
3744
+ $22.set_attribute(textarea, "id", `${$22.get(rootId)}-edited-arguments`);
3745
+ $22.set_value(textarea, $22.get(editedArgumentsText));
3746
+ $22.set_attribute(textarea, "aria-describedby", $22.get(editParseResult).ok ? $22.get(editDescriptionId) : `${$22.get(editDescriptionId)} ${$22.get(editErrorId)}`);
3747
+ $22.set_attribute(textarea, "aria-invalid", $22.get(editParseResult).ok ? undefined : "true");
3748
+ });
3749
+ $22.delegated("input", textarea, handleEditedArgumentsInput);
3750
+ $22.append($$anchor4, div_14);
3751
+ };
3752
+ $22.if(node_19, ($$render) => {
3753
+ if ($22.get(editingArguments))
3754
+ $$render(consequent_11);
3755
+ });
3756
+ }
3757
+ $22.reset(section_5);
3758
+ $22.append($$anchor3, section_5);
3759
+ };
3760
+ var alternate_2 = ($$anchor3) => {
3761
+ var p_7 = root_31();
3762
+ $22.append($$anchor3, p_7);
3763
+ };
3764
+ $22.if(node_12, ($$render) => {
3765
+ if ($22.get(isActionable))
3766
+ $$render(consequent_12);
3767
+ else
3768
+ $$render(alternate_2, -1);
3769
+ });
3770
+ }
3771
+ $22.reset(div_3);
3772
+ $22.template_effect(() => {
3773
+ $22.set_text(text_6, $$props.policyVersion);
3774
+ $22.set_text(text_7, $$props.idempotencyKey);
3775
+ });
3776
+ $22.append($$anchor2, div_3);
3777
+ },
3778
+ $$slots: { header: true, default: true }
3779
+ });
3780
+ }
3781
+ $22.reset(section);
3782
+ $22.append($$anchor, section);
3783
+ $22.pop();
3784
+ }
3785
+ $22.delegate(["input"]);
3786
+
3787
+ // src/components/approval-card/index.ts
3788
+ var approval_card_default = Approval_card;
3789
+ export {
3790
+ approval_card_default as default,
3791
+ Approval_card as ApprovalCard
3792
+ };
3793
+
3794
+ //# debugId=E5B580618418CC6864756E2164756E21