@lostgradient/cinder 0.9.0 → 0.12.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 (169) hide show
  1. package/CHANGELOG.md +26 -0
  2. package/components.json +82 -4
  3. package/dist/components/access-gate/index.js +381 -239
  4. package/dist/components/chat/builders.d.ts +17 -8
  5. package/dist/components/chat/conversation-model.d.ts +1 -1
  6. package/dist/components/chat/index.d.ts +1 -1
  7. package/dist/components/chat/index.js +300 -17
  8. package/dist/components/chat/utilities/conversation.d.ts +6 -6
  9. package/dist/components/chat-conversation-header/index.js +19 -6
  10. package/dist/components/chat-conversation-list/index.js +19 -6
  11. package/dist/components/code-block/code-block.css +15 -9
  12. package/dist/components/code-block/code-block.variables.js +8 -2
  13. package/dist/components/confirm-dialog/confirm-dialog.css +2 -0
  14. package/dist/components/confirm-dialog/confirm-dialog.schema.js +10 -1
  15. package/dist/components/confirm-dialog/confirm-dialog.types.d.ts +7 -0
  16. package/dist/components/confirm-dialog/index.js +478 -106
  17. package/dist/components/connection-indicator/connection-indicator.css +136 -0
  18. package/dist/components/connection-indicator/connection-indicator.css.d.ts +1 -0
  19. package/dist/components/connection-indicator/connection-indicator.schema.d.ts +3 -0
  20. package/dist/components/connection-indicator/connection-indicator.schema.js +89 -0
  21. package/dist/components/connection-indicator/connection-indicator.svelte.d.ts +21 -0
  22. package/dist/components/connection-indicator/connection-indicator.types.d.ts +46 -0
  23. package/dist/components/connection-indicator/connection-indicator.variables.d.ts +2 -0
  24. package/dist/components/connection-indicator/connection-indicator.variables.js +61 -0
  25. package/dist/components/connection-indicator/index.d.ts +5 -0
  26. package/dist/components/connection-indicator/index.js +409 -0
  27. package/dist/components/container/container.schema.js +4 -4
  28. package/dist/components/faceted-filter-bar/faceted-filter-bar.schema.js +5 -1
  29. package/dist/components/faceted-filter-bar/faceted-filter-bar.types.d.ts +2 -0
  30. package/dist/components/faceted-filter-bar/index.js +40 -31
  31. package/dist/components/invocation-rule-builder/index.d.ts +1 -1
  32. package/dist/components/invocation-rule-builder/index.js +305 -150
  33. package/dist/components/invocation-rule-builder/invocation-rule-builder.css +28 -0
  34. package/dist/components/invocation-rule-builder/invocation-rule-builder.schema.js +89 -5
  35. package/dist/components/invocation-rule-builder/invocation-rule-builder.svelte.d.ts +2 -1
  36. package/dist/components/invocation-rule-builder/invocation-rule-builder.types.d.ts +114 -16
  37. package/dist/components/navigation-bar/index.js +11 -17
  38. package/dist/components/run-step-timeline/index.d.ts +1 -1
  39. package/dist/components/run-step-timeline/index.js +1052 -560
  40. package/dist/components/run-step-timeline/run-step-branch-disclosure.svelte.d.ts +17 -0
  41. package/dist/components/run-step-timeline/run-step-timeline.css +124 -0
  42. package/dist/components/run-step-timeline/run-step-timeline.schema.js +873 -350
  43. package/dist/components/run-step-timeline/run-step-timeline.svelte.d.ts +1 -15
  44. package/dist/components/run-step-timeline/run-step-timeline.types.d.ts +182 -5
  45. package/dist/components/run-step-timeline/run-step-timeline.utilities.d.ts +60 -0
  46. package/dist/components/schedule-builder/index.d.ts +5 -0
  47. package/dist/components/schedule-builder/index.js +3176 -0
  48. package/dist/components/schedule-builder/schedule-builder.css +121 -0
  49. package/dist/components/schedule-builder/schedule-builder.css.d.ts +1 -0
  50. package/dist/components/schedule-builder/schedule-builder.schema.d.ts +3 -0
  51. package/dist/components/schedule-builder/schedule-builder.schema.js +141 -0
  52. package/dist/components/schedule-builder/schedule-builder.svelte.d.ts +22 -0
  53. package/dist/components/schedule-builder/schedule-builder.types.d.ts +130 -0
  54. package/dist/components/schedule-builder/schedule-builder.utilities.d.ts +78 -0
  55. package/dist/components/schedule-builder/schedule-builder.variables.d.ts +2 -0
  56. package/dist/components/schedule-builder/schedule-builder.variables.js +61 -0
  57. package/dist/components/tag-input/index.js +22 -4
  58. package/dist/components/tag-input/tag-input.schema.js +5 -1
  59. package/dist/components/tag-input/tag-input.types.d.ts +4 -0
  60. package/dist/index.d.ts +6 -2
  61. package/dist/index.js +23069 -20833
  62. package/dist/server/components/access-gate/index.js +2 -1
  63. package/dist/server/components/chat/index.js +4 -4
  64. package/dist/server/components/chat-conversation-header/index.js +5 -5
  65. package/dist/server/components/chat-conversation-list/index.js +3 -3
  66. package/dist/server/components/color-field/index.js +2 -2
  67. package/dist/server/components/confirm-dialog/index.js +7 -2
  68. package/dist/server/components/connection-indicator/index.js +16 -0
  69. package/dist/server/components/data-table/index.js +3 -3
  70. package/dist/server/components/diff-viewer/index.js +4 -3
  71. package/dist/server/components/faceted-filter-bar/index.js +1 -1
  72. package/dist/server/components/invocation-rule-builder/index.js +1 -1
  73. package/dist/server/components/json-schema-editor/index.js +4 -3
  74. package/dist/server/components/navigation-bar/index.js +1 -1
  75. package/dist/server/components/review-editor/index.js +4 -3
  76. package/dist/server/components/run-step-timeline/index.js +1 -1
  77. package/dist/server/components/schedule-builder/index.js +30 -0
  78. package/dist/server/components/side-navigation/index.js +2 -2
  79. package/dist/server/components/table/index.js +3 -3
  80. package/dist/server/components/tag-input/index.js +1 -1
  81. package/dist/server/components/time-field/index.js +5 -3
  82. package/dist/server/index.js +105 -92
  83. package/dist/server/index.server-0sx92swg.js +9 -0
  84. package/dist/server/{index.server-mzzb7dnm.js → index.server-2bbwajb2.js} +1 -1
  85. package/dist/server/{index.server-q7w4jw89.js → index.server-2s5h1d05.js} +2 -2
  86. package/dist/server/{index.server-dg83ke3k.js → index.server-2zdbz3rj.js} +1 -1
  87. package/dist/server/{index.server-0jhra85x.js → index.server-3w72dxz7.js} +4 -4
  88. package/dist/server/{index.server-5tf22d6e.js → index.server-4wx0qven.js} +3 -3
  89. package/dist/server/{index.server-qh9qzd5t.js → index.server-4x4hgvqe.js} +283 -13
  90. package/dist/server/{index.server-c6pe4kaf.js → index.server-5gzyqv78.js} +1 -1
  91. package/dist/server/{index.server-mqt1ngqw.js → index.server-6hnfzc7f.js} +19 -6
  92. package/dist/server/{index.server-894t97kv.js → index.server-7yvpb6z7.js} +4 -4
  93. package/dist/server/index.server-be9bpqeh.js +93 -0
  94. package/dist/server/{index.server-f3z7tpxr.js → index.server-c42b462p.js} +2 -4
  95. package/dist/server/{index.server-7vyzen5x.js → index.server-c5qv3p61.js} +171 -63
  96. package/dist/server/index.server-cch0eed5.js +144 -0
  97. package/dist/server/{index.server-btgb3d56.js → index.server-d5a5ccz7.js} +18 -12
  98. package/dist/server/index.server-g5jgq3jp.js +793 -0
  99. package/dist/server/index.server-gmh5ar16.js +2 -0
  100. package/dist/server/{index.server-0atyznp7.js → index.server-h89zk5ev.js} +7 -7
  101. package/dist/server/{index.server-jxg42jpz.js → index.server-jdcq5zza.js} +7 -7
  102. package/dist/server/{index.server-2dga5yzr.js → index.server-jfrssta6.js} +1 -1
  103. package/dist/server/{index.server-fy068yne.js → index.server-jj76374p.js} +1 -1
  104. package/dist/server/{index.server-39ne5cd1.js → index.server-pxq277t5.js} +32 -1
  105. package/dist/server/index.server-qbkxz7r2.js +750 -0
  106. package/dist/server/{index.server-marjz8ps.js → index.server-tcay903b.js} +3 -2
  107. package/dist/server/{index.server-yz4k36cw.js → index.server-z7hxtqs1.js} +1 -1
  108. package/package.json +87 -97
  109. package/src/components/chat/builders.ts +445 -14
  110. package/src/components/chat/conversation-model.ts +1 -0
  111. package/src/components/chat/index.ts +1 -0
  112. package/src/components/chat/utilities/conversation.ts +33 -15
  113. package/src/components/code-block/code-block.css +15 -9
  114. package/src/components/code-block/code-block.variables.json +7 -1
  115. package/src/components/code-block/code-block.variables.ts +7 -1
  116. package/src/components/confirm-dialog/confirm-dialog.css +2 -0
  117. package/src/components/confirm-dialog/confirm-dialog.schema.json +8 -0
  118. package/src/components/confirm-dialog/confirm-dialog.schema.ts +10 -0
  119. package/src/components/confirm-dialog/confirm-dialog.svelte +31 -3
  120. package/src/components/confirm-dialog/confirm-dialog.types.ts +7 -0
  121. package/src/components/connection-indicator/connection-indicator.css +136 -0
  122. package/src/components/connection-indicator/connection-indicator.examples.json +31 -0
  123. package/src/components/connection-indicator/connection-indicator.schema.json +29 -0
  124. package/src/components/connection-indicator/connection-indicator.schema.ts +36 -0
  125. package/src/components/connection-indicator/connection-indicator.svelte +63 -0
  126. package/src/components/connection-indicator/connection-indicator.types.ts +58 -0
  127. package/src/components/connection-indicator/connection-indicator.variables.json +1 -0
  128. package/src/components/connection-indicator/connection-indicator.variables.ts +3 -0
  129. package/src/components/connection-indicator/index.ts +10 -0
  130. package/src/components/container/container.schema.json +3 -3
  131. package/src/components/container/container.schema.ts +3 -3
  132. package/src/components/faceted-filter-bar/faceted-filter-bar.schema.json +4 -0
  133. package/src/components/faceted-filter-bar/faceted-filter-bar.schema.ts +4 -0
  134. package/src/components/faceted-filter-bar/faceted-filter-bar.svelte +13 -11
  135. package/src/components/faceted-filter-bar/faceted-filter-bar.types.ts +2 -0
  136. package/src/components/invocation-rule-builder/index.ts +4 -0
  137. package/src/components/invocation-rule-builder/invocation-rule-builder.css +28 -0
  138. package/src/components/invocation-rule-builder/invocation-rule-builder.examples.json +6 -0
  139. package/src/components/invocation-rule-builder/invocation-rule-builder.schema.json +76 -3
  140. package/src/components/invocation-rule-builder/invocation-rule-builder.schema.ts +83 -3
  141. package/src/components/invocation-rule-builder/invocation-rule-builder.svelte +326 -113
  142. package/src/components/invocation-rule-builder/invocation-rule-builder.types.ts +157 -43
  143. package/src/components/navigation-bar/navigation-bar.svelte +2 -2
  144. package/src/components/run-step-timeline/index.ts +8 -0
  145. package/src/components/run-step-timeline/run-step-branch-disclosure.svelte +16 -0
  146. package/src/components/run-step-timeline/run-step-timeline.css +124 -0
  147. package/src/components/run-step-timeline/run-step-timeline.examples.json +18 -0
  148. package/src/components/run-step-timeline/run-step-timeline.schema.json +872 -349
  149. package/src/components/run-step-timeline/run-step-timeline.schema.ts +931 -349
  150. package/src/components/run-step-timeline/run-step-timeline.svelte +388 -269
  151. package/src/components/run-step-timeline/run-step-timeline.types.ts +192 -5
  152. package/src/components/run-step-timeline/run-step-timeline.utilities.ts +310 -0
  153. package/src/components/schedule-builder/index.ts +14 -0
  154. package/src/components/schedule-builder/schedule-builder.css +121 -0
  155. package/src/components/schedule-builder/schedule-builder.examples.json +31 -0
  156. package/src/components/schedule-builder/schedule-builder.schema.json +78 -0
  157. package/src/components/schedule-builder/schedule-builder.schema.ts +86 -0
  158. package/src/components/schedule-builder/schedule-builder.svelte +629 -0
  159. package/src/components/schedule-builder/schedule-builder.types.ts +137 -0
  160. package/src/components/schedule-builder/schedule-builder.utilities.ts +344 -0
  161. package/src/components/schedule-builder/schedule-builder.variables.json +1 -0
  162. package/src/components/schedule-builder/schedule-builder.variables.ts +3 -0
  163. package/src/components/tag-input/tag-input.schema.json +4 -0
  164. package/src/components/tag-input/tag-input.schema.ts +4 -0
  165. package/src/components/tag-input/tag-input.svelte +20 -3
  166. package/src/components/tag-input/tag-input.types.ts +4 -0
  167. package/src/index.ts +23 -0
  168. package/src/styles/components.css +2 -0
  169. package/dist/server/index.server-qk1h0n02.js +0 -393
