@mhmo91/schmancy 0.5.37 → 0.5.38

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (323) hide show
  1. package/ai/boat.md +38 -106
  2. package/dist/ai/boat.md +38 -106
  3. package/dist/{animated-text-Cfs1zx2e.js → animated-text-B6BM8UAR.js} +3 -3
  4. package/dist/{animated-text-Cfs1zx2e.js.map → animated-text-B6BM8UAR.js.map} +1 -1
  5. package/dist/{animated-text-DoLx8YhT.cjs → animated-text-DMLVAWR9.cjs} +2 -2
  6. package/dist/{animated-text-DoLx8YhT.cjs.map → animated-text-DMLVAWR9.cjs.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-A6Xw-dfF.js → area.component-C0i1I-XN.js} +3 -3
  11. package/dist/{area.component-A6Xw-dfF.js.map → area.component-C0i1I-XN.js.map} +1 -1
  12. package/dist/{area.component-DMRF1lD-.cjs → area.component-D630N8ae.cjs} +2 -2
  13. package/dist/{area.component-DMRF1lD-.cjs.map → area.component-D630N8ae.cjs.map} +1 -1
  14. package/dist/area.js +1 -1
  15. package/dist/{autocomplete-C5DIxpTG.js → autocomplete-B8VgSG8j.js} +4 -4
  16. package/dist/{autocomplete-C5DIxpTG.js.map → autocomplete-B8VgSG8j.js.map} +1 -1
  17. package/dist/{autocomplete-DkJqOYTg.cjs → autocomplete-Dz24IUoU.cjs} +2 -2
  18. package/dist/{autocomplete-DkJqOYTg.cjs.map → autocomplete-Dz24IUoU.cjs.map} +1 -1
  19. package/dist/autocomplete.cjs +1 -1
  20. package/dist/autocomplete.js +1 -1
  21. package/dist/{avatar-BmcocEQ4.cjs → avatar-DqZd_LTf.cjs} +4 -4
  22. package/dist/{avatar-BmcocEQ4.cjs.map → avatar-DqZd_LTf.cjs.map} +1 -1
  23. package/dist/{avatar-BDy0wAek.js → avatar-b6tMCYC_.js} +55 -53
  24. package/dist/{avatar-BDy0wAek.js.map → avatar-b6tMCYC_.js.map} +1 -1
  25. package/dist/badge.cjs +1 -1
  26. package/dist/badge.js +1 -1
  27. package/dist/{boat-DumUFcmT.js → boat-CQlfnrN3.js} +81 -93
  28. package/dist/boat-CQlfnrN3.js.map +1 -0
  29. package/dist/boat-CvWXHBGZ.cjs +83 -0
  30. package/dist/boat-CvWXHBGZ.cjs.map +1 -0
  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-CsMLbxBY.cjs → checkbox-BxVFUa5d.cjs} +2 -2
  40. package/dist/{checkbox-CsMLbxBY.cjs.map → checkbox-BxVFUa5d.cjs.map} +1 -1
  41. package/dist/{checkbox-CHG-gT2P.js → checkbox-IXHvFU8T.js} +2 -2
  42. package/dist/{checkbox-CHG-gT2P.js.map → checkbox-IXHvFU8T.js.map} +1 -1
  43. package/dist/checkbox.cjs +1 -1
  44. package/dist/checkbox.js +1 -1
  45. package/dist/chips.cjs +1 -1
  46. package/dist/chips.js +2 -2
  47. package/dist/code-highlight.cjs +1 -1
  48. package/dist/code-highlight.js +1 -1
  49. package/dist/{code-preview-Bp4OemTD.js → code-preview-BckcSzge.js} +2 -2
  50. package/dist/{code-preview-Bp4OemTD.js.map → code-preview-BckcSzge.js.map} +1 -1
  51. package/dist/{code-preview-BgUU7bPR.cjs → code-preview-BtlXrJte.cjs} +2 -2
  52. package/dist/{code-preview-BgUU7bPR.cjs.map → code-preview-BtlXrJte.cjs.map} +1 -1
  53. package/dist/components.cjs +1 -1
  54. package/dist/components.js +1 -1
  55. package/dist/content-drawer.cjs +1 -1
  56. package/dist/content-drawer.js +1 -1
  57. package/dist/{date-range-D_DBil9n.cjs → date-range-CEBvpz9I.cjs} +2 -2
  58. package/dist/{date-range-D_DBil9n.cjs.map → date-range-CEBvpz9I.cjs.map} +1 -1
  59. package/dist/{date-range-BcJ0YN2n.js → date-range-DJlpBhfg.js} +3 -3
  60. package/dist/{date-range-BcJ0YN2n.js.map → date-range-DJlpBhfg.js.map} +1 -1
  61. package/dist/{date-range-inline-Dqxqgu2s.js → date-range-inline-DUkLYZw-.js} +3 -3
  62. package/dist/{date-range-inline-Dqxqgu2s.js.map → date-range-inline-DUkLYZw-.js.map} +1 -1
  63. package/dist/{date-range-inline-DQjOVUxD.cjs → date-range-inline-svKzfEjk.cjs} +2 -2
  64. package/dist/{date-range-inline-DQjOVUxD.cjs.map → date-range-inline-svKzfEjk.cjs.map} +1 -1
  65. package/dist/date-range-inline.cjs +1 -1
  66. package/dist/date-range-inline.js +1 -1
  67. package/dist/date-range.cjs +1 -1
  68. package/dist/date-range.js +1 -1
  69. package/dist/{delay-BbtlKEc4.cjs → delay-dCJupQL7.cjs} +2 -2
  70. package/dist/{delay-BbtlKEc4.cjs.map → delay-dCJupQL7.cjs.map} +1 -1
  71. package/dist/{delay-CC_14mn4.js → delay-zFsG2bgS.js} +2 -2
  72. package/dist/{delay-CC_14mn4.js.map → delay-zFsG2bgS.js.map} +1 -1
  73. package/dist/delay.cjs +1 -1
  74. package/dist/delay.js +1 -1
  75. package/dist/{details-CTdm7rbG.cjs → details-63cgbcG4.cjs} +2 -2
  76. package/dist/{details-CTdm7rbG.cjs.map → details-63cgbcG4.cjs.map} +1 -1
  77. package/dist/{details-dk2hnRIp.js → details-zr1wF8T5.js} +2 -2
  78. package/dist/{details-dk2hnRIp.js.map → details-zr1wF8T5.js.map} +1 -1
  79. package/dist/details.cjs +1 -1
  80. package/dist/details.js +1 -1
  81. package/dist/{dialog-content-BSZ5dwnP.cjs → dialog-content-CCwZGDWl.cjs} +2 -2
  82. package/dist/{dialog-content-BSZ5dwnP.cjs.map → dialog-content-CCwZGDWl.cjs.map} +1 -1
  83. package/dist/{dialog-content-BM-lfqHq.js → dialog-content-D4hLDFG7.js} +3 -3
  84. package/dist/{dialog-content-BM-lfqHq.js.map → dialog-content-D4hLDFG7.js.map} +1 -1
  85. package/dist/dialog.cjs +1 -1
  86. package/dist/dialog.js +1 -1
  87. package/dist/{divider-DgJXEKxB.cjs → divider-BDpbyVks.cjs} +2 -2
  88. package/dist/{divider-DgJXEKxB.cjs.map → divider-BDpbyVks.cjs.map} +1 -1
  89. package/dist/{divider-BWVdeJm1.js → divider-DXh9y_Nv.js} +3 -3
  90. package/dist/{divider-BWVdeJm1.js.map → divider-DXh9y_Nv.js.map} +1 -1
  91. package/dist/divider.cjs +1 -1
  92. package/dist/divider.js +1 -1
  93. package/dist/{dropdown-content-ZAB82v-h.cjs → dropdown-content-DGxquZCA.cjs} +2 -2
  94. package/dist/{dropdown-content-ZAB82v-h.cjs.map → dropdown-content-DGxquZCA.cjs.map} +1 -1
  95. package/dist/{dropdown-content-BgLy9dwU.js → dropdown-content-zM3fWF1d.js} +3 -3
  96. package/dist/{dropdown-content-BgLy9dwU.js.map → dropdown-content-zM3fWF1d.js.map} +1 -1
  97. package/dist/dropdown.cjs +1 -1
  98. package/dist/dropdown.js +1 -1
  99. package/dist/{email-recipients-IXQLqBaI.js → email-recipients-DqOHKxsV.js} +5 -5
  100. package/dist/{email-recipients-IXQLqBaI.js.map → email-recipients-DqOHKxsV.js.map} +1 -1
  101. package/dist/{email-recipients-R7jCXy_I.cjs → email-recipients-MvSCLUmk.cjs} +2 -2
  102. package/dist/{email-recipients-R7jCXy_I.cjs.map → email-recipients-MvSCLUmk.cjs.map} +1 -1
  103. package/dist/extra.cjs +1 -1
  104. package/dist/extra.js +1 -1
  105. package/dist/{flex-Cp1nomar.js → flex-BjpIb0Xr.js} +2 -2
  106. package/dist/{flex-Cp1nomar.js.map → flex-BjpIb0Xr.js.map} +1 -1
  107. package/dist/{flex-sAQsXdsk.cjs → flex-D1NZuZez.cjs} +2 -2
  108. package/dist/{flex-sAQsXdsk.cjs.map → flex-D1NZuZez.cjs.map} +1 -1
  109. package/dist/{form-DHTbrnEl.cjs → form-CRPFTmNd.cjs} +2 -2
  110. package/dist/{form-DHTbrnEl.cjs.map → form-CRPFTmNd.cjs.map} +1 -1
  111. package/dist/{form-Dtc128QU.js → form-UlL9mkQq.js} +2 -2
  112. package/dist/{form-Dtc128QU.js.map → form-UlL9mkQq.js.map} +1 -1
  113. package/dist/form.cjs +1 -1
  114. package/dist/form.js +1 -1
  115. package/dist/{formField.mixin-CCB_CKYb.js → formField.mixin-6_cx2CQR.js} +2 -2
  116. package/dist/{formField.mixin-CCB_CKYb.js.map → formField.mixin-6_cx2CQR.js.map} +1 -1
  117. package/dist/{formField.mixin-CZQ7alVs.cjs → formField.mixin-CXYETznz.cjs} +2 -2
  118. package/dist/{formField.mixin-CZQ7alVs.cjs.map → formField.mixin-CXYETznz.cjs.map} +1 -1
  119. package/dist/{icon-CocdSdlX.cjs → icon-BjvTgGum.cjs} +2 -2
  120. package/dist/{icon-CocdSdlX.cjs.map → icon-BjvTgGum.cjs.map} +1 -1
  121. package/dist/{icon-BHhOyVjB.js → icon-Ce_dFWKs.js} +2 -2
  122. package/dist/{icon-BHhOyVjB.js.map → icon-Ce_dFWKs.js.map} +1 -1
  123. package/dist/{icon-button-CjSaBrg0.js → icon-button-BLp0zzBs.js} +3 -3
  124. package/dist/{icon-button-CjSaBrg0.js.map → icon-button-BLp0zzBs.js.map} +1 -1
  125. package/dist/{icon-button-m8kXxOvS.cjs → icon-button-yr8UowN8.cjs} +2 -2
  126. package/dist/{icon-button-m8kXxOvS.cjs.map → icon-button-yr8UowN8.cjs.map} +1 -1
  127. package/dist/icons.cjs +1 -1
  128. package/dist/icons.js +1 -1
  129. package/dist/index.cjs +1 -1
  130. package/dist/index.js +49 -49
  131. package/dist/{input-BuDPnk5e.cjs → input-BbBgA67h.cjs} +2 -2
  132. package/dist/{input-BuDPnk5e.cjs.map → input-BbBgA67h.cjs.map} +1 -1
  133. package/dist/{input-D_gdNxxR.js → input-FbaIdP-U.js} +3 -3
  134. package/dist/{input-D_gdNxxR.js.map → input-FbaIdP-U.js.map} +1 -1
  135. package/dist/{input-chip-CDLblIp9.cjs → input-chip-B49269QA.cjs} +2 -2
  136. package/dist/{input-chip-CDLblIp9.cjs.map → input-chip-B49269QA.cjs.map} +1 -1
  137. package/dist/{input-chip-CLnR4vSR.js → input-chip-r5DIdtls.js} +2 -2
  138. package/dist/{input-chip-CLnR4vSR.js.map → input-chip-r5DIdtls.js.map} +1 -1
  139. package/dist/input.cjs +1 -1
  140. package/dist/input.js +1 -1
  141. package/dist/layout.cjs +1 -1
  142. package/dist/layout.js +1 -1
  143. package/dist/{list-KCakyWxw.cjs → list-BLG8XA7G.cjs} +2 -2
  144. package/dist/{list-KCakyWxw.cjs.map → list-BLG8XA7G.cjs.map} +1 -1
  145. package/dist/{list-C069T9ey.js → list-QEY7H4eL.js} +2 -2
  146. package/dist/{list-C069T9ey.js.map → list-QEY7H4eL.js.map} +1 -1
  147. package/dist/list.cjs +1 -1
  148. package/dist/list.js +1 -1
  149. package/dist/{litElement.mixin-Dp4mBSNw.js → litElement.mixin-D5MC2dPM.js} +2 -2
  150. package/dist/{litElement.mixin-Dp4mBSNw.js.map → litElement.mixin-D5MC2dPM.js.map} +1 -1
  151. package/dist/{litElement.mixin-DoBMt4ia.cjs → litElement.mixin-Dmtg7y_h.cjs} +2 -2
  152. package/dist/{litElement.mixin-DoBMt4ia.cjs.map → litElement.mixin-Dmtg7y_h.cjs.map} +1 -1
  153. package/dist/mailbox.cjs +1 -1
  154. package/dist/mailbox.js +1 -1
  155. package/dist/{map-vNMrrat-.cjs → map-BygoKmAX.cjs} +2 -2
  156. package/dist/{map-vNMrrat-.cjs.map → map-BygoKmAX.cjs.map} +1 -1
  157. package/dist/{map-pn_6ziZf.js → map-DY3fXMM4.js} +2 -2
  158. package/dist/{map-pn_6ziZf.js.map → map-DY3fXMM4.js.map} +1 -1
  159. package/dist/map.cjs +1 -1
  160. package/dist/map.js +1 -1
  161. package/dist/{media-CAtXPif3.cjs → media-BFkmF0pK.cjs} +2 -2
  162. package/dist/{media-CAtXPif3.cjs.map → media-BFkmF0pK.cjs.map} +1 -1
  163. package/dist/{media-DC3r4y8-.js → media-ChpYwvB3.js} +2 -2
  164. package/dist/{media-DC3r4y8-.js.map → media-ChpYwvB3.js.map} +1 -1
  165. package/dist/{menu-C2ZKJe1g.cjs → menu-BXHjDZge.cjs} +2 -2
  166. package/dist/{menu-C2ZKJe1g.cjs.map → menu-BXHjDZge.cjs.map} +1 -1
  167. package/dist/{menu-BAs2snSu.js → menu-gLYzAVLB.js} +3 -3
  168. package/dist/{menu-BAs2snSu.js.map → menu-gLYzAVLB.js.map} +1 -1
  169. package/dist/menu.cjs +1 -1
  170. package/dist/menu.js +1 -1
  171. package/dist/nav-drawer.cjs +1 -1
  172. package/dist/nav-drawer.js +1 -1
  173. package/dist/navigation-bar.cjs +1 -1
  174. package/dist/navigation-bar.js +1 -1
  175. package/dist/{navigation-rail-KdVjbO1I.js → navigation-rail-SPrrtWOS.js} +22 -20
  176. package/dist/{navigation-rail-KdVjbO1I.js.map → navigation-rail-SPrrtWOS.js.map} +1 -1
  177. package/dist/{navigation-rail-B0zofile.cjs → navigation-rail-luQXsJ36.cjs} +7 -7
  178. package/dist/{navigation-rail-B0zofile.cjs.map → navigation-rail-luQXsJ36.cjs.map} +1 -1
  179. package/dist/navigation-rail.cjs +1 -1
  180. package/dist/navigation-rail.js +1 -1
  181. package/dist/{notification-service-BOCdK7B0.js → notification-service-Bzxf4TIc.js} +4 -4
  182. package/dist/{notification-service-BOCdK7B0.js.map → notification-service-Bzxf4TIc.js.map} +1 -1
  183. package/dist/{notification-service-DXsySIdG.cjs → notification-service-uoprkE19.cjs} +2 -2
  184. package/dist/{notification-service-DXsySIdG.cjs.map → notification-service-uoprkE19.cjs.map} +1 -1
  185. package/dist/notification.cjs +1 -1
  186. package/dist/notification.js +2 -2
  187. package/dist/{notify-Cglpgay3.js → notify-BK0mniGw.js} +2 -2
  188. package/dist/{notify-Cglpgay3.js.map → notify-BK0mniGw.js.map} +1 -1
  189. package/dist/{notify-CvDL-o79.cjs → notify-BhSCT3Xk.cjs} +2 -2
  190. package/dist/{notify-CvDL-o79.cjs.map → notify-BhSCT3Xk.cjs.map} +1 -1
  191. package/dist/{option-tDU1Z_vP.js → option-BZue6YG8.js} +2 -2
  192. package/dist/{option-tDU1Z_vP.js.map → option-BZue6YG8.js.map} +1 -1
  193. package/dist/{option-ezGy71aI.cjs → option-Kk_GQY6j.cjs} +2 -2
  194. package/dist/{option-ezGy71aI.cjs.map → option-Kk_GQY6j.cjs.map} +1 -1
  195. package/dist/option.cjs +1 -1
  196. package/dist/option.js +1 -1
  197. package/dist/{payment-card-form-B5b-LA2Y.cjs → payment-card-form-BcKkjxkm.cjs} +2 -2
  198. package/dist/{payment-card-form-B5b-LA2Y.cjs.map → payment-card-form-BcKkjxkm.cjs.map} +1 -1
  199. package/dist/{payment-card-form-CZpc-zfO.js → payment-card-form-C3JgpEIE.js} +3 -3
  200. package/dist/{payment-card-form-CZpc-zfO.js.map → payment-card-form-C3JgpEIE.js.map} +1 -1
  201. package/dist/{progress-OMGbiNv5.cjs → progress-BXnQuNBd.cjs} +2 -2
  202. package/dist/{progress-OMGbiNv5.cjs.map → progress-BXnQuNBd.cjs.map} +1 -1
  203. package/dist/{progress-Bqih11TQ.js → progress-CPGV-HHh.js} +2 -2
  204. package/dist/{progress-Bqih11TQ.js.map → progress-CPGV-HHh.js.map} +1 -1
  205. package/dist/progress.cjs +1 -1
  206. package/dist/progress.js +1 -1
  207. package/dist/{radio-button-BuSpPTO4.cjs → radio-button-DDgwyanN.cjs} +2 -2
  208. package/dist/{radio-button-BuSpPTO4.cjs.map → radio-button-DDgwyanN.cjs.map} +1 -1
  209. package/dist/{radio-button-mHT1573u.js → radio-button-Dsv9rYTJ.js} +3 -3
  210. package/dist/{radio-button-mHT1573u.js.map → radio-button-Dsv9rYTJ.js.map} +1 -1
  211. package/dist/radio-group.cjs +1 -1
  212. package/dist/radio-group.js +1 -1
  213. package/dist/{schmancy-steps-container-Bht_BlLU.cjs → schmancy-steps-container-C7evWzAc.cjs} +2 -2
  214. package/dist/{schmancy-steps-container-Bht_BlLU.cjs.map → schmancy-steps-container-C7evWzAc.cjs.map} +1 -1
  215. package/dist/{schmancy-steps-container-DDMiJJyw.js → schmancy-steps-container-Cbzqrhes.js} +2 -2
  216. package/dist/{schmancy-steps-container-DDMiJJyw.js.map → schmancy-steps-container-Cbzqrhes.js.map} +1 -1
  217. package/dist/{select-HPtumqyg.cjs → select-BuZt9KsB.cjs} +2 -2
  218. package/dist/{select-HPtumqyg.cjs.map → select-BuZt9KsB.cjs.map} +1 -1
  219. package/dist/{select-CKtpFPTr.js → select-Ru5E-2M3.js} +3 -3
  220. package/dist/{select-CKtpFPTr.js.map → select-Ru5E-2M3.js.map} +1 -1
  221. package/dist/select.cjs +1 -1
  222. package/dist/select.js +1 -1
  223. package/dist/{sheet-B-vTiTi8.js → sheet-Cta5o1Yq.js} +3 -3
  224. package/dist/{sheet-B-vTiTi8.js.map → sheet-Cta5o1Yq.js.map} +1 -1
  225. package/dist/{sheet-DP7nFOEo.cjs → sheet-Dg6bkAGj.cjs} +2 -2
  226. package/dist/{sheet-DP7nFOEo.cjs.map → sheet-Dg6bkAGj.cjs.map} +1 -1
  227. package/dist/sheet.cjs +1 -1
  228. package/dist/sheet.js +1 -1
  229. package/dist/{slider-Bu7kQ0_w.js → slider-C7pfCYir.js} +3 -3
  230. package/dist/{slider-Bu7kQ0_w.js.map → slider-C7pfCYir.js.map} +1 -1
  231. package/dist/{slider-Diqgkt3E.cjs → slider-CDhICxOr.cjs} +2 -2
  232. package/dist/{slider-Diqgkt3E.cjs.map → slider-CDhICxOr.cjs.map} +1 -1
  233. package/dist/slider.cjs +1 -1
  234. package/dist/slider.js +1 -1
  235. package/dist/{spinner-paAzgY93.js → spinner-6-lTUGhs.js} +2 -2
  236. package/dist/{spinner-paAzgY93.js.map → spinner-6-lTUGhs.js.map} +1 -1
  237. package/dist/{spinner-b6hiAljR.cjs → spinner-nAYWwwNr.cjs} +2 -2
  238. package/dist/{spinner-b6hiAljR.cjs.map → spinner-nAYWwwNr.cjs.map} +1 -1
  239. package/dist/steps.cjs +1 -1
  240. package/dist/steps.js +1 -1
  241. package/dist/{suggestion-chip-DnnfUAqx.js → suggestion-chip-5_s9HR2Y.js} +3 -3
  242. package/dist/{suggestion-chip-DnnfUAqx.js.map → suggestion-chip-5_s9HR2Y.js.map} +1 -1
  243. package/dist/{suggestion-chip--FVeCUSI.cjs → suggestion-chip-CsGRZal0.cjs} +2 -2
  244. package/dist/{suggestion-chip--FVeCUSI.cjs.map → suggestion-chip-CsGRZal0.cjs.map} +1 -1
  245. package/dist/{surface-BBhAIoZq.js → surface-D5c_ddsq.js} +2 -2
  246. package/dist/{surface-BBhAIoZq.js.map → surface-D5c_ddsq.js.map} +1 -1
  247. package/dist/{surface-SICYUsoB.cjs → surface-EDSS-N2K.cjs} +2 -2
  248. package/dist/{surface-SICYUsoB.cjs.map → surface-EDSS-N2K.cjs.map} +1 -1
  249. package/dist/surface.cjs +1 -1
  250. package/dist/surface.js +1 -1
  251. package/dist/{table-CepjNGT6.js → table-5TjWY5RR.js} +2 -2
  252. package/dist/{table-CepjNGT6.js.map → table-5TjWY5RR.js.map} +1 -1
  253. package/dist/{table-yYKET4qQ.cjs → table-B_GbZCU6.cjs} +2 -2
  254. package/dist/{table-yYKET4qQ.cjs.map → table-B_GbZCU6.cjs.map} +1 -1
  255. package/dist/table.cjs +1 -1
  256. package/dist/table.js +1 -1
  257. package/dist/{tabs-compatibility-BWaRkr9s.cjs → tabs-compatibility-byG-7uxY.cjs} +2 -2
  258. package/dist/{tabs-compatibility-BWaRkr9s.cjs.map → tabs-compatibility-byG-7uxY.cjs.map} +1 -1
  259. package/dist/{tabs-compatibility-BXdyrybs.js → tabs-compatibility-eM8y7Hkw.js} +2 -2
  260. package/dist/{tabs-compatibility-BXdyrybs.js.map → tabs-compatibility-eM8y7Hkw.js.map} +1 -1
  261. package/dist/tabs.cjs +1 -1
  262. package/dist/tabs.js +1 -1
  263. package/dist/tailwind.mixin-BOTmjQKh.js +64 -0
  264. package/dist/{tailwind.mixin-Cn7vup-6.js.map → tailwind.mixin-BOTmjQKh.js.map} +1 -1
  265. package/dist/tailwind.mixin-SjjyWekZ.cjs +2 -0
  266. package/dist/{tailwind.mixin-CYhJgwwb.cjs.map → tailwind.mixin-SjjyWekZ.cjs.map} +1 -1
  267. package/dist/teleport.cjs +1 -1
  268. package/dist/teleport.js +1 -1
  269. package/dist/{textarea-BpNEwBP9.js → textarea-Ba0EbwKj.js} +2 -2
  270. package/dist/{textarea-BpNEwBP9.js.map → textarea-Ba0EbwKj.js.map} +1 -1
  271. package/dist/{textarea-Xgbs3rjA.cjs → textarea-C5G_bBP8.cjs} +2 -2
  272. package/dist/{textarea-Xgbs3rjA.cjs.map → textarea-C5G_bBP8.cjs.map} +1 -1
  273. package/dist/textarea.cjs +1 -1
  274. package/dist/textarea.js +1 -1
  275. package/dist/{theme-button-77xbTIaH.js → theme-button--FRHwiCC.js} +2 -2
  276. package/dist/{theme-button-77xbTIaH.js.map → theme-button--FRHwiCC.js.map} +1 -1
  277. package/dist/{theme-button-BsjsULjH.cjs → theme-button-BiQ-jfG4.cjs} +2 -2
  278. package/dist/{theme-button-BsjsULjH.cjs.map → theme-button-BiQ-jfG4.cjs.map} +1 -1
  279. package/dist/theme-button.cjs +1 -1
  280. package/dist/theme-button.js +1 -1
  281. package/dist/theme.cjs +1 -1
  282. package/dist/{theme.controls-BeNS8iSM.cjs → theme.controls-BPnEjft1.cjs} +2 -2
  283. package/dist/{theme.controls-BeNS8iSM.cjs.map → theme.controls-BPnEjft1.cjs.map} +1 -1
  284. package/dist/{theme.controls-DtcpHuz9.js → theme.controls-Bua4rENX.js} +3 -3
  285. package/dist/{theme.controls-DtcpHuz9.js.map → theme.controls-Bua4rENX.js.map} +1 -1
  286. package/dist/theme.js +1 -1
  287. package/dist/{timezone-D3kdUX6c.cjs → timezone-CCvqNgyF.cjs} +2 -2
  288. package/dist/{timezone-D3kdUX6c.cjs.map → timezone-CCvqNgyF.cjs.map} +1 -1
  289. package/dist/{timezone-CtH2a7Hw.js → timezone-D54Cff6x.js} +3 -3
  290. package/dist/{timezone-CtH2a7Hw.js.map → timezone-D54Cff6x.js.map} +1 -1
  291. package/dist/{tooltip-DgGZouB5.js → tooltip-C8m-rfYS.js} +2 -2
  292. package/dist/{tooltip-DgGZouB5.js.map → tooltip-C8m-rfYS.js.map} +1 -1
  293. package/dist/{tooltip-BwZ_zIEI.cjs → tooltip-CCl6ctrG.cjs} +2 -2
  294. package/dist/{tooltip-BwZ_zIEI.cjs.map → tooltip-CCl6ctrG.cjs.map} +1 -1
  295. package/dist/tooltip.cjs +1 -1
  296. package/dist/tooltip.js +1 -1
  297. package/dist/{tree-B9fWtaGW.cjs → tree-COuLggJS.cjs} +2 -2
  298. package/dist/{tree-B9fWtaGW.cjs.map → tree-COuLggJS.cjs.map} +1 -1
  299. package/dist/{tree-BSENnhB2.js → tree-t1IWaICA.js} +2 -2
  300. package/dist/{tree-BSENnhB2.js.map → tree-t1IWaICA.js.map} +1 -1
  301. package/dist/tree.cjs +1 -1
  302. package/dist/tree.js +1 -1
  303. package/dist/{typewriter-BCXtlffJ.js → typewriter-B1SrKdhR.js} +4 -4
  304. package/dist/{typewriter-BCXtlffJ.js.map → typewriter-B1SrKdhR.js.map} +1 -1
  305. package/dist/{typewriter-DeNR2E_p.cjs → typewriter-iHUlWvZZ.cjs} +2 -2
  306. package/dist/{typewriter-DeNR2E_p.cjs.map → typewriter-iHUlWvZZ.cjs.map} +1 -1
  307. package/dist/typewriter.cjs +1 -1
  308. package/dist/typewriter.js +1 -1
  309. package/dist/{typography-Cm7pGqRe.cjs → typography-J_EEO2HF.cjs} +2 -2
  310. package/dist/{typography-Cm7pGqRe.cjs.map → typography-J_EEO2HF.cjs.map} +1 -1
  311. package/dist/{typography-sxQLtA6a.js → typography-X_jjdG7E.js} +2 -2
  312. package/dist/{typography-sxQLtA6a.js.map → typography-X_jjdG7E.js.map} +1 -1
  313. package/dist/typography.cjs +1 -1
  314. package/dist/typography.js +1 -1
  315. package/package.json +1 -1
  316. package/types/src/boat/boat.d.ts +3 -3
  317. package/types/src/navigation-bar/navigation-bar.d.ts +2 -1
  318. package/types/src/navigation-rail/navigation-rail.d.ts +2 -3
  319. package/dist/boat-CfIXRMn-.cjs +0 -78
  320. package/dist/boat-CfIXRMn-.cjs.map +0 -1
  321. package/dist/boat-DumUFcmT.js.map +0 -1
  322. package/dist/tailwind.mixin-CYhJgwwb.cjs +0 -2
  323. package/dist/tailwind.mixin-Cn7vup-6.js +0 -64
