@mhmo91/schmancy 0.4.52 → 0.4.54

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 (316) hide show
  1. package/ai/notification.md +158 -45
  2. package/dist/ai/notification.md +158 -45
  3. package/dist/{animated-text-CtXY3MHV.cjs → animated-text-DB1In3Jz.cjs} +2 -2
  4. package/dist/{animated-text-CtXY3MHV.cjs.map → animated-text-DB1In3Jz.cjs.map} +1 -1
  5. package/dist/{animated-text-D26Fv13t.js → animated-text-DET7QrLu.js} +3 -3
  6. package/dist/{animated-text-D26Fv13t.js.map → animated-text-DET7QrLu.js.map} +1 -1
  7. package/dist/animated-text.cjs +1 -1
  8. package/dist/animated-text.js +1 -1
  9. package/dist/area.cjs +1 -1
  10. package/dist/{area.component-DQ_erV9e.cjs → area.component-D3jAVUFN.cjs} +2 -2
  11. package/dist/{area.component-DQ_erV9e.cjs.map → area.component-D3jAVUFN.cjs.map} +1 -1
  12. package/dist/{area.component-BCcq9Nb7.js → area.component-RtyzU0st.js} +3 -3
  13. package/dist/{area.component-BCcq9Nb7.js.map → area.component-RtyzU0st.js.map} +1 -1
  14. package/dist/area.js +1 -1
  15. package/dist/{autocomplete-CrhgxhFI.cjs → autocomplete-DiGyR9Vk.cjs} +2 -2
  16. package/dist/{autocomplete-CrhgxhFI.cjs.map → autocomplete-DiGyR9Vk.cjs.map} +1 -1
  17. package/dist/{autocomplete-CkycjWy4.js → autocomplete-haCWPHWw.js} +3 -3
  18. package/dist/{autocomplete-CkycjWy4.js.map → autocomplete-haCWPHWw.js.map} +1 -1
  19. package/dist/autocomplete.cjs +1 -1
  20. package/dist/autocomplete.js +1 -1
  21. package/dist/{avatar-nwqyt3uc.cjs → avatar-C5oN_3BW.cjs} +2 -2
  22. package/dist/{avatar-nwqyt3uc.cjs.map → avatar-C5oN_3BW.cjs.map} +1 -1
  23. package/dist/{avatar-2RMudsVg.js → avatar-Lqxf7DeM.js} +47 -47
  24. package/dist/{avatar-2RMudsVg.js.map → avatar-Lqxf7DeM.js.map} +1 -1
  25. package/dist/badge.cjs +1 -1
  26. package/dist/badge.js +1 -1
  27. package/dist/{boat-B_xZilsk.cjs → boat-BKn3-Scu.cjs} +2 -2
  28. package/dist/{boat-B_xZilsk.cjs.map → boat-BKn3-Scu.cjs.map} +1 -1
  29. package/dist/{boat-C_BvtlNQ.js → boat-BoXbNHrW.js} +2 -2
  30. package/dist/{boat-C_BvtlNQ.js.map → boat-BoXbNHrW.js.map} +1 -1
  31. package/dist/boat.cjs +1 -1
  32. package/dist/boat.js +1 -1
  33. package/dist/busy.cjs +1 -1
  34. package/dist/busy.js +1 -1
  35. package/dist/button.cjs +1 -1
  36. package/dist/button.js +1 -1
  37. package/dist/card.cjs +1 -1
  38. package/dist/card.js +1 -1
  39. package/dist/{checkbox-BAuVXvYL.cjs → checkbox-CMzlYCIy.cjs} +2 -2
  40. package/dist/{checkbox-BAuVXvYL.cjs.map → checkbox-CMzlYCIy.cjs.map} +1 -1
  41. package/dist/{checkbox-BSYgpRsc.js → checkbox-DBYze801.js} +2 -2
  42. package/dist/{checkbox-BSYgpRsc.js.map → checkbox-DBYze801.js.map} +1 -1
  43. package/dist/checkbox.cjs +1 -1
  44. package/dist/checkbox.js +1 -1
  45. package/dist/{chips-Dg2otqDI.cjs → chips-DYvqKG33.cjs} +2 -2
  46. package/dist/{chips-Dg2otqDI.cjs.map → chips-DYvqKG33.cjs.map} +1 -1
  47. package/dist/{chips-Dn8RpKCE.js → chips-fZJMvpt4.js} +3 -3
  48. package/dist/{chips-Dn8RpKCE.js.map → chips-fZJMvpt4.js.map} +1 -1
  49. package/dist/chips.cjs +1 -1
  50. package/dist/chips.js +1 -1
  51. package/dist/{circular-progress-B1RjFzcp.js → circular-progress-B_xy1hOi.js} +3 -3
  52. package/dist/{circular-progress-B1RjFzcp.js.map → circular-progress-B_xy1hOi.js.map} +1 -1
  53. package/dist/{circular-progress-DZUJU-z3.cjs → circular-progress-Cvgbz8b9.cjs} +2 -2
  54. package/dist/{circular-progress-DZUJU-z3.cjs.map → circular-progress-Cvgbz8b9.cjs.map} +1 -1
  55. package/dist/circular-progress.cjs +1 -1
  56. package/dist/circular-progress.js +1 -1
  57. package/dist/code-highlight.cjs +1 -1
  58. package/dist/code-highlight.js +1 -1
  59. package/dist/{code-preview-JlSLKkKg.js → code-preview-KVgf-4eh.js} +2 -2
  60. package/dist/{code-preview-JlSLKkKg.js.map → code-preview-KVgf-4eh.js.map} +1 -1
  61. package/dist/{code-preview-CYHNaPek.cjs → code-preview-oRESLXMA.cjs} +2 -2
  62. package/dist/{code-preview-CYHNaPek.cjs.map → code-preview-oRESLXMA.cjs.map} +1 -1
  63. package/dist/components.cjs +1 -1
  64. package/dist/components.js +1 -1
  65. package/dist/content-drawer.cjs +1 -1
  66. package/dist/content-drawer.js +1 -1
  67. package/dist/{date-range-9NUFmKqd.cjs → date-range-CgELB9-4.cjs} +2 -2
  68. package/dist/{date-range-9NUFmKqd.cjs.map → date-range-CgELB9-4.cjs.map} +1 -1
  69. package/dist/{date-range-8o_f5N7V.js → date-range-DJSnkdPw.js} +4 -4
  70. package/dist/{date-range-8o_f5N7V.js.map → date-range-DJSnkdPw.js.map} +1 -1
  71. package/dist/{date-range-inline-B_K4YPtB.js → date-range-inline-CBV35jOW.js} +3 -3
  72. package/dist/{date-range-inline-B_K4YPtB.js.map → date-range-inline-CBV35jOW.js.map} +1 -1
  73. package/dist/{date-range-inline-Czq1wHs1.cjs → date-range-inline-rDLHIRGy.cjs} +2 -2
  74. package/dist/{date-range-inline-Czq1wHs1.cjs.map → date-range-inline-rDLHIRGy.cjs.map} +1 -1
  75. package/dist/date-range-inline.cjs +1 -1
  76. package/dist/date-range-inline.js +1 -1
  77. package/dist/date-range.cjs +1 -1
  78. package/dist/date-range.js +1 -1
  79. package/dist/{delay-FgtrEHdo.cjs → delay-CXo4mT0h.cjs} +2 -2
  80. package/dist/{delay-FgtrEHdo.cjs.map → delay-CXo4mT0h.cjs.map} +1 -1
  81. package/dist/{delay-D415_oVH.js → delay-D_nHncS4.js} +2 -2
  82. package/dist/{delay-D415_oVH.js.map → delay-D_nHncS4.js.map} +1 -1
  83. package/dist/delay.cjs +1 -1
  84. package/dist/delay.js +1 -1
  85. package/dist/{dialog-content-C_paCOeM.js → dialog-content-Ds7XlHu6.js} +4 -4
  86. package/dist/{dialog-content-C_paCOeM.js.map → dialog-content-Ds7XlHu6.js.map} +1 -1
  87. package/dist/{dialog-content-tGl9B67L.cjs → dialog-content-DucFIAvv.cjs} +2 -2
  88. package/dist/{dialog-content-tGl9B67L.cjs.map → dialog-content-DucFIAvv.cjs.map} +1 -1
  89. package/dist/{dialog-service-DZv4KB89.js → dialog-service-S1aHOhxt.js} +2 -2
  90. package/dist/{dialog-service-DZv4KB89.js.map → dialog-service-S1aHOhxt.js.map} +1 -1
  91. package/dist/{dialog-service-JNWTLfAy.cjs → dialog-service-fqRlhoqP.cjs} +2 -2
  92. package/dist/{dialog-service-JNWTLfAy.cjs.map → dialog-service-fqRlhoqP.cjs.map} +1 -1
  93. package/dist/dialog.cjs +1 -1
  94. package/dist/dialog.js +2 -2
  95. package/dist/{divider-Dn26vIou.js → divider-0vcefMTl.js} +3 -3
  96. package/dist/{divider-Dn26vIou.js.map → divider-0vcefMTl.js.map} +1 -1
  97. package/dist/{divider-2yg9r1tF.cjs → divider-BcNXmIjf.cjs} +2 -2
  98. package/dist/{divider-2yg9r1tF.cjs.map → divider-BcNXmIjf.cjs.map} +1 -1
  99. package/dist/divider.cjs +1 -1
  100. package/dist/divider.js +1 -1
  101. package/dist/{dropdown-content-DJ4CA3ug.cjs → dropdown-content-BE4l5-bF.cjs} +2 -2
  102. package/dist/{dropdown-content-DJ4CA3ug.cjs.map → dropdown-content-BE4l5-bF.cjs.map} +1 -1
  103. package/dist/{dropdown-content-DOnGrBxV.js → dropdown-content-Bki0sMG1.js} +6 -6
  104. package/dist/{dropdown-content-DOnGrBxV.js.map → dropdown-content-Bki0sMG1.js.map} +1 -1
  105. package/dist/dropdown.cjs +1 -1
  106. package/dist/dropdown.js +1 -1
  107. package/dist/extra.cjs +1 -1
  108. package/dist/extra.js +1 -1
  109. package/dist/{flex-DWnX0ZPR.cjs → flex-CWfz0mT_.cjs} +2 -2
  110. package/dist/{flex-DWnX0ZPR.cjs.map → flex-CWfz0mT_.cjs.map} +1 -1
  111. package/dist/{flex-DV2W2Zgu.js → flex-CmpdU7KF.js} +2 -2
  112. package/dist/{flex-DV2W2Zgu.js.map → flex-CmpdU7KF.js.map} +1 -1
  113. package/dist/{form-Dpokur4M.cjs → form-D9iJT7ye.cjs} +2 -2
  114. package/dist/{form-Dpokur4M.cjs.map → form-D9iJT7ye.cjs.map} +1 -1
  115. package/dist/{form-Cots2cbN.js → form-VirX921P.js} +2 -2
  116. package/dist/{form-Cots2cbN.js.map → form-VirX921P.js.map} +1 -1
  117. package/dist/form.cjs +1 -1
  118. package/dist/form.js +1 -1
  119. package/dist/{formField.mixin-ySoLTrgX.cjs → formField.mixin-D367avQx.cjs} +2 -2
  120. package/dist/{formField.mixin-ySoLTrgX.cjs.map → formField.mixin-D367avQx.cjs.map} +1 -1
  121. package/dist/{formField.mixin-DdTDdv9g.js → formField.mixin-DfFQjv2A.js} +2 -2
  122. package/dist/{formField.mixin-DdTDdv9g.js.map → formField.mixin-DfFQjv2A.js.map} +1 -1
  123. package/dist/{icon-mhchC8Qw.cjs → icon-CQ2TzXqr.cjs} +2 -2
  124. package/dist/{icon-mhchC8Qw.cjs.map → icon-CQ2TzXqr.cjs.map} +1 -1
  125. package/dist/{icon-button-DbvjV5zJ.cjs → icon-button-Chfr85pI.cjs} +2 -2
  126. package/dist/{icon-button-DbvjV5zJ.cjs.map → icon-button-Chfr85pI.cjs.map} +1 -1
  127. package/dist/{icon-button-BGvSPuE-.js → icon-button-ispbGg8V.js} +3 -3
  128. package/dist/{icon-button-BGvSPuE-.js.map → icon-button-ispbGg8V.js.map} +1 -1
  129. package/dist/{icon-BZxC9aoA.js → icon-iUti-uRG.js} +2 -2
  130. package/dist/{icon-BZxC9aoA.js.map → icon-iUti-uRG.js.map} +1 -1
  131. package/dist/icons.cjs +1 -1
  132. package/dist/icons.js +1 -1
  133. package/dist/index.cjs +1 -1
  134. package/dist/index.js +146 -141
  135. package/dist/index.js.map +1 -1
  136. package/dist/{input-Cpo-ws8k.js → input-BcWz0wTV.js} +3 -3
  137. package/dist/{input-Cpo-ws8k.js.map → input-BcWz0wTV.js.map} +1 -1
  138. package/dist/{input-DzNoI9qU.cjs → input-DihdZVKl.cjs} +2 -2
  139. package/dist/{input-DzNoI9qU.cjs.map → input-DihdZVKl.cjs.map} +1 -1
  140. package/dist/input.cjs +1 -1
  141. package/dist/input.js +1 -1
  142. package/dist/layout.cjs +1 -1
  143. package/dist/layout.js +1 -1
  144. package/dist/{list-DRbkWHho.cjs → list-CqKsOt3B.cjs} +2 -2
  145. package/dist/{list-DRbkWHho.cjs.map → list-CqKsOt3B.cjs.map} +1 -1
  146. package/dist/{list-BTyoQ42F.js → list-qn9wVk0L.js} +2 -2
  147. package/dist/{list-BTyoQ42F.js.map → list-qn9wVk0L.js.map} +1 -1
  148. package/dist/list.cjs +1 -1
  149. package/dist/list.js +1 -1
  150. package/dist/{litElement.mixin-B01R2oT7.cjs → litElement.mixin-rH8JULZZ.cjs} +2 -2
  151. package/dist/{litElement.mixin-B01R2oT7.cjs.map → litElement.mixin-rH8JULZZ.cjs.map} +1 -1
  152. package/dist/{litElement.mixin-BH9PTyUD.js → litElement.mixin-sRUdAQbg.js} +2 -2
  153. package/dist/{litElement.mixin-BH9PTyUD.js.map → litElement.mixin-sRUdAQbg.js.map} +1 -1
  154. package/dist/{media-BO-aZBTp.js → media-DFXN_4aK.js} +2 -2
  155. package/dist/{media-BO-aZBTp.js.map → media-DFXN_4aK.js.map} +1 -1
  156. package/dist/{media-CIuTybvD.cjs → media-elwvR06F.cjs} +2 -2
  157. package/dist/{media-CIuTybvD.cjs.map → media-elwvR06F.cjs.map} +1 -1
  158. package/dist/{menu-DEbZxoXr.cjs → menu-kDIe6tAV.cjs} +2 -2
  159. package/dist/{menu-DEbZxoXr.cjs.map → menu-kDIe6tAV.cjs.map} +1 -1
  160. package/dist/{menu-DWCDQvGY.js → menu-p4I5_Lw2.js} +3 -3
  161. package/dist/{menu-DWCDQvGY.js.map → menu-p4I5_Lw2.js.map} +1 -1
  162. package/dist/menu.cjs +1 -1
  163. package/dist/menu.js +1 -1
  164. package/dist/nav-drawer.cjs +1 -1
  165. package/dist/nav-drawer.js +1 -1
  166. package/dist/{notification-service-L_h9_d4v.js → notification-service-Rkjxrnsh.js} +142 -113
  167. package/dist/notification-service-Rkjxrnsh.js.map +1 -0
  168. package/dist/notification-service-za0_fhhl.cjs +143 -0
  169. package/dist/notification-service-za0_fhhl.cjs.map +1 -0
  170. package/dist/notification.cjs +1 -1
  171. package/dist/notification.js +7 -4
  172. package/dist/notification.js.map +1 -1
  173. package/dist/notify-DWTupBbF.cjs +2 -0
  174. package/dist/notify-DWTupBbF.cjs.map +1 -0
  175. package/dist/notify-DlyqBWt7.js +35 -0
  176. package/dist/notify-DlyqBWt7.js.map +1 -0
  177. package/dist/number-B7aCRYnH.cjs +2 -0
  178. package/dist/number-B7aCRYnH.cjs.map +1 -0
  179. package/dist/number-BhTiptLA.js +99 -0
  180. package/dist/number-BhTiptLA.js.map +1 -0
  181. package/dist/{option-vRGeXw_u.js → option-B11dF4ts.js} +2 -2
  182. package/dist/{option-vRGeXw_u.js.map → option-B11dF4ts.js.map} +1 -1
  183. package/dist/{option-BPmOG_Hw.cjs → option-BN0yfIJd.cjs} +2 -2
  184. package/dist/{option-BPmOG_Hw.cjs.map → option-BN0yfIJd.cjs.map} +1 -1
  185. package/dist/option.cjs +1 -1
  186. package/dist/option.js +1 -1
  187. package/dist/{payment-card-form-Cs5bP5Di.js → payment-card-form-BSGwTH_I.js} +3 -3
  188. package/dist/{payment-card-form-Cs5bP5Di.js.map → payment-card-form-BSGwTH_I.js.map} +1 -1
  189. package/dist/{payment-card-form-ccF9dfGC.cjs → payment-card-form-CB9JOaDJ.cjs} +2 -2
  190. package/dist/{payment-card-form-ccF9dfGC.cjs.map → payment-card-form-CB9JOaDJ.cjs.map} +1 -1
  191. package/dist/{progress-BqZ7yHQe.cjs → progress-bdcY8y9X.cjs} +2 -2
  192. package/dist/{progress-BqZ7yHQe.cjs.map → progress-bdcY8y9X.cjs.map} +1 -1
  193. package/dist/{progress-DM_jha7D.js → progress-jqQTk6Au.js} +2 -2
  194. package/dist/{progress-DM_jha7D.js.map → progress-jqQTk6Au.js.map} +1 -1
  195. package/dist/progress.cjs +1 -1
  196. package/dist/progress.js +1 -1
  197. package/dist/{radio-button-YDzqdRA-.js → radio-button-BJeYB3tM.js} +3 -3
  198. package/dist/{radio-button-YDzqdRA-.js.map → radio-button-BJeYB3tM.js.map} +1 -1
  199. package/dist/{radio-button-WmbuT_YW.cjs → radio-button-BoHXIxM8.cjs} +2 -2
  200. package/dist/{radio-button-WmbuT_YW.cjs.map → radio-button-BoHXIxM8.cjs.map} +1 -1
  201. package/dist/radio-group.cjs +1 -1
  202. package/dist/radio-group.js +1 -1
  203. package/dist/{schmancy-steps-container-CjAsrjKf.cjs → schmancy-steps-container-CYO4MVUR.cjs} +2 -2
  204. package/dist/{schmancy-steps-container-CjAsrjKf.cjs.map → schmancy-steps-container-CYO4MVUR.cjs.map} +1 -1
  205. package/dist/{schmancy-steps-container-CoARMXfB.js → schmancy-steps-container-DWnlpaKM.js} +2 -2
  206. package/dist/{schmancy-steps-container-CoARMXfB.js.map → schmancy-steps-container-DWnlpaKM.js.map} +1 -1
  207. package/dist/{select-CPnSionr.cjs → select-BC8bdudP.cjs} +2 -2
  208. package/dist/{select-CPnSionr.cjs.map → select-BC8bdudP.cjs.map} +1 -1
  209. package/dist/{select-rwocpGs2.js → select-p4o5Lul5.js} +3 -3
  210. package/dist/{select-rwocpGs2.js.map → select-p4o5Lul5.js.map} +1 -1
  211. package/dist/select.cjs +1 -1
  212. package/dist/select.js +1 -1
  213. package/dist/{sheet-eCDoMdHF.cjs → sheet-BdQEBXGY.cjs} +2 -2
  214. package/dist/{sheet-eCDoMdHF.cjs.map → sheet-BdQEBXGY.cjs.map} +1 -1
  215. package/dist/{sheet-Cw2qLdzN.js → sheet-CC3iD9_6.js} +4 -4
  216. package/dist/{sheet-Cw2qLdzN.js.map → sheet-CC3iD9_6.js.map} +1 -1
  217. package/dist/sheet.cjs +1 -1
  218. package/dist/sheet.js +1 -1
  219. package/dist/{slider-C7Z1bPq7.js → slider--Jbq5q-X.js} +3 -3
  220. package/dist/{slider-C7Z1bPq7.js.map → slider--Jbq5q-X.js.map} +1 -1
  221. package/dist/{slider-DBNoXRWS.cjs → slider-DMm-epbb.cjs} +2 -2
  222. package/dist/{slider-DBNoXRWS.cjs.map → slider-DMm-epbb.cjs.map} +1 -1
  223. package/dist/slider.cjs +1 -1
  224. package/dist/slider.js +1 -1
  225. package/dist/{spinner-CV62BBoF.cjs → spinner-CRZrT-_Q.cjs} +2 -2
  226. package/dist/{spinner-CV62BBoF.cjs.map → spinner-CRZrT-_Q.cjs.map} +1 -1
  227. package/dist/{spinner-CbA-FXRK.js → spinner-DQJy8OCo.js} +2 -2
  228. package/dist/{spinner-CbA-FXRK.js.map → spinner-DQJy8OCo.js.map} +1 -1
  229. package/dist/steps.cjs +1 -1
  230. package/dist/steps.js +1 -1
  231. package/dist/{surface-ClfeUI6q.cjs → surface-BoVJSFV9.cjs} +2 -2
  232. package/dist/{surface-ClfeUI6q.cjs.map → surface-BoVJSFV9.cjs.map} +1 -1
  233. package/dist/{surface-By8o7nWa.js → surface-CWyGotlB.js} +2 -2
  234. package/dist/{surface-By8o7nWa.js.map → surface-CWyGotlB.js.map} +1 -1
  235. package/dist/surface.cjs +1 -1
  236. package/dist/surface.js +1 -1
  237. package/dist/{table-Rqnb4AJl.cjs → table-BEQXD6kf.cjs} +2 -2
  238. package/dist/{table-Rqnb4AJl.cjs.map → table-BEQXD6kf.cjs.map} +1 -1
  239. package/dist/{table-CvMo5lOi.js → table-BM7t3NMt.js} +2 -2
  240. package/dist/{table-CvMo5lOi.js.map → table-BM7t3NMt.js.map} +1 -1
  241. package/dist/table.cjs +1 -1
  242. package/dist/table.js +1 -1
  243. package/dist/{tabs-compatibility-BEXurIiZ.js → tabs-compatibility-CeB6hC2j.js} +2 -2
  244. package/dist/{tabs-compatibility-BEXurIiZ.js.map → tabs-compatibility-CeB6hC2j.js.map} +1 -1
  245. package/dist/{tabs-compatibility-B1bE7hSG.cjs → tabs-compatibility-DeTNBDE1.cjs} +2 -2
  246. package/dist/{tabs-compatibility-B1bE7hSG.cjs.map → tabs-compatibility-DeTNBDE1.cjs.map} +1 -1
  247. package/dist/tabs.cjs +1 -1
  248. package/dist/tabs.js +1 -1
  249. package/dist/tailwind.mixin-Dq2ayAFp.cjs +2 -0
  250. package/dist/{tailwind.mixin-DVKI3qb9.cjs.map → tailwind.mixin-Dq2ayAFp.cjs.map} +1 -1
  251. package/dist/tailwind.mixin-tQQ1rtff.js +43 -0
  252. package/dist/{tailwind.mixin-CaIkmP6j.js.map → tailwind.mixin-tQQ1rtff.js.map} +1 -1
  253. package/dist/teleport.cjs +1 -1
  254. package/dist/teleport.js +1 -1
  255. package/dist/{textarea-Dlnyyrbq.cjs → textarea-DocOI2oR.cjs} +2 -2
  256. package/dist/{textarea-Dlnyyrbq.cjs.map → textarea-DocOI2oR.cjs.map} +1 -1
  257. package/dist/{textarea-DM3lgEUp.js → textarea-WHP4TrmY.js} +2 -2
  258. package/dist/{textarea-DM3lgEUp.js.map → textarea-WHP4TrmY.js.map} +1 -1
  259. package/dist/textarea.cjs +1 -1
  260. package/dist/textarea.js +1 -1
  261. package/dist/{theme-button-C4JWRMiC.js → theme-button-B4_5yiEc.js} +2 -2
  262. package/dist/{theme-button-C4JWRMiC.js.map → theme-button-B4_5yiEc.js.map} +1 -1
  263. package/dist/{theme-button-Cao8AH8r.cjs → theme-button-CHUbJUKv.cjs} +2 -2
  264. package/dist/{theme-button-Cao8AH8r.cjs.map → theme-button-CHUbJUKv.cjs.map} +1 -1
  265. package/dist/theme-button.cjs +1 -1
  266. package/dist/theme-button.js +1 -1
  267. package/dist/theme.cjs +1 -1
  268. package/dist/{theme.component-ColRTbY5.js → theme.component-90Bc4Zb3.js} +2 -2
  269. package/dist/{theme.component-ColRTbY5.js.map → theme.component-90Bc4Zb3.js.map} +1 -1
  270. package/dist/{theme.component-RtV3l-Ns.cjs → theme.component-CLHIqoT6.cjs} +2 -2
  271. package/dist/{theme.component-RtV3l-Ns.cjs.map → theme.component-CLHIqoT6.cjs.map} +1 -1
  272. package/dist/theme.js +1 -1
  273. package/dist/{timezone-Cvsd--fr.js → timezone-DB5BUvhB.js} +3 -3
  274. package/dist/{timezone-Cvsd--fr.js.map → timezone-DB5BUvhB.js.map} +1 -1
  275. package/dist/{timezone-UBBApQoU.cjs → timezone-DvLRt3ML.cjs} +2 -2
  276. package/dist/{timezone-UBBApQoU.cjs.map → timezone-DvLRt3ML.cjs.map} +1 -1
  277. package/dist/{tooltip-nwQwCEgl.js → tooltip-CSWXlp7i.js} +2 -2
  278. package/dist/{tooltip-nwQwCEgl.js.map → tooltip-CSWXlp7i.js.map} +1 -1
  279. package/dist/{tooltip-WpE4e-fO.cjs → tooltip-CcuDiHHe.cjs} +2 -2
  280. package/dist/{tooltip-WpE4e-fO.cjs.map → tooltip-CcuDiHHe.cjs.map} +1 -1
  281. package/dist/tooltip.cjs +1 -1
  282. package/dist/tooltip.js +1 -1
  283. package/dist/{tree-Dn0t7MUR.cjs → tree-CBb1YnBE.cjs} +2 -2
  284. package/dist/{tree-Dn0t7MUR.cjs.map → tree-CBb1YnBE.cjs.map} +1 -1
  285. package/dist/{tree-BDmB7KmQ.js → tree-CFZsnAVg.js} +2 -2
  286. package/dist/{tree-BDmB7KmQ.js.map → tree-CFZsnAVg.js.map} +1 -1
  287. package/dist/tree.cjs +1 -1
  288. package/dist/tree.js +1 -1
  289. package/dist/{typewriter-DMKxup-I.js → typewriter-CYozDVy4.js} +4 -4
  290. package/dist/{typewriter-DMKxup-I.js.map → typewriter-CYozDVy4.js.map} +1 -1
  291. package/dist/{typewriter-Fq4uV6Gm.cjs → typewriter-DmeUdIXP.cjs} +2 -2
  292. package/dist/{typewriter-Fq4uV6Gm.cjs.map → typewriter-DmeUdIXP.cjs.map} +1 -1
  293. package/dist/typewriter.cjs +1 -1
  294. package/dist/typewriter.js +1 -1
  295. package/dist/{typography-BhCrqK_b.cjs → typography-Bl16hNlw.cjs} +2 -2
  296. package/dist/{typography-BhCrqK_b.cjs.map → typography-Bl16hNlw.cjs.map} +1 -1
  297. package/dist/{typography-DYCOngD7.js → typography-VYWV4CaJ.js} +2 -2
  298. package/dist/{typography-DYCOngD7.js.map → typography-VYWV4CaJ.js.map} +1 -1
  299. package/dist/typography.cjs +1 -1
  300. package/dist/typography.js +1 -1
  301. package/dist/utils.cjs +1 -1
  302. package/dist/utils.js +6 -4
  303. package/dist/utils.js.map +1 -1
  304. package/package.json +1 -1
  305. package/types/src/notification/index.d.ts +2 -0
  306. package/types/src/notification/notification-container.d.ts +3 -0
  307. package/types/src/notification/notification-service.d.ts +19 -0
  308. package/types/src/notification/notification.d.ts +2 -0
  309. package/types/src/notification/notify.d.ts +100 -0
  310. package/types/src/utils/index.d.ts +1 -0
  311. package/types/src/utils/number.d.ts +107 -0
  312. package/dist/notification-service-B6nHqzq5.cjs +0 -141
  313. package/dist/notification-service-B6nHqzq5.cjs.map +0 -1
  314. package/dist/notification-service-L_h9_d4v.js.map +0 -1
  315. package/dist/tailwind.mixin-CaIkmP6j.js +0 -43
  316. package/dist/tailwind.mixin-DVKI3qb9.cjs +0 -2
