@mhmo91/schmancy 0.4.53 → 0.4.55

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 (333) hide show
  1. package/ai/map.md +232 -0
  2. package/ai/notification.md +158 -45
  3. package/dist/ai/map.md +232 -0
  4. package/dist/ai/notification.md +158 -45
  5. package/dist/{animated-text-D26Fv13t.js → animated-text-Bns9oiIU.js} +3 -3
  6. package/dist/{animated-text-D26Fv13t.js.map → animated-text-Bns9oiIU.js.map} +1 -1
  7. package/dist/{animated-text-CtXY3MHV.cjs → animated-text-CHUcj2G2.cjs} +2 -2
  8. package/dist/{animated-text-CtXY3MHV.cjs.map → animated-text-CHUcj2G2.cjs.map} +1 -1
  9. package/dist/animated-text.cjs +1 -1
  10. package/dist/animated-text.js +1 -1
  11. package/dist/area.cjs +1 -1
  12. package/dist/{area.component-BCcq9Nb7.js → area.component-Aur5h5TN.js} +10 -10
  13. package/dist/{area.component-BCcq9Nb7.js.map → area.component-Aur5h5TN.js.map} +1 -1
  14. package/dist/{area.component-DQ_erV9e.cjs → area.component-BTZcyqR5.cjs} +2 -2
  15. package/dist/{area.component-DQ_erV9e.cjs.map → area.component-BTZcyqR5.cjs.map} +1 -1
  16. package/dist/area.js +1 -1
  17. package/dist/{autocomplete-CkycjWy4.js → autocomplete-BhjrqWor.js} +3 -3
  18. package/dist/{autocomplete-CkycjWy4.js.map → autocomplete-BhjrqWor.js.map} +1 -1
  19. package/dist/{autocomplete-CrhgxhFI.cjs → autocomplete-CleoNM85.cjs} +2 -2
  20. package/dist/{autocomplete-CrhgxhFI.cjs.map → autocomplete-CleoNM85.cjs.map} +1 -1
  21. package/dist/autocomplete.cjs +1 -1
  22. package/dist/autocomplete.js +1 -1
  23. package/dist/{avatar-nwqyt3uc.cjs → avatar-DoUVCqad.cjs} +2 -2
  24. package/dist/{avatar-nwqyt3uc.cjs.map → avatar-DoUVCqad.cjs.map} +1 -1
  25. package/dist/{avatar-BXx1oJMG.js → avatar-j733KoCV.js} +53 -51
  26. package/dist/{avatar-BXx1oJMG.js.map → avatar-j733KoCV.js.map} +1 -1
  27. package/dist/badge.cjs +1 -1
  28. package/dist/badge.js +1 -1
  29. package/dist/{boat-C_BvtlNQ.js → boat-CIA-nk8V.js} +2 -2
  30. package/dist/{boat-C_BvtlNQ.js.map → boat-CIA-nk8V.js.map} +1 -1
  31. package/dist/{boat-B_xZilsk.cjs → boat-DU_GhEJ2.cjs} +2 -2
  32. package/dist/{boat-B_xZilsk.cjs.map → boat-DU_GhEJ2.cjs.map} +1 -1
  33. package/dist/boat.cjs +1 -1
  34. package/dist/boat.js +1 -1
  35. package/dist/busy.cjs +1 -1
  36. package/dist/busy.js +1 -1
  37. package/dist/button.cjs +1 -1
  38. package/dist/button.js +1 -1
  39. package/dist/card.cjs +1 -1
  40. package/dist/card.js +1 -1
  41. package/dist/{checkbox-c3DzDvWH.js → checkbox-BCTABF4s.js} +6 -6
  42. package/dist/{checkbox-c3DzDvWH.js.map → checkbox-BCTABF4s.js.map} +1 -1
  43. package/dist/{checkbox-BAuVXvYL.cjs → checkbox-DblOhLz_.cjs} +2 -2
  44. package/dist/{checkbox-BAuVXvYL.cjs.map → checkbox-DblOhLz_.cjs.map} +1 -1
  45. package/dist/checkbox.cjs +1 -1
  46. package/dist/checkbox.js +1 -1
  47. package/dist/{chips-Dn8RpKCE.js → chips-BbMM2s8r.js} +3 -3
  48. package/dist/{chips-Dn8RpKCE.js.map → chips-BbMM2s8r.js.map} +1 -1
  49. package/dist/{chips-Dg2otqDI.cjs → chips-LAtr3to0.cjs} +2 -2
  50. package/dist/{chips-Dg2otqDI.cjs.map → chips-LAtr3to0.cjs.map} +1 -1
  51. package/dist/chips.cjs +1 -1
  52. package/dist/chips.js +1 -1
  53. package/dist/{circular-progress-DZUJU-z3.cjs → circular-progress-BKwcIgEZ.cjs} +2 -2
  54. package/dist/{circular-progress-DZUJU-z3.cjs.map → circular-progress-BKwcIgEZ.cjs.map} +1 -1
  55. package/dist/{circular-progress-B1RjFzcp.js → circular-progress-DtAG2JJn.js} +3 -3
  56. package/dist/{circular-progress-B1RjFzcp.js.map → circular-progress-DtAG2JJn.js.map} +1 -1
  57. package/dist/circular-progress.cjs +1 -1
  58. package/dist/circular-progress.js +1 -1
  59. package/dist/code-highlight.cjs +1 -1
  60. package/dist/code-highlight.js +1 -1
  61. package/dist/{code-preview-JlSLKkKg.js → code-preview-BgwAlMc_.js} +2 -2
  62. package/dist/{code-preview-JlSLKkKg.js.map → code-preview-BgwAlMc_.js.map} +1 -1
  63. package/dist/{code-preview-CYHNaPek.cjs → code-preview-Bn6-jpNm.cjs} +2 -2
  64. package/dist/{code-preview-CYHNaPek.cjs.map → code-preview-Bn6-jpNm.cjs.map} +1 -1
  65. package/dist/components.cjs +1 -1
  66. package/dist/components.js +1 -1
  67. package/dist/content-drawer.cjs +1 -1
  68. package/dist/content-drawer.js +1 -1
  69. package/dist/{date-range-8o_f5N7V.js → date-range-CBfV-vU_.js} +4 -4
  70. package/dist/{date-range-8o_f5N7V.js.map → date-range-CBfV-vU_.js.map} +1 -1
  71. package/dist/{date-range-9NUFmKqd.cjs → date-range-CNsf8eFb.cjs} +2 -2
  72. package/dist/{date-range-9NUFmKqd.cjs.map → date-range-CNsf8eFb.cjs.map} +1 -1
  73. package/dist/{date-range-inline-Czq1wHs1.cjs → date-range-inline-ECHd558D.cjs} +2 -2
  74. package/dist/{date-range-inline-Czq1wHs1.cjs.map → date-range-inline-ECHd558D.cjs.map} +1 -1
  75. package/dist/{date-range-inline-B_K4YPtB.js → date-range-inline-VA3xdfyl.js} +3 -3
  76. package/dist/{date-range-inline-B_K4YPtB.js.map → date-range-inline-VA3xdfyl.js.map} +1 -1
  77. package/dist/date-range-inline.cjs +1 -1
  78. package/dist/date-range-inline.js +1 -1
  79. package/dist/date-range.cjs +1 -1
  80. package/dist/date-range.js +1 -1
  81. package/dist/{delay-DtVBjjLV.js → delay-B_3yscDy.js} +2 -2
  82. package/dist/{delay-DtVBjjLV.js.map → delay-B_3yscDy.js.map} +1 -1
  83. package/dist/{delay-FgtrEHdo.cjs → delay-DtUJwLKe.cjs} +2 -2
  84. package/dist/{delay-FgtrEHdo.cjs.map → delay-DtUJwLKe.cjs.map} +1 -1
  85. package/dist/delay.cjs +1 -1
  86. package/dist/delay.js +1 -1
  87. package/dist/details-Bkt6fV0b.js +134 -0
  88. package/dist/details-Bkt6fV0b.js.map +1 -0
  89. package/dist/details-X-ciBYba.cjs +109 -0
  90. package/dist/details-X-ciBYba.cjs.map +1 -0
  91. package/dist/details.cjs +2 -0
  92. package/dist/details.cjs.map +1 -0
  93. package/dist/details.js +5 -0
  94. package/dist/details.js.map +1 -0
  95. package/dist/{dialog-content-C_paCOeM.js → dialog-content-Y4RvMloi.js} +4 -4
  96. package/dist/{dialog-content-C_paCOeM.js.map → dialog-content-Y4RvMloi.js.map} +1 -1
  97. package/dist/{dialog-content-tGl9B67L.cjs → dialog-content-puP-JDoT.cjs} +2 -2
  98. package/dist/{dialog-content-tGl9B67L.cjs.map → dialog-content-puP-JDoT.cjs.map} +1 -1
  99. package/dist/{dialog-service-JNWTLfAy.cjs → dialog-service-BCfRtG2U.cjs} +2 -2
  100. package/dist/{dialog-service-JNWTLfAy.cjs.map → dialog-service-BCfRtG2U.cjs.map} +1 -1
  101. package/dist/{dialog-service-DZv4KB89.js → dialog-service-CY9yBEhe.js} +2 -2
  102. package/dist/{dialog-service-DZv4KB89.js.map → dialog-service-CY9yBEhe.js.map} +1 -1
  103. package/dist/dialog.cjs +1 -1
  104. package/dist/dialog.js +2 -2
  105. package/dist/{divider-Dn26vIou.js → divider-BZq3k_da.js} +3 -3
  106. package/dist/{divider-Dn26vIou.js.map → divider-BZq3k_da.js.map} +1 -1
  107. package/dist/{divider-2yg9r1tF.cjs → divider-t1KWAOnw.cjs} +2 -2
  108. package/dist/{divider-2yg9r1tF.cjs.map → divider-t1KWAOnw.cjs.map} +1 -1
  109. package/dist/divider.cjs +1 -1
  110. package/dist/divider.js +1 -1
  111. package/dist/{dropdown-content-DJ4CA3ug.cjs → dropdown-content-D834SoZi.cjs} +2 -2
  112. package/dist/{dropdown-content-DJ4CA3ug.cjs.map → dropdown-content-D834SoZi.cjs.map} +1 -1
  113. package/dist/{dropdown-content-DNJhJCdV.js → dropdown-content-JvpnX2RS.js} +3 -3
  114. package/dist/{dropdown-content-DNJhJCdV.js.map → dropdown-content-JvpnX2RS.js.map} +1 -1
  115. package/dist/dropdown.cjs +1 -1
  116. package/dist/dropdown.js +1 -1
  117. package/dist/extra.cjs +1 -1
  118. package/dist/extra.js +1 -1
  119. package/dist/{flex-DV2W2Zgu.js → flex-CAsda_Fe.js} +2 -2
  120. package/dist/{flex-DV2W2Zgu.js.map → flex-CAsda_Fe.js.map} +1 -1
  121. package/dist/{flex-DWnX0ZPR.cjs → flex-LjqLwPhI.cjs} +2 -2
  122. package/dist/{flex-DWnX0ZPR.cjs.map → flex-LjqLwPhI.cjs.map} +1 -1
  123. package/dist/{form-Dpokur4M.cjs → form-CpIQ4L1j.cjs} +2 -2
  124. package/dist/{form-Dpokur4M.cjs.map → form-CpIQ4L1j.cjs.map} +1 -1
  125. package/dist/{form-Cots2cbN.js → form-czxHWLos.js} +2 -2
  126. package/dist/{form-Cots2cbN.js.map → form-czxHWLos.js.map} +1 -1
  127. package/dist/form.cjs +1 -1
  128. package/dist/form.js +1 -1
  129. package/dist/{formField.mixin-ySoLTrgX.cjs → formField.mixin-BD-_Rnyy.cjs} +2 -2
  130. package/dist/{formField.mixin-ySoLTrgX.cjs.map → formField.mixin-BD-_Rnyy.cjs.map} +1 -1
  131. package/dist/{formField.mixin-DdTDdv9g.js → formField.mixin-bSNupTkm.js} +2 -2
  132. package/dist/{formField.mixin-DdTDdv9g.js.map → formField.mixin-bSNupTkm.js.map} +1 -1
  133. package/dist/{icon-BZxC9aoA.js → icon-B8LhF-rS.js} +2 -2
  134. package/dist/{icon-BZxC9aoA.js.map → icon-B8LhF-rS.js.map} +1 -1
  135. package/dist/{icon-mhchC8Qw.cjs → icon-DgnS9IuB.cjs} +2 -2
  136. package/dist/{icon-mhchC8Qw.cjs.map → icon-DgnS9IuB.cjs.map} +1 -1
  137. package/dist/{icon-button-DbvjV5zJ.cjs → icon-button-CK0UyXcE.cjs} +2 -2
  138. package/dist/{icon-button-DbvjV5zJ.cjs.map → icon-button-CK0UyXcE.cjs.map} +1 -1
  139. package/dist/{icon-button-BGvSPuE-.js → icon-button-DdvdiQga.js} +3 -3
  140. package/dist/{icon-button-BGvSPuE-.js.map → icon-button-DdvdiQga.js.map} +1 -1
  141. package/dist/icons.cjs +1 -1
  142. package/dist/icons.js +1 -1
  143. package/dist/index.cjs +1 -1
  144. package/dist/index.js +166 -159
  145. package/dist/index.js.map +1 -1
  146. package/dist/{input-DzNoI9qU.cjs → input-DJKVCqiL.cjs} +2 -2
  147. package/dist/{input-DzNoI9qU.cjs.map → input-DJKVCqiL.cjs.map} +1 -1
  148. package/dist/{input-Cpo-ws8k.js → input-rNxC53BQ.js} +3 -3
  149. package/dist/{input-Cpo-ws8k.js.map → input-rNxC53BQ.js.map} +1 -1
  150. package/dist/input.cjs +1 -1
  151. package/dist/input.js +1 -1
  152. package/dist/layout.cjs +1 -1
  153. package/dist/layout.js +1 -1
  154. package/dist/{list-BTyoQ42F.js → list-ccMISKKN.js} +2 -2
  155. package/dist/{list-BTyoQ42F.js.map → list-ccMISKKN.js.map} +1 -1
  156. package/dist/{list-DRbkWHho.cjs → list-e54Aokyk.cjs} +2 -2
  157. package/dist/{list-DRbkWHho.cjs.map → list-e54Aokyk.cjs.map} +1 -1
  158. package/dist/list.cjs +1 -1
  159. package/dist/list.js +1 -1
  160. package/dist/{litElement.mixin-BH9PTyUD.js → litElement.mixin-BMewYv9c.js} +2 -2
  161. package/dist/{litElement.mixin-BH9PTyUD.js.map → litElement.mixin-BMewYv9c.js.map} +1 -1
  162. package/dist/{litElement.mixin-B01R2oT7.cjs → litElement.mixin-Brn_lsa3.cjs} +2 -2
  163. package/dist/{litElement.mixin-B01R2oT7.cjs.map → litElement.mixin-Brn_lsa3.cjs.map} +1 -1
  164. package/dist/map-CsuRRLbB.js +175 -0
  165. package/dist/map-CsuRRLbB.js.map +1 -0
  166. package/dist/map-D3nhiTCn.cjs +81 -0
  167. package/dist/map-D3nhiTCn.cjs.map +1 -0
  168. package/dist/map.cjs +2 -0
  169. package/dist/map.cjs.map +1 -0
  170. package/dist/map.js +5 -0
  171. package/dist/map.js.map +1 -0
  172. package/dist/{media-BO-aZBTp.js → media-BtAS-xyw.js} +2 -2
  173. package/dist/{media-BO-aZBTp.js.map → media-BtAS-xyw.js.map} +1 -1
  174. package/dist/{media-CIuTybvD.cjs → media-Dd0PTrZ3.cjs} +2 -2
  175. package/dist/{media-CIuTybvD.cjs.map → media-Dd0PTrZ3.cjs.map} +1 -1
  176. package/dist/{menu-DWCDQvGY.js → menu-CAhuu8Ei.js} +3 -3
  177. package/dist/{menu-DWCDQvGY.js.map → menu-CAhuu8Ei.js.map} +1 -1
  178. package/dist/{menu-DEbZxoXr.cjs → menu-CFqp1aH7.cjs} +2 -2
  179. package/dist/{menu-DEbZxoXr.cjs.map → menu-CFqp1aH7.cjs.map} +1 -1
  180. package/dist/menu.cjs +1 -1
  181. package/dist/menu.js +1 -1
  182. package/dist/nav-drawer.cjs +1 -1
  183. package/dist/nav-drawer.js +1 -1
  184. package/dist/{notification-service-L_h9_d4v.js → notification-service-Byz67oln.js} +142 -113
  185. package/dist/notification-service-Byz67oln.js.map +1 -0
  186. package/dist/notification-service-KWQfnc6d.cjs +143 -0
  187. package/dist/notification-service-KWQfnc6d.cjs.map +1 -0
  188. package/dist/notification.cjs +1 -1
  189. package/dist/notification.js +7 -4
  190. package/dist/notification.js.map +1 -1
  191. package/dist/notify-BIdXyvMf.js +35 -0
  192. package/dist/notify-BIdXyvMf.js.map +1 -0
  193. package/dist/notify-DDzsX0lt.cjs +2 -0
  194. package/dist/notify-DDzsX0lt.cjs.map +1 -0
  195. package/dist/number-B7aCRYnH.cjs.map +1 -1
  196. package/dist/number-BhTiptLA.js.map +1 -1
  197. package/dist/{option-vRGeXw_u.js → option-BCg6S7Jj.js} +2 -2
  198. package/dist/{option-vRGeXw_u.js.map → option-BCg6S7Jj.js.map} +1 -1
  199. package/dist/{option-BPmOG_Hw.cjs → option-DarGe_f3.cjs} +2 -2
  200. package/dist/{option-BPmOG_Hw.cjs.map → option-DarGe_f3.cjs.map} +1 -1
  201. package/dist/option.cjs +1 -1
  202. package/dist/option.js +1 -1
  203. package/dist/{payment-card-form-Cs5bP5Di.js → payment-card-form-C1W2DPu4.js} +3 -3
  204. package/dist/{payment-card-form-Cs5bP5Di.js.map → payment-card-form-C1W2DPu4.js.map} +1 -1
  205. package/dist/{payment-card-form-ccF9dfGC.cjs → payment-card-form-CW3KC9QK.cjs} +2 -2
  206. package/dist/{payment-card-form-ccF9dfGC.cjs.map → payment-card-form-CW3KC9QK.cjs.map} +1 -1
  207. package/dist/{progress-BqZ7yHQe.cjs → progress-B-ZZ40CK.cjs} +2 -2
  208. package/dist/{progress-BqZ7yHQe.cjs.map → progress-B-ZZ40CK.cjs.map} +1 -1
  209. package/dist/{progress-DM_jha7D.js → progress-BSJSsYj7.js} +2 -2
  210. package/dist/{progress-DM_jha7D.js.map → progress-BSJSsYj7.js.map} +1 -1
  211. package/dist/progress.cjs +1 -1
  212. package/dist/progress.js +1 -1
  213. package/dist/{radio-button-WmbuT_YW.cjs → radio-button-CsIIrM_C.cjs} +2 -2
  214. package/dist/{radio-button-WmbuT_YW.cjs.map → radio-button-CsIIrM_C.cjs.map} +1 -1
  215. package/dist/{radio-button-YDzqdRA-.js → radio-button-DX4XSjAy.js} +3 -3
  216. package/dist/{radio-button-YDzqdRA-.js.map → radio-button-DX4XSjAy.js.map} +1 -1
  217. package/dist/radio-group.cjs +1 -1
  218. package/dist/radio-group.js +1 -1
  219. package/dist/{schmancy-steps-container-CoARMXfB.js → schmancy-steps-container-8RdoKtdK.js} +2 -2
  220. package/dist/{schmancy-steps-container-CoARMXfB.js.map → schmancy-steps-container-8RdoKtdK.js.map} +1 -1
  221. package/dist/{schmancy-steps-container-CjAsrjKf.cjs → schmancy-steps-container-DADzK9o0.cjs} +2 -2
  222. package/dist/{schmancy-steps-container-CjAsrjKf.cjs.map → schmancy-steps-container-DADzK9o0.cjs.map} +1 -1
  223. package/dist/{select-rwocpGs2.js → select-C-KLPYEJ.js} +3 -3
  224. package/dist/{select-rwocpGs2.js.map → select-C-KLPYEJ.js.map} +1 -1
  225. package/dist/{select-CPnSionr.cjs → select-CF9aojhZ.cjs} +2 -2
  226. package/dist/{select-CPnSionr.cjs.map → select-CF9aojhZ.cjs.map} +1 -1
  227. package/dist/select.cjs +1 -1
  228. package/dist/select.js +1 -1
  229. package/dist/{sheet-Cw2qLdzN.js → sheet-BQ2PhU-0.js} +4 -4
  230. package/dist/{sheet-Cw2qLdzN.js.map → sheet-BQ2PhU-0.js.map} +1 -1
  231. package/dist/{sheet-eCDoMdHF.cjs → sheet-CzCiJ3yC.cjs} +2 -2
  232. package/dist/{sheet-eCDoMdHF.cjs.map → sheet-CzCiJ3yC.cjs.map} +1 -1
  233. package/dist/sheet.cjs +1 -1
  234. package/dist/sheet.js +1 -1
  235. package/dist/{slider-C7Z1bPq7.js → slider-Bo0_X0Xt.js} +3 -3
  236. package/dist/{slider-C7Z1bPq7.js.map → slider-Bo0_X0Xt.js.map} +1 -1
  237. package/dist/{slider-DBNoXRWS.cjs → slider-C4fwo5P3.cjs} +2 -2
  238. package/dist/{slider-DBNoXRWS.cjs.map → slider-C4fwo5P3.cjs.map} +1 -1
  239. package/dist/slider.cjs +1 -1
  240. package/dist/slider.js +1 -1
  241. package/dist/{spinner-CbA-FXRK.js → spinner-CKnK4QHu.js} +2 -2
  242. package/dist/{spinner-CbA-FXRK.js.map → spinner-CKnK4QHu.js.map} +1 -1
  243. package/dist/{spinner-CV62BBoF.cjs → spinner-DMoZTIMe.cjs} +2 -2
  244. package/dist/{spinner-CV62BBoF.cjs.map → spinner-DMoZTIMe.cjs.map} +1 -1
  245. package/dist/steps.cjs +1 -1
  246. package/dist/steps.js +1 -1
  247. package/dist/{surface-By8o7nWa.js → surface-BEaRxAZt.js} +2 -2
  248. package/dist/{surface-By8o7nWa.js.map → surface-BEaRxAZt.js.map} +1 -1
  249. package/dist/{surface-ClfeUI6q.cjs → surface-Bcy2LzAX.cjs} +2 -2
  250. package/dist/{surface-ClfeUI6q.cjs.map → surface-Bcy2LzAX.cjs.map} +1 -1
  251. package/dist/surface.cjs +1 -1
  252. package/dist/surface.js +1 -1
  253. package/dist/{table-Rqnb4AJl.cjs → table-9AyLMNRe.cjs} +2 -2
  254. package/dist/{table-Rqnb4AJl.cjs.map → table-9AyLMNRe.cjs.map} +1 -1
  255. package/dist/{table-CvMo5lOi.js → table-MzCzXjAC.js} +2 -2
  256. package/dist/{table-CvMo5lOi.js.map → table-MzCzXjAC.js.map} +1 -1
  257. package/dist/table.cjs +1 -1
  258. package/dist/table.js +1 -1
  259. package/dist/{tabs-compatibility-BEXurIiZ.js → tabs-compatibility-D5xv33oo.js} +2 -2
  260. package/dist/{tabs-compatibility-BEXurIiZ.js.map → tabs-compatibility-D5xv33oo.js.map} +1 -1
  261. package/dist/{tabs-compatibility-B1bE7hSG.cjs → tabs-compatibility-N1qxOCYJ.cjs} +2 -2
  262. package/dist/{tabs-compatibility-B1bE7hSG.cjs.map → tabs-compatibility-N1qxOCYJ.cjs.map} +1 -1
  263. package/dist/tabs.cjs +1 -1
  264. package/dist/tabs.js +1 -1
  265. package/dist/tailwind.mixin-BTGoGfEI.js +43 -0
  266. package/dist/{tailwind.mixin-CaIkmP6j.js.map → tailwind.mixin-BTGoGfEI.js.map} +1 -1
  267. package/dist/tailwind.mixin-KC3Nl9kj.cjs +2 -0
  268. package/dist/{tailwind.mixin-DVKI3qb9.cjs.map → tailwind.mixin-KC3Nl9kj.cjs.map} +1 -1
  269. package/dist/teleport.cjs +1 -1
  270. package/dist/teleport.js +1 -1
  271. package/dist/{textarea-DM3lgEUp.js → textarea-BHGIbEBY.js} +2 -2
  272. package/dist/{textarea-DM3lgEUp.js.map → textarea-BHGIbEBY.js.map} +1 -1
  273. package/dist/{textarea-Dlnyyrbq.cjs → textarea-DUBjaAfu.cjs} +2 -2
  274. package/dist/{textarea-Dlnyyrbq.cjs.map → textarea-DUBjaAfu.cjs.map} +1 -1
  275. package/dist/textarea.cjs +1 -1
  276. package/dist/textarea.js +1 -1
  277. package/dist/{theme-button-Cao8AH8r.cjs → theme-button-C2-L23sJ.cjs} +2 -2
  278. package/dist/{theme-button-Cao8AH8r.cjs.map → theme-button-C2-L23sJ.cjs.map} +1 -1
  279. package/dist/{theme-button-C4JWRMiC.js → theme-button-FU1OUOBA.js} +2 -2
  280. package/dist/{theme-button-C4JWRMiC.js.map → theme-button-FU1OUOBA.js.map} +1 -1
  281. package/dist/theme-button.cjs +1 -1
  282. package/dist/theme-button.js +1 -1
  283. package/dist/theme.cjs +1 -1
  284. package/dist/{theme.component-RtV3l-Ns.cjs → theme.component-BQr3n0fE.cjs} +3 -3
  285. package/dist/{theme.component-RtV3l-Ns.cjs.map → theme.component-BQr3n0fE.cjs.map} +1 -1
  286. package/dist/{theme.component-ColRTbY5.js → theme.component-BYGB9dTb.js} +2 -2
  287. package/dist/{theme.component-ColRTbY5.js.map → theme.component-BYGB9dTb.js.map} +1 -1
  288. package/dist/theme.js +1 -1
  289. package/dist/{timezone-Cvsd--fr.js → timezone-BgX3qSF-.js} +3 -3
  290. package/dist/{timezone-Cvsd--fr.js.map → timezone-BgX3qSF-.js.map} +1 -1
  291. package/dist/{timezone-UBBApQoU.cjs → timezone-DexhNs9f.cjs} +2 -2
  292. package/dist/{timezone-UBBApQoU.cjs.map → timezone-DexhNs9f.cjs.map} +1 -1
  293. package/dist/{tooltip-nwQwCEgl.js → tooltip-CkGy17kd.js} +2 -2
  294. package/dist/{tooltip-nwQwCEgl.js.map → tooltip-CkGy17kd.js.map} +1 -1
  295. package/dist/{tooltip-WpE4e-fO.cjs → tooltip-xj7RGLlB.cjs} +2 -2
  296. package/dist/{tooltip-WpE4e-fO.cjs.map → tooltip-xj7RGLlB.cjs.map} +1 -1
  297. package/dist/tooltip.cjs +1 -1
  298. package/dist/tooltip.js +1 -1
  299. package/dist/{tree-BDmB7KmQ.js → tree-BeU8nzGP.js} +2 -2
  300. package/dist/{tree-BDmB7KmQ.js.map → tree-BeU8nzGP.js.map} +1 -1
  301. package/dist/{tree-Dn0t7MUR.cjs → tree-DSpkwuOO.cjs} +2 -2
  302. package/dist/{tree-Dn0t7MUR.cjs.map → tree-DSpkwuOO.cjs.map} +1 -1
  303. package/dist/tree.cjs +1 -1
  304. package/dist/tree.js +1 -1
  305. package/dist/{typewriter-Fq4uV6Gm.cjs → typewriter-Bn7fe4nG.cjs} +2 -2
  306. package/dist/{typewriter-Fq4uV6Gm.cjs.map → typewriter-Bn7fe4nG.cjs.map} +1 -1
  307. package/dist/{typewriter-CXadCi-4.js → typewriter-CbONIeGA.js} +7 -7
  308. package/dist/{typewriter-CXadCi-4.js.map → typewriter-CbONIeGA.js.map} +1 -1
  309. package/dist/typewriter.cjs +1 -1
  310. package/dist/typewriter.js +1 -1
  311. package/dist/{typography-BhCrqK_b.cjs → typography-CJ5-RiNW.cjs} +2 -2
  312. package/dist/{typography-BhCrqK_b.cjs.map → typography-CJ5-RiNW.cjs.map} +1 -1
  313. package/dist/{typography-DYCOngD7.js → typography-D1m-mdd7.js} +2 -2
  314. package/dist/{typography-DYCOngD7.js.map → typography-D1m-mdd7.js.map} +1 -1
  315. package/dist/typography.cjs +1 -1
  316. package/dist/typography.js +1 -1
  317. package/package.json +1 -1
  318. package/types/src/details/details.d.ts +14 -0
  319. package/types/src/details/index.d.ts +1 -0
  320. package/types/src/index.d.ts +2 -0
  321. package/types/src/map/index.d.ts +1 -0
  322. package/types/src/map/map.d.ts +129 -0
  323. package/types/src/notification/index.d.ts +2 -0
  324. package/types/src/notification/notification-container.d.ts +3 -0
  325. package/types/src/notification/notification-service.d.ts +19 -0
  326. package/types/src/notification/notification.d.ts +2 -0
  327. package/types/src/notification/notify.d.ts +100 -0
  328. package/types/src/utils/number.d.ts +2 -0
  329. package/dist/notification-service-B6nHqzq5.cjs +0 -141
  330. package/dist/notification-service-B6nHqzq5.cjs.map +0 -1
  331. package/dist/notification-service-L_h9_d4v.js.map +0 -1
  332. package/dist/tailwind.mixin-CaIkmP6j.js +0 -43
  333. package/dist/tailwind.mixin-DVKI3qb9.cjs +0 -2
