@mhmo91/schmancy 0.2.146 → 0.2.148

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 (251) hide show
  1. package/dist/{animated-text-UjA34w-f.cjs → animated-text-4bzcQnLj.cjs} +2 -2
  2. package/dist/{animated-text-UjA34w-f.cjs.map → animated-text-4bzcQnLj.cjs.map} +1 -1
  3. package/dist/{animated-text-CWRnkzJa.js → animated-text-BkuguEeM.js} +3 -3
  4. package/dist/{animated-text-CWRnkzJa.js.map → animated-text-BkuguEeM.js.map} +1 -1
  5. package/dist/animated-text.cjs +1 -1
  6. package/dist/animated-text.js +1 -1
  7. package/dist/area.cjs +1 -1
  8. package/dist/{area.component-BzuHoeHG.js → area.component-BXSxaOqH.js} +3 -3
  9. package/dist/{area.component-BzuHoeHG.js.map → area.component-BXSxaOqH.js.map} +1 -1
  10. package/dist/{area.component-BEDtgjNb.cjs → area.component-KocrLEJt.cjs} +2 -2
  11. package/dist/{area.component-BEDtgjNb.cjs.map → area.component-KocrLEJt.cjs.map} +1 -1
  12. package/dist/area.js +1 -1
  13. package/dist/{autocomplete-B3W-MX_R.js → autocomplete-B0c08igh.js} +29 -25
  14. package/dist/autocomplete-B0c08igh.js.map +1 -0
  15. package/dist/autocomplete-n96KH2V5.cjs +56 -0
  16. package/dist/autocomplete-n96KH2V5.cjs.map +1 -0
  17. package/dist/autocomplete.cjs +1 -1
  18. package/dist/autocomplete.js +1 -1
  19. package/dist/badge.cjs +2 -0
  20. package/dist/badge.cjs.map +1 -0
  21. package/dist/badge.js +5 -0
  22. package/dist/badge.js.map +1 -0
  23. package/dist/busy.cjs +1 -1
  24. package/dist/busy.js +1 -1
  25. package/dist/button.cjs +1 -1
  26. package/dist/button.js +1 -1
  27. package/dist/card.cjs +1 -1
  28. package/dist/card.js +1 -1
  29. package/dist/{checkbox-gDmmaU-i.js → checkbox-DPQ_TJWq.js} +2 -2
  30. package/dist/{checkbox-gDmmaU-i.js.map → checkbox-DPQ_TJWq.js.map} +1 -1
  31. package/dist/{checkbox-CGAbsupz.cjs → checkbox-FUtjyBGI.cjs} +2 -2
  32. package/dist/{checkbox-CGAbsupz.cjs.map → checkbox-FUtjyBGI.cjs.map} +1 -1
  33. package/dist/checkbox.cjs +1 -1
  34. package/dist/checkbox.js +1 -1
  35. package/dist/{chips-DtYGQiRe.js → chips-B9X67Zf1.js} +3 -3
  36. package/dist/{chips-DtYGQiRe.js.map → chips-B9X67Zf1.js.map} +1 -1
  37. package/dist/{chips-FOChglMy.cjs → chips-Ds7-VTgU.cjs} +2 -2
  38. package/dist/{chips-FOChglMy.cjs.map → chips-Ds7-VTgU.cjs.map} +1 -1
  39. package/dist/chips.cjs +1 -1
  40. package/dist/chips.js +1 -1
  41. package/dist/components.cjs +1 -1
  42. package/dist/components.js +1 -1
  43. package/dist/content-drawer.cjs +1 -1
  44. package/dist/content-drawer.js +3 -3
  45. package/dist/{date-range-CKocQ00P.js → date-range-DwPCtLde.js} +3 -3
  46. package/dist/{date-range-CKocQ00P.js.map → date-range-DwPCtLde.js.map} +1 -1
  47. package/dist/{date-range-CCBukS6w.cjs → date-range-mVYs7rOp.cjs} +2 -2
  48. package/dist/{date-range-CCBukS6w.cjs.map → date-range-mVYs7rOp.cjs.map} +1 -1
  49. package/dist/date-range.cjs +1 -1
  50. package/dist/date-range.js +1 -1
  51. package/dist/{delay-Byk3BNTS.js → delay-CqMYQvhW.js} +2 -2
  52. package/dist/{delay-Byk3BNTS.js.map → delay-CqMYQvhW.js.map} +1 -1
  53. package/dist/{delay-DoQ_jIcq.cjs → delay-DtmAvWzY.cjs} +2 -2
  54. package/dist/{delay-DoQ_jIcq.cjs.map → delay-DtmAvWzY.cjs.map} +1 -1
  55. package/dist/delay.cjs +1 -1
  56. package/dist/delay.js +1 -1
  57. package/dist/{divider-Wh-OY6OR.cjs → divider-CqnMKD2G.cjs} +2 -2
  58. package/dist/{divider-Wh-OY6OR.cjs.map → divider-CqnMKD2G.cjs.map} +1 -1
  59. package/dist/{divider-DW1XYPUt.js → divider-DJ2rp3kE.js} +3 -3
  60. package/dist/{divider-DW1XYPUt.js.map → divider-DJ2rp3kE.js.map} +1 -1
  61. package/dist/divider.cjs +1 -1
  62. package/dist/divider.js +1 -1
  63. package/dist/extra.cjs +1 -1
  64. package/dist/extra.js +1 -1
  65. package/dist/{flex-BCcCTIEB.js → flex-BwPk1ZCy.js} +2 -2
  66. package/dist/{flex-BCcCTIEB.js.map → flex-BwPk1ZCy.js.map} +1 -1
  67. package/dist/{flex-BaRE9ffF.cjs → flex-CrDe23ro.cjs} +2 -2
  68. package/dist/{flex-BaRE9ffF.cjs.map → flex-CrDe23ro.cjs.map} +1 -1
  69. package/dist/{form-DvQXRrGJ.js → form-BHK78zOX.js} +2 -2
  70. package/dist/{form-DvQXRrGJ.js.map → form-BHK78zOX.js.map} +1 -1
  71. package/dist/{form-B0CyaQwH.cjs → form-D6s14cK9.cjs} +2 -2
  72. package/dist/{form-B0CyaQwH.cjs.map → form-D6s14cK9.cjs.map} +1 -1
  73. package/dist/form.cjs +1 -1
  74. package/dist/form.js +1 -1
  75. package/dist/{icon-BqQnZfcC.cjs → icon-BdQ3F5on.cjs} +9 -5
  76. package/dist/icon-BdQ3F5on.cjs.map +1 -0
  77. package/dist/{icon-CoTwcGO7.js → icon-C45X2j8_.js} +16 -12
  78. package/dist/icon-C45X2j8_.js.map +1 -0
  79. package/dist/{icon-button-B3LSOKYP.cjs → icon-button-CJ_84AFW.cjs} +3 -3
  80. package/dist/icon-button-CJ_84AFW.cjs.map +1 -0
  81. package/dist/{icon-button-BMkOl7zP.js → icon-button-Ci_gG-kz.js} +4 -4
  82. package/dist/icon-button-Ci_gG-kz.js.map +1 -0
  83. package/dist/icons.cjs +1 -1
  84. package/dist/icons.js +1 -1
  85. package/dist/index.cjs +1 -1
  86. package/dist/index.js +152 -151
  87. package/dist/{input-FLgsuB5g.js → input-CjVrAIa_.js} +2 -2
  88. package/dist/{input-FLgsuB5g.js.map → input-CjVrAIa_.js.map} +1 -1
  89. package/dist/{input-A8mZ7r9Z.cjs → input-siacCk_m.cjs} +2 -2
  90. package/dist/{input-A8mZ7r9Z.cjs.map → input-siacCk_m.cjs.map} +1 -1
  91. package/dist/input.cjs +1 -1
  92. package/dist/input.js +1 -1
  93. package/dist/layout.cjs +1 -1
  94. package/dist/layout.js +1 -1
  95. package/dist/{list-4_krEg2r.cjs → list-C9yR_9FT.cjs} +2 -2
  96. package/dist/{list-4_krEg2r.cjs.map → list-C9yR_9FT.cjs.map} +1 -1
  97. package/dist/{list-DxHWsB3z.js → list-Dsjhaheh.js} +2 -2
  98. package/dist/{list-DxHWsB3z.js.map → list-Dsjhaheh.js.map} +1 -1
  99. package/dist/list.cjs +1 -1
  100. package/dist/list.js +1 -1
  101. package/dist/{litElement.mixin-fACDhe7J.js → litElement.mixin-CoHCkb8H.js} +2 -2
  102. package/dist/{litElement.mixin-fACDhe7J.js.map → litElement.mixin-CoHCkb8H.js.map} +1 -1
  103. package/dist/{litElement.mixin-CssoQifr.cjs → litElement.mixin-DD-8VzTC.cjs} +2 -2
  104. package/dist/{litElement.mixin-CssoQifr.cjs.map → litElement.mixin-DD-8VzTC.cjs.map} +1 -1
  105. package/dist/{menu-rWt1jKex.js → menu-B1eBKh8d.js} +3 -3
  106. package/dist/{menu-rWt1jKex.js.map → menu-B1eBKh8d.js.map} +1 -1
  107. package/dist/{menu-fEUIZGXJ.cjs → menu-Cjp0aIUG.cjs} +2 -2
  108. package/dist/{menu-fEUIZGXJ.cjs.map → menu-Cjp0aIUG.cjs.map} +1 -1
  109. package/dist/menu.cjs +1 -1
  110. package/dist/menu.js +1 -1
  111. package/dist/nav-drawer.cjs +1 -1
  112. package/dist/nav-drawer.js +3 -3
  113. package/dist/{notification-container-DdUjZ0bi.cjs → notification-container-BK5ePvLB.cjs} +2 -2
  114. package/dist/{notification-container-DdUjZ0bi.cjs.map → notification-container-BK5ePvLB.cjs.map} +1 -1
  115. package/dist/{notification-container-DKLh7Vt2.js → notification-container-TrZOs1ki.js} +3 -3
  116. package/dist/{notification-container-DKLh7Vt2.js.map → notification-container-TrZOs1ki.js.map} +1 -1
  117. package/dist/notification.cjs +1 -1
  118. package/dist/notification.js +1 -1
  119. package/dist/{option-ztBnKZ_w.js → option-V_neaIcw.js} +2 -2
  120. package/dist/option-V_neaIcw.js.map +1 -0
  121. package/dist/{option-CpmK20dy.cjs → option-fLL6kZcD.cjs} +2 -2
  122. package/dist/option-fLL6kZcD.cjs.map +1 -0
  123. package/dist/option.cjs +1 -1
  124. package/dist/option.js +1 -1
  125. package/dist/{payment-card-form-CUgTRvBS.js → payment-card-form-CRD9p90d.js} +3 -3
  126. package/dist/{payment-card-form-CUgTRvBS.js.map → payment-card-form-CRD9p90d.js.map} +1 -1
  127. package/dist/{payment-card-form-DmHX_20B.cjs → payment-card-form-rlN9B_Yz.cjs} +2 -2
  128. package/dist/{payment-card-form-DmHX_20B.cjs.map → payment-card-form-rlN9B_Yz.cjs.map} +1 -1
  129. package/dist/{radio-group-DOpJu0Pc.cjs → radio-group-DMvJuLqj.cjs} +2 -2
  130. package/dist/{radio-group-DOpJu0Pc.cjs.map → radio-group-DMvJuLqj.cjs.map} +1 -1
  131. package/dist/{radio-group-BZMhEi5P.js → radio-group-Durt2La8.js} +2 -2
  132. package/dist/{radio-group-BZMhEi5P.js.map → radio-group-Durt2La8.js.map} +1 -1
  133. package/dist/radio-group.cjs +1 -1
  134. package/dist/radio-group.js +1 -1
  135. package/dist/{schmancy-steps-container-B5UOYQG8.cjs → schmancy-steps-container-D9eukn1l.cjs} +2 -2
  136. package/dist/{schmancy-steps-container-B5UOYQG8.cjs.map → schmancy-steps-container-D9eukn1l.cjs.map} +1 -1
  137. package/dist/{schmancy-steps-container-srToeIjV.js → schmancy-steps-container-Dc7I9XAP.js} +2 -2
  138. package/dist/{schmancy-steps-container-srToeIjV.js.map → schmancy-steps-container-Dc7I9XAP.js.map} +1 -1
  139. package/dist/{select-Dx6IF984.js → select-Cyo5cypJ.js} +14 -14
  140. package/dist/{select-Dx6IF984.js.map → select-Cyo5cypJ.js.map} +1 -1
  141. package/dist/{select-0NLmJErW.cjs → select-bbT_5IeU.cjs} +3 -3
  142. package/dist/{select-0NLmJErW.cjs.map → select-bbT_5IeU.cjs.map} +1 -1
  143. package/dist/select.cjs +1 -1
  144. package/dist/select.js +1 -1
  145. package/dist/{sheet-BwsspKto.cjs → sheet-C4zL3J3N.cjs} +2 -2
  146. package/dist/{sheet-BwsspKto.cjs.map → sheet-C4zL3J3N.cjs.map} +1 -1
  147. package/dist/{sheet-Bl64wfBe.js → sheet-VW_eSshd.js} +3 -3
  148. package/dist/{sheet-Bl64wfBe.js.map → sheet-VW_eSshd.js.map} +1 -1
  149. package/dist/sheet.cjs +1 -1
  150. package/dist/sheet.js +1 -1
  151. package/dist/{slider-nyTR0hyw.js → slider-Dptq2z_W.js} +3 -3
  152. package/dist/{slider-nyTR0hyw.js.map → slider-Dptq2z_W.js.map} +1 -1
  153. package/dist/{slider-9zdabbA2.cjs → slider-P__YNpbe.cjs} +2 -2
  154. package/dist/{slider-9zdabbA2.cjs.map → slider-P__YNpbe.cjs.map} +1 -1
  155. package/dist/slider.cjs +1 -1
  156. package/dist/slider.js +1 -1
  157. package/dist/{spinner-D46_Vbxf.cjs → spinner-BiIbsLxA.cjs} +2 -2
  158. package/dist/{spinner-D46_Vbxf.cjs.map → spinner-BiIbsLxA.cjs.map} +1 -1
  159. package/dist/{spinner-37Y-o4jr.js → spinner-CNxmhBV9.js} +3 -3
  160. package/dist/{spinner-37Y-o4jr.js.map → spinner-CNxmhBV9.js.map} +1 -1
  161. package/dist/steps.cjs +1 -1
  162. package/dist/steps.js +1 -1
  163. package/dist/{surface-DFXFQBBC.cjs → surface-DtrMbU4a.cjs} +2 -2
  164. package/dist/{surface-DFXFQBBC.cjs.map → surface-DtrMbU4a.cjs.map} +1 -1
  165. package/dist/{surface-RtVWZEdq.js → surface-dN-5Uj3t.js} +2 -2
  166. package/dist/{surface-RtVWZEdq.js.map → surface-dN-5Uj3t.js.map} +1 -1
  167. package/dist/surface.cjs +1 -1
  168. package/dist/surface.js +1 -1
  169. package/dist/{table-CGdNPIeN.js → table-CMOSTYCh.js} +2 -2
  170. package/dist/{table-CGdNPIeN.js.map → table-CMOSTYCh.js.map} +1 -1
  171. package/dist/{table-BG1_ofOE.cjs → table-CPl_BaOs.cjs} +2 -2
  172. package/dist/{table-BG1_ofOE.cjs.map → table-CPl_BaOs.cjs.map} +1 -1
  173. package/dist/table.cjs +1 -1
  174. package/dist/table.js +1 -1
  175. package/dist/{tabs-group-BVsNqqN1.cjs → tabs-group-BYv1i3tL.cjs} +2 -2
  176. package/dist/{tabs-group-BVsNqqN1.cjs.map → tabs-group-BYv1i3tL.cjs.map} +1 -1
  177. package/dist/{tabs-group-CvHe90C_.js → tabs-group-C6glPUAY.js} +2 -2
  178. package/dist/{tabs-group-CvHe90C_.js.map → tabs-group-C6glPUAY.js.map} +1 -1
  179. package/dist/tabs.cjs +1 -1
  180. package/dist/tabs.js +1 -1
  181. package/dist/tailwind.mixin-Bw0PQOnL.cjs +2 -0
  182. package/dist/{tailwind.mixin-1drvGQKC.cjs.map → tailwind.mixin-Bw0PQOnL.cjs.map} +1 -1
  183. package/dist/tailwind.mixin-DPlle4Fm.js +43 -0
  184. package/dist/{tailwind.mixin-C7U3gr3P.js.map → tailwind.mixin-DPlle4Fm.js.map} +1 -1
  185. package/dist/teleport.cjs +1 -1
  186. package/dist/teleport.component-877TFBRq.js +645 -0
  187. package/dist/teleport.component-877TFBRq.js.map +1 -0
  188. package/dist/teleport.component-sEZqe8CM.cjs +206 -0
  189. package/dist/teleport.component-sEZqe8CM.cjs.map +1 -0
  190. package/dist/teleport.js +3 -3
  191. package/dist/{textarea-Ddi7wWLs.js → textarea-C0a2m6et.js} +2 -2
  192. package/dist/{textarea-Ddi7wWLs.js.map → textarea-C0a2m6et.js.map} +1 -1
  193. package/dist/{textarea-D1nov2H8.cjs → textarea-CLciEnTR.cjs} +2 -2
  194. package/dist/{textarea-D1nov2H8.cjs.map → textarea-CLciEnTR.cjs.map} +1 -1
  195. package/dist/textarea.cjs +1 -1
  196. package/dist/textarea.js +1 -1
  197. package/dist/{theme-button-C-g9a2ZF.cjs → theme-button-CGIPHUsm.cjs} +2 -2
  198. package/dist/{theme-button-C-g9a2ZF.cjs.map → theme-button-CGIPHUsm.cjs.map} +1 -1
  199. package/dist/{theme-button-84n-IAL1.js → theme-button-DWNlOnlS.js} +2 -2
  200. package/dist/{theme-button-84n-IAL1.js.map → theme-button-DWNlOnlS.js.map} +1 -1
  201. package/dist/theme-button.cjs +1 -1
  202. package/dist/theme-button.js +1 -1
  203. package/dist/theme.cjs +1 -1
  204. package/dist/{theme.component-Dk0d_7Og.js → theme.component-B74CISr9.js} +2 -2
  205. package/dist/{theme.component-Dk0d_7Og.js.map → theme.component-B74CISr9.js.map} +1 -1
  206. package/dist/{theme.component-C61DdKLT.cjs → theme.component-BVrFzx-m.cjs} +2 -2
  207. package/dist/{theme.component-C61DdKLT.cjs.map → theme.component-BVrFzx-m.cjs.map} +1 -1
  208. package/dist/theme.js +1 -1
  209. package/dist/{timezone-C8cbkh7P.js → timezone-6ZUd_NwV.js} +3 -3
  210. package/dist/{timezone-C8cbkh7P.js.map → timezone-6ZUd_NwV.js.map} +1 -1
  211. package/dist/{timezone-2Eb26kSx.cjs → timezone-CPCnFUWd.cjs} +2 -2
  212. package/dist/{timezone-2Eb26kSx.cjs.map → timezone-CPCnFUWd.cjs.map} +1 -1
  213. package/dist/{tree-_dvGG1Dk.js → tree-DEVDbiSJ.js} +2 -2
  214. package/dist/{tree-_dvGG1Dk.js.map → tree-DEVDbiSJ.js.map} +1 -1
  215. package/dist/{tree-CsKV00BK.cjs → tree-YKNEtPLi.cjs} +2 -2
  216. package/dist/{tree-CsKV00BK.cjs.map → tree-YKNEtPLi.cjs.map} +1 -1
  217. package/dist/tree.cjs +1 -1
  218. package/dist/tree.js +1 -1
  219. package/dist/{typewriter-BTKJ8mPR.cjs → typewriter-CAJodRri.cjs} +2 -2
  220. package/dist/{typewriter-BTKJ8mPR.cjs.map → typewriter-CAJodRri.cjs.map} +1 -1
  221. package/dist/{typewriter-D1rGUZyO.js → typewriter-QzBi0aAI.js} +4 -4
  222. package/dist/{typewriter-D1rGUZyO.js.map → typewriter-QzBi0aAI.js.map} +1 -1
  223. package/dist/typewriter.cjs +1 -1
  224. package/dist/typewriter.js +1 -1
  225. package/dist/{typography-BJzp77zk.cjs → typography-B-z8JOAc.cjs} +2 -2
  226. package/dist/{typography-BJzp77zk.cjs.map → typography-B-z8JOAc.cjs.map} +1 -1
  227. package/dist/{typography-C3AU6NFt.js → typography-Dvf60Ziw.js} +2 -2
  228. package/dist/{typography-C3AU6NFt.js.map → typography-Dvf60Ziw.js.map} +1 -1
  229. package/dist/typography.cjs +1 -1
  230. package/dist/typography.js +1 -1
  231. package/package.json +1 -1
  232. package/types/src/autocomplete/autocomplete.d.ts +7 -3
  233. package/types/src/badge/badge.d.ts +85 -0
  234. package/types/src/badge/index.d.ts +1 -0
  235. package/types/src/icons/icon.d.ts +5 -1
  236. package/types/src/index.d.ts +1 -0
  237. package/dist/autocomplete-B3W-MX_R.js.map +0 -1
  238. package/dist/autocomplete-CtqM8VN6.cjs +0 -62
  239. package/dist/autocomplete-CtqM8VN6.cjs.map +0 -1
  240. package/dist/icon-BqQnZfcC.cjs.map +0 -1
  241. package/dist/icon-CoTwcGO7.js.map +0 -1
  242. package/dist/icon-button-B3LSOKYP.cjs.map +0 -1
  243. package/dist/icon-button-BMkOl7zP.js.map +0 -1
  244. package/dist/option-CpmK20dy.cjs.map +0 -1
  245. package/dist/option-ztBnKZ_w.js.map +0 -1
  246. package/dist/tailwind.mixin-1drvGQKC.cjs +0 -2
  247. package/dist/tailwind.mixin-C7U3gr3P.js +0 -43
  248. package/dist/teleport.component-B6W2UN_u.js +0 -533
  249. package/dist/teleport.component-B6W2UN_u.js.map +0 -1
  250. package/dist/teleport.component-Cgtrv4bU.cjs +0 -150
  251. package/dist/teleport.component-Cgtrv4bU.cjs.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"autocomplete-B0c08igh.js","sources":["../src/autocomplete/autocomplete.ts"],"sourcesContent":["import { $LitElement } from '@mixins/index'\nimport { InputSize } from '@schmancy/input'\nimport SchmancyInputV2 from '@schmancy/input/input-v2'\nimport SchmancyOption from '@schmancy/option/option'\nimport { html } from 'lit'\nimport { customElement, property, query, queryAssignedElements, state } from 'lit/decorators.js'\nimport { classMap } from 'lit/directives/class-map.js'\nimport { createRef, ref } from 'lit/directives/ref.js'\nimport style from './autocomplete.scss?inline'\n\n/**\n * @fires change - When selection changes\n */\nexport type SchmancyAutocompleteChangeEvent = CustomEvent<{\n\tvalue: string | string[]\n}>\n\n/**\n * SchmancyAutocomplete provides an accessible autocomplete/combobox component\n * with keyboard navigation and single or multi-select capabilities.\n *\n * @element schmancy-autocomplete\n * @slot - Default slot for option elements\n * @slot trigger - Optional slot to override the default input element\n */\n@customElement('schmancy-autocomplete')\nexport default class SchmancyAutocomplete extends $LitElement(style) {\n\t// Public API properties\n\t@property({ type: Boolean }) required = false\n\t@property({ type: String }) placeholder = ''\n\t@property({ type: String, reflect: true }) label = ''\n\t@property({ type: String }) maxHeight = '300px'\n\t@property({ type: Boolean }) multi = false\n\t@property({ type: String }) description = ''\n\t@property({ type: String, reflect: true }) size: InputSize = 'md'\n\t@property({ type: String }) autocomplete = 'off'\n\t@property({ type: Number }) debounceMs = 200 // Debounce delay in milliseconds\n\n\t// Value property with getter/setter\n\t@property({ type: String, reflect: true })\n\tget value() {\n\t\tif (this.multi) {\n\t\t\treturn this._selectedValues.join(',')\n\t\t}\n\t\treturn this._selectedValue\n\t}\n\tset value(val: string) {\n\t\tif (this.multi) {\n\t\t\tthis._selectedValues = val\n\t\t\t\t? val\n\t\t\t\t\t\t.split(',')\n\t\t\t\t\t\t.map(v => v.trim())\n\t\t\t\t\t\t.filter(Boolean)\n\t\t\t\t: []\n\t\t} else {\n\t\t\tthis._selectedValue = val\n\t\t}\n\t\tthis._syncOptionsSelection()\n\t\tthis._updateInputDisplay()\n\n\t\t// Dispatch change event when value is set programmatically\n\t\tif (this.isConnected) {\n\t\t\tthis._fireChangeEvent()\n\t\t}\n\t}\n\n\t// Internal state\n\t@state() private _open = false\n\t@state() private _inputValue = ''\n\t@state() private _selectedValue = ''\n\t@state() private _selectedValues: string[] = []\n\t@state() private _suppressFocusOpen = false // Flag to prevent dropdown from opening on focus after selection\n\n\t// Debounce timer reference\n\tprivate _debounceTimer: number | null = null\n\n\t// DOM references\n\t@query('#options') _listbox!: HTMLUListElement\n\t@query('sch-input') _input!: SchmancyInputV2\n\t@queryAssignedElements({ flatten: true }) private _options!: SchmancyOption[]\n\tprivate _inputElementRef = createRef<HTMLInputElement>()\n\n\t// Click outside handler reference for cleanup\n\tprivate _documentClickHandler = this._onDocumentClick.bind(this)\n\n\t// Lifecycle methods\n\tconnectedCallback() {\n\t\tsuper.connectedCallback()\n\t\t// Ensure component has ID for ARIA relationships\n\t\tif (!this.id) {\n\t\t\tthis.id = `sch-autocomplete-${Math.random().toString(36).slice(2, 9)}`\n\t\t}\n\t}\n\n\tdisconnectedCallback() {\n\t\t// Clean up global event listeners\n\t\tdocument.removeEventListener('click', this._documentClickHandler)\n\n\t\t// Clear any pending debounce timer\n\t\tif (this._debounceTimer !== null) {\n\t\t\twindow.clearTimeout(this._debounceTimer)\n\t\t}\n\n\t\tsuper.disconnectedCallback()\n\t}\n\n\tfirstUpdated() {\n\t\t// Set up initial state and accessibility\n\t\tthis._syncOptionsSelection()\n\t\tthis._setupOptionsAccessibility()\n\t\tthis._updateInputDisplay()\n\t}\n\n\tupdated(changedProps: Map<string, unknown>) {\n\t\tsuper.updated(changedProps)\n\n\t\t// Update document click handler when dropdown state changes\n\t\tif (changedProps.has('_open')) {\n\t\t\tif (!this._open) {\n\t\t\t\tdocument.removeEventListener('click', this._documentClickHandler)\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Handle document clicks to close dropdown when clicking outside\n\t */\n\tprivate _onDocumentClick(e: MouseEvent) {\n\t\t// Don't close if clicking on component or its children\n\t\tif (e.composedPath().includes(this)) {\n\t\t\treturn\n\t\t}\n\n\t\t// Don't close if clicking on one of the options (which may be in light DOM)\n\t\tfor (const option of this._options) {\n\t\t\tif (e.composedPath().includes(option)) {\n\t\t\t\treturn\n\t\t\t}\n\t\t}\n\n\t\t// Otherwise close the dropdown\n\t\tif (this._open) {\n\t\t\tthis._open = false\n\t\t\tthis._updateInputDisplay()\n\t\t}\n\t}\n\n\t/**\n\t * Set up initial option accessibility attributes\n\t */\n\tprivate _setupOptionsAccessibility() {\n\t\tthis._options.forEach((option, index) => {\n\t\t\t// Set common attributes for all options\n\t\t\toption.setAttribute('role', 'option')\n\t\t\toption.tabIndex = -1\n\n\t\t\t// Ensure each option has an ID\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// Add click handler to options\n\t\t\tif (!option.hasAttribute('data-event-bound')) {\n\t\t\t\toption.addEventListener('click', e => {\n\t\t\t\t\te.stopPropagation()\n\t\t\t\t\tthis._selectOption(option)\n\t\t\t\t})\n\t\t\t\toption.setAttribute('data-event-bound', 'true')\n\t\t\t}\n\t\t})\n\t}\n\n\t/**\n\t * Update options' selection state based on component value\n\t */\n\tprivate _syncOptionsSelection() {\n\t\tif (!this._options?.length) return\n\n\t\tthis._options.forEach(option => {\n\t\t\tif (this.multi) {\n\t\t\t\toption.selected = this._selectedValues.includes(option.value)\n\t\t\t} else {\n\t\t\t\toption.selected = option.value === this._selectedValue\n\t\t\t}\n\n\t\t\t// Update aria-selected attribute\n\t\t\toption.setAttribute('aria-selected', String(option.selected))\n\t\t})\n\t}\n\n\t/**\n\t * Show all options without filtering\n\t */\n\tprivate _showAllOptions() {\n\t\tthis._options.forEach(option => {\n\t\t\toption.hidden = false\n\t\t})\n\n\t\t// Update \"No results\" visibility - always hidden when showing all\n\t\tconst emptyMessage = this.shadowRoot?.querySelector('#empty')\n\t\tif (emptyMessage) {\n\t\t\temptyMessage.toggleAttribute('hidden', true)\n\t\t}\n\n\t\t// Announce to screen readers\n\t\tconst totalCount = this._options.length\n\t\tthis._announceToScreenReader(`${totalCount} option${totalCount === 1 ? '' : 's'} available.`)\n\t}\n\n\t/**\n\t * Filter options based on input text - this operation can be expensive\n\t * with many options or complex filtering logic\n\t */\n\tprivate _filterOptions() {\n\t\tconsole.time('filter-options')\n\t\tconst searchTerm = this._inputValue.toLowerCase().trim()\n\n\t\t// If no search term, show all options instead of filtering\n\t\tif (!searchTerm) {\n\t\t\tthis._showAllOptions()\n\t\t\tconsole.timeEnd('filter-options')\n\t\t\treturn\n\t\t}\n\n\t\t// Track if we have any matches\n\t\tlet hasMatches = false\n\n\t\tthis._options.forEach(option => {\n\t\t\t// Simple substring matching\n\t\t\tconst text = (option.label || option.textContent || '').toLowerCase()\n\t\t\tconst isMatch = text.includes(searchTerm)\n\t\t\toption.hidden = !isMatch\n\n\t\t\tif (isMatch) {\n\t\t\t\thasMatches = true\n\t\t\t}\n\t\t})\n\n\t\t// Update \"No results\" visibility\n\t\tconst emptyMessage = this.shadowRoot?.querySelector('#empty')\n\t\tif (emptyMessage) {\n\t\t\temptyMessage.toggleAttribute('hidden', hasMatches)\n\t\t}\n\n\t\t// Announce results to screen readers\n\t\tconst visibleCount = this._getVisibleOptions().length\n\t\tthis._announceToScreenReader(\n\t\t\tvisibleCount > 0 ? `${visibleCount} option${visibleCount === 1 ? '' : 's'} available.` : 'No results found.',\n\t\t)\n\t\tconsole.timeEnd('filter-options')\n\t}\n\n\t/**\n\t * Get all currently visible options\n\t */\n\tprivate _getVisibleOptions(): SchmancyOption[] {\n\t\treturn Array.from(this._options || []).filter(option => !option.hidden)\n\t}\n\n\t/**\n\t * Get labels of selected options\n\t */\n\tprivate _getSelectedLabels(): string[] {\n\t\treturn Array.from(this._options || [])\n\t\t\t.filter(option =>\n\t\t\t\tthis.multi ? this._selectedValues.includes(option.value) : option.value === this._selectedValue,\n\t\t\t)\n\t\t\t.map(option => option.label || option.textContent || '')\n\t}\n\n\t/**\n\t * Update the input display based on selection state\n\t */\n\tprivate _updateInputDisplay() {\n\t\tif (!this._inputElementRef.value) return\n\n\t\t// When dropdown is closed or in single select mode, show the selection\n\t\tif (!this._open || !this.multi) {\n\t\t\tif (this.multi) {\n\t\t\t\t// Show comma-separated labels for multi-select\n\t\t\t\tthis._inputValue = this._getSelectedLabels().join(', ')\n\t\t\t} else {\n\t\t\t\t// Show selected option label for single-select\n\t\t\t\tconst selectedOption = this._options?.find(o => o.value === this._selectedValue)\n\t\t\t\tthis._inputValue = selectedOption ? selectedOption.label || selectedOption.textContent || '' : ''\n\t\t\t}\n\t\t}\n\n\t\t// Update the input value\n\t\tthis._inputElementRef.value.value = this._inputValue\n\t}\n\n\t/**\n\t * Handle input focus\n\t */\n\tprivate _onInputFocus(e: FocusEvent) {\n\t\te.stopPropagation()\n\n\t\t// If suppress flag is active, don't open dropdown\n\t\tif (this._suppressFocusOpen) {\n\t\t\treturn\n\t\t}\n\n\t\t// If multi-select mode and input is focused, clear it for new input\n\t\tif (this.multi) {\n\t\t\tthis._inputValue = ''\n\t\t\tif (this._inputElementRef.value) {\n\t\t\t\tthis._inputElementRef.value.value = ''\n\t\t\t}\n\t\t}\n\n\t\tthis._showDropdown()\n\t}\n\n\t/**\n\t * Debounce a function call\n\t * @param fn Function to debounce\n\t */\n\tprivate _debounce(fn: () => void): void {\n\t\t// Clear any existing timer\n\t\tif (this._debounceTimer !== null) {\n\t\t\twindow.clearTimeout(this._debounceTimer)\n\t\t}\n\n\t\t// Set new timer\n\t\tthis._debounceTimer = window.setTimeout(() => {\n\t\t\tfn()\n\t\t\tthis._debounceTimer = null\n\t\t}, this.debounceMs)\n\t}\n\n\t/**\n\t * Handle input text changes with debouncing\n\t */\n\tprivate _onInputChange(e: Event) {\n\t\tconst target = e.target as HTMLInputElement\n\t\tthis._inputValue = target.value\n\n\t\t// Immediate feedback - show dropdown\n\t\tif (!this._open) {\n\t\t\tthis._showDropdown()\n\t\t}\n\n\t\t// Debounce the expensive filtering operation\n\t\tthis._debounce(() => {\n\t\t\tthis._filterOptions()\n\t\t})\n\t}\n\n\t/**\n\t * Show the dropdown with all options visible initially\n\t */\n\tprivate _showDropdown() {\n\t\tif (this._open) return\n\n\t\tthis._open = true\n\n\t\t// Initially show all options instead of filtering\n\t\tthis._showAllOptions()\n\n\t\t// Add document click handler after a brief delay\n\t\t// to avoid immediate closing on the same click event\n\t\tsetTimeout(() => {\n\t\t\tdocument.addEventListener('click', this._documentClickHandler)\n\t\t}, 10)\n\t}\n\n\t/**\n\t * Announce message to screen readers\n\t */\n\tprivate _announceToScreenReader(message: string) {\n\t\tconst liveRegion = this.shadowRoot?.querySelector('#live-status')\n\t\tif (liveRegion) {\n\t\t\tliveRegion.textContent = message\n\t\t}\n\t}\n\n\t/**\n\t * Select an option (either via click or keyboard)\n\t */\n\tprivate _selectOption(option: SchmancyOption) {\n\t\tif (this.multi) {\n\t\t\t// Toggle selection in multi-select mode\n\t\t\tconst value = option.value\n\t\t\tconst index = this._selectedValues.indexOf(value)\n\n\t\t\tif (index > -1) {\n\t\t\t\t// Remove if already selected\n\t\t\t\tthis._selectedValues = [...this._selectedValues.slice(0, index), ...this._selectedValues.slice(index + 1)]\n\t\t\t} else {\n\t\t\t\t// Add if not selected\n\t\t\t\tthis._selectedValues = [...this._selectedValues, value]\n\t\t\t}\n\n\t\t\t// Clear input for more typing in multi-select mode\n\t\t\tthis._inputValue = ''\n\t\t\tif (this._inputElementRef.value) {\n\t\t\t\tthis._inputElementRef.value.value = ''\n\t\t\t}\n\n\t\t\t// Update option selection state\n\t\t\toption.selected = !option.selected\n\t\t\toption.setAttribute('aria-selected', String(option.selected))\n\n\t\t\t// Keep dropdown open in multi-select\n\t\t\t// Show all options if input is empty\n\t\t\tif (this._inputValue.trim() === '') {\n\t\t\t\tthis._showAllOptions()\n\t\t\t} else {\n\t\t\t\tthis._filterOptions()\n\t\t\t}\n\n\t\t\t// Announce selection to screen readers\n\t\t\tconst selectedLabels = this._getSelectedLabels()\n\t\t\tthis._announceToScreenReader(\n\t\t\t\tselectedLabels.length > 0 ? `Selected: ${selectedLabels.join(', ')}` : 'No options selected',\n\t\t\t)\n\t\t} else {\n\t\t\t// Single-select mode - select and close\n\t\t\tthis._selectedValue = option.value\n\n\t\t\t// Update selected state\n\t\t\tthis._syncOptionsSelection()\n\n\t\t\t// Close dropdown\n\t\t\tthis._open = false\n\n\t\t\t// Set flag to prevent reopening on focus\n\t\t\tthis._suppressFocusOpen = true\n\n\t\t\t// Update input with selected label\n\t\t\tthis._updateInputDisplay()\n\n\t\t\t// For mobile: blur input to dismiss keyboard\n\t\t\tif (this._inputElementRef.value) {\n\t\t\t\tthis._inputElementRef.value.blur()\n\t\t\t}\n\n\t\t\t// Reset suppress flag after a delay\n\t\t\tsetTimeout(() => {\n\t\t\t\tthis._suppressFocusOpen = false\n\t\t\t}, 300)\n\n\t\t\t// Announce selection to screen readers\n\t\t\tthis._announceToScreenReader(`Selected: ${option.label || option.textContent}`)\n\t\t}\n\n\t\t// Fire change event\n\t\tthis._fireChangeEvent()\n\t}\n\n\t/**\n\t * Handle keyboard navigation\n\t */\n\tprivate _onKeyDown(e: KeyboardEvent) {\n\t\t// If dropdown is closed, open on arrow down or enter\n\t\tif (!this._open && (e.key === 'ArrowDown' || e.key === 'Enter')) {\n\t\t\te.preventDefault()\n\t\t\tthis._showDropdown()\n\n\t\t\t// Focus first visible option\n\t\t\tsetTimeout(() => {\n\t\t\t\tconst visibleOptions = this._getVisibleOptions()\n\t\t\t\tif (visibleOptions.length > 0) {\n\t\t\t\t\tvisibleOptions[0].focus()\n\t\t\t\t}\n\t\t\t}, 10)\n\n\t\t\treturn\n\t\t}\n\n\t\t// Early return if dropdown is closed\n\t\tif (!this._open) return\n\n\t\t// Handle keyboard navigation\n\t\tswitch (e.key) {\n\t\t\tcase 'Escape':\n\t\t\t\te.preventDefault()\n\t\t\t\tthis._open = false\n\t\t\t\tthis._updateInputDisplay()\n\t\t\t\tthis._inputElementRef.value?.focus()\n\t\t\t\tbreak\n\n\t\t\tcase 'Tab':\n\t\t\t\t// Natural tab behavior will move focus; just close dropdown\n\t\t\t\tthis._open = false\n\t\t\t\tthis._updateInputDisplay()\n\t\t\t\tbreak\n\n\t\t\tcase 'ArrowDown':\n\t\t\t\te.preventDefault()\n\t\t\t\tthis._moveFocus(1)\n\t\t\t\tbreak\n\n\t\t\tcase 'ArrowUp':\n\t\t\t\te.preventDefault()\n\t\t\t\tthis._moveFocus(-1)\n\t\t\t\tbreak\n\n\t\t\tcase 'Home':\n\t\t\t\te.preventDefault()\n\t\t\t\tthis._focusFirstOption()\n\t\t\t\tbreak\n\n\t\t\tcase 'End':\n\t\t\t\te.preventDefault()\n\t\t\t\tthis._focusLastOption()\n\t\t\t\tbreak\n\n\t\t\tcase 'Enter':\n\t\t\tcase ' ': // Space key\n\t\t\t\t// Select currently focused option\n\t\t\t\tconst focusedOption = this._getFocusedOption()\n\t\t\t\tif (focusedOption) {\n\t\t\t\t\te.preventDefault()\n\t\t\t\t\tthis._selectOption(focusedOption)\n\t\t\t\t}\n\t\t\t\tbreak\n\t\t}\n\t}\n\n\t/**\n\t * Get the currently focused option\n\t */\n\tprivate _getFocusedOption(): SchmancyOption | null {\n\t\tconst visibleOptions = this._getVisibleOptions()\n\t\treturn visibleOptions.find(opt => opt === document.activeElement) || null\n\t}\n\n\t/**\n\t * Move focus to next/previous option\n\t */\n\tprivate _moveFocus(direction: number) {\n\t\tconst visibleOptions = this._getVisibleOptions()\n\t\tif (!visibleOptions.length) return\n\n\t\tconst currentOption = this._getFocusedOption()\n\t\tlet index = currentOption ? visibleOptions.indexOf(currentOption) : -1\n\n\t\t// Calculate new index\n\t\tif (direction > 0) {\n\t\t\t// Move forward, wrap to start\n\t\t\tindex = index < visibleOptions.length - 1 ? index + 1 : 0\n\t\t} else {\n\t\t\t// Move backward, wrap to end\n\t\t\tindex = index > 0 ? index - 1 : visibleOptions.length - 1\n\t\t}\n\n\t\t// Focus the option\n\t\tvisibleOptions[index].focus()\n\t}\n\n\t/**\n\t * Focus the first visible option\n\t */\n\tprivate _focusFirstOption() {\n\t\tconst visibleOptions = this._getVisibleOptions()\n\t\tif (visibleOptions.length > 0) {\n\t\t\tvisibleOptions[0].focus()\n\t\t}\n\t}\n\n\t/**\n\t * Focus the last visible option\n\t */\n\tprivate _focusLastOption() {\n\t\tconst visibleOptions = this._getVisibleOptions()\n\t\tif (visibleOptions.length > 0) {\n\t\t\tvisibleOptions[visibleOptions.length - 1].focus()\n\t\t}\n\t}\n\n\t/**\n\t * Fire change event\n\t */\n\tprivate _fireChangeEvent() {\n\t\tconst detail = {\n\t\t\tvalue: this.multi ? this._selectedValues : this._selectedValue,\n\t\t}\n\n\t\tthis.dispatchEvent(\n\t\t\tnew CustomEvent<SchmancyAutocompleteChangeEvent['detail']>('change', {\n\t\t\t\tdetail,\n\t\t\t\tbubbles: true,\n\t\t\t\tcomposed: true,\n\t\t\t}),\n\t\t)\n\t}\n\n\t/**\n\t * Check validity for form integration\n\t */\n\tpublic checkValidity(): boolean {\n\t\tif (!this.required) return true\n\t\treturn this.multi ? this._selectedValues.length > 0 : Boolean(this._selectedValue)\n\t}\n\n\t/**\n\t * Report validity for form integration\n\t */\n\tpublic reportValidity(): boolean {\n\t\tif (this._inputElementRef.value) {\n\t\t\treturn this._inputElementRef.value.reportValidity()\n\t\t}\n\t\treturn this.checkValidity()\n\t}\n\n\trender() {\n\t\tconst descriptionId = `${this.id}-desc`\n\n\t\treturn html`\n\t\t\t<div class=\"schmancy-autocomplete relative z-10\">\n\t\t\t\t<!-- Screen reader live region -->\n\t\t\t\t<div id=\"live-status\" role=\"status\" aria-live=\"polite\" class=\"sr-only\"></div>\n\n\t\t\t\t<!-- Description (for screen readers) -->\n\t\t\t\t${this.description ? html`<div id=\"${descriptionId}\" class=\"sr-only\">${this.description}</div>` : ''}\n\n\t\t\t\t<!-- Input / trigger slot -->\n\t\t\t\t<slot name=\"trigger\">\n\t\t\t\t\t<sch-input\n\t\t\t\t\t\t.size=${this.size}\n\t\t\t\t\t\t${ref(this._inputElementRef)}\n\t\t\t\t\t\tid=\"autocomplete-input\"\n\t\t\t\t\t\tclass=\"w-full\"\n\t\t\t\t\t\t.label=${this.label}\n\t\t\t\t\t\t.placeholder=${this.placeholder}\n\t\t\t\t\t\t.required=${this.required}\n\t\t\t\t\t\t.value=${this._inputValue}\n\t\t\t\t\t\ttype=\"text\"\n\t\t\t\t\t\tautocomplete=${this.autocomplete}\n\t\t\t\t\t\tclickable\n\t\t\t\t\t\trole=\"combobox\"\n\t\t\t\t\t\taria-autocomplete=\"list\"\n\t\t\t\t\t\taria-haspopup=\"listbox\"\n\t\t\t\t\t\taria-controls=\"options\"\n\t\t\t\t\t\taria-expanded=${this._open}\n\t\t\t\t\t\taria-describedby=${this.description ? descriptionId : undefined}\n\t\t\t\t\t\t@input=${this._onInputChange}\n\t\t\t\t\t\t@focus=${this._onInputFocus}\n\t\t\t\t\t\t@click=${(e: MouseEvent) => {\n\t\t\t\t\t\t\te.stopPropagation()\n\t\t\t\t\t\t\tthis._onInputFocus(new FocusEvent('focus'))\n\t\t\t\t\t\t}}\n\t\t\t\t\t\t@keydown=${this._onKeyDown}\n\t\t\t\t\t>\n\t\t\t\t\t</sch-input>\n\t\t\t\t</slot>\n\n\t\t\t\t<!-- Options dropdown -->\n\t\t\t\t<ul\n\t\t\t\t\tid=\"options\"\n\t\t\t\t\tclass=${classMap({\n\t\t\t\t\t\tabsolute: true,\n\t\t\t\t\t\t'z-[1000]': true,\n\t\t\t\t\t\t'mt-1': true,\n\t\t\t\t\t\t'w-full': true,\n\t\t\t\t\t\t'rounded-md': true,\n\t\t\t\t\t\t'shadow-sm': true,\n\t\t\t\t\t\t'overflow-auto': true,\n\t\t\t\t\t\t'min-w-full': true,\n\t\t\t\t\t\t'bg-surface-container': true,\n\t\t\t\t\t})}\n\t\t\t\t\trole=\"listbox\"\n\t\t\t\t\taria-multiselectable=${this.multi ? 'true' : 'false'}\n\t\t\t\t\taria-label=${`${this.label || 'Options'} dropdown`}\n\t\t\t\t\t?hidden=${!this._open}\n\t\t\t\t\tstyle=\"\n max-height: ${this.maxHeight}; \n display: ${this._open ? 'block' : 'none'};\n \"\n\t\t\t\t\t@slotchange=${() => {\n\t\t\t\t\t\tthis._setupOptionsAccessibility()\n\t\t\t\t\t\tthis._syncOptionsSelection()\n\t\t\t\t\t\t// Show all options when slot content changes, don't filter yet\n\t\t\t\t\t\tthis._showAllOptions()\n\t\t\t\t\t}}\n\t\t\t\t>\n\t\t\t\t\t<!-- Options slot -->\n\t\t\t\t\t<slot></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-autocomplete': SchmancyAutocomplete\n\t}\n}\n"],"names":["SchmancyAutocomplete","$LitElement","constructor","super","arguments","this","required","placeholder","label","maxHeight","multi","description","size","autocomplete","debounceMs","_open","_inputValue","_selectedValue","_selectedValues","_suppressFocusOpen","_debounceTimer","_inputElementRef","createRef","_documentClickHandler","_onDocumentClick","bind","join","val","split","map","v","trim","filter","Boolean","_syncOptionsSelection","_updateInputDisplay","isConnected","_fireChangeEvent","connectedCallback","id","Math","random","toString","slice","disconnectedCallback","document","removeEventListener","window","clearTimeout","_setupOptionsAccessibility","changedProps","updated","has","e","composedPath","includes","option","_options","forEach","index","setAttribute","tabIndex","hasAttribute","addEventListener","stopPropagation","_selectOption","length","selected","value","String","hidden","emptyMessage","shadowRoot","querySelector","toggleAttribute","totalCount","_announceToScreenReader","searchTerm","toLowerCase","_showAllOptions","hasMatches","isMatch","textContent","visibleCount","_getVisibleOptions","Array","from","_getSelectedLabels","selectedOption","find","o","_showDropdown","fn","setTimeout","target","_debounce","_filterOptions","message","liveRegion","indexOf","selectedLabels","blur","key","preventDefault","visibleOptions","focus","_moveFocus","_focusFirstOption","_focusLastOption","focusedOption","_getFocusedOption","opt","activeElement","direction","currentOption","detail","dispatchEvent","CustomEvent","bubbles","composed","checkValidity","reportValidity","render","descriptionId","html","ref","_onInputChange","_onInputFocus","FocusEvent","_onKeyDown","classMap","absolute","__decorateClass","property","type","prototype","reflect","Number","state","query","queryAssignedElements","flatten","customElement"],"mappings":"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"}