@@ -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,352 @@ 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 relocateCompensationSteps(steps) {
674
+ return relocateSiblingItems(steps, (step) => step);
675
+ }
676
+ function relocateSiblingItems(items, getStep) {
677
+ if (!items.some((item) => getStep(item)?.compensates !== undefined))
678
+ return items;
679
+ const stepById = new Map;
680
+ for (const item of items) {
681
+ const step = getStep(item);
682
+ if (step !== undefined) {
683
+ stepById.set(step.id, step);
684
+ }
685
+ }
686
+ const canRelocate = (step) => {
687
+ const visited = new Set([step.id]);
688
+ let targetId = step.compensates;
689
+ while (targetId !== undefined) {
690
+ const target = stepById.get(targetId);
691
+ if (target === undefined || visited.has(targetId))
692
+ return false;
693
+ visited.add(targetId);
694
+ targetId = target.compensates;
695
+ }
696
+ return true;
697
+ };
698
+ const relocatable = new Set;
699
+ const compensationsByTarget = new Map;
700
+ for (const item of items) {
701
+ const step = getStep(item);
702
+ if (step === undefined || step.compensates === undefined || !canRelocate(step))
703
+ continue;
704
+ relocatable.add(step);
705
+ const compensations = compensationsByTarget.get(step.compensates) ?? [];
706
+ compensations.push(item);
707
+ compensationsByTarget.set(step.compensates, compensations);
708
+ }
709
+ const result = [];
710
+ const appendWithCompensations = (item) => {
711
+ result.push(item);
712
+ const step = getStep(item);
713
+ if (step === undefined)
714
+ return;
715
+ for (const compensation of compensationsByTarget.get(step.id) ?? []) {
716
+ appendWithCompensations(compensation);
717
+ }
718
+ };
719
+ for (const item of items) {
720
+ const step = getStep(item);
721
+ if (step === undefined || !relocatable.has(step))
722
+ appendWithCompensations(item);
723
+ }
724
+ return result;
725
+ }
726
+ function relocateCompensationEntries(entries) {
727
+ return relocateSiblingItems(entries, (entry) => isBranchGroup(entry) ? undefined : entry);
728
+ }
729
+ function isBranchGroup(entry) {
730
+ return "kind" in entry && entry.kind === "branch";
731
+ }
732
+ function statusDotStatus(status) {
733
+ switch (status) {
734
+ case "succeeded":
735
+ return "success";
736
+ case "failed":
737
+ return "danger";
738
+ case "running":
739
+ return "online";
740
+ case "retrying":
741
+ return "warning";
742
+ case "waiting_approval":
743
+ return "accent";
744
+ case "cancelled":
745
+ return "offline";
746
+ case "skipped":
747
+ return "neutral";
748
+ case "pending":
749
+ return "pending";
750
+ }
751
+ }
752
+ function statusLabel(status) {
753
+ switch (status) {
754
+ case "pending":
755
+ return "Pending";
756
+ case "running":
757
+ return "Running";
758
+ case "succeeded":
759
+ return "Succeeded";
760
+ case "failed":
761
+ return "Failed";
762
+ case "cancelled":
763
+ return "Cancelled";
764
+ case "skipped":
765
+ return "Skipped";
766
+ case "retrying":
767
+ return "Retrying";
768
+ case "waiting_approval":
769
+ return "Waiting approval";
770
+ }
771
+ }
772
+ function badgeVariant(status) {
773
+ switch (status) {
774
+ case "succeeded":
775
+ return "success";
776
+ case "failed":
777
+ return "danger";
778
+ case "running":
779
+ return "info";
780
+ case "retrying":
781
+ return "warning";
782
+ case "waiting_approval":
783
+ return "accent";
784
+ case "cancelled":
785
+ return "neutral";
786
+ case "skipped":
787
+ return "neutral";
788
+ case "pending":
789
+ return "neutral";
790
+ }
791
+ }
792
+ function isTerminal(status) {
793
+ return status === "succeeded" || status === "failed" || status === "cancelled" || status === "skipped";
794
+ }
795
+ function isCurrent(status) {
796
+ return status === "running" || status === "retrying" || status === "waiting_approval";
797
+ }
798
+ function hasProgress(step) {
799
+ return step.progress !== undefined && isCurrent(step.status);
800
+ }
801
+ function metadataItems(step) {
802
+ const items = [];
803
+ if (step.startTime !== undefined) {
804
+ items.push({ term: "Started", definition: step.startTime });
805
+ }
806
+ if (step.endTime !== undefined) {
807
+ items.push({ term: "Ended", definition: step.endTime });
808
+ }
809
+ if (step.duration !== undefined) {
810
+ items.push({ term: "Duration", definition: step.duration });
811
+ }
812
+ if (step.attemptCount !== undefined && step.attemptCount > 1) {
813
+ items.push({ term: "Attempts", definition: String(step.attemptCount) });
814
+ }
815
+ return items;
816
+ }
817
+ function actionsCountLabel(actionsCount) {
818
+ return actionsCount === 1 ? "1 action" : `${actionsCount} actions`;
819
+ }
820
+ function hiddenNestedStepLabel(hiddenStepCount) {
821
+ return hiddenStepCount === 1 ? "1 nested step hidden" : `${hiddenStepCount} nested steps hidden`;
822
+ }
823
+ function laneOutcomeLabel(outcome) {
824
+ switch (outcome) {
825
+ case "won":
826
+ return "Won";
827
+ case "lost":
828
+ return "Lost";
829
+ case "settled":
830
+ return "Settled";
831
+ }
832
+ }
833
+ function laneOutcomeBadgeVariant(outcome) {
834
+ switch (outcome) {
835
+ case "won":
836
+ return "success";
837
+ case "lost":
838
+ return "neutral";
839
+ case "settled":
840
+ return "info";
841
+ }
842
+ }
843
+ function branchOutcomeSummary(lanes) {
844
+ const counts = { won: 0, lost: 0, settled: 0, pending: 0 };
845
+ for (const lane of lanes) {
846
+ if (lane.outcome === undefined)
847
+ counts.pending += 1;
848
+ else
849
+ counts[lane.outcome] += 1;
850
+ }
851
+ const parts = [];
852
+ if (counts.won > 0)
853
+ parts.push(`${counts.won} won`);
854
+ if (counts.lost > 0)
855
+ parts.push(`${counts.lost} lost`);
856
+ if (counts.settled > 0)
857
+ parts.push(`${counts.settled} settled`);
858
+ if (counts.pending > 0) {
859
+ parts.push(counts.pending === 1 ? "1 lane racing" : `${counts.pending} lanes racing`);
860
+ }
861
+ return parts.length > 0 ? parts.join(", ") : "No lanes";
862
+ }
863
+ function branchGroupHasCurrentStep(group) {
864
+ const stack = group.lanes.flatMap((lane) => lane.steps);
865
+ while (stack.length > 0) {
866
+ const step = stack.pop();
867
+ if (step === undefined)
868
+ continue;
869
+ if (isCurrent(step.status))
870
+ return true;
871
+ if (step.children) {
872
+ for (const child6 of step.children)
873
+ stack.push(child6);
874
+ }
875
+ }
876
+ return false;
877
+ }
878
+ function branchStartsCollapsed(laneCount, collapseThreshold, collapsed) {
879
+ if (collapsed !== undefined)
880
+ return collapsed;
881
+ const threshold = collapseThreshold !== undefined && Number.isInteger(collapseThreshold) && collapseThreshold > 0 ? collapseThreshold : 3;
882
+ return laneCount >= threshold;
883
+ }
884
+ function hasControlCharacter(value) {
885
+ for (let index = 0;index < value.length; index += 1) {
886
+ const code = value.charCodeAt(index);
887
+ if (code <= 31 || code === 127)
888
+ return true;
889
+ }
890
+ return false;
891
+ }
892
+ function safeStepLinkHref(href) {
893
+ const trimmedHref = href.trim();
894
+ if (trimmedHref === "")
895
+ return;
896
+ if (hasControlCharacter(trimmedHref))
897
+ return;
898
+ if (trimmedHref.includes("\\"))
899
+ return;
900
+ const leadingSeparators = trimmedHref.match(/^[\\/]+/)?.[0] ?? "";
901
+ if (leadingSeparators.length > 1)
902
+ return;
903
+ if (/^[A-Za-z][A-Za-z\d+.-]*:/.test(trimmedHref)) {
904
+ try {
905
+ const parsedUrl = new URL(trimmedHref);
906
+ return parsedUrl.protocol === "http:" || parsedUrl.protocol === "https:" ? trimmedHref : undefined;
907
+ } catch {
908
+ return;
909
+ }
910
+ }
911
+ return trimmedHref;
639
912
  }
