@mhmo91/schmancy 0.4.22 → 0.4.24

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 (308) hide show
  1. package/ai/context.md +25 -2
  2. package/ai/select.md +35 -0
  3. package/ai/sheet.md +422 -85
  4. package/ai/store.md +4 -4
  5. package/ai/tabs.md +186 -63
  6. package/dist/ai/context.md +25 -2
  7. package/dist/ai/select.md +35 -0
  8. package/dist/ai/sheet.md +422 -85
  9. package/dist/ai/store.md +4 -4
  10. package/dist/ai/tabs.md +186 -63
  11. package/dist/{animated-text-Be4toKE0.cjs → animated-text-BitOmeE1.cjs} +2 -2
  12. package/dist/{animated-text-Be4toKE0.cjs.map → animated-text-BitOmeE1.cjs.map} +1 -1
  13. package/dist/{animated-text-CNPSIIYg.js → animated-text-DcLpvyCq.js} +3 -3
  14. package/dist/{animated-text-CNPSIIYg.js.map → animated-text-DcLpvyCq.js.map} +1 -1
  15. package/dist/animated-text.cjs +1 -1
  16. package/dist/animated-text.js +1 -1
  17. package/dist/area.cjs +1 -1
  18. package/dist/{area.component-YKEQV9hc.cjs → area.component-BTLn3oIv.cjs} +2 -2
  19. package/dist/{area.component-YKEQV9hc.cjs.map → area.component-BTLn3oIv.cjs.map} +1 -1
  20. package/dist/{area.component-i-mmh5is.js → area.component-xbNRrst9.js} +3 -3
  21. package/dist/{area.component-i-mmh5is.js.map → area.component-xbNRrst9.js.map} +1 -1
  22. package/dist/area.js +1 -1
  23. package/dist/{autocomplete-EapOt3ES.js → autocomplete-BqRrw118.js} +3 -3
  24. package/dist/{autocomplete-EapOt3ES.js.map → autocomplete-BqRrw118.js.map} +1 -1
  25. package/dist/{autocomplete-C0EU8KiN.cjs → autocomplete-Dvc06UNM.cjs} +2 -2
  26. package/dist/{autocomplete-C0EU8KiN.cjs.map → autocomplete-Dvc06UNM.cjs.map} +1 -1
  27. package/dist/autocomplete.cjs +1 -1
  28. package/dist/autocomplete.js +1 -1
  29. package/dist/{avatar-CRWIpCVJ.cjs → avatar-CP5pbPbp.cjs} +12 -18
  30. package/dist/avatar-CP5pbPbp.cjs.map +1 -0
  31. package/dist/{avatar-CZ4ubNmx.js → avatar-Cb_cbT8R.js} +60 -66
  32. package/dist/avatar-Cb_cbT8R.js.map +1 -0
  33. package/dist/badge.cjs +1 -1
  34. package/dist/badge.js +1 -1
  35. package/dist/{boat-DPTS3Kpw.js → boat-ByFTBKD2.js} +2 -2
  36. package/dist/{boat-DPTS3Kpw.js.map → boat-ByFTBKD2.js.map} +1 -1
  37. package/dist/{boat-C59hzqZ0.cjs → boat-Dtum9CaN.cjs} +2 -2
  38. package/dist/{boat-C59hzqZ0.cjs.map → boat-Dtum9CaN.cjs.map} +1 -1
  39. package/dist/boat.cjs +1 -1
  40. package/dist/boat.js +1 -1
  41. package/dist/busy.cjs +1 -1
  42. package/dist/busy.js +1 -1
  43. package/dist/button.cjs +1 -1
  44. package/dist/button.js +1 -1
  45. package/dist/card.cjs +1 -1
  46. package/dist/card.js +1 -1
  47. package/dist/{checkbox-C-kjO37F.cjs → checkbox-220X9LTx.cjs} +2 -2
  48. package/dist/{checkbox-C-kjO37F.cjs.map → checkbox-220X9LTx.cjs.map} +1 -1
  49. package/dist/{checkbox-B85eeKqn.js → checkbox-Dq0Lm3AM.js} +2 -2
  50. package/dist/{checkbox-B85eeKqn.js.map → checkbox-Dq0Lm3AM.js.map} +1 -1
  51. package/dist/checkbox.cjs +1 -1
  52. package/dist/checkbox.js +1 -1
  53. package/dist/{chips-BNRMzGrx.js → chips-aRU1fwEV.js} +3 -3
  54. package/dist/{chips-BNRMzGrx.js.map → chips-aRU1fwEV.js.map} +1 -1
  55. package/dist/{chips-DW6y4ZMs.cjs → chips-jORxgpG7.cjs} +2 -2
  56. package/dist/{chips-DW6y4ZMs.cjs.map → chips-jORxgpG7.cjs.map} +1 -1
  57. package/dist/chips.cjs +1 -1
  58. package/dist/chips.js +1 -1
  59. package/dist/{circular-progress-BridvYCS.cjs → circular-progress-DMccmWrI.cjs} +2 -2
  60. package/dist/{circular-progress-BridvYCS.cjs.map → circular-progress-DMccmWrI.cjs.map} +1 -1
  61. package/dist/{circular-progress-Cl_dXUPO.js → circular-progress-Dis30LMa.js} +3 -3
  62. package/dist/{circular-progress-Cl_dXUPO.js.map → circular-progress-Dis30LMa.js.map} +1 -1
  63. package/dist/circular-progress.cjs +1 -1
  64. package/dist/circular-progress.js +1 -1
  65. package/dist/code-highlight.cjs +1 -1
  66. package/dist/code-highlight.js +1 -1
  67. package/dist/{code-preview-B8X7JaxA.js → code-preview-BwIb73Yd.js} +2 -2
  68. package/dist/{code-preview-B8X7JaxA.js.map → code-preview-BwIb73Yd.js.map} +1 -1
  69. package/dist/{code-preview-B0oGIV9F.cjs → code-preview-CCHcWZvS.cjs} +2 -2
  70. package/dist/{code-preview-B0oGIV9F.cjs.map → code-preview-CCHcWZvS.cjs.map} +1 -1
  71. package/dist/components.cjs +1 -1
  72. package/dist/components.js +1 -1
  73. package/dist/content-drawer.cjs +1 -1
  74. package/dist/content-drawer.js +1 -1
  75. package/dist/{date-range-9sVFbxK0.js → date-range-CA_4vjWe.js} +3 -3
  76. package/dist/{date-range-9sVFbxK0.js.map → date-range-CA_4vjWe.js.map} +1 -1
  77. package/dist/{date-range-DqaB9kwM.cjs → date-range-DinaPWK0.cjs} +2 -2
  78. package/dist/{date-range-DqaB9kwM.cjs.map → date-range-DinaPWK0.cjs.map} +1 -1
  79. package/dist/{date-range-inline-DGRKHzTX.cjs → date-range-inline-CGMvaSeh.cjs} +2 -2
  80. package/dist/{date-range-inline-DGRKHzTX.cjs.map → date-range-inline-CGMvaSeh.cjs.map} +1 -1
  81. package/dist/{date-range-inline-Bqnc8wBb.js → date-range-inline-DFjyAvPv.js} +3 -3
  82. package/dist/{date-range-inline-Bqnc8wBb.js.map → date-range-inline-DFjyAvPv.js.map} +1 -1
  83. package/dist/date-range-inline.cjs +1 -1
  84. package/dist/date-range-inline.js +1 -1
  85. package/dist/date-range.cjs +1 -1
  86. package/dist/date-range.js +1 -1
  87. package/dist/{delay-u5isp6Vb.js → delay-BJwsHbg3.js} +2 -2
  88. package/dist/{delay-u5isp6Vb.js.map → delay-BJwsHbg3.js.map} +1 -1
  89. package/dist/{delay-ClP0gwsX.cjs → delay-CHAH30wI.cjs} +2 -2
  90. package/dist/{delay-ClP0gwsX.cjs.map → delay-CHAH30wI.cjs.map} +1 -1
  91. package/dist/delay.cjs +1 -1
  92. package/dist/delay.js +1 -1
  93. package/dist/{dialog-content-CGgHTvcB.cjs → dialog-content-Bp2kwzxD.cjs} +2 -2
  94. package/dist/{dialog-content-CGgHTvcB.cjs.map → dialog-content-Bp2kwzxD.cjs.map} +1 -1
  95. package/dist/{dialog-content-ZpgRQC1m.js → dialog-content-CEZqJRzH.js} +3 -3
  96. package/dist/{dialog-content-ZpgRQC1m.js.map → dialog-content-CEZqJRzH.js.map} +1 -1
  97. package/dist/dialog.cjs +1 -1
  98. package/dist/dialog.js +1 -1
  99. package/dist/{divider-CIXGsKd7.cjs → divider-BEVgt1wl.cjs} +2 -2
  100. package/dist/{divider-CIXGsKd7.cjs.map → divider-BEVgt1wl.cjs.map} +1 -1
  101. package/dist/{divider-BK4PNB76.js → divider-DfetUf4S.js} +3 -3
  102. package/dist/{divider-BK4PNB76.js.map → divider-DfetUf4S.js.map} +1 -1
  103. package/dist/divider.cjs +1 -1
  104. package/dist/divider.js +1 -1
  105. package/dist/{dropdown-content-CeYUqD56.cjs → dropdown-content-CERnSXjI.cjs} +2 -2
  106. package/dist/{dropdown-content-CeYUqD56.cjs.map → dropdown-content-CERnSXjI.cjs.map} +1 -1
  107. package/dist/{dropdown-content-DbHKYDCS.js → dropdown-content-TJmZ3rpA.js} +3 -3
  108. package/dist/{dropdown-content-DbHKYDCS.js.map → dropdown-content-TJmZ3rpA.js.map} +1 -1
  109. package/dist/dropdown.cjs +1 -1
  110. package/dist/dropdown.js +1 -1
  111. package/dist/extra.cjs +1 -1
  112. package/dist/extra.js +1 -1
  113. package/dist/{flex-Dub7SPI7.cjs → flex-ByanQCYb.cjs} +2 -2
  114. package/dist/{flex-Dub7SPI7.cjs.map → flex-ByanQCYb.cjs.map} +1 -1
  115. package/dist/{flex-JcwYdb2G.js → flex-CXMNh-nH.js} +2 -2
  116. package/dist/{flex-JcwYdb2G.js.map → flex-CXMNh-nH.js.map} +1 -1
  117. package/dist/{form-CMv0SQko.js → form-Boc5Pqhf.js} +2 -2
  118. package/dist/{form-CMv0SQko.js.map → form-Boc5Pqhf.js.map} +1 -1
  119. package/dist/{form-DKF6UgIS.cjs → form-lhQx_Ry0.cjs} +2 -2
  120. package/dist/{form-DKF6UgIS.cjs.map → form-lhQx_Ry0.cjs.map} +1 -1
  121. package/dist/form.cjs +1 -1
  122. package/dist/form.js +1 -1
  123. package/dist/{formField.mixin-D0GeY28y.js → formField.mixin-CX7_nvVy.js} +2 -2
  124. package/dist/{formField.mixin-D0GeY28y.js.map → formField.mixin-CX7_nvVy.js.map} +1 -1
  125. package/dist/{formField.mixin-BrHllh45.cjs → formField.mixin-DhiLSVHT.cjs} +2 -2
  126. package/dist/{formField.mixin-BrHllh45.cjs.map → formField.mixin-DhiLSVHT.cjs.map} +1 -1
  127. package/dist/{icon--s5dpU1N.js → icon-BZw88sCH.js} +2 -2
  128. package/dist/{icon--s5dpU1N.js.map → icon-BZw88sCH.js.map} +1 -1
  129. package/dist/{icon-CJe2TSk1.cjs → icon-D1qw18N6.cjs} +2 -2
  130. package/dist/{icon-CJe2TSk1.cjs.map → icon-D1qw18N6.cjs.map} +1 -1
  131. package/dist/{icon-button-x5uqpaeg.cjs → icon-button-DBvZApEC.cjs} +2 -2
  132. package/dist/{icon-button-x5uqpaeg.cjs.map → icon-button-DBvZApEC.cjs.map} +1 -1
  133. package/dist/{icon-button-Ckd9jE-a.js → icon-button-TbwQrO1b.js} +3 -3
  134. package/dist/{icon-button-Ckd9jE-a.js.map → icon-button-TbwQrO1b.js.map} +1 -1
  135. package/dist/icons.cjs +1 -1
  136. package/dist/icons.js +1 -1
  137. package/dist/index.cjs +1 -1
  138. package/dist/index.js +134 -133
  139. package/dist/{input-DHNBYBq4.js → input-BUtEXu3y.js} +3 -3
  140. package/dist/{input-DHNBYBq4.js.map → input-BUtEXu3y.js.map} +1 -1
  141. package/dist/{input-BN9xQTH0.cjs → input-C0F9cNoD.cjs} +2 -2
  142. package/dist/{input-BN9xQTH0.cjs.map → input-C0F9cNoD.cjs.map} +1 -1
  143. package/dist/input.cjs +1 -1
  144. package/dist/input.js +1 -1
  145. package/dist/layout.cjs +1 -1
  146. package/dist/layout.js +1 -1
  147. package/dist/{list-rGydduh7.js → list-BCD8h2Do.js} +2 -2
  148. package/dist/{list-rGydduh7.js.map → list-BCD8h2Do.js.map} +1 -1
  149. package/dist/{list-DZAZpM5m.cjs → list-Bz6tq7ZP.cjs} +2 -2
  150. package/dist/{list-DZAZpM5m.cjs.map → list-Bz6tq7ZP.cjs.map} +1 -1
  151. package/dist/list.cjs +1 -1
  152. package/dist/list.js +1 -1
  153. package/dist/{litElement.mixin-B1eYYBf4.cjs → litElement.mixin-CII9bbap.cjs} +2 -2
  154. package/dist/{litElement.mixin-B1eYYBf4.cjs.map → litElement.mixin-CII9bbap.cjs.map} +1 -1
  155. package/dist/{litElement.mixin-Cq-COufw.js → litElement.mixin-DGeprHKB.js} +2 -2
  156. package/dist/{litElement.mixin-Cq-COufw.js.map → litElement.mixin-DGeprHKB.js.map} +1 -1
  157. package/dist/{media-hg61JS4R.cjs → media-CBLuAmNZ.cjs} +2 -2
  158. package/dist/{media-hg61JS4R.cjs.map → media-CBLuAmNZ.cjs.map} +1 -1
  159. package/dist/{media-DHgb7H9L.js → media-D6ba0wB1.js} +2 -2
  160. package/dist/{media-DHgb7H9L.js.map → media-D6ba0wB1.js.map} +1 -1
  161. package/dist/{menu-D5aDG-Rp.cjs → menu-BDQr8EZ1.cjs} +2 -2
  162. package/dist/{menu-D5aDG-Rp.cjs.map → menu-BDQr8EZ1.cjs.map} +1 -1
  163. package/dist/{menu-DvZSvoOx.js → menu-C0SauakY.js} +3 -3
  164. package/dist/{menu-DvZSvoOx.js.map → menu-C0SauakY.js.map} +1 -1
  165. package/dist/menu.cjs +1 -1
  166. package/dist/menu.js +1 -1
  167. package/dist/nav-drawer.cjs +1 -1
  168. package/dist/nav-drawer.js +1 -1
  169. package/dist/{notification-service-BzzXjm4l.cjs → notification-service-B1f848tO.cjs} +2 -2
  170. package/dist/{notification-service-BzzXjm4l.cjs.map → notification-service-B1f848tO.cjs.map} +1 -1
  171. package/dist/{notification-service-DKHubhXv.js → notification-service-X8mRASdk.js} +3 -3
  172. package/dist/{notification-service-DKHubhXv.js.map → notification-service-X8mRASdk.js.map} +1 -1
  173. package/dist/notification.cjs +1 -1
  174. package/dist/notification.js +1 -1
  175. package/dist/{option-T6zGawbH.js → option-DVlCqux7.js} +2 -2
  176. package/dist/{option-T6zGawbH.js.map → option-DVlCqux7.js.map} +1 -1
  177. package/dist/{option-DqN5-RK7.cjs → option-ckV22mLf.cjs} +2 -2
  178. package/dist/{option-DqN5-RK7.cjs.map → option-ckV22mLf.cjs.map} +1 -1
  179. package/dist/option.cjs +1 -1
  180. package/dist/option.js +1 -1
  181. package/dist/{payment-card-form-C42icpX4.cjs → payment-card-form-BUsPCZPp.cjs} +2 -2
  182. package/dist/{payment-card-form-C42icpX4.cjs.map → payment-card-form-BUsPCZPp.cjs.map} +1 -1
  183. package/dist/{payment-card-form-GEOaUypQ.js → payment-card-form-D7PV8spa.js} +3 -3
  184. package/dist/{payment-card-form-GEOaUypQ.js.map → payment-card-form-D7PV8spa.js.map} +1 -1
  185. package/dist/{progress-EL16etnw.js → progress-BZ6AFT0f.js} +2 -2
  186. package/dist/{progress-EL16etnw.js.map → progress-BZ6AFT0f.js.map} +1 -1
  187. package/dist/{progress-CL35MIi9.cjs → progress-CABg45XF.cjs} +2 -2
  188. package/dist/{progress-CL35MIi9.cjs.map → progress-CABg45XF.cjs.map} +1 -1
  189. package/dist/progress.cjs +1 -1
  190. package/dist/progress.js +1 -1
  191. package/dist/{radio-button-BQ7snEVj.js → radio-button-D4Y1bWGN.js} +3 -3
  192. package/dist/{radio-button-BQ7snEVj.js.map → radio-button-D4Y1bWGN.js.map} +1 -1
  193. package/dist/{radio-button-DrSJB4B-.cjs → radio-button-DQ4VclEZ.cjs} +2 -2
  194. package/dist/{radio-button-DrSJB4B-.cjs.map → radio-button-DQ4VclEZ.cjs.map} +1 -1
  195. package/dist/radio-group.cjs +1 -1
  196. package/dist/radio-group.js +1 -1
  197. package/dist/{schmancy-steps-container-2WW-9LYL.js → schmancy-steps-container-BskkdQwD.js} +2 -2
  198. package/dist/{schmancy-steps-container-2WW-9LYL.js.map → schmancy-steps-container-BskkdQwD.js.map} +1 -1
  199. package/dist/{schmancy-steps-container-C_HHZFeb.cjs → schmancy-steps-container-CZ0upElE.cjs} +2 -2
  200. package/dist/{schmancy-steps-container-C_HHZFeb.cjs.map → schmancy-steps-container-CZ0upElE.cjs.map} +1 -1
  201. package/dist/select-DfQogfes.cjs +57 -0
  202. package/dist/{select-Bl8FO2kb.js.map → select-DfQogfes.cjs.map} +1 -1
  203. package/dist/{select-Bl8FO2kb.js → select-wui4bIUE.js} +23 -20
  204. package/dist/select-wui4bIUE.js.map +1 -0
  205. package/dist/select.cjs +1 -1
  206. package/dist/select.js +3 -2
  207. package/dist/{selector-hook-CYMLsOvh.cjs → selector-hook-Bf_lCnGW.cjs} +2 -2
  208. package/dist/{selector-hook-CYMLsOvh.cjs.map → selector-hook-Bf_lCnGW.cjs.map} +1 -1
  209. package/dist/{selector-hook-BvXML7_4.js → selector-hook-DL0SIQiY.js} +33 -33
  210. package/dist/{selector-hook-BvXML7_4.js.map → selector-hook-DL0SIQiY.js.map} +1 -1
  211. package/dist/{sheet-BiUUD0Td.cjs → sheet-DMOsLeJL.cjs} +2 -2
  212. package/dist/{sheet-BiUUD0Td.cjs.map → sheet-DMOsLeJL.cjs.map} +1 -1
  213. package/dist/{sheet-WpG2m2yT.js → sheet-DmrPnCAk.js} +4 -4
  214. package/dist/{sheet-WpG2m2yT.js.map → sheet-DmrPnCAk.js.map} +1 -1
  215. package/dist/sheet.cjs +1 -1
  216. package/dist/sheet.js +7 -6
  217. package/dist/{sheet.service-COPNmxwp.js → sheet.service-22gvsyq8.js} +125 -109
  218. package/dist/{sheet.service-COPNmxwp.js.map → sheet.service-22gvsyq8.js.map} +1 -1
  219. package/dist/{sheet.service-B5sh8d0k.cjs → sheet.service-sSYoAEbY.cjs} +3 -3
  220. package/dist/{sheet.service-B5sh8d0k.cjs.map → sheet.service-sSYoAEbY.cjs.map} +1 -1
  221. package/dist/{slider-DX-XUnE-.cjs → slider-C2oEvRAS.cjs} +2 -2
  222. package/dist/{slider-DX-XUnE-.cjs.map → slider-C2oEvRAS.cjs.map} +1 -1
  223. package/dist/{slider-4ggti1yr.js → slider-Dwm1KfNL.js} +3 -3
  224. package/dist/{slider-4ggti1yr.js.map → slider-Dwm1KfNL.js.map} +1 -1
  225. package/dist/slider.cjs +1 -1
  226. package/dist/slider.js +1 -1
  227. package/dist/{spinner-BPqLh7JL.js → spinner-Bh6XkC88.js} +2 -2
  228. package/dist/{spinner-BPqLh7JL.js.map → spinner-Bh6XkC88.js.map} +1 -1
  229. package/dist/{spinner-Cq8tY2xk.cjs → spinner-DKgZemVU.cjs} +2 -2
  230. package/dist/{spinner-Cq8tY2xk.cjs.map → spinner-DKgZemVU.cjs.map} +1 -1
  231. package/dist/steps.cjs +1 -1
  232. package/dist/steps.js +1 -1
  233. package/dist/store.cjs +1 -1
  234. package/dist/store.js +1 -1
  235. package/dist/{surface-YyZ8eXfj.cjs → surface-DIIUamff.cjs} +2 -2
  236. package/dist/{surface-YyZ8eXfj.cjs.map → surface-DIIUamff.cjs.map} +1 -1
  237. package/dist/{surface-1xboRERM.js → surface-DhiuAGb8.js} +2 -2
  238. package/dist/{surface-1xboRERM.js.map → surface-DhiuAGb8.js.map} +1 -1
  239. package/dist/surface.cjs +1 -1
  240. package/dist/surface.js +1 -1
  241. package/dist/{table-DpXmflf7.cjs → table-BrAoSQhN.cjs} +2 -2
  242. package/dist/{table-DpXmflf7.cjs.map → table-BrAoSQhN.cjs.map} +1 -1
  243. package/dist/{table-C6EWKqDY.js → table-DSZ9kmUG.js} +2 -2
  244. package/dist/{table-C6EWKqDY.js.map → table-DSZ9kmUG.js.map} +1 -1
  245. package/dist/table.cjs +1 -1
  246. package/dist/table.js +1 -1
  247. package/dist/{tabs-compatibility-AFzKAP2D.js → tabs-compatibility-B7aJnQ0X.js} +2 -2
  248. package/dist/{tabs-compatibility-AFzKAP2D.js.map → tabs-compatibility-B7aJnQ0X.js.map} +1 -1
  249. package/dist/{tabs-compatibility-ThgWuSrK.cjs → tabs-compatibility-Ck74XeID.cjs} +2 -2
  250. package/dist/{tabs-compatibility-ThgWuSrK.cjs.map → tabs-compatibility-Ck74XeID.cjs.map} +1 -1
  251. package/dist/tabs.cjs +1 -1
  252. package/dist/tabs.js +1 -1
  253. package/dist/tailwind.mixin-CBu1BEQZ.cjs +2 -0
  254. package/dist/{tailwind.mixin-DNME2oUL.cjs.map → tailwind.mixin-CBu1BEQZ.cjs.map} +1 -1
  255. package/dist/tailwind.mixin-DWhCm94g.js +43 -0
  256. package/dist/{tailwind.mixin-epCxS6FK.js.map → tailwind.mixin-DWhCm94g.js.map} +1 -1
  257. package/dist/teleport.cjs +1 -1
  258. package/dist/teleport.js +1 -1
  259. package/dist/{textarea-JO7OVdfk.js → textarea-Bq0XdGaH.js} +2 -2
  260. package/dist/{textarea-JO7OVdfk.js.map → textarea-Bq0XdGaH.js.map} +1 -1
  261. package/dist/{textarea-B_TlKSop.cjs → textarea-CGTMdhoF.cjs} +2 -2
  262. package/dist/{textarea-B_TlKSop.cjs.map → textarea-CGTMdhoF.cjs.map} +1 -1
  263. package/dist/textarea.cjs +1 -1
  264. package/dist/textarea.js +1 -1
  265. package/dist/{theme-button-DnrKANEK.cjs → theme-button-CznhJ8g_.cjs} +2 -2
  266. package/dist/{theme-button-DnrKANEK.cjs.map → theme-button-CznhJ8g_.cjs.map} +1 -1
  267. package/dist/{theme-button-C8cK7un6.js → theme-button-DYoygmRA.js} +2 -2
  268. package/dist/{theme-button-C8cK7un6.js.map → theme-button-DYoygmRA.js.map} +1 -1
  269. package/dist/theme-button.cjs +1 -1
  270. package/dist/theme-button.js +1 -1
  271. package/dist/theme.cjs +1 -1
  272. package/dist/theme.js +1 -1
  273. package/dist/{timezone-C56jMhLK.cjs → timezone-BCGcdasU.cjs} +2 -2
  274. package/dist/{timezone-C56jMhLK.cjs.map → timezone-BCGcdasU.cjs.map} +1 -1
  275. package/dist/{timezone-CEEEd-9_.js → timezone-Co7gqqQt.js} +3 -3
  276. package/dist/{timezone-CEEEd-9_.js.map → timezone-Co7gqqQt.js.map} +1 -1
  277. package/dist/{tooltip-twQMYpmk.cjs → tooltip-Bqa0D34J.cjs} +2 -2
  278. package/dist/{tooltip-twQMYpmk.cjs.map → tooltip-Bqa0D34J.cjs.map} +1 -1
  279. package/dist/{tooltip-CnuYee5c.js → tooltip-DBuaAFmK.js} +2 -2
  280. package/dist/{tooltip-CnuYee5c.js.map → tooltip-DBuaAFmK.js.map} +1 -1
  281. package/dist/tooltip.cjs +1 -1
  282. package/dist/tooltip.js +1 -1
  283. package/dist/{tree-Dv5R6kdP.cjs → tree-CFeXYaJy.cjs} +2 -2
  284. package/dist/{tree-Dv5R6kdP.cjs.map → tree-CFeXYaJy.cjs.map} +1 -1
  285. package/dist/{tree-CfnCGGn7.js → tree-CfE695gp.js} +2 -2
  286. package/dist/{tree-CfnCGGn7.js.map → tree-CfE695gp.js.map} +1 -1
  287. package/dist/tree.cjs +1 -1
  288. package/dist/tree.js +1 -1
  289. package/dist/{typewriter-egr1HiFJ.cjs → typewriter-B6Jb22Pe.cjs} +2 -2
  290. package/dist/{typewriter-egr1HiFJ.cjs.map → typewriter-B6Jb22Pe.cjs.map} +1 -1
  291. package/dist/{typewriter-DAxRjeRy.js → typewriter-BZ_adVXB.js} +4 -4
  292. package/dist/{typewriter-DAxRjeRy.js.map → typewriter-BZ_adVXB.js.map} +1 -1
  293. package/dist/typewriter.cjs +1 -1
  294. package/dist/typewriter.js +1 -1
  295. package/dist/{typography-De5UXL0j.js → typography-DI5RXpWs.js} +2 -2
  296. package/dist/{typography-De5UXL0j.js.map → typography-DI5RXpWs.js.map} +1 -1
  297. package/dist/{typography-DVZ2ezpU.cjs → typography-DvVeO1a_.cjs} +2 -2
  298. package/dist/{typography-DVZ2ezpU.cjs.map → typography-DvVeO1a_.cjs.map} +1 -1
  299. package/dist/typography.cjs +1 -1
  300. package/dist/typography.js +1 -1
  301. package/package.json +1 -1
  302. package/types/src/sheet/sheet.service.d.ts +1 -0
  303. package/dist/avatar-CRWIpCVJ.cjs.map +0 -1
  304. package/dist/avatar-CZ4ubNmx.js.map +0 -1
  305. package/dist/select-BHRtVoTo.cjs +0 -56
  306. package/dist/select-BHRtVoTo.cjs.map +0 -1
  307. package/dist/tailwind.mixin-DNME2oUL.cjs +0 -2
  308. package/dist/tailwind.mixin-epCxS6FK.js +0 -43