@@ -1,79 +1,192 @@
1
1
  # Schmancy Notification - AI Reference
2
2
 
3
+ ## Core Notification Service
4
+
3
5
  ```js
4
- // Notification Service API
5
- import { $notification } from '@mhmo91/schmancy';
6
+ import { $notify } from '@mhmo91/schmancy'
6
7
 
7
8
  // Display notification methods
8
- $notification.info(message?, options?) -> string // Returns notification ID
9
- $notification.success(message?, options?) -> string
10
- $notification.warning(message?, options?) -> string
11
- $notification.error(message?, options?) -> string
9
+ $notify.info(message?, options?) -> string // Returns notification ID
10
+ $notify.success(message?, options?) -> string
11
+ $notify.warning(message?, options?) -> string
12
+ $notify.error(message?, options?) -> string
12
13
 
13
14
  // Custom notification
14
- $notification.notify({
15
+ $notify.show({
15
16
  message: string,
16
17
  type?: 'info'|'success'|'warning'|'error',
17
18
  title?: string,
18
- duration?: number, // milliseconds, default 1000 (1 second)
19
+ duration?: number, // milliseconds, default 1000
19
20
  closable?: boolean, // default true
20
21
  playSound?: boolean, // default true
22
+ showProgress?: boolean, // show progress bar
21
23
  id?: string // custom ID
22
- }) -> string // Returns notification ID
24
+ }) -> string
25
+
26
+ // Dismiss notifications
27
+ $notify.dismiss(id?) // Dismisses specific notification or latest if no ID
28
+
29
+ // Update notification content
30
+ $notify.update(id, options) // Update existing notification
31
+
32
+ // Persistent notification
33
+ $notify.persistent(message, options) // Won't auto-dismiss (duration: 0)
34
+
35
+ // Custom duration
36
+ $notify.customDuration(message, duration, options)
37
+ ```
38
+
39
+ ## API Integration with notify()
40
+
41
+ The `notify()` operator wraps observables with automatic notification lifecycle management.
42
+
43
+ ```js
44
+ import { notify } from '@mhmo91/schmancy'
45
+
46
+ // Basic usage - minimal configuration
47
+ someApiCall().pipe(
48
+ notify({
49
+ loadingMessage: 'Loading data...',
50
+ successMessage: 'Data loaded!',
51
+ errorMessage: 'Failed to load'
52
+ })
53
+ ).subscribe()
54
+
55
+ // With custom durations
56
+ saveData().pipe(
57
+ notify({
58
+ loadingMessage: 'Saving...',
59
+ successMessage: 'Saved!',
60
+ successDuration: 5000, // Success stays 5 seconds
61
+ errorMessage: 'Save failed',
62
+ errorDuration: 0 // Error is persistent
63
+ })
64
+ ).subscribe()
65
+
66
+ // Full configuration
67
+ uploadFile().pipe(
68
+ notify({
69
+ // Loading state
70
+ loadingMessage: 'Uploading file...',
71
+ loadingType: 'info',
72
+
73
+ // Success state
74
+ successMessage: 'Upload complete!',
75
+ successType: 'success',
76
+ successDuration: 3000,
77
+
78
+ // Error state
79
+ errorMessage: (err) => `Upload failed: ${err.message}`,
80
+ errorType: 'error',
81
+ errorDuration: 10000,
82
+
83
+ // Options
84
+ autoDismissLoading: true
85
+ })
86
+ ).subscribe()
87
+
88
+ // With progress tracking
89
+ // Automatically detects { progress: number } or { loaded, total } in emissions
90
+ fileUpload().pipe(
91
+ notify({
92
+ loadingMessage: 'Uploading...', // Updates to "Uploading... (50%)"
93
+ successMessage: 'Upload complete!',
94
+ errorMessage: 'Upload failed'
95
+ })
96
+ ).subscribe()
97
+ ```
23
98
 
