@mhmo91/schmancy 0.9.5 → 0.9.7

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 (616) hide show
  1. package/custom-elements.json +493 -718
  2. package/dist/{animation-CO_Csq84.cjs.map → animation-Bcwh107v.cjs.map} +1 -1
  3. package/dist/{animation-BK-8BwY8.js.map → animation-CXKSuUoE.js.map} +1 -1
  4. package/dist/{area-CRoGqD_u.js → area-BARjKpE9.js} +2 -2
  5. package/dist/{area-CRoGqD_u.js.map → area-BARjKpE9.js.map} +1 -1
  6. package/dist/{area-JPykB7A9.cjs → area-D9b9dHQr.cjs} +3 -3
  7. package/dist/{area-JPykB7A9.cjs.map → area-D9b9dHQr.cjs.map} +1 -1
  8. package/dist/area.cjs +1 -1
  9. package/dist/area.js +1 -1
  10. package/dist/{audio-kz8UgPTO.js → audio-C7TzWI8M.js} +1 -1
  11. package/dist/audio-C7TzWI8M.js.map +1 -0
  12. package/dist/{audio-DtYYgzYD.cjs → audio-DUVz7Ars.cjs} +1 -1
  13. package/dist/audio-DUVz7Ars.cjs.map +1 -0
  14. package/dist/audio.cjs +1 -1
  15. package/dist/audio.js +2 -2
  16. package/dist/autocomplete-AI2CCJmK.cjs +115 -0
  17. package/dist/autocomplete-AI2CCJmK.cjs.map +1 -0
  18. package/dist/{autocomplete-BllPQwr8.js → autocomplete-DOimwVMP.js} +48 -22
  19. package/dist/autocomplete-DOimwVMP.js.map +1 -0
  20. package/dist/autocomplete.cjs +1 -1
  21. package/dist/autocomplete.js +1 -1
  22. package/dist/badge.cjs +1 -1
  23. package/dist/badge.js +1 -1
  24. package/dist/{boat-DYEAZ8Qj.cjs → boat-Bk4u-LzT.cjs} +2 -2
  25. package/dist/{boat-DYEAZ8Qj.cjs.map → boat-Bk4u-LzT.cjs.map} +1 -1
  26. package/dist/{boat-BDTQ-du9.js → boat-DrghVeWK.js} +5 -5
  27. package/dist/{boat-BDTQ-du9.js.map → boat-DrghVeWK.js.map} +1 -1
  28. package/dist/boat.cjs +1 -1
  29. package/dist/boat.js +1 -1
  30. package/dist/breadcrumb.cjs +34 -0
  31. package/dist/breadcrumb.cjs.map +1 -0
  32. package/dist/breadcrumb.js +73 -0
  33. package/dist/breadcrumb.js.map +1 -0
  34. package/dist/{busy-ChDAeaKF.js → busy-BmFfwyz_.js} +7 -6
  35. package/dist/{busy-ChDAeaKF.js.map → busy-BmFfwyz_.js.map} +1 -1
  36. package/dist/{busy-Dj7Xn0Z0.cjs → busy-c_q_F8O0.cjs} +8 -8
  37. package/dist/{busy-Dj7Xn0Z0.cjs.map → busy-c_q_F8O0.cjs.map} +1 -1
  38. package/dist/busy.cjs +1 -1
  39. package/dist/busy.js +1 -1
  40. package/dist/button.cjs +4 -4
  41. package/dist/button.cjs.map +1 -1
  42. package/dist/button.js +25 -6
  43. package/dist/button.js.map +1 -1
  44. package/dist/{card-DZFPRPqs.js → card-BADJHUMA.js} +16 -15
  45. package/dist/{card-DZFPRPqs.js.map → card-BADJHUMA.js.map} +1 -1
  46. package/dist/{card-BvPWVEJX.cjs → card-C_E944_Z.cjs} +10 -10
  47. package/dist/{card-BvPWVEJX.cjs.map → card-C_E944_Z.cjs.map} +1 -1
  48. package/dist/card.cjs +1 -1
  49. package/dist/card.js +1 -1
  50. package/dist/charts.cjs +3 -3
  51. package/dist/charts.cjs.map +1 -1
  52. package/dist/charts.js +2 -2
  53. package/dist/{checkbox-GSSjqo6w.js → checkbox-D7rvCrGk.js} +28 -9
  54. package/dist/{checkbox-GSSjqo6w.js.map → checkbox-D7rvCrGk.js.map} +1 -1
  55. package/dist/{checkbox-BC_37rsG.cjs → checkbox-ZqDoCagB.cjs} +10 -10
  56. package/dist/{checkbox-BC_37rsG.cjs.map → checkbox-ZqDoCagB.cjs.map} +1 -1
  57. package/dist/checkbox.cjs +1 -1
  58. package/dist/checkbox.js +1 -1
  59. package/dist/{chips-B19XS8Xc.cjs → chips-Cux635Qs.cjs} +18 -18
  60. package/dist/chips-Cux635Qs.cjs.map +1 -0
  61. package/dist/{chips-B9oAEfE_.js → chips-vdzIsesI.js} +37 -27
  62. package/dist/chips-vdzIsesI.js.map +1 -0
  63. package/dist/chips.cjs +1 -1
  64. package/dist/chips.js +2 -2
  65. package/dist/{code-highlight-fSLrlgOb.cjs → code-highlight-C9lKek2p.cjs} +11 -11
  66. package/dist/{code-highlight-fSLrlgOb.cjs.map → code-highlight-C9lKek2p.cjs.map} +1 -1
  67. package/dist/{code-highlight-DCk5lJY-.js → code-highlight-D6yruol6.js} +6 -5
  68. package/dist/{code-highlight-DCk5lJY-.js.map → code-highlight-D6yruol6.js.map} +1 -1
  69. package/dist/code-highlight.cjs +1 -1
  70. package/dist/code-highlight.js +1 -1
  71. package/dist/components-ByRyEzz5.cjs +73 -0
  72. package/dist/{components-CyD6a7gQ.cjs.map → components-ByRyEzz5.cjs.map} +1 -1
  73. package/dist/{components-COsM6sJZ.js → components-DSvPKR9Q.js} +2 -2
  74. package/dist/{components-COsM6sJZ.js.map → components-DSvPKR9Q.js.map} +1 -1
  75. package/dist/components.cjs +1 -1
  76. package/dist/components.js +1 -1
  77. package/dist/connectivity.cjs +7 -7
  78. package/dist/connectivity.cjs.map +1 -1
  79. package/dist/connectivity.js +5 -4
  80. package/dist/connectivity.js.map +1 -1
  81. package/dist/content-drawer.cjs +1 -1
  82. package/dist/content-drawer.js +1 -1
  83. package/dist/{cursor-glow-DtSy_PJd.cjs → cursor-glow-82y5h3E4.cjs} +1 -1
  84. package/dist/{cursor-glow-DtSy_PJd.cjs.map → cursor-glow-82y5h3E4.cjs.map} +1 -1
  85. package/dist/{cursor-glow-Ah7VXSj7.js → cursor-glow-C2YRrB8Z.js} +1 -1
  86. package/dist/{cursor-glow-Ah7VXSj7.js.map → cursor-glow-C2YRrB8Z.js.map} +1 -1
  87. package/dist/{date-range-ZAaQB22I.cjs → date-range-DJsavigf.cjs} +3 -3
  88. package/dist/date-range-DJsavigf.cjs.map +1 -0
  89. package/dist/{date-range-inline-Bl8qbiQF.js → date-range-inline-B87TDYI6.js} +1 -1
  90. package/dist/{date-range-inline-Bl8qbiQF.js.map → date-range-inline-B87TDYI6.js.map} +1 -1
  91. package/dist/date-range-inline-De-M0VmL.cjs +43 -0
  92. package/dist/{date-range-inline-m7nLjOMI.cjs.map → date-range-inline-De-M0VmL.cjs.map} +1 -1
  93. package/dist/date-range-inline.cjs +1 -1
  94. package/dist/date-range-inline.js +1 -1
  95. package/dist/{date-range-Sfyco9-n.js → date-range-tEX2Jx2j.js} +4 -4
  96. package/dist/date-range-tEX2Jx2j.js.map +1 -0
  97. package/dist/date-range.cjs +1 -1
  98. package/dist/date-range.js +1 -1
  99. package/dist/delay-BvVdfhAR.cjs +9 -0
  100. package/dist/{delay-7boauN6N.cjs.map → delay-BvVdfhAR.cjs.map} +1 -1
  101. package/dist/{delay-CgX6m0HN.js → delay-CZw37zps.js} +9 -8
  102. package/dist/{delay-CgX6m0HN.js.map → delay-CZw37zps.js.map} +1 -1
  103. package/dist/delay.cjs +1 -1
  104. package/dist/delay.js +1 -1
  105. package/dist/{details-BHnk8l4q.cjs → details-Bhz8_whd.cjs} +9 -9
  106. package/dist/{details-BHnk8l4q.cjs.map → details-Bhz8_whd.cjs.map} +1 -1
  107. package/dist/{details-BPkUg8Cq.js → details-D7VTnLOh.js} +16 -15
  108. package/dist/{details-BPkUg8Cq.js.map → details-D7VTnLOh.js.map} +1 -1
  109. package/dist/details.cjs +1 -1
  110. package/dist/details.js +1 -1
  111. package/dist/{dialog-service-NZEvyEK-.js → dialog-service-ClFrOWf4.js} +2 -2
  112. package/dist/{dialog-service-NZEvyEK-.js.map → dialog-service-ClFrOWf4.js.map} +1 -1
  113. package/dist/{dialog-service-VnW4gkmE.cjs → dialog-service-DcuAavp2.cjs} +1 -1
  114. package/dist/{dialog-service-VnW4gkmE.cjs.map → dialog-service-DcuAavp2.cjs.map} +1 -1
  115. package/dist/dialog.cjs +18 -11
  116. package/dist/dialog.cjs.map +1 -1
  117. package/dist/dialog.js +66 -43
  118. package/dist/dialog.js.map +1 -1
  119. package/dist/directives.cjs +1 -1
  120. package/dist/directives.js +5 -5
  121. package/dist/{divider-_khrhrZo.cjs → divider-S0bHwCCS.cjs} +2 -2
  122. package/dist/{divider-_khrhrZo.cjs.map → divider-S0bHwCCS.cjs.map} +1 -1
  123. package/dist/{divider-CW9a7MMj.js → divider-zS232JDr.js} +2 -2
  124. package/dist/{divider-CW9a7MMj.js.map → divider-zS232JDr.js.map} +1 -1
  125. package/dist/divider.cjs +1 -1
  126. package/dist/divider.js +1 -1
  127. package/dist/dropdown.cjs +4 -4
  128. package/dist/dropdown.cjs.map +1 -1
  129. package/dist/dropdown.js +8 -7
  130. package/dist/dropdown.js.map +1 -1
  131. package/dist/{expand-iQ7EOMP7.js → expand-BXt9SqAF.js} +13 -12
  132. package/dist/{expand-iQ7EOMP7.js.map → expand-BXt9SqAF.js.map} +1 -1
  133. package/dist/{expand-Cp7-PH8b.cjs → expand-Dr7TFXpl.cjs} +18 -18
  134. package/dist/{expand-Cp7-PH8b.cjs.map → expand-Dr7TFXpl.cjs.map} +1 -1
  135. package/dist/expand.cjs +1 -1
  136. package/dist/expand.js +1 -1
  137. package/dist/{extra-IKAiJJhv.cjs → extra-BmZTXAp0.cjs} +3 -3
  138. package/dist/{extra-IKAiJJhv.cjs.map → extra-BmZTXAp0.cjs.map} +1 -1
  139. package/dist/{extra-wEpvEFbK.js → extra-COYhsOyZ.js} +2 -2
  140. package/dist/{extra-wEpvEFbK.js.map → extra-COYhsOyZ.js.map} +1 -1
  141. package/dist/extra.cjs +1 -1
  142. package/dist/extra.js +1 -1
  143. package/dist/float-CSRW-Rrd.cjs +1 -0
  144. package/dist/{float-D5rNC82i.cjs.map → float-CSRW-Rrd.cjs.map} +1 -1
  145. package/dist/{float-BQ_urmMs.js → float-DCXafWh6.js} +2 -2
  146. package/dist/{float-BQ_urmMs.js.map → float-DCXafWh6.js.map} +1 -1
  147. package/dist/float.cjs +1 -1
  148. package/dist/float.js +1 -1
  149. package/dist/{flow-CUj0fDT_.js.map → flow-CqgDEIqK.js.map} +1 -1
  150. package/dist/{flow-Bbwn6dRN.cjs.map → flow-DSu4PLt1.cjs.map} +1 -1
  151. package/dist/form-CAY9GSCd.cjs +1 -0
  152. package/dist/form-CAY9GSCd.cjs.map +1 -0
  153. package/dist/form-D2cJ58TB.js +68 -0
  154. package/dist/form-D2cJ58TB.js.map +1 -0
  155. package/dist/form.cjs +1 -1
  156. package/dist/form.js +2 -1
  157. package/dist/{hashContent-DaeGmY-p.cjs.map → hashContent-kKvXKFa9.cjs.map} +1 -1
  158. package/dist/{hashContent-DYM21p6t.js.map → hashContent-nD2uWwi2.js.map} +1 -1
  159. package/dist/{icons-BDqiGXrO.js → icons-BbaI9Zf-.js} +9 -8
  160. package/dist/icons-BbaI9Zf-.js.map +1 -0
  161. package/dist/{icons-B57_93VV.cjs → icons-DPUeLS_Y.cjs} +3 -3
  162. package/dist/icons-DPUeLS_Y.cjs.map +1 -0
  163. package/dist/icons.cjs +1 -1
  164. package/dist/icons.js +1 -1
  165. package/dist/{iframe-WnWPIrBG.js → iframe-CEDOvkql.js} +5 -4
  166. package/dist/{iframe-WnWPIrBG.js.map → iframe-CEDOvkql.js.map} +1 -1
  167. package/dist/{iframe-DNHL3GIk.cjs → iframe-Ct50FYXq.cjs} +3 -3
  168. package/dist/{iframe-DNHL3GIk.cjs.map → iframe-Ct50FYXq.cjs.map} +1 -1
  169. package/dist/iframe.cjs +1 -1
  170. package/dist/iframe.js +1 -1
  171. package/dist/index.cjs +1 -1
  172. package/dist/index.js +65 -59
  173. package/dist/{input-BiSrTcrR.cjs → input-DMjpf6V8.cjs} +2 -2
  174. package/dist/{input-BiSrTcrR.cjs.map → input-DMjpf6V8.cjs.map} +1 -1
  175. package/dist/{input-VaXHFrRn.js → input-Ri72dn5t.js} +1 -1
  176. package/dist/{input-VaXHFrRn.js.map → input-Ri72dn5t.js.map} +1 -1
  177. package/dist/{input-chip-Dy-AiP55.cjs → input-chip-BhjGVpc3.cjs} +9 -9
  178. package/dist/input-chip-BhjGVpc3.cjs.map +1 -0
  179. package/dist/{input-chip-QejNcRnS.js → input-chip-CI4__N8w.js} +13 -9
  180. package/dist/input-chip-CI4__N8w.js.map +1 -0
  181. package/dist/input.cjs +1 -1
  182. package/dist/input.js +1 -1
  183. package/dist/{intersection-CZpaIHeT.cjs.map → intersection-D1v1UCVv.cjs.map} +1 -1
  184. package/dist/{intersection-BPLpqYEd.js.map → intersection-LfEsy29T.js.map} +1 -1
  185. package/dist/json.cjs +3 -3
  186. package/dist/json.cjs.map +1 -1
  187. package/dist/json.js +5 -4
  188. package/dist/json.js.map +1 -1
  189. package/dist/kbd.cjs +28 -0
  190. package/dist/kbd.cjs.map +1 -0
  191. package/dist/kbd.js +45 -0
  192. package/dist/kbd.js.map +1 -0
  193. package/dist/{layout-yxSlLybo.js → layout-BE2ld1IY.js} +1 -1
  194. package/dist/{layout-yxSlLybo.js.map → layout-BE2ld1IY.js.map} +1 -1
  195. package/dist/layout-D7xOqMkJ.cjs +17 -0
  196. package/dist/{layout-DNYG3phx.cjs.map → layout-D7xOqMkJ.cjs.map} +1 -1
  197. package/dist/{layout-4C-6_cre.cjs → layout-PZCF3kwl.cjs} +1 -1
  198. package/dist/{layout-4C-6_cre.cjs.map → layout-PZCF3kwl.cjs.map} +1 -1
  199. package/dist/{layout-CnsXeCAy.js → layout-uAQpJN31.js} +20 -19
  200. package/dist/{layout-CnsXeCAy.js.map → layout-uAQpJN31.js.map} +1 -1
  201. package/dist/layout.cjs +1 -1
  202. package/dist/layout.js +2 -2
  203. package/dist/{lightbox-BrI1Z31s.js → lightbox-C0OEHns9.js} +10 -9
  204. package/dist/{lightbox-BrI1Z31s.js.map → lightbox-C0OEHns9.js.map} +1 -1
  205. package/dist/{lightbox-CmACf0t5.cjs → lightbox-cXRnvHMN.cjs} +20 -20
  206. package/dist/{lightbox-CmACf0t5.cjs.map → lightbox-cXRnvHMN.cjs.map} +1 -1
  207. package/dist/lightbox.cjs +1 -1
  208. package/dist/lightbox.js +1 -1
  209. package/dist/{list-swIL9VDv.cjs → list-CmJ5h35b.cjs} +5 -5
  210. package/dist/{list-swIL9VDv.cjs.map → list-CmJ5h35b.cjs.map} +1 -1
  211. package/dist/{list-Cm-jjXxM.js → list-d1mHar5p.js} +14 -13
  212. package/dist/{list-Cm-jjXxM.js.map → list-d1mHar5p.js.map} +1 -1
  213. package/dist/list.cjs +1 -1
  214. package/dist/list.js +1 -1
  215. package/dist/{litElement.mixin-3llHwB-8.cjs → litElement.mixin-Bj2q1yPw.cjs} +1 -1
  216. package/dist/{litElement.mixin-3llHwB-8.cjs.map → litElement.mixin-Bj2q1yPw.cjs.map} +1 -1
  217. package/dist/{litElement.mixin-6jJYHCrZ.js → litElement.mixin-CncaUoxz.js} +1 -1
  218. package/dist/{litElement.mixin-6jJYHCrZ.js.map → litElement.mixin-CncaUoxz.js.map} +1 -1
  219. package/dist/{magnetic-BZGFxAWG.js → magnetic-Dj52WplI.js} +2 -2
  220. package/dist/{magnetic-BZGFxAWG.js.map → magnetic-Dj52WplI.js.map} +1 -1
  221. package/dist/{magnetic-Dux4QwO4.cjs → magnetic-aBBnj_vk.cjs} +1 -1
  222. package/dist/{magnetic-Dux4QwO4.cjs.map → magnetic-aBBnj_vk.cjs.map} +1 -1
  223. package/dist/{mailbox-D6LkQcN5.cjs → mailbox-BmChskZc.cjs} +59 -59
  224. package/dist/{mailbox-D6LkQcN5.cjs.map → mailbox-BmChskZc.cjs.map} +1 -1
  225. package/dist/{mailbox-BuvsVaAQ.js → mailbox-C4-E93be.js} +13 -12
  226. package/dist/{mailbox-BuvsVaAQ.js.map → mailbox-C4-E93be.js.map} +1 -1
  227. package/dist/mailbox.cjs +1 -1
  228. package/dist/mailbox.js +1 -1
  229. package/dist/{map-CQiKAxC3.js → map-DHyYLhvy.js} +6 -5
  230. package/dist/{map-CQiKAxC3.js.map → map-DHyYLhvy.js.map} +1 -1
  231. package/dist/{map-D5NN4VET.cjs → map-DYEvlNl0.cjs} +7 -7
  232. package/dist/{map-D5NN4VET.cjs.map → map-DYEvlNl0.cjs.map} +1 -1
  233. package/dist/map.cjs +1 -1
  234. package/dist/map.js +1 -1
  235. package/dist/{menu-CkgMO9K5.cjs → menu-BlPTI6H9.cjs} +3 -3
  236. package/dist/{menu-CkgMO9K5.cjs.map → menu-BlPTI6H9.cjs.map} +1 -1
  237. package/dist/{menu-C1x04YZw.js → menu-DFDBADp4.js} +3 -3
  238. package/dist/{menu-C1x04YZw.js.map → menu-DFDBADp4.js.map} +1 -1
  239. package/dist/menu.cjs +1 -1
  240. package/dist/menu.js +1 -1
  241. package/dist/mixins.cjs +1 -1
  242. package/dist/mixins.cjs.map +1 -1
  243. package/dist/mixins.js +43 -15
  244. package/dist/mixins.js.map +1 -1
  245. package/dist/nav-drawer.cjs +1 -1
  246. package/dist/nav-drawer.js +1 -1
  247. package/dist/navigation-bar.cjs +1 -1
  248. package/dist/navigation-bar.js +1 -1
  249. package/dist/navigation-rail.cjs +3 -3
  250. package/dist/navigation-rail.cjs.map +1 -1
  251. package/dist/navigation-rail.js +2 -2
  252. package/dist/{notification-BnBgxjF-.js → notification-DGpv8g2H.js} +4 -4
  253. package/dist/{notification-BnBgxjF-.js.map → notification-DGpv8g2H.js.map} +1 -1
  254. package/dist/notification-DKVWYhqs.cjs +23 -0
  255. package/dist/{notification-CZFEhWxc.cjs.map → notification-DKVWYhqs.cjs.map} +1 -1
  256. package/dist/notification.cjs +1 -1
  257. package/dist/notification.js +1 -1
  258. package/dist/{option-DBO8xZwd.js → option-BD2eh458.js} +6 -5
  259. package/dist/{option-DBO8xZwd.js.map → option-BD2eh458.js.map} +1 -1
  260. package/dist/{option-BrxCVwSx.cjs → option-LtSDy2xf.cjs} +5 -5
  261. package/dist/{option-BrxCVwSx.cjs.map → option-LtSDy2xf.cjs.map} +1 -1
  262. package/dist/option.cjs +1 -1
  263. package/dist/option.js +1 -1
  264. package/dist/{overlay-stack-DQey9Qph.cjs.map → overlay-stack-CEYGD9T1.cjs.map} +1 -1
  265. package/dist/{overlay-stack-DT1SdaGW.js.map → overlay-stack-Ca4EK2Mu.js.map} +1 -1
  266. package/dist/page.cjs +2 -2
  267. package/dist/page.cjs.map +1 -1
  268. package/dist/page.js +5 -5
  269. package/dist/{progress-Db2e4_Zd.cjs → progress-B5ChDPbB.cjs} +2 -2
  270. package/dist/{progress-Db2e4_Zd.cjs.map → progress-B5ChDPbB.cjs.map} +1 -1
  271. package/dist/{progress-DeiHxXo7.js → progress-CE1Pk2hi.js} +2 -2
  272. package/dist/{progress-DeiHxXo7.js.map → progress-CE1Pk2hi.js.map} +1 -1
  273. package/dist/progress.cjs +1 -1
  274. package/dist/progress.js +1 -1
  275. package/dist/{provide-DHnhQtCH.cjs → provide-BZ9lq_Be.cjs} +1 -1
  276. package/dist/{provide-DHnhQtCH.cjs.map → provide-BZ9lq_Be.cjs.map} +1 -1
  277. package/dist/{provide-C1aQhxYo.js → provide-jn1Fj1vv.js} +1 -1
  278. package/dist/{provide-C1aQhxYo.js.map → provide-jn1Fj1vv.js.map} +1 -1
  279. package/dist/qr-scanner.cjs +2 -2
  280. package/dist/qr-scanner.cjs.map +1 -1
  281. package/dist/qr-scanner.js +2 -2
  282. package/dist/radio-group-Cd9pZ2MR.cjs +40 -0
  283. package/dist/{radio-group-Cspwd-Vw.cjs.map → radio-group-Cd9pZ2MR.cjs.map} +1 -1
  284. package/dist/{radio-group-zSO0AkJf.js → radio-group-CyRHgIF3.js} +7 -6
  285. package/dist/{radio-group-zSO0AkJf.js.map → radio-group-CyRHgIF3.js.map} +1 -1
  286. package/dist/radio-group.cjs +1 -1
  287. package/dist/radio-group.js +1 -1
  288. package/dist/range.cjs +4 -4
  289. package/dist/range.cjs.map +1 -1
  290. package/dist/range.js +4 -3
  291. package/dist/range.js.map +1 -1
  292. package/dist/{reduced-motion-D-L12p7G.js.map → reduced-motion-B83yZbcO.js.map} +1 -1
  293. package/dist/{reduced-motion-Ds05GPyz.cjs.map → reduced-motion-DR32yKEO.cjs.map} +1 -1
  294. package/dist/{rxjs-utils-BSjmI9-Q.js.map → rxjs-utils-Bldch1RO.js.map} +1 -1
  295. package/dist/{rxjs-utils-DCsfzeap.cjs.map → rxjs-utils-hAgKC7vk.cjs.map} +1 -1
  296. package/dist/rxjs-utils.cjs +1 -1
  297. package/dist/rxjs-utils.js +1 -1
  298. package/dist/{scroll-QMCmbbDv.cjs → scroll-C_iNOi7E.cjs} +2 -2
  299. package/dist/{scroll-QMCmbbDv.cjs.map → scroll-C_iNOi7E.cjs.map} +1 -1
  300. package/dist/{scroll-cBDzye64.js → scroll-DoliwpRu.js} +7 -6
  301. package/dist/{scroll-cBDzye64.js.map → scroll-DoliwpRu.js.map} +1 -1
  302. package/dist/{search-C4dFHYbX.js.map → search-BlGJ6uJv.js.map} +1 -1
  303. package/dist/{search-Ds8tt7Et.cjs.map → search-C8eAOzBm.cjs.map} +1 -1
  304. package/dist/{select-Ct37l3lg.cjs → select-CWWuZ2iJ.cjs} +2 -2
  305. package/dist/{select-Ct37l3lg.cjs.map → select-CWWuZ2iJ.cjs.map} +1 -1
  306. package/dist/{select-c6HbWvKP.js → select-_vHPXi30.js} +3 -3
  307. package/dist/{select-c6HbWvKP.js.map → select-_vHPXi30.js.map} +1 -1
  308. package/dist/select.cjs +1 -1
  309. package/dist/select.js +1 -1
  310. package/dist/{sheet-BMXcUiIm.js → sheet-i1KtxGIj.js} +5 -5
  311. package/dist/{sheet-BMXcUiIm.js.map → sheet-i1KtxGIj.js.map} +1 -1
  312. package/dist/{sheet-CQec-bCV.cjs → sheet-r0oEYIdi.cjs} +2 -2
  313. package/dist/{sheet-CQec-bCV.cjs.map → sheet-r0oEYIdi.cjs.map} +1 -1
  314. package/dist/sheet.cjs +1 -1
  315. package/dist/sheet.js +2 -2
  316. package/dist/{sheet.service-Dumvr1HT.cjs → sheet.service-Cr13Oo6G.cjs} +1 -1
  317. package/dist/{sheet.service-Dumvr1HT.cjs.map → sheet.service-Cr13Oo6G.cjs.map} +1 -1
  318. package/dist/{sheet.service-BcPV3Du4.js → sheet.service-DUO5_kmI.js} +3 -3
  319. package/dist/{sheet.service-BcPV3Du4.js.map → sheet.service-DUO5_kmI.js.map} +1 -1
  320. package/dist/skeleton.cjs +33 -0
  321. package/dist/skeleton.cjs.map +1 -0
  322. package/dist/skeleton.js +58 -0
  323. package/dist/skeleton.js.map +1 -0
  324. package/dist/skills/INDEX.md +7 -6
  325. package/dist/skills/breadcrumb.md +53 -0
  326. package/dist/skills/kbd.md +40 -0
  327. package/dist/skills/schmancy/INDEX.md +7 -6
  328. package/dist/skills/schmancy/breadcrumb.md +53 -0
  329. package/dist/skills/schmancy/kbd.md +40 -0
  330. package/dist/skills/schmancy/skeleton.md +40 -0
  331. package/dist/skills/schmancy/splash-screen.md +60 -0
  332. package/dist/skills/schmancy/switch.md +58 -0
  333. package/dist/skills/schmancy/tooltip.md +1 -1
  334. package/dist/skills/schmancy/visually-hidden.md +41 -0
  335. package/dist/skills/skeleton.md +40 -0
  336. package/dist/skills/splash-screen.md +60 -0
  337. package/dist/skills/switch.md +58 -0
  338. package/dist/skills/tooltip.md +1 -1
  339. package/dist/skills/visually-hidden.md +41 -0
  340. package/dist/slider.cjs +3 -3
  341. package/dist/slider.cjs.map +1 -1
  342. package/dist/slider.js +2 -2
  343. package/dist/{sound.service-Bu3EQLv2.cjs → sound.service-BjSoGjmT.cjs} +1 -1
  344. package/dist/{sound.service-Bu3EQLv2.cjs.map → sound.service-BjSoGjmT.cjs.map} +1 -1
  345. package/dist/{sound.service-m3BrSfuH.js → sound.service-cdkw3Wkv.js} +1 -1
  346. package/dist/{sound.service-m3BrSfuH.js.map → sound.service-cdkw3Wkv.js.map} +1 -1
  347. package/dist/splash-screen-CquyPP1C.cjs +41 -0
  348. package/dist/splash-screen-CquyPP1C.cjs.map +1 -0
  349. package/dist/splash-screen-CvucPkpD.js +83 -0
  350. package/dist/splash-screen-CvucPkpD.js.map +1 -0
  351. package/dist/splash-screen.cjs +1 -0
  352. package/dist/splash-screen.js +1 -0
  353. package/dist/src-Bemk2C2P.cjs +269 -0
  354. package/dist/{src-BtQVyqMy.cjs.map → src-Bemk2C2P.cjs.map} +1 -1
  355. package/dist/{src-BLngW2bl.js → src-f5a3W9Mj.js} +98 -91
  356. package/dist/{src-BLngW2bl.js.map → src-f5a3W9Mj.js.map} +1 -1
  357. package/dist/steps.cjs +10 -10
  358. package/dist/steps.cjs.map +1 -1
  359. package/dist/steps.js +10 -9
  360. package/dist/steps.js.map +1 -1
  361. package/dist/{store-DYqDLAvT.js.map → store-Bmj6rvZY.js.map} +1 -1
  362. package/dist/{store-CorvD3bT.cjs.map → store-CO4nJyGj.cjs.map} +1 -1
  363. package/dist/store.cjs +1 -1
  364. package/dist/store.js +1 -1
  365. package/dist/surface-CDufon40.cjs +7 -0
  366. package/dist/{surface-BjKZoJxK.cjs.map → surface-CDufon40.cjs.map} +1 -1
  367. package/dist/surface-CkEYJCae.js +22 -0
  368. package/dist/{surface-pK8hME5c.js.map → surface-CkEYJCae.js.map} +1 -1
  369. package/dist/surface.cjs +1 -1
  370. package/dist/surface.js +1 -1
  371. package/dist/{surface.mixin-C5sDI1-_.cjs → surface.mixin-CSKqQH-0.cjs} +2 -2
  372. package/dist/{surface.mixin-C5sDI1-_.cjs.map → surface.mixin-CSKqQH-0.cjs.map} +1 -1
  373. package/dist/{surface.mixin-CBNRpJum.js → surface.mixin-DqMwoddO.js} +1 -1
  374. package/dist/{surface.mixin-CBNRpJum.js.map → surface.mixin-DqMwoddO.js.map} +1 -1
  375. package/dist/switch.cjs +69 -0
  376. package/dist/switch.cjs.map +1 -0
  377. package/dist/switch.js +132 -0
  378. package/dist/switch.js.map +1 -0
  379. package/dist/{table-CiqgZzSd.cjs → table-DWc1mkpj.cjs} +3 -3
  380. package/dist/{table-CiqgZzSd.cjs.map → table-DWc1mkpj.cjs.map} +1 -1
  381. package/dist/{table-BXIHX9h4.js → table-P6VGG7NK.js} +4 -4
  382. package/dist/{table-BXIHX9h4.js.map → table-P6VGG7NK.js.map} +1 -1
  383. package/dist/table.cjs +1 -1
  384. package/dist/table.js +1 -1
  385. package/dist/{tabs-nbV5eblZ.js → tabs-CjGjGrqY.js} +13 -12
  386. package/dist/{tabs-nbV5eblZ.js.map → tabs-CjGjGrqY.js.map} +1 -1
  387. package/dist/{tabs-CKa-W4qA.cjs → tabs-DGJEKuhC.cjs} +4 -4
  388. package/dist/{tabs-CKa-W4qA.cjs.map → tabs-DGJEKuhC.cjs.map} +1 -1
  389. package/dist/tabs.cjs +1 -1
  390. package/dist/tabs.js +1 -1
  391. package/dist/{tailwind.mixin-BF1Huas7.cjs → tailwind.mixin-Cpa-VnnX.cjs} +2 -2
  392. package/dist/tailwind.mixin-Cpa-VnnX.cjs.map +1 -0
  393. package/dist/{tailwind.mixin-BCJOOX1_.js → tailwind.mixin-DufHBjmb.js} +57 -63
  394. package/dist/tailwind.mixin-DufHBjmb.js.map +1 -0
  395. package/dist/teleport.cjs +1 -1
  396. package/dist/teleport.js +1 -1
  397. package/dist/{textarea-D7q8exMg.js → textarea-DZT_Ofp5.js} +42 -28
  398. package/dist/textarea-DZT_Ofp5.js.map +1 -0
  399. package/dist/textarea-jmTOXrzl.cjs +39 -0
  400. package/dist/textarea-jmTOXrzl.cjs.map +1 -0
  401. package/dist/textarea.cjs +1 -1
  402. package/dist/textarea.js +1 -1
  403. package/dist/theme-CCKqaksQ.cjs +181 -0
  404. package/dist/{theme-Da4SPq9X.cjs.map → theme-CCKqaksQ.cjs.map} +1 -1
  405. package/dist/{theme-_VPV6Bxh.js → theme-CEc32pAv.js} +13 -12
  406. package/dist/{theme-_VPV6Bxh.js.map → theme-CEc32pAv.js.map} +1 -1
  407. package/dist/theme-button-BsJcv-Zv.cjs +8 -0
  408. package/dist/{theme-button-Ci8VQ7KW.cjs.map → theme-button-BsJcv-Zv.cjs.map} +1 -1
  409. package/dist/{theme-button--sX8A-m1.js → theme-button-dOiAvdKU.js} +4 -3
  410. package/dist/{theme-button--sX8A-m1.js.map → theme-button-dOiAvdKU.js.map} +1 -1
  411. package/dist/theme-button.cjs +1 -1
  412. package/dist/theme-button.js +1 -1
  413. package/dist/theme.cjs +1 -1
  414. package/dist/{theme.events-Cv7N4Toe.js.map → theme.events-Bw3mYjUA.js.map} +1 -1
  415. package/dist/{theme.events-DM4H5F2d.cjs.map → theme.events-EznKK2Y0.cjs.map} +1 -1
  416. package/dist/{theme.interface-Da23QAYb.cjs.map → theme.interface-CM26m9te.cjs.map} +1 -1
  417. package/dist/{theme.interface-CXloMUCw.js.map → theme.interface-FAUIgbIq.js.map} +1 -1
  418. package/dist/theme.js +5 -5
  419. package/dist/{theme.service-C_tjlqgy.cjs → theme.service-ETiKUwVy.cjs} +1 -1
  420. package/dist/{theme.service-C_tjlqgy.cjs.map → theme.service-ETiKUwVy.cjs.map} +1 -1
  421. package/dist/{theme.service-D9lEas89.js → theme.service-_qP5WvB9.js} +2 -2
  422. package/dist/{theme.service-D9lEas89.js.map → theme.service-_qP5WvB9.js.map} +1 -1
  423. package/dist/tooltip.cjs +1 -6
  424. package/dist/tooltip.cjs.map +1 -1
  425. package/dist/tooltip.js +51 -135
  426. package/dist/tooltip.js.map +1 -1
  427. package/dist/tree.cjs +14 -5
  428. package/dist/tree.cjs.map +1 -1
  429. package/dist/tree.js +28 -6
  430. package/dist/tree.js.map +1 -1
  431. package/dist/tslib.es6-Bd-92OW3.cjs +1 -0
  432. package/dist/{tslib.es6-D7BIeDVB.cjs.map → tslib.es6-Bd-92OW3.cjs.map} +1 -1
  433. package/dist/tslib.es6-CI1onEZb.js +7 -0
  434. package/dist/{tslib.es6-ErZEp3OO.js.map → tslib.es6-CI1onEZb.js.map} +1 -1
  435. package/dist/typewriter-ByIL2Mh-.cjs +123 -0
  436. package/dist/{typewriter-B2TnHPjw.cjs.map → typewriter-ByIL2Mh-.cjs.map} +1 -1
  437. package/dist/{typewriter-BrZNa8T-.js → typewriter-vOQ3bDLb.js} +8 -7
  438. package/dist/{typewriter-BrZNa8T-.js.map → typewriter-vOQ3bDLb.js.map} +1 -1
  439. package/dist/typewriter.cjs +1 -1
  440. package/dist/typewriter.js +1 -1
  441. package/dist/typography.cjs +4 -4
  442. package/dist/typography.cjs.map +1 -1
  443. package/dist/typography.js +10 -9
  444. package/dist/typography.js.map +1 -1
  445. package/dist/{utils-CoU7M2YS.js → utils-Cq0m3LYo.js} +3 -3
  446. package/dist/{utils-CoU7M2YS.js.map → utils-Cq0m3LYo.js.map} +1 -1
  447. package/dist/{utils-BcaKtQuA.cjs → utils-D2kE-6zc.cjs} +1 -1
  448. package/dist/{utils-BcaKtQuA.cjs.map → utils-D2kE-6zc.cjs.map} +1 -1
  449. package/dist/utils.cjs +1 -1
  450. package/dist/utils.js +5 -5
  451. package/dist/visually-hidden.cjs +13 -0
  452. package/dist/visually-hidden.cjs.map +1 -0
  453. package/dist/visually-hidden.js +24 -0
  454. package/dist/visually-hidden.js.map +1 -0
  455. package/dist/{window-Uii13x_r.cjs → window-BS7ZQjgH.cjs} +2 -2
  456. package/dist/window-BS7ZQjgH.cjs.map +1 -0
  457. package/dist/{window-CM1ycigo.js → window-WnAihpsA.js} +7 -7
  458. package/dist/window-WnAihpsA.js.map +1 -0
  459. package/dist/window.cjs +1 -1
  460. package/dist/window.js +1 -1
  461. package/package.json +22 -28
  462. package/skills/schmancy/INDEX.md +7 -6
  463. package/skills/schmancy/breadcrumb.md +53 -0
  464. package/skills/schmancy/kbd.md +40 -0
  465. package/skills/schmancy/skeleton.md +40 -0
  466. package/skills/schmancy/splash-screen.md +60 -0
  467. package/skills/schmancy/switch.md +58 -0
  468. package/skills/schmancy/tooltip.md +1 -1
  469. package/skills/schmancy/visually-hidden.md +41 -0
  470. package/src/audio/emotional-sounds.ts +2 -4
  471. package/src/autocomplete/autocomplete.ts +52 -2
  472. package/src/breadcrumb/breadcrumb.ts +109 -0
  473. package/src/breadcrumb/index.ts +1 -0
  474. package/src/button/button.ts +40 -0
  475. package/src/button/icon-button.ts +2 -1
  476. package/src/checkbox/checkbox.test.ts +113 -0
  477. package/src/checkbox/checkbox.ts +41 -1
  478. package/src/chips/filter-chip.ts +15 -0
  479. package/src/chips/input-chip.ts +7 -0
  480. package/src/date-range/date-range-helpers.ts +0 -71
  481. package/src/dialog/dialog-base.mixin.ts +11 -0
  482. package/src/dialog/dialog.component.ts +28 -8
  483. package/src/dropdown/dropdown-content.ts +3 -1
  484. package/src/form/form.test.ts +137 -0
  485. package/src/form/form.ts +142 -158
  486. package/src/form/index.ts +2 -2
  487. package/src/icons/icon.ts +1 -0
  488. package/src/index.ts +6 -0
  489. package/src/kbd/index.ts +1 -0
  490. package/src/kbd/kbd.ts +59 -0
  491. package/src/skeleton/index.ts +1 -0
  492. package/src/skeleton/skeleton.ts +78 -0
  493. package/src/splash-screen/index.ts +1 -0
  494. package/src/splash-screen/splash-screen.ts +154 -0
  495. package/src/switch/index.ts +1 -0
  496. package/src/switch/switch.test.ts +93 -0
  497. package/src/switch/switch.ts +180 -0
  498. package/src/test-utils/a11y.ts +35 -0
  499. package/src/textarea/textarea.ts +32 -2
  500. package/src/tooltip/index.ts +1 -2
  501. package/src/tree/tree.ts +27 -2
  502. package/src/visually-hidden/index.ts +1 -0
  503. package/src/visually-hidden/visually-hidden.ts +39 -0
  504. package/src/window/window-position.ts +1 -74
  505. package/types/mixins/formField.mixin.d.ts +15 -8
  506. package/types/src/audio/emotional-sounds.d.ts +0 -2
  507. package/types/src/autocomplete/autocomplete.d.ts +7 -0
  508. package/types/src/breadcrumb/breadcrumb.d.ts +38 -0
  509. package/types/src/breadcrumb/index.d.ts +1 -0
  510. package/types/src/button/button.d.ts +7 -0
  511. package/types/src/button/icon-button.d.ts +2 -1
  512. package/types/src/checkbox/checkbox.d.ts +6 -0
  513. package/types/src/checkbox/checkbox.test.d.ts +1 -0
  514. package/types/src/chips/filter-chip.d.ts +3 -0
  515. package/types/src/chips/input-chip.d.ts +1 -0
  516. package/types/src/date-range/date-range-helpers.d.ts +0 -12
  517. package/types/src/dialog/dialog.component.d.ts +6 -0
  518. package/types/src/dropdown/dropdown-content.d.ts +3 -1
  519. package/types/src/form/form-v2.d.ts +12 -63
  520. package/types/src/form/form.d.ts +58 -40
  521. package/types/src/form/form.test.d.ts +4 -0
  522. package/types/src/form/index.d.ts +1 -1
  523. package/types/src/icons/icon.d.ts +1 -0
  524. package/types/src/index.d.ts +6 -0
  525. package/types/src/kbd/index.d.ts +1 -0
  526. package/types/src/kbd/kbd.d.ts +25 -0
  527. package/types/src/skeleton/index.d.ts +1 -0
  528. package/types/src/skeleton/skeleton.d.ts +27 -0
  529. package/types/src/splash-screen/index.d.ts +1 -0
  530. package/types/src/splash-screen/splash-screen.d.ts +60 -0
  531. package/types/src/switch/index.d.ts +1 -0
  532. package/types/src/switch/switch.d.ts +54 -0
  533. package/types/src/switch/switch.test.d.ts +1 -0
  534. package/types/src/test-utils/a11y.d.ts +11 -0
  535. package/types/src/textarea/textarea.d.ts +5 -1
  536. package/types/src/tooltip/index.d.ts +0 -1
  537. package/types/src/tree/tree.d.ts +5 -0
  538. package/types/src/visually-hidden/index.d.ts +1 -0
  539. package/types/src/visually-hidden/visually-hidden.d.ts +21 -0
  540. package/types/src/window/window-position.d.ts +1 -35
  541. package/dist/audio-DtYYgzYD.cjs.map +0 -1
  542. package/dist/audio-kz8UgPTO.js.map +0 -1
  543. package/dist/autocomplete-5rVhbieU.cjs +0 -111
  544. package/dist/autocomplete-5rVhbieU.cjs.map +0 -1
  545. package/dist/autocomplete-BllPQwr8.js.map +0 -1
  546. package/dist/chips-B19XS8Xc.cjs.map +0 -1
  547. package/dist/chips-B9oAEfE_.js.map +0 -1
  548. package/dist/components-CyD6a7gQ.cjs +0 -73
  549. package/dist/date-range-Sfyco9-n.js.map +0 -1
  550. package/dist/date-range-ZAaQB22I.cjs.map +0 -1
  551. package/dist/date-range-inline-m7nLjOMI.cjs +0 -43
  552. package/dist/delay-7boauN6N.cjs +0 -9
  553. package/dist/float-D5rNC82i.cjs +0 -1
  554. package/dist/form-BqN1AGFj.cjs +0 -1
  555. package/dist/form-BqN1AGFj.cjs.map +0 -1
  556. package/dist/form-CajC5HnO.js +0 -270
  557. package/dist/form-CajC5HnO.js.map +0 -1
  558. package/dist/icons-B57_93VV.cjs.map +0 -1
  559. package/dist/icons-BDqiGXrO.js.map +0 -1
  560. package/dist/input-chip-Dy-AiP55.cjs.map +0 -1
  561. package/dist/input-chip-QejNcRnS.js.map +0 -1
  562. package/dist/layout-DNYG3phx.cjs +0 -17
  563. package/dist/notification-CZFEhWxc.cjs +0 -23
  564. package/dist/radio-group-Cspwd-Vw.cjs +0 -40
  565. package/dist/src-BtQVyqMy.cjs +0 -269
  566. package/dist/surface-BjKZoJxK.cjs +0 -7
  567. package/dist/surface-pK8hME5c.js +0 -21
  568. package/dist/tailwind.mixin-BCJOOX1_.js.map +0 -1
  569. package/dist/tailwind.mixin-BF1Huas7.cjs.map +0 -1
  570. package/dist/textarea-Cp1ZE60O.cjs +0 -35
  571. package/dist/textarea-Cp1ZE60O.cjs.map +0 -1
  572. package/dist/textarea-D7q8exMg.js.map +0 -1
  573. package/dist/theme-Da4SPq9X.cjs +0 -181
  574. package/dist/theme-button-Ci8VQ7KW.cjs +0 -8
  575. package/dist/typewriter-B2TnHPjw.cjs +0 -123
  576. package/dist/window-CM1ycigo.js.map +0 -1
  577. package/dist/window-Uii13x_r.cjs.map +0 -1
  578. package/mixins/baseElement.ts +0 -190
  579. package/mixins/constructor.ts +0 -3
  580. package/mixins/discovery.service.ts +0 -221
  581. package/mixins/formField.mixin.ts +0 -228
  582. package/mixins/index.ts +0 -7
  583. package/mixins/litElement.mixin.ts +0 -15
  584. package/mixins/scss.d.ts +0 -21
  585. package/mixins/surface.mixin.ts +0 -93
  586. package/mixins/tailwind.css +0 -549
  587. package/mixins/tailwind.mixin.ts +0 -30
  588. package/src/form/form-v2.ts +0 -268
  589. package/src/layout/v2/grid.ts +0 -93
  590. package/src/notification/outlet.ts +0 -16
  591. package/src/store/immer-integration.ts +0 -99
  592. package/src/tooltip/tooltip.ts +0 -216
  593. /package/dist/{animation-CO_Csq84.cjs → animation-Bcwh107v.cjs} +0 -0
  594. /package/dist/{animation-BK-8BwY8.js → animation-CXKSuUoE.js} +0 -0
  595. /package/dist/{tslib.es6-ErZEp3OO.js → decorate-D_utPUsC.js} +0 -0
  596. /package/dist/{tslib.es6-D7BIeDVB.cjs → decorate-F9CuyeHg.cjs} +0 -0
  597. /package/dist/{flow-CUj0fDT_.js → flow-CqgDEIqK.js} +0 -0
  598. /package/dist/{flow-Bbwn6dRN.cjs → flow-DSu4PLt1.cjs} +0 -0
  599. /package/dist/{hashContent-DaeGmY-p.cjs → hashContent-kKvXKFa9.cjs} +0 -0
  600. /package/dist/{hashContent-DYM21p6t.js → hashContent-nD2uWwi2.js} +0 -0
  601. /package/dist/{intersection-CZpaIHeT.cjs → intersection-D1v1UCVv.cjs} +0 -0
  602. /package/dist/{intersection-BPLpqYEd.js → intersection-LfEsy29T.js} +0 -0
  603. /package/dist/{overlay-stack-DQey9Qph.cjs → overlay-stack-CEYGD9T1.cjs} +0 -0
  604. /package/dist/{overlay-stack-DT1SdaGW.js → overlay-stack-Ca4EK2Mu.js} +0 -0
  605. /package/dist/{reduced-motion-D-L12p7G.js → reduced-motion-B83yZbcO.js} +0 -0
  606. /package/dist/{reduced-motion-Ds05GPyz.cjs → reduced-motion-DR32yKEO.cjs} +0 -0
  607. /package/dist/{rxjs-utils-BSjmI9-Q.js → rxjs-utils-Bldch1RO.js} +0 -0
  608. /package/dist/{rxjs-utils-DCsfzeap.cjs → rxjs-utils-hAgKC7vk.cjs} +0 -0
  609. /package/dist/{search-C4dFHYbX.js → search-BlGJ6uJv.js} +0 -0
  610. /package/dist/{search-Ds8tt7Et.cjs → search-C8eAOzBm.cjs} +0 -0
  611. /package/dist/{store-DYqDLAvT.js → store-Bmj6rvZY.js} +0 -0
  612. /package/dist/{store-CorvD3bT.cjs → store-CO4nJyGj.cjs} +0 -0
  613. /package/dist/{theme.events-Cv7N4Toe.js → theme.events-Bw3mYjUA.js} +0 -0
  614. /package/dist/{theme.events-DM4H5F2d.cjs → theme.events-EznKK2Y0.cjs} +0 -0
  615. /package/dist/{theme.interface-Da23QAYb.cjs → theme.interface-CM26m9te.cjs} +0 -0
  616. /package/dist/{theme.interface-CXloMUCw.js → theme.interface-FAUIgbIq.js} +0 -0
