@mhmo91/schmancy 0.2.137 → 0.2.139

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 (239) hide show
  1. package/dist/{animated-text-ecIFvYnn.cjs → animated-text-BNbldkLi.cjs} +2 -2
  2. package/dist/{animated-text-ecIFvYnn.cjs.map → animated-text-BNbldkLi.cjs.map} +1 -1
  3. package/dist/{animated-text-CrvJd3kI.js → animated-text-D5Ki7KHu.js} +3 -3
  4. package/dist/{animated-text-CrvJd3kI.js.map → animated-text-D5Ki7KHu.js.map} +1 -1
  5. package/dist/animated-text.cjs +1 -1
  6. package/dist/animated-text.js +1 -1
  7. package/dist/area.cjs +1 -1
  8. package/dist/{area.component-CDSYvib9.cjs → area.component-Bm6rP9MT.cjs} +2 -2
  9. package/dist/{area.component-CDSYvib9.cjs.map → area.component-Bm6rP9MT.cjs.map} +1 -1
  10. package/dist/{area.component-CiPSa0bx.js → area.component-D8b2RJic.js} +3 -3
  11. package/dist/{area.component-CiPSa0bx.js.map → area.component-D8b2RJic.js.map} +1 -1
  12. package/dist/area.js +1 -1
  13. package/dist/{autocomplete-DUnDQ2oL.js → autocomplete-BAvxzIpj.js} +3 -3
  14. package/dist/{autocomplete-DUnDQ2oL.js.map → autocomplete-BAvxzIpj.js.map} +1 -1
  15. package/dist/{autocomplete-B6MhvNt5.cjs → autocomplete-nZaZaU-s.cjs} +2 -2
  16. package/dist/{autocomplete-B6MhvNt5.cjs.map → autocomplete-nZaZaU-s.cjs.map} +1 -1
  17. package/dist/autocomplete.cjs +1 -1
  18. package/dist/autocomplete.js +1 -1
  19. package/dist/busy.cjs +1 -1
  20. package/dist/busy.js +1 -1
  21. package/dist/button.cjs +1 -1
  22. package/dist/button.js +1 -1
  23. package/dist/card.cjs +1 -1
  24. package/dist/card.js +1 -1
  25. package/dist/{checkbox-J5g5-HL5.js → checkbox-BPXqV2sc.js} +2 -2
  26. package/dist/{checkbox-J5g5-HL5.js.map → checkbox-BPXqV2sc.js.map} +1 -1
  27. package/dist/{checkbox-BMhNQaoT.cjs → checkbox-yuvdefd4.cjs} +2 -2
  28. package/dist/{checkbox-BMhNQaoT.cjs.map → checkbox-yuvdefd4.cjs.map} +1 -1
  29. package/dist/checkbox.cjs +1 -1
  30. package/dist/checkbox.js +1 -1
  31. package/dist/{chips-DgWPC6UQ.js → chips-B8bgmplU.js} +3 -3
  32. package/dist/{chips-DgWPC6UQ.js.map → chips-B8bgmplU.js.map} +1 -1
  33. package/dist/{chips-B7awLzfA.cjs → chips-CPmmFVGK.cjs} +2 -2
  34. package/dist/{chips-B7awLzfA.cjs.map → chips-CPmmFVGK.cjs.map} +1 -1
  35. package/dist/chips.cjs +1 -1
  36. package/dist/chips.js +1 -1
  37. package/dist/components.cjs +1 -1
  38. package/dist/components.js +1 -1
  39. package/dist/content-drawer.cjs +1 -1
  40. package/dist/content-drawer.js +1 -1
  41. package/dist/{date-range-BjaaJ0pr.cjs → date-range-Mh7mi060.cjs} +2 -2
  42. package/dist/{date-range-BjaaJ0pr.cjs.map → date-range-Mh7mi060.cjs.map} +1 -1
  43. package/dist/{date-range-BzvRuUCd.js → date-range-XD3eHmKe.js} +3 -3
  44. package/dist/{date-range-BzvRuUCd.js.map → date-range-XD3eHmKe.js.map} +1 -1
  45. package/dist/date-range.cjs +1 -1
  46. package/dist/date-range.js +1 -1
  47. package/dist/{delay-BcZ4lweB.js → delay-BEh5HtKm.js} +2 -2
  48. package/dist/{delay-BcZ4lweB.js.map → delay-BEh5HtKm.js.map} +1 -1
  49. package/dist/{delay-B2DIVzor.cjs → delay-Bz8DPPRF.cjs} +2 -2
  50. package/dist/{delay-B2DIVzor.cjs.map → delay-Bz8DPPRF.cjs.map} +1 -1
  51. package/dist/delay.cjs +1 -1
  52. package/dist/delay.js +1 -1
  53. package/dist/{divider-DLHP5ww7.js → divider-BBy32B6r.js} +3 -3
  54. package/dist/{divider-DLHP5ww7.js.map → divider-BBy32B6r.js.map} +1 -1
  55. package/dist/{divider-BU8EvBDb.cjs → divider-Dxmbn2j0.cjs} +2 -2
  56. package/dist/{divider-BU8EvBDb.cjs.map → divider-Dxmbn2j0.cjs.map} +1 -1
  57. package/dist/divider.cjs +1 -1
  58. package/dist/divider.js +1 -1
  59. package/dist/extra.cjs +1 -1
  60. package/dist/extra.js +1 -1
  61. package/dist/{flex-Blf6Ofbf.js → flex-BbafQvop.js} +2 -2
  62. package/dist/{flex-Blf6Ofbf.js.map → flex-BbafQvop.js.map} +1 -1
  63. package/dist/{flex-GSt62KLf.cjs → flex-C64fxWPl.cjs} +2 -2
  64. package/dist/{flex-GSt62KLf.cjs.map → flex-C64fxWPl.cjs.map} +1 -1
  65. package/dist/{form-BlmYn9Gm.js → form-CjB8ReAw.js} +2 -2
  66. package/dist/{form-BlmYn9Gm.js.map → form-CjB8ReAw.js.map} +1 -1
  67. package/dist/{form-BRUb7oaL.cjs → form-WOoGhjQx.cjs} +2 -2
  68. package/dist/{form-BRUb7oaL.cjs.map → form-WOoGhjQx.cjs.map} +1 -1
  69. package/dist/form.cjs +1 -1
  70. package/dist/form.js +1 -1
  71. package/dist/{icon-CvHEvS3y.js → icon-1L_noI_n.js} +3 -3
  72. package/dist/{icon-CvHEvS3y.js.map → icon-1L_noI_n.js.map} +1 -1
  73. package/dist/{icon-CNKtj0po.cjs → icon-D3FyfFuy.cjs} +2 -2
  74. package/dist/{icon-CNKtj0po.cjs.map → icon-D3FyfFuy.cjs.map} +1 -1
  75. package/dist/{icon-button-jhBUfDOy.cjs → icon-button-Bfd0mfs9.cjs} +2 -2
  76. package/dist/{icon-button-jhBUfDOy.cjs.map → icon-button-Bfd0mfs9.cjs.map} +1 -1
  77. package/dist/{icon-button-CNSkPj8v.js → icon-button-Dji1Ck9p.js} +3 -3
  78. package/dist/{icon-button-CNSkPj8v.js.map → icon-button-Dji1Ck9p.js.map} +1 -1
  79. package/dist/icons.cjs +1 -1
  80. package/dist/icons.js +1 -1
  81. package/dist/index.cjs +1 -1
  82. package/dist/index.js +35 -35
  83. package/dist/{input-Bnlc7q1-.js → input-DIgPPDf4.js} +2 -2
  84. package/dist/{input-Bnlc7q1-.js.map → input-DIgPPDf4.js.map} +1 -1
  85. package/dist/{input-WZPg6Zyo.cjs → input-leV-sK9y.cjs} +2 -2
  86. package/dist/{input-WZPg6Zyo.cjs.map → input-leV-sK9y.cjs.map} +1 -1
  87. package/dist/input.cjs +1 -1
  88. package/dist/input.js +1 -1
  89. package/dist/layout.cjs +1 -1
  90. package/dist/layout.js +1 -1
  91. package/dist/{list-B0V3904H.cjs → list-8U7mFDmR.cjs} +2 -2
  92. package/dist/{list-B0V3904H.cjs.map → list-8U7mFDmR.cjs.map} +1 -1
  93. package/dist/{list-DSrPItAo.js → list-DiARM4rT.js} +2 -2
  94. package/dist/{list-DSrPItAo.js.map → list-DiARM4rT.js.map} +1 -1
  95. package/dist/list.cjs +1 -1
  96. package/dist/list.js +1 -1
  97. package/dist/{litElement.mixin-C90TPiZq.js → litElement.mixin-BOOn7U5Z.js} +2 -2
  98. package/dist/{litElement.mixin-C90TPiZq.js.map → litElement.mixin-BOOn7U5Z.js.map} +1 -1
  99. package/dist/{litElement.mixin-DEcupxqH.cjs → litElement.mixin-DBsn92pk.cjs} +2 -2
  100. package/dist/{litElement.mixin-DEcupxqH.cjs.map → litElement.mixin-DBsn92pk.cjs.map} +1 -1
  101. package/dist/{menu-DVg0me-Z.cjs → menu-Br6X3wmF.cjs} +2 -2
  102. package/dist/{menu-DVg0me-Z.cjs.map → menu-Br6X3wmF.cjs.map} +1 -1
  103. package/dist/{menu-DxFpgrEo.js → menu-xQx6N8LO.js} +3 -3
  104. package/dist/{menu-DxFpgrEo.js.map → menu-xQx6N8LO.js.map} +1 -1
  105. package/dist/menu.cjs +1 -1
  106. package/dist/menu.js +1 -1
  107. package/dist/nav-drawer.cjs +1 -1
  108. package/dist/nav-drawer.js +1 -1
  109. package/dist/notification.cjs +1 -1
  110. package/dist/notification.js +1 -1
  111. package/dist/option-C1ZeDVrC.cjs +44 -0
  112. package/dist/option-C1ZeDVrC.cjs.map +1 -0
  113. package/dist/option-Dx2AWiaj.js +76 -0
  114. package/dist/option-Dx2AWiaj.js.map +1 -0
  115. package/dist/option.cjs +1 -1
  116. package/dist/option.js +1 -1
  117. package/dist/{outlet-Dywm1KLm.cjs → outlet-CI05jyjr.cjs} +2 -2
  118. package/dist/{outlet-Dywm1KLm.cjs.map → outlet-CI05jyjr.cjs.map} +1 -1
  119. package/dist/{outlet-DQjVq0Kq.js → outlet-CScugbm9.js} +2 -2
  120. package/dist/{outlet-DQjVq0Kq.js.map → outlet-CScugbm9.js.map} +1 -1
  121. package/dist/{payment-card-form-gIWXy3Ip.js → payment-card-form-CJ4YDbUJ.js} +3 -3
  122. package/dist/{payment-card-form-gIWXy3Ip.js.map → payment-card-form-CJ4YDbUJ.js.map} +1 -1
  123. package/dist/{payment-card-form-Cc2DabCH.cjs → payment-card-form-liiHN2py.cjs} +2 -2
  124. package/dist/{payment-card-form-Cc2DabCH.cjs.map → payment-card-form-liiHN2py.cjs.map} +1 -1
  125. package/dist/{radio-group-DR0xDQE0.cjs → radio-group-9pg4qU4Q.cjs} +2 -2
  126. package/dist/{radio-group-DR0xDQE0.cjs.map → radio-group-9pg4qU4Q.cjs.map} +1 -1
  127. package/dist/{radio-group-DCWGTqxt.js → radio-group-C067Z6Sx.js} +2 -2
  128. package/dist/{radio-group-DCWGTqxt.js.map → radio-group-C067Z6Sx.js.map} +1 -1
  129. package/dist/radio-group.cjs +1 -1
  130. package/dist/radio-group.js +1 -1
  131. package/dist/{schmancy-steps-container-TWU-9ccf.js → schmancy-steps-container-CXOh8tn7.js} +2 -2
  132. package/dist/{schmancy-steps-container-TWU-9ccf.js.map → schmancy-steps-container-CXOh8tn7.js.map} +1 -1
  133. package/dist/{schmancy-steps-container-DPHQE-ro.cjs → schmancy-steps-container-W8iUrjjQ.cjs} +2 -2
  134. package/dist/{schmancy-steps-container-DPHQE-ro.cjs.map → schmancy-steps-container-W8iUrjjQ.cjs.map} +1 -1
  135. package/dist/select-CbiLYVGN.js +254 -0
  136. package/dist/select-CbiLYVGN.js.map +1 -0
  137. package/dist/select-Ebp9Y6T_.cjs +56 -0
  138. package/dist/select-Ebp9Y6T_.cjs.map +1 -0
  139. package/dist/select.cjs +1 -1
  140. package/dist/select.js +1 -1
  141. package/dist/{sheet-DxISa8C4.js → sheet-BZ4d5wLR.js} +3 -3
  142. package/dist/{sheet-DxISa8C4.js.map → sheet-BZ4d5wLR.js.map} +1 -1
  143. package/dist/{sheet-CUaEKes1.cjs → sheet-DoWympTj.cjs} +2 -2
  144. package/dist/{sheet-CUaEKes1.cjs.map → sheet-DoWympTj.cjs.map} +1 -1
  145. package/dist/sheet.cjs +1 -1
  146. package/dist/sheet.js +1 -1
  147. package/dist/{slider-CoE8-QZu.cjs → slider-BGzs57Nd.cjs} +2 -2
  148. package/dist/{slider-CoE8-QZu.cjs.map → slider-BGzs57Nd.cjs.map} +1 -1
  149. package/dist/{slider-Bhe4Czfi.js → slider-Bwt5zt67.js} +3 -3
  150. package/dist/{slider-Bhe4Czfi.js.map → slider-Bwt5zt67.js.map} +1 -1
  151. package/dist/slider.cjs +1 -1
  152. package/dist/slider.js +1 -1
  153. package/dist/{spinner-HOq-q6Zc.js → spinner-B6Yx9jX1.js} +3 -3
  154. package/dist/{spinner-HOq-q6Zc.js.map → spinner-B6Yx9jX1.js.map} +1 -1
  155. package/dist/{spinner-CML-HvNV.cjs → spinner-vlXVxDki.cjs} +2 -2
  156. package/dist/{spinner-CML-HvNV.cjs.map → spinner-vlXVxDki.cjs.map} +1 -1
  157. package/dist/steps.cjs +1 -1
  158. package/dist/steps.js +1 -1
  159. package/dist/{surface-OugFX3ib.js → surface-C2lcwsKJ.js} +2 -2
  160. package/dist/{surface-OugFX3ib.js.map → surface-C2lcwsKJ.js.map} +1 -1
  161. package/dist/{surface-Um7BaPSm.cjs → surface-CXwP49Mi.cjs} +2 -2
  162. package/dist/{surface-Um7BaPSm.cjs.map → surface-CXwP49Mi.cjs.map} +1 -1
  163. package/dist/surface.cjs +1 -1
  164. package/dist/surface.js +1 -1
  165. package/dist/{table-CBne4wUs.cjs → table-2-DnKwRo.cjs} +2 -2
  166. package/dist/{table-CBne4wUs.cjs.map → table-2-DnKwRo.cjs.map} +1 -1
  167. package/dist/{table-CseR3HIA.js → table-CWfF0shQ.js} +2 -2
  168. package/dist/{table-CseR3HIA.js.map → table-CWfF0shQ.js.map} +1 -1
  169. package/dist/table.cjs +1 -1
  170. package/dist/table.js +1 -1
  171. package/dist/{tabs-group-PWISxfo8.cjs → tabs-group-CPUDkhJ_.cjs} +2 -2
  172. package/dist/{tabs-group-PWISxfo8.cjs.map → tabs-group-CPUDkhJ_.cjs.map} +1 -1
  173. package/dist/{tabs-group-C-on3Rac.js → tabs-group-DXMbbWuO.js} +2 -2
  174. package/dist/{tabs-group-C-on3Rac.js.map → tabs-group-DXMbbWuO.js.map} +1 -1
  175. package/dist/tabs.cjs +1 -1
  176. package/dist/tabs.js +1 -1
  177. package/dist/tailwind.mixin-C8nuH8uq.js +43 -0
  178. package/dist/{tailwind.mixin-CbiMTKLU.js.map → tailwind.mixin-C8nuH8uq.js.map} +1 -1
  179. package/dist/tailwind.mixin-CWsvBayE.cjs +2 -0
  180. package/dist/{tailwind.mixin-BmxNqOqA.cjs.map → tailwind.mixin-CWsvBayE.cjs.map} +1 -1
  181. package/dist/teleport.cjs +1 -1
  182. package/dist/{teleport.component-XhMjct6V.cjs → teleport.component-BMTMnjJi.cjs} +2 -2
  183. package/dist/{teleport.component-XhMjct6V.cjs.map → teleport.component-BMTMnjJi.cjs.map} +1 -1
  184. package/dist/{teleport.component-M5VhHS4A.js → teleport.component-tDzioCA7.js} +37 -37
  185. package/dist/{teleport.component-M5VhHS4A.js.map → teleport.component-tDzioCA7.js.map} +1 -1
  186. package/dist/teleport.js +1 -1
  187. package/dist/{textarea-DHZCUvUp.cjs → textarea-08VY-gi0.cjs} +2 -2
  188. package/dist/{textarea-DHZCUvUp.cjs.map → textarea-08VY-gi0.cjs.map} +1 -1
  189. package/dist/{textarea-OEv7hsLY.js → textarea-KY-H0XE9.js} +2 -2
  190. package/dist/{textarea-OEv7hsLY.js.map → textarea-KY-H0XE9.js.map} +1 -1
  191. package/dist/textarea.cjs +1 -1
  192. package/dist/textarea.js +1 -1
  193. package/dist/{theme-button-Dijtr8Sc.js → theme-button-Cp3y37Mz.js} +2 -2
  194. package/dist/{theme-button-Dijtr8Sc.js.map → theme-button-Cp3y37Mz.js.map} +1 -1
  195. package/dist/{theme-button-DNtPZwGS.cjs → theme-button-TChFwWi6.cjs} +2 -2
  196. package/dist/{theme-button-DNtPZwGS.cjs.map → theme-button-TChFwWi6.cjs.map} +1 -1
  197. package/dist/theme-button.cjs +1 -1
  198. package/dist/theme-button.js +1 -1
  199. package/dist/theme.cjs +1 -1
  200. package/dist/{theme.component-n0et0tIn.cjs → theme.component-Bgh-j4WN.cjs} +2 -2
  201. package/dist/{theme.component-n0et0tIn.cjs.map → theme.component-Bgh-j4WN.cjs.map} +1 -1
  202. package/dist/{theme.component-BhEF_SWG.js → theme.component-tcsmGB6n.js} +2 -2
  203. package/dist/{theme.component-BhEF_SWG.js.map → theme.component-tcsmGB6n.js.map} +1 -1
  204. package/dist/theme.js +1 -1
  205. package/dist/{timezone-DFyNYrmY.js → timezone-Cob3Zs1V.js} +3 -3
  206. package/dist/{timezone-DFyNYrmY.js.map → timezone-Cob3Zs1V.js.map} +1 -1
  207. package/dist/{timezone-B7nXYi7P.cjs → timezone-DwTl04Fb.cjs} +2 -2
  208. package/dist/{timezone-B7nXYi7P.cjs.map → timezone-DwTl04Fb.cjs.map} +1 -1
  209. package/dist/{tree-ClFhhopx.cjs → tree-CBYb1k5W.cjs} +2 -2
  210. package/dist/{tree-ClFhhopx.cjs.map → tree-CBYb1k5W.cjs.map} +1 -1
  211. package/dist/{tree-C8YcLdiU.js → tree-DR5qkGYr.js} +2 -2
  212. package/dist/{tree-C8YcLdiU.js.map → tree-DR5qkGYr.js.map} +1 -1
  213. package/dist/tree.cjs +1 -1
  214. package/dist/tree.js +1 -1
  215. package/dist/{typewriter-D2YH76ZX.js → typewriter-BJk9hiPU.js} +4 -4
  216. package/dist/{typewriter-D2YH76ZX.js.map → typewriter-BJk9hiPU.js.map} +1 -1
  217. package/dist/{typewriter-Dm7fQEVD.cjs → typewriter-DKXGVYPg.cjs} +2 -2
  218. package/dist/{typewriter-Dm7fQEVD.cjs.map → typewriter-DKXGVYPg.cjs.map} +1 -1
  219. package/dist/typewriter.cjs +1 -1
  220. package/dist/typewriter.js +1 -1
  221. package/dist/{typography-DoIXw3IV.js → typography-B3-y3gWb.js} +2 -2
  222. package/dist/{typography-DoIXw3IV.js.map → typography-B3-y3gWb.js.map} +1 -1
  223. package/dist/{typography-BX_aZJQh.cjs → typography-Czz5ZTwN.cjs} +2 -2
  224. package/dist/{typography-BX_aZJQh.cjs.map → typography-Czz5ZTwN.cjs.map} +1 -1
  225. package/dist/typography.cjs +1 -1
  226. package/dist/typography.js +1 -1
  227. package/package.json +1 -1
  228. package/types/src/option/option.d.ts +31 -11
  229. package/types/src/select/select.d.ts +5 -0
  230. package/dist/option-BibX0jkK.cjs +0 -18
  231. package/dist/option-BibX0jkK.cjs.map +0 -1
  232. package/dist/option-Cx3TIp0I.js +0 -75
  233. package/dist/option-Cx3TIp0I.js.map +0 -1
  234. package/dist/select-Cqeb0qCm.js +0 -234
  235. package/dist/select-Cqeb0qCm.js.map +0 -1
  236. package/dist/select-DqumJi31.cjs +0 -57
  237. package/dist/select-DqumJi31.cjs.map +0 -1
  238. package/dist/tailwind.mixin-BmxNqOqA.cjs +0 -2
  239. package/dist/tailwind.mixin-CbiMTKLU.js +0 -43