24
- // Notification Container Component
99
+ ### notify() Options
100
+
101
+ | Option | Type | Description |
102
+ |--------|------|-------------|
103
+ | `loadingMessage` | string | Message during loading |
104
+ | `loadingType` | NotificationType | Type for loading notification |
105
+ | `successMessage` | string | Message on success |
106
+ | `successType` | NotificationType | Type for success notification |
107
+ | `successDuration` | number | Duration for success (ms, 0 = persistent) |
108
+ | `errorMessage` | string \| (err) => string | Message on error |
109
+ | `errorType` | NotificationType | Type for error notification |
110
+ | `errorDuration` | number | Duration for error (ms, 0 = persistent) |
111
+ | `autoDismissLoading` | boolean | Auto-dismiss loading on complete |
112
+
113
+ ## Components
114
+
115
+ ### Notification Container
116
+
117
+ ```html
25
118
  <sch-notification-container
26
119
  position="top-right|top-left|bottom-right|bottom-left|top-center|bottom-center"
27
- max-visible-notifications="2" // Max number shown at once (default: 2)
28
- play-sound="true|false" // Enable/disable sounds (default: false)
29
- audio-volume="0.1"> // Volume level 0-1 (default: 0.1)
120
+ max-visible-notifications="2"
121
+ play-sound="true|false"
122
+ audio-volume="0.1">
30
123
  </sch-notification-container>
124
+ ```
31
125
 