@@ -0,0 +1,129 @@
1
+ import { Observable } from 'rxjs';
2
+ interface GoogleMapsAPI {
3
+ maps: {
4
+ Map: new (element: HTMLElement, options: any) => any;
5
+ Marker: new (options: any) => any;
6
+ Geocoder: new () => any;
7
+ LatLng: new (lat: number, lng: number) => any;
8
+ MapTypeId: {
9
+ ROADMAP: string;
10
+ SATELLITE: string;
11
+ HYBRID: string;
12
+ TERRAIN: string;
13
+ };
14
+ };
15
+ }
16
+ declare global {
17
+ interface Window {
18
+ google?: GoogleMapsAPI;
19
+ initGoogleMaps?: () => void;
20
+ __schmancyGoogleMapsLoading?: Observable<boolean>;
21
+ }
22
+ }
23
+ declare const SchmancyMap_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>;
24
+ /**
25
+ * `<schmancy-map>` component
26
+ *
27
+ * A Google Maps component with an intuitive API for displaying interactive or static maps.
28
+ * Supports both address strings (with automatic geocoding) and precise coordinates.
29
+ *
30
+ * @element schmancy-map
31
+ *
32
+ * @example
33
+ * <!-- Simple address -->
34
+ * <schmancy-map address="Times Square, New York"></schmancy-map>
35
+ *
36
+ * @example
37
+ * <!-- With coordinates -->
38
+ * <schmancy-map latitude="40.758" longitude="-73.985" zoom="17"></schmancy-map>
39
+ *
40
+ * @example
41
+ * <!-- Satellite view -->
42
+ * <schmancy-map address="Grand Canyon" type="satellite" height="500px"></schmancy-map>
43
+ *
44
+ * @example
45
+ * <!-- Static map -->
46
+ * <schmancy-map address="Eiffel Tower, Paris" interactive="false" controls="false"></schmancy-map>
47
+ */
48
+ export default class SchmancyMap extends SchmancyMap_base {
49
+ /**
50
+ * Simple address string that automatically geocodes to display the location.
51
+ * Takes precedence over latitude/longitude if both are provided.
52
+ */
53
+ address: string;
54
+ /**
55
+ * Latitude coordinate for precise location.
56
+ * Used when address is not provided.
57
+ */
58
+ latitude?: number;
59
+ /**
60
+ * Longitude coordinate for precise location.
61
+ * Used when address is not provided.
62
+ */
63
+ longitude?: number;
64
+ /**
65
+ * Map zoom level. Higher numbers show more detail.
66
+ * @default 15
67
+ */
68
+ zoom: number;
69
+ /**
70
+ * Height of the map with CSS unit (e.g., "400px", "50vh").
71
+ * @default "400px"
72
+ */
73
+ height: string;
74
+ /**
75
+ * Whether to show a marker at the location.
76
+ * @default true
77
+ */
78
+ marker: boolean;
79
+ /**
80
+ * Tooltip text for the location marker.
81
+ */
82
+ markerTitle: string;
83
+ /**
84
+ * Map display type.
85
+ * Options: "roadmap", "satellite", "hybrid", "terrain"
86
+ * @default "roadmap"
87
+ */
88
+ type: 'roadmap' | 'satellite' | 'hybrid' | 'terrain';
89
+ /**
90
+ * Whether users can interact with the map (pan, zoom, click).
91
+ * @default true
92
+ */
93
+ interactive: boolean;
94
+ /**
95
+ * Whether to show map controls (zoom buttons, fullscreen, etc.).
96
+ * @default true
97
+ */
98
+ controls: boolean;
99
+ /**
100
+ * Google Maps API key. Required for the map to load.
101
+ */
102
+ apiKey: string;
103
+ private loading;
104
+ private error;
105
+ private mapRef;
106
+ private map?;
107
+ private mapMarker?;
108
+ private geocoder?;
109
+ private intersectionObserver?;
110
+ private hasLoadedMap;
111
+ connectedCallback(): void;
112
+ disconnectedCallback(): void;
113
+ private setupIntersectionObserver;
114
+ private loadMap;
115
+ private pendingCoordinates?;
116
+ private getCoordinates;
117
+ private geocodeAddress;
118
+ private initializeMap;
119
+ private getMapTypeId;
120
+ private addMarker;
121
+ protected updated(changedProperties: Map<string, any>): void;
122
+ protected render(): import("lit-html").TemplateResult<1>;
123
+ }
124
+ declare global {
125
+ interface HTMLElementTagNameMap {
126
+ 'schmancy-map': SchmancyMap;
127
+ }
128
+ }
129
+ export {};
@@ -4,3 +4,5 @@ export { NotificationAudioService } from './notification-audio';
4
4
  export { default as SchmancyNotificationContainer } from './notification-container';
