@mhmo91/schmancy 0.2.41 → 0.2.42
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.
- package/dist/{animated-text-D8LhwMLu.js → animated-text-D5czXLWn.js} +3 -3
- package/dist/{animated-text-D8LhwMLu.js.map → animated-text-D5czXLWn.js.map} +1 -1
- package/dist/{animated-text-CaUJr-yL.cjs → animated-text-DAIxzGoB.cjs} +2 -2
- package/dist/{animated-text-CaUJr-yL.cjs.map → animated-text-DAIxzGoB.cjs.map} +1 -1
- package/dist/animated-text.cjs +1 -1
- package/dist/animated-text.js +1 -1
- package/dist/area.cjs +1 -1
- package/dist/{area.component-FgfXnOUF.js → area.component-BSCRps7h.js} +3 -3
- package/dist/{area.component-FgfXnOUF.js.map → area.component-BSCRps7h.js.map} +1 -1
- package/dist/{area.component-DJYgP8NP.cjs → area.component-CJlITW0a.cjs} +2 -2
- package/dist/{area.component-DJYgP8NP.cjs.map → area.component-CJlITW0a.cjs.map} +1 -1
- package/dist/area.js +1 -1
- package/dist/{autocomplete-CFcZcrJm.cjs → autocomplete-CHpArsZC.cjs} +2 -2
- package/dist/{autocomplete-CFcZcrJm.cjs.map → autocomplete-CHpArsZC.cjs.map} +1 -1
- package/dist/{autocomplete-C36FPrMT.js → autocomplete-CiCw7cWc.js} +3 -3
- package/dist/{autocomplete-C36FPrMT.js.map → autocomplete-CiCw7cWc.js.map} +1 -1
- package/dist/autocomplete.cjs +1 -1
- package/dist/autocomplete.js +1 -1
- package/dist/busy.cjs +1 -1
- package/dist/busy.js +1 -1
- package/dist/button.cjs +1 -1
- package/dist/button.js +1 -1
- package/dist/card.cjs +1 -1
- package/dist/card.js +1 -1
- package/dist/{checkbox-Drf8MwrJ.cjs → checkbox-CYZ8DVr_.cjs} +2 -2
- package/dist/{checkbox-Drf8MwrJ.cjs.map → checkbox-CYZ8DVr_.cjs.map} +1 -1
- package/dist/{checkbox-Sf2HtMs9.js → checkbox-DSi2sG8X.js} +2 -2
- package/dist/{checkbox-Sf2HtMs9.js.map → checkbox-DSi2sG8X.js.map} +1 -1
- package/dist/checkbox.cjs +1 -1
- package/dist/checkbox.js +1 -1
- package/dist/{chips-8SMj1Siq.cjs → chips-D0DqtIre.cjs} +2 -2
- package/dist/{chips-8SMj1Siq.cjs.map → chips-D0DqtIre.cjs.map} +1 -1
- package/dist/{chips-CA-B5JGD.js → chips-DHLvFgzm.js} +3 -3
- package/dist/{chips-CA-B5JGD.js.map → chips-DHLvFgzm.js.map} +1 -1
- package/dist/chips.cjs +1 -1
- package/dist/chips.js +1 -1
- package/dist/components.cjs +1 -1
- package/dist/components.js +1 -1
- package/dist/content-drawer.cjs +1 -1
- package/dist/content-drawer.js +1 -1
- package/dist/{date-range-CAFOX_Sm.cjs → date-range-BarHKApD.cjs} +2 -2
- package/dist/{date-range-CAFOX_Sm.cjs.map → date-range-BarHKApD.cjs.map} +1 -1
- package/dist/{date-range-BFW0xGWz.js → date-range-CiWMMHbW.js} +3 -3
- package/dist/{date-range-BFW0xGWz.js.map → date-range-CiWMMHbW.js.map} +1 -1
- package/dist/date-range.cjs +1 -1
- package/dist/date-range.js +1 -1
- package/dist/{delay-DbaKftdS.js → delay-BK67Hk_M.js} +2 -2
- package/dist/{delay-DbaKftdS.js.map → delay-BK67Hk_M.js.map} +1 -1
- package/dist/{delay-_LA9VzS1.cjs → delay-C6SepD3P.cjs} +2 -2
- package/dist/{delay-_LA9VzS1.cjs.map → delay-C6SepD3P.cjs.map} +1 -1
- package/dist/delay.cjs +1 -1
- package/dist/delay.js +1 -1
- package/dist/{divider-Ba1jSOh5.js → divider-COtzJBn4.js} +3 -3
- package/dist/{divider-Ba1jSOh5.js.map → divider-COtzJBn4.js.map} +1 -1
- package/dist/{divider-DUvuIyeA.cjs → divider-DX5e0m-H.cjs} +2 -2
- package/dist/{divider-DUvuIyeA.cjs.map → divider-DX5e0m-H.cjs.map} +1 -1
- package/dist/divider.cjs +1 -1
- package/dist/divider.js +1 -1
- package/dist/{form-H0pfjyGl.js → form-B6BML4Gw.js} +2 -2
- package/dist/{form-H0pfjyGl.js.map → form-B6BML4Gw.js.map} +1 -1
- package/dist/{form-Dga1_eim.cjs → form-o9voayRS.cjs} +2 -2
- package/dist/{form-Dga1_eim.cjs.map → form-o9voayRS.cjs.map} +1 -1
- package/dist/form.cjs +1 -1
- package/dist/form.js +1 -1
- package/dist/{icon-Dr1MeHJo.cjs → icon-BkDy6f59.cjs} +2 -2
- package/dist/{icon-Dr1MeHJo.cjs.map → icon-BkDy6f59.cjs.map} +1 -1
- package/dist/{icon-pvbFfBbz.js → icon-DE_mryLI.js} +3 -3
- package/dist/{icon-pvbFfBbz.js.map → icon-DE_mryLI.js.map} +1 -1
- package/dist/{icon-button-B1Hzc1qy.cjs → icon-button-CIxJbF_T.cjs} +2 -2
- package/dist/{icon-button-B1Hzc1qy.cjs.map → icon-button-CIxJbF_T.cjs.map} +1 -1
- package/dist/{icon-button-BFdAiGNP.js → icon-button-CYNjACmd.js} +3 -3
- package/dist/{icon-button-BFdAiGNP.js.map → icon-button-CYNjACmd.js.map} +1 -1
- package/dist/icons.cjs +1 -1
- package/dist/icons.js +1 -1
- package/dist/index.cjs +1 -1
- package/dist/index.js +33 -33
- package/dist/{input-CBjD2PL8.js → input-By2qm_Uq.js} +17 -17
- package/dist/{input-CBjD2PL8.js.map → input-By2qm_Uq.js.map} +1 -1
- package/dist/{input-1-LnDYbT.cjs → input-CdgeGV93.cjs} +11 -11
- package/dist/{input-1-LnDYbT.cjs.map → input-CdgeGV93.cjs.map} +1 -1
- package/dist/input.cjs +1 -1
- package/dist/input.js +1 -1
- package/dist/layout.cjs +1 -1
- package/dist/layout.js +1 -1
- package/dist/{list-DSyxyPI_.cjs → list-DUV3tZ3A.cjs} +2 -2
- package/dist/{list-DSyxyPI_.cjs.map → list-DUV3tZ3A.cjs.map} +1 -1
- package/dist/{list-BdN19pT0.js → list-Dc_EEdf-.js} +2 -2
- package/dist/{list-BdN19pT0.js.map → list-Dc_EEdf-.js.map} +1 -1
- package/dist/list.cjs +1 -1
- package/dist/list.js +1 -1
- package/dist/{litElement.mixin-D9kneJpW.js → litElement.mixin-BYMdyxuB.js} +2 -2
- package/dist/{litElement.mixin-D9kneJpW.js.map → litElement.mixin-BYMdyxuB.js.map} +1 -1
- package/dist/{litElement.mixin-B9kSOE4x.cjs → litElement.mixin-Cw4_sB4P.cjs} +2 -2
- package/dist/{litElement.mixin-B9kSOE4x.cjs.map → litElement.mixin-Cw4_sB4P.cjs.map} +1 -1
- package/dist/{menu-XffIwQSn.cjs → menu-D5De6nkC.cjs} +2 -2
- package/dist/{menu-XffIwQSn.cjs.map → menu-D5De6nkC.cjs.map} +1 -1
- package/dist/{menu-DjWA-lYK.js → menu-cDlpZG8h.js} +3 -3
- package/dist/{menu-DjWA-lYK.js.map → menu-cDlpZG8h.js.map} +1 -1
- package/dist/menu.cjs +1 -1
- package/dist/menu.js +1 -1
- package/dist/nav-drawer.cjs +1 -1
- package/dist/nav-drawer.js +1 -1
- package/dist/notification.cjs +1 -1
- package/dist/notification.js +1 -1
- package/dist/{option-C4fWPkxl.js → option-BHH_JwXm.js} +15 -11
- package/dist/option-BHH_JwXm.js.map +1 -0
- package/dist/option-D2uLD4HI.cjs +18 -0
- package/dist/option-D2uLD4HI.cjs.map +1 -0
- package/dist/option.cjs +1 -1
- package/dist/option.js +1 -1
- package/dist/{outlet-881x1gpm.cjs → outlet-DGwK90-g.cjs} +2 -2
- package/dist/{outlet-881x1gpm.cjs.map → outlet-DGwK90-g.cjs.map} +1 -1
- package/dist/{outlet-oc58T2jq.js → outlet-gf5ui1xs.js} +2 -2
- package/dist/{outlet-oc58T2jq.js.map → outlet-gf5ui1xs.js.map} +1 -1
- package/dist/{payment-card-form-D2NiZkJM.js → payment-card-form-BEg1aL_V.js} +3 -3
- package/dist/{payment-card-form-D2NiZkJM.js.map → payment-card-form-BEg1aL_V.js.map} +1 -1
- package/dist/{payment-card-form-BlusjI2Q.cjs → payment-card-form-DSZz3XAw.cjs} +2 -2
- package/dist/{payment-card-form-BlusjI2Q.cjs.map → payment-card-form-DSZz3XAw.cjs.map} +1 -1
- package/dist/{radio-group-BALwJIFj.js → radio-group-D5qSmAIk.js} +2 -2
- package/dist/{radio-group-BALwJIFj.js.map → radio-group-D5qSmAIk.js.map} +1 -1
- package/dist/{radio-group-DE6ao3xB.cjs → radio-group-DeTqT89g.cjs} +2 -2
- package/dist/{radio-group-DE6ao3xB.cjs.map → radio-group-DeTqT89g.cjs.map} +1 -1
- package/dist/radio-group.cjs +1 -1
- package/dist/radio-group.js +1 -1
- package/dist/{scroll-BbqxMyDc.js → scroll-DJhZyWFl.js} +2 -2
- package/dist/{scroll-BbqxMyDc.js.map → scroll-DJhZyWFl.js.map} +1 -1
- package/dist/{scroll-BqLesKK7.cjs → scroll-DbSG1gU1.cjs} +2 -2
- package/dist/{scroll-BqLesKK7.cjs.map → scroll-DbSG1gU1.cjs.map} +1 -1
- package/dist/{select-CaBI5TrW.js → select-CZfw92Ty.js} +30 -30
- package/dist/{select-CaBI5TrW.js.map → select-CZfw92Ty.js.map} +1 -1
- package/dist/select-DYwm6zVU.cjs +52 -0
- package/dist/{select-N1WX3mjc.cjs.map → select-DYwm6zVU.cjs.map} +1 -1
- package/dist/select.cjs +1 -1
- package/dist/select.js +1 -1
- package/dist/{sheet-BLzXXxJz.cjs → sheet-0256n1h7.cjs} +2 -2
- package/dist/{sheet-BLzXXxJz.cjs.map → sheet-0256n1h7.cjs.map} +1 -1
- package/dist/{sheet-CrFAERdT.js → sheet-BnwMNJKD.js} +3 -3
- package/dist/{sheet-CrFAERdT.js.map → sheet-BnwMNJKD.js.map} +1 -1
- package/dist/sheet.cjs +1 -1
- package/dist/sheet.js +1 -1
- package/dist/{slider-BAQ6ue43.js → slider-CVlX-GTS.js} +3 -3
- package/dist/{slider-BAQ6ue43.js.map → slider-CVlX-GTS.js.map} +1 -1
- package/dist/{slider-Ck3rrBuj.cjs → slider-CtmVndmy.cjs} +2 -2
- package/dist/{slider-Ck3rrBuj.cjs.map → slider-CtmVndmy.cjs.map} +1 -1
- package/dist/slider.cjs +1 -1
- package/dist/slider.js +1 -1
- package/dist/{spinner-B1iL6lg7.cjs → spinner-Aq68t0qW.cjs} +2 -2
- package/dist/{spinner-B1iL6lg7.cjs.map → spinner-Aq68t0qW.cjs.map} +1 -1
- package/dist/{spinner-Dp-BlzFE.js → spinner-JGfRqdwd.js} +3 -3
- package/dist/{spinner-Dp-BlzFE.js.map → spinner-JGfRqdwd.js.map} +1 -1
- package/dist/{surface-C-5hXuc0.js → surface-3TH7Q60g.js} +2 -2
- package/dist/{surface-C-5hXuc0.js.map → surface-3TH7Q60g.js.map} +1 -1
- package/dist/{surface-KIYOpqYN.cjs → surface-DoAY0NAL.cjs} +2 -2
- package/dist/{surface-KIYOpqYN.cjs.map → surface-DoAY0NAL.cjs.map} +1 -1
- package/dist/surface.cjs +1 -1
- package/dist/surface.js +1 -1
- package/dist/{table-COiGzwHG.cjs → table-Cyx1_9fP.cjs} +2 -2
- package/dist/{table-COiGzwHG.cjs.map → table-Cyx1_9fP.cjs.map} +1 -1
- package/dist/{table-D5Y7TtBM.js → table-DgFcgs4M.js} +2 -2
- package/dist/{table-D5Y7TtBM.js.map → table-DgFcgs4M.js.map} +1 -1
- package/dist/table.cjs +1 -1
- package/dist/table.js +1 -1
- package/dist/{tabs-group-DIv7H3ii.js → tabs-group-6xcNqJVh.js} +2 -2
- package/dist/{tabs-group-DIv7H3ii.js.map → tabs-group-6xcNqJVh.js.map} +1 -1
- package/dist/{tabs-group-Dzw-rYWP.cjs → tabs-group-CHJ1VE5L.cjs} +2 -2
- package/dist/{tabs-group-Dzw-rYWP.cjs.map → tabs-group-CHJ1VE5L.cjs.map} +1 -1
- package/dist/tabs.cjs +1 -1
- package/dist/tabs.js +1 -1
- package/dist/{tailwind.mixin-BBKdEPAU.js → tailwind.mixin-D2ZmggHb.js} +6 -6
- package/dist/{tailwind.mixin-BBKdEPAU.js.map → tailwind.mixin-D2ZmggHb.js.map} +1 -1
- package/dist/{tailwind.mixin-gE-6eUQA.cjs → tailwind.mixin-dEqmlmEI.cjs} +2 -2
- package/dist/{tailwind.mixin-gE-6eUQA.cjs.map → tailwind.mixin-dEqmlmEI.cjs.map} +1 -1
- package/dist/teleport.cjs +1 -1
- package/dist/{teleport.component-Do0-5-jy.js → teleport.component-C0giJ7oR.js} +35 -35
- package/dist/{teleport.component-Do0-5-jy.js.map → teleport.component-C0giJ7oR.js.map} +1 -1
- package/dist/{teleport.component-Bp9B02lJ.cjs → teleport.component-C5EPU5Hd.cjs} +2 -2
- package/dist/{teleport.component-Bp9B02lJ.cjs.map → teleport.component-C5EPU5Hd.cjs.map} +1 -1
- package/dist/teleport.js +1 -1
- package/dist/{textarea-DWBpogxd.js → textarea-DznXY4XP.js} +2 -2
- package/dist/{textarea-DWBpogxd.js.map → textarea-DznXY4XP.js.map} +1 -1
- package/dist/{textarea-Cm_0BDw5.cjs → textarea-T7Ae6OQS.cjs} +2 -2
- package/dist/{textarea-Cm_0BDw5.cjs.map → textarea-T7Ae6OQS.cjs.map} +1 -1
- package/dist/textarea.cjs +1 -1
- package/dist/textarea.js +1 -1
- package/dist/{theme-button-B7JR-68y.cjs → theme-button-FAUTvtnc.cjs} +2 -2
- package/dist/{theme-button-B7JR-68y.cjs.map → theme-button-FAUTvtnc.cjs.map} +1 -1
- package/dist/{theme-button-CdjTjQE-.js → theme-button-rAhvYWSo.js} +2 -2
- package/dist/{theme-button-CdjTjQE-.js.map → theme-button-rAhvYWSo.js.map} +1 -1
- package/dist/theme-button.cjs +1 -1
- package/dist/theme-button.js +1 -1
- package/dist/theme.cjs +1 -1
- package/dist/{theme.component-D0pi4zH5.cjs → theme.component-BccS626x.cjs} +2 -2
- package/dist/{theme.component-D0pi4zH5.cjs.map → theme.component-BccS626x.cjs.map} +1 -1
- package/dist/{theme.component-DWRFe6NX.js → theme.component-DWs2jXQN.js} +2 -2
- package/dist/{theme.component-DWRFe6NX.js.map → theme.component-DWs2jXQN.js.map} +1 -1
- package/dist/theme.js +1 -1
- package/dist/{tree-D8SHnBQ7.cjs → tree-BbcH5gXF.cjs} +2 -2
- package/dist/{tree-D8SHnBQ7.cjs.map → tree-BbcH5gXF.cjs.map} +1 -1
- package/dist/{tree-COFA9Z7I.js → tree-E21dLomQ.js} +2 -2
- package/dist/{tree-COFA9Z7I.js.map → tree-E21dLomQ.js.map} +1 -1
- package/dist/tree.cjs +1 -1
- package/dist/tree.js +1 -1
- package/dist/{typewriter-CKloAbr2.js → typewriter-DKB-PEGO.js} +4 -4
- package/dist/{typewriter-CKloAbr2.js.map → typewriter-DKB-PEGO.js.map} +1 -1
- package/dist/{typewriter-B254asJ6.cjs → typewriter-DS5Vx68F.cjs} +2 -2
- package/dist/{typewriter-B254asJ6.cjs.map → typewriter-DS5Vx68F.cjs.map} +1 -1
- package/dist/typewriter.cjs +1 -1
- package/dist/typewriter.js +1 -1
- package/dist/{typography-BjmgtlSe.cjs → typography-BX0GzBGU.cjs} +2 -2
- package/dist/{typography-BjmgtlSe.cjs.map → typography-BX0GzBGU.cjs.map} +1 -1
- package/dist/{typography-C0__6Aqk.js → typography-QSUB3lBd.js} +2 -2
- package/dist/{typography-C0__6Aqk.js.map → typography-QSUB3lBd.js.map} +1 -1
- package/dist/typography.cjs +1 -1
- package/dist/typography.js +1 -1
- package/package.json +1 -1
- package/types/src/option/option.d.ts +1 -0
- package/dist/option-C4fWPkxl.js.map +0 -1
- package/dist/option-Dcuv7dNV.cjs +0 -18
- package/dist/option-Dcuv7dNV.cjs.map +0 -1
- package/dist/select-N1WX3mjc.cjs +0 -52
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"autocomplete-CFcZcrJm.cjs","sources":["../node_modules/fastest-levenshtein/esm/mod.js","../src/autocomplete/autocomplete.ts"],"sourcesContent":["const peq = new Uint32Array(0x10000);\nconst myers_32 = (a, b) => {\n const n = a.length;\n const m = b.length;\n const lst = 1 << (n - 1);\n let pv = -1;\n let mv = 0;\n let sc = n;\n let i = n;\n while (i--) {\n peq[a.charCodeAt(i)] |= 1 << i;\n }\n for (i = 0; i < m; i++) {\n let eq = peq[b.charCodeAt(i)];\n const xv = eq | mv;\n eq |= ((eq & pv) + pv) ^ pv;\n mv |= ~(eq | pv);\n pv &= eq;\n if (mv & lst) {\n sc++;\n }\n if (pv & lst) {\n sc--;\n }\n mv = (mv << 1) | 1;\n pv = (pv << 1) | ~(xv | mv);\n mv &= xv;\n }\n i = n;\n while (i--) {\n peq[a.charCodeAt(i)] = 0;\n }\n return sc;\n};\nconst myers_x = (b, a) => {\n const n = a.length;\n const m = b.length;\n const mhc = [];\n const phc = [];\n const hsize = Math.ceil(n / 32);\n const vsize = Math.ceil(m / 32);\n for (let i = 0; i < hsize; i++) {\n phc[i] = -1;\n mhc[i] = 0;\n }\n let j = 0;\n for (; j < vsize - 1; j++) {\n let mv = 0;\n let pv = -1;\n const start = j * 32;\n const vlen = Math.min(32, m) + start;\n for (let k = start; k < vlen; k++) {\n peq[b.charCodeAt(k)] |= 1 << k;\n }\n for (let i = 0; i < n; i++) {\n const eq = peq[a.charCodeAt(i)];\n const pb = (phc[(i / 32) | 0] >>> i) & 1;\n const mb = (mhc[(i / 32) | 0] >>> i) & 1;\n const xv = eq | mv;\n const xh = ((((eq | mb) & pv) + pv) ^ pv) | eq | mb;\n let ph = mv | ~(xh | pv);\n let mh = pv & xh;\n if ((ph >>> 31) ^ pb) {\n phc[(i / 32) | 0] ^= 1 << i;\n }\n if ((mh >>> 31) ^ mb) {\n mhc[(i / 32) | 0] ^= 1 << i;\n }\n ph = (ph << 1) | pb;\n mh = (mh << 1) | mb;\n pv = mh | ~(xv | ph);\n mv = ph & xv;\n }\n for (let k = start; k < vlen; k++) {\n peq[b.charCodeAt(k)] = 0;\n }\n }\n let mv = 0;\n let pv = -1;\n const start = j * 32;\n const vlen = Math.min(32, m - start) + start;\n for (let k = start; k < vlen; k++) {\n peq[b.charCodeAt(k)] |= 1 << k;\n }\n let score = m;\n for (let i = 0; i < n; i++) {\n const eq = peq[a.charCodeAt(i)];\n const pb = (phc[(i / 32) | 0] >>> i) & 1;\n const mb = (mhc[(i / 32) | 0] >>> i) & 1;\n const xv = eq | mv;\n const xh = ((((eq | mb) & pv) + pv) ^ pv) | eq | mb;\n let ph = mv | ~(xh | pv);\n let mh = pv & xh;\n score += (ph >>> (m - 1)) & 1;\n score -= (mh >>> (m - 1)) & 1;\n if ((ph >>> 31) ^ pb) {\n phc[(i / 32) | 0] ^= 1 << i;\n }\n if ((mh >>> 31) ^ mb) {\n mhc[(i / 32) | 0] ^= 1 << i;\n }\n ph = (ph << 1) | pb;\n mh = (mh << 1) | mb;\n pv = mh | ~(xv | ph);\n mv = ph & xv;\n }\n for (let k = start; k < vlen; k++) {\n peq[b.charCodeAt(k)] = 0;\n }\n return score;\n};\nconst distance = (a, b) => {\n if (a.length < b.length) {\n const tmp = b;\n b = a;\n a = tmp;\n }\n if (b.length === 0) {\n return a.length;\n }\n if (a.length <= 32) {\n return myers_32(a, b);\n }\n return myers_x(a, b);\n};\nconst closest = (str, arr) => {\n let min_distance = Infinity;\n let min_index = 0;\n for (let i = 0; i < arr.length; i++) {\n const dist = distance(str, arr[i]);\n if (dist < min_distance) {\n min_distance = dist;\n min_index = i;\n }\n }\n return arr[min_index];\n};\nexport { closest, distance };\n","import {\n\tcomputePosition,\n\tflip,\n\toffset,\n\tshift,\n\tsize, // <-- NEW\n} from '@floating-ui/dom'\nimport { $LitElement } from '@mixins/index'\nimport { color } from '@schmancy/directives'\nimport SchmancyInput from '@schmancy/input/input'\nimport SchmancyOption from '@schmancy/option/option'\nimport { SchmancyTheme } from '@schmancy/theme/theme.interface'\nimport { distance } from 'fastest-levenshtein'\nimport { html } from 'lit'\nimport { customElement, eventOptions, property, query, queryAssignedElements } from 'lit/decorators.js'\nimport { createRef, ref } from 'lit/directives/ref.js'\nimport { from, fromEvent, Subject } from 'rxjs'\nimport { distinctUntilChanged, filter, switchMap, takeUntil, tap } from 'rxjs/operators'\nimport style from './autocomplete.scss?inline'\n\nimport type { SchmancyInputInputEvent } from '@schmancy/input/input'\n\nexport type SchmancyAutocompleteChangeEvent = CustomEvent<{\n\tvalue: string | string[]\n}>\n\n@customElement('schmancy-autocomplete')\nexport default class SchmancyAutocomplete extends $LitElement(style) {\n\t@property({ type: Boolean }) required = false\n\t@property({ type: String }) placeholder = ''\n\t@property({ type: String, reflect: true }) value = ''\n\t@property({ type: String, reflect: true }) label = ''\n\n\t/**\n\t * ⚠️ If you still want an explicit fallback for maximum dropdown height,\n\t * you can keep this, but the `size()` middleware will already set a\n\t * dynamic max-height based on viewport space.\n\t */\n\t@property({ type: String }) maxHeight = '25vh'\n\n\t@property({ type: Boolean }) multi = false\n\n\t/** Direct reference to the <input> inside <schmancy-input>. */\n\tinputRef = createRef<HTMLInputElement>()\n\n\t@query('#options') private optionsContainer!: HTMLUListElement\n\t@query('#empty') private empty!: HTMLLIElement\n\t@query('schmancy-input') private input!: SchmancyInput\n\t@queryAssignedElements({ flatten: true }) private options!: SchmancyOption[]\n\n\tprivate readonly searchTerm$ = new Subject<string>()\n\n\t// iOS scroll-blocking logic\n\tprivate startY = 0\n\n\tconnectedCallback() {\n\t\tsuper.connectedCallback()\n\n\t\t// 1) Search filtering\n\t\tthis.searchTerm$\n\t\t\t.pipe(\n\t\t\t\ttakeUntil(this.disconnecting),\n\t\t\t\tdistinctUntilChanged(),\n\t\t\t\ttap(term => {\n\t\t\t\t\tconst searchTerm = term.trim().toLowerCase()\n\n\t\t\t\t\t// Filter options using Levenshtein distance\n\t\t\t\t\tconst matches = this.options\n\t\t\t\t\t\t.map(option => {\n\t\t\t\t\t\t\tconst optionText = option.label.toLowerCase()\n\t\t\t\t\t\t\tconst levDistance = distance(searchTerm, optionText)\n\t\t\t\t\t\t\treturn { option, levDistance }\n\t\t\t\t\t\t})\n\t\t\t\t\t\t.filter(({ option, levDistance }) => {\n\t\t\t\t\t\t\t// If very short searchTerm, be lenient\n\t\t\t\t\t\t\tif (searchTerm.length < 3) return true\n\t\t\t\t\t\t\t// Otherwise, filter by distance\n\t\t\t\t\t\t\treturn levDistance <= option.label.toLowerCase().length - searchTerm.length\n\t\t\t\t\t\t})\n\t\t\t\t\t\t.sort((a, b) => a.levDistance - b.levDistance)\n\n\t\t\t\t\t// Show/hide\n\t\t\t\t\tthis.options.forEach(o => (o.hidden = true))\n\t\t\t\t\tfor (const { option } of matches) {\n\t\t\t\t\t\toption.hidden = false\n\t\t\t\t\t}\n\n\t\t\t\t\t// \"No results found\"\n\t\t\t\t\tthis.empty.hidden = matches.length > 0\n\n\t\t\t\t\tthis.requestUpdate()\n\t\t\t\t}),\n\t\t\t)\n\t\t\t.subscribe(() => {\n\t\t\t\t// Show dropdown on each new term\n\t\t\t\tthis.showOptions()\n\t\t\t})\n\n\t\t// 2) Focus out animation\n\t\tfromEvent<FocusEvent>(this, 'focusout')\n\t\t\t.pipe(\n\t\t\t\ttakeUntil(this.disconnecting),\n\t\t\t\tfilter(e => (e.relatedTarget as SchmancyOption)?.tagName !== 'SCHMANCY-OPTION'),\n\t\t\t\tswitchMap(() => {\n\t\t\t\t\tconst animation = this.optionsContainer.animate([{ opacity: 1 }, { opacity: 0 }], {\n\t\t\t\t\t\tduration: 250,\n\t\t\t\t\t\teasing: 'cubic-bezier(0.5, 0.01, 0.25, 1)',\n\t\t\t\t\t})\n\n\t\t\t\t\treturn from(\n\t\t\t\t\t\tnew Promise<void>(resolve => {\n\t\t\t\t\t\t\tanimation.onfinish = () => {\n\t\t\t\t\t\t\t\tthis.optionsContainer.style.display = 'none'\n\t\t\t\t\t\t\t\tthis.optionsContainer.style.opacity = '1'\n\t\t\t\t\t\t\t\tresolve()\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}),\n\t\t\t\t\t)\n\t\t\t\t}),\n\t\t\t)\n\t\t\t.subscribe({\n\t\t\t\tnext: () => {\n\t\t\t\t\t// Resync the input after closing\n\t\t\t\t\tif (this.multi) {\n\t\t\t\t\t\tconst selected = this.options.filter(o => o.selected).map(o => o.label)\n\t\t\t\t\t\tthis.input.value = selected.join(', ')\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis.input.value = this.options.find(o => o.value === this.value)?.label ?? ''\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t})\n\t}\n\n\tfirstUpdated() {\n\t\tthis.updateInputValue()\n\t}\n\n\tprotected updated(changedProps: Map<string | number | symbol, unknown>) {\n\t\tsuper.updated(changedProps)\n\t\tif (changedProps.has('value')) {\n\t\t\tthis.syncSelectionFromValue()\n\t\t\tthis.updateInputValue()\n\t\t}\n\t}\n\n\tprivate handleSlotChange() {\n\t\t// If no visible options, show \"empty\"\n\t\tthis.empty.hidden = this.options.some(option => !option.hidden)\n\t\tthis.syncSelectionFromValue()\n\t\tthis.updateInputValue()\n\t}\n\n\tprivate syncSelectionFromValue() {\n\t\tif (this.multi) {\n\t\t\tconst values = this.value\n\t\t\t\t.split(',')\n\t\t\t\t.map(v => v.trim())\n\t\t\t\t.filter(Boolean)\n\t\t\tthis.options.forEach(o => {\n\t\t\t\to.selected = values.includes(o.value)\n\t\t\t})\n\t\t} else {\n\t\t\tthis.options.forEach(o => {\n\t\t\t\to.selected = o.value === this.value\n\t\t\t})\n\t\t}\n\t}\n\n\tprivate updateInputValue() {\n\t\trequestAnimationFrame(() => {\n\t\t\tif (this.multi) {\n\t\t\t\tconst selected = this.options.filter(o => o.selected).map(o => o.label)\n\t\t\t\tthis.input.value = selected.join(', ')\n\t\t\t} else {\n\t\t\t\tconst found = this.options.find(o => o.value === this.value)?.label\n\t\t\t\tthis.input.value = found ?? ''\n\t\t\t}\n\t\t})\n\t}\n\n\t/**\n\t * MAIN: Show the dropdown, using Floating UI to size it\n\t * to the available space, and at least as wide as the input.\n\t */\n\tprivate async showOptions() {\n\t\tthis.optionsContainer.removeAttribute('hidden')\n\t\tthis.optionsContainer.style.display = 'block'\n\n\t\tconst { x, y } = await computePosition(this.input, this.optionsContainer, {\n\t\t\tplacement: 'bottom-start',\n\t\t\tmiddleware: [\n\t\t\t\toffset(5),\n\t\t\t\tflip(),\n\t\t\t\tshift({ padding: 5 }),\n\t\t\t\t// NEW: Let the floating element fill available space,\n\t\t\t\t// but be at least as wide as the input.\n\t\t\t\tsize({\n\t\t\t\t\tapply({ availableWidth, availableHeight, elements, rects }) {\n\t\t\t\t\t\t// At least match input width\n\t\t\t\t\t\tconst referenceWidth = rects.reference.width\n\t\t\t\t\t\telements.floating.style.minWidth = `${referenceWidth}px`\n\n\t\t\t\t\t\t// Cap to available viewport space\n\t\t\t\t\t\telements.floating.style.maxWidth = `${availableWidth}px`\n\t\t\t\t\t\telements.floating.style.maxHeight = `${availableHeight}px`\n\t\t\t\t\t},\n\t\t\t\t}),\n\t\t\t],\n\t\t})\n\n\t\tObject.assign(this.optionsContainer.style, {\n\t\t\tleft: `${x}px`,\n\t\t\ttop: `${y}px`,\n\t\t\tposition: 'absolute',\n\t\t\tzIndex: '9999',\n\t\t\toverflowY: 'auto',\n\t\t\t// The middleware is setting max-height, but if you want\n\t\t\t// a fallback you can still do:\n\t\t\t// maxHeight: this.maxHeight,\n\t\t})\n\t}\n\n\tprivate hideOptions() {\n\t\tthis.optionsContainer?.setAttribute('hidden', 'true')\n\t\tif (this.optionsContainer) {\n\t\t\tthis.optionsContainer.style.display = 'none'\n\t\t}\n\t}\n\n\tprivate handleInputChange(event: SchmancyInputInputEvent) {\n\t\tevent.preventDefault()\n\t\tevent.stopPropagation()\n\t\tconst term = event.detail.value\n\t\tthis.searchTerm$.next(term)\n\t}\n\n\t@eventOptions({ passive: true })\n\tprivate handleOptionClick(value: string) {\n\t\tif (this.multi) {\n\t\t\tconst option = this.options.find(o => o.value === value)\n\t\t\tif (option) option.selected = !option.selected\n\t\t\tconst selectedValues = this.options.filter(o => o.selected).map(o => o.value)\n\t\t\tthis.value = selectedValues.join(',')\n\t\t\tthis.updateInputValue()\n\t\t\tthis.dispatchEvent(\n\t\t\t\tnew CustomEvent<SchmancyAutocompleteChangeEvent['detail']>('change', {\n\t\t\t\t\tdetail: { value: selectedValues },\n\t\t\t\t\tbubbles: true,\n\t\t\t\t\tcomposed: true,\n\t\t\t\t}),\n\t\t\t)\n\t\t} else {\n\t\t\tthis.hideOptions()\n\t\t\tthis.value = value\n\t\t\tthis.updateInputValue()\n\t\t\tthis.dispatchEvent(\n\t\t\t\tnew CustomEvent<SchmancyAutocompleteChangeEvent['detail']>('change', {\n\t\t\t\t\tdetail: { value },\n\t\t\t\t\tbubbles: true,\n\t\t\t\t\tcomposed: true,\n\t\t\t\t}),\n\t\t\t)\n\t\t}\n\t}\n\n\tpublic checkValidity() {\n\t\treturn this.multi ? this.options.some(o => o.selected) : Boolean(this.value)\n\t}\n\n\tpublic reportValidity() {\n\t\treturn this.inputRef.value?.reportValidity()\n\t}\n\n\tprivate handleTouchStart(event: TouchEvent) {\n\t\tthis.startY = event.touches?.[0]?.clientY ?? 0\n\t}\n\n\tprivate preventScroll(event: TouchEvent) {\n\t\tconst target = event.target as HTMLElement\n\t\tif (!this.optionsContainer.contains(target)) return\n\n\t\tconst scrollTop = this.optionsContainer.scrollTop\n\t\tconst scrollHeight = this.optionsContainer.scrollHeight\n\t\tconst offsetHeight = this.optionsContainer.offsetHeight\n\t\tconst contentHeight = scrollHeight - offsetHeight\n\n\t\tconst currentY = event.touches?.[0]?.clientY ?? 0\n\t\tif ((scrollTop <= 0 && currentY > this.startY) || (scrollTop >= contentHeight && currentY < this.startY)) {\n\t\t\tevent.preventDefault()\n\t\t}\n\t}\n\n\trender() {\n\t\tconst isOpen = !this.optionsContainer?.hasAttribute('hidden')\n\n\t\treturn html`\n\t\t\t<div class=\"relative\">\n\t\t\t\t<!-- The trigger slot (if any) overrides the default SchmancyInput -->\n\t\t\t\t<slot name=\"trigger\">\n\t\t\t\t\t<schmancy-input\n\t\t\t\t\t\t${ref(this.inputRef)}\n\t\t\t\t\t\tid=\"input\"\n\t\t\t\t\t\tclass=\"w-full\"\n\t\t\t\t\t\t.label=${this.label}\n\t\t\t\t\t\t.placeholder=${this.placeholder}\n\t\t\t\t\t\t.required=${this.required}\n\t\t\t\t\t\ttype=\"search\"\n\t\t\t\t\t\tinputmode=\"text\"\n\t\t\t\t\t\tautocomplete=\"off\"\n\t\t\t\t\t\tclickable\n\t\t\t\t\t\trole=\"combobox\"\n\t\t\t\t\t\taria-autocomplete=\"list\"\n\t\t\t\t\t\taria-haspopup=\"listbox\"\n\t\t\t\t\t\taria-controls=\"options\"\n\t\t\t\t\t\taria-expanded=${isOpen}\n\t\t\t\t\t\t@focus=${() => this.showOptions()}\n\t\t\t\t\t\t@input=${this.handleInputChange}\n\t\t\t\t\t>\n\t\t\t\t\t</schmancy-input>\n\t\t\t\t</slot>\n\n\t\t\t\t<ul\n\t\t\t\t\tid=\"options\"\n\t\t\t\t\ttabindex=\"-1\"\n\t\t\t\t\tclass=\"absolute z-30 mt-1 w-full overflow-auto rounded-md shadow-sm\"\n\t\t\t\t\trole=\"listbox\"\n\t\t\t\t\thidden\n\t\t\t\t\t@click=${(e: Event) => {\n\t\t\t\t\t\t// Each <schmancy-option> dispatches CustomEvent('click', { detail: { value } })\n\t\t\t\t\t\tconst detailVal = (e as CustomEvent).detail?.value\n\t\t\t\t\t\tif (detailVal) this.handleOptionClick(detailVal)\n\t\t\t\t\t}}\n\t\t\t\t\t@touchstart=${this.handleTouchStart}\n\t\t\t\t\t@touchmove=${this.preventScroll}\n\t\t\t\t\t${color({ bgColor: SchmancyTheme.sys.color.surface.container })}\n\t\t\t\t>\n\t\t\t\t\t<!-- \"No results\" option -->\n\t\t\t\t\t<li id=\"empty\" tabindex=\"-1\">\n\t\t\t\t\t\t<schmancy-typography type=\"label\">No results found</schmancy-typography>\n\t\t\t\t\t</li>\n\n\t\t\t\t\t<!-- Slot for the <schmancy-option> elements -->\n\t\t\t\t\t<slot @slotchange=${this.handleSlotChange}> </slot>\n\t\t\t\t</ul>\n\t\t\t</div>\n\t\t`\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-autocomplete': SchmancyAutocomplete\n\t}\n}\n"],"names":["peq","Uint32Array","distance","a","b","length","tmp","n","m","lst","pv","mv","sc","i","charCodeAt","eq","xv","mhc","phc","hsize","Math","ceil","vsize","j","start","vlen","min","k","pb","mb","xh","ph","mh","score","SchmancyAutocomplete","$LitElement","constructor","super","arguments","this","required","placeholder","value","label","maxHeight","multi","inputRef","createRef","searchTerm$","Subject","startY","connectedCallback","pipe","takeUntil","disconnecting","distinctUntilChanged","tap","term","searchTerm","trim","toLowerCase","matches","options","map","option","optionText","levDistance","filter","sort","forEach","o","hidden","empty","requestUpdate","subscribe","showOptions","fromEvent","e","relatedTarget","tagName","switchMap","animation","optionsContainer","animate","opacity","duration","easing","from","Promise","resolve","onfinish","style","display","next","selected","input","join","find","firstUpdated","updateInputValue","changedProps","updated","has","syncSelectionFromValue","some","values","split","v","Boolean","includes","requestAnimationFrame","found","removeAttribute","x","y","computePosition","placement","middleware","offset","flip","shift","padding","size","availableWidth","availableHeight","elements","rects","referenceWidth","reference","width","floating","minWidth","maxWidth","Object","assign","left","top","position","zIndex","overflowY","hideOptions","setAttribute","event","preventDefault","stopPropagation","detail","selectedValues","dispatchEvent","CustomEvent","bubbles","composed","reportValidity","touches","clientY","target","contains","scrollTop","contentHeight","scrollHeight","offsetHeight","currentY","render","isOpen","hasAttribute","html","ref","handleInputChange","detailVal","handleOptionClick","handleTouchStart","preventScroll","color","bgColor","SchmancyTheme","sys","surface","container","handleSlotChange","__decorateClass","property","type","prototype","String","reflect","query","queryAssignedElements","flatten","eventOptions","passive","customElement"],"mappings":"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","x_google_ignoreList":[0]}
|
|
1
|
+
{"version":3,"file":"autocomplete-CHpArsZC.cjs","sources":["../node_modules/fastest-levenshtein/esm/mod.js","../src/autocomplete/autocomplete.ts"],"sourcesContent":["const peq = new Uint32Array(0x10000);\nconst myers_32 = (a, b) => {\n const n = a.length;\n const m = b.length;\n const lst = 1 << (n - 1);\n let pv = -1;\n let mv = 0;\n let sc = n;\n let i = n;\n while (i--) {\n peq[a.charCodeAt(i)] |= 1 << i;\n }\n for (i = 0; i < m; i++) {\n let eq = peq[b.charCodeAt(i)];\n const xv = eq | mv;\n eq |= ((eq & pv) + pv) ^ pv;\n mv |= ~(eq | pv);\n pv &= eq;\n if (mv & lst) {\n sc++;\n }\n if (pv & lst) {\n sc--;\n }\n mv = (mv << 1) | 1;\n pv = (pv << 1) | ~(xv | mv);\n mv &= xv;\n }\n i = n;\n while (i--) {\n peq[a.charCodeAt(i)] = 0;\n }\n return sc;\n};\nconst myers_x = (b, a) => {\n const n = a.length;\n const m = b.length;\n const mhc = [];\n const phc = [];\n const hsize = Math.ceil(n / 32);\n const vsize = Math.ceil(m / 32);\n for (let i = 0; i < hsize; i++) {\n phc[i] = -1;\n mhc[i] = 0;\n }\n let j = 0;\n for (; j < vsize - 1; j++) {\n let mv = 0;\n let pv = -1;\n const start = j * 32;\n const vlen = Math.min(32, m) + start;\n for (let k = start; k < vlen; k++) {\n peq[b.charCodeAt(k)] |= 1 << k;\n }\n for (let i = 0; i < n; i++) {\n const eq = peq[a.charCodeAt(i)];\n const pb = (phc[(i / 32) | 0] >>> i) & 1;\n const mb = (mhc[(i / 32) | 0] >>> i) & 1;\n const xv = eq | mv;\n const xh = ((((eq | mb) & pv) + pv) ^ pv) | eq | mb;\n let ph = mv | ~(xh | pv);\n let mh = pv & xh;\n if ((ph >>> 31) ^ pb) {\n phc[(i / 32) | 0] ^= 1 << i;\n }\n if ((mh >>> 31) ^ mb) {\n mhc[(i / 32) | 0] ^= 1 << i;\n }\n ph = (ph << 1) | pb;\n mh = (mh << 1) | mb;\n pv = mh | ~(xv | ph);\n mv = ph & xv;\n }\n for (let k = start; k < vlen; k++) {\n peq[b.charCodeAt(k)] = 0;\n }\n }\n let mv = 0;\n let pv = -1;\n const start = j * 32;\n const vlen = Math.min(32, m - start) + start;\n for (let k = start; k < vlen; k++) {\n peq[b.charCodeAt(k)] |= 1 << k;\n }\n let score = m;\n for (let i = 0; i < n; i++) {\n const eq = peq[a.charCodeAt(i)];\n const pb = (phc[(i / 32) | 0] >>> i) & 1;\n const mb = (mhc[(i / 32) | 0] >>> i) & 1;\n const xv = eq | mv;\n const xh = ((((eq | mb) & pv) + pv) ^ pv) | eq | mb;\n let ph = mv | ~(xh | pv);\n let mh = pv & xh;\n score += (ph >>> (m - 1)) & 1;\n score -= (mh >>> (m - 1)) & 1;\n if ((ph >>> 31) ^ pb) {\n phc[(i / 32) | 0] ^= 1 << i;\n }\n if ((mh >>> 31) ^ mb) {\n mhc[(i / 32) | 0] ^= 1 << i;\n }\n ph = (ph << 1) | pb;\n mh = (mh << 1) | mb;\n pv = mh | ~(xv | ph);\n mv = ph & xv;\n }\n for (let k = start; k < vlen; k++) {\n peq[b.charCodeAt(k)] = 0;\n }\n return score;\n};\nconst distance = (a, b) => {\n if (a.length < b.length) {\n const tmp = b;\n b = a;\n a = tmp;\n }\n if (b.length === 0) {\n return a.length;\n }\n if (a.length <= 32) {\n return myers_32(a, b);\n }\n return myers_x(a, b);\n};\nconst closest = (str, arr) => {\n let min_distance = Infinity;\n let min_index = 0;\n for (let i = 0; i < arr.length; i++) {\n const dist = distance(str, arr[i]);\n if (dist < min_distance) {\n min_distance = dist;\n min_index = i;\n }\n }\n return arr[min_index];\n};\nexport { closest, distance };\n","import {\n\tcomputePosition,\n\tflip,\n\toffset,\n\tshift,\n\tsize, // <-- NEW\n} from '@floating-ui/dom'\nimport { $LitElement } from '@mixins/index'\nimport { color } from '@schmancy/directives'\nimport SchmancyInput from '@schmancy/input/input'\nimport SchmancyOption from '@schmancy/option/option'\nimport { SchmancyTheme } from '@schmancy/theme/theme.interface'\nimport { distance } from 'fastest-levenshtein'\nimport { html } from 'lit'\nimport { customElement, eventOptions, property, query, queryAssignedElements } from 'lit/decorators.js'\nimport { createRef, ref } from 'lit/directives/ref.js'\nimport { from, fromEvent, Subject } from 'rxjs'\nimport { distinctUntilChanged, filter, switchMap, takeUntil, tap } from 'rxjs/operators'\nimport style from './autocomplete.scss?inline'\n\nimport type { SchmancyInputInputEvent } from '@schmancy/input/input'\n\nexport type SchmancyAutocompleteChangeEvent = CustomEvent<{\n\tvalue: string | string[]\n}>\n\n@customElement('schmancy-autocomplete')\nexport default class SchmancyAutocomplete extends $LitElement(style) {\n\t@property({ type: Boolean }) required = false\n\t@property({ type: String }) placeholder = ''\n\t@property({ type: String, reflect: true }) value = ''\n\t@property({ type: String, reflect: true }) label = ''\n\n\t/**\n\t * ⚠️ If you still want an explicit fallback for maximum dropdown height,\n\t * you can keep this, but the `size()` middleware will already set a\n\t * dynamic max-height based on viewport space.\n\t */\n\t@property({ type: String }) maxHeight = '25vh'\n\n\t@property({ type: Boolean }) multi = false\n\n\t/** Direct reference to the <input> inside <schmancy-input>. */\n\tinputRef = createRef<HTMLInputElement>()\n\n\t@query('#options') private optionsContainer!: HTMLUListElement\n\t@query('#empty') private empty!: HTMLLIElement\n\t@query('schmancy-input') private input!: SchmancyInput\n\t@queryAssignedElements({ flatten: true }) private options!: SchmancyOption[]\n\n\tprivate readonly searchTerm$ = new Subject<string>()\n\n\t// iOS scroll-blocking logic\n\tprivate startY = 0\n\n\tconnectedCallback() {\n\t\tsuper.connectedCallback()\n\n\t\t// 1) Search filtering\n\t\tthis.searchTerm$\n\t\t\t.pipe(\n\t\t\t\ttakeUntil(this.disconnecting),\n\t\t\t\tdistinctUntilChanged(),\n\t\t\t\ttap(term => {\n\t\t\t\t\tconst searchTerm = term.trim().toLowerCase()\n\n\t\t\t\t\t// Filter options using Levenshtein distance\n\t\t\t\t\tconst matches = this.options\n\t\t\t\t\t\t.map(option => {\n\t\t\t\t\t\t\tconst optionText = option.label.toLowerCase()\n\t\t\t\t\t\t\tconst levDistance = distance(searchTerm, optionText)\n\t\t\t\t\t\t\treturn { option, levDistance }\n\t\t\t\t\t\t})\n\t\t\t\t\t\t.filter(({ option, levDistance }) => {\n\t\t\t\t\t\t\t// If very short searchTerm, be lenient\n\t\t\t\t\t\t\tif (searchTerm.length < 3) return true\n\t\t\t\t\t\t\t// Otherwise, filter by distance\n\t\t\t\t\t\t\treturn levDistance <= option.label.toLowerCase().length - searchTerm.length\n\t\t\t\t\t\t})\n\t\t\t\t\t\t.sort((a, b) => a.levDistance - b.levDistance)\n\n\t\t\t\t\t// Show/hide\n\t\t\t\t\tthis.options.forEach(o => (o.hidden = true))\n\t\t\t\t\tfor (const { option } of matches) {\n\t\t\t\t\t\toption.hidden = false\n\t\t\t\t\t}\n\n\t\t\t\t\t// \"No results found\"\n\t\t\t\t\tthis.empty.hidden = matches.length > 0\n\n\t\t\t\t\tthis.requestUpdate()\n\t\t\t\t}),\n\t\t\t)\n\t\t\t.subscribe(() => {\n\t\t\t\t// Show dropdown on each new term\n\t\t\t\tthis.showOptions()\n\t\t\t})\n\n\t\t// 2) Focus out animation\n\t\tfromEvent<FocusEvent>(this, 'focusout')\n\t\t\t.pipe(\n\t\t\t\ttakeUntil(this.disconnecting),\n\t\t\t\tfilter(e => (e.relatedTarget as SchmancyOption)?.tagName !== 'SCHMANCY-OPTION'),\n\t\t\t\tswitchMap(() => {\n\t\t\t\t\tconst animation = this.optionsContainer.animate([{ opacity: 1 }, { opacity: 0 }], {\n\t\t\t\t\t\tduration: 250,\n\t\t\t\t\t\teasing: 'cubic-bezier(0.5, 0.01, 0.25, 1)',\n\t\t\t\t\t})\n\n\t\t\t\t\treturn from(\n\t\t\t\t\t\tnew Promise<void>(resolve => {\n\t\t\t\t\t\t\tanimation.onfinish = () => {\n\t\t\t\t\t\t\t\tthis.optionsContainer.style.display = 'none'\n\t\t\t\t\t\t\t\tthis.optionsContainer.style.opacity = '1'\n\t\t\t\t\t\t\t\tresolve()\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}),\n\t\t\t\t\t)\n\t\t\t\t}),\n\t\t\t)\n\t\t\t.subscribe({\n\t\t\t\tnext: () => {\n\t\t\t\t\t// Resync the input after closing\n\t\t\t\t\tif (this.multi) {\n\t\t\t\t\t\tconst selected = this.options.filter(o => o.selected).map(o => o.label)\n\t\t\t\t\t\tthis.input.value = selected.join(', ')\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis.input.value = this.options.find(o => o.value === this.value)?.label ?? ''\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t})\n\t}\n\n\tfirstUpdated() {\n\t\tthis.updateInputValue()\n\t}\n\n\tprotected updated(changedProps: Map<string | number | symbol, unknown>) {\n\t\tsuper.updated(changedProps)\n\t\tif (changedProps.has('value')) {\n\t\t\tthis.syncSelectionFromValue()\n\t\t\tthis.updateInputValue()\n\t\t}\n\t}\n\n\tprivate handleSlotChange() {\n\t\t// If no visible options, show \"empty\"\n\t\tthis.empty.hidden = this.options.some(option => !option.hidden)\n\t\tthis.syncSelectionFromValue()\n\t\tthis.updateInputValue()\n\t}\n\n\tprivate syncSelectionFromValue() {\n\t\tif (this.multi) {\n\t\t\tconst values = this.value\n\t\t\t\t.split(',')\n\t\t\t\t.map(v => v.trim())\n\t\t\t\t.filter(Boolean)\n\t\t\tthis.options.forEach(o => {\n\t\t\t\to.selected = values.includes(o.value)\n\t\t\t})\n\t\t} else {\n\t\t\tthis.options.forEach(o => {\n\t\t\t\to.selected = o.value === this.value\n\t\t\t})\n\t\t}\n\t}\n\n\tprivate updateInputValue() {\n\t\trequestAnimationFrame(() => {\n\t\t\tif (this.multi) {\n\t\t\t\tconst selected = this.options.filter(o => o.selected).map(o => o.label)\n\t\t\t\tthis.input.value = selected.join(', ')\n\t\t\t} else {\n\t\t\t\tconst found = this.options.find(o => o.value === this.value)?.label\n\t\t\t\tthis.input.value = found ?? ''\n\t\t\t}\n\t\t})\n\t}\n\n\t/**\n\t * MAIN: Show the dropdown, using Floating UI to size it\n\t * to the available space, and at least as wide as the input.\n\t */\n\tprivate async showOptions() {\n\t\tthis.optionsContainer.removeAttribute('hidden')\n\t\tthis.optionsContainer.style.display = 'block'\n\n\t\tconst { x, y } = await computePosition(this.input, this.optionsContainer, {\n\t\t\tplacement: 'bottom-start',\n\t\t\tmiddleware: [\n\t\t\t\toffset(5),\n\t\t\t\tflip(),\n\t\t\t\tshift({ padding: 5 }),\n\t\t\t\t// NEW: Let the floating element fill available space,\n\t\t\t\t// but be at least as wide as the input.\n\t\t\t\tsize({\n\t\t\t\t\tapply({ availableWidth, availableHeight, elements, rects }) {\n\t\t\t\t\t\t// At least match input width\n\t\t\t\t\t\tconst referenceWidth = rects.reference.width\n\t\t\t\t\t\telements.floating.style.minWidth = `${referenceWidth}px`\n\n\t\t\t\t\t\t// Cap to available viewport space\n\t\t\t\t\t\telements.floating.style.maxWidth = `${availableWidth}px`\n\t\t\t\t\t\telements.floating.style.maxHeight = `${availableHeight}px`\n\t\t\t\t\t},\n\t\t\t\t}),\n\t\t\t],\n\t\t})\n\n\t\tObject.assign(this.optionsContainer.style, {\n\t\t\tleft: `${x}px`,\n\t\t\ttop: `${y}px`,\n\t\t\tposition: 'absolute',\n\t\t\tzIndex: '9999',\n\t\t\toverflowY: 'auto',\n\t\t\t// The middleware is setting max-height, but if you want\n\t\t\t// a fallback you can still do:\n\t\t\t// maxHeight: this.maxHeight,\n\t\t})\n\t}\n\n\tprivate hideOptions() {\n\t\tthis.optionsContainer?.setAttribute('hidden', 'true')\n\t\tif (this.optionsContainer) {\n\t\t\tthis.optionsContainer.style.display = 'none'\n\t\t}\n\t}\n\n\tprivate handleInputChange(event: SchmancyInputInputEvent) {\n\t\tevent.preventDefault()\n\t\tevent.stopPropagation()\n\t\tconst term = event.detail.value\n\t\tthis.searchTerm$.next(term)\n\t}\n\n\t@eventOptions({ passive: true })\n\tprivate handleOptionClick(value: string) {\n\t\tif (this.multi) {\n\t\t\tconst option = this.options.find(o => o.value === value)\n\t\t\tif (option) option.selected = !option.selected\n\t\t\tconst selectedValues = this.options.filter(o => o.selected).map(o => o.value)\n\t\t\tthis.value = selectedValues.join(',')\n\t\t\tthis.updateInputValue()\n\t\t\tthis.dispatchEvent(\n\t\t\t\tnew CustomEvent<SchmancyAutocompleteChangeEvent['detail']>('change', {\n\t\t\t\t\tdetail: { value: selectedValues },\n\t\t\t\t\tbubbles: true,\n\t\t\t\t\tcomposed: true,\n\t\t\t\t}),\n\t\t\t)\n\t\t} else {\n\t\t\tthis.hideOptions()\n\t\t\tthis.value = value\n\t\t\tthis.updateInputValue()\n\t\t\tthis.dispatchEvent(\n\t\t\t\tnew CustomEvent<SchmancyAutocompleteChangeEvent['detail']>('change', {\n\t\t\t\t\tdetail: { value },\n\t\t\t\t\tbubbles: true,\n\t\t\t\t\tcomposed: true,\n\t\t\t\t}),\n\t\t\t)\n\t\t}\n\t}\n\n\tpublic checkValidity() {\n\t\treturn this.multi ? this.options.some(o => o.selected) : Boolean(this.value)\n\t}\n\n\tpublic reportValidity() {\n\t\treturn this.inputRef.value?.reportValidity()\n\t}\n\n\tprivate handleTouchStart(event: TouchEvent) {\n\t\tthis.startY = event.touches?.[0]?.clientY ?? 0\n\t}\n\n\tprivate preventScroll(event: TouchEvent) {\n\t\tconst target = event.target as HTMLElement\n\t\tif (!this.optionsContainer.contains(target)) return\n\n\t\tconst scrollTop = this.optionsContainer.scrollTop\n\t\tconst scrollHeight = this.optionsContainer.scrollHeight\n\t\tconst offsetHeight = this.optionsContainer.offsetHeight\n\t\tconst contentHeight = scrollHeight - offsetHeight\n\n\t\tconst currentY = event.touches?.[0]?.clientY ?? 0\n\t\tif ((scrollTop <= 0 && currentY > this.startY) || (scrollTop >= contentHeight && currentY < this.startY)) {\n\t\t\tevent.preventDefault()\n\t\t}\n\t}\n\n\trender() {\n\t\tconst isOpen = !this.optionsContainer?.hasAttribute('hidden')\n\n\t\treturn html`\n\t\t\t<div class=\"relative\">\n\t\t\t\t<!-- The trigger slot (if any) overrides the default SchmancyInput -->\n\t\t\t\t<slot name=\"trigger\">\n\t\t\t\t\t<schmancy-input\n\t\t\t\t\t\t${ref(this.inputRef)}\n\t\t\t\t\t\tid=\"input\"\n\t\t\t\t\t\tclass=\"w-full\"\n\t\t\t\t\t\t.label=${this.label}\n\t\t\t\t\t\t.placeholder=${this.placeholder}\n\t\t\t\t\t\t.required=${this.required}\n\t\t\t\t\t\ttype=\"search\"\n\t\t\t\t\t\tinputmode=\"text\"\n\t\t\t\t\t\tautocomplete=\"off\"\n\t\t\t\t\t\tclickable\n\t\t\t\t\t\trole=\"combobox\"\n\t\t\t\t\t\taria-autocomplete=\"list\"\n\t\t\t\t\t\taria-haspopup=\"listbox\"\n\t\t\t\t\t\taria-controls=\"options\"\n\t\t\t\t\t\taria-expanded=${isOpen}\n\t\t\t\t\t\t@focus=${() => this.showOptions()}\n\t\t\t\t\t\t@input=${this.handleInputChange}\n\t\t\t\t\t>\n\t\t\t\t\t</schmancy-input>\n\t\t\t\t</slot>\n\n\t\t\t\t<ul\n\t\t\t\t\tid=\"options\"\n\t\t\t\t\ttabindex=\"-1\"\n\t\t\t\t\tclass=\"absolute z-30 mt-1 w-full overflow-auto rounded-md shadow-sm\"\n\t\t\t\t\trole=\"listbox\"\n\t\t\t\t\thidden\n\t\t\t\t\t@click=${(e: Event) => {\n\t\t\t\t\t\t// Each <schmancy-option> dispatches CustomEvent('click', { detail: { value } })\n\t\t\t\t\t\tconst detailVal = (e as CustomEvent).detail?.value\n\t\t\t\t\t\tif (detailVal) this.handleOptionClick(detailVal)\n\t\t\t\t\t}}\n\t\t\t\t\t@touchstart=${this.handleTouchStart}\n\t\t\t\t\t@touchmove=${this.preventScroll}\n\t\t\t\t\t${color({ bgColor: SchmancyTheme.sys.color.surface.container })}\n\t\t\t\t>\n\t\t\t\t\t<!-- \"No results\" option -->\n\t\t\t\t\t<li id=\"empty\" tabindex=\"-1\">\n\t\t\t\t\t\t<schmancy-typography type=\"label\">No results found</schmancy-typography>\n\t\t\t\t\t</li>\n\n\t\t\t\t\t<!-- Slot for the <schmancy-option> elements -->\n\t\t\t\t\t<slot @slotchange=${this.handleSlotChange}> </slot>\n\t\t\t\t</ul>\n\t\t\t</div>\n\t\t`\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-autocomplete': SchmancyAutocomplete\n\t}\n}\n"],"names":["peq","Uint32Array","distance","a","b","length","tmp","n","m","lst","pv","mv","sc","i","charCodeAt","eq","xv","mhc","phc","hsize","Math","ceil","vsize","j","start","vlen","min","k","pb","mb","xh","ph","mh","score","SchmancyAutocomplete","$LitElement","constructor","super","arguments","this","required","placeholder","value","label","maxHeight","multi","inputRef","createRef","searchTerm$","Subject","startY","connectedCallback","pipe","takeUntil","disconnecting","distinctUntilChanged","tap","term","searchTerm","trim","toLowerCase","matches","options","map","option","optionText","levDistance","filter","sort","forEach","o","hidden","empty","requestUpdate","subscribe","showOptions","fromEvent","e","relatedTarget","tagName","switchMap","animation","optionsContainer","animate","opacity","duration","easing","from","Promise","resolve","onfinish","style","display","next","selected","input","join","find","firstUpdated","updateInputValue","changedProps","updated","has","syncSelectionFromValue","some","values","split","v","Boolean","includes","requestAnimationFrame","found","removeAttribute","x","y","computePosition","placement","middleware","offset","flip","shift","padding","size","availableWidth","availableHeight","elements","rects","referenceWidth","reference","width","floating","minWidth","maxWidth","Object","assign","left","top","position","zIndex","overflowY","hideOptions","setAttribute","event","preventDefault","stopPropagation","detail","selectedValues","dispatchEvent","CustomEvent","bubbles","composed","reportValidity","touches","clientY","target","contains","scrollTop","contentHeight","scrollHeight","offsetHeight","currentY","render","isOpen","hasAttribute","html","ref","handleInputChange","detailVal","handleOptionClick","handleTouchStart","preventScroll","color","bgColor","SchmancyTheme","sys","surface","container","handleSlotChange","__decorateClass","property","type","prototype","String","reflect","query","queryAssignedElements","flatten","eventOptions","passive","customElement"],"mappings":"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","x_google_ignoreList":[0]}
|
|
@@ -2,8 +2,8 @@ import { computePosition as Y, offset as D, flip as H, shift as M, size as P } f
|
|
|
2
2
|
import { Subject as z, fromEvent as N, from as U } from "rxjs";
|
|
3
3
|
import "lit/directives/class-map.js";
|
|
4
4
|
import "lit/directives/style-map.js";
|
|
5
|
-
import { $ as B } from "./litElement.mixin-
|
|
6
|
-
import "./tailwind.mixin-
|
|
5
|
+
import { $ as B } from "./litElement.mixin-BYMdyxuB.js";
|
|
6
|
+
import "./tailwind.mixin-D2ZmggHb.js";
|
|
7
7
|
import { c as F } from "./ripple-BumgqsDT.js";
|
|
8
8
|
import { S as R } from "./theme.interface-C5Kj6WjD.js";
|
|
9
9
|
import { html as L } from "lit";
|
|
@@ -222,4 +222,4 @@ let c = class extends B(":host{display:block;border:unset!important;line-height:
|
|
|
222
222
|
}
|
|
223
223
|
};
|
|
224
224
|
u([$({ type: Boolean })], c.prototype, "required", 2), u([$({ type: String })], c.prototype, "placeholder", 2), u([$({ type: String, reflect: !0 })], c.prototype, "value", 2), u([$({ type: String, reflect: !0 })], c.prototype, "label", 2), u([$({ type: String })], c.prototype, "maxHeight", 2), u([$({ type: Boolean })], c.prototype, "multi", 2), u([V("#options")], c.prototype, "optionsContainer", 2), u([V("#empty")], c.prototype, "empty", 2), u([V("schmancy-input")], c.prototype, "input", 2), u([W({ flatten: !0 })], c.prototype, "options", 2), u([G({ passive: !0 })], c.prototype, "handleOptionClick", 1), c = u([J("schmancy-autocomplete")], c);
|
|
225
|
-
//# sourceMappingURL=autocomplete-
|
|
225
|
+
//# sourceMappingURL=autocomplete-CiCw7cWc.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"autocomplete-C36FPrMT.js","sources":["../node_modules/fastest-levenshtein/esm/mod.js","../src/autocomplete/autocomplete.ts"],"sourcesContent":["const peq = new Uint32Array(0x10000);\nconst myers_32 = (a, b) => {\n const n = a.length;\n const m = b.length;\n const lst = 1 << (n - 1);\n let pv = -1;\n let mv = 0;\n let sc = n;\n let i = n;\n while (i--) {\n peq[a.charCodeAt(i)] |= 1 << i;\n }\n for (i = 0; i < m; i++) {\n let eq = peq[b.charCodeAt(i)];\n const xv = eq | mv;\n eq |= ((eq & pv) + pv) ^ pv;\n mv |= ~(eq | pv);\n pv &= eq;\n if (mv & lst) {\n sc++;\n }\n if (pv & lst) {\n sc--;\n }\n mv = (mv << 1) | 1;\n pv = (pv << 1) | ~(xv | mv);\n mv &= xv;\n }\n i = n;\n while (i--) {\n peq[a.charCodeAt(i)] = 0;\n }\n return sc;\n};\nconst myers_x = (b, a) => {\n const n = a.length;\n const m = b.length;\n const mhc = [];\n const phc = [];\n const hsize = Math.ceil(n / 32);\n const vsize = Math.ceil(m / 32);\n for (let i = 0; i < hsize; i++) {\n phc[i] = -1;\n mhc[i] = 0;\n }\n let j = 0;\n for (; j < vsize - 1; j++) {\n let mv = 0;\n let pv = -1;\n const start = j * 32;\n const vlen = Math.min(32, m) + start;\n for (let k = start; k < vlen; k++) {\n peq[b.charCodeAt(k)] |= 1 << k;\n }\n for (let i = 0; i < n; i++) {\n const eq = peq[a.charCodeAt(i)];\n const pb = (phc[(i / 32) | 0] >>> i) & 1;\n const mb = (mhc[(i / 32) | 0] >>> i) & 1;\n const xv = eq | mv;\n const xh = ((((eq | mb) & pv) + pv) ^ pv) | eq | mb;\n let ph = mv | ~(xh | pv);\n let mh = pv & xh;\n if ((ph >>> 31) ^ pb) {\n phc[(i / 32) | 0] ^= 1 << i;\n }\n if ((mh >>> 31) ^ mb) {\n mhc[(i / 32) | 0] ^= 1 << i;\n }\n ph = (ph << 1) | pb;\n mh = (mh << 1) | mb;\n pv = mh | ~(xv | ph);\n mv = ph & xv;\n }\n for (let k = start; k < vlen; k++) {\n peq[b.charCodeAt(k)] = 0;\n }\n }\n let mv = 0;\n let pv = -1;\n const start = j * 32;\n const vlen = Math.min(32, m - start) + start;\n for (let k = start; k < vlen; k++) {\n peq[b.charCodeAt(k)] |= 1 << k;\n }\n let score = m;\n for (let i = 0; i < n; i++) {\n const eq = peq[a.charCodeAt(i)];\n const pb = (phc[(i / 32) | 0] >>> i) & 1;\n const mb = (mhc[(i / 32) | 0] >>> i) & 1;\n const xv = eq | mv;\n const xh = ((((eq | mb) & pv) + pv) ^ pv) | eq | mb;\n let ph = mv | ~(xh | pv);\n let mh = pv & xh;\n score += (ph >>> (m - 1)) & 1;\n score -= (mh >>> (m - 1)) & 1;\n if ((ph >>> 31) ^ pb) {\n phc[(i / 32) | 0] ^= 1 << i;\n }\n if ((mh >>> 31) ^ mb) {\n mhc[(i / 32) | 0] ^= 1 << i;\n }\n ph = (ph << 1) | pb;\n mh = (mh << 1) | mb;\n pv = mh | ~(xv | ph);\n mv = ph & xv;\n }\n for (let k = start; k < vlen; k++) {\n peq[b.charCodeAt(k)] = 0;\n }\n return score;\n};\nconst distance = (a, b) => {\n if (a.length < b.length) {\n const tmp = b;\n b = a;\n a = tmp;\n }\n if (b.length === 0) {\n return a.length;\n }\n if (a.length <= 32) {\n return myers_32(a, b);\n }\n return myers_x(a, b);\n};\nconst closest = (str, arr) => {\n let min_distance = Infinity;\n let min_index = 0;\n for (let i = 0; i < arr.length; i++) {\n const dist = distance(str, arr[i]);\n if (dist < min_distance) {\n min_distance = dist;\n min_index = i;\n }\n }\n return arr[min_index];\n};\nexport { closest, distance };\n","import {\n\tcomputePosition,\n\tflip,\n\toffset,\n\tshift,\n\tsize, // <-- NEW\n} from '@floating-ui/dom'\nimport { $LitElement } from '@mixins/index'\nimport { color } from '@schmancy/directives'\nimport SchmancyInput from '@schmancy/input/input'\nimport SchmancyOption from '@schmancy/option/option'\nimport { SchmancyTheme } from '@schmancy/theme/theme.interface'\nimport { distance } from 'fastest-levenshtein'\nimport { html } from 'lit'\nimport { customElement, eventOptions, property, query, queryAssignedElements } from 'lit/decorators.js'\nimport { createRef, ref } from 'lit/directives/ref.js'\nimport { from, fromEvent, Subject } from 'rxjs'\nimport { distinctUntilChanged, filter, switchMap, takeUntil, tap } from 'rxjs/operators'\nimport style from './autocomplete.scss?inline'\n\nimport type { SchmancyInputInputEvent } from '@schmancy/input/input'\n\nexport type SchmancyAutocompleteChangeEvent = CustomEvent<{\n\tvalue: string | string[]\n}>\n\n@customElement('schmancy-autocomplete')\nexport default class SchmancyAutocomplete extends $LitElement(style) {\n\t@property({ type: Boolean }) required = false\n\t@property({ type: String }) placeholder = ''\n\t@property({ type: String, reflect: true }) value = ''\n\t@property({ type: String, reflect: true }) label = ''\n\n\t/**\n\t * ⚠️ If you still want an explicit fallback for maximum dropdown height,\n\t * you can keep this, but the `size()` middleware will already set a\n\t * dynamic max-height based on viewport space.\n\t */\n\t@property({ type: String }) maxHeight = '25vh'\n\n\t@property({ type: Boolean }) multi = false\n\n\t/** Direct reference to the <input> inside <schmancy-input>. */\n\tinputRef = createRef<HTMLInputElement>()\n\n\t@query('#options') private optionsContainer!: HTMLUListElement\n\t@query('#empty') private empty!: HTMLLIElement\n\t@query('schmancy-input') private input!: SchmancyInput\n\t@queryAssignedElements({ flatten: true }) private options!: SchmancyOption[]\n\n\tprivate readonly searchTerm$ = new Subject<string>()\n\n\t// iOS scroll-blocking logic\n\tprivate startY = 0\n\n\tconnectedCallback() {\n\t\tsuper.connectedCallback()\n\n\t\t// 1) Search filtering\n\t\tthis.searchTerm$\n\t\t\t.pipe(\n\t\t\t\ttakeUntil(this.disconnecting),\n\t\t\t\tdistinctUntilChanged(),\n\t\t\t\ttap(term => {\n\t\t\t\t\tconst searchTerm = term.trim().toLowerCase()\n\n\t\t\t\t\t// Filter options using Levenshtein distance\n\t\t\t\t\tconst matches = this.options\n\t\t\t\t\t\t.map(option => {\n\t\t\t\t\t\t\tconst optionText = option.label.toLowerCase()\n\t\t\t\t\t\t\tconst levDistance = distance(searchTerm, optionText)\n\t\t\t\t\t\t\treturn { option, levDistance }\n\t\t\t\t\t\t})\n\t\t\t\t\t\t.filter(({ option, levDistance }) => {\n\t\t\t\t\t\t\t// If very short searchTerm, be lenient\n\t\t\t\t\t\t\tif (searchTerm.length < 3) return true\n\t\t\t\t\t\t\t// Otherwise, filter by distance\n\t\t\t\t\t\t\treturn levDistance <= option.label.toLowerCase().length - searchTerm.length\n\t\t\t\t\t\t})\n\t\t\t\t\t\t.sort((a, b) => a.levDistance - b.levDistance)\n\n\t\t\t\t\t// Show/hide\n\t\t\t\t\tthis.options.forEach(o => (o.hidden = true))\n\t\t\t\t\tfor (const { option } of matches) {\n\t\t\t\t\t\toption.hidden = false\n\t\t\t\t\t}\n\n\t\t\t\t\t// \"No results found\"\n\t\t\t\t\tthis.empty.hidden = matches.length > 0\n\n\t\t\t\t\tthis.requestUpdate()\n\t\t\t\t}),\n\t\t\t)\n\t\t\t.subscribe(() => {\n\t\t\t\t// Show dropdown on each new term\n\t\t\t\tthis.showOptions()\n\t\t\t})\n\n\t\t// 2) Focus out animation\n\t\tfromEvent<FocusEvent>(this, 'focusout')\n\t\t\t.pipe(\n\t\t\t\ttakeUntil(this.disconnecting),\n\t\t\t\tfilter(e => (e.relatedTarget as SchmancyOption)?.tagName !== 'SCHMANCY-OPTION'),\n\t\t\t\tswitchMap(() => {\n\t\t\t\t\tconst animation = this.optionsContainer.animate([{ opacity: 1 }, { opacity: 0 }], {\n\t\t\t\t\t\tduration: 250,\n\t\t\t\t\t\teasing: 'cubic-bezier(0.5, 0.01, 0.25, 1)',\n\t\t\t\t\t})\n\n\t\t\t\t\treturn from(\n\t\t\t\t\t\tnew Promise<void>(resolve => {\n\t\t\t\t\t\t\tanimation.onfinish = () => {\n\t\t\t\t\t\t\t\tthis.optionsContainer.style.display = 'none'\n\t\t\t\t\t\t\t\tthis.optionsContainer.style.opacity = '1'\n\t\t\t\t\t\t\t\tresolve()\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}),\n\t\t\t\t\t)\n\t\t\t\t}),\n\t\t\t)\n\t\t\t.subscribe({\n\t\t\t\tnext: () => {\n\t\t\t\t\t// Resync the input after closing\n\t\t\t\t\tif (this.multi) {\n\t\t\t\t\t\tconst selected = this.options.filter(o => o.selected).map(o => o.label)\n\t\t\t\t\t\tthis.input.value = selected.join(', ')\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis.input.value = this.options.find(o => o.value === this.value)?.label ?? ''\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t})\n\t}\n\n\tfirstUpdated() {\n\t\tthis.updateInputValue()\n\t}\n\n\tprotected updated(changedProps: Map<string | number | symbol, unknown>) {\n\t\tsuper.updated(changedProps)\n\t\tif (changedProps.has('value')) {\n\t\t\tthis.syncSelectionFromValue()\n\t\t\tthis.updateInputValue()\n\t\t}\n\t}\n\n\tprivate handleSlotChange() {\n\t\t// If no visible options, show \"empty\"\n\t\tthis.empty.hidden = this.options.some(option => !option.hidden)\n\t\tthis.syncSelectionFromValue()\n\t\tthis.updateInputValue()\n\t}\n\n\tprivate syncSelectionFromValue() {\n\t\tif (this.multi) {\n\t\t\tconst values = this.value\n\t\t\t\t.split(',')\n\t\t\t\t.map(v => v.trim())\n\t\t\t\t.filter(Boolean)\n\t\t\tthis.options.forEach(o => {\n\t\t\t\to.selected = values.includes(o.value)\n\t\t\t})\n\t\t} else {\n\t\t\tthis.options.forEach(o => {\n\t\t\t\to.selected = o.value === this.value\n\t\t\t})\n\t\t}\n\t}\n\n\tprivate updateInputValue() {\n\t\trequestAnimationFrame(() => {\n\t\t\tif (this.multi) {\n\t\t\t\tconst selected = this.options.filter(o => o.selected).map(o => o.label)\n\t\t\t\tthis.input.value = selected.join(', ')\n\t\t\t} else {\n\t\t\t\tconst found = this.options.find(o => o.value === this.value)?.label\n\t\t\t\tthis.input.value = found ?? ''\n\t\t\t}\n\t\t})\n\t}\n\n\t/**\n\t * MAIN: Show the dropdown, using Floating UI to size it\n\t * to the available space, and at least as wide as the input.\n\t */\n\tprivate async showOptions() {\n\t\tthis.optionsContainer.removeAttribute('hidden')\n\t\tthis.optionsContainer.style.display = 'block'\n\n\t\tconst { x, y } = await computePosition(this.input, this.optionsContainer, {\n\t\t\tplacement: 'bottom-start',\n\t\t\tmiddleware: [\n\t\t\t\toffset(5),\n\t\t\t\tflip(),\n\t\t\t\tshift({ padding: 5 }),\n\t\t\t\t// NEW: Let the floating element fill available space,\n\t\t\t\t// but be at least as wide as the input.\n\t\t\t\tsize({\n\t\t\t\t\tapply({ availableWidth, availableHeight, elements, rects }) {\n\t\t\t\t\t\t// At least match input width\n\t\t\t\t\t\tconst referenceWidth = rects.reference.width\n\t\t\t\t\t\telements.floating.style.minWidth = `${referenceWidth}px`\n\n\t\t\t\t\t\t// Cap to available viewport space\n\t\t\t\t\t\telements.floating.style.maxWidth = `${availableWidth}px`\n\t\t\t\t\t\telements.floating.style.maxHeight = `${availableHeight}px`\n\t\t\t\t\t},\n\t\t\t\t}),\n\t\t\t],\n\t\t})\n\n\t\tObject.assign(this.optionsContainer.style, {\n\t\t\tleft: `${x}px`,\n\t\t\ttop: `${y}px`,\n\t\t\tposition: 'absolute',\n\t\t\tzIndex: '9999',\n\t\t\toverflowY: 'auto',\n\t\t\t// The middleware is setting max-height, but if you want\n\t\t\t// a fallback you can still do:\n\t\t\t// maxHeight: this.maxHeight,\n\t\t})\n\t}\n\n\tprivate hideOptions() {\n\t\tthis.optionsContainer?.setAttribute('hidden', 'true')\n\t\tif (this.optionsContainer) {\n\t\t\tthis.optionsContainer.style.display = 'none'\n\t\t}\n\t}\n\n\tprivate handleInputChange(event: SchmancyInputInputEvent) {\n\t\tevent.preventDefault()\n\t\tevent.stopPropagation()\n\t\tconst term = event.detail.value\n\t\tthis.searchTerm$.next(term)\n\t}\n\n\t@eventOptions({ passive: true })\n\tprivate handleOptionClick(value: string) {\n\t\tif (this.multi) {\n\t\t\tconst option = this.options.find(o => o.value === value)\n\t\t\tif (option) option.selected = !option.selected\n\t\t\tconst selectedValues = this.options.filter(o => o.selected).map(o => o.value)\n\t\t\tthis.value = selectedValues.join(',')\n\t\t\tthis.updateInputValue()\n\t\t\tthis.dispatchEvent(\n\t\t\t\tnew CustomEvent<SchmancyAutocompleteChangeEvent['detail']>('change', {\n\t\t\t\t\tdetail: { value: selectedValues },\n\t\t\t\t\tbubbles: true,\n\t\t\t\t\tcomposed: true,\n\t\t\t\t}),\n\t\t\t)\n\t\t} else {\n\t\t\tthis.hideOptions()\n\t\t\tthis.value = value\n\t\t\tthis.updateInputValue()\n\t\t\tthis.dispatchEvent(\n\t\t\t\tnew CustomEvent<SchmancyAutocompleteChangeEvent['detail']>('change', {\n\t\t\t\t\tdetail: { value },\n\t\t\t\t\tbubbles: true,\n\t\t\t\t\tcomposed: true,\n\t\t\t\t}),\n\t\t\t)\n\t\t}\n\t}\n\n\tpublic checkValidity() {\n\t\treturn this.multi ? this.options.some(o => o.selected) : Boolean(this.value)\n\t}\n\n\tpublic reportValidity() {\n\t\treturn this.inputRef.value?.reportValidity()\n\t}\n\n\tprivate handleTouchStart(event: TouchEvent) {\n\t\tthis.startY = event.touches?.[0]?.clientY ?? 0\n\t}\n\n\tprivate preventScroll(event: TouchEvent) {\n\t\tconst target = event.target as HTMLElement\n\t\tif (!this.optionsContainer.contains(target)) return\n\n\t\tconst scrollTop = this.optionsContainer.scrollTop\n\t\tconst scrollHeight = this.optionsContainer.scrollHeight\n\t\tconst offsetHeight = this.optionsContainer.offsetHeight\n\t\tconst contentHeight = scrollHeight - offsetHeight\n\n\t\tconst currentY = event.touches?.[0]?.clientY ?? 0\n\t\tif ((scrollTop <= 0 && currentY > this.startY) || (scrollTop >= contentHeight && currentY < this.startY)) {\n\t\t\tevent.preventDefault()\n\t\t}\n\t}\n\n\trender() {\n\t\tconst isOpen = !this.optionsContainer?.hasAttribute('hidden')\n\n\t\treturn html`\n\t\t\t<div class=\"relative\">\n\t\t\t\t<!-- The trigger slot (if any) overrides the default SchmancyInput -->\n\t\t\t\t<slot name=\"trigger\">\n\t\t\t\t\t<schmancy-input\n\t\t\t\t\t\t${ref(this.inputRef)}\n\t\t\t\t\t\tid=\"input\"\n\t\t\t\t\t\tclass=\"w-full\"\n\t\t\t\t\t\t.label=${this.label}\n\t\t\t\t\t\t.placeholder=${this.placeholder}\n\t\t\t\t\t\t.required=${this.required}\n\t\t\t\t\t\ttype=\"search\"\n\t\t\t\t\t\tinputmode=\"text\"\n\t\t\t\t\t\tautocomplete=\"off\"\n\t\t\t\t\t\tclickable\n\t\t\t\t\t\trole=\"combobox\"\n\t\t\t\t\t\taria-autocomplete=\"list\"\n\t\t\t\t\t\taria-haspopup=\"listbox\"\n\t\t\t\t\t\taria-controls=\"options\"\n\t\t\t\t\t\taria-expanded=${isOpen}\n\t\t\t\t\t\t@focus=${() => this.showOptions()}\n\t\t\t\t\t\t@input=${this.handleInputChange}\n\t\t\t\t\t>\n\t\t\t\t\t</schmancy-input>\n\t\t\t\t</slot>\n\n\t\t\t\t<ul\n\t\t\t\t\tid=\"options\"\n\t\t\t\t\ttabindex=\"-1\"\n\t\t\t\t\tclass=\"absolute z-30 mt-1 w-full overflow-auto rounded-md shadow-sm\"\n\t\t\t\t\trole=\"listbox\"\n\t\t\t\t\thidden\n\t\t\t\t\t@click=${(e: Event) => {\n\t\t\t\t\t\t// Each <schmancy-option> dispatches CustomEvent('click', { detail: { value } })\n\t\t\t\t\t\tconst detailVal = (e as CustomEvent).detail?.value\n\t\t\t\t\t\tif (detailVal) this.handleOptionClick(detailVal)\n\t\t\t\t\t}}\n\t\t\t\t\t@touchstart=${this.handleTouchStart}\n\t\t\t\t\t@touchmove=${this.preventScroll}\n\t\t\t\t\t${color({ bgColor: SchmancyTheme.sys.color.surface.container })}\n\t\t\t\t>\n\t\t\t\t\t<!-- \"No results\" option -->\n\t\t\t\t\t<li id=\"empty\" tabindex=\"-1\">\n\t\t\t\t\t\t<schmancy-typography type=\"label\">No results found</schmancy-typography>\n\t\t\t\t\t</li>\n\n\t\t\t\t\t<!-- Slot for the <schmancy-option> elements -->\n\t\t\t\t\t<slot @slotchange=${this.handleSlotChange}> </slot>\n\t\t\t\t</ul>\n\t\t\t</div>\n\t\t`\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-autocomplete': SchmancyAutocomplete\n\t}\n}\n"],"names":["peq","Uint32Array","distance","a","b","length","tmp","n","m","lst","pv","mv","sc","i","charCodeAt","eq","xv","mhc","phc","hsize","Math","ceil","vsize","j","start","vlen","min","k","pb","mb","xh","ph","mh","score","SchmancyAutocomplete","$LitElement","super","arguments","this","required","placeholder","value","label","maxHeight","multi","inputRef","createRef","searchTerm$","Subject","startY","connectedCallback","pipe","takeUntil","disconnecting","distinctUntilChanged","tap","term","searchTerm","trim","toLowerCase","matches","options","map","option","optionText","levDistance","filter","sort","forEach","o","hidden","empty","requestUpdate","subscribe","showOptions","fromEvent","e","relatedTarget","tagName","switchMap","animation","optionsContainer","animate","opacity","duration","easing","from","Promise","resolve","onfinish","style","display","next","selected","input","join","find","updateInputValue","changedProps","updated","has","syncSelectionFromValue","handleSlotChange","some","values","split","v","Boolean","includes","requestAnimationFrame","found","removeAttribute","x","y","computePosition","placement","middleware","offset","flip","shift","padding","size","apply","availableWidth","availableHeight","elements","rects","referenceWidth","reference","width","floating","minWidth","maxWidth","Object","assign","left","top","position","zIndex","overflowY","setAttribute","event","preventDefault","stopPropagation","detail","selectedValues","dispatchEvent","CustomEvent","bubbles","composed","hideOptions","reportValidity","touches","clientY","target","contains","scrollTop","contentHeight","scrollHeight","offsetHeight","currentY","render","isOpen","hasAttribute","html","ref","handleInputChange","detailVal","handleOptionClick","handleTouchStart","preventScroll","color","bgColor","SchmancyTheme","sys","surface","container","__decorateClass","property","type","prototype","String","reflect","query","queryAssignedElements","flatten","eventOptions","passive","customElement"],"mappings":"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","x_google_ignoreList":[0]}
|
|
1
|
+
{"version":3,"file":"autocomplete-CiCw7cWc.js","sources":["../node_modules/fastest-levenshtein/esm/mod.js","../src/autocomplete/autocomplete.ts"],"sourcesContent":["const peq = new Uint32Array(0x10000);\nconst myers_32 = (a, b) => {\n const n = a.length;\n const m = b.length;\n const lst = 1 << (n - 1);\n let pv = -1;\n let mv = 0;\n let sc = n;\n let i = n;\n while (i--) {\n peq[a.charCodeAt(i)] |= 1 << i;\n }\n for (i = 0; i < m; i++) {\n let eq = peq[b.charCodeAt(i)];\n const xv = eq | mv;\n eq |= ((eq & pv) + pv) ^ pv;\n mv |= ~(eq | pv);\n pv &= eq;\n if (mv & lst) {\n sc++;\n }\n if (pv & lst) {\n sc--;\n }\n mv = (mv << 1) | 1;\n pv = (pv << 1) | ~(xv | mv);\n mv &= xv;\n }\n i = n;\n while (i--) {\n peq[a.charCodeAt(i)] = 0;\n }\n return sc;\n};\nconst myers_x = (b, a) => {\n const n = a.length;\n const m = b.length;\n const mhc = [];\n const phc = [];\n const hsize = Math.ceil(n / 32);\n const vsize = Math.ceil(m / 32);\n for (let i = 0; i < hsize; i++) {\n phc[i] = -1;\n mhc[i] = 0;\n }\n let j = 0;\n for (; j < vsize - 1; j++) {\n let mv = 0;\n let pv = -1;\n const start = j * 32;\n const vlen = Math.min(32, m) + start;\n for (let k = start; k < vlen; k++) {\n peq[b.charCodeAt(k)] |= 1 << k;\n }\n for (let i = 0; i < n; i++) {\n const eq = peq[a.charCodeAt(i)];\n const pb = (phc[(i / 32) | 0] >>> i) & 1;\n const mb = (mhc[(i / 32) | 0] >>> i) & 1;\n const xv = eq | mv;\n const xh = ((((eq | mb) & pv) + pv) ^ pv) | eq | mb;\n let ph = mv | ~(xh | pv);\n let mh = pv & xh;\n if ((ph >>> 31) ^ pb) {\n phc[(i / 32) | 0] ^= 1 << i;\n }\n if ((mh >>> 31) ^ mb) {\n mhc[(i / 32) | 0] ^= 1 << i;\n }\n ph = (ph << 1) | pb;\n mh = (mh << 1) | mb;\n pv = mh | ~(xv | ph);\n mv = ph & xv;\n }\n for (let k = start; k < vlen; k++) {\n peq[b.charCodeAt(k)] = 0;\n }\n }\n let mv = 0;\n let pv = -1;\n const start = j * 32;\n const vlen = Math.min(32, m - start) + start;\n for (let k = start; k < vlen; k++) {\n peq[b.charCodeAt(k)] |= 1 << k;\n }\n let score = m;\n for (let i = 0; i < n; i++) {\n const eq = peq[a.charCodeAt(i)];\n const pb = (phc[(i / 32) | 0] >>> i) & 1;\n const mb = (mhc[(i / 32) | 0] >>> i) & 1;\n const xv = eq | mv;\n const xh = ((((eq | mb) & pv) + pv) ^ pv) | eq | mb;\n let ph = mv | ~(xh | pv);\n let mh = pv & xh;\n score += (ph >>> (m - 1)) & 1;\n score -= (mh >>> (m - 1)) & 1;\n if ((ph >>> 31) ^ pb) {\n phc[(i / 32) | 0] ^= 1 << i;\n }\n if ((mh >>> 31) ^ mb) {\n mhc[(i / 32) | 0] ^= 1 << i;\n }\n ph = (ph << 1) | pb;\n mh = (mh << 1) | mb;\n pv = mh | ~(xv | ph);\n mv = ph & xv;\n }\n for (let k = start; k < vlen; k++) {\n peq[b.charCodeAt(k)] = 0;\n }\n return score;\n};\nconst distance = (a, b) => {\n if (a.length < b.length) {\n const tmp = b;\n b = a;\n a = tmp;\n }\n if (b.length === 0) {\n return a.length;\n }\n if (a.length <= 32) {\n return myers_32(a, b);\n }\n return myers_x(a, b);\n};\nconst closest = (str, arr) => {\n let min_distance = Infinity;\n let min_index = 0;\n for (let i = 0; i < arr.length; i++) {\n const dist = distance(str, arr[i]);\n if (dist < min_distance) {\n min_distance = dist;\n min_index = i;\n }\n }\n return arr[min_index];\n};\nexport { closest, distance };\n","import {\n\tcomputePosition,\n\tflip,\n\toffset,\n\tshift,\n\tsize, // <-- NEW\n} from '@floating-ui/dom'\nimport { $LitElement } from '@mixins/index'\nimport { color } from '@schmancy/directives'\nimport SchmancyInput from '@schmancy/input/input'\nimport SchmancyOption from '@schmancy/option/option'\nimport { SchmancyTheme } from '@schmancy/theme/theme.interface'\nimport { distance } from 'fastest-levenshtein'\nimport { html } from 'lit'\nimport { customElement, eventOptions, property, query, queryAssignedElements } from 'lit/decorators.js'\nimport { createRef, ref } from 'lit/directives/ref.js'\nimport { from, fromEvent, Subject } from 'rxjs'\nimport { distinctUntilChanged, filter, switchMap, takeUntil, tap } from 'rxjs/operators'\nimport style from './autocomplete.scss?inline'\n\nimport type { SchmancyInputInputEvent } from '@schmancy/input/input'\n\nexport type SchmancyAutocompleteChangeEvent = CustomEvent<{\n\tvalue: string | string[]\n}>\n\n@customElement('schmancy-autocomplete')\nexport default class SchmancyAutocomplete extends $LitElement(style) {\n\t@property({ type: Boolean }) required = false\n\t@property({ type: String }) placeholder = ''\n\t@property({ type: String, reflect: true }) value = ''\n\t@property({ type: String, reflect: true }) label = ''\n\n\t/**\n\t * ⚠️ If you still want an explicit fallback for maximum dropdown height,\n\t * you can keep this, but the `size()` middleware will already set a\n\t * dynamic max-height based on viewport space.\n\t */\n\t@property({ type: String }) maxHeight = '25vh'\n\n\t@property({ type: Boolean }) multi = false\n\n\t/** Direct reference to the <input> inside <schmancy-input>. */\n\tinputRef = createRef<HTMLInputElement>()\n\n\t@query('#options') private optionsContainer!: HTMLUListElement\n\t@query('#empty') private empty!: HTMLLIElement\n\t@query('schmancy-input') private input!: SchmancyInput\n\t@queryAssignedElements({ flatten: true }) private options!: SchmancyOption[]\n\n\tprivate readonly searchTerm$ = new Subject<string>()\n\n\t// iOS scroll-blocking logic\n\tprivate startY = 0\n\n\tconnectedCallback() {\n\t\tsuper.connectedCallback()\n\n\t\t// 1) Search filtering\n\t\tthis.searchTerm$\n\t\t\t.pipe(\n\t\t\t\ttakeUntil(this.disconnecting),\n\t\t\t\tdistinctUntilChanged(),\n\t\t\t\ttap(term => {\n\t\t\t\t\tconst searchTerm = term.trim().toLowerCase()\n\n\t\t\t\t\t// Filter options using Levenshtein distance\n\t\t\t\t\tconst matches = this.options\n\t\t\t\t\t\t.map(option => {\n\t\t\t\t\t\t\tconst optionText = option.label.toLowerCase()\n\t\t\t\t\t\t\tconst levDistance = distance(searchTerm, optionText)\n\t\t\t\t\t\t\treturn { option, levDistance }\n\t\t\t\t\t\t})\n\t\t\t\t\t\t.filter(({ option, levDistance }) => {\n\t\t\t\t\t\t\t// If very short searchTerm, be lenient\n\t\t\t\t\t\t\tif (searchTerm.length < 3) return true\n\t\t\t\t\t\t\t// Otherwise, filter by distance\n\t\t\t\t\t\t\treturn levDistance <= option.label.toLowerCase().length - searchTerm.length\n\t\t\t\t\t\t})\n\t\t\t\t\t\t.sort((a, b) => a.levDistance - b.levDistance)\n\n\t\t\t\t\t// Show/hide\n\t\t\t\t\tthis.options.forEach(o => (o.hidden = true))\n\t\t\t\t\tfor (const { option } of matches) {\n\t\t\t\t\t\toption.hidden = false\n\t\t\t\t\t}\n\n\t\t\t\t\t// \"No results found\"\n\t\t\t\t\tthis.empty.hidden = matches.length > 0\n\n\t\t\t\t\tthis.requestUpdate()\n\t\t\t\t}),\n\t\t\t)\n\t\t\t.subscribe(() => {\n\t\t\t\t// Show dropdown on each new term\n\t\t\t\tthis.showOptions()\n\t\t\t})\n\n\t\t// 2) Focus out animation\n\t\tfromEvent<FocusEvent>(this, 'focusout')\n\t\t\t.pipe(\n\t\t\t\ttakeUntil(this.disconnecting),\n\t\t\t\tfilter(e => (e.relatedTarget as SchmancyOption)?.tagName !== 'SCHMANCY-OPTION'),\n\t\t\t\tswitchMap(() => {\n\t\t\t\t\tconst animation = this.optionsContainer.animate([{ opacity: 1 }, { opacity: 0 }], {\n\t\t\t\t\t\tduration: 250,\n\t\t\t\t\t\teasing: 'cubic-bezier(0.5, 0.01, 0.25, 1)',\n\t\t\t\t\t})\n\n\t\t\t\t\treturn from(\n\t\t\t\t\t\tnew Promise<void>(resolve => {\n\t\t\t\t\t\t\tanimation.onfinish = () => {\n\t\t\t\t\t\t\t\tthis.optionsContainer.style.display = 'none'\n\t\t\t\t\t\t\t\tthis.optionsContainer.style.opacity = '1'\n\t\t\t\t\t\t\t\tresolve()\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}),\n\t\t\t\t\t)\n\t\t\t\t}),\n\t\t\t)\n\t\t\t.subscribe({\n\t\t\t\tnext: () => {\n\t\t\t\t\t// Resync the input after closing\n\t\t\t\t\tif (this.multi) {\n\t\t\t\t\t\tconst selected = this.options.filter(o => o.selected).map(o => o.label)\n\t\t\t\t\t\tthis.input.value = selected.join(', ')\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis.input.value = this.options.find(o => o.value === this.value)?.label ?? ''\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t})\n\t}\n\n\tfirstUpdated() {\n\t\tthis.updateInputValue()\n\t}\n\n\tprotected updated(changedProps: Map<string | number | symbol, unknown>) {\n\t\tsuper.updated(changedProps)\n\t\tif (changedProps.has('value')) {\n\t\t\tthis.syncSelectionFromValue()\n\t\t\tthis.updateInputValue()\n\t\t}\n\t}\n\n\tprivate handleSlotChange() {\n\t\t// If no visible options, show \"empty\"\n\t\tthis.empty.hidden = this.options.some(option => !option.hidden)\n\t\tthis.syncSelectionFromValue()\n\t\tthis.updateInputValue()\n\t}\n\n\tprivate syncSelectionFromValue() {\n\t\tif (this.multi) {\n\t\t\tconst values = this.value\n\t\t\t\t.split(',')\n\t\t\t\t.map(v => v.trim())\n\t\t\t\t.filter(Boolean)\n\t\t\tthis.options.forEach(o => {\n\t\t\t\to.selected = values.includes(o.value)\n\t\t\t})\n\t\t} else {\n\t\t\tthis.options.forEach(o => {\n\t\t\t\to.selected = o.value === this.value\n\t\t\t})\n\t\t}\n\t}\n\n\tprivate updateInputValue() {\n\t\trequestAnimationFrame(() => {\n\t\t\tif (this.multi) {\n\t\t\t\tconst selected = this.options.filter(o => o.selected).map(o => o.label)\n\t\t\t\tthis.input.value = selected.join(', ')\n\t\t\t} else {\n\t\t\t\tconst found = this.options.find(o => o.value === this.value)?.label\n\t\t\t\tthis.input.value = found ?? ''\n\t\t\t}\n\t\t})\n\t}\n\n\t/**\n\t * MAIN: Show the dropdown, using Floating UI to size it\n\t * to the available space, and at least as wide as the input.\n\t */\n\tprivate async showOptions() {\n\t\tthis.optionsContainer.removeAttribute('hidden')\n\t\tthis.optionsContainer.style.display = 'block'\n\n\t\tconst { x, y } = await computePosition(this.input, this.optionsContainer, {\n\t\t\tplacement: 'bottom-start',\n\t\t\tmiddleware: [\n\t\t\t\toffset(5),\n\t\t\t\tflip(),\n\t\t\t\tshift({ padding: 5 }),\n\t\t\t\t// NEW: Let the floating element fill available space,\n\t\t\t\t// but be at least as wide as the input.\n\t\t\t\tsize({\n\t\t\t\t\tapply({ availableWidth, availableHeight, elements, rects }) {\n\t\t\t\t\t\t// At least match input width\n\t\t\t\t\t\tconst referenceWidth = rects.reference.width\n\t\t\t\t\t\telements.floating.style.minWidth = `${referenceWidth}px`\n\n\t\t\t\t\t\t// Cap to available viewport space\n\t\t\t\t\t\telements.floating.style.maxWidth = `${availableWidth}px`\n\t\t\t\t\t\telements.floating.style.maxHeight = `${availableHeight}px`\n\t\t\t\t\t},\n\t\t\t\t}),\n\t\t\t],\n\t\t})\n\n\t\tObject.assign(this.optionsContainer.style, {\n\t\t\tleft: `${x}px`,\n\t\t\ttop: `${y}px`,\n\t\t\tposition: 'absolute',\n\t\t\tzIndex: '9999',\n\t\t\toverflowY: 'auto',\n\t\t\t// The middleware is setting max-height, but if you want\n\t\t\t// a fallback you can still do:\n\t\t\t// maxHeight: this.maxHeight,\n\t\t})\n\t}\n\n\tprivate hideOptions() {\n\t\tthis.optionsContainer?.setAttribute('hidden', 'true')\n\t\tif (this.optionsContainer) {\n\t\t\tthis.optionsContainer.style.display = 'none'\n\t\t}\n\t}\n\n\tprivate handleInputChange(event: SchmancyInputInputEvent) {\n\t\tevent.preventDefault()\n\t\tevent.stopPropagation()\n\t\tconst term = event.detail.value\n\t\tthis.searchTerm$.next(term)\n\t}\n\n\t@eventOptions({ passive: true })\n\tprivate handleOptionClick(value: string) {\n\t\tif (this.multi) {\n\t\t\tconst option = this.options.find(o => o.value === value)\n\t\t\tif (option) option.selected = !option.selected\n\t\t\tconst selectedValues = this.options.filter(o => o.selected).map(o => o.value)\n\t\t\tthis.value = selectedValues.join(',')\n\t\t\tthis.updateInputValue()\n\t\t\tthis.dispatchEvent(\n\t\t\t\tnew CustomEvent<SchmancyAutocompleteChangeEvent['detail']>('change', {\n\t\t\t\t\tdetail: { value: selectedValues },\n\t\t\t\t\tbubbles: true,\n\t\t\t\t\tcomposed: true,\n\t\t\t\t}),\n\t\t\t)\n\t\t} else {\n\t\t\tthis.hideOptions()\n\t\t\tthis.value = value\n\t\t\tthis.updateInputValue()\n\t\t\tthis.dispatchEvent(\n\t\t\t\tnew CustomEvent<SchmancyAutocompleteChangeEvent['detail']>('change', {\n\t\t\t\t\tdetail: { value },\n\t\t\t\t\tbubbles: true,\n\t\t\t\t\tcomposed: true,\n\t\t\t\t}),\n\t\t\t)\n\t\t}\n\t}\n\n\tpublic checkValidity() {\n\t\treturn this.multi ? this.options.some(o => o.selected) : Boolean(this.value)\n\t}\n\n\tpublic reportValidity() {\n\t\treturn this.inputRef.value?.reportValidity()\n\t}\n\n\tprivate handleTouchStart(event: TouchEvent) {\n\t\tthis.startY = event.touches?.[0]?.clientY ?? 0\n\t}\n\n\tprivate preventScroll(event: TouchEvent) {\n\t\tconst target = event.target as HTMLElement\n\t\tif (!this.optionsContainer.contains(target)) return\n\n\t\tconst scrollTop = this.optionsContainer.scrollTop\n\t\tconst scrollHeight = this.optionsContainer.scrollHeight\n\t\tconst offsetHeight = this.optionsContainer.offsetHeight\n\t\tconst contentHeight = scrollHeight - offsetHeight\n\n\t\tconst currentY = event.touches?.[0]?.clientY ?? 0\n\t\tif ((scrollTop <= 0 && currentY > this.startY) || (scrollTop >= contentHeight && currentY < this.startY)) {\n\t\t\tevent.preventDefault()\n\t\t}\n\t}\n\n\trender() {\n\t\tconst isOpen = !this.optionsContainer?.hasAttribute('hidden')\n\n\t\treturn html`\n\t\t\t<div class=\"relative\">\n\t\t\t\t<!-- The trigger slot (if any) overrides the default SchmancyInput -->\n\t\t\t\t<slot name=\"trigger\">\n\t\t\t\t\t<schmancy-input\n\t\t\t\t\t\t${ref(this.inputRef)}\n\t\t\t\t\t\tid=\"input\"\n\t\t\t\t\t\tclass=\"w-full\"\n\t\t\t\t\t\t.label=${this.label}\n\t\t\t\t\t\t.placeholder=${this.placeholder}\n\t\t\t\t\t\t.required=${this.required}\n\t\t\t\t\t\ttype=\"search\"\n\t\t\t\t\t\tinputmode=\"text\"\n\t\t\t\t\t\tautocomplete=\"off\"\n\t\t\t\t\t\tclickable\n\t\t\t\t\t\trole=\"combobox\"\n\t\t\t\t\t\taria-autocomplete=\"list\"\n\t\t\t\t\t\taria-haspopup=\"listbox\"\n\t\t\t\t\t\taria-controls=\"options\"\n\t\t\t\t\t\taria-expanded=${isOpen}\n\t\t\t\t\t\t@focus=${() => this.showOptions()}\n\t\t\t\t\t\t@input=${this.handleInputChange}\n\t\t\t\t\t>\n\t\t\t\t\t</schmancy-input>\n\t\t\t\t</slot>\n\n\t\t\t\t<ul\n\t\t\t\t\tid=\"options\"\n\t\t\t\t\ttabindex=\"-1\"\n\t\t\t\t\tclass=\"absolute z-30 mt-1 w-full overflow-auto rounded-md shadow-sm\"\n\t\t\t\t\trole=\"listbox\"\n\t\t\t\t\thidden\n\t\t\t\t\t@click=${(e: Event) => {\n\t\t\t\t\t\t// Each <schmancy-option> dispatches CustomEvent('click', { detail: { value } })\n\t\t\t\t\t\tconst detailVal = (e as CustomEvent).detail?.value\n\t\t\t\t\t\tif (detailVal) this.handleOptionClick(detailVal)\n\t\t\t\t\t}}\n\t\t\t\t\t@touchstart=${this.handleTouchStart}\n\t\t\t\t\t@touchmove=${this.preventScroll}\n\t\t\t\t\t${color({ bgColor: SchmancyTheme.sys.color.surface.container })}\n\t\t\t\t>\n\t\t\t\t\t<!-- \"No results\" option -->\n\t\t\t\t\t<li id=\"empty\" tabindex=\"-1\">\n\t\t\t\t\t\t<schmancy-typography type=\"label\">No results found</schmancy-typography>\n\t\t\t\t\t</li>\n\n\t\t\t\t\t<!-- Slot for the <schmancy-option> elements -->\n\t\t\t\t\t<slot @slotchange=${this.handleSlotChange}> </slot>\n\t\t\t\t</ul>\n\t\t\t</div>\n\t\t`\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-autocomplete': SchmancyAutocomplete\n\t}\n}\n"],"names":["peq","Uint32Array","distance","a","b","length","tmp","n","m","lst","pv","mv","sc","i","charCodeAt","eq","xv","mhc","phc","hsize","Math","ceil","vsize","j","start","vlen","min","k","pb","mb","xh","ph","mh","score","SchmancyAutocomplete","$LitElement","super","arguments","this","required","placeholder","value","label","maxHeight","multi","inputRef","createRef","searchTerm$","Subject","startY","connectedCallback","pipe","takeUntil","disconnecting","distinctUntilChanged","tap","term","searchTerm","trim","toLowerCase","matches","options","map","option","optionText","levDistance","filter","sort","forEach","o","hidden","empty","requestUpdate","subscribe","showOptions","fromEvent","e","relatedTarget","tagName","switchMap","animation","optionsContainer","animate","opacity","duration","easing","from","Promise","resolve","onfinish","style","display","next","selected","input","join","find","updateInputValue","changedProps","updated","has","syncSelectionFromValue","handleSlotChange","some","values","split","v","Boolean","includes","requestAnimationFrame","found","removeAttribute","x","y","computePosition","placement","middleware","offset","flip","shift","padding","size","apply","availableWidth","availableHeight","elements","rects","referenceWidth","reference","width","floating","minWidth","maxWidth","Object","assign","left","top","position","zIndex","overflowY","setAttribute","event","preventDefault","stopPropagation","detail","selectedValues","dispatchEvent","CustomEvent","bubbles","composed","hideOptions","reportValidity","touches","clientY","target","contains","scrollTop","contentHeight","scrollHeight","offsetHeight","currentY","render","isOpen","hasAttribute","html","ref","handleInputChange","detailVal","handleOptionClick","handleTouchStart","preventScroll","color","bgColor","SchmancyTheme","sys","surface","container","__decorateClass","property","type","prototype","String","reflect","query","queryAssignedElements","flatten","eventOptions","passive","customElement"],"mappings":"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","x_google_ignoreList":[0]}
|
package/dist/autocomplete.cjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";require("./autocomplete-
|
|
1
|
+
"use strict";require("./autocomplete-CHpArsZC.cjs");
|
|
2
2
|
//# sourceMappingURL=autocomplete.cjs.map
|
package/dist/autocomplete.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import "./autocomplete-
|
|
1
|
+
import "./autocomplete-CiCw7cWc.js";
|
|
2
2
|
//# sourceMappingURL=autocomplete.js.map
|
package/dist/busy.cjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";require("./spinner-
|
|
1
|
+
"use strict";require("./spinner-Aq68t0qW.cjs");
|
|
2
2
|
//# sourceMappingURL=busy.cjs.map
|
package/dist/busy.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import "./spinner-
|
|
1
|
+
import "./spinner-JGfRqdwd.js";
|
|
2
2
|
//# sourceMappingURL=busy.js.map
|
package/dist/button.cjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./icon-button-
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./icon-button-CIxJbF_T.cjs");Object.defineProperty(exports,"SchmnacyButton",{enumerable:!0,get:()=>e.SchmnacyButton}),Object.defineProperty(exports,"SchmnacyIconButton",{enumerable:!0,get:()=>e.SchmnacyIconButton});
|
|
2
2
|
//# sourceMappingURL=button.cjs.map
|
package/dist/button.js
CHANGED
package/dist/card.cjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";require("./teleport.component-
|
|
1
|
+
"use strict";require("./teleport.component-C5EPU5Hd.cjs");
|
|
2
2
|
//# sourceMappingURL=card.cjs.map
|
package/dist/card.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import "./teleport.component-
|
|
1
|
+
import "./teleport.component-C0giJ7oR.js";
|
|
2
2
|
//# sourceMappingURL=card.js.map
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use strict";const c=require("./redispatch-event-yBlefmeU.cjs"),s=require("lit/decorators.js"),d=require("lit"),V=require("lit/directives/class-map.js");require("rxjs"),require("lit/directives/style-map.js");const M=require("./tailwind.mixin-
|
|
1
|
+
"use strict";const c=require("./redispatch-event-yBlefmeU.cjs"),s=require("lit/decorators.js"),d=require("lit"),V=require("lit/directives/class-map.js");require("rxjs"),require("lit/directives/style-map.js");const M=require("./tailwind.mixin-dEqmlmEI.cjs");function E(i){return i.currentTarget===i.target&&i.composedPath()[0]===i.target&&!i.target.disabled&&!function(e){const t=y;return t&&(e.preventDefault(),e.stopImmediatePropagation()),async function(){y=!0,await null,y=!1}(),t}(i)}let y=!1;const h=Symbol("internals"),k=Symbol("privateInternals"),f=Symbol("createValidator"),w=Symbol("getValidityAnchor"),g=Symbol("privateValidator"),p=Symbol("privateSyncValidity"),m=Symbol("privateCustomValidationMessage"),b=Symbol("getFormValue"),C=Symbol("getFormState");class z{constructor(e){this.getCurrentState=e,this.currentValidity={validity:{},validationMessage:""}}getValidity(){const e=this.getCurrentState();if(!(!this.prevState||!this.equals(this.prevState,e)))return this.currentValidity;const{validity:t,validationMessage:r}=this.computeValidity(e);return this.prevState=this.copy(e),this.currentValidity={validationMessage:r,validity:{badInput:t.badInput,customError:t.customError,patternMismatch:t.patternMismatch,rangeOverflow:t.rangeOverflow,rangeUnderflow:t.rangeUnderflow,stepMismatch:t.stepMismatch,tooLong:t.tooLong,tooShort:t.tooShort,typeMismatch:t.typeMismatch,valueMissing:t.valueMissing}},this.currentValidity}}class I extends z{computeValidity(e){return this.checkboxControl||(this.checkboxControl=document.createElement("input"),this.checkboxControl.type="checkbox"),this.checkboxControl.checked=e.checked,this.checkboxControl.required=e.required,{validity:this.checkboxControl.validity,validationMessage:this.checkboxControl.validationMessage}}equals(e,t){return e.checked===t.checked&&e.required===t.required}copy({checked:e,required:t}){return{checked:e,required:t}}}const $=c.mixinDelegatesAria(function(i){var e;class t extends i{constructor(){super(...arguments),this[e]=""}get validity(){return this[p](),this[h].validity}get validationMessage(){return this[p](),this[h].validationMessage}get willValidate(){return this[p](),this[h].willValidate}checkValidity(){return this[p](),this[h].checkValidity()}reportValidity(){return this[p](),this[h].reportValidity()}setCustomValidity(o){this[m]=o,this[p]()}requestUpdate(o,a,n){super.requestUpdate(o,a,n),this[p]()}firstUpdated(o){super.firstUpdated(o),this[p]()}[(e=m,p)](){if(d.isServer)return;this[g]||(this[g]=this[f]());const{validity:o,validationMessage:a}=this[g].getValidity(),n=!!this[m],v=this[m]||a;this[h].setValidity({...o,customError:n},v,this[w]()??void 0)}[f](){throw new Error("Implement [createValidator]")}[w](){throw new Error("Implement [getValidityAnchor]")}}return t}(function(i){class e extends i{get form(){return this[h].form}get labels(){return this[h].labels}get name(){return this.getAttribute("name")??""}set name(r){this.setAttribute("name",r)}get disabled(){return this.hasAttribute("disabled")}set disabled(r){this.toggleAttribute("disabled",r)}attributeChangedCallback(r,o,a){if(r!=="name"&&r!=="disabled")super.attributeChangedCallback(r,o,a);else{const n=r==="disabled"?o!==null:o;this.requestUpdate(r,n)}}requestUpdate(r,o,a){super.requestUpdate(r,o,a),this[h].setFormValue(this[b](),this[C]())}[b](){throw new Error("Implement [getFormValue]")}[C](){return this[b]()}formDisabledCallback(r){this.disabled=r}}return e.formAssociated=!0,c.t([s.property({noAccessor:!0})],e.prototype,"name",null),c.t([s.property({type:Boolean,noAccessor:!0})],e.prototype,"disabled",null),e}((S=d.LitElement,class extends S{get[h](){return this[k]||(this[k]=this.attachInternals()),this[k]}}))));var S;class l extends ${constructor(){super(),this.checked=!1,this.indeterminate=!1,this.required=!1,this.value="on",this.prevChecked=!1,this.prevDisabled=!1,this.prevIndeterminate=!1,d.isServer||this.addEventListener("click",e=>{E(e)&&this.input&&(this.focus(),function(t){const r=new MouseEvent("click",{bubbles:!0});t.dispatchEvent(r)}(this.input))})}update(e){(e.has("checked")||e.has("disabled")||e.has("indeterminate"))&&(this.prevChecked=e.get("checked")??this.checked,this.prevDisabled=e.get("disabled")??this.disabled,this.prevIndeterminate=e.get("indeterminate")??this.indeterminate),super.update(e)}render(){const e=!this.prevChecked&&!this.prevIndeterminate,t=this.prevChecked&&!this.prevIndeterminate,r=this.prevIndeterminate,o=this.checked&&!this.indeterminate,a=this.indeterminate,n=V.classMap({disabled:this.disabled,selected:o||a,unselected:!o&&!a,checked:o,indeterminate:a,"prev-unselected":e,"prev-checked":t,"prev-indeterminate":r,"prev-disabled":this.prevDisabled}),{ariaLabel:v,ariaInvalid:q}=this;return d.html`
|
|
2
2
|
<div class="container ${n}">
|
|
3
3
|
<input
|
|
4
4
|
type="checkbox"
|
|
@@ -35,4 +35,4 @@
|
|
|
35
35
|
<slot></slot>
|
|
36
36
|
</label>
|
|
37
37
|
`}},exports.SchmancyCheckbox.shadowRootOptions={...d.LitElement.shadowRootOptions,delegatesFocus:!0},exports.SchmancyCheckbox.formAssociated=!0,u([s.property({type:Boolean,reflect:!0})],exports.SchmancyCheckbox.prototype,"value",2),u([s.property({type:Boolean})],exports.SchmancyCheckbox.prototype,"disabled",2),u([s.property({type:Boolean})],exports.SchmancyCheckbox.prototype,"required",2),u([s.property({type:String})],exports.SchmancyCheckbox.prototype,"name",2),u([s.property({type:String})],exports.SchmancyCheckbox.prototype,"id",2),u([s.property({type:String})],exports.SchmancyCheckbox.prototype,"size",2),exports.SchmancyCheckbox=u([s.customElement("schmancy-checkbox")],exports.SchmancyCheckbox);
|
|
38
|
-
//# sourceMappingURL=checkbox-
|
|
38
|
+
//# sourceMappingURL=checkbox-CYZ8DVr_.cjs.map
|