@mhmo91/schmancy 0.3.2 → 0.3.6

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 (308) hide show
  1. package/ai/boat.md +6 -6
  2. package/ai/index.md +1 -1
  3. package/ai/layout.md +161 -140
  4. package/dist/ai/boat.md +6 -6
  5. package/dist/ai/index.md +1 -1
  6. package/dist/ai/layout.md +161 -140
  7. package/dist/{animated-text-DuL0BVFF.cjs → animated-text-CvOxKhXc.cjs} +2 -2
  8. package/dist/{animated-text-DuL0BVFF.cjs.map → animated-text-CvOxKhXc.cjs.map} +1 -1
  9. package/dist/{animated-text-B2RjyIK5.js → animated-text-DzY-xfTP.js} +3 -3
  10. package/dist/{animated-text-B2RjyIK5.js.map → animated-text-DzY-xfTP.js.map} +1 -1
  11. package/dist/animated-text.cjs +1 -1
  12. package/dist/animated-text.js +1 -1
  13. package/dist/area.cjs +1 -1
  14. package/dist/{area.component-DYh2KKnh.cjs → area.component-DEOob0ox.cjs} +2 -2
  15. package/dist/{area.component-DYh2KKnh.cjs.map → area.component-DEOob0ox.cjs.map} +1 -1
  16. package/dist/{area.component-C4lraBSz.js → area.component-X7coBLB2.js} +3 -3
  17. package/dist/{area.component-C4lraBSz.js.map → area.component-X7coBLB2.js.map} +1 -1
  18. package/dist/area.js +1 -1
  19. package/dist/{autocomplete-C2MgBZdi.cjs → autocomplete-DqbWESS2.cjs} +2 -2
  20. package/dist/{autocomplete-C2MgBZdi.cjs.map → autocomplete-DqbWESS2.cjs.map} +1 -1
  21. package/dist/{autocomplete-BXf34fA-.js → autocomplete-KvR4MRDs.js} +3 -3
  22. package/dist/{autocomplete-BXf34fA-.js.map → autocomplete-KvR4MRDs.js.map} +1 -1
  23. package/dist/autocomplete.cjs +1 -1
  24. package/dist/autocomplete.js +1 -1
  25. package/dist/{avatar-DVN44OzV.cjs → avatar-BvqaPLuL.cjs} +2 -2
  26. package/dist/{avatar-DVN44OzV.cjs.map → avatar-BvqaPLuL.cjs.map} +1 -1
  27. package/dist/{avatar-DupGPy32.js → avatar-Dy63jAZP.js} +48 -47
  28. package/dist/{avatar-DupGPy32.js.map → avatar-Dy63jAZP.js.map} +1 -1
  29. package/dist/badge.cjs +1 -1
  30. package/dist/badge.js +1 -1
  31. package/dist/boat-CL-jiVBO.js +99 -0
  32. package/dist/boat-CL-jiVBO.js.map +1 -0
  33. package/dist/boat-DpwpvrwB.cjs +70 -0
  34. package/dist/boat-DpwpvrwB.cjs.map +1 -0
  35. package/dist/boat.cjs +1 -1
  36. package/dist/boat.js +1 -1
  37. package/dist/busy.cjs +1 -1
  38. package/dist/busy.js +1 -1
  39. package/dist/button.cjs +1 -1
  40. package/dist/button.js +1 -1
  41. package/dist/card.cjs +1 -1
  42. package/dist/card.js +1 -1
  43. package/dist/{checkbox-CZUwhaUm.js → checkbox-BjDdxFyz.js} +6 -6
  44. package/dist/{checkbox-CZUwhaUm.js.map → checkbox-BjDdxFyz.js.map} +1 -1
  45. package/dist/{checkbox-BSndX5zU.cjs → checkbox-DFSfKDe7.cjs} +2 -2
  46. package/dist/{checkbox-BSndX5zU.cjs.map → checkbox-DFSfKDe7.cjs.map} +1 -1
  47. package/dist/checkbox.cjs +1 -1
  48. package/dist/checkbox.js +1 -1
  49. package/dist/{chips-Cy-Uf0By.js → chips-DdDQGtnw.js} +9 -9
  50. package/dist/{chips-Cy-Uf0By.js.map → chips-DdDQGtnw.js.map} +1 -1
  51. package/dist/{chips-Do9LFtJA.cjs → chips-SlEVDtLL.cjs} +2 -2
  52. package/dist/{chips-Do9LFtJA.cjs.map → chips-SlEVDtLL.cjs.map} +1 -1
  53. package/dist/chips.cjs +1 -1
  54. package/dist/chips.js +1 -1
  55. package/dist/{circular-progress-DS6pw54i.cjs → circular-progress-D0Ei_TVO.cjs} +2 -2
  56. package/dist/{circular-progress-DS6pw54i.cjs.map → circular-progress-D0Ei_TVO.cjs.map} +1 -1
  57. package/dist/{circular-progress-D5vVDl4d.js → circular-progress-hBD2CBnQ.js} +3 -3
  58. package/dist/{circular-progress-D5vVDl4d.js.map → circular-progress-hBD2CBnQ.js.map} +1 -1
  59. package/dist/circular-progress.cjs +1 -1
  60. package/dist/circular-progress.js +1 -1
  61. package/dist/code-highlight.cjs +1 -1
  62. package/dist/code-highlight.js +1 -1
  63. package/dist/{code-preview-CXO3vsRi.cjs → code-preview-CHUDQgBs.cjs} +2 -2
  64. package/dist/{code-preview-CXO3vsRi.cjs.map → code-preview-CHUDQgBs.cjs.map} +1 -1
  65. package/dist/{code-preview-AQ1T_x11.js → code-preview-rZY7AeQl.js} +2 -2
  66. package/dist/{code-preview-AQ1T_x11.js.map → code-preview-rZY7AeQl.js.map} +1 -1
  67. package/dist/components.cjs +1 -1
  68. package/dist/components.js +1 -1
  69. package/dist/content-drawer.cjs +1 -1
  70. package/dist/content-drawer.js +1 -1
  71. package/dist/date-range-DYdBqzUs.js +638 -0
  72. package/dist/date-range-DYdBqzUs.js.map +1 -0
  73. package/dist/date-range-vfh_MQQ8.cjs +140 -0
  74. package/dist/date-range-vfh_MQQ8.cjs.map +1 -0
  75. package/dist/date-range.cjs +1 -1
  76. package/dist/date-range.js +3 -2
  77. package/dist/{delay-BjYDvkud.js → delay-D0iuwCUK.js} +2 -2
  78. package/dist/{delay-BjYDvkud.js.map → delay-D0iuwCUK.js.map} +1 -1
  79. package/dist/{delay-BV4QWYDw.cjs → delay-DSlalih2.cjs} +2 -2
  80. package/dist/{delay-BV4QWYDw.cjs.map → delay-DSlalih2.cjs.map} +1 -1
  81. package/dist/delay.cjs +1 -1
  82. package/dist/delay.js +1 -1
  83. package/dist/dialog-content-Bc8Dem2U.js +282 -0
  84. package/dist/dialog-content-Bc8Dem2U.js.map +1 -0
  85. package/dist/dialog-content-C2mSWw93.cjs +106 -0
  86. package/dist/dialog-content-C2mSWw93.cjs.map +1 -0
  87. package/dist/dialog-events--DuMbZ8T.cjs +2 -0
  88. package/dist/dialog-events--DuMbZ8T.cjs.map +1 -0
  89. package/dist/dialog-events-mjOcyPQ-.js +6 -0
  90. package/dist/dialog-events-mjOcyPQ-.js.map +1 -0
  91. package/dist/dialog-service-Di9NiBao.cjs +2 -0
  92. package/dist/dialog-service-Di9NiBao.cjs.map +1 -0
  93. package/dist/dialog-service-noGCuxg1.js +127 -0
  94. package/dist/dialog-service-noGCuxg1.js.map +1 -0
  95. package/dist/dialog.cjs +1 -1
  96. package/dist/dialog.js +7 -6
  97. package/dist/dialog.js.map +1 -1
  98. package/dist/{divider-CEyi1ooH.cjs → divider-BLWfsrgW.cjs} +2 -2
  99. package/dist/{divider-CEyi1ooH.cjs.map → divider-BLWfsrgW.cjs.map} +1 -1
  100. package/dist/{divider-3tv52Nso.js → divider-CE4Z74RZ.js} +3 -3
  101. package/dist/{divider-3tv52Nso.js.map → divider-CE4Z74RZ.js.map} +1 -1
  102. package/dist/divider.cjs +1 -1
  103. package/dist/divider.js +1 -1
  104. package/dist/{dropdown-content-BoKXumxT.cjs → dropdown-content-DGzqx1S_.cjs} +2 -2
  105. package/dist/{dropdown-content-BoKXumxT.cjs.map → dropdown-content-DGzqx1S_.cjs.map} +1 -1
  106. package/dist/{dropdown-content-R-EVmTas.js → dropdown-content-owobMGzG.js} +3 -3
  107. package/dist/{dropdown-content-R-EVmTas.js.map → dropdown-content-owobMGzG.js.map} +1 -1
  108. package/dist/dropdown.cjs +1 -1
  109. package/dist/dropdown.js +1 -1
  110. package/dist/extra.cjs +1 -1
  111. package/dist/extra.js +1 -1
  112. package/dist/{flex-DFGC-5rG.js → flex-BsSncdMc.js} +2 -2
  113. package/dist/flex-BsSncdMc.js.map +1 -0
  114. package/dist/{flex-Dfk62-Dn.cjs → flex-Dpr6dCxo.cjs} +2 -2
  115. package/dist/flex-Dpr6dCxo.cjs.map +1 -0
  116. package/dist/{form-C-YpNF0Z.cjs → form-BQE8JXxF.cjs} +2 -2
  117. package/dist/{form-C-YpNF0Z.cjs.map → form-BQE8JXxF.cjs.map} +1 -1
  118. package/dist/{form-DWz7p8Ru.js → form-CHNcjEbu.js} +2 -2
  119. package/dist/{form-DWz7p8Ru.js.map → form-CHNcjEbu.js.map} +1 -1
  120. package/dist/form.cjs +1 -1
  121. package/dist/form.js +1 -1
  122. package/dist/{icon-D-o0ZArk.js → icon-BEBPLEy5.js} +2 -2
  123. package/dist/{icon-D-o0ZArk.js.map → icon-BEBPLEy5.js.map} +1 -1
  124. package/dist/{icon-button-6K7j0Ifl.js → icon-button-2HzMutoD.js} +3 -3
  125. package/dist/{icon-button-6K7j0Ifl.js.map → icon-button-2HzMutoD.js.map} +1 -1
  126. package/dist/{icon-button-fT0E5fJN.cjs → icon-button-BCMiumJV.cjs} +2 -2
  127. package/dist/{icon-button-fT0E5fJN.cjs.map → icon-button-BCMiumJV.cjs.map} +1 -1
  128. package/dist/{icon-D_0MYmHT.cjs → icon-pSnkdbDc.cjs} +2 -2
  129. package/dist/{icon-D_0MYmHT.cjs.map → icon-pSnkdbDc.cjs.map} +1 -1
  130. package/dist/icons.cjs +1 -1
  131. package/dist/icons.js +1 -1
  132. package/dist/index.cjs +1 -1
  133. package/dist/index.js +149 -147
  134. package/dist/index.js.map +1 -1
  135. package/dist/{input-y7H2rS_c.cjs → input-BN2LXdXz.cjs} +2 -2
  136. package/dist/{input-y7H2rS_c.cjs.map → input-BN2LXdXz.cjs.map} +1 -1
  137. package/dist/{input-3-d9ijGr.js → input-BeF_sRNg.js} +2 -2
  138. package/dist/{input-3-d9ijGr.js.map → input-BeF_sRNg.js.map} +1 -1
  139. package/dist/input.cjs +1 -1
  140. package/dist/input.js +1 -1
  141. package/dist/layout.cjs +1 -1
  142. package/dist/layout.js +1 -1
  143. package/dist/{list-CQCRYpMc.cjs → list-BEbwK0js.cjs} +2 -2
  144. package/dist/{list-CQCRYpMc.cjs.map → list-BEbwK0js.cjs.map} +1 -1
  145. package/dist/{list-DdZ0XbRC.js → list-BL8wGmIx.js} +2 -2
  146. package/dist/{list-DdZ0XbRC.js.map → list-BL8wGmIx.js.map} +1 -1
  147. package/dist/list.cjs +1 -1
  148. package/dist/list.js +1 -1
  149. package/dist/{litElement.mixin-DCTPuIQ4.js → litElement.mixin-Csoyz9Ih.js} +2 -2
  150. package/dist/{litElement.mixin-DCTPuIQ4.js.map → litElement.mixin-Csoyz9Ih.js.map} +1 -1
  151. package/dist/{litElement.mixin-DcYItU_Y.cjs → litElement.mixin-DBKBn5-0.cjs} +2 -2
  152. package/dist/{litElement.mixin-DcYItU_Y.cjs.map → litElement.mixin-DBKBn5-0.cjs.map} +1 -1
  153. package/dist/{menu-DTNNwC3X.cjs → menu-BdzIXUjg.cjs} +2 -2
  154. package/dist/{menu-DTNNwC3X.cjs.map → menu-BdzIXUjg.cjs.map} +1 -1
  155. package/dist/{menu-BBeCodjv.js → menu-DyAZ0l5W.js} +3 -3
  156. package/dist/{menu-BBeCodjv.js.map → menu-DyAZ0l5W.js.map} +1 -1
  157. package/dist/menu.cjs +1 -1
  158. package/dist/menu.js +1 -1
  159. package/dist/nav-drawer.cjs +1 -1
  160. package/dist/nav-drawer.js +1 -1
  161. package/dist/{notification-service-Dw1vWE8m.cjs → notification-service-CXc-_Kb_.cjs} +2 -2
  162. package/dist/{notification-service-Dw1vWE8m.cjs.map → notification-service-CXc-_Kb_.cjs.map} +1 -1
  163. package/dist/{notification-service-cV_jYoFM.js → notification-service-DKZuIFCM.js} +3 -3
  164. package/dist/{notification-service-cV_jYoFM.js.map → notification-service-DKZuIFCM.js.map} +1 -1
  165. package/dist/notification.cjs +1 -1
  166. package/dist/notification.js +1 -1
  167. package/dist/{option-D9kAMX93.js → option-CYaG8vnG.js} +2 -2
  168. package/dist/{option-D9kAMX93.js.map → option-CYaG8vnG.js.map} +1 -1
  169. package/dist/{option-BkYybtqQ.cjs → option-EnoMfyR-.cjs} +2 -2
  170. package/dist/{option-BkYybtqQ.cjs.map → option-EnoMfyR-.cjs.map} +1 -1
  171. package/dist/option.cjs +1 -1
  172. package/dist/option.js +1 -1
  173. package/dist/{payment-card-form-C2X4AyyB.js → payment-card-form-BSmtEC4S.js} +3 -3
  174. package/dist/{payment-card-form-C2X4AyyB.js.map → payment-card-form-BSmtEC4S.js.map} +1 -1
  175. package/dist/{payment-card-form-CLRmWodS.cjs → payment-card-form-CpgGccLb.cjs} +2 -2
  176. package/dist/{payment-card-form-CLRmWodS.cjs.map → payment-card-form-CpgGccLb.cjs.map} +1 -1
  177. package/dist/{radio-button-b-3WocDM.cjs → radio-button-BJjvHX_o.cjs} +2 -2
  178. package/dist/{radio-button-b-3WocDM.cjs.map → radio-button-BJjvHX_o.cjs.map} +1 -1
  179. package/dist/{radio-button-C0IThgUp.js → radio-button-BURq74ON.js} +2 -2
  180. package/dist/{radio-button-C0IThgUp.js.map → radio-button-BURq74ON.js.map} +1 -1
  181. package/dist/radio-group.cjs +1 -1
  182. package/dist/radio-group.js +1 -1
  183. package/dist/{schmancy-steps-container-zat0B8ZS.cjs → schmancy-steps-container-DDTHvnOz.cjs} +2 -2
  184. package/dist/{schmancy-steps-container-zat0B8ZS.cjs.map → schmancy-steps-container-DDTHvnOz.cjs.map} +1 -1
  185. package/dist/{schmancy-steps-container-B1pLiWXH.js → schmancy-steps-container-Jm5DjyWr.js} +2 -2
  186. package/dist/{schmancy-steps-container-B1pLiWXH.js.map → schmancy-steps-container-Jm5DjyWr.js.map} +1 -1
  187. package/dist/{select-BLI7oX60.js → select-C7KUOvwM.js} +3 -3
  188. package/dist/{select-BLI7oX60.js.map → select-C7KUOvwM.js.map} +1 -1
  189. package/dist/{select-DsFHJyZw.cjs → select-DhsURRRa.cjs} +2 -2
  190. package/dist/{select-DsFHJyZw.cjs.map → select-DhsURRRa.cjs.map} +1 -1
  191. package/dist/select.cjs +1 -1
  192. package/dist/select.js +1 -1
  193. package/dist/{sheet-cxQG63jb.js → sheet-BD5cVkNb.js} +12 -12
  194. package/dist/{sheet-cxQG63jb.js.map → sheet-BD5cVkNb.js.map} +1 -1
  195. package/dist/{sheet-xbPPu7eJ.cjs → sheet-L0BMbi1B.cjs} +2 -2
  196. package/dist/{sheet-xbPPu7eJ.cjs.map → sheet-L0BMbi1B.cjs.map} +1 -1
  197. package/dist/sheet.cjs +1 -1
  198. package/dist/sheet.js +1 -1
  199. package/dist/{slider-DI42q9wf.cjs → slider-CAYWu8jw.cjs} +2 -2
  200. package/dist/{slider-DI42q9wf.cjs.map → slider-CAYWu8jw.cjs.map} +1 -1
  201. package/dist/{slider-D5GAJBtp.js → slider-DiRa4lW4.js} +3 -3
  202. package/dist/{slider-D5GAJBtp.js.map → slider-DiRa4lW4.js.map} +1 -1
  203. package/dist/slider.cjs +1 -1
  204. package/dist/slider.js +1 -1
  205. package/dist/{spinner-jxwBlOT6.js → spinner-CnjBDKlQ.js} +3 -3
  206. package/dist/{spinner-jxwBlOT6.js.map → spinner-CnjBDKlQ.js.map} +1 -1
  207. package/dist/{spinner-I_J8koHo.cjs → spinner-XXVCb3SB.cjs} +2 -2
  208. package/dist/{spinner-I_J8koHo.cjs.map → spinner-XXVCb3SB.cjs.map} +1 -1
  209. package/dist/steps.cjs +1 -1
  210. package/dist/steps.js +1 -1
  211. package/dist/{surface-CgjTa2At.cjs → surface-B93-RzTP.cjs} +2 -2
  212. package/dist/{surface-CgjTa2At.cjs.map → surface-B93-RzTP.cjs.map} +1 -1
  213. package/dist/{surface-KO5G93q6.js → surface-DPoDLP5m.js} +2 -2
  214. package/dist/{surface-KO5G93q6.js.map → surface-DPoDLP5m.js.map} +1 -1
  215. package/dist/surface.cjs +1 -1
  216. package/dist/surface.js +1 -1
  217. package/dist/{table-tMVVNYqd.cjs → table-CZ0Kxa-3.cjs} +2 -2
  218. package/dist/{table-tMVVNYqd.cjs.map → table-CZ0Kxa-3.cjs.map} +1 -1
  219. package/dist/{table-ae8AvxxX.js → table-Dsb3MObV.js} +2 -2
  220. package/dist/{table-ae8AvxxX.js.map → table-Dsb3MObV.js.map} +1 -1
  221. package/dist/table.cjs +1 -1
  222. package/dist/table.js +1 -1
  223. package/dist/{tabs-compatibility-K7hN1FMS.cjs → tabs-compatibility-B8L2QZNH.cjs} +2 -2
  224. package/dist/{tabs-compatibility-K7hN1FMS.cjs.map → tabs-compatibility-B8L2QZNH.cjs.map} +1 -1
  225. package/dist/{tabs-compatibility-DgqIx0_d.js → tabs-compatibility-Dx9gQzb8.js} +2 -2
  226. package/dist/{tabs-compatibility-DgqIx0_d.js.map → tabs-compatibility-Dx9gQzb8.js.map} +1 -1
  227. package/dist/tabs.cjs +1 -1
  228. package/dist/tabs.js +1 -1
  229. package/dist/tailwind.mixin-CYcf-U4R.cjs +2 -0
  230. package/dist/{tailwind.mixin-DWvvleWP.cjs.map → tailwind.mixin-CYcf-U4R.cjs.map} +1 -1
  231. package/dist/tailwind.mixin-D0pn9tte.js +43 -0
  232. package/dist/{tailwind.mixin-BPIDvfDe.js.map → tailwind.mixin-D0pn9tte.js.map} +1 -1
  233. package/dist/teleport.cjs +1 -1
  234. package/dist/teleport.js +1 -1
  235. package/dist/{textarea-Coqtz8dI.js → textarea-DRRZOHFq.js} +2 -2
  236. package/dist/{textarea-Coqtz8dI.js.map → textarea-DRRZOHFq.js.map} +1 -1
  237. package/dist/{textarea-DlxS_YbV.cjs → textarea-c08GNNdE.cjs} +2 -2
  238. package/dist/{textarea-DlxS_YbV.cjs.map → textarea-c08GNNdE.cjs.map} +1 -1
  239. package/dist/textarea.cjs +1 -1
  240. package/dist/textarea.js +1 -1
  241. package/dist/{theme-button-MLe6lqim.cjs → theme-button-C1WDEzCs.cjs} +2 -2
  242. package/dist/{theme-button-MLe6lqim.cjs.map → theme-button-C1WDEzCs.cjs.map} +1 -1
  243. package/dist/{theme-button-aGO9tJ2X.js → theme-button-CVyoV6wr.js} +2 -2
  244. package/dist/{theme-button-aGO9tJ2X.js.map → theme-button-CVyoV6wr.js.map} +1 -1
  245. package/dist/theme-button.cjs +1 -1
  246. package/dist/theme-button.js +1 -1
  247. package/dist/theme.cjs +1 -1
  248. package/dist/theme.component-hNNgXue7.cjs +3 -0
  249. package/dist/{theme.component-Bhodmw04.cjs.map → theme.component-hNNgXue7.cjs.map} +1 -1
  250. package/dist/{theme.component-DtSJBwyz.js → theme.component-rwAI-wT2.js} +112 -108
  251. package/dist/{theme.component-DtSJBwyz.js.map → theme.component-rwAI-wT2.js.map} +1 -1
  252. package/dist/theme.js +1 -1
  253. package/dist/{timezone-MNEWy4jq.cjs → timezone-B9ulERyu.cjs} +2 -2
  254. package/dist/{timezone-MNEWy4jq.cjs.map → timezone-B9ulERyu.cjs.map} +1 -1
  255. package/dist/{timezone-DRzBs7kc.js → timezone-D3qGsxoX.js} +3 -3
  256. package/dist/{timezone-DRzBs7kc.js.map → timezone-D3qGsxoX.js.map} +1 -1
  257. package/dist/{tooltip-DXepH6lG.cjs → tooltip-BcfZtAjX.cjs} +2 -2
  258. package/dist/{tooltip-DXepH6lG.cjs.map → tooltip-BcfZtAjX.cjs.map} +1 -1
  259. package/dist/{tooltip-CyHXFI4n.js → tooltip-wORJd0XU.js} +2 -2
  260. package/dist/{tooltip-CyHXFI4n.js.map → tooltip-wORJd0XU.js.map} +1 -1
  261. package/dist/tooltip.cjs +1 -1
  262. package/dist/tooltip.js +1 -1
  263. package/dist/{tree-BkqvB6rh.cjs → tree-D0gmqicQ.cjs} +2 -2
  264. package/dist/{tree-BkqvB6rh.cjs.map → tree-D0gmqicQ.cjs.map} +1 -1
  265. package/dist/{tree-BDvR_Ooq.js → tree-DbCTJGWZ.js} +2 -2
  266. package/dist/{tree-BDvR_Ooq.js.map → tree-DbCTJGWZ.js.map} +1 -1
  267. package/dist/tree.cjs +1 -1
  268. package/dist/tree.js +1 -1
  269. package/dist/{typewriter-CoOcshun.cjs → typewriter-B9CTFK02.cjs} +2 -2
  270. package/dist/{typewriter-CoOcshun.cjs.map → typewriter-B9CTFK02.cjs.map} +1 -1
  271. package/dist/{typewriter-B1uzg12Z.js → typewriter-CrSNqZl5.js} +16 -16
  272. package/dist/{typewriter-B1uzg12Z.js.map → typewriter-CrSNqZl5.js.map} +1 -1
  273. package/dist/typewriter.cjs +1 -1
  274. package/dist/typewriter.js +1 -1
  275. package/dist/{typography-CRa9BYOd.cjs → typography-846IJx5H.cjs} +2 -2
  276. package/dist/{typography-CRa9BYOd.cjs.map → typography-846IJx5H.cjs.map} +1 -1
  277. package/dist/{typography-BoHmbEy7.js → typography-B2HnnOVG.js} +2 -2
  278. package/dist/{typography-BoHmbEy7.js.map → typography-B2HnnOVG.js.map} +1 -1
  279. package/dist/typography.cjs +1 -1
  280. package/dist/typography.js +1 -1
  281. package/package.json +1 -1
  282. package/types/src/boat/boat.d.ts +3 -2
  283. package/types/src/date-range/date-range.d.ts +35 -5
  284. package/types/src/date-range/index.d.ts +1 -0
  285. package/types/src/dialog/dialog-events.d.ts +13 -0
  286. package/types/src/dialog/dialog-service.d.ts +11 -0
  287. package/types/src/dialog/dialog.component.d.ts +12 -0
  288. package/types/src/layout/flex/flex.d.ts +10 -0
  289. package/types/src/layout/grid/grid.d.ts +10 -0
  290. package/types/src/layout/layout.d.ts +10 -0
  291. package/types/src/layout/v2/flex.d.ts +9 -0
  292. package/dist/boat-D6RMa9wL.js +0 -95
  293. package/dist/boat-D6RMa9wL.js.map +0 -1
  294. package/dist/boat-DeEs020x.cjs +0 -64
  295. package/dist/boat-DeEs020x.cjs.map +0 -1
  296. package/dist/date-range-B0CSi1D6.cjs +0 -121
  297. package/dist/date-range-B0CSi1D6.cjs.map +0 -1
  298. package/dist/date-range-IrXoBUVr.js +0 -563
  299. package/dist/date-range-IrXoBUVr.js.map +0 -1
  300. package/dist/dialog-content-D5kti4-b.cjs +0 -106
  301. package/dist/dialog-content-D5kti4-b.cjs.map +0 -1
  302. package/dist/dialog-content-D9uVow4E.js +0 -343
  303. package/dist/dialog-content-D9uVow4E.js.map +0 -1
  304. package/dist/flex-DFGC-5rG.js.map +0 -1
  305. package/dist/flex-Dfk62-Dn.cjs.map +0 -1
  306. package/dist/tailwind.mixin-BPIDvfDe.js +0 -43
  307. package/dist/tailwind.mixin-DWvvleWP.cjs +0 -2
  308. package/dist/theme.component-Bhodmw04.cjs +0 -3