640
913
 
641
914
  // src/components/run-step-timeline/run-step-timeline.svelte
915
+ var depthLimitItem = ($$anchor, row = $8.noop) => {
916
+ var li_1 = root_8();
917
+ let styles_1;
918
+ var div_7 = $8.child(li_1);
919
+ var span_3 = $8.child(div_7);
920
+ var node_14 = $8.child(span_3);
921
+ Status_dot(node_14, {
922
+ status: "neutral",
923
+ label: "Nested steps hidden",
924
+ showLabel: false,
925
+ size: "md"
926
+ });
927
+ $8.reset(span_3);
928
+ var div_8 = $8.sibling(span_3, 2);
929
+ var div_9 = $8.child(div_8);
930
+ var span_4 = $8.child(div_9);
931
+ var text_11 = $8.child(span_4, true);
932
+ $8.reset(span_4);
933
+ var node_15 = $8.sibling(span_4, 2);
934
+ Badge(node_15, {
935
+ class: "cinder-run-step-timeline__status",
936
+ variant: "neutral",
937
+ size: "xs",
938
+ "aria-label": "Status: Nested child steps hidden",
939
+ children: ($$anchor2, $$slotProps) => {
940
+ $8.next();
941
+ var text_12 = $8.text("Depth cap");
942
+ $8.append($$anchor2, text_12);
943
+ },
944
+ $$slots: { default: true }
945
+ });
946
+ $8.reset(div_9);
947
+ $8.next(2);
948
+ $8.reset(div_8);
949
+ $8.reset(div_7);
950
+ $8.reset(li_1);
951
+ $8.template_effect(($0) => {
952
+ $8.set_attribute(li_1, "data-cinder-depth", row().depth);
953
+ $8.set_attribute(li_1, "data-cinder-path", row().pathKey);
954
+ $8.set_attribute(li_1, "data-cinder-connector-after", row().connectorAfter);
955
+ $8.set_attribute(li_1, "aria-current", row().ariaCurrent ? "step" : undefined);
956
+ styles_1 = $8.set_style(li_1, "", styles_1, { "--_cinder-rst-depth": row().depth });
957
+ $8.set_text(text_11, $0);
958
+ }, [() => hiddenNestedStepLabel(row().hiddenStepCount)]);
959
+ $8.append($$anchor, li_1);
960
+ };
642
961
  var rest_excludes5 = new Set([
643
962
  "$$slots",
644
963
  "$$events",
@@ -650,151 +969,465 @@ var rest_excludes5 = new Set([
650
969
  "aria-label",
651
970
  "aria-labelledby"
652
971
  ]);
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>`);
972
+ var root6 = $8.from_html(`<span class="cinder-run-step-timeline__link cinder-run-step-timeline__link--unsafe"> </span>`);
973
+ var root_16 = $8.from_html(`<div class="cinder-run-step-timeline__progress"><!></div>`);
974
+ 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>`);
975
+ var root_34 = $8.from_html(`<dl class="cinder-run-step-timeline__meta"></dl>`);
976
+ var root_42 = $8.from_html(`<pre class="cinder-run-step-timeline__detail-content"> </pre>`);
977
+ var root_52 = $8.from_html(`<div class="cinder-run-step-timeline__details"></div>`);
978
+ var root_6 = $8.from_html(`<div class="cinder-run-step-timeline__body"><!></div>`);
979
+ 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>`);
980
+ 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>`);
981
+ var root_9 = $8.from_html(`<span class="cinder-run-step-timeline__branch-heading"><span class="cinder-run-step-timeline__label"> </span> <!></span>`);
982
+ 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>`);
983
+ var root_11 = $8.from_html(`<ul class="cinder-run-step-timeline__lanes"></ul>`);
984
+ 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>`);
985
+ var root_132 = $8.from_html(`<ol></ol>`);
663
986
  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";