package/ai/boat.md CHANGED
@@ -1,120 +1,52 @@
1
- # Boat Component
1
+ # schmancy-boat
2
2
 
3
- ## Overview
4
- The boat component is a bottom sheet that slides up from the bottom of the screen. It can be in one of three states: hidden, minimized, or expanded. This component is perfect for displaying additional content or actions while keeping the main interface accessible.
3
+ Floating, draggable bottom sheet component with three states: `hidden`, `minimized`, `expanded`.
5
4
 
6
- ## Properties
5
+ ## API
7
6
 
8
- | Property | Type | Default | Description |
9
- |----------|------|---------|-------------|
10
- | `state` | `'hidden' \| 'minimized' \| 'expanded'` | `'hidden'` | The current state of the boat component |
11
-
12
- ## Events
13
-
14
- | Event | Detail | Description |
15
- |-------|--------|-------------|
16
- | `toggle` | `'hidden' \| 'minimized' \| 'expanded'` | Fired when the state changes |
17
-
18
- > **Note:** The component uses the `toggle` event name following HTML standards (similar to `<details>` and `<dialog>` elements). This prevents event name collisions with child components that might emit `change` events.
19
-
20
- ## Slots
21
-
22
- | Slot | Description |
23
- |------|-------------|
24
- | `header` | Content to display in the header area (visible in both minimized and expanded states) |
25
- | Default | Main content displayed when the boat is expanded |
7
+ ```typescript
8
+ state: 'hidden' | 'minimized' | 'expanded' // Current state
9
+ id: string // Unique ID for position persistence
10
+ icon?: string // Material icon name
11
+ label?: string // Header text
12
+ badge?: string | number // Notification badge
13
+ lowered?: boolean // Reduced shadow elevation
14
+
15
+ // Methods
16
+ toggleState() // Toggle minimized ↔ expanded
17
+ close() // Hide and add to navigation
18
+
19
+ // Events
20
+ @toggle // CustomEvent<'hidden' | 'minimized' | 'expanded'>
21
+ ```
26
22
 
