@mhmo91/schmancy 0.4.13 → 0.4.15

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 (314) hide show
  1. package/ai/busy.md +6 -7
  2. package/ai/button.md +5 -5
  3. package/ai/card.md +1 -1
  4. package/ai/checkbox.md +15 -25
  5. package/ai/form.md +63 -66
  6. package/ai/input.md +33 -28
  7. package/ai/notification.md +47 -61
  8. package/ai/radio-group.md +47 -29
  9. package/ai/select.md +3 -3
  10. package/ai/typography.md +12 -12
  11. package/dist/ai/busy.md +6 -7
  12. package/dist/ai/button.md +5 -5
  13. package/dist/ai/card.md +1 -1
  14. package/dist/ai/checkbox.md +15 -25
  15. package/dist/ai/form.md +63 -66
  16. package/dist/ai/input.md +33 -28
  17. package/dist/ai/notification.md +47 -61
  18. package/dist/ai/radio-group.md +47 -29
  19. package/dist/ai/select.md +3 -3
  20. package/dist/ai/typography.md +12 -12
  21. package/dist/{animated-text-DrgxxVXA.js → animated-text-CuOeUPBc.js} +3 -3
  22. package/dist/{animated-text-DrgxxVXA.js.map → animated-text-CuOeUPBc.js.map} +1 -1
  23. package/dist/{animated-text-aOZ4KXTt.cjs → animated-text-vI_J_T4H.cjs} +2 -2
  24. package/dist/{animated-text-aOZ4KXTt.cjs.map → animated-text-vI_J_T4H.cjs.map} +1 -1
  25. package/dist/animated-text.cjs +1 -1
  26. package/dist/animated-text.js +1 -1
  27. package/dist/area.cjs +1 -1
  28. package/dist/{area.component-BNENor9z.js → area.component-BM9ihM3x.js} +3 -3
  29. package/dist/{area.component-BNENor9z.js.map → area.component-BM9ihM3x.js.map} +1 -1
  30. package/dist/{area.component-BEiNkBI9.cjs → area.component-DMXMTNuu.cjs} +2 -2
  31. package/dist/{area.component-BEiNkBI9.cjs.map → area.component-DMXMTNuu.cjs.map} +1 -1
  32. package/dist/area.js +1 -1
  33. package/dist/{autocomplete-L0aas1vi.cjs → autocomplete-BF2L9FvO.cjs} +2 -2
  34. package/dist/{autocomplete-L0aas1vi.cjs.map → autocomplete-BF2L9FvO.cjs.map} +1 -1
  35. package/dist/{autocomplete-86x1z92h.js → autocomplete-BmY1HiRm.js} +3 -3
  36. package/dist/{autocomplete-86x1z92h.js.map → autocomplete-BmY1HiRm.js.map} +1 -1
  37. package/dist/autocomplete.cjs +1 -1
  38. package/dist/autocomplete.js +1 -1
  39. package/dist/{avatar-Cy-cEMb2.cjs → avatar-C4oY5hJn.cjs} +2 -2
  40. package/dist/{avatar-Cy-cEMb2.cjs.map → avatar-C4oY5hJn.cjs.map} +1 -1
  41. package/dist/{avatar-DtzFyhlM.js → avatar-Cpqpem_H.js} +45 -45
  42. package/dist/{avatar-DtzFyhlM.js.map → avatar-Cpqpem_H.js.map} +1 -1
  43. package/dist/badge.cjs +1 -1
  44. package/dist/badge.js +1 -1
  45. package/dist/{boat-CMO8rBpx.js → boat-DhLd0NFJ.js} +2 -2
  46. package/dist/{boat-CMO8rBpx.js.map → boat-DhLd0NFJ.js.map} +1 -1
  47. package/dist/{boat-BMESV9c8.cjs → boat-GHXDYUXo.cjs} +2 -2
  48. package/dist/{boat-BMESV9c8.cjs.map → boat-GHXDYUXo.cjs.map} +1 -1
  49. package/dist/boat.cjs +1 -1
  50. package/dist/boat.js +1 -1
  51. package/dist/busy.cjs +1 -1
  52. package/dist/busy.js +1 -1
  53. package/dist/button.cjs +1 -1
  54. package/dist/button.js +1 -1
  55. package/dist/card.cjs +1 -1
  56. package/dist/card.js +1 -1
  57. package/dist/{checkbox-Chh3OgWJ.js → checkbox-BOQEemBC.js} +2 -2
  58. package/dist/{checkbox-Chh3OgWJ.js.map → checkbox-BOQEemBC.js.map} +1 -1
  59. package/dist/{checkbox-C7Xx4zVu.cjs → checkbox-CRwmpo0I.cjs} +2 -2
  60. package/dist/{checkbox-C7Xx4zVu.cjs.map → checkbox-CRwmpo0I.cjs.map} +1 -1
  61. package/dist/checkbox.cjs +1 -1
  62. package/dist/checkbox.js +1 -1
  63. package/dist/{chips-CZWOuWYh.js → chips-CAdNz2hu.js} +3 -3
  64. package/dist/{chips-CZWOuWYh.js.map → chips-CAdNz2hu.js.map} +1 -1
  65. package/dist/{chips-BPaU1fIQ.cjs → chips-CL4ex3S5.cjs} +2 -2
  66. package/dist/{chips-BPaU1fIQ.cjs.map → chips-CL4ex3S5.cjs.map} +1 -1
  67. package/dist/chips.cjs +1 -1
  68. package/dist/chips.js +1 -1
  69. package/dist/{circular-progress-xJRFI7FV.js → circular-progress-Byjn--Fy.js} +3 -3
  70. package/dist/{circular-progress-xJRFI7FV.js.map → circular-progress-Byjn--Fy.js.map} +1 -1
  71. package/dist/{circular-progress-B716jMbW.cjs → circular-progress-DHLvm1dK.cjs} +2 -2
  72. package/dist/{circular-progress-B716jMbW.cjs.map → circular-progress-DHLvm1dK.cjs.map} +1 -1
  73. package/dist/circular-progress.cjs +1 -1
  74. package/dist/circular-progress.js +1 -1
  75. package/dist/code-highlight.cjs +1 -1
  76. package/dist/code-highlight.js +1 -1
  77. package/dist/{code-preview-D1CCeP9o.cjs → code-preview-C0kMHrZp.cjs} +2 -2
  78. package/dist/{code-preview-D1CCeP9o.cjs.map → code-preview-C0kMHrZp.cjs.map} +1 -1
  79. package/dist/{code-preview-BMLIHTbp.js → code-preview-KWJFLNdy.js} +2 -2
  80. package/dist/{code-preview-BMLIHTbp.js.map → code-preview-KWJFLNdy.js.map} +1 -1
  81. package/dist/components.cjs +1 -1
  82. package/dist/components.js +1 -1
  83. package/dist/content-drawer.cjs +1 -1
  84. package/dist/content-drawer.js +1 -1
  85. package/dist/{date-range-fP7yi819.js → date-range-Dbw7tlTg.js} +3 -3
  86. package/dist/{date-range-fP7yi819.js.map → date-range-Dbw7tlTg.js.map} +1 -1
  87. package/dist/{date-range-BncoO-ye.cjs → date-range-Dq9AYUX9.cjs} +2 -2
  88. package/dist/{date-range-BncoO-ye.cjs.map → date-range-Dq9AYUX9.cjs.map} +1 -1
  89. package/dist/date-range.cjs +1 -1
  90. package/dist/date-range.js +1 -1
  91. package/dist/{delay-oQ9qrOV_.cjs → delay-CHFrBv7q.cjs} +2 -2
  92. package/dist/{delay-oQ9qrOV_.cjs.map → delay-CHFrBv7q.cjs.map} +1 -1
  93. package/dist/{delay-DN_yNSsK.js → delay-DVNcXeFo.js} +2 -2
  94. package/dist/{delay-DN_yNSsK.js.map → delay-DVNcXeFo.js.map} +1 -1
  95. package/dist/delay.cjs +1 -1
  96. package/dist/delay.js +1 -1
  97. package/dist/{dialog-content-BxiEOcGi.js → dialog-content-BUZnNGK5.js} +3 -3
  98. package/dist/{dialog-content-BxiEOcGi.js.map → dialog-content-BUZnNGK5.js.map} +1 -1
  99. package/dist/{dialog-content-aKmUf0nh.cjs → dialog-content-Bgc7dtoN.cjs} +2 -2
  100. package/dist/{dialog-content-aKmUf0nh.cjs.map → dialog-content-Bgc7dtoN.cjs.map} +1 -1
  101. package/dist/dialog.cjs +1 -1
  102. package/dist/dialog.js +1 -1
  103. package/dist/{divider-CZMnnY6N.js → divider-Baxo2_bg.js} +3 -3
  104. package/dist/{divider-CZMnnY6N.js.map → divider-Baxo2_bg.js.map} +1 -1
  105. package/dist/{divider-DH4gDqR3.cjs → divider-ONYdMCC3.cjs} +2 -2
  106. package/dist/{divider-DH4gDqR3.cjs.map → divider-ONYdMCC3.cjs.map} +1 -1
  107. package/dist/divider.cjs +1 -1
  108. package/dist/divider.js +1 -1
  109. package/dist/{dropdown-content-CDONqec-.js → dropdown-content-Di_ThsYr.js} +3 -3
  110. package/dist/{dropdown-content-CDONqec-.js.map → dropdown-content-Di_ThsYr.js.map} +1 -1
  111. package/dist/{dropdown-content-B_nQ7JQb.cjs → dropdown-content-DjcEmYM4.cjs} +2 -2
  112. package/dist/{dropdown-content-B_nQ7JQb.cjs.map → dropdown-content-DjcEmYM4.cjs.map} +1 -1
  113. package/dist/dropdown.cjs +1 -1
  114. package/dist/dropdown.js +1 -1
  115. package/dist/extra.cjs +1 -1
  116. package/dist/extra.js +1 -1
  117. package/dist/{flex-CdU3dsnT.cjs → flex-B_mu8j3k.cjs} +2 -2
  118. package/dist/{flex-CdU3dsnT.cjs.map → flex-B_mu8j3k.cjs.map} +1 -1
  119. package/dist/{flex-DpEq-xBP.js → flex-CqNaXCKb.js} +2 -2
  120. package/dist/{flex-DpEq-xBP.js.map → flex-CqNaXCKb.js.map} +1 -1
  121. package/dist/{form-DOXwEWEA.cjs → form-ha4Eqx8c.cjs} +2 -2
  122. package/dist/{form-DOXwEWEA.cjs.map → form-ha4Eqx8c.cjs.map} +1 -1
  123. package/dist/{form-CBQ7tqoN.js → form-t3eedyiY.js} +2 -2
  124. package/dist/{form-CBQ7tqoN.js.map → form-t3eedyiY.js.map} +1 -1
  125. package/dist/form.cjs +1 -1
  126. package/dist/form.js +1 -1
  127. package/dist/{formField.mixin-Dua_nJpW.js → formField.mixin-DzKDhHbR.js} +2 -2
  128. package/dist/{formField.mixin-Dua_nJpW.js.map → formField.mixin-DzKDhHbR.js.map} +1 -1
  129. package/dist/{formField.mixin-s6FQGAPU.cjs → formField.mixin-d14Fm5er.cjs} +2 -2
  130. package/dist/{formField.mixin-s6FQGAPU.cjs.map → formField.mixin-d14Fm5er.cjs.map} +1 -1
  131. package/dist/{icon-MwCR53u1.cjs → icon-CFCGmi4A.cjs} +2 -2
  132. package/dist/{icon-MwCR53u1.cjs.map → icon-CFCGmi4A.cjs.map} +1 -1
  133. package/dist/{icon-button-Dv6GLseS.cjs → icon-button-D4GrKqC0.cjs} +2 -2
  134. package/dist/{icon-button-Dv6GLseS.cjs.map → icon-button-D4GrKqC0.cjs.map} +1 -1
  135. package/dist/{icon-button-nX-6I8-n.js → icon-button-UhONt-F9.js} +3 -3
  136. package/dist/{icon-button-nX-6I8-n.js.map → icon-button-UhONt-F9.js.map} +1 -1
  137. package/dist/{icon-h6T16FZr.js → icon-tJDnrQSl.js} +2 -2
  138. package/dist/{icon-h6T16FZr.js.map → icon-tJDnrQSl.js.map} +1 -1
  139. package/dist/icons.cjs +1 -1
  140. package/dist/icons.js +1 -1
  141. package/dist/index.cjs +1 -1
  142. package/dist/index.js +43 -43
  143. package/dist/{input-CRyjA5vL.js → input-BKGOpZ3z.js} +3 -3
  144. package/dist/{input-CRyjA5vL.js.map → input-BKGOpZ3z.js.map} +1 -1
  145. package/dist/{input-oZQ_ATz5.cjs → input-dNXzVzgY.cjs} +2 -2
  146. package/dist/{input-oZQ_ATz5.cjs.map → input-dNXzVzgY.cjs.map} +1 -1
  147. package/dist/input.cjs +1 -1
  148. package/dist/input.js +1 -1
  149. package/dist/layout.cjs +1 -1
  150. package/dist/layout.js +1 -1
  151. package/dist/{list-le1t7wnv.js → list-BXQI_aVt.js} +2 -2
  152. package/dist/{list-le1t7wnv.js.map → list-BXQI_aVt.js.map} +1 -1
  153. package/dist/{list-DsOs1b2s.cjs → list-DLKOrlMB.cjs} +2 -2
  154. package/dist/{list-DsOs1b2s.cjs.map → list-DLKOrlMB.cjs.map} +1 -1
  155. package/dist/list.cjs +1 -1
  156. package/dist/list.js +1 -1
  157. package/dist/{litElement.mixin-nh8G1Uii.js → litElement.mixin-BFshhc99.js} +2 -2
  158. package/dist/{litElement.mixin-nh8G1Uii.js.map → litElement.mixin-BFshhc99.js.map} +1 -1
  159. package/dist/{litElement.mixin-HAhKNS-6.cjs → litElement.mixin-D80K-DKp.cjs} +2 -2
  160. package/dist/{litElement.mixin-HAhKNS-6.cjs.map → litElement.mixin-D80K-DKp.cjs.map} +1 -1
  161. package/dist/{media-BP4kiHwu.js → media-CMy1y_G4.js} +2 -2
  162. package/dist/{media-BP4kiHwu.js.map → media-CMy1y_G4.js.map} +1 -1
  163. package/dist/{media-D90bHvDD.cjs → media-DrrOd3Cp.cjs} +2 -2
  164. package/dist/{media-D90bHvDD.cjs.map → media-DrrOd3Cp.cjs.map} +1 -1
  165. package/dist/{menu-BirD28L0.js → menu-CIbYjq5w.js} +3 -3
  166. package/dist/{menu-BirD28L0.js.map → menu-CIbYjq5w.js.map} +1 -1
  167. package/dist/{menu-C0F6gTv9.cjs → menu-HxSHRr44.cjs} +2 -2
  168. package/dist/{menu-C0F6gTv9.cjs.map → menu-HxSHRr44.cjs.map} +1 -1
  169. package/dist/menu.cjs +1 -1
  170. package/dist/menu.js +1 -1
  171. package/dist/nav-drawer.cjs +1 -1
  172. package/dist/nav-drawer.js +1 -1
  173. package/dist/{notification-service-COqkYPMO.cjs → notification-service-D6dwccSa.cjs} +2 -2
  174. package/dist/{notification-service-COqkYPMO.cjs.map → notification-service-D6dwccSa.cjs.map} +1 -1
  175. package/dist/{notification-service-CX1notpL.js → notification-service-DqhrEhim.js} +3 -3
  176. package/dist/{notification-service-CX1notpL.js.map → notification-service-DqhrEhim.js.map} +1 -1
  177. package/dist/notification.cjs +1 -1
  178. package/dist/notification.js +1 -1
  179. package/dist/{option-BgfgOhne.js → option-B7mh5iBR.js} +2 -2
  180. package/dist/{option-BgfgOhne.js.map → option-B7mh5iBR.js.map} +1 -1
  181. package/dist/{option-C2ioIuX3.cjs → option-YZacOiKm.cjs} +2 -2
  182. package/dist/{option-C2ioIuX3.cjs.map → option-YZacOiKm.cjs.map} +1 -1
  183. package/dist/option.cjs +1 -1
  184. package/dist/option.js +1 -1
  185. package/dist/{payment-card-form-CPdQDBjl.cjs → payment-card-form-Ba3j-mko.cjs} +2 -2
  186. package/dist/{payment-card-form-CPdQDBjl.cjs.map → payment-card-form-Ba3j-mko.cjs.map} +1 -1
  187. package/dist/{payment-card-form-BV5TjuAP.js → payment-card-form-jeoZZi6p.js} +3 -3
  188. package/dist/{payment-card-form-BV5TjuAP.js.map → payment-card-form-jeoZZi6p.js.map} +1 -1
  189. package/dist/progress-CZXKwGBB.cjs +35 -0
  190. package/dist/progress-CZXKwGBB.cjs.map +1 -0
  191. package/dist/progress-D4y0dpK9.js +57 -0
  192. package/dist/progress-D4y0dpK9.js.map +1 -0
  193. package/dist/progress.cjs +1 -1
  194. package/dist/progress.js +1 -1
  195. package/dist/{radio-button-D6ZQIEMc.js → radio-button-CKty5_sG.js} +3 -3
  196. package/dist/{radio-button-D6ZQIEMc.js.map → radio-button-CKty5_sG.js.map} +1 -1
  197. package/dist/{radio-button-Bplx6LUo.cjs → radio-button-DeAY1R3D.cjs} +2 -2
  198. package/dist/{radio-button-Bplx6LUo.cjs.map → radio-button-DeAY1R3D.cjs.map} +1 -1
  199. package/dist/radio-group.cjs +1 -1
  200. package/dist/radio-group.js +1 -1
  201. package/dist/{schmancy-steps-container-CI_dfEaJ.cjs → schmancy-steps-container-CmSXDf7C.cjs} +2 -2
  202. package/dist/{schmancy-steps-container-CI_dfEaJ.cjs.map → schmancy-steps-container-CmSXDf7C.cjs.map} +1 -1
  203. package/dist/{schmancy-steps-container-feCUXcti.js → schmancy-steps-container-DdxlPOl3.js} +2 -2
  204. package/dist/{schmancy-steps-container-feCUXcti.js.map → schmancy-steps-container-DdxlPOl3.js.map} +1 -1
  205. package/dist/{select-B4HKxJNd.js → select-DCqtkgHe.js} +7 -7
  206. package/dist/select-DCqtkgHe.js.map +1 -0
  207. package/dist/select-JeuY2nWW.cjs +56 -0
  208. package/dist/select-JeuY2nWW.cjs.map +1 -0
  209. package/dist/select.cjs +1 -1
  210. package/dist/select.js +1 -1
  211. package/dist/{sheet-CoHqDHlJ.js → sheet-q6FFKREE.js} +4 -4
  212. package/dist/{sheet-CoHqDHlJ.js.map → sheet-q6FFKREE.js.map} +1 -1
  213. package/dist/{sheet-BD7mNPgo.cjs → sheet-t4A4BeGz.cjs} +2 -2
  214. package/dist/{sheet-BD7mNPgo.cjs.map → sheet-t4A4BeGz.cjs.map} +1 -1
  215. package/dist/sheet.cjs +1 -1
  216. package/dist/sheet.js +2 -2
  217. package/dist/{theme.component-CqT-wazM.cjs → sheet.service-DO-2bnGp.cjs} +3 -3
  218. package/dist/sheet.service-DO-2bnGp.cjs.map +1 -0
  219. package/dist/{theme.component-Biom0Mmq.js → sheet.service-DqO2aRtR.js} +60 -60
  220. package/dist/sheet.service-DqO2aRtR.js.map +1 -0
  221. package/dist/{slider-D8YnrJ-8.cjs → slider-BtKp18tE.cjs} +2 -2
  222. package/dist/{slider-D8YnrJ-8.cjs.map → slider-BtKp18tE.cjs.map} +1 -1
  223. package/dist/{slider-B7r8w_31.js → slider-Cv78iuoH.js} +3 -3
  224. package/dist/{slider-B7r8w_31.js.map → slider-Cv78iuoH.js.map} +1 -1
  225. package/dist/slider.cjs +1 -1
  226. package/dist/slider.js +1 -1
  227. package/dist/spinner-BZKI4Aje.cjs +77 -0
  228. package/dist/spinner-BZKI4Aje.cjs.map +1 -0
  229. package/dist/spinner-DIXpf7Xc.js +106 -0
  230. package/dist/spinner-DIXpf7Xc.js.map +1 -0
  231. package/dist/steps.cjs +1 -1
  232. package/dist/steps.js +1 -1
  233. package/dist/{surface-CjUKBdLJ.cjs → surface-6Kwk9NCC.cjs} +2 -2
  234. package/dist/{surface-CjUKBdLJ.cjs.map → surface-6Kwk9NCC.cjs.map} +1 -1
  235. package/dist/{surface-Bw7q1kMH.js → surface-By-1_D5m.js} +2 -2
  236. package/dist/{surface-Bw7q1kMH.js.map → surface-By-1_D5m.js.map} +1 -1
  237. package/dist/surface.cjs +1 -1
  238. package/dist/surface.js +1 -1
  239. package/dist/{table-DQ38Z4T0.js → table-BKdxrE64.js} +2 -2
  240. package/dist/{table-DQ38Z4T0.js.map → table-BKdxrE64.js.map} +1 -1
  241. package/dist/{table-DFnbyo4s.cjs → table-BojV1cr-.cjs} +2 -2
  242. package/dist/{table-DFnbyo4s.cjs.map → table-BojV1cr-.cjs.map} +1 -1
  243. package/dist/table.cjs +1 -1
  244. package/dist/table.js +1 -1
  245. package/dist/{tabs-compatibility-DYErcu_5.js → tabs-compatibility-BddIPDk-.js} +2 -2
  246. package/dist/{tabs-compatibility-DYErcu_5.js.map → tabs-compatibility-BddIPDk-.js.map} +1 -1
  247. package/dist/{tabs-compatibility-BFULPNKJ.cjs → tabs-compatibility-BuSTUrbW.cjs} +2 -2
  248. package/dist/{tabs-compatibility-BFULPNKJ.cjs.map → tabs-compatibility-BuSTUrbW.cjs.map} +1 -1
  249. package/dist/tabs.cjs +1 -1
  250. package/dist/tabs.js +1 -1
  251. package/dist/tailwind.mixin-C9wSwMyj.cjs +2 -0
  252. package/dist/{tailwind.mixin-DN3mj7AF.cjs.map → tailwind.mixin-C9wSwMyj.cjs.map} +1 -1
  253. package/dist/tailwind.mixin-CjS7whsn.js +43 -0
  254. package/dist/{tailwind.mixin-CGuZJSAV.js.map → tailwind.mixin-CjS7whsn.js.map} +1 -1
  255. package/dist/teleport.cjs +1 -1
  256. package/dist/teleport.js +1 -1
  257. package/dist/{textarea-DUQC00Fd.js → textarea-BkUV1o5c.js} +2 -2
  258. package/dist/{textarea-DUQC00Fd.js.map → textarea-BkUV1o5c.js.map} +1 -1
  259. package/dist/{textarea-B1kV_2eH.cjs → textarea-Csc71VAg.cjs} +2 -2
  260. package/dist/{textarea-B1kV_2eH.cjs.map → textarea-Csc71VAg.cjs.map} +1 -1
  261. package/dist/textarea.cjs +1 -1
  262. package/dist/textarea.js +1 -1
  263. package/dist/{theme-button-nswF-4e7.cjs → theme-button-BBAfag6o.cjs} +2 -2
  264. package/dist/{theme-button-nswF-4e7.cjs.map → theme-button-BBAfag6o.cjs.map} +1 -1
  265. package/dist/{theme-button-CXnJIlOE.js → theme-button-D-bDzeOP.js} +2 -2
  266. package/dist/{theme-button-CXnJIlOE.js.map → theme-button-D-bDzeOP.js.map} +1 -1
  267. package/dist/theme-button.cjs +1 -1
  268. package/dist/theme-button.js +1 -1
  269. package/dist/theme.cjs +1 -1
  270. package/dist/theme.js +1 -1
  271. package/dist/{timezone-DEfdZ7Ih.js → timezone-CRh0TVA5.js} +3 -3
  272. package/dist/{timezone-DEfdZ7Ih.js.map → timezone-CRh0TVA5.js.map} +1 -1
  273. package/dist/{timezone-BanTl7db.cjs → timezone-DntF7Anf.cjs} +2 -2
  274. package/dist/{timezone-BanTl7db.cjs.map → timezone-DntF7Anf.cjs.map} +1 -1
  275. package/dist/{tooltip-DyiokkSK.cjs → tooltip-7Vz-0dIm.cjs} +2 -2
  276. package/dist/{tooltip-DyiokkSK.cjs.map → tooltip-7Vz-0dIm.cjs.map} +1 -1
  277. package/dist/{tooltip-Cwd97bhO.js → tooltip-DSZZBYgA.js} +2 -2
  278. package/dist/{tooltip-Cwd97bhO.js.map → tooltip-DSZZBYgA.js.map} +1 -1
  279. package/dist/tooltip.cjs +1 -1
  280. package/dist/tooltip.js +1 -1
  281. package/dist/{tree-DiGklPGH.js → tree-BNtkejK4.js} +2 -2
  282. package/dist/{tree-DiGklPGH.js.map → tree-BNtkejK4.js.map} +1 -1
  283. package/dist/{tree-CkEPnffd.cjs → tree-CPQBVpEO.cjs} +2 -2
  284. package/dist/{tree-CkEPnffd.cjs.map → tree-CPQBVpEO.cjs.map} +1 -1
  285. package/dist/tree.cjs +1 -1
  286. package/dist/tree.js +1 -1
  287. package/dist/{typewriter-CclJKtWA.js → typewriter-Brhk0nKN.js} +4 -4
  288. package/dist/{typewriter-CclJKtWA.js.map → typewriter-Brhk0nKN.js.map} +1 -1
  289. package/dist/{typewriter-3DNeJHA8.cjs → typewriter-h4SJqRGh.cjs} +2 -2
  290. package/dist/{typewriter-3DNeJHA8.cjs.map → typewriter-h4SJqRGh.cjs.map} +1 -1
  291. package/dist/typewriter.cjs +1 -1
  292. package/dist/typewriter.js +1 -1
  293. package/dist/{typography-CddeXVmZ.cjs → typography-7ntwHeb5.cjs} +2 -2
  294. package/dist/{typography-CddeXVmZ.cjs.map → typography-7ntwHeb5.cjs.map} +1 -1
  295. package/dist/{typography-UQvNQS6H.js → typography-Bt0EPE8x.js} +2 -2
  296. package/dist/{typography-UQvNQS6H.js.map → typography-Bt0EPE8x.js.map} +1 -1
  297. package/dist/typography.cjs +1 -1
  298. package/dist/typography.js +1 -1
  299. package/package.json +1 -1
  300. package/dist/progress-C7nnUVNo.cjs +0 -30
  301. package/dist/progress-C7nnUVNo.cjs.map +0 -1
  302. package/dist/progress-DNoDfb2_.js +0 -52
  303. package/dist/progress-DNoDfb2_.js.map +0 -1
  304. package/dist/select-7MfozdvB.cjs +0 -56
  305. package/dist/select-7MfozdvB.cjs.map +0 -1
  306. package/dist/select-B4HKxJNd.js.map +0 -1
  307. package/dist/spinner-CXfX6eka.js +0 -77
  308. package/dist/spinner-CXfX6eka.js.map +0 -1
  309. package/dist/spinner-DYX-qUui.cjs +0 -45
  310. package/dist/spinner-DYX-qUui.cjs.map +0 -1
  311. package/dist/tailwind.mixin-CGuZJSAV.js +0 -43
  312. package/dist/tailwind.mixin-DN3mj7AF.cjs +0 -2
  313. package/dist/theme.component-Biom0Mmq.js.map +0 -1
  314. package/dist/theme.component-CqT-wazM.cjs.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"progress-DNoDfb2_.js","sources":["../src/progress/progress.ts"],"sourcesContent":["import { TailwindElement } from '@mixins/index'\nimport { css, html } from 'lit'\nimport { customElement, property } from 'lit/decorators.js'\nimport { classMap } from 'lit/directives/class-map.js'\nimport { styleMap } from 'lit/directives/style-map.js'\n\n@customElement('schmancy-progress')\nexport default class SchmancyProgress extends TailwindElement(css`\n :host {\n display: block;\n }\n\n @keyframes indeterminate {\n 0% {\n left: -30%;\n }\n 100% {\n left: 100%;\n }\n }\n\n .indeterminate-animation {\n animation: indeterminate 1.5s infinite ease-in-out;\n }\n`) {\n @property({ type: Number, reflect: true })\n value = 0\n\n @property({ type: Number, reflect: true })\n max = 100\n\n @property({ type: Boolean, reflect: true })\n indeterminate = false\n\n @property({ type: String, reflect: true })\n size: 'sm' | 'md' | 'lg' = 'md'\n\n @property({ type: String, reflect: true })\n color: 'primary' | 'secondary' | 'tertiary' | 'error' | 'success' = 'primary'\n\n private get percentage(): number {\n if (this.indeterminate) return 0\n return Math.min(100, Math.max(0, (this.value / this.max) * 100))\n }\n\n protected render() {\n const containerClasses = {\n 'w-full': true,\n 'relative': true,\n 'overflow-hidden': true,\n 'rounded-full': true,\n 'bg-surface-container': true,\n 'h-0.5': this.size === 'sm',\n 'h-1': this.size === 'md',\n 'h-2': this.size === 'lg'\n }\n\n const barClasses = {\n 'h-full': true,\n 'rounded-full': true,\n 'transition-all': true,\n 'duration-300': true,\n 'ease-in-out': true,\n 'bg-primary-default': this.color === 'primary',\n 'bg-secondary-default': this.color === 'secondary',\n 'bg-tertiary-default': this.color === 'tertiary',\n 'bg-error-default': this.color === 'error',\n 'bg-success-default': this.color === 'success',\n 'w-[30%]': this.indeterminate,\n 'absolute': this.indeterminate,\n 'indeterminate-animation': this.indeterminate\n }\n\n const barStyles = this.indeterminate \n ? {} \n : { width: `${this.percentage}%` }\n\n return html`\n <div class=\"${classMap(containerClasses)}\">\n <div \n class=\"${classMap(barClasses)}\"\n style=\"${styleMap(barStyles)}\"\n role=\"progressbar\"\n aria-valuenow=\"${this.value}\"\n aria-valuemin=\"0\"\n aria-valuemax=\"${this.max}\"\n ></div>\n </div>\n `\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'schmancy-progress': SchmancyProgress\n }\n}"],"names":["SchmancyProgress","TailwindElement","css","constructor","super","arguments","this","value","max","indeterminate","size","color","Math","min","render","containerClasses","relative","barClasses","absolute","barStyles","width","percentage","html","classMap","styleMap","__decorateClass","property","type","Number","reflect","prototype","Boolean","String","customElement"],"mappings":";;;;;;;;;;AAOA,IAAqBA,IAArB,cAA8CC,EAAgBC;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;EAA9D,cAAAC;AAAAC,UAAAC,GAAAA,SAAAA,GAmBUC,KAAAC,QAAA,GAGFD,KAAAE,MAAA,KAGUF,KAAAG,gBAAAA,IAGWH,KAAAI,OAAA,MAGyCJ,KAAAK,QAAA;AAAA,EAAA;AAAA,EAEpE,IAAA,aACM;AAAA,WAAAL,KAAKG,gBAAsB,IACxBG,KAAKC,IAAI,KAAKD,KAAKJ,IAAI,GAAIF,KAAKC,QAAQD,KAAKE,MAAO,GAAI,CAAA;AAAA,EAAA;AAAA,EAGvD,SAAAM;AACR,UAAMC,IAAmB,EACvB,UAAA,IACAC,UAAY,IACZ,mBAAmB,IACnB,gBAAgB,IAChB,wBAAwB,IACxB,SAASV,KAAKI,SAAS,MACvB,OAAOJ,KAAKI,SAAS,MACrB,OAAOJ,KAAKI,SAAS,KAGjBO,GAAAA,IAAa,EACjB,UAAA,IACA,gBAAA,IACA,kBAAA,IACA,gBAAA,IACA,eAAe,IACf,sBAAsBX,KAAKK,UAAU,WACrC,wBAAwBL,KAAKK,UAAU,aACvC,uBAAuBL,KAAKK,UAAU,YACtC,oBAAoBL,KAAKK,UAAU,SACnC,sBAAsBL,KAAKK,UAAU,WACrC,WAAWL,KAAKG,eAChBS,UAAYZ,KAAKG,eACjB,2BAA2BH,KAAKG,cAG5BU,GAAAA,IAAYb,KAAKG,gBACnB,KACA,EAAEW,OAAO,GAAGd,KAAKe,UAEd,IAAA;AAAA,WAAAC;AAAAA,oBACSC,EAASR,CAAAA,CAAAA;AAAAA;AAAAA,mBAEVQ,EAASN,CAAAA,CAAAA;AAAAA,mBACTO,EAASL,CAAAA,CAAAA;AAAAA;AAAAA,2BAEDb,KAAKC,KAAAA;AAAAA;AAAAA,2BAELD,KAAKE,GAAAA;AAAAA;AAAAA;AAAAA;AAAAA,EAAG;AAAA;AA3DjCiB,EAAA,CADCC,EAAS,EAAEC,MAAMC,QAAQC,SAAS,GAAA,CAAA,CAAA,GAlBhB7B,EAmBnB8B,WAAA,SAAA,CAAA,GAGAL,EAAA,CADCC,EAAS,EAAEC,MAAMC,QAAQC,SAAAA,GArBP7B,CAAAA,CAAAA,GAAAA,EAsBnB8B,WAAA,OAAA,CAGAL,GAAAA,EAAA,CADCC,EAAS,EAAEC,MAAMI,SAASF,SAAS,GAAA,CAAA,CAAA,GAxBjB7B,EAyBnB8B,WAAA,iBAAA,CAAA,GAGAL,EAAA,CADCC,EAAS,EAAEC,MAAMK,QAAQH,SAAS,GAAA,CAAA,CAAA,GA3BhB7B,EA4BnB8B,WAAA,QAAA,CAGAL,GAAAA,EAAA,CADCC,EAAS,EAAEC,MAAMK,QAAQH,SAAAA,GA9BP7B,CAAAA,CAAAA,GAAAA,EA+BnB8B,WAAA,SAAA,CA/BmB9B,GAAAA,IAArByB,EAAA,CADCQ,EAAc,mBACMjC,CAAAA,GAAAA,CAAAA;"}