package/dist/ai/tabs.md CHANGED
@@ -1,71 +1,194 @@
1
1
  # Schmancy Tabs - AI Reference
2
2
 
3
- ```js
4
- // Basic Tabs
5
- <schmancy-tabs value="tab1">
6
- <schmancy-tab value="tab1" label="Tab 1"></schmancy-tab>
7
- <schmancy-tab value="tab2" label="Tab 2"></schmancy-tab>
8
- <schmancy-tab value="tab3" label="Tab 3"></schmancy-tab>
3
+ ## Components
4
+
5
+ ### schmancy-tab-group
6
+ Container component that manages tab navigation and content display. Supports two modes: "tabs" (traditional tab interface) and "scroll" (scrollspy navigation).
7
+
8
+ ### schmancy-tab
9
+ Individual tab component that must be placed inside schmancy-tab-group. Contains the content for each tab.
10
+
11
+ ## API Reference
12
+
13
+ ### schmancy-tab-group
14
+
15
+ ```typescript
16
+ // Properties
17
+ mode: 'tabs' | 'scroll' = 'tabs' // Navigation mode
18
+ rounded: boolean = true // Apply rounded styling to tab navigation
19
+ activeTab: string // Currently active tab value
20
+
21
+ // Events
22
+ @tab-changed // Fired when active tab changes, detail contains the active tab value
23
+
24
+ // Slots
25
+ default // Place schmancy-tab components here
26
+ ```
27
+
28
+ ### schmancy-tab
29
+
30
+ ```typescript
31
+ // Properties
32
+ label: string // Tab label displayed in navigation
33
+ value: string // Unique identifier for the tab
34
+ active: boolean // Whether tab is currently active (managed by tab-group)
35
+
36
+ // Slots
37
+ default // Tab content
38
+ ```
39
+
40
+ ## Usage Examples
41
+
42
+ ### Basic Tabs Mode (Default)
43
+ ```html
44
+ <schmancy-tab-group activeTab="tab1" @tab-changed=${(e) => console.log('Active tab:', e.detail)}>
45
+ <schmancy-tab value="tab1" label="Profile">
46
+ <div class="p-4">
47
+ <h3>Profile Content</h3>
48
+ <p>User profile information goes here.</p>
49
+ </div>
50
+ </schmancy-tab>
9
51
 
