@mhmo91/schmancy 0.5.44 → 0.5.46
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/content-drawer.md +90 -160
- package/dist/ai/content-drawer.md +90 -160
- package/dist/{animated-text-Dr32Ckh7.cjs → animated-text-2eNprXDV.cjs} +2 -2
- package/dist/{animated-text-Dr32Ckh7.cjs.map → animated-text-2eNprXDV.cjs.map} +1 -1
- package/dist/{animated-text-CPA937x-.js → animated-text-CCfSintu.js} +3 -3
- package/dist/{animated-text-CPA937x-.js.map → animated-text-CCfSintu.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-DAPQYHtN.cjs +12 -0
- package/dist/area.component-DAPQYHtN.cjs.map +1 -0
- package/dist/{area.component-CgAISzZ3.js → area.component-DUGxsL2-.js} +38 -38
- package/dist/area.component-DUGxsL2-.js.map +1 -0
- package/dist/area.js +1 -1
- package/dist/autocomplete-CbsmZ0p6.cjs +112 -0
- package/dist/autocomplete-CbsmZ0p6.cjs.map +1 -0
- package/dist/{autocomplete--0ZoSIp0.js → autocomplete-Dcw5go_X.js} +47 -46
- package/dist/autocomplete-Dcw5go_X.js.map +1 -0
- package/dist/autocomplete.cjs +1 -1
- package/dist/autocomplete.js +1 -1
- package/dist/{avatar-BixWcgH7.js → avatar-CcHlQTbR.js} +207 -191
- package/dist/avatar-CcHlQTbR.js.map +1 -0
- package/dist/{avatar-5cjrkZS5.cjs → avatar-D93Sjal-.cjs} +39 -52
- package/dist/avatar-D93Sjal-.cjs.map +1 -0
- package/dist/badge.cjs +1 -1
- package/dist/badge.js +1 -1
- package/dist/{boat-Bou0hRnM.js → boat-Ct95p20s.js} +3 -3
- package/dist/{boat-Bou0hRnM.js.map → boat-Ct95p20s.js.map} +1 -1
- package/dist/{boat-CkkEmZcE.cjs → boat-pwsR3UrD.cjs} +2 -2
- package/dist/{boat-CkkEmZcE.cjs.map → boat-pwsR3UrD.cjs.map} +1 -1
- package/dist/boat.cjs +1 -1
- package/dist/boat.js +1 -1
- package/dist/busy.cjs +1 -1
- package/dist/busy.js +1 -1
- package/dist/button.cjs +1 -1
- package/dist/button.js +1 -1
- package/dist/card.cjs +1 -1
- package/dist/card.js +1 -1
- package/dist/{checkbox-DODyS0zq.cjs → checkbox-BXpnd4MJ.cjs} +2 -2
- package/dist/{checkbox-DODyS0zq.cjs.map → checkbox-BXpnd4MJ.cjs.map} +1 -1
- package/dist/{checkbox-D8ZJSnVa.js → checkbox-DedHgVWe.js} +2 -2
- package/dist/{checkbox-D8ZJSnVa.js.map → checkbox-DedHgVWe.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-BZmBRwu-.cjs → code-preview-DC1nnjD6.cjs} +2 -2
- package/dist/{code-preview-BZmBRwu-.cjs.map → code-preview-DC1nnjD6.cjs.map} +1 -1
- package/dist/{code-preview-CTnFGeWr.js → code-preview-DmYqwM0J.js} +2 -2
- package/dist/{code-preview-CTnFGeWr.js.map → code-preview-DmYqwM0J.js.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-CoETNfZb.cjs → date-range-B1l0Wnyd.cjs} +2 -2
- package/dist/{date-range-CoETNfZb.cjs.map → date-range-B1l0Wnyd.cjs.map} +1 -1
- package/dist/{date-range-ClsaySUj.js → date-range-D5kBOyG0.js} +3 -3
- package/dist/{date-range-ClsaySUj.js.map → date-range-D5kBOyG0.js.map} +1 -1
- package/dist/{date-range-inline-DANhDNYe.cjs → date-range-inline-BbTCdiL0.cjs} +2 -2
- package/dist/{date-range-inline-DANhDNYe.cjs.map → date-range-inline-BbTCdiL0.cjs.map} +1 -1
- package/dist/{date-range-inline-DGlKBtNK.js → date-range-inline-Curj100b.js} +3 -3
- package/dist/{date-range-inline-DGlKBtNK.js.map → date-range-inline-Curj100b.js.map} +1 -1
- package/dist/date-range-inline.cjs +1 -1
- package/dist/date-range-inline.js +1 -1
- package/dist/date-range.cjs +1 -1
- package/dist/date-range.js +1 -1
- package/dist/{delay-BYgsZZlo.js → delay-B8D9ePlX.js} +2 -2
- package/dist/{delay-BYgsZZlo.js.map → delay-B8D9ePlX.js.map} +1 -1
- package/dist/{delay-C_eK0GWj.cjs → delay-BR6cMb_F.cjs} +2 -2
- package/dist/{delay-C_eK0GWj.cjs.map → delay-BR6cMb_F.cjs.map} +1 -1
- package/dist/delay.cjs +1 -1
- package/dist/delay.js +1 -1
- package/dist/{details-YOyqdGM4.js → details-CpuplvIM.js} +2 -2
- package/dist/{details-YOyqdGM4.js.map → details-CpuplvIM.js.map} +1 -1
- package/dist/{details-CRLG7_Rx.cjs → details-DCzexjYw.cjs} +2 -2
- package/dist/{details-CRLG7_Rx.cjs.map → details-DCzexjYw.cjs.map} +1 -1
- package/dist/details.cjs +1 -1
- package/dist/details.js +1 -1
- package/dist/{dialog-content-Bm8humI-.cjs → dialog-content-DUnSEoaA.cjs} +2 -2
- package/dist/{dialog-content-Bm8humI-.cjs.map → dialog-content-DUnSEoaA.cjs.map} +1 -1
- package/dist/{dialog-content-CXshnL4t.js → dialog-content-wcZn95Gx.js} +3 -3
- package/dist/{dialog-content-CXshnL4t.js.map → dialog-content-wcZn95Gx.js.map} +1 -1
- package/dist/dialog.cjs +1 -1
- package/dist/dialog.js +1 -1
- package/dist/{divider-BD7cCM-N.js → divider-C4d0QNQU.js} +3 -3
- package/dist/{divider-BD7cCM-N.js.map → divider-C4d0QNQU.js.map} +1 -1
- package/dist/{divider-W9uJ8C3q.cjs → divider-nVB0kEMZ.cjs} +2 -2
- package/dist/{divider-W9uJ8C3q.cjs.map → divider-nVB0kEMZ.cjs.map} +1 -1
- package/dist/divider.cjs +1 -1
- package/dist/divider.js +1 -1
- package/dist/{dropdown-content-DnWgB8CR.cjs → dropdown-content-CNc79RjI.cjs} +2 -2
- package/dist/{dropdown-content-DnWgB8CR.cjs.map → dropdown-content-CNc79RjI.cjs.map} +1 -1
- package/dist/{dropdown-content-C7b_9CMw.js → dropdown-content-D2GCSD5Z.js} +3 -3
- package/dist/{dropdown-content-C7b_9CMw.js.map → dropdown-content-D2GCSD5Z.js.map} +1 -1
- package/dist/dropdown.cjs +1 -1
- package/dist/dropdown.js +1 -1
- package/dist/{email-recipients-CyIXLoSh.js → email-recipients-C-5ER5TU.js} +5 -5
- package/dist/{email-recipients-CyIXLoSh.js.map → email-recipients-C-5ER5TU.js.map} +1 -1
- package/dist/{email-recipients-whsZqIpA.cjs → email-recipients-DRxGI7gT.cjs} +2 -2
- package/dist/{email-recipients-whsZqIpA.cjs.map → email-recipients-DRxGI7gT.cjs.map} +1 -1
- package/dist/extra.cjs +1 -1
- package/dist/extra.js +1 -1
- package/dist/{flex-DvZKaAtN.js → flex-BeghKdy8.js} +2 -2
- package/dist/{flex-DvZKaAtN.js.map → flex-BeghKdy8.js.map} +1 -1
- package/dist/{flex-C0O9O1yV.cjs → flex-C66W_bVN.cjs} +2 -2
- package/dist/{flex-C0O9O1yV.cjs.map → flex-C66W_bVN.cjs.map} +1 -1
- package/dist/{form-D4AZek8y.cjs → form-BLnfpLCB.cjs} +2 -2
- package/dist/{form-D4AZek8y.cjs.map → form-BLnfpLCB.cjs.map} +1 -1
- package/dist/{form-BsI5Sk-R.js → form-CzSXaOL2.js} +2 -2
- package/dist/{form-BsI5Sk-R.js.map → form-CzSXaOL2.js.map} +1 -1
- package/dist/form.cjs +1 -1
- package/dist/form.js +1 -1
- package/dist/{formField.mixin-DfxR1FzZ.cjs → formField.mixin-DdQvbwbp.cjs} +2 -2
- package/dist/{formField.mixin-DfxR1FzZ.cjs.map → formField.mixin-DdQvbwbp.cjs.map} +1 -1
- package/dist/{formField.mixin-C_a5Hccx.js → formField.mixin-SU-0UQ6O.js} +2 -2
- package/dist/{formField.mixin-C_a5Hccx.js.map → formField.mixin-SU-0UQ6O.js.map} +1 -1
- package/dist/{icon-J11blFZq.cjs → icon-B38Atn5F.cjs} +2 -2
- package/dist/{icon-J11blFZq.cjs.map → icon-B38Atn5F.cjs.map} +1 -1
- package/dist/{icon-5LbOG-V0.js → icon-BAE9GvxI.js} +2 -2
- package/dist/{icon-5LbOG-V0.js.map → icon-BAE9GvxI.js.map} +1 -1
- package/dist/{icon-button-DjfEYUdj.cjs → icon-button-D24NUFs7.cjs} +2 -2
- package/dist/{icon-button-DjfEYUdj.cjs.map → icon-button-D24NUFs7.cjs.map} +1 -1
- package/dist/{icon-button-Cwm3vcDO.js → icon-button-gNZEaDU2.js} +3 -3
- package/dist/{icon-button-Cwm3vcDO.js.map → icon-button-gNZEaDU2.js.map} +1 -1
- package/dist/icons.cjs +1 -1
- package/dist/icons.js +1 -1
- package/dist/index.cjs +1 -1
- package/dist/index.js +49 -49
- package/dist/{input-DbzpwrUh.cjs → input-B-87Y5m2.cjs} +2 -2
- package/dist/{input-DbzpwrUh.cjs.map → input-B-87Y5m2.cjs.map} +1 -1
- package/dist/{input-DO5pS6fE.js → input-Db0akZJI.js} +3 -3
- package/dist/{input-DO5pS6fE.js.map → input-Db0akZJI.js.map} +1 -1
- package/dist/{input-chip-CXZTmfwT.js → input-chip-DT7Zln32.js} +2 -2
- package/dist/{input-chip-CXZTmfwT.js.map → input-chip-DT7Zln32.js.map} +1 -1
- package/dist/{input-chip-CBJxQ2MI.cjs → input-chip-Y6Umqn68.cjs} +2 -2
- package/dist/{input-chip-CBJxQ2MI.cjs.map → input-chip-Y6Umqn68.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-C7wTsdkZ.cjs → list-Bx4nE-9X.cjs} +2 -2
- package/dist/{list-C7wTsdkZ.cjs.map → list-Bx4nE-9X.cjs.map} +1 -1
- package/dist/{list-Cbrv1Y7B.js → list-D5CL0Hmr.js} +2 -2
- package/dist/{list-Cbrv1Y7B.js.map → list-D5CL0Hmr.js.map} +1 -1
- package/dist/list.cjs +1 -1
- package/dist/list.js +1 -1
- package/dist/{litElement.mixin-DwXXrxwO.js → litElement.mixin-DLWHaMp5.js} +2 -2
- package/dist/{litElement.mixin-DwXXrxwO.js.map → litElement.mixin-DLWHaMp5.js.map} +1 -1
- package/dist/{litElement.mixin-Dlq4PNEh.cjs → litElement.mixin-vtpQghkf.cjs} +2 -2
- package/dist/{litElement.mixin-Dlq4PNEh.cjs.map → litElement.mixin-vtpQghkf.cjs.map} +1 -1
- package/dist/mailbox.cjs +1 -1
- package/dist/mailbox.js +1 -1
- package/dist/{map-6p1rwGq_.js → map-BgWSgSOf.js} +2 -2
- package/dist/{map-6p1rwGq_.js.map → map-BgWSgSOf.js.map} +1 -1
- package/dist/{map-B3Ond3EJ.cjs → map-ChhBWqG-.cjs} +2 -2
- package/dist/{map-B3Ond3EJ.cjs.map → map-ChhBWqG-.cjs.map} +1 -1
- package/dist/map.cjs +1 -1
- package/dist/map.js +1 -1
- package/dist/{media-8qL5J_9U.js → media-DnpRpbFQ.js} +2 -2
- package/dist/{media-8qL5J_9U.js.map → media-DnpRpbFQ.js.map} +1 -1
- package/dist/{media-urvTQuhG.cjs → media-hFrznC-7.cjs} +2 -2
- package/dist/{media-urvTQuhG.cjs.map → media-hFrznC-7.cjs.map} +1 -1
- package/dist/{menu-CAqcdA-t.cjs → menu-DkRVRYp4.cjs} +2 -2
- package/dist/{menu-CAqcdA-t.cjs.map → menu-DkRVRYp4.cjs.map} +1 -1
- package/dist/{menu-DqPjhh0F.js → menu-DqRauRjT.js} +3 -3
- package/dist/{menu-DqPjhh0F.js.map → menu-DqRauRjT.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-G9DFyu8b.cjs → navigation-rail-CBhirMNF.cjs} +3 -3
- package/dist/{navigation-rail-G9DFyu8b.cjs.map → navigation-rail-CBhirMNF.cjs.map} +1 -1
- package/dist/{navigation-rail-B1JZU-E_.js → navigation-rail-Ncy6rBEj.js} +4 -4
- package/dist/{navigation-rail-B1JZU-E_.js.map → navigation-rail-Ncy6rBEj.js.map} +1 -1
- package/dist/navigation-rail.cjs +1 -1
- package/dist/navigation-rail.js +1 -1
- package/dist/{notification-service-D2iAqL5y.cjs → notification-service-BcrHAzSN.cjs} +2 -2
- package/dist/{notification-service-D2iAqL5y.cjs.map → notification-service-BcrHAzSN.cjs.map} +1 -1
- package/dist/{notification-service-C2FCNL6K.js → notification-service-CRAcOFSD.js} +4 -4
- package/dist/{notification-service-C2FCNL6K.js.map → notification-service-CRAcOFSD.js.map} +1 -1
- package/dist/notification.cjs +1 -1
- package/dist/notification.js +2 -2
- package/dist/{notify-CGUpuJK_.cjs → notify-BZLGxTpL.cjs} +2 -2
- package/dist/{notify-CGUpuJK_.cjs.map → notify-BZLGxTpL.cjs.map} +1 -1
- package/dist/{notify-CXgvep0J.js → notify-zBmyDMjt.js} +2 -2
- package/dist/{notify-CXgvep0J.js.map → notify-zBmyDMjt.js.map} +1 -1
- package/dist/{option-CWqav-ae.js → option-BOs02M9F.js} +2 -2
- package/dist/{option-CWqav-ae.js.map → option-BOs02M9F.js.map} +1 -1
- package/dist/{option-D8qnpwBr.cjs → option-CJZFrYDI.cjs} +2 -2
- package/dist/{option-D8qnpwBr.cjs.map → option-CJZFrYDI.cjs.map} +1 -1
- package/dist/option.cjs +1 -1
- package/dist/option.js +1 -1
- package/dist/{payment-card-form-pQBAeXvc.cjs → payment-card-form-C3RKAyE-.cjs} +2 -2
- package/dist/{payment-card-form-pQBAeXvc.cjs.map → payment-card-form-C3RKAyE-.cjs.map} +1 -1
- package/dist/{payment-card-form-09YuBc3U.js → payment-card-form-S9DUk7kb.js} +3 -3
- package/dist/{payment-card-form-09YuBc3U.js.map → payment-card-form-S9DUk7kb.js.map} +1 -1
- package/dist/{progress-nWFc1Ixd.cjs → progress-C36hgIf5.cjs} +2 -2
- package/dist/{progress-nWFc1Ixd.cjs.map → progress-C36hgIf5.cjs.map} +1 -1
- package/dist/{progress-BLRwJ_un.js → progress-DtJc6jWJ.js} +2 -2
- package/dist/{progress-BLRwJ_un.js.map → progress-DtJc6jWJ.js.map} +1 -1
- package/dist/progress.cjs +1 -1
- package/dist/progress.js +1 -1
- package/dist/{radio-button-DIjkirPr.cjs → radio-button-BEoY5yRc.cjs} +2 -2
- package/dist/{radio-button-DIjkirPr.cjs.map → radio-button-BEoY5yRc.cjs.map} +1 -1
- package/dist/{radio-button-BC0Of2-G.js → radio-button-aKwgu1bt.js} +3 -3
- package/dist/{radio-button-BC0Of2-G.js.map → radio-button-aKwgu1bt.js.map} +1 -1
- package/dist/radio-group.cjs +1 -1
- package/dist/radio-group.js +1 -1
- package/dist/{schmancy-steps-container-Sf8RjF0N.js → schmancy-steps-container-D5sbskLl.js} +2 -2
- package/dist/{schmancy-steps-container-Sf8RjF0N.js.map → schmancy-steps-container-D5sbskLl.js.map} +1 -1
- package/dist/{schmancy-steps-container-B8B2ZnTB.cjs → schmancy-steps-container-DINAsJgP.cjs} +2 -2
- package/dist/{schmancy-steps-container-B8B2ZnTB.cjs.map → schmancy-steps-container-DINAsJgP.cjs.map} +1 -1
- package/dist/{select-C6QlML9m.js → select-Bq_CyEe1.js} +3 -3
- package/dist/{select-C6QlML9m.js.map → select-Bq_CyEe1.js.map} +1 -1
- package/dist/{select-CqlN3vWr.cjs → select-C0gf-GTX.cjs} +2 -2
- package/dist/{select-CqlN3vWr.cjs.map → select-C0gf-GTX.cjs.map} +1 -1
- package/dist/select.cjs +1 -1
- package/dist/select.js +1 -1
- package/dist/{sheet-Dxx7iH9V.js → sheet-PXddkPIR.js} +3 -3
- package/dist/{sheet-Dxx7iH9V.js.map → sheet-PXddkPIR.js.map} +1 -1
- package/dist/{sheet-D6yxukD7.cjs → sheet-vJ5lJw8A.cjs} +2 -2
- package/dist/{sheet-D6yxukD7.cjs.map → sheet-vJ5lJw8A.cjs.map} +1 -1
- package/dist/sheet.cjs +1 -1
- package/dist/sheet.js +1 -1
- package/dist/{slider-BIjiRBMB.js → slider-CSC7AOPU.js} +3 -3
- package/dist/{slider-BIjiRBMB.js.map → slider-CSC7AOPU.js.map} +1 -1
- package/dist/{slider-BGgXG44k.cjs → slider-In_OE4B9.cjs} +2 -2
- package/dist/{slider-BGgXG44k.cjs.map → slider-In_OE4B9.cjs.map} +1 -1
- package/dist/slider.cjs +1 -1
- package/dist/slider.js +1 -1
- package/dist/{spinner-D8IKqMrW.js → spinner-Db7i3EZh.js} +2 -2
- package/dist/{spinner-D8IKqMrW.js.map → spinner-Db7i3EZh.js.map} +1 -1
- package/dist/{spinner-CFx3p13n.cjs → spinner-DpIB845r.cjs} +2 -2
- package/dist/{spinner-CFx3p13n.cjs.map → spinner-DpIB845r.cjs.map} +1 -1
- package/dist/steps.cjs +1 -1
- package/dist/steps.js +1 -1
- package/dist/{suggestion-chip-DHpWcimf.js → suggestion-chip-CJygiEf_.js} +3 -3
- package/dist/{suggestion-chip-DHpWcimf.js.map → suggestion-chip-CJygiEf_.js.map} +1 -1
- package/dist/{suggestion-chip-KkPIwkYP.cjs → suggestion-chip-DgwbXrI1.cjs} +2 -2
- package/dist/{suggestion-chip-KkPIwkYP.cjs.map → suggestion-chip-DgwbXrI1.cjs.map} +1 -1
- package/dist/{surface-pMQpuZWM.cjs → surface-Do6Jvjgs.cjs} +2 -2
- package/dist/{surface-pMQpuZWM.cjs.map → surface-Do6Jvjgs.cjs.map} +1 -1
- package/dist/{surface-CkSAxbh2.js → surface-OK-98YMi.js} +2 -2
- package/dist/{surface-CkSAxbh2.js.map → surface-OK-98YMi.js.map} +1 -1
- package/dist/surface.cjs +1 -1
- package/dist/surface.js +1 -1
- package/dist/{table-CVHtS_w_.cjs → table-CJAjGdP2.cjs} +2 -2
- package/dist/{table-CVHtS_w_.cjs.map → table-CJAjGdP2.cjs.map} +1 -1
- package/dist/{table-BgQCOk5g.js → table-IX2oy6pR.js} +2 -2
- package/dist/{table-BgQCOk5g.js.map → table-IX2oy6pR.js.map} +1 -1
- package/dist/table.cjs +1 -1
- package/dist/table.js +1 -1
- package/dist/{tabs-compatibility-BCtEpyN5.js → tabs-compatibility-BcjBZAcx.js} +2 -2
- package/dist/{tabs-compatibility-BCtEpyN5.js.map → tabs-compatibility-BcjBZAcx.js.map} +1 -1
- package/dist/{tabs-compatibility-w2lmMs2h.cjs → tabs-compatibility-DRL9DJHu.cjs} +2 -2
- package/dist/{tabs-compatibility-w2lmMs2h.cjs.map → tabs-compatibility-DRL9DJHu.cjs.map} +1 -1
- package/dist/tabs.cjs +1 -1
- package/dist/tabs.js +1 -1
- package/dist/tailwind.mixin-CfBr6oca.cjs +2 -0
- package/dist/{tailwind.mixin-Bz_Bv8SX.cjs.map → tailwind.mixin-CfBr6oca.cjs.map} +1 -1
- package/dist/tailwind.mixin-Cx1vOdFr.js +64 -0
- package/dist/{tailwind.mixin-Be9DoonS.js.map → tailwind.mixin-Cx1vOdFr.js.map} +1 -1
- package/dist/teleport.cjs +1 -1
- package/dist/teleport.js +1 -1
- package/dist/{textarea-BRI0tufi.cjs → textarea-D6tLCvgH.cjs} +2 -2
- package/dist/{textarea-BRI0tufi.cjs.map → textarea-D6tLCvgH.cjs.map} +1 -1
- package/dist/{textarea-DBc8Uh7D.js → textarea-DOdMuK9D.js} +2 -2
- package/dist/{textarea-DBc8Uh7D.js.map → textarea-DOdMuK9D.js.map} +1 -1
- package/dist/textarea.cjs +1 -1
- package/dist/textarea.js +1 -1
- package/dist/{theme-button-DXCpzc5c.cjs → theme-button-BygpnNZP.cjs} +2 -2
- package/dist/{theme-button-DXCpzc5c.cjs.map → theme-button-BygpnNZP.cjs.map} +1 -1
- package/dist/{theme-button-DCYQYmF-.js → theme-button-Mtmrrq0s.js} +2 -2
- package/dist/{theme-button-DCYQYmF-.js.map → theme-button-Mtmrrq0s.js.map} +1 -1
- package/dist/theme-button.cjs +1 -1
- package/dist/theme-button.js +1 -1
- package/dist/{theme-controller-boat-HDnVrCW1.cjs → theme-controller-boat-6PcxsUUQ.cjs} +2 -2
- package/dist/{theme-controller-boat-HDnVrCW1.cjs.map → theme-controller-boat-6PcxsUUQ.cjs.map} +1 -1
- package/dist/{theme-controller-boat-C_6tVWSS.js → theme-controller-boat-CFWhF7oJ.js} +3 -3
- package/dist/{theme-controller-boat-C_6tVWSS.js.map → theme-controller-boat-CFWhF7oJ.js.map} +1 -1
- package/dist/theme.cjs +1 -1
- package/dist/theme.js +1 -1
- package/dist/{timezone-Atm5Dy-B.js → timezone-CZ3y_y_n.js} +3 -3
- package/dist/{timezone-Atm5Dy-B.js.map → timezone-CZ3y_y_n.js.map} +1 -1
- package/dist/{timezone-BQaIFLiV.cjs → timezone-GffBsJxM.cjs} +2 -2
- package/dist/{timezone-BQaIFLiV.cjs.map → timezone-GffBsJxM.cjs.map} +1 -1
- package/dist/{tooltip-C-PhMMvT.js → tooltip-BlwQ_fIF.js} +2 -2
- package/dist/{tooltip-C-PhMMvT.js.map → tooltip-BlwQ_fIF.js.map} +1 -1
- package/dist/{tooltip-SBsMu8ZQ.cjs → tooltip-PI0IE4wA.cjs} +2 -2
- package/dist/{tooltip-SBsMu8ZQ.cjs.map → tooltip-PI0IE4wA.cjs.map} +1 -1
- package/dist/tooltip.cjs +1 -1
- package/dist/tooltip.js +1 -1
- package/dist/{tree-BagJ6dD2.js → tree-Cum3Na-a.js} +2 -2
- package/dist/{tree-BagJ6dD2.js.map → tree-Cum3Na-a.js.map} +1 -1
- package/dist/{tree-j0lH3CZh.cjs → tree-Cxfl4yJv.cjs} +2 -2
- package/dist/{tree-j0lH3CZh.cjs.map → tree-Cxfl4yJv.cjs.map} +1 -1
- package/dist/tree.cjs +1 -1
- package/dist/tree.js +1 -1
- package/dist/{typewriter-BawsYtHa.cjs → typewriter-BaiAOEvZ.cjs} +2 -2
- package/dist/{typewriter-BawsYtHa.cjs.map → typewriter-BaiAOEvZ.cjs.map} +1 -1
- package/dist/{typewriter-BjiolWBJ.js → typewriter-DTcmDBnt.js} +4 -4
- package/dist/{typewriter-BjiolWBJ.js.map → typewriter-DTcmDBnt.js.map} +1 -1
- package/dist/typewriter.cjs +1 -1
- package/dist/typewriter.js +1 -1
- package/dist/{typography-CyDDUJ9J.js → typography-BLHV8e7O.js} +2 -2
- package/dist/{typography-CyDDUJ9J.js.map → typography-BLHV8e7O.js.map} +1 -1
- package/dist/{typography-Bk9jOEtx.cjs → typography-CtesPGRT.cjs} +2 -2
- package/dist/{typography-Bk9jOEtx.cjs.map → typography-CtesPGRT.cjs.map} +1 -1
- package/dist/typography.cjs +1 -1
- package/dist/typography.js +1 -1
- package/package.json +1 -1
- package/types/src/autocomplete/autocomplete.d.ts +1 -1
- package/types/src/content-drawer/drawer.d.ts +6 -0
- package/types/src/content-drawer/drawer.service.d.ts +28 -1
- package/types/src/content-drawer/main.d.ts +2 -2
- package/dist/area.component-C3uCk-c1.cjs +0 -12
- package/dist/area.component-C3uCk-c1.cjs.map +0 -1
- package/dist/area.component-CgAISzZ3.js.map +0 -1
- package/dist/autocomplete--0ZoSIp0.js.map +0 -1
- package/dist/autocomplete-CpCXamUl.cjs +0 -112
- package/dist/autocomplete-CpCXamUl.cjs.map +0 -1
- package/dist/avatar-5cjrkZS5.cjs.map +0 -1
- package/dist/avatar-BixWcgH7.js.map +0 -1
- package/dist/tailwind.mixin-Be9DoonS.js +0 -64
- package/dist/tailwind.mixin-Bz_Bv8SX.cjs +0 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"boat-CkkEmZcE.cjs","sources":["../src/boat/boat.ts"],"sourcesContent":["import { $LitElement } from '@mixins/index'\nimport { css, html } from 'lit'\nimport { customElement, property, state } from 'lit/decorators.js'\nimport { createRef, ref, Ref } from 'lit/directives/ref.js'\nimport { fromEvent, merge, race } from 'rxjs'\nimport { filter, finalize, map, switchMap, take, takeUntil, tap } from 'rxjs/operators'\n\ntype BoatState = 'hidden' | 'minimized' | 'expanded'\n\ninterface Position {\n\tx: number\n\ty: number\n}\n\ninterface SavedPosition {\n\tx: number\n\ty: number\n\tanchor: 'bottom-right' | 'bottom-left' | 'top-right' | 'top-left'\n}\n\n@customElement('schmancy-boat')\nexport default class SchmancyBoat extends $LitElement(css`\n\t:host {\n\t\tdisplay: contents;\n\t}\n`) {\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\tif (this.isAnimating || value === this.currentState) return\n\t\tthis.animateToState(value)\n\t}\n\n\t@property({ type: String }) id: string = 'default'\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.isLowered = value\n\t\tthis.requestUpdate()\n\t}\n\n\t// New properties for simplified API\n\t@property({ type: String }) icon?: string\n\t@property({ type: String }) label?: string\n\t@property() badge?: string | number\n\n\t// Element references\n\tprivate containerRef: Ref<HTMLDivElement> = createRef()\n\tprivate contentRef: Ref<HTMLElement> = createRef()\n\tprivate iconRef: Ref<HTMLElement> = createRef()\n\tprivate headerRef: 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:\n\t\t\t\t'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\t@state() private isDragging: boolean = false\n\t@state() private position: Position = { x: 16, y: 16 }\n\t@state() private anchor: 'bottom-right' | 'bottom-left' | 'top-right' | 'top-left' = 'bottom-right'\n\n\tconnectedCallback() {\n\t\tsuper.connectedCallback()\n\n\t\tif (typeof window !== 'undefined') {\n\t\t\tfromEvent(window, 'resize')\n\t\t\t\t.pipe(takeUntil(this.disconnecting))\n\t\t\t\t.subscribe(() => {\n\t\t\t\t\tif (this.currentState === 'expanded') {\n\t\t\t\t\t\tthis.updateExpandedWidth()\n\t\t\t\t\t}\n\t\t\t\t})\n\n\t\t\t// Keyboard shortcut - Escape key\n\t\t\tfromEvent<KeyboardEvent>(window, 'keydown')\n\t\t\t\t.pipe(\n\t\t\t\t\tfilter(e => e.key === 'Escape' && this.currentState !== 'hidden'),\n\t\t\t\t\ttap(e => e.preventDefault()),\n\t\t\t\t\ttakeUntil(this.disconnecting),\n\t\t\t\t)\n\t\t\t\t.subscribe(() => {\n\t\t\t\t\tif (this.currentState === 'expanded') {\n\t\t\t\t\t\tthis.toggleState() // Minimize on Esc if expanded\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis.close() // Hide on Esc if minimized\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t}\n\t}\n\n\tprivate initializePosition() {\n\t\tif (typeof window === 'undefined') return\n\n\t\tconst saved = localStorage.getItem(`schmancy-boat-${this.id}`)\n\n\t\tif (saved) {\n\t\t\ttry {\n\t\t\t\tconst parsed: SavedPosition = JSON.parse(saved)\n\t\t\t\tthis.position = { x: parsed.x, y: parsed.y }\n\t\t\t\tthis.anchor = parsed.anchor\n\t\t\t\tconsole.log('📍 Loaded position:', this.id, parsed)\n\t\t\t} catch (e) {\n\t\t\t\t// Use default position on parse error\n\t\t\t}\n\t\t}\n\t\t// If no saved position, use default from @state initialization\n\t}\n\n\tprivate async animateToState(targetState: BoatState) {\n\t\tif (this.isAnimating || targetState === this.currentState) return\n\n\t\tconst previousState = this.currentState\n\t\tthis.isAnimating = true\n\n\t\ttry {\n\t\t\tawait this.performTransition(previousState, targetState)\n\t\t\tthis.currentState = targetState\n\t\t\tthis.isContentVisible = targetState === 'expanded'\n\n\t\t\t// Dispatch event\n\t\t\tthis.dispatchEvent(\n\t\t\t\tnew CustomEvent('toggle', {\n\t\t\t\t\tdetail: targetState,\n\t\t\t\t\tbubbles: true,\n\t\t\t\t\tcomposed: true,\n\t\t\t\t}),\n\t\t\t)\n\t\t} catch (err) {\n\t\t\tconsole.warn('Animation error:', err)\n\t\t\tthis.currentState = targetState\n\t\t\tthis.isContentVisible = targetState === 'expanded'\n\t\t} finally {\n\t\t\tthis.isAnimating = false\n\t\t}\n\t}\n\n\t// Simplified animation transition\n\tprivate async performTransition(fromState: BoatState, toState: BoatState): Promise<void> {\n\t\tthis.currentAnimation?.cancel()\n\n\t\tconst container = this.containerRef.value\n\t\tif (!container) return\n\n\t\t// Update content visibility before expand\n\t\tif (toState === 'expanded') {\n\t\t\tthis.isContentVisible = true\n\t\t}\n\n\t\t// Create animations\n\t\tconst animations = this.createAnimations(fromState, toState)\n\n\t\t// Wait for main animation to complete\n\t\tif (animations.container) {\n\t\t\tthis.currentAnimation = animations.container\n\t\t\tawait animations.container.finished\n\n\t\t\t// Hide content after minimize\n\t\t\tif (toState !== 'expanded') {\n\t\t\t\tthis.isContentVisible = false\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// Expand animation without transform\n\t\t\tanimations.container = container.animate([fromStyles, toStyles], {\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[\n\t\t\t\t\t{ opacity: 1, transform: 'translateY(0)' },\n\t\t\t\t\t{ opacity: 0, transform: 'translateY(-8px)' },\n\t\t\t\t],\n\t\t\t\t{\n\t\t\t\t\tduration: 150,\n\t\t\t\t\teasing: config.easing.standard,\n\t\t\t\t\tfill: 'forwards',\n\t\t\t\t},\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[\n\t\t\t\t\t{ opacity: 0, transform: 'translateY(8px)' },\n\t\t\t\t\t{ opacity: 1, transform: 'translateY(0)' },\n\t\t\t\t],\n\t\t\t\t{\n\t\t\t\t\tduration: config.durations.content,\n\t\t\t\t\teasing: config.easing.standard,\n\t\t\t\t\tfill: 'forwards',\n\t\t\t\t},\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[\n\t\t\t\t\t\t{ transform: isExpanding ? 'rotate(0deg)' : 'rotate(180deg)' },\n\t\t\t\t\t\t{ transform: isExpanding ? 'rotate(180deg)' : 'rotate(0deg)' },\n\t\t\t\t\t],\n\t\t\t\t\t{\n\t\t\t\t\t\tduration: 250,\n\t\t\t\t\t\teasing: config.easing.emphasized,\n\t\t\t\t\t\tfill: 'forwards',\n\t\t\t\t\t},\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\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\topacity: '0',\n\t\t\t\tpointerEvents: 'none',\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\topacity: '1',\n\t\t\t\tpointerEvents: 'auto',\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\topacity: '1',\n\t\t\t\tpointerEvents: 'auto',\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\tfirstUpdated() {\n\t\tthis.initializePosition()\n\t\tthis.applyInitialStyles()\n\t\tthis.updateContainerPosition()\n\t\tthis.setupDragPipeline()\n\n\t\t// Check for deprecated header slot usage\n\t\tconst hasHeaderSlot = this.querySelector('[slot=\"header\"]')\n\t\tif (hasHeaderSlot && !this.icon && !this.label) {\n\t\t\tconsole.warn(\n\t\t\t\t'[schmancy-boat] Using slot=\"header\" is deprecated. ' +\n\t\t\t\t\t'Please use the icon, label, and badge properties instead. ' +\n\t\t\t\t\t'Example: <schmancy-boat icon=\"info\" label=\"Title\" badge=\"5\">',\n\t\t\t)\n\t\t}\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.animateToState(newState)\n\t}\n\n\t// Public method to close (hide) the boat\n\tclose() {\n\t\tthis.animateToState('hidden')\n\t}\n\n\tprivate closeAndAddToNav() {\n\t\trace(\n\t\t\tthis.discover<any>('schmancy-navigation-rail'),\n\t\t\tthis.discover<any>('schmancy-navigation-bar'),\n\t\t\tthis.discover<any>('schmancy-nav-drawer'),\n\t\t\tthis.discover<any>('app-navigation-rail'),\n\t\t\tthis.discover<any>('app-navigation-bar'),\n\t\t\tthis.discover<any>('app-nav-drawer'),\n\t\t)\n\t\t\t.pipe(\n\t\t\t\ttake(1),\n\t\t\t\ttap(navComponent => {\n\t\t\t\t\tif (navComponent && typeof navComponent.addBoatItem === 'function') {\n\t\t\t\t\t\t// Use properties first, fall back to slot parsing\n\t\t\t\t\t\tconst icon =\n\t\t\t\t\t\t\tthis.icon ||\n\t\t\t\t\t\t\t(() => {\n\t\t\t\t\t\t\t\tconst headerSlot = this.querySelector('[slot=\"header\"]')\n\t\t\t\t\t\t\t\tconst iconElement = headerSlot?.querySelector('schmancy-icon')\n\t\t\t\t\t\t\t\treturn iconElement?.textContent?.trim() || 'widgets'\n\t\t\t\t\t\t\t})()\n\n\t\t\t\t\t\tconst label =\n\t\t\t\t\t\t\tthis.label ||\n\t\t\t\t\t\t\t(() => {\n\t\t\t\t\t\t\t\tconst headerSlot = this.querySelector('[slot=\"header\"]')\n\t\t\t\t\t\t\t\tlet title = headerSlot?.textContent?.trim() || 'Boat'\n\t\t\t\t\t\t\t\tif (icon && title.includes(icon)) {\n\t\t\t\t\t\t\t\t\ttitle = title.replace(icon, '').trim()\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\treturn title || this.id\n\t\t\t\t\t\t\t})()\n\n\t\t\t\t\t\t// Add the boat to navigation\n\t\t\t\t\t\tconst navItem = navComponent.addBoatItem({\n\t\t\t\t\t\t\tid: `boat-${this.id}`,\n\t\t\t\t\t\t\ttitle: label,\n\t\t\t\t\t\t\ticon: icon,\n\t\t\t\t\t\t})\n\n\t\t\t\t\t\tif (navItem) {\n\t\t\t\t\t\t\t// Simple fade out then hide\n\t\t\t\t\t\t\tconst container = this.containerRef.value\n\t\t\t\t\t\t\tif (container) {\n\t\t\t\t\t\t\t\tcontainer\n\t\t\t\t\t\t\t\t\t.animate([{ opacity: 1 }, { opacity: 0 }], { duration: 150, easing: 'ease-out', fill: 'forwards' })\n\t\t\t\t\t\t\t\t\t.finished.then(() => {\n\t\t\t\t\t\t\t\t\t\tthis.currentState = 'hidden'\n\t\t\t\t\t\t\t\t\t\tthis.isContentVisible = false\n\t\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tthis.currentState = 'hidden'\n\t\t\t\t\t\t\t\tthis.isContentVisible = false\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t// Set up click listener to reopen - using RxJS pattern\n\t\t\t\t\t\t\tfromEvent(navItem, 'click')\n\t\t\t\t\t\t\t\t.pipe(\n\t\t\t\t\t\t\t\t\ttap(() => (this.state = 'expanded')),\n\t\t\t\t\t\t\t\t\ttakeUntil(this.disconnecting),\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t.subscribe()\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// No nav component found, just hide\n\t\t\t\t\t\tthis.close()\n\t\t\t\t\t}\n\t\t\t\t}),\n\t\t\t)\n\t\t\t.subscribe()\n\t}\n\n\tprivate calculateDragPosition(\n\t\tclientX: number,\n\t\tclientY: number,\n\t\toffsetX: number,\n\t\toffsetY: number,\n\t\tinitialRect: DOMRect,\n\t): Position {\n\t\tconst targetLeft = clientX - offsetX\n\t\tconst targetTop = clientY - offsetY\n\t\tconst vw = window.innerWidth\n\t\tconst vh = window.innerHeight\n\t\tconst clampedLeft = Math.max(0, Math.min(targetLeft, vw - initialRect.width))\n\t\tconst clampedTop = Math.max(0, Math.min(targetTop, vh - initialRect.height))\n\n\t\tconst newX = this.anchor.includes('right') ? vw - (clampedLeft + initialRect.width) : clampedLeft\n\n\t\tconst newY = this.anchor.includes('bottom') ? vh - (clampedTop + initialRect.height) : clampedTop\n\n\t\treturn { x: Math.max(0, newX), y: Math.max(0, newY) }\n\t}\n\n\tprivate savePosition() {\n\t\tif (typeof window === 'undefined') return\n\n\t\tconst toSave: SavedPosition = {\n\t\t\tx: this.position.x,\n\t\t\ty: this.position.y,\n\t\t\tanchor: this.anchor,\n\t\t}\n\t\tconst key = `schmancy-boat-${this.id}`\n\t\tlocalStorage.setItem(key, JSON.stringify(toSave))\n\t\tconsole.log('💾 Saved position:', key, toSave)\n\t}\n\n\tprivate setupDragPipeline() {\n\t\tif (typeof window === 'undefined') return\n\n\t\tconst header = this.headerRef.value\n\t\tconst container = this.containerRef.value\n\t\tif (!header || !container) return\n\n\t\tlet hasDragged = false\n\t\tconst DRAG_THRESHOLD = 5\n\n\t\t// Merge mouse and touch start events\n\t\tmerge(\n\t\t\tfromEvent<MouseEvent>(header, 'mousedown').pipe(\n\t\t\t\tfilter(e => e.button === 0),\n\t\t\t\ttap(e => {\n\t\t\t\t\te.preventDefault()\n\t\t\t\t\te.stopPropagation()\n\t\t\t\t}),\n\t\t\t\tmap(e => ({\n\t\t\t\t\tclientX: e.clientX,\n\t\t\t\t\tclientY: e.clientY,\n\t\t\t\t\ttype: 'mouse' as const,\n\t\t\t\t})),\n\t\t\t),\n\t\t\tfromEvent<TouchEvent>(header, 'touchstart').pipe(\n\t\t\t\tmap(e => ({\n\t\t\t\t\tclientX: e.touches[0].clientX,\n\t\t\t\t\tclientY: e.touches[0].clientY,\n\t\t\t\t\ttype: 'touch' as const,\n\t\t\t\t})),\n\t\t\t),\n\t\t)\n\t\t\t.pipe(\n\t\t\t\tmap(({ clientX, clientY, type }) => {\n\t\t\t\t\tconst rect = container.getBoundingClientRect()\n\t\t\t\t\thasDragged = false\n\t\t\t\t\treturn {\n\t\t\t\t\t\tstartX: clientX,\n\t\t\t\t\t\tstartY: clientY,\n\t\t\t\t\t\toffsetX: clientX - rect.left,\n\t\t\t\t\t\toffsetY: clientY - rect.top,\n\t\t\t\t\t\tinitialRect: rect,\n\t\t\t\t\t\ttype,\n\t\t\t\t\t}\n\t\t\t\t}),\n\t\t\t)\n\t\t\t.pipe(\n\t\t\t\tswitchMap(({ startX, startY, offsetX, offsetY, initialRect, type }) => {\n\t\t\t\t\tconst move$ =\n\t\t\t\t\t\ttype === 'mouse'\n\t\t\t\t\t\t\t? fromEvent<MouseEvent>(window, 'mousemove').pipe(map(e => ({ clientX: e.clientX, clientY: e.clientY })))\n\t\t\t\t\t\t\t: fromEvent<TouchEvent>(window, 'touchmove').pipe(\n\t\t\t\t\t\t\t\t\tmap(e => ({ clientX: e.touches[0].clientX, clientY: e.touches[0].clientY })),\n\t\t\t\t\t\t\t\t)\n\n\t\t\t\t\tconst end$ = type === 'mouse' ? fromEvent(window, 'mouseup') : fromEvent(window, 'touchend')\n\n\t\t\t\t\treturn move$.pipe(\n\t\t\t\t\t\tmap(({ clientX, clientY }) => {\n\t\t\t\t\t\t\tconst deltaX = clientX - startX\n\t\t\t\t\t\t\tconst deltaY = clientY - startY\n\t\t\t\t\t\t\tconst distance = Math.sqrt(deltaX * deltaX + deltaY * deltaY)\n\n\t\t\t\t\t\t\tif (distance > DRAG_THRESHOLD && !hasDragged) {\n\t\t\t\t\t\t\t\thasDragged = true\n\t\t\t\t\t\t\t\tthis.isDragging = true\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tif (!hasDragged) return null\n\n\t\t\t\t\t\t\treturn this.calculateDragPosition(clientX, clientY, offsetX, offsetY, initialRect)\n\t\t\t\t\t\t}),\n\t\t\t\t\t\tfilter(position => position !== null),\n\t\t\t\t\t\ttap(position => {\n\t\t\t\t\t\t\tif (position) {\n\t\t\t\t\t\t\t\tthis.position = position\n\t\t\t\t\t\t\t\tthis.updateContainerPosition()\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}),\n\t\t\t\t\t\ttakeUntil(end$),\n\t\t\t\t\t)\n\t\t\t\t}),\n\t\t\t\tfinalize(() => {\n\t\t\t\t\tif (hasDragged) {\n\t\t\t\t\t\tthis.updateAnchor()\n\t\t\t\t\t\tthis.savePosition()\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis.toggleState()\n\t\t\t\t\t}\n\t\t\t\t\tthis.isDragging = false\n\t\t\t\t\thasDragged = false\n\t\t\t\t}),\n\t\t\t\ttakeUntil(this.disconnecting),\n\t\t\t)\n\t\t\t.subscribe()\n\t}\n\n\t// Update container position based on anchor and position values\n\tprivate updateContainerPosition() {\n\t\tconst container = this.containerRef.value\n\t\tif (!container) return\n\n\t\t// Reset all position styles\n\t\tcontainer.style.removeProperty('left')\n\t\tcontainer.style.removeProperty('right')\n\t\tcontainer.style.removeProperty('top')\n\t\tcontainer.style.removeProperty('bottom')\n\n\t\t// Apply new position based on anchor\n\t\tif (this.anchor.includes('right')) {\n\t\t\tcontainer.style.right = `${this.position.x}px`\n\t\t} else {\n\t\t\tcontainer.style.left = `${this.position.x}px`\n\t\t}\n\n\t\tif (this.anchor.includes('bottom')) {\n\t\t\tcontainer.style.bottom = `${this.position.y}px`\n\t\t} else {\n\t\t\tcontainer.style.top = `${this.position.y}px`\n\t\t}\n\t}\n\n\t// Update anchor based on current position\n\tprivate updateAnchor() {\n\t\tif (typeof window === 'undefined') return\n\n\t\tconst container = this.containerRef.value\n\t\tif (!container) return\n\n\t\tconst rect = container.getBoundingClientRect()\n\t\tconst vw = window.innerWidth\n\t\tconst vh = window.innerHeight\n\n\t\tconst isRight = rect.left > vw / 2\n\t\tconst isBottom = rect.top > vh / 2\n\n\t\tconst newAnchor = `${isBottom ? 'bottom' : 'top'}-${isRight ? 'right' : 'left'}` as typeof this.anchor\n\n\t\tif (newAnchor !== this.anchor) {\n\t\t\t// Calculate new position values for the new anchor\n\t\t\tif (isRight) {\n\t\t\t\tthis.position.x = vw - rect.right\n\t\t\t} else {\n\t\t\t\tthis.position.x = rect.left\n\t\t\t}\n\n\t\t\tif (isBottom) {\n\t\t\t\tthis.position.y = vh - rect.bottom\n\t\t\t} else {\n\t\t\t\tthis.position.y = rect.top\n\t\t\t}\n\n\t\t\tthis.anchor = newAnchor\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}\n\n\tprotected render(): unknown {\n\t\tconst surfaceElevation = this.currentState === 'minimized' ? (this.isLowered ? '1' : '3') : '4'\n\t\tconst isMinimized = this.currentState === 'minimized'\n\n\t\t// Set transform origin based on anchor for proper expansion\n\t\tconst transformOrigin = this.anchor.includes('bottom')\n\t\t\t? this.anchor.includes('right')\n\t\t\t\t? 'bottom right'\n\t\t\t\t: 'bottom left'\n\t\t\t: this.anchor.includes('right')\n\t\t\t\t? 'top right'\n\t\t\t\t: 'top left'\n\n\t\tconst containerClasses = {\n\t\t\t'z-50': true,\n\t\t\tfixed: true,\n\t\t\t'overflow-y-auto': true,\n\t\t\tflex: true,\n\t\t\t'flex-col': true,\n\t\t\t'select-none': true,\n\t\t\t'will-change-transform': true,\n\t\t\t'[contain:layout_style]': true,\n\t\t\t'[transform:translate3d(0,0,0)]': true,\n\t\t\t'[backface-visibility:hidden]': true,\n\t\t\t'transition-shadow': true,\n\t\t\t'opacity-95': this.isDragging,\n\t\t\t'shadow-[0_24px_48px_-8px_rgba(0,0,0,0.2),0_12px_24px_-4px_rgba(0,0,0,0.12)]': this.isDragging,\n\t\t}\n\n\t\treturn html`\n\t\t\t<div\n\t\t\t\tclass=${this.classMap(containerClasses)}\n\t\t\t\tstyle=\"transform-origin: ${transformOrigin}\"\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\">\n\t\t\t\t\t<schmancy-surface\n\t\t\t\t\t\televation=\"${surfaceElevation}\"\n\t\t\t\t\t\trounded=\"${isMinimized ? 'none' : 'top'}\"\n\t\t\t\t\t\ttype=\"containerLowest\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\tclass=\"group sticky top-0 px-3 py-2 flex items-center justify-between gap-3 ${this.isDragging\n\t\t\t\t\t\t\t\t? 'cursor-grabbing'\n\t\t\t\t\t\t\t\t: 'cursor-move'}\"\n\t\t\t\t\t\t\t${ref(this.headerRef)}\n\t\t\t\t\t\t\ttitle=\"Drag to move, double-click to toggle\"\n\t\t\t\t\t\t\t@dblclick=${(e: Event) => {\n\t\t\t\t\t\t\t\te.preventDefault()\n\t\t\t\t\t\t\t\te.stopPropagation()\n\t\t\t\t\t\t\t\tthis.toggleState()\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<!-- Drag handle indicator -->\n\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\tclass=\"flex items-center text-surface-onVariant opacity-40 transition-opacity duration-200 group-hover:opacity-100\"\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<schmancy-icon style=\"font-size: 20px\">drag_indicator</schmancy-icon>\n\t\t\t\t\t\t\t</div>\n\n\t\t\t\t\t\t\t<!-- Header content - use properties if provided, else fallback to slot -->\n\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\tclass=\"flex-1 min-w-fit items-center flex justify-start ${isMinimized ? 'cursor-pointer' : ''}\"\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t@dblclick=${(e: Event) => {\n\t\t\t\t\t\t\t\t\tif (isMinimized) {\n\t\t\t\t\t\t\t\t\t\te.preventDefault()\n\t\t\t\t\t\t\t\t\t\te.stopPropagation()\n\t\t\t\t\t\t\t\t\t\tthis.state = 'expanded'\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\ttitle=\"${isMinimized ? 'Click to expand' : ''}\"\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t${this.icon || this.label\n\t\t\t\t\t\t\t\t\t? html`\n\t\t\t\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\t\t\tclass=\"flex gap-2 items-center\">\n\t\t\t\t\t\t\t\t\t\t\t\t${this.icon ? html`<schmancy-icon>${this.icon}</schmancy-icon>` : ''}\n\t\t\t\t\t\t\t\t\t\t\t\t${this.label\n\t\t\t\t\t\t\t\t\t\t\t\t\t? html`<schmancy-typography type=\"title\" token=\"md\">${this.label}</schmancy-typography>`\n\t\t\t\t\t\t\t\t\t\t\t\t\t: ''}\n\t\t\t\t\t\t\t\t\t\t\t\t${this.badge !== undefined && this.badge !== null && this.badge !== ''\n\t\t\t\t\t\t\t\t\t\t\t\t\t? html`<schmancy-badge>${this.badge}</schmancy-badge>`\n\t\t\t\t\t\t\t\t\t\t\t\t\t: ''}\n\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t`\n\t\t\t\t\t\t\t\t\t: html`<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${isMinimized\n\t\t\t\t\t\t\t\t\t? html`\n\t\t\t\t\t\t\t\t\t\t\t<!-- Expand button (when minimized) -->\n\t\t\t\t\t\t\t\t\t\t\t<schmancy-icon-button\n\t\t\t\t\t\t\t\t\t\t\t\tsize=\"sm\"\n\t\t\t\t\t\t\t\t\t\t\t\tvariant=\"text\"\n\t\t\t\t\t\t\t\t\t\t\t\t@click=${(e: Event) => {\n\t\t\t\t\t\t\t\t\t\t\t\t\te.stopPropagation()\n\t\t\t\t\t\t\t\t\t\t\t\t\tthis.state = 'expanded'\n\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t\ttitle=\"Expand\"\n\t\t\t\t\t\t\t\t\t\t\t\t${ref(this.iconRef)}\n\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\tfullscreen\n\t\t\t\t\t\t\t\t\t\t\t</schmancy-icon-button>\n\t\t\t\t\t\t\t\t\t\t`\n\t\t\t\t\t\t\t\t\t: html`\n\t\t\t\t\t\t\t\t\t\t\t<!-- Minimize button (when expanded) -->\n\t\t\t\t\t\t\t\t\t\t\t<schmancy-icon-button\n\t\t\t\t\t\t\t\t\t\t\t\tsize=\"sm\"\n\t\t\t\t\t\t\t\t\t\t\t\tvariant=\"filled tonal\"\n\t\t\t\t\t\t\t\t\t\t\t\t@click=${(e: Event) => {\n\t\t\t\t\t\t\t\t\t\t\t\t\te.stopPropagation()\n\t\t\t\t\t\t\t\t\t\t\t\t\tthis.state = 'minimized'\n\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t\ttitle=\"Minimize\"\n\t\t\t\t\t\t\t\t\t\t\t\t${ref(this.iconRef)}\n\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\tclose_fullscreen\n\t\t\t\t\t\t\t\t\t\t\t</schmancy-icon-button>\n\t\t\t\t\t\t\t\t\t\t`}\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\tsize=\"sm\"\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.closeAndAddToNav()\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\ttitle=\"Close and add to navigation\"\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\tremove\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 .hidden=${!this.isContentVisible} type=\"containerLow\" class=\"flex-1\" ${ref(this.contentRef)}>\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}\n"],"names":["SchmancyBoat","$LitElement","css","super","arguments","this","id","containerRef","createRef","contentRef","iconRef","headerRef","ANIMATION_CONFIG","durations","expand","minimize","hide","content","easing","emphasized","decelerate","accelerate","standard","shadows","fab","fabLowered","expanded","currentState","isContentVisible","isAnimating","isLowered","isDragging","position","x","y","anchor","state","value","animateToState","lowered","requestUpdate","connectedCallback","window","fromEvent","pipe","takeUntil","disconnecting","subscribe","updateExpandedWidth","filter","e","key","tap","preventDefault","toggleState","close","initializePosition","saved","localStorage","getItem","parsed","JSON","parse","targetState","previousState","performTransition","dispatchEvent","CustomEvent","detail","bubbles","composed","err","fromState","toState","currentAnimation","cancel","animations","createAnimations","container","finished","icon","config","fromStyles","getStyleForState","toStyles","animate","duration","fill","opacity","transform","isExpanding","baseStyles","maxWidth","maxHeight","borderRadius","hidden","pointerEvents","boxShadow","backdropFilter","minimized","width","getResponsiveWidth","vw","innerWidth","style","firstUpdated","applyInitialStyles","updateContainerPosition","setupDragPipeline","querySelector","label","initialStyle","Object","assign","webkitBackdropFilter","newState","closeAndAddToNav","race","discover","take","navComponent","addBoatItem","textContent","trim","title","includes","replace","navItem","then","clientX","clientY","offsetX","offsetY","initialRect","targetLeft","targetTop","vh","innerHeight","clampedLeft","Math","max","min","clampedTop","height","newX","newY","savePosition","toSave","setItem","stringify","header","hasDragged","merge","button","stopPropagation","map","type","touches","rect","getBoundingClientRect","startX","startY","left","top","switchMap","move$","end$","deltaX","deltaY","sqrt","calculateDragPosition","finalize","updateAnchor","removeProperty","right","bottom","isRight","isBottom","newAnchor","disconnectedCallback","render","surfaceElevation","isMinimized","transformOrigin","containerClasses","fixed","flex","html","classMap","ref","badge","__decorateClass","property","String","reflect","prototype","Boolean","customElement"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"boat-pwsR3UrD.cjs","sources":["../src/boat/boat.ts"],"sourcesContent":["import { $LitElement } from '@mixins/index'\nimport { css, html } from 'lit'\nimport { customElement, property, state } from 'lit/decorators.js'\nimport { createRef, ref, Ref } from 'lit/directives/ref.js'\nimport { fromEvent, merge, race } from 'rxjs'\nimport { filter, finalize, map, switchMap, take, takeUntil, tap } from 'rxjs/operators'\n\ntype BoatState = 'hidden' | 'minimized' | 'expanded'\n\ninterface Position {\n\tx: number\n\ty: number\n}\n\ninterface SavedPosition {\n\tx: number\n\ty: number\n\tanchor: 'bottom-right' | 'bottom-left' | 'top-right' | 'top-left'\n}\n\n@customElement('schmancy-boat')\nexport default class SchmancyBoat extends $LitElement(css`\n\t:host {\n\t\tdisplay: contents;\n\t}\n`) {\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\tif (this.isAnimating || value === this.currentState) return\n\t\tthis.animateToState(value)\n\t}\n\n\t@property({ type: String }) id: string = 'default'\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.isLowered = value\n\t\tthis.requestUpdate()\n\t}\n\n\t// New properties for simplified API\n\t@property({ type: String }) icon?: string\n\t@property({ type: String }) label?: string\n\t@property() badge?: string | number\n\n\t// Element references\n\tprivate containerRef: Ref<HTMLDivElement> = createRef()\n\tprivate contentRef: Ref<HTMLElement> = createRef()\n\tprivate iconRef: Ref<HTMLElement> = createRef()\n\tprivate headerRef: 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:\n\t\t\t\t'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\t@state() private isDragging: boolean = false\n\t@state() private position: Position = { x: 16, y: 16 }\n\t@state() private anchor: 'bottom-right' | 'bottom-left' | 'top-right' | 'top-left' = 'bottom-right'\n\n\tconnectedCallback() {\n\t\tsuper.connectedCallback()\n\n\t\tif (typeof window !== 'undefined') {\n\t\t\tfromEvent(window, 'resize')\n\t\t\t\t.pipe(takeUntil(this.disconnecting))\n\t\t\t\t.subscribe(() => {\n\t\t\t\t\tif (this.currentState === 'expanded') {\n\t\t\t\t\t\tthis.updateExpandedWidth()\n\t\t\t\t\t}\n\t\t\t\t})\n\n\t\t\t// Keyboard shortcut - Escape key\n\t\t\tfromEvent<KeyboardEvent>(window, 'keydown')\n\t\t\t\t.pipe(\n\t\t\t\t\tfilter(e => e.key === 'Escape' && this.currentState !== 'hidden'),\n\t\t\t\t\ttap(e => e.preventDefault()),\n\t\t\t\t\ttakeUntil(this.disconnecting),\n\t\t\t\t)\n\t\t\t\t.subscribe(() => {\n\t\t\t\t\tif (this.currentState === 'expanded') {\n\t\t\t\t\t\tthis.toggleState() // Minimize on Esc if expanded\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis.close() // Hide on Esc if minimized\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t}\n\t}\n\n\tprivate initializePosition() {\n\t\tif (typeof window === 'undefined') return\n\n\t\tconst saved = localStorage.getItem(`schmancy-boat-${this.id}`)\n\n\t\tif (saved) {\n\t\t\ttry {\n\t\t\t\tconst parsed: SavedPosition = JSON.parse(saved)\n\t\t\t\tthis.position = { x: parsed.x, y: parsed.y }\n\t\t\t\tthis.anchor = parsed.anchor\n\t\t\t\tconsole.log('📍 Loaded position:', this.id, parsed)\n\t\t\t} catch (e) {\n\t\t\t\t// Use default position on parse error\n\t\t\t}\n\t\t}\n\t\t// If no saved position, use default from @state initialization\n\t}\n\n\tprivate async animateToState(targetState: BoatState) {\n\t\tif (this.isAnimating || targetState === this.currentState) return\n\n\t\tconst previousState = this.currentState\n\t\tthis.isAnimating = true\n\n\t\ttry {\n\t\t\tawait this.performTransition(previousState, targetState)\n\t\t\tthis.currentState = targetState\n\t\t\tthis.isContentVisible = targetState === 'expanded'\n\n\t\t\t// Dispatch event\n\t\t\tthis.dispatchEvent(\n\t\t\t\tnew CustomEvent('toggle', {\n\t\t\t\t\tdetail: targetState,\n\t\t\t\t\tbubbles: true,\n\t\t\t\t\tcomposed: true,\n\t\t\t\t}),\n\t\t\t)\n\t\t} catch (err) {\n\t\t\tconsole.warn('Animation error:', err)\n\t\t\tthis.currentState = targetState\n\t\t\tthis.isContentVisible = targetState === 'expanded'\n\t\t} finally {\n\t\t\tthis.isAnimating = false\n\t\t}\n\t}\n\n\t// Simplified animation transition\n\tprivate async performTransition(fromState: BoatState, toState: BoatState): Promise<void> {\n\t\tthis.currentAnimation?.cancel()\n\n\t\tconst container = this.containerRef.value\n\t\tif (!container) return\n\n\t\t// Update content visibility before expand\n\t\tif (toState === 'expanded') {\n\t\t\tthis.isContentVisible = true\n\t\t}\n\n\t\t// Create animations\n\t\tconst animations = this.createAnimations(fromState, toState)\n\n\t\t// Wait for main animation to complete\n\t\tif (animations.container) {\n\t\t\tthis.currentAnimation = animations.container\n\t\t\tawait animations.container.finished\n\n\t\t\t// Hide content after minimize\n\t\t\tif (toState !== 'expanded') {\n\t\t\t\tthis.isContentVisible = false\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// Expand animation without transform\n\t\t\tanimations.container = container.animate([fromStyles, toStyles], {\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[\n\t\t\t\t\t{ opacity: 1, transform: 'translateY(0)' },\n\t\t\t\t\t{ opacity: 0, transform: 'translateY(-8px)' },\n\t\t\t\t],\n\t\t\t\t{\n\t\t\t\t\tduration: 150,\n\t\t\t\t\teasing: config.easing.standard,\n\t\t\t\t\tfill: 'forwards',\n\t\t\t\t},\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[\n\t\t\t\t\t{ opacity: 0, transform: 'translateY(8px)' },\n\t\t\t\t\t{ opacity: 1, transform: 'translateY(0)' },\n\t\t\t\t],\n\t\t\t\t{\n\t\t\t\t\tduration: config.durations.content,\n\t\t\t\t\teasing: config.easing.standard,\n\t\t\t\t\tfill: 'forwards',\n\t\t\t\t},\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[\n\t\t\t\t\t\t{ transform: isExpanding ? 'rotate(0deg)' : 'rotate(180deg)' },\n\t\t\t\t\t\t{ transform: isExpanding ? 'rotate(180deg)' : 'rotate(0deg)' },\n\t\t\t\t\t],\n\t\t\t\t\t{\n\t\t\t\t\t\tduration: 250,\n\t\t\t\t\t\teasing: config.easing.emphasized,\n\t\t\t\t\t\tfill: 'forwards',\n\t\t\t\t\t},\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\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\topacity: '0',\n\t\t\t\tpointerEvents: 'none',\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\topacity: '1',\n\t\t\t\tpointerEvents: 'auto',\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\topacity: '1',\n\t\t\t\tpointerEvents: 'auto',\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\tfirstUpdated() {\n\t\tthis.initializePosition()\n\t\tthis.applyInitialStyles()\n\t\tthis.updateContainerPosition()\n\t\tthis.setupDragPipeline()\n\n\t\t// Check for deprecated header slot usage\n\t\tconst hasHeaderSlot = this.querySelector('[slot=\"header\"]')\n\t\tif (hasHeaderSlot && !this.icon && !this.label) {\n\t\t\tconsole.warn(\n\t\t\t\t'[schmancy-boat] Using slot=\"header\" is deprecated. ' +\n\t\t\t\t\t'Please use the icon, label, and badge properties instead. ' +\n\t\t\t\t\t'Example: <schmancy-boat icon=\"info\" label=\"Title\" badge=\"5\">',\n\t\t\t)\n\t\t}\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.animateToState(newState)\n\t}\n\n\t// Public method to close (hide) the boat\n\tclose() {\n\t\tthis.animateToState('hidden')\n\t}\n\n\tprivate closeAndAddToNav() {\n\t\trace(\n\t\t\tthis.discover<any>('schmancy-navigation-rail'),\n\t\t\tthis.discover<any>('schmancy-navigation-bar'),\n\t\t\tthis.discover<any>('schmancy-nav-drawer'),\n\t\t\tthis.discover<any>('app-navigation-rail'),\n\t\t\tthis.discover<any>('app-navigation-bar'),\n\t\t\tthis.discover<any>('app-nav-drawer'),\n\t\t)\n\t\t\t.pipe(\n\t\t\t\ttake(1),\n\t\t\t\ttap(navComponent => {\n\t\t\t\t\tif (navComponent && typeof navComponent.addBoatItem === 'function') {\n\t\t\t\t\t\t// Use properties first, fall back to slot parsing\n\t\t\t\t\t\tconst icon =\n\t\t\t\t\t\t\tthis.icon ||\n\t\t\t\t\t\t\t(() => {\n\t\t\t\t\t\t\t\tconst headerSlot = this.querySelector('[slot=\"header\"]')\n\t\t\t\t\t\t\t\tconst iconElement = headerSlot?.querySelector('schmancy-icon')\n\t\t\t\t\t\t\t\treturn iconElement?.textContent?.trim() || 'widgets'\n\t\t\t\t\t\t\t})()\n\n\t\t\t\t\t\tconst label =\n\t\t\t\t\t\t\tthis.label ||\n\t\t\t\t\t\t\t(() => {\n\t\t\t\t\t\t\t\tconst headerSlot = this.querySelector('[slot=\"header\"]')\n\t\t\t\t\t\t\t\tlet title = headerSlot?.textContent?.trim() || 'Boat'\n\t\t\t\t\t\t\t\tif (icon && title.includes(icon)) {\n\t\t\t\t\t\t\t\t\ttitle = title.replace(icon, '').trim()\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\treturn title || this.id\n\t\t\t\t\t\t\t})()\n\n\t\t\t\t\t\t// Add the boat to navigation\n\t\t\t\t\t\tconst navItem = navComponent.addBoatItem({\n\t\t\t\t\t\t\tid: `boat-${this.id}`,\n\t\t\t\t\t\t\ttitle: label,\n\t\t\t\t\t\t\ticon: icon,\n\t\t\t\t\t\t})\n\n\t\t\t\t\t\tif (navItem) {\n\t\t\t\t\t\t\t// Simple fade out then hide\n\t\t\t\t\t\t\tconst container = this.containerRef.value\n\t\t\t\t\t\t\tif (container) {\n\t\t\t\t\t\t\t\tcontainer\n\t\t\t\t\t\t\t\t\t.animate([{ opacity: 1 }, { opacity: 0 }], { duration: 150, easing: 'ease-out', fill: 'forwards' })\n\t\t\t\t\t\t\t\t\t.finished.then(() => {\n\t\t\t\t\t\t\t\t\t\tthis.currentState = 'hidden'\n\t\t\t\t\t\t\t\t\t\tthis.isContentVisible = false\n\t\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tthis.currentState = 'hidden'\n\t\t\t\t\t\t\t\tthis.isContentVisible = false\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t// Set up click listener to reopen - using RxJS pattern\n\t\t\t\t\t\t\tfromEvent(navItem, 'click')\n\t\t\t\t\t\t\t\t.pipe(\n\t\t\t\t\t\t\t\t\ttap(() => (this.state = 'expanded')),\n\t\t\t\t\t\t\t\t\ttakeUntil(this.disconnecting),\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t.subscribe()\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// No nav component found, just hide\n\t\t\t\t\t\tthis.close()\n\t\t\t\t\t}\n\t\t\t\t}),\n\t\t\t)\n\t\t\t.subscribe()\n\t}\n\n\tprivate calculateDragPosition(\n\t\tclientX: number,\n\t\tclientY: number,\n\t\toffsetX: number,\n\t\toffsetY: number,\n\t\tinitialRect: DOMRect,\n\t): Position {\n\t\tconst targetLeft = clientX - offsetX\n\t\tconst targetTop = clientY - offsetY\n\t\tconst vw = window.innerWidth\n\t\tconst vh = window.innerHeight\n\t\tconst clampedLeft = Math.max(0, Math.min(targetLeft, vw - initialRect.width))\n\t\tconst clampedTop = Math.max(0, Math.min(targetTop, vh - initialRect.height))\n\n\t\tconst newX = this.anchor.includes('right') ? vw - (clampedLeft + initialRect.width) : clampedLeft\n\n\t\tconst newY = this.anchor.includes('bottom') ? vh - (clampedTop + initialRect.height) : clampedTop\n\n\t\treturn { x: Math.max(0, newX), y: Math.max(0, newY) }\n\t}\n\n\tprivate savePosition() {\n\t\tif (typeof window === 'undefined') return\n\n\t\tconst toSave: SavedPosition = {\n\t\t\tx: this.position.x,\n\t\t\ty: this.position.y,\n\t\t\tanchor: this.anchor,\n\t\t}\n\t\tconst key = `schmancy-boat-${this.id}`\n\t\tlocalStorage.setItem(key, JSON.stringify(toSave))\n\t\tconsole.log('💾 Saved position:', key, toSave)\n\t}\n\n\tprivate setupDragPipeline() {\n\t\tif (typeof window === 'undefined') return\n\n\t\tconst header = this.headerRef.value\n\t\tconst container = this.containerRef.value\n\t\tif (!header || !container) return\n\n\t\tlet hasDragged = false\n\t\tconst DRAG_THRESHOLD = 5\n\n\t\t// Merge mouse and touch start events\n\t\tmerge(\n\t\t\tfromEvent<MouseEvent>(header, 'mousedown').pipe(\n\t\t\t\tfilter(e => e.button === 0),\n\t\t\t\ttap(e => {\n\t\t\t\t\te.preventDefault()\n\t\t\t\t\te.stopPropagation()\n\t\t\t\t}),\n\t\t\t\tmap(e => ({\n\t\t\t\t\tclientX: e.clientX,\n\t\t\t\t\tclientY: e.clientY,\n\t\t\t\t\ttype: 'mouse' as const,\n\t\t\t\t})),\n\t\t\t),\n\t\t\tfromEvent<TouchEvent>(header, 'touchstart').pipe(\n\t\t\t\tmap(e => ({\n\t\t\t\t\tclientX: e.touches[0].clientX,\n\t\t\t\t\tclientY: e.touches[0].clientY,\n\t\t\t\t\ttype: 'touch' as const,\n\t\t\t\t})),\n\t\t\t),\n\t\t)\n\t\t\t.pipe(\n\t\t\t\tmap(({ clientX, clientY, type }) => {\n\t\t\t\t\tconst rect = container.getBoundingClientRect()\n\t\t\t\t\thasDragged = false\n\t\t\t\t\treturn {\n\t\t\t\t\t\tstartX: clientX,\n\t\t\t\t\t\tstartY: clientY,\n\t\t\t\t\t\toffsetX: clientX - rect.left,\n\t\t\t\t\t\toffsetY: clientY - rect.top,\n\t\t\t\t\t\tinitialRect: rect,\n\t\t\t\t\t\ttype,\n\t\t\t\t\t}\n\t\t\t\t}),\n\t\t\t)\n\t\t\t.pipe(\n\t\t\t\tswitchMap(({ startX, startY, offsetX, offsetY, initialRect, type }) => {\n\t\t\t\t\tconst move$ =\n\t\t\t\t\t\ttype === 'mouse'\n\t\t\t\t\t\t\t? fromEvent<MouseEvent>(window, 'mousemove').pipe(map(e => ({ clientX: e.clientX, clientY: e.clientY })))\n\t\t\t\t\t\t\t: fromEvent<TouchEvent>(window, 'touchmove').pipe(\n\t\t\t\t\t\t\t\t\tmap(e => ({ clientX: e.touches[0].clientX, clientY: e.touches[0].clientY })),\n\t\t\t\t\t\t\t\t)\n\n\t\t\t\t\tconst end$ = type === 'mouse' ? fromEvent(window, 'mouseup') : fromEvent(window, 'touchend')\n\n\t\t\t\t\treturn move$.pipe(\n\t\t\t\t\t\tmap(({ clientX, clientY }) => {\n\t\t\t\t\t\t\tconst deltaX = clientX - startX\n\t\t\t\t\t\t\tconst deltaY = clientY - startY\n\t\t\t\t\t\t\tconst distance = Math.sqrt(deltaX * deltaX + deltaY * deltaY)\n\n\t\t\t\t\t\t\tif (distance > DRAG_THRESHOLD && !hasDragged) {\n\t\t\t\t\t\t\t\thasDragged = true\n\t\t\t\t\t\t\t\tthis.isDragging = true\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tif (!hasDragged) return null\n\n\t\t\t\t\t\t\treturn this.calculateDragPosition(clientX, clientY, offsetX, offsetY, initialRect)\n\t\t\t\t\t\t}),\n\t\t\t\t\t\tfilter(position => position !== null),\n\t\t\t\t\t\ttap(position => {\n\t\t\t\t\t\t\tif (position) {\n\t\t\t\t\t\t\t\tthis.position = position\n\t\t\t\t\t\t\t\tthis.updateContainerPosition()\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}),\n\t\t\t\t\t\ttakeUntil(end$),\n\t\t\t\t\t)\n\t\t\t\t}),\n\t\t\t\tfinalize(() => {\n\t\t\t\t\tif (hasDragged) {\n\t\t\t\t\t\tthis.updateAnchor()\n\t\t\t\t\t\tthis.savePosition()\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis.toggleState()\n\t\t\t\t\t}\n\t\t\t\t\tthis.isDragging = false\n\t\t\t\t\thasDragged = false\n\t\t\t\t}),\n\t\t\t\ttakeUntil(this.disconnecting),\n\t\t\t)\n\t\t\t.subscribe()\n\t}\n\n\t// Update container position based on anchor and position values\n\tprivate updateContainerPosition() {\n\t\tconst container = this.containerRef.value\n\t\tif (!container) return\n\n\t\t// Reset all position styles\n\t\tcontainer.style.removeProperty('left')\n\t\tcontainer.style.removeProperty('right')\n\t\tcontainer.style.removeProperty('top')\n\t\tcontainer.style.removeProperty('bottom')\n\n\t\t// Apply new position based on anchor\n\t\tif (this.anchor.includes('right')) {\n\t\t\tcontainer.style.right = `${this.position.x}px`\n\t\t} else {\n\t\t\tcontainer.style.left = `${this.position.x}px`\n\t\t}\n\n\t\tif (this.anchor.includes('bottom')) {\n\t\t\tcontainer.style.bottom = `${this.position.y}px`\n\t\t} else {\n\t\t\tcontainer.style.top = `${this.position.y}px`\n\t\t}\n\t}\n\n\t// Update anchor based on current position\n\tprivate updateAnchor() {\n\t\tif (typeof window === 'undefined') return\n\n\t\tconst container = this.containerRef.value\n\t\tif (!container) return\n\n\t\tconst rect = container.getBoundingClientRect()\n\t\tconst vw = window.innerWidth\n\t\tconst vh = window.innerHeight\n\n\t\tconst isRight = rect.left > vw / 2\n\t\tconst isBottom = rect.top > vh / 2\n\n\t\tconst newAnchor = `${isBottom ? 'bottom' : 'top'}-${isRight ? 'right' : 'left'}` as typeof this.anchor\n\n\t\tif (newAnchor !== this.anchor) {\n\t\t\t// Calculate new position values for the new anchor\n\t\t\tif (isRight) {\n\t\t\t\tthis.position.x = vw - rect.right\n\t\t\t} else {\n\t\t\t\tthis.position.x = rect.left\n\t\t\t}\n\n\t\t\tif (isBottom) {\n\t\t\t\tthis.position.y = vh - rect.bottom\n\t\t\t} else {\n\t\t\t\tthis.position.y = rect.top\n\t\t\t}\n\n\t\t\tthis.anchor = newAnchor\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}\n\n\tprotected render(): unknown {\n\t\tconst surfaceElevation = this.currentState === 'minimized' ? (this.isLowered ? '1' : '3') : '4'\n\t\tconst isMinimized = this.currentState === 'minimized'\n\n\t\t// Set transform origin based on anchor for proper expansion\n\t\tconst transformOrigin = this.anchor.includes('bottom')\n\t\t\t? this.anchor.includes('right')\n\t\t\t\t? 'bottom right'\n\t\t\t\t: 'bottom left'\n\t\t\t: this.anchor.includes('right')\n\t\t\t\t? 'top right'\n\t\t\t\t: 'top left'\n\n\t\tconst containerClasses = {\n\t\t\t'z-50': true,\n\t\t\tfixed: true,\n\t\t\t'overflow-y-auto': true,\n\t\t\tflex: true,\n\t\t\t'flex-col': true,\n\t\t\t'select-none': true,\n\t\t\t'will-change-transform': true,\n\t\t\t'[contain:layout_style]': true,\n\t\t\t'[transform:translate3d(0,0,0)]': true,\n\t\t\t'[backface-visibility:hidden]': true,\n\t\t\t'transition-shadow': true,\n\t\t\t'opacity-95': this.isDragging,\n\t\t\t'shadow-[0_24px_48px_-8px_rgba(0,0,0,0.2),0_12px_24px_-4px_rgba(0,0,0,0.12)]': this.isDragging,\n\t\t}\n\n\t\treturn html`\n\t\t\t<div\n\t\t\t\tclass=${this.classMap(containerClasses)}\n\t\t\t\tstyle=\"transform-origin: ${transformOrigin}\"\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\">\n\t\t\t\t\t<schmancy-surface\n\t\t\t\t\t\televation=\"${surfaceElevation}\"\n\t\t\t\t\t\trounded=\"${isMinimized ? 'none' : 'top'}\"\n\t\t\t\t\t\ttype=\"containerLowest\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\tclass=\"group sticky top-0 px-3 py-2 flex items-center justify-between gap-3 ${this.isDragging\n\t\t\t\t\t\t\t\t? 'cursor-grabbing'\n\t\t\t\t\t\t\t\t: 'cursor-move'}\"\n\t\t\t\t\t\t\t${ref(this.headerRef)}\n\t\t\t\t\t\t\ttitle=\"Drag to move, double-click to toggle\"\n\t\t\t\t\t\t\t@dblclick=${(e: Event) => {\n\t\t\t\t\t\t\t\te.preventDefault()\n\t\t\t\t\t\t\t\te.stopPropagation()\n\t\t\t\t\t\t\t\tthis.toggleState()\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<!-- Drag handle indicator -->\n\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\tclass=\"flex items-center text-surface-onVariant opacity-40 transition-opacity duration-200 group-hover:opacity-100\"\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<schmancy-icon style=\"font-size: 20px\">drag_indicator</schmancy-icon>\n\t\t\t\t\t\t\t</div>\n\n\t\t\t\t\t\t\t<!-- Header content - use properties if provided, else fallback to slot -->\n\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\tclass=\"flex-1 min-w-fit items-center flex justify-start ${isMinimized ? 'cursor-pointer' : ''}\"\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t@dblclick=${(e: Event) => {\n\t\t\t\t\t\t\t\t\tif (isMinimized) {\n\t\t\t\t\t\t\t\t\t\te.preventDefault()\n\t\t\t\t\t\t\t\t\t\te.stopPropagation()\n\t\t\t\t\t\t\t\t\t\tthis.state = 'expanded'\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\ttitle=\"${isMinimized ? 'Click to expand' : ''}\"\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t${this.icon || this.label\n\t\t\t\t\t\t\t\t\t? html`\n\t\t\t\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\t\t\tclass=\"flex gap-2 items-center\">\n\t\t\t\t\t\t\t\t\t\t\t\t${this.icon ? html`<schmancy-icon>${this.icon}</schmancy-icon>` : ''}\n\t\t\t\t\t\t\t\t\t\t\t\t${this.label\n\t\t\t\t\t\t\t\t\t\t\t\t\t? html`<schmancy-typography type=\"title\" token=\"md\">${this.label}</schmancy-typography>`\n\t\t\t\t\t\t\t\t\t\t\t\t\t: ''}\n\t\t\t\t\t\t\t\t\t\t\t\t${this.badge !== undefined && this.badge !== null && this.badge !== ''\n\t\t\t\t\t\t\t\t\t\t\t\t\t? html`<schmancy-badge>${this.badge}</schmancy-badge>`\n\t\t\t\t\t\t\t\t\t\t\t\t\t: ''}\n\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t`\n\t\t\t\t\t\t\t\t\t: html`<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${isMinimized\n\t\t\t\t\t\t\t\t\t? html`\n\t\t\t\t\t\t\t\t\t\t\t<!-- Expand button (when minimized) -->\n\t\t\t\t\t\t\t\t\t\t\t<schmancy-icon-button\n\t\t\t\t\t\t\t\t\t\t\t\tsize=\"sm\"\n\t\t\t\t\t\t\t\t\t\t\t\tvariant=\"text\"\n\t\t\t\t\t\t\t\t\t\t\t\t@click=${(e: Event) => {\n\t\t\t\t\t\t\t\t\t\t\t\t\te.stopPropagation()\n\t\t\t\t\t\t\t\t\t\t\t\t\tthis.state = 'expanded'\n\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t\ttitle=\"Expand\"\n\t\t\t\t\t\t\t\t\t\t\t\t${ref(this.iconRef)}\n\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\tfullscreen\n\t\t\t\t\t\t\t\t\t\t\t</schmancy-icon-button>\n\t\t\t\t\t\t\t\t\t\t`\n\t\t\t\t\t\t\t\t\t: html`\n\t\t\t\t\t\t\t\t\t\t\t<!-- Minimize button (when expanded) -->\n\t\t\t\t\t\t\t\t\t\t\t<schmancy-icon-button\n\t\t\t\t\t\t\t\t\t\t\t\tsize=\"sm\"\n\t\t\t\t\t\t\t\t\t\t\t\tvariant=\"filled tonal\"\n\t\t\t\t\t\t\t\t\t\t\t\t@click=${(e: Event) => {\n\t\t\t\t\t\t\t\t\t\t\t\t\te.stopPropagation()\n\t\t\t\t\t\t\t\t\t\t\t\t\tthis.state = 'minimized'\n\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t\ttitle=\"Minimize\"\n\t\t\t\t\t\t\t\t\t\t\t\t${ref(this.iconRef)}\n\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\tclose_fullscreen\n\t\t\t\t\t\t\t\t\t\t\t</schmancy-icon-button>\n\t\t\t\t\t\t\t\t\t\t`}\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\tsize=\"sm\"\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.closeAndAddToNav()\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\ttitle=\"Close and add to navigation\"\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\tremove\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 .hidden=${!this.isContentVisible} type=\"containerLow\" class=\"flex-1\" ${ref(this.contentRef)}>\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}\n"],"names":["SchmancyBoat","$LitElement","css","super","arguments","this","id","containerRef","createRef","contentRef","iconRef","headerRef","ANIMATION_CONFIG","durations","expand","minimize","hide","content","easing","emphasized","decelerate","accelerate","standard","shadows","fab","fabLowered","expanded","currentState","isContentVisible","isAnimating","isLowered","isDragging","position","x","y","anchor","state","value","animateToState","lowered","requestUpdate","connectedCallback","window","fromEvent","pipe","takeUntil","disconnecting","subscribe","updateExpandedWidth","filter","e","key","tap","preventDefault","toggleState","close","initializePosition","saved","localStorage","getItem","parsed","JSON","parse","targetState","previousState","performTransition","dispatchEvent","CustomEvent","detail","bubbles","composed","err","fromState","toState","currentAnimation","cancel","animations","createAnimations","container","finished","icon","config","fromStyles","getStyleForState","toStyles","animate","duration","fill","opacity","transform","isExpanding","baseStyles","maxWidth","maxHeight","borderRadius","hidden","pointerEvents","boxShadow","backdropFilter","minimized","width","getResponsiveWidth","vw","innerWidth","style","firstUpdated","applyInitialStyles","updateContainerPosition","setupDragPipeline","querySelector","label","initialStyle","Object","assign","webkitBackdropFilter","newState","closeAndAddToNav","race","discover","take","navComponent","addBoatItem","textContent","trim","title","includes","replace","navItem","then","clientX","clientY","offsetX","offsetY","initialRect","targetLeft","targetTop","vh","innerHeight","clampedLeft","Math","max","min","clampedTop","height","newX","newY","savePosition","toSave","setItem","stringify","header","hasDragged","merge","button","stopPropagation","map","type","touches","rect","getBoundingClientRect","startX","startY","left","top","switchMap","move$","end$","deltaX","deltaY","sqrt","calculateDragPosition","finalize","updateAnchor","removeProperty","right","bottom","isRight","isBottom","newAnchor","disconnectedCallback","render","surfaceElevation","isMinimized","transformOrigin","containerClasses","fixed","flex","html","classMap","ref","badge","__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-pwsR3UrD.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-DpIB845r.cjs");
|
|
2
2
|
//# sourceMappingURL=busy.cjs.map
|
package/dist/busy.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import "./spinner-
|
|
1
|
+
import "./spinner-Db7i3EZh.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-D24NUFs7.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-hFrznC-7.cjs");
|
|
2
2
|
//# sourceMappingURL=card.cjs.map
|
package/dist/card.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import "./media-
|
|
1
|
+
import "./media-DnpRpbFQ.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("rxjs/operators"),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("rxjs/operators"),require("lit/directives/style-map.js");const G=require("./tailwind.mixin-CfBr6oca.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-BXpnd4MJ.cjs.map
|