@@ -1,55 +1,73 @@
1
- import { LitElement } from 'lit';
2
- export interface FormEventMap {
3
- submit: CustomEvent<FormData>;
4
- reset: CustomEvent;
5
- }
6
- declare const SchmancyForm_base: import("@mixins/index").Constructor<CustomElementConstructor> & import("@mixins/index").Constructor<import("@mixins/index").ITailwindElementMixin> & import("@mixins/index").Constructor<LitElement> & import("@mixins/index").Constructor<import("@mixins/index").IBaseMixin>;
7
1
  /**
8
- * The form is a component used to collect user input from
9
- * interactive controls.
2
+ * A thin ergonomic wrapper around a native `<form>` element. Its children are
3
+ * reparented into a `<form>` element in light DOM on connection, so:
10
4
  *
11
- * @element schmancy-form
5
+ * - Form-associated custom elements (FACE) resolve their `internals.form`
6
+ * correctly via native DOM ancestry.
7
+ * - `new FormData(form)` collects values from every FACE + native control
8
+ * without any manual walking.
9
+ * - `form.reset()` triggers `formResetCallback()` on every FACE.
10
+ * - `form.reportValidity()` runs native validation UI.
11
+ * - `<button type="submit">` and `<schmancy-button type="submit">` both
12
+ * submit the form via the native submitter pipeline.
12
13
  *
13
- * @slot - Default slot for the form.
14
+ * This component exists only to translate the native `submit` / `reset`
15
+ * events into the Schmancy event shape (`detail: FormData`). All heavy
16
+ * lifting is the platform's.
14
17
  *
15
- * @fires submit - Emitted when the form is submitted.
16
- * @fires reset - Emitted when the form is reset.
18
+ * @element schmancy-form
19
+ * @fires submit - `CustomEvent<FormData>` emitted when the form is submitted.
20
+ * @fires reset - Emitted after the underlying form resets.
17
21
  */