987
+ $8.push($$props, true);
988
+ const stepItem = ($$anchor2, row = $8.noop) => {
989
+ const step = $8.derived(() => row().step);
990
+ const terminal = $8.derived(() => isTerminal($8.get(step).status));
991
+ const metadata = $8.derived(() => metadataItems($8.get(step)));
992
+ var li = root_7();
993
+ let styles;
994
+ var div = $8.child(li);
995
+ var span = $8.child(div);
996
+ var node = $8.child(span);
997
+ {
998
+ let $0 = $8.derived(() => statusDotStatus($8.get(step).status));
999
+ let $1 = $8.derived(() => statusLabel($8.get(step).status));
1000
+ Status_dot(node, {
1001
+ get status() {
1002
+ return $8.get($0);
1003
+ },
1004
+ get label() {
1005
+ return $8.get($1);
1006
+ },
1007
+ showLabel: false,
1008
+ size: "md"
1009
+ });
687
1010
  }
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";
1011
+ $8.reset(span);
1012
+ var div_1 = $8.sibling(span, 2);
1013
+ var div_2 = $8.child(div_1);
1014
+ var span_1 = $8.child(div_2);
1015
+ var text3 = $8.child(span_1, true);
1016
+ $8.reset(span_1);
1017
+ var node_1 = $8.sibling(span_1, 2);
1018
+ {
1019
+ var consequent_1 = ($$anchor3) => {
1020
+ const safeLinkHref = $8.derived(() => safeStepLinkHref($8.get(step).link.href));
1021
+ var fragment = $8.comment();
1022
+ var node_2 = $8.first_child(fragment);
1023
+ {
1024
+ var consequent = ($$anchor4) => {
1025
+ Link($$anchor4, {
1026
+ get href() {
1027
+ return $8.get(safeLinkHref);
1028
+ },
1029
+ class: "cinder-run-step-timeline__link",
1030
+ children: ($$anchor5, $$slotProps) => {
1031
+ $8.next();
1032
+ var text_1 = $8.text();
1033
+ $8.template_effect(() => $8.set_text(text_1, $8.get(step).link.label));
1034
+ $8.append($$anchor5, text_1);
1035
+ },
1036
+ $$slots: { default: true }
1037
+ });
1038
+ };
1039
+ var alternate = ($$anchor4) => {
1040
+ var span_2 = root6();
1041
+ var text_2 = $8.child(span_2, true);
1042
+ $8.reset(span_2);
1043
+ $8.template_effect(() => $8.set_text(text_2, $8.get(step).link.label));
1044
+ $8.append($$anchor4, span_2);
1045
+ };
1046
+ $8.if(node_2, ($$render) => {
1047
+ if ($8.get(safeLinkHref))
1048
+ $$render(consequent);
1049
+ else
1050
+ $$render(alternate, -1);
1051
+ });
1052
+ }
1053
+ $8.append($$anchor3, fragment);
1054
+ };
1055
+ $8.if(node_1, ($$render) => {
1056
+ if ($8.get(step).link)
1057
+ $$render(consequent_1);
1058
+ });
707
1059
  }
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";
1060
+ var node_3 = $8.sibling(node_1, 2);
1061
+ {
1062
+ let $0 = $8.derived(() => badgeVariant($8.get(step).status));
1063
+ let $1 = $8.derived(() => `Status: ${statusLabel($8.get(step).status)}`);
1064
+ Badge(node_3, {
1065
+ class: "cinder-run-step-timeline__status",
1066
+ get variant() {
1067
+ return $8.get($0);
1068
+ },
1069
+ size: "xs",
1070
+ get "aria-label"() {
1071
+ return $8.get($1);
1072
+ },
1073
+ children: ($$anchor3, $$slotProps) => {
1074
+ $8.next();
1075
+ var text_3 = $8.text();
1076
+ $8.template_effect(($02) => $8.set_text(text_3, $02), [() => statusLabel($8.get(step).status)]);
1077
+ $8.append($$anchor3, text_3);
1078
+ },
1079
+ $$slots: { default: true }
1080
+ });
727
1081
  }
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 });
1082
+ var node_4 = $8.sibling(node_3, 2);
1083
+ {
1084
+ var consequent_2 = ($$anchor3) => {
1085
+ Badge($$anchor3, {
1086
+ class: "cinder-run-step-timeline__flag",
1087
+ variant: "neutral",
1088
+ size: "xs",
1089
+ "aria-label": "State: rewound — speculatively executed, then unwound",
1090
+ children: ($$anchor4, $$slotProps) => {
1091
+ $8.next();
1092
+ var text_4 = $8.text("Rewound");
1093
+ $8.append($$anchor4, text_4);
1094
+ },
1095
+ $$slots: { default: true }
1096
+ });
1097
+ };
1098
+ $8.if(node_4, ($$render) => {
1099
+ if ($8.get(step).rewound)
1100
+ $$render(consequent_2);
1101
+ });
1102
+ }
1103
+ var node_5 = $8.sibling(node_4, 2);
1104
+ {
1105
+ var consequent_3 = ($$anchor3) => {
1106
+ {
1107
+ let $0 = $8.derived(() => `Compensates ${row().compensatesLabel} — reverses the forward step`);
1108
+ Badge($$anchor3, {
1109
+ class: "cinder-run-step-timeline__flag",
1110
+ variant: "warning",
1111
+ size: "xs",
1112
+ get "aria-label"() {
1113
+ return $8.get($0);
1114
+ },
1115
+ children: ($$anchor4, $$slotProps) => {
1116
+ $8.next();
1117
+ var text_5 = $8.text();
1118
+ $8.template_effect(() => $8.set_text(text_5, `Compensates ${row().compensatesLabel ?? ""}`));
1119
+ $8.append($$anchor4, text_5);
1120
+ },
1121
+ $$slots: { default: true }
1122
+ });
1123
+ }
1124
+ };
1125
+ $8.if(node_5, ($$render) => {
1126
+ if (row().compensatesLabel !== undefined)
1127
+ $$render(consequent_3);
1128
+ });
1129
+ }
1130
+ var node_6 = $8.sibling(node_5, 2);
1131
+ {
1132
+ var consequent_4 = ($$anchor3) => {
1133
+ Badge($$anchor3, {
1134
+ variant: "neutral",
1135
+ size: "xs",
1136
+ mono: true,
1137
+ children: ($$anchor4, $$slotProps) => {
1138
+ $8.next();
1139
+ var text_6 = $8.text();
1140
+ $8.template_effect(() => $8.set_text(text_6, `attempt ${$8.get(step).attemptCount ?? ""}`));
1141
+ $8.append($$anchor4, text_6);
1142
+ },
1143
+ $$slots: { default: true }
1144
+ });
1145
+ };
1146
+ $8.if(node_6, ($$render) => {
1147
+ if ($8.get(step).attemptCount !== undefined && $8.get(step).attemptCount > 1)
1148
+ $$render(consequent_4);
1149
+ });
1150
+ }
1151
+ var node_7 = $8.sibling(node_6, 2);
1152
+ {
1153
+ var consequent_5 = ($$anchor3) => {
1154
+ Badge($$anchor3, {
1155
+ variant: "neutral",
1156
+ size: "xs",
1157
+ mono: true,
1158
+ children: ($$anchor4, $$slotProps) => {
1159
+ $8.next();
1160
+ var text_7 = $8.text();
1161
+ $8.template_effect(($0) => $8.set_text(text_7, $0), [() => actionsCountLabel($8.get(step).actionsCount)]);
1162
+ $8.append($$anchor4, text_7);
1163
+ },
1164
+ $$slots: { default: true }
1165
+ });
1166
+ };
1167
+ $8.if(node_7, ($$render) => {
1168
+ if ($8.get(step).actionsCount !== undefined && $8.get(step).actionsCount > 0)
1169
+ $$render(consequent_5);
1170
+ });
742
1171
  }