@@ -0,0 +1,56 @@
1
+ "use strict";require("rxjs");const h=require("lit/directives/class-map.js");require("lit/directives/style-map.js");const d=require("./litElement.mixin-DD-8VzTC.cjs");require("./tailwind.mixin-Bw0PQOnL.cjs");const a=require("lit"),n=require("lit/decorators.js"),c=require("lit/directives/ref.js");var _=Object.defineProperty,m=Object.getOwnPropertyDescriptor,l=(e,t,s,i)=>{for(var p,u=i>1?void 0:i?m(t,s):t,r=e.length-1;r>=0;r--)(p=e[r])&&(u=(i?p(t,s,u):p(u))||u);return i&&u&&_(t,s,u),u};let o=class extends d.$LitElement(":host{display:block;border:unset!important;line-height:unset!important;background:unset!important;padding:unset!important;font-size:unset!important;box-shadow:unset!important}:host:focus{box-shadow:unset!important}"){constructor(){super(...arguments),this.required=!1,this.placeholder="",this.label="",this.maxHeight="300px",this.multi=!1,this.description="",this.size="md",this.autocomplete="off",this.debounceMs=200,this._open=!1,this._inputValue="",this._selectedValue="",this._selectedValues=[],this._suppressFocusOpen=!1,this._debounceTimer=null,this._inputElementRef=c.createRef(),this._documentClickHandler=this._onDocumentClick.bind(this)}get value(){return this.multi?this._selectedValues.join(","):this._selectedValue}set value(e){this.multi?this._selectedValues=e?e.split(",").map(t=>t.trim()).filter(Boolean):[]:this._selectedValue=e,this._syncOptionsSelection(),this._updateInputDisplay(),this.isConnected&&this._fireChangeEvent()}connectedCallback(){super.connectedCallback(),this.id||(this.id=`sch-autocomplete-${Math.random().toString(36).slice(2,9)}`)}disconnectedCallback(){document.removeEventListener("click",this._documentClickHandler),this._debounceTimer!==null&&window.clearTimeout(this._debounceTimer),super.disconnectedCallback()}firstUpdated(){this._syncOptionsSelection(),this._setupOptionsAccessibility(),this._updateInputDisplay()}updated(e){super.updated(e),e.has("_open")&&(this._open||document.removeEventListener("click",this._documentClickHandler))}_onDocumentClick(e){if(!e.composedPath().includes(this)){for(const t of this._options)if(e.composedPath().includes(t))return;this._open&&(this._open=!1,this._updateInputDisplay())}}_setupOptionsAccessibility(){this._options.forEach((e,t)=>{e.setAttribute("role","option"),e.tabIndex=-1,e.id||(e.id=`${this.id}-option-${t}`),e.hasAttribute("data-event-bound")||(e.addEventListener("click",s=>{s.stopPropagation(),this._selectOption(e)}),e.setAttribute("data-event-bound","true"))})}_syncOptionsSelection(){var e;(e=this._options)!=null&&e.length&&this._options.forEach(t=>{this.multi?t.selected=this._selectedValues.includes(t.value):t.selected=t.value===this._selectedValue,t.setAttribute("aria-selected",String(t.selected))})}_showAllOptions(){var s;this._options.forEach(i=>{i.hidden=!1});const e=(s=this.shadowRoot)==null?void 0:s.querySelector("#empty");e&&e.toggleAttribute("hidden",!0);const t=this._options.length;this._announceToScreenReader(`${t} option${t===1?"":"s"} available.`)}_filterOptions(){var p;const e=this._inputValue.toLowerCase().trim();if(!e)return void this._showAllOptions();let t=!1;this._options.forEach(u=>{const r=(u.label||u.textContent||"").toLowerCase().includes(e);u.hidden=!r,r&&(t=!0)});const s=(p=this.shadowRoot)==null?void 0:p.querySelector("#empty");s&&s.toggleAttribute("hidden",t);const i=this._getVisibleOptions().length;this._announceToScreenReader(i>0?`${i} option${i===1?"":"s"} available.`:"No results found.")}_getVisibleOptions(){return Array.from(this._options||[]).filter(e=>!e.hidden)}_getSelectedLabels(){return Array.from(this._options||[]).filter(e=>this.multi?this._selectedValues.includes(e.value):e.value===this._selectedValue).map(e=>e.label||e.textContent||"")}_updateInputDisplay(){var e;if(this._inputElementRef.value){if(!this._open||!this.multi)if(this.multi)this._inputValue=this._getSelectedLabels().join(", ");else{const t=(e=this._options)==null?void 0:e.find(s=>s.value===this._selectedValue);this._inputValue=t&&(t.label||t.textContent)||""}this._inputElementRef.value.value=this._inputValue}}_onInputFocus(e){e.stopPropagation(),this._suppressFocusOpen||(this.multi&&(this._inputValue="",this._inputElementRef.value&&(this._inputElementRef.value.value="")),this._showDropdown())}_debounce(e){this._debounceTimer!==null&&window.clearTimeout(this._debounceTimer),this._debounceTimer=window.setTimeout(()=>{e(),this._debounceTimer=null},this.debounceMs)}_onInputChange(e){const t=e.target;this._inputValue=t.value,this._open||this._showDropdown(),this._debounce(()=>{this._filterOptions()})}_showDropdown(){this._open||(this._open=!0,this._showAllOptions(),setTimeout(()=>{document.addEventListener("click",this._documentClickHandler)},10))}_announceToScreenReader(e){var s;const t=(s=this.shadowRoot)==null?void 0:s.querySelector("#live-status");t&&(t.textContent=e)}_selectOption(e){if(this.multi){const t=e.value,s=this._selectedValues.indexOf(t);this._selectedValues=s>-1?[...this._selectedValues.slice(0,s),...this._selectedValues.slice(s+1)]:[...this._selectedValues,t],this._inputValue="",this._inputElementRef.value&&(this._inputElementRef.value.value=""),e.selected=!e.selected,e.setAttribute("aria-selected",String(e.selected)),this._inputValue.trim()===""?this._showAllOptions():this._filterOptions();const i=this._getSelectedLabels();this._announceToScreenReader(i.length>0?`Selected: ${i.join(", ")}`:"No options selected")}else this._selectedValue=e.value,this._syncOptionsSelection(),this._open=!1,this._suppressFocusOpen=!0,this._updateInputDisplay(),this._inputElementRef.value&&this._inputElementRef.value.blur(),setTimeout(()=>{this._suppressFocusOpen=!1},300),this._announceToScreenReader(`Selected: ${e.label||e.textContent}`);this._fireChangeEvent()}_onKeyDown(e){var t;if(!this._open&&(e.key==="ArrowDown"||e.key==="Enter"))return e.preventDefault(),this._showDropdown(),void setTimeout(()=>{const s=this._getVisibleOptions();s.length>0&&s[0].focus()},10);if(this._open)switch(e.key){case"Escape":e.preventDefault(),this._open=!1,this._updateInputDisplay(),(t=this._inputElementRef.value)==null||t.focus();break;case"Tab":this._open=!1,this._updateInputDisplay();break;case"ArrowDown":e.preventDefault(),this._moveFocus(1);break;case"ArrowUp":e.preventDefault(),this._moveFocus(-1);break;case"Home":e.preventDefault(),this._focusFirstOption();break;case"End":e.preventDefault(),this._focusLastOption();break;case"Enter":case" ":const s=this._getFocusedOption();s&&(e.preventDefault(),this._selectOption(s))}}_getFocusedOption(){return this._getVisibleOptions().find(e=>e===document.activeElement)||null}_moveFocus(e){const t=this._getVisibleOptions();if(!t.length)return;const s=this._getFocusedOption();let i=s?t.indexOf(s):-1;i=e>0?i<t.length-1?i+1:0:i>0?i-1:t.length-1,t[i].focus()}_focusFirstOption(){const e=this._getVisibleOptions();e.length>0&&e[0].focus()}_focusLastOption(){const e=this._getVisibleOptions();e.length>0&&e[e.length-1].focus()}_fireChangeEvent(){const e={value:this.multi?this._selectedValues:this._selectedValue};this.dispatchEvent(new CustomEvent("change",{detail:e,bubbles:!0,composed:!0}))}checkValidity(){return!this.required||(this.multi?this._selectedValues.length>0:!!this._selectedValue)}reportValidity(){return this._inputElementRef.value?this._inputElementRef.value.reportValidity():this.checkValidity()}render(){const e=`${this.id}-desc`;return a.html`
2
+ <div class="schmancy-autocomplete relative z-10">
3
+ <!-- Screen reader live region -->
4
+ <div id="live-status" role="status" aria-live="polite" class="sr-only"></div>
5
+
6
+ <!-- Description (for screen readers) -->
7
+ ${this.description?a.html`<div id="${e}" class="sr-only">${this.description}</div>`:""}
8
+
9
+ <!-- Input / trigger slot -->
10
+ <slot name="trigger">
11
+ <sch-input
12
+ .size=${this.size}
13
+ ${c.ref(this._inputElementRef)}
14
+ id="autocomplete-input"
15
+ class="w-full"
16
+ .label=${this.label}
17
+ .placeholder=${this.placeholder}
18
+ .required=${this.required}
19
+ .value=${this._inputValue}
20
+ type="text"
21
+ autocomplete=${this.autocomplete}
22
+ clickable
23
+ role="combobox"
24
+ aria-autocomplete="list"
25
+ aria-haspopup="listbox"
26
+ aria-controls="options"
27
+ aria-expanded=${this._open}
28
+ aria-describedby=${this.description?e:void 0}
29
+ @input=${this._onInputChange}
30
+ @focus=${this._onInputFocus}
31
+ @click=${t=>{t.stopPropagation(),this._onInputFocus(new FocusEvent("focus"))}}
32
+ @keydown=${this._onKeyDown}
33
+ >
34
+ </sch-input>
35
+ </slot>
36
+
37
+ <!-- Options dropdown -->
38
+ <ul
39
+ id="options"
40
+ class=${h.classMap({absolute:!0,"z-[1000]":!0,"mt-1":!0,"w-full":!0,"rounded-md":!0,"shadow-sm":!0,"overflow-auto":!0,"min-w-full":!0,"bg-surface-container":!0})}
41
+ role="listbox"
42
+ aria-multiselectable=${this.multi?"true":"false"}
43
+ aria-label=${`${this.label||"Options"} dropdown`}
44
+ ?hidden=${!this._open}
45
+ style="
46
+ max-height: ${this.maxHeight};
47
+ display: ${this._open?"block":"none"};
48
+ "
49
+ @slotchange=${()=>{this._setupOptionsAccessibility(),this._syncOptionsSelection(),this._showAllOptions()}}
50
+ >
51
+ <!-- Options slot -->
52
+ <slot></slot>
53
+ </ul>
54
+ </div>
55
+ `}};l([n.property({type:Boolean})],o.prototype,"required",2),l([n.property({type:String})],o.prototype,"placeholder",2),l([n.property({type:String,reflect:!0})],o.prototype,"label",2),l([n.property({type:String})],o.prototype,"maxHeight",2),l([n.property({type:Boolean})],o.prototype,"multi",2),l([n.property({type:String})],o.prototype,"description",2),l([n.property({type:String,reflect:!0})],o.prototype,"size",2),l([n.property({type:String})],o.prototype,"autocomplete",2),l([n.property({type:Number})],o.prototype,"debounceMs",2),l([n.property({type:String,reflect:!0})],o.prototype,"value",1),l([n.state()],o.prototype,"_open",2),l([n.state()],o.prototype,"_inputValue",2),l([n.state()],o.prototype,"_selectedValue",2),l([n.state()],o.prototype,"_selectedValues",2),l([n.state()],o.prototype,"_suppressFocusOpen",2),l([n.query("#options")],o.prototype,"_listbox",2),l([n.query("sch-input")],o.prototype,"_input",2),l([n.queryAssignedElements({flatten:!0})],o.prototype,"_options",2),o=l([n.customElement("schmancy-autocomplete")],o);
56
+ //# sourceMappingURL=autocomplete-n96KH2V5.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"autocomplete-n96KH2V5.cjs","sources":["../src/autocomplete/autocomplete.ts"],"sourcesContent":["import { $LitElement } from '@mixins/index'\nimport { InputSize } from '@schmancy/input'\nimport SchmancyInputV2 from '@schmancy/input/input-v2'\nimport SchmancyOption from '@schmancy/option/option'\nimport { html } from 'lit'\nimport { customElement, property, query, queryAssignedElements, state } from 'lit/decorators.js'\nimport { classMap } from 'lit/directives/class-map.js'\nimport { createRef, ref } from 'lit/directives/ref.js'\nimport style from './autocomplete.scss?inline'\n\n/**\n * @fires change - When selection changes\n */\nexport type SchmancyAutocompleteChangeEvent = CustomEvent<{\n\tvalue: string | string[]\n}>\n\n/**\n * SchmancyAutocomplete provides an accessible autocomplete/combobox component\n * with keyboard navigation and single or multi-select capabilities.\n *\n * @element schmancy-autocomplete\n * @slot - Default slot for option elements\n * @slot trigger - Optional slot to override the default input element\n */\n@customElement('schmancy-autocomplete')\nexport default class SchmancyAutocomplete extends $LitElement(style) {\n\t// Public API properties\n\t@property({ type: Boolean }) required = false\n\t@property({ type: String }) placeholder = ''\n\t@property({ type: String, reflect: true }) label = ''\n\t@property({ type: String }) maxHeight = '300px'\n\t@property({ type: Boolean }) multi = false\n\t@property({ type: String }) description = ''\n\t@property({ type: String, reflect: true }) size: InputSize = 'md'\n\t@property({ type: String }) autocomplete = 'off'\n\t@property({ type: Number }) debounceMs = 200 // Debounce delay in milliseconds\n\n\t// Value property with getter/setter\n\t@property({ type: String, reflect: true })\n\tget value() {\n\t\tif (this.multi) {\n\t\t\treturn this._selectedValues.join(',')\n\t\t}\n\t\treturn this._selectedValue\n\t}\n\tset value(val: string) {\n\t\tif (this.multi) {\n\t\t\tthis._selectedValues = val\n\t\t\t\t? val\n\t\t\t\t\t\t.split(',')\n\t\t\t\t\t\t.map(v => v.trim())\n\t\t\t\t\t\t.filter(Boolean)\n\t\t\t\t: []\n\t\t} else {\n\t\t\tthis._selectedValue = val\n\t\t}\n\t\tthis._syncOptionsSelection()\n\t\tthis._updateInputDisplay()\n\n\t\t// Dispatch change event when value is set programmatically\n\t\tif (this.isConnected) {\n\t\t\tthis._fireChangeEvent()\n\t\t}\n\t}\n\n\t// Internal state\n\t@state() private _open = false\n\t@state() private _inputValue = ''\n\t@state() private _selectedValue = ''\n\t@state() private _selectedValues: string[] = []\n\t@state() private _suppressFocusOpen = false // Flag to prevent dropdown from opening on focus after selection\n\n\t// Debounce timer reference\n\tprivate _debounceTimer: number | null = null\n\n\t// DOM references\n\t@query('#options') _listbox!: HTMLUListElement\n\t@query('sch-input') _input!: SchmancyInputV2\n\t@queryAssignedElements({ flatten: true }) private _options!: SchmancyOption[]\n\tprivate _inputElementRef = createRef<HTMLInputElement>()\n\n\t// Click outside handler reference for cleanup\n\tprivate _documentClickHandler = this._onDocumentClick.bind(this)\n\n\t// Lifecycle methods\n\tconnectedCallback() {\n\t\tsuper.connectedCallback()\n\t\t// Ensure component has ID for ARIA relationships\n\t\tif (!this.id) {\n\t\t\tthis.id = `sch-autocomplete-${Math.random().toString(36).slice(2, 9)}`\n\t\t}\n\t}\n\n\tdisconnectedCallback() {\n\t\t// Clean up global event listeners\n\t\tdocument.removeEventListener('click', this._documentClickHandler)\n\n\t\t// Clear any pending debounce timer\n\t\tif (this._debounceTimer !== null) {\n\t\t\twindow.clearTimeout(this._debounceTimer)\n\t\t}\n\n\t\tsuper.disconnectedCallback()\n\t}\n\n\tfirstUpdated() {\n\t\t// Set up initial state and accessibility\n\t\tthis._syncOptionsSelection()\n\t\tthis._setupOptionsAccessibility()\n\t\tthis._updateInputDisplay()\n\t}\n\n\tupdated(changedProps: Map<string, unknown>) {\n\t\tsuper.updated(changedProps)\n\n\t\t// Update document click handler when dropdown state changes\n\t\tif (changedProps.has('_open')) {\n\t\t\tif (!this._open) {\n\t\t\t\tdocument.removeEventListener('click', this._documentClickHandler)\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Handle document clicks to close dropdown when clicking outside\n\t */\n\tprivate _onDocumentClick(e: MouseEvent) {\n\t\t// Don't close if clicking on component or its children\n\t\tif (e.composedPath().includes(this)) {\n\t\t\treturn\n\t\t}\n\n\t\t// Don't close if clicking on one of the options (which may be in light DOM)\n\t\tfor (const option of this._options) {\n\t\t\tif (e.composedPath().includes(option)) {\n\t\t\t\treturn\n\t\t\t}\n\t\t}\n\n\t\t// Otherwise close the dropdown\n\t\tif (this._open) {\n\t\t\tthis._open = false\n\t\t\tthis._updateInputDisplay()\n\t\t}\n\t}\n\n\t/**\n\t * Set up initial option accessibility attributes\n\t */\n\tprivate _setupOptionsAccessibility() {\n\t\tthis._options.forEach((option, index) => {\n\t\t\t// Set common attributes for all options\n\t\t\toption.setAttribute('role', 'option')\n\t\t\toption.tabIndex = -1\n\n\t\t\t// Ensure each option has an ID\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// Add click handler to options\n\t\t\tif (!option.hasAttribute('data-event-bound')) {\n\t\t\t\toption.addEventListener('click', e => {\n\t\t\t\t\te.stopPropagation()\n\t\t\t\t\tthis._selectOption(option)\n\t\t\t\t})\n\t\t\t\toption.setAttribute('data-event-bound', 'true')\n\t\t\t}\n\t\t})\n\t}\n\n\t/**\n\t * Update options' selection state based on component value\n\t */\n\tprivate _syncOptionsSelection() {\n\t\tif (!this._options?.length) return\n\n\t\tthis._options.forEach(option => {\n\t\t\tif (this.multi) {\n\t\t\t\toption.selected = this._selectedValues.includes(option.value)\n\t\t\t} else {\n\t\t\t\toption.selected = option.value === this._selectedValue\n\t\t\t}\n\n\t\t\t// Update aria-selected attribute\n\t\t\toption.setAttribute('aria-selected', String(option.selected))\n\t\t})\n\t}\n\n\t/**\n\t * Show all options without filtering\n\t */\n\tprivate _showAllOptions() {\n\t\tthis._options.forEach(option => {\n\t\t\toption.hidden = false\n\t\t})\n\n\t\t// Update \"No results\" visibility - always hidden when showing all\n\t\tconst emptyMessage = this.shadowRoot?.querySelector('#empty')\n\t\tif (emptyMessage) {\n\t\t\temptyMessage.toggleAttribute('hidden', true)\n\t\t}\n\n\t\t// Announce to screen readers\n\t\tconst totalCount = this._options.length\n\t\tthis._announceToScreenReader(`${totalCount} option${totalCount === 1 ? '' : 's'} available.`)\n\t}\n\n\t/**\n\t * Filter options based on input text - this operation can be expensive\n\t * with many options or complex filtering logic\n\t */\n\tprivate _filterOptions() {\n\t\tconsole.time('filter-options')\n\t\tconst searchTerm = this._inputValue.toLowerCase().trim()\n\n\t\t// If no search term, show all options instead of filtering\n\t\tif (!searchTerm) {\n\t\t\tthis._showAllOptions()\n\t\t\tconsole.timeEnd('filter-options')\n\t\t\treturn\n\t\t}\n\n\t\t// Track if we have any matches\n\t\tlet hasMatches = false\n\n\t\tthis._options.forEach(option => {\n\t\t\t// Simple substring matching\n\t\t\tconst text = (option.label || option.textContent || '').toLowerCase()\n\t\t\tconst isMatch = text.includes(searchTerm)\n\t\t\toption.hidden = !isMatch\n\n\t\t\tif (isMatch) {\n\t\t\t\thasMatches = true\n\t\t\t}\n\t\t})\n\n\t\t// Update \"No results\" visibility\n\t\tconst emptyMessage = this.shadowRoot?.querySelector('#empty')\n\t\tif (emptyMessage) {\n\t\t\temptyMessage.toggleAttribute('hidden', hasMatches)\n\t\t}\n\n\t\t// Announce results to screen readers\n\t\tconst visibleCount = this._getVisibleOptions().length\n\t\tthis._announceToScreenReader(\n\t\t\tvisibleCount > 0 ? `${visibleCount} option${visibleCount === 1 ? '' : 's'} available.` : 'No results found.',\n\t\t)\n\t\tconsole.timeEnd('filter-options')\n\t}\n\n\t/**\n\t * Get all currently visible options\n\t */\n\tprivate _getVisibleOptions(): SchmancyOption[] {\n\t\treturn Array.from(this._options || []).filter(option => !option.hidden)\n\t}\n\n\t/**\n\t * Get labels of selected options\n\t */\n\tprivate _getSelectedLabels(): string[] {\n\t\treturn Array.from(this._options || [])\n\t\t\t.filter(option =>\n\t\t\t\tthis.multi ? this._selectedValues.includes(option.value) : option.value === this._selectedValue,\n\t\t\t)\n\t\t\t.map(option => option.label || option.textContent || '')\n\t}\n\n\t/**\n\t * Update the input display based on selection state\n\t */\n\tprivate _updateInputDisplay() {\n\t\tif (!this._inputElementRef.value) return\n\n\t\t// When dropdown is closed or in single select mode, show the selection\n\t\tif (!this._open || !this.multi) {\n\t\t\tif (this.multi) {\n\t\t\t\t// Show comma-separated labels for multi-select\n\t\t\t\tthis._inputValue = this._getSelectedLabels().join(', ')\n\t\t\t} else {\n\t\t\t\t// Show selected option label for single-select\n\t\t\t\tconst selectedOption = this._options?.find(o => o.value === this._selectedValue)\n\t\t\t\tthis._inputValue = selectedOption ? selectedOption.label || selectedOption.textContent || '' : ''\n\t\t\t}\n\t\t}\n\n\t\t// Update the input value\n\t\tthis._inputElementRef.value.value = this._inputValue\n\t}\n\n\t/**\n\t * Handle input focus\n\t */\n\tprivate _onInputFocus(e: FocusEvent) {\n\t\te.stopPropagation()\n\n\t\t// If suppress flag is active, don't open dropdown\n\t\tif (this._suppressFocusOpen) {\n\t\t\treturn\n\t\t}\n\n\t\t// If multi-select mode and input is focused, clear it for new input\n\t\tif (this.multi) {\n\t\t\tthis._inputValue = ''\n\t\t\tif (this._inputElementRef.value) {\n\t\t\t\tthis._inputElementRef.value.value = ''\n\t\t\t}\n\t\t}\n\n\t\tthis._showDropdown()\n\t}\n\n\t/**\n\t * Debounce a function call\n\t * @param fn Function to debounce\n\t */\n\tprivate _debounce(fn: () => void): void {\n\t\t// Clear any existing timer\n\t\tif (this._debounceTimer !== null) {\n\t\t\twindow.clearTimeout(this._debounceTimer)\n\t\t}\n\n\t\t// Set new timer\n\t\tthis._debounceTimer = window.setTimeout(() => {\n\t\t\tfn()\n\t\t\tthis._debounceTimer = null\n\t\t}, this.debounceMs)\n\t}\n\n\t/**\n\t * Handle input text changes with debouncing\n\t */\n\tprivate _onInputChange(e: Event) {\n\t\tconst target = e.target as HTMLInputElement\n\t\tthis._inputValue = target.value\n\n\t\t// Immediate feedback - show dropdown\n\t\tif (!this._open) {\n\t\t\tthis._showDropdown()\n\t\t}\n\n\t\t// Debounce the expensive filtering operation\n\t\tthis._debounce(() => {\n\t\t\tthis._filterOptions()\n\t\t})\n\t}\n\n\t/**\n\t * Show the dropdown with all options visible initially\n\t */\n\tprivate _showDropdown() {\n\t\tif (this._open) return\n\n\t\tthis._open = true\n\n\t\t// Initially show all options instead of filtering\n\t\tthis._showAllOptions()\n\n\t\t// Add document click handler after a brief delay\n\t\t// to avoid immediate closing on the same click event\n\t\tsetTimeout(() => {\n\t\t\tdocument.addEventListener('click', this._documentClickHandler)\n\t\t}, 10)\n\t}\n\n\t/**\n\t * Announce message to screen readers\n\t */\n\tprivate _announceToScreenReader(message: string) {\n\t\tconst liveRegion = this.shadowRoot?.querySelector('#live-status')\n\t\tif (liveRegion) {\n\t\t\tliveRegion.textContent = message\n\t\t}\n\t}\n\n\t/**\n\t * Select an option (either via click or keyboard)\n\t */\n\tprivate _selectOption(option: SchmancyOption) {\n\t\tif (this.multi) {\n\t\t\t// Toggle selection in multi-select mode\n\t\t\tconst value = option.value\n\t\t\tconst index = this._selectedValues.indexOf(value)\n\n\t\t\tif (index > -1) {\n\t\t\t\t// Remove if already selected\n\t\t\t\tthis._selectedValues = [...this._selectedValues.slice(0, index), ...this._selectedValues.slice(index + 1)]\n\t\t\t} else {\n\t\t\t\t// Add if not selected\n\t\t\t\tthis._selectedValues = [...this._selectedValues, value]\n\t\t\t}\n\n\t\t\t// Clear input for more typing in multi-select mode\n\t\t\tthis._inputValue = ''\n\t\t\tif (this._inputElementRef.value) {\n\t\t\t\tthis._inputElementRef.value.value = ''\n\t\t\t}\n\n\t\t\t// Update option selection state\n\t\t\toption.selected = !option.selected\n\t\t\toption.setAttribute('aria-selected', String(option.selected))\n\n\t\t\t// Keep dropdown open in multi-select\n\t\t\t// Show all options if input is empty\n\t\t\tif (this._inputValue.trim() === '') {\n\t\t\t\tthis._showAllOptions()\n\t\t\t} else {\n\t\t\t\tthis._filterOptions()\n\t\t\t}\n\n\t\t\t// Announce selection to screen readers\n\t\t\tconst selectedLabels = this._getSelectedLabels()\n\t\t\tthis._announceToScreenReader(\n\t\t\t\tselectedLabels.length > 0 ? `Selected: ${selectedLabels.join(', ')}` : 'No options selected',\n\t\t\t)\n\t\t} else {\n\t\t\t// Single-select mode - select and close\n\t\t\tthis._selectedValue = option.value\n\n\t\t\t// Update selected state\n\t\t\tthis._syncOptionsSelection()\n\n\t\t\t// Close dropdown\n\t\t\tthis._open = false\n\n\t\t\t// Set flag to prevent reopening on focus\n\t\t\tthis._suppressFocusOpen = true\n\n\t\t\t// Update input with selected label\n\t\t\tthis._updateInputDisplay()\n\n\t\t\t// For mobile: blur input to dismiss keyboard\n\t\t\tif (this._inputElementRef.value) {\n\t\t\t\tthis._inputElementRef.value.blur()\n\t\t\t}\n\n\t\t\t// Reset suppress flag after a delay\n\t\t\tsetTimeout(() => {\n\t\t\t\tthis._suppressFocusOpen = false\n\t\t\t}, 300)\n\n\t\t\t// Announce selection to screen readers\n\t\t\tthis._announceToScreenReader(`Selected: ${option.label || option.textContent}`)\n\t\t}\n\n\t\t// Fire change event\n\t\tthis._fireChangeEvent()\n\t}\n\n\t/**\n\t * Handle keyboard navigation\n\t */\n\tprivate _onKeyDown(e: KeyboardEvent) {\n\t\t// If dropdown is closed, open on arrow down or enter\n\t\tif (!this._open && (e.key === 'ArrowDown' || e.key === 'Enter')) {\n\t\t\te.preventDefault()\n\t\t\tthis._showDropdown()\n\n\t\t\t// Focus first visible option\n\t\t\tsetTimeout(() => {\n\t\t\t\tconst visibleOptions = this._getVisibleOptions()\n\t\t\t\tif (visibleOptions.length > 0) {\n\t\t\t\t\tvisibleOptions[0].focus()\n\t\t\t\t}\n\t\t\t}, 10)\n\n\t\t\treturn\n\t\t}\n\n\t\t// Early return if dropdown is closed\n\t\tif (!this._open) return\n\n\t\t// Handle keyboard navigation\n\t\tswitch (e.key) {\n\t\t\tcase 'Escape':\n\t\t\t\te.preventDefault()\n\t\t\t\tthis._open = false\n\t\t\t\tthis._updateInputDisplay()\n\t\t\t\tthis._inputElementRef.value?.focus()\n\t\t\t\tbreak\n\n\t\t\tcase 'Tab':\n\t\t\t\t// Natural tab behavior will move focus; just close dropdown\n\t\t\t\tthis._open = false\n\t\t\t\tthis._updateInputDisplay()\n\t\t\t\tbreak\n\n\t\t\tcase 'ArrowDown':\n\t\t\t\te.preventDefault()\n\t\t\t\tthis._moveFocus(1)\n\t\t\t\tbreak\n\n\t\t\tcase 'ArrowUp':\n\t\t\t\te.preventDefault()\n\t\t\t\tthis._moveFocus(-1)\n\t\t\t\tbreak\n\n\t\t\tcase 'Home':\n\t\t\t\te.preventDefault()\n\t\t\t\tthis._focusFirstOption()\n\t\t\t\tbreak\n\n\t\t\tcase 'End':\n\t\t\t\te.preventDefault()\n\t\t\t\tthis._focusLastOption()\n\t\t\t\tbreak\n\n\t\t\tcase 'Enter':\n\t\t\tcase ' ': // Space key\n\t\t\t\t// Select currently focused option\n\t\t\t\tconst focusedOption = this._getFocusedOption()\n\t\t\t\tif (focusedOption) {\n\t\t\t\t\te.preventDefault()\n\t\t\t\t\tthis._selectOption(focusedOption)\n\t\t\t\t}\n\t\t\t\tbreak\n\t\t}\n\t}\n\n\t/**\n\t * Get the currently focused option\n\t */\n\tprivate _getFocusedOption(): SchmancyOption | null {\n\t\tconst visibleOptions = this._getVisibleOptions()\n\t\treturn visibleOptions.find(opt => opt === document.activeElement) || null\n\t}\n\n\t/**\n\t * Move focus to next/previous option\n\t */\n\tprivate _moveFocus(direction: number) {\n\t\tconst visibleOptions = this._getVisibleOptions()\n\t\tif (!visibleOptions.length) return\n\n\t\tconst currentOption = this._getFocusedOption()\n\t\tlet index = currentOption ? visibleOptions.indexOf(currentOption) : -1\n\n\t\t// Calculate new index\n\t\tif (direction > 0) {\n\t\t\t// Move forward, wrap to start\n\t\t\tindex = index < visibleOptions.length - 1 ? index + 1 : 0\n\t\t} else {\n\t\t\t// Move backward, wrap to end\n\t\t\tindex = index > 0 ? index - 1 : visibleOptions.length - 1\n\t\t}\n\n\t\t// Focus the option\n\t\tvisibleOptions[index].focus()\n\t}\n\n\t/**\n\t * Focus the first visible option\n\t */\n\tprivate _focusFirstOption() {\n\t\tconst visibleOptions = this._getVisibleOptions()\n\t\tif (visibleOptions.length > 0) {\n\t\t\tvisibleOptions[0].focus()\n\t\t}\n\t}\n\n\t/**\n\t * Focus the last visible option\n\t */\n\tprivate _focusLastOption() {\n\t\tconst visibleOptions = this._getVisibleOptions()\n\t\tif (visibleOptions.length > 0) {\n\t\t\tvisibleOptions[visibleOptions.length - 1].focus()\n\t\t}\n\t}\n\n\t/**\n\t * Fire change event\n\t */\n\tprivate _fireChangeEvent() {\n\t\tconst detail = {\n\t\t\tvalue: this.multi ? this._selectedValues : this._selectedValue,\n\t\t}\n\n\t\tthis.dispatchEvent(\n\t\t\tnew CustomEvent<SchmancyAutocompleteChangeEvent['detail']>('change', {\n\t\t\t\tdetail,\n\t\t\t\tbubbles: true,\n\t\t\t\tcomposed: true,\n\t\t\t}),\n\t\t)\n\t}\n\n\t/**\n\t * Check validity for form integration\n\t */\n\tpublic checkValidity(): boolean {\n\t\tif (!this.required) return true\n\t\treturn this.multi ? this._selectedValues.length > 0 : Boolean(this._selectedValue)\n\t}\n\n\t/**\n\t * Report validity for form integration\n\t */\n\tpublic reportValidity(): boolean {\n\t\tif (this._inputElementRef.value) {\n\t\t\treturn this._inputElementRef.value.reportValidity()\n\t\t}\n\t\treturn this.checkValidity()\n\t}\n\n\trender() {\n\t\tconst descriptionId = `${this.id}-desc`\n\n\t\treturn html`\n\t\t\t<div class=\"schmancy-autocomplete relative z-10\">\n\t\t\t\t<!-- Screen reader live region -->\n\t\t\t\t<div id=\"live-status\" role=\"status\" aria-live=\"polite\" class=\"sr-only\"></div>\n\n\t\t\t\t<!-- Description (for screen readers) -->\n\t\t\t\t${this.description ? html`<div id=\"${descriptionId}\" class=\"sr-only\">${this.description}</div>` : ''}\n\n\t\t\t\t<!-- Input / trigger slot -->\n\t\t\t\t<slot name=\"trigger\">\n\t\t\t\t\t<sch-input\n\t\t\t\t\t\t.size=${this.size}\n\t\t\t\t\t\t${ref(this._inputElementRef)}\n\t\t\t\t\t\tid=\"autocomplete-input\"\n\t\t\t\t\t\tclass=\"w-full\"\n\t\t\t\t\t\t.label=${this.label}\n\t\t\t\t\t\t.placeholder=${this.placeholder}\n\t\t\t\t\t\t.required=${this.required}\n\t\t\t\t\t\t.value=${this._inputValue}\n\t\t\t\t\t\ttype=\"text\"\n\t\t\t\t\t\tautocomplete=${this.autocomplete}\n\t\t\t\t\t\tclickable\n\t\t\t\t\t\trole=\"combobox\"\n\t\t\t\t\t\taria-autocomplete=\"list\"\n\t\t\t\t\t\taria-haspopup=\"listbox\"\n\t\t\t\t\t\taria-controls=\"options\"\n\t\t\t\t\t\taria-expanded=${this._open}\n\t\t\t\t\t\taria-describedby=${this.description ? descriptionId : undefined}\n\t\t\t\t\t\t@input=${this._onInputChange}\n\t\t\t\t\t\t@focus=${this._onInputFocus}\n\t\t\t\t\t\t@click=${(e: MouseEvent) => {\n\t\t\t\t\t\t\te.stopPropagation()\n\t\t\t\t\t\t\tthis._onInputFocus(new FocusEvent('focus'))\n\t\t\t\t\t\t}}\n\t\t\t\t\t\t@keydown=${this._onKeyDown}\n\t\t\t\t\t>\n\t\t\t\t\t</sch-input>\n\t\t\t\t</slot>\n\n\t\t\t\t<!-- Options dropdown -->\n\t\t\t\t<ul\n\t\t\t\t\tid=\"options\"\n\t\t\t\t\tclass=${classMap({\n\t\t\t\t\t\tabsolute: true,\n\t\t\t\t\t\t'z-[1000]': true,\n\t\t\t\t\t\t'mt-1': true,\n\t\t\t\t\t\t'w-full': true,\n\t\t\t\t\t\t'rounded-md': true,\n\t\t\t\t\t\t'shadow-sm': true,\n\t\t\t\t\t\t'overflow-auto': true,\n\t\t\t\t\t\t'min-w-full': true,\n\t\t\t\t\t\t'bg-surface-container': true,\n\t\t\t\t\t})}\n\t\t\t\t\trole=\"listbox\"\n\t\t\t\t\taria-multiselectable=${this.multi ? 'true' : 'false'}\n\t\t\t\t\taria-label=${`${this.label || 'Options'} dropdown`}\n\t\t\t\t\t?hidden=${!this._open}\n\t\t\t\t\tstyle=\"\n max-height: ${this.maxHeight}; \n display: ${this._open ? 'block' : 'none'};\n \"\n\t\t\t\t\t@slotchange=${() => {\n\t\t\t\t\t\tthis._setupOptionsAccessibility()\n\t\t\t\t\t\tthis._syncOptionsSelection()\n\t\t\t\t\t\t// Show all options when slot content changes, don't filter yet\n\t\t\t\t\t\tthis._showAllOptions()\n\t\t\t\t\t}}\n\t\t\t\t>\n\t\t\t\t\t<!-- Options slot -->\n\t\t\t\t\t<slot></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-autocomplete': SchmancyAutocomplete\n\t}\n}\n"],"names":["SchmancyAutocomplete","$LitElement","super","arguments","this","required","placeholder","label","maxHeight","multi","description","size","autocomplete","debounceMs","_open","_inputValue","_selectedValue","_selectedValues","_suppressFocusOpen","_debounceTimer","_inputElementRef","createRef","_documentClickHandler","_onDocumentClick","bind","value","join","val","split","map","v","trim","filter","Boolean","_syncOptionsSelection","_updateInputDisplay","isConnected","_fireChangeEvent","connectedCallback","id","Math","random","toString","slice","disconnectedCallback","document","removeEventListener","window","clearTimeout","_setupOptionsAccessibility","changedProps","updated","has","e","composedPath","includes","option","_options","forEach","index","setAttribute","tabIndex","hasAttribute","addEventListener","stopPropagation","_selectOption","length","selected","String","_showAllOptions","hidden","emptyMessage","shadowRoot","querySelector","toggleAttribute","totalCount","_announceToScreenReader","_filterOptions","searchTerm","toLowerCase","hasMatches","isMatch","textContent","visibleCount","_getVisibleOptions","Array","from","_getSelectedLabels","selectedOption","find","o","_showDropdown","fn","setTimeout","target","_debounce","message","liveRegion","indexOf","selectedLabels","blur","key","preventDefault","visibleOptions","focus","_moveFocus","_focusFirstOption","_focusLastOption","focusedOption","_getFocusedOption","opt","activeElement","direction","currentOption","detail","dispatchEvent","CustomEvent","bubbles","composed","reportValidity","checkValidity","descriptionId","html","ref","_onInputChange","_onInputFocus","FocusEvent","_onKeyDown","classMap","absolute","__decorateClass","property","type","prototype","reflect","Number","state","query","queryAssignedElements","flatten","customElement"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- "use strict";require("./autocomplete-CtqM8VN6.cjs");
1
+ "use strict";require("./autocomplete-n96KH2V5.cjs");
2
2
  //# sourceMappingURL=autocomplete.cjs.map
