@luzmo/analytics-components-kit 1.0.1-alpha.26 → 1.0.1-alpha.28

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 (165) hide show
  1. package/components/{async-directive-DWRUSKKF-CmOVMf6V.js → async-directive-DWRUSKKF-CPf9l5wJ.js} +1 -1
  2. package/components/{async-directive-DWRUSKKF-D4itZyzc.cjs → async-directive-DWRUSKKF-DWUZeMaj.cjs} +1 -1
  3. package/components/base-D76d76ww-C6YO3slp.cjs +94 -0
  4. package/components/base-D76d76ww-M5t7LVBG.js +758 -0
  5. package/components/{button-base-B7v4eeRh-D3-GH03o.js → button-base-DSHx7XO8-B_LbLx9g.js} +33 -32
  6. package/components/{button-base-B7v4eeRh-BKKUK3x0.cjs → button-base-DSHx7XO8-ChNRhetl.cjs} +4 -4
  7. package/components/{checkbox-mixin-BFGTmw17-C34LMsgu.js → checkbox-mixin-BFGTmw17-C1tjSMaa.js} +2 -2
  8. package/components/{checkbox-mixin-BFGTmw17-CCjGd0nS.cjs → checkbox-mixin-BFGTmw17-DF2p-vSz.cjs} +4 -4
  9. package/components/{directive-helpers-nlQRAaQt-3kEWF2GV.cjs → directive-helpers-nlQRAaQt-DTZp2cFt.cjs} +4 -4
  10. package/components/{directive-helpers-nlQRAaQt-I6T4KZKW.js → directive-helpers-nlQRAaQt-DgSC1Yr2.js} +1 -1
  11. package/components/display-settings/display-settings.d.ts +3 -3
  12. package/components/display-settings/index.cjs +1 -1
  13. package/components/display-settings/index.js +19 -19
  14. package/components/display-settings-binning/display-settings-binning.d.ts +3 -3
  15. package/components/display-settings-binning/index.cjs +2 -2
  16. package/components/display-settings-binning/index.js +20 -20
  17. package/components/display-settings-datetime/display-settings-datetime.d.ts +3 -3
  18. package/components/display-settings-datetime/index.cjs +2 -2
  19. package/components/display-settings-datetime/index.js +22 -22
  20. package/components/display-settings-grand-totals/display-settings-grand-totals.d.ts +3 -3
  21. package/components/display-settings-grand-totals/index.cjs +2 -2
  22. package/components/display-settings-grand-totals/index.js +19 -19
  23. package/components/display-settings-numeric/display-settings-numeric.d.ts +3 -3
  24. package/components/display-settings-numeric/index.cjs +4 -4
  25. package/components/display-settings-numeric/index.js +23 -23
  26. package/components/display-settings-period-over-period/display-settings-period-over-period.d.ts +3 -3
  27. package/components/display-settings-period-over-period/index.cjs +15 -15
  28. package/components/display-settings-period-over-period/index.js +45 -44
  29. package/components/draggable-data-item/draggable-data-item.d.ts +3 -3
  30. package/components/draggable-data-item/index.cjs +4 -4
  31. package/components/draggable-data-item/index.js +6 -6
  32. package/components/draggable-data-item-level/draggable-data-item-level.d.ts +3 -3
  33. package/components/draggable-data-item-level/index.cjs +4 -4
  34. package/components/draggable-data-item-level/index.js +15 -15
  35. package/components/droppable-slot/droppable-slot.d.ts +5 -5
  36. package/components/droppable-slot/index.cjs +2 -2
  37. package/components/droppable-slot/index.js +14 -14
  38. package/components/edit-item/edit-item.d.ts +3 -1
  39. package/components/edit-item/index.cjs +17 -16
  40. package/components/edit-item/index.js +50 -35
  41. package/components/edit-option/edit-option.d.ts +1 -1
  42. package/components/edit-option/helpers/control-markup.d.ts +1 -1
  43. package/components/edit-option/index.cjs +1 -1
  44. package/components/edit-option/index.js +1 -1
  45. package/components/edit-option-action-button-group/index.cjs +2 -2
  46. package/components/edit-option-action-button-group/index.js +6 -6
  47. package/components/edit-option-base/edit-option-base.d.ts +3 -3
  48. package/components/{edit-option-base-qePiIQWd.js → edit-option-base-C0zI8SOd.js} +4 -4
  49. package/components/edit-option-base-D8vs3Bty.cjs +53 -0
  50. package/components/edit-option-color-picker/index.cjs +24 -24
  51. package/components/edit-option-color-picker/index.js +42 -41
  52. package/components/edit-option-multi-language-field/index.cjs +1 -1
  53. package/components/edit-option-multi-language-field/index.js +3 -3
  54. package/components/edit-option-number-field/index.cjs +2 -2
  55. package/components/edit-option-number-field/index.js +3 -3
  56. package/components/edit-option-picker/index.cjs +2 -2
  57. package/components/edit-option-picker/index.js +4 -4
  58. package/components/edit-option-position-picker/index.cjs +2 -2
  59. package/components/edit-option-position-picker/index.js +3 -3
  60. package/components/edit-option-positions-number-field/index.cjs +1 -1
  61. package/components/edit-option-positions-number-field/index.js +5 -5
  62. package/components/edit-option-radio-button-group/index.cjs +4 -4
  63. package/components/edit-option-radio-button-group/index.js +4 -4
  64. package/components/edit-option-slider/index.cjs +3 -3
  65. package/components/edit-option-slider/index.js +8 -8
  66. package/components/edit-option-switch/index.cjs +5 -5
  67. package/components/edit-option-switch/index.js +11 -10
  68. package/components/edit-option-text-field/index.cjs +2 -2
  69. package/components/edit-option-text-field/index.js +3 -3
  70. package/components/focusable-Cu_m_GTh.cjs +42 -0
  71. package/components/focusable-Dw_pMNQL.js +852 -0
  72. package/components/focusable-cj2QhwDT-CvevSkDr.cjs +52 -0
  73. package/components/focusable-cj2QhwDT-DlzfnLn9.js +242 -0
  74. package/components/{if-defined-BSAr_4u4-4Ys8VE7T.js → if-defined-BSAr_4u4-BCnSpSsA.js} +14 -15
  75. package/components/{if-defined-BSAr_4u4-gECNwmTC.cjs → if-defined-BSAr_4u4-CIqREoag.cjs} +3 -3
  76. package/components/{if-defined-8BOch-oC.cjs → if-defined-CF8baNdl.cjs} +2 -2
  77. package/components/{if-defined-Bv6MRdSW.js → if-defined-DbhS35z5.js} +1 -1
  78. package/components/{index-Bt5nP_6w.cjs → index-9hGc0AF6.cjs} +6 -6
  79. package/components/{index-Bee1uunR.js → index-B2LO8M42.js} +11 -12
  80. package/components/{index-w3j1USKK.cjs → index-B3417kqb.cjs} +2 -2
  81. package/components/{index-DUO13KGl.cjs → index-BIauj-BP.cjs} +3 -3
  82. package/components/{index-i8GaIN7i.cjs → index-BIcAxPGg.cjs} +4 -4
  83. package/components/{index-Dc9c_dq-.cjs → index-BLyfPWMW.cjs} +2 -2
  84. package/components/index-BW6jffrL.cjs +117 -0
  85. package/components/{index-CXIT0cYY.js → index-BjdUsH9B.js} +11 -12
  86. package/components/{index-BYfDERr7.js → index-BnVt-dJY.js} +11 -12
  87. package/components/index-Bp6XY9q2.cjs +42 -0
  88. package/components/{index-CdCtJpK9.js → index-C8yP7YJD.js} +8 -9
  89. package/components/index-CAwT4m7K.cjs +127 -0
  90. package/components/{index-CfEn3fIT.js → index-CBNsaHFy.js} +7 -8
  91. package/components/{index-DEVOZNSc.cjs → index-CC53jnJB.cjs} +2 -2
  92. package/components/{index-CdUTqQ3L.cjs → index-CZUy8SUo.cjs} +4 -4
  93. package/components/{index-86cIx1Ql.cjs → index-Cl7wWlXl.cjs} +2 -2
  94. package/components/{index-ByjLd3bT.cjs → index-Cz9Cvq1K.cjs} +6 -6
  95. package/components/{index-B3ve6cAj.js → index-D8GVYuJ-.js} +142 -109
  96. package/components/{index-BH9W0QLt-DBxyzKWK.js → index-DQCvi59x.js} +92 -59
  97. package/components/index-DelXrrBi.js +779 -0
  98. package/components/{index-BUSWsm5N.js → index-Dku2WLRc.js} +7 -8
  99. package/components/{index-aYcu00GB.js → index-Du8Q4hhF.js} +2 -2
  100. package/components/{index-Dn7LyFPv.js → index-Dwp251OJ.js} +3 -3
  101. package/components/{index-BVX_ozT9.js → index-KY89MPqI.js} +5 -6
  102. package/components/{index-BJVxTeoi.cjs → index-b9OSfNB6.cjs} +7 -7
  103. package/components/{index-ymMEPngt.js → index-fheP_kQJ.js} +23 -23
  104. package/components/{index-DVAsMiOm.js → index-fzqLW5XZ.js} +7 -8
  105. package/components/index-hogChFy0.cjs +195 -0
  106. package/components/index-mB-t2zP2.cjs +217 -0
  107. package/components/{index-C8IL2IZ6.js → index-zFIy9Mwl.js} +14 -15
  108. package/components/index.cjs +1 -1
  109. package/components/index.js +457 -54
  110. package/components/{luzmo-icons-BE2T8vWu.js → luzmo-icons-CmY3chvZ.js} +16 -16
  111. package/components/luzmo-icons-lvebt6bp.cjs +31 -0
  112. package/components/{observe-slot-text-ggb4kKgY-DBVrKDBD.cjs → observe-slot-text-ggb4kKgY-5zLP4Vgh.cjs} +2 -2
  113. package/components/{observe-slot-text-ggb4kKgY-o5QFWUeA.js → observe-slot-text-ggb4kKgY-tm0SQCaj.js} +3 -3
  114. package/components/{popover-Bx4ZDHk4-BuzeOeNe.cjs → popover-Bx4ZDHk4-Cw2DKR2x.cjs} +2 -2
  115. package/components/{popover-Bx4ZDHk4-jZJ0Cd59.js → popover-Bx4ZDHk4-HbUSJ86p.js} +6 -7
  116. package/components/{query-assigned-nodes-C76XVPWY-DPC6kOmH.js → query-assigned-nodes-C76XVPWY-DON51dMU.js} +1 -1
  117. package/components/{query-assigned-nodes-C76XVPWY-BcyGjObB.cjs → query-assigned-nodes-C76XVPWY-DzOeAzcN.cjs} +1 -1
  118. package/components/sized-mixin-Cqlxwicw.cjs +20 -0
  119. package/components/sized-mixin-DMuOVsw0.js +65 -0
  120. package/components/slot-menu/index.cjs +1 -1
  121. package/components/slot-menu/index.js +27 -27
  122. package/components/slot-menu/slot-menu.d.ts +3 -3
  123. package/components/slot-menu-list/index.cjs +2 -2
  124. package/components/slot-menu-list/index.js +14 -14
  125. package/components/slot-menu-list/slot-menu-list.d.ts +3 -3
  126. package/components/{state-BFA93Sye.cjs → state-QgHgNZLe.cjs} +2 -2
  127. package/components/{state-Joaryhrg.js → state-e2n-fyrr.js} +1 -1
  128. package/components/streaming-listener-CCalHg57-2AtO4Ho2.cjs +52 -0
  129. package/components/{language-resolution-8yZa5r_P-Bn0bYosv.js → streaming-listener-CCalHg57-CQgWstyf.js} +59 -59
  130. package/components/{task-B8yMzxui.cjs → task-fQFUVV8e.cjs} +2 -2
  131. package/components/{task-Cr9aRIbV.js → task-gE27tBDv.js} +1 -1
  132. package/components/text-field-BTnBJoP9-BuahhcXU.js +430 -0
  133. package/components/text-field-BTnBJoP9-CDMhK3d1.cjs +147 -0
  134. package/components/utils.cjs +1 -1
  135. package/components/utils.js +472 -54
  136. package/custom-elements.json +56 -292
  137. package/index.d.ts +1 -0
  138. package/item-definitions/marker-map/marker-map-options.config.d.ts +1 -1
  139. package/package.json +2 -2
  140. package/utils/base/base.d.ts +16 -0
  141. package/utils/base/focus-visible.d.ts +29 -0
  142. package/utils/base/focusable.d.ts +58 -0
  143. package/utils/base/index.d.ts +4 -0
  144. package/utils/base/sized-mixin.d.ts +17 -0
  145. package/utils/index.d.ts +1 -0
  146. package/utils/themes/index.d.ts +507 -0
  147. package/components/base-D76d76ww-BiajPmzU.cjs +0 -40
  148. package/components/base-D76d76ww-gf0ESLsU.js +0 -45
  149. package/components/edit-option-base-Boz7TNRZ.cjs +0 -53
  150. package/components/index-BH9W0QLt-Cy2sUVJ_.cjs +0 -95
  151. package/components/index-D5LI0odG.js +0 -44
  152. package/components/index-DM_2d78G.js +0 -744
  153. package/components/index-DrLPC6eG.cjs +0 -185
  154. package/components/index-eEpFkbP8.cjs +0 -195
  155. package/components/index-h9T5DPIm.cjs +0 -36
  156. package/components/index-iYpAy-Kg.cjs +0 -95
  157. package/components/index-zuArOtOt.cjs +0 -42
  158. package/components/language-resolution-8yZa5r_P-FqQChUDW.cjs +0 -52
  159. package/components/luzmo-icons-XsFsTAl3.cjs +0 -31
  160. package/components/property-0L4eB11h.cjs +0 -112
  161. package/components/property-B2F7x7Cz.js +0 -1481
  162. package/components/sized-mixin-BxMraZLS-B_y0PzR3.js +0 -82
  163. package/components/sized-mixin-BxMraZLS-DEFWqo8f.cjs +0 -36
  164. package/components/text-field-CvKSS59x-Dn0_1HO7.js +0 -412
  165. package/components/text-field-CvKSS59x-E9LQElL4.cjs +0 -131