27
23
  ## Usage
28
24
 
29
- ### Basic Example
30
25
  ```html
31
- <schmancy-boat state="minimized">
32
- <schmancy-typography slot="header" variant="title">
33
- Boat Title
34
- </schmancy-typography>
35
-
36
- <div class="flex flex-col gap-4 p-4">
37
- <schmancy-typography>
38
- This is the main content of the boat component.
39
- </schmancy-typography>
40
- </div>
26
+ <!-- Basic -->
27
+ <schmancy-boat
28
+ id="chat"
29
+ icon="chat"
30
+ label="Support"
31
+ badge="3"
32
+ state="minimized"
33
+ @toggle=${e => this.state = e.detail}
34
+ >
35
+ <div class="p-6">Content here</div>
41
36
  </schmancy-boat>
42
37
  ```
43
38
 
44
- ### With Icon in Header
45
- ```html
46
- <schmancy-boat state="minimized" @toggle="${(e) => console.log(e.detail)}">
47
- <div slot="header" class="flex gap-2 justify-center">
48
- <schmancy-icon>info</schmancy-icon>
49
- <schmancy-typography variant="title">Settings</schmancy-typography>
50
- </div>
51
-
52
- <div class="flex flex-col gap-4 p-4">
53
- <!-- Settings content -->
54
- </div>
55
- </schmancy-boat>
56
- ```
57
-
58
- ### Controlling State
59
- ```typescript
60
- // Get reference to boat
61
- const boat = document.querySelector('schmancy-boat');
39
+ ## Critical Rules
62
40
 
63
- // Show minimized
64
- boat.state = 'minimized';
65
-
66
- // Show expanded
67
- boat.state = 'expanded';
68
-
69
- // Hide
70
- boat.state = 'hidden';
71
-
72
- // Listen for state changes
73
- boat.addEventListener('toggle', (e) => {
74
- console.log('New state:', e.detail);
75
- });
76
- ```
41
+ - **ALWAYS** provide unique `id` (position persists to localStorage)
42
+ - ✅ **ALWAYS** use `icon`, `label`, `badge` properties (NOT `slot="header"`)
43
+ - ✅ **REQUIRES** content in default slot
44
+ - **NEVER** self-closing
45
+ - ❌ **NEVER** use deprecated `slot="header"`
77
46
 
