@mhmo91/schmancy 0.10.36 → 0.10.37

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (343) hide show
  1. package/custom-elements.json +15 -31
  2. package/dist/SchmancyElement-BHfQg3Tj.cjs +2 -0
  3. package/dist/{SchmancyElement-BBzRWB1w.cjs.map → SchmancyElement-BHfQg3Tj.cjs.map} +1 -1
  4. package/dist/SchmancyElement-CDT2q1lA.js +284 -0
  5. package/dist/{SchmancyElement-C3CpdNsi.js.map → SchmancyElement-CDT2q1lA.js.map} +1 -1
  6. package/dist/agent/schmancy.agent.js +111 -72
  7. package/dist/agent/schmancy.agent.js.map +1 -1
  8. package/dist/agent/schmancy.manifest.json +4 -22
  9. package/dist/{area-BA96mwFY.js → area-KtULlxuA.js} +2 -2
  10. package/dist/{area-BA96mwFY.js.map → area-KtULlxuA.js.map} +1 -1
  11. package/dist/{area-DtyQDdOF.cjs → area-fdKhYB6T.cjs} +1 -1
  12. package/dist/{area-DtyQDdOF.cjs.map → area-fdKhYB6T.cjs.map} +1 -1
  13. package/dist/area.cjs +1 -1
  14. package/dist/area.js +1 -1
  15. package/dist/{audio-B_jT9Xr7.cjs → audio-CUMAv9D_.cjs} +1 -1
  16. package/dist/{audio-B_jT9Xr7.cjs.map → audio-CUMAv9D_.cjs.map} +1 -1
  17. package/dist/{audio-D52h1jAT.js → audio-zIJVTo_V.js} +1 -1
  18. package/dist/{audio-D52h1jAT.js.map → audio-zIJVTo_V.js.map} +1 -1
  19. package/dist/audio.cjs +1 -1
  20. package/dist/audio.js +2 -2
  21. package/dist/{autocomplete-Bts5Jwwr.cjs → autocomplete-DEZk6wBD.cjs} +1 -1
  22. package/dist/{autocomplete-Bts5Jwwr.cjs.map → autocomplete-DEZk6wBD.cjs.map} +1 -1
  23. package/dist/{autocomplete-CI4QJXAN.js → autocomplete-DIScyo8Q.js} +3 -3
  24. package/dist/{autocomplete-CI4QJXAN.js.map → autocomplete-DIScyo8Q.js.map} +1 -1
  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-BHPqSqJd.js} +4 -4
  32. package/dist/{boat-_N1x5U_3.js.map → boat-BHPqSqJd.js.map} +1 -1
  33. package/dist/{boat-I4B1UNMc.cjs → boat-OBZ77exO.cjs} +1 -1
  34. package/dist/{boat-I4B1UNMc.cjs.map → boat-OBZ77exO.cjs.map} +1 -1
  35. package/dist/boat.cjs +1 -1
  36. package/dist/boat.js +1 -1
  37. package/dist/breadcrumb.cjs +1 -1
  38. package/dist/breadcrumb.js +2 -2
  39. package/dist/{busy-BIUonyPk.cjs → busy-BJNsKSCM.cjs} +1 -1
  40. package/dist/{busy-BIUonyPk.cjs.map → busy-BJNsKSCM.cjs.map} +1 -1
  41. package/dist/{busy-CCB3qKnh.js → busy-Dut78y4L.js} +2 -2
  42. package/dist/{busy-CCB3qKnh.js.map → busy-Dut78y4L.js.map} +1 -1
  43. package/dist/busy.cjs +1 -1
  44. package/dist/busy.js +1 -1
  45. package/dist/{button-CkwQH-g3.cjs → button-DzlHLjWO.cjs} +1 -1
  46. package/dist/{button-CkwQH-g3.cjs.map → button-DzlHLjWO.cjs.map} +1 -1
  47. package/dist/{button-C89bPnHt.js → button-kcpPQavY.js} +2 -2
  48. package/dist/{button-C89bPnHt.js.map → button-kcpPQavY.js.map} +1 -1
  49. package/dist/button.cjs +1 -1
  50. package/dist/button.js +3 -3
  51. package/dist/{card-BO93_oxQ.cjs → card-BLxPLqdQ.cjs} +1 -1
  52. package/dist/{card-BO93_oxQ.cjs.map → card-BLxPLqdQ.cjs.map} +1 -1
  53. package/dist/{card-CFsCgJKZ.js → card-DxSKxCid.js} +2 -2
  54. package/dist/{card-CFsCgJKZ.js.map → card-DxSKxCid.js.map} +1 -1
  55. package/dist/card.cjs +1 -1
  56. package/dist/card.js +1 -1
  57. package/dist/{checkbox-Bh7q0djq.js → checkbox-B1wiM3Dv.js} +2 -2
  58. package/dist/{checkbox-Bh7q0djq.js.map → checkbox-B1wiM3Dv.js.map} +1 -1
  59. package/dist/{checkbox-CFUBUFtW.cjs → checkbox-BCLkhp5G.cjs} +1 -1
  60. package/dist/{checkbox-CFUBUFtW.cjs.map → checkbox-BCLkhp5G.cjs.map} +1 -1
  61. package/dist/checkbox.cjs +1 -1
  62. package/dist/checkbox.js +1 -1
  63. package/dist/{chips-BfzpsyV1.cjs → chips-C9dS1WKn.cjs} +1 -1
  64. package/dist/{chips-BfzpsyV1.cjs.map → chips-C9dS1WKn.cjs.map} +1 -1
  65. package/dist/{chips-6YaoRmeG.js → chips-vWmwqQed.js} +4 -4
  66. package/dist/{chips-6YaoRmeG.js.map → chips-vWmwqQed.js.map} +1 -1
  67. package/dist/chips.cjs +1 -1
  68. package/dist/chips.js +2 -2
  69. package/dist/connectivity.cjs +1 -1
  70. package/dist/connectivity.js +3 -3
  71. package/dist/content-drawer.cjs +1 -1
  72. package/dist/content-drawer.js +1 -1
  73. package/dist/{date-range-N-A249O9.cjs → date-range-BV6HuvLw.cjs} +1 -1
  74. package/dist/{date-range-N-A249O9.cjs.map → date-range-BV6HuvLw.cjs.map} +1 -1
  75. package/dist/{date-range-CEo_Kjqw.js → date-range-D3ge1b4c.js} +3 -3
  76. package/dist/{date-range-CEo_Kjqw.js.map → date-range-D3ge1b4c.js.map} +1 -1
  77. package/dist/{date-range-inline-DFopysWF.cjs → date-range-inline-DpYgdLRv.cjs} +1 -1
  78. package/dist/{date-range-inline-DFopysWF.cjs.map → date-range-inline-DpYgdLRv.cjs.map} +1 -1
  79. package/dist/{date-range-inline-BwialV9j.js → date-range-inline-DuWQaWps.js} +2 -2
  80. package/dist/{date-range-inline-BwialV9j.js.map → date-range-inline-DuWQaWps.js.map} +1 -1
  81. package/dist/date-range-inline.cjs +1 -1
  82. package/dist/date-range-inline.js +1 -1
  83. package/dist/date-range.cjs +1 -1
  84. package/dist/date-range.js +1 -1
  85. package/dist/delay.cjs +1 -1
  86. package/dist/delay.js +2 -2
  87. package/dist/{details-GtpfI2hA.js → details-C-GZaq3j.js} +2 -2
  88. package/dist/{details-GtpfI2hA.js.map → details-C-GZaq3j.js.map} +1 -1
  89. package/dist/{details-BLRPV8sY.cjs → details-Dp5rLIWk.cjs} +1 -1
  90. package/dist/{details-BLRPV8sY.cjs.map → details-Dp5rLIWk.cjs.map} +1 -1
  91. package/dist/details.cjs +1 -1
  92. package/dist/details.js +1 -1
  93. package/dist/{directives-CvYGSW_a.cjs → directives-D_l1E5H6.cjs} +2 -2
  94. package/dist/{directives-CvYGSW_a.cjs.map → directives-D_l1E5H6.cjs.map} +1 -1
  95. package/dist/{directives-C2dXgpCY.js → directives-DyS51FUh.js} +27 -18
  96. package/dist/{directives-C2dXgpCY.js.map → directives-DyS51FUh.js.map} +1 -1
  97. package/dist/directives.cjs +1 -1
  98. package/dist/directives.js +2 -2
  99. package/dist/{divider-rNsWCvMi.cjs → divider-CBnAmHMZ.cjs} +1 -1
  100. package/dist/{divider-rNsWCvMi.cjs.map → divider-CBnAmHMZ.cjs.map} +1 -1
  101. package/dist/{divider-D0pGX2VB.js → divider-nQffE0AD.js} +2 -2
  102. package/dist/{divider-D0pGX2VB.js.map → divider-nQffE0AD.js.map} +1 -1
  103. package/dist/divider.cjs +1 -1
  104. package/dist/divider.js +1 -1
  105. package/dist/dropdown.cjs +1 -1
  106. package/dist/dropdown.js +2 -2
  107. package/dist/{expand-FcKAzJta.js → expand-DvTb-UPR.js} +3 -3
  108. package/dist/{expand-FcKAzJta.js.map → expand-DvTb-UPR.js.map} +1 -1
  109. package/dist/{expand-tffQHGbZ.cjs → expand-mlP_3XWz.cjs} +1 -1
  110. package/dist/{expand-tffQHGbZ.cjs.map → expand-mlP_3XWz.cjs.map} +1 -1
  111. package/dist/expand.cjs +1 -1
  112. package/dist/expand.js +1 -1
  113. package/dist/fab.cjs +1 -1
  114. package/dist/fab.js +2 -2
  115. package/dist/{float-CQ1WEp3M.js → float-C-Ko0Le3.js} +2 -2
  116. package/dist/{float-CQ1WEp3M.js.map → float-C-Ko0Le3.js.map} +1 -1
  117. package/dist/{float-CDjgxWyy.cjs → float-C17xgMT1.cjs} +1 -1
  118. package/dist/{float-CDjgxWyy.cjs.map → float-C17xgMT1.cjs.map} +1 -1
  119. package/dist/float.cjs +1 -1
  120. package/dist/float.js +1 -1
  121. package/dist/{form-VYhbbir3.cjs → form-CwPHcQYB.cjs} +1 -1
  122. package/dist/{form-VYhbbir3.cjs.map → form-CwPHcQYB.cjs.map} +1 -1
  123. package/dist/{form-H24puioV.js → form-DA0hUu2h.js} +3 -3
  124. package/dist/{form-H24puioV.js.map → form-DA0hUu2h.js.map} +1 -1
  125. package/dist/form.cjs +1 -1
  126. package/dist/form.js +12 -12
  127. package/dist/handover/agent-runtime-followups.md +1 -1
  128. package/dist/handover/agent-runtime-v1.md +3 -3
  129. package/dist/{icons-DBxfN91B.js → icons-C6UfxmHZ.js} +2 -2
  130. package/dist/{icons-DBxfN91B.js.map → icons-C6UfxmHZ.js.map} +1 -1
  131. package/dist/{icons-B_a1HStW.cjs → icons-CW3-oMSb.cjs} +1 -1
  132. package/dist/{icons-B_a1HStW.cjs.map → icons-CW3-oMSb.cjs.map} +1 -1
  133. package/dist/icons.cjs +1 -1
  134. package/dist/icons.js +1 -1
  135. package/dist/{iframe-BDVElN8z.js → iframe-BTjZfYyh.js} +2 -2
  136. package/dist/{iframe-BDVElN8z.js.map → iframe-BTjZfYyh.js.map} +1 -1
  137. package/dist/{iframe-CG-z9qev.cjs → iframe-wuYT2xFz.cjs} +1 -1
  138. package/dist/{iframe-CG-z9qev.cjs.map → iframe-wuYT2xFz.cjs.map} +1 -1
  139. package/dist/iframe.cjs +1 -1
  140. package/dist/iframe.js +1 -1
  141. package/dist/index.cjs +1 -1
  142. package/dist/index.js +36 -36
  143. package/dist/{input-Bt_o4sYo.js → input-B_4g2ulO.js} +2 -2
  144. package/dist/{input-Bt_o4sYo.js.map → input-B_4g2ulO.js.map} +1 -1
  145. package/dist/{input-B14Nn6xD.cjs → input-BrDiIT60.cjs} +1 -1
  146. package/dist/{input-B14Nn6xD.cjs.map → input-BrDiIT60.cjs.map} +1 -1
  147. package/dist/{input-chip-ugYu9Fn9.cjs → input-chip-B-XWh4aE.cjs} +1 -1
  148. package/dist/{input-chip-ugYu9Fn9.cjs.map → input-chip-B-XWh4aE.cjs.map} +1 -1
  149. package/dist/{input-chip-DEqO0DXc.js → input-chip-BlWhOruv.js} +2 -2
  150. package/dist/{input-chip-DEqO0DXc.js.map → input-chip-BlWhOruv.js.map} +1 -1
  151. package/dist/input.cjs +1 -1
  152. package/dist/input.js +1 -1
  153. package/dist/json.cjs +1 -1
  154. package/dist/json.js +3 -3
  155. package/dist/kbd.cjs +1 -1
  156. package/dist/kbd.js +2 -2
  157. package/dist/{layout-DF9ZaQ-b.cjs → layout-BhyIcEVu.cjs} +1 -1
  158. package/dist/{layout-DF9ZaQ-b.cjs.map → layout-BhyIcEVu.cjs.map} +1 -1
  159. package/dist/{layout-BJ_43VrH.js → layout-Dxit9enO.js} +1 -1
  160. package/dist/{layout-BJ_43VrH.js.map → layout-Dxit9enO.js.map} +1 -1
  161. package/dist/layout.cjs +1 -1
  162. package/dist/layout.js +2 -2
  163. package/dist/{lightbox-B47Zoqv-.cjs → lightbox-CVBogswK.cjs} +1 -1
  164. package/dist/{lightbox-B47Zoqv-.cjs.map → lightbox-CVBogswK.cjs.map} +1 -1
  165. package/dist/{lightbox-ZmuoBBFT.js → lightbox-D85XAAuC.js} +2 -2
  166. package/dist/{lightbox-ZmuoBBFT.js.map → lightbox-D85XAAuC.js.map} +1 -1
  167. package/dist/lightbox.cjs +1 -1
  168. package/dist/lightbox.js +1 -1
  169. package/dist/{list-C47xzld_.js → list-DOF_yVn5.js} +2 -2
  170. package/dist/{list-C47xzld_.js.map → list-DOF_yVn5.js.map} +1 -1
  171. package/dist/{list-CaSWrlG2.cjs → list-nVjLskgx.cjs} +1 -1
  172. package/dist/{list-CaSWrlG2.cjs.map → list-nVjLskgx.cjs.map} +1 -1
  173. package/dist/list.cjs +1 -1
  174. package/dist/list.js +1 -1
  175. package/dist/{menu-Jpsy85SX.cjs → menu-DqmNjLgY.cjs} +1 -1
  176. package/dist/{menu-Jpsy85SX.cjs.map → menu-DqmNjLgY.cjs.map} +1 -1
  177. package/dist/{menu-8RObM6Ie.js → menu-QrAK5Uu9.js} +3 -3
  178. package/dist/{menu-8RObM6Ie.js.map → menu-QrAK5Uu9.js.map} +1 -1
  179. package/dist/menu.cjs +1 -1
  180. package/dist/menu.js +1 -1
  181. package/dist/{mixins-DTzfFVyv.js → mixins-De1zjyhy.js} +1 -1
  182. package/dist/{mixins-DTzfFVyv.js.map → mixins-De1zjyhy.js.map} +1 -1
  183. package/dist/{mixins-DPdzC9ZH.cjs → mixins-DxHpyMHA.cjs} +1 -1
  184. package/dist/{mixins-DPdzC9ZH.cjs.map → mixins-DxHpyMHA.cjs.map} +1 -1
  185. package/dist/mixins.cjs +1 -1
  186. package/dist/mixins.js +2 -2
  187. package/dist/nav-drawer.cjs +1 -1
  188. package/dist/nav-drawer.js +1 -1
  189. package/dist/navigation-bar.cjs +1 -1
  190. package/dist/navigation-bar.js +1 -1
  191. package/dist/navigation-rail.cjs +1 -1
  192. package/dist/navigation-rail.js +2 -2
  193. package/dist/{notification-Ccktcj9H.js → notification-BtAK7NK8.js} +4 -4
  194. package/dist/{notification-Ccktcj9H.js.map → notification-BtAK7NK8.js.map} +1 -1
  195. package/dist/{notification-DSkB-sn0.cjs → notification-DYzbUb5C.cjs} +1 -1
  196. package/dist/{notification-DSkB-sn0.cjs.map → notification-DYzbUb5C.cjs.map} +1 -1
  197. package/dist/notification.cjs +1 -1
  198. package/dist/notification.js +1 -1
  199. package/dist/{option-CkMxwBqU.js → option-DHwA0miA.js} +2 -2
  200. package/dist/{option-CkMxwBqU.js.map → option-DHwA0miA.js.map} +1 -1
  201. package/dist/{option-0aNiVB3Q.cjs → option-DnSPa8ro.cjs} +1 -1
  202. package/dist/{option-0aNiVB3Q.cjs.map → option-DnSPa8ro.cjs.map} +1 -1
  203. package/dist/option.cjs +1 -1
  204. package/dist/option.js +1 -1
  205. package/dist/{overlay-BS-ta-zq.cjs → overlay-BVkqZmoS.cjs} +1 -1
  206. package/dist/{overlay-BS-ta-zq.cjs.map → overlay-BVkqZmoS.cjs.map} +1 -1
  207. package/dist/{overlay-H3Wt_dgQ.js → overlay-Del1sBEB.js} +5 -5
  208. package/dist/{overlay-H3Wt_dgQ.js.map → overlay-Del1sBEB.js.map} +1 -1
  209. package/dist/overlay.cjs +1 -1
  210. package/dist/{overlay.confirm-body-CR9xaqOE.cjs → overlay.confirm-body-BV9umTAl.cjs} +1 -1
  211. package/dist/{overlay.confirm-body-CR9xaqOE.cjs.map → overlay.confirm-body-BV9umTAl.cjs.map} +1 -1
  212. package/dist/{overlay.confirm-body-Dxn_wNm3.js → overlay.confirm-body-DSONXUzl.js} +6 -6
  213. package/dist/{overlay.confirm-body-Dxn_wNm3.js.map → overlay.confirm-body-DSONXUzl.js.map} +1 -1
  214. package/dist/overlay.js +3 -3
  215. package/dist/{overlay.service-C46kOtUi.js → overlay.service-BTp5Oq7f.js} +2 -2
  216. package/dist/{overlay.service-C46kOtUi.js.map → overlay.service-BTp5Oq7f.js.map} +1 -1
  217. package/dist/{overlay.service-DEj3rfRr.cjs → overlay.service-XLlrsSdA.cjs} +1 -1
  218. package/dist/{overlay.service-DEj3rfRr.cjs.map → overlay.service-XLlrsSdA.cjs.map} +1 -1
  219. package/dist/{progress-zs18GR6C.cjs → progress-DUbTL9g9.cjs} +1 -1
  220. package/dist/{progress-zs18GR6C.cjs.map → progress-DUbTL9g9.cjs.map} +1 -1
  221. package/dist/{progress-BK7gSq8j.js → progress-DYA83CFU.js} +2 -2
  222. package/dist/{progress-BK7gSq8j.js.map → progress-DYA83CFU.js.map} +1 -1
  223. package/dist/progress.cjs +1 -1
  224. package/dist/progress.js +1 -1
  225. package/dist/{radio-group-DbYlyPc-.cjs → radio-group-B-ORNtvR.cjs} +1 -1
  226. package/dist/{radio-group-DbYlyPc-.cjs.map → radio-group-B-ORNtvR.cjs.map} +1 -1
  227. package/dist/{radio-group-1HCpzRUB.js → radio-group-DxX0iJBo.js} +2 -2
  228. package/dist/{radio-group-1HCpzRUB.js.map → radio-group-DxX0iJBo.js.map} +1 -1
  229. package/dist/radio-group.cjs +1 -1
  230. package/dist/radio-group.js +1 -1
  231. package/dist/range.cjs +1 -1
  232. package/dist/range.js +2 -2
  233. package/dist/{select-B-SSmUDe.cjs → select-B9uj_u-s.cjs} +1 -1
  234. package/dist/{select-B-SSmUDe.cjs.map → select-B9uj_u-s.cjs.map} +1 -1
  235. package/dist/{select-CEyhNtZ2.js → select-C7gkA-ab.js} +3 -3
  236. package/dist/{select-CEyhNtZ2.js.map → select-C7gkA-ab.js.map} +1 -1
  237. package/dist/select.cjs +1 -1
  238. package/dist/select.js +1 -1
  239. package/dist/skeleton.cjs +1 -1
  240. package/dist/skeleton.js +2 -2
  241. package/dist/skills/SKILL.md +14 -11
  242. package/dist/skills/schmancy/SKILL.md +14 -11
  243. package/dist/skills/schmancy/steps.md +68 -34
  244. package/dist/skills/steps.md +68 -34
  245. package/dist/slider.cjs +1 -1
  246. package/dist/slider.js +2 -2
  247. package/dist/{sound.service-G_8GV_6L.cjs → sound.service-C7FDY_yD.cjs} +1 -1
  248. package/dist/{sound.service-G_8GV_6L.cjs.map → sound.service-C7FDY_yD.cjs.map} +1 -1
  249. package/dist/{sound.service-DO4SmUUT.js → sound.service-O0232os6.js} +1 -1
  250. package/dist/{sound.service-DO4SmUUT.js.map → sound.service-O0232os6.js.map} +1 -1
  251. package/dist/{splash-screen-cbz4bxjB.cjs → splash-screen-DIS4odDr.cjs} +1 -1
  252. package/dist/{splash-screen-cbz4bxjB.cjs.map → splash-screen-DIS4odDr.cjs.map} +1 -1
  253. package/dist/{splash-screen-B1mM4_xz.js → splash-screen-jfE47xl0.js} +2 -2
  254. package/dist/{splash-screen-B1mM4_xz.js.map → splash-screen-jfE47xl0.js.map} +1 -1
  255. package/dist/splash-screen.cjs +1 -1
  256. package/dist/splash-screen.js +1 -1
  257. package/dist/{src-tncsWsTY.js → src-BP3h-9d9.js} +35 -35
  258. package/dist/{src-tncsWsTY.js.map → src-BP3h-9d9.js.map} +1 -1
  259. package/dist/{src-czeiuT1m.cjs → src-Um_pzb-U.cjs} +1 -1
  260. package/dist/{src-czeiuT1m.cjs.map → src-Um_pzb-U.cjs.map} +1 -1
  261. package/dist/{state-Cx0aoL5e.cjs → state-Bj0M9a6T.cjs} +1 -1
  262. package/dist/{state-Cx0aoL5e.cjs.map → state-Bj0M9a6T.cjs.map} +1 -1
  263. package/dist/{state-DJDp3N7J.js → state-DscWQpoM.js} +1 -1
  264. package/dist/{state-DJDp3N7J.js.map → state-DscWQpoM.js.map} +1 -1
  265. package/dist/state.cjs +1 -1
  266. package/dist/state.js +2 -2
  267. package/dist/steps.cjs +35 -19
  268. package/dist/steps.cjs.map +1 -1
  269. package/dist/steps.js +96 -73
  270. package/dist/steps.js.map +1 -1
  271. package/dist/{surface-CYBl8_a3.js → surface-B4Wn4SOO.js} +2 -2
  272. package/dist/{surface-CYBl8_a3.js.map → surface-B4Wn4SOO.js.map} +1 -1
  273. package/dist/{surface-C3cxTcJD.cjs → surface-DRq6cVW6.cjs} +1 -1
  274. package/dist/{surface-C3cxTcJD.cjs.map → surface-DRq6cVW6.cjs.map} +1 -1
  275. package/dist/surface.cjs +1 -1
  276. package/dist/surface.js +1 -1
  277. package/dist/switch.cjs +1 -1
  278. package/dist/switch.js +2 -2
  279. package/dist/table.cjs +1 -1
  280. package/dist/table.js +2 -2
  281. package/dist/{tabs-ORQ_Zd43.cjs → tabs-Ca_fbHPW.cjs} +1 -1
  282. package/dist/{tabs-ORQ_Zd43.cjs.map → tabs-Ca_fbHPW.cjs.map} +1 -1
  283. package/dist/{tabs-DHy93Q3N.js → tabs-CnQPo-XS.js} +2 -2
  284. package/dist/{tabs-DHy93Q3N.js.map → tabs-CnQPo-XS.js.map} +1 -1
  285. package/dist/tabs.cjs +1 -1
  286. package/dist/tabs.js +1 -1
  287. package/dist/teleport.cjs +1 -1
  288. package/dist/teleport.js +1 -1
  289. package/dist/{textarea-DHIMt-ly.js → textarea-BvqENhTW.js} +2 -2
  290. package/dist/{textarea-DHIMt-ly.js.map → textarea-BvqENhTW.js.map} +1 -1
  291. package/dist/{textarea-CEUaDURR.cjs → textarea-qr7oL8oU.cjs} +1 -1
  292. package/dist/{textarea-CEUaDURR.cjs.map → textarea-qr7oL8oU.cjs.map} +1 -1
  293. package/dist/textarea.cjs +1 -1
  294. package/dist/textarea.js +1 -1
  295. package/dist/{theme-CJpjkqHr.cjs → theme-BSwJ2YZo.cjs} +1 -1
  296. package/dist/{theme-CJpjkqHr.cjs.map → theme-BSwJ2YZo.cjs.map} +1 -1
  297. package/dist/{theme-CgI9PRco.js → theme-BV0EzHQ1.js} +5 -5
  298. package/dist/{theme-CgI9PRco.js.map → theme-BV0EzHQ1.js.map} +1 -1
  299. package/dist/{theme-button--FuBkuVr.cjs → theme-button-C6fpUzPM.cjs} +1 -1
  300. package/dist/{theme-button--FuBkuVr.cjs.map → theme-button-C6fpUzPM.cjs.map} +1 -1
  301. package/dist/{theme-button-D-FXb3oO.js → theme-button-O_xNCgI7.js} +2 -2
  302. package/dist/{theme-button-D-FXb3oO.js.map → theme-button-O_xNCgI7.js.map} +1 -1
  303. package/dist/theme-button.cjs +1 -1
  304. package/dist/theme-button.js +1 -1
  305. package/dist/theme.cjs +1 -1
  306. package/dist/theme.js +3 -3
  307. package/dist/{theme.service-BfTK1Wtl.js → theme.service-DwLhhOmP.js} +1 -1
  308. package/dist/{theme.service-BfTK1Wtl.js.map → theme.service-DwLhhOmP.js.map} +1 -1
  309. package/dist/{theme.service-Dg7LO0Qz.cjs → theme.service-kn9MC025.cjs} +1 -1
  310. package/dist/{theme.service-Dg7LO0Qz.cjs.map → theme.service-kn9MC025.cjs.map} +1 -1
  311. package/dist/tree.cjs +1 -1
  312. package/dist/tree.js +2 -2
  313. package/dist/{typography-BEGLfHwz.js → typography-Dtdooaic.js} +2 -2
  314. package/dist/{typography-BEGLfHwz.js.map → typography-Dtdooaic.js.map} +1 -1
  315. package/dist/{typography-CxA3sx9B.cjs → typography-opFYuUYS.cjs} +1 -1
  316. package/dist/{typography-CxA3sx9B.cjs.map → typography-opFYuUYS.cjs.map} +1 -1
  317. package/dist/typography.cjs +1 -1
  318. package/dist/typography.js +1 -1
  319. package/dist/visually-hidden.cjs +1 -1
  320. package/dist/visually-hidden.js +2 -2
  321. package/dist/{window-Vl1u1-EG.cjs → window-BSAemI9J.cjs} +1 -1
  322. package/dist/{window-Vl1u1-EG.cjs.map → window-BSAemI9J.cjs.map} +1 -1
  323. package/dist/{window-B_n4P9az.js → window-ConcHirJ.js} +3 -3
  324. package/dist/{window-B_n4P9az.js.map → window-ConcHirJ.js.map} +1 -1
  325. package/dist/window.cjs +1 -1
  326. package/dist/window.js +1 -1
  327. package/package.json +1 -1
  328. package/skills/schmancy/SKILL.md +14 -11
  329. package/skills/schmancy/steps.md +68 -34
  330. package/src/directives/reveal.ts +192 -118
  331. package/src/steps/index.ts +1 -1
  332. package/src/steps/schmancy-step.ts +91 -65
  333. package/src/steps/{schmancy-steps-container.ts → schmancy-steps.ts} +18 -38
  334. package/src/steps/steps.context.ts +5 -4
  335. package/src/steps/steps.test.ts +120 -0
  336. package/types/src/directives/reveal.d.ts +15 -5
  337. package/types/src/steps/index.d.ts +1 -1
  338. package/types/src/steps/schmancy-step.d.ts +8 -23
  339. package/types/src/steps/{schmancy-steps-container.d.ts → schmancy-steps.d.ts} +8 -9
  340. package/types/src/steps/steps.context.d.ts +2 -1
  341. package/types/src/steps/steps.test.d.ts +2 -0
  342. package/dist/SchmancyElement-BBzRWB1w.cjs +0 -2
  343. package/dist/SchmancyElement-C3CpdNsi.js +0 -284