@@ -1,56 +0,0 @@
1
- "use strict";const h=require("@floating-ui/dom"),p=require("rxjs"),f=require("lit/directives/class-map.js");require("lit/directives/style-map.js");const m=require("./litElement.mixin-HAhKNS-6.cjs");require("./tailwind.mixin-DN3mj7AF.cjs");const a=require("lit/decorators.js"),v=require("./ripple-C2BHbhcS.cjs"),u=require("./theme.interface-Xg5Zi46a.cjs"),c=require("lit");var b=Object.defineProperty,S=Object.getOwnPropertyDescriptor,o=(t,e,i,s)=>{for(var n,l=s>1?void 0:s?S(e,i):e,r=t.length-1;r>=0;r--)(n=t[r])&&(l=(s?n(e,i,l):n(l))||l);return s&&l&&b(e,i,l),l};exports.SchmancySelect=class extends m.$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.disabled=!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.defaultValue="",this._userInteracted=!1,this._touched=!1,this._dirty=!1,this._submitted=!1,this._focusedOptionId="",this.formSubmitHandler=()=>{this._submitted=!0,this.checkValidity()},this.formResetHandler=()=>{this.reset()},this.handleKeyDown=t=>{if(this.disabled)return;if(!this.isOpen)return void(["Enter"," ","ArrowDown"].includes(t.key)&&(t.preventDefault(),this.openDropdown(!1)));const e=Array.from(this.options||[]),i=e.findIndex(s=>s.id===this._focusedOptionId)??-1;switch(t.key){case"Escape":t.preventDefault(),this.closeDropdown();break;case"ArrowDown":t.preventDefault(),this.focusOption(e,Math.min(i+1,e.length-1));break;case"ArrowUp":t.preventDefault(),this.focusOption(e,Math.max(i-1,0));break;case"Home":t.preventDefault(),this.focusOption(e,0);break;case"End":t.preventDefault(),this.focusOption(e,e.length-1);break;case"Enter":case" ":if(t.preventDefault(),this._focusedOptionId){const s=e.find(n=>n.id===this._focusedOptionId);s&&this.handleOptionSelect(s.value)}break;case"Tab":this.closeDropdown()}};try{this.internals=this.attachInternals()}catch{}}get form(){return this.internals?.form}connectedCallback(){super.connectedCallback(),this.id||(this.id=`schmancy-select-${Math.random().toString(36).substring(2,9)}`),this.defaultValue=this.value,p.fromEvent(this,"keydown").pipe(p.takeUntil(this.disconnecting)).subscribe(this.handleKeyDown),this.internals?.form&&(this.internals.form.addEventListener("submit",this.formSubmitHandler),this.internals.form.addEventListener("reset",this.formResetHandler)),this.inputRef&&(this.inputRef.error=!1)}disconnectedCallback(){super.disconnectedCallback(),this.cleanupPositioner?.(),this.internals?.form&&(this.internals.form.removeEventListener("submit",this.formSubmitHandler),this.internals.form.removeEventListener("reset",this.formResetHandler))}firstUpdated(){this.syncSelection(),this.setupOptionsAccessibility(),this.options.forEach(t=>{p.fromEvent(t,"click").pipe(p.takeUntil(this.disconnecting)).subscribe(()=>this.handleOptionSelect(t.value))})}updated(t){if(super.updated(t),t.has("value")){const e=Array.isArray(this.value)?this.value.join(","):this.value;this.internals?.setFormValue(e),this.hasUpdated&&(this._dirty=!0),this.syncSelection(),this.hasUpdated&&this.checkValidity()}t.has("isOpen")&&(this.isOpen?this.positionDropdown():this.cleanupPositioner?.())}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.value?this.value.split(","):[];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=String(this.value);this.options?.forEach(i=>{i.selected=i.value===t});const e=this.options?.find(i=>i.value===t);this.valueLabel=e?.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:this.value?this.value.split(","):[];t.setAttribute("aria-selected",String(this.multi?i.includes(t.value):t.value===this.value))})}async positionDropdown(){const t=this.renderRoot.querySelector(".trigger");t&&this.ul&&(this.cleanupPositioner=h.autoUpdate(t,this.ul,async()=>{const e=window.innerHeight,i=t.getBoundingClientRect(),s=e-i.bottom,n=i.top,l=Math.max(.75*Math.max(s,n),150),r=s<200&&n>s;this.ul.style.maxHeight=`${l}px`;const{x:d,y}=await h.computePosition(t,this.ul,{placement:r?"top-start":"bottom-start",middleware:[h.offset(5),h.flip(),h.shift({padding:5})]});Object.assign(this.ul.style,{left:`${d}px`,top:`${y}px`,position:"absolute",width:`${t.offsetWidth}px`})}))}focusOption(t,e){const i=t[e];if(i){i.focus(),this._focusedOptionId=i.id;const s=this.renderRoot.querySelector(".trigger");if(s&&s.setAttribute("aria-activedescendant",i.id),this.ul&&i.offsetTop!==void 0){const n=i.offsetTop,l=i.offsetHeight,r=this.ul.scrollTop,d=this.ul.clientHeight;n<r?this.ul.scrollTop=n:n+l>r+d&&(this.ul.scrollTop=n+l-d)}}}async openDropdown(t=!1){if(this.disabled)return;this.syncSelection(),this.isOpen=!0,await this.updateComplete;const e=Array.from(this.options||[]),i=this.multi?0:e.findIndex(s=>s.value===String(this.value));this.focusOption(e,Math.max(i,0)),t&&this.reportValidity()}closeDropdown(){this._userInteracted&&(this._touched=!0),this.isOpen=!1,this._focusedOptionId="";const t=this.renderRoot.querySelector(".trigger");t&&(t.removeAttribute("aria-activedescendant"),t?.focus()),this._userInteracted&&this.shouldShowValidation()&&this.checkValidity()}handleOptionSelect(t){if(this._userInteracted=!0,this._touched=!0,this._dirty=!0,this.multi){const e=this.options.find(s=>s.value===t);if(!e)return;let i;e.selected=!e.selected,i=Array.isArray(this.value)?[...this.value]:this.value?this.value.split(","):[],e.selected?i.includes(t)||i.push(t):i=i.filter(s=>s!==t),this.value=i,this.valueLabel=i.length>0?this.options.filter(s=>i.includes(s.value)).map(s=>s.label).join(", "):this.placeholder}else this.options.forEach(e=>{e.selected=e.value===t}),this.value=t,this.valueLabel=this.options.find(e=>e.value===t)?.label||this.placeholder,this.closeDropdown();this.setupOptionsAccessibility(),this.dispatchChange(this.value)}dispatchChange(t){this.dispatchEvent(new CustomEvent("change",{detail:{value:t},bubbles:!0,composed:!0})),this.checkValidity()}checkValidity(){if(this.disabled)return!0;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="",this.internals?.setValidity({})):(this.validationMessage="Please select an option.",this.internals?.setValidity({valueMissing:!0},"Please select an option.",this.inputRef)),this.inputRef&&this.hasUpdated){const i=!this.isValid&&this.shouldShowValidation();this.inputRef.error=i,this.inputRef.hint=i?this.validationMessage:this.hint}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.isOpen||this.openDropdown(!1),t||this.inputRef.reportValidity()),t}setCustomValidity(t){this.validationMessage=t,t?(this.isValid=!1,this.internals?.setValidity({customError:!0},t,this.inputRef)):(this.isValid=!0,this.internals?.setValidity({})),this.inputRef&&this.shouldShowValidation()&&(this.inputRef.error=!this.isValid,this.inputRef.hint=this.isValid?this.hint:this.validationMessage)}reset(){this.value=this.defaultValue,this.valueLabel=this.placeholder,this.isValid=!0,this.validationMessage="",this._touched=!1,this._dirty=!1,this._submitted=!1,this._userInteracted=!1,this.internals?.setValidity({}),this.syncSelection(),this.inputRef&&(this.inputRef.error=!1,this.inputRef.hint=this.hint)}render(){const t=!this.isValid&&this.shouldShowValidation()&&!this.isOpen,e=this.isOpen?c.html`<span class="absolute right-3 top-1/2 transform -translate-y-1/2">▲</span>`:c.html`<span class="absolute right-3 top-1/2 transform -translate-y-1/2">▼</span>`;return c.html`
12
- <div class="relative ${this.disabled?"opacity-60 cursor-not-allowed":""}">
13
- <sch-input
14
- .name=${this.name}
15
- tabIndex=${this.disabled?"-1":"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
- aria-activedescendant=${this._focusedOptionId||void 0}
24
- aria-disabled=${this.disabled}
25
- .label=${this.label}
26
- .placeholder=${this.placeholder}
27
- .value=${this.valueLabel}
28
- .required=${this.required}
29
- .disabled=${this.disabled}
30
- .hint=${t?this.validationMessage:this.hint}
31
- .error=${t}
32
- .validateOn=${this.validateOn}
33
- readonly
34
- clickable
35
- @click=${i=>{if(this.disabled)return i.preventDefault(),void i.stopPropagation();this.isOpen?(this._userInteracted=!0,this.closeDropdown()):this.openDropdown(!1)}}
36
- >
37
- ${e}
38
- </sch-input>
39
-
40
- <!-- Overlay for capturing clicks outside when dropdown is open -->
41
- ${this.isOpen?c.html` <div class="fixed inset-0 z-10" @click=${this.closeDropdown} tabindex="-1" aria-hidden="true"></div> `:""}
42
-
43
- <ul
44
- id="options"
45
- role="listbox"
46
- aria-multiselectable=${this.multi}
47
- class=${f.classMap({"absolute min-w-full w-full z-20 mt-1 rounded-md shadow-lg":!0,hidden:!this.isOpen})}
48
- ${v.color({bgColor:u.SchmancyTheme.sys.color.surface.low,color:u.SchmancyTheme.sys.color.surface.on})}
49
- >
50
- <slot
51
- @slotchange=${()=>{this.syncSelection(),this.setupOptionsAccessibility()}}
52
- ></slot>
53
- </ul>
54
- </div>
55
- `}},exports.SchmancySelect.formAssociated=!0,o([a.property({type:String})],exports.SchmancySelect.prototype,"name",2),o([a.property({type:Boolean,reflect:!0})],exports.SchmancySelect.prototype,"required",2),o([a.property({type:Boolean,reflect:!0})],exports.SchmancySelect.prototype,"disabled",2),o([a.property({type:String})],exports.SchmancySelect.prototype,"placeholder",2),o([a.property({type:String,reflect:!0})],exports.SchmancySelect.prototype,"value",2),o([a.property({type:Boolean})],exports.SchmancySelect.prototype,"multi",2),o([a.property({type:String})],exports.SchmancySelect.prototype,"label",2),o([a.property({type:String})],exports.SchmancySelect.prototype,"hint",2),o([a.property({type:String})],exports.SchmancySelect.prototype,"validateOn",2),o([a.state()],exports.SchmancySelect.prototype,"isOpen",2),o([a.state()],exports.SchmancySelect.prototype,"valueLabel",2),o([a.state()],exports.SchmancySelect.prototype,"isValid",2),o([a.property({type:String})],exports.SchmancySelect.prototype,"validationMessage",2),o([a.state()],exports.SchmancySelect.prototype,"defaultValue",2),o([a.query("ul")],exports.SchmancySelect.prototype,"ul",2),o([a.query("sch-input")],exports.SchmancySelect.prototype,"inputRef",2),o([a.queryAssignedElements({flatten:!0})],exports.SchmancySelect.prototype,"options",2),o([a.state()],exports.SchmancySelect.prototype,"_userInteracted",2),o([a.state()],exports.SchmancySelect.prototype,"_touched",2),o([a.state()],exports.SchmancySelect.prototype,"_dirty",2),o([a.state()],exports.SchmancySelect.prototype,"_submitted",2),o([a.state()],exports.SchmancySelect.prototype,"_focusedOptionId",2),exports.SchmancySelect=o([a.customElement("schmancy-select")],exports.SchmancySelect);
56
- //# sourceMappingURL=select-7MfozdvB.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"select-7MfozdvB.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'\nimport { fromEvent, takeUntil } from 'rxjs'\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: Boolean, reflect: true }) disabled = 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// Store the initial/default value for reset behavior\n\t@state() private defaultValue: string | string[] = ''\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\t// Reference to current focused option (for keyboard navigation)\n\t@state() private _focusedOptionId = ''\n\n\t// Store form event handlers as class properties to properly remove them\n\tprivate formSubmitHandler = () => {\n\t\tthis._submitted = true\n\t\tthis.checkValidity()\n\t}\n\n\tprivate formResetHandler = () => {\n\t\tthis.reset()\n\t}\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).substring(2, 9)}`\n\t\t}\n\n\t\t// Store initial value for reset\n\t\tthis.defaultValue = this.value\n\n\t\t// Add keyboard handling to host element\n\t\tfromEvent<KeyboardEvent>(this, 'keydown').pipe(takeUntil(this.disconnecting)).subscribe(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', this.formSubmitHandler)\n\n\t\t\t// Listen for form reset\n\t\t\tthis.internals.form.addEventListener('reset', this.formResetHandler)\n\t\t}\n\n\t\t// Initially hide any validation errors until user interacts\n\t\tif (this.inputRef) {\n\t\t\tthis.inputRef.error = false\n\t\t}\n\t}\n\n\tdisconnectedCallback() {\n\t\tsuper.disconnectedCallback()\n\t\tthis.cleanupPositioner?.()\n\n\t\t// Remove form event listeners using stored handler references\n\t\tif (this.internals?.form) {\n\t\t\tthis.internals.form.removeEventListener('submit', this.formSubmitHandler)\n\t\t\tthis.internals.form.removeEventListener('reset', this.formResetHandler)\n\t\t}\n\t}\n\n\tfirstUpdated() {\n\t\tthis.syncSelection()\n\t\tthis.setupOptionsAccessibility()\n\n\t\t// Add click handlers to options\n\t\tthis.options.forEach(option => {\n\t\t\tfromEvent(option, 'click')\n\t\t\t\t.pipe(takeUntil(this.disconnecting))\n\t\t\t\t.subscribe(() => this.handleOptionSelect(option.value))\n\t\t})\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// Update selection state of options\n\t\t\tthis.syncSelection()\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\n\t\t// When open state changes, setup or cleanup the dropdown positioner\n\t\tif (changedProps.has('isOpen')) {\n\t\t\tif (this.isOpen) {\n\t\t\t\tthis.positionDropdown()\n\t\t\t} else {\n\t\t\t\tthis.cleanupPositioner?.()\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 : this.value ? this.value.split(',') : []\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(', ') || this.placeholder\n\t\t\t\t\t: this.placeholder\n\t\t} else {\n\t\t\t// Single select - update option selected state AND value label\n\t\t\tconst currentValue = String(this.value) // Convert to string for safer comparison\n\t\t\tthis.options?.forEach(o => {\n\t\t\t\t// Set selected property on each option based on matching value\n\t\t\t\to.selected = o.value === currentValue\n\t\t\t})\n\t\t\tconst selectedOption = this.options?.find(o => o.value === currentValue)\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\n\t\t\t// Set tabindex to -1 so they're focusable programmatically but not in the tab order\n\t\t\toption.tabIndex = -1\n\t\t\tconst selectedValues = Array.isArray(this.value) ? this.value : this.value ? this.value.split(',') : []\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\tthis.cleanupPositioner = autoUpdate(reference, this.ul, async () => {\n\t\t\t// Get viewport dimensions\n\t\t\tconst viewportHeight = window.innerHeight\n\t\t\tconst triggerRect = reference.getBoundingClientRect()\n\n\t\t\t// Calculate available space below and above\n\t\t\tconst spaceBelow = viewportHeight - triggerRect.bottom\n\t\t\tconst spaceAbove = triggerRect.top\n\n\t\t\t// Calculate max height - use 75% of the largest available space, but at least 150px\n\t\t\tconst maxHeight = Math.max(Math.max(spaceBelow, spaceAbove) * 0.75, 150)\n\n\t\t\t// Determine if we should flip\n\t\t\tconst shouldFlip = spaceBelow < 200 && spaceAbove > spaceBelow\n\n\t\t\t// Apply max height\n\t\t\tthis.ul.style.maxHeight = `${maxHeight}px`\n\n\t\t\tconst { x, y } = await computePosition(reference, this.ul, {\n\t\t\t\tplacement: shouldFlip ? 'top-start' : '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\twidth: `${reference.offsetWidth}px`, // Match the width of the trigger\n\t\t\t})\n\t\t})\n\t}\n\n\tprivate handleKeyDown = (e: KeyboardEvent) => {\n\t\t// Don't handle keyboard events when disabled\n\t\tif (this.disabled) {\n\t\t\treturn\n\t\t}\n\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\t// Find current focused option\n\t\tconst options = Array.from(this.options || [])\n\t\tconst current = options.findIndex(o => o.id === this._focusedOptionId) ?? -1\n\n\t\tswitch (e.key) {\n\t\t\tcase 'Escape':\n\t\t\t\te.preventDefault()\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(options, Math.min(current + 1, 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(options, Math.max(current - 1, 0))\n\t\t\t\tbreak\n\t\t\tcase 'Home':\n\t\t\t\te.preventDefault()\n\t\t\t\tthis.focusOption(options, 0)\n\t\t\t\tbreak\n\t\t\tcase 'End':\n\t\t\t\te.preventDefault()\n\t\t\t\tthis.focusOption(options, options.length - 1)\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 (this._focusedOptionId) {\n\t\t\t\t\tconst focusedOption = options.find(opt => opt.id === this._focusedOptionId)\n\t\t\t\t\tif (focusedOption) {\n\t\t\t\t\t\tthis.handleOptionSelect(focusedOption.value)\n\t\t\t\t\t}\n\t\t\t\t}\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: SchmancyOption[], index: number) {\n\t\tconst option = options[index]\n\t\tif (option) {\n\t\t\toption.focus()\n\t\t\tthis._focusedOptionId = option.id\n\n\t\t\t// Update aria-activedescendant on the combobox\n\t\t\tconst combobox = this.renderRoot.querySelector('.trigger')\n\t\t\tif (combobox) {\n\t\t\t\tcombobox.setAttribute('aria-activedescendant', option.id)\n\t\t\t}\n\n\t\t\t// Ensure option is visible in the scrollable area\n\t\t\tif (this.ul && option.offsetTop !== undefined) {\n\t\t\t\t// Get position info\n\t\t\t\tconst optionTop = option.offsetTop\n\t\t\t\tconst optionHeight = option.offsetHeight\n\t\t\t\tconst scrollTop = this.ul.scrollTop\n\t\t\t\tconst ulHeight = this.ul.clientHeight\n\n\t\t\t\t// Scroll into view if needed\n\t\t\t\tif (optionTop < scrollTop) {\n\t\t\t\t\tthis.ul.scrollTop = optionTop\n\t\t\t\t} else if (optionTop + optionHeight > scrollTop + ulHeight) {\n\t\t\t\t\tthis.ul.scrollTop = optionTop + optionHeight - ulHeight\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tprivate async openDropdown(report = false) {\n\t\t// Don't open if disabled\n\t\tif (this.disabled) {\n\t\t\treturn\n\t\t}\n\n\t\t// Don't mark as touched on opening - we'll do that on closing\n\t\t// so errors only show after interaction is complete\n\n\t\t// Make sure options' selected state is in sync before opening\n\t\tthis.syncSelection()\n\n\t\tthis.isOpen = true\n\t\tawait this.updateComplete\n\n\t\t// Focus first or selected option\n\t\tconst options = Array.from(this.options || [])\n\t\tconst selectedIndex = this.multi ? 0 : options.findIndex(o => o.value === String(this.value))\n\n\t\tthis.focusOption(options, Math.max(selectedIndex, 0))\n\n\t\t// Don't automatically validate when opening\n\t\t// Only validate if explicitly requested (like from a form submission)\n\t\tif (report) this.reportValidity()\n\t}\n\n\tprivate closeDropdown() {\n\t\t// Only mark as touched if the user actually interacted with the component\n\t\t// and made a selection or explicitly closed it without selecting\n\t\tif (this._userInteracted) {\n\t\t\tthis._touched = true\n\t\t}\n\n\t\tthis.isOpen = false\n\t\tthis._focusedOptionId = ''\n\n\t\t// Update combobox to remove aria-activedescendant\n\t\tconst combobox = this.renderRoot.querySelector<HTMLElement>('.trigger')\n\t\tif (combobox) {\n\t\t\tcombobox.removeAttribute('aria-activedescendant')\n\t\t\tcombobox?.focus()\n\t\t}\n\n\t\t// Only check validity when closing if the user has actually interacted\n\t\t// with the component and validation should be shown\n\t\tif (this._userInteracted && 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\n\t\t\tlet selectedValues: string[]\n\t\t\tif (Array.isArray(this.value)) {\n\t\t\t\tselectedValues = [...this.value]\n\t\t\t} else {\n\t\t\t\tselectedValues = this.value ? this.value.split(',') : []\n\t\t\t}\n\n\t\t\tif (option.selected) {\n\t\t\t\t// Add value if not already present\n\t\t\t\tif (!selectedValues.includes(value)) {\n\t\t\t\t\tselectedValues.push(value)\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// Remove value\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\t// Update display label\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\t// Single select - explicitly update all options' selection state\n\t\t\tthis.options.forEach(o => {\n\t\t\t\to.selected = o.value === value\n\t\t\t})\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.closeDropdown()\n\t\t}\n\n\t\t// Update the option's accessibility state\n\t\tthis.setupOptionsAccessibility()\n\n\t\t// Dispatch change event\n\t\tthis.dispatchChange(this.value)\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// Disabled fields are always valid\n\t\tif (this.disabled) {\n\t\t\treturn true\n\t\t}\n\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) : !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\tthis.inputRef.hint = showError ? this.validationMessage : this.hint\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// If invalid and not already open, automatically open the dropdown to show options\n\t\t\tif (!valid && !this.isOpen) {\n\t\t\t\t// Open the dropdown but don't mark as user interaction yet\n\t\t\t\t// This helps users immediately see available options when validation fails\n\t\t\t\tthis.openDropdown(false)\n\t\t\t}\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\t// Reset to initial value\n\t\tthis.value = this.defaultValue\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.syncSelection() // Update the options to match the reset value\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 and interaction\n\t\t// Never show errors on initial render or if the dropdown is open\n\t\tconst showErrors = !this.isValid && this.shouldShowValidation() && !this.isOpen\n\n\t\t// Add caret icon based on open state\n\t\tconst caretIcon = this.isOpen\n\t\t\t? html`<span class=\"absolute right-3 top-1/2 transform -translate-y-1/2\">▲</span>`\n\t\t\t: html`<span class=\"absolute right-3 top-1/2 transform -translate-y-1/2\">▼</span>`\n\n\t\treturn html`\n\t\t\t<div class=\"relative ${this.disabled ? 'opacity-60 cursor-not-allowed' : ''}\">\n\t\t\t\t<sch-input\n\t\t\t\t\t.name=${this.name}\n\t\t\t\t\ttabIndex=${this.disabled ? '-1' : '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\taria-activedescendant=${this._focusedOptionId || undefined}\n\t\t\t\t\taria-disabled=${this.disabled}\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.disabled=${this.disabled}\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\tclickable\n\t\t\t\t\t@click=${(e: MouseEvent) => {\n\t\t\t\t\t\t// Don't process clicks if disabled\n\t\t\t\t\t\tif (this.disabled) {\n\t\t\t\t\t\t\te.preventDefault()\n\t\t\t\t\t\t\te.stopPropagation()\n\t\t\t\t\t\t\treturn\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// On first click, don't count this as user interaction yet\n\t\t\t\t\t\tif (!this.isOpen) {\n\t\t\t\t\t\t\t// Open without triggering validation - we'll validate when they close\n\t\t\t\t\t\t\tthis.openDropdown(false)\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t// Mark as interacted when they close the dropdown\n\t\t\t\t\t\t\tthis._userInteracted = true\n\t\t\t\t\t\t\tthis.closeDropdown()\n\t\t\t\t\t\t}\n\t\t\t\t\t}}\n\t\t\t\t>\n\t\t\t\t\t${caretIcon}\n\t\t\t\t</sch-input>\n\n\t\t\t\t<!-- Overlay for capturing clicks outside when dropdown is open -->\n\t\t\t\t${this.isOpen\n\t\t\t\t\t? html` <div class=\"fixed inset-0 z-10\" @click=${this.closeDropdown} tabindex=\"-1\" aria-hidden=\"true\"></div> `\n\t\t\t\t\t: ''}\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 min-w-full w-full z-20 mt-1 rounded-md shadow-lg': true,\n\t\t\t\t\t\thidden: !this.isOpen,\n\t\t\t\t\t})}\n\t\t\t\t\t${color({\n\t\t\t\t\t\tbgColor: SchmancyTheme.sys.color.surface.low,\n\t\t\t\t\t\tcolor: SchmancyTheme.sys.color.surface.on,\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","super","this","required","disabled","placeholder","value","multi","label","hint","validateOn","isOpen","valueLabel","isValid","validationMessage","defaultValue","_userInteracted","_touched","_dirty","_submitted","_focusedOptionId","formSubmitHandler","checkValidity","formResetHandler","reset","handleKeyDown","e","includes","key","preventDefault","openDropdown","options","Array","from","current","findIndex","o","id","closeDropdown","focusOption","Math","min","length","max","focusedOption","find","opt","handleOptionSelect","internals","attachInternals","form","connectedCallback","random","toString","substring","fromEvent","pipe","takeUntil","disconnecting","subscribe","addEventListener","inputRef","error","disconnectedCallback","cleanupPositioner","removeEventListener","syncSelection","setupOptionsAccessibility","forEach","option","changedProps","updated","has","formValue","isArray","join","setFormValue","hasUpdated","positionDropdown","forceValidation","selectedValues","split","selected","filter","map","currentValue","String","selectedOption","index","setAttribute","tabIndex","reference","renderRoot","querySelector","ul","autoUpdate","async","viewportHeight","window","innerHeight","triggerRect","getBoundingClientRect","spaceBelow","bottom","spaceAbove","top","maxHeight","shouldFlip","style","x","computePosition","placement","middleware","offset","flip","shift","padding","Object","assign","left","y","position","width","offsetWidth","focus","combobox","offsetTop","optionTop","optionHeight","offsetHeight","scrollTop","ulHeight","clientHeight","report","updateComplete","selectedIndex","reportValidity","removeAttribute","shouldShowValidation","push","v","dispatchChange","dispatchEvent","CustomEvent","detail","bubbles","composed","isEmpty","setValidity","valueMissing","showError","valid","message","customError","showErrors","caretIcon","html","name","stopPropagation","classMap","hidden","color","bgColor","SchmancyTheme","sys","surface","low","on","formAssociated","__decorateClass","property","type","prototype","Boolean","reflect","state","query","queryAssignedElements","flatten","customElement"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"select-B4HKxJNd.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'\nimport { fromEvent, takeUntil } from 'rxjs'\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: Boolean, reflect: true }) disabled = 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// Store the initial/default value for reset behavior\n\t@state() private defaultValue: string | string[] = ''\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\t// Reference to current focused option (for keyboard navigation)\n\t@state() private _focusedOptionId = ''\n\n\t// Store form event handlers as class properties to properly remove them\n\tprivate formSubmitHandler = () => {\n\t\tthis._submitted = true\n\t\tthis.checkValidity()\n\t}\n\n\tprivate formResetHandler = () => {\n\t\tthis.reset()\n\t}\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).substring(2, 9)}`\n\t\t}\n\n\t\t// Store initial value for reset\n\t\tthis.defaultValue = this.value\n\n\t\t// Add keyboard handling to host element\n\t\tfromEvent<KeyboardEvent>(this, 'keydown').pipe(takeUntil(this.disconnecting)).subscribe(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', this.formSubmitHandler)\n\n\t\t\t// Listen for form reset\n\t\t\tthis.internals.form.addEventListener('reset', this.formResetHandler)\n\t\t}\n\n\t\t// Initially hide any validation errors until user interacts\n\t\tif (this.inputRef) {\n\t\t\tthis.inputRef.error = false\n\t\t}\n\t}\n\n\tdisconnectedCallback() {\n\t\tsuper.disconnectedCallback()\n\t\tthis.cleanupPositioner?.()\n\n\t\t// Remove form event listeners using stored handler references\n\t\tif (this.internals?.form) {\n\t\t\tthis.internals.form.removeEventListener('submit', this.formSubmitHandler)\n\t\t\tthis.internals.form.removeEventListener('reset', this.formResetHandler)\n\t\t}\n\t}\n\n\tfirstUpdated() {\n\t\tthis.syncSelection()\n\t\tthis.setupOptionsAccessibility()\n\n\t\t// Add click handlers to options\n\t\tthis.options.forEach(option => {\n\t\t\tfromEvent(option, 'click')\n\t\t\t\t.pipe(takeUntil(this.disconnecting))\n\t\t\t\t.subscribe(() => this.handleOptionSelect(option.value))\n\t\t})\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// Update selection state of options\n\t\t\tthis.syncSelection()\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\n\t\t// When open state changes, setup or cleanup the dropdown positioner\n\t\tif (changedProps.has('isOpen')) {\n\t\t\tif (this.isOpen) {\n\t\t\t\tthis.positionDropdown()\n\t\t\t} else {\n\t\t\t\tthis.cleanupPositioner?.()\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 : this.value ? this.value.split(',') : []\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(', ') || this.placeholder\n\t\t\t\t\t: this.placeholder\n\t\t} else {\n\t\t\t// Single select - update option selected state AND value label\n\t\t\tconst currentValue = String(this.value) // Convert to string for safer comparison\n\t\t\tthis.options?.forEach(o => {\n\t\t\t\t// Set selected property on each option based on matching value\n\t\t\t\to.selected = o.value === currentValue\n\t\t\t})\n\t\t\tconst selectedOption = this.options?.find(o => o.value === currentValue)\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\n\t\t\t// Set tabindex to -1 so they're focusable programmatically but not in the tab order\n\t\t\toption.tabIndex = -1\n\t\t\tconst selectedValues = Array.isArray(this.value) ? this.value : this.value ? this.value.split(',') : []\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\tthis.cleanupPositioner = autoUpdate(reference, this.ul, async () => {\n\t\t\t// Get viewport dimensions\n\t\t\tconst viewportHeight = window.innerHeight\n\t\t\tconst triggerRect = reference.getBoundingClientRect()\n\n\t\t\t// Calculate available space below and above\n\t\t\tconst spaceBelow = viewportHeight - triggerRect.bottom\n\t\t\tconst spaceAbove = triggerRect.top\n\n\t\t\t// Calculate max height - use 75% of the largest available space, but at least 150px\n\t\t\tconst maxHeight = Math.max(Math.max(spaceBelow, spaceAbove) * 0.75, 150)\n\n\t\t\t// Determine if we should flip\n\t\t\tconst shouldFlip = spaceBelow < 200 && spaceAbove > spaceBelow\n\n\t\t\t// Apply max height\n\t\t\tthis.ul.style.maxHeight = `${maxHeight}px`\n\n\t\t\tconst { x, y } = await computePosition(reference, this.ul, {\n\t\t\t\tplacement: shouldFlip ? 'top-start' : '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\twidth: `${reference.offsetWidth}px`, // Match the width of the trigger\n\t\t\t})\n\t\t})\n\t}\n\n\tprivate handleKeyDown = (e: KeyboardEvent) => {\n\t\t// Don't handle keyboard events when disabled\n\t\tif (this.disabled) {\n\t\t\treturn\n\t\t}\n\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\t// Find current focused option\n\t\tconst options = Array.from(this.options || [])\n\t\tconst current = options.findIndex(o => o.id === this._focusedOptionId) ?? -1\n\n\t\tswitch (e.key) {\n\t\t\tcase 'Escape':\n\t\t\t\te.preventDefault()\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(options, Math.min(current + 1, 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(options, Math.max(current - 1, 0))\n\t\t\t\tbreak\n\t\t\tcase 'Home':\n\t\t\t\te.preventDefault()\n\t\t\t\tthis.focusOption(options, 0)\n\t\t\t\tbreak\n\t\t\tcase 'End':\n\t\t\t\te.preventDefault()\n\t\t\t\tthis.focusOption(options, options.length - 1)\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 (this._focusedOptionId) {\n\t\t\t\t\tconst focusedOption = options.find(opt => opt.id === this._focusedOptionId)\n\t\t\t\t\tif (focusedOption) {\n\t\t\t\t\t\tthis.handleOptionSelect(focusedOption.value)\n\t\t\t\t\t}\n\t\t\t\t}\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: SchmancyOption[], index: number) {\n\t\tconst option = options[index]\n\t\tif (option) {\n\t\t\toption.focus()\n\t\t\tthis._focusedOptionId = option.id\n\n\t\t\t// Update aria-activedescendant on the combobox\n\t\t\tconst combobox = this.renderRoot.querySelector('.trigger')\n\t\t\tif (combobox) {\n\t\t\t\tcombobox.setAttribute('aria-activedescendant', option.id)\n\t\t\t}\n\n\t\t\t// Ensure option is visible in the scrollable area\n\t\t\tif (this.ul && option.offsetTop !== undefined) {\n\t\t\t\t// Get position info\n\t\t\t\tconst optionTop = option.offsetTop\n\t\t\t\tconst optionHeight = option.offsetHeight\n\t\t\t\tconst scrollTop = this.ul.scrollTop\n\t\t\t\tconst ulHeight = this.ul.clientHeight\n\n\t\t\t\t// Scroll into view if needed\n\t\t\t\tif (optionTop < scrollTop) {\n\t\t\t\t\tthis.ul.scrollTop = optionTop\n\t\t\t\t} else if (optionTop + optionHeight > scrollTop + ulHeight) {\n\t\t\t\t\tthis.ul.scrollTop = optionTop + optionHeight - ulHeight\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tprivate async openDropdown(report = false) {\n\t\t// Don't open if disabled\n\t\tif (this.disabled) {\n\t\t\treturn\n\t\t}\n\n\t\t// Don't mark as touched on opening - we'll do that on closing\n\t\t// so errors only show after interaction is complete\n\n\t\t// Make sure options' selected state is in sync before opening\n\t\tthis.syncSelection()\n\n\t\tthis.isOpen = true\n\t\tawait this.updateComplete\n\n\t\t// Focus first or selected option\n\t\tconst options = Array.from(this.options || [])\n\t\tconst selectedIndex = this.multi ? 0 : options.findIndex(o => o.value === String(this.value))\n\n\t\tthis.focusOption(options, Math.max(selectedIndex, 0))\n\n\t\t// Don't automatically validate when opening\n\t\t// Only validate if explicitly requested (like from a form submission)\n\t\tif (report) this.reportValidity()\n\t}\n\n\tprivate closeDropdown() {\n\t\t// Only mark as touched if the user actually interacted with the component\n\t\t// and made a selection or explicitly closed it without selecting\n\t\tif (this._userInteracted) {\n\t\t\tthis._touched = true\n\t\t}\n\n\t\tthis.isOpen = false\n\t\tthis._focusedOptionId = ''\n\n\t\t// Update combobox to remove aria-activedescendant\n\t\tconst combobox = this.renderRoot.querySelector<HTMLElement>('.trigger')\n\t\tif (combobox) {\n\t\t\tcombobox.removeAttribute('aria-activedescendant')\n\t\t\tcombobox?.focus()\n\t\t}\n\n\t\t// Only check validity when closing if the user has actually interacted\n\t\t// with the component and validation should be shown\n\t\tif (this._userInteracted && 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\n\t\t\tlet selectedValues: string[]\n\t\t\tif (Array.isArray(this.value)) {\n\t\t\t\tselectedValues = [...this.value]\n\t\t\t} else {\n\t\t\t\tselectedValues = this.value ? this.value.split(',') : []\n\t\t\t}\n\n\t\t\tif (option.selected) {\n\t\t\t\t// Add value if not already present\n\t\t\t\tif (!selectedValues.includes(value)) {\n\t\t\t\t\tselectedValues.push(value)\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// Remove value\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\t// Update display label\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\t// Single select - explicitly update all options' selection state\n\t\t\tthis.options.forEach(o => {\n\t\t\t\to.selected = o.value === value\n\t\t\t})\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.closeDropdown()\n\t\t}\n\n\t\t// Update the option's accessibility state\n\t\tthis.setupOptionsAccessibility()\n\n\t\t// Dispatch change event\n\t\tthis.dispatchChange(this.value)\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// Disabled fields are always valid\n\t\tif (this.disabled) {\n\t\t\treturn true\n\t\t}\n\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) : !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\tthis.inputRef.hint = showError ? this.validationMessage : this.hint\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// If invalid and not already open, automatically open the dropdown to show options\n\t\t\tif (!valid && !this.isOpen) {\n\t\t\t\t// Open the dropdown but don't mark as user interaction yet\n\t\t\t\t// This helps users immediately see available options when validation fails\n\t\t\t\tthis.openDropdown(false)\n\t\t\t}\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\t// Reset to initial value\n\t\tthis.value = this.defaultValue\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.syncSelection() // Update the options to match the reset value\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 and interaction\n\t\t// Never show errors on initial render or if the dropdown is open\n\t\tconst showErrors = !this.isValid && this.shouldShowValidation() && !this.isOpen\n\n\t\t// Add caret icon based on open state\n\t\tconst caretIcon = this.isOpen\n\t\t\t? html`<span class=\"absolute right-3 top-1/2 transform -translate-y-1/2\">▲</span>`\n\t\t\t: html`<span class=\"absolute right-3 top-1/2 transform -translate-y-1/2\">▼</span>`\n\n\t\treturn html`\n\t\t\t<div class=\"relative ${this.disabled ? 'opacity-60 cursor-not-allowed' : ''}\">\n\t\t\t\t<sch-input\n\t\t\t\t\t.name=${this.name}\n\t\t\t\t\ttabIndex=${this.disabled ? '-1' : '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\taria-activedescendant=${this._focusedOptionId || undefined}\n\t\t\t\t\taria-disabled=${this.disabled}\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.disabled=${this.disabled}\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\tclickable\n\t\t\t\t\t@click=${(e: MouseEvent) => {\n\t\t\t\t\t\t// Don't process clicks if disabled\n\t\t\t\t\t\tif (this.disabled) {\n\t\t\t\t\t\t\te.preventDefault()\n\t\t\t\t\t\t\te.stopPropagation()\n\t\t\t\t\t\t\treturn\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// On first click, don't count this as user interaction yet\n\t\t\t\t\t\tif (!this.isOpen) {\n\t\t\t\t\t\t\t// Open without triggering validation - we'll validate when they close\n\t\t\t\t\t\t\tthis.openDropdown(false)\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t// Mark as interacted when they close the dropdown\n\t\t\t\t\t\t\tthis._userInteracted = true\n\t\t\t\t\t\t\tthis.closeDropdown()\n\t\t\t\t\t\t}\n\t\t\t\t\t}}\n\t\t\t\t>\n\t\t\t\t\t${caretIcon}\n\t\t\t\t</sch-input>\n\n\t\t\t\t<!-- Overlay for capturing clicks outside when dropdown is open -->\n\t\t\t\t${this.isOpen\n\t\t\t\t\t? html` <div class=\"fixed inset-0 z-10\" @click=${this.closeDropdown} tabindex=\"-1\" aria-hidden=\"true\"></div> `\n\t\t\t\t\t: ''}\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 min-w-full w-full z-20 mt-1 rounded-md shadow-lg': true,\n\t\t\t\t\t\thidden: !this.isOpen,\n\t\t\t\t\t})}\n\t\t\t\t\t${color({\n\t\t\t\t\t\tbgColor: SchmancyTheme.sys.color.surface.low,\n\t\t\t\t\t\tcolor: SchmancyTheme.sys.color.surface.on,\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","super","this","required","disabled","placeholder","value","multi","label","hint","validateOn","isOpen","valueLabel","isValid","validationMessage","defaultValue","_userInteracted","_touched","_dirty","_submitted","_focusedOptionId","formSubmitHandler","checkValidity","formResetHandler","reset","handleKeyDown","e","includes","key","preventDefault","openDropdown","options","Array","from","current","findIndex","o","id","closeDropdown","focusOption","Math","min","length","max","focusedOption","find","opt","handleOptionSelect","internals","attachInternals","form","connectedCallback","random","toString","substring","fromEvent","pipe","takeUntil","disconnecting","subscribe","addEventListener","inputRef","error","disconnectedCallback","cleanupPositioner","removeEventListener","firstUpdated","syncSelection","setupOptionsAccessibility","forEach","option","changedProps","updated","has","formValue","isArray","join","setFormValue","hasUpdated","positionDropdown","forceValidation","selectedValues","split","selected","filter","map","currentValue","String","selectedOption","index","setAttribute","tabIndex","reference","renderRoot","querySelector","ul","autoUpdate","async","viewportHeight","window","innerHeight","triggerRect","getBoundingClientRect","spaceBelow","bottom","spaceAbove","top","maxHeight","shouldFlip","style","x","y","computePosition","placement","middleware","offset","flip","shift","padding","Object","assign","left","position","width","offsetWidth","focus","combobox","offsetTop","optionTop","optionHeight","offsetHeight","scrollTop","ulHeight","clientHeight","report","updateComplete","selectedIndex","reportValidity","removeAttribute","shouldShowValidation","push","v","dispatchChange","dispatchEvent","CustomEvent","detail","bubbles","composed","isEmpty","setValidity","valueMissing","showError","valid","message","customError","render","showErrors","caretIcon","html","name","stopPropagation","classMap","hidden","color","bgColor","SchmancyTheme","sys","surface","low","on","formAssociated","__decorateClass","property","type","prototype","Boolean","reflect","state","query","queryAssignedElements","flatten","customElement"],"mappings":"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"}
@@ -1,77 +0,0 @@
1
- import "./theme.component-Biom0Mmq.js";
2
- import { S as l } from "./theme.interface-C5Kj6WjD.js";
3
- import { c as u } from "./ripple-BumgqsDT.js";
4
- import "rxjs";
5
- import "lit/directives/class-map.js";
6
- import "lit/directives/style-map.js";
7
- import { T as m } from "./tailwind.mixin-CGuZJSAV.js";
8
- import { customElement as y, property as p } from "lit/decorators.js";
9
- import { css as h, html as f } from "lit";
10
- var v = Object.getOwnPropertyDescriptor;
11
- let d = class extends m(h`
12
- :host {
13
- display: inline;
14
- position: absolute;
15
- inset: 0;
16
- }
17
- `) {
18
- render() {
19
- return f`
20
- <div class="absolute inset-0 flex justify-center items-center animate-pulse z-[9999999]">
21
- <!-- glass window -->
22
- <div
23
- ${u({ bgColor: l.sys.color.secondary.container, color: l.sys.color.tertiary.onContainer })}
24
- class="absolute transform-gpu inset-0 rounded-[inherit] opacity-50 flex align-middle justify-center items-center "
25
- >
26
- <slot> </slot>
27
- </div>
28
- </div>
29
- `;
30
- }
31
- };
32
- d = ((e, r, n, s) => {
33
- for (var i, t = s > 1 ? void 0 : s ? v(r, n) : r, o = e.length - 1; o >= 0; o--) (i = e[o]) && (t = i(t) || t);
34
- return t;
35
- })([y("schmancy-busy")], d);
36
- var g = Object.defineProperty, b = Object.getOwnPropertyDescriptor, c = (e, r, n, s) => {
37
- for (var i, t = s > 1 ? void 0 : s ? b(r, n) : r, o = e.length - 1; o >= 0; o--) (i = e[o]) && (t = (s ? i(r, n, t) : i(t)) || t);
38
- return s && t && g(r, n, t), t;
39
- };
40
- let a = class extends m(h`
41
- .spinner {
42
- animation: spin 1s linear infinite;
43
- animation-direction: reverse;
44
- }
45
-
46
- @keyframes spin {
47
- from {
48
- transform: rotate(0deg);
49
- }
50
- to {
51
- transform: rotate(360deg);
52
- }
53
- }
54
- `) {
55
- constructor() {
56
- super(...arguments), this.color = "gray", this.size = "24px";
57
- }
58
- render() {
59
- const e = { fontSize: this.size, maxWidth: this.size, overflow: "hidden" };
60
- return f`
61
- <div class="spinner" style=${this.styleMap(e)}>
62
- <svg fill="none" viewBox="0 0 16 16" class="anim-rotate" aria-hidden="true" role="img">
63
- <path
64
- opacity=".5"
65
- d="M8 15A7 7 0 108 1a7 7 0 000 14v0z"
66
- stroke="var(--schmancy-sys-color-secondary-default)"
67
- stroke-width="2"
68
- ></path>
69
- <path d="M15 8a7 7 0 01-7 7" stroke="var(--schmancy-sys-color-secondary-default)" stroke-width="2"></path>
70
- <path d="M8 12a4 4 0 100-8 4 4 0 000 8z" fill="var(--schmancy-sys-color-secondary-default)"></path>
71
- </svg>
72
- </div>
73
- `;
74
- }
75
- };
76
- c([p({ type: String })], a.prototype, "color", 2), c([p({ type: String })], a.prototype, "size", 2), a = c([y("schmancy-spinner")], a);
77
- //# sourceMappingURL=spinner-CXfX6eka.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"spinner-CXfX6eka.js","sources":["../src/busy/busy.ts","../src/busy/spinner.ts"],"sourcesContent":["import { SchmancyTheme } from '@schmancy/theme'\nimport { color } from '@schmancy/directives'\nimport { TailwindElement } from '@mixins/index'\nimport { css, html } from 'lit'\nimport { customElement } from 'lit/decorators.js'\n\n@customElement('schmancy-busy')\nexport default class SchmancyBusy extends TailwindElement(css`\n\t:host {\n\t\tdisplay: inline;\n\t\tposition: absolute;\n\t\tinset: 0;\n\t}\n`) {\n\tprotected render(): unknown {\n\t\treturn html`\n\t\t\t<div class=\"absolute inset-0 flex justify-center items-center animate-pulse z-[9999999]\">\n\t\t\t\t<!-- glass window -->\n\t\t\t\t<div\n\t\t\t\t\t${color({\n\t\t\t\t\t\tbgColor: SchmancyTheme.sys.color.secondary.container,\n\t\t\t\t\t\tcolor: SchmancyTheme.sys.color.tertiary.onContainer,\n\t\t\t\t\t})}\n\t\t\t\t\tclass=\"absolute transform-gpu inset-0 rounded-[inherit] opacity-50 flex align-middle justify-center items-center \"\n\t\t\t\t>\n\t\t\t\t\t<slot> </slot>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t`\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-busy': SchmancyBusy\n\t}\n}\n","import { TailwindElement } from '@mixins/index'\nimport { css, html } from 'lit'\nimport { customElement, property } from 'lit/decorators.js'\n\n@customElement('schmancy-spinner')\nexport default class SchmnacySpinner extends TailwindElement(css`\n\t.spinner {\n\t\tanimation: spin 1s linear infinite;\n\t\tanimation-direction: reverse;\n\t}\n\n\t@keyframes spin {\n\t\tfrom {\n\t\t\ttransform: rotate(0deg);\n\t\t}\n\t\tto {\n\t\t\ttransform: rotate(360deg);\n\t\t}\n\t}\n`) {\n\t@property({ type: String }) color: string = 'gray'\n\t@property({ type: String }) size: string = '24px'\n\n\tprotected render(): unknown {\n\t\tconst style = {\n\t\t\tfontSize: this.size,\n\t\t\tmaxWidth: this.size,\n\t\t\toverflow: 'hidden',\n\t\t}\n\t\treturn html`\n\t\t\t<div class=\"spinner\" style=${this.styleMap(style)}>\n\t\t\t\t<svg fill=\"none\" viewBox=\"0 0 16 16\" class=\"anim-rotate\" aria-hidden=\"true\" role=\"img\">\n\t\t\t\t\t<path\n\t\t\t\t\t\topacity=\".5\"\n\t\t\t\t\t\td=\"M8 15A7 7 0 108 1a7 7 0 000 14v0z\"\n\t\t\t\t\t\tstroke=\"var(--schmancy-sys-color-secondary-default)\"\n\t\t\t\t\t\tstroke-width=\"2\"\n\t\t\t\t\t></path>\n\t\t\t\t\t<path d=\"M15 8a7 7 0 01-7 7\" stroke=\"var(--schmancy-sys-color-secondary-default)\" stroke-width=\"2\"></path>\n\t\t\t\t\t<path d=\"M8 12a4 4 0 100-8 4 4 0 000 8z\" fill=\"var(--schmancy-sys-color-secondary-default)\"></path>\n\t\t\t\t</svg>\n\t\t\t</div>\n\t\t`\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-spinner': SchmnacySpinner\n\t}\n}\n"],"names":["SchmancyBusy","TailwindElement","css","render","html","color","bgColor","SchmancyTheme","sys","secondary","container","tertiary","onContainer","customElement","SchmnacySpinner","constructor","super","arguments","this","size","style","fontSize","maxWidth","overflow","styleMap","__decorateClass","property","type","String","prototype"],"mappings":";;;;;;;;;;AAOA,IAAqBA,IAArB,cAA0CC,EAAgBC;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;EAO/C,SAAAC;AACF,WAAAC;AAAAA;AAAAA;AAAAA;AAAAA,OAIFC,EAAM,EACPC,SAASC,EAAcC,IAAIH,MAAMI,UAAUC,WAC3CL,OAAOE,EAAcC,IAAIH,MAAMM,SAASC,YAAAA,CAAAA,CAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,EACvC;AAfcZ;AAAAA;;;GAArB,CADCa,EAAc,mBACMb;;;;;ACFrB,IAAqBc,IAArB,cAA6Cb,EAAgBC;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;EAA7D,cAAAa;AAAAC,UAAAC,GAAAA,SAAAA,GAe6CC,KAAAb,QAAA,QACDa,KAAAC,OAAA;AAAA,EAAA;AAAA,EAEjC,SAAAhB;AACT,UAAMiB,IAAQ,EACbC,UAAUH,KAAKC,MACfG,UAAUJ,KAAKC,MACfI,UAAU,SAEJ;AAAA,WAAAnB;AAAAA,gCACuBc,KAAKM,SAASJ,CAAAA,CAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,EAAM;AAVvBK;AAAAA,EAAA,CAA3BC,EAAS,EAAEC,MAAMC,YAfEd,EAeQe,WAAA,SAAA,CAAA,GACAJ,EAAA,CAA3BC,EAAS,EAAEC,MAAMC,OAhBEd,CAAAA,CAAAA,GAAAA,EAgBQe,WAAA,QAAA,IAhBRf,IAArBW,EAAA,CADCZ,EAAc,kBACMC,CAAAA,GAAAA,CAAAA;"}
@@ -1,45 +0,0 @@
1
- "use strict";require("./theme.component-CqT-wazM.cjs");const y=require("./theme.interface-Xg5Zi46a.cjs"),u=require("./ripple-C2BHbhcS.cjs");require("rxjs"),require("lit/directives/class-map.js"),require("lit/directives/style-map.js");const m=require("./tailwind.mixin-DN3mj7AF.cjs"),c=require("lit/decorators.js"),l=require("lit");var h=Object.getOwnPropertyDescriptor;let p=class extends m.TailwindElement(l.css`
2
- :host {
3
- display: inline;
4
- position: absolute;
5
- inset: 0;
6
- }
7
- `){render(){return l.html`
8
- <div class="absolute inset-0 flex justify-center items-center animate-pulse z-[9999999]">
9
- <!-- glass window -->
10
- <div
11
- ${u.color({bgColor:y.SchmancyTheme.sys.color.secondary.container,color:y.SchmancyTheme.sys.color.tertiary.onContainer})}
12
- class="absolute transform-gpu inset-0 rounded-[inherit] opacity-50 flex align-middle justify-center items-center "
13
- >
14
- <slot> </slot>
15
- </div>
16
- </div>
17
- `}};p=((r,t,n,s)=>{for(var o,e=s>1?void 0:s?h(t,n):t,i=r.length-1;i>=0;i--)(o=r[i])&&(e=o(e)||e);return e})([c.customElement("schmancy-busy")],p);var v=Object.defineProperty,f=Object.getOwnPropertyDescriptor,d=(r,t,n,s)=>{for(var o,e=s>1?void 0:s?f(t,n):t,i=r.length-1;i>=0;i--)(o=r[i])&&(e=(s?o(t,n,e):o(e))||e);return s&&e&&v(t,n,e),e};let a=class extends m.TailwindElement(l.css`
18
- .spinner {
19
- animation: spin 1s linear infinite;
20
- animation-direction: reverse;
21
- }
22
-
23
- @keyframes spin {
24
- from {
25
- transform: rotate(0deg);
26
- }
27
- to {
28
- transform: rotate(360deg);
29
- }
30
- }
31
- `){constructor(){super(...arguments),this.color="gray",this.size="24px"}render(){const r={fontSize:this.size,maxWidth:this.size,overflow:"hidden"};return l.html`
32
- <div class="spinner" style=${this.styleMap(r)}>
33
- <svg fill="none" viewBox="0 0 16 16" class="anim-rotate" aria-hidden="true" role="img">
34
- <path
35
- opacity=".5"
36
- d="M8 15A7 7 0 108 1a7 7 0 000 14v0z"
37
- stroke="var(--schmancy-sys-color-secondary-default)"
38
- stroke-width="2"
39
- ></path>
40
- <path d="M15 8a7 7 0 01-7 7" stroke="var(--schmancy-sys-color-secondary-default)" stroke-width="2"></path>
41
- <path d="M8 12a4 4 0 100-8 4 4 0 000 8z" fill="var(--schmancy-sys-color-secondary-default)"></path>
42
- </svg>
43
- </div>
44
- `}};d([c.property({type:String})],a.prototype,"color",2),d([c.property({type:String})],a.prototype,"size",2),a=d([c.customElement("schmancy-spinner")],a);
45
- //# sourceMappingURL=spinner-DYX-qUui.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"spinner-DYX-qUui.cjs","sources":["../src/busy/busy.ts","../src/busy/spinner.ts"],"sourcesContent":["import { SchmancyTheme } from '@schmancy/theme'\nimport { color } from '@schmancy/directives'\nimport { TailwindElement } from '@mixins/index'\nimport { css, html } from 'lit'\nimport { customElement } from 'lit/decorators.js'\n\n@customElement('schmancy-busy')\nexport default class SchmancyBusy extends TailwindElement(css`\n\t:host {\n\t\tdisplay: inline;\n\t\tposition: absolute;\n\t\tinset: 0;\n\t}\n`) {\n\tprotected render(): unknown {\n\t\treturn html`\n\t\t\t<div class=\"absolute inset-0 flex justify-center items-center animate-pulse z-[9999999]\">\n\t\t\t\t<!-- glass window -->\n\t\t\t\t<div\n\t\t\t\t\t${color({\n\t\t\t\t\t\tbgColor: SchmancyTheme.sys.color.secondary.container,\n\t\t\t\t\t\tcolor: SchmancyTheme.sys.color.tertiary.onContainer,\n\t\t\t\t\t})}\n\t\t\t\t\tclass=\"absolute transform-gpu inset-0 rounded-[inherit] opacity-50 flex align-middle justify-center items-center \"\n\t\t\t\t>\n\t\t\t\t\t<slot> </slot>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t`\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-busy': SchmancyBusy\n\t}\n}\n","import { TailwindElement } from '@mixins/index'\nimport { css, html } from 'lit'\nimport { customElement, property } from 'lit/decorators.js'\n\n@customElement('schmancy-spinner')\nexport default class SchmnacySpinner extends TailwindElement(css`\n\t.spinner {\n\t\tanimation: spin 1s linear infinite;\n\t\tanimation-direction: reverse;\n\t}\n\n\t@keyframes spin {\n\t\tfrom {\n\t\t\ttransform: rotate(0deg);\n\t\t}\n\t\tto {\n\t\t\ttransform: rotate(360deg);\n\t\t}\n\t}\n`) {\n\t@property({ type: String }) color: string = 'gray'\n\t@property({ type: String }) size: string = '24px'\n\n\tprotected render(): unknown {\n\t\tconst style = {\n\t\t\tfontSize: this.size,\n\t\t\tmaxWidth: this.size,\n\t\t\toverflow: 'hidden',\n\t\t}\n\t\treturn html`\n\t\t\t<div class=\"spinner\" style=${this.styleMap(style)}>\n\t\t\t\t<svg fill=\"none\" viewBox=\"0 0 16 16\" class=\"anim-rotate\" aria-hidden=\"true\" role=\"img\">\n\t\t\t\t\t<path\n\t\t\t\t\t\topacity=\".5\"\n\t\t\t\t\t\td=\"M8 15A7 7 0 108 1a7 7 0 000 14v0z\"\n\t\t\t\t\t\tstroke=\"var(--schmancy-sys-color-secondary-default)\"\n\t\t\t\t\t\tstroke-width=\"2\"\n\t\t\t\t\t></path>\n\t\t\t\t\t<path d=\"M15 8a7 7 0 01-7 7\" stroke=\"var(--schmancy-sys-color-secondary-default)\" stroke-width=\"2\"></path>\n\t\t\t\t\t<path d=\"M8 12a4 4 0 100-8 4 4 0 000 8z\" fill=\"var(--schmancy-sys-color-secondary-default)\"></path>\n\t\t\t\t</svg>\n\t\t\t</div>\n\t\t`\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-spinner': SchmnacySpinner\n\t}\n}\n"],"names":["SchmancyBusy","TailwindElement","css","render","html","color","bgColor","SchmancyTheme","sys","secondary","container","tertiary","onContainer","customElement","SchmnacySpinner","constructor","super","arguments","this","size","style","fontSize","maxWidth","overflow","styleMap","__decorateClass","property","type","String","prototype"],"mappings":"iXAOA,IAAqBA,EAArB,cAA0CC,EAAAA,gBAAgBC,EAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,GAO/C,QAAAC,CACF,OAAAC,EAAAA;AAAAA;AAAAA;AAAAA;AAAAA,OAIFC,QAAM,CACPC,QAASC,EAAAA,cAAcC,IAAIH,MAAMI,UAAUC,UAC3CL,MAAOE,EAAAA,cAAcC,IAAIH,MAAMM,SAASC,WAAAA,CAAAA,CAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,GACvC,CAfcZ,EAAAA,wGAArB,CADCa,EAAAA,cAAc,eAAA,CAAA,EACMb,mMCFrB,IAAqBc,EAArB,cAA6Cb,EAAAA,gBAAgBC,EAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,GAA7D,aAAAa,CAAAC,MAAAC,GAAAA,SAAAA,EAe6CC,KAAAb,MAAA,OACDa,KAAAC,KAAA,MAAA,CAEjC,QAAAhB,CACT,MAAMiB,EAAQ,CACbC,SAAUH,KAAKC,KACfG,SAAUJ,KAAKC,KACfI,SAAU,QAAA,EAEJ,OAAAnB,EAAAA;AAAAA,gCACuBc,KAAKM,SAASJ,CAAAA,CAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,GAAM,CAVvBK,EAAAA,EAAA,CAA3BC,WAAS,CAAEC,KAAMC,MAAAA,CAAAA,CAAAA,EAfEd,EAeQe,UAAA,QAAA,CAAA,EACAJ,EAAA,CAA3BC,WAAS,CAAEC,KAAMC,MAhBEd,CAAAA,CAAAA,EAAAA,EAgBQe,UAAA,OAAA,CAhBRf,EAAAA,EAArBW,EAAA,CADCZ,EAAAA,cAAc,kBACMC,CAAAA,EAAAA,CAAAA"}
@@ -1,43 +0,0 @@
1
- import { unsafeCSS as o, LitElement as n } from "lit";
2
- import { Subject as s } from "rxjs";
3
- import { classMap as l } from "lit/directives/class-map.js";
4
- import { styleMap as d } from "lit/directives/style-map.js";
5
- const c = (e) => class extends e {
6
- constructor() {
7
- super(...arguments), this.disconnecting = new s();
8
- }
9
- classMap(t) {
10
- const r = {};
11
- return Object.keys(t).forEach((a) => {
12
- a.trim().split(" ").filter(Boolean).forEach((i) => {
13
- r[i] = t[a];
14
- });
15
- }), l(r);
16
- }
17
- styleMap(t) {
18
- return d(t);
19
- }
20
- disconnectedCallback() {
21
- this.disconnecting.next(!0), this.disconnecting.complete(), super.disconnectedCallback();
22
- }
23
- }, p = o('/*! tailwindcss v4.1.11 | MIT License | https://tailwindcss.com */@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-space-y-reverse:0;--tw-space-x-reverse:0;--tw-divide-x-reverse:0;--tw-border-style:solid;--tw-gradient-position:initial;--tw-gradient-from:#0000;--tw-gradient-via:#0000;--tw-gradient-to:#0000;--tw-gradient-stops:initial;--tw-gradient-via-stops:initial;--tw-gradient-from-position:0%;--tw-gradient-via-position:50%;--tw-gradient-to-position:100%;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial;--tw-duration:initial;--tw-ease:initial}}}@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%;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:currentColor}@supports (color:color-mix(in lab,red,red)){::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]){appearance:button}::file-selector-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-none{pointer-events:none}.collapse{visibility:collapse}.invisible{visibility:hidden}.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{inset: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-20{z-index:20}.z-49{z-index:49}.z-50{z-index:50}.z-\\[100\\]{z-index:100}.z-\\[1000\\]{z-index:1000}.z-\\[9999999\\]{z-index:9999999}.col-span-2{grid-column:span 2/span 2}.col-span-3{grid-column:span 3/span 3}.container{width:100%}@media (min-width:40rem){.container{max-width:40rem}}@media (min-width:48rem){.container{max-width:48rem}}@media (min-width:64rem){.container{max-width:64rem}}@media (min-width:80rem){.container{max-width:80rem}}@media (min-width:96rem){.container{max-width:96rem}}.m-0{margin:0}.mx-auto{margin-inline:auto}.my-1{margin-block:.25rem}.my-2{margin-block:.5rem}.my-4{margin-block:1rem}.my-6{margin-block:1.5rem}.mt-0\\.5{margin-top:.125rem}.mt-1{margin-top:.25rem}.mt-2{margin-top:.5rem}.mt-4{margin-top:1rem}.mt-6{margin-top:1.5rem}.mr-2{margin-right:.5rem}.mr-4{margin-right:1rem}.mb-1{margin-bottom:.25rem}.mb-2{margin-bottom:.5rem}.mb-3{margin-bottom:.75rem}.mb-4{margin-bottom:1rem}.mb-6{margin-bottom:1.5rem}.mb-8{margin-bottom:2rem}.mb-12{margin-bottom:3rem}.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}.ml-6{margin-left:1.5rem}.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-0\\.5{height:.125rem}.h-1{height:.25rem}.h-1\\.5{height:.375rem}.h-2{height:.5rem}.h-2\\.5{height:.625rem}.h-3{height:.75rem}.h-4{height:1rem}.h-6{height:1.5rem}.h-8{height:2rem}.h-10{height:2.5rem}.h-12{height:3rem}.h-16{height:4rem}.h-64{height:16rem}.h-96{height:24rem}.h-\\[24px\\]{height:24px}.h-\\[500px\\]{height:500px}.h-auto{height:auto}.h-full{height:100%}.h-screen{height:100vh}.max-h-\\[24px\\]{max-height:24px}.max-h-\\[80vh\\]{max-height:80vh}.max-h-\\[90vh\\]{max-height:90vh}.max-h-\\[200px\\]{max-height:200px}.max-h-\\[calc\\(100vh-40px\\)\\]{max-height:calc(100vh - 40px)}.min-h-0{min-height:0}.min-h-\\[56px\\]{min-height:56px}.min-h-\\[100px\\]{min-height:100px}.min-h-\\[150px\\]{min-height:150px}.min-h-\\[200px\\]{min-height:200px}.min-h-\\[400px\\]{min-height:400px}.w-0\\.5{width:.125rem}.w-1\\.5{width:.375rem}.w-2{width:.5rem}.w-2\\.5{width:.625rem}.w-3{width:.75rem}.w-4{width:1rem}.w-6{width:1.5rem}.w-8{width:2rem}.w-10{width:2.5rem}.w-12{width:3rem}.w-16{width:4rem}.w-48{width:12rem}.w-64{width:16rem}.w-\\[24px\\]{width:24px}.w-\\[30\\%\\]{width:30%}.w-\\[100vw\\]{width:100vw}.w-\\[var\\(--dialog-width\\)\\]{width:var(--dialog-width)}.w-fit{width:fit-content}.w-full{width:100%}.w-max{width:max-content}.max-w-2xl{max-width:42rem}.max-w-4xl{max-width:56rem}.max-w-\\[24px\\]{max-width:24px}.max-w-\\[320px\\]{max-width:320px}.max-w-\\[360px\\]{max-width:360px}.max-w-\\[calc\\(100vw-2rem\\)\\]{max-width:calc(100vw - 2rem)}.max-w-md{max-width:28rem}.max-w-sm{max-width:24rem}.min-w-0{min-width:0}.min-w-\\[60px\\]{min-width:60px}.min-w-\\[160px\\]{min-width:160px}.min-w-full{min-width:100%}.flex-1{flex:1}.flex-none{flex:none}.flex-shrink-0{flex-shrink:0}.shrink{flex-shrink:1}.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)}.-translate-y-\\[55\\%\\]{--tw-translate-y: -55% ;translate:var(--tw-translate-x)var(--tw-translate-y)}.translate-y-0{--tw-translate-y: 0rem ;translate:var(--tw-translate-x)var(--tw-translate-y)}.translate-y-full{--tw-translate-y:100%;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}.animate-spin{animation:1s linear infinite spin}.cursor-not-allowed{cursor:not-allowed}.cursor-pointer{cursor:pointer}.resize{resize:both}.list-disc{list-style-type:disc}.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-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.grid-cols-\\[250px_1fr\\]{grid-template-columns:250px 1fr}.grid-rows-\\[auto_1fr\\]{grid-template-rows:auto 1fr}.grid-rows-\\[auto_1fr_auto\\]{grid-template-rows:auto 1fr auto}.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-0\\.5{gap:.125rem}.gap-1{gap:.25rem}.gap-1\\.5{gap:.375rem}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-6{gap:1.5rem}.gap-8{gap:2rem}.gap-\\[8px\\]{gap:8px}:where(.space-y-1>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(.25rem *var(--tw-space-y-reverse));margin-block-end:calc(.25rem *calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-2>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(.5rem *var(--tw-space-y-reverse));margin-block-end:calc(.5rem *calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-3>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(.75rem *var(--tw-space-y-reverse));margin-block-end:calc(.75rem *calc(1 - var(--tw-space-y-reverse)))}: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-y-6>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(1.5rem *var(--tw-space-y-reverse));margin-block-end:calc(1.5rem *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)))}:where(.divide-x>:not(:last-child)){--tw-divide-x-reverse:0;border-inline-style:var(--tw-border-style);border-inline-start-width:calc(1px*var(--tw-divide-x-reverse));border-inline-end-width:calc(1px*calc(1 - var(--tw-divide-x-reverse)))}:where(.divide-outline>:not(:last-child)){border-color:var(--schmancy-sys-color-outline)}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-scroll{overflow:scroll}.overflow-x-auto{overflow-x:auto}.overflow-x-hidden{overflow-x:hidden}.overflow-y-auto{overflow-y:auto}.overflow-y-hidden{overflow-y:hidden}.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-sm{border-radius:.25rem}.rounded-xl{border-radius:.75rem}.rounded-t-full{border-top-left-radius:3.40282e38px;border-top-right-radius:3.40282e38px}.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-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-r{border-right-style:var(--tw-border-style);border-right-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-b-2{border-bottom-style:var(--tw-border-style);border-bottom-width:2px}.border-solid{--tw-border-style:solid;border-style:solid}.border-gray-200{border-color:#e5e7eb}.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-red-500{border-color:#fb2c36}.border-surface-container{border-color:var(--schmancy-sys-color-surface-container)}.border-surface-default{border-color:var(--schmancy-sys-color-surface-default)}.border-tertiary-default{border-color:var(--schmancy-sys-color-tertiary-default)}.border-transparent{border-color:#0000}.bg-\\[color\\]{background-color:color}.bg-black\\/40{background-color:oklab(0% none none/.4)}.bg-blue-500{background-color:#3280ff;background-color:oklch(62.3% .214 259.815)}.bg-error-container{background-color:var(--schmancy-sys-color-error-container)}.bg-error-default{background-color:var(--schmancy-sys-color-error-default)}.bg-gray-50{background-color:#f9fafb}.bg-gray-300{background-color:#d1d5dc}.bg-green-500{background-color:#00c65a;background-color:oklch(72.3% .219 149.579)}.bg-green-600{background-color:#00a447;background-color:oklch(62.7% .194 149.214)}.bg-indigo-500{background-color:#6260ff;background-color:oklch(58.5% .233 277.117)}.bg-orange-600{background-color:#ec5600;background-color:oklch(64.6% .222 41.116)}.bg-pink-500{background-color:#f6339a}.bg-primary-container{background-color:var(--schmancy-sys-color-primary-container)}.bg-primary-default{background-color:var(--schmancy-sys-color-primary-default)}.bg-purple-500{background-color:#ab4eff;background-color:oklch(62.7% .265 303.9)}.bg-red-500{background-color:#fb2c36}.bg-red-600{background-color:#e40014;background-color:oklch(57.7% .245 27.325)}.bg-secondary-container{background-color:var(--schmancy-sys-color-secondary-container)}.bg-secondary-default{background-color:var(--schmancy-sys-color-secondary-default)}.bg-success-default{background-color:var(--schmancy-sys-color-success-default)}.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-teal-500{background-color:#00b9a6;background-color:oklch(70.4% .14 182.503)}.bg-tertiary-default{background-color:var(--schmancy-sys-color-tertiary-default)}.bg-transparent{background-color:#0000}.bg-white{background-color:#fff}.bg-yellow-500{background-color:#eab300;background-color:oklch(79.5% .184 86.047)}.bg-gradient-to-br{--tw-gradient-position:to bottom right in oklab;background-image:linear-gradient(var(--tw-gradient-stops))}.from-primary-container{--tw-gradient-from:var(--schmancy-sys-color-primary-container);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.to-secondary-container{--tw-gradient-to:var(--schmancy-sys-color-secondary-container);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.object-contain{object-fit:contain}.object-cover{object-fit:cover}.p-0{padding:0}.p-2{padding:.5rem}.p-3{padding:.75rem}.p-4{padding:1rem}.p-5{padding:1.25rem}.p-6{padding:1.5rem}.p-8{padding:2rem}.p-\\[16px\\]{padding:16px}.px-1{padding-inline:.25rem}.px-1\\.5{padding-inline:.375rem}.px-2{padding-inline:.5rem}.px-2\\.5{padding-inline:.625rem}.px-3{padding-inline:.75rem}.px-4{padding-inline:1rem}.px-6{padding-inline:1.5rem}.px-\\[6px\\]{padding-inline:6px}.px-\\[8px\\]{padding-inline:8px}.px-\\[12px\\]{padding-inline:12px}.px-\\[16px\\]{padding-inline:16px}.py-0\\.75{padding-block:.1875rem}.py-1{padding-block:.25rem}.py-1\\.5{padding-block:.375rem}.py-2{padding-block:.5rem}.py-3{padding-block:.75rem}.py-8{padding-block:2rem}.py-\\[6px\\]{padding-block:6px}.py-\\[8px\\]{padding-block:8px}.py-\\[12px\\]{padding-block:12px}.pt-\\[1px\\]{padding-top:1px}.pt-\\[2px\\]{padding-top:2px}.pt-\\[3px\\]{padding-top:3px}.pt-\\[4px\\]{padding-top:4px}.pr-4{padding-right:1rem}.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-left{text-align:left}.text-right{text-align:right}.align-middle{vertical-align:middle}.font-mono{font-family:var(--schmancy-font-family),ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace}.text-2xl{font-size:1.5rem;line-height:var(--tw-leading,calc(2/1.5))}.text-4xl{font-size:2.25rem;line-height:var(--tw-leading,calc(2.5/2.25))}.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-xl{font-size:1.25rem;line-height:var(--tw-leading,calc(1.75/1.25))}.text-xs{font-size:.75rem;line-height:var(--tw-leading,calc(1/.75))}.text-\\[24px\\]{font-size:24px}.leading-6{--tw-leading: 1.5rem ;line-height:1.5rem}.leading-none{--tw-leading:1;line-height:1}.font-bold{--tw-font-weight:700;font-weight:700}.font-medium{--tw-font-weight:500;font-weight:500}.font-semibold{--tw-font-weight:600;font-weight:600}.tracking-wide{--tw-tracking:.025em;letter-spacing:.025em}.text-ellipsis{text-overflow:ellipsis}.text-error-default{color:var(--schmancy-sys-color-error-default)}.text-error-onContainer{color:var(--schmancy-sys-color-error-onContainer)}.text-gray-500{color:#6a7282}.text-gray-600{color:#4a5565}.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-primary-onContainer{color:var(--schmancy-sys-color-primary-onContainer)}.text-red-500{color:#fb2c36}.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-surface-onVariant{color:var(--schmancy-sys-color-surface-onVariant)}.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}.italic{font-style:italic}.underline{text-decoration-line:underline}.caret-transparent{caret-color:#0000}.opacity-0{opacity:0}.opacity-1{opacity:.01}.opacity-40{opacity:.4}.opacity-50{opacity:.5}.opacity-60{opacity:.6}.opacity-70{opacity:.7}.opacity-75{opacity:.75}.opacity-80{opacity:.8}.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-2xl{--tw-shadow:0 25px 50px -12px var(--tw-shadow-color,#00000040);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-none{--tw-shadow:0 0 #0000;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-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-error-default{--tw-ring-color:var(--schmancy-sys-color-error-default)}.ring-outline{--tw-ring-color:var(--schmancy-sys-color-outline)}.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{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,visibility,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,ease);transition-duration:var(--tw-duration,0s)}.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-300{--tw-duration:.3s;transition-duration:.3s}.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)}.\\[--schmancy-sys-color-primary-default\\:rgb\\(0\\,0\\,255\\)\\]{--schmancy-sys-color-primary-default:#00f}.\\[--schmancy-sys-color-primary-default\\:rgb\\(0\\,255\\,0\\)\\]{--schmancy-sys-color-primary-default:#0f0}.\\[--schmancy-sys-color-primary-default\\:rgb\\(255\\,0\\,0\\)\\]{--schmancy-sys-color-primary-default:red}.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)}}.first\\:mt-0:first-child{margin-top:0}@media (hover:hover){.hover\\:border-gray-300:hover{border-color:#d1d5dc}.hover\\:bg-green-700:hover{background-color:#00813a;background-color:oklch(52.7% .154 150.069)}.hover\\:bg-orange-700:hover{background-color:#c43e00;background-color:oklch(55.3% .195 38.402)}.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-red-700:hover{background-color:#bf000f;background-color:oklch(50.5% .213 27.518)}.hover\\:bg-secondary-container:hover{background-color:var(--schmancy-sys-color-secondary-container)}.hover\\:bg-surface-container:hover{background-color:var(--schmancy-sys-color-surface-container)}.hover\\:bg-surface-high:hover{background-color:var(--schmancy-sys-color-surface-high)}.hover\\:bg-surface-on:hover{background-color:var(--schmancy-sys-color-surface-on)}.hover\\:text-gray-700:hover{color:#364153}.hover\\:text-primary-default:hover{color:var(--schmancy-sys-color-primary-default)}.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(51.1% .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\\:outline-none:focus{--tw-outline-style:none;outline-style:none}.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-0:focus-visible{outline-offset:0px}.focus-visible\\:outline-offset-2:focus-visible{outline-offset:2px}.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 (min-width:40rem){.sm\\:w-auto{width:auto}.sm\\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\\:px-\\[12px\\]{padding-inline:12px}}@media (min-width:48rem){.md\\:right-0{right:0}.md\\:left-\\[unset\\]{left:unset}.md\\:block{display:block}.md\\:hidden{display:none}.md\\:w-64{width:16rem}.md\\:w-\\[70vw\\]{width:70vw}.md\\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.md\\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.md\\:grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}.md\\:flex-row{flex-direction:row}.md\\:justify-between{justify-content:space-between}.md\\:px-\\[16px\\]{padding-inline:16px}}@media (min-width:64rem){.lg\\:w-\\[60vw\\]{width:60vw}.lg\\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.lg\\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.lg\\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}}@media (min-width:80rem){.xl\\:w-\\[40vw\\]{width:40vw}}}: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}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-space-x-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-divide-x-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-gradient-position{syntax:"*";inherits:false}@property --tw-gradient-from{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-via{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-to{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-stops{syntax:"*";inherits:false}@property --tw-gradient-via-stops{syntax:"*";inherits:false}@property --tw-gradient-from-position{syntax:"<length-percentage>";inherits:false;initial-value:0%}@property --tw-gradient-via-position{syntax:"<length-percentage>";inherits:false;initial-value:50%}@property --tw-gradient-to-position{syntax:"<length-percentage>";inherits:false;initial-value:100%}@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-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@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-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{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 spin{to{transform:rotate(360deg)}}@keyframes pulse{50%{opacity:.5}}'), w = (e) => {
24
- const r = class r extends n {
25
- };
26
- r.styles = [o(e), p];
27
- let t = r;
28
- return t;
29
- }, f = (e) => {
30
- class t extends c(w(e)) {
31
- constructor() {
32
- super(...arguments), this.disconnectedCallback = () => {
33
- super.disconnectedCallback();
34
- };
35
- }
36
- }
37
- return t;
38
- };
39
- export {
40
- c as B,
41
- f as T
42
- };
43
- //# sourceMappingURL=tailwind.mixin-CGuZJSAV.js.map