32
- // Individual Notification Component (used internally)
126
+ ### Individual Notification (used internally)
127
+
128
+ ```html
33
129
  <sch-notification
34
130
  title="Title"
35
131
  message="Message text"
36
132
  type="info|success|warning|error"
37
- duration="5000" // Auto-close after ms (0 = no auto-close)
133
+ duration="5000"
38
134
  closable="true"
39
135
  play-sound="true"
40
- @close> // Fired when notification closes
136
+ show-progress="false"
137
+ @close>
41
138
  </sch-notification>
139
+ ```
42
140
 
43
- // Examples
44
- // Basic usage
45
- $notification.success("Operation completed successfully");
141
+ ## Examples
46
142
 
47
- // Without message (just icon)
48
- $notification.success();
143
+ ```js
144
+ // Basic notifications
145
+ $notify.success("Operation completed")
146
+ $notify.error("Failed to save", { duration: 5000 })
147
+ $notify.info() // Just icon, no message
49
148
 
50
- // With options
51
- $notification.error("Failed to save changes", {
52
- title: "Error",
53
- duration: 10000,
54
- closable: true
55
- });
149
+ // Persistent notification
150
+ const id = $notify.persistent("Processing...")
151
+ // Later: $notify.dismiss(id)
56
152
 
57
- // Custom notification
58
- $notification.notify({
59
- type: "info",
60
- message: "Custom message",
61
- title: "Information",
62
- duration: 0, // won't auto-close
63
- playSound: false
64
- });
65
-
66
- // Programmatic control
67
- const notificationId = $notification.info("Processing...", { duration: 0 });
68
- // Later, to remove it:
69
- const container = document.querySelector('sch-notification-container');
70
- container.removeNotification(notificationId);
71
-
72
- // Setup notification container
73
- // Add this once in your app layout:
153
+ // API with loading state
154
+ fetchData().pipe(
155
+ notify({
156
+ loadingMessage: 'Fetching...',
157
+ successMessage: 'Data loaded!',
158
+ errorMessage: 'Failed'
159
+ })
160
+ ).subscribe()
161
+
162
+ // File upload with progress
163
+ upload(file).pipe(
164
+ notify({
165
+ loadingMessage: 'Uploading file...',
166
+ successMessage: 'Upload complete!',
167
+ successDuration: 3000,
168
+ errorMessage: (err) => `Upload failed: ${err.message}`,
169
+ errorDuration: 0 // Persistent error
170
+ })
171
+ ).subscribe()
172
+ ```
173
+
174
+ ## Setup
175
+
176
+ Add the notification container once in your app layout:
177
+
178
+ ```html
74
179
  <sch-notification-container
75
180
  position="top-right"
76
181
  max-visible-notifications="3"
77
182
  play-sound="true">
78
183
  </sch-notification-container>
79
- ```
184
+ ```
185
+
186
+ ## Progress Indication
187
+
188
+ - Notifications automatically show a progress bar when `duration > 0` (countdown)
189
+ - When using `notify()` operator, shows indeterminate progress during loading
190
+ - Detects progress in observable emissions:
191
+ - `{ progress: 50 }` - Shows "Loading... (50%)"
192
+ - `{ loaded: 500, total: 1000 }` - Shows "Loading... (50%)"
@@ -1,79 +1,192 @@
1
1
  # Schmancy Notification - AI Reference
2
2
 
3
+ ## Core Notification Service
4
+
3
5
  ```js
4
- // Notification Service API
5
- import { $notification } from '@mhmo91/schmancy';
6
+ import { $notify } from '@mhmo91/schmancy'
6
7
 
7
8
  // Display notification methods
8
- $notification.info(message?, options?) -> string // Returns notification ID
9
- $notification.success(message?, options?) -> string
10
- $notification.warning(message?, options?) -> string
11
- $notification.error(message?, options?) -> string
9
+ $notify.info(message?, options?) -> string // Returns notification ID
10
+ $notify.success(message?, options?) -> string
11
+ $notify.warning(message?, options?) -> string
12
+ $notify.error(message?, options?) -> string
12
13
 
13
14
  // Custom notification
14
- $notification.notify({
15
+ $notify.show({
15
16
  message: string,
16
17
  type?: 'info'|'success'|'warning'|'error',
17
18
  title?: string,
18
- duration?: number, // milliseconds, default 1000 (1 second)
19
+ duration?: number, // milliseconds, default 1000
19
20
  closable?: boolean, // default true
20
21
  playSound?: boolean, // default true
22
+ showProgress?: boolean, // show progress bar
21
23
  id?: string // custom ID
22
- }) -> string // Returns notification ID
24
+ }) -> string
25
+
26
+ // Dismiss notifications
27
+ $notify.dismiss(id?) // Dismisses specific notification or latest if no ID
28
+
29
+ // Update notification content
30
+ $notify.update(id, options) // Update existing notification
31
+
32
+ // Persistent notification
33
+ $notify.persistent(message, options) // Won't auto-dismiss (duration: 0)
34
+
35
+ // Custom duration
36
+ $notify.customDuration(message, duration, options)
37
+ ```
38
+
39
+ ## API Integration with notify()
40
+
41
+ The `notify()` operator wraps observables with automatic notification lifecycle management.
42
+
43
+ ```js
44
+ import { notify } from '@mhmo91/schmancy'
45
+
46
+ // Basic usage - minimal configuration
47
+ someApiCall().pipe(
48
+ notify({
49
+ loadingMessage: 'Loading data...',
50
+ successMessage: 'Data loaded!',
51
+ errorMessage: 'Failed to load'
52
+ })
53
+ ).subscribe()
54
+
55
+ // With custom durations
56
+ saveData().pipe(
57
+ notify({
58
+ loadingMessage: 'Saving...',
59
+ successMessage: 'Saved!',
60
+ successDuration: 5000, // Success stays 5 seconds
61
+ errorMessage: 'Save failed',
62
+ errorDuration: 0 // Error is persistent
63
+ })
64
+ ).subscribe()
65
+
66
+ // Full configuration
67
+ uploadFile().pipe(
68
+ notify({
69
+ // Loading state
70
+ loadingMessage: 'Uploading file...',
71
+ loadingType: 'info',
72
+
73
+ // Success state
74
+ successMessage: 'Upload complete!',
75
+ successType: 'success',
76
+ successDuration: 3000,
77
+
78
+ // Error state
79
+ errorMessage: (err) => `Upload failed: ${err.message}`,
80
+ errorType: 'error',
81
+ errorDuration: 10000,
82
+
83
+ // Options
84
+ autoDismissLoading: true
85
+ })
86
+ ).subscribe()
87
+
88
+ // With progress tracking
89
+ // Automatically detects { progress: number } or { loaded, total } in emissions
90
+ fileUpload().pipe(
91
+ notify({
92
+ loadingMessage: 'Uploading...', // Updates to "Uploading... (50%)"
93
+ successMessage: 'Upload complete!',
94
+ errorMessage: 'Upload failed'
95
+ })
96
+ ).subscribe()
97
+ ```
23
98
 
24
- // Notification Container Component
99
+ ### notify() Options
100
+
101
+ | Option | Type | Description |
102
+ |--------|------|-------------|
103
+ | `loadingMessage` | string | Message during loading |
104
+ | `loadingType` | NotificationType | Type for loading notification |
105
+ | `successMessage` | string | Message on success |
106
+ | `successType` | NotificationType | Type for success notification |
107
+ | `successDuration` | number | Duration for success (ms, 0 = persistent) |
108
+ | `errorMessage` | string \| (err) => string | Message on error |
109
+ | `errorType` | NotificationType | Type for error notification |
110
+ | `errorDuration` | number | Duration for error (ms, 0 = persistent) |
111
+ | `autoDismissLoading` | boolean | Auto-dismiss loading on complete |
112
+
113
+ ## Components
114
+
115
+ ### Notification Container
116
+
117
+ ```html
25
118
  <sch-notification-container
26
119
  position="top-right|top-left|bottom-right|bottom-left|top-center|bottom-center"
27
- max-visible-notifications="2" // Max number shown at once (default: 2)
28
- play-sound="true|false" // Enable/disable sounds (default: false)
29
- audio-volume="0.1"> // Volume level 0-1 (default: 0.1)
120
+ max-visible-notifications="2"
121
+ play-sound="true|false"
122
+ audio-volume="0.1">
30
123
  </sch-notification-container>
124
+ ```
31
125
 
32
- // Individual Notification Component (used internally)
126
+ ### Individual Notification (used internally)
127
+
128
+ ```html
33
129
  <sch-notification
34
130
  title="Title"
35
131
  message="Message text"
36
132
  type="info|success|warning|error"
37
- duration="5000" // Auto-close after ms (0 = no auto-close)
133
+ duration="5000"
38
134
  closable="true"
39
135
  play-sound="true"
40
- @close> // Fired when notification closes
136
+ show-progress="false"
137
+ @close>
41
138
  </sch-notification>
139
+ ```
42
140
 
43
- // Examples
44
- // Basic usage
45
- $notification.success("Operation completed successfully");
141
+ ## Examples
46
142
 
47
- // Without message (just icon)
48
- $notification.success();
143
+ ```js
144
+ // Basic notifications
145
+ $notify.success("Operation completed")
146
+ $notify.error("Failed to save", { duration: 5000 })
147
+ $notify.info() // Just icon, no message
49
148
 