@@ -0,0 +1,779 @@
1
+ /*! * A kit of modern Luzmo Web Components for analytics in your web application.
2
+ *
3
+ * Copyright © 2025 Luzmo
4
+ * All rights reserved.
5
+ * Luzmo web components (“Luzmo Web Components”)
6
+ * must be used according to the Luzmo Terms of Service.
7
+ * This license allows users with a current active Luzmo account
8
+ * to use the Luzmo Web Components. This license terminates
9
+ * automatically if a user no longer has an active Luzmo account.
10
+ * Please view the Luzmo Terms of Service at: https://www.luzmo.com/information-pages/terms-of-use.
11
+ *
12
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
13
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
14
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
15
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
16
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
17
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
18
+ * SOFTWARE.
19
+ * */
20
+ import { v as x, H as c, m as w, d as u, w as I, h as C, R as s } from "./base-D76d76ww-M5t7LVBG.js";
21
+ import { _ as $, $ as S, s as E, n as v } from "./directive-helpers-nlQRAaQt-DgSC1Yr2.js";
22
+ import { m as h, d as m } from "./if-defined-BSAr_4u4-BCnSpSsA.js";
23
+ import { p as M } from "./index-BjdUsH9B.js";
24
+ import { r as q } from "./focusable-cj2QhwDT-DlzfnLn9.js";
25
+ import { a as A } from "./index-zFIy9Mwl.js";
26
+ import { c as k } from "./async-directive-DWRUSKKF-CPf9l5wJ.js";
27
+ import "./index-CBNsaHFy.js";
28
+ import { O as b, T as L, I as F } from "./luzmo-icons-CmY3chvZ.js";
29
+ import "./index-DQCvi59x.js";
30
+ /*! * Lucero - The design system for Luzmo.
31
+ *
32
+ * Copyright © 2025 Luzmo
33
+ * All rights reserved.
34
+ * Lucero (“Luzmo Design System”) must be used according to the Luzmo Terms of Service.
35
+ * This license allows users with a current active Luzmo account to use Lucero.
36
+ * This license terminates automatically if a user no longer has an active Luzmo account.
37
+ * Please view the Luzmo Terms of Service at: https://www.luzmo.com/information-pages/terms-of-use.
38
+ *
39
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
40
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
41
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
42
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
43
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
44
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
45
+ * SOFTWARE.
46
+ * */
47
+ /**
48
+ * @license
49
+ * Copyright 2018 Google LLC
50
+ * SPDX-License-Identifier: BSD-3-Clause
51
+ */
52
+ const O = $(class extends S {
53
+ constructor(r) {
54
+ var e;
55
+ if (super(r), r.type !== E.ATTRIBUTE || r.name !== "class" || ((e = r.strings) == null ? void 0 : e.length) > 2) throw Error("`classMap()` can only be used in the `class` attribute and must be the only part in the attribute.");
56
+ }
57
+ render(r) {
58
+ return " " + Object.keys(r).filter((e) => r[e]).join(" ") + " ";
59
+ }
60
+ update(r, [e]) {
61
+ var o, t;
62
+ if (this.st === void 0) {
63
+ this.st = /* @__PURE__ */ new Set(), r.strings !== void 0 && (this.nt = new Set(r.strings.join(" ").split(/\s/).filter((i) => i !== "")));
64
+ for (const i in e) e[i] && !((o = this.nt) != null && o.has(i)) && this.st.add(i);
65
+ return this.render(e);
66
+ }
67
+ const n = r.element.classList;
68
+ for (const i of this.st) i in e || (n.remove(i), this.st.delete(i));
69
+ for (const i in e) {
70
+ const d = !!e[i];
71
+ d === this.st.has(i) || (t = this.nt) != null && t.has(i) || (d ? (n.add(i), this.st.add(i)) : (n.remove(i), this.st.delete(i)));
72
+ }
73
+ return x;
74
+ }
75
+ });
76
+ /*! * Lucero - The design system for Luzmo.
77
+ *
78
+ * Copyright © 2025 Luzmo
79
+ * All rights reserved.
80
+ * Lucero (“Luzmo Design System”) must be used according to the Luzmo Terms of Service.
81
+ * This license allows users with a current active Luzmo account to use Lucero.
82
+ * This license terminates automatically if a user no longer has an active Luzmo account.
83
+ * Please view the Luzmo Terms of Service at: https://www.luzmo.com/information-pages/terms-of-use.
84
+ *
85
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
86
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
87
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
88
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
89
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
90
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
91
+ * SOFTWARE.
92
+ * */
93
+ const B = "(max-width: 743px) and (hover: none) and (pointer: coarse)";
94
+ class T {
95
+ constructor(e, o) {
96
+ this.key = Symbol("match-media-key"), this.matches = !1, this.host = e, this.host.addController(this), this.media = window.matchMedia(o), this.matches = this.media.matches, this.onChange = this.onChange.bind(this), e.addController(this);
97
+ }
98
+ hostConnected() {
99
+ var e;
100
+ (e = this.media) == null || e.addEventListener("change", this.onChange);
101
+ }
102
+ hostDisconnected() {
103
+ var e;
104
+ (e = this.media) == null || e.removeEventListener("change", this.onChange);
105
+ }
106
+ onChange(e) {
107
+ this.matches !== e.matches && (this.matches = e.matches, this.host.requestUpdate(this.key, !this.matches));
108
+ }
109
+ }
110
+ const P = '#button{cursor:pointer;-webkit-user-select:none;user-select:none;font-family:var(--luzmo-button-font-family, var(--luzmo-font-family));-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;line-height:var(--luzmo-button-line-height, var(--luzmo-line-height, 1.3));text-transform:none;vertical-align:top;-webkit-appearance:button;transition:background var(--luzmo-button-animation-duration, var(--luzmo-animation-duration)) ease-out,border-color var(--luzmo-button-animation-duration, var(--luzmo-animation-duration)) ease-out,color var(--luzmo-button-animation-duration, var(--luzmo-animation-duration)) ease-out,box-shadow var(--luzmo-button-animation-duration, var(--luzmo-animation-duration)) ease-out;justify-content:center;align-items:center;margin:0;-webkit-text-decoration:none;text-decoration:none;display:inline-flex;position:relative;overflow:visible}#button::-moz-focus-inner{border-style:none;padding:0}#button:focus{outline:none}#icon{margin-inline-end:var(--luzmo-picker-spacing-text-to-icon, var(--picker-spacing-text-to-icon));font-size:var(--luzmo-picker-font-size, var(--picker-font-size))}@media (forced-colors: active){:host{--highcontrast-picker-focus-indicator-color: Highlight;--highcontrast-picker-border-color-default: ButtonBorder;--highcontrast-picker-border-color-hover: Highlight;--highcontrast-picker-border-color-disabled: GrayText;--highcontrast-picker-content-color-default: ButtonText;--highcontrast-picker-content-color-disabled: GrayText;--highcontrast-picker-background-color: ButtonFace}#button.is-keyboardFocused,#button:focus-visible{--highcontrast-picker-border-color-hover: ButtonText}#button .label,#button:after{forced-color-adjust:none}}#button{box-sizing:border-box;max-inline-size:100%;min-inline-size:calc(var(--picker-minimum-width-multiplier) * var(--luzmo-picker-block-size, var(--picker-block-size)));block-size:var(--luzmo-picker-block-size, var(--picker-block-size));border-width:var(--luzmo-picker-border-width, var(--picker-border-width));border-radius:var(--luzmo-picker-border-radius, var(--picker-border-radius));box-shadow:var(--luzmo-picker-box-shadow, var(--picker-box-shadow));transition:background-color var(--luzmo-picker-animation-duration, var(--picker-animation-duration)),box-shadow var(--luzmo-picker-animation-duration, var(--picker-animation-duration)),border-color var(--luzmo-picker-animation-duration, var(--picker-animation-duration)) ease-in-out;color:var(--highcontrast-picker-content-color-default, var(--luzmo-picker-font-color-default, var(--picker-font-color-default)));background-color:var(--highcontrast-picker-background-color, var(--luzmo-picker-background-color-default, var(--picker-background-color-default)));border-style:solid;border-color:var(--highcontrast-picker-border-color-default, var(--luzmo-picker-border-color-default, var(--picker-border-color-default)));margin-block-start:var(--luzmo-picker-spacing-label-to-picker, var(--picker-spacing-label-to-picker));padding-block:0;padding-inline-start:var(--luzmo-picker-spacing-edge-to-text, var(--picker-spacing-edge-to-text));padding-inline-end:var(--luzmo-picker-spacing-edge-to-disclosure-icon, var(--picker-spacing-edge-to-disclosure-icon));display:flex}#button:after{pointer-events:none;content:"";block-size:calc(100% + var(--luzmo-picker-focus-indicator-gap, var(--picker-focus-indicator-gap)) * 2 + var(--luzmo-picker-border-width, var(--picker-border-width)) * 2);inline-size:calc(100% + var(--luzmo-picker-focus-indicator-gap, var(--picker-focus-indicator-gap)) * 2 + var(--luzmo-picker-border-width, var(--picker-border-width)) * 2);border-style:solid;border-width:var(--luzmo-picker-focus-indicator-thickness, var(--picker-focus-indicator-thickness));border-radius:calc(var(--luzmo-picker-border-radius, var(--picker-border-radius)) + var(--luzmo-picker-focus-indicator-gap, var(--picker-focus-indicator-gap)) + var(--luzmo-picker-border-width, var(--picker-border-width)));border-color:#0000;margin-block-start:calc((var(--luzmo-picker-focus-indicator-gap, var(--picker-focus-indicator-gap)) + var(--luzmo-picker-focus-indicator-thickness, var(--picker-focus-indicator-thickness)) + var(--luzmo-picker-border-width, var(--picker-border-width))) * -1);margin-inline-start:calc((var(--luzmo-picker-focus-indicator-gap, var(--picker-focus-indicator-gap)) + var(--luzmo-picker-focus-indicator-thickness, var(--picker-focus-indicator-thickness)) + var(--luzmo-picker-border-width, var(--picker-border-width))) * -1);position:absolute;inset-block:0;inset-inline:0}#button:active{background-color:var(--highcontrast-picker-background-color, var(--luzmo-picker-background-color-active, var(--picker-background-color-active)));border-color:var(--highcontrast-picker-border-color-default, var(--luzmo-picker-border-active, var(--picker-border-color-active)))}#button:active:after{border-color:#0000}#button.placeholder:active .label{color:var(--highcontrast-picker-content-color-default, var(--luzmo-picker-font-color-active, var(--picker-font-color-active)))}#button.is-keyboardFocused,#button:focus-visible{background-color:var(--highcontrast-picker-background-color, var(--luzmo-picker-background-color-key-focus, var(--picker-background-color-key-focus)));border-color:var(--highcontrast-picker-border-color-default, var(--luzmo-picker-border-color-key-focus, var(--picker-border-color-key-focus)));color:var(--highcontrast-picker-content-color-default, var(--luzmo-picker-font-color-key-focus, var(--picker-font-color-key-focus)));outline:none}#button.is-keyboardFocused:after,#button:focus-visible:after{border-color:var(--highcontrast-picker-focus-indicator-color, var(--luzmo-picker-focus-indicator-color, var(--picker-focus-indicator-color)))}#button.is-keyboardFocused.placeholder,#button.placeholder:focus-visible{color:var(--highcontrast-picker-content-color-default, var(--luzmo-picker-font-color-key-focus, var(--picker-font-color-key-focus)))}#button.is-keyboardFocused .disclosure-icon,#button:focus-visible .disclosure-icon{color:var(--highcontrast-picker-content-color-default, var(--luzmo-picker-icon-color-key-focus, var(--picker-icon-color-key-focus)))}:host([open]) #button:not(:disabled,.is-disabled){color:var(--highcontrast-picker-content-color-default, var(--luzmo-picker-font-color-default-open, var(--picker-font-color-default-open)));background-color:var(--highcontrast-picker-background-color, var(--luzmo-picker-background-color-default-open, var(--picker-background-color-default-open)));border-color:var(--highcontrast-picker-border-color-default, var(--luzmo-picker-border-default-open, var(--picker-border-color-default-open)))}:host([open]) #button:not(:disabled,.is-disabled) .disclosure-icon{color:var(--highcontrast-picker-content-color-default, var(--luzmo-picker-icon-color-default-open, var(--picker-icon-color-default-open)))}:host([invalid]) #button:not(:disabled,.is-disabled){border-color:var(--highcontrast-picker-border-color-default, var(--luzmo-picker-border-color-error-default, var(--picker-border-color-error-default)))}:host([invalid]) #button:not(:disabled,.is-disabled) .validation-icon{color:var(--highcontrast-picker-content-color-default, var(--luzmo-picker-icon-color-error, var(--picker-icon-color-error)))}:host([invalid]) #button:not(:disabled,.is-disabled):active{border-color:var(--highcontrast-picker-border-color-default, var(--luzmo-picker-border-color-error-active, var(--picker-border-color-error-active)))}:host([invalid][open]) #button:not(:disabled,.is-disabled){border-color:var(--highcontrast-picker-border-color-default, var(--luzmo-picker-border-color-error-default-open, var(--picker-border-color-error-default-open)))}:host([invalid]) #button.is-keyboardFocused:not(:disabled,.is-disabled),:host([invalid]) #button:not(:disabled,.is-disabled):focus-visible{border-color:var(--highcontrast-picker-border-color-default, var(--luzmo-picker-border-color-error-key-focus, var(--picker-border-color-error-key-focus)))}:host([pending]) #button .disclosure-icon{color:var(--highcontrast-picker-content-color-disabled, var(--luzmo-picker-icon-color-disabled, var(--picker-icon-color-disabled)))}.icon{flex-shrink:0}.label{white-space:nowrap;font-size:var(--luzmo-picker-font-size, var(--picker-font-size));line-height:var(--luzmo-picker-line-height, var(--picker-line-height));font-weight:var(--luzmo-picker-font-weight, var(--picker-font-weight));text-overflow:ellipsis;text-align:start;flex:auto;overflow:hidden}.label.placeholder{font-weight:var(--luzmo-picker-placeholder-font-weight, var(--picker-font-weight));font-style:var(--luzmo-picker-placeholder-font-style, var(--picker-placeholder-font-style));transition:color var(--luzmo-picker-animation-duration, var(--picker-animation-duration)) ease-in-out;color:var(--highcontrast-picker-content-color-default, var(--luzmo-picker-font-color-default, var(--picker-font-color-default)))}.label.placeholder:active{color:var(--highcontrast-picker-content-color-default, var(--luzmo-picker-font-color-active, var(--picker-font-color-active)))}.disclosure-icon{vertical-align:top;transition:color var(--luzmo-picker-animation-duration, var(--picker-animation-duration)) ease-out;margin-inline-start:var(--luzmo-picker-spacing-icon-to-disclosure-icon, var(--picker-spacing-icon-to-disclosure-icon));color:var(--highcontrast-picker-content-color-default, var(--luzmo-picker-icon-color-default, var(--picker-icon-color-default)));flex-shrink:0;display:inline-block;position:relative}.disclosure-icon:active{color:var(--highcontrast-picker-content-color-default, var(--luzmo-picker-icon-color-active, var(--picker-icon-color-active)))}luzmo-progress-circle,.validation-icon{margin-inline-start:var(--luzmo-picker-spacing-text-to-icon, var(--picker-spacing-text-to-icon))}.icon-container{display:flex;position:relative;height:100%;align-items:center;font-size:var(--luzmo-picker-disclosure-icon-size, var(--picker-disclosure-icon-size))}.icon-container.disclosure-icon{margin-inline-end:0}.label~.disclosure-icon{margin-inline-start:var(--luzmo-picker-spacing-text-to-icon, var(--picker-spacing-text-to-icon))}:host([quiet]) #button{inline-size:auto;min-inline-size:0;padding-inline:var(--luzmo-picker-spacing-edge-to-text-quiet, var(--picker-spacing-edge-to-text-quiet));color:var(--highcontrast-picker-content-color-default, var(--luzmo-picker-font-color-default, var(--picker-font-color-default)));background-color:initial;background-color:var(--highcontrast-picker-background-color, transparent);border:none;border-radius:0;box-shadow:none;margin-block-start:calc(var(--luzmo-picker-spacing-label-to-picker-quiet, var(--picker-spacing-label-to-picker-quiet)) + 1px)}:host([quiet]) #button.label-inline{margin-block-start:0}:host([quiet]) #button .disclosure-icon{margin-inline-end:var(--luzmo-picker-spacing-edge-to-disclosure-icon-quiet, var(--picker-spacing-edge-to-disclosure-icon-quiet))}:host([quiet]) #button:after{block-size:auto;inline-size:auto;border:none}@media (hover: hover){#button:hover{color:var(--highcontrast-picker-content-color-default, var(--luzmo-picker-font-color-hover, var(--picker-font-color-hover)));background-color:var(--highcontrast-picker-background-color, var(--luzmo-picker-background-color-hover, var(--picker-background-color-hover)));border-color:var(--highcontrast-picker-border-color-hover, var(--luzmo-picker-border-color-hover, var(--picker-border-color-hover)))}#button:hover .disclosure-icon{color:var(--highcontrast-picker-content-color-default, var(--luzmo-picker-icon-color-hover, var(--picker-icon-color-hover)))}:host([open]):not([quiet]) #button:not(:disabled,.is-disabled):hover{color:var(--highcontrast-picker-content-color-default, var(--luzmo-picker-font-color-hover-open, var(--picker-font-color-hover-open)));background-color:var(--highcontrast-picker-background-color, var(--luzmo-picker-background-color-hover-open, var(--picker-background-color-hover-open)));border-color:var(--highcontrast-picker-border-color-hover, var(--luzmo-picker-border-color-hover-open, var(--picker-border-color-hover-open)))}:host([open]) #button:not(:disabled,.is-disabled):hover .disclosure-icon{color:var(--highcontrast-picker-content-color-default, var(--luzmo-picker-icon-color-hover-open, var(--picker-icon-color-hover-open)))}:host([invalid]) #button:not(:disabled,.is-disabled):hover{border-color:var(--highcontrast-picker-border-color-hover, var(--luzmo-picker-border-color-error-hover, var(--picker-border-color-error-hover)))}:host([invalid][open]) #button:not(:disabled,.is-disabled):hover{border-color:var(--highcontrast-picker-border-color-hover, var(--luzmo-picker-border-color-error-hover-open, var(--picker-border-color-error-hover-open)))}.label.placeholder:hover{color:var(--highcontrast-picker-content-color-default, var(--luzmo-picker-font-color-hover, var(--picker-font-color-hover)))}:host([quiet]) #button:hover{background-color:initial;background-color:var(--highcontrast-picker-background-color, transparent)!important}}:host([quiet]) #button.is-keyboardFocused,:host([quiet]) #button:focus-visible{background-color:initial;background-color:var(--highcontrast-picker-background-color, transparent)}:host([quiet]) #button.is-keyboardFocused:after,:host([quiet]) #button:focus-visible:after{box-shadow:0 var(--luzmo-picker-focus-indicator-thickness, var(--picker-focus-indicator-thickness)) 0 0 var(--highcontrast-picker-focus-indicator-color, var(--luzmo-picker-focus-indicator-color, var(--picker-focus-indicator-color)));margin:calc((var(--luzmo-picker-focus-indicator-gap, var(--picker-focus-indicator-gap)) + var(--luzmo-picker-border-width, var(--picker-border-width))) * -1) 0;border:none;border-radius:0}:host([quiet][open]) #button,:host([quiet][disabled]) #button#button,:host([quiet]) #button#button:disabled,:host([quiet]) #button:active{background-color:initial;background-color:var(--highcontrast-picker-background-color, transparent)}.label-inline{vertical-align:top;display:inline-flex}:host([disabled]) #button,#button:disabled{cursor:default;background-color:var(--highcontrast-picker-background-color, var(--luzmo-picker-background-color-disabled, var(--picker-background-color-disabled)));border-color:#0000;border-color:var(--highcontrast-picker-border-color-disabled, transparent);color:var(--highcontrast-picker-content-color-disabled, var(--luzmo-picker-font-color-disabled, var(--picker-font-color-disabled)))}:host([disabled]) #button .icon,:host([disabled]) #button .disclosure-icon,:host([disabled]) #button .validation-icon,#button:disabled .icon,#button:disabled .disclosure-icon,#button:disabled .validation-icon{color:var(--highcontrast-picker-content-color-disabled, var(--luzmo-picker-icon-color-disabled, var(--picker-icon-color-disabled)))}:host([disabled]) #button .label.placeholder,#button:disabled .label.placeholder{color:var(--highcontrast-picker-content-color-disabled, var(--luzmo-picker-font-color-disabled, var(--picker-font-color-disabled)))}:host{--picker-box-shadow: 0px 1px 3px 0px rgba(var(--luzmo-border-color-rgb), .06);--picker-background-color-default: var(--luzmo-background-color);--picker-background-color-default-open: var(--luzmo-background-color-hover);--picker-background-color-active: var(--luzmo-background-color-down);--picker-background-color-hover: var(--luzmo-background-color-hover);--picker-background-color-hover-open: var(--luzmo-background-color-down);--picker-background-color-key-focus: var(--luzmo-background-color-down);--picker-border-color-default: var(--luzmo-border-color);--picker-border-color-default-open: var(--luzmo-border-color-hover);--picker-border-color-hover: var(--luzmo-border-color);--picker-border-color-hover-open: var(--luzmo-border-color-hover);--picker-border-color-active: var(--luzmo-border-color);--picker-border-color-key-focus: var(--luzmo-border-color);--picker-border-width: var(--luzmo-border-width);--picker-font-size: var(--luzmo-font-size);--picker-font-weight: var(--luzmo-font-weight);--picker-placeholder-font-style: var(--luzmo-font-style);--picker-line-height: var(--luzmo-line-height);--picker-block-size: 32px;--picker-border-radius: var(--luzmo-border-radius);--picker-spacing-edge-to-text: calc( var(--luzmo-spacing-3) + var(--luzmo-spacing-1) );--picker-spacing-text-to-icon: calc( var(--luzmo-spacing-3) + var(--luzmo-spacing-1) );--picker-spacing-text-to-icon-inline-end: calc( var(--luzmo-spacing-3) + var(--luzmo-spacing-1) );--picker-spacing-icon-to-disclosure-icon: calc( var(--luzmo-spacing-3) + var(--luzmo-spacing-1) );--picker-spacing-edge-to-text-quiet: 0px;--picker-spacing-label-to-picker: 0px;--picker-spacing-label-to-picker-quiet: calc( -1 * var(--luzmo-spacing-3) + var(--luzmo-spacing-1) );--picker-spacing-edge-to-disclosure-icon: calc( var(--luzmo-spacing-3) + var(--luzmo-spacing-1) );--picker-spacing-edge-to-disclosure-icon-quiet: 0px;--picker-animation-duration: var(--luzmo-animation-duration);--picker-font-color-default: var(--luzmo-font-color);--picker-font-color-default-open: var(--luzmo-font-color-hover);--picker-font-color-hover: var(--luzmo-font-color-hover);--picker-font-color-hover-open: var(--luzmo-font-color-down);--picker-font-color-active: var(--luzmo-font-color-focus);--picker-font-color-key-focus: var(--luzmo-font-color-focus);--picker-icon-color-default: var(--luzmo-font-color);--picker-icon-color-default-open: var(--luzmo-font-color-hover);--picker-icon-color-hover: var(--luzmo-font-color-hover);--picker-icon-color-hover-open: var(--luzmo-font-color-hover);--picker-icon-color-active: var(--luzmo-font-color-focus);--picker-icon-color-key-focus: var(--luzmo-font-color-focus);--picker-border-color-error-default: var(--luzmo-negative-color);--picker-border-color-error-default-open: var(--luzmo-negative-color-down);--picker-border-color-error-hover: var(--luzmo-negative-color-hover);--picker-border-color-error-hover-open: var(--luzmo-negative-color-down);--picker-border-color-error-active: var(--luzmo-negative-color-down);--picker-border-color-error-key-focus: var(--luzmo-negative-color-focus);--picker-icon-color-error: var(--luzmo-negative-color);--picker-background-color-disabled: var(--luzmo-background-color-disabled);--picker-font-color-disabled: var(--luzmo-disabled-color);--picker-icon-color-disabled: var(--luzmo-disabled-color);--picker-focus-indicator-gap: var(--luzmo-indicator-gap);--picker-focus-indicator-thickness: var(--luzmo-indicator-width);--picker-focus-indicator-color: var(--luzmo-indicator-color);--picker-disclosure-icon-size: var(--luzmo-font-size-s)}:host([size=s]){--picker-block-size: 28px;--picker-font-size: var(--luzmo-font-size-s);--picker-border-radius: var(--luzmo-border-radius);--picker-spacing-edge-to-text: var(--luzmo-spacing-3);--picker-spacing-text-to-icon: var(--luzmo-spacing-3);--picker-spacing-text-to-icon-inline-end: var(--luzmo-spacing-3);--picker-spacing-icon-to-disclosure-icon: var(--luzmo-spacing-3);--picker-spacing-label-to-picker-quiet: calc(-1 * var(--luzmo-spacing-3));--picker-spacing-edge-to-disclosure-icon: var(--luzmo-spacing-3);--picker-disclosure-icon-size: var(--luzmo-font-size-s)}:host([size=l]){--picker-block-size: 40px;--picker-font-size: var(--luzmo-font-size-l);--picker-border-radius: var(--luzmo-border-radius);--picker-spacing-edge-to-text: var(--luzmo-spacing-4);--picker-spacing-text-to-icon: var(--luzmo-spacing-4);--picker-spacing-text-to-icon-inline-end: var(--luzmo-spacing-4);--picker-spacing-icon-to-disclosure-icon: var(--luzmo-spacing-4);--picker-spacing-label-to-picker-quiet: calc(-1 * var(--luzmo-spacing-4));--picker-spacing-edge-to-disclosure-icon: var(--luzmo-spacing-4);--picker-disclosure-icon-size: var(--luzmo-font-size)}:host([size=xl]){--picker-block-size: 48px;--picker-font-size: var(--luzmo-font-size-xl);--picker-border-radius: var(--luzmo-border-radius-l);--picker-spacing-edge-to-text: calc( var(--luzmo-spacing-4) + var(--luzmo-spacing-1) );--picker-spacing-text-to-icon: calc( var(--luzmo-spacing-4) + var(--luzmo-spacing-1) );--picker-spacing-text-to-icon-inline-end: calc( var(--luzmo-spacing-4) + var(--luzmo-spacing-1) );--picker-spacing-icon-to-disclosure-icon: calc( var(--luzmo-spacing-4) + var(--luzmo-spacing-1) );--picker-spacing-label-to-picker-quiet: calc( -1 * var(--luzmo-spacing-4) + var(--luzmo-spacing-1) );--picker-spacing-edge-to-disclosure-icon: calc( var(--luzmo-spacing-4) + var(--luzmo-spacing-1) );--picker-disclosure-icon-size: var(--luzmo-font-size-l)}:host([variant=highlight]) ::slotted(luzmo-menu-item[selected]){--menu-item-highlight-label-content-color: var(--luzmo-primary-inverse-color);--menu-item-label-icon-color-default: var(--luzmo-primary-inverse-color);--menu-checkmark-display: var(--menu-checkmark-display-hidden);padding-inline-start:var(--luzmo-menu-item-label-inline-edge-to-content, var(--menu-item-label-inline-edge-to-content));background-color:var(--luzmo-menu-item-highlight-label-background-color, var(--menu-item-highlight-label-background-color, var(--luzmo-border-color)))}:host{display:inline-flex;vertical-align:top;max-inline-size:100%;inline-size:var(--luzmo-picker-inline-size, var(--picker-inline-size));min-inline-size:calc(var(--picker-minimum-width-multiplier) * var(--luzmo-picker-block-size, var(--picker-block-size)))}:host([quiet]){width:auto;min-width:0}:host([disabled]){pointer-events:none}#button{width:100%;min-width:100%;max-width:100%}#icon:not([hidden]){display:inline-flex}:host([readonly]) #button{-webkit-user-select:inherit;user-select:inherit}.picker,.validation-icon{flex-shrink:0}luzmo-overlay{pointer-events:none}luzmo-menu{pointer-events:initial}:host>luzmo-menu{display:none}:host([focused]:not([quiet])) #button #label.placeholder{color:var(--picker-placeholder-text-color-key-focus, var(--alias-placeholder-text-color-hover))}#label.visually-hidden~.picker{margin-inline-start:auto}:host([focused]:not([quiet],[pending])) #button .picker{color:var(--picker-icon-color-key-focus, var(--alias-icon-color-focus))}.visually-hidden{border:0;clip:rect(0,0,0,0);clip-path:inset(50%);height:1px;margin:0 -1px -1px 0;overflow:hidden;padding:0;position:absolute;width:1px;white-space:nowrap}luzmo-overlay:not(:defined){display:none}#button.remove-focus-ring-safari-hack:focus-visible{background-color:var(--highcontrast-picker-background-color, var(--luzmo-picker-background-color-default, var(--picker-background-color-default)));border-color:var(--highcontrast-picker-border-color-default, var(--luzmo-picker-border-color-default, var(--picker-border-color-default)));color:var(--highcontrast-picker-content-color-default, var(--luzmo-picker-font-color-default, var(--picker-font-color-default)))}#button.remove-focus-ring-safari-hack:after{border:none}#button.remove-focus-ring-safari-hack:focus-visible:after{box-shadow:none}#button.remove-focus-ring-safari-hack:active{background-color:var(--highcontrast-picker-background-color, var(--luzmo-picker-background-color-default, var(--picker-background-color-default)));border-color:var(--highcontrast-picker-border-color-default, var(--luzmo-picker-border-color-default, var(--picker-border-color-default)));color:var(--highcontrast-picker-content-color-default, var(--luzmo-picker-font-color-default, var(--picker-font-color-default)))}';
111
+ var g = /* @__PURE__ */ ((r) => (r[r.desktop = 0] = "desktop", r[r.mobile = 1] = "mobile", r))(g || {});
112
+ let y = class {
113
+ constructor(e, o) {
114
+ this.target = e, this.host = o, this.preventNextToggle = "no", this.pointerdownState = !1, this.enterKeydownOn = null, this._open = !1, this.target = e, this.host = o, this.host.addController(this), this.init();
115
+ }
116
+ get activelyOpening() {
117
+ return !1;
118
+ }
119
+ get open() {
120
+ return this._open;
121
+ }
122
+ /**
123
+ * Set `open`
124
+ */
125
+ set open(e) {
126
+ if (this._open !== e) {
127
+ if (this._open = e, this.overlay) {
128
+ this.host.open = e;
129
+ return;
130
+ }
131
+ customElements.whenDefined("luzmo-overlay").then(async () => {
132
+ const { LuzmoOverlay: o } = await import("./index-BjdUsH9B.js").then((t) => t.i);
133
+ this.overlay = new o(), this.host.open = !0, this.host.requestUpdate();
134
+ }), import("./index-BjdUsH9B.js").then((o) => o.i);
135
+ }
136
+ }
137
+ get overlay() {
138
+ return this._overlay;
139
+ }
140
+ set overlay(e) {
141
+ e && this.overlay !== e && (this._overlay = e, this.initOverlay());
142
+ }
143
+ releaseDescription() {
144
+ }
145
+ handleBeforetoggle(e) {
146
+ var o;
147
+ e.composedPath()[0] === e.target && (e.newState === "closed" && (this.preventNextToggle === "no" ? this.open = !1 : this.pointerdownState || (o = this.overlay) == null || o.manuallyKeepOpen()), this.open || (this.host.optionsMenu.updateSelectedItemIndex(), this.host.optionsMenu.closeDescendentOverlays()));
148
+ }
149
+ initOverlay() {
150
+ this.overlay && (this.overlay.addEventListener("beforetoggle", (e) => {
151
+ this.handleBeforetoggle(
152
+ e
153
+ );
154
+ }), this.overlay.type = this.host.isMobile.matches ? "modal" : "auto", this.overlay.triggerElement = this.host, this.overlay.placement = this.host.isMobile.matches ? void 0 : this.host.placement, this.overlay.receivesFocus = "true", this.overlay.willPreventClose = this.preventNextToggle !== "no" && this.open, this.overlay.addEventListener(
155
+ "slottable-request",
156
+ this.host.handleSlottableRequest
157
+ ));
158
+ }
159
+ handlePointerdown(e) {
160
+ }
161
+ handleButtonFocus(e) {
162
+ this.preventNextToggle === "maybe" && e.relatedTarget === this.host.optionsMenu && (this.preventNextToggle = "yes");
163
+ }
164
+ handleActivate(e) {
165
+ }
166
+ /* c8 ignore next 3 */
167
+ init() {
168
+ }
169
+ abort() {
170
+ var e;
171
+ this.releaseDescription(), (e = this.abortController) == null || e.abort();
172
+ }
173
+ hostConnected() {
174
+ this.init();
175
+ }
176
+ hostDisconnected() {
177
+ var e;
178
+ (e = this.abortController) == null || e.abort();
179
+ }
180
+ hostUpdated() {
181
+ this.overlay && this.host.dependencyManager.loaded && this.host.open !== this.overlay.open && (this.overlay.willPreventClose = this.preventNextToggle !== "no", this.overlay.open = this.host.open);
182
+ }
183
+ }, D = class extends y {
184
+ constructor() {
185
+ super(...arguments), this.type = g.desktop;
186
+ }
187
+ handlePointerdown(e) {
188
+ if (e.button !== 0 || e.pointerType === "touch")
189
+ return;
190
+ this.pointerdownState = this.open, this.preventNextToggle = "maybe";
191
+ let o = 0;
192
+ const t = () => {
193
+ cancelAnimationFrame(o), o = requestAnimationFrame(() => {
194
+ document.removeEventListener("pointerup", t), document.removeEventListener("pointercancel", t), this.target.removeEventListener("click", t), requestAnimationFrame(() => {
195
+ this.preventNextToggle = "no";
196
+ });
197
+ });
198
+ };
199
+ document.addEventListener("pointerup", t), document.addEventListener("pointercancel", t), this.target.addEventListener("click", t), this.handleActivate();
200
+ }
201
+ handleActivate(e) {
202
+ this.enterKeydownOn && this.enterKeydownOn !== this.target || this.preventNextToggle !== "yes" && ((e == null ? void 0 : e.type) === "click" && this.open !== this.pointerdownState || this.host.toggle());
203
+ }
204
+ init() {
205
+ var e;
206
+ (e = this.abortController) == null || e.abort(), this.abortController = new AbortController();
207
+ const { signal: o } = this.abortController;
208
+ this.target.addEventListener(
209
+ "click",
210
+ (t) => this.handleActivate(t),
211
+ {
212
+ signal: o
213
+ }
214
+ ), this.target.addEventListener(
215
+ "pointerdown",
216
+ (t) => this.handlePointerdown(t),
217
+ { signal: o }
218
+ ), this.target.addEventListener(
219
+ "focus",
220
+ (t) => this.handleButtonFocus(t),
221
+ {
222
+ signal: o
223
+ }
224
+ );
225
+ }
226
+ };
227
+ const p = "remove-focus-ring-safari-hack";
228
+ class _ extends y {
229
+ constructor() {
230
+ super(...arguments), this.type = g.mobile;
231
+ }
232
+ handleClick() {
233
+ this.preventNextToggle === "no" && (this.open = !this.open), this.preventNextToggle = "no";
234
+ }
235
+ handlePointerdown() {
236
+ this.preventNextToggle = this.open ? "yes" : "no", k() && this.target.classList.add(p);
237
+ }
238
+ handleFocusOut() {
239
+ this.host.open || k() && this.target.classList.contains(p) && this.target.classList.remove(p);
240
+ }
241
+ init() {
242
+ var e;
243
+ (e = this.abortController) == null || e.abort(), this.abortController = new AbortController();
244
+ const { signal: o } = this.abortController;
245
+ this.target.addEventListener("click", () => this.handleClick(), {
246
+ signal: o
247
+ }), this.target.addEventListener(
248
+ "pointerdown",
249
+ () => this.handlePointerdown(),
250
+ { signal: o }
251
+ ), this.target.addEventListener("focusout", () => this.handleFocusOut(), {
252
+ signal: o
253
+ });
254
+ }
255
+ }
256
+ const f = {
257
+ desktop: D,
258
+ mobile: _
259
+ };
260
+ /*! * Lucero - The design system for Luzmo.
261
+ *
262
+ * Copyright © 2025 Luzmo
263
+ * All rights reserved.
264
+ * Lucero (“Luzmo Design System”) must be used according to the Luzmo Terms of Service.
265
+ * This license allows users with a current active Luzmo account to use Lucero.
266
+ * This license terminates automatically if a user no longer has an active Luzmo account.
267
+ * Please view the Luzmo Terms of Service at: https://www.luzmo.com/information-pages/terms-of-use.
268
+ *
269
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
270
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
271
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
272
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
273
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
274
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
275
+ * SOFTWARE.
276
+ * */
277
+ class R {
278
+ /**
279
+ * Creates an instance of PendingStateController.
280
+ * @param host - The host element that this controller is attached to.
281
+ */
282
+ constructor(e) {
283
+ this.cachedAriaLabel = null, this.host = e, this.host.addController(this);
284
+ }
285
+ /**
286
+ * Renders the pending state UI.
287
+ * @returns A TemplateResult representing the pending state UI.
288
+ */
289
+ renderPendingState() {
290
+ const e = this.host.pendingLabel || "Pending";
291
+ return this.host.pending ? c`
292
+ <luzmo-progress-circle
293
+ id="loader"
294
+ size="s"
295
+ indeterminate
296
+ aria-valuetext=${e}
297
+ class="progress-circle"
298
+ ></luzmo-progress-circle>
299
+ ` : c``;
300
+ }
301
+ /**
302
+ * Updates the ARIA label of the host element based on the pending state.
303
+ * Manages Cached Aria Label
304
+ */
305
+ updateAriaLabel() {
306
+ const { pending: e, disabled: o, pendingLabel: t } = this.host, n = this.host.getAttribute("aria-label");
307
+ e && !o && n !== t ? (this.cachedAriaLabel = n, this.host.setAttribute("aria-label", t || "Pending")) : (!e || o) && (this.cachedAriaLabel ? this.host.setAttribute("aria-label", this.cachedAriaLabel) : e || this.host.removeAttribute("aria-label"));
308
+ }
309
+ hostConnected() {
310
+ this.cachedAriaLabel || (this.cachedAriaLabel = this.host.getAttribute("aria-label")), this.updateAriaLabel();
311
+ }
312
+ hostUpdated() {
313
+ this.updateAriaLabel();
314
+ }
315
+ }
316
+ /*! * Lucero - The design system for Luzmo.
317
+ *
318
+ * Copyright © 2025 Luzmo
319
+ * All rights reserved.
320
+ * Lucero (“Luzmo Design System”) must be used according to the Luzmo Terms of Service.
321
+ * This license allows users with a current active Luzmo account to use Lucero.
322
+ * This license terminates automatically if a user no longer has an active Luzmo account.
323
+ * Please view the Luzmo Terms of Service at: https://www.luzmo.com/information-pages/terms-of-use.
324
+ *
325
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
326
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
327
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
328
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
329
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
330
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
331
+ * SOFTWARE.
332
+ * */
333
+ var U = Object.defineProperty, K = Object.getOwnPropertyDescriptor, a = (r, e, o, t) => {
334
+ for (var n = t > 1 ? void 0 : t ? K(e, o) : e, i = r.length - 1, d; i >= 0; i--)
335
+ (d = r[i]) && (n = (t ? d(e, o, n) : d(n)) || n);
336
+ return t && n && U(e, o, n), n;
337
+ };
338
+ const N = () => c`
339
+ <div class="disclosure-icon icon">
340
+ ${b(L, { className: "indicator" })}
341
+ </div>
342
+ `, H = () => c`
343
+ <div class="icon-container validation-icon icon">
344
+ ${b(F)}
345
+ </div>
346
+ `, z = "option-picker";
347
+ class l extends w(q, {
348
+ noDefaultSize: !0
349
+ }) {
350
+ /**
351
+ * Initializes the `PendingStateController` for the Picker component.
352
+ * The `PendingStateController` manages the pending state of the Picker.
353
+ */
354
+ constructor() {
355
+ super(), this.disabled = !1, this.focused = !1, this.invalid = !1, this.pending = !1, this.pendingLabel = "Pending", this.open = !1, this.readonly = !1, this.placement = "bottom-start", this.quiet = !1, this.value = "", this.selects = "single", this.dependencyManager = new A(this), this.isMobile = new T(this, B), this.listRole = "listbox", this.itemRole = "option", this.hasRenderedOverlay = !1, this._selfManageFocusElement = !1, this.deprecatedMenu = null, this.selectionPromise = Promise.resolve(), this.willManageSelection = !1, this.recentlyConnected = !1, this.enterKeydownOn = null, this.handleSlottableRequest = (e) => {
356
+ }, this.applyFocusElementLabel = (e, o) => {
357
+ this.appliedLabel = e, this.labelAlignment = o.sideAligned ? "inline" : void 0;
358
+ }, this.handleKeydown = (e) => {
359
+ this.focused = !0, !(e.code !== "ArrowDown" && e.code !== "ArrowUp") && (e.stopPropagation(), e.preventDefault(), this.toggle(!0));
360
+ }, this.renderAngleIcon = () => N(), this.renderAlertIcon = () => H(), this.handleEnterKeydown = (e) => {
361
+ if (e.code === "Enter") {
362
+ if (this.enterKeydownOn) {
363
+ e.preventDefault();
364
+ return;
365
+ }
366
+ this.enterKeydownOn = e.target, this.addEventListener(
367
+ "keyup",
368
+ (o) => {
369
+ o.code === "Enter" && (this.enterKeydownOn = null);
370
+ },
371
+ { once: !0 }
372
+ );
373
+ }
374
+ }, this.pendingStateController = new R(this);
375
+ }
376
+ get selectedItem() {
377
+ return this._selectedItem;
378
+ }
379
+ get selectedItemContent() {
380
+ return this._selectedItemContent || { icon: [], content: [] };
381
+ }
382
+ get selfManageFocusElement() {
383
+ return this._selfManageFocusElement;
384
+ }
385
+ get menuItems() {
386
+ return this.optionsMenu.childItems;
387
+ }
388
+ set selectedItem(e) {
389
+ const o = e == null ? void 0 : e.querySelector('[slot="icon"]');
390
+ if (this.selectedItemContent = e ? e.itemChildren : void 0, e === this.selectedItem)
391
+ return;
392
+ const t = this.selectedItem;
393
+ this._selectedItem = e, this._selectedItemIcon = (o == null ? void 0 : o.icon) ?? void 0, this.requestUpdate("selectedItem", t);
394
+ }
395
+ get focusElement() {
396
+ return this.open ? this.optionsMenu : this.button;
397
+ }
398
+ forceFocusVisible() {
399
+ this.disabled || (this.focused = !0);
400
+ }
401
+ click() {
402
+ this.disabled || this.toggle();
403
+ }
404
+ handleButtonBlur() {
405
+ this.focused = !1;
406
+ }
407
+ focus(e) {
408
+ super.focus(e), !this.disabled && this.focusElement && (this.focused = this.hasVisibleFocusInTree());
409
+ }
410
+ handleHelperFocus() {
411
+ this.focused = !0, this.button.focus();
412
+ }
413
+ handleChange(e) {
414
+ this.strategy && (this.strategy.preventNextToggle = "no");
415
+ const o = e.target, [t] = o.selectedItems;
416
+ e.stopPropagation(), e.cancelable ? this.setValueFromItem(t, e) : (this.open = !1, this.strategy && (this.strategy.open = !1));
417
+ }
418
+ handleButtonFocus(e) {
419
+ var o;
420
+ (o = this.strategy) == null || o.handleButtonFocus(e);
421
+ }
422
+ toggle(e) {
423
+ this.readonly || this.pending || (this.open = e === void 0 ? !this.open : e, this.strategy && (this.strategy.open = this.open), this._selfManageFocusElement = this.open);
424
+ }
425
+ close() {
426
+ this.readonly || this.strategy && (this.open = !1, this.strategy.open = !1);
427
+ }
428
+ bindEvents() {
429
+ var e;
430
+ (e = this.strategy) == null || e.abort(), this.strategy = this.isMobile.matches ? new f.mobile(this.button, this) : new f.desktop(this.button, this);
431
+ }
432
+ connectedCallback() {
433
+ super.connectedCallback(), this.recentlyConnected = this.hasUpdated;
434
+ }
435
+ disconnectedCallback() {
436
+ var e;
437
+ this.close(), (e = this.strategy) == null || e.releaseDescription(), super.disconnectedCallback();
438
+ }
439
+ async setValueFromItem(e, o) {
440
+ this.open = !1, this.strategy && (this.strategy.open = !1);
441
+ const t = this.selectedItem, n = this.value;
442
+ if (this.selectedItem = e, this.value = (e == null ? void 0 : e.value) ?? "", await this.updateComplete, !this.dispatchEvent(
443
+ new CustomEvent("change", {
444
+ bubbles: !0,
445
+ // Allow it to be prevented.
446
+ cancelable: !0,
447
+ composed: !0,
448
+ detail: this.value
449
+ })
450
+ ) && this.selects) {
451
+ o && o.preventDefault(), this.setMenuItemSelected(this.selectedItem, !1), t && this.setMenuItemSelected(t, !0), this.selectedItem = t, this.value = n, this.open = !0, this.strategy && (this.strategy.open = !0);
452
+ return;
453
+ } else if (!this.selects) {
454
+ this.selectedItem = t, this.value = n;
455
+ return;
456
+ }
457
+ t && this.setMenuItemSelected(t, !1), this.setMenuItemSelected(e, !!this.selects);
458
+ }
459
+ setMenuItemSelected(e, o) {
460
+ this.selects != null && (e.selected = o);
461
+ }
462
+ get containerStyles() {
463
+ return this.isMobile.matches ? {
464
+ "--swc-menu-width": "100%"
465
+ } : {};
466
+ }
467
+ set selectedItemContent(e) {
468
+ if (e === this.selectedItemContent)
469
+ return;
470
+ const o = this.selectedItemContent;
471
+ this._selectedItemContent = e, this.requestUpdate("selectedItemContent", o);
472
+ }
473
+ handleTooltipSlotchange(e) {
474
+ this.tooltipEl = e.target.assignedElements()[0];
475
+ }
476
+ renderLabelContent(e) {
477
+ return this.value && this.selectedItem ? e : c`
478
+ <slot name="label" id="label">
479
+ <span aria-hidden=${h(this.appliedLabel ? void 0 : "true")}>
480
+ ${this.label}
481
+ </span>
482
+ </slot>
483
+ `;
484
+ }
485
+ get buttonContent() {
486
+ const e = {
487
+ "visually-hidden": this.icons === "only" && !!this.value,
488
+ placeholder: !this.value,
489
+ label: !0
490
+ }, o = this.appliedLabel || this.label, t = c` <div id="icon" ?hidden=${this.icons === "none"}>
491
+ ${this._selectedItemIcon ? b(this._selectedItemIcon) : u}
492
+ </div>`;
493
+ return [
494
+ c`
495
+ ${this._selectedItemIcon ? t : u}
496
+ <div
497
+ id=${h(this.value && this.selectedItem ? "label" : void 0)}
498
+ class=${O(e)}
499
+ >
500
+ ${this.renderLabelContent(this.selectedItemContent.content)}
501
+ </div>
502
+ ${this.value && this.selectedItem ? c`
503
+ <div
504
+ aria-hidden="true"
505
+ class="visually-hidden"
506
+ id="applied-label"
507
+ >
508
+ ${o}
509
+ <slot name="label"></slot>
510
+ </div>
511
+ ` : c` <span hidden id="applied-label">${o}</span> `}
512
+ ${this.invalid && !this.pending ? c` ${this.renderAlertIcon()} ` : u}
513
+ ${this.pendingStateController.renderPendingState()}
514
+ ${this.readonly ? u : this.renderAngleIcon()}
515
+ <slot
516
+ aria-hidden="true"
517
+ name="tooltip"
518
+ id="tooltip"
519
+ @slotchange=${this.handleTooltipSlotchange}
520
+ ></slot>
521
+ `
522
+ ];
523
+ }
524
+ renderOverlay(e) {
525
+ var o, t, n;
526
+ if (((o = this.strategy) == null ? void 0 : o.overlay) === void 0)
527
+ return e;
528
+ const i = this.renderContainer(e);
529
+ return I(i, (t = this.strategy) == null ? void 0 : t.overlay, {
530
+ host: this
531
+ }), (n = this.strategy) == null ? void 0 : n.overlay;
532
+ }
533
+ get renderDescriptionSlot() {
534
+ return c`
535
+ <div id=${z}>
536
+ <slot name="description"></slot>
537
+ </div>
538
+ `;
539
+ }
540
+ // a helper to throw focus to the button is needed because Safari
541
+ // won't include buttons in the tab order even with tabindex="0"
542
+ render() {
543
+ return this.tooltipEl && (this.tooltipEl.disabled = this.open), c`
544
+ <span
545
+ id="focus-helper"
546
+ tabindex=${this.focused || this.open ? "-1" : "0"}
547
+ @focus=${this.handleHelperFocus}
548
+ aria-describedby=${z}
549
+ ></span>
550
+ <button
551
+ aria-controls=${h(this.open ? "menu" : void 0)}
552
+ aria-describedby="tooltip"
553
+ aria-expanded=${this.open ? "true" : "false"}
554
+ aria-haspopup="true"
555
+ aria-labelledby="loader icon label applied-label"
556
+ id="button"
557
+ class=${h(
558
+ this.labelAlignment ? `label-${this.labelAlignment}` : void 0
559
+ )}
560
+ @blur=${this.handleButtonBlur}
561
+ @keydown=${{
562
+ handleEvent: this.handleEnterKeydown,
563
+ capture: !0
564
+ }}
565
+ ?disabled=${this.disabled}
566
+ tabindex="-1"
567
+ >
568
+ ${this.buttonContent}
569
+ </button>
570
+ ${this.renderMenu} ${this.renderDescriptionSlot}
571
+ `;
572
+ }
573
+ update(e) {
574
+ var o, t;
575
+ this.selects && (this.selects = "single"), e.has("disabled") && this.disabled && this.strategy && (this.open = !1, this.strategy.open = !1), e.has("pending") && this.pending && this.strategy && (this.open = !1, this.strategy.open = !1), e.has("value") && this.shouldScheduleManageSelection(), this.hasUpdated || (this.deprecatedMenu = this.querySelector(":scope > luzmo-menu"), (o = this.deprecatedMenu) == null || o.toggleAttribute("ignore", !0), (t = this.deprecatedMenu) == null || t.setAttribute("selects", "inherit")), super.update(e);
576
+ }
577
+ bindButtonKeydownListener() {
578
+ this.button.addEventListener("keydown", this.handleKeydown);
579
+ }
580
+ updated(e) {
581
+ super.updated(e), e.has("open") && (this.strategy.open = this.open);
582
+ }
583
+ firstUpdated(e) {
584
+ super.firstUpdated(e), this.bindButtonKeydownListener(), this.bindEvents();
585
+ }
586
+ get dismissHelper() {
587
+ return c`
588
+ <div class="visually-hidden">
589
+ <button
590
+ tabindex="-1"
591
+ aria-label="Dismiss"
592
+ @click=${this.close}
593
+ ></button>
594
+ </div>
595
+ `;
596
+ }
597
+ renderContainer(e) {
598
+ const o = c`
599
+ ${this.dismissHelper} ${e} ${this.dismissHelper}
600
+ `;
601
+ return this.dependencyManager.add("luzmo-popover"), import("./index-Du8Q4hhF.js"), c`
602
+ <luzmo-popover
603
+ id="popover"
604
+ size=${this.size}
605
+ role="presentation"
606
+ style=${M(this.containerStyles)}
607
+ placement=${this.placement}
608
+ >
609
+ ${o}
610
+ </luzmo-popover>
611
+ `;
612
+ }
613
+ get renderMenu() {
614
+ const e = c`
615
+ <luzmo-menu
616
+ aria-labelledby="applied-label"
617
+ @change=${this.handleChange}
618
+ id="menu"
619
+ @keydown=${{
620
+ handleEvent: this.handleEnterKeydown,
621
+ capture: !0
622
+ }}
623
+ @scroll=${this.onScroll}
624
+ role=${this.listRole}
625
+ .selects=${this.selects}
626
+ .selected=${this.value ? [this.value] : []}
627
+ size=${this.size}
628
+ @luzmo-menu-item-added-or-updated=${this.shouldManageSelection}
629
+ >
630
+ <slot @slotchange=${this.shouldScheduleManageSelection}></slot>
631
+ </luzmo-menu>
632
+ `;
633
+ return this.hasRenderedOverlay = this.hasRenderedOverlay || this.focused || this.open || !!this.deprecatedMenu, this.hasRenderedOverlay ? (this.dependencyManager.loaded && this.dependencyManager.add("luzmo-overlay"), this.renderOverlay(e)) : e;
634
+ }
635
+ shouldScheduleManageSelection(e) {
636
+ !this.willManageSelection && (!e || e.target.getRootNode().host === this) && (this.willManageSelection = !0, requestAnimationFrame(() => {
637
+ requestAnimationFrame(() => {
638
+ this.manageSelection();
639
+ });
640
+ }));
641
+ }
642
+ shouldManageSelection() {
643
+ this.willManageSelection || (this.willManageSelection = !0, this.manageSelection());
644
+ }
645
+ async manageSelection() {
646
+ if (this.selects == null)
647
+ return;
648
+ this.selectionPromise = new Promise(
649
+ (o) => this.selectionResolver = o
650
+ );
651
+ let e;
652
+ await this.optionsMenu.updateComplete, this.recentlyConnected && (await new Promise((o) => requestAnimationFrame(() => o(!0))), this.recentlyConnected = !1), this.menuItems.forEach((o) => {
653
+ this.value === o.value && !o.disabled ? e = o : o.selected = !1;
654
+ }), e ? (e.selected = !!this.selects, this.selectedItem = e) : (this.value = "", this.selectedItem = void 0), this.open && (await this.optionsMenu.updateComplete, this.optionsMenu.updateSelectedItemIndex()), this.selectionResolver(), this.willManageSelection = !1;
655
+ }
656
+ async getUpdateComplete() {
657
+ const e = await super.getUpdateComplete();
658
+ return await this.selectionPromise, e;
659
+ }
660
+ onScroll() {
661
+ this.dispatchEvent(
662
+ new Event("scroll", {
663
+ cancelable: !0,
664
+ composed: !0
665
+ })
666
+ );
667
+ }
668
+ }
669
+ a([
670
+ v()
671
+ ], l.prototype, "appliedLabel", 2);
672
+ a([
673
+ m("#button")
674
+ ], l.prototype, "button", 2);
675
+ a([
676
+ s({ type: Boolean, reflect: !0 })
677
+ ], l.prototype, "disabled", 2);
678
+ a([
679
+ s({ type: Boolean, reflect: !0 })
680
+ ], l.prototype, "focused", 2);
681
+ a([
682
+ s({ type: String, reflect: !0 })
683
+ ], l.prototype, "icons", 2);
684
+ a([
685
+ s({ type: String, reflect: !0 })
686
+ ], l.prototype, "variant", 2);
687
+ a([
688
+ s({ type: Boolean, reflect: !0 })
689
+ ], l.prototype, "invalid", 2);
690
+ a([
691
+ s({ type: Boolean, reflect: !0 })
692
+ ], l.prototype, "pending", 2);
693
+ a([
694
+ s({ type: String, attribute: "pending-label" })
695
+ ], l.prototype, "pendingLabel", 2);
696
+ a([
697
+ s()
698
+ ], l.prototype, "label", 2);
699
+ a([
700
+ s({ type: Boolean, reflect: !0 })
701
+ ], l.prototype, "open", 2);
702
+ a([
703
+ s({ type: Boolean, reflect: !0 })
704
+ ], l.prototype, "readonly", 2);
705
+ a([
706
+ v()
707
+ ], l.prototype, "labelAlignment", 2);
708
+ a([
709
+ m("luzmo-menu")
710
+ ], l.prototype, "optionsMenu", 2);
711
+ a([
712
+ m("luzmo-overlay")
713
+ ], l.prototype, "overlayElement", 2);
714
+ a([
715
+ s()
716
+ ], l.prototype, "placement", 2);
717
+ a([
718
+ s({ type: Boolean, reflect: !0 })
719
+ ], l.prototype, "quiet", 2);
720
+ a([
721
+ s({ type: String })
722
+ ], l.prototype, "value", 2);
723
+ a([
724
+ s({ attribute: !1 })
725
+ ], l.prototype, "selectedItem", 1);
726
+ a([
727
+ v()
728
+ ], l.prototype, "selectedItemContent", 1);
729
+ class j extends l {
730
+ constructor() {
731
+ super(...arguments), this.handleKeydown = (e) => {
732
+ const { code: o } = e;
733
+ if (this.focused = !0, !o.startsWith("Arrow") || this.readonly || this.pending)
734
+ return;
735
+ if (o === "ArrowUp" || o === "ArrowDown") {
736
+ this.toggle(!0), e.preventDefault();
737
+ return;
738
+ }
739
+ e.preventDefault();
740
+ const t = this.selectedItem ? this.menuItems.indexOf(this.selectedItem) : -1, n = t < 0 || o === "ArrowRight" ? 1 : -1;
741
+ let i = t + n;
742
+ for (; this.menuItems[i] && this.menuItems[i].disabled; )
743
+ i += n;
744
+ !this.menuItems[i] || this.menuItems[i].disabled || (!this.value || i !== t) && this.setValueFromItem(this.menuItems[i]);
745
+ };
746
+ }
747
+ static get styles() {
748
+ return [C(P)];
749
+ }
750
+ get containerStyles() {
751
+ const e = super.containerStyles;
752
+ return this.quiet || (e["min-width"] = `${this.offsetWidth}px`), e;
753
+ }
754
+ }
755
+ /*! * Lucero - The design system for Luzmo.
756
+ *
757
+ * Copyright © 2025 Luzmo
758
+ * All rights reserved.
759
+ * Lucero (“Luzmo Design System”) must be used according to the Luzmo Terms of Service.
760
+ * This license allows users with a current active Luzmo account to use Lucero.
761
+ * This license terminates automatically if a user no longer has an active Luzmo account.
762
+ * Please view the Luzmo Terms of Service at: https://www.luzmo.com/information-pages/terms-of-use.
763
+ *
764
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
765
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
766
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
767
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
768
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
769
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
770
+ * SOFTWARE.
771
+ * */
772
+ const V = () => {
773
+ if (typeof document < "u" && !document.querySelector("style[data-luzmo-vars]")) {
774
+ const r = document.createElement("style");
775
+ r.setAttribute("data-luzmo-vars", ""), r.textContent = 'html{--luzmo-animation-duration: 0.15s;--luzmo-border-color: rgba(var(--luzmo-border-color-rgb), 0.1);--luzmo-border-color-hover: rgba(var(--luzmo-border-color-rgb), 0.15);--luzmo-border-color-down: rgba(var(--luzmo-border-color-rgb), 0.3);--luzmo-border-color-focus: rgba(var(--luzmo-border-color-rgb), 0.15);--luzmo-border-color-rgb: 0, 0, 0;--luzmo-border-color-full: rgb(180, 180, 180);--luzmo-border-color-full-hover: rgb(140, 140, 140);--luzmo-border-color-full-down: rgb(110, 110, 110);--luzmo-border-color-full-focus: rgb(140, 140, 140);--luzmo-border-color-disabled: #dddddd;--luzmo-border-radius: 6px;--luzmo-border-radius-s: 4px;--luzmo-border-radius-l: 8px;--luzmo-border-radius-xl: 12px;--luzmo-border-radius-full: 999rem;--luzmo-background-color: #ffffff;--luzmo-background-color-rgb: 255, 255, 255;--luzmo-background-color-disabled: #eeeeee;--luzmo-background-color-hover: #f0f0fc;--luzmo-background-color-down: #f1f1ff;--luzmo-background-color-focus: #f0f0fc;--luzmo-background-color-highlight: rgb(240, 240, 240);--luzmo-background-color-highlight-disabled: rgb(245, 245, 245);--luzmo-background-color-highlight-hover: rgb(225, 225, 225);--luzmo-background-color-highlight-down: rgb(215, 215, 215);--luzmo-background-color-highlight-focus: rgb(225, 225, 225);--luzmo-border-width: 1px;--luzmo-font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", Helvetica, Arial, sans-serif;--luzmo-font-size-xs: 10px;--luzmo-font-size-s: 12px;--luzmo-font-size-m: 14px;--luzmo-font-size: 14px;--luzmo-font-size-l: 16px;--luzmo-font-size-xl: 18px;--luzmo-font-size-xxl: 20px;--luzmo-font-style: normal;--luzmo-line-height: normal;--luzmo-font-weight: 400;--luzmo-font-weight-semibold: 500;--luzmo-font-weight-bold: 600;--luzmo-font-color: #333;--luzmo-font-color-hard: #000;--luzmo-font-color-disabled: var(--luzmo-disabled-color);--luzmo-font-color-extra-dimmed: #888;--luzmo-font-color-hover: #333;--luzmo-font-color-down: #111;--luzmo-font-color-focus: #333;--luzmo-primary: #4434ff;--luzmo-primary-hover: #4234e4;--luzmo-primary-down: #392cc7;--luzmo-primary-focus: #4234e4;--luzmo-primary-inverse-color: #ffffff;--luzmo-primary-rgb: 68, 52, 255;--luzmo-secondary: #ff00ff;--luzmo-secondary-hover: #e309e3;--luzmo-secondary-down: #c711c7;--luzmo-secondary-focus: #e309e3;--luzmo-secondary-inverse-color: #ffffff;--luzmo-secondary-rgb: 255, 0, 255;--luzmo-negative-color: #ca221c;--luzmo-negative-color-hover: #b3241f;--luzmo-negative-color-down: #9f231f;--luzmo-negative-color-focus: #b3241f;--luzmo-negative-color-rgb: 202, 34, 28;--luzmo-positive-color: rgb(20, 150, 101);--luzmo-positive-color-hover: rgb(17, 128, 86);--luzmo-positive-color-down: rgb(16, 105, 71);--luzmo-positive-color-focus: rgb(17, 128, 86);--luzmo-positive-color-rgb: 20, 150, 101;--luzmo-selected-color: rgb(110, 110, 110);--luzmo-selected-color-hover: rgb(70, 70, 70);--luzmo-selected-color-down: rgb(40, 40, 40);--luzmo-selected-color-focus: rgb(70, 70, 70);--luzmo-selected-color-hard: #1e1e1e;--luzmo-selected-color-hard-hover: rgb(0, 0, 0);--luzmo-selected-color-hard-down: rgb(0, 0, 0);--luzmo-selected-color-hard-focus: rgb(0, 0, 0);--luzmo-informative-color: #1a77e9;--luzmo-informative-color-rgb: 26, 119, 233;--luzmo-disabled-color: #aaaaaa;--luzmo-spacing-1: 2px;--luzmo-spacing-2: 4px;--luzmo-spacing-3: 8px;--luzmo-spacing-4: 12px;--luzmo-spacing-5: 16px;--luzmo-indicator-gap: 2px;--luzmo-indicator-width: 1px;--luzmo-indicator-color: var(--luzmo-primary);--luzmo-component-height-xxs: 20px;--luzmo-component-height-xs: 24px;--luzmo-component-height-s: 28px;--luzmo-component-height: 32px;--luzmo-component-height-l: 40px;--luzmo-component-height-xl: 48px;--luzmo-component-height-xxl: 64px;--luzmo-icon-size-xxs: 12px;--luzmo-icon-size-xs: 14px;--luzmo-icon-size-s: 16px;--luzmo-icon-size-m: 18px;--luzmo-icon-size-l: 20px;--luzmo-icon-size-xl: 22px;--luzmo-icon-size-xxl: 32px}', document.head.appendChild(r);
776
+ }
777
+ };
778
+ V();
779
+ customElements.get("luzmo-picker") || customElements.define("luzmo-picker", j);