@mhmo91/schmancy 0.7.6 → 0.8.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/ai/audio.md +241 -0
- package/ai/content-drawer.md +163 -70
- package/ai/details.md +309 -44
- package/ai/lightbox.md +381 -0
- package/ai/typography.md +75 -49
- package/dist/ai/audio.md +241 -0
- package/dist/ai/content-drawer.md +163 -70
- package/dist/ai/details.md +309 -44
- package/dist/ai/lightbox.md +381 -0
- package/dist/ai/typography.md +75 -49
- package/dist/{animated-text-1FDC-OTA.cjs → animated-text-Bc3qyXjp.cjs} +2 -2
- package/dist/{animated-text-1FDC-OTA.cjs.map → animated-text-Bc3qyXjp.cjs.map} +1 -1
- package/dist/{animated-text-1_latidd.js → animated-text-CNx6Pmlo.js} +3 -3
- package/dist/{animated-text-1_latidd.js.map → animated-text-CNx6Pmlo.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-CQq-Mh0Z.js → area.component-7mWxekxE.js} +104 -98
- package/dist/area.component-7mWxekxE.js.map +1 -0
- package/dist/area.component-CS_gSutH.cjs +12 -0
- package/dist/area.component-CS_gSutH.cjs.map +1 -0
- package/dist/area.js +1 -1
- package/dist/audio.cjs +2 -0
- package/dist/audio.cjs.map +1 -0
- package/dist/audio.js +9 -0
- package/dist/audio.js.map +1 -0
- package/dist/{autocomplete-DT9MFPEG.js → autocomplete-Ci4jo3Ur.js} +4 -4
- package/dist/{autocomplete-DT9MFPEG.js.map → autocomplete-Ci4jo3Ur.js.map} +1 -1
- package/dist/{autocomplete-auTO_M_w.cjs → autocomplete-y-IyzH4r.cjs} +2 -2
- package/dist/{autocomplete-auTO_M_w.cjs.map → autocomplete-y-IyzH4r.cjs.map} +1 -1
- package/dist/autocomplete.cjs +1 -1
- package/dist/autocomplete.js +1 -1
- package/dist/{avatar-Dm_qg-n1.js → avatar-BdyuuIk7.js} +243 -258
- package/dist/avatar-BdyuuIk7.js.map +1 -0
- package/dist/avatar-DBfJucB9.cjs +273 -0
- package/dist/avatar-DBfJucB9.cjs.map +1 -0
- package/dist/badge.cjs +1 -1
- package/dist/badge.js +1 -1
- package/dist/{boat-RNCKlx8b.js → boat-CowHieO2.js} +6 -6
- package/dist/{boat-RNCKlx8b.js.map → boat-CowHieO2.js.map} +1 -1
- package/dist/{boat-98He5-K8.cjs → boat-DkNUc1UO.cjs} +5 -5
- package/dist/{boat-98He5-K8.cjs.map → boat-DkNUc1UO.cjs.map} +1 -1
- package/dist/boat.cjs +1 -1
- package/dist/boat.js +1 -1
- package/dist/busy.cjs +1 -1
- package/dist/busy.js +1 -1
- package/dist/button.cjs +1 -1
- package/dist/button.js +1 -1
- package/dist/card.cjs +1 -1
- package/dist/card.js +1 -1
- package/dist/charts.cjs +2 -0
- package/dist/charts.cjs.map +1 -0
- package/dist/charts.js +9 -0
- package/dist/charts.js.map +1 -0
- package/dist/{checkbox-Bdn1_WJg.js → checkbox-BY4Sn8F2.js} +6 -6
- package/dist/{checkbox-Bdn1_WJg.js.map → checkbox-BY4Sn8F2.js.map} +1 -1
- package/dist/{checkbox-Dj06r6MD.cjs → checkbox-BvWcABPr.cjs} +2 -2
- package/dist/{checkbox-Dj06r6MD.cjs.map → checkbox-BvWcABPr.cjs.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-ByxcwPma.cjs → code-preview-BIFIJigy.cjs} +2 -2
- package/dist/{code-preview-ByxcwPma.cjs.map → code-preview-BIFIJigy.cjs.map} +1 -1
- package/dist/{code-preview-Br7zBkyM.js → code-preview-CYjmAxfs.js} +3 -3
- package/dist/{code-preview-Br7zBkyM.js.map → code-preview-CYjmAxfs.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/{context-create-BvxbWTgj.js → context-create-B_S-sD5B.js} +69 -57
- package/dist/context-create-B_S-sD5B.js.map +1 -0
- package/dist/context-create-DTybDbZp.cjs +2 -0
- package/dist/context-create-DTybDbZp.cjs.map +1 -0
- package/dist/date-range-B80Ummtv.cjs +119 -0
- package/dist/date-range-B80Ummtv.cjs.map +1 -0
- package/dist/date-range-BdIqI7LC.js +639 -0
- package/dist/date-range-BdIqI7LC.js.map +1 -0
- package/dist/{date-range-inline-l2G48xTX.js → date-range-inline-Cnhs9atd.js} +3 -3
- package/dist/{date-range-inline-l2G48xTX.js.map → date-range-inline-Cnhs9atd.js.map} +1 -1
- package/dist/{date-range-inline-kbokz03Z.cjs → date-range-inline-Df8u6Ecy.cjs} +2 -2
- package/dist/{date-range-inline-kbokz03Z.cjs.map → date-range-inline-Df8u6Ecy.cjs.map} +1 -1
- package/dist/date-range-inline.cjs +1 -1
- package/dist/date-range-inline.js +1 -1
- package/dist/date-range.cjs +1 -1
- package/dist/date-range.js +1 -1
- package/dist/{delay-CCreUpYu.cjs → delay-BWsVHQib.cjs} +2 -2
- package/dist/delay-BWsVHQib.cjs.map +1 -0
- package/dist/{delay-Nu7RVtYd.js → delay-CCa9nN4A.js} +45 -45
- package/dist/delay-CCa9nN4A.js.map +1 -0
- package/dist/delay.cjs +1 -1
- package/dist/delay.js +1 -1
- package/dist/details-Bee5ya0L.js +100 -0
- package/dist/details-Bee5ya0L.js.map +1 -0
- package/dist/details-oaVHXU7U.cjs +55 -0
- package/dist/details-oaVHXU7U.cjs.map +1 -0
- package/dist/details.cjs +1 -1
- package/dist/details.js +1 -1
- package/dist/dialog-service-C86xTS8q.cjs +2 -0
- package/dist/dialog-service-C86xTS8q.cjs.map +1 -0
- package/dist/dialog-service-D9E3jLAR.js +118 -0
- package/dist/dialog-service-D9E3jLAR.js.map +1 -0
- package/dist/dialog.cjs +1 -1
- package/dist/dialog.component-BriB-kFi.cjs +48 -0
- package/dist/dialog.component-BriB-kFi.cjs.map +1 -0
- package/dist/dialog.component-CMUoCC7O.js +145 -0
- package/dist/dialog.component-CMUoCC7O.js.map +1 -0
- package/dist/dialog.js +7 -7
- package/dist/directives.cjs +1 -1
- package/dist/directives.js +11 -10
- package/dist/directives.js.map +1 -1
- package/dist/{divider-CqyzFfn1.js → divider-B7DBbYFI.js} +3 -3
- package/dist/{divider-CqyzFfn1.js.map → divider-B7DBbYFI.js.map} +1 -1
- package/dist/{divider-0yHQS8kR.cjs → divider-Dl4TToQZ.cjs} +2 -2
- package/dist/{divider-0yHQS8kR.cjs.map → divider-Dl4TToQZ.cjs.map} +1 -1
- package/dist/divider.cjs +1 -1
- package/dist/divider.js +1 -1
- package/dist/{dropdown-content-BmHQE5-P.cjs → dropdown-content-C2W7OttQ.cjs} +2 -2
- package/dist/{dropdown-content-BmHQE5-P.cjs.map → dropdown-content-C2W7OttQ.cjs.map} +1 -1
- package/dist/{dropdown-content-iFlLupVo.js → dropdown-content-DzhOtilY.js} +3 -3
- package/dist/{dropdown-content-iFlLupVo.js.map → dropdown-content-DzhOtilY.js.map} +1 -1
- package/dist/dropdown.cjs +1 -1
- package/dist/dropdown.js +1 -1
- package/dist/{email-recipients-CmAEJDMC.js → email-recipients-BWqZKo3m.js} +8 -7
- package/dist/{email-recipients-CmAEJDMC.js.map → email-recipients-BWqZKo3m.js.map} +1 -1
- package/dist/{email-recipients-Cioc3U0Z.cjs → email-recipients-Bh5VC0rc.cjs} +2 -2
- package/dist/{email-recipients-Cioc3U0Z.cjs.map → email-recipients-Bh5VC0rc.cjs.map} +1 -1
- package/dist/emotional-sounds-BRnFhww6.js +234 -0
- package/dist/emotional-sounds-BRnFhww6.js.map +1 -0
- package/dist/emotional-sounds-DVGhmoZf.cjs +2 -0
- package/dist/emotional-sounds-DVGhmoZf.cjs.map +1 -0
- package/dist/extra.cjs +1 -1
- package/dist/extra.js +1 -1
- package/dist/flex-53G-PJx7.js +183 -0
- package/dist/flex-53G-PJx7.js.map +1 -0
- package/dist/flex-DFSIy0t4.cjs +18 -0
- package/dist/flex-DFSIy0t4.cjs.map +1 -0
- package/dist/{form-CxrvY530.js → form-BtRK9bnp.js} +2 -2
- package/dist/{form-CxrvY530.js.map → form-BtRK9bnp.js.map} +1 -1
- package/dist/{form-DFDTspmH.cjs → form-Zq7g2JS8.cjs} +2 -2
- package/dist/{form-DFDTspmH.cjs.map → form-Zq7g2JS8.cjs.map} +1 -1
- package/dist/form.cjs +1 -1
- package/dist/form.js +1 -1
- package/dist/{formField.mixin-hZ2qP4iG.js → formField.mixin-2jSL7WF_.js} +2 -2
- package/dist/{formField.mixin-hZ2qP4iG.js.map → formField.mixin-2jSL7WF_.js.map} +1 -1
- package/dist/{formField.mixin-C7H5DaEl.cjs → formField.mixin-DkN2ufR_.cjs} +2 -2
- package/dist/{formField.mixin-C7H5DaEl.cjs.map → formField.mixin-DkN2ufR_.cjs.map} +1 -1
- package/dist/height-CfECBO2j.js +44 -0
- package/dist/height-CfECBO2j.js.map +1 -0
- package/dist/height-Z70qJYJK.cjs +2 -0
- package/dist/height-Z70qJYJK.cjs.map +1 -0
- package/dist/{icon-D0FAI5uJ.js → icon-B5qeYrDu.js} +17 -17
- package/dist/icon-B5qeYrDu.js.map +1 -0
- package/dist/icon-button-BpmGFjaR.cjs +70 -0
- package/dist/icon-button-BpmGFjaR.cjs.map +1 -0
- package/dist/icon-button-HSYaQBNF.js +164 -0
- package/dist/icon-button-HSYaQBNF.js.map +1 -0
- package/dist/icon-pU_cfmpD.cjs +49 -0
- package/dist/icon-pU_cfmpD.cjs.map +1 -0
- package/dist/icons.cjs +1 -1
- package/dist/icons.js +1 -1
- package/dist/index.cjs +1 -1
- package/dist/index.js +275 -250
- package/dist/index.js.map +1 -1
- package/dist/input-8G9YY9qv.cjs +51 -0
- package/dist/input-8G9YY9qv.cjs.map +1 -0
- package/dist/{input-DLnKAj3B.js → input-BJMF5Fyk.js} +35 -31
- package/dist/input-BJMF5Fyk.js.map +1 -0
- package/dist/{input-chip-C3EPsHcP.cjs → input-chip-CocdqTzr.cjs} +2 -2
- package/dist/{input-chip-C3EPsHcP.cjs.map → input-chip-CocdqTzr.cjs.map} +1 -1
- package/dist/{input-chip-dmqYCExV.js → input-chip-tbrw56ix.js} +2 -2
- package/dist/{input-chip-dmqYCExV.js.map → input-chip-tbrw56ix.js.map} +1 -1
- package/dist/input.cjs +1 -1
- package/dist/input.js +1 -1
- package/dist/json-CvcloKQv.js +51 -0
- package/dist/json-CvcloKQv.js.map +1 -0
- package/dist/json-DPnyOA3K.cjs +12 -0
- package/dist/json-DPnyOA3K.cjs.map +1 -0
- package/dist/json.cjs +2 -0
- package/dist/json.cjs.map +1 -0
- package/dist/json.js +5 -0
- package/dist/json.js.map +1 -0
- package/dist/layout.cjs +1 -1
- package/dist/layout.js +4 -3
- package/dist/layout.js.map +1 -1
- package/dist/lightbox-service-3mHqBKEh.cjs +202 -0
- package/dist/lightbox-service-3mHqBKEh.cjs.map +1 -0
- package/dist/lightbox-service-DxbYZAuv.js +458 -0
- package/dist/lightbox-service-DxbYZAuv.js.map +1 -0
- package/dist/lightbox.cjs +2 -0
- package/dist/lightbox.cjs.map +1 -0
- package/dist/lightbox.js +8 -0
- package/dist/lightbox.js.map +1 -0
- package/dist/{list-BegNkhOn.js → list-FWXmY-eQ.js} +2 -2
- package/dist/{list-BegNkhOn.js.map → list-FWXmY-eQ.js.map} +1 -1
- package/dist/{list-CLKiZ6lk.cjs → list-JjR7WOrd.cjs} +2 -2
- package/dist/{list-CLKiZ6lk.cjs.map → list-JjR7WOrd.cjs.map} +1 -1
- package/dist/list.cjs +1 -1
- package/dist/list.js +1 -1
- package/dist/{litElement.mixin-CPQYJnK_.cjs → litElement.mixin-BVBdv0GP.cjs} +2 -2
- package/dist/{litElement.mixin-CPQYJnK_.cjs.map → litElement.mixin-BVBdv0GP.cjs.map} +1 -1
- package/dist/{litElement.mixin-DWDPaNoc.js → litElement.mixin-Wcu4yIIs.js} +2 -2
- package/dist/{litElement.mixin-DWDPaNoc.js.map → litElement.mixin-Wcu4yIIs.js.map} +1 -1
- package/dist/mailbox.cjs +1 -1
- package/dist/mailbox.js +1 -1
- package/dist/{map-CUKZ6LrR.js → map-Br6xJFxG.js} +2 -2
- package/dist/{map-CUKZ6LrR.js.map → map-Br6xJFxG.js.map} +1 -1
- package/dist/{map-w4Kdtycx.cjs → map-D9R3OCne.cjs} +2 -2
- package/dist/{map-w4Kdtycx.cjs.map → map-D9R3OCne.cjs.map} +1 -1
- package/dist/map.cjs +1 -1
- package/dist/map.js +1 -1
- package/dist/{media-CjdCchz8.js → media-BV_1DfcW.js} +2 -2
- package/dist/{media-CjdCchz8.js.map → media-BV_1DfcW.js.map} +1 -1
- package/dist/{media-DDNmuoV0.cjs → media-DibPwAjJ.cjs} +2 -2
- package/dist/{media-DDNmuoV0.cjs.map → media-DibPwAjJ.cjs.map} +1 -1
- package/dist/menu-HKqlq99V.js +60 -0
- package/dist/{menu-ofiPDY2a.js.map → menu-HKqlq99V.js.map} +1 -1
- package/dist/{menu-D9-9vipn.cjs → menu-vNrV-Nuq.cjs} +4 -6
- package/dist/{menu-D9-9vipn.cjs.map → menu-vNrV-Nuq.cjs.map} +1 -1
- package/dist/menu.cjs +1 -1
- package/dist/menu.js +1 -1
- package/dist/mixins.cjs +1 -1
- package/dist/mixins.js +3 -3
- package/dist/nav-drawer.cjs +1 -1
- package/dist/nav-drawer.js +1 -1
- package/dist/navigation-bar.cjs +1 -1
- package/dist/navigation-bar.js +1 -1
- package/dist/{navigation-rail-CEDLJTrH.cjs → navigation-rail-D1o3qDe_.cjs} +15 -17
- package/dist/navigation-rail-D1o3qDe_.cjs.map +1 -0
- package/dist/{navigation-rail-weSW6BCv.js → navigation-rail-DKXumnmt.js} +30 -32
- package/dist/navigation-rail-DKXumnmt.js.map +1 -0
- package/dist/navigation-rail.cjs +1 -1
- package/dist/navigation-rail.js +1 -1
- package/dist/notification-service-B5ljba4P.js +155 -0
- package/dist/notification-service-B5ljba4P.js.map +1 -0
- package/dist/notification-service-ICRT05L0.cjs +19 -0
- package/dist/notification-service-ICRT05L0.cjs.map +1 -0
- package/dist/notification.cjs +1 -1
- package/dist/notification.js +6 -8
- package/dist/{notify-Ci0HrUIo.js → notify-B9CpO1Ru.js} +2 -2
- package/dist/notify-B9CpO1Ru.js.map +1 -0
- package/dist/{notify-aasSKQGA.cjs → notify-NX-dl60E.cjs} +2 -2
- package/dist/notify-NX-dl60E.cjs.map +1 -0
- package/dist/{option-Cs4e3CzF.js → option-B4JKMrLg.js} +2 -2
- package/dist/{option-Cs4e3CzF.js.map → option-B4JKMrLg.js.map} +1 -1
- package/dist/{option-Uze_q9Ef.cjs → option-epyXLWoY.cjs} +2 -2
- package/dist/{option-Uze_q9Ef.cjs.map → option-epyXLWoY.cjs.map} +1 -1
- package/dist/option.cjs +1 -1
- package/dist/option.js +1 -1
- package/dist/page-Bmi1QHtq.cjs +20 -0
- package/dist/page-Bmi1QHtq.cjs.map +1 -0
- package/dist/page-BpygEntU.js +48 -0
- package/dist/page-BpygEntU.js.map +1 -0
- package/dist/page.cjs +2 -0
- package/dist/page.cjs.map +1 -0
- package/dist/page.js +5 -0
- package/dist/page.js.map +1 -0
- package/dist/{payment-card-form-rJCPUtWE.cjs → payment-card-form-3kAXDbXf.cjs} +2 -2
- package/dist/{payment-card-form-rJCPUtWE.cjs.map → payment-card-form-3kAXDbXf.cjs.map} +1 -1
- package/dist/{payment-card-form-BLoUTYiB.js → payment-card-form-BxkHuSls.js} +3 -3
- package/dist/{payment-card-form-BLoUTYiB.js.map → payment-card-form-BxkHuSls.js.map} +1 -1
- package/dist/pills-C3fIvfn8.js +346 -0
- package/dist/pills-C3fIvfn8.js.map +1 -0
- package/dist/pills-MmHyBGQu.cjs +113 -0
- package/dist/pills-MmHyBGQu.cjs.map +1 -0
- package/dist/progress-0POmJs5o.js +59 -0
- package/dist/progress-0POmJs5o.js.map +1 -0
- package/dist/progress-qx8jtrOA.cjs +35 -0
- package/dist/progress-qx8jtrOA.cjs.map +1 -0
- package/dist/progress.cjs +1 -1
- package/dist/progress.js +1 -1
- package/dist/qr-scanner-DQq-WLyo.cjs +29 -0
- package/dist/qr-scanner-DQq-WLyo.cjs.map +1 -0
- package/dist/qr-scanner-jwOSrD0N.js +743 -0
- package/dist/qr-scanner-jwOSrD0N.js.map +1 -0
- package/dist/qr-scanner.cjs +2 -0
- package/dist/qr-scanner.cjs.map +1 -0
- package/dist/qr-scanner.js +5 -0
- package/dist/qr-scanner.js.map +1 -0
- package/dist/{radio-button-CaDaw5VH.js → radio-button-B0EUK_wg.js} +3 -3
- package/dist/{radio-button-CaDaw5VH.js.map → radio-button-B0EUK_wg.js.map} +1 -1
- package/dist/{radio-button-BAS7gKmA.cjs → radio-button-DraEYR2R.cjs} +2 -2
- package/dist/{radio-button-BAS7gKmA.cjs.map → radio-button-DraEYR2R.cjs.map} +1 -1
- package/dist/radio-group.cjs +1 -1
- package/dist/radio-group.js +1 -1
- package/dist/ripple-BgJXbNSP.js +124 -0
- package/dist/ripple-BgJXbNSP.js.map +1 -0
- package/dist/ripple-x6sTX02K.cjs +16 -0
- package/dist/ripple-x6sTX02K.cjs.map +1 -0
- package/dist/{schmancy-steps-container-wQsksygx.cjs → schmancy-steps-container-B5aiqgMA.cjs} +2 -2
- package/dist/{schmancy-steps-container-wQsksygx.cjs.map → schmancy-steps-container-B5aiqgMA.cjs.map} +1 -1
- package/dist/{schmancy-steps-container-BInNput3.js → schmancy-steps-container-C2StAA5K.js} +3 -3
- package/dist/{schmancy-steps-container-BInNput3.js.map → schmancy-steps-container-C2StAA5K.js.map} +1 -1
- package/dist/scroll-BqT7bvhu.cjs +27 -0
- package/dist/scroll-BqT7bvhu.cjs.map +1 -0
- package/dist/scroll-Bu-vAg3d.js +87 -0
- package/dist/scroll-Bu-vAg3d.js.map +1 -0
- package/dist/{select-_2Ag_znm.cjs → select-HiEGJvOX.cjs} +2 -2
- package/dist/select-HiEGJvOX.cjs.map +1 -0
- package/dist/{select-ApLZefMf.js → select-i-uKur-W.js} +5 -4
- package/dist/select-i-uKur-W.js.map +1 -0
- package/dist/select.cjs +1 -1
- package/dist/select.js +1 -1
- package/dist/{selector-hook-Cok22ifx.cjs → selector-hook-9w2auh2O.cjs} +2 -2
- package/dist/{selector-hook-Cok22ifx.cjs.map → selector-hook-9w2auh2O.cjs.map} +1 -1
- package/dist/{selector-hook-l2fe2UO5.js → selector-hook-CHV4kDMd.js} +3 -3
- package/dist/{selector-hook-l2fe2UO5.js.map → selector-hook-CHV4kDMd.js.map} +1 -1
- package/dist/{sheet-DovyNsok.js → sheet-B1g7E4dQ.js} +5 -5
- package/dist/{sheet-DovyNsok.js.map → sheet-B1g7E4dQ.js.map} +1 -1
- package/dist/{sheet-wjDOQ8Hs.cjs → sheet-BbrRW0S5.cjs} +2 -2
- package/dist/{sheet-wjDOQ8Hs.cjs.map → sheet-BbrRW0S5.cjs.map} +1 -1
- package/dist/sheet.cjs +1 -1
- package/dist/sheet.js +2 -2
- package/dist/{sheet.service-BvOiOFMm.js → sheet.service-4etIM-p6.js} +20 -18
- package/dist/sheet.service-4etIM-p6.js.map +1 -0
- package/dist/sheet.service-BiRZjCdN.cjs +2 -0
- package/dist/sheet.service-BiRZjCdN.cjs.map +1 -0
- package/dist/{slider-CeVgx4pL.js → slider-8E3Wad0t.js} +3 -3
- package/dist/{slider-CeVgx4pL.js.map → slider-8E3Wad0t.js.map} +1 -1
- package/dist/{slider-BgJccHrg.cjs → slider-VYnbIRH2.cjs} +2 -2
- package/dist/{slider-BgJccHrg.cjs.map → slider-VYnbIRH2.cjs.map} +1 -1
- package/dist/slider.cjs +1 -1
- package/dist/slider.js +1 -1
- package/dist/sound.service-Nza4c6wv.js +102 -0
- package/dist/sound.service-Nza4c6wv.js.map +1 -0
- package/dist/sound.service-eRirZw59.cjs +2 -0
- package/dist/sound.service-eRirZw59.cjs.map +1 -0
- package/dist/{spinner-Brq1TenP.js → spinner-CKm13CKN.js} +15 -12
- package/dist/spinner-CKm13CKN.js.map +1 -0
- package/dist/{spinner-BKeA2bdB.cjs → spinner-DJgcI5wr.cjs} +9 -9
- package/dist/spinner-DJgcI5wr.cjs.map +1 -0
- package/dist/steps.cjs +1 -1
- package/dist/steps.js +1 -1
- package/dist/store.cjs +1 -1
- package/dist/store.js +2 -2
- package/dist/{suggestion-chip-CWBSzu7C.js → suggestion-chip-6njXvvHm.js} +50 -46
- package/dist/suggestion-chip-6njXvvHm.js.map +1 -0
- package/dist/{suggestion-chip-dq20NKWy.cjs → suggestion-chip-DdLfqk7o.cjs} +18 -23
- package/dist/suggestion-chip-DdLfqk7o.cjs.map +1 -0
- package/dist/{surface-Bf8pvmdG.js → surface-BYU3l_Q2.js} +12 -11
- package/dist/surface-BYU3l_Q2.js.map +1 -0
- package/dist/{surface-fEPJ-cuu.cjs → surface-DcqbWGub.cjs} +5 -4
- package/dist/surface-DcqbWGub.cjs.map +1 -0
- package/dist/surface.cjs +1 -1
- package/dist/surface.js +1 -1
- package/dist/{table-DEnB9_Rf.cjs → table-C9fzDjjk.cjs} +2 -2
- package/dist/{table-DEnB9_Rf.cjs.map → table-C9fzDjjk.cjs.map} +1 -1
- package/dist/{table-MLd3oXm6.js → table-Dq12ollZ.js} +3 -3
- package/dist/{table-MLd3oXm6.js.map → table-Dq12ollZ.js.map} +1 -1
- package/dist/table.cjs +1 -1
- package/dist/table.js +1 -1
- package/dist/{tabs-compatibility-CXVHOR5X.cjs → tabs-compatibility-Dwtjfkcf.cjs} +2 -2
- package/dist/{tabs-compatibility-CXVHOR5X.cjs.map → tabs-compatibility-Dwtjfkcf.cjs.map} +1 -1
- package/dist/{tabs-compatibility-KWKzYolX.js → tabs-compatibility-wnzlHtln.js} +2 -2
- package/dist/{tabs-compatibility-KWKzYolX.js.map → tabs-compatibility-wnzlHtln.js.map} +1 -1
- package/dist/tabs.cjs +1 -1
- package/dist/tabs.js +1 -1
- package/dist/tailwind.mixin-Ddt05Frc.js +67 -0
- package/dist/{tailwind.mixin-DIW0B_of.js.map → tailwind.mixin-Ddt05Frc.js.map} +1 -1
- package/dist/tailwind.mixin-UijsBrYW.cjs +2 -0
- package/dist/{tailwind.mixin-3TPVvhYf.cjs.map → tailwind.mixin-UijsBrYW.cjs.map} +1 -1
- package/dist/teleport.cjs +1 -1
- package/dist/teleport.js +1 -1
- package/dist/textarea-DGmsw1B_.cjs +44 -0
- package/dist/{textarea-B7arkA7y.cjs.map → textarea-DGmsw1B_.cjs.map} +1 -1
- package/dist/{textarea-BK1m_CFR.js → textarea-Vd3zayJZ.js} +4 -3
- package/dist/{textarea-BK1m_CFR.js.map → textarea-Vd3zayJZ.js.map} +1 -1
- package/dist/textarea.cjs +1 -1
- package/dist/textarea.js +1 -1
- package/dist/{theme-button-BTKwL3oC.cjs → theme-button-DG_Xwg9H.cjs} +2 -2
- package/dist/{theme-button-BTKwL3oC.cjs.map → theme-button-DG_Xwg9H.cjs.map} +1 -1
- package/dist/{theme-button-C6kk8bay.js → theme-button-rGpEW_xS.js} +2 -2
- package/dist/{theme-button-C6kk8bay.js.map → theme-button-rGpEW_xS.js.map} +1 -1
- package/dist/theme-button.cjs +1 -1
- package/dist/theme-button.js +1 -1
- package/dist/{theme-controller-boat-BK59LqH9.js → theme-controller-boat-B1fjcqJI.js} +420 -228
- package/dist/theme-controller-boat-B1fjcqJI.js.map +1 -0
- package/dist/theme-controller-boat-pLzK5zxL.cjs +178 -0
- package/dist/theme-controller-boat-pLzK5zxL.cjs.map +1 -0
- package/dist/theme.cjs +1 -1
- package/dist/theme.js +13 -11
- package/dist/{timezone-nbn0o5GC.cjs → timezone-BhUaIAV7.cjs} +2 -2
- package/dist/{timezone-nbn0o5GC.cjs.map → timezone-BhUaIAV7.cjs.map} +1 -1
- package/dist/{timezone-D_skWX6Z.js → timezone-IQkwr6Oh.js} +3 -3
- package/dist/{timezone-D_skWX6Z.js.map → timezone-IQkwr6Oh.js.map} +1 -1
- package/dist/{tooltip-Btl0IKYC.js → tooltip-CwaiZC8f.js} +2 -2
- package/dist/{tooltip-Btl0IKYC.js.map → tooltip-CwaiZC8f.js.map} +1 -1
- package/dist/{tooltip-DyuMJEjL.cjs → tooltip-iEvxKg8g.cjs} +2 -2
- package/dist/{tooltip-DyuMJEjL.cjs.map → tooltip-iEvxKg8g.cjs.map} +1 -1
- package/dist/tooltip.cjs +1 -1
- package/dist/tooltip.js +1 -1
- package/dist/{tree-N4Y6MoQe.cjs → tree-Bclu6uvv.cjs} +2 -2
- package/dist/{tree-N4Y6MoQe.cjs.map → tree-Bclu6uvv.cjs.map} +1 -1
- package/dist/{tree-B_2eIFQi.js → tree-D9EbEsxn.js} +2 -2
- package/dist/{tree-B_2eIFQi.js.map → tree-D9EbEsxn.js.map} +1 -1
- package/dist/tree.cjs +1 -1
- package/dist/tree.js +1 -1
- package/dist/{typewriter-Blyrk_4c.js → typewriter-BjDPgRlj.js} +5 -5
- package/dist/{typewriter-Blyrk_4c.js.map → typewriter-BjDPgRlj.js.map} +1 -1
- package/dist/{typewriter-CFQAeOaw.cjs → typewriter-Bscwd-36.cjs} +4 -4
- package/dist/{typewriter-CFQAeOaw.cjs.map → typewriter-Bscwd-36.cjs.map} +1 -1
- package/dist/typewriter.cjs +1 -1
- package/dist/typewriter.js +1 -1
- package/dist/{typography-DjGWK58I.js → typography-CConBBFH.js} +13 -53
- package/dist/typography-CConBBFH.js.map +1 -0
- package/dist/{typography-DsIU0TGe.cjs → typography-DLGT3DGz.cjs} +3 -46
- package/dist/typography-DLGT3DGz.cjs.map +1 -0
- package/dist/typography.cjs +1 -1
- package/dist/typography.js +1 -1
- package/mixins/tailwind.css +37 -6
- package/package.json +21 -20
- package/types/src/area/area.service.d.ts +1 -1
- package/types/src/area/router.types.d.ts +1 -0
- package/types/src/audio/emotional-sounds.d.ts +122 -0
- package/types/src/audio/index.d.ts +30 -0
- package/types/src/audio/sound.service.d.ts +111 -0
- package/types/src/avatar.d.ts +10 -1
- package/types/src/busy/spinner.d.ts +6 -1
- package/types/src/button/button.d.ts +15 -2
- package/types/src/button/icon-button.d.ts +1 -1
- package/types/src/charts/area-chart.d.ts +58 -0
- package/types/src/charts/index.d.ts +4 -0
- package/types/src/charts/pills.d.ts +51 -0
- package/types/src/charts/types.d.ts +62 -0
- package/types/src/charts/utils.d.ts +28 -0
- package/types/src/checkbox/checkbox.d.ts +3 -2
- package/types/src/chips/chips.d.ts +2 -0
- package/types/src/content-drawer/drawer.service.d.ts +1 -7
- package/types/src/date-range/date-range-dialog.d.ts +16 -0
- package/types/src/date-range/date-range.d.ts +1 -1
- package/types/src/details/details.d.ts +8 -3
- package/types/src/dialog/dailog.d.ts +1 -5
- package/types/src/dialog/dialog-base.mixin.d.ts +26 -0
- package/types/src/dialog/dialog-service.d.ts +3 -66
- package/types/src/dialog/dialog.component.d.ts +63 -30
- package/types/src/dialog/index.d.ts +1 -3
- package/types/src/directives/height.d.ts +11 -6
- package/types/src/icons/icon.d.ts +17 -0
- package/types/src/index.d.ts +6 -0
- package/types/src/input/input.d.ts +13 -9
- package/types/src/json/index.d.ts +1 -0
- package/types/src/json/json.d.ts +15 -0
- package/types/src/lightbox/flip-directive.d.ts +29 -0
- package/types/src/lightbox/flip.directive.d.ts +22 -0
- package/types/src/lightbox/index.d.ts +4 -0
- package/types/src/lightbox/lightbox-service.d.ts +24 -0
- package/types/src/lightbox/lightbox.d.ts +34 -0
- package/types/src/lightbox/lightbox.directive.d.ts +30 -0
- package/types/src/nav-drawer/appbar.d.ts +0 -5
- package/types/src/nav-drawer/drawer.d.ts +1 -32
- package/types/src/notification/index.d.ts +1 -3
- package/types/src/notification/notification-service.d.ts +13 -1
- package/types/src/notification/notification.d.ts +13 -12
- package/types/src/notification/notify.d.ts +1 -1
- package/types/src/page/index.d.ts +1 -0
- package/types/src/page/page.d.ts +31 -0
- package/types/src/progress/progress.d.ts +2 -2
- package/types/src/qr-scanner/index.d.ts +1 -0
- package/types/src/qr-scanner/qr-scanner.d.ts +26 -0
- package/types/src/select/select.d.ts +1 -1
- package/types/src/theme/index.d.ts +1 -0
- package/types/src/theme/theme-audio-player.d.ts +100 -0
- package/types/src/theme/theme-controller-boat.d.ts +1 -0
- package/types/src/theme/theme.component.d.ts +1 -1
- package/types/src/types/index.d.ts +1 -0
- package/types/src/types/mood-audio.types.d.ts +173 -0
- package/types/src/typography/typography.d.ts +1 -0
- package/dist/area.component-CQq-Mh0Z.js.map +0 -1
- package/dist/area.component-Ciw7vGsx.cjs +0 -12
- package/dist/area.component-Ciw7vGsx.cjs.map +0 -1
- package/dist/avatar-Bo8kRnA-.cjs +0 -288
- package/dist/avatar-Bo8kRnA-.cjs.map +0 -1
- package/dist/avatar-Dm_qg-n1.js.map +0 -1
- package/dist/context-create-BJkkLr1D.cjs +0 -2
- package/dist/context-create-BJkkLr1D.cjs.map +0 -1
- package/dist/context-create-BvxbWTgj.js.map +0 -1
- package/dist/date-range-VkIMcQdT.js +0 -664
- package/dist/date-range-VkIMcQdT.js.map +0 -1
- package/dist/date-range-xYUr_KKx.cjs +0 -134
- package/dist/date-range-xYUr_KKx.cjs.map +0 -1
- package/dist/delay-CCreUpYu.cjs.map +0 -1
- package/dist/delay-Nu7RVtYd.js.map +0 -1
- package/dist/details-CjQrqBli.cjs +0 -98
- package/dist/details-CjQrqBli.cjs.map +0 -1
- package/dist/details-DVIWpEsI.js +0 -137
- package/dist/details-DVIWpEsI.js.map +0 -1
- package/dist/dialog-content-BgxKi73O.js +0 -256
- package/dist/dialog-content-BgxKi73O.js.map +0 -1
- package/dist/dialog-content-CM3-RXQQ.cjs +0 -85
- package/dist/dialog-content-CM3-RXQQ.cjs.map +0 -1
- package/dist/dialog-service-B4nR8Em5.cjs +0 -2
- package/dist/dialog-service-B4nR8Em5.cjs.map +0 -1
- package/dist/dialog-service-Bege4HF4.js +0 -140
- package/dist/dialog-service-Bege4HF4.js.map +0 -1
- package/dist/flex-BEB1yuMF.cjs +0 -43
- package/dist/flex-BEB1yuMF.cjs.map +0 -1
- package/dist/flex-BgcbHlPo.js +0 -260
- package/dist/flex-BgcbHlPo.js.map +0 -1
- package/dist/icon-D0FAI5uJ.js.map +0 -1
- package/dist/icon-DJnGMAQ2.cjs +0 -49
- package/dist/icon-DJnGMAQ2.cjs.map +0 -1
- package/dist/icon-button-CSZtSmOy.cjs +0 -65
- package/dist/icon-button-CSZtSmOy.cjs.map +0 -1
- package/dist/icon-button-CbgQp3AL.js +0 -156
- package/dist/icon-button-CbgQp3AL.js.map +0 -1
- package/dist/input-DLnKAj3B.js.map +0 -1
- package/dist/input-wZ6ORWru.cjs +0 -51
- package/dist/input-wZ6ORWru.cjs.map +0 -1
- package/dist/menu-ofiPDY2a.js +0 -61
- package/dist/navigation-rail-CEDLJTrH.cjs.map +0 -1
- package/dist/navigation-rail-weSW6BCv.js.map +0 -1
- package/dist/notification-service-B4nvP2Jc.js +0 -532
- package/dist/notification-service-B4nvP2Jc.js.map +0 -1
- package/dist/notification-service-B_pa74hl.cjs +0 -143
- package/dist/notification-service-B_pa74hl.cjs.map +0 -1
- package/dist/notify-Ci0HrUIo.js.map +0 -1
- package/dist/notify-aasSKQGA.cjs.map +0 -1
- package/dist/progress-B1f3y-Mf.js +0 -58
- package/dist/progress-B1f3y-Mf.js.map +0 -1
- package/dist/progress-DdBHNIMT.cjs +0 -35
- package/dist/progress-DdBHNIMT.cjs.map +0 -1
- package/dist/ripple-QoNZUUw_.js +0 -148
- package/dist/ripple-QoNZUUw_.js.map +0 -1
- package/dist/ripple-Ujq_REH4.cjs +0 -16
- package/dist/ripple-Ujq_REH4.cjs.map +0 -1
- package/dist/select-ApLZefMf.js.map +0 -1
- package/dist/select-_2Ag_znm.cjs.map +0 -1
- package/dist/sheet.service-BvOiOFMm.js.map +0 -1
- package/dist/sheet.service-DfHrOxyc.cjs +0 -2
- package/dist/sheet.service-DfHrOxyc.cjs.map +0 -1
- package/dist/spinner-BKeA2bdB.cjs.map +0 -1
- package/dist/spinner-Brq1TenP.js.map +0 -1
- package/dist/suggestion-chip-CWBSzu7C.js.map +0 -1
- package/dist/suggestion-chip-dq20NKWy.cjs.map +0 -1
- package/dist/surface-Bf8pvmdG.js.map +0 -1
- package/dist/surface-fEPJ-cuu.cjs.map +0 -1
- package/dist/tailwind.mixin-3TPVvhYf.cjs +0 -2
- package/dist/tailwind.mixin-DIW0B_of.js +0 -67
- package/dist/textarea-B7arkA7y.cjs +0 -44
- package/dist/theme-controller-boat-BK59LqH9.js.map +0 -1
- package/dist/theme-controller-boat-Y5QXwJxW.cjs +0 -64
- package/dist/theme-controller-boat-Y5QXwJxW.cjs.map +0 -1
- package/dist/typography-DjGWK58I.js.map +0 -1
- package/dist/typography-DsIU0TGe.cjs.map +0 -1
- package/types/src/notification/notification-audio-generator.d.ts +0 -45
- package/types/src/notification/notification-audio.d.ts +0 -79
- package/types/src/notification/notification-container.d.ts +0 -48
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"boat-98He5-K8.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 { cache } from 'lit/directives/cache.js'\nimport { fromEvent, interval, merge, race } from 'rxjs'\nimport { filter, finalize, map, startWith, 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\tposition: relative;\n\t\tz-index: 1000;\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\n\t\t\t\t\t// Validate viewport after resize to ensure boat stays visible\n\t\t\t\t\tconst container = this.containerRef.value\n\t\t\t\t\tif (container) {\n\t\t\t\t\t\tconst rect = container.getBoundingClientRect()\n\t\t\t\t\t\t// Only validate if dimensions are ready\n\t\t\t\t\t\tif (rect.width > 0 && rect.height > 0) {\n\t\t\t\t\t\t\tconst vw = window.innerWidth\n\t\t\t\t\t\t\tconst vh = window.innerHeight\n\n\t\t\t\t\t\t\tconst actualLeft = this.anchor.includes('right') ? vw - this.position.x - rect.width : this.position.x\n\n\t\t\t\t\t\t\tconst actualTop = this.anchor.includes('bottom') ? vh - this.position.y - rect.height : this.position.y\n\n\t\t\t\t\t\t\tlet needsUpdate = false\n\t\t\t\t\t\t\tlet newLeft = actualLeft\n\t\t\t\t\t\t\tlet newTop = actualTop\n\n\t\t\t\t\t\t\tif (actualLeft < 0) {\n\t\t\t\t\t\t\t\tnewLeft = 16\n\t\t\t\t\t\t\t\tneedsUpdate = true\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (actualLeft + rect.width > vw) {\n\t\t\t\t\t\t\t\tnewLeft = vw - rect.width - 16\n\t\t\t\t\t\t\t\tneedsUpdate = true\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (actualTop < 0) {\n\t\t\t\t\t\t\t\tnewTop = 16\n\t\t\t\t\t\t\t\tneedsUpdate = true\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (actualTop + rect.height > vh) {\n\t\t\t\t\t\t\t\tnewTop = vh - rect.height - 16\n\t\t\t\t\t\t\t\tneedsUpdate = true\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tif (needsUpdate) {\n\t\t\t\t\t\t\t\tthis.position.x = this.anchor.includes('right') ? vw - newLeft - rect.width : newLeft\n\n\t\t\t\t\t\t\t\tthis.position.y = this.anchor.includes('bottom') ? vh - newTop - rect.height : newTop\n\n\t\t\t\t\t\t\t\tthis.position.x = Math.max(0, this.position.x)\n\t\t\t\t\t\t\t\tthis.position.y = Math.max(0, this.position.y)\n\n\t\t\t\t\t\t\t\tthis.updateContainerPosition()\n\t\t\t\t\t\t\t\tthis.savePosition()\n\t\t\t\t\t\t\t\tconsole.log(`✨ Boat \"${this.id}\" repositioned after resize:`, this.position)\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\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\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 and wait for render\n\t\tif (toState === 'expanded') {\n\t\t\tthis.isContentVisible = true\n\t\t\tawait this.updateComplete\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// Wait for content fade-out animation before removing from DOM\n\t\t\tif (animations.content) {\n\t\t\t\tawait animations.content.finished\n\t\t\t}\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} else {\n\t\t\t\t// CRITICAL: After expanding, validate viewport bounds\n\t\t\t\t// The expanded boat is much larger and might go outside viewport\n\t\t\t\tconst container = this.containerRef.value\n\t\t\t\tif (container) {\n\t\t\t\t\tconst rect = container.getBoundingClientRect()\n\t\t\t\t\tif (rect.width > 0 && rect.height > 0) {\n\t\t\t\t\t\tconst vw = window.innerWidth\n\t\t\t\t\t\tconst vh = window.innerHeight\n\n\t\t\t\t\t\tconst actualLeft = this.anchor.includes('right') ? vw - this.position.x - rect.width : this.position.x\n\n\t\t\t\t\t\tconst actualTop = this.anchor.includes('bottom') ? vh - this.position.y - rect.height : this.position.y\n\n\t\t\t\t\t\tlet needsUpdate = false\n\t\t\t\t\t\tlet newLeft = actualLeft\n\t\t\t\t\t\tlet newTop = actualTop\n\n\t\t\t\t\t\tif (actualLeft < 0) {\n\t\t\t\t\t\t\tnewLeft = 16\n\t\t\t\t\t\t\tneedsUpdate = true\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (actualLeft + rect.width > vw) {\n\t\t\t\t\t\t\tnewLeft = vw - rect.width - 16\n\t\t\t\t\t\t\tneedsUpdate = true\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (actualTop < 0) {\n\t\t\t\t\t\t\tnewTop = 16\n\t\t\t\t\t\t\tneedsUpdate = true\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (actualTop + rect.height > vh) {\n\t\t\t\t\t\t\tnewTop = vh - rect.height - 16\n\t\t\t\t\t\t\tneedsUpdate = true\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (needsUpdate) {\n\t\t\t\t\t\t\tthis.position.x = this.anchor.includes('right') ? vw - newLeft - rect.width : newLeft\n\n\t\t\t\t\t\t\tthis.position.y = this.anchor.includes('bottom') ? vh - newTop - rect.height : newTop\n\n\t\t\t\t\t\t\tthis.position.x = Math.max(0, this.position.x)\n\t\t\t\t\t\t\tthis.position.y = Math.max(0, this.position.y)\n\n\t\t\t\t\t\t\tthis.updateContainerPosition()\n\t\t\t\t\t\t\tthis.savePosition()\n\t\t\t\t\t\t\tconsole.log(`✨ Boat \"${this.id}\" snapped after expand:`, this.position)\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// Create animations for state transition\n\tprivate createAnimations(fromState: BoatState, toState: BoatState) {\n\t\tconst container = this.containerRef.value\n\t\tconst content = this.contentRef.value\n\t\tconst icon = this.iconRef.value\n\t\tconst animations: { container?: Animation; content?: Animation; icon?: Animation } = {}\n\n\t\tif (!container) return animations\n\n\t\tconst config = this.ANIMATION_CONFIG\n\t\tconst fromStyles = this.getStyleForState(fromState)\n\t\tconst toStyles = this.getStyleForState(toState)\n\n\t\t// Container animation\n\t\tif (toState === 'expanded') {\n\t\t\t// 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 - MUST await this before removing from DOM\n\t\t\tanimations.content = content.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: 'fit',\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.applyInitialStyles()\n\t\tthis.updateContainerPosition()\n\n\t\t// Wait for container to have actual dimensions before validation\n\t\t// Uses pattern from animated-text.ts - poll until dimensions are ready\n\t\tconst container = this.containerRef.value\n\t\tif (container) {\n\t\t\tinterval(10)\n\t\t\t\t.pipe(\n\t\t\t\t\tstartWith(true),\n\t\t\t\t\tfilter(() => {\n\t\t\t\t\t\tconst rect = container.getBoundingClientRect()\n\t\t\t\t\t\treturn rect.width > 0 && rect.height > 0\n\t\t\t\t\t}),\n\t\t\t\t\ttake(1),\n\t\t\t\t\ttakeUntil(this.disconnecting),\n\t\t\t\t)\n\t\t\t\t.subscribe(() => {\n\t\t\t\t\t// Validate and snap to viewport if needed\n\t\t\t\t\tconst rect = container.getBoundingClientRect()\n\t\t\t\t\tconst vw = window.innerWidth\n\t\t\t\t\tconst vh = window.innerHeight\n\n\t\t\t\t\t// Calculate actual position based on anchor\n\t\t\t\t\tconst actualLeft = this.anchor.includes('right') ? vw - this.position.x - rect.width : this.position.x\n\n\t\t\t\t\tconst actualTop = this.anchor.includes('bottom') ? vh - this.position.y - rect.height : this.position.y\n\n\t\t\t\t\t// Check if boat is outside viewport bounds\n\t\t\t\t\tlet needsUpdate = false\n\t\t\t\t\tlet newLeft = actualLeft\n\t\t\t\t\tlet newTop = actualTop\n\n\t\t\t\t\t// Snap to viewport edges if outside (16px padding)\n\t\t\t\t\tif (actualLeft < 0) {\n\t\t\t\t\t\tnewLeft = 16\n\t\t\t\t\t\tneedsUpdate = true\n\t\t\t\t\t}\n\t\t\t\t\tif (actualLeft + rect.width > vw) {\n\t\t\t\t\t\tnewLeft = vw - rect.width - 16\n\t\t\t\t\t\tneedsUpdate = true\n\t\t\t\t\t}\n\t\t\t\t\tif (actualTop < 0) {\n\t\t\t\t\t\tnewTop = 16\n\t\t\t\t\t\tneedsUpdate = true\n\t\t\t\t\t}\n\t\t\t\t\tif (actualTop + rect.height > vh) {\n\t\t\t\t\t\tnewTop = vh - rect.height - 16\n\t\t\t\t\t\tneedsUpdate = true\n\t\t\t\t\t}\n\n\t\t\t\t\t// Update position if boat was outside viewport\n\t\t\t\t\tif (needsUpdate) {\n\t\t\t\t\t\t// Convert back to anchor-relative coordinates\n\t\t\t\t\t\tthis.position.x = this.anchor.includes('right') ? vw - newLeft - rect.width : newLeft\n\n\t\t\t\t\t\tthis.position.y = this.anchor.includes('bottom') ? vh - newTop - rect.height : newTop\n\n\t\t\t\t\t\t// Ensure position is never negative\n\t\t\t\t\t\tthis.position.x = Math.max(0, this.position.x)\n\t\t\t\t\t\tthis.position.y = Math.max(0, this.position.y)\n\n\t\t\t\t\t\tthis.updateContainerPosition()\n\t\t\t\t\t\tthis.savePosition()\n\t\t\t\t\t\tconsole.log(`✨ Boat \"${this.id}\" snapped to viewport edge:`, this.position, this.anchor)\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t}\n\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\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 z-100\">\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 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${cache(\n\t\t\t\t\tthis.isContentVisible\n\t\t\t\t\t\t? html`\n\t\t\t\t\t\t\t\t<schmancy-surface type=\"containerLow\" class=\"flex-1\" ${ref(this.contentRef)}>\n\t\t\t\t\t\t\t\t\t<slot></slot>\n\t\t\t\t\t\t\t\t</schmancy-surface>\n\t\t\t\t\t\t `\n\t\t\t\t\t\t: html``,\n\t\t\t\t)}\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","constructor","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","container","rect","getBoundingClientRect","width","height","vw","innerWidth","vh","innerHeight","actualLeft","includes","actualTop","needsUpdate","newLeft","newTop","Math","max","updateContainerPosition","savePosition","filter","e","key","tap","preventDefault","toggleState","close","targetState","previousState","performTransition","dispatchEvent","CustomEvent","detail","bubbles","composed","err","fromState","toState","currentAnimation","cancel","updateComplete","animations","createAnimations","finished","icon","config","fromStyles","getStyleForState","toStyles","animate","duration","fill","opacity","transform","isExpanding","baseStyles","maxWidth","maxHeight","borderRadius","hidden","pointerEvents","boxShadow","backdropFilter","minimized","getResponsiveWidth","style","firstUpdated","applyInitialStyles","interval","startWith","take","setupDragPipeline","querySelector","label","initialStyle","Object","assign","webkitBackdropFilter","newState","closeAndAddToNav","race","discover","navComponent","addBoatItem","textContent","trim","title","replace","navItem","then","clientX","clientY","offsetX","offsetY","initialRect","targetLeft","targetTop","clampedLeft","min","clampedTop","newX","newY","toSave","localStorage","setItem","JSON","stringify","header","hasDragged","merge","button","stopPropagation","map","type","touches","startX","startY","left","top","switchMap","move$","end$","deltaX","deltaY","sqrt","calculateDragPosition","finalize","updateAnchor","removeProperty","right","bottom","isRight","isBottom","newAnchor","disconnectedCallback","surfaceElevation","isMinimized","transformOrigin","containerClasses","fixed","flex","html","classMap","ref","badge","cache","__decorateClass","property","String","reflect","prototype","Boolean","customElement"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"boat-DkNUc1UO.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 { cache } from 'lit/directives/cache.js'\nimport { fromEvent, interval, merge, race } from 'rxjs'\nimport { filter, finalize, map, startWith, 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\tposition: relative;\n\t\tz-index: 1000;\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\n\t\t\t\t\t// Validate viewport after resize to ensure boat stays visible\n\t\t\t\t\tconst container = this.containerRef.value\n\t\t\t\t\tif (container) {\n\t\t\t\t\t\tconst rect = container.getBoundingClientRect()\n\t\t\t\t\t\t// Only validate if dimensions are ready\n\t\t\t\t\t\tif (rect.width > 0 && rect.height > 0) {\n\t\t\t\t\t\t\tconst vw = window.innerWidth\n\t\t\t\t\t\t\tconst vh = window.innerHeight\n\n\t\t\t\t\t\t\tconst actualLeft = this.anchor.includes('right') ? vw - this.position.x - rect.width : this.position.x\n\n\t\t\t\t\t\t\tconst actualTop = this.anchor.includes('bottom') ? vh - this.position.y - rect.height : this.position.y\n\n\t\t\t\t\t\t\tlet needsUpdate = false\n\t\t\t\t\t\t\tlet newLeft = actualLeft\n\t\t\t\t\t\t\tlet newTop = actualTop\n\n\t\t\t\t\t\t\tif (actualLeft < 0) {\n\t\t\t\t\t\t\t\tnewLeft = 16\n\t\t\t\t\t\t\t\tneedsUpdate = true\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (actualLeft + rect.width > vw) {\n\t\t\t\t\t\t\t\tnewLeft = vw - rect.width - 16\n\t\t\t\t\t\t\t\tneedsUpdate = true\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (actualTop < 0) {\n\t\t\t\t\t\t\t\tnewTop = 16\n\t\t\t\t\t\t\t\tneedsUpdate = true\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (actualTop + rect.height > vh) {\n\t\t\t\t\t\t\t\tnewTop = vh - rect.height - 16\n\t\t\t\t\t\t\t\tneedsUpdate = true\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tif (needsUpdate) {\n\t\t\t\t\t\t\t\tthis.position.x = this.anchor.includes('right') ? vw - newLeft - rect.width : newLeft\n\n\t\t\t\t\t\t\t\tthis.position.y = this.anchor.includes('bottom') ? vh - newTop - rect.height : newTop\n\n\t\t\t\t\t\t\t\tthis.position.x = Math.max(0, this.position.x)\n\t\t\t\t\t\t\t\tthis.position.y = Math.max(0, this.position.y)\n\n\t\t\t\t\t\t\t\tthis.updateContainerPosition()\n\t\t\t\t\t\t\t\tthis.savePosition()\n\t\t\t\t\t\t\t\tconsole.log(`✨ Boat \"${this.id}\" repositioned after resize:`, this.position)\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\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\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 and wait for render\n\t\tif (toState === 'expanded') {\n\t\t\tthis.isContentVisible = true\n\t\t\tawait this.updateComplete\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// Wait for content fade-out animation before removing from DOM\n\t\t\tif (animations.content) {\n\t\t\t\tawait animations.content.finished\n\t\t\t}\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} else {\n\t\t\t\t// CRITICAL: After expanding, validate viewport bounds\n\t\t\t\t// The expanded boat is much larger and might go outside viewport\n\t\t\t\tconst container = this.containerRef.value\n\t\t\t\tif (container) {\n\t\t\t\t\tconst rect = container.getBoundingClientRect()\n\t\t\t\t\tif (rect.width > 0 && rect.height > 0) {\n\t\t\t\t\t\tconst vw = window.innerWidth\n\t\t\t\t\t\tconst vh = window.innerHeight\n\n\t\t\t\t\t\tconst actualLeft = this.anchor.includes('right') ? vw - this.position.x - rect.width : this.position.x\n\n\t\t\t\t\t\tconst actualTop = this.anchor.includes('bottom') ? vh - this.position.y - rect.height : this.position.y\n\n\t\t\t\t\t\tlet needsUpdate = false\n\t\t\t\t\t\tlet newLeft = actualLeft\n\t\t\t\t\t\tlet newTop = actualTop\n\n\t\t\t\t\t\tif (actualLeft < 0) {\n\t\t\t\t\t\t\tnewLeft = 16\n\t\t\t\t\t\t\tneedsUpdate = true\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (actualLeft + rect.width > vw) {\n\t\t\t\t\t\t\tnewLeft = vw - rect.width - 16\n\t\t\t\t\t\t\tneedsUpdate = true\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (actualTop < 0) {\n\t\t\t\t\t\t\tnewTop = 16\n\t\t\t\t\t\t\tneedsUpdate = true\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (actualTop + rect.height > vh) {\n\t\t\t\t\t\t\tnewTop = vh - rect.height - 16\n\t\t\t\t\t\t\tneedsUpdate = true\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (needsUpdate) {\n\t\t\t\t\t\t\tthis.position.x = this.anchor.includes('right') ? vw - newLeft - rect.width : newLeft\n\n\t\t\t\t\t\t\tthis.position.y = this.anchor.includes('bottom') ? vh - newTop - rect.height : newTop\n\n\t\t\t\t\t\t\tthis.position.x = Math.max(0, this.position.x)\n\t\t\t\t\t\t\tthis.position.y = Math.max(0, this.position.y)\n\n\t\t\t\t\t\t\tthis.updateContainerPosition()\n\t\t\t\t\t\t\tthis.savePosition()\n\t\t\t\t\t\t\tconsole.log(`✨ Boat \"${this.id}\" snapped after expand:`, this.position)\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// Create animations for state transition\n\tprivate createAnimations(fromState: BoatState, toState: BoatState) {\n\t\tconst container = this.containerRef.value\n\t\tconst content = this.contentRef.value\n\t\tconst icon = this.iconRef.value\n\t\tconst animations: { container?: Animation; content?: Animation; icon?: Animation } = {}\n\n\t\tif (!container) return animations\n\n\t\tconst config = this.ANIMATION_CONFIG\n\t\tconst fromStyles = this.getStyleForState(fromState)\n\t\tconst toStyles = this.getStyleForState(toState)\n\n\t\t// Container animation\n\t\tif (toState === 'expanded') {\n\t\t\t// 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 - MUST await this before removing from DOM\n\t\t\tanimations.content = content.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: 'fit',\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.applyInitialStyles()\n\t\tthis.updateContainerPosition()\n\n\t\t// Wait for container to have actual dimensions before validation\n\t\t// Uses pattern from animated-text.ts - poll until dimensions are ready\n\t\tconst container = this.containerRef.value\n\t\tif (container) {\n\t\t\tinterval(10)\n\t\t\t\t.pipe(\n\t\t\t\t\tstartWith(true),\n\t\t\t\t\tfilter(() => {\n\t\t\t\t\t\tconst rect = container.getBoundingClientRect()\n\t\t\t\t\t\treturn rect.width > 0 && rect.height > 0\n\t\t\t\t\t}),\n\t\t\t\t\ttake(1),\n\t\t\t\t\ttakeUntil(this.disconnecting),\n\t\t\t\t)\n\t\t\t\t.subscribe(() => {\n\t\t\t\t\t// Validate and snap to viewport if needed\n\t\t\t\t\tconst rect = container.getBoundingClientRect()\n\t\t\t\t\tconst vw = window.innerWidth\n\t\t\t\t\tconst vh = window.innerHeight\n\n\t\t\t\t\t// Calculate actual position based on anchor\n\t\t\t\t\tconst actualLeft = this.anchor.includes('right') ? vw - this.position.x - rect.width : this.position.x\n\n\t\t\t\t\tconst actualTop = this.anchor.includes('bottom') ? vh - this.position.y - rect.height : this.position.y\n\n\t\t\t\t\t// Check if boat is outside viewport bounds\n\t\t\t\t\tlet needsUpdate = false\n\t\t\t\t\tlet newLeft = actualLeft\n\t\t\t\t\tlet newTop = actualTop\n\n\t\t\t\t\t// Snap to viewport edges if outside (16px padding)\n\t\t\t\t\tif (actualLeft < 0) {\n\t\t\t\t\t\tnewLeft = 16\n\t\t\t\t\t\tneedsUpdate = true\n\t\t\t\t\t}\n\t\t\t\t\tif (actualLeft + rect.width > vw) {\n\t\t\t\t\t\tnewLeft = vw - rect.width - 16\n\t\t\t\t\t\tneedsUpdate = true\n\t\t\t\t\t}\n\t\t\t\t\tif (actualTop < 0) {\n\t\t\t\t\t\tnewTop = 16\n\t\t\t\t\t\tneedsUpdate = true\n\t\t\t\t\t}\n\t\t\t\t\tif (actualTop + rect.height > vh) {\n\t\t\t\t\t\tnewTop = vh - rect.height - 16\n\t\t\t\t\t\tneedsUpdate = true\n\t\t\t\t\t}\n\n\t\t\t\t\t// Update position if boat was outside viewport\n\t\t\t\t\tif (needsUpdate) {\n\t\t\t\t\t\t// Convert back to anchor-relative coordinates\n\t\t\t\t\t\tthis.position.x = this.anchor.includes('right') ? vw - newLeft - rect.width : newLeft\n\n\t\t\t\t\t\tthis.position.y = this.anchor.includes('bottom') ? vh - newTop - rect.height : newTop\n\n\t\t\t\t\t\t// Ensure position is never negative\n\t\t\t\t\t\tthis.position.x = Math.max(0, this.position.x)\n\t\t\t\t\t\tthis.position.y = Math.max(0, this.position.y)\n\n\t\t\t\t\t\tthis.updateContainerPosition()\n\t\t\t\t\t\tthis.savePosition()\n\t\t\t\t\t\tconsole.log(`✨ Boat \"${this.id}\" snapped to viewport edge:`, this.position, this.anchor)\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t}\n\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\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 z-100\">\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=\"containerHigh\"\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 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${cache(\n\t\t\t\t\tthis.isContentVisible\n\t\t\t\t\t\t? html`\n\t\t\t\t\t\t\t\t<schmancy-surface type=\"containerHigh\" class=\"flex-1\" ${ref(this.contentRef)}>\n\t\t\t\t\t\t\t\t\t<slot></slot>\n\t\t\t\t\t\t\t\t</schmancy-surface>\n\t\t\t\t\t\t `\n\t\t\t\t\t\t: html``,\n\t\t\t\t)}\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","constructor","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","container","rect","getBoundingClientRect","width","height","vw","innerWidth","vh","innerHeight","actualLeft","includes","actualTop","needsUpdate","newLeft","newTop","Math","max","updateContainerPosition","savePosition","filter","e","key","tap","preventDefault","toggleState","close","targetState","previousState","performTransition","dispatchEvent","CustomEvent","detail","bubbles","composed","err","fromState","toState","currentAnimation","cancel","updateComplete","animations","createAnimations","finished","icon","config","fromStyles","getStyleForState","toStyles","animate","duration","fill","opacity","transform","isExpanding","baseStyles","maxWidth","maxHeight","borderRadius","hidden","pointerEvents","boxShadow","backdropFilter","minimized","getResponsiveWidth","style","firstUpdated","applyInitialStyles","interval","startWith","take","setupDragPipeline","querySelector","label","initialStyle","Object","assign","webkitBackdropFilter","newState","closeAndAddToNav","race","discover","navComponent","addBoatItem","textContent","trim","title","replace","navItem","then","clientX","clientY","offsetX","offsetY","initialRect","targetLeft","targetTop","clampedLeft","min","clampedTop","newX","newY","toSave","localStorage","setItem","JSON","stringify","header","hasDragged","merge","button","stopPropagation","map","type","touches","startX","startY","left","top","switchMap","move$","end$","deltaX","deltaY","sqrt","calculateDragPosition","finalize","updateAnchor","removeProperty","right","bottom","isRight","isBottom","newAnchor","disconnectedCallback","surfaceElevation","isMinimized","transformOrigin","containerClasses","fixed","flex","html","classMap","ref","badge","cache","__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-DkNUc1UO.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-DJgcI5wr.cjs");
|
|
2
2
|
//# sourceMappingURL=busy.cjs.map
|
package/dist/busy.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import "./spinner-
|
|
1
|
+
import "./spinner-CKm13CKN.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-BpmGFjaR.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-DibPwAjJ.cjs");
|
|
2
2
|
//# sourceMappingURL=card.cjs.map
|
package/dist/card.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import "./media-
|
|
1
|
+
import "./media-BV_1DfcW.js";
|
|
2
2
|
//# sourceMappingURL=card.js.map
|
package/dist/charts.cjs
ADDED
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./pills-MmHyBGQu.cjs");Object.defineProperty(exports,"SchmancyAreaChart",{enumerable:!0,get:()=>e.SchmancyAreaChart}),Object.defineProperty(exports,"SchmancyPills",{enumerable:!0,get:()=>e.SchmancyPills}),exports.catmullRomSpline=e.catmullRomSpline,exports.easeOutCubic=e.easeOutCubic,exports.hexToRgba=e.hexToRgba;
|
|
2
|
+
//# sourceMappingURL=charts.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"charts.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
package/dist/charts.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"charts.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
|
|
@@ -5,9 +5,9 @@ import { classMap as Y } from "lit/directives/class-map.js";
|
|
|
5
5
|
import "rxjs";
|
|
6
6
|
import "rxjs/operators";
|
|
7
7
|
import "lit/directives/style-map.js";
|
|
8
|
-
import { T as J } from "./tailwind.mixin-
|
|
8
|
+
import { T as J } from "./tailwind.mixin-Ddt05Frc.js";
|
|
9
9
|
import { when as Q } from "lit/directives/when.js";
|
|
10
|
-
const K = Symbol("attachableController");
|
|
10
|
+
const K = /* @__PURE__ */ Symbol("attachableController");
|
|
11
11
|
let W;
|
|
12
12
|
f || (W = new MutationObserver((o) => {
|
|
13
13
|
for (const e of o) e.target[K]?.hostConnected();
|
|
@@ -93,7 +93,7 @@ class $ extends x {
|
|
|
93
93
|
}
|
|
94
94
|
}
|
|
95
95
|
n([c({ type: Boolean, reflect: !0 })], $.prototype, "visible", void 0), n([c({ type: Boolean, reflect: !0 })], $.prototype, "inward", void 0);
|
|
96
|
-
const B = Symbol("handledByFocusRing"), te = U`: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}}
|
|
96
|
+
const B = /* @__PURE__ */ Symbol("handledByFocusRing"), te = U`: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}}
|
|
97
97
|
`;
|
|
98
98
|
let P = class extends $ {
|
|
99
99
|
};
|
|
@@ -244,7 +244,7 @@ function z(o) {
|
|
|
244
244
|
function X(o) {
|
|
245
245
|
return o.replace("aria", "aria-").replace(/Elements?/g, "").toLowerCase();
|
|
246
246
|
}
|
|
247
|
-
const C = Symbol("privateIgnoreAttributeChangesFor");
|
|
247
|
+
const C = /* @__PURE__ */ Symbol("privateIgnoreAttributeChangesFor");
|
|
248
248
|
function R(o) {
|
|
249
249
|
return `data-${o}`;
|
|
250
250
|
}
|
|
@@ -260,7 +260,7 @@ function ne(o) {
|
|
|
260
260
|
})(o);
|
|
261
261
|
}
|
|
262
262
|
let M = !1;
|
|
263
|
-
const u = Symbol("internals"), L = Symbol("privateInternals"), F = Symbol("createValidator"), D = Symbol("getValidityAnchor"), q = Symbol("privateValidator"), v = Symbol("privateSyncValidity"), S = Symbol("privateCustomValidationMessage"), A = Symbol("getFormValue"), N = Symbol("getFormState");
|
|
263
|
+
const u = /* @__PURE__ */ Symbol("internals"), L = /* @__PURE__ */ Symbol("privateInternals"), F = /* @__PURE__ */ Symbol("createValidator"), D = /* @__PURE__ */ Symbol("getValidityAnchor"), q = /* @__PURE__ */ Symbol("privateValidator"), v = /* @__PURE__ */ Symbol("privateSyncValidity"), S = /* @__PURE__ */ Symbol("privateCustomValidationMessage"), A = /* @__PURE__ */ Symbol("getFormValue"), N = /* @__PURE__ */ Symbol("getFormState");
|
|
264
264
|
class ce {
|
|
265
265
|
constructor(e) {
|
|
266
266
|
this.getCurrentState = e, this.currentValidity = { validity: {}, validationMessage: "" };
|
|
@@ -523,4 +523,4 @@ h.shadowRootOptions = { ...x.shadowRootOptions, delegatesFocus: !0 }, h.formAsso
|
|
|
523
523
|
export {
|
|
524
524
|
h as S
|
|
525
525
|
};
|
|
526
|
-
//# sourceMappingURL=checkbox-
|
|
526
|
+
//# sourceMappingURL=checkbox-BY4Sn8F2.js.map
|