@logosphere-ui/core 0.0.0-alpha.43 → 0.0.0-alpha.45

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 (163) hide show
  1. package/AGENTS.md +147 -66
  2. package/dist/AGENTS.md +147 -66
  3. package/dist/accordion-CYuCj7nB.cjs +21 -0
  4. package/dist/accordion-cDabqwu6.js +96 -0
  5. package/dist/accordion.cjs +1 -0
  6. package/dist/accordion.js +4 -0
  7. package/dist/atoms/Checkbox/checkbox.d.ts +11 -2
  8. package/dist/atoms/FormField/formfield.d.ts +2 -0
  9. package/dist/{badge-DsDxWEHx.js → badge-BhINg1p5.js} +20 -20
  10. package/dist/{badge-DvaKpUHe.cjs → badge-CKSG_MyA.cjs} +1 -1
  11. package/dist/badge.cjs +1 -1
  12. package/dist/badge.js +1 -1
  13. package/dist/breadcrumb-BOuCLUJh.cjs +12 -0
  14. package/dist/breadcrumb-BeJqq-5C.js +41 -0
  15. package/dist/breadcrumb.cjs +1 -1
  16. package/dist/breadcrumb.js +1 -1
  17. package/dist/button-CVkIa7M0.js +58 -0
  18. package/dist/button-vdNReBMi.cjs +10 -0
  19. package/dist/button.cjs +1 -1
  20. package/dist/button.js +1 -1
  21. package/dist/{calendar-CZ_IN2TF.js → calendar-C71sj3Ki.js} +1 -1
  22. package/dist/{calendar-CIgyrv3U.cjs → calendar-DZJM5Tyu.cjs} +1 -1
  23. package/dist/calendar.cjs +1 -1
  24. package/dist/calendar.js +1 -1
  25. package/dist/{card-MDwFGplY.js → card-C7xXMV3h.js} +3 -3
  26. package/dist/card-DmQRNKtk.cjs +43 -0
  27. package/dist/card.cjs +1 -1
  28. package/dist/card.js +1 -1
  29. package/dist/chatbot-BAou4THb.cjs +183 -0
  30. package/dist/{chatbot-CHgiUY4h.js → chatbot-BRfqXYYt.js} +13 -13
  31. package/dist/chatbot.cjs +1 -1
  32. package/dist/chatbot.js +1 -1
  33. package/dist/checkbox-BAbPDN6x.cjs +53 -0
  34. package/dist/checkbox-CTfbav6M.js +152 -0
  35. package/dist/checkbox.cjs +1 -1
  36. package/dist/checkbox.js +1 -1
  37. package/dist/{chip-group-CpcjGoRm.cjs → chip-group-D4DwnC37.cjs} +1 -1
  38. package/dist/{chip-group-BUL2H8rr.js → chip-group-DzfOd6Vw.js} +1 -1
  39. package/dist/chip-group.cjs +1 -1
  40. package/dist/chip-group.js +1 -1
  41. package/dist/collapse-CbRE8ABx.cjs +47 -0
  42. package/dist/collapse-DY6SJ9jS.js +141 -0
  43. package/dist/collapse.cjs +1 -0
  44. package/dist/collapse.js +4 -0
  45. package/dist/combobox-BAa3UAQs.cjs +113 -0
  46. package/dist/{combobox-jak7Ac1m.js → combobox-BR05Tgfd.js} +31 -8
  47. package/dist/combobox.cjs +1 -1
  48. package/dist/combobox.js +1 -1
  49. package/dist/{datepicker-BgysIOZI.js → datepicker-BFYWQRrJ.js} +58 -51
  50. package/dist/datepicker-BWE4qDJM.cjs +85 -0
  51. package/dist/datepicker.cjs +1 -1
  52. package/dist/datepicker.js +1 -1
  53. package/dist/{drawer-3nyjAkcS.cjs → drawer-CRu4G2zu.cjs} +2 -2
  54. package/dist/{drawer-CE9zzllI.js → drawer-DhuBPWHP.js} +3 -3
  55. package/dist/drawer.cjs +1 -1
  56. package/dist/drawer.js +1 -1
  57. package/dist/formfield-JXiv9mvJ.cjs +33 -0
  58. package/dist/{formfield-O327HYt0.js → formfield-ss2mFweu.js} +59 -52
  59. package/dist/formfield.cjs +1 -1
  60. package/dist/formfield.js +1 -1
  61. package/dist/icon.cjs +1 -0
  62. package/dist/icon.js +4 -0
  63. package/dist/index.cjs +1 -291
  64. package/dist/index.d.ts +1 -0
  65. package/dist/index.js +65 -908
  66. package/dist/index.umd.js +284 -215
  67. package/dist/input-DyLKo7h6.cjs +60 -0
  68. package/dist/input-N3Z8D7q1.js +278 -0
  69. package/dist/input-group-C6sA1lzj.cjs +5 -0
  70. package/dist/input-group-DUPlrpug.js +66 -0
  71. package/dist/input-group.cjs +1 -0
  72. package/dist/input-group.js +4 -0
  73. package/dist/input.cjs +1 -1
  74. package/dist/input.js +1 -1
  75. package/dist/left-menu.cjs +1 -1
  76. package/dist/left-menu.js +3 -3
  77. package/dist/leftmenu-BcUNnvly.cjs +120 -0
  78. package/dist/leftmenu-Cg57EaSY.js +361 -0
  79. package/dist/modal-g3KbWncV.cjs +84 -0
  80. package/dist/{modal-DUIv_yoo.js → modal-vSjEpYrG.js} +4 -4
  81. package/dist/modal.cjs +1 -1
  82. package/dist/modal.js +1 -1
  83. package/dist/molecules/Input/input.d.ts +17 -0
  84. package/dist/molecules/Popover/popover.d.ts +4 -0
  85. package/dist/organisms/Combobox/combobox.d.ts +9 -0
  86. package/dist/organisms/DatePicker/datepicker.d.ts +2 -0
  87. package/dist/organisms/LeftMenu/index.d.ts +1 -1
  88. package/dist/organisms/LeftMenu/leftmenu-types.d.ts +24 -0
  89. package/dist/organisms/LeftMenu/leftmenu.d.ts +24 -9
  90. package/dist/organisms/TreeMenu/tree-menu.d.ts +20 -2
  91. package/dist/{pagination-B7jknoOz.js → pagination-CjXvpE2j.js} +61 -61
  92. package/dist/pagination-Nnzacqdo.cjs +169 -0
  93. package/dist/pagination.cjs +1 -1
  94. package/dist/pagination.js +1 -1
  95. package/dist/popover-CrXUbUR-.cjs +30 -0
  96. package/dist/popover-M5ZcS5rj.js +161 -0
  97. package/dist/popover.cjs +1 -1
  98. package/dist/popover.js +1 -1
  99. package/dist/shared/icons/index.d.ts +1 -0
  100. package/dist/slider-DSRs5uhl.cjs +108 -0
  101. package/dist/slider-ntLRajQa.js +280 -0
  102. package/dist/slider.cjs +1 -0
  103. package/dist/slider.js +4 -0
  104. package/dist/split-button-BdBweoip.js +177 -0
  105. package/dist/split-button-BpffPlVg.cjs +63 -0
  106. package/dist/split-button.cjs +1 -0
  107. package/dist/split-button.js +4 -0
  108. package/dist/stepper-CZhwgLNp.js +122 -0
  109. package/dist/stepper-ZOMaU6aZ.cjs +52 -0
  110. package/dist/stepper.cjs +1 -0
  111. package/dist/stepper.js +4 -0
  112. package/dist/{switch-8RGGesy5.cjs → switch-Do6SCkPJ.cjs} +2 -2
  113. package/dist/{switch-DNqPqH-R.js → switch-uYVuohJ-.js} +25 -21
  114. package/dist/switch.cjs +1 -1
  115. package/dist/switch.js +1 -1
  116. package/dist/tab-BvRVHpWs.cjs +41 -0
  117. package/dist/{tab-CuBCFGoO.js → tab-Byh4UgFB.js} +1 -1
  118. package/dist/tab.cjs +1 -1
  119. package/dist/tab.js +1 -1
  120. package/dist/{text-area-C73JxnqH.js → text-area-1rALZ0iy.js} +16 -12
  121. package/dist/text-area-D_TYL4_q.cjs +51 -0
  122. package/dist/textarea.cjs +1 -1
  123. package/dist/textarea.js +1 -1
  124. package/dist/{timepicker-DMzGYd0p.js → timepicker-B9l6HN-d.js} +6 -2
  125. package/dist/{timepicker-CLJKWWGm.cjs → timepicker-Bpf2d4Nn.cjs} +1 -1
  126. package/dist/timepicker.cjs +1 -1
  127. package/dist/timepicker.js +1 -1
  128. package/dist/{toast-container-B5v74b_5.js → toast-container-C5qYjInG.js} +4 -4
  129. package/dist/toast-container-D2dyP20J.cjs +64 -0
  130. package/dist/toast.cjs +1 -1
  131. package/dist/toast.js +1 -1
  132. package/dist/tree-menu-BZ7aBC7R.js +237 -0
  133. package/dist/tree-menu-DDQ_DYl7.cjs +78 -0
  134. package/dist/tree-menu.cjs +1 -1
  135. package/dist/tree-menu.js +1 -1
  136. package/dist/{ui-icon-BMJNdIOq.js → ui-icon-BeR-PaPg.js} +11 -7
  137. package/dist/{ui-icon-DIucAQC_.cjs → ui-icon-DWl7I5BQ.cjs} +2 -2
  138. package/package.json +6 -1
  139. package/dist/breadcrumb-BB61Xt0s.js +0 -41
  140. package/dist/breadcrumb-Cop-B1J7.cjs +0 -12
  141. package/dist/button-DRZ4sG4T.cjs +0 -10
  142. package/dist/button-Uu9oaieg.js +0 -58
  143. package/dist/card-BOCW7gad.cjs +0 -43
  144. package/dist/chatbot-B-NiZIYK.cjs +0 -183
  145. package/dist/checkbox-CX0LgsWP.js +0 -148
  146. package/dist/checkbox-DpbKHANK.cjs +0 -53
  147. package/dist/combobox-BmIFPk8X.cjs +0 -113
  148. package/dist/datepicker-DOBmbxlo.cjs +0 -85
  149. package/dist/formfield-CRcyUMvQ.cjs +0 -33
  150. package/dist/input-CQS0LzF-.cjs +0 -59
  151. package/dist/input-CeF3YJk-.js +0 -257
  152. package/dist/leftmenu-CmWvnA6L.js +0 -301
  153. package/dist/leftmenu-p9aR2QTy.cjs +0 -83
  154. package/dist/modal-dUnnHe8u.cjs +0 -84
  155. package/dist/organisms/LeftMenu/leftmenu-item.d.ts +0 -14
  156. package/dist/pagination-BkqbWBOn.cjs +0 -169
  157. package/dist/popover-CYDoeLKp.cjs +0 -30
  158. package/dist/popover-DDaG8MSj.js +0 -143
  159. package/dist/tab-CDMcFHvP.cjs +0 -41
  160. package/dist/text-area-Cprb-azV.cjs +0 -51
  161. package/dist/toast-container-6t6yEP9Y.cjs +0 -64
  162. package/dist/tree-menu-CkOPxr-W.js +0 -154
  163. package/dist/tree-menu-WNwZMreD.cjs +0 -47