@@ -1 +1 @@
1
- {"version":3,"file":"autocomplete-BXf34fA-.js","sources":["../src/utils/search.ts","../src/autocomplete/autocomplete.ts"],"sourcesContent":["/**\n * Calculate similarity score between two strings.\n * Returns a value between 0 (no match) and 1 (exact match).\n * Optimized for autocomplete with prioritization of start matches and whole words.\n *\n * @param query The search query string\n * @param target The target string to compare against\n * @returns A similarity score from 0 to 1\n */\nexport function similarity(query: string, target: string): number {\n\t// Handle edge cases\n\tif (!query || !target) return 0\n\tif (query === target) return 1\n\n\t// Normalize strings for comparison\n\tconst normalizedQuery = query.toLowerCase().trim()\n\tconst normalizedTarget = target.toLowerCase().trim()\n\n\t// 1. Exact match (case-insensitive)\n\tif (normalizedQuery === normalizedTarget) return 1\n\n\t// 2. Target starts with query (highest priority for autocomplete)\n\tif (normalizedTarget.startsWith(normalizedQuery)) {\n\t\t// Give higher score to shorter targets (more precise matches)\n\t\tconst lengthRatio = normalizedQuery.length / normalizedTarget.length\n\t\treturn 0.95 + (lengthRatio * 0.05) // Score between 0.95 and 1.0\n\t}\n\n\t// 3. Word boundary match (query matches start of any word in target)\n\tconst words = normalizedTarget.split(/[\\s\\-_]+/)\n\tfor (const word of words) {\n\t\tif (word.startsWith(normalizedQuery)) {\n\t\t\t// Score based on which word matched (earlier words score higher)\n\t\t\tconst wordIndex = words.indexOf(word)\n\t\t\tconst wordPositionScore = 1 - (wordIndex / words.length) * 0.1\n\t\t\treturn 0.85 * wordPositionScore // Score between 0.765 and 0.85\n\t\t}\n\t}\n\n\t// 4. Direct substring match (query appears anywhere in target)\n\tif (normalizedTarget.includes(normalizedQuery)) {\n\t\t// Score based on position (earlier position scores higher)\n\t\tconst position = normalizedTarget.indexOf(normalizedQuery)\n\t\tconst positionScore = 1 - (position / normalizedTarget.length) * 0.2\n\t\treturn 0.7 * positionScore // Score between 0.56 and 0.7\n\t}\n\n\t// 5. Subsequence check (all query chars appear in order)\n\tif (isSubsequence(normalizedQuery, normalizedTarget)) {\n\t\treturn 0.5\n\t}\n\n\t// 6. Fuzzy matching for typos\n\t// 6a. Dice coefficient (good for similar words)\n\tconst diceScore = diceCoefficient(normalizedQuery, normalizedTarget)\n\t\n\t// 6b. Levenshtein distance (good for typos)\n\tconst maxLength = Math.max(normalizedQuery.length, normalizedTarget.length)\n\tconst levenshteinDistance = calculateLevenshtein(normalizedQuery, normalizedTarget)\n\tconst levenshteinScore = maxLength ? 1 - levenshteinDistance / maxLength : 0\n\n\t// 6c. Character frequency match (anagram-like)\n\tconst anagramScore = hasAllCharacters(normalizedQuery, normalizedTarget) ? 0.3 : 0\n\n\t// Combine fuzzy scores with weights\n\tconst fuzzyScore = Math.max(\n\t\tdiceScore * 0.4,\n\t\tlevenshteinScore * 0.4,\n\t\tanagramScore\n\t)\n\n\treturn fuzzyScore\n}\n\n// Keep the rest of the helper functions as they are...\n/**\n * Check if string 'sub' is a subsequence of string 'str'.\n * All characters in 'sub' must appear in order in 'str'.\n */\nfunction isSubsequence(sub: string, str: string): boolean {\n\tlet i = 0,\n\t\tj = 0\n\twhile (i < sub.length && j < str.length) {\n\t\tif (sub[i] === str[j]) i++\n\t\tj++\n\t}\n\treturn i === sub.length\n}\n\n/**\n * Check if all characters in 'query' are present in 'target'.\n * For example, \"aovc\" matches \"avocados\" (anagram subset matching).\n */\nfunction hasAllCharacters(query: string, target: string): boolean {\n\tconst countChars = (s: string): Record<string, number> => {\n\t\treturn s.split('').reduce(\n\t\t\t(acc, char) => {\n\t\t\t\tacc[char] = (acc[char] || 0) + 1\n\t\t\t\treturn acc\n\t\t\t},\n\t\t\t{} as Record<string, number>,\n\t\t)\n\t}\n\n\tconst queryCount = countChars(query)\n\tconst targetCount = countChars(target)\n\n\treturn Object.keys(queryCount).every(char => (targetCount[char] || 0) >= queryCount[char])\n}\n\n/**\n * Generate bigrams for a string.\n * A bigram is a sequence of two adjacent characters.\n */\nfunction getBigrams(s: string): string[] {\n\tconst bigrams = []\n\tfor (let i = 0; i < s.length - 1; i++) {\n\t\tbigrams.push(s.substring(i, i + 2))\n\t}\n\treturn bigrams\n}\n\n/**\n * Compute Dice's coefficient for two strings based on bigrams.\n * Returns a value between 0 (no similarity) and 1 (perfect match).\n */\nfunction diceCoefficient(s1: string, s2: string): number {\n\tif (s1.length < 2 || s2.length < 2) return 0\n\n\tconst bigrams1 = getBigrams(s1)\n\tconst bigrams2 = getBigrams(s2)\n\n\tlet intersection = 0\n\tconst used = new Array(bigrams2.length).fill(false)\n\n\tfor (const bigram of bigrams1) {\n\t\tfor (let i = 0; i < bigrams2.length; i++) {\n\t\t\tif (!used[i] && bigrams2[i] === bigram) {\n\t\t\t\tintersection++\n\t\t\t\tused[i] = true\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t}\n\n\treturn (2 * intersection) / (bigrams1.length + bigrams2.length)\n}\n\n/**\n * Calculate Levenshtein distance between two strings.\n */\nfunction calculateLevenshtein(a: string, b: string): number {\n\tif (a.length === 0) return b.length\n\tif (b.length === 0) return a.length\n\n\tconst matrix: number[][] = []\n\n\t// Initialize the matrix\n\tfor (let i = 0; i <= b.length; i++) {\n\t\tmatrix[i] = [i]\n\t}\n\tfor (let j = 0; j <= a.length; j++) {\n\t\tmatrix[0][j] = j\n\t}\n\n\t// Calculate distances\n\tfor (let i = 1; i <= b.length; i++) {\n\t\tfor (let j = 1; j <= a.length; j++) {\n\t\t\tconst cost = a[j - 1] === b[i - 1] ? 0 : 1\n\t\t\tmatrix[i][j] = Math.min(\n\t\t\t\tmatrix[i - 1][j] + 1, // deletion\n\t\t\t\tmatrix[i][j - 1] + 1, // insertion\n\t\t\t\tmatrix[i - 1][j - 1] + cost, // substitution\n\t\t\t)\n\t\t}\n\t}\n\n\treturn matrix[b.length][a.length]\n}\n","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 {\n BehaviorSubject,\n combineLatest,\n EMPTY,\n fromEvent,\n merge,\n of,\n Subject,\n timer\n} from 'rxjs'\nimport {\n debounceTime,\n distinctUntilChanged,\n filter,\n map,\n startWith,\n switchMap,\n take,\n takeUntil,\n tap,\n withLatestFrom\n} from 'rxjs/operators'\nimport style from './autocomplete.scss?inline'\n\n// Import the similarity function (or include it inline)\nimport { similarity } from '../utils/search'\n\nexport type SchmancyAutocompleteChangeEvent = CustomEvent<{\n value: string | string[]\n values?: string[]\n}>\n\ninterface FilteredOption {\n option: SchmancyOption\n score: number\n}\n\n@customElement('schmancy-autocomplete')\nexport default class SchmancyAutocomplete extends $LitElement(style) {\n // Public API properties\n @property({ type: Boolean }) required = false\n @property({ type: String }) placeholder = ''\n @property({ type: String, reflect: true }) label = ''\n @property({ type: String }) name = ''\n @property({ type: String }) maxHeight = '300px'\n @property({ type: Boolean }) multi = false\n @property({ type: String }) description = ''\n @property({ type: String, reflect: true }) size: InputSize = 'md'\n @property({ type: String }) autocomplete = 'on'\n @property({ type: Number }) debounceMs = 200\n @property({ type: Number }) similarityThreshold = 0.3 // Minimum similarity score to show option\n\n // Values property for multi-select mode\n @property({ type: Array })\n get values() {\n return [...this._selectedValues$.value]\n }\n set values(vals: string[]) {\n this._selectedValues$.next(Array.isArray(vals) ? [...vals] : [])\n }\n\n // Value property\n @property({ type: String, reflect: true })\n get value() {\n return this.multi \n ? this._selectedValues$.value.join(',')\n : this._selectedValue$.value\n }\n set value(val: string) {\n if (this.multi) {\n this._selectedValues$.next(\n val ? val.split(',').map(v => v.trim()).filter(Boolean) : []\n )\n } else {\n this._selectedValue$.next(val)\n }\n }\n\n // State\n @state() private _open = false\n @state() private _inputValue = ''\n @state() private _visibleOptionsCount = 0\n @state() private _hasResults = true\n\n // DOM references\n @query('#options') _listbox!: HTMLUListElement\n @query('sch-input') _input!: SchmancyInputV2\n @queryAssignedElements({ flatten: true }) private _options!: SchmancyOption[]\n private _inputElementRef = createRef<HTMLInputElement>()\n\n // RxJS Subjects\n private _selectedValue$ = new BehaviorSubject<string>('')\n private _selectedValues$ = new BehaviorSubject<string[]>([])\n private _inputValue$ = new BehaviorSubject<string>('')\n private _open$ = new BehaviorSubject<boolean>(false)\n private _options$ = new BehaviorSubject<SchmancyOption[]>([])\n private _optionSelect$ = new Subject<SchmancyOption>()\n private _documentClick$ = new Subject<MouseEvent>()\n private _checkAutofill$ = new Subject<void>()\n\n connectedCallback() {\n super.connectedCallback()\n \n if (!this.id) {\n this.id = `sch-autocomplete-${Math.random().toString(36).slice(2, 9)}`\n }\n\n this._setupAutocompleteLogic()\n this._setupDocumentClickHandler()\n this._setupAutofillDetection()\n }\n\n private _setupAutocompleteLogic() {\n // Options management pipeline\n this._options$.pipe(\n tap(options => {\n options.forEach((option, index) => {\n option.setAttribute('role', 'option')\n option.tabIndex = -1\n if (!option.id) {\n option.id = `${this.id}-option-${index}`\n }\n if (!option.hasAttribute('data-event-bound')) {\n fromEvent(option, 'click').pipe(\n tap(e => e.stopPropagation()),\n takeUntil(this.disconnecting)\n ).subscribe(() => this._optionSelect$.next(option))\n option.setAttribute('data-event-bound', 'true')\n }\n })\n }),\n takeUntil(this.disconnecting)\n ).subscribe()\n\n // Selection sync pipeline\n combineLatest([\n this._selectedValue$,\n this._selectedValues$,\n this._options$\n ]).pipe(\n tap(([selectedValue, selectedValues, options]) => {\n options.forEach(option => {\n option.selected = this.multi \n ? selectedValues.includes(option.value)\n : option.value === selectedValue\n option.setAttribute('aria-selected', String(option.selected))\n })\n }),\n takeUntil(this.disconnecting)\n ).subscribe()\n\n // Enhanced fuzzy filtering pipeline\n this._inputValue$.pipe(\n distinctUntilChanged(),\n debounceTime(this.debounceMs),\n withLatestFrom(this._options$, this._open$),\n tap(([searchTerm, options, isOpen]) => {\n if (!isOpen) return\n\n const term = searchTerm.trim()\n \n if (!term) {\n // Show all options if no search term\n options.forEach(option => {\n option.hidden = false\n option.style.order = '0' // Reset order\n })\n this._visibleOptionsCount = options.length\n this._hasResults = true\n } else {\n // Calculate similarity scores for all options\n const scoredOptions: FilteredOption[] = options.map(option => {\n // Get text to search in (prioritize label, then textContent, then value)\n const optionLabel = option.label || option.textContent || ''\n const optionValue = option.value\n \n // Calculate similarity scores for both label and value\n const labelScore = similarity(term, optionLabel)\n const valueScore = similarity(term, optionValue)\n \n // Use the higher score (prioritizing label matches)\n const score = Math.max(labelScore * 1.1, valueScore) // Slight boost for label matches\n \n return { option, score }\n })\n \n // Sort by score (highest first)\n scoredOptions.sort((a, b) => b.score - a.score)\n \n // Apply visibility and ordering\n let visibleCount = 0\n scoredOptions.forEach((item, index) => {\n const { option, score } = item\n \n // Hide options below threshold\n if (score < this.similarityThreshold) {\n option.hidden = true\n } else {\n option.hidden = false\n visibleCount++\n // Use CSS order to sort visible options by relevance\n option.style.order = String(index)\n }\n })\n \n this._visibleOptionsCount = visibleCount\n this._hasResults = visibleCount > 0\n }\n \n this._announceToScreenReader(\n this._visibleOptionsCount > 0 \n ? `${this._visibleOptionsCount} option${this._visibleOptionsCount === 1 ? '' : 's'} available.`\n : 'No results found.'\n )\n }),\n takeUntil(this.disconnecting)\n ).subscribe()\n\n // Option selection pipeline\n this._optionSelect$.pipe(\n withLatestFrom(this._selectedValue$, this._selectedValues$),\n tap(([option, _, currentValues]) => {\n if (this.multi) {\n const index = currentValues.indexOf(option.value)\n const newValues = index > -1\n ? [...currentValues.slice(0, index), ...currentValues.slice(index + 1)]\n : [...currentValues, option.value]\n this._selectedValues$.next(newValues)\n \n this._inputValue$.next('')\n this._inputValue = ''\n \n const labels = this._getSelectedLabels()\n this._announceToScreenReader(\n labels.length > 0 \n ? `Selected: ${labels.join(', ')}`\n : 'No options selected'\n )\n } else {\n this._selectedValue$.next(option.value)\n this._open$.next(false)\n this._open = false\n \n this._inputValue = option.label || option.textContent || ''\n this._inputValue$.next(this._inputValue)\n \n timer(100).pipe(\n tap(() => this._inputElementRef.value?.blur()),\n take(1)\n ).subscribe()\n \n this._announceToScreenReader(`Selected: ${option.label || option.textContent}`)\n }\n }),\n tap(() => this._fireChangeEvent()),\n takeUntil(this.disconnecting)\n ).subscribe()\n\n // Display update pipeline\n combineLatest([\n this._open$,\n this._selectedValue$,\n this._selectedValues$,\n this._options$\n ]).pipe(\n filter(() => !this._open$.value),\n tap(([, selectedValue, selectedValues, options]) => {\n if (this.multi) {\n const labels = options\n .filter(opt => selectedValues.includes(opt.value))\n .map(opt => opt.label || opt.textContent || '')\n this._inputValue = labels.join(', ')\n } else {\n const option = options.find(opt => opt.value === selectedValue)\n this._inputValue = option ? option.label || option.textContent || '' : ''\n }\n this._inputValue$.next(this._inputValue)\n }),\n takeUntil(this.disconnecting)\n ).subscribe()\n\n // Open state sync\n this._open$.pipe(\n tap(open => this._open = open),\n takeUntil(this.disconnecting)\n ).subscribe()\n }\n\n private _setupDocumentClickHandler() {\n this._documentClick$.pipe(\n filter(e => !e.composedPath().includes(this)),\n filter(e => !this._options.some(opt => e.composedPath().includes(opt))),\n filter(() => this._open),\n tap(() => {\n this._open$.next(false)\n this._updateInputDisplay()\n }),\n takeUntil(this.disconnecting)\n ).subscribe()\n\n this._open$.pipe(\n distinctUntilChanged(),\n switchMap(open => \n open \n ? timer(10).pipe(\n tap(() => document.addEventListener('click', e => this._documentClick$.next(e))),\n switchMap(() => EMPTY)\n )\n : of(null).pipe(\n tap(() => document.removeEventListener('click', e => this._documentClick$.next(e)))\n )\n ),\n takeUntil(this.disconnecting)\n ).subscribe()\n }\n\n private _setupAutofillDetection() {\n // Enhanced autofill detection with fuzzy matching\n merge(\n timer(100, 500).pipe(take(10)),\n this._checkAutofill$,\n timer(100).pipe(\n switchMap(() => \n fromEvent(window, 'load').pipe(startWith(null))\n )\n )\n ).pipe(\n map(() => {\n const schInput = this._inputElementRef.value\n if (!schInput) return null\n return schInput.shadowRoot?.querySelector('input') || \n schInput.querySelector('input') ||\n (schInput as any)._inputRef?.value\n }),\n filter(input => !!input),\n map(input => (input as HTMLInputElement).value),\n filter(value => !!value && value.trim().length > 0),\n distinctUntilChanged(),\n withLatestFrom(this._options$),\n tap(([autofilledValue, options]) => {\n console.log('Autofill detected:', autofilledValue)\n \n // Use fuzzy matching to find best matching option\n let bestMatch: SchmancyOption | null = null\n let bestScore = 0\n \n options.forEach(option => {\n const optionLabel = option.label || option.textContent || ''\n const optionValue = option.value\n \n // Calculate similarity scores\n const labelScore = similarity(autofilledValue, optionLabel)\n const valueScore = similarity(autofilledValue, optionValue)\n \n // Use the higher score\n const score = Math.max(labelScore, valueScore)\n \n // Keep track of best match\n if (score > bestScore && score >= this.similarityThreshold) {\n bestScore = score\n bestMatch = option\n }\n })\n\n if (bestMatch) {\n console.log('Found matching option:', bestMatch.value, 'with score:', bestScore)\n \n // Select the option\n if (this.multi) {\n this._selectedValues$.next([bestMatch.value])\n } else {\n this._selectedValue$.next(bestMatch.value)\n }\n \n // Update input to show the label\n const displayValue = bestMatch.label || bestMatch.textContent || ''\n this._inputValue = displayValue\n this._inputValue$.next(displayValue)\n \n // Update the actual input element\n const input = this._inputElementRef.value\n if (input) {\n input.value = displayValue\n }\n \n // Close dropdown if open\n this._open$.next(false)\n \n // Fire change event\n this._fireChangeEvent()\n \n // Announce to screen reader\n this._announceToScreenReader(`Autofilled: ${displayValue}`)\n }\n }),\n takeUntil(this.disconnecting)\n ).subscribe()\n\n // Chrome autofill animation detection\n timer(100).pipe(\n map(() => {\n const schInput = this._inputElementRef.value\n if (!schInput) return null\n return schInput.shadowRoot?.querySelector('input') || \n schInput.querySelector('input') ||\n (schInput as any)._inputRef?.value\n }),\n filter(input => !!input),\n switchMap(input => {\n return fromEvent<AnimationEvent>(input!, 'animationstart').pipe(\n filter(e => e.animationName === 'onAutoFillStart'),\n tap(() => {\n console.log('Chrome autofill animation detected')\n timer(100).pipe(\n tap(() => this._checkAutofill$.next()),\n take(1)\n ).subscribe()\n })\n )\n }),\n takeUntil(this.disconnecting)\n ).subscribe()\n }\n\n private _updateInputDisplay() {\n of(null).pipe(\n withLatestFrom(\n this._selectedValue$,\n this._selectedValues$,\n this._options$,\n this._open$\n ),\n tap(([, selectedValue, selectedValues, options, isOpen]) => {\n if (!this._inputElementRef.value) return\n\n if (!isOpen || !this.multi) {\n if (this.multi) {\n const labels = options\n .filter(opt => selectedValues.includes(opt.value))\n .map(opt => opt.label || opt.textContent || '')\n this._inputValue = labels.join(', ')\n } else {\n const option = options.find(opt => opt.value === selectedValue)\n this._inputValue = option ? option.label || option.textContent || '' : ''\n }\n this._inputValue$.next(this._inputValue)\n this._inputElementRef.value.value = this._inputValue\n }\n }),\n take(1)\n ).subscribe()\n }\n\n private _getSelectedLabels(): string[] {\n return this._options\n .filter(option => \n this.multi \n ? this._selectedValues$.value.includes(option.value)\n : option.value === this._selectedValue$.value\n )\n .map(option => option.label || option.textContent || '')\n }\n\n private _announceToScreenReader(message: string) {\n const liveRegion = this.shadowRoot?.querySelector('#live-status')\n if (liveRegion) {\n liveRegion.textContent = message\n }\n }\n\n private _fireChangeEvent() {\n const detail: SchmancyAutocompleteChangeEvent['detail'] = {\n value: this.value,\n }\n\n if (this.multi) {\n detail.values = [...this._selectedValues$.value]\n }\n\n this.dispatchEvent(\n new CustomEvent<SchmancyAutocompleteChangeEvent['detail']>('change', {\n detail,\n bubbles: true,\n composed: true,\n })\n )\n }\n\n public checkValidity(): boolean {\n if (!this.required) return true\n return this.multi \n ? this._selectedValues$.value.length > 0 \n : Boolean(this._selectedValue$.value)\n }\n\n public reportValidity(): boolean {\n if (this._inputElementRef.value) {\n return this._inputElementRef.value.reportValidity()\n }\n return this.checkValidity()\n }\n\n firstUpdated() {\n timer(200).pipe(\n tap(() => this._checkAutofill$.next()),\n take(1)\n ).subscribe()\n \n this._options$.pipe(\n filter(options => options.length > 0),\n tap(() => this._checkAutofill$.next()),\n takeUntil(this.disconnecting)\n ).subscribe()\n }\n\n render() {\n const descriptionId = `${this.id}-desc`\n\n return html`\n <div class=\"relative\">\n <!-- Screen reader live region -->\n <div id=\"live-status\" role=\"status\" aria-live=\"polite\" class=\"sr-only\"></div>\n\n <!-- Description -->\n ${this.description ? html`<div id=\"${descriptionId}\" class=\"sr-only\">${this.description}</div>` : ''}\n\n <!-- Input -->\n <slot name=\"trigger\">\n <sch-input\n .size=${this.size}\n ${ref(this._inputElementRef)}\n id=\"autocomplete-input\"\n class=\"w-full\"\n .name=${this.name || this.label?.toLowerCase().replace(/\\s+/g, '-')}\n .label=${this.label}\n .placeholder=${this.placeholder}\n .required=${this.required}\n .value=${this._inputValue}\n type=\"text\"\n autocomplete=${this.autocomplete}\n clickable\n role=\"combobox\"\n aria-autocomplete=\"list\"\n aria-haspopup=\"listbox\"\n aria-controls=\"options\"\n aria-expanded=${this._open}\n aria-describedby=${this.description ? descriptionId : undefined}\n @input=${(e: Event) => {\n const value = (e.target as HTMLInputElement).value\n this._inputValue = value\n this._inputValue$.next(value)\n }}\n @focus=${(e: FocusEvent) => {\n e.stopPropagation()\n \n const hasSelection = this.multi \n ? this._selectedValues$.value.length > 0\n : !!this._selectedValue$.value\n \n if (this.multi && !hasSelection) {\n this._inputValue = ''\n this._inputValue$.next('')\n if (this._inputElementRef.value) {\n this._inputElementRef.value.value = ''\n }\n }\n \n this._open$.next(true)\n }}\n @click=${(e: MouseEvent) => {\n e.stopPropagation()\n this._open$.next(true)\n }}\n @keydown=${(e: KeyboardEvent) => {\n this._handleKeyDown(e)\n }}\n >\n </sch-input>\n </slot>\n\n <!-- Options dropdown -->\n <ul\n id=\"options\"\n class=${classMap({\n 'absolute': true,\n 'z-[1000]': true,\n 'mt-1': true,\n 'w-full': true,\n 'rounded-md': true,\n 'shadow-md': true,\n 'overflow-auto': true,\n 'min-w-full': true,\n 'bg-surface-low': true,\n 'flex': true,\n 'flex-col': true, // Enable flexbox for ordering\n })}\n role=\"listbox\"\n aria-multiselectable=${this.multi ? 'true' : 'false'}\n aria-label=${`${this.label || 'Options'} dropdown`}\n ?hidden=${!this._open}\n style=\"max-height: ${this.maxHeight}; display: ${this._open ? 'flex' : 'none'};\"\n @slotchange=${() => {\n this._options$.next(this._options)\n timer(100).pipe(\n tap(() => this._checkAutofill$.next()),\n take(1)\n ).subscribe()\n }}\n >\n <slot></slot>\n ${!this._hasResults ? html`\n <li class=\"px-3 py-2 text-sm text-muted\">No results found</li>\n ` : ''}\n </ul>\n </div>\n\n <style>\n :host {\n display: block;\n }\n\n @keyframes onAutoFillStart {\n from {/**/}\n to {/**/}\n }\n\n sch-input::part(input):-webkit-autofill,\n sch-input input:-webkit-autofill {\n animation-name: onAutoFillStart;\n animation-duration: 1ms;\n }\n </style>\n `\n }\n\n private _handleKeyDown(_e: KeyboardEvent) {\n fromEvent<KeyboardEvent>(document, 'keydown').pipe(\n take(1),\n withLatestFrom(this._open$, this._options$),\n tap(([event, isOpen, options]) => {\n if (!isOpen && (event.key === 'ArrowDown' || event.key === 'Enter')) {\n event.preventDefault()\n this._open$.next(true)\n \n timer(10).pipe(\n tap(() => {\n const firstVisible = options.find(opt => !opt.hidden)\n firstVisible?.focus()\n }),\n take(1)\n ).subscribe()\n return\n }\n\n if (!isOpen) return\n\n const visibleOptions = options.filter(opt => !opt.hidden)\n .sort((a, b) => parseInt(a.style.order || '0') - parseInt(b.style.order || '0'))\n \n const focusedOption = visibleOptions.find(opt => opt === document.activeElement)\n const currentIndex = focusedOption ? visibleOptions.indexOf(focusedOption) : -1\n\n switch (event.key) {\n case 'Escape':\n event.preventDefault()\n this._open$.next(false)\n this._updateInputDisplay()\n this._inputElementRef.value?.focus()\n break\n\n case 'Tab':\n this._open$.next(false)\n this._updateInputDisplay()\n break\n\n case 'ArrowDown':\n event.preventDefault()\n const nextIndex = currentIndex < visibleOptions.length - 1 ? currentIndex + 1 : 0\n visibleOptions[nextIndex]?.focus()\n break\n\n case 'ArrowUp':\n event.preventDefault()\n const prevIndex = currentIndex > 0 ? currentIndex - 1 : visibleOptions.length - 1\n visibleOptions[prevIndex]?.focus()\n break\n\n case 'Home':\n event.preventDefault()\n visibleOptions[0]?.focus()\n break\n\n case 'End':\n event.preventDefault()\n visibleOptions[visibleOptions.length - 1]?.focus()\n break\n\n case 'Enter':\n case ' ':\n if (focusedOption) {\n event.preventDefault()\n this._optionSelect$.next(focusedOption)\n }\n break\n }\n })\n ).subscribe()\n }\n}\n\n\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'schmancy-autocomplete': SchmancyAutocomplete\n }\n}"],"names":["similarity","query","target","normalizedQuery","toLowerCase","trim","normalizedTarget","startsWith","length","words","split","word","indexOf","includes","sub","str","i","j","diceScore","s1","s2","bigrams1","getBigrams","bigrams2","intersection","used","Array","fill","bigram","maxLength","Math","max","levenshteinDistance","a","b","matrix","cost","min","levenshteinScore","anagramScore","countChars","s","reduce","acc","char","queryCount","targetCount","Object","keys","every","bigrams","push","substring","SchmancyAutocomplete","$LitElement","constructor","super","arguments","this","required","placeholder","label","name","maxHeight","multi","description","size","autocomplete","debounceMs","similarityThreshold","_open","_inputValue","_visibleOptionsCount","_hasResults","_inputElementRef","createRef","_selectedValue$","BehaviorSubject","_selectedValues$","_inputValue$","_open$","_options$","_optionSelect$","Subject","_documentClick$","_checkAutofill$","value","values","vals","next","isArray","join","val","map","v","filter","Boolean","connectedCallback","id","random","toString","slice","_setupAutocompleteLogic","_setupDocumentClickHandler","_setupAutofillDetection","pipe","tap","options","forEach","option","index","setAttribute","tabIndex","hasAttribute","fromEvent","e","stopPropagation","takeUntil","disconnecting","subscribe","combineLatest","selectedValue","selectedValues","selected","String","distinctUntilChanged","debounceTime","withLatestFrom","searchTerm","isOpen","term","scoredOptions","optionLabel","textContent","optionValue","labelScore","valueScore","score","sort","visibleCount","item","hidden","style","order","_announceToScreenReader","_","currentValues","newValues","labels","_getSelectedLabels","timer","blur","take","_fireChangeEvent","opt","find","open","composedPath","_options","some","_updateInputDisplay","switchMap","document","addEventListener","EMPTY","of","removeEventListener","merge","window","startWith","schInput","shadowRoot","querySelector","_inputRef","input","autofilledValue","bestMatch","bestScore","displayValue","animationName","message","liveRegion","detail","dispatchEvent","CustomEvent","bubbles","composed","reportValidity","checkValidity","firstUpdated","descriptionId","html","ref","replace","hasSelection","_handleKeyDown","classMap","absolute","flex","_e","event","key","preventDefault","firstVisible","focus","visibleOptions","parseInt","focusedOption","activeElement","currentIndex","nextIndex","prevIndex","__decorateClass","property","type","prototype","reflect","Number","state","queryAssignedElements","flatten","customElement"],"mappings":"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"}
1
+ {"version":3,"file":"autocomplete-KvR4MRDs.js","sources":["../src/utils/search.ts","../src/autocomplete/autocomplete.ts"],"sourcesContent":["/**\n * Calculate similarity score between two strings.\n * Returns a value between 0 (no match) and 1 (exact match).\n * Optimized for autocomplete with prioritization of start matches and whole words.\n *\n * @param query The search query string\n * @param target The target string to compare against\n * @returns A similarity score from 0 to 1\n */\nexport function similarity(query: string, target: string): number {\n\t// Handle edge cases\n\tif (!query || !target) return 0\n\tif (query === target) return 1\n\n\t// Normalize strings for comparison\n\tconst normalizedQuery = query.toLowerCase().trim()\n\tconst normalizedTarget = target.toLowerCase().trim()\n\n\t// 1. Exact match (case-insensitive)\n\tif (normalizedQuery === normalizedTarget) return 1\n\n\t// 2. Target starts with query (highest priority for autocomplete)\n\tif (normalizedTarget.startsWith(normalizedQuery)) {\n\t\t// Give higher score to shorter targets (more precise matches)\n\t\tconst lengthRatio = normalizedQuery.length / normalizedTarget.length\n\t\treturn 0.95 + (lengthRatio * 0.05) // Score between 0.95 and 1.0\n\t}\n\n\t// 3. Word boundary match (query matches start of any word in target)\n\tconst words = normalizedTarget.split(/[\\s\\-_]+/)\n\tfor (const word of words) {\n\t\tif (word.startsWith(normalizedQuery)) {\n\t\t\t// Score based on which word matched (earlier words score higher)\n\t\t\tconst wordIndex = words.indexOf(word)\n\t\t\tconst wordPositionScore = 1 - (wordIndex / words.length) * 0.1\n\t\t\treturn 0.85 * wordPositionScore // Score between 0.765 and 0.85\n\t\t}\n\t}\n\n\t// 4. Direct substring match (query appears anywhere in target)\n\tif (normalizedTarget.includes(normalizedQuery)) {\n\t\t// Score based on position (earlier position scores higher)\n\t\tconst position = normalizedTarget.indexOf(normalizedQuery)\n\t\tconst positionScore = 1 - (position / normalizedTarget.length) * 0.2\n\t\treturn 0.7 * positionScore // Score between 0.56 and 0.7\n\t}\n\n\t// 5. Subsequence check (all query chars appear in order)\n\tif (isSubsequence(normalizedQuery, normalizedTarget)) {\n\t\treturn 0.5\n\t}\n\n\t// 6. Fuzzy matching for typos\n\t// 6a. Dice coefficient (good for similar words)\n\tconst diceScore = diceCoefficient(normalizedQuery, normalizedTarget)\n\t\n\t// 6b. Levenshtein distance (good for typos)\n\tconst maxLength = Math.max(normalizedQuery.length, normalizedTarget.length)\n\tconst levenshteinDistance = calculateLevenshtein(normalizedQuery, normalizedTarget)\n\tconst levenshteinScore = maxLength ? 1 - levenshteinDistance / maxLength : 0\n\n\t// 6c. Character frequency match (anagram-like)\n\tconst anagramScore = hasAllCharacters(normalizedQuery, normalizedTarget) ? 0.3 : 0\n\n\t// Combine fuzzy scores with weights\n\tconst fuzzyScore = Math.max(\n\t\tdiceScore * 0.4,\n\t\tlevenshteinScore * 0.4,\n\t\tanagramScore\n\t)\n\n\treturn fuzzyScore\n}\n\n// Keep the rest of the helper functions as they are...\n/**\n * Check if string 'sub' is a subsequence of string 'str'.\n * All characters in 'sub' must appear in order in 'str'.\n */\nfunction isSubsequence(sub: string, str: string): boolean {\n\tlet i = 0,\n\t\tj = 0\n\twhile (i < sub.length && j < str.length) {\n\t\tif (sub[i] === str[j]) i++\n\t\tj++\n\t}\n\treturn i === sub.length\n}\n\n/**\n * Check if all characters in 'query' are present in 'target'.\n * For example, \"aovc\" matches \"avocados\" (anagram subset matching).\n */\nfunction hasAllCharacters(query: string, target: string): boolean {\n\tconst countChars = (s: string): Record<string, number> => {\n\t\treturn s.split('').reduce(\n\t\t\t(acc, char) => {\n\t\t\t\tacc[char] = (acc[char] || 0) + 1\n\t\t\t\treturn acc\n\t\t\t},\n\t\t\t{} as Record<string, number>,\n\t\t)\n\t}\n\n\tconst queryCount = countChars(query)\n\tconst targetCount = countChars(target)\n\n\treturn Object.keys(queryCount).every(char => (targetCount[char] || 0) >= queryCount[char])\n}\n\n/**\n * Generate bigrams for a string.\n * A bigram is a sequence of two adjacent characters.\n */\nfunction getBigrams(s: string): string[] {\n\tconst bigrams = []\n\tfor (let i = 0; i < s.length - 1; i++) {\n\t\tbigrams.push(s.substring(i, i + 2))\n\t}\n\treturn bigrams\n}\n\n/**\n * Compute Dice's coefficient for two strings based on bigrams.\n * Returns a value between 0 (no similarity) and 1 (perfect match).\n */\nfunction diceCoefficient(s1: string, s2: string): number {\n\tif (s1.length < 2 || s2.length < 2) return 0\n\n\tconst bigrams1 = getBigrams(s1)\n\tconst bigrams2 = getBigrams(s2)\n\n\tlet intersection = 0\n\tconst used = new Array(bigrams2.length).fill(false)\n\n\tfor (const bigram of bigrams1) {\n\t\tfor (let i = 0; i < bigrams2.length; i++) {\n\t\t\tif (!used[i] && bigrams2[i] === bigram) {\n\t\t\t\tintersection++\n\t\t\t\tused[i] = true\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t}\n\n\treturn (2 * intersection) / (bigrams1.length + bigrams2.length)\n}\n\n/**\n * Calculate Levenshtein distance between two strings.\n */\nfunction calculateLevenshtein(a: string, b: string): number {\n\tif (a.length === 0) return b.length\n\tif (b.length === 0) return a.length\n\n\tconst matrix: number[][] = []\n\n\t// Initialize the matrix\n\tfor (let i = 0; i <= b.length; i++) {\n\t\tmatrix[i] = [i]\n\t}\n\tfor (let j = 0; j <= a.length; j++) {\n\t\tmatrix[0][j] = j\n\t}\n\n\t// Calculate distances\n\tfor (let i = 1; i <= b.length; i++) {\n\t\tfor (let j = 1; j <= a.length; j++) {\n\t\t\tconst cost = a[j - 1] === b[i - 1] ? 0 : 1\n\t\t\tmatrix[i][j] = Math.min(\n\t\t\t\tmatrix[i - 1][j] + 1, // deletion\n\t\t\t\tmatrix[i][j - 1] + 1, // insertion\n\t\t\t\tmatrix[i - 1][j - 1] + cost, // substitution\n\t\t\t)\n\t\t}\n\t}\n\n\treturn matrix[b.length][a.length]\n}\n","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 {\n BehaviorSubject,\n combineLatest,\n EMPTY,\n fromEvent,\n merge,\n of,\n Subject,\n timer\n} from 'rxjs'\nimport {\n debounceTime,\n distinctUntilChanged,\n filter,\n map,\n startWith,\n switchMap,\n take,\n takeUntil,\n tap,\n withLatestFrom\n} from 'rxjs/operators'\nimport style from './autocomplete.scss?inline'\n\n// Import the similarity function (or include it inline)\nimport { similarity } from '../utils/search'\n\nexport type SchmancyAutocompleteChangeEvent = CustomEvent<{\n value: string | string[]\n values?: string[]\n}>\n\ninterface FilteredOption {\n option: SchmancyOption\n score: number\n}\n\n@customElement('schmancy-autocomplete')\nexport default class SchmancyAutocomplete extends $LitElement(style) {\n // Public API properties\n @property({ type: Boolean }) required = false\n @property({ type: String }) placeholder = ''\n @property({ type: String, reflect: true }) label = ''\n @property({ type: String }) name = ''\n @property({ type: String }) maxHeight = '300px'\n @property({ type: Boolean }) multi = false\n @property({ type: String }) description = ''\n @property({ type: String, reflect: true }) size: InputSize = 'md'\n @property({ type: String }) autocomplete = 'on'\n @property({ type: Number }) debounceMs = 200\n @property({ type: Number }) similarityThreshold = 0.3 // Minimum similarity score to show option\n\n // Values property for multi-select mode\n @property({ type: Array })\n get values() {\n return [...this._selectedValues$.value]\n }\n set values(vals: string[]) {\n this._selectedValues$.next(Array.isArray(vals) ? [...vals] : [])\n }\n\n // Value property\n @property({ type: String, reflect: true })\n get value() {\n return this.multi \n ? this._selectedValues$.value.join(',')\n : this._selectedValue$.value\n }\n set value(val: string) {\n if (this.multi) {\n this._selectedValues$.next(\n val ? val.split(',').map(v => v.trim()).filter(Boolean) : []\n )\n } else {\n this._selectedValue$.next(val)\n }\n }\n\n // State\n @state() private _open = false\n @state() private _inputValue = ''\n @state() private _visibleOptionsCount = 0\n @state() private _hasResults = true\n\n // DOM references\n @query('#options') _listbox!: HTMLUListElement\n @query('sch-input') _input!: SchmancyInputV2\n @queryAssignedElements({ flatten: true }) private _options!: SchmancyOption[]\n private _inputElementRef = createRef<HTMLInputElement>()\n\n // RxJS Subjects\n private _selectedValue$ = new BehaviorSubject<string>('')\n private _selectedValues$ = new BehaviorSubject<string[]>([])\n private _inputValue$ = new BehaviorSubject<string>('')\n private _open$ = new BehaviorSubject<boolean>(false)\n private _options$ = new BehaviorSubject<SchmancyOption[]>([])\n private _optionSelect$ = new Subject<SchmancyOption>()\n private _documentClick$ = new Subject<MouseEvent>()\n private _checkAutofill$ = new Subject<void>()\n\n connectedCallback() {\n super.connectedCallback()\n \n if (!this.id) {\n this.id = `sch-autocomplete-${Math.random().toString(36).slice(2, 9)}`\n }\n\n this._setupAutocompleteLogic()\n this._setupDocumentClickHandler()\n this._setupAutofillDetection()\n }\n\n private _setupAutocompleteLogic() {\n // Options management pipeline\n this._options$.pipe(\n tap(options => {\n options.forEach((option, index) => {\n option.setAttribute('role', 'option')\n option.tabIndex = -1\n if (!option.id) {\n option.id = `${this.id}-option-${index}`\n }\n if (!option.hasAttribute('data-event-bound')) {\n fromEvent(option, 'click').pipe(\n tap(e => e.stopPropagation()),\n takeUntil(this.disconnecting)\n ).subscribe(() => this._optionSelect$.next(option))\n option.setAttribute('data-event-bound', 'true')\n }\n })\n }),\n takeUntil(this.disconnecting)\n ).subscribe()\n\n // Selection sync pipeline\n combineLatest([\n this._selectedValue$,\n this._selectedValues$,\n this._options$\n ]).pipe(\n tap(([selectedValue, selectedValues, options]) => {\n options.forEach(option => {\n option.selected = this.multi \n ? selectedValues.includes(option.value)\n : option.value === selectedValue\n option.setAttribute('aria-selected', String(option.selected))\n })\n }),\n takeUntil(this.disconnecting)\n ).subscribe()\n\n // Enhanced fuzzy filtering pipeline\n this._inputValue$.pipe(\n distinctUntilChanged(),\n debounceTime(this.debounceMs),\n withLatestFrom(this._options$, this._open$),\n tap(([searchTerm, options, isOpen]) => {\n if (!isOpen) return\n\n const term = searchTerm.trim()\n \n if (!term) {\n // Show all options if no search term\n options.forEach(option => {\n option.hidden = false\n option.style.order = '0' // Reset order\n })\n this._visibleOptionsCount = options.length\n this._hasResults = true\n } else {\n // Calculate similarity scores for all options\n const scoredOptions: FilteredOption[] = options.map(option => {\n // Get text to search in (prioritize label, then textContent, then value)\n const optionLabel = option.label || option.textContent || ''\n const optionValue = option.value\n \n // Calculate similarity scores for both label and value\n const labelScore = similarity(term, optionLabel)\n const valueScore = similarity(term, optionValue)\n \n // Use the higher score (prioritizing label matches)\n const score = Math.max(labelScore * 1.1, valueScore) // Slight boost for label matches\n \n return { option, score }\n })\n \n // Sort by score (highest first)\n scoredOptions.sort((a, b) => b.score - a.score)\n \n // Apply visibility and ordering\n let visibleCount = 0\n scoredOptions.forEach((item, index) => {\n const { option, score } = item\n \n // Hide options below threshold\n if (score < this.similarityThreshold) {\n option.hidden = true\n } else {\n option.hidden = false\n visibleCount++\n // Use CSS order to sort visible options by relevance\n option.style.order = String(index)\n }\n })\n \n this._visibleOptionsCount = visibleCount\n this._hasResults = visibleCount > 0\n }\n \n this._announceToScreenReader(\n this._visibleOptionsCount > 0 \n ? `${this._visibleOptionsCount} option${this._visibleOptionsCount === 1 ? '' : 's'} available.`\n : 'No results found.'\n )\n }),\n takeUntil(this.disconnecting)\n ).subscribe()\n\n // Option selection pipeline\n this._optionSelect$.pipe(\n withLatestFrom(this._selectedValue$, this._selectedValues$),\n tap(([option, _, currentValues]) => {\n if (this.multi) {\n const index = currentValues.indexOf(option.value)\n const newValues = index > -1\n ? [...currentValues.slice(0, index), ...currentValues.slice(index + 1)]\n : [...currentValues, option.value]\n this._selectedValues$.next(newValues)\n \n this._inputValue$.next('')\n this._inputValue = ''\n \n const labels = this._getSelectedLabels()\n this._announceToScreenReader(\n labels.length > 0 \n ? `Selected: ${labels.join(', ')}`\n : 'No options selected'\n )\n } else {\n this._selectedValue$.next(option.value)\n this._open$.next(false)\n this._open = false\n \n this._inputValue = option.label || option.textContent || ''\n this._inputValue$.next(this._inputValue)\n \n timer(100).pipe(\n tap(() => this._inputElementRef.value?.blur()),\n take(1)\n ).subscribe()\n \n this._announceToScreenReader(`Selected: ${option.label || option.textContent}`)\n }\n }),\n tap(() => this._fireChangeEvent()),\n takeUntil(this.disconnecting)\n ).subscribe()\n\n // Display update pipeline\n combineLatest([\n this._open$,\n this._selectedValue$,\n this._selectedValues$,\n this._options$\n ]).pipe(\n filter(() => !this._open$.value),\n tap(([, selectedValue, selectedValues, options]) => {\n if (this.multi) {\n const labels = options\n .filter(opt => selectedValues.includes(opt.value))\n .map(opt => opt.label || opt.textContent || '')\n this._inputValue = labels.join(', ')\n } else {\n const option = options.find(opt => opt.value === selectedValue)\n this._inputValue = option ? option.label || option.textContent || '' : ''\n }\n this._inputValue$.next(this._inputValue)\n }),\n takeUntil(this.disconnecting)\n ).subscribe()\n\n // Open state sync\n this._open$.pipe(\n tap(open => this._open = open),\n takeUntil(this.disconnecting)\n ).subscribe()\n }\n\n private _setupDocumentClickHandler() {\n this._documentClick$.pipe(\n filter(e => !e.composedPath().includes(this)),\n filter(e => !this._options.some(opt => e.composedPath().includes(opt))),\n filter(() => this._open),\n tap(() => {\n this._open$.next(false)\n this._updateInputDisplay()\n }),\n takeUntil(this.disconnecting)\n ).subscribe()\n\n this._open$.pipe(\n distinctUntilChanged(),\n switchMap(open => \n open \n ? timer(10).pipe(\n tap(() => document.addEventListener('click', e => this._documentClick$.next(e))),\n switchMap(() => EMPTY)\n )\n : of(null).pipe(\n tap(() => document.removeEventListener('click', e => this._documentClick$.next(e)))\n )\n ),\n takeUntil(this.disconnecting)\n ).subscribe()\n }\n\n private _setupAutofillDetection() {\n // Enhanced autofill detection with fuzzy matching\n merge(\n timer(100, 500).pipe(take(10)),\n this._checkAutofill$,\n timer(100).pipe(\n switchMap(() => \n fromEvent(window, 'load').pipe(startWith(null))\n )\n )\n ).pipe(\n map(() => {\n const schInput = this._inputElementRef.value\n if (!schInput) return null\n return schInput.shadowRoot?.querySelector('input') || \n schInput.querySelector('input') ||\n (schInput as any)._inputRef?.value\n }),\n filter(input => !!input),\n map(input => (input as HTMLInputElement).value),\n filter(value => !!value && value.trim().length > 0),\n distinctUntilChanged(),\n withLatestFrom(this._options$),\n tap(([autofilledValue, options]) => {\n console.log('Autofill detected:', autofilledValue)\n \n // Use fuzzy matching to find best matching option\n let bestMatch: SchmancyOption | null = null\n let bestScore = 0\n \n options.forEach(option => {\n const optionLabel = option.label || option.textContent || ''\n const optionValue = option.value\n \n // Calculate similarity scores\n const labelScore = similarity(autofilledValue, optionLabel)\n const valueScore = similarity(autofilledValue, optionValue)\n \n // Use the higher score\n const score = Math.max(labelScore, valueScore)\n \n // Keep track of best match\n if (score > bestScore && score >= this.similarityThreshold) {\n bestScore = score\n bestMatch = option\n }\n })\n\n if (bestMatch) {\n console.log('Found matching option:', bestMatch.value, 'with score:', bestScore)\n \n // Select the option\n if (this.multi) {\n this._selectedValues$.next([bestMatch.value])\n } else {\n this._selectedValue$.next(bestMatch.value)\n }\n \n // Update input to show the label\n const displayValue = bestMatch.label || bestMatch.textContent || ''\n this._inputValue = displayValue\n this._inputValue$.next(displayValue)\n \n // Update the actual input element\n const input = this._inputElementRef.value\n if (input) {\n input.value = displayValue\n }\n \n // Close dropdown if open\n this._open$.next(false)\n \n // Fire change event\n this._fireChangeEvent()\n \n // Announce to screen reader\n this._announceToScreenReader(`Autofilled: ${displayValue}`)\n }\n }),\n takeUntil(this.disconnecting)\n ).subscribe()\n\n // Chrome autofill animation detection\n timer(100).pipe(\n map(() => {\n const schInput = this._inputElementRef.value\n if (!schInput) return null\n return schInput.shadowRoot?.querySelector('input') || \n schInput.querySelector('input') ||\n (schInput as any)._inputRef?.value\n }),\n filter(input => !!input),\n switchMap(input => {\n return fromEvent<AnimationEvent>(input!, 'animationstart').pipe(\n filter(e => e.animationName === 'onAutoFillStart'),\n tap(() => {\n console.log('Chrome autofill animation detected')\n timer(100).pipe(\n tap(() => this._checkAutofill$.next()),\n take(1)\n ).subscribe()\n })\n )\n }),\n takeUntil(this.disconnecting)\n ).subscribe()\n }\n\n private _updateInputDisplay() {\n of(null).pipe(\n withLatestFrom(\n this._selectedValue$,\n this._selectedValues$,\n this._options$,\n this._open$\n ),\n tap(([, selectedValue, selectedValues, options, isOpen]) => {\n if (!this._inputElementRef.value) return\n\n if (!isOpen || !this.multi) {\n if (this.multi) {\n const labels = options\n .filter(opt => selectedValues.includes(opt.value))\n .map(opt => opt.label || opt.textContent || '')\n this._inputValue = labels.join(', ')\n } else {\n const option = options.find(opt => opt.value === selectedValue)\n this._inputValue = option ? option.label || option.textContent || '' : ''\n }\n this._inputValue$.next(this._inputValue)\n this._inputElementRef.value.value = this._inputValue\n }\n }),\n take(1)\n ).subscribe()\n }\n\n private _getSelectedLabels(): string[] {\n return this._options\n .filter(option => \n this.multi \n ? this._selectedValues$.value.includes(option.value)\n : option.value === this._selectedValue$.value\n )\n .map(option => option.label || option.textContent || '')\n }\n\n private _announceToScreenReader(message: string) {\n const liveRegion = this.shadowRoot?.querySelector('#live-status')\n if (liveRegion) {\n liveRegion.textContent = message\n }\n }\n\n private _fireChangeEvent() {\n const detail: SchmancyAutocompleteChangeEvent['detail'] = {\n value: this.value,\n }\n\n if (this.multi) {\n detail.values = [...this._selectedValues$.value]\n }\n\n this.dispatchEvent(\n new CustomEvent<SchmancyAutocompleteChangeEvent['detail']>('change', {\n detail,\n bubbles: true,\n composed: true,\n })\n )\n }\n\n public checkValidity(): boolean {\n if (!this.required) return true\n return this.multi \n ? this._selectedValues$.value.length > 0 \n : Boolean(this._selectedValue$.value)\n }\n\n public reportValidity(): boolean {\n if (this._inputElementRef.value) {\n return this._inputElementRef.value.reportValidity()\n }\n return this.checkValidity()\n }\n\n firstUpdated() {\n timer(200).pipe(\n tap(() => this._checkAutofill$.next()),\n take(1)\n ).subscribe()\n \n this._options$.pipe(\n filter(options => options.length > 0),\n tap(() => this._checkAutofill$.next()),\n takeUntil(this.disconnecting)\n ).subscribe()\n }\n\n render() {\n const descriptionId = `${this.id}-desc`\n\n return html`\n <div class=\"relative\">\n <!-- Screen reader live region -->\n <div id=\"live-status\" role=\"status\" aria-live=\"polite\" class=\"sr-only\"></div>\n\n <!-- Description -->\n ${this.description ? html`<div id=\"${descriptionId}\" class=\"sr-only\">${this.description}</div>` : ''}\n\n <!-- Input -->\n <slot name=\"trigger\">\n <sch-input\n .size=${this.size}\n ${ref(this._inputElementRef)}\n id=\"autocomplete-input\"\n class=\"w-full\"\n .name=${this.name || this.label?.toLowerCase().replace(/\\s+/g, '-')}\n .label=${this.label}\n .placeholder=${this.placeholder}\n .required=${this.required}\n .value=${this._inputValue}\n type=\"text\"\n autocomplete=${this.autocomplete}\n clickable\n role=\"combobox\"\n aria-autocomplete=\"list\"\n aria-haspopup=\"listbox\"\n aria-controls=\"options\"\n aria-expanded=${this._open}\n aria-describedby=${this.description ? descriptionId : undefined}\n @input=${(e: Event) => {\n const value = (e.target as HTMLInputElement).value\n this._inputValue = value\n this._inputValue$.next(value)\n }}\n @focus=${(e: FocusEvent) => {\n e.stopPropagation()\n \n const hasSelection = this.multi \n ? this._selectedValues$.value.length > 0\n : !!this._selectedValue$.value\n \n if (this.multi && !hasSelection) {\n this._inputValue = ''\n this._inputValue$.next('')\n if (this._inputElementRef.value) {\n this._inputElementRef.value.value = ''\n }\n }\n \n this._open$.next(true)\n }}\n @click=${(e: MouseEvent) => {\n e.stopPropagation()\n this._open$.next(true)\n }}\n @keydown=${(e: KeyboardEvent) => {\n this._handleKeyDown(e)\n }}\n >\n </sch-input>\n </slot>\n\n <!-- Options dropdown -->\n <ul\n id=\"options\"\n class=${classMap({\n 'absolute': true,\n 'z-[1000]': true,\n 'mt-1': true,\n 'w-full': true,\n 'rounded-md': true,\n 'shadow-md': true,\n 'overflow-auto': true,\n 'min-w-full': true,\n 'bg-surface-low': true,\n 'flex': true,\n 'flex-col': true, // Enable flexbox for ordering\n })}\n role=\"listbox\"\n aria-multiselectable=${this.multi ? 'true' : 'false'}\n aria-label=${`${this.label || 'Options'} dropdown`}\n ?hidden=${!this._open}\n style=\"max-height: ${this.maxHeight}; display: ${this._open ? 'flex' : 'none'};\"\n @slotchange=${() => {\n this._options$.next(this._options)\n timer(100).pipe(\n tap(() => this._checkAutofill$.next()),\n take(1)\n ).subscribe()\n }}\n >\n <slot></slot>\n ${!this._hasResults ? html`\n <li class=\"px-3 py-2 text-sm text-muted\">No results found</li>\n ` : ''}\n </ul>\n </div>\n\n <style>\n :host {\n display: block;\n }\n\n @keyframes onAutoFillStart {\n from {/**/}\n to {/**/}\n }\n\n sch-input::part(input):-webkit-autofill,\n sch-input input:-webkit-autofill {\n animation-name: onAutoFillStart;\n animation-duration: 1ms;\n }\n </style>\n `\n }\n\n private _handleKeyDown(_e: KeyboardEvent) {\n fromEvent<KeyboardEvent>(document, 'keydown').pipe(\n take(1),\n withLatestFrom(this._open$, this._options$),\n tap(([event, isOpen, options]) => {\n if (!isOpen && (event.key === 'ArrowDown' || event.key === 'Enter')) {\n event.preventDefault()\n this._open$.next(true)\n \n timer(10).pipe(\n tap(() => {\n const firstVisible = options.find(opt => !opt.hidden)\n firstVisible?.focus()\n }),\n take(1)\n ).subscribe()\n return\n }\n\n if (!isOpen) return\n\n const visibleOptions = options.filter(opt => !opt.hidden)\n .sort((a, b) => parseInt(a.style.order || '0') - parseInt(b.style.order || '0'))\n \n const focusedOption = visibleOptions.find(opt => opt === document.activeElement)\n const currentIndex = focusedOption ? visibleOptions.indexOf(focusedOption) : -1\n\n switch (event.key) {\n case 'Escape':\n event.preventDefault()\n this._open$.next(false)\n this._updateInputDisplay()\n this._inputElementRef.value?.focus()\n break\n\n case 'Tab':\n this._open$.next(false)\n this._updateInputDisplay()\n break\n\n case 'ArrowDown':\n event.preventDefault()\n const nextIndex = currentIndex < visibleOptions.length - 1 ? currentIndex + 1 : 0\n visibleOptions[nextIndex]?.focus()\n break\n\n case 'ArrowUp':\n event.preventDefault()\n const prevIndex = currentIndex > 0 ? currentIndex - 1 : visibleOptions.length - 1\n visibleOptions[prevIndex]?.focus()\n break\n\n case 'Home':\n event.preventDefault()\n visibleOptions[0]?.focus()\n break\n\n case 'End':\n event.preventDefault()\n visibleOptions[visibleOptions.length - 1]?.focus()\n break\n\n case 'Enter':\n case ' ':\n if (focusedOption) {\n event.preventDefault()\n this._optionSelect$.next(focusedOption)\n }\n break\n }\n })\n ).subscribe()\n }\n}\n\n\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'schmancy-autocomplete': SchmancyAutocomplete\n }\n}"],"names":["similarity","query","target","normalizedQuery","toLowerCase","trim","normalizedTarget","startsWith","length","words","split","word","indexOf","includes","sub","str","i","j","diceScore","s1","s2","bigrams1","getBigrams","bigrams2","intersection","used","Array","fill","bigram","maxLength","Math","max","levenshteinDistance","a","b","matrix","cost","min","levenshteinScore","anagramScore","countChars","s","reduce","acc","char","queryCount","targetCount","Object","keys","every","bigrams","push","substring","SchmancyAutocomplete","$LitElement","constructor","super","arguments","this","required","placeholder","label","name","maxHeight","multi","description","size","autocomplete","debounceMs","similarityThreshold","_open","_inputValue","_visibleOptionsCount","_hasResults","_inputElementRef","createRef","_selectedValue$","BehaviorSubject","_selectedValues$","_inputValue$","_open$","_options$","_optionSelect$","Subject","_documentClick$","_checkAutofill$","value","values","vals","next","isArray","join","val","map","v","filter","Boolean","connectedCallback","id","random","toString","slice","_setupAutocompleteLogic","_setupDocumentClickHandler","_setupAutofillDetection","pipe","tap","options","forEach","option","index","setAttribute","tabIndex","hasAttribute","fromEvent","e","stopPropagation","takeUntil","disconnecting","subscribe","combineLatest","selectedValue","selectedValues","selected","String","distinctUntilChanged","debounceTime","withLatestFrom","searchTerm","isOpen","term","scoredOptions","optionLabel","textContent","optionValue","labelScore","valueScore","score","sort","visibleCount","item","hidden","style","order","_announceToScreenReader","_","currentValues","newValues","labels","_getSelectedLabels","timer","blur","take","_fireChangeEvent","opt","find","open","composedPath","_options","some","_updateInputDisplay","switchMap","document","addEventListener","EMPTY","of","removeEventListener","merge","window","startWith","schInput","shadowRoot","querySelector","_inputRef","input","autofilledValue","bestMatch","bestScore","displayValue","animationName","message","liveRegion","detail","dispatchEvent","CustomEvent","bubbles","composed","reportValidity","checkValidity","firstUpdated","descriptionId","html","ref","replace","hasSelection","_handleKeyDown","classMap","absolute","flex","_e","event","key","preventDefault","firstVisible","focus","visibleOptions","parseInt","focusedOption","activeElement","currentIndex","nextIndex","prevIndex","__decorateClass","property","type","prototype","reflect","Number","state","queryAssignedElements","flatten","customElement"],"mappings":";;;;;;;;;AASgB,SAAAA,EAAWC,GAAeC,GAEzC;AAAA,MAAA,CAAKD,MAAUC,EAAe,QAAA;AAC1B,MAAAD,MAAUC,EAAe,QAAA;AAG7B,QAAMC,IAAkBF,EAAMG,YAAAA,EAAcC,QACtCC,IAAmBJ,EAAOE,cAAcC,KAG1C;AAAA,MAAAF,MAAoBG,EAAyB,QAAA;AAG7C,MAAAA,EAAiBC,WAAWJ,CAAkB;AAGjD,WAAO,OAAsB,QADTA,EAAgBK,SAASF,EAAiBE;AAKzD,QAAAC,IAAQH,EAAiBI,MAAM,UAAA;AACrC,aAAWC,KAAQF,EACd,KAAAE,EAAKJ,WAAWJ;AAInB,WAAO,QADmB,IADRM,EAAMG,QAAQD,CAAAA,IACWF,EAAMD,SAAU;AAMzD,MAAAF,EAAiBO,SAASV,CAAAA;AAI7B,WAAO,OADe,IADLG,EAAiBM,QAAQT,KACJG,EAAiBE,SAAU;AAK9D,MA+BL,SAAuBM,GAAaC,GAAAA;AAC/B,QAAAC,IAAI,GACPC,IAAI;AACL,WAAOD,IAAIF,EAAIN,UAAUS,IAAIF,EAAIP,SAC5BM,CAAAA,EAAIE,OAAOD,EAAIE,CAAAA,KAAID,KACvBC;AAED,WAAOD,MAAMF,EAAIN;AAAAA,EAClB,EAvCmBL,GAAiBG,CAC3B,EAAA,QAAA;AAKF,QAAAY,IAwEP,SAAyBC,GAAYC;AACpC,QAAID,EAAGX,SAAS,KAAKY,EAAGZ,SAAS,EAAU,QAAA;AAErC,UAAAa,IAAWC,EAAWH,CACtBI,GAAAA,IAAWD,EAAWF,CAE5B;AAAA,QAAII,IAAe;AACnB,UAAMC,IAAO,IAAIC,MAAMH,EAASf,QAAQmB,KAAK,EAAA;AAE7C,eAAWC,KAAUP,EACpB,UAASL,IAAI,GAAGA,IAAIO,EAASf,QAAQQ,IACpC,KAAA,CAAKS,EAAKT,CAAMO,KAAAA,EAASP,CAAOY,MAAAA,GAAQ;AACvCJ,MAAAA,KACAC,EAAKT,CAAK,IAAA;AACV;AAAA,IAAA;AAKH,WAAQ,IAAIQ,KAAiBH,EAASb,SAASe,EAASf;AAAAA,EACzD,EA5FmCL,GAAiBG,IAG7CuB,IAAYC,KAAKC,IAAI5B,EAAgBK,QAAQF,EAAiBE,MAAAA,GAC9DwB,IA6FP,SAA8BC,GAAWC,GACxC;AAAA,QAAID,EAAEzB,WAAW,EAAG,QAAO0B,EAAE1B;AAC7B,QAAI0B,EAAE1B,WAAW,EAAG,QAAOyB,EAAEzB;AAE7B,UAAM2B,IAAqB;AAG3B,aAASnB,IAAI,GAAGA,KAAKkB,EAAE1B,QAAQQ,IACvBmB,CAAAA,EAAAnB,KAAK,CAACA,CAAAA;AAEd,aAASC,IAAI,GAAGA,KAAKgB,EAAEzB,QAAQS,IACvBkB,CAAAA,EAAA,GAAGlB,CAAKA,IAAAA;AAIhB,aAASD,IAAI,GAAGA,KAAKkB,EAAE1B,QAAQQ,IAC9B,UAASC,IAAI,GAAGA,KAAKgB,EAAEzB,QAAQS,KAAK;AAC7B,YAAAmB,IAAOH,EAAEhB,IAAI,CAAOiB,MAAAA,EAAElB,IAAI,CAAK,IAAA,IAAI;AACzCmB,MAAAA,EAAOnB,CAAAA,EAAGC,CAAKa,IAAAA,KAAKO,IACnBF,EAAOnB,IAAI,CAAGC,EAAAA,CAAAA,IAAK,GACnBkB,EAAOnB,CAAAA,EAAGC,IAAI,CAAK,IAAA,GACnBkB,EAAOnB,IAAI,CAAA,EAAGC,IAAI,CAAKmB,IAAAA,CAAAA;AAAAA,IACxB;AAIF,WAAOD,EAAOD,EAAE1B,MAAQyB,EAAAA,EAAEzB,MAC3B;AAAA,EAAA,EAxHkDL,GAAiBG,IAC5DgC,IAAmBT,IAAY,IAAIG,IAAsBH,IAAY,GAGrEU,IA+BP,SAA0BtC,GAAeC,GAClC;AAAA,UAAAsC,IAAcC,CAAAA,MACZA,EAAE/B,MAAM,EAAIgC,EAAAA,OAClB,CAACC,GAAKC,OACLD,EAAIC,CAAAA,KAASD,EAAIC,CAAAA,KAAS,KAAK,GACxBD,IAER,CAAA,CAIIE,GAAAA,IAAaL,EAAWvC,CACxB6C,GAAAA,IAAcN,EAAWtC,CAE/B;AAAA,WAAO6C,OAAOC,KAAKH,CAAAA,EAAYI,MAAML,CAAAA,OAASE,EAAYF,MAAS,MAAMC,EAAWD,CACrF,CAAA;AAAA,EAAA,EA9CuCzC,GAAiBG,KAAoB,MAAM;AAS1E,SANYwB,KAAKC,IACX,MAAZb,GACmB,MAAnBoB,GACAC,CAAAA;AAIF;AA0CA,SAASjB,EAAWmB,GACnB;AAAA,QAAMS,IAAU,CAChB;AAAA,WAASlC,IAAI,GAAGA,IAAIyB,EAAEjC,SAAS,GAAGQ,IACjCkC,CAAAA,EAAQC,KAAKV,EAAEW,UAAUpC,GAAGA,IAAI,CAE1B,CAAA;AAAA,SAAAkC;AACR;;;;;AC1EA,IAAqBG,IAArB,cAAkDC;EAAlD,cAAAC;AAAAC,UAAAC,GAAAA,SAAAA,GAE4CC,KAAAC,WAAAA,IACED,KAAAE,cAAA,IACSF,KAAAG,QAAA,IAChBH,KAAAI,OAAA,IACKJ,KAAAK,YAAA,SACHL,KAAAM,QAAA,IACKN,KAAAO,cAAA,IACmBP,KAAAQ,OAAA,MAClBR,KAAAS,eAAA,MACFT,KAAAU,aAAA,KACSV,KAAAW,sBAAA,KA6BzCX,KAAQY,YACRZ,KAAQa,cAAc,IACtBb,KAAQc,uBAAuB,GAC/Bd,KAAQe,kBAMjBf,KAAQgB,mBAAmBC,EAGnBjB,GAAAA,KAAAkB,kBAAkB,IAAIC,EAAwB,EAAA,GACtDnB,KAAQoB,mBAAmB,IAAID,EAA0B,CACjDnB,CAAAA,GAAAA,KAAAqB,eAAe,IAAIF,EAAwB,KAC3CnB,KAAAsB,SAAS,IAAIH,EAAyB,EAAA,GAC9CnB,KAAQuB,YAAY,IAAIJ,EAAkC,CAClDnB,CAAAA,GAAAA,KAAAwB,iBAAiB,IAAIC,KACrBzB,KAAA0B,kBAAkB,IAAID,KACtBzB,KAAA2B,kBAAkB,IAAIF;AAAAA,EAAc;AAAA,EA5C5C,IAAA;AACI,WAAO,CAAA,GAAIzB,KAAKoB,iBAAiBQ,KAAAA;AAAAA,EAAK;AAAA,EAE1C,IAAIC,OAAOC;AACF9B,SAAAoB,iBAAiBW,KAAK/D,MAAMgE,QAAQF,CAAAA,IAAQ,IAAIA,CAAQ,IAAA,CAAA,CAAA;AAAA,EAAE;AAAA,EAKnE,IAAIF,QAAAA;AACO,WAAA5B,KAAKM,QACNN,KAAKoB,iBAAiBQ,MAAMK,KAAK,OACjCjC,KAAKkB,gBAAgBU;AAAAA,EAAA;AAAA,EAE/B,IAAA,MAAUM,GACFlC;AAAAA,SAAKM,QACLN,KAAKoB,iBAAiBW,KAClBG,IAAMA,EAAIlF,MAAM,KAAKmF,IAAIC,OAAKA,EAAEzF,KAAQ0F,CAAAA,EAAAA,OAAOC,WAAW,CAGzDtC,CAAAA,IAAAA,KAAAkB,gBAAgBa,KAAKG,CAAAA;AAAAA,EAC9B;AAAA,EAyBJ,oBAAAK;AACIzC,UAAMyC,kBAEDvC,GAAAA,KAAKwC,OACDxC,KAAAwC,KAAK,oBAAoBpE,KAAKqE,OAASC,EAAAA,SAAS,IAAIC,MAAM,GAAG,OAGtE3C,KAAK4C,wBAAAA,GACL5C,KAAK6C,2BACL7C,GAAAA,KAAK8C;EAAwB;AAAA,EAGzB;AAEJ9C,SAAKuB,UAAUwB,KACXC,EAAeC,CAAAA,MAAAA;AACHA,MAAAA,EAAAC,QAAQ,CAACC,GAAQC;AACdD,UAAAE,aAAa,QAAQ,QAC5BF,GAAAA,EAAOG,eACFH,EAAOX,OACRW,EAAOX,KAAK,GAAGxC,KAAKwC,EAAAA,WAAaY,MAEhCD,EAAOI,aAAa,wBACXC,EAAAL,GAAQ,OAASJ,EAAAA,KACvBC,EAAIS,CAAAA,MAAKA,EAAEC,gBACXC,CAAAA,GAAAA,EAAU3D,KAAK4D,aACjBC,CAAAA,EAAAA,UAAU,MAAM7D,KAAKwB,eAAeO,KAAKoB,CAAAA,CAAAA,GACpCA,EAAAE,aAAa,oBAAoB,MAAM;AAAA,MAAA,CAAA;AAAA,IAErD,IAELM,EAAU3D,KAAK4D,gBACjBC,UAGYC,GAAAA,EAAA,CACV9D,KAAKkB,iBACLlB,KAAKoB,kBACLpB,KAAKuB,SAAAA,CAAAA,EACNwB,KACCC,EAAI,CAAA,CAAEe,GAAeC,GAAgBf,CAAAA,MAAAA;AACjCA,MAAAA,EAAQC,QAAkBC,OAAAA;AACfA,UAAAc,WAAWjE,KAAKM,QACjB0D,EAAe7G,SAASgG,EAAOvB,KAC/BuB,IAAAA,EAAOvB,UAAUmC,GACvBZ,EAAOE,aAAa,iBAAiBa,OAAOf,EAAOc;MAAS,CAC/D;AAAA,IAAA,CAAA,GAELN,EAAU3D,KAAK4D,aAAAA,CAAAA,EACjBC,UAGF7D,GAAAA,KAAKqB,aAAa0B,KACdoB,KACAC,EAAapE,KAAKU,aAClB2D,EAAerE,KAAKuB,WAAWvB,KAAKsB,MAAAA,GACpC0B,EAAI,CAAA,CAAEsB,GAAYrB,GAASsB;AACvB,UAAKA,CAAAA,EAAQ;AAEP,YAAAC,IAAOF,EAAW3H,KAExB;AAAA,UAAK6H,GAQE;AAEG,cAAAC,IAAkCxB,EAAQd,IAAcgB,CAAAA;AAE1D,gBAAMuB,IAAcvB,EAAOhD,SAASgD,EAAOwB,eAAe,IACpDC,IAAczB,EAAOvB,OAGrBiD,IAAavI,EAAWkI,GAAME,CAC9BI,GAAAA,IAAaxI,EAAWkI,GAAMI,CAAAA;AAK7B,iBAAA,EAAEzB,QAAQ4B,GAAAA,OAFH3G,KAAKC,IAAiB,MAAbwG,GAAkBC,CAElB,EAAA;AAAA,QAAA,CAAA;AAI3BL,QAAAA,EAAcO,KAAK,CAACzG,GAAGC,MAAMA,EAAEuG,QAAQxG,EAAEwG,KAGzC;AAAA,YAAIE,IAAe;AACLR,QAAAA,EAAAvB,QAAQ,CAACgC,GAAM9B;AACnB,gBAAAD,EAAAA,QAAEA,GAAQ4B,OAAAA,EAAAA,IAAUG;AAGtBH,UAAAA,IAAQ/E,KAAKW,sBACbwC,EAAOgC,SAAAA,MAEPhC,EAAOgC,SAAS,IAChBF,KAEO9B,EAAAiC,MAAMC,QAAQnB,OAAOd,CAAAA;AAAAA,QAAK,IAIzCpD,KAAKc,uBAAuBmE,GAC5BjF,KAAKe,cAAckE,IAAe;AAAA,MAAA,MA3ClChC,CAAAA,EAAQC,QAAkBC,CAAAA,MAAAA;AACtBA,QAAAA,EAAOgC,SAAS,IAChBhC,EAAOiC,MAAMC,QAAQ;AAAA,MAAA,IAEzBrF,KAAKc,uBAAuBmC,EAAQnG,QACpCkD,KAAKe;AAyCJf,WAAAsF,wBACDtF,KAAKc,uBAAuB,IACtB,GAAGd,KAAKc,8BAA8Bd,KAAKc,yBAAyB,IAAI,KAAK,GAAA,gBAC7E,mBACV;AAAA,IAAA,CAAA,GAEJ6C,EAAU3D,KAAK4D,gBACjBC,UAGF7D,GAAAA,KAAKwB,eAAeuB,KAChBsB,EAAerE,KAAKkB,iBAAiBlB,KAAKoB,gBAC1C4B,GAAAA,EAAI,CAAEG,CAAAA,GAAQoC,GAAGC,CACb,MAAA;AAAA,UAAIxF,KAAKM,OAAO;AACZ,cAAM8C,IAAQoC,EAActI,QAAQiG,EAAOvB,KACrC6D,GAAAA,IAAYrC,SACZ,CAAA,GAAIoC,EAAc7C,MAAM,GAAGS,OAAWoC,EAAc7C,MAAMS,IAAQ,CAClE,CAAA,IAAA,CAAA,GAAIoC,GAAerC,EAAOvB,KAAAA;AAC3B5B,aAAAoB,iBAAiBW,KAAK0D,IAEtBzF,KAAAqB,aAAaU,KAAK,EAAA,GACvB/B,KAAKa,cAAc;AAEb,cAAA6E,IAAS1F,KAAK2F,mBACf3F;AAAAA,aAAAsF,wBACDI,EAAO5I,SAAS,IACV,aAAa4I,EAAOzD,KAAK,IACzB,CAAA,KAAA,qBAAA;AAAA,MACV,MAEKjC,MAAAkB,gBAAgBa,KAAKoB,EAAOvB,KAAAA,GAC5B5B,KAAAsB,OAAOS,KAAK,EAAA,GACjB/B,KAAKY,QAAQ,IAEbZ,KAAKa,cAAcsC,EAAOhD,SAASgD,EAAOwB,eAAe,IACpD3E,KAAAqB,aAAaU,KAAK/B,KAAKa,WAAAA,GAE5B+E,EAAM,GAAK7C,EAAAA,KACPC,EAAI,MAAMhD;;AAAAA,gBAAAA,IAAAA,KAAKgB,iBAAiBY,UAAtB5B,gBAAAA,EAA6B6F;AAAAA,OACvCC,GAAAA,EAAK,IACPjC,UAEF7D,GAAAA,KAAKsF,wBAAwB,aAAanC,EAAOhD,SAASgD,EAAOwB,WAAAA,EAAAA;AAAAA,IAAa,CAGtF3B,GAAAA,EAAI,MAAMhD,KAAK+F,qBACfpC,EAAU3D,KAAK4D,gBACjBC,UAGYC,GAAAA,EAAA,CACV9D,KAAKsB,QACLtB,KAAKkB,iBACLlB,KAAKoB,kBACLpB,KAAKuB,SACNwB,CAAAA,EAAAA,KACCV,EAAO,MAAOrC,CAAAA,KAAKsB,OAAOM,KAC1BoB,GAAAA,EAAI,EAAI,EAAAe,GAAeC,GAAgBf,CACnC,MAAA;AAAA,UAAIjD,KAAKM,OAAO;AACZ,cAAMoF,IAASzC,EACVZ,OAAc2D,CAAAA,MAAAhC,EAAe7G,SAAS6I,EAAIpE,KAC1CO,CAAAA,EAAAA,IAAW6D,CAAAA,MAAAA,EAAI7F,SAAS6F,EAAIrB,eAAe,EAAA;AAC3C3E,aAAAa,cAAc6E,EAAOzD,KAAK,IAAI;AAAA,MAAA,OAChC;AACH,cAAMkB,IAASF,EAAQgD,KAAYD,CAAAA,MAAAA,EAAIpE,UAAUmC,CACjD/D;AAAAA,aAAKa,cAAcsC,MAASA,EAAOhD,SAASgD,EAAOwB,gBAAoB;AAAA,MAAA;AAEtE3E,WAAAqB,aAAaU,KAAK/B,KAAKa;IAAW,CAE3C8C,GAAAA,EAAU3D,KAAK4D,aACjBC,CAAAA,EAAAA,UAAAA,GAGF7D,KAAKsB,OAAOyB,KACRC,EAAIkD,CAAAA,MAAQlG,KAAKY,QAAQsF,IACzBvC,EAAU3D,KAAK4D,gBACjBC,UAAU;AAAA,EAAA;AAAA,EAGR,6BACJ7D;AAAAA,SAAK0B,gBAAgBqB,KACjBV,UAAaoB,EAAE0C,aAAehJ,EAAAA,SAAS6C,QACvCqC,EAAOoB,CAAAA,MAAAA,CAAMzD,KAAKoG,SAASC,KAAYL,CAAAA,MAAAvC,EAAE0C,aAAehJ,EAAAA,SAAS6I,MACjE3D,EAAO,MAAMrC,KAAKY,KAClBoC,GAAAA,EAAI;AACKhD,WAAAsB,OAAOS,OACZ/B,GAAAA,KAAKsG;IAAoB,CAE7B3C,GAAAA,EAAU3D,KAAK4D,aACjBC,CAAAA,EAAAA,UAAAA,GAEF7D,KAAKsB,OAAOyB,KACRoB,EACAoC,GAAAA,EACIL,CAAAA,MAAAA,IACMN,EAAM,EAAI7C,EAAAA,KACRC,EAAI,MAAMwD,SAASC,iBAAiB,SAAchD,OAAAzD,KAAK0B,gBAAgBK,KAAK0B,CAAAA,CAAAA,CAAAA,GAC5E8C,EAAU,MAAMG,CAAAA,CAAAA,IAElBC,EAAG,IAAM5D,EAAAA,KACPC,EAAI,MAAMwD,SAASI,oBAAoB,SAAcnD,OAAAzD,KAAK0B,gBAAgBK,KAAK0B,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,GAG3FE,EAAU3D,KAAK4D,aAAAA,CAAAA,EACjBC;EAAU;AAAA,EAGR;AAEJgD,IAAAA,EACIjB,EAAM,KAAK,GAAK7C,EAAAA,KAAK+C,EAAK,EAC1B9F,CAAAA,GAAAA,KAAK2B,iBACLiE,EAAM,GAAA,EAAK7C,KACPwD,EAAU,MACN/C,EAAUsD,QAAQ,MAAQ/D,EAAAA,KAAKgE,EAAU,IAGnDhE,CAAAA,CAAAA,CAAAA,CAAAA,EAAAA,KACEZ,EAAI,MACM;;AAAA,YAAA6E,IAAWhH,KAAKgB,iBAAiBY;AACnC,aAACoF,MACEA,IAAAA,EAASC,eAATD,gBAAAA,EAAqBE,cAAc,aACnCF,EAASE,cAAc,OAAA,OACtBF,IAAAA,EAAiBG,cAAjBH,gBAAAA,EAA4BpF,SAHd;AAAA,IAGc,IAExCS,EAAO+E,CAAAA,MAAAA,CAAAA,CAAWA,IAClBjF,EAAciF,CAAAA,MAAAA,EAA2BxF,KACzCS,GAAAA,WAAkBT,KAASA,EAAMjF,OAAOG,SAAS,CAAA,GACjDqH,KACAE,EAAerE,KAAKuB,YACpByB,EAAI,CAAA,CAAEqE,GAAiBpE,CAAAA,MAAAA;AAInB,UAAIqE,IAAmC,MACnCC,IAAY;AAoBhB,UAlBAtE,EAAQC,QAAkBC,CAAAA;AACtB,cAAMuB,IAAcvB,EAAOhD,SAASgD,EAAOwB,eAAe,IACpDC,IAAczB,EAAOvB,OAGrBiD,IAAavI,EAAW+K,GAAiB3C,CAAAA,GACzCI,IAAaxI,EAAW+K,GAAiBzC,CAAAA,GAGzCG,IAAQ3G,KAAKC,IAAIwG,GAAYC,CAG/BC;AAAAA,QAAAA,IAAQwC,KAAaxC,KAAS/E,KAAKW,wBACvB4G,IAAAxC,GACAuC,IAAAnE;AAAAA,MAAA,CAAA,GAIhBmE,GAAW;AAIPtH,aAAKM,QACLN,KAAKoB,iBAAiBW,KAAK,CAACuF,EAAU1F,KAAAA,CAAAA,IAEjC5B,KAAAkB,gBAAgBa,KAAKuF,EAAU1F,KAIxC;AAAA,cAAM4F,IAAeF,EAAUnH,SAASmH,EAAU3C,eAAe;AACjE3E,aAAKa,cAAc2G,GACdxH,KAAAqB,aAAaU,KAAKyF,CAAAA;AAGjB,cAAAJ,IAAQpH,KAAKgB,iBAAiBY;AAChCwF,QAAAA,MACAA,EAAMxF,QAAQ4F,IAIbxH,KAAAsB,OAAOS,KAAK,EAAA,GAGjB/B,KAAK+F,iBAGA/F,GAAAA,KAAAsF,wBAAwB,eAAekC,CAAAA,EAAAA;AAAAA,MAAc;AAAA,QAGlE7D,EAAU3D,KAAK4D,gBACjBC,UAGF+B,GAAAA,EAAM,KAAK7C,KACPZ,EAAI,MACM;;AAAA,YAAA6E,IAAWhH,KAAKgB,iBAAiBY;AACnC,aAACoF,MACEA,IAAAA,EAASC,eAATD,gBAAAA,EAAqBE,cAAc,aACnCF,EAASE,cAAc,OACtBF,OAAAA,IAAAA,EAAiBG,cAAjBH,gBAAAA,EAA4BpF,SAHd;AAAA,IAGc,IAExCS,EAAO+E,CAAAA,MAAAA,CAAAA,CAAWA,IAClBb,EAAmBa,CAAAA,MACR5D,EAA0B4D,GAAQ,gBAAkBrE,EAAAA,KACvDV,EAAOoB,OAAKA,EAAEgE,kBAAkB,iBAChCzE,GAAAA,EAAI;AAEA4C,MAAAA,EAAM,GAAA,EAAK7C,KACPC,EAAI,MAAMhD,KAAK2B,gBAAgBI,KAAAA,CAAAA,GAC/B+D,EAAK,CACPjC,CAAAA,EAAAA,UAAAA;AAAAA,IAAU,MAIxBF,EAAU3D,KAAK4D,aACjBC,CAAAA,EAAAA,UAAAA;AAAAA,EAAU;AAAA,EAGR;AACJ8C,IAAAA,EAAG,IAAA,EAAM5D,KACLsB,EACIrE,KAAKkB,iBACLlB,KAAKoB,kBACLpB,KAAKuB,WACLvB,KAAKsB,MAAAA,GAET0B,EAAI,CAAC,CAAA,EAAGe,GAAeC,GAAgBf,GAASsB;AACxC,UAACvE,KAAKgB,iBAAiBY,UAAAA,CAEtB2C,KAAWvE,CAAAA,KAAKM,QAAO;AACxB,YAAIN,KAAKM,OAAO;AACZ,gBAAMoF,IAASzC,EACVZ,OAAc2D,CAAAA,MAAAhC,EAAe7G,SAAS6I,EAAIpE,KAAAA,CAAAA,EAC1CO,IAAW6D,CAAAA,MAAAA,EAAI7F,SAAS6F,EAAIrB,eAAe,EAC3C3E;AAAAA,eAAAa,cAAc6E,EAAOzD,KAAK,IAAI;AAAA,QAAA,OAChC;AACH,gBAAMkB,IAASF,EAAQgD,KAAYD,CAAAA,MAAAA,EAAIpE,UAAUmC,CAAAA;AACjD/D,eAAKa,cAAcsC,MAASA,EAAOhD,SAASgD,EAAOwB,gBAAoB;AAAA,QAAA;AAEtE3E,aAAAqB,aAAaU,KAAK/B,KAAKa,cACvBb,KAAAgB,iBAAiBY,MAAMA,QAAQ5B,KAAKa;AAAAA,MAAA;AAAA,IAGjDiF,CAAAA,GAAAA,EAAK,IACPjC,UAAU;AAAA,EAAA;AAAA,EAGR,qBACJ;AAAA,WAAO7D,KAAKoG,SACP/D,OACGc,CAAAA,MAAAnD,KAAKM,QACCN,KAAKoB,iBAAiBQ,MAAMzE,SAASgG,EAAOvB,KAC5CuB,IAAAA,EAAOvB,UAAU5B,KAAKkB,gBAAgBU,OAE/CO,IAAIgB,CAAAA,MAAUA,EAAOhD,SAASgD,EAAOwB,eAAe;EAAE;AAAA,EAGvD,wBAAwB+C,GAC5B;;AAAA,UAAMC,KAAa3H,IAAAA,KAAKiH,eAALjH,gBAAAA,EAAiBkH,cAAc;AAC9CS,IAAAA,MACAA,EAAWhD,cAAc+C;AAAAA,EAC7B;AAAA,EAGI,mBACJ;AAAA,UAAME,IAAoD,EACtDhG,OAAO5B,KAAK4B,MAGZ5B;AAAAA,SAAKM,UACLsH,EAAO/F,SAAS,IAAI7B,KAAKoB,iBAAiBQ,SAGzC5B,KAAA6H,cACD,IAAIC,YAAuD,UAAU,EACjEF,WACAG,SAAS,IACTC,aAER,CAAA,CAAA;AAAA,EAAA;AAAA,EAGG,gBACC;AAAA,WAAA,CAAChI,KAAKC,aACHD,KAAKM,QACNN,KAAKoB,iBAAiBQ,MAAM9E,SAAS,IACrCwF,EAAQtC,KAAKkB,gBAAgBU;AAAAA,EAAK;AAAA,EAGrC,iBACC;AAAA,WAAA5B,KAAKgB,iBAAiBY,QACf5B,KAAKgB,iBAAiBY,MAAMqG,mBAEhCjI,KAAKkI,cAAAA;AAAAA,EAAc;AAAA,EAG9B,eAAAC;AACIvC,IAAAA,EAAM,GAAK7C,EAAAA,KACPC,EAAI,MAAMhD,KAAK2B,gBAAgBI,KAC/B+D,CAAAA,GAAAA,EAAK,CACPjC,CAAAA,EAAAA,UAAAA,GAEF7D,KAAKuB,UAAUwB,KACXV,EAAOY,CAAAA,MAAWA,EAAQnG,SAAS,CAAA,GACnCkG,EAAI,MAAMhD,KAAK2B,gBAAgBI,KAAAA,CAAAA,GAC/B4B,EAAU3D,KAAK4D,gBACjBC,UAAU;AAAA,EAAA;AAAA,EAGhB,SACU;;AAAA,UAAAuE,IAAgB,GAAGpI,KAAKwC,EAEvB;AAAA,WAAA6F;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,kBAMGrI,KAAKO,cAAc8H,aAAgBD,CAAAA,qBAAkCpI,KAAKO,WAAsB,WAAA,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA,gCAKlFP,KAAKQ,IAAAA;AAAAA,0BACX8H,EAAItI,KAAKgB,gBAAAA,CAAAA;AAAAA;AAAAA;AAAAA,gCAGHhB,KAAKI,UAAQJ,IAAAA,KAAKG,UAALH,gBAAAA,EAAYtD,cAAc6L,QAAQ,QAAQ,KAAA;AAAA,iCACtDvI,KAAKG,KAAAA;AAAAA,uCACCH,KAAKE,WAAAA;AAAAA,oCACRF,KAAKC,QAAAA;AAAAA,iCACRD,KAAKa,WAAAA;AAAAA;AAAAA,uCAECb,KAAKS,YAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,wCAMJT,KAAKY,KAAAA;AAAAA,2CACFZ,KAAKO,cAAc6H,IAAgB,MAAA;AAAA,iCAC5C3E,CAAAA,MACA;AAAA,YAAA7B,IAAS6B,EAAEjH,OAA4BoF;AAC7C5B,WAAKa,cAAce,GACd5B,KAAAqB,aAAaU,KAAKH,CAAK;AAAA,IAAA,CAAA;AAAA,iCAEtB6B,CAAAA,MAAAA;AACNA,MAAAA,EAAEC,gBAAAA;AAEI,YAAA8E,IAAexI,KAAKM,QACpBN,KAAKoB,iBAAiBQ,MAAM9E,SAAS,IACnCkD,CAAAA,CAAAA,KAAKkB,gBAAgBU;AAEzB5B,WAAKM,SAAUkI,CAAAA,MACfxI,KAAKa,cAAc,IACdb,KAAAqB,aAAaU,KAAK,EAAA,GACnB/B,KAAKgB,iBAAiBY,UACjB5B,KAAAgB,iBAAiBY,MAAMA,QAAQ,MAIvC5B,KAAAsB,OAAOS,OAAS;AAAA,IAAA,CAAA;AAAA,iCAEf0B,CAAAA,MAAAA;AACNA,MAAAA,EAAEC,gBAAAA,GACG1D,KAAAsB,OAAOS,OAAS;AAAA,IAAA,CAAA;AAAA,mCAEb0B,CAAAA,MACRzD;AAAAA,WAAKyI,eAAehF,CAAC;AAAA,IAAA,CAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,4BASrBiF,EAAS,EACbC,cACA,YAAA,IACA,QAAQ,IACR,cACA,cAAA,IACA,aAAa,IACb,qBACA,cAAA,IACA,kBAAkB,IAClBC,MAAQ,IACR,YAAY,GAAA,CAAA,CAAA;AAAA;AAAA,2CAGO5I,KAAKM,QAAQ,SAAS,OAAA;AAAA,iCAChC,GAAGN,KAAKG,SAAS,SAAA,WAAA;AAAA,+BACnBH,KAAKY,KAAAA;AAAAA,yCACKZ,KAAKK,SAAAA,cAAuBL,KAAKY,QAAQ,SAAS,MAAA;AAAA,kCACzD,MAAA;AACLZ,WAAAuB,UAAUQ,KAAK/B,KAAKoG,WACzBR,EAAM,GAAA,EAAK7C,KACPC,EAAI,MAAMhD,KAAK2B,gBAAgBI,KAC/B+D,CAAAA,GAAAA,EAAK,IACPjC,UAAU;AAAA,IAAA,CAAA;AAAA;AAAA;AAAA,sBAIb7D,KAAKe,cAEJ,KAFkBsH;AAAAA;AAAAA;;;;;;;;;;;;;;;;;;;;;EAEhB;AAAA,EAuBd,eAAeQ,GAAAA;AACMrF,IAAAA,EAAAgD,UAAU,SAAA,EAAWzD,KAC1C+C,EAAK,CAAA,GACLzB,EAAerE,KAAKsB,QAAQtB,KAAKuB,SACjCyB,GAAAA,EAAI,EAAE8F,GAAOvE,GAAQtB;;AACjB,UAAKsB,CAAAA,MAAWuE,EAAMC,QAAQ,eAAeD,EAAMC,QAAQ,SAWvD,QAVAD,EAAME,eAAAA,GACDhJ,KAAAsB,OAAOS,KAAAA,UAEZ6D,EAAM,EAAA,EAAI7C,KACNC,EAAI,MAAA;AACA,cAAMiG,IAAehG,EAAQgD,KAAYD,CAAAA,MAACA,CAAAA,EAAIb;AAC9C8D,QAAAA,KAAAA,QAAAA,EAAcC;AAAAA,MAAM,IAExBpD,EAAK,CAAA,CAAA,EACPjC;AAIN,UAAKU,CAAAA,EAAQ;AAEP,YAAA4E,IAAiBlG,EAAQZ,OAAO2D,CAAAA,MAAAA,CAAQA,EAAIb,MAC7CH,EAAAA,KAAK,CAACzG,GAAGC,MAAM4K,SAAS7K,EAAE6G,MAAMC,SAAS,GAAO+D,IAAAA,SAAS5K,EAAE4G,MAAMC,SAAS,OAEzEgE,IAAgBF,EAAelD,KAAYD,CAAAA,MAAAA,MAAQQ,SAAS8C,aAC5DC,GAAAA,IAAeF,IAAgBF,EAAejM,QAAQmM;AAE5D,cAAQP,EAAMC,KACV;AAAA,QAAA,KAAK;AACDD,YAAME,kBACDhJ,KAAAsB,OAAOS,OACZ/B,GAAAA,KAAKsG,wBACAtG,IAAAA,KAAAgB,iBAAiBY,UAAjB5B,QAAAA,EAAwBkJ;AAC7B;AAAA,QAEJ,KAAK;AACIlJ,eAAAsB,OAAOS,KAAK,EAAA,GACjB/B,KAAKsG,oBACL;AAAA;AAAA,QAEJ,KAAK;AACDwC,YAAME;AACN,gBAAMQ,IAAYD,IAAeJ,EAAerM,SAAS,IAAIyM,IAAe,IAAI;AACjEJ,WAAAA,IAAAA,EAAAK,CAAAA,MAAAL,QAAAA,EAAYD;AAC3B;AAAA,QAEJ,KAAK;AACDJ,YAAME,eAAAA;AACN,gBAAMS,IAAYF,IAAe,IAAIA,IAAe,IAAIJ,EAAerM,SAAS;AACjEqM,WAAAA,IAAAA,EAAAM,CAAYP,MAAZC,QAAAA,EAAYD;AAC3B;AAAA,QAEJ,KAAK;AACDJ,YAAME,eACSG,IAAAA,IAAAA,EAAA,OAAAA,QAAAA,EAAID;AACnB;AAAA,QAEJ,KAAK;AACDJ,YAAME,mBACNG,IAAAA,EAAeA,EAAerM,SAAS,CAAIoM,MAA3CC,QAAAA,EAA2CD;AAC3C;AAAA,QAEJ,KAAK;AAAA,QACL,KAAK;AACGG,UAAAA,MACAP,EAAME,eACDhJ,GAAAA,KAAAwB,eAAeO,KAAKsH,CAAAA;AAAAA,MAAAA;AAAAA,IAE7B,IAGdxF,UAAU;AAAA,EAAA;AAAA;AA1pBa6F,EAAA,CAA5BC,EAAS,EAAEC,MAAMtH,QAAAA,CAAAA,CAAAA,GAFD3C,EAEYkK,WAAA,YAAA,CACDH,GAAAA,EAAA,CAA3BC,EAAS,EAAEC,MAAM1F,OAHDvE,CAAAA,CAAAA,GAAAA,EAGWkK,WAAA,eAAA,CAAA,GACeH,EAAA,CAA1CC,EAAS,EAAEC,MAAM1F,QAAQ4F,YAJTnK,CAAAA,CAAAA,GAAAA,EAI0BkK,WAAA,SAAA,CAAA,GACfH,EAAA,CAA3BC,EAAS,EAAEC,MAAM1F,OAAAA,CAAAA,CAAAA,GALDvE,EAKWkK,WAAA,QAAA,IACAH,EAAA,CAA3BC,EAAS,EAAEC,MAAM1F,YANDvE,EAMWkK,WAAA,aAAA,CACCH,GAAAA,EAAA,CAA5BC,EAAS,EAAEC,MAAMtH,QAPD3C,CAAAA,CAAAA,GAAAA,EAOYkK,WAAA,SAAA,CAAA,GACDH,EAAA,CAA3BC,EAAS,EAAEC,MAAM1F,OAAAA,CAAAA,CAAAA,GARDvE,EAQWkK,WAAA,eAAA,IACeH,EAAA,CAA1CC,EAAS,EAAEC,MAAM1F,QAAQ4F,SAAS,GAAA,CAAA,CAAA,GATlBnK,EAS0BkK,WAAA,QAAA,IACfH,EAAA,CAA3BC,EAAS,EAAEC,MAAM1F,YAVDvE,EAUWkK,WAAA,gBAAA,CACAH,GAAAA,EAAA,CAA3BC,EAAS,EAAEC,MAAMG,OAXDpK,CAAAA,CAAAA,GAAAA,EAWWkK,WAAA,cAAA,IACAH,EAAA,CAA3BC,EAAS,EAAEC,MAAMG,YAZDpK,EAYWkK,WAAA,uBAAA,CAIxBH,GAAAA,EAAA,CADHC,EAAS,EAAEC,MAAM5L,MAfD2B,CAAAA,CAAAA,GAAAA,EAgBbkK,WAAA,UAAA,CAAA,GASAH,EAAA,CADHC,EAAS,EAAEC,MAAM1F,QAAQ4F,YAxBTnK,CAAAA,CAAAA,GAAAA,EAyBbkK,WAAA,SAAA,CAAA,GAgBaH,EAAA,CAAhBM,EAAAA,CAAAA,GAzCgBrK,EAyCAkK,WAAA,SAAA,IACAH,EAAA,CAAhBM,MA1CgBrK,EA0CAkK,WAAA,eAAA,CACAH,GAAAA,EAAA,CAAhBM,EA3CgBrK,CAAAA,GAAAA,EA2CAkK,WAAA,wBAAA,CAAA,GACAH,EAAA,CAAhBM,EAAAA,CAAAA,GA5CgBrK,EA4CAkK,WAAA,eAAA,IAGEH,EAAA,CAAlBnN,EAAM,UA/CUoD,CAAAA,GAAAA,EA+CEkK,WAAA,YAAA,CAAA,GACCH,EAAA,CAAnBnN,EAAM,eAhDUoD,EAgDGkK,WAAA,UAAA,CAC8BH,GAAAA,EAAA,CAAjDO,EAAsB,EAAEC,YAjDRvK,CAAAA,CAAAA,GAAAA,EAiDiCkK,WAAA,YAAA,CAAA,GAjDjClK,IAArB+J,EAAA,CADCS,EAAc,uBACMxK,CAAAA,GAAAA,CAAAA;"}
@@ -1,2 +1,2 @@
1
- "use strict";require("./autocomplete-C2MgBZdi.cjs");
1
+ "use strict";require("./autocomplete-DqbWESS2.cjs");
2
2
  //# sourceMappingURL=autocomplete.cjs.map
