@mhmo91/schmancy 0.5.22 → 0.5.24
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/ai/boat.md +6 -4
- package/dist/ai/boat.md +6 -4
- package/dist/{animated-text-Bic7z7SI.cjs → animated-text-1UeLx0sc.cjs} +2 -2
- package/dist/{animated-text-Bic7z7SI.cjs.map → animated-text-1UeLx0sc.cjs.map} +1 -1
- package/dist/{animated-text-CLEr78FV.js → animated-text-BLtDcshf.js} +3 -3
- package/dist/{animated-text-CLEr78FV.js.map → animated-text-BLtDcshf.js.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-BrvNYy7Z.cjs → area.component-B5V5Bg5B.cjs} +2 -2
- package/dist/{area.component-BrvNYy7Z.cjs.map → area.component-B5V5Bg5B.cjs.map} +1 -1
- package/dist/{area.component-tIK_P5JR.js → area.component-BIRswT0J.js} +3 -3
- package/dist/{area.component-tIK_P5JR.js.map → area.component-BIRswT0J.js.map} +1 -1
- package/dist/area.js +1 -1
- package/dist/autocomplete-BlTQIvvt.js +332 -0
- package/dist/autocomplete-BlTQIvvt.js.map +1 -0
- package/dist/autocomplete-gIoxR7_t.cjs +112 -0
- package/dist/autocomplete-gIoxR7_t.cjs.map +1 -0
- package/dist/autocomplete.cjs +1 -1
- package/dist/autocomplete.js +1 -1
- package/dist/{avatar-QYDHa7s3.cjs → avatar-BAVfTtEM.cjs} +2 -2
- package/dist/{avatar-QYDHa7s3.cjs.map → avatar-BAVfTtEM.cjs.map} +1 -1
- package/dist/{avatar-39MTGkwX.js → avatar-BCOzG2-D.js} +51 -51
- package/dist/{avatar-39MTGkwX.js.map → avatar-BCOzG2-D.js.map} +1 -1
- package/dist/badge.cjs +1 -1
- package/dist/badge.js +1 -1
- package/dist/boat-Du6EgSxQ.js +157 -0
- package/dist/boat-Du6EgSxQ.js.map +1 -0
- package/dist/boat-Nd_h9cld.cjs +51 -0
- package/dist/boat-Nd_h9cld.cjs.map +1 -0
- package/dist/boat.cjs +1 -1
- package/dist/boat.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-DShC2A6P.cjs +40 -0
- package/dist/checkbox-DShC2A6P.cjs.map +1 -0
- package/dist/{checkbox-4mBWkzKG.js → checkbox-Dim_q5YB.js} +101 -103
- package/dist/checkbox-Dim_q5YB.js.map +1 -0
- package/dist/checkbox.cjs +1 -1
- package/dist/checkbox.js +1 -1
- package/dist/chips.cjs +1 -1
- package/dist/chips.js +2 -2
- package/dist/code-highlight.cjs +1 -1
- package/dist/code-highlight.js +1 -1
- package/dist/{code-preview-CrsExDWj.js → code-preview-Ci_x_fdP.js} +2 -2
- package/dist/{code-preview-CrsExDWj.js.map → code-preview-Ci_x_fdP.js.map} +1 -1
- package/dist/{code-preview-hWI3erYE.cjs → code-preview-DI4Fdnf1.cjs} +2 -2
- package/dist/{code-preview-hWI3erYE.cjs.map → code-preview-DI4Fdnf1.cjs.map} +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/{context-object-u5gBaozZ.js → context-object-BE1o2XB3.js} +158 -159
- package/dist/context-object-BE1o2XB3.js.map +1 -0
- package/dist/context-object-DA9DM9QJ.cjs +2 -0
- package/dist/context-object-DA9DM9QJ.cjs.map +1 -0
- package/dist/{date-range-B0yz-_Zv.cjs → date-range--H8CYCUX.cjs} +2 -2
- package/dist/{date-range-B0yz-_Zv.cjs.map → date-range--H8CYCUX.cjs.map} +1 -1
- package/dist/{date-range-CM-5J_JO.js → date-range-BiLjEqjs.js} +3 -3
- package/dist/{date-range-CM-5J_JO.js.map → date-range-BiLjEqjs.js.map} +1 -1
- package/dist/{date-range-inline-P8P2ixg1.cjs → date-range-inline-B91UEouL.cjs} +2 -2
- package/dist/{date-range-inline-P8P2ixg1.cjs.map → date-range-inline-B91UEouL.cjs.map} +1 -1
- package/dist/{date-range-inline-CPI4EyL0.js → date-range-inline-CQ0p9Gk0.js} +3 -3
- package/dist/{date-range-inline-CPI4EyL0.js.map → date-range-inline-CQ0p9Gk0.js.map} +1 -1
- package/dist/date-range-inline.cjs +1 -1
- package/dist/date-range-inline.js +1 -1
- package/dist/date-range.cjs +1 -1
- package/dist/date-range.js +1 -1
- package/dist/{delay-Lg_7K_Vi.js → delay-Byxv_EuC.js} +2 -2
- package/dist/{delay-Lg_7K_Vi.js.map → delay-Byxv_EuC.js.map} +1 -1
- package/dist/{delay-1aTGz1ZH.cjs → delay-D65ijCZW.cjs} +2 -2
- package/dist/{delay-1aTGz1ZH.cjs.map → delay-D65ijCZW.cjs.map} +1 -1
- package/dist/delay.cjs +1 -1
- package/dist/delay.js +1 -1
- package/dist/{details-gUvX6sxc.js → details-D3krTZot.js} +2 -2
- package/dist/{details-gUvX6sxc.js.map → details-D3krTZot.js.map} +1 -1
- package/dist/{details-uxsPpjMp.cjs → details-D7EmD6Vy.cjs} +2 -2
- package/dist/{details-uxsPpjMp.cjs.map → details-D7EmD6Vy.cjs.map} +1 -1
- package/dist/details.cjs +1 -1
- package/dist/details.js +1 -1
- package/dist/{dialog-content-DKLDmgfz.js → dialog-content-BCmJU6-6.js} +3 -3
- package/dist/{dialog-content-DKLDmgfz.js.map → dialog-content-BCmJU6-6.js.map} +1 -1
- package/dist/{dialog-content-CvVd9EwS.cjs → dialog-content-CIbrBTyn.cjs} +2 -2
- package/dist/{dialog-content-CvVd9EwS.cjs.map → dialog-content-CIbrBTyn.cjs.map} +1 -1
- package/dist/dialog.cjs +1 -1
- package/dist/dialog.js +1 -1
- package/dist/{divider-CHGffGro.cjs → divider-2GPNgq-E.cjs} +2 -2
- package/dist/{divider-CHGffGro.cjs.map → divider-2GPNgq-E.cjs.map} +1 -1
- package/dist/{divider-EvBnlb2a.js → divider-BPrA36H2.js} +3 -3
- package/dist/{divider-EvBnlb2a.js.map → divider-BPrA36H2.js.map} +1 -1
- package/dist/divider.cjs +1 -1
- package/dist/divider.js +1 -1
- package/dist/{dropdown-content-FVKimBQR.cjs → dropdown-content-BbekqPxj.cjs} +2 -2
- package/dist/{dropdown-content-FVKimBQR.cjs.map → dropdown-content-BbekqPxj.cjs.map} +1 -1
- package/dist/{dropdown-content-NGBIkvdR.js → dropdown-content-mlUSVOyD.js} +3 -3
- package/dist/{dropdown-content-NGBIkvdR.js.map → dropdown-content-mlUSVOyD.js.map} +1 -1
- package/dist/dropdown.cjs +1 -1
- package/dist/dropdown.js +1 -1
- package/dist/{email-recipients-CXFSIsL-.js → email-recipients-CDD_g5yN.js} +5 -5
- package/dist/{email-recipients-CXFSIsL-.js.map → email-recipients-CDD_g5yN.js.map} +1 -1
- package/dist/{email-recipients-DxqCC99q.cjs → email-recipients-CIg2Zr1g.cjs} +2 -2
- package/dist/{email-recipients-DxqCC99q.cjs.map → email-recipients-CIg2Zr1g.cjs.map} +1 -1
- package/dist/extra.cjs +1 -1
- package/dist/extra.js +1 -1
- package/dist/{flex-Cm4nZM9q.js → flex-B80ttpFK.js} +2 -2
- package/dist/{flex-Cm4nZM9q.js.map → flex-B80ttpFK.js.map} +1 -1
- package/dist/{flex-DisTVvBI.cjs → flex-Dt_5LiZY.cjs} +2 -2
- package/dist/{flex-DisTVvBI.cjs.map → flex-Dt_5LiZY.cjs.map} +1 -1
- package/dist/{form-BU9TBjfk.js → form-BMsARji5.js} +2 -2
- package/dist/{form-BU9TBjfk.js.map → form-BMsARji5.js.map} +1 -1
- package/dist/{form-SMbhjYsC.cjs → form-DQy6kwCm.cjs} +2 -2
- package/dist/{form-SMbhjYsC.cjs.map → form-DQy6kwCm.cjs.map} +1 -1
- package/dist/form.cjs +1 -1
- package/dist/form.js +1 -1
- package/dist/{formField.mixin-DxhnL3Kb.js → formField.mixin-6n9T0jO7.js} +2 -2
- package/dist/{formField.mixin-DxhnL3Kb.js.map → formField.mixin-6n9T0jO7.js.map} +1 -1
- package/dist/{formField.mixin-DYkeOpES.cjs → formField.mixin-CvAbYIRF.cjs} +2 -2
- package/dist/{formField.mixin-DYkeOpES.cjs.map → formField.mixin-CvAbYIRF.cjs.map} +1 -1
- package/dist/{icon-BT_1B5_G.cjs → icon-FPVUigzr.cjs} +2 -2
- package/dist/{icon-BT_1B5_G.cjs.map → icon-FPVUigzr.cjs.map} +1 -1
- package/dist/{icon-Cgd3NUcv.js → icon-TyfiEK7a.js} +2 -2
- package/dist/{icon-Cgd3NUcv.js.map → icon-TyfiEK7a.js.map} +1 -1
- package/dist/{icon-button-C5hq1cKD.cjs → icon-button-CVTYisTH.cjs} +2 -2
- package/dist/{icon-button-C5hq1cKD.cjs.map → icon-button-CVTYisTH.cjs.map} +1 -1
- package/dist/{icon-button-DsjqusZz.js → icon-button-DOk1cdCw.js} +3 -3
- package/dist/{icon-button-DsjqusZz.js.map → icon-button-DOk1cdCw.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 +51 -51
- package/dist/{input-D3qmQZ-Y.cjs → input-Cf5oQC-b.cjs} +2 -2
- package/dist/{input-D3qmQZ-Y.cjs.map → input-Cf5oQC-b.cjs.map} +1 -1
- package/dist/{input-Bj4MTOC9.js → input-DdSxDY3S.js} +4 -4
- package/dist/{input-Bj4MTOC9.js.map → input-DdSxDY3S.js.map} +1 -1
- package/dist/{input-chip-CbD-eDs-.cjs → input-chip-Bps8lWjC.cjs} +2 -2
- package/dist/{input-chip-CbD-eDs-.cjs.map → input-chip-Bps8lWjC.cjs.map} +1 -1
- package/dist/{input-chip-DiThsRoi.js → input-chip-BwjgX7hk.js} +2 -2
- package/dist/{input-chip-DiThsRoi.js.map → input-chip-BwjgX7hk.js.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-5Y_CGGJF.cjs → list-6DG-gWkP.cjs} +2 -2
- package/dist/{list-5Y_CGGJF.cjs.map → list-6DG-gWkP.cjs.map} +1 -1
- package/dist/{list-CAFpmXsb.js → list-lGihowZf.js} +2 -2
- package/dist/{list-CAFpmXsb.js.map → list-lGihowZf.js.map} +1 -1
- package/dist/list.cjs +1 -1
- package/dist/list.js +1 -1
- package/dist/{litElement.mixin-rWG9s46P.cjs → litElement.mixin-BOqWtWD7.cjs} +2 -2
- package/dist/{litElement.mixin-rWG9s46P.cjs.map → litElement.mixin-BOqWtWD7.cjs.map} +1 -1
- package/dist/{litElement.mixin-Bv6DGuhe.js → litElement.mixin-COkgumbp.js} +2 -2
- package/dist/{litElement.mixin-Bv6DGuhe.js.map → litElement.mixin-COkgumbp.js.map} +1 -1
- package/dist/mailbox.cjs +1 -1
- package/dist/mailbox.js +1 -1
- package/dist/{map-bTOQf8Jm.cjs → map-CEmUG79Z.cjs} +2 -2
- package/dist/{map-bTOQf8Jm.cjs.map → map-CEmUG79Z.cjs.map} +1 -1
- package/dist/{map-yv8FB9mG.js → map-Dm6-Ldi2.js} +2 -2
- package/dist/{map-yv8FB9mG.js.map → map-Dm6-Ldi2.js.map} +1 -1
- package/dist/map.cjs +1 -1
- package/dist/map.js +1 -1
- package/dist/{media-CPIoKlRw.cjs → media-DR-39DF4.cjs} +2 -2
- package/dist/{media-CPIoKlRw.cjs.map → media-DR-39DF4.cjs.map} +1 -1
- package/dist/{media-CA52MXd3.js → media-I-gnfGOG.js} +2 -2
- package/dist/{media-CA52MXd3.js.map → media-I-gnfGOG.js.map} +1 -1
- package/dist/{menu-Cak8SbFx.cjs → menu-CBV9tC7E.cjs} +2 -2
- package/dist/{menu-Cak8SbFx.cjs.map → menu-CBV9tC7E.cjs.map} +1 -1
- package/dist/{menu-BKO9PgJq.js → menu-ybFe4rip.js} +3 -3
- package/dist/{menu-BKO9PgJq.js.map → menu-ybFe4rip.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/navigation-bar.cjs +1 -1
- package/dist/navigation-bar.js +1 -1
- package/dist/{navigation-rail-D1iYDMy2.cjs → navigation-rail-B8P5mauT.cjs} +2 -2
- package/dist/{navigation-rail-D1iYDMy2.cjs.map → navigation-rail-B8P5mauT.cjs.map} +1 -1
- package/dist/{navigation-rail-C8OOb0V3.js → navigation-rail-BdV-lakC.js} +3 -3
- package/dist/{navigation-rail-C8OOb0V3.js.map → navigation-rail-BdV-lakC.js.map} +1 -1
- package/dist/navigation-rail.cjs +1 -1
- package/dist/navigation-rail.js +1 -1
- package/dist/{notification-service-jfBwJ2TN.js → notification-service-CGsSCCzQ.js} +4 -4
- package/dist/{notification-service-jfBwJ2TN.js.map → notification-service-CGsSCCzQ.js.map} +1 -1
- package/dist/{notification-service-DaXxcXyj.cjs → notification-service-Dnfci5v7.cjs} +2 -2
- package/dist/{notification-service-DaXxcXyj.cjs.map → notification-service-Dnfci5v7.cjs.map} +1 -1
- package/dist/notification.cjs +1 -1
- package/dist/notification.js +2 -2
- package/dist/{notify-Dd5h2l-v.cjs → notify-B6FU_L5j.cjs} +2 -2
- package/dist/{notify-Dd5h2l-v.cjs.map → notify-B6FU_L5j.cjs.map} +1 -1
- package/dist/{notify-C5gy3egX.js → notify-CaLeiAjP.js} +2 -2
- package/dist/{notify-C5gy3egX.js.map → notify-CaLeiAjP.js.map} +1 -1
- package/dist/{option-C6PwIhut.cjs → option-6lIpPpmL.cjs} +2 -2
- package/dist/{option-C6PwIhut.cjs.map → option-6lIpPpmL.cjs.map} +1 -1
- package/dist/{option-D7b-uGff.js → option-CaU38vIH.js} +2 -2
- package/dist/{option-D7b-uGff.js.map → option-CaU38vIH.js.map} +1 -1
- package/dist/option.cjs +1 -1
- package/dist/option.js +1 -1
- package/dist/{payment-card-form-DTfoZiiN.cjs → payment-card-form-BoiyJ200.cjs} +2 -2
- package/dist/{payment-card-form-DTfoZiiN.cjs.map → payment-card-form-BoiyJ200.cjs.map} +1 -1
- package/dist/{payment-card-form-xwk5dfeQ.js → payment-card-form-D1Jwf62h.js} +3 -3
- package/dist/{payment-card-form-xwk5dfeQ.js.map → payment-card-form-D1Jwf62h.js.map} +1 -1
- package/dist/{progress-D-5gThOU.js → progress-CCDeBrWN.js} +2 -2
- package/dist/{progress-D-5gThOU.js.map → progress-CCDeBrWN.js.map} +1 -1
- package/dist/{progress-sFt6EeRy.cjs → progress-D5HItcIt.cjs} +2 -2
- package/dist/{progress-sFt6EeRy.cjs.map → progress-D5HItcIt.cjs.map} +1 -1
- package/dist/progress.cjs +1 -1
- package/dist/progress.js +1 -1
- package/dist/{radio-button-Cc5fCDdU.cjs → radio-button-DBvcq1he.cjs} +2 -2
- package/dist/{radio-button-Cc5fCDdU.cjs.map → radio-button-DBvcq1he.cjs.map} +1 -1
- package/dist/{radio-button-CZq8Z-V-.js → radio-button-T2_iDIjn.js} +3 -3
- package/dist/{radio-button-CZq8Z-V-.js.map → radio-button-T2_iDIjn.js.map} +1 -1
- package/dist/radio-group.cjs +1 -1
- package/dist/radio-group.js +1 -1
- package/dist/{schmancy-steps-container-DkPckhRw.js → schmancy-steps-container-CqzKB-CU.js} +2 -2
- package/dist/{schmancy-steps-container-DkPckhRw.js.map → schmancy-steps-container-CqzKB-CU.js.map} +1 -1
- package/dist/{schmancy-steps-container-Cb-cUZWP.cjs → schmancy-steps-container-DWIMp6LQ.cjs} +2 -2
- package/dist/{schmancy-steps-container-Cb-cUZWP.cjs.map → schmancy-steps-container-DWIMp6LQ.cjs.map} +1 -1
- package/dist/{select-BszKwEA_.cjs → select-BRMGRukN.cjs} +2 -2
- package/dist/{select-BszKwEA_.cjs.map → select-BRMGRukN.cjs.map} +1 -1
- package/dist/{select-CHgsFxnz.js → select-D609EFnZ.js} +3 -3
- package/dist/{select-CHgsFxnz.js.map → select-D609EFnZ.js.map} +1 -1
- package/dist/select.cjs +1 -1
- package/dist/select.js +1 -1
- package/dist/{selector-hook-ChImS_JT.js → selector-hook-DOsvFxG2.js} +2 -2
- package/dist/{selector-hook-ChImS_JT.js.map → selector-hook-DOsvFxG2.js.map} +1 -1
- package/dist/{selector-hook-cqmAutda.cjs → selector-hook-DQ9zoDM4.cjs} +2 -2
- package/dist/{selector-hook-cqmAutda.cjs.map → selector-hook-DQ9zoDM4.cjs.map} +1 -1
- package/dist/{sheet-ZHVITumf.cjs → sheet-Dn1oACXH.cjs} +3 -3
- package/dist/{sheet-ZHVITumf.cjs.map → sheet-Dn1oACXH.cjs.map} +1 -1
- package/dist/{sheet-BscruHZw.js → sheet-bNj12Jep.js} +4 -4
- package/dist/{sheet-BscruHZw.js.map → sheet-bNj12Jep.js.map} +1 -1
- package/dist/sheet.cjs +1 -1
- package/dist/sheet.js +1 -1
- package/dist/{slider-BKUCiMOV.cjs → slider-C5tqF0nO.cjs} +2 -2
- package/dist/{slider-BKUCiMOV.cjs.map → slider-C5tqF0nO.cjs.map} +1 -1
- package/dist/{slider-gBHyj2TC.js → slider-DlMSimST.js} +3 -3
- package/dist/{slider-gBHyj2TC.js.map → slider-DlMSimST.js.map} +1 -1
- package/dist/slider.cjs +1 -1
- package/dist/slider.js +1 -1
- package/dist/{spinner-DZ3oE5cQ.js → spinner-C5gsrJLF.js} +2 -2
- package/dist/{spinner-DZ3oE5cQ.js.map → spinner-C5gsrJLF.js.map} +1 -1
- package/dist/{spinner-CiRbCC74.cjs → spinner-CAlukL4U.cjs} +2 -2
- package/dist/{spinner-CiRbCC74.cjs.map → spinner-CAlukL4U.cjs.map} +1 -1
- package/dist/steps.cjs +1 -1
- package/dist/steps.js +1 -1
- package/dist/store.cjs +1 -1
- package/dist/store.js +2 -2
- package/dist/{suggestion-chip-D7izoLhZ.cjs → suggestion-chip-BVfyK0NJ.cjs} +2 -2
- package/dist/{suggestion-chip-D7izoLhZ.cjs.map → suggestion-chip-BVfyK0NJ.cjs.map} +1 -1
- package/dist/{suggestion-chip-BTiLUD1d.js → suggestion-chip-Cnwn6c0a.js} +3 -3
- package/dist/{suggestion-chip-BTiLUD1d.js.map → suggestion-chip-Cnwn6c0a.js.map} +1 -1
- package/dist/{surface-C4Lkv6Xu.js → surface-DkMPuTve.js} +2 -2
- package/dist/{surface-C4Lkv6Xu.js.map → surface-DkMPuTve.js.map} +1 -1
- package/dist/{surface-DTqeD1NX.cjs → surface-DsGqOf5R.cjs} +2 -2
- package/dist/{surface-DTqeD1NX.cjs.map → surface-DsGqOf5R.cjs.map} +1 -1
- package/dist/surface.cjs +1 -1
- package/dist/surface.js +1 -1
- package/dist/{table-D320TllW.js → table-i-NLS62P.js} +2 -2
- package/dist/{table-D320TllW.js.map → table-i-NLS62P.js.map} +1 -1
- package/dist/{table-CGB_dR8H.cjs → table-m3BFqpLy.cjs} +2 -2
- package/dist/{table-CGB_dR8H.cjs.map → table-m3BFqpLy.cjs.map} +1 -1
- package/dist/table.cjs +1 -1
- package/dist/table.js +1 -1
- package/dist/{tabs-compatibility-C1ifLAs_.cjs → tabs-compatibility-CorELwOP.cjs} +2 -2
- package/dist/{tabs-compatibility-C1ifLAs_.cjs.map → tabs-compatibility-CorELwOP.cjs.map} +1 -1
- package/dist/{tabs-compatibility-DNkcL6dE.js → tabs-compatibility-o-QpicRH.js} +2 -2
- package/dist/{tabs-compatibility-DNkcL6dE.js.map → tabs-compatibility-o-QpicRH.js.map} +1 -1
- package/dist/tabs.cjs +1 -1
- package/dist/tabs.js +1 -1
- package/dist/tailwind.mixin-B5ggvnsv.cjs +2 -0
- package/dist/{tailwind.mixin-ChrVaJHF.cjs.map → tailwind.mixin-B5ggvnsv.cjs.map} +1 -1
- package/dist/tailwind.mixin-t4qdJZYU.js +43 -0
- package/dist/{tailwind.mixin-9XFzAXGw.js.map → tailwind.mixin-t4qdJZYU.js.map} +1 -1
- package/dist/teleport.cjs +1 -1
- package/dist/teleport.js +1 -1
- package/dist/{textarea-B2U316Um.js → textarea-Bf4ki8zE.js} +2 -2
- package/dist/{textarea-B2U316Um.js.map → textarea-Bf4ki8zE.js.map} +1 -1
- package/dist/{textarea-1QvQzHKm.cjs → textarea-nsQCj801.cjs} +2 -2
- package/dist/{textarea-1QvQzHKm.cjs.map → textarea-nsQCj801.cjs.map} +1 -1
- package/dist/textarea.cjs +1 -1
- package/dist/textarea.js +1 -1
- package/dist/{theme-button-B0n3kSd_.cjs → theme-button-C3276dwN.cjs} +2 -2
- package/dist/{theme-button-B0n3kSd_.cjs.map → theme-button-C3276dwN.cjs.map} +1 -1
- package/dist/{theme-button-zUYywyWx.js → theme-button-Ct614su5.js} +2 -2
- package/dist/{theme-button-zUYywyWx.js.map → theme-button-Ct614su5.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-DpPMKf8l.js → theme.component-BjZrB7ia.js} +2 -2
- package/dist/{theme.component-DpPMKf8l.js.map → theme.component-BjZrB7ia.js.map} +1 -1
- package/dist/{theme.component-BLKJxyFX.cjs → theme.component-sclZlwEH.cjs} +2 -2
- package/dist/{theme.component-BLKJxyFX.cjs.map → theme.component-sclZlwEH.cjs.map} +1 -1
- package/dist/theme.js +1 -1
- package/dist/{timezone-DRSCR7bi.cjs → timezone-Dac-JVch.cjs} +2 -2
- package/dist/{timezone-DRSCR7bi.cjs.map → timezone-Dac-JVch.cjs.map} +1 -1
- package/dist/{timezone-DhLUcYcX.js → timezone-YRr3A-Lm.js} +3 -3
- package/dist/{timezone-DhLUcYcX.js.map → timezone-YRr3A-Lm.js.map} +1 -1
- package/dist/{tooltip-tFxYzDct.js → tooltip-6Oyr6pbf.js} +2 -2
- package/dist/{tooltip-tFxYzDct.js.map → tooltip-6Oyr6pbf.js.map} +1 -1
- package/dist/{tooltip-B4nvmANO.cjs → tooltip-DmyzYkj4.cjs} +2 -2
- package/dist/{tooltip-B4nvmANO.cjs.map → tooltip-DmyzYkj4.cjs.map} +1 -1
- package/dist/tooltip.cjs +1 -1
- package/dist/tooltip.js +1 -1
- package/dist/{tree-CRjGBeHH.cjs → tree-Bzi_9Pyn.cjs} +2 -2
- package/dist/{tree-CRjGBeHH.cjs.map → tree-Bzi_9Pyn.cjs.map} +1 -1
- package/dist/{tree-C9gLZE_E.js → tree-Dykg9PVs.js} +2 -2
- package/dist/{tree-C9gLZE_E.js.map → tree-Dykg9PVs.js.map} +1 -1
- package/dist/tree.cjs +1 -1
- package/dist/tree.js +1 -1
- package/dist/{typewriter-VGsKEZOj.cjs → typewriter-BAWBxSs8.cjs} +2 -2
- package/dist/{typewriter-VGsKEZOj.cjs.map → typewriter-BAWBxSs8.cjs.map} +1 -1
- package/dist/{typewriter-DN9HiCBW.js → typewriter-Bv4bwE0O.js} +4 -4
- package/dist/{typewriter-DN9HiCBW.js.map → typewriter-Bv4bwE0O.js.map} +1 -1
- package/dist/typewriter.cjs +1 -1
- package/dist/typewriter.js +1 -1
- package/dist/{typography-XN-pEi3Q.cjs → typography-DpkgWs15.cjs} +2 -2
- package/dist/{typography-XN-pEi3Q.cjs.map → typography-DpkgWs15.cjs.map} +1 -1
- package/dist/{typography-MN7P8my2.js → typography-lNs92vU0.js} +2 -2
- package/dist/{typography-MN7P8my2.js.map → typography-lNs92vU0.js.map} +1 -1
- package/dist/typography.cjs +1 -1
- package/dist/typography.js +1 -1
- package/package.json +18 -18
- package/types/src/autocomplete/autocomplete.d.ts +5 -4
- package/types/src/boat/boat.d.ts +18 -1
- package/types/src/button/button.d.ts +2 -0
- package/types/src/button/icon-button.d.ts +2 -0
- package/types/src/card/card.d.ts +2 -0
- package/types/src/checkbox/checkbox.d.ts +2 -0
- package/types/src/chips/assist-chip.d.ts +2 -0
- package/types/src/chips/filter-chip.d.ts +2 -0
- package/types/src/chips/input-chip.d.ts +2 -0
- package/types/src/chips/suggestion-chip.d.ts +2 -0
- package/types/src/details/details.d.ts +2 -0
- package/types/src/form/form-v2.d.ts +2 -0
- package/types/src/form/form.d.ts +2 -0
- package/types/src/input/input.d.ts +2 -0
- package/types/src/textarea/textarea.d.ts +2 -0
- package/dist/autocomplete-CG2YtfwU.cjs +0 -112
- package/dist/autocomplete-CG2YtfwU.cjs.map +0 -1
- package/dist/autocomplete-DzZQusAY.js +0 -319
- package/dist/autocomplete-DzZQusAY.js.map +0 -1
- package/dist/boat-BdJ1jyK_.js +0 -99
- package/dist/boat-BdJ1jyK_.js.map +0 -1
- package/dist/boat-DP98_5qG.cjs +0 -70
- package/dist/boat-DP98_5qG.cjs.map +0 -1
- package/dist/checkbox-4mBWkzKG.js.map +0 -1
- package/dist/checkbox-CIMDI5hW.cjs +0 -40
- package/dist/checkbox-CIMDI5hW.cjs.map +0 -1
- package/dist/context-object-bNADqf9U.cjs +0 -2
- package/dist/context-object-bNADqf9U.cjs.map +0 -1
- package/dist/context-object-u5gBaozZ.js.map +0 -1
- package/dist/tailwind.mixin-9XFzAXGw.js +0 -43
- package/dist/tailwind.mixin-ChrVaJHF.cjs +0 -2
package/types/src/boat/boat.d.ts
CHANGED
|
@@ -2,7 +2,24 @@ type BoatState = 'hidden' | 'minimized' | 'expanded';
|
|
|
2
2
|
declare const SchmancyBoat_base: import("../../mixins").Constructor<CustomElementConstructor> & import("../../mixins").Constructor<import("@mixins/tailwind.mixin").ITailwindElementMixin> & import("../../mixins").Constructor<import("lit").LitElement> & import("../../mixins").Constructor<import("../../mixins").IBaseMixin>;
|
|
3
3
|
export default class SchmancyBoat extends SchmancyBoat_base {
|
|
4
4
|
state: BoatState;
|
|
5
|
-
|
|
5
|
+
lowered: boolean;
|
|
6
|
+
private contentVisible;
|
|
7
|
+
previousState: BoatState;
|
|
8
|
+
private containerElement?;
|
|
9
|
+
private contentElement?;
|
|
10
|
+
private headerElement?;
|
|
11
|
+
private iconElement?;
|
|
12
|
+
private activeAnimations;
|
|
13
|
+
private readonly DURATIONS;
|
|
14
|
+
private readonly EASINGS;
|
|
15
|
+
private readonly SHADOWS;
|
|
16
|
+
toggleState(): Promise<void>;
|
|
17
|
+
private cancelActiveAnimations;
|
|
18
|
+
private animateStateChange;
|
|
19
|
+
private getTransformForState;
|
|
20
|
+
private getStylesForState;
|
|
21
|
+
firstUpdated(): void;
|
|
22
|
+
updated(changedProperties: Map<string | number | symbol, unknown>): void;
|
|
6
23
|
protected render(): unknown;
|
|
7
24
|
}
|
|
8
25
|
declare global {
|
|
@@ -16,6 +16,8 @@ export declare class SchmancyButton extends SchmancyButton_base {
|
|
|
16
16
|
protected static shadowRootOptions: {
|
|
17
17
|
mode: string;
|
|
18
18
|
delegatesFocus: boolean;
|
|
19
|
+
clonable?: boolean;
|
|
20
|
+
customElementRegistry?: CustomElementRegistry;
|
|
19
21
|
serializable?: boolean;
|
|
20
22
|
slotAssignment?: SlotAssignmentMode;
|
|
21
23
|
};
|
|
@@ -10,6 +10,8 @@ export declare class SchmnacyIconButton extends SchmnacyIconButton_base {
|
|
|
10
10
|
protected static shadowRootOptions: {
|
|
11
11
|
mode: string;
|
|
12
12
|
delegatesFocus: boolean;
|
|
13
|
+
clonable?: boolean;
|
|
14
|
+
customElementRegistry?: CustomElementRegistry;
|
|
13
15
|
serializable?: boolean;
|
|
14
16
|
slotAssignment?: SlotAssignmentMode;
|
|
15
17
|
};
|
package/types/src/card/card.d.ts
CHANGED
|
@@ -4,6 +4,8 @@ export default class SchmancyCard extends SchmancyCard_base {
|
|
|
4
4
|
protected static shadowRootOptions: {
|
|
5
5
|
mode: string;
|
|
6
6
|
delegatesFocus: boolean;
|
|
7
|
+
clonable?: boolean;
|
|
8
|
+
customElementRegistry?: CustomElementRegistry;
|
|
7
9
|
serializable?: boolean;
|
|
8
10
|
slotAssignment?: SlotAssignmentMode;
|
|
9
11
|
};
|
|
@@ -12,6 +12,8 @@ declare const SchmancyCheckboxElement_base: import("@mixins/index").Constructor<
|
|
|
12
12
|
declare class SchmancyCheckboxElement extends SchmancyCheckboxElement_base {
|
|
13
13
|
protected static shadowRootOptions: {
|
|
14
14
|
delegatesFocus: boolean;
|
|
15
|
+
clonable?: boolean;
|
|
16
|
+
customElementRegistry?: CustomElementRegistry;
|
|
15
17
|
mode: ShadowRootMode;
|
|
16
18
|
serializable?: boolean;
|
|
17
19
|
slotAssignment?: SlotAssignmentMode;
|
|
@@ -23,6 +23,8 @@ export declare class SchmancyAssistChip extends SchmancyAssistChip_base {
|
|
|
23
23
|
private ripples;
|
|
24
24
|
protected static shadowRootOptions: {
|
|
25
25
|
delegatesFocus: boolean;
|
|
26
|
+
clonable?: boolean;
|
|
27
|
+
customElementRegistry?: CustomElementRegistry;
|
|
26
28
|
mode: ShadowRootMode;
|
|
27
29
|
serializable?: boolean;
|
|
28
30
|
slotAssignment?: SlotAssignmentMode;
|
|
@@ -38,6 +38,8 @@ export declare class SchmancyFilterChip extends SchmancyFilterChip_base {
|
|
|
38
38
|
constructor();
|
|
39
39
|
protected static shadowRootOptions: {
|
|
40
40
|
delegatesFocus: boolean;
|
|
41
|
+
clonable?: boolean;
|
|
42
|
+
customElementRegistry?: CustomElementRegistry;
|
|
41
43
|
mode: ShadowRootMode;
|
|
42
44
|
serializable?: boolean;
|
|
43
45
|
slotAssignment?: SlotAssignmentMode;
|
|
@@ -51,6 +51,8 @@ export declare class SchmancyInputChip extends SchmancyInputChip_base {
|
|
|
51
51
|
constructor();
|
|
52
52
|
protected static shadowRootOptions: {
|
|
53
53
|
delegatesFocus: boolean;
|
|
54
|
+
clonable?: boolean;
|
|
55
|
+
customElementRegistry?: CustomElementRegistry;
|
|
54
56
|
mode: ShadowRootMode;
|
|
55
57
|
serializable?: boolean;
|
|
56
58
|
slotAssignment?: SlotAssignmentMode;
|
|
@@ -28,6 +28,8 @@ export declare class SchmancySuggestionChip extends SchmancySuggestionChip_base
|
|
|
28
28
|
private ripples;
|
|
29
29
|
protected static shadowRootOptions: {
|
|
30
30
|
delegatesFocus: boolean;
|
|
31
|
+
clonable?: boolean;
|
|
32
|
+
customElementRegistry?: CustomElementRegistry;
|
|
31
33
|
mode: ShadowRootMode;
|
|
32
34
|
serializable?: boolean;
|
|
33
35
|
slotAssignment?: SlotAssignmentMode;
|
|
@@ -4,6 +4,8 @@ export default class SchmancyDetails extends SchmancyDetails_base {
|
|
|
4
4
|
protected static shadowRootOptions: {
|
|
5
5
|
mode: "open";
|
|
6
6
|
delegatesFocus: boolean;
|
|
7
|
+
clonable?: boolean;
|
|
8
|
+
customElementRegistry?: CustomElementRegistry;
|
|
7
9
|
serializable?: boolean;
|
|
8
10
|
slotAssignment?: SlotAssignmentMode;
|
|
9
11
|
};
|
|
@@ -41,6 +41,8 @@ export default class SchmancyFormV2 extends SchmancyFormV2_base {
|
|
|
41
41
|
protected static shadowRootOptions: {
|
|
42
42
|
mode: string;
|
|
43
43
|
delegatesFocus: boolean;
|
|
44
|
+
clonable?: boolean;
|
|
45
|
+
customElementRegistry?: CustomElementRegistry;
|
|
44
46
|
serializable?: boolean;
|
|
45
47
|
slotAssignment?: SlotAssignmentMode;
|
|
46
48
|
};
|
package/types/src/form/form.d.ts
CHANGED
|
@@ -21,6 +21,8 @@ export default class SchmancyForm extends SchmancyForm_base {
|
|
|
21
21
|
protected static shadowRootOptions: {
|
|
22
22
|
mode: string;
|
|
23
23
|
delegatesFocus: boolean;
|
|
24
|
+
clonable?: boolean;
|
|
25
|
+
customElementRegistry?: CustomElementRegistry;
|
|
24
26
|
serializable?: boolean;
|
|
25
27
|
slotAssignment?: SlotAssignmentMode;
|
|
26
28
|
};
|
|
@@ -113,6 +113,8 @@ export default class SchmancyInput extends SchmancyInput_base {
|
|
|
113
113
|
private defaultValue;
|
|
114
114
|
protected static shadowRootOptions: {
|
|
115
115
|
delegatesFocus: boolean;
|
|
116
|
+
clonable?: boolean;
|
|
117
|
+
customElementRegistry?: CustomElementRegistry;
|
|
116
118
|
mode: ShadowRootMode;
|
|
117
119
|
serializable?: boolean;
|
|
118
120
|
slotAssignment?: SlotAssignmentMode;
|
|
@@ -3,6 +3,8 @@ declare const SchmancyTextarea_base: import("@mixins/index").Constructor<CustomE
|
|
|
3
3
|
export default class SchmancyTextarea extends SchmancyTextarea_base {
|
|
4
4
|
protected static shadowRootOptions: {
|
|
5
5
|
delegatesFocus: boolean;
|
|
6
|
+
clonable?: boolean;
|
|
7
|
+
customElementRegistry?: CustomElementRegistry;
|
|
6
8
|
mode: ShadowRootMode;
|
|
7
9
|
serializable?: boolean;
|
|
8
10
|
slotAssignment?: SlotAssignmentMode;
|
|
@@ -1,112 +0,0 @@
|
|
|
1
|
-
"use strict";const c=require("rxjs"),$=require("lit/directives/class-map.js");require("lit/directives/style-map.js");const r=require("lit/decorators.js");require("./tailwind.mixin-ChrVaJHF.cjs");const g=require("./litElement.mixin-rWG9s46P.cjs"),_=require("lit"),f=require("lit/directives/ref.js"),x=require("lit/directives/repeat.js"),v=require("lit/directives/when.js"),s=require("rxjs/operators"),b=require("./search-DWW8IoOp.cjs");require("./input-chip-CbD-eDs-.cjs");var w=Object.defineProperty,V=Object.getOwnPropertyDescriptor,p=(t,e,o,n)=>{for(var u,i=n>1?void 0:n?V(e,o):e,l=t.length-1;l>=0;l--)(u=t[l])&&(i=(n?u(e,o,i):u(i))||i);return n&&i&&w(e,o,i),i};let a=class extends g.$LitElement(":host{display:block;border:unset!important;line-height:unset!important;background:unset!important;padding:unset!important;font-size:unset!important;box-shadow:unset!important}:host:focus{box-shadow:unset!important}@keyframes onAutoFillStart{}sch-input::part(input):-webkit-autofill,sch-input input:-webkit-autofill{animation-name:onAutoFillStart;animation-duration:1ms}"){constructor(){super(...arguments),this.required=!1,this.placeholder="",this.label="",this.name="",this.maxHeight="300px",this.multi=!1,this.description="",this.size="md",this.autocomplete="off",this.debounceMs=200,this.similarityThreshold=.3,this.error=!1,this.validationMessage="",this._open=!1,this._inputValue="",this._visibleOptionsCount=0,this._hasResults=!0,this._inputElementRef=f.createRef(),this._selectedValue$=new c.BehaviorSubject(""),this._selectedValues$=new c.BehaviorSubject([]),this._inputValue$=new c.BehaviorSubject(""),this._open$=new c.BehaviorSubject(!1),this._options$=new c.BehaviorSubject([]),this._optionSelect$=new c.Subject,this._documentClick$=new c.Subject}get values(){return[...this._selectedValues$.value]}set values(t){this._selectedValues$.next(Array.isArray(t)?[...t]:[])}get value(){return this.multi?this._selectedValues$.value.join(","):this._selectedValue$.value}set value(t){this.multi?this._selectedValues$.next(t?t.split(",").map(e=>e.trim()).filter(Boolean):[]):this._selectedValue$.next(t)}connectedCallback(){super.connectedCallback(),this.id||(this.id=`sch-autocomplete-${Math.random().toString(36).slice(2,9)}`),this._setupAutocompleteLogic(),this._setupDocumentClickHandler()}_setupAutocompleteLogic(){this._options$.pipe(s.tap(t=>{t.forEach((e,o)=>{e.setAttribute("role","option"),e.tabIndex=-1,e.id||(e.id=`${this.id}-option-${o}`),e.hasAttribute("data-event-bound")||(c.fromEvent(e,"click").pipe(s.tap(n=>{n.stopPropagation()}),s.takeUntil(this.disconnecting)).subscribe(()=>this._optionSelect$.next(e)),e.setAttribute("data-event-bound","true"))})}),s.takeUntil(this.disconnecting)).subscribe(),c.combineLatest([this._selectedValue$,this._selectedValues$,this._options$]).pipe(s.tap(([t,e,o])=>{o.forEach(n=>{n.selected=this.multi?e.includes(n.value):n.value===t,n.setAttribute("aria-selected",String(n.selected))})}),s.takeUntil(this.disconnecting)).subscribe(),this._inputValue$.pipe(s.distinctUntilChanged(),s.debounceTime(this.debounceMs),s.withLatestFrom(this._options$,this._open$),s.tap(([t,e,o])=>{if(!o)return;const n=t.trim();if(n){const u=e.map(l=>{const d=l.label||l.textContent||"",h=l.value,m=b.similarity(n,d),y=b.similarity(n,h);return{option:l,score:Math.max(1.1*m,y)}});u.sort((l,d)=>d.score-l.score);let i=0;u.forEach((l,d)=>{const{option:h,score:m}=l;m<this.similarityThreshold?h.hidden=!0:(h.hidden=!1,i++,h.style.order=String(d))}),this._visibleOptionsCount=i,this._hasResults=i>0}else e.forEach(u=>{u.hidden=!1,u.style.order="0"}),this._visibleOptionsCount=e.length,this._hasResults=!0;this._announceToScreenReader(this._visibleOptionsCount>0?`${this._visibleOptionsCount} option${this._visibleOptionsCount===1?"":"s"} available.`:"No results found.")}),s.takeUntil(this.disconnecting)).subscribe(),this._optionSelect$.pipe(s.withLatestFrom(this._selectedValue$,this._selectedValues$),s.tap(([t,e,o])=>{if(this.multi){const n=o.indexOf(t.value),u=n>-1?[...o.slice(0,n),...o.slice(n+1)]:[...o,t.value];this._selectedValues$.next(u);const i=this._getSelectedLabels();this._announceToScreenReader(i.length>0?`Selected: ${i.join(", ")}`:"No options selected")}else this._selectedValue$.next(t.value),this._open$.next(!1),this._open=!1,this._inputValue=t.label||t.textContent||"",this._inputValue$.next(this._inputValue),c.timer(100).pipe(s.tap(()=>this._inputElementRef.value?.blur()),s.take(1)).subscribe(),this._announceToScreenReader(`Selected: ${t.label||t.textContent}`)}),s.tap(()=>this._fireChangeEvent()),s.takeUntil(this.disconnecting)).subscribe(),c.combineLatest([this._open$,this._selectedValue$,this._options$]).pipe(s.filter(()=>!this._open$.value&&!this.multi),s.tap(([,t,e])=>{const o=e.find(n=>n.value===t);this._inputValue=o&&(o.label||o.textContent)||"",this._inputValue$.next(this._inputValue)}),s.takeUntil(this.disconnecting)).subscribe(),this._open$.pipe(s.tap(t=>this._open=t),s.takeUntil(this.disconnecting)).subscribe()}_setupDocumentClickHandler(){this._documentClick$.pipe(s.filter(t=>!t.composedPath().includes(this)),s.filter(t=>!this._options.some(e=>t.composedPath().includes(e))),s.filter(()=>this._open),s.tap(()=>{this._open$.next(!1),this._updateInputDisplay()}),s.takeUntil(this.disconnecting)).subscribe(),this._open$.pipe(s.distinctUntilChanged(),s.switchMap(t=>t?c.timer(10).pipe(s.switchMap(()=>c.fromEvent(document,"click").pipe(s.tap(e=>this._documentClick$.next(e)),s.takeUntil(this._open$.pipe(s.filter(e=>!e)))))):c.EMPTY),s.takeUntil(this.disconnecting)).subscribe()}_updateInputDisplay(){this.multi||c.of(null).pipe(s.withLatestFrom(this._selectedValue$,this._options$,this._open$),s.tap(([,t,e,o])=>{if(this._inputElementRef.value&&!o){const n=e.find(u=>u.value===t);this._inputValue=n&&(n.label||n.textContent)||"",this._inputValue$.next(this._inputValue),this._inputElementRef.value.value=this._inputValue}}),s.take(1)).subscribe()}_getSelectedLabels(){return this._options.filter(t=>this.multi?this._selectedValues$.value.includes(t.value):t.value===this._selectedValue$.value).map(t=>t.label||t.textContent||"")}_announceToScreenReader(t){const e=this.shadowRoot?.querySelector("#live-status");e&&(e.textContent=t)}_fireChangeEvent(){const t={value:this.value};this.multi&&(t.values=[...this._selectedValues$.value]),this.dispatchEvent(new CustomEvent("change",{detail:t,bubbles:!0,composed:!0}))}checkValidity(){return!this.required||(this.multi?this._selectedValues$.value.length>0:!!this._selectedValue$.value)}reportValidity(){return this._inputElementRef.value?this._inputElementRef.value.reportValidity():this.checkValidity()}firstUpdated(){}handleChipRemove(t){const e=this._selectedValues$.value.filter(o=>o!==t);this._selectedValues$.next(e),this._fireChangeEvent(),this._announceToScreenReader(`Removed: ${this._getChipLabel(t)}`)}_getChipLabel(t){const e=this._options.find(o=>o.value===t);return e&&(e.label||e.textContent)||t}_focusTextInput(){this._inputElementRef.value&&this._inputElementRef.value.focus()}render(){const t=`${this.id}-desc`,{height:e,padding:o,fontSize:n,labelSize:u}=(()=>{switch(this.size){case"sm":return{height:"min-h-[40px]",padding:"px-2",fontSize:"text-sm",labelSize:"text-sm"};case"lg":return{height:"min-h-[60px]",padding:"px-5",fontSize:"text-lg",labelSize:"text-lg"};default:return{height:"min-h-[50px]",padding:"px-4",fontSize:"text-base",labelSize:"text-base"}}})();return _.html`
|
|
2
|
-
<div class="relative">
|
|
3
|
-
<!-- Screen reader live region -->
|
|
4
|
-
<div id="live-status" role="status" aria-live="polite" class="sr-only"></div>
|
|
5
|
-
|
|
6
|
-
<!-- Description -->
|
|
7
|
-
${this.description?_.html`<div id="${t}" class="sr-only">${this.description}</div>`:""}
|
|
8
|
-
|
|
9
|
-
<!-- Custom input wrapper for Gmail-style chip input -->
|
|
10
|
-
<slot name="trigger">
|
|
11
|
-
${v.when(this.multi,()=>_.html`
|
|
12
|
-
<!-- Custom multi-select input with inline chips -->
|
|
13
|
-
<div class="relative">
|
|
14
|
-
${v.when(this.label,()=>_.html`
|
|
15
|
-
<label class="${$.classMap({"block mb-1 font-medium":!0,"text-primary-default":!this.error,"text-error-default":this.error,[u]:!0})}">
|
|
16
|
-
${this.label}${this.required?_.html`<span class="text-error-default ml-1">*</span>`:""}
|
|
17
|
-
</label>
|
|
18
|
-
`)}
|
|
19
|
-
<div
|
|
20
|
-
class="${$.classMap({"flex flex-wrap items-center gap-1":!0,[e]:!0,[o]:!0,"block w-full min-w-0 rounded-[8px] border-0":!0,"bg-surface-highest text-surface-on":!0,"ring-0 ring-inset focus-within:ring-1 focus-within:ring-inset":!0,"ring-secondary-default focus-within:ring-secondary-default":!this.error,"ring-error-default focus-within:ring-error-default":this.error,"cursor-text transition-colors duration-200":!0})}"
|
|
21
|
-
@click=${()=>this._focusTextInput()}
|
|
22
|
-
role="combobox"
|
|
23
|
-
aria-autocomplete="list"
|
|
24
|
-
aria-haspopup="listbox"
|
|
25
|
-
aria-controls="options"
|
|
26
|
-
aria-expanded=${this._open}
|
|
27
|
-
>
|
|
28
|
-
<!-- Render chips inline -->
|
|
29
|
-
${x.repeat(this._selectedValues$.value,i=>i,i=>_.html`
|
|
30
|
-
<schmancy-input-chip
|
|
31
|
-
.value=${i}
|
|
32
|
-
@remove=${l=>this.handleChipRemove(l.detail.value)}
|
|
33
|
-
class="flex-shrink-0 my-0.5"
|
|
34
|
-
>
|
|
35
|
-
${this._getChipLabel(i)}
|
|
36
|
-
</schmancy-input-chip>
|
|
37
|
-
`)}
|
|
38
|
-
|
|
39
|
-
<!-- Text input for typing -->
|
|
40
|
-
<input
|
|
41
|
-
${f.ref(this._inputElementRef)}
|
|
42
|
-
id="autocomplete-input"
|
|
43
|
-
type="text"
|
|
44
|
-
class="flex-1 min-w-[120px] py-1 bg-transparent border-none outline-none ${n} font-medium text-surface-on placeholder:text-muted"
|
|
45
|
-
.name=${this.name||this.label?.toLowerCase().replace(/\s+/g,"-")}
|
|
46
|
-
.placeholder=${this._selectedValues$.value.length>0?"Add more...":this.placeholder}
|
|
47
|
-
.value=${this._inputValue}
|
|
48
|
-
.autocomplete=${this.autocomplete}
|
|
49
|
-
@input=${i=>{const l=i.target.value;this._inputValue=l,this._inputValue$.next(l)}}
|
|
50
|
-
@focus=${i=>{i.stopPropagation(),this._inputValue="",this._inputValue$.next(""),this._open$.next(!0)}}
|
|
51
|
-
@keydown=${i=>{this._handleKeyDown(i)}}
|
|
52
|
-
@blur=${()=>{this._handleAutoSelectOnBlur()}}
|
|
53
|
-
/>
|
|
54
|
-
</div>
|
|
55
|
-
|
|
56
|
-
<!-- Validation message -->
|
|
57
|
-
${v.when(this.error&&this.validationMessage,()=>_.html`
|
|
58
|
-
<div class="mt-1 text-sm text-error-default">
|
|
59
|
-
${this.validationMessage}
|
|
60
|
-
</div>
|
|
61
|
-
`)}
|
|
62
|
-
</div>
|
|
63
|
-
`,()=>_.html`
|
|
64
|
-
<!-- Regular single-select input -->
|
|
65
|
-
<schmancy-input
|
|
66
|
-
.size=${this.size}
|
|
67
|
-
${f.ref(this._inputElementRef)}
|
|
68
|
-
id="autocomplete-input"
|
|
69
|
-
class="w-full"
|
|
70
|
-
.name=${this.name||this.label?.toLowerCase().replace(/\s+/g,"-")}
|
|
71
|
-
.label=${this.label}
|
|
72
|
-
.placeholder=${this.placeholder}
|
|
73
|
-
.required=${this.required}
|
|
74
|
-
.value=${this._inputValue}
|
|
75
|
-
type="text"
|
|
76
|
-
autocomplete=${this.autocomplete}
|
|
77
|
-
clickable
|
|
78
|
-
role="combobox"
|
|
79
|
-
aria-autocomplete="list"
|
|
80
|
-
aria-haspopup="listbox"
|
|
81
|
-
aria-controls="options"
|
|
82
|
-
aria-expanded=${this._open}
|
|
83
|
-
aria-describedby=${this.description?t:void 0}
|
|
84
|
-
@input=${i=>{const l=i.target.value;this._inputValue=l,this._inputValue$.next(l)}}
|
|
85
|
-
@focus=${i=>{i.stopPropagation(),this._open$.next(!0)}}
|
|
86
|
-
@click=${i=>{i.stopPropagation(),this._open$.next(!0)}}
|
|
87
|
-
@keydown=${i=>{this._handleKeyDown(i)}}
|
|
88
|
-
@blur=${()=>{this._handleAutoSelectOnBlur()}}
|
|
89
|
-
>
|
|
90
|
-
</schmancy-input>
|
|
91
|
-
`)}
|
|
92
|
-
</slot>
|
|
93
|
-
|
|
94
|
-
<!-- Options dropdown -->
|
|
95
|
-
<ul
|
|
96
|
-
id="options"
|
|
97
|
-
class=${$.classMap({absolute:!0,"z-[1000]":!0,"mt-1":!0,"w-full":!0,"rounded-md":!0,"shadow-md":!0,"overflow-auto":!0,"min-w-full":!0,"bg-surface-low":!0,flex:!0,"flex-col":!0})}
|
|
98
|
-
role="listbox"
|
|
99
|
-
aria-multiselectable=${this.multi?"true":"false"}
|
|
100
|
-
aria-label=${`${this.label||"Options"} dropdown`}
|
|
101
|
-
?hidden=${!this._open}
|
|
102
|
-
style="max-height: ${this.maxHeight}; display: ${this._open?"flex":"none"};"
|
|
103
|
-
@slotchange=${()=>{this._options$.next(this._options)}}
|
|
104
|
-
>
|
|
105
|
-
<slot></slot>
|
|
106
|
-
${this._hasResults?"":_.html`
|
|
107
|
-
<li class="px-3 py-2 text-sm text-muted">No results found</li>
|
|
108
|
-
`}
|
|
109
|
-
</ul>
|
|
110
|
-
</div>
|
|
111
|
-
`}_handleAutoSelectOnBlur(){if(this.multi||!this._open||!this._inputValue.trim())return;const t=this._inputValue.trim();let e=null,o=0;this._options.forEach(n=>{if(n.hidden)return;const u=n.label||n.textContent||"",i=n.value,l=b.similarity(t,u),d=b.similarity(t,i),h=Math.max(1.1*l,d);h>o&&h>=this.similarityThreshold&&(o=h,e=n)}),e&&(this._optionSelect$.next(e),this._open$.next(!1),this._open=!1)}_handleKeyDown(t){c.fromEvent(document,"keydown").pipe(s.take(1),s.withLatestFrom(this._open$,this._options$,this._selectedValues$),s.tap(([e,o,n,u])=>{if(this.multi&&e.key==="Backspace"&&!this._inputValue&&u.length>0&&!o){e.preventDefault();const h=u[u.length-1];return void this.handleChipRemove(h)}if(!o&&(e.key==="ArrowDown"||e.key==="Enter"))return e.preventDefault(),this._open$.next(!0),void c.timer(10).pipe(s.tap(()=>{n.find(m=>!m.hidden)?.focus()}),s.take(1)).subscribe();if(!o)return;const i=n.filter(h=>!h.hidden).sort((h,m)=>parseInt(h.style.order||"0")-parseInt(m.style.order||"0")),l=i.find(h=>h===document.activeElement),d=l?i.indexOf(l):-1;switch(e.key){case"Escape":e.preventDefault(),this._open$.next(!1),this._updateInputDisplay(),this._inputElementRef.value?.focus();break;case"Tab":this._open$.next(!1),this._updateInputDisplay();break;case"ArrowDown":e.preventDefault();const h=d<i.length-1?d+1:0;i[h]?.focus();break;case"ArrowUp":e.preventDefault();const m=d>0?d-1:i.length-1;i[m]?.focus();break;case"Home":e.preventDefault(),i[0]?.focus();break;case"End":e.preventDefault(),i[i.length-1]?.focus();break;case"Enter":case" ":l&&(e.preventDefault(),this._optionSelect$.next(l))}})).subscribe()}};p([r.property({type:Boolean})],a.prototype,"required",2),p([r.property({type:String})],a.prototype,"placeholder",2),p([r.property({type:String,reflect:!0})],a.prototype,"label",2),p([r.property({type:String})],a.prototype,"name",2),p([r.property({type:String})],a.prototype,"maxHeight",2),p([r.property({type:Boolean})],a.prototype,"multi",2),p([r.property({type:String})],a.prototype,"description",2),p([r.property({type:String,reflect:!0})],a.prototype,"size",2),p([r.property({type:String})],a.prototype,"autocomplete",2),p([r.property({type:Number})],a.prototype,"debounceMs",2),p([r.property({type:Number})],a.prototype,"similarityThreshold",2),p([r.property({type:Boolean})],a.prototype,"error",2),p([r.property({type:String})],a.prototype,"validationMessage",2),p([r.property({type:Array})],a.prototype,"values",1),p([r.property({type:String,reflect:!0})],a.prototype,"value",1),p([r.state()],a.prototype,"_open",2),p([r.state()],a.prototype,"_inputValue",2),p([r.state()],a.prototype,"_visibleOptionsCount",2),p([r.state()],a.prototype,"_hasResults",2),p([r.query("#options")],a.prototype,"_listbox",2),p([r.query("sch-input")],a.prototype,"_input",2),p([r.queryAssignedElements({flatten:!0})],a.prototype,"_options",2),a=p([r.customElement("schmancy-autocomplete")],a);
|
|
112
|
-
//# sourceMappingURL=autocomplete-CG2YtfwU.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"autocomplete-CG2YtfwU.cjs","sources":["../src/autocomplete/autocomplete.ts"],"sourcesContent":["import { $LitElement } from '@mixins/index'\nimport { InputSize, SchmancyInput } from '@schmancy/input'\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 { repeat } from 'lit/directives/repeat.js'\nimport { when } from 'lit/directives/when.js'\nimport {\n BehaviorSubject,\n combineLatest,\n EMPTY,\n fromEvent,\n of,\n Subject,\n timer\n} from 'rxjs'\nimport {\n debounceTime,\n distinctUntilChanged,\n filter,\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// Import chip component for multi-select display\nimport '../chips/input-chip'\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 = 'off'\n @property({ type: Number }) debounceMs = 200\n @property({ type: Number }) similarityThreshold = 0.3 // Minimum similarity score to show option\n @property({ type: Boolean }) error = false\n @property({ type: String }) validationMessage = ''\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!: SchmancyInput\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\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 // Complex autofill detection disabled - using simple auto-select on blur instead\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 // Use click event instead of pointerdown for better mobile UX\n // This allows users to scroll through options without immediately selecting\n fromEvent(option, 'click').pipe(\n tap(e => {\n e.stopPropagation()\n }),\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 // Keep search input persistent - don't reset\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 - only for single select\n combineLatest([\n this._open$,\n this._selectedValue$,\n this._options$\n ]).pipe(\n filter(() => !this._open$.value && !this.multi),\n tap(([, selectedValue, options]) => {\n const option = options.find(opt => opt.value === selectedValue)\n this._inputValue = option ? option.label || option.textContent || '' : ''\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 switchMap(() => fromEvent<MouseEvent>(document, 'click').pipe(\n tap(e => this._documentClick$.next(e)),\n takeUntil(this._open$.pipe(filter(isOpen => !isOpen)))\n ))\n )\n : EMPTY\n ),\n takeUntil(this.disconnecting)\n ).subscribe()\n }\n\n\n private _updateInputDisplay() {\n // For multi-select, we don't update input display since chips show the selections\n if (this.multi) {\n return\n }\n\n of(null).pipe(\n withLatestFrom(\n this._selectedValue$,\n this._options$,\n this._open$\n ),\n tap(([, selectedValue, options, isOpen]) => {\n if (!this._inputElementRef.value) return\n\n if (!isOpen) {\n const option = options.find(opt => opt.value === selectedValue)\n this._inputValue = option ? option.label || option.textContent || '' : ''\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 // Auto-selection now happens on blur, no need for autofill detection\n }\n\n private handleChipRemove(value: string) {\n const currentValues = this._selectedValues$.value\n const newValues = currentValues.filter(v => v !== value)\n this._selectedValues$.next(newValues)\n this._fireChangeEvent()\n this._announceToScreenReader(`Removed: ${this._getChipLabel(value)}`)\n }\n\n private _getChipLabel(value: string): string {\n const option = this._options.find(opt => opt.value === value)\n return option ? option.label || option.textContent || value : value\n }\n\n private _focusTextInput() {\n if (this._inputElementRef.value) {\n this._inputElementRef.value.focus()\n }\n }\n\n render() {\n const descriptionId = `${this.id}-desc`\n\n // Get size-based styling to match Schmancy input\n const getSizeStyles = () => {\n switch (this.size) {\n case 'sm':\n return {\n height: 'min-h-[40px]',\n padding: 'px-2',\n fontSize: 'text-sm', // 14px\n labelSize: 'text-sm'\n }\n case 'lg':\n return {\n height: 'min-h-[60px]',\n padding: 'px-5',\n fontSize: 'text-lg', // 18px\n labelSize: 'text-lg'\n }\n case 'md':\n default:\n return {\n height: 'min-h-[50px]',\n padding: 'px-4',\n fontSize: 'text-base', // 16px\n labelSize: 'text-base'\n }\n }\n }\n\n const { height, padding, fontSize, labelSize } = getSizeStyles()\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 <!-- Custom input wrapper for Gmail-style chip input -->\n <slot name=\"trigger\">\n ${when(this.multi,\n () => html`\n <!-- Custom multi-select input with inline chips -->\n <div class=\"relative\">\n ${when(this.label, () => html`\n <label class=\"${classMap({\n 'block mb-1 font-medium': true,\n 'text-primary-default': !this.error,\n 'text-error-default': this.error,\n [labelSize]: true\n })}\">\n ${this.label}${this.required ? html`<span class=\"text-error-default ml-1\">*</span>` : ''}\n </label>\n `)}\n <div\n class=\"${classMap({\n 'flex flex-wrap items-center gap-1': true,\n [height]: true,\n [padding]: true,\n 'block w-full min-w-0 rounded-[8px] border-0': true,\n 'bg-surface-highest text-surface-on': true,\n 'ring-0 ring-inset focus-within:ring-1 focus-within:ring-inset': true,\n 'ring-secondary-default focus-within:ring-secondary-default': !this.error,\n 'ring-error-default focus-within:ring-error-default': this.error,\n 'cursor-text transition-colors duration-200': true\n })}\"\n @click=${() => this._focusTextInput()}\n role=\"combobox\"\n aria-autocomplete=\"list\"\n aria-haspopup=\"listbox\"\n aria-controls=\"options\"\n aria-expanded=${this._open}\n >\n <!-- Render chips inline -->\n ${repeat(\n this._selectedValues$.value,\n value => value,\n value => html`\n <schmancy-input-chip\n .value=${value}\n @remove=${(e: CustomEvent) => this.handleChipRemove(e.detail.value)}\n class=\"flex-shrink-0 my-0.5\"\n >\n ${this._getChipLabel(value)}\n </schmancy-input-chip>\n `\n )}\n\n <!-- Text input for typing -->\n <input\n ${ref(this._inputElementRef)}\n id=\"autocomplete-input\"\n type=\"text\"\n class=\"flex-1 min-w-[120px] py-1 bg-transparent border-none outline-none ${fontSize} font-medium text-surface-on placeholder:text-muted\"\n .name=${this.name || this.label?.toLowerCase().replace(/\\s+/g, '-')}\n .placeholder=${this._selectedValues$.value.length > 0 ? 'Add more...' : this.placeholder}\n .value=${this._inputValue}\n .autocomplete=${this.autocomplete}\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 // Clear input on focus for new searches\n this._inputValue = ''\n this._inputValue$.next('')\n this._open$.next(true)\n }}\n @keydown=${(e: KeyboardEvent) => {\n this._handleKeyDown(e)\n }}\n @blur=${() => {\n this._handleAutoSelectOnBlur()\n }}\n />\n </div>\n\n <!-- Validation message -->\n ${when(this.error && this.validationMessage, () => html`\n <div class=\"mt-1 text-sm text-error-default\">\n ${this.validationMessage}\n </div>\n `)}\n </div>\n `,\n () => html`\n <!-- Regular single-select input -->\n <schmancy-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 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 @blur=${() => {\n this._handleAutoSelectOnBlur()\n }}\n >\n </schmancy-input>\n `\n )}\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 }}\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 }\n\n private _handleAutoSelectOnBlur() {\n // Only auto-select in single-select mode and when dropdown is open with a search term\n if (this.multi || !this._open || !this._inputValue.trim()) {\n return\n }\n \n const searchTerm = this._inputValue.trim()\n \n // Find the best matching option using the same similarity logic as filtering\n let bestMatch: SchmancyOption | null = null\n let bestScore = 0\n \n this._options.forEach(option => {\n // Skip hidden options\n if (option.hidden) return\n \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(searchTerm, optionLabel)\n const valueScore = similarity(searchTerm, 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 // Keep track of best match that meets threshold\n if (score > bestScore && score >= this.similarityThreshold) {\n bestScore = score\n bestMatch = option\n }\n })\n \n // Auto-select the best match if found\n if (bestMatch) {\n // Select the option using the existing pipeline\n this._optionSelect$.next(bestMatch)\n \n // Close the dropdown\n this._open$.next(false)\n this._open = false\n \n }\n }\n\n private _handleKeyDown(_e: KeyboardEvent) {\n fromEvent<KeyboardEvent>(document, 'keydown').pipe(\n take(1),\n withLatestFrom(this._open$, this._options$, this._selectedValues$),\n tap(([event, isOpen, options, selectedValues]) => {\n // Handle backspace to remove last chip in multi-select when input is empty\n if (this.multi && event.key === 'Backspace' && !this._inputValue && selectedValues.length > 0 && !isOpen) {\n event.preventDefault()\n const lastValue = selectedValues[selectedValues.length - 1]\n this.handleChipRemove(lastValue)\n return\n }\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":["SchmancyAutocomplete","$LitElement","constructor","super","arguments","this","required","placeholder","label","name","maxHeight","multi","description","size","autocomplete","debounceMs","similarityThreshold","error","validationMessage","_open","_inputValue","_visibleOptionsCount","_hasResults","_inputElementRef","createRef","_selectedValue$","BehaviorSubject","_selectedValues$","_inputValue$","_open$","_options$","_optionSelect$","Subject","_documentClick$","values","value","vals","next","Array","isArray","join","val","split","map","v","trim","filter","Boolean","connectedCallback","id","Math","random","toString","slice","_setupAutocompleteLogic","_setupDocumentClickHandler","pipe","tap","options","forEach","option","index","setAttribute","tabIndex","hasAttribute","fromEvent","e","stopPropagation","takeUntil","disconnecting","subscribe","combineLatest","selectedValue","selectedValues","selected","includes","String","distinctUntilChanged","debounceTime","withLatestFrom","searchTerm","isOpen","term","scoredOptions","optionLabel","textContent","optionValue","labelScore","similarity","valueScore","score","max","sort","a","b","visibleCount","item","hidden","style","order","length","_announceToScreenReader","_","currentValues","indexOf","newValues","labels","_getSelectedLabels","timer","blur","take","_fireChangeEvent","find","opt","open","composedPath","_options","some","_updateInputDisplay","switchMap","document","EMPTY","of","message","liveRegion","shadowRoot","querySelector","detail","dispatchEvent","CustomEvent","bubbles","composed","checkValidity","reportValidity","firstUpdated","_getChipLabel","_focusTextInput","focus","render","descriptionId","height","padding","fontSize","labelSize","getSizeStyles","html","when","classMap","repeat","handleChipRemove","ref","toLowerCase","replace","target","_handleKeyDown","_handleAutoSelectOnBlur","absolute","flex","bestMatch","bestScore","_e","event","key","preventDefault","lastValue","visibleOptions","parseInt","focusedOption","activeElement","currentIndex","nextIndex","prevIndex","__decorateClass","property","type","prototype","reflect","Number","state","query","queryAssignedElements","flatten","customElement"],"mappings":"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"}
|