package/dist/index.js CHANGED
@@ -1,910 +1,67 @@
1
- import { B as et } from "./button-Uu9oaieg.js";
2
- import { L as it } from "./badge-DsDxWEHx.js";
3
- import { C as st } from "./checkbox-CX0LgsWP.js";
4
- import { F as at } from "./formfield-O327HYt0.js";
5
- import { unsafeCSS as m, css as y, LitElement as w, html as n, nothing as d } from "lit";
6
- import { property as s, state as C, customElement as x, query as E } from "lit/decorators.js";
7
- import { S as pt } from "./switch-DNqPqH-R.js";
8
- import { B as ct } from "./breadcrumb-BB61Xt0s.js";
9
- import { C as bt } from "./card-MDwFGplY.js";
10
- import { L as _t } from "./input-CeF3YJk-.js";
11
- import { P as gt } from "./pagination-B7jknoOz.js";
12
- import { P as mt } from "./popover-DDaG8MSj.js";
13
- import "./ui-icon-BMJNdIOq.js";
14
- import { createPopper as L } from "@popperjs/core";
15
- import { C as wt } from "./chip-group-BUL2H8rr.js";
16
- import { T as $t } from "./text-area-C73JxnqH.js";
17
- import { T as St } from "./timepicker-DMzGYd0p.js";
18
- import { L as Et } from "./chatbot-CHgiUY4h.js";
19
- import { L as zt } from "./calendar-CZ_IN2TF.js";
20
- import { C as Dt } from "./combobox-jak7Ac1m.js";
21
- import { L as Bt } from "./datepicker-BgysIOZI.js";
22
- import { D as It } from "./drawer-CE9zzllI.js";
23
- import { D as Ft } from "./download-manager-BPg-6Qfg.js";
24
- import { L as jt, a as Nt } from "./leftmenu-CmWvnA6L.js";
25
- import { M as Rt } from "./modal-DUIv_yoo.js";
26
- import { L as Gt, a as Ht, T as Ut } from "./toast-container-B5v74b_5.js";
27
- import { L as Yt } from "./tab-CuBCFGoO.js";
28
- import { T as Jt } from "./tree-menu-CkOPxr-W.js";
29
- const D = ':host{display:block}.slider{position:relative;width:100%;font-family:var(--font-family-base)}.slider--has-tooltip .slider__track-area{margin-top:var(--spacing-8)}.slider__track-area{position:relative;height:20px;display:flex;align-items:center}.slider__track{position:absolute;left:0;right:0;top:50%;transform:translateY(-50%);height:6px;border-radius:var(--radius-full);background:var(--color-border);pointer-events:none}.slider__fill{position:absolute;top:50%;transform:translateY(-50%);height:6px;border-radius:var(--radius-full);background:var(--color-primary);pointer-events:none}.slider__input{position:absolute;top:50%;transform:translateY(-50%);left:0;width:100%;height:6px;margin:0;padding:0;-webkit-appearance:none;appearance:none;background:transparent;cursor:pointer;pointer-events:none;outline:none}.slider__input::-webkit-slider-runnable-track{background:transparent;height:6px}.slider__input::-moz-range-track{background:transparent;height:6px}.slider__input::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:16px;height:16px;margin-top:-5px;border-radius:50%;background:var(--color-body-bg);border:2px solid var(--color-border);pointer-events:all;cursor:pointer;box-shadow:var(--shadow-sm)}.slider__input::-moz-range-thumb{width:16px;height:16px;border-radius:50%;background:var(--color-body-bg);border:2px solid var(--color-border);pointer-events:all;cursor:pointer;box-shadow:var(--shadow-sm)}.slider__input:not(:disabled):focus-visible::-webkit-slider-thumb{outline:none;box-shadow:0 0 0 4px var(--color-primary-bg-subtle)}.slider__input:not(:disabled):focus-visible::-moz-range-thumb{box-shadow:0 0 0 4px var(--color-primary-bg-subtle)}.slider--disabled .slider__track{background:var(--color-border)}.slider--disabled .slider__fill{background:var(--color-primary-disabled)}.slider--disabled .slider__input{cursor:not-allowed}.slider--disabled .slider__input::-webkit-slider-thumb{background:var(--color-body-bg);border-color:var(--color-border);pointer-events:all;cursor:not-allowed;box-shadow:none}.slider--disabled .slider__input::-moz-range-thumb{background:var(--color-body-bg);border-color:var(--color-secondary-disabled);cursor:not-allowed;box-shadow:none}.slider--disabled .slider__scale-item{color:var(--color-secondary-disabled)}.slider--disabled .slider__scale-item:before{background:var(--color-secondary-disabled)}.slider--disabled .slider__tooltip{color:var(--color-secondary-disabled);border-color:var(--color-secondary-disabled)}.slider__tooltip{position:absolute;top:-34px;transform:translate(-50%);background:var(--color-body-bg);border:1px solid var(--color-border);color:var(--color-body-color);padding:var(--spacing-1) var(--spacing-2);border-radius:var(--radius-sm);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);font-family:var(--font-family-base);white-space:nowrap;pointer-events:none;z-index:var(--z-index-tooltip);line-height:var(--line-height-normal)}.slider__scale{position:relative;height:26px;margin-top:var(--spacing-1)}.slider__scale-item{position:absolute;transform:translate(-50%);display:flex;flex-direction:column;align-items:center;gap:var(--spacing-1);font-size:var(--font-size-xs);color:var(--color-tertiary);font-family:var(--font-family-base);font-weight:var(--font-weight-regular);white-space:nowrap;line-height:1;-webkit-user-select:none;user-select:none}.slider__scale-item:before{content:"";display:block;width:1px;height:6px;background:var(--color-border);flex-shrink:0}.slider__input--start,.slider__input--end{position:absolute;pointer-events:none}.slider__input--start::-webkit-slider-thumb,.slider__input--end::-webkit-slider-thumb{pointer-events:all}.slider__input--start::-moz-range-thumb,.slider__input--end::-moz-range-thumb{pointer-events:all}';
30
- var O = Object.defineProperty, B = Object.getOwnPropertyDescriptor, c = (t, e, o, r) => {
31
- for (var i = r > 1 ? void 0 : r ? B(e, o) : e, l = t.length - 1, a; l >= 0; l--)
32
- (a = t[l]) && (i = (r ? a(e, o, i) : a(i)) || i);
33
- return r && i && O(e, o, i), i;
34
- };
35
- let p = class extends w {
36
- constructor() {
37
- super(...arguments), this.value = 50, this.min = 0, this.max = 100, this.step = 1, this.disabled = !1, this.range = !1, this.rangeStart = 25, this.rangeEnd = 75, this.minDistance = 0, this.tooltip = "never", this.showScale = !1, this.percentage = !1, this.labels = [], this._hoverStart = !1, this._hoverEnd = !1;
38
- }
39
- // ── Computed helpers ─────────────────────────────────────────────────────────
40
- get _isLabeled() {
41
- return this.labels.length > 0;
42
- }
43
- get _effectiveStep() {
44
- return this._isLabeled && this.labels.length > 1 ? (this.max - this.min) / (this.labels.length - 1) : this.step;
45
- }
46
- get _valuePct() {
47
- return (this.value - this.min) / (this.max - this.min) * 100;
48
- }
49
- get _startPct() {
50
- return (this.rangeStart - this.min) / (this.max - this.min) * 100;
51
- }
52
- get _endPct() {
53
- return (this.rangeEnd - this.min) / (this.max - this.min) * 100;
54
- }
55
- get _displayValue() {
56
- if (this._isLabeled) {
57
- const t = Math.round((this.value - this.min) / this._effectiveStep);
58
- return this.labels[Math.min(t, this.labels.length - 1)] ?? String(this.value);
59
- }
60
- return this.percentage ? `${Math.round(this.value)}%` : String(this.value);
61
- }
62
- get _displayStart() {
63
- return this.percentage ? `${Math.round(this.rangeStart)}%` : String(this.rangeStart);
64
- }
65
- get _displayEnd() {
66
- return this.percentage ? `${Math.round(this.rangeEnd)}%` : String(this.rangeEnd);
67
- }
68
- /** CSS left value that correctly follows the native thumb position (accounts for thumb radius offset). */
69
- _thumbLeft(t) {
70
- return `calc(${t}% + ${(0.5 - t / 100) * 16}px)`;
71
- }
72
- // ── Event handlers ───────────────────────────────────────────────────────────
73
- _onSingleChange(t) {
74
- const e = t.target;
75
- this.value = Number(e.value), this._emit("change", { value: this.value });
76
- }
77
- _onStartChange(t) {
78
- const e = t.target, o = Math.min(Number(e.value), this.rangeEnd - this.minDistance);
79
- this.rangeStart = o, this._emit("change", { rangeStart: this.rangeStart, rangeEnd: this.rangeEnd });
80
- }
81
- _onEndChange(t) {
82
- const e = t.target, o = Math.max(Number(e.value), this.rangeStart + this.minDistance);
83
- this.rangeEnd = o, this._emit("change", { rangeStart: this.rangeStart, rangeEnd: this.rangeEnd });
84
- }
85
- _emit(t, e) {
86
- this.dispatchEvent(new CustomEvent(t, { detail: e, bubbles: !0, composed: !0 }));
87
- }
88
- // ── Render parts ─────────────────────────────────────────────────────────────
89
- _renderFill() {
90
- return this.range ? n`
91
- <div
92
- class="slider__fill"
93
- style="left: ${this._startPct}%; width: ${this._endPct - this._startPct}%"
94
- ></div>
95
- ` : n`<div class="slider__fill" style="width: ${this._valuePct}%"></div>`;
96
- }
97
- _renderTooltip(t, e, o) {
98
- return this.tooltip === "never" ? d : this.tooltip === "hover" && !o ? d : n`
99
- <div class="slider__tooltip" style="left: ${this._thumbLeft(e)}">${t}</div>
100
- `;
101
- }
102
- _renderScale() {
103
- if (!this.showScale) return d;
104
- const t = this.max - this.min, e = Math.min(Math.round(t / this.step) + 1, 11), o = Array.from({ length: e }, (r, i) => {
105
- const l = e > 1 ? i / (e - 1) * 100 : 0, a = this.min + l / 100 * t, z = this.percentage ? `${Math.round(a)}%` : String(Math.round(a));
106
- return { pct: l, display: z };
107
- });
108
- return n`
109
- <div class="slider__scale">
110
- ${o.map(({ pct: r, display: i }) => n`
111
- <span class="slider__scale-item" style="left: ${this._thumbLeft(r)}">${i}</span>
112
- `)}
113
- </div>
114
- `;
115
- }
116
- _renderLabels() {
117
- if (!this._isLabeled) return d;
118
- const t = this.labels.length;
119
- return n`
120
- <div class="slider__scale">
121
- ${this.labels.map((e, o) => {
122
- const r = t > 1 ? o / (t - 1) * 100 : 0;
123
- return n`
124
- <span class="slider__scale-item" style="left: ${this._thumbLeft(r)}">${e}</span>
125
- `;
126
- })}
127
- </div>
128
- `;
129
- }
130
- _renderSingleInput() {
131
- const t = this.tooltip === "always" || this.tooltip === "hover" && this._hoverStart;
132
- return n`
133
- <div class="slider__track-area">
134
- <div class="slider__track"></div>
135
- ${this._renderFill()}
136
- ${this._renderTooltip(this._displayValue, this._valuePct, t)}
137
- <input
138
- type="range"
139
- class="slider__input"
140
- .value=${String(this.value)}
141
- min=${this.min}
142
- max=${this.max}
143
- step=${this._effectiveStep}
144
- ?disabled=${this.disabled}
145
- @input=${this._onSingleChange}
146
- @mouseenter=${() => {
147
- this._hoverStart = !0;
148
- }}
149
- @mouseleave=${() => {
150
- this._hoverStart = !1;
151
- }}
152
- @focus=${() => {
153
- this._hoverStart = !0;
154
- }}
155
- @blur=${() => {
156
- this._hoverStart = !1;
157
- }}
158
- aria-label="Slider"
159
- aria-valuemin=${this.min}
160
- aria-valuemax=${this.max}
161
- aria-valuenow=${this.value}
162
- aria-valuetext=${this._displayValue}
163
- aria-disabled=${this.disabled}
164
- />
165
- </div>
166
- `;
167
- }
168
- _renderRangeInputs() {
169
- const t = this.tooltip === "always" || this.tooltip === "hover" && this._hoverStart, e = this.tooltip === "always" || this.tooltip === "hover" && this._hoverEnd, o = this._startPct >= 100 ? 4 : 3, r = this._startPct >= 100 ? 3 : 4;
170
- return n`
171
- <div class="slider__track-area">
172
- <div class="slider__track"></div>
173
- ${this._renderFill()}
174
- ${this._renderTooltip(this._displayStart, this._startPct, t)}
175
- ${this._renderTooltip(this._displayEnd, this._endPct, e)}
176
- <input
177
- type="range"
178
- class="slider__input slider__input--start"
179
- style="z-index: ${o}"
180
- .value=${String(this.rangeStart)}
181
- min=${this.min}
182
- max=${this.max}
183
- step=${this._effectiveStep}
184
- ?disabled=${this.disabled}
185
- @input=${this._onStartChange}
186
- @mouseenter=${() => {
187
- this._hoverStart = !0;
188
- }}
189
- @mouseleave=${() => {
190
- this._hoverStart = !1;
191
- }}
192
- @focus=${() => {
193
- this._hoverStart = !0;
194
- }}
195
- @blur=${() => {
196
- this._hoverStart = !1;
197
- }}
198
- aria-label="Range start"
199
- aria-valuemin=${this.min}
200
- aria-valuemax=${this.max}
201
- aria-valuenow=${this.rangeStart}
202
- aria-valuetext=${this._displayStart}
203
- aria-disabled=${this.disabled}
204
- />
205
- <input
206
- type="range"
207
- class="slider__input slider__input--end"
208
- style="z-index: ${r}"
209
- .value=${String(this.rangeEnd)}
210
- min=${this.min}
211
- max=${this.max}
212
- step=${this._effectiveStep}
213
- ?disabled=${this.disabled}
214
- @input=${this._onEndChange}
215
- @mouseenter=${() => {
216
- this._hoverEnd = !0;
217
- }}
218
- @mouseleave=${() => {
219
- this._hoverEnd = !1;
220
- }}
221
- @focus=${() => {
222
- this._hoverEnd = !0;
223
- }}
224
- @blur=${() => {
225
- this._hoverEnd = !1;
226
- }}
227
- aria-label="Range end"
228
- aria-valuemin=${this.min}
229
- aria-valuemax=${this.max}
230
- aria-valuenow=${this.rangeEnd}
231
- aria-valuetext=${this._displayEnd}
232
- aria-disabled=${this.disabled}
233
- />
234
- </div>
235
- `;
236
- }
237
- render() {
238
- const t = this.tooltip !== "never", e = this.showScale || this._isLabeled;
239
- return n`
240
- <div
241
- class="slider
242
- ${this.disabled ? "slider--disabled" : ""}
243
- ${t ? "slider--has-tooltip" : ""}
244
- ${e ? "slider--has-below" : ""}
245
- "
246
- role="presentation"
247
- >
248
- ${this.range ? this._renderRangeInputs() : this._renderSingleInput()}
249
- ${this._renderScale()}
250
- ${this._renderLabels()}
251
- </div>
252
- `;
253
- }
254
- };
255
- p.styles = [y`${m(D)}`];
256
- c([
257
- s({ type: Number })
258
- ], p.prototype, "value", 2);
259
- c([
260
- s({ type: Number })
261
- ], p.prototype, "min", 2);
262
- c([
263
- s({ type: Number })
264
- ], p.prototype, "max", 2);
265
- c([
266
- s({ type: Number })
267
- ], p.prototype, "step", 2);
268
- c([
269
- s({ type: Boolean })
270
- ], p.prototype, "disabled", 2);
271
- c([
272
- s({ type: Boolean })
273
- ], p.prototype, "range", 2);
274
- c([
275
- s({ type: Number })
276
- ], p.prototype, "rangeStart", 2);
277
- c([
278
- s({ type: Number })
279
- ], p.prototype, "rangeEnd", 2);
280
- c([
281
- s({ type: Number })
282
- ], p.prototype, "minDistance", 2);
283
- c([
284
- s({ type: String })
285
- ], p.prototype, "tooltip", 2);
286
- c([
287
- s({ type: Boolean })
288
- ], p.prototype, "showScale", 2);
289
- c([
290
- s({ type: Boolean })
291
- ], p.prototype, "percentage", 2);
292
- c([
293
- s({ type: Array })
294
- ], p.prototype, "labels", 2);
295
- c([
296
- C()
297
- ], p.prototype, "_hoverStart", 2);
298
- c([
299
- C()
300
- ], p.prototype, "_hoverEnd", 2);
301
- p = c([
302
- x("logosphere-slider")
303
- ], p);
304
- const T = ":host{display:block}.stepper{display:flex;font-family:var(--font-family-base)}.stepper--horizontal{flex-direction:row;align-items:flex-start}.stepper--horizontal .stepper__step{display:flex;flex-direction:column;align-items:center;flex:1;position:relative;min-width:0}.stepper--horizontal .stepper__step-header{display:flex;flex-direction:column;align-items:center;width:100%;position:relative}.stepper--horizontal .stepper__connector{position:absolute;top:10px;left:calc(50% + 18px);right:calc(-50% + 18px);height:2px;z-index:0}.stepper--horizontal .stepper__labels{display:flex;flex-direction:column;align-items:center;text-align:center;margin-top:var(--spacing-2);padding:0 var(--spacing-1)}.stepper--vertical{flex-direction:column;align-items:stretch}.stepper--vertical .stepper__step{display:flex;flex-direction:column;position:relative}.stepper--vertical .stepper__step-header{display:flex;flex-direction:row;align-items:flex-start;gap:var(--spacing-3)}.stepper--vertical .stepper__labels{display:flex;flex-direction:column;padding-top:var(--spacing-1);padding-bottom:var(--spacing-4)}.stepper--vertical .stepper__connector{position:absolute;top:28px;left:9px;width:2px;bottom:0}.stepper__indicator{width:20px;height:20px;border-radius:var(--radius-full);display:flex;align-items:center;justify-content:center;flex-shrink:0;position:relative;z-index:1;transition:background-color var(--transition-speed-base) var(--transition-timing),border-color var(--transition-speed-base) var(--transition-timing)}.stepper__indicator-number{font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);line-height:1}.stepper__indicator-dot{width:10px;height:10px;border-radius:var(--radius-full);background-color:var(--color-primary);flex-shrink:0}.stepper__indicator--completed{background-color:var(--color-primary);border:2px solid var(--color-primary);color:#fff}.stepper__indicator--current{background-color:var(--color-body-bg);border:2px solid var(--color-primary)}.stepper__indicator--upcoming{background-color:var(--color-body-bg);border:2px solid var(--color-border);color:var(--color-tertiary)}.stepper__indicator--disabled{background-color:var(--color-light-bg);border:2px solid var(--color-secondary-disabled);color:var(--color-secondary-disabled)}.stepper__connector--completed{background-color:var(--color-primary)}.stepper__connector--upcoming{background-color:var(--color-border)}.stepper__title{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);line-height:var(--line-height-tight);color:var(--color-body-color);white-space:nowrap}.stepper__description{font-size:var(--font-size-xs);font-weight:var(--font-weight-regular);line-height:var(--line-height-normal);color:var(--color-tertiary);margin-top:var(--spacing-0-5);white-space:normal}.stepper__step--current .stepper__title{color:var(--color-primary);font-weight:var(--font-weight-semibold)}.stepper__step--upcoming .stepper__title{color:var(--color-tertiary)}.stepper__step--disabled .stepper__title,.stepper__step--disabled .stepper__description{color:var(--color-secondary-disabled)}.stepper__step--clickable{cursor:pointer}.stepper__step--clickable:hover .stepper__indicator--upcoming,.stepper__step--clickable:hover .stepper__indicator--completed{box-shadow:0 0 0 4px var(--color-primary-bg-subtle)}.stepper__step--clickable:focus-visible{outline:none}.stepper__step--clickable:focus-visible .stepper__indicator{box-shadow:0 0 0 4px var(--color-primary-bg-subtle)}";
305
- var I = Object.defineProperty, M = Object.getOwnPropertyDescriptor, $ = (t, e, o, r) => {
306
- for (var i = r > 1 ? void 0 : r ? M(e, o) : e, l = t.length - 1, a; l >= 0; l--)
307
- (a = t[l]) && (i = (r ? a(e, o, i) : a(i)) || i);
308
- return r && i && I(e, o, i), i;
309
- };
310
- let f = class extends w {
311
- constructor() {
312
- super(...arguments), this.steps = [], this.activeStep = 0, this.orientation = "horizontal", this.clickable = !1;
313
- }
314
- // ── Computed state ──────────────────────────────────────────────────────────
315
- _resolveState(t, e) {
316
- return t.state ? t.state : t.disabled ? "disabled" : e < this.activeStep ? "completed" : e === this.activeStep ? "current" : "upcoming";
317
- }
318
- // ── Event handlers ──────────────────────────────────────────────────────────
319
- _onStepClick(t, e) {
320
- !this.clickable || e === "disabled" || e === "upcoming" || (this.activeStep = t, this.dispatchEvent(
321
- new CustomEvent("step-change", {
322
- detail: { index: t, step: this.steps[t] },
323
- bubbles: !0,
324
- composed: !0
325
- })
326
- ));
327
- }
328
- _onStepKeydown(t, e, o) {
329
- (t.key === "Enter" || t.key === " ") && (t.preventDefault(), this._onStepClick(e, o)), (t.key === "ArrowRight" || t.key === "ArrowDown") && (t.preventDefault(), this._focusStep(e + 1)), (t.key === "ArrowLeft" || t.key === "ArrowUp") && (t.preventDefault(), this._focusStep(e - 1));
330
- }
331
- _focusStep(t) {
332
- const e = Math.max(0, Math.min(this.steps.length - 1, t));
333
- this.shadowRoot?.querySelector(
334
- `[data-step-index="${e}"]`
335
- )?.focus();
336
- }
337
- // ── Render helpers ──────────────────────────────────────────────────────────
338
- _renderIndicator(t, e) {
339
- let o;
340
- return t === "completed" ? o = n`<ui-icon name="uil-check" size="12"></ui-icon>` : t === "current" ? o = n`<span class="stepper__indicator-dot"></span>` : o = n`<span class="stepper__indicator-number">${e + 1}</span>`, n`
341
- <div
342
- class="stepper__indicator stepper__indicator--${t}"
343
- aria-hidden="true"
344
- >
345
- ${o}
346
- </div>
347
- `;
348
- }
349
- _renderConnector(t, e) {
350
- return e ? d : n`
351
- <div
352
- class="stepper__connector stepper__connector--${t === "completed" ? "completed" : "upcoming"}"
353
- aria-hidden="true"
354
- ></div>
355
- `;
356
- }
357
- _renderStep(t, e) {
358
- const o = this._resolveState(t, e), r = e === this.steps.length - 1, i = this.clickable && (o === "completed" || o === "current");
359
- return n`
360
- <div
361
- class="stepper__step stepper__step--${o} ${i ? "stepper__step--clickable" : ""}"
362
- data-step-index=${e}
363
- role=${this.clickable ? "button" : "listitem"}
364
- tabindex=${i ? "0" : "-1"}
365
- aria-current=${o === "current" ? "step" : d}
366
- aria-disabled=${o === "disabled" ? "true" : d}
367
- aria-label="${t.title}${t.description ? `, ${t.description}` : ""}, ${o}"
368
- @click=${() => this._onStepClick(e, o)}
369
- @keydown=${(l) => this._onStepKeydown(l, e, o)}
370
- >
371
- <div class="stepper__step-header">
372
- ${this._renderIndicator(o, e)}
373
- ${this.orientation === "vertical" ? n`
374
- <div class="stepper__labels">
375
- <span class="stepper__title">${t.title}</span>
376
- ${t.description ? n`<span class="stepper__description">${t.description}</span>` : d}
377
- </div>
378
- ` : d}
379
- </div>
380
-
381
- ${this.orientation === "horizontal" ? n`
382
- <div class="stepper__labels">
383
- <span class="stepper__title">${t.title}</span>
384
- ${t.description ? n`<span class="stepper__description">${t.description}</span>` : d}
385
- </div>
386
- ` : d}
387
-
388
- ${this._renderConnector(o, r)}
389
- </div>
390
- `;
391
- }
392
- render() {
393
- return n`
394
- <div
395
- class="stepper stepper--${this.orientation}"
396
- role="list"
397
- aria-label="Progress steps"
398
- >
399
- ${this.steps.map((t, e) => this._renderStep(t, e))}
400
- </div>
401
- `;
402
- }
403
- };
404
- f.styles = [y`${m(T)}`];
405
- $([
406
- s({ attribute: !1 })
407
- ], f.prototype, "steps", 2);
408
- $([
409
- s({ type: Number })
410
- ], f.prototype, "activeStep", 2);
411
- $([
412
- s({ type: String })
413
- ], f.prototype, "orientation", 2);
414
- $([
415
- s({ type: Boolean })
416
- ], f.prototype, "clickable", 2);
417
- f = $([
418
- x("logosphere-stepper")
419
- ], f);
420
- const F = ":host{display:inline-block;position:relative}.split-button{display:inline-flex;align-items:stretch;gap:1px;font-family:var(--font-family-base);border-radius:var(--radius-base);overflow:hidden}.split-button__action,.split-button__dropdown{display:inline-flex;align-items:center;justify-content:center;border:none;cursor:pointer;font-family:inherit;font-weight:var(--font-weight-semibold);font-size:var(--font-size-sm);line-height:1.25rem;letter-spacing:-.14px;white-space:nowrap;-webkit-user-select:none;user-select:none;transition:background-color var(--transition-speed-base) var(--transition-timing);outline:none}.split-button__action:focus-visible,.split-button__dropdown:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px;position:relative;z-index:1}.split-button__action:disabled,.split-button__dropdown:disabled{cursor:not-allowed;pointer-events:none}.split-button__action{gap:var(--spacing-1)}.split-button__chevron{transition:transform var(--transition-speed-base) var(--transition-timing);display:inline-flex}.split-button__chevron--open{transform:rotate(180deg)}.split-button--sm .split-button__action{padding:var(--spacing-0-5) var(--spacing-2)}.split-button--sm .split-button__dropdown{padding:var(--spacing-0-5) var(--spacing-1-5)}.split-button--md .split-button__action{padding:var(--spacing-1-5) var(--spacing-3)}.split-button--md .split-button__dropdown{padding:var(--spacing-1-5) var(--spacing-2)}.split-button--lg .split-button__action{padding:var(--spacing-2-5) var(--spacing-3)}.split-button--lg .split-button__dropdown{padding:var(--spacing-2-5) var(--spacing-2)}.split-button{background-color:#fff6}.split-button--primary .split-button__action,.split-button--primary .split-button__dropdown{background-color:var(--color-primary);color:#fff}.split-button--primary .split-button__action:hover:not(:disabled),.split-button--primary .split-button__dropdown:hover:not(:disabled){background-color:var(--color-primary-hover)}.split-button--primary .split-button__action:active:not(:disabled),.split-button--primary .split-button__dropdown:active:not(:disabled){background-color:var(--color-primary-active)}.split-button--primary.split-button--disabled,.split-button--primary .split-button__action:disabled,.split-button--primary .split-button__dropdown:disabled{background-color:var(--color-primary-disabled)}.split-button--primary.split-button--disabled .split-button__action,.split-button--primary.split-button--disabled .split-button__dropdown{background-color:var(--color-primary-disabled)}.split-button--secondary .split-button__action,.split-button--secondary .split-button__dropdown{background-color:var(--color-secondary);color:#fff}.split-button--secondary .split-button__action:hover:not(:disabled),.split-button--secondary .split-button__dropdown:hover:not(:disabled){background-color:var(--color-secondary-hover)}.split-button--secondary .split-button__action:active:not(:disabled),.split-button--secondary .split-button__dropdown:active:not(:disabled){background-color:var(--color-secondary-active)}.split-button--secondary.split-button--disabled .split-button__action,.split-button--secondary.split-button--disabled .split-button__dropdown,.split-button--secondary .split-button__action:disabled,.split-button--secondary .split-button__dropdown:disabled{background-color:var(--color-secondary-disabled)}.split-button--success .split-button__action,.split-button--success .split-button__dropdown{background-color:var(--color-success);color:#fff}.split-button--success .split-button__action:hover:not(:disabled),.split-button--success .split-button__dropdown:hover:not(:disabled){background-color:var(--color-success-hover)}.split-button--success .split-button__action:active:not(:disabled),.split-button--success .split-button__dropdown:active:not(:disabled){background-color:var(--color-success-active)}.split-button--success.split-button--disabled .split-button__action,.split-button--success.split-button--disabled .split-button__dropdown,.split-button--success .split-button__action:disabled,.split-button--success .split-button__dropdown:disabled{background-color:var(--color-success-disabled)}.split-button--danger .split-button__action,.split-button--danger .split-button__dropdown{background-color:var(--color-danger);color:#fff}.split-button--danger .split-button__action:hover:not(:disabled),.split-button--danger .split-button__dropdown:hover:not(:disabled){background-color:var(--color-danger-hover)}.split-button--danger .split-button__action:active:not(:disabled),.split-button--danger .split-button__dropdown:active:not(:disabled){background-color:var(--color-danger-active)}.split-button--danger.split-button--disabled .split-button__action,.split-button--danger.split-button--disabled .split-button__dropdown,.split-button--danger .split-button__action:disabled,.split-button--danger .split-button__dropdown:disabled{background-color:var(--color-danger-disabled)}.split-button--info .split-button__action,.split-button--info .split-button__dropdown{background-color:var(--color-info);color:#fff}.split-button--info .split-button__action:hover:not(:disabled),.split-button--info .split-button__dropdown:hover:not(:disabled){background-color:var(--color-info-hover)}.split-button--info .split-button__action:active:not(:disabled),.split-button--info .split-button__dropdown:active:not(:disabled){background-color:var(--color-info-active)}.split-button--info.split-button--disabled .split-button__action,.split-button--info.split-button--disabled .split-button__dropdown,.split-button--info .split-button__action:disabled,.split-button--info .split-button__dropdown:disabled{background-color:var(--color-info-disabled)}.split-button--warning .split-button__action,.split-button--warning .split-button__dropdown{background-color:var(--color-warning);color:var(--color-warning-emphasis)}.split-button--warning .split-button__action:hover:not(:disabled),.split-button--warning .split-button__dropdown:hover:not(:disabled){background-color:var(--color-warning-hover)}.split-button--warning .split-button__action:active:not(:disabled),.split-button--warning .split-button__dropdown:active:not(:disabled){background-color:var(--color-warning-active)}.split-button--warning.split-button--disabled .split-button__action,.split-button--warning.split-button--disabled .split-button__dropdown,.split-button--warning .split-button__action:disabled,.split-button--warning .split-button__dropdown:disabled{background-color:var(--color-warning-disabled)}.split-button__panel{position:fixed;z-index:var(--z-index-dropdown);min-width:160px;background-color:var(--color-body-bg);border:1px solid var(--color-border);border-radius:var(--radius-base);box-shadow:var(--shadow-lg);padding:var(--spacing-1) 0;outline:none}.split-button__panel-item{display:flex;align-items:center;gap:var(--spacing-2);width:100%;padding:var(--spacing-2) var(--spacing-3);background:none;border:none;cursor:pointer;font-family:var(--font-family-base);font-size:var(--font-size-sm);font-weight:var(--font-weight-regular);color:var(--color-body-color);text-align:left;white-space:nowrap;transition:background-color var(--transition-speed-fast) var(--transition-timing);box-sizing:border-box}.split-button__panel-item:hover:not(:disabled){background-color:var(--color-body-bg-hover)}.split-button__panel-item:active:not(:disabled){background-color:var(--color-body-bg-active)}.split-button__panel-item--disabled,.split-button__panel-item:disabled{color:var(--color-secondary-disabled);cursor:not-allowed;pointer-events:none}.split-button__panel-divider{height:1px;background-color:var(--color-border);margin:var(--spacing-1) 0}";
421
- var A = Object.defineProperty, j = Object.getOwnPropertyDescriptor, _ = (t, e, o, r) => {
422
- for (var i = r > 1 ? void 0 : r ? j(e, o) : e, l = t.length - 1, a; l >= 0; l--)
423
- (a = t[l]) && (i = (r ? a(e, o, i) : a(i)) || i);
424
- return r && i && A(e, o, i), i;
425
- };
426
- let u = class extends w {
427
- constructor() {
428
- super(...arguments), this.label = "Button", this.size = "md", this.theme = "primary", this.disabled = !1, this.dropdownDisabled = !1, this.items = [], this._open = !1, this._onDocClick = (t) => {
429
- this._open && (t.composedPath().includes(this) || this._setOpen(!1));
430
- }, this._onDocKeydown = (t) => {
431
- t.key === "Escape" && this._open && this._setOpen(!1);
432
- };
433
- }
434
- // ── Lifecycle ────────────────────────────────────────────────────────────
435
- connectedCallback() {
436
- super.connectedCallback(), document.addEventListener("click", this._onDocClick, { capture: !0 }), document.addEventListener("keydown", this._onDocKeydown);
437
- }
438
- disconnectedCallback() {
439
- super.disconnectedCallback(), document.removeEventListener("click", this._onDocClick, { capture: !0 }), document.removeEventListener("keydown", this._onDocKeydown), this._destroyPopper();
440
- }
441
- updated(t) {
442
- super.updated(t), t.has("_open") && (this._open ? this._initPopper() : this._destroyPopper());
443
- }
444
- // ── Popper ───────────────────────────────────────────────────────────────
445
- _initPopper() {
446
- !this._dropdownBtn || !this._panel || (this._popper = L(this._dropdownBtn, this._panel, {
447
- placement: "bottom-end",
448
- strategy: "fixed",
449
- modifiers: [
450
- { name: "offset", options: { offset: [0, 4] } },
451
- { name: "preventOverflow", options: { padding: 8 } },
452
- { name: "flip", options: { padding: 8 } }
453
- ]
454
- }));
455
- }
456
- _destroyPopper() {
457
- this._popper?.destroy(), this._popper = void 0;
458
- }
459
- _setOpen(t) {
460
- this._open !== t && (this._open = t, this.dispatchEvent(
461
- new CustomEvent(t ? "dropdown-open" : "dropdown-close", {
462
- bubbles: !0,
463
- composed: !0
464
- })
465
- ));
466
- }
467
- // ── Event handlers ────────────────────────────────────────────────────────
468
- _onActionClick(t) {
469
- t.stopPropagation(), !this.disabled && this.dispatchEvent(new CustomEvent("action", { bubbles: !0, composed: !0 }));
470
- }
471
- _onDropdownClick(t) {
472
- t.stopPropagation(), !(this.disabled || this.dropdownDisabled) && this._setOpen(!this._open);
473
- }
474
- _onItemClick(t) {
475
- t.disabled || (this.dispatchEvent(
476
- new CustomEvent("item-select", {
477
- detail: { value: t.value, item: t },
478
- bubbles: !0,
479
- composed: !0
480
- })
481
- ), this._setOpen(!1));
482
- }
483
- _onKeydown(t, e) {
484
- (t.key === "Enter" || t.key === " ") && (t.preventDefault(), e === "action" ? this._onActionClick(t) : this._onDropdownClick(t));
485
- }
486
- // ── Render ────────────────────────────────────────────────────────────────
487
- _renderPanel() {
488
- if (!this._open) return d;
489
- const t = this.items.length > 0;
490
- return n`
491
- <div
492
- class="split-button__panel"
493
- role="menu"
494
- aria-label="${this.label} options"
495
- >
496
- ${t ? this.items.map((e) => n`
497
- ${e.divider ? n`<div class="split-button__panel-divider" role="separator"></div>` : d}
498
- <button
499
- class="split-button__panel-item ${e.disabled ? "split-button__panel-item--disabled" : ""}"
500
- role="menuitem"
501
- ?disabled=${e.disabled}
502
- @click=${() => this._onItemClick(e)}
503
- >
504
- ${e.icon ? n`<ui-icon name=${e.icon} size="16"></ui-icon>` : d}
505
- <span>${e.label}</span>
506
- </button>
507
- `) : n`<slot name="dropdown"></slot>`}
508
- </div>
509
- `;
510
- }
511
- render() {
512
- const t = this.disabled, e = this.disabled || this.dropdownDisabled;
513
- return n`
514
- <div
515
- class="split-button split-button--${this.size} split-button--${this.theme}
516
- ${this.disabled ? "split-button--disabled" : ""}
517
- ${this._open ? "split-button--open" : ""}"
518
- role="group"
519
- >
520
- <!-- Main action -->
521
- <button
522
- class="split-button__action"
523
- ?disabled=${t}
524
- aria-label=${this.label}
525
- @click=${this._onActionClick}
526
- @keydown=${(o) => this._onKeydown(o, "action")}
527
- type="button"
528
- >
529
- <slot name="prefix"></slot>
530
- <span class="split-button__label">
531
- <slot>${this.label}</slot>
532
- </span>
533
- </button>
534
-
535
- <!-- Dropdown trigger -->
536
- <button
537
- class="split-button__dropdown"
538
- ?disabled=${e}
539
- aria-label="Open dropdown"
540
- aria-haspopup="menu"
541
- aria-expanded=${this._open ? "true" : "false"}
542
- @click=${this._onDropdownClick}
543
- @keydown=${(o) => this._onKeydown(o, "dropdown")}
544
- type="button"
545
- >
546
- <ui-icon
547
- name="uil-angle-down"
548
- size="16"
549
- class="split-button__chevron ${this._open ? "split-button__chevron--open" : ""}"
550
- ></ui-icon>
551
- </button>
552
-
553
- <!-- Dropdown panel -->
554
- ${this._renderPanel()}
555
- </div>
556
- `;
557
- }
558
- };
559
- u.styles = [y`${m(F)}`];
560
- _([
561
- s({ type: String })
562
- ], u.prototype, "label", 2);
563
- _([
564
- s({ type: String })
565
- ], u.prototype, "size", 2);
566
- _([
567
- s({ type: String })
568
- ], u.prototype, "theme", 2);
569
- _([
570
- s({ type: Boolean })
571
- ], u.prototype, "disabled", 2);
572
- _([
573
- s({ type: Boolean })
574
- ], u.prototype, "dropdownDisabled", 2);
575
- _([
576
- s({ attribute: !1 })
577
- ], u.prototype, "items", 2);
578
- _([
579
- C()
580
- ], u.prototype, "_open", 2);
581
- _([
582
- E(".split-button__dropdown")
583
- ], u.prototype, "_dropdownBtn", 2);
584
- _([
585
- E(".split-button__panel")
586
- ], u.prototype, "_panel", 2);
587
- u = _([
588
- x("logosphere-split-button")
589
- ], u);
590
- const N = ":host{display:block}.collapse{font-family:var(--font-family-base);background-color:var(--color-body-bg);overflow:hidden}.collapse--full{border:1px solid var(--color-border);border-radius:var(--radius-base)}.collapse--bottom{border-bottom:1px solid var(--color-border);border-radius:0}.collapse__header{display:flex;align-items:center;gap:var(--spacing-4);padding:var(--spacing-4) var(--spacing-4);cursor:pointer;-webkit-user-select:none;user-select:none;transition:background-color var(--transition-speed-fast) var(--transition-timing);outline:none}.collapse--small .collapse__header{padding:var(--spacing-2) var(--spacing-4)}.collapse--full .collapse__header{border-radius:calc(var(--radius-base) - 1px)}.collapse--full.collapse--expanded .collapse__header{border-radius:calc(var(--radius-base) - 1px) calc(var(--radius-base) - 1px) 0 0}.collapse--full .collapse__header:hover:not(.collapse--disabled .collapse__header){background-color:var(--color-body-bg-hover)}.collapse--bottom .collapse__header:hover:not(.collapse--disabled .collapse__header){background-color:var(--color-body-bg-hover)}.collapse__header:focus-visible{outline:2px solid var(--color-primary);outline-offset:-2px;border-radius:calc(var(--radius-base) - 1px)}.collapse__title{font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);line-height:1.2;letter-spacing:-.16px;color:var(--color-body-color);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.collapse__header-extra:empty{display:none}.collapse__header-extra{display:flex;align-items:center;gap:var(--spacing-2);flex-shrink:0}.collapse__header-spacer{flex:1}.collapse__icon{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;color:var(--color-secondary);transition:transform var(--transition-speed-base) var(--transition-timing)}.collapse__icon--expanded{transform:rotate(180deg)}.collapse__body{height:0;overflow:hidden;transition:height var(--transition-speed-slow) var(--transition-timing)}.collapse__body-inner{padding:0 var(--spacing-4) var(--spacing-4);font-size:var(--font-size-sm);font-weight:var(--font-weight-regular);line-height:var(--line-height-normal);color:var(--color-body-color)}.collapse--bottom .collapse__body-inner{padding-top:var(--spacing-2)}.collapse--disabled .collapse__header{cursor:not-allowed;pointer-events:none}.collapse--disabled .collapse__title,.collapse--disabled .collapse__icon{color:var(--color-secondary-disabled)}.collapse--disabled.collapse--full{border-color:var(--color-secondary-disabled);background-color:var(--color-light-bg)}.collapse--disabled.collapse--bottom{border-bottom-color:var(--color-secondary-disabled);background-color:transparent}";
591
- var K = Object.defineProperty, R = Object.getOwnPropertyDescriptor, v = (t, e, o, r) => {
592
- for (var i = r > 1 ? void 0 : r ? R(e, o) : e, l = t.length - 1, a; l >= 0; l--)
593
- (a = t[l]) && (i = (r ? a(e, o, i) : a(i)) || i);
594
- return r && i && K(e, o, i), i;
595
- };
596
- const k = typeof requestAnimationFrame < "u" ? requestAnimationFrame.bind(window) : (t) => setTimeout(() => t(Date.now()), 16);
597
- let b = class extends w {
598
- constructor() {
599
- super(...arguments), this.title = "", this.expanded = !1, this.disabled = !1, this.iconPosition = "right", this.border = "full", this.size = "default";
600
- }
601
- // ── Toggle ────────────────────────────────────────────────────────────────
602
- _toggle() {
603
- this.disabled || (this.expanded = !this.expanded, this.dispatchEvent(
604
- new CustomEvent("toggle", {
605
- detail: { expanded: this.expanded },
606
- bubbles: !0,
607
- composed: !0
608
- })
609
- ));
610
- }
611
- _onKeydown(t) {
612
- (t.key === "Enter" || t.key === " ") && (t.preventDefault(), this._toggle());
613
- }
614
- // ── Animated height ───────────────────────────────────────────────────────
615
- /**
616
- * CLOSING: Called inside willUpdate — BEFORE Lit re-renders — so we can
617
- * capture and lock the current height before the CSS class is removed.
618
- */
619
- _lockHeightForClose() {
620
- const t = this._body;
621
- if (!t) return;
622
- const e = t.getBoundingClientRect().height;
623
- t.style.height = `${e}px`, t.style.overflow = "hidden";
624
- }
625
- willUpdate(t) {
626
- super.willUpdate(t), t.has("expanded") && !this.expanded && this._lockHeightForClose();
627
- }
628
- updated(t) {
629
- if (super.updated(t), !t.has("expanded") || !this._body || !this._inner) return;
630
- const e = this._body, o = this._inner;
631
- this.expanded ? (e.style.height = "0px", e.style.overflow = "hidden", k(() => {
632
- k(() => {
633
- e.style.height = `${o.scrollHeight}px`, e.addEventListener("transitionend", function r() {
634
- e.style.height = "auto", e.style.overflow = "", e.removeEventListener("transitionend", r);
635
- }, { once: !0 });
636
- });
637
- })) : (e.getBoundingClientRect(), k(() => {
638
- k(() => {
639
- e.style.height = "0px";
640
- });
641
- }));
642
- }
643
- // ── Render ────────────────────────────────────────────────────────────────
644
- _renderIcon() {
645
- return n`
646
- <span class="collapse__icon ${this.expanded ? "collapse__icon--expanded" : ""}">
647
- <ui-icon name="uil-angle-down" size="22"></ui-icon>
648
- </span>
649
- `;
650
- }
651
- render() {
652
- return n`
653
- <div
654
- class="collapse
655
- collapse--${this.border}
656
- collapse--${this.size}
657
- ${this.expanded ? "collapse--expanded" : ""}
658
- ${this.disabled ? "collapse--disabled" : ""}"
659
- >
660
- <!-- Header -->
661
- <div
662
- class="collapse__header"
663
- role="button"
664
- tabindex=${this.disabled ? "-1" : "0"}
665
- aria-expanded=${this.expanded ? "true" : "false"}
666
- aria-disabled=${this.disabled ? "true" : d}
667
- @click=${this._toggle}
668
- @keydown=${this._onKeydown}
669
- >
670
- ${this.iconPosition === "left" ? this._renderIcon() : d}
671
-
672
- <div class="collapse__title">
673
- <slot name="title">${this.title}</slot>
674
- </div>
675
-
676
- <div class="collapse__header-extra">
677
- <slot name="extra"></slot>
678
- </div>
679
-
680
- <!-- pushes extra to title side, icon stays at far right -->
681
- <span class="collapse__header-spacer"></span>
682
-
683
- ${this.iconPosition === "right" ? this._renderIcon() : d}
684
- </div>
685
-
686
- <!-- Body (animated) -->
687
- <div class="collapse__body ${this.expanded ? "collapse__body--visible" : ""}">
688
- <div class="collapse__body-inner">
689
- <!-- slot="body" for explicit usage; default slot as fallback -->
690
- <slot name="body"><slot></slot></slot>
691
- </div>
692
- </div>
693
- </div>
694
- `;
695
- }
696
- };
697
- b.styles = [y`${m(N)}`];
698
- v([
699
- s({ type: String })
700
- ], b.prototype, "title", 2);
701
- v([
702
- s({ type: Boolean, reflect: !0 })
703
- ], b.prototype, "expanded", 2);
704
- v([
705
- s({ type: Boolean, reflect: !0 })
706
- ], b.prototype, "disabled", 2);
707
- v([
708
- s({ type: String })
709
- ], b.prototype, "iconPosition", 2);
710
- v([
711
- s({ type: String })
712
- ], b.prototype, "border", 2);
713
- v([
714
- s({ type: String })
715
- ], b.prototype, "size", 2);
716
- v([
717
- E(".collapse__body-inner")
718
- ], b.prototype, "_inner", 2);
719
- v([
720
- E(".collapse__body")
721
- ], b.prototype, "_body", 2);
722
- b = v([
723
- x("logosphere-collapse")
724
- ], b);
725
- const q = ":host{display:block}.input-group{display:inline-flex;align-items:center;font-family:var(--font-family-base)}.input-group--stretch>::slotted(*){align-self:stretch}.input-group>::slotted(*){flex-shrink:0}:host([block]){display:block}:host([block]) .input-group{display:flex;width:100%}:host([block]) .input-group>::slotted(*){flex:1;min-width:0}";
726
- var G = Object.defineProperty, H = Object.getOwnPropertyDescriptor, P = (t, e, o, r) => {
727
- for (var i = r > 1 ? void 0 : r ? H(e, o) : e, l = t.length - 1, a; l >= 0; l--)
728
- (a = t[l]) && (i = (r ? a(e, o, i) : a(i)) || i);
729
- return r && i && G(e, o, i), i;
730
- };
731
- let S = class extends w {
732
- constructor() {
733
- super(...arguments), this.stretch = !0, this._onFocusIn = (t) => {
734
- const e = t.composedPath();
735
- this._getChildren().forEach((r) => {
736
- const i = e.includes(r);
737
- r.style.zIndex = i ? "1" : "0", r.style.position = "relative";
738
- });
739
- }, this._onFocusOut = (t) => {
740
- const e = t.relatedTarget;
741
- e && this.contains(e) || this._getChildren().forEach((o) => {
742
- o.style.zIndex = "", o.style.position = "";
743
- });
744
- };
745
- }
746
- // ── Lifecycle ─────────────────────────────────────────────────────────────
747
- firstUpdated() {
748
- this._applyGroupStyles(), this.addEventListener("focusin", this._onFocusIn), this.addEventListener("focusout", this._onFocusOut);
749
- }
750
- disconnectedCallback() {
751
- super.disconnectedCallback(), this.removeEventListener("focusin", this._onFocusIn), this.removeEventListener("focusout", this._onFocusOut);
752
- }
753
- // ── Slot change ───────────────────────────────────────────────────────────
754
- _onSlotChange() {
755
- this._applyGroupStyles();
756
- }
757
- // ── Focus handling — raise focused child above siblings ───────────────────
758
- _getChildren() {
759
- return this.shadowRoot?.querySelector("slot")?.assignedElements() ?? [];
760
- }
761
- // ── Style application ─────────────────────────────────────────────────────
762
- _applyGroupStyles() {
763
- const t = this._getChildren(), e = t.length;
764
- e !== 0 && t.forEach((o, r) => {
765
- const i = r === 0, l = r === e - 1;
766
- let a;
767
- e === 1 ? a = "var(--radius-base)" : i ? a = "var(--radius-base) 0 0 var(--radius-base)" : l ? a = "0 var(--radius-base) var(--radius-base) 0" : a = "0", o.style.setProperty("--formfield-border-radius", a), o.style.marginLeft = i ? "" : "-1px";
768
- });
769
- }
770
- // ── Render ────────────────────────────────────────────────────────────────
771
- render() {
772
- return n`
773
- <div class="input-group${this.stretch ? " input-group--stretch" : ""}">
774
- <slot @slotchange=${this._onSlotChange}></slot>
775
- </div>
776
- `;
777
- }
778
- };
779
- S.styles = [y`${m(q)}`];
780
- P([
781
- s({ type: Boolean })
782
- ], S.prototype, "stretch", 2);
783
- S = P([
784
- x("logosphere-input-group")
785
- ], S);
786
- const U = ":host{display:block}.accordion{display:flex;flex-direction:column}.accordion--full{gap:var(--spacing-2)}.accordion--bottom{gap:0}.accordion--full ::slotted(logosphere-collapse),.accordion--full logosphere-collapse{width:100%}";
787
- var V = Object.defineProperty, Y = Object.getOwnPropertyDescriptor, g = (t, e, o, r) => {
788
- for (var i = r > 1 ? void 0 : r ? Y(e, o) : e, l = t.length - 1, a; l >= 0; l--)
789
- (a = t[l]) && (i = (r ? a(e, o, i) : a(i)) || i);
790
- return r && i && V(e, o, i), i;
791
- };
792
- let h = class extends w {
793
- constructor() {
794
- super(...arguments), this.items = [], this.multiple = !1, this.defaultOpen = [], this.border = "full", this.iconPosition = "right", this.size = "default", this._openSet = /* @__PURE__ */ new Set(), this._onSlottedToggle = (t) => {
795
- if (this.items.length > 0 || this.multiple) return;
796
- const e = t.target;
797
- t.detail.expanded && this.querySelectorAll("logosphere-collapse").forEach((o) => {
798
- o !== e && o.expanded && (o.expanded = !1);
799
- });
800
- };
801
- }
802
- // ── Lifecycle ────────────────────────────────────────────────────────────
803
- connectedCallback() {
804
- super.connectedCallback();
805
- const t = Array.isArray(this.defaultOpen) ? this.defaultOpen : [this.defaultOpen];
806
- this._openSet = new Set(t), this.addEventListener("toggle", this._onSlottedToggle);
807
- }
808
- disconnectedCallback() {
809
- super.disconnectedCallback(), this.removeEventListener("toggle", this._onSlottedToggle);
810
- }
811
- // ── Items-based mode ──────────────────────────────────────────────────────
812
- _toggle(t) {
813
- const e = new Set(this._openSet);
814
- e.has(t) ? e.delete(t) : (this.multiple || e.clear(), e.add(t));
815
- const o = this._openSet.has(t);
816
- this._openSet = e, this.dispatchEvent(
817
- new CustomEvent("accordion-change", {
818
- detail: { index: t, expanded: !o, openIndices: [...this._openSet] },
819
- bubbles: !0,
820
- composed: !0
821
- })
822
- );
823
- }
824
- // ── Render ────────────────────────────────────────────────────────────────
825
- render() {
826
- return this.items.length === 0 ? n`
827
- <div class="accordion accordion--${this.border}">
828
- <slot></slot>
829
- </div>
830
- ` : n`
831
- <div class="accordion accordion--${this.border}">
832
- ${this.items.map((t, e) => n`
833
- <logosphere-collapse
834
- title=${t.title}
835
- .expanded=${this._openSet.has(e)}
836
- .disabled=${t.disabled ?? !1}
837
- border=${this.border}
838
- iconPosition=${this.iconPosition}
839
- size=${this.size}
840
- @toggle=${(o) => {
841
- o.stopPropagation(), this._toggle(e);
842
- }}
843
- >
844
- <span slot="body">${t.content}</span>
845
- </logosphere-collapse>
846
- `)}
847
- </div>
848
- `;
849
- }
850
- };
851
- h.styles = [y`${m(U)}`];
852
- g([
853
- s({ attribute: !1 })
854
- ], h.prototype, "items", 2);
855
- g([
856
- s({ type: Boolean })
857
- ], h.prototype, "multiple", 2);
858
- g([
859
- s({ attribute: !1 })
860
- ], h.prototype, "defaultOpen", 2);
861
- g([
862
- s({ type: String })
863
- ], h.prototype, "border", 2);
864
- g([
865
- s({ type: String })
866
- ], h.prototype, "iconPosition", 2);
867
- g([
868
- s({ type: String })
869
- ], h.prototype, "size", 2);
870
- g([
871
- C()
872
- ], h.prototype, "_openSet", 2);
873
- h = g([
874
- x("logosphere-accordion")
875
- ], h);
1
+ import { U as e } from "./ui-icon-BeR-PaPg.js";
2
+ import { B as t } from "./button-CVkIa7M0.js";
3
+ import { L as s } from "./badge-BhINg1p5.js";
4
+ import { C as x } from "./checkbox-CTfbav6M.js";
5
+ import { F as L } from "./formfield-ss2mFweu.js";
6
+ import { S as n } from "./slider-ntLRajQa.js";
7
+ import { S as h } from "./switch-uYVuohJ-.js";
8
+ import { B as u } from "./breadcrumb-BeJqq-5C.js";
9
+ import { C as c } from "./card-C7xXMV3h.js";
10
+ import { L as S } from "./input-N3Z8D7q1.js";
11
+ import { P as B } from "./pagination-CjXvpE2j.js";
12
+ import { P } from "./popover-M5ZcS5rj.js";
13
+ import { S as D } from "./stepper-CZhwgLNp.js";
14
+ import { S as k } from "./split-button-BdBweoip.js";
15
+ import { C as A } from "./collapse-DY6SJ9jS.js";
16
+ import { I as G } from "./input-group-DUPlrpug.js";
17
+ import { A as U } from "./accordion-cDabqwu6.js";
18
+ import { C as q } from "./chip-group-DzfOd6Vw.js";
19
+ import { T as z } from "./text-area-1rALZ0iy.js";
20
+ import { T as H } from "./timepicker-B9l6HN-d.js";
21
+ import { L as K } from "./chatbot-BRfqXYYt.js";
22
+ import { L as O } from "./calendar-C71sj3Ki.js";
23
+ import { C as R } from "./combobox-BR05Tgfd.js";
24
+ import { L as W } from "./datepicker-BFYWQRrJ.js";
25
+ import { D as Y } from "./drawer-DhuBPWHP.js";
26
+ import { D as _ } from "./download-manager-BPg-6Qfg.js";
27
+ import { L as oo, i as ro } from "./leftmenu-Cg57EaSY.js";
28
+ import { M as ao } from "./modal-vSjEpYrG.js";
29
+ import { L as po, a as so, T as mo } from "./toast-container-C5qYjInG.js";
30
+ import { L as fo } from "./tab-Byh4UgFB.js";
31
+ import { T as io } from "./tree-menu-BZ7aBC7R.js";
876
32
  export {
877
- h as Accordion,
878
- ct as Breadcrumb,
879
- et as Button,
880
- bt as Card,
881
- st as Checkbox,
882
- wt as ChipGroup,
883
- b as Collapse,
884
- Dt as Combobox,
885
- Ft as DownloadManager,
886
- It as Drawer,
887
- at as FormField,
888
- S as InputGroup,
889
- jt as LeftMenu,
890
- Nt as LeftMenuItemElement,
891
- it as LogosphereBadge,
892
- zt as LogosphereCalendar,
893
- Et as LogosphereChatBot,
894
- Bt as LogosphereDatePicker,
895
- _t as LogosphereInput,
896
- Yt as LogosphereTab,
897
- Gt as LogosphereToast,
898
- Ht as LogosphereToastContainer,
899
- Rt as Modal,
900
- gt as Pagination,
901
- mt as Popover,
902
- p as Slider,
903
- u as SplitButton,
904
- f as Stepper,
905
- pt as Switch,
906
- $t as TextArea,
907
- St as TimePicker,
908
- Ut as ToastService,
909
- Jt as TreeMenu
33
+ U as Accordion,
34
+ u as Breadcrumb,
35
+ t as Button,
36
+ c as Card,
37
+ x as Checkbox,
38
+ q as ChipGroup,
39
+ A as Collapse,
40
+ R as Combobox,
41
+ _ as DownloadManager,
42
+ Y as Drawer,
43
+ L as FormField,
44
+ G as InputGroup,
45
+ oo as LeftMenu,
46
+ s as LogosphereBadge,
47
+ O as LogosphereCalendar,
48
+ K as LogosphereChatBot,
49
+ W as LogosphereDatePicker,
50
+ S as LogosphereInput,
51
+ fo as LogosphereTab,
52
+ po as LogosphereToast,
53
+ so as LogosphereToastContainer,
54
+ ao as Modal,
55
+ B as Pagination,
56
+ P as Popover,
57
+ n as Slider,
58
+ k as SplitButton,
59
+ D as Stepper,
60
+ h as Switch,
61
+ z as TextArea,
62
+ H as TimePicker,
63
+ mo as ToastService,
64
+ io as TreeMenu,
65
+ e as UiIcon,
66
+ ro as isLeftMenuGroup
910
67
  };