743
- if (step.endTime !== undefined) {
744
- items.push({ term: "Ended", definition: step.endTime });
1172
+ $8.reset(div_2);
1173
+ var node_8 = $8.sibling(div_2, 2);
1174
+ {
1175
+ var consequent_6 = ($$anchor3) => {
1176
+ var div_3 = root_16();
1177
+ var node_9 = $8.child(div_3);
1178
+ {
1179
+ let $0 = $8.derived(() => $8.get(step).progress ?? 0);
1180
+ let $1 = $8.derived(() => $8.get(step).progressMax ?? 100);
1181
+ let $22 = $8.derived(() => `${$8.get(step).label} progress`);
1182
+ Progress(node_9, {
1183
+ get value() {
1184
+ return $8.get($0);
1185
+ },
1186
+ get max() {
1187
+ return $8.get($1);
1188
+ },
1189
+ size: "sm",
1190
+ get ariaLabel() {
1191
+ return $8.get($22);
1192
+ }
1193
+ });
1194
+ }
1195
+ $8.reset(div_3);
1196
+ $8.append($$anchor3, div_3);
1197
+ };
1198
+ var d = $8.derived(() => hasProgress($8.get(step)));
1199
+ $8.if(node_8, ($$render) => {
1200
+ if ($8.get(d))
1201
+ $$render(consequent_6);
1202
+ });
745
1203
  }
746
- if (step.duration !== undefined) {
747
- items.push({ term: "Duration", definition: step.duration });
1204
+ var node_10 = $8.sibling(node_8, 2);
1205
+ {
1206
+ var consequent_7 = ($$anchor3) => {
1207
+ var dl = root_34();
1208
+ $8.each(dl, 21, () => $8.get(metadata), (item) => item.term, ($$anchor4, item) => {
1209
+ var div_4 = root_25();
1210
+ var dt = $8.child(div_4);
1211
+ var text_8 = $8.child(dt, true);
1212
+ $8.reset(dt);
1213
+ var dd = $8.sibling(dt, 2);
1214
+ var text_9 = $8.child(dd, true);
1215
+ $8.reset(dd);
1216
+ $8.reset(div_4);
1217
+ $8.template_effect(() => {
1218
+ $8.set_text(text_8, $8.get(item).term);
1219
+ $8.set_text(text_9, $8.get(item).definition);
1220
+ });
1221
+ $8.append($$anchor4, div_4);
1222
+ });
1223
+ $8.reset(dl);
1224
+ $8.append($$anchor3, dl);
1225
+ };
1226
+ $8.if(node_10, ($$render) => {
1227
+ if ($8.get(metadata).length > 0)
1228
+ $$render(consequent_7);
1229
+ });
1230
+ }
1231
+ var node_11 = $8.sibling(node_10, 2);
1232
+ {
1233
+ var consequent_8 = ($$anchor3) => {
1234
+ var div_5 = root_52();
1235
+ $8.each(div_5, 21, () => $8.get(step).details, (detail) => detail.id, ($$anchor4, detail) => {
1236
+ Collapsible($$anchor4, {
1237
+ get trigger() {
1238
+ return $8.get(detail).label;
1239
+ },
1240
+ children: ($$anchor5, $$slotProps) => {
1241
+ var pre = root_42();
1242
+ var text_10 = $8.child(pre, true);
1243
+ $8.reset(pre);
1244
+ $8.template_effect(() => $8.set_text(text_10, $8.get(detail).content));
1245
+ $8.append($$anchor5, pre);
1246
+ },
1247
+ $$slots: { default: true }
1248
+ });
1249
+ });
1250
+ $8.reset(div_5);
1251
+ $8.append($$anchor3, div_5);
1252
+ };
1253
+ $8.if(node_11, ($$render) => {
1254
+ if ($8.get(step).details && $8.get(step).details.length > 0)
1255
+ $$render(consequent_8);
1256
+ });
748
1257
  }
749
- if (step.attemptCount !== undefined && step.attemptCount > 1) {
750
- items.push({ term: "Attempts", definition: String(step.attemptCount) });
1258
+ var node_12 = $8.sibling(node_11, 2);
1259
+ {
1260
+ var consequent_9 = ($$anchor3) => {
1261
+ var div_6 = root_6();
1262
+ var node_13 = $8.child(div_6);
1263
+ $8.snippet(node_13, () => $$props.children, () => $8.get(step));
1264
+ $8.reset(div_6);
1265
+ $8.append($$anchor3, div_6);
1266
+ };
1267
+ $8.if(node_12, ($$render) => {
1268
+ if ($$props.children)
1269
+ $$render(consequent_9);
1270
+ });
751
1271
  }
752
- return items;
1272
+ $8.reset(div_1);
1273
+ $8.reset(div);
1274
+ $8.reset(li);
1275
+ $8.template_effect(() => {
1276
+ $8.set_attribute(li, "data-cinder-status", $8.get(step).status);
1277
+ $8.set_attribute(li, "data-cinder-depth", row().depth);
1278
+ $8.set_attribute(li, "data-cinder-path", row().pathKey);
1279
+ $8.set_attribute(li, "data-cinder-terminal", $8.get(terminal) ? "" : undefined);
1280
+ $8.set_attribute(li, "data-cinder-rewound", $8.get(step).rewound ? "" : undefined);
1281
+ $8.set_attribute(li, "data-cinder-compensation", row().compensatesLabel !== undefined ? "" : undefined);
1282
+ $8.set_attribute(li, "data-cinder-connector-after", row().connectorAfter);
1283
+ $8.set_attribute(li, "aria-current", row().ariaCurrent ? "step" : undefined);
1284
+ styles = $8.set_style(li, "", styles, { "--_cinder-rst-depth": row().depth });
1285
+ $8.set_text(text3, $8.get(step).label);
1286
+ });
1287
+ $8.append($$anchor2, li);
1288
+ };
1289
+ const stepRail = ($$anchor2, rows = $8.noop) => {
1290
+ var fragment_12 = $8.comment();
1291
+ var node_16 = $8.first_child(fragment_12);
1292
+ $8.each(node_16, 17, rows, (row) => row.pathKey, ($$anchor3, row) => {
1293
+ var fragment_13 = $8.comment();
1294
+ var node_17 = $8.first_child(fragment_13);
1295
+ {
1296
+ var consequent_10 = ($$anchor4) => {
1297
+ depthLimitItem($$anchor4, () => $8.get(row));
1298
+ };
1299
+ var alternate_1 = ($$anchor4) => {
1300
+ stepItem($$anchor4, () => $8.get(row));
1301
+ };
1302
+ $8.if(node_17, ($$render) => {
1303
+ if ($8.get(row).kind === "depth-limit")
1304
+ $$render(consequent_10);
1305
+ else
1306
+ $$render(alternate_1, -1);
1307
+ });
1308
+ }
1309
+ $8.append($$anchor3, fragment_13);
1310
+ });
1311
+ $8.append($$anchor2, fragment_12);
1312
+ };
1313
+ const MAX_NESTED_STEP_DEPTH = 3;
1314
+ let rest = $8.rest_props($$props, rest_excludes5);
1315
+ const resolvedAriaLabel = $8.derived(() => $$props["aria-labelledby"] === undefined && $$props["aria-label"] === undefined ? $$props.label : $$props["aria-label"]);
1316
+ const renderedEntries = $8.derived(() => flattenEntries(relocateCompensationEntries($$props.steps)));
1317
+ function isBranchGroup2(entry) {
1318
+ return "kind" in entry && entry.kind === "branch";
1319
+ }
1320
+ function flattenEntries(entries) {
1321
+ const result = [];
1322
+ let stepRun = [];
1323
+ const flushRun = () => {
1324
+ if (stepRun.length === 0)
1325
+ return;
1326
+ result.push(...flattenSteps(stepRun, ""));
1327
+ stepRun = [];
1328
+ };
1329
+ for (const entry of entries) {
1330
+ if (isBranchGroup2(entry)) {
1331
+ flushRun();
1332
+ result.push({
1333
+ kind: "branch",
1334
+ group: entry,
1335
+ pathKey: `%branch/${escapeStepPathSegment(entry.id)}`,
1336
+ connectorAfter: "hidden"
1337
+ });
1338
+ } else {
1339
+ stepRun.push(entry);
1340
+ }
1341
+ }
1342
+ flushRun();
1343
+ return applyGlobalRailConnectors(applyGlobalTopLevelCompensates(applyGlobalRailAriaCurrent(result)));
1344
+ }
1345
+ function applyGlobalTopLevelCompensates(rows) {
1346
+ const topLevelLabelByPathKey = new Map;
1347
+ for (const row of rows) {
1348
+ if (row.kind === "step" && row.depth === 0) {
1349
+ topLevelLabelByPathKey.set(row.pathKey, row.step.label);
1350
+ }
1351
+ }
1352
+ return rows.map((row) => {
1353
+ if (row.kind !== "step" || row.depth !== 0 || row.step.compensates === undefined)
1354
+ return row;
1355
+ return {
1356
+ ...row,
1357
+ compensatesLabel: resolveSiblingCompensatesLabel(row, topLevelLabelByPathKey)
1358
+ };
1359
+ });
753
1360
  }
754
- function actionsCountLabel(actionsCount) {
755
- return actionsCount === 1 ? "1 action" : `${actionsCount} actions`;
1361
+ function railRowDepth(row) {
1362
+ return row.kind === "branch" ? 0 : row.depth;
756
1363
  }
757
- function hiddenNestedStepLabel(hiddenStepCount) {
758
- return hiddenStepCount === 1 ? "1 nested step hidden" : `${hiddenStepCount} nested steps hidden`;
1364
+ function applyGlobalRailConnectors(rows) {
1365
+ return rows.map((row, index) => {
1366
+ const next3 = rows[index + 1];
1367
+ const connectorAfter = next3 === undefined || railRowDepth(next3) < railRowDepth(row) ? "hidden" : "visible";
1368
+ return { ...row, connectorAfter };
1369
+ });
759
1370
  }
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;
1371
+ function rowCurrentDepth(row) {
1372
+ if (row.kind === "depth-limit")
1373
+ return row.hiddenCurrent ? row.depth + 1 : -1;
1374
+ if (row.kind === "step")
1375
+ return isCurrent(row.step.status) ? row.depth : -1;
1376
+ return -1;
1377
+ }
1378
+ function applyGlobalRailAriaCurrent(rows) {
1379
+ let deepestRow;
1380
+ let deepestDepth = -1;
1381
+ for (const row of rows) {
1382
+ const depth = rowCurrentDepth(row);
1383
+ if (depth > deepestDepth) {
1384
+ deepestDepth = depth;
1385
+ deepestRow = row;
777
1386
  }
778
1387
  }
779
- return trimmedHref;
1388
+ return rows.map((row) => row.kind === "branch" ? row : { ...row, ariaCurrent: row === deepestRow });
780
1389
  }
781
- function flattenRunSteps(steps) {
1390
+ function flattenSteps(list, pathPrefix) {
782
1391
  const rows = [];
783
- appendRunStepRows(rows, steps, 0, "");
1392
+ appendRunStepRows(rows, relocateCompensationSteps(list), 0, pathPrefix);
784
1393
  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
- }));
1394
+ const labelByPathKey = new Map;
1395
+ for (const row of rows) {
1396
+ if (row.kind === "step")
1397
+ labelByPathKey.set(row.pathKey, row.step.label);
1398
+ }
1399
+ return rows.map((row, index) => {
1400
+ const next3 = rows[index + 1];
1401
+ const connectorAfter = next3 === undefined || next3.depth < row.depth ? "hidden" : "visible";
1402
+ const ariaCurrent = index === currentRowIndex;
1403
+ if (row.kind === "depth-limit") {
1404
+ return { ...row, connectorAfter, ariaCurrent };
1405
+ }
1406
+ return {
1407
+ ...row,
1408
+ connectorAfter,
1409
+ ariaCurrent,
1410
+ compensatesLabel: resolveSiblingCompensatesLabel(row, labelByPathKey)
1411
+ };
1412
+ });
1413
+ }
1414
+ function resolveSiblingCompensatesLabel(row, labelByPathKey) {
1415
+ if (row.step.compensates === undefined)
1416
+ return;
1417
+ const lastSeparator = row.pathKey.lastIndexOf("/");
1418
+ const parentPrefix = lastSeparator === -1 ? "" : row.pathKey.slice(0, lastSeparator);
1419
+ const siblingPathKey = nestedStepPathKey(parentPrefix, row.step.compensates);
1420
+ if (siblingPathKey === row.pathKey)
1421
+ return;
1422
+ return labelByPathKey.get(siblingPathKey);
790
1423
  }
791
- function appendRunStepRows(rows, steps, depth, pathPrefix) {
792
- for (const step of steps) {
1424
+ function appendRunStepRows(rows, list, depth, pathPrefix) {
1425
+ for (const step of list) {
793
1426
  const pathKey = nestedStepPathKey(pathPrefix, step.id);
794
1427
  rows.push({ kind: "step", step, depth, pathKey });
795
1428
  if (step.children && step.children.length > 0) {
796
1429
  if (depth < MAX_NESTED_STEP_DEPTH) {
797
- appendRunStepRows(rows, step.children, depth + 1, pathKey);
1430
+ appendRunStepRows(rows, relocateCompensationSteps(step.children), depth + 1, pathKey);
798
1431
  } else {
799
1432
  const hiddenSummary = summarizeNestedRunSteps(step.children);
800
1433
  rows.push({
@@ -815,10 +1448,10 @@ function Run_step_timeline($$anchor, $$props) {
815
1448
  function escapeStepPathSegment(stepId) {
816
1449
  return stepId.replaceAll("%", "%25").replaceAll("/", "%2F");
817
1450
  }
818
- function summarizeNestedRunSteps(steps) {
1451
+ function summarizeNestedRunSteps(list) {
819
1452
  let count = 0;
820
1453
  let hasCurrent = false;
821
- const stack = [...steps];
1454
+ const stack = [...list];
822
1455
  while (stack.length > 0) {
823
1456
  const step = stack.pop();
824
1457
  if (step === undefined)
@@ -826,10 +1459,10 @@ function Run_step_timeline($$anchor, $$props) {
826
1459
  count += 1;
827
1460
  if (isCurrent(step.status))
828
1461
  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];
1462
+ const stepChildren = step.children;
1463
+ if (stepChildren) {
1464
+ for (let index = stepChildren.length - 1;index >= 0; index -= 1) {
1465
+ const child7 = stepChildren[index];
833
1466
  if (child7)
834
1467
  stack.push(child7);
835
1468
  }
@@ -841,334 +1474,193 @@ function Run_step_timeline($$anchor, $$props) {
841
1474
  let currentIndex = -1;
842
1475
  let currentDepth = -1;
843
1476
  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) {
1477
+ const rowCurrentDepth2 = row.kind === "depth-limit" && row.hiddenCurrent ? row.depth + 1 : row.kind === "step" && isCurrent(row.step.status) ? row.depth : -1;
1478
+ if (rowCurrentDepth2 > currentDepth) {
846
1479
  currentIndex = index;
847
- currentDepth = rowCurrentDepth;
1480
+ currentDepth = rowCurrentDepth2;
848
1481
  }
849
1482
  });
850
1483
  return currentIndex;
851
1484
  }
852
- var ol = root_9();
853
- $7.attribute_effect(ol, ($0) => ({
1485
+ function laneRows(lane) {
1486
+ return flattenSteps(lane.steps, "");
1487
+ }
1488
+ function laneStateLabel(lane) {
1489
+ return lane.outcome === undefined ? "racing" : laneOutcomeLabel(lane.outcome).toLowerCase();
1490
+ }
1491
+ var ol = root_132();
1492
+ $8.attribute_effect(ol, ($0) => ({
854
1493
  ...rest,
855
1494
  class: $0,
856
- "aria-label": $7.get(resolvedAriaLabel),
1495
+ "aria-label": $8.get(resolvedAriaLabel),
857
1496
  "aria-labelledby": $$props["aria-labelledby"]
858
1497
  }), [() => 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);
1498
+ $8.each(ol, 21, () => $8.get(renderedEntries), (entry) => entry.pathKey, ($$anchor2, entry) => {
1499
+ var fragment_16 = $8.comment();
1500
+ var node_18 = $8.first_child(fragment_16);
862
1501
  {
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",
1502
+ var consequent_12 = ($$anchor3) => {
1503
+ const group = $8.derived(() => $8.get(entry).group);
1504
+ const summary = $8.derived(() => branchOutcomeSummary($8.get(group).lanes));
1505
+ 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)));
1506
+ var li_2 = root_122();
1507
+ var div_10 = $8.child(li_2);
1508
+ var span_5 = $8.child(div_10);
1509
+ var node_19 = $8.child(span_5);
1510
+ Status_dot(node_19, {
1511
+ status: "accent",
1512
+ label: "Branch group",
872
1513
  showLabel: false,
873
1514
  size: "md"
874
1515
  });
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);
1516
+ $8.reset(span_5);
1517
+ var div_11 = $8.sibling(span_5, 2);
1518
+ var node_20 = $8.child(div_11);
918
1519
  {
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);
1520
+ const trigger = ($$anchor4) => {
1521
+ var span_6 = root_9();
1522
+ var span_7 = $8.child(span_6);
1523
+ var text_13 = $8.child(span_7, true);
1524
+ $8.reset(span_7);
1525
+ var node_21 = $8.sibling(span_7, 2);
944
1526
  {
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);
1527
+ let $02 = $8.derived(() => `Branch group outcome: ${$8.get(summary)}`);
1528
+ Badge(node_21, {
1529
+ variant: "accent",
1530
+ size: "xs",
1531
+ get "aria-label"() {
1532
+ return $8.get($02);
1533
+ },
1534
+ children: ($$anchor5, $$slotProps) => {
1535
+ $8.next();
1536
+ var text_14 = $8.text();
1537
+ $8.template_effect(() => $8.set_text(text_14, $8.get(summary)));
1538
+ $8.append($$anchor5, text_14);
1539
+ },
1540
+ $$slots: { default: true }
972
1541
  });
973
1542
  }
974
- $7.append($$anchor4, fragment_1);
1543
+ $8.reset(span_6);
1544
+ $8.template_effect(() => $8.set_text(text_13, $8.get(group).label));
1545
+ $8.append($$anchor4, span_6);
975
1546
  };
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);
1547
+ let $0 = $8.derived(() => `Branch group: ${$8.get(group).label}. ${$8.get(summary)}.`);
1548
+ Run_step_branch_disclosure(node_20, {
1549
+ get initialOpen() {
1550
+ return $8.get(initialOpen);
989
1551
  },
990
- size: "xs",
991
- get "aria-label"() {
992
- return $7.get($1);
1552
+ class: "cinder-run-step-timeline__branch-disclosure",
1553
+ get triggerAriaLabel() {
1554
+ return $8.get($0);
993
1555
  },
1556
+ trigger,
994
1557
  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);
1558
+ var ul = root_11();
1559
+ $8.each(ul, 21, () => $8.get(group).lanes, (lane) => lane.id, ($$anchor5, lane) => {
1560
+ var li_3 = root_10();
1561
+ var div_12 = $8.child(li_3);
1562
+ var span_8 = $8.child(div_12);
1563
+ var text_15 = $8.child(span_8, true);
1564
+ $8.reset(span_8);
1565
+ var node_22 = $8.sibling(span_8, 2);
1566
+ {
1567
+ var consequent_11 = ($$anchor6) => {
1568
+ {
1569
+ let $02 = $8.derived(() => laneOutcomeBadgeVariant($8.get(lane).outcome));
1570
+ let $1 = $8.derived(() => `Outcome: ${laneOutcomeLabel($8.get(lane).outcome)}`);
1571
+ Badge($$anchor6, {
1572
+ get variant() {
1573
+ return $8.get($02);
1574
+ },
1575
+ size: "xs",
1576
+ get "aria-label"() {
1577
+ return $8.get($1);
1578
+ },
1579
+ children: ($$anchor7, $$slotProps2) => {
1580
+ $8.next();
1581
+ var text_16 = $8.text();
1582
+ $8.template_effect(($03) => $8.set_text(text_16, $03), [() => laneOutcomeLabel($8.get(lane).outcome)]);
1583
+ $8.append($$anchor7, text_16);
1584
+ },
1585
+ $$slots: { default: true }
1586
+ });
1587
+ }
1588
+ };
1589
+ var alternate_2 = ($$anchor6) => {
1590
+ Badge($$anchor6, {
1591
+ variant: "info",
1592
+ size: "xs",
1593
+ "aria-label": "Outcome: still racing",
1594
+ children: ($$anchor7, $$slotProps2) => {
1595
+ $8.next();
1596
+ var text_17 = $8.text("Racing");
1597
+ $8.append($$anchor7, text_17);
1598
+ },
1599
+ $$slots: { default: true }
1600
+ });
1601
+ };
1602
+ $8.if(node_22, ($$render) => {
1603
+ if ($8.get(lane).outcome !== undefined)
1604
+ $$render(consequent_11);
1605
+ else
1606
+ $$render(alternate_2, -1);
1607
+ });
1065
1608
  }
1609
+ $8.reset(div_12);
1610
+ var ol_1 = $8.sibling(div_12, 2);
1611
+ var node_23 = $8.child(ol_1);
1612
+ {
1613
+ let $02 = $8.derived(() => laneRows($8.get(lane)));
1614
+ stepRail(node_23, () => $8.get($02));
1615
+ }
1616
+ $8.reset(ol_1);
1617
+ $8.reset(li_3);
1618
+ $8.template_effect(($02) => {
1619
+ $8.set_attribute(li_3, "data-cinder-outcome", $8.get(lane).outcome ?? "racing");
1620
+ $8.set_attribute(li_3, "aria-label", $02);
1621
+ $8.set_text(text_15, $8.get(lane).label ?? $8.get(lane).id);
1622
+ $8.set_attribute(ol_1, "aria-label", `${$8.get(lane).label ?? $8.get(lane).id} steps`);
1623
+ }, [
1624
+ () => `Branch ${$8.get(lane).label ?? $8.get(lane).id}: ${laneStateLabel($8.get(lane))}`
1625
+ ]);
1626
+ $8.append($$anchor5, li_3);
1066
1627
  });
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);
1628
+ $8.reset(ul);
1629
+ $8.template_effect(() => $8.set_attribute(ul, "aria-label", `${$8.get(group).label} branches`));
1630
+ $8.append($$anchor4, ul);
1631
+ },
1632
+ $$slots: { trigger: true, default: true }
1143
1633
  });
1144
1634
  }
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);
1635
+ $8.reset(div_11);
1636
+ $8.reset(div_10);
1637
+ $8.reset(li_2);
1638
+ $8.template_effect(() => {
1639
+ $8.set_attribute(li_2, "data-cinder-path", $8.get(entry).pathKey);
1640
+ $8.set_attribute(li_2, "data-cinder-connector-after", $8.get(entry).connectorAfter);
1157
1641
  });
1158
- $7.append($$anchor3, li_1);
1642
+ $8.append($$anchor3, li_2);
1643
+ };
1644
+ var consequent_13 = ($$anchor3) => {
1645
+ depthLimitItem($$anchor3, () => $8.get(entry));
1159
1646
  };
1160
- $7.if(node, ($$render) => {
1161
- if ($7.get(row).kind === "depth-limit")
1162
- $$render(consequent);
1647
+ var alternate_3 = ($$anchor3) => {
1648
+ stepItem($$anchor3, () => $8.get(entry));
1649
+ };
1650
+ $8.if(node_18, ($$render) => {
1651
+ if ($8.get(entry).kind === "branch")
1652
+ $$render(consequent_12);
1653
+ else if ($8.get(entry).kind === "depth-limit")
1654
+ $$render(consequent_13, 1);
1163
1655
  else
1164
- $$render(alternate_1, -1);
1656
+ $$render(alternate_3, -1);
1165
1657
  });
1166
1658
  }
1167
- $7.append($$anchor2, fragment);
1659
+ $8.append($$anchor2, fragment_16);
1168
1660
  });
1169
- $7.reset(ol);
1170
- $7.append($$anchor, ol);
1171
- $7.pop();
1661
+ $8.reset(ol);
1662
+ $8.append($$anchor, ol);
1663
+ $8.pop();
1172
1664
  }
1173
1665
 
1174
1666
  // src/components/run-step-timeline/index.ts
@@ -1178,4 +1670,4 @@ export {
1178
1670
  Run_step_timeline as RunStepTimeline
1179
1671
  };
1180
1672
 
1181
- //# debugId=E2483CD0C28476EF64756E2164756E21
1673
+ //# debugId=77801BC78A33372764756E2164756E21