@lostgradient/cinder 0.8.0 → 0.11.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 (371) hide show
  1. package/CHANGELOG.md +25 -0
  2. package/README.md +2 -2
  3. package/components.json +140 -18
  4. package/dist/components/_internal/command-list-context.d.ts +3 -3
  5. package/dist/components/_internal/create-command-list-state.svelte.d.ts +11 -11
  6. package/dist/components/access-gate/index.js +435 -218
  7. package/dist/components/approval-card/approval-card-actions.svelte.d.ts +16 -0
  8. package/dist/components/approval-card/approval-card-state.d.ts +65 -0
  9. package/dist/components/approval-card/approval-card.css +269 -92
  10. package/dist/components/approval-card/approval-card.schema.js +10 -31
  11. package/dist/components/approval-card/approval-card.svelte.d.ts +3 -3
  12. package/dist/components/approval-card/approval-card.types.d.ts +14 -28
  13. package/dist/components/approval-card/index.d.ts +1 -1
  14. package/dist/components/approval-card/index.js +4268 -2884
  15. package/dist/components/card/card.css +5 -0
  16. package/dist/components/card/card.schema.js +2 -2
  17. package/dist/components/card/card.types.d.ts +2 -2
  18. package/dist/components/card/index.js +2 -1
  19. package/dist/components/chat/builders.d.ts +17 -8
  20. package/dist/components/chat/chat.schema.js +44 -2
  21. package/dist/components/chat/chat.svelte.d.ts +4 -2
  22. package/dist/components/chat/chat.types.d.ts +34 -3
  23. package/dist/components/chat/container/chat.svelte.d.ts +4 -2
  24. package/dist/components/chat/conversation-model.d.ts +1 -1
  25. package/dist/components/chat/index.d.ts +4 -4
  26. package/dist/components/chat/index.js +2767 -6278
  27. package/dist/components/chat/input/chat-attachment-serialization.d.ts +9 -0
  28. package/dist/components/chat/input/chat-input.svelte.d.ts +22 -1
  29. package/dist/components/chat/input/index.d.ts +1 -0
  30. package/dist/components/chat/utilities/conversation.d.ts +6 -6
  31. package/dist/components/chat-composer-popover/chat-composer-popover-filter.d.ts +11 -0
  32. package/dist/components/chat-composer-popover/chat-composer-popover.css +7 -0
  33. package/dist/components/chat-composer-popover/chat-composer-popover.css.d.ts +1 -0
  34. package/dist/components/chat-composer-popover/chat-composer-popover.schema.d.ts +3 -0
  35. package/dist/components/chat-composer-popover/chat-composer-popover.schema.js +150 -0
  36. package/dist/components/chat-composer-popover/chat-composer-popover.svelte.d.ts +46 -0
  37. package/dist/components/chat-composer-popover/chat-composer-popover.types.d.ts +77 -0
  38. package/dist/components/chat-composer-popover/chat-composer-popover.variables.d.ts +2 -0
  39. package/dist/components/chat-composer-popover/chat-composer-popover.variables.js +61 -0
  40. package/dist/components/chat-composer-popover/index.d.ts +6 -0
  41. package/dist/components/chat-composer-popover/index.js +3285 -0
  42. package/dist/components/chat-conversation-header/index.js +577 -4537
  43. package/dist/components/chat-conversation-list/index.js +24 -3984
  44. package/dist/components/code-block/code-block.schema.js +5 -1
  45. package/dist/components/code-block/code-block.types.d.ts +6 -0
  46. package/dist/components/code-block/index.js +4 -4
  47. package/dist/components/command-item/index.js +7 -6
  48. package/dist/components/command-menu/command-menu.schema.js +5 -1
  49. package/dist/components/command-menu/command-menu.types.d.ts +2 -0
  50. package/dist/components/command-menu/index.js +48 -19
  51. package/dist/components/command-palette/index.js +40 -14
  52. package/dist/components/connection-indicator/connection-indicator.css +136 -0
  53. package/dist/components/connection-indicator/connection-indicator.css.d.ts +1 -0
  54. package/dist/components/connection-indicator/connection-indicator.schema.d.ts +3 -0
  55. package/dist/components/connection-indicator/connection-indicator.schema.js +89 -0
  56. package/dist/components/connection-indicator/connection-indicator.svelte.d.ts +21 -0
  57. package/dist/components/connection-indicator/connection-indicator.types.d.ts +46 -0
  58. package/dist/components/connection-indicator/connection-indicator.variables.d.ts +2 -0
  59. package/dist/components/connection-indicator/connection-indicator.variables.js +61 -0
  60. package/dist/components/connection-indicator/index.d.ts +5 -0
  61. package/dist/components/connection-indicator/index.js +409 -0
  62. package/dist/components/container/container.schema.js +4 -4
  63. package/dist/components/event-stream-viewer/index.js +44 -44
  64. package/dist/components/experimental/json-viewer/index.js +44 -44
  65. package/dist/components/invocation-rule-builder/index.d.ts +1 -1
  66. package/dist/components/invocation-rule-builder/index.js +305 -150
  67. package/dist/components/invocation-rule-builder/invocation-rule-builder.css +28 -0
  68. package/dist/components/invocation-rule-builder/invocation-rule-builder.schema.js +89 -5
  69. package/dist/components/invocation-rule-builder/invocation-rule-builder.svelte.d.ts +2 -1
  70. package/dist/components/invocation-rule-builder/invocation-rule-builder.types.d.ts +114 -16
  71. package/dist/components/json-schema-editor/index.js +5 -2
  72. package/dist/components/json-viewer/index.js +44 -44
  73. package/dist/components/json-viewer/json-viewer.css +10 -6
  74. package/dist/components/payload-inspector/index.d.ts +1 -1
  75. package/dist/components/payload-inspector/index.js +306 -1422
  76. package/dist/components/payload-inspector/payload-inspector.css +15 -75
  77. package/dist/components/payload-inspector/payload-inspector.schema.js +5 -41
  78. package/dist/components/payload-inspector/payload-inspector.svelte.d.ts +5 -5
  79. package/dist/components/payload-inspector/payload-inspector.types.d.ts +10 -56
  80. package/dist/components/run-step-timeline/index.d.ts +1 -1
  81. package/dist/components/run-step-timeline/index.js +992 -559
  82. package/dist/components/run-step-timeline/run-step-branch-disclosure.svelte.d.ts +17 -0
  83. package/dist/components/run-step-timeline/run-step-timeline.css +124 -0
  84. package/dist/components/run-step-timeline/run-step-timeline.schema.js +873 -350
  85. package/dist/components/run-step-timeline/run-step-timeline.svelte.d.ts +1 -15
  86. package/dist/components/run-step-timeline/run-step-timeline.types.d.ts +182 -5
  87. package/dist/components/run-step-timeline/run-step-timeline.utilities.d.ts +52 -0
  88. package/dist/components/schedule-builder/index.d.ts +5 -0
  89. package/dist/components/schedule-builder/index.js +3176 -0
  90. package/dist/components/schedule-builder/schedule-builder.css +121 -0
  91. package/dist/components/schedule-builder/schedule-builder.css.d.ts +1 -0
  92. package/dist/components/schedule-builder/schedule-builder.schema.d.ts +3 -0
  93. package/dist/components/schedule-builder/schedule-builder.schema.js +141 -0
  94. package/dist/components/schedule-builder/schedule-builder.svelte.d.ts +22 -0
  95. package/dist/components/schedule-builder/schedule-builder.types.d.ts +130 -0
  96. package/dist/components/schedule-builder/schedule-builder.utilities.d.ts +78 -0
  97. package/dist/components/schedule-builder/schedule-builder.variables.d.ts +2 -0
  98. package/dist/components/schedule-builder/schedule-builder.variables.js +61 -0
  99. package/dist/components/tab/index.js +5 -2
  100. package/dist/components/tab/tab.schema.js +7 -3
  101. package/dist/components/tab/tab.svelte.d.ts +2 -1
  102. package/dist/components/tab/tab.types.d.ts +8 -2
  103. package/dist/components/tabs/index.js +5 -2
  104. package/dist/components/tag-input/index.js +22 -4
  105. package/dist/components/tag-input/tag-input.schema.js +5 -1
  106. package/dist/components/tag-input/tag-input.types.d.ts +4 -0
  107. package/dist/components/team-section/index.js +2 -1
  108. package/dist/components/testimonial-section/index.js +2 -1
  109. package/dist/index.d.ts +10 -4
  110. package/dist/index.js +28577 -30168
  111. package/dist/server/components/access-gate/index.js +3 -1
  112. package/dist/server/components/accordion/index.js +2 -2
  113. package/dist/server/components/alert-dialog/index.js +2 -2
  114. package/dist/server/components/approval-card/index.js +15 -19
  115. package/dist/server/components/autocomplete/index.js +7 -7
  116. package/dist/server/components/avatar-group/index.js +5 -5
  117. package/dist/server/components/button-group/index.js +3 -5
  118. package/dist/server/components/card/index.js +2 -2
  119. package/dist/server/components/chat/index.js +15 -12
  120. package/dist/server/components/chat-composer-popover/index.js +26 -0
  121. package/dist/server/components/chat-conversation-header/index.js +10 -11
  122. package/dist/server/components/chat-conversation-list/index.js +4 -5
  123. package/dist/server/components/checkbox/index.js +3 -3
  124. package/dist/server/components/choice-grid/index.js +2 -2
  125. package/dist/server/components/code-block/index.js +2 -2
  126. package/dist/server/components/color-field/index.js +3 -3
  127. package/dist/server/components/combobox/index.js +6 -6
  128. package/dist/server/components/command-item/index.js +5 -3
  129. package/dist/server/components/command-menu/index.js +6 -4
  130. package/dist/server/components/command-palette/index.js +2 -2
  131. package/dist/server/components/confirm-dialog/index.js +2 -2
  132. package/dist/server/components/connection-indicator/index.js +16 -0
  133. package/dist/server/components/context-menu/index.js +5 -5
  134. package/dist/server/components/data-table/index.js +5 -5
  135. package/dist/server/components/date-picker/index.js +6 -6
  136. package/dist/server/components/date-range-field/index.js +7 -7
  137. package/dist/server/components/description-list/index.js +3 -5
  138. package/dist/server/components/diff-viewer/index.js +9 -8
  139. package/dist/server/components/drawer/index.js +3 -3
  140. package/dist/server/components/dropdown/index.js +4 -4
  141. package/dist/server/components/event-stream-viewer/index.js +2 -2
  142. package/dist/server/components/experimental/json-viewer/index.js +2 -2
  143. package/dist/server/components/faceted-filter-bar/index.js +1 -1
  144. package/dist/server/components/hover-card/index.js +1 -1
  145. package/dist/server/components/input/index.js +3 -3
  146. package/dist/server/components/invocation-rule-builder/index.js +1 -1
  147. package/dist/server/components/json-schema-editor/index.js +24 -23
  148. package/dist/server/components/json-viewer/index.js +2 -2
  149. package/dist/server/components/markdown-editor/index.js +13 -13
  150. package/dist/server/components/modal/index.js +1 -1
  151. package/dist/server/components/multi-select/index.js +1 -1
  152. package/dist/server/components/newsletter-section/index.js +3 -3
  153. package/dist/server/components/payload-inspector/index.js +4 -16
  154. package/dist/server/components/popover/index.js +5 -5
  155. package/dist/server/components/review-editor/index.js +27 -26
  156. package/dist/server/components/run-step-timeline/index.js +2 -2
  157. package/dist/server/components/schedule-builder/index.js +30 -0
  158. package/dist/server/components/schema-form/index.js +4 -4
  159. package/dist/server/components/secret-value-field/index.js +3 -5
  160. package/dist/server/components/segment/index.js +3 -3
  161. package/dist/server/components/segmented-control/index.js +4 -4
  162. package/dist/server/components/selection-popover/index.js +4 -4
  163. package/dist/server/components/sheet/index.js +2 -2
  164. package/dist/server/components/side-navigation/index.js +2 -2
  165. package/dist/server/components/sidebar/index.js +3 -3
  166. package/dist/server/components/tab/index.js +2 -2
  167. package/dist/server/components/table/index.js +3 -3
  168. package/dist/server/components/tabs/index.js +4 -4
  169. package/dist/server/components/tag-input/index.js +3 -3
  170. package/dist/server/components/team-section/index.js +8 -8
  171. package/dist/server/components/testimonial-section/index.js +2 -2
  172. package/dist/server/components/time-field/index.js +5 -3
  173. package/dist/server/components/toggle/index.js +2 -2
  174. package/dist/server/components/tooltip/index.js +1 -1
  175. package/dist/server/index.js +235 -211
  176. package/dist/server/{index.server-20y4mdhm.js → index.server-0chhpkg7.js} +40 -14
  177. package/dist/server/index.server-0sx92swg.js +9 -0
  178. package/dist/server/{index.server-ecm1vs3g.js → index.server-1nq7z1qw.js} +1 -1
  179. package/dist/server/{index.server-s9khh4ry.js → index.server-2bbwajb2.js} +3 -5
  180. package/dist/server/index.server-2hqrv7ca.js +9 -0
  181. package/dist/server/{index.server-69epaape.js → index.server-2qj6s2mh.js} +1 -1
  182. package/dist/server/{index.server-gxf0d1p5.js → index.server-2s5h1d05.js} +2 -2
  183. package/dist/server/{index.server-qfa2rxzx.js → index.server-2zdbz3rj.js} +3 -5
  184. package/dist/server/{index.server-pt8b65mt.js → index.server-38aywdk1.js} +1 -1
  185. package/dist/server/{index.server-0jhra85x.js → index.server-3w72dxz7.js} +4 -4
  186. package/dist/server/{index.server-rermas0k.js → index.server-47v2fhp4.js} +4 -4
  187. package/dist/server/{index.server-v4zabrsx.js → index.server-4x4hgvqe.js} +434 -26
  188. package/dist/server/{index.server-9j5sym59.js → index.server-4x91gzy1.js} +2 -2
  189. package/dist/server/{index.server-q48q15g7.js → index.server-4y2jtvv1.js} +4 -2
  190. package/dist/server/{index.server-j3ddzcaa.js → index.server-5gzyqv78.js} +6 -6
  191. package/dist/server/index.server-67qgdypc.js +9 -0
  192. package/dist/server/index.server-6hnfzc7f.js +263 -0
  193. package/dist/server/{index.server-9jete4xx.js → index.server-6sh11ap6.js} +4 -4
  194. package/dist/server/{index.server-4ztq565m.js → index.server-85p4ydph.js} +1 -1
  195. package/dist/server/{index.server-4nk7gy0q.js → index.server-894t97kv.js} +1 -1
  196. package/dist/server/{index.server-1vscnped.js → index.server-8dt36sdm.js} +2 -1
  197. package/dist/server/{index.server-bfsbp9dz.js → index.server-8xvc73zh.js} +4 -4
  198. package/dist/server/{index.server-cvnw3hw9.js → index.server-9kz37z89.js} +1 -1
  199. package/dist/server/{index.server-kc1k02tk.js → index.server-9ykk1kbg.js} +1 -1
  200. package/dist/server/{index.server-g789yep6.js → index.server-aqethy0w.js} +2 -2
  201. package/dist/server/index.server-be9bpqeh.js +93 -0
  202. package/dist/server/{index.server-wc9aggfz.js → index.server-bmxbsk4y.js} +7 -7
  203. package/dist/server/{index.server-f3z7tpxr.js → index.server-c42b462p.js} +2 -4
  204. package/dist/server/{index.server-7vyzen5x.js → index.server-c5qv3p61.js} +171 -63
  205. package/dist/server/index.server-cch0eed5.js +144 -0
  206. package/dist/server/{index.server-q89dz8h1.js → index.server-d3pqthtp.js} +4 -3
  207. package/dist/server/{index.server-jk4rx4aa.js → index.server-dmmvwy6p.js} +1 -1
  208. package/dist/server/{index.server-hcfnae5y.js → index.server-dwwqssey.js} +4 -4
  209. package/dist/server/{index.server-e8x1hgw6.js → index.server-dz1r9xw5.js} +4 -4
  210. package/dist/server/{index.server-wm7mk5kw.js → index.server-ez5hp0ya.js} +1 -1
  211. package/dist/server/{index.server-wc8dbm5e.js → index.server-g95bk8rc.js} +4 -2
  212. package/dist/server/index.server-gkazv439.js +576 -0
  213. package/dist/server/index.server-gmh5ar16.js +2 -0
  214. package/dist/server/{index.server-dp9j2kkr.js → index.server-h0cvwvhy.js} +1 -1
  215. package/dist/server/{index.server-cbtg8rq5.js → index.server-h89zk5ev.js} +8 -8
  216. package/dist/server/{index.server-pacrqvyz.js → index.server-h90pjrez.js} +1 -1
  217. package/dist/server/{index.server-p8d04em5.js → index.server-hcsd5gdb.js} +6 -2
  218. package/dist/server/{index.server-n39drzes.js → index.server-hpeavvnq.js} +1 -1
  219. package/dist/server/{index.server-1p3patnj.js → index.server-hx91ng7z.js} +1 -1
  220. package/dist/server/{index.server-mehav5vs.js → index.server-jdcq5zza.js} +7 -7
  221. package/dist/server/{index.server-jync915v.js → index.server-jfrssta6.js} +25 -25
  222. package/dist/server/{index.server-jtj3r53y.js → index.server-jgb8yh5k.js} +1 -1
  223. package/dist/server/{index.server-ejyf7e48.js → index.server-jj76374p.js} +1 -1
  224. package/dist/server/{index.server-w1g5q9j9.js → index.server-jtgw9d23.js} +4 -2
  225. package/dist/server/{index.server-hd8gpehd.js → index.server-jxseyx33.js} +1 -1
  226. package/dist/server/{index.server-kg2sepsr.js → index.server-krqvnt6p.js} +14 -15
  227. package/dist/server/{index.server-0e1m3agz.js → index.server-ks49bprh.js} +1 -1
  228. package/dist/server/{index.server-f0hma3jp.js → index.server-kt0ncrqs.js} +1 -1
  229. package/dist/server/index.server-m0ezemav.js +170 -0
  230. package/dist/server/index.server-m191rm44.js +79 -0
  231. package/dist/server/{index.server-z721a5gp.js → index.server-n82rcv0m.js} +4 -4
  232. package/dist/server/{index.server-rhhmdxtz.js → index.server-np3c7kx0.js} +4 -4
  233. package/dist/server/{index.server-hpcs7tmh.js → index.server-p56xxef1.js} +1 -1
  234. package/dist/server/{index.server-w83kmcrx.js → index.server-pag862vz.js} +10 -10
  235. package/dist/server/index.server-qbkxz7r2.js +750 -0
  236. package/dist/server/{index.server-sh2rxejg.js → index.server-qke3ekjt.js} +1 -1
  237. package/dist/server/{index.server-73x2d3j3.js → index.server-rbpvcrr3.js} +1 -1
  238. package/dist/server/{index.server-8cxs4kya.js → index.server-rga8sc7j.js} +41 -44
  239. package/dist/server/{index.server-e3fnv1g6.js → index.server-sedjxt36.js} +5 -5
  240. package/dist/server/{index.server-pen9pxt6.js → index.server-sf3nk3j2.js} +2 -2
  241. package/dist/server/{index.server-f23vtaw4.js → index.server-tcay903b.js} +8 -7
  242. package/dist/server/{index.server-7fp0epev.js → index.server-veastatv.js} +4 -4
  243. package/dist/server/{index.server-jeqg2d22.js → index.server-xeqtpv61.js} +1 -1
  244. package/dist/server/{index.server-9s4na701.js → index.server-xjnge1yw.js} +4 -4
  245. package/dist/server/index.server-xtjjmsyq.js +315 -0
  246. package/dist/server/{index.server-hhxjaeen.js → index.server-xz99aed4.js} +4 -4
  247. package/dist/server/{index.server-vne4rzfa.js → index.server-y4n8vc08.js} +1 -1
  248. package/dist/server/{index.server-5d01cn4f.js → index.server-y83kqayt.js} +4 -4
  249. package/dist/server/{index.server-1nh09ck7.js → index.server-yhzydqxe.js} +5 -5
  250. package/dist/server/index.server-z38bxms8.js +734 -0
  251. package/dist/server/{index.server-atjc1qcq.js → index.server-z7hxtqs1.js} +1 -1
  252. package/dist/server/{index.server-w6k62afr.js → index.server-ze1ymmbw.js} +2 -2
  253. package/dist/server/{index.server-914v805w.js → index.server-zgd1g8mk.js} +1 -1
  254. package/dist/server/{index.server-aeexcxdp.js → index.server-zh3r8vfd.js} +1 -1
  255. package/dist/server/{index.server-10jb2jzm.js → index.server-zsjf8enc.js} +4 -4
  256. package/package.json +102 -5
  257. package/src/components/_internal/command-list-context.ts +3 -3
  258. package/src/components/_internal/create-command-list-state.svelte.ts +39 -13
  259. package/src/components/approval-card/approval-card-actions.svelte +168 -0
  260. package/src/components/approval-card/approval-card-state.ts +152 -1
  261. package/src/components/approval-card/approval-card.css +269 -92
  262. package/src/components/approval-card/approval-card.examples.json +3 -3
  263. package/src/components/approval-card/approval-card.schema.json +9 -30
  264. package/src/components/approval-card/approval-card.schema.ts +13 -31
  265. package/src/components/approval-card/approval-card.svelte +176 -470
  266. package/src/components/approval-card/approval-card.types.ts +15 -28
  267. package/src/components/approval-card/index.ts +1 -0
  268. package/src/components/card/card.css +5 -0
  269. package/src/components/card/card.schema.json +1 -1
  270. package/src/components/card/card.schema.ts +1 -1
  271. package/src/components/card/card.svelte +1 -0
  272. package/src/components/card/card.types.ts +2 -2
  273. package/src/components/chat/builders.ts +445 -14
  274. package/src/components/chat/chat.schema.json +36 -1
  275. package/src/components/chat/chat.schema.ts +44 -1
  276. package/src/components/chat/chat.svelte +12 -0
  277. package/src/components/chat/chat.types.ts +35 -3
  278. package/src/components/chat/container/chat.svelte +73 -3
  279. package/src/components/chat/conversation-model.ts +1 -0
  280. package/src/components/chat/index.ts +16 -3
  281. package/src/components/chat/input/chat-attachment-serialization.ts +63 -0
  282. package/src/components/chat/input/chat-input.svelte +22 -5
  283. package/src/components/chat/input/index.ts +5 -0
  284. package/src/components/chat/utilities/conversation.ts +33 -15
  285. package/src/components/chat-composer-popover/chat-composer-popover-filter.ts +68 -0
  286. package/src/components/chat-composer-popover/chat-composer-popover.css +7 -0
  287. package/src/components/chat-composer-popover/chat-composer-popover.examples.json +13 -0
  288. package/src/components/chat-composer-popover/chat-composer-popover.schema.json +90 -0
  289. package/src/components/chat-composer-popover/chat-composer-popover.schema.ts +95 -0
  290. package/src/components/chat-composer-popover/chat-composer-popover.svelte +234 -0
  291. package/src/components/chat-composer-popover/chat-composer-popover.types.ts +88 -0
  292. package/src/components/chat-composer-popover/chat-composer-popover.variables.json +1 -0
  293. package/src/components/chat-composer-popover/chat-composer-popover.variables.ts +3 -0
  294. package/src/components/chat-composer-popover/index.ts +19 -0
  295. package/src/components/code-block/code-block.schema.json +4 -0
  296. package/src/components/code-block/code-block.schema.ts +5 -0
  297. package/src/components/code-block/code-block.svelte +3 -3
  298. package/src/components/code-block/code-block.types.ts +6 -0
  299. package/src/components/command-item/command-item.svelte +7 -6
  300. package/src/components/command-menu/command-menu.schema.json +4 -0
  301. package/src/components/command-menu/command-menu.schema.ts +4 -0
  302. package/src/components/command-menu/command-menu.svelte +16 -5
  303. package/src/components/command-menu/command-menu.types.ts +2 -0
  304. package/src/components/connection-indicator/connection-indicator.css +136 -0
  305. package/src/components/connection-indicator/connection-indicator.examples.json +31 -0
  306. package/src/components/connection-indicator/connection-indicator.schema.json +29 -0
  307. package/src/components/connection-indicator/connection-indicator.schema.ts +36 -0
  308. package/src/components/connection-indicator/connection-indicator.svelte +63 -0
  309. package/src/components/connection-indicator/connection-indicator.types.ts +58 -0
  310. package/src/components/connection-indicator/connection-indicator.variables.json +1 -0
  311. package/src/components/connection-indicator/connection-indicator.variables.ts +3 -0
  312. package/src/components/connection-indicator/index.ts +10 -0
  313. package/src/components/container/container.schema.json +3 -3
  314. package/src/components/container/container.schema.ts +3 -3
  315. package/src/components/invocation-rule-builder/index.ts +4 -0
  316. package/src/components/invocation-rule-builder/invocation-rule-builder.css +28 -0
  317. package/src/components/invocation-rule-builder/invocation-rule-builder.examples.json +6 -0
  318. package/src/components/invocation-rule-builder/invocation-rule-builder.schema.json +76 -3
  319. package/src/components/invocation-rule-builder/invocation-rule-builder.schema.ts +83 -3
  320. package/src/components/invocation-rule-builder/invocation-rule-builder.svelte +326 -113
  321. package/src/components/invocation-rule-builder/invocation-rule-builder.types.ts +157 -43
  322. package/src/components/json-viewer/_json-viewer-node.svelte +15 -1
  323. package/src/components/json-viewer/json-viewer.css +10 -6
  324. package/src/components/payload-inspector/index.ts +0 -2
  325. package/src/components/payload-inspector/payload-inspector.css +15 -75
  326. package/src/components/payload-inspector/payload-inspector.examples.json +5 -5
  327. package/src/components/payload-inspector/payload-inspector.schema.json +3 -31
  328. package/src/components/payload-inspector/payload-inspector.schema.ts +3 -36
  329. package/src/components/payload-inspector/payload-inspector.svelte +46 -239
  330. package/src/components/payload-inspector/payload-inspector.types.ts +10 -58
  331. package/src/components/run-step-timeline/index.ts +8 -0
  332. package/src/components/run-step-timeline/run-step-branch-disclosure.svelte +16 -0
  333. package/src/components/run-step-timeline/run-step-timeline.css +124 -0
  334. package/src/components/run-step-timeline/run-step-timeline.examples.json +18 -0
  335. package/src/components/run-step-timeline/run-step-timeline.schema.json +872 -349
  336. package/src/components/run-step-timeline/run-step-timeline.schema.ts +931 -349
  337. package/src/components/run-step-timeline/run-step-timeline.svelte +387 -268
  338. package/src/components/run-step-timeline/run-step-timeline.types.ts +192 -5
  339. package/src/components/run-step-timeline/run-step-timeline.utilities.ts +242 -0
  340. package/src/components/schedule-builder/index.ts +14 -0
  341. package/src/components/schedule-builder/schedule-builder.css +121 -0
  342. package/src/components/schedule-builder/schedule-builder.examples.json +31 -0
  343. package/src/components/schedule-builder/schedule-builder.schema.json +78 -0
  344. package/src/components/schedule-builder/schedule-builder.schema.ts +86 -0
  345. package/src/components/schedule-builder/schedule-builder.svelte +629 -0
  346. package/src/components/schedule-builder/schedule-builder.types.ts +137 -0
  347. package/src/components/schedule-builder/schedule-builder.utilities.ts +344 -0
  348. package/src/components/schedule-builder/schedule-builder.variables.json +1 -0
  349. package/src/components/schedule-builder/schedule-builder.variables.ts +3 -0
  350. package/src/components/tab/tab.schema.json +6 -2
  351. package/src/components/tab/tab.schema.ts +8 -2
  352. package/src/components/tab/tab.svelte +9 -5
  353. package/src/components/tab/tab.types.ts +8 -2
  354. package/src/components/tag-input/tag-input.schema.json +4 -0
  355. package/src/components/tag-input/tag-input.schema.ts +4 -0
  356. package/src/components/tag-input/tag-input.svelte +20 -3
  357. package/src/components/tag-input/tag-input.types.ts +4 -0
  358. package/src/index.ts +41 -5
  359. package/src/styles/components.css +3 -0
  360. package/dist/server/index-49we2xfs.js +0 -344
  361. package/dist/server/index-8fhvxk30.js +0 -265
  362. package/dist/server/index-x2ysg8ds.js +0 -388
  363. package/dist/server/index.server-20j0jh30.js +0 -9
  364. package/dist/server/index.server-dc35kh7d.js +0 -1835
  365. package/dist/server/index.server-kd4b0342.js +0 -607
  366. package/dist/server/index.server-n5cdmsz4.js +0 -30
  367. package/dist/server/index.server-pxg74pyp.js +0 -393
  368. package/dist/server/index.server-rjap4k7y.js +0 -1389
  369. package/dist/server/index.server-vt6sn9y4.js +0 -447
  370. package/dist/server/index.server-w63n618v.js +0 -9
  371. package/dist/server/index.server-y2pa1k46.js +0 -9
