@luzmo/lucero 2.4.1 → 2.5.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 (129) hide show
  1. package/components/action-menu/index.cjs +1 -1
  2. package/components/action-menu/index.js +1 -1
  3. package/components/{action-menu-CwzRbF61.cjs → action-menu-BNZWjeDd.cjs} +1 -1
  4. package/components/{action-menu-C0sHNsjG.js → action-menu-D1hTsg9A.js} +1 -1
  5. package/components/chat-message/index.cjs +1 -1
  6. package/components/chat-message/index.js +1 -1
  7. package/components/chat-message-BDfomRm-.cjs +148 -0
  8. package/components/{chat-message-T6QIK2Bl.js → chat-message-D6U-sprD.js} +562 -526
  9. package/components/checkbox/index.cjs +1 -1
  10. package/components/checkbox/index.js +1 -1
  11. package/components/{checkbox-BEjvkjfc.js → checkbox-CydI9yXG.js} +1 -1
  12. package/components/{checkbox-ClVrkeLp.cjs → checkbox-JCvBro0K.cjs} +1 -1
  13. package/components/index.cjs +1 -1
  14. package/components/index.js +13 -12
  15. package/components/match-media-B_0cVVtk.cjs +18 -0
  16. package/components/match-media-C5X2OZiD.js +34 -0
  17. package/components/picker/index.cjs +1 -1
  18. package/components/picker/index.js +1 -1
  19. package/components/picker-COeWCv60.cjs +124 -0
  20. package/components/{picker-D0fMBZLb.js → picker-uKcRswTQ.js} +6 -5
  21. package/components/progress-steps/index.cjs +1 -1
  22. package/components/progress-steps/index.js +1 -1
  23. package/components/progress-steps/progress-steps.d.ts +9 -20
  24. package/components/progress-steps-BvCzsq9Z.js +368 -0
  25. package/components/progress-steps-CvdQQwHc.cjs +98 -0
  26. package/components/question-box/index.cjs +1 -1
  27. package/components/question-box/index.js +1 -1
  28. package/components/{question-box-D7YSi_6c.js → question-box-Bcm-P-UV.js} +1 -1
  29. package/components/{question-box-Bdtsgv1k.cjs → question-box-DZnuGMBB.cjs} +1 -1
  30. package/components/select/index.cjs +1 -1
  31. package/components/select/index.js +1 -1
  32. package/components/{select-BUgHi69P.js → select-B86uAHme.js} +5 -4
  33. package/components/select-CKMCEJf7.cjs +158 -0
  34. package/components/strategies-Bb7zEjrU.cjs +18 -0
  35. package/components/{strategies-Cl59wdNZ.js → strategies-COS7mShJ.js} +11 -24
  36. package/components/table/controllers/table-announcer.d.ts +12 -0
  37. package/components/table/controllers/table-column-resize.d.ts +41 -0
  38. package/components/table/controllers/table-grid-navigation.d.ts +28 -0
  39. package/components/table/controllers/table-layout.d.ts +55 -0
  40. package/components/table/controllers/table-row-expansion.d.ts +45 -0
  41. package/components/table/controllers/table-virtualizer.d.ts +42 -0
  42. package/components/table/index.cjs +18 -0
  43. package/components/table/index.d.ts +32 -0
  44. package/components/table/index.js +20 -0
  45. package/components/table/table-body.d.ts +24 -0
  46. package/components/table/table-cell.d.ts +27 -0
  47. package/components/table/table-checkbox-cell.d.ts +41 -0
  48. package/components/table/table-columns.d.ts +45 -0
  49. package/components/table/table-disclosure-cell.d.ts +21 -0
  50. package/components/table/table-head-cell.d.ts +77 -0
  51. package/components/table/table-head.d.ts +34 -0
  52. package/components/table/table-model.d.ts +56 -0
  53. package/components/table/table-row-details.d.ts +29 -0
  54. package/components/table/table-row.d.ts +64 -0
  55. package/components/table/table-styles.d.ts +9 -0
  56. package/components/table/table-templates.d.ts +41 -0
  57. package/components/table/table.d.ts +197 -0
  58. package/components/table/types.d.ts +81 -0
  59. package/components/table-B75GjBhD.js +1592 -0
  60. package/components/table-CHrAaVU1.cjs +180 -0
  61. package/custom-elements.json +1 -1
  62. package/index.d.ts +1 -0
  63. package/package.json +9 -1
  64. package/standalone/accordion.js +1 -1
  65. package/standalone/action-bar.js +1 -1
  66. package/standalone/action-button.js +1 -1
  67. package/standalone/action-menu.js +1 -1
  68. package/standalone/avatar.js +1 -1
  69. package/standalone/calendar.js +1 -1
  70. package/standalone/chat-message.js +27 -27
  71. package/standalone/checkbox.js +1 -1
  72. package/standalone/chunks/{action-button-BzzPBqt5.js → action-button-FSsfXYe9.js} +1 -1
  73. package/standalone/chunks/{button-Dykw3TSO.js → button-Q1n9DH9a.js} +1 -1
  74. package/standalone/chunks/{calendar-ZwUYkzVq.js → calendar-DcFjY2tw.js} +1 -1
  75. package/standalone/chunks/{checkbox-OQtakoP8.js → checkbox-DQ4wPgG_.js} +2 -2
  76. package/standalone/chunks/{clear-button-pVGfwye8.js → clear-button-3zpCVxG5.js} +1 -1
  77. package/standalone/chunks/{close-button-RpPiwBdf.js → close-button-C96dazyi.js} +1 -1
  78. package/standalone/chunks/{color-field-CrCF4kqZ.js → color-field-BFvUGE4L.js} +1 -1
  79. package/standalone/chunks/{color-menu-B5UOMYmX.js → color-menu-BIKuitbH.js} +2 -2
  80. package/standalone/chunks/{icon-Dy6J1QeX.js → icon-BypO7M7G.js} +1 -1
  81. package/standalone/chunks/luzmo-icons-B-pCv-xg.js +13 -0
  82. package/standalone/chunks/match-media-BMi7j6hf.js +2 -0
  83. package/standalone/chunks/{menu-nolJetlp.js → menu-DSMoQt1w.js} +1 -1
  84. package/standalone/chunks/{number-field-C3DYfl1s.js → number-field-B6BDXkL7.js} +3 -3
  85. package/standalone/chunks/{options-BjRSj630.js → options-CkmITqgV.js} +5 -5
  86. package/standalone/chunks/picker-FCQK0vdE.js +108 -0
  87. package/standalone/chunks/{picker-button-BeXTIgUt.js → picker-button-BZWqDoNQ.js} +1 -1
  88. package/standalone/chunks/{segments-factory-Ch3AAizU.js → segments-factory-eS38mJRz.js} +1 -1
  89. package/standalone/chunks/strategies-C-vW4MlK.js +2 -0
  90. package/standalone/chunks/{swatch-m_4GcO2_.js → swatch-CGR_GWqO.js} +1 -1
  91. package/standalone/chunks/{text-field-BnZtyodU.js → text-field-4OKvLOXG.js} +1 -1
  92. package/standalone/chunks/{text-field-BrlDeJsx.js → text-field-C2oROxum.js} +1 -1
  93. package/standalone/clear-button.js +1 -1
  94. package/standalone/close-button.js +1 -1
  95. package/standalone/color-field.js +1 -1
  96. package/standalone/color-menu.js +1 -1
  97. package/standalone/color-picker.js +1 -1
  98. package/standalone/date-range-picker.js +1 -1
  99. package/standalone/date-time-picker.js +1 -1
  100. package/standalone/icon.js +1 -1
  101. package/standalone/manifest.json +22 -20
  102. package/standalone/menu.js +1 -1
  103. package/standalone/multi-language-field.js +1 -1
  104. package/standalone/notice.js +1 -1
  105. package/standalone/number-field.js +1 -1
  106. package/standalone/options.js +1 -1
  107. package/standalone/picker-button.js +1 -1
  108. package/standalone/picker.js +1 -1
  109. package/standalone/progress-steps.js +4 -4
  110. package/standalone/prompt-box.js +9 -9
  111. package/standalone/question-box.js +1 -1
  112. package/standalone/search.js +1 -1
  113. package/standalone/select.js +2 -2
  114. package/standalone/slider.js +1 -1
  115. package/standalone/swatch.js +1 -1
  116. package/standalone/table.js +185 -0
  117. package/standalone/tabs.js +1 -1
  118. package/standalone/tags.js +1 -1
  119. package/standalone/text-field.js +1 -1
  120. package/standalone/toast.js +1 -1
  121. package/components/chat-message-Dgo6h0rD.cjs +0 -148
  122. package/components/picker-BliQJlY_.cjs +0 -124
  123. package/components/progress-steps-BIbj8x8S.js +0 -383
  124. package/components/progress-steps-upJp8wl3.cjs +0 -98
  125. package/components/select-DsGVB01K.cjs +0 -158
  126. package/components/strategies-BwNbUXYS.cjs +0 -18
  127. package/standalone/chunks/luzmo-icons-CJa-aByT.js +0 -13
  128. package/standalone/chunks/picker-hbMQOkUX.js +0 -108
  129. package/standalone/chunks/strategies-kad_0dTB.js +0 -2