10
- <div slot="panel" data-tab="tab1">Content for Tab 1</div>
11
- <div slot="panel" data-tab="tab2">Content for Tab 2</div>
12
- <div slot="panel" data-tab="tab3">Content for Tab 3</div>
13
- </schmancy-tabs>
14
-
15
- // Tabs with Scrolling
16
- <schmancy-tabs value="tab1" scrollable>
17
- <!-- Tab definitions -->
18
- </schmancy-tabs>
19
-
20
- // Tabs Groups (for complex tab structures)
21
- <schmancy-tabs-group value="tab1" @change=${handleTabChange}>
22
- <schmancy-tab value="tab1" label="Tab 1"></schmancy-tab>
23
- <schmancy-tab value="tab2" label="Tab 2"></schmancy-tab>
24
- <schmancy-tab value="tab3" label="Tab 3"></schmancy-tab>
52
+ <schmancy-tab value="tab2" label="Settings">
53
+ <div class="p-4">
54
+ <h3>Settings Content</h3>
55
+ <p>Application settings go here.</p>
56
+ </div>
57
+ </schmancy-tab>
25
58
 
26
- <div data-tab="tab1">Content for Tab 1</div>
27
- <div data-tab="tab2">Content for Tab 2</div>
28
- <div data-tab="tab3">Content for Tab 3</div>
29
- </schmancy-tabs-group>
30
-
31
- // Tabs with Icons
32
- <schmancy-tabs value="tab1">
33
- <schmancy-tab value="tab1">
34
- <schmancy-icon icon="home"></schmancy-icon>
35
- <span>Home</span>
59
+ <schmancy-tab value="tab3" label="Security">
60
+ <div class="p-4">
61
+ <h3>Security Content</h3>
62
+ <p>Security options go here.</p>
63
+ </div>
36
64
  </schmancy-tab>
