@mhmo91/schmancy 0.10.28 → 0.10.30
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/custom-elements.json +7 -2
- package/dist/SchmancyElement-BQ4DFufc.js +300 -0
- package/dist/SchmancyElement-BQ4DFufc.js.map +1 -0
- package/dist/SchmancyElement-DhSiMp6Y.cjs +2 -0
- package/dist/SchmancyElement-DhSiMp6Y.cjs.map +1 -0
- package/dist/agent/{flow-3RrZM-e7.js.map → flow-CvG1fLW5.js.map} +1 -1
- package/dist/agent/schmancy.agent.js +7843 -3334
- package/dist/agent/schmancy.agent.js.map +1 -1
- package/dist/agent/schmancy.manifest.json +1 -2
- package/dist/agent/{vendor-material-color-33Mj762T.js.map → vendor-material-color-DcL7ZPxx.js.map} +1 -1
- package/dist/animation-CCOIW4wJ.cjs.map +1 -1
- package/dist/animation-DCznELuT.js.map +1 -1
- package/dist/{area-C_Yvjmad.js → area-BjpUWvzE.js} +7 -7
- package/dist/{area-C_Yvjmad.js.map → area-BjpUWvzE.js.map} +1 -1
- package/dist/area-CgTzkxah.cjs +21 -0
- package/dist/{area-BSVOYQDA.cjs.map → area-CgTzkxah.cjs.map} +1 -1
- package/dist/area.cjs +1 -1
- package/dist/area.js +1 -1
- package/dist/{audio-CxO5a2HL.js → audio-CwBJntnB.js} +1 -1
- package/dist/{audio-CxO5a2HL.js.map → audio-CwBJntnB.js.map} +1 -1
- package/dist/{audio-Cvmemu84.cjs → audio-DISBFOaR.cjs} +1 -1
- package/dist/{audio-Cvmemu84.cjs.map → audio-DISBFOaR.cjs.map} +1 -1
- package/dist/audio.cjs +1 -1
- package/dist/audio.js +2 -2
- package/dist/{autocomplete-B50VXUzw.cjs → autocomplete-DbCUOgWU.cjs} +2 -2
- package/dist/{autocomplete-B50VXUzw.cjs.map → autocomplete-DbCUOgWU.cjs.map} +1 -1
- package/dist/{autocomplete-C6I1mfOT.js → autocomplete-Dy708jem.js} +7 -7
- package/dist/{autocomplete-C6I1mfOT.js.map → autocomplete-Dy708jem.js.map} +1 -1
- package/dist/autocomplete.cjs +1 -1
- package/dist/autocomplete.js +1 -1
- package/dist/avatar.cjs +3 -3
- package/dist/avatar.cjs.map +1 -1
- package/dist/avatar.js +5 -5
- package/dist/avatar.js.map +1 -1
- package/dist/badge.cjs +1 -1
- package/dist/badge.js +1 -1
- package/dist/{boat-DVQBNkk5.cjs → boat-BzZN_iwp.cjs} +11 -11
- package/dist/{boat-DVQBNkk5.cjs.map → boat-BzZN_iwp.cjs.map} +1 -1
- package/dist/{boat-C94QZ4Zt.js → boat-Z4Lzl3ai.js} +8 -8
- package/dist/{boat-C94QZ4Zt.js.map → boat-Z4Lzl3ai.js.map} +1 -1
- package/dist/boat.cjs +1 -1
- package/dist/boat.js +1 -1
- package/dist/breadcrumb.cjs +4 -4
- package/dist/breadcrumb.cjs.map +1 -1
- package/dist/breadcrumb.js +7 -7
- package/dist/breadcrumb.js.map +1 -1
- package/dist/{busy--bNb42rM.js → busy-CRFGPkcP.js} +7 -7
- package/dist/{busy--bNb42rM.js.map → busy-CRFGPkcP.js.map} +1 -1
- package/dist/{busy-DuxFvEkY.cjs → busy-Cu-47DfN.cjs} +8 -8
- package/dist/{busy-DuxFvEkY.cjs.map → busy-Cu-47DfN.cjs.map} +1 -1
- package/dist/busy.cjs +1 -1
- package/dist/busy.js +1 -1
- package/dist/{button-DAFZ5A4O.cjs → button-CN_JTjRd.cjs} +15 -15
- package/dist/{button-DAFZ5A4O.cjs.map → button-CN_JTjRd.cjs.map} +1 -1
- package/dist/{button-B7b9L_h5.js → button-D_USF3tt.js} +10 -10
- package/dist/{button-B7b9L_h5.js.map → button-D_USF3tt.js.map} +1 -1
- package/dist/button.cjs +19 -19
- package/dist/button.cjs.map +1 -1
- package/dist/button.js +9 -9
- package/dist/button.js.map +1 -1
- package/dist/{card-DZPd24Sn.cjs → card-D4P5_gg9.cjs} +10 -10
- package/dist/{card-DZPd24Sn.cjs.map → card-D4P5_gg9.cjs.map} +1 -1
- package/dist/{card-ixzxOW-Q.js → card-DpN5KIYc.js} +15 -15
- package/dist/{card-ixzxOW-Q.js.map → card-DpN5KIYc.js.map} +1 -1
- package/dist/card.cjs +1 -1
- package/dist/card.js +1 -1
- package/dist/{checkbox-DdGpepTh.js → checkbox-C8ChypKf.js} +5 -5
- package/dist/{checkbox-DdGpepTh.js.map → checkbox-C8ChypKf.js.map} +1 -1
- package/dist/{checkbox-Bi_Fm2mf.cjs → checkbox-hhXVXDV1.cjs} +3 -3
- package/dist/{checkbox-Bi_Fm2mf.cjs.map → checkbox-hhXVXDV1.cjs.map} +1 -1
- package/dist/checkbox.cjs +1 -1
- package/dist/checkbox.js +1 -1
- package/dist/{chips-DLTynyVB.js → chips-B8R9q4yl.js} +27 -27
- package/dist/{chips-DLTynyVB.js.map → chips-B8R9q4yl.js.map} +1 -1
- package/dist/{chips-DWQMZErr.cjs → chips-BTLlO_Ow.cjs} +18 -18
- package/dist/{chips-DWQMZErr.cjs.map → chips-BTLlO_Ow.cjs.map} +1 -1
- package/dist/chips.cjs +1 -1
- package/dist/chips.js +2 -2
- package/dist/connectivity.cjs +7 -7
- package/dist/connectivity.cjs.map +1 -1
- package/dist/connectivity.js +5 -5
- package/dist/connectivity.js.map +1 -1
- package/dist/content-drawer.cjs +1 -1
- package/dist/content-drawer.js +1 -1
- package/dist/cursor-glow-Ah7VXSj7.js.map +1 -1
- package/dist/cursor-glow-Bulq-38P.cjs.map +1 -1
- package/dist/{date-range-DQpmMJH-.cjs → date-range-9h6ZSkZb.cjs} +3 -3
- package/dist/{date-range-DQpmMJH-.cjs.map → date-range-9h6ZSkZb.cjs.map} +1 -1
- package/dist/{date-range-CJ6MiTpF.js → date-range-CS96dWMh.js} +7 -7
- package/dist/{date-range-CJ6MiTpF.js.map → date-range-CS96dWMh.js.map} +1 -1
- package/dist/date-range-inline-CAxnHA-l.cjs +43 -0
- package/dist/{date-range-inline-nPWIs-3C.cjs.map → date-range-inline-CAxnHA-l.cjs.map} +1 -1
- package/dist/{date-range-inline-Ho3CENTh.js → date-range-inline-DCXdGeRv.js} +5 -5
- package/dist/{date-range-inline-Ho3CENTh.js.map → date-range-inline-DCXdGeRv.js.map} +1 -1
- package/dist/date-range-inline.cjs +1 -1
- package/dist/date-range-inline.js +1 -1
- package/dist/date-range.cjs +1 -1
- package/dist/date-range.js +1 -1
- package/dist/delay.cjs +4 -4
- package/dist/delay.cjs.map +1 -1
- package/dist/delay.js +6 -6
- package/dist/delay.js.map +1 -1
- package/dist/{details-BnRWMZdt.cjs → details-BC0IObBd.cjs} +2 -2
- package/dist/{details-BnRWMZdt.cjs.map → details-BC0IObBd.cjs.map} +1 -1
- package/dist/{details-CcMTvYo7.js → details-Pgd0slKn.js} +11 -11
- package/dist/{details-CcMTvYo7.js.map → details-Pgd0slKn.js.map} +1 -1
- package/dist/details.cjs +1 -1
- package/dist/details.js +1 -1
- package/dist/{directives-DgPbz0lQ.js → directives-B-RT9R2u.js} +3 -3
- package/dist/{directives-DgPbz0lQ.js.map → directives-B-RT9R2u.js.map} +1 -1
- package/dist/{directives-BkSqmLBV.cjs → directives-CFWacnWU.cjs} +1 -1
- package/dist/{directives-BkSqmLBV.cjs.map → directives-CFWacnWU.cjs.map} +1 -1
- package/dist/directives.cjs +1 -1
- package/dist/directives.js +2 -2
- package/dist/discovery.service-CIa3Eeuk.cjs.map +1 -1
- package/dist/discovery.service-DZFxtRwW.js.map +1 -1
- package/dist/{divider-CZCj0ioH.js → divider-BMzm0lOz.js} +5 -5
- package/dist/{divider-CZCj0ioH.js.map → divider-BMzm0lOz.js.map} +1 -1
- package/dist/{divider-C6yJSL1c.cjs → divider-D1OzaRAQ.cjs} +3 -3
- package/dist/{divider-C6yJSL1c.cjs.map → divider-D1OzaRAQ.cjs.map} +1 -1
- package/dist/divider.cjs +1 -1
- package/dist/divider.js +1 -1
- package/dist/dropdown.cjs +4 -4
- package/dist/dropdown.cjs.map +1 -1
- package/dist/dropdown.js +8 -8
- package/dist/dropdown.js.map +1 -1
- package/dist/{expand-Cc6ogXsR.js → expand-C0Uqxfv0.js} +10 -10
- package/dist/{expand-Cc6ogXsR.js.map → expand-C0Uqxfv0.js.map} +1 -1
- package/dist/{expand-D4EhwOYh.cjs → expand-CiQkzth9.cjs} +3 -3
- package/dist/{expand-D4EhwOYh.cjs.map → expand-CiQkzth9.cjs.map} +1 -1
- package/dist/expand.cjs +1 -1
- package/dist/expand.js +1 -1
- package/dist/float-Bu_IfKRd.cjs +1 -0
- package/dist/{float-B8EPc_OG.cjs.map → float-Bu_IfKRd.cjs.map} +1 -1
- package/dist/{float-BvI3HTtB.js → float-DwBMXhek.js} +2 -2
- package/dist/{float-BvI3HTtB.js.map → float-DwBMXhek.js.map} +1 -1
- package/dist/float.cjs +1 -1
- package/dist/float.js +1 -1
- package/dist/{form-FtYtZScl.js → form-B9Je2W_m.js} +15 -95
- package/dist/form-B9Je2W_m.js.map +1 -0
- package/dist/{form-SHg5FLsd.cjs → form-BnbAVZyf.cjs} +4 -19
- package/dist/form-BnbAVZyf.cjs.map +1 -0
- package/dist/form.cjs +18 -1
- package/dist/form.cjs.map +1 -0
- package/dist/form.js +93 -9
- package/dist/form.js.map +1 -0
- package/dist/gravity-6pL6CfIr.cjs.map +1 -1
- package/dist/gravity-sVK3zGBF.js.map +1 -1
- package/dist/handover/agent-runtime-followups.md +1 -1
- package/dist/handover/agent-runtime-v1.md +3 -3
- package/dist/hashContent-BqU6v1Xr.js.map +1 -1
- package/dist/hashContent-iRZJJWtE.cjs.map +1 -1
- package/dist/{icon-CgIXAvKI.cjs → icons-BfWQl5k5.cjs} +6 -6
- package/dist/icons-BfWQl5k5.cjs.map +1 -0
- package/dist/{icon-B1eZr2ZL.js → icons-DJHPXKgR.js} +4 -4
- package/dist/{icon-CgIXAvKI.cjs.map → icons-DJHPXKgR.js.map} +1 -1
- package/dist/icons.cjs +1 -1
- package/dist/icons.js +1 -1
- package/dist/{iframe-CmpAZc61.js → iframe-DLz8ll0s.js} +5 -5
- package/dist/{iframe-CmpAZc61.js.map → iframe-DLz8ll0s.js.map} +1 -1
- package/dist/{iframe-BO3BpRLH.cjs → iframe-UtczJypj.cjs} +5 -5
- package/dist/{iframe-BO3BpRLH.cjs.map → iframe-UtczJypj.cjs.map} +1 -1
- package/dist/iframe.cjs +1 -1
- package/dist/iframe.js +1 -1
- package/dist/index.cjs +1 -1
- package/dist/index.js +69 -69
- package/dist/{input-_Hft9vov.js → input-AQbBEj2f.js} +15 -15
- package/dist/{input-_Hft9vov.js.map → input-AQbBEj2f.js.map} +1 -1
- package/dist/{input-5YL2oUBr.cjs → input-Pp6A1m3s.cjs} +2 -2
- package/dist/{input-5YL2oUBr.cjs.map → input-Pp6A1m3s.cjs.map} +1 -1
- package/dist/{input-chip-DKMNpcED.cjs → input-chip-B5vYNuEm.cjs} +9 -9
- package/dist/{input-chip-DKMNpcED.cjs.map → input-chip-B5vYNuEm.cjs.map} +1 -1
- package/dist/{input-chip-BNTojQT6.js → input-chip-Bbs_gXOB.js} +10 -10
- package/dist/{input-chip-BNTojQT6.js.map → input-chip-Bbs_gXOB.js.map} +1 -1
- package/dist/input.cjs +1 -1
- package/dist/input.js +1 -1
- package/dist/json.cjs +3 -3
- package/dist/json.cjs.map +1 -1
- package/dist/json.js +5 -5
- package/dist/json.js.map +1 -1
- package/dist/kbd.cjs +2 -2
- package/dist/kbd.cjs.map +1 -1
- package/dist/kbd.js +5 -5
- package/dist/kbd.js.map +1 -1
- package/dist/{layout-DSAjo92m.js → layout-9K1zxhZn.js} +1 -1
- package/dist/{layout-DSAjo92m.js.map → layout-9K1zxhZn.js.map} +1 -1
- package/dist/{layout-eXb9wjDh.cjs → layout-B0dct--7.cjs} +1 -1
- package/dist/{layout-eXb9wjDh.cjs.map → layout-B0dct--7.cjs.map} +1 -1
- package/dist/layout.cjs +2 -2
- package/dist/layout.cjs.map +1 -1
- package/dist/layout.js +7 -7
- package/dist/layout.js.map +1 -1
- package/dist/lazy-CayEFyC3.cjs.map +1 -1
- package/dist/lazy-D-bO2r4m.js.map +1 -1
- package/dist/{lightbox-t4dvb8_A.cjs → lightbox-D_EizrG3.cjs} +21 -21
- package/dist/{lightbox-t4dvb8_A.cjs.map → lightbox-D_EizrG3.cjs.map} +1 -1
- package/dist/{lightbox-CKlYcnHV.js → lightbox-DmJTs2My.js} +9 -9
- package/dist/{lightbox-CKlYcnHV.js.map → lightbox-DmJTs2My.js.map} +1 -1
- package/dist/lightbox.cjs +1 -1
- package/dist/lightbox.js +1 -1
- package/dist/{list-21mWtDKg.cjs → list-BSn8czyO.cjs} +5 -5
- package/dist/{list-21mWtDKg.cjs.map → list-BSn8czyO.cjs.map} +1 -1
- package/dist/{list-B6QhxgRJ.js → list-DjSSRZxF.js} +12 -12
- package/dist/{list-B6QhxgRJ.js.map → list-DjSSRZxF.js.map} +1 -1
- package/dist/list.cjs +1 -1
- package/dist/list.js +1 -1
- package/dist/magnetic-B2VKNfDu.js.map +1 -1
- package/dist/magnetic-MQ3HMHJi.cjs.map +1 -1
- package/dist/{menu-C5qcgMnw.js → menu-CCVEde6u.js} +7 -7
- package/dist/{menu-C5qcgMnw.js.map → menu-CCVEde6u.js.map} +1 -1
- package/dist/menu-DTNnq7j_.cjs +23 -0
- package/dist/{menu-Cuxt5K4Y.cjs.map → menu-DTNnq7j_.cjs.map} +1 -1
- package/dist/menu.cjs +1 -1
- package/dist/menu.js +1 -1
- package/dist/mixins-BYfSDvbP.js +412 -0
- package/dist/mixins-BYfSDvbP.js.map +1 -0
- package/dist/mixins-YQI9JogS.cjs +245 -0
- package/dist/mixins-YQI9JogS.cjs.map +1 -0
- package/dist/mixins.cjs +1 -1
- package/dist/mixins.js +3 -2
- 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.cjs +10 -10
- package/dist/navigation-rail.cjs.map +1 -1
- package/dist/navigation-rail.js +15 -15
- package/dist/navigation-rail.js.map +1 -1
- package/dist/{notification-CDKBKh63.js → notification-BNEuu3Q2.js} +7 -7
- package/dist/{notification-CDKBKh63.js.map → notification-BNEuu3Q2.js.map} +1 -1
- package/dist/notification-RhaYvA1I.cjs +24 -0
- package/dist/{notification-CcNoBFEJ.cjs.map → notification-RhaYvA1I.cjs.map} +1 -1
- package/dist/notification.cjs +1 -1
- package/dist/notification.js +1 -1
- package/dist/{option-BWfmDJvm.js → option-BLMYRy5C.js} +6 -6
- package/dist/{option-BWfmDJvm.js.map → option-BLMYRy5C.js.map} +1 -1
- package/dist/{option-DejeqOad.cjs → option-Dk7UFFlr.cjs} +5 -5
- package/dist/{option-DejeqOad.cjs.map → option-Dk7UFFlr.cjs.map} +1 -1
- package/dist/option.cjs +1 -1
- package/dist/option.js +1 -1
- package/dist/overlay-BbntqsVm.cjs +43 -0
- package/dist/overlay-BbntqsVm.cjs.map +1 -0
- package/dist/{overlay-D3c_NY18.js → overlay-CujzmLxg.js} +93 -144
- package/dist/overlay-CujzmLxg.js.map +1 -0
- package/dist/overlay-stack-Bdr9lOqi.cjs.map +1 -1
- package/dist/overlay-stack-D2rgxQLh.js.map +1 -1
- package/dist/overlay.cjs +1 -1
- package/dist/overlay.confirm-body-CMge0LP5.cjs +70 -0
- package/dist/overlay.confirm-body-CMge0LP5.cjs.map +1 -0
- package/dist/{overlay.confirm-body-B_v0ivkn.js → overlay.confirm-body-CRk4MvKh.js} +15 -27
- package/dist/overlay.confirm-body-CRk4MvKh.js.map +1 -0
- package/dist/overlay.js +3 -3
- package/dist/{overlay.service-B3FjXCqc.js → overlay.service-DnT4SBlJ.js} +31 -27
- package/dist/{overlay.service-B3FjXCqc.js.map → overlay.service-DnT4SBlJ.js.map} +1 -1
- package/dist/overlay.service-Dq5XtSEL.cjs +1 -0
- package/dist/{overlay.service-BkSeqXIv.cjs.map → overlay.service-Dq5XtSEL.cjs.map} +1 -1
- package/dist/{progress-6_rb3Ah9.cjs → progress-Bqd4DdOQ.cjs} +7 -7
- package/dist/{progress-6_rb3Ah9.cjs.map → progress-Bqd4DdOQ.cjs.map} +1 -1
- package/dist/{progress-CFcmO0wv.js → progress-Cu_wh6Sl.js} +10 -10
- package/dist/{progress-CFcmO0wv.js.map → progress-Cu_wh6Sl.js.map} +1 -1
- package/dist/progress.cjs +1 -1
- package/dist/progress.js +1 -1
- package/dist/radio-group-C8rUbYL6.cjs +19 -0
- package/dist/{radio-group-_WZg8EKM.cjs.map → radio-group-C8rUbYL6.cjs.map} +1 -1
- package/dist/{radio-group-Bd8y9QpX.js → radio-group-Duzgx17I.js} +7 -7
- package/dist/{radio-group-Bd8y9QpX.js.map → radio-group-Duzgx17I.js.map} +1 -1
- package/dist/radio-group.cjs +1 -1
- package/dist/radio-group.js +1 -1
- package/dist/range.cjs +2 -2
- package/dist/range.cjs.map +1 -1
- package/dist/range.js +5 -5
- package/dist/range.js.map +1 -1
- package/dist/reduced-motion-D-L12p7G.js.map +1 -1
- package/dist/reduced-motion-Ds-HjMzn.cjs.map +1 -1
- package/dist/rxjs-utils-Csnks202.cjs.map +1 -1
- package/dist/rxjs-utils-d-ivVN84.js.map +1 -1
- package/dist/search-DPKoC-dT.cjs.map +1 -1
- package/dist/search-MvIBA93K.js.map +1 -1
- package/dist/{select-Czpl1ztD.js → select-CzCv1f1c.js} +6 -6
- package/dist/{select-Czpl1ztD.js.map → select-CzCv1f1c.js.map} +1 -1
- package/dist/{select-BaioT3yY.cjs → select-DdqEsfnG.cjs} +2 -2
- package/dist/{select-BaioT3yY.cjs.map → select-DdqEsfnG.cjs.map} +1 -1
- package/dist/select.cjs +1 -1
- package/dist/select.js +1 -1
- package/dist/skeleton.cjs +2 -2
- package/dist/skeleton.cjs.map +1 -1
- package/dist/skeleton.js +5 -5
- package/dist/skeleton.js.map +1 -1
- package/dist/skills/form.md +34 -0
- package/dist/skills/schmancy/form.md +34 -0
- package/dist/slider.cjs +7 -7
- package/dist/slider.cjs.map +1 -1
- package/dist/slider.js +6 -6
- package/dist/slider.js.map +1 -1
- package/dist/{sound.service-v_jqCkos.js → sound.service-BOWTBG16.js} +1 -1
- package/dist/{sound.service-v_jqCkos.js.map → sound.service-BOWTBG16.js.map} +1 -1
- package/dist/{sound.service-DVJZb9ox.cjs → sound.service-BwIzAFQx.cjs} +1 -1
- package/dist/{sound.service-DVJZb9ox.cjs.map → sound.service-BwIzAFQx.cjs.map} +1 -1
- package/dist/{splash-screen-YtTVkJg8.js → splash-screen-Dj-zuGuB.js} +6 -6
- package/dist/{splash-screen-YtTVkJg8.js.map → splash-screen-Dj-zuGuB.js.map} +1 -1
- package/dist/splash-screen-_KhxgneW.cjs +41 -0
- package/dist/{splash-screen-3FtgdVy3.cjs.map → splash-screen-_KhxgneW.cjs.map} +1 -1
- package/dist/splash-screen.cjs +1 -1
- package/dist/splash-screen.js +1 -1
- package/dist/src-BSjgxN07.cjs +263 -0
- package/dist/{src-AYRNg63f.cjs.map → src-BSjgxN07.cjs.map} +1 -1
- package/dist/{src-DKMEgT2z.js → src-Curgs4Yp.js} +83 -83
- package/dist/{src-DKMEgT2z.js.map → src-Curgs4Yp.js.map} +1 -1
- package/dist/state-BthYuA3T.cjs +1 -0
- package/dist/state-BthYuA3T.cjs.map +1 -0
- package/dist/{state-CHbIt2Dw.js → state-E0bVrZ7q.js} +293 -279
- package/dist/state-E0bVrZ7q.js.map +1 -0
- package/dist/state.cjs +1 -1
- package/dist/state.js +3 -3
- package/dist/steps.cjs +10 -10
- package/dist/steps.cjs.map +1 -1
- package/dist/steps.js +9 -9
- package/dist/steps.js.map +1 -1
- package/dist/{surface-CVxyQPln.js → surface-C2TIedTq.js} +4 -4
- package/dist/{surface-CVxyQPln.js.map → surface-C2TIedTq.js.map} +1 -1
- package/dist/surface-D-GqzyLn.cjs +7 -0
- package/dist/{surface-BNvxLEDN.cjs.map → surface-D-GqzyLn.cjs.map} +1 -1
- package/dist/surface.cjs +1 -1
- package/dist/surface.js +1 -1
- package/dist/switch.cjs +2 -2
- package/dist/switch.cjs.map +1 -1
- package/dist/switch.js +6 -6
- package/dist/switch.js.map +1 -1
- package/dist/table.cjs +11 -11
- package/dist/table.cjs.map +1 -1
- package/dist/table.js +10 -10
- package/dist/table.js.map +1 -1
- package/dist/{tabs-CnPXvZuZ.js → tabs-CLRVe23a.js} +11 -11
- package/dist/{tabs-CnPXvZuZ.js.map → tabs-CLRVe23a.js.map} +1 -1
- package/dist/{tabs-DTU7748z.cjs → tabs-C_493iod.cjs} +4 -4
- package/dist/{tabs-DTU7748z.cjs.map → tabs-C_493iod.cjs.map} +1 -1
- package/dist/tabs.cjs +1 -1
- package/dist/tabs.js +1 -1
- package/dist/teleport.cjs +1 -1
- package/dist/teleport.js +1 -1
- package/dist/{textarea-mQPsppmd.js → textarea-BWEyOtPy.js} +9 -9
- package/dist/{textarea-mQPsppmd.js.map → textarea-BWEyOtPy.js.map} +1 -1
- package/dist/textarea-CICgd2oP.cjs +43 -0
- package/dist/{textarea-Bqth6Q8P.cjs.map → textarea-CICgd2oP.cjs.map} +1 -1
- package/dist/textarea.cjs +1 -1
- package/dist/textarea.js +1 -1
- package/dist/{theme-BJqpv4cG.js → theme-Bfg_H2AF.js} +12 -12
- package/dist/{theme-BJqpv4cG.js.map → theme-Bfg_H2AF.js.map} +1 -1
- package/dist/theme-D7zOJiyg.cjs +181 -0
- package/dist/{theme-D4HGKt7N.cjs.map → theme-D7zOJiyg.cjs.map} +1 -1
- package/dist/{theme-button-Jap7G_IH.js → theme-button-C53GdQER.js} +4 -4
- package/dist/{theme-button-Jap7G_IH.js.map → theme-button-C53GdQER.js.map} +1 -1
- package/dist/theme-button-DgeBcqFm.cjs +8 -0
- package/dist/{theme-button-LP-Dgr17.cjs.map → theme-button-DgeBcqFm.cjs.map} +1 -1
- package/dist/theme-button.cjs +1 -1
- package/dist/theme-button.js +1 -1
- package/dist/theme.cjs +1 -1
- package/dist/theme.interface-CSt7JUBD.cjs.map +1 -1
- package/dist/theme.interface-odQEpZZH.js.map +1 -1
- package/dist/theme.js +3 -3
- package/dist/{theme.service-Bh08uOSJ.js → theme.service-BqDuioYc.js} +1 -1
- package/dist/{theme.service-Bh08uOSJ.js.map → theme.service-BqDuioYc.js.map} +1 -1
- package/dist/{theme.service-Y-e8b331.cjs → theme.service-C3PoISGd.cjs} +1 -1
- package/dist/{theme.service-Y-e8b331.cjs.map → theme.service-C3PoISGd.cjs.map} +1 -1
- package/dist/tooltip.cjs.map +1 -1
- package/dist/tooltip.js.map +1 -1
- package/dist/tree.cjs +3 -3
- package/dist/tree.cjs.map +1 -1
- package/dist/tree.js +4 -4
- package/dist/tree.js.map +1 -1
- package/dist/types.cjs.map +1 -1
- package/dist/types.js.map +1 -1
- package/dist/typewriter.cjs.map +1 -1
- package/dist/typewriter.js.map +1 -1
- package/dist/{typography-Bc4MmSal.cjs → typography-B19fJ5YT.cjs} +4 -4
- package/dist/{typography-Bc4MmSal.cjs.map → typography-B19fJ5YT.cjs.map} +1 -1
- package/dist/{typography-BJMm6b0b.js → typography-CzbQv-X0.js} +10 -10
- package/dist/{typography-BJMm6b0b.js.map → typography-CzbQv-X0.js.map} +1 -1
- package/dist/typography.cjs +1 -1
- package/dist/typography.js +1 -1
- package/dist/utils-DTa3QHxk.cjs.map +1 -1
- package/dist/utils-H8wNknWC.js.map +1 -1
- package/dist/visually-hidden.cjs +2 -2
- package/dist/visually-hidden.cjs.map +1 -1
- package/dist/visually-hidden.js +4 -4
- package/dist/visually-hidden.js.map +1 -1
- package/dist/window-DXB53PuA.cjs +59 -0
- package/dist/{window-CNu_WnsY.cjs.map → window-DXB53PuA.cjs.map} +1 -1
- package/dist/{window-DZTjkE24.js → window-DpctMXiy.js} +9 -9
- package/dist/{window-DZTjkE24.js.map → window-DpctMXiy.js.map} +1 -1
- package/dist/window.cjs +1 -1
- package/dist/window.js +1 -1
- package/package.json +1 -1
- package/skills/schmancy/form.md +34 -0
- package/src/form/form.ts +5 -1
- package/src/overlay/overlay.animations.ts +0 -29
- package/src/overlay/overlay.component.ts +30 -38
- package/src/overlay/overlay.confirm-body.ts +3 -15
- package/src/overlay/overlay.layout.ts +11 -53
- package/src/overlay/overlay.stack.test.ts +113 -0
- package/src/overlay/overlay.types.ts +17 -11
- package/src/state/active-host.ts +50 -1
- package/src/state/index.ts +50 -11
- package/src/state/schmancy-context.ts +97 -88
- package/src/surface/surface.styles.ts +14 -10
- package/types/src/form/form.d.ts +1 -0
- package/types/src/overlay/overlay.confirm-body.d.ts +1 -1
- package/types/src/overlay/overlay.layout.d.ts +10 -30
- package/types/src/overlay/overlay.stack.test.d.ts +1 -0
- package/types/src/overlay/overlay.types.d.ts +17 -11
- package/types/src/state/active-host.d.ts +3 -0
- package/types/src/state/index.d.ts +16 -2
- package/types/src/state/schmancy-context.d.ts +2 -2
- package/dist/active-host-BP0zy_Y9.js +0 -63
- package/dist/active-host-BP0zy_Y9.js.map +0 -1
- package/dist/active-host-jH3iloCR.cjs +0 -1
- package/dist/active-host-jH3iloCR.cjs.map +0 -1
- package/dist/agent/overlay.confirm-body-BZoUgkdK.js +0 -4574
- package/dist/agent/overlay.confirm-body-BZoUgkdK.js.map +0 -1
- package/dist/area-BSVOYQDA.cjs +0 -21
- package/dist/date-range-inline-nPWIs-3C.cjs +0 -43
- package/dist/float-B8EPc_OG.cjs +0 -1
- package/dist/form-FtYtZScl.js.map +0 -1
- package/dist/form-SHg5FLsd.cjs.map +0 -1
- package/dist/icon-B1eZr2ZL.js.map +0 -1
- package/dist/menu-Cuxt5K4Y.cjs +0 -23
- package/dist/mixins-8dT5j6CS.js +0 -627
- package/dist/mixins-8dT5j6CS.js.map +0 -1
- package/dist/mixins-BF3Vj8_c.cjs +0 -242
- package/dist/mixins-BF3Vj8_c.cjs.map +0 -1
- package/dist/notification-CcNoBFEJ.cjs +0 -24
- package/dist/overlay-D3c_NY18.js.map +0 -1
- package/dist/overlay-Dv2utO4C.cjs +0 -43
- package/dist/overlay-Dv2utO4C.cjs.map +0 -1
- package/dist/overlay.confirm-body-B2ntyquG.cjs +0 -79
- package/dist/overlay.confirm-body-B2ntyquG.cjs.map +0 -1
- package/dist/overlay.confirm-body-B_v0ivkn.js.map +0 -1
- package/dist/overlay.service-BkSeqXIv.cjs +0 -1
- package/dist/radio-group-_WZg8EKM.cjs +0 -19
- package/dist/splash-screen-3FtgdVy3.cjs +0 -41
- package/dist/src-AYRNg63f.cjs +0 -263
- package/dist/state-CHbIt2Dw.js.map +0 -1
- package/dist/state-DcGj-pJJ.cjs +0 -1
- package/dist/state-DcGj-pJJ.cjs.map +0 -1
- package/dist/surface-BNvxLEDN.cjs +0 -7
- package/dist/textarea-Bqth6Q8P.cjs +0 -43
- package/dist/theme-D4HGKt7N.cjs +0 -181
- package/dist/theme-button-LP-Dgr17.cjs +0 -8
- package/dist/window-CNu_WnsY.cjs +0 -59
- /package/dist/agent/{flow-3RrZM-e7.js → flow-CvG1fLW5.js} +0 -0
- /package/dist/agent/{vendor-material-color-33Mj762T.js → vendor-material-color-DcL7ZPxx.js} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"audio-CxO5a2HL.js","names":[],"sources":["../src/audio/emotional-sounds.ts"],"sourcesContent":["/**\n * Schmancy Emotional Sound Library\n *\n * A curated collection of soft, elegant sounds organized by emotional categories.\n * Each sound is designed to be non-intrusive, emotionally evocative, and beautiful.\n *\n * Inspired by the gentle sounds of nature - soft air, gentle chimes, and warm tones.\n *\n * @example\n * ```typescript\n * import { $sounds } from '@schmancy/audio'\n *\n * // Play a feeling\n * $sounds.play('joyful')\n * $sounds.play('relieved')\n * $sounds.play('curious')\n *\n * // Adjust volume\n * $sounds.setVolume(0.2)\n *\n * // Mute/unmute\n * $sounds.mute()\n * $sounds.unmute()\n * ```\n */\n\n// ============================================================================\n// TYPES\n// ============================================================================\n\n/** Happy / Pleasant feelings */\nexport type HappyFeeling =\n | 'joyful' | 'content' | 'excited' | 'proud' | 'hopeful'\n | 'relieved' | 'grateful' | 'peaceful' | 'playful' | 'amused'\n | 'curious' | 'inspired' | 'confident' | 'loved' | 'comforted' | 'energized'\n | 'celebrated'\n\n/** Sad / Low feelings */\nexport type SadFeeling =\n | 'sad' | 'lonely' | 'disappointed' | 'heartbroken' | 'grieving'\n | 'hopeless' | 'empty' | 'discouraged' | 'melancholic' | 'homesick'\n | 'hurt' | 'miserable' | 'regretful' | 'ashamed' | 'inferior'\n\n/** Anxious / Fearful feelings */\nexport type AnxiousFeeling =\n | 'anxious' | 'worried' | 'afraid' | 'terrified' | 'panicked'\n | 'nervous' | 'uneasy' | 'insecure' | 'overwhelmed' | 'stressed'\n | 'tense' | 'apprehensive' | 'startled' | 'suspicious' | 'vulnerable'\n\n/** Angry / Frustrated feelings */\nexport type AngryFeeling =\n | 'annoyed' | 'irritated' | 'frustrated' | 'angry' | 'enraged'\n | 'bitter' | 'resentful' | 'jealous' | 'envious' | 'indignant'\n | 'impatient' | 'hostile' | 'contemptuous'\n\n/** Tired / Drained feelings */\nexport type TiredFeeling =\n | 'tired' | 'exhausted' | 'drained' | 'burnedOut' | 'numb'\n | 'bored' | 'unmotivated' | 'apathetic' | 'restless'\n\n/** Calm / Grounded feelings */\nexport type CalmFeeling =\n | 'calm' | 'relaxed' | 'atEase' | 'balanced' | 'stable'\n | 'secure' | 'safe' | 'centered' | 'grounded' | 'accepting'\n\n/** Connected / Social feelings */\nexport type ConnectedFeeling =\n | 'connected' | 'accepted' | 'included' | 'belonging' | 'appreciated'\n | 'valued' | 'respected' | 'supported' | 'protective' | 'compassionate' | 'empathetic'\n\n/** Mixed / Complicated feelings */\nexport type MixedFeeling =\n | 'conflicted' | 'confused' | 'ambivalent' | 'nostalgic' | 'guilty'\n | 'embarrassed' | 'surprised' | 'shocked' | 'awestruck' | 'skeptical'\n\n/** All feelings */\nexport type Feeling =\n | HappyFeeling | SadFeeling | AnxiousFeeling | AngryFeeling\n | TiredFeeling | CalmFeeling | ConnectedFeeling | MixedFeeling\n\n// FeelingCategory is defined in ../types/mood-audio.types.ts and re-exported\n// from ./index.ts — the canonical source.\n\n// ============================================================================\n// SOUND GENERATOR\n// ============================================================================\n\n/**\n * Emotional Sound Generator\n * Creates soft, beautiful sounds using Web Audio API\n */\nexport class EmotionalSoundGenerator {\n private audioContext: AudioContext | null = null\n private volume = 0.15\n private muted = false\n\n private getContext(): AudioContext {\n if (!this.audioContext) {\n const AudioContextClass = window.AudioContext || (window as any).webkitAudioContext\n this.audioContext = new AudioContextClass()\n }\n // Resume if suspended (autoplay policy)\n if (this.audioContext.state === 'suspended') {\n this.audioContext.resume()\n }\n return this.audioContext\n }\n\n // ==========================================================================\n // CORE SOUND PRIMITIVES\n // ==========================================================================\n\n /** Soft air puff - the foundation of our sound palette */\n private puff(startTime: number, duration: number, freq: number, vol: number): void {\n const ctx = this.getContext()\n const bufferSize = Math.floor(ctx.sampleRate * duration)\n const buffer = ctx.createBuffer(1, bufferSize, ctx.sampleRate)\n const data = buffer.getChannelData(0)\n\n for (let i = 0; i < bufferSize; i++) {\n data[i] = Math.random() * 2 - 1\n }\n\n const noise = ctx.createBufferSource()\n noise.buffer = buffer\n\n const filter = ctx.createBiquadFilter()\n filter.type = 'bandpass'\n filter.frequency.value = freq\n filter.Q.value = 0.7\n\n const gain = ctx.createGain()\n gain.gain.setValueAtTime(0, startTime)\n gain.gain.linearRampToValueAtTime(vol * this.volume, startTime + 0.015)\n gain.gain.exponentialRampToValueAtTime(0.001, startTime + duration)\n\n noise.connect(filter).connect(gain).connect(ctx.destination)\n noise.start(startTime)\n noise.stop(startTime + duration)\n }\n\n /** Gentle tone with envelope */\n private tone(\n startTime: number,\n duration: number,\n freq: number,\n vol: number,\n type: OscillatorType = 'sine',\n freqEnd?: number\n ): void {\n const ctx = this.getContext()\n const osc = ctx.createOscillator()\n const gain = ctx.createGain()\n\n osc.type = type\n osc.frequency.setValueAtTime(freq, startTime)\n if (freqEnd) {\n osc.frequency.exponentialRampToValueAtTime(freqEnd, startTime + duration * 0.8)\n }\n\n gain.gain.setValueAtTime(0, startTime)\n gain.gain.linearRampToValueAtTime(vol * this.volume, startTime + 0.02)\n gain.gain.exponentialRampToValueAtTime(0.001, startTime + duration)\n\n osc.connect(gain).connect(ctx.destination)\n osc.start(startTime)\n osc.stop(startTime + duration)\n }\n\n /** Warm filtered tone */\n private warmTone(\n startTime: number,\n duration: number,\n freq: number,\n vol: number,\n filterFreq = 800\n ): void {\n const ctx = this.getContext()\n const osc = ctx.createOscillator()\n const filter = ctx.createBiquadFilter()\n const gain = ctx.createGain()\n\n osc.type = 'sine'\n osc.frequency.value = freq\n\n filter.type = 'lowpass'\n filter.frequency.value = filterFreq\n\n gain.gain.setValueAtTime(0, startTime)\n gain.gain.linearRampToValueAtTime(vol * this.volume, startTime + 0.03)\n gain.gain.exponentialRampToValueAtTime(0.001, startTime + duration)\n\n osc.connect(filter).connect(gain).connect(ctx.destination)\n osc.start(startTime)\n osc.stop(startTime + duration)\n }\n\n /** Shimmer - multiple soft tones */\n private shimmer(startTime: number, duration: number, baseFreq: number, vol: number): void {\n const freqs = [baseFreq, baseFreq * 1.5, baseFreq * 2]\n freqs.forEach((f, i) => {\n this.tone(startTime + i * 0.02, duration - i * 0.02, f, vol * (1 - i * 0.2))\n })\n }\n\n // ==========================================================================\n // HAPPY / PLEASANT FEELINGS\n // ==========================================================================\n\n private playJoyful(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Double puff (excited exhale)\n this.puff(now, 0.08, 3000, 0.3)\n this.puff(now + 0.06, 0.1, 3500, 0.35)\n\n // Rising happy tones\n this.tone(now + 0.02, 0.15, 784, 0.25) // G5\n this.tone(now + 0.1, 0.2, 988, 0.3) // B5\n this.tone(now + 0.18, 0.25, 1175, 0.25) // D6\n }\n\n private playContent(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Gentle satisfied sigh\n this.puff(now, 0.2, 1500, 0.25)\n this.warmTone(now + 0.05, 0.3, 523, 0.2) // C5\n this.warmTone(now + 0.15, 0.35, 659, 0.15) // E5\n }\n\n private playExcited(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Quick ascending puffs\n this.puff(now, 0.06, 2500, 0.25)\n this.puff(now + 0.05, 0.06, 3000, 0.3)\n this.puff(now + 0.1, 0.08, 3500, 0.35)\n\n // Sparkly ascending tones\n this.tone(now + 0.02, 0.12, 880, 0.2)\n this.tone(now + 0.08, 0.12, 1047, 0.25)\n this.tone(now + 0.14, 0.15, 1319, 0.3)\n }\n\n private playProud(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Confident puff\n this.puff(now, 0.15, 1800, 0.3)\n\n // Strong rising chord\n this.tone(now + 0.05, 0.25, 523, 0.25) // C5\n this.tone(now + 0.08, 0.25, 659, 0.2) // E5\n this.tone(now + 0.11, 0.3, 784, 0.25) // G5\n }\n\n private playHopeful(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Light ascending puff\n this.puff(now, 0.12, 2200, 0.2)\n\n // Gentle rising tone\n this.tone(now + 0.03, 0.3, 659, 0.2, 'sine', 880) // E5 -> A5\n }\n\n private playRelieved(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Long exhale\n this.puff(now, 0.25, 1200, 0.35)\n\n // Descending release\n this.warmTone(now + 0.1, 0.35, 659, 0.2) // E5\n this.warmTone(now + 0.25, 0.4, 523, 0.15) // C5\n }\n\n private playGrateful(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Warm gentle puff\n this.puff(now, 0.15, 1500, 0.25)\n\n // Warm embracing tones\n this.warmTone(now + 0.05, 0.3, 440, 0.2) // A4\n this.warmTone(now + 0.15, 0.35, 523, 0.2) // C5\n this.warmTone(now + 0.25, 0.4, 659, 0.15) // E5\n }\n\n private playPeaceful(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Very soft puff\n this.puff(now, 0.3, 800, 0.15)\n\n // Gentle sustained tone\n this.warmTone(now + 0.1, 0.5, 392, 0.12, 500) // G4\n }\n\n private playPlayful(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Bouncy puffs\n this.puff(now, 0.05, 2800, 0.2)\n this.puff(now + 0.08, 0.05, 3200, 0.25)\n this.puff(now + 0.14, 0.06, 2800, 0.2)\n\n // Playful tones\n this.tone(now + 0.03, 0.1, 784, 0.2)\n this.tone(now + 0.1, 0.08, 988, 0.25)\n this.tone(now + 0.16, 0.12, 784, 0.2)\n }\n\n private playAmused(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Little chuckle puffs\n this.puff(now, 0.04, 2500, 0.2)\n this.puff(now + 0.06, 0.04, 2800, 0.22)\n this.puff(now + 0.11, 0.05, 2600, 0.18)\n\n // Amused tone\n this.tone(now + 0.05, 0.15, 880, 0.15)\n }\n\n private playCurious(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Questioning puff\n this.puff(now, 0.1, 2000, 0.2)\n\n // Rising questioning tone\n this.tone(now + 0.03, 0.2, 659, 0.2, 'sine', 880) // E5 -> A5 (question)\n }\n\n private playInspired(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Bright puff\n this.puff(now, 0.1, 2500, 0.25)\n\n // Ascending shimmer\n this.shimmer(now + 0.05, 0.3, 523, 0.2)\n }\n\n private playConfident(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Solid puff\n this.puff(now, 0.12, 1500, 0.3)\n\n // Strong chord\n this.tone(now + 0.04, 0.2, 523, 0.25) // C5\n this.tone(now + 0.06, 0.22, 659, 0.2) // E5\n }\n\n private playLoved(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Warm embrace puff\n this.puff(now, 0.2, 1000, 0.2)\n\n // Warm loving tones\n this.warmTone(now + 0.08, 0.4, 392, 0.18, 600) // G4\n this.warmTone(now + 0.2, 0.45, 494, 0.15, 600) // B4\n }\n\n private playComforted(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Soft blanket puff\n this.puff(now, 0.25, 900, 0.18)\n\n // Gentle descending comfort\n this.warmTone(now + 0.1, 0.35, 523, 0.15) // C5\n this.warmTone(now + 0.25, 0.4, 440, 0.12) // A4\n }\n\n private playEnergized(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Quick energetic puffs\n this.puff(now, 0.05, 3000, 0.25)\n this.puff(now + 0.04, 0.05, 3500, 0.28)\n\n // Bright ascending tones\n this.tone(now + 0.02, 0.1, 784, 0.2)\n this.tone(now + 0.08, 0.12, 988, 0.25)\n this.tone(now + 0.14, 0.15, 1175, 0.22)\n }\n\n private playCelebrated(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Bright celebratory chime\n this.puff(now, 0.08, 2500, 0.2)\n\n // Triumphant ascending arpeggio (C major -> resolve)\n this.tone(now + 0.02, 0.18, 523, 0.22) // C5\n this.tone(now + 0.08, 0.18, 659, 0.24) // E5\n this.tone(now + 0.14, 0.2, 784, 0.26) // G5\n this.tone(now + 0.22, 0.3, 1047, 0.22) // C6 - resolution\n\n // Warm shimmer on resolution\n this.shimmer(now + 0.25, 0.35, 523, 0.12)\n }\n\n // ==========================================================================\n // SAD / LOW FEELINGS\n // ==========================================================================\n\n private playSad(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Heavy sigh\n this.puff(now, 0.3, 600, 0.25)\n\n // Descending sad tone\n this.warmTone(now + 0.1, 0.4, 392, 0.2, 400) // G4\n this.warmTone(now + 0.3, 0.45, 294, 0.15, 350) // D4\n }\n\n private playLonely(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Single isolated puff\n this.puff(now, 0.2, 700, 0.2)\n\n // Sparse, distant tone\n this.warmTone(now + 0.15, 0.5, 330, 0.12, 450) // E4\n }\n\n private playDisappointed(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Deflating puff\n this.puff(now, 0.25, 800, 0.25)\n\n // Falling tone\n this.tone(now + 0.08, 0.3, 523, 0.18, 'sine', 349) // C5 -> F4\n }\n\n private playMelancholic(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Wistful puff\n this.puff(now, 0.3, 700, 0.18)\n\n // Bittersweet tones\n this.warmTone(now + 0.1, 0.45, 440, 0.15, 500) // A4\n this.warmTone(now + 0.3, 0.5, 392, 0.12, 450) // G4\n }\n\n // ==========================================================================\n // ANXIOUS / FEARFUL FEELINGS\n // ==========================================================================\n\n private playAnxious(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Tight, quick puffs\n this.puff(now, 0.08, 1800, 0.2)\n this.puff(now + 0.12, 0.08, 1900, 0.22)\n\n // Uncertain wobble\n const osc = ctx.createOscillator()\n const gain = ctx.createGain()\n const lfo = ctx.createOscillator()\n const lfoGain = ctx.createGain()\n\n osc.frequency.value = 440\n lfo.frequency.value = 8\n lfoGain.gain.value = 20\n\n lfo.connect(lfoGain).connect(osc.frequency)\n\n gain.gain.setValueAtTime(0, now)\n gain.gain.linearRampToValueAtTime(this.volume * 0.15, now + 0.03)\n gain.gain.exponentialRampToValueAtTime(0.001, now + 0.25)\n\n osc.connect(gain).connect(ctx.destination)\n lfo.start(now)\n osc.start(now)\n osc.stop(now + 0.3)\n lfo.stop(now + 0.3)\n }\n\n private playWorried(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Hesitant puff\n this.puff(now, 0.15, 1200, 0.2)\n\n // Minor questioning tone\n this.tone(now + 0.05, 0.25, 349, 0.15, 'sine', 392) // F4 -> G4 (uncertain)\n }\n\n private playNervous(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Quick shallow puffs\n this.puff(now, 0.05, 2000, 0.18)\n this.puff(now + 0.08, 0.05, 2100, 0.18)\n this.puff(now + 0.15, 0.06, 2000, 0.16)\n\n // Trembling tone\n this.tone(now + 0.04, 0.2, 494, 0.12) // B4\n }\n\n private playStartled(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Quick sharp puff\n this.puff(now, 0.04, 3500, 0.3)\n\n // Quick high tone\n this.tone(now, 0.08, 1047, 0.25) // C6\n this.tone(now + 0.05, 0.15, 880, 0.15) // A5\n }\n\n // ==========================================================================\n // ANGRY / FRUSTRATED FEELINGS\n // ==========================================================================\n\n private playAnnoyed(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Short frustrated puff\n this.puff(now, 0.1, 1000, 0.25)\n\n // Low rumble\n this.warmTone(now + 0.03, 0.2, 294, 0.18, 400) // D4\n }\n\n private playFrustrated(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Tense puff\n this.puff(now, 0.12, 900, 0.28)\n\n // Blocked feeling\n this.tone(now + 0.04, 0.15, 349, 0.2) // F4\n this.tone(now + 0.12, 0.12, 330, 0.18) // E4\n }\n\n private playImpatient(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Quick tapping puffs\n this.puff(now, 0.04, 1500, 0.2)\n this.puff(now + 0.08, 0.04, 1500, 0.2)\n this.puff(now + 0.16, 0.04, 1500, 0.22)\n\n // Urgent tone\n this.tone(now + 0.06, 0.1, 523, 0.15)\n }\n\n // ==========================================================================\n // TIRED / DRAINED FEELINGS\n // ==========================================================================\n\n private playTired(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Heavy slow puff\n this.puff(now, 0.35, 500, 0.2)\n\n // Drooping tone\n this.warmTone(now + 0.1, 0.4, 330, 0.12, 350) // E4\n }\n\n private playExhausted(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Very slow, heavy exhale\n this.puff(now, 0.45, 400, 0.18)\n\n // Descending fade\n this.warmTone(now + 0.15, 0.5, 294, 0.1, 300) // D4\n }\n\n private playBored(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Flat sigh\n this.puff(now, 0.25, 600, 0.15)\n\n // Monotone\n this.warmTone(now + 0.1, 0.3, 349, 0.1, 400) // F4\n }\n\n // ==========================================================================\n // CALM / GROUNDED FEELINGS\n // ==========================================================================\n\n private playCalm(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Slow, peaceful puff\n this.puff(now, 0.3, 600, 0.12)\n\n // Sustained gentle tone\n this.warmTone(now + 0.1, 0.5, 392, 0.1, 500) // G4\n }\n\n private playRelaxed(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Long soft exhale\n this.puff(now, 0.35, 700, 0.15)\n\n // Gentle descending\n this.warmTone(now + 0.15, 0.45, 440, 0.1) // A4\n this.warmTone(now + 0.35, 0.5, 392, 0.08) // G4\n }\n\n private playGrounded(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Deep centered puff\n this.puff(now, 0.25, 500, 0.2)\n\n // Low stable tone\n this.warmTone(now + 0.1, 0.4, 262, 0.15, 350) // C4\n }\n\n private playSafe(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Soft enveloping puff\n this.puff(now, 0.3, 700, 0.15)\n\n // Warm embracing tones\n this.warmTone(now + 0.1, 0.4, 349, 0.12) // F4\n this.warmTone(now + 0.25, 0.45, 440, 0.1) // A4\n }\n\n // ==========================================================================\n // CONNECTED / SOCIAL FEELINGS\n // ==========================================================================\n\n private playConnected(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Warm shared breath\n this.puff(now, 0.2, 1200, 0.18)\n\n // Harmonious tones\n this.warmTone(now + 0.08, 0.3, 440, 0.15) // A4\n this.warmTone(now + 0.12, 0.32, 523, 0.12) // C5\n }\n\n private playAppreciated(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Touched puff\n this.puff(now, 0.15, 1500, 0.2)\n\n // Warm ascending\n this.warmTone(now + 0.05, 0.25, 440, 0.15)\n this.warmTone(now + 0.15, 0.3, 523, 0.18)\n }\n\n private playSupported(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Held puff\n this.puff(now, 0.25, 900, 0.18)\n\n // Stable harmonies\n this.warmTone(now + 0.1, 0.35, 349, 0.12)\n this.warmTone(now + 0.15, 0.4, 440, 0.1)\n }\n\n // ==========================================================================\n // MIXED / COMPLICATED FEELINGS\n // ==========================================================================\n\n private playNostalgic(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Wistful distant puff\n this.puff(now, 0.25, 800, 0.15)\n\n // Bittersweet memory tones\n this.warmTone(now + 0.1, 0.4, 440, 0.12, 500) // A4\n this.warmTone(now + 0.3, 0.45, 392, 0.1, 450) // G4\n }\n\n private playSurprised(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Quick gasp\n this.puff(now, 0.06, 2800, 0.25)\n\n // Rising tone\n this.tone(now + 0.02, 0.15, 659, 0.2, 'sine', 988) // E5 -> B5\n }\n\n private playAwestruck(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Wonder-filled breath\n this.puff(now, 0.2, 1500, 0.2)\n\n // Ascending wonder\n this.shimmer(now + 0.08, 0.4, 440, 0.15)\n }\n\n private playConfused(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Uncertain puff\n this.puff(now, 0.12, 1200, 0.18)\n\n // Questioning wobble\n this.tone(now + 0.04, 0.2, 440, 0.12, 'sine', 494) // A4 -> B4\n this.tone(now + 0.15, 0.15, 466, 0.1) // Bb4 (chromatic confusion)\n }\n\n // ==========================================================================\n // PUBLIC API\n // ==========================================================================\n\n /** Set volume (0.0 - 1.0) */\n setVolume(vol: number): void {\n this.volume = Math.max(0, Math.min(1, vol))\n }\n\n /** Get current volume */\n getVolume(): number {\n return this.volume\n }\n\n /** Mute all sounds */\n mute(): void {\n this.muted = true\n }\n\n /** Unmute sounds */\n unmute(): void {\n this.muted = false\n }\n\n /** Check if muted */\n isMuted(): boolean {\n return this.muted\n }\n\n /** Play a feeling */\n play(feeling: Feeling): void {\n if (this.muted) return\n\n // Map feelings to their sound methods\n const soundMap: Record<Feeling, () => void> = {\n // Happy\n joyful: () => this.playJoyful(),\n content: () => this.playContent(),\n excited: () => this.playExcited(),\n proud: () => this.playProud(),\n hopeful: () => this.playHopeful(),\n relieved: () => this.playRelieved(),\n grateful: () => this.playGrateful(),\n peaceful: () => this.playPeaceful(),\n playful: () => this.playPlayful(),\n amused: () => this.playAmused(),\n curious: () => this.playCurious(),\n inspired: () => this.playInspired(),\n confident: () => this.playConfident(),\n loved: () => this.playLoved(),\n comforted: () => this.playComforted(),\n energized: () => this.playEnergized(),\n celebrated: () => this.playCelebrated(),\n\n // Sad\n sad: () => this.playSad(),\n lonely: () => this.playLonely(),\n disappointed: () => this.playDisappointed(),\n heartbroken: () => this.playSad(), // Similar to sad\n grieving: () => this.playSad(),\n hopeless: () => this.playLonely(),\n empty: () => this.playLonely(),\n discouraged: () => this.playDisappointed(),\n melancholic: () => this.playMelancholic(),\n homesick: () => this.playNostalgic(),\n hurt: () => this.playSad(),\n miserable: () => this.playSad(),\n regretful: () => this.playMelancholic(),\n ashamed: () => this.playDisappointed(),\n inferior: () => this.playDisappointed(),\n\n // Anxious\n anxious: () => this.playAnxious(),\n worried: () => this.playWorried(),\n afraid: () => this.playAnxious(),\n terrified: () => this.playStartled(),\n panicked: () => this.playStartled(),\n nervous: () => this.playNervous(),\n uneasy: () => this.playWorried(),\n insecure: () => this.playNervous(),\n overwhelmed: () => this.playAnxious(),\n stressed: () => this.playAnxious(),\n tense: () => this.playAnxious(),\n apprehensive: () => this.playWorried(),\n startled: () => this.playStartled(),\n suspicious: () => this.playWorried(),\n vulnerable: () => this.playNervous(),\n\n // Angry\n annoyed: () => this.playAnnoyed(),\n irritated: () => this.playAnnoyed(),\n frustrated: () => this.playFrustrated(),\n angry: () => this.playFrustrated(),\n enraged: () => this.playFrustrated(),\n bitter: () => this.playFrustrated(),\n resentful: () => this.playAnnoyed(),\n jealous: () => this.playAnnoyed(),\n envious: () => this.playAnnoyed(),\n indignant: () => this.playFrustrated(),\n impatient: () => this.playImpatient(),\n hostile: () => this.playFrustrated(),\n contemptuous: () => this.playAnnoyed(),\n\n // Tired\n tired: () => this.playTired(),\n exhausted: () => this.playExhausted(),\n drained: () => this.playExhausted(),\n burnedOut: () => this.playExhausted(),\n numb: () => this.playExhausted(),\n bored: () => this.playBored(),\n unmotivated: () => this.playBored(),\n apathetic: () => this.playBored(),\n restless: () => this.playTired(),\n\n // Calm\n calm: () => this.playCalm(),\n relaxed: () => this.playRelaxed(),\n atEase: () => this.playRelaxed(),\n balanced: () => this.playCalm(),\n stable: () => this.playGrounded(),\n secure: () => this.playSafe(),\n safe: () => this.playSafe(),\n centered: () => this.playGrounded(),\n grounded: () => this.playGrounded(),\n accepting: () => this.playCalm(),\n\n // Connected\n connected: () => this.playConnected(),\n accepted: () => this.playAppreciated(),\n included: () => this.playConnected(),\n belonging: () => this.playConnected(),\n appreciated: () => this.playAppreciated(),\n valued: () => this.playAppreciated(),\n respected: () => this.playAppreciated(),\n supported: () => this.playSupported(),\n protective: () => this.playSupported(),\n compassionate: () => this.playConnected(),\n empathetic: () => this.playConnected(),\n\n // Mixed\n conflicted: () => this.playConfused(),\n confused: () => this.playConfused(),\n ambivalent: () => this.playConfused(),\n nostalgic: () => this.playNostalgic(),\n guilty: () => this.playDisappointed(),\n embarrassed: () => this.playNervous(),\n surprised: () => this.playSurprised(),\n shocked: () => this.playStartled(),\n awestruck: () => this.playAwestruck(),\n skeptical: () => this.playConfused(),\n }\n\n const playFn = soundMap[feeling]\n if (playFn) {\n playFn()\n }\n }\n\n /** Dispose audio context */\n dispose(): void {\n if (this.audioContext) {\n this.audioContext.close()\n this.audioContext = null\n }\n }\n}\n\n// ============================================================================\n// SINGLETON EXPORT\n// ============================================================================\n\n/** Global emotional sound player */\nexport const $sounds = new EmotionalSoundGenerator()\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"audio-CwBJntnB.js","names":[],"sources":["../src/audio/emotional-sounds.ts"],"sourcesContent":["/**\n * Schmancy Emotional Sound Library\n *\n * A curated collection of soft, elegant sounds organized by emotional categories.\n * Each sound is designed to be non-intrusive, emotionally evocative, and beautiful.\n *\n * Inspired by the gentle sounds of nature - soft air, gentle chimes, and warm tones.\n *\n * @example\n * ```typescript\n * import { $sounds } from '@schmancy/audio'\n *\n * // Play a feeling\n * $sounds.play('joyful')\n * $sounds.play('relieved')\n * $sounds.play('curious')\n *\n * // Adjust volume\n * $sounds.setVolume(0.2)\n *\n * // Mute/unmute\n * $sounds.mute()\n * $sounds.unmute()\n * ```\n */\n\n// ============================================================================\n// TYPES\n// ============================================================================\n\n/** Happy / Pleasant feelings */\nexport type HappyFeeling =\n | 'joyful' | 'content' | 'excited' | 'proud' | 'hopeful'\n | 'relieved' | 'grateful' | 'peaceful' | 'playful' | 'amused'\n | 'curious' | 'inspired' | 'confident' | 'loved' | 'comforted' | 'energized'\n | 'celebrated'\n\n/** Sad / Low feelings */\nexport type SadFeeling =\n | 'sad' | 'lonely' | 'disappointed' | 'heartbroken' | 'grieving'\n | 'hopeless' | 'empty' | 'discouraged' | 'melancholic' | 'homesick'\n | 'hurt' | 'miserable' | 'regretful' | 'ashamed' | 'inferior'\n\n/** Anxious / Fearful feelings */\nexport type AnxiousFeeling =\n | 'anxious' | 'worried' | 'afraid' | 'terrified' | 'panicked'\n | 'nervous' | 'uneasy' | 'insecure' | 'overwhelmed' | 'stressed'\n | 'tense' | 'apprehensive' | 'startled' | 'suspicious' | 'vulnerable'\n\n/** Angry / Frustrated feelings */\nexport type AngryFeeling =\n | 'annoyed' | 'irritated' | 'frustrated' | 'angry' | 'enraged'\n | 'bitter' | 'resentful' | 'jealous' | 'envious' | 'indignant'\n | 'impatient' | 'hostile' | 'contemptuous'\n\n/** Tired / Drained feelings */\nexport type TiredFeeling =\n | 'tired' | 'exhausted' | 'drained' | 'burnedOut' | 'numb'\n | 'bored' | 'unmotivated' | 'apathetic' | 'restless'\n\n/** Calm / Grounded feelings */\nexport type CalmFeeling =\n | 'calm' | 'relaxed' | 'atEase' | 'balanced' | 'stable'\n | 'secure' | 'safe' | 'centered' | 'grounded' | 'accepting'\n\n/** Connected / Social feelings */\nexport type ConnectedFeeling =\n | 'connected' | 'accepted' | 'included' | 'belonging' | 'appreciated'\n | 'valued' | 'respected' | 'supported' | 'protective' | 'compassionate' | 'empathetic'\n\n/** Mixed / Complicated feelings */\nexport type MixedFeeling =\n | 'conflicted' | 'confused' | 'ambivalent' | 'nostalgic' | 'guilty'\n | 'embarrassed' | 'surprised' | 'shocked' | 'awestruck' | 'skeptical'\n\n/** All feelings */\nexport type Feeling =\n | HappyFeeling | SadFeeling | AnxiousFeeling | AngryFeeling\n | TiredFeeling | CalmFeeling | ConnectedFeeling | MixedFeeling\n\n// FeelingCategory is defined in ../types/mood-audio.types.ts and re-exported\n// from ./index.ts — the canonical source.\n\n// ============================================================================\n// SOUND GENERATOR\n// ============================================================================\n\n/**\n * Emotional Sound Generator\n * Creates soft, beautiful sounds using Web Audio API\n */\nexport class EmotionalSoundGenerator {\n private audioContext: AudioContext | null = null\n private volume = 0.15\n private muted = false\n\n private getContext(): AudioContext {\n if (!this.audioContext) {\n const AudioContextClass = window.AudioContext || (window as any).webkitAudioContext\n this.audioContext = new AudioContextClass()\n }\n // Resume if suspended (autoplay policy)\n if (this.audioContext.state === 'suspended') {\n this.audioContext.resume()\n }\n return this.audioContext\n }\n\n // ==========================================================================\n // CORE SOUND PRIMITIVES\n // ==========================================================================\n\n /** Soft air puff - the foundation of our sound palette */\n private puff(startTime: number, duration: number, freq: number, vol: number): void {\n const ctx = this.getContext()\n const bufferSize = Math.floor(ctx.sampleRate * duration)\n const buffer = ctx.createBuffer(1, bufferSize, ctx.sampleRate)\n const data = buffer.getChannelData(0)\n\n for (let i = 0; i < bufferSize; i++) {\n data[i] = Math.random() * 2 - 1\n }\n\n const noise = ctx.createBufferSource()\n noise.buffer = buffer\n\n const filter = ctx.createBiquadFilter()\n filter.type = 'bandpass'\n filter.frequency.value = freq\n filter.Q.value = 0.7\n\n const gain = ctx.createGain()\n gain.gain.setValueAtTime(0, startTime)\n gain.gain.linearRampToValueAtTime(vol * this.volume, startTime + 0.015)\n gain.gain.exponentialRampToValueAtTime(0.001, startTime + duration)\n\n noise.connect(filter).connect(gain).connect(ctx.destination)\n noise.start(startTime)\n noise.stop(startTime + duration)\n }\n\n /** Gentle tone with envelope */\n private tone(\n startTime: number,\n duration: number,\n freq: number,\n vol: number,\n type: OscillatorType = 'sine',\n freqEnd?: number\n ): void {\n const ctx = this.getContext()\n const osc = ctx.createOscillator()\n const gain = ctx.createGain()\n\n osc.type = type\n osc.frequency.setValueAtTime(freq, startTime)\n if (freqEnd) {\n osc.frequency.exponentialRampToValueAtTime(freqEnd, startTime + duration * 0.8)\n }\n\n gain.gain.setValueAtTime(0, startTime)\n gain.gain.linearRampToValueAtTime(vol * this.volume, startTime + 0.02)\n gain.gain.exponentialRampToValueAtTime(0.001, startTime + duration)\n\n osc.connect(gain).connect(ctx.destination)\n osc.start(startTime)\n osc.stop(startTime + duration)\n }\n\n /** Warm filtered tone */\n private warmTone(\n startTime: number,\n duration: number,\n freq: number,\n vol: number,\n filterFreq = 800\n ): void {\n const ctx = this.getContext()\n const osc = ctx.createOscillator()\n const filter = ctx.createBiquadFilter()\n const gain = ctx.createGain()\n\n osc.type = 'sine'\n osc.frequency.value = freq\n\n filter.type = 'lowpass'\n filter.frequency.value = filterFreq\n\n gain.gain.setValueAtTime(0, startTime)\n gain.gain.linearRampToValueAtTime(vol * this.volume, startTime + 0.03)\n gain.gain.exponentialRampToValueAtTime(0.001, startTime + duration)\n\n osc.connect(filter).connect(gain).connect(ctx.destination)\n osc.start(startTime)\n osc.stop(startTime + duration)\n }\n\n /** Shimmer - multiple soft tones */\n private shimmer(startTime: number, duration: number, baseFreq: number, vol: number): void {\n const freqs = [baseFreq, baseFreq * 1.5, baseFreq * 2]\n freqs.forEach((f, i) => {\n this.tone(startTime + i * 0.02, duration - i * 0.02, f, vol * (1 - i * 0.2))\n })\n }\n\n // ==========================================================================\n // HAPPY / PLEASANT FEELINGS\n // ==========================================================================\n\n private playJoyful(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Double puff (excited exhale)\n this.puff(now, 0.08, 3000, 0.3)\n this.puff(now + 0.06, 0.1, 3500, 0.35)\n\n // Rising happy tones\n this.tone(now + 0.02, 0.15, 784, 0.25) // G5\n this.tone(now + 0.1, 0.2, 988, 0.3) // B5\n this.tone(now + 0.18, 0.25, 1175, 0.25) // D6\n }\n\n private playContent(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Gentle satisfied sigh\n this.puff(now, 0.2, 1500, 0.25)\n this.warmTone(now + 0.05, 0.3, 523, 0.2) // C5\n this.warmTone(now + 0.15, 0.35, 659, 0.15) // E5\n }\n\n private playExcited(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Quick ascending puffs\n this.puff(now, 0.06, 2500, 0.25)\n this.puff(now + 0.05, 0.06, 3000, 0.3)\n this.puff(now + 0.1, 0.08, 3500, 0.35)\n\n // Sparkly ascending tones\n this.tone(now + 0.02, 0.12, 880, 0.2)\n this.tone(now + 0.08, 0.12, 1047, 0.25)\n this.tone(now + 0.14, 0.15, 1319, 0.3)\n }\n\n private playProud(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Confident puff\n this.puff(now, 0.15, 1800, 0.3)\n\n // Strong rising chord\n this.tone(now + 0.05, 0.25, 523, 0.25) // C5\n this.tone(now + 0.08, 0.25, 659, 0.2) // E5\n this.tone(now + 0.11, 0.3, 784, 0.25) // G5\n }\n\n private playHopeful(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Light ascending puff\n this.puff(now, 0.12, 2200, 0.2)\n\n // Gentle rising tone\n this.tone(now + 0.03, 0.3, 659, 0.2, 'sine', 880) // E5 -> A5\n }\n\n private playRelieved(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Long exhale\n this.puff(now, 0.25, 1200, 0.35)\n\n // Descending release\n this.warmTone(now + 0.1, 0.35, 659, 0.2) // E5\n this.warmTone(now + 0.25, 0.4, 523, 0.15) // C5\n }\n\n private playGrateful(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Warm gentle puff\n this.puff(now, 0.15, 1500, 0.25)\n\n // Warm embracing tones\n this.warmTone(now + 0.05, 0.3, 440, 0.2) // A4\n this.warmTone(now + 0.15, 0.35, 523, 0.2) // C5\n this.warmTone(now + 0.25, 0.4, 659, 0.15) // E5\n }\n\n private playPeaceful(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Very soft puff\n this.puff(now, 0.3, 800, 0.15)\n\n // Gentle sustained tone\n this.warmTone(now + 0.1, 0.5, 392, 0.12, 500) // G4\n }\n\n private playPlayful(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Bouncy puffs\n this.puff(now, 0.05, 2800, 0.2)\n this.puff(now + 0.08, 0.05, 3200, 0.25)\n this.puff(now + 0.14, 0.06, 2800, 0.2)\n\n // Playful tones\n this.tone(now + 0.03, 0.1, 784, 0.2)\n this.tone(now + 0.1, 0.08, 988, 0.25)\n this.tone(now + 0.16, 0.12, 784, 0.2)\n }\n\n private playAmused(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Little chuckle puffs\n this.puff(now, 0.04, 2500, 0.2)\n this.puff(now + 0.06, 0.04, 2800, 0.22)\n this.puff(now + 0.11, 0.05, 2600, 0.18)\n\n // Amused tone\n this.tone(now + 0.05, 0.15, 880, 0.15)\n }\n\n private playCurious(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Questioning puff\n this.puff(now, 0.1, 2000, 0.2)\n\n // Rising questioning tone\n this.tone(now + 0.03, 0.2, 659, 0.2, 'sine', 880) // E5 -> A5 (question)\n }\n\n private playInspired(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Bright puff\n this.puff(now, 0.1, 2500, 0.25)\n\n // Ascending shimmer\n this.shimmer(now + 0.05, 0.3, 523, 0.2)\n }\n\n private playConfident(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Solid puff\n this.puff(now, 0.12, 1500, 0.3)\n\n // Strong chord\n this.tone(now + 0.04, 0.2, 523, 0.25) // C5\n this.tone(now + 0.06, 0.22, 659, 0.2) // E5\n }\n\n private playLoved(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Warm embrace puff\n this.puff(now, 0.2, 1000, 0.2)\n\n // Warm loving tones\n this.warmTone(now + 0.08, 0.4, 392, 0.18, 600) // G4\n this.warmTone(now + 0.2, 0.45, 494, 0.15, 600) // B4\n }\n\n private playComforted(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Soft blanket puff\n this.puff(now, 0.25, 900, 0.18)\n\n // Gentle descending comfort\n this.warmTone(now + 0.1, 0.35, 523, 0.15) // C5\n this.warmTone(now + 0.25, 0.4, 440, 0.12) // A4\n }\n\n private playEnergized(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Quick energetic puffs\n this.puff(now, 0.05, 3000, 0.25)\n this.puff(now + 0.04, 0.05, 3500, 0.28)\n\n // Bright ascending tones\n this.tone(now + 0.02, 0.1, 784, 0.2)\n this.tone(now + 0.08, 0.12, 988, 0.25)\n this.tone(now + 0.14, 0.15, 1175, 0.22)\n }\n\n private playCelebrated(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Bright celebratory chime\n this.puff(now, 0.08, 2500, 0.2)\n\n // Triumphant ascending arpeggio (C major -> resolve)\n this.tone(now + 0.02, 0.18, 523, 0.22) // C5\n this.tone(now + 0.08, 0.18, 659, 0.24) // E5\n this.tone(now + 0.14, 0.2, 784, 0.26) // G5\n this.tone(now + 0.22, 0.3, 1047, 0.22) // C6 - resolution\n\n // Warm shimmer on resolution\n this.shimmer(now + 0.25, 0.35, 523, 0.12)\n }\n\n // ==========================================================================\n // SAD / LOW FEELINGS\n // ==========================================================================\n\n private playSad(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Heavy sigh\n this.puff(now, 0.3, 600, 0.25)\n\n // Descending sad tone\n this.warmTone(now + 0.1, 0.4, 392, 0.2, 400) // G4\n this.warmTone(now + 0.3, 0.45, 294, 0.15, 350) // D4\n }\n\n private playLonely(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Single isolated puff\n this.puff(now, 0.2, 700, 0.2)\n\n // Sparse, distant tone\n this.warmTone(now + 0.15, 0.5, 330, 0.12, 450) // E4\n }\n\n private playDisappointed(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Deflating puff\n this.puff(now, 0.25, 800, 0.25)\n\n // Falling tone\n this.tone(now + 0.08, 0.3, 523, 0.18, 'sine', 349) // C5 -> F4\n }\n\n private playMelancholic(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Wistful puff\n this.puff(now, 0.3, 700, 0.18)\n\n // Bittersweet tones\n this.warmTone(now + 0.1, 0.45, 440, 0.15, 500) // A4\n this.warmTone(now + 0.3, 0.5, 392, 0.12, 450) // G4\n }\n\n // ==========================================================================\n // ANXIOUS / FEARFUL FEELINGS\n // ==========================================================================\n\n private playAnxious(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Tight, quick puffs\n this.puff(now, 0.08, 1800, 0.2)\n this.puff(now + 0.12, 0.08, 1900, 0.22)\n\n // Uncertain wobble\n const osc = ctx.createOscillator()\n const gain = ctx.createGain()\n const lfo = ctx.createOscillator()\n const lfoGain = ctx.createGain()\n\n osc.frequency.value = 440\n lfo.frequency.value = 8\n lfoGain.gain.value = 20\n\n lfo.connect(lfoGain).connect(osc.frequency)\n\n gain.gain.setValueAtTime(0, now)\n gain.gain.linearRampToValueAtTime(this.volume * 0.15, now + 0.03)\n gain.gain.exponentialRampToValueAtTime(0.001, now + 0.25)\n\n osc.connect(gain).connect(ctx.destination)\n lfo.start(now)\n osc.start(now)\n osc.stop(now + 0.3)\n lfo.stop(now + 0.3)\n }\n\n private playWorried(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Hesitant puff\n this.puff(now, 0.15, 1200, 0.2)\n\n // Minor questioning tone\n this.tone(now + 0.05, 0.25, 349, 0.15, 'sine', 392) // F4 -> G4 (uncertain)\n }\n\n private playNervous(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Quick shallow puffs\n this.puff(now, 0.05, 2000, 0.18)\n this.puff(now + 0.08, 0.05, 2100, 0.18)\n this.puff(now + 0.15, 0.06, 2000, 0.16)\n\n // Trembling tone\n this.tone(now + 0.04, 0.2, 494, 0.12) // B4\n }\n\n private playStartled(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Quick sharp puff\n this.puff(now, 0.04, 3500, 0.3)\n\n // Quick high tone\n this.tone(now, 0.08, 1047, 0.25) // C6\n this.tone(now + 0.05, 0.15, 880, 0.15) // A5\n }\n\n // ==========================================================================\n // ANGRY / FRUSTRATED FEELINGS\n // ==========================================================================\n\n private playAnnoyed(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Short frustrated puff\n this.puff(now, 0.1, 1000, 0.25)\n\n // Low rumble\n this.warmTone(now + 0.03, 0.2, 294, 0.18, 400) // D4\n }\n\n private playFrustrated(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Tense puff\n this.puff(now, 0.12, 900, 0.28)\n\n // Blocked feeling\n this.tone(now + 0.04, 0.15, 349, 0.2) // F4\n this.tone(now + 0.12, 0.12, 330, 0.18) // E4\n }\n\n private playImpatient(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Quick tapping puffs\n this.puff(now, 0.04, 1500, 0.2)\n this.puff(now + 0.08, 0.04, 1500, 0.2)\n this.puff(now + 0.16, 0.04, 1500, 0.22)\n\n // Urgent tone\n this.tone(now + 0.06, 0.1, 523, 0.15)\n }\n\n // ==========================================================================\n // TIRED / DRAINED FEELINGS\n // ==========================================================================\n\n private playTired(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Heavy slow puff\n this.puff(now, 0.35, 500, 0.2)\n\n // Drooping tone\n this.warmTone(now + 0.1, 0.4, 330, 0.12, 350) // E4\n }\n\n private playExhausted(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Very slow, heavy exhale\n this.puff(now, 0.45, 400, 0.18)\n\n // Descending fade\n this.warmTone(now + 0.15, 0.5, 294, 0.1, 300) // D4\n }\n\n private playBored(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Flat sigh\n this.puff(now, 0.25, 600, 0.15)\n\n // Monotone\n this.warmTone(now + 0.1, 0.3, 349, 0.1, 400) // F4\n }\n\n // ==========================================================================\n // CALM / GROUNDED FEELINGS\n // ==========================================================================\n\n private playCalm(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Slow, peaceful puff\n this.puff(now, 0.3, 600, 0.12)\n\n // Sustained gentle tone\n this.warmTone(now + 0.1, 0.5, 392, 0.1, 500) // G4\n }\n\n private playRelaxed(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Long soft exhale\n this.puff(now, 0.35, 700, 0.15)\n\n // Gentle descending\n this.warmTone(now + 0.15, 0.45, 440, 0.1) // A4\n this.warmTone(now + 0.35, 0.5, 392, 0.08) // G4\n }\n\n private playGrounded(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Deep centered puff\n this.puff(now, 0.25, 500, 0.2)\n\n // Low stable tone\n this.warmTone(now + 0.1, 0.4, 262, 0.15, 350) // C4\n }\n\n private playSafe(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Soft enveloping puff\n this.puff(now, 0.3, 700, 0.15)\n\n // Warm embracing tones\n this.warmTone(now + 0.1, 0.4, 349, 0.12) // F4\n this.warmTone(now + 0.25, 0.45, 440, 0.1) // A4\n }\n\n // ==========================================================================\n // CONNECTED / SOCIAL FEELINGS\n // ==========================================================================\n\n private playConnected(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Warm shared breath\n this.puff(now, 0.2, 1200, 0.18)\n\n // Harmonious tones\n this.warmTone(now + 0.08, 0.3, 440, 0.15) // A4\n this.warmTone(now + 0.12, 0.32, 523, 0.12) // C5\n }\n\n private playAppreciated(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Touched puff\n this.puff(now, 0.15, 1500, 0.2)\n\n // Warm ascending\n this.warmTone(now + 0.05, 0.25, 440, 0.15)\n this.warmTone(now + 0.15, 0.3, 523, 0.18)\n }\n\n private playSupported(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Held puff\n this.puff(now, 0.25, 900, 0.18)\n\n // Stable harmonies\n this.warmTone(now + 0.1, 0.35, 349, 0.12)\n this.warmTone(now + 0.15, 0.4, 440, 0.1)\n }\n\n // ==========================================================================\n // MIXED / COMPLICATED FEELINGS\n // ==========================================================================\n\n private playNostalgic(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Wistful distant puff\n this.puff(now, 0.25, 800, 0.15)\n\n // Bittersweet memory tones\n this.warmTone(now + 0.1, 0.4, 440, 0.12, 500) // A4\n this.warmTone(now + 0.3, 0.45, 392, 0.1, 450) // G4\n }\n\n private playSurprised(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Quick gasp\n this.puff(now, 0.06, 2800, 0.25)\n\n // Rising tone\n this.tone(now + 0.02, 0.15, 659, 0.2, 'sine', 988) // E5 -> B5\n }\n\n private playAwestruck(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Wonder-filled breath\n this.puff(now, 0.2, 1500, 0.2)\n\n // Ascending wonder\n this.shimmer(now + 0.08, 0.4, 440, 0.15)\n }\n\n private playConfused(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Uncertain puff\n this.puff(now, 0.12, 1200, 0.18)\n\n // Questioning wobble\n this.tone(now + 0.04, 0.2, 440, 0.12, 'sine', 494) // A4 -> B4\n this.tone(now + 0.15, 0.15, 466, 0.1) // Bb4 (chromatic confusion)\n }\n\n // ==========================================================================\n // PUBLIC API\n // ==========================================================================\n\n /** Set volume (0.0 - 1.0) */\n setVolume(vol: number): void {\n this.volume = Math.max(0, Math.min(1, vol))\n }\n\n /** Get current volume */\n getVolume(): number {\n return this.volume\n }\n\n /** Mute all sounds */\n mute(): void {\n this.muted = true\n }\n\n /** Unmute sounds */\n unmute(): void {\n this.muted = false\n }\n\n /** Check if muted */\n isMuted(): boolean {\n return this.muted\n }\n\n /** Play a feeling */\n play(feeling: Feeling): void {\n if (this.muted) return\n\n // Map feelings to their sound methods\n const soundMap: Record<Feeling, () => void> = {\n // Happy\n joyful: () => this.playJoyful(),\n content: () => this.playContent(),\n excited: () => this.playExcited(),\n proud: () => this.playProud(),\n hopeful: () => this.playHopeful(),\n relieved: () => this.playRelieved(),\n grateful: () => this.playGrateful(),\n peaceful: () => this.playPeaceful(),\n playful: () => this.playPlayful(),\n amused: () => this.playAmused(),\n curious: () => this.playCurious(),\n inspired: () => this.playInspired(),\n confident: () => this.playConfident(),\n loved: () => this.playLoved(),\n comforted: () => this.playComforted(),\n energized: () => this.playEnergized(),\n celebrated: () => this.playCelebrated(),\n\n // Sad\n sad: () => this.playSad(),\n lonely: () => this.playLonely(),\n disappointed: () => this.playDisappointed(),\n heartbroken: () => this.playSad(), // Similar to sad\n grieving: () => this.playSad(),\n hopeless: () => this.playLonely(),\n empty: () => this.playLonely(),\n discouraged: () => this.playDisappointed(),\n melancholic: () => this.playMelancholic(),\n homesick: () => this.playNostalgic(),\n hurt: () => this.playSad(),\n miserable: () => this.playSad(),\n regretful: () => this.playMelancholic(),\n ashamed: () => this.playDisappointed(),\n inferior: () => this.playDisappointed(),\n\n // Anxious\n anxious: () => this.playAnxious(),\n worried: () => this.playWorried(),\n afraid: () => this.playAnxious(),\n terrified: () => this.playStartled(),\n panicked: () => this.playStartled(),\n nervous: () => this.playNervous(),\n uneasy: () => this.playWorried(),\n insecure: () => this.playNervous(),\n overwhelmed: () => this.playAnxious(),\n stressed: () => this.playAnxious(),\n tense: () => this.playAnxious(),\n apprehensive: () => this.playWorried(),\n startled: () => this.playStartled(),\n suspicious: () => this.playWorried(),\n vulnerable: () => this.playNervous(),\n\n // Angry\n annoyed: () => this.playAnnoyed(),\n irritated: () => this.playAnnoyed(),\n frustrated: () => this.playFrustrated(),\n angry: () => this.playFrustrated(),\n enraged: () => this.playFrustrated(),\n bitter: () => this.playFrustrated(),\n resentful: () => this.playAnnoyed(),\n jealous: () => this.playAnnoyed(),\n envious: () => this.playAnnoyed(),\n indignant: () => this.playFrustrated(),\n impatient: () => this.playImpatient(),\n hostile: () => this.playFrustrated(),\n contemptuous: () => this.playAnnoyed(),\n\n // Tired\n tired: () => this.playTired(),\n exhausted: () => this.playExhausted(),\n drained: () => this.playExhausted(),\n burnedOut: () => this.playExhausted(),\n numb: () => this.playExhausted(),\n bored: () => this.playBored(),\n unmotivated: () => this.playBored(),\n apathetic: () => this.playBored(),\n restless: () => this.playTired(),\n\n // Calm\n calm: () => this.playCalm(),\n relaxed: () => this.playRelaxed(),\n atEase: () => this.playRelaxed(),\n balanced: () => this.playCalm(),\n stable: () => this.playGrounded(),\n secure: () => this.playSafe(),\n safe: () => this.playSafe(),\n centered: () => this.playGrounded(),\n grounded: () => this.playGrounded(),\n accepting: () => this.playCalm(),\n\n // Connected\n connected: () => this.playConnected(),\n accepted: () => this.playAppreciated(),\n included: () => this.playConnected(),\n belonging: () => this.playConnected(),\n appreciated: () => this.playAppreciated(),\n valued: () => this.playAppreciated(),\n respected: () => this.playAppreciated(),\n supported: () => this.playSupported(),\n protective: () => this.playSupported(),\n compassionate: () => this.playConnected(),\n empathetic: () => this.playConnected(),\n\n // Mixed\n conflicted: () => this.playConfused(),\n confused: () => this.playConfused(),\n ambivalent: () => this.playConfused(),\n nostalgic: () => this.playNostalgic(),\n guilty: () => this.playDisappointed(),\n embarrassed: () => this.playNervous(),\n surprised: () => this.playSurprised(),\n shocked: () => this.playStartled(),\n awestruck: () => this.playAwestruck(),\n skeptical: () => this.playConfused(),\n }\n\n const playFn = soundMap[feeling]\n if (playFn) {\n playFn()\n }\n }\n\n /** Dispose audio context */\n dispose(): void {\n if (this.audioContext) {\n this.audioContext.close()\n this.audioContext = null\n }\n }\n}\n\n// ============================================================================\n// SINGLETON EXPORT\n// ============================================================================\n\n/** Global emotional sound player */\nexport const $sounds = new EmotionalSoundGenerator()\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
require(`./sound.service-DVJZb9ox.cjs`);var e=class{constructor(){this.audioContext=null,this.volume=.15,this.muted=!1}getContext(){if(!this.audioContext){let e=window.AudioContext||window.webkitAudioContext;this.audioContext=new e}return this.audioContext.state===`suspended`&&this.audioContext.resume(),this.audioContext}puff(e,t,n,r){let i=this.getContext(),a=Math.floor(i.sampleRate*t),o=i.createBuffer(1,a,i.sampleRate),s=o.getChannelData(0);for(let e=0;e<a;e++)s[e]=2*Math.random()-1;let c=i.createBufferSource();c.buffer=o;let l=i.createBiquadFilter();l.type=`bandpass`,l.frequency.value=n,l.Q.value=.7;let u=i.createGain();u.gain.setValueAtTime(0,e),u.gain.linearRampToValueAtTime(r*this.volume,e+.015),u.gain.exponentialRampToValueAtTime(.001,e+t),c.connect(l).connect(u).connect(i.destination),c.start(e),c.stop(e+t)}tone(e,t,n,r,i=`sine`,a){let o=this.getContext(),s=o.createOscillator(),c=o.createGain();s.type=i,s.frequency.setValueAtTime(n,e),a&&s.frequency.exponentialRampToValueAtTime(a,e+.8*t),c.gain.setValueAtTime(0,e),c.gain.linearRampToValueAtTime(r*this.volume,e+.02),c.gain.exponentialRampToValueAtTime(.001,e+t),s.connect(c).connect(o.destination),s.start(e),s.stop(e+t)}warmTone(e,t,n,r,i=800){let a=this.getContext(),o=a.createOscillator(),s=a.createBiquadFilter(),c=a.createGain();o.type=`sine`,o.frequency.value=n,s.type=`lowpass`,s.frequency.value=i,c.gain.setValueAtTime(0,e),c.gain.linearRampToValueAtTime(r*this.volume,e+.03),c.gain.exponentialRampToValueAtTime(.001,e+t),o.connect(s).connect(c).connect(a.destination),o.start(e),o.stop(e+t)}shimmer(e,t,n,r){[n,1.5*n,2*n].forEach((n,i)=>{this.tone(e+.02*i,t-.02*i,n,r*(1-.2*i))})}playJoyful(){let e=this.getContext().currentTime;this.puff(e,.08,3e3,.3),this.puff(e+.06,.1,3500,.35),this.tone(e+.02,.15,784,.25),this.tone(e+.1,.2,988,.3),this.tone(e+.18,.25,1175,.25)}playContent(){let e=this.getContext().currentTime;this.puff(e,.2,1500,.25),this.warmTone(e+.05,.3,523,.2),this.warmTone(e+.15,.35,659,.15)}playExcited(){let e=this.getContext().currentTime;this.puff(e,.06,2500,.25),this.puff(e+.05,.06,3e3,.3),this.puff(e+.1,.08,3500,.35),this.tone(e+.02,.12,880,.2),this.tone(e+.08,.12,1047,.25),this.tone(e+.14,.15,1319,.3)}playProud(){let e=this.getContext().currentTime;this.puff(e,.15,1800,.3),this.tone(e+.05,.25,523,.25),this.tone(e+.08,.25,659,.2),this.tone(e+.11,.3,784,.25)}playHopeful(){let e=this.getContext().currentTime;this.puff(e,.12,2200,.2),this.tone(e+.03,.3,659,.2,`sine`,880)}playRelieved(){let e=this.getContext().currentTime;this.puff(e,.25,1200,.35),this.warmTone(e+.1,.35,659,.2),this.warmTone(e+.25,.4,523,.15)}playGrateful(){let e=this.getContext().currentTime;this.puff(e,.15,1500,.25),this.warmTone(e+.05,.3,440,.2),this.warmTone(e+.15,.35,523,.2),this.warmTone(e+.25,.4,659,.15)}playPeaceful(){let e=this.getContext().currentTime;this.puff(e,.3,800,.15),this.warmTone(e+.1,.5,392,.12,500)}playPlayful(){let e=this.getContext().currentTime;this.puff(e,.05,2800,.2),this.puff(e+.08,.05,3200,.25),this.puff(e+.14,.06,2800,.2),this.tone(e+.03,.1,784,.2),this.tone(e+.1,.08,988,.25),this.tone(e+.16,.12,784,.2)}playAmused(){let e=this.getContext().currentTime;this.puff(e,.04,2500,.2),this.puff(e+.06,.04,2800,.22),this.puff(e+.11,.05,2600,.18),this.tone(e+.05,.15,880,.15)}playCurious(){let e=this.getContext().currentTime;this.puff(e,.1,2e3,.2),this.tone(e+.03,.2,659,.2,`sine`,880)}playInspired(){let e=this.getContext().currentTime;this.puff(e,.1,2500,.25),this.shimmer(e+.05,.3,523,.2)}playConfident(){let e=this.getContext().currentTime;this.puff(e,.12,1500,.3),this.tone(e+.04,.2,523,.25),this.tone(e+.06,.22,659,.2)}playLoved(){let e=this.getContext().currentTime;this.puff(e,.2,1e3,.2),this.warmTone(e+.08,.4,392,.18,600),this.warmTone(e+.2,.45,494,.15,600)}playComforted(){let e=this.getContext().currentTime;this.puff(e,.25,900,.18),this.warmTone(e+.1,.35,523,.15),this.warmTone(e+.25,.4,440,.12)}playEnergized(){let e=this.getContext().currentTime;this.puff(e,.05,3e3,.25),this.puff(e+.04,.05,3500,.28),this.tone(e+.02,.1,784,.2),this.tone(e+.08,.12,988,.25),this.tone(e+.14,.15,1175,.22)}playCelebrated(){let e=this.getContext().currentTime;this.puff(e,.08,2500,.2),this.tone(e+.02,.18,523,.22),this.tone(e+.08,.18,659,.24),this.tone(e+.14,.2,784,.26),this.tone(e+.22,.3,1047,.22),this.shimmer(e+.25,.35,523,.12)}playSad(){let e=this.getContext().currentTime;this.puff(e,.3,600,.25),this.warmTone(e+.1,.4,392,.2,400),this.warmTone(e+.3,.45,294,.15,350)}playLonely(){let e=this.getContext().currentTime;this.puff(e,.2,700,.2),this.warmTone(e+.15,.5,330,.12,450)}playDisappointed(){let e=this.getContext().currentTime;this.puff(e,.25,800,.25),this.tone(e+.08,.3,523,.18,`sine`,349)}playMelancholic(){let e=this.getContext().currentTime;this.puff(e,.3,700,.18),this.warmTone(e+.1,.45,440,.15,500),this.warmTone(e+.3,.5,392,.12,450)}playAnxious(){let e=this.getContext(),t=e.currentTime;this.puff(t,.08,1800,.2),this.puff(t+.12,.08,1900,.22);let n=e.createOscillator(),r=e.createGain(),i=e.createOscillator(),a=e.createGain();n.frequency.value=440,i.frequency.value=8,a.gain.value=20,i.connect(a).connect(n.frequency),r.gain.setValueAtTime(0,t),r.gain.linearRampToValueAtTime(.15*this.volume,t+.03),r.gain.exponentialRampToValueAtTime(.001,t+.25),n.connect(r).connect(e.destination),i.start(t),n.start(t),n.stop(t+.3),i.stop(t+.3)}playWorried(){let e=this.getContext().currentTime;this.puff(e,.15,1200,.2),this.tone(e+.05,.25,349,.15,`sine`,392)}playNervous(){let e=this.getContext().currentTime;this.puff(e,.05,2e3,.18),this.puff(e+.08,.05,2100,.18),this.puff(e+.15,.06,2e3,.16),this.tone(e+.04,.2,494,.12)}playStartled(){let e=this.getContext().currentTime;this.puff(e,.04,3500,.3),this.tone(e,.08,1047,.25),this.tone(e+.05,.15,880,.15)}playAnnoyed(){let e=this.getContext().currentTime;this.puff(e,.1,1e3,.25),this.warmTone(e+.03,.2,294,.18,400)}playFrustrated(){let e=this.getContext().currentTime;this.puff(e,.12,900,.28),this.tone(e+.04,.15,349,.2),this.tone(e+.12,.12,330,.18)}playImpatient(){let e=this.getContext().currentTime;this.puff(e,.04,1500,.2),this.puff(e+.08,.04,1500,.2),this.puff(e+.16,.04,1500,.22),this.tone(e+.06,.1,523,.15)}playTired(){let e=this.getContext().currentTime;this.puff(e,.35,500,.2),this.warmTone(e+.1,.4,330,.12,350)}playExhausted(){let e=this.getContext().currentTime;this.puff(e,.45,400,.18),this.warmTone(e+.15,.5,294,.1,300)}playBored(){let e=this.getContext().currentTime;this.puff(e,.25,600,.15),this.warmTone(e+.1,.3,349,.1,400)}playCalm(){let e=this.getContext().currentTime;this.puff(e,.3,600,.12),this.warmTone(e+.1,.5,392,.1,500)}playRelaxed(){let e=this.getContext().currentTime;this.puff(e,.35,700,.15),this.warmTone(e+.15,.45,440,.1),this.warmTone(e+.35,.5,392,.08)}playGrounded(){let e=this.getContext().currentTime;this.puff(e,.25,500,.2),this.warmTone(e+.1,.4,262,.15,350)}playSafe(){let e=this.getContext().currentTime;this.puff(e,.3,700,.15),this.warmTone(e+.1,.4,349,.12),this.warmTone(e+.25,.45,440,.1)}playConnected(){let e=this.getContext().currentTime;this.puff(e,.2,1200,.18),this.warmTone(e+.08,.3,440,.15),this.warmTone(e+.12,.32,523,.12)}playAppreciated(){let e=this.getContext().currentTime;this.puff(e,.15,1500,.2),this.warmTone(e+.05,.25,440,.15),this.warmTone(e+.15,.3,523,.18)}playSupported(){let e=this.getContext().currentTime;this.puff(e,.25,900,.18),this.warmTone(e+.1,.35,349,.12),this.warmTone(e+.15,.4,440,.1)}playNostalgic(){let e=this.getContext().currentTime;this.puff(e,.25,800,.15),this.warmTone(e+.1,.4,440,.12,500),this.warmTone(e+.3,.45,392,.1,450)}playSurprised(){let e=this.getContext().currentTime;this.puff(e,.06,2800,.25),this.tone(e+.02,.15,659,.2,`sine`,988)}playAwestruck(){let e=this.getContext().currentTime;this.puff(e,.2,1500,.2),this.shimmer(e+.08,.4,440,.15)}playConfused(){let e=this.getContext().currentTime;this.puff(e,.12,1200,.18),this.tone(e+.04,.2,440,.12,`sine`,494),this.tone(e+.15,.15,466,.1)}setVolume(e){this.volume=Math.max(0,Math.min(1,e))}getVolume(){return this.volume}mute(){this.muted=!0}unmute(){this.muted=!1}isMuted(){return this.muted}play(e){if(this.muted)return;let t={joyful:()=>this.playJoyful(),content:()=>this.playContent(),excited:()=>this.playExcited(),proud:()=>this.playProud(),hopeful:()=>this.playHopeful(),relieved:()=>this.playRelieved(),grateful:()=>this.playGrateful(),peaceful:()=>this.playPeaceful(),playful:()=>this.playPlayful(),amused:()=>this.playAmused(),curious:()=>this.playCurious(),inspired:()=>this.playInspired(),confident:()=>this.playConfident(),loved:()=>this.playLoved(),comforted:()=>this.playComforted(),energized:()=>this.playEnergized(),celebrated:()=>this.playCelebrated(),sad:()=>this.playSad(),lonely:()=>this.playLonely(),disappointed:()=>this.playDisappointed(),heartbroken:()=>this.playSad(),grieving:()=>this.playSad(),hopeless:()=>this.playLonely(),empty:()=>this.playLonely(),discouraged:()=>this.playDisappointed(),melancholic:()=>this.playMelancholic(),homesick:()=>this.playNostalgic(),hurt:()=>this.playSad(),miserable:()=>this.playSad(),regretful:()=>this.playMelancholic(),ashamed:()=>this.playDisappointed(),inferior:()=>this.playDisappointed(),anxious:()=>this.playAnxious(),worried:()=>this.playWorried(),afraid:()=>this.playAnxious(),terrified:()=>this.playStartled(),panicked:()=>this.playStartled(),nervous:()=>this.playNervous(),uneasy:()=>this.playWorried(),insecure:()=>this.playNervous(),overwhelmed:()=>this.playAnxious(),stressed:()=>this.playAnxious(),tense:()=>this.playAnxious(),apprehensive:()=>this.playWorried(),startled:()=>this.playStartled(),suspicious:()=>this.playWorried(),vulnerable:()=>this.playNervous(),annoyed:()=>this.playAnnoyed(),irritated:()=>this.playAnnoyed(),frustrated:()=>this.playFrustrated(),angry:()=>this.playFrustrated(),enraged:()=>this.playFrustrated(),bitter:()=>this.playFrustrated(),resentful:()=>this.playAnnoyed(),jealous:()=>this.playAnnoyed(),envious:()=>this.playAnnoyed(),indignant:()=>this.playFrustrated(),impatient:()=>this.playImpatient(),hostile:()=>this.playFrustrated(),contemptuous:()=>this.playAnnoyed(),tired:()=>this.playTired(),exhausted:()=>this.playExhausted(),drained:()=>this.playExhausted(),burnedOut:()=>this.playExhausted(),numb:()=>this.playExhausted(),bored:()=>this.playBored(),unmotivated:()=>this.playBored(),apathetic:()=>this.playBored(),restless:()=>this.playTired(),calm:()=>this.playCalm(),relaxed:()=>this.playRelaxed(),atEase:()=>this.playRelaxed(),balanced:()=>this.playCalm(),stable:()=>this.playGrounded(),secure:()=>this.playSafe(),safe:()=>this.playSafe(),centered:()=>this.playGrounded(),grounded:()=>this.playGrounded(),accepting:()=>this.playCalm(),connected:()=>this.playConnected(),accepted:()=>this.playAppreciated(),included:()=>this.playConnected(),belonging:()=>this.playConnected(),appreciated:()=>this.playAppreciated(),valued:()=>this.playAppreciated(),respected:()=>this.playAppreciated(),supported:()=>this.playSupported(),protective:()=>this.playSupported(),compassionate:()=>this.playConnected(),empathetic:()=>this.playConnected(),conflicted:()=>this.playConfused(),confused:()=>this.playConfused(),ambivalent:()=>this.playConfused(),nostalgic:()=>this.playNostalgic(),guilty:()=>this.playDisappointed(),embarrassed:()=>this.playNervous(),surprised:()=>this.playSurprised(),shocked:()=>this.playStartled(),awestruck:()=>this.playAwestruck(),skeptical:()=>this.playConfused()}[e];t&&t()}dispose(){this.audioContext&&=(this.audioContext.close(),null)}},t=new e;Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return e}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return t}});
|
|
1
|
+
require(`./sound.service-BwIzAFQx.cjs`);var e=class{constructor(){this.audioContext=null,this.volume=.15,this.muted=!1}getContext(){if(!this.audioContext){let e=window.AudioContext||window.webkitAudioContext;this.audioContext=new e}return this.audioContext.state===`suspended`&&this.audioContext.resume(),this.audioContext}puff(e,t,n,r){let i=this.getContext(),a=Math.floor(i.sampleRate*t),o=i.createBuffer(1,a,i.sampleRate),s=o.getChannelData(0);for(let e=0;e<a;e++)s[e]=2*Math.random()-1;let c=i.createBufferSource();c.buffer=o;let l=i.createBiquadFilter();l.type=`bandpass`,l.frequency.value=n,l.Q.value=.7;let u=i.createGain();u.gain.setValueAtTime(0,e),u.gain.linearRampToValueAtTime(r*this.volume,e+.015),u.gain.exponentialRampToValueAtTime(.001,e+t),c.connect(l).connect(u).connect(i.destination),c.start(e),c.stop(e+t)}tone(e,t,n,r,i=`sine`,a){let o=this.getContext(),s=o.createOscillator(),c=o.createGain();s.type=i,s.frequency.setValueAtTime(n,e),a&&s.frequency.exponentialRampToValueAtTime(a,e+.8*t),c.gain.setValueAtTime(0,e),c.gain.linearRampToValueAtTime(r*this.volume,e+.02),c.gain.exponentialRampToValueAtTime(.001,e+t),s.connect(c).connect(o.destination),s.start(e),s.stop(e+t)}warmTone(e,t,n,r,i=800){let a=this.getContext(),o=a.createOscillator(),s=a.createBiquadFilter(),c=a.createGain();o.type=`sine`,o.frequency.value=n,s.type=`lowpass`,s.frequency.value=i,c.gain.setValueAtTime(0,e),c.gain.linearRampToValueAtTime(r*this.volume,e+.03),c.gain.exponentialRampToValueAtTime(.001,e+t),o.connect(s).connect(c).connect(a.destination),o.start(e),o.stop(e+t)}shimmer(e,t,n,r){[n,1.5*n,2*n].forEach((n,i)=>{this.tone(e+.02*i,t-.02*i,n,r*(1-.2*i))})}playJoyful(){let e=this.getContext().currentTime;this.puff(e,.08,3e3,.3),this.puff(e+.06,.1,3500,.35),this.tone(e+.02,.15,784,.25),this.tone(e+.1,.2,988,.3),this.tone(e+.18,.25,1175,.25)}playContent(){let e=this.getContext().currentTime;this.puff(e,.2,1500,.25),this.warmTone(e+.05,.3,523,.2),this.warmTone(e+.15,.35,659,.15)}playExcited(){let e=this.getContext().currentTime;this.puff(e,.06,2500,.25),this.puff(e+.05,.06,3e3,.3),this.puff(e+.1,.08,3500,.35),this.tone(e+.02,.12,880,.2),this.tone(e+.08,.12,1047,.25),this.tone(e+.14,.15,1319,.3)}playProud(){let e=this.getContext().currentTime;this.puff(e,.15,1800,.3),this.tone(e+.05,.25,523,.25),this.tone(e+.08,.25,659,.2),this.tone(e+.11,.3,784,.25)}playHopeful(){let e=this.getContext().currentTime;this.puff(e,.12,2200,.2),this.tone(e+.03,.3,659,.2,`sine`,880)}playRelieved(){let e=this.getContext().currentTime;this.puff(e,.25,1200,.35),this.warmTone(e+.1,.35,659,.2),this.warmTone(e+.25,.4,523,.15)}playGrateful(){let e=this.getContext().currentTime;this.puff(e,.15,1500,.25),this.warmTone(e+.05,.3,440,.2),this.warmTone(e+.15,.35,523,.2),this.warmTone(e+.25,.4,659,.15)}playPeaceful(){let e=this.getContext().currentTime;this.puff(e,.3,800,.15),this.warmTone(e+.1,.5,392,.12,500)}playPlayful(){let e=this.getContext().currentTime;this.puff(e,.05,2800,.2),this.puff(e+.08,.05,3200,.25),this.puff(e+.14,.06,2800,.2),this.tone(e+.03,.1,784,.2),this.tone(e+.1,.08,988,.25),this.tone(e+.16,.12,784,.2)}playAmused(){let e=this.getContext().currentTime;this.puff(e,.04,2500,.2),this.puff(e+.06,.04,2800,.22),this.puff(e+.11,.05,2600,.18),this.tone(e+.05,.15,880,.15)}playCurious(){let e=this.getContext().currentTime;this.puff(e,.1,2e3,.2),this.tone(e+.03,.2,659,.2,`sine`,880)}playInspired(){let e=this.getContext().currentTime;this.puff(e,.1,2500,.25),this.shimmer(e+.05,.3,523,.2)}playConfident(){let e=this.getContext().currentTime;this.puff(e,.12,1500,.3),this.tone(e+.04,.2,523,.25),this.tone(e+.06,.22,659,.2)}playLoved(){let e=this.getContext().currentTime;this.puff(e,.2,1e3,.2),this.warmTone(e+.08,.4,392,.18,600),this.warmTone(e+.2,.45,494,.15,600)}playComforted(){let e=this.getContext().currentTime;this.puff(e,.25,900,.18),this.warmTone(e+.1,.35,523,.15),this.warmTone(e+.25,.4,440,.12)}playEnergized(){let e=this.getContext().currentTime;this.puff(e,.05,3e3,.25),this.puff(e+.04,.05,3500,.28),this.tone(e+.02,.1,784,.2),this.tone(e+.08,.12,988,.25),this.tone(e+.14,.15,1175,.22)}playCelebrated(){let e=this.getContext().currentTime;this.puff(e,.08,2500,.2),this.tone(e+.02,.18,523,.22),this.tone(e+.08,.18,659,.24),this.tone(e+.14,.2,784,.26),this.tone(e+.22,.3,1047,.22),this.shimmer(e+.25,.35,523,.12)}playSad(){let e=this.getContext().currentTime;this.puff(e,.3,600,.25),this.warmTone(e+.1,.4,392,.2,400),this.warmTone(e+.3,.45,294,.15,350)}playLonely(){let e=this.getContext().currentTime;this.puff(e,.2,700,.2),this.warmTone(e+.15,.5,330,.12,450)}playDisappointed(){let e=this.getContext().currentTime;this.puff(e,.25,800,.25),this.tone(e+.08,.3,523,.18,`sine`,349)}playMelancholic(){let e=this.getContext().currentTime;this.puff(e,.3,700,.18),this.warmTone(e+.1,.45,440,.15,500),this.warmTone(e+.3,.5,392,.12,450)}playAnxious(){let e=this.getContext(),t=e.currentTime;this.puff(t,.08,1800,.2),this.puff(t+.12,.08,1900,.22);let n=e.createOscillator(),r=e.createGain(),i=e.createOscillator(),a=e.createGain();n.frequency.value=440,i.frequency.value=8,a.gain.value=20,i.connect(a).connect(n.frequency),r.gain.setValueAtTime(0,t),r.gain.linearRampToValueAtTime(.15*this.volume,t+.03),r.gain.exponentialRampToValueAtTime(.001,t+.25),n.connect(r).connect(e.destination),i.start(t),n.start(t),n.stop(t+.3),i.stop(t+.3)}playWorried(){let e=this.getContext().currentTime;this.puff(e,.15,1200,.2),this.tone(e+.05,.25,349,.15,`sine`,392)}playNervous(){let e=this.getContext().currentTime;this.puff(e,.05,2e3,.18),this.puff(e+.08,.05,2100,.18),this.puff(e+.15,.06,2e3,.16),this.tone(e+.04,.2,494,.12)}playStartled(){let e=this.getContext().currentTime;this.puff(e,.04,3500,.3),this.tone(e,.08,1047,.25),this.tone(e+.05,.15,880,.15)}playAnnoyed(){let e=this.getContext().currentTime;this.puff(e,.1,1e3,.25),this.warmTone(e+.03,.2,294,.18,400)}playFrustrated(){let e=this.getContext().currentTime;this.puff(e,.12,900,.28),this.tone(e+.04,.15,349,.2),this.tone(e+.12,.12,330,.18)}playImpatient(){let e=this.getContext().currentTime;this.puff(e,.04,1500,.2),this.puff(e+.08,.04,1500,.2),this.puff(e+.16,.04,1500,.22),this.tone(e+.06,.1,523,.15)}playTired(){let e=this.getContext().currentTime;this.puff(e,.35,500,.2),this.warmTone(e+.1,.4,330,.12,350)}playExhausted(){let e=this.getContext().currentTime;this.puff(e,.45,400,.18),this.warmTone(e+.15,.5,294,.1,300)}playBored(){let e=this.getContext().currentTime;this.puff(e,.25,600,.15),this.warmTone(e+.1,.3,349,.1,400)}playCalm(){let e=this.getContext().currentTime;this.puff(e,.3,600,.12),this.warmTone(e+.1,.5,392,.1,500)}playRelaxed(){let e=this.getContext().currentTime;this.puff(e,.35,700,.15),this.warmTone(e+.15,.45,440,.1),this.warmTone(e+.35,.5,392,.08)}playGrounded(){let e=this.getContext().currentTime;this.puff(e,.25,500,.2),this.warmTone(e+.1,.4,262,.15,350)}playSafe(){let e=this.getContext().currentTime;this.puff(e,.3,700,.15),this.warmTone(e+.1,.4,349,.12),this.warmTone(e+.25,.45,440,.1)}playConnected(){let e=this.getContext().currentTime;this.puff(e,.2,1200,.18),this.warmTone(e+.08,.3,440,.15),this.warmTone(e+.12,.32,523,.12)}playAppreciated(){let e=this.getContext().currentTime;this.puff(e,.15,1500,.2),this.warmTone(e+.05,.25,440,.15),this.warmTone(e+.15,.3,523,.18)}playSupported(){let e=this.getContext().currentTime;this.puff(e,.25,900,.18),this.warmTone(e+.1,.35,349,.12),this.warmTone(e+.15,.4,440,.1)}playNostalgic(){let e=this.getContext().currentTime;this.puff(e,.25,800,.15),this.warmTone(e+.1,.4,440,.12,500),this.warmTone(e+.3,.45,392,.1,450)}playSurprised(){let e=this.getContext().currentTime;this.puff(e,.06,2800,.25),this.tone(e+.02,.15,659,.2,`sine`,988)}playAwestruck(){let e=this.getContext().currentTime;this.puff(e,.2,1500,.2),this.shimmer(e+.08,.4,440,.15)}playConfused(){let e=this.getContext().currentTime;this.puff(e,.12,1200,.18),this.tone(e+.04,.2,440,.12,`sine`,494),this.tone(e+.15,.15,466,.1)}setVolume(e){this.volume=Math.max(0,Math.min(1,e))}getVolume(){return this.volume}mute(){this.muted=!0}unmute(){this.muted=!1}isMuted(){return this.muted}play(e){if(this.muted)return;let t={joyful:()=>this.playJoyful(),content:()=>this.playContent(),excited:()=>this.playExcited(),proud:()=>this.playProud(),hopeful:()=>this.playHopeful(),relieved:()=>this.playRelieved(),grateful:()=>this.playGrateful(),peaceful:()=>this.playPeaceful(),playful:()=>this.playPlayful(),amused:()=>this.playAmused(),curious:()=>this.playCurious(),inspired:()=>this.playInspired(),confident:()=>this.playConfident(),loved:()=>this.playLoved(),comforted:()=>this.playComforted(),energized:()=>this.playEnergized(),celebrated:()=>this.playCelebrated(),sad:()=>this.playSad(),lonely:()=>this.playLonely(),disappointed:()=>this.playDisappointed(),heartbroken:()=>this.playSad(),grieving:()=>this.playSad(),hopeless:()=>this.playLonely(),empty:()=>this.playLonely(),discouraged:()=>this.playDisappointed(),melancholic:()=>this.playMelancholic(),homesick:()=>this.playNostalgic(),hurt:()=>this.playSad(),miserable:()=>this.playSad(),regretful:()=>this.playMelancholic(),ashamed:()=>this.playDisappointed(),inferior:()=>this.playDisappointed(),anxious:()=>this.playAnxious(),worried:()=>this.playWorried(),afraid:()=>this.playAnxious(),terrified:()=>this.playStartled(),panicked:()=>this.playStartled(),nervous:()=>this.playNervous(),uneasy:()=>this.playWorried(),insecure:()=>this.playNervous(),overwhelmed:()=>this.playAnxious(),stressed:()=>this.playAnxious(),tense:()=>this.playAnxious(),apprehensive:()=>this.playWorried(),startled:()=>this.playStartled(),suspicious:()=>this.playWorried(),vulnerable:()=>this.playNervous(),annoyed:()=>this.playAnnoyed(),irritated:()=>this.playAnnoyed(),frustrated:()=>this.playFrustrated(),angry:()=>this.playFrustrated(),enraged:()=>this.playFrustrated(),bitter:()=>this.playFrustrated(),resentful:()=>this.playAnnoyed(),jealous:()=>this.playAnnoyed(),envious:()=>this.playAnnoyed(),indignant:()=>this.playFrustrated(),impatient:()=>this.playImpatient(),hostile:()=>this.playFrustrated(),contemptuous:()=>this.playAnnoyed(),tired:()=>this.playTired(),exhausted:()=>this.playExhausted(),drained:()=>this.playExhausted(),burnedOut:()=>this.playExhausted(),numb:()=>this.playExhausted(),bored:()=>this.playBored(),unmotivated:()=>this.playBored(),apathetic:()=>this.playBored(),restless:()=>this.playTired(),calm:()=>this.playCalm(),relaxed:()=>this.playRelaxed(),atEase:()=>this.playRelaxed(),balanced:()=>this.playCalm(),stable:()=>this.playGrounded(),secure:()=>this.playSafe(),safe:()=>this.playSafe(),centered:()=>this.playGrounded(),grounded:()=>this.playGrounded(),accepting:()=>this.playCalm(),connected:()=>this.playConnected(),accepted:()=>this.playAppreciated(),included:()=>this.playConnected(),belonging:()=>this.playConnected(),appreciated:()=>this.playAppreciated(),valued:()=>this.playAppreciated(),respected:()=>this.playAppreciated(),supported:()=>this.playSupported(),protective:()=>this.playSupported(),compassionate:()=>this.playConnected(),empathetic:()=>this.playConnected(),conflicted:()=>this.playConfused(),confused:()=>this.playConfused(),ambivalent:()=>this.playConfused(),nostalgic:()=>this.playNostalgic(),guilty:()=>this.playDisappointed(),embarrassed:()=>this.playNervous(),surprised:()=>this.playSurprised(),shocked:()=>this.playStartled(),awestruck:()=>this.playAwestruck(),skeptical:()=>this.playConfused()}[e];t&&t()}dispose(){this.audioContext&&=(this.audioContext.close(),null)}},t=new e;Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return e}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return t}});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"audio-Cvmemu84.cjs","names":[],"sources":["../src/audio/emotional-sounds.ts"],"sourcesContent":["/**\n * Schmancy Emotional Sound Library\n *\n * A curated collection of soft, elegant sounds organized by emotional categories.\n * Each sound is designed to be non-intrusive, emotionally evocative, and beautiful.\n *\n * Inspired by the gentle sounds of nature - soft air, gentle chimes, and warm tones.\n *\n * @example\n * ```typescript\n * import { $sounds } from '@schmancy/audio'\n *\n * // Play a feeling\n * $sounds.play('joyful')\n * $sounds.play('relieved')\n * $sounds.play('curious')\n *\n * // Adjust volume\n * $sounds.setVolume(0.2)\n *\n * // Mute/unmute\n * $sounds.mute()\n * $sounds.unmute()\n * ```\n */\n\n// ============================================================================\n// TYPES\n// ============================================================================\n\n/** Happy / Pleasant feelings */\nexport type HappyFeeling =\n | 'joyful' | 'content' | 'excited' | 'proud' | 'hopeful'\n | 'relieved' | 'grateful' | 'peaceful' | 'playful' | 'amused'\n | 'curious' | 'inspired' | 'confident' | 'loved' | 'comforted' | 'energized'\n | 'celebrated'\n\n/** Sad / Low feelings */\nexport type SadFeeling =\n | 'sad' | 'lonely' | 'disappointed' | 'heartbroken' | 'grieving'\n | 'hopeless' | 'empty' | 'discouraged' | 'melancholic' | 'homesick'\n | 'hurt' | 'miserable' | 'regretful' | 'ashamed' | 'inferior'\n\n/** Anxious / Fearful feelings */\nexport type AnxiousFeeling =\n | 'anxious' | 'worried' | 'afraid' | 'terrified' | 'panicked'\n | 'nervous' | 'uneasy' | 'insecure' | 'overwhelmed' | 'stressed'\n | 'tense' | 'apprehensive' | 'startled' | 'suspicious' | 'vulnerable'\n\n/** Angry / Frustrated feelings */\nexport type AngryFeeling =\n | 'annoyed' | 'irritated' | 'frustrated' | 'angry' | 'enraged'\n | 'bitter' | 'resentful' | 'jealous' | 'envious' | 'indignant'\n | 'impatient' | 'hostile' | 'contemptuous'\n\n/** Tired / Drained feelings */\nexport type TiredFeeling =\n | 'tired' | 'exhausted' | 'drained' | 'burnedOut' | 'numb'\n | 'bored' | 'unmotivated' | 'apathetic' | 'restless'\n\n/** Calm / Grounded feelings */\nexport type CalmFeeling =\n | 'calm' | 'relaxed' | 'atEase' | 'balanced' | 'stable'\n | 'secure' | 'safe' | 'centered' | 'grounded' | 'accepting'\n\n/** Connected / Social feelings */\nexport type ConnectedFeeling =\n | 'connected' | 'accepted' | 'included' | 'belonging' | 'appreciated'\n | 'valued' | 'respected' | 'supported' | 'protective' | 'compassionate' | 'empathetic'\n\n/** Mixed / Complicated feelings */\nexport type MixedFeeling =\n | 'conflicted' | 'confused' | 'ambivalent' | 'nostalgic' | 'guilty'\n | 'embarrassed' | 'surprised' | 'shocked' | 'awestruck' | 'skeptical'\n\n/** All feelings */\nexport type Feeling =\n | HappyFeeling | SadFeeling | AnxiousFeeling | AngryFeeling\n | TiredFeeling | CalmFeeling | ConnectedFeeling | MixedFeeling\n\n// FeelingCategory is defined in ../types/mood-audio.types.ts and re-exported\n// from ./index.ts — the canonical source.\n\n// ============================================================================\n// SOUND GENERATOR\n// ============================================================================\n\n/**\n * Emotional Sound Generator\n * Creates soft, beautiful sounds using Web Audio API\n */\nexport class EmotionalSoundGenerator {\n private audioContext: AudioContext | null = null\n private volume = 0.15\n private muted = false\n\n private getContext(): AudioContext {\n if (!this.audioContext) {\n const AudioContextClass = window.AudioContext || (window as any).webkitAudioContext\n this.audioContext = new AudioContextClass()\n }\n // Resume if suspended (autoplay policy)\n if (this.audioContext.state === 'suspended') {\n this.audioContext.resume()\n }\n return this.audioContext\n }\n\n // ==========================================================================\n // CORE SOUND PRIMITIVES\n // ==========================================================================\n\n /** Soft air puff - the foundation of our sound palette */\n private puff(startTime: number, duration: number, freq: number, vol: number): void {\n const ctx = this.getContext()\n const bufferSize = Math.floor(ctx.sampleRate * duration)\n const buffer = ctx.createBuffer(1, bufferSize, ctx.sampleRate)\n const data = buffer.getChannelData(0)\n\n for (let i = 0; i < bufferSize; i++) {\n data[i] = Math.random() * 2 - 1\n }\n\n const noise = ctx.createBufferSource()\n noise.buffer = buffer\n\n const filter = ctx.createBiquadFilter()\n filter.type = 'bandpass'\n filter.frequency.value = freq\n filter.Q.value = 0.7\n\n const gain = ctx.createGain()\n gain.gain.setValueAtTime(0, startTime)\n gain.gain.linearRampToValueAtTime(vol * this.volume, startTime + 0.015)\n gain.gain.exponentialRampToValueAtTime(0.001, startTime + duration)\n\n noise.connect(filter).connect(gain).connect(ctx.destination)\n noise.start(startTime)\n noise.stop(startTime + duration)\n }\n\n /** Gentle tone with envelope */\n private tone(\n startTime: number,\n duration: number,\n freq: number,\n vol: number,\n type: OscillatorType = 'sine',\n freqEnd?: number\n ): void {\n const ctx = this.getContext()\n const osc = ctx.createOscillator()\n const gain = ctx.createGain()\n\n osc.type = type\n osc.frequency.setValueAtTime(freq, startTime)\n if (freqEnd) {\n osc.frequency.exponentialRampToValueAtTime(freqEnd, startTime + duration * 0.8)\n }\n\n gain.gain.setValueAtTime(0, startTime)\n gain.gain.linearRampToValueAtTime(vol * this.volume, startTime + 0.02)\n gain.gain.exponentialRampToValueAtTime(0.001, startTime + duration)\n\n osc.connect(gain).connect(ctx.destination)\n osc.start(startTime)\n osc.stop(startTime + duration)\n }\n\n /** Warm filtered tone */\n private warmTone(\n startTime: number,\n duration: number,\n freq: number,\n vol: number,\n filterFreq = 800\n ): void {\n const ctx = this.getContext()\n const osc = ctx.createOscillator()\n const filter = ctx.createBiquadFilter()\n const gain = ctx.createGain()\n\n osc.type = 'sine'\n osc.frequency.value = freq\n\n filter.type = 'lowpass'\n filter.frequency.value = filterFreq\n\n gain.gain.setValueAtTime(0, startTime)\n gain.gain.linearRampToValueAtTime(vol * this.volume, startTime + 0.03)\n gain.gain.exponentialRampToValueAtTime(0.001, startTime + duration)\n\n osc.connect(filter).connect(gain).connect(ctx.destination)\n osc.start(startTime)\n osc.stop(startTime + duration)\n }\n\n /** Shimmer - multiple soft tones */\n private shimmer(startTime: number, duration: number, baseFreq: number, vol: number): void {\n const freqs = [baseFreq, baseFreq * 1.5, baseFreq * 2]\n freqs.forEach((f, i) => {\n this.tone(startTime + i * 0.02, duration - i * 0.02, f, vol * (1 - i * 0.2))\n })\n }\n\n // ==========================================================================\n // HAPPY / PLEASANT FEELINGS\n // ==========================================================================\n\n private playJoyful(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Double puff (excited exhale)\n this.puff(now, 0.08, 3000, 0.3)\n this.puff(now + 0.06, 0.1, 3500, 0.35)\n\n // Rising happy tones\n this.tone(now + 0.02, 0.15, 784, 0.25) // G5\n this.tone(now + 0.1, 0.2, 988, 0.3) // B5\n this.tone(now + 0.18, 0.25, 1175, 0.25) // D6\n }\n\n private playContent(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Gentle satisfied sigh\n this.puff(now, 0.2, 1500, 0.25)\n this.warmTone(now + 0.05, 0.3, 523, 0.2) // C5\n this.warmTone(now + 0.15, 0.35, 659, 0.15) // E5\n }\n\n private playExcited(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Quick ascending puffs\n this.puff(now, 0.06, 2500, 0.25)\n this.puff(now + 0.05, 0.06, 3000, 0.3)\n this.puff(now + 0.1, 0.08, 3500, 0.35)\n\n // Sparkly ascending tones\n this.tone(now + 0.02, 0.12, 880, 0.2)\n this.tone(now + 0.08, 0.12, 1047, 0.25)\n this.tone(now + 0.14, 0.15, 1319, 0.3)\n }\n\n private playProud(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Confident puff\n this.puff(now, 0.15, 1800, 0.3)\n\n // Strong rising chord\n this.tone(now + 0.05, 0.25, 523, 0.25) // C5\n this.tone(now + 0.08, 0.25, 659, 0.2) // E5\n this.tone(now + 0.11, 0.3, 784, 0.25) // G5\n }\n\n private playHopeful(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Light ascending puff\n this.puff(now, 0.12, 2200, 0.2)\n\n // Gentle rising tone\n this.tone(now + 0.03, 0.3, 659, 0.2, 'sine', 880) // E5 -> A5\n }\n\n private playRelieved(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Long exhale\n this.puff(now, 0.25, 1200, 0.35)\n\n // Descending release\n this.warmTone(now + 0.1, 0.35, 659, 0.2) // E5\n this.warmTone(now + 0.25, 0.4, 523, 0.15) // C5\n }\n\n private playGrateful(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Warm gentle puff\n this.puff(now, 0.15, 1500, 0.25)\n\n // Warm embracing tones\n this.warmTone(now + 0.05, 0.3, 440, 0.2) // A4\n this.warmTone(now + 0.15, 0.35, 523, 0.2) // C5\n this.warmTone(now + 0.25, 0.4, 659, 0.15) // E5\n }\n\n private playPeaceful(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Very soft puff\n this.puff(now, 0.3, 800, 0.15)\n\n // Gentle sustained tone\n this.warmTone(now + 0.1, 0.5, 392, 0.12, 500) // G4\n }\n\n private playPlayful(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Bouncy puffs\n this.puff(now, 0.05, 2800, 0.2)\n this.puff(now + 0.08, 0.05, 3200, 0.25)\n this.puff(now + 0.14, 0.06, 2800, 0.2)\n\n // Playful tones\n this.tone(now + 0.03, 0.1, 784, 0.2)\n this.tone(now + 0.1, 0.08, 988, 0.25)\n this.tone(now + 0.16, 0.12, 784, 0.2)\n }\n\n private playAmused(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Little chuckle puffs\n this.puff(now, 0.04, 2500, 0.2)\n this.puff(now + 0.06, 0.04, 2800, 0.22)\n this.puff(now + 0.11, 0.05, 2600, 0.18)\n\n // Amused tone\n this.tone(now + 0.05, 0.15, 880, 0.15)\n }\n\n private playCurious(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Questioning puff\n this.puff(now, 0.1, 2000, 0.2)\n\n // Rising questioning tone\n this.tone(now + 0.03, 0.2, 659, 0.2, 'sine', 880) // E5 -> A5 (question)\n }\n\n private playInspired(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Bright puff\n this.puff(now, 0.1, 2500, 0.25)\n\n // Ascending shimmer\n this.shimmer(now + 0.05, 0.3, 523, 0.2)\n }\n\n private playConfident(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Solid puff\n this.puff(now, 0.12, 1500, 0.3)\n\n // Strong chord\n this.tone(now + 0.04, 0.2, 523, 0.25) // C5\n this.tone(now + 0.06, 0.22, 659, 0.2) // E5\n }\n\n private playLoved(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Warm embrace puff\n this.puff(now, 0.2, 1000, 0.2)\n\n // Warm loving tones\n this.warmTone(now + 0.08, 0.4, 392, 0.18, 600) // G4\n this.warmTone(now + 0.2, 0.45, 494, 0.15, 600) // B4\n }\n\n private playComforted(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Soft blanket puff\n this.puff(now, 0.25, 900, 0.18)\n\n // Gentle descending comfort\n this.warmTone(now + 0.1, 0.35, 523, 0.15) // C5\n this.warmTone(now + 0.25, 0.4, 440, 0.12) // A4\n }\n\n private playEnergized(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Quick energetic puffs\n this.puff(now, 0.05, 3000, 0.25)\n this.puff(now + 0.04, 0.05, 3500, 0.28)\n\n // Bright ascending tones\n this.tone(now + 0.02, 0.1, 784, 0.2)\n this.tone(now + 0.08, 0.12, 988, 0.25)\n this.tone(now + 0.14, 0.15, 1175, 0.22)\n }\n\n private playCelebrated(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Bright celebratory chime\n this.puff(now, 0.08, 2500, 0.2)\n\n // Triumphant ascending arpeggio (C major -> resolve)\n this.tone(now + 0.02, 0.18, 523, 0.22) // C5\n this.tone(now + 0.08, 0.18, 659, 0.24) // E5\n this.tone(now + 0.14, 0.2, 784, 0.26) // G5\n this.tone(now + 0.22, 0.3, 1047, 0.22) // C6 - resolution\n\n // Warm shimmer on resolution\n this.shimmer(now + 0.25, 0.35, 523, 0.12)\n }\n\n // ==========================================================================\n // SAD / LOW FEELINGS\n // ==========================================================================\n\n private playSad(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Heavy sigh\n this.puff(now, 0.3, 600, 0.25)\n\n // Descending sad tone\n this.warmTone(now + 0.1, 0.4, 392, 0.2, 400) // G4\n this.warmTone(now + 0.3, 0.45, 294, 0.15, 350) // D4\n }\n\n private playLonely(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Single isolated puff\n this.puff(now, 0.2, 700, 0.2)\n\n // Sparse, distant tone\n this.warmTone(now + 0.15, 0.5, 330, 0.12, 450) // E4\n }\n\n private playDisappointed(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Deflating puff\n this.puff(now, 0.25, 800, 0.25)\n\n // Falling tone\n this.tone(now + 0.08, 0.3, 523, 0.18, 'sine', 349) // C5 -> F4\n }\n\n private playMelancholic(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Wistful puff\n this.puff(now, 0.3, 700, 0.18)\n\n // Bittersweet tones\n this.warmTone(now + 0.1, 0.45, 440, 0.15, 500) // A4\n this.warmTone(now + 0.3, 0.5, 392, 0.12, 450) // G4\n }\n\n // ==========================================================================\n // ANXIOUS / FEARFUL FEELINGS\n // ==========================================================================\n\n private playAnxious(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Tight, quick puffs\n this.puff(now, 0.08, 1800, 0.2)\n this.puff(now + 0.12, 0.08, 1900, 0.22)\n\n // Uncertain wobble\n const osc = ctx.createOscillator()\n const gain = ctx.createGain()\n const lfo = ctx.createOscillator()\n const lfoGain = ctx.createGain()\n\n osc.frequency.value = 440\n lfo.frequency.value = 8\n lfoGain.gain.value = 20\n\n lfo.connect(lfoGain).connect(osc.frequency)\n\n gain.gain.setValueAtTime(0, now)\n gain.gain.linearRampToValueAtTime(this.volume * 0.15, now + 0.03)\n gain.gain.exponentialRampToValueAtTime(0.001, now + 0.25)\n\n osc.connect(gain).connect(ctx.destination)\n lfo.start(now)\n osc.start(now)\n osc.stop(now + 0.3)\n lfo.stop(now + 0.3)\n }\n\n private playWorried(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Hesitant puff\n this.puff(now, 0.15, 1200, 0.2)\n\n // Minor questioning tone\n this.tone(now + 0.05, 0.25, 349, 0.15, 'sine', 392) // F4 -> G4 (uncertain)\n }\n\n private playNervous(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Quick shallow puffs\n this.puff(now, 0.05, 2000, 0.18)\n this.puff(now + 0.08, 0.05, 2100, 0.18)\n this.puff(now + 0.15, 0.06, 2000, 0.16)\n\n // Trembling tone\n this.tone(now + 0.04, 0.2, 494, 0.12) // B4\n }\n\n private playStartled(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Quick sharp puff\n this.puff(now, 0.04, 3500, 0.3)\n\n // Quick high tone\n this.tone(now, 0.08, 1047, 0.25) // C6\n this.tone(now + 0.05, 0.15, 880, 0.15) // A5\n }\n\n // ==========================================================================\n // ANGRY / FRUSTRATED FEELINGS\n // ==========================================================================\n\n private playAnnoyed(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Short frustrated puff\n this.puff(now, 0.1, 1000, 0.25)\n\n // Low rumble\n this.warmTone(now + 0.03, 0.2, 294, 0.18, 400) // D4\n }\n\n private playFrustrated(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Tense puff\n this.puff(now, 0.12, 900, 0.28)\n\n // Blocked feeling\n this.tone(now + 0.04, 0.15, 349, 0.2) // F4\n this.tone(now + 0.12, 0.12, 330, 0.18) // E4\n }\n\n private playImpatient(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Quick tapping puffs\n this.puff(now, 0.04, 1500, 0.2)\n this.puff(now + 0.08, 0.04, 1500, 0.2)\n this.puff(now + 0.16, 0.04, 1500, 0.22)\n\n // Urgent tone\n this.tone(now + 0.06, 0.1, 523, 0.15)\n }\n\n // ==========================================================================\n // TIRED / DRAINED FEELINGS\n // ==========================================================================\n\n private playTired(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Heavy slow puff\n this.puff(now, 0.35, 500, 0.2)\n\n // Drooping tone\n this.warmTone(now + 0.1, 0.4, 330, 0.12, 350) // E4\n }\n\n private playExhausted(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Very slow, heavy exhale\n this.puff(now, 0.45, 400, 0.18)\n\n // Descending fade\n this.warmTone(now + 0.15, 0.5, 294, 0.1, 300) // D4\n }\n\n private playBored(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Flat sigh\n this.puff(now, 0.25, 600, 0.15)\n\n // Monotone\n this.warmTone(now + 0.1, 0.3, 349, 0.1, 400) // F4\n }\n\n // ==========================================================================\n // CALM / GROUNDED FEELINGS\n // ==========================================================================\n\n private playCalm(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Slow, peaceful puff\n this.puff(now, 0.3, 600, 0.12)\n\n // Sustained gentle tone\n this.warmTone(now + 0.1, 0.5, 392, 0.1, 500) // G4\n }\n\n private playRelaxed(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Long soft exhale\n this.puff(now, 0.35, 700, 0.15)\n\n // Gentle descending\n this.warmTone(now + 0.15, 0.45, 440, 0.1) // A4\n this.warmTone(now + 0.35, 0.5, 392, 0.08) // G4\n }\n\n private playGrounded(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Deep centered puff\n this.puff(now, 0.25, 500, 0.2)\n\n // Low stable tone\n this.warmTone(now + 0.1, 0.4, 262, 0.15, 350) // C4\n }\n\n private playSafe(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Soft enveloping puff\n this.puff(now, 0.3, 700, 0.15)\n\n // Warm embracing tones\n this.warmTone(now + 0.1, 0.4, 349, 0.12) // F4\n this.warmTone(now + 0.25, 0.45, 440, 0.1) // A4\n }\n\n // ==========================================================================\n // CONNECTED / SOCIAL FEELINGS\n // ==========================================================================\n\n private playConnected(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Warm shared breath\n this.puff(now, 0.2, 1200, 0.18)\n\n // Harmonious tones\n this.warmTone(now + 0.08, 0.3, 440, 0.15) // A4\n this.warmTone(now + 0.12, 0.32, 523, 0.12) // C5\n }\n\n private playAppreciated(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Touched puff\n this.puff(now, 0.15, 1500, 0.2)\n\n // Warm ascending\n this.warmTone(now + 0.05, 0.25, 440, 0.15)\n this.warmTone(now + 0.15, 0.3, 523, 0.18)\n }\n\n private playSupported(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Held puff\n this.puff(now, 0.25, 900, 0.18)\n\n // Stable harmonies\n this.warmTone(now + 0.1, 0.35, 349, 0.12)\n this.warmTone(now + 0.15, 0.4, 440, 0.1)\n }\n\n // ==========================================================================\n // MIXED / COMPLICATED FEELINGS\n // ==========================================================================\n\n private playNostalgic(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Wistful distant puff\n this.puff(now, 0.25, 800, 0.15)\n\n // Bittersweet memory tones\n this.warmTone(now + 0.1, 0.4, 440, 0.12, 500) // A4\n this.warmTone(now + 0.3, 0.45, 392, 0.1, 450) // G4\n }\n\n private playSurprised(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Quick gasp\n this.puff(now, 0.06, 2800, 0.25)\n\n // Rising tone\n this.tone(now + 0.02, 0.15, 659, 0.2, 'sine', 988) // E5 -> B5\n }\n\n private playAwestruck(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Wonder-filled breath\n this.puff(now, 0.2, 1500, 0.2)\n\n // Ascending wonder\n this.shimmer(now + 0.08, 0.4, 440, 0.15)\n }\n\n private playConfused(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Uncertain puff\n this.puff(now, 0.12, 1200, 0.18)\n\n // Questioning wobble\n this.tone(now + 0.04, 0.2, 440, 0.12, 'sine', 494) // A4 -> B4\n this.tone(now + 0.15, 0.15, 466, 0.1) // Bb4 (chromatic confusion)\n }\n\n // ==========================================================================\n // PUBLIC API\n // ==========================================================================\n\n /** Set volume (0.0 - 1.0) */\n setVolume(vol: number): void {\n this.volume = Math.max(0, Math.min(1, vol))\n }\n\n /** Get current volume */\n getVolume(): number {\n return this.volume\n }\n\n /** Mute all sounds */\n mute(): void {\n this.muted = true\n }\n\n /** Unmute sounds */\n unmute(): void {\n this.muted = false\n }\n\n /** Check if muted */\n isMuted(): boolean {\n return this.muted\n }\n\n /** Play a feeling */\n play(feeling: Feeling): void {\n if (this.muted) return\n\n // Map feelings to their sound methods\n const soundMap: Record<Feeling, () => void> = {\n // Happy\n joyful: () => this.playJoyful(),\n content: () => this.playContent(),\n excited: () => this.playExcited(),\n proud: () => this.playProud(),\n hopeful: () => this.playHopeful(),\n relieved: () => this.playRelieved(),\n grateful: () => this.playGrateful(),\n peaceful: () => this.playPeaceful(),\n playful: () => this.playPlayful(),\n amused: () => this.playAmused(),\n curious: () => this.playCurious(),\n inspired: () => this.playInspired(),\n confident: () => this.playConfident(),\n loved: () => this.playLoved(),\n comforted: () => this.playComforted(),\n energized: () => this.playEnergized(),\n celebrated: () => this.playCelebrated(),\n\n // Sad\n sad: () => this.playSad(),\n lonely: () => this.playLonely(),\n disappointed: () => this.playDisappointed(),\n heartbroken: () => this.playSad(), // Similar to sad\n grieving: () => this.playSad(),\n hopeless: () => this.playLonely(),\n empty: () => this.playLonely(),\n discouraged: () => this.playDisappointed(),\n melancholic: () => this.playMelancholic(),\n homesick: () => this.playNostalgic(),\n hurt: () => this.playSad(),\n miserable: () => this.playSad(),\n regretful: () => this.playMelancholic(),\n ashamed: () => this.playDisappointed(),\n inferior: () => this.playDisappointed(),\n\n // Anxious\n anxious: () => this.playAnxious(),\n worried: () => this.playWorried(),\n afraid: () => this.playAnxious(),\n terrified: () => this.playStartled(),\n panicked: () => this.playStartled(),\n nervous: () => this.playNervous(),\n uneasy: () => this.playWorried(),\n insecure: () => this.playNervous(),\n overwhelmed: () => this.playAnxious(),\n stressed: () => this.playAnxious(),\n tense: () => this.playAnxious(),\n apprehensive: () => this.playWorried(),\n startled: () => this.playStartled(),\n suspicious: () => this.playWorried(),\n vulnerable: () => this.playNervous(),\n\n // Angry\n annoyed: () => this.playAnnoyed(),\n irritated: () => this.playAnnoyed(),\n frustrated: () => this.playFrustrated(),\n angry: () => this.playFrustrated(),\n enraged: () => this.playFrustrated(),\n bitter: () => this.playFrustrated(),\n resentful: () => this.playAnnoyed(),\n jealous: () => this.playAnnoyed(),\n envious: () => this.playAnnoyed(),\n indignant: () => this.playFrustrated(),\n impatient: () => this.playImpatient(),\n hostile: () => this.playFrustrated(),\n contemptuous: () => this.playAnnoyed(),\n\n // Tired\n tired: () => this.playTired(),\n exhausted: () => this.playExhausted(),\n drained: () => this.playExhausted(),\n burnedOut: () => this.playExhausted(),\n numb: () => this.playExhausted(),\n bored: () => this.playBored(),\n unmotivated: () => this.playBored(),\n apathetic: () => this.playBored(),\n restless: () => this.playTired(),\n\n // Calm\n calm: () => this.playCalm(),\n relaxed: () => this.playRelaxed(),\n atEase: () => this.playRelaxed(),\n balanced: () => this.playCalm(),\n stable: () => this.playGrounded(),\n secure: () => this.playSafe(),\n safe: () => this.playSafe(),\n centered: () => this.playGrounded(),\n grounded: () => this.playGrounded(),\n accepting: () => this.playCalm(),\n\n // Connected\n connected: () => this.playConnected(),\n accepted: () => this.playAppreciated(),\n included: () => this.playConnected(),\n belonging: () => this.playConnected(),\n appreciated: () => this.playAppreciated(),\n valued: () => this.playAppreciated(),\n respected: () => this.playAppreciated(),\n supported: () => this.playSupported(),\n protective: () => this.playSupported(),\n compassionate: () => this.playConnected(),\n empathetic: () => this.playConnected(),\n\n // Mixed\n conflicted: () => this.playConfused(),\n confused: () => this.playConfused(),\n ambivalent: () => this.playConfused(),\n nostalgic: () => this.playNostalgic(),\n guilty: () => this.playDisappointed(),\n embarrassed: () => this.playNervous(),\n surprised: () => this.playSurprised(),\n shocked: () => this.playStartled(),\n awestruck: () => this.playAwestruck(),\n skeptical: () => this.playConfused(),\n }\n\n const playFn = soundMap[feeling]\n if (playFn) {\n playFn()\n }\n }\n\n /** Dispose audio context */\n dispose(): void {\n if (this.audioContext) {\n this.audioContext.close()\n this.audioContext = null\n }\n }\n}\n\n// ============================================================================\n// SINGLETON EXPORT\n// ============================================================================\n\n/** Global emotional sound player */\nexport const $sounds = new EmotionalSoundGenerator()\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"audio-DISBFOaR.cjs","names":[],"sources":["../src/audio/emotional-sounds.ts"],"sourcesContent":["/**\n * Schmancy Emotional Sound Library\n *\n * A curated collection of soft, elegant sounds organized by emotional categories.\n * Each sound is designed to be non-intrusive, emotionally evocative, and beautiful.\n *\n * Inspired by the gentle sounds of nature - soft air, gentle chimes, and warm tones.\n *\n * @example\n * ```typescript\n * import { $sounds } from '@schmancy/audio'\n *\n * // Play a feeling\n * $sounds.play('joyful')\n * $sounds.play('relieved')\n * $sounds.play('curious')\n *\n * // Adjust volume\n * $sounds.setVolume(0.2)\n *\n * // Mute/unmute\n * $sounds.mute()\n * $sounds.unmute()\n * ```\n */\n\n// ============================================================================\n// TYPES\n// ============================================================================\n\n/** Happy / Pleasant feelings */\nexport type HappyFeeling =\n | 'joyful' | 'content' | 'excited' | 'proud' | 'hopeful'\n | 'relieved' | 'grateful' | 'peaceful' | 'playful' | 'amused'\n | 'curious' | 'inspired' | 'confident' | 'loved' | 'comforted' | 'energized'\n | 'celebrated'\n\n/** Sad / Low feelings */\nexport type SadFeeling =\n | 'sad' | 'lonely' | 'disappointed' | 'heartbroken' | 'grieving'\n | 'hopeless' | 'empty' | 'discouraged' | 'melancholic' | 'homesick'\n | 'hurt' | 'miserable' | 'regretful' | 'ashamed' | 'inferior'\n\n/** Anxious / Fearful feelings */\nexport type AnxiousFeeling =\n | 'anxious' | 'worried' | 'afraid' | 'terrified' | 'panicked'\n | 'nervous' | 'uneasy' | 'insecure' | 'overwhelmed' | 'stressed'\n | 'tense' | 'apprehensive' | 'startled' | 'suspicious' | 'vulnerable'\n\n/** Angry / Frustrated feelings */\nexport type AngryFeeling =\n | 'annoyed' | 'irritated' | 'frustrated' | 'angry' | 'enraged'\n | 'bitter' | 'resentful' | 'jealous' | 'envious' | 'indignant'\n | 'impatient' | 'hostile' | 'contemptuous'\n\n/** Tired / Drained feelings */\nexport type TiredFeeling =\n | 'tired' | 'exhausted' | 'drained' | 'burnedOut' | 'numb'\n | 'bored' | 'unmotivated' | 'apathetic' | 'restless'\n\n/** Calm / Grounded feelings */\nexport type CalmFeeling =\n | 'calm' | 'relaxed' | 'atEase' | 'balanced' | 'stable'\n | 'secure' | 'safe' | 'centered' | 'grounded' | 'accepting'\n\n/** Connected / Social feelings */\nexport type ConnectedFeeling =\n | 'connected' | 'accepted' | 'included' | 'belonging' | 'appreciated'\n | 'valued' | 'respected' | 'supported' | 'protective' | 'compassionate' | 'empathetic'\n\n/** Mixed / Complicated feelings */\nexport type MixedFeeling =\n | 'conflicted' | 'confused' | 'ambivalent' | 'nostalgic' | 'guilty'\n | 'embarrassed' | 'surprised' | 'shocked' | 'awestruck' | 'skeptical'\n\n/** All feelings */\nexport type Feeling =\n | HappyFeeling | SadFeeling | AnxiousFeeling | AngryFeeling\n | TiredFeeling | CalmFeeling | ConnectedFeeling | MixedFeeling\n\n// FeelingCategory is defined in ../types/mood-audio.types.ts and re-exported\n// from ./index.ts — the canonical source.\n\n// ============================================================================\n// SOUND GENERATOR\n// ============================================================================\n\n/**\n * Emotional Sound Generator\n * Creates soft, beautiful sounds using Web Audio API\n */\nexport class EmotionalSoundGenerator {\n private audioContext: AudioContext | null = null\n private volume = 0.15\n private muted = false\n\n private getContext(): AudioContext {\n if (!this.audioContext) {\n const AudioContextClass = window.AudioContext || (window as any).webkitAudioContext\n this.audioContext = new AudioContextClass()\n }\n // Resume if suspended (autoplay policy)\n if (this.audioContext.state === 'suspended') {\n this.audioContext.resume()\n }\n return this.audioContext\n }\n\n // ==========================================================================\n // CORE SOUND PRIMITIVES\n // ==========================================================================\n\n /** Soft air puff - the foundation of our sound palette */\n private puff(startTime: number, duration: number, freq: number, vol: number): void {\n const ctx = this.getContext()\n const bufferSize = Math.floor(ctx.sampleRate * duration)\n const buffer = ctx.createBuffer(1, bufferSize, ctx.sampleRate)\n const data = buffer.getChannelData(0)\n\n for (let i = 0; i < bufferSize; i++) {\n data[i] = Math.random() * 2 - 1\n }\n\n const noise = ctx.createBufferSource()\n noise.buffer = buffer\n\n const filter = ctx.createBiquadFilter()\n filter.type = 'bandpass'\n filter.frequency.value = freq\n filter.Q.value = 0.7\n\n const gain = ctx.createGain()\n gain.gain.setValueAtTime(0, startTime)\n gain.gain.linearRampToValueAtTime(vol * this.volume, startTime + 0.015)\n gain.gain.exponentialRampToValueAtTime(0.001, startTime + duration)\n\n noise.connect(filter).connect(gain).connect(ctx.destination)\n noise.start(startTime)\n noise.stop(startTime + duration)\n }\n\n /** Gentle tone with envelope */\n private tone(\n startTime: number,\n duration: number,\n freq: number,\n vol: number,\n type: OscillatorType = 'sine',\n freqEnd?: number\n ): void {\n const ctx = this.getContext()\n const osc = ctx.createOscillator()\n const gain = ctx.createGain()\n\n osc.type = type\n osc.frequency.setValueAtTime(freq, startTime)\n if (freqEnd) {\n osc.frequency.exponentialRampToValueAtTime(freqEnd, startTime + duration * 0.8)\n }\n\n gain.gain.setValueAtTime(0, startTime)\n gain.gain.linearRampToValueAtTime(vol * this.volume, startTime + 0.02)\n gain.gain.exponentialRampToValueAtTime(0.001, startTime + duration)\n\n osc.connect(gain).connect(ctx.destination)\n osc.start(startTime)\n osc.stop(startTime + duration)\n }\n\n /** Warm filtered tone */\n private warmTone(\n startTime: number,\n duration: number,\n freq: number,\n vol: number,\n filterFreq = 800\n ): void {\n const ctx = this.getContext()\n const osc = ctx.createOscillator()\n const filter = ctx.createBiquadFilter()\n const gain = ctx.createGain()\n\n osc.type = 'sine'\n osc.frequency.value = freq\n\n filter.type = 'lowpass'\n filter.frequency.value = filterFreq\n\n gain.gain.setValueAtTime(0, startTime)\n gain.gain.linearRampToValueAtTime(vol * this.volume, startTime + 0.03)\n gain.gain.exponentialRampToValueAtTime(0.001, startTime + duration)\n\n osc.connect(filter).connect(gain).connect(ctx.destination)\n osc.start(startTime)\n osc.stop(startTime + duration)\n }\n\n /** Shimmer - multiple soft tones */\n private shimmer(startTime: number, duration: number, baseFreq: number, vol: number): void {\n const freqs = [baseFreq, baseFreq * 1.5, baseFreq * 2]\n freqs.forEach((f, i) => {\n this.tone(startTime + i * 0.02, duration - i * 0.02, f, vol * (1 - i * 0.2))\n })\n }\n\n // ==========================================================================\n // HAPPY / PLEASANT FEELINGS\n // ==========================================================================\n\n private playJoyful(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Double puff (excited exhale)\n this.puff(now, 0.08, 3000, 0.3)\n this.puff(now + 0.06, 0.1, 3500, 0.35)\n\n // Rising happy tones\n this.tone(now + 0.02, 0.15, 784, 0.25) // G5\n this.tone(now + 0.1, 0.2, 988, 0.3) // B5\n this.tone(now + 0.18, 0.25, 1175, 0.25) // D6\n }\n\n private playContent(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Gentle satisfied sigh\n this.puff(now, 0.2, 1500, 0.25)\n this.warmTone(now + 0.05, 0.3, 523, 0.2) // C5\n this.warmTone(now + 0.15, 0.35, 659, 0.15) // E5\n }\n\n private playExcited(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Quick ascending puffs\n this.puff(now, 0.06, 2500, 0.25)\n this.puff(now + 0.05, 0.06, 3000, 0.3)\n this.puff(now + 0.1, 0.08, 3500, 0.35)\n\n // Sparkly ascending tones\n this.tone(now + 0.02, 0.12, 880, 0.2)\n this.tone(now + 0.08, 0.12, 1047, 0.25)\n this.tone(now + 0.14, 0.15, 1319, 0.3)\n }\n\n private playProud(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Confident puff\n this.puff(now, 0.15, 1800, 0.3)\n\n // Strong rising chord\n this.tone(now + 0.05, 0.25, 523, 0.25) // C5\n this.tone(now + 0.08, 0.25, 659, 0.2) // E5\n this.tone(now + 0.11, 0.3, 784, 0.25) // G5\n }\n\n private playHopeful(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Light ascending puff\n this.puff(now, 0.12, 2200, 0.2)\n\n // Gentle rising tone\n this.tone(now + 0.03, 0.3, 659, 0.2, 'sine', 880) // E5 -> A5\n }\n\n private playRelieved(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Long exhale\n this.puff(now, 0.25, 1200, 0.35)\n\n // Descending release\n this.warmTone(now + 0.1, 0.35, 659, 0.2) // E5\n this.warmTone(now + 0.25, 0.4, 523, 0.15) // C5\n }\n\n private playGrateful(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Warm gentle puff\n this.puff(now, 0.15, 1500, 0.25)\n\n // Warm embracing tones\n this.warmTone(now + 0.05, 0.3, 440, 0.2) // A4\n this.warmTone(now + 0.15, 0.35, 523, 0.2) // C5\n this.warmTone(now + 0.25, 0.4, 659, 0.15) // E5\n }\n\n private playPeaceful(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Very soft puff\n this.puff(now, 0.3, 800, 0.15)\n\n // Gentle sustained tone\n this.warmTone(now + 0.1, 0.5, 392, 0.12, 500) // G4\n }\n\n private playPlayful(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Bouncy puffs\n this.puff(now, 0.05, 2800, 0.2)\n this.puff(now + 0.08, 0.05, 3200, 0.25)\n this.puff(now + 0.14, 0.06, 2800, 0.2)\n\n // Playful tones\n this.tone(now + 0.03, 0.1, 784, 0.2)\n this.tone(now + 0.1, 0.08, 988, 0.25)\n this.tone(now + 0.16, 0.12, 784, 0.2)\n }\n\n private playAmused(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Little chuckle puffs\n this.puff(now, 0.04, 2500, 0.2)\n this.puff(now + 0.06, 0.04, 2800, 0.22)\n this.puff(now + 0.11, 0.05, 2600, 0.18)\n\n // Amused tone\n this.tone(now + 0.05, 0.15, 880, 0.15)\n }\n\n private playCurious(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Questioning puff\n this.puff(now, 0.1, 2000, 0.2)\n\n // Rising questioning tone\n this.tone(now + 0.03, 0.2, 659, 0.2, 'sine', 880) // E5 -> A5 (question)\n }\n\n private playInspired(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Bright puff\n this.puff(now, 0.1, 2500, 0.25)\n\n // Ascending shimmer\n this.shimmer(now + 0.05, 0.3, 523, 0.2)\n }\n\n private playConfident(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Solid puff\n this.puff(now, 0.12, 1500, 0.3)\n\n // Strong chord\n this.tone(now + 0.04, 0.2, 523, 0.25) // C5\n this.tone(now + 0.06, 0.22, 659, 0.2) // E5\n }\n\n private playLoved(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Warm embrace puff\n this.puff(now, 0.2, 1000, 0.2)\n\n // Warm loving tones\n this.warmTone(now + 0.08, 0.4, 392, 0.18, 600) // G4\n this.warmTone(now + 0.2, 0.45, 494, 0.15, 600) // B4\n }\n\n private playComforted(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Soft blanket puff\n this.puff(now, 0.25, 900, 0.18)\n\n // Gentle descending comfort\n this.warmTone(now + 0.1, 0.35, 523, 0.15) // C5\n this.warmTone(now + 0.25, 0.4, 440, 0.12) // A4\n }\n\n private playEnergized(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Quick energetic puffs\n this.puff(now, 0.05, 3000, 0.25)\n this.puff(now + 0.04, 0.05, 3500, 0.28)\n\n // Bright ascending tones\n this.tone(now + 0.02, 0.1, 784, 0.2)\n this.tone(now + 0.08, 0.12, 988, 0.25)\n this.tone(now + 0.14, 0.15, 1175, 0.22)\n }\n\n private playCelebrated(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Bright celebratory chime\n this.puff(now, 0.08, 2500, 0.2)\n\n // Triumphant ascending arpeggio (C major -> resolve)\n this.tone(now + 0.02, 0.18, 523, 0.22) // C5\n this.tone(now + 0.08, 0.18, 659, 0.24) // E5\n this.tone(now + 0.14, 0.2, 784, 0.26) // G5\n this.tone(now + 0.22, 0.3, 1047, 0.22) // C6 - resolution\n\n // Warm shimmer on resolution\n this.shimmer(now + 0.25, 0.35, 523, 0.12)\n }\n\n // ==========================================================================\n // SAD / LOW FEELINGS\n // ==========================================================================\n\n private playSad(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Heavy sigh\n this.puff(now, 0.3, 600, 0.25)\n\n // Descending sad tone\n this.warmTone(now + 0.1, 0.4, 392, 0.2, 400) // G4\n this.warmTone(now + 0.3, 0.45, 294, 0.15, 350) // D4\n }\n\n private playLonely(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Single isolated puff\n this.puff(now, 0.2, 700, 0.2)\n\n // Sparse, distant tone\n this.warmTone(now + 0.15, 0.5, 330, 0.12, 450) // E4\n }\n\n private playDisappointed(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Deflating puff\n this.puff(now, 0.25, 800, 0.25)\n\n // Falling tone\n this.tone(now + 0.08, 0.3, 523, 0.18, 'sine', 349) // C5 -> F4\n }\n\n private playMelancholic(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Wistful puff\n this.puff(now, 0.3, 700, 0.18)\n\n // Bittersweet tones\n this.warmTone(now + 0.1, 0.45, 440, 0.15, 500) // A4\n this.warmTone(now + 0.3, 0.5, 392, 0.12, 450) // G4\n }\n\n // ==========================================================================\n // ANXIOUS / FEARFUL FEELINGS\n // ==========================================================================\n\n private playAnxious(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Tight, quick puffs\n this.puff(now, 0.08, 1800, 0.2)\n this.puff(now + 0.12, 0.08, 1900, 0.22)\n\n // Uncertain wobble\n const osc = ctx.createOscillator()\n const gain = ctx.createGain()\n const lfo = ctx.createOscillator()\n const lfoGain = ctx.createGain()\n\n osc.frequency.value = 440\n lfo.frequency.value = 8\n lfoGain.gain.value = 20\n\n lfo.connect(lfoGain).connect(osc.frequency)\n\n gain.gain.setValueAtTime(0, now)\n gain.gain.linearRampToValueAtTime(this.volume * 0.15, now + 0.03)\n gain.gain.exponentialRampToValueAtTime(0.001, now + 0.25)\n\n osc.connect(gain).connect(ctx.destination)\n lfo.start(now)\n osc.start(now)\n osc.stop(now + 0.3)\n lfo.stop(now + 0.3)\n }\n\n private playWorried(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Hesitant puff\n this.puff(now, 0.15, 1200, 0.2)\n\n // Minor questioning tone\n this.tone(now + 0.05, 0.25, 349, 0.15, 'sine', 392) // F4 -> G4 (uncertain)\n }\n\n private playNervous(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Quick shallow puffs\n this.puff(now, 0.05, 2000, 0.18)\n this.puff(now + 0.08, 0.05, 2100, 0.18)\n this.puff(now + 0.15, 0.06, 2000, 0.16)\n\n // Trembling tone\n this.tone(now + 0.04, 0.2, 494, 0.12) // B4\n }\n\n private playStartled(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Quick sharp puff\n this.puff(now, 0.04, 3500, 0.3)\n\n // Quick high tone\n this.tone(now, 0.08, 1047, 0.25) // C6\n this.tone(now + 0.05, 0.15, 880, 0.15) // A5\n }\n\n // ==========================================================================\n // ANGRY / FRUSTRATED FEELINGS\n // ==========================================================================\n\n private playAnnoyed(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Short frustrated puff\n this.puff(now, 0.1, 1000, 0.25)\n\n // Low rumble\n this.warmTone(now + 0.03, 0.2, 294, 0.18, 400) // D4\n }\n\n private playFrustrated(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Tense puff\n this.puff(now, 0.12, 900, 0.28)\n\n // Blocked feeling\n this.tone(now + 0.04, 0.15, 349, 0.2) // F4\n this.tone(now + 0.12, 0.12, 330, 0.18) // E4\n }\n\n private playImpatient(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Quick tapping puffs\n this.puff(now, 0.04, 1500, 0.2)\n this.puff(now + 0.08, 0.04, 1500, 0.2)\n this.puff(now + 0.16, 0.04, 1500, 0.22)\n\n // Urgent tone\n this.tone(now + 0.06, 0.1, 523, 0.15)\n }\n\n // ==========================================================================\n // TIRED / DRAINED FEELINGS\n // ==========================================================================\n\n private playTired(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Heavy slow puff\n this.puff(now, 0.35, 500, 0.2)\n\n // Drooping tone\n this.warmTone(now + 0.1, 0.4, 330, 0.12, 350) // E4\n }\n\n private playExhausted(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Very slow, heavy exhale\n this.puff(now, 0.45, 400, 0.18)\n\n // Descending fade\n this.warmTone(now + 0.15, 0.5, 294, 0.1, 300) // D4\n }\n\n private playBored(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Flat sigh\n this.puff(now, 0.25, 600, 0.15)\n\n // Monotone\n this.warmTone(now + 0.1, 0.3, 349, 0.1, 400) // F4\n }\n\n // ==========================================================================\n // CALM / GROUNDED FEELINGS\n // ==========================================================================\n\n private playCalm(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Slow, peaceful puff\n this.puff(now, 0.3, 600, 0.12)\n\n // Sustained gentle tone\n this.warmTone(now + 0.1, 0.5, 392, 0.1, 500) // G4\n }\n\n private playRelaxed(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Long soft exhale\n this.puff(now, 0.35, 700, 0.15)\n\n // Gentle descending\n this.warmTone(now + 0.15, 0.45, 440, 0.1) // A4\n this.warmTone(now + 0.35, 0.5, 392, 0.08) // G4\n }\n\n private playGrounded(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Deep centered puff\n this.puff(now, 0.25, 500, 0.2)\n\n // Low stable tone\n this.warmTone(now + 0.1, 0.4, 262, 0.15, 350) // C4\n }\n\n private playSafe(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Soft enveloping puff\n this.puff(now, 0.3, 700, 0.15)\n\n // Warm embracing tones\n this.warmTone(now + 0.1, 0.4, 349, 0.12) // F4\n this.warmTone(now + 0.25, 0.45, 440, 0.1) // A4\n }\n\n // ==========================================================================\n // CONNECTED / SOCIAL FEELINGS\n // ==========================================================================\n\n private playConnected(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Warm shared breath\n this.puff(now, 0.2, 1200, 0.18)\n\n // Harmonious tones\n this.warmTone(now + 0.08, 0.3, 440, 0.15) // A4\n this.warmTone(now + 0.12, 0.32, 523, 0.12) // C5\n }\n\n private playAppreciated(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Touched puff\n this.puff(now, 0.15, 1500, 0.2)\n\n // Warm ascending\n this.warmTone(now + 0.05, 0.25, 440, 0.15)\n this.warmTone(now + 0.15, 0.3, 523, 0.18)\n }\n\n private playSupported(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Held puff\n this.puff(now, 0.25, 900, 0.18)\n\n // Stable harmonies\n this.warmTone(now + 0.1, 0.35, 349, 0.12)\n this.warmTone(now + 0.15, 0.4, 440, 0.1)\n }\n\n // ==========================================================================\n // MIXED / COMPLICATED FEELINGS\n // ==========================================================================\n\n private playNostalgic(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Wistful distant puff\n this.puff(now, 0.25, 800, 0.15)\n\n // Bittersweet memory tones\n this.warmTone(now + 0.1, 0.4, 440, 0.12, 500) // A4\n this.warmTone(now + 0.3, 0.45, 392, 0.1, 450) // G4\n }\n\n private playSurprised(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Quick gasp\n this.puff(now, 0.06, 2800, 0.25)\n\n // Rising tone\n this.tone(now + 0.02, 0.15, 659, 0.2, 'sine', 988) // E5 -> B5\n }\n\n private playAwestruck(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Wonder-filled breath\n this.puff(now, 0.2, 1500, 0.2)\n\n // Ascending wonder\n this.shimmer(now + 0.08, 0.4, 440, 0.15)\n }\n\n private playConfused(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Uncertain puff\n this.puff(now, 0.12, 1200, 0.18)\n\n // Questioning wobble\n this.tone(now + 0.04, 0.2, 440, 0.12, 'sine', 494) // A4 -> B4\n this.tone(now + 0.15, 0.15, 466, 0.1) // Bb4 (chromatic confusion)\n }\n\n // ==========================================================================\n // PUBLIC API\n // ==========================================================================\n\n /** Set volume (0.0 - 1.0) */\n setVolume(vol: number): void {\n this.volume = Math.max(0, Math.min(1, vol))\n }\n\n /** Get current volume */\n getVolume(): number {\n return this.volume\n }\n\n /** Mute all sounds */\n mute(): void {\n this.muted = true\n }\n\n /** Unmute sounds */\n unmute(): void {\n this.muted = false\n }\n\n /** Check if muted */\n isMuted(): boolean {\n return this.muted\n }\n\n /** Play a feeling */\n play(feeling: Feeling): void {\n if (this.muted) return\n\n // Map feelings to their sound methods\n const soundMap: Record<Feeling, () => void> = {\n // Happy\n joyful: () => this.playJoyful(),\n content: () => this.playContent(),\n excited: () => this.playExcited(),\n proud: () => this.playProud(),\n hopeful: () => this.playHopeful(),\n relieved: () => this.playRelieved(),\n grateful: () => this.playGrateful(),\n peaceful: () => this.playPeaceful(),\n playful: () => this.playPlayful(),\n amused: () => this.playAmused(),\n curious: () => this.playCurious(),\n inspired: () => this.playInspired(),\n confident: () => this.playConfident(),\n loved: () => this.playLoved(),\n comforted: () => this.playComforted(),\n energized: () => this.playEnergized(),\n celebrated: () => this.playCelebrated(),\n\n // Sad\n sad: () => this.playSad(),\n lonely: () => this.playLonely(),\n disappointed: () => this.playDisappointed(),\n heartbroken: () => this.playSad(), // Similar to sad\n grieving: () => this.playSad(),\n hopeless: () => this.playLonely(),\n empty: () => this.playLonely(),\n discouraged: () => this.playDisappointed(),\n melancholic: () => this.playMelancholic(),\n homesick: () => this.playNostalgic(),\n hurt: () => this.playSad(),\n miserable: () => this.playSad(),\n regretful: () => this.playMelancholic(),\n ashamed: () => this.playDisappointed(),\n inferior: () => this.playDisappointed(),\n\n // Anxious\n anxious: () => this.playAnxious(),\n worried: () => this.playWorried(),\n afraid: () => this.playAnxious(),\n terrified: () => this.playStartled(),\n panicked: () => this.playStartled(),\n nervous: () => this.playNervous(),\n uneasy: () => this.playWorried(),\n insecure: () => this.playNervous(),\n overwhelmed: () => this.playAnxious(),\n stressed: () => this.playAnxious(),\n tense: () => this.playAnxious(),\n apprehensive: () => this.playWorried(),\n startled: () => this.playStartled(),\n suspicious: () => this.playWorried(),\n vulnerable: () => this.playNervous(),\n\n // Angry\n annoyed: () => this.playAnnoyed(),\n irritated: () => this.playAnnoyed(),\n frustrated: () => this.playFrustrated(),\n angry: () => this.playFrustrated(),\n enraged: () => this.playFrustrated(),\n bitter: () => this.playFrustrated(),\n resentful: () => this.playAnnoyed(),\n jealous: () => this.playAnnoyed(),\n envious: () => this.playAnnoyed(),\n indignant: () => this.playFrustrated(),\n impatient: () => this.playImpatient(),\n hostile: () => this.playFrustrated(),\n contemptuous: () => this.playAnnoyed(),\n\n // Tired\n tired: () => this.playTired(),\n exhausted: () => this.playExhausted(),\n drained: () => this.playExhausted(),\n burnedOut: () => this.playExhausted(),\n numb: () => this.playExhausted(),\n bored: () => this.playBored(),\n unmotivated: () => this.playBored(),\n apathetic: () => this.playBored(),\n restless: () => this.playTired(),\n\n // Calm\n calm: () => this.playCalm(),\n relaxed: () => this.playRelaxed(),\n atEase: () => this.playRelaxed(),\n balanced: () => this.playCalm(),\n stable: () => this.playGrounded(),\n secure: () => this.playSafe(),\n safe: () => this.playSafe(),\n centered: () => this.playGrounded(),\n grounded: () => this.playGrounded(),\n accepting: () => this.playCalm(),\n\n // Connected\n connected: () => this.playConnected(),\n accepted: () => this.playAppreciated(),\n included: () => this.playConnected(),\n belonging: () => this.playConnected(),\n appreciated: () => this.playAppreciated(),\n valued: () => this.playAppreciated(),\n respected: () => this.playAppreciated(),\n supported: () => this.playSupported(),\n protective: () => this.playSupported(),\n compassionate: () => this.playConnected(),\n empathetic: () => this.playConnected(),\n\n // Mixed\n conflicted: () => this.playConfused(),\n confused: () => this.playConfused(),\n ambivalent: () => this.playConfused(),\n nostalgic: () => this.playNostalgic(),\n guilty: () => this.playDisappointed(),\n embarrassed: () => this.playNervous(),\n surprised: () => this.playSurprised(),\n shocked: () => this.playStartled(),\n awestruck: () => this.playAwestruck(),\n skeptical: () => this.playConfused(),\n }\n\n const playFn = soundMap[feeling]\n if (playFn) {\n playFn()\n }\n }\n\n /** Dispose audio context */\n dispose(): void {\n if (this.audioContext) {\n this.audioContext.close()\n this.audioContext = null\n }\n }\n}\n\n// ============================================================================\n// SINGLETON EXPORT\n// ============================================================================\n\n/** Global emotional sound player */\nexport const $sounds = new EmotionalSoundGenerator()\n"],"mappings":"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"}
|
package/dist/audio.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`./sound.service-
|
|
1
|
+
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`./sound.service-BwIzAFQx.cjs`),t=require(`./audio-DISBFOaR.cjs`);exports.$sounds=t.t,exports.EmotionalSoundGenerator=t.n,exports.schmancySound=e.t,exports.sound=e.n;
|
package/dist/audio.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { n as e, t } from "./sound.service-
|
|
2
|
-
import { n, t as r } from "./audio-
|
|
1
|
+
import { n as e, t } from "./sound.service-BOWTBG16.js";
|
|
2
|
+
import { n, t as r } from "./audio-CwBJntnB.js";
|
|
3
3
|
export { r as $sounds, n as EmotionalSoundGenerator, t as schmancySound, e as sound };
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
require(`./chunk-CncqDLb2.cjs`);const e=require(`./
|
|
1
|
+
require(`./chunk-CncqDLb2.cjs`);const e=require(`./SchmancyElement-DhSiMp6Y.cjs`),t=require(`./mixins-YQI9JogS.cjs`),n=require(`./search-DPKoC-dT.cjs`);require(`./input-chip-B5vYNuEm.cjs`);let r=require(`rxjs`),i=require(`rxjs/operators`),a=require(`lit/directives/class-map.js`),o=require(`lit/decorators.js`),s=require(`lit`),c=require(`lit/directives/if-defined.js`),l=require(`lit/directives/ref.js`),u=require(`lit/directives/repeat.js`),d=require(`lit/directives/when.js`);var f=class extends t.o((0,s.unsafeCSS)(`:host{display:block;border:unset!important;line-height:unset!important;background:unset!important;padding:unset!important;font-size:unset!important;box-shadow:unset!important}:host:focus{box-shadow:unset!important}@keyframes onAutoFillStart{0%{}to{}}:-webkit-any(sch-input::part(input):-webkit-autofill,sch-input input:-webkit-autofill){animation-name:onAutoFillStart;animation-duration:1ms}:is(sch-input::part(input):autofill,sch-input input:autofill){animation-name:onAutoFillStart;animation-duration:1ms}`)){constructor(...e){super(...e),this._valueSet=!1,this._valuesSet=!1,this.placeholder=``,this.maxHeight=`300px`,this.multi=!1,this.description=``,this.size=`md`,this.autocomplete=`off`,this.debounceMs=200,this.similarityThreshold=.3,this._a11yId=`schmancy-autocomplete-${Math.random().toString(36).slice(2,10)}`,this._open=!1,this._inputValue=``,this._visibleOptionsCount=0,this._hasResults=!0,this._inputElementRef=(0,l.createRef)(),this._selectedValue$=new r.BehaviorSubject(``),this._selectedValues$=new r.BehaviorSubject([]),this._inputValue$=new r.BehaviorSubject(``)}resetForm(){this.multi?this._selectedValues$.next([]):this._selectedValue$.next(``),this._inputValue=``,this._inputValue$.next(``),super.resetForm()}get values(){return[...this._selectedValues$.value]}set values(e){this._valuesSet=!0,this._selectedValues$.next(Array.isArray(e)?[...e]:[])}get value(){return this.multi?this._selectedValues$.value.join(`,`):this._selectedValue$.value}set value(e){if(this._valueSet=!0,this.multi){let t=e?e.split(`,`).map(e=>e.trim()).filter(Boolean):[],n=this._selectedValues$.value;JSON.stringify(t)!==JSON.stringify(n)&&this._selectedValues$.next(t)}else e!==this._selectedValue$.value&&(this._selectedValue$.next(e),this._updateInputDisplay())}connectedCallback(){super.connectedCallback(),this._setupAutocompleteLogic(),this._setupDocumentClickHandler()}_setupAutocompleteLogic(){(0,r.combineLatest)([this._selectedValue$,this._selectedValues$]).pipe((0,i.tap)(([e,t])=>{this._updateOptionSelection(e,t);let n=this.multi?t.join(`,`):e;if(this.internals?.setFormValue(n||null),this.required){let n=this.multi?t.length===0:!e;this.internals?.setValidity(n?{valueMissing:!0}:{},n?this.validationMessage||`Please select an option.`:void 0)}}),(0,i.takeUntil)(this.disconnecting)).subscribe(),this._inputValue$.pipe((0,i.distinctUntilChanged)(),(0,i.debounceTime)(this.debounceMs),(0,i.tap)(e=>{this._open&&this._filterOptions(e)}),(0,i.takeUntil)(this.disconnecting)).subscribe()}_setupOptionHandlers(){this._options.forEach((e,t)=>{e.setAttribute(`role`,`option`),e.tabIndex=-1,e.id||=`${this.id}-option-${t}`,e.dataset.schmancyAutocompleteHandlers!==`attached`&&(e.dataset.schmancyAutocompleteHandlers=`attached`,(0,r.fromEvent)(e,`mousedown`).pipe((0,i.takeUntil)(this.disconnecting)).subscribe(e=>e.preventDefault()),(0,r.fromEvent)(e,`click`).pipe((0,i.takeUntil)(this.disconnecting)).subscribe(t=>{t.stopPropagation(),this._selectOption(e)}))})}_updateOptionSelection(e,t){this._options.forEach(n=>{n.selected=this.multi?t.includes(n.value):n.value===e,n.setAttribute(`aria-selected`,String(n.selected))})}_filterOptions(e){let t=e.trim();if(t){let e=this._options.map(e=>{let r=e.label||e.textContent||``,i=e.value,a=n.t(t,r),o=n.t(t,i);return{option:e,score:Math.max(1.1*a,o)}});e.sort((e,t)=>t.score-e.score);let r=0;e.forEach((e,t)=>{let{option:n,score:i}=e;i<this.similarityThreshold?n.hidden=!0:(n.hidden=!1,r++,n.style.order=String(t))}),this._visibleOptionsCount=r,this._hasResults=r>0}else this._options.forEach(e=>{e.hidden=!1,e.style.order=`0`}),this._visibleOptionsCount=this._options.length,this._hasResults=!0;this._announceToScreenReader(this._visibleOptionsCount>0?`${this._visibleOptionsCount} option${this._visibleOptionsCount===1?``:`s`} available.`:`No results found.`)}_openDropdown(){this._open=!0,this._filterOptions(this._inputValue)}_selectOption(e){if(this.multi){let t=this._selectedValues$.value,n=t.indexOf(e.value)>-1?t.filter(t=>t!==e.value):[...t,e.value];this._selectedValues$.next(n),this._announceToScreenReader(n.length>0?`Selected: ${this._getSelectedLabels().join(`, `)}`:`No options selected`),this._fireChangeEvent()}else this._selectedValue$.next(e.value),this._open=!1,this._fireChangeEvent(),this._inputValue=e.label||e.textContent||``,this._inputValue$.next(this._inputValue),this._announceToScreenReader(`Selected: ${e.label||e.textContent}`)}_setupDocumentClickHandler(){(0,r.fromEvent)(document,`click`).pipe((0,i.takeUntil)(this.disconnecting)).subscribe(e=>{if(!this._open)return;let t=e.composedPath();t.includes(this)||this._options.some(e=>t.includes(e))||(this._open=!1,this._updateInputDisplay())})}_updateInputDisplay(){if(this.multi)return;let e=this._selectedValue$.value,t=this._options.find(t=>t.value===e);this._inputValue=t&&(t.label||t.textContent)||``,this._inputValue$.next(this._inputValue),this._inputElementRef.value&&(this._inputElementRef.value.value=this._inputValue)}_getSelectedLabels(){return this._options.filter(e=>this.multi?this._selectedValues$.value.includes(e.value):e.value===this._selectedValue$.value).map(e=>e.label||e.textContent||``)}_announceToScreenReader(e){let t=this.shadowRoot?.querySelector(`#live-status`);t&&(t.textContent=e)}_fireChangeEvent(){let e={value:this.value};this.multi&&(e.values=[...this._selectedValues$.value]),this.dispatchEvent(new CustomEvent(`change`,{detail:e,bubbles:!0,composed:!0}))}checkValidity(){return!this.required||(this.multi?this._selectedValues$.value.length>0:!!this._selectedValue$.value)}reportValidity(){return this._inputElementRef.value?this._inputElementRef.value.reportValidity():this.checkValidity()}firstUpdated(){this._setupOptionHandlers(),this._updateInputDisplay(),(this.shadowRoot?.querySelector(`slot`))?.addEventListener(`slotchange`,()=>{this._setupOptionHandlers(),this._updateOptionSelection(this._selectedValue$.value,this._selectedValues$.value)})}handleChipRemove(e){let t=this._selectedValues$.value.filter(t=>t!==e);this._selectedValues$.next(t),this._fireChangeEvent(),this._announceToScreenReader(`Removed: ${this._getChipLabel(e)}`)}_getChipLabel(e){let t=this._options.find(t=>t.value===e);return t&&(t.label||t.textContent)||e}_focusTextInput(){this._inputElementRef.value&&this._inputElementRef.value.focus()}render(){let e=`${this.id}-desc`,{height:t,padding:n,fontSize:r,labelSize:i}=(()=>{switch(this.size){case`sm`:return{height:`min-h-[40px]`,padding:`px-2`,fontSize:`text-sm`,labelSize:`text-sm`};case`lg`:return{height:`min-h-[60px]`,padding:`px-5`,fontSize:`text-lg`,labelSize:`text-lg`};default:return{height:`min-h-[50px]`,padding:`px-4`,fontSize:`text-base`,labelSize:`text-base`}}})();return s.html`
|
|
2
2
|
<div class="relative">
|
|
3
3
|
<!-- Screen reader live region -->
|
|
4
4
|
<div id="live-status" role="status" aria-live="polite" class="sr-only"></div>
|
|
@@ -112,4 +112,4 @@ require(`./chunk-CncqDLb2.cjs`);const e=require(`./mixins-BF3Vj8_c.cjs`),t=requi
|
|
|
112
112
|
`}
|
|
113
113
|
</ul>
|
|
114
114
|
</div>
|
|
115
|
-
`}_handleAutoSelectOnBlur(){if(this.multi||!this._open||!this._inputValue.trim())return;let e=this._inputValue.trim(),t=null,r=0;this._options.forEach(i=>{if(i.hidden)return;let a=i.label||i.textContent||``,o=i.value,s=n.t(e,a),c=n.t(e,o),l=Math.max(1.1*s,c);l>r&&l>=this.similarityThreshold&&(r=l,t=i)}),t&&(this._selectedValue$.next(t.value),this._inputValue=t.label||t.textContent||``,this._inputValue$.next(this._inputValue),this._open=!1)}_handleKeyDown(e){let t=this._open,n=this._selectedValues$.value;if(this.multi&&e.key===`Backspace`&&!this._inputValue&&n.length>0&&!t){e.preventDefault();let t=n[n.length-1];this.handleChipRemove(t);return}if(!t&&(e.key===`ArrowDown`||e.key===`Enter`))return e.preventDefault(),this._openDropdown(),void(0,r.timer)(10).pipe((0,i.takeUntil)(this.disconnecting)).subscribe(()=>{this._options.find(e=>!e.hidden)?.focus()});if(!t)return;let a=this._options.filter(e=>!e.hidden).toSorted((e,t)=>parseInt(e.style.order||`0`)-parseInt(t.style.order||`0`)),o=a.find(e=>e===document.activeElement),s=o?a.indexOf(o):-1;switch(e.key){case`Escape`:e.preventDefault(),this._open=!1,this._updateInputDisplay(),this._inputElementRef.value?.focus();break;case`Tab`:this._open=!1,this._updateInputDisplay();break;case`ArrowDown`:e.preventDefault(),a[s<a.length-1?s+1:0]?.focus();break;case`ArrowUp`:e.preventDefault(),a[s>0?s-1:a.length-1]?.focus();break;case`Home`:e.preventDefault(),a[0]?.focus();break;case`End`:e.preventDefault(),a[a.length-1]?.focus();break;case`Enter`:case` `:o&&(e.preventDefault(),this._selectOption(o))}}};
|
|
115
|
+
`}_handleAutoSelectOnBlur(){if(this.multi||!this._open||!this._inputValue.trim())return;let e=this._inputValue.trim(),t=null,r=0;this._options.forEach(i=>{if(i.hidden)return;let a=i.label||i.textContent||``,o=i.value,s=n.t(e,a),c=n.t(e,o),l=Math.max(1.1*s,c);l>r&&l>=this.similarityThreshold&&(r=l,t=i)}),t&&(this._selectedValue$.next(t.value),this._inputValue=t.label||t.textContent||``,this._inputValue$.next(this._inputValue),this._open=!1)}_handleKeyDown(e){let t=this._open,n=this._selectedValues$.value;if(this.multi&&e.key===`Backspace`&&!this._inputValue&&n.length>0&&!t){e.preventDefault();let t=n[n.length-1];this.handleChipRemove(t);return}if(!t&&(e.key===`ArrowDown`||e.key===`Enter`))return e.preventDefault(),this._openDropdown(),void(0,r.timer)(10).pipe((0,i.takeUntil)(this.disconnecting)).subscribe(()=>{this._options.find(e=>!e.hidden)?.focus()});if(!t)return;let a=this._options.filter(e=>!e.hidden).toSorted((e,t)=>parseInt(e.style.order||`0`)-parseInt(t.style.order||`0`)),o=a.find(e=>e===document.activeElement),s=o?a.indexOf(o):-1;switch(e.key){case`Escape`:e.preventDefault(),this._open=!1,this._updateInputDisplay(),this._inputElementRef.value?.focus();break;case`Tab`:this._open=!1,this._updateInputDisplay();break;case`ArrowDown`:e.preventDefault(),a[s<a.length-1?s+1:0]?.focus();break;case`ArrowUp`:e.preventDefault(),a[s>0?s-1:a.length-1]?.focus();break;case`Home`:e.preventDefault(),a[0]?.focus();break;case`End`:e.preventDefault(),a[a.length-1]?.focus();break;case`Enter`:case` `:o&&(e.preventDefault(),this._selectOption(o))}}};e.p([(0,o.property)({type:String})],f.prototype,`placeholder`,void 0),e.p([(0,o.property)({type:String})],f.prototype,`maxHeight`,void 0),e.p([(0,o.property)({type:Boolean})],f.prototype,`multi`,void 0),e.p([(0,o.property)({type:String})],f.prototype,`description`,void 0),e.p([(0,o.property)({type:String,reflect:!0})],f.prototype,`size`,void 0),e.p([(0,o.property)({type:String})],f.prototype,`autocomplete`,void 0),e.p([(0,o.property)({type:Number})],f.prototype,`debounceMs`,void 0),e.p([(0,o.property)({type:Number})],f.prototype,`similarityThreshold`,void 0),e.p([(0,o.property)({type:Array})],f.prototype,`values`,null),e.p([(0,o.property)({type:String,reflect:!0})],f.prototype,`value`,null),e.p([(0,o.state)()],f.prototype,`_open`,void 0),e.p([(0,o.state)()],f.prototype,`_inputValue`,void 0),e.p([(0,o.state)()],f.prototype,`_visibleOptionsCount`,void 0),e.p([(0,o.state)()],f.prototype,`_hasResults`,void 0),e.p([(0,o.query)(`#options`)],f.prototype,`_listbox`,void 0),e.p([(0,o.query)(`sch-input`)],f.prototype,`_input`,void 0),e.p([(0,o.queryAssignedElements)({flatten:!0})],f.prototype,`_options`,void 0),f=e.p([(0,o.customElement)(`schmancy-autocomplete`)],f);
|