18
- export default class SchmancyForm extends SchmancyForm_base {
19
- private $disconnecting;
20
- static readonly tagName = "schmancy-form";
21
- protected static shadowRootOptions: {
22
- mode: string;
23
- delegatesFocus: boolean;
24
- clonable?: boolean;
25
- customElementRegistry?: CustomElementRegistry;
26
- serializable?: boolean;
27
- slotAssignment?: SlotAssignmentMode;
28
- };
29
- private _controlsWithChecked;
30
- private _controlsWithValue;
31
- private _controlsThatSubmit;
32
- /** Specifies if form data validation should be skipped on submit.
33
- * @attr novalidate
34
- * @type {boolean}
35
- * @public
22
+ export default class SchmancyForm extends HTMLElement {
23
+ static readonly tagName: string;
24
+ private _form;
25
+ private _wrapped;
26
+ /** ElementInternals for `:state(invalid)` / `:state(submitting)` broadcasting. */
27
+ private readonly _internals;
28
+ /** Skip built-in constraint validation on submit. Mirrors `<form novalidate>`. */
29
+ get novalidate(): boolean;
30
+ set novalidate(value: boolean);
31
+ connectedCallback(): void;
32
+ disconnectedCallback(): void;
33
+ /**
34
+ * On first connection, create the internal light-DOM `<form>` and move
35
+ * existing children into it. Re-entry is a no-op.
36
36
  */
37
- novalidate: boolean;
38
- constructor();
39
- /** Submits the form. */
37
+ private ensureForm;
38
+ private _onSubmit;
39
+ private _onReset;
40
+ /** Programmatically submit via the native submitter pipeline. */
40
41
  submit(): boolean;
41
- /** Resets the form. */
42
+ /** Programmatically reset via native `form.reset()`. */
42
43
  reset(): void;
43
- private getFormElements;
44
- getFormData(): FormData;
45
- /** Checks for validity of the form. */
46
44
  reportValidity(): boolean;
47
- private handleSubmitRequest;
48
- protected render(): import("lit-html").TemplateResult<1>;
45
+ checkValidity(): boolean;
46
+ /** Snapshot of current form values. Equivalent to `new FormData(this.form)`. */
47
+ getFormData(): FormData;
48
+ /** The underlying `<form>` element (escape hatch for advanced integration). */
49
+ get form(): HTMLFormElement | null;
49
50
  }