@@ -1,2 +1,2 @@
1
- import "./autocomplete-B3W-MX_R.js";
1
+ import "./autocomplete-B0c08igh.js";
2
2
  //# sourceMappingURL=autocomplete.js.map
package/dist/badge.cjs ADDED
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./teleport.component-sEZqe8CM.cjs");Object.defineProperty(exports,"SchmancyBadgeV2",{enumerable:!0,get:()=>e.SchmancyBadgeV2});
2
+ //# sourceMappingURL=badge.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"badge.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":""}
package/dist/badge.js ADDED
@@ -0,0 +1,5 @@
1
+ import { S as e } from "./teleport.component-877TFBRq.js";
2
+ export {
3
+ e as SchmancyBadgeV2
4
+ };
5
+ //# sourceMappingURL=badge.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"badge.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
package/dist/busy.cjs CHANGED
@@ -1,2 +1,2 @@
1
- "use strict";require("./spinner-D46_Vbxf.cjs");
1
+ "use strict";require("./spinner-BiIbsLxA.cjs");
2
2
  //# sourceMappingURL=busy.cjs.map
package/dist/busy.js CHANGED
@@ -1,2 +1,2 @@
1
- import "./spinner-37Y-o4jr.js";
1
+ import "./spinner-CNxmhBV9.js";
2
2
  //# sourceMappingURL=busy.js.map