37
- <schmancy-tab value="tab2">
38
- <schmancy-icon icon="settings"></schmancy-icon>
39
- <span>Settings</span>
65
+ </schmancy-tab-group>
66
+ ```
67
+
68
+ ### Scroll Mode (Scrollspy)
69
+ ```html
70
+ <!-- Navigation stays sticky at top, highlights active section while scrolling -->
71
+ <schmancy-tab-group mode="scroll" activeTab="intro">
72
+ <schmancy-tab value="intro" label="Introduction">
73
+ <section class="min-h-screen p-8">
74
+ <h2>Introduction</h2>
75
+ <p>Long content that requires scrolling...</p>
76
+ </section>
77
+ </schmancy-tab>
78
+
79
+ <schmancy-tab value="features" label="Features">
80
+ <section class="min-h-screen p-8">
81
+ <h2>Features</h2>
82
+ <p>Feature descriptions...</p>
83
+ </section>
40
84
  </schmancy-tab>
41
- </schmancy-tabs>
42
-
43
- // Tab Attributes
44
- value="tab-id" // Unique identifier for the tab
45
- label="Tab Label" // Text label (optional if using custom content)
46
- disabled? // Disabled state
47
- icon="icon-name" // Icon to display (alternative to using schmancy-icon in content)
48
-
49
- // Tab Methods and Events
50
- tabs.select(value) -> void // Programmatically select a tab
51
- @change // Fires when tab selection changes with { detail: { value } }
52
-
53
- // Examples
54
- // Basic usage
55
- <schmancy-tabs value="tab1" @change=${(e) => console.log('Selected tab:', e.detail.value)}>
56
- <schmancy-tab value="tab1" label="Info"></schmancy-tab>
57
- <schmancy-tab value="tab2" label="Settings"></schmancy-tab>
58
85
 