50
- // With options
51
- $notification.error("Failed to save changes", {
52
- title: "Error",
53
- duration: 10000,
54
- closable: true
55
- });
149
+ // Persistent notification
150
+ const id = $notify.persistent("Processing...")
151
+ // Later: $notify.dismiss(id)
56
152
 
57
- // Custom notification
58
- $notification.notify({
59
- type: "info",
60
- message: "Custom message",
61
- title: "Information",
62
- duration: 0, // won't auto-close
63
- playSound: false
64
- });
65
-
66
- // Programmatic control
67
- const notificationId = $notification.info("Processing...", { duration: 0 });
68
- // Later, to remove it:
69
- const container = document.querySelector('sch-notification-container');
70
- container.removeNotification(notificationId);
71
-
72
- // Setup notification container
73
- // Add this once in your app layout:
153
+ // API with loading state
154
+ fetchData().pipe(
155
+ notify({
156
+ loadingMessage: 'Fetching...',
157
+ successMessage: 'Data loaded!',
158
+ errorMessage: 'Failed'
159
+ })
160
+ ).subscribe()
161
+
162
+ // File upload with progress
163
+ upload(file).pipe(
164
+ notify({
165
+ loadingMessage: 'Uploading file...',
166
+ successMessage: 'Upload complete!',
167
+ successDuration: 3000,
168
+ errorMessage: (err) => `Upload failed: ${err.message}`,
169
+ errorDuration: 0 // Persistent error
170
+ })
171
+ ).subscribe()
172
+ ```
173
+
174
+ ## Setup
175
+
176
+ Add the notification container once in your app layout:
177
+
178
+ ```html
74
179
  <sch-notification-container
75
180
  position="top-right"
76
181
  max-visible-notifications="3"
77
182
  play-sound="true">
78
183
  </sch-notification-container>