50
51
  declare global {
51
52
  interface HTMLElementTagNameMap {
52
53
  'schmancy-form': SchmancyForm;
53
54
  }
54
55
  }
55
- export {};
56
+ export interface FormElement extends HTMLElement {
57
+ name?: string;
58
+ value?: string;
59
+ disabled?: boolean;
60
+ type?: string;
61
+ defaultValue?: string;
62
+ }
63
+ export interface CheckableFormElement extends FormElement {
64
+ checked?: boolean;
65
+ }
66
+ export interface ValidatableFormElement extends FormElement {
67
+ reportValidity?: () => boolean;
68
+ checkValidity?: () => boolean;
69
+ }
70
+ export interface FormEventMap {
71
+ submit: CustomEvent<FormData>;
72
+ reset: CustomEvent;
73
+ }
@@ -0,0 +1,4 @@
1
+ import './form';
2
+ import '../input/input';
3
+ import '../button/button';
4
+ import '../checkbox/checkbox';
@@ -1,2 +1,2 @@
1
- export * from './form-v2';
2
1
  export * from './form';
2
+ export { default as SchmancyForm } from './form';
@@ -18,6 +18,7 @@ declare const SchmancyIcon_base: import("@mixins/index").Constructor<CustomEleme
18
18
  * @cssprop --schmancy-icon-weight - Weight value for icon (100-700)