59
- <div slot="panel" data-tab="tab1">Information content here</div>
60
- <div slot="panel" data-tab="tab2">Settings content here</div>
61
- </schmancy-tabs>
62
-
63
- // Dynamic tabs from data
64
- ${tabData.map(tab => html`
65
- <schmancy-tab value=${tab.id} label=${tab.label}></schmancy-tab>
66
- `)}
67
-
68
- ${tabData.map(tab => html`
69
- <div slot="panel" data-tab=${tab.id}>${tab.content}</div>
70
- `)}
86
+ <schmancy-tab value="pricing" label="Pricing">
87
+ <section class="min-h-screen p-8">
88
+ <h2>Pricing</h2>
89
+ <p>Pricing information...</p>
90
+ </section>
91
+ </schmancy-tab>
92
+ </schmancy-tab-group>
93
+ ```
94
+
95
+ ### Without Rounded Navigation
96
+ ```html
97
+ <schmancy-tab-group rounded=${false} activeTab="tab1">
98
+ <schmancy-tab value="tab1" label="Tab 1">Content 1</schmancy-tab>
99
+ <schmancy-tab value="tab2" label="Tab 2">Content 2</schmancy-tab>
100
+ </schmancy-tab-group>
101
+ ```
102
+
103
+ ### Programmatic Tab Selection
104
+ ```javascript
105
+ // In component
106
+ @query('schmancy-tab-group') tabGroup: any;
107
+
108
+ selectTab(tabValue: string) {
109
+ this.tabGroup.activeTab = tabValue;
110
+ }
111
+
112
+ handleTabChange(e: CustomEvent) {
113
+ console.log('Tab changed to:', e.detail);
114
+ // Update application state, router, etc.
115
+ }
116
+
117
+ // In template
118
+ html`
119
+ <schmancy-tab-group
120
+ activeTab=${this.currentTab}
121
+ @tab-changed=${this.handleTabChange}
122
+ >
123
+ <!-- tabs -->
124
+ </schmancy-tab-group>
125
+ `
126
+ ```
127
+
128
+ ### Dynamic Tabs from Data
129
+ ```javascript
130
+ const tabs = [
131
+ { value: 'overview', label: 'Overview', content: 'Overview content...' },
132
+ { value: 'details', label: 'Details', content: 'Detailed information...' },
133
+ { value: 'history', label: 'History', content: 'Historical data...' }
134
+ ];
135
+
136
+ html`
137
+ <schmancy-tab-group activeTab=${tabs[0].value}>
138
+ ${tabs.map(tab => html`
139
+ <schmancy-tab value=${tab.value} label=${tab.label}>
140
+ <div class="p-4">${tab.content}</div>
141
+ </schmancy-tab>
142
+ `)}
143
+ </schmancy-tab-group>
144
+ `
145
+ ```
146
+
147
+ ## Important Notes
148
+
149
+ 1. **Tab Structure**: Each schmancy-tab must have a unique `value` and a `label` for display
150
+ 2. **Active Tab**: The `activeTab` property on tab-group controls which tab is visible
151
+ 3. **Scroll Mode**: In scroll mode, the navigation becomes sticky and highlights based on scroll position
152
+ 4. **Event Handling**: Listen to `@tab-changed` event to react to tab changes
153
+ 5. **Styling**: The tab navigation uses theme colors and can be rounded or rectangular
154
+
155
+ ## Common Patterns
156
+
157
+ ### Tabs with Icons (using label slot)
158
+ ```html
159
+ <schmancy-tab-group activeTab="home">
160
+ <schmancy-tab value="home" label="🏠 Home">
161
+ Home content
162
+ </schmancy-tab>
163
+ <schmancy-tab value="settings" label="⚙️ Settings">
164
+ Settings content
165
+ </schmancy-tab>
166
+ </schmancy-tab-group>
167
+ ```
168
+
169
+ ### Full Page Scroll Navigation
170
+ ```html
171
+ <schmancy-tab-group mode="scroll">
172
+ <schmancy-tab value="section1" label="Section 1">
173
+ <div style="height: 100vh;">Full height section 1</div>
174
+ </schmancy-tab>
175
+ <schmancy-tab value="section2" label="Section 2">
176
+ <div style="height: 100vh;">Full height section 2</div>
177
+ </schmancy-tab>
178
+ </schmancy-tab-group>
179
+ ```
180
+
181
+ ### Integration with Router
182
+ ```javascript
183
+ // React to route changes
184
+ connectedCallback() {
185
+ super.connectedCallback();
186
+ // Set active tab based on route
187
+ this.activeTab = this.getTabFromRoute();
188
+ }
189
+
190
+ handleTabChange(e: CustomEvent) {
191
+ // Update route when tab changes
192
+ this.updateRoute(e.detail);
193
+ }
71
194
  ```
@@ -1,4 +1,4 @@
1
- "use strict";const e=require("rxjs");require("lit/directives/class-map.js"),require("lit/directives/style-map.js");const h=require("./litElement.mixin-B1eYYBf4.cjs");require("./tailwind.mixin-DNME2oUL.cjs");const r=require("lit/decorators.js"),c=require("lit");var d=Object.defineProperty,u=Object.getOwnPropertyDescriptor,s=(i,a,p,n)=>{for(var l,o=n>1?void 0:n?u(a,p):a,y=i.length-1;y>=0;y--)(l=i[y])&&(o=(n?l(a,p,o):l(o))||o);return n&&o&&d(a,p,o),o};let t=class extends h.$LitElement(c.css`
1
+ "use strict";const e=require("rxjs");require("lit/directives/class-map.js"),require("lit/directives/style-map.js");const h=require("./litElement.mixin-CII9bbap.cjs");require("./tailwind.mixin-CBu1BEQZ.cjs");const r=require("lit/decorators.js"),c=require("lit");var d=Object.defineProperty,u=Object.getOwnPropertyDescriptor,s=(i,a,p,n)=>{for(var l,o=n>1?void 0:n?u(a,p):a,y=i.length-1;y>=0;y--)(l=i[y])&&(o=(n?l(a,p,o):l(o))||o);return n&&o&&d(a,p,o),o};let t=class extends h.$LitElement(c.css`
2
2
  :host {
3
3
  font-family: inherit;
4
4
  display: block;
@@ -34,4 +34,4 @@
34
34
  </span>
35
35
  </span>
36
36
  `}};s([r.property({type:String})],t.prototype,"ease",2),s([r.property({type:Number})],t.prototype,"delay",2),s([r.property({type:Number})],t.prototype,"stagger",2),s([r.property({type:Number})],t.prototype,"duration",2),s([r.property({type:Array})],t.prototype,"scale",2),s([r.property({type:Array})],t.prototype,"opacity",2),s([r.property({type:Array})],t.prototype,"translateX",2),s([r.property({type:Array})],t.prototype,"translateY",2),s([r.property({type:Array})],t.prototype,"translateZ",2),s([r.property({type:Array})],t.prototype,"rotateZ",2),s([r.property({type:Boolean})],t.prototype,"resetOnScroll",2),s([r.queryAssignedNodes()],t.prototype,"defaultSlot",2),s([r.query(".letters")],t.prototype,"letters",2),s([r.query(".ml7")],t.prototype,"ml7",2),t=s([r.customElement("schmancy-animated-text")],t);