@@ -1,75 +0,0 @@
1
- import "rxjs";
2
- import "lit/directives/class-map.js";
3
- import "lit/directives/style-map.js";
4
- import { T as p } from "./tailwind.mixin-CbiMTKLU.js";
5
- import { html as u } from "lit";
6
- import { property as c, customElement as d } from "lit/decorators.js";
7
- var h = Object.defineProperty, b = Object.getOwnPropertyDescriptor, a = (e, t, s, l) => {
8
- for (var n, o = l > 1 ? void 0 : l ? b(t, s) : t, r = e.length - 1; r >= 0; r--) (n = e[r]) && (o = (l ? n(t, s, o) : n(o)) || o);
9
- return l && o && h(t, s, o), o;
10
- };
11
- let i = class extends p() {
12
- constructor() {
13
- super(...arguments), this.value = "", this.selected = !1;
14
- }
15
- updateLabelFromSlot() {
16
- if (!this.label) {
17
- const e = this.getSlotContent();
18
- e && (this.label = e);
19
- }
20
- }
21
- connectedCallback() {
22
- var e;
23
- (e = super.connectedCallback) == null || e.call(this), this.updateLabelFromSlot();
24
- }
25
- firstUpdated() {
26
- var t;
27
- const e = (t = this.shadowRoot) == null ? void 0 : t.querySelector("slot:not([name])");
28
- e && e.addEventListener("slotchange", () => {
29
- this.updateLabelFromSlot();
30
- });
31
- }
32
- handleOptionClick() {
33
- this.updateLabelFromSlot(), this.dispatchEvent(new CustomEvent("click", { detail: { value: this.value, label: this.label ?? "" }, bubbles: !0, composed: !0 }));
34
- }
35
- getSlotContent() {
36
- var s;
37
- const e = (s = this.shadowRoot) == null ? void 0 : s.querySelector("slot:not([name])");
38
- if (!e) return "";
39
- const t = e.assignedNodes();
40
- return t.length === 0 ? "" : t.map((l) => {
41
- var n;
42
- return ((n = l.textContent) == null ? void 0 : n.trim()) || "";
43
- }).join(" ").trim();
44
- }
45
- focus() {
46
- var e, t;
47
- (t = (e = this.shadowRoot) == null ? void 0 : e.querySelector("li")) == null || t.focus();
48
- }
49
- render() {
50
- const e = { "bg-surface-container outline-secondary-default focus-visible:outline-solid focus-visible:outline-2 focus-visible:-outline-offset-2 rounded-md focus-visible:outline-secondary-default": !0, "font-semibold relative cursor-pointer py-2 px-3": !0, "bg-secondary-container text-secondery-onContainer": this.selected };
51
- return u`
52
- <li
53
- tabindex="0"
54
- class="${this.classMap(e)}"
55
- role="option"
56
- @click=${(t) => {
57
- t.stopPropagation(), t.preventDefault(), this.handleOptionClick();
58
- }}
59
- @keydown=${(t) => {
60
- t.key !== "Enter" && t.key !== " " || (t.stopPropagation(), t.preventDefault(), this.handleOptionClick());
61
- }}
62
- >
63
- <div class="${this.classMap({ "duration-500 transition-opacity": !0, "hover:bg-surface-on opacity-[0.08] cursor-pointer absolute inset-0": !0 })}"></div>
64
- <sch-flex class="text-start" align="center" justify="between" flow="row">
65
- <slot class="self-start" @slotchange=${() => this.updateLabelFromSlot()}></slot>
66
- <slot name="support">
67
- <span></span>
68
- </slot>
69
- </sch-flex>
70
- </li>
71
- `;
72
- }
73
- };
74
- a([c({ type: String, reflect: !0 })], i.prototype, "value", 2), a([c({ type: String, reflect: !0, attribute: "label" })], i.prototype, "label", 2), a([c({ type: Boolean })], i.prototype, "selected", 2), i = a([d("schmancy-option")], i);
75
- //# sourceMappingURL=option-Cx3TIp0I.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"option-Cx3TIp0I.js","sources":["../src/option/option.ts"],"sourcesContent":["import { TailwindElement } from '@mixins/index'\nimport { html } from 'lit'\nimport { customElement, property } from 'lit/decorators.js'\n\nexport type SchmancyOptionChangeEvent = CustomEvent<{\n\tvalue: string\n\tlabel: string\n}>\n\n@customElement('schmancy-option')\nexport default class SchmancyOption extends TailwindElement() {\n\t@property({ type: String, reflect: true }) value: string = ''\n\t@property({ type: String, reflect: true, attribute: 'label' }) label: string | undefined\n\t@property({ type: Boolean }) selected: boolean = false\n\n\t// Add a method to update the label with slot content\n\tprivate updateLabelFromSlot() {\n\t\tif (!this.label) {\n\t\t\tconst slotContent = this.getSlotContent()\n\t\t\tif (slotContent) {\n\t\t\t\tthis.label = slotContent\n\t\t\t}\n\t\t}\n\t}\n\n\t// Connect to lifecycle to update label when element is connected\n\tconnectedCallback() {\n\t\tsuper.connectedCallback?.()\n\t\tthis.updateLabelFromSlot()\n\t}\n\n\t// Listen for slot changes to update label\n\tfirstUpdated() {\n\t\tconst slot = this.shadowRoot?.querySelector('slot:not([name])') as HTMLSlotElement\n\t\tif (slot) {\n\t\t\tslot.addEventListener('slotchange', () => {\n\t\t\t\tthis.updateLabelFromSlot()\n\t\t\t})\n\t\t}\n\t}\n\n\tprivate handleOptionClick() {\n\t\t// Update label from slot if not set\n\t\tthis.updateLabelFromSlot()\n\n\t\tthis.dispatchEvent(\n\t\t\tnew CustomEvent<SchmancyOptionChangeEvent['detail']>('click', {\n\t\t\t\tdetail: {\n\t\t\t\t\tvalue: this.value,\n\t\t\t\t\tlabel: this.label ?? '',\n\t\t\t\t},\n\t\t\t\tbubbles: true,\n\t\t\t\tcomposed: true,\n\t\t\t}),\n\t\t)\n\t}\n\n\t// Get content from the default slot\n\tprivate getSlotContent(): string {\n\t\tconst slot = this.shadowRoot?.querySelector('slot:not([name])') as HTMLSlotElement\n\t\tif (!slot) return ''\n\n\t\tconst assignedNodes = slot.assignedNodes()\n\t\tif (assignedNodes.length === 0) return ''\n\n\t\t// Combine the text content of all assigned nodes\n\t\treturn assignedNodes\n\t\t\t.map(node => node.textContent?.trim() || '')\n\t\t\t.join(' ')\n\t\t\t.trim()\n\t}\n\n\t// override focus method to focus the native element\n\tfocus() {\n\t\tthis.shadowRoot?.querySelector('li')?.focus()\n\t}\n\n\tprotected render() {\n\t\t// Apply highlight styles if `this.selected` is true\n\t\tconst classes = {\n\t\t\t'bg-surface-container outline-secondary-default focus-visible:outline-solid focus-visible:outline-2 focus-visible:-outline-offset-2 rounded-md focus-visible:outline-secondary-default':\n\t\t\t\ttrue,\n\t\t\t'font-semibold relative cursor-pointer py-2 px-3': true,\n\t\t\t'bg-secondary-container text-secondery-onContainer': this.selected,\n\t\t}\n\t\tconst stateLayerClasses = {\n\t\t\t'duration-500 transition-opacity': true,\n\t\t\t'hover:bg-surface-on opacity-[0.08] cursor-pointer absolute inset-0': true,\n\t\t}\n\t\treturn html`\n\t\t\t<li\n\t\t\t\ttabindex=\"0\"\n\t\t\t\tclass=\"${this.classMap(classes)}\"\n\t\t\t\trole=\"option\"\n\t\t\t\t@click=${(e: MouseEvent) => {\n\t\t\t\t\te.stopPropagation()\n\t\t\t\t\te.preventDefault()\n\t\t\t\t\tthis.handleOptionClick()\n\t\t\t\t}}\n\t\t\t\t@keydown=${(e: KeyboardEvent) => {\n\t\t\t\t\tif (e.key === 'Enter' || e.key === ' ') {\n\t\t\t\t\t\te.stopPropagation()\n\t\t\t\t\t\te.preventDefault()\n\t\t\t\t\t\tthis.handleOptionClick()\n\t\t\t\t\t}\n\t\t\t\t}}\n\t\t\t>\n\t\t\t\t<div class=\"${this.classMap(stateLayerClasses)}\"></div>\n\t\t\t\t<sch-flex class=\"text-start\" align=\"center\" justify=\"between\" flow=\"row\">\n\t\t\t\t\t<slot class=\"self-start\" @slotchange=${() => this.updateLabelFromSlot()}></slot>\n\t\t\t\t\t<slot name=\"support\">\n\t\t\t\t\t\t<span></span>\n\t\t\t\t\t</slot>\n\t\t\t\t</sch-flex>\n\t\t\t</li>\n\t\t`\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-option': SchmancyOption\n\t}\n}\n"],"names":["SchmancyOption","TailwindElement","constructor","super","arguments","this","value","selected","label","slotContent","getSlotContent","connectedCallback","updateLabelFromSlot","slot","shadowRoot","querySelector","addEventListener","dispatchEvent","CustomEvent","detail","bubbles","composed","assignedNodes","length","map","node","textContent","trim","join","focus","render","classes","html","classMap","e","stopPropagation","preventDefault","handleOptionClick","key","__decorateClass","property","type","String","reflect","prototype","attribute","Boolean","customElement"],"mappings":";;;;;;;;;;AAUA,IAAqBA,IAArB,cAA4CC;EAA5C,cAAAC;AAAAC,UAAAC,GAAAA,SAAAA,GAC4DC,KAAAC,QAAA,IAEVD,KAAAE,WAAAA;AAAAA,EAAA;AAAA,EAGzC;AACH,QAACF,CAAAA,KAAKG,OAAO;AACV,YAAAC,IAAcJ,KAAKK,eAAAA;AACrBD,MAAAA,MACHJ,KAAKG,QAAQC;AAAAA,IACd;AAAA,EACD;AAAA,EAID,oBAAAE;;AACCR,KAAAA,IAAAA,MAAMQ,sBAANR,QAAAA,EAAAA,YACAE,KAAKO,oBAAoB;AAAA,EAAA;AAAA,EAI1B,eACC;;AAAA,UAAMC,KAAOR,IAAAA,KAAKS,eAALT,gBAAAA,EAAiBU,cAAc;AACxCF,IAAAA,KACEA,EAAAG,iBAAiB,cAAc;AACnCX,WAAKO,oBAAAA;AAAAA,IAAoB;EAE3B;AAAA,EAGO;AAEPP,SAAKO,oBAAAA,GAEAP,KAAAY,cACJ,IAAIC,YAAiD,SAAS,EAC7DC,QAAQ,EACPb,OAAOD,KAAKC,OACZE,OAAOH,KAAKG,SAAS,GAAA,GAEtBY,aACAC,UAAAA;EAEF;AAAA,EAIO,iBACP;;AAAA,UAAMR,KAAOR,IAAAA,KAAKS,eAALT,gBAAAA,EAAiBU,cAAc;AACxC,SAACF,EAAa,QAAA;AAEZ,UAAAS,IAAgBT,EAAKS,cACvB;AAAA,WAAAA,EAAcC,WAAW,IAAU,KAGhCD,EACLE,IAAYC,CAAAA;;AAAAA,eAAAA,IAAAA,EAAKC,gBAALD,gBAAAA,EAAkBE,WAAU;AAAA,KAAA,EACxCC,KAAK,GAAA,EACLD;EAAK;AAAA,EAIR;;AACCtB,KAAAA,KAAAA,IAAAA,KAAKS,eAALT,gBAAAA,EAAiBU,cAAc,UAA/BV,QAAAA,EAAsCwB;AAAAA,EAAM;AAAA,EAGnC,SAAAC;AAET,UAAMC,IAAU,EACf,6LAEA,mDAAA,IACA,qDAAqD1B,KAAKE,SAMpD;AAAA,WAAAyB;AAAAA;AAAAA;AAAAA,aAGI3B,KAAK4B,SAASF,CAAAA,CAAAA;AAAAA;AAAAA,aAEbG,OAAAA;AACTA,QAAEC,gBAAAA,GACFD,EAAEE,eAAAA,GACF/B,KAAKgC,kBAAkB;AAAA,IAAA,CAAA;AAAA,eAEZH,OACG;AAAA,MAAVA,EAAEI,QAAQ,WAAWJ,EAAEI,QAAQ,QAClCJ,EAAEC,gBACFD,GAAAA,EAAEE,eACF/B,GAAAA,KAAKgC,kBAAkB;AAAA,IAAA,CAAA;AAAA;AAAA,kBAIXhC,KAAK4B,SAtBK,EACzB,mCAAmC,IACnC,sEAAsE,GAAA,CAAA,CAAA;AAAA;AAAA,4CAsB7B,MAAM5B,KAAKO,oBAAAA,CAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,EAAqB;AAAA;AAlGhC2B,EAAA,CAA1CC,EAAS,EAAEC,MAAMC,QAAQC,YADN3C,CAAAA,CAAAA,GAAAA,EACuB4C,WAAA,SAAA,IACoBL,EAAA,CAA9DC,EAAS,EAAEC,MAAMC,QAAQC,SAAS,IAAME,WAAW,QAAA,CAAA,CAAA,GAFhC7C,EAE2C4C,WAAA,SAAA,IAClCL,EAAA,CAA5BC,EAAS,EAAEC,MAAMK,QAHE9C,CAAAA,CAAAA,GAAAA,EAGS4C,WAAA,YAAA,CAAA,GAHT5C,IAArBuC,EAAA,CADCQ,EAAc,iBACM/C,CAAAA,GAAAA,CAAAA;"}
@@ -1,234 +0,0 @@
1
- import { autoUpdate as c, computePosition as u, offset as y, flip as v, shift as m } from "@floating-ui/dom";
2
- import "rxjs";
3
- import { classMap as f } from "lit/directives/class-map.js";
4
- import "lit/directives/style-map.js";
5
- import { $ as b } from "./litElement.mixin-C90TPiZq.js";
6
- import "./tailwind.mixin-CbiMTKLU.js";
7
- import { c as g } from "./ripple-BumgqsDT.js";
8
- import { S as w } from "./theme.interface-C5Kj6WjD.js";
9
- import { css as V, html as O } from "lit";
10
- import { property as r, state as h, query as p, queryAssignedElements as A, customElement as S } from "lit/decorators.js";
11
- var $ = Object.defineProperty, _ = Object.getOwnPropertyDescriptor, o = (t, i, e, s) => {
12
- for (var n, l = s > 1 ? void 0 : s ? _(i, e) : i, d = t.length - 1; d >= 0; d--) (n = t[d]) && (l = (s ? n(i, e, l) : n(l)) || l);
13
- return s && l && $(i, e, l), l;
14
- };
15
- let a = class extends b(V`
16
- :host {
17
- display: block;
18
- position: relative;
19
- }
20
-
21
- [role='listbox'] {
22
- overflow-y: auto;
23
- outline: none;
24
- }
25
- `) {
26
- constructor() {
27
- super(), this.required = !1, this.placeholder = "", this.value = "", this.multi = !1, this.label = "", this.hint = "", this.validateOn = "touched", this.isOpen = !1, this.valueLabel = "", this.isValid = !0, this.validationMessage = "", this._userInteracted = !1, this._touched = !1, this._dirty = !1, this._submitted = !1, this.handleKeyDown = (t) => {
28
- if (!this.isOpen) return void (["Enter", " ", "ArrowDown"].includes(t.key) && (t.preventDefault(), this.openDropdown(!1)));
29
- const i = this.options.findIndex((e) => e.matches(":focus")) ?? -1;
30
- switch (t.key) {
31
- case "Escape":
32
- case "Tab":
33
- this.closeDropdown();
34
- break;
35
- case "ArrowDown":
36
- t.preventDefault(), this.focusOption(this.options, Math.min(i + 1, this.options.length - 1));
37
- break;
38
- case "ArrowUp":
39
- t.preventDefault(), this.focusOption(this.options, Math.max(i - 1, 0));
40
- break;
41
- case "Enter":
42
- case " ":
43
- t.preventDefault(), i >= 0 && this.handleOptionSelect(this.options[i].value);
44
- }
45
- };
46
- try {
47
- this.internals = this.attachInternals();
48
- } catch {
49
- }
50
- }
51
- get form() {
52
- var t;
53
- return (t = this.internals) == null ? void 0 : t.form;
54
- }
55
- connectedCallback() {
56
- var t;
57
- super.connectedCallback(), this.id || (this.id = `schmancy-select-${Math.random().toString(36).substr(2, 9)}`), this.addEventListener("keydown", this.handleKeyDown), (t = this.internals) != null && t.form && (this.internals.form.addEventListener("submit", () => {
58
- this._submitted = !0, this.checkValidity();
59
- }), this.internals.form.addEventListener("reset", () => {
60
- this.reset();
61
- }));
62
- }
63
- disconnectedCallback() {
64
- var t, i;
65
- super.disconnectedCallback(), this.removeEventListener("keydown", this.handleKeyDown), (t = this.cleanupPositioner) == null || t.call(this), (i = this.internals) != null && i.form && (this.internals.form.removeEventListener("submit", () => {
66
- this._submitted = !0;
67
- }), this.internals.form.removeEventListener("reset", () => {
68
- this.reset();
69
- }));
70
- }
71
- firstUpdated() {
72
- this.syncSelection(), this.setupOptionsAccessibility();
73
- }
74
- updated(t) {
75
- var i;
76
- if (super.updated(t), t.has("value")) {
77
- const e = Array.isArray(this.value) ? this.value.join(",") : this.value;
78
- (i = this.internals) == null || i.setFormValue(e), this.hasUpdated && (this._dirty = !0), this.hasUpdated && this.checkValidity();
79
- }
80
- }
81
- shouldShowValidation(t = !1) {
82
- if (t) return !0;
83
- switch (this.validateOn) {
84
- case "always":
85
- return !0;
86
- case "touched":
87
- default:
88
- return this._touched;
89
- case "dirty":
90
- return this._dirty;
91
- case "submitted":
92
- return this._submitted;
93
- }
94
- }
95
- syncSelection() {
96
- if (this.multi) {
97
- const t = Array.isArray(this.value) ? this.value : [];
98
- this.options.forEach((i) => i.selected = t.includes(i.value)), this.valueLabel = t.length > 0 ? this.options.filter((i) => t.includes(i.value)).map((i) => i.label).join(", ") : this.placeholder;
99
- } else {
100
- const t = this.options.find((i) => i.value === this.value);
101
- this.valueLabel = (t == null ? void 0 : t.label) || this.placeholder;
102
- }
103
- }
104
- setupOptionsAccessibility() {
105
- this.options.forEach((t, i) => {
106
- t.setAttribute("role", "option"), t.id || (t.id = `${this.id}-option-${i}`), t.tabIndex = -1;
107
- const e = Array.isArray(this.value) ? this.value : [];
108
- t.setAttribute("aria-selected", String(this.multi ? e.includes(t.value) : t.value === this.value));
109
- });
110
- }
111
- async positionDropdown() {
112
- const t = this.renderRoot.querySelector(".trigger");
113
- if (!t || !this.ul) return;
114
- const i = window.innerHeight - t.getBoundingClientRect().bottom - 10;
115
- this.ul.style.maxHeight = `${i}px`, this.cleanupPositioner = c(t, this.ul, async () => {
116
- const { x: e, y: s } = await u(t, this.ul, { placement: "bottom-start", middleware: [y(5), v(), m({ padding: 5 })] });
117
- Object.assign(this.ul.style, { left: `${e}px`, top: `${s}px`, position: "absolute" });
118
- });
119
- }
120
- focusOption(t, i) {
121
- const e = t[i];
122
- if (e) {
123
- e.focus();
124
- const s = this.renderRoot.querySelector(".trigger");
125
- s == null || s.setAttribute("aria-activedescendant", e.id);
126
- }
127
- }
128
- async openDropdown(t = !1) {
129
- this._touched = !0, this.isOpen = !0, await this.updateComplete, this.positionDropdown(), this.setupOptionsAccessibility();
130
- const i = Array.from(this.ul.querySelectorAll('[role="option"]')), e = this.multi ? 0 : i.findIndex((s) => s.getAttribute("value") === this.value);
131
- this.focusOption(i, Math.max(e, 0)), t && this.reportValidity();
132
- }
133
- closeDropdown() {
134
- var i;
135
- this._touched = !0, this.isOpen = !1, (i = this.cleanupPositioner) == null || i.call(this);
136
- const t = this.renderRoot.querySelector(".trigger");
137
- t == null || t.removeAttribute("aria-activedescendant"), t == null || t.focus(), this.shouldShowValidation() && this.checkValidity();
138
- }
139
- handleOptionSelect(t) {
140
- var i;
141
- if (this._userInteracted = !0, this._touched = !0, this._dirty = !0, this.multi) {
142
- const e = this.options.find((n) => n.value === t);
143
- if (!e) return;
144
- e.selected = !e.selected;
145
- let s = Array.isArray(this.value) ? [...this.value] : [];
146
- s = e.selected ? [...s, t] : s.filter((n) => n !== t), this.value = s, this.valueLabel = s.length > 0 ? this.options.filter((n) => s.includes(n.value)).map((n) => n.label).join(", ") : this.placeholder, this.dispatchChange(s);
147
- } else this.options.forEach((e) => e.selected = e.value === t), this.value = t, this.valueLabel = ((i = this.options.find((e) => e.value === t)) == null ? void 0 : i.label) || this.placeholder, this.dispatchChange(t), this.closeDropdown();
148
- this.setupOptionsAccessibility(), this.checkValidity();
149
- }
150
- dispatchChange(t) {
151
- this.dispatchEvent(new CustomEvent("change", { detail: { value: t }, bubbles: !0, composed: !0 })), this.checkValidity();
152
- }
153
- checkValidity() {
154
- var e, s;
155
- const t = this.multi ? !Array.isArray(this.value) || this.value.length === 0 : !this.value, i = !(this.required && t);
156
- if (this.isValid = i, this.isValid ? (this.validationMessage = "", (e = this.internals) == null || e.setValidity({})) : (this.validationMessage = "Please select an option.", (s = this.internals) == null || s.setValidity({ valueMissing: !0 }, "Please select an option.", this.inputRef)), this.inputRef && this.hasUpdated) {
157
- const n = !this.isValid && this.shouldShowValidation();
158
- this.inputRef.error = n;
159
- }
160
- return this.isValid;
161
- }
162
- reportValidity() {
163
- const t = this.checkValidity();
164
- return this.inputRef && (this.inputRef.error = !t, this.inputRef.hint = t ? this.hint : this.validationMessage, t || this.inputRef.reportValidity()), t;
165
- }
166
- setCustomValidity(t) {
167
- var i, e;
168
- this.validationMessage = t, t ? (this.isValid = !1, (i = this.internals) == null || i.setValidity({ customError: !0 }, t, this.inputRef)) : (this.isValid = !0, (e = this.internals) == null || e.setValidity({})), this.inputRef && this.shouldShowValidation() && (this.inputRef.error = !this.isValid, this.inputRef.hint = this.isValid ? this.hint : this.validationMessage);
169
- }
170
- reset() {
171
- var t;
172
- this.value = "", this.valueLabel = this.placeholder, this.isValid = !0, this.validationMessage = "", this._touched = !1, this._dirty = !1, this._submitted = !1, this._userInteracted = !1, (t = this.internals) == null || t.setValidity({}), this.options.forEach((i) => i.selected = !1), this.inputRef && (this.inputRef.error = !1, this.inputRef.hint = this.hint);
173
- }
174
- render() {
175
- const t = !this.isValid && this.shouldShowValidation();
176
- return O`
177
- <div class="relative">
178
- <sch-input
179
- .name=${this.name}
180
- tabIndex="0"
181
- class="trigger"
182
- role="combobox"
183
- aria-haspopup="listbox"
184
- aria-expanded=${this.isOpen}
185
- aria-controls="options"
186
- aria-autocomplete="none"
187
- aria-required=${this.required}
188
- .label=${this.label}
189
- .placeholder=${this.placeholder}
190
- .value=${this.valueLabel}
191
- .required=${this.required}
192
- .hint=${t ? this.validationMessage : this.hint}
193
- .error=${t}
194
- .validateOn=${this.validateOn}
195
- readonly
196
- @click=${() => this.isOpen ? this.closeDropdown() : this.openDropdown(!0)}
197
- ></sch-input>
198
-
199
- <div
200
- id="overlay"
201
- class="fixed inset-0"
202
- ?hidden=${!this.isOpen}
203
- @click=${this.closeDropdown}
204
- tabindex="-1"
205
- aria-hidden="true"
206
- ></div>
207
-
208
- <ul
209
- id="options"
210
- role="listbox"
211
- aria-multiselectable=${this.multi}
212
- class=${f({ "absolute z-[1000] mt-1 w-full rounded-md shadow-sm": !0, hidden: !this.isOpen })}
213
- ${g({ bgColor: w.sys.color.surface.container })}
214
- @click=${(i) => {
215
- var n;
216
- const e = i, s = (n = e.detail) == null ? void 0 : n.value;
217
- s && this.handleOptionSelect(s);
218
- }}
219
- >
220
- <slot
221
- @slotchange=${() => {
222
- this.syncSelection(), this.setupOptionsAccessibility();
223
- }}
224
- ></slot>
225
- </ul>
226
- </div>
227
- `;
228
- }
229
- };
230
- a.formAssociated = !0, o([r({ type: String })], a.prototype, "name", 2), o([r({ type: Boolean, reflect: !0 })], a.prototype, "required", 2), o([r({ type: String })], a.prototype, "placeholder", 2), o([r({ type: String, reflect: !0 })], a.prototype, "value", 2), o([r({ type: Boolean })], a.prototype, "multi", 2), o([r({ type: String })], a.prototype, "label", 2), o([r({ type: String })], a.prototype, "hint", 2), o([r({ type: String })], a.prototype, "validateOn", 2), o([h()], a.prototype, "isOpen", 2), o([h()], a.prototype, "valueLabel", 2), o([h()], a.prototype, "isValid", 2), o([r({ type: String })], a.prototype, "validationMessage", 2), o([p("ul")], a.prototype, "ul", 2), o([p("sch-input")], a.prototype, "inputRef", 2), o([A({ flatten: !0 })], a.prototype, "options", 2), o([h()], a.prototype, "_userInteracted", 2), o([h()], a.prototype, "_touched", 2), o([h()], a.prototype, "_dirty", 2), o([h()], a.prototype, "_submitted", 2), a = o([S("schmancy-select")], a);
231
- export {
232
- a as S
233
- };
234
- //# sourceMappingURL=select-Cqeb0qCm.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"select-Cqeb0qCm.js","sources":["../src/select/select.ts"],"sourcesContent":["import { autoUpdate, computePosition, flip, offset, shift } from '@floating-ui/dom'\nimport { $LitElement } from '@mixins/index'\nimport { color } from '@schmancy/directives'\nimport SchmancyInput from '@schmancy/input/input'\nimport SchmancyOption from '@schmancy/option/option'\nimport { SchmancyTheme } from '@schmancy/theme/theme.interface'\nimport { css, html, PropertyValues, TemplateResult } from 'lit'\nimport { customElement, property, query, queryAssignedElements, state } from 'lit/decorators.js'\nimport { classMap } from 'lit/directives/class-map.js'\n\nexport type SchmancySelectChangeEvent = CustomEvent<{\n\tvalue: string | string[]\n}>\n\n@customElement('schmancy-select')\nexport class SchmancySelect extends $LitElement(css`\n\t:host {\n\t\tdisplay: block;\n\t\tposition: relative;\n\t}\n\n\t[role='listbox'] {\n\t\toverflow-y: auto;\n\t\toutline: none;\n\t}\n`) {\n\t// Form association setup\n\tstatic formAssociated = true\n\tprivate internals?: ElementInternals\n\n\t// API\n\t@property({ type: String }) name: string | undefined\n\t@property({ type: Boolean, reflect: true }) required = false\n\t@property({ type: String }) placeholder = ''\n\t@property({ type: String, reflect: true }) value: string | string[] = '' // for single-select or multi-select\n\t@property({ type: Boolean }) multi = false\n\t@property({ type: String }) label = ''\n\t@property({ type: String }) hint = ''\n\t@property({ type: String }) validateOn: 'always' | 'touched' | 'dirty' | 'submitted' = 'touched'\n\n\t// Internal states\n\t@state() private isOpen = false\n\t@state() private valueLabel = ''\n\t@state() private isValid = true\n\t@property({ type: String }) validationMessage = ''\n\n\t@query('ul') private ul!: HTMLUListElement\n\t@query('sch-input') private inputRef!: SchmancyInput\n\t@queryAssignedElements({ flatten: true }) private options!: SchmancyOption[]\n\tprivate cleanupPositioner?: () => void\n\t@state() _userInteracted = false\n\t@state() private _touched = false\n\t@state() private _dirty = false\n\t@state() private _submitted = false\n\n\tconstructor() {\n\t\tsuper()\n\t\t// Initialize ElementInternals for form association\n\t\ttry {\n\t\t\tthis.internals = this.attachInternals()\n\t\t} catch (e) {\n\t\t\tconsole.warn('FormAssociated elements not supported in this browser', e)\n\t\t}\n\t}\n\n\tget form() {\n\t\treturn this.internals?.form\n\t}\n\n\tconnectedCallback() {\n\t\tsuper.connectedCallback()\n\t\tif (!this.id) {\n\t\t\tthis.id = `schmancy-select-${Math.random().toString(36).substr(2, 9)}`\n\t\t}\n\t\tthis.addEventListener('keydown', this.handleKeyDown)\n\n\t\t// Listen for form submission events to mark field as submitted\n\t\tif (this.internals?.form) {\n\t\t\tthis.internals.form.addEventListener('submit', () => {\n\t\t\t\tthis._submitted = true\n\t\t\t\tthis.checkValidity()\n\t\t\t})\n\n\t\t\t// Listen for form reset\n\t\t\tthis.internals.form.addEventListener('reset', () => {\n\t\t\t\tthis.reset()\n\t\t\t})\n\t\t}\n\t}\n\n\tdisconnectedCallback() {\n\t\tsuper.disconnectedCallback()\n\t\tthis.removeEventListener('keydown', this.handleKeyDown)\n\t\tthis.cleanupPositioner?.()\n\n\t\t// Remove form event listeners\n\t\tif (this.internals?.form) {\n\t\t\tthis.internals.form.removeEventListener('submit', () => {\n\t\t\t\tthis._submitted = true\n\t\t\t})\n\n\t\t\tthis.internals.form.removeEventListener('reset', () => {\n\t\t\t\tthis.reset()\n\t\t\t})\n\t\t}\n\t}\n\n\tfirstUpdated() {\n\t\tthis.syncSelection()\n\t\tthis.setupOptionsAccessibility()\n\t}\n\n\tupdated(changedProps: PropertyValues) {\n\t\tsuper.updated(changedProps)\n\n\t\tif (changedProps.has('value')) {\n\t\t\t// Update form value when component value changes\n\t\t\tconst formValue = Array.isArray(this.value) ? this.value.join(',') : this.value\n\t\t\tthis.internals?.setFormValue(formValue)\n\n\t\t\t// Mark as dirty if value changes from initial value\n\t\t\tif (this.hasUpdated) {\n\t\t\t\tthis._dirty = true\n\t\t\t}\n\n\t\t\t// Check validity based on validation strategy\n\t\t\tif (this.hasUpdated) {\n\t\t\t\tthis.checkValidity()\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Determines if validation errors should be shown based on current state\n\t * and validation strategy\n\t */\n\tprivate shouldShowValidation(forceValidation = false): boolean {\n\t\tif (forceValidation) return true\n\n\t\tswitch (this.validateOn) {\n\t\t\tcase 'always':\n\t\t\t\treturn true\n\t\t\tcase 'touched':\n\t\t\t\treturn this._touched\n\t\t\tcase 'dirty':\n\t\t\t\treturn this._dirty\n\t\t\tcase 'submitted':\n\t\t\t\treturn this._submitted\n\t\t\tdefault:\n\t\t\t\treturn this._touched\n\t\t}\n\t}\n\n\tprivate syncSelection() {\n\t\tif (this.multi) {\n\t\t\tconst selectedValues = Array.isArray(this.value) ? this.value : []\n\t\t\tthis.options.forEach(o => (o.selected = selectedValues.includes(o.value))) // Update option selected state\n\t\t\tthis.valueLabel =\n\t\t\t\tselectedValues.length > 0\n\t\t\t\t\t? this.options\n\t\t\t\t\t\t\t.filter(o => selectedValues.includes(o.value))\n\t\t\t\t\t\t\t.map(o => o.label)\n\t\t\t\t\t\t\t.join(', ')\n\t\t\t\t\t: this.placeholder\n\t\t} else {\n\t\t\tconst selectedOption = this.options.find(o => o.value === this.value)\n\t\t\tthis.valueLabel = selectedOption?.label || this.placeholder\n\t\t}\n\t}\n\n\tprivate setupOptionsAccessibility() {\n\t\tthis.options.forEach((option, index) => {\n\t\t\toption.setAttribute('role', 'option')\n\t\t\tif (!option.id) {\n\t\t\t\toption.id = `${this.id}-option-${index}`\n\t\t\t}\n\t\t\toption.tabIndex = -1\n\t\t\tconst selectedValues = Array.isArray(this.value) ? this.value : []\n\n\t\t\toption.setAttribute(\n\t\t\t\t'aria-selected',\n\t\t\t\tString(this.multi ? selectedValues.includes(option.value) : option.value === this.value),\n\t\t\t)\n\t\t})\n\t}\n\n\tprivate async positionDropdown() {\n\t\tconst reference = this.renderRoot.querySelector('.trigger') as HTMLElement\n\t\tif (!reference || !this.ul) return\n\n\t\t// Get the available height\n\t\tconst availableHeight = window.innerHeight - reference.getBoundingClientRect().bottom - 10 // 10px buffer\n\t\tthis.ul.style.maxHeight = `${availableHeight}px` // Set max height\n\n\t\tthis.cleanupPositioner = autoUpdate(reference, this.ul, async () => {\n\t\t\tconst { x, y } = await computePosition(reference, this.ul, {\n\t\t\t\tplacement: 'bottom-start',\n\t\t\t\tmiddleware: [offset(5), flip(), shift({ padding: 5 })],\n\t\t\t})\n\n\t\t\tObject.assign(this.ul.style, {\n\t\t\t\tleft: `${x}px`,\n\t\t\t\ttop: `${y}px`,\n\t\t\t\tposition: 'absolute',\n\t\t\t})\n\t\t})\n\t}\n\n\tprivate handleKeyDown = (e: KeyboardEvent) => {\n\t\tif (!this.isOpen) {\n\t\t\tif (['Enter', ' ', 'ArrowDown'].includes(e.key)) {\n\t\t\t\te.preventDefault()\n\t\t\t\tthis.openDropdown(false)\n\t\t\t}\n\t\t\treturn\n\t\t}\n\n\t\tconst current = this.options.findIndex(o => o.matches(':focus')) ?? -1\n\n\t\tswitch (e.key) {\n\t\t\tcase 'Escape':\n\t\t\t\tthis.closeDropdown()\n\t\t\t\tbreak\n\t\t\tcase 'ArrowDown':\n\t\t\t\te.preventDefault()\n\t\t\t\tthis.focusOption(this.options, Math.min(current + 1, this.options.length - 1))\n\t\t\t\tbreak\n\t\t\tcase 'ArrowUp':\n\t\t\t\te.preventDefault()\n\t\t\t\tthis.focusOption(this.options, Math.max(current - 1, 0))\n\t\t\t\tbreak\n\t\t\tcase 'Enter':\n\t\t\tcase ' ':\n\t\t\t\te.preventDefault()\n\t\t\t\tif (current >= 0) this.handleOptionSelect(this.options[current].value)\n\t\t\t\tbreak\n\t\t\tcase 'Tab':\n\t\t\t\tthis.closeDropdown()\n\t\t\t\tbreak\n\t\t}\n\t}\n\n\tprivate focusOption(options: HTMLElement[], index: number) {\n\t\tconst option = options[index]\n\t\tif (option) {\n\t\t\toption.focus()\n\t\t\tconst combobox = this.renderRoot.querySelector('.trigger')\n\t\t\tcombobox?.setAttribute('aria-activedescendant', option.id)\n\t\t}\n\t}\n\n\tprivate async openDropdown(report = false) {\n\t\tthis._touched = true // Mark as touched when dropdown is opened\n\t\tthis.isOpen = true\n\t\tawait this.updateComplete\n\n\t\tthis.positionDropdown()\n\t\tthis.setupOptionsAccessibility()\n\n\t\tconst options = Array.from(this.ul.querySelectorAll('[role=\"option\"]')) as HTMLElement[]\n\t\tconst selectedIndex = this.multi ? 0 : options.findIndex(o => o.getAttribute('value') === this.value)\n\t\tthis.focusOption(options, Math.max(selectedIndex, 0))\n\n\t\tif (report) this.reportValidity()\n\t}\n\n\tprivate closeDropdown() {\n\t\tthis._touched = true // Mark as touched when dropdown is closed\n\t\tthis.isOpen = false\n\t\tthis.cleanupPositioner?.()\n\t\tconst combobox = this.renderRoot.querySelector<HTMLElement>('.trigger')\n\t\tcombobox?.removeAttribute('aria-activedescendant')\n\t\tcombobox?.focus()\n\n\t\t// Check validity when closing, respecting validation strategy\n\t\tif (this.shouldShowValidation()) {\n\t\t\tthis.checkValidity()\n\t\t}\n\t}\n\n\tprivate handleOptionSelect(value: string) {\n\t\tthis._userInteracted = true\n\t\tthis._touched = true\n\t\tthis._dirty = true\n\n\t\tif (this.multi) {\n\t\t\tconst option = this.options.find(o => o.value === value)\n\t\t\tif (!option) return\n\n\t\t\toption.selected = !option.selected\n\t\t\tlet selectedValues = Array.isArray(this.value) ? [...this.value] : []\n\n\t\t\tif (option.selected) {\n\t\t\t\tselectedValues = [...selectedValues, value]\n\t\t\t} else {\n\t\t\t\tselectedValues = selectedValues.filter(v => v !== value)\n\t\t\t}\n\n\t\t\tthis.value = selectedValues\n\n\t\t\tthis.valueLabel =\n\t\t\t\tselectedValues.length > 0\n\t\t\t\t\t? this.options\n\t\t\t\t\t\t\t.filter(o => selectedValues.includes(o.value))\n\t\t\t\t\t\t\t.map(o => o.label)\n\t\t\t\t\t\t\t.join(', ')\n\t\t\t\t\t: this.placeholder\n\n\t\t\tthis.dispatchChange(selectedValues)\n\t\t} else {\n\t\t\tthis.options.forEach(o => (o.selected = o.value === value))\n\t\t\tthis.value = value\n\t\t\tthis.valueLabel = this.options.find(o => o.value === value)?.label || this.placeholder\n\t\t\tthis.dispatchChange(value)\n\t\t\tthis.closeDropdown()\n\t\t}\n\n\t\tthis.setupOptionsAccessibility()\n\n\t\t// Check validity respecting validation strategy\n\t\tthis.checkValidity()\n\t}\n\n\tprivate dispatchChange(value: string | string[]) {\n\t\t// Dispatch only one change event with the value in detail\n\t\tthis.dispatchEvent(\n\t\t\tnew CustomEvent<SchmancySelectChangeEvent['detail']>('change', {\n\t\t\t\tdetail: { value },\n\t\t\t\tbubbles: true,\n\t\t\t\tcomposed: true,\n\t\t\t}),\n\t\t)\n\n\t\t// Then check validity (only show error if validation should be shown)\n\t\tthis.checkValidity()\n\t}\n\n\tpublic checkValidity(): boolean {\n\t\t// Determine if the select is empty based on whether it's multi-select or single-select\n\t\tconst isEmpty = this.multi ? !Array.isArray(this.value) || this.value.length === 0 : !this.value\n\n\t\t// Check if the value is valid (not empty when required)\n\t\tconst isValid = !(this.required && isEmpty)\n\n\t\t// Set the validity state\n\t\tthis.isValid = isValid\n\n\t\tif (!this.isValid) {\n\t\t\tthis.validationMessage = 'Please select an option.'\n\t\t\tthis.internals?.setValidity({ valueMissing: true }, 'Please select an option.', this.inputRef)\n\t\t} else {\n\t\t\t// Clear validation message\n\t\t\tthis.validationMessage = ''\n\t\t\tthis.internals?.setValidity({})\n\t\t}\n\n\t\t// Update the input component to reflect our validation state\n\t\tif (this.inputRef && this.hasUpdated) {\n\t\t\tconst showError = !this.isValid && this.shouldShowValidation()\n\t\t\tthis.inputRef.error = showError\n\t\t}\n\n\t\treturn this.isValid\n\t}\n\n\tpublic reportValidity(): boolean {\n\t\t// Force validation display regardless of validation strategy\n\t\tconst valid = this.checkValidity()\n\n\t\t// Force the input to show validation errors\n\t\tif (this.inputRef) {\n\t\t\t// Set the input's error state\n\t\t\tthis.inputRef.error = !valid\n\t\t\tthis.inputRef.hint = !valid ? this.validationMessage : this.hint\n\n\t\t\t// Only call reportValidity on the input if invalid to show the native popup\n\t\t\tif (!valid) {\n\t\t\t\tthis.inputRef.reportValidity()\n\t\t\t}\n\t\t}\n\n\t\treturn valid\n\t}\n\n\tpublic setCustomValidity(message: string) {\n\t\tthis.validationMessage = message\n\t\tif (message) {\n\t\t\tthis.isValid = false\n\t\t\tthis.internals?.setValidity({ customError: true }, message, this.inputRef)\n\t\t} else {\n\t\t\tthis.isValid = true\n\t\t\tthis.internals?.setValidity({})\n\t\t}\n\n\t\t// Update input if needed\n\t\tif (this.inputRef && this.shouldShowValidation()) {\n\t\t\tthis.inputRef.error = !this.isValid\n\t\t\tthis.inputRef.hint = !this.isValid ? this.validationMessage : this.hint\n\t\t}\n\t}\n\n\tpublic reset() {\n\t\tthis.value = ''\n\t\tthis.valueLabel = this.placeholder\n\t\tthis.isValid = true\n\t\tthis.validationMessage = ''\n\t\tthis._touched = false\n\t\tthis._dirty = false\n\t\tthis._submitted = false\n\t\tthis._userInteracted = false\n\t\tthis.internals?.setValidity({})\n\t\tthis.options.forEach(o => (o.selected = false))\n\n\t\tif (this.inputRef) {\n\t\t\tthis.inputRef.error = false\n\t\t\tthis.inputRef.hint = this.hint\n\t\t}\n\t}\n\n\trender(): TemplateResult {\n\t\t// Determine if we should show errors based on the validation strategy\n\t\tconst showErrors = !this.isValid && this.shouldShowValidation()\n\n\t\treturn html`\n\t\t\t<div class=\"relative\">\n\t\t\t\t<sch-input\n\t\t\t\t\t.name=${this.name}\n\t\t\t\t\ttabIndex=\"0\"\n\t\t\t\t\tclass=\"trigger\"\n\t\t\t\t\trole=\"combobox\"\n\t\t\t\t\taria-haspopup=\"listbox\"\n\t\t\t\t\taria-expanded=${this.isOpen}\n\t\t\t\t\taria-controls=\"options\"\n\t\t\t\t\taria-autocomplete=\"none\"\n\t\t\t\t\taria-required=${this.required}\n\t\t\t\t\t.label=${this.label}\n\t\t\t\t\t.placeholder=${this.placeholder}\n\t\t\t\t\t.value=${this.valueLabel}\n\t\t\t\t\t.required=${this.required}\n\t\t\t\t\t.hint=${showErrors ? this.validationMessage : this.hint}\n\t\t\t\t\t.error=${showErrors}\n\t\t\t\t\t.validateOn=${this.validateOn}\n\t\t\t\t\treadonly\n\t\t\t\t\t@click=${() => (this.isOpen ? this.closeDropdown() : this.openDropdown(true))}\n\t\t\t\t></sch-input>\n\n\t\t\t\t<div\n\t\t\t\t\tid=\"overlay\"\n\t\t\t\t\tclass=\"fixed inset-0\"\n\t\t\t\t\t?hidden=${!this.isOpen}\n\t\t\t\t\t@click=${this.closeDropdown}\n\t\t\t\t\ttabindex=\"-1\"\n\t\t\t\t\taria-hidden=\"true\"\n\t\t\t\t></div>\n\n\t\t\t\t<ul\n\t\t\t\t\tid=\"options\"\n\t\t\t\t\trole=\"listbox\"\n\t\t\t\t\taria-multiselectable=${this.multi}\n\t\t\t\t\tclass=${classMap({\n\t\t\t\t\t\t'absolute z-[1000] mt-1 w-full rounded-md shadow-sm': true,\n\t\t\t\t\t\thidden: !this.isOpen,\n\t\t\t\t\t})}\n\t\t\t\t\t${color({ bgColor: SchmancyTheme.sys.color.surface.container })}\n\t\t\t\t\t@click=${(e: Event) => {\n\t\t\t\t\t\tconst customEvt = e as CustomEvent\n\t\t\t\t\t\tconst detailVal = customEvt.detail?.value\n\t\t\t\t\t\tif (detailVal) {\n\t\t\t\t\t\t\tthis.handleOptionSelect(detailVal)\n\t\t\t\t\t\t}\n\t\t\t\t\t}}\n\t\t\t\t>\n\t\t\t\t\t<slot\n\t\t\t\t\t\t@slotchange=${() => {\n\t\t\t\t\t\t\tthis.syncSelection()\n\t\t\t\t\t\t\tthis.setupOptionsAccessibility()\n\t\t\t\t\t\t}}\n\t\t\t\t\t></slot>\n\t\t\t\t</ul>\n\t\t\t</div>\n\t\t`\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-select': SchmancySelect\n\t}\n}\n"],"names":["SchmancySelect","$LitElement","css","constructor","super","this","required","placeholder","value","multi","label","hint","validateOn","isOpen","valueLabel","isValid","validationMessage","_userInteracted","_touched","_dirty","_submitted","handleKeyDown","e","includes","key","preventDefault","openDropdown","current","options","findIndex","o","matches","closeDropdown","focusOption","Math","min","length","max","handleOptionSelect","internals","attachInternals","form","connectedCallback","id","random","toString","substr","addEventListener","checkValidity","reset","disconnectedCallback","removeEventListener","cleanupPositioner","syncSelection","setupOptionsAccessibility","changedProps","updated","has","formValue","Array","isArray","join","setFormValue","hasUpdated","forceValidation","selectedValues","forEach","selected","filter","map","selectedOption","find","option","index","setAttribute","tabIndex","String","positionDropdown","reference","renderRoot","querySelector","ul","availableHeight","window","innerHeight","getBoundingClientRect","bottom","style","maxHeight","autoUpdate","async","x","y","computePosition","placement","middleware","offset","flip","shift","padding","Object","assign","left","top","position","focus","combobox","report","updateComplete","from","querySelectorAll","selectedIndex","getAttribute","reportValidity","removeAttribute","shouldShowValidation","v","dispatchChange","dispatchEvent","CustomEvent","detail","bubbles","composed","isEmpty","setValidity","valueMissing","inputRef","showError","error","valid","message","customError","showErrors","html","name","classMap","hidden","color","bgColor","SchmancyTheme","sys","surface","container","customEvt","detailVal","formAssociated","__decorateClass","property","type","prototype","Boolean","reflect","state","query","queryAssignedElements","flatten","customElement"],"mappings":"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"}
@@ -1,57 +0,0 @@
1
- "use strict";const l=require("@floating-ui/dom");require("rxjs");const d=require("lit/directives/class-map.js");require("lit/directives/style-map.js");const p=require("./litElement.mixin-DEcupxqH.cjs");require("./tailwind.mixin-BmxNqOqA.cjs");const u=require("./ripple-C2BHbhcS.cjs"),y=require("./theme.interface-Xg5Zi46a.cjs"),c=require("lit"),a=require("lit/decorators.js");var m=Object.defineProperty,v=Object.getOwnPropertyDescriptor,n=(t,e,i,s)=>{for(var o,r=s>1?void 0:s?v(e,i):e,h=t.length-1;h>=0;h--)(o=t[h])&&(r=(s?o(e,i,r):o(r))||r);return s&&r&&m(e,i,r),r};exports.SchmancySelect=class extends p.$LitElement(c.css`
2
- :host {
3
- display: block;
4
- position: relative;
5
- }
6
-
7
- [role='listbox'] {
8
- overflow-y: auto;
9
- outline: none;
10
- }
11
- `){constructor(){super(),this.required=!1,this.placeholder="",this.value="",this.multi=!1,this.label="",this.hint="",this.validateOn="touched",this.isOpen=!1,this.valueLabel="",this.isValid=!0,this.validationMessage="",this._userInteracted=!1,this._touched=!1,this._dirty=!1,this._submitted=!1,this.handleKeyDown=t=>{if(!this.isOpen)return void(["Enter"," ","ArrowDown"].includes(t.key)&&(t.preventDefault(),this.openDropdown(!1)));const e=this.options.findIndex(i=>i.matches(":focus"))??-1;switch(t.key){case"Escape":case"Tab":this.closeDropdown();break;case"ArrowDown":t.preventDefault(),this.focusOption(this.options,Math.min(e+1,this.options.length-1));break;case"ArrowUp":t.preventDefault(),this.focusOption(this.options,Math.max(e-1,0));break;case"Enter":case" ":t.preventDefault(),e>=0&&this.handleOptionSelect(this.options[e].value)}};try{this.internals=this.attachInternals()}catch{}}get form(){var t;return(t=this.internals)==null?void 0:t.form}connectedCallback(){var t;super.connectedCallback(),this.id||(this.id=`schmancy-select-${Math.random().toString(36).substr(2,9)}`),this.addEventListener("keydown",this.handleKeyDown),(t=this.internals)!=null&&t.form&&(this.internals.form.addEventListener("submit",()=>{this._submitted=!0,this.checkValidity()}),this.internals.form.addEventListener("reset",()=>{this.reset()}))}disconnectedCallback(){var t,e;super.disconnectedCallback(),this.removeEventListener("keydown",this.handleKeyDown),(t=this.cleanupPositioner)==null||t.call(this),(e=this.internals)!=null&&e.form&&(this.internals.form.removeEventListener("submit",()=>{this._submitted=!0}),this.internals.form.removeEventListener("reset",()=>{this.reset()}))}firstUpdated(){this.syncSelection(),this.setupOptionsAccessibility()}updated(t){var e;if(super.updated(t),t.has("value")){const i=Array.isArray(this.value)?this.value.join(","):this.value;(e=this.internals)==null||e.setFormValue(i),this.hasUpdated&&(this._dirty=!0),this.hasUpdated&&this.checkValidity()}}shouldShowValidation(t=!1){if(t)return!0;switch(this.validateOn){case"always":return!0;case"touched":default:return this._touched;case"dirty":return this._dirty;case"submitted":return this._submitted}}syncSelection(){if(this.multi){const t=Array.isArray(this.value)?this.value:[];this.options.forEach(e=>e.selected=t.includes(e.value)),this.valueLabel=t.length>0?this.options.filter(e=>t.includes(e.value)).map(e=>e.label).join(", "):this.placeholder}else{const t=this.options.find(e=>e.value===this.value);this.valueLabel=(t==null?void 0:t.label)||this.placeholder}}setupOptionsAccessibility(){this.options.forEach((t,e)=>{t.setAttribute("role","option"),t.id||(t.id=`${this.id}-option-${e}`),t.tabIndex=-1;const i=Array.isArray(this.value)?this.value:[];t.setAttribute("aria-selected",String(this.multi?i.includes(t.value):t.value===this.value))})}async positionDropdown(){const t=this.renderRoot.querySelector(".trigger");if(!t||!this.ul)return;const e=window.innerHeight-t.getBoundingClientRect().bottom-10;this.ul.style.maxHeight=`${e}px`,this.cleanupPositioner=l.autoUpdate(t,this.ul,async()=>{const{x:i,y:s}=await l.computePosition(t,this.ul,{placement:"bottom-start",middleware:[l.offset(5),l.flip(),l.shift({padding:5})]});Object.assign(this.ul.style,{left:`${i}px`,top:`${s}px`,position:"absolute"})})}focusOption(t,e){const i=t[e];if(i){i.focus();const s=this.renderRoot.querySelector(".trigger");s==null||s.setAttribute("aria-activedescendant",i.id)}}async openDropdown(t=!1){this._touched=!0,this.isOpen=!0,await this.updateComplete,this.positionDropdown(),this.setupOptionsAccessibility();const e=Array.from(this.ul.querySelectorAll('[role="option"]')),i=this.multi?0:e.findIndex(s=>s.getAttribute("value")===this.value);this.focusOption(e,Math.max(i,0)),t&&this.reportValidity()}closeDropdown(){var e;this._touched=!0,this.isOpen=!1,(e=this.cleanupPositioner)==null||e.call(this);const t=this.renderRoot.querySelector(".trigger");t==null||t.removeAttribute("aria-activedescendant"),t==null||t.focus(),this.shouldShowValidation()&&this.checkValidity()}handleOptionSelect(t){var e;if(this._userInteracted=!0,this._touched=!0,this._dirty=!0,this.multi){const i=this.options.find(o=>o.value===t);if(!i)return;i.selected=!i.selected;let s=Array.isArray(this.value)?[...this.value]:[];s=i.selected?[...s,t]:s.filter(o=>o!==t),this.value=s,this.valueLabel=s.length>0?this.options.filter(o=>s.includes(o.value)).map(o=>o.label).join(", "):this.placeholder,this.dispatchChange(s)}else this.options.forEach(i=>i.selected=i.value===t),this.value=t,this.valueLabel=((e=this.options.find(i=>i.value===t))==null?void 0:e.label)||this.placeholder,this.dispatchChange(t),this.closeDropdown();this.setupOptionsAccessibility(),this.checkValidity()}dispatchChange(t){this.dispatchEvent(new CustomEvent("change",{detail:{value:t},bubbles:!0,composed:!0})),this.checkValidity()}checkValidity(){var i,s;const t=this.multi?!Array.isArray(this.value)||this.value.length===0:!this.value,e=!(this.required&&t);if(this.isValid=e,this.isValid?(this.validationMessage="",(i=this.internals)==null||i.setValidity({})):(this.validationMessage="Please select an option.",(s=this.internals)==null||s.setValidity({valueMissing:!0},"Please select an option.",this.inputRef)),this.inputRef&&this.hasUpdated){const o=!this.isValid&&this.shouldShowValidation();this.inputRef.error=o}return this.isValid}reportValidity(){const t=this.checkValidity();return this.inputRef&&(this.inputRef.error=!t,this.inputRef.hint=t?this.hint:this.validationMessage,t||this.inputRef.reportValidity()),t}setCustomValidity(t){var e,i;this.validationMessage=t,t?(this.isValid=!1,(e=this.internals)==null||e.setValidity({customError:!0},t,this.inputRef)):(this.isValid=!0,(i=this.internals)==null||i.setValidity({})),this.inputRef&&this.shouldShowValidation()&&(this.inputRef.error=!this.isValid,this.inputRef.hint=this.isValid?this.hint:this.validationMessage)}reset(){var t;this.value="",this.valueLabel=this.placeholder,this.isValid=!0,this.validationMessage="",this._touched=!1,this._dirty=!1,this._submitted=!1,this._userInteracted=!1,(t=this.internals)==null||t.setValidity({}),this.options.forEach(e=>e.selected=!1),this.inputRef&&(this.inputRef.error=!1,this.inputRef.hint=this.hint)}render(){const t=!this.isValid&&this.shouldShowValidation();return c.html`
12
- <div class="relative">
13
- <sch-input
14
- .name=${this.name}
15
- tabIndex="0"
16
- class="trigger"
17
- role="combobox"
18
- aria-haspopup="listbox"
19
- aria-expanded=${this.isOpen}
20
- aria-controls="options"
21
- aria-autocomplete="none"
22
- aria-required=${this.required}
23
- .label=${this.label}
24
- .placeholder=${this.placeholder}
25
- .value=${this.valueLabel}
26
- .required=${this.required}
27
- .hint=${t?this.validationMessage:this.hint}
28
- .error=${t}
29
- .validateOn=${this.validateOn}
30
- readonly
31
- @click=${()=>this.isOpen?this.closeDropdown():this.openDropdown(!0)}
32
- ></sch-input>
33
-
34
- <div
35
- id="overlay"
36
- class="fixed inset-0"
37
- ?hidden=${!this.isOpen}
38
- @click=${this.closeDropdown}
39
- tabindex="-1"
40
- aria-hidden="true"
41
- ></div>
42
-
43
- <ul
44
- id="options"
45
- role="listbox"
46
- aria-multiselectable=${this.multi}
47
- class=${d.classMap({"absolute z-[1000] mt-1 w-full rounded-md shadow-sm":!0,hidden:!this.isOpen})}
48
- ${u.color({bgColor:y.SchmancyTheme.sys.color.surface.container})}
49
- @click=${e=>{var o;const i=e,s=(o=i.detail)==null?void 0:o.value;s&&this.handleOptionSelect(s)}}
50
- >
51
- <slot
52
- @slotchange=${()=>{this.syncSelection(),this.setupOptionsAccessibility()}}
53
- ></slot>
54
- </ul>
55
- </div>
56
- `}},exports.SchmancySelect.formAssociated=!0,n([a.property({type:String})],exports.SchmancySelect.prototype,"name",2),n([a.property({type:Boolean,reflect:!0})],exports.SchmancySelect.prototype,"required",2),n([a.property({type:String})],exports.SchmancySelect.prototype,"placeholder",2),n([a.property({type:String,reflect:!0})],exports.SchmancySelect.prototype,"value",2),n([a.property({type:Boolean})],exports.SchmancySelect.prototype,"multi",2),n([a.property({type:String})],exports.SchmancySelect.prototype,"label",2),n([a.property({type:String})],exports.SchmancySelect.prototype,"hint",2),n([a.property({type:String})],exports.SchmancySelect.prototype,"validateOn",2),n([a.state()],exports.SchmancySelect.prototype,"isOpen",2),n([a.state()],exports.SchmancySelect.prototype,"valueLabel",2),n([a.state()],exports.SchmancySelect.prototype,"isValid",2),n([a.property({type:String})],exports.SchmancySelect.prototype,"validationMessage",2),n([a.query("ul")],exports.SchmancySelect.prototype,"ul",2),n([a.query("sch-input")],exports.SchmancySelect.prototype,"inputRef",2),n([a.queryAssignedElements({flatten:!0})],exports.SchmancySelect.prototype,"options",2),n([a.state()],exports.SchmancySelect.prototype,"_userInteracted",2),n([a.state()],exports.SchmancySelect.prototype,"_touched",2),n([a.state()],exports.SchmancySelect.prototype,"_dirty",2),n([a.state()],exports.SchmancySelect.prototype,"_submitted",2),exports.SchmancySelect=n([a.customElement("schmancy-select")],exports.SchmancySelect);
57
- //# sourceMappingURL=select-DqumJi31.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"select-DqumJi31.cjs","sources":["../src/select/select.ts"],"sourcesContent":["import { autoUpdate, computePosition, flip, offset, shift } from '@floating-ui/dom'\nimport { $LitElement } from '@mixins/index'\nimport { color } from '@schmancy/directives'\nimport SchmancyInput from '@schmancy/input/input'\nimport SchmancyOption from '@schmancy/option/option'\nimport { SchmancyTheme } from '@schmancy/theme/theme.interface'\nimport { css, html, PropertyValues, TemplateResult } from 'lit'\nimport { customElement, property, query, queryAssignedElements, state } from 'lit/decorators.js'\nimport { classMap } from 'lit/directives/class-map.js'\n\nexport type SchmancySelectChangeEvent = CustomEvent<{\n\tvalue: string | string[]\n}>\n\n@customElement('schmancy-select')\nexport class SchmancySelect extends $LitElement(css`\n\t:host {\n\t\tdisplay: block;\n\t\tposition: relative;\n\t}\n\n\t[role='listbox'] {\n\t\toverflow-y: auto;\n\t\toutline: none;\n\t}\n`) {\n\t// Form association setup\n\tstatic formAssociated = true\n\tprivate internals?: ElementInternals\n\n\t// API\n\t@property({ type: String }) name: string | undefined\n\t@property({ type: Boolean, reflect: true }) required = false\n\t@property({ type: String }) placeholder = ''\n\t@property({ type: String, reflect: true }) value: string | string[] = '' // for single-select or multi-select\n\t@property({ type: Boolean }) multi = false\n\t@property({ type: String }) label = ''\n\t@property({ type: String }) hint = ''\n\t@property({ type: String }) validateOn: 'always' | 'touched' | 'dirty' | 'submitted' = 'touched'\n\n\t// Internal states\n\t@state() private isOpen = false\n\t@state() private valueLabel = ''\n\t@state() private isValid = true\n\t@property({ type: String }) validationMessage = ''\n\n\t@query('ul') private ul!: HTMLUListElement\n\t@query('sch-input') private inputRef!: SchmancyInput\n\t@queryAssignedElements({ flatten: true }) private options!: SchmancyOption[]\n\tprivate cleanupPositioner?: () => void\n\t@state() _userInteracted = false\n\t@state() private _touched = false\n\t@state() private _dirty = false\n\t@state() private _submitted = false\n\n\tconstructor() {\n\t\tsuper()\n\t\t// Initialize ElementInternals for form association\n\t\ttry {\n\t\t\tthis.internals = this.attachInternals()\n\t\t} catch (e) {\n\t\t\tconsole.warn('FormAssociated elements not supported in this browser', e)\n\t\t}\n\t}\n\n\tget form() {\n\t\treturn this.internals?.form\n\t}\n\n\tconnectedCallback() {\n\t\tsuper.connectedCallback()\n\t\tif (!this.id) {\n\t\t\tthis.id = `schmancy-select-${Math.random().toString(36).substr(2, 9)}`\n\t\t}\n\t\tthis.addEventListener('keydown', this.handleKeyDown)\n\n\t\t// Listen for form submission events to mark field as submitted\n\t\tif (this.internals?.form) {\n\t\t\tthis.internals.form.addEventListener('submit', () => {\n\t\t\t\tthis._submitted = true\n\t\t\t\tthis.checkValidity()\n\t\t\t})\n\n\t\t\t// Listen for form reset\n\t\t\tthis.internals.form.addEventListener('reset', () => {\n\t\t\t\tthis.reset()\n\t\t\t})\n\t\t}\n\t}\n\n\tdisconnectedCallback() {\n\t\tsuper.disconnectedCallback()\n\t\tthis.removeEventListener('keydown', this.handleKeyDown)\n\t\tthis.cleanupPositioner?.()\n\n\t\t// Remove form event listeners\n\t\tif (this.internals?.form) {\n\t\t\tthis.internals.form.removeEventListener('submit', () => {\n\t\t\t\tthis._submitted = true\n\t\t\t})\n\n\t\t\tthis.internals.form.removeEventListener('reset', () => {\n\t\t\t\tthis.reset()\n\t\t\t})\n\t\t}\n\t}\n\n\tfirstUpdated() {\n\t\tthis.syncSelection()\n\t\tthis.setupOptionsAccessibility()\n\t}\n\n\tupdated(changedProps: PropertyValues) {\n\t\tsuper.updated(changedProps)\n\n\t\tif (changedProps.has('value')) {\n\t\t\t// Update form value when component value changes\n\t\t\tconst formValue = Array.isArray(this.value) ? this.value.join(',') : this.value\n\t\t\tthis.internals?.setFormValue(formValue)\n\n\t\t\t// Mark as dirty if value changes from initial value\n\t\t\tif (this.hasUpdated) {\n\t\t\t\tthis._dirty = true\n\t\t\t}\n\n\t\t\t// Check validity based on validation strategy\n\t\t\tif (this.hasUpdated) {\n\t\t\t\tthis.checkValidity()\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Determines if validation errors should be shown based on current state\n\t * and validation strategy\n\t */\n\tprivate shouldShowValidation(forceValidation = false): boolean {\n\t\tif (forceValidation) return true\n\n\t\tswitch (this.validateOn) {\n\t\t\tcase 'always':\n\t\t\t\treturn true\n\t\t\tcase 'touched':\n\t\t\t\treturn this._touched\n\t\t\tcase 'dirty':\n\t\t\t\treturn this._dirty\n\t\t\tcase 'submitted':\n\t\t\t\treturn this._submitted\n\t\t\tdefault:\n\t\t\t\treturn this._touched\n\t\t}\n\t}\n\n\tprivate syncSelection() {\n\t\tif (this.multi) {\n\t\t\tconst selectedValues = Array.isArray(this.value) ? this.value : []\n\t\t\tthis.options.forEach(o => (o.selected = selectedValues.includes(o.value))) // Update option selected state\n\t\t\tthis.valueLabel =\n\t\t\t\tselectedValues.length > 0\n\t\t\t\t\t? this.options\n\t\t\t\t\t\t\t.filter(o => selectedValues.includes(o.value))\n\t\t\t\t\t\t\t.map(o => o.label)\n\t\t\t\t\t\t\t.join(', ')\n\t\t\t\t\t: this.placeholder\n\t\t} else {\n\t\t\tconst selectedOption = this.options.find(o => o.value === this.value)\n\t\t\tthis.valueLabel = selectedOption?.label || this.placeholder\n\t\t}\n\t}\n\n\tprivate setupOptionsAccessibility() {\n\t\tthis.options.forEach((option, index) => {\n\t\t\toption.setAttribute('role', 'option')\n\t\t\tif (!option.id) {\n\t\t\t\toption.id = `${this.id}-option-${index}`\n\t\t\t}\n\t\t\toption.tabIndex = -1\n\t\t\tconst selectedValues = Array.isArray(this.value) ? this.value : []\n\n\t\t\toption.setAttribute(\n\t\t\t\t'aria-selected',\n\t\t\t\tString(this.multi ? selectedValues.includes(option.value) : option.value === this.value),\n\t\t\t)\n\t\t})\n\t}\n\n\tprivate async positionDropdown() {\n\t\tconst reference = this.renderRoot.querySelector('.trigger') as HTMLElement\n\t\tif (!reference || !this.ul) return\n\n\t\t// Get the available height\n\t\tconst availableHeight = window.innerHeight - reference.getBoundingClientRect().bottom - 10 // 10px buffer\n\t\tthis.ul.style.maxHeight = `${availableHeight}px` // Set max height\n\n\t\tthis.cleanupPositioner = autoUpdate(reference, this.ul, async () => {\n\t\t\tconst { x, y } = await computePosition(reference, this.ul, {\n\t\t\t\tplacement: 'bottom-start',\n\t\t\t\tmiddleware: [offset(5), flip(), shift({ padding: 5 })],\n\t\t\t})\n\n\t\t\tObject.assign(this.ul.style, {\n\t\t\t\tleft: `${x}px`,\n\t\t\t\ttop: `${y}px`,\n\t\t\t\tposition: 'absolute',\n\t\t\t})\n\t\t})\n\t}\n\n\tprivate handleKeyDown = (e: KeyboardEvent) => {\n\t\tif (!this.isOpen) {\n\t\t\tif (['Enter', ' ', 'ArrowDown'].includes(e.key)) {\n\t\t\t\te.preventDefault()\n\t\t\t\tthis.openDropdown(false)\n\t\t\t}\n\t\t\treturn\n\t\t}\n\n\t\tconst current = this.options.findIndex(o => o.matches(':focus')) ?? -1\n\n\t\tswitch (e.key) {\n\t\t\tcase 'Escape':\n\t\t\t\tthis.closeDropdown()\n\t\t\t\tbreak\n\t\t\tcase 'ArrowDown':\n\t\t\t\te.preventDefault()\n\t\t\t\tthis.focusOption(this.options, Math.min(current + 1, this.options.length - 1))\n\t\t\t\tbreak\n\t\t\tcase 'ArrowUp':\n\t\t\t\te.preventDefault()\n\t\t\t\tthis.focusOption(this.options, Math.max(current - 1, 0))\n\t\t\t\tbreak\n\t\t\tcase 'Enter':\n\t\t\tcase ' ':\n\t\t\t\te.preventDefault()\n\t\t\t\tif (current >= 0) this.handleOptionSelect(this.options[current].value)\n\t\t\t\tbreak\n\t\t\tcase 'Tab':\n\t\t\t\tthis.closeDropdown()\n\t\t\t\tbreak\n\t\t}\n\t}\n\n\tprivate focusOption(options: HTMLElement[], index: number) {\n\t\tconst option = options[index]\n\t\tif (option) {\n\t\t\toption.focus()\n\t\t\tconst combobox = this.renderRoot.querySelector('.trigger')\n\t\t\tcombobox?.setAttribute('aria-activedescendant', option.id)\n\t\t}\n\t}\n\n\tprivate async openDropdown(report = false) {\n\t\tthis._touched = true // Mark as touched when dropdown is opened\n\t\tthis.isOpen = true\n\t\tawait this.updateComplete\n\n\t\tthis.positionDropdown()\n\t\tthis.setupOptionsAccessibility()\n\n\t\tconst options = Array.from(this.ul.querySelectorAll('[role=\"option\"]')) as HTMLElement[]\n\t\tconst selectedIndex = this.multi ? 0 : options.findIndex(o => o.getAttribute('value') === this.value)\n\t\tthis.focusOption(options, Math.max(selectedIndex, 0))\n\n\t\tif (report) this.reportValidity()\n\t}\n\n\tprivate closeDropdown() {\n\t\tthis._touched = true // Mark as touched when dropdown is closed\n\t\tthis.isOpen = false\n\t\tthis.cleanupPositioner?.()\n\t\tconst combobox = this.renderRoot.querySelector<HTMLElement>('.trigger')\n\t\tcombobox?.removeAttribute('aria-activedescendant')\n\t\tcombobox?.focus()\n\n\t\t// Check validity when closing, respecting validation strategy\n\t\tif (this.shouldShowValidation()) {\n\t\t\tthis.checkValidity()\n\t\t}\n\t}\n\n\tprivate handleOptionSelect(value: string) {\n\t\tthis._userInteracted = true\n\t\tthis._touched = true\n\t\tthis._dirty = true\n\n\t\tif (this.multi) {\n\t\t\tconst option = this.options.find(o => o.value === value)\n\t\t\tif (!option) return\n\n\t\t\toption.selected = !option.selected\n\t\t\tlet selectedValues = Array.isArray(this.value) ? [...this.value] : []\n\n\t\t\tif (option.selected) {\n\t\t\t\tselectedValues = [...selectedValues, value]\n\t\t\t} else {\n\t\t\t\tselectedValues = selectedValues.filter(v => v !== value)\n\t\t\t}\n\n\t\t\tthis.value = selectedValues\n\n\t\t\tthis.valueLabel =\n\t\t\t\tselectedValues.length > 0\n\t\t\t\t\t? this.options\n\t\t\t\t\t\t\t.filter(o => selectedValues.includes(o.value))\n\t\t\t\t\t\t\t.map(o => o.label)\n\t\t\t\t\t\t\t.join(', ')\n\t\t\t\t\t: this.placeholder\n\n\t\t\tthis.dispatchChange(selectedValues)\n\t\t} else {\n\t\t\tthis.options.forEach(o => (o.selected = o.value === value))\n\t\t\tthis.value = value\n\t\t\tthis.valueLabel = this.options.find(o => o.value === value)?.label || this.placeholder\n\t\t\tthis.dispatchChange(value)\n\t\t\tthis.closeDropdown()\n\t\t}\n\n\t\tthis.setupOptionsAccessibility()\n\n\t\t// Check validity respecting validation strategy\n\t\tthis.checkValidity()\n\t}\n\n\tprivate dispatchChange(value: string | string[]) {\n\t\t// Dispatch only one change event with the value in detail\n\t\tthis.dispatchEvent(\n\t\t\tnew CustomEvent<SchmancySelectChangeEvent['detail']>('change', {\n\t\t\t\tdetail: { value },\n\t\t\t\tbubbles: true,\n\t\t\t\tcomposed: true,\n\t\t\t}),\n\t\t)\n\n\t\t// Then check validity (only show error if validation should be shown)\n\t\tthis.checkValidity()\n\t}\n\n\tpublic checkValidity(): boolean {\n\t\t// Determine if the select is empty based on whether it's multi-select or single-select\n\t\tconst isEmpty = this.multi ? !Array.isArray(this.value) || this.value.length === 0 : !this.value\n\n\t\t// Check if the value is valid (not empty when required)\n\t\tconst isValid = !(this.required && isEmpty)\n\n\t\t// Set the validity state\n\t\tthis.isValid = isValid\n\n\t\tif (!this.isValid) {\n\t\t\tthis.validationMessage = 'Please select an option.'\n\t\t\tthis.internals?.setValidity({ valueMissing: true }, 'Please select an option.', this.inputRef)\n\t\t} else {\n\t\t\t// Clear validation message\n\t\t\tthis.validationMessage = ''\n\t\t\tthis.internals?.setValidity({})\n\t\t}\n\n\t\t// Update the input component to reflect our validation state\n\t\tif (this.inputRef && this.hasUpdated) {\n\t\t\tconst showError = !this.isValid && this.shouldShowValidation()\n\t\t\tthis.inputRef.error = showError\n\t\t}\n\n\t\treturn this.isValid\n\t}\n\n\tpublic reportValidity(): boolean {\n\t\t// Force validation display regardless of validation strategy\n\t\tconst valid = this.checkValidity()\n\n\t\t// Force the input to show validation errors\n\t\tif (this.inputRef) {\n\t\t\t// Set the input's error state\n\t\t\tthis.inputRef.error = !valid\n\t\t\tthis.inputRef.hint = !valid ? this.validationMessage : this.hint\n\n\t\t\t// Only call reportValidity on the input if invalid to show the native popup\n\t\t\tif (!valid) {\n\t\t\t\tthis.inputRef.reportValidity()\n\t\t\t}\n\t\t}\n\n\t\treturn valid\n\t}\n\n\tpublic setCustomValidity(message: string) {\n\t\tthis.validationMessage = message\n\t\tif (message) {\n\t\t\tthis.isValid = false\n\t\t\tthis.internals?.setValidity({ customError: true }, message, this.inputRef)\n\t\t} else {\n\t\t\tthis.isValid = true\n\t\t\tthis.internals?.setValidity({})\n\t\t}\n\n\t\t// Update input if needed\n\t\tif (this.inputRef && this.shouldShowValidation()) {\n\t\t\tthis.inputRef.error = !this.isValid\n\t\t\tthis.inputRef.hint = !this.isValid ? this.validationMessage : this.hint\n\t\t}\n\t}\n\n\tpublic reset() {\n\t\tthis.value = ''\n\t\tthis.valueLabel = this.placeholder\n\t\tthis.isValid = true\n\t\tthis.validationMessage = ''\n\t\tthis._touched = false\n\t\tthis._dirty = false\n\t\tthis._submitted = false\n\t\tthis._userInteracted = false\n\t\tthis.internals?.setValidity({})\n\t\tthis.options.forEach(o => (o.selected = false))\n\n\t\tif (this.inputRef) {\n\t\t\tthis.inputRef.error = false\n\t\t\tthis.inputRef.hint = this.hint\n\t\t}\n\t}\n\n\trender(): TemplateResult {\n\t\t// Determine if we should show errors based on the validation strategy\n\t\tconst showErrors = !this.isValid && this.shouldShowValidation()\n\n\t\treturn html`\n\t\t\t<div class=\"relative\">\n\t\t\t\t<sch-input\n\t\t\t\t\t.name=${this.name}\n\t\t\t\t\ttabIndex=\"0\"\n\t\t\t\t\tclass=\"trigger\"\n\t\t\t\t\trole=\"combobox\"\n\t\t\t\t\taria-haspopup=\"listbox\"\n\t\t\t\t\taria-expanded=${this.isOpen}\n\t\t\t\t\taria-controls=\"options\"\n\t\t\t\t\taria-autocomplete=\"none\"\n\t\t\t\t\taria-required=${this.required}\n\t\t\t\t\t.label=${this.label}\n\t\t\t\t\t.placeholder=${this.placeholder}\n\t\t\t\t\t.value=${this.valueLabel}\n\t\t\t\t\t.required=${this.required}\n\t\t\t\t\t.hint=${showErrors ? this.validationMessage : this.hint}\n\t\t\t\t\t.error=${showErrors}\n\t\t\t\t\t.validateOn=${this.validateOn}\n\t\t\t\t\treadonly\n\t\t\t\t\t@click=${() => (this.isOpen ? this.closeDropdown() : this.openDropdown(true))}\n\t\t\t\t></sch-input>\n\n\t\t\t\t<div\n\t\t\t\t\tid=\"overlay\"\n\t\t\t\t\tclass=\"fixed inset-0\"\n\t\t\t\t\t?hidden=${!this.isOpen}\n\t\t\t\t\t@click=${this.closeDropdown}\n\t\t\t\t\ttabindex=\"-1\"\n\t\t\t\t\taria-hidden=\"true\"\n\t\t\t\t></div>\n\n\t\t\t\t<ul\n\t\t\t\t\tid=\"options\"\n\t\t\t\t\trole=\"listbox\"\n\t\t\t\t\taria-multiselectable=${this.multi}\n\t\t\t\t\tclass=${classMap({\n\t\t\t\t\t\t'absolute z-[1000] mt-1 w-full rounded-md shadow-sm': true,\n\t\t\t\t\t\thidden: !this.isOpen,\n\t\t\t\t\t})}\n\t\t\t\t\t${color({ bgColor: SchmancyTheme.sys.color.surface.container })}\n\t\t\t\t\t@click=${(e: Event) => {\n\t\t\t\t\t\tconst customEvt = e as CustomEvent\n\t\t\t\t\t\tconst detailVal = customEvt.detail?.value\n\t\t\t\t\t\tif (detailVal) {\n\t\t\t\t\t\t\tthis.handleOptionSelect(detailVal)\n\t\t\t\t\t\t}\n\t\t\t\t\t}}\n\t\t\t\t>\n\t\t\t\t\t<slot\n\t\t\t\t\t\t@slotchange=${() => {\n\t\t\t\t\t\t\tthis.syncSelection()\n\t\t\t\t\t\t\tthis.setupOptionsAccessibility()\n\t\t\t\t\t\t}}\n\t\t\t\t\t></slot>\n\t\t\t\t</ul>\n\t\t\t</div>\n\t\t`\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-select': SchmancySelect\n\t}\n}\n"],"names":["SchmancySelect","$LitElement","css","constructor","super","this","required","placeholder","value","multi","label","hint","validateOn","isOpen","valueLabel","isValid","validationMessage","_userInteracted","_touched","_dirty","_submitted","handleKeyDown","e","includes","key","preventDefault","openDropdown","current","options","findIndex","o","matches","closeDropdown","focusOption","Math","min","length","max","handleOptionSelect","internals","attachInternals","form","connectedCallback","id","random","toString","substr","addEventListener","checkValidity","reset","disconnectedCallback","removeEventListener","cleanupPositioner","firstUpdated","syncSelection","setupOptionsAccessibility","changedProps","updated","has","formValue","Array","isArray","join","setFormValue","hasUpdated","forceValidation","selectedValues","forEach","selected","filter","map","selectedOption","find","option","index","setAttribute","tabIndex","String","positionDropdown","reference","renderRoot","querySelector","ul","availableHeight","window","innerHeight","getBoundingClientRect","bottom","style","maxHeight","autoUpdate","async","x","y","computePosition","placement","middleware","offset","flip","shift","padding","Object","assign","left","top","position","focus","combobox","report","updateComplete","from","querySelectorAll","selectedIndex","getAttribute","reportValidity","removeAttribute","shouldShowValidation","v","dispatchChange","dispatchEvent","CustomEvent","detail","bubbles","composed","isEmpty","setValidity","valueMissing","inputRef","showError","error","valid","message","customError","render","showErrors","html","name","classMap","hidden","color","bgColor","SchmancyTheme","sys","surface","container","customEvt","detailVal","formAssociated","__decorateClass","property","type","prototype","Boolean","reflect","state","query","queryAssignedElements","flatten","customElement"],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- "use strict";const i=require("lit"),s=require("rxjs"),l=require("lit/directives/class-map.js"),d=require("lit/directives/style-map.js"),a=r=>class extends r{constructor(){super(...arguments),this.disconnecting=new s.Subject}classMap(t){const e={};return Object.keys(t).forEach(o=>{o.trim().split(" ").filter(Boolean).forEach(n=>{e[n]=t[o]})}),l.classMap(e)}styleMap(t){return d.styleMap(t)}disconnectedCallback(){this.disconnecting.next(!0),this.disconnecting.complete(),super.disconnectedCallback()}},c=i.unsafeCSS('/*! tailwindcss v4.0.15 | MIT License | https://tailwindcss.com */@layer theme;@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;-moz-tab-size:4;tab-size:4;font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent;font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;line-height:1.5}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-feature-settings:normal;font-variation-settings:normal;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:color-mix(in oklab,currentColor 50%,transparent)}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){-webkit-appearance:button;-moz-appearance:button;appearance:button}::file-selector-button{-webkit-appearance:button;-moz-appearance:button;appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.pointer-events-auto{pointer-events:auto}.pointer-events-none{pointer-events:none}.collapse{visibility:collapse}.visible{visibility:visible}.sr-only{clip:rect(0,0,0,0);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.sticky{position:sticky}.inset-0{top:0;right:0;bottom:0;left:0}.inset-x-6{inset-inline:1.5rem}.top-0{top:0}.top-1\\/2{top:50%}.top-6{top:1.5rem}.right-0{right:0}.right-2{right:.5rem}.right-3{right:.75rem}.bottom-0{bottom:0}.bottom-4{bottom:1rem}.left-0{left:0}.left-1\\/2{left:50%}.left-2{left:.5rem}.left-2\\.5{left:.625rem}.left-3{left:.75rem}.z-0{z-index:0}.z-10{z-index:10}.z-30{z-index:30}.z-49{z-index:49}.z-50{z-index:50}.z-\\[1000\\]{z-index:1000}.z-\\[999999\\]{z-index:999999}.z-\\[9999999\\]{z-index:9999999}.container{width:100%}@media (width>=40rem){.container{max-width:40rem}}@media (width>=48rem){.container{max-width:48rem}}@media (width>=64rem){.container{max-width:64rem}}@media (width>=80rem){.container{max-width:80rem}}@media (width>=96rem){.container{max-width:96rem}}.mx-auto{margin-inline:auto}.mt-0\\.5{margin-top:.125rem}.mt-1{margin-top:.25rem}.mt-2{margin-top:.5rem}.mt-8{margin-top:2rem}.mb-2{margin-bottom:.5rem}.mb-4{margin-bottom:1rem}.mb-\\[4px\\]{margin-bottom:4px}.-ml-px{margin-left:-1px}.ml-1{margin-left:.25rem}.ml-2{margin-left:.5rem}.ml-3{margin-left:.75rem}.ml-4{margin-left:1rem}.box-border{box-sizing:border-box}.line-clamp-1{-webkit-line-clamp:1;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.line-clamp-2{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.line-clamp-3{-webkit-line-clamp:3;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.line-clamp-4{-webkit-line-clamp:4;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.line-clamp-5{-webkit-line-clamp:5;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.line-clamp-6{-webkit-line-clamp:6;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.line-clamp-none{-webkit-line-clamp:unset;-webkit-box-orient:horizontal;display:block;overflow:visible}.block{display:block}.contents{display:contents}.flex{display:flex}.flow-root{display:flow-root}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.inline-grid{display:inline-grid}.inline-table{display:inline-table}.table{display:table}.size-2\\.5{width:.625rem;height:.625rem}.size-3{width:.75rem;height:.75rem}.size-5{width:1.25rem;height:1.25rem}.h-4{height:1rem}.h-6{height:1.5rem}.h-10{height:2.5rem}.h-\\[24px\\]{height:24px}.h-\\[50px\\]{height:50px}.h-\\[320px\\]{height:320px}.h-\\[440px\\]{height:440px}.h-auto{height:auto}.h-full{height:100%}.max-h-\\[24px\\]{max-height:24px}.max-h-\\[90vh\\]{max-height:90vh}.min-h-\\[50vh\\]{min-height:50vh}.min-h-\\[56px\\]{min-height:56px}.w-0{width:0}.w-0\\.5{width:.125rem}.w-4{width:1rem}.w-6{width:1.5rem}.w-\\[24px\\]{width:24px}.w-\\[320px\\]{width:320px}.w-fit{width:fit-content}.w-full{width:100%}.w-max{width:max-content}.max-w-\\[24px\\]{max-width:24px}.max-w-\\[320px\\]{max-width:320px}.max-w-\\[360px\\]{max-width:360px}.max-w-sm{max-width:24rem}.min-w-0{min-width:0}.min-w-\\[50vw\\]{min-width:50vw}.min-w-\\[160px\\]{min-width:160px}.flex-1{flex:1}.shrink{flex-shrink:1}.shrink-0{flex-shrink:0}.flex-grow,.grow{flex-grow:1}.-translate-x-1\\/2{--tw-translate-x: -50% ;translate:var(--tw-translate-x)var(--tw-translate-y)}.-translate-y-1\\/2{--tw-translate-y: -50% ;translate:var(--tw-translate-x)var(--tw-translate-y)}.-translate-y-1\\/4{--tw-translate-y: -25% ;translate:var(--tw-translate-x)var(--tw-translate-y)}.transform{transform:var(--tw-rotate-x)var(--tw-rotate-y)var(--tw-rotate-z)var(--tw-skew-x)var(--tw-skew-y)}.transform-gpu{transform:translateZ(0)var(--tw-rotate-x)var(--tw-rotate-y)var(--tw-rotate-z)var(--tw-skew-x)var(--tw-skew-y)}.animate-pulse{animation:2s cubic-bezier(.4,0,.6,1) infinite pulse}.cursor-pointer{cursor:pointer}.resize{resize:both}.auto-cols-max{grid-auto-columns:max-content}.grid-flow-col{grid-auto-flow:column}.grid-flow-col-dense{grid-auto-flow:column dense}.grid-flow-dense{grid-auto-flow:dense}.grid-flow-row{grid-auto-flow:row}.grid-flow-row-dense{grid-auto-flow:dense}.auto-rows-max{grid-auto-rows:max-content}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-col-reverse{flex-direction:column-reverse}.flex-row{flex-direction:row}.flex-row-reverse{flex-direction:row-reverse}.flex-nowrap{flex-wrap:nowrap}.flex-wrap{flex-wrap:wrap}.flex-wrap-reverse{flex-wrap:wrap-reverse}.content-around{align-content:space-around}.content-between{align-content:space-between}.content-center{align-content:center}.content-end{align-content:flex-end}.content-evenly{align-content:space-evenly}.content-start{align-content:flex-start}.items-baseline{align-items:baseline}.items-center{align-items:center}.items-end{align-items:flex-end}.items-start{align-items:flex-start}.items-stretch{align-items:stretch}.justify-around{justify-content:space-around}.justify-baseline{justify-content:baseline}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.justify-evenly{justify-content:space-evenly}.justify-start{justify-content:flex-start}.justify-stretch{justify-content:stretch}.justify-items-center{justify-items:center}.justify-items-end{justify-items:end}.justify-items-start{justify-items:start}.justify-items-stretch{justify-items:stretch}.gap-0{gap:0}.gap-1{gap:.25rem}.gap-2{gap:.5rem}.gap-4{gap:1rem}.gap-8{gap:2rem}.gap-\\[8px\\]{gap:8px}:where(.space-y-4>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(1rem *var(--tw-space-y-reverse));margin-block-end:calc(1rem *calc(1 - var(--tw-space-y-reverse)))}:where(.space-x-2>:not(:last-child)){--tw-space-x-reverse:0;margin-inline-start:calc(.5rem *var(--tw-space-x-reverse));margin-inline-end:calc(.5rem *calc(1 - var(--tw-space-x-reverse)))}.self-start{align-self:flex-start}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-scroll{overflow:scroll}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.overscroll-contain{overscroll-behavior:contain}.overscroll-none{overscroll-behavior:none}.scroll-smooth{scroll-behavior:smooth}.rounded-\\[8px\\]{border-radius:8px}.rounded-\\[inherit\\]{border-radius:inherit}.rounded-full{border-radius:3.40282e38px}.rounded-lg{border-radius:.5rem}.rounded-md{border-radius:.375rem}.rounded-none{border-radius:0}.rounded-t-\\[8px\\]{border-top-left-radius:8px;border-top-right-radius:8px}.rounded-t-full{border-top-left-radius:3.40282e38px;border-top-right-radius:3.40282e38px}.rounded-l-\\[8px\\]{border-top-left-radius:8px;border-bottom-left-radius:8px}.rounded-r-\\[8px\\]{border-top-right-radius:8px;border-bottom-right-radius:8px}.rounded-b-\\[8px\\]{border-bottom-right-radius:8px;border-bottom-left-radius:8px}.border{border-style:var(--tw-border-style);border-width:1px}.border-0{border-style:var(--tw-border-style);border-width:0}.border-1{border-style:var(--tw-border-style);border-width:1px}.border-2{border-style:var(--tw-border-style);border-width:2px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-solid{--tw-border-style:solid;border-style:solid}.border-gray-300{border-color:#d1d5dc}.border-outline{border-color:var(--schmancy-sys-color-outline)}.border-outlineVariant{border-color:var(--schmancy-sys-color-outlineVariant)}.border-primary-default{border-color:var(--schmancy-sys-color-primary-default)}.border-tertiary-default{border-color:var(--schmancy-sys-color-tertiary-default)}.border-transparent{border-color:#0000}.bg-gray-300{background-color:#d1d5dc}.bg-primary-default{background-color:var(--schmancy-sys-color-primary-default)}.bg-secondary-container{background-color:var(--schmancy-sys-color-secondary-container)}.bg-surface-bright{background-color:var(--schmancy-sys-color-surface-bright)}.bg-surface-container{background-color:var(--schmancy-sys-color-surface-container)}.bg-surface-default{background-color:var(--schmancy-sys-color-surface-default)}.bg-surface-dim{background-color:var(--schmancy-sys-color-surface-dim)}.bg-surface-high{background-color:var(--schmancy-sys-color-surface-high)}.bg-surface-highest{background-color:var(--schmancy-sys-color-surface-highest)}.bg-surface-low{background-color:var(--schmancy-sys-color-surface-low)}.bg-surface-lowest{background-color:var(--schmancy-sys-color-surface-lowest)}.bg-tertiary-default{background-color:var(--schmancy-sys-color-tertiary-default)}.bg-transparent{background-color:#0000}.bg-white{background-color:#fff}.object-contain{object-fit:contain}.object-cover{object-fit:cover}.object-fill{object-fit:fill}.object-none{object-fit:none}.object-scale-down{object-fit:scale-down}.object-center{object-position:center}.p-0{padding:0}.p-2{padding:.5rem}.p-4{padding:1rem}.p-8{padding:2rem}.p-\\[16px\\]{padding:16px}.p-\\[32px\\]{padding:32px}.px-3{padding-inline:.75rem}.px-4{padding-inline:1rem}.px-6{padding-inline:1.5rem}.px-7{padding-inline:1.75rem}.px-\\[6px\\]{padding-inline:6px}.px-\\[8px\\]{padding-inline:8px}.px-\\[12px\\]{padding-inline:12px}.px-\\[16px\\]{padding-inline:16px}.py-2{padding-block:.5rem}.py-3{padding-block:.75rem}.py-5{padding-block:1.25rem}.py-6{padding-block:1.5rem}.py-12{padding-block:3rem}.py-\\[6px\\]{padding-block:6px}.py-\\[8px\\]{padding-block:8px}.py-\\[12px\\]{padding-block:12px}.py-\\[24px\\]{padding-block:24px}.pt-0\\.5{padding-top:.125rem}.pt-\\[1px\\]{padding-top:1px}.pt-\\[2px\\]{padding-top:2px}.pt-\\[3px\\]{padding-top:3px}.pt-\\[4px\\]{padding-top:4px}.pb-4{padding-bottom:1rem}.pb-12{padding-bottom:3rem}.pb-\\[300px\\]{padding-bottom:300px}.pl-2{padding-left:.5rem}.text-center{text-align:center}.text-justify{text-align:justify}.text-right{text-align:right}.text-start{text-align:start}.align-middle{vertical-align:middle}.text-base{font-size:1rem;line-height:var(--tw-leading, 1.5 )}.text-lg{font-size:1.125rem;line-height:var(--tw-leading,calc(1.75/1.125))}.text-sm{font-size:.875rem;line-height:var(--tw-leading,calc(1.25/.875))}.text-xs{font-size:.75rem;line-height:var(--tw-leading,calc(1/.75))}.text-\\[11px\\]{font-size:11px}.text-\\[12px\\]{font-size:12px}.text-\\[14px\\]{font-size:14px}.text-\\[16px\\]{font-size:16px}.text-\\[22px\\]{font-size:22px}.text-\\[24px\\]{font-size:24px}.text-\\[28px\\]{font-size:28px}.text-\\[32px\\]{font-size:32px}.text-\\[36px\\]{font-size:36px}.text-\\[45px\\]{font-size:45px}.text-\\[57px\\]{font-size:57px}.leading-6{--tw-leading: 1.5rem ;line-height:1.5rem}.leading-\\[16px\\]{--tw-leading:16px;line-height:16px}.leading-\\[20px\\]{--tw-leading:20px;line-height:20px}.leading-\\[24px\\]{--tw-leading:24px;line-height:24px}.leading-\\[28px\\]{--tw-leading:28px;line-height:28px}.leading-\\[32px\\]{--tw-leading:32px;line-height:32px}.leading-\\[36px\\]{--tw-leading:36px;line-height:36px}.leading-\\[40px\\]{--tw-leading:40px;line-height:40px}.leading-\\[44px\\]{--tw-leading:44px;line-height:44px}.leading-\\[52px\\]{--tw-leading:52px;line-height:52px}.leading-\\[64px\\]{--tw-leading:64px;line-height:64px}.font-bold{--tw-font-weight:700;font-weight:700}.font-medium{--tw-font-weight:500;font-weight:500}.font-normal{--tw-font-weight:400;font-weight:400}.font-semibold{--tw-font-weight:600;font-weight:600}.tracking-\\[-0\\.25px\\]{--tw-tracking:-.25px;letter-spacing:-.25px}.tracking-\\[0\\.1px\\]{--tw-tracking:.1px;letter-spacing:.1px}.tracking-\\[0\\.4px\\]{--tw-tracking:.4px;letter-spacing:.4px}.tracking-\\[0\\.5px\\]{--tw-tracking:.5px;letter-spacing:.5px}.tracking-\\[0\\.15px\\]{--tw-tracking:.15px;letter-spacing:.15px}.tracking-\\[0\\.25px\\]{--tw-tracking:.25px;letter-spacing:.25px}.tracking-\\[0px\\]{--tw-tracking:0px;letter-spacing:0}.text-ellipsis{text-overflow:ellipsis}.hyphens-none{-webkit-hyphens:none;hyphens:none}.text-error-default{color:var(--schmancy-sys-color-error-default)}.text-gray-500{color:#6a7282}.text-gray-900{color:#101828}.text-indigo-600{color:#4f39f6}.text-primary-default{color:var(--schmancy-sys-color-primary-default)}.text-primary-on{color:var(--schmancy-sys-color-primary-on)}.text-secondary-onContainer{color:var(--schmancy-sys-color-secondary-onContainer)}.text-success-default{color:var(--schmancy-sys-color-success-default)}.text-surface-on{color:var(--schmancy-sys-color-surface-on)}.text-tertiary-default{color:var(--schmancy-sys-color-tertiary-default)}.text-white{color:#fff}.capitalize{text-transform:capitalize}.lowercase{text-transform:lowercase}.uppercase{text-transform:uppercase}.caret-transparent{caret-color:#0000}.opacity-0{opacity:0}.opacity-1{opacity:.01}.opacity-40{opacity:.4}.opacity-50{opacity:.5}.opacity-\\[0\\.08\\]{opacity:.08}.opacity-\\[0\\.38\\]{opacity:.38}.shadow-1{--tw-shadow:var(--schmancy-sys-elevation-1);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-5{--tw-shadow:var(--schmancy-sys-elevation-5);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-lg{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a),0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-md{--tw-shadow:0 4px 6px -1px var(--tw-shadow-color,#0000001a),0 2px 4px -2px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-sm{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a),0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-xl{--tw-shadow:0 20px 25px -5px var(--tw-shadow-color,#0000001a),0 8px 10px -6px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-xs{--tw-shadow:0 1px 2px 0 var(--tw-shadow-color,#0000000d);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(1px + var(--tw-ring-offset-width))var(--tw-ring-color,currentColor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring-0{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(0px + var(--tw-ring-offset-width))var(--tw-ring-color,currentColor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring-1{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(1px + var(--tw-ring-offset-width))var(--tw-ring-color,currentColor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring-error-default{--tw-ring-color:var(--schmancy-sys-color-error-default)}.ring-outline{--tw-ring-color:var(--schmancy-sys-color-outline)}.ring-outlineVariant{--tw-ring-color:var(--schmancy-sys-color-outlineVariant)}.ring-primary-default{--tw-ring-color:var(--schmancy-sys-color-primary-default)}.ring-secondary-default{--tw-ring-color:var(--schmancy-sys-color-secondary-default)}.outline-hidden{--tw-outline-style:none;outline-style:none}@media (forced-colors:active){.outline-hidden{outline-offset:2px;outline:2px solid #0000}}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.outline-secondary-default{outline-color:var(--schmancy-sys-color-secondary-default)}.filter{filter:var(--tw-blur,)var(--tw-brightness,)var(--tw-contrast,)var(--tw-grayscale,)var(--tw-hue-rotate,)var(--tw-invert,)var(--tw-saturate,)var(--tw-sepia,)var(--tw-drop-shadow,)}.backdrop-filter{-webkit-backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,)}.transition-all{transition-property:all;transition-timing-function:var(--tw-ease,ease);transition-duration:var(--tw-duration,0s)}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,ease);transition-duration:var(--tw-duration,0s)}.transition-opacity{transition-property:opacity;transition-timing-function:var(--tw-ease,ease);transition-duration:var(--tw-duration,0s)}.duration-200{--tw-duration:.2s;transition-duration:.2s}.duration-500{--tw-duration:.5s;transition-duration:.5s}.ease-in{--tw-ease:cubic-bezier(.4,0,1,1);transition-timing-function:cubic-bezier(.4,0,1,1)}.ease-in-out{--tw-ease:cubic-bezier(.4,0,.2,1);transition-timing-function:cubic-bezier(.4,0,.2,1)}.ease-out{--tw-ease:cubic-bezier(0,0,.2,1);transition-timing-function:cubic-bezier(0,0,.2,1)}.ring-inset{--tw-ring-inset:inset}@media (hover:hover){.group-hover\\:border-gray-400:is(:where(.group):hover *){border-color:#99a1af}.group-hover\\:bg-gray-300:is(:where(.group):hover *){background-color:#d1d5dc}.group-hover\\:bg-tertiary-onContainer:is(:where(.group):hover *){background-color:var(--schmancy-sys-color-tertiary-onContainer)}.hover\\:border-gray-300:hover{border-color:#d1d5dc}.hover\\:bg-primary-default:hover{background-color:var(--schmancy-sys-color-primary-default)}.hover\\:bg-primary-on:hover{background-color:var(--schmancy-sys-color-primary-on)}.hover\\:bg-secondary-container:hover{background-color:var(--schmancy-sys-color-secondary-container)}.hover\\:bg-surface-on:hover{background-color:var(--schmancy-sys-color-surface-on)}.hover\\:text-gray-700:hover{color:#364153}.hover\\:opacity-\\[0\\.08\\]:hover{opacity:.08}.hover\\:shadow-sm:hover{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a),0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.hover\\:shadow-xs:hover{--tw-shadow:0 1px 2px 0 var(--tw-shadow-color,#0000000d);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}}.focus\\:ring-1:focus{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(1px + var(--tw-ring-offset-width))var(--tw-ring-color,currentColor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus\\:ring-error-default:focus{--tw-ring-color:var(--schmancy-sys-color-error-default)}.focus\\:ring-indigo-600:focus{--tw-ring-color:oklch(.511 .262 276.966)}.focus\\:ring-primary-default:focus{--tw-ring-color:var(--schmancy-sys-color-primary-default)}.focus\\:ring-secondary-default:focus{--tw-ring-color:var(--schmancy-sys-color-secondary-default)}.focus\\:outline-hidden:focus{--tw-outline-style:none;outline-style:none}@media (forced-colors:active){.focus\\:outline-hidden:focus{outline-offset:2px;outline:2px solid #0000}}.focus\\:outline-1:focus{outline-style:var(--tw-outline-style);outline-width:1px}.focus\\:ring-inset:focus{--tw-ring-inset:inset}.focus-visible\\:z-1:focus-visible{z-index:1}.focus-visible\\:outline-2:focus-visible{outline-style:var(--tw-outline-style);outline-width:2px}.focus-visible\\:-outline-offset-2:focus-visible{outline-offset:-2px}.focus-visible\\:outline-offset-0:focus-visible{outline-offset:0px}.focus-visible\\:outline-offset-2:focus-visible{outline-offset:2px}.focus-visible\\:outline-secondary-default:focus-visible{outline-color:var(--schmancy-sys-color-secondary-default)}.focus-visible\\:outline-solid:focus-visible{--tw-outline-style:solid;outline-style:solid}.disabled\\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\\:opacity-40:disabled{opacity:.4}@media (width>=40rem){.sm\\:items-end{align-items:flex-end}.sm\\:items-start{align-items:flex-start}.sm\\:p-6{padding:1.5rem}.sm\\:px-\\[12px\\]{padding-inline:12px}}@media (width>=48rem){.md\\:right-0{right:0}.md\\:left-\\[unset\\]{left:unset}.md\\:block{display:block}.md\\:hidden{display:none}.md\\:px-\\[16px\\]{padding-inline:16px}}}:host,:root{font-family:var(--schmancy-font-family)}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-rotate-x{syntax:"*";inherits:false;initial-value:rotateX(0)}@property --tw-rotate-y{syntax:"*";inherits:false;initial-value:rotateY(0)}@property --tw-rotate-z{syntax:"*";inherits:false;initial-value:rotateZ(0)}@property --tw-skew-x{syntax:"*";inherits:false;initial-value:skewX(0)}@property --tw-skew-y{syntax:"*";inherits:false;initial-value:skewY(0)}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-space-x-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-backdrop-blur{syntax:"*";inherits:false}@property --tw-backdrop-brightness{syntax:"*";inherits:false}@property --tw-backdrop-contrast{syntax:"*";inherits:false}@property --tw-backdrop-grayscale{syntax:"*";inherits:false}@property --tw-backdrop-hue-rotate{syntax:"*";inherits:false}@property --tw-backdrop-invert{syntax:"*";inherits:false}@property --tw-backdrop-opacity{syntax:"*";inherits:false}@property --tw-backdrop-saturate{syntax:"*";inherits:false}@property --tw-backdrop-sepia{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}@keyframes pulse{50%{opacity:.5}}'),p=r=>{const e=class e extends i.LitElement{};e.styles=[i.unsafeCSS(r),c];let t=e;return t};exports.BaseElement=a,exports.TailwindElement=r=>{class t extends a(p(r)){constructor(){super(...arguments),this.disconnectedCallback=()=>{super.disconnectedCallback()}}}return t};
2
- //# sourceMappingURL=tailwind.mixin-BmxNqOqA.cjs.map