19
19
  * @cssprop --schmancy-icon-grade - Grade value for icon (-50-200)
20
20
  * @cssprop --schmancy-icon-opsz - Optical size (default: 24)
21
+ * @csspart icon - The inner `<span>` carrying the Material Symbols glyph.
21
22
  */
22
23
  export default class SchmancyIcon extends SchmancyIcon_base {
23
24
  private static fontsLoaded;
@@ -67,3 +67,9 @@ export * from './typewriter';
67
67
  export * from './typography';
68
68
  export * from './utils';
69
69
  export * from './avatar';
70
+ export * from './breadcrumb';
71
+ export * from './kbd';
72
+ export * from './skeleton';
73
+ export * from './splash-screen';
74
+ export * from './switch';
75
+ export * from './visually-hidden';
@@ -0,0 +1 @@
1
+ export * from './kbd';
@@ -0,0 +1,25 @@
1
+ declare const SchmancyKbd_base: import("@mixins/index").Constructor<CustomElementConstructor> & import("@mixins/index").Constructor<import("@mixins/index").ITailwindElementMixin> & import("@mixins/index").Constructor<import("lit").LitElement> & import("@mixins/index").Constructor<import("@mixins/index").IBaseMixin>;
2
+ /**
3
+ * Renders a keyboard shortcut hint (e.g. `⌘ K`, `Ctrl+C`). Semantically a
4
+ * `<kbd>` element for screen readers; visually styled as a pressed key.
5
+ *
6
+ * Compose multiple instances for combinations:
7
+ * ```html
8
+ * <schmancy-kbd>⌘</schmancy-kbd> + <schmancy-kbd>K</schmancy-kbd>
9
+ * ```
10
+ *
11
+ * @element schmancy-kbd
12
+ * @slot - The key label (e.g. `⌘`, `Shift`, `K`).
13
+ * @attr size - 'sm' | 'md'. Default 'md'.
14
+ * @csspart base - The inner native `<kbd>` element.
15
+ */
16
+ export declare class SchmancyKbd extends SchmancyKbd_base {
17
+ size: 'sm' | 'md';
18
+ render(): import("lit-html").TemplateResult<1>;
19
+ }
20
+ declare global {
21
+ interface HTMLElementTagNameMap {
22
+ 'schmancy-kbd': SchmancyKbd;
23
+ }
24
+ }
25
+ export {};
@@ -0,0 +1 @@
1
+ export * from './skeleton';
@@ -0,0 +1,27 @@
1
+ declare const SchmancySkeleton_base: import("@mixins/index").Constructor<CustomElementConstructor> & import("@mixins/index").Constructor<import("@mixins/index").ITailwindElementMixin> & import("@mixins/index").Constructor<import("lit").LitElement> & import("@mixins/index").Constructor<import("@mixins/index").IBaseMixin>;
2
+ /**
3
+ * Placeholder shimmer surface shown while content loads. Renders a
4
+ * shape-configurable rectangle with a reduced-motion-aware shimmer.
5
+ *
6
+ * @element schmancy-skeleton
7
+ * @attr shape - 'rect' | 'circle' | 'text'. Default 'rect'.
8
+ * @attr width - CSS length (e.g. `100%`, `12rem`).
9
+ * @attr height - CSS length; for `shape=text` defaults to 1em.
10
+ * @attr radius - CSS length for corner radius; ignored for `shape=circle`.
11
+ * @csspart surface - The shimmering surface element.
12
+ */
13
+ export declare class SchmancySkeleton extends SchmancySkeleton_base {
14
+ shape: 'rect' | 'circle' | 'text';
15
+ width: string;
16
+ height: string;
17
+ radius: string;
18
+ connectedCallback(): void;
19
+ protected updated(): void;
20
+ render(): import("lit-html").TemplateResult<1>;
21
+ }
22
+ declare global {
23
+ interface HTMLElementTagNameMap {
24
+ 'schmancy-skeleton': SchmancySkeleton;
25
+ }
26
+ }
27
+ export {};
@@ -0,0 +1 @@
1
+ export * from './splash-screen';
@@ -0,0 +1,60 @@
1
+ export type SchmancySplashScreenDoneEvent = CustomEvent<void>;
2
+ declare const SchmancySplashScreen_base: CustomElementConstructor & import("../../mixins").Constructor<import("lit").LitElement> & import("../../mixins").Constructor<import("../../mixins").IBaseMixin>;
3
+ /**
4
+ * Full-viewport splash overlay that dismisses once a minimum duration has
5
+ * elapsed and (optionally) an external `ready` signal has fired. The splash
6
+ * fades out while the underlying app content fades in.
7
+ *
8
+ * Bring-your-own visuals: the `splash` slot is empty by default so the
9
+ * component pulls in no dependencies. Provide a logo, spinner, or
10
+ * animation from the consumer side.
11
+ *
12
+ * @element schmancy-splash-screen
13
+ * @slot splash - Content rendered on the splash layer (logo, spinner, etc.).
14
+ * @slot - Default slot for the actual app content, revealed once dismissed.
15
+ * @fires schmancy-splash-done - `CustomEvent<void>` when the splash dismisses.
16
+ *
17
+ * @example
18
+ * ```html
19
+ * <schmancy-splash-screen min-duration="1200">
20
+ * <my-logo slot="splash"></my-logo>
21
+ * <my-app></my-app>
22
+ * </schmancy-splash-screen>
23
+ * ```
24
+ */
25
+ export default class SchmancySplashScreen extends SchmancySplashScreen_base {
26
+ /**
27
+ * Minimum duration (ms) the splash layer stays visible. Prevents a flash
28
+ * when the app loads faster than expected.
29
+ */
30
+ minDuration: number;
31
+ /**
32
+ * When true, the splash dismisses on the `minDuration` timer alone.
33
+ * When false (default), it additionally waits for an external ready signal
34
+ * (a `ready` event on this element, or a call to `this.ready()`).
35
+ */
36
+ auto: boolean;
37
+ /**
38
+ * When true, the splash starts hidden. Use this for imperative control.
39
+ */
40
+ initiallyHidden: boolean;
41
+ private _visible;
42
+ connectedCallback(): void;
43
+ /**
44
+ * Imperative API: signal that the app is ready and dismiss the splash
45
+ * after the minimum duration has elapsed.
46
+ */
47
+ ready(): void;
48
+ /**
49
+ * Force the splash to show again (e.g. between route transitions).
50
+ */
51
+ show(): void;
52
+ private _dismiss;
53
+ render(): import("lit-html").TemplateResult<1>;
54
+ }
55
+ declare global {
56
+ interface HTMLElementTagNameMap {
57
+ 'schmancy-splash-screen': SchmancySplashScreen;
58
+ }
59
+ }
60
+ export {};
@@ -0,0 +1 @@
1
+ export * from './switch';
@@ -0,0 +1,54 @@
1
+ import { LitElement } from 'lit';
2
+ export type SchmancySwitchChangeEvent = CustomEvent<{
3
+ value: boolean;
4
+ }>;
5
+ declare const SchmancySwitch_base: import("@mixins/index").Constructor<CustomElementConstructor> & import("@mixins/index").Constructor<import("@mixins/index").ITailwindElementMixin> & import("@mixins/index").Constructor<LitElement> & import("@mixins/index").Constructor<import("@mixins/index").IBaseMixin>;
6
+ /**
7
+ * Binary on/off control. Form-associated, keyboard-accessible, semantically a
8
+ * switch (ARIA role="switch"). Distinct from `schmancy-checkbox`: a switch
9
+ * represents an immediate state change, a checkbox represents a selection in
10
+ * a form to be submitted.
11
+ *
12
+ * @element schmancy-switch
13
+ * @fires change - `CustomEvent<{ value: boolean }>` when the state changes.
14
+ * @attr checked - Initial checked state (also reflected via `value`).
15
+ * @attr disabled - Disables interaction.
16
+ * @attr required - Requires the switch to be on for form validity.
17
+ * @attr name - Form field name for submission.
18
+ * @csspart track - The background track.
19
+ * @csspart thumb - The moving thumb.
20
+ */
21
+ export declare class SchmancySwitch extends SchmancySwitch_base {
22
+ static formAssociated: boolean;
23
+ private internals;
24
+ checked: boolean;
25
+ disabled: boolean;
26
+ required: boolean;
27
+ name: string;
28
+ value: string;
29
+ label: string;
30
+ protected static shadowRootOptions: {
31
+ delegatesFocus: boolean;
32
+ clonable?: boolean;
33
+ customElementRegistry?: CustomElementRegistry;
34
+ mode: ShadowRootMode;
35
+ serializable?: boolean;
36
+ slotAssignment?: SlotAssignmentMode;
37
+ };
38
+ constructor();
39
+ get form(): HTMLFormElement | null;
40
+ protected updated(changed: Map<string, unknown>): void;
41
+ formResetCallback(): void;
42
+ formDisabledCallback(disabled: boolean): void;
43
+ checkValidity(): boolean;
44
+ reportValidity(): boolean;
45
+ private _toggle;
46
+ private _onKeydown;
47
+ render(): import("lit-html").TemplateResult<1>;
48
+ }
49
+ declare global {
50
+ interface HTMLElementTagNameMap {
51
+ 'schmancy-switch': SchmancySwitch;
52
+ }
53
+ }
54
+ export {};
@@ -0,0 +1 @@
1
+ import './switch';
@@ -0,0 +1,11 @@
1
+ import { type ElementContext, type RunOptions, type Result } from 'axe-core';
2
+ /**
3
+ * Run axe-core on the given element (or document) and assert no violations.
4
+ * Throws a readable failure with a summary of violations so test output is
5
+ * immediately actionable.
6
+ *
7
+ * Keep the axe rule set minimal and appropriate for component tests — the
8
+ * defaults include many rules that only make sense at the page level (e.g.
9
+ * `region`, `landmark-one-main`). Override via `options.rules` when needed.
10
+ */
11
+ export declare function expectNoA11yViolations(context?: ElementContext, options?: RunOptions): Promise<Result[]>;
@@ -1,4 +1,4 @@
1
- import { LitElement } from 'lit';
1
+ import { LitElement, type PropertyValues } from 'lit';
2
2
  declare const SchmancyTextarea_base: import("@mixins/index").Constructor<CustomElementConstructor> & import("@mixins/index").Constructor<import("@mixins/index").ITailwindElementMixin> & import("@mixins/index").Constructor<LitElement> & import("@mixins/index").Constructor<import("@mixins/index").IBaseMixin>;
3
3
  /**
4
4
  * Textarea component with auto-resize and form integration.
@@ -24,6 +24,7 @@ export default class SchmancyTextarea extends SchmancyTextarea_base {
24
24
  static formAssociated: boolean;
25
25
  internals: ElementInternals | undefined;
26
26
  textareaRef: import("lit-html/directives/ref").Ref<HTMLTextAreaElement>;
27
+ private readonly _a11yId;
27
28
  /**
28
29
  * The label of the control.
29
30
  * @attr
@@ -141,6 +142,9 @@ export default class SchmancyTextarea extends SchmancyTextarea_base {
141
142
  hint: string | undefined;
142
143
  error: boolean;
143
144
  constructor();
145
+ protected willUpdate(changed: PropertyValues): void;
146
+ formResetCallback(): void;
147
+ formDisabledCallback(disabled: boolean): void;
144
148
  firstUpdated(): void;
145
149
  get form(): HTMLFormElement;
146
150
  /** Checks for validity of the control and shows the browser message if it's invalid. */
@@ -1,2 +1 @@
1
1
  export * from './tooltip.directive';
2
- export * from './tooltip';
@@ -12,6 +12,11 @@ export declare class SchmancyTree extends SchmancyTree_base {
12
12
  toggler: HTMLSlotElement;
13
13
  defaultSlot: HTMLSlotElement;
14
14
  chevron: HTMLElement;
15
+ private readonly _a11yId;
16
+ private get _contentId();
17
+ /** ElementInternals — broadcasts `:state(open)` for consumer CSS. */
18
+ private readonly _internals;
19
+ updated(changed: Map<string, unknown>): void;
15
20
  firstUpdated(): void;
16
21
  render(): import("lit-html").TemplateResult<1>;
17
22
  }
@@ -0,0 +1 @@
1
+ export * from './visually-hidden';
@@ -0,0 +1,21 @@
1
+ declare const SchmancyVisuallyHidden_base: import("@mixins/index").Constructor<CustomElementConstructor> & import("@mixins/index").Constructor<import("@mixins/index").ITailwindElementMixin> & import("@mixins/index").Constructor<import("lit").LitElement> & import("@mixins/index").Constructor<import("@mixins/index").IBaseMixin>;
2
+ /**
3
+ * Hides content visually while keeping it in the accessibility tree. Use for
4
+ * screen-reader-only labels, supplemental descriptions, and live-region text
5
+ * that sighted users don't need to see.
6
+ *
7
+ * Uses the WCAG-recommended clip pattern rather than `display: none` or
8
+ * `visibility: hidden` so assistive tech still reads the content.
9
+ *
10
+ * @element schmancy-visually-hidden
11
+ * @slot - Content hidden from sighted users but exposed to assistive tech.
12
+ */
13
+ export declare class SchmancyVisuallyHidden extends SchmancyVisuallyHidden_base {
14
+ render(): import("lit-html").TemplateResult<1>;
15
+ }
16
+ declare global {
17
+ interface HTMLElementTagNameMap {
18
+ 'schmancy-visually-hidden': SchmancyVisuallyHidden;
19
+ }
20
+ }
21
+ export {};
@@ -10,7 +10,7 @@
10
10
  * const resolved = resolveOverlap(projected, neighbors, { width: 1440, height: 900 })
11
11
  * // → { left: 144, top: 444, width: 360, height: 500 } (cascaded away from conflict)
12
12
  */
13
- import type { WindowBounds, WindowRecord, SnapCorner } from './window-registry.js';
13
+ import type { WindowBounds, WindowRecord } from './window-registry.js';
14
14
  /** Check if two rectangles overlap (edges touching does NOT count as overlap) */
15
15
  export declare function rectsOverlap(a: WindowBounds, b: WindowBounds): boolean;
16
16
  /**
@@ -21,17 +21,6 @@ export declare function resolveOverlap(candidate: WindowBounds, existing: Window
21
21
  width: number;
22
22
  height: number;
23
23
  }): WindowBounds;
24
- /**
25
- * Snap window bounds to a corner with standard edge gap.
26
- */
27
- export declare function snapToCorner(bounds: WindowBounds, corner: SnapCorner, viewport: {
28
- width: number;
29
- height: number;
30
- }, bottomOffset: number): WindowBounds;
31
- /**
32
- * Place a window flush beside a neighbor.
33
- */
34
- export declare function snapToNeighbor(bounds: WindowBounds, neighbor: WindowBounds, side: 'left' | 'right'): WindowBounds;
35
24
  /**
36
25
  * Clamp bounds so the window stays fully within the viewport.
37
26
  */
@@ -39,26 +28,3 @@ export declare function clampToViewport(bounds: WindowBounds, viewport: {
39
28
  width: number;
40
29
  height: number;
41
30
  }): WindowBounds;
42
- /**
43
- * Convert corner-relative offset (used by the old float) to absolute viewport bounds.
44
- */
45
- export declare function cornerOffsetToAbsolute(corner: SnapCorner, offset: {
46
- x: number;
47
- y: number;
48
- }, size: {
49
- width: number;
50
- height: number;
51
- }, viewport: {
52
- width: number;
53
- height: number;
54
- }, bottomOffset: number): WindowBounds;
55
- /**
56
- * Convert absolute viewport bounds back to corner-relative offset.
57
- */
58
- export declare function absoluteToCornerOffset(corner: SnapCorner, bounds: WindowBounds, viewport: {
59
- width: number;
60
- height: number;
61
- }, bottomOffset: number): {
62
- x: number;
63
- y: number;
64
- };
@@ -1 +0,0 @@
1
- {"version":3,"file":"audio-DtYYgzYD.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/** Feeling category */\nexport type FeelingCategory =\n | 'happy' | 'sad' | 'anxious' | 'angry'\n | 'tired' | 'calm' | 'connected' | 'mixed'\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\nexport default EmotionalSoundGenerator\n"],"mappings":"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"}