37
- //# sourceMappingURL=animated-text-Be4toKE0.cjs.map
37
+ //# sourceMappingURL=animated-text-BitOmeE1.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"animated-text-Be4toKE0.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","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","html","__decorateClass","property","type","prototype","Number","Boolean","queryAssignedNodes","query","customElement"],"mappings":"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"}
1
+ {"version":3,"file":"animated-text-BitOmeE1.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","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","html","__decorateClass","property","type","prototype","Number","Boolean","queryAssignedNodes","query","customElement"],"mappings":"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"}
@@ -1,8 +1,8 @@
1
1
  import { concat as u, interval as g, startWith as y, filter as h, take as d, fromEvent as f, throttleTime as w, map as b, distinctUntilChanged as $, tap as c } from "rxjs";
2
2
  import "lit/directives/class-map.js";
3
3
  import "lit/directives/style-map.js";
4
- import { $ as x } from "./litElement.mixin-Cq-COufw.js";
5
- import "./tailwind.mixin-epCxS6FK.js";
4
+ import { $ as x } from "./litElement.mixin-DGeprHKB.js";
5
+ import "./tailwind.mixin-DWhCm94g.js";
6
6
  import { property as a, queryAssignedNodes as S, query as m, customElement as Z } from "lit/decorators.js";
7
7
  import { css as v, html as A } from "lit";
