@mhmo91/schmancy 0.10.35 → 0.10.37
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 +1165 -1109
- package/dist/SchmancyElement-BHfQg3Tj.cjs +2 -0
- package/dist/SchmancyElement-BHfQg3Tj.cjs.map +1 -0
- package/dist/SchmancyElement-CDT2q1lA.js +284 -0
- package/dist/SchmancyElement-CDT2q1lA.js.map +1 -0
- package/dist/agent/schmancy.agent.js +3488 -3290
- package/dist/agent/schmancy.agent.js.map +1 -1
- package/dist/agent/schmancy.manifest.json +335 -275
- package/dist/{area-DviXdbDx.js → area-KtULlxuA.js} +2 -2
- package/dist/{area-DviXdbDx.js.map → area-KtULlxuA.js.map} +1 -1
- package/dist/{area-CTSTgjlx.cjs → area-fdKhYB6T.cjs} +1 -1
- package/dist/{area-CTSTgjlx.cjs.map → area-fdKhYB6T.cjs.map} +1 -1
- package/dist/area.cjs +1 -1
- package/dist/area.js +1 -1
- package/dist/{audio-Q9oB_cQR.cjs → audio-CUMAv9D_.cjs} +1 -1
- package/dist/{audio-Q9oB_cQR.cjs.map → audio-CUMAv9D_.cjs.map} +1 -1
- package/dist/{audio-DFYoaw0M.js → audio-zIJVTo_V.js} +1 -1
- package/dist/{audio-DFYoaw0M.js.map → audio-zIJVTo_V.js.map} +1 -1
- package/dist/audio.cjs +1 -1
- package/dist/audio.js +2 -2
- package/dist/{autocomplete-DmLXJr7C.cjs → autocomplete-DEZk6wBD.cjs} +1 -1
- package/dist/{autocomplete-DmLXJr7C.cjs.map → autocomplete-DEZk6wBD.cjs.map} +1 -1
- package/dist/{autocomplete-BDvuma6D.js → autocomplete-DIScyo8Q.js} +3 -3
- package/dist/{autocomplete-BDvuma6D.js.map → autocomplete-DIScyo8Q.js.map} +1 -1
- package/dist/autocomplete.cjs +1 -1
- package/dist/autocomplete.js +1 -1
- package/dist/avatar.cjs +1 -1
- package/dist/avatar.js +3 -3
- package/dist/badge.cjs +1 -1
- package/dist/badge.js +1 -1
- package/dist/{boat-lr7MPZ7H.js → boat-BHPqSqJd.js} +67 -83
- package/dist/boat-BHPqSqJd.js.map +1 -0
- package/dist/boat-OBZ77exO.cjs +34 -0
- package/dist/boat-OBZ77exO.cjs.map +1 -0
- package/dist/boat.cjs +1 -1
- package/dist/boat.js +1 -1
- package/dist/breadcrumb.cjs +1 -1
- package/dist/breadcrumb.js +2 -2
- package/dist/{busy-CgzZbGfx.cjs → busy-BJNsKSCM.cjs} +1 -1
- package/dist/{busy-CgzZbGfx.cjs.map → busy-BJNsKSCM.cjs.map} +1 -1
- package/dist/{busy-DgQ4ux5N.js → busy-Dut78y4L.js} +2 -2
- package/dist/{busy-DgQ4ux5N.js.map → busy-Dut78y4L.js.map} +1 -1
- package/dist/busy.cjs +1 -1
- package/dist/busy.js +1 -1
- package/dist/{button-DFvR1iXX.cjs → button-DzlHLjWO.cjs} +1 -1
- package/dist/{button-DFvR1iXX.cjs.map → button-DzlHLjWO.cjs.map} +1 -1
- package/dist/{button-qbN1muQ0.js → button-kcpPQavY.js} +2 -2
- package/dist/{button-qbN1muQ0.js.map → button-kcpPQavY.js.map} +1 -1
- package/dist/button.cjs +4 -4
- package/dist/button.cjs.map +1 -1
- package/dist/button.js +16 -22
- package/dist/button.js.map +1 -1
- package/dist/{card-D_GlwZ5q.cjs → card-BLxPLqdQ.cjs} +1 -1
- package/dist/{card-D_GlwZ5q.cjs.map → card-BLxPLqdQ.cjs.map} +1 -1
- package/dist/{card-DAbr-7Vy.js → card-DxSKxCid.js} +2 -2
- package/dist/{card-DAbr-7Vy.js.map → card-DxSKxCid.js.map} +1 -1
- package/dist/card.cjs +1 -1
- package/dist/card.js +1 -1
- package/dist/{checkbox-BNORaxMF.js → checkbox-B1wiM3Dv.js} +2 -2
- package/dist/{checkbox-BNORaxMF.js.map → checkbox-B1wiM3Dv.js.map} +1 -1
- package/dist/{checkbox-BUY_uc_r.cjs → checkbox-BCLkhp5G.cjs} +1 -1
- package/dist/{checkbox-BUY_uc_r.cjs.map → checkbox-BCLkhp5G.cjs.map} +1 -1
- package/dist/checkbox.cjs +1 -1
- package/dist/checkbox.js +1 -1
- package/dist/{chips-CXZ4dJCK.cjs → chips-C9dS1WKn.cjs} +44 -33
- package/dist/chips-C9dS1WKn.cjs.map +1 -0
- package/dist/{chips-Dg6Lk6BT.js → chips-vWmwqQed.js} +145 -122
- package/dist/chips-vWmwqQed.js.map +1 -0
- package/dist/chips.cjs +1 -1
- package/dist/chips.js +2 -2
- package/dist/connectivity.cjs +1 -1
- package/dist/connectivity.js +3 -3
- package/dist/content-drawer.cjs +1 -1
- package/dist/content-drawer.js +1 -1
- package/dist/{date-range-C-_be3_E.cjs → date-range-BV6HuvLw.cjs} +25 -19
- package/dist/date-range-BV6HuvLw.cjs.map +1 -0
- package/dist/{date-range-BU6WX7d5.js → date-range-D3ge1b4c.js} +129 -137
- package/dist/date-range-D3ge1b4c.js.map +1 -0
- package/dist/{date-range-inline-DJtUmHKF.cjs → date-range-inline-DpYgdLRv.cjs} +1 -1
- package/dist/{date-range-inline-DJtUmHKF.cjs.map → date-range-inline-DpYgdLRv.cjs.map} +1 -1
- package/dist/{date-range-inline-7o7xtVIu.js → date-range-inline-DuWQaWps.js} +2 -2
- package/dist/{date-range-inline-7o7xtVIu.js.map → date-range-inline-DuWQaWps.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 +1 -1
- package/dist/delay.js +2 -2
- package/dist/{details-EfbDPVEo.js → details-C-GZaq3j.js} +2 -2
- package/dist/{details-EfbDPVEo.js.map → details-C-GZaq3j.js.map} +1 -1
- package/dist/{details-Bs0MyyvF.cjs → details-Dp5rLIWk.cjs} +1 -1
- package/dist/{details-Bs0MyyvF.cjs.map → details-Dp5rLIWk.cjs.map} +1 -1
- package/dist/details.cjs +1 -1
- package/dist/details.js +1 -1
- package/dist/{directives-fLwDj6b0.cjs → directives-D_l1E5H6.cjs} +3 -3
- package/dist/directives-D_l1E5H6.cjs.map +1 -0
- package/dist/{directives-zi1Mm2er.js → directives-DyS51FUh.js} +37 -21
- package/dist/directives-DyS51FUh.js.map +1 -0
- package/dist/directives.cjs +1 -1
- package/dist/directives.js +2 -2
- package/dist/{divider-CdIsWZrM.cjs → divider-CBnAmHMZ.cjs} +1 -1
- package/dist/{divider-CdIsWZrM.cjs.map → divider-CBnAmHMZ.cjs.map} +1 -1
- package/dist/{divider-CEPfrIwe.js → divider-nQffE0AD.js} +2 -2
- package/dist/{divider-CEPfrIwe.js.map → divider-nQffE0AD.js.map} +1 -1
- package/dist/divider.cjs +1 -1
- package/dist/divider.js +1 -1
- package/dist/dropdown.cjs +1 -1
- package/dist/dropdown.js +2 -2
- package/dist/{expand-g1vqqUp1.js → expand-DvTb-UPR.js} +3 -3
- package/dist/{expand-g1vqqUp1.js.map → expand-DvTb-UPR.js.map} +1 -1
- package/dist/{expand--at1k3qo.cjs → expand-mlP_3XWz.cjs} +1 -1
- package/dist/{expand--at1k3qo.cjs.map → expand-mlP_3XWz.cjs.map} +1 -1
- package/dist/expand.cjs +1 -1
- package/dist/expand.js +1 -1
- package/dist/fab.cjs +77 -0
- package/dist/fab.cjs.map +1 -0
- package/dist/fab.js +151 -0
- package/dist/fab.js.map +1 -0
- package/dist/{float-DxVzgI9o.js → float-C-Ko0Le3.js} +2 -2
- package/dist/{float-DxVzgI9o.js.map → float-C-Ko0Le3.js.map} +1 -1
- package/dist/{float-P9HukAm-.cjs → float-C17xgMT1.cjs} +1 -1
- package/dist/{float-P9HukAm-.cjs.map → float-C17xgMT1.cjs.map} +1 -1
- package/dist/float.cjs +1 -1
- package/dist/float.js +1 -1
- package/dist/{form-ByYhXe1p.cjs → form-CwPHcQYB.cjs} +1 -1
- package/dist/{form-ByYhXe1p.cjs.map → form-CwPHcQYB.cjs.map} +1 -1
- package/dist/{form-CqLaozHp.js → form-DA0hUu2h.js} +3 -3
- package/dist/{form-CqLaozHp.js.map → form-DA0hUu2h.js.map} +1 -1
- package/dist/form.cjs +6 -6
- package/dist/form.cjs.map +1 -1
- package/dist/form.js +25 -23
- package/dist/form.js.map +1 -1
- package/dist/handover/agent-runtime-followups.md +1 -1
- package/dist/handover/agent-runtime-v1.md +3 -3
- package/dist/{icons-CkphcMp6.js → icons-C6UfxmHZ.js} +2 -2
- package/dist/{icons-CkphcMp6.js.map → icons-C6UfxmHZ.js.map} +1 -1
- package/dist/{icons-DYtiRU5V.cjs → icons-CW3-oMSb.cjs} +1 -1
- package/dist/{icons-DYtiRU5V.cjs.map → icons-CW3-oMSb.cjs.map} +1 -1
- package/dist/icons.cjs +1 -1
- package/dist/icons.js +1 -1
- package/dist/{iframe-CjqJksl8.js → iframe-BTjZfYyh.js} +2 -2
- package/dist/{iframe-CjqJksl8.js.map → iframe-BTjZfYyh.js.map} +1 -1
- package/dist/{iframe-C3trkP8q.cjs → iframe-wuYT2xFz.cjs} +1 -1
- package/dist/{iframe-C3trkP8q.cjs.map → iframe-wuYT2xFz.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 +57 -56
- package/dist/{input-CG51zDVh.js → input-B_4g2ulO.js} +2 -2
- package/dist/{input-CG51zDVh.js.map → input-B_4g2ulO.js.map} +1 -1
- package/dist/{input-DuavpwNL.cjs → input-BrDiIT60.cjs} +1 -1
- package/dist/{input-DuavpwNL.cjs.map → input-BrDiIT60.cjs.map} +1 -1
- package/dist/{input-chip-57tgNXKT.cjs → input-chip-B-XWh4aE.cjs} +1 -1
- package/dist/input-chip-B-XWh4aE.cjs.map +1 -0
- package/dist/{input-chip-C6Lq1927.js → input-chip-BlWhOruv.js} +2 -2
- package/dist/input-chip-BlWhOruv.js.map +1 -0
- package/dist/input.cjs +1 -1
- package/dist/input.js +1 -1
- package/dist/json.cjs +1 -1
- package/dist/json.js +3 -3
- package/dist/kbd.cjs +1 -1
- package/dist/kbd.js +2 -2
- package/dist/{layout-6ipbiWTl.cjs → layout-BhyIcEVu.cjs} +1 -1
- package/dist/{layout-6ipbiWTl.cjs.map → layout-BhyIcEVu.cjs.map} +1 -1
- package/dist/{layout-D4IOwx7p.js → layout-Dxit9enO.js} +1 -1
- package/dist/{layout-D4IOwx7p.js.map → layout-Dxit9enO.js.map} +1 -1
- package/dist/layout.cjs +1 -1
- package/dist/layout.js +2 -2
- package/dist/{lightbox-H8pVWGMX.cjs → lightbox-CVBogswK.cjs} +1 -1
- package/dist/{lightbox-H8pVWGMX.cjs.map → lightbox-CVBogswK.cjs.map} +1 -1
- package/dist/{lightbox-CsyO2XSr.js → lightbox-D85XAAuC.js} +2 -2
- package/dist/{lightbox-CsyO2XSr.js.map → lightbox-D85XAAuC.js.map} +1 -1
- package/dist/lightbox.cjs +1 -1
- package/dist/lightbox.js +1 -1
- package/dist/{list-BAwH0pQW.js → list-DOF_yVn5.js} +2 -2
- package/dist/{list-BAwH0pQW.js.map → list-DOF_yVn5.js.map} +1 -1
- package/dist/{list-Bs9m8kw7.cjs → list-nVjLskgx.cjs} +1 -1
- package/dist/{list-Bs9m8kw7.cjs.map → list-nVjLskgx.cjs.map} +1 -1
- package/dist/list.cjs +1 -1
- package/dist/list.js +1 -1
- package/dist/{menu-BMcGzj1h.cjs → menu-DqmNjLgY.cjs} +1 -1
- package/dist/{menu-BMcGzj1h.cjs.map → menu-DqmNjLgY.cjs.map} +1 -1
- package/dist/{menu-tQVARVaC.js → menu-QrAK5Uu9.js} +3 -3
- package/dist/{menu-tQVARVaC.js.map → menu-QrAK5Uu9.js.map} +1 -1
- package/dist/menu.cjs +1 -1
- package/dist/menu.js +1 -1
- package/dist/{mixins-Bp0wIHg2.js → mixins-De1zjyhy.js} +1 -1
- package/dist/{mixins-Bp0wIHg2.js.map → mixins-De1zjyhy.js.map} +1 -1
- package/dist/{mixins-CGXSzZc7.cjs → mixins-DxHpyMHA.cjs} +1 -1
- package/dist/{mixins-CGXSzZc7.cjs.map → mixins-DxHpyMHA.cjs.map} +1 -1
- package/dist/mixins.cjs +1 -1
- package/dist/mixins.js +2 -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 +1 -1
- package/dist/navigation-rail.js +2 -2
- package/dist/{notification-D1tX2nx5.js → notification-BtAK7NK8.js} +4 -4
- package/dist/{notification-D1tX2nx5.js.map → notification-BtAK7NK8.js.map} +1 -1
- package/dist/{notification-Bz00zdpV.cjs → notification-DYzbUb5C.cjs} +1 -1
- package/dist/{notification-Bz00zdpV.cjs.map → notification-DYzbUb5C.cjs.map} +1 -1
- package/dist/notification.cjs +1 -1
- package/dist/notification.js +1 -1
- package/dist/{option-BpGV8Apj.js → option-DHwA0miA.js} +2 -2
- package/dist/{option-BpGV8Apj.js.map → option-DHwA0miA.js.map} +1 -1
- package/dist/{option-BnybLEDO.cjs → option-DnSPa8ro.cjs} +1 -1
- package/dist/{option-BnybLEDO.cjs.map → option-DnSPa8ro.cjs.map} +1 -1
- package/dist/option.cjs +1 -1
- package/dist/option.js +1 -1
- package/dist/{overlay-UQR2Dy3u.cjs → overlay-BVkqZmoS.cjs} +5 -5
- package/dist/overlay-BVkqZmoS.cjs.map +1 -0
- package/dist/{overlay-BpNhd74N.js → overlay-Del1sBEB.js} +108 -108
- package/dist/overlay-Del1sBEB.js.map +1 -0
- package/dist/overlay.cjs +1 -1
- package/dist/{overlay.confirm-body-CVDtVk5X.cjs → overlay.confirm-body-BV9umTAl.cjs} +1 -1
- package/dist/{overlay.confirm-body-CVDtVk5X.cjs.map → overlay.confirm-body-BV9umTAl.cjs.map} +1 -1
- package/dist/{overlay.confirm-body-BHcXu5Wk.js → overlay.confirm-body-DSONXUzl.js} +6 -6
- package/dist/{overlay.confirm-body-BHcXu5Wk.js.map → overlay.confirm-body-DSONXUzl.js.map} +1 -1
- package/dist/overlay.js +3 -3
- package/dist/{overlay.service-DTE6NwIM.js → overlay.service-BTp5Oq7f.js} +2 -2
- package/dist/{overlay.service-DTE6NwIM.js.map → overlay.service-BTp5Oq7f.js.map} +1 -1
- package/dist/{overlay.service-C8RsQzgM.cjs → overlay.service-XLlrsSdA.cjs} +1 -1
- package/dist/{overlay.service-C8RsQzgM.cjs.map → overlay.service-XLlrsSdA.cjs.map} +1 -1
- package/dist/{progress-gbIALDRs.cjs → progress-DUbTL9g9.cjs} +1 -1
- package/dist/{progress-gbIALDRs.cjs.map → progress-DUbTL9g9.cjs.map} +1 -1
- package/dist/{progress-CAKsxp29.js → progress-DYA83CFU.js} +2 -2
- package/dist/{progress-CAKsxp29.js.map → progress-DYA83CFU.js.map} +1 -1
- package/dist/progress.cjs +1 -1
- package/dist/progress.js +1 -1
- package/dist/{radio-group-CfJ5DtI4.cjs → radio-group-B-ORNtvR.cjs} +1 -1
- package/dist/{radio-group-CfJ5DtI4.cjs.map → radio-group-B-ORNtvR.cjs.map} +1 -1
- package/dist/{radio-group-otyvZvUk.js → radio-group-DxX0iJBo.js} +2 -2
- package/dist/{radio-group-otyvZvUk.js.map → radio-group-DxX0iJBo.js.map} +1 -1
- package/dist/radio-group.cjs +1 -1
- package/dist/radio-group.js +1 -1
- package/dist/range.cjs +1 -1
- package/dist/range.js +2 -2
- package/dist/{select-81jniVTs.cjs → select-B9uj_u-s.cjs} +1 -1
- package/dist/{select-81jniVTs.cjs.map → select-B9uj_u-s.cjs.map} +1 -1
- package/dist/{select-9vXx1fhr.js → select-C7gkA-ab.js} +3 -3
- package/dist/{select-9vXx1fhr.js.map → select-C7gkA-ab.js.map} +1 -1
- package/dist/select.cjs +1 -1
- package/dist/select.js +1 -1
- package/dist/skeleton.cjs +1 -1
- package/dist/skeleton.js +2 -2
- package/dist/skills/INDEX.md +1 -1
- package/dist/skills/SKILL.md +20 -18
- package/dist/skills/boat.md +21 -15
- package/dist/skills/fab.md +75 -0
- package/dist/skills/schmancy/INDEX.md +1 -1
- package/dist/skills/schmancy/SKILL.md +20 -18
- package/dist/skills/schmancy/boat.md +21 -15
- package/dist/skills/schmancy/fab.md +75 -0
- package/dist/skills/schmancy/steps.md +68 -34
- package/dist/skills/schmancy/theme.md +1 -1
- package/dist/skills/steps.md +68 -34
- package/dist/skills/theme.md +1 -1
- package/dist/slider.cjs +1 -1
- package/dist/slider.js +2 -2
- package/dist/{sound.service-CmIw63aM.cjs → sound.service-C7FDY_yD.cjs} +1 -1
- package/dist/{sound.service-CmIw63aM.cjs.map → sound.service-C7FDY_yD.cjs.map} +1 -1
- package/dist/{sound.service-D3ZSq1Kj.js → sound.service-O0232os6.js} +1 -1
- package/dist/{sound.service-D3ZSq1Kj.js.map → sound.service-O0232os6.js.map} +1 -1
- package/dist/{splash-screen-C5KAWXvA.cjs → splash-screen-DIS4odDr.cjs} +1 -1
- package/dist/{splash-screen-C5KAWXvA.cjs.map → splash-screen-DIS4odDr.cjs.map} +1 -1
- package/dist/{splash-screen-BOjrmGLk.js → splash-screen-jfE47xl0.js} +2 -2
- package/dist/{splash-screen-BOjrmGLk.js.map → splash-screen-jfE47xl0.js.map} +1 -1
- package/dist/splash-screen.cjs +1 -1
- package/dist/splash-screen.js +1 -1
- package/dist/{src-C5g3p1J5.js → src-BP3h-9d9.js} +36 -35
- package/dist/{src-C5g3p1J5.js.map → src-BP3h-9d9.js.map} +1 -1
- package/dist/{src-qzUpLbje.cjs → src-Um_pzb-U.cjs} +1 -1
- package/dist/{src-qzUpLbje.cjs.map → src-Um_pzb-U.cjs.map} +1 -1
- package/dist/{state-Cex3rmx2.cjs → state-Bj0M9a6T.cjs} +1 -1
- package/dist/{state-Cex3rmx2.cjs.map → state-Bj0M9a6T.cjs.map} +1 -1
- package/dist/{state-CWBRTSvE.js → state-DscWQpoM.js} +1 -1
- package/dist/{state-CWBRTSvE.js.map → state-DscWQpoM.js.map} +1 -1
- package/dist/state.cjs +1 -1
- package/dist/state.js +2 -2
- package/dist/steps.cjs +35 -19
- package/dist/steps.cjs.map +1 -1
- package/dist/steps.js +96 -73
- package/dist/steps.js.map +1 -1
- package/dist/{surface-9S5scTsD.js → surface-B4Wn4SOO.js} +2 -2
- package/dist/{surface-9S5scTsD.js.map → surface-B4Wn4SOO.js.map} +1 -1
- package/dist/{surface-PfiejLuw.cjs → surface-DRq6cVW6.cjs} +1 -1
- package/dist/{surface-PfiejLuw.cjs.map → surface-DRq6cVW6.cjs.map} +1 -1
- package/dist/surface.cjs +1 -1
- package/dist/surface.js +1 -1
- package/dist/switch.cjs +1 -1
- package/dist/switch.js +2 -2
- package/dist/table.cjs +1 -1
- package/dist/table.js +2 -2
- package/dist/{tabs-uYvb1P06.cjs → tabs-Ca_fbHPW.cjs} +1 -1
- package/dist/{tabs-uYvb1P06.cjs.map → tabs-Ca_fbHPW.cjs.map} +1 -1
- package/dist/{tabs-BBOjAmgG.js → tabs-CnQPo-XS.js} +2 -2
- package/dist/{tabs-BBOjAmgG.js.map → tabs-CnQPo-XS.js.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-QzSj8Dkl.js → textarea-BvqENhTW.js} +2 -2
- package/dist/{textarea-QzSj8Dkl.js.map → textarea-BvqENhTW.js.map} +1 -1
- package/dist/{textarea-YPHX4g7Y.cjs → textarea-qr7oL8oU.cjs} +1 -1
- package/dist/{textarea-YPHX4g7Y.cjs.map → textarea-qr7oL8oU.cjs.map} +1 -1
- package/dist/textarea.cjs +1 -1
- package/dist/textarea.js +1 -1
- package/dist/theme-BSwJ2YZo.cjs +181 -0
- package/dist/{theme-iKUaS9JB.cjs.map → theme-BSwJ2YZo.cjs.map} +1 -1
- package/dist/{theme-C2Mp-VGt.js → theme-BV0EzHQ1.js} +6 -5
- package/dist/{theme-C2Mp-VGt.js.map → theme-BV0EzHQ1.js.map} +1 -1
- package/dist/{theme-button-CJmhxfMe.cjs → theme-button-C6fpUzPM.cjs} +1 -1
- package/dist/{theme-button-CJmhxfMe.cjs.map → theme-button-C6fpUzPM.cjs.map} +1 -1
- package/dist/{theme-button-DGWAXhzd.js → theme-button-O_xNCgI7.js} +2 -2
- package/dist/{theme-button-DGWAXhzd.js.map → theme-button-O_xNCgI7.js.map} +1 -1
- package/dist/theme-button.cjs +1 -1
- package/dist/theme-button.js +1 -1
- package/dist/theme.cjs +1 -1
- package/dist/theme.js +3 -3
- package/dist/{theme.service-hc4N-1Oz.js → theme.service-DwLhhOmP.js} +1 -1
- package/dist/{theme.service-hc4N-1Oz.js.map → theme.service-DwLhhOmP.js.map} +1 -1
- package/dist/{theme.service-p61RsJBF.cjs → theme.service-kn9MC025.cjs} +1 -1
- package/dist/{theme.service-p61RsJBF.cjs.map → theme.service-kn9MC025.cjs.map} +1 -1
- package/dist/tree.cjs +1 -1
- package/dist/tree.js +2 -2
- package/dist/{typography-DwV0sqht.js → typography-Dtdooaic.js} +2 -2
- package/dist/{typography-DwV0sqht.js.map → typography-Dtdooaic.js.map} +1 -1
- package/dist/{typography-Bdt8RlX2.cjs → typography-opFYuUYS.cjs} +1 -1
- package/dist/{typography-Bdt8RlX2.cjs.map → typography-opFYuUYS.cjs.map} +1 -1
- package/dist/typography.cjs +1 -1
- package/dist/typography.js +1 -1
- package/dist/visually-hidden.cjs +1 -1
- package/dist/visually-hidden.js +2 -2
- package/dist/{window-D2WfvNng.cjs → window-BSAemI9J.cjs} +1 -1
- package/dist/{window-D2WfvNng.cjs.map → window-BSAemI9J.cjs.map} +1 -1
- package/dist/{window-n4jN60B_.js → window-ConcHirJ.js} +3 -3
- package/dist/{window-n4jN60B_.js.map → window-ConcHirJ.js.map} +1 -1
- package/dist/window.cjs +1 -1
- package/dist/window.js +1 -1
- package/package.json +1 -1
- package/skills/schmancy/INDEX.md +1 -1
- package/skills/schmancy/SKILL.md +20 -18
- package/skills/schmancy/boat.md +21 -15
- package/skills/schmancy/fab.md +75 -0
- package/skills/schmancy/steps.md +68 -34
- package/skills/schmancy/theme.md +1 -1
- package/src/CLAUDE.md +22 -16
- package/src/boat/boat.test.ts +130 -0
- package/src/boat/boat.ts +144 -121
- package/src/button/icon-button.ts +18 -30
- package/src/chips/assist-chip.ts +2 -263
- package/src/chips/chips.ts +2 -259
- package/src/chips/filter-chip.ts +2 -255
- package/src/chips/index.ts +2 -5
- package/src/chips/input-chip.ts +2 -413
- package/src/chips/suggestion-chip.ts +2 -266
- package/src/directives/fill.ts +28 -5
- package/src/directives/reveal.ts +192 -118
- package/src/fab/fab.test.ts +101 -0
- package/src/fab/fab.ts +226 -0
- package/src/fab/index.ts +1 -0
- package/src/form/fields/chips/assist-chip.ts +263 -0
- package/src/form/fields/chips/chips.ts +234 -0
- package/src/form/fields/chips/filter-chip.ts +255 -0
- package/src/form/fields/chips/index.ts +5 -0
- package/src/form/fields/chips/input-chip.ts +413 -0
- package/src/form/fields/chips/suggestion-chip.ts +266 -0
- package/src/form/fields/date-range/date-range.test.ts +44 -0
- package/src/form/fields/date-range/date-range.ts +103 -97
- package/src/form/fields/index.ts +1 -0
- package/src/index.ts +2 -1
- package/src/overlay/overlay.animations.ts +2 -3
- package/src/overlay/overlay.component.ts +8 -4
- package/src/overlay/overlay.types.ts +14 -2
- package/src/steps/index.ts +1 -1
- package/src/steps/schmancy-step.ts +91 -65
- package/src/steps/{schmancy-steps-container.ts → schmancy-steps.ts} +18 -38
- package/src/steps/steps.context.ts +5 -4
- package/src/steps/steps.test.ts +120 -0
- package/src/theme/theme.component.ts +1 -0
- package/src/theme/theme.style.css +3 -0
- package/types/src/boat/boat.d.ts +27 -9
- package/types/src/boat/boat.test.d.ts +2 -0
- package/types/src/button/icon-button.d.ts +3 -2
- package/types/src/chips/assist-chip.d.ts +1 -47
- package/types/src/chips/chips.d.ts +1 -43
- package/types/src/chips/filter-chip.d.ts +1 -67
- package/types/src/chips/index.d.ts +1 -5
- package/types/src/chips/input-chip.d.ts +1 -82
- package/types/src/chips/suggestion-chip.d.ts +1 -52
- package/types/src/directives/reveal.d.ts +15 -5
- package/types/src/fab/fab.d.ts +80 -0
- package/types/src/fab/fab.test.d.ts +2 -0
- package/types/src/fab/index.d.ts +1 -0
- package/types/src/form/fields/chips/assist-chip.d.ts +47 -0
- package/types/src/form/fields/chips/chips.d.ts +35 -0
- package/types/src/form/fields/chips/filter-chip.d.ts +67 -0
- package/types/src/form/fields/chips/index.d.ts +5 -0
- package/types/src/form/fields/chips/input-chip.d.ts +82 -0
- package/types/src/form/fields/chips/suggestion-chip.d.ts +52 -0
- package/types/src/form/fields/date-range/date-range.d.ts +5 -10
- package/types/src/form/fields/index.d.ts +1 -0
- package/types/src/index.d.ts +2 -1
- package/types/src/overlay/overlay.component.d.ts +1 -0
- package/types/src/overlay/overlay.types.d.ts +12 -2
- package/types/src/steps/index.d.ts +1 -1
- package/types/src/steps/schmancy-step.d.ts +8 -23
- package/types/src/steps/{schmancy-steps-container.d.ts → schmancy-steps.d.ts} +8 -9
- package/types/src/steps/steps.context.d.ts +2 -1
- package/types/src/steps/steps.test.d.ts +2 -0
- package/types/src/theme/theme.component.d.ts +1 -0
- package/dist/SchmancyElement-CA0Wqt8m.js +0 -284
- package/dist/SchmancyElement-CA0Wqt8m.js.map +0 -1
- package/dist/SchmancyElement-CYIif26I.cjs +0 -2
- package/dist/SchmancyElement-CYIif26I.cjs.map +0 -1
- package/dist/boat-Vqjgo10B.cjs +0 -33
- package/dist/boat-Vqjgo10B.cjs.map +0 -1
- package/dist/boat-lr7MPZ7H.js.map +0 -1
- package/dist/chips-CXZ4dJCK.cjs.map +0 -1
- package/dist/chips-Dg6Lk6BT.js.map +0 -1
- package/dist/date-range-BU6WX7d5.js.map +0 -1
- package/dist/date-range-C-_be3_E.cjs.map +0 -1
- package/dist/directives-fLwDj6b0.cjs.map +0 -1
- package/dist/directives-zi1Mm2er.js.map +0 -1
- package/dist/input-chip-57tgNXKT.cjs.map +0 -1
- package/dist/input-chip-C6Lq1927.js.map +0 -1
- package/dist/overlay-BpNhd74N.js.map +0 -1
- package/dist/overlay-UQR2Dy3u.cjs.map +0 -1
- package/dist/theme-iKUaS9JB.cjs +0 -181
|
@@ -1,16 +1,19 @@
|
|
|
1
1
|
# schmancy-boat
|
|
2
2
|
|
|
3
|
-
>
|
|
3
|
+
> Corner-anchored launcher that opens its panel via the `show()` overlay service. Three slots, three non-overlapping intents — **no element-type sniffing**. The collapsed launcher's size, padding, radius and spacing are the consumer's; the boat owns drag, corner-snapping, position persistence and the glass surface.
|
|
4
4
|
|
|
5
|
-
> **Note:** `schmancy-window` is the evolved successor with more capabilities (resize, maximize, multi-window registry). Prefer `schmancy-window` for new code unless you want the simpler
|
|
5
|
+
> **Note:** `schmancy-window` is the evolved successor with more capabilities (resize, maximize, multi-window registry). Prefer `schmancy-window` for new code unless you want the simpler launcher-to-overlay model.
|
|
6
6
|
|
|
7
7
|
## Usage
|
|
8
8
|
```html
|
|
9
|
-
<schmancy-boat id="assistant"
|
|
10
|
-
|
|
11
|
-
<
|
|
9
|
+
<schmancy-boat id="assistant" ?open=${isOpen}>
|
|
10
|
+
<!-- optional: slot a handle to make the boat draggable -->
|
|
11
|
+
<schmancy-icon slot="drag-handle">drag_indicator</schmancy-icon>
|
|
12
12
|
|
|
13
|
-
<!--
|
|
13
|
+
<!-- trigger slot: the collapsed launcher — a plain click opens the panel -->
|
|
14
|
+
<div slot="trigger" class="px-4 py-2 rounded-full">Assistant · 3</div>
|
|
15
|
+
|
|
16
|
+
<!-- default slot: blooms into the show() overlay on open -->
|
|
14
17
|
<div class="p-4">Panel body content</div>
|
|
15
18
|
</schmancy-boat>
|
|
16
19
|
```
|
|
@@ -19,11 +22,8 @@
|
|
|
19
22
|
| Property | Type | Default | Description |
|
|
20
23
|
|----------|------|---------|-------------|
|
|
21
24
|
| `id` | string | `'default'` | Unique identifier (persists drag position in localStorage) |
|
|
22
|
-
| `icon` | string | — | Material icon for the FAB (overridden by the `header` slot) |
|
|
23
|
-
| `label` | string | — | FAB label text. **Omit → circular icon-only FAB** |
|
|
24
25
|
| `open` | boolean | `false` | Open state, reflected. Bind `?open=${…}` to drive it |
|
|
25
26
|
| `corner` | `'bottom-right' \| 'bottom-left' \| 'top-right' \| 'top-left'` | `'bottom-right'` | Initial anchor corner |
|
|
26
|
-
| `lowered` | boolean | `false` | Lower the FAB elevation |
|
|
27
27
|
|
|
28
28
|
## Methods & event
|
|
29
29
|
```typescript
|
|
@@ -36,19 +36,25 @@ boat.addEventListener('toggle', e => e.detail) // 'open' | 'closed'
|
|
|
36
36
|
## Slots
|
|
37
37
|
| Slot | Renders | Behavior |
|
|
38
38
|
|------|---------|----------|
|
|
39
|
+
| `trigger` | the collapsed launcher — everything visible while closed | A native **click** (or Enter/Space) anywhere on it opens the panel. The boat does **not** `preventDefault` / `stopPropagation` / `setPointerCapture` here, so any interactive child (button, FAB, input) works natively. A child that should *not* also open the boat calls `stopPropagation()` on its own handler. |
|
|
40
|
+
| `drag-handle` | the drag affordance (a grip icon, a title bar — your choice) | **Opt-in.** Pointer-drag is wired only to this slot's boat-owned wrapper. Slot something here → draggable; omit it → the boat is static at its corner. A no-move tap on the handle also opens, so the grip doubles as a launcher. |
|
|
39
41
|
| _(default)_ | the expanded panel body | relocated into the `show()` overlay on open, restored on close |
|
|
40
|
-
| `summary` | trailing content on the FAB pill | live count / badge — stays on the FAB |
|
|
41
|
-
| `header` | leading icon on the FAB pill | overrides the `icon` property |
|
|
42
42
|
|
|
43
43
|
## Behavior
|
|
44
|
-
- Drag
|
|
45
|
-
-
|
|
46
|
-
-
|
|
44
|
+
- **Drag is opt-in and unambiguous.** No `<schmancy-boat>` is draggable unless the consumer slots `drag-handle`. Drag listens on a dedicated boat-owned region wrapping only that slot — every pointerdown there is a drag intent, so there is no interactive-element denylist and new interactive components never need registering.
|
|
45
|
+
- **The trigger is pure content.** Opening is a normal click that bubbles; nesting a `<schmancy-button>`, `<schmancy-fab>`, etc. in the trigger Just Works — the long-standing "interactive control swallowed by the drag/tap heuristic" bug class is gone (see ADR 0031).
|
|
46
|
+
- The collapsed shape is **not** imposed by the boat: no fixed height, padding, radius or gap. Style the `trigger` slot content for any shape.
|
|
47
|
+
- Drag to reposition (from the handle). Releases snap to the nearest corner (FLIP + `SPRING_SMOOTH`). Position persists in `localStorage` under `schmancy-boat-{id}`.
|
|
48
|
+
- Activation delegates to `show()`: blooms from the launcher, backdrop / Esc / back-button / sheet-on-narrow handled by the overlay primitive.
|
|
47
49
|
- Respects `prefers-reduced-motion`.
|
|
48
50
|
|
|
49
51
|
## Example
|
|
50
52
|
```html
|
|
51
|
-
<schmancy-boat id="chat"
|
|
53
|
+
<schmancy-boat id="chat" corner="bottom-right">
|
|
54
|
+
<schmancy-icon slot="drag-handle" class="px-1 opacity-40">drag_indicator</schmancy-icon>
|
|
55
|
+
<schmancy-fab slot="trigger" variant="tertiary" .label=${`Chat · ${count}`}>
|
|
56
|
+
<schmancy-icon>chat</schmancy-icon>
|
|
57
|
+
</schmancy-fab>
|
|
52
58
|
<schmancy-list class="p-2">
|
|
53
59
|
<!-- messages -->
|
|
54
60
|
</schmancy-list>
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
# schmancy-fab
|
|
2
|
+
|
|
3
|
+
> Material 3 Floating Action Button. Faithful to the M3 spec
|
|
4
|
+
> (m3.material.io/components/floating-action-button) and the `md-fab`
|
|
5
|
+
> reference implementation (github.com/material-components/material-web):
|
|
6
|
+
> four colour variants, three sizes, an extended form, and a lowered
|
|
7
|
+
> elevation register. Adds schmancy's house `magnetic` pull + spring press.
|
|
8
|
+
|
|
9
|
+
## Usage
|
|
10
|
+
```html
|
|
11
|
+
<!-- Regular FAB (icon-only) -->
|
|
12
|
+
<schmancy-fab aria-label="Compose"><schmancy-icon>edit</schmancy-icon></schmancy-fab>
|
|
13
|
+
|
|
14
|
+
<!-- Extended FAB -->
|
|
15
|
+
<schmancy-fab label="Compose" variant="primary">
|
|
16
|
+
<schmancy-icon>edit</schmancy-icon>
|
|
17
|
+
</schmancy-fab>
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
## Properties
|
|
21
|
+
| Property | Type | Default | Description |
|
|
22
|
+
|----------|------|---------|-------------|
|
|
23
|
+
| `variant` | `'surface' \| 'primary' \| 'secondary' \| 'tertiary'` | `'surface'` | M3 colour role. `surface` = `surface-containerHigh` container + `primary` icon; the others use the matching `*-container` / `*-onContainer` pair |
|
|
24
|
+
| `size` | `'small' \| 'medium' \| 'large'` | `'medium'` | Container size: 40 / 56 / 96 dp. Ignored while extended |
|
|
25
|
+
| `label` | `string` | `''` | A non-empty value switches the FAB to its **extended** form (icon + text), exactly as `md-fab` derives extended from a truthy label |
|
|
26
|
+
| `extended` | `boolean` | `false` | Reflected mirror of "`label` is non-empty"; drives the extended geometry. Set automatically from `label` — read it, don't set it |
|
|
27
|
+
| `lowered` | `boolean` | `false` | M3 lowered FAB: elevation drops to level 1 (resting) / level 2 (hover) |
|
|
28
|
+
|
|
29
|
+
Per M3 guidance a FAB is **never disabled** — there is no `disabled`
|
|
30
|
+
property, matching `md-fab`.
|
|
31
|
+
|
|
32
|
+
## Slots
|
|
33
|
+
| Slot | Description |
|
|
34
|
+
|------|-------------|
|
|
35
|
+
| (default) | The icon, typically `<schmancy-icon>`. Auto-sized per FAB size (24dp; 36dp for `large`) and given `aria-hidden` when an accessible name is present |
|
|
36
|
+
|
|
37
|
+
## M3 tokens (exact)
|
|
38
|
+
| | small | medium | large | extended |
|
|
39
|
+
|--|--|--|--|--|
|
|
40
|
+
| container | 40×40 | 56×56 | 96×96 | 56 tall, content wide |
|
|
41
|
+
| shape (radius) | 12dp | 16dp | 28dp | 16dp |
|
|
42
|
+
| icon | 24dp | 24dp | 36dp | 24dp |
|
|
43
|
+
|
|
44
|
+
Extended paddings: `padding-inline-start: 16px`, `padding-inline-end: 20px`,
|
|
45
|
+
icon-to-label gap `12px` — verbatim from `md-fab`'s shared styles. Label is
|
|
46
|
+
the `label-large` type scale.
|
|
47
|
+
|
|
48
|
+
Elevation maps to schmancy's M3 elevation tokens
|
|
49
|
+
(`--schmancy-sys-elevation-*`): resting **level 3**, hover **level 4**;
|
|
50
|
+
lowered → resting **level 1**, hover **level 2**. Pressed elevation equals
|
|
51
|
+
resting per M3 (the press read is the state layer + spring scale).
|
|
52
|
+
|
|
53
|
+
State layer: hover `0.08`, focus/pressed `0.10`, tinted with the variant's
|
|
54
|
+
on-colour.
|
|
55
|
+
|
|
56
|
+
## Physics (schmancy house style)
|
|
57
|
+
- **magnetic** directive embedded (strength 3, radius 60px) — same pull as `schmancy-button`.
|
|
58
|
+
- Hover raises elevation per M3; active applies a spring `scale(0.96)`.
|
|
59
|
+
- `prefers-reduced-motion` removes the transition and the press scale.
|
|
60
|
+
|
|
61
|
+
## Examples
|
|
62
|
+
```html
|
|
63
|
+
<!-- Small surface FAB -->
|
|
64
|
+
<schmancy-fab size="small" aria-label="Add"><schmancy-icon>add</schmancy-icon></schmancy-fab>
|
|
65
|
+
|
|
66
|
+
<!-- Large tertiary FAB -->
|
|
67
|
+
<schmancy-fab size="large" variant="tertiary" aria-label="Create">
|
|
68
|
+
<schmancy-icon>add</schmancy-icon>
|
|
69
|
+
</schmancy-fab>
|
|
70
|
+
|
|
71
|
+
<!-- Lowered extended secondary FAB -->
|
|
72
|
+
<schmancy-fab lowered label="New message" variant="secondary">
|
|
73
|
+
<schmancy-icon>edit</schmancy-icon>
|
|
74
|
+
</schmancy-fab>
|
|
75
|
+
```
|
|
@@ -1,53 +1,87 @@
|
|
|
1
|
-
# schmancy-steps
|
|
1
|
+
# schmancy-steps / schmancy-step
|
|
2
2
|
|
|
3
|
-
> Vertical stepper with collapsible
|
|
3
|
+
> Vertical stepper with orientation rail and optional collapsible content. Dual render mode decided per step by content presence.
|
|
4
4
|
|
|
5
5
|
## Usage
|
|
6
|
+
|
|
6
7
|
```html
|
|
7
|
-
|
|
8
|
-
|
|
8
|
+
<!-- Rail mode (no slotted content) — dot + connector + label -->
|
|
9
|
+
<schmancy-steps
|
|
10
|
+
class="flex flex-col"
|
|
11
|
+
.value=${activeStep}
|
|
12
|
+
@change=${(e) => handleStep(e.detail.value)}
|
|
13
|
+
>
|
|
14
|
+
<schmancy-step position="1" label="Organisation"></schmancy-step>
|
|
15
|
+
<schmancy-step position="2" label="Legal entity"></schmancy-step>
|
|
16
|
+
<schmancy-step position="3" label="Location"></schmancy-step>
|
|
17
|
+
<schmancy-step position="4" label="Done"></schmancy-step>
|
|
18
|
+
</schmancy-steps>
|
|
19
|
+
|
|
20
|
+
<!-- Content mode (slotted content) — collapsible card, active step expands -->
|
|
21
|
+
<schmancy-steps .value=${activeStep} @change=${(e) => handleStep(e.detail.value)}>
|
|
22
|
+
<schmancy-step position="1" label="Account" description="Create your account">
|
|
9
23
|
<schmancy-input label="Email" required></schmancy-input>
|
|
10
24
|
</schmancy-step>
|
|
11
|
-
<schmancy-step position="2"
|
|
25
|
+
<schmancy-step position="2" label="Profile" description="Set up profile">
|
|
12
26
|
<schmancy-input label="Name" required></schmancy-input>
|
|
13
27
|
</schmancy-step>
|
|
14
|
-
</schmancy-steps
|
|
28
|
+
</schmancy-steps>
|
|
15
29
|
```
|
|
16
30
|
|
|
17
|
-
## Properties
|
|
18
|
-
| Property | Type | Default | Description |
|
|
19
|
-
|----------|------|---------|-------------|
|
|
20
|
-
| currentStep | number | `1` | Currently active step (1-based) |
|
|
21
|
-
| gap | number | `4` | Gap between steps (Tailwind scale) |
|
|
31
|
+
## Properties — schmancy-steps
|
|
22
32
|
|
|
23
|
-
## Properties (schmancy-step)
|
|
24
33
|
| Property | Type | Default | Description |
|
|
25
|
-
|
|
26
|
-
|
|
|
27
|
-
|
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
34
|
+
|---|---|---|---|
|
|
35
|
+
| `value` | `number` | `1` | Active step (1-based). Reflected attribute. |
|
|
36
|
+
| `lockBack` | `boolean` | `false` | Block back-navigation for the whole stepper. |
|
|
37
|
+
|
|
38
|
+
Layout (spacing, orientation, width) is set by Tailwind classes on the host element; the primitive owns no layout props.
|
|
39
|
+
|
|
40
|
+
## Events — schmancy-steps
|
|
41
|
+
|
|
33
42
|
| Event | Detail | Description |
|
|
34
|
-
|
|
35
|
-
| change | `{ value: number }` |
|
|
43
|
+
|---|---|---|
|
|
44
|
+
| `change` | `{ value: number }` | Active step changed (property set or step click). |
|
|
45
|
+
|
|
46
|
+
```ts
|
|
47
|
+
export type SchmancyStepsChangeEvent = CustomEvent<{ value: number }>
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
## Properties — schmancy-step
|
|
51
|
+
|
|
52
|
+
| Property | Type | Default | Description |
|
|
53
|
+
|---|---|---|---|
|
|
54
|
+
| `position` | `number` | `1` | This step's 1-based index. Unique within the container. |
|
|
55
|
+
| `label` | `string` | `''` | Step label. |
|
|
56
|
+
| `description` | `string` | `''` | Secondary line (content mode only). |
|
|
57
|
+
| `completed` | `boolean` | `false` | Force complete status regardless of order. |
|
|
58
|
+
|
|
59
|
+
## Dual render mode
|
|
60
|
+
|
|
61
|
+
A `<schmancy-step>` detects its own content via `slotchange`:
|
|
62
|
+
|
|
63
|
+
- **With slotted content** — renders an interactive card row (icon circle, check/dot, label + description, `bg-primary-container/20` active card). The active step expands with `flex: 1 1 auto`; inactive steps collapse.
|
|
64
|
+
- **Without slotted content** — renders a minimal orientation rail row (dot + connector + label). Use this for a left-panel navigation rail.
|
|
65
|
+
|
|
66
|
+
## Step status
|
|
67
|
+
|
|
68
|
+
| Condition | Status |
|
|
69
|
+
|---|---|
|
|
70
|
+
| `position < value` or `completed` | `complete` |
|
|
71
|
+
| `position === value` | `current` |
|
|
72
|
+
| `position > value` | `upcoming` |
|
|
73
|
+
|
|
74
|
+
Clicking a `complete` or `current` step sets `value` and emits `change`. `upcoming` steps are inert. Back-navigation is blocked when the container has `lockBack`.
|
|
36
75
|
|
|
37
76
|
## Examples
|
|
77
|
+
|
|
38
78
|
```html
|
|
39
|
-
<!--
|
|
40
|
-
<schmancy-steps
|
|
41
|
-
<schmancy-step position="1"
|
|
42
|
-
|
|
43
|
-
</schmancy-step>
|
|
44
|
-
<schmancy-step position="2" title="Step 2">
|
|
79
|
+
<!-- Lock back-navigation after the first step -->
|
|
80
|
+
<schmancy-steps .value=${step} lockBack @change=${onStep}>
|
|
81
|
+
<schmancy-step position="1" label="Review" completed></schmancy-step>
|
|
82
|
+
<schmancy-step position="2" label="Confirm">
|
|
45
83
|
<p>Current step content</p>
|
|
46
84
|
</schmancy-step>
|
|
47
|
-
<schmancy-step position="3"
|
|
48
|
-
|
|
49
|
-
</schmancy-step>
|
|
50
|
-
</schmancy-steps-container>
|
|
85
|
+
<schmancy-step position="3" label="Done"></schmancy-step>
|
|
86
|
+
</schmancy-steps>
|
|
51
87
|
```
|
|
52
|
-
|
|
53
|
-
Only the active step renders its slotted content. Completed steps show a checkmark. Active step expands with `flex: 1`.
|
|
@@ -75,7 +75,7 @@ Every `--schmancy-sys-color-*` token is aliased as `--color-*` in the theme styl
|
|
|
75
75
|
--schmancy-sys-color-{token} → --color-{token} → bg-{token} · text-{token} · border-{token}
|
|
76
76
|
```
|
|
77
77
|
|
|
78
|
-
**
|
|
78
|
+
**The shortcut utility is the readable form of a token that exists for genuine semantic reuse and is registered in the workspace being edited.** `border-outline-variant` reads better than `border-[var(--schmancy-sys-color-outlineVariant)]` because `outlineVariant` is a reused semantic color aliased into every consuming workspace. A trivial or one-off layout value (`grid-rows-[auto_1fr]`, `max-w-[720px]`) stays in its portable arbitrary form — aliasing it behind a workspace-local `@theme` token adds a name no second call site uses and a build dependency a sibling workspace's Tailwind does not resolve.
|
|
79
79
|
|
|
80
80
|
Multi-word tokens are registered in **both** camelCase and kebab-case — both forms work. Use whichever reads better:
|
|
81
81
|
|
package/dist/skills/steps.md
CHANGED
|
@@ -1,53 +1,87 @@
|
|
|
1
|
-
# schmancy-steps
|
|
1
|
+
# schmancy-steps / schmancy-step
|
|
2
2
|
|
|
3
|
-
> Vertical stepper with collapsible
|
|
3
|
+
> Vertical stepper with orientation rail and optional collapsible content. Dual render mode decided per step by content presence.
|
|
4
4
|
|
|
5
5
|
## Usage
|
|
6
|
+
|
|
6
7
|
```html
|
|
7
|
-
|
|
8
|
-
|
|
8
|
+
<!-- Rail mode (no slotted content) — dot + connector + label -->
|
|
9
|
+
<schmancy-steps
|
|
10
|
+
class="flex flex-col"
|
|
11
|
+
.value=${activeStep}
|
|
12
|
+
@change=${(e) => handleStep(e.detail.value)}
|
|
13
|
+
>
|
|
14
|
+
<schmancy-step position="1" label="Organisation"></schmancy-step>
|
|
15
|
+
<schmancy-step position="2" label="Legal entity"></schmancy-step>
|
|
16
|
+
<schmancy-step position="3" label="Location"></schmancy-step>
|
|
17
|
+
<schmancy-step position="4" label="Done"></schmancy-step>
|
|
18
|
+
</schmancy-steps>
|
|
19
|
+
|
|
20
|
+
<!-- Content mode (slotted content) — collapsible card, active step expands -->
|
|
21
|
+
<schmancy-steps .value=${activeStep} @change=${(e) => handleStep(e.detail.value)}>
|
|
22
|
+
<schmancy-step position="1" label="Account" description="Create your account">
|
|
9
23
|
<schmancy-input label="Email" required></schmancy-input>
|
|
10
24
|
</schmancy-step>
|
|
11
|
-
<schmancy-step position="2"
|
|
25
|
+
<schmancy-step position="2" label="Profile" description="Set up profile">
|
|
12
26
|
<schmancy-input label="Name" required></schmancy-input>
|
|
13
27
|
</schmancy-step>
|
|
14
|
-
</schmancy-steps
|
|
28
|
+
</schmancy-steps>
|
|
15
29
|
```
|
|
16
30
|
|
|
17
|
-
## Properties
|
|
18
|
-
| Property | Type | Default | Description |
|
|
19
|
-
|----------|------|---------|-------------|
|
|
20
|
-
| currentStep | number | `1` | Currently active step (1-based) |
|
|
21
|
-
| gap | number | `4` | Gap between steps (Tailwind scale) |
|
|
31
|
+
## Properties — schmancy-steps
|
|
22
32
|
|
|
23
|
-
## Properties (schmancy-step)
|
|
24
33
|
| Property | Type | Default | Description |
|
|
25
|
-
|
|
26
|
-
|
|
|
27
|
-
|
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
34
|
+
|---|---|---|---|
|
|
35
|
+
| `value` | `number` | `1` | Active step (1-based). Reflected attribute. |
|
|
36
|
+
| `lockBack` | `boolean` | `false` | Block back-navigation for the whole stepper. |
|
|
37
|
+
|
|
38
|
+
Layout (spacing, orientation, width) is set by Tailwind classes on the host element; the primitive owns no layout props.
|
|
39
|
+
|
|
40
|
+
## Events — schmancy-steps
|
|
41
|
+
|
|
33
42
|
| Event | Detail | Description |
|
|
34
|
-
|
|
35
|
-
| change | `{ value: number }` |
|
|
43
|
+
|---|---|---|
|
|
44
|
+
| `change` | `{ value: number }` | Active step changed (property set or step click). |
|
|
45
|
+
|
|
46
|
+
```ts
|
|
47
|
+
export type SchmancyStepsChangeEvent = CustomEvent<{ value: number }>
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
## Properties — schmancy-step
|
|
51
|
+
|
|
52
|
+
| Property | Type | Default | Description |
|
|
53
|
+
|---|---|---|---|
|
|
54
|
+
| `position` | `number` | `1` | This step's 1-based index. Unique within the container. |
|
|
55
|
+
| `label` | `string` | `''` | Step label. |
|
|
56
|
+
| `description` | `string` | `''` | Secondary line (content mode only). |
|
|
57
|
+
| `completed` | `boolean` | `false` | Force complete status regardless of order. |
|
|
58
|
+
|
|
59
|
+
## Dual render mode
|
|
60
|
+
|
|
61
|
+
A `<schmancy-step>` detects its own content via `slotchange`:
|
|
62
|
+
|
|
63
|
+
- **With slotted content** — renders an interactive card row (icon circle, check/dot, label + description, `bg-primary-container/20` active card). The active step expands with `flex: 1 1 auto`; inactive steps collapse.
|
|
64
|
+
- **Without slotted content** — renders a minimal orientation rail row (dot + connector + label). Use this for a left-panel navigation rail.
|
|
65
|
+
|
|
66
|
+
## Step status
|
|
67
|
+
|
|
68
|
+
| Condition | Status |
|
|
69
|
+
|---|---|
|
|
70
|
+
| `position < value` or `completed` | `complete` |
|
|
71
|
+
| `position === value` | `current` |
|
|
72
|
+
| `position > value` | `upcoming` |
|
|
73
|
+
|
|
74
|
+
Clicking a `complete` or `current` step sets `value` and emits `change`. `upcoming` steps are inert. Back-navigation is blocked when the container has `lockBack`.
|
|
36
75
|
|
|
37
76
|
## Examples
|
|
77
|
+
|
|
38
78
|
```html
|
|
39
|
-
<!--
|
|
40
|
-
<schmancy-steps
|
|
41
|
-
<schmancy-step position="1"
|
|
42
|
-
|
|
43
|
-
</schmancy-step>
|
|
44
|
-
<schmancy-step position="2" title="Step 2">
|
|
79
|
+
<!-- Lock back-navigation after the first step -->
|
|
80
|
+
<schmancy-steps .value=${step} lockBack @change=${onStep}>
|
|
81
|
+
<schmancy-step position="1" label="Review" completed></schmancy-step>
|
|
82
|
+
<schmancy-step position="2" label="Confirm">
|
|
45
83
|
<p>Current step content</p>
|
|
46
84
|
</schmancy-step>
|
|
47
|
-
<schmancy-step position="3"
|
|
48
|
-
|
|
49
|
-
</schmancy-step>
|
|
50
|
-
</schmancy-steps-container>
|
|
85
|
+
<schmancy-step position="3" label="Done"></schmancy-step>
|
|
86
|
+
</schmancy-steps>
|
|
51
87
|
```
|
|
52
|
-
|
|
53
|
-
Only the active step renders its slotted content. Completed steps show a checkmark. Active step expands with `flex: 1`.
|
package/dist/skills/theme.md
CHANGED
|
@@ -75,7 +75,7 @@ Every `--schmancy-sys-color-*` token is aliased as `--color-*` in the theme styl
|
|
|
75
75
|
--schmancy-sys-color-{token} → --color-{token} → bg-{token} · text-{token} · border-{token}
|
|
76
76
|
```
|
|
77
77
|
|
|
78
|
-
**
|
|
78
|
+
**The shortcut utility is the readable form of a token that exists for genuine semantic reuse and is registered in the workspace being edited.** `border-outline-variant` reads better than `border-[var(--schmancy-sys-color-outlineVariant)]` because `outlineVariant` is a reused semantic color aliased into every consuming workspace. A trivial or one-off layout value (`grid-rows-[auto_1fr]`, `max-w-[720px]`) stays in its portable arbitrary form — aliasing it behind a workspace-local `@theme` token adds a name no second call site uses and a build dependency a sibling workspace's Tailwind does not resolve.
|
|
79
79
|
|
|
80
80
|
Multi-word tokens are registered in **both** camelCase and kebab-case — both forms work. Use whichever reads better:
|
|
81
81
|
|
package/dist/slider.cjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`}),require(`./chunk-CncqDLb2.cjs`);const e=require(`./SchmancyElement-
|
|
1
|
+
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`}),require(`./chunk-CncqDLb2.cjs`);const e=require(`./SchmancyElement-BHfQg3Tj.cjs`);require(`./mixins-DxHpyMHA.cjs`);let t=require(`rxjs`),n=require(`rxjs/operators`),r=require(`lit/decorators.js`),i=require(`lit`),a=require(`lit/directives/cache.js`);var o=class extends e.t{constructor(...e){super(...e),this.type=`content`,this.src=``,this.alt=``,this.controls=!0,this.autoplay=!1,this.loop=!1,this.muted=!1,this.fit=`cover`}static{this.styles=[i.css`
|
|
2
2
|
:host {
|
|
3
3
|
display: block;
|
|
4
4
|
scroll-snap-align: center; /* If your slider uses scroll-snap */
|
package/dist/slider.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { t as e, u as t } from "./SchmancyElement-
|
|
2
|
-
import "./mixins-
|
|
1
|
+
import { t as e, u as t } from "./SchmancyElement-CDT2q1lA.js";
|
|
2
|
+
import "./mixins-De1zjyhy.js";
|
|
3
3
|
import { fromEvent as n } from "rxjs";
|
|
4
4
|
import { throttleTime as r } from "rxjs/operators";
|
|
5
5
|
import { customElement as i, property as a, query as o, state as s } from "lit/decorators.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
require(`./chunk-CncqDLb2.cjs`);const e=require(`./state-Cex3rmx2.cjs`);let t=require(`rxjs`);var n=e.a(`schmancy/sound`).local({theme:null,volume:.15,muted:!1}),r={joyful:{puffs:[{startTime:0,duration:.08,frequency:3e3,volume:.3},{startTime:.06,duration:.1,frequency:3500,volume:.35}],tones:[{startTime:.02,duration:.15,frequency:784,volume:.25,type:`sine`},{startTime:.1,duration:.2,frequency:988,volume:.3,type:`sine`},{startTime:.18,duration:.25,frequency:1175,volume:.25,type:`sine`}]},content:{puffs:[{startTime:0,duration:.2,frequency:1500,volume:.25}],tones:[{startTime:.05,duration:.3,frequency:523,volume:.2,type:`sine`,filterFrequency:800},{startTime:.15,duration:.35,frequency:659,volume:.15,type:`sine`,filterFrequency:800}]},excited:{puffs:[{startTime:0,duration:.06,frequency:2500,volume:.25},{startTime:.05,duration:.06,frequency:3e3,volume:.3},{startTime:.1,duration:.08,frequency:3500,volume:.35}],tones:[{startTime:.02,duration:.12,frequency:880,volume:.2,type:`sine`},{startTime:.08,duration:.12,frequency:1047,volume:.25,type:`sine`},{startTime:.14,duration:.15,frequency:1319,volume:.3,type:`sine`}]},proud:{puffs:[{startTime:0,duration:.15,frequency:1800,volume:.3}],tones:[{startTime:.05,duration:.25,frequency:523,volume:.25,type:`sine`},{startTime:.08,duration:.25,frequency:659,volume:.2,type:`sine`},{startTime:.11,duration:.3,frequency:784,volume:.25,type:`sine`}]},hopeful:{puffs:[{startTime:0,duration:.12,frequency:2200,volume:.2}],tones:[{startTime:.03,duration:.3,frequency:659,volume:.2,type:`sine`,frequencyEnd:880}]},relieved:{puffs:[{startTime:0,duration:.25,frequency:1200,volume:.35}],tones:[{startTime:.1,duration:.35,frequency:659,volume:.2,type:`sine`,filterFrequency:800},{startTime:.25,duration:.4,frequency:523,volume:.15,type:`sine`,filterFrequency:800}]},grateful:{puffs:[{startTime:0,duration:.15,frequency:1500,volume:.25}],tones:[{startTime:.05,duration:.3,frequency:440,volume:.2,type:`sine`,filterFrequency:800},{startTime:.15,duration:.35,frequency:523,volume:.2,type:`sine`,filterFrequency:800},{startTime:.25,duration:.4,frequency:659,volume:.15,type:`sine`,filterFrequency:800}]},peaceful:{puffs:[{startTime:0,duration:.3,frequency:800,volume:.15}],tones:[{startTime:.1,duration:.5,frequency:392,volume:.12,type:`sine`,filterFrequency:500}]},playful:{puffs:[{startTime:0,duration:.05,frequency:2800,volume:.2},{startTime:.08,duration:.05,frequency:3200,volume:.25},{startTime:.14,duration:.06,frequency:2800,volume:.2}],tones:[{startTime:.03,duration:.1,frequency:784,volume:.2,type:`sine`},{startTime:.1,duration:.08,frequency:988,volume:.25,type:`sine`},{startTime:.16,duration:.12,frequency:784,volume:.2,type:`sine`}]},amused:{puffs:[{startTime:0,duration:.04,frequency:2500,volume:.2},{startTime:.06,duration:.04,frequency:2800,volume:.22},{startTime:.11,duration:.05,frequency:2600,volume:.18}],tones:[{startTime:.05,duration:.15,frequency:880,volume:.15,type:`sine`}]},curious:{puffs:[{startTime:0,duration:.1,frequency:2e3,volume:.2}],tones:[{startTime:.03,duration:.2,frequency:659,volume:.2,type:`sine`,frequencyEnd:880}]},inspired:{puffs:[{startTime:0,duration:.1,frequency:2500,volume:.25}],tones:[{startTime:.05,duration:.3,frequency:523,volume:.2,type:`sine`},{startTime:.07,duration:.28,frequency:784.5,volume:.16,type:`sine`},{startTime:.09,duration:.26,frequency:1046,volume:.12,type:`sine`}]},confident:{puffs:[{startTime:0,duration:.12,frequency:1500,volume:.3}],tones:[{startTime:.04,duration:.2,frequency:523,volume:.25,type:`sine`},{startTime:.06,duration:.22,frequency:659,volume:.2,type:`sine`}]},loved:{puffs:[{startTime:0,duration:.2,frequency:1e3,volume:.2}],tones:[{startTime:.08,duration:.4,frequency:392,volume:.18,type:`sine`,filterFrequency:600},{startTime:.2,duration:.45,frequency:494,volume:.15,type:`sine`,filterFrequency:600}]},comforted:{puffs:[{startTime:0,duration:.25,frequency:900,volume:.18}],tones:[{startTime:.1,duration:.35,frequency:523,volume:.15,type:`sine`,filterFrequency:800},{startTime:.25,duration:.4,frequency:440,volume:.12,type:`sine`,filterFrequency:800}]},energized:{puffs:[{startTime:0,duration:.05,frequency:3e3,volume:.25},{startTime:.04,duration:.05,frequency:3500,volume:.28}],tones:[{startTime:.02,duration:.1,frequency:784,volume:.2,type:`sine`},{startTime:.08,duration:.12,frequency:988,volume:.25,type:`sine`},{startTime:.14,duration:.15,frequency:1175,volume:.22,type:`sine`}]},celebrated:{puffs:[{startTime:0,duration:.08,frequency:2500,volume:.2}],tones:[{startTime:.02,duration:.18,frequency:523,volume:.22,type:`sine`},{startTime:.08,duration:.18,frequency:659,volume:.24,type:`sine`},{startTime:.14,duration:.2,frequency:784,volume:.26,type:`sine`},{startTime:.22,duration:.3,frequency:1047,volume:.22,type:`sine`}]},sad:{puffs:[{startTime:0,duration:.3,frequency:600,volume:.25}],tones:[{startTime:.1,duration:.4,frequency:392,volume:.2,type:`sine`,filterFrequency:400},{startTime:.3,duration:.45,frequency:294,volume:.15,type:`sine`,filterFrequency:350}]},lonely:{puffs:[{startTime:0,duration:.2,frequency:700,volume:.2}],tones:[{startTime:.15,duration:.5,frequency:330,volume:.12,type:`sine`,filterFrequency:450}]},disappointed:{puffs:[{startTime:0,duration:.25,frequency:800,volume:.25}],tones:[{startTime:.08,duration:.3,frequency:523,volume:.18,type:`sine`,frequencyEnd:349}]},heartbroken:{puffs:[{startTime:0,duration:.3,frequency:600,volume:.25}],tones:[{startTime:.1,duration:.4,frequency:392,volume:.2,type:`sine`,filterFrequency:400},{startTime:.3,duration:.45,frequency:294,volume:.15,type:`sine`,filterFrequency:350}]},grieving:{puffs:[{startTime:0,duration:.3,frequency:600,volume:.25}],tones:[{startTime:.1,duration:.4,frequency:392,volume:.2,type:`sine`,filterFrequency:400},{startTime:.3,duration:.45,frequency:294,volume:.15,type:`sine`,filterFrequency:350}]},hopeless:{puffs:[{startTime:0,duration:.2,frequency:700,volume:.2}],tones:[{startTime:.15,duration:.5,frequency:330,volume:.12,type:`sine`,filterFrequency:450}]},empty:{puffs:[{startTime:0,duration:.2,frequency:700,volume:.2}],tones:[{startTime:.15,duration:.5,frequency:330,volume:.12,type:`sine`,filterFrequency:450}]},discouraged:{puffs:[{startTime:0,duration:.25,frequency:800,volume:.25}],tones:[{startTime:.08,duration:.3,frequency:523,volume:.18,type:`sine`,frequencyEnd:349}]},melancholic:{puffs:[{startTime:0,duration:.3,frequency:700,volume:.18}],tones:[{startTime:.1,duration:.45,frequency:440,volume:.15,type:`sine`,filterFrequency:500},{startTime:.3,duration:.5,frequency:392,volume:.12,type:`sine`,filterFrequency:450}]},homesick:{puffs:[{startTime:0,duration:.25,frequency:800,volume:.15}],tones:[{startTime:.1,duration:.4,frequency:440,volume:.12,type:`sine`,filterFrequency:500},{startTime:.3,duration:.45,frequency:392,volume:.1,type:`sine`,filterFrequency:450}]},hurt:{puffs:[{startTime:0,duration:.3,frequency:600,volume:.25}],tones:[{startTime:.1,duration:.4,frequency:392,volume:.2,type:`sine`,filterFrequency:400},{startTime:.3,duration:.45,frequency:294,volume:.15,type:`sine`,filterFrequency:350}]},miserable:{puffs:[{startTime:0,duration:.3,frequency:600,volume:.25}],tones:[{startTime:.1,duration:.4,frequency:392,volume:.2,type:`sine`,filterFrequency:400},{startTime:.3,duration:.45,frequency:294,volume:.15,type:`sine`,filterFrequency:350}]},regretful:{puffs:[{startTime:0,duration:.3,frequency:700,volume:.18}],tones:[{startTime:.1,duration:.45,frequency:440,volume:.15,type:`sine`,filterFrequency:500},{startTime:.3,duration:.5,frequency:392,volume:.12,type:`sine`,filterFrequency:450}]},ashamed:{puffs:[{startTime:0,duration:.25,frequency:800,volume:.25}],tones:[{startTime:.08,duration:.3,frequency:523,volume:.18,type:`sine`,frequencyEnd:349}]},inferior:{puffs:[{startTime:0,duration:.25,frequency:800,volume:.25}],tones:[{startTime:.08,duration:.3,frequency:523,volume:.18,type:`sine`,frequencyEnd:349}]},anxious:{puffs:[{startTime:0,duration:.08,frequency:1800,volume:.2},{startTime:.12,duration:.08,frequency:1900,volume:.22}],tones:[{startTime:.03,duration:.25,frequency:440,volume:.15,type:`sine`}],description:`Tight, quick puffs with uncertain wobble`},worried:{puffs:[{startTime:0,duration:.15,frequency:1200,volume:.2}],tones:[{startTime:.05,duration:.25,frequency:349,volume:.15,type:`sine`,frequencyEnd:392}]},afraid:{puffs:[{startTime:0,duration:.08,frequency:1800,volume:.2},{startTime:.12,duration:.08,frequency:1900,volume:.22}],tones:[{startTime:.03,duration:.25,frequency:440,volume:.15,type:`sine`}]},terrified:{puffs:[{startTime:0,duration:.04,frequency:3500,volume:.3}],tones:[{startTime:0,duration:.08,frequency:1047,volume:.25,type:`sine`},{startTime:.05,duration:.15,frequency:880,volume:.15,type:`sine`}]},panicked:{puffs:[{startTime:0,duration:.04,frequency:3500,volume:.3}],tones:[{startTime:0,duration:.08,frequency:1047,volume:.25,type:`sine`},{startTime:.05,duration:.15,frequency:880,volume:.15,type:`sine`}]},nervous:{puffs:[{startTime:0,duration:.05,frequency:2e3,volume:.18},{startTime:.08,duration:.05,frequency:2100,volume:.18},{startTime:.15,duration:.06,frequency:2e3,volume:.16}],tones:[{startTime:.04,duration:.2,frequency:494,volume:.12,type:`sine`}]},uneasy:{puffs:[{startTime:0,duration:.15,frequency:1200,volume:.2}],tones:[{startTime:.05,duration:.25,frequency:349,volume:.15,type:`sine`,frequencyEnd:392}]},insecure:{puffs:[{startTime:0,duration:.05,frequency:2e3,volume:.18},{startTime:.08,duration:.05,frequency:2100,volume:.18},{startTime:.15,duration:.06,frequency:2e3,volume:.16}],tones:[{startTime:.04,duration:.2,frequency:494,volume:.12,type:`sine`}]},overwhelmed:{puffs:[{startTime:0,duration:.08,frequency:1800,volume:.2},{startTime:.12,duration:.08,frequency:1900,volume:.22}],tones:[{startTime:.03,duration:.25,frequency:440,volume:.15,type:`sine`}]},stressed:{puffs:[{startTime:0,duration:.08,frequency:1800,volume:.2},{startTime:.12,duration:.08,frequency:1900,volume:.22}],tones:[{startTime:.03,duration:.25,frequency:440,volume:.15,type:`sine`}]},tense:{puffs:[{startTime:0,duration:.08,frequency:1800,volume:.2},{startTime:.12,duration:.08,frequency:1900,volume:.22}],tones:[{startTime:.03,duration:.25,frequency:440,volume:.15,type:`sine`}]},apprehensive:{puffs:[{startTime:0,duration:.15,frequency:1200,volume:.2}],tones:[{startTime:.05,duration:.25,frequency:349,volume:.15,type:`sine`,frequencyEnd:392}]},startled:{puffs:[{startTime:0,duration:.04,frequency:3500,volume:.3}],tones:[{startTime:0,duration:.08,frequency:1047,volume:.25,type:`sine`},{startTime:.05,duration:.15,frequency:880,volume:.15,type:`sine`}]},suspicious:{puffs:[{startTime:0,duration:.15,frequency:1200,volume:.2}],tones:[{startTime:.05,duration:.25,frequency:349,volume:.15,type:`sine`,frequencyEnd:392}]},vulnerable:{puffs:[{startTime:0,duration:.05,frequency:2e3,volume:.18},{startTime:.08,duration:.05,frequency:2100,volume:.18},{startTime:.15,duration:.06,frequency:2e3,volume:.16}],tones:[{startTime:.04,duration:.2,frequency:494,volume:.12,type:`sine`}]},annoyed:{puffs:[{startTime:0,duration:.1,frequency:1e3,volume:.25}],tones:[{startTime:.03,duration:.2,frequency:294,volume:.18,type:`sine`,filterFrequency:400}]},irritated:{puffs:[{startTime:0,duration:.1,frequency:1e3,volume:.25}],tones:[{startTime:.03,duration:.2,frequency:294,volume:.18,type:`sine`,filterFrequency:400}]},frustrated:{puffs:[{startTime:0,duration:.12,frequency:900,volume:.28}],tones:[{startTime:.04,duration:.15,frequency:349,volume:.2,type:`sine`},{startTime:.12,duration:.12,frequency:330,volume:.18,type:`sine`}]},angry:{puffs:[{startTime:0,duration:.12,frequency:900,volume:.28}],tones:[{startTime:.04,duration:.15,frequency:349,volume:.2,type:`sine`},{startTime:.12,duration:.12,frequency:330,volume:.18,type:`sine`}]},enraged:{puffs:[{startTime:0,duration:.12,frequency:900,volume:.28}],tones:[{startTime:.04,duration:.15,frequency:349,volume:.2,type:`sine`},{startTime:.12,duration:.12,frequency:330,volume:.18,type:`sine`}]},bitter:{puffs:[{startTime:0,duration:.12,frequency:900,volume:.28}],tones:[{startTime:.04,duration:.15,frequency:349,volume:.2,type:`sine`},{startTime:.12,duration:.12,frequency:330,volume:.18,type:`sine`}]},resentful:{puffs:[{startTime:0,duration:.1,frequency:1e3,volume:.25}],tones:[{startTime:.03,duration:.2,frequency:294,volume:.18,type:`sine`,filterFrequency:400}]},jealous:{puffs:[{startTime:0,duration:.1,frequency:1e3,volume:.25}],tones:[{startTime:.03,duration:.2,frequency:294,volume:.18,type:`sine`,filterFrequency:400}]},envious:{puffs:[{startTime:0,duration:.1,frequency:1e3,volume:.25}],tones:[{startTime:.03,duration:.2,frequency:294,volume:.18,type:`sine`,filterFrequency:400}]},indignant:{puffs:[{startTime:0,duration:.12,frequency:900,volume:.28}],tones:[{startTime:.04,duration:.15,frequency:349,volume:.2,type:`sine`},{startTime:.12,duration:.12,frequency:330,volume:.18,type:`sine`}]},impatient:{puffs:[{startTime:0,duration:.04,frequency:1500,volume:.2},{startTime:.08,duration:.04,frequency:1500,volume:.2},{startTime:.16,duration:.04,frequency:1500,volume:.22}],tones:[{startTime:.06,duration:.1,frequency:523,volume:.15,type:`sine`}]},hostile:{puffs:[{startTime:0,duration:.12,frequency:900,volume:.28}],tones:[{startTime:.04,duration:.15,frequency:349,volume:.2,type:`sine`},{startTime:.12,duration:.12,frequency:330,volume:.18,type:`sine`}]},contemptuous:{puffs:[{startTime:0,duration:.1,frequency:1e3,volume:.25}],tones:[{startTime:.03,duration:.2,frequency:294,volume:.18,type:`sine`,filterFrequency:400}]},tired:{puffs:[{startTime:0,duration:.35,frequency:500,volume:.2}],tones:[{startTime:.1,duration:.4,frequency:330,volume:.12,type:`sine`,filterFrequency:350}]},exhausted:{puffs:[{startTime:0,duration:.45,frequency:400,volume:.18}],tones:[{startTime:.15,duration:.5,frequency:294,volume:.1,type:`sine`,filterFrequency:300}]},drained:{puffs:[{startTime:0,duration:.45,frequency:400,volume:.18}],tones:[{startTime:.15,duration:.5,frequency:294,volume:.1,type:`sine`,filterFrequency:300}]},burnedOut:{puffs:[{startTime:0,duration:.45,frequency:400,volume:.18}],tones:[{startTime:.15,duration:.5,frequency:294,volume:.1,type:`sine`,filterFrequency:300}]},numb:{puffs:[{startTime:0,duration:.45,frequency:400,volume:.18}],tones:[{startTime:.15,duration:.5,frequency:294,volume:.1,type:`sine`,filterFrequency:300}]},bored:{puffs:[{startTime:0,duration:.25,frequency:600,volume:.15}],tones:[{startTime:.1,duration:.3,frequency:349,volume:.1,type:`sine`,filterFrequency:400}]},unmotivated:{puffs:[{startTime:0,duration:.25,frequency:600,volume:.15}],tones:[{startTime:.1,duration:.3,frequency:349,volume:.1,type:`sine`,filterFrequency:400}]},apathetic:{puffs:[{startTime:0,duration:.25,frequency:600,volume:.15}],tones:[{startTime:.1,duration:.3,frequency:349,volume:.1,type:`sine`,filterFrequency:400}]},restless:{puffs:[{startTime:0,duration:.35,frequency:500,volume:.2}],tones:[{startTime:.1,duration:.4,frequency:330,volume:.12,type:`sine`,filterFrequency:350}]},calm:{puffs:[{startTime:0,duration:.3,frequency:600,volume:.12}],tones:[{startTime:.1,duration:.5,frequency:392,volume:.1,type:`sine`,filterFrequency:500}]},relaxed:{puffs:[{startTime:0,duration:.35,frequency:700,volume:.15}],tones:[{startTime:.15,duration:.45,frequency:440,volume:.1,type:`sine`,filterFrequency:800},{startTime:.35,duration:.5,frequency:392,volume:.08,type:`sine`,filterFrequency:800}]},atEase:{puffs:[{startTime:0,duration:.35,frequency:700,volume:.15}],tones:[{startTime:.15,duration:.45,frequency:440,volume:.1,type:`sine`,filterFrequency:800},{startTime:.35,duration:.5,frequency:392,volume:.08,type:`sine`,filterFrequency:800}]},balanced:{puffs:[{startTime:0,duration:.3,frequency:600,volume:.12}],tones:[{startTime:.1,duration:.5,frequency:392,volume:.1,type:`sine`,filterFrequency:500}]},stable:{puffs:[{startTime:0,duration:.25,frequency:500,volume:.2}],tones:[{startTime:.1,duration:.4,frequency:262,volume:.15,type:`sine`,filterFrequency:350}]},secure:{puffs:[{startTime:0,duration:.3,frequency:700,volume:.15}],tones:[{startTime:.1,duration:.4,frequency:349,volume:.12,type:`sine`,filterFrequency:800},{startTime:.25,duration:.45,frequency:440,volume:.1,type:`sine`,filterFrequency:800}]},safe:{puffs:[{startTime:0,duration:.3,frequency:700,volume:.15}],tones:[{startTime:.1,duration:.4,frequency:349,volume:.12,type:`sine`,filterFrequency:800},{startTime:.25,duration:.45,frequency:440,volume:.1,type:`sine`,filterFrequency:800}]},centered:{puffs:[{startTime:0,duration:.25,frequency:500,volume:.2}],tones:[{startTime:.1,duration:.4,frequency:262,volume:.15,type:`sine`,filterFrequency:350}]},grounded:{puffs:[{startTime:0,duration:.25,frequency:500,volume:.2}],tones:[{startTime:.1,duration:.4,frequency:262,volume:.15,type:`sine`,filterFrequency:350}]},accepting:{puffs:[{startTime:0,duration:.3,frequency:600,volume:.12}],tones:[{startTime:.1,duration:.5,frequency:392,volume:.1,type:`sine`,filterFrequency:500}]},connected:{puffs:[{startTime:0,duration:.2,frequency:1200,volume:.18}],tones:[{startTime:.08,duration:.3,frequency:440,volume:.15,type:`sine`,filterFrequency:800},{startTime:.12,duration:.32,frequency:523,volume:.12,type:`sine`,filterFrequency:800}]},accepted:{puffs:[{startTime:0,duration:.15,frequency:1500,volume:.2}],tones:[{startTime:.05,duration:.25,frequency:440,volume:.15,type:`sine`,filterFrequency:800},{startTime:.15,duration:.3,frequency:523,volume:.18,type:`sine`,filterFrequency:800}]},included:{puffs:[{startTime:0,duration:.2,frequency:1200,volume:.18}],tones:[{startTime:.08,duration:.3,frequency:440,volume:.15,type:`sine`,filterFrequency:800},{startTime:.12,duration:.32,frequency:523,volume:.12,type:`sine`,filterFrequency:800}]},belonging:{puffs:[{startTime:0,duration:.2,frequency:1200,volume:.18}],tones:[{startTime:.08,duration:.3,frequency:440,volume:.15,type:`sine`,filterFrequency:800},{startTime:.12,duration:.32,frequency:523,volume:.12,type:`sine`,filterFrequency:800}]},appreciated:{puffs:[{startTime:0,duration:.15,frequency:1500,volume:.2}],tones:[{startTime:.05,duration:.25,frequency:440,volume:.15,type:`sine`,filterFrequency:800},{startTime:.15,duration:.3,frequency:523,volume:.18,type:`sine`,filterFrequency:800}]},valued:{puffs:[{startTime:0,duration:.15,frequency:1500,volume:.2}],tones:[{startTime:.05,duration:.25,frequency:440,volume:.15,type:`sine`,filterFrequency:800},{startTime:.15,duration:.3,frequency:523,volume:.18,type:`sine`,filterFrequency:800}]},respected:{puffs:[{startTime:0,duration:.15,frequency:1500,volume:.2}],tones:[{startTime:.05,duration:.25,frequency:440,volume:.15,type:`sine`,filterFrequency:800},{startTime:.15,duration:.3,frequency:523,volume:.18,type:`sine`,filterFrequency:800}]},supported:{puffs:[{startTime:0,duration:.25,frequency:900,volume:.18}],tones:[{startTime:.1,duration:.35,frequency:349,volume:.12,type:`sine`,filterFrequency:800},{startTime:.15,duration:.4,frequency:440,volume:.1,type:`sine`,filterFrequency:800}]},protective:{puffs:[{startTime:0,duration:.25,frequency:900,volume:.18}],tones:[{startTime:.1,duration:.35,frequency:349,volume:.12,type:`sine`,filterFrequency:800},{startTime:.15,duration:.4,frequency:440,volume:.1,type:`sine`,filterFrequency:800}]},compassionate:{puffs:[{startTime:0,duration:.2,frequency:1200,volume:.18}],tones:[{startTime:.08,duration:.3,frequency:440,volume:.15,type:`sine`,filterFrequency:800},{startTime:.12,duration:.32,frequency:523,volume:.12,type:`sine`,filterFrequency:800}]},empathetic:{puffs:[{startTime:0,duration:.2,frequency:1200,volume:.18}],tones:[{startTime:.08,duration:.3,frequency:440,volume:.15,type:`sine`,filterFrequency:800},{startTime:.12,duration:.32,frequency:523,volume:.12,type:`sine`,filterFrequency:800}]},conflicted:{puffs:[{startTime:0,duration:.12,frequency:1200,volume:.18}],tones:[{startTime:.04,duration:.2,frequency:440,volume:.12,type:`sine`,frequencyEnd:494},{startTime:.15,duration:.15,frequency:466,volume:.1,type:`sine`}]},confused:{puffs:[{startTime:0,duration:.12,frequency:1200,volume:.18}],tones:[{startTime:.04,duration:.2,frequency:440,volume:.12,type:`sine`,frequencyEnd:494},{startTime:.15,duration:.15,frequency:466,volume:.1,type:`sine`}]},ambivalent:{puffs:[{startTime:0,duration:.12,frequency:1200,volume:.18}],tones:[{startTime:.04,duration:.2,frequency:440,volume:.12,type:`sine`,frequencyEnd:494},{startTime:.15,duration:.15,frequency:466,volume:.1,type:`sine`}]},nostalgic:{puffs:[{startTime:0,duration:.25,frequency:800,volume:.15}],tones:[{startTime:.1,duration:.4,frequency:440,volume:.12,type:`sine`,filterFrequency:500},{startTime:.3,duration:.45,frequency:392,volume:.1,type:`sine`,filterFrequency:450}]},guilty:{puffs:[{startTime:0,duration:.25,frequency:800,volume:.25}],tones:[{startTime:.08,duration:.3,frequency:523,volume:.18,type:`sine`,frequencyEnd:349}]},embarrassed:{puffs:[{startTime:0,duration:.05,frequency:2e3,volume:.18},{startTime:.08,duration:.05,frequency:2100,volume:.18},{startTime:.15,duration:.06,frequency:2e3,volume:.16}],tones:[{startTime:.04,duration:.2,frequency:494,volume:.12,type:`sine`}]},surprised:{puffs:[{startTime:0,duration:.06,frequency:2800,volume:.25}],tones:[{startTime:.02,duration:.15,frequency:659,volume:.2,type:`sine`,frequencyEnd:988}]},shocked:{puffs:[{startTime:0,duration:.04,frequency:3500,volume:.3}],tones:[{startTime:0,duration:.08,frequency:1047,volume:.25,type:`sine`},{startTime:.05,duration:.15,frequency:880,volume:.15,type:`sine`}]},awestruck:{puffs:[{startTime:0,duration:.2,frequency:1500,volume:.2}],tones:[{startTime:.08,duration:.4,frequency:440,volume:.15,type:`sine`},{startTime:.1,duration:.38,frequency:660,volume:.12,type:`sine`},{startTime:.12,duration:.36,frequency:880,volume:.09,type:`sine`}]},skeptical:{puffs:[{startTime:0,duration:.12,frequency:1200,volume:.18}],tones:[{startTime:.04,duration:.2,frequency:440,volume:.12,type:`sine`,frequencyEnd:494},{startTime:.15,duration:.15,frequency:466,volume:.1,type:`sine`}]}},i=class e{get theme(){return n.value.theme}get volume(){return n.value.volume}get muted(){return n.value.muted}get themeName(){return this.theme?.name??`default`}constructor(){this.audioContext=null,this.theme$=n.$.pipe((0,t.map)(e=>e.theme),(0,t.shareReplay)(1)),this.volume$=n.$.pipe((0,t.map)(e=>e.volume),(0,t.distinctUntilChanged)(),(0,t.shareReplay)(1)),this.muted$=n.$.pipe((0,t.map)(e=>e.muted),(0,t.distinctUntilChanged)(),(0,t.shareReplay)(1)),this._themeName$=new t.BehaviorSubject(`default`),this.themeName$=this._themeName$.asObservable(),this.theme$.subscribe(e=>{this._themeName$.next(e?.name??`default`)})}getContext(){if(!this.audioContext){let e=window.AudioContext||window.webkitAudioContext;this.audioContext=new e}return this.audioContext.state===`suspended`&&this.audioContext.resume(),this.audioContext}playPuff(e,t,n){let r=this.getContext(),i=Math.floor(r.sampleRate*t.duration),a=r.createBuffer(1,i,r.sampleRate),o=a.getChannelData(0);for(let e=0;e<i;e++)o[e]=2*Math.random()-1;let s=r.createBufferSource();s.buffer=a;let c=r.createBiquadFilter();c.type=`bandpass`,c.frequency.value=t.frequency,c.Q.value=.7;let l=r.createGain();l.gain.setValueAtTime(0,e),l.gain.linearRampToValueAtTime(t.volume*n,e+.015),l.gain.exponentialRampToValueAtTime(.001,e+t.duration),s.connect(c).connect(l).connect(r.destination),s.start(e),s.stop(e+t.duration)}playTone(e,t,n){let r=this.getContext(),i=r.createOscillator(),a=r.createGain();i.type=t.type,i.frequency.setValueAtTime(t.frequency,e),t.frequencyEnd&&i.frequency.exponentialRampToValueAtTime(t.frequencyEnd,e+.8*t.duration);let o=i;if(t.filterFrequency){let e=r.createBiquadFilter();e.type=`lowpass`,e.frequency.value=t.filterFrequency,i.connect(e),o=e}a.gain.setValueAtTime(0,e),a.gain.linearRampToValueAtTime(t.volume*n,e+.02),a.gain.exponentialRampToValueAtTime(.001,e+t.duration),o.connect(a).connect(r.destination),i.start(e),i.stop(e+t.duration)}setTheme(e){n.set({theme:e})}resetTheme(){n.set({theme:null})}setVolume(e){n.set({volume:Math.max(0,Math.min(1,e))})}mute(){n.set({muted:!0})}unmute(){n.set({muted:!1})}toggleMute(){n.set({muted:!this.muted})}getSoundForFeeling(e){let t=this.theme;if(t?.feelings?.[e])return t.feelings[e];if(t?.categoryDefaults){let n=this.getCategoryForFeeling(e);if(t.categoryDefaults[n])return t.categoryDefaults[n]}return r[e]}getCategoryForFeeling(e){return[`joyful`,`content`,`excited`,`proud`,`hopeful`,`relieved`,`grateful`,`peaceful`,`playful`,`amused`,`curious`,`inspired`,`confident`,`loved`,`comforted`,`energized`,`celebrated`].includes(e)?`happy`:[`sad`,`lonely`,`disappointed`,`heartbroken`,`grieving`,`hopeless`,`empty`,`discouraged`,`melancholic`,`homesick`,`hurt`,`miserable`,`regretful`,`ashamed`,`inferior`].includes(e)?`sad`:[`anxious`,`worried`,`afraid`,`terrified`,`panicked`,`nervous`,`uneasy`,`insecure`,`overwhelmed`,`stressed`,`tense`,`apprehensive`,`startled`,`suspicious`,`vulnerable`].includes(e)?`anxious`:[`annoyed`,`irritated`,`frustrated`,`angry`,`enraged`,`bitter`,`resentful`,`jealous`,`envious`,`indignant`,`impatient`,`hostile`,`contemptuous`].includes(e)?`angry`:[`tired`,`exhausted`,`drained`,`burnedOut`,`numb`,`bored`,`unmotivated`,`apathetic`,`restless`].includes(e)?`tired`:[`calm`,`relaxed`,`atEase`,`balanced`,`stable`,`secure`,`safe`,`centered`,`grounded`,`accepting`].includes(e)?`calm`:[`connected`,`accepted`,`included`,`belonging`,`appreciated`,`valued`,`respected`,`supported`,`protective`,`compassionate`,`empathetic`].includes(e)?`connected`:`mixed`}play(e){if(this.muted)return;let t=this.getSoundForFeeling(e),n=this.getContext().currentTime,r=this.theme?.masterVolume??1,i=this.volume*r;t.puffs.forEach(e=>{this.playPuff(n+e.startTime,e,i)}),t.tones.forEach(e=>{this.playTone(n+e.startTime,e,i)})}dispose(){this.audioContext&&=(this.audioContext.close(),null)}static getInstance(){return e.instance||=new e,e.instance}}.getInstance(),a=i;Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return i}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return a}});
|
|
1
|
+
require(`./chunk-CncqDLb2.cjs`);const e=require(`./state-Bj0M9a6T.cjs`);let t=require(`rxjs`);var n=e.a(`schmancy/sound`).local({theme:null,volume:.15,muted:!1}),r={joyful:{puffs:[{startTime:0,duration:.08,frequency:3e3,volume:.3},{startTime:.06,duration:.1,frequency:3500,volume:.35}],tones:[{startTime:.02,duration:.15,frequency:784,volume:.25,type:`sine`},{startTime:.1,duration:.2,frequency:988,volume:.3,type:`sine`},{startTime:.18,duration:.25,frequency:1175,volume:.25,type:`sine`}]},content:{puffs:[{startTime:0,duration:.2,frequency:1500,volume:.25}],tones:[{startTime:.05,duration:.3,frequency:523,volume:.2,type:`sine`,filterFrequency:800},{startTime:.15,duration:.35,frequency:659,volume:.15,type:`sine`,filterFrequency:800}]},excited:{puffs:[{startTime:0,duration:.06,frequency:2500,volume:.25},{startTime:.05,duration:.06,frequency:3e3,volume:.3},{startTime:.1,duration:.08,frequency:3500,volume:.35}],tones:[{startTime:.02,duration:.12,frequency:880,volume:.2,type:`sine`},{startTime:.08,duration:.12,frequency:1047,volume:.25,type:`sine`},{startTime:.14,duration:.15,frequency:1319,volume:.3,type:`sine`}]},proud:{puffs:[{startTime:0,duration:.15,frequency:1800,volume:.3}],tones:[{startTime:.05,duration:.25,frequency:523,volume:.25,type:`sine`},{startTime:.08,duration:.25,frequency:659,volume:.2,type:`sine`},{startTime:.11,duration:.3,frequency:784,volume:.25,type:`sine`}]},hopeful:{puffs:[{startTime:0,duration:.12,frequency:2200,volume:.2}],tones:[{startTime:.03,duration:.3,frequency:659,volume:.2,type:`sine`,frequencyEnd:880}]},relieved:{puffs:[{startTime:0,duration:.25,frequency:1200,volume:.35}],tones:[{startTime:.1,duration:.35,frequency:659,volume:.2,type:`sine`,filterFrequency:800},{startTime:.25,duration:.4,frequency:523,volume:.15,type:`sine`,filterFrequency:800}]},grateful:{puffs:[{startTime:0,duration:.15,frequency:1500,volume:.25}],tones:[{startTime:.05,duration:.3,frequency:440,volume:.2,type:`sine`,filterFrequency:800},{startTime:.15,duration:.35,frequency:523,volume:.2,type:`sine`,filterFrequency:800},{startTime:.25,duration:.4,frequency:659,volume:.15,type:`sine`,filterFrequency:800}]},peaceful:{puffs:[{startTime:0,duration:.3,frequency:800,volume:.15}],tones:[{startTime:.1,duration:.5,frequency:392,volume:.12,type:`sine`,filterFrequency:500}]},playful:{puffs:[{startTime:0,duration:.05,frequency:2800,volume:.2},{startTime:.08,duration:.05,frequency:3200,volume:.25},{startTime:.14,duration:.06,frequency:2800,volume:.2}],tones:[{startTime:.03,duration:.1,frequency:784,volume:.2,type:`sine`},{startTime:.1,duration:.08,frequency:988,volume:.25,type:`sine`},{startTime:.16,duration:.12,frequency:784,volume:.2,type:`sine`}]},amused:{puffs:[{startTime:0,duration:.04,frequency:2500,volume:.2},{startTime:.06,duration:.04,frequency:2800,volume:.22},{startTime:.11,duration:.05,frequency:2600,volume:.18}],tones:[{startTime:.05,duration:.15,frequency:880,volume:.15,type:`sine`}]},curious:{puffs:[{startTime:0,duration:.1,frequency:2e3,volume:.2}],tones:[{startTime:.03,duration:.2,frequency:659,volume:.2,type:`sine`,frequencyEnd:880}]},inspired:{puffs:[{startTime:0,duration:.1,frequency:2500,volume:.25}],tones:[{startTime:.05,duration:.3,frequency:523,volume:.2,type:`sine`},{startTime:.07,duration:.28,frequency:784.5,volume:.16,type:`sine`},{startTime:.09,duration:.26,frequency:1046,volume:.12,type:`sine`}]},confident:{puffs:[{startTime:0,duration:.12,frequency:1500,volume:.3}],tones:[{startTime:.04,duration:.2,frequency:523,volume:.25,type:`sine`},{startTime:.06,duration:.22,frequency:659,volume:.2,type:`sine`}]},loved:{puffs:[{startTime:0,duration:.2,frequency:1e3,volume:.2}],tones:[{startTime:.08,duration:.4,frequency:392,volume:.18,type:`sine`,filterFrequency:600},{startTime:.2,duration:.45,frequency:494,volume:.15,type:`sine`,filterFrequency:600}]},comforted:{puffs:[{startTime:0,duration:.25,frequency:900,volume:.18}],tones:[{startTime:.1,duration:.35,frequency:523,volume:.15,type:`sine`,filterFrequency:800},{startTime:.25,duration:.4,frequency:440,volume:.12,type:`sine`,filterFrequency:800}]},energized:{puffs:[{startTime:0,duration:.05,frequency:3e3,volume:.25},{startTime:.04,duration:.05,frequency:3500,volume:.28}],tones:[{startTime:.02,duration:.1,frequency:784,volume:.2,type:`sine`},{startTime:.08,duration:.12,frequency:988,volume:.25,type:`sine`},{startTime:.14,duration:.15,frequency:1175,volume:.22,type:`sine`}]},celebrated:{puffs:[{startTime:0,duration:.08,frequency:2500,volume:.2}],tones:[{startTime:.02,duration:.18,frequency:523,volume:.22,type:`sine`},{startTime:.08,duration:.18,frequency:659,volume:.24,type:`sine`},{startTime:.14,duration:.2,frequency:784,volume:.26,type:`sine`},{startTime:.22,duration:.3,frequency:1047,volume:.22,type:`sine`}]},sad:{puffs:[{startTime:0,duration:.3,frequency:600,volume:.25}],tones:[{startTime:.1,duration:.4,frequency:392,volume:.2,type:`sine`,filterFrequency:400},{startTime:.3,duration:.45,frequency:294,volume:.15,type:`sine`,filterFrequency:350}]},lonely:{puffs:[{startTime:0,duration:.2,frequency:700,volume:.2}],tones:[{startTime:.15,duration:.5,frequency:330,volume:.12,type:`sine`,filterFrequency:450}]},disappointed:{puffs:[{startTime:0,duration:.25,frequency:800,volume:.25}],tones:[{startTime:.08,duration:.3,frequency:523,volume:.18,type:`sine`,frequencyEnd:349}]},heartbroken:{puffs:[{startTime:0,duration:.3,frequency:600,volume:.25}],tones:[{startTime:.1,duration:.4,frequency:392,volume:.2,type:`sine`,filterFrequency:400},{startTime:.3,duration:.45,frequency:294,volume:.15,type:`sine`,filterFrequency:350}]},grieving:{puffs:[{startTime:0,duration:.3,frequency:600,volume:.25}],tones:[{startTime:.1,duration:.4,frequency:392,volume:.2,type:`sine`,filterFrequency:400},{startTime:.3,duration:.45,frequency:294,volume:.15,type:`sine`,filterFrequency:350}]},hopeless:{puffs:[{startTime:0,duration:.2,frequency:700,volume:.2}],tones:[{startTime:.15,duration:.5,frequency:330,volume:.12,type:`sine`,filterFrequency:450}]},empty:{puffs:[{startTime:0,duration:.2,frequency:700,volume:.2}],tones:[{startTime:.15,duration:.5,frequency:330,volume:.12,type:`sine`,filterFrequency:450}]},discouraged:{puffs:[{startTime:0,duration:.25,frequency:800,volume:.25}],tones:[{startTime:.08,duration:.3,frequency:523,volume:.18,type:`sine`,frequencyEnd:349}]},melancholic:{puffs:[{startTime:0,duration:.3,frequency:700,volume:.18}],tones:[{startTime:.1,duration:.45,frequency:440,volume:.15,type:`sine`,filterFrequency:500},{startTime:.3,duration:.5,frequency:392,volume:.12,type:`sine`,filterFrequency:450}]},homesick:{puffs:[{startTime:0,duration:.25,frequency:800,volume:.15}],tones:[{startTime:.1,duration:.4,frequency:440,volume:.12,type:`sine`,filterFrequency:500},{startTime:.3,duration:.45,frequency:392,volume:.1,type:`sine`,filterFrequency:450}]},hurt:{puffs:[{startTime:0,duration:.3,frequency:600,volume:.25}],tones:[{startTime:.1,duration:.4,frequency:392,volume:.2,type:`sine`,filterFrequency:400},{startTime:.3,duration:.45,frequency:294,volume:.15,type:`sine`,filterFrequency:350}]},miserable:{puffs:[{startTime:0,duration:.3,frequency:600,volume:.25}],tones:[{startTime:.1,duration:.4,frequency:392,volume:.2,type:`sine`,filterFrequency:400},{startTime:.3,duration:.45,frequency:294,volume:.15,type:`sine`,filterFrequency:350}]},regretful:{puffs:[{startTime:0,duration:.3,frequency:700,volume:.18}],tones:[{startTime:.1,duration:.45,frequency:440,volume:.15,type:`sine`,filterFrequency:500},{startTime:.3,duration:.5,frequency:392,volume:.12,type:`sine`,filterFrequency:450}]},ashamed:{puffs:[{startTime:0,duration:.25,frequency:800,volume:.25}],tones:[{startTime:.08,duration:.3,frequency:523,volume:.18,type:`sine`,frequencyEnd:349}]},inferior:{puffs:[{startTime:0,duration:.25,frequency:800,volume:.25}],tones:[{startTime:.08,duration:.3,frequency:523,volume:.18,type:`sine`,frequencyEnd:349}]},anxious:{puffs:[{startTime:0,duration:.08,frequency:1800,volume:.2},{startTime:.12,duration:.08,frequency:1900,volume:.22}],tones:[{startTime:.03,duration:.25,frequency:440,volume:.15,type:`sine`}],description:`Tight, quick puffs with uncertain wobble`},worried:{puffs:[{startTime:0,duration:.15,frequency:1200,volume:.2}],tones:[{startTime:.05,duration:.25,frequency:349,volume:.15,type:`sine`,frequencyEnd:392}]},afraid:{puffs:[{startTime:0,duration:.08,frequency:1800,volume:.2},{startTime:.12,duration:.08,frequency:1900,volume:.22}],tones:[{startTime:.03,duration:.25,frequency:440,volume:.15,type:`sine`}]},terrified:{puffs:[{startTime:0,duration:.04,frequency:3500,volume:.3}],tones:[{startTime:0,duration:.08,frequency:1047,volume:.25,type:`sine`},{startTime:.05,duration:.15,frequency:880,volume:.15,type:`sine`}]},panicked:{puffs:[{startTime:0,duration:.04,frequency:3500,volume:.3}],tones:[{startTime:0,duration:.08,frequency:1047,volume:.25,type:`sine`},{startTime:.05,duration:.15,frequency:880,volume:.15,type:`sine`}]},nervous:{puffs:[{startTime:0,duration:.05,frequency:2e3,volume:.18},{startTime:.08,duration:.05,frequency:2100,volume:.18},{startTime:.15,duration:.06,frequency:2e3,volume:.16}],tones:[{startTime:.04,duration:.2,frequency:494,volume:.12,type:`sine`}]},uneasy:{puffs:[{startTime:0,duration:.15,frequency:1200,volume:.2}],tones:[{startTime:.05,duration:.25,frequency:349,volume:.15,type:`sine`,frequencyEnd:392}]},insecure:{puffs:[{startTime:0,duration:.05,frequency:2e3,volume:.18},{startTime:.08,duration:.05,frequency:2100,volume:.18},{startTime:.15,duration:.06,frequency:2e3,volume:.16}],tones:[{startTime:.04,duration:.2,frequency:494,volume:.12,type:`sine`}]},overwhelmed:{puffs:[{startTime:0,duration:.08,frequency:1800,volume:.2},{startTime:.12,duration:.08,frequency:1900,volume:.22}],tones:[{startTime:.03,duration:.25,frequency:440,volume:.15,type:`sine`}]},stressed:{puffs:[{startTime:0,duration:.08,frequency:1800,volume:.2},{startTime:.12,duration:.08,frequency:1900,volume:.22}],tones:[{startTime:.03,duration:.25,frequency:440,volume:.15,type:`sine`}]},tense:{puffs:[{startTime:0,duration:.08,frequency:1800,volume:.2},{startTime:.12,duration:.08,frequency:1900,volume:.22}],tones:[{startTime:.03,duration:.25,frequency:440,volume:.15,type:`sine`}]},apprehensive:{puffs:[{startTime:0,duration:.15,frequency:1200,volume:.2}],tones:[{startTime:.05,duration:.25,frequency:349,volume:.15,type:`sine`,frequencyEnd:392}]},startled:{puffs:[{startTime:0,duration:.04,frequency:3500,volume:.3}],tones:[{startTime:0,duration:.08,frequency:1047,volume:.25,type:`sine`},{startTime:.05,duration:.15,frequency:880,volume:.15,type:`sine`}]},suspicious:{puffs:[{startTime:0,duration:.15,frequency:1200,volume:.2}],tones:[{startTime:.05,duration:.25,frequency:349,volume:.15,type:`sine`,frequencyEnd:392}]},vulnerable:{puffs:[{startTime:0,duration:.05,frequency:2e3,volume:.18},{startTime:.08,duration:.05,frequency:2100,volume:.18},{startTime:.15,duration:.06,frequency:2e3,volume:.16}],tones:[{startTime:.04,duration:.2,frequency:494,volume:.12,type:`sine`}]},annoyed:{puffs:[{startTime:0,duration:.1,frequency:1e3,volume:.25}],tones:[{startTime:.03,duration:.2,frequency:294,volume:.18,type:`sine`,filterFrequency:400}]},irritated:{puffs:[{startTime:0,duration:.1,frequency:1e3,volume:.25}],tones:[{startTime:.03,duration:.2,frequency:294,volume:.18,type:`sine`,filterFrequency:400}]},frustrated:{puffs:[{startTime:0,duration:.12,frequency:900,volume:.28}],tones:[{startTime:.04,duration:.15,frequency:349,volume:.2,type:`sine`},{startTime:.12,duration:.12,frequency:330,volume:.18,type:`sine`}]},angry:{puffs:[{startTime:0,duration:.12,frequency:900,volume:.28}],tones:[{startTime:.04,duration:.15,frequency:349,volume:.2,type:`sine`},{startTime:.12,duration:.12,frequency:330,volume:.18,type:`sine`}]},enraged:{puffs:[{startTime:0,duration:.12,frequency:900,volume:.28}],tones:[{startTime:.04,duration:.15,frequency:349,volume:.2,type:`sine`},{startTime:.12,duration:.12,frequency:330,volume:.18,type:`sine`}]},bitter:{puffs:[{startTime:0,duration:.12,frequency:900,volume:.28}],tones:[{startTime:.04,duration:.15,frequency:349,volume:.2,type:`sine`},{startTime:.12,duration:.12,frequency:330,volume:.18,type:`sine`}]},resentful:{puffs:[{startTime:0,duration:.1,frequency:1e3,volume:.25}],tones:[{startTime:.03,duration:.2,frequency:294,volume:.18,type:`sine`,filterFrequency:400}]},jealous:{puffs:[{startTime:0,duration:.1,frequency:1e3,volume:.25}],tones:[{startTime:.03,duration:.2,frequency:294,volume:.18,type:`sine`,filterFrequency:400}]},envious:{puffs:[{startTime:0,duration:.1,frequency:1e3,volume:.25}],tones:[{startTime:.03,duration:.2,frequency:294,volume:.18,type:`sine`,filterFrequency:400}]},indignant:{puffs:[{startTime:0,duration:.12,frequency:900,volume:.28}],tones:[{startTime:.04,duration:.15,frequency:349,volume:.2,type:`sine`},{startTime:.12,duration:.12,frequency:330,volume:.18,type:`sine`}]},impatient:{puffs:[{startTime:0,duration:.04,frequency:1500,volume:.2},{startTime:.08,duration:.04,frequency:1500,volume:.2},{startTime:.16,duration:.04,frequency:1500,volume:.22}],tones:[{startTime:.06,duration:.1,frequency:523,volume:.15,type:`sine`}]},hostile:{puffs:[{startTime:0,duration:.12,frequency:900,volume:.28}],tones:[{startTime:.04,duration:.15,frequency:349,volume:.2,type:`sine`},{startTime:.12,duration:.12,frequency:330,volume:.18,type:`sine`}]},contemptuous:{puffs:[{startTime:0,duration:.1,frequency:1e3,volume:.25}],tones:[{startTime:.03,duration:.2,frequency:294,volume:.18,type:`sine`,filterFrequency:400}]},tired:{puffs:[{startTime:0,duration:.35,frequency:500,volume:.2}],tones:[{startTime:.1,duration:.4,frequency:330,volume:.12,type:`sine`,filterFrequency:350}]},exhausted:{puffs:[{startTime:0,duration:.45,frequency:400,volume:.18}],tones:[{startTime:.15,duration:.5,frequency:294,volume:.1,type:`sine`,filterFrequency:300}]},drained:{puffs:[{startTime:0,duration:.45,frequency:400,volume:.18}],tones:[{startTime:.15,duration:.5,frequency:294,volume:.1,type:`sine`,filterFrequency:300}]},burnedOut:{puffs:[{startTime:0,duration:.45,frequency:400,volume:.18}],tones:[{startTime:.15,duration:.5,frequency:294,volume:.1,type:`sine`,filterFrequency:300}]},numb:{puffs:[{startTime:0,duration:.45,frequency:400,volume:.18}],tones:[{startTime:.15,duration:.5,frequency:294,volume:.1,type:`sine`,filterFrequency:300}]},bored:{puffs:[{startTime:0,duration:.25,frequency:600,volume:.15}],tones:[{startTime:.1,duration:.3,frequency:349,volume:.1,type:`sine`,filterFrequency:400}]},unmotivated:{puffs:[{startTime:0,duration:.25,frequency:600,volume:.15}],tones:[{startTime:.1,duration:.3,frequency:349,volume:.1,type:`sine`,filterFrequency:400}]},apathetic:{puffs:[{startTime:0,duration:.25,frequency:600,volume:.15}],tones:[{startTime:.1,duration:.3,frequency:349,volume:.1,type:`sine`,filterFrequency:400}]},restless:{puffs:[{startTime:0,duration:.35,frequency:500,volume:.2}],tones:[{startTime:.1,duration:.4,frequency:330,volume:.12,type:`sine`,filterFrequency:350}]},calm:{puffs:[{startTime:0,duration:.3,frequency:600,volume:.12}],tones:[{startTime:.1,duration:.5,frequency:392,volume:.1,type:`sine`,filterFrequency:500}]},relaxed:{puffs:[{startTime:0,duration:.35,frequency:700,volume:.15}],tones:[{startTime:.15,duration:.45,frequency:440,volume:.1,type:`sine`,filterFrequency:800},{startTime:.35,duration:.5,frequency:392,volume:.08,type:`sine`,filterFrequency:800}]},atEase:{puffs:[{startTime:0,duration:.35,frequency:700,volume:.15}],tones:[{startTime:.15,duration:.45,frequency:440,volume:.1,type:`sine`,filterFrequency:800},{startTime:.35,duration:.5,frequency:392,volume:.08,type:`sine`,filterFrequency:800}]},balanced:{puffs:[{startTime:0,duration:.3,frequency:600,volume:.12}],tones:[{startTime:.1,duration:.5,frequency:392,volume:.1,type:`sine`,filterFrequency:500}]},stable:{puffs:[{startTime:0,duration:.25,frequency:500,volume:.2}],tones:[{startTime:.1,duration:.4,frequency:262,volume:.15,type:`sine`,filterFrequency:350}]},secure:{puffs:[{startTime:0,duration:.3,frequency:700,volume:.15}],tones:[{startTime:.1,duration:.4,frequency:349,volume:.12,type:`sine`,filterFrequency:800},{startTime:.25,duration:.45,frequency:440,volume:.1,type:`sine`,filterFrequency:800}]},safe:{puffs:[{startTime:0,duration:.3,frequency:700,volume:.15}],tones:[{startTime:.1,duration:.4,frequency:349,volume:.12,type:`sine`,filterFrequency:800},{startTime:.25,duration:.45,frequency:440,volume:.1,type:`sine`,filterFrequency:800}]},centered:{puffs:[{startTime:0,duration:.25,frequency:500,volume:.2}],tones:[{startTime:.1,duration:.4,frequency:262,volume:.15,type:`sine`,filterFrequency:350}]},grounded:{puffs:[{startTime:0,duration:.25,frequency:500,volume:.2}],tones:[{startTime:.1,duration:.4,frequency:262,volume:.15,type:`sine`,filterFrequency:350}]},accepting:{puffs:[{startTime:0,duration:.3,frequency:600,volume:.12}],tones:[{startTime:.1,duration:.5,frequency:392,volume:.1,type:`sine`,filterFrequency:500}]},connected:{puffs:[{startTime:0,duration:.2,frequency:1200,volume:.18}],tones:[{startTime:.08,duration:.3,frequency:440,volume:.15,type:`sine`,filterFrequency:800},{startTime:.12,duration:.32,frequency:523,volume:.12,type:`sine`,filterFrequency:800}]},accepted:{puffs:[{startTime:0,duration:.15,frequency:1500,volume:.2}],tones:[{startTime:.05,duration:.25,frequency:440,volume:.15,type:`sine`,filterFrequency:800},{startTime:.15,duration:.3,frequency:523,volume:.18,type:`sine`,filterFrequency:800}]},included:{puffs:[{startTime:0,duration:.2,frequency:1200,volume:.18}],tones:[{startTime:.08,duration:.3,frequency:440,volume:.15,type:`sine`,filterFrequency:800},{startTime:.12,duration:.32,frequency:523,volume:.12,type:`sine`,filterFrequency:800}]},belonging:{puffs:[{startTime:0,duration:.2,frequency:1200,volume:.18}],tones:[{startTime:.08,duration:.3,frequency:440,volume:.15,type:`sine`,filterFrequency:800},{startTime:.12,duration:.32,frequency:523,volume:.12,type:`sine`,filterFrequency:800}]},appreciated:{puffs:[{startTime:0,duration:.15,frequency:1500,volume:.2}],tones:[{startTime:.05,duration:.25,frequency:440,volume:.15,type:`sine`,filterFrequency:800},{startTime:.15,duration:.3,frequency:523,volume:.18,type:`sine`,filterFrequency:800}]},valued:{puffs:[{startTime:0,duration:.15,frequency:1500,volume:.2}],tones:[{startTime:.05,duration:.25,frequency:440,volume:.15,type:`sine`,filterFrequency:800},{startTime:.15,duration:.3,frequency:523,volume:.18,type:`sine`,filterFrequency:800}]},respected:{puffs:[{startTime:0,duration:.15,frequency:1500,volume:.2}],tones:[{startTime:.05,duration:.25,frequency:440,volume:.15,type:`sine`,filterFrequency:800},{startTime:.15,duration:.3,frequency:523,volume:.18,type:`sine`,filterFrequency:800}]},supported:{puffs:[{startTime:0,duration:.25,frequency:900,volume:.18}],tones:[{startTime:.1,duration:.35,frequency:349,volume:.12,type:`sine`,filterFrequency:800},{startTime:.15,duration:.4,frequency:440,volume:.1,type:`sine`,filterFrequency:800}]},protective:{puffs:[{startTime:0,duration:.25,frequency:900,volume:.18}],tones:[{startTime:.1,duration:.35,frequency:349,volume:.12,type:`sine`,filterFrequency:800},{startTime:.15,duration:.4,frequency:440,volume:.1,type:`sine`,filterFrequency:800}]},compassionate:{puffs:[{startTime:0,duration:.2,frequency:1200,volume:.18}],tones:[{startTime:.08,duration:.3,frequency:440,volume:.15,type:`sine`,filterFrequency:800},{startTime:.12,duration:.32,frequency:523,volume:.12,type:`sine`,filterFrequency:800}]},empathetic:{puffs:[{startTime:0,duration:.2,frequency:1200,volume:.18}],tones:[{startTime:.08,duration:.3,frequency:440,volume:.15,type:`sine`,filterFrequency:800},{startTime:.12,duration:.32,frequency:523,volume:.12,type:`sine`,filterFrequency:800}]},conflicted:{puffs:[{startTime:0,duration:.12,frequency:1200,volume:.18}],tones:[{startTime:.04,duration:.2,frequency:440,volume:.12,type:`sine`,frequencyEnd:494},{startTime:.15,duration:.15,frequency:466,volume:.1,type:`sine`}]},confused:{puffs:[{startTime:0,duration:.12,frequency:1200,volume:.18}],tones:[{startTime:.04,duration:.2,frequency:440,volume:.12,type:`sine`,frequencyEnd:494},{startTime:.15,duration:.15,frequency:466,volume:.1,type:`sine`}]},ambivalent:{puffs:[{startTime:0,duration:.12,frequency:1200,volume:.18}],tones:[{startTime:.04,duration:.2,frequency:440,volume:.12,type:`sine`,frequencyEnd:494},{startTime:.15,duration:.15,frequency:466,volume:.1,type:`sine`}]},nostalgic:{puffs:[{startTime:0,duration:.25,frequency:800,volume:.15}],tones:[{startTime:.1,duration:.4,frequency:440,volume:.12,type:`sine`,filterFrequency:500},{startTime:.3,duration:.45,frequency:392,volume:.1,type:`sine`,filterFrequency:450}]},guilty:{puffs:[{startTime:0,duration:.25,frequency:800,volume:.25}],tones:[{startTime:.08,duration:.3,frequency:523,volume:.18,type:`sine`,frequencyEnd:349}]},embarrassed:{puffs:[{startTime:0,duration:.05,frequency:2e3,volume:.18},{startTime:.08,duration:.05,frequency:2100,volume:.18},{startTime:.15,duration:.06,frequency:2e3,volume:.16}],tones:[{startTime:.04,duration:.2,frequency:494,volume:.12,type:`sine`}]},surprised:{puffs:[{startTime:0,duration:.06,frequency:2800,volume:.25}],tones:[{startTime:.02,duration:.15,frequency:659,volume:.2,type:`sine`,frequencyEnd:988}]},shocked:{puffs:[{startTime:0,duration:.04,frequency:3500,volume:.3}],tones:[{startTime:0,duration:.08,frequency:1047,volume:.25,type:`sine`},{startTime:.05,duration:.15,frequency:880,volume:.15,type:`sine`}]},awestruck:{puffs:[{startTime:0,duration:.2,frequency:1500,volume:.2}],tones:[{startTime:.08,duration:.4,frequency:440,volume:.15,type:`sine`},{startTime:.1,duration:.38,frequency:660,volume:.12,type:`sine`},{startTime:.12,duration:.36,frequency:880,volume:.09,type:`sine`}]},skeptical:{puffs:[{startTime:0,duration:.12,frequency:1200,volume:.18}],tones:[{startTime:.04,duration:.2,frequency:440,volume:.12,type:`sine`,frequencyEnd:494},{startTime:.15,duration:.15,frequency:466,volume:.1,type:`sine`}]}},i=class e{get theme(){return n.value.theme}get volume(){return n.value.volume}get muted(){return n.value.muted}get themeName(){return this.theme?.name??`default`}constructor(){this.audioContext=null,this.theme$=n.$.pipe((0,t.map)(e=>e.theme),(0,t.shareReplay)(1)),this.volume$=n.$.pipe((0,t.map)(e=>e.volume),(0,t.distinctUntilChanged)(),(0,t.shareReplay)(1)),this.muted$=n.$.pipe((0,t.map)(e=>e.muted),(0,t.distinctUntilChanged)(),(0,t.shareReplay)(1)),this._themeName$=new t.BehaviorSubject(`default`),this.themeName$=this._themeName$.asObservable(),this.theme$.subscribe(e=>{this._themeName$.next(e?.name??`default`)})}getContext(){if(!this.audioContext){let e=window.AudioContext||window.webkitAudioContext;this.audioContext=new e}return this.audioContext.state===`suspended`&&this.audioContext.resume(),this.audioContext}playPuff(e,t,n){let r=this.getContext(),i=Math.floor(r.sampleRate*t.duration),a=r.createBuffer(1,i,r.sampleRate),o=a.getChannelData(0);for(let e=0;e<i;e++)o[e]=2*Math.random()-1;let s=r.createBufferSource();s.buffer=a;let c=r.createBiquadFilter();c.type=`bandpass`,c.frequency.value=t.frequency,c.Q.value=.7;let l=r.createGain();l.gain.setValueAtTime(0,e),l.gain.linearRampToValueAtTime(t.volume*n,e+.015),l.gain.exponentialRampToValueAtTime(.001,e+t.duration),s.connect(c).connect(l).connect(r.destination),s.start(e),s.stop(e+t.duration)}playTone(e,t,n){let r=this.getContext(),i=r.createOscillator(),a=r.createGain();i.type=t.type,i.frequency.setValueAtTime(t.frequency,e),t.frequencyEnd&&i.frequency.exponentialRampToValueAtTime(t.frequencyEnd,e+.8*t.duration);let o=i;if(t.filterFrequency){let e=r.createBiquadFilter();e.type=`lowpass`,e.frequency.value=t.filterFrequency,i.connect(e),o=e}a.gain.setValueAtTime(0,e),a.gain.linearRampToValueAtTime(t.volume*n,e+.02),a.gain.exponentialRampToValueAtTime(.001,e+t.duration),o.connect(a).connect(r.destination),i.start(e),i.stop(e+t.duration)}setTheme(e){n.set({theme:e})}resetTheme(){n.set({theme:null})}setVolume(e){n.set({volume:Math.max(0,Math.min(1,e))})}mute(){n.set({muted:!0})}unmute(){n.set({muted:!1})}toggleMute(){n.set({muted:!this.muted})}getSoundForFeeling(e){let t=this.theme;if(t?.feelings?.[e])return t.feelings[e];if(t?.categoryDefaults){let n=this.getCategoryForFeeling(e);if(t.categoryDefaults[n])return t.categoryDefaults[n]}return r[e]}getCategoryForFeeling(e){return[`joyful`,`content`,`excited`,`proud`,`hopeful`,`relieved`,`grateful`,`peaceful`,`playful`,`amused`,`curious`,`inspired`,`confident`,`loved`,`comforted`,`energized`,`celebrated`].includes(e)?`happy`:[`sad`,`lonely`,`disappointed`,`heartbroken`,`grieving`,`hopeless`,`empty`,`discouraged`,`melancholic`,`homesick`,`hurt`,`miserable`,`regretful`,`ashamed`,`inferior`].includes(e)?`sad`:[`anxious`,`worried`,`afraid`,`terrified`,`panicked`,`nervous`,`uneasy`,`insecure`,`overwhelmed`,`stressed`,`tense`,`apprehensive`,`startled`,`suspicious`,`vulnerable`].includes(e)?`anxious`:[`annoyed`,`irritated`,`frustrated`,`angry`,`enraged`,`bitter`,`resentful`,`jealous`,`envious`,`indignant`,`impatient`,`hostile`,`contemptuous`].includes(e)?`angry`:[`tired`,`exhausted`,`drained`,`burnedOut`,`numb`,`bored`,`unmotivated`,`apathetic`,`restless`].includes(e)?`tired`:[`calm`,`relaxed`,`atEase`,`balanced`,`stable`,`secure`,`safe`,`centered`,`grounded`,`accepting`].includes(e)?`calm`:[`connected`,`accepted`,`included`,`belonging`,`appreciated`,`valued`,`respected`,`supported`,`protective`,`compassionate`,`empathetic`].includes(e)?`connected`:`mixed`}play(e){if(this.muted)return;let t=this.getSoundForFeeling(e),n=this.getContext().currentTime,r=this.theme?.masterVolume??1,i=this.volume*r;t.puffs.forEach(e=>{this.playPuff(n+e.startTime,e,i)}),t.tones.forEach(e=>{this.playTone(n+e.startTime,e,i)})}dispose(){this.audioContext&&=(this.audioContext.close(),null)}static getInstance(){return e.instance||=new e,e.instance}}.getInstance(),a=i;Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return i}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return a}});
|