79
- ```
184
+ ```
185
+
186
+ ## Progress Indication
187
+
188
+ - Notifications automatically show a progress bar when `duration > 0` (countdown)
189
+ - When using `notify()` operator, shows indeterminate progress during loading
190
+ - Detects progress in observable emissions:
191
+ - `{ progress: 50 }` - Shows "Loading... (50%)"
192
+ - `{ loaded: 500, total: 1000 }` - Shows "Loading... (50%)"
@@ -1,4 +1,4 @@
1
- "use strict";const e=require("rxjs");require("lit/directives/class-map.js"),require("lit/directives/style-map.js");const h=require("./litElement.mixin-B01R2oT7.cjs");require("./tailwind.mixin-DVKI3qb9.cjs");const r=require("lit/decorators.js"),c=require("lit");var d=Object.defineProperty,u=Object.getOwnPropertyDescriptor,s=(i,a,p,n)=>{for(var l,o=n>1?void 0:n?u(a,p):a,y=i.length-1;y>=0;y--)(l=i[y])&&(o=(n?l(a,p,o):l(o))||o);return n&&o&&d(a,p,o),o};let t=class extends h.$LitElement(c.css`
1
+ "use strict";const e=require("rxjs");require("lit/directives/class-map.js"),require("lit/directives/style-map.js");const h=require("./litElement.mixin-rH8JULZZ.cjs");require("./tailwind.mixin-Dq2ayAFp.cjs");const r=require("lit/decorators.js"),c=require("lit");var d=Object.defineProperty,u=Object.getOwnPropertyDescriptor,s=(i,a,p,n)=>{for(var l,o=n>1?void 0:n?u(a,p):a,y=i.length-1;y>=0;y--)(l=i[y])&&(o=(n?l(a,p,o):l(o))||o);return n&&o&&d(a,p,o),o};let t=class extends h.$LitElement(c.css`
2
2
  :host {
3
3
  font-family: inherit;
4
4
  display: block;
@@ -34,4 +34,4 @@
34
34
  </span>
35
35
  </span>
36
36
  `}};s([r.property({type:String})],t.prototype,"ease",2),s([r.property({type:Number})],t.prototype,"delay",2),s([r.property({type:Number})],t.prototype,"stagger",2),s([r.property({type:Number})],t.prototype,"duration",2),s([r.property({type:Array})],t.prototype,"scale",2),s([r.property({type:Array})],t.prototype,"opacity",2),s([r.property({type:Array})],t.prototype,"translateX",2),s([r.property({type:Array})],t.prototype,"translateY",2),s([r.property({type:Array})],t.prototype,"translateZ",2),s([r.property({type:Array})],t.prototype,"rotateZ",2),s([r.property({type:Boolean})],t.prototype,"resetOnScroll",2),s([r.queryAssignedNodes()],t.prototype,"defaultSlot",2),s([r.query(".letters")],t.prototype,"letters",2),s([r.query(".ml7")],t.prototype,"ml7",2),t=s([r.customElement("schmancy-animated-text")],t);
37
- //# sourceMappingURL=animated-text-CtXY3MHV.cjs.map
37
+ //# sourceMappingURL=animated-text-DB1In3Jz.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"animated-text-CtXY3MHV.cjs","sources":["../src/animated-text/animated-text.ts"],"sourcesContent":["// Removed: import { createTimeline, stagger } from '@packages/anime-beta-master'\nimport { $LitElement } from '@mixins/index'\nimport { css, html } from 'lit'\nimport { customElement, property, query, queryAssignedNodes } from 'lit/decorators.js'\nimport {\n\tconcat,\n\tdistinctUntilChanged,\n\tfilter,\n\tfromEvent,\n\tinterval,\n\tmap,\n\tstartWith,\n\ttake,\n\ttap,\n\tthrottleTime,\n} from 'rxjs'\n\n/**\n * @element schmancy-animated-text\n * Inspired by https://tobiasahlin.com/moving-letters/#1\n */\n@customElement('schmancy-animated-text')\nexport default class SchmancyAnimatedText extends $LitElement(css`\n\t:host {\n\t\tfont-family: inherit;\n\t\tdisplay: block;\n\t}\n\t.ml7 {\n\t\tposition: relative;\n\t\tdisplay: flex;\n\t}\n\t.ml7 .text-wrapper {\n\t\tposition: relative;\n\t\tdisplay: inline-block;\n\t\toverflow: hidden;\n\t}\n\t.ml7 .letter {\n\t\ttransform-origin: 0 100%;\n\t\tdisplay: inline-block;\n\t\topacity: 0;\n\t}\n`) {\n\t@property({ type: String }) ease = 'outExpo' // not a built-in string for Web Animations\n\t@property({ type: Number }) delay = 0\n\t@property({ type: Number }) stagger = 50\n\t@property({ type: Number }) duration = 750\n\t@property({ type: Array }) scale = [0, 1]\n\t@property({ type: Array }) opacity = [0, 1]\n\t@property({ type: Array }) translateX = ['0.55em', '0em']\n\t@property({ type: Array }) translateY = ['1.1em', '0em']\n\t@property({ type: Array }) translateZ = [0, 0]\n\t@property({ type: Array }) rotateZ = [180, 0]\n\t@property({ type: Boolean }) resetOnScroll = true\n\n\t@queryAssignedNodes() defaultSlot!: HTMLElement[]\n\t@query('.letters') letters!: HTMLElement\n\t@query('.ml7') ml7!: HTMLElement\n\n\t// Function to check if an element is in the viewport\n\tisInViewport(element: HTMLElement) {\n\t\tconst rect = element.getBoundingClientRect()\n\t\treturn (\n\t\t\trect.top >= 0 &&\n\t\t\trect.left >= 0 &&\n\t\t\trect.bottom <= (window.innerHeight || document.documentElement.clientHeight) &&\n\t\t\trect.right <= (window.innerWidth || document.documentElement.clientWidth)\n\t\t)\n\t}\n\n\tasync firstUpdated() {\n\t\t// Split the text into <span class=\"letter\"> ... </span> elements\n\t\tthis.letters.innerHTML = this.defaultSlot[0].textContent!.replace(/\\S/g, `<span class=\"letter\">$&</span>`)\n\n\t\t// Observe viewport + initial readiness\n\t\tconcat(\n\t\t\t// 1) Wait until the element is rendered (width/height > 0)\n\t\t\tinterval(10).pipe(\n\t\t\t\tstartWith(true),\n\t\t\t\tfilter(() => {\n\t\t\t\t\tconst rect = this.getBoundingClientRect()\n\t\t\t\t\treturn rect.width > 0 && rect.height > 0\n\t\t\t\t}),\n\t\t\t\ttake(1),\n\t\t\t),\n\t\t\t// 2) Then handle scroll events, throttled\n\t\t\tfromEvent(window, 'scroll').pipe(\n\t\t\t\tthrottleTime(0, undefined, {\n\t\t\t\t\tleading: true,\n\t\t\t\t\ttrailing: true,\n\t\t\t\t}),\n\t\t\t\tstartWith(true),\n\t\t\t\tmap(() => this.isInViewport(this)),\n\t\t\t\tdistinctUntilChanged(),\n\t\t\t\ttap(inViewport => {\n\t\t\t\t\t// If leaving viewport and `resetOnScroll` is true, reset letters to opacity 0\n\t\t\t\t\tif (!inViewport && this.resetOnScroll) {\n\t\t\t\t\t\tArray.from(this.letters.children).forEach((letter: HTMLElement) => {\n\t\t\t\t\t\t\tletter.style.opacity = '0'\n\t\t\t\t\t\t})\n\t\t\t\t\t}\n\t\t\t\t}),\n\t\t\t\tfilter(isInViewport => isInViewport),\n\t\t\t\t// If resetOnScroll = false, animate only the first time inView. If true, repeat.\n\t\t\t\tthis.resetOnScroll ? tap() : take(1),\n\t\t\t\ttap({\n\t\t\t\t\tnext: () => {\n\t\t\t\t\t\t// Animate letters with the native Web Animations API\n\t\t\t\t\t\tconst letters = this.shadowRoot!.querySelectorAll<HTMLElement>('.ml7 .letter')\n\n\t\t\t\t\t\tletters.forEach((letter, i) => {\n\t\t\t\t\t\t\t// Combine all transforms into one CSS transform string\n\t\t\t\t\t\t\t// From\n\t\t\t\t\t\t\tconst fromTransform = `\n translate3d(${this.translateX[0]}, ${this.translateY[0]}, ${this.translateZ[0]}px)\n rotateZ(${this.rotateZ[0]}deg)\n scale(${this.scale[0]})\n `\n\t\t\t\t\t\t\t// To\n\t\t\t\t\t\t\tconst toTransform = `\n translate3d(${this.translateX[1]}, ${this.translateY[1]}, ${this.translateZ[1]}px)\n rotateZ(${this.rotateZ[1]}deg)\n scale(${this.scale[1]})\n `\n\t\t\t\t\t\t\t// Approximate `outExpo` or pick a standard easing (like 'ease-out'):\n\t\t\t\t\t\t\t// outExpo often approximated by cubic-bezier(0.19, 1, 0.22, 1)\n\t\t\t\t\t\t\tconst easingMap: Record<string, string> = {\n\t\t\t\t\t\t\t\toutExpo: 'cubic-bezier(0.19, 1, 0.22, 1)',\n\t\t\t\t\t\t\t\t// add more if you want\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tconst keyframes: Keyframe[] = [\n\t\t\t\t\t\t\t\t{ transform: fromTransform, opacity: String(this.opacity[0]) },\n\t\t\t\t\t\t\t\t{ transform: toTransform, opacity: String(this.opacity[1]) },\n\t\t\t\t\t\t\t]\n\n\t\t\t\t\t\t\tletter.animate(keyframes, {\n\t\t\t\t\t\t\t\tduration: this.duration,\n\t\t\t\t\t\t\t\teasing: easingMap[this.ease] || 'ease-out',\n\t\t\t\t\t\t\t\tdelay: this.delay + i * this.stagger, // staggered start\n\t\t\t\t\t\t\t\tfill: 'forwards', // so the letters remain visible\n\t\t\t\t\t\t\t})\n\t\t\t\t\t\t})\n\t\t\t\t\t},\n\t\t\t\t}),\n\t\t\t),\n\t\t).subscribe()\n\t}\n\n\trender() {\n\t\treturn html`\n\t\t\t<span class=\"ml7\">\n\t\t\t\t<span class=\"text-wrapper\">\n\t\t\t\t\t<span class=\"letters\">\n\t\t\t\t\t\t<slot></slot>\n\t\t\t\t\t</span>\n\t\t\t\t</span>\n\t\t\t</span>\n\t\t`\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-animated-text': SchmancyAnimatedText\n\t}\n}\n"],"names":["SchmancyAnimatedText","$LitElement","css","constructor","super","arguments","this","ease","delay","stagger","duration","scale","opacity","translateX","translateY","translateZ","rotateZ","resetOnScroll","element","rect","getBoundingClientRect","top","left","bottom","window","innerHeight","document","documentElement","clientHeight","right","innerWidth","clientWidth","firstUpdated","letters","innerHTML","defaultSlot","textContent","replace","concat","interval","pipe","startWith","filter","width","height","take","fromEvent","throttleTime","leading","trailing","map","isInViewport","distinctUntilChanged","tap","inViewport","Array","from","children","forEach","letter","style","next","shadowRoot","querySelectorAll","i","fromTransform","toTransform","keyframes","transform","String","animate","easing","outExpo","fill","subscribe","render","html","__decorateClass","property","type","prototype","Number","Boolean","queryAssignedNodes","query","customElement"],"mappings":"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"}
1
+ {"version":3,"file":"animated-text-DB1In3Jz.cjs","sources":["../src/animated-text/animated-text.ts"],"sourcesContent":["// Removed: import { createTimeline, stagger } from '@packages/anime-beta-master'\nimport { $LitElement } from '@mixins/index'\nimport { css, html } from 'lit'\nimport { customElement, property, query, queryAssignedNodes } from 'lit/decorators.js'\nimport {\n\tconcat,\n\tdistinctUntilChanged,\n\tfilter,\n\tfromEvent,\n\tinterval,\n\tmap,\n\tstartWith,\n\ttake,\n\ttap,\n\tthrottleTime,\n} from 'rxjs'\n\n/**\n * @element schmancy-animated-text\n * Inspired by https://tobiasahlin.com/moving-letters/#1\n */\n@customElement('schmancy-animated-text')\nexport default class SchmancyAnimatedText extends $LitElement(css`\n\t:host {\n\t\tfont-family: inherit;\n\t\tdisplay: block;\n\t}\n\t.ml7 {\n\t\tposition: relative;\n\t\tdisplay: flex;\n\t}\n\t.ml7 .text-wrapper {\n\t\tposition: relative;\n\t\tdisplay: inline-block;\n\t\toverflow: hidden;\n\t}\n\t.ml7 .letter {\n\t\ttransform-origin: 0 100%;\n\t\tdisplay: inline-block;\n\t\topacity: 0;\n\t}\n`) {\n\t@property({ type: String }) ease = 'outExpo' // not a built-in string for Web Animations\n\t@property({ type: Number }) delay = 0\n\t@property({ type: Number }) stagger = 50\n\t@property({ type: Number }) duration = 750\n\t@property({ type: Array }) scale = [0, 1]\n\t@property({ type: Array }) opacity = [0, 1]\n\t@property({ type: Array }) translateX = ['0.55em', '0em']\n\t@property({ type: Array }) translateY = ['1.1em', '0em']\n\t@property({ type: Array }) translateZ = [0, 0]\n\t@property({ type: Array }) rotateZ = [180, 0]\n\t@property({ type: Boolean }) resetOnScroll = true\n\n\t@queryAssignedNodes() defaultSlot!: HTMLElement[]\n\t@query('.letters') letters!: HTMLElement\n\t@query('.ml7') ml7!: HTMLElement\n\n\t// Function to check if an element is in the viewport\n\tisInViewport(element: HTMLElement) {\n\t\tconst rect = element.getBoundingClientRect()\n\t\treturn (\n\t\t\trect.top >= 0 &&\n\t\t\trect.left >= 0 &&\n\t\t\trect.bottom <= (window.innerHeight || document.documentElement.clientHeight) &&\n\t\t\trect.right <= (window.innerWidth || document.documentElement.clientWidth)\n\t\t)\n\t}\n\n\tasync firstUpdated() {\n\t\t// Split the text into <span class=\"letter\"> ... </span> elements\n\t\tthis.letters.innerHTML = this.defaultSlot[0].textContent!.replace(/\\S/g, `<span class=\"letter\">$&</span>`)\n\n\t\t// Observe viewport + initial readiness\n\t\tconcat(\n\t\t\t// 1) Wait until the element is rendered (width/height > 0)\n\t\t\tinterval(10).pipe(\n\t\t\t\tstartWith(true),\n\t\t\t\tfilter(() => {\n\t\t\t\t\tconst rect = this.getBoundingClientRect()\n\t\t\t\t\treturn rect.width > 0 && rect.height > 0\n\t\t\t\t}),\n\t\t\t\ttake(1),\n\t\t\t),\n\t\t\t// 2) Then handle scroll events, throttled\n\t\t\tfromEvent(window, 'scroll').pipe(\n\t\t\t\tthrottleTime(0, undefined, {\n\t\t\t\t\tleading: true,\n\t\t\t\t\ttrailing: true,\n\t\t\t\t}),\n\t\t\t\tstartWith(true),\n\t\t\t\tmap(() => this.isInViewport(this)),\n\t\t\t\tdistinctUntilChanged(),\n\t\t\t\ttap(inViewport => {\n\t\t\t\t\t// If leaving viewport and `resetOnScroll` is true, reset letters to opacity 0\n\t\t\t\t\tif (!inViewport && this.resetOnScroll) {\n\t\t\t\t\t\tArray.from(this.letters.children).forEach((letter: HTMLElement) => {\n\t\t\t\t\t\t\tletter.style.opacity = '0'\n\t\t\t\t\t\t})\n\t\t\t\t\t}\n\t\t\t\t}),\n\t\t\t\tfilter(isInViewport => isInViewport),\n\t\t\t\t// If resetOnScroll = false, animate only the first time inView. If true, repeat.\n\t\t\t\tthis.resetOnScroll ? tap() : take(1),\n\t\t\t\ttap({\n\t\t\t\t\tnext: () => {\n\t\t\t\t\t\t// Animate letters with the native Web Animations API\n\t\t\t\t\t\tconst letters = this.shadowRoot!.querySelectorAll<HTMLElement>('.ml7 .letter')\n\n\t\t\t\t\t\tletters.forEach((letter, i) => {\n\t\t\t\t\t\t\t// Combine all transforms into one CSS transform string\n\t\t\t\t\t\t\t// From\n\t\t\t\t\t\t\tconst fromTransform = `\n translate3d(${this.translateX[0]}, ${this.translateY[0]}, ${this.translateZ[0]}px)\n rotateZ(${this.rotateZ[0]}deg)\n scale(${this.scale[0]})\n `\n\t\t\t\t\t\t\t// To\n\t\t\t\t\t\t\tconst toTransform = `\n translate3d(${this.translateX[1]}, ${this.translateY[1]}, ${this.translateZ[1]}px)\n rotateZ(${this.rotateZ[1]}deg)\n scale(${this.scale[1]})\n `\n\t\t\t\t\t\t\t// Approximate `outExpo` or pick a standard easing (like 'ease-out'):\n\t\t\t\t\t\t\t// outExpo often approximated by cubic-bezier(0.19, 1, 0.22, 1)\n\t\t\t\t\t\t\tconst easingMap: Record<string, string> = {\n\t\t\t\t\t\t\t\toutExpo: 'cubic-bezier(0.19, 1, 0.22, 1)',\n\t\t\t\t\t\t\t\t// add more if you want\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tconst keyframes: Keyframe[] = [\n\t\t\t\t\t\t\t\t{ transform: fromTransform, opacity: String(this.opacity[0]) },\n\t\t\t\t\t\t\t\t{ transform: toTransform, opacity: String(this.opacity[1]) },\n\t\t\t\t\t\t\t]\n\n\t\t\t\t\t\t\tletter.animate(keyframes, {\n\t\t\t\t\t\t\t\tduration: this.duration,\n\t\t\t\t\t\t\t\teasing: easingMap[this.ease] || 'ease-out',\n\t\t\t\t\t\t\t\tdelay: this.delay + i * this.stagger, // staggered start\n\t\t\t\t\t\t\t\tfill: 'forwards', // so the letters remain visible\n\t\t\t\t\t\t\t})\n\t\t\t\t\t\t})\n\t\t\t\t\t},\n\t\t\t\t}),\n\t\t\t),\n\t\t).subscribe()\n\t}\n\n\trender() {\n\t\treturn html`\n\t\t\t<span class=\"ml7\">\n\t\t\t\t<span class=\"text-wrapper\">\n\t\t\t\t\t<span class=\"letters\">\n\t\t\t\t\t\t<slot></slot>\n\t\t\t\t\t</span>\n\t\t\t\t</span>\n\t\t\t</span>\n\t\t`\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-animated-text': SchmancyAnimatedText\n\t}\n}\n"],"names":["SchmancyAnimatedText","$LitElement","css","constructor","super","arguments","this","ease","delay","stagger","duration","scale","opacity","translateX","translateY","translateZ","rotateZ","resetOnScroll","element","rect","getBoundingClientRect","top","left","bottom","window","innerHeight","document","documentElement","clientHeight","right","innerWidth","clientWidth","firstUpdated","letters","innerHTML","defaultSlot","textContent","replace","concat","interval","pipe","startWith","filter","width","height","take","fromEvent","throttleTime","leading","trailing","map","isInViewport","distinctUntilChanged","tap","inViewport","Array","from","children","forEach","letter","style","next","shadowRoot","querySelectorAll","i","fromTransform","toTransform","keyframes","transform","String","animate","easing","outExpo","fill","subscribe","render","html","__decorateClass","property","type","prototype","Number","Boolean","queryAssignedNodes","query","customElement"],"mappings":"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"}
@@ -1,8 +1,8 @@
1
1
  import { concat as u, interval as g, startWith as y, filter as h, take as d, fromEvent as f, throttleTime as w, map as b, distinctUntilChanged as $, tap as c } from "rxjs";