8
8
  var E = Object.defineProperty, O = Object.getOwnPropertyDescriptor, e = (r, s, n, i) => {
@@ -72,4 +72,4 @@ let t = class extends x(v`
72
72
  }
73
73
  };
74
74
  e([a({ type: String })], t.prototype, "ease", 2), e([a({ type: Number })], t.prototype, "delay", 2), e([a({ type: Number })], t.prototype, "stagger", 2), e([a({ type: Number })], t.prototype, "duration", 2), e([a({ type: Array })], t.prototype, "scale", 2), e([a({ type: Array })], t.prototype, "opacity", 2), e([a({ type: Array })], t.prototype, "translateX", 2), e([a({ type: Array })], t.prototype, "translateY", 2), e([a({ type: Array })], t.prototype, "translateZ", 2), e([a({ type: Array })], t.prototype, "rotateZ", 2), e([a({ type: Boolean })], t.prototype, "resetOnScroll", 2), e([S()], t.prototype, "defaultSlot", 2), e([m(".letters")], t.prototype, "letters", 2), e([m(".ml7")], t.prototype, "ml7", 2), t = e([Z("schmancy-animated-text")], t);
75
- //# sourceMappingURL=animated-text-CNPSIIYg.js.map
75
+ //# sourceMappingURL=animated-text-DcLpvyCq.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"animated-text-CNPSIIYg.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","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","html","__decorateClass","property","type","prototype","Number","Boolean","queryAssignedNodes","query","customElement"],"mappings":"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"}
1
+ {"version":3,"file":"animated-text-DcLpvyCq.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","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","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-Be4toKE0.cjs");
1
+ "use strict";require("./animated-text-BitOmeE1.cjs");
2
2
  //# sourceMappingURL=animated-text.cjs.map
@@ -1,2 +1,2 @@
1
- import "./animated-text-CNPSIIYg.js";
1
+ import "./animated-text-DcLpvyCq.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-YKEQV9hc.cjs"),e=require("./utils-BqFGvnN9.cjs");exports.FINDING_MORTIES=t.FINDING_MORTIES,exports.HERE_RICKY=t.HERE_RICKY,exports.HISTORY_STRATEGY=t.HISTORY_STRATEGY,Object.defineProperty(exports,"SchmancyArea",{enumerable:!0,get:()=>t.SchmancyArea}),exports.area=t.area,exports.routerHistory=t.routerHistory,exports.buildQueryString=e.buildQueryString,exports.compareActiveRoutes=e.compareActiveRoutes,exports.compareCustomElementConstructors=e.compareCustomElementConstructors,exports.compareRouteActions=e.compareRouteActions,exports.createRouteCacheKey=e.createRouteCacheKey,exports.debounce=e.debounce,exports.decodeRouteState=e.decodeRouteState,exports.deepMerge=e.deepMerge,exports.encodeRouteState=e.encodeRouteState,exports.extractQueryParams=e.extractQueryParams,exports.getTagName=e.getTagName,exports.isObject=e.isObject,exports.normalizeTagName=e.normalizeTagName,exports.sanitizeRouteState=e.sanitizeRouteState;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("./area.component-BTLn3oIv.cjs"),e=require("./utils-BqFGvnN9.cjs");exports.FINDING_MORTIES=t.FINDING_MORTIES,exports.HERE_RICKY=t.HERE_RICKY,exports.HISTORY_STRATEGY=t.HISTORY_STRATEGY,Object.defineProperty(exports,"SchmancyArea",{enumerable:!0,get:()=>t.SchmancyArea}),exports.area=t.area,exports.routerHistory=t.routerHistory,exports.buildQueryString=e.buildQueryString,exports.compareActiveRoutes=e.compareActiveRoutes,exports.compareCustomElementConstructors=e.compareCustomElementConstructors,exports.compareRouteActions=e.compareRouteActions,exports.createRouteCacheKey=e.createRouteCacheKey,exports.debounce=e.debounce,exports.decodeRouteState=e.decodeRouteState,exports.deepMerge=e.deepMerge,exports.encodeRouteState=e.encodeRouteState,exports.extractQueryParams=e.extractQueryParams,exports.getTagName=e.getTagName,exports.isObject=e.isObject,exports.normalizeTagName=e.normalizeTagName,exports.sanitizeRouteState=e.sanitizeRouteState;
2
2
  //# sourceMappingURL=area.cjs.map
@@ -1,8 +1,8 @@
1
- "use strict";const r=require("rxjs");require("lit/directives/class-map.js"),require("lit/directives/style-map.js");const b=require("./litElement.mixin-B1eYYBf4.cjs");require("./tailwind.mixin-DNME2oUL.cjs");const y=require("lit/decorators.js"),S=require("lit"),O=require("./index-DyJ0oDpR.cjs"),g=new r.Subject,w="FINDING_MORTIES",E="HERE_RICKY",d=new WeakMap;class l{constructor(){this.prettyURL=!1,this.mode="HISTORY",this.request=new r.ReplaySubject(1),this.current=new Map,this.$current=new r.ReplaySubject(1),this.enableHistoryMode=!0,this.findingMortiesEvent=new CustomEvent(w),this.disposed=!1,this.isProcessingPopstate=!1,this.$current.next(this.current),this.$current.subscribe(t=>{this.disposed||t.forEach((e,s)=>{this.getOrCreateAreaSubject(s).next(e)})}),this.initializeFromBrowserState()}get areaSubjects(){let t=d.get(this);return t||(t=new Map,d.set(this,t)),t}initializeFromBrowserState(){try{const t=history.state;t&&t.schmancyAreas&&(Object.entries(t.schmancyAreas).forEach(([e,s])=>{this.current.set(e,s)}),this.$current.next(this.current))}catch{}}getOrCreateAreaSubject(t){let e=this.areaSubjects.get(t);if(!e||e.closed){e=new r.ReplaySubject(1),this.areaSubjects.set(t,e);const s=this.current.get(t);s&&e.next({...s,state:s.state||{},params:s.params||{},props:s.props||{}})}return e}on(t,e=!1){if(!t)throw new Error("Area name is required");const s=this.getOrCreateAreaSubject(t).asObservable().pipe(r.distinctUntilChanged((n,o)=>n.component===o.component&&JSON.stringify(n.state)===JSON.stringify(o.state)&&JSON.stringify(n.params)===JSON.stringify(o.params)),r.shareReplay(1));return e?s.pipe(r.skip(1)):s}all(t=!1){const e=this.$current.asObservable().pipe(r.shareReplay(1));return t?e.pipe(r.skip(1)):e}getState(t){if(!t)throw new Error("Area name is required");return this.on(t).pipe(r.map(e=>e.state),r.filter(e=>e!=null),r.distinctUntilChanged((e,s)=>JSON.stringify(e)===JSON.stringify(s)),r.map(e=>e),r.catchError(e=>r.EMPTY))}params(t){if(!t)throw new Error("Area name is required");return this.on(t).pipe(r.map(e=>e.params),r.filter(e=>e!=null),r.distinctUntilChanged((e,s)=>JSON.stringify(e)===JSON.stringify(s)),r.map(e=>e),r.catchError(e=>r.EMPTY))}param(t,e){if(!t||!e)throw new Error("Area name and key are required");return this.params(t).pipe(r.map(s=>s[e]),r.filter(s=>s!==void 0),r.distinctUntilChanged(),r.map(s=>s),r.catchError(s=>r.EMPTY))}props(t){if(!t)throw new Error("Area name is required");return this.on(t).pipe(r.map(e=>e.props),r.filter(e=>e!=null),r.distinctUntilChanged((e,s)=>JSON.stringify(e)===JSON.stringify(s)),r.map(e=>e),r.catchError(e=>r.EMPTY))}prop(t,e){if(!t||!e)throw new Error("Area name and key are required");return this.props(t).pipe(r.map(s=>s[e]),r.filter(s=>s!==void 0),r.distinctUntilChanged(),r.map(s=>s),r.catchError(s=>r.EMPTY))}find(){return r.zip([r.fromEvent(window,E).pipe(r.map(t=>t.detail),r.bufferTime(0)),r.of(1).pipe(r.tap(()=>window.dispatchEvent(this.findingMortiesEvent)))]).pipe(r.map(([t])=>t),r.timeout(1),r.catchError(()=>r.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&&g.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,s,n){if(this.enableHistoryMode)try{const o=history.state||{},i=o.schmancyAreas||{},c={component:e.component,area:e.area};e.state&&Object.keys(e.state).length>0&&(c.state=e.state),e.params&&Object.keys(e.params).length>0&&(c.params=e.params),e.props&&Object.keys(e.props).length>0&&(c.props=e.props),i[t]=c;const m={...o,schmancyAreas:i},u=this.createCleanURL(i,n);s==="replace"||s==="pop"?history.replaceState(m,"",u):s!=="push"&&s||history.pushState(m,"",u)}catch{}}createCleanURL(t,e){let s="";if(e!==!0){const n=new URLSearchParams(location.search);Array.isArray(e)&&e.forEach(o=>n.delete(o)),s=n.toString(),s=s?`?${s}`:""}if(this.prettyURL){const n=t.main;if(n){let o=`/${n.component}`;const i=new URLSearchParams(s);n.params&&Object.entries(n.params).forEach(([m,u])=>{typeof u!="string"&&typeof u!="number"||i.set(m,String(u))});const c=i.toString();return o+(c?`?${c}`:"")}}try{const n={};return Object.entries(t).forEach(([o,i])=>{const c={component:i.component};i.state&&Object.keys(i.state).length>0&&(c.state=i.state),i.params&&Object.keys(i.params).length>0&&(c.params=i.params),i.props&&Object.keys(i.props).length>0&&(c.props=i.props),n[o]=c}),`/${encodeURIComponent(JSON.stringify(n))}${s}`}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),s=JSON.parse(e);if(typeof s=="object"&&s!==null)return s}catch{}return{}}dispatchAreaEvent(t,e){const s=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(s)}pop(t){if(!t)throw new Error("Area name is required");if(this.current.delete(t),this.$current.next(this.current),this.enableHistoryMode)try{const e=history.state||{},s={...e.schmancyAreas||{}};delete s[t];const n={...e,schmancyAreas:s},o=this.createCleanURL(s);history.replaceState(n,"",o)}catch{}}clear(){this.areaSubjects.forEach(t=>t.complete()),this.areaSubjects.clear(),this.current.clear(),this.$current.next(this.current),this.enableHistoryMode&&history.replaceState({schmancyAreas:{}},"",`/${location.search}`)}dispose(){this.disposed||(this.disposed=!0,this.areaSubjects.forEach(t=>t.complete()),this.areaSubjects.clear(),this.request.complete(),this.$current.complete(),g.complete(),this.current.clear(),d.delete(this))}static getInstance(){return l.instance||(l.instance=new l),l.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 p=l.getInstance();typeof window<"u"&&window.addEventListener("unload",()=>{p.dispose()});var h=(a=>(a.push="push",a.replace="replace",a.pop="pop",a.silent="silent",a))(h||{}),A=Object.defineProperty,C=Object.getOwnPropertyDescriptor,f=(a,t,e,s)=>{for(var n,o=s>1?void 0:s?C(t,e):t,i=a.length-1;i>=0;i--)(n=a[i])&&(o=(s?n(t,e,o):n(o))||o);return s&&o&&A(t,e,o),o};exports.SchmancyArea=class extends b.$LitElement(S.css`
1
+ "use strict";const r=require("rxjs");require("lit/directives/class-map.js"),require("lit/directives/style-map.js");const b=require("./litElement.mixin-CII9bbap.cjs");require("./tailwind.mixin-CBu1BEQZ.cjs");const y=require("lit/decorators.js"),S=require("lit"),O=require("./index-DyJ0oDpR.cjs"),g=new r.Subject,w="FINDING_MORTIES",E="HERE_RICKY",d=new WeakMap;class l{constructor(){this.prettyURL=!1,this.mode="HISTORY",this.request=new r.ReplaySubject(1),this.current=new Map,this.$current=new r.ReplaySubject(1),this.enableHistoryMode=!0,this.findingMortiesEvent=new CustomEvent(w),this.disposed=!1,this.isProcessingPopstate=!1,this.$current.next(this.current),this.$current.subscribe(t=>{this.disposed||t.forEach((e,s)=>{this.getOrCreateAreaSubject(s).next(e)})}),this.initializeFromBrowserState()}get areaSubjects(){let t=d.get(this);return t||(t=new Map,d.set(this,t)),t}initializeFromBrowserState(){try{const t=history.state;t&&t.schmancyAreas&&(Object.entries(t.schmancyAreas).forEach(([e,s])=>{this.current.set(e,s)}),this.$current.next(this.current))}catch{}}getOrCreateAreaSubject(t){let e=this.areaSubjects.get(t);if(!e||e.closed){e=new r.ReplaySubject(1),this.areaSubjects.set(t,e);const s=this.current.get(t);s&&e.next({...s,state:s.state||{},params:s.params||{},props:s.props||{}})}return e}on(t,e=!1){if(!t)throw new Error("Area name is required");const s=this.getOrCreateAreaSubject(t).asObservable().pipe(r.distinctUntilChanged((n,o)=>n.component===o.component&&JSON.stringify(n.state)===JSON.stringify(o.state)&&JSON.stringify(n.params)===JSON.stringify(o.params)),r.shareReplay(1));return e?s.pipe(r.skip(1)):s}all(t=!1){const e=this.$current.asObservable().pipe(r.shareReplay(1));return t?e.pipe(r.skip(1)):e}getState(t){if(!t)throw new Error("Area name is required");return this.on(t).pipe(r.map(e=>e.state),r.filter(e=>e!=null),r.distinctUntilChanged((e,s)=>JSON.stringify(e)===JSON.stringify(s)),r.map(e=>e),r.catchError(e=>r.EMPTY))}params(t){if(!t)throw new Error("Area name is required");return this.on(t).pipe(r.map(e=>e.params),r.filter(e=>e!=null),r.distinctUntilChanged((e,s)=>JSON.stringify(e)===JSON.stringify(s)),r.map(e=>e),r.catchError(e=>r.EMPTY))}param(t,e){if(!t||!e)throw new Error("Area name and key are required");return this.params(t).pipe(r.map(s=>s[e]),r.filter(s=>s!==void 0),r.distinctUntilChanged(),r.map(s=>s),r.catchError(s=>r.EMPTY))}props(t){if(!t)throw new Error("Area name is required");return this.on(t).pipe(r.map(e=>e.props),r.filter(e=>e!=null),r.distinctUntilChanged((e,s)=>JSON.stringify(e)===JSON.stringify(s)),r.map(e=>e),r.catchError(e=>r.EMPTY))}prop(t,e){if(!t||!e)throw new Error("Area name and key are required");return this.props(t).pipe(r.map(s=>s[e]),r.filter(s=>s!==void 0),r.distinctUntilChanged(),r.map(s=>s),r.catchError(s=>r.EMPTY))}find(){return r.zip([r.fromEvent(window,E).pipe(r.map(t=>t.detail),r.bufferTime(0)),r.of(1).pipe(r.tap(()=>window.dispatchEvent(this.findingMortiesEvent)))]).pipe(r.map(([t])=>t),r.timeout(1),r.catchError(()=>r.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&&g.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,s,n){if(this.enableHistoryMode)try{const o=history.state||{},i=o.schmancyAreas||{},c={component:e.component,area:e.area};e.state&&Object.keys(e.state).length>0&&(c.state=e.state),e.params&&Object.keys(e.params).length>0&&(c.params=e.params),e.props&&Object.keys(e.props).length>0&&(c.props=e.props),i[t]=c;const m={...o,schmancyAreas:i},u=this.createCleanURL(i,n);s==="replace"||s==="pop"?history.replaceState(m,"",u):s!=="push"&&s||history.pushState(m,"",u)}catch{}}createCleanURL(t,e){let s="";if(e!==!0){const n=new URLSearchParams(location.search);Array.isArray(e)&&e.forEach(o=>n.delete(o)),s=n.toString(),s=s?`?${s}`:""}if(this.prettyURL){const n=t.main;if(n){let o=`/${n.component}`;const i=new URLSearchParams(s);n.params&&Object.entries(n.params).forEach(([m,u])=>{typeof u!="string"&&typeof u!="number"||i.set(m,String(u))});const c=i.toString();return o+(c?`?${c}`:"")}}try{const n={};return Object.entries(t).forEach(([o,i])=>{const c={component:i.component};i.state&&Object.keys(i.state).length>0&&(c.state=i.state),i.params&&Object.keys(i.params).length>0&&(c.params=i.params),i.props&&Object.keys(i.props).length>0&&(c.props=i.props),n[o]=c}),`/${encodeURIComponent(JSON.stringify(n))}${s}`}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),s=JSON.parse(e);if(typeof s=="object"&&s!==null)return s}catch{}return{}}dispatchAreaEvent(t,e){const s=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(s)}pop(t){if(!t)throw new Error("Area name is required");if(this.current.delete(t),this.$current.next(this.current),this.enableHistoryMode)try{const e=history.state||{},s={...e.schmancyAreas||{}};delete s[t];const n={...e,schmancyAreas:s},o=this.createCleanURL(s);history.replaceState(n,"",o)}catch{}}clear(){this.areaSubjects.forEach(t=>t.complete()),this.areaSubjects.clear(),this.current.clear(),this.$current.next(this.current),this.enableHistoryMode&&history.replaceState({schmancyAreas:{}},"",`/${location.search}`)}dispose(){this.disposed||(this.disposed=!0,this.areaSubjects.forEach(t=>t.complete()),this.areaSubjects.clear(),this.request.complete(),this.$current.complete(),g.complete(),this.current.clear(),d.delete(this))}static getInstance(){return l.instance||(l.instance=new l),l.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 p=l.getInstance();typeof window<"u"&&window.addEventListener("unload",()=>{p.dispose()});var h=(a=>(a.push="push",a.replace="replace",a.pop="pop",a.silent="silent",a))(h||{}),A=Object.defineProperty,C=Object.getOwnPropertyDescriptor,f=(a,t,e,s)=>{for(var n,o=s>1?void 0:s?C(t,e):t,i=a.length-1;i>=0;i--)(n=a[i])&&(o=(s?n(t,e,o):n(o))||o);return s&&o&&A(t,e,o),o};exports.SchmancyArea=class extends b.$LitElement(S.css`
2
2
  :host {
3
3
  position: relative;
4
4
  display: block;
5
5
  inset: 0;
6
6
  }
7
7
  `){getComponentFromPathname(a,t){return r.of(a).pipe(r.map(e=>e.split("/").pop()??""),r.map(e=>{try{return JSON.parse(decodeURIComponent(e))}catch{return{}}}),r.map(e=>e[this.name]),r.map(e=>!e&&this.default?{component:this.default,state:void 0,params:void 0}:e),r.filter(e=>O.libExports.isPresent(e)),r.map(e=>({area:this.name,component:e.component??this.default,state:e.state||{},params:e.params||{},historyStrategy:t})),r.catchError(e=>this.default?r.of({area:this.name,component:this.default,historyStrategy:t,state:{},params:{},props:{}}):r.EMPTY))}getComponentFromBrowserState(a){try{const t=a.state;if(t&&t.schmancyAreas&&t.schmancyAreas[this.name]){const e=t.schmancyAreas[this.name];return{area:this.name,component:e.component,state:e.state||{},params:e.params||{},historyStrategy:h.silent,_source:"browser"}}}catch{}return null}firstUpdated(){if(!this.name)throw new Error("Area name or default component not set");r.merge(r.of(location.pathname).pipe(r.switchMap(a=>this.getComponentFromPathname(a,h.silent)),r.take(1),r.tap(a=>{})),p.request.pipe(r.filter(({area:a})=>a===this.name),r.tap(a=>{})),r.fromEvent(window,"popstate").pipe(r.switchMap(a=>{const t=a.state?.schmancyAreas?.[this.name],e=a.target.location.pathname;return t?r.of({area:this.name,component:t.component,state:t.state||{},params:t.params||{},historyStrategy:h.silent}):this.getComponentFromPathname(e,h.silent).pipe(r.switchMap(s=>s.component||this.default?r.of(s):r.of({area:this.name,component:"",state:{},params:{},historyStrategy:h.silent})))}),r.tap(a=>{})),p.$current.pipe(r.map(a=>!a.has(this.name)),r.distinctUntilChanged(),r.filter(a=>a),r.map(()=>({area:this.name,component:this.default||"",state:{},params:{},historyStrategy:h.silent})),r.tap(()=>{}))).pipe(r.filter(a=>a.component!==null&&a.component!==void 0),r.takeUntil(this.disconnecting),r.distinctUntilChanged((a,t)=>{let e="",s="";typeof a.component=="function"?e=a.component.name||a.component.toString():typeof a.component=="string"&&(e=a.component),typeof t.component=="function"?s=t.component.name||t.component.toString():typeof t.component=="string"&&(s=t.component);const n=m=>m?.replaceAll("-","").toLowerCase(),o=n(e)===n(s),i=JSON.stringify(a.params||{})===JSON.stringify(t.params||{}),c=JSON.stringify(a.state||{})===JSON.stringify(t.state||{});return o&&i&&c})).pipe(r.switchMap(a=>{const t=a.component;return t instanceof Promise?r.from(t).pipe(r.map(e=>({component:e.exports?.default||e.default,route:a})),r.catchError(e=>r.EMPTY)):r.of({component:t,route:a})}),r.map(({component:a,route:t})=>{let e=null;return e=a===""?null:typeof a=="string"?document.createElement(a):a instanceof HTMLElement?a:typeof a=="function"?new a:a,e&&t.params&&Object.entries(t.params).forEach(([s,n])=>{e[s]=n}),e&&t.state&&(e.state=t.state),{component:e,route:t}}),r.tap(({component:a,route:t})=>{this.updateDOM(a),this.updateInternalState(t,a),this.updateBrowserHistory(t,a)}),r.catchError(a=>r.EMPTY),r.takeUntil(this.disconnecting)).subscribe({error:a=>{}})}updateDOM(a){const t=this.shadowRoot?.children[0],e=!!t;t?.remove(),a&&(a.classList.add("opacity-0"),this.shadowRoot?.append(a),a.animate([{opacity:0},{opacity:1}],{duration:e?150:100,easing:"cubic-bezier(0.25, 0.8, 0.25, 1)",fill:"forwards"}))}updateInternalState(a,t){if(!t)return;const e={component:t.tagName.toLowerCase(),state:a.state||{},area:this.name,params:a.params||{}};p.current.set(this.name,e),p.$current.next(p.current)}updateBrowserHistory(a,t){if(!p.enableHistoryMode||!t)return;const e={component:t.tagName.toLowerCase(),state:a.state||{},area:this.name,params:a.params||{}};p._updateBrowserHistory(this.name,e,a.historyStrategy,a.clearQueryParams)}newPath(a,t){const e=location.pathname.split("/").pop();let s={};try{s=e?JSON.parse(decodeURIComponent(e)):{}}catch{s={}}t.state=t.state??{};const n=t.clearQueryParams?this.queryParamClear(t.clearQueryParams):document.location.search;return encodeURIComponent(JSON.stringify({...s,[this.name]:{component:a.toLowerCase(),state:t.state,params:t.params}})).concat(`${n}`)}queryParamClear(a){if(!a)return"";const t=new URLSearchParams(location.search);return a===!0?"":(a.forEach(e=>t.delete(e)),t.toString()===""?"":`?${t.toString()}`)}render(){return S.html` <slot> </slot> `}},f([y.property()],exports.SchmancyArea.prototype,"name",2),f([y.property()],exports.SchmancyArea.prototype,"default",2),exports.SchmancyArea=f([y.customElement("schmancy-area")],exports.SchmancyArea),exports.FINDING_MORTIES=w,exports.HERE_RICKY=E,exports.HISTORY_STRATEGY=h,exports.area=p,exports.routerHistory=g;
8
- //# sourceMappingURL=area.component-YKEQV9hc.cjs.map
8
+ //# sourceMappingURL=area.component-BTLn3oIv.cjs.map