78
47
  ## Features
79
48
 
80
- - **Three States**: Hidden (completely off-screen), minimized (shows only header), and expanded (shows all content)
81
- - **Smooth Transitions**: Animated transitions between states using CSS transforms
82
- - **Responsive Design**: Different widths on various screen sizes:
83
- - Mobile: 100% width
84
- - Tablet: 70% width
85
- - Desktop: 60% width
86
- - Large screens: 40% width
87
- - **Fixed Positioning**: Always appears at the bottom-right of the viewport
88
- - **Overflow Handling**: Content scrolls when it exceeds 80vh max height
89
- - **Sticky Header**: Header remains visible when scrolling through content
90
-
91
- ## CSS Classes
92
-
93
- The component uses internal CSS classes for styling:
94
- - `.translate-y-full`: Positions the boat completely off-screen (hidden state)
95
- - `.translate-y-full-minus-64`: Shows only the header (minimized state)
96
- - `.translate-y-0`: Shows the entire boat (expanded state)
97
-
98
- ## Use Cases
99
-
100
- - **Chat Interfaces**: Keep a chat window accessible while browsing
101
- - **Media Players**: Minimize music/video controls while using other features
102
- - **Quick Settings**: Provide easy access to frequently used settings
103
- - **Notifications**: Show important information that users can minimize
104
- - **Form Wizards**: Multi-step forms that can be minimized during the process
105
- - **Help/Support**: Keep help documentation accessible while working
106
-
107
- ## Accessibility
108
-
109
- - The component uses semantic HTML structure
110
- - State changes are announced via events
111
- - Keyboard navigation is supported through the button controls
112
- - Focus management is handled automatically
113
-
114
- ## Best Practices
115
-
116
- 1. **Header Content**: Keep header content concise and descriptive
117
- 2. **State Management**: Store the boat state in your application state if persistence is needed
118
- 3. **Content Height**: Design content to work well within the max-height constraint
119
- 4. **Mobile Considerations**: Test thoroughly on mobile devices where the boat takes full width
120
- 5. **Z-Index**: The component uses `z-[100]` - ensure this works with your app's z-index hierarchy
49
+ - **Draggable**: Drag header to reposition, position saved to localStorage
50
+ - **Responsive**: Auto-adjusts width (mobile: full, desktop: 40vw)
51
+ - **Keyboard**: `Escape` to minimize/hide
52
+ - **Navigation**: Close button adds to nav rail/bar if available
package/dist/ai/boat.md CHANGED
@@ -1,120 +1,52 @@
1
- # Boat Component
1
+ # schmancy-boat
2
2
 