@@ -0,0 +1,368 @@
1
+ /*! * Lucero - The design system for Luzmo.
2
+ *
3
+ * Copyright © 2026 Luzmo
4
+ * All rights reserved.
5
+ * Lucero (“Luzmo Design System”) must be used according to the Luzmo Terms of Service.
6
+ * This license allows users with a current active Luzmo account to use Lucero.
7
+ * This license terminates automatically if a user no longer has an active Luzmo account.
8
+ * Please view the Luzmo Terms of Service at: https://www.luzmo.com/information-pages/terms-of-use.
9
+ *
10
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
11
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
12
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
13
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
14
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
15
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
16
+ * SOFTWARE.
17
+ * */
18
+ import "./tokens.js";
19
+ import { n as e, t } from "./decorate-CkCg3wfh.js";
20
+ import { n } from "./sized-mixin-DzQTebN-.js";
21
+ import { r, t as i } from "./language-resolution-BaKYDD1a.js";
22
+ import { html as a, nothing as o, unsafeCSS as s } from "lit";
23
+ import { property as c, state as l } from "lit/decorators.js";
24
+ import { luzmoAlert as u, luzmoAngleRight as d, luzmoCheckCircleOutline as f, luzmoClose14 as p, luzmoIcon as m } from "@luzmo/icons";
25
+ import { classMap as h } from "lit/directives/class-map.js";
26
+ import { repeat as g } from "lit/directives/repeat.js";
27
+ import { keyed as _ } from "lit/directives/keyed.js";
28
+ //#region src/components/progress-steps/progress-steps-model.ts
29
+ function v(e) {
30
+ for (let t = (e?.length ?? 0) - 1; t >= 0; t--) if (e[t].status === "inProgress") return e[t];
31
+ return null;
32
+ }
33
+ function y(e) {
34
+ let t = v(e.children);
35
+ return t ? y(t) ?? t : null;
36
+ }
37
+ function b(e, t) {
38
+ return typeof e == "object" ? e[t] ?? e.en ?? Object.values(e)[0] ?? "" : String(e);
39
+ }
40
+ function x(e) {
41
+ return !!e?.children?.length;
42
+ }
43
+ function S(e) {
44
+ let t = v(e?.children);
45
+ return t ? {
46
+ mainStep: t,
47
+ subStep: y(t)
48
+ } : null;
49
+ }
50
+ function C(e) {
51
+ let t = 0;
52
+ for (let n of e?.children ?? []) t += +(n.status === "error") + C(n);
53
+ return t;
54
+ }
55
+ function w(e) {
56
+ return !!e?.children?.some((e) => e.status === "success" || e.status === "error");
57
+ }
58
+ function T(e) {
59
+ return e?.status === "success" || e?.status === "error";
60
+ }
61
+ function E(e, t) {
62
+ return e.description ? e.description.replaceAll(/\{\{(\w+)\}\}/g, (n, r) => {
63
+ let i = e.descriptionMetadata?.[r];
64
+ return i == null ? n : Array.isArray(i) ? i.map((e) => b(e, t)).join(", ") : b(i, t);
65
+ }) : e.step;
66
+ }
67
+ //#endregion
68
+ //#region src/components/progress-steps/progress-steps.module.scss?inline
69
+ var D = ":host{box-sizing:border-box;font-family:var(--luzmo-font-family);font-size:var(--luzmo-progress-steps-font-size,var(--progress-steps-font-size));line-height:var(--progress-steps-line-height);color:var(--luzmo-progress-steps-font-color-dimmed,var(--progress-steps-font-color-dimmed));display:block}.summary{box-sizing:border-box;align-items:flex-start;gap:var(--progress-steps-gap);max-inline-size:100%;min-block-size:var(--progress-steps-min-height);padding-block:max(0px, (var(--progress-steps-min-height) - var(--progress-steps-line-block-size)) / 2);padding-inline:var(--progress-steps-padding-inline);border-radius:var(--progress-steps-border-radius);color:inherit;font:inherit;text-align:start;cursor:pointer;appearance:none;background:0 0;border:0;margin:0;display:inline-flex}.summary:hover{background-color:var(--progress-steps-hover-background)}.summary:focus-visible{outline:var(--progress-steps-focus-ring-width) solid var(--highcontrast-progress-steps-focus-ring-color,var(--progress-steps-focus-ring-color));outline-offset:var(--progress-steps-focus-ring-gap)}.status-icon{inline-size:var(--progress-steps-icon-size);block-size:var(--progress-steps-icon-size);flex:none;justify-content:center;align-items:center;margin-block-start:calc((var(--progress-steps-line-block-size) - var(--progress-steps-icon-size)) / 2);display:inline-flex;position:relative;inset-block-start:var(--progress-steps-icon-offset)}.status-icon svg{block-size:100%;inline-size:100%}.status-icon-failed{color:var(--luzmo-progress-steps-warning-color,var(--progress-steps-warning-color))}.status-icon-finished{color:var(--luzmo-progress-steps-success-color,var(--progress-steps-success-color))}.spinner{box-sizing:border-box;border:calc(var(--luzmo-border-width) * 1.5) solid var(--highcontrast-progress-steps-spinner-track-color,var(--luzmo-progress-steps-substep-connector-color,var(--progress-steps-substep-connector-color)));border-block-start-color:var(--highcontrast-progress-steps-spinner-color,currentcolor);block-size:70%;inline-size:70%;animation:progress-steps-spin var(--progress-steps-spinner-duration) linear infinite;border-radius:50%}.headline{flex:0 auto;min-inline-size:0;display:block;position:relative;overflow:hidden}.headline-text{white-space:nowrap;flex-direction:column;min-inline-size:0;display:flex}.headline-text.entering{animation:progress-steps-enter var(--progress-steps-transition-duration) ease-out}.headline-text.leaving{inline-size:100%;animation:progress-steps-leave var(--progress-steps-transition-duration) ease-in forwards;position:absolute;inset-block-start:0;inset-inline-start:0}.main-step{text-overflow:ellipsis;color:var(--luzmo-progress-steps-font-color,var(--progress-steps-font-color));overflow:hidden}.sub-step{block-size:var(--progress-steps-sub-step-block-size);font-size:var(--luzmo-progress-steps-font-size-small,var(--progress-steps-font-size-small));display:block}.sub-step-texts{block-size:100%;display:block;position:relative;overflow:hidden}.sub-step-text{text-overflow:ellipsis;display:block;overflow:hidden}.sub-step-text.entering{animation:progress-steps-enter var(--progress-steps-transition-duration) ease-out}.sub-step-text.leaving{animation:progress-steps-leave var(--progress-steps-transition-duration) ease-in forwards;position:absolute;inset-block-start:0;inset-inline-start:0}.summary[data-state=done] .main-step{color:inherit}:where(.summary[data-state=done]) .headline-text.entering{animation:progress-steps-enter var(--progress-steps-transition-duration) ease-out, progress-steps-collapse var(--progress-steps-transition-duration) ease-in-out}.summary:hover .main-step{color:var(--luzmo-progress-steps-font-color,var(--progress-steps-font-color))}.failed-count:before{content:\"·\"/\"\";flex:none;padding-inline-end:.35em}.failed-count{white-space:nowrap;flex:none}.shimmer{-webkit-mask-image:linear-gradient(var(--progress-steps-shimmer-angle), currentcolor 38%, color-mix(in srgb, currentcolor 35%, transparent) 50%, currentcolor 62%);mask-image:linear-gradient(var(--progress-steps-shimmer-angle), currentcolor 38%, color-mix(in srgb, currentcolor 35%, transparent) 50%, currentcolor 62%);animation:progress-steps-shimmer var(--progress-steps-shimmer-duration) linear infinite;-webkit-mask-size:300% 100%;mask-size:300% 100%}.chevron{inline-size:var(--progress-steps-chevron-size);block-size:var(--progress-steps-chevron-size);transition:transform var(--progress-steps-transition-duration) ease, opacity var(--progress-steps-transition-duration) ease;flex:none;margin-block-start:calc((var(--progress-steps-line-block-size) - var(--progress-steps-chevron-size)) / 2);display:inline-flex}.chevron svg{block-size:100%;inline-size:100%}:host(:not([open])) .summary[data-state=running]:not(:hover,:focus-visible) .chevron{opacity:0}:host([open]) .chevron{transform:rotate(90deg)}:host([dir=rtl]) .chevron svg{transform:scaleX(-1)}:host([dir=rtl][open]) .chevron{transform:rotate(-90deg)}:host([dir=rtl]) .shimmer{animation-direction:reverse}.details{padding-block:var(--progress-steps-step-spacing);padding-inline:var(--progress-steps-padding-inline);font-size:var(--luzmo-progress-steps-font-size-small,var(--progress-steps-font-size-small));line-height:var(--progress-steps-details-line-height);animation:progress-steps-details-in var(--progress-steps-transition-duration) ease-out}.steps,.substeps{margin:0;padding:0;list-style:none}.step{grid-template-columns:var(--progress-steps-icon-size) minmax(0, 1fr);column-gap:var(--progress-steps-gap);padding-block:var(--progress-steps-step-spacing);display:grid;position:relative}.step:before,.step:after{content:\"\";border-inline-start:var(--luzmo-border-width) solid var(--luzmo-progress-steps-substep-connector-color,var(--progress-steps-substep-connector-color));position:absolute;inset-inline-start:calc(var(--progress-steps-icon-size) / 2 - var(--luzmo-border-width) / 2)}.step:before{block-size:calc(var(--progress-steps-marker-center) - var(--progress-steps-marker-radius));inset-block-start:0}.step:after{inset-block:calc(var(--progress-steps-marker-center) + var(--progress-steps-marker-radius)) 0}.step:first-child:before{display:none}.step:last-child:not(:has(>.substeps)):after{display:none}.step-marker{block-size:calc(1em * var(--progress-steps-details-line-height));color:var(--luzmo-progress-steps-font-color-dimmed,var(--progress-steps-font-color-dimmed));justify-content:center;align-items:center;display:inline-flex}.step-marker svg{inline-size:var(--progress-steps-marker-size);block-size:var(--progress-steps-marker-size)}.step-dot{box-sizing:border-box;inline-size:var(--progress-steps-dot-size);block-size:var(--progress-steps-dot-size);border:calc(var(--progress-steps-dot-size) / 2) solid currentcolor;border-radius:50%}.step-inProgress .step-marker{color:var(--luzmo-progress-steps-font-color,var(--progress-steps-font-color))}.step-inProgress .step-marker .step-dot{animation:1.2s ease-in-out infinite progress-steps-pulse}.step-pending .step-dot{border-width:var(--luzmo-border-width)}.step-error .step-marker{color:var(--luzmo-progress-steps-error-color,var(--progress-steps-error-color))}.step-label{color:var(--luzmo-progress-steps-font-color,var(--progress-steps-font-color));overflow-wrap:anywhere}.substeps{gap:var(--progress-steps-step-spacing);flex-direction:column;display:flex}.step>.substeps{grid-column:2;margin-block-start:calc(2 * var(--progress-steps-step-spacing))}.substep>.substeps{margin-block-start:var(--progress-steps-step-spacing);padding-inline-start:var(--progress-steps-substep-indent)}.substep{overflow-wrap:anywhere}.substep-inProgress{color:var(--luzmo-progress-steps-font-color,var(--progress-steps-font-color))}.substep-error{color:var(--luzmo-progress-steps-error-color,var(--progress-steps-error-color))}.substep-icon{vertical-align:-.1em;block-size:.85em;inline-size:.85em;margin-inline-end:.3em;display:inline-flex}.substep-icon svg{block-size:100%;inline-size:100%}.visually-hidden{clip-path:inset(50%);white-space:nowrap;border:0;block-size:1px;inline-size:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}:host([no-animate]) .headline-text.entering,:host([no-animate]) .sub-step-text.entering,:host([no-animate]) .details,:host([no-animate]) .chevron,:host([no-animate]) .spinner,:host([no-animate]) .step-dot{transition:none;animation:none}:host([no-animate]) .leaving{display:none}@keyframes progress-steps-shimmer{0%{-webkit-mask-position:100% 0;mask-position:100% 0}to{-webkit-mask-position:0 0;mask-position:0 0}}@keyframes progress-steps-enter{0%{opacity:0;transform:translateY(60%)}}@keyframes progress-steps-collapse{0%{padding-block-end:var(--progress-steps-sub-step-block-size)}}@keyframes progress-steps-leave{to{opacity:0;transform:translateY(-60%)}}@keyframes progress-steps-details-in{0%{opacity:0;transform:translateY(calc(-1 * var(--luzmo-spacing-2)))}}@keyframes progress-steps-spin{to{transform:rotate(360deg)}}@keyframes progress-steps-pulse{50%{opacity:.35}}@media (prefers-reduced-motion:reduce){.shimmer,.headline-text.entering,.sub-step-text.entering,.details,.chevron,.spinner,.step-dot{transition:none;animation:none}.leaving{display:none}}@media (forced-colors:active){.shimmer{animation:none;-webkit-mask-image:none;mask-image:none}.spinner{forced-color-adjust:none}}:host{--progress-steps-font-size:var(--luzmo-font-size);--progress-steps-line-height:1.5;--progress-steps-font-color:color-mix(in oklch, var(--luzmo-font-color) 65%, var(--luzmo-font-color-extra-dimmed));--progress-steps-font-color-dimmed:color-mix(in oklch, var(--luzmo-font-color) 35%, var(--luzmo-font-color-extra-dimmed));--progress-steps-error-color:var(--luzmo-negative-color);--progress-steps-warning-color:var(--luzmo-notice-color);--progress-steps-success-color:var(--luzmo-positive-color);--progress-steps-substep-connector-color:var(--luzmo-border-color-down);--progress-steps-hover-background:var(--luzmo-background-color-hover);--progress-steps-border-radius:var(--luzmo-border-radius);--progress-steps-focus-ring-width:var(--luzmo-indicator-width);--progress-steps-focus-ring-gap:var(--luzmo-indicator-gap);--progress-steps-focus-ring-color:var(--luzmo-indicator-color);--progress-steps-min-height:var(--luzmo-component-height-s);--progress-steps-gap:calc(var(--luzmo-spacing-2) + var(--luzmo-spacing-1));--progress-steps-padding-inline:var(--luzmo-spacing-2);--progress-steps-step-spacing:var(--luzmo-spacing-1);--progress-steps-icon-size:var(--luzmo-icon-size-m);--progress-steps-chevron-size:var(--luzmo-icon-size-s);--progress-steps-icon-offset:.04em;--progress-steps-font-size-small:var(--luzmo-font-size-s);--progress-steps-details-line-height:1.4;--progress-steps-marker-size:.8em;--progress-steps-dot-size:calc(var(--luzmo-spacing-2) + var(--luzmo-spacing-1));--progress-steps-substep-indent:var(--luzmo-spacing-4);--progress-steps-transition-duration:.25s;--progress-steps-shimmer-duration:1.8s;--progress-steps-shimmer-angle:105deg;--progress-steps-line-block-size:calc(var(--luzmo-progress-steps-font-size,var(--progress-steps-font-size)) * var(--progress-steps-line-height));--progress-steps-sub-step-block-size:calc(var(--luzmo-progress-steps-font-size-small,var(--progress-steps-font-size-small)) * var(--progress-steps-line-height));--progress-steps-spinner-duration:.9s}:host([size=s]){--progress-steps-font-size:var(--luzmo-font-size-s);--progress-steps-font-size-small:var(--luzmo-font-size-s);--progress-steps-icon-size:var(--luzmo-icon-size-s);--progress-steps-chevron-size:var(--luzmo-icon-size-xs);--progress-steps-min-height:var(--luzmo-component-height-xs);--progress-steps-gap:var(--luzmo-spacing-2)}:host([size=l]){--progress-steps-font-size:var(--luzmo-font-size-l);--progress-steps-font-size-small:var(--luzmo-font-size-m);--progress-steps-icon-size:var(--luzmo-icon-size-l);--progress-steps-chevron-size:var(--luzmo-icon-size-m);--progress-steps-min-height:var(--luzmo-component-height);--progress-steps-step-spacing:var(--luzmo-spacing-2)}:host([size=xl]){--progress-steps-font-size:var(--luzmo-font-size-xl);--progress-steps-font-size-small:var(--luzmo-font-size-l);--progress-steps-icon-size:var(--luzmo-icon-size-xl);--progress-steps-chevron-size:var(--luzmo-icon-size-l);--progress-steps-min-height:var(--luzmo-component-height-l);--progress-steps-gap:var(--luzmo-spacing-3);--progress-steps-step-spacing:var(--luzmo-spacing-2)}:host([dir=rtl]){--progress-steps-shimmer-angle:255deg}.step{--progress-steps-marker-center:calc(var(--progress-steps-step-spacing) + .5em * var(--progress-steps-details-line-height));--progress-steps-marker-radius:calc(var(--progress-steps-dot-size) / 2)}.step-error{--progress-steps-marker-radius:calc(var(--progress-steps-marker-size) / 2)}@media (forced-colors:active){:host{--highcontrast-progress-steps-focus-ring-color:Highlight;--highcontrast-progress-steps-spinner-track-color:GrayText;--highcontrast-progress-steps-spinner-color:CanvasText}}", O = {
70
+ condensedSingular: "Worked through {{count}} step",
71
+ condensedPlural: "Worked through {{count}} steps",
72
+ failedSingular: "{{count}} failed",
73
+ failedPlural: "{{count}} failed",
74
+ stepInProgress: "Step in progress",
75
+ stepPending: "Step pending",
76
+ stepCompleted: "Step completed",
77
+ stepFailed: "Step failed"
78
+ }, k = 500, A = 800, j = 1e3, M = 250, N = {
79
+ mainStep: null,
80
+ subStep: null
81
+ }, P = (e, t) => e?.mainStep === t.mainStep && e?.subStep === t.subStep, F = class extends n(e, {
82
+ defaultSize: "m",
83
+ validSizes: [
84
+ "s",
85
+ "m",
86
+ "l",
87
+ "xl"
88
+ ]
89
+ }) {
90
+ constructor(...e) {
91
+ super(...e), this.progress = null, this.locale = "en", this.collapsed = !1, this.displayMode = "detailed", this.condensed = !1, this.labels = { ...O }, this.noAnimate = !1, this.open = !1, this._phase = "idle", this._current = null, this._leaving = null, this._subStepTransition = null, this._announcement = "", this._languageResolver = new i(this), this._pending = null, this._shownAt = 0;
92
+ }
93
+ static get styles() {
94
+ let e = super.styles;
95
+ return [...Array.isArray(e) ? e : e ? [e] : [], s(D)];
96
+ }
97
+ connectedCallback() {
98
+ super.connectedCallback(), this.hasUpdated && this._syncPhase();
99
+ }
100
+ disconnectedCallback() {
101
+ super.disconnectedCallback(), this._clearTimers(), this._leaving = null, this._subStepTransition = null;
102
+ }
103
+ willUpdate(e) {
104
+ super.willUpdate(e), e.has(r) && (this._numberFormatter = void 0), e.has("progress") ? (e.get("progress")?.id !== this.progress?.id && (this._resetRun(), this.hasUpdated && (this.open = !1)), this._syncPhase()) : (e.has("collapsed") && this.collapsed || e.has("locale")) && this._syncPhase();
105
+ }
106
+ get _labels() {
107
+ return {
108
+ ...O,
109
+ ...this.labels
110
+ };
111
+ }
112
+ _syncPhase() {
113
+ if (!x(this.progress)) {
114
+ this._resetRun();
115
+ return;
116
+ }
117
+ let e = T(this.progress) ? null : S(this.progress);
118
+ if (e) {
119
+ this._clearSettleTimer(), this._phase = "running", this._queue(e);
120
+ return;
121
+ }
122
+ if (this._phase === "done") return;
123
+ let t = this.collapsed || T(this.progress);
124
+ if (this._phase === "idle") {
125
+ (t || w(this.progress)) && this._finish();
126
+ return;
127
+ }
128
+ if (t) {
129
+ this._finish();
130
+ return;
131
+ }
132
+ this._settleTimer ??= setTimeout(() => {
133
+ this._settleTimer = void 0, this._finish();
134
+ }, A);
135
+ }
136
+ _queue(e) {
137
+ let t = {
138
+ mainStep: E(e.mainStep, this.locale),
139
+ subStep: e.subStep ? E(e.subStep, this.locale) : null
140
+ };
141
+ if (P(this._current, t)) {
142
+ this._pending = null, this._clearDwellTimer();
143
+ return;
144
+ }
145
+ this._pending = t;
146
+ let n = this._current ? this._shownAt + k - Date.now() : 0;
147
+ this.noAnimate || n <= 0 ? this._showPending() : this._dwellTimer ??= setTimeout(() => {
148
+ this._dwellTimer = void 0, this._showPending();
149
+ }, n);
150
+ }
151
+ _showPending() {
152
+ let e = this._pending;
153
+ this._pending = null, e && this._phase === "running" && (this._show(e), this._announce(e.mainStep));
154
+ }
155
+ _finish() {
156
+ let e = this._phase === "running";
157
+ this._clearDwellTimer(), this._clearSettleTimer(), this._pending = null, this._phase = "done", this._show(N), e && this._announce(this._summaryText());
158
+ }
159
+ _show(e) {
160
+ let t = this._current;
161
+ t && !this.noAnimate && (t.mainStep !== null && t.mainStep === e.mainStep ? this._subStepTransition = { leaving: t.subStep } : (this._leaving = t, this._subStepTransition = null), clearTimeout(this._leaveTimer), this._leaveTimer = setTimeout(() => {
162
+ this._leaving = null, this._subStepTransition = null;
163
+ }, M)), this._current = e, this._shownAt = Date.now();
164
+ }
165
+ _announce(e) {
166
+ clearTimeout(this._announceTimer), this._announceTimer = setTimeout(() => {
167
+ this._announcement = e;
168
+ }, j);
169
+ }
170
+ _resetRun() {
171
+ this._clearTimers(), this._phase = "idle", this._current = null, this._leaving = null, this._subStepTransition = null, this._pending = null, this._announcement = "";
172
+ }
173
+ _clearDwellTimer() {
174
+ clearTimeout(this._dwellTimer), this._dwellTimer = void 0;
175
+ }
176
+ _clearSettleTimer() {
177
+ clearTimeout(this._settleTimer), this._settleTimer = void 0;
178
+ }
179
+ _clearTimers() {
180
+ this._clearDwellTimer(), this._clearSettleTimer(), clearTimeout(this._leaveTimer), clearTimeout(this._announceTimer);
181
+ }
182
+ _formatCount(e, t) {
183
+ return e.replaceAll("{{count}}", this._numberFormat.format(t));
184
+ }
185
+ get _numberFormat() {
186
+ if (!this._numberFormatter) try {
187
+ this._numberFormatter = new Intl.NumberFormat(this._languageResolver.language);
188
+ } catch {
189
+ this._numberFormatter = new Intl.NumberFormat();
190
+ }
191
+ return this._numberFormatter;
192
+ }
193
+ _summaryText() {
194
+ let e = this.progress?.children?.length ?? 0, t = this._labels;
195
+ return this._formatCount(e === 1 ? t.condensedSingular : t.condensedPlural, e);
196
+ }
197
+ _setOpen(e) {
198
+ this.open = e, this.dispatchEvent(new CustomEvent(e ? "luzmo-step-expanded" : "luzmo-step-collapsed", {
199
+ bubbles: !0,
200
+ composed: !0,
201
+ detail: { nodeId: this.progress?.id ?? "" }
202
+ }));
203
+ }
204
+ handleToggle() {
205
+ this._setOpen(!this.open);
206
+ }
207
+ handleKeydown(e) {
208
+ e.key === "Escape" && this.open && (e.preventDefault(), this._setOpen(!1));
209
+ }
210
+ _statusLabel(e) {
211
+ let t = this._labels;
212
+ switch (e) {
213
+ case "inProgress": return t.stepInProgress;
214
+ case "success": return t.stepCompleted;
215
+ case "error": return t.stepFailed;
216
+ default: return t.stepPending;
217
+ }
218
+ }
219
+ _renderStatusIcon(e) {
220
+ return e ? a`<span
221
+ class="status-icon status-icon-failed"
222
+ aria-hidden="true"
223
+ >${m(u)}</span
224
+ >` : this._phase === "running" ? a`<span class="status-icon" aria-hidden="true"
225
+ ><span class="spinner"></span
226
+ ></span>` : a`<span
227
+ class="status-icon status-icon-finished"
228
+ aria-hidden="true"
229
+ >${m(f)}</span
230
+ >`;
231
+ }
232
+ _renderContent({ mainStep: e, subStep: t }, n = null) {
233
+ if (e === null) return a`<span class="main-step">${this._summaryText()}</span>`;
234
+ let r = n?.leaving ?? null;
235
+ return a`<span class="main-step">${e}</span>
236
+ <span class="sub-step"
237
+ ><span class="sub-step-texts"
238
+ >${r === null ? o : a`<span class="sub-step-text leaving" aria-hidden="true"
239
+ >${r}</span
240
+ >`}${t === null ? o : _(t, a`<span
241
+ class=${h({
242
+ "sub-step-text": !0,
243
+ entering: n !== null
244
+ })}
245
+ >${t}</span
246
+ >`)}</span
247
+ ></span
248
+ >`;
249
+ }
250
+ _renderStepMarker(e) {
251
+ return a`<span
252
+ class="step-marker"
253
+ role="img"
254
+ aria-label=${this._statusLabel(e)}
255
+ >${e === "error" ? m(p) : a`<span class="step-dot"></span>`}</span
256
+ >`;
257
+ }
258
+ _renderSubstep(e) {
259
+ return a`<li
260
+ class=${h({
261
+ substep: !0,
262
+ [`substep-${e.status}`]: !0
263
+ })}
264
+ >
265
+ ${e.status === "error" ? a`<span
266
+ class="substep-icon"
267
+ role="img"
268
+ aria-label=${this._labels.stepFailed}
269
+ >${m(p)}</span
270
+ >` : o}<span class="substep-label"
271
+ >${E(e, this.locale)}</span
272
+ >
273
+ ${e.children?.length ? this._renderSubsteps(e.children) : o}
274
+ </li>`;
275
+ }
276
+ _renderSubsteps(e) {
277
+ return a`<ul class="substeps">
278
+ ${g(e, (e) => e.id, (e) => this._renderSubstep(e))}
279
+ </ul>`;
280
+ }
281
+ _renderStep(e, t) {
282
+ return a`<li
283
+ class=${h({
284
+ step: !0,
285
+ [`step-${e.status}`]: !0
286
+ })}
287
+ >
288
+ ${this._renderStepMarker(e.status)}
289
+ <span class="step-label"
290
+ >${E(e, this.locale)}</span
291
+ >
292
+ ${t && e.children?.length ? this._renderSubsteps(e.children) : o}
293
+ </li>`;
294
+ }
295
+ _renderDetails() {
296
+ let e = this.displayMode !== "compact";
297
+ return a`<div id="details" class="details">
298
+ <ol class="steps">
299
+ ${g(this.progress?.children ?? [], (e) => e.id, (t) => this._renderStep(t, e))}
300
+ </ol>
301
+ </div>`;
302
+ }
303
+ render() {
304
+ if (this._phase === "idle" || !this._current) return o;
305
+ let e = C(this.progress), t = this._labels, n = this._phase === "running" && !this.noAnimate;
306
+ return a`
307
+ <button
308
+ type="button"
309
+ class="summary"
310
+ data-state=${this._phase}
311
+ aria-expanded=${this.open ? "true" : "false"}
312
+ aria-controls=${this.open ? "details" : o}
313
+ @click=${this.handleToggle}
314
+ @keydown=${this.handleKeydown}
315
+ >
316
+ ${this._renderStatusIcon(e > 0 || this.progress?.status === "error")}
317
+ <span class=${h({
318
+ headline: !0,
319
+ shimmer: n
320
+ })}>
321
+ ${this._leaving ? a`<span class="headline-text leaving" aria-hidden="true"
322
+ >${this._renderContent(this._leaving)}</span
323
+ >` : o}
324
+ ${_(this._current.mainStep ?? N, a`<span
325
+ class=${h({
326
+ "headline-text": !0,
327
+ entering: this._leaving !== null
328
+ })}
329
+ >${this._renderContent(this._current, this._subStepTransition)}</span
330
+ >`)}
331
+ </span>
332
+ ${e > 0 ? a`<span class="failed-count"
333
+ >${this._formatCount(e === 1 ? t.failedSingular : t.failedPlural, e)}</span
334
+ >` : o}
335
+ <span class="chevron" aria-hidden="true"
336
+ >${m(d)}</span
337
+ >
338
+ </button>
339
+ ${this.open ? this._renderDetails() : o}
340
+ <span class="visually-hidden" role="status">${this._announcement}</span>
341
+ `;
342
+ }
343
+ };
344
+ //#endregion
345
+ //#region src/components/progress-steps/index.ts
346
+ t([c({ attribute: !1 })], F.prototype, "progress", void 0), t([c({
347
+ type: String,
348
+ reflect: !0
349
+ })], F.prototype, "locale", void 0), t([c({
350
+ type: Boolean,
351
+ reflect: !0
352
+ })], F.prototype, "collapsed", void 0), t([c({
353
+ type: String,
354
+ attribute: "display-mode",
355
+ reflect: !0
356
+ })], F.prototype, "displayMode", void 0), t([c({
357
+ type: Boolean,
358
+ reflect: !0
359
+ })], F.prototype, "condensed", void 0), t([c({ attribute: !1 })], F.prototype, "labels", void 0), t([c({
360
+ type: Boolean,
361
+ attribute: "no-animate",
362
+ reflect: !0
363
+ })], F.prototype, "noAnimate", void 0), t([c({
364
+ type: Boolean,
365
+ reflect: !0
366
+ })], F.prototype, "open", void 0), t([l()], F.prototype, "_phase", void 0), t([l()], F.prototype, "_current", void 0), t([l()], F.prototype, "_leaving", void 0), t([l()], F.prototype, "_subStepTransition", void 0), t([l()], F.prototype, "_announcement", void 0), typeof customElements < "u" && !customElements.get("luzmo-progress-steps") && customElements.define("luzmo-progress-steps", F);
367
+ //#endregion
368
+ export { O as n, F as t };
@@ -0,0 +1,98 @@
1
+ /*! * Lucero - The design system for Luzmo.
2
+ *
3
+ * Copyright © 2026 Luzmo
4
+ * All rights reserved.
5
+ * Lucero (“Luzmo Design System”) must be used according to the Luzmo Terms of Service.
6
+ * This license allows users with a current active Luzmo account to use Lucero.
7
+ * This license terminates automatically if a user no longer has an active Luzmo account.
8
+ * Please view the Luzmo Terms of Service at: https://www.luzmo.com/information-pages/terms-of-use.
9
+ *
10
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
11
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
12
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
13
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
14
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
15
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
16
+ * SOFTWARE.
17
+ * */
18
+ require("./tokens.cjs");const e=require("./decorate-Dq34MBGe.cjs"),t=require("./sized-mixin-BT7cv-fT.cjs"),n=require("./language-resolution-CSjktYg5.cjs");let r=require("lit"),i=require("lit/decorators.js"),a=require("@luzmo/icons"),o=require("lit/directives/class-map.js"),s=require("lit/directives/repeat.js"),c=require("lit/directives/keyed.js");function l(e){for(let t=(e?.length??0)-1;t>=0;t--)if(e[t].status===`inProgress`)return e[t];return null}function u(e){let t=l(e.children);return t?u(t)??t:null}function d(e,t){return typeof e==`object`?e[t]??e.en??Object.values(e)[0]??``:String(e)}function f(e){return!!e?.children?.length}function p(e){let t=l(e?.children);return t?{mainStep:t,subStep:u(t)}:null}function m(e){let t=0;for(let n of e?.children??[])t+=+(n.status===`error`)+m(n);return t}function h(e){return!!e?.children?.some(e=>e.status===`success`||e.status===`error`)}function g(e){return e?.status===`success`||e?.status===`error`}function _(e,t){return e.description?e.description.replaceAll(/\{\{(\w+)\}\}/g,(n,r)=>{let i=e.descriptionMetadata?.[r];return i==null?n:Array.isArray(i)?i.map(e=>d(e,t)).join(`, `):d(i,t)}):e.step}var v=`:host{box-sizing:border-box;font-family:var(--luzmo-font-family);font-size:var(--luzmo-progress-steps-font-size,var(--progress-steps-font-size));line-height:var(--progress-steps-line-height);color:var(--luzmo-progress-steps-font-color-dimmed,var(--progress-steps-font-color-dimmed));display:block}.summary{box-sizing:border-box;align-items:flex-start;gap:var(--progress-steps-gap);max-inline-size:100%;min-block-size:var(--progress-steps-min-height);padding-block:max(0px, (var(--progress-steps-min-height) - var(--progress-steps-line-block-size)) / 2);padding-inline:var(--progress-steps-padding-inline);border-radius:var(--progress-steps-border-radius);color:inherit;font:inherit;text-align:start;cursor:pointer;appearance:none;background:0 0;border:0;margin:0;display:inline-flex}.summary:hover{background-color:var(--progress-steps-hover-background)}.summary:focus-visible{outline:var(--progress-steps-focus-ring-width) solid var(--highcontrast-progress-steps-focus-ring-color,var(--progress-steps-focus-ring-color));outline-offset:var(--progress-steps-focus-ring-gap)}.status-icon{inline-size:var(--progress-steps-icon-size);block-size:var(--progress-steps-icon-size);flex:none;justify-content:center;align-items:center;margin-block-start:calc((var(--progress-steps-line-block-size) - var(--progress-steps-icon-size)) / 2);display:inline-flex;position:relative;inset-block-start:var(--progress-steps-icon-offset)}.status-icon svg{block-size:100%;inline-size:100%}.status-icon-failed{color:var(--luzmo-progress-steps-warning-color,var(--progress-steps-warning-color))}.status-icon-finished{color:var(--luzmo-progress-steps-success-color,var(--progress-steps-success-color))}.spinner{box-sizing:border-box;border:calc(var(--luzmo-border-width) * 1.5) solid var(--highcontrast-progress-steps-spinner-track-color,var(--luzmo-progress-steps-substep-connector-color,var(--progress-steps-substep-connector-color)));border-block-start-color:var(--highcontrast-progress-steps-spinner-color,currentcolor);block-size:70%;inline-size:70%;animation:progress-steps-spin var(--progress-steps-spinner-duration) linear infinite;border-radius:50%}.headline{flex:0 auto;min-inline-size:0;display:block;position:relative;overflow:hidden}.headline-text{white-space:nowrap;flex-direction:column;min-inline-size:0;display:flex}.headline-text.entering{animation:progress-steps-enter var(--progress-steps-transition-duration) ease-out}.headline-text.leaving{inline-size:100%;animation:progress-steps-leave var(--progress-steps-transition-duration) ease-in forwards;position:absolute;inset-block-start:0;inset-inline-start:0}.main-step{text-overflow:ellipsis;color:var(--luzmo-progress-steps-font-color,var(--progress-steps-font-color));overflow:hidden}.sub-step{block-size:var(--progress-steps-sub-step-block-size);font-size:var(--luzmo-progress-steps-font-size-small,var(--progress-steps-font-size-small));display:block}.sub-step-texts{block-size:100%;display:block;position:relative;overflow:hidden}.sub-step-text{text-overflow:ellipsis;display:block;overflow:hidden}.sub-step-text.entering{animation:progress-steps-enter var(--progress-steps-transition-duration) ease-out}.sub-step-text.leaving{animation:progress-steps-leave var(--progress-steps-transition-duration) ease-in forwards;position:absolute;inset-block-start:0;inset-inline-start:0}.summary[data-state=done] .main-step{color:inherit}:where(.summary[data-state=done]) .headline-text.entering{animation:progress-steps-enter var(--progress-steps-transition-duration) ease-out, progress-steps-collapse var(--progress-steps-transition-duration) ease-in-out}.summary:hover .main-step{color:var(--luzmo-progress-steps-font-color,var(--progress-steps-font-color))}.failed-count:before{content:"·"/"";flex:none;padding-inline-end:.35em}.failed-count{white-space:nowrap;flex:none}.shimmer{-webkit-mask-image:linear-gradient(var(--progress-steps-shimmer-angle), currentcolor 38%, color-mix(in srgb, currentcolor 35%, transparent) 50%, currentcolor 62%);mask-image:linear-gradient(var(--progress-steps-shimmer-angle), currentcolor 38%, color-mix(in srgb, currentcolor 35%, transparent) 50%, currentcolor 62%);animation:progress-steps-shimmer var(--progress-steps-shimmer-duration) linear infinite;-webkit-mask-size:300% 100%;mask-size:300% 100%}.chevron{inline-size:var(--progress-steps-chevron-size);block-size:var(--progress-steps-chevron-size);transition:transform var(--progress-steps-transition-duration) ease, opacity var(--progress-steps-transition-duration) ease;flex:none;margin-block-start:calc((var(--progress-steps-line-block-size) - var(--progress-steps-chevron-size)) / 2);display:inline-flex}.chevron svg{block-size:100%;inline-size:100%}:host(:not([open])) .summary[data-state=running]:not(:hover,:focus-visible) .chevron{opacity:0}:host([open]) .chevron{transform:rotate(90deg)}:host([dir=rtl]) .chevron svg{transform:scaleX(-1)}:host([dir=rtl][open]) .chevron{transform:rotate(-90deg)}:host([dir=rtl]) .shimmer{animation-direction:reverse}.details{padding-block:var(--progress-steps-step-spacing);padding-inline:var(--progress-steps-padding-inline);font-size:var(--luzmo-progress-steps-font-size-small,var(--progress-steps-font-size-small));line-height:var(--progress-steps-details-line-height);animation:progress-steps-details-in var(--progress-steps-transition-duration) ease-out}.steps,.substeps{margin:0;padding:0;list-style:none}.step{grid-template-columns:var(--progress-steps-icon-size) minmax(0, 1fr);column-gap:var(--progress-steps-gap);padding-block:var(--progress-steps-step-spacing);display:grid;position:relative}.step:before,.step:after{content:"";border-inline-start:var(--luzmo-border-width) solid var(--luzmo-progress-steps-substep-connector-color,var(--progress-steps-substep-connector-color));position:absolute;inset-inline-start:calc(var(--progress-steps-icon-size) / 2 - var(--luzmo-border-width) / 2)}.step:before{block-size:calc(var(--progress-steps-marker-center) - var(--progress-steps-marker-radius));inset-block-start:0}.step:after{inset-block:calc(var(--progress-steps-marker-center) + var(--progress-steps-marker-radius)) 0}.step:first-child:before{display:none}.step:last-child:not(:has(>.substeps)):after{display:none}.step-marker{block-size:calc(1em * var(--progress-steps-details-line-height));color:var(--luzmo-progress-steps-font-color-dimmed,var(--progress-steps-font-color-dimmed));justify-content:center;align-items:center;display:inline-flex}.step-marker svg{inline-size:var(--progress-steps-marker-size);block-size:var(--progress-steps-marker-size)}.step-dot{box-sizing:border-box;inline-size:var(--progress-steps-dot-size);block-size:var(--progress-steps-dot-size);border:calc(var(--progress-steps-dot-size) / 2) solid currentcolor;border-radius:50%}.step-inProgress .step-marker{color:var(--luzmo-progress-steps-font-color,var(--progress-steps-font-color))}.step-inProgress .step-marker .step-dot{animation:1.2s ease-in-out infinite progress-steps-pulse}.step-pending .step-dot{border-width:var(--luzmo-border-width)}.step-error .step-marker{color:var(--luzmo-progress-steps-error-color,var(--progress-steps-error-color))}.step-label{color:var(--luzmo-progress-steps-font-color,var(--progress-steps-font-color));overflow-wrap:anywhere}.substeps{gap:var(--progress-steps-step-spacing);flex-direction:column;display:flex}.step>.substeps{grid-column:2;margin-block-start:calc(2 * var(--progress-steps-step-spacing))}.substep>.substeps{margin-block-start:var(--progress-steps-step-spacing);padding-inline-start:var(--progress-steps-substep-indent)}.substep{overflow-wrap:anywhere}.substep-inProgress{color:var(--luzmo-progress-steps-font-color,var(--progress-steps-font-color))}.substep-error{color:var(--luzmo-progress-steps-error-color,var(--progress-steps-error-color))}.substep-icon{vertical-align:-.1em;block-size:.85em;inline-size:.85em;margin-inline-end:.3em;display:inline-flex}.substep-icon svg{block-size:100%;inline-size:100%}.visually-hidden{clip-path:inset(50%);white-space:nowrap;border:0;block-size:1px;inline-size:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}:host([no-animate]) .headline-text.entering,:host([no-animate]) .sub-step-text.entering,:host([no-animate]) .details,:host([no-animate]) .chevron,:host([no-animate]) .spinner,:host([no-animate]) .step-dot{transition:none;animation:none}:host([no-animate]) .leaving{display:none}@keyframes progress-steps-shimmer{0%{-webkit-mask-position:100% 0;mask-position:100% 0}to{-webkit-mask-position:0 0;mask-position:0 0}}@keyframes progress-steps-enter{0%{opacity:0;transform:translateY(60%)}}@keyframes progress-steps-collapse{0%{padding-block-end:var(--progress-steps-sub-step-block-size)}}@keyframes progress-steps-leave{to{opacity:0;transform:translateY(-60%)}}@keyframes progress-steps-details-in{0%{opacity:0;transform:translateY(calc(-1 * var(--luzmo-spacing-2)))}}@keyframes progress-steps-spin{to{transform:rotate(360deg)}}@keyframes progress-steps-pulse{50%{opacity:.35}}@media (prefers-reduced-motion:reduce){.shimmer,.headline-text.entering,.sub-step-text.entering,.details,.chevron,.spinner,.step-dot{transition:none;animation:none}.leaving{display:none}}@media (forced-colors:active){.shimmer{animation:none;-webkit-mask-image:none;mask-image:none}.spinner{forced-color-adjust:none}}:host{--progress-steps-font-size:var(--luzmo-font-size);--progress-steps-line-height:1.5;--progress-steps-font-color:color-mix(in oklch, var(--luzmo-font-color) 65%, var(--luzmo-font-color-extra-dimmed));--progress-steps-font-color-dimmed:color-mix(in oklch, var(--luzmo-font-color) 35%, var(--luzmo-font-color-extra-dimmed));--progress-steps-error-color:var(--luzmo-negative-color);--progress-steps-warning-color:var(--luzmo-notice-color);--progress-steps-success-color:var(--luzmo-positive-color);--progress-steps-substep-connector-color:var(--luzmo-border-color-down);--progress-steps-hover-background:var(--luzmo-background-color-hover);--progress-steps-border-radius:var(--luzmo-border-radius);--progress-steps-focus-ring-width:var(--luzmo-indicator-width);--progress-steps-focus-ring-gap:var(--luzmo-indicator-gap);--progress-steps-focus-ring-color:var(--luzmo-indicator-color);--progress-steps-min-height:var(--luzmo-component-height-s);--progress-steps-gap:calc(var(--luzmo-spacing-2) + var(--luzmo-spacing-1));--progress-steps-padding-inline:var(--luzmo-spacing-2);--progress-steps-step-spacing:var(--luzmo-spacing-1);--progress-steps-icon-size:var(--luzmo-icon-size-m);--progress-steps-chevron-size:var(--luzmo-icon-size-s);--progress-steps-icon-offset:.04em;--progress-steps-font-size-small:var(--luzmo-font-size-s);--progress-steps-details-line-height:1.4;--progress-steps-marker-size:.8em;--progress-steps-dot-size:calc(var(--luzmo-spacing-2) + var(--luzmo-spacing-1));--progress-steps-substep-indent:var(--luzmo-spacing-4);--progress-steps-transition-duration:.25s;--progress-steps-shimmer-duration:1.8s;--progress-steps-shimmer-angle:105deg;--progress-steps-line-block-size:calc(var(--luzmo-progress-steps-font-size,var(--progress-steps-font-size)) * var(--progress-steps-line-height));--progress-steps-sub-step-block-size:calc(var(--luzmo-progress-steps-font-size-small,var(--progress-steps-font-size-small)) * var(--progress-steps-line-height));--progress-steps-spinner-duration:.9s}:host([size=s]){--progress-steps-font-size:var(--luzmo-font-size-s);--progress-steps-font-size-small:var(--luzmo-font-size-s);--progress-steps-icon-size:var(--luzmo-icon-size-s);--progress-steps-chevron-size:var(--luzmo-icon-size-xs);--progress-steps-min-height:var(--luzmo-component-height-xs);--progress-steps-gap:var(--luzmo-spacing-2)}:host([size=l]){--progress-steps-font-size:var(--luzmo-font-size-l);--progress-steps-font-size-small:var(--luzmo-font-size-m);--progress-steps-icon-size:var(--luzmo-icon-size-l);--progress-steps-chevron-size:var(--luzmo-icon-size-m);--progress-steps-min-height:var(--luzmo-component-height);--progress-steps-step-spacing:var(--luzmo-spacing-2)}:host([size=xl]){--progress-steps-font-size:var(--luzmo-font-size-xl);--progress-steps-font-size-small:var(--luzmo-font-size-l);--progress-steps-icon-size:var(--luzmo-icon-size-xl);--progress-steps-chevron-size:var(--luzmo-icon-size-l);--progress-steps-min-height:var(--luzmo-component-height-l);--progress-steps-gap:var(--luzmo-spacing-3);--progress-steps-step-spacing:var(--luzmo-spacing-2)}:host([dir=rtl]){--progress-steps-shimmer-angle:255deg}.step{--progress-steps-marker-center:calc(var(--progress-steps-step-spacing) + .5em * var(--progress-steps-details-line-height));--progress-steps-marker-radius:calc(var(--progress-steps-dot-size) / 2)}.step-error{--progress-steps-marker-radius:calc(var(--progress-steps-marker-size) / 2)}@media (forced-colors:active){:host{--highcontrast-progress-steps-focus-ring-color:Highlight;--highcontrast-progress-steps-spinner-track-color:GrayText;--highcontrast-progress-steps-spinner-color:CanvasText}}`,y={condensedSingular:`Worked through {{count}} step`,condensedPlural:`Worked through {{count}} steps`,failedSingular:`{{count}} failed`,failedPlural:`{{count}} failed`,stepInProgress:`Step in progress`,stepPending:`Step pending`,stepCompleted:`Step completed`,stepFailed:`Step failed`},b=500,x=800,S=1e3,C=250,w={mainStep:null,subStep:null},T=(e,t)=>e?.mainStep===t.mainStep&&e?.subStep===t.subStep,E=class extends t.n(e.n,{defaultSize:`m`,validSizes:[`s`,`m`,`l`,`xl`]}){constructor(...e){super(...e),this.progress=null,this.locale=`en`,this.collapsed=!1,this.displayMode=`detailed`,this.condensed=!1,this.labels={...y},this.noAnimate=!1,this.open=!1,this._phase=`idle`,this._current=null,this._leaving=null,this._subStepTransition=null,this._announcement=``,this._languageResolver=new n.t(this),this._pending=null,this._shownAt=0}static get styles(){let e=super.styles;return[...Array.isArray(e)?e:e?[e]:[],(0,r.unsafeCSS)(v)]}connectedCallback(){super.connectedCallback(),this.hasUpdated&&this._syncPhase()}disconnectedCallback(){super.disconnectedCallback(),this._clearTimers(),this._leaving=null,this._subStepTransition=null}willUpdate(e){super.willUpdate(e),e.has(n.r)&&(this._numberFormatter=void 0),e.has(`progress`)?(e.get(`progress`)?.id!==this.progress?.id&&(this._resetRun(),this.hasUpdated&&(this.open=!1)),this._syncPhase()):(e.has(`collapsed`)&&this.collapsed||e.has(`locale`))&&this._syncPhase()}get _labels(){return{...y,...this.labels}}_syncPhase(){if(!f(this.progress)){this._resetRun();return}let e=g(this.progress)?null:p(this.progress);if(e){this._clearSettleTimer(),this._phase=`running`,this._queue(e);return}if(this._phase===`done`)return;let t=this.collapsed||g(this.progress);if(this._phase===`idle`){(t||h(this.progress))&&this._finish();return}if(t){this._finish();return}this._settleTimer??=setTimeout(()=>{this._settleTimer=void 0,this._finish()},x)}_queue(e){let t={mainStep:_(e.mainStep,this.locale),subStep:e.subStep?_(e.subStep,this.locale):null};if(T(this._current,t)){this._pending=null,this._clearDwellTimer();return}this._pending=t;let n=this._current?this._shownAt+b-Date.now():0;this.noAnimate||n<=0?this._showPending():this._dwellTimer??=setTimeout(()=>{this._dwellTimer=void 0,this._showPending()},n)}_showPending(){let e=this._pending;this._pending=null,e&&this._phase===`running`&&(this._show(e),this._announce(e.mainStep))}_finish(){let e=this._phase===`running`;this._clearDwellTimer(),this._clearSettleTimer(),this._pending=null,this._phase=`done`,this._show(w),e&&this._announce(this._summaryText())}_show(e){let t=this._current;t&&!this.noAnimate&&(t.mainStep!==null&&t.mainStep===e.mainStep?this._subStepTransition={leaving:t.subStep}:(this._leaving=t,this._subStepTransition=null),clearTimeout(this._leaveTimer),this._leaveTimer=setTimeout(()=>{this._leaving=null,this._subStepTransition=null},C)),this._current=e,this._shownAt=Date.now()}_announce(e){clearTimeout(this._announceTimer),this._announceTimer=setTimeout(()=>{this._announcement=e},S)}_resetRun(){this._clearTimers(),this._phase=`idle`,this._current=null,this._leaving=null,this._subStepTransition=null,this._pending=null,this._announcement=``}_clearDwellTimer(){clearTimeout(this._dwellTimer),this._dwellTimer=void 0}_clearSettleTimer(){clearTimeout(this._settleTimer),this._settleTimer=void 0}_clearTimers(){this._clearDwellTimer(),this._clearSettleTimer(),clearTimeout(this._leaveTimer),clearTimeout(this._announceTimer)}_formatCount(e,t){return e.replaceAll(`{{count}}`,this._numberFormat.format(t))}get _numberFormat(){if(!this._numberFormatter)try{this._numberFormatter=new Intl.NumberFormat(this._languageResolver.language)}catch{this._numberFormatter=new Intl.NumberFormat}return this._numberFormatter}_summaryText(){let e=this.progress?.children?.length??0,t=this._labels;return this._formatCount(e===1?t.condensedSingular:t.condensedPlural,e)}_setOpen(e){this.open=e,this.dispatchEvent(new CustomEvent(e?`luzmo-step-expanded`:`luzmo-step-collapsed`,{bubbles:!0,composed:!0,detail:{nodeId:this.progress?.id??``}}))}handleToggle(){this._setOpen(!this.open)}handleKeydown(e){e.key===`Escape`&&this.open&&(e.preventDefault(),this._setOpen(!1))}_statusLabel(e){let t=this._labels;switch(e){case`inProgress`:return t.stepInProgress;case`success`:return t.stepCompleted;case`error`:return t.stepFailed;default:return t.stepPending}}_renderStatusIcon(e){return e?r.html`<span
19
+ class="status-icon status-icon-failed"
20
+ aria-hidden="true"
21
+ >${(0,a.luzmoIcon)(a.luzmoAlert)}</span
22
+ >`:this._phase===`running`?r.html`<span class="status-icon" aria-hidden="true"
23
+ ><span class="spinner"></span
24
+ ></span>`:r.html`<span
25
+ class="status-icon status-icon-finished"
26
+ aria-hidden="true"
27
+ >${(0,a.luzmoIcon)(a.luzmoCheckCircleOutline)}</span
28
+ >`}_renderContent({mainStep:e,subStep:t},n=null){if(e===null)return r.html`<span class="main-step">${this._summaryText()}</span>`;let i=n?.leaving??null;return r.html`<span class="main-step">${e}</span>
29
+ <span class="sub-step"
30
+ ><span class="sub-step-texts"
31
+ >${i===null?r.nothing:r.html`<span class="sub-step-text leaving" aria-hidden="true"
32
+ >${i}</span
33
+ >`}${t===null?r.nothing:(0,c.keyed)(t,r.html`<span
34
+ class=${(0,o.classMap)({"sub-step-text":!0,entering:n!==null})}
35
+ >${t}</span
36
+ >`)}</span
37
+ ></span
38
+ >`}_renderStepMarker(e){return r.html`<span
39
+ class="step-marker"
40
+ role="img"
41
+ aria-label=${this._statusLabel(e)}
42
+ >${e===`error`?(0,a.luzmoIcon)(a.luzmoClose14):r.html`<span class="step-dot"></span>`}</span
43
+ >`}_renderSubstep(e){return r.html`<li
44
+ class=${(0,o.classMap)({substep:!0,[`substep-${e.status}`]:!0})}
45
+ >
46
+ ${e.status===`error`?r.html`<span
47
+ class="substep-icon"
48
+ role="img"
49
+ aria-label=${this._labels.stepFailed}
50
+ >${(0,a.luzmoIcon)(a.luzmoClose14)}</span
51
+ >`:r.nothing}<span class="substep-label"
52
+ >${_(e,this.locale)}</span
53
+ >
54
+ ${e.children?.length?this._renderSubsteps(e.children):r.nothing}
55
+ </li>`}_renderSubsteps(e){return r.html`<ul class="substeps">
56
+ ${(0,s.repeat)(e,e=>e.id,e=>this._renderSubstep(e))}
57
+ </ul>`}_renderStep(e,t){return r.html`<li
58
+ class=${(0,o.classMap)({step:!0,[`step-${e.status}`]:!0})}
59
+ >
60
+ ${this._renderStepMarker(e.status)}
61
+ <span class="step-label"
62
+ >${_(e,this.locale)}</span
63
+ >
64
+ ${t&&e.children?.length?this._renderSubsteps(e.children):r.nothing}
65
+ </li>`}_renderDetails(){let e=this.displayMode!==`compact`;return r.html`<div id="details" class="details">
66
+ <ol class="steps">
67
+ ${(0,s.repeat)(this.progress?.children??[],e=>e.id,t=>this._renderStep(t,e))}
68
+ </ol>
69
+ </div>`}render(){if(this._phase===`idle`||!this._current)return r.nothing;let e=m(this.progress),t=this._labels,n=this._phase===`running`&&!this.noAnimate;return r.html`
70
+ <button
71
+ type="button"
72
+ class="summary"
73
+ data-state=${this._phase}
74
+ aria-expanded=${this.open?`true`:`false`}
75
+ aria-controls=${this.open?`details`:r.nothing}
76
+ @click=${this.handleToggle}
77
+ @keydown=${this.handleKeydown}
78
+ >
79
+ ${this._renderStatusIcon(e>0||this.progress?.status===`error`)}
80
+ <span class=${(0,o.classMap)({headline:!0,shimmer:n})}>
81
+ ${this._leaving?r.html`<span class="headline-text leaving" aria-hidden="true"
82
+ >${this._renderContent(this._leaving)}</span
83
+ >`:r.nothing}
84
+ ${(0,c.keyed)(this._current.mainStep??w,r.html`<span
85
+ class=${(0,o.classMap)({"headline-text":!0,entering:this._leaving!==null})}
86
+ >${this._renderContent(this._current,this._subStepTransition)}</span
87
+ >`)}
88
+ </span>
89
+ ${e>0?r.html`<span class="failed-count"
90
+ >${this._formatCount(e===1?t.failedSingular:t.failedPlural,e)}</span
91
+ >`:r.nothing}
92
+ <span class="chevron" aria-hidden="true"
93
+ >${(0,a.luzmoIcon)(a.luzmoAngleRight)}</span
94
+ >
95
+ </button>
96
+ ${this.open?this._renderDetails():r.nothing}
97
+ <span class="visually-hidden" role="status">${this._announcement}</span>
98
+ `}};e.t([(0,i.property)({attribute:!1})],E.prototype,`progress`,void 0),e.t([(0,i.property)({type:String,reflect:!0})],E.prototype,`locale`,void 0),e.t([(0,i.property)({type:Boolean,reflect:!0})],E.prototype,`collapsed`,void 0),e.t([(0,i.property)({type:String,attribute:`display-mode`,reflect:!0})],E.prototype,`displayMode`,void 0),e.t([(0,i.property)({type:Boolean,reflect:!0})],E.prototype,`condensed`,void 0),e.t([(0,i.property)({attribute:!1})],E.prototype,`labels`,void 0),e.t([(0,i.property)({type:Boolean,attribute:`no-animate`,reflect:!0})],E.prototype,`noAnimate`,void 0),e.t([(0,i.property)({type:Boolean,reflect:!0})],E.prototype,`open`,void 0),e.t([(0,i.state)()],E.prototype,`_phase`,void 0),e.t([(0,i.state)()],E.prototype,`_current`,void 0),e.t([(0,i.state)()],E.prototype,`_leaving`,void 0),e.t([(0,i.state)()],E.prototype,`_subStepTransition`,void 0),e.t([(0,i.state)()],E.prototype,`_announcement`,void 0),typeof customElements<`u`&&!customElements.get(`luzmo-progress-steps`)&&customElements.define(`luzmo-progress-steps`,E),Object.defineProperty(exports,"n",{enumerable:!0,get:function(){return y}}),Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return E}});
@@ -15,4 +15,4 @@
15
15
  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