5
5
  export type { NotificationItem, NotificationOptions } from './notification-container';
6
6
  export { $notify } from './notification-service';
7
+ export { notify, notifyProgress } from './notify';
8
+ export type { NotifyOptions } from './notify';
@@ -7,6 +7,7 @@ export interface NotificationItem {
7
7
  duration: number;
8
8
  closable: boolean;
9
9
  playSound: boolean;
10
+ showProgress?: boolean;
10
11
  }
11
12
  export interface NotificationOptions {
12
13
  id?: string;
@@ -16,6 +17,7 @@ export interface NotificationOptions {
16
17
  duration?: number;
17
18
  closable?: boolean;
18
19
  playSound?: boolean;
20
+ showProgress?: boolean;
19
21
  }
20
22
  declare const SchmancyNotificationContainer_base: CustomElementConstructor & import("@mixins/index").Constructor<import("lit").LitElement> & import("@mixins/index").Constructor<import("@mixins/index").IBaseMixin>;
21
23
  /**
@@ -33,6 +35,7 @@ export default class SchmancyNotificationContainer extends SchmancyNotificationC
33
35
  connectedCallback(): void;
34
36
  addNotification(options: NotificationOptions): string;
35
37
  removeNotification(id: string): void;
38
+ updateNotification(id: string, options: Partial<NotificationOptions>): void;
36
39
  private _handleClose;
37
40
  render(): import("lit-html").TemplateResult<1>;
38
41
  }
@@ -5,6 +5,7 @@ import { NotificationOptions } from './notification-container';
5
5
  */
6
6
  export declare class NotificationService {
7
7
  private static instance;
8
+ private notificationStack;
8
9
  private static DEFAULT_OPTIONS;
9
10
  private constructor();
10
11
  /**
@@ -16,6 +17,15 @@ export declare class NotificationService {
16
17
  * @returns The ID of the created notification
17
18
  */
18
19
  notify(options: NotificationOptions): string;
20
+ /**
21
+ * Dismiss a notification
22
+ * @param id Optional notification ID. If not provided, dismisses the most recent notification
23
+ */
24
+ dismiss(id?: string): void;
25
+ /**
26
+ * Update a notification's content
27
+ */
28
+ update(id: string, options: Partial<NotificationOptions>): void;
19
29
  /**
20
30
  * Show an info notification
21
31
  */
@@ -76,5 +86,14 @@ export declare const $notify: {
76
86
  * Show a persistent notification that won't auto-dismiss
77
87
  */
78
88
  persistent: (message: string, options?: Partial<Omit<NotificationOptions, "message" | "duration">>) => string;
89
+ /**
90
+ * Dismiss a notification
91
+ * @param id Optional notification ID. If not provided, dismisses the most recent notification (queue-like behavior)
92
+ */
93
+ dismiss: (id?: string) => void;
94
+ /**
95
+ * Update a notification's content
96
+ */
97
+ update: (id: string, options: Partial<NotificationOptions>) => void;
79
98
  };
80
99
  export default NotificationService;
@@ -1,4 +1,5 @@
1
1
  import { PropertyValues } from 'lit';
2
+ import '@schmancy/progress';
2
3
  export type NotificationType = 'info' | 'success' | 'warning' | 'error';
3
4
  declare const SchmancyNotification_base: CustomElementConstructor & import("@mixins/index").Constructor<import("lit").LitElement> & import("@mixins/index").Constructor<import("@mixins/index").IBaseMixin>;
4
5
  /**
@@ -12,6 +13,7 @@ export default class SchmancyNotification extends SchmancyNotification_base {
12
13
  duration: number;
13
14
  id: string;
14
15
  playSound: boolean;
16
+ showProgress: boolean;
15
17
  private _visible;
16
18
  private _progress;
17
19
  private _hovered;
@@ -0,0 +1,100 @@
1
+ import { Observable } from 'rxjs';
2
+ import { NotificationOptions } from './notification-container';
3
+ export interface NotifyOptions {
4
+ /**
5
+ * Message to show while the operation is in progress
6
+ */
7
+ loadingMessage?: string;
8
+ /**
9
+ * Message to show when the operation completes successfully
10
+ */
11
+ successMessage?: string;
12
+ /**
13
+ * Message to show when the operation fails (can be a function to format error)
14
+ */
15
+ errorMessage?: string | ((error: any) => string);
16
+ /**
17
+ * Type of notification for loading state
18
+ */
19
+ loadingType?: NotificationOptions['type'];
20
+ /**
21
+ * Type of notification for success state
22
+ */
23
+ successType?: NotificationOptions['type'];
24
+ /**
25
+ * Type of notification for error state
26
+ */
27
+ errorType?: NotificationOptions['type'];
28
+ /**
29
+ * Whether to auto-dismiss the loading notification on complete/error
30
+ */
31
+ autoDismissLoading?: boolean;
32
+ /**
33
+ * Duration for success notification (ms). Use 0 for persistent
34
+ */
35
+ successDuration?: number;
36
+ /**
37
+ * Duration for error notification (ms). Use 0 for persistent
38
+ */
39
+ errorDuration?: number;
40
+ }
41
+ /**
42
+ * Wraps an Observable with notification lifecycle management.
43
+ * Shows a loading notification with progress indicator, then auto-dismisses and shows success/error notification.
44
+ *
45
+ * @example
46
+ * ```typescript
47
+ * // Basic usage with progress indicator
48
+ * someApiCall().pipe(
49
+ * notify({
50
+ * loadingMessage: 'Loading data...',
51
+ * successMessage: 'Data loaded successfully!',
52
+ * errorMessage: 'Failed to load data'
53
+ * })
54
+ * ).subscribe()
55
+ *
56
+ * // With custom durations
57
+ * saveData().pipe(
58
+ * notify({
59
+ * loadingMessage: 'Saving...',
60
+ * successMessage: 'Saved!',
61
+ * successDuration: 5000, // Success stays for 5 seconds
62
+ * errorMessage: (err) => `Save failed: ${err.message}`,
63
+ * errorDuration: 0 // Error is persistent until dismissed
64
+ * })
65
+ * ).subscribe()
66
+ *
67
+ * // Full configuration example
68
+ * uploadFile().pipe(
69
+ * notify({
70
+ * loadingMessage: 'Uploading file...',
71
+ * loadingType: 'info',
72
+ * successMessage: 'Upload complete!',
73
+ * successType: 'success',
74
+ * successDuration: 3000,
75
+ * errorMessage: (err) => `Upload failed: ${err.message}`,
76
+ * errorType: 'error',
77
+ * errorDuration: 10000,
78
+ * autoDismissLoading: true
79
+ * })
80
+ * ).subscribe()
81
+ * ```
82
+ */
83
+ export declare function notify<T>(options: NotifyOptions): (source: Observable<T>) => Observable<T>;
84
+ /**
85
+ * Simplified version for API calls that just need loading and auto-dismiss.
86
+ * Perfect for fire-and-forget operations where you want to show progress.
87
+ *
88
+ * @example
89
+ * ```typescript
90
+ * downloadData().pipe(
91
+ * notifyProgress('Downloading...')
92
+ * ).subscribe()
93
+ *
94
+ * // With custom messages
95
+ * saveDocument().pipe(
96
+ * notifyProgress('Saving document...', 'Document saved!', 'Save failed')
97
+ * ).subscribe()
98
+ * ```
99
+ */
100
+ export declare function notifyProgress<T>(loadingMessage: string, successMessage?: string, errorMessage?: string): (source: Observable<T>) => Observable<T>;
@@ -103,3 +103,5 @@ export declare class Numbers {
103
103
  */
104
104
  private toSubscript;
105
105
  }
106
+ declare const numbers: Numbers;
107
+ export default numbers;
@@ -1,141 +0,0 @@
1
- "use strict";const b=require("rxjs"),T=require("lit/directives/class-map.js"),v=require("lit/directives/style-map.js"),w=require("./litElement.mixin-B01R2oT7.cjs");require("./tailwind.mixin-DVKI3qb9.cjs");const u=require("lit/decorators.js"),x=require("./ripple-C2BHbhcS.cjs"),l=require("./theme.interface-Xg5Zi46a.cjs"),h=require("lit"),A=require("lit/directives/repeat.js");var C=Object.defineProperty,_=Object.getOwnPropertyDescriptor,d=(s,t,e,i)=>{for(var o,n=i>1?void 0:i?_(t,e):t,a=s.length-1;a>=0;a--)(o=s[a])&&(n=(i?o(t,e,n):o(n))||n);return i&&n&&C(t,e,n),n};exports.SchmancyNotification=class extends w.$LitElement(':host{display:block;margin-bottom:10px}:host:last-child{margin-bottom:0}.notification{width:100%;max-width:400px;box-shadow:var(--schmancy-sys-elevation-2);overflow:hidden;transform:translate(0);opacity:1;transition:transform .3s cubic-bezier(.4,0,.2,1),opacity .3s cubic-bezier(.4,0,.2,1);background-color:var(--schmancy-sys-color-surface-container);color:var(--schmancy-sys-color-surface-on);border-radius:16px;position:relative}.notification:before{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;background:linear-gradient(180deg,#ffffff14,#fff0);z-index:1}.notification.info{border-left:4px solid var(--schmancy-sys-color-primary-default);background-color:color-mix(in srgb,var(--schmancy-sys-color-surface-container) 90%,var(--schmancy-sys-color-primary-container) 10%)}.notification.success{border-left:4px solid var(--schmancy-sys-color-success-default);background-color:color-mix(in srgb,var(--schmancy-sys-color-surface-container) 90%,var(--schmancy-sys-color-success-container) 10%)}.notification.warning{border-left:4px solid var(--schmancy-sys-color-tertiary-default);background-color:color-mix(in srgb,var(--schmancy-sys-color-surface-container) 90%,var(--schmancy-sys-color-tertiary-container) 10%)}.notification.error{border-left:4px solid var(--schmancy-sys-color-error-default);background-color:color-mix(in srgb,var(--schmancy-sys-color-surface-container) 90%,var(--schmancy-sys-color-error-container) 10%)}.notification.closing{transform:translate(120%);opacity:0}.notification .notification-content{display:flex;padding:18px 20px;align-items:flex-start;position:relative;z-index:2}.notification .icon-container{flex-shrink:0;margin-right:14px;display:flex;align-items:center;justify-content:center;border-radius:50%;width:28px;height:28px;position:relative}.notification .content{flex:1;min-width:0;display:flex;flex-direction:column}.notification .title{font-weight:500;font-size:16px;line-height:1.5;margin-bottom:2px;word-break:break-word;letter-spacing:.15px}.notification .message{font-size:14px;line-height:1.5;word-break:break-word;letter-spacing:.25px;opacity:.92}.notification .close-button{background:transparent;border:none;cursor:pointer;color:var(--schmancy-sys-color-surface-onVariant);padding:8px;margin-left:8px;margin-right:-4px;margin-top:-4px;border-radius:50%;display:flex;align-items:center;justify-content:center;transition:background-color .2s ease,transform .2s ease}.notification .close-button:hover{background-color:color-mix(in srgb,var(--schmancy-sys-color-surface-onVariant) 8%,transparent);transform:scale(1.05)}.notification .close-button:active{transform:scale(.95)}.notification .close-button:focus-visible{outline:none;box-shadow:0 0 0 2px var(--schmancy-sys-color-primary-default)}.notification .progress-bar-container{height:4px;width:100%;background-color:color-mix(in srgb,currentColor 8%,transparent);overflow:hidden;position:relative;z-index:2}.notification .progress-bar{height:100%;width:100%;transition:width .1s linear;border-radius:0 0 0 4px;background-image:linear-gradient(to right,currentColor 70%,color-mix(in srgb,currentColor 80%,white) 100%);opacity:.9}'){constructor(){super(...arguments),this.title="",this.message="",this.type="info",this.closable=!0,this.duration=5e3,this.id=`notification-${Date.now()}-${Math.floor(1e4*Math.random())}`,this.playSound=!0,this._visible=!0,this._progress=100,this._hovered=!1,this._closing=!1}connectedCallback(){super.connectedCallback(),this.duration>0&&this._startAutoCloseTimer(),this.playSound&&this._playSound()}disconnectedCallback(){this._clearTimers(),super.disconnectedCallback()}updated(s){super.updated(s),s.has("duration")&&this.duration>0&&(this._clearTimers(),this._startAutoCloseTimer())}_startAutoCloseTimer(){if(this.duration<=0)return;const s=Date.now()+this.duration;this._autoCloseTimer=window.setTimeout(()=>{this.close()},this.duration),this._progressTimer=window.setInterval(()=>{if(this._hovered)return;const t=Date.now(),e=Math.max(0,s-t);this._progress=e/this.duration*100,e<=0&&this._clearTimers()},16)}_clearTimers(){this._autoCloseTimer&&(clearTimeout(this._autoCloseTimer),this._autoCloseTimer=void 0),this._progressTimer&&(clearInterval(this._progressTimer),this._progressTimer=void 0)}_pauseTimers(){this._clearTimers()}_resumeTimers(){if(this.duration>0){const s=this._progress/100*this.duration;if(s>0){this._autoCloseTimer=window.setTimeout(()=>{this.close()},s);const t=Date.now()+s;this._progressTimer=window.setInterval(()=>{if(this._hovered)return;const e=Date.now(),i=Math.max(0,t-e);this._progress=i/s*100,i<=0&&this._clearTimers()},16)}}}_playSound(){this.dispatchEvent(new CustomEvent("playsound",{detail:{type:this.type},bubbles:!0,composed:!0}))}_handleMouseEnter(){this._hovered=!0,this._pauseTimers()}_handleMouseLeave(){this._hovered=!1,this._resumeTimers()}close(){this._closing||(this._closing=!0,this._clearTimers(),this._visible=!1,setTimeout(()=>{this.dispatchEvent(new CustomEvent("close",{detail:{id:this.id},bubbles:!0,composed:!0}))},300))}render(){if(!this._visible&&this._closing)return h.html``;const s=this._getTypeStyles(),t=this._hovered?"3":"2";return h.html`
2
- <div
3
- class=${T.classMap({notification:!0,closing:this._closing,[this.type]:!0})}
4
- role="alert"
5
- style=${v.styleMap({transform:this._closing?"translateX(120%)":"translateX(0)",opacity:this._closing?"0":"1",boxShadow:`var(--schmancy-sys-elevation-${t})`,transition:"transform 0.3s cubic-bezier(0.4, 0, 0.2, 1), opacity 0.3s cubic-bezier(0.4, 0, 0.2, 1), box-shadow 0.2s ease"})}
6
- @mouseenter=${this._handleMouseEnter}
7
- @mouseleave=${this._handleMouseLeave}
8
- >
9
- <div class="notification-content">
10
- <div
11
- class="icon-container"
12
- ${x.color({color:s.iconColor,bgColor:`color-mix(in srgb, ${s.iconColor} 10%, transparent)`})}
13
- >
14
- ${s.icon}
15
- </div>
16
-
17
- <div class="content">
18
- ${this.title?h.html`
19
- <div
20
- class="title"
21
- style=${v.styleMap({color:this.type==="info"?`color-mix(in srgb, ${l.SchmancyTheme.sys.color.primary.default} 90%, ${l.SchmancyTheme.sys.color.surface.on} 10%)`:this.type==="success"?`color-mix(in srgb, ${l.SchmancyTheme.sys.color.success.default} 90%, ${l.SchmancyTheme.sys.color.surface.on} 10%)`:this.type==="warning"?`color-mix(in srgb, ${l.SchmancyTheme.sys.color.tertiary.default} 90%, ${l.SchmancyTheme.sys.color.surface.on} 10%)`:`color-mix(in srgb, ${l.SchmancyTheme.sys.color.error.default} 90%, ${l.SchmancyTheme.sys.color.surface.on} 10%)`})}
22
- >
23
- ${this.title}
24
- </div>
25
- `:""}
26
-
27
- <div class="message">${this.message}</div>
28
- </div>
29
-
30
- ${this.closable?h.html`
31
- <button
32
- class="close-button"
33
- aria-label="Close notification"
34
- @click=${this.close}
35
- style=${v.styleMap({color:this.type==="info"?l.SchmancyTheme.sys.color.surface.onVariant:`color-mix(in srgb, ${s.iconColor} 80%, ${l.SchmancyTheme.sys.color.surface.onVariant} 20%)`})}
36
- >
37
- <svg
38
- width="18"
39
- height="18"
40
- viewBox="0 0 24 24"
41
- fill="none"
42
- stroke="currentColor"
43
- stroke-width="2"
44
- stroke-linecap="round"
45
- stroke-linejoin="round"
46
- >
47
- <line x1="18" y1="6" x2="6" y2="18"></line>
48
- <line x1="6" y1="6" x2="18" y2="18"></line>
49
- </svg>
50
- </button>
51
- `:""}
52
- </div>
53
-
54
- ${this.duration>0?h.html`
55
- <div class="progress-bar-container">
56
- <div
57
- class="progress-bar"
58
- style="width: ${this._progress}%"
59
- ${x.color({color:s.progressColor})}
60
- ></div>
61
- </div>
62
- `:""}
63
- </div>
64
- `}_getTypeStyles(){switch(this.type){case"success":return{icon:h.html`
65
- <svg
66
- width="20"
67
- height="20"
68
- viewBox="0 0 24 24"
69
- fill="none"
70
- stroke="currentColor"
71
- stroke-width="2"
72
- stroke-linecap="round"
73
- stroke-linejoin="round"
74
- >
75
- <path d="M22 11.08V12a10 10 0 1 1-5.93-9.14"></path>
76
- <polyline points="22 4 12 14.01 9 11.01"></polyline>
77
- </svg>
78
- `,iconColor:l.SchmancyTheme.sys.color.success.default,progressColor:`color-mix(in srgb, ${l.SchmancyTheme.sys.color.success.default} 95%, ${l.SchmancyTheme.sys.color.success.container} 5%)`};case"warning":return{icon:h.html`
79
- <svg
80
- width="20"
81
- height="20"
82
- viewBox="0 0 24 24"
83
- fill="none"
84
- stroke="currentColor"
85
- stroke-width="2"
86
- stroke-linecap="round"
87
- stroke-linejoin="round"
88
- >
89
- <path d="M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z"></path>
90
- <line x1="12" y1="9" x2="12" y2="13"></line>
91
- <line x1="12" y1="17" x2="12.01" y2="17"></line>
92
- </svg>
93
- `,iconColor:l.SchmancyTheme.sys.color.tertiary.default,progressColor:`color-mix(in srgb, ${l.SchmancyTheme.sys.color.tertiary.default} 90%, ${l.SchmancyTheme.sys.color.tertiary.container} 10%)`};case"error":return{icon:h.html`
94
- <svg
95
- width="20"
96
- height="20"
97
- viewBox="0 0 24 24"
98
- fill="none"
99
- stroke="currentColor"
100
- stroke-width="2"
101
- stroke-linecap="round"
102
- stroke-linejoin="round"
103
- >
104
- <circle cx="12" cy="12" r="10"></circle>
105
- <line x1="15" y1="9" x2="9" y2="15"></line>
106
- <line x1="9" y1="9" x2="15" y2="15"></line>
107
- </svg>
108
- `,iconColor:l.SchmancyTheme.sys.color.error.default,progressColor:`color-mix(in srgb, ${l.SchmancyTheme.sys.color.error.default} 92%, ${l.SchmancyTheme.sys.color.error.container} 8%)`};default:return{icon:h.html`
109
- <svg
110
- width="20"
111
- height="20"
112
- viewBox="0 0 24 24"
113
- fill="none"
114
- stroke="currentColor"
115
- stroke-width="2"
116
- stroke-linecap="round"
117
- stroke-linejoin="round"
118
- >
119
- <circle cx="12" cy="12" r="10"></circle>
120
- <line x1="12" y1="16" x2="12" y2="12"></line>
121
- <line x1="12" y1="8" x2="12.01" y2="8"></line>
122
- </svg>
123
- `,iconColor:l.SchmancyTheme.sys.color.primary.default,progressColor:`color-mix(in srgb, ${l.SchmancyTheme.sys.color.primary.default} 94%, ${l.SchmancyTheme.sys.color.primary.container} 6%)`}}}},d([u.property({type:String})],exports.SchmancyNotification.prototype,"title",2),d([u.property({type:String})],exports.SchmancyNotification.prototype,"message",2),d([u.property({type:String})],exports.SchmancyNotification.prototype,"type",2),d([u.property({type:Boolean})],exports.SchmancyNotification.prototype,"closable",2),d([u.property({type:Number})],exports.SchmancyNotification.prototype,"duration",2),d([u.property({type:String})],exports.SchmancyNotification.prototype,"id",2),d([u.property({type:Boolean})],exports.SchmancyNotification.prototype,"playSound",2),d([u.state()],exports.SchmancyNotification.prototype,"_visible",2),d([u.state()],exports.SchmancyNotification.prototype,"_progress",2),d([u.state()],exports.SchmancyNotification.prototype,"_hovered",2),d([u.state()],exports.SchmancyNotification.prototype,"_closing",2),d([u.state()],exports.SchmancyNotification.prototype,"_autoCloseTimer",2),d([u.state()],exports.SchmancyNotification.prototype,"_progressTimer",2),exports.SchmancyNotification=d([u.customElement("sch-notification")],exports.SchmancyNotification);class V{constructor(){this.audioContext=null}getAudioContext(){if(!this.audioContext){const t=window.AudioContext||window.webkitAudioContext;this.audioContext=new t}return this.audioContext}playInfoSound(t=.2){const e=this.getAudioContext(),i=e.currentTime,o=e.createOscillator(),n=e.createGain(),a=e.createBiquadFilter();o.type="sine",o.frequency.setValueAtTime(392,i),o.frequency.exponentialRampToValueAtTime(523.25,i+.25),a.type="lowpass",a.frequency.value=1500,n.gain.setValueAtTime(1e-4,i),n.gain.exponentialRampToValueAtTime(t,i+.15),n.gain.exponentialRampToValueAtTime(1e-4,i+.4),o.connect(a).connect(n).connect(e.destination),o.start(i),o.stop(i+.45)}playSuccessSound(t=.2){const e=this.getAudioContext(),i=e.currentTime,o=(n,a,r)=>{const c=e.createOscillator(),y=e.createGain(),g=e.createBiquadFilter();c.type="sine",c.frequency.setValueAtTime(n,i),g.type="lowpass",g.frequency.value=4*n,y.gain.setValueAtTime(1e-4,i),y.gain.exponentialRampToValueAtTime(t,i+.1),y.gain.exponentialRampToValueAtTime(1e-4,i+r),c.connect(g).connect(y).connect(e.destination),c.start(i+a),c.stop(i+r)};o(659.25,0,.6),o(523.25,.05,.55)}playWarningSound(t=.25){const e=this.getAudioContext(),i=e.currentTime,o=e.createOscillator(),n=e.createOscillator(),a=e.createGain(),r=e.createBiquadFilter();o.type="sine",n.type="sine",o.frequency.setValueAtTime(349.23,i),n.frequency.setValueAtTime(440,i),r.type="lowpass",r.frequency.value=1e3,a.gain.setValueAtTime(1e-4,i),a.gain.exponentialRampToValueAtTime(t,i+.08),a.gain.exponentialRampToValueAtTime(1e-4,i+.5),o.connect(r),n.connect(r),r.connect(a).connect(e.destination),o.start(i),n.start(i),o.stop(i+.55),n.stop(i+.55)}playErrorSound(t=.25){const e=this.getAudioContext(),i=e.currentTime,o=e.createOscillator(),n=e.createGain(),a=e.createBiquadFilter();o.type="triangle",o.frequency.setValueAtTime(220,i),o.frequency.exponentialRampToValueAtTime(1760,i+.3),a.type="lowpass",a.frequency.value=800,a.Q.value=.5,n.gain.setValueAtTime(1e-4,i),n.gain.exponentialRampToValueAtTime(.8*t,i+.1),n.gain.exponentialRampToValueAtTime(1e-4,i+.7),o.connect(a).connect(n).connect(e.destination),o.start(i),o.stop(i+.75)}async generateAudioFiles(t=.25){const i={};return i.info=await this.generateAudioFile(async o=>{const n=o.createOscillator();n.type="sine",n.frequency.setValueAtTime(320,0),n.frequency.exponentialRampToValueAtTime(520,.3);const a=o.createGain();a.gain.setValueAtTime(0,0),a.gain.linearRampToValueAtTime(t,.1),a.gain.linearRampToValueAtTime(0,.5),n.connect(a),a.connect(o.destination),n.start(),n.stop(.5)},44100,1),i.success=await this.generateAudioFile(async o=>{const n=o.createOscillator();n.type="sine",n.frequency.setValueAtTime(660,0);const a=o.createOscillator();a.type="sine",a.frequency.setValueAtTime(440,0);const r=o.createGain();r.gain.setValueAtTime(0,0),r.gain.linearRampToValueAtTime(t,.1),r.gain.linearRampToValueAtTime(0,.5);const c=o.createGain();c.gain.setValueAtTime(0,0),c.gain.linearRampToValueAtTime(.6*t,.15),c.gain.linearRampToValueAtTime(0,.7),n.connect(r),r.connect(o.destination),a.connect(c),c.connect(o.destination),n.start(),a.start(.15),n.stop(.5),a.stop(.7)},44100,1),i.warning=await this.generateAudioFile(async o=>{const n=o.createOscillator();n.type="sine",n.frequency.setValueAtTime(293.66,0);const a=o.createOscillator();a.type="sine",a.frequency.setValueAtTime(349.23,0);const r=o.createGain();r.gain.setValueAtTime(0,0),r.gain.linearRampToValueAtTime(t,.1),r.gain.linearRampToValueAtTime(.6*t,.2),r.gain.linearRampToValueAtTime(.8*t,.3),r.gain.linearRampToValueAtTime(0,.6),n.connect(r),a.connect(r),r.connect(o.destination),n.start(),a.start(),n.stop(.6),a.stop(.6)},44100,1),i.error=await this.generateAudioFile(async o=>{const n=o.createOscillator();n.type="sine",n.frequency.setValueAtTime(196,0);const a=o.createGain();a.gain.setValueAtTime(0,0),a.gain.linearRampToValueAtTime(t,.1),a.gain.linearRampToValueAtTime(.4*t,.2),a.gain.linearRampToValueAtTime(.6*t,.3),a.gain.linearRampToValueAtTime(0,.7);const r=o.createBiquadFilter();r.type="lowpass",r.frequency.value=600,r.Q.value=.7,n.connect(r),r.connect(a),a.connect(o.destination),n.start(),n.stop(.7)},44100,1),i}async generateAudioFile(t,e=44100,i=1){const o=new OfflineAudioContext(2,e*i,e);await t(o);const n=await o.startRendering(),a=this.audioBufferToWav(n);return URL.createObjectURL(a)}audioBufferToWav(t){const e=t.numberOfChannels,i=t.sampleRate,o=2*e,n=this.getAudioSamples(t,16),a=2*n.length,r=new ArrayBuffer(44+a),c=new DataView(r);return this.writeString(c,0,"RIFF"),c.setUint32(4,36+a,!0),this.writeString(c,8,"WAVE"),this.writeString(c,12,"fmt "),c.setUint32(16,16,!0),c.setUint16(20,1,!0),c.setUint16(22,e,!0),c.setUint32(24,i,!0),c.setUint32(28,i*o,!0),c.setUint16(32,o,!0),c.setUint16(34,16,!0),this.writeString(c,36,"data"),c.setUint32(40,a,!0),this.writeInt16Samples(c,44,n),new Blob([r],{type:"audio/wav"})}getAudioSamples(t,e){const i=t.numberOfChannels,o=t.length,n=[],a=e===16?32768:128;for(let r=0;r<o;r++)for(let c=0;c<i;c++){const y=t.getChannelData(c)[r],g=Math.max(-1,Math.min(1,y));n.push(g*a)}return n}writeInt16Samples(t,e,i){for(let o=0;o<i.length;o++)t.setInt16(e+2*o,i[o],!0)}writeString(t,e,i){for(let o=0;o<i.length;o++)t.setUint8(e+o,i.charCodeAt(o))}}class S{constructor(){this.audioContext=null,this.soundBuffers=new Map,this.volume=.5,this.muted=!1,this.soundGenerator=new V,this.soundUrls={info:"/assets/sounds/notification-info.mp3",success:"/assets/sounds/notification-success.mp3",warning:"/assets/sounds/notification-warning.mp3",error:"/assets/sounds/notification-error.mp3"},this.initializeAudioFiles()}async initializeAudioFiles(){try{await this.preloadSounds()}catch{try{const e=await this.soundGenerator.generateAudioFiles(this.volume);this.soundUrls=e}catch{}}}getAudioContext(){if(!this.audioContext){const t=window.AudioContext||window.webkitAudioContext;this.audioContext=new t}return this.audioContext}async preloadSounds(){const t=["info","success","warning","error"];for(const e of t)try{const i=await this.loadSound(e);this.soundBuffers.set(e,i)}catch{}}async loadSound(t){const e=this.soundUrls[t],i=await fetch(e);if(!i.ok)throw new Error(`Failed to load sound from ${e}: ${i.statusText}`);const o=await i.arrayBuffer();return await this.getAudioContext().decodeAudioData(o)}async playSound(t){if(!this.muted)try{const e=this.getAudioContext();if(e.state==="suspended"&&await e.resume(),this.soundUrls[t].startsWith("blob:"))return void this.playFallbackSound(t);if(!this.soundBuffers.has(t))try{const a=await this.loadSound(t);this.soundBuffers.set(t,a)}catch{return void this.playDirectGeneratedSound(t)}const i=this.soundBuffers.get(t);if(!i)throw new Error(`Sound buffer for ${t} not available`);const o=e.createBufferSource();o.buffer=i;const n=e.createGain();n.gain.value=this.volume,o.connect(n),n.connect(e.destination),o.start(0)}catch{this.playDirectGeneratedSound(t)}}playDirectGeneratedSound(t){if(!this.muted)try{switch(t){case"info":this.soundGenerator.playInfoSound(this.volume);break;case"success":this.soundGenerator.playSuccessSound(this.volume);break;case"warning":this.soundGenerator.playWarningSound(this.volume);break;case"error":this.soundGenerator.playErrorSound(this.volume)}}catch{}}playFallbackSound(t){if(!this.muted)try{const e=new Audio(this.soundUrls[t]);e.volume=this.volume,e.addEventListener("ended",()=>{e.remove()}),e.play().catch(i=>{this.playDirectGeneratedSound(t)})}catch{this.playDirectGeneratedSound(t)}}setVolume(t){this.volume=Math.max(0,Math.min(1,t))}getVolume(){return this.volume}mute(){this.muted=!0}unmute(){this.muted=!1}isMuted(){return this.muted}setSoundUrl(t,e){this.soundUrls[t]=e,this.soundBuffers.delete(t)}getSoundUrl(t){return this.soundUrls[t]}}var $=Object.defineProperty,k=Object.getOwnPropertyDescriptor,f=(s,t,e,i)=>{for(var o,n=i>1?void 0:i?k(t,e):t,a=s.length-1;a>=0;a--)(o=s[a])&&(n=(i?o(t,e,n):o(n))||n);return i&&n&&$(t,e,n),n};exports.SchmancyNotificationContainer=class extends w.$LitElement(":host{display:block}.notification-container{position:fixed;z-index:9999;padding:12px;pointer-events:none;width:100%;max-width:424px}.notification-container sch-notification{pointer-events:auto}.notification-container.top-right{top:0;right:0;display:flex;flex-direction:column-reverse}.notification-container.top-left{top:0;left:0;display:flex;flex-direction:column-reverse}.notification-container.bottom-right{bottom:0;right:0;display:flex;flex-direction:column}.notification-container.bottom-left{bottom:0;left:0;display:flex;flex-direction:column}.notification-container.top-center{top:0;left:50%;transform:translate(-50%);display:flex;flex-direction:column-reverse}.notification-container.bottom-center{bottom:0;left:50%;transform:translate(-50%);display:flex;flex-direction:column}"){constructor(){super(...arguments),this.position="top-right",this.maxVisibleNotifications=2,this.playSound=!1,this.audioVolume=.1,this._notifications=[],this._audioService=new S}connectedCallback(){super.connectedCallback(),this._audioService.setVolume(this.audioVolume),b.fromEvent(window,"schmancy-notification").pipe(b.takeUntil(this.disconnecting)).subscribe(s=>{this.addNotification(s.detail)}),this.addEventListener("playsound",s=>{this.playSound&&this._audioService.playSound(s.detail.type)})}addNotification(s){const t=s.id||`notification-${Date.now()}-${Math.floor(1e4*Math.random())}`,e={id:t,title:s.title||"",message:s.message,type:s.type||"info",duration:s.duration!==void 0?s.duration:750,closable:s.closable===void 0||s.closable,playSound:s.playSound!==void 0?s.playSound:this.playSound};return this.position.startsWith("top")?this._notifications=[...this._notifications,e]:this._notifications=[e,...this._notifications],this._notifications.length>this.maxVisibleNotifications&&(this._notifications=this._notifications.slice(-this.maxVisibleNotifications)),e.playSound&&this._audioService.playSound(e.type),t}removeNotification(s){this._notifications=this._notifications.filter(t=>t.id!==s)}_handleClose(s){const t=s.detail.id;this.removeNotification(t)}render(){return h.html`
124
- <div
125
- class=${T.classMap({"notification-container":!0,[this.position]:!0})}
126
- >
127
- ${A.repeat(this._notifications,s=>s.id,s=>h.html`
128
- <sch-notification
129
- .id=${s.id}
130
- .title=${s.title}
131
- .message=${s.message}
132
- .type=${s.type}
133
- .duration=${s.duration}
134
- ?closable=${s.closable}
135
- ?playSound=${!1} /* We already played the sound on add */
136
- @close=${this._handleClose}
137
- ></sch-notification>
138
- `)}
139
- </div>
140
- `}},f([u.property({type:String})],exports.SchmancyNotificationContainer.prototype,"position",2),f([u.property({type:Number})],exports.SchmancyNotificationContainer.prototype,"maxVisibleNotifications",2),f([u.property({type:Boolean})],exports.SchmancyNotificationContainer.prototype,"playSound",2),f([u.property({type:Number})],exports.SchmancyNotificationContainer.prototype,"audioVolume",2),f([u.state()],exports.SchmancyNotificationContainer.prototype,"_notifications",2),exports.SchmancyNotificationContainer=f([u.customElement("sch-notification-container")],exports.SchmancyNotificationContainer);const p=class p{constructor(){}static getInstance(){return p.instance||(p.instance=new p),p.instance}notify(t){const e={...p.DEFAULT_OPTIONS,...t,duration:t.duration??p.DEFAULT_OPTIONS.duration},i=e.id||`notification-${Date.now()}-${Math.floor(1e4*Math.random())}`,o=new CustomEvent("schmancy-notification",{bubbles:!0,composed:!0,detail:{...e,id:i}});return window.dispatchEvent(o),i}info(t,e={}){return this.notify({message:t??"",type:"info",duration:t?e.duration:1,...e})}success(t,e={}){return this.notify({message:t??"",type:"success",duration:t?e.duration:1,...e})}warning(t,e={}){return this.notify({message:t??"",type:"warning",duration:t?e.duration:1,...e})}error(t,e={}){return this.notify({message:t??"",type:"error",duration:t?e.duration:1,...e})}customDuration(t,e,i={}){return this.notify({message:t,duration:e,...i})}persistent(t,e={}){return this.notify({message:t,duration:0,...e})}};p.DEFAULT_OPTIONS={duration:1e3,closable:!0,playSound:!0};let m=p;const N={show:s=>m.getInstance().notify(s),info:(s,t={})=>m.getInstance().info(s,t),success:(s,t={})=>m.getInstance().success(s,t),warning:(s,t={})=>m.getInstance().warning(s,t),error:(s,t={})=>m.getInstance().error(s,t),customDuration:(s,t,e={})=>m.getInstance().customDuration(s,t,e),persistent:(s,t={})=>m.getInstance().persistent(s,t)};exports.$notify=N,exports.NotificationAudioService=S;
141
- //# sourceMappingURL=notification-service-B6nHqzq5.cjs.map