@@ -1,2 +1,2 @@
1
- import "./autocomplete-BXf34fA-.js";
1
+ import "./autocomplete-KvR4MRDs.js";
2
2
  //# sourceMappingURL=autocomplete.js.map
@@ -1,4 +1,4 @@
1
- "use strict";const l=require("lit"),a=require("lit/decorators.js"),n=require("rxjs");require("./animated-text-DuL0BVFF.cjs");const k=require("./area.component-DYh2KKnh.cjs");require("./autocomplete-C2MgBZdi.cjs"),require("lit/directives/class-map.js"),require("lit/directives/style-map.js");const x=require("./tailwind.mixin-DWvvleWP.cjs"),g=require("./ripple-C2BHbhcS.cjs");require("./boat-DeEs020x.cjs"),require("./spinner-I_J8koHo.cjs"),require("./icon-button-fT0E5fJN.cjs");const i=require("./theme.interface-Xg5Zi46a.cjs");require("./checkbox-BSndX5zU.cjs"),require("./chips-Do9LFtJA.cjs"),require("./circular-progress-DS6pw54i.cjs"),require("./code-preview-CXO3vsRi.cjs"),require("./payment-card-form-CLRmWodS.cjs");const y=require("./types.cjs"),d=require("./provide-BGGp1Iks.cjs"),b=require("./litElement.mixin-DcYItU_Y.cjs"),m=require("./consume-uKrSupzs.cjs");require("./date-range-B0CSi1D6.cjs"),require("./delay-BV4QWYDw.cjs"),require("./dialog-content-D5kti4-b.cjs"),require("./divider-CEyi1ooH.cjs"),require("./dropdown-content-BoKXumxT.cjs"),require("./timezone-MNEWy4jq.cjs"),require("./form-C-YpNF0Z.cjs"),require("./icon-D_0MYmHT.cjs"),require("./input-y7H2rS_c.cjs"),require("./flex-Dfk62-Dn.cjs"),require("./list-CQCRYpMc.cjs"),require("./menu-DTNNwC3X.cjs");const U=require("lit/directives/when.js");require("./notification-service-Dw1vWE8m.cjs"),require("./option-BkYybtqQ.cjs"),require("./radio-button-b-3WocDM.cjs"),require("./index-DyJ0oDpR.cjs"),require("./select-DsFHJyZw.cjs");const B=require("./sheet-xbPPu7eJ.cjs");require("./slider-DI42q9wf.cjs"),require("./schmancy-steps-container-zat0B8ZS.cjs"),require("./context-object-CP7HbDFQ.cjs");const P=require("rxjs/operators");require("./surface-CgjTa2At.cjs"),require("./table-tMVVNYqd.cjs"),require("./tabs-compatibility-K7hN1FMS.cjs"),require("./textarea-DlxS_YbV.cjs"),require("./theme.component-Bhodmw04.cjs"),require("./theme-button-MLe6lqim.cjs"),require("./tooltip-DXepH6lG.cjs"),require("./tree-BkqvB6rh.cjs"),require("./typewriter-CoOcshun.cjs"),require("./typography-CRa9BYOd.cjs");var F=Object.defineProperty,G=Object.getOwnPropertyDescriptor,v=(e,t,s,o)=>{for(var c,r=o>1?void 0:o?G(t,s):t,h=e.length-1;h>=0;h--)(c=e[h])&&(r=(o?c(t,s,r):c(r))||r);return o&&r&&F(t,s,r),r};exports.SchmancyBadgeV2=class extends x.TailwindElement(l.css`
1
+ "use strict";const l=require("lit"),a=require("lit/decorators.js"),n=require("rxjs");require("./animated-text-CvOxKhXc.cjs");const k=require("./area.component-DEOob0ox.cjs");require("./autocomplete-DqbWESS2.cjs"),require("lit/directives/class-map.js"),require("lit/directives/style-map.js");const x=require("./tailwind.mixin-CYcf-U4R.cjs"),g=require("./ripple-C2BHbhcS.cjs");require("./boat-DpwpvrwB.cjs"),require("./spinner-XXVCb3SB.cjs"),require("./icon-button-BCMiumJV.cjs");const i=require("./theme.interface-Xg5Zi46a.cjs");require("./checkbox-DFSfKDe7.cjs"),require("./chips-SlEVDtLL.cjs"),require("./circular-progress-D0Ei_TVO.cjs"),require("./code-preview-CHUDQgBs.cjs"),require("./payment-card-form-CpgGccLb.cjs");const y=require("./types.cjs"),d=require("./provide-BGGp1Iks.cjs"),b=require("./litElement.mixin-DBKBn5-0.cjs"),m=require("./consume-uKrSupzs.cjs");require("./date-range-vfh_MQQ8.cjs"),require("./delay-DSlalih2.cjs"),require("./dialog-content-C2mSWw93.cjs"),require("./dialog-service-Di9NiBao.cjs"),require("./divider-BLWfsrgW.cjs"),require("./dropdown-content-DGzqx1S_.cjs"),require("./timezone-B9ulERyu.cjs"),require("./form-BQE8JXxF.cjs"),require("./icon-pSnkdbDc.cjs"),require("./input-BN2LXdXz.cjs"),require("./flex-Dpr6dCxo.cjs"),require("./list-BEbwK0js.cjs"),require("./menu-BdzIXUjg.cjs");const U=require("lit/directives/when.js");require("./notification-service-CXc-_Kb_.cjs"),require("./option-EnoMfyR-.cjs"),require("./radio-button-BJjvHX_o.cjs"),require("./index-DyJ0oDpR.cjs"),require("./select-DhsURRRa.cjs");const B=require("./sheet-L0BMbi1B.cjs");require("./slider-CAYWu8jw.cjs"),require("./schmancy-steps-container-DDTHvnOz.cjs"),require("./context-object-CP7HbDFQ.cjs");const P=require("rxjs/operators");require("./surface-B93-RzTP.cjs"),require("./table-CZ0Kxa-3.cjs"),require("./tabs-compatibility-B8L2QZNH.cjs"),require("./textarea-c08GNNdE.cjs"),require("./theme.component-hNNgXue7.cjs"),require("./theme-button-C1WDEzCs.cjs"),require("./tooltip-BcfZtAjX.cjs"),require("./tree-D0gmqicQ.cjs"),require("./typewriter-B9CTFK02.cjs"),require("./typography-846IJx5H.cjs");var F=Object.defineProperty,G=Object.getOwnPropertyDescriptor,v=(e,t,s,o)=>{for(var c,r=o>1?void 0:o?G(t,s):t,h=e.length-1;h>=0;h--)(c=e[h])&&(r=(o?c(t,s,r):c(r))||r);return o&&r&&F(t,s,r),r};exports.SchmancyBadgeV2=class extends x.TailwindElement(l.css`
2
2
  :host {
3
3
  display: inline-flex;
4
4
  }
@@ -278,4 +278,4 @@
278
278
  `}getColorAttributes(){const e={primary:{bgColor:i.SchmancyTheme.sys.color.primary.container,color:i.SchmancyTheme.sys.color.primary.onContainer},secondary:{bgColor:i.SchmancyTheme.sys.color.secondary.container,color:i.SchmancyTheme.sys.color.secondary.onContainer},tertiary:{bgColor:i.SchmancyTheme.sys.color.tertiary.container,color:i.SchmancyTheme.sys.color.tertiary.onContainer},success:{bgColor:i.SchmancyTheme.sys.color.success.container,color:i.SchmancyTheme.sys.color.success.onContainer},error:{bgColor:i.SchmancyTheme.sys.color.error.container,color:i.SchmancyTheme.sys.color.error.onContainer},neutral:{bgColor:i.SchmancyTheme.sys.color.surface.container,color:i.SchmancyTheme.sys.color.surface.on}};return g.color(e[this.color])}renderStatusIndicator(){const e={online:i.SchmancyTheme.sys.color.success.default,offline:i.SchmancyTheme.sys.color.surface.onVariant,busy:i.SchmancyTheme.sys.color.error.default,away:i.SchmancyTheme.sys.color.tertiary.default},t={"absolute bottom-0 right-0 rounded-full border-2 border-surface-default":!0,[{xs:"w-1.5 h-1.5",sm:"w-2 h-2",md:"w-2.5 h-2.5",lg:"w-3 h-3",xl:"w-4 h-4"}[this.size]]:!0};return l.html`
279
279
  <div class="${this.classMap(t)}" style="background-color: ${e[this.status]};"></div>
280
280
  `}},u([a.property({type:String})],exports.SchmancyAvatar.prototype,"initials",2),u([a.property({type:String})],exports.SchmancyAvatar.prototype,"src",2),u([a.property({type:String})],exports.SchmancyAvatar.prototype,"icon",2),u([a.property({type:String})],exports.SchmancyAvatar.prototype,"size",2),u([a.property({type:String})],exports.SchmancyAvatar.prototype,"color",2),u([a.property({type:String})],exports.SchmancyAvatar.prototype,"shape",2),u([a.property({type:Boolean})],exports.SchmancyAvatar.prototype,"bordered",2),u([a.property({type:String})],exports.SchmancyAvatar.prototype,"status",2),exports.SchmancyAvatar=u([a.customElement("schmancy-avatar")],exports.SchmancyAvatar),exports.$drawer=le,exports.HereMorty=H,exports.SchmancyContentDrawerID=R,exports.SchmancyContentDrawerMaxHeight=z,exports.SchmancyContentDrawerMinWidth=N,exports.SchmancyContentDrawerSheetMode=M,exports.SchmancyContentDrawerSheetState=_,exports.SchmancyDrawerNavbarMode=j,exports.SchmancyDrawerNavbarState=W,exports.WhereAreYouRicky=X,exports.schmancyContentDrawer=se,exports.schmancyNavDrawer=Y,exports.teleport=C;
281
- //# sourceMappingURL=avatar-DVN44OzV.cjs.map
281
+ //# sourceMappingURL=avatar-BvqaPLuL.cjs.map