@mhmo91/schmancy 0.7.7 → 0.8.4
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/audio.md +241 -0
- package/ai/content-drawer.md +163 -70
- package/ai/lightbox.md +381 -0
- package/ai/typography.md +75 -49
- package/dist/ai/audio.md +241 -0
- package/dist/ai/content-drawer.md +163 -70
- package/dist/ai/lightbox.md +381 -0
- package/dist/ai/typography.md +75 -49
- package/dist/{animated-text-Be290e6l.cjs → animated-text-B3DQRJBy.cjs} +2 -2
- package/dist/{animated-text-Be290e6l.cjs.map → animated-text-B3DQRJBy.cjs.map} +1 -1
- package/dist/{animated-text-DuLrWJ6O.js → animated-text-BAj4-6hE.js} +3 -3
- package/dist/{animated-text-DuLrWJ6O.js.map → animated-text-BAj4-6hE.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-BzjJiNTJ.js → area.component-CP4DZ0d8.js} +104 -98
- package/dist/area.component-CP4DZ0d8.js.map +1 -0
- package/dist/area.component-ChxSLt16.cjs +12 -0
- package/dist/area.component-ChxSLt16.cjs.map +1 -0
- package/dist/area.js +1 -1
- package/dist/audio.cjs +2 -0
- package/dist/audio.cjs.map +1 -0
- package/dist/audio.js +9 -0
- package/dist/audio.js.map +1 -0
- package/dist/{autocomplete-CHmGhBNt.cjs → autocomplete-CAaVSg4g.cjs} +2 -2
- package/dist/{autocomplete-CHmGhBNt.cjs.map → autocomplete-CAaVSg4g.cjs.map} +1 -1
- package/dist/{autocomplete-FLkd9ju8.js → autocomplete-CGbACUYd.js} +4 -4
- package/dist/{autocomplete-FLkd9ju8.js.map → autocomplete-CGbACUYd.js.map} +1 -1
- package/dist/autocomplete.cjs +1 -1
- package/dist/autocomplete.js +1 -1
- package/dist/avatar-nWOZXEsW.cjs +273 -0
- package/dist/avatar-nWOZXEsW.cjs.map +1 -0
- package/dist/{avatar-C8P4lVfa.js → avatar-rLCF6MSI.js} +244 -259
- package/dist/avatar-rLCF6MSI.js.map +1 -0
- package/dist/badge.cjs +1 -1
- package/dist/badge.js +1 -1
- package/dist/{boat-Ma6LW-ny.js → boat-Ckt9v__d.js} +6 -6
- package/dist/{boat-Ma6LW-ny.js.map → boat-Ckt9v__d.js.map} +1 -1
- package/dist/{boat-kYOUec8f.cjs → boat-yNAZ2LLB.cjs} +5 -5
- package/dist/{boat-kYOUec8f.cjs.map → boat-yNAZ2LLB.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/charts.cjs +2 -0
- package/dist/charts.cjs.map +1 -0
- package/dist/charts.js +9 -0
- package/dist/charts.js.map +1 -0
- package/dist/{checkbox-DLZkKaon.cjs → checkbox-BnAlpsJN.cjs} +2 -2
- package/dist/{checkbox-DLZkKaon.cjs.map → checkbox-BnAlpsJN.cjs.map} +1 -1
- package/dist/{checkbox-x46L-XTG.js → checkbox-D22yfGe3.js} +6 -6
- package/dist/{checkbox-x46L-XTG.js.map → checkbox-D22yfGe3.js.map} +1 -1
- 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-C3DLglSl.js → code-preview-DPlQayFd.js} +3 -3
- package/dist/{code-preview-C3DLglSl.js.map → code-preview-DPlQayFd.js.map} +1 -1
- package/dist/{code-preview-BsQq77nu.cjs → code-preview-jPnX60FF.cjs} +2 -2
- package/dist/{code-preview-BsQq77nu.cjs.map → code-preview-jPnX60FF.cjs.map} +1 -1
- package/dist/components.cjs +1 -1
- package/dist/components.js +1 -1
- package/dist/content-drawer.cjs +1 -1
- package/dist/content-drawer.js +1 -1
- package/dist/{context-create-BvxbWTgj.js → context-create-B_S-sD5B.js} +69 -57
- package/dist/context-create-B_S-sD5B.js.map +1 -0
- package/dist/context-create-DTybDbZp.cjs +2 -0
- package/dist/context-create-DTybDbZp.cjs.map +1 -0
- package/dist/date-range-GFm5NG33.js +639 -0
- package/dist/date-range-GFm5NG33.js.map +1 -0
- package/dist/{date-range-inline-cGptw0hr.cjs → date-range-inline-CgX2o0FP.cjs} +2 -2
- package/dist/{date-range-inline-cGptw0hr.cjs.map → date-range-inline-CgX2o0FP.cjs.map} +1 -1
- package/dist/{date-range-inline-CfDu-lIo.js → date-range-inline-DTQLESAZ.js} +3 -3
- package/dist/{date-range-inline-CfDu-lIo.js.map → date-range-inline-DTQLESAZ.js.map} +1 -1
- package/dist/date-range-inline.cjs +1 -1
- package/dist/date-range-inline.js +1 -1
- package/dist/date-range-ug3B9CFT.cjs +119 -0
- package/dist/date-range-ug3B9CFT.cjs.map +1 -0
- package/dist/date-range.cjs +1 -1
- package/dist/date-range.js +1 -1
- package/dist/{delay-CXFIM6qK.cjs → delay-CWtBL0VD.cjs} +2 -2
- package/dist/delay-CWtBL0VD.cjs.map +1 -0
- package/dist/{delay-BINGOQ7f.js → delay-DEe1CmHc.js} +45 -45
- package/dist/delay-DEe1CmHc.js.map +1 -0
- package/dist/delay.cjs +1 -1
- package/dist/delay.js +1 -1
- package/dist/details-D-LXW23W.js +100 -0
- package/dist/details-D-LXW23W.js.map +1 -0
- package/dist/details-DVke77dU.cjs +55 -0
- package/dist/details-DVke77dU.cjs.map +1 -0
- package/dist/details.cjs +1 -1
- package/dist/details.js +1 -1
- package/dist/dialog-service-C86xTS8q.cjs +2 -0
- package/dist/dialog-service-C86xTS8q.cjs.map +1 -0
- package/dist/dialog-service-D9E3jLAR.js +118 -0
- package/dist/dialog-service-D9E3jLAR.js.map +1 -0
- package/dist/dialog.cjs +1 -1
- package/dist/dialog.component-BM0D-hK9.cjs +48 -0
- package/dist/dialog.component-BM0D-hK9.cjs.map +1 -0
- package/dist/dialog.component-a7FlKhGD.js +145 -0
- package/dist/dialog.component-a7FlKhGD.js.map +1 -0
- package/dist/dialog.js +7 -7
- package/dist/directives.cjs +1 -1
- package/dist/directives.js +11 -10
- package/dist/directives.js.map +1 -1
- package/dist/{divider-Bu6tzwGl.js → divider-CzTpxOqt.js} +3 -3
- package/dist/{divider-Bu6tzwGl.js.map → divider-CzTpxOqt.js.map} +1 -1
- package/dist/{divider-8tk2mDbL.cjs → divider-D8KStUhN.cjs} +2 -2
- package/dist/{divider-8tk2mDbL.cjs.map → divider-D8KStUhN.cjs.map} +1 -1
- package/dist/divider.cjs +1 -1
- package/dist/divider.js +1 -1
- package/dist/{dropdown-content-DFb07S8x.cjs → dropdown-content-CngZN3vv.cjs} +2 -2
- package/dist/{dropdown-content-DFb07S8x.cjs.map → dropdown-content-CngZN3vv.cjs.map} +1 -1
- package/dist/{dropdown-content-fVhnEKdY.js → dropdown-content-DCn-g0-f.js} +3 -3
- package/dist/{dropdown-content-fVhnEKdY.js.map → dropdown-content-DCn-g0-f.js.map} +1 -1
- package/dist/dropdown.cjs +1 -1
- package/dist/dropdown.js +1 -1
- package/dist/{email-recipients-BG3GxJvc.cjs → email-recipients-BhntMZMf.cjs} +2 -2
- package/dist/{email-recipients-BG3GxJvc.cjs.map → email-recipients-BhntMZMf.cjs.map} +1 -1
- package/dist/{email-recipients-OG52RGiH.js → email-recipients-BzjAKNJ0.js} +8 -7
- package/dist/{email-recipients-OG52RGiH.js.map → email-recipients-BzjAKNJ0.js.map} +1 -1
- package/dist/emotional-sounds-BRnFhww6.js +234 -0
- package/dist/emotional-sounds-BRnFhww6.js.map +1 -0
- package/dist/emotional-sounds-DVGhmoZf.cjs +2 -0
- package/dist/emotional-sounds-DVGhmoZf.cjs.map +1 -0
- package/dist/extra.cjs +1 -1
- package/dist/extra.js +1 -1
- package/dist/flex-5dR48zie.js +183 -0
- package/dist/flex-5dR48zie.js.map +1 -0
- package/dist/flex-oHl2EfYB.cjs +18 -0
- package/dist/flex-oHl2EfYB.cjs.map +1 -0
- package/dist/{form-cWJBcwc6.cjs → form-BlPiAPt7.cjs} +2 -2
- package/dist/{form-cWJBcwc6.cjs.map → form-BlPiAPt7.cjs.map} +1 -1
- package/dist/{form-tpyd1nsT.js → form-BxVM6JTn.js} +2 -2
- package/dist/{form-tpyd1nsT.js.map → form-BxVM6JTn.js.map} +1 -1
- package/dist/form.cjs +1 -1
- package/dist/form.js +1 -1
- package/dist/{formField.mixin-Mx5CwYUh.js → formField.mixin-BCGA7Ea3.js} +2 -2
- package/dist/{formField.mixin-Mx5CwYUh.js.map → formField.mixin-BCGA7Ea3.js.map} +1 -1
- package/dist/{formField.mixin-XlN2pAL0.cjs → formField.mixin-BfJMifU9.cjs} +2 -2
- package/dist/{formField.mixin-XlN2pAL0.cjs.map → formField.mixin-BfJMifU9.cjs.map} +1 -1
- package/dist/height-CfECBO2j.js +44 -0
- package/dist/height-CfECBO2j.js.map +1 -0
- package/dist/height-Z70qJYJK.cjs +2 -0
- package/dist/height-Z70qJYJK.cjs.map +1 -0
- package/dist/icon-DHEXr3c-.cjs +49 -0
- package/dist/icon-DHEXr3c-.cjs.map +1 -0
- package/dist/{icon-Y2qLOFqe.js → icon-DYpLoegR.js} +17 -17
- package/dist/icon-DYpLoegR.js.map +1 -0
- package/dist/icon-button-CmZBLHWC.js +164 -0
- package/dist/icon-button-CmZBLHWC.js.map +1 -0
- package/dist/icon-button-IbSX8C98.cjs +70 -0
- package/dist/icon-button-IbSX8C98.cjs.map +1 -0
- package/dist/icons.cjs +1 -1
- package/dist/icons.js +1 -1
- package/dist/index.cjs +1 -1
- package/dist/index.js +275 -250
- package/dist/index.js.map +1 -1
- package/dist/input-BByjYlgl.cjs +51 -0
- package/dist/input-BByjYlgl.cjs.map +1 -0
- package/dist/{input-DDCFZ3cr.js → input-D0cQ9DOY.js} +35 -31
- package/dist/input-D0cQ9DOY.js.map +1 -0
- package/dist/{input-chip-DVE4_1wn.js → input-chip-B5ErXgCB.js} +2 -2
- package/dist/{input-chip-DVE4_1wn.js.map → input-chip-B5ErXgCB.js.map} +1 -1
- package/dist/{input-chip-Bht9MU9G.cjs → input-chip-DkWaTciP.cjs} +2 -2
- package/dist/{input-chip-Bht9MU9G.cjs.map → input-chip-DkWaTciP.cjs.map} +1 -1
- package/dist/input.cjs +1 -1
- package/dist/input.js +1 -1
- package/dist/json-BZVe74np.cjs +12 -0
- package/dist/json-BZVe74np.cjs.map +1 -0
- package/dist/json-PKewOWuJ.js +51 -0
- package/dist/json-PKewOWuJ.js.map +1 -0
- package/dist/json.cjs +2 -0
- package/dist/json.cjs.map +1 -0
- package/dist/json.js +5 -0
- package/dist/json.js.map +1 -0
- package/dist/layout.cjs +1 -1
- package/dist/layout.js +4 -3
- package/dist/layout.js.map +1 -1
- package/dist/lightbox-service-D-0JtxB1.cjs +202 -0
- package/dist/lightbox-service-D-0JtxB1.cjs.map +1 -0
- package/dist/lightbox-service-DZMnb1eU.js +458 -0
- package/dist/lightbox-service-DZMnb1eU.js.map +1 -0
- package/dist/lightbox.cjs +2 -0
- package/dist/lightbox.cjs.map +1 -0
- package/dist/lightbox.js +8 -0
- package/dist/lightbox.js.map +1 -0
- package/dist/{list-Bac329kq.cjs → list-B_2m7l3g.cjs} +6 -6
- package/dist/list-B_2m7l3g.cjs.map +1 -0
- package/dist/{list-BO1gnjmc.js → list-CW56LV-v.js} +13 -13
- package/dist/list-CW56LV-v.js.map +1 -0
- package/dist/list.cjs +1 -1
- package/dist/list.js +1 -1
- package/dist/{litElement.mixin-B1WTI3WY.cjs → litElement.mixin-CrpeGpZ7.cjs} +2 -2
- package/dist/{litElement.mixin-B1WTI3WY.cjs.map → litElement.mixin-CrpeGpZ7.cjs.map} +1 -1
- package/dist/{litElement.mixin-CVje6z-M.js → litElement.mixin-DHZXtvYq.js} +2 -2
- package/dist/{litElement.mixin-CVje6z-M.js.map → litElement.mixin-DHZXtvYq.js.map} +1 -1
- package/dist/mailbox.cjs +1 -1
- package/dist/mailbox.js +1 -1
- package/dist/{map-C1jVMhlF.js → map-2Hl60a0A.js} +6 -6
- package/dist/{map-C1jVMhlF.js.map → map-2Hl60a0A.js.map} +1 -1
- package/dist/{map-BlmS6Zfx.cjs → map-DyPS9G7M.cjs} +3 -3
- package/dist/{map-BlmS6Zfx.cjs.map → map-DyPS9G7M.cjs.map} +1 -1
- package/dist/map.cjs +1 -1
- package/dist/map.js +1 -1
- package/dist/{media-CxfrOjie.cjs → media-CS8HpKnK.cjs} +2 -2
- package/dist/{media-CxfrOjie.cjs.map → media-CS8HpKnK.cjs.map} +1 -1
- package/dist/{media-CNMZbEJe.js → media-DtWbcRxL.js} +2 -2
- package/dist/{media-CNMZbEJe.js.map → media-DtWbcRxL.js.map} +1 -1
- package/dist/menu-Caju5-zd.js +60 -0
- package/dist/{menu-CUKV4pVJ.js.map → menu-Caju5-zd.js.map} +1 -1
- package/dist/{menu-DEa2K7Pk.cjs → menu-rX5RPAI2.cjs} +4 -6
- package/dist/{menu-DEa2K7Pk.cjs.map → menu-rX5RPAI2.cjs.map} +1 -1
- package/dist/menu.cjs +1 -1
- package/dist/menu.js +1 -1
- package/dist/mixins.cjs +1 -1
- package/dist/mixins.js +3 -3
- 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-CYKfvZs9.js → navigation-rail-Ctketq5a.js} +43 -38
- package/dist/navigation-rail-Ctketq5a.js.map +1 -0
- package/dist/navigation-rail-DC9_oSIM.cjs +79 -0
- package/dist/navigation-rail-DC9_oSIM.cjs.map +1 -0
- package/dist/navigation-rail.cjs +1 -1
- package/dist/navigation-rail.js +1 -1
- package/dist/notification-service-CUlfXqmj.js +155 -0
- package/dist/notification-service-CUlfXqmj.js.map +1 -0
- package/dist/notification-service-DknbpqTt.cjs +19 -0
- package/dist/notification-service-DknbpqTt.cjs.map +1 -0
- package/dist/notification.cjs +1 -1
- package/dist/notification.js +6 -8
- package/dist/{notify-KvHZ-8z9.js → notify-DJSOWTxv.js} +2 -2
- package/dist/notify-DJSOWTxv.js.map +1 -0
- package/dist/{notify-VkDx6hMZ.cjs → notify-DickIEHW.cjs} +2 -2
- package/dist/notify-DickIEHW.cjs.map +1 -0
- package/dist/{option-DnRdbsTb.js → option-Bng41-rY.js} +2 -2
- package/dist/{option-DnRdbsTb.js.map → option-Bng41-rY.js.map} +1 -1
- package/dist/{option-Eh2AXe-Z.cjs → option-DYT5Rkgy.cjs} +2 -2
- package/dist/{option-Eh2AXe-Z.cjs.map → option-DYT5Rkgy.cjs.map} +1 -1
- package/dist/option.cjs +1 -1
- package/dist/option.js +1 -1
- package/dist/page-BLn9gtSd.cjs +20 -0
- package/dist/page-BLn9gtSd.cjs.map +1 -0
- package/dist/page-D-ROcQDd.js +48 -0
- package/dist/page-D-ROcQDd.js.map +1 -0
- package/dist/page.cjs +2 -0
- package/dist/page.cjs.map +1 -0
- package/dist/page.js +5 -0
- package/dist/page.js.map +1 -0
- package/dist/{payment-card-form-8a4Nqqhy.cjs → payment-card-form-5UtfWzoW.cjs} +2 -2
- package/dist/{payment-card-form-8a4Nqqhy.cjs.map → payment-card-form-5UtfWzoW.cjs.map} +1 -1
- package/dist/{payment-card-form-EVQEb5OX.js → payment-card-form-BJa4RgF2.js} +3 -3
- package/dist/{payment-card-form-EVQEb5OX.js.map → payment-card-form-BJa4RgF2.js.map} +1 -1
- package/dist/pills-BS5rZ6C3.js +346 -0
- package/dist/pills-BS5rZ6C3.js.map +1 -0
- package/dist/pills-Blf7IAeq.cjs +113 -0
- package/dist/pills-Blf7IAeq.cjs.map +1 -0
- package/dist/progress-DlhYniW_.cjs +35 -0
- package/dist/progress-DlhYniW_.cjs.map +1 -0
- package/dist/progress-yTIX6EqC.js +56 -0
- package/dist/progress-yTIX6EqC.js.map +1 -0
- package/dist/progress.cjs +1 -1
- package/dist/progress.js +1 -1
- package/dist/qr-scanner-DOs7uNS_.cjs +29 -0
- package/dist/qr-scanner-DOs7uNS_.cjs.map +1 -0
- package/dist/qr-scanner-DjZ8mgHV.js +743 -0
- package/dist/qr-scanner-DjZ8mgHV.js.map +1 -0
- package/dist/qr-scanner.cjs +2 -0
- package/dist/qr-scanner.cjs.map +1 -0
- package/dist/qr-scanner.js +5 -0
- package/dist/qr-scanner.js.map +1 -0
- package/dist/{radio-button-BTdqEOSJ.cjs → radio-button-N_PrrxKB.cjs} +2 -2
- package/dist/{radio-button-BTdqEOSJ.cjs.map → radio-button-N_PrrxKB.cjs.map} +1 -1
- package/dist/{radio-button-QCukBJLy.js → radio-button-me3SRHGu.js} +3 -3
- package/dist/{radio-button-QCukBJLy.js.map → radio-button-me3SRHGu.js.map} +1 -1
- package/dist/radio-group.cjs +1 -1
- package/dist/radio-group.js +1 -1
- package/dist/ripple-BgJXbNSP.js +124 -0
- package/dist/ripple-BgJXbNSP.js.map +1 -0
- package/dist/ripple-x6sTX02K.cjs +16 -0
- package/dist/ripple-x6sTX02K.cjs.map +1 -0
- package/dist/{schmancy-steps-container-NZOamraF.js → schmancy-steps-container-J6P-NNNj.js} +3 -3
- package/dist/{schmancy-steps-container-NZOamraF.js.map → schmancy-steps-container-J6P-NNNj.js.map} +1 -1
- package/dist/{schmancy-steps-container-CtwqkRBU.cjs → schmancy-steps-container-T57BKMzi.cjs} +2 -2
- package/dist/{schmancy-steps-container-CtwqkRBU.cjs.map → schmancy-steps-container-T57BKMzi.cjs.map} +1 -1
- package/dist/scroll-C_gfUgjn.js +87 -0
- package/dist/scroll-C_gfUgjn.js.map +1 -0
- package/dist/scroll-CecsowP7.cjs +27 -0
- package/dist/scroll-CecsowP7.cjs.map +1 -0
- package/dist/{select-DSTQ-Zau.js → select-BBA0gBHf.js} +5 -4
- package/dist/select-BBA0gBHf.js.map +1 -0
- package/dist/{select-C-Kv7ey_.cjs → select-D9oCjv7N.cjs} +2 -2
- package/dist/select-D9oCjv7N.cjs.map +1 -0
- package/dist/select.cjs +1 -1
- package/dist/select.js +1 -1
- package/dist/{selector-hook-Cok22ifx.cjs → selector-hook-9w2auh2O.cjs} +2 -2
- package/dist/{selector-hook-Cok22ifx.cjs.map → selector-hook-9w2auh2O.cjs.map} +1 -1
- package/dist/{selector-hook-l2fe2UO5.js → selector-hook-CHV4kDMd.js} +3 -3
- package/dist/{selector-hook-l2fe2UO5.js.map → selector-hook-CHV4kDMd.js.map} +1 -1
- package/dist/{sheet-IzYy3H8n.cjs → sheet-0oUfBmXX.cjs} +2 -2
- package/dist/{sheet-IzYy3H8n.cjs.map → sheet-0oUfBmXX.cjs.map} +1 -1
- package/dist/{sheet-DY-z5_tm.js → sheet-CNcDT3VP.js} +5 -5
- package/dist/{sheet-DY-z5_tm.js.map → sheet-CNcDT3VP.js.map} +1 -1
- package/dist/sheet.cjs +1 -1
- package/dist/sheet.js +2 -2
- package/dist/{sheet.service-DuVcXyOB.js → sheet.service-2MobB-9z.js} +20 -18
- package/dist/sheet.service-2MobB-9z.js.map +1 -0
- package/dist/sheet.service-su_7yDQ-.cjs +2 -0
- package/dist/sheet.service-su_7yDQ-.cjs.map +1 -0
- package/dist/{slider-CGE_Qeok.cjs → slider-CV-Ehp_5.cjs} +2 -2
- package/dist/{slider-CGE_Qeok.cjs.map → slider-CV-Ehp_5.cjs.map} +1 -1
- package/dist/{slider-CFtbSQ9Y.js → slider-CkE-iFUy.js} +3 -3
- package/dist/{slider-CFtbSQ9Y.js.map → slider-CkE-iFUy.js.map} +1 -1
- package/dist/slider.cjs +1 -1
- package/dist/slider.js +1 -1
- package/dist/sound.service-Nza4c6wv.js +102 -0
- package/dist/sound.service-Nza4c6wv.js.map +1 -0
- package/dist/sound.service-eRirZw59.cjs +2 -0
- package/dist/sound.service-eRirZw59.cjs.map +1 -0
- package/dist/{spinner-CSPJs8CL.cjs → spinner-Bfn8KC-9.cjs} +9 -9
- package/dist/spinner-Bfn8KC-9.cjs.map +1 -0
- package/dist/{spinner-DAF-hCvQ.js → spinner-DiMbWXp9.js} +15 -12
- package/dist/spinner-DiMbWXp9.js.map +1 -0
- package/dist/steps.cjs +1 -1
- package/dist/steps.js +1 -1
- package/dist/store.cjs +1 -1
- package/dist/store.js +2 -2
- package/dist/{suggestion-chip-CYu-4xrL.js → suggestion-chip-CEDqUNoS.js} +50 -46
- package/dist/suggestion-chip-CEDqUNoS.js.map +1 -0
- package/dist/{suggestion-chip-Cj8gwZqq.cjs → suggestion-chip-HhsLtZXR.cjs} +18 -23
- package/dist/suggestion-chip-HhsLtZXR.cjs.map +1 -0
- package/dist/{surface-VX_THUHv.cjs → surface-CW3H23Va.cjs} +5 -4
- package/dist/surface-CW3H23Va.cjs.map +1 -0
- package/dist/{surface-DTOK-0E4.js → surface-eBfnSwQS.js} +12 -11
- package/dist/surface-eBfnSwQS.js.map +1 -0
- package/dist/surface.cjs +1 -1
- package/dist/surface.js +1 -1
- package/dist/{table-BV0-o9Wi.cjs → table-D0tiSL_u.cjs} +2 -2
- package/dist/{table-BV0-o9Wi.cjs.map → table-D0tiSL_u.cjs.map} +1 -1
- package/dist/{table-CkXbXqi9.js → table-Dmo4TvTx.js} +3 -3
- package/dist/{table-CkXbXqi9.js.map → table-Dmo4TvTx.js.map} +1 -1
- package/dist/table.cjs +1 -1
- package/dist/table.js +1 -1
- package/dist/{tabs-compatibility-D_BBW655.js → tabs-compatibility-Bit6y6en.js} +2 -2
- package/dist/{tabs-compatibility-D_BBW655.js.map → tabs-compatibility-Bit6y6en.js.map} +1 -1
- package/dist/{tabs-compatibility-DsfD60U_.cjs → tabs-compatibility-Vq_2-ekz.cjs} +2 -2
- package/dist/{tabs-compatibility-DsfD60U_.cjs.map → tabs-compatibility-Vq_2-ekz.cjs.map} +1 -1
- package/dist/tabs.cjs +1 -1
- package/dist/tabs.js +1 -1
- package/dist/tailwind.mixin-Bp_PR6yc.js +67 -0
- package/dist/{tailwind.mixin-wLaKUxf1.js.map → tailwind.mixin-Bp_PR6yc.js.map} +1 -1
- package/dist/tailwind.mixin-Cp4PyXok.cjs +2 -0
- package/dist/{tailwind.mixin-JFXu3GSo.cjs.map → tailwind.mixin-Cp4PyXok.cjs.map} +1 -1
- package/dist/teleport.cjs +1 -1
- package/dist/teleport.js +1 -1
- package/dist/{textarea-TeVnUeIJ.js → textarea-B1d1QCqT.js} +4 -3
- package/dist/{textarea-TeVnUeIJ.js.map → textarea-B1d1QCqT.js.map} +1 -1
- package/dist/textarea-DG8CHhZA.cjs +44 -0
- package/dist/{textarea-B6LDhRed.cjs.map → textarea-DG8CHhZA.cjs.map} +1 -1
- package/dist/textarea.cjs +1 -1
- package/dist/textarea.js +1 -1
- package/dist/{theme-button-DxMbO3yP.cjs → theme-button-CPL6Eaqd.cjs} +2 -2
- package/dist/{theme-button-DxMbO3yP.cjs.map → theme-button-CPL6Eaqd.cjs.map} +1 -1
- package/dist/{theme-button-BXXqAu2Y.js → theme-button-CrLuMQNe.js} +2 -2
- package/dist/{theme-button-BXXqAu2Y.js.map → theme-button-CrLuMQNe.js.map} +1 -1
- package/dist/theme-button.cjs +1 -1
- package/dist/theme-button.js +1 -1
- package/dist/theme-controller-boat-CXbNJSI3.cjs +178 -0
- package/dist/theme-controller-boat-CXbNJSI3.cjs.map +1 -0
- package/dist/{theme-controller-boat-CVS77gnH.js → theme-controller-boat-CzSmjyKq.js} +420 -228
- package/dist/theme-controller-boat-CzSmjyKq.js.map +1 -0
- package/dist/theme.cjs +1 -1
- package/dist/theme.js +13 -11
- package/dist/{timezone-RBV74f85.js → timezone-4vwX0BgA.js} +3 -3
- package/dist/{timezone-RBV74f85.js.map → timezone-4vwX0BgA.js.map} +1 -1
- package/dist/{timezone-D7YOMM8G.cjs → timezone-BxvQcqe1.cjs} +2 -2
- package/dist/{timezone-D7YOMM8G.cjs.map → timezone-BxvQcqe1.cjs.map} +1 -1
- package/dist/{tooltip-DssL6Qfx.js → tooltip-CjdvBf4X.js} +2 -2
- package/dist/{tooltip-DssL6Qfx.js.map → tooltip-CjdvBf4X.js.map} +1 -1
- package/dist/{tooltip-BH_RLoZI.cjs → tooltip-ZtnGjoJd.cjs} +2 -2
- package/dist/{tooltip-BH_RLoZI.cjs.map → tooltip-ZtnGjoJd.cjs.map} +1 -1
- package/dist/tooltip.cjs +1 -1
- package/dist/tooltip.js +1 -1
- package/dist/{tree-C33t9-0j.js → tree-CBEjV7jP.js} +2 -2
- package/dist/{tree-C33t9-0j.js.map → tree-CBEjV7jP.js.map} +1 -1
- package/dist/{tree-7Zz1sJKl.cjs → tree-DP5U00NA.cjs} +2 -2
- package/dist/{tree-7Zz1sJKl.cjs.map → tree-DP5U00NA.cjs.map} +1 -1
- package/dist/tree.cjs +1 -1
- package/dist/tree.js +1 -1
- package/dist/{typewriter-WbYqfXO7.cjs → typewriter-C6kFjLcX.cjs} +4 -4
- package/dist/{typewriter-WbYqfXO7.cjs.map → typewriter-C6kFjLcX.cjs.map} +1 -1
- package/dist/{typewriter-Dt1Js2lP.js → typewriter-Eo5qXoGC.js} +5 -5
- package/dist/{typewriter-Dt1Js2lP.js.map → typewriter-Eo5qXoGC.js.map} +1 -1
- package/dist/typewriter.cjs +1 -1
- package/dist/typewriter.js +1 -1
- package/dist/{typography-DdG9aEAg.js → typography-C_1gdM2I.js} +13 -53
- package/dist/typography-C_1gdM2I.js.map +1 -0
- package/dist/{typography-Ck-OdI83.cjs → typography-DGyjlLCE.cjs} +3 -46
- package/dist/typography-DGyjlLCE.cjs.map +1 -0
- package/dist/typography.cjs +1 -1
- package/dist/typography.js +1 -1
- package/mixins/tailwind.css +37 -6
- package/package.json +21 -20
- package/types/src/area/area.service.d.ts +1 -1
- package/types/src/area/router.types.d.ts +1 -0
- package/types/src/audio/emotional-sounds.d.ts +122 -0
- package/types/src/audio/index.d.ts +30 -0
- package/types/src/audio/sound.service.d.ts +111 -0
- package/types/src/avatar.d.ts +10 -1
- package/types/src/busy/spinner.d.ts +6 -1
- package/types/src/button/button.d.ts +15 -2
- package/types/src/button/icon-button.d.ts +1 -1
- package/types/src/charts/area-chart.d.ts +58 -0
- package/types/src/charts/index.d.ts +4 -0
- package/types/src/charts/pills.d.ts +51 -0
- package/types/src/charts/types.d.ts +62 -0
- package/types/src/charts/utils.d.ts +28 -0
- package/types/src/checkbox/checkbox.d.ts +3 -2
- package/types/src/chips/chips.d.ts +2 -0
- package/types/src/content-drawer/drawer.service.d.ts +1 -7
- package/types/src/date-range/date-range-dialog.d.ts +16 -0
- package/types/src/date-range/date-range.d.ts +1 -1
- package/types/src/details/details.d.ts +3 -7
- package/types/src/dialog/dailog.d.ts +1 -5
- package/types/src/dialog/dialog-base.mixin.d.ts +26 -0
- package/types/src/dialog/dialog-service.d.ts +3 -66
- package/types/src/dialog/dialog.component.d.ts +63 -30
- package/types/src/dialog/index.d.ts +1 -3
- package/types/src/directives/height.d.ts +11 -6
- package/types/src/icons/icon.d.ts +17 -0
- package/types/src/index.d.ts +6 -0
- package/types/src/input/input.d.ts +13 -9
- package/types/src/json/index.d.ts +1 -0
- package/types/src/json/json.d.ts +15 -0
- package/types/src/lightbox/flip-directive.d.ts +29 -0
- package/types/src/lightbox/flip.directive.d.ts +22 -0
- package/types/src/lightbox/index.d.ts +4 -0
- package/types/src/lightbox/lightbox-service.d.ts +24 -0
- package/types/src/lightbox/lightbox.d.ts +34 -0
- package/types/src/lightbox/lightbox.directive.d.ts +30 -0
- package/types/src/nav-drawer/appbar.d.ts +0 -5
- package/types/src/nav-drawer/drawer.d.ts +1 -32
- package/types/src/navigation-rail/navigation-rail.d.ts +2 -0
- package/types/src/notification/index.d.ts +1 -3
- package/types/src/notification/notification-service.d.ts +13 -1
- package/types/src/notification/notification.d.ts +13 -12
- package/types/src/notification/notify.d.ts +1 -1
- package/types/src/page/index.d.ts +1 -0
- package/types/src/page/page.d.ts +31 -0
- package/types/src/progress/progress.d.ts +2 -2
- package/types/src/qr-scanner/index.d.ts +1 -0
- package/types/src/qr-scanner/qr-scanner.d.ts +26 -0
- package/types/src/select/select.d.ts +1 -1
- package/types/src/theme/index.d.ts +1 -0
- package/types/src/theme/theme-audio-player.d.ts +100 -0
- package/types/src/theme/theme-controller-boat.d.ts +1 -0
- package/types/src/theme/theme.component.d.ts +1 -1
- package/types/src/types/index.d.ts +1 -0
- package/types/src/types/mood-audio.types.d.ts +173 -0
- package/types/src/typography/typography.d.ts +1 -0
- package/dist/area.component-BzjJiNTJ.js.map +0 -1
- package/dist/area.component-FL_IUylM.cjs +0 -12
- package/dist/area.component-FL_IUylM.cjs.map +0 -1
- package/dist/avatar-B_uJN9WV.cjs +0 -288
- package/dist/avatar-B_uJN9WV.cjs.map +0 -1
- package/dist/avatar-C8P4lVfa.js.map +0 -1
- package/dist/context-create-BJkkLr1D.cjs +0 -2
- package/dist/context-create-BJkkLr1D.cjs.map +0 -1
- package/dist/context-create-BvxbWTgj.js.map +0 -1
- package/dist/date-range-Cm0TCfwu.js +0 -664
- package/dist/date-range-Cm0TCfwu.js.map +0 -1
- package/dist/date-range-Cy97kOP_.cjs +0 -134
- package/dist/date-range-Cy97kOP_.cjs.map +0 -1
- package/dist/delay-BINGOQ7f.js.map +0 -1
- package/dist/delay-CXFIM6qK.cjs.map +0 -1
- package/dist/details-CLRikV4s.cjs +0 -64
- package/dist/details-CLRikV4s.cjs.map +0 -1
- package/dist/details-bgq2X_hO.js +0 -115
- package/dist/details-bgq2X_hO.js.map +0 -1
- package/dist/dialog-content-B59ekS_y.cjs +0 -85
- package/dist/dialog-content-B59ekS_y.cjs.map +0 -1
- package/dist/dialog-content-Cu7fqN8Y.js +0 -256
- package/dist/dialog-content-Cu7fqN8Y.js.map +0 -1
- package/dist/dialog-service-B4nR8Em5.cjs +0 -2
- package/dist/dialog-service-B4nR8Em5.cjs.map +0 -1
- package/dist/dialog-service-Bege4HF4.js +0 -140
- package/dist/dialog-service-Bege4HF4.js.map +0 -1
- package/dist/flex-CYQU6Pf8.js +0 -260
- package/dist/flex-CYQU6Pf8.js.map +0 -1
- package/dist/flex-DytMcHmq.cjs +0 -43
- package/dist/flex-DytMcHmq.cjs.map +0 -1
- package/dist/icon-C8Q_XMtJ.cjs +0 -49
- package/dist/icon-C8Q_XMtJ.cjs.map +0 -1
- package/dist/icon-Y2qLOFqe.js.map +0 -1
- package/dist/icon-button-CJ6AVTv9.js +0 -156
- package/dist/icon-button-CJ6AVTv9.js.map +0 -1
- package/dist/icon-button-IdG1NVgA.cjs +0 -65
- package/dist/icon-button-IdG1NVgA.cjs.map +0 -1
- package/dist/input-DDCFZ3cr.js.map +0 -1
- package/dist/input-UyknNHNr.cjs +0 -51
- package/dist/input-UyknNHNr.cjs.map +0 -1
- package/dist/list-BO1gnjmc.js.map +0 -1
- package/dist/list-Bac329kq.cjs.map +0 -1
- package/dist/menu-CUKV4pVJ.js +0 -61
- package/dist/navigation-rail-CYKfvZs9.js.map +0 -1
- package/dist/navigation-rail-DXr4NJnN.cjs +0 -81
- package/dist/navigation-rail-DXr4NJnN.cjs.map +0 -1
- package/dist/notification-service-CZ56fXew.js +0 -532
- package/dist/notification-service-CZ56fXew.js.map +0 -1
- package/dist/notification-service-DQGs9O0f.cjs +0 -143
- package/dist/notification-service-DQGs9O0f.cjs.map +0 -1
- package/dist/notify-KvHZ-8z9.js.map +0 -1
- package/dist/notify-VkDx6hMZ.cjs.map +0 -1
- package/dist/progress-D5kgn2Fg.js +0 -58
- package/dist/progress-D5kgn2Fg.js.map +0 -1
- package/dist/progress-yFxoJDYf.cjs +0 -35
- package/dist/progress-yFxoJDYf.cjs.map +0 -1
- package/dist/ripple-QoNZUUw_.js +0 -148
- package/dist/ripple-QoNZUUw_.js.map +0 -1
- package/dist/ripple-Ujq_REH4.cjs +0 -16
- package/dist/ripple-Ujq_REH4.cjs.map +0 -1
- package/dist/select-C-Kv7ey_.cjs.map +0 -1
- package/dist/select-DSTQ-Zau.js.map +0 -1
- package/dist/sheet.service-BNz-ird-.cjs +0 -2
- package/dist/sheet.service-BNz-ird-.cjs.map +0 -1
- package/dist/sheet.service-DuVcXyOB.js.map +0 -1
- package/dist/spinner-CSPJs8CL.cjs.map +0 -1
- package/dist/spinner-DAF-hCvQ.js.map +0 -1
- package/dist/suggestion-chip-CYu-4xrL.js.map +0 -1
- package/dist/suggestion-chip-Cj8gwZqq.cjs.map +0 -1
- package/dist/surface-DTOK-0E4.js.map +0 -1
- package/dist/surface-VX_THUHv.cjs.map +0 -1
- package/dist/tailwind.mixin-JFXu3GSo.cjs +0 -2
- package/dist/tailwind.mixin-wLaKUxf1.js +0 -67
- package/dist/textarea-B6LDhRed.cjs +0 -44
- package/dist/theme-controller-boat-CCBNOGxF.cjs +0 -64
- package/dist/theme-controller-boat-CCBNOGxF.cjs.map +0 -1
- package/dist/theme-controller-boat-CVS77gnH.js.map +0 -1
- package/dist/typography-Ck-OdI83.cjs.map +0 -1
- package/dist/typography-DdG9aEAg.js.map +0 -1
- package/types/src/notification/notification-audio-generator.d.ts +0 -45
- package/types/src/notification/notification-audio.d.ts +0 -79
- package/types/src/notification/notification-container.d.ts +0 -48
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"input-chip-Bht9MU9G.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-DkWaTciP.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-BByjYlgl.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
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
"use strict";require("rxjs"),require("rxjs/operators"),require("lit/directives/class-map.js"),require("lit/directives/style-map.js");const n=require("lit/decorators.js"),y=require("./tailwind.mixin-Cp4PyXok.cjs"),h=require("lit"),g=require("lit/directives/unsafe-html.js"),p=require("./notification-service-DknbpqTt.cjs");var u=Object.defineProperty,d=Object.getOwnPropertyDescriptor,a=(e,t,s,c)=>{for(var i,r=c>1?void 0:c?d(t,s):t,o=e.length-1;o>=0;o--)(i=e[o])&&(r=(c?i(t,s,r):i(r))||r);return c&&r&&u(t,s,r),r};exports.SchmancyJson=class extends y.TailwindElement(h.css`:host { display: block }`){constructor(){super(...arguments),this.data={},this.highlightKeys=[],this.compact=!1}highlightChanges(e,t){let s=e;return t.forEach(c=>{const i=new RegExp(`("${c}":\\s*)([^,\\n}]+)`,"g");s=s.replace(i,(r,o,l)=>`${o}<span class="text-warning-default font-bold">${l}</span>`)}),s}async copyJSON(){try{await navigator.clipboard.writeText(JSON.stringify(this.data,null,2)),p.$notify.success("JSON copied to clipboard")}catch{p.$notify.error("Failed to copy JSON")}}render(){const e=JSON.stringify(this.data,null,this.compact?0:2),t=this.highlightKeys.length>0?this.highlightChanges(e,this.highlightKeys):e;return h.html`
|
|
2
|
+
<div
|
|
3
|
+
class="bg-surface-container rounded-lg p-2 font-mono overflow-auto cursor-pointer hover:bg-surface-container-high transition-colors"
|
|
4
|
+
@click=${this.copyJSON}
|
|
5
|
+
>
|
|
6
|
+
<div class="flex items-center justify-between mb-1">
|
|
7
|
+
<schmancy-icon size="12px" class="text-on-surface-variant">content_copy</schmancy-icon>
|
|
8
|
+
</div>
|
|
9
|
+
<pre class="text-[10px] leading-tight">${g.unsafeHTML(t)}</pre>
|
|
10
|
+
</div>
|
|
11
|
+
`}},a([n.property({type:Object})],exports.SchmancyJson.prototype,"data",2),a([n.property({type:Array})],exports.SchmancyJson.prototype,"highlightKeys",2),a([n.property({type:Boolean})],exports.SchmancyJson.prototype,"compact",2),exports.SchmancyJson=a([n.customElement("schmancy-json")],exports.SchmancyJson);
|
|
12
|
+
//# sourceMappingURL=json-BZVe74np.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"json-BZVe74np.cjs","sources":["../src/json/json.ts"],"sourcesContent":["import { TailwindElement } from '@mixins/index'\nimport { css, html } from 'lit'\nimport { customElement, property } from 'lit/decorators.js'\nimport { unsafeHTML } from 'lit/directives/unsafe-html.js'\nimport { $notify } from '@schmancy/notification'\n\n@customElement('schmancy-json')\nexport class SchmancyJson extends TailwindElement(css`:host { display: block }`) {\n\t@property({ type: Object }) data: Record<string, any> = {}\n\t@property({ type: Array }) highlightKeys: string[] = []\n\t@property({ type: Boolean }) compact = false\n\n\tprivate highlightChanges(json: string, changedKeys: string[]): string {\n\t\tlet highlighted = json\n\t\tchangedKeys.forEach(key => {\n\t\t\tconst regex = new RegExp(`(\"${key}\":\\\\s*)([^,\\\\n}]+)`, 'g')\n\t\t\thighlighted = highlighted.replace(regex, (_match, keyPart, valuePart) => {\n\t\t\t\treturn `${keyPart}<span class=\"text-warning-default font-bold\">${valuePart}</span>`\n\t\t\t})\n\t\t})\n\t\treturn highlighted\n\t}\n\n\tprivate async copyJSON() {\n\t\ttry {\n\t\t\tawait navigator.clipboard.writeText(JSON.stringify(this.data, null, 2))\n\t\t\t$notify.success('JSON copied to clipboard')\n\t\t} catch (error) {\n\t\t\t$notify.error('Failed to copy JSON')\n\t\t}\n\t}\n\n\trender() {\n\t\tconst jsonString = JSON.stringify(this.data, null, this.compact ? 0 : 2)\n\t\tconst highlighted = this.highlightKeys.length > 0 ? this.highlightChanges(jsonString, this.highlightKeys) : jsonString\n\n\t\treturn html`\n\t\t\t<div\n\t\t\t\tclass=\"bg-surface-container rounded-lg p-2 font-mono overflow-auto cursor-pointer hover:bg-surface-container-high transition-colors\"\n\t\t\t\t@click=${this.copyJSON}\n\t\t\t>\n\t\t\t\t<div class=\"flex items-center justify-between mb-1\">\n\t\t\t\t\t<schmancy-icon size=\"12px\" class=\"text-on-surface-variant\">content_copy</schmancy-icon>\n\t\t\t\t</div>\n\t\t\t\t<pre class=\"text-[10px] leading-tight\">${unsafeHTML(highlighted)}</pre>\n\t\t\t</div>\n\t\t`\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-json': SchmancyJson\n\t}\n}\n"],"names":["SchmancyJson","TailwindElement","css","constructor","super","arguments","this","data","highlightKeys","compact","json","changedKeys","highlighted","forEach","key","regex","RegExp","replace","_match","keyPart","valuePart","copyJSON","navigator","clipboard","writeText","JSON","stringify","$notify","success","error","jsonString","length","highlightChanges","html","unsafeHTML","__decorateClass","property","type","Object","prototype","Array","Boolean","customElement"],"mappings":"kgBAOaA,QAAAA,aAAN,cAA2BC,EAAAA,gBAAgBC,+BAAA,CAAA,CAA3C,aAAAC,CAAAC,MAAAA,GAAAC,WACsBC,KAAAC,KAA4B,CAAA,EAC7BD,KAAAE,cAA0B,CAAA,EACxBF,KAAAG,QAAAA,EAAU,CAE/B,iBAAiBC,EAAcC,EAAAA,CACtC,IAAIC,EAAcF,EAOlB,OANAC,EAAYE,QAAQC,GAAAA,CACnB,MAAMC,EAAQ,IAAIC,OAAO,KAAKF,sBAAyB,GAAA,EACvDF,EAAcA,EAAYK,QAAQF,EAAO,CAACG,EAAQC,EAASC,IACnD,GAAGD,CAAAA,gDAAuDC,cAG5DR,CACR,CAEA,gBAAcS,CACb,GAAA,CAAA,MACOC,UAAUC,UAAUC,UAAUC,KAAKC,UAAUpB,KAAKC,KAAM,KAAM,IACpEoB,EAAAA,QAAQC,QAAQ,0BAAA,CACjB,MAASC,CACRF,EAAAA,QAAQE,MAAM,qBAAA,CACf,CACD,CAEA,SACC,MAAMC,EAAaL,KAAKC,UAAUpB,KAAKC,KAAM,KAAMD,KAAKG,QAAU,EAAI,CAAA,EAChEG,EAAcN,KAAKE,cAAcuB,OAAS,EAAIzB,KAAK0B,iBAAiBF,EAAYxB,KAAKE,eAAiBsB,EAE5G,OAAOG,EAAAA;AAAAA;AAAAA;AAAAA,aAGI3B,KAAKe,QAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,6CAK2Ba,EAAAA,WAAWtB,CAAAA,CAAAA;AAAAA;AAAAA,GAGvD,CAAA,EAvC4BuB,EAAA,CAA3BC,WAAS,CAAEC,KAAMC,UADNtC,qBACgBuC,UAAA,OAAA,CAAA,EACDJ,EAAA,CAA1BC,WAAS,CAAEC,KAAMG,SAFNxC,qBAEeuC,UAAA,gBAAA,CAAA,EACEJ,EAAA,CAA5BC,WAAS,CAAEC,KAAMI,WAHNzC,qBAGiBuC,UAAA,UAAA,CAAA,EAHjBvC,QAAAA,aAANmC,EAAA,CADNO,EAAAA,cAAc,kBACF1C"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import "rxjs";
|
|
2
|
+
import "rxjs/operators";
|
|
3
|
+
import "lit/directives/class-map.js";
|
|
4
|
+
import "lit/directives/style-map.js";
|
|
5
|
+
import { property as p, customElement as g } from "lit/decorators.js";
|
|
6
|
+
import { T as m } from "./tailwind.mixin-Bp_PR6yc.js";
|
|
7
|
+
import { css as y, html as d } from "lit";
|
|
8
|
+
import { unsafeHTML as f } from "lit/directives/unsafe-html.js";
|
|
9
|
+
import { $ as h } from "./notification-service-CUlfXqmj.js";
|
|
10
|
+
var u = Object.defineProperty, b = Object.getOwnPropertyDescriptor, n = (t, r, s, e) => {
|
|
11
|
+
for (var i, o = e > 1 ? void 0 : e ? b(r, s) : r, a = t.length - 1; a >= 0; a--) (i = t[a]) && (o = (e ? i(r, s, o) : i(o)) || o);
|
|
12
|
+
return e && o && u(r, s, o), o;
|
|
13
|
+
};
|
|
14
|
+
let c = class extends m(y`:host { display: block }`) {
|
|
15
|
+
constructor() {
|
|
16
|
+
super(...arguments), this.data = {}, this.highlightKeys = [], this.compact = !1;
|
|
17
|
+
}
|
|
18
|
+
highlightChanges(t, r) {
|
|
19
|
+
let s = t;
|
|
20
|
+
return r.forEach((e) => {
|
|
21
|
+
const i = new RegExp(`("${e}":\\s*)([^,\\n}]+)`, "g");
|
|
22
|
+
s = s.replace(i, (o, a, l) => `${a}<span class="text-warning-default font-bold">${l}</span>`);
|
|
23
|
+
}), s;
|
|
24
|
+
}
|
|
25
|
+
async copyJSON() {
|
|
26
|
+
try {
|
|
27
|
+
await navigator.clipboard.writeText(JSON.stringify(this.data, null, 2)), h.success("JSON copied to clipboard");
|
|
28
|
+
} catch {
|
|
29
|
+
h.error("Failed to copy JSON");
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
render() {
|
|
33
|
+
const t = JSON.stringify(this.data, null, this.compact ? 0 : 2), r = this.highlightKeys.length > 0 ? this.highlightChanges(t, this.highlightKeys) : t;
|
|
34
|
+
return d`
|
|
35
|
+
<div
|
|
36
|
+
class="bg-surface-container rounded-lg p-2 font-mono overflow-auto cursor-pointer hover:bg-surface-container-high transition-colors"
|
|
37
|
+
@click=${this.copyJSON}
|
|
38
|
+
>
|
|
39
|
+
<div class="flex items-center justify-between mb-1">
|
|
40
|
+
<schmancy-icon size="12px" class="text-on-surface-variant">content_copy</schmancy-icon>
|
|
41
|
+
</div>
|
|
42
|
+
<pre class="text-[10px] leading-tight">${f(r)}</pre>
|
|
43
|
+
</div>
|
|
44
|
+
`;
|
|
45
|
+
}
|
|
46
|
+
};
|
|
47
|
+
n([p({ type: Object })], c.prototype, "data", 2), n([p({ type: Array })], c.prototype, "highlightKeys", 2), n([p({ type: Boolean })], c.prototype, "compact", 2), c = n([g("schmancy-json")], c);
|
|
48
|
+
export {
|
|
49
|
+
c as S
|
|
50
|
+
};
|
|
51
|
+
//# sourceMappingURL=json-PKewOWuJ.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"json-PKewOWuJ.js","sources":["../src/json/json.ts"],"sourcesContent":["import { TailwindElement } from '@mixins/index'\nimport { css, html } from 'lit'\nimport { customElement, property } from 'lit/decorators.js'\nimport { unsafeHTML } from 'lit/directives/unsafe-html.js'\nimport { $notify } from '@schmancy/notification'\n\n@customElement('schmancy-json')\nexport class SchmancyJson extends TailwindElement(css`:host { display: block }`) {\n\t@property({ type: Object }) data: Record<string, any> = {}\n\t@property({ type: Array }) highlightKeys: string[] = []\n\t@property({ type: Boolean }) compact = false\n\n\tprivate highlightChanges(json: string, changedKeys: string[]): string {\n\t\tlet highlighted = json\n\t\tchangedKeys.forEach(key => {\n\t\t\tconst regex = new RegExp(`(\"${key}\":\\\\s*)([^,\\\\n}]+)`, 'g')\n\t\t\thighlighted = highlighted.replace(regex, (_match, keyPart, valuePart) => {\n\t\t\t\treturn `${keyPart}<span class=\"text-warning-default font-bold\">${valuePart}</span>`\n\t\t\t})\n\t\t})\n\t\treturn highlighted\n\t}\n\n\tprivate async copyJSON() {\n\t\ttry {\n\t\t\tawait navigator.clipboard.writeText(JSON.stringify(this.data, null, 2))\n\t\t\t$notify.success('JSON copied to clipboard')\n\t\t} catch (error) {\n\t\t\t$notify.error('Failed to copy JSON')\n\t\t}\n\t}\n\n\trender() {\n\t\tconst jsonString = JSON.stringify(this.data, null, this.compact ? 0 : 2)\n\t\tconst highlighted = this.highlightKeys.length > 0 ? this.highlightChanges(jsonString, this.highlightKeys) : jsonString\n\n\t\treturn html`\n\t\t\t<div\n\t\t\t\tclass=\"bg-surface-container rounded-lg p-2 font-mono overflow-auto cursor-pointer hover:bg-surface-container-high transition-colors\"\n\t\t\t\t@click=${this.copyJSON}\n\t\t\t>\n\t\t\t\t<div class=\"flex items-center justify-between mb-1\">\n\t\t\t\t\t<schmancy-icon size=\"12px\" class=\"text-on-surface-variant\">content_copy</schmancy-icon>\n\t\t\t\t</div>\n\t\t\t\t<pre class=\"text-[10px] leading-tight\">${unsafeHTML(highlighted)}</pre>\n\t\t\t</div>\n\t\t`\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-json': SchmancyJson\n\t}\n}\n"],"names":["SchmancyJson","TailwindElement","css","super","arguments","this","data","highlightKeys","compact","json","changedKeys","highlighted","forEach","key","regex","RegExp","replace","_match","keyPart","valuePart","navigator","clipboard","writeText","JSON","stringify","$notify","success","error","render","jsonString","length","highlightChanges","html","copyJSON","unsafeHTML","__decorateClass","property","type","Object","prototype","Array","Boolean","customElement"],"mappings":";;;;;;;;;;;;;AAOO,IAAMA,IAAN,cAA2BC,EAAgBC,2BAAA,EAAA;AAAA,EAA3C;AAAAC,UAAAA,GAAAC,SAAAA,GACsBC,KAAAC,OAA4B,CAAA,GAC7BD,KAAAE,gBAA0B,CAAA,GACxBF,KAAAG;EAAU;AAAA,EAE/B,iBAAiBC,GAAcC,GAAAA;AACtC,QAAIC,IAAcF;AAOlB,WANAC,EAAYE,QAAQC,CAAAA;AACnB,YAAMC,IAAQ,IAAIC,OAAO,KAAKF,CAAAA,sBAAyB,GAAA;AACvDF,UAAcA,EAAYK,QAAQF,GAAO,CAACG,GAAQC,GAASC,MACnD,GAAGD,CAAAA,gDAAuDC,CAAAA,SAAAA;AAAAA,IAAAA,CAAAA,GAG5DR;AAAAA,EACR;AAAA,EAEA,MAAA;AACC,QAAA;AAAA,YACOS,UAAUC,UAAUC,UAAUC,KAAKC,UAAUnB,KAAKC,MAAM,MAAM,CAAA,CAAA,GACpEmB,EAAQC,QAAQ;IACjB,QAASC;AACRF,MAAAA,EAAQE,MAAM,qBAAA;AAAA,IACf;AAAA,EACD;AAAA,EAEA,SAAAC;AACC,UAAMC,IAAaN,KAAKC,UAAUnB,KAAKC,MAAM,MAAMD,KAAKG,UAAU,IAAI,CAAA,GAChEG,IAAcN,KAAKE,cAAcuB,SAAS,IAAIzB,KAAK0B,iBAAiBF,GAAYxB,KAAKE,aAAAA,IAAiBsB;AAE5G,WAAOG;AAAAA;AAAAA;AAAAA,aAGI3B,KAAK4B,QAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,6CAK2BC,EAAWvB,CAAAA,CAAAA;AAAAA;AAAAA;AAAAA,EAGvD;AAAA;AAvC4BwB,EAAA,CAA3BC,EAAS,EAAEC,MAAMC,OAAAA,CAAAA,CAAAA,GADNtC,EACgBuC,WAAA,QAAA,IACDJ,EAAA,CAA1BC,EAAS,EAAEC,MAAMG,MAAAA,CAAAA,CAAAA,GAFNxC,EAEeuC,WAAA,iBAAA,IACEJ,EAAA,CAA5BC,EAAS,EAAEC,MAAMI,QAAAA,CAAAA,CAAAA,GAHNzC,EAGiBuC,WAAA,WAAA,IAHjBvC,IAANmC,EAAA,CADNO,EAAc,mBACF1C,CAAAA;"}
|
package/dist/json.cjs
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"json.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
package/dist/json.js
ADDED
package/dist/json.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"json.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
|
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-oHl2EfYB.cjs"),c=require("./scroll-CecsowP7.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:()=>c.SchmancyScroll});
|
|
2
2
|
//# sourceMappingURL=layout.cjs.map
|
package/dist/layout.js
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
import { S,
|
|
1
|
+
import { S, b as m, a as r } from "./flex-5dR48zie.js";
|
|
2
|
+
import { S as e } from "./scroll-C_gfUgjn.js";
|
|
2
3
|
export {
|
|
3
4
|
S as SchmancyFlex,
|
|
4
5
|
m as SchmancyFlexV2,
|
|
5
|
-
|
|
6
|
-
|
|
6
|
+
r as SchmancyGrid,
|
|
7
|
+
e as SchmancyScroll
|
|
7
8
|
};
|
|
8
9
|
//# sourceMappingURL=layout.js.map
|
package/dist/layout.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"layout.js","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"layout.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;"}
|
|
@@ -0,0 +1,202 @@
|
|
|
1
|
+
"use strict";const l=require("lit"),u=require("lit/decorators.js"),I=require("lit/directives/when.js"),y=require("lit/directives/ref.js"),h=require("rxjs"),m=require("rxjs/operators");require("lit/directives/class-map.js");const k=require("lit/directives/style-map.js"),A=require("./tailwind.mixin-Cp4PyXok.cjs"),N=require("./litElement.mixin-CrpeGpZ7.cjs"),$=require("lit/directive.js"),q=require("lit/async-directive.js");var H=Object.defineProperty,O=Object.getOwnPropertyDescriptor,g=(s,e,t,i)=>{for(var a,n=i>1?void 0:i?O(e,t):e,o=s.length-1;o>=0;o--)(a=s[o])&&(n=(i?a(e,t,n):a(n))||n);return i&&n&&H(e,t,n),n};function C(s,e,t="up",i=.3){const a=(s.x+e.x)/2,n=(s.y+e.y)/2,o=Math.sqrt(Math.pow(e.x-s.x,2)+Math.pow(e.y-s.y,2)),r=Math.min(o*i,150);return{x:a,y:t==="up"?n-r:n+r}}exports.SchmancyLightbox=class extends N.$LitElement(l.css`
|
|
2
|
+
:host {
|
|
3
|
+
display: contents;
|
|
4
|
+
}
|
|
5
|
+
`){constructor(){super(...arguments),this.src="",this.images=[],this.initialIndex=0,this.open=!1,this.currentIndex=0,this.isLoading=!1,this.swipeThreshold=50,this.overlayRef=y.createRef(),this.contentRef=y.createRef(),this.imageRef=y.createRef(),this.handleClose=()=>{this.open=!1},this.handlePrevious=()=>{this.isGalleryMode&&this.images.length>1&&(this.isLoading=!0,this.currentIndex=(this.currentIndex-1+this.images.length)%this.images.length,this.dispatchEvent(new CustomEvent("change",{detail:{index:this.currentIndex},bubbles:!0,composed:!0})))},this.handleNext=()=>{this.isGalleryMode&&this.images.length>1&&(this.isLoading=!0,this.currentIndex=(this.currentIndex+1)%this.images.length,this.dispatchEvent(new CustomEvent("change",{detail:{index:this.currentIndex},bubbles:!0,composed:!0})))},this.handleImageLoad=()=>{this.isLoading=!1},this.handleOverlayClick=s=>{s.target===s.currentTarget&&this.handleClose()}}get isGalleryMode(){return this.images.length>0}get currentImageSrc(){return this.isGalleryMode?this.images[this.currentIndex]||"":this.src}connectedCallback(){super.connectedCallback(),this.currentIndex=this.initialIndex}updated(s){super.updated(s),s.has("open")&&(this.open?(document.body.style.overflow="hidden",this.animateIn(),this.setupEventListeners()):(document.body.style.overflow="",this.animateOut())),s.has("initialIndex")&&(this.currentIndex=this.initialIndex),s.has("currentIndex")&&this.open&&this.animateImageChange()}animateIn(){const s=this.overlayRef.value,e=this.contentRef.value,t=this.imageRef.value;s&&(s.style.backgroundColor="rgba(0, 0, 0, 0)",s.style.opacity="0",s.animate([{opacity:0},{opacity:1}],{duration:300,easing:"cubic-bezier(0.25, 1, 0.5, 1)",fill:"forwards"}),requestAnimationFrame(()=>{s.style.backgroundColor="rgba(0, 0, 0, 0.95)"})),e&&e.animate([{transform:"scale(0.95)",opacity:0},{transform:"scale(1)",opacity:1}],{duration:400,delay:100,easing:"cubic-bezier(0.34, 1.56, 0.64, 1)",fill:"forwards"}),t&&t.animate([{opacity:0,transform:"scale(0.98)"},{opacity:1,transform:"scale(1)"}],{duration:350,delay:150,easing:"cubic-bezier(0.25, 1, 0.5, 1)",fill:"forwards"})}animateOut(){const s=this.overlayRef.value,e=this.contentRef.value,t=this.imageRef.value;t&&t.animate([{transform:"scale(1)",opacity:1},{transform:"scale(0.95)",opacity:0}],{duration:200,easing:"ease-out",fill:"forwards"}),e&&e.animate([{transform:"scale(1)",opacity:1},{transform:"scale(0.95)",opacity:0}],{duration:250,easing:"ease-out",fill:"forwards"}),s&&(s.animate([{opacity:1},{opacity:0}],{duration:250,delay:50,easing:"ease-out",fill:"forwards"}).onfinish=()=>{s.style.backgroundColor="rgba(0, 0, 0, 0)",this.dispatchEvent(new CustomEvent("close",{bubbles:!0,composed:!0}))})}animateImageChange(){const s=this.imageRef.value;s&&(s.animate([{opacity:1,transform:"scale(1)"},{opacity:0,transform:"scale(0.98)"}],{duration:150,easing:"ease-out",fill:"forwards"}).onfinish=()=>{s.animate([{opacity:0,transform:"scale(0.98)"},{opacity:1,transform:"scale(1)"}],{duration:200,easing:"cubic-bezier(0.25, 1, 0.5, 1)",fill:"forwards"})})}setupEventListeners(){if(h.fromEvent(document,"keydown").pipe(m.filter(()=>this.open),m.tap(i=>{switch(i.key){case"Escape":this.handleClose();break;case"ArrowLeft":this.handlePrevious();break;case"ArrowRight":this.handleNext()}}),m.takeUntil(this.disconnecting)).subscribe(),!this.isGalleryMode||this.images.length<=1)return;const s=this.contentRef.value;if(!s)return;const e=h.fromEvent(s,"touchstart"),t=h.fromEvent(s,"touchend");e.pipe(m.switchMap(i=>{const a=i.touches[0].clientX;return t.pipe(m.first(),m.map(n=>n.changedTouches[0].clientX-a))}),m.filter(i=>Math.abs(i)>this.swipeThreshold),m.tap(i=>i>0?this.handlePrevious():this.handleNext()),m.takeUntil(this.disconnecting)).subscribe()}render(){return this.open?l.html`
|
|
6
|
+
<div
|
|
7
|
+
${y.ref(this.overlayRef)}
|
|
8
|
+
class="fixed inset-0 z-9999 flex items-center justify-center backdrop-blur-sm"
|
|
9
|
+
@click=${this.handleOverlayClick}
|
|
10
|
+
>
|
|
11
|
+
<div
|
|
12
|
+
${y.ref(this.contentRef)}
|
|
13
|
+
class="relative max-w-[90vw] max-h-[90vh]"
|
|
14
|
+
@click=${s=>s.stopPropagation()}
|
|
15
|
+
>
|
|
16
|
+
<!-- Close Button -->
|
|
17
|
+
<button
|
|
18
|
+
class="absolute top-4 right-4 md:top-4 md:right-4 sm:top-2 sm:right-2 bg-white/15 backdrop-blur-md border border-white/20 text-white w-11 h-11 rounded-full flex items-center justify-center cursor-pointer z-10 transition-all duration-200 hover:bg-white/25 hover:scale-105 active:scale-95"
|
|
19
|
+
@click=${this.handleClose}
|
|
20
|
+
aria-label="Close lightbox"
|
|
21
|
+
title="Close (Esc)"
|
|
22
|
+
>
|
|
23
|
+
<schmancy-icon>close</schmancy-icon>
|
|
24
|
+
</button>
|
|
25
|
+
|
|
26
|
+
<!-- Touch Zones for Gallery Navigation -->
|
|
27
|
+
${I.when(this.isGalleryMode&&this.images.length>1,()=>l.html`
|
|
28
|
+
<div
|
|
29
|
+
class="absolute top-0 bottom-0 left-0 w-1/3 cursor-pointer z-5"
|
|
30
|
+
@click=${this.handlePrevious}
|
|
31
|
+
></div>
|
|
32
|
+
<div
|
|
33
|
+
class="absolute top-0 bottom-0 right-0 w-1/3 cursor-pointer z-5"
|
|
34
|
+
@click=${this.handleNext}
|
|
35
|
+
></div>
|
|
36
|
+
`)}
|
|
37
|
+
|
|
38
|
+
<!-- Loading Spinner -->
|
|
39
|
+
${I.when(this.isLoading,()=>l.html`
|
|
40
|
+
<div class="absolute top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2">
|
|
41
|
+
<schmancy-progress indeterminate></schmancy-progress>
|
|
42
|
+
</div>
|
|
43
|
+
`)}
|
|
44
|
+
|
|
45
|
+
<!-- Main Image -->
|
|
46
|
+
<img
|
|
47
|
+
${y.ref(this.imageRef)}
|
|
48
|
+
class="max-w-[90vw] max-h-[90vh] object-contain rounded select-none touch-pinch-zoom ${this.isGalleryMode?"cursor-default":"cursor-pointer"}"
|
|
49
|
+
.src=${this.currentImageSrc}
|
|
50
|
+
alt="Full size image"
|
|
51
|
+
@load=${this.handleImageLoad}
|
|
52
|
+
@click=${()=>this.isGalleryMode?null:this.handleClose()}
|
|
53
|
+
/>
|
|
54
|
+
|
|
55
|
+
<!-- Navigation Controls (Gallery Mode Only) -->
|
|
56
|
+
${I.when(this.isGalleryMode&&this.images.length>1,()=>l.html`
|
|
57
|
+
<div
|
|
58
|
+
class="absolute bottom-[-3.5rem] md:bottom-[-3.5rem] sm:bottom-[-3rem] left-1/2 -translate-x-1/2 flex items-center gap-4 z-10"
|
|
59
|
+
>
|
|
60
|
+
<button
|
|
61
|
+
class="bg-white/15 backdrop-blur-md border border-white/20 text-white w-10 h-10 rounded-full flex items-center justify-center cursor-pointer transition-all duration-200 hover:bg-white/25 hover:scale-105 active:scale-95"
|
|
62
|
+
@click=${this.handlePrevious}
|
|
63
|
+
aria-label="Previous image"
|
|
64
|
+
title="Previous (←)"
|
|
65
|
+
>
|
|
66
|
+
<schmancy-icon>arrow_back</schmancy-icon>
|
|
67
|
+
</button>
|
|
68
|
+
|
|
69
|
+
<div class="text-white text-base font-medium min-w-16 text-center" aria-live="polite">
|
|
70
|
+
${this.currentIndex+1} / ${this.images.length}
|
|
71
|
+
</div>
|
|
72
|
+
|
|
73
|
+
<button
|
|
74
|
+
class="bg-white/15 backdrop-blur-md border border-white/20 text-white w-10 h-10 rounded-full flex items-center justify-center cursor-pointer transition-all duration-200 hover:bg-white/25 hover:scale-105 active:scale-95"
|
|
75
|
+
@click=${this.handleNext}
|
|
76
|
+
aria-label="Next image"
|
|
77
|
+
title="Next (→)"
|
|
78
|
+
>
|
|
79
|
+
<schmancy-icon>arrow_forward</schmancy-icon>
|
|
80
|
+
</button>
|
|
81
|
+
</div>
|
|
82
|
+
`)}
|
|
83
|
+
</div>
|
|
84
|
+
</div>
|
|
85
|
+
`:l.html``}},g([u.property({type:String})],exports.SchmancyLightbox.prototype,"src",2),g([u.property({type:Array})],exports.SchmancyLightbox.prototype,"images",2),g([u.property({type:Number})],exports.SchmancyLightbox.prototype,"initialIndex",2),g([u.property({type:Boolean})],exports.SchmancyLightbox.prototype,"open",2),g([u.state()],exports.SchmancyLightbox.prototype,"currentIndex",2),g([u.state()],exports.SchmancyLightbox.prototype,"isLoading",2),exports.SchmancyLightbox=g([u.customElement("schmancy-lightbox")],exports.SchmancyLightbox);class G extends q.AsyncDirective{constructor(e){if(super(e),this.hasAnimated=!1,e.type!==$.PartType.ELEMENT)throw new Error("flip directive can only be used on elements")}render(e){return l.noChange}update(e,[t]){this.element=e.element;const i=t?.sourceElement||t?.position;return!this.hasAnimated&&i&&(this.hasAnimated=!0,this.animateIn(t)),l.noChange}animateIn(e){if(!this.element||window.matchMedia("(prefers-reduced-motion: reduce)").matches)return;const t=e?.duration??600,i=e?.scale!==!1,a=e?.blackbird!==!1,n=(o=e?.position,o?"clientX"in o?{x:o.clientX,y:o.clientY}:"touches"in o&&o.touches.length?{x:o.touches[0].clientX,y:o.touches[0].clientY}:"x"in o&&"y"in o?{x:o.x,y:o.y}:null:null);var o;const r=e?.sourceElement?.getBoundingClientRect(),b=()=>{const d=this.element.getBoundingClientRect(),c={x:d.left+d.width/2,y:d.top+d.height/2};let x,f={x:.1,y:.1};r?(x={x:r.left+r.width/2,y:r.top+r.height/2},i&&(f={x:r.width/d.width,y:r.height/d.height})):x=n||{x:window.innerWidth/2,y:window.innerHeight/2};const L=x.x-c.x,E=x.y-c.y;if(a&&n&&r){const v={x:n.x-c.x,y:n.y-c.y},w=C(x,n,"up",.4),j=C(n,c,"down",.3),P={x:w.x-c.x,y:w.y-c.y},S={x:j.x-c.x,y:j.y-c.y},M=.3;this.element.animate([{transform:`translate(${L}px, ${E}px) scale(${f.x}, ${f.y})`,opacity:.6,offset:0},{transform:`translate(${P.x}px, ${P.y}px) scale(${.7*M})`,opacity:.8,offset:.25},{transform:`translate(${v.x}px, ${v.y}px) scale(${M})`,opacity:.9,offset:.5},{transform:`translate(${S.x}px, ${S.y}px) scale(0.6)`,opacity:.95,offset:.75},{transform:"translate(0, 0) scale(1)",opacity:1,offset:1}],{duration:t,easing:"cubic-bezier(0.34, 1.2, 0.64, 1)",fill:"forwards"})}else if(a&&n){const v=C(n,c,"down",.35),w={x:v.x-c.x,y:v.y-c.y};this.element.animate([{transform:`translate(${L}px, ${E}px) scale(0.1)`,opacity:0,offset:0},{transform:`translate(${w.x}px, ${w.y}px) scale(0.5)`,opacity:.8,offset:.5},{transform:"translate(0, 0) scale(1)",opacity:1,offset:1}],{duration:t,easing:"cubic-bezier(0.34, 1.2, 0.64, 1)",fill:"forwards"})}else this.element.animate([{transform:`translate(${L}px, ${E}px) scale(${f.x}, ${f.y})`,opacity:0},{transform:"translate(0, 0) scale(1, 1)",opacity:1}],{duration:t,easing:e?.easing??"cubic-bezier(0.34, 1.56, 0.64, 1)",fill:"forwards"})};this.element instanceof HTMLImageElement?this.element.complete?requestAnimationFrame(b):this.element.onload=()=>requestAnimationFrame(b):requestAnimationFrame(b)}}const R=$.directive(G);class T extends q.AsyncDirective{constructor(e){if(super(e),this.currentIndex=0,this.images=[],e.type!==$.PartType.ELEMENT)throw new Error("lightbox directive can only be used on elements")}render(e){return l.noChange}update(e,[t]){return this.element=e.element,this.clickHandler||(this.clickHandler=i=>{if(i.preventDefault(),i.stopPropagation(),"clientX"in i)this.clickPosition={x:i.clientX,y:i.clientY};else if("touches"in i&&i.touches.length){const a=i.touches[0];this.clickPosition={x:a.clientX,y:a.clientY}}t?.images&&t.images.length>0?(this.images=t.images,this.currentIndex=t.index||0):(this.images=[this.element.src],this.currentIndex=0),this.overlay=t?.overlay,this.open()},this.element.addEventListener("click",this.clickHandler),this.element.style.cursor="pointer",this.element.classList.add("hover:opacity-80","transition-opacity")),l.noChange}open(){this.overlayElement=document.createElement("div"),this.overlayElement.className="fixed inset-0 flex items-center justify-center opacity-0 bg-black/95 backdrop-blur-sm",this.overlayElement.style.zIndex="1000",l.render(this.renderLightbox(),this.overlayElement),document.body.appendChild(this.overlayElement),document.body.style.overflow="hidden",requestAnimationFrame(()=>{this.overlayElement.animate([{opacity:0},{opacity:1}],{duration:300,easing:"cubic-bezier(0.25, 1, 0.5, 1)",fill:"forwards"})}),this.keyHandler=e=>{e.key==="Escape"&&this.close(),e.key==="ArrowLeft"&&this.images.length>1&&this.prev(),e.key==="ArrowRight"&&this.images.length>1&&this.next()},document.addEventListener("keydown",this.keyHandler),this.overlayElement.addEventListener("click",e=>{e.target===this.overlayElement&&this.close()})}close(){if(!this.overlayElement)return;const e=this.overlayElement.querySelector("[data-lightbox-content]");if(e&&this.clickPosition){const t=e.getBoundingClientRect(),i=this.clickPosition.x-(t.left+t.width/2),a=this.clickPosition.y-(t.top+t.height/2),n=e.animate([{transform:"translate(0, 0) scale(1)",opacity:1},{transform:`translate(${i}px, ${a}px) scale(0.1)`,opacity:0}],{duration:300,easing:"cubic-bezier(0.4, 0, 0.2, 1)",fill:"forwards"});this.overlayElement.animate([{opacity:1},{opacity:0}],{duration:250,easing:"ease-out",fill:"forwards"}),n.onfinish=()=>{this.overlayElement?.remove(),this.overlayElement=void 0,document.body.style.overflow=""}}else this.overlayElement.animate([{opacity:1},{opacity:0}],{duration:250,easing:"ease-out",fill:"forwards"}).onfinish=()=>{this.overlayElement?.remove(),this.overlayElement=void 0,document.body.style.overflow=""};this.keyHandler&&(document.removeEventListener("keydown",this.keyHandler),this.keyHandler=void 0)}prev(){this.currentIndex=(this.currentIndex-1+this.images.length)%this.images.length,this.updateImage()}next(){this.currentIndex=(this.currentIndex+1)%this.images.length,this.updateImage()}updateImage(){this.overlayElement&&l.render(this.renderLightbox(),this.overlayElement)}renderLightbox(){const e=this.images[this.currentIndex],t=this.images.length>1;return l.html`
|
|
86
|
+
<div
|
|
87
|
+
data-lightbox-content
|
|
88
|
+
class="relative"
|
|
89
|
+
style=${k.styleMap({transformOrigin:"center center"})}
|
|
90
|
+
@click=${i=>i.stopPropagation()}
|
|
91
|
+
>
|
|
92
|
+
<!-- Close button -->
|
|
93
|
+
<button
|
|
94
|
+
class="absolute top-2 right-2 z-10 w-10 h-10 rounded-full bg-white/20 hover:bg-white/30 flex items-center justify-center text-white transition-colors"
|
|
95
|
+
@click=${()=>this.close()}
|
|
96
|
+
aria-label="Close"
|
|
97
|
+
>
|
|
98
|
+
<span class="text-2xl">×</span>
|
|
99
|
+
</button>
|
|
100
|
+
|
|
101
|
+
<!-- Image container with optional overlay -->
|
|
102
|
+
<div class="relative">
|
|
103
|
+
<img
|
|
104
|
+
src=${e}
|
|
105
|
+
${R({sourceElement:this.element,position:this.clickPosition,duration:600,scale:!0,blackbird:!0})}
|
|
106
|
+
class="object-contain rounded-lg"
|
|
107
|
+
style="max-height: calc(100vh - 40px); max-width: 90vw;"
|
|
108
|
+
@click=${()=>!t&&this.close()}
|
|
109
|
+
/>
|
|
110
|
+
${this.overlay?this.overlay:""}
|
|
111
|
+
</div>
|
|
112
|
+
|
|
113
|
+
<!-- Gallery controls -->
|
|
114
|
+
${t?l.html`
|
|
115
|
+
<div class="flex items-center justify-center gap-4 text-white mt-4">
|
|
116
|
+
<button
|
|
117
|
+
class="w-10 h-10 rounded-full bg-white/20 hover:bg-white/30 flex items-center justify-center transition-colors"
|
|
118
|
+
@click=${()=>this.prev()}
|
|
119
|
+
aria-label="Previous"
|
|
120
|
+
>
|
|
121
|
+
←
|
|
122
|
+
</button>
|
|
123
|
+
|
|
124
|
+
<div class="text-lg">${this.currentIndex+1} / ${this.images.length}</div>
|
|
125
|
+
|
|
126
|
+
<button
|
|
127
|
+
class="w-10 h-10 rounded-full bg-white/20 hover:bg-white/30 flex items-center justify-center transition-colors"
|
|
128
|
+
@click=${()=>this.next()}
|
|
129
|
+
aria-label="Next"
|
|
130
|
+
>
|
|
131
|
+
→
|
|
132
|
+
</button>
|
|
133
|
+
</div>
|
|
134
|
+
`:""}
|
|
135
|
+
</div>
|
|
136
|
+
`}disconnected(){this.element&&this.clickHandler&&this.element.removeEventListener("click",this.clickHandler),this.close()}}const z=$.directive(T);class p{constructor(){this.pushSubject=new h.Subject,this.dismissSubject=new h.Subject,this.setupLightboxOpeningLogic(),this.setupLightboxDismissLogic()}static getInstance(){return p.instance||(p.instance=new p),p.instance}setupLightboxOpeningLogic(){this.pushSubject.pipe(h.switchMap(e=>A.discoverComponent("schmancy-theme").pipe(h.map(t=>{const i=t||document.body,a=document.createElement("div");return a.className="fixed inset-0 flex items-center justify-center opacity-0 bg-black/95 backdrop-blur-sm",a.style.zIndex="1000",i.appendChild(a),document.body.style.overflow="hidden",{overlay:a,config:e,container:i}}))),h.tap(({overlay:e,config:t})=>{let i=[],a=0;t.images&&t.images.length>0?(i=t.images,a=t.index||0):t.image&&(i=[t.image],a=0),this.activeLightbox={element:e,config:t,currentIndex:a,images:i},h.fromEvent(document,"keydown").pipe(h.takeUntil(this.dismissSubject),h.filter(()=>!!this.activeLightbox),h.tap(n=>{n.key==="Escape"&&this.dismiss(),n.key==="ArrowLeft"&&this.activeLightbox.images.length>1&&this.navigatePrev(),n.key==="ArrowRight"&&this.activeLightbox.images.length>1&&this.navigateNext()})).subscribe(),h.fromEvent(e,"click").pipe(h.takeUntil(this.dismissSubject),h.filter(n=>n.target===e),h.tap(()=>this.dismiss())).subscribe(),t.component?this.renderComponent(e,t):this.renderLightbox(e,t,i,a),requestAnimationFrame(()=>{e.animate([{opacity:0},{opacity:1}],{duration:300,easing:"cubic-bezier(0.25, 1, 0.5, 1)",fill:"forwards"})})})).subscribe()}setupLightboxDismissLogic(){this.dismissSubject.pipe(h.tap(()=>{if(!this.activeLightbox)return;const{element:e}=this.activeLightbox;e.animate([{opacity:1},{opacity:0}],{duration:250,easing:"ease-out",fill:"forwards"}).onfinish=()=>{e.remove(),document.body.style.overflow=""},this.activeLightbox=void 0})).subscribe()}push(e){this.activeLightbox&&this.dismiss(),this.pushSubject.next(e)}dismiss(){this.dismissSubject.next()}navigatePrev(){if(!this.activeLightbox||this.activeLightbox.images.length<=1)return;const{images:e,config:t,element:i}=this.activeLightbox;this.activeLightbox.currentIndex=(this.activeLightbox.currentIndex-1+e.length)%e.length,this.renderLightbox(i,t,e,this.activeLightbox.currentIndex)}navigateNext(){if(!this.activeLightbox||this.activeLightbox.images.length<=1)return;const{images:e,config:t,element:i}=this.activeLightbox;this.activeLightbox.currentIndex=(this.activeLightbox.currentIndex+1)%e.length,this.renderLightbox(i,t,e,this.activeLightbox.currentIndex)}renderComponent(e,t){if(!t.component)return;let i;i=typeof t.component=="string"?document.createElement(t.component):new t.component,t.props&&Object.entries(t.props).forEach(([o,r])=>{i[o]=r});const a=l.html`
|
|
137
|
+
<div class="relative" @click=${o=>o.stopPropagation()}>
|
|
138
|
+
<!-- Close button -->
|
|
139
|
+
<button
|
|
140
|
+
class="absolute -top-12 right-0 z-10 w-10 h-10 rounded-full bg-white/20 hover:bg-white/30 flex items-center justify-center text-white transition-colors"
|
|
141
|
+
@click=${()=>this.dismiss()}
|
|
142
|
+
aria-label="Close"
|
|
143
|
+
>
|
|
144
|
+
<span class="text-2xl">×</span>
|
|
145
|
+
</button>
|
|
146
|
+
|
|
147
|
+
<!-- Component container -->
|
|
148
|
+
<div id="lightbox-component-container"></div>
|
|
149
|
+
</div>
|
|
150
|
+
`;l.render(a,e);const n=e.querySelector("#lightbox-component-container");n&&n.appendChild(i)}renderLightbox(e,t,i,a){const n=i[a],o=i.length>1;let r=null;t.overlay&&(typeof t.overlay=="string"?r=document.createElement(t.overlay):typeof t.overlay=="function"&&(r=new t.overlay),t.props&&r&&Object.entries(t.props).forEach(([d,c])=>{r[d]=c}));const b=l.html`
|
|
151
|
+
<div
|
|
152
|
+
class="relative"
|
|
153
|
+
style=${k.styleMap({maxWidth:"90vw",maxHeight:"90vh"})}
|
|
154
|
+
@click=${d=>d.stopPropagation()}
|
|
155
|
+
>
|
|
156
|
+
<!-- Close button -->
|
|
157
|
+
<button
|
|
158
|
+
class="absolute top-4 right-4 z-10 w-10 h-10 rounded-full bg-white/20 hover:bg-white/30 flex items-center justify-center text-white transition-colors"
|
|
159
|
+
@click=${()=>this.dismiss()}
|
|
160
|
+
aria-label="Close"
|
|
161
|
+
>
|
|
162
|
+
<span class="text-2xl">×</span>
|
|
163
|
+
</button>
|
|
164
|
+
|
|
165
|
+
<!-- Image container with optional overlay -->
|
|
166
|
+
<div class="relative" id="lightbox-image-container">
|
|
167
|
+
<img
|
|
168
|
+
src=${n}
|
|
169
|
+
class="max-w-full object-contain rounded-lg"
|
|
170
|
+
style=${k.styleMap({maxHeight:"85vh"})}
|
|
171
|
+
@click=${()=>!o&&this.dismiss()}
|
|
172
|
+
/>
|
|
173
|
+
</div>
|
|
174
|
+
|
|
175
|
+
<!-- Gallery controls -->
|
|
176
|
+
${o?l.html`
|
|
177
|
+
<div
|
|
178
|
+
class="absolute left-1/2 -translate-x-1/2 flex items-center gap-4 text-white"
|
|
179
|
+
style=${k.styleMap({bottom:"-60px"})}
|
|
180
|
+
>
|
|
181
|
+
<button
|
|
182
|
+
class="w-10 h-10 rounded-full bg-white/20 hover:bg-white/30 flex items-center justify-center transition-colors"
|
|
183
|
+
@click=${()=>this.navigatePrev()}
|
|
184
|
+
aria-label="Previous"
|
|
185
|
+
>
|
|
186
|
+
←
|
|
187
|
+
</button>
|
|
188
|
+
|
|
189
|
+
<div class="text-lg">${a+1} / ${i.length}</div>
|
|
190
|
+
|
|
191
|
+
<button
|
|
192
|
+
class="w-10 h-10 rounded-full bg-white/20 hover:bg-white/30 flex items-center justify-center transition-colors"
|
|
193
|
+
@click=${()=>this.navigateNext()}
|
|
194
|
+
aria-label="Next"
|
|
195
|
+
>
|
|
196
|
+
→
|
|
197
|
+
</button>
|
|
198
|
+
</div>
|
|
199
|
+
`:""}
|
|
200
|
+
</div>
|
|
201
|
+
`;if(l.render(b,e),r){const d=e.querySelector("#lightbox-image-container");if(d){const c=d.querySelector("[data-lightbox-overlay]");c&&c.remove(),r.setAttribute("data-lightbox-overlay",""),d.appendChild(r)}}}}const X=Object.assign(s=>z(s),{push:s=>p.getInstance().push(s),dismiss:()=>p.getInstance().dismiss()});exports.flip=R,exports.lightbox=z,exports.lightbox$1=X;
|
|
202
|
+
//# sourceMappingURL=lightbox-service-D-0JtxB1.cjs.map
|