16
16
  * SOFTWARE.
17
17
  * */
18
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`}),require("../tokens.cjs");const e=require("../question-box-Bdtsgv1k.cjs");exports.DEFAULT_QUESTION_BOX_LABELS=e.a,exports.LuzmoQuestionBox=e.t,exports.QUESTION_BOX_OTHER_VALUE=e.o,exports.questionBoxOtherKey=e.s,exports.questionsToRequestedSchema=e.n,exports.requestedSchemaToQuestions=e.r,exports.toElicitationContent=e.i;
18
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`}),require("../tokens.cjs");const e=require("../question-box-DZnuGMBB.cjs");exports.DEFAULT_QUESTION_BOX_LABELS=e.a,exports.LuzmoQuestionBox=e.t,exports.QUESTION_BOX_OTHER_VALUE=e.o,exports.questionBoxOtherKey=e.s,exports.questionsToRequestedSchema=e.n,exports.requestedSchemaToQuestions=e.r,exports.toElicitationContent=e.i;
@@ -16,5 +16,5 @@
16
16
  * SOFTWARE.
17
17
  * */
18
18
  import "../tokens.js";
19
- import { a as e, i as t, n, o as r, r as i, s as a, t as o } from "../question-box-D7YSi_6c.js";
19
+ import { a as e, i as t, n, o as r, r as i, s as a, t as o } from "../question-box-Bcm-P-UV.js";
20
20
  export { e as DEFAULT_QUESTION_BOX_LABELS, o as LuzmoQuestionBox, r as QUESTION_BOX_OTHER_VALUE, a as questionBoxOtherKey, n as questionsToRequestedSchema, i as requestedSchemaToQuestions, t as toElicitationContent };
@@ -24,7 +24,7 @@ import { t as i } from "./language-resolution-BaKYDD1a.js";
24
24
  import "./action-button-BRijXjEz.js";
25
25
  import "./badge-D2Hjf-Ww.js";
26
26
  import "./button-DIV_j_U3.js";
27
- import "./checkbox-BEjvkjfc.js";
27
+ import "./checkbox-CydI9yXG.js";
28
28
  import "./field-group/index.js";
29
29
  import "./text-field-CmyqQxq0.js";
30
30
  import "./radio-B6hX9Klr.js";