@@ -1,53 +1,87 @@
1
- # schmancy-steps-container / schmancy-step
1
+ # schmancy-steps / schmancy-step
2
2
 
3
- > Vertical stepper with collapsible steps, completion state, and navigation.
3
+ > Vertical stepper with orientation rail and optional collapsible content. Dual render mode decided per step by content presence.
4
4
 
5
5
  ## Usage
6
+
6
7
  ```html
7
- <schmancy-steps-container currentStep="1" @change=${(e) => handleStep(e.detail.value)}>
8
- <schmancy-step position="1" title="Account" description="Create your account">
8
+ <!-- Rail mode (no slotted content) dot + connector + label -->
9
+ <schmancy-steps
10
+ class="flex flex-col"
11
+ .value=${activeStep}
12
+ @change=${(e) => handleStep(e.detail.value)}
13
+ >
14
+ <schmancy-step position="1" label="Organisation"></schmancy-step>
15
+ <schmancy-step position="2" label="Legal entity"></schmancy-step>
16
+ <schmancy-step position="3" label="Location"></schmancy-step>
17
+ <schmancy-step position="4" label="Done"></schmancy-step>
18
+ </schmancy-steps>
19
+
20
+ <!-- Content mode (slotted content) — collapsible card, active step expands -->
21
+ <schmancy-steps .value=${activeStep} @change=${(e) => handleStep(e.detail.value)}>
22
+ <schmancy-step position="1" label="Account" description="Create your account">
9
23
  <schmancy-input label="Email" required></schmancy-input>
10
24
  </schmancy-step>
11
- <schmancy-step position="2" title="Profile" description="Set up profile">
25
+ <schmancy-step position="2" label="Profile" description="Set up profile">
12
26
  <schmancy-input label="Name" required></schmancy-input>
13
27
  </schmancy-step>
14
- </schmancy-steps-container>
28
+ </schmancy-steps>
15
29
  ```