package/dist/button.cjs CHANGED
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./icon-button-B3LSOKYP.cjs");Object.defineProperty(exports,"SchmancyButton",{enumerable:!0,get:()=>e.SchmancyButton}),Object.defineProperty(exports,"SchmnacyIconButton",{enumerable:!0,get:()=>e.SchmnacyIconButton});
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./icon-button-CJ_84AFW.cjs");Object.defineProperty(exports,"SchmancyButton",{enumerable:!0,get:()=>e.SchmancyButton}),Object.defineProperty(exports,"SchmnacyIconButton",{enumerable:!0,get:()=>e.SchmnacyIconButton});
2
2
  //# sourceMappingURL=button.cjs.map
package/dist/button.js CHANGED
@@ -1,4 +1,4 @@
1
- import { S as n, a as o } from "./icon-button-BMkOl7zP.js";
1
+ import { S as n, a as o } from "./icon-button-Ci_gG-kz.js";
2
2
  export {
3
3
  n as SchmancyButton,
4
4
  o as SchmnacyIconButton
package/dist/card.cjs CHANGED
@@ -1,2 +1,2 @@
1
- "use strict";require("./teleport.component-Cgtrv4bU.cjs");
1
+ "use strict";require("./teleport.component-sEZqe8CM.cjs");
2
2
  //# sourceMappingURL=card.cjs.map
package/dist/card.js CHANGED
@@ -1,2 +1,2 @@
1
- import "./teleport.component-B6W2UN_u.js";
1
+ import "./teleport.component-877TFBRq.js";
2
2
  //# sourceMappingURL=card.js.map
@@ -5,7 +5,7 @@ import { isServer as I, LitElement as q, nothing as y, html as $, css as U } fro
5
5
  import { classMap as D } from "lit/directives/class-map.js";
6
6
  import "rxjs";
7
7
  import "lit/directives/style-map.js";
8
- import { T as F } from "./tailwind.mixin-C7U3gr3P.js";
8
+ import { T as F } from "./tailwind.mixin-DPlle4Fm.js";
9
9
  function T(i) {
10
10
  return i.currentTarget === i.target && i.composedPath()[0] === i.target && !i.target.disabled && !function(e) {
11
11
  const t = g;
@@ -234,4 +234,4 @@ l.shadowRootOptions = { ...q.shadowRootOptions, delegatesFocus: !0 }, l.formAsso
234
234
  export {
235
235
  l as S
236
236
  };
237
- //# sourceMappingURL=checkbox-gDmmaU-i.js.map
237
+ //# sourceMappingURL=checkbox-DPQ_TJWq.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"checkbox-gDmmaU-i.js","sources":["../../../../.yarn/berry/cache/@material-web-npm-2.2.0-6c67e37c0d-10c0.zip/node_modules/@material/web/internal/events/form-label-activation.js","../../../../.yarn/berry/cache/@material-web-npm-2.2.0-6c67e37c0d-10c0.zip/node_modules/@material/web/labs/behaviors/element-internals.js","../../../../.yarn/berry/cache/@material-web-npm-2.2.0-6c67e37c0d-10c0.zip/node_modules/@material/web/labs/behaviors/constraint-validation.js","../../../../.yarn/berry/cache/@material-web-npm-2.2.0-6c67e37c0d-10c0.zip/node_modules/@material/web/labs/behaviors/form-associated.js","../../../../.yarn/berry/cache/@material-web-npm-2.2.0-6c67e37c0d-10c0.zip/node_modules/@material/web/labs/behaviors/validators/validator.js","../../../../.yarn/berry/cache/@material-web-npm-2.2.0-6c67e37c0d-10c0.zip/node_modules/@material/web/labs/behaviors/validators/checkbox-validator.js","../../../../.yarn/berry/cache/@material-web-npm-2.2.0-6c67e37c0d-10c0.zip/node_modules/@material/web/checkbox/internal/checkbox.js","../../../../.yarn/berry/cache/@material-web-npm-2.2.0-6c67e37c0d-10c0.zip/node_modules/@material/web/checkbox/internal/checkbox-styles.js","../../../../.yarn/berry/cache/@material-web-npm-2.2.0-6c67e37c0d-10c0.zip/node_modules/@material/web/checkbox/checkbox.js","../src/checkbox/checkbox.ts"],"sourcesContent":["/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n/**\n * Dispatches a click event to the given element that triggers a native action,\n * but is not composed and therefore is not seen outside the element.\n *\n * This is useful for responding to an external click event on the host element\n * that should trigger an internal action like a button click.\n *\n * Note, a helper is provided because setting this up correctly is a bit tricky.\n * In particular, calling `click` on an element creates a composed event, which\n * is not desirable, and a manually dispatched event must specifically be a\n * `MouseEvent` to trigger a native action.\n *\n * @example\n * hostClickListener = (event: MouseEvent) {\n * if (isActivationClick(event)) {\n * this.dispatchActivationClick(this.buttonElement);\n * }\n * }\n *\n */\nexport function dispatchActivationClick(element) {\n const event = new MouseEvent('click', { bubbles: true });\n element.dispatchEvent(event);\n return event;\n}\n/**\n * Returns true if the click event should trigger an activation behavior. The\n * behavior is defined by the element and is whatever it should do when\n * clicked.\n *\n * Typically when an element needs to handle a click, the click is generated\n * from within the element and an event listener within the element implements\n * the needed behavior; however, it's possible to fire a click directly\n * at the element that the element should handle. This method helps\n * distinguish these \"external\" clicks.\n *\n * An \"external\" click can be triggered in a number of ways: via a click\n * on an associated label for a form associated element, calling\n * `element.click()`, or calling\n * `element.dispatchEvent(new MouseEvent('click', ...))`.\n *\n * Also works around Firefox issue\n * https://bugzilla.mozilla.org/show_bug.cgi?id=1804576 by squelching\n * events for a microtask after called.\n *\n * @example\n * hostClickListener = (event: MouseEvent) {\n * if (isActivationClick(event)) {\n * this.dispatchActivationClick(this.buttonElement);\n * }\n * }\n *\n */\nexport function isActivationClick(event) {\n // Event must start at the event target.\n if (event.currentTarget !== event.target) {\n return false;\n }\n // Event must not be retargeted from shadowRoot.\n if (event.composedPath()[0] !== event.target) {\n return false;\n }\n // Target must not be disabled; this should only occur for a synthetically\n // dispatched click.\n if (event.target.disabled) {\n return false;\n }\n // This is an activation if the event should not be squelched.\n return !squelchEvent(event);\n}\n// TODO(https://bugzilla.mozilla.org/show_bug.cgi?id=1804576)\n// Remove when Firefox bug is addressed.\nfunction squelchEvent(event) {\n const squelched = isSquelchingEvents;\n if (squelched) {\n event.preventDefault();\n event.stopImmediatePropagation();\n }\n squelchEventsForMicrotask();\n return squelched;\n}\n// Ignore events for one microtask only.\nlet isSquelchingEvents = false;\nasync function squelchEventsForMicrotask() {\n isSquelchingEvents = true;\n // Need to pause for just one microtask.\n // tslint:disable-next-line\n await null;\n isSquelchingEvents = false;\n}\n//# sourceMappingURL=form-label-activation.js.map","/**\n * @license\n * Copyright 2023 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n/**\n * A unique symbol used for protected access to an instance's\n * `ElementInternals`.\n *\n * @example\n * ```ts\n * class MyElement extends mixinElementInternals(LitElement) {\n * constructor() {\n * super();\n * this[internals].role = 'button';\n * }\n * }\n * ```\n */\nexport const internals = Symbol('internals');\n// Private symbols\nconst privateInternals = Symbol('privateInternals');\n/**\n * Mixes in an attached `ElementInternals` instance.\n *\n * This mixin is only needed when other shared code needs access to a\n * component's `ElementInternals`, such as form-associated mixins.\n *\n * @param base The class to mix functionality into.\n * @return The provided class with `WithElementInternals` mixed in.\n */\nexport function mixinElementInternals(base) {\n class WithElementInternalsElement extends base {\n get [internals]() {\n // Create internals in getter so that it can be used in methods called on\n // construction in `ReactiveElement`, such as `requestUpdate()`.\n if (!this[privateInternals]) {\n // Cast needed for closure\n this[privateInternals] = this.attachInternals();\n }\n return this[privateInternals];\n }\n }\n return WithElementInternalsElement;\n}\n//# sourceMappingURL=element-internals.js.map","/**\n * @license\n * Copyright 2023 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\nimport { isServer } from 'lit';\nimport { internals } from './element-internals.js';\n/**\n * A symbol property used to create a constraint validation `Validator`.\n * Required for all `mixinConstraintValidation()` elements.\n */\nexport const createValidator = Symbol('createValidator');\n/**\n * A symbol property used to return an anchor for constraint validation popups.\n * Required for all `mixinConstraintValidation()` elements.\n */\nexport const getValidityAnchor = Symbol('getValidityAnchor');\n// Private symbol members, used to avoid name clashing.\nconst privateValidator = Symbol('privateValidator');\nconst privateSyncValidity = Symbol('privateSyncValidity');\nconst privateCustomValidationMessage = Symbol('privateCustomValidationMessage');\n/**\n * Mixes in constraint validation APIs for an element.\n *\n * See https://developer.mozilla.org/en-US/docs/Web/HTML/Constraint_validation\n * for more details.\n *\n * Implementations must provide a validator to cache and compute its validity,\n * along with a shadow root element to anchor validation popups to.\n *\n * @example\n * ```ts\n * const baseClass = mixinConstraintValidation(\n * mixinFormAssociated(mixinElementInternals(LitElement))\n * );\n *\n * class MyCheckbox extends baseClass {\n * \\@property({type: Boolean}) checked = false;\n * \\@property({type: Boolean}) required = false;\n *\n * [createValidator]() {\n * return new CheckboxValidator(() => this);\n * }\n *\n * [getValidityAnchor]() {\n * return this.renderRoot.querySelector('.root');\n * }\n * }\n * ```\n *\n * @param base The class to mix functionality into.\n * @return The provided class with `ConstraintValidation` mixed in.\n */\nexport function mixinConstraintValidation(base) {\n var _a;\n class ConstraintValidationElement extends base {\n constructor() {\n super(...arguments);\n /**\n * Needed for Safari, see https://bugs.webkit.org/show_bug.cgi?id=261432\n * Replace with this[internals].validity.customError when resolved.\n */\n this[_a] = '';\n }\n get validity() {\n this[privateSyncValidity]();\n return this[internals].validity;\n }\n get validationMessage() {\n this[privateSyncValidity]();\n return this[internals].validationMessage;\n }\n get willValidate() {\n this[privateSyncValidity]();\n return this[internals].willValidate;\n }\n checkValidity() {\n this[privateSyncValidity]();\n return this[internals].checkValidity();\n }\n reportValidity() {\n this[privateSyncValidity]();\n return this[internals].reportValidity();\n }\n setCustomValidity(error) {\n this[privateCustomValidationMessage] = error;\n this[privateSyncValidity]();\n }\n requestUpdate(name, oldValue, options) {\n super.requestUpdate(name, oldValue, options);\n this[privateSyncValidity]();\n }\n firstUpdated(changed) {\n super.firstUpdated(changed);\n // Sync the validity again when the element first renders, since the\n // validity anchor is now available.\n //\n // Elements that `delegatesFocus: true` to an `<input>` will throw an\n // error in Chrome and Safari when a form tries to submit or call\n // `form.reportValidity()`:\n // \"An invalid form control with name='' is not focusable\"\n //\n // The validity anchor MUST be provided in `internals.setValidity()` and\n // MUST be the `<input>` element rendered.\n //\n // See https://lit.dev/playground/#gist=6c26e418e0010f7a5aac15005cde8bde\n // for a reproduction.\n this[privateSyncValidity]();\n }\n [(_a = privateCustomValidationMessage, privateSyncValidity)]() {\n if (isServer) {\n return;\n }\n if (!this[privateValidator]) {\n this[privateValidator] = this[createValidator]();\n }\n const { validity, validationMessage: nonCustomValidationMessage } = this[privateValidator].getValidity();\n const customError = !!this[privateCustomValidationMessage];\n const validationMessage = this[privateCustomValidationMessage] || nonCustomValidationMessage;\n this[internals].setValidity({ ...validity, customError }, validationMessage, this[getValidityAnchor]() ?? undefined);\n }\n [createValidator]() {\n throw new Error('Implement [createValidator]');\n }\n [getValidityAnchor]() {\n throw new Error('Implement [getValidityAnchor]');\n }\n }\n return ConstraintValidationElement;\n}\n//# sourceMappingURL=constraint-validation.js.map","/**\n * @license\n * Copyright 2023 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\nimport { __decorate } from \"tslib\";\nimport { property } from 'lit/decorators.js';\nimport { internals } from './element-internals.js';\n/**\n * A symbol property to retrieve the form value for an element.\n */\nexport const getFormValue = Symbol('getFormValue');\n/**\n * A symbol property to retrieve the form state for an element.\n */\nexport const getFormState = Symbol('getFormState');\n/**\n * Mixes in form-associated behavior for a class. This allows an element to add\n * values to `<form>` elements.\n *\n * Implementing classes should provide a `[formValue]` to return the current\n * value of the element, as well as reset and restore callbacks.\n *\n * @example\n * ```ts\n * const base = mixinFormAssociated(mixinElementInternals(LitElement));\n *\n * class MyControl extends base {\n * \\@property()\n * value = '';\n *\n * override [getFormValue]() {\n * return this.value;\n * }\n *\n * override formResetCallback() {\n * const defaultValue = this.getAttribute('value');\n * this.value = defaultValue;\n * }\n *\n * override formStateRestoreCallback(state: string) {\n * this.value = state;\n * }\n * }\n * ```\n *\n * Elements may optionally provide a `[formState]` if their values do not\n * represent the state of the component.\n *\n * @example\n * ```ts\n * const base = mixinFormAssociated(mixinElementInternals(LitElement));\n *\n * class MyCheckbox extends base {\n * \\@property()\n * value = 'on';\n *\n * \\@property({type: Boolean})\n * checked = false;\n *\n * override [getFormValue]() {\n * return this.checked ? this.value : null;\n * }\n *\n * override [getFormState]() {\n * return String(this.checked);\n * }\n *\n * override formResetCallback() {\n * const defaultValue = this.hasAttribute('checked');\n * this.checked = defaultValue;\n * }\n *\n * override formStateRestoreCallback(state: string) {\n * this.checked = Boolean(state);\n * }\n * }\n * ```\n *\n * IMPORTANT: Requires declares for lit-analyzer\n * @example\n * ```ts\n * const base = mixinFormAssociated(mixinElementInternals(LitElement));\n * class MyControl extends base {\n * // Writable mixin properties for lit-html binding, needed for lit-analyzer\n * declare disabled: boolean;\n * declare name: string;\n * }\n * ```\n *\n * @param base The class to mix functionality into. The base class must use\n * `mixinElementInternals()`.\n * @return The provided class with `FormAssociated` mixed in.\n */\nexport function mixinFormAssociated(base) {\n class FormAssociatedElement extends base {\n get form() {\n return this[internals].form;\n }\n get labels() {\n return this[internals].labels;\n }\n // Use @property for the `name` and `disabled` properties to add them to the\n // `observedAttributes` array and trigger `attributeChangedCallback()`.\n //\n // We don't use Lit's default getter/setter (`noAccessor: true`) because\n // the attributes need to be updated synchronously to work with synchronous\n // form APIs, and Lit updates attributes async by default.\n get name() {\n return this.getAttribute('name') ?? '';\n }\n set name(name) {\n // Note: setting name to null or empty does not remove the attribute.\n this.setAttribute('name', name);\n // We don't need to call `requestUpdate()` since it's called synchronously\n // in `attributeChangedCallback()`.\n }\n get disabled() {\n return this.hasAttribute('disabled');\n }\n set disabled(disabled) {\n this.toggleAttribute('disabled', disabled);\n // We don't need to call `requestUpdate()` since it's called synchronously\n // in `attributeChangedCallback()`.\n }\n attributeChangedCallback(name, old, value) {\n // Manually `requestUpdate()` for `name` and `disabled` when their\n // attribute or property changes.\n // The properties update their attributes, so this callback is invoked\n // immediately when the properties are set. We call `requestUpdate()` here\n // instead of letting Lit set the properties from the attribute change.\n // That would cause the properties to re-set the attribute and invoke this\n // callback again in a loop. This leads to stale state when Lit tries to\n // determine if a property changed or not.\n if (name === 'name' || name === 'disabled') {\n // Disabled's value is only false if the attribute is missing and null.\n const oldValue = name === 'disabled' ? old !== null : old;\n // Trigger a lit update when the attribute changes.\n this.requestUpdate(name, oldValue);\n return;\n }\n super.attributeChangedCallback(name, old, value);\n }\n requestUpdate(name, oldValue, options) {\n super.requestUpdate(name, oldValue, options);\n // If any properties change, update the form value, which may have changed\n // as well.\n // Update the form value synchronously in `requestUpdate()` rather than\n // `update()` or `updated()`, which are async. This is necessary to ensure\n // that form data is updated in time for synchronous event listeners.\n this[internals].setFormValue(this[getFormValue](), this[getFormState]());\n }\n [getFormValue]() {\n // Closure does not allow abstract symbol members, so a default\n // implementation is needed.\n throw new Error('Implement [getFormValue]');\n }\n [getFormState]() {\n return this[getFormValue]();\n }\n formDisabledCallback(disabled) {\n this.disabled = disabled;\n }\n }\n /** @nocollapse */\n FormAssociatedElement.formAssociated = true;\n __decorate([\n property({ noAccessor: true })\n ], FormAssociatedElement.prototype, \"name\", null);\n __decorate([\n property({ type: Boolean, noAccessor: true })\n ], FormAssociatedElement.prototype, \"disabled\", null);\n return FormAssociatedElement;\n}\n//# sourceMappingURL=form-associated.js.map","/**\n * @license\n * Copyright 2023 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n/**\n * A class that computes and caches `ValidityStateFlags` for a component with\n * a given `State` interface.\n *\n * Cached performance before computing validity is important since constraint\n * validation must be checked frequently and synchronously when properties\n * change.\n *\n * @template State The expected interface of properties relevant to constraint\n * validation.\n */\nexport class Validator {\n /**\n * Creates a new validator.\n *\n * @param getCurrentState A callback that returns the current state of\n * constraint validation-related properties.\n */\n constructor(getCurrentState) {\n this.getCurrentState = getCurrentState;\n /**\n * The current validity state and message. This is cached and returns if\n * constraint validation state does not change.\n */\n this.currentValidity = {\n validity: {},\n validationMessage: '',\n };\n }\n /**\n * Returns the current `ValidityStateFlags` and validation message for the\n * validator.\n *\n * If the constraint validation state has not changed, this will return a\n * cached result. This is important since `getValidity()` can be called\n * frequently in response to synchronous property changes.\n *\n * @return The current validity and validation message.\n */\n getValidity() {\n const state = this.getCurrentState();\n const hasStateChanged = !this.prevState || !this.equals(this.prevState, state);\n if (!hasStateChanged) {\n return this.currentValidity;\n }\n const { validity, validationMessage } = this.computeValidity(state);\n this.prevState = this.copy(state);\n this.currentValidity = {\n validationMessage,\n validity: {\n // Change any `ValidityState` instances into `ValidityStateFlags` since\n // `ValidityState` cannot be easily `{...spread}`.\n badInput: validity.badInput,\n customError: validity.customError,\n patternMismatch: validity.patternMismatch,\n rangeOverflow: validity.rangeOverflow,\n rangeUnderflow: validity.rangeUnderflow,\n stepMismatch: validity.stepMismatch,\n tooLong: validity.tooLong,\n tooShort: validity.tooShort,\n typeMismatch: validity.typeMismatch,\n valueMissing: validity.valueMissing,\n },\n };\n return this.currentValidity;\n }\n}\n//# sourceMappingURL=validator.js.map","/**\n * @license\n * Copyright 2023 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\nimport { Validator } from './validator.js';\n/**\n * A validator that provides constraint validation that emulates\n * `<input type=\"checkbox\">` validation.\n */\nexport class CheckboxValidator extends Validator {\n computeValidity(state) {\n if (!this.checkboxControl) {\n // Lazily create the platform input\n this.checkboxControl = document.createElement('input');\n this.checkboxControl.type = 'checkbox';\n }\n this.checkboxControl.checked = state.checked;\n this.checkboxControl.required = state.required;\n return {\n validity: this.checkboxControl.validity,\n validationMessage: this.checkboxControl.validationMessage,\n };\n }\n equals(prev, next) {\n return prev.checked === next.checked && prev.required === next.required;\n }\n copy({ checked, required }) {\n return { checked, required };\n }\n}\n//# sourceMappingURL=checkbox-validator.js.map","/**\n * @license\n * Copyright 2019 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\nimport { __decorate } from \"tslib\";\nimport '../../focus/md-focus-ring.js';\nimport '../../ripple/ripple.js';\nimport { html, isServer, LitElement, nothing } from 'lit';\nimport { property, query, state } from 'lit/decorators.js';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { mixinDelegatesAria } from '../../internal/aria/delegate.js';\nimport { dispatchActivationClick, isActivationClick, } from '../../internal/events/form-label-activation.js';\nimport { redispatchEvent } from '../../internal/events/redispatch-event.js';\nimport { createValidator, getValidityAnchor, mixinConstraintValidation, } from '../../labs/behaviors/constraint-validation.js';\nimport { mixinElementInternals } from '../../labs/behaviors/element-internals.js';\nimport { getFormState, getFormValue, mixinFormAssociated, } from '../../labs/behaviors/form-associated.js';\nimport { CheckboxValidator } from '../../labs/behaviors/validators/checkbox-validator.js';\n// Separate variable needed for closure.\nconst checkboxBaseClass = mixinDelegatesAria(mixinConstraintValidation(mixinFormAssociated(mixinElementInternals(LitElement))));\n/**\n * A checkbox component.\n *\n *\n * @fires change {Event} The native `change` event on\n * [`<input>`](https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/change_event)\n * --bubbles\n * @fires input {InputEvent} The native `input` event on\n * [`<input>`](https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/input_event)\n * --bubbles --composed\n */\nexport class Checkbox extends checkboxBaseClass {\n constructor() {\n super();\n /**\n * Whether or not the checkbox is selected.\n */\n this.checked = false;\n /**\n * Whether or not the checkbox is indeterminate.\n *\n * https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/checkbox#indeterminate_state_checkboxes\n */\n this.indeterminate = false;\n /**\n * When true, require the checkbox to be selected when participating in\n * form submission.\n *\n * https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/checkbox#validation\n */\n this.required = false;\n /**\n * The value of the checkbox that is submitted with a form when selected.\n *\n * https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/checkbox#value\n */\n this.value = 'on';\n this.prevChecked = false;\n this.prevDisabled = false;\n this.prevIndeterminate = false;\n if (!isServer) {\n this.addEventListener('click', (event) => {\n if (!isActivationClick(event) || !this.input) {\n return;\n }\n this.focus();\n dispatchActivationClick(this.input);\n });\n }\n }\n update(changed) {\n if (changed.has('checked') ||\n changed.has('disabled') ||\n changed.has('indeterminate')) {\n this.prevChecked = changed.get('checked') ?? this.checked;\n this.prevDisabled = changed.get('disabled') ?? this.disabled;\n this.prevIndeterminate =\n changed.get('indeterminate') ?? this.indeterminate;\n }\n super.update(changed);\n }\n render() {\n const prevNone = !this.prevChecked && !this.prevIndeterminate;\n const prevChecked = this.prevChecked && !this.prevIndeterminate;\n const prevIndeterminate = this.prevIndeterminate;\n const isChecked = this.checked && !this.indeterminate;\n const isIndeterminate = this.indeterminate;\n const containerClasses = classMap({\n 'disabled': this.disabled,\n 'selected': isChecked || isIndeterminate,\n 'unselected': !isChecked && !isIndeterminate,\n 'checked': isChecked,\n 'indeterminate': isIndeterminate,\n 'prev-unselected': prevNone,\n 'prev-checked': prevChecked,\n 'prev-indeterminate': prevIndeterminate,\n 'prev-disabled': this.prevDisabled,\n });\n // Needed for closure conformance\n const { ariaLabel, ariaInvalid } = this;\n // Note: <input> needs to be rendered before the <svg> for\n // form.reportValidity() to work in Chrome.\n return html `\n <div class=\"container ${containerClasses}\">\n <input\n type=\"checkbox\"\n id=\"input\"\n aria-checked=${isIndeterminate ? 'mixed' : nothing}\n aria-label=${ariaLabel || nothing}\n aria-invalid=${ariaInvalid || nothing}\n ?disabled=${this.disabled}\n ?required=${this.required}\n .indeterminate=${this.indeterminate}\n .checked=${this.checked}\n @input=${this.handleInput}\n @change=${this.handleChange} />\n\n <div class=\"outline\"></div>\n <div class=\"background\"></div>\n <md-focus-ring part=\"focus-ring\" for=\"input\"></md-focus-ring>\n <md-ripple for=\"input\" ?disabled=${this.disabled}></md-ripple>\n <svg class=\"icon\" viewBox=\"0 0 18 18\" aria-hidden=\"true\">\n <rect class=\"mark short\" />\n <rect class=\"mark long\" />\n </svg>\n </div>\n `;\n }\n handleInput(event) {\n const target = event.target;\n this.checked = target.checked;\n this.indeterminate = target.indeterminate;\n // <input> 'input' event bubbles and is composed, don't re-dispatch it.\n }\n handleChange(event) {\n // <input> 'change' event is not composed, re-dispatch it.\n redispatchEvent(this, event);\n }\n [getFormValue]() {\n if (!this.checked || this.indeterminate) {\n return null;\n }\n return this.value;\n }\n [getFormState]() {\n return String(this.checked);\n }\n formResetCallback() {\n // The checked property does not reflect, so the original attribute set by\n // the user is used to determine the default value.\n this.checked = this.hasAttribute('checked');\n }\n formStateRestoreCallback(state) {\n this.checked = state === 'true';\n }\n [createValidator]() {\n return new CheckboxValidator(() => this);\n }\n [getValidityAnchor]() {\n return this.input;\n }\n}\n/** @nocollapse */\nCheckbox.shadowRootOptions = {\n ...LitElement.shadowRootOptions,\n delegatesFocus: true,\n};\n__decorate([\n property({ type: Boolean })\n], Checkbox.prototype, \"checked\", void 0);\n__decorate([\n property({ type: Boolean })\n], Checkbox.prototype, \"indeterminate\", void 0);\n__decorate([\n property({ type: Boolean })\n], Checkbox.prototype, \"required\", void 0);\n__decorate([\n property()\n], Checkbox.prototype, \"value\", void 0);\n__decorate([\n state()\n], Checkbox.prototype, \"prevChecked\", void 0);\n__decorate([\n state()\n], Checkbox.prototype, \"prevDisabled\", void 0);\n__decorate([\n state()\n], Checkbox.prototype, \"prevIndeterminate\", void 0);\n__decorate([\n query('input')\n], Checkbox.prototype, \"input\", void 0);\n//# sourceMappingURL=checkbox.js.map","/**\n * @license\n * Copyright 2024 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n// Generated stylesheet for ./checkbox/internal/checkbox-styles.css.\nimport { css } from 'lit';\nexport const styles = css `:host{border-start-start-radius:var(--md-checkbox-container-shape-start-start, var(--md-checkbox-container-shape, 2px));border-start-end-radius:var(--md-checkbox-container-shape-start-end, var(--md-checkbox-container-shape, 2px));border-end-end-radius:var(--md-checkbox-container-shape-end-end, var(--md-checkbox-container-shape, 2px));border-end-start-radius:var(--md-checkbox-container-shape-end-start, var(--md-checkbox-container-shape, 2px));display:inline-flex;height:var(--md-checkbox-container-size, 18px);position:relative;vertical-align:top;width:var(--md-checkbox-container-size, 18px);-webkit-tap-highlight-color:rgba(0,0,0,0);cursor:pointer}:host([disabled]){cursor:default}:host([touch-target=wrapper]){margin:max(0px,(48px - var(--md-checkbox-container-size, 18px))/2)}md-focus-ring{height:44px;inset:unset;width:44px}input{appearance:none;height:48px;margin:0;opacity:0;outline:none;position:absolute;width:48px;z-index:1;cursor:inherit}:host([touch-target=none]) input{height:100%;width:100%}.container{border-radius:inherit;display:flex;height:100%;place-content:center;place-items:center;position:relative;width:100%}.outline,.background,.icon{inset:0;position:absolute}.outline,.background{border-radius:inherit}.outline{border-color:var(--md-checkbox-outline-color, var(--md-sys-color-on-surface-variant, #49454f));border-style:solid;border-width:var(--md-checkbox-outline-width, 2px);box-sizing:border-box}.background{background-color:var(--md-checkbox-selected-container-color, var(--md-sys-color-primary, #6750a4))}.background,.icon{opacity:0;transition-duration:150ms,50ms;transition-property:transform,opacity;transition-timing-function:cubic-bezier(0.3, 0, 0.8, 0.15),linear;transform:scale(0.6)}:where(.selected) :is(.background,.icon){opacity:1;transition-duration:350ms,50ms;transition-timing-function:cubic-bezier(0.05, 0.7, 0.1, 1),linear;transform:scale(1)}md-ripple{border-radius:var(--md-checkbox-state-layer-shape, var(--md-sys-shape-corner-full, 9999px));height:var(--md-checkbox-state-layer-size, 40px);inset:unset;width:var(--md-checkbox-state-layer-size, 40px);--md-ripple-hover-color: var(--md-checkbox-hover-state-layer-color, var(--md-sys-color-on-surface, #1d1b20));--md-ripple-hover-opacity: var(--md-checkbox-hover-state-layer-opacity, 0.08);--md-ripple-pressed-color: var(--md-checkbox-pressed-state-layer-color, var(--md-sys-color-primary, #6750a4));--md-ripple-pressed-opacity: var(--md-checkbox-pressed-state-layer-opacity, 0.12)}.selected md-ripple{--md-ripple-hover-color: var(--md-checkbox-selected-hover-state-layer-color, var(--md-sys-color-primary, #6750a4));--md-ripple-hover-opacity: var(--md-checkbox-selected-hover-state-layer-opacity, 0.08);--md-ripple-pressed-color: var(--md-checkbox-selected-pressed-state-layer-color, var(--md-sys-color-on-surface, #1d1b20));--md-ripple-pressed-opacity: var(--md-checkbox-selected-pressed-state-layer-opacity, 0.12)}.icon{fill:var(--md-checkbox-selected-icon-color, var(--md-sys-color-on-primary, #fff));height:var(--md-checkbox-icon-size, 18px);width:var(--md-checkbox-icon-size, 18px)}.mark.short{height:2px;transition-property:transform,height;width:2px}.mark.long{height:2px;transition-property:transform,width;width:10px}.mark{animation-duration:150ms;animation-timing-function:cubic-bezier(0.3, 0, 0.8, 0.15);transition-duration:150ms;transition-timing-function:cubic-bezier(0.3, 0, 0.8, 0.15)}.selected .mark{animation-duration:350ms;animation-timing-function:cubic-bezier(0.05, 0.7, 0.1, 1);transition-duration:350ms;transition-timing-function:cubic-bezier(0.05, 0.7, 0.1, 1)}.checked .mark,.prev-checked.unselected .mark{transform:scaleY(-1) translate(7px, -14px) rotate(45deg)}.checked .mark.short,.prev-checked.unselected .mark.short{height:5.6568542495px}.checked .mark.long,.prev-checked.unselected .mark.long{width:11.313708499px}.indeterminate .mark,.prev-indeterminate.unselected .mark{transform:scaleY(-1) translate(4px, -10px) rotate(0deg)}.prev-unselected .mark{transition-property:none}.prev-unselected.checked .mark.long{animation-name:prev-unselected-to-checked}@keyframes prev-unselected-to-checked{from{width:0}}:where(:hover) .outline{border-color:var(--md-checkbox-hover-outline-color, var(--md-sys-color-on-surface, #1d1b20));border-width:var(--md-checkbox-hover-outline-width, 2px)}:where(:hover) .background{background:var(--md-checkbox-selected-hover-container-color, var(--md-sys-color-primary, #6750a4))}:where(:hover) .icon{fill:var(--md-checkbox-selected-hover-icon-color, var(--md-sys-color-on-primary, #fff))}:where(:focus-within) .outline{border-color:var(--md-checkbox-focus-outline-color, var(--md-sys-color-on-surface, #1d1b20));border-width:var(--md-checkbox-focus-outline-width, 2px)}:where(:focus-within) .background{background:var(--md-checkbox-selected-focus-container-color, var(--md-sys-color-primary, #6750a4))}:where(:focus-within) .icon{fill:var(--md-checkbox-selected-focus-icon-color, var(--md-sys-color-on-primary, #fff))}:where(:active) .outline{border-color:var(--md-checkbox-pressed-outline-color, var(--md-sys-color-on-surface, #1d1b20));border-width:var(--md-checkbox-pressed-outline-width, 2px)}:where(:active) .background{background:var(--md-checkbox-selected-pressed-container-color, var(--md-sys-color-primary, #6750a4))}:where(:active) .icon{fill:var(--md-checkbox-selected-pressed-icon-color, var(--md-sys-color-on-primary, #fff))}:where(.disabled,.prev-disabled) :is(.background,.icon,.mark){animation-duration:0s;transition-duration:0s}:where(.disabled) .outline{border-color:var(--md-checkbox-disabled-outline-color, var(--md-sys-color-on-surface, #1d1b20));border-width:var(--md-checkbox-disabled-outline-width, 2px);opacity:var(--md-checkbox-disabled-container-opacity, 0.38)}:where(.selected.disabled) .outline{visibility:hidden}:where(.selected.disabled) .background{background:var(--md-checkbox-selected-disabled-container-color, var(--md-sys-color-on-surface, #1d1b20));opacity:var(--md-checkbox-selected-disabled-container-opacity, 0.38)}:where(.disabled) .icon{fill:var(--md-checkbox-selected-disabled-icon-color, var(--md-sys-color-surface, #fef7ff))}@media(forced-colors: active){.background{background-color:CanvasText}.selected.disabled .background{background-color:GrayText;opacity:1}.outline{border-color:CanvasText}.disabled .outline{border-color:GrayText;opacity:1}.icon{fill:Canvas}}\n`;\n//# sourceMappingURL=checkbox-styles.js.map","/**\n * @license\n * Copyright 2018 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\nimport { __decorate } from \"tslib\";\nimport { customElement } from 'lit/decorators.js';\nimport { Checkbox } from './internal/checkbox.js';\nimport { styles } from './internal/checkbox-styles.js';\n/**\n * @summary Checkboxes allow users to select one or more items from a set.\n * Checkboxes can turn an option on or off.\n *\n * @description\n * Use checkboxes to:\n * - Select one or more options from a list\n * - Present a list containing sub-selections\n * - Turn an item on or off in a desktop environment\n *\n * @final\n * @suppress {visibility}\n */\nexport let MdCheckbox = class MdCheckbox extends Checkbox {\n};\nMdCheckbox.styles = [styles];\nMdCheckbox = __decorate([\n customElement('md-checkbox')\n], MdCheckbox);\n//# sourceMappingURL=checkbox.js.map","import '@material/web/checkbox/checkbox.js'\nimport { TailwindElement } from '@mixins/index'\nimport { html, LitElement } from 'lit'\nimport { customElement, property } from 'lit/decorators.js'\n\nexport type schmancyCheckBoxChangeEvent = CustomEvent<{\n\tvalue: boolean\n}>\n\n/**\n * @element schmancy-checkbox\n * @slot - The label for the checkbox.\n * @fires valueChange - Event fired when the checkbox value changes.\n **/\n\n@customElement('schmancy-checkbox')\nexport class SchmancyCheckbox extends TailwindElement() {\n\tprotected static shadowRootOptions = {\n\t\t...LitElement.shadowRootOptions,\n\t\tdelegatesFocus: true,\n\t}\n\tstatic formAssociated = true\n\t// private internals\n\tinternals: ElementInternals | undefined\n\tget form() {\n\t\treturn this.internals?.form\n\t}\n\n\t/**\n\t * @attr {boolean} value - The value of the checkbox.\n\t */\n\t@property({ type: Boolean, reflect: true })\n\tvalue = false\n\n\t/**\n\t * @attr {boolean} disabled - The disabled state of the checkbox.\n\t */\n\t@property({ type: Boolean })\n\tdisabled = false\n\n\t/**\n\t * @attr {boolean} required - The required state of the checkbox.\n\t */\n\t@property({ type: Boolean })\n\trequired = false\n\n\t/**\n\t * @attr {string} name - The name of the checkbox.\n\t */\n\t@property({ type: String })\n\tname = 'checkbox-' + Math.random().toString(36)\n\n\t/**\n\t * @attr {string} id - The id of the checkbox.\n\t */\n\t@property({ type: String })\n\tid = 'checkbox-' + Math.random().toString(36)\n\n\t/**\n\t * @attr {sm | md | lg } size - The size of the checkbox.\n\t */\n\t@property({ type: String })\n\tsize: 'sm' | 'md' | 'lg' = 'md'\n\n\trender() {\n\t\treturn html`\n\t\t\t<label class=\"grid grid-flow-col items-center space-x-2 w-fit\">\n\t\t\t\t<md-checkbox\n\t\t\t\t\t.required=${this.required}\n\t\t\t\t\t.disabled=${this.disabled}\n\t\t\t\t\t?checked=${this.value === true}\n\t\t\t\t\t@change=${(e: Event) => {\n\t\t\t\t\t\tthis.value = (e.target as HTMLInputElement).checked\n\t\t\t\t\t\tthis.dispatchEvent(\n\t\t\t\t\t\t\tnew CustomEvent('change', {\n\t\t\t\t\t\t\t\tdetail: {\n\t\t\t\t\t\t\t\t\tvalue: this.value,\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t)\n\t\t\t\t\t}}\n\t\t\t\t>\n\t\t\t\t</md-checkbox>\n\t\t\t\t<slot></slot>\n\t\t\t</label>\n\t\t`\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-checkbox': SchmancyCheckbox\n\t}\n}\n"],"names":["isActivationClick","event","currentTarget","target","composedPath","disabled","squelched","isSquelchingEvents","preventDefault","stopImmediatePropagation","async","internals","Symbol","privateInternals","createValidator","getValidityAnchor","privateValidator","privateSyncValidity","privateCustomValidationMessage","getFormValue","getFormState","Validator","getCurrentState","this","currentValidity","validity","validationMessage","state","prevState","equals","computeValidity","copy","badInput","customError","patternMismatch","rangeOverflow","rangeUnderflow","stepMismatch","tooLong","tooShort","typeMismatch","valueMissing","CheckboxValidator","checkboxControl","document","createElement","type","checked","required","prev","next","checkboxBaseClass","mixinDelegatesAria","base","_a","ConstraintValidationElement","constructor","super","arguments","willValidate","checkValidity","reportValidity","error","name","oldValue","options","requestUpdate","changed","firstUpdated","isServer","nonCustomValidationMessage","getValidity","setValidity","undefined","Error","FormAssociatedElement","form","labels","getAttribute","setAttribute","hasAttribute","toggleAttribute","old","value","attributeChangedCallback","setFormValue","formAssociated","__decorate","property","noAccessor","prototype","Boolean","LitElement","attachInternals","Checkbox","indeterminate","prevChecked","prevDisabled","prevIndeterminate","addEventListener","input","focus","element","MouseEvent","bubbles","dispatchEvent","has","get","update","prevNone","isChecked","isIndeterminate","containerClasses","classMap","selected","unselected","ariaLabel","ariaInvalid","html","nothing","handleInput","handleChange","redispatchEvent","String","shadowRootOptions","delegatesFocus","query","styles","css","MdCheckbox","customElement","SchmancyCheckbox","TailwindElement","Math","random","toString","id","size","e","CustomEvent","detail","__decorateClass","reflect"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8]}
1
+ {"version":3,"file":"checkbox-DPQ_TJWq.js","sources":["../../../../.yarn/berry/cache/@material-web-npm-2.2.0-6c67e37c0d-10c0.zip/node_modules/@material/web/internal/events/form-label-activation.js","../../../../.yarn/berry/cache/@material-web-npm-2.2.0-6c67e37c0d-10c0.zip/node_modules/@material/web/labs/behaviors/element-internals.js","../../../../.yarn/berry/cache/@material-web-npm-2.2.0-6c67e37c0d-10c0.zip/node_modules/@material/web/labs/behaviors/constraint-validation.js","../../../../.yarn/berry/cache/@material-web-npm-2.2.0-6c67e37c0d-10c0.zip/node_modules/@material/web/labs/behaviors/form-associated.js","../../../../.yarn/berry/cache/@material-web-npm-2.2.0-6c67e37c0d-10c0.zip/node_modules/@material/web/labs/behaviors/validators/validator.js","../../../../.yarn/berry/cache/@material-web-npm-2.2.0-6c67e37c0d-10c0.zip/node_modules/@material/web/labs/behaviors/validators/checkbox-validator.js","../../../../.yarn/berry/cache/@material-web-npm-2.2.0-6c67e37c0d-10c0.zip/node_modules/@material/web/checkbox/internal/checkbox.js","../../../../.yarn/berry/cache/@material-web-npm-2.2.0-6c67e37c0d-10c0.zip/node_modules/@material/web/checkbox/internal/checkbox-styles.js","../../../../.yarn/berry/cache/@material-web-npm-2.2.0-6c67e37c0d-10c0.zip/node_modules/@material/web/checkbox/checkbox.js","../src/checkbox/checkbox.ts"],"sourcesContent":["/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n/**\n * Dispatches a click event to the given element that triggers a native action,\n * but is not composed and therefore is not seen outside the element.\n *\n * This is useful for responding to an external click event on the host element\n * that should trigger an internal action like a button click.\n *\n * Note, a helper is provided because setting this up correctly is a bit tricky.\n * In particular, calling `click` on an element creates a composed event, which\n * is not desirable, and a manually dispatched event must specifically be a\n * `MouseEvent` to trigger a native action.\n *\n * @example\n * hostClickListener = (event: MouseEvent) {\n * if (isActivationClick(event)) {\n * this.dispatchActivationClick(this.buttonElement);\n * }\n * }\n *\n */\nexport function dispatchActivationClick(element) {\n const event = new MouseEvent('click', { bubbles: true });\n element.dispatchEvent(event);\n return event;\n}\n/**\n * Returns true if the click event should trigger an activation behavior. The\n * behavior is defined by the element and is whatever it should do when\n * clicked.\n *\n * Typically when an element needs to handle a click, the click is generated\n * from within the element and an event listener within the element implements\n * the needed behavior; however, it's possible to fire a click directly\n * at the element that the element should handle. This method helps\n * distinguish these \"external\" clicks.\n *\n * An \"external\" click can be triggered in a number of ways: via a click\n * on an associated label for a form associated element, calling\n * `element.click()`, or calling\n * `element.dispatchEvent(new MouseEvent('click', ...))`.\n *\n * Also works around Firefox issue\n * https://bugzilla.mozilla.org/show_bug.cgi?id=1804576 by squelching\n * events for a microtask after called.\n *\n * @example\n * hostClickListener = (event: MouseEvent) {\n * if (isActivationClick(event)) {\n * this.dispatchActivationClick(this.buttonElement);\n * }\n * }\n *\n */\nexport function isActivationClick(event) {\n // Event must start at the event target.\n if (event.currentTarget !== event.target) {\n return false;\n }\n // Event must not be retargeted from shadowRoot.\n if (event.composedPath()[0] !== event.target) {\n return false;\n }\n // Target must not be disabled; this should only occur for a synthetically\n // dispatched click.\n if (event.target.disabled) {\n return false;\n }\n // This is an activation if the event should not be squelched.\n return !squelchEvent(event);\n}\n// TODO(https://bugzilla.mozilla.org/show_bug.cgi?id=1804576)\n// Remove when Firefox bug is addressed.\nfunction squelchEvent(event) {\n const squelched = isSquelchingEvents;\n if (squelched) {\n event.preventDefault();\n event.stopImmediatePropagation();\n }\n squelchEventsForMicrotask();\n return squelched;\n}\n// Ignore events for one microtask only.\nlet isSquelchingEvents = false;\nasync function squelchEventsForMicrotask() {\n isSquelchingEvents = true;\n // Need to pause for just one microtask.\n // tslint:disable-next-line\n await null;\n isSquelchingEvents = false;\n}\n//# sourceMappingURL=form-label-activation.js.map","/**\n * @license\n * Copyright 2023 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n/**\n * A unique symbol used for protected access to an instance's\n * `ElementInternals`.\n *\n * @example\n * ```ts\n * class MyElement extends mixinElementInternals(LitElement) {\n * constructor() {\n * super();\n * this[internals].role = 'button';\n * }\n * }\n * ```\n */\nexport const internals = Symbol('internals');\n// Private symbols\nconst privateInternals = Symbol('privateInternals');\n/**\n * Mixes in an attached `ElementInternals` instance.\n *\n * This mixin is only needed when other shared code needs access to a\n * component's `ElementInternals`, such as form-associated mixins.\n *\n * @param base The class to mix functionality into.\n * @return The provided class with `WithElementInternals` mixed in.\n */\nexport function mixinElementInternals(base) {\n class WithElementInternalsElement extends base {\n get [internals]() {\n // Create internals in getter so that it can be used in methods called on\n // construction in `ReactiveElement`, such as `requestUpdate()`.\n if (!this[privateInternals]) {\n // Cast needed for closure\n this[privateInternals] = this.attachInternals();\n }\n return this[privateInternals];\n }\n }\n return WithElementInternalsElement;\n}\n//# sourceMappingURL=element-internals.js.map","/**\n * @license\n * Copyright 2023 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\nimport { isServer } from 'lit';\nimport { internals } from './element-internals.js';\n/**\n * A symbol property used to create a constraint validation `Validator`.\n * Required for all `mixinConstraintValidation()` elements.\n */\nexport const createValidator = Symbol('createValidator');\n/**\n * A symbol property used to return an anchor for constraint validation popups.\n * Required for all `mixinConstraintValidation()` elements.\n */\nexport const getValidityAnchor = Symbol('getValidityAnchor');\n// Private symbol members, used to avoid name clashing.\nconst privateValidator = Symbol('privateValidator');\nconst privateSyncValidity = Symbol('privateSyncValidity');\nconst privateCustomValidationMessage = Symbol('privateCustomValidationMessage');\n/**\n * Mixes in constraint validation APIs for an element.\n *\n * See https://developer.mozilla.org/en-US/docs/Web/HTML/Constraint_validation\n * for more details.\n *\n * Implementations must provide a validator to cache and compute its validity,\n * along with a shadow root element to anchor validation popups to.\n *\n * @example\n * ```ts\n * const baseClass = mixinConstraintValidation(\n * mixinFormAssociated(mixinElementInternals(LitElement))\n * );\n *\n * class MyCheckbox extends baseClass {\n * \\@property({type: Boolean}) checked = false;\n * \\@property({type: Boolean}) required = false;\n *\n * [createValidator]() {\n * return new CheckboxValidator(() => this);\n * }\n *\n * [getValidityAnchor]() {\n * return this.renderRoot.querySelector('.root');\n * }\n * }\n * ```\n *\n * @param base The class to mix functionality into.\n * @return The provided class with `ConstraintValidation` mixed in.\n */\nexport function mixinConstraintValidation(base) {\n var _a;\n class ConstraintValidationElement extends base {\n constructor() {\n super(...arguments);\n /**\n * Needed for Safari, see https://bugs.webkit.org/show_bug.cgi?id=261432\n * Replace with this[internals].validity.customError when resolved.\n */\n this[_a] = '';\n }\n get validity() {\n this[privateSyncValidity]();\n return this[internals].validity;\n }\n get validationMessage() {\n this[privateSyncValidity]();\n return this[internals].validationMessage;\n }\n get willValidate() {\n this[privateSyncValidity]();\n return this[internals].willValidate;\n }\n checkValidity() {\n this[privateSyncValidity]();\n return this[internals].checkValidity();\n }\n reportValidity() {\n this[privateSyncValidity]();\n return this[internals].reportValidity();\n }\n setCustomValidity(error) {\n this[privateCustomValidationMessage] = error;\n this[privateSyncValidity]();\n }\n requestUpdate(name, oldValue, options) {\n super.requestUpdate(name, oldValue, options);\n this[privateSyncValidity]();\n }\n firstUpdated(changed) {\n super.firstUpdated(changed);\n // Sync the validity again when the element first renders, since the\n // validity anchor is now available.\n //\n // Elements that `delegatesFocus: true` to an `<input>` will throw an\n // error in Chrome and Safari when a form tries to submit or call\n // `form.reportValidity()`:\n // \"An invalid form control with name='' is not focusable\"\n //\n // The validity anchor MUST be provided in `internals.setValidity()` and\n // MUST be the `<input>` element rendered.\n //\n // See https://lit.dev/playground/#gist=6c26e418e0010f7a5aac15005cde8bde\n // for a reproduction.\n this[privateSyncValidity]();\n }\n [(_a = privateCustomValidationMessage, privateSyncValidity)]() {\n if (isServer) {\n return;\n }\n if (!this[privateValidator]) {\n this[privateValidator] = this[createValidator]();\n }\n const { validity, validationMessage: nonCustomValidationMessage } = this[privateValidator].getValidity();\n const customError = !!this[privateCustomValidationMessage];\n const validationMessage = this[privateCustomValidationMessage] || nonCustomValidationMessage;\n this[internals].setValidity({ ...validity, customError }, validationMessage, this[getValidityAnchor]() ?? undefined);\n }\n [createValidator]() {\n throw new Error('Implement [createValidator]');\n }\n [getValidityAnchor]() {\n throw new Error('Implement [getValidityAnchor]');\n }\n }\n return ConstraintValidationElement;\n}\n//# sourceMappingURL=constraint-validation.js.map","/**\n * @license\n * Copyright 2023 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\nimport { __decorate } from \"tslib\";\nimport { property } from 'lit/decorators.js';\nimport { internals } from './element-internals.js';\n/**\n * A symbol property to retrieve the form value for an element.\n */\nexport const getFormValue = Symbol('getFormValue');\n/**\n * A symbol property to retrieve the form state for an element.\n */\nexport const getFormState = Symbol('getFormState');\n/**\n * Mixes in form-associated behavior for a class. This allows an element to add\n * values to `<form>` elements.\n *\n * Implementing classes should provide a `[formValue]` to return the current\n * value of the element, as well as reset and restore callbacks.\n *\n * @example\n * ```ts\n * const base = mixinFormAssociated(mixinElementInternals(LitElement));\n *\n * class MyControl extends base {\n * \\@property()\n * value = '';\n *\n * override [getFormValue]() {\n * return this.value;\n * }\n *\n * override formResetCallback() {\n * const defaultValue = this.getAttribute('value');\n * this.value = defaultValue;\n * }\n *\n * override formStateRestoreCallback(state: string) {\n * this.value = state;\n * }\n * }\n * ```\n *\n * Elements may optionally provide a `[formState]` if their values do not\n * represent the state of the component.\n *\n * @example\n * ```ts\n * const base = mixinFormAssociated(mixinElementInternals(LitElement));\n *\n * class MyCheckbox extends base {\n * \\@property()\n * value = 'on';\n *\n * \\@property({type: Boolean})\n * checked = false;\n *\n * override [getFormValue]() {\n * return this.checked ? this.value : null;\n * }\n *\n * override [getFormState]() {\n * return String(this.checked);\n * }\n *\n * override formResetCallback() {\n * const defaultValue = this.hasAttribute('checked');\n * this.checked = defaultValue;\n * }\n *\n * override formStateRestoreCallback(state: string) {\n * this.checked = Boolean(state);\n * }\n * }\n * ```\n *\n * IMPORTANT: Requires declares for lit-analyzer\n * @example\n * ```ts\n * const base = mixinFormAssociated(mixinElementInternals(LitElement));\n * class MyControl extends base {\n * // Writable mixin properties for lit-html binding, needed for lit-analyzer\n * declare disabled: boolean;\n * declare name: string;\n * }\n * ```\n *\n * @param base The class to mix functionality into. The base class must use\n * `mixinElementInternals()`.\n * @return The provided class with `FormAssociated` mixed in.\n */\nexport function mixinFormAssociated(base) {\n class FormAssociatedElement extends base {\n get form() {\n return this[internals].form;\n }\n get labels() {\n return this[internals].labels;\n }\n // Use @property for the `name` and `disabled` properties to add them to the\n // `observedAttributes` array and trigger `attributeChangedCallback()`.\n //\n // We don't use Lit's default getter/setter (`noAccessor: true`) because\n // the attributes need to be updated synchronously to work with synchronous\n // form APIs, and Lit updates attributes async by default.\n get name() {\n return this.getAttribute('name') ?? '';\n }\n set name(name) {\n // Note: setting name to null or empty does not remove the attribute.\n this.setAttribute('name', name);\n // We don't need to call `requestUpdate()` since it's called synchronously\n // in `attributeChangedCallback()`.\n }\n get disabled() {\n return this.hasAttribute('disabled');\n }\n set disabled(disabled) {\n this.toggleAttribute('disabled', disabled);\n // We don't need to call `requestUpdate()` since it's called synchronously\n // in `attributeChangedCallback()`.\n }\n attributeChangedCallback(name, old, value) {\n // Manually `requestUpdate()` for `name` and `disabled` when their\n // attribute or property changes.\n // The properties update their attributes, so this callback is invoked\n // immediately when the properties are set. We call `requestUpdate()` here\n // instead of letting Lit set the properties from the attribute change.\n // That would cause the properties to re-set the attribute and invoke this\n // callback again in a loop. This leads to stale state when Lit tries to\n // determine if a property changed or not.\n if (name === 'name' || name === 'disabled') {\n // Disabled's value is only false if the attribute is missing and null.\n const oldValue = name === 'disabled' ? old !== null : old;\n // Trigger a lit update when the attribute changes.\n this.requestUpdate(name, oldValue);\n return;\n }\n super.attributeChangedCallback(name, old, value);\n }\n requestUpdate(name, oldValue, options) {\n super.requestUpdate(name, oldValue, options);\n // If any properties change, update the form value, which may have changed\n // as well.\n // Update the form value synchronously in `requestUpdate()` rather than\n // `update()` or `updated()`, which are async. This is necessary to ensure\n // that form data is updated in time for synchronous event listeners.\n this[internals].setFormValue(this[getFormValue](), this[getFormState]());\n }\n [getFormValue]() {\n // Closure does not allow abstract symbol members, so a default\n // implementation is needed.\n throw new Error('Implement [getFormValue]');\n }\n [getFormState]() {\n return this[getFormValue]();\n }\n formDisabledCallback(disabled) {\n this.disabled = disabled;\n }\n }\n /** @nocollapse */\n FormAssociatedElement.formAssociated = true;\n __decorate([\n property({ noAccessor: true })\n ], FormAssociatedElement.prototype, \"name\", null);\n __decorate([\n property({ type: Boolean, noAccessor: true })\n ], FormAssociatedElement.prototype, \"disabled\", null);\n return FormAssociatedElement;\n}\n//# sourceMappingURL=form-associated.js.map","/**\n * @license\n * Copyright 2023 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n/**\n * A class that computes and caches `ValidityStateFlags` for a component with\n * a given `State` interface.\n *\n * Cached performance before computing validity is important since constraint\n * validation must be checked frequently and synchronously when properties\n * change.\n *\n * @template State The expected interface of properties relevant to constraint\n * validation.\n */\nexport class Validator {\n /**\n * Creates a new validator.\n *\n * @param getCurrentState A callback that returns the current state of\n * constraint validation-related properties.\n */\n constructor(getCurrentState) {\n this.getCurrentState = getCurrentState;\n /**\n * The current validity state and message. This is cached and returns if\n * constraint validation state does not change.\n */\n this.currentValidity = {\n validity: {},\n validationMessage: '',\n };\n }\n /**\n * Returns the current `ValidityStateFlags` and validation message for the\n * validator.\n *\n * If the constraint validation state has not changed, this will return a\n * cached result. This is important since `getValidity()` can be called\n * frequently in response to synchronous property changes.\n *\n * @return The current validity and validation message.\n */\n getValidity() {\n const state = this.getCurrentState();\n const hasStateChanged = !this.prevState || !this.equals(this.prevState, state);\n if (!hasStateChanged) {\n return this.currentValidity;\n }\n const { validity, validationMessage } = this.computeValidity(state);\n this.prevState = this.copy(state);\n this.currentValidity = {\n validationMessage,\n validity: {\n // Change any `ValidityState` instances into `ValidityStateFlags` since\n // `ValidityState` cannot be easily `{...spread}`.\n badInput: validity.badInput,\n customError: validity.customError,\n patternMismatch: validity.patternMismatch,\n rangeOverflow: validity.rangeOverflow,\n rangeUnderflow: validity.rangeUnderflow,\n stepMismatch: validity.stepMismatch,\n tooLong: validity.tooLong,\n tooShort: validity.tooShort,\n typeMismatch: validity.typeMismatch,\n valueMissing: validity.valueMissing,\n },\n };\n return this.currentValidity;\n }\n}\n//# sourceMappingURL=validator.js.map","/**\n * @license\n * Copyright 2023 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\nimport { Validator } from './validator.js';\n/**\n * A validator that provides constraint validation that emulates\n * `<input type=\"checkbox\">` validation.\n */\nexport class CheckboxValidator extends Validator {\n computeValidity(state) {\n if (!this.checkboxControl) {\n // Lazily create the platform input\n this.checkboxControl = document.createElement('input');\n this.checkboxControl.type = 'checkbox';\n }\n this.checkboxControl.checked = state.checked;\n this.checkboxControl.required = state.required;\n return {\n validity: this.checkboxControl.validity,\n validationMessage: this.checkboxControl.validationMessage,\n };\n }\n equals(prev, next) {\n return prev.checked === next.checked && prev.required === next.required;\n }\n copy({ checked, required }) {\n return { checked, required };\n }\n}\n//# sourceMappingURL=checkbox-validator.js.map","/**\n * @license\n * Copyright 2019 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\nimport { __decorate } from \"tslib\";\nimport '../../focus/md-focus-ring.js';\nimport '../../ripple/ripple.js';\nimport { html, isServer, LitElement, nothing } from 'lit';\nimport { property, query, state } from 'lit/decorators.js';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { mixinDelegatesAria } from '../../internal/aria/delegate.js';\nimport { dispatchActivationClick, isActivationClick, } from '../../internal/events/form-label-activation.js';\nimport { redispatchEvent } from '../../internal/events/redispatch-event.js';\nimport { createValidator, getValidityAnchor, mixinConstraintValidation, } from '../../labs/behaviors/constraint-validation.js';\nimport { mixinElementInternals } from '../../labs/behaviors/element-internals.js';\nimport { getFormState, getFormValue, mixinFormAssociated, } from '../../labs/behaviors/form-associated.js';\nimport { CheckboxValidator } from '../../labs/behaviors/validators/checkbox-validator.js';\n// Separate variable needed for closure.\nconst checkboxBaseClass = mixinDelegatesAria(mixinConstraintValidation(mixinFormAssociated(mixinElementInternals(LitElement))));\n/**\n * A checkbox component.\n *\n *\n * @fires change {Event} The native `change` event on\n * [`<input>`](https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/change_event)\n * --bubbles\n * @fires input {InputEvent} The native `input` event on\n * [`<input>`](https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/input_event)\n * --bubbles --composed\n */\nexport class Checkbox extends checkboxBaseClass {\n constructor() {\n super();\n /**\n * Whether or not the checkbox is selected.\n */\n this.checked = false;\n /**\n * Whether or not the checkbox is indeterminate.\n *\n * https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/checkbox#indeterminate_state_checkboxes\n */\n this.indeterminate = false;\n /**\n * When true, require the checkbox to be selected when participating in\n * form submission.\n *\n * https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/checkbox#validation\n */\n this.required = false;\n /**\n * The value of the checkbox that is submitted with a form when selected.\n *\n * https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/checkbox#value\n */\n this.value = 'on';\n this.prevChecked = false;\n this.prevDisabled = false;\n this.prevIndeterminate = false;\n if (!isServer) {\n this.addEventListener('click', (event) => {\n if (!isActivationClick(event) || !this.input) {\n return;\n }\n this.focus();\n dispatchActivationClick(this.input);\n });\n }\n }\n update(changed) {\n if (changed.has('checked') ||\n changed.has('disabled') ||\n changed.has('indeterminate')) {\n this.prevChecked = changed.get('checked') ?? this.checked;\n this.prevDisabled = changed.get('disabled') ?? this.disabled;\n this.prevIndeterminate =\n changed.get('indeterminate') ?? this.indeterminate;\n }\n super.update(changed);\n }\n render() {\n const prevNone = !this.prevChecked && !this.prevIndeterminate;\n const prevChecked = this.prevChecked && !this.prevIndeterminate;\n const prevIndeterminate = this.prevIndeterminate;\n const isChecked = this.checked && !this.indeterminate;\n const isIndeterminate = this.indeterminate;\n const containerClasses = classMap({\n 'disabled': this.disabled,\n 'selected': isChecked || isIndeterminate,\n 'unselected': !isChecked && !isIndeterminate,\n 'checked': isChecked,\n 'indeterminate': isIndeterminate,\n 'prev-unselected': prevNone,\n 'prev-checked': prevChecked,\n 'prev-indeterminate': prevIndeterminate,\n 'prev-disabled': this.prevDisabled,\n });\n // Needed for closure conformance\n const { ariaLabel, ariaInvalid } = this;\n // Note: <input> needs to be rendered before the <svg> for\n // form.reportValidity() to work in Chrome.\n return html `\n <div class=\"container ${containerClasses}\">\n <input\n type=\"checkbox\"\n id=\"input\"\n aria-checked=${isIndeterminate ? 'mixed' : nothing}\n aria-label=${ariaLabel || nothing}\n aria-invalid=${ariaInvalid || nothing}\n ?disabled=${this.disabled}\n ?required=${this.required}\n .indeterminate=${this.indeterminate}\n .checked=${this.checked}\n @input=${this.handleInput}\n @change=${this.handleChange} />\n\n <div class=\"outline\"></div>\n <div class=\"background\"></div>\n <md-focus-ring part=\"focus-ring\" for=\"input\"></md-focus-ring>\n <md-ripple for=\"input\" ?disabled=${this.disabled}></md-ripple>\n <svg class=\"icon\" viewBox=\"0 0 18 18\" aria-hidden=\"true\">\n <rect class=\"mark short\" />\n <rect class=\"mark long\" />\n </svg>\n </div>\n `;\n }\n handleInput(event) {\n const target = event.target;\n this.checked = target.checked;\n this.indeterminate = target.indeterminate;\n // <input> 'input' event bubbles and is composed, don't re-dispatch it.\n }\n handleChange(event) {\n // <input> 'change' event is not composed, re-dispatch it.\n redispatchEvent(this, event);\n }\n [getFormValue]() {\n if (!this.checked || this.indeterminate) {\n return null;\n }\n return this.value;\n }\n [getFormState]() {\n return String(this.checked);\n }\n formResetCallback() {\n // The checked property does not reflect, so the original attribute set by\n // the user is used to determine the default value.\n this.checked = this.hasAttribute('checked');\n }\n formStateRestoreCallback(state) {\n this.checked = state === 'true';\n }\n [createValidator]() {\n return new CheckboxValidator(() => this);\n }\n [getValidityAnchor]() {\n return this.input;\n }\n}\n/** @nocollapse */\nCheckbox.shadowRootOptions = {\n ...LitElement.shadowRootOptions,\n delegatesFocus: true,\n};\n__decorate([\n property({ type: Boolean })\n], Checkbox.prototype, \"checked\", void 0);\n__decorate([\n property({ type: Boolean })\n], Checkbox.prototype, \"indeterminate\", void 0);\n__decorate([\n property({ type: Boolean })\n], Checkbox.prototype, \"required\", void 0);\n__decorate([\n property()\n], Checkbox.prototype, \"value\", void 0);\n__decorate([\n state()\n], Checkbox.prototype, \"prevChecked\", void 0);\n__decorate([\n state()\n], Checkbox.prototype, \"prevDisabled\", void 0);\n__decorate([\n state()\n], Checkbox.prototype, \"prevIndeterminate\", void 0);\n__decorate([\n query('input')\n], Checkbox.prototype, \"input\", void 0);\n//# sourceMappingURL=checkbox.js.map","/**\n * @license\n * Copyright 2024 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n// Generated stylesheet for ./checkbox/internal/checkbox-styles.css.\nimport { css } from 'lit';\nexport const styles = css `:host{border-start-start-radius:var(--md-checkbox-container-shape-start-start, var(--md-checkbox-container-shape, 2px));border-start-end-radius:var(--md-checkbox-container-shape-start-end, var(--md-checkbox-container-shape, 2px));border-end-end-radius:var(--md-checkbox-container-shape-end-end, var(--md-checkbox-container-shape, 2px));border-end-start-radius:var(--md-checkbox-container-shape-end-start, var(--md-checkbox-container-shape, 2px));display:inline-flex;height:var(--md-checkbox-container-size, 18px);position:relative;vertical-align:top;width:var(--md-checkbox-container-size, 18px);-webkit-tap-highlight-color:rgba(0,0,0,0);cursor:pointer}:host([disabled]){cursor:default}:host([touch-target=wrapper]){margin:max(0px,(48px - var(--md-checkbox-container-size, 18px))/2)}md-focus-ring{height:44px;inset:unset;width:44px}input{appearance:none;height:48px;margin:0;opacity:0;outline:none;position:absolute;width:48px;z-index:1;cursor:inherit}:host([touch-target=none]) input{height:100%;width:100%}.container{border-radius:inherit;display:flex;height:100%;place-content:center;place-items:center;position:relative;width:100%}.outline,.background,.icon{inset:0;position:absolute}.outline,.background{border-radius:inherit}.outline{border-color:var(--md-checkbox-outline-color, var(--md-sys-color-on-surface-variant, #49454f));border-style:solid;border-width:var(--md-checkbox-outline-width, 2px);box-sizing:border-box}.background{background-color:var(--md-checkbox-selected-container-color, var(--md-sys-color-primary, #6750a4))}.background,.icon{opacity:0;transition-duration:150ms,50ms;transition-property:transform,opacity;transition-timing-function:cubic-bezier(0.3, 0, 0.8, 0.15),linear;transform:scale(0.6)}:where(.selected) :is(.background,.icon){opacity:1;transition-duration:350ms,50ms;transition-timing-function:cubic-bezier(0.05, 0.7, 0.1, 1),linear;transform:scale(1)}md-ripple{border-radius:var(--md-checkbox-state-layer-shape, var(--md-sys-shape-corner-full, 9999px));height:var(--md-checkbox-state-layer-size, 40px);inset:unset;width:var(--md-checkbox-state-layer-size, 40px);--md-ripple-hover-color: var(--md-checkbox-hover-state-layer-color, var(--md-sys-color-on-surface, #1d1b20));--md-ripple-hover-opacity: var(--md-checkbox-hover-state-layer-opacity, 0.08);--md-ripple-pressed-color: var(--md-checkbox-pressed-state-layer-color, var(--md-sys-color-primary, #6750a4));--md-ripple-pressed-opacity: var(--md-checkbox-pressed-state-layer-opacity, 0.12)}.selected md-ripple{--md-ripple-hover-color: var(--md-checkbox-selected-hover-state-layer-color, var(--md-sys-color-primary, #6750a4));--md-ripple-hover-opacity: var(--md-checkbox-selected-hover-state-layer-opacity, 0.08);--md-ripple-pressed-color: var(--md-checkbox-selected-pressed-state-layer-color, var(--md-sys-color-on-surface, #1d1b20));--md-ripple-pressed-opacity: var(--md-checkbox-selected-pressed-state-layer-opacity, 0.12)}.icon{fill:var(--md-checkbox-selected-icon-color, var(--md-sys-color-on-primary, #fff));height:var(--md-checkbox-icon-size, 18px);width:var(--md-checkbox-icon-size, 18px)}.mark.short{height:2px;transition-property:transform,height;width:2px}.mark.long{height:2px;transition-property:transform,width;width:10px}.mark{animation-duration:150ms;animation-timing-function:cubic-bezier(0.3, 0, 0.8, 0.15);transition-duration:150ms;transition-timing-function:cubic-bezier(0.3, 0, 0.8, 0.15)}.selected .mark{animation-duration:350ms;animation-timing-function:cubic-bezier(0.05, 0.7, 0.1, 1);transition-duration:350ms;transition-timing-function:cubic-bezier(0.05, 0.7, 0.1, 1)}.checked .mark,.prev-checked.unselected .mark{transform:scaleY(-1) translate(7px, -14px) rotate(45deg)}.checked .mark.short,.prev-checked.unselected .mark.short{height:5.6568542495px}.checked .mark.long,.prev-checked.unselected .mark.long{width:11.313708499px}.indeterminate .mark,.prev-indeterminate.unselected .mark{transform:scaleY(-1) translate(4px, -10px) rotate(0deg)}.prev-unselected .mark{transition-property:none}.prev-unselected.checked .mark.long{animation-name:prev-unselected-to-checked}@keyframes prev-unselected-to-checked{from{width:0}}:where(:hover) .outline{border-color:var(--md-checkbox-hover-outline-color, var(--md-sys-color-on-surface, #1d1b20));border-width:var(--md-checkbox-hover-outline-width, 2px)}:where(:hover) .background{background:var(--md-checkbox-selected-hover-container-color, var(--md-sys-color-primary, #6750a4))}:where(:hover) .icon{fill:var(--md-checkbox-selected-hover-icon-color, var(--md-sys-color-on-primary, #fff))}:where(:focus-within) .outline{border-color:var(--md-checkbox-focus-outline-color, var(--md-sys-color-on-surface, #1d1b20));border-width:var(--md-checkbox-focus-outline-width, 2px)}:where(:focus-within) .background{background:var(--md-checkbox-selected-focus-container-color, var(--md-sys-color-primary, #6750a4))}:where(:focus-within) .icon{fill:var(--md-checkbox-selected-focus-icon-color, var(--md-sys-color-on-primary, #fff))}:where(:active) .outline{border-color:var(--md-checkbox-pressed-outline-color, var(--md-sys-color-on-surface, #1d1b20));border-width:var(--md-checkbox-pressed-outline-width, 2px)}:where(:active) .background{background:var(--md-checkbox-selected-pressed-container-color, var(--md-sys-color-primary, #6750a4))}:where(:active) .icon{fill:var(--md-checkbox-selected-pressed-icon-color, var(--md-sys-color-on-primary, #fff))}:where(.disabled,.prev-disabled) :is(.background,.icon,.mark){animation-duration:0s;transition-duration:0s}:where(.disabled) .outline{border-color:var(--md-checkbox-disabled-outline-color, var(--md-sys-color-on-surface, #1d1b20));border-width:var(--md-checkbox-disabled-outline-width, 2px);opacity:var(--md-checkbox-disabled-container-opacity, 0.38)}:where(.selected.disabled) .outline{visibility:hidden}:where(.selected.disabled) .background{background:var(--md-checkbox-selected-disabled-container-color, var(--md-sys-color-on-surface, #1d1b20));opacity:var(--md-checkbox-selected-disabled-container-opacity, 0.38)}:where(.disabled) .icon{fill:var(--md-checkbox-selected-disabled-icon-color, var(--md-sys-color-surface, #fef7ff))}@media(forced-colors: active){.background{background-color:CanvasText}.selected.disabled .background{background-color:GrayText;opacity:1}.outline{border-color:CanvasText}.disabled .outline{border-color:GrayText;opacity:1}.icon{fill:Canvas}}\n`;\n//# sourceMappingURL=checkbox-styles.js.map","/**\n * @license\n * Copyright 2018 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\nimport { __decorate } from \"tslib\";\nimport { customElement } from 'lit/decorators.js';\nimport { Checkbox } from './internal/checkbox.js';\nimport { styles } from './internal/checkbox-styles.js';\n/**\n * @summary Checkboxes allow users to select one or more items from a set.\n * Checkboxes can turn an option on or off.\n *\n * @description\n * Use checkboxes to:\n * - Select one or more options from a list\n * - Present a list containing sub-selections\n * - Turn an item on or off in a desktop environment\n *\n * @final\n * @suppress {visibility}\n */\nexport let MdCheckbox = class MdCheckbox extends Checkbox {\n};\nMdCheckbox.styles = [styles];\nMdCheckbox = __decorate([\n customElement('md-checkbox')\n], MdCheckbox);\n//# sourceMappingURL=checkbox.js.map","import '@material/web/checkbox/checkbox.js'\nimport { TailwindElement } from '@mixins/index'\nimport { html, LitElement } from 'lit'\nimport { customElement, property } from 'lit/decorators.js'\n\nexport type schmancyCheckBoxChangeEvent = CustomEvent<{\n\tvalue: boolean\n}>\n\n/**\n * @element schmancy-checkbox\n * @slot - The label for the checkbox.\n * @fires valueChange - Event fired when the checkbox value changes.\n **/\n\n@customElement('schmancy-checkbox')\nexport class SchmancyCheckbox extends TailwindElement() {\n\tprotected static shadowRootOptions = {\n\t\t...LitElement.shadowRootOptions,\n\t\tdelegatesFocus: true,\n\t}\n\tstatic formAssociated = true\n\t// private internals\n\tinternals: ElementInternals | undefined\n\tget form() {\n\t\treturn this.internals?.form\n\t}\n\n\t/**\n\t * @attr {boolean} value - The value of the checkbox.\n\t */\n\t@property({ type: Boolean, reflect: true })\n\tvalue = false\n\n\t/**\n\t * @attr {boolean} disabled - The disabled state of the checkbox.\n\t */\n\t@property({ type: Boolean })\n\tdisabled = false\n\n\t/**\n\t * @attr {boolean} required - The required state of the checkbox.\n\t */\n\t@property({ type: Boolean })\n\trequired = false\n\n\t/**\n\t * @attr {string} name - The name of the checkbox.\n\t */\n\t@property({ type: String })\n\tname = 'checkbox-' + Math.random().toString(36)\n\n\t/**\n\t * @attr {string} id - The id of the checkbox.\n\t */\n\t@property({ type: String })\n\tid = 'checkbox-' + Math.random().toString(36)\n\n\t/**\n\t * @attr {sm | md | lg } size - The size of the checkbox.\n\t */\n\t@property({ type: String })\n\tsize: 'sm' | 'md' | 'lg' = 'md'\n\n\trender() {\n\t\treturn html`\n\t\t\t<label class=\"grid grid-flow-col items-center space-x-2 w-fit\">\n\t\t\t\t<md-checkbox\n\t\t\t\t\t.required=${this.required}\n\t\t\t\t\t.disabled=${this.disabled}\n\t\t\t\t\t?checked=${this.value === true}\n\t\t\t\t\t@change=${(e: Event) => {\n\t\t\t\t\t\tthis.value = (e.target as HTMLInputElement).checked\n\t\t\t\t\t\tthis.dispatchEvent(\n\t\t\t\t\t\t\tnew CustomEvent('change', {\n\t\t\t\t\t\t\t\tdetail: {\n\t\t\t\t\t\t\t\t\tvalue: this.value,\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t)\n\t\t\t\t\t}}\n\t\t\t\t>\n\t\t\t\t</md-checkbox>\n\t\t\t\t<slot></slot>\n\t\t\t</label>\n\t\t`\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-checkbox': SchmancyCheckbox\n\t}\n}\n"],"names":["isActivationClick","event","currentTarget","target","composedPath","disabled","squelched","isSquelchingEvents","preventDefault","stopImmediatePropagation","async","internals","Symbol","privateInternals","createValidator","getValidityAnchor","privateValidator","privateSyncValidity","privateCustomValidationMessage","getFormValue","getFormState","Validator","getCurrentState","this","currentValidity","validity","validationMessage","state","prevState","equals","computeValidity","copy","badInput","customError","patternMismatch","rangeOverflow","rangeUnderflow","stepMismatch","tooLong","tooShort","typeMismatch","valueMissing","CheckboxValidator","checkboxControl","document","createElement","type","checked","required","prev","next","checkboxBaseClass","mixinDelegatesAria","base","_a","ConstraintValidationElement","constructor","super","arguments","willValidate","checkValidity","reportValidity","error","name","oldValue","options","requestUpdate","changed","firstUpdated","isServer","nonCustomValidationMessage","getValidity","setValidity","undefined","Error","FormAssociatedElement","form","labels","getAttribute","setAttribute","hasAttribute","toggleAttribute","old","value","attributeChangedCallback","setFormValue","formAssociated","__decorate","property","noAccessor","prototype","Boolean","LitElement","attachInternals","Checkbox","indeterminate","prevChecked","prevDisabled","prevIndeterminate","addEventListener","input","focus","element","MouseEvent","bubbles","dispatchEvent","has","get","update","prevNone","isChecked","isIndeterminate","containerClasses","classMap","selected","unselected","ariaLabel","ariaInvalid","html","nothing","handleInput","handleChange","redispatchEvent","String","shadowRootOptions","delegatesFocus","query","styles","css","MdCheckbox","customElement","SchmancyCheckbox","TailwindElement","Math","random","toString","id","size","e","CustomEvent","detail","__decorateClass","reflect"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8]}