2
2
  import "lit/directives/class-map.js";
3
3
  import "lit/directives/style-map.js";
4
- import { $ as x } from "./litElement.mixin-BH9PTyUD.js";
5
- import "./tailwind.mixin-CaIkmP6j.js";
4
+ import { $ as x } from "./litElement.mixin-sRUdAQbg.js";
5
+ import "./tailwind.mixin-tQQ1rtff.js";
6
6
  import { property as a, queryAssignedNodes as S, query as m, customElement as Z } from "lit/decorators.js";
7
7
  import { css as v, html as A } from "lit";
8
8
  var E = Object.defineProperty, O = Object.getOwnPropertyDescriptor, e = (r, s, n, i) => {
@@ -72,4 +72,4 @@ let t = class extends x(v`
72
72
  }
73
73
  };
74
74
  e([a({ type: String })], t.prototype, "ease", 2), e([a({ type: Number })], t.prototype, "delay", 2), e([a({ type: Number })], t.prototype, "stagger", 2), e([a({ type: Number })], t.prototype, "duration", 2), e([a({ type: Array })], t.prototype, "scale", 2), e([a({ type: Array })], t.prototype, "opacity", 2), e([a({ type: Array })], t.prototype, "translateX", 2), e([a({ type: Array })], t.prototype, "translateY", 2), e([a({ type: Array })], t.prototype, "translateZ", 2), e([a({ type: Array })], t.prototype, "rotateZ", 2), e([a({ type: Boolean })], t.prototype, "resetOnScroll", 2), e([S()], t.prototype, "defaultSlot", 2), e([m(".letters")], t.prototype, "letters", 2), e([m(".ml7")], t.prototype, "ml7", 2), t = e([Z("schmancy-animated-text")], t);
75
- //# sourceMappingURL=animated-text-D26Fv13t.js.map
75
+ //# sourceMappingURL=animated-text-DET7QrLu.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"animated-text-D26Fv13t.js","sources":["../src/animated-text/animated-text.ts"],"sourcesContent":["// Removed: import { createTimeline, stagger } from '@packages/anime-beta-master'\nimport { $LitElement } from '@mixins/index'\nimport { css, html } from 'lit'\nimport { customElement, property, query, queryAssignedNodes } from 'lit/decorators.js'\nimport {\n\tconcat,\n\tdistinctUntilChanged,\n\tfilter,\n\tfromEvent,\n\tinterval,\n\tmap,\n\tstartWith,\n\ttake,\n\ttap,\n\tthrottleTime,\n} from 'rxjs'\n\n/**\n * @element schmancy-animated-text\n * Inspired by https://tobiasahlin.com/moving-letters/#1\n */\n@customElement('schmancy-animated-text')\nexport default class SchmancyAnimatedText extends $LitElement(css`\n\t:host {\n\t\tfont-family: inherit;\n\t\tdisplay: block;\n\t}\n\t.ml7 {\n\t\tposition: relative;\n\t\tdisplay: flex;\n\t}\n\t.ml7 .text-wrapper {\n\t\tposition: relative;\n\t\tdisplay: inline-block;\n\t\toverflow: hidden;\n\t}\n\t.ml7 .letter {\n\t\ttransform-origin: 0 100%;\n\t\tdisplay: inline-block;\n\t\topacity: 0;\n\t}\n`) {\n\t@property({ type: String }) ease = 'outExpo' // not a built-in string for Web Animations\n\t@property({ type: Number }) delay = 0\n\t@property({ type: Number }) stagger = 50\n\t@property({ type: Number }) duration = 750\n\t@property({ type: Array }) scale = [0, 1]\n\t@property({ type: Array }) opacity = [0, 1]\n\t@property({ type: Array }) translateX = ['0.55em', '0em']\n\t@property({ type: Array }) translateY = ['1.1em', '0em']\n\t@property({ type: Array }) translateZ = [0, 0]\n\t@property({ type: Array }) rotateZ = [180, 0]\n\t@property({ type: Boolean }) resetOnScroll = true\n\n\t@queryAssignedNodes() defaultSlot!: HTMLElement[]\n\t@query('.letters') letters!: HTMLElement\n\t@query('.ml7') ml7!: HTMLElement\n\n\t// Function to check if an element is in the viewport\n\tisInViewport(element: HTMLElement) {\n\t\tconst rect = element.getBoundingClientRect()\n\t\treturn (\n\t\t\trect.top >= 0 &&\n\t\t\trect.left >= 0 &&\n\t\t\trect.bottom <= (window.innerHeight || document.documentElement.clientHeight) &&\n\t\t\trect.right <= (window.innerWidth || document.documentElement.clientWidth)\n\t\t)\n\t}\n\n\tasync firstUpdated() {\n\t\t// Split the text into <span class=\"letter\"> ... </span> elements\n\t\tthis.letters.innerHTML = this.defaultSlot[0].textContent!.replace(/\\S/g, `<span class=\"letter\">$&</span>`)\n\n\t\t// Observe viewport + initial readiness\n\t\tconcat(\n\t\t\t// 1) Wait until the element is rendered (width/height > 0)\n\t\t\tinterval(10).pipe(\n\t\t\t\tstartWith(true),\n\t\t\t\tfilter(() => {\n\t\t\t\t\tconst rect = this.getBoundingClientRect()\n\t\t\t\t\treturn rect.width > 0 && rect.height > 0\n\t\t\t\t}),\n\t\t\t\ttake(1),\n\t\t\t),\n\t\t\t// 2) Then handle scroll events, throttled\n\t\t\tfromEvent(window, 'scroll').pipe(\n\t\t\t\tthrottleTime(0, undefined, {\n\t\t\t\t\tleading: true,\n\t\t\t\t\ttrailing: true,\n\t\t\t\t}),\n\t\t\t\tstartWith(true),\n\t\t\t\tmap(() => this.isInViewport(this)),\n\t\t\t\tdistinctUntilChanged(),\n\t\t\t\ttap(inViewport => {\n\t\t\t\t\t// If leaving viewport and `resetOnScroll` is true, reset letters to opacity 0\n\t\t\t\t\tif (!inViewport && this.resetOnScroll) {\n\t\t\t\t\t\tArray.from(this.letters.children).forEach((letter: HTMLElement) => {\n\t\t\t\t\t\t\tletter.style.opacity = '0'\n\t\t\t\t\t\t})\n\t\t\t\t\t}\n\t\t\t\t}),\n\t\t\t\tfilter(isInViewport => isInViewport),\n\t\t\t\t// If resetOnScroll = false, animate only the first time inView. If true, repeat.\n\t\t\t\tthis.resetOnScroll ? tap() : take(1),\n\t\t\t\ttap({\n\t\t\t\t\tnext: () => {\n\t\t\t\t\t\t// Animate letters with the native Web Animations API\n\t\t\t\t\t\tconst letters = this.shadowRoot!.querySelectorAll<HTMLElement>('.ml7 .letter')\n\n\t\t\t\t\t\tletters.forEach((letter, i) => {\n\t\t\t\t\t\t\t// Combine all transforms into one CSS transform string\n\t\t\t\t\t\t\t// From\n\t\t\t\t\t\t\tconst fromTransform = `\n translate3d(${this.translateX[0]}, ${this.translateY[0]}, ${this.translateZ[0]}px)\n rotateZ(${this.rotateZ[0]}deg)\n scale(${this.scale[0]})\n `\n\t\t\t\t\t\t\t// To\n\t\t\t\t\t\t\tconst toTransform = `\n translate3d(${this.translateX[1]}, ${this.translateY[1]}, ${this.translateZ[1]}px)\n rotateZ(${this.rotateZ[1]}deg)\n scale(${this.scale[1]})\n `\n\t\t\t\t\t\t\t// Approximate `outExpo` or pick a standard easing (like 'ease-out'):\n\t\t\t\t\t\t\t// outExpo often approximated by cubic-bezier(0.19, 1, 0.22, 1)\n\t\t\t\t\t\t\tconst easingMap: Record<string, string> = {\n\t\t\t\t\t\t\t\toutExpo: 'cubic-bezier(0.19, 1, 0.22, 1)',\n\t\t\t\t\t\t\t\t// add more if you want\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tconst keyframes: Keyframe[] = [\n\t\t\t\t\t\t\t\t{ transform: fromTransform, opacity: String(this.opacity[0]) },\n\t\t\t\t\t\t\t\t{ transform: toTransform, opacity: String(this.opacity[1]) },\n\t\t\t\t\t\t\t]\n\n\t\t\t\t\t\t\tletter.animate(keyframes, {\n\t\t\t\t\t\t\t\tduration: this.duration,\n\t\t\t\t\t\t\t\teasing: easingMap[this.ease] || 'ease-out',\n\t\t\t\t\t\t\t\tdelay: this.delay + i * this.stagger, // staggered start\n\t\t\t\t\t\t\t\tfill: 'forwards', // so the letters remain visible\n\t\t\t\t\t\t\t})\n\t\t\t\t\t\t})\n\t\t\t\t\t},\n\t\t\t\t}),\n\t\t\t),\n\t\t).subscribe()\n\t}\n\n\trender() {\n\t\treturn html`\n\t\t\t<span class=\"ml7\">\n\t\t\t\t<span class=\"text-wrapper\">\n\t\t\t\t\t<span class=\"letters\">\n\t\t\t\t\t\t<slot></slot>\n\t\t\t\t\t</span>\n\t\t\t\t</span>\n\t\t\t</span>\n\t\t`\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-animated-text': SchmancyAnimatedText\n\t}\n}\n"],"names":["SchmancyAnimatedText","$LitElement","css","constructor","super","arguments","this","ease","delay","stagger","duration","scale","opacity","translateX","translateY","translateZ","rotateZ","resetOnScroll","element","rect","getBoundingClientRect","top","left","bottom","window","innerHeight","document","documentElement","clientHeight","right","innerWidth","clientWidth","firstUpdated","letters","innerHTML","defaultSlot","textContent","replace","concat","interval","pipe","startWith","filter","width","height","take","fromEvent","throttleTime","leading","trailing","map","isInViewport","distinctUntilChanged","tap","inViewport","Array","from","children","forEach","letter","style","next","shadowRoot","querySelectorAll","i","fromTransform","toTransform","keyframes","transform","String","animate","easing","outExpo","fill","subscribe","render","html","__decorateClass","property","type","prototype","Number","Boolean","queryAssignedNodes","query","customElement"],"mappings":"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"}
1
+ {"version":3,"file":"animated-text-DET7QrLu.js","sources":["../src/animated-text/animated-text.ts"],"sourcesContent":["// Removed: import { createTimeline, stagger } from '@packages/anime-beta-master'\nimport { $LitElement } from '@mixins/index'\nimport { css, html } from 'lit'\nimport { customElement, property, query, queryAssignedNodes } from 'lit/decorators.js'\nimport {\n\tconcat,\n\tdistinctUntilChanged,\n\tfilter,\n\tfromEvent,\n\tinterval,\n\tmap,\n\tstartWith,\n\ttake,\n\ttap,\n\tthrottleTime,\n} from 'rxjs'\n\n/**\n * @element schmancy-animated-text\n * Inspired by https://tobiasahlin.com/moving-letters/#1\n */\n@customElement('schmancy-animated-text')\nexport default class SchmancyAnimatedText extends $LitElement(css`\n\t:host {\n\t\tfont-family: inherit;\n\t\tdisplay: block;\n\t}\n\t.ml7 {\n\t\tposition: relative;\n\t\tdisplay: flex;\n\t}\n\t.ml7 .text-wrapper {\n\t\tposition: relative;\n\t\tdisplay: inline-block;\n\t\toverflow: hidden;\n\t}\n\t.ml7 .letter {\n\t\ttransform-origin: 0 100%;\n\t\tdisplay: inline-block;\n\t\topacity: 0;\n\t}\n`) {\n\t@property({ type: String }) ease = 'outExpo' // not a built-in string for Web Animations\n\t@property({ type: Number }) delay = 0\n\t@property({ type: Number }) stagger = 50\n\t@property({ type: Number }) duration = 750\n\t@property({ type: Array }) scale = [0, 1]\n\t@property({ type: Array }) opacity = [0, 1]\n\t@property({ type: Array }) translateX = ['0.55em', '0em']\n\t@property({ type: Array }) translateY = ['1.1em', '0em']\n\t@property({ type: Array }) translateZ = [0, 0]\n\t@property({ type: Array }) rotateZ = [180, 0]\n\t@property({ type: Boolean }) resetOnScroll = true\n\n\t@queryAssignedNodes() defaultSlot!: HTMLElement[]\n\t@query('.letters') letters!: HTMLElement\n\t@query('.ml7') ml7!: HTMLElement\n\n\t// Function to check if an element is in the viewport\n\tisInViewport(element: HTMLElement) {\n\t\tconst rect = element.getBoundingClientRect()\n\t\treturn (\n\t\t\trect.top >= 0 &&\n\t\t\trect.left >= 0 &&\n\t\t\trect.bottom <= (window.innerHeight || document.documentElement.clientHeight) &&\n\t\t\trect.right <= (window.innerWidth || document.documentElement.clientWidth)\n\t\t)\n\t}\n\n\tasync firstUpdated() {\n\t\t// Split the text into <span class=\"letter\"> ... </span> elements\n\t\tthis.letters.innerHTML = this.defaultSlot[0].textContent!.replace(/\\S/g, `<span class=\"letter\">$&</span>`)\n\n\t\t// Observe viewport + initial readiness\n\t\tconcat(\n\t\t\t// 1) Wait until the element is rendered (width/height > 0)\n\t\t\tinterval(10).pipe(\n\t\t\t\tstartWith(true),\n\t\t\t\tfilter(() => {\n\t\t\t\t\tconst rect = this.getBoundingClientRect()\n\t\t\t\t\treturn rect.width > 0 && rect.height > 0\n\t\t\t\t}),\n\t\t\t\ttake(1),\n\t\t\t),\n\t\t\t// 2) Then handle scroll events, throttled\n\t\t\tfromEvent(window, 'scroll').pipe(\n\t\t\t\tthrottleTime(0, undefined, {\n\t\t\t\t\tleading: true,\n\t\t\t\t\ttrailing: true,\n\t\t\t\t}),\n\t\t\t\tstartWith(true),\n\t\t\t\tmap(() => this.isInViewport(this)),\n\t\t\t\tdistinctUntilChanged(),\n\t\t\t\ttap(inViewport => {\n\t\t\t\t\t// If leaving viewport and `resetOnScroll` is true, reset letters to opacity 0\n\t\t\t\t\tif (!inViewport && this.resetOnScroll) {\n\t\t\t\t\t\tArray.from(this.letters.children).forEach((letter: HTMLElement) => {\n\t\t\t\t\t\t\tletter.style.opacity = '0'\n\t\t\t\t\t\t})\n\t\t\t\t\t}\n\t\t\t\t}),\n\t\t\t\tfilter(isInViewport => isInViewport),\n\t\t\t\t// If resetOnScroll = false, animate only the first time inView. If true, repeat.\n\t\t\t\tthis.resetOnScroll ? tap() : take(1),\n\t\t\t\ttap({\n\t\t\t\t\tnext: () => {\n\t\t\t\t\t\t// Animate letters with the native Web Animations API\n\t\t\t\t\t\tconst letters = this.shadowRoot!.querySelectorAll<HTMLElement>('.ml7 .letter')\n\n\t\t\t\t\t\tletters.forEach((letter, i) => {\n\t\t\t\t\t\t\t// Combine all transforms into one CSS transform string\n\t\t\t\t\t\t\t// From\n\t\t\t\t\t\t\tconst fromTransform = `\n translate3d(${this.translateX[0]}, ${this.translateY[0]}, ${this.translateZ[0]}px)\n rotateZ(${this.rotateZ[0]}deg)\n scale(${this.scale[0]})\n `\n\t\t\t\t\t\t\t// To\n\t\t\t\t\t\t\tconst toTransform = `\n translate3d(${this.translateX[1]}, ${this.translateY[1]}, ${this.translateZ[1]}px)\n rotateZ(${this.rotateZ[1]}deg)\n scale(${this.scale[1]})\n `\n\t\t\t\t\t\t\t// Approximate `outExpo` or pick a standard easing (like 'ease-out'):\n\t\t\t\t\t\t\t// outExpo often approximated by cubic-bezier(0.19, 1, 0.22, 1)\n\t\t\t\t\t\t\tconst easingMap: Record<string, string> = {\n\t\t\t\t\t\t\t\toutExpo: 'cubic-bezier(0.19, 1, 0.22, 1)',\n\t\t\t\t\t\t\t\t// add more if you want\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tconst keyframes: Keyframe[] = [\n\t\t\t\t\t\t\t\t{ transform: fromTransform, opacity: String(this.opacity[0]) },\n\t\t\t\t\t\t\t\t{ transform: toTransform, opacity: String(this.opacity[1]) },\n\t\t\t\t\t\t\t]\n\n\t\t\t\t\t\t\tletter.animate(keyframes, {\n\t\t\t\t\t\t\t\tduration: this.duration,\n\t\t\t\t\t\t\t\teasing: easingMap[this.ease] || 'ease-out',\n\t\t\t\t\t\t\t\tdelay: this.delay + i * this.stagger, // staggered start\n\t\t\t\t\t\t\t\tfill: 'forwards', // so the letters remain visible\n\t\t\t\t\t\t\t})\n\t\t\t\t\t\t})\n\t\t\t\t\t},\n\t\t\t\t}),\n\t\t\t),\n\t\t).subscribe()\n\t}\n\n\trender() {\n\t\treturn html`\n\t\t\t<span class=\"ml7\">\n\t\t\t\t<span class=\"text-wrapper\">\n\t\t\t\t\t<span class=\"letters\">\n\t\t\t\t\t\t<slot></slot>\n\t\t\t\t\t</span>\n\t\t\t\t</span>\n\t\t\t</span>\n\t\t`\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-animated-text': SchmancyAnimatedText\n\t}\n}\n"],"names":["SchmancyAnimatedText","$LitElement","css","constructor","super","arguments","this","ease","delay","stagger","duration","scale","opacity","translateX","translateY","translateZ","rotateZ","resetOnScroll","element","rect","getBoundingClientRect","top","left","bottom","window","innerHeight","document","documentElement","clientHeight","right","innerWidth","clientWidth","firstUpdated","letters","innerHTML","defaultSlot","textContent","replace","concat","interval","pipe","startWith","filter","width","height","take","fromEvent","throttleTime","leading","trailing","map","isInViewport","distinctUntilChanged","tap","inViewport","Array","from","children","forEach","letter","style","next","shadowRoot","querySelectorAll","i","fromTransform","toTransform","keyframes","transform","String","animate","easing","outExpo","fill","subscribe","render","html","__decorateClass","property","type","prototype","Number","Boolean","queryAssignedNodes","query","customElement"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- "use strict";require("./animated-text-CtXY3MHV.cjs");
1
+ "use strict";require("./animated-text-DB1In3Jz.cjs");
2
2
  //# sourceMappingURL=animated-text.cjs.map
@@ -1,2 +1,2 @@
1
- import "./animated-text-D26Fv13t.js";
1
+ import "./animated-text-DET7QrLu.js";
2
2
  //# sourceMappingURL=animated-text.js.map
package/dist/area.cjs CHANGED
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("./area.component-DQ_erV9e.cjs"),e=require("./utils-C9nzOWpR.cjs");exports.FINDING_MORTIES=t.FINDING_MORTIES,exports.HERE_RICKY=t.HERE_RICKY,exports.HISTORY_STRATEGY=t.HISTORY_STRATEGY,Object.defineProperty(exports,"SchmancyArea",{enumerable:!0,get:()=>t.SchmancyArea}),exports.area=t.area,exports.routerHistory=t.routerHistory,exports.buildQueryString=e.buildQueryString,exports.compareActiveRoutes=e.compareActiveRoutes,exports.compareCustomElementConstructors=e.compareCustomElementConstructors,exports.compareRouteActions=e.compareRouteActions,exports.createRouteCacheKey=e.createRouteCacheKey,exports.debounce=e.debounce,exports.decodeRouteState=e.decodeRouteState,exports.deepMerge=e.deepMerge,exports.encodeRouteState=e.encodeRouteState,exports.extractQueryParams=e.extractQueryParams,exports.getTagName=e.getTagName,exports.isObject=e.isObject,exports.normalizeTagName=e.normalizeTagName,exports.sanitizeRouteState=e.sanitizeRouteState;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("./area.component-D3jAVUFN.cjs"),e=require("./utils-C9nzOWpR.cjs");exports.FINDING_MORTIES=t.FINDING_MORTIES,exports.HERE_RICKY=t.HERE_RICKY,exports.HISTORY_STRATEGY=t.HISTORY_STRATEGY,Object.defineProperty(exports,"SchmancyArea",{enumerable:!0,get:()=>t.SchmancyArea}),exports.area=t.area,exports.routerHistory=t.routerHistory,exports.buildQueryString=e.buildQueryString,exports.compareActiveRoutes=e.compareActiveRoutes,exports.compareCustomElementConstructors=e.compareCustomElementConstructors,exports.compareRouteActions=e.compareRouteActions,exports.createRouteCacheKey=e.createRouteCacheKey,exports.debounce=e.debounce,exports.decodeRouteState=e.decodeRouteState,exports.deepMerge=e.deepMerge,exports.encodeRouteState=e.encodeRouteState,exports.extractQueryParams=e.extractQueryParams,exports.getTagName=e.getTagName,exports.isObject=e.isObject,exports.normalizeTagName=e.normalizeTagName,exports.sanitizeRouteState=e.sanitizeRouteState;
2
2
  //# sourceMappingURL=area.cjs.map