@mhmo91/schmancy 0.5.26 → 0.5.27

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 (336) hide show
  1. package/ai/checkbox.md +93 -52
  2. package/dist/ai/checkbox.md +93 -52
  3. package/dist/{animated-text-BF-_41Hw.js → animated-text-Bn8-ILmB.js} +3 -3
  4. package/dist/{animated-text-BF-_41Hw.js.map → animated-text-Bn8-ILmB.js.map} +1 -1
  5. package/dist/{animated-text-D7XcIPvJ.cjs → animated-text-vdNivzdc.cjs} +2 -2
  6. package/dist/{animated-text-D7XcIPvJ.cjs.map → animated-text-vdNivzdc.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-C1EzgnER.cjs → area.component-DwPL6bdo.cjs} +2 -2
  11. package/dist/{area.component-C1EzgnER.cjs.map → area.component-DwPL6bdo.cjs.map} +1 -1
  12. package/dist/{area.component-C5wZ7yAA.js → area.component-pd24G8zW.js} +3 -3
  13. package/dist/{area.component-C5wZ7yAA.js.map → area.component-pd24G8zW.js.map} +1 -1
  14. package/dist/area.js +1 -1
  15. package/dist/{autocomplete-C2KCl8gZ.js → autocomplete-BlhAOtex.js} +4 -4
  16. package/dist/{autocomplete-C2KCl8gZ.js.map → autocomplete-BlhAOtex.js.map} +1 -1
  17. package/dist/{autocomplete-Dp2pvQ1J.cjs → autocomplete-GW91jVqw.cjs} +2 -2
  18. package/dist/{autocomplete-Dp2pvQ1J.cjs.map → autocomplete-GW91jVqw.cjs.map} +1 -1
  19. package/dist/autocomplete.cjs +1 -1
  20. package/dist/autocomplete.js +1 -1
  21. package/dist/{avatar-BISA1L6R.js → avatar-4sGidVGe.js} +50 -50
  22. package/dist/{avatar-BISA1L6R.js.map → avatar-4sGidVGe.js.map} +1 -1
  23. package/dist/{avatar-dRvfep6e.cjs → avatar-q32dkyky.cjs} +2 -2
  24. package/dist/{avatar-dRvfep6e.cjs.map → avatar-q32dkyky.cjs.map} +1 -1
  25. package/dist/badge.cjs +1 -1
  26. package/dist/badge.js +1 -1
  27. package/dist/{boat-B7y4ZeDv.cjs → boat-DNmaFlxD.cjs} +2 -2
  28. package/dist/{boat-B7y4ZeDv.cjs.map → boat-DNmaFlxD.cjs.map} +1 -1
  29. package/dist/{boat-BDARBzjf.js → boat-dSTPix8t.js} +2 -2
  30. package/dist/{boat-BDARBzjf.js.map → boat-dSTPix8t.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-Dyj95Cob.cjs → checkbox-BJ5aqrKY.cjs} +2 -2
  40. package/dist/{checkbox-Dyj95Cob.cjs.map → checkbox-BJ5aqrKY.cjs.map} +1 -1
  41. package/dist/{checkbox-Bo5DWgmR.js → checkbox-CU2tyEL0.js} +2 -2
  42. package/dist/{checkbox-Bo5DWgmR.js.map → checkbox-CU2tyEL0.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-BkLf1Tjt.js → code-preview-KDpn0Q3T.js} +2 -2
  50. package/dist/{code-preview-BkLf1Tjt.js.map → code-preview-KDpn0Q3T.js.map} +1 -1
  51. package/dist/{code-preview-Ci4_9dyI.cjs → code-preview-fda91FDi.cjs} +2 -2
  52. package/dist/{code-preview-Ci4_9dyI.cjs.map → code-preview-fda91FDi.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-BzJ_GFAW.cjs → date-range-0nOdLk-l.cjs} +2 -2
  58. package/dist/{date-range-BzJ_GFAW.cjs.map → date-range-0nOdLk-l.cjs.map} +1 -1
  59. package/dist/{date-range-inline-egzlYgWB.cjs → date-range-inline-UoP6EDug.cjs} +2 -2
  60. package/dist/{date-range-inline-egzlYgWB.cjs.map → date-range-inline-UoP6EDug.cjs.map} +1 -1
  61. package/dist/{date-range-inline-C5gZQxPv.js → date-range-inline-b0yYxPn_.js} +3 -3
  62. package/dist/{date-range-inline-C5gZQxPv.js.map → date-range-inline-b0yYxPn_.js.map} +1 -1
  63. package/dist/date-range-inline.cjs +1 -1
  64. package/dist/date-range-inline.js +1 -1
  65. package/dist/{date-range-BriVhMyA.js → date-range-yd-FnXRe.js} +3 -3
  66. package/dist/{date-range-BriVhMyA.js.map → date-range-yd-FnXRe.js.map} +1 -1
  67. package/dist/date-range.cjs +1 -1
  68. package/dist/date-range.js +1 -1
  69. package/dist/{delay-3A6yeHgq.js → delay-CE9VOJBG.js} +2 -2
  70. package/dist/{delay-3A6yeHgq.js.map → delay-CE9VOJBG.js.map} +1 -1
  71. package/dist/{delay-9mVh_ncQ.cjs → delay-CaOsI0yP.cjs} +2 -2
  72. package/dist/{delay-9mVh_ncQ.cjs.map → delay-CaOsI0yP.cjs.map} +1 -1
  73. package/dist/delay.cjs +1 -1
  74. package/dist/delay.js +1 -1
  75. package/dist/details-B_kKG0Du.cjs +143 -0
  76. package/dist/details-B_kKG0Du.cjs.map +1 -0
  77. package/dist/details-m-njXkGl.js +210 -0
  78. package/dist/details-m-njXkGl.js.map +1 -0
  79. package/dist/details.cjs +1 -1
  80. package/dist/details.js +1 -1
  81. package/dist/{dialog-content-B9OkO5fD.cjs → dialog-content-B5MUa6uq.cjs} +2 -2
  82. package/dist/{dialog-content-B9OkO5fD.cjs.map → dialog-content-B5MUa6uq.cjs.map} +1 -1
  83. package/dist/{dialog-content-B2mWmFZf.js → dialog-content-BireCTdH.js} +3 -3
  84. package/dist/{dialog-content-B2mWmFZf.js.map → dialog-content-BireCTdH.js.map} +1 -1
  85. package/dist/dialog.cjs +1 -1
  86. package/dist/dialog.js +1 -1
  87. package/dist/{divider-gwQsKA8E.js → divider-CMaqpnia.js} +3 -3
  88. package/dist/{divider-gwQsKA8E.js.map → divider-CMaqpnia.js.map} +1 -1
  89. package/dist/{divider-7QB9lkg8.cjs → divider-DekMH80a.cjs} +2 -2
  90. package/dist/{divider-7QB9lkg8.cjs.map → divider-DekMH80a.cjs.map} +1 -1
  91. package/dist/divider.cjs +1 -1
  92. package/dist/divider.js +1 -1
  93. package/dist/{dropdown-content-wWiQrGbJ.js → dropdown-content-CViuccZ6.js} +3 -3
  94. package/dist/{dropdown-content-wWiQrGbJ.js.map → dropdown-content-CViuccZ6.js.map} +1 -1
  95. package/dist/{dropdown-content-B8jF14WR.cjs → dropdown-content-eXth59vX.cjs} +2 -2
  96. package/dist/{dropdown-content-B8jF14WR.cjs.map → dropdown-content-eXth59vX.cjs.map} +1 -1
  97. package/dist/dropdown.cjs +1 -1
  98. package/dist/dropdown.js +1 -1
  99. package/dist/{email-recipients-BerOPRSS.js → email-recipients-BSopuO1J.js} +5 -5
  100. package/dist/{email-recipients-BerOPRSS.js.map → email-recipients-BSopuO1J.js.map} +1 -1
  101. package/dist/{email-recipients-DDPOQ6GR.cjs → email-recipients-DNcWf4_1.cjs} +2 -2
  102. package/dist/{email-recipients-DDPOQ6GR.cjs.map → email-recipients-DNcWf4_1.cjs.map} +1 -1
  103. package/dist/extra.cjs +1 -1
  104. package/dist/extra.js +1 -1
  105. package/dist/{flex-A9QGoIZO.cjs → flex-CE0IKjR4.cjs} +2 -2
  106. package/dist/{flex-A9QGoIZO.cjs.map → flex-CE0IKjR4.cjs.map} +1 -1
  107. package/dist/{flex-CMaGJmsr.js → flex-Czj-zqJQ.js} +2 -2
  108. package/dist/{flex-CMaGJmsr.js.map → flex-Czj-zqJQ.js.map} +1 -1
  109. package/dist/{form-TwzAo9l7.js → form-CAvvBQiv.js} +2 -2
  110. package/dist/{form-TwzAo9l7.js.map → form-CAvvBQiv.js.map} +1 -1
  111. package/dist/{form-B1MHwY2q.cjs → form-OUNdJnUW.cjs} +2 -2
  112. package/dist/{form-B1MHwY2q.cjs.map → form-OUNdJnUW.cjs.map} +1 -1
  113. package/dist/form.cjs +1 -1
  114. package/dist/form.js +1 -1
  115. package/dist/{formField.mixin-BnEz6ZwN.cjs → formField.mixin-Bu0ygAbE.cjs} +2 -2
  116. package/dist/{formField.mixin-BnEz6ZwN.cjs.map → formField.mixin-Bu0ygAbE.cjs.map} +1 -1
  117. package/dist/{formField.mixin-BssBYPia.js → formField.mixin-DlYLC82X.js} +2 -2
  118. package/dist/{formField.mixin-BssBYPia.js.map → formField.mixin-DlYLC82X.js.map} +1 -1
  119. package/dist/{icon-BAcc1N7i.cjs → icon-BwhQbcAk.cjs} +2 -2
  120. package/dist/{icon-BAcc1N7i.cjs.map → icon-BwhQbcAk.cjs.map} +1 -1
  121. package/dist/{icon-Bc-fZOsV.js → icon-D0EaNtwd.js} +2 -2
  122. package/dist/{icon-Bc-fZOsV.js.map → icon-D0EaNtwd.js.map} +1 -1
  123. package/dist/{icon-button-u2JxLUVz.cjs → icon-button-BrRSVzzx.cjs} +2 -2
  124. package/dist/{icon-button-u2JxLUVz.cjs.map → icon-button-BrRSVzzx.cjs.map} +1 -1
  125. package/dist/{icon-button-bMlXZsaD.js → icon-button-CGMdsmXS.js} +3 -3
  126. package/dist/{icon-button-bMlXZsaD.js.map → icon-button-CGMdsmXS.js.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-CBpMXWq5.js → input-DZYN1TnY.js} +3 -3
  132. package/dist/{input-CBpMXWq5.js.map → input-DZYN1TnY.js.map} +1 -1
  133. package/dist/{input-chip-BdOr_Bst.js → input-chip-CNLkwei6.js} +2 -2
  134. package/dist/{input-chip-BdOr_Bst.js.map → input-chip-CNLkwei6.js.map} +1 -1
  135. package/dist/{input-chip-BOD5fjLj.cjs → input-chip-Cf25jEob.cjs} +2 -2
  136. package/dist/{input-chip-BOD5fjLj.cjs.map → input-chip-Cf25jEob.cjs.map} +1 -1
  137. package/dist/{input-64Amkh7B.cjs → input-lzxE1e5L.cjs} +2 -2
  138. package/dist/{input-64Amkh7B.cjs.map → input-lzxE1e5L.cjs.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-kbaJkd6g.js → list-Cqo45m_h.js} +2 -2
  144. package/dist/{list-kbaJkd6g.js.map → list-Cqo45m_h.js.map} +1 -1
  145. package/dist/{list-D_RsjBt7.cjs → list-rGx4YHgo.cjs} +2 -2
  146. package/dist/{list-D_RsjBt7.cjs.map → list-rGx4YHgo.cjs.map} +1 -1
  147. package/dist/list.cjs +1 -1
  148. package/dist/list.js +1 -1
  149. package/dist/{litElement.mixin-BjvDNbpd.js → litElement.mixin-B0Rsd4Km.js} +2 -2
  150. package/dist/{litElement.mixin-BjvDNbpd.js.map → litElement.mixin-B0Rsd4Km.js.map} +1 -1
  151. package/dist/{litElement.mixin-wU3TW8NU.cjs → litElement.mixin-DUiUa087.cjs} +2 -2
  152. package/dist/{litElement.mixin-wU3TW8NU.cjs.map → litElement.mixin-DUiUa087.cjs.map} +1 -1
  153. package/dist/mailbox.cjs +1 -1
  154. package/dist/mailbox.js +1 -1
  155. package/dist/{map-C3aSKiL1.cjs → map-8DhybTup.cjs} +2 -2
  156. package/dist/{map-C3aSKiL1.cjs.map → map-8DhybTup.cjs.map} +1 -1
  157. package/dist/{map-DhyZmeSW.js → map-DWf43TA1.js} +2 -2
  158. package/dist/{map-DhyZmeSW.js.map → map-DWf43TA1.js.map} +1 -1
  159. package/dist/map.cjs +1 -1
  160. package/dist/map.js +1 -1
  161. package/dist/media-BVKgZzK_.js +243 -0
  162. package/dist/media-BVKgZzK_.js.map +1 -0
  163. package/dist/media-BZwiyJto.cjs +152 -0
  164. package/dist/media-BZwiyJto.cjs.map +1 -0
  165. package/dist/{menu-BWAj2ToG.js → menu-CGaCEOer.js} +3 -3
  166. package/dist/{menu-BWAj2ToG.js.map → menu-CGaCEOer.js.map} +1 -1
  167. package/dist/{menu-GScOP0tp.cjs → menu-D8qP_e7D.cjs} +2 -2
  168. package/dist/{menu-GScOP0tp.cjs.map → menu-D8qP_e7D.cjs.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-DpffIkNR.cjs → navigation-rail-BzMOzaFm.cjs} +77 -39
  176. package/dist/navigation-rail-BzMOzaFm.cjs.map +1 -0
  177. package/dist/{navigation-rail-Cwhii1Km.js → navigation-rail-CjBw96pi.js} +88 -50
  178. package/dist/navigation-rail-CjBw96pi.js.map +1 -0
  179. package/dist/navigation-rail.cjs +1 -1
  180. package/dist/navigation-rail.js +1 -1
  181. package/dist/{notification-service-CiS9cxNM.cjs → notification-service-DCmDSvc-.cjs} +2 -2
  182. package/dist/{notification-service-CiS9cxNM.cjs.map → notification-service-DCmDSvc-.cjs.map} +1 -1
  183. package/dist/{notification-service-D9FrcaYV.js → notification-service-Dv4oQi_Z.js} +4 -4
  184. package/dist/{notification-service-D9FrcaYV.js.map → notification-service-Dv4oQi_Z.js.map} +1 -1
  185. package/dist/notification.cjs +1 -1
  186. package/dist/notification.js +2 -2
  187. package/dist/{notify-CHdshRyb.js → notify-COuaNTJP.js} +2 -2
  188. package/dist/{notify-CHdshRyb.js.map → notify-COuaNTJP.js.map} +1 -1
  189. package/dist/{notify-BmlPVAHr.cjs → notify-XY2e8y_a.cjs} +2 -2
  190. package/dist/{notify-BmlPVAHr.cjs.map → notify-XY2e8y_a.cjs.map} +1 -1
  191. package/dist/{option-DYw6IjKG.js → option-CSSmqUBi.js} +2 -2
  192. package/dist/{option-DYw6IjKG.js.map → option-CSSmqUBi.js.map} +1 -1
  193. package/dist/{option-DA812L2R.cjs → option-q-dig7LF.cjs} +2 -2
  194. package/dist/{option-DA812L2R.cjs.map → option-q-dig7LF.cjs.map} +1 -1
  195. package/dist/option.cjs +1 -1
  196. package/dist/option.js +1 -1
  197. package/dist/{payment-card-form-DI7uO_75.cjs → payment-card-form-C8bWa_hh.cjs} +2 -2
  198. package/dist/{payment-card-form-DI7uO_75.cjs.map → payment-card-form-C8bWa_hh.cjs.map} +1 -1
  199. package/dist/{payment-card-form-K2w6cCIE.js → payment-card-form-CWboYwqO.js} +3 -3
  200. package/dist/{payment-card-form-K2w6cCIE.js.map → payment-card-form-CWboYwqO.js.map} +1 -1
  201. package/dist/{progress-DDWci51w.cjs → progress-CP2lpJsl.cjs} +2 -2
  202. package/dist/{progress-DDWci51w.cjs.map → progress-CP2lpJsl.cjs.map} +1 -1
  203. package/dist/{progress-CHHtHq7e.js → progress-Cci0dXzp.js} +2 -2
  204. package/dist/{progress-CHHtHq7e.js.map → progress-Cci0dXzp.js.map} +1 -1
  205. package/dist/progress.cjs +1 -1
  206. package/dist/progress.js +1 -1
  207. package/dist/{radio-button-BFWrUvoQ.cjs → radio-button-CU-lMs92.cjs} +2 -2
  208. package/dist/{radio-button-BFWrUvoQ.cjs.map → radio-button-CU-lMs92.cjs.map} +1 -1
  209. package/dist/{radio-button-Uzt9IgG3.js → radio-button-DFbfVgox.js} +3 -3
  210. package/dist/{radio-button-Uzt9IgG3.js.map → radio-button-DFbfVgox.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-DCIjNVl9.cjs → schmancy-steps-container-CQY1zmws.cjs} +2 -2
  214. package/dist/{schmancy-steps-container-DCIjNVl9.cjs.map → schmancy-steps-container-CQY1zmws.cjs.map} +1 -1
  215. package/dist/{schmancy-steps-container-fxA9vvA6.js → schmancy-steps-container-vW7r1ZTL.js} +2 -2
  216. package/dist/{schmancy-steps-container-fxA9vvA6.js.map → schmancy-steps-container-vW7r1ZTL.js.map} +1 -1
  217. package/dist/{select-HByOFIgf.cjs → select-Be8HIqWu.cjs} +2 -2
  218. package/dist/{select-HByOFIgf.cjs.map → select-Be8HIqWu.cjs.map} +1 -1
  219. package/dist/{select-s2RGXov_.js → select-BkGodZaS.js} +3 -3
  220. package/dist/{select-s2RGXov_.js.map → select-BkGodZaS.js.map} +1 -1
  221. package/dist/select.cjs +1 -1
  222. package/dist/select.js +1 -1
  223. package/dist/{sheet-CHMqdnPC.js → sheet-DECb9whB.js} +3 -3
  224. package/dist/{sheet-CHMqdnPC.js.map → sheet-DECb9whB.js.map} +1 -1
  225. package/dist/{sheet-B3SYJ5bI.cjs → sheet-dK5UPVjp.cjs} +2 -2
  226. package/dist/{sheet-B3SYJ5bI.cjs.map → sheet-dK5UPVjp.cjs.map} +1 -1
  227. package/dist/sheet.cjs +1 -1
  228. package/dist/sheet.js +1 -1
  229. package/dist/{slider-B5sg-McD.js → slider-BhFc1oRj.js} +3 -3
  230. package/dist/{slider-B5sg-McD.js.map → slider-BhFc1oRj.js.map} +1 -1
  231. package/dist/{slider-C34Lp0Ns.cjs → slider-CP3JRaWR.cjs} +2 -2
  232. package/dist/{slider-C34Lp0Ns.cjs.map → slider-CP3JRaWR.cjs.map} +1 -1
  233. package/dist/slider.cjs +1 -1
  234. package/dist/slider.js +1 -1
  235. package/dist/{spinner-D2zUun1n.cjs → spinner-BD8cXVK_.cjs} +2 -2
  236. package/dist/{spinner-D2zUun1n.cjs.map → spinner-BD8cXVK_.cjs.map} +1 -1
  237. package/dist/{spinner-CsdQec_Y.js → spinner-DGyRYqUZ.js} +2 -2
  238. package/dist/{spinner-CsdQec_Y.js.map → spinner-DGyRYqUZ.js.map} +1 -1
  239. package/dist/steps.cjs +1 -1
  240. package/dist/steps.js +1 -1
  241. package/dist/{suggestion-chip-jPIhloJG.cjs → suggestion-chip-C1n2VYBG.cjs} +31 -20
  242. package/dist/suggestion-chip-C1n2VYBG.cjs.map +1 -0
  243. package/dist/{suggestion-chip-BE4I1i8Z.js → suggestion-chip-Cl0cPTKV.js} +89 -70
  244. package/dist/suggestion-chip-Cl0cPTKV.js.map +1 -0
  245. package/dist/surface-C3V23wh9.js +140 -0
  246. package/dist/surface-C3V23wh9.js.map +1 -0
  247. package/dist/surface-ClIDhSRv.cjs +119 -0
  248. package/dist/surface-ClIDhSRv.cjs.map +1 -0
  249. package/dist/surface.cjs +1 -1
  250. package/dist/surface.js +1 -1
  251. package/dist/{table-CzHvHTwO.cjs → table-1New2HBS.cjs} +2 -2
  252. package/dist/{table-CzHvHTwO.cjs.map → table-1New2HBS.cjs.map} +1 -1
  253. package/dist/{table-Zvpbmts7.js → table-CLA3cxIk.js} +2 -2
  254. package/dist/{table-Zvpbmts7.js.map → table-CLA3cxIk.js.map} +1 -1
  255. package/dist/table.cjs +1 -1
  256. package/dist/table.js +1 -1
  257. package/dist/{tabs-compatibility-BIwTX2f5.cjs → tabs-compatibility-DDtYFCUj.cjs} +2 -2
  258. package/dist/{tabs-compatibility-BIwTX2f5.cjs.map → tabs-compatibility-DDtYFCUj.cjs.map} +1 -1
  259. package/dist/{tabs-compatibility-BRxG6DfR.js → tabs-compatibility-RMzYuSJ1.js} +2 -2
  260. package/dist/{tabs-compatibility-BRxG6DfR.js.map → tabs-compatibility-RMzYuSJ1.js.map} +1 -1
  261. package/dist/tabs.cjs +1 -1
  262. package/dist/tabs.js +1 -1
  263. package/dist/tailwind.mixin-CFrLBtkD.cjs +2 -0
  264. package/dist/{tailwind.mixin-CvLC4LGm.cjs.map → tailwind.mixin-CFrLBtkD.cjs.map} +1 -1
  265. package/dist/tailwind.mixin-CZKT1dUr.js +43 -0
  266. package/dist/{tailwind.mixin-DXMWx0zN.js.map → tailwind.mixin-CZKT1dUr.js.map} +1 -1
  267. package/dist/teleport.cjs +1 -1
  268. package/dist/teleport.js +1 -1
  269. package/dist/{textarea-BmfkGMl_.js → textarea-B4DXG5Sg.js} +2 -2
  270. package/dist/{textarea-BmfkGMl_.js.map → textarea-B4DXG5Sg.js.map} +1 -1
  271. package/dist/{textarea-BStwsU5t.cjs → textarea-ChDsPBZz.cjs} +2 -2
  272. package/dist/{textarea-BStwsU5t.cjs.map → textarea-ChDsPBZz.cjs.map} +1 -1
  273. package/dist/textarea.cjs +1 -1
  274. package/dist/textarea.js +1 -1
  275. package/dist/{theme-button-C0aKpjew.js → theme-button-DGjG_shg.js} +2 -2
  276. package/dist/{theme-button-C0aKpjew.js.map → theme-button-DGjG_shg.js.map} +1 -1
  277. package/dist/{theme-button-8UOIxNBy.cjs → theme-button-qzDX0i9Q.cjs} +2 -2
  278. package/dist/{theme-button-8UOIxNBy.cjs.map → theme-button-qzDX0i9Q.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.component-BvUi2mvO.cjs → theme.component-Blc_4wu9.cjs} +2 -2
  283. package/dist/{theme.component-BvUi2mvO.cjs.map → theme.component-Blc_4wu9.cjs.map} +1 -1
  284. package/dist/{theme.component-DPfWc8Tz.js → theme.component-C3r_-QqQ.js} +2 -2
  285. package/dist/{theme.component-DPfWc8Tz.js.map → theme.component-C3r_-QqQ.js.map} +1 -1
  286. package/dist/theme.js +1 -1
  287. package/dist/{timezone-CyWZzj5y.js → timezone-BkE20wzQ.js} +3 -3
  288. package/dist/{timezone-CyWZzj5y.js.map → timezone-BkE20wzQ.js.map} +1 -1
  289. package/dist/{timezone-BqVai0NU.cjs → timezone-wWfEuXrb.cjs} +2 -2
  290. package/dist/{timezone-BqVai0NU.cjs.map → timezone-wWfEuXrb.cjs.map} +1 -1
  291. package/dist/{tooltip-B3OI6L58.cjs → tooltip-DLadXXnP.cjs} +2 -2
  292. package/dist/{tooltip-B3OI6L58.cjs.map → tooltip-DLadXXnP.cjs.map} +1 -1
  293. package/dist/{tooltip-ADFA2Hhl.js → tooltip-UtpbXzQX.js} +2 -2
  294. package/dist/{tooltip-ADFA2Hhl.js.map → tooltip-UtpbXzQX.js.map} +1 -1
  295. package/dist/tooltip.cjs +1 -1
  296. package/dist/tooltip.js +1 -1
  297. package/dist/{tree-Dn_LFln3.cjs → tree-Brtho3Eu.cjs} +2 -2
  298. package/dist/{tree-Dn_LFln3.cjs.map → tree-Brtho3Eu.cjs.map} +1 -1
  299. package/dist/{tree-B8U0nKLT.js → tree-VkXtw2P8.js} +2 -2
  300. package/dist/{tree-B8U0nKLT.js.map → tree-VkXtw2P8.js.map} +1 -1
  301. package/dist/tree.cjs +1 -1
  302. package/dist/tree.js +1 -1
  303. package/dist/{typewriter-D16QiY6_.cjs → typewriter-CEgaw_pR.cjs} +2 -2
  304. package/dist/{typewriter-D16QiY6_.cjs.map → typewriter-CEgaw_pR.cjs.map} +1 -1
  305. package/dist/{typewriter-eEIOUfNO.js → typewriter-CsReDsYS.js} +4 -4
  306. package/dist/{typewriter-eEIOUfNO.js.map → typewriter-CsReDsYS.js.map} +1 -1
  307. package/dist/typewriter.cjs +1 -1
  308. package/dist/typewriter.js +1 -1
  309. package/dist/{typography-BuYmtWlY.js → typography-D_bM5DW7.js} +2 -2
  310. package/dist/{typography-BuYmtWlY.js.map → typography-D_bM5DW7.js.map} +1 -1
  311. package/dist/{typography-9tbZm7OD.cjs → typography-NurK7F-8.cjs} +2 -2
  312. package/dist/{typography-9tbZm7OD.cjs.map → typography-NurK7F-8.cjs.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/card/card.d.ts +5 -1
  317. package/types/src/chips/chips.d.ts +1 -6
  318. package/types/src/details/details.d.ts +4 -4
  319. package/dist/details-BVo7N1R-.cjs +0 -161
  320. package/dist/details-BVo7N1R-.cjs.map +0 -1
  321. package/dist/details-b0374YYL.js +0 -228
  322. package/dist/details-b0374YYL.js.map +0 -1
  323. package/dist/media-CXD15d1H.js +0 -261
  324. package/dist/media-CXD15d1H.js.map +0 -1
  325. package/dist/media-DPyw2ILI.cjs +0 -177
  326. package/dist/media-DPyw2ILI.cjs.map +0 -1
  327. package/dist/navigation-rail-Cwhii1Km.js.map +0 -1
  328. package/dist/navigation-rail-DpffIkNR.cjs.map +0 -1
  329. package/dist/suggestion-chip-BE4I1i8Z.js.map +0 -1
  330. package/dist/suggestion-chip-jPIhloJG.cjs.map +0 -1
  331. package/dist/surface-D8fzaQOr.cjs +0 -90
  332. package/dist/surface-D8fzaQOr.cjs.map +0 -1
  333. package/dist/surface-QCZ627r4.js +0 -111
  334. package/dist/surface-QCZ627r4.js.map +0 -1
  335. package/dist/tailwind.mixin-CvLC4LGm.cjs +0 -2
  336. package/dist/tailwind.mixin-DXMWx0zN.js +0 -43
package/ai/checkbox.md CHANGED
@@ -3,96 +3,137 @@
3
3
  ```js
4
4
  // Basic Checkbox
5
5
  <schmancy-checkbox
6
- name="checkbox-name"
7
- label="Checkbox Label"
8
- value="true|false" // Boolean value (default: false)
9
- checked? // Alias for value
10
- disabled?
11
- required?
12
- size="sm|md|lg" // Size of checkbox (default: "md")
13
- @change=${handleChange}>
6
+ .value=${booleanValue} // Boolean value (default: false)
7
+ .checked=${booleanValue} // Alias for value - use either value or checked
8
+ ?disabled=${isDisabled} // Whether checkbox is disabled
9
+ ?required=${isRequired} // Whether checkbox is required
10
+ name="checkbox-name" // Name attribute (auto-generated if not provided)
11
+ id="checkbox-id" // ID attribute (auto-generated if not provided)
12
+ label="Checkbox Label" // Optional label text
13
+ size="sm|md|lg" // Size of checkbox (default: "md") - Note: currently not affecting rendering
14
+ @change=${handleChange}> // Change event handler
14
15
  </schmancy-checkbox>
15
16
 
16
- // Checkbox with label
17
+ // Checkbox with label attribute
17
18
  <schmancy-checkbox
18
19
  label="Subscribe to newsletter"
19
- value="false">
20
+ .checked=${isSubscribed}
21
+ @change=${(e) => this.isSubscribed = e.detail.value}>
20
22
  </schmancy-checkbox>
21
23
 
22
- // Checkbox with slot content
24
+ // Checkbox with slot content (when no label attribute)
23
25
  <schmancy-checkbox
24
26
  name="terms"
25
- required>
27
+ .checked=${agreedToTerms}
28
+ required
29
+ @change=${(e) => this.agreedToTerms = e.detail.value}>
26
30
  I accept the <a href="/terms">terms and conditions</a>
27
31
  </schmancy-checkbox>
28
32
 
29
33
  // Checkbox Properties
30
- value: boolean // The checked state (true/false)
31
- checked: boolean // Alias for value
32
- name: string // The name attribute (auto-generated if not provided)
33
- id: string // The id attribute (auto-generated if not provided)
34
- disabled: boolean // Whether the checkbox is disabled
35
- required: boolean // Whether the checkbox is required
36
- label?: string // Optional label text
34
+ value: boolean // The checked state (true/false, default: false)
35
+ checked: boolean // Alias for value - getter/setter that maps to value
36
+ name: string // The name attribute (auto-generated random ID if not provided)
37
+ id: string // The id attribute (auto-generated random ID if not provided)
38
+ disabled: boolean // Whether the checkbox is disabled (default: false)
39
+ required: boolean // Whether the checkbox is required (default: false)
40
+ label?: string // Optional label text - if provided, shows text; otherwise uses slot
37
41
  size: 'sm'|'md'|'lg' // Size of the checkbox (default: 'md')
38
42
 
39
43
  // Checkbox Events
40
- @change // Fires when checked state changes, with { detail: { value: boolean } }
44
+ @change // Fires when checked state changes, event detail: { value: boolean }
45
+ // Access new value via: e.detail.value (NOT e.detail.checked)
46
+
47
+ // Important Notes:
48
+ // - The component uses md-checkbox internally from Material Web Components
49
+ // - Use property binding (.value or .checked) for the boolean state, not attribute
50
+ // - The label property takes precedence over slot content
51
+ // - Event detail contains 'value' property, not 'checked'
41
52
 
42
53
  // Examples
43
- // Basic usage
54
+
55
+ // Basic usage with property binding
44
56
  <schmancy-checkbox
45
57
  name="agree"
46
58
  label="I agree to the terms and conditions"
59
+ .checked=${this.agreed}
47
60
  required
48
- @change=${(e) => console.log('Agreed:', e.detail.checked)}>
61
+ @change=${(e) => {
62
+ console.log('Agreed:', e.detail.value); // Use e.detail.value, not e.detail.checked
63
+ this.agreed = e.detail.value;
64
+ }}>
49
65
  </schmancy-checkbox>
50
66
 
51
- // Indeterminate state example
67
+ // Using slot for custom HTML content
52
68
  <schmancy-checkbox
53
- label="Select all"
54
- .indeterminate=${someChecked && !allChecked}
55
- .checked=${allChecked}
56
- @change=${selectAll}>
69
+ .checked=${this.acceptTerms}
70
+ @change=${(e) => this.acceptTerms = e.detail.value}>
71
+ I accept the <strong>terms</strong> and <a href="/privacy">privacy policy</a>
57
72
  </schmancy-checkbox>
58
73
 
59
- // Checkbox group
60
- <div>
74
+ // Typical checkbox group pattern
75
+ <div class="flex flex-col gap-2">
76
+ <schmancy-checkbox
77
+ .checked=${this.preferences.notifications}
78
+ @change=${(e) => this.preferences.notifications = e.detail.value}
79
+ label="Email notifications">
80
+ </schmancy-checkbox>
81
+
61
82
  <schmancy-checkbox
62
- name="roles"
63
- value="admin"
64
- label="Admin"
65
- .checked=${roles.includes('admin')}
66
- @change=${updateRoles}>
83
+ .checked=${this.preferences.newsletter}
84
+ @change=${(e) => this.preferences.newsletter = e.detail.value}
85
+ label="Weekly newsletter">
67
86
  </schmancy-checkbox>
68
-
87
+
69
88
  <schmancy-checkbox
70
- name="roles"
71
- value="editor"
72
- label="Editor"
73
- .checked=${roles.includes('editor')}
74
- @change=${updateRoles}>
89
+ .checked=${this.preferences.marketing}
90
+ @change=${(e) => this.preferences.marketing = e.detail.value}
91
+ label="Marketing emails">
75
92
  </schmancy-checkbox>
76
-
93
+ </div>
94
+
95
+ // Common pattern with external label
96
+ <div class="flex items-center gap-2">
77
97
  <schmancy-checkbox
78
- name="roles"
79
- value="viewer"
80
- label="Viewer"
81
- .checked=${roles.includes('viewer')}
82
- @change=${updateRoles}>
98
+ .checked=${this.isSelected}
99
+ @change=${(e) => this.isSelected = e.detail.value}>
83
100
  </schmancy-checkbox>
101
+ <schmancy-typography type="body" token="md">
102
+ Custom styled label text
103
+ </schmancy-typography>
84
104
  </div>
85
105
 
86
- // Usage in a form
106
+ // Disabled states
107
+ <schmancy-checkbox
108
+ label="This option is disabled"
109
+ disabled>
110
+ </schmancy-checkbox>
111
+
112
+ <schmancy-checkbox
113
+ label="This option is checked and disabled"
114
+ .checked=${true}
115
+ disabled>
116
+ </schmancy-checkbox>
117
+
118
+ // In a form context
87
119
  <schmancy-form @submit=${handleSubmit}>
88
- <schmancy-input name="name" label="Name" required></schmancy-input>
89
-
120
+ <schmancy-input name="email" label="Email" type="email" required></schmancy-input>
121
+
90
122
  <schmancy-checkbox
91
123
  name="subscribe"
92
- label="Subscribe to newsletter"
93
- value="yes">
124
+ .checked=${this.wantsNewsletter}
125
+ @change=${(e) => this.wantsNewsletter = e.detail.value}>
126
+ Send me newsletter updates
94
127
  </schmancy-checkbox>
95
-
128
+
129
+ <schmancy-checkbox
130
+ name="terms"
131
+ required
132
+ .checked=${this.acceptedTerms}
133
+ @change=${(e) => this.acceptedTerms = e.detail.value}>
134
+ I accept the terms and conditions
135
+ </schmancy-checkbox>
136
+
96
137
  <schmancy-button type="submit">Submit</schmancy-button>
97
138
  </schmancy-form>
98
139
  ```
@@ -3,96 +3,137 @@
3
3
  ```js
4
4
  // Basic Checkbox
5
5
  <schmancy-checkbox
6
- name="checkbox-name"
7
- label="Checkbox Label"
8
- value="true|false" // Boolean value (default: false)
9
- checked? // Alias for value
10
- disabled?
11
- required?
12
- size="sm|md|lg" // Size of checkbox (default: "md")
13
- @change=${handleChange}>
6
+ .value=${booleanValue} // Boolean value (default: false)
7
+ .checked=${booleanValue} // Alias for value - use either value or checked
8
+ ?disabled=${isDisabled} // Whether checkbox is disabled
9
+ ?required=${isRequired} // Whether checkbox is required
10
+ name="checkbox-name" // Name attribute (auto-generated if not provided)
11
+ id="checkbox-id" // ID attribute (auto-generated if not provided)
12
+ label="Checkbox Label" // Optional label text
13
+ size="sm|md|lg" // Size of checkbox (default: "md") - Note: currently not affecting rendering
14
+ @change=${handleChange}> // Change event handler
14
15
  </schmancy-checkbox>
15
16
 
16
- // Checkbox with label
17
+ // Checkbox with label attribute
17
18
  <schmancy-checkbox
18
19
  label="Subscribe to newsletter"
19
- value="false">
20
+ .checked=${isSubscribed}
21
+ @change=${(e) => this.isSubscribed = e.detail.value}>
20
22
  </schmancy-checkbox>
21
23
 
22
- // Checkbox with slot content
24
+ // Checkbox with slot content (when no label attribute)
23
25
  <schmancy-checkbox
24
26
  name="terms"
25
- required>
27
+ .checked=${agreedToTerms}
28
+ required
29
+ @change=${(e) => this.agreedToTerms = e.detail.value}>
26
30
  I accept the <a href="/terms">terms and conditions</a>
27
31
  </schmancy-checkbox>
28
32
 
29
33
  // Checkbox Properties
30
- value: boolean // The checked state (true/false)
31
- checked: boolean // Alias for value
32
- name: string // The name attribute (auto-generated if not provided)
33
- id: string // The id attribute (auto-generated if not provided)
34
- disabled: boolean // Whether the checkbox is disabled
35
- required: boolean // Whether the checkbox is required
36
- label?: string // Optional label text
34
+ value: boolean // The checked state (true/false, default: false)
35
+ checked: boolean // Alias for value - getter/setter that maps to value
36
+ name: string // The name attribute (auto-generated random ID if not provided)
37
+ id: string // The id attribute (auto-generated random ID if not provided)
38
+ disabled: boolean // Whether the checkbox is disabled (default: false)
39
+ required: boolean // Whether the checkbox is required (default: false)
40
+ label?: string // Optional label text - if provided, shows text; otherwise uses slot
37
41
  size: 'sm'|'md'|'lg' // Size of the checkbox (default: 'md')
38
42
 
39
43
  // Checkbox Events
40
- @change // Fires when checked state changes, with { detail: { value: boolean } }
44
+ @change // Fires when checked state changes, event detail: { value: boolean }
45
+ // Access new value via: e.detail.value (NOT e.detail.checked)
46
+
47
+ // Important Notes:
48
+ // - The component uses md-checkbox internally from Material Web Components
49
+ // - Use property binding (.value or .checked) for the boolean state, not attribute
50
+ // - The label property takes precedence over slot content
51
+ // - Event detail contains 'value' property, not 'checked'
41
52
 
42
53
  // Examples
43
- // Basic usage
54
+
55
+ // Basic usage with property binding
44
56
  <schmancy-checkbox
45
57
  name="agree"
46
58
  label="I agree to the terms and conditions"
59
+ .checked=${this.agreed}
47
60
  required
48
- @change=${(e) => console.log('Agreed:', e.detail.checked)}>
61
+ @change=${(e) => {
62
+ console.log('Agreed:', e.detail.value); // Use e.detail.value, not e.detail.checked
63
+ this.agreed = e.detail.value;
64
+ }}>
49
65
  </schmancy-checkbox>
50
66
 
51
- // Indeterminate state example
67
+ // Using slot for custom HTML content
52
68
  <schmancy-checkbox
53
- label="Select all"
54
- .indeterminate=${someChecked && !allChecked}
55
- .checked=${allChecked}
56
- @change=${selectAll}>
69
+ .checked=${this.acceptTerms}
70
+ @change=${(e) => this.acceptTerms = e.detail.value}>
71
+ I accept the <strong>terms</strong> and <a href="/privacy">privacy policy</a>
57
72
  </schmancy-checkbox>
58
73
 
59
- // Checkbox group
60
- <div>
74
+ // Typical checkbox group pattern
75
+ <div class="flex flex-col gap-2">
76
+ <schmancy-checkbox
77
+ .checked=${this.preferences.notifications}
78
+ @change=${(e) => this.preferences.notifications = e.detail.value}
79
+ label="Email notifications">
80
+ </schmancy-checkbox>
81
+
61
82
  <schmancy-checkbox
62
- name="roles"
63
- value="admin"
64
- label="Admin"
65
- .checked=${roles.includes('admin')}
66
- @change=${updateRoles}>
83
+ .checked=${this.preferences.newsletter}
84
+ @change=${(e) => this.preferences.newsletter = e.detail.value}
85
+ label="Weekly newsletter">
67
86
  </schmancy-checkbox>
68
-
87
+
69
88
  <schmancy-checkbox
70
- name="roles"
71
- value="editor"
72
- label="Editor"
73
- .checked=${roles.includes('editor')}
74
- @change=${updateRoles}>
89
+ .checked=${this.preferences.marketing}
90
+ @change=${(e) => this.preferences.marketing = e.detail.value}
91
+ label="Marketing emails">
75
92
  </schmancy-checkbox>
76
-
93
+ </div>
94
+
95
+ // Common pattern with external label
96
+ <div class="flex items-center gap-2">
77
97
  <schmancy-checkbox
78
- name="roles"
79
- value="viewer"
80
- label="Viewer"
81
- .checked=${roles.includes('viewer')}
82
- @change=${updateRoles}>
98
+ .checked=${this.isSelected}
99
+ @change=${(e) => this.isSelected = e.detail.value}>
83
100
  </schmancy-checkbox>
101
+ <schmancy-typography type="body" token="md">
102
+ Custom styled label text
103
+ </schmancy-typography>
84
104
  </div>
85
105
 
86
- // Usage in a form
106
+ // Disabled states
107
+ <schmancy-checkbox
108
+ label="This option is disabled"
109
+ disabled>
110
+ </schmancy-checkbox>
111
+
112
+ <schmancy-checkbox
113
+ label="This option is checked and disabled"
114
+ .checked=${true}
115
+ disabled>
116
+ </schmancy-checkbox>
117
+
118
+ // In a form context
87
119
  <schmancy-form @submit=${handleSubmit}>
88
- <schmancy-input name="name" label="Name" required></schmancy-input>
89
-
120
+ <schmancy-input name="email" label="Email" type="email" required></schmancy-input>
121
+
90
122
  <schmancy-checkbox
91
123
  name="subscribe"
92
- label="Subscribe to newsletter"
93
- value="yes">
124
+ .checked=${this.wantsNewsletter}
125
+ @change=${(e) => this.wantsNewsletter = e.detail.value}>
126
+ Send me newsletter updates
94
127
  </schmancy-checkbox>
95
-
128
+
129
+ <schmancy-checkbox
130
+ name="terms"
131
+ required
132
+ .checked=${this.acceptedTerms}
133
+ @change=${(e) => this.acceptedTerms = e.detail.value}>
134
+ I accept the terms and conditions
135
+ </schmancy-checkbox>
136
+
96
137
  <schmancy-button type="submit">Submit</schmancy-button>
97
138
  </schmancy-form>
98
139
  ```
@@ -2,8 +2,8 @@ import { concat as u, interval as g, startWith as y, filter as h, take as d, fro
2
2
  import "lit/directives/class-map.js";
3
3
  import "lit/directives/style-map.js";
4
4
  import { property as a, queryAssignedNodes as x, query as m, customElement as S } from "lit/decorators.js";
5
- import "./tailwind.mixin-DXMWx0zN.js";
6
- import { $ as Z } from "./litElement.mixin-BjvDNbpd.js";
5
+ import "./tailwind.mixin-CZKT1dUr.js";
6
+ import { $ as Z } from "./litElement.mixin-B0Rsd4Km.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) => {
9
9
  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);
@@ -72,4 +72,4 @@ let t = class extends Z(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([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);
75
- //# sourceMappingURL=animated-text-BF-_41Hw.js.map
75
+ //# sourceMappingURL=animated-text-Bn8-ILmB.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"animated-text-BF-_41Hw.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-Bn8-ILmB.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,4 +1,4 @@
1
- "use strict";const e=require("rxjs");require("lit/directives/class-map.js"),require("lit/directives/style-map.js");const r=require("lit/decorators.js");require("./tailwind.mixin-CvLC4LGm.cjs");const h=require("./litElement.mixin-wU3TW8NU.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("lit/directives/class-map.js"),require("lit/directives/style-map.js");const r=require("lit/decorators.js");require("./tailwind.mixin-CFrLBtkD.cjs");const h=require("./litElement.mixin-DUiUa087.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-D7XcIPvJ.cjs.map
37
+ //# sourceMappingURL=animated-text-vdNivzdc.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"animated-text-D7XcIPvJ.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-vdNivzdc.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":"qcAsBA,IAAqBA,EAArB,cAAkDC,EAAAA,YAAYC,EAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,CAA9D,CAAA,CAAA,aAAAC,CAAAC,MAAAA,GAAAC,SAAAA,EAoB6BC,KAAAC,KAAO,UACPD,KAAAE,MAAQ,EACRF,KAAAG,QAAU,GACVH,KAAAI,SAAW,IACZJ,KAAAK,MAAQ,CAAC,EAAG,CAAA,EACZL,KAAAM,QAAU,CAAC,EAAG,CAAA,EACdN,KAAAO,WAAa,CAAC,SAAU,KAAA,EACxBP,KAAAQ,WAAa,CAAC,QAAS,KAAA,EACvBR,KAAAS,WAAa,CAAC,EAAG,CAAA,EACjBT,KAAAU,QAAU,CAAC,IAAK,CAAA,EACdV,KAAAW,cAAAA,EAAgB,CAO7C,aAAaC,EAAAA,CACZ,MAAMC,EAAOD,EAAQE,sBAAAA,EACrB,OACCD,EAAKE,KAAO,GACZF,EAAKG,MAAQ,GACbH,EAAKI,SAAWC,OAAOC,aAAeC,SAASC,gBAAgBC,eAC/DT,EAAKU,QAAUL,OAAOM,YAAcJ,SAASC,gBAAgBI,YAE/D,CAEA,MAAA,cAAMC,CAEL1B,KAAK2B,QAAQC,UAAY5B,KAAK6B,YAAY,CAAA,EAAGC,YAAaC,QAAQ,MAAO,gCAAA,EAGzEC,EAAAA,OAECC,EAAAA,SAAS,IAAIC,KACZC,EAAAA,UAAAA,EAAU,EACVC,EAAAA,OAAO,IAAA,CACN,MAAMvB,EAAOb,KAAKc,sBAAAA,EAClB,OAAOD,EAAKwB,MAAQ,GAAKxB,EAAKyB,OAAS,CAAA,CAAA,EAExCC,EAAAA,KAAK,CAAA,CAAA,EAGNC,YAAUtB,OAAQ,QAAA,EAAUgB,KAC3BO,EAAAA,aAAa,EAAA,OAAc,CAC1BC,QAAAA,GACAC,WAAU,CAAA,EAEXR,EAAAA,UAAAA,EAAU,EACVS,EAAAA,IAAI,IAAM5C,KAAK6C,aAAa7C,IAAAA,CAAAA,EAC5B8C,yBACAC,EAAAA,IAAIC,GAAAA,CAAAA,CAEEA,GAAchD,KAAKW,eACvBsC,MAAMC,KAAKlD,KAAK2B,QAAQwB,QAAAA,EAAUC,QAASC,GAAAA,CAC1CA,EAAOC,MAAMhD,QAAU,GAAA,CAAA,CAAA,CAAA,EAI1B8B,YAAuBS,GAEvB7C,KAAKW,cAAgBoC,EAAAA,IAAAA,EAAQR,EAAAA,KAAK,CAAA,EAClCQ,MAAI,CACHQ,KAAM,IAAA,CAEWvD,KAAKwD,WAAYC,iBAA8B,cAAA,EAEvDL,QAAQ,CAACC,EAAQK,IAAAA,CAGxB,MAAMC,EAAgB;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,gBAGtBuD,EAAc;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,gBAQtBwD,EAAwB,CAC7B,CAAEC,UAAWH,EAAerD,QAASyD,OAAO/D,KAAKM,QAAQ,CAAA,CAAA,CAAA,EACzD,CAAEwD,UAAWF,EAAatD,QAASyD,OAAO/D,KAAKM,QAAQ,CAAA,CAAA,CAAA,CAAA,EAGxD+C,EAAOW,QAAQH,EAAW,CACzBzD,SAAUJ,KAAKI,SACf6D,OAXyC,CACzCC,QAAS,kCAUSlE,KAAKC,IAAAA,GAAS,WAChCC,MAAOF,KAAKE,MAAQwD,EAAI1D,KAAKG,QAC7BgE,KAAM,UAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAMVC,UAAAA,CACH,CAEA,QAAAC,CACC,OAAOC,EAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,GASR,CAAA,EAnH4BC,EAAA,CAA3BC,WAAS,CAAEC,KAAMV,MAAAA,CAAAA,CAAAA,EApBErE,EAoBQgF,UAAA,OAAA,CAAA,EACAH,EAAA,CAA3BC,WAAS,CAAEC,KAAME,MAAAA,CAAAA,CAAAA,EArBEjF,EAqBQgF,UAAA,QAAA,CAAA,EACAH,EAAA,CAA3BC,WAAS,CAAEC,KAAME,MAAAA,CAAAA,CAAAA,EAtBEjF,EAsBQgF,UAAA,UAAA,CAAA,EACAH,EAAA,CAA3BC,WAAS,CAAEC,KAAME,MAAAA,CAAAA,CAAAA,EAvBEjF,EAuBQgF,UAAA,WAAA,GACDH,EAAA,CAA1BC,WAAS,CAAEC,KAAMxB,KAAAA,CAAAA,CAAAA,EAxBEvD,EAwBOgF,UAAA,QAAA,CAAA,EACAH,EAAA,CAA1BC,WAAS,CAAEC,KAAMxB,KAAAA,CAAAA,CAAAA,EAzBEvD,EAyBOgF,UAAA,UAAA,CAAA,EACAH,EAAA,CAA1BC,WAAS,CAAEC,KAAMxB,KAAAA,CAAAA,CAAAA,EA1BEvD,EA0BOgF,UAAA,aAAA,CAAA,EACAH,EAAA,CAA1BC,WAAS,CAAEC,KAAMxB,KAAAA,CAAAA,CAAAA,EA3BEvD,EA2BOgF,UAAA,aAAA,GACAH,EAAA,CAA1BC,WAAS,CAAEC,KAAMxB,KAAAA,CAAAA,CAAAA,EA5BEvD,EA4BOgF,UAAA,aAAA,CAAA,EACAH,EAAA,CAA1BC,WAAS,CAAEC,KAAMxB,KAAAA,CAAAA,CAAAA,EA7BEvD,EA6BOgF,UAAA,UAAA,CAAA,EACEH,EAAA,CAA5BC,WAAS,CAAEC,KAAMG,OAAAA,CAAAA,CAAAA,EA9BElF,EA8BSgF,UAAA,gBAAA,CAAA,EAEPH,EAAA,CAArBM,EAAAA,mBAAAA,CAAAA,EAhCmBnF,EAgCEgF,UAAA,cAAA,CAAA,EACHH,EAAA,CAAlBO,EAAAA,MAAM,UAAA,CAAA,EAjCapF,EAiCDgF,UAAA,UAAA,CAAA,EACJH,EAAA,CAAdO,EAAAA,MAAM,MAAA,CAAA,EAlCapF,EAkCLgF,UAAA,MAAA,GAlCKhF,EAArB6E,EAAA,CADCQ,EAAAA,cAAc,wBAAA,CAAA,EACMrF,CAAAA"}
@@ -1,2 +1,2 @@
1
- "use strict";require("./animated-text-D7XcIPvJ.cjs");
1
+ "use strict";require("./animated-text-vdNivzdc.cjs");
2
2
  //# sourceMappingURL=animated-text.cjs.map
@@ -1,2 +1,2 @@
1
- import "./animated-text-BF-_41Hw.js";
1
+ import "./animated-text-Bn8-ILmB.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-C1EzgnER.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-DwPL6bdo.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
@@ -1,4 +1,4 @@
1
- "use strict";const s=require("rxjs");require("lit/directives/class-map.js"),require("lit/directives/style-map.js");const u=require("lit/decorators.js");require("./tailwind.mixin-CvLC4LGm.cjs");const A=require("./litElement.mixin-wU3TW8NU.cjs"),b=require("lit"),R=new s.Subject,j="FINDING_MORTIES",C="HERE_RICKY",O=new WeakMap;class f{constructor(){this.prettyURL=!1,this.mode="HISTORY",this.request=new s.ReplaySubject(1),this.current=new Map,this.$current=new s.ReplaySubject(1),this.enableHistoryMode=!0,this.findingMortiesEvent=new CustomEvent(j),this.disposed=!1,this.isProcessingPopstate=!1,this.$current.next(this.current),this.$current.subscribe(t=>{this.disposed||t.forEach((e,r)=>{this.getOrCreateAreaSubject(r).next(e)})}),this.initializeFromBrowserState(),typeof window<"u"&&(this.unloadSubscription=s.fromEvent(window,"unload").subscribe(()=>{this.dispose()}))}get areaSubjects(){let t=O.get(this);return t||(t=new Map,O.set(this,t)),t}initializeFromBrowserState(){try{const t=history.state;t&&t.schmancyAreas&&(Object.entries(t.schmancyAreas).forEach(([e,r])=>{this.current.set(e,r)}),this.$current.next(this.current))}catch{}}getOrCreateAreaSubject(t){let e=this.areaSubjects.get(t);if(!e||e.closed){e=new s.ReplaySubject(1),this.areaSubjects.set(t,e);const r=this.current.get(t);r&&e.next({...r,state:r.state||{},params:r.params||{},props:r.props||{}})}return e}on(t,e=!1){if(!t)throw new Error("Area name is required");const r=this.getOrCreateAreaSubject(t).asObservable().pipe(s.distinctUntilChanged((i,n)=>i.component===n.component&&JSON.stringify(i.state)===JSON.stringify(n.state)&&JSON.stringify(i.params)===JSON.stringify(n.params)),s.shareReplay(1));return e?r.pipe(s.skip(1)):r}all(t=!1){const e=this.$current.asObservable().pipe(s.shareReplay(1));return t?e.pipe(s.skip(1)):e}getState(t){if(!t)throw new Error("Area name is required");return this.on(t).pipe(s.map(e=>e.state),s.filter(e=>e!=null),s.distinctUntilChanged((e,r)=>JSON.stringify(e)===JSON.stringify(r)),s.map(e=>e),s.catchError(e=>s.EMPTY))}params(t){if(!t)throw new Error("Area name is required");return this.on(t).pipe(s.map(e=>e.params),s.filter(e=>e!=null),s.distinctUntilChanged((e,r)=>JSON.stringify(e)===JSON.stringify(r)),s.map(e=>e),s.catchError(e=>s.EMPTY))}param(t,e){if(!t||!e)throw new Error("Area name and key are required");return this.params(t).pipe(s.map(r=>r[e]),s.filter(r=>r!==void 0),s.distinctUntilChanged(),s.map(r=>r),s.catchError(r=>s.EMPTY))}props(t){if(!t)throw new Error("Area name is required");return this.on(t).pipe(s.map(e=>e.props),s.filter(e=>e!=null),s.distinctUntilChanged((e,r)=>JSON.stringify(e)===JSON.stringify(r)),s.map(e=>e),s.catchError(e=>s.EMPTY))}prop(t,e){if(!t||!e)throw new Error("Area name and key are required");return this.props(t).pipe(s.map(r=>r[e]),s.filter(r=>r!==void 0),s.distinctUntilChanged(),s.map(r=>r),s.catchError(r=>s.EMPTY))}find(){return s.zip([s.fromEvent(window,C).pipe(s.map(t=>t.detail),s.bufferTime(0)),s.of(1).pipe(s.tap(()=>window.dispatchEvent(this.findingMortiesEvent)))]).pipe(s.map(([t])=>t),s.timeout(1),s.catchError(()=>s.EMPTY))}push(t){if(!t.area)throw new Error("Area is required for route action");if(this.isProcessingPopstate)return;const e={...t,state:t.state||{},params:t.params||{},props:t.props||{},_source:"programmatic"};this.enableHistoryMode&&R.next(e),this.request.next(e),this.dispatchAreaEvent(e.area,e)}_updateFromBrowser(t){const e={...t,state:t.state||{},params:t.params||{},props:t.props||{},_source:"browser"};this.isProcessingPopstate=!0,this.request.next(e),this.isProcessingPopstate=!1}_updateBrowserHistory(t,e,r,i){if(this.enableHistoryMode)try{const n=history.state||{},o=n.schmancyAreas||{},h={component:e.component,area:e.area};e.state&&Object.keys(e.state).length>0&&(h.state=e.state),e.params&&Object.keys(e.params).length>0&&(h.params=e.params),e.props&&Object.keys(e.props).length>0&&(h.props=e.props),o[t]=h;const c={...n,schmancyAreas:o},l=this.createCleanURL(o,i);r==="replace"||r==="pop"?history.replaceState(c,"",l):r!=="push"&&r||history.pushState(c,"",l)}catch{}}createCleanURL(t,e){const r=location.pathname,i=r.split("/");let n="/";const o=i[i.length-1];o&&(o.includes("{")||o.includes("%7B"))?(i.pop(),n=i.join("/")||"/"):n=r,n==="/"||n.endsWith("/")||(n+="/");let h="";if(e!==!0){const c=new URLSearchParams(location.search);Array.isArray(e)&&e.forEach(l=>c.delete(l)),h=c.toString(),h=h?`?${h}`:""}if(this.prettyURL){const c=t.main;if(c){let l=n==="/"?`/${c.component}`:`${n}${c.component}`;const S=new URLSearchParams(h);c.params&&Object.entries(c.params).forEach(([d,E])=>{typeof E!="string"&&typeof E!="number"||S.set(d,String(E))});const p=S.toString();return l+(p?`?${p}`:"")}}try{const c={};if(Object.entries(t).forEach(([S,p])=>{const d={component:p.component};p.state&&Object.keys(p.state).length>0&&(d.state=p.state),p.params&&Object.keys(p.params).length>0&&(d.params=p.params),p.props&&Object.keys(p.props).length>0&&(d.props=p.props),c[S]=d}),Object.keys(c).length===0)return`${n==="/"?"":n.replace(/\/$/,"")}${h}`;const l=encodeURIComponent(JSON.stringify(c));return`${n==="/"?"":n.replace(/\/$/,"")}/${l}${h}`}catch{return location.pathname}}restoreFromBrowserState(t){try{if(t&&t.schmancyAreas)return t.schmancyAreas}catch{}return this.parseStateFromURL()}parseStateFromURL(){const t=location.pathname.split("/").pop();if(!t)return{};try{const e=decodeURIComponent(t),r=JSON.parse(e);if(typeof r=="object"&&r!==null)return r}catch{}return{}}dispatchAreaEvent(t,e){const r=new CustomEvent(`schmancy-area-${t}-changed`,{detail:{area:t,component:e.component,state:e.state,params:e.params,props:e.props,historyStrategy:e.historyStrategy},bubbles:!0,composed:!0});window.dispatchEvent(r)}pop(t){if(!t)throw new Error("Area name is required");const e=this.areaSubjects.get(t);if(e&&!e.closed&&e.next({component:null,state:{},area:t,params:{},props:{}}),this.request.next({area:t,component:null,state:{},params:{},props:{},historyStrategy:"silent",_source:"programmatic"}),this.current.delete(t),this.$current.next(this.current),this.enableHistoryMode)try{const r=history.state||{},i={...r.schmancyAreas||{}};delete i[t];const n={...r,schmancyAreas:i},o=this.createCleanURL(i);history.replaceState(n,"",o)}catch{}}clear(){if(this.areaSubjects.forEach(t=>t.complete()),this.areaSubjects.clear(),this.current.clear(),this.$current.next(this.current),this.enableHistoryMode){const t=this.createCleanURL({});history.replaceState({schmancyAreas:{}},"",t)}}dispose(){this.disposed||(this.disposed=!0,this.unloadSubscription&&(this.unloadSubscription.unsubscribe(),this.unloadSubscription=void 0),this.areaSubjects.forEach(t=>t.complete()),this.areaSubjects.clear(),this.request.complete(),this.$current.complete(),R.complete(),this.current.clear(),O.delete(this))}static getInstance(){return f.instance||(f.instance=new f),f.instance}get state(){try{const t=history.state;if(t&&t.schmancyAreas)return t.schmancyAreas}catch{}return this.parseStateFromURL()}hasArea(t){return this.current.has(t)}getActiveAreas(){return Array.from(this.current.keys())}getRoute(t){return this.current.get(t)}}const y=f.getInstance();var v=Object.defineProperty,M=Object.getOwnPropertyDescriptor,g=(a,t,e,r)=>{for(var i,n=r>1?void 0:r?M(t,e):t,o=a.length-1;o>=0;o--)(i=a[o])&&(n=(r?i(t,e,n):i(n))||n);return r&&n&&v(t,e,n),n};exports.SchmancyRoute=class extends A.$LitElement(b.css`
1
+ "use strict";const s=require("rxjs");require("lit/directives/class-map.js"),require("lit/directives/style-map.js");const u=require("lit/decorators.js");require("./tailwind.mixin-CFrLBtkD.cjs");const A=require("./litElement.mixin-DUiUa087.cjs"),b=require("lit"),R=new s.Subject,j="FINDING_MORTIES",C="HERE_RICKY",O=new WeakMap;class f{constructor(){this.prettyURL=!1,this.mode="HISTORY",this.request=new s.ReplaySubject(1),this.current=new Map,this.$current=new s.ReplaySubject(1),this.enableHistoryMode=!0,this.findingMortiesEvent=new CustomEvent(j),this.disposed=!1,this.isProcessingPopstate=!1,this.$current.next(this.current),this.$current.subscribe(t=>{this.disposed||t.forEach((e,r)=>{this.getOrCreateAreaSubject(r).next(e)})}),this.initializeFromBrowserState(),typeof window<"u"&&(this.unloadSubscription=s.fromEvent(window,"unload").subscribe(()=>{this.dispose()}))}get areaSubjects(){let t=O.get(this);return t||(t=new Map,O.set(this,t)),t}initializeFromBrowserState(){try{const t=history.state;t&&t.schmancyAreas&&(Object.entries(t.schmancyAreas).forEach(([e,r])=>{this.current.set(e,r)}),this.$current.next(this.current))}catch{}}getOrCreateAreaSubject(t){let e=this.areaSubjects.get(t);if(!e||e.closed){e=new s.ReplaySubject(1),this.areaSubjects.set(t,e);const r=this.current.get(t);r&&e.next({...r,state:r.state||{},params:r.params||{},props:r.props||{}})}return e}on(t,e=!1){if(!t)throw new Error("Area name is required");const r=this.getOrCreateAreaSubject(t).asObservable().pipe(s.distinctUntilChanged((i,n)=>i.component===n.component&&JSON.stringify(i.state)===JSON.stringify(n.state)&&JSON.stringify(i.params)===JSON.stringify(n.params)),s.shareReplay(1));return e?r.pipe(s.skip(1)):r}all(t=!1){const e=this.$current.asObservable().pipe(s.shareReplay(1));return t?e.pipe(s.skip(1)):e}getState(t){if(!t)throw new Error("Area name is required");return this.on(t).pipe(s.map(e=>e.state),s.filter(e=>e!=null),s.distinctUntilChanged((e,r)=>JSON.stringify(e)===JSON.stringify(r)),s.map(e=>e),s.catchError(e=>s.EMPTY))}params(t){if(!t)throw new Error("Area name is required");return this.on(t).pipe(s.map(e=>e.params),s.filter(e=>e!=null),s.distinctUntilChanged((e,r)=>JSON.stringify(e)===JSON.stringify(r)),s.map(e=>e),s.catchError(e=>s.EMPTY))}param(t,e){if(!t||!e)throw new Error("Area name and key are required");return this.params(t).pipe(s.map(r=>r[e]),s.filter(r=>r!==void 0),s.distinctUntilChanged(),s.map(r=>r),s.catchError(r=>s.EMPTY))}props(t){if(!t)throw new Error("Area name is required");return this.on(t).pipe(s.map(e=>e.props),s.filter(e=>e!=null),s.distinctUntilChanged((e,r)=>JSON.stringify(e)===JSON.stringify(r)),s.map(e=>e),s.catchError(e=>s.EMPTY))}prop(t,e){if(!t||!e)throw new Error("Area name and key are required");return this.props(t).pipe(s.map(r=>r[e]),s.filter(r=>r!==void 0),s.distinctUntilChanged(),s.map(r=>r),s.catchError(r=>s.EMPTY))}find(){return s.zip([s.fromEvent(window,C).pipe(s.map(t=>t.detail),s.bufferTime(0)),s.of(1).pipe(s.tap(()=>window.dispatchEvent(this.findingMortiesEvent)))]).pipe(s.map(([t])=>t),s.timeout(1),s.catchError(()=>s.EMPTY))}push(t){if(!t.area)throw new Error("Area is required for route action");if(this.isProcessingPopstate)return;const e={...t,state:t.state||{},params:t.params||{},props:t.props||{},_source:"programmatic"};this.enableHistoryMode&&R.next(e),this.request.next(e),this.dispatchAreaEvent(e.area,e)}_updateFromBrowser(t){const e={...t,state:t.state||{},params:t.params||{},props:t.props||{},_source:"browser"};this.isProcessingPopstate=!0,this.request.next(e),this.isProcessingPopstate=!1}_updateBrowserHistory(t,e,r,i){if(this.enableHistoryMode)try{const n=history.state||{},o=n.schmancyAreas||{},h={component:e.component,area:e.area};e.state&&Object.keys(e.state).length>0&&(h.state=e.state),e.params&&Object.keys(e.params).length>0&&(h.params=e.params),e.props&&Object.keys(e.props).length>0&&(h.props=e.props),o[t]=h;const c={...n,schmancyAreas:o},l=this.createCleanURL(o,i);r==="replace"||r==="pop"?history.replaceState(c,"",l):r!=="push"&&r||history.pushState(c,"",l)}catch{}}createCleanURL(t,e){const r=location.pathname,i=r.split("/");let n="/";const o=i[i.length-1];o&&(o.includes("{")||o.includes("%7B"))?(i.pop(),n=i.join("/")||"/"):n=r,n==="/"||n.endsWith("/")||(n+="/");let h="";if(e!==!0){const c=new URLSearchParams(location.search);Array.isArray(e)&&e.forEach(l=>c.delete(l)),h=c.toString(),h=h?`?${h}`:""}if(this.prettyURL){const c=t.main;if(c){let l=n==="/"?`/${c.component}`:`${n}${c.component}`;const S=new URLSearchParams(h);c.params&&Object.entries(c.params).forEach(([d,E])=>{typeof E!="string"&&typeof E!="number"||S.set(d,String(E))});const p=S.toString();return l+(p?`?${p}`:"")}}try{const c={};if(Object.entries(t).forEach(([S,p])=>{const d={component:p.component};p.state&&Object.keys(p.state).length>0&&(d.state=p.state),p.params&&Object.keys(p.params).length>0&&(d.params=p.params),p.props&&Object.keys(p.props).length>0&&(d.props=p.props),c[S]=d}),Object.keys(c).length===0)return`${n==="/"?"":n.replace(/\/$/,"")}${h}`;const l=encodeURIComponent(JSON.stringify(c));return`${n==="/"?"":n.replace(/\/$/,"")}/${l}${h}`}catch{return location.pathname}}restoreFromBrowserState(t){try{if(t&&t.schmancyAreas)return t.schmancyAreas}catch{}return this.parseStateFromURL()}parseStateFromURL(){const t=location.pathname.split("/").pop();if(!t)return{};try{const e=decodeURIComponent(t),r=JSON.parse(e);if(typeof r=="object"&&r!==null)return r}catch{}return{}}dispatchAreaEvent(t,e){const r=new CustomEvent(`schmancy-area-${t}-changed`,{detail:{area:t,component:e.component,state:e.state,params:e.params,props:e.props,historyStrategy:e.historyStrategy},bubbles:!0,composed:!0});window.dispatchEvent(r)}pop(t){if(!t)throw new Error("Area name is required");const e=this.areaSubjects.get(t);if(e&&!e.closed&&e.next({component:null,state:{},area:t,params:{},props:{}}),this.request.next({area:t,component:null,state:{},params:{},props:{},historyStrategy:"silent",_source:"programmatic"}),this.current.delete(t),this.$current.next(this.current),this.enableHistoryMode)try{const r=history.state||{},i={...r.schmancyAreas||{}};delete i[t];const n={...r,schmancyAreas:i},o=this.createCleanURL(i);history.replaceState(n,"",o)}catch{}}clear(){if(this.areaSubjects.forEach(t=>t.complete()),this.areaSubjects.clear(),this.current.clear(),this.$current.next(this.current),this.enableHistoryMode){const t=this.createCleanURL({});history.replaceState({schmancyAreas:{}},"",t)}}dispose(){this.disposed||(this.disposed=!0,this.unloadSubscription&&(this.unloadSubscription.unsubscribe(),this.unloadSubscription=void 0),this.areaSubjects.forEach(t=>t.complete()),this.areaSubjects.clear(),this.request.complete(),this.$current.complete(),R.complete(),this.current.clear(),O.delete(this))}static getInstance(){return f.instance||(f.instance=new f),f.instance}get state(){try{const t=history.state;if(t&&t.schmancyAreas)return t.schmancyAreas}catch{}return this.parseStateFromURL()}hasArea(t){return this.current.has(t)}getActiveAreas(){return Array.from(this.current.keys())}getRoute(t){return this.current.get(t)}}const y=f.getInstance();var v=Object.defineProperty,M=Object.getOwnPropertyDescriptor,g=(a,t,e,r)=>{for(var i,n=r>1?void 0:r?M(t,e):t,o=a.length-1;o>=0;o--)(i=a[o])&&(n=(r?i(t,e,n):i(n))||n);return r&&n&&v(t,e,n),n};exports.SchmancyRoute=class extends A.$LitElement(b.css`
2
2
  :host {
3
3
  display: none;
4
4
  }
@@ -9,4 +9,4 @@
9
9
  inset: 0;
10
10
  }
11
11
  `){firstUpdated(){if(!this.name)throw new Error("Area name is required");s.merge(y.request.pipe(s.filter(({area:a})=>a===this.name)),s.of(null).pipe(s.take(1),s.map(()=>{const a=location.pathname,t=a.split("/").pop()||"";if(t&&(t.includes("{")||t.includes("%7B")))try{const r=JSON.parse(decodeURIComponent(t));if(r[this.name])return{area:this.name,component:r[this.name].component,state:r[this.name].state||{},params:r[this.name].params||{},historyStrategy:m.replace}}catch{}const e=a.split("/").filter(Boolean).find(r=>this.routes?.some(i=>i.when===r));return e?{area:this.name,component:e,state:{},params:{},historyStrategy:m.silent}:this.default?{area:this.name,component:this.default,state:{},params:{},historyStrategy:m.silent}:null})),s.fromEvent(window,"popstate").pipe(s.map(()=>{if(history.state?.schmancyAreas?.[this.name]){const r=history.state.schmancyAreas[this.name];return{area:this.name,component:r.component,state:r.state||{},params:r.params||{},historyStrategy:m.pop}}const a=location.pathname,t=a.split("/").pop()||"";if(t&&(t.includes("{")||t.includes("%7B")))try{const r=JSON.parse(decodeURIComponent(t));if(r[this.name])return{area:this.name,component:r[this.name].component,state:r[this.name].state||{},params:r[this.name].params||{},historyStrategy:m.replace}}catch{}const e=a.split("/").filter(Boolean).find(r=>this.routes?.some(i=>i.when===r));return e?{area:this.name,component:e,state:{},params:{},historyStrategy:m.silent}:this.default?{area:this.name,component:this.default,state:{},params:{},historyStrategy:m.silent}:null}))).pipe(s.filter(a=>a!==null),s.map(a=>{let t,e=a.component;if(typeof e=="string"&&this.routes)t=this.routes.find(r=>r.when===e),t&&(e=t.component);else if(typeof e=="function"&&this.routes)t=this.routes.find(r=>r.component===e);else if(e instanceof HTMLElement&&this.routes){const r=e.tagName.toLowerCase();t=this.routes.find(i=>i.when===r)}return{...a,component:e,matchedRoute:t}}),s.switchMap(a=>a.matchedRoute?.guard?a.matchedRoute.guard.pipe(s.switchMap(t=>{if(t===!0)return s.of(a);const e=new CustomEvent("redirect",{detail:{blockedRoute:a.matchedRoute?.when||"unknown",area:this.name,params:a.params||{},state:a.state||{},redirectTarget:typeof t=="object"?t:void 0},bubbles:!0,composed:!0});return a.matchedRoute.dispatchEvent(e),s.EMPTY})):s.of(a)),s.switchMap(async a=>{let t=a.component;if(typeof t=="function"&&("preload"in t||"_promise"in t||"_module"in t))try{t=(await t()).default}catch{return{...a,component:null}}return{...a,component:t}}),s.map(a=>{let t="";const e=a.component;e&&e!==""?typeof e=="string"?t=e:e instanceof HTMLElement?t=e.tagName.toLowerCase():typeof e=="function"&&(t=e.name||"CustomElement"):t="null";const r=`${t}${JSON.stringify(a.params)}${JSON.stringify(a.state)}`;return{...a,key:r,tagName:t}}),s.distinctUntilChanged((a,t)=>a.key===t.key),s.map(a=>{let t=null;const e=a.component;if(e&&e!==""){if(typeof e=="string")try{t=document.createElement(e)}catch{}else if(e instanceof HTMLElement)t=e;else if(typeof e=="function")try{t=new e}catch{}}else t=null;return t&&(a.params&&Object.assign(t,a.params),a.props&&Object.assign(t,a.props),a.state&&(t.state=a.state)),{element:t,route:a}}),s.shareReplay(1),s.tap(({element:a,route:t})=>this.swapComponents(a,t)),s.catchError(a=>s.EMPTY),s.takeUntil(this.disconnecting)).subscribe()}swapComponents(a,t){const e=Array.from(this.children).find(i=>!(i instanceof exports.SchmancyRoute));if(!a)return void e?.remove();e?e.animate([{opacity:1},{opacity:0}],{duration:150,easing:"ease-out"}).onfinish=()=>{e.remove(),this.appendChild(a),a.animate([{opacity:0},{opacity:1}],{duration:150,easing:"ease-in"})}:(this.appendChild(a),a.animate([{opacity:0},{opacity:1}],{duration:100,easing:"ease-in"}));const r={component:a.tagName.toLowerCase(),state:t.state||{},area:this.name,params:t.params||{}};y.current.set(this.name,r),y.$current.next(y.current),y.enableHistoryMode&&y._updateBrowserHistory(this.name,r,t.historyStrategy||m.push,t.clearQueryParams)}disconnectedCallback(){super.disconnectedCallback()}render(){return b.html`<slot></slot>`}},w([u.property()],exports.SchmancyArea.prototype,"name",2),w([u.property()],exports.SchmancyArea.prototype,"default",2),w([u.queryAssignedElements({selector:"schmancy-route",flatten:!0})],exports.SchmancyArea.prototype,"routes",2),exports.SchmancyArea=w([u.customElement("schmancy-area")],exports.SchmancyArea),exports.FINDING_MORTIES=j,exports.HERE_RICKY=C,exports.HISTORY_STRATEGY=m,exports.area=y,exports.routerHistory=R;
12
- //# sourceMappingURL=area.component-C1EzgnER.cjs.map
12
+ //# sourceMappingURL=area.component-DwPL6bdo.cjs.map