@mhmo91/schmancy 0.10.36 → 0.10.38

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.
Files changed (572) hide show
  1. package/custom-elements.json +54 -31
  2. package/dist/SchmancyElement-BNnyBOwk.js +286 -0
  3. package/dist/{SchmancyElement-C3CpdNsi.js.map → SchmancyElement-BNnyBOwk.js.map} +1 -1
  4. package/dist/SchmancyElement-C41uPa6l.cjs +2 -0
  5. package/dist/{SchmancyElement-BBzRWB1w.cjs.map → SchmancyElement-C41uPa6l.cjs.map} +1 -1
  6. package/dist/agent/schmancy.agent.js +2432 -2361
  7. package/dist/agent/schmancy.agent.js.map +1 -1
  8. package/dist/agent/schmancy.manifest.json +4 -22
  9. package/dist/area-2FrTZI_T.cjs +21 -0
  10. package/dist/area-2FrTZI_T.cjs.map +1 -0
  11. package/dist/{area-BA96mwFY.js → area-KVDzhT4s.js} +4 -4
  12. package/dist/area-KVDzhT4s.js.map +1 -0
  13. package/dist/area.cjs +1 -1
  14. package/dist/area.js +2 -2
  15. package/dist/{audio-D52h1jAT.js → audio-D3gnp15Y.js} +1 -1
  16. package/dist/{audio-D52h1jAT.js.map → audio-D3gnp15Y.js.map} +1 -1
  17. package/dist/{audio-B_jT9Xr7.cjs → audio-EaD0Ggfh.cjs} +1 -1
  18. package/dist/{audio-B_jT9Xr7.cjs.map → audio-EaD0Ggfh.cjs.map} +1 -1
  19. package/dist/audio.cjs +1 -1
  20. package/dist/audio.js +2 -2
  21. package/dist/autocomplete-DMmxsvUe.cjs +115 -0
  22. package/dist/autocomplete-DMmxsvUe.cjs.map +1 -0
  23. package/dist/{autocomplete-CI4QJXAN.js → autocomplete-DWiEqlQf.js} +96 -96
  24. package/dist/autocomplete-DWiEqlQf.js.map +1 -0
  25. package/dist/autocomplete.cjs +1 -1
  26. package/dist/autocomplete.js +1 -1
  27. package/dist/avatar.cjs +1 -1
  28. package/dist/avatar.js +3 -3
  29. package/dist/badge.cjs +1 -1
  30. package/dist/badge.js +1 -1
  31. package/dist/{boat-_N1x5U_3.js → boat-DmyG7y1V.js} +4 -4
  32. package/dist/{boat-_N1x5U_3.js.map → boat-DmyG7y1V.js.map} +1 -1
  33. package/dist/{boat-I4B1UNMc.cjs → boat-dB1_qLm0.cjs} +1 -1
  34. package/dist/{boat-I4B1UNMc.cjs.map → boat-dB1_qLm0.cjs.map} +1 -1
  35. package/dist/boat.cjs +1 -1
  36. package/dist/boat.js +1 -1
  37. package/dist/breadcrumb.cjs +3 -3
  38. package/dist/breadcrumb.cjs.map +1 -1
  39. package/dist/breadcrumb.js +4 -4
  40. package/dist/breadcrumb.js.map +1 -1
  41. package/dist/{busy-BIUonyPk.cjs → busy-Cj_PV7oC.cjs} +1 -1
  42. package/dist/{busy-BIUonyPk.cjs.map → busy-Cj_PV7oC.cjs.map} +1 -1
  43. package/dist/{busy-CCB3qKnh.js → busy-enYCTssB.js} +2 -2
  44. package/dist/{busy-CCB3qKnh.js.map → busy-enYCTssB.js.map} +1 -1
  45. package/dist/busy.cjs +1 -1
  46. package/dist/busy.js +1 -1
  47. package/dist/{button-C89bPnHt.js → button-BQSOVnHn.js} +10 -9
  48. package/dist/button-BQSOVnHn.js.map +1 -0
  49. package/dist/button-WRmXlNyw.cjs +62 -0
  50. package/dist/button-WRmXlNyw.cjs.map +1 -0
  51. package/dist/button.cjs +6 -6
  52. package/dist/button.cjs.map +1 -1
  53. package/dist/button.js +17 -16
  54. package/dist/button.js.map +1 -1
  55. package/dist/{card-CFsCgJKZ.js → card-BHTz1GwB.js} +16 -16
  56. package/dist/card-BHTz1GwB.js.map +1 -0
  57. package/dist/{card-BO93_oxQ.cjs → card-ThG_ZaQE.cjs} +3 -3
  58. package/dist/card-ThG_ZaQE.cjs.map +1 -0
  59. package/dist/card.cjs +1 -1
  60. package/dist/card.js +1 -1
  61. package/dist/{checkbox-CFUBUFtW.cjs → checkbox-C4zeib84.cjs} +2 -2
  62. package/dist/{checkbox-CFUBUFtW.cjs.map → checkbox-C4zeib84.cjs.map} +1 -1
  63. package/dist/{checkbox-Bh7q0djq.js → checkbox-Ce0DlAdW.js} +6 -6
  64. package/dist/{checkbox-Bh7q0djq.js.map → checkbox-Ce0DlAdW.js.map} +1 -1
  65. package/dist/checkbox.cjs +1 -1
  66. package/dist/checkbox.js +1 -1
  67. package/dist/{chips-BfzpsyV1.cjs → chips-B1jui8Pe.cjs} +3 -3
  68. package/dist/chips-B1jui8Pe.cjs.map +1 -0
  69. package/dist/{chips-6YaoRmeG.js → chips-DAy6v93f.js} +20 -19
  70. package/dist/chips-DAy6v93f.js.map +1 -0
  71. package/dist/chips.cjs +1 -1
  72. package/dist/chips.js +2 -2
  73. package/dist/connectivity.cjs +1 -1
  74. package/dist/connectivity.js +3 -3
  75. package/dist/content-drawer.cjs +1 -1
  76. package/dist/content-drawer.js +1 -1
  77. package/dist/cursor-glow-Ah7VXSj7.js.map +1 -1
  78. package/dist/cursor-glow-Bulq-38P.cjs.map +1 -1
  79. package/dist/{date-range-N-A249O9.cjs → date-range-BUaPgbTZ.cjs} +2 -2
  80. package/dist/date-range-BUaPgbTZ.cjs.map +1 -0
  81. package/dist/{date-range-CEo_Kjqw.js → date-range-NTpoA1in.js} +4 -4
  82. package/dist/date-range-NTpoA1in.js.map +1 -0
  83. package/dist/{date-range-inline-DFopysWF.cjs → date-range-inline-D0I6k84h.cjs} +1 -1
  84. package/dist/{date-range-inline-DFopysWF.cjs.map → date-range-inline-D0I6k84h.cjs.map} +1 -1
  85. package/dist/{date-range-inline-BwialV9j.js → date-range-inline-DjRdMZ1z.js} +2 -2
  86. package/dist/{date-range-inline-BwialV9j.js.map → date-range-inline-DjRdMZ1z.js.map} +1 -1
  87. package/dist/date-range-inline.cjs +1 -1
  88. package/dist/date-range-inline.js +1 -1
  89. package/dist/date-range.cjs +1 -1
  90. package/dist/date-range.js +1 -1
  91. package/dist/delay.cjs +1 -1
  92. package/dist/delay.js +2 -2
  93. package/dist/{details-GtpfI2hA.js → details-CY49XVfp.js} +43 -35
  94. package/dist/details-CY49XVfp.js.map +1 -0
  95. package/dist/details-DQNj2oaU.cjs +164 -0
  96. package/dist/details-DQNj2oaU.cjs.map +1 -0
  97. package/dist/details.cjs +1 -1
  98. package/dist/details.js +1 -1
  99. package/dist/{directives-CvYGSW_a.cjs → directives-Bb0S1DKZ.cjs} +4 -4
  100. package/dist/directives-Bb0S1DKZ.cjs.map +1 -0
  101. package/dist/{directives-C2dXgpCY.js → directives-Bfm1lkoy.js} +30 -23
  102. package/dist/directives-Bfm1lkoy.js.map +1 -0
  103. package/dist/directives.cjs +1 -1
  104. package/dist/directives.js +2 -2
  105. package/dist/{divider-D0pGX2VB.js → divider-BeyX_C0A.js} +2 -2
  106. package/dist/{divider-D0pGX2VB.js.map → divider-BeyX_C0A.js.map} +1 -1
  107. package/dist/{divider-rNsWCvMi.cjs → divider-Ck2C1sKl.cjs} +1 -1
  108. package/dist/{divider-rNsWCvMi.cjs.map → divider-Ck2C1sKl.cjs.map} +1 -1
  109. package/dist/divider.cjs +1 -1
  110. package/dist/divider.js +1 -1
  111. package/dist/dropdown.cjs +1 -1
  112. package/dist/dropdown.js +2 -2
  113. package/dist/{expand-FcKAzJta.js → expand-BYsSEtp6.js} +53 -53
  114. package/dist/expand-BYsSEtp6.js.map +1 -0
  115. package/dist/expand-CUF163mg.cjs +141 -0
  116. package/dist/expand-CUF163mg.cjs.map +1 -0
  117. package/dist/expand.cjs +1 -1
  118. package/dist/expand.js +1 -1
  119. package/dist/fab.cjs +1 -1
  120. package/dist/fab.js +2 -2
  121. package/dist/{float-CQ1WEp3M.js → float-Cgllk_H9.js} +2 -2
  122. package/dist/{float-CQ1WEp3M.js.map → float-Cgllk_H9.js.map} +1 -1
  123. package/dist/{float-CDjgxWyy.cjs → float-OvqX0nqG.cjs} +1 -1
  124. package/dist/{float-CDjgxWyy.cjs.map → float-OvqX0nqG.cjs.map} +1 -1
  125. package/dist/float.cjs +1 -1
  126. package/dist/float.js +1 -1
  127. package/dist/form-4GKROq2P.cjs +27 -0
  128. package/dist/form-4GKROq2P.cjs.map +1 -0
  129. package/dist/{form-H24puioV.js → form-DxaV_Ose.js} +39 -39
  130. package/dist/form-DxaV_Ose.js.map +1 -0
  131. package/dist/form.cjs +3 -3
  132. package/dist/form.cjs.map +1 -1
  133. package/dist/form.js +34 -34
  134. package/dist/form.js.map +1 -1
  135. package/dist/gravity-6pL6CfIr.cjs.map +1 -1
  136. package/dist/gravity-sVK3zGBF.js.map +1 -1
  137. package/dist/handover/agent-runtime-followups.md +1 -1
  138. package/dist/handover/agent-runtime-v1.md +3 -3
  139. package/dist/{icons-DBxfN91B.js → icons-CJ2mXcBi.js} +9 -9
  140. package/dist/icons-CJ2mXcBi.js.map +1 -0
  141. package/dist/icons-sZ-LybA9.cjs +24 -0
  142. package/dist/icons-sZ-LybA9.cjs.map +1 -0
  143. package/dist/icons.cjs +1 -1
  144. package/dist/icons.js +1 -1
  145. package/dist/{iframe-BDVElN8z.js → iframe-DWvN5nGB.js} +11 -11
  146. package/dist/iframe-DWvN5nGB.js.map +1 -0
  147. package/dist/{iframe-CG-z9qev.cjs → iframe-DpCv-QH2.cjs} +7 -7
  148. package/dist/iframe-DpCv-QH2.cjs.map +1 -0
  149. package/dist/iframe.cjs +1 -1
  150. package/dist/iframe.js +1 -1
  151. package/dist/index.cjs +1 -1
  152. package/dist/index.js +37 -37
  153. package/dist/{input-Bt_o4sYo.js → input-BCCHz6tB.js} +7 -7
  154. package/dist/input-BCCHz6tB.js.map +1 -0
  155. package/dist/{input-B14Nn6xD.cjs → input-Z-3N5JMv.cjs} +2 -2
  156. package/dist/input-Z-3N5JMv.cjs.map +1 -0
  157. package/dist/{input-chip-DEqO0DXc.js → input-chip-BOrcKH-H.js} +2 -2
  158. package/dist/{input-chip-DEqO0DXc.js.map → input-chip-BOrcKH-H.js.map} +1 -1
  159. package/dist/{input-chip-ugYu9Fn9.cjs → input-chip-ChAgRCXZ.cjs} +1 -1
  160. package/dist/{input-chip-ugYu9Fn9.cjs.map → input-chip-ChAgRCXZ.cjs.map} +1 -1
  161. package/dist/input.cjs +1 -1
  162. package/dist/input.js +1 -1
  163. package/dist/json.cjs +1 -1
  164. package/dist/json.js +3 -3
  165. package/dist/kbd.cjs +1 -1
  166. package/dist/kbd.js +2 -2
  167. package/dist/{layout-BJ_43VrH.js → layout-CFiG3lNT.js} +1 -1
  168. package/dist/{layout-BJ_43VrH.js.map → layout-CFiG3lNT.js.map} +1 -1
  169. package/dist/{layout-DF9ZaQ-b.cjs → layout-DZ4dpLh9.cjs} +1 -1
  170. package/dist/{layout-DF9ZaQ-b.cjs.map → layout-DZ4dpLh9.cjs.map} +1 -1
  171. package/dist/layout.cjs +1 -1
  172. package/dist/layout.js +2 -2
  173. package/dist/lazy-BaAiIUru.js +19 -0
  174. package/dist/lazy-BaAiIUru.js.map +1 -0
  175. package/dist/lazy-C-7a4FAe.cjs +1 -0
  176. package/dist/lazy-C-7a4FAe.cjs.map +1 -0
  177. package/dist/{lightbox-ZmuoBBFT.js → lightbox-B7Y4Nij_.js} +2 -2
  178. package/dist/lightbox-B7Y4Nij_.js.map +1 -0
  179. package/dist/{lightbox-B47Zoqv-.cjs → lightbox-Dpwsn8Qr.cjs} +1 -1
  180. package/dist/lightbox-Dpwsn8Qr.cjs.map +1 -0
  181. package/dist/lightbox.cjs +1 -1
  182. package/dist/lightbox.js +1 -1
  183. package/dist/{list-CaSWrlG2.cjs → list-BhM-6dAi.cjs} +1 -1
  184. package/dist/{list-CaSWrlG2.cjs.map → list-BhM-6dAi.cjs.map} +1 -1
  185. package/dist/{list-C47xzld_.js → list-C5WVoIfJ.js} +2 -2
  186. package/dist/{list-C47xzld_.js.map → list-C5WVoIfJ.js.map} +1 -1
  187. package/dist/list.cjs +1 -1
  188. package/dist/list.js +1 -1
  189. package/dist/magnetic-DKtc4umC.cjs.map +1 -1
  190. package/dist/magnetic-DaOOv5Dz.js.map +1 -1
  191. package/dist/{menu-8RObM6Ie.js → menu-CBAAJoHu.js} +3 -3
  192. package/dist/{menu-8RObM6Ie.js.map → menu-CBAAJoHu.js.map} +1 -1
  193. package/dist/{menu-Jpsy85SX.cjs → menu-DFQjJk3H.cjs} +1 -1
  194. package/dist/{menu-Jpsy85SX.cjs.map → menu-DFQjJk3H.cjs.map} +1 -1
  195. package/dist/menu.cjs +1 -1
  196. package/dist/menu.js +1 -1
  197. package/dist/{mixins-DTzfFVyv.js → mixins-DGBI7YPO.js} +11 -11
  198. package/dist/mixins-DGBI7YPO.js.map +1 -0
  199. package/dist/{mixins-DPdzC9ZH.cjs → mixins-fIpzhVMd.cjs} +1 -1
  200. package/dist/mixins-fIpzhVMd.cjs.map +1 -0
  201. package/dist/mixins.cjs +1 -1
  202. package/dist/mixins.js +2 -2
  203. package/dist/nav-drawer.cjs +1 -1
  204. package/dist/nav-drawer.js +1 -1
  205. package/dist/navigation-bar.cjs +1 -1
  206. package/dist/navigation-bar.js +1 -1
  207. package/dist/navigation-rail.cjs +3 -3
  208. package/dist/navigation-rail.cjs.map +1 -1
  209. package/dist/navigation-rail.js +11 -10
  210. package/dist/navigation-rail.js.map +1 -1
  211. package/dist/notification-B6yDL91t.cjs +24 -0
  212. package/dist/notification-B6yDL91t.cjs.map +1 -0
  213. package/dist/{notification-Ccktcj9H.js → notification-BB9OBRCr.js} +22 -22
  214. package/dist/notification-BB9OBRCr.js.map +1 -0
  215. package/dist/notification.cjs +1 -1
  216. package/dist/notification.js +1 -1
  217. package/dist/{option-CkMxwBqU.js → option-B21ImL0k.js} +2 -2
  218. package/dist/{option-CkMxwBqU.js.map → option-B21ImL0k.js.map} +1 -1
  219. package/dist/{option-0aNiVB3Q.cjs → option-CJQM5I9q.cjs} +1 -1
  220. package/dist/{option-0aNiVB3Q.cjs.map → option-CJQM5I9q.cjs.map} +1 -1
  221. package/dist/option.cjs +1 -1
  222. package/dist/option.js +1 -1
  223. package/dist/{overlay-H3Wt_dgQ.js → overlay-CWsihJ-E.js} +75 -67
  224. package/dist/overlay-CWsihJ-E.js.map +1 -0
  225. package/dist/overlay-DkIX9Ig3.cjs +58 -0
  226. package/dist/overlay-DkIX9Ig3.cjs.map +1 -0
  227. package/dist/overlay.cjs +1 -1
  228. package/dist/{overlay.confirm-body-Dxn_wNm3.js → overlay.confirm-body-CPqqPNks.js} +10 -10
  229. package/dist/overlay.confirm-body-CPqqPNks.js.map +1 -0
  230. package/dist/{overlay.confirm-body-CR9xaqOE.cjs → overlay.confirm-body-DwTfiNlV.cjs} +3 -3
  231. package/dist/overlay.confirm-body-DwTfiNlV.cjs.map +1 -0
  232. package/dist/overlay.js +4 -4
  233. package/dist/overlay.service-DU1nqh6A.cjs +1 -0
  234. package/dist/{overlay.service-DEj3rfRr.cjs.map → overlay.service-DU1nqh6A.cjs.map} +1 -1
  235. package/dist/{overlay.service-C46kOtUi.js → overlay.service-KTgBxjFb.js} +4 -4
  236. package/dist/{overlay.service-C46kOtUi.js.map → overlay.service-KTgBxjFb.js.map} +1 -1
  237. package/dist/{progress-zs18GR6C.cjs → progress-B-Qg44XY.cjs} +1 -1
  238. package/dist/{progress-zs18GR6C.cjs.map → progress-B-Qg44XY.cjs.map} +1 -1
  239. package/dist/{progress-BK7gSq8j.js → progress-CUSS1sNz.js} +2 -2
  240. package/dist/{progress-BK7gSq8j.js.map → progress-CUSS1sNz.js.map} +1 -1
  241. package/dist/progress.cjs +1 -1
  242. package/dist/progress.js +1 -1
  243. package/dist/{radio-group-1HCpzRUB.js → radio-group-AHLvrN8O.js} +7 -7
  244. package/dist/radio-group-AHLvrN8O.js.map +1 -0
  245. package/dist/{radio-group-DbYlyPc-.cjs → radio-group-BEtvCSS1.cjs} +2 -2
  246. package/dist/radio-group-BEtvCSS1.cjs.map +1 -0
  247. package/dist/radio-group.cjs +1 -1
  248. package/dist/radio-group.js +1 -1
  249. package/dist/range.cjs +1 -1
  250. package/dist/range.js +2 -2
  251. package/dist/select-BWpV2iv-.cjs +56 -0
  252. package/dist/select-BWpV2iv-.cjs.map +1 -0
  253. package/dist/{select-CEyhNtZ2.js → select-Cawz88lG.js} +46 -46
  254. package/dist/select-Cawz88lG.js.map +1 -0
  255. package/dist/select.cjs +1 -1
  256. package/dist/select.js +1 -1
  257. package/dist/skeleton.cjs +1 -1
  258. package/dist/skeleton.js +2 -2
  259. package/dist/skills/SKILL.md +17 -11
  260. package/dist/skills/overlay.md +14 -7
  261. package/dist/skills/schmancy/SKILL.md +17 -11
  262. package/dist/skills/schmancy/overlay.md +14 -7
  263. package/dist/skills/schmancy/steps.md +68 -34
  264. package/dist/skills/steps.md +68 -34
  265. package/dist/slider.cjs +1 -1
  266. package/dist/slider.js +2 -2
  267. package/dist/{sound.service-DO4SmUUT.js → sound.service-CK-5zob-.js} +4 -3
  268. package/dist/sound.service-CK-5zob-.js.map +1 -0
  269. package/dist/{sound.service-G_8GV_6L.cjs → sound.service-D2GGaBXc.cjs} +1 -1
  270. package/dist/sound.service-D2GGaBXc.cjs.map +1 -0
  271. package/dist/{splash-screen-B1mM4_xz.js → splash-screen-BUEtjHXC.js} +13 -13
  272. package/dist/splash-screen-BUEtjHXC.js.map +1 -0
  273. package/dist/{splash-screen-cbz4bxjB.cjs → splash-screen-DqPuipox.cjs} +6 -6
  274. package/dist/splash-screen-DqPuipox.cjs.map +1 -0
  275. package/dist/splash-screen.cjs +1 -1
  276. package/dist/splash-screen.js +1 -1
  277. package/dist/{src-tncsWsTY.js → src-CIqAj3Eh.js} +45 -45
  278. package/dist/src-CIqAj3Eh.js.map +1 -0
  279. package/dist/{src-czeiuT1m.cjs → src-CYqBQTyt.cjs} +6 -6
  280. package/dist/src-CYqBQTyt.cjs.map +1 -0
  281. package/dist/{state-Cx0aoL5e.cjs → state-BxDNox-2.cjs} +1 -1
  282. package/dist/{state-Cx0aoL5e.cjs.map → state-BxDNox-2.cjs.map} +1 -1
  283. package/dist/{state-DJDp3N7J.js → state-CnZCDMT0.js} +9 -9
  284. package/dist/{state-DJDp3N7J.js.map → state-CnZCDMT0.js.map} +1 -1
  285. package/dist/state.cjs +1 -1
  286. package/dist/state.js +2 -2
  287. package/dist/steps.cjs +35 -19
  288. package/dist/steps.cjs.map +1 -1
  289. package/dist/steps.js +96 -73
  290. package/dist/steps.js.map +1 -1
  291. package/dist/{surface-CYBl8_a3.js → surface-BMdG3dKQ.js} +2 -2
  292. package/dist/{surface-CYBl8_a3.js.map → surface-BMdG3dKQ.js.map} +1 -1
  293. package/dist/{surface-C3cxTcJD.cjs → surface-CWwYD_z2.cjs} +1 -1
  294. package/dist/{surface-C3cxTcJD.cjs.map → surface-CWwYD_z2.cjs.map} +1 -1
  295. package/dist/surface.cjs +1 -1
  296. package/dist/surface.js +1 -1
  297. package/dist/switch.cjs +4 -4
  298. package/dist/switch.cjs.map +1 -1
  299. package/dist/switch.js +11 -11
  300. package/dist/switch.js.map +1 -1
  301. package/dist/table.cjs +1 -1
  302. package/dist/table.js +2 -2
  303. package/dist/{tabs-DHy93Q3N.js → tabs-CDQYDc6v.js} +2 -2
  304. package/dist/{tabs-DHy93Q3N.js.map → tabs-CDQYDc6v.js.map} +1 -1
  305. package/dist/{tabs-ORQ_Zd43.cjs → tabs-CbD9E1gd.cjs} +1 -1
  306. package/dist/{tabs-ORQ_Zd43.cjs.map → tabs-CbD9E1gd.cjs.map} +1 -1
  307. package/dist/tabs.cjs +1 -1
  308. package/dist/tabs.js +1 -1
  309. package/dist/teleport.cjs +1 -1
  310. package/dist/teleport.js +1 -1
  311. package/dist/textarea-Brgi-vD2.cjs +43 -0
  312. package/dist/textarea-Brgi-vD2.cjs.map +1 -0
  313. package/dist/{textarea-DHIMt-ly.js → textarea-MPyrMi-S.js} +4 -4
  314. package/dist/textarea-MPyrMi-S.js.map +1 -0
  315. package/dist/textarea.cjs +1 -1
  316. package/dist/textarea.js +1 -1
  317. package/dist/{theme-CJpjkqHr.cjs → theme-BMbXoqi0.cjs} +1 -1
  318. package/dist/{theme-CJpjkqHr.cjs.map → theme-BMbXoqi0.cjs.map} +1 -1
  319. package/dist/{theme-CgI9PRco.js → theme-DZu-xmVp.js} +5 -5
  320. package/dist/{theme-CgI9PRco.js.map → theme-DZu-xmVp.js.map} +1 -1
  321. package/dist/{theme-button--FuBkuVr.cjs → theme-button-B0OLb-43.cjs} +1 -1
  322. package/dist/{theme-button--FuBkuVr.cjs.map → theme-button-B0OLb-43.cjs.map} +1 -1
  323. package/dist/{theme-button-D-FXb3oO.js → theme-button-D_qGvEYs.js} +2 -2
  324. package/dist/{theme-button-D-FXb3oO.js.map → theme-button-D_qGvEYs.js.map} +1 -1
  325. package/dist/theme-button.cjs +1 -1
  326. package/dist/theme-button.js +1 -1
  327. package/dist/theme.cjs +1 -1
  328. package/dist/theme.js +3 -3
  329. package/dist/{theme.service-BfTK1Wtl.js → theme.service-7VkM-hVf.js} +15 -11
  330. package/dist/theme.service-7VkM-hVf.js.map +1 -0
  331. package/dist/theme.service-B15FdjOS.cjs +1 -0
  332. package/dist/theme.service-B15FdjOS.cjs.map +1 -0
  333. package/dist/tree.cjs +4 -4
  334. package/dist/tree.cjs.map +1 -1
  335. package/dist/tree.js +8 -8
  336. package/dist/tree.js.map +1 -1
  337. package/dist/{typography-CxA3sx9B.cjs → typography-D4Fo1UGh.cjs} +3 -3
  338. package/dist/{typography-CxA3sx9B.cjs.map → typography-D4Fo1UGh.cjs.map} +1 -1
  339. package/dist/{typography-BEGLfHwz.js → typography-SZhjb_4R.js} +9 -9
  340. package/dist/{typography-BEGLfHwz.js.map → typography-SZhjb_4R.js.map} +1 -1
  341. package/dist/typography.cjs +1 -1
  342. package/dist/typography.js +1 -1
  343. package/dist/visually-hidden.cjs +1 -1
  344. package/dist/visually-hidden.js +2 -2
  345. package/dist/{window-B_n4P9az.js → window-BDVyrBnk.js} +101 -100
  346. package/dist/window-BDVyrBnk.js.map +1 -0
  347. package/dist/window-BbBYjm7R.cjs +59 -0
  348. package/dist/window-BbBYjm7R.cjs.map +1 -0
  349. package/dist/window.cjs +1 -1
  350. package/dist/window.js +1 -1
  351. package/package.json +1 -1
  352. package/skills/schmancy/SKILL.md +17 -11
  353. package/skills/schmancy/overlay.md +14 -7
  354. package/skills/schmancy/steps.md +68 -34
  355. package/src/area/area.component.ts +1 -1
  356. package/src/area/area.service.test.ts +2 -2
  357. package/src/area/area.service.ts +1 -1
  358. package/src/area/lazy.ts +87 -83
  359. package/src/audio/sound.service.ts +3 -3
  360. package/src/breadcrumb/breadcrumb.ts +2 -2
  361. package/src/button/button.ts +11 -11
  362. package/src/button/icon-button.ts +18 -18
  363. package/src/card/card.ts +16 -16
  364. package/src/content-drawer/drawer.ts +6 -6
  365. package/src/details/details.ts +55 -55
  366. package/src/directives/ai-badge.ts +2 -1
  367. package/src/directives/animate-text.ts +2 -1
  368. package/src/directives/art/art.directive.ts +2 -1
  369. package/src/directives/battery.ts +2 -1
  370. package/src/directives/confirm-click.ts +5 -3
  371. package/src/directives/cursor-glow.ts +2 -1
  372. package/src/directives/cycle-text.ts +2 -1
  373. package/src/directives/depth-of-field.ts +2 -1
  374. package/src/directives/drag.ts +4 -2
  375. package/src/directives/fyi.ts +2 -1
  376. package/src/directives/gravity.ts +2 -1
  377. package/src/directives/hummingbird.ts +2 -1
  378. package/src/directives/intersect.ts +3 -2
  379. package/src/directives/liquid.ts +2 -1
  380. package/src/directives/living-border.ts +2 -1
  381. package/src/directives/long-press.ts +2 -1
  382. package/src/directives/magnetic.ts +2 -1
  383. package/src/directives/missed-punch.ts +2 -1
  384. package/src/directives/nebula.ts +6 -5
  385. package/src/directives/overflow-within.ts +2 -1
  386. package/src/directives/reveal.ts +193 -118
  387. package/src/directives/urgent.ts +2 -1
  388. package/src/directives/working-snake.ts +2 -1
  389. package/src/expand/expand-root.component.ts +27 -27
  390. package/src/expand/expand.component.ts +48 -48
  391. package/src/form/fields/autocomplete/autocomplete.ts +154 -154
  392. package/src/form/fields/checkbox/checkbox.ts +4 -4
  393. package/src/form/fields/chips/chips.ts +2 -2
  394. package/src/form/fields/chips/filter-chip.ts +15 -15
  395. package/src/form/fields/date-range/date-range.ts +2 -2
  396. package/src/form/fields/input/input.ts +12 -12
  397. package/src/form/fields/radio-group/radio-button.ts +2 -2
  398. package/src/form/fields/radio-group/radio-group.ts +3 -3
  399. package/src/form/fields/select/select.ts +56 -56
  400. package/src/form/fields/switch/switch.ts +10 -10
  401. package/src/form/fields/textarea/textarea.ts +2 -2
  402. package/src/form/form-summary.ts +33 -33
  403. package/src/form/form.ts +45 -45
  404. package/src/icons/icon.ts +10 -8
  405. package/src/iframe/iframe.ts +11 -11
  406. package/src/lightbox/flip-directive.ts +2 -1
  407. package/src/lightbox/lightbox.directive.ts +2 -1
  408. package/src/nav-drawer/navbar.ts +3 -3
  409. package/src/navigation-rail/navigation-rail.ts +10 -10
  410. package/src/notification/notification.ts +22 -22
  411. package/src/overlay/overlay.component.ts +106 -83
  412. package/src/overlay/overlay.confirm-body.ts +4 -4
  413. package/src/overlay/overlay.service.ts +3 -3
  414. package/src/overlay/overlay.types.ts +4 -2
  415. package/src/splash-screen/splash-screen.ts +11 -11
  416. package/src/state/index.ts +12 -12
  417. package/src/state/schmancy-context.ts +9 -9
  418. package/src/steps/index.ts +1 -1
  419. package/src/steps/schmancy-step.ts +91 -65
  420. package/src/steps/{schmancy-steps-container.ts → schmancy-steps.ts} +18 -38
  421. package/src/steps/steps.context.ts +5 -4
  422. package/src/steps/steps.test.ts +120 -0
  423. package/src/teleport/teleport.component.ts +2 -2
  424. package/src/theme/theme.service.ts +17 -17
  425. package/src/tree/tree.ts +7 -7
  426. package/src/typography/typography.ts +7 -7
  427. package/src/window/window-manager.ts +20 -20
  428. package/src/window/window.ts +100 -100
  429. package/types/mixins/SchmancyElement.d.ts +3 -2
  430. package/types/mixins/formField.mixin.d.ts +1 -1
  431. package/types/src/area/area.service.d.ts +1 -1
  432. package/types/src/area/lazy.d.ts +0 -6
  433. package/types/src/audio/sound.service.d.ts +1 -2
  434. package/types/src/breadcrumb/breadcrumb.d.ts +1 -1
  435. package/types/src/button/button.d.ts +3 -3
  436. package/types/src/button/icon-button.d.ts +6 -7
  437. package/types/src/card/card.d.ts +5 -5
  438. package/types/src/content-drawer/drawer.d.ts +1 -1
  439. package/types/src/details/details.d.ts +2 -21
  440. package/types/src/directives/ai-badge.d.ts +2 -2
  441. package/types/src/directives/animate-text.d.ts +2 -2
  442. package/types/src/directives/art/art.directive.d.ts +2 -2
  443. package/types/src/directives/battery.d.ts +2 -2
  444. package/types/src/directives/confirm-click.d.ts +2 -2
  445. package/types/src/directives/cursor-glow.d.ts +2 -2
  446. package/types/src/directives/cycle-text.d.ts +2 -2
  447. package/types/src/directives/depth-of-field.d.ts +2 -2
  448. package/types/src/directives/drag.d.ts +4 -4
  449. package/types/src/directives/fyi.d.ts +2 -2
  450. package/types/src/directives/gravity.d.ts +2 -2
  451. package/types/src/directives/hummingbird.d.ts +2 -2
  452. package/types/src/directives/intersect.d.ts +2 -2
  453. package/types/src/directives/liquid.d.ts +2 -2
  454. package/types/src/directives/living-border.d.ts +2 -2
  455. package/types/src/directives/long-press.d.ts +2 -2
  456. package/types/src/directives/magnetic.d.ts +2 -2
  457. package/types/src/directives/missed-punch.d.ts +2 -2
  458. package/types/src/directives/nebula.d.ts +2 -2
  459. package/types/src/directives/overflow-within.d.ts +2 -2
  460. package/types/src/directives/reveal.d.ts +17 -7
  461. package/types/src/directives/urgent.d.ts +2 -2
  462. package/types/src/directives/working-snake.d.ts +2 -2
  463. package/types/src/expand/expand-root.component.d.ts +8 -8
  464. package/types/src/expand/expand.component.d.ts +11 -11
  465. package/types/src/form/fields/autocomplete/autocomplete.d.ts +29 -29
  466. package/types/src/form/fields/checkbox/checkbox.d.ts +1 -1
  467. package/types/src/form/fields/chips/chips.d.ts +1 -1
  468. package/types/src/form/fields/chips/filter-chip.d.ts +1 -2
  469. package/types/src/form/fields/input/input.d.ts +3 -3
  470. package/types/src/form/fields/radio-group/radio-button.d.ts +1 -1
  471. package/types/src/form/fields/radio-group/radio-group.d.ts +1 -1
  472. package/types/src/form/fields/select/select.d.ts +8 -8
  473. package/types/src/form/fields/switch/switch.d.ts +3 -3
  474. package/types/src/form/fields/textarea/textarea.d.ts +1 -1
  475. package/types/src/form/form-summary.d.ts +7 -7
  476. package/types/src/form/form.d.ts +11 -11
  477. package/types/src/icons/icon.d.ts +2 -2
  478. package/types/src/iframe/iframe.d.ts +3 -3
  479. package/types/src/lightbox/flip-directive.d.ts +2 -2
  480. package/types/src/lightbox/lightbox.directive.d.ts +2 -2
  481. package/types/src/nav-drawer/navbar.d.ts +1 -1
  482. package/types/src/navigation-rail/navigation-rail.d.ts +2 -2
  483. package/types/src/notification/notification.d.ts +8 -8
  484. package/types/src/overlay/overlay.component.d.ts +16 -16
  485. package/types/src/overlay/overlay.confirm-body.d.ts +1 -1
  486. package/types/src/overlay/overlay.types.d.ts +4 -2
  487. package/types/src/splash-screen/splash-screen.d.ts +2 -2
  488. package/types/src/state/index.d.ts +1 -1
  489. package/types/src/state/schmancy-context.d.ts +3 -3
  490. package/types/src/steps/index.d.ts +1 -1
  491. package/types/src/steps/schmancy-step.d.ts +8 -23
  492. package/types/src/steps/{schmancy-steps-container.d.ts → schmancy-steps.d.ts} +8 -9
  493. package/types/src/steps/steps.context.d.ts +2 -1
  494. package/types/src/steps/steps.test.d.ts +2 -0
  495. package/types/src/teleport/teleport.component.d.ts +1 -1
  496. package/types/src/theme/theme.service.d.ts +1 -4
  497. package/types/src/tree/tree.d.ts +3 -3
  498. package/types/src/typography/typography.d.ts +1 -1
  499. package/types/src/window/window-manager.d.ts +2 -2
  500. package/types/src/window/window.d.ts +20 -20
  501. package/dist/SchmancyElement-BBzRWB1w.cjs +0 -2
  502. package/dist/SchmancyElement-C3CpdNsi.js +0 -284
  503. package/dist/area-BA96mwFY.js.map +0 -1
  504. package/dist/area-DtyQDdOF.cjs +0 -21
  505. package/dist/area-DtyQDdOF.cjs.map +0 -1
  506. package/dist/autocomplete-Bts5Jwwr.cjs +0 -115
  507. package/dist/autocomplete-Bts5Jwwr.cjs.map +0 -1
  508. package/dist/autocomplete-CI4QJXAN.js.map +0 -1
  509. package/dist/button-C89bPnHt.js.map +0 -1
  510. package/dist/button-CkwQH-g3.cjs +0 -62
  511. package/dist/button-CkwQH-g3.cjs.map +0 -1
  512. package/dist/card-BO93_oxQ.cjs.map +0 -1
  513. package/dist/card-CFsCgJKZ.js.map +0 -1
  514. package/dist/chips-6YaoRmeG.js.map +0 -1
  515. package/dist/chips-BfzpsyV1.cjs.map +0 -1
  516. package/dist/date-range-CEo_Kjqw.js.map +0 -1
  517. package/dist/date-range-N-A249O9.cjs.map +0 -1
  518. package/dist/details-BLRPV8sY.cjs +0 -164
  519. package/dist/details-BLRPV8sY.cjs.map +0 -1
  520. package/dist/details-GtpfI2hA.js.map +0 -1
  521. package/dist/directives-C2dXgpCY.js.map +0 -1
  522. package/dist/directives-CvYGSW_a.cjs.map +0 -1
  523. package/dist/expand-FcKAzJta.js.map +0 -1
  524. package/dist/expand-tffQHGbZ.cjs +0 -141
  525. package/dist/expand-tffQHGbZ.cjs.map +0 -1
  526. package/dist/form-H24puioV.js.map +0 -1
  527. package/dist/form-VYhbbir3.cjs +0 -27
  528. package/dist/form-VYhbbir3.cjs.map +0 -1
  529. package/dist/icons-B_a1HStW.cjs +0 -24
  530. package/dist/icons-B_a1HStW.cjs.map +0 -1
  531. package/dist/icons-DBxfN91B.js.map +0 -1
  532. package/dist/iframe-BDVElN8z.js.map +0 -1
  533. package/dist/iframe-CG-z9qev.cjs.map +0 -1
  534. package/dist/input-B14Nn6xD.cjs.map +0 -1
  535. package/dist/input-Bt_o4sYo.js.map +0 -1
  536. package/dist/lazy-CayEFyC3.cjs +0 -1
  537. package/dist/lazy-CayEFyC3.cjs.map +0 -1
  538. package/dist/lazy-D-bO2r4m.js +0 -13
  539. package/dist/lazy-D-bO2r4m.js.map +0 -1
  540. package/dist/lightbox-B47Zoqv-.cjs.map +0 -1
  541. package/dist/lightbox-ZmuoBBFT.js.map +0 -1
  542. package/dist/mixins-DPdzC9ZH.cjs.map +0 -1
  543. package/dist/mixins-DTzfFVyv.js.map +0 -1
  544. package/dist/notification-Ccktcj9H.js.map +0 -1
  545. package/dist/notification-DSkB-sn0.cjs +0 -24
  546. package/dist/notification-DSkB-sn0.cjs.map +0 -1
  547. package/dist/overlay-BS-ta-zq.cjs +0 -58
  548. package/dist/overlay-BS-ta-zq.cjs.map +0 -1
  549. package/dist/overlay-H3Wt_dgQ.js.map +0 -1
  550. package/dist/overlay.confirm-body-CR9xaqOE.cjs.map +0 -1
  551. package/dist/overlay.confirm-body-Dxn_wNm3.js.map +0 -1
  552. package/dist/overlay.service-DEj3rfRr.cjs +0 -1
  553. package/dist/radio-group-1HCpzRUB.js.map +0 -1
  554. package/dist/radio-group-DbYlyPc-.cjs.map +0 -1
  555. package/dist/select-B-SSmUDe.cjs +0 -56
  556. package/dist/select-B-SSmUDe.cjs.map +0 -1
  557. package/dist/select-CEyhNtZ2.js.map +0 -1
  558. package/dist/sound.service-DO4SmUUT.js.map +0 -1
  559. package/dist/sound.service-G_8GV_6L.cjs.map +0 -1
  560. package/dist/splash-screen-B1mM4_xz.js.map +0 -1
  561. package/dist/splash-screen-cbz4bxjB.cjs.map +0 -1
  562. package/dist/src-czeiuT1m.cjs.map +0 -1
  563. package/dist/src-tncsWsTY.js.map +0 -1
  564. package/dist/textarea-CEUaDURR.cjs +0 -43
  565. package/dist/textarea-CEUaDURR.cjs.map +0 -1
  566. package/dist/textarea-DHIMt-ly.js.map +0 -1
  567. package/dist/theme.service-BfTK1Wtl.js.map +0 -1
  568. package/dist/theme.service-Dg7LO0Qz.cjs +0 -1
  569. package/dist/theme.service-Dg7LO0Qz.cjs.map +0 -1
  570. package/dist/window-B_n4P9az.js.map +0 -1
  571. package/dist/window-Vl1u1-EG.cjs +0 -59
  572. package/dist/window-Vl1u1-EG.cjs.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"audio-D52h1jAT.js","names":[],"sources":["../src/audio/emotional-sounds.ts"],"sourcesContent":["/**\n * Schmancy Emotional Sound Library\n *\n * A curated collection of soft, elegant sounds organized by emotional categories.\n * Each sound is designed to be non-intrusive, emotionally evocative, and beautiful.\n *\n * Inspired by the gentle sounds of nature - soft air, gentle chimes, and warm tones.\n *\n * @example\n * ```typescript\n * import { $sounds } from '@schmancy/audio'\n *\n * // Play a feeling\n * $sounds.play('joyful')\n * $sounds.play('relieved')\n * $sounds.play('curious')\n *\n * // Adjust volume\n * $sounds.setVolume(0.2)\n *\n * // Mute/unmute\n * $sounds.mute()\n * $sounds.unmute()\n * ```\n */\n\n// ============================================================================\n// TYPES\n// ============================================================================\n\n/** Happy / Pleasant feelings */\nexport type HappyFeeling =\n | 'joyful' | 'content' | 'excited' | 'proud' | 'hopeful'\n | 'relieved' | 'grateful' | 'peaceful' | 'playful' | 'amused'\n | 'curious' | 'inspired' | 'confident' | 'loved' | 'comforted' | 'energized'\n | 'celebrated'\n\n/** Sad / Low feelings */\nexport type SadFeeling =\n | 'sad' | 'lonely' | 'disappointed' | 'heartbroken' | 'grieving'\n | 'hopeless' | 'empty' | 'discouraged' | 'melancholic' | 'homesick'\n | 'hurt' | 'miserable' | 'regretful' | 'ashamed' | 'inferior'\n\n/** Anxious / Fearful feelings */\nexport type AnxiousFeeling =\n | 'anxious' | 'worried' | 'afraid' | 'terrified' | 'panicked'\n | 'nervous' | 'uneasy' | 'insecure' | 'overwhelmed' | 'stressed'\n | 'tense' | 'apprehensive' | 'startled' | 'suspicious' | 'vulnerable'\n\n/** Angry / Frustrated feelings */\nexport type AngryFeeling =\n | 'annoyed' | 'irritated' | 'frustrated' | 'angry' | 'enraged'\n | 'bitter' | 'resentful' | 'jealous' | 'envious' | 'indignant'\n | 'impatient' | 'hostile' | 'contemptuous'\n\n/** Tired / Drained feelings */\nexport type TiredFeeling =\n | 'tired' | 'exhausted' | 'drained' | 'burnedOut' | 'numb'\n | 'bored' | 'unmotivated' | 'apathetic' | 'restless'\n\n/** Calm / Grounded feelings */\nexport type CalmFeeling =\n | 'calm' | 'relaxed' | 'atEase' | 'balanced' | 'stable'\n | 'secure' | 'safe' | 'centered' | 'grounded' | 'accepting'\n\n/** Connected / Social feelings */\nexport type ConnectedFeeling =\n | 'connected' | 'accepted' | 'included' | 'belonging' | 'appreciated'\n | 'valued' | 'respected' | 'supported' | 'protective' | 'compassionate' | 'empathetic'\n\n/** Mixed / Complicated feelings */\nexport type MixedFeeling =\n | 'conflicted' | 'confused' | 'ambivalent' | 'nostalgic' | 'guilty'\n | 'embarrassed' | 'surprised' | 'shocked' | 'awestruck' | 'skeptical'\n\n/** All feelings */\nexport type Feeling =\n | HappyFeeling | SadFeeling | AnxiousFeeling | AngryFeeling\n | TiredFeeling | CalmFeeling | ConnectedFeeling | MixedFeeling\n\n// FeelingCategory is defined in ../types/mood-audio.types.ts and re-exported\n// from ./index.ts — the canonical source.\n\n// ============================================================================\n// SOUND GENERATOR\n// ============================================================================\n\n/**\n * Emotional Sound Generator\n * Creates soft, beautiful sounds using Web Audio API\n */\nexport class EmotionalSoundGenerator {\n private audioContext: AudioContext | null = null\n private volume = 0.15\n private muted = false\n\n private getContext(): AudioContext {\n if (!this.audioContext) {\n const AudioContextClass = window.AudioContext || (window as any).webkitAudioContext\n this.audioContext = new AudioContextClass()\n }\n // Resume if suspended (autoplay policy)\n if (this.audioContext.state === 'suspended') {\n this.audioContext.resume()\n }\n return this.audioContext\n }\n\n // ==========================================================================\n // CORE SOUND PRIMITIVES\n // ==========================================================================\n\n /** Soft air puff - the foundation of our sound palette */\n private puff(startTime: number, duration: number, freq: number, vol: number): void {\n const ctx = this.getContext()\n const bufferSize = Math.floor(ctx.sampleRate * duration)\n const buffer = ctx.createBuffer(1, bufferSize, ctx.sampleRate)\n const data = buffer.getChannelData(0)\n\n for (let i = 0; i < bufferSize; i++) {\n data[i] = Math.random() * 2 - 1\n }\n\n const noise = ctx.createBufferSource()\n noise.buffer = buffer\n\n const filter = ctx.createBiquadFilter()\n filter.type = 'bandpass'\n filter.frequency.value = freq\n filter.Q.value = 0.7\n\n const gain = ctx.createGain()\n gain.gain.setValueAtTime(0, startTime)\n gain.gain.linearRampToValueAtTime(vol * this.volume, startTime + 0.015)\n gain.gain.exponentialRampToValueAtTime(0.001, startTime + duration)\n\n noise.connect(filter).connect(gain).connect(ctx.destination)\n noise.start(startTime)\n noise.stop(startTime + duration)\n }\n\n /** Gentle tone with envelope */\n private tone(\n startTime: number,\n duration: number,\n freq: number,\n vol: number,\n type: OscillatorType = 'sine',\n freqEnd?: number\n ): void {\n const ctx = this.getContext()\n const osc = ctx.createOscillator()\n const gain = ctx.createGain()\n\n osc.type = type\n osc.frequency.setValueAtTime(freq, startTime)\n if (freqEnd) {\n osc.frequency.exponentialRampToValueAtTime(freqEnd, startTime + duration * 0.8)\n }\n\n gain.gain.setValueAtTime(0, startTime)\n gain.gain.linearRampToValueAtTime(vol * this.volume, startTime + 0.02)\n gain.gain.exponentialRampToValueAtTime(0.001, startTime + duration)\n\n osc.connect(gain).connect(ctx.destination)\n osc.start(startTime)\n osc.stop(startTime + duration)\n }\n\n /** Warm filtered tone */\n private warmTone(\n startTime: number,\n duration: number,\n freq: number,\n vol: number,\n filterFreq = 800\n ): void {\n const ctx = this.getContext()\n const osc = ctx.createOscillator()\n const filter = ctx.createBiquadFilter()\n const gain = ctx.createGain()\n\n osc.type = 'sine'\n osc.frequency.value = freq\n\n filter.type = 'lowpass'\n filter.frequency.value = filterFreq\n\n gain.gain.setValueAtTime(0, startTime)\n gain.gain.linearRampToValueAtTime(vol * this.volume, startTime + 0.03)\n gain.gain.exponentialRampToValueAtTime(0.001, startTime + duration)\n\n osc.connect(filter).connect(gain).connect(ctx.destination)\n osc.start(startTime)\n osc.stop(startTime + duration)\n }\n\n /** Shimmer - multiple soft tones */\n private shimmer(startTime: number, duration: number, baseFreq: number, vol: number): void {\n const freqs = [baseFreq, baseFreq * 1.5, baseFreq * 2]\n freqs.forEach((f, i) => {\n this.tone(startTime + i * 0.02, duration - i * 0.02, f, vol * (1 - i * 0.2))\n })\n }\n\n // ==========================================================================\n // HAPPY / PLEASANT FEELINGS\n // ==========================================================================\n\n private playJoyful(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Double puff (excited exhale)\n this.puff(now, 0.08, 3000, 0.3)\n this.puff(now + 0.06, 0.1, 3500, 0.35)\n\n // Rising happy tones\n this.tone(now + 0.02, 0.15, 784, 0.25) // G5\n this.tone(now + 0.1, 0.2, 988, 0.3) // B5\n this.tone(now + 0.18, 0.25, 1175, 0.25) // D6\n }\n\n private playContent(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Gentle satisfied sigh\n this.puff(now, 0.2, 1500, 0.25)\n this.warmTone(now + 0.05, 0.3, 523, 0.2) // C5\n this.warmTone(now + 0.15, 0.35, 659, 0.15) // E5\n }\n\n private playExcited(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Quick ascending puffs\n this.puff(now, 0.06, 2500, 0.25)\n this.puff(now + 0.05, 0.06, 3000, 0.3)\n this.puff(now + 0.1, 0.08, 3500, 0.35)\n\n // Sparkly ascending tones\n this.tone(now + 0.02, 0.12, 880, 0.2)\n this.tone(now + 0.08, 0.12, 1047, 0.25)\n this.tone(now + 0.14, 0.15, 1319, 0.3)\n }\n\n private playProud(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Confident puff\n this.puff(now, 0.15, 1800, 0.3)\n\n // Strong rising chord\n this.tone(now + 0.05, 0.25, 523, 0.25) // C5\n this.tone(now + 0.08, 0.25, 659, 0.2) // E5\n this.tone(now + 0.11, 0.3, 784, 0.25) // G5\n }\n\n private playHopeful(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Light ascending puff\n this.puff(now, 0.12, 2200, 0.2)\n\n // Gentle rising tone\n this.tone(now + 0.03, 0.3, 659, 0.2, 'sine', 880) // E5 -> A5\n }\n\n private playRelieved(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Long exhale\n this.puff(now, 0.25, 1200, 0.35)\n\n // Descending release\n this.warmTone(now + 0.1, 0.35, 659, 0.2) // E5\n this.warmTone(now + 0.25, 0.4, 523, 0.15) // C5\n }\n\n private playGrateful(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Warm gentle puff\n this.puff(now, 0.15, 1500, 0.25)\n\n // Warm embracing tones\n this.warmTone(now + 0.05, 0.3, 440, 0.2) // A4\n this.warmTone(now + 0.15, 0.35, 523, 0.2) // C5\n this.warmTone(now + 0.25, 0.4, 659, 0.15) // E5\n }\n\n private playPeaceful(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Very soft puff\n this.puff(now, 0.3, 800, 0.15)\n\n // Gentle sustained tone\n this.warmTone(now + 0.1, 0.5, 392, 0.12, 500) // G4\n }\n\n private playPlayful(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Bouncy puffs\n this.puff(now, 0.05, 2800, 0.2)\n this.puff(now + 0.08, 0.05, 3200, 0.25)\n this.puff(now + 0.14, 0.06, 2800, 0.2)\n\n // Playful tones\n this.tone(now + 0.03, 0.1, 784, 0.2)\n this.tone(now + 0.1, 0.08, 988, 0.25)\n this.tone(now + 0.16, 0.12, 784, 0.2)\n }\n\n private playAmused(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Little chuckle puffs\n this.puff(now, 0.04, 2500, 0.2)\n this.puff(now + 0.06, 0.04, 2800, 0.22)\n this.puff(now + 0.11, 0.05, 2600, 0.18)\n\n // Amused tone\n this.tone(now + 0.05, 0.15, 880, 0.15)\n }\n\n private playCurious(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Questioning puff\n this.puff(now, 0.1, 2000, 0.2)\n\n // Rising questioning tone\n this.tone(now + 0.03, 0.2, 659, 0.2, 'sine', 880) // E5 -> A5 (question)\n }\n\n private playInspired(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Bright puff\n this.puff(now, 0.1, 2500, 0.25)\n\n // Ascending shimmer\n this.shimmer(now + 0.05, 0.3, 523, 0.2)\n }\n\n private playConfident(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Solid puff\n this.puff(now, 0.12, 1500, 0.3)\n\n // Strong chord\n this.tone(now + 0.04, 0.2, 523, 0.25) // C5\n this.tone(now + 0.06, 0.22, 659, 0.2) // E5\n }\n\n private playLoved(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Warm embrace puff\n this.puff(now, 0.2, 1000, 0.2)\n\n // Warm loving tones\n this.warmTone(now + 0.08, 0.4, 392, 0.18, 600) // G4\n this.warmTone(now + 0.2, 0.45, 494, 0.15, 600) // B4\n }\n\n private playComforted(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Soft blanket puff\n this.puff(now, 0.25, 900, 0.18)\n\n // Gentle descending comfort\n this.warmTone(now + 0.1, 0.35, 523, 0.15) // C5\n this.warmTone(now + 0.25, 0.4, 440, 0.12) // A4\n }\n\n private playEnergized(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Quick energetic puffs\n this.puff(now, 0.05, 3000, 0.25)\n this.puff(now + 0.04, 0.05, 3500, 0.28)\n\n // Bright ascending tones\n this.tone(now + 0.02, 0.1, 784, 0.2)\n this.tone(now + 0.08, 0.12, 988, 0.25)\n this.tone(now + 0.14, 0.15, 1175, 0.22)\n }\n\n private playCelebrated(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Bright celebratory chime\n this.puff(now, 0.08, 2500, 0.2)\n\n // Triumphant ascending arpeggio (C major -> resolve)\n this.tone(now + 0.02, 0.18, 523, 0.22) // C5\n this.tone(now + 0.08, 0.18, 659, 0.24) // E5\n this.tone(now + 0.14, 0.2, 784, 0.26) // G5\n this.tone(now + 0.22, 0.3, 1047, 0.22) // C6 - resolution\n\n // Warm shimmer on resolution\n this.shimmer(now + 0.25, 0.35, 523, 0.12)\n }\n\n // ==========================================================================\n // SAD / LOW FEELINGS\n // ==========================================================================\n\n private playSad(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Heavy sigh\n this.puff(now, 0.3, 600, 0.25)\n\n // Descending sad tone\n this.warmTone(now + 0.1, 0.4, 392, 0.2, 400) // G4\n this.warmTone(now + 0.3, 0.45, 294, 0.15, 350) // D4\n }\n\n private playLonely(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Single isolated puff\n this.puff(now, 0.2, 700, 0.2)\n\n // Sparse, distant tone\n this.warmTone(now + 0.15, 0.5, 330, 0.12, 450) // E4\n }\n\n private playDisappointed(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Deflating puff\n this.puff(now, 0.25, 800, 0.25)\n\n // Falling tone\n this.tone(now + 0.08, 0.3, 523, 0.18, 'sine', 349) // C5 -> F4\n }\n\n private playMelancholic(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Wistful puff\n this.puff(now, 0.3, 700, 0.18)\n\n // Bittersweet tones\n this.warmTone(now + 0.1, 0.45, 440, 0.15, 500) // A4\n this.warmTone(now + 0.3, 0.5, 392, 0.12, 450) // G4\n }\n\n // ==========================================================================\n // ANXIOUS / FEARFUL FEELINGS\n // ==========================================================================\n\n private playAnxious(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Tight, quick puffs\n this.puff(now, 0.08, 1800, 0.2)\n this.puff(now + 0.12, 0.08, 1900, 0.22)\n\n // Uncertain wobble\n const osc = ctx.createOscillator()\n const gain = ctx.createGain()\n const lfo = ctx.createOscillator()\n const lfoGain = ctx.createGain()\n\n osc.frequency.value = 440\n lfo.frequency.value = 8\n lfoGain.gain.value = 20\n\n lfo.connect(lfoGain).connect(osc.frequency)\n\n gain.gain.setValueAtTime(0, now)\n gain.gain.linearRampToValueAtTime(this.volume * 0.15, now + 0.03)\n gain.gain.exponentialRampToValueAtTime(0.001, now + 0.25)\n\n osc.connect(gain).connect(ctx.destination)\n lfo.start(now)\n osc.start(now)\n osc.stop(now + 0.3)\n lfo.stop(now + 0.3)\n }\n\n private playWorried(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Hesitant puff\n this.puff(now, 0.15, 1200, 0.2)\n\n // Minor questioning tone\n this.tone(now + 0.05, 0.25, 349, 0.15, 'sine', 392) // F4 -> G4 (uncertain)\n }\n\n private playNervous(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Quick shallow puffs\n this.puff(now, 0.05, 2000, 0.18)\n this.puff(now + 0.08, 0.05, 2100, 0.18)\n this.puff(now + 0.15, 0.06, 2000, 0.16)\n\n // Trembling tone\n this.tone(now + 0.04, 0.2, 494, 0.12) // B4\n }\n\n private playStartled(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Quick sharp puff\n this.puff(now, 0.04, 3500, 0.3)\n\n // Quick high tone\n this.tone(now, 0.08, 1047, 0.25) // C6\n this.tone(now + 0.05, 0.15, 880, 0.15) // A5\n }\n\n // ==========================================================================\n // ANGRY / FRUSTRATED FEELINGS\n // ==========================================================================\n\n private playAnnoyed(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Short frustrated puff\n this.puff(now, 0.1, 1000, 0.25)\n\n // Low rumble\n this.warmTone(now + 0.03, 0.2, 294, 0.18, 400) // D4\n }\n\n private playFrustrated(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Tense puff\n this.puff(now, 0.12, 900, 0.28)\n\n // Blocked feeling\n this.tone(now + 0.04, 0.15, 349, 0.2) // F4\n this.tone(now + 0.12, 0.12, 330, 0.18) // E4\n }\n\n private playImpatient(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Quick tapping puffs\n this.puff(now, 0.04, 1500, 0.2)\n this.puff(now + 0.08, 0.04, 1500, 0.2)\n this.puff(now + 0.16, 0.04, 1500, 0.22)\n\n // Urgent tone\n this.tone(now + 0.06, 0.1, 523, 0.15)\n }\n\n // ==========================================================================\n // TIRED / DRAINED FEELINGS\n // ==========================================================================\n\n private playTired(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Heavy slow puff\n this.puff(now, 0.35, 500, 0.2)\n\n // Drooping tone\n this.warmTone(now + 0.1, 0.4, 330, 0.12, 350) // E4\n }\n\n private playExhausted(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Very slow, heavy exhale\n this.puff(now, 0.45, 400, 0.18)\n\n // Descending fade\n this.warmTone(now + 0.15, 0.5, 294, 0.1, 300) // D4\n }\n\n private playBored(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Flat sigh\n this.puff(now, 0.25, 600, 0.15)\n\n // Monotone\n this.warmTone(now + 0.1, 0.3, 349, 0.1, 400) // F4\n }\n\n // ==========================================================================\n // CALM / GROUNDED FEELINGS\n // ==========================================================================\n\n private playCalm(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Slow, peaceful puff\n this.puff(now, 0.3, 600, 0.12)\n\n // Sustained gentle tone\n this.warmTone(now + 0.1, 0.5, 392, 0.1, 500) // G4\n }\n\n private playRelaxed(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Long soft exhale\n this.puff(now, 0.35, 700, 0.15)\n\n // Gentle descending\n this.warmTone(now + 0.15, 0.45, 440, 0.1) // A4\n this.warmTone(now + 0.35, 0.5, 392, 0.08) // G4\n }\n\n private playGrounded(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Deep centered puff\n this.puff(now, 0.25, 500, 0.2)\n\n // Low stable tone\n this.warmTone(now + 0.1, 0.4, 262, 0.15, 350) // C4\n }\n\n private playSafe(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Soft enveloping puff\n this.puff(now, 0.3, 700, 0.15)\n\n // Warm embracing tones\n this.warmTone(now + 0.1, 0.4, 349, 0.12) // F4\n this.warmTone(now + 0.25, 0.45, 440, 0.1) // A4\n }\n\n // ==========================================================================\n // CONNECTED / SOCIAL FEELINGS\n // ==========================================================================\n\n private playConnected(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Warm shared breath\n this.puff(now, 0.2, 1200, 0.18)\n\n // Harmonious tones\n this.warmTone(now + 0.08, 0.3, 440, 0.15) // A4\n this.warmTone(now + 0.12, 0.32, 523, 0.12) // C5\n }\n\n private playAppreciated(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Touched puff\n this.puff(now, 0.15, 1500, 0.2)\n\n // Warm ascending\n this.warmTone(now + 0.05, 0.25, 440, 0.15)\n this.warmTone(now + 0.15, 0.3, 523, 0.18)\n }\n\n private playSupported(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Held puff\n this.puff(now, 0.25, 900, 0.18)\n\n // Stable harmonies\n this.warmTone(now + 0.1, 0.35, 349, 0.12)\n this.warmTone(now + 0.15, 0.4, 440, 0.1)\n }\n\n // ==========================================================================\n // MIXED / COMPLICATED FEELINGS\n // ==========================================================================\n\n private playNostalgic(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Wistful distant puff\n this.puff(now, 0.25, 800, 0.15)\n\n // Bittersweet memory tones\n this.warmTone(now + 0.1, 0.4, 440, 0.12, 500) // A4\n this.warmTone(now + 0.3, 0.45, 392, 0.1, 450) // G4\n }\n\n private playSurprised(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Quick gasp\n this.puff(now, 0.06, 2800, 0.25)\n\n // Rising tone\n this.tone(now + 0.02, 0.15, 659, 0.2, 'sine', 988) // E5 -> B5\n }\n\n private playAwestruck(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Wonder-filled breath\n this.puff(now, 0.2, 1500, 0.2)\n\n // Ascending wonder\n this.shimmer(now + 0.08, 0.4, 440, 0.15)\n }\n\n private playConfused(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Uncertain puff\n this.puff(now, 0.12, 1200, 0.18)\n\n // Questioning wobble\n this.tone(now + 0.04, 0.2, 440, 0.12, 'sine', 494) // A4 -> B4\n this.tone(now + 0.15, 0.15, 466, 0.1) // Bb4 (chromatic confusion)\n }\n\n // ==========================================================================\n // PUBLIC API\n // ==========================================================================\n\n /** Set volume (0.0 - 1.0) */\n setVolume(vol: number): void {\n this.volume = Math.max(0, Math.min(1, vol))\n }\n\n /** Get current volume */\n getVolume(): number {\n return this.volume\n }\n\n /** Mute all sounds */\n mute(): void {\n this.muted = true\n }\n\n /** Unmute sounds */\n unmute(): void {\n this.muted = false\n }\n\n /** Check if muted */\n isMuted(): boolean {\n return this.muted\n }\n\n /** Play a feeling */\n play(feeling: Feeling): void {\n if (this.muted) return\n\n // Map feelings to their sound methods\n const soundMap: Record<Feeling, () => void> = {\n // Happy\n joyful: () => this.playJoyful(),\n content: () => this.playContent(),\n excited: () => this.playExcited(),\n proud: () => this.playProud(),\n hopeful: () => this.playHopeful(),\n relieved: () => this.playRelieved(),\n grateful: () => this.playGrateful(),\n peaceful: () => this.playPeaceful(),\n playful: () => this.playPlayful(),\n amused: () => this.playAmused(),\n curious: () => this.playCurious(),\n inspired: () => this.playInspired(),\n confident: () => this.playConfident(),\n loved: () => this.playLoved(),\n comforted: () => this.playComforted(),\n energized: () => this.playEnergized(),\n celebrated: () => this.playCelebrated(),\n\n // Sad\n sad: () => this.playSad(),\n lonely: () => this.playLonely(),\n disappointed: () => this.playDisappointed(),\n heartbroken: () => this.playSad(), // Similar to sad\n grieving: () => this.playSad(),\n hopeless: () => this.playLonely(),\n empty: () => this.playLonely(),\n discouraged: () => this.playDisappointed(),\n melancholic: () => this.playMelancholic(),\n homesick: () => this.playNostalgic(),\n hurt: () => this.playSad(),\n miserable: () => this.playSad(),\n regretful: () => this.playMelancholic(),\n ashamed: () => this.playDisappointed(),\n inferior: () => this.playDisappointed(),\n\n // Anxious\n anxious: () => this.playAnxious(),\n worried: () => this.playWorried(),\n afraid: () => this.playAnxious(),\n terrified: () => this.playStartled(),\n panicked: () => this.playStartled(),\n nervous: () => this.playNervous(),\n uneasy: () => this.playWorried(),\n insecure: () => this.playNervous(),\n overwhelmed: () => this.playAnxious(),\n stressed: () => this.playAnxious(),\n tense: () => this.playAnxious(),\n apprehensive: () => this.playWorried(),\n startled: () => this.playStartled(),\n suspicious: () => this.playWorried(),\n vulnerable: () => this.playNervous(),\n\n // Angry\n annoyed: () => this.playAnnoyed(),\n irritated: () => this.playAnnoyed(),\n frustrated: () => this.playFrustrated(),\n angry: () => this.playFrustrated(),\n enraged: () => this.playFrustrated(),\n bitter: () => this.playFrustrated(),\n resentful: () => this.playAnnoyed(),\n jealous: () => this.playAnnoyed(),\n envious: () => this.playAnnoyed(),\n indignant: () => this.playFrustrated(),\n impatient: () => this.playImpatient(),\n hostile: () => this.playFrustrated(),\n contemptuous: () => this.playAnnoyed(),\n\n // Tired\n tired: () => this.playTired(),\n exhausted: () => this.playExhausted(),\n drained: () => this.playExhausted(),\n burnedOut: () => this.playExhausted(),\n numb: () => this.playExhausted(),\n bored: () => this.playBored(),\n unmotivated: () => this.playBored(),\n apathetic: () => this.playBored(),\n restless: () => this.playTired(),\n\n // Calm\n calm: () => this.playCalm(),\n relaxed: () => this.playRelaxed(),\n atEase: () => this.playRelaxed(),\n balanced: () => this.playCalm(),\n stable: () => this.playGrounded(),\n secure: () => this.playSafe(),\n safe: () => this.playSafe(),\n centered: () => this.playGrounded(),\n grounded: () => this.playGrounded(),\n accepting: () => this.playCalm(),\n\n // Connected\n connected: () => this.playConnected(),\n accepted: () => this.playAppreciated(),\n included: () => this.playConnected(),\n belonging: () => this.playConnected(),\n appreciated: () => this.playAppreciated(),\n valued: () => this.playAppreciated(),\n respected: () => this.playAppreciated(),\n supported: () => this.playSupported(),\n protective: () => this.playSupported(),\n compassionate: () => this.playConnected(),\n empathetic: () => this.playConnected(),\n\n // Mixed\n conflicted: () => this.playConfused(),\n confused: () => this.playConfused(),\n ambivalent: () => this.playConfused(),\n nostalgic: () => this.playNostalgic(),\n guilty: () => this.playDisappointed(),\n embarrassed: () => this.playNervous(),\n surprised: () => this.playSurprised(),\n shocked: () => this.playStartled(),\n awestruck: () => this.playAwestruck(),\n skeptical: () => this.playConfused(),\n }\n\n const playFn = soundMap[feeling]\n if (playFn) {\n playFn()\n }\n }\n\n /** Dispose audio context */\n dispose(): void {\n if (this.audioContext) {\n this.audioContext.close()\n this.audioContext = null\n }\n }\n}\n\n// ============================================================================\n// SINGLETON EXPORT\n// ============================================================================\n\n/** Global emotional sound player */\nexport const $sounds = new EmotionalSoundGenerator()\n"],"mappings":"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"}
