@mhmo91/schmancy 0.4.1 → 0.4.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{animated-text-DBk95qoX.cjs → animated-text-C_ISIdDY.cjs} +2 -2
- package/dist/{animated-text-DBk95qoX.cjs.map → animated-text-C_ISIdDY.cjs.map} +1 -1
- package/dist/{animated-text-BhACpxZL.js → animated-text-DE4jCzlq.js} +3 -3
- package/dist/{animated-text-BhACpxZL.js.map → animated-text-DE4jCzlq.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-Bvd_wwUW.cjs +8 -0
- package/dist/{area.component-CbT_WCUv.cjs.map → area.component-Bvd_wwUW.cjs.map} +1 -1
- package/dist/{area.component-DX2Y6cAp.js → area.component-DQKc0WXK.js} +85 -90
- package/dist/{area.component-DX2Y6cAp.js.map → area.component-DQKc0WXK.js.map} +1 -1
- package/dist/area.js +1 -1
- package/dist/autocomplete-D_XhT92l.cjs +73 -0
- package/dist/{autocomplete-ByVC8MLH.cjs.map → autocomplete-D_XhT92l.cjs.map} +1 -1
- package/dist/autocomplete-ytqc1f_C.js +315 -0
- package/dist/{autocomplete-Qr_SNWus.js.map → autocomplete-ytqc1f_C.js.map} +1 -1
- package/dist/autocomplete.cjs +1 -1
- package/dist/autocomplete.js +1 -1
- package/dist/{avatar-Bqohpa1o.cjs → avatar-DkBLxCT2.cjs} +2 -2
- package/dist/{avatar-Bqohpa1o.cjs.map → avatar-DkBLxCT2.cjs.map} +1 -1
- package/dist/{avatar-BFxYkrCv.js → avatar-m6kOcWq2.js} +47 -47
- package/dist/{avatar-BFxYkrCv.js.map → avatar-m6kOcWq2.js.map} +1 -1
- package/dist/badge.cjs +1 -1
- package/dist/badge.js +1 -1
- package/dist/{boat-ZKuOCC1g.js → boat-BeW5NYdz.js} +2 -2
- package/dist/{boat-ZKuOCC1g.js.map → boat-BeW5NYdz.js.map} +1 -1
- package/dist/{boat-RaIwtGNW.cjs → boat-DigCNXsd.cjs} +2 -2
- package/dist/{boat-RaIwtGNW.cjs.map → boat-DigCNXsd.cjs.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-BZvRSKLj.cjs → checkbox-CFqvhybv.cjs} +4 -4
- package/dist/{checkbox-BZvRSKLj.cjs.map → checkbox-CFqvhybv.cjs.map} +1 -1
- package/dist/{checkbox-Cy3X3PGY.js → checkbox-DSEvvPj1.js} +31 -32
- package/dist/{checkbox-Cy3X3PGY.js.map → checkbox-DSEvvPj1.js.map} +1 -1
- package/dist/checkbox.cjs +1 -1
- package/dist/checkbox.js +1 -1
- package/dist/{chips-Y1qvw2Wa.js → chips-DCKLuDxP.js} +59 -61
- package/dist/{chips-Y1qvw2Wa.js.map → chips-DCKLuDxP.js.map} +1 -1
- package/dist/{chips-5IKm7m8x.cjs → chips-MCF53PoG.cjs} +25 -25
- package/dist/{chips-5IKm7m8x.cjs.map → chips-MCF53PoG.cjs.map} +1 -1
- package/dist/chips.cjs +1 -1
- package/dist/chips.js +1 -1
- package/dist/{circular-progress-BZwI11v0.cjs → circular-progress-CF0ow_gn.cjs} +2 -2
- package/dist/{circular-progress-BZwI11v0.cjs.map → circular-progress-CF0ow_gn.cjs.map} +1 -1
- package/dist/{circular-progress-utG8iIPV.js → circular-progress-CKlT4zjF.js} +3 -3
- package/dist/{circular-progress-utG8iIPV.js.map → circular-progress-CKlT4zjF.js.map} +1 -1
- package/dist/circular-progress.cjs +1 -1
- package/dist/circular-progress.js +1 -1
- package/dist/code-highlight.cjs +1 -1
- package/dist/code-highlight.js +1 -1
- package/dist/{code-preview-CN4mbrHE.cjs → code-preview-Cj_qRKC9.cjs} +9 -9
- package/dist/{code-preview-CN4mbrHE.cjs.map → code-preview-Cj_qRKC9.cjs.map} +1 -1
- package/dist/{code-preview-C_W44LD7.js → code-preview-CuDOLS91.js} +166 -168
- package/dist/{code-preview-C_W44LD7.js.map → code-preview-CuDOLS91.js.map} +1 -1
- package/dist/components.cjs +1 -1
- package/dist/components.js +1 -1
- package/dist/{consume-B05Dd6qy.js → consume-5D1qfVWM.js} +2 -2
- package/dist/{consume-B05Dd6qy.js.map → consume-5D1qfVWM.js.map} +1 -1
- package/dist/{consume-uKrSupzs.cjs → consume-edta5ng5.cjs} +2 -2
- package/dist/{consume-uKrSupzs.cjs.map → consume-edta5ng5.cjs.map} +1 -1
- package/dist/content-drawer.cjs +1 -1
- package/dist/content-drawer.js +1 -1
- package/dist/{context-object-CISes2bD.js → context-object-CDDP4bTk.js} +6 -8
- package/dist/{context-object-CISes2bD.js.map → context-object-CDDP4bTk.js.map} +1 -1
- package/dist/context-object-K_1gDFu-.cjs +2 -0
- package/dist/{context-object-CP7HbDFQ.cjs.map → context-object-K_1gDFu-.cjs.map} +1 -1
- package/dist/date-range-B2f1eXz0.cjs +139 -0
- package/dist/{date-range-Dff7Y8Ph.cjs.map → date-range-B2f1eXz0.cjs.map} +1 -1
- package/dist/{date-range-CIn-HKuL.js → date-range-CmeAQ5QS.js} +107 -108
- package/dist/{date-range-CIn-HKuL.js.map → date-range-CmeAQ5QS.js.map} +1 -1
- package/dist/date-range.cjs +1 -1
- package/dist/date-range.js +1 -1
- package/dist/delay-40MKpcZU.cjs +10 -0
- package/dist/{delay-CLGKeX0n.cjs.map → delay-40MKpcZU.cjs.map} +1 -1
- package/dist/{delay-Cd-N6nxZ.js → delay-pKHFTza9.js} +57 -70
- package/dist/{delay-Cd-N6nxZ.js.map → delay-pKHFTza9.js.map} +1 -1
- package/dist/delay.cjs +1 -1
- package/dist/delay.js +1 -1
- package/dist/{dialog-content-C835zQHB.js → dialog-content-B_fVl8nu.js} +9 -11
- package/dist/{dialog-content-C835zQHB.js.map → dialog-content-B_fVl8nu.js.map} +1 -1
- package/dist/{dialog-content-DWITDRHy.cjs → dialog-content-CkjibvSc.cjs} +4 -4
- package/dist/{dialog-content-DWITDRHy.cjs.map → dialog-content-CkjibvSc.cjs.map} +1 -1
- package/dist/dialog-service-BgqAlT7T.cjs +2 -0
- package/dist/{dialog-service-Di9NiBao.cjs.map → dialog-service-BgqAlT7T.cjs.map} +1 -1
- package/dist/dialog-service-CnjZCTMj.js +127 -0
- package/dist/{dialog-service-noGCuxg1.js.map → dialog-service-CnjZCTMj.js.map} +1 -1
- package/dist/dialog.cjs +1 -1
- package/dist/dialog.js +2 -2
- package/dist/{divider-C7UzzgIj.cjs → divider-BDgmQ4VQ.cjs} +2 -2
- package/dist/{divider-C7UzzgIj.cjs.map → divider-BDgmQ4VQ.cjs.map} +1 -1
- package/dist/{divider-D7pxxtTI.js → divider-njFvOEz7.js} +3 -3
- package/dist/{divider-D7pxxtTI.js.map → divider-njFvOEz7.js.map} +1 -1
- package/dist/divider.cjs +1 -1
- package/dist/divider.js +1 -1
- package/dist/{dropdown-content-DJFDnoKm.js → dropdown-content-C4o6Y70E.js} +16 -20
- package/dist/{dropdown-content-DJFDnoKm.js.map → dropdown-content-C4o6Y70E.js.map} +1 -1
- package/dist/{dropdown-content-RMyyjS7G.cjs → dropdown-content-CwEBCQTd.cjs} +4 -4
- package/dist/{dropdown-content-RMyyjS7G.cjs.map → dropdown-content-CwEBCQTd.cjs.map} +1 -1
- package/dist/dropdown.cjs +1 -1
- package/dist/dropdown.js +1 -1
- package/dist/extra.cjs +1 -1
- package/dist/extra.js +1 -1
- package/dist/{flex-Bu7OqH-d.js → flex-CbKzMNEV.js} +63 -64
- package/dist/{flex-Bu7OqH-d.js.map → flex-CbKzMNEV.js.map} +1 -1
- package/dist/{flex-Cg_UtAIG.cjs → flex-_h7Zh750.cjs} +10 -10
- package/dist/{flex-Cg_UtAIG.cjs.map → flex-_h7Zh750.cjs.map} +1 -1
- package/dist/flow-D0e7hGXO.cjs +2 -0
- package/dist/{flow-CnJl1T1A.cjs.map → flow-D0e7hGXO.cjs.map} +1 -1
- package/dist/{flow-B1wMqea2.js → flow-DXYqC9OA.js} +50 -52
- package/dist/{flow-B1wMqea2.js.map → flow-DXYqC9OA.js.map} +1 -1
- package/dist/{form-WeCrsPmp.js → form-eXTuXutS.js} +19 -28
- package/dist/{form-WeCrsPmp.js.map → form-eXTuXutS.js.map} +1 -1
- package/dist/form-gg5B6Dla.cjs +14 -0
- package/dist/{form-DzfdidJO.cjs.map → form-gg5B6Dla.cjs.map} +1 -1
- package/dist/form.cjs +1 -1
- package/dist/form.js +1 -1
- package/dist/{icon-Be8aUtz9.js → icon-as6C4b0_.js} +8 -9
- package/dist/{icon-Be8aUtz9.js.map → icon-as6C4b0_.js.map} +1 -1
- package/dist/icon-button-D5te6MSD.cjs +69 -0
- package/dist/{icon-button-DNvGlOPI.cjs.map → icon-button-D5te6MSD.cjs.map} +1 -1
- package/dist/{icon-button-Mfs7C_ol.js → icon-button-eM7fkcaa.js} +40 -41
- package/dist/{icon-button-Mfs7C_ol.js.map → icon-button-eM7fkcaa.js.map} +1 -1
- package/dist/{icon-4c4f-QXa.cjs → icon-lc9iKCzt.cjs} +4 -4
- package/dist/{icon-4c4f-QXa.cjs.map → icon-lc9iKCzt.cjs.map} +1 -1
- package/dist/icons.cjs +1 -1
- package/dist/icons.js +1 -1
- package/dist/index.cjs +1 -1
- package/dist/index.js +44 -44
- package/dist/{input-CpYu_aUV.js → input-C1JcUy_t.js} +86 -113
- package/dist/{input-CpYu_aUV.js.map → input-C1JcUy_t.js.map} +1 -1
- package/dist/input-KfFWcQk8.cjs +111 -0
- package/dist/{input-CD59n3y-.cjs.map → input-KfFWcQk8.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-kvjz9d5N.cjs → list-CZlCptFt.cjs} +4 -4
- package/dist/{list-kvjz9d5N.cjs.map → list-CZlCptFt.cjs.map} +1 -1
- package/dist/{list-DNZhjJ-s.js → list-Cn2oKOHN.js} +20 -21
- package/dist/{list-DNZhjJ-s.js.map → list-Cn2oKOHN.js.map} +1 -1
- package/dist/list.cjs +1 -1
- package/dist/list.js +1 -1
- package/dist/{litElement.mixin-CrXwM_fu.cjs → litElement.mixin-BFfWKABY.cjs} +2 -2
- package/dist/{litElement.mixin-CrXwM_fu.cjs.map → litElement.mixin-BFfWKABY.cjs.map} +1 -1
- package/dist/{litElement.mixin-DMTxmbnz.js → litElement.mixin-CUhEpTgZ.js} +2 -2
- package/dist/{litElement.mixin-DMTxmbnz.js.map → litElement.mixin-CUhEpTgZ.js.map} +1 -1
- package/dist/{menu-CzoGF0Jg.js → menu--0VMi_rl.js} +3 -3
- package/dist/{menu-CzoGF0Jg.js.map → menu--0VMi_rl.js.map} +1 -1
- package/dist/{menu-DSJGu_Le.cjs → menu-ChUQMNtl.cjs} +2 -2
- package/dist/{menu-DSJGu_Le.cjs.map → menu-ChUQMNtl.cjs.map} +1 -1
- package/dist/menu.cjs +1 -1
- package/dist/menu.js +1 -1
- package/dist/nav-drawer.cjs +1 -1
- package/dist/nav-drawer.js +1 -1
- package/dist/{notification-service-BUZQ2nOZ.js → notification-service-BSp9bz1i.js} +4 -4
- package/dist/{notification-service-BUZQ2nOZ.js.map → notification-service-BSp9bz1i.js.map} +1 -1
- package/dist/{notification-service-dKoZweFH.cjs → notification-service-Bick5tKQ.cjs} +6 -6
- package/dist/{notification-service-dKoZweFH.cjs.map → notification-service-Bick5tKQ.cjs.map} +1 -1
- package/dist/notification.cjs +1 -1
- package/dist/notification.js +1 -1
- package/dist/{option-dBiLTB_w.js → option-BBH03Xsg.js} +3 -4
- package/dist/{option-dBiLTB_w.js.map → option-BBH03Xsg.js.map} +1 -1
- package/dist/{option-BXU6HGLZ.cjs → option-C_1a_vzI.cjs} +3 -3
- package/dist/{option-BXU6HGLZ.cjs.map → option-C_1a_vzI.cjs.map} +1 -1
- package/dist/option.cjs +1 -1
- package/dist/option.js +1 -1
- package/dist/{payment-card-form-HSho3d5z.cjs → payment-card-form-DDhg71fA.cjs} +2 -2
- package/dist/{payment-card-form-HSho3d5z.cjs.map → payment-card-form-DDhg71fA.cjs.map} +1 -1
- package/dist/{payment-card-form-Bhy7PHzr.js → payment-card-form-DgkNJsE1.js} +3 -3
- package/dist/{payment-card-form-Bhy7PHzr.js.map → payment-card-form-DgkNJsE1.js.map} +1 -1
- package/dist/provide-BxZ2kn_p.cjs +2 -0
- package/dist/{provide-BGGp1Iks.cjs.map → provide-BxZ2kn_p.cjs.map} +1 -1
- package/dist/{provide-hwQSumt-.js → provide-tcktw8xB.js} +41 -42
- package/dist/{provide-hwQSumt-.js.map → provide-tcktw8xB.js.map} +1 -1
- package/dist/radio-button-CCsCtUkU.cjs +41 -0
- package/dist/{radio-button-dwmtJ2ef.cjs.map → radio-button-CCsCtUkU.cjs.map} +1 -1
- package/dist/radio-button-Cuo-ybx9.js +151 -0
- package/dist/{radio-button-DDbyvXw1.js.map → radio-button-Cuo-ybx9.js.map} +1 -1
- package/dist/radio-group.cjs +1 -1
- package/dist/radio-group.js +1 -1
- package/dist/{redispatch-event-CF5ekzwZ.js → redispatch-event-BLom7yp4.js} +65 -68
- package/dist/{redispatch-event-CF5ekzwZ.js.map → redispatch-event-BLom7yp4.js.map} +1 -1
- package/dist/redispatch-event-DHcobAl6.cjs +4 -0
- package/dist/{redispatch-event-roczetCU.cjs.map → redispatch-event-DHcobAl6.cjs.map} +1 -1
- package/dist/{schmancy-steps-container-BrfKRYkI.js → schmancy-steps-container-CmGuY9sB.js} +5 -6
- package/dist/{schmancy-steps-container-BrfKRYkI.js.map → schmancy-steps-container-CmGuY9sB.js.map} +1 -1
- package/dist/{schmancy-steps-container-COL9P7PV.cjs → schmancy-steps-container-CqsMA2he.cjs} +3 -3
- package/dist/{schmancy-steps-container-COL9P7PV.cjs.map → schmancy-steps-container-CqsMA2he.cjs.map} +1 -1
- package/dist/{select-C6O6NRea.js → select-ChxNr4a9.js} +46 -56
- package/dist/{select-C6O6NRea.js.map → select-ChxNr4a9.js.map} +1 -1
- package/dist/select-fZ2PlQ_3.cjs +56 -0
- package/dist/{select-PrgXr6zf.cjs.map → select-fZ2PlQ_3.cjs.map} +1 -1
- package/dist/select.cjs +1 -1
- package/dist/select.js +1 -1
- package/dist/{selector-hook-B6uqLA-J.js → selector-hook-BvXML7_4.js} +61 -64
- package/dist/{selector-hook-B6uqLA-J.js.map → selector-hook-BvXML7_4.js.map} +1 -1
- package/dist/selector-hook-CYMLsOvh.cjs +2 -0
- package/dist/{selector-hook-CyvD9WN9.cjs.map → selector-hook-CYMLsOvh.cjs.map} +1 -1
- package/dist/sheet-2FAz4r9B.js +141 -0
- package/dist/{sheet-lcz-71nv.js.map → sheet-2FAz4r9B.js.map} +1 -1
- package/dist/sheet-CaUlNTdn.cjs +47 -0
- package/dist/{sheet-CNvW8vrn.cjs.map → sheet-CaUlNTdn.cjs.map} +1 -1
- package/dist/sheet.cjs +1 -1
- package/dist/sheet.js +2 -2
- package/dist/{slider-BNXI3Yj7.cjs → slider-CHlXZvPb.cjs} +8 -8
- package/dist/{slider-BNXI3Yj7.cjs.map → slider-CHlXZvPb.cjs.map} +1 -1
- package/dist/{slider-i-AZp4UF.js → slider-DU3_sk4c.js} +36 -40
- package/dist/{slider-i-AZp4UF.js.map → slider-DU3_sk4c.js.map} +1 -1
- package/dist/slider.cjs +1 -1
- package/dist/slider.js +1 -1
- package/dist/{spinner-DItpvohq.cjs → spinner-D064VAQ0.cjs} +2 -2
- package/dist/{spinner-DItpvohq.cjs.map → spinner-D064VAQ0.cjs.map} +1 -1
- package/dist/{spinner-Df6JHzWX.js → spinner-RvzzGIF-.js} +3 -3
- package/dist/{spinner-Df6JHzWX.js.map → spinner-RvzzGIF-.js.map} +1 -1
- package/dist/steps.cjs +1 -1
- package/dist/steps.js +1 -1
- package/dist/store.cjs +1 -1
- package/dist/store.js +2 -2
- package/dist/{surface-DiP3y6CA.cjs → surface-B3UkH65j.cjs} +2 -2
- package/dist/{surface-DiP3y6CA.cjs.map → surface-B3UkH65j.cjs.map} +1 -1
- package/dist/{surface-BaatMeqX.js → surface-s7dL8dsr.js} +3 -3
- package/dist/{surface-BaatMeqX.js.map → surface-s7dL8dsr.js.map} +1 -1
- package/dist/surface.cjs +1 -1
- package/dist/surface.js +1 -1
- package/dist/table-BrbO5sO5.cjs +65 -0
- package/dist/{table-BRQDbCA8.cjs.map → table-BrbO5sO5.cjs.map} +1 -1
- package/dist/{table-BY56H-_F.js → table-DzYvbr4k.js} +58 -68
- package/dist/{table-BY56H-_F.js.map → table-DzYvbr4k.js.map} +1 -1
- package/dist/table.cjs +1 -1
- package/dist/table.js +1 -1
- package/dist/{tabs-compatibility-pq--kZ3e.cjs → tabs-compatibility-CGG-7f7V.cjs} +5 -5
- package/dist/{tabs-compatibility-pq--kZ3e.cjs.map → tabs-compatibility-CGG-7f7V.cjs.map} +1 -1
- package/dist/{tabs-compatibility-qFYA1HDl.js → tabs-compatibility-vhn4Kp7N.js} +20 -21
- package/dist/{tabs-compatibility-qFYA1HDl.js.map → tabs-compatibility-vhn4Kp7N.js.map} +1 -1
- package/dist/tabs.cjs +1 -1
- package/dist/tabs.js +1 -1
- package/dist/tailwind.mixin-CgPd8dM4.cjs +2 -0
- package/dist/{tailwind.mixin-CPvz1Npj.cjs.map → tailwind.mixin-CgPd8dM4.cjs.map} +1 -1
- package/dist/tailwind.mixin-t3Yj_Xbu.js +43 -0
- package/dist/{tailwind.mixin-DbsxfE0U.js.map → tailwind.mixin-t3Yj_Xbu.js.map} +1 -1
- package/dist/teleport.cjs +1 -1
- package/dist/teleport.js +1 -1
- package/dist/{textarea-DPD_F-N6.cjs → textarea-BqzHPEaR.cjs} +12 -12
- package/dist/{textarea-DPD_F-N6.cjs.map → textarea-BqzHPEaR.cjs.map} +1 -1
- package/dist/{textarea-D2m3usht.js → textarea-DB4ma3Yk.js} +31 -45
- package/dist/{textarea-D2m3usht.js.map → textarea-DB4ma3Yk.js.map} +1 -1
- package/dist/textarea.cjs +1 -1
- package/dist/textarea.js +1 -1
- package/dist/{theme-button-ucq2VrW0.js → theme-button-DiugvNq0.js} +2 -2
- package/dist/{theme-button-ucq2VrW0.js.map → theme-button-DiugvNq0.js.map} +1 -1
- package/dist/{theme-button-0dEQlWtO.cjs → theme-button-X1T0K-rT.cjs} +2 -2
- package/dist/{theme-button-0dEQlWtO.cjs.map → theme-button-X1T0K-rT.cjs.map} +1 -1
- package/dist/theme-button.cjs +1 -1
- package/dist/theme-button.js +1 -1
- package/dist/theme.cjs +1 -1
- package/dist/{theme.component-DOSuAou9.js → theme.component-DGfwQDsP.js} +7 -8
- package/dist/{theme.component-DOSuAou9.js.map → theme.component-DGfwQDsP.js.map} +1 -1
- package/dist/{theme.component-E4gA7t5r.cjs → theme.component-GbvYp0sg.cjs} +2 -2
- package/dist/{theme.component-E4gA7t5r.cjs.map → theme.component-GbvYp0sg.cjs.map} +1 -1
- package/dist/theme.js +1 -1
- package/dist/{timezone-Bf4J_3By.cjs → timezone-Bp8z4kRR.cjs} +6 -6
- package/dist/{timezone-Bf4J_3By.cjs.map → timezone-Bp8z4kRR.cjs.map} +1 -1
- package/dist/{timezone-xOWMbSDV.js → timezone-pKGsUkVR.js} +22 -28
- package/dist/{timezone-xOWMbSDV.js.map → timezone-pKGsUkVR.js.map} +1 -1
- package/dist/tooltip-DO_tqLiU.cjs +7 -0
- package/dist/{tooltip-6a1_bSeD.cjs.map → tooltip-DO_tqLiU.cjs.map} +1 -1
- package/dist/{tooltip-zsp-xmPP.js → tooltip-OGPdu-15.js} +29 -31
- package/dist/{tooltip-zsp-xmPP.js.map → tooltip-OGPdu-15.js.map} +1 -1
- package/dist/tooltip.cjs +1 -1
- package/dist/tooltip.js +1 -1
- package/dist/{tree-D0FCXUWg.js → tree-BLnyRUxk.js} +2 -2
- package/dist/{tree-D0FCXUWg.js.map → tree-BLnyRUxk.js.map} +1 -1
- package/dist/{tree-DRa2127p.cjs → tree-Cj9dq4FW.cjs} +2 -2
- package/dist/{tree-DRa2127p.cjs.map → tree-Cj9dq4FW.cjs.map} +1 -1
- package/dist/tree.cjs +1 -1
- package/dist/tree.js +1 -1
- package/dist/typewriter-CLh00Uvc.cjs +21 -0
- package/dist/{typewriter-XTltzkLy.cjs.map → typewriter-CLh00Uvc.cjs.map} +1 -1
- package/dist/typewriter-P4fs9-rU.js +437 -0
- package/dist/{typewriter-BNTzu9jY.js.map → typewriter-P4fs9-rU.js.map} +1 -1
- package/dist/typewriter.cjs +1 -1
- package/dist/typewriter.js +1 -1
- package/dist/{typography-nVG55_Y6.cjs → typography-BOogKO97.cjs} +2 -2
- package/dist/{typography-nVG55_Y6.cjs.map → typography-BOogKO97.cjs.map} +1 -1
- package/dist/{typography-DCP0jC-m.js → typography-BouLjmvn.js} +2 -2
- package/dist/{typography-DCP0jC-m.js.map → typography-BouLjmvn.js.map} +1 -1
- package/dist/typography.cjs +1 -1
- package/dist/typography.js +1 -1
- package/package.json +14 -17
- package/dist/area.component-CbT_WCUv.cjs +0 -8
- package/dist/autocomplete-ByVC8MLH.cjs +0 -73
- package/dist/autocomplete-Qr_SNWus.js +0 -324
- package/dist/context-object-CP7HbDFQ.cjs +0 -2
- package/dist/date-range-Dff7Y8Ph.cjs +0 -139
- package/dist/delay-CLGKeX0n.cjs +0 -10
- package/dist/dialog-service-Di9NiBao.cjs +0 -2
- package/dist/dialog-service-noGCuxg1.js +0 -127
- package/dist/flow-CnJl1T1A.cjs +0 -2
- package/dist/form-DzfdidJO.cjs +0 -14
- package/dist/icon-button-DNvGlOPI.cjs +0 -69
- package/dist/input-CD59n3y-.cjs +0 -111
- package/dist/provide-BGGp1Iks.cjs +0 -2
- package/dist/radio-button-DDbyvXw1.js +0 -157
- package/dist/radio-button-dwmtJ2ef.cjs +0 -41
- package/dist/redispatch-event-roczetCU.cjs +0 -4
- package/dist/select-PrgXr6zf.cjs +0 -56
- package/dist/selector-hook-CyvD9WN9.cjs +0 -2
- package/dist/sheet-CNvW8vrn.cjs +0 -47
- package/dist/sheet-lcz-71nv.js +0 -146
- package/dist/table-BRQDbCA8.cjs +0 -65
- package/dist/tailwind.mixin-CPvz1Npj.cjs +0 -2
- package/dist/tailwind.mixin-DbsxfE0U.js +0 -43
- package/dist/tooltip-6a1_bSeD.cjs +0 -7
- package/dist/typewriter-BNTzu9jY.js +0 -436
- package/dist/typewriter-XTltzkLy.cjs +0 -21
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dropdown-content-DJFDnoKm.js","sources":["../src/dropdown/dropdown-component.ts","../src/dropdown/dropdown-content.ts"],"sourcesContent":["import { autoUpdate, computePosition, flip, offset, shift } from '@floating-ui/dom'\nimport { $LitElement } from '@mixins/index'\nimport { css, html } from 'lit'\nimport { customElement, property, query, queryAssignedElements, state } from 'lit/decorators.js'\nimport { filter, fromEvent, takeUntil } from 'rxjs'\n\n/**\n * A dropdown component that displays content when triggered.\n *\n * @element schmancy-dropdown\n * @slot trigger - The element that triggers the dropdown\n * @slot - Default slot for the dropdown content\n */\n@customElement('schmancy-dropdown')\nexport class SchmancyDropdown extends $LitElement(css`\n\t:host {\n\t\tdisplay: inline-block;\n\t\tposition: relative;\n\t}\n`) {\n\t/**\n\t * Whether the dropdown is currently open\n\t */\n\t@property({ type: Boolean, reflect: true })\n\topen = false\n\n\t/**\n\t * Placement of the dropdown relative to the trigger\n\t */\n\t@property({ type: String })\n\tplacement:\n\t\t| 'top'\n\t\t| 'top-start'\n\t\t| 'top-end'\n\t\t| 'right'\n\t\t| 'right-start'\n\t\t| 'right-end'\n\t\t| 'bottom'\n\t\t| 'bottom-start'\n\t\t| 'bottom-end'\n\t\t| 'left'\n\t\t| 'left-start'\n\t\t| 'left-end' = 'bottom-start'\n\n\t/**\n\t * Offset distance in pixels\n\t */\n\t@property({ type: Number })\n\tdistance = 8\n\n\t@query('.trigger-container') triggerContainer!: HTMLElement\n\t@query('.dropdown-content-container') contentContainer!: HTMLElement\n\t@queryAssignedElements({ flatten: true }) contentElements!: HTMLElement[]\n\t@state() private portal: HTMLElement | null = null\n\n\t@queryAssignedElements({ slot: 'trigger', flatten: true })\n\ttriggerElements!: Array<HTMLElement>\n\n\tprivate cleanupPositioner?: () => void\n\n\tconnectedCallback() {\n\t\tsuper.connectedCallback()\n\n\t\t// Create portal container for teleporting content to document body\n\t\tthis.setupPortal()\n\n\t\t// Listen for document clicks to close dropdown when clicking outside\n\t\tfromEvent<MouseEvent>(document, 'click')\n\t\t\t.pipe(\n\t\t\t\tfilter(event => this.open && !this.isEventFromSelf(event)),\n\t\t\t\ttakeUntil(this.disconnecting),\n\t\t\t)\n\t\t\t.subscribe(() => {\n\t\t\t\tthis.open = false\n\t\t\t})\n\n\t\t// Listen for escape key to close dropdown\n\t\tfromEvent<KeyboardEvent>(document, 'keydown')\n\t\t\t.pipe(\n\t\t\t\tfilter(event => this.open && event.key === 'Escape'),\n\t\t\t\ttakeUntil(this.disconnecting),\n\t\t\t)\n\t\t\t.subscribe(() => {\n\t\t\t\tthis.open = false\n\t\t\t})\n\t}\n\n\t/**\n\t * Set up the portal element for teleporting content\n\t */\n\tprivate setupPortal() {\n\t\t// Check if portal container exists\n\t\tlet portalContainer = document.getElementById('schmancy-portal-container')\n\n\t\t// Create portal container if it doesn't exist\n\t\tif (!portalContainer) {\n\t\t\tportalContainer = document.createElement('div')\n\t\t\tportalContainer.id = 'schmancy-portal-container'\n\t\t\tportalContainer.style.position = 'fixed'\n\t\t\tportalContainer.style.zIndex = '10000'\n\t\t\tportalContainer.style.top = '0'\n\t\t\tportalContainer.style.left = '0'\n\t\t\tportalContainer.style.pointerEvents = 'none'\n\t\t\tdocument.body.appendChild(portalContainer)\n\t\t}\n\n\t\t// Create portal for this specific dropdown\n\t\tconst portal = document.createElement('div')\n\t\tportal.className = 'schmancy-dropdown-portal'\n\t\tportal.style.position = 'absolute'\n\t\tportal.style.pointerEvents = 'auto'\n\t\tportal.style.display = 'none'\n\t\tportalContainer.appendChild(portal)\n\n\t\tthis.portal = portal\n\t}\n\n\t/**\n\t * Check if an event originated from within this component\n\t */\n\tprivate isEventFromSelf(event: Event): boolean {\n\t\treturn event.composedPath().some(el => el === this)\n\t}\n\n\tdisconnectedCallback() {\n\t\tthis.cleanupPositioner?.()\n\n\t\t// Remove portal when component is disconnected\n\t\tif (this.portal) {\n\t\t\tthis.portal.remove()\n\t\t\tthis.portal = null\n\t\t}\n\n\t\tsuper.disconnectedCallback()\n\t}\n\n\t/**\n\t * Toggle the dropdown open state\n\t */\n\ttoggle() {\n\t\tthis.open = !this.open\n\t}\n\n\tupdated(changedProps: Map<string, any>) {\n\t\tsuper.updated(changedProps)\n\n\t\tif (changedProps.has('open')) {\n\t\t\tif (this.open) {\n\t\t\t\tthis.setupPositioner()\n\t\t\t} else {\n\t\t\t\tthis.cleanupPositioner?.()\n\n\t\t\t\t// Hide portal when dropdown is closed\n\t\t\t\tif (this.portal) {\n\t\t\t\t\tthis.portal.style.display = 'none'\n\t\t\t\t\tthis.portal.innerHTML = ''\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Setup floating UI positioning with teleportation\n\t */\n\tprivate setupPositioner() {\n\t\tif (!this.triggerContainer || !this.portal) return\n\n\t\t// Show the portal\n\t\tthis.portal.style.display = 'block'\n\n\t\t// Move content to portal\n\t\tthis.teleportContentToPortal()\n\n\t\t// Setup positioning\n\t\tthis.cleanupPositioner = autoUpdate(this.triggerContainer, this.portal, () => {\n\t\t\tcomputePosition(this.triggerContainer, this.portal, {\n\t\t\t\tplacement: this.placement,\n\t\t\t\tmiddleware: [\n\t\t\t\t\toffset(this.distance),\n\t\t\t\t\tflip({\n\t\t\t\t\t\tfallbackPlacements: ['top-start', 'bottom-start'],\n\t\t\t\t\t}),\n\t\t\t\t\tshift({ padding: 0 }),\n\t\t\t\t],\n\t\t\t}).then(({ x, y }) => {\n\t\t\t\t// Update portal position\n\t\t\t\tObject.assign(this.portal.style, {\n\t\t\t\t\tleft: `${x}px`,\n\t\t\t\t\ttop: `${y - 8}px`,\n\t\t\t\t})\n\t\t\t})\n\t\t})\n\t}\n\n\t/**\n\t * Move slotted content to the portal\n\t */\n\tprivate teleportContentToPortal() {\n\t\tif (!this.portal) return\n\n\t\t// Clear existing content\n\t\tthis.portal.innerHTML = ''\n\n\t\t// Clone and move slotted content to portal\n\t\tthis.contentElements.forEach(element => {\n\t\t\t// Get computed styles to ensure portal content matches original styling\n\t\t\tconst clonedElement = element.cloneNode(true) as HTMLElement\n\n\t\t\t// Ensure dropdown-content elements maintain their styles when teleported\n\t\t\tif (element.tagName.toLowerCase() === 'schmancy-dropdown-content') {\n\t\t\t\tclonedElement.addEventListener('slotchange', () => {\n\t\t\t\t\t// Propagate any slot changes to class changes on children\n\t\t\t\t\tconst contentDiv = clonedElement.shadowRoot?.querySelector('[part=\"content\"]')\n\t\t\t\t\tif (contentDiv) {\n\t\t\t\t\t\tcontentDiv.classList.add('schmancy-dropdown-content')\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t}\n\n\t\t\tthis.portal?.appendChild(clonedElement)\n\t\t})\n\t}\n\n\t/**\n\t * Handle trigger click to toggle dropdown\n\t */\n\tprivate handleTriggerClick(e: Event) {\n\t\te.stopPropagation()\n\t\tthis.toggle()\n\t}\n\n\trender() {\n\t\treturn html`\n\t\t\t<div class=\"trigger-container\" @click=${this.handleTriggerClick}>\n\t\t\t\t<slot name=\"trigger\"></slot>\n\t\t\t</div>\n\n\t\t\t<div class=\"dropdown-content-container\" ?hidden=${!this.open}>\n\t\t\t\t<slot\n\t\t\t\t\t@slotchange=${() => {\n\t\t\t\t\t\tif (this.open) {\n\t\t\t\t\t\t\tthis.teleportContentToPortal()\n\t\t\t\t\t\t\tthis.setupPositioner()\n\t\t\t\t\t\t}\n\t\t\t\t\t}}\n\t\t\t\t></slot>\n\t\t\t</div>\n\t\t`\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-dropdown': SchmancyDropdown\n\t}\n}\n","import { TailwindElement } from '@mixins/index'\nimport { css, html } from 'lit'\nimport { customElement, property } from 'lit/decorators.js'\n\n/**\n * Content container for the schmancy-dropdown component.\n *\n * @element schmancy-dropdown-content\n * @slot - Default slot for dropdown content\n */\n@customElement('schmancy-dropdown-content')\nexport class SchmancyDropdownContent extends TailwindElement(css`\n\t:host {\n\t\tdisplay: block;\n\t\tposition: absolute;\n\t\tz-index: 1000;\n\t\tmin-width: 10rem;\n\t\tmargin: 0;\n\t\ttext-align: left;\n\t\tlist-style: none;\n\t\tbackground-color: var(--schmancy-sys-color-surface-container);\n\t\tbackground-clip: padding-box;\n\t\tborder-radius: 0.375rem;\n\t\tbox-shadow: var(--schmancy-sys-elevation-3);\n\t\twill-change: transform;\n\t\ttransform-origin: top left;\n\t\tanimation: dropdownAnimation 0.1s ease-out forwards;\n\t}\n\n\t:host([hidden]) {\n\t\tdisplay: none;\n\t}\n\n\t@keyframes dropdownAnimation {\n\t\tfrom {\n\t\t\topacity: 0;\n\t\t\ttransform: scale(0.95);\n\t\t}\n\t\tto {\n\t\t\topacity: 1;\n\t\t\ttransform: scale(1);\n\t\t}\n\t}\n\n\t/* Apply styles to content both in the component and when teleported to the portal */\n\t.schmancy-dropdown-content {\n\t\tbackground-color: var(--schmancy-sys-color-surface-container);\n\t\tborder-radius: 0.375rem;\n\t\tbox-shadow: var(--schmancy-sys-elevation-3);\n\t\twill-change: transform;\n\t\ttransform-origin: top left;\n\t\tanimation: dropdownAnimation 0.1s ease-out forwards;\n\t}\n`) {\n\t/**\n\t * Width of the dropdown content\n\t */\n\t@property({ type: String })\n\twidth: string = 'auto'\n\n\t/**\n\t * Maximum height of the dropdown content\n\t */\n\t@property({ type: String })\n\tmaxHeight: string = '80vh'\n\n\t/**\n\t * Whether to render with a shadow\n\t */\n\t@property({ type: Boolean })\n\tshadow: boolean = true\n\n\t/**\n\t * Border radius style\n\t */\n\t@property({ type: String })\n\tradius: 'none' | 'sm' | 'md' | 'lg' | 'full' = 'md'\n\n\trender() {\n\t\tconst classes = {\n\t\t\t'schmancy-dropdown-content': true,\n\t\t\t'overflow-auto': true,\n\t\t\t'shadow-none': !this.shadow,\n\t\t\t'rounded-none': this.radius === 'none',\n\t\t\t'rounded-sm': this.radius === 'sm',\n\t\t\t'rounded-md': this.radius === 'md',\n\t\t\t'rounded-lg': this.radius === 'lg',\n\t\t\t'rounded-full': this.radius === 'full',\n\t\t}\n\n\t\tconst styles = {\n\t\t\twidth: this.width,\n\t\t\tmaxHeight: this.maxHeight,\n\t\t}\n\n\t\treturn html`\n\t\t\t<div class=${this.classMap(classes)} style=${this.styleMap(styles)} part=\"content\">\n\t\t\t\t<slot></slot>\n\t\t\t</div>\n\t\t`\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-dropdown-content': SchmancyDropdownContent\n\t}\n}\n"],"names":["SchmancyDropdown","$LitElement","css","super","arguments","this","open","placement","distance","portal","connectedCallback","setupPortal","fromEvent","document","pipe","filter","isEventFromSelf","event","takeUntil","disconnecting","subscribe","key","portalContainer","getElementById","createElement","id","style","position","zIndex","top","left","pointerEvents","body","appendChild","className","display","composedPath","some","el","cleanupPositioner","remove","disconnectedCallback","changedProps","updated","has","setupPositioner","innerHTML","triggerContainer","teleportContentToPortal","autoUpdate","computePosition","middleware","offset","flip","fallbackPlacements","shift","padding","then","x","y","Object","assign","contentElements","forEach","element","clonedElement","cloneNode","tagName","toLowerCase","addEventListener","contentDiv","shadowRoot","querySelector","classList","add","e","stopPropagation","toggle","render","html","handleTriggerClick","__decorateClass","property","type","Boolean","reflect","prototype","String","Number","query","queryAssignedElements","flatten","state","slot","customElement","SchmancyDropdownContent","TailwindElement","constructor","width","maxHeight","shadow","radius","classes","styles","classMap","styleMap"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"dropdown-content-C4o6Y70E.js","sources":["../src/dropdown/dropdown-component.ts","../src/dropdown/dropdown-content.ts"],"sourcesContent":["import { autoUpdate, computePosition, flip, offset, shift } from '@floating-ui/dom'\nimport { $LitElement } from '@mixins/index'\nimport { css, html } from 'lit'\nimport { customElement, property, query, queryAssignedElements, state } from 'lit/decorators.js'\nimport { filter, fromEvent, takeUntil } from 'rxjs'\n\n/**\n * A dropdown component that displays content when triggered.\n *\n * @element schmancy-dropdown\n * @slot trigger - The element that triggers the dropdown\n * @slot - Default slot for the dropdown content\n */\n@customElement('schmancy-dropdown')\nexport class SchmancyDropdown extends $LitElement(css`\n\t:host {\n\t\tdisplay: inline-block;\n\t\tposition: relative;\n\t}\n`) {\n\t/**\n\t * Whether the dropdown is currently open\n\t */\n\t@property({ type: Boolean, reflect: true })\n\topen = false\n\n\t/**\n\t * Placement of the dropdown relative to the trigger\n\t */\n\t@property({ type: String })\n\tplacement:\n\t\t| 'top'\n\t\t| 'top-start'\n\t\t| 'top-end'\n\t\t| 'right'\n\t\t| 'right-start'\n\t\t| 'right-end'\n\t\t| 'bottom'\n\t\t| 'bottom-start'\n\t\t| 'bottom-end'\n\t\t| 'left'\n\t\t| 'left-start'\n\t\t| 'left-end' = 'bottom-start'\n\n\t/**\n\t * Offset distance in pixels\n\t */\n\t@property({ type: Number })\n\tdistance = 8\n\n\t@query('.trigger-container') triggerContainer!: HTMLElement\n\t@query('.dropdown-content-container') contentContainer!: HTMLElement\n\t@queryAssignedElements({ flatten: true }) contentElements!: HTMLElement[]\n\t@state() private portal: HTMLElement | null = null\n\n\t@queryAssignedElements({ slot: 'trigger', flatten: true })\n\ttriggerElements!: Array<HTMLElement>\n\n\tprivate cleanupPositioner?: () => void\n\n\tconnectedCallback() {\n\t\tsuper.connectedCallback()\n\n\t\t// Create portal container for teleporting content to document body\n\t\tthis.setupPortal()\n\n\t\t// Listen for document clicks to close dropdown when clicking outside\n\t\tfromEvent<MouseEvent>(document, 'click')\n\t\t\t.pipe(\n\t\t\t\tfilter(event => this.open && !this.isEventFromSelf(event)),\n\t\t\t\ttakeUntil(this.disconnecting),\n\t\t\t)\n\t\t\t.subscribe(() => {\n\t\t\t\tthis.open = false\n\t\t\t})\n\n\t\t// Listen for escape key to close dropdown\n\t\tfromEvent<KeyboardEvent>(document, 'keydown')\n\t\t\t.pipe(\n\t\t\t\tfilter(event => this.open && event.key === 'Escape'),\n\t\t\t\ttakeUntil(this.disconnecting),\n\t\t\t)\n\t\t\t.subscribe(() => {\n\t\t\t\tthis.open = false\n\t\t\t})\n\t}\n\n\t/**\n\t * Set up the portal element for teleporting content\n\t */\n\tprivate setupPortal() {\n\t\t// Check if portal container exists\n\t\tlet portalContainer = document.getElementById('schmancy-portal-container')\n\n\t\t// Create portal container if it doesn't exist\n\t\tif (!portalContainer) {\n\t\t\tportalContainer = document.createElement('div')\n\t\t\tportalContainer.id = 'schmancy-portal-container'\n\t\t\tportalContainer.style.position = 'fixed'\n\t\t\tportalContainer.style.zIndex = '10000'\n\t\t\tportalContainer.style.top = '0'\n\t\t\tportalContainer.style.left = '0'\n\t\t\tportalContainer.style.pointerEvents = 'none'\n\t\t\tdocument.body.appendChild(portalContainer)\n\t\t}\n\n\t\t// Create portal for this specific dropdown\n\t\tconst portal = document.createElement('div')\n\t\tportal.className = 'schmancy-dropdown-portal'\n\t\tportal.style.position = 'absolute'\n\t\tportal.style.pointerEvents = 'auto'\n\t\tportal.style.display = 'none'\n\t\tportalContainer.appendChild(portal)\n\n\t\tthis.portal = portal\n\t}\n\n\t/**\n\t * Check if an event originated from within this component\n\t */\n\tprivate isEventFromSelf(event: Event): boolean {\n\t\treturn event.composedPath().some(el => el === this)\n\t}\n\n\tdisconnectedCallback() {\n\t\tthis.cleanupPositioner?.()\n\n\t\t// Remove portal when component is disconnected\n\t\tif (this.portal) {\n\t\t\tthis.portal.remove()\n\t\t\tthis.portal = null\n\t\t}\n\n\t\tsuper.disconnectedCallback()\n\t}\n\n\t/**\n\t * Toggle the dropdown open state\n\t */\n\ttoggle() {\n\t\tthis.open = !this.open\n\t}\n\n\tupdated(changedProps: Map<string, any>) {\n\t\tsuper.updated(changedProps)\n\n\t\tif (changedProps.has('open')) {\n\t\t\tif (this.open) {\n\t\t\t\tthis.setupPositioner()\n\t\t\t} else {\n\t\t\t\tthis.cleanupPositioner?.()\n\n\t\t\t\t// Hide portal when dropdown is closed\n\t\t\t\tif (this.portal) {\n\t\t\t\t\tthis.portal.style.display = 'none'\n\t\t\t\t\tthis.portal.innerHTML = ''\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Setup floating UI positioning with teleportation\n\t */\n\tprivate setupPositioner() {\n\t\tif (!this.triggerContainer || !this.portal) return\n\n\t\t// Show the portal\n\t\tthis.portal.style.display = 'block'\n\n\t\t// Move content to portal\n\t\tthis.teleportContentToPortal()\n\n\t\t// Setup positioning\n\t\tthis.cleanupPositioner = autoUpdate(this.triggerContainer, this.portal, () => {\n\t\t\tcomputePosition(this.triggerContainer, this.portal, {\n\t\t\t\tplacement: this.placement,\n\t\t\t\tmiddleware: [\n\t\t\t\t\toffset(this.distance),\n\t\t\t\t\tflip({\n\t\t\t\t\t\tfallbackPlacements: ['top-start', 'bottom-start'],\n\t\t\t\t\t}),\n\t\t\t\t\tshift({ padding: 0 }),\n\t\t\t\t],\n\t\t\t}).then(({ x, y }) => {\n\t\t\t\t// Update portal position\n\t\t\t\tObject.assign(this.portal.style, {\n\t\t\t\t\tleft: `${x}px`,\n\t\t\t\t\ttop: `${y - 8}px`,\n\t\t\t\t})\n\t\t\t})\n\t\t})\n\t}\n\n\t/**\n\t * Move slotted content to the portal\n\t */\n\tprivate teleportContentToPortal() {\n\t\tif (!this.portal) return\n\n\t\t// Clear existing content\n\t\tthis.portal.innerHTML = ''\n\n\t\t// Clone and move slotted content to portal\n\t\tthis.contentElements.forEach(element => {\n\t\t\t// Get computed styles to ensure portal content matches original styling\n\t\t\tconst clonedElement = element.cloneNode(true) as HTMLElement\n\n\t\t\t// Ensure dropdown-content elements maintain their styles when teleported\n\t\t\tif (element.tagName.toLowerCase() === 'schmancy-dropdown-content') {\n\t\t\t\tclonedElement.addEventListener('slotchange', () => {\n\t\t\t\t\t// Propagate any slot changes to class changes on children\n\t\t\t\t\tconst contentDiv = clonedElement.shadowRoot?.querySelector('[part=\"content\"]')\n\t\t\t\t\tif (contentDiv) {\n\t\t\t\t\t\tcontentDiv.classList.add('schmancy-dropdown-content')\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t}\n\n\t\t\tthis.portal?.appendChild(clonedElement)\n\t\t})\n\t}\n\n\t/**\n\t * Handle trigger click to toggle dropdown\n\t */\n\tprivate handleTriggerClick(e: Event) {\n\t\te.stopPropagation()\n\t\tthis.toggle()\n\t}\n\n\trender() {\n\t\treturn html`\n\t\t\t<div class=\"trigger-container\" @click=${this.handleTriggerClick}>\n\t\t\t\t<slot name=\"trigger\"></slot>\n\t\t\t</div>\n\n\t\t\t<div class=\"dropdown-content-container\" ?hidden=${!this.open}>\n\t\t\t\t<slot\n\t\t\t\t\t@slotchange=${() => {\n\t\t\t\t\t\tif (this.open) {\n\t\t\t\t\t\t\tthis.teleportContentToPortal()\n\t\t\t\t\t\t\tthis.setupPositioner()\n\t\t\t\t\t\t}\n\t\t\t\t\t}}\n\t\t\t\t></slot>\n\t\t\t</div>\n\t\t`\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-dropdown': SchmancyDropdown\n\t}\n}\n","import { TailwindElement } from '@mixins/index'\nimport { css, html } from 'lit'\nimport { customElement, property } from 'lit/decorators.js'\n\n/**\n * Content container for the schmancy-dropdown component.\n *\n * @element schmancy-dropdown-content\n * @slot - Default slot for dropdown content\n */\n@customElement('schmancy-dropdown-content')\nexport class SchmancyDropdownContent extends TailwindElement(css`\n\t:host {\n\t\tdisplay: block;\n\t\tposition: absolute;\n\t\tz-index: 1000;\n\t\tmin-width: 10rem;\n\t\tmargin: 0;\n\t\ttext-align: left;\n\t\tlist-style: none;\n\t\tbackground-color: var(--schmancy-sys-color-surface-container);\n\t\tbackground-clip: padding-box;\n\t\tborder-radius: 0.375rem;\n\t\tbox-shadow: var(--schmancy-sys-elevation-3);\n\t\twill-change: transform;\n\t\ttransform-origin: top left;\n\t\tanimation: dropdownAnimation 0.1s ease-out forwards;\n\t}\n\n\t:host([hidden]) {\n\t\tdisplay: none;\n\t}\n\n\t@keyframes dropdownAnimation {\n\t\tfrom {\n\t\t\topacity: 0;\n\t\t\ttransform: scale(0.95);\n\t\t}\n\t\tto {\n\t\t\topacity: 1;\n\t\t\ttransform: scale(1);\n\t\t}\n\t}\n\n\t/* Apply styles to content both in the component and when teleported to the portal */\n\t.schmancy-dropdown-content {\n\t\tbackground-color: var(--schmancy-sys-color-surface-container);\n\t\tborder-radius: 0.375rem;\n\t\tbox-shadow: var(--schmancy-sys-elevation-3);\n\t\twill-change: transform;\n\t\ttransform-origin: top left;\n\t\tanimation: dropdownAnimation 0.1s ease-out forwards;\n\t}\n`) {\n\t/**\n\t * Width of the dropdown content\n\t */\n\t@property({ type: String })\n\twidth: string = 'auto'\n\n\t/**\n\t * Maximum height of the dropdown content\n\t */\n\t@property({ type: String })\n\tmaxHeight: string = '80vh'\n\n\t/**\n\t * Whether to render with a shadow\n\t */\n\t@property({ type: Boolean })\n\tshadow: boolean = true\n\n\t/**\n\t * Border radius style\n\t */\n\t@property({ type: String })\n\tradius: 'none' | 'sm' | 'md' | 'lg' | 'full' = 'md'\n\n\trender() {\n\t\tconst classes = {\n\t\t\t'schmancy-dropdown-content': true,\n\t\t\t'overflow-auto': true,\n\t\t\t'shadow-none': !this.shadow,\n\t\t\t'rounded-none': this.radius === 'none',\n\t\t\t'rounded-sm': this.radius === 'sm',\n\t\t\t'rounded-md': this.radius === 'md',\n\t\t\t'rounded-lg': this.radius === 'lg',\n\t\t\t'rounded-full': this.radius === 'full',\n\t\t}\n\n\t\tconst styles = {\n\t\t\twidth: this.width,\n\t\t\tmaxHeight: this.maxHeight,\n\t\t}\n\n\t\treturn html`\n\t\t\t<div class=${this.classMap(classes)} style=${this.styleMap(styles)} part=\"content\">\n\t\t\t\t<slot></slot>\n\t\t\t</div>\n\t\t`\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-dropdown-content': SchmancyDropdownContent\n\t}\n}\n"],"names":["SchmancyDropdown","$LitElement","css","super","arguments","this","open","placement","distance","portal","connectedCallback","setupPortal","fromEvent","document","pipe","filter","isEventFromSelf","event","takeUntil","disconnecting","subscribe","key","portalContainer","getElementById","createElement","id","style","position","zIndex","top","left","pointerEvents","body","appendChild","className","display","composedPath","some","el","cleanupPositioner","remove","disconnectedCallback","changedProps","updated","has","setupPositioner","innerHTML","triggerContainer","teleportContentToPortal","autoUpdate","computePosition","middleware","offset","flip","fallbackPlacements","shift","padding","then","x","y","Object","assign","contentElements","forEach","element","clonedElement","cloneNode","tagName","toLowerCase","addEventListener","contentDiv","shadowRoot","querySelector","classList","add","e","stopPropagation","toggle","render","html","handleTriggerClick","__decorateClass","property","type","Boolean","reflect","prototype","String","Number","query","queryAssignedElements","flatten","state","slot","customElement","SchmancyDropdownContent","TailwindElement","constructor","width","maxHeight","shadow","radius","classes","styles","classMap","styleMap"],"mappings":"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"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
"use strict";const l=require("@floating-ui/dom"),p=require("rxjs");require("lit/directives/class-map.js"),require("lit/directives/style-map.js");const m=require("./litElement.mixin-
|
|
1
|
+
"use strict";const l=require("@floating-ui/dom"),p=require("rxjs");require("lit/directives/class-map.js"),require("lit/directives/style-map.js");const m=require("./litElement.mixin-BFfWKABY.cjs"),y=require("./tailwind.mixin-CgPd8dM4.cjs"),h=require("lit"),n=require("lit/decorators.js");var u=Object.defineProperty,g=Object.getOwnPropertyDescriptor,i=(t,e,r,s)=>{for(var a,o=s>1?void 0:s?g(e,r):e,c=t.length-1;c>=0;c--)(a=t[c])&&(o=(s?a(e,r,o):a(o))||o);return s&&o&&u(e,r,o),o};exports.SchmancyDropdown=class extends m.$LitElement(h.css`
|
|
2
2
|
:host {
|
|
3
3
|
display: inline-block;
|
|
4
4
|
position: relative;
|
|
5
5
|
}
|
|
6
|
-
`){constructor(){super(...arguments),this.open=!1,this.placement="bottom-start",this.distance=8,this.portal=null}connectedCallback(){super.connectedCallback(),this.setupPortal(),p.fromEvent(document,"click").pipe(p.filter(t=>this.open&&!this.isEventFromSelf(t)),p.takeUntil(this.disconnecting)).subscribe(()=>{this.open=!1}),p.fromEvent(document,"keydown").pipe(p.filter(t=>this.open&&t.key==="Escape"),p.takeUntil(this.disconnecting)).subscribe(()=>{this.open=!1})}setupPortal(){let t=document.getElementById("schmancy-portal-container");t||(t=document.createElement("div"),t.id="schmancy-portal-container",t.style.position="fixed",t.style.zIndex="10000",t.style.top="0",t.style.left="0",t.style.pointerEvents="none",document.body.appendChild(t));const e=document.createElement("div");e.className="schmancy-dropdown-portal",e.style.position="absolute",e.style.pointerEvents="auto",e.style.display="none",t.appendChild(e),this.portal=e}isEventFromSelf(t){return t.composedPath().some(e=>e===this)}disconnectedCallback(){
|
|
6
|
+
`){constructor(){super(...arguments),this.open=!1,this.placement="bottom-start",this.distance=8,this.portal=null}connectedCallback(){super.connectedCallback(),this.setupPortal(),p.fromEvent(document,"click").pipe(p.filter(t=>this.open&&!this.isEventFromSelf(t)),p.takeUntil(this.disconnecting)).subscribe(()=>{this.open=!1}),p.fromEvent(document,"keydown").pipe(p.filter(t=>this.open&&t.key==="Escape"),p.takeUntil(this.disconnecting)).subscribe(()=>{this.open=!1})}setupPortal(){let t=document.getElementById("schmancy-portal-container");t||(t=document.createElement("div"),t.id="schmancy-portal-container",t.style.position="fixed",t.style.zIndex="10000",t.style.top="0",t.style.left="0",t.style.pointerEvents="none",document.body.appendChild(t));const e=document.createElement("div");e.className="schmancy-dropdown-portal",e.style.position="absolute",e.style.pointerEvents="auto",e.style.display="none",t.appendChild(e),this.portal=e}isEventFromSelf(t){return t.composedPath().some(e=>e===this)}disconnectedCallback(){this.cleanupPositioner?.(),this.portal&&(this.portal.remove(),this.portal=null),super.disconnectedCallback()}toggle(){this.open=!this.open}updated(t){super.updated(t),t.has("open")&&(this.open?this.setupPositioner():(this.cleanupPositioner?.(),this.portal&&(this.portal.style.display="none",this.portal.innerHTML="")))}setupPositioner(){this.triggerContainer&&this.portal&&(this.portal.style.display="block",this.teleportContentToPortal(),this.cleanupPositioner=l.autoUpdate(this.triggerContainer,this.portal,()=>{l.computePosition(this.triggerContainer,this.portal,{placement:this.placement,middleware:[l.offset(this.distance),l.flip({fallbackPlacements:["top-start","bottom-start"]}),l.shift({padding:0})]}).then(({x:t,y:e})=>{Object.assign(this.portal.style,{left:`${t}px`,top:e-8+"px"})})}))}teleportContentToPortal(){this.portal&&(this.portal.innerHTML="",this.contentElements.forEach(t=>{const e=t.cloneNode(!0);t.tagName.toLowerCase()==="schmancy-dropdown-content"&&e.addEventListener("slotchange",()=>{const r=e.shadowRoot?.querySelector('[part="content"]');r&&r.classList.add("schmancy-dropdown-content")}),this.portal?.appendChild(e)}))}handleTriggerClick(t){t.stopPropagation(),this.toggle()}render(){return h.html`
|
|
7
7
|
<div class="trigger-container" @click=${this.handleTriggerClick}>
|
|
8
8
|
<slot name="trigger"></slot>
|
|
9
9
|
</div>
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
@slotchange=${()=>{this.open&&(this.teleportContentToPortal(),this.setupPositioner())}}
|
|
14
14
|
></slot>
|
|
15
15
|
</div>
|
|
16
|
-
`}},
|
|
16
|
+
`}},i([n.property({type:Boolean,reflect:!0})],exports.SchmancyDropdown.prototype,"open",2),i([n.property({type:String})],exports.SchmancyDropdown.prototype,"placement",2),i([n.property({type:Number})],exports.SchmancyDropdown.prototype,"distance",2),i([n.query(".trigger-container")],exports.SchmancyDropdown.prototype,"triggerContainer",2),i([n.query(".dropdown-content-container")],exports.SchmancyDropdown.prototype,"contentContainer",2),i([n.queryAssignedElements({flatten:!0})],exports.SchmancyDropdown.prototype,"contentElements",2),i([n.state()],exports.SchmancyDropdown.prototype,"portal",2),i([n.queryAssignedElements({slot:"trigger",flatten:!0})],exports.SchmancyDropdown.prototype,"triggerElements",2),exports.SchmancyDropdown=i([n.customElement("schmancy-dropdown")],exports.SchmancyDropdown);var w=Object.defineProperty,f=Object.getOwnPropertyDescriptor,d=(t,e,r,s)=>{for(var a,o=s>1?void 0:s?f(e,r):e,c=t.length-1;c>=0;c--)(a=t[c])&&(o=(s?a(e,r,o):a(o))||o);return s&&o&&w(e,r,o),o};exports.SchmancyDropdownContent=class extends y.TailwindElement(h.css`
|
|
17
17
|
:host {
|
|
18
18
|
display: block;
|
|
19
19
|
position: absolute;
|
|
@@ -60,4 +60,4 @@
|
|
|
60
60
|
<slot></slot>
|
|
61
61
|
</div>
|
|
62
62
|
`}},d([n.property({type:String})],exports.SchmancyDropdownContent.prototype,"width",2),d([n.property({type:String})],exports.SchmancyDropdownContent.prototype,"maxHeight",2),d([n.property({type:Boolean})],exports.SchmancyDropdownContent.prototype,"shadow",2),d([n.property({type:String})],exports.SchmancyDropdownContent.prototype,"radius",2),exports.SchmancyDropdownContent=d([n.customElement("schmancy-dropdown-content")],exports.SchmancyDropdownContent);
|
|
63
|
-
//# sourceMappingURL=dropdown-content-
|
|
63
|
+
//# sourceMappingURL=dropdown-content-CwEBCQTd.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dropdown-content-RMyyjS7G.cjs","sources":["../src/dropdown/dropdown-component.ts","../src/dropdown/dropdown-content.ts"],"sourcesContent":["import { autoUpdate, computePosition, flip, offset, shift } from '@floating-ui/dom'\nimport { $LitElement } from '@mixins/index'\nimport { css, html } from 'lit'\nimport { customElement, property, query, queryAssignedElements, state } from 'lit/decorators.js'\nimport { filter, fromEvent, takeUntil } from 'rxjs'\n\n/**\n * A dropdown component that displays content when triggered.\n *\n * @element schmancy-dropdown\n * @slot trigger - The element that triggers the dropdown\n * @slot - Default slot for the dropdown content\n */\n@customElement('schmancy-dropdown')\nexport class SchmancyDropdown extends $LitElement(css`\n\t:host {\n\t\tdisplay: inline-block;\n\t\tposition: relative;\n\t}\n`) {\n\t/**\n\t * Whether the dropdown is currently open\n\t */\n\t@property({ type: Boolean, reflect: true })\n\topen = false\n\n\t/**\n\t * Placement of the dropdown relative to the trigger\n\t */\n\t@property({ type: String })\n\tplacement:\n\t\t| 'top'\n\t\t| 'top-start'\n\t\t| 'top-end'\n\t\t| 'right'\n\t\t| 'right-start'\n\t\t| 'right-end'\n\t\t| 'bottom'\n\t\t| 'bottom-start'\n\t\t| 'bottom-end'\n\t\t| 'left'\n\t\t| 'left-start'\n\t\t| 'left-end' = 'bottom-start'\n\n\t/**\n\t * Offset distance in pixels\n\t */\n\t@property({ type: Number })\n\tdistance = 8\n\n\t@query('.trigger-container') triggerContainer!: HTMLElement\n\t@query('.dropdown-content-container') contentContainer!: HTMLElement\n\t@queryAssignedElements({ flatten: true }) contentElements!: HTMLElement[]\n\t@state() private portal: HTMLElement | null = null\n\n\t@queryAssignedElements({ slot: 'trigger', flatten: true })\n\ttriggerElements!: Array<HTMLElement>\n\n\tprivate cleanupPositioner?: () => void\n\n\tconnectedCallback() {\n\t\tsuper.connectedCallback()\n\n\t\t// Create portal container for teleporting content to document body\n\t\tthis.setupPortal()\n\n\t\t// Listen for document clicks to close dropdown when clicking outside\n\t\tfromEvent<MouseEvent>(document, 'click')\n\t\t\t.pipe(\n\t\t\t\tfilter(event => this.open && !this.isEventFromSelf(event)),\n\t\t\t\ttakeUntil(this.disconnecting),\n\t\t\t)\n\t\t\t.subscribe(() => {\n\t\t\t\tthis.open = false\n\t\t\t})\n\n\t\t// Listen for escape key to close dropdown\n\t\tfromEvent<KeyboardEvent>(document, 'keydown')\n\t\t\t.pipe(\n\t\t\t\tfilter(event => this.open && event.key === 'Escape'),\n\t\t\t\ttakeUntil(this.disconnecting),\n\t\t\t)\n\t\t\t.subscribe(() => {\n\t\t\t\tthis.open = false\n\t\t\t})\n\t}\n\n\t/**\n\t * Set up the portal element for teleporting content\n\t */\n\tprivate setupPortal() {\n\t\t// Check if portal container exists\n\t\tlet portalContainer = document.getElementById('schmancy-portal-container')\n\n\t\t// Create portal container if it doesn't exist\n\t\tif (!portalContainer) {\n\t\t\tportalContainer = document.createElement('div')\n\t\t\tportalContainer.id = 'schmancy-portal-container'\n\t\t\tportalContainer.style.position = 'fixed'\n\t\t\tportalContainer.style.zIndex = '10000'\n\t\t\tportalContainer.style.top = '0'\n\t\t\tportalContainer.style.left = '0'\n\t\t\tportalContainer.style.pointerEvents = 'none'\n\t\t\tdocument.body.appendChild(portalContainer)\n\t\t}\n\n\t\t// Create portal for this specific dropdown\n\t\tconst portal = document.createElement('div')\n\t\tportal.className = 'schmancy-dropdown-portal'\n\t\tportal.style.position = 'absolute'\n\t\tportal.style.pointerEvents = 'auto'\n\t\tportal.style.display = 'none'\n\t\tportalContainer.appendChild(portal)\n\n\t\tthis.portal = portal\n\t}\n\n\t/**\n\t * Check if an event originated from within this component\n\t */\n\tprivate isEventFromSelf(event: Event): boolean {\n\t\treturn event.composedPath().some(el => el === this)\n\t}\n\n\tdisconnectedCallback() {\n\t\tthis.cleanupPositioner?.()\n\n\t\t// Remove portal when component is disconnected\n\t\tif (this.portal) {\n\t\t\tthis.portal.remove()\n\t\t\tthis.portal = null\n\t\t}\n\n\t\tsuper.disconnectedCallback()\n\t}\n\n\t/**\n\t * Toggle the dropdown open state\n\t */\n\ttoggle() {\n\t\tthis.open = !this.open\n\t}\n\n\tupdated(changedProps: Map<string, any>) {\n\t\tsuper.updated(changedProps)\n\n\t\tif (changedProps.has('open')) {\n\t\t\tif (this.open) {\n\t\t\t\tthis.setupPositioner()\n\t\t\t} else {\n\t\t\t\tthis.cleanupPositioner?.()\n\n\t\t\t\t// Hide portal when dropdown is closed\n\t\t\t\tif (this.portal) {\n\t\t\t\t\tthis.portal.style.display = 'none'\n\t\t\t\t\tthis.portal.innerHTML = ''\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Setup floating UI positioning with teleportation\n\t */\n\tprivate setupPositioner() {\n\t\tif (!this.triggerContainer || !this.portal) return\n\n\t\t// Show the portal\n\t\tthis.portal.style.display = 'block'\n\n\t\t// Move content to portal\n\t\tthis.teleportContentToPortal()\n\n\t\t// Setup positioning\n\t\tthis.cleanupPositioner = autoUpdate(this.triggerContainer, this.portal, () => {\n\t\t\tcomputePosition(this.triggerContainer, this.portal, {\n\t\t\t\tplacement: this.placement,\n\t\t\t\tmiddleware: [\n\t\t\t\t\toffset(this.distance),\n\t\t\t\t\tflip({\n\t\t\t\t\t\tfallbackPlacements: ['top-start', 'bottom-start'],\n\t\t\t\t\t}),\n\t\t\t\t\tshift({ padding: 0 }),\n\t\t\t\t],\n\t\t\t}).then(({ x, y }) => {\n\t\t\t\t// Update portal position\n\t\t\t\tObject.assign(this.portal.style, {\n\t\t\t\t\tleft: `${x}px`,\n\t\t\t\t\ttop: `${y - 8}px`,\n\t\t\t\t})\n\t\t\t})\n\t\t})\n\t}\n\n\t/**\n\t * Move slotted content to the portal\n\t */\n\tprivate teleportContentToPortal() {\n\t\tif (!this.portal) return\n\n\t\t// Clear existing content\n\t\tthis.portal.innerHTML = ''\n\n\t\t// Clone and move slotted content to portal\n\t\tthis.contentElements.forEach(element => {\n\t\t\t// Get computed styles to ensure portal content matches original styling\n\t\t\tconst clonedElement = element.cloneNode(true) as HTMLElement\n\n\t\t\t// Ensure dropdown-content elements maintain their styles when teleported\n\t\t\tif (element.tagName.toLowerCase() === 'schmancy-dropdown-content') {\n\t\t\t\tclonedElement.addEventListener('slotchange', () => {\n\t\t\t\t\t// Propagate any slot changes to class changes on children\n\t\t\t\t\tconst contentDiv = clonedElement.shadowRoot?.querySelector('[part=\"content\"]')\n\t\t\t\t\tif (contentDiv) {\n\t\t\t\t\t\tcontentDiv.classList.add('schmancy-dropdown-content')\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t}\n\n\t\t\tthis.portal?.appendChild(clonedElement)\n\t\t})\n\t}\n\n\t/**\n\t * Handle trigger click to toggle dropdown\n\t */\n\tprivate handleTriggerClick(e: Event) {\n\t\te.stopPropagation()\n\t\tthis.toggle()\n\t}\n\n\trender() {\n\t\treturn html`\n\t\t\t<div class=\"trigger-container\" @click=${this.handleTriggerClick}>\n\t\t\t\t<slot name=\"trigger\"></slot>\n\t\t\t</div>\n\n\t\t\t<div class=\"dropdown-content-container\" ?hidden=${!this.open}>\n\t\t\t\t<slot\n\t\t\t\t\t@slotchange=${() => {\n\t\t\t\t\t\tif (this.open) {\n\t\t\t\t\t\t\tthis.teleportContentToPortal()\n\t\t\t\t\t\t\tthis.setupPositioner()\n\t\t\t\t\t\t}\n\t\t\t\t\t}}\n\t\t\t\t></slot>\n\t\t\t</div>\n\t\t`\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-dropdown': SchmancyDropdown\n\t}\n}\n","import { TailwindElement } from '@mixins/index'\nimport { css, html } from 'lit'\nimport { customElement, property } from 'lit/decorators.js'\n\n/**\n * Content container for the schmancy-dropdown component.\n *\n * @element schmancy-dropdown-content\n * @slot - Default slot for dropdown content\n */\n@customElement('schmancy-dropdown-content')\nexport class SchmancyDropdownContent extends TailwindElement(css`\n\t:host {\n\t\tdisplay: block;\n\t\tposition: absolute;\n\t\tz-index: 1000;\n\t\tmin-width: 10rem;\n\t\tmargin: 0;\n\t\ttext-align: left;\n\t\tlist-style: none;\n\t\tbackground-color: var(--schmancy-sys-color-surface-container);\n\t\tbackground-clip: padding-box;\n\t\tborder-radius: 0.375rem;\n\t\tbox-shadow: var(--schmancy-sys-elevation-3);\n\t\twill-change: transform;\n\t\ttransform-origin: top left;\n\t\tanimation: dropdownAnimation 0.1s ease-out forwards;\n\t}\n\n\t:host([hidden]) {\n\t\tdisplay: none;\n\t}\n\n\t@keyframes dropdownAnimation {\n\t\tfrom {\n\t\t\topacity: 0;\n\t\t\ttransform: scale(0.95);\n\t\t}\n\t\tto {\n\t\t\topacity: 1;\n\t\t\ttransform: scale(1);\n\t\t}\n\t}\n\n\t/* Apply styles to content both in the component and when teleported to the portal */\n\t.schmancy-dropdown-content {\n\t\tbackground-color: var(--schmancy-sys-color-surface-container);\n\t\tborder-radius: 0.375rem;\n\t\tbox-shadow: var(--schmancy-sys-elevation-3);\n\t\twill-change: transform;\n\t\ttransform-origin: top left;\n\t\tanimation: dropdownAnimation 0.1s ease-out forwards;\n\t}\n`) {\n\t/**\n\t * Width of the dropdown content\n\t */\n\t@property({ type: String })\n\twidth: string = 'auto'\n\n\t/**\n\t * Maximum height of the dropdown content\n\t */\n\t@property({ type: String })\n\tmaxHeight: string = '80vh'\n\n\t/**\n\t * Whether to render with a shadow\n\t */\n\t@property({ type: Boolean })\n\tshadow: boolean = true\n\n\t/**\n\t * Border radius style\n\t */\n\t@property({ type: String })\n\tradius: 'none' | 'sm' | 'md' | 'lg' | 'full' = 'md'\n\n\trender() {\n\t\tconst classes = {\n\t\t\t'schmancy-dropdown-content': true,\n\t\t\t'overflow-auto': true,\n\t\t\t'shadow-none': !this.shadow,\n\t\t\t'rounded-none': this.radius === 'none',\n\t\t\t'rounded-sm': this.radius === 'sm',\n\t\t\t'rounded-md': this.radius === 'md',\n\t\t\t'rounded-lg': this.radius === 'lg',\n\t\t\t'rounded-full': this.radius === 'full',\n\t\t}\n\n\t\tconst styles = {\n\t\t\twidth: this.width,\n\t\t\tmaxHeight: this.maxHeight,\n\t\t}\n\n\t\treturn html`\n\t\t\t<div class=${this.classMap(classes)} style=${this.styleMap(styles)} part=\"content\">\n\t\t\t\t<slot></slot>\n\t\t\t</div>\n\t\t`\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-dropdown-content': SchmancyDropdownContent\n\t}\n}\n"],"names":["SchmancyDropdown","$LitElement","css","super","arguments","this","open","placement","distance","portal","connectedCallback","setupPortal","fromEvent","document","pipe","filter","isEventFromSelf","event","takeUntil","disconnecting","subscribe","key","portalContainer","getElementById","createElement","id","style","position","zIndex","top","left","pointerEvents","body","appendChild","className","display","composedPath","some","el","cleanupPositioner","remove","disconnectedCallback","changedProps","updated","has","setupPositioner","innerHTML","triggerContainer","teleportContentToPortal","autoUpdate","computePosition","middleware","offset","flip","fallbackPlacements","shift","padding","then","x","y","Object","assign","contentElements","forEach","element","clonedElement","cloneNode","tagName","toLowerCase","addEventListener","contentDiv","shadowRoot","querySelector","classList","add","e","stopPropagation","toggle","html","handleTriggerClick","__decorateClass","property","type","Boolean","reflect","prototype","String","Number","query","queryAssignedElements","flatten","state","slot","customElement","SchmancyDropdownContent","TailwindElement","constructor","width","maxHeight","shadow","radius","classes","styles","classMap","styleMap"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"dropdown-content-CwEBCQTd.cjs","sources":["../src/dropdown/dropdown-component.ts","../src/dropdown/dropdown-content.ts"],"sourcesContent":["import { autoUpdate, computePosition, flip, offset, shift } from '@floating-ui/dom'\nimport { $LitElement } from '@mixins/index'\nimport { css, html } from 'lit'\nimport { customElement, property, query, queryAssignedElements, state } from 'lit/decorators.js'\nimport { filter, fromEvent, takeUntil } from 'rxjs'\n\n/**\n * A dropdown component that displays content when triggered.\n *\n * @element schmancy-dropdown\n * @slot trigger - The element that triggers the dropdown\n * @slot - Default slot for the dropdown content\n */\n@customElement('schmancy-dropdown')\nexport class SchmancyDropdown extends $LitElement(css`\n\t:host {\n\t\tdisplay: inline-block;\n\t\tposition: relative;\n\t}\n`) {\n\t/**\n\t * Whether the dropdown is currently open\n\t */\n\t@property({ type: Boolean, reflect: true })\n\topen = false\n\n\t/**\n\t * Placement of the dropdown relative to the trigger\n\t */\n\t@property({ type: String })\n\tplacement:\n\t\t| 'top'\n\t\t| 'top-start'\n\t\t| 'top-end'\n\t\t| 'right'\n\t\t| 'right-start'\n\t\t| 'right-end'\n\t\t| 'bottom'\n\t\t| 'bottom-start'\n\t\t| 'bottom-end'\n\t\t| 'left'\n\t\t| 'left-start'\n\t\t| 'left-end' = 'bottom-start'\n\n\t/**\n\t * Offset distance in pixels\n\t */\n\t@property({ type: Number })\n\tdistance = 8\n\n\t@query('.trigger-container') triggerContainer!: HTMLElement\n\t@query('.dropdown-content-container') contentContainer!: HTMLElement\n\t@queryAssignedElements({ flatten: true }) contentElements!: HTMLElement[]\n\t@state() private portal: HTMLElement | null = null\n\n\t@queryAssignedElements({ slot: 'trigger', flatten: true })\n\ttriggerElements!: Array<HTMLElement>\n\n\tprivate cleanupPositioner?: () => void\n\n\tconnectedCallback() {\n\t\tsuper.connectedCallback()\n\n\t\t// Create portal container for teleporting content to document body\n\t\tthis.setupPortal()\n\n\t\t// Listen for document clicks to close dropdown when clicking outside\n\t\tfromEvent<MouseEvent>(document, 'click')\n\t\t\t.pipe(\n\t\t\t\tfilter(event => this.open && !this.isEventFromSelf(event)),\n\t\t\t\ttakeUntil(this.disconnecting),\n\t\t\t)\n\t\t\t.subscribe(() => {\n\t\t\t\tthis.open = false\n\t\t\t})\n\n\t\t// Listen for escape key to close dropdown\n\t\tfromEvent<KeyboardEvent>(document, 'keydown')\n\t\t\t.pipe(\n\t\t\t\tfilter(event => this.open && event.key === 'Escape'),\n\t\t\t\ttakeUntil(this.disconnecting),\n\t\t\t)\n\t\t\t.subscribe(() => {\n\t\t\t\tthis.open = false\n\t\t\t})\n\t}\n\n\t/**\n\t * Set up the portal element for teleporting content\n\t */\n\tprivate setupPortal() {\n\t\t// Check if portal container exists\n\t\tlet portalContainer = document.getElementById('schmancy-portal-container')\n\n\t\t// Create portal container if it doesn't exist\n\t\tif (!portalContainer) {\n\t\t\tportalContainer = document.createElement('div')\n\t\t\tportalContainer.id = 'schmancy-portal-container'\n\t\t\tportalContainer.style.position = 'fixed'\n\t\t\tportalContainer.style.zIndex = '10000'\n\t\t\tportalContainer.style.top = '0'\n\t\t\tportalContainer.style.left = '0'\n\t\t\tportalContainer.style.pointerEvents = 'none'\n\t\t\tdocument.body.appendChild(portalContainer)\n\t\t}\n\n\t\t// Create portal for this specific dropdown\n\t\tconst portal = document.createElement('div')\n\t\tportal.className = 'schmancy-dropdown-portal'\n\t\tportal.style.position = 'absolute'\n\t\tportal.style.pointerEvents = 'auto'\n\t\tportal.style.display = 'none'\n\t\tportalContainer.appendChild(portal)\n\n\t\tthis.portal = portal\n\t}\n\n\t/**\n\t * Check if an event originated from within this component\n\t */\n\tprivate isEventFromSelf(event: Event): boolean {\n\t\treturn event.composedPath().some(el => el === this)\n\t}\n\n\tdisconnectedCallback() {\n\t\tthis.cleanupPositioner?.()\n\n\t\t// Remove portal when component is disconnected\n\t\tif (this.portal) {\n\t\t\tthis.portal.remove()\n\t\t\tthis.portal = null\n\t\t}\n\n\t\tsuper.disconnectedCallback()\n\t}\n\n\t/**\n\t * Toggle the dropdown open state\n\t */\n\ttoggle() {\n\t\tthis.open = !this.open\n\t}\n\n\tupdated(changedProps: Map<string, any>) {\n\t\tsuper.updated(changedProps)\n\n\t\tif (changedProps.has('open')) {\n\t\t\tif (this.open) {\n\t\t\t\tthis.setupPositioner()\n\t\t\t} else {\n\t\t\t\tthis.cleanupPositioner?.()\n\n\t\t\t\t// Hide portal when dropdown is closed\n\t\t\t\tif (this.portal) {\n\t\t\t\t\tthis.portal.style.display = 'none'\n\t\t\t\t\tthis.portal.innerHTML = ''\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Setup floating UI positioning with teleportation\n\t */\n\tprivate setupPositioner() {\n\t\tif (!this.triggerContainer || !this.portal) return\n\n\t\t// Show the portal\n\t\tthis.portal.style.display = 'block'\n\n\t\t// Move content to portal\n\t\tthis.teleportContentToPortal()\n\n\t\t// Setup positioning\n\t\tthis.cleanupPositioner = autoUpdate(this.triggerContainer, this.portal, () => {\n\t\t\tcomputePosition(this.triggerContainer, this.portal, {\n\t\t\t\tplacement: this.placement,\n\t\t\t\tmiddleware: [\n\t\t\t\t\toffset(this.distance),\n\t\t\t\t\tflip({\n\t\t\t\t\t\tfallbackPlacements: ['top-start', 'bottom-start'],\n\t\t\t\t\t}),\n\t\t\t\t\tshift({ padding: 0 }),\n\t\t\t\t],\n\t\t\t}).then(({ x, y }) => {\n\t\t\t\t// Update portal position\n\t\t\t\tObject.assign(this.portal.style, {\n\t\t\t\t\tleft: `${x}px`,\n\t\t\t\t\ttop: `${y - 8}px`,\n\t\t\t\t})\n\t\t\t})\n\t\t})\n\t}\n\n\t/**\n\t * Move slotted content to the portal\n\t */\n\tprivate teleportContentToPortal() {\n\t\tif (!this.portal) return\n\n\t\t// Clear existing content\n\t\tthis.portal.innerHTML = ''\n\n\t\t// Clone and move slotted content to portal\n\t\tthis.contentElements.forEach(element => {\n\t\t\t// Get computed styles to ensure portal content matches original styling\n\t\t\tconst clonedElement = element.cloneNode(true) as HTMLElement\n\n\t\t\t// Ensure dropdown-content elements maintain their styles when teleported\n\t\t\tif (element.tagName.toLowerCase() === 'schmancy-dropdown-content') {\n\t\t\t\tclonedElement.addEventListener('slotchange', () => {\n\t\t\t\t\t// Propagate any slot changes to class changes on children\n\t\t\t\t\tconst contentDiv = clonedElement.shadowRoot?.querySelector('[part=\"content\"]')\n\t\t\t\t\tif (contentDiv) {\n\t\t\t\t\t\tcontentDiv.classList.add('schmancy-dropdown-content')\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t}\n\n\t\t\tthis.portal?.appendChild(clonedElement)\n\t\t})\n\t}\n\n\t/**\n\t * Handle trigger click to toggle dropdown\n\t */\n\tprivate handleTriggerClick(e: Event) {\n\t\te.stopPropagation()\n\t\tthis.toggle()\n\t}\n\n\trender() {\n\t\treturn html`\n\t\t\t<div class=\"trigger-container\" @click=${this.handleTriggerClick}>\n\t\t\t\t<slot name=\"trigger\"></slot>\n\t\t\t</div>\n\n\t\t\t<div class=\"dropdown-content-container\" ?hidden=${!this.open}>\n\t\t\t\t<slot\n\t\t\t\t\t@slotchange=${() => {\n\t\t\t\t\t\tif (this.open) {\n\t\t\t\t\t\t\tthis.teleportContentToPortal()\n\t\t\t\t\t\t\tthis.setupPositioner()\n\t\t\t\t\t\t}\n\t\t\t\t\t}}\n\t\t\t\t></slot>\n\t\t\t</div>\n\t\t`\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-dropdown': SchmancyDropdown\n\t}\n}\n","import { TailwindElement } from '@mixins/index'\nimport { css, html } from 'lit'\nimport { customElement, property } from 'lit/decorators.js'\n\n/**\n * Content container for the schmancy-dropdown component.\n *\n * @element schmancy-dropdown-content\n * @slot - Default slot for dropdown content\n */\n@customElement('schmancy-dropdown-content')\nexport class SchmancyDropdownContent extends TailwindElement(css`\n\t:host {\n\t\tdisplay: block;\n\t\tposition: absolute;\n\t\tz-index: 1000;\n\t\tmin-width: 10rem;\n\t\tmargin: 0;\n\t\ttext-align: left;\n\t\tlist-style: none;\n\t\tbackground-color: var(--schmancy-sys-color-surface-container);\n\t\tbackground-clip: padding-box;\n\t\tborder-radius: 0.375rem;\n\t\tbox-shadow: var(--schmancy-sys-elevation-3);\n\t\twill-change: transform;\n\t\ttransform-origin: top left;\n\t\tanimation: dropdownAnimation 0.1s ease-out forwards;\n\t}\n\n\t:host([hidden]) {\n\t\tdisplay: none;\n\t}\n\n\t@keyframes dropdownAnimation {\n\t\tfrom {\n\t\t\topacity: 0;\n\t\t\ttransform: scale(0.95);\n\t\t}\n\t\tto {\n\t\t\topacity: 1;\n\t\t\ttransform: scale(1);\n\t\t}\n\t}\n\n\t/* Apply styles to content both in the component and when teleported to the portal */\n\t.schmancy-dropdown-content {\n\t\tbackground-color: var(--schmancy-sys-color-surface-container);\n\t\tborder-radius: 0.375rem;\n\t\tbox-shadow: var(--schmancy-sys-elevation-3);\n\t\twill-change: transform;\n\t\ttransform-origin: top left;\n\t\tanimation: dropdownAnimation 0.1s ease-out forwards;\n\t}\n`) {\n\t/**\n\t * Width of the dropdown content\n\t */\n\t@property({ type: String })\n\twidth: string = 'auto'\n\n\t/**\n\t * Maximum height of the dropdown content\n\t */\n\t@property({ type: String })\n\tmaxHeight: string = '80vh'\n\n\t/**\n\t * Whether to render with a shadow\n\t */\n\t@property({ type: Boolean })\n\tshadow: boolean = true\n\n\t/**\n\t * Border radius style\n\t */\n\t@property({ type: String })\n\tradius: 'none' | 'sm' | 'md' | 'lg' | 'full' = 'md'\n\n\trender() {\n\t\tconst classes = {\n\t\t\t'schmancy-dropdown-content': true,\n\t\t\t'overflow-auto': true,\n\t\t\t'shadow-none': !this.shadow,\n\t\t\t'rounded-none': this.radius === 'none',\n\t\t\t'rounded-sm': this.radius === 'sm',\n\t\t\t'rounded-md': this.radius === 'md',\n\t\t\t'rounded-lg': this.radius === 'lg',\n\t\t\t'rounded-full': this.radius === 'full',\n\t\t}\n\n\t\tconst styles = {\n\t\t\twidth: this.width,\n\t\t\tmaxHeight: this.maxHeight,\n\t\t}\n\n\t\treturn html`\n\t\t\t<div class=${this.classMap(classes)} style=${this.styleMap(styles)} part=\"content\">\n\t\t\t\t<slot></slot>\n\t\t\t</div>\n\t\t`\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-dropdown-content': SchmancyDropdownContent\n\t}\n}\n"],"names":["SchmancyDropdown","$LitElement","css","super","arguments","this","open","placement","distance","portal","connectedCallback","setupPortal","fromEvent","document","pipe","filter","isEventFromSelf","event","takeUntil","disconnecting","subscribe","key","portalContainer","getElementById","createElement","id","style","position","zIndex","top","left","pointerEvents","body","appendChild","className","display","composedPath","some","el","cleanupPositioner","remove","disconnectedCallback","changedProps","updated","has","setupPositioner","innerHTML","triggerContainer","teleportContentToPortal","autoUpdate","computePosition","middleware","offset","flip","fallbackPlacements","shift","padding","then","x","y","Object","assign","contentElements","forEach","element","clonedElement","cloneNode","tagName","toLowerCase","addEventListener","contentDiv","shadowRoot","querySelector","classList","add","e","stopPropagation","toggle","html","handleTriggerClick","__decorateClass","property","type","Boolean","reflect","prototype","String","Number","query","queryAssignedElements","flatten","state","slot","customElement","SchmancyDropdownContent","TailwindElement","constructor","width","maxHeight","shadow","radius","classes","styles","classMap","styleMap"],"mappings":"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"}
|
package/dist/dropdown.cjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./dropdown-content-
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./dropdown-content-CwEBCQTd.cjs");Object.defineProperty(exports,"SchmancyDropdown",{enumerable:!0,get:()=>e.SchmancyDropdown}),Object.defineProperty(exports,"SchmancyDropdownContent",{enumerable:!0,get:()=>e.SchmancyDropdownContent});
|
|
2
2
|
//# sourceMappingURL=dropdown.cjs.map
|
package/dist/dropdown.js
CHANGED
package/dist/extra.cjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./timezone-
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./timezone-Bp8z4kRR.cjs");Object.defineProperty(exports,"SchmancyCountriesSelect",{enumerable:!0,get:()=>e.SchmancyCountriesSelect}),Object.defineProperty(exports,"SchmancyTimezonesSelect",{enumerable:!0,get:()=>e.SchmancyTimezonesSelect});
|
|
2
2
|
//# sourceMappingURL=extra.cjs.map
|
package/dist/extra.js
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
|
-
import { unsafeCSS as
|
|
2
|
-
import { property as t, customElement as v, queryAssignedElements as
|
|
3
|
-
import { classMap as
|
|
4
|
-
import { styleMap as
|
|
5
|
-
import { fromEvent as k, map as S, startWith as
|
|
6
|
-
import { T
|
|
7
|
-
var
|
|
8
|
-
for (var n,
|
|
9
|
-
return
|
|
1
|
+
import { unsafeCSS as P, html as m, css as j } from "lit";
|
|
2
|
+
import { property as t, customElement as v, queryAssignedElements as W, query as C } from "lit/decorators.js";
|
|
3
|
+
import { classMap as z } from "lit/directives/class-map.js";
|
|
4
|
+
import { styleMap as B } from "lit/directives/style-map.js";
|
|
5
|
+
import { fromEvent as k, map as S, startWith as E, distinctUntilChanged as H, takeUntil as x, debounceTime as O, filter as R } from "rxjs";
|
|
6
|
+
import { T } from "./tailwind.mixin-t3Yj_Xbu.js";
|
|
7
|
+
var $ = Object.defineProperty, i = (e, o, p, l) => {
|
|
8
|
+
for (var n, s = void 0, a = e.length - 1; a >= 0; a--) (n = e[a]) && (s = n(o, p, s) || s);
|
|
9
|
+
return s && $(o, p, s), s;
|
|
10
10
|
};
|
|
11
|
-
const w = class w extends
|
|
11
|
+
const w = class w extends T() {
|
|
12
12
|
constructor() {
|
|
13
13
|
super(...arguments), this.layout = !0, this.center = void 0, this.display = void 0, this.overflow = void 0, this.overflowX = void 0, this.overflowY = void 0, this.position = void 0;
|
|
14
14
|
}
|
|
@@ -17,58 +17,57 @@ const w = class w extends R() {
|
|
|
17
17
|
}
|
|
18
18
|
};
|
|
19
19
|
w.styles = [w.styles];
|
|
20
|
-
let
|
|
21
|
-
i([t({ type: Boolean })],
|
|
22
|
-
var
|
|
23
|
-
for (var n,
|
|
24
|
-
return l &&
|
|
20
|
+
let r = w;
|
|
21
|
+
i([t({ type: Boolean })], r.prototype, "center"), i([t({ type: String })], r.prototype, "padding"), i([t({ type: String })], r.prototype, "margin"), i([t({ type: String })], r.prototype, "width"), i([t({ type: String })], r.prototype, "height"), i([t({ type: String })], r.prototype, "minWidth"), i([t({ type: String })], r.prototype, "minHeight"), i([t({ type: String })], r.prototype, "maxWidth"), i([t({ type: String })], r.prototype, "maxHeight"), i([t({ type: String })], r.prototype, "display"), i([t({ type: String })], r.prototype, "overflow"), i([t({ type: String })], r.prototype, "overflowX"), i([t({ type: String })], r.prototype, "overflowY"), i([t({ type: String })], r.prototype, "position"), i([t({ type: String })], r.prototype, "top"), i([t({ type: String })], r.prototype, "right"), i([t({ type: String })], r.prototype, "bottom"), i([t({ type: String })], r.prototype, "left"), i([t({ type: String })], r.prototype, "inset"), i([t({ type: String })], r.prototype, "zIndex"), i([t({ type: String })], r.prototype, "border"), i([t({ type: String })], r.prototype, "borderTop"), i([t({ type: String })], r.prototype, "borderRight"), i([t({ type: String })], r.prototype, "borderBottom"), i([t({ type: String })], r.prototype, "borderLeft"), i([t({ type: String })], r.prototype, "borderColor"), i([t({ type: String })], r.prototype, "borderRadius"), i([t({ type: String })], r.prototype, "borderWidth"), i([t({ type: String })], r.prototype, "boxShadow"), i([t({ type: String })], r.prototype, "opacity"), i([t({ type: String })], r.prototype, "background"), i([t({ type: String })], r.prototype, "backgroundImage"), i([t({ type: String })], r.prototype, "backgroundPosition"), i([t({ type: String })], r.prototype, "backgroundSize"), i([t({ type: String })], r.prototype, "backgroundRepeat"), i([t({ type: String })], r.prototype, "backgroundAttachment"), i([t({ type: String })], r.prototype, "backgroundColor"), i([t({ type: String })], r.prototype, "backgroundClip"), i([t({ type: String })], r.prototype, "backgroundOrigin"), i([t({ type: String })], r.prototype, "backgroundBlendMode"), i([t({ type: String })], r.prototype, "filter"), i([t({ type: String })], r.prototype, "backdropFilter");
|
|
22
|
+
var M = Object.defineProperty, I = Object.getOwnPropertyDescriptor, b = (e, o, p, l) => {
|
|
23
|
+
for (var n, s = l > 1 ? void 0 : l ? I(o, p) : o, a = e.length - 1; a >= 0; a--) (n = e[a]) && (s = (l ? n(o, p, s) : n(s)) || s);
|
|
24
|
+
return l && s && M(o, p, s), s;
|
|
25
25
|
};
|
|
26
|
-
let d = class extends
|
|
26
|
+
let d = class extends r {
|
|
27
27
|
constructor() {
|
|
28
28
|
super(...arguments), this.layout = !0, this.flow = "col", this.wrap = "wrap", this.align = "start", this.justify = "start", this.gap = "none";
|
|
29
29
|
}
|
|
30
30
|
render() {
|
|
31
|
-
const
|
|
31
|
+
const e = { flex: !0, "flex-col": this.flow === "row", "flex-col-reverse": this.flow === "row-reverse", "flex-row": this.flow === "col", "flex-row-reverse": this.flow === "col-reverse", "flex-wrap": this.wrap === "wrap", "flex-wrap-reverse": this.wrap === "wrap-reverse", "flex-nowrap": this.wrap === "nowrap", "items-start": this.align === "start", "items-center": this.align === "center", "items-end": this.align === "end", "items-stretch": this.align === "stretch", "justify-baseline": this.align === "baseline", "justify-center": this.justify === "center", "justify-end": this.justify === "end", "justify-start": this.justify === "start", "justify-stretch": this.justify === "stretch", "justify-between": this.justify === "between", "gap-0": this.gap === "none", "gap-2": this.gap === "sm", "gap-4": this.gap === "md", "gap-8": this.gap === "lg" };
|
|
32
32
|
return m`
|
|
33
|
-
<section class=${
|
|
33
|
+
<section class=${z(e)} style=${B({})}>
|
|
34
34
|
<slot></slot>
|
|
35
35
|
</section>
|
|
36
36
|
`;
|
|
37
37
|
}
|
|
38
38
|
};
|
|
39
|
-
d.styles = [
|
|
40
|
-
var
|
|
41
|
-
for (var n,
|
|
42
|
-
return l &&
|
|
39
|
+
d.styles = [r.styles, P(":host{display:block;background-color:inherit}")], b([t({ type: String, reflect: !0 })], d.prototype, "flow", 2), b([t({ type: String, reflect: !0 })], d.prototype, "wrap", 2), b([t({ type: String, reflect: !0 })], d.prototype, "align", 2), b([t({ type: String, reflect: !0 })], d.prototype, "justify", 2), b([t({ type: String, reflect: !0 })], d.prototype, "gap", 2), d = b([v("schmancy-flex")], d);
|
|
40
|
+
var L = Object.defineProperty, D = Object.getOwnPropertyDescriptor, c = (e, o, p, l) => {
|
|
41
|
+
for (var n, s = l > 1 ? void 0 : l ? D(o, p) : o, a = e.length - 1; a >= 0; a--) (n = e[a]) && (s = (l ? n(o, p, s) : n(s)) || s);
|
|
42
|
+
return l && s && L(o, p, s), s;
|
|
43
43
|
};
|
|
44
|
-
let h = class extends
|
|
44
|
+
let h = class extends r {
|
|
45
45
|
constructor() {
|
|
46
46
|
super(...arguments), this.layout = !0, this.flow = "row", this.align = "stretch", this.justify = "stretch", this.content = "stretch", this.gap = "none", this.wrap = !1;
|
|
47
47
|
}
|
|
48
48
|
firstUpdated() {
|
|
49
|
-
this.rcols && k(window, "resize").pipe(S((
|
|
50
|
-
var p, l, n, e, a, P, j, O, T, W, C, z;
|
|
49
|
+
this.rcols && k(window, "resize").pipe(S((e) => e.target), E(1), S(() => this.clientWidth ? this.clientWidth : window.innerWidth), H(), x(this.disconnecting), O(10), S((e) => {
|
|
51
50
|
let o;
|
|
52
|
-
return
|
|
53
|
-
})).subscribe((
|
|
54
|
-
this.cols =
|
|
51
|
+
return this.rcols?.["2xl"] && e >= 1536 ? o = this.rcols?.["2xl"] : this.rcols?.xl && e >= 1280 ? o = this.rcols?.xl : this.rcols?.lg && e >= 1024 ? o = this.rcols?.lg : this.rcols?.md && e >= 768 ? o = this.rcols?.md : this.rcols?.sm && e >= 640 ? o = this.rcols?.sm : this.rcols?.xs && e < 640 && (o = this.rcols?.xs), o;
|
|
52
|
+
})).subscribe((e) => {
|
|
53
|
+
this.cols = e;
|
|
55
54
|
});
|
|
56
55
|
}
|
|
57
56
|
render() {
|
|
58
|
-
const
|
|
57
|
+
const e = { "h-full": !0, "grid flex-1": !0, "grid-flow-row auto-rows-max": this.flow === "row", "grid-flow-col auto-cols-max": this.flow === "col", "grid-flow-row-dense": this.flow === "row-dense", "grid-flow-col-dense": this.flow === "col-dense", "grid-flow-dense": this.flow === "dense", "justify-center": this.content === "center", "justify-end": this.content === "end", "justify-start": this.content === "start", "justify-stretch": this.content === "stretch", "justify-between": this.content === "between", "justify-around": this.content === "around", "justify-evenly": this.content === "evenly", "justify-items-center": this.justify === "center", "justify-items-end": this.justify === "end", "justify-items-start": this.justify === "start", "justify-items-stretch": this.justify === "stretch", "items-center": this.align === "center", "items-end": this.align === "end", "items-start": this.align === "start", "items-stretch": this.align === "stretch", "items-baseline": this.align === "baseline", "gap-0": this.gap === "none", "gap-1": this.gap === "xs", "gap-2": this.gap === "sm", "gap-4": this.gap === "md", "gap-8": this.gap === "lg", "flex-nowrap": this.wrap, "flex-wrap": !this.wrap }, o = { gridTemplateRows: this.rows ? this.rows : void 0, gridTemplateColumns: this.cols ? this.cols : void 0 };
|
|
59
58
|
return m`
|
|
60
|
-
<section class="${this.classMap(
|
|
59
|
+
<section class="${this.classMap(e)}" style=${this.styleMap(o)}>
|
|
61
60
|
<slot> </slot>
|
|
62
61
|
</section>
|
|
63
62
|
`;
|
|
64
63
|
}
|
|
65
64
|
};
|
|
66
|
-
h.styles = [
|
|
67
|
-
var
|
|
68
|
-
for (var n,
|
|
69
|
-
return l &&
|
|
65
|
+
h.styles = [r.styles, P(":host{height:max-content;width:-webkit-fill-available;display:block}")], c([t({ type: String })], h.prototype, "flow", 2), c([t({ type: String })], h.prototype, "align", 2), c([t({ type: String })], h.prototype, "justify", 2), c([t({ type: String })], h.prototype, "content", 2), c([t({ type: String })], h.prototype, "gap", 2), c([t({ type: String })], h.prototype, "cols", 2), c([t({ type: String })], h.prototype, "rows", 2), c([t({ type: Object })], h.prototype, "rcols", 2), c([t({ type: Boolean })], h.prototype, "wrap", 2), c([W()], h.prototype, "assignedElements", 2), h = c([v("schmancy-grid")], h);
|
|
66
|
+
var U = Object.defineProperty, A = Object.getOwnPropertyDescriptor, u = (e, o, p, l) => {
|
|
67
|
+
for (var n, s = l > 1 ? void 0 : l ? A(o, p) : o, a = e.length - 1; a >= 0; a--) (n = e[a]) && (s = (l ? n(o, p, s) : n(s)) || s);
|
|
68
|
+
return l && s && U(o, p, s), s;
|
|
70
69
|
};
|
|
71
|
-
let f = class extends
|
|
70
|
+
let f = class extends T(j`
|
|
72
71
|
:host {
|
|
73
72
|
height: 100%;
|
|
74
73
|
width: 100%;
|
|
@@ -89,45 +88,45 @@ let f = class extends R(E`
|
|
|
89
88
|
constructor() {
|
|
90
89
|
super(...arguments), this.hide = !1, this.direction = "both", this.debounce = 10;
|
|
91
90
|
}
|
|
92
|
-
scrollTo(
|
|
93
|
-
this.scroller && (typeof
|
|
91
|
+
scrollTo(e, o) {
|
|
92
|
+
this.scroller && (typeof e == "number" ? this.scroller.scrollTo({ top: e, behavior: o ? "smooth" : "auto" }) : e ? this.scroller.scrollTo(e) : this.scroller.scrollTo({ top: 0, left: 0, behavior: "auto" }));
|
|
94
93
|
}
|
|
95
|
-
scrollToLeft(
|
|
96
|
-
this.scroller && this.scroller.scrollTo({ left:
|
|
94
|
+
scrollToLeft(e, o = "auto") {
|
|
95
|
+
this.scroller && this.scroller.scrollTo({ left: e, behavior: o });
|
|
97
96
|
}
|
|
98
97
|
firstUpdated() {
|
|
99
|
-
k(this.scroller, "scroll", { passive: !0 }).pipe(
|
|
100
|
-
const o = this.scroller.scrollTop, p = this.scroller.scrollHeight, l = this.scroller.clientHeight, n = this.scroller.scrollLeft,
|
|
101
|
-
this.dispatchEvent(new CustomEvent("scroll", { detail: { scrollTop: o, scrollHeight: p, clientHeight: l, e
|
|
102
|
-
}), k(window, "@schmancy:scrollTo").pipe(
|
|
103
|
-
if (
|
|
104
|
-
const o = { behavior: "smooth", top:
|
|
105
|
-
typeof
|
|
98
|
+
k(this.scroller, "scroll", { passive: !0 }).pipe(O(this.debounce), x(this.disconnecting)).subscribe((e) => {
|
|
99
|
+
const o = this.scroller.scrollTop, p = this.scroller.scrollHeight, l = this.scroller.clientHeight, n = this.scroller.scrollLeft, s = this.scroller.scrollWidth, a = this.scroller.clientWidth;
|
|
100
|
+
this.dispatchEvent(new CustomEvent("scroll", { detail: { scrollTop: o, scrollHeight: p, clientHeight: l, e, scrollLeft: n, scrollWidth: s, clientWidth: a }, bubbles: !0, composed: !0 }));
|
|
101
|
+
}), k(window, "@schmancy:scrollTo").pipe(R((e) => this.name !== void 0 && e.detail.name === this.name), x(this.disconnecting)).subscribe((e) => {
|
|
102
|
+
if (e.detail.action === "scrollTo" && typeof e.detail.top == "number") {
|
|
103
|
+
const o = { behavior: "smooth", top: e.detail.top };
|
|
104
|
+
typeof e.detail.left == "number" && (o.left = e.detail.left), this.scrollTo(o);
|
|
106
105
|
}
|
|
107
106
|
});
|
|
108
107
|
}
|
|
109
108
|
render() {
|
|
110
|
-
const
|
|
109
|
+
const e = { "h-full w-full inset-0 scroll-smooth overscroll-contain": !0, "overflow-y-auto": this.direction !== "horizontal", "overflow-y-hidden": this.direction === "horizontal", "overflow-x-auto": this.direction !== "vertical", "overflow-x-hidden": this.direction === "vertical", "scrollbar-hide": this.hide };
|
|
111
110
|
return m`
|
|
112
111
|
<div class="relative inset-0 h-full w-full overscroll-none">
|
|
113
|
-
<div id="scroller" part="scroller" class=${this.classMap(
|
|
112
|
+
<div id="scroller" part="scroller" class=${this.classMap(e)}>
|
|
114
113
|
<slot></slot>
|
|
115
114
|
</div>
|
|
116
115
|
</div>
|
|
117
116
|
`;
|
|
118
117
|
}
|
|
119
118
|
};
|
|
120
|
-
u([t({ type: Boolean, reflect: !0 })], f.prototype, "hide", 2), u([t({ type: String, reflect: !0 })], f.prototype, "name", 2), u([t({ type: String, reflect: !0 })], f.prototype, "direction", 2), u([
|
|
121
|
-
var
|
|
122
|
-
for (var n,
|
|
123
|
-
return l &&
|
|
119
|
+
u([t({ type: Boolean, reflect: !0 })], f.prototype, "hide", 2), u([t({ type: String, reflect: !0 })], f.prototype, "name", 2), u([t({ type: String, reflect: !0 })], f.prototype, "direction", 2), u([C("#scroller")], f.prototype, "scroller", 2), u([t({ type: Number })], f.prototype, "debounce", 2), f = u([v("schmancy-scroll")], f);
|
|
120
|
+
var F = Object.defineProperty, X = Object.getOwnPropertyDescriptor, g = (e, o, p, l) => {
|
|
121
|
+
for (var n, s = l > 1 ? void 0 : l ? X(o, p) : o, a = e.length - 1; a >= 0; a--) (n = e[a]) && (s = (l ? n(o, p, s) : n(s)) || s);
|
|
122
|
+
return l && s && F(o, p, s), s;
|
|
124
123
|
};
|
|
125
|
-
let y = class extends
|
|
124
|
+
let y = class extends r {
|
|
126
125
|
constructor() {
|
|
127
126
|
super(...arguments), this.inline = !1, this.flow = "row", this.wrap = "wrap", this.align = "stretch", this.justify = "start", this.gap = "none";
|
|
128
127
|
}
|
|
129
128
|
render() {
|
|
130
|
-
const
|
|
129
|
+
const e = this.inline ? "inline-flex" : "flex";
|
|
131
130
|
let o = "";
|
|
132
131
|
switch (this.flow) {
|
|
133
132
|
case "row":
|
|
@@ -196,27 +195,27 @@ let y = class extends s {
|
|
|
196
195
|
case "evenly":
|
|
197
196
|
n = "justify-evenly";
|
|
198
197
|
}
|
|
199
|
-
let
|
|
198
|
+
let s = "";
|
|
200
199
|
if (this.content) switch (this.content) {
|
|
201
200
|
case "start":
|
|
202
|
-
|
|
201
|
+
s = "content-start";
|
|
203
202
|
break;
|
|
204
203
|
case "center":
|
|
205
|
-
|
|
204
|
+
s = "content-center";
|
|
206
205
|
break;
|
|
207
206
|
case "end":
|
|
208
|
-
|
|
207
|
+
s = "content-end";
|
|
209
208
|
break;
|
|
210
209
|
case "between":
|
|
211
|
-
|
|
210
|
+
s = "content-between";
|
|
212
211
|
break;
|
|
213
212
|
case "around":
|
|
214
|
-
|
|
213
|
+
s = "content-around";
|
|
215
214
|
break;
|
|
216
215
|
case "evenly":
|
|
217
|
-
|
|
216
|
+
s = "content-evenly";
|
|
218
217
|
}
|
|
219
|
-
const a = [
|
|
218
|
+
const a = [e, o, p, l, n, s, this.gap === "none" ? "gap-0" : `gap-${this.gap}`].filter(Boolean).join(" ");
|
|
220
219
|
return m`
|
|
221
220
|
<section class=${a}>
|
|
222
221
|
<slot></slot>
|
|
@@ -224,7 +223,7 @@ let y = class extends s {
|
|
|
224
223
|
`;
|
|
225
224
|
}
|
|
226
225
|
};
|
|
227
|
-
y.styles = [
|
|
226
|
+
y.styles = [r.styles, j`
|
|
228
227
|
:host {
|
|
229
228
|
display: block;
|
|
230
229
|
}
|
|
@@ -235,4 +234,4 @@ export {
|
|
|
235
234
|
f as b,
|
|
236
235
|
y as c
|
|
237
236
|
};
|
|
238
|
-
//# sourceMappingURL=flex-
|
|
237
|
+
//# sourceMappingURL=flex-CbKzMNEV.js.map
|