@@ -56,7 +56,7 @@ import"@lostgradient/cinder/run-step-timeline/styles";
56
56
 
57
57
  // src/components/run-step-timeline/run-step-timeline.svelte
58
58
  import"svelte/internal/disclose-version";
59
- import * as $7 from "svelte/internal/client";
59
+ import * as $8 from "svelte/internal/client";
60
60
 
61
61
  // src/utilities/class-names.ts
62
62
  function classNames(...parts) {
@@ -323,9 +323,40 @@ function Collapsible($$anchor, $$props) {
323
323
  }
324
324
  $3.delegate(["click"]);
325
325
 
326
- // src/components/link/link.svelte
326
+ // src/components/run-step-timeline/run-step-branch-disclosure.svelte
327
327
  import"svelte/internal/disclose-version";
328
328
  import * as $4 from "svelte/internal/client";
329
+ function Run_step_branch_disclosure($$anchor, $$props) {
330
+ let open = $4.state($4.proxy($$props.initialOpen));
331
+ Collapsible($$anchor, {
332
+ get trigger() {
333
+ return $$props.trigger;
334
+ },
335
+ get triggerAriaLabel() {
336
+ return $$props.triggerAriaLabel;
337
+ },
338
+ get class() {
339
+ return $$props.class;
340
+ },
341
+ get open() {
342
+ return $4.get(open);
343
+ },
344
+ set open($$value) {
345
+ $4.set(open, $$value, true);
346
+ },
347
+ children: ($$anchor2, $$slotProps) => {
348
+ var fragment_1 = $4.comment();
349
+ var node = $4.first_child(fragment_1);
350
+ $4.snippet(node, () => $$props.children);
351
+ $4.append($$anchor2, fragment_1);
352
+ },
353
+ $$slots: { default: true }
354
+ });
355
+ }
356
+
357
+ // src/components/link/link.svelte
358
+ import"svelte/internal/disclose-version";
359
+ import * as $5 from "svelte/internal/client";
329
360
  var rest_excludes3 = new Set([
330
361
  "$$slots",
331
362
  "$$events",
@@ -341,17 +372,17 @@ var rest_excludes3 = new Set([
341
372
  "class",
342
373
  "children"
343
374
  ]);
344
- var root3 = $4.from_html(`<span><!></span>`);
345
- var root_13 = $4.from_html(`<a><!></a>`);
375
+ var root3 = $5.from_html(`<span><!></span>`);
376
+ var root_13 = $5.from_html(`<a><!></a>`);
346
377
  function Link($$anchor, $$props) {
347
- $4.push($$props, true);
348
- let underline = $4.prop($$props, "underline", 3, "hover"), color = $4.prop($$props, "color", 3, "primary"), external = $4.prop($$props, "external", 3, false), disabled = $4.prop($$props, "disabled", 3, false), rest = $4.rest_props($$props, rest_excludes3);
349
- const spanAttributes = $4.derived(() => rest);
350
- const resolvedTarget = $4.derived(() => disabled() ? undefined : external() && !$$props.target ? "_blank" : $$props.target);
351
- const resolvedRel = $4.derived(() => {
378
+ $5.push($$props, true);
379
+ let underline = $5.prop($$props, "underline", 3, "hover"), color = $5.prop($$props, "color", 3, "primary"), external = $5.prop($$props, "external", 3, false), disabled = $5.prop($$props, "disabled", 3, false), rest = $5.rest_props($$props, rest_excludes3);
380
+ const spanAttributes = $5.derived(() => rest);
381
+ const resolvedTarget = $5.derived(() => disabled() ? undefined : external() && !$$props.target ? "_blank" : $$props.target);
382
+ const resolvedRel = $5.derived(() => {
352
383
  if (disabled())
353
384
  return;
354
- const needsSafeRel = external() || $4.get(resolvedTarget)?.toLowerCase() === "_blank";
385
+ const needsSafeRel = external() || $5.get(resolvedTarget)?.toLowerCase() === "_blank";
355
386
  const consumerParts = ($$props.rel ?? "").split(/\s+/).filter(Boolean);
356
387
  const seen = new Set;
357
388
  const merged = [];
@@ -372,58 +403,58 @@ function Link($$anchor, $$props) {
372
403
  }
373
404
  return merged.length > 0 ? merged.join(" ") : undefined;
374
405
  });
375
- const resolvedClass = $4.derived(() => classNames("cinder-link", $$props.class));
376
- var fragment = $4.comment();
377
- var node = $4.first_child(fragment);
406
+ const resolvedClass = $5.derived(() => classNames("cinder-link", $$props.class));
407
+ var fragment = $5.comment();
408
+ var node = $5.first_child(fragment);
378
409
  {
379
410
  var consequent = ($$anchor2) => {
380
411
  var span = root3();
381
- $4.attribute_effect(span, () => ({
382
- ...$4.get(spanAttributes),
383
- class: $4.get(resolvedClass),
412
+ $5.attribute_effect(span, () => ({
413
+ ...$5.get(spanAttributes),
414
+ class: $5.get(resolvedClass),
384
415
  "aria-disabled": "true",
385
416
  "data-cinder-link": true,
386
417
  "data-underline": underline(),
387
418
  "data-color": color(),
388
419
  "data-disabled": true
389
420
  }));
390
- var node_1 = $4.child(span);
391
- $4.snippet(node_1, () => $$props.children);
392
- $4.reset(span);
393
- $4.append($$anchor2, span);
421
+ var node_1 = $5.child(span);
422
+ $5.snippet(node_1, () => $$props.children);
423
+ $5.reset(span);
424
+ $5.append($$anchor2, span);
394
425
  };
395
426
  var alternate = ($$anchor2) => {
396
427
  var a = root_13();
397
- $4.attribute_effect(a, () => ({
428
+ $5.attribute_effect(a, () => ({
398
429
  ...rest,
399
430
  href: $$props.href,
400
431
  tabindex: $$props.tabindex,
401
- target: $4.get(resolvedTarget),
402
- rel: $4.get(resolvedRel),
403
- class: $4.get(resolvedClass),
432
+ target: $5.get(resolvedTarget),
433
+ rel: $5.get(resolvedRel),
434
+ class: $5.get(resolvedClass),
404
435
  "data-cinder-link": true,
405
436
  "data-underline": underline(),
406
437
  "data-color": color()
407
438
  }));
408
- var node_2 = $4.child(a);
409
- $4.snippet(node_2, () => $$props.children);
410
- $4.reset(a);
411
- $4.append($$anchor2, a);
439
+ var node_2 = $5.child(a);
440
+ $5.snippet(node_2, () => $$props.children);
441
+ $5.reset(a);
442
+ $5.append($$anchor2, a);
412
443
  };
413
- $4.if(node, ($$render) => {
444
+ $5.if(node, ($$render) => {
414
445
  if (disabled())
415
446
  $$render(consequent);
416
447
  else
417
448
  $$render(alternate, -1);
418
449
  });
419
450
  }
420
- $4.append($$anchor, fragment);
421
- $4.pop();
451
+ $5.append($$anchor, fragment);
452
+ $5.pop();
422
453
  }
423
454
 
424
455
  // src/components/progress/progress.svelte
425
456
  import"svelte/internal/disclose-version";
426
- import * as $5 from "svelte/internal/client";
457
+ import * as $6 from "svelte/internal/client";
427
458
 
428
459
  // ../../node_modules/esm-env/true.js
429
460
  var true_default = true;
@@ -435,122 +466,122 @@ function devWarn(message, ...args) {
435
466
  }
436
467
 
437
468
  // src/components/progress/progress.svelte
438
- var root4 = $5.from_svg(`<circle class="cinder-progress__fill" cx="18" cy="18" r="16"></circle>`);
439
- var root_14 = $5.from_svg(`<circle class="cinder-progress__fill cinder-progress__fill--indeterminate" cx="18" cy="18" r="16"></circle>`);
440
- var root_23 = $5.from_html(`<div role="progressbar"><svg viewBox="0 0 36 36" class="cinder-progress__svg" aria-hidden="true"><circle class="cinder-progress__track" cx="18" cy="18" r="16"></circle><!></svg></div>`);
441
- var root_33 = $5.from_html(`<div class="cinder-progress__fill"></div>`);
442
- var root_4 = $5.from_html(`<div class="cinder-progress__fill cinder-progress__fill--indeterminate"></div>`);
443
- var root_5 = $5.from_html(`<div role="progressbar"><div class="cinder-progress__track"><!></div></div>`);
469
+ var root4 = $6.from_svg(`<circle class="cinder-progress__fill" cx="18" cy="18" r="16"></circle>`);
470
+ var root_14 = $6.from_svg(`<circle class="cinder-progress__fill cinder-progress__fill--indeterminate" cx="18" cy="18" r="16"></circle>`);
471
+ var root_23 = $6.from_html(`<div role="progressbar"><svg viewBox="0 0 36 36" class="cinder-progress__svg" aria-hidden="true"><circle class="cinder-progress__track" cx="18" cy="18" r="16"></circle><!></svg></div>`);
472
+ var root_33 = $6.from_html(`<div class="cinder-progress__fill"></div>`);
473
+ var root_4 = $6.from_html(`<div class="cinder-progress__fill cinder-progress__fill--indeterminate"></div>`);
474
+ var root_5 = $6.from_html(`<div role="progressbar"><div class="cinder-progress__track"><!></div></div>`);
444
475
  function Progress($$anchor, $$props) {
445
- $5.push($$props, true);
446
- let max = $5.prop($$props, "max", 3, 100), variant = $5.prop($$props, "variant", 3, "bar"), size = $5.prop($$props, "size", 3, "md");
447
- $5.user_effect(() => {
476
+ $6.push($$props, true);
477
+ let max = $6.prop($$props, "max", 3, 100), variant = $6.prop($$props, "variant", 3, "bar"), size = $6.prop($$props, "size", 3, "md");
478
+ $6.user_effect(() => {
448
479
  const hasAriaLabel = typeof $$props.ariaLabel === "string" && $$props.ariaLabel.trim().length > 0;
449
480
  const hasAriaLabelledby = typeof $$props.ariaLabelledby === "string" && $$props.ariaLabelledby.trim().length > 0;
450
481
  if (!hasAriaLabel && !hasAriaLabelledby) {
451
482
  devWarn("[cinder/Progress] rendered without an accessible name — pass `ariaLabel` or `ariaLabelledby`. `label` only sets aria-valuetext and does not name the progressbar.");
452
483
  }
453
484
  });
454
- const effectiveMax = $5.derived(() => Number.isFinite(max()) && max() > 0 ? max() : undefined);
455
- const isIndeterminate = $5.derived(() => $$props.value === undefined || !Number.isFinite($$props.value) || $5.get(effectiveMax) === undefined);
456
- const clampedValue = $5.derived(() => $5.get(isIndeterminate) ? undefined : Math.max(0, Math.min($5.get(effectiveMax), $$props.value)));
457
- const percent = $5.derived(() => $5.get(clampedValue) === undefined ? undefined : Math.round($5.get(clampedValue) / $5.get(effectiveMax) * 100));
458
- const valueText = $5.derived(() => $$props.label ?? ($5.get(isIndeterminate) ? "Loading" : `${$5.get(percent)}%`));
459
- var fragment = $5.comment();
460
- var node = $5.first_child(fragment);
485
+ const effectiveMax = $6.derived(() => Number.isFinite(max()) && max() > 0 ? max() : undefined);
486
+ const isIndeterminate = $6.derived(() => $$props.value === undefined || !Number.isFinite($$props.value) || $6.get(effectiveMax) === undefined);
487
+ const clampedValue = $6.derived(() => $6.get(isIndeterminate) ? undefined : Math.max(0, Math.min($6.get(effectiveMax), $$props.value)));
488
+ const percent = $6.derived(() => $6.get(clampedValue) === undefined ? undefined : Math.round($6.get(clampedValue) / $6.get(effectiveMax) * 100));
489
+ const valueText = $6.derived(() => $$props.label ?? ($6.get(isIndeterminate) ? "Loading" : `${$6.get(percent)}%`));
490
+ var fragment = $6.comment();
491
+ var node = $6.first_child(fragment);
461
492
  {
462
493
  var consequent_1 = ($$anchor2) => {
463
494
  var div = root_23();
464
- $5.set_attribute(div, "aria-valuemin", 0);
465
- var svg = $5.child(div);
466
- var node_1 = $5.sibling($5.child(svg));
495
+ $6.set_attribute(div, "aria-valuemin", 0);
496
+ var svg = $6.child(div);
497
+ var node_1 = $6.sibling($6.child(svg));
467
498
  {
468
499
  var consequent = ($$anchor3) => {
469
500
  var circle = root4();
470
501
  let styles;
471
- $5.template_effect(() => styles = $5.set_style(circle, "", styles, { "--_cinder-progress-percent": $5.get(percent) }));
472
- $5.append($$anchor3, circle);
502
+ $6.template_effect(() => styles = $6.set_style(circle, "", styles, { "--_cinder-progress-percent": $6.get(percent) }));
503
+ $6.append($$anchor3, circle);
473
504
  };
474
505
  var alternate = ($$anchor3) => {
475
506
  var circle_1 = root_14();
476
- $5.append($$anchor3, circle_1);
507
+ $6.append($$anchor3, circle_1);
477
508
  };
478
- $5.if(node_1, ($$render) => {
479
- if (!$5.get(isIndeterminate))
509
+ $6.if(node_1, ($$render) => {
510
+ if (!$6.get(isIndeterminate))
480
511
  $$render(consequent);
481
512
  else
482
513
  $$render(alternate, -1);
483
514
  });
484
515
  }
485
- $5.reset(svg);
486
- $5.reset(div);
487
- $5.template_effect(($0) => {
488
- $5.set_class(div, 1, $0);
489
- $5.set_attribute(div, "aria-label", $$props.ariaLabel);
490
- $5.set_attribute(div, "aria-labelledby", $$props.ariaLabelledby);
491
- $5.set_attribute(div, "aria-valuemax", $5.get(effectiveMax));
492
- $5.set_attribute(div, "aria-valuenow", $5.get(clampedValue));
493
- $5.set_attribute(div, "aria-valuetext", $5.get(valueText));
494
- $5.set_attribute(div, "data-cinder-size", size());
495
- $5.set_attribute(div, "data-cinder-indeterminate", $5.get(isIndeterminate) || undefined);
516
+ $6.reset(svg);
517
+ $6.reset(div);
518
+ $6.template_effect(($0) => {
519
+ $6.set_class(div, 1, $0);
520
+ $6.set_attribute(div, "aria-label", $$props.ariaLabel);
521
+ $6.set_attribute(div, "aria-labelledby", $$props.ariaLabelledby);
522
+ $6.set_attribute(div, "aria-valuemax", $6.get(effectiveMax));
523
+ $6.set_attribute(div, "aria-valuenow", $6.get(clampedValue));
524
+ $6.set_attribute(div, "aria-valuetext", $6.get(valueText));
525
+ $6.set_attribute(div, "data-cinder-size", size());
526
+ $6.set_attribute(div, "data-cinder-indeterminate", $6.get(isIndeterminate) || undefined);
496
527
  }, [
497
- () => $5.clsx(classNames("cinder-progress", "cinder-progress--ring", $$props.class))
528
+ () => $6.clsx(classNames("cinder-progress", "cinder-progress--ring", $$props.class))
498
529
  ]);
499
- $5.append($$anchor2, div);
530
+ $6.append($$anchor2, div);
500
531
  };
501
532
  var alternate_2 = ($$anchor2) => {
502
533
  var div_1 = root_5();
503
- $5.set_attribute(div_1, "aria-valuemin", 0);
504
- var div_2 = $5.child(div_1);
505
- var node_2 = $5.child(div_2);
534
+ $6.set_attribute(div_1, "aria-valuemin", 0);
535
+ var div_2 = $6.child(div_1);
536
+ var node_2 = $6.child(div_2);
506
537
  {
507
538
  var consequent_2 = ($$anchor3) => {
508
539
  var div_3 = root_33();
509
540
  let styles_1;
510
- $5.template_effect(() => styles_1 = $5.set_style(div_3, "", styles_1, { width: `${$5.get(percent) ?? ""}%` }));
511
- $5.append($$anchor3, div_3);
541
+ $6.template_effect(() => styles_1 = $6.set_style(div_3, "", styles_1, { width: `${$6.get(percent) ?? ""}%` }));
542
+ $6.append($$anchor3, div_3);
512
543
  };
513
544
  var alternate_1 = ($$anchor3) => {
514
545
  var div_4 = root_4();
515
- $5.append($$anchor3, div_4);
546
+ $6.append($$anchor3, div_4);
516
547
  };
517
- $5.if(node_2, ($$render) => {
518
- if (!$5.get(isIndeterminate))
548
+ $6.if(node_2, ($$render) => {
549
+ if (!$6.get(isIndeterminate))
519
550
  $$render(consequent_2);
520
551
  else
521
552
  $$render(alternate_1, -1);
522
553
  });
523
554
  }
524
- $5.reset(div_2);
525
- $5.reset(div_1);
526
- $5.template_effect(($0) => {
527
- $5.set_class(div_1, 1, $0);
528
- $5.set_attribute(div_1, "aria-label", $$props.ariaLabel);
529
- $5.set_attribute(div_1, "aria-labelledby", $$props.ariaLabelledby);
530
- $5.set_attribute(div_1, "aria-valuemax", $5.get(effectiveMax));
531
- $5.set_attribute(div_1, "aria-valuenow", $5.get(clampedValue));
532
- $5.set_attribute(div_1, "aria-valuetext", $5.get(valueText));
533
- $5.set_attribute(div_1, "data-cinder-size", size());
534
- $5.set_attribute(div_1, "data-cinder-indeterminate", $5.get(isIndeterminate) || undefined);
555
+ $6.reset(div_2);
556
+ $6.reset(div_1);
557
+ $6.template_effect(($0) => {
558
+ $6.set_class(div_1, 1, $0);
559
+ $6.set_attribute(div_1, "aria-label", $$props.ariaLabel);
560
+ $6.set_attribute(div_1, "aria-labelledby", $$props.ariaLabelledby);
561
+ $6.set_attribute(div_1, "aria-valuemax", $6.get(effectiveMax));
562
+ $6.set_attribute(div_1, "aria-valuenow", $6.get(clampedValue));
563
+ $6.set_attribute(div_1, "aria-valuetext", $6.get(valueText));
564
+ $6.set_attribute(div_1, "data-cinder-size", size());
565
+ $6.set_attribute(div_1, "data-cinder-indeterminate", $6.get(isIndeterminate) || undefined);
535
566
  }, [
536
- () => $5.clsx(classNames("cinder-progress", "cinder-progress--bar", $$props.class))
567
+ () => $6.clsx(classNames("cinder-progress", "cinder-progress--bar", $$props.class))
537
568
  ]);
538
- $5.append($$anchor2, div_1);
569
+ $6.append($$anchor2, div_1);
539
570
  };
540
- $5.if(node, ($$render) => {
571
+ $6.if(node, ($$render) => {
541
572
  if (variant() === "ring")
542
573
  $$render(consequent_1);
543
574
  else
544
575
  $$render(alternate_2, -1);
545
576
  });
546
577
  }
547
- $5.append($$anchor, fragment);
548
- $5.pop();
578
+ $6.append($$anchor, fragment);
579
+ $6.pop();
549
580
  }
550
581
 
551
582
  // src/components/status-dot/status-dot.svelte
552
583
  import"svelte/internal/disclose-version";
553
- import * as $6 from "svelte/internal/client";
584
+ import * as $7 from "svelte/internal/client";
554
585
  var rest_excludes4 = new Set([
555
586
  "$$slots",
556
587
  "$$events",
@@ -564,11 +595,11 @@ var rest_excludes4 = new Set([
564
595
  "class",
565
596
  "aria-label"
566
597
  ]);
567
- var root5 = $6.from_html(`<span class="cinder-status-dot__label"> </span>`);
568
- var root_15 = $6.from_html(`<span class="cinder-sr-only"> </span>`);
569
- var root_24 = $6.from_html(`<span><span class="cinder-status-dot__indicator" aria-hidden="true"></span> <!> <!></span>`);
598
+ var root5 = $7.from_html(`<span class="cinder-status-dot__label"> </span>`);
599
+ var root_15 = $7.from_html(`<span class="cinder-sr-only"> </span>`);
600
+ var root_24 = $7.from_html(`<span><span class="cinder-status-dot__indicator" aria-hidden="true"></span> <!> <!></span>`);
570
601
  function Status_dot($$anchor, $$props) {
571
- $6.push($$props, true);
602
+ $7.push($$props, true);
572
603
  const connectionStatusMap = {
573
604
  connected: "online",
574
605
  connecting: "warning",
@@ -581,64 +612,293 @@ function Status_dot($$anchor, $$props) {
581
612
  disconnected: "Disconnected",
582
613
  error: "Error"
583
614
  };
584
- let showLabel = $6.prop($$props, "showLabel", 3, true), size = $6.prop($$props, "size", 3, "md"), rest = $6.rest_props($$props, rest_excludes4);
585
- const normalizedAriaLabel = $6.derived(() => $$props["aria-label"]?.trim() ? $$props["aria-label"].trim() : undefined);
586
- const resolvedStatus = $6.derived(() => $$props.status ?? ($$props.connectionState === undefined ? "neutral" : connectionStatusMap[$$props.connectionState]));
587
- const resolvedLive = $6.derived(() => $$props.live ?? $$props.connectionState !== undefined);
588
- const normalizedLabel = $6.derived(() => $$props.label?.trim() ? $$props.label.trim() : $$props.connectionState === undefined ? undefined : connectionLabels[$$props.connectionState]);
589
- const hasVisibleLabel = $6.derived(() => showLabel() && $6.get(normalizedLabel) !== undefined);
590
- const resolvedAriaLabel = $6.derived(() => $6.get(normalizedAriaLabel) ?? $6.get(normalizedLabel) ?? $6.get(resolvedStatus));
591
- const visibleLabelIsLiveDuplicate = $6.derived(() => $6.get(resolvedLive) && $6.get(normalizedLabel) !== undefined && $6.get(resolvedAriaLabel) !== $6.get(normalizedLabel));
592
- const needsHiddenLiveLabel = $6.derived(() => $6.get(resolvedLive) && (!$6.get(hasVisibleLabel) || $6.get(visibleLabelIsLiveDuplicate)));
615
+ let showLabel = $7.prop($$props, "showLabel", 3, true), size = $7.prop($$props, "size", 3, "md"), rest = $7.rest_props($$props, rest_excludes4);
616
+ const normalizedAriaLabel = $7.derived(() => $$props["aria-label"]?.trim() ? $$props["aria-label"].trim() : undefined);
617
+ const resolvedStatus = $7.derived(() => $$props.status ?? ($$props.connectionState === undefined ? "neutral" : connectionStatusMap[$$props.connectionState]));
618
+ const resolvedLive = $7.derived(() => $$props.live ?? $$props.connectionState !== undefined);
619
+ const normalizedLabel = $7.derived(() => $$props.label?.trim() ? $$props.label.trim() : $$props.connectionState === undefined ? undefined : connectionLabels[$$props.connectionState]);
620
+ const hasVisibleLabel = $7.derived(() => showLabel() && $7.get(normalizedLabel) !== undefined);
621
+ const resolvedAriaLabel = $7.derived(() => $7.get(normalizedAriaLabel) ?? $7.get(normalizedLabel) ?? $7.get(resolvedStatus));
622
+ const visibleLabelIsLiveDuplicate = $7.derived(() => $7.get(resolvedLive) && $7.get(normalizedLabel) !== undefined && $7.get(resolvedAriaLabel) !== $7.get(normalizedLabel));
623
+ const needsHiddenLiveLabel = $7.derived(() => $7.get(resolvedLive) && (!$7.get(hasVisibleLabel) || $7.get(visibleLabelIsLiveDuplicate)));
593
624
  var span = root_24();
594
- $6.attribute_effect(span, ($0) => ({
625
+ $7.attribute_effect(span, ($0) => ({
595
626
  ...rest,
596
627
  class: $0,
597
- "data-cinder-status": $6.get(resolvedStatus),
628
+ "data-cinder-status": $7.get(resolvedStatus),
598
629
  "data-cinder-state": $$props.connectionState,
599
630
  "data-cinder-size": size(),
600
- role: $6.get(resolvedLive) ? "status" : "img",
601
- "aria-live": $6.get(resolvedLive) ? "polite" : undefined,
602
- "aria-atomic": $6.get(resolvedLive) ? "true" : undefined,
603
- "aria-label": $6.get(resolvedLive) ? undefined : $6.get(resolvedAriaLabel)
631
+ role: $7.get(resolvedLive) ? "status" : "img",
632
+ "aria-live": $7.get(resolvedLive) ? "polite" : undefined,
633
+ "aria-atomic": $7.get(resolvedLive) ? "true" : undefined,
634
+ "aria-label": $7.get(resolvedLive) ? undefined : $7.get(resolvedAriaLabel)
604
635
  }), [() => classNames("cinder-status-dot", $$props.class)]);
605
- var node = $6.sibling($6.child(span), 2);
636
+ var node = $7.sibling($7.child(span), 2);
606
637
  {
607
638
  var consequent = ($$anchor2) => {
608
639
  var span_1 = root5();
609
- var text2 = $6.child(span_1, true);
610
- $6.reset(span_1);
611
- $6.template_effect(() => {
612
- $6.set_attribute(span_1, "aria-hidden", $6.get(visibleLabelIsLiveDuplicate) ? "true" : undefined);
613
- $6.set_text(text2, $6.get(normalizedLabel));
640
+ var text2 = $7.child(span_1, true);
641
+ $7.reset(span_1);
642
+ $7.template_effect(() => {
643
+ $7.set_attribute(span_1, "aria-hidden", $7.get(visibleLabelIsLiveDuplicate) ? "true" : undefined);
644
+ $7.set_text(text2, $7.get(normalizedLabel));
614
645
  });
615
- $6.append($$anchor2, span_1);
646
+ $7.append($$anchor2, span_1);
616
647
  };
617
- $6.if(node, ($$render) => {
618
- if ($6.get(hasVisibleLabel))
648
+ $7.if(node, ($$render) => {
649
+ if ($7.get(hasVisibleLabel))
619
650
  $$render(consequent);
620
651
  });
621
652
  }
622
- var node_1 = $6.sibling(node, 2);
653
+ var node_1 = $7.sibling(node, 2);
623
654
  {
624
655
  var consequent_1 = ($$anchor2) => {
625
656
  var span_2 = root_15();
626
- var text_1 = $6.child(span_2, true);
627
- $6.reset(span_2);
628
- $6.template_effect(() => $6.set_text(text_1, $6.get(resolvedAriaLabel)));
629
- $6.append($$anchor2, span_2);
657
+ var text_1 = $7.child(span_2, true);
658
+ $7.reset(span_2);
659
+ $7.template_effect(() => $7.set_text(text_1, $7.get(resolvedAriaLabel)));
660
+ $7.append($$anchor2, span_2);
630
661
  };
631
- $6.if(node_1, ($$render) => {
632
- if ($6.get(needsHiddenLiveLabel))
662
+ $7.if(node_1, ($$render) => {
663
+ if ($7.get(needsHiddenLiveLabel))
633
664
  $$render(consequent_1);
634
665
  });
635
666
  }
636
- $6.reset(span);
637
- $6.append($$anchor, span);
638
- $6.pop();
667
+ $7.reset(span);
668
+ $7.append($$anchor, span);
669
+ $7.pop();
670
+ }
671
+
672
+ // src/components/run-step-timeline/run-step-timeline.utilities.ts
673
+ function statusDotStatus(status) {
674
+ switch (status) {
675
+ case "succeeded":
676
+ return "success";
677
+ case "failed":
678
+ return "danger";
679
+ case "running":
680
+ return "online";
681
+ case "retrying":
682
+ return "warning";
683
+ case "waiting_approval":
684
+ return "accent";
685
+ case "cancelled":
686
+ return "offline";
687
+ case "skipped":
688
+ return "neutral";
689
+ case "pending":
690
+ return "pending";
691
+ }
692
+ }
693
+ function statusLabel(status) {
694
+ switch (status) {
695
+ case "pending":
696
+ return "Pending";
697
+ case "running":
698
+ return "Running";
699
+ case "succeeded":
700
+ return "Succeeded";
701
+ case "failed":
702
+ return "Failed";
703
+ case "cancelled":
704
+ return "Cancelled";
705
+ case "skipped":
706
+ return "Skipped";
707
+ case "retrying":
708
+ return "Retrying";
709
+ case "waiting_approval":
710
+ return "Waiting approval";
711
+ }
712
+ }
713
+ function badgeVariant(status) {
714
+ switch (status) {
715
+ case "succeeded":
716
+ return "success";
717
+ case "failed":
718
+ return "danger";
719
+ case "running":
720
+ return "info";
721
+ case "retrying":
722
+ return "warning";
723
+ case "waiting_approval":
724
+ return "accent";
725
+ case "cancelled":
726
+ return "neutral";
727
+ case "skipped":
728
+ return "neutral";
729
+ case "pending":
730
+ return "neutral";
731
+ }
732
+ }
733
+ function isTerminal(status) {
734
+ return status === "succeeded" || status === "failed" || status === "cancelled" || status === "skipped";
735
+ }
736
+ function isCurrent(status) {
737
+ return status === "running" || status === "retrying" || status === "waiting_approval";
738
+ }
739
+ function hasProgress(step) {
740
+ return step.progress !== undefined && isCurrent(step.status);
741
+ }
742
+ function metadataItems(step) {
743
+ const items = [];
744
+ if (step.startTime !== undefined) {
745
+ items.push({ term: "Started", definition: step.startTime });
746
+ }
747
+ if (step.endTime !== undefined) {
748
+ items.push({ term: "Ended", definition: step.endTime });
749
+ }
750
+ if (step.duration !== undefined) {
751
+ items.push({ term: "Duration", definition: step.duration });
752
+ }
753
+ if (step.attemptCount !== undefined && step.attemptCount > 1) {
754
+ items.push({ term: "Attempts", definition: String(step.attemptCount) });
755
+ }
756
+ return items;
757
+ }
758
+ function actionsCountLabel(actionsCount) {
759
+ return actionsCount === 1 ? "1 action" : `${actionsCount} actions`;
760
+ }
761
+ function hiddenNestedStepLabel(hiddenStepCount) {
762
+ return hiddenStepCount === 1 ? "1 nested step hidden" : `${hiddenStepCount} nested steps hidden`;
763
+ }
764
+ function laneOutcomeLabel(outcome) {
765
+ switch (outcome) {
766
+ case "won":
767
+ return "Won";
768
+ case "lost":
769
+ return "Lost";
770
+ case "settled":
771
+ return "Settled";
772
+ }
773
+ }
774
+ function laneOutcomeBadgeVariant(outcome) {
775
+ switch (outcome) {
776
+ case "won":
777
+ return "success";
778
+ case "lost":
779
+ return "neutral";
780
+ case "settled":
781
+ return "info";
782
+ }
783
+ }
784
+ function branchOutcomeSummary(lanes) {
785
+ const counts = { won: 0, lost: 0, settled: 0, pending: 0 };
786
+ for (const lane of lanes) {
787
+ if (lane.outcome === undefined)
788
+ counts.pending += 1;
789
+ else
790
+ counts[lane.outcome] += 1;
791
+ }
792
+ const parts = [];
793
+ if (counts.won > 0)
794
+ parts.push(`${counts.won} won`);
795
+ if (counts.lost > 0)
796
+ parts.push(`${counts.lost} lost`);
797
+ if (counts.settled > 0)
798
+ parts.push(`${counts.settled} settled`);
799
+ if (counts.pending > 0) {
800
+ parts.push(counts.pending === 1 ? "1 lane racing" : `${counts.pending} lanes racing`);
801
+ }
802
+ return parts.length > 0 ? parts.join(", ") : "No lanes";
803
+ }
804
+ function branchGroupHasCurrentStep(group) {
805
+ const stack = group.lanes.flatMap((lane) => lane.steps);
806
+ while (stack.length > 0) {
807
+ const step = stack.pop();
808
+ if (step === undefined)
809
+ continue;
810
+ if (isCurrent(step.status))
811
+ return true;
812
+ if (step.children) {
813
+ for (const child6 of step.children)
814
+ stack.push(child6);
815
+ }
816
+ }
817
+ return false;
818
+ }
819
+ function branchStartsCollapsed(laneCount, collapseThreshold, collapsed) {
820
+ if (collapsed !== undefined)
821
+ return collapsed;
822
+ const threshold = collapseThreshold !== undefined && Number.isInteger(collapseThreshold) && collapseThreshold > 0 ? collapseThreshold : 3;
823
+ return laneCount >= threshold;
824
+ }
825
+ function hasControlCharacter(value) {
826
+ for (let index = 0;index < value.length; index += 1) {
827
+ const code = value.charCodeAt(index);
828
+ if (code <= 31 || code === 127)
829
+ return true;
830
+ }
831
+ return false;
832
+ }
833
+ function safeStepLinkHref(href) {
834
+ const trimmedHref = href.trim();
835
+ if (trimmedHref === "")
836
+ return;
837
+ if (hasControlCharacter(trimmedHref))
838
+ return;
839
+ if (trimmedHref.includes("\\"))
840
+ return;
841
+ const leadingSeparators = trimmedHref.match(/^[\\/]+/)?.[0] ?? "";
842
+ if (leadingSeparators.length > 1)
843
+ return;
844
+ if (/^[A-Za-z][A-Za-z\d+.-]*:/.test(trimmedHref)) {
845
+ try {
846
+ const parsedUrl = new URL(trimmedHref);
847
+ return parsedUrl.protocol === "http:" || parsedUrl.protocol === "https:" ? trimmedHref : undefined;
848
+ } catch {
849
+ return;
850
+ }
851
+ }
852
+ return trimmedHref;
639
853
  }
640
854
 
641
855
  // src/components/run-step-timeline/run-step-timeline.svelte
856
+ var depthLimitItem = ($$anchor, row = $8.noop) => {
857
+ var li_1 = root_8();
858
+ let styles_1;
859
+ var div_7 = $8.child(li_1);
860
+ var span_3 = $8.child(div_7);
861
+ var node_14 = $8.child(span_3);
862
+ Status_dot(node_14, {
863
+ status: "neutral",
864
+ label: "Nested steps hidden",
865
+ showLabel: false,
866
+ size: "md"
867
+ });
868
+ $8.reset(span_3);
869
+ var div_8 = $8.sibling(span_3, 2);
870
+ var div_9 = $8.child(div_8);
871
+ var span_4 = $8.child(div_9);
872
+ var text_11 = $8.child(span_4, true);
873
+ $8.reset(span_4);
874
+ var node_15 = $8.sibling(span_4, 2);
875
+ Badge(node_15, {
876
+ class: "cinder-run-step-timeline__status",
877
+ variant: "neutral",
878
+ size: "xs",
879
+ "aria-label": "Status: Nested child steps hidden",
880
+ children: ($$anchor2, $$slotProps) => {
881
+ $8.next();
882
+ var text_12 = $8.text("Depth cap");
883
+ $8.append($$anchor2, text_12);
884
+ },
885
+ $$slots: { default: true }
886
+ });
887
+ $8.reset(div_9);
888
+ $8.next(2);
889
+ $8.reset(div_8);
890
+ $8.reset(div_7);
891
+ $8.reset(li_1);
892
+ $8.template_effect(($0) => {
893
+ $8.set_attribute(li_1, "data-cinder-depth", row().depth);
894
+ $8.set_attribute(li_1, "data-cinder-path", row().pathKey);
895
+ $8.set_attribute(li_1, "data-cinder-connector-after", row().connectorAfter);
896
+ $8.set_attribute(li_1, "aria-current", row().ariaCurrent ? "step" : undefined);
897
+ styles_1 = $8.set_style(li_1, "", styles_1, { "--_cinder-rst-depth": row().depth });
898
+ $8.set_text(text_11, $0);
899
+ }, [() => hiddenNestedStepLabel(row().hiddenStepCount)]);
900
+ $8.append($$anchor, li_1);
901
+ };
642
902
  var rest_excludes5 = new Set([
643
903
  "$$slots",
644
904
  "$$events",
@@ -650,146 +910,460 @@ var rest_excludes5 = new Set([
650
910
  "aria-label",
651
911
  "aria-labelledby"
652
912
  ]);
653
- var root6 = $7.from_html(`<li class="cinder-run-step-timeline__item" data-cinder-status="depth-limit" data-cinder-depth-limit=""><div class="cinder-run-step-timeline__event"><span class="cinder-run-step-timeline__marker" aria-hidden="true" inert=""><!></span> <div class="cinder-run-step-timeline__content"><div class="cinder-run-step-timeline__header"><span class="cinder-run-step-timeline__label"> </span> <!></div> <p class="cinder-run-step-timeline__body">Additional child-workflow steps are hidden because the timeline depth cap was reached.</p></div></div></li>`);
654
- var root_16 = $7.from_html(`<span class="cinder-run-step-timeline__link cinder-run-step-timeline__link--unsafe"> </span>`);
655
- var root_25 = $7.from_html(`<div class="cinder-run-step-timeline__progress"><!></div>`);
656
- var root_34 = $7.from_html(`<div class="cinder-run-step-timeline__meta-row"><dt class="cinder-run-step-timeline__meta-term"> </dt> <dd class="cinder-run-step-timeline__meta-definition"> </dd></div>`);
657
- var root_42 = $7.from_html(`<dl class="cinder-run-step-timeline__meta"></dl>`);
658
- var root_52 = $7.from_html(`<pre class="cinder-run-step-timeline__detail-content"> </pre>`);
659
- var root_6 = $7.from_html(`<div class="cinder-run-step-timeline__details"></div>`);
660
- var root_7 = $7.from_html(`<div class="cinder-run-step-timeline__body"><!></div>`);
661
- var root_8 = $7.from_html(`<li class="cinder-run-step-timeline__item"><div class="cinder-run-step-timeline__event"><span class="cinder-run-step-timeline__marker" aria-hidden="true" inert=""><!></span> <div class="cinder-run-step-timeline__content"><div class="cinder-run-step-timeline__header"><span class="cinder-run-step-timeline__label"> </span> <!> <!> <!> <!></div> <!> <!> <!> <!></div></div></li>`);
662
- var root_9 = $7.from_html(`<ol></ol>`);
913
+ var root6 = $8.from_html(`<span class="cinder-run-step-timeline__link cinder-run-step-timeline__link--unsafe"> </span>`);
914
+ var root_16 = $8.from_html(`<div class="cinder-run-step-timeline__progress"><!></div>`);
915
+ var root_25 = $8.from_html(`<div class="cinder-run-step-timeline__meta-row"><dt class="cinder-run-step-timeline__meta-term"> </dt> <dd class="cinder-run-step-timeline__meta-definition"> </dd></div>`);
916
+ var root_34 = $8.from_html(`<dl class="cinder-run-step-timeline__meta"></dl>`);
917
+ var root_42 = $8.from_html(`<pre class="cinder-run-step-timeline__detail-content"> </pre>`);
918
+ var root_52 = $8.from_html(`<div class="cinder-run-step-timeline__details"></div>`);
919
+ var root_6 = $8.from_html(`<div class="cinder-run-step-timeline__body"><!></div>`);
920
+ var root_7 = $8.from_html(`<li class="cinder-run-step-timeline__item"><div class="cinder-run-step-timeline__event"><span class="cinder-run-step-timeline__marker" aria-hidden="true" inert=""><!></span> <div class="cinder-run-step-timeline__content"><div class="cinder-run-step-timeline__header"><span class="cinder-run-step-timeline__label"> </span> <!> <!> <!> <!> <!> <!></div> <!> <!> <!> <!></div></div></li>`);
921
+ var root_8 = $8.from_html(`<li class="cinder-run-step-timeline__item" data-cinder-status="depth-limit" data-cinder-depth-limit=""><div class="cinder-run-step-timeline__event"><span class="cinder-run-step-timeline__marker" aria-hidden="true" inert=""><!></span> <div class="cinder-run-step-timeline__content"><div class="cinder-run-step-timeline__header"><span class="cinder-run-step-timeline__label"> </span> <!></div> <p class="cinder-run-step-timeline__body">Additional child-workflow steps are hidden because the timeline depth cap was reached.</p></div></div></li>`);
922
+ var root_9 = $8.from_html(`<span class="cinder-run-step-timeline__branch-heading"><span class="cinder-run-step-timeline__label"> </span> <!></span>`);
923
+ var root_10 = $8.from_html(`<li class="cinder-run-step-timeline__lane"><div class="cinder-run-step-timeline__lane-header"><span class="cinder-run-step-timeline__lane-label"> </span> <!></div> <ol class="cinder-run-step-timeline cinder-run-step-timeline__lane-steps"><!></ol></li>`);
924
+ var root_11 = $8.from_html(`<ul class="cinder-run-step-timeline__lanes"></ul>`);
925
+ var root_122 = $8.from_html(`<li class="cinder-run-step-timeline__item cinder-run-step-timeline__item--branch" data-cinder-status="branch" data-cinder-depth="0"><div class="cinder-run-step-timeline__event"><span class="cinder-run-step-timeline__marker" aria-hidden="true" inert=""><!></span> <div class="cinder-run-step-timeline__content cinder-run-step-timeline__branch"><!></div></div></li>`);
926
+ var root_132 = $8.from_html(`<ol></ol>`);
663
927
  function Run_step_timeline($$anchor, $$props) {
664
- $7.push($$props, true);
665
- const MAX_NESTED_STEP_DEPTH = 3;
666
- let rest = $7.rest_props($$props, rest_excludes5);
667
- const resolvedAriaLabel = $7.derived(() => $$props["aria-labelledby"] === undefined && $$props["aria-label"] === undefined ? $$props.label : $$props["aria-label"]);
668
- const renderedSteps = $7.derived(() => flattenRunSteps($$props.steps));
669
- function statusDotStatus(status) {
670
- switch (status) {
671
- case "succeeded":
672
- return "success";
673
- case "failed":
674
- return "danger";
675
- case "running":
676
- return "online";
677
- case "retrying":
678
- return "warning";
679
- case "waiting_approval":
680
- return "accent";
681
- case "cancelled":
682
- return "offline";
683
- case "skipped":
684
- return "neutral";
685
- case "pending":
686
- return "pending";
928
+ $8.push($$props, true);
929
+ const stepItem = ($$anchor2, row = $8.noop) => {
930
+ const step = $8.derived(() => row().step);
931
+ const terminal = $8.derived(() => isTerminal($8.get(step).status));
932
+ const metadata = $8.derived(() => metadataItems($8.get(step)));
933
+ var li = root_7();
934
+ let styles;
935
+ var div = $8.child(li);
936
+ var span = $8.child(div);
937
+ var node = $8.child(span);
938
+ {
939
+ let $0 = $8.derived(() => statusDotStatus($8.get(step).status));
940
+ let $1 = $8.derived(() => statusLabel($8.get(step).status));
941
+ Status_dot(node, {
942
+ get status() {
943
+ return $8.get($0);
944
+ },
945
+ get label() {
946
+ return $8.get($1);
947
+ },
948
+ showLabel: false,
949
+ size: "md"
950
+ });
687
951
  }
688
- }
689
- function statusLabel(status) {
690
- switch (status) {
691
- case "pending":
692
- return "Pending";
693
- case "running":
694
- return "Running";
695
- case "succeeded":
696
- return "Succeeded";
697
- case "failed":
698
- return "Failed";
699
- case "cancelled":
700
- return "Cancelled";
701
- case "skipped":
702
- return "Skipped";
703
- case "retrying":
704
- return "Retrying";
705
- case "waiting_approval":
706
- return "Waiting approval";
952
+ $8.reset(span);
953
+ var div_1 = $8.sibling(span, 2);
954
+ var div_2 = $8.child(div_1);
955
+ var span_1 = $8.child(div_2);
956
+ var text3 = $8.child(span_1, true);
957
+ $8.reset(span_1);
958
+ var node_1 = $8.sibling(span_1, 2);
959
+ {
960
+ var consequent_1 = ($$anchor3) => {
961
+ const safeLinkHref = $8.derived(() => safeStepLinkHref($8.get(step).link.href));
962
+ var fragment = $8.comment();
963
+ var node_2 = $8.first_child(fragment);
964
+ {
965
+ var consequent = ($$anchor4) => {
966
+ Link($$anchor4, {
967
+ get href() {
968
+ return $8.get(safeLinkHref);
969
+ },
970
+ class: "cinder-run-step-timeline__link",
971
+ children: ($$anchor5, $$slotProps) => {
972
+ $8.next();
973
+ var text_1 = $8.text();
974
+ $8.template_effect(() => $8.set_text(text_1, $8.get(step).link.label));
975
+ $8.append($$anchor5, text_1);
976
+ },
977
+ $$slots: { default: true }
978
+ });
979
+ };
980
+ var alternate = ($$anchor4) => {
981
+ var span_2 = root6();
982
+ var text_2 = $8.child(span_2, true);
983
+ $8.reset(span_2);
984
+ $8.template_effect(() => $8.set_text(text_2, $8.get(step).link.label));
985
+ $8.append($$anchor4, span_2);
986
+ };
987
+ $8.if(node_2, ($$render) => {
988
+ if ($8.get(safeLinkHref))
989
+ $$render(consequent);
990
+ else
991
+ $$render(alternate, -1);
992
+ });
993
+ }
994
+ $8.append($$anchor3, fragment);
995
+ };
996
+ $8.if(node_1, ($$render) => {
997
+ if ($8.get(step).link)
998
+ $$render(consequent_1);
999
+ });
707
1000
  }
708
- }
709
- function badgeVariant(status) {
710
- switch (status) {
711
- case "succeeded":
712
- return "success";
713
- case "failed":
714
- return "danger";
715
- case "running":
716
- return "info";
717
- case "retrying":
718
- return "warning";
719
- case "waiting_approval":
720
- return "accent";
721
- case "cancelled":
722
- return "neutral";
723
- case "skipped":
724
- return "neutral";
725
- case "pending":
726
- return "neutral";
1001
+ var node_3 = $8.sibling(node_1, 2);
1002
+ {
1003
+ let $0 = $8.derived(() => badgeVariant($8.get(step).status));
1004
+ let $1 = $8.derived(() => `Status: ${statusLabel($8.get(step).status)}`);
1005
+ Badge(node_3, {
1006
+ class: "cinder-run-step-timeline__status",
1007
+ get variant() {
1008
+ return $8.get($0);
1009
+ },
1010
+ size: "xs",
1011
+ get "aria-label"() {
1012
+ return $8.get($1);
1013
+ },
1014
+ children: ($$anchor3, $$slotProps) => {
1015
+ $8.next();
1016
+ var text_3 = $8.text();
1017
+ $8.template_effect(($02) => $8.set_text(text_3, $02), [() => statusLabel($8.get(step).status)]);
1018
+ $8.append($$anchor3, text_3);
1019
+ },
1020
+ $$slots: { default: true }
1021
+ });
727
1022
  }
728
- }
729
- function isTerminal(status) {
730
- return status === "succeeded" || status === "failed" || status === "cancelled" || status === "skipped";
731
- }
732
- function isCurrent(status) {
733
- return status === "running" || status === "retrying" || status === "waiting_approval";
734
- }
735
- function hasProgress(step) {
736
- return step.progress !== undefined && isCurrent(step.status);
737
- }
738
- function metadataItems(step) {
739
- const items = [];
740
- if (step.startTime !== undefined) {
741
- items.push({ term: "Started", definition: step.startTime });
1023
+ var node_4 = $8.sibling(node_3, 2);
1024
+ {
1025
+ var consequent_2 = ($$anchor3) => {
1026
+ Badge($$anchor3, {
1027
+ class: "cinder-run-step-timeline__flag",
1028
+ variant: "neutral",
1029
+ size: "xs",
1030
+ "aria-label": "State: rewound — speculatively executed, then unwound",
1031
+ children: ($$anchor4, $$slotProps) => {
1032
+ $8.next();
1033
+ var text_4 = $8.text("Rewound");
1034
+ $8.append($$anchor4, text_4);
1035
+ },
1036
+ $$slots: { default: true }
1037
+ });
1038
+ };
1039
+ $8.if(node_4, ($$render) => {
1040
+ if ($8.get(step).rewound)
1041
+ $$render(consequent_2);
1042
+ });
742
1043
  }
743
- if (step.endTime !== undefined) {
744
- items.push({ term: "Ended", definition: step.endTime });
1044
+ var node_5 = $8.sibling(node_4, 2);
1045
+ {
1046
+ var consequent_3 = ($$anchor3) => {
1047
+ {
1048
+ let $0 = $8.derived(() => `Compensates ${row().compensatesLabel} — reverses the forward step`);
1049
+ Badge($$anchor3, {
1050
+ class: "cinder-run-step-timeline__flag",
1051
+ variant: "warning",
1052
+ size: "xs",
1053
+ get "aria-label"() {
1054
+ return $8.get($0);
1055
+ },
1056
+ children: ($$anchor4, $$slotProps) => {
1057
+ $8.next();
1058
+ var text_5 = $8.text();
1059
+ $8.template_effect(() => $8.set_text(text_5, `Compensates ${row().compensatesLabel ?? ""}`));
1060
+ $8.append($$anchor4, text_5);
1061
+ },
1062
+ $$slots: { default: true }
1063
+ });
1064
+ }
1065
+ };
1066
+ $8.if(node_5, ($$render) => {
1067
+ if (row().compensatesLabel !== undefined)
1068
+ $$render(consequent_3);
1069
+ });
745
1070
  }
746
- if (step.duration !== undefined) {
747
- items.push({ term: "Duration", definition: step.duration });
1071
+ var node_6 = $8.sibling(node_5, 2);
1072
+ {
1073
+ var consequent_4 = ($$anchor3) => {
1074
+ Badge($$anchor3, {
1075
+ variant: "neutral",
1076
+ size: "xs",
1077
+ mono: true,
1078
+ children: ($$anchor4, $$slotProps) => {
1079
+ $8.next();
1080
+ var text_6 = $8.text();
1081
+ $8.template_effect(() => $8.set_text(text_6, `attempt ${$8.get(step).attemptCount ?? ""}`));
1082
+ $8.append($$anchor4, text_6);
1083
+ },
1084
+ $$slots: { default: true }
1085
+ });
1086
+ };
1087
+ $8.if(node_6, ($$render) => {
1088
+ if ($8.get(step).attemptCount !== undefined && $8.get(step).attemptCount > 1)
1089
+ $$render(consequent_4);
1090
+ });
748
1091
  }
749
- if (step.attemptCount !== undefined && step.attemptCount > 1) {
750
- items.push({ term: "Attempts", definition: String(step.attemptCount) });
1092
+ var node_7 = $8.sibling(node_6, 2);
1093
+ {
1094
+ var consequent_5 = ($$anchor3) => {
1095
+ Badge($$anchor3, {
1096
+ variant: "neutral",
1097
+ size: "xs",
1098
+ mono: true,
1099
+ children: ($$anchor4, $$slotProps) => {
1100
+ $8.next();
1101
+ var text_7 = $8.text();
1102
+ $8.template_effect(($0) => $8.set_text(text_7, $0), [() => actionsCountLabel($8.get(step).actionsCount)]);
1103
+ $8.append($$anchor4, text_7);
1104
+ },
1105
+ $$slots: { default: true }
1106
+ });
1107
+ };
1108
+ $8.if(node_7, ($$render) => {
1109
+ if ($8.get(step).actionsCount !== undefined && $8.get(step).actionsCount > 0)
1110
+ $$render(consequent_5);
1111
+ });
751
1112
  }
752
- return items;
1113
+ $8.reset(div_2);
1114
+ var node_8 = $8.sibling(div_2, 2);
1115
+ {
1116
+ var consequent_6 = ($$anchor3) => {
1117
+ var div_3 = root_16();
1118
+ var node_9 = $8.child(div_3);
1119
+ {
1120
+ let $0 = $8.derived(() => $8.get(step).progress ?? 0);
1121
+ let $1 = $8.derived(() => $8.get(step).progressMax ?? 100);
1122
+ let $22 = $8.derived(() => `${$8.get(step).label} progress`);
1123
+ Progress(node_9, {
1124
+ get value() {
1125
+ return $8.get($0);
1126
+ },
1127
+ get max() {
1128
+ return $8.get($1);
1129
+ },
1130
+ size: "sm",
1131
+ get ariaLabel() {
1132
+ return $8.get($22);
1133
+ }
1134
+ });
1135
+ }
1136
+ $8.reset(div_3);
1137
+ $8.append($$anchor3, div_3);
1138
+ };
1139
+ var d = $8.derived(() => hasProgress($8.get(step)));
1140
+ $8.if(node_8, ($$render) => {
1141
+ if ($8.get(d))
1142
+ $$render(consequent_6);
1143
+ });
1144
+ }
1145
+ var node_10 = $8.sibling(node_8, 2);
1146
+ {
1147
+ var consequent_7 = ($$anchor3) => {
1148
+ var dl = root_34();
1149
+ $8.each(dl, 21, () => $8.get(metadata), (item) => item.term, ($$anchor4, item) => {
1150
+ var div_4 = root_25();
1151
+ var dt = $8.child(div_4);
1152
+ var text_8 = $8.child(dt, true);
1153
+ $8.reset(dt);
1154
+ var dd = $8.sibling(dt, 2);
1155
+ var text_9 = $8.child(dd, true);
1156
+ $8.reset(dd);
1157
+ $8.reset(div_4);
1158
+ $8.template_effect(() => {
1159
+ $8.set_text(text_8, $8.get(item).term);
1160
+ $8.set_text(text_9, $8.get(item).definition);
1161
+ });
1162
+ $8.append($$anchor4, div_4);
1163
+ });
1164
+ $8.reset(dl);
1165
+ $8.append($$anchor3, dl);
1166
+ };
1167
+ $8.if(node_10, ($$render) => {
1168
+ if ($8.get(metadata).length > 0)
1169
+ $$render(consequent_7);
1170
+ });
1171
+ }
1172
+ var node_11 = $8.sibling(node_10, 2);
1173
+ {
1174
+ var consequent_8 = ($$anchor3) => {
1175
+ var div_5 = root_52();
1176
+ $8.each(div_5, 21, () => $8.get(step).details, (detail) => detail.id, ($$anchor4, detail) => {
1177
+ Collapsible($$anchor4, {
1178
+ get trigger() {
1179
+ return $8.get(detail).label;
1180
+ },
1181
+ children: ($$anchor5, $$slotProps) => {
1182
+ var pre = root_42();
1183
+ var text_10 = $8.child(pre, true);
1184
+ $8.reset(pre);
1185
+ $8.template_effect(() => $8.set_text(text_10, $8.get(detail).content));
1186
+ $8.append($$anchor5, pre);
1187
+ },
1188
+ $$slots: { default: true }
1189
+ });
1190
+ });
1191
+ $8.reset(div_5);
1192
+ $8.append($$anchor3, div_5);
1193
+ };
1194
+ $8.if(node_11, ($$render) => {
1195
+ if ($8.get(step).details && $8.get(step).details.length > 0)
1196
+ $$render(consequent_8);
1197
+ });
1198
+ }
1199
+ var node_12 = $8.sibling(node_11, 2);
1200
+ {
1201
+ var consequent_9 = ($$anchor3) => {
1202
+ var div_6 = root_6();
1203
+ var node_13 = $8.child(div_6);
1204
+ $8.snippet(node_13, () => $$props.children, () => $8.get(step));
1205
+ $8.reset(div_6);
1206
+ $8.append($$anchor3, div_6);
1207
+ };
1208
+ $8.if(node_12, ($$render) => {
1209
+ if ($$props.children)
1210
+ $$render(consequent_9);
1211
+ });
1212
+ }
1213
+ $8.reset(div_1);
1214
+ $8.reset(div);
1215
+ $8.reset(li);
1216
+ $8.template_effect(() => {
1217
+ $8.set_attribute(li, "data-cinder-status", $8.get(step).status);
1218
+ $8.set_attribute(li, "data-cinder-depth", row().depth);
1219
+ $8.set_attribute(li, "data-cinder-path", row().pathKey);
1220
+ $8.set_attribute(li, "data-cinder-terminal", $8.get(terminal) ? "" : undefined);
1221
+ $8.set_attribute(li, "data-cinder-rewound", $8.get(step).rewound ? "" : undefined);
1222
+ $8.set_attribute(li, "data-cinder-compensation", row().compensatesLabel !== undefined ? "" : undefined);
1223
+ $8.set_attribute(li, "data-cinder-connector-after", row().connectorAfter);
1224
+ $8.set_attribute(li, "aria-current", row().ariaCurrent ? "step" : undefined);
1225
+ styles = $8.set_style(li, "", styles, { "--_cinder-rst-depth": row().depth });
1226
+ $8.set_text(text3, $8.get(step).label);
1227
+ });
1228
+ $8.append($$anchor2, li);
1229
+ };
1230
+ const stepRail = ($$anchor2, rows = $8.noop) => {
1231
+ var fragment_12 = $8.comment();
1232
+ var node_16 = $8.first_child(fragment_12);
1233
+ $8.each(node_16, 17, rows, (row) => row.pathKey, ($$anchor3, row) => {
1234
+ var fragment_13 = $8.comment();
1235
+ var node_17 = $8.first_child(fragment_13);
1236
+ {
1237
+ var consequent_10 = ($$anchor4) => {
1238
+ depthLimitItem($$anchor4, () => $8.get(row));
1239
+ };
1240
+ var alternate_1 = ($$anchor4) => {
1241
+ stepItem($$anchor4, () => $8.get(row));
1242
+ };
1243
+ $8.if(node_17, ($$render) => {
1244
+ if ($8.get(row).kind === "depth-limit")
1245
+ $$render(consequent_10);
1246
+ else
1247
+ $$render(alternate_1, -1);
1248
+ });
1249
+ }
1250
+ $8.append($$anchor3, fragment_13);
1251
+ });
1252
+ $8.append($$anchor2, fragment_12);
1253
+ };
1254
+ const MAX_NESTED_STEP_DEPTH = 3;
1255
+ let rest = $8.rest_props($$props, rest_excludes5);
1256
+ const resolvedAriaLabel = $8.derived(() => $$props["aria-labelledby"] === undefined && $$props["aria-label"] === undefined ? $$props.label : $$props["aria-label"]);
1257
+ const renderedEntries = $8.derived(() => flattenEntries($$props.steps));
1258
+ function isBranchGroup(entry) {
1259
+ return "kind" in entry && entry.kind === "branch";
753
1260
  }
754
- function actionsCountLabel(actionsCount) {
755
- return actionsCount === 1 ? "1 action" : `${actionsCount} actions`;
1261
+ function flattenEntries(entries) {
1262
+ const result = [];
1263
+ let stepRun = [];
1264
+ const flushRun = () => {
1265
+ if (stepRun.length === 0)
1266
+ return;
1267
+ result.push(...flattenSteps(stepRun, ""));
1268
+ stepRun = [];
1269
+ };
1270
+ for (const entry of entries) {
1271
+ if (isBranchGroup(entry)) {
1272
+ flushRun();
1273
+ result.push({
1274
+ kind: "branch",
1275
+ group: entry,
1276
+ pathKey: `%branch/${escapeStepPathSegment(entry.id)}`,
1277
+ connectorAfter: "hidden"
1278
+ });
1279
+ } else {
1280
+ stepRun.push(entry);
1281
+ }
1282
+ }
1283
+ flushRun();
1284
+ return applyGlobalRailConnectors(applyGlobalTopLevelCompensates(applyGlobalRailAriaCurrent(result)));
756
1285
  }
757
- function hiddenNestedStepLabel(hiddenStepCount) {
758
- return hiddenStepCount === 1 ? "1 nested step hidden" : `${hiddenStepCount} nested steps hidden`;
1286
+ function applyGlobalTopLevelCompensates(rows) {
1287
+ const topLevelLabelByPathKey = new Map;
1288
+ for (const row of rows) {
1289
+ if (row.kind === "step" && row.depth === 0) {
1290
+ topLevelLabelByPathKey.set(row.pathKey, row.step.label);
1291
+ }
1292
+ }
1293
+ return rows.map((row) => {
1294
+ if (row.kind !== "step" || row.depth !== 0 || row.step.compensates === undefined)
1295
+ return row;
1296
+ return {
1297
+ ...row,
1298
+ compensatesLabel: resolveSiblingCompensatesLabel(row, topLevelLabelByPathKey)
1299
+ };
1300
+ });
759
1301
  }
760
- function safeStepLinkHref(href) {
761
- const trimmedHref = href.trim();
762
- if (trimmedHref === "")
763
- return;
764
- if (/[\u0000-\u001F\u007F]/.test(trimmedHref))
765
- return;
766
- if (trimmedHref.includes("\\"))
767
- return;
768
- const leadingSeparators = trimmedHref.match(/^[\\/]+/)?.[0] ?? "";
769
- if (leadingSeparators.length > 1)
770
- return;
771
- if (/^[A-Za-z][A-Za-z\d+.-]*:/.test(trimmedHref)) {
772
- try {
773
- const parsedUrl = new URL(trimmedHref);
774
- return parsedUrl.protocol === "http:" || parsedUrl.protocol === "https:" ? trimmedHref : undefined;
775
- } catch {
776
- return;
1302
+ function railRowDepth(row) {
1303
+ return row.kind === "branch" ? 0 : row.depth;
1304
+ }
1305
+ function applyGlobalRailConnectors(rows) {
1306
+ return rows.map((row, index) => {
1307
+ const next3 = rows[index + 1];
1308
+ const connectorAfter = next3 === undefined || railRowDepth(next3) < railRowDepth(row) ? "hidden" : "visible";
1309
+ return { ...row, connectorAfter };
1310
+ });
1311
+ }
1312
+ function rowCurrentDepth(row) {
1313
+ if (row.kind === "depth-limit")
1314
+ return row.hiddenCurrent ? row.depth + 1 : -1;
1315
+ if (row.kind === "step")
1316
+ return isCurrent(row.step.status) ? row.depth : -1;
1317
+ return -1;
1318
+ }
1319
+ function applyGlobalRailAriaCurrent(rows) {
1320
+ let deepestRow;
1321
+ let deepestDepth = -1;
1322
+ for (const row of rows) {
1323
+ const depth = rowCurrentDepth(row);
1324
+ if (depth > deepestDepth) {
1325
+ deepestDepth = depth;
1326
+ deepestRow = row;
777
1327
  }
778
1328
  }
779
- return trimmedHref;
1329
+ return rows.map((row) => row.kind === "branch" ? row : { ...row, ariaCurrent: row === deepestRow });
780
1330
  }
781
- function flattenRunSteps(steps) {
1331
+ function flattenSteps(list, pathPrefix) {
782
1332
  const rows = [];
783
- appendRunStepRows(rows, steps, 0, "");
1333
+ appendRunStepRows(rows, list, 0, pathPrefix);
784
1334
  const currentRowIndex = deepestCurrentStepIndex(rows);
785
- return rows.map((row, index) => ({
786
- ...row,
787
- connectorAfter: rows[index + 1] === undefined || (rows[index + 1]?.depth ?? 0) < row.depth ? "hidden" : "visible",
788
- ariaCurrent: index === currentRowIndex
789
- }));
1335
+ const labelByPathKey = new Map;
1336
+ for (const row of rows) {
1337
+ if (row.kind === "step")
1338
+ labelByPathKey.set(row.pathKey, row.step.label);
1339
+ }
1340
+ return rows.map((row, index) => {
1341
+ const next3 = rows[index + 1];
1342
+ const connectorAfter = next3 === undefined || next3.depth < row.depth ? "hidden" : "visible";
1343
+ const ariaCurrent = index === currentRowIndex;
1344
+ if (row.kind === "depth-limit") {
1345
+ return { ...row, connectorAfter, ariaCurrent };
1346
+ }
1347
+ return {
1348
+ ...row,
1349
+ connectorAfter,
1350
+ ariaCurrent,
1351
+ compensatesLabel: resolveSiblingCompensatesLabel(row, labelByPathKey)
1352
+ };
1353
+ });
1354
+ }
1355
+ function resolveSiblingCompensatesLabel(row, labelByPathKey) {
1356
+ if (row.step.compensates === undefined)
1357
+ return;
1358
+ const lastSeparator = row.pathKey.lastIndexOf("/");
1359
+ const parentPrefix = lastSeparator === -1 ? "" : row.pathKey.slice(0, lastSeparator);
1360
+ const siblingPathKey = nestedStepPathKey(parentPrefix, row.step.compensates);
1361
+ if (siblingPathKey === row.pathKey)
1362
+ return;
1363
+ return labelByPathKey.get(siblingPathKey);
790
1364
  }
791
- function appendRunStepRows(rows, steps, depth, pathPrefix) {
792
- for (const step of steps) {
1365
+ function appendRunStepRows(rows, list, depth, pathPrefix) {
1366
+ for (const step of list) {
793
1367
  const pathKey = nestedStepPathKey(pathPrefix, step.id);
794
1368
  rows.push({ kind: "step", step, depth, pathKey });
795
1369
  if (step.children && step.children.length > 0) {
@@ -815,10 +1389,10 @@ function Run_step_timeline($$anchor, $$props) {
815
1389
  function escapeStepPathSegment(stepId) {
816
1390
  return stepId.replaceAll("%", "%25").replaceAll("/", "%2F");
817
1391
  }
818
- function summarizeNestedRunSteps(steps) {
1392
+ function summarizeNestedRunSteps(list) {
819
1393
  let count = 0;
820
1394
  let hasCurrent = false;
821
- const stack = [...steps];
1395
+ const stack = [...list];
822
1396
  while (stack.length > 0) {
823
1397
  const step = stack.pop();
824
1398
  if (step === undefined)
@@ -826,10 +1400,10 @@ function Run_step_timeline($$anchor, $$props) {
826
1400
  count += 1;
827
1401
  if (isCurrent(step.status))
828
1402
  hasCurrent = true;
829
- const children = step.children;
830
- if (children) {
831
- for (let index = children.length - 1;index >= 0; index -= 1) {
832
- const child7 = children[index];
1403
+ const stepChildren = step.children;
1404
+ if (stepChildren) {
1405
+ for (let index = stepChildren.length - 1;index >= 0; index -= 1) {
1406
+ const child7 = stepChildren[index];
833
1407
  if (child7)
834
1408
  stack.push(child7);
835
1409
  }
@@ -841,334 +1415,193 @@ function Run_step_timeline($$anchor, $$props) {
841
1415
  let currentIndex = -1;
842
1416
  let currentDepth = -1;
843
1417
  rows.forEach((row, index) => {
844
- const rowCurrentDepth = row.kind === "depth-limit" && row.hiddenCurrent ? row.depth + 1 : row.kind === "step" && isCurrent(row.step.status) ? row.depth : -1;
845
- if (rowCurrentDepth > currentDepth) {
1418
+ const rowCurrentDepth2 = row.kind === "depth-limit" && row.hiddenCurrent ? row.depth + 1 : row.kind === "step" && isCurrent(row.step.status) ? row.depth : -1;
1419
+ if (rowCurrentDepth2 > currentDepth) {
846
1420
  currentIndex = index;
847
- currentDepth = rowCurrentDepth;
1421
+ currentDepth = rowCurrentDepth2;
848
1422
  }
849
1423
  });
850
1424
  return currentIndex;
851
1425
  }
852
- var ol = root_9();
853
- $7.attribute_effect(ol, ($0) => ({
1426
+ function laneRows(lane) {
1427
+ return flattenSteps(lane.steps, "");
1428
+ }
1429
+ function laneStateLabel(lane) {
1430
+ return lane.outcome === undefined ? "racing" : laneOutcomeLabel(lane.outcome).toLowerCase();
1431
+ }
1432
+ var ol = root_132();
1433
+ $8.attribute_effect(ol, ($0) => ({
854
1434
  ...rest,
855
1435
  class: $0,
856
- "aria-label": $7.get(resolvedAriaLabel),
1436
+ "aria-label": $8.get(resolvedAriaLabel),
857
1437
  "aria-labelledby": $$props["aria-labelledby"]
858
1438
  }), [() => classNames("cinder-run-step-timeline", $$props.class)]);
859
- $7.each(ol, 21, () => $7.get(renderedSteps), (row) => row.pathKey, ($$anchor2, row) => {
860
- var fragment = $7.comment();
861
- var node = $7.first_child(fragment);
1439
+ $8.each(ol, 21, () => $8.get(renderedEntries), (entry) => entry.pathKey, ($$anchor2, entry) => {
1440
+ var fragment_16 = $8.comment();
1441
+ var node_18 = $8.first_child(fragment_16);
862
1442
  {
863
- var consequent = ($$anchor3) => {
864
- var li = root6();
865
- let styles;
866
- var div = $7.child(li);
867
- var span = $7.child(div);
868
- var node_1 = $7.child(span);
869
- Status_dot(node_1, {
870
- status: "neutral",
871
- label: "Nested steps hidden",
1443
+ var consequent_12 = ($$anchor3) => {
1444
+ const group = $8.derived(() => $8.get(entry).group);
1445
+ const summary = $8.derived(() => branchOutcomeSummary($8.get(group).lanes));
1446
+ const initialOpen = $8.derived(() => !branchStartsCollapsed($8.get(group).lanes.length, $8.get(group).collapseThreshold, $8.get(group).collapsed) || $8.get(group).collapsed === undefined && branchGroupHasCurrentStep($8.get(group)));
1447
+ var li_2 = root_122();
1448
+ var div_10 = $8.child(li_2);
1449
+ var span_5 = $8.child(div_10);
1450
+ var node_19 = $8.child(span_5);
1451
+ Status_dot(node_19, {
1452
+ status: "accent",
1453
+ label: "Branch group",
872
1454
  showLabel: false,
873
1455
  size: "md"
874
1456
  });
875
- $7.reset(span);
876
- var div_1 = $7.sibling(span, 2);
877
- var div_2 = $7.child(div_1);
878
- var span_1 = $7.child(div_2);
879
- var text3 = $7.child(span_1, true);
880
- $7.reset(span_1);
881
- var node_2 = $7.sibling(span_1, 2);
882
- Badge(node_2, {
883
- class: "cinder-run-step-timeline__status",
884
- variant: "neutral",
885
- size: "xs",
886
- "aria-label": "Status: Nested child steps hidden",
887
- children: ($$anchor4, $$slotProps) => {
888
- $7.next();
889
- var text_1 = $7.text("Depth cap");
890
- $7.append($$anchor4, text_1);
891
- },
892
- $$slots: { default: true }
893
- });
894
- $7.reset(div_2);
895
- $7.next(2);
896
- $7.reset(div_1);
897
- $7.reset(div);
898
- $7.reset(li);
899
- $7.template_effect(($0) => {
900
- $7.set_attribute(li, "data-cinder-depth", $7.get(row).depth);
901
- $7.set_attribute(li, "data-cinder-path", $7.get(row).pathKey);
902
- $7.set_attribute(li, "data-cinder-connector-after", $7.get(row).connectorAfter);
903
- $7.set_attribute(li, "aria-current", $7.get(row).ariaCurrent ? "step" : undefined);
904
- styles = $7.set_style(li, "", styles, { "--_cinder-rst-depth": $7.get(row).depth });
905
- $7.set_text(text3, $0);
906
- }, [() => hiddenNestedStepLabel($7.get(row).hiddenStepCount)]);
907
- $7.append($$anchor3, li);
908
- };
909
- var alternate_1 = ($$anchor3) => {
910
- const step = $7.derived(() => $7.get(row).step);
911
- const terminal = $7.derived(() => isTerminal($7.get(step).status));
912
- const metadata = $7.derived(() => metadataItems($7.get(step)));
913
- var li_1 = root_8();
914
- let styles_1;
915
- var div_3 = $7.child(li_1);
916
- var span_2 = $7.child(div_3);
917
- var node_3 = $7.child(span_2);
1457
+ $8.reset(span_5);
1458
+ var div_11 = $8.sibling(span_5, 2);
1459
+ var node_20 = $8.child(div_11);
918
1460
  {
919
- let $0 = $7.derived(() => statusDotStatus($7.get(step).status));
920
- let $1 = $7.derived(() => statusLabel($7.get(step).status));
921
- Status_dot(node_3, {
922
- get status() {
923
- return $7.get($0);
924
- },
925
- get label() {
926
- return $7.get($1);
927
- },
928
- showLabel: false,
929
- size: "md"
930
- });
931
- }
932
- $7.reset(span_2);
933
- var div_4 = $7.sibling(span_2, 2);
934
- var div_5 = $7.child(div_4);
935
- var span_3 = $7.child(div_5);
936
- var text_2 = $7.child(span_3, true);
937
- $7.reset(span_3);
938
- var node_4 = $7.sibling(span_3, 2);
939
- {
940
- var consequent_2 = ($$anchor4) => {
941
- const safeLinkHref = $7.derived(() => safeStepLinkHref($7.get(step).link.href));
942
- var fragment_1 = $7.comment();
943
- var node_5 = $7.first_child(fragment_1);
1461
+ const trigger = ($$anchor4) => {
1462
+ var span_6 = root_9();
1463
+ var span_7 = $8.child(span_6);
1464
+ var text_13 = $8.child(span_7, true);
1465
+ $8.reset(span_7);
1466
+ var node_21 = $8.sibling(span_7, 2);
944
1467
  {
945
- var consequent_1 = ($$anchor5) => {
946
- Link($$anchor5, {
947
- get href() {
948
- return $7.get(safeLinkHref);
949
- },
950
- class: "cinder-run-step-timeline__link",
951
- children: ($$anchor6, $$slotProps) => {
952
- $7.next();
953
- var text_3 = $7.text();
954
- $7.template_effect(() => $7.set_text(text_3, $7.get(step).link.label));
955
- $7.append($$anchor6, text_3);
956
- },
957
- $$slots: { default: true }
958
- });
959
- };
960
- var alternate = ($$anchor5) => {
961
- var span_4 = root_16();
962
- var text_4 = $7.child(span_4, true);
963
- $7.reset(span_4);
964
- $7.template_effect(() => $7.set_text(text_4, $7.get(step).link.label));
965
- $7.append($$anchor5, span_4);
966
- };
967
- $7.if(node_5, ($$render) => {
968
- if ($7.get(safeLinkHref))
969
- $$render(consequent_1);
970
- else
971
- $$render(alternate, -1);
1468
+ let $02 = $8.derived(() => `Branch group outcome: ${$8.get(summary)}`);
1469
+ Badge(node_21, {
1470
+ variant: "accent",
1471
+ size: "xs",
1472
+ get "aria-label"() {
1473
+ return $8.get($02);
1474
+ },
1475
+ children: ($$anchor5, $$slotProps) => {
1476
+ $8.next();
1477
+ var text_14 = $8.text();
1478
+ $8.template_effect(() => $8.set_text(text_14, $8.get(summary)));
1479
+ $8.append($$anchor5, text_14);
1480
+ },
1481
+ $$slots: { default: true }
972
1482
  });
973
1483
  }
974
- $7.append($$anchor4, fragment_1);
1484
+ $8.reset(span_6);
1485
+ $8.template_effect(() => $8.set_text(text_13, $8.get(group).label));
1486
+ $8.append($$anchor4, span_6);
975
1487
  };
976
- $7.if(node_4, ($$render) => {
977
- if ($7.get(step).link)
978
- $$render(consequent_2);
979
- });
980
- }
981
- var node_6 = $7.sibling(node_4, 2);
982
- {
983
- let $0 = $7.derived(() => badgeVariant($7.get(step).status));
984
- let $1 = $7.derived(() => `Status: ${statusLabel($7.get(step).status)}`);
985
- Badge(node_6, {
986
- class: "cinder-run-step-timeline__status",
987
- get variant() {
988
- return $7.get($0);
1488
+ let $0 = $8.derived(() => `Branch group: ${$8.get(group).label}. ${$8.get(summary)}.`);
1489
+ Run_step_branch_disclosure(node_20, {
1490
+ get initialOpen() {
1491
+ return $8.get(initialOpen);
989
1492
  },
990
- size: "xs",
991
- get "aria-label"() {
992
- return $7.get($1);
1493
+ class: "cinder-run-step-timeline__branch-disclosure",
1494
+ get triggerAriaLabel() {
1495
+ return $8.get($0);
993
1496
  },
1497
+ trigger,
994
1498
  children: ($$anchor4, $$slotProps) => {
995
- $7.next();
996
- var text_5 = $7.text();
997
- $7.template_effect(($02) => $7.set_text(text_5, $02), [() => statusLabel($7.get(step).status)]);
998
- $7.append($$anchor4, text_5);
999
- },
1000
- $$slots: { default: true }
1001
- });
1002
- }
1003
- var node_7 = $7.sibling(node_6, 2);
1004
- {
1005
- var consequent_3 = ($$anchor4) => {
1006
- Badge($$anchor4, {
1007
- variant: "neutral",
1008
- size: "xs",
1009
- mono: true,
1010
- children: ($$anchor5, $$slotProps) => {
1011
- $7.next();
1012
- var text_6 = $7.text();
1013
- $7.template_effect(() => $7.set_text(text_6, `attempt ${$7.get(step).attemptCount ?? ""}`));
1014
- $7.append($$anchor5, text_6);
1015
- },
1016
- $$slots: { default: true }
1017
- });
1018
- };
1019
- $7.if(node_7, ($$render) => {
1020
- if ($7.get(step).attemptCount !== undefined && $7.get(step).attemptCount > 1)
1021
- $$render(consequent_3);
1022
- });
1023
- }
1024
- var node_8 = $7.sibling(node_7, 2);
1025
- {
1026
- var consequent_4 = ($$anchor4) => {
1027
- Badge($$anchor4, {
1028
- variant: "neutral",
1029
- size: "xs",
1030
- mono: true,
1031
- children: ($$anchor5, $$slotProps) => {
1032
- $7.next();
1033
- var text_7 = $7.text();
1034
- $7.template_effect(($0) => $7.set_text(text_7, $0), [() => actionsCountLabel($7.get(step).actionsCount)]);
1035
- $7.append($$anchor5, text_7);
1036
- },
1037
- $$slots: { default: true }
1038
- });
1039
- };
1040
- $7.if(node_8, ($$render) => {
1041
- if ($7.get(step).actionsCount !== undefined && $7.get(step).actionsCount > 0)
1042
- $$render(consequent_4);
1043
- });
1044
- }
1045
- $7.reset(div_5);
1046
- var node_9 = $7.sibling(div_5, 2);
1047
- {
1048
- var consequent_5 = ($$anchor4) => {
1049
- var div_6 = root_25();
1050
- var node_10 = $7.child(div_6);
1051
- {
1052
- let $0 = $7.derived(() => $7.get(step).progress ?? 0);
1053
- let $1 = $7.derived(() => $7.get(step).progressMax ?? 100);
1054
- let $22 = $7.derived(() => `${$7.get(step).label} progress`);
1055
- Progress(node_10, {
1056
- get value() {
1057
- return $7.get($0);
1058
- },
1059
- get max() {
1060
- return $7.get($1);
1061
- },
1062
- size: "sm",
1063
- get ariaLabel() {
1064
- return $7.get($22);
1499
+ var ul = root_11();
1500
+ $8.each(ul, 21, () => $8.get(group).lanes, (lane) => lane.id, ($$anchor5, lane) => {
1501
+ var li_3 = root_10();
1502
+ var div_12 = $8.child(li_3);
1503
+ var span_8 = $8.child(div_12);
1504
+ var text_15 = $8.child(span_8, true);
1505
+ $8.reset(span_8);
1506
+ var node_22 = $8.sibling(span_8, 2);
1507
+ {
1508
+ var consequent_11 = ($$anchor6) => {
1509
+ {
1510
+ let $02 = $8.derived(() => laneOutcomeBadgeVariant($8.get(lane).outcome));
1511
+ let $1 = $8.derived(() => `Outcome: ${laneOutcomeLabel($8.get(lane).outcome)}`);
1512
+ Badge($$anchor6, {
1513
+ get variant() {
1514
+ return $8.get($02);
1515
+ },
1516
+ size: "xs",
1517
+ get "aria-label"() {
1518
+ return $8.get($1);
1519
+ },
1520
+ children: ($$anchor7, $$slotProps2) => {
1521
+ $8.next();
1522
+ var text_16 = $8.text();
1523
+ $8.template_effect(($03) => $8.set_text(text_16, $03), [() => laneOutcomeLabel($8.get(lane).outcome)]);
1524
+ $8.append($$anchor7, text_16);
1525
+ },
1526
+ $$slots: { default: true }
1527
+ });
1528
+ }
1529
+ };
1530
+ var alternate_2 = ($$anchor6) => {
1531
+ Badge($$anchor6, {
1532
+ variant: "info",
1533
+ size: "xs",
1534
+ "aria-label": "Outcome: still racing",
1535
+ children: ($$anchor7, $$slotProps2) => {
1536
+ $8.next();
1537
+ var text_17 = $8.text("Racing");
1538
+ $8.append($$anchor7, text_17);
1539
+ },
1540
+ $$slots: { default: true }
1541
+ });
1542
+ };
1543
+ $8.if(node_22, ($$render) => {
1544
+ if ($8.get(lane).outcome !== undefined)
1545
+ $$render(consequent_11);
1546
+ else
1547
+ $$render(alternate_2, -1);
1548
+ });
1065
1549
  }
1550
+ $8.reset(div_12);
1551
+ var ol_1 = $8.sibling(div_12, 2);
1552
+ var node_23 = $8.child(ol_1);
1553
+ {
1554
+ let $02 = $8.derived(() => laneRows($8.get(lane)));
1555
+ stepRail(node_23, () => $8.get($02));
1556
+ }
1557
+ $8.reset(ol_1);
1558
+ $8.reset(li_3);
1559
+ $8.template_effect(($02) => {
1560
+ $8.set_attribute(li_3, "data-cinder-outcome", $8.get(lane).outcome ?? "racing");
1561
+ $8.set_attribute(li_3, "aria-label", $02);
1562
+ $8.set_text(text_15, $8.get(lane).label ?? $8.get(lane).id);
1563
+ $8.set_attribute(ol_1, "aria-label", `${$8.get(lane).label ?? $8.get(lane).id} steps`);
1564
+ }, [
1565
+ () => `Branch ${$8.get(lane).label ?? $8.get(lane).id}: ${laneStateLabel($8.get(lane))}`
1566
+ ]);
1567
+ $8.append($$anchor5, li_3);
1066
1568
  });
1067
- }
1068
- $7.reset(div_6);
1069
- $7.append($$anchor4, div_6);
1070
- };
1071
- var d = $7.derived(() => hasProgress($7.get(step)));
1072
- $7.if(node_9, ($$render) => {
1073
- if ($7.get(d))
1074
- $$render(consequent_5);
1075
- });
1076
- }
1077
- var node_11 = $7.sibling(node_9, 2);
1078
- {
1079
- var consequent_6 = ($$anchor4) => {
1080
- var dl = root_42();
1081
- $7.each(dl, 21, () => $7.get(metadata), (item) => item.term, ($$anchor5, item) => {
1082
- var div_7 = root_34();
1083
- var dt = $7.child(div_7);
1084
- var text_8 = $7.child(dt, true);
1085
- $7.reset(dt);
1086
- var dd = $7.sibling(dt, 2);
1087
- var text_9 = $7.child(dd, true);
1088
- $7.reset(dd);
1089
- $7.reset(div_7);
1090
- $7.template_effect(() => {
1091
- $7.set_text(text_8, $7.get(item).term);
1092
- $7.set_text(text_9, $7.get(item).definition);
1093
- });
1094
- $7.append($$anchor5, div_7);
1095
- });
1096
- $7.reset(dl);
1097
- $7.append($$anchor4, dl);
1098
- };
1099
- $7.if(node_11, ($$render) => {
1100
- if ($7.get(metadata).length > 0)
1101
- $$render(consequent_6);
1102
- });
1103
- }
1104
- var node_12 = $7.sibling(node_11, 2);
1105
- {
1106
- var consequent_7 = ($$anchor4) => {
1107
- var div_8 = root_6();
1108
- $7.each(div_8, 21, () => $7.get(step).details, (detail) => detail.id, ($$anchor5, detail) => {
1109
- Collapsible($$anchor5, {
1110
- get trigger() {
1111
- return $7.get(detail).label;
1112
- },
1113
- children: ($$anchor6, $$slotProps) => {
1114
- var pre = root_52();
1115
- var text_10 = $7.child(pre, true);
1116
- $7.reset(pre);
1117
- $7.template_effect(() => $7.set_text(text_10, $7.get(detail).content));
1118
- $7.append($$anchor6, pre);
1119
- },
1120
- $$slots: { default: true }
1121
- });
1122
- });
1123
- $7.reset(div_8);
1124
- $7.append($$anchor4, div_8);
1125
- };
1126
- $7.if(node_12, ($$render) => {
1127
- if ($7.get(step).details && $7.get(step).details.length > 0)
1128
- $$render(consequent_7);
1129
- });
1130
- }
1131
- var node_13 = $7.sibling(node_12, 2);
1132
- {
1133
- var consequent_8 = ($$anchor4) => {
1134
- var div_9 = root_7();
1135
- var node_14 = $7.child(div_9);
1136
- $7.snippet(node_14, () => $$props.children, () => $7.get(step));
1137
- $7.reset(div_9);
1138
- $7.append($$anchor4, div_9);
1139
- };
1140
- $7.if(node_13, ($$render) => {
1141
- if ($$props.children)
1142
- $$render(consequent_8);
1569
+ $8.reset(ul);
1570
+ $8.template_effect(() => $8.set_attribute(ul, "aria-label", `${$8.get(group).label} branches`));
1571
+ $8.append($$anchor4, ul);
1572
+ },
1573
+ $$slots: { trigger: true, default: true }
1143
1574
  });
1144
1575
  }
1145
- $7.reset(div_4);
1146
- $7.reset(div_3);
1147
- $7.reset(li_1);
1148
- $7.template_effect(() => {
1149
- $7.set_attribute(li_1, "data-cinder-status", $7.get(step).status);
1150
- $7.set_attribute(li_1, "data-cinder-depth", $7.get(row).depth);
1151
- $7.set_attribute(li_1, "data-cinder-path", $7.get(row).pathKey);
1152
- $7.set_attribute(li_1, "data-cinder-terminal", $7.get(terminal) ? "" : undefined);
1153
- $7.set_attribute(li_1, "data-cinder-connector-after", $7.get(row).connectorAfter);
1154
- $7.set_attribute(li_1, "aria-current", $7.get(row).ariaCurrent ? "step" : undefined);
1155
- styles_1 = $7.set_style(li_1, "", styles_1, { "--_cinder-rst-depth": $7.get(row).depth });
1156
- $7.set_text(text_2, $7.get(step).label);
1576
+ $8.reset(div_11);
1577
+ $8.reset(div_10);
1578
+ $8.reset(li_2);
1579
+ $8.template_effect(() => {
1580
+ $8.set_attribute(li_2, "data-cinder-path", $8.get(entry).pathKey);
1581
+ $8.set_attribute(li_2, "data-cinder-connector-after", $8.get(entry).connectorAfter);
1157
1582
  });
1158
- $7.append($$anchor3, li_1);
1583
+ $8.append($$anchor3, li_2);
1584
+ };
1585
+ var consequent_13 = ($$anchor3) => {
1586
+ depthLimitItem($$anchor3, () => $8.get(entry));
1159
1587
  };
1160
- $7.if(node, ($$render) => {
1161
- if ($7.get(row).kind === "depth-limit")
1162
- $$render(consequent);
1588
+ var alternate_3 = ($$anchor3) => {
1589
+ stepItem($$anchor3, () => $8.get(entry));
1590
+ };
1591
+ $8.if(node_18, ($$render) => {
1592
+ if ($8.get(entry).kind === "branch")
1593
+ $$render(consequent_12);
1594
+ else if ($8.get(entry).kind === "depth-limit")
1595
+ $$render(consequent_13, 1);
1163
1596
  else
1164
- $$render(alternate_1, -1);
1597
+ $$render(alternate_3, -1);
1165
1598
  });
1166
1599
  }
1167
- $7.append($$anchor2, fragment);
1600
+ $8.append($$anchor2, fragment_16);
1168
1601
  });
1169
- $7.reset(ol);
1170
- $7.append($$anchor, ol);
1171
- $7.pop();
1602
+ $8.reset(ol);
1603
+ $8.append($$anchor, ol);
1604
+ $8.pop();
1172
1605
  }
1173
1606
 
1174
1607
  // src/components/run-step-timeline/index.ts
@@ -1178,4 +1611,4 @@ export {
1178
1611
  Run_step_timeline as RunStepTimeline
1179
1612
  };
1180
1613
 
1181
- //# debugId=E2483CD0C28476EF64756E2164756E21
1614
+ //# debugId=9EFCA6AA2F9089A264756E2164756E21