3
- ## Overview
4
- The boat component is a bottom sheet that slides up from the bottom of the screen. It can be in one of three states: hidden, minimized, or expanded. This component is perfect for displaying additional content or actions while keeping the main interface accessible.
3
+ Floating, draggable bottom sheet component with three states: `hidden`, `minimized`, `expanded`.
5
4
 
6
- ## Properties
5
+ ## API
7
6
 
8
- | Property | Type | Default | Description |
9
- |----------|------|---------|-------------|
10
- | `state` | `'hidden' \| 'minimized' \| 'expanded'` | `'hidden'` | The current state of the boat component |
11
-
12
- ## Events
13
-
14
- | Event | Detail | Description |
15
- |-------|--------|-------------|
16
- | `toggle` | `'hidden' \| 'minimized' \| 'expanded'` | Fired when the state changes |
17
-
18
- > **Note:** The component uses the `toggle` event name following HTML standards (similar to `<details>` and `<dialog>` elements). This prevents event name collisions with child components that might emit `change` events.
19
-
20
- ## Slots
21
-
22
- | Slot | Description |
23
- |------|-------------|
24
- | `header` | Content to display in the header area (visible in both minimized and expanded states) |
25
- | Default | Main content displayed when the boat is expanded |
7
+ ```typescript
8
+ state: 'hidden' | 'minimized' | 'expanded' // Current state
9
+ id: string // Unique ID for position persistence
10
+ icon?: string // Material icon name
11
+ label?: string // Header text
12
+ badge?: string | number // Notification badge
13
+ lowered?: boolean // Reduced shadow elevation
14
+
15
+ // Methods
16
+ toggleState() // Toggle minimized ↔ expanded
17
+ close() // Hide and add to navigation
18
+
19
+ // Events
20
+ @toggle // CustomEvent<'hidden' | 'minimized' | 'expanded'>
21
+ ```
26
22
 
