@mhmo91/schmancy 0.6.18 → 0.7.1
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/menu.md +117 -186
- package/dist/ai/menu.md +117 -186
- package/dist/{animated-text-CgKXZOvy.cjs → animated-text-B8pXfnjg.cjs} +2 -2
- package/dist/{animated-text-CgKXZOvy.cjs.map → animated-text-B8pXfnjg.cjs.map} +1 -1
- package/dist/{animated-text-Df3UZBT2.js → animated-text-C7RzcmyV.js} +3 -3
- package/dist/{animated-text-Df3UZBT2.js.map → animated-text-C7RzcmyV.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-DXQff5kK.js → area.component-DfGcGjsN.js} +3 -3
- package/dist/{area.component-DXQff5kK.js.map → area.component-DfGcGjsN.js.map} +1 -1
- package/dist/{area.component-_AwKbrLf.cjs → area.component-TRIJcSoQ.cjs} +2 -2
- package/dist/{area.component-_AwKbrLf.cjs.map → area.component-TRIJcSoQ.cjs.map} +1 -1
- package/dist/area.js +1 -1
- package/dist/{autocomplete-DLzc6eqO.js → autocomplete-Bhv2JOnL.js} +4 -4
- package/dist/autocomplete-Bhv2JOnL.js.map +1 -0
- package/dist/{autocomplete-DEzGDw9s.cjs → autocomplete-Dio0lk_E.cjs} +2 -2
- package/dist/autocomplete-Dio0lk_E.cjs.map +1 -0
- package/dist/autocomplete.cjs +1 -1
- package/dist/autocomplete.js +1 -1
- package/dist/{avatar-RIbulvWL.js → avatar-BCLeThlA.js} +51 -51
- package/dist/{avatar-RIbulvWL.js.map → avatar-BCLeThlA.js.map} +1 -1
- package/dist/{avatar-Wu763qgL.cjs → avatar-DecX7RJw.cjs} +2 -2
- package/dist/{avatar-Wu763qgL.cjs.map → avatar-DecX7RJw.cjs.map} +1 -1
- package/dist/badge.cjs +1 -1
- package/dist/badge.js +1 -1
- package/dist/{boat-VzOnSD8z.cjs → boat-B3IhIJhy.cjs} +2 -2
- package/dist/{boat-VzOnSD8z.cjs.map → boat-B3IhIJhy.cjs.map} +1 -1
- package/dist/{boat-CWADeoFv.js → boat-DrAkyCAd.js} +3 -3
- package/dist/{boat-CWADeoFv.js.map → boat-DrAkyCAd.js.map} +1 -1
- 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-ZryxdmZz.js → checkbox-BKT1cZnv.js} +2 -2
- package/dist/checkbox-BKT1cZnv.js.map +1 -0
- package/dist/{checkbox-DClxbWbU.cjs → checkbox-C4CHTajr.cjs} +2 -2
- package/dist/checkbox-C4CHTajr.cjs.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-BoYqlMxl.cjs → code-preview-CEbRCvUd.cjs} +2 -2
- package/dist/code-preview-CEbRCvUd.cjs.map +1 -0
- package/dist/{code-preview-Bn2K5K9h.js → code-preview-DzMETSJv.js} +2 -2
- package/dist/code-preview-DzMETSJv.js.map +1 -0
- package/dist/components.cjs +1 -1
- package/dist/components.js +1 -1
- package/dist/consume-5D1qfVWM.js.map +1 -1
- package/dist/consume-edta5ng5.cjs.map +1 -1
- package/dist/content-drawer.cjs +1 -1
- package/dist/content-drawer.js +1 -1
- package/dist/context-create-CA907mdD.cjs.map +1 -1
- package/dist/context-create-DCiujzV2.js.map +1 -1
- package/dist/{date-range-CCQsqKSy.js → date-range-B-5LtvhH.js} +3 -3
- package/dist/date-range-B-5LtvhH.js.map +1 -0
- package/dist/{date-range-B-rPnyst.cjs → date-range-B1PGOR7h.cjs} +2 -2
- package/dist/date-range-B1PGOR7h.cjs.map +1 -0
- package/dist/{date-range-inline-DO0Ps_QS.js → date-range-inline-D90CpK7z.js} +3 -3
- package/dist/{date-range-inline-DO0Ps_QS.js.map → date-range-inline-D90CpK7z.js.map} +1 -1
- package/dist/{date-range-inline-NACS06ev.cjs → date-range-inline-DLV7jB_x.cjs} +2 -2
- package/dist/{date-range-inline-NACS06ev.cjs.map → date-range-inline-DLV7jB_x.cjs.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-BaltOHAs.js → delay-D5RAR00M.js} +2 -2
- package/dist/delay-D5RAR00M.js.map +1 -0
- package/dist/{delay-DzqfMSBJ.cjs → delay-UAjkp-21.cjs} +2 -2
- package/dist/delay-UAjkp-21.cjs.map +1 -0
- package/dist/delay.cjs +1 -1
- package/dist/delay.js +1 -1
- package/dist/{details-Bic4ZKNZ.js → details-CiuixU2H.js} +2 -2
- package/dist/{details-Bic4ZKNZ.js.map → details-CiuixU2H.js.map} +1 -1
- package/dist/{details-DPSpg2dL.cjs → details-RHTdNCLS.cjs} +2 -2
- package/dist/{details-DPSpg2dL.cjs.map → details-RHTdNCLS.cjs.map} +1 -1
- package/dist/details.cjs +1 -1
- package/dist/details.js +1 -1
- package/dist/{dialog-content-CR4l1Yts.cjs → dialog-content-BF1xiYWw.cjs} +2 -2
- package/dist/{dialog-content-CR4l1Yts.cjs.map → dialog-content-BF1xiYWw.cjs.map} +1 -1
- package/dist/{dialog-content-CwsV3nWG.js → dialog-content-dtIrTHLU.js} +3 -3
- package/dist/{dialog-content-CwsV3nWG.js.map → dialog-content-dtIrTHLU.js.map} +1 -1
- package/dist/dialog.cjs +1 -1
- package/dist/dialog.js +1 -1
- package/dist/{divider-ChXDN5-E.js → divider-DcEB9uHV.js} +3 -3
- package/dist/{divider-ChXDN5-E.js.map → divider-DcEB9uHV.js.map} +1 -1
- package/dist/{divider-CpiE9MZW.cjs → divider-ZhcWRyc2.cjs} +2 -2
- package/dist/{divider-CpiE9MZW.cjs.map → divider-ZhcWRyc2.cjs.map} +1 -1
- package/dist/divider.cjs +1 -1
- package/dist/divider.js +1 -1
- package/dist/{dropdown-content-BmA6vuhB.js → dropdown-content-BoUnfAyz.js} +3 -3
- package/dist/{dropdown-content-BmA6vuhB.js.map → dropdown-content-BoUnfAyz.js.map} +1 -1
- package/dist/{dropdown-content-8I1uIUoF.cjs → dropdown-content-klaWLDI-.cjs} +2 -2
- package/dist/{dropdown-content-8I1uIUoF.cjs.map → dropdown-content-klaWLDI-.cjs.map} +1 -1
- package/dist/dropdown.cjs +1 -1
- package/dist/dropdown.js +1 -1
- package/dist/{email-recipients-Cl_-UNWo.cjs → email-recipients-DA2HLG8K.cjs} +2 -2
- package/dist/{email-recipients-Cl_-UNWo.cjs.map → email-recipients-DA2HLG8K.cjs.map} +1 -1
- package/dist/{email-recipients-Ew87bYRp.js → email-recipients-yN1Jcu9X.js} +6 -6
- package/dist/{email-recipients-Ew87bYRp.js.map → email-recipients-yN1Jcu9X.js.map} +1 -1
- package/dist/extra.cjs +1 -1
- package/dist/extra.js +1 -1
- package/dist/{flex-DsHnuUb7.cjs → flex-CYCtLC7W.cjs} +2 -2
- package/dist/{flex-DsHnuUb7.cjs.map → flex-CYCtLC7W.cjs.map} +1 -1
- package/dist/{flex-CW7oSqU1.js → flex-C_fGjgWC.js} +2 -2
- package/dist/{flex-CW7oSqU1.js.map → flex-C_fGjgWC.js.map} +1 -1
- package/dist/flow-D0e7hGXO.cjs.map +1 -1
- package/dist/flow-DXYqC9OA.js.map +1 -1
- package/dist/{form-DZ9l7TjO.cjs → form-CYBgxvdH.cjs} +2 -2
- package/dist/{form-DZ9l7TjO.cjs.map → form-CYBgxvdH.cjs.map} +1 -1
- package/dist/{form-C5d6gWUg.js → form-Dn3XWE7d.js} +2 -2
- package/dist/{form-C5d6gWUg.js.map → form-Dn3XWE7d.js.map} +1 -1
- package/dist/form.cjs +1 -1
- package/dist/form.js +1 -1
- package/dist/{formField.mixin-BW4RaqbT.cjs → formField.mixin-D_gQgJXC.cjs} +2 -2
- package/dist/{formField.mixin-BW4RaqbT.cjs.map → formField.mixin-D_gQgJXC.cjs.map} +1 -1
- package/dist/{formField.mixin-DpD9oPMR.js → formField.mixin-Ds2S1kRc.js} +2 -2
- package/dist/{formField.mixin-DpD9oPMR.js.map → formField.mixin-Ds2S1kRc.js.map} +1 -1
- package/dist/{icon-BATnNWHh.js → icon-Bw8hqRtQ.js} +2 -2
- package/dist/{icon-BATnNWHh.js.map → icon-Bw8hqRtQ.js.map} +1 -1
- package/dist/{icon-CV5KKSMK.cjs → icon-DYGsNRVu.cjs} +2 -2
- package/dist/{icon-CV5KKSMK.cjs.map → icon-DYGsNRVu.cjs.map} +1 -1
- package/dist/{icon-button-CST9ztNW.cjs → icon-button-BfjcTNKq.cjs} +3 -3
- package/dist/icon-button-BfjcTNKq.cjs.map +1 -0
- package/dist/{icon-button-BlyzaNtE.js → icon-button-Cu-RShdY.js} +7 -7
- package/dist/icon-button-Cu-RShdY.js.map +1 -0
- package/dist/icons.cjs +1 -1
- package/dist/icons.js +1 -1
- package/dist/index-CCi1otmh.cjs.map +1 -1
- package/dist/index-CW6PhEkx.js.map +1 -1
- package/dist/index.cjs +1 -1
- package/dist/index.js +50 -50
- package/dist/{input-RPj2xLz4.cjs → input-D-YRT2vo.cjs} +2 -2
- package/dist/input-D-YRT2vo.cjs.map +1 -0
- package/dist/{input-BJvZX3nK.js → input-UlrGLoXt.js} +3 -3
- package/dist/input-UlrGLoXt.js.map +1 -0
- package/dist/{input-chip-CyvaAJiR.js → input-chip-BwEuJAV5.js} +2 -2
- package/dist/{input-chip-CyvaAJiR.js.map → input-chip-BwEuJAV5.js.map} +1 -1
- package/dist/{input-chip-CGilKpgN.cjs → input-chip-pho9bYvS.cjs} +2 -2
- package/dist/{input-chip-CGilKpgN.cjs.map → input-chip-pho9bYvS.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-Dqwbw_0L.js → list-B4x432bs.js} +2 -2
- package/dist/{list-Dqwbw_0L.js.map → list-B4x432bs.js.map} +1 -1
- package/dist/{list-Dphnkgjm.cjs → list-CyCR5ywg.cjs} +2 -2
- package/dist/{list-Dphnkgjm.cjs.map → list-CyCR5ywg.cjs.map} +1 -1
- package/dist/list.cjs +1 -1
- package/dist/list.js +1 -1
- package/dist/{litElement.mixin-BbwZRaPp.js → litElement.mixin-BPe38Tqd.js} +2 -2
- package/dist/{litElement.mixin-BbwZRaPp.js.map → litElement.mixin-BPe38Tqd.js.map} +1 -1
- package/dist/{litElement.mixin-1i17ImwN.cjs → litElement.mixin-DXaT0TQx.cjs} +2 -2
- package/dist/{litElement.mixin-1i17ImwN.cjs.map → litElement.mixin-DXaT0TQx.cjs.map} +1 -1
- package/dist/mailbox.cjs +1 -1
- package/dist/mailbox.js +1 -1
- package/dist/{map-DEjWWl14.cjs → map-C2fG3es8.cjs} +2 -2
- package/dist/{map-DEjWWl14.cjs.map → map-C2fG3es8.cjs.map} +1 -1
- package/dist/{map-BHfXl4eZ.js → map-CNoi0TZi.js} +2 -2
- package/dist/{map-BHfXl4eZ.js.map → map-CNoi0TZi.js.map} +1 -1
- package/dist/map.cjs +1 -1
- package/dist/map.js +1 -1
- package/dist/{media-CFqac3i-.js → media-D_ne5TmT.js} +2 -2
- package/dist/{media-CFqac3i-.js.map → media-D_ne5TmT.js.map} +1 -1
- package/dist/{media-wEB2juTQ.cjs → media-dMr54ISj.cjs} +2 -2
- package/dist/{media-wEB2juTQ.cjs.map → media-dMr54ISj.cjs.map} +1 -1
- package/dist/menu-BdWhwHXc.js +89 -0
- package/dist/menu-BdWhwHXc.js.map +1 -0
- package/dist/menu-BsX4Mjjn.cjs +23 -0
- package/dist/menu-BsX4Mjjn.cjs.map +1 -0
- package/dist/menu.cjs +1 -1
- package/dist/menu.js +1 -1
- package/dist/mixins.cjs +2 -0
- package/dist/mixins.cjs.map +1 -0
- package/dist/mixins.js +12 -0
- package/dist/mixins.js.map +1 -0
- 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-Cdklj_Vy.js → navigation-rail-DM2NQY_2.js} +3 -3
- package/dist/{navigation-rail-Cdklj_Vy.js.map → navigation-rail-DM2NQY_2.js.map} +1 -1
- package/dist/{navigation-rail-eNmqnFXJ.cjs → navigation-rail-DfFgV2PX.cjs} +2 -2
- package/dist/{navigation-rail-eNmqnFXJ.cjs.map → navigation-rail-DfFgV2PX.cjs.map} +1 -1
- package/dist/navigation-rail.cjs +1 -1
- package/dist/navigation-rail.js +1 -1
- package/dist/{notification-service-jityv87S.cjs → notification-service-Cm_0BsnA.cjs} +2 -2
- package/dist/{notification-service-jityv87S.cjs.map → notification-service-Cm_0BsnA.cjs.map} +1 -1
- package/dist/{notification-service-CqxmKVJX.js → notification-service-DDfyKN2r.js} +4 -4
- package/dist/{notification-service-CqxmKVJX.js.map → notification-service-DDfyKN2r.js.map} +1 -1
- package/dist/notification.cjs +1 -1
- package/dist/notification.js +2 -2
- package/dist/{notify-C8EM_JmR.js → notify-BGHQRbsD.js} +2 -2
- package/dist/{notify-C8EM_JmR.js.map → notify-BGHQRbsD.js.map} +1 -1
- package/dist/{notify-CxqHlCZF.cjs → notify-DMoBBADS.cjs} +2 -2
- package/dist/{notify-CxqHlCZF.cjs.map → notify-DMoBBADS.cjs.map} +1 -1
- package/dist/{option-COJIldwK.js → option-EBGoYClu.js} +2 -2
- package/dist/{option-COJIldwK.js.map → option-EBGoYClu.js.map} +1 -1
- package/dist/{option-CBQoRZ86.cjs → option-MaqD_vGw.cjs} +2 -2
- package/dist/{option-CBQoRZ86.cjs.map → option-MaqD_vGw.cjs.map} +1 -1
- package/dist/option.cjs +1 -1
- package/dist/option.js +1 -1
- package/dist/{payment-card-form-BzDuKScU.cjs → payment-card-form-DZmaLaVl.cjs} +2 -2
- package/dist/payment-card-form-DZmaLaVl.cjs.map +1 -0
- package/dist/{payment-card-form-CHMYeZs2.js → payment-card-form-p_Wj1NRm.js} +3 -3
- package/dist/payment-card-form-p_Wj1NRm.js.map +1 -0
- package/dist/{progress-nOhWloHs.cjs → progress-BqIOFoJX.cjs} +2 -2
- package/dist/{progress-nOhWloHs.cjs.map → progress-BqIOFoJX.cjs.map} +1 -1
- package/dist/{progress-CtNg2SPw.js → progress-DC88fksT.js} +2 -2
- package/dist/{progress-CtNg2SPw.js.map → progress-DC88fksT.js.map} +1 -1
- package/dist/progress.cjs +1 -1
- package/dist/progress.js +1 -1
- package/dist/provide-BxZ2kn_p.cjs.map +1 -1
- package/dist/provide-tcktw8xB.js.map +1 -1
- package/dist/{radio-button-DttgXEeY.cjs → radio-button-BfpkkEgE.cjs} +2 -2
- package/dist/radio-button-BfpkkEgE.cjs.map +1 -0
- package/dist/{radio-button-DggshTfa.js → radio-button-DQA5Kswx.js} +3 -3
- package/dist/radio-button-DQA5Kswx.js.map +1 -0
- package/dist/radio-group.cjs +1 -1
- package/dist/radio-group.js +1 -1
- package/dist/{schmancy-steps-container-DhtHaKgX.js → schmancy-steps-container-Br5qKWIs.js} +2 -2
- package/dist/{schmancy-steps-container-DhtHaKgX.js.map → schmancy-steps-container-Br5qKWIs.js.map} +1 -1
- package/dist/{schmancy-steps-container-hIBLjMgI.cjs → schmancy-steps-container-Cr2B9C-w.cjs} +2 -2
- package/dist/{schmancy-steps-container-hIBLjMgI.cjs.map → schmancy-steps-container-Cr2B9C-w.cjs.map} +1 -1
- package/dist/{select-BqyRn0cF.js → select-B_DaDLhe.js} +3 -3
- package/dist/select-B_DaDLhe.js.map +1 -0
- package/dist/{select-xZKW8cHu.cjs → select-DwaiJBG2.cjs} +2 -2
- package/dist/select-DwaiJBG2.cjs.map +1 -0
- package/dist/select.cjs +1 -1
- package/dist/select.js +1 -1
- package/dist/{sheet-DE8jIQUk.js → sheet-5c6WR3vS.js} +5 -5
- package/dist/{sheet-DE8jIQUk.js.map → sheet-5c6WR3vS.js.map} +1 -1
- package/dist/{sheet-C6Liqa_3.cjs → sheet-BrK8_X4J.cjs} +2 -2
- package/dist/{sheet-C6Liqa_3.cjs.map → sheet-BrK8_X4J.cjs.map} +1 -1
- package/dist/sheet.cjs +1 -1
- package/dist/sheet.js +2 -2
- package/dist/{sheet.service-NAV5vSsM.cjs → sheet.service-BkKHvgFa.cjs} +2 -2
- package/dist/{sheet.service-NAV5vSsM.cjs.map → sheet.service-BkKHvgFa.cjs.map} +1 -1
- package/dist/{sheet.service-1jZMJbNp.js → sheet.service-EPEmcCpX.js} +2 -2
- package/dist/{sheet.service-1jZMJbNp.js.map → sheet.service-EPEmcCpX.js.map} +1 -1
- package/dist/{slider-BvbkpEef.js → slider-CiNvtgZJ.js} +3 -3
- package/dist/{slider-BvbkpEef.js.map → slider-CiNvtgZJ.js.map} +1 -1
- package/dist/{slider-lEoCLK-7.cjs → slider-DW9URxIY.cjs} +2 -2
- package/dist/{slider-lEoCLK-7.cjs.map → slider-DW9URxIY.cjs.map} +1 -1
- package/dist/slider.cjs +1 -1
- package/dist/slider.js +1 -1
- package/dist/{spinner-CQxy0lF3.cjs → spinner-9JRrKdub.cjs} +2 -2
- package/dist/{spinner-CQxy0lF3.cjs.map → spinner-9JRrKdub.cjs.map} +1 -1
- package/dist/{spinner-DdG6BEOr.js → spinner-D8stZ8uP.js} +2 -2
- package/dist/{spinner-DdG6BEOr.js.map → spinner-D8stZ8uP.js.map} +1 -1
- package/dist/steps.cjs +1 -1
- package/dist/steps.js +1 -1
- package/dist/{suggestion-chip-BRz15zwU.js → suggestion-chip-CXPMf7Je.js} +3 -3
- package/dist/{suggestion-chip-BRz15zwU.js.map → suggestion-chip-CXPMf7Je.js.map} +1 -1
- package/dist/{suggestion-chip-DK4xFJvZ.cjs → suggestion-chip-inBIBMff.cjs} +2 -2
- package/dist/{suggestion-chip-DK4xFJvZ.cjs.map → suggestion-chip-inBIBMff.cjs.map} +1 -1
- package/dist/{surface-C3vER2uq.js → surface-BcZEnDON.js} +2 -2
- package/dist/{surface-C3vER2uq.js.map → surface-BcZEnDON.js.map} +1 -1
- package/dist/{surface-Bt1FetPM.cjs → surface-BsrV4kzE.cjs} +2 -2
- package/dist/{surface-Bt1FetPM.cjs.map → surface-BsrV4kzE.cjs.map} +1 -1
- package/dist/surface.cjs +1 -1
- package/dist/surface.js +1 -1
- package/dist/{table-DhheYeQ8.js → table-B5CHKp8S.js} +2 -2
- package/dist/table-B5CHKp8S.js.map +1 -0
- package/dist/{table-DYay68qu.cjs → table-CzejyN5W.cjs} +2 -2
- package/dist/table-CzejyN5W.cjs.map +1 -0
- package/dist/table.cjs +1 -1
- package/dist/table.js +1 -1
- package/dist/{tabs-compatibility-C-gQwADa.js → tabs-compatibility-8NddfF1x.js} +2 -2
- package/dist/{tabs-compatibility-C-gQwADa.js.map → tabs-compatibility-8NddfF1x.js.map} +1 -1
- package/dist/{tabs-compatibility-Dz5YaB06.cjs → tabs-compatibility-UitZoxcs.cjs} +2 -2
- package/dist/{tabs-compatibility-Dz5YaB06.cjs.map → tabs-compatibility-UitZoxcs.cjs.map} +1 -1
- package/dist/tabs.cjs +1 -1
- package/dist/tabs.js +1 -1
- package/dist/tailwind.mixin-2PdnHg0B.cjs +2 -0
- package/dist/{tailwind.mixin-Ge3p8F8Z.cjs.map → tailwind.mixin-2PdnHg0B.cjs.map} +1 -1
- package/dist/tailwind.mixin-BgdEBNZM.js +67 -0
- package/dist/{tailwind.mixin-BTS7jBB1.js.map → tailwind.mixin-BgdEBNZM.js.map} +1 -1
- package/dist/teleport.cjs +1 -1
- package/dist/teleport.js +1 -1
- package/dist/{textarea-DmoZM65K.js → textarea-2oVdZPXR.js} +2 -2
- package/dist/textarea-2oVdZPXR.js.map +1 -0
- package/dist/{textarea-Dn1lmlIx.cjs → textarea-D24UakyK.cjs} +2 -2
- package/dist/textarea-D24UakyK.cjs.map +1 -0
- package/dist/textarea.cjs +1 -1
- package/dist/textarea.js +1 -1
- package/dist/{theme-button-CtF2dxRy.cjs → theme-button-D0Xi4WHC.cjs} +2 -2
- package/dist/{theme-button-CtF2dxRy.cjs.map → theme-button-D0Xi4WHC.cjs.map} +1 -1
- package/dist/{theme-button-BkoRO_Ko.js → theme-button-D4BhpOj6.js} +2 -2
- package/dist/{theme-button-BkoRO_Ko.js.map → theme-button-D4BhpOj6.js.map} +1 -1
- package/dist/theme-button.cjs +1 -1
- package/dist/theme-button.js +1 -1
- package/dist/{theme-controller-boat-DDsW4EOJ.js → theme-controller-boat-C8AnrOkJ.js} +4 -4
- package/dist/theme-controller-boat-C8AnrOkJ.js.map +1 -0
- package/dist/{theme-controller-boat-CBQlbHHc.cjs → theme-controller-boat-r74J3tyl.cjs} +2 -2
- package/dist/theme-controller-boat-r74J3tyl.cjs.map +1 -0
- package/dist/theme.cjs +1 -1
- package/dist/theme.js +1 -1
- package/dist/{timezone-DM_3vLZj.cjs → timezone-BbGoZoJM.cjs} +2 -2
- package/dist/{timezone-DM_3vLZj.cjs.map → timezone-BbGoZoJM.cjs.map} +1 -1
- package/dist/{timezone-C-V8qJE3.js → timezone-D4wUA6zL.js} +3 -3
- package/dist/{timezone-C-V8qJE3.js.map → timezone-D4wUA6zL.js.map} +1 -1
- package/dist/{tooltip-Cw5mfhRj.js → tooltip-BL92Hwwe.js} +2 -2
- package/dist/{tooltip-Cw5mfhRj.js.map → tooltip-BL92Hwwe.js.map} +1 -1
- package/dist/{tooltip-DntsYOsj.cjs → tooltip-DxdU3Drr.cjs} +2 -2
- package/dist/{tooltip-DntsYOsj.cjs.map → tooltip-DxdU3Drr.cjs.map} +1 -1
- package/dist/tooltip.cjs +1 -1
- package/dist/tooltip.js +1 -1
- package/dist/{tree-C3487udC.cjs → tree-BuGpk0as.cjs} +2 -2
- package/dist/{tree-C3487udC.cjs.map → tree-BuGpk0as.cjs.map} +1 -1
- package/dist/{tree-DimUJjcj.js → tree-cZIPOana.js} +2 -2
- package/dist/{tree-DimUJjcj.js.map → tree-cZIPOana.js.map} +1 -1
- package/dist/tree.cjs +1 -1
- package/dist/tree.js +1 -1
- package/dist/tslib.es6-DgOcxv4s.cjs.map +1 -1
- package/dist/tslib.es6-ujVQHAQ4.js.map +1 -1
- package/dist/{typewriter-B7nBcBU9.js → typewriter-DT0f_Fla.js} +4 -4
- package/dist/typewriter-DT0f_Fla.js.map +1 -0
- package/dist/{typewriter-CHcRZUee.cjs → typewriter-Dc7MHBRy.cjs} +2 -2
- package/dist/typewriter-Dc7MHBRy.cjs.map +1 -0
- package/dist/typewriter.cjs +1 -1
- package/dist/typewriter.js +1 -1
- package/dist/{typography-CRVUouR2.cjs → typography-BBCRpsA_.cjs} +2 -2
- package/dist/{typography-CRVUouR2.cjs.map → typography-BBCRpsA_.cjs.map} +1 -1
- package/dist/{typography-DnZjZEIe.js → typography-DayYVIRD.js} +2 -2
- package/dist/{typography-DnZjZEIe.js.map → typography-DayYVIRD.js.map} +1 -1
- package/dist/typography.cjs +1 -1
- package/dist/typography.js +1 -1
- package/package.json +4 -10
- package/types/src/autocomplete/autocomplete.d.ts +11 -0
- package/types/src/extra/timezone/timezone.d.ts +8 -0
- package/types/src/input/input.d.ts +1 -0
- package/types/src/menu/menu.d.ts +5 -6
- package/types/src/radio-group/radio-button.d.ts +8 -0
- package/types/src/select/select.d.ts +11 -0
- package/types/src/textarea/textarea.d.ts +12 -0
- package/dist/GT-Eesti/GT-Eesti-Pro-Display-Bold.woff +0 -0
- package/dist/GT-Eesti/GT-Eesti-Pro-Display-Light.woff +0 -0
- package/dist/GT-Eesti/GT-Eesti-Pro-Display-Medium.woff +0 -0
- package/dist/GT-Eesti/GT-Eesti-Pro-Display-Regular.woff +0 -0
- package/dist/GT-Eesti/GT-Eesti-Pro-Display-Thin.woff +0 -0
- package/dist/GT-Eesti/GT-Eesti-Pro-Display-UBold.woff +0 -0
- package/dist/GT-Eesti/GT-Eesti-Pro-Display-ULight.woff +0 -0
- package/dist/GT-Eesti/GT-Eesti-Pro-Text-Bold-Italic.woff +0 -0
- package/dist/GT-Eesti/GT-Eesti-Pro-Text-Bold.woff +0 -0
- package/dist/GT-Eesti/GT-Eesti-Pro-Text-Book-Italic.woff +0 -0
- package/dist/GT-Eesti/GT-Eesti-Pro-Text-Book.woff +0 -0
- package/dist/GT-Eesti/GT-Eesti-Pro-Text-Light.woff +0 -0
- package/dist/GT-Eesti/GT-Eesti-Pro-Text-Medium-Italic.woff +0 -0
- package/dist/GT-Eesti/GT-Eesti-Pro-Text-Medium.woff +0 -0
- package/dist/GT-Eesti/GT-Eesti-Pro-Text-Regular.woff +0 -0
- package/dist/GT-Eesti/GT-Eesti-Pro-Text-Thin-Italic.woff +0 -0
- package/dist/GT-Eesti/GT-Eesti-Pro-Text-Thin.woff +0 -0
- package/dist/GT-Eesti/GT-Eesti-Pro-Text-ULight-Italic.woff +0 -0
- package/dist/GT-Eesti/GT-Eesti-Pro-Text-ULight.woff +0 -0
- package/dist/GT-Eesti/GT-Eesti-Text-Regular.woff2 +0 -0
- package/dist/_headers +0 -3
- package/dist/autocomplete-DEzGDw9s.cjs.map +0 -1
- package/dist/autocomplete-DLzc6eqO.js.map +0 -1
- package/dist/checkbox-DClxbWbU.cjs.map +0 -1
- package/dist/checkbox-ZryxdmZz.js.map +0 -1
- package/dist/code-preview-Bn2K5K9h.js.map +0 -1
- package/dist/code-preview-BoYqlMxl.cjs.map +0 -1
- package/dist/date-range-B-rPnyst.cjs.map +0 -1
- package/dist/date-range-CCQsqKSy.js.map +0 -1
- package/dist/delay-BaltOHAs.js.map +0 -1
- package/dist/delay-DzqfMSBJ.cjs.map +0 -1
- package/dist/icon-button-BlyzaNtE.js.map +0 -1
- package/dist/icon-button-CST9ztNW.cjs.map +0 -1
- package/dist/input-BJvZX3nK.js.map +0 -1
- package/dist/input-RPj2xLz4.cjs.map +0 -1
- package/dist/logo-dark.png +0 -0
- package/dist/menu-BlR27aWR.js +0 -100
- package/dist/menu-BlR27aWR.js.map +0 -1
- package/dist/menu-DYWTnN4u.cjs +0 -36
- package/dist/menu-DYWTnN4u.cjs.map +0 -1
- package/dist/mixins/baseElement.ts +0 -73
- package/dist/mixins/constructor.ts +0 -3
- package/dist/mixins/discovery.service.ts +0 -60
- package/dist/mixins/formField.mixin.ts +0 -223
- package/dist/mixins/index.ts +0 -5
- package/dist/mixins/litElement.mixin.ts +0 -15
- package/dist/mixins/scss.d.ts +0 -21
- package/dist/mixins/tailwind.css +0 -201
- package/dist/mixins/tailwind.mixin.ts +0 -30
- package/dist/netlify.toml +0 -366
- package/dist/payment-card-form-BzDuKScU.cjs.map +0 -1
- package/dist/payment-card-form-CHMYeZs2.js.map +0 -1
- package/dist/radio-button-DggshTfa.js.map +0 -1
- package/dist/radio-button-DttgXEeY.cjs.map +0 -1
- package/dist/select-BqyRn0cF.js.map +0 -1
- package/dist/select-xZKW8cHu.cjs.map +0 -1
- package/dist/table-DYay68qu.cjs.map +0 -1
- package/dist/table-DhheYeQ8.js.map +0 -1
- package/dist/tailwind.mixin-BTS7jBB1.js +0 -66
- package/dist/tailwind.mixin-Ge3p8F8Z.cjs +0 -2
- package/dist/textarea-DmoZM65K.js.map +0 -1
- package/dist/textarea-Dn1lmlIx.cjs.map +0 -1
- package/dist/theme-controller-boat-CBQlbHHc.cjs.map +0 -1
- package/dist/theme-controller-boat-DDsW4EOJ.js.map +0 -1
- package/dist/typewriter-B7nBcBU9.js.map +0 -1
- package/dist/typewriter-CHcRZUee.cjs.map +0 -1
- package/readme.md +0 -307
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"input-chip-CGilKpgN.cjs","sources":["../src/chips/input-chip.ts"],"sourcesContent":["import { TailwindElement } from '@mixins/tailwind.mixin'\nimport { css, html, LitElement } from 'lit'\nimport { customElement, property, state } from 'lit/decorators.js'\nimport { classMap } from 'lit/directives/class-map.js'\nimport { BehaviorSubject, combineLatest } from 'rxjs'\nimport { map, takeUntil, tap } from 'rxjs/operators'\n\n/**\n * Input chip component - represents user-provided information that can be removed.\n *\n * IMPORTANT: Per Material Design 3 specification, input chips do NOT have selected state.\n * They represent discrete pieces of user input (like entered tags, selections from lists, etc.)\n * that can only be removed, not toggled on/off.\n *\n * Use cases:\n * - Displaying selected recipients in an email\n * - Showing applied filters that can be removed\n * - Tags or keywords entered by the user\n * - Selected items from a multi-select dropdown\n *\n * @fires click - Optional click event on chip body (value)\n * @fires remove - Dispatched when remove button is clicked (value)\n *\n * @example\n * ```html\n * <schmancy-input-chip value=\"john@example.com\" avatar=\"/avatars/john.jpg\">\n * John Doe\n * </schmancy-input-chip>\n * ```\n */\n@customElement('schmancy-input-chip')\nexport class SchmancyInputChip extends TailwindElement(css`\n\t:host {\n\t\tdisplay: inline-block;\n\t\toutline: none;\n\t\tmin-width:fit-content\n\n\t}\n\n\t:host([disabled]) {\n\t\tpointer-events: none;\n\t}\n\n\tbutton {\n\t\tfont-family: inherit;\n\t}\n\n\t.avatar-img {\n\t\twidth: 20px;\n\t\theight: 20px;\n\t\tobject-fit: cover;\n\t}\n\n\t/* Material Symbols font for icons */\n\t.material-symbols-outlined {\n\t\tfont-family: 'Material Symbols Outlined';\n\t\tfont-weight: normal;\n\t\tfont-style: normal;\n\t\tfont-size: 18px;\n\t\tline-height: 1;\n\t\tletter-spacing: normal;\n\t\ttext-transform: none;\n\t\tdisplay: inline-block;\n\t\twhite-space: nowrap;\n\t\tword-wrap: normal;\n\t\tdirection: ltr;\n\t\t-webkit-font-smoothing: antialiased;\n\t\ttext-rendering: optimizeLegibility;\n\t\t-moz-osx-font-smoothing: grayscale;\n\t\tfont-feature-settings: 'liga';\n\t\tvertical-align: middle;\n\t}\n\n\t.ripple {\n\t\tposition: absolute;\n\t\tborder-radius: 50%;\n\t\ttransform: scale(0);\n\t\tanimation: ripple 600ms linear;\n\t\tbackground-color: rgba(0, 0, 0, 0.08);\n\t\tpointer-events: none;\n\t}\n\n\t@keyframes ripple {\n\t\tto {\n\t\t\ttransform: scale(4);\n\t\t\topacity: 0;\n\t\t}\n\t}\n\n\t/* State layer for M3 hover/focus/pressed states */\n\t.state-layer {\n\t\tposition: absolute;\n\t\tinset: 0;\n\t\tborder-radius: inherit;\n\t\tpointer-events: none;\n\t\tbackground-color: currentColor;\n\t\topacity: 0;\n\t\ttransition: opacity 200ms ease;\n\t}\n\n\t:host(:not([disabled])) .chip-container:hover .state-layer {\n\t\topacity: 0.08;\n\t}\n\n\t:host(:not([disabled])) .chip-container:focus-visible .state-layer {\n\t\topacity: 0.1;\n\t}\n\n\t:host(:not([disabled])) .chip-container:active .state-layer {\n\t\topacity: 0.1;\n\t}\n`) {\n\t/** Value identifier for the chip */\n\t@property({ type: String, reflect: true })\n\tvalue: string = ''\n\n\t/** Optional icon name (Material Symbols) */\n\t@property({ type: String, reflect: true })\n\ticon: string = ''\n\n\t/** Optional avatar image URL */\n\t@property({ type: String, reflect: true })\n\tavatar: string = ''\n\n\t/** Whether to show remove button (default true for input chips) */\n\t@property({ type: Boolean, reflect: true })\n\tremovable: boolean = true\n\n\t/** Disable the chip */\n\t@property({ type: Boolean, reflect: true })\n\tdisabled: boolean = false\n\n\t/** Elevated style variant */\n\t@property({ type: Boolean, reflect: true })\n\televated: boolean = false\n\n\t// RxJS state streams\n\tprivate chipHover$ = new BehaviorSubject<boolean>(false)\n\tprivate removeHover$ = new BehaviorSubject<boolean>(false)\n\tprivate focused$ = new BehaviorSubject<boolean>(false)\n\tprivate pressed$ = new BehaviorSubject<boolean>(false)\n\n\t// UI state from combined streams\n\t@state() uiState = {\n\t\tchipHover: false,\n\t\tremoveHover: false,\n\t\tfocused: false,\n\t\tpressed: false\n\t}\n\n\t// Ripple effects\n\t@state() private ripples: Array<{ x: number; y: number; id: number }> = []\n\tprivate nextRippleId = 0\n\n\tconstructor() {\n\t\tsuper()\n\t\ttry {\n\t\t\tthis.internals = this.attachInternals()\n\t\t} catch {\n\t\t\tthis.internals = undefined\n\t\t}\n\t}\n\n\tprotected static shadowRootOptions = {\n\t\t...LitElement.shadowRootOptions,\n\t\tdelegatesFocus: true,\n\t}\n\n\tstatic formAssociated = true\n\tinternals: ElementInternals | undefined\n\tget form() {\n\t\treturn this.internals?.form\n\t}\n\n\tconnectedCallback() {\n\t\tsuper.connectedCallback()\n\n\t\t// Combine all UI state streams\n\t\tcombineLatest([\n\t\t\tthis.chipHover$,\n\t\t\tthis.removeHover$,\n\t\t\tthis.focused$,\n\t\t\tthis.pressed$\n\t\t]).pipe(\n\t\t\tmap(([chipHover, removeHover, focused, pressed]) => ({\n\t\t\t\tchipHover,\n\t\t\t\tremoveHover,\n\t\t\t\tfocused,\n\t\t\t\tpressed\n\t\t\t})),\n\t\t\ttap(state => {\n\t\t\t\tthis.uiState = state\n\t\t\t}),\n\t\t\ttakeUntil(this.disconnecting)\n\t\t).subscribe()\n\t}\n\n\tprivate handleChipClick = (e: MouseEvent) => {\n\t\tif (this.disabled) return\n\n\t\t// Add ripple effect\n\t\tconst chip = this.shadowRoot?.querySelector('.chip-container') as HTMLElement\n\t\tif (chip) {\n\t\t\tconst rect = chip.getBoundingClientRect()\n\t\t\tconst x = e.clientX - rect.left\n\t\t\tconst y = e.clientY - rect.top\n\t\t\tconst id = this.nextRippleId++\n\n\t\t\tthis.ripples = [...this.ripples, { x, y, id }]\n\n\t\t\t// Remove ripple after animation\n\t\t\tsetTimeout(() => {\n\t\t\t\tthis.ripples = this.ripples.filter(r => r.id !== id)\n\t\t\t}, 600)\n\t\t}\n\n\t\t// Dispatch optional click event (for custom handling if needed)\n\t\tthis.dispatchEvent(\n\t\t\tnew CustomEvent('click', {\n\t\t\t\tdetail: { value: this.value },\n\t\t\t\tbubbles: true,\n\t\t\t\tcomposed: true,\n\t\t\t})\n\t\t)\n\t}\n\n\tprivate handleRemove = (e: Event) => {\n\t\tif (this.disabled) return\n\n\t\te.stopPropagation()\n\n\t\t// Dispatch remove event\n\t\tthis.dispatchEvent(\n\t\t\tnew CustomEvent('remove', {\n\t\t\t\tdetail: { value: this.value },\n\t\t\t\tbubbles: true,\n\t\t\t\tcomposed: true,\n\t\t\t})\n\t\t)\n\t}\n\n\tprivate handleKeyDown = (e: KeyboardEvent) => {\n\t\tif (this.disabled) return\n\n\t\t// Delete or Backspace removes the chip\n\t\tif ((e.key === 'Delete' || e.key === 'Backspace') && this.removable) {\n\t\t\te.preventDefault()\n\t\t\tthis.handleRemove(e)\n\t\t}\n\t\t// Enter can optionally trigger click\n\t\telse if (e.key === 'Enter') {\n\t\t\te.preventDefault()\n\t\t\tconst clickEvent = new MouseEvent('click', {\n\t\t\t\tbubbles: true,\n\t\t\t\tcancelable: true,\n\t\t\t\tclientX: 0,\n\t\t\t\tclientY: 0\n\t\t\t})\n\t\t\tthis.handleChipClick(clickEvent)\n\t\t}\n\t}\n\n\tprivate handleFocus = () => {\n\t\tthis.focused$.next(true)\n\t}\n\n\tprivate handleBlur = () => {\n\t\tthis.focused$.next(false)\n\t}\n\n\tprotected render(): unknown {\n\t\tconst hasLeadingIcon = this.avatar || this.icon;\n\n\t\tconst chipClasses = {\n\t\t\t'chip-container': true,\n\t\t\t'inline-flex': true,\n\t\t\t'items-center': true,\n\t\t\t'gap-2': true,\n\t\t\t'h-8': true, // M3: 32px height\n\t\t\t'min-h-[32px]': true,\n\t\t\t'rounded-full': true,\n\t\t\t'cursor-default': true,\n\t\t\t'transition-all': true,\n\t\t\t'duration-200': true,\n\t\t\t'select-none': true,\n\t\t\t'text-sm': true, // M3: 14px Label Large\n\t\t\t'font-medium': true, // M3: 500 weight\n\t\t\t'relative': true,\n\t\t\t'overflow-hidden': true,\n\t\t\t'border': true,\n\n\t\t\t// M3 Padding: 8px with icon, 16px without (leading), 8px with trailing icon\n\t\t\t'pl-2': hasLeadingIcon, // 8px with avatar/icon\n\t\t\t'pl-4': !hasLeadingIcon, // 16px without\n\t\t\t'pr-2': this.removable, // 8px with remove button\n\t\t\t'pr-4': !this.removable, // 16px without\n\n\t\t\t// M3 Colors for input chips\n\t\t\t'bg-surface-containerLow': true,\n\t\t\t'text-surface-onVariant': true,\n\t\t\t'border-outline': true,\n\t\t\t'border-solid':true,\n\t\t\t// Input chips are flat (no elevation) per M3\n\n\t\t\t// Focus-visible state\n\t\t\t'focus-visible:outline': !this.disabled,\n\t\t\t'focus-visible:outline-2': !this.disabled,\n\t\t\t'focus-visible:outline-primary': !this.disabled,\n\t\t\t'focus-visible:outline-offset-2': !this.disabled,\n\n\t\t\t// Disabled state\n\t\t\t'opacity-38': this.disabled, // M3 disabled opacity\n\t\t\t'cursor-not-allowed': this.disabled\n\t\t}\n\n\t\tconst removeButtonClasses = {\n\t\t\t'size-[18px]': true, // M3: 18px icon size\n\t\t\t'flex': true,\n\t\t\t'items-center': true,\n\t\t\t'justify-center': true,\n\t\t\t'rounded-full': true,\n\t\t\t'transition-all': true,\n\t\t\t'duration-200': true,\n\t\t\t'cursor-pointer': !this.disabled,\n\t\t\t'-mr-1': true, // Adjust for visual balance\n\n\t\t\t// Hover state for remove button\n\t\t\t'hover:bg-surface-containerHighest': !this.disabled,\n\t\t\t'opacity-50': this.disabled\n\t\t}\n\n\t\treturn html`\n\t\t\t<div\n\t\t\t\tclass=${classMap(chipClasses)}\n\t\t\t\t@click=${this.handleChipClick}\n\t\t\t\t@keydown=${this.handleKeyDown}\n\t\t\t\t@mouseenter=${() => this.chipHover$.next(true)}\n\t\t\t\t@mouseleave=${() => this.chipHover$.next(false)}\n\t\t\t\t@mousedown=${() => this.pressed$.next(true)}\n\t\t\t\t@mouseup=${() => this.pressed$.next(false)}\n\t\t\t\t@focus=${this.handleFocus}\n\t\t\t\t@blur=${this.handleBlur}\n\t\t\t\trole=\"button\"\n\t\t\t\ttabindex=${this.disabled ? '-1' : '0'}\n\t\t\t\taria-disabled=${this.disabled}\n\t\t\t\taria-label=${this.value}\n\t\t\t>\n\t\t\t\t<!-- Avatar image (if provided) -->\n\t\t\t\t${this.avatar ? html`\n\t\t\t\t\t<img\n\t\t\t\t\t\tsrc=${this.avatar}\n\t\t\t\t\t\talt=\"\"\n\t\t\t\t\t\tclass=\"avatar-img rounded-full size-5\"\n\t\t\t\t\t/>\n\t\t\t\t` : ''}\n\n\t\t\t\t<!-- Icon (if provided and no avatar) -->\n\t\t\t\t${this.icon && !this.avatar ? html`\n\t\t\t\t\t<span class=\"material-symbols-outlined text-[18px] shrink-0\">\n\t\t\t\t\t\t${this.icon}\n\t\t\t\t\t</span>\n\t\t\t\t` : ''}\n\n\t\t\t\t<!-- Chip content -->\n\t\t\t\t<span class=\"text-sm font-medium leading-5\">\n\t\t\t\t\t<slot></slot>\n\t\t\t\t</span>\n\n\t\t\t\t<!-- Remove button (shown by default for input chips) -->\n\t\t\t\t${this.removable ? html`\n\t\t\t\t\t<button\n\t\t\t\t\t\tclass=${classMap(removeButtonClasses)}\n\t\t\t\t\t\t@click=${this.handleRemove}\n\t\t\t\t\t\t@mouseenter=${() => this.removeHover$.next(true)}\n\t\t\t\t\t\t@mouseleave=${() => this.removeHover$.next(false)}\n\t\t\t\t\t\taria-label=\"Remove\"\n\t\t\t\t\t\ttabindex=\"-1\"\n\t\t\t\t\t\t?disabled=${this.disabled}\n\t\t\t\t\t>\n\t\t\t\t\t\t<span class=\"material-symbols-outlined text-[18px]\">\n\t\t\t\t\t\t\tclose\n\t\t\t\t\t\t</span>\n\t\t\t\t\t</button>\n\t\t\t\t` : ''}\n\n\t\t\t\t<!-- Ripple effects -->\n\t\t\t\t${this.ripples.map(ripple => html`\n\t\t\t\t\t<span\n\t\t\t\t\t\tclass=\"ripple\"\n\t\t\t\t\t\tstyle=\"left: ${ripple.x}px; top: ${ripple.y}px;\"\n\t\t\t\t\t></span>\n\t\t\t\t`)}\n\n\t\t\t\t<!-- State layer for M3 hover/focus/pressed states -->\n\t\t\t\t<div class=\"state-layer\"></div>\n\t\t\t</div>\n\t\t`\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-input-chip': SchmancyInputChip\n\t}\n}\n\nexport type InputChipClickEvent = { value: string }\nexport type InputChipRemoveEvent = { value: string }"],"names":["SchmancyInputChip","TailwindElement","css","super","this","value","icon","avatar","removable","disabled","elevated","chipHover$","BehaviorSubject","removeHover$","focused$","pressed$","uiState","chipHover","removeHover","focused","pressed","ripples","nextRippleId","handleChipClick","e","chip","shadowRoot","querySelector","rect","getBoundingClientRect","x","clientX","left","y","clientY","top","id","setTimeout","filter","r","dispatchEvent","CustomEvent","detail","bubbles","composed","handleRemove","stopPropagation","handleKeyDown","key","preventDefault","clickEvent","MouseEvent","cancelable","handleFocus","next","handleBlur","internals","attachInternals","form","connectedCallback","combineLatest","pipe","map","tap","state","takeUntil","disconnecting","subscribe","hasLeadingIcon","chipClasses","relative","border","removeButtonClasses","flex","html","classMap","ripple","shadowRootOptions","LitElement","delegatesFocus","formAssociated","__decorateClass","property","type","String","reflect","prototype","Boolean","customElement"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"input-chip-pho9bYvS.cjs","sources":["../src/chips/input-chip.ts"],"sourcesContent":["import { TailwindElement } from '@mixins/tailwind.mixin'\nimport { css, html, LitElement } from 'lit'\nimport { customElement, property, state } from 'lit/decorators.js'\nimport { classMap } from 'lit/directives/class-map.js'\nimport { BehaviorSubject, combineLatest } from 'rxjs'\nimport { map, takeUntil, tap } from 'rxjs/operators'\n\n/**\n * Input chip component - represents user-provided information that can be removed.\n *\n * IMPORTANT: Per Material Design 3 specification, input chips do NOT have selected state.\n * They represent discrete pieces of user input (like entered tags, selections from lists, etc.)\n * that can only be removed, not toggled on/off.\n *\n * Use cases:\n * - Displaying selected recipients in an email\n * - Showing applied filters that can be removed\n * - Tags or keywords entered by the user\n * - Selected items from a multi-select dropdown\n *\n * @fires click - Optional click event on chip body (value)\n * @fires remove - Dispatched when remove button is clicked (value)\n *\n * @example\n * ```html\n * <schmancy-input-chip value=\"john@example.com\" avatar=\"/avatars/john.jpg\">\n * John Doe\n * </schmancy-input-chip>\n * ```\n */\n@customElement('schmancy-input-chip')\nexport class SchmancyInputChip extends TailwindElement(css`\n\t:host {\n\t\tdisplay: inline-block;\n\t\toutline: none;\n\t\tmin-width:fit-content\n\n\t}\n\n\t:host([disabled]) {\n\t\tpointer-events: none;\n\t}\n\n\tbutton {\n\t\tfont-family: inherit;\n\t}\n\n\t.avatar-img {\n\t\twidth: 20px;\n\t\theight: 20px;\n\t\tobject-fit: cover;\n\t}\n\n\t/* Material Symbols font for icons */\n\t.material-symbols-outlined {\n\t\tfont-family: 'Material Symbols Outlined';\n\t\tfont-weight: normal;\n\t\tfont-style: normal;\n\t\tfont-size: 18px;\n\t\tline-height: 1;\n\t\tletter-spacing: normal;\n\t\ttext-transform: none;\n\t\tdisplay: inline-block;\n\t\twhite-space: nowrap;\n\t\tword-wrap: normal;\n\t\tdirection: ltr;\n\t\t-webkit-font-smoothing: antialiased;\n\t\ttext-rendering: optimizeLegibility;\n\t\t-moz-osx-font-smoothing: grayscale;\n\t\tfont-feature-settings: 'liga';\n\t\tvertical-align: middle;\n\t}\n\n\t.ripple {\n\t\tposition: absolute;\n\t\tborder-radius: 50%;\n\t\ttransform: scale(0);\n\t\tanimation: ripple 600ms linear;\n\t\tbackground-color: rgba(0, 0, 0, 0.08);\n\t\tpointer-events: none;\n\t}\n\n\t@keyframes ripple {\n\t\tto {\n\t\t\ttransform: scale(4);\n\t\t\topacity: 0;\n\t\t}\n\t}\n\n\t/* State layer for M3 hover/focus/pressed states */\n\t.state-layer {\n\t\tposition: absolute;\n\t\tinset: 0;\n\t\tborder-radius: inherit;\n\t\tpointer-events: none;\n\t\tbackground-color: currentColor;\n\t\topacity: 0;\n\t\ttransition: opacity 200ms ease;\n\t}\n\n\t:host(:not([disabled])) .chip-container:hover .state-layer {\n\t\topacity: 0.08;\n\t}\n\n\t:host(:not([disabled])) .chip-container:focus-visible .state-layer {\n\t\topacity: 0.1;\n\t}\n\n\t:host(:not([disabled])) .chip-container:active .state-layer {\n\t\topacity: 0.1;\n\t}\n`) {\n\t/** Value identifier for the chip */\n\t@property({ type: String, reflect: true })\n\tvalue: string = ''\n\n\t/** Optional icon name (Material Symbols) */\n\t@property({ type: String, reflect: true })\n\ticon: string = ''\n\n\t/** Optional avatar image URL */\n\t@property({ type: String, reflect: true })\n\tavatar: string = ''\n\n\t/** Whether to show remove button (default true for input chips) */\n\t@property({ type: Boolean, reflect: true })\n\tremovable: boolean = true\n\n\t/** Disable the chip */\n\t@property({ type: Boolean, reflect: true })\n\tdisabled: boolean = false\n\n\t/** Elevated style variant */\n\t@property({ type: Boolean, reflect: true })\n\televated: boolean = false\n\n\t// RxJS state streams\n\tprivate chipHover$ = new BehaviorSubject<boolean>(false)\n\tprivate removeHover$ = new BehaviorSubject<boolean>(false)\n\tprivate focused$ = new BehaviorSubject<boolean>(false)\n\tprivate pressed$ = new BehaviorSubject<boolean>(false)\n\n\t// UI state from combined streams\n\t@state() uiState = {\n\t\tchipHover: false,\n\t\tremoveHover: false,\n\t\tfocused: false,\n\t\tpressed: false\n\t}\n\n\t// Ripple effects\n\t@state() private ripples: Array<{ x: number; y: number; id: number }> = []\n\tprivate nextRippleId = 0\n\n\tconstructor() {\n\t\tsuper()\n\t\ttry {\n\t\t\tthis.internals = this.attachInternals()\n\t\t} catch {\n\t\t\tthis.internals = undefined\n\t\t}\n\t}\n\n\tprotected static shadowRootOptions = {\n\t\t...LitElement.shadowRootOptions,\n\t\tdelegatesFocus: true,\n\t}\n\n\tstatic formAssociated = true\n\tinternals: ElementInternals | undefined\n\tget form() {\n\t\treturn this.internals?.form\n\t}\n\n\tconnectedCallback() {\n\t\tsuper.connectedCallback()\n\n\t\t// Combine all UI state streams\n\t\tcombineLatest([\n\t\t\tthis.chipHover$,\n\t\t\tthis.removeHover$,\n\t\t\tthis.focused$,\n\t\t\tthis.pressed$\n\t\t]).pipe(\n\t\t\tmap(([chipHover, removeHover, focused, pressed]) => ({\n\t\t\t\tchipHover,\n\t\t\t\tremoveHover,\n\t\t\t\tfocused,\n\t\t\t\tpressed\n\t\t\t})),\n\t\t\ttap(state => {\n\t\t\t\tthis.uiState = state\n\t\t\t}),\n\t\t\ttakeUntil(this.disconnecting)\n\t\t).subscribe()\n\t}\n\n\tprivate handleChipClick = (e: MouseEvent) => {\n\t\tif (this.disabled) return\n\n\t\t// Add ripple effect\n\t\tconst chip = this.shadowRoot?.querySelector('.chip-container') as HTMLElement\n\t\tif (chip) {\n\t\t\tconst rect = chip.getBoundingClientRect()\n\t\t\tconst x = e.clientX - rect.left\n\t\t\tconst y = e.clientY - rect.top\n\t\t\tconst id = this.nextRippleId++\n\n\t\t\tthis.ripples = [...this.ripples, { x, y, id }]\n\n\t\t\t// Remove ripple after animation\n\t\t\tsetTimeout(() => {\n\t\t\t\tthis.ripples = this.ripples.filter(r => r.id !== id)\n\t\t\t}, 600)\n\t\t}\n\n\t\t// Dispatch optional click event (for custom handling if needed)\n\t\tthis.dispatchEvent(\n\t\t\tnew CustomEvent('click', {\n\t\t\t\tdetail: { value: this.value },\n\t\t\t\tbubbles: true,\n\t\t\t\tcomposed: true,\n\t\t\t})\n\t\t)\n\t}\n\n\tprivate handleRemove = (e: Event) => {\n\t\tif (this.disabled) return\n\n\t\te.stopPropagation()\n\n\t\t// Dispatch remove event\n\t\tthis.dispatchEvent(\n\t\t\tnew CustomEvent('remove', {\n\t\t\t\tdetail: { value: this.value },\n\t\t\t\tbubbles: true,\n\t\t\t\tcomposed: true,\n\t\t\t})\n\t\t)\n\t}\n\n\tprivate handleKeyDown = (e: KeyboardEvent) => {\n\t\tif (this.disabled) return\n\n\t\t// Delete or Backspace removes the chip\n\t\tif ((e.key === 'Delete' || e.key === 'Backspace') && this.removable) {\n\t\t\te.preventDefault()\n\t\t\tthis.handleRemove(e)\n\t\t}\n\t\t// Enter can optionally trigger click\n\t\telse if (e.key === 'Enter') {\n\t\t\te.preventDefault()\n\t\t\tconst clickEvent = new MouseEvent('click', {\n\t\t\t\tbubbles: true,\n\t\t\t\tcancelable: true,\n\t\t\t\tclientX: 0,\n\t\t\t\tclientY: 0\n\t\t\t})\n\t\t\tthis.handleChipClick(clickEvent)\n\t\t}\n\t}\n\n\tprivate handleFocus = () => {\n\t\tthis.focused$.next(true)\n\t}\n\n\tprivate handleBlur = () => {\n\t\tthis.focused$.next(false)\n\t}\n\n\tprotected render(): unknown {\n\t\tconst hasLeadingIcon = this.avatar || this.icon;\n\n\t\tconst chipClasses = {\n\t\t\t'chip-container': true,\n\t\t\t'inline-flex': true,\n\t\t\t'items-center': true,\n\t\t\t'gap-2': true,\n\t\t\t'h-8': true, // M3: 32px height\n\t\t\t'min-h-[32px]': true,\n\t\t\t'rounded-full': true,\n\t\t\t'cursor-default': true,\n\t\t\t'transition-all': true,\n\t\t\t'duration-200': true,\n\t\t\t'select-none': true,\n\t\t\t'text-sm': true, // M3: 14px Label Large\n\t\t\t'font-medium': true, // M3: 500 weight\n\t\t\t'relative': true,\n\t\t\t'overflow-hidden': true,\n\t\t\t'border': true,\n\n\t\t\t// M3 Padding: 8px with icon, 16px without (leading), 8px with trailing icon\n\t\t\t'pl-2': hasLeadingIcon, // 8px with avatar/icon\n\t\t\t'pl-4': !hasLeadingIcon, // 16px without\n\t\t\t'pr-2': this.removable, // 8px with remove button\n\t\t\t'pr-4': !this.removable, // 16px without\n\n\t\t\t// M3 Colors for input chips\n\t\t\t'bg-surface-containerLow': true,\n\t\t\t'text-surface-onVariant': true,\n\t\t\t'border-outline': true,\n\t\t\t'border-solid':true,\n\t\t\t// Input chips are flat (no elevation) per M3\n\n\t\t\t// Focus-visible state\n\t\t\t'focus-visible:outline': !this.disabled,\n\t\t\t'focus-visible:outline-2': !this.disabled,\n\t\t\t'focus-visible:outline-primary': !this.disabled,\n\t\t\t'focus-visible:outline-offset-2': !this.disabled,\n\n\t\t\t// Disabled state\n\t\t\t'opacity-38': this.disabled, // M3 disabled opacity\n\t\t\t'cursor-not-allowed': this.disabled\n\t\t}\n\n\t\tconst removeButtonClasses = {\n\t\t\t'size-[18px]': true, // M3: 18px icon size\n\t\t\t'flex': true,\n\t\t\t'items-center': true,\n\t\t\t'justify-center': true,\n\t\t\t'rounded-full': true,\n\t\t\t'transition-all': true,\n\t\t\t'duration-200': true,\n\t\t\t'cursor-pointer': !this.disabled,\n\t\t\t'-mr-1': true, // Adjust for visual balance\n\n\t\t\t// Hover state for remove button\n\t\t\t'hover:bg-surface-containerHighest': !this.disabled,\n\t\t\t'opacity-50': this.disabled\n\t\t}\n\n\t\treturn html`\n\t\t\t<div\n\t\t\t\tclass=${classMap(chipClasses)}\n\t\t\t\t@click=${this.handleChipClick}\n\t\t\t\t@keydown=${this.handleKeyDown}\n\t\t\t\t@mouseenter=${() => this.chipHover$.next(true)}\n\t\t\t\t@mouseleave=${() => this.chipHover$.next(false)}\n\t\t\t\t@mousedown=${() => this.pressed$.next(true)}\n\t\t\t\t@mouseup=${() => this.pressed$.next(false)}\n\t\t\t\t@focus=${this.handleFocus}\n\t\t\t\t@blur=${this.handleBlur}\n\t\t\t\trole=\"button\"\n\t\t\t\ttabindex=${this.disabled ? '-1' : '0'}\n\t\t\t\taria-disabled=${this.disabled}\n\t\t\t\taria-label=${this.value}\n\t\t\t>\n\t\t\t\t<!-- Avatar image (if provided) -->\n\t\t\t\t${this.avatar ? html`\n\t\t\t\t\t<img\n\t\t\t\t\t\tsrc=${this.avatar}\n\t\t\t\t\t\talt=\"\"\n\t\t\t\t\t\tclass=\"avatar-img rounded-full size-5\"\n\t\t\t\t\t/>\n\t\t\t\t` : ''}\n\n\t\t\t\t<!-- Icon (if provided and no avatar) -->\n\t\t\t\t${this.icon && !this.avatar ? html`\n\t\t\t\t\t<span class=\"material-symbols-outlined text-[18px] shrink-0\">\n\t\t\t\t\t\t${this.icon}\n\t\t\t\t\t</span>\n\t\t\t\t` : ''}\n\n\t\t\t\t<!-- Chip content -->\n\t\t\t\t<span class=\"text-sm font-medium leading-5\">\n\t\t\t\t\t<slot></slot>\n\t\t\t\t</span>\n\n\t\t\t\t<!-- Remove button (shown by default for input chips) -->\n\t\t\t\t${this.removable ? html`\n\t\t\t\t\t<button\n\t\t\t\t\t\tclass=${classMap(removeButtonClasses)}\n\t\t\t\t\t\t@click=${this.handleRemove}\n\t\t\t\t\t\t@mouseenter=${() => this.removeHover$.next(true)}\n\t\t\t\t\t\t@mouseleave=${() => this.removeHover$.next(false)}\n\t\t\t\t\t\taria-label=\"Remove\"\n\t\t\t\t\t\ttabindex=\"-1\"\n\t\t\t\t\t\t?disabled=${this.disabled}\n\t\t\t\t\t>\n\t\t\t\t\t\t<span class=\"material-symbols-outlined text-[18px]\">\n\t\t\t\t\t\t\tclose\n\t\t\t\t\t\t</span>\n\t\t\t\t\t</button>\n\t\t\t\t` : ''}\n\n\t\t\t\t<!-- Ripple effects -->\n\t\t\t\t${this.ripples.map(ripple => html`\n\t\t\t\t\t<span\n\t\t\t\t\t\tclass=\"ripple\"\n\t\t\t\t\t\tstyle=\"left: ${ripple.x}px; top: ${ripple.y}px;\"\n\t\t\t\t\t></span>\n\t\t\t\t`)}\n\n\t\t\t\t<!-- State layer for M3 hover/focus/pressed states -->\n\t\t\t\t<div class=\"state-layer\"></div>\n\t\t\t</div>\n\t\t`\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-input-chip': SchmancyInputChip\n\t}\n}\n\nexport type InputChipClickEvent = { value: string }\nexport type InputChipRemoveEvent = { value: string }"],"names":["SchmancyInputChip","TailwindElement","css","super","this","value","icon","avatar","removable","disabled","elevated","chipHover$","BehaviorSubject","removeHover$","focused$","pressed$","uiState","chipHover","removeHover","focused","pressed","ripples","nextRippleId","handleChipClick","e","chip","shadowRoot","querySelector","rect","getBoundingClientRect","x","clientX","left","y","clientY","top","id","setTimeout","filter","r","dispatchEvent","CustomEvent","detail","bubbles","composed","handleRemove","stopPropagation","handleKeyDown","key","preventDefault","clickEvent","MouseEvent","cancelable","handleFocus","next","handleBlur","internals","attachInternals","form","connectedCallback","combineLatest","pipe","map","tap","state","takeUntil","disconnecting","subscribe","hasLeadingIcon","chipClasses","relative","border","removeButtonClasses","flex","html","classMap","ripple","shadowRootOptions","LitElement","delegatesFocus","formAssociated","__decorateClass","property","type","String","reflect","prototype","Boolean","customElement"],"mappings":"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"}
|
package/dist/input.cjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./input-
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./input-D-YRT2vo.cjs");Object.defineProperty(exports,"SchmancyInput",{enumerable:!0,get:()=>e.SchmancyInput}),Object.defineProperty(exports,"SchmancyInputCompat",{enumerable:!0,get:()=>e.SchmancyInputCompat});
|
|
2
2
|
//# sourceMappingURL=input.cjs.map
|
package/dist/input.js
CHANGED
package/dist/layout.cjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./flex-
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./flex-CYCtLC7W.cjs");Object.defineProperty(exports,"SchmancyFlex",{enumerable:!0,get:()=>e.SchmancyFlex}),Object.defineProperty(exports,"SchmancyFlexV2",{enumerable:!0,get:()=>e.SchmancyFlexV2}),Object.defineProperty(exports,"SchmancyGrid",{enumerable:!0,get:()=>e.SchmancyGrid}),Object.defineProperty(exports,"SchmancyScroll",{enumerable:!0,get:()=>e.SchmancyScroll});
|
|
2
2
|
//# sourceMappingURL=layout.cjs.map
|
package/dist/layout.js
CHANGED
|
@@ -4,7 +4,7 @@ import "rxjs/operators";
|
|
|
4
4
|
import "lit/directives/class-map.js";
|
|
5
5
|
import "lit/directives/style-map.js";
|
|
6
6
|
import { property as p, queryAssignedElements as m, customElement as h } from "lit/decorators.js";
|
|
7
|
-
import { T as y } from "./tailwind.mixin-
|
|
7
|
+
import { T as y } from "./tailwind.mixin-BgdEBNZM.js";
|
|
8
8
|
import { n as f, e as v } from "./provide-tcktw8xB.js";
|
|
9
9
|
import { html as u, css as b } from "lit";
|
|
10
10
|
import { when as x } from "lit/directives/when.js";
|
|
@@ -66,4 +66,4 @@ export {
|
|
|
66
66
|
$ as S,
|
|
67
67
|
r as a
|
|
68
68
|
};
|
|
69
|
-
//# sourceMappingURL=list-
|
|
69
|
+
//# sourceMappingURL=list-B4x432bs.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"list-
|
|
1
|
+
{"version":3,"file":"list-B4x432bs.js","sources":["../src/list/context.ts","../src/surface/context.ts","../src/list/list-item.ts","../src/list/list.ts"],"sourcesContent":["import { createContext } from '@lit/context'\nimport { TSurfaceColor } from '@schmancy/types/surface'\nexport const SchmancyListTypeContext = createContext<TSurfaceColor>(undefined)\n","import { createContext } from '@lit/context'\nimport { TSurfaceColor } from '@schmancy/types/surface'\nexport const SchmancySurfaceTypeContext = createContext<TSurfaceColor>('surface')\n","import { consume } from '@lit/context'\nimport { TailwindElement } from '@mixins/index'\nimport { SchmancySurfaceTypeContext } from '@schmancy/surface/context'\nimport { TSurfaceColor } from '@schmancy/types/surface'\nimport { html } from 'lit'\nimport { customElement, property, queryAssignedElements } from 'lit/decorators.js'\nimport { when } from 'lit/directives/when.js'\n\n/**\n * @element schmancy-list-item\n * @slot leading - leading content\n * @slot trailing - trailing content\n * @slot - default content\n */\n@customElement('schmancy-list-item')\nexport class SchmancyListItem extends TailwindElement() {\n\t@consume({ context: SchmancySurfaceTypeContext, subscribe: true })\n\t@property()\n\tvariant: TSurfaceColor\n\n\t@property({ type: Boolean })\n\trounded: boolean\n\n\t@property({ type: Boolean }) readonly: boolean\n\n\t@property({ type: Boolean }) selected: boolean = false\n\n\t@queryAssignedElements({\n\t\tslot: 'leading',\n\t\tflatten: true,\n\t})\n\tprivate leading!: HTMLElement[]\n\n\t@queryAssignedElements({\n\t\tslot: 'trailing',\n\t\tflatten: true,\n\t})\n\tprivate trailing!: HTMLElement[]\n\n\tprotected get imgClasses(): string[] {\n\t\treturn ['h-5', 'w-5', 'sm:h-6', 'sm:w-6', 'object-contain']\n\t}\n\n\tfirstUpdated() {\n\t\tthis.leading?.forEach(img => {\n\t\t\timg.classList.add(...this.imgClasses)\n\t\t})\n\t\tthis.trailing?.forEach(img => {\n\t\t\timg.classList.add(...this.imgClasses)\n\t\t})\n\t}\n\n\trender() {\n\t\tconst classes = {\n\t\t\t'rounded-none': this.rounded === false,\n\t\t\t'rounded-full': this.rounded,\n\t\t\t'relative inset-0 w-full flex items-center min-h-[44px] sm:min-h-[48px] md:min-h-[56px] py-1 px-2 sm:py-2 sm:px-3 md:py-2 md:px-4 text-sm sm:text-base duration-500 transition-colors focus-visible:outline-solid focus-visible:outline-2 focus-visible:outline-offset-0 focus-visible:z-1 outline-secondary-default outline-hidden':\n\t\t\t\ttrue,\n\t\t\t'bg-secondary-container text-secondery-onContainer': this.selected,\n\t\t}\n\n\t\tconst stateLayerClasses = {\n\t\t\t'z-0 duration-500 transition-opacity': true,\n\t\t\t'rounded-none': this.rounded === false,\n\t\t\t'rounded-full': this.rounded,\n\t\t\t'hover:bg-surface-on opacity-[0.08] cursor-pointer absolute inset-0 ': !this.readonly,\n\t\t}\n\t\treturn html` <li .tabIndex=${this.readonly ? -1 : 0} class=${this.classMap(classes)}>\n\t\t\t${when(!this.readonly, () => html` <div class=\"${this.classMap(stateLayerClasses)}\"></div>`)}\n\t\t\t<slot></slot>\n\t\t</li>`\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-list-item': SchmancyListItem\n\t}\n}\n","import { provide } from '@lit/context'\nimport { TailwindElement } from '@mixins/index'\nimport { SchmancySurfaceFill } from '@schmancy/surface'\nimport { TSurfaceColor } from '@schmancy/types/surface'\nimport { css, html } from 'lit'\nimport { customElement, property } from 'lit/decorators.js'\nimport { SchmancyListTypeContext } from './context'\n\n/**\n * `<schmancy-list>` component.\n *\n * A list component that wraps its content within a customizable surface.\n * It allows you to set the surface type and fill style, and can optionally\n * enable scrolling behavior by delegating the scroller attribute to the surface.\n *\n * @element schmancy-list\n * @slot - The default slot for list items.\n *\n * @example\n * <schmancy-list surface=\"container\" scroller>\n * <schmancy-list-item>List Item 1</schmancy-list-item>\n * </schmancy-list>\n */\n@customElement('schmancy-list')\nexport class List extends TailwindElement(css`\n\t:host {\n\t\tdisplay: block;\n\t\tpadding-top: 8px;\n\t\tpadding-bottom: 8px;\n\t}\n`) {\n\t/**\n\t * Defines the type or color of the surface used by the component.\n\t * This value is provided to descendant components via context.\n\t *\n\t * @attr surface\n\t * @type {TSurfaceColor}\n\t * @default 'surface'\n\t */\n\t@provide({ context: SchmancyListTypeContext })\n\t@property()\n\tsurface: TSurfaceColor\n\n\t/**\n\t * Determines the fill style of the underlying surface.\n\t *\n\t * @attr fill\n\t * @type {SchmancySurfaceFill}\n\t * @default 'auto'\n\t */\n\t@property({ type: String, reflect: true })\n\tfill: SchmancySurfaceFill = 'auto'\n\n\t/**\n\t * Defines the elevation level of the surface.\n\t *\n\t * @attr elevation\n\t * @type {number}\n\t * @default 0\n\t */\n\t@property({ type: Number })\n\televation: 0 | 1 | 2 | 3 | 4 | 5 = 0\n\n\t/**\n\t * Renders the component's template.\n\t * The list content is wrapped inside a `<schmancy-surface>` element.\n\t * The scroller property is delegated to the surface so that it controls\n\t * the scrollable behavior.\n\t *\n\t * @returns The HTML template for the component.\n\t */\n\trender() {\n\t\treturn html`\n\t\t\t<schmancy-surface .elevation=${this.elevation} .fill=${this.fill} type=${this.surface}>\n\t\t\t\t<ul>\n\t\t\t\t\t<slot></slot>\n\t\t\t\t</ul>\n\t\t\t</schmancy-surface>\n\t\t`\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-list': List\n\t}\n}\n"],"names":["SchmancyListTypeContext","createContext","SchmancySurfaceTypeContext","SchmancyListItem","TailwindElement","constructor","super","arguments","this","selected","imgClasses","firstUpdated","leading","forEach","img","classList","add","trailing","render","classes","rounded","stateLayerClasses","readonly","html","classMap","when","__decorateClass","consume","context","subscribe","property","prototype","type","Boolean","queryAssignedElements","slot","flatten","customElement","List","css","fill","elevation","surface","provide","String","reflect","Number"],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use strict";const y=require("./consume-edta5ng5.cjs");require("rxjs"),require("rxjs/operators"),require("lit/directives/class-map.js"),require("lit/directives/style-map.js");const r=require("lit/decorators.js"),m=require("./tailwind.mixin-
|
|
1
|
+
"use strict";const y=require("./consume-edta5ng5.cjs");require("rxjs"),require("rxjs/operators"),require("lit/directives/class-map.js"),require("lit/directives/style-map.js");const r=require("lit/decorators.js"),m=require("./tailwind.mixin-2PdnHg0B.cjs"),d=require("./provide-BxZ2kn_p.cjs"),p=require("lit"),h=require("lit/directives/when.js"),u=d.n(void 0),f=d.n("surface");var g=Object.defineProperty,v=Object.getOwnPropertyDescriptor,a=(t,s,n,i)=>{for(var o,e=i>1?void 0:i?v(s,n):s,l=t.length-1;l>=0;l--)(o=t[l])&&(e=(i?o(s,n,e):o(e))||e);return i&&e&&g(s,n,e),e};exports.SchmancyListItem=class extends m.TailwindElement(){constructor(){super(...arguments),this.selected=!1}get imgClasses(){return["h-5","w-5","sm:h-6","sm:w-6","object-contain"]}firstUpdated(){this.leading?.forEach(t=>{t.classList.add(...this.imgClasses)}),this.trailing?.forEach(t=>{t.classList.add(...this.imgClasses)})}render(){const t={"rounded-none":this.rounded===!1,"rounded-full":this.rounded,"relative inset-0 w-full flex items-center min-h-[44px] sm:min-h-[48px] md:min-h-[56px] py-1 px-2 sm:py-2 sm:px-3 md:py-2 md:px-4 text-sm sm:text-base duration-500 transition-colors focus-visible:outline-solid focus-visible:outline-2 focus-visible:outline-offset-0 focus-visible:z-1 outline-secondary-default outline-hidden":!0,"bg-secondary-container text-secondery-onContainer":this.selected},s={"z-0 duration-500 transition-opacity":!0,"rounded-none":this.rounded===!1,"rounded-full":this.rounded,"hover:bg-surface-on opacity-[0.08] cursor-pointer absolute inset-0 ":!this.readonly};return p.html` <li .tabIndex=${this.readonly?-1:0} class=${this.classMap(t)}>
|
|
2
2
|
${h.when(!this.readonly,()=>p.html` <div class="${this.classMap(s)}"></div>`)}
|
|
3
3
|
<slot></slot>
|
|
4
4
|
</li>`}},a([y.c({context:f,subscribe:!0}),r.property()],exports.SchmancyListItem.prototype,"variant",2),a([r.property({type:Boolean})],exports.SchmancyListItem.prototype,"rounded",2),a([r.property({type:Boolean})],exports.SchmancyListItem.prototype,"readonly",2),a([r.property({type:Boolean})],exports.SchmancyListItem.prototype,"selected",2),a([r.queryAssignedElements({slot:"leading",flatten:!0})],exports.SchmancyListItem.prototype,"leading",2),a([r.queryAssignedElements({slot:"trailing",flatten:!0})],exports.SchmancyListItem.prototype,"trailing",2),exports.SchmancyListItem=a([r.customElement("schmancy-list-item")],exports.SchmancyListItem);var b=Object.defineProperty,x=Object.getOwnPropertyDescriptor,c=(t,s,n,i)=>{for(var o,e=i>1?void 0:i?x(s,n):s,l=t.length-1;l>=0;l--)(o=t[l])&&(e=(i?o(s,n,e):o(e))||e);return i&&e&&b(s,n,e),e};exports.List=class extends m.TailwindElement(p.css`
|
|
@@ -14,4 +14,4 @@
|
|
|
14
14
|
</ul>
|
|
15
15
|
</schmancy-surface>
|
|
16
16
|
`}},c([d.e({context:u}),r.property()],exports.List.prototype,"surface",2),c([r.property({type:String,reflect:!0})],exports.List.prototype,"fill",2),c([r.property({type:Number})],exports.List.prototype,"elevation",2),exports.List=c([r.customElement("schmancy-list")],exports.List),exports.SchmancyListTypeContext=u;
|
|
17
|
-
//# sourceMappingURL=list-
|
|
17
|
+
//# sourceMappingURL=list-CyCR5ywg.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"list-
|
|
1
|
+
{"version":3,"file":"list-CyCR5ywg.cjs","sources":["../src/list/context.ts","../src/surface/context.ts","../src/list/list-item.ts","../src/list/list.ts"],"sourcesContent":["import { createContext } from '@lit/context'\nimport { TSurfaceColor } from '@schmancy/types/surface'\nexport const SchmancyListTypeContext = createContext<TSurfaceColor>(undefined)\n","import { createContext } from '@lit/context'\nimport { TSurfaceColor } from '@schmancy/types/surface'\nexport const SchmancySurfaceTypeContext = createContext<TSurfaceColor>('surface')\n","import { consume } from '@lit/context'\nimport { TailwindElement } from '@mixins/index'\nimport { SchmancySurfaceTypeContext } from '@schmancy/surface/context'\nimport { TSurfaceColor } from '@schmancy/types/surface'\nimport { html } from 'lit'\nimport { customElement, property, queryAssignedElements } from 'lit/decorators.js'\nimport { when } from 'lit/directives/when.js'\n\n/**\n * @element schmancy-list-item\n * @slot leading - leading content\n * @slot trailing - trailing content\n * @slot - default content\n */\n@customElement('schmancy-list-item')\nexport class SchmancyListItem extends TailwindElement() {\n\t@consume({ context: SchmancySurfaceTypeContext, subscribe: true })\n\t@property()\n\tvariant: TSurfaceColor\n\n\t@property({ type: Boolean })\n\trounded: boolean\n\n\t@property({ type: Boolean }) readonly: boolean\n\n\t@property({ type: Boolean }) selected: boolean = false\n\n\t@queryAssignedElements({\n\t\tslot: 'leading',\n\t\tflatten: true,\n\t})\n\tprivate leading!: HTMLElement[]\n\n\t@queryAssignedElements({\n\t\tslot: 'trailing',\n\t\tflatten: true,\n\t})\n\tprivate trailing!: HTMLElement[]\n\n\tprotected get imgClasses(): string[] {\n\t\treturn ['h-5', 'w-5', 'sm:h-6', 'sm:w-6', 'object-contain']\n\t}\n\n\tfirstUpdated() {\n\t\tthis.leading?.forEach(img => {\n\t\t\timg.classList.add(...this.imgClasses)\n\t\t})\n\t\tthis.trailing?.forEach(img => {\n\t\t\timg.classList.add(...this.imgClasses)\n\t\t})\n\t}\n\n\trender() {\n\t\tconst classes = {\n\t\t\t'rounded-none': this.rounded === false,\n\t\t\t'rounded-full': this.rounded,\n\t\t\t'relative inset-0 w-full flex items-center min-h-[44px] sm:min-h-[48px] md:min-h-[56px] py-1 px-2 sm:py-2 sm:px-3 md:py-2 md:px-4 text-sm sm:text-base duration-500 transition-colors focus-visible:outline-solid focus-visible:outline-2 focus-visible:outline-offset-0 focus-visible:z-1 outline-secondary-default outline-hidden':\n\t\t\t\ttrue,\n\t\t\t'bg-secondary-container text-secondery-onContainer': this.selected,\n\t\t}\n\n\t\tconst stateLayerClasses = {\n\t\t\t'z-0 duration-500 transition-opacity': true,\n\t\t\t'rounded-none': this.rounded === false,\n\t\t\t'rounded-full': this.rounded,\n\t\t\t'hover:bg-surface-on opacity-[0.08] cursor-pointer absolute inset-0 ': !this.readonly,\n\t\t}\n\t\treturn html` <li .tabIndex=${this.readonly ? -1 : 0} class=${this.classMap(classes)}>\n\t\t\t${when(!this.readonly, () => html` <div class=\"${this.classMap(stateLayerClasses)}\"></div>`)}\n\t\t\t<slot></slot>\n\t\t</li>`\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-list-item': SchmancyListItem\n\t}\n}\n","import { provide } from '@lit/context'\nimport { TailwindElement } from '@mixins/index'\nimport { SchmancySurfaceFill } from '@schmancy/surface'\nimport { TSurfaceColor } from '@schmancy/types/surface'\nimport { css, html } from 'lit'\nimport { customElement, property } from 'lit/decorators.js'\nimport { SchmancyListTypeContext } from './context'\n\n/**\n * `<schmancy-list>` component.\n *\n * A list component that wraps its content within a customizable surface.\n * It allows you to set the surface type and fill style, and can optionally\n * enable scrolling behavior by delegating the scroller attribute to the surface.\n *\n * @element schmancy-list\n * @slot - The default slot for list items.\n *\n * @example\n * <schmancy-list surface=\"container\" scroller>\n * <schmancy-list-item>List Item 1</schmancy-list-item>\n * </schmancy-list>\n */\n@customElement('schmancy-list')\nexport class List extends TailwindElement(css`\n\t:host {\n\t\tdisplay: block;\n\t\tpadding-top: 8px;\n\t\tpadding-bottom: 8px;\n\t}\n`) {\n\t/**\n\t * Defines the type or color of the surface used by the component.\n\t * This value is provided to descendant components via context.\n\t *\n\t * @attr surface\n\t * @type {TSurfaceColor}\n\t * @default 'surface'\n\t */\n\t@provide({ context: SchmancyListTypeContext })\n\t@property()\n\tsurface: TSurfaceColor\n\n\t/**\n\t * Determines the fill style of the underlying surface.\n\t *\n\t * @attr fill\n\t * @type {SchmancySurfaceFill}\n\t * @default 'auto'\n\t */\n\t@property({ type: String, reflect: true })\n\tfill: SchmancySurfaceFill = 'auto'\n\n\t/**\n\t * Defines the elevation level of the surface.\n\t *\n\t * @attr elevation\n\t * @type {number}\n\t * @default 0\n\t */\n\t@property({ type: Number })\n\televation: 0 | 1 | 2 | 3 | 4 | 5 = 0\n\n\t/**\n\t * Renders the component's template.\n\t * The list content is wrapped inside a `<schmancy-surface>` element.\n\t * The scroller property is delegated to the surface so that it controls\n\t * the scrollable behavior.\n\t *\n\t * @returns The HTML template for the component.\n\t */\n\trender() {\n\t\treturn html`\n\t\t\t<schmancy-surface .elevation=${this.elevation} .fill=${this.fill} type=${this.surface}>\n\t\t\t\t<ul>\n\t\t\t\t\t<slot></slot>\n\t\t\t\t</ul>\n\t\t\t</schmancy-surface>\n\t\t`\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-list': List\n\t}\n}\n"],"names":["SchmancyListTypeContext","createContext","SchmancySurfaceTypeContext","SchmancyListItem","TailwindElement","super","arguments","this","selected","firstUpdated","leading","forEach","img","classList","add","imgClasses","trailing","render","classes","rounded","stateLayerClasses","readonly","html","classMap","when","__decorateClass","consume","context","subscribe","property","prototype","type","Boolean","queryAssignedElements","slot","flatten","customElement","List","css","constructor","fill","elevation","surface","provide","String","reflect","Number"],"mappings":"wVAEaA,EAA0BC,EAAAA,EAAAA,MAA6B,ECAvDC,EAA6BD,EAAAA,EAA6B,SAAA,kMCa1DE,QAAAA,iBAAN,cAA+BC,EAAAA,gBAAAA,CAAAA,CAA/B,cAAAC,MAAAA,GAAAC,SAAAA,EAUuBC,KAAAC,SAAAA,EAAoB,CAcjD,IAAA,aACC,MAAO,CAAC,MAAO,MAAO,SAAU,SAAU,gBAAA,CAC3C,CAEA,cAAAC,CACCF,KAAKG,SAASC,QAAQC,IACrBA,EAAIC,UAAUC,IAAAA,GAAOP,KAAKQ,cAE3BR,KAAKS,UAAUL,QAAQC,GAAAA,CACtBA,EAAIC,UAAUC,IAAAA,GAAOP,KAAKQ,UAAAA,CAAAA,CAAAA,CAE5B,CAEA,QAAAE,CACC,MAAMC,EAAU,CACf,eAAgBX,KAAKY,UAArB,GACA,eAAgBZ,KAAKY,QACrB,qUAAA,GAEA,oDAAqDZ,KAAKC,QAAAA,EAGrDY,EAAoB,CACzB,sCAAA,GACA,eAAgBb,KAAKY,UAArB,GACA,eAAgBZ,KAAKY,QACrB,uEAAwEZ,KAAKc,QAAAA,EAE9E,OAAOC,wBAAsBf,KAAKc,YAAgB,CAAA,UAAWd,KAAKgB,SAASL,CAAAA,CAAAA;AAAAA,KACxEM,QAAMjB,KAAKc,SAAU,IAAMC,EAAAA,oBAAoBf,KAAKgB,SAASH,CAAAA,CAAAA,UAAAA,CAAAA;AAAAA;AAAAA,QAGjE,CAAA,EArDAK,EAAA,CAFCC,EAAAA,EAAQ,CAAEC,QAASzB,EAA4B0B,UAAAA,EAAW,CAAA,EAC1DC,EAAAA,SAAAA,CAAAA,EAFW1B,yBAGZ2B,UAAA,UAAA,CAAA,EAGAL,EAAA,CADCI,WAAS,CAAEE,KAAMC,WALN7B,yBAMZ2B,UAAA,UAAA,GAE6BL,EAAA,CAA5BI,WAAS,CAAEE,KAAMC,OAAAA,CAAAA,CAAAA,EARN7B,yBAQiB2B,UAAA,WAAA,CAAA,EAEAL,EAAA,CAA5BI,WAAS,CAAEE,KAAMC,WAVN7B,yBAUiB2B,UAAA,WAAA,GAMrBL,EAAA,CAJPQ,wBAAsB,CACtBC,KAAM,UACNC,QAAAA,MAdWhC,yBAgBJ2B,UAAA,UAAA,GAMAL,EAAA,CAJPQ,wBAAsB,CACtBC,KAAM,WACNC,QAAAA,EAAS,CAAA,CAAA,EApBEhC,yBAsBJ2B,UAAA,WAAA,GAtBI3B,QAAAA,iBAANsB,EAAA,CADNW,EAAAA,cAAc,oBAAA,CAAA,EACFjC,0NCSAkC,QAAAA,KAAN,cAAmBjC,EAAAA,gBAAgBkC,EAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,CAAnC,CAAA,CAAA,aAAAC,CAAAlC,MAAAA,GAAAC,SAAAA,EA2BNC,KAAAiC,KAA4B,OAU5BjC,KAAAkC,UAAmC,CAAA,CAUnC,QAAAxB,CACC,OAAOK,EAAAA;AAAAA,kCACyBf,KAAKkC,SAAAA,UAAmBlC,KAAKiC,IAAAA,SAAajC,KAAKmC,OAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,GAMhF,CAAA,EAtCAjB,EAAA,CAFCkB,IAAQ,CAAEhB,QAAS3B,CAAAA,CAAAA,EACnB6B,EAAAA,SAAAA,CAAAA,EAhBWQ,aAiBZP,UAAA,UAAA,CAAA,EAUAL,EAAA,CADCI,EAAAA,SAAS,CAAEE,KAAMa,OAAQC,QAAAA,EAAS,CAAA,CAAA,EA1BvBR,aA2BZP,UAAA,OAAA,CAAA,EAUAL,EAAA,CADCI,WAAS,CAAEE,KAAMe,MAAAA,CAAAA,CAAAA,EApCNT,aAqCZP,UAAA,YAAA,CAAA,EArCYO,QAAAA,KAANZ,EAAA,CADNW,EAAAA,cAAc,eAAA,CAAA,EACFC"}
|
package/dist/list.cjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./list-
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./list-CyCR5ywg.cjs");Object.defineProperty(exports,"List",{enumerable:!0,get:()=>e.List}),Object.defineProperty(exports,"SchmancyListItem",{enumerable:!0,get:()=>e.SchmancyListItem}),exports.SchmancyListTypeContext=e.SchmancyListTypeContext;
|
|
2
2
|
//# sourceMappingURL=list.cjs.map
|
package/dist/list.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { B as t, T as r } from "./tailwind.mixin-
|
|
1
|
+
import { B as t, T as r } from "./tailwind.mixin-BgdEBNZM.js";
|
|
2
2
|
const n = (s) => {
|
|
3
3
|
class e extends t(r(s)) {
|
|
4
4
|
constructor() {
|
|
@@ -12,4 +12,4 @@ const n = (s) => {
|
|
|
12
12
|
export {
|
|
13
13
|
n as $
|
|
14
14
|
};
|
|
15
|
-
//# sourceMappingURL=litElement.mixin-
|
|
15
|
+
//# sourceMappingURL=litElement.mixin-BPe38Tqd.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"litElement.mixin-
|
|
1
|
+
{"version":3,"file":"litElement.mixin-BPe38Tqd.js","sources":["../mixins/litElement.mixin.ts"],"sourcesContent":["import { CSSResult, LitElement } from 'lit'\nimport { TailwindElement } from './tailwind.mixin'\nimport { BaseElement, IBaseMixin } from './baseElement'\nimport { Constructor } from './constructor'\n\nexport const $LitElement = <T extends CSSResult>(componentStyle?: T) => {\n\tclass TailwindMixinClass extends BaseElement(TailwindElement(componentStyle)) {\n\t\tdisconnectedCallback = () => {\n\t\t\tsuper.disconnectedCallback()\n\t\t}\n\t}\n\treturn TailwindMixinClass as CustomElementConstructor &\n\t\tConstructor<LitElement> &\n\t\tConstructor<IBaseMixin> /* see \"typing the subclass\" below */\n}\n"],"names":["$LitElement","componentStyle","TailwindMixinClass","BaseElement","TailwindElement","constructor","super","arguments","this","disconnectedCallback"],"mappings":";AAKO,MAAMA,IAAoCC,CAAAA;EAChD,MAAMC,UAA2BC,EAAYC,EAAgBH,CAAAA,CAAAA,EAAAA;AAAAA,IAA7D,cAAAI;AAAAC,YAAAA,GAAAC,YACCC,KAAAC,uBAAuB;AACtBH,cAAMG,qBAAAA;AAAAA,MAAAA;AAAAA,IACP;AAAA,EAAA;AAED,SAAOP;AAAAA;"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";const e=require("./tailwind.mixin-
|
|
2
|
-
//# sourceMappingURL=litElement.mixin-
|
|
1
|
+
"use strict";const e=require("./tailwind.mixin-2PdnHg0B.cjs");exports.$LitElement=t=>{class s extends e.BaseElement(e.TailwindElement(t)){constructor(){super(...arguments),this.disconnectedCallback=()=>{super.disconnectedCallback()}}}return s};
|
|
2
|
+
//# sourceMappingURL=litElement.mixin-DXaT0TQx.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"litElement.mixin-
|
|
1
|
+
{"version":3,"file":"litElement.mixin-DXaT0TQx.cjs","sources":["../mixins/litElement.mixin.ts"],"sourcesContent":["import { CSSResult, LitElement } from 'lit'\nimport { TailwindElement } from './tailwind.mixin'\nimport { BaseElement, IBaseMixin } from './baseElement'\nimport { Constructor } from './constructor'\n\nexport const $LitElement = <T extends CSSResult>(componentStyle?: T) => {\n\tclass TailwindMixinClass extends BaseElement(TailwindElement(componentStyle)) {\n\t\tdisconnectedCallback = () => {\n\t\t\tsuper.disconnectedCallback()\n\t\t}\n\t}\n\treturn TailwindMixinClass as CustomElementConstructor &\n\t\tConstructor<LitElement> &\n\t\tConstructor<IBaseMixin> /* see \"typing the subclass\" below */\n}\n"],"names":["componentStyle","TailwindMixinClass","BaseElement","TailwindElement","constructor","super","arguments","this","disconnectedCallback"],"mappings":"kFAKiDA,GAAAA,CAChD,MAAMC,UAA2BC,EAAAA,YAAYC,kBAAgBH,CAAAA,CAAAA,CAAAA,CAA7D,aAAAI,CAAAC,MAAAA,GAAAC,SAAAA,EACCC,KAAAC,qBAAuB,IAAA,CACtBH,MAAMG,qBAAAA,CAAAA,CACP,CAAA,CAED,OAAOP,CAAAA"}
|
package/dist/mailbox.cjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./email-recipients-
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./email-recipients-DA2HLG8K.cjs");Object.defineProperty(exports,"SchmancyEmailEditor",{enumerable:!0,get:()=>e.SchmancyEmailEditor}),Object.defineProperty(exports,"SchmancyEmailLayoutSelector",{enumerable:!0,get:()=>e.SchmancyEmailLayoutSelector}),Object.defineProperty(exports,"SchmancyEmailRecipients",{enumerable:!0,get:()=>e.SchmancyEmailRecipients}),Object.defineProperty(exports,"SchmancyEmailViewer",{enumerable:!0,get:()=>e.SchmancyEmailViewer}),Object.defineProperty(exports,"SchmancyMailbox",{enumerable:!0,get:()=>e.SchmancyMailbox});
|
|
2
2
|
//# sourceMappingURL=mailbox.cjs.map
|
package/dist/mailbox.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use strict";const h=require("rxjs"),n=require("rxjs/operators");require("lit/directives/class-map.js"),require("lit/directives/style-map.js");const t=require("lit/decorators.js"),g=require("./tailwind.mixin-
|
|
1
|
+
"use strict";const h=require("rxjs"),n=require("rxjs/operators");require("lit/directives/class-map.js"),require("lit/directives/style-map.js");const t=require("lit/decorators.js"),g=require("./tailwind.mixin-2PdnHg0B.cjs"),c=require("lit"),l=require("lit/directives/ref.js"),m=require("lit/directives/when.js");var y=Object.defineProperty,u=Object.getOwnPropertyDescriptor,r=(e,i,a,o)=>{for(var p,s=o>1?void 0:o?u(i,a):i,d=e.length-1;d>=0;d--)(p=e[d])&&(s=(o?p(i,a,s):p(s))||s);return o&&s&&y(i,a,s),s};class v{static load(i){return window.google?.maps?h.of(!0):(this.loading$||(this.loading$=new h.Observable(a=>{if(window.google?.maps)return a.next(!0),void a.complete();const o=document.createElement("script");o.src=`https://maps.googleapis.com/maps/api/js?key=${i}&libraries=places&callback=initGoogleMaps&v=weekly`,o.async=!0,o.defer=!0,window.initGoogleMaps=()=>{a.next(!0),a.complete()},o.onerror=p=>{a.error(new Error("Failed to load Google Maps. Please check API key configuration and ensure the domain is authorized."))},document.head.appendChild(o)}).pipe(n.shareReplay(1))),this.loading$)}}exports.SchmancyMap=class extends g.TailwindElement(c.css`
|
|
2
2
|
:host {
|
|
3
3
|
display: block;
|
|
4
4
|
position: relative;
|
|
@@ -78,4 +78,4 @@
|
|
|
78
78
|
<div class="map-container" ${l.ref(this.mapRef)}></div>
|
|
79
79
|
`))}
|
|
80
80
|
`}},r([t.property({type:String})],exports.SchmancyMap.prototype,"address",2),r([t.property({type:Number})],exports.SchmancyMap.prototype,"latitude",2),r([t.property({type:Number})],exports.SchmancyMap.prototype,"longitude",2),r([t.property({type:Number})],exports.SchmancyMap.prototype,"zoom",2),r([t.property({type:String,reflect:!0})],exports.SchmancyMap.prototype,"height",2),r([t.property({type:Boolean})],exports.SchmancyMap.prototype,"marker",2),r([t.property({type:String})],exports.SchmancyMap.prototype,"markerTitle",2),r([t.property({type:String})],exports.SchmancyMap.prototype,"type",2),r([t.property({type:Boolean})],exports.SchmancyMap.prototype,"interactive",2),r([t.property({type:Boolean})],exports.SchmancyMap.prototype,"controls",2),r([t.property({type:String})],exports.SchmancyMap.prototype,"apiKey",2),r([t.state()],exports.SchmancyMap.prototype,"loading",2),r([t.state()],exports.SchmancyMap.prototype,"error",2),exports.SchmancyMap=r([t.customElement("schmancy-map")],exports.SchmancyMap);
|
|
81
|
-
//# sourceMappingURL=map-
|
|
81
|
+
//# sourceMappingURL=map-C2fG3es8.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"map-DEjWWl14.cjs","sources":["../src/map/map.ts"],"sourcesContent":["import { TailwindElement } from '@mixins/index'\nimport { css, html } from 'lit'\nimport { customElement, property, state } from 'lit/decorators.js'\nimport { ref, createRef } from 'lit/directives/ref.js'\nimport { when } from 'lit/directives/when.js'\nimport { of, EMPTY, Observable } from 'rxjs'\nimport { switchMap, tap, catchError, takeUntil, finalize, shareReplay } from 'rxjs/operators'\n\ninterface GoogleMapsAPI {\n maps: {\n Map: new (element: HTMLElement, options: any) => any\n Marker: new (options: any) => any\n Geocoder: new () => any\n LatLng: new (lat: number, lng: number) => any\n MapTypeId: {\n ROADMAP: string\n SATELLITE: string\n HYBRID: string\n TERRAIN: string\n }\n }\n}\n\ndeclare global {\n interface Window {\n google?: GoogleMapsAPI\n initGoogleMaps?: () => void\n __schmancyGoogleMapsLoading?: Observable<boolean>\n }\n}\n\n// Singleton for managing Google Maps script loading\nclass GoogleMapsLoader {\n private static loading$?: Observable<boolean>\n\n static load(apiKey: string): Observable<boolean> {\n // If already loaded, return success\n if (window.google?.maps) {\n return of(true)\n }\n\n // If already loading, return the existing observable\n if (this.loading$) {\n return this.loading$\n }\n\n // Create a new loading observable\n this.loading$ = new Observable<boolean>(observer => {\n // Check again if loaded while waiting\n if (window.google?.maps) {\n observer.next(true)\n observer.complete()\n return\n }\n\n const script = document.createElement('script')\n // Using places library instead of geometry for geocoding\n script.src = `https://maps.googleapis.com/maps/api/js?key=${apiKey}&libraries=places&callback=initGoogleMaps&v=weekly`\n script.async = true\n script.defer = true\n\n window.initGoogleMaps = () => {\n observer.next(true)\n observer.complete()\n }\n\n script.onerror = (error) => {\n console.error('Google Maps script loading error:', error)\n observer.error(new Error('Failed to load Google Maps. Please check API key configuration and ensure the domain is authorized.'))\n }\n\n document.head.appendChild(script)\n }).pipe(\n shareReplay(1) // Share the result among all subscribers\n )\n\n return this.loading$\n }\n}\n\n/**\n * `<schmancy-map>` component\n *\n * A Google Maps component with an intuitive API for displaying interactive or static maps.\n * Supports both address strings (with automatic geocoding) and precise coordinates.\n *\n * @element schmancy-map\n *\n * @example\n * <!-- Simple address -->\n * <schmancy-map address=\"Times Square, New York\"></schmancy-map>\n *\n * @example\n * <!-- With coordinates -->\n * <schmancy-map latitude=\"40.758\" longitude=\"-73.985\" zoom=\"17\"></schmancy-map>\n *\n * @example\n * <!-- Satellite view -->\n * <schmancy-map address=\"Grand Canyon\" type=\"satellite\" height=\"500px\"></schmancy-map>\n *\n * @example\n * <!-- Static map -->\n * <schmancy-map address=\"Eiffel Tower, Paris\" interactive=\"false\" controls=\"false\"></schmancy-map>\n */\n@customElement('schmancy-map')\nexport default class SchmancyMap extends TailwindElement(css`\n :host {\n display: block;\n position: relative;\n border-radius: 8px;\n overflow: hidden;\n background-color: var(--schmancy-sys-color-surface-container);\n color: var(--schmancy-sys-color-surface-on);\n }\n \n :host([height]) {\n height: var(--map-height);\n }\n \n .map-container {\n width: 100%;\n height: 100%;\n min-height: 400px;\n }\n \n .loading-container {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 100%;\n height: 100%;\n min-height: 400px;\n background-color: var(--schmancy-sys-color-surface-containerLow);\n }\n \n .error-container {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n width: 100%;\n height: 100%;\n min-height: 400px;\n padding: 24px;\n text-align: center;\n background-color: var(--schmancy-sys-color-surface-containerLow);\n }\n \n .error-icon {\n width: 48px;\n height: 48px;\n margin-bottom: 16px;\n color: var(--schmancy-sys-color-error-default);\n }\n \n .error-title {\n font-size: 18px;\n font-weight: 600;\n margin-bottom: 8px;\n color: var(--schmancy-sys-color-surface-on);\n }\n \n .error-message {\n font-size: 14px;\n color: var(--schmancy-sys-color-surface-onVariant);\n line-height: 1.5;\n }\n`) {\n /**\n * Simple address string that automatically geocodes to display the location.\n * Takes precedence over latitude/longitude if both are provided.\n */\n @property({ type: String })\n address: string = ''\n\n /**\n * Latitude coordinate for precise location.\n * Used when address is not provided.\n */\n @property({ type: Number })\n latitude?: number\n\n /**\n * Longitude coordinate for precise location.\n * Used when address is not provided.\n */\n @property({ type: Number })\n longitude?: number\n\n /**\n * Map zoom level. Higher numbers show more detail.\n * @default 15\n */\n @property({ type: Number })\n zoom: number = 15\n\n /**\n * Height of the map with CSS unit (e.g., \"400px\", \"50vh\").\n * @default \"400px\"\n */\n @property({ type: String, reflect: true })\n height: string = '400px'\n\n /**\n * Whether to show a marker at the location.\n * @default true\n */\n @property({ type: Boolean })\n marker: boolean = true\n\n /**\n * Tooltip text for the location marker.\n */\n @property({ type: String })\n markerTitle: string = ''\n\n /**\n * Map display type.\n * Options: \"roadmap\", \"satellite\", \"hybrid\", \"terrain\"\n * @default \"roadmap\"\n */\n @property({ type: String })\n type: 'roadmap' | 'satellite' | 'hybrid' | 'terrain' = 'roadmap'\n\n /**\n * Whether users can interact with the map (pan, zoom, click).\n * @default true\n */\n @property({ type: Boolean })\n interactive: boolean = true\n\n /**\n * Whether to show map controls (zoom buttons, fullscreen, etc.).\n * @default true\n */\n @property({ type: Boolean })\n controls: boolean = true\n\n /**\n * Google Maps API key. Required for the map to load.\n */\n @property({ type: String })\n apiKey: string = ''\n\n @state() private loading: boolean = false\n @state() private error: string = ''\n\n private mapRef = createRef<HTMLDivElement>()\n private map?: any\n private mapMarker?: any\n private geocoder?: any\n private intersectionObserver?: IntersectionObserver\n private hasLoadedMap = false\n\n connectedCallback() {\n super.connectedCallback()\n \n // Set CSS custom property for height\n this.style.setProperty('--map-height', this.height)\n \n // Only load map when component becomes visible\n this.setupIntersectionObserver()\n }\n\n disconnectedCallback() {\n super.disconnectedCallback()\n if (this.intersectionObserver) {\n this.intersectionObserver.disconnect()\n }\n }\n\n private setupIntersectionObserver() {\n // Load map only when it's visible in the viewport\n this.intersectionObserver = new IntersectionObserver(\n (entries) => {\n entries.forEach(entry => {\n if (entry.isIntersecting && !this.hasLoadedMap) {\n this.hasLoadedMap = true\n this.loadMap()\n // Stop observing after loading\n this.intersectionObserver?.disconnect()\n }\n })\n },\n {\n root: null,\n rootMargin: '50px',\n threshold: 0.01\n }\n )\n \n this.intersectionObserver.observe(this)\n }\n\n private loadMap() {\n of(null).pipe(\n tap(() => {\n this.loading = true\n this.error = ''\n }),\n switchMap(() => {\n if (!this.apiKey) {\n throw new Error('Google Maps API key is required. Please provide it via the apiKey property.')\n }\n return GoogleMapsLoader.load(this.apiKey)\n }),\n switchMap(() => this.getCoordinates()),\n tap((coordinates) => {\n // Store coordinates for later use\n this.pendingCoordinates = coordinates\n }),\n catchError((error) => {\n console.error('Map loading error:', error)\n this.error = error.message || 'Failed to load map'\n return EMPTY\n }),\n finalize(() => {\n this.loading = false\n }),\n takeUntil(this.disconnecting)\n ).subscribe()\n }\n\n private pendingCoordinates?: { lat: number; lng: number }\n\n private getCoordinates() {\n if (this.address) {\n return this.geocodeAddress(this.address)\n }\n\n if (this.latitude !== undefined && this.longitude !== undefined) {\n return of({ lat: this.latitude, lng: this.longitude })\n }\n\n throw new Error('Either address or latitude/longitude coordinates are required')\n }\n\n private geocodeAddress(address: string) {\n if (!this.geocoder) {\n this.geocoder = new window.google!.maps.Geocoder()\n }\n\n return new Promise<{ lat: number; lng: number }>((resolve, reject) => {\n this.geocoder.geocode({ address }, (results: any[], status: string) => {\n if (status === 'OK' && results[0]) {\n const location = results[0].geometry.location\n resolve({\n lat: location.lat(),\n lng: location.lng()\n })\n } else {\n reject(new Error(`Geocoding failed: ${status}`))\n }\n })\n })\n }\n\n private initializeMap(coordinates: { lat: number; lng: number }) {\n if (!this.mapRef.value || !window.google?.maps) {\n return\n }\n\n const mapOptions = {\n center: coordinates,\n zoom: this.zoom,\n mapTypeId: this.getMapTypeId(),\n disableDefaultUI: !this.controls,\n gestureHandling: this.interactive ? 'cooperative' : 'none',\n zoomControl: this.controls,\n mapTypeControl: this.controls,\n scaleControl: this.controls,\n streetViewControl: this.controls,\n rotateControl: this.controls,\n fullscreenControl: this.controls,\n styles: this.interactive ? undefined : [\n {\n featureType: 'poi',\n stylers: [{ visibility: 'off' }]\n }\n ]\n }\n\n this.map = new window.google.maps.Map(this.mapRef.value, mapOptions)\n\n if (this.marker) {\n this.addMarker(coordinates)\n }\n }\n\n private getMapTypeId(): string {\n const typeMap = {\n roadmap: window.google!.maps.MapTypeId.ROADMAP,\n satellite: window.google!.maps.MapTypeId.SATELLITE,\n hybrid: window.google!.maps.MapTypeId.HYBRID,\n terrain: window.google!.maps.MapTypeId.TERRAIN\n }\n return typeMap[this.type] || typeMap.roadmap\n }\n\n private addMarker(coordinates: { lat: number; lng: number }) {\n if (!window.google?.maps || !this.map) {\n return\n }\n\n this.mapMarker = new window.google.maps.Marker({\n position: coordinates,\n map: this.map,\n title: this.markerTitle || this.address || 'Location'\n })\n }\n\n protected updated(changedProperties: Map<string, any>) {\n super.updated(changedProperties)\n\n if (changedProperties.has('height')) {\n this.style.setProperty('--map-height', this.height)\n }\n\n // Initialize map when loading completes and container is ready\n if (changedProperties.has('loading') && !this.loading && this.pendingCoordinates && !this.map) {\n // Wait for next frame to ensure map container is rendered\n requestAnimationFrame(() => {\n if (this.mapRef.value && this.pendingCoordinates) {\n this.initializeMap(this.pendingCoordinates)\n this.pendingCoordinates = undefined\n }\n })\n }\n\n // Reload map if critical properties change (only if map was already loaded)\n if (\n changedProperties.has('address') ||\n changedProperties.has('latitude') ||\n changedProperties.has('longitude') ||\n changedProperties.has('type') ||\n changedProperties.has('zoom')\n ) {\n if (this.map && this.hasLoadedMap) {\n this.loadMap()\n }\n }\n\n // Update marker title if it changes\n if (changedProperties.has('markerTitle') && this.mapMarker) {\n this.mapMarker.setTitle(this.markerTitle || this.address || 'Location')\n }\n }\n\n protected render() {\n return html`\n ${when(\n this.loading,\n () => html`\n <div class=\"loading-container\">\n <schmancy-spinner size=\"32px\"></schmancy-spinner>\n </div>\n `,\n () => when(\n this.error,\n () => html`\n <div class=\"error-container\">\n <svg class=\"error-icon\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\">\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" \n d=\"M12 9v2m0 4h.01m-6.938 4h13.856c1.54 0 2.502-1.667 1.732-2.5L13.732 4c-.77-.833-1.964-.833-2.732 0L4.082 16.5c-.77.833.192 2.5 1.732 2.5z\" />\n </svg>\n <div class=\"error-title\">Map could not be loaded</div>\n <div class=\"error-message\">${this.error}</div>\n </div>\n `,\n () => html`\n <div class=\"map-container\" ${ref(this.mapRef)}></div>\n `\n )\n )}\n `\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'schmancy-map': SchmancyMap\n }\n}"],"names":["GoogleMapsLoader","apiKey","window","google","maps","of","this","loading$","Observable","observer","next","complete","script","document","createElement","src","async","defer","initGoogleMaps","onerror","error","Error","head","appendChild","pipe","shareReplay","SchmancyMap","TailwindElement","css","constructor","super","arguments","address","zoom","height","marker","markerTitle","type","interactive","controls","loading","mapRef","createRef","hasLoadedMap","connectedCallback","style","setProperty","setupIntersectionObserver","disconnectedCallback","intersectionObserver","disconnect","IntersectionObserver","entries","forEach","entry","isIntersecting","loadMap","root","rootMargin","threshold","observe","tap","switchMap","load","getCoordinates","coordinates","pendingCoordinates","catchError","message","EMPTY","finalize","takeUntil","disconnecting","subscribe","geocodeAddress","latitude","longitude","lat","lng","geocoder","Geocoder","Promise","resolve","reject","geocode","results","status","location","geometry","value","mapOptions","center","mapTypeId","getMapTypeId","disableDefaultUI","gestureHandling","zoomControl","mapTypeControl","scaleControl","streetViewControl","rotateControl","fullscreenControl","styles","featureType","stylers","visibility","map","Map","addMarker","typeMap","roadmap","MapTypeId","ROADMAP","satellite","SATELLITE","hybrid","HYBRID","terrain","TERRAIN","mapMarker","Marker","position","title","changedProperties","updated","has","requestAnimationFrame","initializeMap","setTitle","render","html","when","ref","__decorateClass","property","String","prototype","Number","reflect","Boolean","state","customElement"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"map-C2fG3es8.cjs","sources":["../src/map/map.ts"],"sourcesContent":["import { TailwindElement } from '@mixins/index'\nimport { css, html } from 'lit'\nimport { customElement, property, state } from 'lit/decorators.js'\nimport { ref, createRef } from 'lit/directives/ref.js'\nimport { when } from 'lit/directives/when.js'\nimport { of, EMPTY, Observable } from 'rxjs'\nimport { switchMap, tap, catchError, takeUntil, finalize, shareReplay } from 'rxjs/operators'\n\ninterface GoogleMapsAPI {\n maps: {\n Map: new (element: HTMLElement, options: any) => any\n Marker: new (options: any) => any\n Geocoder: new () => any\n LatLng: new (lat: number, lng: number) => any\n MapTypeId: {\n ROADMAP: string\n SATELLITE: string\n HYBRID: string\n TERRAIN: string\n }\n }\n}\n\ndeclare global {\n interface Window {\n google?: GoogleMapsAPI\n initGoogleMaps?: () => void\n __schmancyGoogleMapsLoading?: Observable<boolean>\n }\n}\n\n// Singleton for managing Google Maps script loading\nclass GoogleMapsLoader {\n private static loading$?: Observable<boolean>\n\n static load(apiKey: string): Observable<boolean> {\n // If already loaded, return success\n if (window.google?.maps) {\n return of(true)\n }\n\n // If already loading, return the existing observable\n if (this.loading$) {\n return this.loading$\n }\n\n // Create a new loading observable\n this.loading$ = new Observable<boolean>(observer => {\n // Check again if loaded while waiting\n if (window.google?.maps) {\n observer.next(true)\n observer.complete()\n return\n }\n\n const script = document.createElement('script')\n // Using places library instead of geometry for geocoding\n script.src = `https://maps.googleapis.com/maps/api/js?key=${apiKey}&libraries=places&callback=initGoogleMaps&v=weekly`\n script.async = true\n script.defer = true\n\n window.initGoogleMaps = () => {\n observer.next(true)\n observer.complete()\n }\n\n script.onerror = (error) => {\n console.error('Google Maps script loading error:', error)\n observer.error(new Error('Failed to load Google Maps. Please check API key configuration and ensure the domain is authorized.'))\n }\n\n document.head.appendChild(script)\n }).pipe(\n shareReplay(1) // Share the result among all subscribers\n )\n\n return this.loading$\n }\n}\n\n/**\n * `<schmancy-map>` component\n *\n * A Google Maps component with an intuitive API for displaying interactive or static maps.\n * Supports both address strings (with automatic geocoding) and precise coordinates.\n *\n * @element schmancy-map\n *\n * @example\n * <!-- Simple address -->\n * <schmancy-map address=\"Times Square, New York\"></schmancy-map>\n *\n * @example\n * <!-- With coordinates -->\n * <schmancy-map latitude=\"40.758\" longitude=\"-73.985\" zoom=\"17\"></schmancy-map>\n *\n * @example\n * <!-- Satellite view -->\n * <schmancy-map address=\"Grand Canyon\" type=\"satellite\" height=\"500px\"></schmancy-map>\n *\n * @example\n * <!-- Static map -->\n * <schmancy-map address=\"Eiffel Tower, Paris\" interactive=\"false\" controls=\"false\"></schmancy-map>\n */\n@customElement('schmancy-map')\nexport default class SchmancyMap extends TailwindElement(css`\n :host {\n display: block;\n position: relative;\n border-radius: 8px;\n overflow: hidden;\n background-color: var(--schmancy-sys-color-surface-container);\n color: var(--schmancy-sys-color-surface-on);\n }\n \n :host([height]) {\n height: var(--map-height);\n }\n \n .map-container {\n width: 100%;\n height: 100%;\n min-height: 400px;\n }\n \n .loading-container {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 100%;\n height: 100%;\n min-height: 400px;\n background-color: var(--schmancy-sys-color-surface-containerLow);\n }\n \n .error-container {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n width: 100%;\n height: 100%;\n min-height: 400px;\n padding: 24px;\n text-align: center;\n background-color: var(--schmancy-sys-color-surface-containerLow);\n }\n \n .error-icon {\n width: 48px;\n height: 48px;\n margin-bottom: 16px;\n color: var(--schmancy-sys-color-error-default);\n }\n \n .error-title {\n font-size: 18px;\n font-weight: 600;\n margin-bottom: 8px;\n color: var(--schmancy-sys-color-surface-on);\n }\n \n .error-message {\n font-size: 14px;\n color: var(--schmancy-sys-color-surface-onVariant);\n line-height: 1.5;\n }\n`) {\n /**\n * Simple address string that automatically geocodes to display the location.\n * Takes precedence over latitude/longitude if both are provided.\n */\n @property({ type: String })\n address: string = ''\n\n /**\n * Latitude coordinate for precise location.\n * Used when address is not provided.\n */\n @property({ type: Number })\n latitude?: number\n\n /**\n * Longitude coordinate for precise location.\n * Used when address is not provided.\n */\n @property({ type: Number })\n longitude?: number\n\n /**\n * Map zoom level. Higher numbers show more detail.\n * @default 15\n */\n @property({ type: Number })\n zoom: number = 15\n\n /**\n * Height of the map with CSS unit (e.g., \"400px\", \"50vh\").\n * @default \"400px\"\n */\n @property({ type: String, reflect: true })\n height: string = '400px'\n\n /**\n * Whether to show a marker at the location.\n * @default true\n */\n @property({ type: Boolean })\n marker: boolean = true\n\n /**\n * Tooltip text for the location marker.\n */\n @property({ type: String })\n markerTitle: string = ''\n\n /**\n * Map display type.\n * Options: \"roadmap\", \"satellite\", \"hybrid\", \"terrain\"\n * @default \"roadmap\"\n */\n @property({ type: String })\n type: 'roadmap' | 'satellite' | 'hybrid' | 'terrain' = 'roadmap'\n\n /**\n * Whether users can interact with the map (pan, zoom, click).\n * @default true\n */\n @property({ type: Boolean })\n interactive: boolean = true\n\n /**\n * Whether to show map controls (zoom buttons, fullscreen, etc.).\n * @default true\n */\n @property({ type: Boolean })\n controls: boolean = true\n\n /**\n * Google Maps API key. Required for the map to load.\n */\n @property({ type: String })\n apiKey: string = ''\n\n @state() private loading: boolean = false\n @state() private error: string = ''\n\n private mapRef = createRef<HTMLDivElement>()\n private map?: any\n private mapMarker?: any\n private geocoder?: any\n private intersectionObserver?: IntersectionObserver\n private hasLoadedMap = false\n\n connectedCallback() {\n super.connectedCallback()\n \n // Set CSS custom property for height\n this.style.setProperty('--map-height', this.height)\n \n // Only load map when component becomes visible\n this.setupIntersectionObserver()\n }\n\n disconnectedCallback() {\n super.disconnectedCallback()\n if (this.intersectionObserver) {\n this.intersectionObserver.disconnect()\n }\n }\n\n private setupIntersectionObserver() {\n // Load map only when it's visible in the viewport\n this.intersectionObserver = new IntersectionObserver(\n (entries) => {\n entries.forEach(entry => {\n if (entry.isIntersecting && !this.hasLoadedMap) {\n this.hasLoadedMap = true\n this.loadMap()\n // Stop observing after loading\n this.intersectionObserver?.disconnect()\n }\n })\n },\n {\n root: null,\n rootMargin: '50px',\n threshold: 0.01\n }\n )\n \n this.intersectionObserver.observe(this)\n }\n\n private loadMap() {\n of(null).pipe(\n tap(() => {\n this.loading = true\n this.error = ''\n }),\n switchMap(() => {\n if (!this.apiKey) {\n throw new Error('Google Maps API key is required. Please provide it via the apiKey property.')\n }\n return GoogleMapsLoader.load(this.apiKey)\n }),\n switchMap(() => this.getCoordinates()),\n tap((coordinates) => {\n // Store coordinates for later use\n this.pendingCoordinates = coordinates\n }),\n catchError((error) => {\n console.error('Map loading error:', error)\n this.error = error.message || 'Failed to load map'\n return EMPTY\n }),\n finalize(() => {\n this.loading = false\n }),\n takeUntil(this.disconnecting)\n ).subscribe()\n }\n\n private pendingCoordinates?: { lat: number; lng: number }\n\n private getCoordinates() {\n if (this.address) {\n return this.geocodeAddress(this.address)\n }\n\n if (this.latitude !== undefined && this.longitude !== undefined) {\n return of({ lat: this.latitude, lng: this.longitude })\n }\n\n throw new Error('Either address or latitude/longitude coordinates are required')\n }\n\n private geocodeAddress(address: string) {\n if (!this.geocoder) {\n this.geocoder = new window.google!.maps.Geocoder()\n }\n\n return new Promise<{ lat: number; lng: number }>((resolve, reject) => {\n this.geocoder.geocode({ address }, (results: any[], status: string) => {\n if (status === 'OK' && results[0]) {\n const location = results[0].geometry.location\n resolve({\n lat: location.lat(),\n lng: location.lng()\n })\n } else {\n reject(new Error(`Geocoding failed: ${status}`))\n }\n })\n })\n }\n\n private initializeMap(coordinates: { lat: number; lng: number }) {\n if (!this.mapRef.value || !window.google?.maps) {\n return\n }\n\n const mapOptions = {\n center: coordinates,\n zoom: this.zoom,\n mapTypeId: this.getMapTypeId(),\n disableDefaultUI: !this.controls,\n gestureHandling: this.interactive ? 'cooperative' : 'none',\n zoomControl: this.controls,\n mapTypeControl: this.controls,\n scaleControl: this.controls,\n streetViewControl: this.controls,\n rotateControl: this.controls,\n fullscreenControl: this.controls,\n styles: this.interactive ? undefined : [\n {\n featureType: 'poi',\n stylers: [{ visibility: 'off' }]\n }\n ]\n }\n\n this.map = new window.google.maps.Map(this.mapRef.value, mapOptions)\n\n if (this.marker) {\n this.addMarker(coordinates)\n }\n }\n\n private getMapTypeId(): string {\n const typeMap = {\n roadmap: window.google!.maps.MapTypeId.ROADMAP,\n satellite: window.google!.maps.MapTypeId.SATELLITE,\n hybrid: window.google!.maps.MapTypeId.HYBRID,\n terrain: window.google!.maps.MapTypeId.TERRAIN\n }\n return typeMap[this.type] || typeMap.roadmap\n }\n\n private addMarker(coordinates: { lat: number; lng: number }) {\n if (!window.google?.maps || !this.map) {\n return\n }\n\n this.mapMarker = new window.google.maps.Marker({\n position: coordinates,\n map: this.map,\n title: this.markerTitle || this.address || 'Location'\n })\n }\n\n protected updated(changedProperties: Map<string, any>) {\n super.updated(changedProperties)\n\n if (changedProperties.has('height')) {\n this.style.setProperty('--map-height', this.height)\n }\n\n // Initialize map when loading completes and container is ready\n if (changedProperties.has('loading') && !this.loading && this.pendingCoordinates && !this.map) {\n // Wait for next frame to ensure map container is rendered\n requestAnimationFrame(() => {\n if (this.mapRef.value && this.pendingCoordinates) {\n this.initializeMap(this.pendingCoordinates)\n this.pendingCoordinates = undefined\n }\n })\n }\n\n // Reload map if critical properties change (only if map was already loaded)\n if (\n changedProperties.has('address') ||\n changedProperties.has('latitude') ||\n changedProperties.has('longitude') ||\n changedProperties.has('type') ||\n changedProperties.has('zoom')\n ) {\n if (this.map && this.hasLoadedMap) {\n this.loadMap()\n }\n }\n\n // Update marker title if it changes\n if (changedProperties.has('markerTitle') && this.mapMarker) {\n this.mapMarker.setTitle(this.markerTitle || this.address || 'Location')\n }\n }\n\n protected render() {\n return html`\n ${when(\n this.loading,\n () => html`\n <div class=\"loading-container\">\n <schmancy-spinner size=\"32px\"></schmancy-spinner>\n </div>\n `,\n () => when(\n this.error,\n () => html`\n <div class=\"error-container\">\n <svg class=\"error-icon\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\">\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" \n d=\"M12 9v2m0 4h.01m-6.938 4h13.856c1.54 0 2.502-1.667 1.732-2.5L13.732 4c-.77-.833-1.964-.833-2.732 0L4.082 16.5c-.77.833.192 2.5 1.732 2.5z\" />\n </svg>\n <div class=\"error-title\">Map could not be loaded</div>\n <div class=\"error-message\">${this.error}</div>\n </div>\n `,\n () => html`\n <div class=\"map-container\" ${ref(this.mapRef)}></div>\n `\n )\n )}\n `\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'schmancy-map': SchmancyMap\n }\n}"],"names":["GoogleMapsLoader","apiKey","window","google","maps","of","this","loading$","Observable","observer","next","complete","script","document","createElement","src","async","defer","initGoogleMaps","onerror","error","Error","head","appendChild","pipe","shareReplay","SchmancyMap","TailwindElement","css","constructor","super","arguments","address","zoom","height","marker","markerTitle","type","interactive","controls","loading","mapRef","createRef","hasLoadedMap","connectedCallback","style","setProperty","setupIntersectionObserver","disconnectedCallback","intersectionObserver","disconnect","IntersectionObserver","entries","forEach","entry","isIntersecting","loadMap","root","rootMargin","threshold","observe","tap","switchMap","load","getCoordinates","coordinates","pendingCoordinates","catchError","message","EMPTY","finalize","takeUntil","disconnecting","subscribe","geocodeAddress","latitude","longitude","lat","lng","geocoder","Geocoder","Promise","resolve","reject","geocode","results","status","location","geometry","value","mapOptions","center","mapTypeId","getMapTypeId","disableDefaultUI","gestureHandling","zoomControl","mapTypeControl","scaleControl","streetViewControl","rotateControl","fullscreenControl","styles","featureType","stylers","visibility","map","Map","addMarker","typeMap","roadmap","MapTypeId","ROADMAP","satellite","SATELLITE","hybrid","HYBRID","terrain","TERRAIN","mapMarker","Marker","position","title","changedProperties","updated","has","requestAnimationFrame","initializeMap","setTitle","render","html","when","ref","__decorateClass","property","String","prototype","Number","reflect","Boolean","state","customElement"],"mappings":"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"}
|
|
@@ -3,7 +3,7 @@ import { tap as c, switchMap as g, catchError as f, finalize as w, takeUntil as
|
|
|
3
3
|
import "lit/directives/class-map.js";
|
|
4
4
|
import "lit/directives/style-map.js";
|
|
5
5
|
import { property as a, state as m, customElement as M } from "lit/decorators.js";
|
|
6
|
-
import { T as x } from "./tailwind.mixin-
|
|
6
|
+
import { T as x } from "./tailwind.mixin-BgdEBNZM.js";
|
|
7
7
|
import { css as T, html as d } from "lit";
|
|
8
8
|
import { createRef as C, ref as I } from "lit/directives/ref.js";
|
|
9
9
|
import { when as y } from "lit/directives/when.js";
|
|
@@ -172,4 +172,4 @@ o([a({ type: String })], t.prototype, "address", 2), o([a({ type: Number })], t.
|
|
|
172
172
|
export {
|
|
173
173
|
t as S
|
|
174
174
|
};
|
|
175
|
-
//# sourceMappingURL=map-
|
|
175
|
+
//# sourceMappingURL=map-CNoi0TZi.js.map
|