16
30
 
17
- ## Properties (schmancy-steps-container)
18
- | Property | Type | Default | Description |
19
- |----------|------|---------|-------------|
20
- | currentStep | number | `1` | Currently active step (1-based) |
21
- | gap | number | `4` | Gap between steps (Tailwind scale) |
31
+ ## Properties schmancy-steps
22
32
 
23
- ## Properties (schmancy-step)
24
33
  | Property | Type | Default | Description |
25
- |----------|------|---------|-------------|
26
- | position | number | `1` | Step position (1-based) |
27
- | title | string | `''` | Step title |
28
- | description | string | `''` | Step description |
29
- | completed | boolean | `false` | Explicitly mark as complete |
30
- | lockBack | boolean | `false` | Prevent navigating to previous steps |
31
-
32
- ## Events (schmancy-steps-container)
34
+ |---|---|---|---|
35
+ | `value` | `number` | `1` | Active step (1-based). Reflected attribute. |
36
+ | `lockBack` | `boolean` | `false` | Block back-navigation for the whole stepper. |
37
+
38
+ Layout (spacing, orientation, width) is set by Tailwind classes on the host element; the primitive owns no layout props.
39
+
40
+ ## Events — schmancy-steps
41
+
33
42
  | Event | Detail | Description |
34
- |-------|--------|-------------|
35
- | change | `{ value: number }` | When current step changes |
43
+ |---|---|---|
44
+ | `change` | `{ value: number }` | Active step changed (property set or step click). |
45
+
46
+ ```ts
47
+ export type SchmancyStepsChangeEvent = CustomEvent<{ value: number }>
48
+ ```
49
+
50
+ ## Properties — schmancy-step
51
+
52
+ | Property | Type | Default | Description |
53
+ |---|---|---|---|
54
+ | `position` | `number` | `1` | This step's 1-based index. Unique within the container. |
55
+ | `label` | `string` | `''` | Step label. |
56
+ | `description` | `string` | `''` | Secondary line (content mode only). |
57
+ | `completed` | `boolean` | `false` | Force complete status regardless of order. |
58
+
59
+ ## Dual render mode
60
+
61
+ A `<schmancy-step>` detects its own content via `slotchange`:
62
+
63
+ - **With slotted content** — renders an interactive card row (icon circle, check/dot, label + description, `bg-primary-container/20` active card). The active step expands with `flex: 1 1 auto`; inactive steps collapse.
64
+ - **Without slotted content** — renders a minimal orientation rail row (dot + connector + label). Use this for a left-panel navigation rail.
65
+
66
+ ## Step status
67
+
68
+ | Condition | Status |
69
+ |---|---|
70
+ | `position < value` or `completed` | `complete` |
71
+ | `position === value` | `current` |
72
+ | `position > value` | `upcoming` |
73
+
74
+ Clicking a `complete` or `current` step sets `value` and emits `change`. `upcoming` steps are inert. Back-navigation is blocked when the container has `lockBack`.
36
75
 
37
76
  ## Examples
77
+
38
78
  ```html
39
- <!-- With locked steps -->
40
- <schmancy-steps-container currentStep="2">
41
- <schmancy-step position="1" title="Step 1" completed lockBack>
42
- <!-- Already completed, cannot go back -->
43
- </schmancy-step>
44
- <schmancy-step position="2" title="Step 2">
79
+ <!-- Lock back-navigation after the first step -->
80
+ <schmancy-steps .value=${step} lockBack @change=${onStep}>
81
+ <schmancy-step position="1" label="Review" completed></schmancy-step>
82
+ <schmancy-step position="2" label="Confirm">
45
83
  <p>Current step content</p>
46
84
  </schmancy-step>
47
- <schmancy-step position="3" title="Step 3">
48
- <!-- Not yet reachable -->
49
- </schmancy-step>
50
- </schmancy-steps-container>
85
+ <schmancy-step position="3" label="Done"></schmancy-step>
86
+ </schmancy-steps>
51
87
  ```
52
-
53
- Only the active step renders its slotted content. Completed steps show a checkmark. Active step expands with `flex: 1`.
@@ -1,53 +1,87 @@
1
- # schmancy-steps-container / schmancy-step
1
+ # schmancy-steps / schmancy-step
2
2
 
3
- > Vertical stepper with collapsible steps, completion state, and navigation.
3
+ > Vertical stepper with orientation rail and optional collapsible content. Dual render mode decided per step by content presence.
4
4
 
5
5
  ## Usage
6
+
6
7
  ```html
7
- <schmancy-steps-container currentStep="1" @change=${(e) => handleStep(e.detail.value)}>
8
- <schmancy-step position="1" title="Account" description="Create your account">
8
+ <!-- Rail mode (no slotted content) dot + connector + label -->
9
+ <schmancy-steps
10
+ class="flex flex-col"
11
+ .value=${activeStep}
12
+ @change=${(e) => handleStep(e.detail.value)}
13
+ >
14
+ <schmancy-step position="1" label="Organisation"></schmancy-step>
15
+ <schmancy-step position="2" label="Legal entity"></schmancy-step>
16
+ <schmancy-step position="3" label="Location"></schmancy-step>
17
+ <schmancy-step position="4" label="Done"></schmancy-step>
18
+ </schmancy-steps>
19
+
20
+ <!-- Content mode (slotted content) — collapsible card, active step expands -->
21
+ <schmancy-steps .value=${activeStep} @change=${(e) => handleStep(e.detail.value)}>
22
+ <schmancy-step position="1" label="Account" description="Create your account">
9
23
  <schmancy-input label="Email" required></schmancy-input>
10
24
  </schmancy-step>
11
- <schmancy-step position="2" title="Profile" description="Set up profile">
25
+ <schmancy-step position="2" label="Profile" description="Set up profile">
12
26
  <schmancy-input label="Name" required></schmancy-input>
13
27
  </schmancy-step>
14
- </schmancy-steps-container>
28
+ </schmancy-steps>
15
29
  ```
16
30
 
17
- ## Properties (schmancy-steps-container)
18
- | Property | Type | Default | Description |
19
- |----------|------|---------|-------------|
20
- | currentStep | number | `1` | Currently active step (1-based) |
21
- | gap | number | `4` | Gap between steps (Tailwind scale) |
31
+ ## Properties schmancy-steps
22
32
 
23
- ## Properties (schmancy-step)
24
33
  | Property | Type | Default | Description |
25
- |----------|------|---------|-------------|
26
- | position | number | `1` | Step position (1-based) |
27
- | title | string | `''` | Step title |
28
- | description | string | `''` | Step description |
29
- | completed | boolean | `false` | Explicitly mark as complete |
30
- | lockBack | boolean | `false` | Prevent navigating to previous steps |
31
-
32
- ## Events (schmancy-steps-container)
34
+ |---|---|---|---|
35
+ | `value` | `number` | `1` | Active step (1-based). Reflected attribute. |
36
+ | `lockBack` | `boolean` | `false` | Block back-navigation for the whole stepper. |
37
+
38
+ Layout (spacing, orientation, width) is set by Tailwind classes on the host element; the primitive owns no layout props.
39
+
40
+ ## Events — schmancy-steps
41
+
33
42
  | Event | Detail | Description |
34
- |-------|--------|-------------|
35
- | change | `{ value: number }` | When current step changes |
43
+ |---|---|---|
44
+ | `change` | `{ value: number }` | Active step changed (property set or step click). |
45
+
46
+ ```ts
47
+ export type SchmancyStepsChangeEvent = CustomEvent<{ value: number }>
48
+ ```
49
+
50
+ ## Properties — schmancy-step
51
+
52
+ | Property | Type | Default | Description |
53
+ |---|---|---|---|
54
+ | `position` | `number` | `1` | This step's 1-based index. Unique within the container. |
55
+ | `label` | `string` | `''` | Step label. |
56
+ | `description` | `string` | `''` | Secondary line (content mode only). |
57
+ | `completed` | `boolean` | `false` | Force complete status regardless of order. |
58
+
59
+ ## Dual render mode
60
+
61
+ A `<schmancy-step>` detects its own content via `slotchange`:
62
+
63
+ - **With slotted content** — renders an interactive card row (icon circle, check/dot, label + description, `bg-primary-container/20` active card). The active step expands with `flex: 1 1 auto`; inactive steps collapse.
64
+ - **Without slotted content** — renders a minimal orientation rail row (dot + connector + label). Use this for a left-panel navigation rail.
65
+
66
+ ## Step status
67
+
68
+ | Condition | Status |
69
+ |---|---|
70
+ | `position < value` or `completed` | `complete` |
71
+ | `position === value` | `current` |
72
+ | `position > value` | `upcoming` |
73
+
74
+ Clicking a `complete` or `current` step sets `value` and emits `change`. `upcoming` steps are inert. Back-navigation is blocked when the container has `lockBack`.
36
75
 
37
76
  ## Examples
77
+
38
78
  ```html
39
- <!-- With locked steps -->
40
- <schmancy-steps-container currentStep="2">
41
- <schmancy-step position="1" title="Step 1" completed lockBack>
42
- <!-- Already completed, cannot go back -->
43
- </schmancy-step>
44
- <schmancy-step position="2" title="Step 2">
79
+ <!-- Lock back-navigation after the first step -->
80
+ <schmancy-steps .value=${step} lockBack @change=${onStep}>
81
+ <schmancy-step position="1" label="Review" completed></schmancy-step>
82
+ <schmancy-step position="2" label="Confirm">
45
83
  <p>Current step content</p>
46
84
  </schmancy-step>
47
- <schmancy-step position="3" title="Step 3">
48
- <!-- Not yet reachable -->
49
- </schmancy-step>
50
- </schmancy-steps-container>
85
+ <schmancy-step position="3" label="Done"></schmancy-step>
86
+ </schmancy-steps>
51
87
  ```