27
23
  ## Usage
28
24
 
29
- ### Basic Example
30
25
  ```html
31
- <schmancy-boat state="minimized">
32
- <schmancy-typography slot="header" variant="title">
33
- Boat Title
34
- </schmancy-typography>
35
-
36
- <div class="flex flex-col gap-4 p-4">
37
- <schmancy-typography>
38
- This is the main content of the boat component.
39
- </schmancy-typography>
40
- </div>
26
+ <!-- Basic -->
27
+ <schmancy-boat
28
+ id="chat"
29
+ icon="chat"
30
+ label="Support"
31
+ badge="3"
32
+ state="minimized"
33
+ @toggle=${e => this.state = e.detail}
34
+ >
35
+ <div class="p-6">Content here</div>
41
36
  </schmancy-boat>
42
37
  ```
43
38
 
44
- ### With Icon in Header
45
- ```html
46
- <schmancy-boat state="minimized" @toggle="${(e) => console.log(e.detail)}">
47
- <div slot="header" class="flex gap-2 justify-center">
48
- <schmancy-icon>info</schmancy-icon>
49
- <schmancy-typography variant="title">Settings</schmancy-typography>
50
- </div>
51
-
52
- <div class="flex flex-col gap-4 p-4">
53
- <!-- Settings content -->
54
- </div>
55
- </schmancy-boat>
56
- ```
57
-
58
- ### Controlling State
59
- ```typescript
60
- // Get reference to boat
61
- const boat = document.querySelector('schmancy-boat');
39
+ ## Critical Rules
62
40
 
63
- // Show minimized
64
- boat.state = 'minimized';
65
-
66
- // Show expanded
67
- boat.state = 'expanded';
68
-
69
- // Hide
70
- boat.state = 'hidden';
71
-
72
- // Listen for state changes
73
- boat.addEventListener('toggle', (e) => {
74
- console.log('New state:', e.detail);
75
- });
76
- ```
41
+ - **ALWAYS** provide unique `id` (position persists to localStorage)
42
+ - ✅ **ALWAYS** use `icon`, `label`, `badge` properties (NOT `slot="header"`)
43
+ - ✅ **REQUIRES** content in default slot
44
+ - **NEVER** self-closing
45
+ - ❌ **NEVER** use deprecated `slot="header"`
77
46
 
78
47
  ## Features
79
48
 
80
- - **Three States**: Hidden (completely off-screen), minimized (shows only header), and expanded (shows all content)
81
- - **Smooth Transitions**: Animated transitions between states using CSS transforms
82
- - **Responsive Design**: Different widths on various screen sizes:
83
- - Mobile: 100% width
84
- - Tablet: 70% width
85
- - Desktop: 60% width
86
- - Large screens: 40% width
87
- - **Fixed Positioning**: Always appears at the bottom-right of the viewport
88
- - **Overflow Handling**: Content scrolls when it exceeds 80vh max height
89
- - **Sticky Header**: Header remains visible when scrolling through content
90
-
91
- ## CSS Classes
92
-
93
- The component uses internal CSS classes for styling:
94
- - `.translate-y-full`: Positions the boat completely off-screen (hidden state)
95
- - `.translate-y-full-minus-64`: Shows only the header (minimized state)
96
- - `.translate-y-0`: Shows the entire boat (expanded state)
97
-
98
- ## Use Cases
99
-
100
- - **Chat Interfaces**: Keep a chat window accessible while browsing
101
- - **Media Players**: Minimize music/video controls while using other features
102
- - **Quick Settings**: Provide easy access to frequently used settings
103
- - **Notifications**: Show important information that users can minimize
104
- - **Form Wizards**: Multi-step forms that can be minimized during the process
105
- - **Help/Support**: Keep help documentation accessible while working
106
-
107
- ## Accessibility
108
-
109
- - The component uses semantic HTML structure
110
- - State changes are announced via events
111
- - Keyboard navigation is supported through the button controls
112
- - Focus management is handled automatically
113
-
114
- ## Best Practices
115
-
116
- 1. **Header Content**: Keep header content concise and descriptive
117
- 2. **State Management**: Store the boat state in your application state if persistence is needed
118
- 3. **Content Height**: Design content to work well within the max-height constraint
119
- 4. **Mobile Considerations**: Test thoroughly on mobile devices where the boat takes full width
120
- 5. **Z-Index**: The component uses `z-[100]` - ensure this works with your app's z-index hierarchy
49
+ - **Draggable**: Drag header to reposition, position saved to localStorage
50
+ - **Responsive**: Auto-adjusts width (mobile: full, desktop: 40vw)
51
+ - **Keyboard**: `Escape` to minimize/hide
52
+ - **Navigation**: Close button adds to nav rail/bar if available
@@ -3,8 +3,8 @@ import "rxjs/operators";
3
3
  import "lit/directives/class-map.js";
