@mhmo91/schmancy 0.5.23 → 0.5.25
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/ai/boat.md +6 -4
- package/dist/ai/boat.md +6 -4
- package/dist/{animated-text-f2NuhTiS.cjs → animated-text-CiHeHOww.cjs} +2 -2
- package/dist/{animated-text-f2NuhTiS.cjs.map → animated-text-CiHeHOww.cjs.map} +1 -1
- package/dist/{animated-text-Do2JCORX.js → animated-text-Q61RCdXT.js} +3 -3
- package/dist/{animated-text-Do2JCORX.js.map → animated-text-Q61RCdXT.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-Dez2yju_.cjs → area.component-C_cHSKz0.cjs} +2 -2
- package/dist/{area.component-Dez2yju_.cjs.map → area.component-C_cHSKz0.cjs.map} +1 -1
- package/dist/{area.component-BSMLE67D.js → area.component-DYMGLvuA.js} +3 -3
- package/dist/{area.component-BSMLE67D.js.map → area.component-DYMGLvuA.js.map} +1 -1
- package/dist/area.js +1 -1
- package/dist/{autocomplete-CTrPzVTE.js → autocomplete-DuQWyQeT.js} +4 -4
- package/dist/{autocomplete-CTrPzVTE.js.map → autocomplete-DuQWyQeT.js.map} +1 -1
- package/dist/{autocomplete-D-p-hOUD.cjs → autocomplete-ZT3BOEA5.cjs} +2 -2
- package/dist/{autocomplete-D-p-hOUD.cjs.map → autocomplete-ZT3BOEA5.cjs.map} +1 -1
- package/dist/autocomplete.cjs +1 -1
- package/dist/autocomplete.js +1 -1
- package/dist/{avatar-lHK31d6x.cjs → avatar-8CSFLRvq.cjs} +2 -2
- package/dist/{avatar-lHK31d6x.cjs.map → avatar-8CSFLRvq.cjs.map} +1 -1
- package/dist/{avatar-BbJkXEbj.js → avatar-BcnWoLvo.js} +50 -50
- package/dist/{avatar-BbJkXEbj.js.map → avatar-BcnWoLvo.js.map} +1 -1
- package/dist/badge.cjs +1 -1
- package/dist/badge.js +1 -1
- package/dist/boat-BTSQNgJQ.js +174 -0
- package/dist/boat-BTSQNgJQ.js.map +1 -0
- package/dist/boat-BtViHW8M.cjs +66 -0
- package/dist/boat-BtViHW8M.cjs.map +1 -0
- package/dist/boat.cjs +1 -1
- package/dist/boat.js +1 -1
- package/dist/busy.cjs +1 -1
- package/dist/busy.js +1 -1
- package/dist/button.cjs +1 -1
- package/dist/button.js +1 -1
- package/dist/card.cjs +1 -1
- package/dist/card.js +1 -1
- package/dist/{checkbox-DWZfWmmN.cjs → checkbox-D0LwTB_L.cjs} +2 -2
- package/dist/{checkbox-DWZfWmmN.cjs.map → checkbox-D0LwTB_L.cjs.map} +1 -1
- package/dist/{checkbox-C-iKquia.js → checkbox-WxVuYamU.js} +2 -2
- package/dist/{checkbox-C-iKquia.js.map → checkbox-WxVuYamU.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-BRMIOyPn.js → code-preview-7uzeIcQP.js} +2 -2
- package/dist/{code-preview-BRMIOyPn.js.map → code-preview-7uzeIcQP.js.map} +1 -1
- package/dist/{code-preview-4wU5lZC2.cjs → code-preview-BcwituOr.cjs} +2 -2
- package/dist/{code-preview-4wU5lZC2.cjs.map → code-preview-BcwituOr.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/{date-range-RKsMmIJo.cjs → date-range-eygGuBZz.cjs} +2 -2
- package/dist/{date-range-RKsMmIJo.cjs.map → date-range-eygGuBZz.cjs.map} +1 -1
- package/dist/{date-range-inline-CYfe4cSe.cjs → date-range-inline-97fWguq7.cjs} +2 -2
- package/dist/{date-range-inline-CYfe4cSe.cjs.map → date-range-inline-97fWguq7.cjs.map} +1 -1
- package/dist/{date-range-inline-haX8zJj5.js → date-range-inline-B2QQNDMg.js} +3 -3
- package/dist/{date-range-inline-haX8zJj5.js.map → date-range-inline-B2QQNDMg.js.map} +1 -1
- package/dist/date-range-inline.cjs +1 -1
- package/dist/date-range-inline.js +1 -1
- package/dist/{date-range-De83wfZy.js → date-range-s3Us154k.js} +3 -3
- package/dist/{date-range-De83wfZy.js.map → date-range-s3Us154k.js.map} +1 -1
- package/dist/date-range.cjs +1 -1
- package/dist/date-range.js +1 -1
- package/dist/{delay-BRnV1hev.cjs → delay-B0GqQ3C1.cjs} +2 -2
- package/dist/{delay-BRnV1hev.cjs.map → delay-B0GqQ3C1.cjs.map} +1 -1
- package/dist/{delay-DIvTLOWT.js → delay-CQEb521T.js} +2 -2
- package/dist/{delay-DIvTLOWT.js.map → delay-CQEb521T.js.map} +1 -1
- package/dist/delay.cjs +1 -1
- package/dist/delay.js +1 -1
- package/dist/{details-BdJ7abcF.cjs → details-BSmS_ILq.cjs} +2 -2
- package/dist/{details-BdJ7abcF.cjs.map → details-BSmS_ILq.cjs.map} +1 -1
- package/dist/{details-YP34eEOP.js → details-kr1zYIlK.js} +2 -2
- package/dist/{details-YP34eEOP.js.map → details-kr1zYIlK.js.map} +1 -1
- package/dist/details.cjs +1 -1
- package/dist/details.js +1 -1
- package/dist/{dialog-content-B1PDSXlF.js → dialog-content-CcNZ5YU6.js} +3 -3
- package/dist/{dialog-content-B1PDSXlF.js.map → dialog-content-CcNZ5YU6.js.map} +1 -1
- package/dist/{dialog-content-DVFcNrW6.cjs → dialog-content-DMImBN73.cjs} +2 -2
- package/dist/{dialog-content-DVFcNrW6.cjs.map → dialog-content-DMImBN73.cjs.map} +1 -1
- package/dist/dialog.cjs +1 -1
- package/dist/dialog.js +1 -1
- package/dist/{divider-Ck3Pm0Sj.cjs → divider-DNxHAfMo.cjs} +2 -2
- package/dist/{divider-Ck3Pm0Sj.cjs.map → divider-DNxHAfMo.cjs.map} +1 -1
- package/dist/{divider-ZpoqXrpr.js → divider-DvznHh3I.js} +3 -3
- package/dist/{divider-ZpoqXrpr.js.map → divider-DvznHh3I.js.map} +1 -1
- package/dist/divider.cjs +1 -1
- package/dist/divider.js +1 -1
- package/dist/{dropdown-content-Cb7bvik_.cjs → dropdown-content-CH5MB5mz.cjs} +2 -2
- package/dist/{dropdown-content-Cb7bvik_.cjs.map → dropdown-content-CH5MB5mz.cjs.map} +1 -1
- package/dist/{dropdown-content-CaejLE2F.js → dropdown-content-CtMauszk.js} +3 -3
- package/dist/{dropdown-content-CaejLE2F.js.map → dropdown-content-CtMauszk.js.map} +1 -1
- package/dist/dropdown.cjs +1 -1
- package/dist/dropdown.js +1 -1
- package/dist/{email-recipients-Ba_Otsk0.js → email-recipients-BxiV610x.js} +5 -5
- package/dist/{email-recipients-Ba_Otsk0.js.map → email-recipients-BxiV610x.js.map} +1 -1
- package/dist/{email-recipients-6po8vlOh.cjs → email-recipients-pW93YxrA.cjs} +2 -2
- package/dist/{email-recipients-6po8vlOh.cjs.map → email-recipients-pW93YxrA.cjs.map} +1 -1
- package/dist/extra.cjs +1 -1
- package/dist/extra.js +1 -1
- package/dist/{flex-CDA_38jQ.cjs → flex-H2ZPqfIW.cjs} +2 -2
- package/dist/{flex-CDA_38jQ.cjs.map → flex-H2ZPqfIW.cjs.map} +1 -1
- package/dist/{flex-CLQrGtIm.js → flex-ykbucnko.js} +2 -2
- package/dist/{flex-CLQrGtIm.js.map → flex-ykbucnko.js.map} +1 -1
- package/dist/{form-B7-c3KWc.cjs → form-C7FRhHOX.cjs} +2 -2
- package/dist/{form-B7-c3KWc.cjs.map → form-C7FRhHOX.cjs.map} +1 -1
- package/dist/{form-DtrqYBas.js → form-CGGeAQbK.js} +2 -2
- package/dist/{form-DtrqYBas.js.map → form-CGGeAQbK.js.map} +1 -1
- package/dist/form.cjs +1 -1
- package/dist/form.js +1 -1
- package/dist/{formField.mixin-BPjq6dKf.js → formField.mixin-D-3pktvx.js} +2 -2
- package/dist/{formField.mixin-BPjq6dKf.js.map → formField.mixin-D-3pktvx.js.map} +1 -1
- package/dist/{formField.mixin-C87lQQIw.cjs → formField.mixin-MbkisYHL.cjs} +2 -2
- package/dist/{formField.mixin-C87lQQIw.cjs.map → formField.mixin-MbkisYHL.cjs.map} +1 -1
- package/dist/{icon-C6sk1e1d.js → icon-BiHCgOyT.js} +2 -2
- package/dist/{icon-C6sk1e1d.js.map → icon-BiHCgOyT.js.map} +1 -1
- package/dist/{icon-B7ChIXLP.cjs → icon-CnVNGmjD.cjs} +2 -2
- package/dist/{icon-B7ChIXLP.cjs.map → icon-CnVNGmjD.cjs.map} +1 -1
- package/dist/{icon-button-CU2UDZR7.js → icon-button--hjJtAL_.js} +3 -3
- package/dist/{icon-button-CU2UDZR7.js.map → icon-button--hjJtAL_.js.map} +1 -1
- package/dist/{icon-button-CAUrSeGm.cjs → icon-button-CB52pDFa.cjs} +2 -2
- package/dist/{icon-button-CAUrSeGm.cjs.map → icon-button-CB52pDFa.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 +49 -49
- package/dist/{input-BIOflk_4.cjs → input-BXcrOvCH.cjs} +2 -2
- package/dist/{input-BIOflk_4.cjs.map → input-BXcrOvCH.cjs.map} +1 -1
- package/dist/{input-BdadJyMU.js → input-Mrc7DrIK.js} +3 -3
- package/dist/{input-BdadJyMU.js.map → input-Mrc7DrIK.js.map} +1 -1
- package/dist/{input-chip-Ddvjmzdt.js → input-chip-BRdk5zlg.js} +2 -2
- package/dist/{input-chip-Ddvjmzdt.js.map → input-chip-BRdk5zlg.js.map} +1 -1
- package/dist/{input-chip-IrLdDdsH.cjs → input-chip-DnM_iJbj.cjs} +2 -2
- package/dist/{input-chip-IrLdDdsH.cjs.map → input-chip-DnM_iJbj.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-tM2KMQEk.js → list-CXBxuSyn.js} +2 -2
- package/dist/{list-tM2KMQEk.js.map → list-CXBxuSyn.js.map} +1 -1
- package/dist/{list-DHqttG-L.cjs → list-CYvT9cR6.cjs} +2 -2
- package/dist/{list-DHqttG-L.cjs.map → list-CYvT9cR6.cjs.map} +1 -1
- package/dist/list.cjs +1 -1
- package/dist/list.js +1 -1
- package/dist/{litElement.mixin-Df8xHue5.cjs → litElement.mixin-BlkckXzw.cjs} +2 -2
- package/dist/{litElement.mixin-Df8xHue5.cjs.map → litElement.mixin-BlkckXzw.cjs.map} +1 -1
- package/dist/{litElement.mixin-3N_m8Nzd.js → litElement.mixin-DvxIa-6i.js} +2 -2
- package/dist/{litElement.mixin-3N_m8Nzd.js.map → litElement.mixin-DvxIa-6i.js.map} +1 -1
- package/dist/mailbox.cjs +1 -1
- package/dist/mailbox.js +1 -1
- package/dist/{map-wuM8gVOo.cjs → map-CnBZmqCI.cjs} +2 -2
- package/dist/{map-wuM8gVOo.cjs.map → map-CnBZmqCI.cjs.map} +1 -1
- package/dist/{map-whBWXMf1.js → map-DwJzufvh.js} +2 -2
- package/dist/{map-whBWXMf1.js.map → map-DwJzufvh.js.map} +1 -1
- package/dist/map.cjs +1 -1
- package/dist/map.js +1 -1
- package/dist/{media-CTAUAb26.cjs → media-CdM6XhRo.cjs} +2 -2
- package/dist/{media-CTAUAb26.cjs.map → media-CdM6XhRo.cjs.map} +1 -1
- package/dist/{media-DQi9RiAW.js → media-DOKkl0Ic.js} +2 -2
- package/dist/{media-DQi9RiAW.js.map → media-DOKkl0Ic.js.map} +1 -1
- package/dist/{menu-d6lQa4kG.cjs → menu-1D8Grlkb.cjs} +2 -2
- package/dist/{menu-d6lQa4kG.cjs.map → menu-1D8Grlkb.cjs.map} +1 -1
- package/dist/{menu-C_i7sMLn.js → menu-dj8ocrls.js} +3 -3
- package/dist/{menu-C_i7sMLn.js.map → menu-dj8ocrls.js.map} +1 -1
- package/dist/menu.cjs +1 -1
- package/dist/menu.js +1 -1
- package/dist/nav-drawer.cjs +1 -1
- package/dist/nav-drawer.js +1 -1
- package/dist/navigation-bar.cjs +1 -1
- package/dist/navigation-bar.js +1 -1
- package/dist/{navigation-rail-ChEA8naU.cjs → navigation-rail-CO20kIzL.cjs} +2 -2
- package/dist/{navigation-rail-ChEA8naU.cjs.map → navigation-rail-CO20kIzL.cjs.map} +1 -1
- package/dist/{navigation-rail-Br-sKVac.js → navigation-rail-DDSUxYea.js} +3 -3
- package/dist/{navigation-rail-Br-sKVac.js.map → navigation-rail-DDSUxYea.js.map} +1 -1
- package/dist/navigation-rail.cjs +1 -1
- package/dist/navigation-rail.js +1 -1
- package/dist/{notification-service-Dku7plm9.cjs → notification-service-DcZEP2es.cjs} +2 -2
- package/dist/{notification-service-Dku7plm9.cjs.map → notification-service-DcZEP2es.cjs.map} +1 -1
- package/dist/{notification-service-DDqJgrdo.js → notification-service-pckh5tN0.js} +4 -4
- package/dist/{notification-service-DDqJgrdo.js.map → notification-service-pckh5tN0.js.map} +1 -1
- package/dist/notification.cjs +1 -1
- package/dist/notification.js +2 -2
- package/dist/{notify-CdiZg2_t.js → notify-CkVQ8Yk1.js} +2 -2
- package/dist/{notify-CdiZg2_t.js.map → notify-CkVQ8Yk1.js.map} +1 -1
- package/dist/{notify-fV1Z6dpj.cjs → notify-G37oQhaA.cjs} +2 -2
- package/dist/{notify-fV1Z6dpj.cjs.map → notify-G37oQhaA.cjs.map} +1 -1
- package/dist/{option-CiztepV4.cjs → option-Cjwmga85.cjs} +2 -2
- package/dist/{option-CiztepV4.cjs.map → option-Cjwmga85.cjs.map} +1 -1
- package/dist/{option--zfJKePL.js → option-aPValeTc.js} +2 -2
- package/dist/{option--zfJKePL.js.map → option-aPValeTc.js.map} +1 -1
- package/dist/option.cjs +1 -1
- package/dist/option.js +1 -1
- package/dist/{payment-card-form-Bi6IhJNn.js → payment-card-form-B0kQ8Wr5.js} +3 -3
- package/dist/{payment-card-form-Bi6IhJNn.js.map → payment-card-form-B0kQ8Wr5.js.map} +1 -1
- package/dist/{payment-card-form-DwD6L0p_.cjs → payment-card-form-CbGx00Fm.cjs} +2 -2
- package/dist/{payment-card-form-DwD6L0p_.cjs.map → payment-card-form-CbGx00Fm.cjs.map} +1 -1
- package/dist/{progress-CoxNFuk8.cjs → progress-CmI5A7Z_.cjs} +2 -2
- package/dist/{progress-CoxNFuk8.cjs.map → progress-CmI5A7Z_.cjs.map} +1 -1
- package/dist/{progress-72O6pPs_.js → progress-DuqVkW8o.js} +2 -2
- package/dist/{progress-72O6pPs_.js.map → progress-DuqVkW8o.js.map} +1 -1
- package/dist/progress.cjs +1 -1
- package/dist/progress.js +1 -1
- package/dist/{radio-button-CNy9D8nw.cjs → radio-button-Chlsm46k.cjs} +2 -2
- package/dist/{radio-button-CNy9D8nw.cjs.map → radio-button-Chlsm46k.cjs.map} +1 -1
- package/dist/{radio-button-DAPfHWim.js → radio-button-sQa0jt-L.js} +3 -3
- package/dist/{radio-button-DAPfHWim.js.map → radio-button-sQa0jt-L.js.map} +1 -1
- package/dist/radio-group.cjs +1 -1
- package/dist/radio-group.js +1 -1
- package/dist/{schmancy-steps-container-BxzKa7RY.js → schmancy-steps-container-BsVtwIIR.js} +2 -2
- package/dist/{schmancy-steps-container-BxzKa7RY.js.map → schmancy-steps-container-BsVtwIIR.js.map} +1 -1
- package/dist/{schmancy-steps-container-BWySiig4.cjs → schmancy-steps-container-r34O78hN.cjs} +2 -2
- package/dist/{schmancy-steps-container-BWySiig4.cjs.map → schmancy-steps-container-r34O78hN.cjs.map} +1 -1
- package/dist/{select-DM2lJWsO.js → select-DQNDWSWh.js} +3 -3
- package/dist/{select-DM2lJWsO.js.map → select-DQNDWSWh.js.map} +1 -1
- package/dist/{select-l1ye_NvA.cjs → select-lhS0e1Jw.cjs} +2 -2
- package/dist/{select-l1ye_NvA.cjs.map → select-lhS0e1Jw.cjs.map} +1 -1
- package/dist/select.cjs +1 -1
- package/dist/select.js +1 -1
- package/dist/{sheet-Ce6qoile.cjs → sheet-CVQ6px7m.cjs} +2 -2
- package/dist/{sheet-Ce6qoile.cjs.map → sheet-CVQ6px7m.cjs.map} +1 -1
- package/dist/{sheet-6dHhG8JF.js → sheet-DImUVTqD.js} +3 -3
- package/dist/{sheet-6dHhG8JF.js.map → sheet-DImUVTqD.js.map} +1 -1
- package/dist/sheet.cjs +1 -1
- package/dist/sheet.js +1 -1
- package/dist/{slider-B5RixsC-.js → slider-CZMt67fl.js} +3 -3
- package/dist/{slider-B5RixsC-.js.map → slider-CZMt67fl.js.map} +1 -1
- package/dist/{slider-B65CWJPr.cjs → slider-MzOpDc_J.cjs} +2 -2
- package/dist/{slider-B65CWJPr.cjs.map → slider-MzOpDc_J.cjs.map} +1 -1
- package/dist/slider.cjs +1 -1
- package/dist/slider.js +1 -1
- package/dist/{spinner-BIE4wGt6.cjs → spinner-BuujVERe.cjs} +2 -2
- package/dist/{spinner-BIE4wGt6.cjs.map → spinner-BuujVERe.cjs.map} +1 -1
- package/dist/{spinner-Bj60gT3J.js → spinner-CUHM2lNo.js} +2 -2
- package/dist/{spinner-Bj60gT3J.js.map → spinner-CUHM2lNo.js.map} +1 -1
- package/dist/steps.cjs +1 -1
- package/dist/steps.js +1 -1
- package/dist/{suggestion-chip-ug7g3Gxu.js → suggestion-chip-8mpcT2Lk.js} +3 -3
- package/dist/{suggestion-chip-ug7g3Gxu.js.map → suggestion-chip-8mpcT2Lk.js.map} +1 -1
- package/dist/{suggestion-chip-Cg0XlLBm.cjs → suggestion-chip-CzMoacAF.cjs} +2 -2
- package/dist/{suggestion-chip-Cg0XlLBm.cjs.map → suggestion-chip-CzMoacAF.cjs.map} +1 -1
- package/dist/{surface-68DZCaYM.cjs → surface-C3B9Sbtw.cjs} +2 -2
- package/dist/{surface-68DZCaYM.cjs.map → surface-C3B9Sbtw.cjs.map} +1 -1
- package/dist/{surface-Dp2ZLwZf.js → surface-DdR9DjO8.js} +2 -2
- package/dist/{surface-Dp2ZLwZf.js.map → surface-DdR9DjO8.js.map} +1 -1
- package/dist/surface.cjs +1 -1
- package/dist/surface.js +1 -1
- package/dist/{table-DPApxXET.js → table-DkaAXbrh.js} +2 -2
- package/dist/{table-DPApxXET.js.map → table-DkaAXbrh.js.map} +1 -1
- package/dist/{table-DkPrJwrr.cjs → table-Dt0gOEZZ.cjs} +2 -2
- package/dist/{table-DkPrJwrr.cjs.map → table-Dt0gOEZZ.cjs.map} +1 -1
- package/dist/table.cjs +1 -1
- package/dist/table.js +1 -1
- package/dist/{tabs-compatibility-DjrZHk1o.cjs → tabs-compatibility-5WVuGrk5.cjs} +2 -2
- package/dist/{tabs-compatibility-DjrZHk1o.cjs.map → tabs-compatibility-5WVuGrk5.cjs.map} +1 -1
- package/dist/{tabs-compatibility-D-7b_hie.js → tabs-compatibility-DGvPxrEr.js} +2 -2
- package/dist/{tabs-compatibility-D-7b_hie.js.map → tabs-compatibility-DGvPxrEr.js.map} +1 -1
- package/dist/tabs.cjs +1 -1
- package/dist/tabs.js +1 -1
- package/dist/tailwind.mixin-BbF53_0W.js +43 -0
- package/dist/{tailwind.mixin-CkQXl1kF.js.map → tailwind.mixin-BbF53_0W.js.map} +1 -1
- package/dist/tailwind.mixin-BiRVB4Hl.cjs +2 -0
- package/dist/{tailwind.mixin-x6_PgjK6.cjs.map → tailwind.mixin-BiRVB4Hl.cjs.map} +1 -1
- package/dist/teleport.cjs +1 -1
- package/dist/teleport.js +1 -1
- package/dist/{textarea-g181v20v.cjs → textarea-CJECXt0r.cjs} +2 -2
- package/dist/{textarea-g181v20v.cjs.map → textarea-CJECXt0r.cjs.map} +1 -1
- package/dist/{textarea-CrSFDnAT.js → textarea-mc3Gk2Ch.js} +2 -2
- package/dist/{textarea-CrSFDnAT.js.map → textarea-mc3Gk2Ch.js.map} +1 -1
- package/dist/textarea.cjs +1 -1
- package/dist/textarea.js +1 -1
- package/dist/{theme-button-BSbYxt8O.cjs → theme-button-1nU7sd5N.cjs} +2 -2
- package/dist/{theme-button-BSbYxt8O.cjs.map → theme-button-1nU7sd5N.cjs.map} +1 -1
- package/dist/{theme-button-DNL32-FV.js → theme-button-cDGf9KiE.js} +2 -2
- package/dist/{theme-button-DNL32-FV.js.map → theme-button-cDGf9KiE.js.map} +1 -1
- package/dist/theme-button.cjs +1 -1
- package/dist/theme-button.js +1 -1
- package/dist/theme.cjs +1 -1
- package/dist/{theme.component-D5ai_x50.cjs → theme.component-BpyyRbkh.cjs} +2 -2
- package/dist/{theme.component-D5ai_x50.cjs.map → theme.component-BpyyRbkh.cjs.map} +1 -1
- package/dist/{theme.component-BRhGnuHR.js → theme.component-HF6Qt0YA.js} +2 -2
- package/dist/{theme.component-BRhGnuHR.js.map → theme.component-HF6Qt0YA.js.map} +1 -1
- package/dist/theme.js +1 -1
- package/dist/{timezone-BEwuASpJ.js → timezone-8UCGVbbl.js} +3 -3
- package/dist/{timezone-BEwuASpJ.js.map → timezone-8UCGVbbl.js.map} +1 -1
- package/dist/{timezone-CHKXV8EG.cjs → timezone-DC3VVwlT.cjs} +2 -2
- package/dist/{timezone-CHKXV8EG.cjs.map → timezone-DC3VVwlT.cjs.map} +1 -1
- package/dist/{tooltip-CEwmdIj9.js → tooltip-C5r_jUM1.js} +2 -2
- package/dist/{tooltip-CEwmdIj9.js.map → tooltip-C5r_jUM1.js.map} +1 -1
- package/dist/{tooltip-CBv8iNFU.cjs → tooltip-DNl5aBNp.cjs} +2 -2
- package/dist/{tooltip-CBv8iNFU.cjs.map → tooltip-DNl5aBNp.cjs.map} +1 -1
- package/dist/tooltip.cjs +1 -1
- package/dist/tooltip.js +1 -1
- package/dist/{tree-CSGTCCZ3.js → tree-CeNor9l6.js} +2 -2
- package/dist/{tree-CSGTCCZ3.js.map → tree-CeNor9l6.js.map} +1 -1
- package/dist/{tree-CiKoP4uT.cjs → tree-yiGCSyyN.cjs} +2 -2
- package/dist/{tree-CiKoP4uT.cjs.map → tree-yiGCSyyN.cjs.map} +1 -1
- package/dist/tree.cjs +1 -1
- package/dist/tree.js +1 -1
- package/dist/{typewriter-eAUGqhH7.js → typewriter-BbQsON2M.js} +4 -4
- package/dist/{typewriter-eAUGqhH7.js.map → typewriter-BbQsON2M.js.map} +1 -1
- package/dist/{typewriter-CYou-pzn.cjs → typewriter-CWFH8-z-.cjs} +2 -2
- package/dist/{typewriter-CYou-pzn.cjs.map → typewriter-CWFH8-z-.cjs.map} +1 -1
- package/dist/typewriter.cjs +1 -1
- package/dist/typewriter.js +1 -1
- package/dist/{typography-DLFUQ47p.cjs → typography-ByLTIj6U.cjs} +2 -2
- package/dist/{typography-DLFUQ47p.cjs.map → typography-ByLTIj6U.cjs.map} +1 -1
- package/dist/{typography-D7qcpK__.js → typography-PFj-xY2T.js} +2 -2
- package/dist/{typography-D7qcpK__.js.map → typography-PFj-xY2T.js.map} +1 -1
- package/dist/typography.cjs +1 -1
- package/dist/typography.js +1 -1
- package/package.json +1 -1
- package/types/src/boat/boat.d.ts +25 -1
- package/dist/boat-BdZ8qIVE.cjs +0 -70
- package/dist/boat-BdZ8qIVE.cjs.map +0 -1
- package/dist/boat-Jju9mnxp.js +0 -99
- package/dist/boat-Jju9mnxp.js.map +0 -1
- package/dist/tailwind.mixin-CkQXl1kF.js +0 -43
- package/dist/tailwind.mixin-x6_PgjK6.cjs +0 -2
package/dist/badge.cjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./avatar-
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./avatar-8CSFLRvq.cjs");Object.defineProperty(exports,"ScBadgeV2",{enumerable:!0,get:()=>e.ScBadgeV2}),Object.defineProperty(exports,"SchmancyBadgeV2",{enumerable:!0,get:()=>e.SchmancyBadgeV2});
|
|
2
2
|
//# sourceMappingURL=badge.cjs.map
|
package/dist/badge.js
CHANGED
|
@@ -0,0 +1,174 @@
|
|
|
1
|
+
import { T as w } from "./tailwind.mixin-BbF53_0W.js";
|
|
2
|
+
import { css as v, html as S } from "lit";
|
|
3
|
+
import { property as g, state as p, customElement as z } from "lit/decorators.js";
|
|
4
|
+
import { createRef as m, ref as x } from "lit/directives/ref.js";
|
|
5
|
+
import { Subject as C, fromEvent as k, EMPTY as b, merge as R, of as l } from "rxjs";
|
|
6
|
+
import { debounceTime as $, filter as A, tap as d, scan as F, switchMap as y, catchError as I, finalize as L, shareReplay as P, takeUntil as O } from "rxjs/operators";
|
|
7
|
+
var E = Object.defineProperty, N = Object.getOwnPropertyDescriptor, c = (t, e, i, n) => {
|
|
8
|
+
for (var r, s = n > 1 ? void 0 : n ? N(e, i) : e, a = t.length - 1; a >= 0; a--) (r = t[a]) && (s = (n ? r(e, i, s) : r(s)) || s);
|
|
9
|
+
return n && s && E(e, i, s), s;
|
|
10
|
+
};
|
|
11
|
+
let o = class extends w(v`
|
|
12
|
+
/* Performance optimization - GPU hints only */
|
|
13
|
+
.boat-container {
|
|
14
|
+
will-change: transform, border-radius, width, max-width, box-shadow;
|
|
15
|
+
contain: layout style;
|
|
16
|
+
transform: translate3d(0, 0, 0); /* Force GPU acceleration */
|
|
17
|
+
backface-visibility: hidden;
|
|
18
|
+
}
|
|
19
|
+
`) {
|
|
20
|
+
constructor() {
|
|
21
|
+
super(...arguments), this.stateChange$ = new C(), this.containerRef = m(), this.contentRef = m(), this.iconRef = m(), this.ANIMATION_CONFIG = { durations: { expand: 350, minimize: 250, hide: 200, content: 300 }, easing: { emphasized: "cubic-bezier(0.2, 0.0, 0, 1.0)", decelerate: "cubic-bezier(0.05, 0.7, 0.1, 1.0)", accelerate: "cubic-bezier(0.3, 0.0, 0.8, 0.15)", standard: "cubic-bezier(0.4, 0.0, 0.2, 1)" }, shadows: { fab: "0px 3px 5px -1px rgba(0, 0, 0, 0.2), 0px 6px 10px 0px rgba(0, 0, 0, 0.14), 0px 1px 18px 0px rgba(0, 0, 0, 0.12)", fabLowered: "0px 1px 3px 0px rgba(0, 0, 0, 0.2), 0px 1px 1px 0px rgba(0, 0, 0, 0.14), 0px 2px 1px -1px rgba(0, 0, 0, 0.12)", expanded: "0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04)" } }, this.currentState = "minimized", this.isContentVisible = !1, this.isAnimating = !1, this.isLowered = !1;
|
|
22
|
+
}
|
|
23
|
+
get state() {
|
|
24
|
+
return this.currentState;
|
|
25
|
+
}
|
|
26
|
+
set state(t) {
|
|
27
|
+
this.stateChange$.next({ source: "external", target: t, type: "state" });
|
|
28
|
+
}
|
|
29
|
+
get lowered() {
|
|
30
|
+
return this.isLowered;
|
|
31
|
+
}
|
|
32
|
+
set lowered(t) {
|
|
33
|
+
this.stateChange$.next({ source: "external", target: this.currentState, type: "lowered" }), this.isLowered = t;
|
|
34
|
+
}
|
|
35
|
+
connectedCallback() {
|
|
36
|
+
super.connectedCallback(), this.setupUnifiedPipeline();
|
|
37
|
+
}
|
|
38
|
+
setupUnifiedPipeline() {
|
|
39
|
+
const t = typeof window < "u" ? k(window, "resize").pipe($(100), A(() => this.currentState === "expanded"), d(() => this.stateChange$.next({ source: "resize", type: "resize" }))) : b;
|
|
40
|
+
R(l({ source: "internal", target: "minimized", type: "state" }), this.stateChange$, t).pipe(F((e, i) => i.type === "resize" && this.currentState === "expanded" ? (this.updateExpandedWidth(), { ...e, resized: !0 }) : i.type === "lowered" ? { ...e, lowered: !e.lowered } : i.type === "state" && i.target && i.target !== e.current ? { ...e, previous: e.current, current: i.target, pending: !0, source: i.source } : e, { current: "minimized", previous: "minimized", pending: !1, lowered: !1, resized: !1, source: "internal" }), d((e) => {
|
|
41
|
+
this.isLowered = e.lowered;
|
|
42
|
+
}), y((e) => !e.pending || this.isAnimating ? l(e) : (this.isAnimating = !0, this.animateTransition(e.previous, e.current).pipe(d(() => {
|
|
43
|
+
this.currentState = e.current, this.isContentVisible = e.current === "expanded", this.dispatchEvent(new CustomEvent("toggle", { detail: e.current, bubbles: !0, composed: !0 }));
|
|
44
|
+
}), I((i) => (this.currentState = e.current, this.isContentVisible = e.current === "expanded", l(e))), L(() => {
|
|
45
|
+
this.isAnimating = !1;
|
|
46
|
+
}), d(() => e.pending = !1)))), P(1), O(this.disconnecting)).subscribe();
|
|
47
|
+
}
|
|
48
|
+
animateTransition(t, e) {
|
|
49
|
+
return l({ fromState: t, toState: e }).pipe(d(() => this.currentAnimation?.cancel()), y(({ fromState: i, toState: n }) => {
|
|
50
|
+
if (!this.containerRef.value) return b;
|
|
51
|
+
n === "expanded" && (this.isContentVisible = !0);
|
|
52
|
+
const r = this.createAnimations(i, n);
|
|
53
|
+
return new Promise((s) => {
|
|
54
|
+
const a = r.container;
|
|
55
|
+
a ? (this.currentAnimation = a, a.finished.then(() => {
|
|
56
|
+
n !== "expanded" && (this.isContentVisible = !1), s();
|
|
57
|
+
}).catch(() => s())) : s();
|
|
58
|
+
});
|
|
59
|
+
}));
|
|
60
|
+
}
|
|
61
|
+
createAnimations(t, e) {
|
|
62
|
+
const i = this.containerRef.value, n = this.contentRef.value, r = this.iconRef.value, s = {};
|
|
63
|
+
if (!i) return s;
|
|
64
|
+
const a = this.ANIMATION_CONFIG, f = this.getStyleForState(t), h = this.getStyleForState(e);
|
|
65
|
+
if (s.container = e === "expanded" ? i.animate([f, { ...h, transform: "translate3d(0, -8px, 0)", offset: 0.7 }, h], { duration: a.durations.expand, easing: a.easing.decelerate, fill: "forwards" }) : i.animate([f, h], { duration: e === "hidden" ? a.durations.hide : a.durations.minimize, easing: a.easing.accelerate, fill: "forwards" }), n && t === "expanded" && e === "minimized" ? n.animate([{ opacity: 1, transform: "translateY(0)" }, { opacity: 0, transform: "translateY(-8px)" }], { duration: 150, easing: a.easing.standard, fill: "forwards" }) : n && e === "expanded" && n.animate([{ opacity: 0, transform: "translateY(8px)" }, { opacity: 1, transform: "translateY(0)" }], { duration: a.durations.content, easing: a.easing.standard, fill: "forwards" }), r) {
|
|
66
|
+
const u = e === "expanded";
|
|
67
|
+
(u || t === "expanded" && e === "minimized") && r.animate([{ transform: u ? "rotate(0deg)" : "rotate(180deg)" }, { transform: u ? "rotate(180deg)" : "rotate(0deg)" }], { duration: 250, easing: a.easing.emphasized, fill: "forwards" });
|
|
68
|
+
}
|
|
69
|
+
return s;
|
|
70
|
+
}
|
|
71
|
+
getStyleForState(t) {
|
|
72
|
+
const { shadows: e } = this.ANIMATION_CONFIG, i = { width: "300px", maxWidth: "300px", maxHeight: "auto", borderRadius: "16px" };
|
|
73
|
+
return { hidden: { ...i, transform: "translate3d(0, calc(100% + 16px), 0)", boxShadow: "none", backdropFilter: "none" }, minimized: { ...i, transform: "translate3d(0, calc(100% - 56px), 0)", boxShadow: this.isLowered ? e.fabLowered : e.fab, backdropFilter: "none" }, expanded: { transform: "translate3d(0, 0, 0)", width: this.getResponsiveWidth(), maxWidth: "100%", maxHeight: "80vh", boxShadow: e.expanded, borderRadius: "8px 8px 0 0", backdropFilter: "blur(12px)" } }[t];
|
|
74
|
+
}
|
|
75
|
+
getResponsiveWidth() {
|
|
76
|
+
if (typeof window > "u") return "40vw";
|
|
77
|
+
const t = window.innerWidth;
|
|
78
|
+
return t < 768 ? "calc(100vw - 32px)" : t < 1024 ? "70vw" : t < 1280 ? "60vw" : "40vw";
|
|
79
|
+
}
|
|
80
|
+
updateExpandedWidth() {
|
|
81
|
+
const t = this.containerRef.value;
|
|
82
|
+
t && this.currentState === "expanded" && (t.style.width = this.getResponsiveWidth());
|
|
83
|
+
}
|
|
84
|
+
firstUpdated() {
|
|
85
|
+
this.applyInitialStyles();
|
|
86
|
+
}
|
|
87
|
+
applyInitialStyles() {
|
|
88
|
+
const t = this.containerRef.value, e = this.contentRef.value, i = this.iconRef.value;
|
|
89
|
+
if (t) {
|
|
90
|
+
const n = this.getStyleForState(this.currentState);
|
|
91
|
+
Object.assign(t.style, n), "webkitBackdropFilter" in t.style && (t.style.webkitBackdropFilter = n.backdropFilter);
|
|
92
|
+
}
|
|
93
|
+
e && (e.style.opacity = this.isContentVisible ? "1" : "0"), i && this.currentState === "expanded" && (i.style.transform = "rotate(180deg)");
|
|
94
|
+
}
|
|
95
|
+
toggleState() {
|
|
96
|
+
const t = this.currentState === "minimized" ? "expanded" : "minimized";
|
|
97
|
+
this.stateChange$.next({ source: "internal", target: t, type: "state" });
|
|
98
|
+
}
|
|
99
|
+
close() {
|
|
100
|
+
this.stateChange$.next({ source: "internal", target: "hidden", type: "state" });
|
|
101
|
+
}
|
|
102
|
+
disconnectedCallback() {
|
|
103
|
+
super.disconnectedCallback(), this.currentAnimation?.cancel(), this.stateChange$.complete();
|
|
104
|
+
}
|
|
105
|
+
render() {
|
|
106
|
+
const t = this.currentState === "minimized" ? this.isLowered ? "1" : "3" : "4", e = this.currentState === "minimized", i = e ? "expand_less" : "expand_more";
|
|
107
|
+
return S`
|
|
108
|
+
<div
|
|
109
|
+
class="boat-container z-[9999] fixed bottom-4 right-4 overflow-y-auto flex flex-col"
|
|
110
|
+
${x(this.containerRef)}
|
|
111
|
+
>
|
|
112
|
+
<!-- Header section -->
|
|
113
|
+
<section class="sticky top-0 z-10">
|
|
114
|
+
<schmancy-surface
|
|
115
|
+
elevation="${t}"
|
|
116
|
+
class="cursor-pointer"
|
|
117
|
+
rounded="${e ? "none" : "top"}"
|
|
118
|
+
type="containerLowest"
|
|
119
|
+
@click=${() => this.toggleState()}
|
|
120
|
+
>
|
|
121
|
+
<div class="sticky top-0 px-3 py-2 flex items-center justify-between gap-3">
|
|
122
|
+
<!-- Header content slot -->
|
|
123
|
+
<div class="flex-1 flex items-center min-w-0">
|
|
124
|
+
<slot name="header"></slot>
|
|
125
|
+
</div>
|
|
126
|
+
|
|
127
|
+
<!-- Control buttons -->
|
|
128
|
+
<div class="flex items-center gap-1 flex-shrink-0">
|
|
129
|
+
<!-- Toggle button -->
|
|
130
|
+
<schmancy-icon-button
|
|
131
|
+
variant="${e ? "text" : "filled tonal"}"
|
|
132
|
+
@click=${(n) => {
|
|
133
|
+
n.stopPropagation(), this.toggleState();
|
|
134
|
+
}}
|
|
135
|
+
title=${e ? "Expand" : "Minimize"}
|
|
136
|
+
>
|
|
137
|
+
<span class="icon-container" ${x(this.iconRef)}>
|
|
138
|
+
${i}
|
|
139
|
+
</span>
|
|
140
|
+
</schmancy-icon-button>
|
|
141
|
+
|
|
142
|
+
<!-- Close button -->
|
|
143
|
+
<schmancy-icon-button
|
|
144
|
+
variant="text"
|
|
145
|
+
@click=${(n) => {
|
|
146
|
+
n.stopPropagation(), this.close();
|
|
147
|
+
}}
|
|
148
|
+
title="Close"
|
|
149
|
+
>
|
|
150
|
+
close
|
|
151
|
+
</schmancy-icon-button>
|
|
152
|
+
</div>
|
|
153
|
+
</div>
|
|
154
|
+
</schmancy-surface>
|
|
155
|
+
</section>
|
|
156
|
+
|
|
157
|
+
<!-- Content section -->
|
|
158
|
+
<schmancy-surface
|
|
159
|
+
.hidden=${!this.isContentVisible}
|
|
160
|
+
type="containerLow"
|
|
161
|
+
class="boat-content z-0 flex-1"
|
|
162
|
+
${x(this.contentRef)}
|
|
163
|
+
>
|
|
164
|
+
<slot></slot>
|
|
165
|
+
</schmancy-surface>
|
|
166
|
+
</div>
|
|
167
|
+
`;
|
|
168
|
+
}
|
|
169
|
+
};
|
|
170
|
+
c([g({ type: String, reflect: !0 })], o.prototype, "state", 1), c([g({ type: Boolean, reflect: !0 })], o.prototype, "lowered", 1), c([p()], o.prototype, "currentState", 2), c([p()], o.prototype, "isContentVisible", 2), c([p()], o.prototype, "isAnimating", 2), c([p()], o.prototype, "isLowered", 2), o = c([z("schmancy-boat")], o);
|
|
171
|
+
export {
|
|
172
|
+
o as S
|
|
173
|
+
};
|
|
174
|
+
//# sourceMappingURL=boat-BTSQNgJQ.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"boat-BTSQNgJQ.js","sources":["../src/boat/boat.ts"],"sourcesContent":["import { TailwindElement } from '@mixins/tailwind.mixin'\nimport { css, html } from 'lit'\nimport { customElement, property, state } from 'lit/decorators.js'\nimport { createRef, ref, Ref } from 'lit/directives/ref.js'\nimport {\n Subject,\n fromEvent,\n merge,\n of,\n EMPTY\n} from 'rxjs'\nimport {\n filter,\n switchMap,\n takeUntil,\n tap,\n finalize,\n catchError,\n debounceTime,\n scan,\n shareReplay\n} from 'rxjs/operators'\n\ntype BoatState = 'hidden' | 'minimized' | 'expanded'\n\n// State change event for the unified pipeline\ninterface StateChangeEvent {\n\tsource: 'internal' | 'external' | 'resize'\n\ttarget?: BoatState\n\ttype: 'state' | 'lowered' | 'resize'\n}\n\n@customElement('schmancy-boat')\nexport default class SchmancyBoat extends TailwindElement(css`\n\t/* Performance optimization - GPU hints only */\n\t.boat-container {\n\t\twill-change: transform, border-radius, width, max-width, box-shadow;\n\t\tcontain: layout style;\n\t\ttransform: translate3d(0, 0, 0); /* Force GPU acceleration */\n\t\tbackface-visibility: hidden;\n\t}\n`) {\n\t// Public properties - route ALL changes through stateChange$\n\t@property({ type: String, reflect: true })\n\tget state(): BoatState {\n\t\treturn this.currentState\n\t}\n\tset state(value: BoatState) {\n\t\t// Route external state changes through the unified pipeline\n\t\tthis.stateChange$.next({\n\t\t\tsource: 'external',\n\t\t\ttarget: value,\n\t\t\ttype: 'state'\n\t\t})\n\t}\n\n\t@property({ type: Boolean, reflect: true })\n\tget lowered(): boolean {\n\t\treturn this.isLowered\n\t}\n\tset lowered(value: boolean) {\n\t\tthis.stateChange$.next({\n\t\t\tsource: 'external',\n\t\t\ttarget: this.currentState,\n\t\t\ttype: 'lowered'\n\t\t})\n\t\tthis.isLowered = value\n\t}\n\n\t// Single unified state change stream - ALL state changes go through this\n\tprivate stateChange$ = new Subject<StateChangeEvent>()\n\n\t// Element references\n\tprivate containerRef: Ref<HTMLDivElement> = createRef()\n\tprivate contentRef: Ref<HTMLElement> = createRef()\n\tprivate iconRef: Ref<HTMLElement> = createRef()\n\n\t// Current animation reference\n\tprivate currentAnimation?: Animation\n\n\t// Animation configuration\n\tprivate readonly ANIMATION_CONFIG = {\n\t\tdurations: {\n\t\t\texpand: 350,\n\t\t\tminimize: 250,\n\t\t\thide: 200,\n\t\t\tcontent: 300,\n\t\t},\n\t\teasing: {\n\t\t\temphasized: 'cubic-bezier(0.2, 0.0, 0, 1.0)',\n\t\t\tdecelerate: 'cubic-bezier(0.05, 0.7, 0.1, 1.0)',\n\t\t\taccelerate: 'cubic-bezier(0.3, 0.0, 0.8, 0.15)',\n\t\t\tstandard: 'cubic-bezier(0.4, 0.0, 0.2, 1)',\n\t\t},\n\t\tshadows: {\n\t\t\tfab: '0px 3px 5px -1px rgba(0, 0, 0, 0.2), 0px 6px 10px 0px rgba(0, 0, 0, 0.14), 0px 1px 18px 0px rgba(0, 0, 0, 0.12)',\n\t\t\tfabLowered: '0px 1px 3px 0px rgba(0, 0, 0, 0.2), 0px 1px 1px 0px rgba(0, 0, 0, 0.14), 0px 2px 1px -1px rgba(0, 0, 0, 0.12)',\n\t\t\texpanded: '0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04)',\n\t\t}\n\t}\n\n\t// Reactive state for template\n\t@state() private currentState: BoatState = 'minimized'\n\t@state() private isContentVisible: boolean = false\n\t@state() private isAnimating: boolean = false\n\t@state() private isLowered: boolean = false\n\n\tconnectedCallback() {\n\t\tsuper.connectedCallback()\n\t\tthis.setupUnifiedPipeline()\n\t}\n\n\tprivate setupUnifiedPipeline() {\n\t\t// Create resize stream\n\t\tconst resize$ = typeof window !== 'undefined'\n\t\t\t? fromEvent(window, 'resize').pipe(\n\t\t\t\tdebounceTime(100),\n\t\t\t\tfilter(() => this.currentState === 'expanded'),\n\t\t\t\ttap(() => this.stateChange$.next({\n\t\t\t\t\tsource: 'resize',\n\t\t\t\t\ttype: 'resize'\n\t\t\t\t}))\n\t\t\t)\n\t\t\t: EMPTY\n\n\t\t// SINGLE UNIFIED PIPELINE - All state management in ONE place\n\t\tmerge(\n\t\t\t// Initial state\n\t\t\tof({\n\t\t\t\tsource: 'internal' as const,\n\t\t\t\ttarget: 'minimized' as BoatState,\n\t\t\t\ttype: 'state' as const\n\t\t\t}),\n\t\t\t// All state changes\n\t\t\tthis.stateChange$,\n\t\t\t// Window resize events\n\t\t\tresize$\n\t\t).pipe(\n\t\t\t// Accumulate state and handle all changes\n\t\t\tscan((state, event: StateChangeEvent) => {\n\t\t\t\t// Handle different event types\n\t\t\t\tif (event.type === 'resize' && this.currentState === 'expanded') {\n\t\t\t\t\t// Just update width, no animation needed\n\t\t\t\t\tthis.updateExpandedWidth()\n\t\t\t\t\treturn { ...state, resized: true }\n\t\t\t\t}\n\n\t\t\t\tif (event.type === 'lowered') {\n\t\t\t\t\t// Update lowered state\n\t\t\t\t\treturn { ...state, lowered: !state.lowered }\n\t\t\t\t}\n\n\t\t\t\t// Handle state changes\n\t\t\t\tif (event.type === 'state' && event.target && event.target !== state.current) {\n\t\t\t\t\treturn {\n\t\t\t\t\t\t...state,\n\t\t\t\t\t\tprevious: state.current,\n\t\t\t\t\t\tcurrent: event.target,\n\t\t\t\t\t\tpending: true,\n\t\t\t\t\t\tsource: event.source\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn state\n\t\t\t}, {\n\t\t\t\tcurrent: 'minimized' as BoatState,\n\t\t\t\tprevious: 'minimized' as BoatState,\n\t\t\t\tpending: false,\n\t\t\t\tlowered: false,\n\t\t\t\tresized: false,\n\t\t\t\tsource: 'internal' as 'internal' | 'external' | 'resize'\n\t\t\t}),\n\n\t\t\t// Only process when there's a pending state change\n\t\t\ttap(state => {\n\t\t\t\t// Always update lowered state\n\t\t\t\tthis.isLowered = state.lowered\n\t\t\t}),\n\n\t\t\t// Handle animations for state transitions\n\t\t\tswitchMap(state => {\n\t\t\t\tif (!state.pending || this.isAnimating) {\n\t\t\t\t\treturn of(state)\n\t\t\t\t}\n\n\t\t\t\t// Mark as animating\n\t\t\t\tthis.isAnimating = true\n\n\t\t\t\t// Animate the transition\n\t\t\t\treturn this.animateTransition(state.previous, state.current).pipe(\n\t\t\t\t\ttap(() => {\n\t\t\t\t\t\t// Update state after animation completes\n\t\t\t\t\t\tthis.currentState = state.current\n\t\t\t\t\t\tthis.isContentVisible = state.current === 'expanded'\n\n\t\t\t\t\t\t// Dispatch event\n\t\t\t\t\t\tthis.dispatchEvent(new CustomEvent('toggle', {\n\t\t\t\t\t\t\tdetail: state.current,\n\t\t\t\t\t\t\tbubbles: true,\n\t\t\t\t\t\t\tcomposed: true,\n\t\t\t\t\t\t}))\n\t\t\t\t\t}),\n\t\t\t\t\tcatchError(err => {\n\t\t\t\t\t\tconsole.warn('Animation error:', err)\n\t\t\t\t\t\t// Still update state even if animation fails\n\t\t\t\t\t\tthis.currentState = state.current\n\t\t\t\t\t\tthis.isContentVisible = state.current === 'expanded'\n\t\t\t\t\t\treturn of(state)\n\t\t\t\t\t}),\n\t\t\t\t\tfinalize(() => {\n\t\t\t\t\t\tthis.isAnimating = false\n\t\t\t\t\t}),\n\t\t\t\t\t// Return the state for next iteration\n\t\t\t\t\ttap(() => state.pending = false)\n\t\t\t\t)\n\t\t\t}),\n\n\t\t\t// Share the pipeline result\n\t\t\tshareReplay(1),\n\t\t\ttakeUntil(this.disconnecting)\n\t\t).subscribe()\n\t}\n\n\t// Simplified animation transition method\n\tprivate animateTransition(fromState: BoatState, toState: BoatState) {\n\t\treturn of({ fromState, toState }).pipe(\n\t\t\ttap(() => this.currentAnimation?.cancel()),\n\t\t\tswitchMap(({ fromState, toState }) => {\n\t\t\t\tconst container = this.containerRef.value\n\t\t\t\tif (!container) return EMPTY\n\n\t\t\t\t// Update content visibility before expand, after minimize\n\t\t\t\tif (toState === 'expanded') {\n\t\t\t\t\tthis.isContentVisible = true\n\t\t\t\t}\n\n\t\t\t\t// Create animation based on target state\n\t\t\t\tconst animations = this.createAnimations(fromState, toState)\n\n\t\t\t\t// Execute animations and return completion promise\n\t\t\t\treturn new Promise<void>((resolve) => {\n\t\t\t\t\tconst mainAnimation = animations.container\n\t\t\t\t\tif (mainAnimation) {\n\t\t\t\t\t\tthis.currentAnimation = mainAnimation\n\t\t\t\t\t\tmainAnimation.finished.then(() => {\n\t\t\t\t\t\t\tif (toState !== 'expanded') {\n\t\t\t\t\t\t\t\tthis.isContentVisible = false\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tresolve()\n\t\t\t\t\t\t}).catch(() => resolve())\n\t\t\t\t\t} else {\n\t\t\t\t\t\tresolve()\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t})\n\t\t)\n\t}\n\n\t// Create animations for state transition\n\tprivate createAnimations(fromState: BoatState, toState: BoatState) {\n\t\tconst container = this.containerRef.value\n\t\tconst content = this.contentRef.value\n\t\tconst icon = this.iconRef.value\n\t\tconst animations: { container?: Animation; content?: Animation; icon?: Animation } = {}\n\n\t\tif (!container) return animations\n\n\t\tconst config = this.ANIMATION_CONFIG\n\t\tconst fromStyles = this.getStyleForState(fromState)\n\t\tconst toStyles = this.getStyleForState(toState)\n\n\t\t// Container animation\n\t\tif (toState === 'expanded') {\n\t\t\t// Add bounce effect for expand\n\t\t\tanimations.container = container.animate([\n\t\t\t\tfromStyles,\n\t\t\t\t{ ...toStyles, transform: 'translate3d(0, -8px, 0)', offset: 0.7 },\n\t\t\t\ttoStyles,\n\t\t\t], {\n\t\t\t\tduration: config.durations.expand,\n\t\t\t\teasing: config.easing.decelerate,\n\t\t\t\tfill: 'forwards',\n\t\t\t})\n\t\t} else {\n\t\t\tanimations.container = container.animate([fromStyles, toStyles], {\n\t\t\t\tduration: toState === 'hidden' ? config.durations.hide : config.durations.minimize,\n\t\t\t\teasing: config.easing.accelerate,\n\t\t\t\tfill: 'forwards',\n\t\t\t})\n\t\t}\n\n\t\t// Content animation (only for expand/minimize transitions)\n\t\tif (content && fromState === 'expanded' && toState === 'minimized') {\n\t\t\t// Fade out content before minimizing\n\t\t\tcontent.animate([\n\t\t\t\t{ opacity: 1, transform: 'translateY(0)' },\n\t\t\t\t{ opacity: 0, transform: 'translateY(-8px)' },\n\t\t\t], {\n\t\t\t\tduration: 150,\n\t\t\t\teasing: config.easing.standard,\n\t\t\t\tfill: 'forwards',\n\t\t\t})\n\t\t} else if (content && toState === 'expanded') {\n\t\t\t// Fade in content when expanding\n\t\t\tcontent.animate([\n\t\t\t\t{ opacity: 0, transform: 'translateY(8px)' },\n\t\t\t\t{ opacity: 1, transform: 'translateY(0)' },\n\t\t\t], {\n\t\t\t\tduration: config.durations.content,\n\t\t\t\teasing: config.easing.standard,\n\t\t\t\tfill: 'forwards',\n\t\t\t})\n\t\t}\n\n\t\t// Icon rotation animation\n\t\tif (icon) {\n\t\t\tconst isExpanding = toState === 'expanded'\n\t\t\tconst isCollapsing = fromState === 'expanded' && toState === 'minimized'\n\n\t\t\tif (isExpanding || isCollapsing) {\n\t\t\t\ticon.animate([\n\t\t\t\t\t{ transform: isExpanding ? 'rotate(0deg)' : 'rotate(180deg)' },\n\t\t\t\t\t{ transform: isExpanding ? 'rotate(180deg)' : 'rotate(0deg)' },\n\t\t\t\t], {\n\t\t\t\t\tduration: 250,\n\t\t\t\t\teasing: config.easing.emphasized,\n\t\t\t\t\tfill: 'forwards',\n\t\t\t\t})\n\t\t\t}\n\t\t}\n\n\t\treturn animations\n\t}\n\n\t// Get styles for a specific state\n\tprivate getStyleForState(state: BoatState): Keyframe {\n\t\tconst { shadows } = this.ANIMATION_CONFIG\n\t\tconst baseStyles = {\n\t\t\twidth: '300px',\n\t\t\tmaxWidth: '300px',\n\t\t\tmaxHeight: 'auto',\n\t\t\tborderRadius: '16px',\n\t\t}\n\n\t\tconst stateStyles: Record<BoatState, Keyframe> = {\n\t\t\thidden: {\n\t\t\t\t...baseStyles,\n\t\t\t\ttransform: 'translate3d(0, calc(100% + 16px), 0)',\n\t\t\t\tboxShadow: 'none',\n\t\t\t\tbackdropFilter: 'none',\n\t\t\t},\n\t\t\tminimized: {\n\t\t\t\t...baseStyles,\n\t\t\t\ttransform: 'translate3d(0, calc(100% - 56px), 0)',\n\t\t\t\tboxShadow: this.isLowered ? shadows.fabLowered : shadows.fab,\n\t\t\t\tbackdropFilter: 'none',\n\t\t\t},\n\t\t\texpanded: {\n\t\t\t\ttransform: 'translate3d(0, 0, 0)',\n\t\t\t\twidth: this.getResponsiveWidth(),\n\t\t\t\tmaxWidth: '100%',\n\t\t\t\tmaxHeight: '80vh',\n\t\t\t\tboxShadow: shadows.expanded,\n\t\t\t\tborderRadius: '8px 8px 0 0',\n\t\t\t\tbackdropFilter: 'blur(12px)',\n\t\t\t},\n\t\t}\n\n\t\treturn stateStyles[state] as Keyframe\n\t}\n\n\t// Calculate responsive width based on viewport\n\tprivate getResponsiveWidth(): string {\n\t\tif (typeof window === 'undefined') return '40vw'\n\n\t\tconst vw = window.innerWidth\n\t\tif (vw < 768) return 'calc(100vw - 32px)'\n\t\tif (vw < 1024) return '70vw'\n\t\tif (vw < 1280) return '60vw'\n\t\treturn '40vw'\n\t}\n\n\t// Update expanded width on window resize\n\tprivate updateExpandedWidth() {\n\t\tconst container = this.containerRef.value\n\t\tif (container && this.currentState === 'expanded') {\n\t\t\tcontainer.style.width = this.getResponsiveWidth()\n\t\t}\n\t}\n\n\t// Initialize component styles after first render\n\tfirstUpdated() {\n\t\t// Apply initial styles\n\t\tthis.applyInitialStyles()\n\t}\n\n\t// Apply initial styles to elements\n\tprivate applyInitialStyles() {\n\t\tconst container = this.containerRef.value\n\t\tconst content = this.contentRef.value\n\t\tconst icon = this.iconRef.value\n\n\t\tif (container) {\n\t\t\tconst initialStyle = this.getStyleForState(this.currentState)\n\t\t\tObject.assign(container.style, initialStyle)\n\n\t\t\t// Safari compatibility for backdrop filter\n\t\t\tif ('webkitBackdropFilter' in container.style) {\n\t\t\t\t(container.style as any).webkitBackdropFilter = initialStyle.backdropFilter\n\t\t\t}\n\t\t}\n\n\t\t// Set initial content opacity\n\t\tif (content) {\n\t\t\tcontent.style.opacity = this.isContentVisible ? '1' : '0'\n\t\t}\n\n\t\t// Set initial icon rotation\n\t\tif (icon && this.currentState === 'expanded') {\n\t\t\ticon.style.transform = 'rotate(180deg)'\n\t\t}\n\t}\n\n\t// Public method to toggle between minimized and expanded\n\ttoggleState() {\n\t\tconst newState = this.currentState === 'minimized' ? 'expanded' : 'minimized'\n\t\tthis.stateChange$.next({\n\t\t\tsource: 'internal',\n\t\t\ttarget: newState,\n\t\t\ttype: 'state'\n\t\t})\n\t}\n\n\t// Public method to close (hide) the boat\n\tclose() {\n\t\tthis.stateChange$.next({\n\t\t\tsource: 'internal',\n\t\t\ttarget: 'hidden',\n\t\t\ttype: 'state'\n\t\t})\n\t}\n\n\t// Cleanup on component disconnect\n\tdisconnectedCallback() {\n\t\tsuper.disconnectedCallback()\n\t\tthis.currentAnimation?.cancel()\n\t\tthis.stateChange$.complete()\n\t}\n\n\t// Render the component\n\tprotected render(): unknown {\n\t\t// Calculate dynamic values\n\t\tconst surfaceElevation = this.currentState === 'minimized'\n\t\t\t? (this.isLowered ? '1' : '3')\n\t\t\t: '4'\n\t\tconst isMinimized = this.currentState === 'minimized'\n\t\tconst iconName = isMinimized ? 'expand_less' : 'expand_more'\n\n\t\treturn html`\n\t\t\t<div\n\t\t\t\tclass=\"boat-container z-[9999] fixed bottom-4 right-4 overflow-y-auto flex flex-col\"\n\t\t\t\t${ref(this.containerRef)}\n\t\t\t>\n\t\t\t\t<!-- Header section -->\n\t\t\t\t<section class=\"sticky top-0 z-10\">\n\t\t\t\t\t<schmancy-surface\n\t\t\t\t\t\televation=\"${surfaceElevation}\"\n\t\t\t\t\t\tclass=\"cursor-pointer\"\n\t\t\t\t\t\trounded=\"${isMinimized ? 'none' : 'top'}\"\n\t\t\t\t\t\ttype=\"containerLowest\"\n\t\t\t\t\t\t@click=${() => this.toggleState()}\n\t\t\t\t\t>\n\t\t\t\t\t\t<div class=\"sticky top-0 px-3 py-2 flex items-center justify-between gap-3\">\n\t\t\t\t\t\t\t<!-- Header content slot -->\n\t\t\t\t\t\t\t<div class=\"flex-1 flex items-center min-w-0\">\n\t\t\t\t\t\t\t\t<slot name=\"header\"></slot>\n\t\t\t\t\t\t\t</div>\n\n\t\t\t\t\t\t\t<!-- Control buttons -->\n\t\t\t\t\t\t\t<div class=\"flex items-center gap-1 flex-shrink-0\">\n\t\t\t\t\t\t\t\t<!-- Toggle button -->\n\t\t\t\t\t\t\t\t<schmancy-icon-button\n\t\t\t\t\t\t\t\t\tvariant=\"${isMinimized ? 'text' : 'filled tonal'}\"\n\t\t\t\t\t\t\t\t\t@click=${(e: Event) => {\n\t\t\t\t\t\t\t\t\t\te.stopPropagation()\n\t\t\t\t\t\t\t\t\t\tthis.toggleState()\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\ttitle=${isMinimized ? 'Expand' : 'Minimize'}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<span class=\"icon-container\" ${ref(this.iconRef)}>\n\t\t\t\t\t\t\t\t\t\t${iconName}\n\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t</schmancy-icon-button>\n\n\t\t\t\t\t\t\t\t<!-- Close button -->\n\t\t\t\t\t\t\t\t<schmancy-icon-button\n\t\t\t\t\t\t\t\t\tvariant=\"text\"\n\t\t\t\t\t\t\t\t\t@click=${(e: Event) => {\n\t\t\t\t\t\t\t\t\t\te.stopPropagation()\n\t\t\t\t\t\t\t\t\t\tthis.close()\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\ttitle=\"Close\"\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\tclose\n\t\t\t\t\t\t\t\t</schmancy-icon-button>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</schmancy-surface>\n\t\t\t\t</section>\n\n\t\t\t\t<!-- Content section -->\n\t\t\t\t<schmancy-surface\n\t\t\t\t\t.hidden=${!this.isContentVisible}\n\t\t\t\t\ttype=\"containerLow\"\n\t\t\t\t\tclass=\"boat-content z-0 flex-1\"\n\t\t\t\t\t${ref(this.contentRef)}\n\t\t\t\t>\n\t\t\t\t\t<slot></slot>\n\t\t\t\t</schmancy-surface>\n\t\t\t</div>\n\t\t`\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-boat': SchmancyBoat\n\t}\n}"],"names":["SchmancyBoat","TailwindElement","css","super","arguments","this","stateChange$","Subject","containerRef","createRef","contentRef","iconRef","ANIMATION_CONFIG","durations","expand","minimize","hide","content","easing","emphasized","decelerate","accelerate","standard","shadows","fab","fabLowered","expanded","currentState","isContentVisible","isAnimating","isLowered","state","value","next","source","target","type","connectedCallback","setupUnifiedPipeline","resize$","window","fromEvent","pipe","debounceTime","filter","tap","EMPTY","merge","of","scan","event","updateExpandedWidth","resized","lowered","current","previous","pending","switchMap","animateTransition","dispatchEvent","CustomEvent","detail","bubbles","composed","catchError","err","finalize","shareReplay","takeUntil","disconnecting","subscribe","fromState","toState","currentAnimation","cancel","animations","createAnimations","Promise","resolve","mainAnimation","container","finished","then","catch","icon","config","fromStyles","getStyleForState","toStyles","animate","transform","offset","duration","fill","opacity","isExpanding","baseStyles","width","maxWidth","maxHeight","borderRadius","hidden","boxShadow","backdropFilter","minimized","getResponsiveWidth","vw","innerWidth","style","applyInitialStyles","initialStyle","Object","assign","webkitBackdropFilter","newState","close","disconnectedCallback","complete","render","surfaceElevation","isMinimized","iconName","html","ref","toggleState","e","stopPropagation","__decorateClass","property","String","reflect","prototype","Boolean","customElement"],"mappings":"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"}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
"use strict";const f=require("./tailwind.mixin-BiRVB4Hl.cjs"),x=require("lit"),d=require("lit/decorators.js"),l=require("lit/directives/ref.js"),o=require("rxjs"),s=require("rxjs/operators");var g=Object.defineProperty,y=Object.getOwnPropertyDescriptor,p=(t,e,i,n)=>{for(var c,r=n>1?void 0:n?y(e,i):e,a=t.length-1;a>=0;a--)(c=t[a])&&(r=(n?c(e,i,r):c(r))||r);return n&&r&&g(e,i,r),r};exports.SchmancyBoat=class extends f.TailwindElement(x.css`
|
|
2
|
+
/* Performance optimization - GPU hints only */
|
|
3
|
+
.boat-container {
|
|
4
|
+
will-change: transform, border-radius, width, max-width, box-shadow;
|
|
5
|
+
contain: layout style;
|
|
6
|
+
transform: translate3d(0, 0, 0); /* Force GPU acceleration */
|
|
7
|
+
backface-visibility: hidden;
|
|
8
|
+
}
|
|
9
|
+
`){constructor(){super(...arguments),this.stateChange$=new o.Subject,this.containerRef=l.createRef(),this.contentRef=l.createRef(),this.iconRef=l.createRef(),this.ANIMATION_CONFIG={durations:{expand:350,minimize:250,hide:200,content:300},easing:{emphasized:"cubic-bezier(0.2, 0.0, 0, 1.0)",decelerate:"cubic-bezier(0.05, 0.7, 0.1, 1.0)",accelerate:"cubic-bezier(0.3, 0.0, 0.8, 0.15)",standard:"cubic-bezier(0.4, 0.0, 0.2, 1)"},shadows:{fab:"0px 3px 5px -1px rgba(0, 0, 0, 0.2), 0px 6px 10px 0px rgba(0, 0, 0, 0.14), 0px 1px 18px 0px rgba(0, 0, 0, 0.12)",fabLowered:"0px 1px 3px 0px rgba(0, 0, 0, 0.2), 0px 1px 1px 0px rgba(0, 0, 0, 0.14), 0px 2px 1px -1px rgba(0, 0, 0, 0.12)",expanded:"0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04)"}},this.currentState="minimized",this.isContentVisible=!1,this.isAnimating=!1,this.isLowered=!1}get state(){return this.currentState}set state(t){this.stateChange$.next({source:"external",target:t,type:"state"})}get lowered(){return this.isLowered}set lowered(t){this.stateChange$.next({source:"external",target:this.currentState,type:"lowered"}),this.isLowered=t}connectedCallback(){super.connectedCallback(),this.setupUnifiedPipeline()}setupUnifiedPipeline(){const t=typeof window<"u"?o.fromEvent(window,"resize").pipe(s.debounceTime(100),s.filter(()=>this.currentState==="expanded"),s.tap(()=>this.stateChange$.next({source:"resize",type:"resize"}))):o.EMPTY;o.merge(o.of({source:"internal",target:"minimized",type:"state"}),this.stateChange$,t).pipe(s.scan((e,i)=>i.type==="resize"&&this.currentState==="expanded"?(this.updateExpandedWidth(),{...e,resized:!0}):i.type==="lowered"?{...e,lowered:!e.lowered}:i.type==="state"&&i.target&&i.target!==e.current?{...e,previous:e.current,current:i.target,pending:!0,source:i.source}:e,{current:"minimized",previous:"minimized",pending:!1,lowered:!1,resized:!1,source:"internal"}),s.tap(e=>{this.isLowered=e.lowered}),s.switchMap(e=>!e.pending||this.isAnimating?o.of(e):(this.isAnimating=!0,this.animateTransition(e.previous,e.current).pipe(s.tap(()=>{this.currentState=e.current,this.isContentVisible=e.current==="expanded",this.dispatchEvent(new CustomEvent("toggle",{detail:e.current,bubbles:!0,composed:!0}))}),s.catchError(i=>(this.currentState=e.current,this.isContentVisible=e.current==="expanded",o.of(e))),s.finalize(()=>{this.isAnimating=!1}),s.tap(()=>e.pending=!1)))),s.shareReplay(1),s.takeUntil(this.disconnecting)).subscribe()}animateTransition(t,e){return o.of({fromState:t,toState:e}).pipe(s.tap(()=>this.currentAnimation?.cancel()),s.switchMap(({fromState:i,toState:n})=>{if(!this.containerRef.value)return o.EMPTY;n==="expanded"&&(this.isContentVisible=!0);const c=this.createAnimations(i,n);return new Promise(r=>{const a=c.container;a?(this.currentAnimation=a,a.finished.then(()=>{n!=="expanded"&&(this.isContentVisible=!1),r()}).catch(()=>r())):r()})}))}createAnimations(t,e){const i=this.containerRef.value,n=this.contentRef.value,c=this.iconRef.value,r={};if(!i)return r;const a=this.ANIMATION_CONFIG,m=this.getStyleForState(t),h=this.getStyleForState(e);if(r.container=e==="expanded"?i.animate([m,{...h,transform:"translate3d(0, -8px, 0)",offset:.7},h],{duration:a.durations.expand,easing:a.easing.decelerate,fill:"forwards"}):i.animate([m,h],{duration:e==="hidden"?a.durations.hide:a.durations.minimize,easing:a.easing.accelerate,fill:"forwards"}),n&&t==="expanded"&&e==="minimized"?n.animate([{opacity:1,transform:"translateY(0)"},{opacity:0,transform:"translateY(-8px)"}],{duration:150,easing:a.easing.standard,fill:"forwards"}):n&&e==="expanded"&&n.animate([{opacity:0,transform:"translateY(8px)"},{opacity:1,transform:"translateY(0)"}],{duration:a.durations.content,easing:a.easing.standard,fill:"forwards"}),c){const u=e==="expanded";(u||t==="expanded"&&e==="minimized")&&c.animate([{transform:u?"rotate(0deg)":"rotate(180deg)"},{transform:u?"rotate(180deg)":"rotate(0deg)"}],{duration:250,easing:a.easing.emphasized,fill:"forwards"})}return r}getStyleForState(t){const{shadows:e}=this.ANIMATION_CONFIG,i={width:"300px",maxWidth:"300px",maxHeight:"auto",borderRadius:"16px"};return{hidden:{...i,transform:"translate3d(0, calc(100% + 16px), 0)",boxShadow:"none",backdropFilter:"none"},minimized:{...i,transform:"translate3d(0, calc(100% - 56px), 0)",boxShadow:this.isLowered?e.fabLowered:e.fab,backdropFilter:"none"},expanded:{transform:"translate3d(0, 0, 0)",width:this.getResponsiveWidth(),maxWidth:"100%",maxHeight:"80vh",boxShadow:e.expanded,borderRadius:"8px 8px 0 0",backdropFilter:"blur(12px)"}}[t]}getResponsiveWidth(){if(typeof window>"u")return"40vw";const t=window.innerWidth;return t<768?"calc(100vw - 32px)":t<1024?"70vw":t<1280?"60vw":"40vw"}updateExpandedWidth(){const t=this.containerRef.value;t&&this.currentState==="expanded"&&(t.style.width=this.getResponsiveWidth())}firstUpdated(){this.applyInitialStyles()}applyInitialStyles(){const t=this.containerRef.value,e=this.contentRef.value,i=this.iconRef.value;if(t){const n=this.getStyleForState(this.currentState);Object.assign(t.style,n),"webkitBackdropFilter"in t.style&&(t.style.webkitBackdropFilter=n.backdropFilter)}e&&(e.style.opacity=this.isContentVisible?"1":"0"),i&&this.currentState==="expanded"&&(i.style.transform="rotate(180deg)")}toggleState(){const t=this.currentState==="minimized"?"expanded":"minimized";this.stateChange$.next({source:"internal",target:t,type:"state"})}close(){this.stateChange$.next({source:"internal",target:"hidden",type:"state"})}disconnectedCallback(){super.disconnectedCallback(),this.currentAnimation?.cancel(),this.stateChange$.complete()}render(){const t=this.currentState==="minimized"?this.isLowered?"1":"3":"4",e=this.currentState==="minimized",i=e?"expand_less":"expand_more";return x.html`
|
|
10
|
+
<div
|
|
11
|
+
class="boat-container z-[9999] fixed bottom-4 right-4 overflow-y-auto flex flex-col"
|
|
12
|
+
${l.ref(this.containerRef)}
|
|
13
|
+
>
|
|
14
|
+
<!-- Header section -->
|
|
15
|
+
<section class="sticky top-0 z-10">
|
|
16
|
+
<schmancy-surface
|
|
17
|
+
elevation="${t}"
|
|
18
|
+
class="cursor-pointer"
|
|
19
|
+
rounded="${e?"none":"top"}"
|
|
20
|
+
type="containerLowest"
|
|
21
|
+
@click=${()=>this.toggleState()}
|
|
22
|
+
>
|
|
23
|
+
<div class="sticky top-0 px-3 py-2 flex items-center justify-between gap-3">
|
|
24
|
+
<!-- Header content slot -->
|
|
25
|
+
<div class="flex-1 flex items-center min-w-0">
|
|
26
|
+
<slot name="header"></slot>
|
|
27
|
+
</div>
|
|
28
|
+
|
|
29
|
+
<!-- Control buttons -->
|
|
30
|
+
<div class="flex items-center gap-1 flex-shrink-0">
|
|
31
|
+
<!-- Toggle button -->
|
|
32
|
+
<schmancy-icon-button
|
|
33
|
+
variant="${e?"text":"filled tonal"}"
|
|
34
|
+
@click=${n=>{n.stopPropagation(),this.toggleState()}}
|
|
35
|
+
title=${e?"Expand":"Minimize"}
|
|
36
|
+
>
|
|
37
|
+
<span class="icon-container" ${l.ref(this.iconRef)}>
|
|
38
|
+
${i}
|
|
39
|
+
</span>
|
|
40
|
+
</schmancy-icon-button>
|
|
41
|
+
|
|
42
|
+
<!-- Close button -->
|
|
43
|
+
<schmancy-icon-button
|
|
44
|
+
variant="text"
|
|
45
|
+
@click=${n=>{n.stopPropagation(),this.close()}}
|
|
46
|
+
title="Close"
|
|
47
|
+
>
|
|
48
|
+
close
|
|
49
|
+
</schmancy-icon-button>
|
|
50
|
+
</div>
|
|
51
|
+
</div>
|
|
52
|
+
</schmancy-surface>
|
|
53
|
+
</section>
|
|
54
|
+
|
|
55
|
+
<!-- Content section -->
|
|
56
|
+
<schmancy-surface
|
|
57
|
+
.hidden=${!this.isContentVisible}
|
|
58
|
+
type="containerLow"
|
|
59
|
+
class="boat-content z-0 flex-1"
|
|
60
|
+
${l.ref(this.contentRef)}
|
|
61
|
+
>
|
|
62
|
+
<slot></slot>
|
|
63
|
+
</schmancy-surface>
|
|
64
|
+
</div>
|
|
65
|
+
`}},p([d.property({type:String,reflect:!0})],exports.SchmancyBoat.prototype,"state",1),p([d.property({type:Boolean,reflect:!0})],exports.SchmancyBoat.prototype,"lowered",1),p([d.state()],exports.SchmancyBoat.prototype,"currentState",2),p([d.state()],exports.SchmancyBoat.prototype,"isContentVisible",2),p([d.state()],exports.SchmancyBoat.prototype,"isAnimating",2),p([d.state()],exports.SchmancyBoat.prototype,"isLowered",2),exports.SchmancyBoat=p([d.customElement("schmancy-boat")],exports.SchmancyBoat);
|
|
66
|
+
//# sourceMappingURL=boat-BtViHW8M.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"boat-BtViHW8M.cjs","sources":["../src/boat/boat.ts"],"sourcesContent":["import { TailwindElement } from '@mixins/tailwind.mixin'\nimport { css, html } from 'lit'\nimport { customElement, property, state } from 'lit/decorators.js'\nimport { createRef, ref, Ref } from 'lit/directives/ref.js'\nimport {\n Subject,\n fromEvent,\n merge,\n of,\n EMPTY\n} from 'rxjs'\nimport {\n filter,\n switchMap,\n takeUntil,\n tap,\n finalize,\n catchError,\n debounceTime,\n scan,\n shareReplay\n} from 'rxjs/operators'\n\ntype BoatState = 'hidden' | 'minimized' | 'expanded'\n\n// State change event for the unified pipeline\ninterface StateChangeEvent {\n\tsource: 'internal' | 'external' | 'resize'\n\ttarget?: BoatState\n\ttype: 'state' | 'lowered' | 'resize'\n}\n\n@customElement('schmancy-boat')\nexport default class SchmancyBoat extends TailwindElement(css`\n\t/* Performance optimization - GPU hints only */\n\t.boat-container {\n\t\twill-change: transform, border-radius, width, max-width, box-shadow;\n\t\tcontain: layout style;\n\t\ttransform: translate3d(0, 0, 0); /* Force GPU acceleration */\n\t\tbackface-visibility: hidden;\n\t}\n`) {\n\t// Public properties - route ALL changes through stateChange$\n\t@property({ type: String, reflect: true })\n\tget state(): BoatState {\n\t\treturn this.currentState\n\t}\n\tset state(value: BoatState) {\n\t\t// Route external state changes through the unified pipeline\n\t\tthis.stateChange$.next({\n\t\t\tsource: 'external',\n\t\t\ttarget: value,\n\t\t\ttype: 'state'\n\t\t})\n\t}\n\n\t@property({ type: Boolean, reflect: true })\n\tget lowered(): boolean {\n\t\treturn this.isLowered\n\t}\n\tset lowered(value: boolean) {\n\t\tthis.stateChange$.next({\n\t\t\tsource: 'external',\n\t\t\ttarget: this.currentState,\n\t\t\ttype: 'lowered'\n\t\t})\n\t\tthis.isLowered = value\n\t}\n\n\t// Single unified state change stream - ALL state changes go through this\n\tprivate stateChange$ = new Subject<StateChangeEvent>()\n\n\t// Element references\n\tprivate containerRef: Ref<HTMLDivElement> = createRef()\n\tprivate contentRef: Ref<HTMLElement> = createRef()\n\tprivate iconRef: Ref<HTMLElement> = createRef()\n\n\t// Current animation reference\n\tprivate currentAnimation?: Animation\n\n\t// Animation configuration\n\tprivate readonly ANIMATION_CONFIG = {\n\t\tdurations: {\n\t\t\texpand: 350,\n\t\t\tminimize: 250,\n\t\t\thide: 200,\n\t\t\tcontent: 300,\n\t\t},\n\t\teasing: {\n\t\t\temphasized: 'cubic-bezier(0.2, 0.0, 0, 1.0)',\n\t\t\tdecelerate: 'cubic-bezier(0.05, 0.7, 0.1, 1.0)',\n\t\t\taccelerate: 'cubic-bezier(0.3, 0.0, 0.8, 0.15)',\n\t\t\tstandard: 'cubic-bezier(0.4, 0.0, 0.2, 1)',\n\t\t},\n\t\tshadows: {\n\t\t\tfab: '0px 3px 5px -1px rgba(0, 0, 0, 0.2), 0px 6px 10px 0px rgba(0, 0, 0, 0.14), 0px 1px 18px 0px rgba(0, 0, 0, 0.12)',\n\t\t\tfabLowered: '0px 1px 3px 0px rgba(0, 0, 0, 0.2), 0px 1px 1px 0px rgba(0, 0, 0, 0.14), 0px 2px 1px -1px rgba(0, 0, 0, 0.12)',\n\t\t\texpanded: '0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04)',\n\t\t}\n\t}\n\n\t// Reactive state for template\n\t@state() private currentState: BoatState = 'minimized'\n\t@state() private isContentVisible: boolean = false\n\t@state() private isAnimating: boolean = false\n\t@state() private isLowered: boolean = false\n\n\tconnectedCallback() {\n\t\tsuper.connectedCallback()\n\t\tthis.setupUnifiedPipeline()\n\t}\n\n\tprivate setupUnifiedPipeline() {\n\t\t// Create resize stream\n\t\tconst resize$ = typeof window !== 'undefined'\n\t\t\t? fromEvent(window, 'resize').pipe(\n\t\t\t\tdebounceTime(100),\n\t\t\t\tfilter(() => this.currentState === 'expanded'),\n\t\t\t\ttap(() => this.stateChange$.next({\n\t\t\t\t\tsource: 'resize',\n\t\t\t\t\ttype: 'resize'\n\t\t\t\t}))\n\t\t\t)\n\t\t\t: EMPTY\n\n\t\t// SINGLE UNIFIED PIPELINE - All state management in ONE place\n\t\tmerge(\n\t\t\t// Initial state\n\t\t\tof({\n\t\t\t\tsource: 'internal' as const,\n\t\t\t\ttarget: 'minimized' as BoatState,\n\t\t\t\ttype: 'state' as const\n\t\t\t}),\n\t\t\t// All state changes\n\t\t\tthis.stateChange$,\n\t\t\t// Window resize events\n\t\t\tresize$\n\t\t).pipe(\n\t\t\t// Accumulate state and handle all changes\n\t\t\tscan((state, event: StateChangeEvent) => {\n\t\t\t\t// Handle different event types\n\t\t\t\tif (event.type === 'resize' && this.currentState === 'expanded') {\n\t\t\t\t\t// Just update width, no animation needed\n\t\t\t\t\tthis.updateExpandedWidth()\n\t\t\t\t\treturn { ...state, resized: true }\n\t\t\t\t}\n\n\t\t\t\tif (event.type === 'lowered') {\n\t\t\t\t\t// Update lowered state\n\t\t\t\t\treturn { ...state, lowered: !state.lowered }\n\t\t\t\t}\n\n\t\t\t\t// Handle state changes\n\t\t\t\tif (event.type === 'state' && event.target && event.target !== state.current) {\n\t\t\t\t\treturn {\n\t\t\t\t\t\t...state,\n\t\t\t\t\t\tprevious: state.current,\n\t\t\t\t\t\tcurrent: event.target,\n\t\t\t\t\t\tpending: true,\n\t\t\t\t\t\tsource: event.source\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn state\n\t\t\t}, {\n\t\t\t\tcurrent: 'minimized' as BoatState,\n\t\t\t\tprevious: 'minimized' as BoatState,\n\t\t\t\tpending: false,\n\t\t\t\tlowered: false,\n\t\t\t\tresized: false,\n\t\t\t\tsource: 'internal' as 'internal' | 'external' | 'resize'\n\t\t\t}),\n\n\t\t\t// Only process when there's a pending state change\n\t\t\ttap(state => {\n\t\t\t\t// Always update lowered state\n\t\t\t\tthis.isLowered = state.lowered\n\t\t\t}),\n\n\t\t\t// Handle animations for state transitions\n\t\t\tswitchMap(state => {\n\t\t\t\tif (!state.pending || this.isAnimating) {\n\t\t\t\t\treturn of(state)\n\t\t\t\t}\n\n\t\t\t\t// Mark as animating\n\t\t\t\tthis.isAnimating = true\n\n\t\t\t\t// Animate the transition\n\t\t\t\treturn this.animateTransition(state.previous, state.current).pipe(\n\t\t\t\t\ttap(() => {\n\t\t\t\t\t\t// Update state after animation completes\n\t\t\t\t\t\tthis.currentState = state.current\n\t\t\t\t\t\tthis.isContentVisible = state.current === 'expanded'\n\n\t\t\t\t\t\t// Dispatch event\n\t\t\t\t\t\tthis.dispatchEvent(new CustomEvent('toggle', {\n\t\t\t\t\t\t\tdetail: state.current,\n\t\t\t\t\t\t\tbubbles: true,\n\t\t\t\t\t\t\tcomposed: true,\n\t\t\t\t\t\t}))\n\t\t\t\t\t}),\n\t\t\t\t\tcatchError(err => {\n\t\t\t\t\t\tconsole.warn('Animation error:', err)\n\t\t\t\t\t\t// Still update state even if animation fails\n\t\t\t\t\t\tthis.currentState = state.current\n\t\t\t\t\t\tthis.isContentVisible = state.current === 'expanded'\n\t\t\t\t\t\treturn of(state)\n\t\t\t\t\t}),\n\t\t\t\t\tfinalize(() => {\n\t\t\t\t\t\tthis.isAnimating = false\n\t\t\t\t\t}),\n\t\t\t\t\t// Return the state for next iteration\n\t\t\t\t\ttap(() => state.pending = false)\n\t\t\t\t)\n\t\t\t}),\n\n\t\t\t// Share the pipeline result\n\t\t\tshareReplay(1),\n\t\t\ttakeUntil(this.disconnecting)\n\t\t).subscribe()\n\t}\n\n\t// Simplified animation transition method\n\tprivate animateTransition(fromState: BoatState, toState: BoatState) {\n\t\treturn of({ fromState, toState }).pipe(\n\t\t\ttap(() => this.currentAnimation?.cancel()),\n\t\t\tswitchMap(({ fromState, toState }) => {\n\t\t\t\tconst container = this.containerRef.value\n\t\t\t\tif (!container) return EMPTY\n\n\t\t\t\t// Update content visibility before expand, after minimize\n\t\t\t\tif (toState === 'expanded') {\n\t\t\t\t\tthis.isContentVisible = true\n\t\t\t\t}\n\n\t\t\t\t// Create animation based on target state\n\t\t\t\tconst animations = this.createAnimations(fromState, toState)\n\n\t\t\t\t// Execute animations and return completion promise\n\t\t\t\treturn new Promise<void>((resolve) => {\n\t\t\t\t\tconst mainAnimation = animations.container\n\t\t\t\t\tif (mainAnimation) {\n\t\t\t\t\t\tthis.currentAnimation = mainAnimation\n\t\t\t\t\t\tmainAnimation.finished.then(() => {\n\t\t\t\t\t\t\tif (toState !== 'expanded') {\n\t\t\t\t\t\t\t\tthis.isContentVisible = false\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tresolve()\n\t\t\t\t\t\t}).catch(() => resolve())\n\t\t\t\t\t} else {\n\t\t\t\t\t\tresolve()\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t})\n\t\t)\n\t}\n\n\t// Create animations for state transition\n\tprivate createAnimations(fromState: BoatState, toState: BoatState) {\n\t\tconst container = this.containerRef.value\n\t\tconst content = this.contentRef.value\n\t\tconst icon = this.iconRef.value\n\t\tconst animations: { container?: Animation; content?: Animation; icon?: Animation } = {}\n\n\t\tif (!container) return animations\n\n\t\tconst config = this.ANIMATION_CONFIG\n\t\tconst fromStyles = this.getStyleForState(fromState)\n\t\tconst toStyles = this.getStyleForState(toState)\n\n\t\t// Container animation\n\t\tif (toState === 'expanded') {\n\t\t\t// Add bounce effect for expand\n\t\t\tanimations.container = container.animate([\n\t\t\t\tfromStyles,\n\t\t\t\t{ ...toStyles, transform: 'translate3d(0, -8px, 0)', offset: 0.7 },\n\t\t\t\ttoStyles,\n\t\t\t], {\n\t\t\t\tduration: config.durations.expand,\n\t\t\t\teasing: config.easing.decelerate,\n\t\t\t\tfill: 'forwards',\n\t\t\t})\n\t\t} else {\n\t\t\tanimations.container = container.animate([fromStyles, toStyles], {\n\t\t\t\tduration: toState === 'hidden' ? config.durations.hide : config.durations.minimize,\n\t\t\t\teasing: config.easing.accelerate,\n\t\t\t\tfill: 'forwards',\n\t\t\t})\n\t\t}\n\n\t\t// Content animation (only for expand/minimize transitions)\n\t\tif (content && fromState === 'expanded' && toState === 'minimized') {\n\t\t\t// Fade out content before minimizing\n\t\t\tcontent.animate([\n\t\t\t\t{ opacity: 1, transform: 'translateY(0)' },\n\t\t\t\t{ opacity: 0, transform: 'translateY(-8px)' },\n\t\t\t], {\n\t\t\t\tduration: 150,\n\t\t\t\teasing: config.easing.standard,\n\t\t\t\tfill: 'forwards',\n\t\t\t})\n\t\t} else if (content && toState === 'expanded') {\n\t\t\t// Fade in content when expanding\n\t\t\tcontent.animate([\n\t\t\t\t{ opacity: 0, transform: 'translateY(8px)' },\n\t\t\t\t{ opacity: 1, transform: 'translateY(0)' },\n\t\t\t], {\n\t\t\t\tduration: config.durations.content,\n\t\t\t\teasing: config.easing.standard,\n\t\t\t\tfill: 'forwards',\n\t\t\t})\n\t\t}\n\n\t\t// Icon rotation animation\n\t\tif (icon) {\n\t\t\tconst isExpanding = toState === 'expanded'\n\t\t\tconst isCollapsing = fromState === 'expanded' && toState === 'minimized'\n\n\t\t\tif (isExpanding || isCollapsing) {\n\t\t\t\ticon.animate([\n\t\t\t\t\t{ transform: isExpanding ? 'rotate(0deg)' : 'rotate(180deg)' },\n\t\t\t\t\t{ transform: isExpanding ? 'rotate(180deg)' : 'rotate(0deg)' },\n\t\t\t\t], {\n\t\t\t\t\tduration: 250,\n\t\t\t\t\teasing: config.easing.emphasized,\n\t\t\t\t\tfill: 'forwards',\n\t\t\t\t})\n\t\t\t}\n\t\t}\n\n\t\treturn animations\n\t}\n\n\t// Get styles for a specific state\n\tprivate getStyleForState(state: BoatState): Keyframe {\n\t\tconst { shadows } = this.ANIMATION_CONFIG\n\t\tconst baseStyles = {\n\t\t\twidth: '300px',\n\t\t\tmaxWidth: '300px',\n\t\t\tmaxHeight: 'auto',\n\t\t\tborderRadius: '16px',\n\t\t}\n\n\t\tconst stateStyles: Record<BoatState, Keyframe> = {\n\t\t\thidden: {\n\t\t\t\t...baseStyles,\n\t\t\t\ttransform: 'translate3d(0, calc(100% + 16px), 0)',\n\t\t\t\tboxShadow: 'none',\n\t\t\t\tbackdropFilter: 'none',\n\t\t\t},\n\t\t\tminimized: {\n\t\t\t\t...baseStyles,\n\t\t\t\ttransform: 'translate3d(0, calc(100% - 56px), 0)',\n\t\t\t\tboxShadow: this.isLowered ? shadows.fabLowered : shadows.fab,\n\t\t\t\tbackdropFilter: 'none',\n\t\t\t},\n\t\t\texpanded: {\n\t\t\t\ttransform: 'translate3d(0, 0, 0)',\n\t\t\t\twidth: this.getResponsiveWidth(),\n\t\t\t\tmaxWidth: '100%',\n\t\t\t\tmaxHeight: '80vh',\n\t\t\t\tboxShadow: shadows.expanded,\n\t\t\t\tborderRadius: '8px 8px 0 0',\n\t\t\t\tbackdropFilter: 'blur(12px)',\n\t\t\t},\n\t\t}\n\n\t\treturn stateStyles[state] as Keyframe\n\t}\n\n\t// Calculate responsive width based on viewport\n\tprivate getResponsiveWidth(): string {\n\t\tif (typeof window === 'undefined') return '40vw'\n\n\t\tconst vw = window.innerWidth\n\t\tif (vw < 768) return 'calc(100vw - 32px)'\n\t\tif (vw < 1024) return '70vw'\n\t\tif (vw < 1280) return '60vw'\n\t\treturn '40vw'\n\t}\n\n\t// Update expanded width on window resize\n\tprivate updateExpandedWidth() {\n\t\tconst container = this.containerRef.value\n\t\tif (container && this.currentState === 'expanded') {\n\t\t\tcontainer.style.width = this.getResponsiveWidth()\n\t\t}\n\t}\n\n\t// Initialize component styles after first render\n\tfirstUpdated() {\n\t\t// Apply initial styles\n\t\tthis.applyInitialStyles()\n\t}\n\n\t// Apply initial styles to elements\n\tprivate applyInitialStyles() {\n\t\tconst container = this.containerRef.value\n\t\tconst content = this.contentRef.value\n\t\tconst icon = this.iconRef.value\n\n\t\tif (container) {\n\t\t\tconst initialStyle = this.getStyleForState(this.currentState)\n\t\t\tObject.assign(container.style, initialStyle)\n\n\t\t\t// Safari compatibility for backdrop filter\n\t\t\tif ('webkitBackdropFilter' in container.style) {\n\t\t\t\t(container.style as any).webkitBackdropFilter = initialStyle.backdropFilter\n\t\t\t}\n\t\t}\n\n\t\t// Set initial content opacity\n\t\tif (content) {\n\t\t\tcontent.style.opacity = this.isContentVisible ? '1' : '0'\n\t\t}\n\n\t\t// Set initial icon rotation\n\t\tif (icon && this.currentState === 'expanded') {\n\t\t\ticon.style.transform = 'rotate(180deg)'\n\t\t}\n\t}\n\n\t// Public method to toggle between minimized and expanded\n\ttoggleState() {\n\t\tconst newState = this.currentState === 'minimized' ? 'expanded' : 'minimized'\n\t\tthis.stateChange$.next({\n\t\t\tsource: 'internal',\n\t\t\ttarget: newState,\n\t\t\ttype: 'state'\n\t\t})\n\t}\n\n\t// Public method to close (hide) the boat\n\tclose() {\n\t\tthis.stateChange$.next({\n\t\t\tsource: 'internal',\n\t\t\ttarget: 'hidden',\n\t\t\ttype: 'state'\n\t\t})\n\t}\n\n\t// Cleanup on component disconnect\n\tdisconnectedCallback() {\n\t\tsuper.disconnectedCallback()\n\t\tthis.currentAnimation?.cancel()\n\t\tthis.stateChange$.complete()\n\t}\n\n\t// Render the component\n\tprotected render(): unknown {\n\t\t// Calculate dynamic values\n\t\tconst surfaceElevation = this.currentState === 'minimized'\n\t\t\t? (this.isLowered ? '1' : '3')\n\t\t\t: '4'\n\t\tconst isMinimized = this.currentState === 'minimized'\n\t\tconst iconName = isMinimized ? 'expand_less' : 'expand_more'\n\n\t\treturn html`\n\t\t\t<div\n\t\t\t\tclass=\"boat-container z-[9999] fixed bottom-4 right-4 overflow-y-auto flex flex-col\"\n\t\t\t\t${ref(this.containerRef)}\n\t\t\t>\n\t\t\t\t<!-- Header section -->\n\t\t\t\t<section class=\"sticky top-0 z-10\">\n\t\t\t\t\t<schmancy-surface\n\t\t\t\t\t\televation=\"${surfaceElevation}\"\n\t\t\t\t\t\tclass=\"cursor-pointer\"\n\t\t\t\t\t\trounded=\"${isMinimized ? 'none' : 'top'}\"\n\t\t\t\t\t\ttype=\"containerLowest\"\n\t\t\t\t\t\t@click=${() => this.toggleState()}\n\t\t\t\t\t>\n\t\t\t\t\t\t<div class=\"sticky top-0 px-3 py-2 flex items-center justify-between gap-3\">\n\t\t\t\t\t\t\t<!-- Header content slot -->\n\t\t\t\t\t\t\t<div class=\"flex-1 flex items-center min-w-0\">\n\t\t\t\t\t\t\t\t<slot name=\"header\"></slot>\n\t\t\t\t\t\t\t</div>\n\n\t\t\t\t\t\t\t<!-- Control buttons -->\n\t\t\t\t\t\t\t<div class=\"flex items-center gap-1 flex-shrink-0\">\n\t\t\t\t\t\t\t\t<!-- Toggle button -->\n\t\t\t\t\t\t\t\t<schmancy-icon-button\n\t\t\t\t\t\t\t\t\tvariant=\"${isMinimized ? 'text' : 'filled tonal'}\"\n\t\t\t\t\t\t\t\t\t@click=${(e: Event) => {\n\t\t\t\t\t\t\t\t\t\te.stopPropagation()\n\t\t\t\t\t\t\t\t\t\tthis.toggleState()\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\ttitle=${isMinimized ? 'Expand' : 'Minimize'}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<span class=\"icon-container\" ${ref(this.iconRef)}>\n\t\t\t\t\t\t\t\t\t\t${iconName}\n\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t</schmancy-icon-button>\n\n\t\t\t\t\t\t\t\t<!-- Close button -->\n\t\t\t\t\t\t\t\t<schmancy-icon-button\n\t\t\t\t\t\t\t\t\tvariant=\"text\"\n\t\t\t\t\t\t\t\t\t@click=${(e: Event) => {\n\t\t\t\t\t\t\t\t\t\te.stopPropagation()\n\t\t\t\t\t\t\t\t\t\tthis.close()\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\ttitle=\"Close\"\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\tclose\n\t\t\t\t\t\t\t\t</schmancy-icon-button>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</schmancy-surface>\n\t\t\t\t</section>\n\n\t\t\t\t<!-- Content section -->\n\t\t\t\t<schmancy-surface\n\t\t\t\t\t.hidden=${!this.isContentVisible}\n\t\t\t\t\ttype=\"containerLow\"\n\t\t\t\t\tclass=\"boat-content z-0 flex-1\"\n\t\t\t\t\t${ref(this.contentRef)}\n\t\t\t\t>\n\t\t\t\t\t<slot></slot>\n\t\t\t\t</schmancy-surface>\n\t\t\t</div>\n\t\t`\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-boat': SchmancyBoat\n\t}\n}"],"names":["SchmancyBoat","TailwindElement","css","constructor","super","arguments","this","stateChange$","Subject","containerRef","createRef","contentRef","iconRef","ANIMATION_CONFIG","durations","expand","minimize","hide","content","easing","emphasized","decelerate","accelerate","standard","shadows","fab","fabLowered","expanded","currentState","isContentVisible","isAnimating","isLowered","value","next","source","target","type","lowered","connectedCallback","setupUnifiedPipeline","resize$","window","fromEvent","pipe","debounceTime","filter","tap","EMPTY","merge","of","scan","state","event","updateExpandedWidth","resized","current","previous","pending","switchMap","animateTransition","dispatchEvent","CustomEvent","detail","bubbles","composed","catchError","err","finalize","shareReplay","takeUntil","disconnecting","subscribe","fromState","toState","currentAnimation","cancel","animations","createAnimations","Promise","resolve","mainAnimation","container","finished","then","catch","icon","config","fromStyles","getStyleForState","toStyles","animate","transform","offset","duration","fill","opacity","isExpanding","baseStyles","width","maxWidth","maxHeight","borderRadius","hidden","boxShadow","backdropFilter","minimized","getResponsiveWidth","vw","innerWidth","style","firstUpdated","applyInitialStyles","initialStyle","Object","assign","webkitBackdropFilter","toggleState","newState","disconnectedCallback","complete","render","surfaceElevation","isMinimized","iconName","html","ref","e","stopPropagation","close","__decorateClass","property","String","reflect","prototype","Boolean","customElement"],"mappings":"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"}
|
package/dist/boat.cjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./boat-
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./boat-BtViHW8M.cjs");Object.defineProperty(exports,"SchmancyBoat",{enumerable:!0,get:()=>e.SchmancyBoat});
|
|
2
2
|
//# sourceMappingURL=boat.cjs.map
|
package/dist/boat.js
CHANGED
package/dist/busy.cjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";require("./spinner-
|
|
1
|
+
"use strict";require("./spinner-BuujVERe.cjs");
|
|
2
2
|
//# sourceMappingURL=busy.cjs.map
|
package/dist/busy.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import "./spinner-
|
|
1
|
+
import "./spinner-CUHM2lNo.js";
|
|
2
2
|
//# sourceMappingURL=busy.js.map
|
package/dist/button.cjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./icon-button-
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./icon-button-CB52pDFa.cjs");Object.defineProperty(exports,"SchmancyButton",{enumerable:!0,get:()=>e.SchmancyButton}),Object.defineProperty(exports,"SchmnacyIconButton",{enumerable:!0,get:()=>e.SchmnacyIconButton});
|
|
2
2
|
//# sourceMappingURL=button.cjs.map
|
package/dist/button.js
CHANGED
package/dist/card.cjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";require("./media-
|
|
1
|
+
"use strict";require("./media-CdM6XhRo.cjs");
|
|
2
2
|
//# sourceMappingURL=card.cjs.map
|
package/dist/card.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import "./media-
|
|
1
|
+
import "./media-DOKkl0Ic.js";
|
|
2
2
|
//# sourceMappingURL=card.js.map
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use strict";const d=require("./tslib.es6-DgOcxv4s.cjs"),n=require("lit/decorators.js"),c=require("lit"),F=require("lit/directives/class-map.js");require("rxjs"),require("lit/directives/style-map.js");const G=require("./tailwind.mixin-
|
|
1
|
+
"use strict";const d=require("./tslib.es6-DgOcxv4s.cjs"),n=require("lit/decorators.js"),c=require("lit"),F=require("lit/directives/class-map.js");require("rxjs"),require("lit/directives/style-map.js");const G=require("./tailwind.mixin-BiRVB4Hl.cjs"),H=require("lit/directives/when.js"),D=Symbol("attachableController");let N;c.isServer||(N=new MutationObserver(o=>{for(const e of o)e.target[D]?.hostConnected()}));class U{get htmlFor(){return this.host.getAttribute("for")}set htmlFor(e){e===null?this.host.removeAttribute("for"):this.host.setAttribute("for",e)}get control(){return this.host.hasAttribute("for")?this.htmlFor&&this.host.isConnected?this.host.getRootNode().querySelector(`#${this.htmlFor}`):null:this.currentControl||this.host.parentElement}set control(e){e?this.attach(e):this.detach()}constructor(e,t){this.host=e,this.onControlChange=t,this.currentControl=null,e.addController(this),e[D]=this,N?.observe(e,{attributeFilter:["for"]})}attach(e){e!==this.currentControl&&(this.setCurrentControl(e),this.host.removeAttribute("for"))}detach(){this.setCurrentControl(null),this.host.setAttribute("for","")}hostConnected(){this.setCurrentControl(this.control)}hostDisconnected(){this.setCurrentControl(null)}setCurrentControl(e){this.onControlChange(this.currentControl,e),this.currentControl=e}}const Y=["focusin","focusout","pointerdown"];class z extends c.LitElement{constructor(){super(...arguments),this.visible=!1,this.inward=!1,this.attachableController=new U(this,this.onControlChange.bind(this))}get htmlFor(){return this.attachableController.htmlFor}set htmlFor(e){this.attachableController.htmlFor=e}get control(){return this.attachableController.control}set control(e){this.attachableController.control=e}attach(e){this.attachableController.attach(e)}detach(){this.attachableController.detach()}connectedCallback(){super.connectedCallback(),this.setAttribute("aria-hidden","true")}handleEvent(e){if(!e[O]){switch(e.type){default:return;case"focusin":this.visible=this.control?.matches(":focus-visible")??!1;break;case"focusout":case"pointerdown":this.visible=!1}e[O]=!0}}onControlChange(e,t){if(!c.isServer)for(const r of Y)e?.removeEventListener(r,this),t?.addEventListener(r,this)}update(e){e.has("visible")&&this.dispatchEvent(new Event("visibility-changed")),super.update(e)}}d.t([n.property({type:Boolean,reflect:!0})],z.prototype,"visible",void 0),d.t([n.property({type:Boolean,reflect:!0})],z.prototype,"inward",void 0);const O=Symbol("handledByFocusRing"),K=c.css`:host{animation-delay:0s,calc(var(--md-focus-ring-duration, 600ms)*.25);animation-duration:calc(var(--md-focus-ring-duration, 600ms)*.25),calc(var(--md-focus-ring-duration, 600ms)*.75);animation-timing-function:cubic-bezier(0.2, 0, 0, 1);box-sizing:border-box;color:var(--md-focus-ring-color, var(--md-sys-color-secondary, #625b71));display:none;pointer-events:none;position:absolute}:host([visible]){display:flex}:host(:not([inward])){animation-name:outward-grow,outward-shrink;border-end-end-radius:calc(var(--md-focus-ring-shape-end-end, var(--md-focus-ring-shape, var(--md-sys-shape-corner-full, 9999px))) + var(--md-focus-ring-outward-offset, 2px));border-end-start-radius:calc(var(--md-focus-ring-shape-end-start, var(--md-focus-ring-shape, var(--md-sys-shape-corner-full, 9999px))) + var(--md-focus-ring-outward-offset, 2px));border-start-end-radius:calc(var(--md-focus-ring-shape-start-end, var(--md-focus-ring-shape, var(--md-sys-shape-corner-full, 9999px))) + var(--md-focus-ring-outward-offset, 2px));border-start-start-radius:calc(var(--md-focus-ring-shape-start-start, var(--md-focus-ring-shape, var(--md-sys-shape-corner-full, 9999px))) + var(--md-focus-ring-outward-offset, 2px));inset:calc(-1*var(--md-focus-ring-outward-offset, 2px));outline:var(--md-focus-ring-width, 3px) solid currentColor}:host([inward]){animation-name:inward-grow,inward-shrink;border-end-end-radius:calc(var(--md-focus-ring-shape-end-end, var(--md-focus-ring-shape, var(--md-sys-shape-corner-full, 9999px))) - var(--md-focus-ring-inward-offset, 0px));border-end-start-radius:calc(var(--md-focus-ring-shape-end-start, var(--md-focus-ring-shape, var(--md-sys-shape-corner-full, 9999px))) - var(--md-focus-ring-inward-offset, 0px));border-start-end-radius:calc(var(--md-focus-ring-shape-start-end, var(--md-focus-ring-shape, var(--md-sys-shape-corner-full, 9999px))) - var(--md-focus-ring-inward-offset, 0px));border-start-start-radius:calc(var(--md-focus-ring-shape-start-start, var(--md-focus-ring-shape, var(--md-sys-shape-corner-full, 9999px))) - var(--md-focus-ring-inward-offset, 0px));border:var(--md-focus-ring-width, 3px) solid currentColor;inset:var(--md-focus-ring-inward-offset, 0px)}@keyframes outward-grow{from{outline-width:0}to{outline-width:var(--md-focus-ring-active-width, 8px)}}@keyframes outward-shrink{from{outline-width:var(--md-focus-ring-active-width, 8px)}}@keyframes inward-grow{from{border-width:0}to{border-width:var(--md-focus-ring-active-width, 8px)}}@keyframes inward-shrink{from{border-width:var(--md-focus-ring-active-width, 8px)}}@media(prefers-reduced-motion){:host{animation:none}}
|
|
2
2
|
`;let C=class extends z{};C.styles=[K],C=d.t([n.customElement("md-focus-ring")],C);const W="cubic-bezier(0.2, 0, 0, 1)";var h;(function(o){o[o.INACTIVE=0]="INACTIVE",o[o.TOUCH_DELAY=1]="TOUCH_DELAY",o[o.HOLDING=2]="HOLDING",o[o.WAITING_FOR_CLICK=3]="WAITING_FOR_CLICK"})(h||(h={}));const j=["click","contextmenu","pointercancel","pointerdown","pointerenter","pointerleave","pointerup"],Z=c.isServer?null:window.matchMedia("(forced-colors: active)");class f extends c.LitElement{constructor(){super(...arguments),this.disabled=!1,this.hovered=!1,this.pressed=!1,this.rippleSize="",this.rippleScale="",this.initialSize=0,this.state=h.INACTIVE,this.attachableController=new U(this,this.onControlChange.bind(this))}get htmlFor(){return this.attachableController.htmlFor}set htmlFor(e){this.attachableController.htmlFor=e}get control(){return this.attachableController.control}set control(e){this.attachableController.control=e}attach(e){this.attachableController.attach(e)}detach(){this.attachableController.detach()}connectedCallback(){super.connectedCallback(),this.setAttribute("aria-hidden","true")}render(){const e={hovered:this.hovered,pressed:this.pressed};return c.html`<div class="surface ${F.classMap(e)}"></div>`}update(e){e.has("disabled")&&this.disabled&&(this.hovered=!1,this.pressed=!1),super.update(e)}handlePointerenter(e){this.shouldReactToEvent(e)&&(this.hovered=!0)}handlePointerleave(e){this.shouldReactToEvent(e)&&(this.hovered=!1,this.state!==h.INACTIVE&&this.endPressAnimation())}handlePointerup(e){if(this.shouldReactToEvent(e)){if(this.state!==h.HOLDING)return this.state===h.TOUCH_DELAY?(this.state=h.WAITING_FOR_CLICK,void this.startPressAnimation(this.rippleStartEvent)):void 0;this.state=h.WAITING_FOR_CLICK}}async handlePointerdown(e){if(this.shouldReactToEvent(e)){if(this.rippleStartEvent=e,!this.isTouch(e))return this.state=h.WAITING_FOR_CLICK,void this.startPressAnimation(e);this.state=h.TOUCH_DELAY,await new Promise(t=>{setTimeout(t,150)}),this.state===h.TOUCH_DELAY&&(this.state=h.HOLDING,this.startPressAnimation(e))}}handleClick(){this.disabled||(this.state!==h.WAITING_FOR_CLICK?this.state===h.INACTIVE&&(this.startPressAnimation(),this.endPressAnimation()):this.endPressAnimation())}handlePointercancel(e){this.shouldReactToEvent(e)&&this.endPressAnimation()}handleContextmenu(){this.disabled||this.endPressAnimation()}determineRippleSize(){const{height:e,width:t}=this.getBoundingClientRect(),r=Math.max(e,t),i=Math.max(.35*r,75),a=this.currentCSSZoom??1,s=Math.floor(.2*r/a),l=Math.sqrt(t**2+e**2)+10;this.initialSize=s;const m=(l+i)/s;this.rippleScale=""+m/a,this.rippleSize=`${s}px`}getNormalizedPointerEventCoords(e){const{scrollX:t,scrollY:r}=window,{left:i,top:a}=this.getBoundingClientRect(),s=t+i,l=r+a,{pageX:m,pageY:y}=e,M=this.currentCSSZoom??1;return{x:(m-s)/M,y:(y-l)/M}}getTranslationCoordinates(e){const{height:t,width:r}=this.getBoundingClientRect(),i=this.currentCSSZoom??1,a={x:(r/i-this.initialSize)/2,y:(t/i-this.initialSize)/2};let s;return s=e instanceof PointerEvent?this.getNormalizedPointerEventCoords(e):{x:r/i/2,y:t/i/2},s={x:s.x-this.initialSize/2,y:s.y-this.initialSize/2},{startPoint:s,endPoint:a}}startPressAnimation(e){if(!this.mdRoot)return;this.pressed=!0,this.growAnimation?.cancel(),this.determineRippleSize();const{startPoint:t,endPoint:r}=this.getTranslationCoordinates(e),i=`${t.x}px, ${t.y}px`,a=`${r.x}px, ${r.y}px`;this.growAnimation=this.mdRoot.animate({top:[0,0],left:[0,0],height:[this.rippleSize,this.rippleSize],width:[this.rippleSize,this.rippleSize],transform:[`translate(${i}) scale(1)`,`translate(${a}) scale(${this.rippleScale})`]},{pseudoElement:"::after",duration:450,easing:W,fill:"forwards"})}async endPressAnimation(){this.rippleStartEvent=void 0,this.state=h.INACTIVE;const e=this.growAnimation;let t=1/0;typeof e?.currentTime=="number"?t=e.currentTime:e?.currentTime&&(t=e.currentTime.to("ms").value),t>=225?this.pressed=!1:(await new Promise(r=>{setTimeout(r,225-t)}),this.growAnimation===e&&(this.pressed=!1))}shouldReactToEvent(e){if(this.disabled||!e.isPrimary||this.rippleStartEvent&&this.rippleStartEvent.pointerId!==e.pointerId)return!1;if(e.type==="pointerenter"||e.type==="pointerleave")return!this.isTouch(e);const t=e.buttons===1;return this.isTouch(e)||t}isTouch({pointerType:e}){return e==="touch"}async handleEvent(e){if(!Z?.matches)switch(e.type){case"click":this.handleClick();break;case"contextmenu":this.handleContextmenu();break;case"pointercancel":this.handlePointercancel(e);break;case"pointerdown":await this.handlePointerdown(e);break;case"pointerenter":this.handlePointerenter(e);break;case"pointerleave":this.handlePointerleave(e);break;case"pointerup":this.handlePointerup(e)}}onControlChange(e,t){if(!c.isServer)for(const r of j)e?.removeEventListener(r,this),t?.addEventListener(r,this)}}d.t([n.property({type:Boolean,reflect:!0})],f.prototype,"disabled",void 0),d.t([n.state()],f.prototype,"hovered",void 0),d.t([n.state()],f.prototype,"pressed",void 0),d.t([n.query(".surface")],f.prototype,"mdRoot",void 0);const X=c.css`:host{display:flex;margin:auto;pointer-events:none}:host([disabled]){display:none}@media(forced-colors: active){:host{display:none}}:host,.surface{border-radius:inherit;position:absolute;inset:0;overflow:hidden}.surface{-webkit-tap-highlight-color:rgba(0,0,0,0)}.surface::before,.surface::after{content:"";opacity:0;position:absolute}.surface::before{background-color:var(--md-ripple-hover-color, var(--md-sys-color-on-surface, #1d1b20));inset:0;transition:opacity 15ms linear,background-color 15ms linear}.surface::after{background:radial-gradient(closest-side, var(--md-ripple-pressed-color, var(--md-sys-color-on-surface, #1d1b20)) max(100% - 70px, 65%), transparent 100%);transform-origin:center center;transition:opacity 375ms linear}.hovered::before{background-color:var(--md-ripple-hover-color, var(--md-sys-color-on-surface, #1d1b20));opacity:var(--md-ripple-hover-opacity, 0.08)}.pressed::after{opacity:var(--md-ripple-pressed-opacity, 0.12);transition-duration:105ms}
|
|
3
3
|
`;let w=class extends f{};w.styles=[X],w=d.t([n.customElement("md-ripple")],w);const B=["role","ariaAtomic","ariaAutoComplete","ariaBusy","ariaChecked","ariaColCount","ariaColIndex","ariaColSpan","ariaCurrent","ariaDisabled","ariaExpanded","ariaHasPopup","ariaHidden","ariaInvalid","ariaKeyShortcuts","ariaLabel","ariaLevel","ariaLive","ariaModal","ariaMultiLine","ariaMultiSelectable","ariaOrientation","ariaPlaceholder","ariaPosInSet","ariaPressed","ariaReadOnly","ariaRequired","ariaRoleDescription","ariaRowCount","ariaRowIndex","ariaRowSpan","ariaSelected","ariaSetSize","ariaSort","ariaValueMax","ariaValueMin","ariaValueNow","ariaValueText"],J=B.map(_);function S(o){return J.includes(o)}function _(o){return o.replace("aria","aria-").replace(/Elements?/g,"").toLowerCase()}const g=Symbol("privateIgnoreAttributeChangesFor");function E(o){return`data-${o}`}function A(o){return o.replace(/-\w/,e=>e[1].toUpperCase())}function Q(o){return o.currentTarget===o.target&&o.composedPath()[0]===o.target&&!o.target.disabled&&!function(e){const t=I;return t&&(e.preventDefault(),e.stopImmediatePropagation()),async function(){I=!0,await null,I=!1}(),t}(o)}let I=!1;const p=Symbol("internals"),P=Symbol("privateInternals"),R=Symbol("createValidator"),V=Symbol("getValidityAnchor"),T=Symbol("privateValidator"),b=Symbol("privateSyncValidity"),k=Symbol("privateCustomValidationMessage"),x=Symbol("getFormValue"),L=Symbol("getFormState");class ee{constructor(e){this.getCurrentState=e,this.currentValidity={validity:{},validationMessage:""}}getValidity(){const e=this.getCurrentState();if(!(!this.prevState||!this.equals(this.prevState,e)))return this.currentValidity;const{validity:t,validationMessage:r}=this.computeValidity(e);return this.prevState=this.copy(e),this.currentValidity={validationMessage:r,validity:{badInput:t.badInput,customError:t.customError,patternMismatch:t.patternMismatch,rangeOverflow:t.rangeOverflow,rangeUnderflow:t.rangeUnderflow,stepMismatch:t.stepMismatch,tooLong:t.tooLong,tooShort:t.tooShort,typeMismatch:t.typeMismatch,valueMissing:t.valueMissing}},this.currentValidity}}class te extends ee{computeValidity(e){return this.checkboxControl||(this.checkboxControl=document.createElement("input"),this.checkboxControl.type="checkbox"),this.checkboxControl.checked=e.checked,this.checkboxControl.required=e.required,{validity:this.checkboxControl.validity,validationMessage:this.checkboxControl.validationMessage}}equals(e,t){return e.checked===t.checked&&e.required===t.required}copy({checked:e,required:t}){return{checked:e,required:t}}}const re=function(o){var e;if(c.isServer)return o;class t extends o{constructor(){super(...arguments),this[e]=new Set}attributeChangedCallback(i,a,s){if(!S(i))return void super.attributeChangedCallback(i,a,s);if(this[g].has(i))return;this[g].add(i),this.removeAttribute(i),this[g].delete(i);const l=A(i);s===null?delete this.dataset[l]:this.dataset[l]=s,this.requestUpdate(A(i),a)}getAttribute(i){return S(i)?super.getAttribute(E(i)):super.getAttribute(i)}removeAttribute(i){super.removeAttribute(i),S(i)&&(super.removeAttribute(E(i)),this.requestUpdate())}}return e=g,function(r){for(const i of B){const a=_(i),s=E(a),l=A(a);r.createProperty(i,{attribute:a,noAccessor:!0}),r.createProperty(Symbol(s),{attribute:s,noAccessor:!0}),Object.defineProperty(r.prototype,i,{configurable:!0,enumerable:!0,get(){return this.dataset[l]??null},set(m){const y=this.dataset[l]??null;m!==y&&(m===null?delete this.dataset[l]:this.dataset[l]=m,this.requestUpdate(i,y))}})}}(t),t}(function(o){var e;class t extends o{constructor(){super(...arguments),this[e]=""}get validity(){return this[b](),this[p].validity}get validationMessage(){return this[b](),this[p].validationMessage}get willValidate(){return this[b](),this[p].willValidate}checkValidity(){return this[b](),this[p].checkValidity()}reportValidity(){return this[b](),this[p].reportValidity()}setCustomValidity(i){this[k]=i,this[b]()}requestUpdate(i,a,s){super.requestUpdate(i,a,s),this[b]()}firstUpdated(i){super.firstUpdated(i),this[b]()}[(e=k,b)](){if(c.isServer)return;this[T]||(this[T]=this[R]());const{validity:i,validationMessage:a}=this[T].getValidity(),s=!!this[k],l=this[k]||a;this[p].setValidity({...i,customError:s},l,this[V]()??void 0)}[R](){throw new Error("Implement [createValidator]")}[V](){throw new Error("Implement [getValidityAnchor]")}}return t}(function(o){class e extends o{get form(){return this[p].form}get labels(){return this[p].labels}get name(){return this.getAttribute("name")??""}set name(r){this.setAttribute("name",r)}get disabled(){return this.hasAttribute("disabled")}set disabled(r){this.toggleAttribute("disabled",r)}attributeChangedCallback(r,i,a){if(r==="name"||r==="disabled"){const s=r==="disabled"?i!==null:i;return void this.requestUpdate(r,s)}super.attributeChangedCallback(r,i,a)}requestUpdate(r,i,a){super.requestUpdate(r,i,a),this[p].setFormValue(this[x](),this[L]())}[x](){throw new Error("Implement [getFormValue]")}[L](){return this[x]()}formDisabledCallback(r){this.disabled=r}}return e.formAssociated=!0,d.t([n.property({noAccessor:!0})],e.prototype,"name",null),d.t([n.property({type:Boolean,noAccessor:!0})],e.prototype,"disabled",null),e}(($=c.LitElement,class extends ${get[p](){return this[P]||(this[P]=this.attachInternals()),this[P]}}))));var $;class u extends re{constructor(){super(),this.checked=!1,this.indeterminate=!1,this.required=!1,this.value="on",this.prevChecked=!1,this.prevDisabled=!1,this.prevIndeterminate=!1,c.isServer||this.addEventListener("click",e=>{Q(e)&&this.input&&(this.focus(),function(t){const r=new MouseEvent("click",{bubbles:!0});t.dispatchEvent(r)}(this.input))})}update(e){(e.has("checked")||e.has("disabled")||e.has("indeterminate"))&&(this.prevChecked=e.get("checked")??this.checked,this.prevDisabled=e.get("disabled")??this.disabled,this.prevIndeterminate=e.get("indeterminate")??this.indeterminate),super.update(e)}render(){const e=!this.prevChecked&&!this.prevIndeterminate,t=this.prevChecked&&!this.prevIndeterminate,r=this.prevIndeterminate,i=this.checked&&!this.indeterminate,a=this.indeterminate,s=F.classMap({disabled:this.disabled,selected:i||a,unselected:!i&&!a,checked:i,indeterminate:a,"prev-unselected":e,"prev-checked":t,"prev-indeterminate":r,"prev-disabled":this.prevDisabled}),{ariaLabel:l,ariaInvalid:m}=this;return c.html`
|
|
4
4
|
<div class="container ${s}">
|
|
@@ -37,4 +37,4 @@
|
|
|
37
37
|
${H.when(this.label,()=>c.html`<span>${this.label}</span>`,()=>c.html`<slot></slot>`)}
|
|
38
38
|
</label>
|
|
39
39
|
`}},exports.SchmancyCheckboxElement.shadowRootOptions={...c.LitElement.shadowRootOptions,delegatesFocus:!0},exports.SchmancyCheckboxElement.formAssociated=!0,v([n.property({type:Boolean,reflect:!0})],exports.SchmancyCheckboxElement.prototype,"value",2),v([n.property({type:Boolean})],exports.SchmancyCheckboxElement.prototype,"checked",1),v([n.property({type:Boolean})],exports.SchmancyCheckboxElement.prototype,"disabled",2),v([n.property({type:Boolean})],exports.SchmancyCheckboxElement.prototype,"required",2),v([n.property({type:String})],exports.SchmancyCheckboxElement.prototype,"name",2),v([n.property({type:String})],exports.SchmancyCheckboxElement.prototype,"id",2),v([n.property({type:String})],exports.SchmancyCheckboxElement.prototype,"label",2),v([n.property({type:String})],exports.SchmancyCheckboxElement.prototype,"size",2),exports.SchmancyCheckboxElement=v([n.customElement("schmancy-checkbox")],exports.SchmancyCheckboxElement);
|
|
40
|
-
//# sourceMappingURL=checkbox-
|
|
40
|
+
//# sourceMappingURL=checkbox-D0LwTB_L.cjs.map
|