1
+ {"version":3,"file":"audio-D3gnp15Y.js","names":[],"sources":["../src/audio/emotional-sounds.ts"],"sourcesContent":["/**\n * Schmancy Emotional Sound Library\n *\n * A curated collection of soft, elegant sounds organized by emotional categories.\n * Each sound is designed to be non-intrusive, emotionally evocative, and beautiful.\n *\n * Inspired by the gentle sounds of nature - soft air, gentle chimes, and warm tones.\n *\n * @example\n * ```typescript\n * import { $sounds } from '@schmancy/audio'\n *\n * // Play a feeling\n * $sounds.play('joyful')\n * $sounds.play('relieved')\n * $sounds.play('curious')\n *\n * // Adjust volume\n * $sounds.setVolume(0.2)\n *\n * // Mute/unmute\n * $sounds.mute()\n * $sounds.unmute()\n * ```\n */\n\n// ============================================================================\n// TYPES\n// ============================================================================\n\n/** Happy / Pleasant feelings */\nexport type HappyFeeling =\n | 'joyful' | 'content' | 'excited' | 'proud' | 'hopeful'\n | 'relieved' | 'grateful' | 'peaceful' | 'playful' | 'amused'\n | 'curious' | 'inspired' | 'confident' | 'loved' | 'comforted' | 'energized'\n | 'celebrated'\n\n/** Sad / Low feelings */\nexport type SadFeeling =\n | 'sad' | 'lonely' | 'disappointed' | 'heartbroken' | 'grieving'\n | 'hopeless' | 'empty' | 'discouraged' | 'melancholic' | 'homesick'\n | 'hurt' | 'miserable' | 'regretful' | 'ashamed' | 'inferior'\n\n/** Anxious / Fearful feelings */\nexport type AnxiousFeeling =\n | 'anxious' | 'worried' | 'afraid' | 'terrified' | 'panicked'\n | 'nervous' | 'uneasy' | 'insecure' | 'overwhelmed' | 'stressed'\n | 'tense' | 'apprehensive' | 'startled' | 'suspicious' | 'vulnerable'\n\n/** Angry / Frustrated feelings */\nexport type AngryFeeling =\n | 'annoyed' | 'irritated' | 'frustrated' | 'angry' | 'enraged'\n | 'bitter' | 'resentful' | 'jealous' | 'envious' | 'indignant'\n | 'impatient' | 'hostile' | 'contemptuous'\n\n/** Tired / Drained feelings */\nexport type TiredFeeling =\n | 'tired' | 'exhausted' | 'drained' | 'burnedOut' | 'numb'\n | 'bored' | 'unmotivated' | 'apathetic' | 'restless'\n\n/** Calm / Grounded feelings */\nexport type CalmFeeling =\n | 'calm' | 'relaxed' | 'atEase' | 'balanced' | 'stable'\n | 'secure' | 'safe' | 'centered' | 'grounded' | 'accepting'\n\n/** Connected / Social feelings */\nexport type ConnectedFeeling =\n | 'connected' | 'accepted' | 'included' | 'belonging' | 'appreciated'\n | 'valued' | 'respected' | 'supported' | 'protective' | 'compassionate' | 'empathetic'\n\n/** Mixed / Complicated feelings */\nexport type MixedFeeling =\n | 'conflicted' | 'confused' | 'ambivalent' | 'nostalgic' | 'guilty'\n | 'embarrassed' | 'surprised' | 'shocked' | 'awestruck' | 'skeptical'\n\n/** All feelings */\nexport type Feeling =\n | HappyFeeling | SadFeeling | AnxiousFeeling | AngryFeeling\n | TiredFeeling | CalmFeeling | ConnectedFeeling | MixedFeeling\n\n// FeelingCategory is defined in ../types/mood-audio.types.ts and re-exported\n// from ./index.ts — the canonical source.\n\n// ============================================================================\n// SOUND GENERATOR\n// ============================================================================\n\n/**\n * Emotional Sound Generator\n * Creates soft, beautiful sounds using Web Audio API\n */\nexport class EmotionalSoundGenerator {\n private audioContext: AudioContext | null = null\n private volume = 0.15\n private muted = false\n\n private getContext(): AudioContext {\n if (!this.audioContext) {\n const AudioContextClass = window.AudioContext || (window as any).webkitAudioContext\n this.audioContext = new AudioContextClass()\n }\n // Resume if suspended (autoplay policy)\n if (this.audioContext.state === 'suspended') {\n this.audioContext.resume()\n }\n return this.audioContext\n }\n\n // ==========================================================================\n // CORE SOUND PRIMITIVES\n // ==========================================================================\n\n /** Soft air puff - the foundation of our sound palette */\n private puff(startTime: number, duration: number, freq: number, vol: number): void {\n const ctx = this.getContext()\n const bufferSize = Math.floor(ctx.sampleRate * duration)\n const buffer = ctx.createBuffer(1, bufferSize, ctx.sampleRate)\n const data = buffer.getChannelData(0)\n\n for (let i = 0; i < bufferSize; i++) {\n data[i] = Math.random() * 2 - 1\n }\n\n const noise = ctx.createBufferSource()\n noise.buffer = buffer\n\n const filter = ctx.createBiquadFilter()\n filter.type = 'bandpass'\n filter.frequency.value = freq\n filter.Q.value = 0.7\n\n const gain = ctx.createGain()\n gain.gain.setValueAtTime(0, startTime)\n gain.gain.linearRampToValueAtTime(vol * this.volume, startTime + 0.015)\n gain.gain.exponentialRampToValueAtTime(0.001, startTime + duration)\n\n noise.connect(filter).connect(gain).connect(ctx.destination)\n noise.start(startTime)\n noise.stop(startTime + duration)\n }\n\n /** Gentle tone with envelope */\n private tone(\n startTime: number,\n duration: number,\n freq: number,\n vol: number,\n type: OscillatorType = 'sine',\n freqEnd?: number\n ): void {\n const ctx = this.getContext()\n const osc = ctx.createOscillator()\n const gain = ctx.createGain()\n\n osc.type = type\n osc.frequency.setValueAtTime(freq, startTime)\n if (freqEnd) {\n osc.frequency.exponentialRampToValueAtTime(freqEnd, startTime + duration * 0.8)\n }\n\n gain.gain.setValueAtTime(0, startTime)\n gain.gain.linearRampToValueAtTime(vol * this.volume, startTime + 0.02)\n gain.gain.exponentialRampToValueAtTime(0.001, startTime + duration)\n\n osc.connect(gain).connect(ctx.destination)\n osc.start(startTime)\n osc.stop(startTime + duration)\n }\n\n /** Warm filtered tone */\n private warmTone(\n startTime: number,\n duration: number,\n freq: number,\n vol: number,\n filterFreq = 800\n ): void {\n const ctx = this.getContext()\n const osc = ctx.createOscillator()\n const filter = ctx.createBiquadFilter()\n const gain = ctx.createGain()\n\n osc.type = 'sine'\n osc.frequency.value = freq\n\n filter.type = 'lowpass'\n filter.frequency.value = filterFreq\n\n gain.gain.setValueAtTime(0, startTime)\n gain.gain.linearRampToValueAtTime(vol * this.volume, startTime + 0.03)\n gain.gain.exponentialRampToValueAtTime(0.001, startTime + duration)\n\n osc.connect(filter).connect(gain).connect(ctx.destination)\n osc.start(startTime)\n osc.stop(startTime + duration)\n }\n\n /** Shimmer - multiple soft tones */\n private shimmer(startTime: number, duration: number, baseFreq: number, vol: number): void {\n const freqs = [baseFreq, baseFreq * 1.5, baseFreq * 2]\n freqs.forEach((f, i) => {\n this.tone(startTime + i * 0.02, duration - i * 0.02, f, vol * (1 - i * 0.2))\n })\n }\n\n // ==========================================================================\n // HAPPY / PLEASANT FEELINGS\n // ==========================================================================\n\n private playJoyful(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Double puff (excited exhale)\n this.puff(now, 0.08, 3000, 0.3)\n this.puff(now + 0.06, 0.1, 3500, 0.35)\n\n // Rising happy tones\n this.tone(now + 0.02, 0.15, 784, 0.25) // G5\n this.tone(now + 0.1, 0.2, 988, 0.3) // B5\n this.tone(now + 0.18, 0.25, 1175, 0.25) // D6\n }\n\n private playContent(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Gentle satisfied sigh\n this.puff(now, 0.2, 1500, 0.25)\n this.warmTone(now + 0.05, 0.3, 523, 0.2) // C5\n this.warmTone(now + 0.15, 0.35, 659, 0.15) // E5\n }\n\n private playExcited(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Quick ascending puffs\n this.puff(now, 0.06, 2500, 0.25)\n this.puff(now + 0.05, 0.06, 3000, 0.3)\n this.puff(now + 0.1, 0.08, 3500, 0.35)\n\n // Sparkly ascending tones\n this.tone(now + 0.02, 0.12, 880, 0.2)\n this.tone(now + 0.08, 0.12, 1047, 0.25)\n this.tone(now + 0.14, 0.15, 1319, 0.3)\n }\n\n private playProud(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Confident puff\n this.puff(now, 0.15, 1800, 0.3)\n\n // Strong rising chord\n this.tone(now + 0.05, 0.25, 523, 0.25) // C5\n this.tone(now + 0.08, 0.25, 659, 0.2) // E5\n this.tone(now + 0.11, 0.3, 784, 0.25) // G5\n }\n\n private playHopeful(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Light ascending puff\n this.puff(now, 0.12, 2200, 0.2)\n\n // Gentle rising tone\n this.tone(now + 0.03, 0.3, 659, 0.2, 'sine', 880) // E5 -> A5\n }\n\n private playRelieved(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Long exhale\n this.puff(now, 0.25, 1200, 0.35)\n\n // Descending release\n this.warmTone(now + 0.1, 0.35, 659, 0.2) // E5\n this.warmTone(now + 0.25, 0.4, 523, 0.15) // C5\n }\n\n private playGrateful(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Warm gentle puff\n this.puff(now, 0.15, 1500, 0.25)\n\n // Warm embracing tones\n this.warmTone(now + 0.05, 0.3, 440, 0.2) // A4\n this.warmTone(now + 0.15, 0.35, 523, 0.2) // C5\n this.warmTone(now + 0.25, 0.4, 659, 0.15) // E5\n }\n\n private playPeaceful(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Very soft puff\n this.puff(now, 0.3, 800, 0.15)\n\n // Gentle sustained tone\n this.warmTone(now + 0.1, 0.5, 392, 0.12, 500) // G4\n }\n\n private playPlayful(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Bouncy puffs\n this.puff(now, 0.05, 2800, 0.2)\n this.puff(now + 0.08, 0.05, 3200, 0.25)\n this.puff(now + 0.14, 0.06, 2800, 0.2)\n\n // Playful tones\n this.tone(now + 0.03, 0.1, 784, 0.2)\n this.tone(now + 0.1, 0.08, 988, 0.25)\n this.tone(now + 0.16, 0.12, 784, 0.2)\n }\n\n private playAmused(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Little chuckle puffs\n this.puff(now, 0.04, 2500, 0.2)\n this.puff(now + 0.06, 0.04, 2800, 0.22)\n this.puff(now + 0.11, 0.05, 2600, 0.18)\n\n // Amused tone\n this.tone(now + 0.05, 0.15, 880, 0.15)\n }\n\n private playCurious(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Questioning puff\n this.puff(now, 0.1, 2000, 0.2)\n\n // Rising questioning tone\n this.tone(now + 0.03, 0.2, 659, 0.2, 'sine', 880) // E5 -> A5 (question)\n }\n\n private playInspired(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Bright puff\n this.puff(now, 0.1, 2500, 0.25)\n\n // Ascending shimmer\n this.shimmer(now + 0.05, 0.3, 523, 0.2)\n }\n\n private playConfident(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Solid puff\n this.puff(now, 0.12, 1500, 0.3)\n\n // Strong chord\n this.tone(now + 0.04, 0.2, 523, 0.25) // C5\n this.tone(now + 0.06, 0.22, 659, 0.2) // E5\n }\n\n private playLoved(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Warm embrace puff\n this.puff(now, 0.2, 1000, 0.2)\n\n // Warm loving tones\n this.warmTone(now + 0.08, 0.4, 392, 0.18, 600) // G4\n this.warmTone(now + 0.2, 0.45, 494, 0.15, 600) // B4\n }\n\n private playComforted(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Soft blanket puff\n this.puff(now, 0.25, 900, 0.18)\n\n // Gentle descending comfort\n this.warmTone(now + 0.1, 0.35, 523, 0.15) // C5\n this.warmTone(now + 0.25, 0.4, 440, 0.12) // A4\n }\n\n private playEnergized(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Quick energetic puffs\n this.puff(now, 0.05, 3000, 0.25)\n this.puff(now + 0.04, 0.05, 3500, 0.28)\n\n // Bright ascending tones\n this.tone(now + 0.02, 0.1, 784, 0.2)\n this.tone(now + 0.08, 0.12, 988, 0.25)\n this.tone(now + 0.14, 0.15, 1175, 0.22)\n }\n\n private playCelebrated(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Bright celebratory chime\n this.puff(now, 0.08, 2500, 0.2)\n\n // Triumphant ascending arpeggio (C major -> resolve)\n this.tone(now + 0.02, 0.18, 523, 0.22) // C5\n this.tone(now + 0.08, 0.18, 659, 0.24) // E5\n this.tone(now + 0.14, 0.2, 784, 0.26) // G5\n this.tone(now + 0.22, 0.3, 1047, 0.22) // C6 - resolution\n\n // Warm shimmer on resolution\n this.shimmer(now + 0.25, 0.35, 523, 0.12)\n }\n\n // ==========================================================================\n // SAD / LOW FEELINGS\n // ==========================================================================\n\n private playSad(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Heavy sigh\n this.puff(now, 0.3, 600, 0.25)\n\n // Descending sad tone\n this.warmTone(now + 0.1, 0.4, 392, 0.2, 400) // G4\n this.warmTone(now + 0.3, 0.45, 294, 0.15, 350) // D4\n }\n\n private playLonely(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Single isolated puff\n this.puff(now, 0.2, 700, 0.2)\n\n // Sparse, distant tone\n this.warmTone(now + 0.15, 0.5, 330, 0.12, 450) // E4\n }\n\n private playDisappointed(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Deflating puff\n this.puff(now, 0.25, 800, 0.25)\n\n // Falling tone\n this.tone(now + 0.08, 0.3, 523, 0.18, 'sine', 349) // C5 -> F4\n }\n\n private playMelancholic(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Wistful puff\n this.puff(now, 0.3, 700, 0.18)\n\n // Bittersweet tones\n this.warmTone(now + 0.1, 0.45, 440, 0.15, 500) // A4\n this.warmTone(now + 0.3, 0.5, 392, 0.12, 450) // G4\n }\n\n // ==========================================================================\n // ANXIOUS / FEARFUL FEELINGS\n // ==========================================================================\n\n private playAnxious(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Tight, quick puffs\n this.puff(now, 0.08, 1800, 0.2)\n this.puff(now + 0.12, 0.08, 1900, 0.22)\n\n // Uncertain wobble\n const osc = ctx.createOscillator()\n const gain = ctx.createGain()\n const lfo = ctx.createOscillator()\n const lfoGain = ctx.createGain()\n\n osc.frequency.value = 440\n lfo.frequency.value = 8\n lfoGain.gain.value = 20\n\n lfo.connect(lfoGain).connect(osc.frequency)\n\n gain.gain.setValueAtTime(0, now)\n gain.gain.linearRampToValueAtTime(this.volume * 0.15, now + 0.03)\n gain.gain.exponentialRampToValueAtTime(0.001, now + 0.25)\n\n osc.connect(gain).connect(ctx.destination)\n lfo.start(now)\n osc.start(now)\n osc.stop(now + 0.3)\n lfo.stop(now + 0.3)\n }\n\n private playWorried(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Hesitant puff\n this.puff(now, 0.15, 1200, 0.2)\n\n // Minor questioning tone\n this.tone(now + 0.05, 0.25, 349, 0.15, 'sine', 392) // F4 -> G4 (uncertain)\n }\n\n private playNervous(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Quick shallow puffs\n this.puff(now, 0.05, 2000, 0.18)\n this.puff(now + 0.08, 0.05, 2100, 0.18)\n this.puff(now + 0.15, 0.06, 2000, 0.16)\n\n // Trembling tone\n this.tone(now + 0.04, 0.2, 494, 0.12) // B4\n }\n\n private playStartled(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Quick sharp puff\n this.puff(now, 0.04, 3500, 0.3)\n\n // Quick high tone\n this.tone(now, 0.08, 1047, 0.25) // C6\n this.tone(now + 0.05, 0.15, 880, 0.15) // A5\n }\n\n // ==========================================================================\n // ANGRY / FRUSTRATED FEELINGS\n // ==========================================================================\n\n private playAnnoyed(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Short frustrated puff\n this.puff(now, 0.1, 1000, 0.25)\n\n // Low rumble\n this.warmTone(now + 0.03, 0.2, 294, 0.18, 400) // D4\n }\n\n private playFrustrated(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Tense puff\n this.puff(now, 0.12, 900, 0.28)\n\n // Blocked feeling\n this.tone(now + 0.04, 0.15, 349, 0.2) // F4\n this.tone(now + 0.12, 0.12, 330, 0.18) // E4\n }\n\n private playImpatient(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Quick tapping puffs\n this.puff(now, 0.04, 1500, 0.2)\n this.puff(now + 0.08, 0.04, 1500, 0.2)\n this.puff(now + 0.16, 0.04, 1500, 0.22)\n\n // Urgent tone\n this.tone(now + 0.06, 0.1, 523, 0.15)\n }\n\n // ==========================================================================\n // TIRED / DRAINED FEELINGS\n // ==========================================================================\n\n private playTired(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Heavy slow puff\n this.puff(now, 0.35, 500, 0.2)\n\n // Drooping tone\n this.warmTone(now + 0.1, 0.4, 330, 0.12, 350) // E4\n }\n\n private playExhausted(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Very slow, heavy exhale\n this.puff(now, 0.45, 400, 0.18)\n\n // Descending fade\n this.warmTone(now + 0.15, 0.5, 294, 0.1, 300) // D4\n }\n\n private playBored(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Flat sigh\n this.puff(now, 0.25, 600, 0.15)\n\n // Monotone\n this.warmTone(now + 0.1, 0.3, 349, 0.1, 400) // F4\n }\n\n // ==========================================================================\n // CALM / GROUNDED FEELINGS\n // ==========================================================================\n\n private playCalm(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Slow, peaceful puff\n this.puff(now, 0.3, 600, 0.12)\n\n // Sustained gentle tone\n this.warmTone(now + 0.1, 0.5, 392, 0.1, 500) // G4\n }\n\n private playRelaxed(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Long soft exhale\n this.puff(now, 0.35, 700, 0.15)\n\n // Gentle descending\n this.warmTone(now + 0.15, 0.45, 440, 0.1) // A4\n this.warmTone(now + 0.35, 0.5, 392, 0.08) // G4\n }\n\n private playGrounded(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Deep centered puff\n this.puff(now, 0.25, 500, 0.2)\n\n // Low stable tone\n this.warmTone(now + 0.1, 0.4, 262, 0.15, 350) // C4\n }\n\n private playSafe(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Soft enveloping puff\n this.puff(now, 0.3, 700, 0.15)\n\n // Warm embracing tones\n this.warmTone(now + 0.1, 0.4, 349, 0.12) // F4\n this.warmTone(now + 0.25, 0.45, 440, 0.1) // A4\n }\n\n // ==========================================================================\n // CONNECTED / SOCIAL FEELINGS\n // ==========================================================================\n\n private playConnected(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Warm shared breath\n this.puff(now, 0.2, 1200, 0.18)\n\n // Harmonious tones\n this.warmTone(now + 0.08, 0.3, 440, 0.15) // A4\n this.warmTone(now + 0.12, 0.32, 523, 0.12) // C5\n }\n\n private playAppreciated(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Touched puff\n this.puff(now, 0.15, 1500, 0.2)\n\n // Warm ascending\n this.warmTone(now + 0.05, 0.25, 440, 0.15)\n this.warmTone(now + 0.15, 0.3, 523, 0.18)\n }\n\n private playSupported(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Held puff\n this.puff(now, 0.25, 900, 0.18)\n\n // Stable harmonies\n this.warmTone(now + 0.1, 0.35, 349, 0.12)\n this.warmTone(now + 0.15, 0.4, 440, 0.1)\n }\n\n // ==========================================================================\n // MIXED / COMPLICATED FEELINGS\n // ==========================================================================\n\n private playNostalgic(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Wistful distant puff\n this.puff(now, 0.25, 800, 0.15)\n\n // Bittersweet memory tones\n this.warmTone(now + 0.1, 0.4, 440, 0.12, 500) // A4\n this.warmTone(now + 0.3, 0.45, 392, 0.1, 450) // G4\n }\n\n private playSurprised(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Quick gasp\n this.puff(now, 0.06, 2800, 0.25)\n\n // Rising tone\n this.tone(now + 0.02, 0.15, 659, 0.2, 'sine', 988) // E5 -> B5\n }\n\n private playAwestruck(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Wonder-filled breath\n this.puff(now, 0.2, 1500, 0.2)\n\n // Ascending wonder\n this.shimmer(now + 0.08, 0.4, 440, 0.15)\n }\n\n private playConfused(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Uncertain puff\n this.puff(now, 0.12, 1200, 0.18)\n\n // Questioning wobble\n this.tone(now + 0.04, 0.2, 440, 0.12, 'sine', 494) // A4 -> B4\n this.tone(now + 0.15, 0.15, 466, 0.1) // Bb4 (chromatic confusion)\n }\n\n // ==========================================================================\n // PUBLIC API\n // ==========================================================================\n\n /** Set volume (0.0 - 1.0) */\n setVolume(vol: number): void {\n this.volume = Math.max(0, Math.min(1, vol))\n }\n\n /** Get current volume */\n getVolume(): number {\n return this.volume\n }\n\n /** Mute all sounds */\n mute(): void {\n this.muted = true\n }\n\n /** Unmute sounds */\n unmute(): void {\n this.muted = false\n }\n\n /** Check if muted */\n isMuted(): boolean {\n return this.muted\n }\n\n /** Play a feeling */\n play(feeling: Feeling): void {\n if (this.muted) return\n\n // Map feelings to their sound methods\n const soundMap: Record<Feeling, () => void> = {\n // Happy\n joyful: () => this.playJoyful(),\n content: () => this.playContent(),\n excited: () => this.playExcited(),\n proud: () => this.playProud(),\n hopeful: () => this.playHopeful(),\n relieved: () => this.playRelieved(),\n grateful: () => this.playGrateful(),\n peaceful: () => this.playPeaceful(),\n playful: () => this.playPlayful(),\n amused: () => this.playAmused(),\n curious: () => this.playCurious(),\n inspired: () => this.playInspired(),\n confident: () => this.playConfident(),\n loved: () => this.playLoved(),\n comforted: () => this.playComforted(),\n energized: () => this.playEnergized(),\n celebrated: () => this.playCelebrated(),\n\n // Sad\n sad: () => this.playSad(),\n lonely: () => this.playLonely(),\n disappointed: () => this.playDisappointed(),\n heartbroken: () => this.playSad(), // Similar to sad\n grieving: () => this.playSad(),\n hopeless: () => this.playLonely(),\n empty: () => this.playLonely(),\n discouraged: () => this.playDisappointed(),\n melancholic: () => this.playMelancholic(),\n homesick: () => this.playNostalgic(),\n hurt: () => this.playSad(),\n miserable: () => this.playSad(),\n regretful: () => this.playMelancholic(),\n ashamed: () => this.playDisappointed(),\n inferior: () => this.playDisappointed(),\n\n // Anxious\n anxious: () => this.playAnxious(),\n worried: () => this.playWorried(),\n afraid: () => this.playAnxious(),\n terrified: () => this.playStartled(),\n panicked: () => this.playStartled(),\n nervous: () => this.playNervous(),\n uneasy: () => this.playWorried(),\n insecure: () => this.playNervous(),\n overwhelmed: () => this.playAnxious(),\n stressed: () => this.playAnxious(),\n tense: () => this.playAnxious(),\n apprehensive: () => this.playWorried(),\n startled: () => this.playStartled(),\n suspicious: () => this.playWorried(),\n vulnerable: () => this.playNervous(),\n\n // Angry\n annoyed: () => this.playAnnoyed(),\n irritated: () => this.playAnnoyed(),\n frustrated: () => this.playFrustrated(),\n angry: () => this.playFrustrated(),\n enraged: () => this.playFrustrated(),\n bitter: () => this.playFrustrated(),\n resentful: () => this.playAnnoyed(),\n jealous: () => this.playAnnoyed(),\n envious: () => this.playAnnoyed(),\n indignant: () => this.playFrustrated(),\n impatient: () => this.playImpatient(),\n hostile: () => this.playFrustrated(),\n contemptuous: () => this.playAnnoyed(),\n\n // Tired\n tired: () => this.playTired(),\n exhausted: () => this.playExhausted(),\n drained: () => this.playExhausted(),\n burnedOut: () => this.playExhausted(),\n numb: () => this.playExhausted(),\n bored: () => this.playBored(),\n unmotivated: () => this.playBored(),\n apathetic: () => this.playBored(),\n restless: () => this.playTired(),\n\n // Calm\n calm: () => this.playCalm(),\n relaxed: () => this.playRelaxed(),\n atEase: () => this.playRelaxed(),\n balanced: () => this.playCalm(),\n stable: () => this.playGrounded(),\n secure: () => this.playSafe(),\n safe: () => this.playSafe(),\n centered: () => this.playGrounded(),\n grounded: () => this.playGrounded(),\n accepting: () => this.playCalm(),\n\n // Connected\n connected: () => this.playConnected(),\n accepted: () => this.playAppreciated(),\n included: () => this.playConnected(),\n belonging: () => this.playConnected(),\n appreciated: () => this.playAppreciated(),\n valued: () => this.playAppreciated(),\n respected: () => this.playAppreciated(),\n supported: () => this.playSupported(),\n protective: () => this.playSupported(),\n compassionate: () => this.playConnected(),\n empathetic: () => this.playConnected(),\n\n // Mixed\n conflicted: () => this.playConfused(),\n confused: () => this.playConfused(),\n ambivalent: () => this.playConfused(),\n nostalgic: () => this.playNostalgic(),\n guilty: () => this.playDisappointed(),\n embarrassed: () => this.playNervous(),\n surprised: () => this.playSurprised(),\n shocked: () => this.playStartled(),\n awestruck: () => this.playAwestruck(),\n skeptical: () => this.playConfused(),\n }\n\n const playFn = soundMap[feeling]\n if (playFn) {\n playFn()\n }\n }\n\n /** Dispose audio context */\n dispose(): void {\n if (this.audioContext) {\n this.audioContext.close()\n this.audioContext = null\n }\n }\n}\n\n// ============================================================================\n// SINGLETON EXPORT\n// ============================================================================\n\n/** Global emotional sound player */\nexport const $sounds = new EmotionalSoundGenerator()\n"],"mappings":"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"}
@@ -1 +1 @@
1
- require(`./sound.service-G_8GV_6L.cjs`);var e=class{constructor(){this.audioContext=null,this.volume=.15,this.muted=!1}getContext(){if(!this.audioContext){let e=window.AudioContext||window.webkitAudioContext;this.audioContext=new e}return this.audioContext.state===`suspended`&&this.audioContext.resume(),this.audioContext}puff(e,t,n,r){let i=this.getContext(),a=Math.floor(i.sampleRate*t),o=i.createBuffer(1,a,i.sampleRate),s=o.getChannelData(0);for(let e=0;e<a;e++)s[e]=2*Math.random()-1;let c=i.createBufferSource();c.buffer=o;let l=i.createBiquadFilter();l.type=`bandpass`,l.frequency.value=n,l.Q.value=.7;let u=i.createGain();u.gain.setValueAtTime(0,e),u.gain.linearRampToValueAtTime(r*this.volume,e+.015),u.gain.exponentialRampToValueAtTime(.001,e+t),c.connect(l).connect(u).connect(i.destination),c.start(e),c.stop(e+t)}tone(e,t,n,r,i=`sine`,a){let o=this.getContext(),s=o.createOscillator(),c=o.createGain();s.type=i,s.frequency.setValueAtTime(n,e),a&&s.frequency.exponentialRampToValueAtTime(a,e+.8*t),c.gain.setValueAtTime(0,e),c.gain.linearRampToValueAtTime(r*this.volume,e+.02),c.gain.exponentialRampToValueAtTime(.001,e+t),s.connect(c).connect(o.destination),s.start(e),s.stop(e+t)}warmTone(e,t,n,r,i=800){let a=this.getContext(),o=a.createOscillator(),s=a.createBiquadFilter(),c=a.createGain();o.type=`sine`,o.frequency.value=n,s.type=`lowpass`,s.frequency.value=i,c.gain.setValueAtTime(0,e),c.gain.linearRampToValueAtTime(r*this.volume,e+.03),c.gain.exponentialRampToValueAtTime(.001,e+t),o.connect(s).connect(c).connect(a.destination),o.start(e),o.stop(e+t)}shimmer(e,t,n,r){[n,1.5*n,2*n].forEach((n,i)=>{this.tone(e+.02*i,t-.02*i,n,r*(1-.2*i))})}playJoyful(){let e=this.getContext().currentTime;this.puff(e,.08,3e3,.3),this.puff(e+.06,.1,3500,.35),this.tone(e+.02,.15,784,.25),this.tone(e+.1,.2,988,.3),this.tone(e+.18,.25,1175,.25)}playContent(){let e=this.getContext().currentTime;this.puff(e,.2,1500,.25),this.warmTone(e+.05,.3,523,.2),this.warmTone(e+.15,.35,659,.15)}playExcited(){let e=this.getContext().currentTime;this.puff(e,.06,2500,.25),this.puff(e+.05,.06,3e3,.3),this.puff(e+.1,.08,3500,.35),this.tone(e+.02,.12,880,.2),this.tone(e+.08,.12,1047,.25),this.tone(e+.14,.15,1319,.3)}playProud(){let e=this.getContext().currentTime;this.puff(e,.15,1800,.3),this.tone(e+.05,.25,523,.25),this.tone(e+.08,.25,659,.2),this.tone(e+.11,.3,784,.25)}playHopeful(){let e=this.getContext().currentTime;this.puff(e,.12,2200,.2),this.tone(e+.03,.3,659,.2,`sine`,880)}playRelieved(){let e=this.getContext().currentTime;this.puff(e,.25,1200,.35),this.warmTone(e+.1,.35,659,.2),this.warmTone(e+.25,.4,523,.15)}playGrateful(){let e=this.getContext().currentTime;this.puff(e,.15,1500,.25),this.warmTone(e+.05,.3,440,.2),this.warmTone(e+.15,.35,523,.2),this.warmTone(e+.25,.4,659,.15)}playPeaceful(){let e=this.getContext().currentTime;this.puff(e,.3,800,.15),this.warmTone(e+.1,.5,392,.12,500)}playPlayful(){let e=this.getContext().currentTime;this.puff(e,.05,2800,.2),this.puff(e+.08,.05,3200,.25),this.puff(e+.14,.06,2800,.2),this.tone(e+.03,.1,784,.2),this.tone(e+.1,.08,988,.25),this.tone(e+.16,.12,784,.2)}playAmused(){let e=this.getContext().currentTime;this.puff(e,.04,2500,.2),this.puff(e+.06,.04,2800,.22),this.puff(e+.11,.05,2600,.18),this.tone(e+.05,.15,880,.15)}playCurious(){let e=this.getContext().currentTime;this.puff(e,.1,2e3,.2),this.tone(e+.03,.2,659,.2,`sine`,880)}playInspired(){let e=this.getContext().currentTime;this.puff(e,.1,2500,.25),this.shimmer(e+.05,.3,523,.2)}playConfident(){let e=this.getContext().currentTime;this.puff(e,.12,1500,.3),this.tone(e+.04,.2,523,.25),this.tone(e+.06,.22,659,.2)}playLoved(){let e=this.getContext().currentTime;this.puff(e,.2,1e3,.2),this.warmTone(e+.08,.4,392,.18,600),this.warmTone(e+.2,.45,494,.15,600)}playComforted(){let e=this.getContext().currentTime;this.puff(e,.25,900,.18),this.warmTone(e+.1,.35,523,.15),this.warmTone(e+.25,.4,440,.12)}playEnergized(){let e=this.getContext().currentTime;this.puff(e,.05,3e3,.25),this.puff(e+.04,.05,3500,.28),this.tone(e+.02,.1,784,.2),this.tone(e+.08,.12,988,.25),this.tone(e+.14,.15,1175,.22)}playCelebrated(){let e=this.getContext().currentTime;this.puff(e,.08,2500,.2),this.tone(e+.02,.18,523,.22),this.tone(e+.08,.18,659,.24),this.tone(e+.14,.2,784,.26),this.tone(e+.22,.3,1047,.22),this.shimmer(e+.25,.35,523,.12)}playSad(){let e=this.getContext().currentTime;this.puff(e,.3,600,.25),this.warmTone(e+.1,.4,392,.2,400),this.warmTone(e+.3,.45,294,.15,350)}playLonely(){let e=this.getContext().currentTime;this.puff(e,.2,700,.2),this.warmTone(e+.15,.5,330,.12,450)}playDisappointed(){let e=this.getContext().currentTime;this.puff(e,.25,800,.25),this.tone(e+.08,.3,523,.18,`sine`,349)}playMelancholic(){let e=this.getContext().currentTime;this.puff(e,.3,700,.18),this.warmTone(e+.1,.45,440,.15,500),this.warmTone(e+.3,.5,392,.12,450)}playAnxious(){let e=this.getContext(),t=e.currentTime;this.puff(t,.08,1800,.2),this.puff(t+.12,.08,1900,.22);let n=e.createOscillator(),r=e.createGain(),i=e.createOscillator(),a=e.createGain();n.frequency.value=440,i.frequency.value=8,a.gain.value=20,i.connect(a).connect(n.frequency),r.gain.setValueAtTime(0,t),r.gain.linearRampToValueAtTime(.15*this.volume,t+.03),r.gain.exponentialRampToValueAtTime(.001,t+.25),n.connect(r).connect(e.destination),i.start(t),n.start(t),n.stop(t+.3),i.stop(t+.3)}playWorried(){let e=this.getContext().currentTime;this.puff(e,.15,1200,.2),this.tone(e+.05,.25,349,.15,`sine`,392)}playNervous(){let e=this.getContext().currentTime;this.puff(e,.05,2e3,.18),this.puff(e+.08,.05,2100,.18),this.puff(e+.15,.06,2e3,.16),this.tone(e+.04,.2,494,.12)}playStartled(){let e=this.getContext().currentTime;this.puff(e,.04,3500,.3),this.tone(e,.08,1047,.25),this.tone(e+.05,.15,880,.15)}playAnnoyed(){let e=this.getContext().currentTime;this.puff(e,.1,1e3,.25),this.warmTone(e+.03,.2,294,.18,400)}playFrustrated(){let e=this.getContext().currentTime;this.puff(e,.12,900,.28),this.tone(e+.04,.15,349,.2),this.tone(e+.12,.12,330,.18)}playImpatient(){let e=this.getContext().currentTime;this.puff(e,.04,1500,.2),this.puff(e+.08,.04,1500,.2),this.puff(e+.16,.04,1500,.22),this.tone(e+.06,.1,523,.15)}playTired(){let e=this.getContext().currentTime;this.puff(e,.35,500,.2),this.warmTone(e+.1,.4,330,.12,350)}playExhausted(){let e=this.getContext().currentTime;this.puff(e,.45,400,.18),this.warmTone(e+.15,.5,294,.1,300)}playBored(){let e=this.getContext().currentTime;this.puff(e,.25,600,.15),this.warmTone(e+.1,.3,349,.1,400)}playCalm(){let e=this.getContext().currentTime;this.puff(e,.3,600,.12),this.warmTone(e+.1,.5,392,.1,500)}playRelaxed(){let e=this.getContext().currentTime;this.puff(e,.35,700,.15),this.warmTone(e+.15,.45,440,.1),this.warmTone(e+.35,.5,392,.08)}playGrounded(){let e=this.getContext().currentTime;this.puff(e,.25,500,.2),this.warmTone(e+.1,.4,262,.15,350)}playSafe(){let e=this.getContext().currentTime;this.puff(e,.3,700,.15),this.warmTone(e+.1,.4,349,.12),this.warmTone(e+.25,.45,440,.1)}playConnected(){let e=this.getContext().currentTime;this.puff(e,.2,1200,.18),this.warmTone(e+.08,.3,440,.15),this.warmTone(e+.12,.32,523,.12)}playAppreciated(){let e=this.getContext().currentTime;this.puff(e,.15,1500,.2),this.warmTone(e+.05,.25,440,.15),this.warmTone(e+.15,.3,523,.18)}playSupported(){let e=this.getContext().currentTime;this.puff(e,.25,900,.18),this.warmTone(e+.1,.35,349,.12),this.warmTone(e+.15,.4,440,.1)}playNostalgic(){let e=this.getContext().currentTime;this.puff(e,.25,800,.15),this.warmTone(e+.1,.4,440,.12,500),this.warmTone(e+.3,.45,392,.1,450)}playSurprised(){let e=this.getContext().currentTime;this.puff(e,.06,2800,.25),this.tone(e+.02,.15,659,.2,`sine`,988)}playAwestruck(){let e=this.getContext().currentTime;this.puff(e,.2,1500,.2),this.shimmer(e+.08,.4,440,.15)}playConfused(){let e=this.getContext().currentTime;this.puff(e,.12,1200,.18),this.tone(e+.04,.2,440,.12,`sine`,494),this.tone(e+.15,.15,466,.1)}setVolume(e){this.volume=Math.max(0,Math.min(1,e))}getVolume(){return this.volume}mute(){this.muted=!0}unmute(){this.muted=!1}isMuted(){return this.muted}play(e){if(this.muted)return;let t={joyful:()=>this.playJoyful(),content:()=>this.playContent(),excited:()=>this.playExcited(),proud:()=>this.playProud(),hopeful:()=>this.playHopeful(),relieved:()=>this.playRelieved(),grateful:()=>this.playGrateful(),peaceful:()=>this.playPeaceful(),playful:()=>this.playPlayful(),amused:()=>this.playAmused(),curious:()=>this.playCurious(),inspired:()=>this.playInspired(),confident:()=>this.playConfident(),loved:()=>this.playLoved(),comforted:()=>this.playComforted(),energized:()=>this.playEnergized(),celebrated:()=>this.playCelebrated(),sad:()=>this.playSad(),lonely:()=>this.playLonely(),disappointed:()=>this.playDisappointed(),heartbroken:()=>this.playSad(),grieving:()=>this.playSad(),hopeless:()=>this.playLonely(),empty:()=>this.playLonely(),discouraged:()=>this.playDisappointed(),melancholic:()=>this.playMelancholic(),homesick:()=>this.playNostalgic(),hurt:()=>this.playSad(),miserable:()=>this.playSad(),regretful:()=>this.playMelancholic(),ashamed:()=>this.playDisappointed(),inferior:()=>this.playDisappointed(),anxious:()=>this.playAnxious(),worried:()=>this.playWorried(),afraid:()=>this.playAnxious(),terrified:()=>this.playStartled(),panicked:()=>this.playStartled(),nervous:()=>this.playNervous(),uneasy:()=>this.playWorried(),insecure:()=>this.playNervous(),overwhelmed:()=>this.playAnxious(),stressed:()=>this.playAnxious(),tense:()=>this.playAnxious(),apprehensive:()=>this.playWorried(),startled:()=>this.playStartled(),suspicious:()=>this.playWorried(),vulnerable:()=>this.playNervous(),annoyed:()=>this.playAnnoyed(),irritated:()=>this.playAnnoyed(),frustrated:()=>this.playFrustrated(),angry:()=>this.playFrustrated(),enraged:()=>this.playFrustrated(),bitter:()=>this.playFrustrated(),resentful:()=>this.playAnnoyed(),jealous:()=>this.playAnnoyed(),envious:()=>this.playAnnoyed(),indignant:()=>this.playFrustrated(),impatient:()=>this.playImpatient(),hostile:()=>this.playFrustrated(),contemptuous:()=>this.playAnnoyed(),tired:()=>this.playTired(),exhausted:()=>this.playExhausted(),drained:()=>this.playExhausted(),burnedOut:()=>this.playExhausted(),numb:()=>this.playExhausted(),bored:()=>this.playBored(),unmotivated:()=>this.playBored(),apathetic:()=>this.playBored(),restless:()=>this.playTired(),calm:()=>this.playCalm(),relaxed:()=>this.playRelaxed(),atEase:()=>this.playRelaxed(),balanced:()=>this.playCalm(),stable:()=>this.playGrounded(),secure:()=>this.playSafe(),safe:()=>this.playSafe(),centered:()=>this.playGrounded(),grounded:()=>this.playGrounded(),accepting:()=>this.playCalm(),connected:()=>this.playConnected(),accepted:()=>this.playAppreciated(),included:()=>this.playConnected(),belonging:()=>this.playConnected(),appreciated:()=>this.playAppreciated(),valued:()=>this.playAppreciated(),respected:()=>this.playAppreciated(),supported:()=>this.playSupported(),protective:()=>this.playSupported(),compassionate:()=>this.playConnected(),empathetic:()=>this.playConnected(),conflicted:()=>this.playConfused(),confused:()=>this.playConfused(),ambivalent:()=>this.playConfused(),nostalgic:()=>this.playNostalgic(),guilty:()=>this.playDisappointed(),embarrassed:()=>this.playNervous(),surprised:()=>this.playSurprised(),shocked:()=>this.playStartled(),awestruck:()=>this.playAwestruck(),skeptical:()=>this.playConfused()}[e];t&&t()}dispose(){this.audioContext&&=(this.audioContext.close(),null)}},t=new e;Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return e}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return t}});
1
+ require(`./sound.service-D2GGaBXc.cjs`);var e=class{constructor(){this.audioContext=null,this.volume=.15,this.muted=!1}getContext(){if(!this.audioContext){let e=window.AudioContext||window.webkitAudioContext;this.audioContext=new e}return this.audioContext.state===`suspended`&&this.audioContext.resume(),this.audioContext}puff(e,t,n,r){let i=this.getContext(),a=Math.floor(i.sampleRate*t),o=i.createBuffer(1,a,i.sampleRate),s=o.getChannelData(0);for(let e=0;e<a;e++)s[e]=2*Math.random()-1;let c=i.createBufferSource();c.buffer=o;let l=i.createBiquadFilter();l.type=`bandpass`,l.frequency.value=n,l.Q.value=.7;let u=i.createGain();u.gain.setValueAtTime(0,e),u.gain.linearRampToValueAtTime(r*this.volume,e+.015),u.gain.exponentialRampToValueAtTime(.001,e+t),c.connect(l).connect(u).connect(i.destination),c.start(e),c.stop(e+t)}tone(e,t,n,r,i=`sine`,a){let o=this.getContext(),s=o.createOscillator(),c=o.createGain();s.type=i,s.frequency.setValueAtTime(n,e),a&&s.frequency.exponentialRampToValueAtTime(a,e+.8*t),c.gain.setValueAtTime(0,e),c.gain.linearRampToValueAtTime(r*this.volume,e+.02),c.gain.exponentialRampToValueAtTime(.001,e+t),s.connect(c).connect(o.destination),s.start(e),s.stop(e+t)}warmTone(e,t,n,r,i=800){let a=this.getContext(),o=a.createOscillator(),s=a.createBiquadFilter(),c=a.createGain();o.type=`sine`,o.frequency.value=n,s.type=`lowpass`,s.frequency.value=i,c.gain.setValueAtTime(0,e),c.gain.linearRampToValueAtTime(r*this.volume,e+.03),c.gain.exponentialRampToValueAtTime(.001,e+t),o.connect(s).connect(c).connect(a.destination),o.start(e),o.stop(e+t)}shimmer(e,t,n,r){[n,1.5*n,2*n].forEach((n,i)=>{this.tone(e+.02*i,t-.02*i,n,r*(1-.2*i))})}playJoyful(){let e=this.getContext().currentTime;this.puff(e,.08,3e3,.3),this.puff(e+.06,.1,3500,.35),this.tone(e+.02,.15,784,.25),this.tone(e+.1,.2,988,.3),this.tone(e+.18,.25,1175,.25)}playContent(){let e=this.getContext().currentTime;this.puff(e,.2,1500,.25),this.warmTone(e+.05,.3,523,.2),this.warmTone(e+.15,.35,659,.15)}playExcited(){let e=this.getContext().currentTime;this.puff(e,.06,2500,.25),this.puff(e+.05,.06,3e3,.3),this.puff(e+.1,.08,3500,.35),this.tone(e+.02,.12,880,.2),this.tone(e+.08,.12,1047,.25),this.tone(e+.14,.15,1319,.3)}playProud(){let e=this.getContext().currentTime;this.puff(e,.15,1800,.3),this.tone(e+.05,.25,523,.25),this.tone(e+.08,.25,659,.2),this.tone(e+.11,.3,784,.25)}playHopeful(){let e=this.getContext().currentTime;this.puff(e,.12,2200,.2),this.tone(e+.03,.3,659,.2,`sine`,880)}playRelieved(){let e=this.getContext().currentTime;this.puff(e,.25,1200,.35),this.warmTone(e+.1,.35,659,.2),this.warmTone(e+.25,.4,523,.15)}playGrateful(){let e=this.getContext().currentTime;this.puff(e,.15,1500,.25),this.warmTone(e+.05,.3,440,.2),this.warmTone(e+.15,.35,523,.2),this.warmTone(e+.25,.4,659,.15)}playPeaceful(){let e=this.getContext().currentTime;this.puff(e,.3,800,.15),this.warmTone(e+.1,.5,392,.12,500)}playPlayful(){let e=this.getContext().currentTime;this.puff(e,.05,2800,.2),this.puff(e+.08,.05,3200,.25),this.puff(e+.14,.06,2800,.2),this.tone(e+.03,.1,784,.2),this.tone(e+.1,.08,988,.25),this.tone(e+.16,.12,784,.2)}playAmused(){let e=this.getContext().currentTime;this.puff(e,.04,2500,.2),this.puff(e+.06,.04,2800,.22),this.puff(e+.11,.05,2600,.18),this.tone(e+.05,.15,880,.15)}playCurious(){let e=this.getContext().currentTime;this.puff(e,.1,2e3,.2),this.tone(e+.03,.2,659,.2,`sine`,880)}playInspired(){let e=this.getContext().currentTime;this.puff(e,.1,2500,.25),this.shimmer(e+.05,.3,523,.2)}playConfident(){let e=this.getContext().currentTime;this.puff(e,.12,1500,.3),this.tone(e+.04,.2,523,.25),this.tone(e+.06,.22,659,.2)}playLoved(){let e=this.getContext().currentTime;this.puff(e,.2,1e3,.2),this.warmTone(e+.08,.4,392,.18,600),this.warmTone(e+.2,.45,494,.15,600)}playComforted(){let e=this.getContext().currentTime;this.puff(e,.25,900,.18),this.warmTone(e+.1,.35,523,.15),this.warmTone(e+.25,.4,440,.12)}playEnergized(){let e=this.getContext().currentTime;this.puff(e,.05,3e3,.25),this.puff(e+.04,.05,3500,.28),this.tone(e+.02,.1,784,.2),this.tone(e+.08,.12,988,.25),this.tone(e+.14,.15,1175,.22)}playCelebrated(){let e=this.getContext().currentTime;this.puff(e,.08,2500,.2),this.tone(e+.02,.18,523,.22),this.tone(e+.08,.18,659,.24),this.tone(e+.14,.2,784,.26),this.tone(e+.22,.3,1047,.22),this.shimmer(e+.25,.35,523,.12)}playSad(){let e=this.getContext().currentTime;this.puff(e,.3,600,.25),this.warmTone(e+.1,.4,392,.2,400),this.warmTone(e+.3,.45,294,.15,350)}playLonely(){let e=this.getContext().currentTime;this.puff(e,.2,700,.2),this.warmTone(e+.15,.5,330,.12,450)}playDisappointed(){let e=this.getContext().currentTime;this.puff(e,.25,800,.25),this.tone(e+.08,.3,523,.18,`sine`,349)}playMelancholic(){let e=this.getContext().currentTime;this.puff(e,.3,700,.18),this.warmTone(e+.1,.45,440,.15,500),this.warmTone(e+.3,.5,392,.12,450)}playAnxious(){let e=this.getContext(),t=e.currentTime;this.puff(t,.08,1800,.2),this.puff(t+.12,.08,1900,.22);let n=e.createOscillator(),r=e.createGain(),i=e.createOscillator(),a=e.createGain();n.frequency.value=440,i.frequency.value=8,a.gain.value=20,i.connect(a).connect(n.frequency),r.gain.setValueAtTime(0,t),r.gain.linearRampToValueAtTime(.15*this.volume,t+.03),r.gain.exponentialRampToValueAtTime(.001,t+.25),n.connect(r).connect(e.destination),i.start(t),n.start(t),n.stop(t+.3),i.stop(t+.3)}playWorried(){let e=this.getContext().currentTime;this.puff(e,.15,1200,.2),this.tone(e+.05,.25,349,.15,`sine`,392)}playNervous(){let e=this.getContext().currentTime;this.puff(e,.05,2e3,.18),this.puff(e+.08,.05,2100,.18),this.puff(e+.15,.06,2e3,.16),this.tone(e+.04,.2,494,.12)}playStartled(){let e=this.getContext().currentTime;this.puff(e,.04,3500,.3),this.tone(e,.08,1047,.25),this.tone(e+.05,.15,880,.15)}playAnnoyed(){let e=this.getContext().currentTime;this.puff(e,.1,1e3,.25),this.warmTone(e+.03,.2,294,.18,400)}playFrustrated(){let e=this.getContext().currentTime;this.puff(e,.12,900,.28),this.tone(e+.04,.15,349,.2),this.tone(e+.12,.12,330,.18)}playImpatient(){let e=this.getContext().currentTime;this.puff(e,.04,1500,.2),this.puff(e+.08,.04,1500,.2),this.puff(e+.16,.04,1500,.22),this.tone(e+.06,.1,523,.15)}playTired(){let e=this.getContext().currentTime;this.puff(e,.35,500,.2),this.warmTone(e+.1,.4,330,.12,350)}playExhausted(){let e=this.getContext().currentTime;this.puff(e,.45,400,.18),this.warmTone(e+.15,.5,294,.1,300)}playBored(){let e=this.getContext().currentTime;this.puff(e,.25,600,.15),this.warmTone(e+.1,.3,349,.1,400)}playCalm(){let e=this.getContext().currentTime;this.puff(e,.3,600,.12),this.warmTone(e+.1,.5,392,.1,500)}playRelaxed(){let e=this.getContext().currentTime;this.puff(e,.35,700,.15),this.warmTone(e+.15,.45,440,.1),this.warmTone(e+.35,.5,392,.08)}playGrounded(){let e=this.getContext().currentTime;this.puff(e,.25,500,.2),this.warmTone(e+.1,.4,262,.15,350)}playSafe(){let e=this.getContext().currentTime;this.puff(e,.3,700,.15),this.warmTone(e+.1,.4,349,.12),this.warmTone(e+.25,.45,440,.1)}playConnected(){let e=this.getContext().currentTime;this.puff(e,.2,1200,.18),this.warmTone(e+.08,.3,440,.15),this.warmTone(e+.12,.32,523,.12)}playAppreciated(){let e=this.getContext().currentTime;this.puff(e,.15,1500,.2),this.warmTone(e+.05,.25,440,.15),this.warmTone(e+.15,.3,523,.18)}playSupported(){let e=this.getContext().currentTime;this.puff(e,.25,900,.18),this.warmTone(e+.1,.35,349,.12),this.warmTone(e+.15,.4,440,.1)}playNostalgic(){let e=this.getContext().currentTime;this.puff(e,.25,800,.15),this.warmTone(e+.1,.4,440,.12,500),this.warmTone(e+.3,.45,392,.1,450)}playSurprised(){let e=this.getContext().currentTime;this.puff(e,.06,2800,.25),this.tone(e+.02,.15,659,.2,`sine`,988)}playAwestruck(){let e=this.getContext().currentTime;this.puff(e,.2,1500,.2),this.shimmer(e+.08,.4,440,.15)}playConfused(){let e=this.getContext().currentTime;this.puff(e,.12,1200,.18),this.tone(e+.04,.2,440,.12,`sine`,494),this.tone(e+.15,.15,466,.1)}setVolume(e){this.volume=Math.max(0,Math.min(1,e))}getVolume(){return this.volume}mute(){this.muted=!0}unmute(){this.muted=!1}isMuted(){return this.muted}play(e){if(this.muted)return;let t={joyful:()=>this.playJoyful(),content:()=>this.playContent(),excited:()=>this.playExcited(),proud:()=>this.playProud(),hopeful:()=>this.playHopeful(),relieved:()=>this.playRelieved(),grateful:()=>this.playGrateful(),peaceful:()=>this.playPeaceful(),playful:()=>this.playPlayful(),amused:()=>this.playAmused(),curious:()=>this.playCurious(),inspired:()=>this.playInspired(),confident:()=>this.playConfident(),loved:()=>this.playLoved(),comforted:()=>this.playComforted(),energized:()=>this.playEnergized(),celebrated:()=>this.playCelebrated(),sad:()=>this.playSad(),lonely:()=>this.playLonely(),disappointed:()=>this.playDisappointed(),heartbroken:()=>this.playSad(),grieving:()=>this.playSad(),hopeless:()=>this.playLonely(),empty:()=>this.playLonely(),discouraged:()=>this.playDisappointed(),melancholic:()=>this.playMelancholic(),homesick:()=>this.playNostalgic(),hurt:()=>this.playSad(),miserable:()=>this.playSad(),regretful:()=>this.playMelancholic(),ashamed:()=>this.playDisappointed(),inferior:()=>this.playDisappointed(),anxious:()=>this.playAnxious(),worried:()=>this.playWorried(),afraid:()=>this.playAnxious(),terrified:()=>this.playStartled(),panicked:()=>this.playStartled(),nervous:()=>this.playNervous(),uneasy:()=>this.playWorried(),insecure:()=>this.playNervous(),overwhelmed:()=>this.playAnxious(),stressed:()=>this.playAnxious(),tense:()=>this.playAnxious(),apprehensive:()=>this.playWorried(),startled:()=>this.playStartled(),suspicious:()=>this.playWorried(),vulnerable:()=>this.playNervous(),annoyed:()=>this.playAnnoyed(),irritated:()=>this.playAnnoyed(),frustrated:()=>this.playFrustrated(),angry:()=>this.playFrustrated(),enraged:()=>this.playFrustrated(),bitter:()=>this.playFrustrated(),resentful:()=>this.playAnnoyed(),jealous:()=>this.playAnnoyed(),envious:()=>this.playAnnoyed(),indignant:()=>this.playFrustrated(),impatient:()=>this.playImpatient(),hostile:()=>this.playFrustrated(),contemptuous:()=>this.playAnnoyed(),tired:()=>this.playTired(),exhausted:()=>this.playExhausted(),drained:()=>this.playExhausted(),burnedOut:()=>this.playExhausted(),numb:()=>this.playExhausted(),bored:()=>this.playBored(),unmotivated:()=>this.playBored(),apathetic:()=>this.playBored(),restless:()=>this.playTired(),calm:()=>this.playCalm(),relaxed:()=>this.playRelaxed(),atEase:()=>this.playRelaxed(),balanced:()=>this.playCalm(),stable:()=>this.playGrounded(),secure:()=>this.playSafe(),safe:()=>this.playSafe(),centered:()=>this.playGrounded(),grounded:()=>this.playGrounded(),accepting:()=>this.playCalm(),connected:()=>this.playConnected(),accepted:()=>this.playAppreciated(),included:()=>this.playConnected(),belonging:()=>this.playConnected(),appreciated:()=>this.playAppreciated(),valued:()=>this.playAppreciated(),respected:()=>this.playAppreciated(),supported:()=>this.playSupported(),protective:()=>this.playSupported(),compassionate:()=>this.playConnected(),empathetic:()=>this.playConnected(),conflicted:()=>this.playConfused(),confused:()=>this.playConfused(),ambivalent:()=>this.playConfused(),nostalgic:()=>this.playNostalgic(),guilty:()=>this.playDisappointed(),embarrassed:()=>this.playNervous(),surprised:()=>this.playSurprised(),shocked:()=>this.playStartled(),awestruck:()=>this.playAwestruck(),skeptical:()=>this.playConfused()}[e];t&&t()}dispose(){this.audioContext&&=(this.audioContext.close(),null)}},t=new e;Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return e}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return t}});
@@ -1 +1 @@
1
- {"version":3,"file":"audio-B_jT9Xr7.cjs","names":[],"sources":["../src/audio/emotional-sounds.ts"],"sourcesContent":["/**\n * Schmancy Emotional Sound Library\n *\n * A curated collection of soft, elegant sounds organized by emotional categories.\n * Each sound is designed to be non-intrusive, emotionally evocative, and beautiful.\n *\n * Inspired by the gentle sounds of nature - soft air, gentle chimes, and warm tones.\n *\n * @example\n * ```typescript\n * import { $sounds } from '@schmancy/audio'\n *\n * // Play a feeling\n * $sounds.play('joyful')\n * $sounds.play('relieved')\n * $sounds.play('curious')\n *\n * // Adjust volume\n * $sounds.setVolume(0.2)\n *\n * // Mute/unmute\n * $sounds.mute()\n * $sounds.unmute()\n * ```\n */\n\n// ============================================================================\n// TYPES\n// ============================================================================\n\n/** Happy / Pleasant feelings */\nexport type HappyFeeling =\n | 'joyful' | 'content' | 'excited' | 'proud' | 'hopeful'\n | 'relieved' | 'grateful' | 'peaceful' | 'playful' | 'amused'\n | 'curious' | 'inspired' | 'confident' | 'loved' | 'comforted' | 'energized'\n | 'celebrated'\n\n/** Sad / Low feelings */\nexport type SadFeeling =\n | 'sad' | 'lonely' | 'disappointed' | 'heartbroken' | 'grieving'\n | 'hopeless' | 'empty' | 'discouraged' | 'melancholic' | 'homesick'\n | 'hurt' | 'miserable' | 'regretful' | 'ashamed' | 'inferior'\n\n/** Anxious / Fearful feelings */\nexport type AnxiousFeeling =\n | 'anxious' | 'worried' | 'afraid' | 'terrified' | 'panicked'\n | 'nervous' | 'uneasy' | 'insecure' | 'overwhelmed' | 'stressed'\n | 'tense' | 'apprehensive' | 'startled' | 'suspicious' | 'vulnerable'\n\n/** Angry / Frustrated feelings */\nexport type AngryFeeling =\n | 'annoyed' | 'irritated' | 'frustrated' | 'angry' | 'enraged'\n | 'bitter' | 'resentful' | 'jealous' | 'envious' | 'indignant'\n | 'impatient' | 'hostile' | 'contemptuous'\n\n/** Tired / Drained feelings */\nexport type TiredFeeling =\n | 'tired' | 'exhausted' | 'drained' | 'burnedOut' | 'numb'\n | 'bored' | 'unmotivated' | 'apathetic' | 'restless'\n\n/** Calm / Grounded feelings */\nexport type CalmFeeling =\n | 'calm' | 'relaxed' | 'atEase' | 'balanced' | 'stable'\n | 'secure' | 'safe' | 'centered' | 'grounded' | 'accepting'\n\n/** Connected / Social feelings */\nexport type ConnectedFeeling =\n | 'connected' | 'accepted' | 'included' | 'belonging' | 'appreciated'\n | 'valued' | 'respected' | 'supported' | 'protective' | 'compassionate' | 'empathetic'\n\n/** Mixed / Complicated feelings */\nexport type MixedFeeling =\n | 'conflicted' | 'confused' | 'ambivalent' | 'nostalgic' | 'guilty'\n | 'embarrassed' | 'surprised' | 'shocked' | 'awestruck' | 'skeptical'\n\n/** All feelings */\nexport type Feeling =\n | HappyFeeling | SadFeeling | AnxiousFeeling | AngryFeeling\n | TiredFeeling | CalmFeeling | ConnectedFeeling | MixedFeeling\n\n// FeelingCategory is defined in ../types/mood-audio.types.ts and re-exported\n// from ./index.ts — the canonical source.\n\n// ============================================================================\n// SOUND GENERATOR\n// ============================================================================\n\n/**\n * Emotional Sound Generator\n * Creates soft, beautiful sounds using Web Audio API\n */\nexport class EmotionalSoundGenerator {\n private audioContext: AudioContext | null = null\n private volume = 0.15\n private muted = false\n\n private getContext(): AudioContext {\n if (!this.audioContext) {\n const AudioContextClass = window.AudioContext || (window as any).webkitAudioContext\n this.audioContext = new AudioContextClass()\n }\n // Resume if suspended (autoplay policy)\n if (this.audioContext.state === 'suspended') {\n this.audioContext.resume()\n }\n return this.audioContext\n }\n\n // ==========================================================================\n // CORE SOUND PRIMITIVES\n // ==========================================================================\n\n /** Soft air puff - the foundation of our sound palette */\n private puff(startTime: number, duration: number, freq: number, vol: number): void {\n const ctx = this.getContext()\n const bufferSize = Math.floor(ctx.sampleRate * duration)\n const buffer = ctx.createBuffer(1, bufferSize, ctx.sampleRate)\n const data = buffer.getChannelData(0)\n\n for (let i = 0; i < bufferSize; i++) {\n data[i] = Math.random() * 2 - 1\n }\n\n const noise = ctx.createBufferSource()\n noise.buffer = buffer\n\n const filter = ctx.createBiquadFilter()\n filter.type = 'bandpass'\n filter.frequency.value = freq\n filter.Q.value = 0.7\n\n const gain = ctx.createGain()\n gain.gain.setValueAtTime(0, startTime)\n gain.gain.linearRampToValueAtTime(vol * this.volume, startTime + 0.015)\n gain.gain.exponentialRampToValueAtTime(0.001, startTime + duration)\n\n noise.connect(filter).connect(gain).connect(ctx.destination)\n noise.start(startTime)\n noise.stop(startTime + duration)\n }\n\n /** Gentle tone with envelope */\n private tone(\n startTime: number,\n duration: number,\n freq: number,\n vol: number,\n type: OscillatorType = 'sine',\n freqEnd?: number\n ): void {\n const ctx = this.getContext()\n const osc = ctx.createOscillator()\n const gain = ctx.createGain()\n\n osc.type = type\n osc.frequency.setValueAtTime(freq, startTime)\n if (freqEnd) {\n osc.frequency.exponentialRampToValueAtTime(freqEnd, startTime + duration * 0.8)\n }\n\n gain.gain.setValueAtTime(0, startTime)\n gain.gain.linearRampToValueAtTime(vol * this.volume, startTime + 0.02)\n gain.gain.exponentialRampToValueAtTime(0.001, startTime + duration)\n\n osc.connect(gain).connect(ctx.destination)\n osc.start(startTime)\n osc.stop(startTime + duration)\n }\n\n /** Warm filtered tone */\n private warmTone(\n startTime: number,\n duration: number,\n freq: number,\n vol: number,\n filterFreq = 800\n ): void {\n const ctx = this.getContext()\n const osc = ctx.createOscillator()\n const filter = ctx.createBiquadFilter()\n const gain = ctx.createGain()\n\n osc.type = 'sine'\n osc.frequency.value = freq\n\n filter.type = 'lowpass'\n filter.frequency.value = filterFreq\n\n gain.gain.setValueAtTime(0, startTime)\n gain.gain.linearRampToValueAtTime(vol * this.volume, startTime + 0.03)\n gain.gain.exponentialRampToValueAtTime(0.001, startTime + duration)\n\n osc.connect(filter).connect(gain).connect(ctx.destination)\n osc.start(startTime)\n osc.stop(startTime + duration)\n }\n\n /** Shimmer - multiple soft tones */\n private shimmer(startTime: number, duration: number, baseFreq: number, vol: number): void {\n const freqs = [baseFreq, baseFreq * 1.5, baseFreq * 2]\n freqs.forEach((f, i) => {\n this.tone(startTime + i * 0.02, duration - i * 0.02, f, vol * (1 - i * 0.2))\n })\n }\n\n // ==========================================================================\n // HAPPY / PLEASANT FEELINGS\n // ==========================================================================\n\n private playJoyful(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Double puff (excited exhale)\n this.puff(now, 0.08, 3000, 0.3)\n this.puff(now + 0.06, 0.1, 3500, 0.35)\n\n // Rising happy tones\n this.tone(now + 0.02, 0.15, 784, 0.25) // G5\n this.tone(now + 0.1, 0.2, 988, 0.3) // B5\n this.tone(now + 0.18, 0.25, 1175, 0.25) // D6\n }\n\n private playContent(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Gentle satisfied sigh\n this.puff(now, 0.2, 1500, 0.25)\n this.warmTone(now + 0.05, 0.3, 523, 0.2) // C5\n this.warmTone(now + 0.15, 0.35, 659, 0.15) // E5\n }\n\n private playExcited(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Quick ascending puffs\n this.puff(now, 0.06, 2500, 0.25)\n this.puff(now + 0.05, 0.06, 3000, 0.3)\n this.puff(now + 0.1, 0.08, 3500, 0.35)\n\n // Sparkly ascending tones\n this.tone(now + 0.02, 0.12, 880, 0.2)\n this.tone(now + 0.08, 0.12, 1047, 0.25)\n this.tone(now + 0.14, 0.15, 1319, 0.3)\n }\n\n private playProud(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Confident puff\n this.puff(now, 0.15, 1800, 0.3)\n\n // Strong rising chord\n this.tone(now + 0.05, 0.25, 523, 0.25) // C5\n this.tone(now + 0.08, 0.25, 659, 0.2) // E5\n this.tone(now + 0.11, 0.3, 784, 0.25) // G5\n }\n\n private playHopeful(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Light ascending puff\n this.puff(now, 0.12, 2200, 0.2)\n\n // Gentle rising tone\n this.tone(now + 0.03, 0.3, 659, 0.2, 'sine', 880) // E5 -> A5\n }\n\n private playRelieved(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Long exhale\n this.puff(now, 0.25, 1200, 0.35)\n\n // Descending release\n this.warmTone(now + 0.1, 0.35, 659, 0.2) // E5\n this.warmTone(now + 0.25, 0.4, 523, 0.15) // C5\n }\n\n private playGrateful(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Warm gentle puff\n this.puff(now, 0.15, 1500, 0.25)\n\n // Warm embracing tones\n this.warmTone(now + 0.05, 0.3, 440, 0.2) // A4\n this.warmTone(now + 0.15, 0.35, 523, 0.2) // C5\n this.warmTone(now + 0.25, 0.4, 659, 0.15) // E5\n }\n\n private playPeaceful(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Very soft puff\n this.puff(now, 0.3, 800, 0.15)\n\n // Gentle sustained tone\n this.warmTone(now + 0.1, 0.5, 392, 0.12, 500) // G4\n }\n\n private playPlayful(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Bouncy puffs\n this.puff(now, 0.05, 2800, 0.2)\n this.puff(now + 0.08, 0.05, 3200, 0.25)\n this.puff(now + 0.14, 0.06, 2800, 0.2)\n\n // Playful tones\n this.tone(now + 0.03, 0.1, 784, 0.2)\n this.tone(now + 0.1, 0.08, 988, 0.25)\n this.tone(now + 0.16, 0.12, 784, 0.2)\n }\n\n private playAmused(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Little chuckle puffs\n this.puff(now, 0.04, 2500, 0.2)\n this.puff(now + 0.06, 0.04, 2800, 0.22)\n this.puff(now + 0.11, 0.05, 2600, 0.18)\n\n // Amused tone\n this.tone(now + 0.05, 0.15, 880, 0.15)\n }\n\n private playCurious(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Questioning puff\n this.puff(now, 0.1, 2000, 0.2)\n\n // Rising questioning tone\n this.tone(now + 0.03, 0.2, 659, 0.2, 'sine', 880) // E5 -> A5 (question)\n }\n\n private playInspired(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Bright puff\n this.puff(now, 0.1, 2500, 0.25)\n\n // Ascending shimmer\n this.shimmer(now + 0.05, 0.3, 523, 0.2)\n }\n\n private playConfident(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Solid puff\n this.puff(now, 0.12, 1500, 0.3)\n\n // Strong chord\n this.tone(now + 0.04, 0.2, 523, 0.25) // C5\n this.tone(now + 0.06, 0.22, 659, 0.2) // E5\n }\n\n private playLoved(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Warm embrace puff\n this.puff(now, 0.2, 1000, 0.2)\n\n // Warm loving tones\n this.warmTone(now + 0.08, 0.4, 392, 0.18, 600) // G4\n this.warmTone(now + 0.2, 0.45, 494, 0.15, 600) // B4\n }\n\n private playComforted(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Soft blanket puff\n this.puff(now, 0.25, 900, 0.18)\n\n // Gentle descending comfort\n this.warmTone(now + 0.1, 0.35, 523, 0.15) // C5\n this.warmTone(now + 0.25, 0.4, 440, 0.12) // A4\n }\n\n private playEnergized(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Quick energetic puffs\n this.puff(now, 0.05, 3000, 0.25)\n this.puff(now + 0.04, 0.05, 3500, 0.28)\n\n // Bright ascending tones\n this.tone(now + 0.02, 0.1, 784, 0.2)\n this.tone(now + 0.08, 0.12, 988, 0.25)\n this.tone(now + 0.14, 0.15, 1175, 0.22)\n }\n\n private playCelebrated(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Bright celebratory chime\n this.puff(now, 0.08, 2500, 0.2)\n\n // Triumphant ascending arpeggio (C major -> resolve)\n this.tone(now + 0.02, 0.18, 523, 0.22) // C5\n this.tone(now + 0.08, 0.18, 659, 0.24) // E5\n this.tone(now + 0.14, 0.2, 784, 0.26) // G5\n this.tone(now + 0.22, 0.3, 1047, 0.22) // C6 - resolution\n\n // Warm shimmer on resolution\n this.shimmer(now + 0.25, 0.35, 523, 0.12)\n }\n\n // ==========================================================================\n // SAD / LOW FEELINGS\n // ==========================================================================\n\n private playSad(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Heavy sigh\n this.puff(now, 0.3, 600, 0.25)\n\n // Descending sad tone\n this.warmTone(now + 0.1, 0.4, 392, 0.2, 400) // G4\n this.warmTone(now + 0.3, 0.45, 294, 0.15, 350) // D4\n }\n\n private playLonely(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Single isolated puff\n this.puff(now, 0.2, 700, 0.2)\n\n // Sparse, distant tone\n this.warmTone(now + 0.15, 0.5, 330, 0.12, 450) // E4\n }\n\n private playDisappointed(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Deflating puff\n this.puff(now, 0.25, 800, 0.25)\n\n // Falling tone\n this.tone(now + 0.08, 0.3, 523, 0.18, 'sine', 349) // C5 -> F4\n }\n\n private playMelancholic(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Wistful puff\n this.puff(now, 0.3, 700, 0.18)\n\n // Bittersweet tones\n this.warmTone(now + 0.1, 0.45, 440, 0.15, 500) // A4\n this.warmTone(now + 0.3, 0.5, 392, 0.12, 450) // G4\n }\n\n // ==========================================================================\n // ANXIOUS / FEARFUL FEELINGS\n // ==========================================================================\n\n private playAnxious(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Tight, quick puffs\n this.puff(now, 0.08, 1800, 0.2)\n this.puff(now + 0.12, 0.08, 1900, 0.22)\n\n // Uncertain wobble\n const osc = ctx.createOscillator()\n const gain = ctx.createGain()\n const lfo = ctx.createOscillator()\n const lfoGain = ctx.createGain()\n\n osc.frequency.value = 440\n lfo.frequency.value = 8\n lfoGain.gain.value = 20\n\n lfo.connect(lfoGain).connect(osc.frequency)\n\n gain.gain.setValueAtTime(0, now)\n gain.gain.linearRampToValueAtTime(this.volume * 0.15, now + 0.03)\n gain.gain.exponentialRampToValueAtTime(0.001, now + 0.25)\n\n osc.connect(gain).connect(ctx.destination)\n lfo.start(now)\n osc.start(now)\n osc.stop(now + 0.3)\n lfo.stop(now + 0.3)\n }\n\n private playWorried(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Hesitant puff\n this.puff(now, 0.15, 1200, 0.2)\n\n // Minor questioning tone\n this.tone(now + 0.05, 0.25, 349, 0.15, 'sine', 392) // F4 -> G4 (uncertain)\n }\n\n private playNervous(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Quick shallow puffs\n this.puff(now, 0.05, 2000, 0.18)\n this.puff(now + 0.08, 0.05, 2100, 0.18)\n this.puff(now + 0.15, 0.06, 2000, 0.16)\n\n // Trembling tone\n this.tone(now + 0.04, 0.2, 494, 0.12) // B4\n }\n\n private playStartled(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Quick sharp puff\n this.puff(now, 0.04, 3500, 0.3)\n\n // Quick high tone\n this.tone(now, 0.08, 1047, 0.25) // C6\n this.tone(now + 0.05, 0.15, 880, 0.15) // A5\n }\n\n // ==========================================================================\n // ANGRY / FRUSTRATED FEELINGS\n // ==========================================================================\n\n private playAnnoyed(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Short frustrated puff\n this.puff(now, 0.1, 1000, 0.25)\n\n // Low rumble\n this.warmTone(now + 0.03, 0.2, 294, 0.18, 400) // D4\n }\n\n private playFrustrated(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Tense puff\n this.puff(now, 0.12, 900, 0.28)\n\n // Blocked feeling\n this.tone(now + 0.04, 0.15, 349, 0.2) // F4\n this.tone(now + 0.12, 0.12, 330, 0.18) // E4\n }\n\n private playImpatient(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Quick tapping puffs\n this.puff(now, 0.04, 1500, 0.2)\n this.puff(now + 0.08, 0.04, 1500, 0.2)\n this.puff(now + 0.16, 0.04, 1500, 0.22)\n\n // Urgent tone\n this.tone(now + 0.06, 0.1, 523, 0.15)\n }\n\n // ==========================================================================\n // TIRED / DRAINED FEELINGS\n // ==========================================================================\n\n private playTired(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Heavy slow puff\n this.puff(now, 0.35, 500, 0.2)\n\n // Drooping tone\n this.warmTone(now + 0.1, 0.4, 330, 0.12, 350) // E4\n }\n\n private playExhausted(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Very slow, heavy exhale\n this.puff(now, 0.45, 400, 0.18)\n\n // Descending fade\n this.warmTone(now + 0.15, 0.5, 294, 0.1, 300) // D4\n }\n\n private playBored(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Flat sigh\n this.puff(now, 0.25, 600, 0.15)\n\n // Monotone\n this.warmTone(now + 0.1, 0.3, 349, 0.1, 400) // F4\n }\n\n // ==========================================================================\n // CALM / GROUNDED FEELINGS\n // ==========================================================================\n\n private playCalm(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Slow, peaceful puff\n this.puff(now, 0.3, 600, 0.12)\n\n // Sustained gentle tone\n this.warmTone(now + 0.1, 0.5, 392, 0.1, 500) // G4\n }\n\n private playRelaxed(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Long soft exhale\n this.puff(now, 0.35, 700, 0.15)\n\n // Gentle descending\n this.warmTone(now + 0.15, 0.45, 440, 0.1) // A4\n this.warmTone(now + 0.35, 0.5, 392, 0.08) // G4\n }\n\n private playGrounded(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Deep centered puff\n this.puff(now, 0.25, 500, 0.2)\n\n // Low stable tone\n this.warmTone(now + 0.1, 0.4, 262, 0.15, 350) // C4\n }\n\n private playSafe(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Soft enveloping puff\n this.puff(now, 0.3, 700, 0.15)\n\n // Warm embracing tones\n this.warmTone(now + 0.1, 0.4, 349, 0.12) // F4\n this.warmTone(now + 0.25, 0.45, 440, 0.1) // A4\n }\n\n // ==========================================================================\n // CONNECTED / SOCIAL FEELINGS\n // ==========================================================================\n\n private playConnected(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Warm shared breath\n this.puff(now, 0.2, 1200, 0.18)\n\n // Harmonious tones\n this.warmTone(now + 0.08, 0.3, 440, 0.15) // A4\n this.warmTone(now + 0.12, 0.32, 523, 0.12) // C5\n }\n\n private playAppreciated(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Touched puff\n this.puff(now, 0.15, 1500, 0.2)\n\n // Warm ascending\n this.warmTone(now + 0.05, 0.25, 440, 0.15)\n this.warmTone(now + 0.15, 0.3, 523, 0.18)\n }\n\n private playSupported(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Held puff\n this.puff(now, 0.25, 900, 0.18)\n\n // Stable harmonies\n this.warmTone(now + 0.1, 0.35, 349, 0.12)\n this.warmTone(now + 0.15, 0.4, 440, 0.1)\n }\n\n // ==========================================================================\n // MIXED / COMPLICATED FEELINGS\n // ==========================================================================\n\n private playNostalgic(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Wistful distant puff\n this.puff(now, 0.25, 800, 0.15)\n\n // Bittersweet memory tones\n this.warmTone(now + 0.1, 0.4, 440, 0.12, 500) // A4\n this.warmTone(now + 0.3, 0.45, 392, 0.1, 450) // G4\n }\n\n private playSurprised(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Quick gasp\n this.puff(now, 0.06, 2800, 0.25)\n\n // Rising tone\n this.tone(now + 0.02, 0.15, 659, 0.2, 'sine', 988) // E5 -> B5\n }\n\n private playAwestruck(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Wonder-filled breath\n this.puff(now, 0.2, 1500, 0.2)\n\n // Ascending wonder\n this.shimmer(now + 0.08, 0.4, 440, 0.15)\n }\n\n private playConfused(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Uncertain puff\n this.puff(now, 0.12, 1200, 0.18)\n\n // Questioning wobble\n this.tone(now + 0.04, 0.2, 440, 0.12, 'sine', 494) // A4 -> B4\n this.tone(now + 0.15, 0.15, 466, 0.1) // Bb4 (chromatic confusion)\n }\n\n // ==========================================================================\n // PUBLIC API\n // ==========================================================================\n\n /** Set volume (0.0 - 1.0) */\n setVolume(vol: number): void {\n this.volume = Math.max(0, Math.min(1, vol))\n }\n\n /** Get current volume */\n getVolume(): number {\n return this.volume\n }\n\n /** Mute all sounds */\n mute(): void {\n this.muted = true\n }\n\n /** Unmute sounds */\n unmute(): void {\n this.muted = false\n }\n\n /** Check if muted */\n isMuted(): boolean {\n return this.muted\n }\n\n /** Play a feeling */\n play(feeling: Feeling): void {\n if (this.muted) return\n\n // Map feelings to their sound methods\n const soundMap: Record<Feeling, () => void> = {\n // Happy\n joyful: () => this.playJoyful(),\n content: () => this.playContent(),\n excited: () => this.playExcited(),\n proud: () => this.playProud(),\n hopeful: () => this.playHopeful(),\n relieved: () => this.playRelieved(),\n grateful: () => this.playGrateful(),\n peaceful: () => this.playPeaceful(),\n playful: () => this.playPlayful(),\n amused: () => this.playAmused(),\n curious: () => this.playCurious(),\n inspired: () => this.playInspired(),\n confident: () => this.playConfident(),\n loved: () => this.playLoved(),\n comforted: () => this.playComforted(),\n energized: () => this.playEnergized(),\n celebrated: () => this.playCelebrated(),\n\n // Sad\n sad: () => this.playSad(),\n lonely: () => this.playLonely(),\n disappointed: () => this.playDisappointed(),\n heartbroken: () => this.playSad(), // Similar to sad\n grieving: () => this.playSad(),\n hopeless: () => this.playLonely(),\n empty: () => this.playLonely(),\n discouraged: () => this.playDisappointed(),\n melancholic: () => this.playMelancholic(),\n homesick: () => this.playNostalgic(),\n hurt: () => this.playSad(),\n miserable: () => this.playSad(),\n regretful: () => this.playMelancholic(),\n ashamed: () => this.playDisappointed(),\n inferior: () => this.playDisappointed(),\n\n // Anxious\n anxious: () => this.playAnxious(),\n worried: () => this.playWorried(),\n afraid: () => this.playAnxious(),\n terrified: () => this.playStartled(),\n panicked: () => this.playStartled(),\n nervous: () => this.playNervous(),\n uneasy: () => this.playWorried(),\n insecure: () => this.playNervous(),\n overwhelmed: () => this.playAnxious(),\n stressed: () => this.playAnxious(),\n tense: () => this.playAnxious(),\n apprehensive: () => this.playWorried(),\n startled: () => this.playStartled(),\n suspicious: () => this.playWorried(),\n vulnerable: () => this.playNervous(),\n\n // Angry\n annoyed: () => this.playAnnoyed(),\n irritated: () => this.playAnnoyed(),\n frustrated: () => this.playFrustrated(),\n angry: () => this.playFrustrated(),\n enraged: () => this.playFrustrated(),\n bitter: () => this.playFrustrated(),\n resentful: () => this.playAnnoyed(),\n jealous: () => this.playAnnoyed(),\n envious: () => this.playAnnoyed(),\n indignant: () => this.playFrustrated(),\n impatient: () => this.playImpatient(),\n hostile: () => this.playFrustrated(),\n contemptuous: () => this.playAnnoyed(),\n\n // Tired\n tired: () => this.playTired(),\n exhausted: () => this.playExhausted(),\n drained: () => this.playExhausted(),\n burnedOut: () => this.playExhausted(),\n numb: () => this.playExhausted(),\n bored: () => this.playBored(),\n unmotivated: () => this.playBored(),\n apathetic: () => this.playBored(),\n restless: () => this.playTired(),\n\n // Calm\n calm: () => this.playCalm(),\n relaxed: () => this.playRelaxed(),\n atEase: () => this.playRelaxed(),\n balanced: () => this.playCalm(),\n stable: () => this.playGrounded(),\n secure: () => this.playSafe(),\n safe: () => this.playSafe(),\n centered: () => this.playGrounded(),\n grounded: () => this.playGrounded(),\n accepting: () => this.playCalm(),\n\n // Connected\n connected: () => this.playConnected(),\n accepted: () => this.playAppreciated(),\n included: () => this.playConnected(),\n belonging: () => this.playConnected(),\n appreciated: () => this.playAppreciated(),\n valued: () => this.playAppreciated(),\n respected: () => this.playAppreciated(),\n supported: () => this.playSupported(),\n protective: () => this.playSupported(),\n compassionate: () => this.playConnected(),\n empathetic: () => this.playConnected(),\n\n // Mixed\n conflicted: () => this.playConfused(),\n confused: () => this.playConfused(),\n ambivalent: () => this.playConfused(),\n nostalgic: () => this.playNostalgic(),\n guilty: () => this.playDisappointed(),\n embarrassed: () => this.playNervous(),\n surprised: () => this.playSurprised(),\n shocked: () => this.playStartled(),\n awestruck: () => this.playAwestruck(),\n skeptical: () => this.playConfused(),\n }\n\n const playFn = soundMap[feeling]\n if (playFn) {\n playFn()\n }\n }\n\n /** Dispose audio context */\n dispose(): void {\n if (this.audioContext) {\n this.audioContext.close()\n this.audioContext = null\n }\n }\n}\n\n// ============================================================================\n// SINGLETON EXPORT\n// ============================================================================\n\n/** Global emotional sound player */\nexport const $sounds = new EmotionalSoundGenerator()\n"],"mappings":"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"}
1
+ {"version":3,"file":"audio-EaD0Ggfh.cjs","names":[],"sources":["../src/audio/emotional-sounds.ts"],"sourcesContent":["/**\n * Schmancy Emotional Sound Library\n *\n * A curated collection of soft, elegant sounds organized by emotional categories.\n * Each sound is designed to be non-intrusive, emotionally evocative, and beautiful.\n *\n * Inspired by the gentle sounds of nature - soft air, gentle chimes, and warm tones.\n *\n * @example\n * ```typescript\n * import { $sounds } from '@schmancy/audio'\n *\n * // Play a feeling\n * $sounds.play('joyful')\n * $sounds.play('relieved')\n * $sounds.play('curious')\n *\n * // Adjust volume\n * $sounds.setVolume(0.2)\n *\n * // Mute/unmute\n * $sounds.mute()\n * $sounds.unmute()\n * ```\n */\n\n// ============================================================================\n// TYPES\n// ============================================================================\n\n/** Happy / Pleasant feelings */\nexport type HappyFeeling =\n | 'joyful' | 'content' | 'excited' | 'proud' | 'hopeful'\n | 'relieved' | 'grateful' | 'peaceful' | 'playful' | 'amused'\n | 'curious' | 'inspired' | 'confident' | 'loved' | 'comforted' | 'energized'\n | 'celebrated'\n\n/** Sad / Low feelings */\nexport type SadFeeling =\n | 'sad' | 'lonely' | 'disappointed' | 'heartbroken' | 'grieving'\n | 'hopeless' | 'empty' | 'discouraged' | 'melancholic' | 'homesick'\n | 'hurt' | 'miserable' | 'regretful' | 'ashamed' | 'inferior'\n\n/** Anxious / Fearful feelings */\nexport type AnxiousFeeling =\n | 'anxious' | 'worried' | 'afraid' | 'terrified' | 'panicked'\n | 'nervous' | 'uneasy' | 'insecure' | 'overwhelmed' | 'stressed'\n | 'tense' | 'apprehensive' | 'startled' | 'suspicious' | 'vulnerable'\n\n/** Angry / Frustrated feelings */\nexport type AngryFeeling =\n | 'annoyed' | 'irritated' | 'frustrated' | 'angry' | 'enraged'\n | 'bitter' | 'resentful' | 'jealous' | 'envious' | 'indignant'\n | 'impatient' | 'hostile' | 'contemptuous'\n\n/** Tired / Drained feelings */\nexport type TiredFeeling =\n | 'tired' | 'exhausted' | 'drained' | 'burnedOut' | 'numb'\n | 'bored' | 'unmotivated' | 'apathetic' | 'restless'\n\n/** Calm / Grounded feelings */\nexport type CalmFeeling =\n | 'calm' | 'relaxed' | 'atEase' | 'balanced' | 'stable'\n | 'secure' | 'safe' | 'centered' | 'grounded' | 'accepting'\n\n/** Connected / Social feelings */\nexport type ConnectedFeeling =\n | 'connected' | 'accepted' | 'included' | 'belonging' | 'appreciated'\n | 'valued' | 'respected' | 'supported' | 'protective' | 'compassionate' | 'empathetic'\n\n/** Mixed / Complicated feelings */\nexport type MixedFeeling =\n | 'conflicted' | 'confused' | 'ambivalent' | 'nostalgic' | 'guilty'\n | 'embarrassed' | 'surprised' | 'shocked' | 'awestruck' | 'skeptical'\n\n/** All feelings */\nexport type Feeling =\n | HappyFeeling | SadFeeling | AnxiousFeeling | AngryFeeling\n | TiredFeeling | CalmFeeling | ConnectedFeeling | MixedFeeling\n\n// FeelingCategory is defined in ../types/mood-audio.types.ts and re-exported\n// from ./index.ts — the canonical source.\n\n// ============================================================================\n// SOUND GENERATOR\n// ============================================================================\n\n/**\n * Emotional Sound Generator\n * Creates soft, beautiful sounds using Web Audio API\n */\nexport class EmotionalSoundGenerator {\n private audioContext: AudioContext | null = null\n private volume = 0.15\n private muted = false\n\n private getContext(): AudioContext {\n if (!this.audioContext) {\n const AudioContextClass = window.AudioContext || (window as any).webkitAudioContext\n this.audioContext = new AudioContextClass()\n }\n // Resume if suspended (autoplay policy)\n if (this.audioContext.state === 'suspended') {\n this.audioContext.resume()\n }\n return this.audioContext\n }\n\n // ==========================================================================\n // CORE SOUND PRIMITIVES\n // ==========================================================================\n\n /** Soft air puff - the foundation of our sound palette */\n private puff(startTime: number, duration: number, freq: number, vol: number): void {\n const ctx = this.getContext()\n const bufferSize = Math.floor(ctx.sampleRate * duration)\n const buffer = ctx.createBuffer(1, bufferSize, ctx.sampleRate)\n const data = buffer.getChannelData(0)\n\n for (let i = 0; i < bufferSize; i++) {\n data[i] = Math.random() * 2 - 1\n }\n\n const noise = ctx.createBufferSource()\n noise.buffer = buffer\n\n const filter = ctx.createBiquadFilter()\n filter.type = 'bandpass'\n filter.frequency.value = freq\n filter.Q.value = 0.7\n\n const gain = ctx.createGain()\n gain.gain.setValueAtTime(0, startTime)\n gain.gain.linearRampToValueAtTime(vol * this.volume, startTime + 0.015)\n gain.gain.exponentialRampToValueAtTime(0.001, startTime + duration)\n\n noise.connect(filter).connect(gain).connect(ctx.destination)\n noise.start(startTime)\n noise.stop(startTime + duration)\n }\n\n /** Gentle tone with envelope */\n private tone(\n startTime: number,\n duration: number,\n freq: number,\n vol: number,\n type: OscillatorType = 'sine',\n freqEnd?: number\n ): void {\n const ctx = this.getContext()\n const osc = ctx.createOscillator()\n const gain = ctx.createGain()\n\n osc.type = type\n osc.frequency.setValueAtTime(freq, startTime)\n if (freqEnd) {\n osc.frequency.exponentialRampToValueAtTime(freqEnd, startTime + duration * 0.8)\n }\n\n gain.gain.setValueAtTime(0, startTime)\n gain.gain.linearRampToValueAtTime(vol * this.volume, startTime + 0.02)\n gain.gain.exponentialRampToValueAtTime(0.001, startTime + duration)\n\n osc.connect(gain).connect(ctx.destination)\n osc.start(startTime)\n osc.stop(startTime + duration)\n }\n\n /** Warm filtered tone */\n private warmTone(\n startTime: number,\n duration: number,\n freq: number,\n vol: number,\n filterFreq = 800\n ): void {\n const ctx = this.getContext()\n const osc = ctx.createOscillator()\n const filter = ctx.createBiquadFilter()\n const gain = ctx.createGain()\n\n osc.type = 'sine'\n osc.frequency.value = freq\n\n filter.type = 'lowpass'\n filter.frequency.value = filterFreq\n\n gain.gain.setValueAtTime(0, startTime)\n gain.gain.linearRampToValueAtTime(vol * this.volume, startTime + 0.03)\n gain.gain.exponentialRampToValueAtTime(0.001, startTime + duration)\n\n osc.connect(filter).connect(gain).connect(ctx.destination)\n osc.start(startTime)\n osc.stop(startTime + duration)\n }\n\n /** Shimmer - multiple soft tones */\n private shimmer(startTime: number, duration: number, baseFreq: number, vol: number): void {\n const freqs = [baseFreq, baseFreq * 1.5, baseFreq * 2]\n freqs.forEach((f, i) => {\n this.tone(startTime + i * 0.02, duration - i * 0.02, f, vol * (1 - i * 0.2))\n })\n }\n\n // ==========================================================================\n // HAPPY / PLEASANT FEELINGS\n // ==========================================================================\n\n private playJoyful(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Double puff (excited exhale)\n this.puff(now, 0.08, 3000, 0.3)\n this.puff(now + 0.06, 0.1, 3500, 0.35)\n\n // Rising happy tones\n this.tone(now + 0.02, 0.15, 784, 0.25) // G5\n this.tone(now + 0.1, 0.2, 988, 0.3) // B5\n this.tone(now + 0.18, 0.25, 1175, 0.25) // D6\n }\n\n private playContent(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Gentle satisfied sigh\n this.puff(now, 0.2, 1500, 0.25)\n this.warmTone(now + 0.05, 0.3, 523, 0.2) // C5\n this.warmTone(now + 0.15, 0.35, 659, 0.15) // E5\n }\n\n private playExcited(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Quick ascending puffs\n this.puff(now, 0.06, 2500, 0.25)\n this.puff(now + 0.05, 0.06, 3000, 0.3)\n this.puff(now + 0.1, 0.08, 3500, 0.35)\n\n // Sparkly ascending tones\n this.tone(now + 0.02, 0.12, 880, 0.2)\n this.tone(now + 0.08, 0.12, 1047, 0.25)\n this.tone(now + 0.14, 0.15, 1319, 0.3)\n }\n\n private playProud(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Confident puff\n this.puff(now, 0.15, 1800, 0.3)\n\n // Strong rising chord\n this.tone(now + 0.05, 0.25, 523, 0.25) // C5\n this.tone(now + 0.08, 0.25, 659, 0.2) // E5\n this.tone(now + 0.11, 0.3, 784, 0.25) // G5\n }\n\n private playHopeful(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Light ascending puff\n this.puff(now, 0.12, 2200, 0.2)\n\n // Gentle rising tone\n this.tone(now + 0.03, 0.3, 659, 0.2, 'sine', 880) // E5 -> A5\n }\n\n private playRelieved(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Long exhale\n this.puff(now, 0.25, 1200, 0.35)\n\n // Descending release\n this.warmTone(now + 0.1, 0.35, 659, 0.2) // E5\n this.warmTone(now + 0.25, 0.4, 523, 0.15) // C5\n }\n\n private playGrateful(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Warm gentle puff\n this.puff(now, 0.15, 1500, 0.25)\n\n // Warm embracing tones\n this.warmTone(now + 0.05, 0.3, 440, 0.2) // A4\n this.warmTone(now + 0.15, 0.35, 523, 0.2) // C5\n this.warmTone(now + 0.25, 0.4, 659, 0.15) // E5\n }\n\n private playPeaceful(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Very soft puff\n this.puff(now, 0.3, 800, 0.15)\n\n // Gentle sustained tone\n this.warmTone(now + 0.1, 0.5, 392, 0.12, 500) // G4\n }\n\n private playPlayful(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Bouncy puffs\n this.puff(now, 0.05, 2800, 0.2)\n this.puff(now + 0.08, 0.05, 3200, 0.25)\n this.puff(now + 0.14, 0.06, 2800, 0.2)\n\n // Playful tones\n this.tone(now + 0.03, 0.1, 784, 0.2)\n this.tone(now + 0.1, 0.08, 988, 0.25)\n this.tone(now + 0.16, 0.12, 784, 0.2)\n }\n\n private playAmused(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Little chuckle puffs\n this.puff(now, 0.04, 2500, 0.2)\n this.puff(now + 0.06, 0.04, 2800, 0.22)\n this.puff(now + 0.11, 0.05, 2600, 0.18)\n\n // Amused tone\n this.tone(now + 0.05, 0.15, 880, 0.15)\n }\n\n private playCurious(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Questioning puff\n this.puff(now, 0.1, 2000, 0.2)\n\n // Rising questioning tone\n this.tone(now + 0.03, 0.2, 659, 0.2, 'sine', 880) // E5 -> A5 (question)\n }\n\n private playInspired(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Bright puff\n this.puff(now, 0.1, 2500, 0.25)\n\n // Ascending shimmer\n this.shimmer(now + 0.05, 0.3, 523, 0.2)\n }\n\n private playConfident(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Solid puff\n this.puff(now, 0.12, 1500, 0.3)\n\n // Strong chord\n this.tone(now + 0.04, 0.2, 523, 0.25) // C5\n this.tone(now + 0.06, 0.22, 659, 0.2) // E5\n }\n\n private playLoved(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Warm embrace puff\n this.puff(now, 0.2, 1000, 0.2)\n\n // Warm loving tones\n this.warmTone(now + 0.08, 0.4, 392, 0.18, 600) // G4\n this.warmTone(now + 0.2, 0.45, 494, 0.15, 600) // B4\n }\n\n private playComforted(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Soft blanket puff\n this.puff(now, 0.25, 900, 0.18)\n\n // Gentle descending comfort\n this.warmTone(now + 0.1, 0.35, 523, 0.15) // C5\n this.warmTone(now + 0.25, 0.4, 440, 0.12) // A4\n }\n\n private playEnergized(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Quick energetic puffs\n this.puff(now, 0.05, 3000, 0.25)\n this.puff(now + 0.04, 0.05, 3500, 0.28)\n\n // Bright ascending tones\n this.tone(now + 0.02, 0.1, 784, 0.2)\n this.tone(now + 0.08, 0.12, 988, 0.25)\n this.tone(now + 0.14, 0.15, 1175, 0.22)\n }\n\n private playCelebrated(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Bright celebratory chime\n this.puff(now, 0.08, 2500, 0.2)\n\n // Triumphant ascending arpeggio (C major -> resolve)\n this.tone(now + 0.02, 0.18, 523, 0.22) // C5\n this.tone(now + 0.08, 0.18, 659, 0.24) // E5\n this.tone(now + 0.14, 0.2, 784, 0.26) // G5\n this.tone(now + 0.22, 0.3, 1047, 0.22) // C6 - resolution\n\n // Warm shimmer on resolution\n this.shimmer(now + 0.25, 0.35, 523, 0.12)\n }\n\n // ==========================================================================\n // SAD / LOW FEELINGS\n // ==========================================================================\n\n private playSad(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Heavy sigh\n this.puff(now, 0.3, 600, 0.25)\n\n // Descending sad tone\n this.warmTone(now + 0.1, 0.4, 392, 0.2, 400) // G4\n this.warmTone(now + 0.3, 0.45, 294, 0.15, 350) // D4\n }\n\n private playLonely(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Single isolated puff\n this.puff(now, 0.2, 700, 0.2)\n\n // Sparse, distant tone\n this.warmTone(now + 0.15, 0.5, 330, 0.12, 450) // E4\n }\n\n private playDisappointed(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Deflating puff\n this.puff(now, 0.25, 800, 0.25)\n\n // Falling tone\n this.tone(now + 0.08, 0.3, 523, 0.18, 'sine', 349) // C5 -> F4\n }\n\n private playMelancholic(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Wistful puff\n this.puff(now, 0.3, 700, 0.18)\n\n // Bittersweet tones\n this.warmTone(now + 0.1, 0.45, 440, 0.15, 500) // A4\n this.warmTone(now + 0.3, 0.5, 392, 0.12, 450) // G4\n }\n\n // ==========================================================================\n // ANXIOUS / FEARFUL FEELINGS\n // ==========================================================================\n\n private playAnxious(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Tight, quick puffs\n this.puff(now, 0.08, 1800, 0.2)\n this.puff(now + 0.12, 0.08, 1900, 0.22)\n\n // Uncertain wobble\n const osc = ctx.createOscillator()\n const gain = ctx.createGain()\n const lfo = ctx.createOscillator()\n const lfoGain = ctx.createGain()\n\n osc.frequency.value = 440\n lfo.frequency.value = 8\n lfoGain.gain.value = 20\n\n lfo.connect(lfoGain).connect(osc.frequency)\n\n gain.gain.setValueAtTime(0, now)\n gain.gain.linearRampToValueAtTime(this.volume * 0.15, now + 0.03)\n gain.gain.exponentialRampToValueAtTime(0.001, now + 0.25)\n\n osc.connect(gain).connect(ctx.destination)\n lfo.start(now)\n osc.start(now)\n osc.stop(now + 0.3)\n lfo.stop(now + 0.3)\n }\n\n private playWorried(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Hesitant puff\n this.puff(now, 0.15, 1200, 0.2)\n\n // Minor questioning tone\n this.tone(now + 0.05, 0.25, 349, 0.15, 'sine', 392) // F4 -> G4 (uncertain)\n }\n\n private playNervous(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Quick shallow puffs\n this.puff(now, 0.05, 2000, 0.18)\n this.puff(now + 0.08, 0.05, 2100, 0.18)\n this.puff(now + 0.15, 0.06, 2000, 0.16)\n\n // Trembling tone\n this.tone(now + 0.04, 0.2, 494, 0.12) // B4\n }\n\n private playStartled(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Quick sharp puff\n this.puff(now, 0.04, 3500, 0.3)\n\n // Quick high tone\n this.tone(now, 0.08, 1047, 0.25) // C6\n this.tone(now + 0.05, 0.15, 880, 0.15) // A5\n }\n\n // ==========================================================================\n // ANGRY / FRUSTRATED FEELINGS\n // ==========================================================================\n\n private playAnnoyed(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Short frustrated puff\n this.puff(now, 0.1, 1000, 0.25)\n\n // Low rumble\n this.warmTone(now + 0.03, 0.2, 294, 0.18, 400) // D4\n }\n\n private playFrustrated(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Tense puff\n this.puff(now, 0.12, 900, 0.28)\n\n // Blocked feeling\n this.tone(now + 0.04, 0.15, 349, 0.2) // F4\n this.tone(now + 0.12, 0.12, 330, 0.18) // E4\n }\n\n private playImpatient(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Quick tapping puffs\n this.puff(now, 0.04, 1500, 0.2)\n this.puff(now + 0.08, 0.04, 1500, 0.2)\n this.puff(now + 0.16, 0.04, 1500, 0.22)\n\n // Urgent tone\n this.tone(now + 0.06, 0.1, 523, 0.15)\n }\n\n // ==========================================================================\n // TIRED / DRAINED FEELINGS\n // ==========================================================================\n\n private playTired(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Heavy slow puff\n this.puff(now, 0.35, 500, 0.2)\n\n // Drooping tone\n this.warmTone(now + 0.1, 0.4, 330, 0.12, 350) // E4\n }\n\n private playExhausted(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Very slow, heavy exhale\n this.puff(now, 0.45, 400, 0.18)\n\n // Descending fade\n this.warmTone(now + 0.15, 0.5, 294, 0.1, 300) // D4\n }\n\n private playBored(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Flat sigh\n this.puff(now, 0.25, 600, 0.15)\n\n // Monotone\n this.warmTone(now + 0.1, 0.3, 349, 0.1, 400) // F4\n }\n\n // ==========================================================================\n // CALM / GROUNDED FEELINGS\n // ==========================================================================\n\n private playCalm(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Slow, peaceful puff\n this.puff(now, 0.3, 600, 0.12)\n\n // Sustained gentle tone\n this.warmTone(now + 0.1, 0.5, 392, 0.1, 500) // G4\n }\n\n private playRelaxed(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Long soft exhale\n this.puff(now, 0.35, 700, 0.15)\n\n // Gentle descending\n this.warmTone(now + 0.15, 0.45, 440, 0.1) // A4\n this.warmTone(now + 0.35, 0.5, 392, 0.08) // G4\n }\n\n private playGrounded(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Deep centered puff\n this.puff(now, 0.25, 500, 0.2)\n\n // Low stable tone\n this.warmTone(now + 0.1, 0.4, 262, 0.15, 350) // C4\n }\n\n private playSafe(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Soft enveloping puff\n this.puff(now, 0.3, 700, 0.15)\n\n // Warm embracing tones\n this.warmTone(now + 0.1, 0.4, 349, 0.12) // F4\n this.warmTone(now + 0.25, 0.45, 440, 0.1) // A4\n }\n\n // ==========================================================================\n // CONNECTED / SOCIAL FEELINGS\n // ==========================================================================\n\n private playConnected(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Warm shared breath\n this.puff(now, 0.2, 1200, 0.18)\n\n // Harmonious tones\n this.warmTone(now + 0.08, 0.3, 440, 0.15) // A4\n this.warmTone(now + 0.12, 0.32, 523, 0.12) // C5\n }\n\n private playAppreciated(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Touched puff\n this.puff(now, 0.15, 1500, 0.2)\n\n // Warm ascending\n this.warmTone(now + 0.05, 0.25, 440, 0.15)\n this.warmTone(now + 0.15, 0.3, 523, 0.18)\n }\n\n private playSupported(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Held puff\n this.puff(now, 0.25, 900, 0.18)\n\n // Stable harmonies\n this.warmTone(now + 0.1, 0.35, 349, 0.12)\n this.warmTone(now + 0.15, 0.4, 440, 0.1)\n }\n\n // ==========================================================================\n // MIXED / COMPLICATED FEELINGS\n // ==========================================================================\n\n private playNostalgic(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Wistful distant puff\n this.puff(now, 0.25, 800, 0.15)\n\n // Bittersweet memory tones\n this.warmTone(now + 0.1, 0.4, 440, 0.12, 500) // A4\n this.warmTone(now + 0.3, 0.45, 392, 0.1, 450) // G4\n }\n\n private playSurprised(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Quick gasp\n this.puff(now, 0.06, 2800, 0.25)\n\n // Rising tone\n this.tone(now + 0.02, 0.15, 659, 0.2, 'sine', 988) // E5 -> B5\n }\n\n private playAwestruck(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Wonder-filled breath\n this.puff(now, 0.2, 1500, 0.2)\n\n // Ascending wonder\n this.shimmer(now + 0.08, 0.4, 440, 0.15)\n }\n\n private playConfused(): void {\n const ctx = this.getContext()\n const now = ctx.currentTime\n\n // Uncertain puff\n this.puff(now, 0.12, 1200, 0.18)\n\n // Questioning wobble\n this.tone(now + 0.04, 0.2, 440, 0.12, 'sine', 494) // A4 -> B4\n this.tone(now + 0.15, 0.15, 466, 0.1) // Bb4 (chromatic confusion)\n }\n\n // ==========================================================================\n // PUBLIC API\n // ==========================================================================\n\n /** Set volume (0.0 - 1.0) */\n setVolume(vol: number): void {\n this.volume = Math.max(0, Math.min(1, vol))\n }\n\n /** Get current volume */\n getVolume(): number {\n return this.volume\n }\n\n /** Mute all sounds */\n mute(): void {\n this.muted = true\n }\n\n /** Unmute sounds */\n unmute(): void {\n this.muted = false\n }\n\n /** Check if muted */\n isMuted(): boolean {\n return this.muted\n }\n\n /** Play a feeling */\n play(feeling: Feeling): void {\n if (this.muted) return\n\n // Map feelings to their sound methods\n const soundMap: Record<Feeling, () => void> = {\n // Happy\n joyful: () => this.playJoyful(),\n content: () => this.playContent(),\n excited: () => this.playExcited(),\n proud: () => this.playProud(),\n hopeful: () => this.playHopeful(),\n relieved: () => this.playRelieved(),\n grateful: () => this.playGrateful(),\n peaceful: () => this.playPeaceful(),\n playful: () => this.playPlayful(),\n amused: () => this.playAmused(),\n curious: () => this.playCurious(),\n inspired: () => this.playInspired(),\n confident: () => this.playConfident(),\n loved: () => this.playLoved(),\n comforted: () => this.playComforted(),\n energized: () => this.playEnergized(),\n celebrated: () => this.playCelebrated(),\n\n // Sad\n sad: () => this.playSad(),\n lonely: () => this.playLonely(),\n disappointed: () => this.playDisappointed(),\n heartbroken: () => this.playSad(), // Similar to sad\n grieving: () => this.playSad(),\n hopeless: () => this.playLonely(),\n empty: () => this.playLonely(),\n discouraged: () => this.playDisappointed(),\n melancholic: () => this.playMelancholic(),\n homesick: () => this.playNostalgic(),\n hurt: () => this.playSad(),\n miserable: () => this.playSad(),\n regretful: () => this.playMelancholic(),\n ashamed: () => this.playDisappointed(),\n inferior: () => this.playDisappointed(),\n\n // Anxious\n anxious: () => this.playAnxious(),\n worried: () => this.playWorried(),\n afraid: () => this.playAnxious(),\n terrified: () => this.playStartled(),\n panicked: () => this.playStartled(),\n nervous: () => this.playNervous(),\n uneasy: () => this.playWorried(),\n insecure: () => this.playNervous(),\n overwhelmed: () => this.playAnxious(),\n stressed: () => this.playAnxious(),\n tense: () => this.playAnxious(),\n apprehensive: () => this.playWorried(),\n startled: () => this.playStartled(),\n suspicious: () => this.playWorried(),\n vulnerable: () => this.playNervous(),\n\n // Angry\n annoyed: () => this.playAnnoyed(),\n irritated: () => this.playAnnoyed(),\n frustrated: () => this.playFrustrated(),\n angry: () => this.playFrustrated(),\n enraged: () => this.playFrustrated(),\n bitter: () => this.playFrustrated(),\n resentful: () => this.playAnnoyed(),\n jealous: () => this.playAnnoyed(),\n envious: () => this.playAnnoyed(),\n indignant: () => this.playFrustrated(),\n impatient: () => this.playImpatient(),\n hostile: () => this.playFrustrated(),\n contemptuous: () => this.playAnnoyed(),\n\n // Tired\n tired: () => this.playTired(),\n exhausted: () => this.playExhausted(),\n drained: () => this.playExhausted(),\n burnedOut: () => this.playExhausted(),\n numb: () => this.playExhausted(),\n bored: () => this.playBored(),\n unmotivated: () => this.playBored(),\n apathetic: () => this.playBored(),\n restless: () => this.playTired(),\n\n // Calm\n calm: () => this.playCalm(),\n relaxed: () => this.playRelaxed(),\n atEase: () => this.playRelaxed(),\n balanced: () => this.playCalm(),\n stable: () => this.playGrounded(),\n secure: () => this.playSafe(),\n safe: () => this.playSafe(),\n centered: () => this.playGrounded(),\n grounded: () => this.playGrounded(),\n accepting: () => this.playCalm(),\n\n // Connected\n connected: () => this.playConnected(),\n accepted: () => this.playAppreciated(),\n included: () => this.playConnected(),\n belonging: () => this.playConnected(),\n appreciated: () => this.playAppreciated(),\n valued: () => this.playAppreciated(),\n respected: () => this.playAppreciated(),\n supported: () => this.playSupported(),\n protective: () => this.playSupported(),\n compassionate: () => this.playConnected(),\n empathetic: () => this.playConnected(),\n\n // Mixed\n conflicted: () => this.playConfused(),\n confused: () => this.playConfused(),\n ambivalent: () => this.playConfused(),\n nostalgic: () => this.playNostalgic(),\n guilty: () => this.playDisappointed(),\n embarrassed: () => this.playNervous(),\n surprised: () => this.playSurprised(),\n shocked: () => this.playStartled(),\n awestruck: () => this.playAwestruck(),\n skeptical: () => this.playConfused(),\n }\n\n const playFn = soundMap[feeling]\n if (playFn) {\n playFn()\n }\n }\n\n /** Dispose audio context */\n dispose(): void {\n if (this.audioContext) {\n this.audioContext.close()\n this.audioContext = null\n }\n }\n}\n\n// ============================================================================\n// SINGLETON EXPORT\n// ============================================================================\n\n/** Global emotional sound player */\nexport const $sounds = new EmotionalSoundGenerator()\n"],"mappings":"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"}
package/dist/audio.cjs CHANGED
@@ -1 +1 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`./sound.service-G_8GV_6L.cjs`),t=require(`./audio-B_jT9Xr7.cjs`);exports.$sounds=t.t,exports.EmotionalSoundGenerator=t.n,exports.schmancySound=e.t,exports.sound=e.n;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`./sound.service-D2GGaBXc.cjs`),t=require(`./audio-EaD0Ggfh.cjs`);exports.$sounds=t.t,exports.EmotionalSoundGenerator=t.n,exports.schmancySound=e.t,exports.sound=e.n;
package/dist/audio.js CHANGED
@@ -1,3 +1,3 @@
1
- import { n as e, t } from "./sound.service-DO4SmUUT.js";
2
- import { n, t as r } from "./audio-D52h1jAT.js";
1
+ import { n as e, t } from "./sound.service-CK-5zob-.js";
2
+ import { n, t as r } from "./audio-D3gnp15Y.js";
3
3
  export { r as $sounds, n as EmotionalSoundGenerator, t as schmancySound, e as sound };