4
4
  import "lit/directives/style-map.js";
5
5
  import { property as a, queryAssignedNodes as x, query as m, customElement as S } from "lit/decorators.js";
6
- import "./tailwind.mixin-Cn7vup-6.js";
7
- import { $ as Z } from "./litElement.mixin-Dp4mBSNw.js";
6
+ import "./tailwind.mixin-BOTmjQKh.js";
7
+ import { $ as Z } from "./litElement.mixin-D5MC2dPM.js";
8
8
  import { css as v, html as A } from "lit";
9
9
  var E = Object.defineProperty, O = Object.getOwnPropertyDescriptor, e = (r, s, n, i) => {
10
10
  for (var l, o = i > 1 ? void 0 : i ? O(s, n) : s, p = r.length - 1; p >= 0; p--) (l = r[p]) && (o = (i ? l(s, n, o) : l(o)) || o);
@@ -73,4 +73,4 @@ let t = class extends Z(v`
73
73
  }
74
74
  };
75
75
  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([x()], t.prototype, "defaultSlot", 2), e([m(".letters")], t.prototype, "letters", 2), e([m(".ml7")], t.prototype, "ml7", 2), t = e([S("schmancy-animated-text")], t);
76
- //# sourceMappingURL=animated-text-Cfs1zx2e.js.map
76
+ //# sourceMappingURL=animated-text-B6BM8UAR.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"animated-text-Cfs1zx2e.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-B6BM8UAR.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":";;;;;;;;;;;;AAsBA,IAAqBA,IAArB,cAAkDC,EAAYC;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;EAA9D,cAAAC;AAAAC,UAAAA,GAAAC,SAAAA,GAoB6BC,KAAAC,OAAO,WACPD,KAAAE,QAAQ,GACRF,KAAAG,UAAU,IACVH,KAAAI,WAAW,KACZJ,KAAAK,QAAQ,CAAC,GAAG,CAAA,GACZL,KAAAM,UAAU,CAAC,GAAG,CAAA,GACdN,KAAAO,aAAa,CAAC,UAAU,QACxBP,KAAAQ,aAAa,CAAC,SAAS,KAAA,GACvBR,KAAAS,aAAa,CAAC,GAAG,CAAA,GACjBT,KAAAU,UAAU,CAAC,KAAK,CAAA,GACdV,KAAAW,gBAAAA;AAAAA,EAAgB;AAAA,EAO7C,aAAaC,GAAAA;AACZ,UAAMC,IAAOD,EAAQE,sBAAAA;AACrB,WACCD,EAAKE,OAAO,KACZF,EAAKG,QAAQ,KACbH,EAAKI,WAAWC,OAAOC,eAAeC,SAASC,gBAAgBC,iBAC/DT,EAAKU,UAAUL,OAAOM,cAAcJ,SAASC,gBAAgBI;AAAAA,EAE/D;AAAA,EAEA,MAAA,eAAMC;AAEL1B,SAAK2B,QAAQC,YAAY5B,KAAK6B,YAAY,CAAA,EAAGC,YAAaC,QAAQ,OAAO,gCAAA,GAGzEC,EAECC,EAAS,EAAA,EAAIC,KACZC,EAAAA,EAAU,GACVC,EAAO,MAAA;AACN,YAAMvB,IAAOb,KAAKc,sBAAAA;AAClB,aAAOD,EAAKwB,QAAQ,KAAKxB,EAAKyB,SAAS;AAAA,IAAA,CAAA,GAExCC,EAAK,CAAA,CAAA,GAGNC,EAAUtB,QAAQ,QAAA,EAAUgB,KAC3BO,EAAa,GAAA,QAAc,EAC1BC,SAAAA,IACAC,UAAAA,GAAU,CAAA,GAEXR,IAAU,GACVS,EAAI,MAAM5C,KAAK6C,aAAa7C,IAAAA,CAAAA,GAC5B8C,EAAAA,GACAC,EAAIC,CAAAA,MAAAA;AAAAA,OAEEA,KAAchD,KAAKW,iBACvBsC,MAAMC,KAAKlD,KAAK2B,QAAQwB,QAAAA,EAAUC,QAASC,CAAAA,MAAAA;AAC1CA,QAAAA,EAAOC,MAAMhD,UAAU;AAAA,MAAA,CAAA;AAAA,IAAA,CAAA,GAI1B8B,SAAuBS,CAAAA,GAEvB7C,KAAKW,gBAAgBoC,EAAAA,IAAQR,EAAK,CAAA,GAClCQ,EAAI,EACHQ,MAAM,MAAA;AAEWvD,WAAKwD,WAAYC,iBAA8B,cAAA,EAEvDL,QAAQ,CAACC,GAAQK,MAAAA;AAGxB,cAAMC,IAAgB;AAAA,8BACC3D,KAAKO,WAAW,CAAA,CAAA,KAAOP,KAAKQ,WAAW,CAAA,CAAA,KAAOR,KAAKS,WAAW,CAAA,CAAA;AAAA,0BAClET,KAAKU,QAAQ,CAAA,CAAA;AAAA,wBACfV,KAAKK,MAAM,CAAA,CAAA;AAAA,iBAGtBuD,IAAc;AAAA,8BACG5D,KAAKO,WAAW,CAAA,CAAA,KAAOP,KAAKQ,WAAW,CAAA,CAAA,KAAOR,KAAKS,WAAW,CAAA,CAAA;AAAA,0BAClET,KAAKU,QAAQ,CAAA,CAAA;AAAA,wBACfV,KAAKK,MAAM,CAAA,CAAA;AAAA,iBAQtBwD,IAAwB,CAC7B,EAAEC,WAAWH,GAAerD,SAASyD,OAAO/D,KAAKM,QAAQ,CAAA,CAAA,EAAA,GACzD,EAAEwD,WAAWF,GAAatD,SAASyD,OAAO/D,KAAKM,QAAQ,CAAA,CAAA,EAAA,CAAA;AAGxD+C,QAAAA,EAAOW,QAAQH,GAAW,EACzBzD,UAAUJ,KAAKI,UACf6D,QAXyC,EACzCC,SAAS,iCAAA,EAUSlE,KAAKC,IAAAA,KAAS,YAChCC,OAAOF,KAAKE,QAAQwD,IAAI1D,KAAKG,SAC7BgE,MAAM,WAAA,CAAA;AAAA,MAAA,CAAA;AAAA,IAAA,EAAA,CAAA,CAAA,CAAA,EAMVC,UAAAA;AAAAA,EACH;AAAA,EAEA,SAAAC;AACC,WAAOC;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,EASR;AAAA;AAnH4BC,EAAA,CAA3BC,EAAS,EAAEC,MAAMV,OAAAA,CAAAA,CAAAA,GApBErE,EAoBQgF,WAAA,QAAA,CAAA,GACAH,EAAA,CAA3BC,EAAS,EAAEC,MAAME,OAAAA,CAAAA,CAAAA,GArBEjF,EAqBQgF,WAAA,SAAA,CAAA,GACAH,EAAA,CAA3BC,EAAS,EAAEC,MAAME,OAAAA,CAAAA,CAAAA,GAtBEjF,EAsBQgF,WAAA,WAAA,CAAA,GACAH,EAAA,CAA3BC,EAAS,EAAEC,MAAME,OAAAA,CAAAA,CAAAA,GAvBEjF,EAuBQgF,WAAA,YAAA,CAAA,GACDH,EAAA,CAA1BC,EAAS,EAAEC,MAAMxB,MAAAA,CAAAA,CAAAA,GAxBEvD,EAwBOgF,WAAA,SAAA,CAAA,GACAH,EAAA,CAA1BC,EAAS,EAAEC,MAAMxB,MAAAA,CAAAA,CAAAA,GAzBEvD,EAyBOgF,WAAA,WAAA,CAAA,GACAH,EAAA,CAA1BC,EAAS,EAAEC,MAAMxB,WA1BEvD,EA0BOgF,WAAA,cAAA,CAAA,GACAH,EAAA,CAA1BC,EAAS,EAAEC,MAAMxB,MAAAA,CAAAA,CAAAA,GA3BEvD,EA2BOgF,WAAA,cAAA,CAAA,GACAH,EAAA,CAA1BC,EAAS,EAAEC,MAAMxB,MAAAA,CAAAA,CAAAA,GA5BEvD,EA4BOgF,WAAA,cAAA,CAAA,GACAH,EAAA,CAA1BC,EAAS,EAAEC,MAAMxB,MAAAA,CAAAA,CAAAA,GA7BEvD,EA6BOgF,WAAA,WAAA,CAAA,GACEH,EAAA,CAA5BC,EAAS,EAAEC,MAAMG,QAAAA,CAAAA,CAAAA,GA9BElF,EA8BSgF,WAAA,iBAAA,IAEPH,EAAA,CAArBM,EAAAA,CAAAA,GAhCmBnF,EAgCEgF,WAAA,eAAA,CAAA,GACHH,EAAA,CAAlBO,EAAM,UAAA,CAAA,GAjCapF,EAiCDgF,WAAA,WAAA,CAAA,GACJH,EAAA,CAAdO,EAAM,MAAA,CAAA,GAlCapF,EAkCLgF,WAAA,OAAA,CAAA,GAlCKhF,IAArB6E,EAAA,CADCQ,EAAc,wBAAA,CAAA,GACMrF,CAAAA;"}
@@ -1,4 +1,4 @@
1
- "use strict";const e=require("rxjs");require("rxjs/operators"),require("lit/directives/class-map.js"),require("lit/directives/style-map.js");const r=require("lit/decorators.js");require("./tailwind.mixin-CYhJgwwb.cjs");const h=require("./litElement.mixin-DoBMt4ia.cjs"),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("rxjs/operators"),require("lit/directives/class-map.js"),require("lit/directives/style-map.js");const r=require("lit/decorators.js");require("./tailwind.mixin-SjjyWekZ.cjs");const h=require("./litElement.mixin-Dmtg7y_h.cjs"),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-DoLx8YhT.cjs.map
37
+ //# sourceMappingURL=animated-text-DMLVAWR9.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"animated-text-DoLx8YhT.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-DMLVAWR9.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,2 +1,2 @@
1
- "use strict";require("./animated-text-DoLx8YhT.cjs");
1
+ "use strict";require("./animated-text-DMLVAWR9.cjs");
2
2
  //# sourceMappingURL=animated-text.cjs.map
@@ -1,2 +1,2 @@
1
- import "./animated-text-Cfs1zx2e.js";
1
+ import "./animated-text-B6BM8UAR.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-DMRF1lD-.cjs"),e=require("./utils-C38P63L6.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}),Object.defineProperty(exports,"SchmancyRoute",{enumerable:!0,get:()=>t.SchmancyRoute}),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.decodeData=e.decodeData,exports.decodeRouteState=e.decodeRouteState,exports.deepMerge=e.deepMerge,exports.encodeData=e.encodeData,exports.encodeRouteState=e.encodeRouteState,exports.extractQueryParams=e.extractQueryParams,exports.getTagName=e.getTagName,exports.isObject=e.isObject,exports.lazy=e.lazy,exports.normalizeTagName=e.normalizeTagName,exports.sanitizeRouteState=e.sanitizeRouteState;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("./area.component-D630N8ae.cjs"),e=require("./utils-C38P63L6.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}),Object.defineProperty(exports,"SchmancyRoute",{enumerable:!0,get:()=>t.SchmancyRoute}),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.decodeData=e.decodeData,exports.decodeRouteState=e.decodeRouteState,exports.deepMerge=e.deepMerge,exports.encodeData=e.encodeData,exports.encodeRouteState=e.encodeRouteState,exports.extractQueryParams=e.extractQueryParams,exports.getTagName=e.getTagName,exports.isObject=e.isObject,exports.lazy=e.lazy,exports.normalizeTagName=e.normalizeTagName,exports.sanitizeRouteState=e.sanitizeRouteState;
2
2
  //# sourceMappingURL=area.cjs.map
@@ -3,8 +3,8 @@ import "rxjs/operators";
3
3
  import "lit/directives/class-map.js";
4
4
  import "lit/directives/style-map.js";
5
5
  import { property as S, customElement as M, queryAssignedElements as W } from "lit/decorators.js";
6
- import "./tailwind.mixin-Cn7vup-6.js";
7
- import { $ as P } from "./litElement.mixin-Dp4mBSNw.js";
6
+ import "./tailwind.mixin-BOTmjQKh.js";
7
+ import { $ as P } from "./litElement.mixin-D5MC2dPM.js";
8
8
  import { css as H, html as B } from "lit";
9
9
  const q = new I(), G = "FINDING_MORTIES", K = "HERE_RICKY", N = /* @__PURE__ */ new WeakMap();
10
10
  class O {
@@ -313,4 +313,4 @@ export {
313
313
  m as c,
314
314
  q as r
315
315
  };
316
- //# sourceMappingURL=area.component-A6Xw-dfF.js.map
316
+ //# sourceMappingURL=area.component-C0i1I-XN.js.map