52
-
53
- Only the active step renders its slotted content. Completed steps show a checkmark. Active step expands with `flex: 1`.
package/dist/slider.cjs CHANGED
@@ -1,4 +1,4 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`}),require(`./chunk-CncqDLb2.cjs`);const e=require(`./SchmancyElement-BBzRWB1w.cjs`);require(`./mixins-DPdzC9ZH.cjs`);let t=require(`rxjs`),n=require(`rxjs/operators`),r=require(`lit/decorators.js`),i=require(`lit`),a=require(`lit/directives/cache.js`);var o=class extends e.t{constructor(...e){super(...e),this.type=`content`,this.src=``,this.alt=``,this.controls=!0,this.autoplay=!1,this.loop=!1,this.muted=!1,this.fit=`cover`}static{this.styles=[i.css`
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`}),require(`./chunk-CncqDLb2.cjs`);const e=require(`./SchmancyElement-BHfQg3Tj.cjs`);require(`./mixins-DxHpyMHA.cjs`);let t=require(`rxjs`),n=require(`rxjs/operators`),r=require(`lit/decorators.js`),i=require(`lit`),a=require(`lit/directives/cache.js`);var o=class extends e.t{constructor(...e){super(...e),this.type=`content`,this.src=``,this.alt=``,this.controls=!0,this.autoplay=!1,this.loop=!1,this.muted=!1,this.fit=`cover`}static{this.styles=[i.css`
2
2
  :host {
3
3
  display: block;
4
4
  scroll-snap-align: center; /* If your slider uses scroll-snap */
package/dist/slider.js CHANGED
@@ -1,5 +1,5 @@
1
- import { t as e, u as t } from "./SchmancyElement-C3CpdNsi.js";
2
- import "./mixins-DTzfFVyv.js";
1
+ import { t as e, u as t } from "./SchmancyElement-CDT2q1lA.js";
2
+ import "./mixins-De1zjyhy.js";
3
3
  import { fromEvent as n } from "rxjs";
4
4
  import { throttleTime as r } from "rxjs/operators";
5
5
  import { customElement as i, property as a, query as o, state as s } from "lit/decorators.js";
@@ -1 +1 @@
1
- require(`./chunk-CncqDLb2.cjs`);const e=require(`./state-Cx0aoL5e.cjs`);let t=require(`rxjs`);var n=e.a(`schmancy/sound`).local({theme:null,volume:.15,muted:!1}),r={joyful:{puffs:[{startTime:0,duration:.08,frequency:3e3,volume:.3},{startTime:.06,duration:.1,frequency:3500,volume:.35}],tones:[{startTime:.02,duration:.15,frequency:784,volume:.25,type:`sine`},{startTime:.1,duration:.2,frequency:988,volume:.3,type:`sine`},{startTime:.18,duration:.25,frequency:1175,volume:.25,type:`sine`}]},content:{puffs:[{startTime:0,duration:.2,frequency:1500,volume:.25}],tones:[{startTime:.05,duration:.3,frequency:523,volume:.2,type:`sine`,filterFrequency:800},{startTime:.15,duration:.35,frequency:659,volume:.15,type:`sine`,filterFrequency:800}]},excited:{puffs:[{startTime:0,duration:.06,frequency:2500,volume:.25},{startTime:.05,duration:.06,frequency:3e3,volume:.3},{startTime:.1,duration:.08,frequency:3500,volume:.35}],tones:[{startTime:.02,duration:.12,frequency:880,volume:.2,type:`sine`},{startTime:.08,duration:.12,frequency:1047,volume:.25,type:`sine`},{startTime:.14,duration:.15,frequency:1319,volume:.3,type:`sine`}]},proud:{puffs:[{startTime:0,duration:.15,frequency:1800,volume:.3}],tones:[{startTime:.05,duration:.25,frequency:523,volume:.25,type:`sine`},{startTime:.08,duration:.25,frequency:659,volume:.2,type:`sine`},{startTime:.11,duration:.3,frequency:784,volume:.25,type:`sine`}]},hopeful:{puffs:[{startTime:0,duration:.12,frequency:2200,volume:.2}],tones:[{startTime:.03,duration:.3,frequency:659,volume:.2,type:`sine`,frequencyEnd:880}]},relieved:{puffs:[{startTime:0,duration:.25,frequency:1200,volume:.35}],tones:[{startTime:.1,duration:.35,frequency:659,volume:.2,type:`sine`,filterFrequency:800},{startTime:.25,duration:.4,frequency:523,volume:.15,type:`sine`,filterFrequency:800}]},grateful:{puffs:[{startTime:0,duration:.15,frequency:1500,volume:.25}],tones:[{startTime:.05,duration:.3,frequency:440,volume:.2,type:`sine`,filterFrequency:800},{startTime:.15,duration:.35,frequency:523,volume:.2,type:`sine`,filterFrequency:800},{startTime:.25,duration:.4,frequency:659,volume:.15,type:`sine`,filterFrequency:800}]},peaceful:{puffs:[{startTime:0,duration:.3,frequency:800,volume:.15}],tones:[{startTime:.1,duration:.5,frequency:392,volume:.12,type:`sine`,filterFrequency:500}]},playful:{puffs:[{startTime:0,duration:.05,frequency:2800,volume:.2},{startTime:.08,duration:.05,frequency:3200,volume:.25},{startTime:.14,duration:.06,frequency:2800,volume:.2}],tones:[{startTime:.03,duration:.1,frequency:784,volume:.2,type:`sine`},{startTime:.1,duration:.08,frequency:988,volume:.25,type:`sine`},{startTime:.16,duration:.12,frequency:784,volume:.2,type:`sine`}]},amused:{puffs:[{startTime:0,duration:.04,frequency:2500,volume:.2},{startTime:.06,duration:.04,frequency:2800,volume:.22},{startTime:.11,duration:.05,frequency:2600,volume:.18}],tones:[{startTime:.05,duration:.15,frequency:880,volume:.15,type:`sine`}]},curious:{puffs:[{startTime:0,duration:.1,frequency:2e3,volume:.2}],tones:[{startTime:.03,duration:.2,frequency:659,volume:.2,type:`sine`,frequencyEnd:880}]},inspired:{puffs:[{startTime:0,duration:.1,frequency:2500,volume:.25}],tones:[{startTime:.05,duration:.3,frequency:523,volume:.2,type:`sine`},{startTime:.07,duration:.28,frequency:784.5,volume:.16,type:`sine`},{startTime:.09,duration:.26,frequency:1046,volume:.12,type:`sine`}]},confident:{puffs:[{startTime:0,duration:.12,frequency:1500,volume:.3}],tones:[{startTime:.04,duration:.2,frequency:523,volume:.25,type:`sine`},{startTime:.06,duration:.22,frequency:659,volume:.2,type:`sine`}]},loved:{puffs:[{startTime:0,duration:.2,frequency:1e3,volume:.2}],tones:[{startTime:.08,duration:.4,frequency:392,volume:.18,type:`sine`,filterFrequency:600},{startTime:.2,duration:.45,frequency:494,volume:.15,type:`sine`,filterFrequency:600}]},comforted:{puffs:[{startTime:0,duration:.25,frequency:900,volume:.18}],tones:[{startTime:.1,duration:.35,frequency:523,volume:.15,type:`sine`,filterFrequency:800},{startTime:.25,duration:.4,frequency:440,volume:.12,type:`sine`,filterFrequency:800}]},energized:{puffs:[{startTime:0,duration:.05,frequency:3e3,volume:.25},{startTime:.04,duration:.05,frequency:3500,volume:.28}],tones:[{startTime:.02,duration:.1,frequency:784,volume:.2,type:`sine`},{startTime:.08,duration:.12,frequency:988,volume:.25,type:`sine`},{startTime:.14,duration:.15,frequency:1175,volume:.22,type:`sine`}]},celebrated:{puffs:[{startTime:0,duration:.08,frequency:2500,volume:.2}],tones:[{startTime:.02,duration:.18,frequency:523,volume:.22,type:`sine`},{startTime:.08,duration:.18,frequency:659,volume:.24,type:`sine`},{startTime:.14,duration:.2,frequency:784,volume:.26,type:`sine`},{startTime:.22,duration:.3,frequency:1047,volume:.22,type:`sine`}]},sad:{puffs:[{startTime:0,duration:.3,frequency:600,volume:.25}],tones:[{startTime:.1,duration:.4,frequency:392,volume:.2,type:`sine`,filterFrequency:400},{startTime:.3,duration:.45,frequency:294,volume:.15,type:`sine`,filterFrequency:350}]},lonely:{puffs:[{startTime:0,duration:.2,frequency:700,volume:.2}],tones:[{startTime:.15,duration:.5,frequency:330,volume:.12,type:`sine`,filterFrequency:450}]},disappointed:{puffs:[{startTime:0,duration:.25,frequency:800,volume:.25}],tones:[{startTime:.08,duration:.3,frequency:523,volume:.18,type:`sine`,frequencyEnd:349}]},heartbroken:{puffs:[{startTime:0,duration:.3,frequency:600,volume:.25}],tones:[{startTime:.1,duration:.4,frequency:392,volume:.2,type:`sine`,filterFrequency:400},{startTime:.3,duration:.45,frequency:294,volume:.15,type:`sine`,filterFrequency:350}]},grieving:{puffs:[{startTime:0,duration:.3,frequency:600,volume:.25}],tones:[{startTime:.1,duration:.4,frequency:392,volume:.2,type:`sine`,filterFrequency:400},{startTime:.3,duration:.45,frequency:294,volume:.15,type:`sine`,filterFrequency:350}]},hopeless:{puffs:[{startTime:0,duration:.2,frequency:700,volume:.2}],tones:[{startTime:.15,duration:.5,frequency:330,volume:.12,type:`sine`,filterFrequency:450}]},empty:{puffs:[{startTime:0,duration:.2,frequency:700,volume:.2}],tones:[{startTime:.15,duration:.5,frequency:330,volume:.12,type:`sine`,filterFrequency:450}]},discouraged:{puffs:[{startTime:0,duration:.25,frequency:800,volume:.25}],tones:[{startTime:.08,duration:.3,frequency:523,volume:.18,type:`sine`,frequencyEnd:349}]},melancholic:{puffs:[{startTime:0,duration:.3,frequency:700,volume:.18}],tones:[{startTime:.1,duration:.45,frequency:440,volume:.15,type:`sine`,filterFrequency:500},{startTime:.3,duration:.5,frequency:392,volume:.12,type:`sine`,filterFrequency:450}]},homesick:{puffs:[{startTime:0,duration:.25,frequency:800,volume:.15}],tones:[{startTime:.1,duration:.4,frequency:440,volume:.12,type:`sine`,filterFrequency:500},{startTime:.3,duration:.45,frequency:392,volume:.1,type:`sine`,filterFrequency:450}]},hurt:{puffs:[{startTime:0,duration:.3,frequency:600,volume:.25}],tones:[{startTime:.1,duration:.4,frequency:392,volume:.2,type:`sine`,filterFrequency:400},{startTime:.3,duration:.45,frequency:294,volume:.15,type:`sine`,filterFrequency:350}]},miserable:{puffs:[{startTime:0,duration:.3,frequency:600,volume:.25}],tones:[{startTime:.1,duration:.4,frequency:392,volume:.2,type:`sine`,filterFrequency:400},{startTime:.3,duration:.45,frequency:294,volume:.15,type:`sine`,filterFrequency:350}]},regretful:{puffs:[{startTime:0,duration:.3,frequency:700,volume:.18}],tones:[{startTime:.1,duration:.45,frequency:440,volume:.15,type:`sine`,filterFrequency:500},{startTime:.3,duration:.5,frequency:392,volume:.12,type:`sine`,filterFrequency:450}]},ashamed:{puffs:[{startTime:0,duration:.25,frequency:800,volume:.25}],tones:[{startTime:.08,duration:.3,frequency:523,volume:.18,type:`sine`,frequencyEnd:349}]},inferior:{puffs:[{startTime:0,duration:.25,frequency:800,volume:.25}],tones:[{startTime:.08,duration:.3,frequency:523,volume:.18,type:`sine`,frequencyEnd:349}]},anxious:{puffs:[{startTime:0,duration:.08,frequency:1800,volume:.2},{startTime:.12,duration:.08,frequency:1900,volume:.22}],tones:[{startTime:.03,duration:.25,frequency:440,volume:.15,type:`sine`}],description:`Tight, quick puffs with uncertain wobble`},worried:{puffs:[{startTime:0,duration:.15,frequency:1200,volume:.2}],tones:[{startTime:.05,duration:.25,frequency:349,volume:.15,type:`sine`,frequencyEnd:392}]},afraid:{puffs:[{startTime:0,duration:.08,frequency:1800,volume:.2},{startTime:.12,duration:.08,frequency:1900,volume:.22}],tones:[{startTime:.03,duration:.25,frequency:440,volume:.15,type:`sine`}]},terrified:{puffs:[{startTime:0,duration:.04,frequency:3500,volume:.3}],tones:[{startTime:0,duration:.08,frequency:1047,volume:.25,type:`sine`},{startTime:.05,duration:.15,frequency:880,volume:.15,type:`sine`}]},panicked:{puffs:[{startTime:0,duration:.04,frequency:3500,volume:.3}],tones:[{startTime:0,duration:.08,frequency:1047,volume:.25,type:`sine`},{startTime:.05,duration:.15,frequency:880,volume:.15,type:`sine`}]},nervous:{puffs:[{startTime:0,duration:.05,frequency:2e3,volume:.18},{startTime:.08,duration:.05,frequency:2100,volume:.18},{startTime:.15,duration:.06,frequency:2e3,volume:.16}],tones:[{startTime:.04,duration:.2,frequency:494,volume:.12,type:`sine`}]},uneasy:{puffs:[{startTime:0,duration:.15,frequency:1200,volume:.2}],tones:[{startTime:.05,duration:.25,frequency:349,volume:.15,type:`sine`,frequencyEnd:392}]},insecure:{puffs:[{startTime:0,duration:.05,frequency:2e3,volume:.18},{startTime:.08,duration:.05,frequency:2100,volume:.18},{startTime:.15,duration:.06,frequency:2e3,volume:.16}],tones:[{startTime:.04,duration:.2,frequency:494,volume:.12,type:`sine`}]},overwhelmed:{puffs:[{startTime:0,duration:.08,frequency:1800,volume:.2},{startTime:.12,duration:.08,frequency:1900,volume:.22}],tones:[{startTime:.03,duration:.25,frequency:440,volume:.15,type:`sine`}]},stressed:{puffs:[{startTime:0,duration:.08,frequency:1800,volume:.2},{startTime:.12,duration:.08,frequency:1900,volume:.22}],tones:[{startTime:.03,duration:.25,frequency:440,volume:.15,type:`sine`}]},tense:{puffs:[{startTime:0,duration:.08,frequency:1800,volume:.2},{startTime:.12,duration:.08,frequency:1900,volume:.22}],tones:[{startTime:.03,duration:.25,frequency:440,volume:.15,type:`sine`}]},apprehensive:{puffs:[{startTime:0,duration:.15,frequency:1200,volume:.2}],tones:[{startTime:.05,duration:.25,frequency:349,volume:.15,type:`sine`,frequencyEnd:392}]},startled:{puffs:[{startTime:0,duration:.04,frequency:3500,volume:.3}],tones:[{startTime:0,duration:.08,frequency:1047,volume:.25,type:`sine`},{startTime:.05,duration:.15,frequency:880,volume:.15,type:`sine`}]},suspicious:{puffs:[{startTime:0,duration:.15,frequency:1200,volume:.2}],tones:[{startTime:.05,duration:.25,frequency:349,volume:.15,type:`sine`,frequencyEnd:392}]},vulnerable:{puffs:[{startTime:0,duration:.05,frequency:2e3,volume:.18},{startTime:.08,duration:.05,frequency:2100,volume:.18},{startTime:.15,duration:.06,frequency:2e3,volume:.16}],tones:[{startTime:.04,duration:.2,frequency:494,volume:.12,type:`sine`}]},annoyed:{puffs:[{startTime:0,duration:.1,frequency:1e3,volume:.25}],tones:[{startTime:.03,duration:.2,frequency:294,volume:.18,type:`sine`,filterFrequency:400}]},irritated:{puffs:[{startTime:0,duration:.1,frequency:1e3,volume:.25}],tones:[{startTime:.03,duration:.2,frequency:294,volume:.18,type:`sine`,filterFrequency:400}]},frustrated:{puffs:[{startTime:0,duration:.12,frequency:900,volume:.28}],tones:[{startTime:.04,duration:.15,frequency:349,volume:.2,type:`sine`},{startTime:.12,duration:.12,frequency:330,volume:.18,type:`sine`}]},angry:{puffs:[{startTime:0,duration:.12,frequency:900,volume:.28}],tones:[{startTime:.04,duration:.15,frequency:349,volume:.2,type:`sine`},{startTime:.12,duration:.12,frequency:330,volume:.18,type:`sine`}]},enraged:{puffs:[{startTime:0,duration:.12,frequency:900,volume:.28}],tones:[{startTime:.04,duration:.15,frequency:349,volume:.2,type:`sine`},{startTime:.12,duration:.12,frequency:330,volume:.18,type:`sine`}]},bitter:{puffs:[{startTime:0,duration:.12,frequency:900,volume:.28}],tones:[{startTime:.04,duration:.15,frequency:349,volume:.2,type:`sine`},{startTime:.12,duration:.12,frequency:330,volume:.18,type:`sine`}]},resentful:{puffs:[{startTime:0,duration:.1,frequency:1e3,volume:.25}],tones:[{startTime:.03,duration:.2,frequency:294,volume:.18,type:`sine`,filterFrequency:400}]},jealous:{puffs:[{startTime:0,duration:.1,frequency:1e3,volume:.25}],tones:[{startTime:.03,duration:.2,frequency:294,volume:.18,type:`sine`,filterFrequency:400}]},envious:{puffs:[{startTime:0,duration:.1,frequency:1e3,volume:.25}],tones:[{startTime:.03,duration:.2,frequency:294,volume:.18,type:`sine`,filterFrequency:400}]},indignant:{puffs:[{startTime:0,duration:.12,frequency:900,volume:.28}],tones:[{startTime:.04,duration:.15,frequency:349,volume:.2,type:`sine`},{startTime:.12,duration:.12,frequency:330,volume:.18,type:`sine`}]},impatient:{puffs:[{startTime:0,duration:.04,frequency:1500,volume:.2},{startTime:.08,duration:.04,frequency:1500,volume:.2},{startTime:.16,duration:.04,frequency:1500,volume:.22}],tones:[{startTime:.06,duration:.1,frequency:523,volume:.15,type:`sine`}]},hostile:{puffs:[{startTime:0,duration:.12,frequency:900,volume:.28}],tones:[{startTime:.04,duration:.15,frequency:349,volume:.2,type:`sine`},{startTime:.12,duration:.12,frequency:330,volume:.18,type:`sine`}]},contemptuous:{puffs:[{startTime:0,duration:.1,frequency:1e3,volume:.25}],tones:[{startTime:.03,duration:.2,frequency:294,volume:.18,type:`sine`,filterFrequency:400}]},tired:{puffs:[{startTime:0,duration:.35,frequency:500,volume:.2}],tones:[{startTime:.1,duration:.4,frequency:330,volume:.12,type:`sine`,filterFrequency:350}]},exhausted:{puffs:[{startTime:0,duration:.45,frequency:400,volume:.18}],tones:[{startTime:.15,duration:.5,frequency:294,volume:.1,type:`sine`,filterFrequency:300}]},drained:{puffs:[{startTime:0,duration:.45,frequency:400,volume:.18}],tones:[{startTime:.15,duration:.5,frequency:294,volume:.1,type:`sine`,filterFrequency:300}]},burnedOut:{puffs:[{startTime:0,duration:.45,frequency:400,volume:.18}],tones:[{startTime:.15,duration:.5,frequency:294,volume:.1,type:`sine`,filterFrequency:300}]},numb:{puffs:[{startTime:0,duration:.45,frequency:400,volume:.18}],tones:[{startTime:.15,duration:.5,frequency:294,volume:.1,type:`sine`,filterFrequency:300}]},bored:{puffs:[{startTime:0,duration:.25,frequency:600,volume:.15}],tones:[{startTime:.1,duration:.3,frequency:349,volume:.1,type:`sine`,filterFrequency:400}]},unmotivated:{puffs:[{startTime:0,duration:.25,frequency:600,volume:.15}],tones:[{startTime:.1,duration:.3,frequency:349,volume:.1,type:`sine`,filterFrequency:400}]},apathetic:{puffs:[{startTime:0,duration:.25,frequency:600,volume:.15}],tones:[{startTime:.1,duration:.3,frequency:349,volume:.1,type:`sine`,filterFrequency:400}]},restless:{puffs:[{startTime:0,duration:.35,frequency:500,volume:.2}],tones:[{startTime:.1,duration:.4,frequency:330,volume:.12,type:`sine`,filterFrequency:350}]},calm:{puffs:[{startTime:0,duration:.3,frequency:600,volume:.12}],tones:[{startTime:.1,duration:.5,frequency:392,volume:.1,type:`sine`,filterFrequency:500}]},relaxed:{puffs:[{startTime:0,duration:.35,frequency:700,volume:.15}],tones:[{startTime:.15,duration:.45,frequency:440,volume:.1,type:`sine`,filterFrequency:800},{startTime:.35,duration:.5,frequency:392,volume:.08,type:`sine`,filterFrequency:800}]},atEase:{puffs:[{startTime:0,duration:.35,frequency:700,volume:.15}],tones:[{startTime:.15,duration:.45,frequency:440,volume:.1,type:`sine`,filterFrequency:800},{startTime:.35,duration:.5,frequency:392,volume:.08,type:`sine`,filterFrequency:800}]},balanced:{puffs:[{startTime:0,duration:.3,frequency:600,volume:.12}],tones:[{startTime:.1,duration:.5,frequency:392,volume:.1,type:`sine`,filterFrequency:500}]},stable:{puffs:[{startTime:0,duration:.25,frequency:500,volume:.2}],tones:[{startTime:.1,duration:.4,frequency:262,volume:.15,type:`sine`,filterFrequency:350}]},secure:{puffs:[{startTime:0,duration:.3,frequency:700,volume:.15}],tones:[{startTime:.1,duration:.4,frequency:349,volume:.12,type:`sine`,filterFrequency:800},{startTime:.25,duration:.45,frequency:440,volume:.1,type:`sine`,filterFrequency:800}]},safe:{puffs:[{startTime:0,duration:.3,frequency:700,volume:.15}],tones:[{startTime:.1,duration:.4,frequency:349,volume:.12,type:`sine`,filterFrequency:800},{startTime:.25,duration:.45,frequency:440,volume:.1,type:`sine`,filterFrequency:800}]},centered:{puffs:[{startTime:0,duration:.25,frequency:500,volume:.2}],tones:[{startTime:.1,duration:.4,frequency:262,volume:.15,type:`sine`,filterFrequency:350}]},grounded:{puffs:[{startTime:0,duration:.25,frequency:500,volume:.2}],tones:[{startTime:.1,duration:.4,frequency:262,volume:.15,type:`sine`,filterFrequency:350}]},accepting:{puffs:[{startTime:0,duration:.3,frequency:600,volume:.12}],tones:[{startTime:.1,duration:.5,frequency:392,volume:.1,type:`sine`,filterFrequency:500}]},connected:{puffs:[{startTime:0,duration:.2,frequency:1200,volume:.18}],tones:[{startTime:.08,duration:.3,frequency:440,volume:.15,type:`sine`,filterFrequency:800},{startTime:.12,duration:.32,frequency:523,volume:.12,type:`sine`,filterFrequency:800}]},accepted:{puffs:[{startTime:0,duration:.15,frequency:1500,volume:.2}],tones:[{startTime:.05,duration:.25,frequency:440,volume:.15,type:`sine`,filterFrequency:800},{startTime:.15,duration:.3,frequency:523,volume:.18,type:`sine`,filterFrequency:800}]},included:{puffs:[{startTime:0,duration:.2,frequency:1200,volume:.18}],tones:[{startTime:.08,duration:.3,frequency:440,volume:.15,type:`sine`,filterFrequency:800},{startTime:.12,duration:.32,frequency:523,volume:.12,type:`sine`,filterFrequency:800}]},belonging:{puffs:[{startTime:0,duration:.2,frequency:1200,volume:.18}],tones:[{startTime:.08,duration:.3,frequency:440,volume:.15,type:`sine`,filterFrequency:800},{startTime:.12,duration:.32,frequency:523,volume:.12,type:`sine`,filterFrequency:800}]},appreciated:{puffs:[{startTime:0,duration:.15,frequency:1500,volume:.2}],tones:[{startTime:.05,duration:.25,frequency:440,volume:.15,type:`sine`,filterFrequency:800},{startTime:.15,duration:.3,frequency:523,volume:.18,type:`sine`,filterFrequency:800}]},valued:{puffs:[{startTime:0,duration:.15,frequency:1500,volume:.2}],tones:[{startTime:.05,duration:.25,frequency:440,volume:.15,type:`sine`,filterFrequency:800},{startTime:.15,duration:.3,frequency:523,volume:.18,type:`sine`,filterFrequency:800}]},respected:{puffs:[{startTime:0,duration:.15,frequency:1500,volume:.2}],tones:[{startTime:.05,duration:.25,frequency:440,volume:.15,type:`sine`,filterFrequency:800},{startTime:.15,duration:.3,frequency:523,volume:.18,type:`sine`,filterFrequency:800}]},supported:{puffs:[{startTime:0,duration:.25,frequency:900,volume:.18}],tones:[{startTime:.1,duration:.35,frequency:349,volume:.12,type:`sine`,filterFrequency:800},{startTime:.15,duration:.4,frequency:440,volume:.1,type:`sine`,filterFrequency:800}]},protective:{puffs:[{startTime:0,duration:.25,frequency:900,volume:.18}],tones:[{startTime:.1,duration:.35,frequency:349,volume:.12,type:`sine`,filterFrequency:800},{startTime:.15,duration:.4,frequency:440,volume:.1,type:`sine`,filterFrequency:800}]},compassionate:{puffs:[{startTime:0,duration:.2,frequency:1200,volume:.18}],tones:[{startTime:.08,duration:.3,frequency:440,volume:.15,type:`sine`,filterFrequency:800},{startTime:.12,duration:.32,frequency:523,volume:.12,type:`sine`,filterFrequency:800}]},empathetic:{puffs:[{startTime:0,duration:.2,frequency:1200,volume:.18}],tones:[{startTime:.08,duration:.3,frequency:440,volume:.15,type:`sine`,filterFrequency:800},{startTime:.12,duration:.32,frequency:523,volume:.12,type:`sine`,filterFrequency:800}]},conflicted:{puffs:[{startTime:0,duration:.12,frequency:1200,volume:.18}],tones:[{startTime:.04,duration:.2,frequency:440,volume:.12,type:`sine`,frequencyEnd:494},{startTime:.15,duration:.15,frequency:466,volume:.1,type:`sine`}]},confused:{puffs:[{startTime:0,duration:.12,frequency:1200,volume:.18}],tones:[{startTime:.04,duration:.2,frequency:440,volume:.12,type:`sine`,frequencyEnd:494},{startTime:.15,duration:.15,frequency:466,volume:.1,type:`sine`}]},ambivalent:{puffs:[{startTime:0,duration:.12,frequency:1200,volume:.18}],tones:[{startTime:.04,duration:.2,frequency:440,volume:.12,type:`sine`,frequencyEnd:494},{startTime:.15,duration:.15,frequency:466,volume:.1,type:`sine`}]},nostalgic:{puffs:[{startTime:0,duration:.25,frequency:800,volume:.15}],tones:[{startTime:.1,duration:.4,frequency:440,volume:.12,type:`sine`,filterFrequency:500},{startTime:.3,duration:.45,frequency:392,volume:.1,type:`sine`,filterFrequency:450}]},guilty:{puffs:[{startTime:0,duration:.25,frequency:800,volume:.25}],tones:[{startTime:.08,duration:.3,frequency:523,volume:.18,type:`sine`,frequencyEnd:349}]},embarrassed:{puffs:[{startTime:0,duration:.05,frequency:2e3,volume:.18},{startTime:.08,duration:.05,frequency:2100,volume:.18},{startTime:.15,duration:.06,frequency:2e3,volume:.16}],tones:[{startTime:.04,duration:.2,frequency:494,volume:.12,type:`sine`}]},surprised:{puffs:[{startTime:0,duration:.06,frequency:2800,volume:.25}],tones:[{startTime:.02,duration:.15,frequency:659,volume:.2,type:`sine`,frequencyEnd:988}]},shocked:{puffs:[{startTime:0,duration:.04,frequency:3500,volume:.3}],tones:[{startTime:0,duration:.08,frequency:1047,volume:.25,type:`sine`},{startTime:.05,duration:.15,frequency:880,volume:.15,type:`sine`}]},awestruck:{puffs:[{startTime:0,duration:.2,frequency:1500,volume:.2}],tones:[{startTime:.08,duration:.4,frequency:440,volume:.15,type:`sine`},{startTime:.1,duration:.38,frequency:660,volume:.12,type:`sine`},{startTime:.12,duration:.36,frequency:880,volume:.09,type:`sine`}]},skeptical:{puffs:[{startTime:0,duration:.12,frequency:1200,volume:.18}],tones:[{startTime:.04,duration:.2,frequency:440,volume:.12,type:`sine`,frequencyEnd:494},{startTime:.15,duration:.15,frequency:466,volume:.1,type:`sine`}]}},i=class e{get theme(){return n.value.theme}get volume(){return n.value.volume}get muted(){return n.value.muted}get themeName(){return this.theme?.name??`default`}constructor(){this.audioContext=null,this.theme$=n.$.pipe((0,t.map)(e=>e.theme),(0,t.shareReplay)(1)),this.volume$=n.$.pipe((0,t.map)(e=>e.volume),(0,t.distinctUntilChanged)(),(0,t.shareReplay)(1)),this.muted$=n.$.pipe((0,t.map)(e=>e.muted),(0,t.distinctUntilChanged)(),(0,t.shareReplay)(1)),this._themeName$=new t.BehaviorSubject(`default`),this.themeName$=this._themeName$.asObservable(),this.theme$.subscribe(e=>{this._themeName$.next(e?.name??`default`)})}getContext(){if(!this.audioContext){let e=window.AudioContext||window.webkitAudioContext;this.audioContext=new e}return this.audioContext.state===`suspended`&&this.audioContext.resume(),this.audioContext}playPuff(e,t,n){let r=this.getContext(),i=Math.floor(r.sampleRate*t.duration),a=r.createBuffer(1,i,r.sampleRate),o=a.getChannelData(0);for(let e=0;e<i;e++)o[e]=2*Math.random()-1;let s=r.createBufferSource();s.buffer=a;let c=r.createBiquadFilter();c.type=`bandpass`,c.frequency.value=t.frequency,c.Q.value=.7;let l=r.createGain();l.gain.setValueAtTime(0,e),l.gain.linearRampToValueAtTime(t.volume*n,e+.015),l.gain.exponentialRampToValueAtTime(.001,e+t.duration),s.connect(c).connect(l).connect(r.destination),s.start(e),s.stop(e+t.duration)}playTone(e,t,n){let r=this.getContext(),i=r.createOscillator(),a=r.createGain();i.type=t.type,i.frequency.setValueAtTime(t.frequency,e),t.frequencyEnd&&i.frequency.exponentialRampToValueAtTime(t.frequencyEnd,e+.8*t.duration);let o=i;if(t.filterFrequency){let e=r.createBiquadFilter();e.type=`lowpass`,e.frequency.value=t.filterFrequency,i.connect(e),o=e}a.gain.setValueAtTime(0,e),a.gain.linearRampToValueAtTime(t.volume*n,e+.02),a.gain.exponentialRampToValueAtTime(.001,e+t.duration),o.connect(a).connect(r.destination),i.start(e),i.stop(e+t.duration)}setTheme(e){n.set({theme:e})}resetTheme(){n.set({theme:null})}setVolume(e){n.set({volume:Math.max(0,Math.min(1,e))})}mute(){n.set({muted:!0})}unmute(){n.set({muted:!1})}toggleMute(){n.set({muted:!this.muted})}getSoundForFeeling(e){let t=this.theme;if(t?.feelings?.[e])return t.feelings[e];if(t?.categoryDefaults){let n=this.getCategoryForFeeling(e);if(t.categoryDefaults[n])return t.categoryDefaults[n]}return r[e]}getCategoryForFeeling(e){return[`joyful`,`content`,`excited`,`proud`,`hopeful`,`relieved`,`grateful`,`peaceful`,`playful`,`amused`,`curious`,`inspired`,`confident`,`loved`,`comforted`,`energized`,`celebrated`].includes(e)?`happy`:[`sad`,`lonely`,`disappointed`,`heartbroken`,`grieving`,`hopeless`,`empty`,`discouraged`,`melancholic`,`homesick`,`hurt`,`miserable`,`regretful`,`ashamed`,`inferior`].includes(e)?`sad`:[`anxious`,`worried`,`afraid`,`terrified`,`panicked`,`nervous`,`uneasy`,`insecure`,`overwhelmed`,`stressed`,`tense`,`apprehensive`,`startled`,`suspicious`,`vulnerable`].includes(e)?`anxious`:[`annoyed`,`irritated`,`frustrated`,`angry`,`enraged`,`bitter`,`resentful`,`jealous`,`envious`,`indignant`,`impatient`,`hostile`,`contemptuous`].includes(e)?`angry`:[`tired`,`exhausted`,`drained`,`burnedOut`,`numb`,`bored`,`unmotivated`,`apathetic`,`restless`].includes(e)?`tired`:[`calm`,`relaxed`,`atEase`,`balanced`,`stable`,`secure`,`safe`,`centered`,`grounded`,`accepting`].includes(e)?`calm`:[`connected`,`accepted`,`included`,`belonging`,`appreciated`,`valued`,`respected`,`supported`,`protective`,`compassionate`,`empathetic`].includes(e)?`connected`:`mixed`}play(e){if(this.muted)return;let t=this.getSoundForFeeling(e),n=this.getContext().currentTime,r=this.theme?.masterVolume??1,i=this.volume*r;t.puffs.forEach(e=>{this.playPuff(n+e.startTime,e,i)}),t.tones.forEach(e=>{this.playTone(n+e.startTime,e,i)})}dispose(){this.audioContext&&=(this.audioContext.close(),null)}static getInstance(){return e.instance||=new e,e.instance}}.getInstance(),a=i;Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return i}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return a}});
1
+ require(`./chunk-CncqDLb2.cjs`);const e=require(`./state-Bj0M9a6T.cjs`);let t=require(`rxjs`);var n=e.a(`schmancy/sound`).local({theme:null,volume:.15,muted:!1}),r={joyful:{puffs:[{startTime:0,duration:.08,frequency:3e3,volume:.3},{startTime:.06,duration:.1,frequency:3500,volume:.35}],tones:[{startTime:.02,duration:.15,frequency:784,volume:.25,type:`sine`},{startTime:.1,duration:.2,frequency:988,volume:.3,type:`sine`},{startTime:.18,duration:.25,frequency:1175,volume:.25,type:`sine`}]},content:{puffs:[{startTime:0,duration:.2,frequency:1500,volume:.25}],tones:[{startTime:.05,duration:.3,frequency:523,volume:.2,type:`sine`,filterFrequency:800},{startTime:.15,duration:.35,frequency:659,volume:.15,type:`sine`,filterFrequency:800}]},excited:{puffs:[{startTime:0,duration:.06,frequency:2500,volume:.25},{startTime:.05,duration:.06,frequency:3e3,volume:.3},{startTime:.1,duration:.08,frequency:3500,volume:.35}],tones:[{startTime:.02,duration:.12,frequency:880,volume:.2,type:`sine`},{startTime:.08,duration:.12,frequency:1047,volume:.25,type:`sine`},{startTime:.14,duration:.15,frequency:1319,volume:.3,type:`sine`}]},proud:{puffs:[{startTime:0,duration:.15,frequency:1800,volume:.3}],tones:[{startTime:.05,duration:.25,frequency:523,volume:.25,type:`sine`},{startTime:.08,duration:.25,frequency:659,volume:.2,type:`sine`},{startTime:.11,duration:.3,frequency:784,volume:.25,type:`sine`}]},hopeful:{puffs:[{startTime:0,duration:.12,frequency:2200,volume:.2}],tones:[{startTime:.03,duration:.3,frequency:659,volume:.2,type:`sine`,frequencyEnd:880}]},relieved:{puffs:[{startTime:0,duration:.25,frequency:1200,volume:.35}],tones:[{startTime:.1,duration:.35,frequency:659,volume:.2,type:`sine`,filterFrequency:800},{startTime:.25,duration:.4,frequency:523,volume:.15,type:`sine`,filterFrequency:800}]},grateful:{puffs:[{startTime:0,duration:.15,frequency:1500,volume:.25}],tones:[{startTime:.05,duration:.3,frequency:440,volume:.2,type:`sine`,filterFrequency:800},{startTime:.15,duration:.35,frequency:523,volume:.2,type:`sine`,filterFrequency:800},{startTime:.25,duration:.4,frequency:659,volume:.15,type:`sine`,filterFrequency:800}]},peaceful:{puffs:[{startTime:0,duration:.3,frequency:800,volume:.15}],tones:[{startTime:.1,duration:.5,frequency:392,volume:.12,type:`sine`,filterFrequency:500}]},playful:{puffs:[{startTime:0,duration:.05,frequency:2800,volume:.2},{startTime:.08,duration:.05,frequency:3200,volume:.25},{startTime:.14,duration:.06,frequency:2800,volume:.2}],tones:[{startTime:.03,duration:.1,frequency:784,volume:.2,type:`sine`},{startTime:.1,duration:.08,frequency:988,volume:.25,type:`sine`},{startTime:.16,duration:.12,frequency:784,volume:.2,type:`sine`}]},amused:{puffs:[{startTime:0,duration:.04,frequency:2500,volume:.2},{startTime:.06,duration:.04,frequency:2800,volume:.22},{startTime:.11,duration:.05,frequency:2600,volume:.18}],tones:[{startTime:.05,duration:.15,frequency:880,volume:.15,type:`sine`}]},curious:{puffs:[{startTime:0,duration:.1,frequency:2e3,volume:.2}],tones:[{startTime:.03,duration:.2,frequency:659,volume:.2,type:`sine`,frequencyEnd:880}]},inspired:{puffs:[{startTime:0,duration:.1,frequency:2500,volume:.25}],tones:[{startTime:.05,duration:.3,frequency:523,volume:.2,type:`sine`},{startTime:.07,duration:.28,frequency:784.5,volume:.16,type:`sine`},{startTime:.09,duration:.26,frequency:1046,volume:.12,type:`sine`}]},confident:{puffs:[{startTime:0,duration:.12,frequency:1500,volume:.3}],tones:[{startTime:.04,duration:.2,frequency:523,volume:.25,type:`sine`},{startTime:.06,duration:.22,frequency:659,volume:.2,type:`sine`}]},loved:{puffs:[{startTime:0,duration:.2,frequency:1e3,volume:.2}],tones:[{startTime:.08,duration:.4,frequency:392,volume:.18,type:`sine`,filterFrequency:600},{startTime:.2,duration:.45,frequency:494,volume:.15,type:`sine`,filterFrequency:600}]},comforted:{puffs:[{startTime:0,duration:.25,frequency:900,volume:.18}],tones:[{startTime:.1,duration:.35,frequency:523,volume:.15,type:`sine`,filterFrequency:800},{startTime:.25,duration:.4,frequency:440,volume:.12,type:`sine`,filterFrequency:800}]},energized:{puffs:[{startTime:0,duration:.05,frequency:3e3,volume:.25},{startTime:.04,duration:.05,frequency:3500,volume:.28}],tones:[{startTime:.02,duration:.1,frequency:784,volume:.2,type:`sine`},{startTime:.08,duration:.12,frequency:988,volume:.25,type:`sine`},{startTime:.14,duration:.15,frequency:1175,volume:.22,type:`sine`}]},celebrated:{puffs:[{startTime:0,duration:.08,frequency:2500,volume:.2}],tones:[{startTime:.02,duration:.18,frequency:523,volume:.22,type:`sine`},{startTime:.08,duration:.18,frequency:659,volume:.24,type:`sine`},{startTime:.14,duration:.2,frequency:784,volume:.26,type:`sine`},{startTime:.22,duration:.3,frequency:1047,volume:.22,type:`sine`}]},sad:{puffs:[{startTime:0,duration:.3,frequency:600,volume:.25}],tones:[{startTime:.1,duration:.4,frequency:392,volume:.2,type:`sine`,filterFrequency:400},{startTime:.3,duration:.45,frequency:294,volume:.15,type:`sine`,filterFrequency:350}]},lonely:{puffs:[{startTime:0,duration:.2,frequency:700,volume:.2}],tones:[{startTime:.15,duration:.5,frequency:330,volume:.12,type:`sine`,filterFrequency:450}]},disappointed:{puffs:[{startTime:0,duration:.25,frequency:800,volume:.25}],tones:[{startTime:.08,duration:.3,frequency:523,volume:.18,type:`sine`,frequencyEnd:349}]},heartbroken:{puffs:[{startTime:0,duration:.3,frequency:600,volume:.25}],tones:[{startTime:.1,duration:.4,frequency:392,volume:.2,type:`sine`,filterFrequency:400},{startTime:.3,duration:.45,frequency:294,volume:.15,type:`sine`,filterFrequency:350}]},grieving:{puffs:[{startTime:0,duration:.3,frequency:600,volume:.25}],tones:[{startTime:.1,duration:.4,frequency:392,volume:.2,type:`sine`,filterFrequency:400},{startTime:.3,duration:.45,frequency:294,volume:.15,type:`sine`,filterFrequency:350}]},hopeless:{puffs:[{startTime:0,duration:.2,frequency:700,volume:.2}],tones:[{startTime:.15,duration:.5,frequency:330,volume:.12,type:`sine`,filterFrequency:450}]},empty:{puffs:[{startTime:0,duration:.2,frequency:700,volume:.2}],tones:[{startTime:.15,duration:.5,frequency:330,volume:.12,type:`sine`,filterFrequency:450}]},discouraged:{puffs:[{startTime:0,duration:.25,frequency:800,volume:.25}],tones:[{startTime:.08,duration:.3,frequency:523,volume:.18,type:`sine`,frequencyEnd:349}]},melancholic:{puffs:[{startTime:0,duration:.3,frequency:700,volume:.18}],tones:[{startTime:.1,duration:.45,frequency:440,volume:.15,type:`sine`,filterFrequency:500},{startTime:.3,duration:.5,frequency:392,volume:.12,type:`sine`,filterFrequency:450}]},homesick:{puffs:[{startTime:0,duration:.25,frequency:800,volume:.15}],tones:[{startTime:.1,duration:.4,frequency:440,volume:.12,type:`sine`,filterFrequency:500},{startTime:.3,duration:.45,frequency:392,volume:.1,type:`sine`,filterFrequency:450}]},hurt:{puffs:[{startTime:0,duration:.3,frequency:600,volume:.25}],tones:[{startTime:.1,duration:.4,frequency:392,volume:.2,type:`sine`,filterFrequency:400},{startTime:.3,duration:.45,frequency:294,volume:.15,type:`sine`,filterFrequency:350}]},miserable:{puffs:[{startTime:0,duration:.3,frequency:600,volume:.25}],tones:[{startTime:.1,duration:.4,frequency:392,volume:.2,type:`sine`,filterFrequency:400},{startTime:.3,duration:.45,frequency:294,volume:.15,type:`sine`,filterFrequency:350}]},regretful:{puffs:[{startTime:0,duration:.3,frequency:700,volume:.18}],tones:[{startTime:.1,duration:.45,frequency:440,volume:.15,type:`sine`,filterFrequency:500},{startTime:.3,duration:.5,frequency:392,volume:.12,type:`sine`,filterFrequency:450}]},ashamed:{puffs:[{startTime:0,duration:.25,frequency:800,volume:.25}],tones:[{startTime:.08,duration:.3,frequency:523,volume:.18,type:`sine`,frequencyEnd:349}]},inferior:{puffs:[{startTime:0,duration:.25,frequency:800,volume:.25}],tones:[{startTime:.08,duration:.3,frequency:523,volume:.18,type:`sine`,frequencyEnd:349}]},anxious:{puffs:[{startTime:0,duration:.08,frequency:1800,volume:.2},{startTime:.12,duration:.08,frequency:1900,volume:.22}],tones:[{startTime:.03,duration:.25,frequency:440,volume:.15,type:`sine`}],description:`Tight, quick puffs with uncertain wobble`},worried:{puffs:[{startTime:0,duration:.15,frequency:1200,volume:.2}],tones:[{startTime:.05,duration:.25,frequency:349,volume:.15,type:`sine`,frequencyEnd:392}]},afraid:{puffs:[{startTime:0,duration:.08,frequency:1800,volume:.2},{startTime:.12,duration:.08,frequency:1900,volume:.22}],tones:[{startTime:.03,duration:.25,frequency:440,volume:.15,type:`sine`}]},terrified:{puffs:[{startTime:0,duration:.04,frequency:3500,volume:.3}],tones:[{startTime:0,duration:.08,frequency:1047,volume:.25,type:`sine`},{startTime:.05,duration:.15,frequency:880,volume:.15,type:`sine`}]},panicked:{puffs:[{startTime:0,duration:.04,frequency:3500,volume:.3}],tones:[{startTime:0,duration:.08,frequency:1047,volume:.25,type:`sine`},{startTime:.05,duration:.15,frequency:880,volume:.15,type:`sine`}]},nervous:{puffs:[{startTime:0,duration:.05,frequency:2e3,volume:.18},{startTime:.08,duration:.05,frequency:2100,volume:.18},{startTime:.15,duration:.06,frequency:2e3,volume:.16}],tones:[{startTime:.04,duration:.2,frequency:494,volume:.12,type:`sine`}]},uneasy:{puffs:[{startTime:0,duration:.15,frequency:1200,volume:.2}],tones:[{startTime:.05,duration:.25,frequency:349,volume:.15,type:`sine`,frequencyEnd:392}]},insecure:{puffs:[{startTime:0,duration:.05,frequency:2e3,volume:.18},{startTime:.08,duration:.05,frequency:2100,volume:.18},{startTime:.15,duration:.06,frequency:2e3,volume:.16}],tones:[{startTime:.04,duration:.2,frequency:494,volume:.12,type:`sine`}]},overwhelmed:{puffs:[{startTime:0,duration:.08,frequency:1800,volume:.2},{startTime:.12,duration:.08,frequency:1900,volume:.22}],tones:[{startTime:.03,duration:.25,frequency:440,volume:.15,type:`sine`}]},stressed:{puffs:[{startTime:0,duration:.08,frequency:1800,volume:.2},{startTime:.12,duration:.08,frequency:1900,volume:.22}],tones:[{startTime:.03,duration:.25,frequency:440,volume:.15,type:`sine`}]},tense:{puffs:[{startTime:0,duration:.08,frequency:1800,volume:.2},{startTime:.12,duration:.08,frequency:1900,volume:.22}],tones:[{startTime:.03,duration:.25,frequency:440,volume:.15,type:`sine`}]},apprehensive:{puffs:[{startTime:0,duration:.15,frequency:1200,volume:.2}],tones:[{startTime:.05,duration:.25,frequency:349,volume:.15,type:`sine`,frequencyEnd:392}]},startled:{puffs:[{startTime:0,duration:.04,frequency:3500,volume:.3}],tones:[{startTime:0,duration:.08,frequency:1047,volume:.25,type:`sine`},{startTime:.05,duration:.15,frequency:880,volume:.15,type:`sine`}]},suspicious:{puffs:[{startTime:0,duration:.15,frequency:1200,volume:.2}],tones:[{startTime:.05,duration:.25,frequency:349,volume:.15,type:`sine`,frequencyEnd:392}]},vulnerable:{puffs:[{startTime:0,duration:.05,frequency:2e3,volume:.18},{startTime:.08,duration:.05,frequency:2100,volume:.18},{startTime:.15,duration:.06,frequency:2e3,volume:.16}],tones:[{startTime:.04,duration:.2,frequency:494,volume:.12,type:`sine`}]},annoyed:{puffs:[{startTime:0,duration:.1,frequency:1e3,volume:.25}],tones:[{startTime:.03,duration:.2,frequency:294,volume:.18,type:`sine`,filterFrequency:400}]},irritated:{puffs:[{startTime:0,duration:.1,frequency:1e3,volume:.25}],tones:[{startTime:.03,duration:.2,frequency:294,volume:.18,type:`sine`,filterFrequency:400}]},frustrated:{puffs:[{startTime:0,duration:.12,frequency:900,volume:.28}],tones:[{startTime:.04,duration:.15,frequency:349,volume:.2,type:`sine`},{startTime:.12,duration:.12,frequency:330,volume:.18,type:`sine`}]},angry:{puffs:[{startTime:0,duration:.12,frequency:900,volume:.28}],tones:[{startTime:.04,duration:.15,frequency:349,volume:.2,type:`sine`},{startTime:.12,duration:.12,frequency:330,volume:.18,type:`sine`}]},enraged:{puffs:[{startTime:0,duration:.12,frequency:900,volume:.28}],tones:[{startTime:.04,duration:.15,frequency:349,volume:.2,type:`sine`},{startTime:.12,duration:.12,frequency:330,volume:.18,type:`sine`}]},bitter:{puffs:[{startTime:0,duration:.12,frequency:900,volume:.28}],tones:[{startTime:.04,duration:.15,frequency:349,volume:.2,type:`sine`},{startTime:.12,duration:.12,frequency:330,volume:.18,type:`sine`}]},resentful:{puffs:[{startTime:0,duration:.1,frequency:1e3,volume:.25}],tones:[{startTime:.03,duration:.2,frequency:294,volume:.18,type:`sine`,filterFrequency:400}]},jealous:{puffs:[{startTime:0,duration:.1,frequency:1e3,volume:.25}],tones:[{startTime:.03,duration:.2,frequency:294,volume:.18,type:`sine`,filterFrequency:400}]},envious:{puffs:[{startTime:0,duration:.1,frequency:1e3,volume:.25}],tones:[{startTime:.03,duration:.2,frequency:294,volume:.18,type:`sine`,filterFrequency:400}]},indignant:{puffs:[{startTime:0,duration:.12,frequency:900,volume:.28}],tones:[{startTime:.04,duration:.15,frequency:349,volume:.2,type:`sine`},{startTime:.12,duration:.12,frequency:330,volume:.18,type:`sine`}]},impatient:{puffs:[{startTime:0,duration:.04,frequency:1500,volume:.2},{startTime:.08,duration:.04,frequency:1500,volume:.2},{startTime:.16,duration:.04,frequency:1500,volume:.22}],tones:[{startTime:.06,duration:.1,frequency:523,volume:.15,type:`sine`}]},hostile:{puffs:[{startTime:0,duration:.12,frequency:900,volume:.28}],tones:[{startTime:.04,duration:.15,frequency:349,volume:.2,type:`sine`},{startTime:.12,duration:.12,frequency:330,volume:.18,type:`sine`}]},contemptuous:{puffs:[{startTime:0,duration:.1,frequency:1e3,volume:.25}],tones:[{startTime:.03,duration:.2,frequency:294,volume:.18,type:`sine`,filterFrequency:400}]},tired:{puffs:[{startTime:0,duration:.35,frequency:500,volume:.2}],tones:[{startTime:.1,duration:.4,frequency:330,volume:.12,type:`sine`,filterFrequency:350}]},exhausted:{puffs:[{startTime:0,duration:.45,frequency:400,volume:.18}],tones:[{startTime:.15,duration:.5,frequency:294,volume:.1,type:`sine`,filterFrequency:300}]},drained:{puffs:[{startTime:0,duration:.45,frequency:400,volume:.18}],tones:[{startTime:.15,duration:.5,frequency:294,volume:.1,type:`sine`,filterFrequency:300}]},burnedOut:{puffs:[{startTime:0,duration:.45,frequency:400,volume:.18}],tones:[{startTime:.15,duration:.5,frequency:294,volume:.1,type:`sine`,filterFrequency:300}]},numb:{puffs:[{startTime:0,duration:.45,frequency:400,volume:.18}],tones:[{startTime:.15,duration:.5,frequency:294,volume:.1,type:`sine`,filterFrequency:300}]},bored:{puffs:[{startTime:0,duration:.25,frequency:600,volume:.15}],tones:[{startTime:.1,duration:.3,frequency:349,volume:.1,type:`sine`,filterFrequency:400}]},unmotivated:{puffs:[{startTime:0,duration:.25,frequency:600,volume:.15}],tones:[{startTime:.1,duration:.3,frequency:349,volume:.1,type:`sine`,filterFrequency:400}]},apathetic:{puffs:[{startTime:0,duration:.25,frequency:600,volume:.15}],tones:[{startTime:.1,duration:.3,frequency:349,volume:.1,type:`sine`,filterFrequency:400}]},restless:{puffs:[{startTime:0,duration:.35,frequency:500,volume:.2}],tones:[{startTime:.1,duration:.4,frequency:330,volume:.12,type:`sine`,filterFrequency:350}]},calm:{puffs:[{startTime:0,duration:.3,frequency:600,volume:.12}],tones:[{startTime:.1,duration:.5,frequency:392,volume:.1,type:`sine`,filterFrequency:500}]},relaxed:{puffs:[{startTime:0,duration:.35,frequency:700,volume:.15}],tones:[{startTime:.15,duration:.45,frequency:440,volume:.1,type:`sine`,filterFrequency:800},{startTime:.35,duration:.5,frequency:392,volume:.08,type:`sine`,filterFrequency:800}]},atEase:{puffs:[{startTime:0,duration:.35,frequency:700,volume:.15}],tones:[{startTime:.15,duration:.45,frequency:440,volume:.1,type:`sine`,filterFrequency:800},{startTime:.35,duration:.5,frequency:392,volume:.08,type:`sine`,filterFrequency:800}]},balanced:{puffs:[{startTime:0,duration:.3,frequency:600,volume:.12}],tones:[{startTime:.1,duration:.5,frequency:392,volume:.1,type:`sine`,filterFrequency:500}]},stable:{puffs:[{startTime:0,duration:.25,frequency:500,volume:.2}],tones:[{startTime:.1,duration:.4,frequency:262,volume:.15,type:`sine`,filterFrequency:350}]},secure:{puffs:[{startTime:0,duration:.3,frequency:700,volume:.15}],tones:[{startTime:.1,duration:.4,frequency:349,volume:.12,type:`sine`,filterFrequency:800},{startTime:.25,duration:.45,frequency:440,volume:.1,type:`sine`,filterFrequency:800}]},safe:{puffs:[{startTime:0,duration:.3,frequency:700,volume:.15}],tones:[{startTime:.1,duration:.4,frequency:349,volume:.12,type:`sine`,filterFrequency:800},{startTime:.25,duration:.45,frequency:440,volume:.1,type:`sine`,filterFrequency:800}]},centered:{puffs:[{startTime:0,duration:.25,frequency:500,volume:.2}],tones:[{startTime:.1,duration:.4,frequency:262,volume:.15,type:`sine`,filterFrequency:350}]},grounded:{puffs:[{startTime:0,duration:.25,frequency:500,volume:.2}],tones:[{startTime:.1,duration:.4,frequency:262,volume:.15,type:`sine`,filterFrequency:350}]},accepting:{puffs:[{startTime:0,duration:.3,frequency:600,volume:.12}],tones:[{startTime:.1,duration:.5,frequency:392,volume:.1,type:`sine`,filterFrequency:500}]},connected:{puffs:[{startTime:0,duration:.2,frequency:1200,volume:.18}],tones:[{startTime:.08,duration:.3,frequency:440,volume:.15,type:`sine`,filterFrequency:800},{startTime:.12,duration:.32,frequency:523,volume:.12,type:`sine`,filterFrequency:800}]},accepted:{puffs:[{startTime:0,duration:.15,frequency:1500,volume:.2}],tones:[{startTime:.05,duration:.25,frequency:440,volume:.15,type:`sine`,filterFrequency:800},{startTime:.15,duration:.3,frequency:523,volume:.18,type:`sine`,filterFrequency:800}]},included:{puffs:[{startTime:0,duration:.2,frequency:1200,volume:.18}],tones:[{startTime:.08,duration:.3,frequency:440,volume:.15,type:`sine`,filterFrequency:800},{startTime:.12,duration:.32,frequency:523,volume:.12,type:`sine`,filterFrequency:800}]},belonging:{puffs:[{startTime:0,duration:.2,frequency:1200,volume:.18}],tones:[{startTime:.08,duration:.3,frequency:440,volume:.15,type:`sine`,filterFrequency:800},{startTime:.12,duration:.32,frequency:523,volume:.12,type:`sine`,filterFrequency:800}]},appreciated:{puffs:[{startTime:0,duration:.15,frequency:1500,volume:.2}],tones:[{startTime:.05,duration:.25,frequency:440,volume:.15,type:`sine`,filterFrequency:800},{startTime:.15,duration:.3,frequency:523,volume:.18,type:`sine`,filterFrequency:800}]},valued:{puffs:[{startTime:0,duration:.15,frequency:1500,volume:.2}],tones:[{startTime:.05,duration:.25,frequency:440,volume:.15,type:`sine`,filterFrequency:800},{startTime:.15,duration:.3,frequency:523,volume:.18,type:`sine`,filterFrequency:800}]},respected:{puffs:[{startTime:0,duration:.15,frequency:1500,volume:.2}],tones:[{startTime:.05,duration:.25,frequency:440,volume:.15,type:`sine`,filterFrequency:800},{startTime:.15,duration:.3,frequency:523,volume:.18,type:`sine`,filterFrequency:800}]},supported:{puffs:[{startTime:0,duration:.25,frequency:900,volume:.18}],tones:[{startTime:.1,duration:.35,frequency:349,volume:.12,type:`sine`,filterFrequency:800},{startTime:.15,duration:.4,frequency:440,volume:.1,type:`sine`,filterFrequency:800}]},protective:{puffs:[{startTime:0,duration:.25,frequency:900,volume:.18}],tones:[{startTime:.1,duration:.35,frequency:349,volume:.12,type:`sine`,filterFrequency:800},{startTime:.15,duration:.4,frequency:440,volume:.1,type:`sine`,filterFrequency:800}]},compassionate:{puffs:[{startTime:0,duration:.2,frequency:1200,volume:.18}],tones:[{startTime:.08,duration:.3,frequency:440,volume:.15,type:`sine`,filterFrequency:800},{startTime:.12,duration:.32,frequency:523,volume:.12,type:`sine`,filterFrequency:800}]},empathetic:{puffs:[{startTime:0,duration:.2,frequency:1200,volume:.18}],tones:[{startTime:.08,duration:.3,frequency:440,volume:.15,type:`sine`,filterFrequency:800},{startTime:.12,duration:.32,frequency:523,volume:.12,type:`sine`,filterFrequency:800}]},conflicted:{puffs:[{startTime:0,duration:.12,frequency:1200,volume:.18}],tones:[{startTime:.04,duration:.2,frequency:440,volume:.12,type:`sine`,frequencyEnd:494},{startTime:.15,duration:.15,frequency:466,volume:.1,type:`sine`}]},confused:{puffs:[{startTime:0,duration:.12,frequency:1200,volume:.18}],tones:[{startTime:.04,duration:.2,frequency:440,volume:.12,type:`sine`,frequencyEnd:494},{startTime:.15,duration:.15,frequency:466,volume:.1,type:`sine`}]},ambivalent:{puffs:[{startTime:0,duration:.12,frequency:1200,volume:.18}],tones:[{startTime:.04,duration:.2,frequency:440,volume:.12,type:`sine`,frequencyEnd:494},{startTime:.15,duration:.15,frequency:466,volume:.1,type:`sine`}]},nostalgic:{puffs:[{startTime:0,duration:.25,frequency:800,volume:.15}],tones:[{startTime:.1,duration:.4,frequency:440,volume:.12,type:`sine`,filterFrequency:500},{startTime:.3,duration:.45,frequency:392,volume:.1,type:`sine`,filterFrequency:450}]},guilty:{puffs:[{startTime:0,duration:.25,frequency:800,volume:.25}],tones:[{startTime:.08,duration:.3,frequency:523,volume:.18,type:`sine`,frequencyEnd:349}]},embarrassed:{puffs:[{startTime:0,duration:.05,frequency:2e3,volume:.18},{startTime:.08,duration:.05,frequency:2100,volume:.18},{startTime:.15,duration:.06,frequency:2e3,volume:.16}],tones:[{startTime:.04,duration:.2,frequency:494,volume:.12,type:`sine`}]},surprised:{puffs:[{startTime:0,duration:.06,frequency:2800,volume:.25}],tones:[{startTime:.02,duration:.15,frequency:659,volume:.2,type:`sine`,frequencyEnd:988}]},shocked:{puffs:[{startTime:0,duration:.04,frequency:3500,volume:.3}],tones:[{startTime:0,duration:.08,frequency:1047,volume:.25,type:`sine`},{startTime:.05,duration:.15,frequency:880,volume:.15,type:`sine`}]},awestruck:{puffs:[{startTime:0,duration:.2,frequency:1500,volume:.2}],tones:[{startTime:.08,duration:.4,frequency:440,volume:.15,type:`sine`},{startTime:.1,duration:.38,frequency:660,volume:.12,type:`sine`},{startTime:.12,duration:.36,frequency:880,volume:.09,type:`sine`}]},skeptical:{puffs:[{startTime:0,duration:.12,frequency:1200,volume:.18}],tones:[{startTime:.04,duration:.2,frequency:440,volume:.12,type:`sine`,frequencyEnd:494},{startTime:.15,duration:.15,frequency:466,volume:.1,type:`sine`}]}},i=class e{get theme(){return n.value.theme}get volume(){return n.value.volume}get muted(){return n.value.muted}get themeName(){return this.theme?.name??`default`}constructor(){this.audioContext=null,this.theme$=n.$.pipe((0,t.map)(e=>e.theme),(0,t.shareReplay)(1)),this.volume$=n.$.pipe((0,t.map)(e=>e.volume),(0,t.distinctUntilChanged)(),(0,t.shareReplay)(1)),this.muted$=n.$.pipe((0,t.map)(e=>e.muted),(0,t.distinctUntilChanged)(),(0,t.shareReplay)(1)),this._themeName$=new t.BehaviorSubject(`default`),this.themeName$=this._themeName$.asObservable(),this.theme$.subscribe(e=>{this._themeName$.next(e?.name??`default`)})}getContext(){if(!this.audioContext){let e=window.AudioContext||window.webkitAudioContext;this.audioContext=new e}return this.audioContext.state===`suspended`&&this.audioContext.resume(),this.audioContext}playPuff(e,t,n){let r=this.getContext(),i=Math.floor(r.sampleRate*t.duration),a=r.createBuffer(1,i,r.sampleRate),o=a.getChannelData(0);for(let e=0;e<i;e++)o[e]=2*Math.random()-1;let s=r.createBufferSource();s.buffer=a;let c=r.createBiquadFilter();c.type=`bandpass`,c.frequency.value=t.frequency,c.Q.value=.7;let l=r.createGain();l.gain.setValueAtTime(0,e),l.gain.linearRampToValueAtTime(t.volume*n,e+.015),l.gain.exponentialRampToValueAtTime(.001,e+t.duration),s.connect(c).connect(l).connect(r.destination),s.start(e),s.stop(e+t.duration)}playTone(e,t,n){let r=this.getContext(),i=r.createOscillator(),a=r.createGain();i.type=t.type,i.frequency.setValueAtTime(t.frequency,e),t.frequencyEnd&&i.frequency.exponentialRampToValueAtTime(t.frequencyEnd,e+.8*t.duration);let o=i;if(t.filterFrequency){let e=r.createBiquadFilter();e.type=`lowpass`,e.frequency.value=t.filterFrequency,i.connect(e),o=e}a.gain.setValueAtTime(0,e),a.gain.linearRampToValueAtTime(t.volume*n,e+.02),a.gain.exponentialRampToValueAtTime(.001,e+t.duration),o.connect(a).connect(r.destination),i.start(e),i.stop(e+t.duration)}setTheme(e){n.set({theme:e})}resetTheme(){n.set({theme:null})}setVolume(e){n.set({volume:Math.max(0,Math.min(1,e))})}mute(){n.set({muted:!0})}unmute(){n.set({muted:!1})}toggleMute(){n.set({muted:!this.muted})}getSoundForFeeling(e){let t=this.theme;if(t?.feelings?.[e])return t.feelings[e];if(t?.categoryDefaults){let n=this.getCategoryForFeeling(e);if(t.categoryDefaults[n])return t.categoryDefaults[n]}return r[e]}getCategoryForFeeling(e){return[`joyful`,`content`,`excited`,`proud`,`hopeful`,`relieved`,`grateful`,`peaceful`,`playful`,`amused`,`curious`,`inspired`,`confident`,`loved`,`comforted`,`energized`,`celebrated`].includes(e)?`happy`:[`sad`,`lonely`,`disappointed`,`heartbroken`,`grieving`,`hopeless`,`empty`,`discouraged`,`melancholic`,`homesick`,`hurt`,`miserable`,`regretful`,`ashamed`,`inferior`].includes(e)?`sad`:[`anxious`,`worried`,`afraid`,`terrified`,`panicked`,`nervous`,`uneasy`,`insecure`,`overwhelmed`,`stressed`,`tense`,`apprehensive`,`startled`,`suspicious`,`vulnerable`].includes(e)?`anxious`:[`annoyed`,`irritated`,`frustrated`,`angry`,`enraged`,`bitter`,`resentful`,`jealous`,`envious`,`indignant`,`impatient`,`hostile`,`contemptuous`].includes(e)?`angry`:[`tired`,`exhausted`,`drained`,`burnedOut`,`numb`,`bored`,`unmotivated`,`apathetic`,`restless`].includes(e)?`tired`:[`calm`,`relaxed`,`atEase`,`balanced`,`stable`,`secure`,`safe`,`centered`,`grounded`,`accepting`].includes(e)?`calm`:[`connected`,`accepted`,`included`,`belonging`,`appreciated`,`valued`,`respected`,`supported`,`protective`,`compassionate`,`empathetic`].includes(e)?`connected`:`mixed`}play(e){if(this.muted)return;let t=this.getSoundForFeeling(e),n=this.getContext().currentTime,r=this.theme?.masterVolume??1,i=this.volume*r;t.puffs.forEach(e=>{this.playPuff(n+e.startTime,e,i)}),t.tones.forEach(e=>{this.playTone(n+e.startTime,e,i)})}dispose(){this.audioContext&&=(this.audioContext.close(),null)}static getInstance(){return e.instance||=new e,e.instance}}.getInstance(),a=i;Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return i}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return a}});