@mhmo91/schmancy 0.2.200 → 0.2.202

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 (287) hide show
  1. package/ai/boat.md +118 -0
  2. package/ai/chips.md +89 -123
  3. package/dist/ai/boat.md +118 -0
  4. package/dist/ai/chips.md +89 -123
  5. package/dist/{animated-text-BZWvzqEZ.js → animated-text-BYS4ollO.js} +3 -3
  6. package/dist/{animated-text-BZWvzqEZ.js.map → animated-text-BYS4ollO.js.map} +1 -1
  7. package/dist/{animated-text-BgLktXr-.cjs → animated-text-jb8xtsKZ.cjs} +2 -2
  8. package/dist/{animated-text-BgLktXr-.cjs.map → animated-text-jb8xtsKZ.cjs.map} +1 -1
  9. package/dist/animated-text.cjs +1 -1
  10. package/dist/animated-text.js +1 -1
  11. package/dist/area.cjs +1 -1
  12. package/dist/{area.component-zvrF1R-P.js → area.component-DxNRxMvF.js} +4 -4
  13. package/dist/area.component-DxNRxMvF.js.map +1 -0
  14. package/dist/{area.component-CqKoQRDp.cjs → area.component-VivYGPFY.cjs} +3 -3
  15. package/dist/area.component-VivYGPFY.cjs.map +1 -0
  16. package/dist/area.js +1 -1
  17. package/dist/{autocomplete-CpYDECg0.js → autocomplete-Bau2LIoa.js} +3 -3
  18. package/dist/{autocomplete-CpYDECg0.js.map → autocomplete-Bau2LIoa.js.map} +1 -1
  19. package/dist/{autocomplete-BCE9oBkO.cjs → autocomplete-CfpLrL2J.cjs} +2 -2
  20. package/dist/{autocomplete-BCE9oBkO.cjs.map → autocomplete-CfpLrL2J.cjs.map} +1 -1
  21. package/dist/autocomplete.cjs +1 -1
  22. package/dist/autocomplete.js +1 -1
  23. package/dist/{avatar-B_y2vLrR.cjs → avatar-CUD4cs6U.cjs} +2 -2
  24. package/dist/{avatar-B_y2vLrR.cjs.map → avatar-CUD4cs6U.cjs.map} +1 -1
  25. package/dist/{avatar-B_BubJYb.js → avatar-CsMJfDiv.js} +47 -46
  26. package/dist/{avatar-B_BubJYb.js.map → avatar-CsMJfDiv.js.map} +1 -1
  27. package/dist/badge.cjs +1 -1
  28. package/dist/badge.js +1 -1
  29. package/dist/boat-BH_EwwX-.cjs +64 -0
  30. package/dist/boat-BH_EwwX-.cjs.map +1 -0
  31. package/dist/boat-CqW5lpYZ.js +95 -0
  32. package/dist/boat-CqW5lpYZ.js.map +1 -0
  33. package/dist/boat.cjs +2 -0
  34. package/dist/boat.cjs.map +1 -0
  35. package/dist/boat.js +5 -0
  36. package/dist/boat.js.map +1 -0
  37. package/dist/busy.cjs +1 -1
  38. package/dist/busy.js +1 -1
  39. package/dist/button.cjs +1 -1
  40. package/dist/button.js +1 -1
  41. package/dist/card.cjs +1 -1
  42. package/dist/card.js +1 -1
  43. package/dist/{checkbox-DATn1US_.cjs → checkbox-BPaB8gjl.cjs} +2 -2
  44. package/dist/{checkbox-DATn1US_.cjs.map → checkbox-BPaB8gjl.cjs.map} +1 -1
  45. package/dist/{checkbox-CJ6x-G_b.js → checkbox-DWzhuPa4.js} +6 -6
  46. package/dist/{checkbox-CJ6x-G_b.js.map → checkbox-DWzhuPa4.js.map} +1 -1
  47. package/dist/checkbox.cjs +1 -1
  48. package/dist/checkbox.js +1 -1
  49. package/dist/{chips-BbWIMKDU.cjs → chips-B_JKvtqB.cjs} +2 -2
  50. package/dist/{chips-BbWIMKDU.cjs.map → chips-B_JKvtqB.cjs.map} +1 -1
  51. package/dist/{chips-CcT1N7--.js → chips-K6z9BIbc.js} +9 -9
  52. package/dist/{chips-CcT1N7--.js.map → chips-K6z9BIbc.js.map} +1 -1
  53. package/dist/chips.cjs +1 -1
  54. package/dist/chips.js +1 -1
  55. package/dist/{circular-progress-JGc2_9ef.cjs → circular-progress-BG_EnVTn.cjs} +2 -2
  56. package/dist/{circular-progress-JGc2_9ef.cjs.map → circular-progress-BG_EnVTn.cjs.map} +1 -1
  57. package/dist/{circular-progress-Cs3G6PHo.js → circular-progress-irMd5G3E.js} +3 -3
  58. package/dist/{circular-progress-Cs3G6PHo.js.map → circular-progress-irMd5G3E.js.map} +1 -1
  59. package/dist/circular-progress.cjs +1 -1
  60. package/dist/circular-progress.js +1 -1
  61. package/dist/code-highlight.cjs +1 -1
  62. package/dist/code-highlight.js +1 -1
  63. package/dist/{code-preview-DXf_SN2X.cjs → code-preview-BDi-9C_7.cjs} +14 -9
  64. package/dist/{code-preview-DXf_SN2X.cjs.map → code-preview-BDi-9C_7.cjs.map} +1 -1
  65. package/dist/{code-preview-BZ-uk6y1.js → code-preview-D_QJybDt.js} +129 -124
  66. package/dist/{code-preview-BZ-uk6y1.js.map → code-preview-D_QJybDt.js.map} +1 -1
  67. package/dist/components.cjs +1 -1
  68. package/dist/components.js +1 -1
  69. package/dist/content-drawer.cjs +1 -1
  70. package/dist/content-drawer.js +1 -1
  71. package/dist/{date-range-D85imfq-.cjs → date-range--jCSlkf3.cjs} +2 -2
  72. package/dist/{date-range-D85imfq-.cjs.map → date-range--jCSlkf3.cjs.map} +1 -1
  73. package/dist/{date-range-Dt9V5MyB.js → date-range-B9UeIzcl.js} +3 -3
  74. package/dist/{date-range-Dt9V5MyB.js.map → date-range-B9UeIzcl.js.map} +1 -1
  75. package/dist/date-range.cjs +1 -1
  76. package/dist/date-range.js +1 -1
  77. package/dist/{delay-CE3iPMYG.js → delay-CCOKwDX3.js} +2 -2
  78. package/dist/{delay-CE3iPMYG.js.map → delay-CCOKwDX3.js.map} +1 -1
  79. package/dist/{delay-BH-y0tJg.cjs → delay-OOtwG41o.cjs} +2 -2
  80. package/dist/{delay-BH-y0tJg.cjs.map → delay-OOtwG41o.cjs.map} +1 -1
  81. package/dist/delay.cjs +1 -1
  82. package/dist/delay.js +1 -1
  83. package/dist/{dialog-content-BQN75NSZ.cjs → dialog-content-B3kd79fM.cjs} +2 -2
  84. package/dist/{dialog-content-BQN75NSZ.cjs.map → dialog-content-B3kd79fM.cjs.map} +1 -1
  85. package/dist/{dialog-content-E5R1XfK5.js → dialog-content-BpvJPGA8.js} +3 -3
  86. package/dist/{dialog-content-E5R1XfK5.js.map → dialog-content-BpvJPGA8.js.map} +1 -1
  87. package/dist/dialog.cjs +1 -1
  88. package/dist/dialog.js +1 -1
  89. package/dist/{divider-BEtL0P-_.cjs → divider-Bf9Slnvo.cjs} +2 -2
  90. package/dist/{divider-BEtL0P-_.cjs.map → divider-Bf9Slnvo.cjs.map} +1 -1
  91. package/dist/{divider-BlSi0WWi.js → divider-CmpZyxZz.js} +3 -3
  92. package/dist/{divider-BlSi0WWi.js.map → divider-CmpZyxZz.js.map} +1 -1
  93. package/dist/divider.cjs +1 -1
  94. package/dist/divider.js +1 -1
  95. package/dist/{dropdown-content-DkKciM_R.js → dropdown-content-CU1cly-s.js} +3 -3
  96. package/dist/{dropdown-content-DkKciM_R.js.map → dropdown-content-CU1cly-s.js.map} +1 -1
  97. package/dist/{dropdown-content-HRI7Jkak.cjs → dropdown-content-DBk4DHeT.cjs} +2 -2
  98. package/dist/{dropdown-content-HRI7Jkak.cjs.map → dropdown-content-DBk4DHeT.cjs.map} +1 -1
  99. package/dist/dropdown.cjs +1 -1
  100. package/dist/dropdown.js +1 -1
  101. package/dist/extra.cjs +1 -1
  102. package/dist/extra.js +1 -1
  103. package/dist/{flex-DHA02Mfw.js → flex-CujhhojR.js} +2 -2
  104. package/dist/{flex-DHA02Mfw.js.map → flex-CujhhojR.js.map} +1 -1
  105. package/dist/{flex-CwTn3AfA.cjs → flex-W05LrmiY.cjs} +2 -2
  106. package/dist/{flex-CwTn3AfA.cjs.map → flex-W05LrmiY.cjs.map} +1 -1
  107. package/dist/{form-DsprWndI.js → form-BHEhndln.js} +2 -2
  108. package/dist/{form-DsprWndI.js.map → form-BHEhndln.js.map} +1 -1
  109. package/dist/{form-C9llOgOw.cjs → form-D99IyIWZ.cjs} +2 -2
  110. package/dist/{form-C9llOgOw.cjs.map → form-D99IyIWZ.cjs.map} +1 -1
  111. package/dist/form.cjs +1 -1
  112. package/dist/form.js +1 -1
  113. package/dist/{icon-D967cxey.js → icon-C200ch2d.js} +2 -2
  114. package/dist/{icon-D967cxey.js.map → icon-C200ch2d.js.map} +1 -1
  115. package/dist/{icon-B1vaqlkD.cjs → icon-DwMgmWET.cjs} +2 -2
  116. package/dist/{icon-B1vaqlkD.cjs.map → icon-DwMgmWET.cjs.map} +1 -1
  117. package/dist/{icon-button-C_OqjQfc.js → icon-button-CpaZ6Sl4.js} +3 -3
  118. package/dist/{icon-button-C_OqjQfc.js.map → icon-button-CpaZ6Sl4.js.map} +1 -1
  119. package/dist/{icon-button-D6RzSEQb.cjs → icon-button-DjdXn0i9.cjs} +2 -2
  120. package/dist/{icon-button-D6RzSEQb.cjs.map → icon-button-DjdXn0i9.cjs.map} +1 -1
  121. package/dist/icons.cjs +1 -1
  122. package/dist/icons.js +1 -1
  123. package/dist/index.cjs +1 -1
  124. package/dist/index.js +157 -155
  125. package/dist/index.js.map +1 -1
  126. package/dist/{input-DschQCBp.cjs → input-BeOn-cgH.cjs} +2 -2
  127. package/dist/{input-DschQCBp.cjs.map → input-BeOn-cgH.cjs.map} +1 -1
  128. package/dist/{input-4heVsnGw.js → input-oJU4j5gv.js} +2 -2
  129. package/dist/{input-4heVsnGw.js.map → input-oJU4j5gv.js.map} +1 -1
  130. package/dist/input.cjs +1 -1
  131. package/dist/input.js +1 -1
  132. package/dist/layout.cjs +1 -1
  133. package/dist/layout.js +1 -1
  134. package/dist/{list-B1bxSmd5.cjs → list-77ofKN4f.cjs} +2 -2
  135. package/dist/{list-B1bxSmd5.cjs.map → list-77ofKN4f.cjs.map} +1 -1
  136. package/dist/{list-DE1otSG3.js → list-DA5qfp5T.js} +2 -2
  137. package/dist/{list-DE1otSG3.js.map → list-DA5qfp5T.js.map} +1 -1
  138. package/dist/list.cjs +1 -1
  139. package/dist/list.js +1 -1
  140. package/dist/{litElement.mixin-1-y-wwQg.js → litElement.mixin-BWl8md6o.js} +2 -2
  141. package/dist/{litElement.mixin-1-y-wwQg.js.map → litElement.mixin-BWl8md6o.js.map} +1 -1
  142. package/dist/{litElement.mixin-CB6DWbFn.cjs → litElement.mixin-DWxMKydc.cjs} +2 -2
  143. package/dist/{litElement.mixin-CB6DWbFn.cjs.map → litElement.mixin-DWxMKydc.cjs.map} +1 -1
  144. package/dist/{menu-TDH53RmV.cjs → menu-Bo6lczzN.cjs} +2 -2
  145. package/dist/{menu-TDH53RmV.cjs.map → menu-Bo6lczzN.cjs.map} +1 -1
  146. package/dist/{menu-B1qPlV2t.js → menu-DHJGkSYp.js} +3 -3
  147. package/dist/{menu-B1qPlV2t.js.map → menu-DHJGkSYp.js.map} +1 -1
  148. package/dist/menu.cjs +1 -1
  149. package/dist/menu.js +1 -1
  150. package/dist/nav-drawer.cjs +1 -1
  151. package/dist/nav-drawer.js +1 -1
  152. package/dist/{notification-service-D2pgTqTS.js → notification-service-DzLqQyQY.js} +3 -3
  153. package/dist/{notification-service-D2pgTqTS.js.map → notification-service-DzLqQyQY.js.map} +1 -1
  154. package/dist/{notification-service-BKSRwonz.cjs → notification-service-WLfJOHGg.cjs} +2 -2
  155. package/dist/{notification-service-BKSRwonz.cjs.map → notification-service-WLfJOHGg.cjs.map} +1 -1
  156. package/dist/notification.cjs +1 -1
  157. package/dist/notification.js +1 -1
  158. package/dist/{option-Q6l-t3es.cjs → option-D7kpmdEM.cjs} +2 -2
  159. package/dist/{option-Q6l-t3es.cjs.map → option-D7kpmdEM.cjs.map} +1 -1
  160. package/dist/{option-CLY6hO5V.js → option-DQpRizvO.js} +2 -2
  161. package/dist/{option-CLY6hO5V.js.map → option-DQpRizvO.js.map} +1 -1
  162. package/dist/option.cjs +1 -1
  163. package/dist/option.js +1 -1
  164. package/dist/{payment-card-form-BpaCnjrt.js → payment-card-form-BZLHY7HJ.js} +3 -3
  165. package/dist/{payment-card-form-BpaCnjrt.js.map → payment-card-form-BZLHY7HJ.js.map} +1 -1
  166. package/dist/{payment-card-form-V5eIamA9.cjs → payment-card-form-DfgGRWy8.cjs} +2 -2
  167. package/dist/{payment-card-form-V5eIamA9.cjs.map → payment-card-form-DfgGRWy8.cjs.map} +1 -1
  168. package/dist/{radio-button-CuTpkLr8.js → radio-button-BNpFaQX8.js} +2 -2
  169. package/dist/{radio-button-CuTpkLr8.js.map → radio-button-BNpFaQX8.js.map} +1 -1
  170. package/dist/{radio-button-Dm2I9Ic4.cjs → radio-button-BiHHYFbP.cjs} +2 -2
  171. package/dist/{radio-button-Dm2I9Ic4.cjs.map → radio-button-BiHHYFbP.cjs.map} +1 -1
  172. package/dist/radio-group.cjs +1 -1
  173. package/dist/radio-group.js +1 -1
  174. package/dist/{schmancy-steps-container-DO4tx0KH.cjs → schmancy-steps-container-DhJWC3Lf.cjs} +2 -2
  175. package/dist/{schmancy-steps-container-DO4tx0KH.cjs.map → schmancy-steps-container-DhJWC3Lf.cjs.map} +1 -1
  176. package/dist/{schmancy-steps-container-SrnYbTe-.js → schmancy-steps-container-idw6M7gT.js} +2 -2
  177. package/dist/{schmancy-steps-container-SrnYbTe-.js.map → schmancy-steps-container-idw6M7gT.js.map} +1 -1
  178. package/dist/{select-BJdRm5US.cjs → select-BQVRqkgK.cjs} +2 -2
  179. package/dist/{select-BJdRm5US.cjs.map → select-BQVRqkgK.cjs.map} +1 -1
  180. package/dist/{select-DfemPf0w.js → select-DV_tG6Z1.js} +3 -3
  181. package/dist/{select-DfemPf0w.js.map → select-DV_tG6Z1.js.map} +1 -1
  182. package/dist/select.cjs +1 -1
  183. package/dist/select.js +1 -1
  184. package/dist/{sheet-Bvj7tapP.js → sheet-DGaUsOLM.js} +3 -3
  185. package/dist/{sheet-Bvj7tapP.js.map → sheet-DGaUsOLM.js.map} +1 -1
  186. package/dist/{sheet-BtaT1eui.cjs → sheet-Ds_huwa_.cjs} +2 -2
  187. package/dist/{sheet-BtaT1eui.cjs.map → sheet-Ds_huwa_.cjs.map} +1 -1
  188. package/dist/sheet.cjs +1 -1
  189. package/dist/sheet.js +1 -1
  190. package/dist/{slider-AQvRuZ-m.cjs → slider-CJINpiTK.cjs} +2 -2
  191. package/dist/{slider-AQvRuZ-m.cjs.map → slider-CJINpiTK.cjs.map} +1 -1
  192. package/dist/{slider-DAwHA6Az.js → slider-Cl30H-Ky.js} +3 -3
  193. package/dist/{slider-DAwHA6Az.js.map → slider-Cl30H-Ky.js.map} +1 -1
  194. package/dist/slider.cjs +1 -1
  195. package/dist/slider.js +1 -1
  196. package/dist/{spinner-DrZuae0L.js → spinner-Dpo3W3c-.js} +3 -3
  197. package/dist/{spinner-DrZuae0L.js.map → spinner-Dpo3W3c-.js.map} +1 -1
  198. package/dist/{spinner-BLy3-lqb.cjs → spinner-uO1siKhB.cjs} +2 -2
  199. package/dist/{spinner-BLy3-lqb.cjs.map → spinner-uO1siKhB.cjs.map} +1 -1
  200. package/dist/steps.cjs +1 -1
  201. package/dist/steps.js +1 -1
  202. package/dist/{surface-CAlEVfSs.js → surface-C6Krb1lv.js} +3 -3
  203. package/dist/{surface-CAlEVfSs.js.map → surface-C6Krb1lv.js.map} +1 -1
  204. package/dist/{surface-BOerTano.cjs → surface-JsTE_chE.cjs} +3 -3
  205. package/dist/{surface-BOerTano.cjs.map → surface-JsTE_chE.cjs.map} +1 -1
  206. package/dist/surface.cjs +1 -1
  207. package/dist/surface.js +1 -1
  208. package/dist/{table-hjsAGpRq.js → table-Dbf_6MHf.js} +2 -2
  209. package/dist/{table-hjsAGpRq.js.map → table-Dbf_6MHf.js.map} +1 -1
  210. package/dist/{table-B3VrNQUV.cjs → table-ZmivCJrn.cjs} +2 -2
  211. package/dist/{table-B3VrNQUV.cjs.map → table-ZmivCJrn.cjs.map} +1 -1
  212. package/dist/table.cjs +1 -1
  213. package/dist/table.js +1 -1
  214. package/dist/{tabs-compatibility-D9ajXdXz.js → tabs-compatibility-CDMklQAm.js} +2 -2
  215. package/dist/{tabs-compatibility-D9ajXdXz.js.map → tabs-compatibility-CDMklQAm.js.map} +1 -1
  216. package/dist/{tabs-compatibility-DdXO8DcF.cjs → tabs-compatibility-CTswDDwq.cjs} +2 -2
  217. package/dist/{tabs-compatibility-DdXO8DcF.cjs.map → tabs-compatibility-CTswDDwq.cjs.map} +1 -1
  218. package/dist/tabs.cjs +1 -1
  219. package/dist/tabs.js +1 -1
  220. package/dist/tailwind.mixin-B1NF3tDz.cjs +2 -0
  221. package/dist/{tailwind.mixin-mxyACxyp.cjs.map → tailwind.mixin-B1NF3tDz.cjs.map} +1 -1
  222. package/dist/tailwind.mixin-DRbXmwPy.js +43 -0
  223. package/dist/{tailwind.mixin-DPUboU_5.js.map → tailwind.mixin-DRbXmwPy.js.map} +1 -1
  224. package/dist/teleport.cjs +1 -1
  225. package/dist/teleport.js +1 -1
  226. package/dist/{textarea-C16vg4ME.cjs → textarea-B5NhHUmB.cjs} +2 -2
  227. package/dist/{textarea-C16vg4ME.cjs.map → textarea-B5NhHUmB.cjs.map} +1 -1
  228. package/dist/{textarea-DqFx1pM1.js → textarea-BgIcOe2_.js} +2 -2
  229. package/dist/{textarea-DqFx1pM1.js.map → textarea-BgIcOe2_.js.map} +1 -1
  230. package/dist/textarea.cjs +1 -1
  231. package/dist/textarea.js +1 -1
  232. package/dist/{theme-button-CgZ5qc7_.cjs → theme-button-ByTuVI2m.cjs} +2 -2
  233. package/dist/{theme-button-CgZ5qc7_.cjs.map → theme-button-ByTuVI2m.cjs.map} +1 -1
  234. package/dist/{theme-button-D5fnf2QD.js → theme-button-CHfJgh_S.js} +2 -2
  235. package/dist/{theme-button-D5fnf2QD.js.map → theme-button-CHfJgh_S.js.map} +1 -1
  236. package/dist/theme-button.cjs +1 -1
  237. package/dist/theme-button.js +1 -1
  238. package/dist/theme.cjs +1 -1
  239. package/dist/{theme.component-BOnjDUB3.js → theme.component-BOA_RlkP.js} +2 -2
  240. package/dist/{theme.component-BOnjDUB3.js.map → theme.component-BOA_RlkP.js.map} +1 -1
  241. package/dist/{theme.component-B5uMqEbH.cjs → theme.component-Dqb12V2Y.cjs} +2 -2
  242. package/dist/{theme.component-B5uMqEbH.cjs.map → theme.component-Dqb12V2Y.cjs.map} +1 -1
  243. package/dist/theme.js +1 -1
  244. package/dist/{timezone-CdAu8QsM.cjs → timezone-CeArJOdv.cjs} +2 -2
  245. package/dist/{timezone-CdAu8QsM.cjs.map → timezone-CeArJOdv.cjs.map} +1 -1
  246. package/dist/{timezone-DwU-YCRw.js → timezone-EnguJE1R.js} +3 -3
  247. package/dist/{timezone-DwU-YCRw.js.map → timezone-EnguJE1R.js.map} +1 -1
  248. package/dist/{tooltip-Bn-UWxd4.js → tooltip-beiWb2qf.js} +2 -2
  249. package/dist/{tooltip-Bn-UWxd4.js.map → tooltip-beiWb2qf.js.map} +1 -1
  250. package/dist/{tooltip-CyI3NYzI.cjs → tooltip-swpV3EIO.cjs} +2 -2
  251. package/dist/{tooltip-CyI3NYzI.cjs.map → tooltip-swpV3EIO.cjs.map} +1 -1
  252. package/dist/tooltip.cjs +1 -1
  253. package/dist/tooltip.js +1 -1
  254. package/dist/{tree-D2g2zq2B.js → tree-BJfdIGMP.js} +2 -2
  255. package/dist/{tree-D2g2zq2B.js.map → tree-BJfdIGMP.js.map} +1 -1
  256. package/dist/{tree-DdXcAF6S.cjs → tree-CwNbvxdt.cjs} +2 -2
  257. package/dist/{tree-DdXcAF6S.cjs.map → tree-CwNbvxdt.cjs.map} +1 -1
  258. package/dist/tree.cjs +1 -1
  259. package/dist/tree.js +1 -1
  260. package/dist/{typewriter-3w_PiJFo.js → typewriter-BAfCN_JJ.js} +4 -4
  261. package/dist/{typewriter-3w_PiJFo.js.map → typewriter-BAfCN_JJ.js.map} +1 -1
  262. package/dist/{typewriter-RVqJuWSv.cjs → typewriter-CQePZbSj.cjs} +2 -2
  263. package/dist/{typewriter-RVqJuWSv.cjs.map → typewriter-CQePZbSj.cjs.map} +1 -1
  264. package/dist/typewriter.cjs +1 -1
  265. package/dist/typewriter.js +1 -1
  266. package/dist/typography-CUv4DPU-.js +342 -0
  267. package/dist/typography-CUv4DPU-.js.map +1 -0
  268. package/dist/typography-DrDWI6Bh.cjs +318 -0
  269. package/dist/typography-DrDWI6Bh.cjs.map +1 -0
  270. package/dist/typography.cjs +1 -1
  271. package/dist/typography.js +1 -1
  272. package/package.json +15 -15
  273. package/types/src/area/area.component.d.ts +1 -1
  274. package/types/src/area/router.types.d.ts +1 -1
  275. package/types/src/boat/boat.d.ts +12 -0
  276. package/types/src/boat/index.d.ts +1 -0
  277. package/types/src/index.d.ts +1 -0
  278. package/types/src/surface/surface.d.ts +1 -1
  279. package/types/src/typography/typography.d.ts +6 -5
  280. package/dist/area.component-CqKoQRDp.cjs.map +0 -1
  281. package/dist/area.component-zvrF1R-P.js.map +0 -1
  282. package/dist/tailwind.mixin-DPUboU_5.js +0 -43
  283. package/dist/tailwind.mixin-mxyACxyp.cjs +0 -2
  284. package/dist/typography-BLJPXhuT.cjs +0 -10
  285. package/dist/typography-BLJPXhuT.cjs.map +0 -1
  286. package/dist/typography-izBBu-t8.js +0 -37
  287. package/dist/typography-izBBu-t8.js.map +0 -1
package/dist/ai/chips.md CHANGED
@@ -3,178 +3,144 @@
3
3
  ```js
4
4
  // Single Chip
5
5
  <schmancy-chip
6
- text="Chip Text"
7
- variant="default|primary|secondary|success|warning|danger|info"
8
- size="small|medium|large"
9
- closable?
6
+ value="chip-value"
7
+ selected?
8
+ icon="emoji-icon"
9
+ readOnly?
10
10
  disabled?
11
- @close=${handleClose}
11
+ @change=${handleChange}
12
12
  @click=${handleClick}>
13
+ Chip Text
13
14
  </schmancy-chip>
14
15
 
15
16
  // Chip with icon
16
- <schmancy-chip text="JavaScript">
17
- <schmancy-icon slot="prefix" icon="code"></schmancy-icon>
17
+ <schmancy-chip icon="📝" value="javascript">
18
+ JavaScript
18
19
  </schmancy-chip>
19
20
 
20
- // Chip with avatar
21
- <schmancy-chip text="John Doe">
22
- <schmancy-avatar slot="prefix" src="path/to/avatar.jpg" size="small"></schmancy-avatar>
23
- </schmancy-chip>
24
-
25
- // Chips Container
21
+ // Chips Container - Single Selection
26
22
  <schmancy-chips
23
+ .value=${selectedValue}
27
24
  @change=${handleSelectionChange}>
28
- <schmancy-chip text="Option 1" value="1"></schmancy-chip>
29
- <schmancy-chip text="Option 2" value="2"></schmancy-chip>
30
- <schmancy-chip text="Option 3" value="3"></schmancy-chip>
25
+ <schmancy-chip value="1">Option 1</schmancy-chip>
26
+ <schmancy-chip value="2">Option 2</schmancy-chip>
27
+ <schmancy-chip value="3">Option 3</schmancy-chip>
31
28
  </schmancy-chips>
32
29
 
33
- // Chips Container with selection mode
30
+ // Chips Container - Multiple Selection
34
31
  <schmancy-chips
35
- selection="single|multiple|none"
36
- .value=${selectedValues}
32
+ multi
33
+ .values=${selectedValues}
37
34
  @change=${handleSelectionChange}>
38
- <schmancy-chip text="Red" value="red"></schmancy-chip>
39
- <schmancy-chip text="Green" value="green"></schmancy-chip>
40
- <schmancy-chip text="Blue" value="blue"></schmancy-chip>
35
+ <schmancy-chip value="red">Red</schmancy-chip>
36
+ <schmancy-chip value="green">Green</schmancy-chip>
37
+ <schmancy-chip value="blue">Blue</schmancy-chip>
41
38
  </schmancy-chips>
42
39
 
43
- // Input with chip creation
44
- <schmancy-chips
45
- input?
46
- placeholder="Add tag..."
47
- @add=${handleAddChip}
48
- @remove=${handleRemoveChip}>
49
- <schmancy-chip text="React" closable></schmancy-chip>
50
- <schmancy-chip text="Vue" closable></schmancy-chip>
51
- <schmancy-chip text="Angular" closable></schmancy-chip>
40
+ // Horizontal scrolling chips
41
+ <schmancy-chips wrap="false">
42
+ <schmancy-chip value="mon">Monday</schmancy-chip>
43
+ <schmancy-chip value="tue">Tuesday</schmancy-chip>
44
+ <schmancy-chip value="wed">Wednesday</schmancy-chip>
45
+ <schmancy-chip value="thu">Thursday</schmancy-chip>
46
+ <schmancy-chip value="fri">Friday</schmancy-chip>
52
47
  </schmancy-chips>
53
48
 
54
49
  // Chip Properties
55
- text: string // Text content of the chip
56
50
  value: string // Value for selection purposes
57
- variant: string // Visual style: "default", "primary", "secondary", etc.
58
- size: string // Size: "small", "medium", "large"
59
- closable: boolean // Show close button
60
- disabled: boolean // Disable the chip
61
51
  selected: boolean // Whether the chip is selected
52
+ icon: string // Emoji icon to display
53
+ readOnly: boolean // Makes chip non-interactive
54
+ disabled: boolean // Disable the chip
62
55
 
63
56
  // Chips Container Properties
64
- selection: string // Selection mode: "none", "single", "multiple"
65
- value: string[] // Selected values
66
- input: boolean // Show input for adding new chips
67
- placeholder: string // Placeholder for the input
68
- max: number // Maximum number of chips allowed
69
- disabled: boolean // Disable the entire container
57
+ multi: boolean // Enable multiple selection mode
58
+ value: string // Selected value (single selection)
59
+ values: string[] // Selected values (multiple selection)
60
+ wrap: boolean // Whether chips wrap to new lines (default: true)
70
61
 
71
62
  // Chip Events
72
63
  @click // Fires when chip is clicked
73
- @close // Fires when close button is clicked
74
- @keydown // Fires on keydown events
64
+ @change // Fires when selection changes, with { detail: { value: string, selected: boolean } }
75
65
 
76
66
  // Chips Container Events
77
- @change // Fires when selection changes, with { detail: { value } }
78
- @add // Fires when a chip is added, with { detail: { text, value } }
79
- @remove // Fires when a chip is removed, with { detail: { text, value } }
67
+ @change // Fires when selection changes, with detail being string (single) or string[] (multi)
80
68
 
81
69
  // Examples
82
70
  // Basic chips
83
71
  <div>
84
- <schmancy-chip text="Basic"></schmancy-chip>
85
- <schmancy-chip text="Primary" variant="primary"></schmancy-chip>
86
- <schmancy-chip text="Success" variant="success"></schmancy-chip>
87
- <schmancy-chip text="Warning" variant="warning"></schmancy-chip>
88
- <schmancy-chip text="Danger" variant="danger"></schmancy-chip>
89
- </div>
90
-
91
- // Closable chips
92
- <div>
93
- <schmancy-chip
94
- text="JavaScript"
95
- closable
96
- @close=${() => removeTag('javascript')}>
97
- <schmancy-icon slot="prefix" icon="code"></schmancy-icon>
98
- </schmancy-chip>
99
-
100
- <schmancy-chip
101
- text="TypeScript"
102
- closable
103
- @close=${() => removeTag('typescript')}>
104
- <schmancy-icon slot="prefix" icon="code"></schmancy-icon>
105
- </schmancy-chip>
72
+ <schmancy-chip value="basic">Basic</schmancy-chip>
73
+ <schmancy-chip value="javascript" icon="📝">JavaScript</schmancy-chip>
74
+ <schmancy-chip value="react" icon="⚛️">React</schmancy-chip>
75
+ <schmancy-chip value="vue" icon="💚">Vue</schmancy-chip>
76
+ <schmancy-chip value="angular" icon="🅰️">Angular</schmancy-chip>
106
77
  </div>
107
78
 
108
79
  // Single selection chips
109
80
  <schmancy-chips
110
- selection="single"
111
- .value=${[selectedSize]}
112
- @change=${(e) => selectedSize = e.detail.value[0]}>
113
- <schmancy-chip text="Small" value="sm"></schmancy-chip>
114
- <schmancy-chip text="Medium" value="md"></schmancy-chip>
115
- <schmancy-chip text="Large" value="lg"></schmancy-chip>
81
+ .value=${selectedSize}
82
+ @change=${(e) => selectedSize = e.detail}>
83
+ <schmancy-chip value="sm">Small</schmancy-chip>
84
+ <schmancy-chip value="md">Medium</schmancy-chip>
85
+ <schmancy-chip value="lg">Large</schmancy-chip>
116
86
  </schmancy-chips>
117
87
 
118
88
  // Multiple selection chips
119
89
  <schmancy-chips
120
- selection="multiple"
121
- .value=${selectedToppings}
122
- @change=${(e) => selectedToppings = e.detail.value}>
123
- <schmancy-chip text="Cheese" value="cheese"></schmancy-chip>
124
- <schmancy-chip text="Pepperoni" value="pepperoni"></schmancy-chip>
125
- <schmancy-chip text="Mushrooms" value="mushrooms"></schmancy-chip>
126
- <schmancy-chip text="Onions" value="onions"></schmancy-chip>
127
- <schmancy-chip text="Peppers" value="peppers"></schmancy-chip>
90
+ multi
91
+ .values=${selectedToppings}
92
+ @change=${(e) => selectedToppings = e.detail}>
93
+ <schmancy-chip value="cheese">Cheese</schmancy-chip>
94
+ <schmancy-chip value="pepperoni">Pepperoni</schmancy-chip>
95
+ <schmancy-chip value="mushrooms">Mushrooms</schmancy-chip>
96
+ <schmancy-chip value="onions">Onions</schmancy-chip>
97
+ <schmancy-chip value="peppers">Peppers</schmancy-chip>
128
98
  </schmancy-chips>
129
99
 
130
- // Input chips for tags
100
+ // Date selector with horizontal scrolling
131
101
  <schmancy-chips
132
- input
133
- placeholder="Add tag..."
134
- @add=${(e) => addTag(e.detail.text)}
135
- @remove=${(e) => removeTag(e.detail.text)}>
136
- ${tags.map(tag => html`
137
- <schmancy-chip
138
- text=${tag}
139
- closable>
140
- </schmancy-chip>
141
- `)}
102
+ wrap="false"
103
+ .value=${selectedDate}
104
+ @change=${(e) => selectedDate = e.detail}>
105
+ <schmancy-chip value="2024-01-15">Mon 15</schmancy-chip>
106
+ <schmancy-chip value="2024-01-16">Tue 16</schmancy-chip>
107
+ <schmancy-chip value="2024-01-17">Wed 17</schmancy-chip>
108
+ <schmancy-chip value="2024-01-18">Thu 18</schmancy-chip>
109
+ <schmancy-chip value="2024-01-19">Fri 19</schmancy-chip>
110
+ <schmancy-chip value="2024-01-20">Sat 20</schmancy-chip>
111
+ <schmancy-chip value="2024-01-21">Sun 21</schmancy-chip>
112
+ </schmancy-chips>
113
+
114
+ // Category filters
115
+ <schmancy-chips
116
+ multi
117
+ .values=${selectedCategories}
118
+ @change=${(e) => selectedCategories = e.detail}>
119
+ <schmancy-chip value="electronics" icon="💻">Electronics</schmancy-chip>
120
+ <schmancy-chip value="clothing" icon="👕">Clothing</schmancy-chip>
121
+ <schmancy-chip value="books" icon="📚">Books</schmancy-chip>
122
+ <schmancy-chip value="home" icon="🏠">Home & Garden</schmancy-chip>
123
+ <schmancy-chip value="sports" icon="⚽">Sports</schmancy-chip>
142
124
  </schmancy-chips>
143
125
 
144
- // Email recipient chips
126
+ // Skills/Tags selection
145
127
  <schmancy-chips
146
- input
147
- placeholder="Add recipient..."
148
- @add=${addRecipient}
149
- @remove=${removeRecipient}>
150
- ${recipients.map(recipient => html`
151
- <schmancy-chip text=${recipient.name} closable>
152
- <schmancy-avatar
153
- slot="prefix"
154
- src=${recipient.avatar}
155
- size="small">
156
- </schmancy-avatar>
128
+ multi
129
+ .values=${selectedSkills}
130
+ @change=${(e) => selectedSkills = e.detail}>
131
+ ${availableSkills.map(skill => html`
132
+ <schmancy-chip
133
+ value=${skill.id}
134
+ icon=${skill.icon}>
135
+ ${skill.name}
157
136
  </schmancy-chip>
158
137
  `)}
159
138
  </schmancy-chips>
160
139
 
161
- // Filter chips
140
+ // Read-only chips display
162
141
  <div>
163
- <div>Filters:</div>
164
- <schmancy-chips>
165
- ${filters.map(filter => html`
166
- <schmancy-chip
167
- text=${filter.label}
168
- closable
169
- @close=${() => removeFilter(filter.id)}>
170
- </schmancy-chip>
171
- `)}
172
-
173
- <schmancy-chip
174
- text="Add Filter"
175
- @click=${openFilterDialog}>
176
- <schmancy-icon slot="prefix" icon="add"></schmancy-icon>
177
- </schmancy-chip>
178
- </schmancy-chips>
142
+ <schmancy-chip value="completed" icon="✅" readOnly>Completed</schmancy-chip>
143
+ <schmancy-chip value="pending" icon="⏳" readOnly>Pending</schmancy-chip>
144
+ <schmancy-chip value="cancelled" icon="❌" readOnly>Cancelled</schmancy-chip>
179
145
  </div>
180
146
  ```
@@ -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-1-y-wwQg.js";
5
- import "./tailwind.mixin-DPUboU_5.js";
4
+ import { $ as x } from "./litElement.mixin-BWl8md6o.js";
5
+ import "./tailwind.mixin-DRbXmwPy.js";
6
6
  import { css as S, html as Z } from "lit";
7
7
  import { property as a, queryAssignedNodes as v, query as m, customElement as A } from "lit/decorators.js";
8
8
  var E = Object.defineProperty, O = Object.getOwnPropertyDescriptor, e = (r, s, n, i) => {
@@ -72,4 +72,4 @@ let t = class extends x(S`
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([v()], t.prototype, "defaultSlot", 2), e([m(".letters")], t.prototype, "letters", 2), e([m(".ml7")], t.prototype, "ml7", 2), t = e([A("schmancy-animated-text")], t);
75
- //# sourceMappingURL=animated-text-BZWvzqEZ.js.map
75
+ //# sourceMappingURL=animated-text-BYS4ollO.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"animated-text-BZWvzqEZ.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-BYS4ollO.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,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-CB6DWbFn.cjs");require("./tailwind.mixin-mxyACxyp.cjs");const c=require("lit"),r=require("lit/decorators.js");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-DWxMKydc.cjs");require("./tailwind.mixin-B1NF3tDz.cjs");const c=require("lit"),r=require("lit/decorators.js");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-BgLktXr-.cjs.map
37
+ //# sourceMappingURL=animated-text-jb8xtsKZ.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"animated-text-BgLktXr-.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-jb8xtsKZ.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,2 +1,2 @@
1
- "use strict";require("./animated-text-BgLktXr-.cjs");
1
+ "use strict";require("./animated-text-jb8xtsKZ.cjs");
2
2
  //# sourceMappingURL=animated-text.cjs.map
@@ -1,2 +1,2 @@
1
- import "./animated-text-BZWvzqEZ.js";
1
+ import "./animated-text-BYS4ollO.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-CqKoQRDp.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-VivYGPFY.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
1
  import { Subject as J, ReplaySubject as y, distinctUntilChanged as u, shareReplay as C, skip as N, map as s, filter as m, catchError as i, EMPTY as p, zip as $, fromEvent as E, of as c, bufferTime as j, tap as O, timeout as P, merge as q, switchMap as g, take as x, takeUntil as w, from as U } from "rxjs";
2
2
  import "lit/directives/class-map.js";
3
3
  import "lit/directives/style-map.js";
4
- import { $ as I } from "./litElement.mixin-1-y-wwQg.js";
5
- import "./tailwind.mixin-DPUboU_5.js";
4
+ import { $ as I } from "./litElement.mixin-BWl8md6o.js";
5
+ import "./tailwind.mixin-DRbXmwPy.js";
6
6
  import { css as M, html as k } from "lit";
7
7
  import { property as A, customElement as L } from "lit/decorators.js";
8
8
  import { l as T } from "./index-CuY8m6ta.js";
@@ -165,7 +165,7 @@ let d = class extends I(M`
165
165
  queryParamClear(r) {
166
166
  if (!r) return "";
167
167
  const e = new URLSearchParams(location.search);
168
- return r.forEach((t) => e.delete(t)), e.toString() === "" ? "" : `?${e.toString()}`;
168
+ return r === !0 ? "" : (r.forEach((t) => e.delete(t)), e.toString() === "" ? "" : `?${e.toString()}`);
169
169
  }
170
170
  checkForTeleportationRequests() {
171
171
  return E(window, "FLIP_REQUEST").pipe(s((r) => r.detail), j(0), O(() => {
@@ -188,4 +188,4 @@ export {
188
188
  v as b,
189
189
  R as r
190
190
  };
191
- //# sourceMappingURL=area.component-zvrF1R-P.js.map
191
+ //# sourceMappingURL=area.component-DxNRxMvF.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"area.component-DxNRxMvF.js","sources":["../src/area/area.service.ts","../src/area/router.types.ts","../src/area/area.component.ts"],"sourcesContent":["import { \n\tObservable, \n\tReplaySubject, \n\tSubject, \n\tbufferTime, \n\tfilter, \n\tfromEvent, \n\tmap, \n\tof, \n\tskip, \n\ttap, \n\ttimeout, \n\tzip,\n\tshareReplay,\n\tdistinctUntilChanged,\n\tcatchError,\n\tEMPTY\n} from 'rxjs'\nimport { SchmancyTeleportation } from '../teleport'\nimport { ActiveRoute, AreaSubscription, RouteAction } from './router.types'\n\nexport const routerHistory = new Subject<RouteAction>()\n\nexport const FINDING_MORTIES = 'FINDING_MORTIES'\nexport const HERE_RICKY = 'HERE_RICKY'\nexport type HERE_RICKY_EVENT = CustomEvent<{\n\tcomponent: SchmancyTeleportation\n}>\nexport type FINDING_MORTIES_EVENT = CustomEvent<{\n\tcomponent: SchmancyTeleportation\n}>\n\n// WeakMap for better memory management of area subjects\nconst areaSubjectsCache = new WeakMap<AreaService, Map<string, ReplaySubject<ActiveRoute>>>()\n\nclass AreaService implements AreaSubscription {\n\tprivate static instance: AreaService\n\tpublic prettyURL = false\n\tpublic mode: 'SILENT' | 'HISTORY' = 'HISTORY'\n\tpublic request = new ReplaySubject<RouteAction>(1)\n\tpublic current = new Map<string, ActiveRoute>()\n\tpublic $current = new ReplaySubject<Map<string, ActiveRoute>>(1)\n\t\n\t// Create a dictionary of ReplaySubjects for area-specific subscriptions\n\tprivate get areaSubjects(): Map<string, ReplaySubject<ActiveRoute>> {\n\t\tlet subjects = areaSubjectsCache.get(this)\n\t\tif (!subjects) {\n\t\t\tsubjects = new Map()\n\t\t\tareaSubjectsCache.set(this, subjects)\n\t\t}\n\t\treturn subjects\n\t}\n\t\n\tpublic enableHistoryMode = true\n\tprivate findingMortiesEvent = new CustomEvent<FINDING_MORTIES_EVENT['detail']>(FINDING_MORTIES)\n\tprivate disposed = false\n\n\tconstructor() {\n\t\tthis.$current.next(this.current)\n\t\t\n\t\t// Subscribe to current changes to update area-specific subjects\n\t\tthis.$current.subscribe(currentAreas => {\n\t\t\tif (this.disposed) return\n\t\t\t\n\t\t\t// For each area in the current map\n\t\t\tcurrentAreas.forEach((route, areaName) => {\n\t\t\t\t// Get or create a subject for this area\n\t\t\t\tconst areaSubject = this.getOrCreateAreaSubject(areaName)\n\t\t\t\t// Emit the updated route to area-specific subscribers\n\t\t\t\tareaSubject.next(route)\n\t\t\t})\n\t\t})\n\t}\n\n\t/**\n\t * Get or create a ReplaySubject for a specific area with proper cleanup\n\t */\n\tprivate getOrCreateAreaSubject(areaName: string): ReplaySubject<ActiveRoute> {\n\t\tlet subject = this.areaSubjects.get(areaName)\n\t\t\n\t\tif (!subject || subject.closed) {\n\t\t\tsubject = new ReplaySubject<ActiveRoute>(1)\n\t\t\tthis.areaSubjects.set(areaName, subject)\n\t\t\t\n\t\t\t// If the area already exists in current, emit it immediately\n\t\t\tconst currentRoute = this.current.get(areaName)\n\t\t\tif (currentRoute) {\n\t\t\t\tsubject.next({\n\t\t\t\t\t...currentRoute,\n\t\t\t\t\t// Ensure state and params are initialized if undefined\n\t\t\t\t\tstate: currentRoute.state || {},\n\t\t\t\t\tparams: currentRoute.params || {}\n\t\t\t\t})\n\t\t\t}\n\t\t}\n\t\t\n\t\treturn subject\n\t}\n\n\t/**\n\t * Subscribe to a specific area with caching\n\t */\n\ton(areaName: string, skipCurrent = false): Observable<ActiveRoute> {\n\t\tif (!areaName) {\n\t\t\tthrow new Error('Area name is required')\n\t\t}\n\t\t\n\t\tconst areaSubject = this.getOrCreateAreaSubject(areaName)\n\t\tconst observable = areaSubject.asObservable().pipe(\n\t\t\t// Add distinct to prevent duplicate emissions\n\t\t\tdistinctUntilChanged((a, b) => \n\t\t\t\ta.component === b.component &&\n\t\t\t\tJSON.stringify(a.state) === JSON.stringify(b.state) &&\n\t\t\t\tJSON.stringify(a.params) === JSON.stringify(b.params)\n\t\t\t),\n\t\t\t// Share the subscription\n\t\t\tshareReplay(1)\n\t\t)\n\t\t\n\t\treturn skipCurrent ? observable.pipe(skip(1)) : observable\n\t}\n\t\n\t/**\n\t * Subscribe to all areas\n\t */\n\tall(skipCurrent = false): Observable<Map<string, ActiveRoute>> {\n\t\tconst observable = this.$current.asObservable().pipe(\n\t\t\tshareReplay(1)\n\t\t)\n\t\treturn skipCurrent ? observable.pipe(skip(1)) : observable\n\t}\n\t\n\t/**\n\t * Get state from an area with type safety\n\t */\n\tgetState<T = unknown>(areaName: string): Observable<T> {\n\t\tif (!areaName) {\n\t\t\tthrow new Error('Area name is required')\n\t\t}\n\t\t\n\t\treturn this.on(areaName).pipe(\n\t\t\tmap(route => route.state),\n\t\t\tfilter((state): state is NonNullable<Record<string, unknown>> => \n\t\t\t\tstate !== undefined && state !== null\n\t\t\t),\n\t\t\tdistinctUntilChanged((a, b) => JSON.stringify(a) === JSON.stringify(b)),\n\t\t\tmap(state => state as T),\n\t\t\tcatchError(err => {\n\t\t\t\tconsole.error(`Error getting state for area \"${areaName}\":`, err)\n\t\t\t\treturn EMPTY\n\t\t\t})\n\t\t)\n\t}\n\t\n\t/**\n\t * Get params from an area with type safety\n\t */\n\tparams<T extends Record<string, unknown> = Record<string, unknown>>(areaName: string): Observable<T> {\n\t\tif (!areaName) {\n\t\t\tthrow new Error('Area name is required')\n\t\t}\n\t\t\n\t\treturn this.on(areaName).pipe(\n\t\t\tmap(route => route.params),\n\t\t\tfilter((params): params is NonNullable<Record<string, unknown>> => \n\t\t\t\tparams !== undefined && params !== null\n\t\t\t),\n\t\t\tdistinctUntilChanged((a, b) => JSON.stringify(a) === JSON.stringify(b)),\n\t\t\tmap(params => params as T),\n\t\t\tcatchError(err => {\n\t\t\t\tconsole.error(`Error getting params for area \"${areaName}\":`, err)\n\t\t\t\treturn EMPTY\n\t\t\t})\n\t\t)\n\t}\n\t\n\t/**\n\t * Get a specific param from an area with null safety\n\t */\n\tparam<T = unknown>(areaName: string, key: string): Observable<T> {\n\t\tif (!areaName || !key) {\n\t\t\tthrow new Error('Area name and key are required')\n\t\t}\n\t\t\n\t\treturn this.params<Record<string, unknown>>(areaName).pipe(\n\t\t\tmap(params => params[key]),\n\t\t\tfilter((value): value is NonNullable<unknown> => value !== undefined),\n\t\t\tdistinctUntilChanged(),\n\t\t\tmap(value => value as T),\n\t\t\tcatchError(err => {\n\t\t\t\tconsole.error(`Error getting param \"${key}\" for area \"${areaName}\":`, err)\n\t\t\t\treturn EMPTY\n\t\t\t})\n\t\t)\n\t}\n\n\t/**\n\t * Find teleportation components\n\t */\n\tfind() {\n\t\treturn zip([\n\t\t\tfromEvent<HERE_RICKY_EVENT>(window, HERE_RICKY).pipe(\n\t\t\t\tmap(e => e.detail),\n\t\t\t\tbufferTime(0),\n\t\t\t),\n\t\t\tof(1).pipe(tap(() => window.dispatchEvent(this.findingMortiesEvent))),\n\t\t]).pipe(\n\t\t\tmap(([component]) => component),\n\t\t\ttimeout(1),\n\t\t\tcatchError(() => EMPTY)\n\t\t)\n\t}\n\n\t/**\n\t * Push a new route action with validation\n\t */\n\tpush(r: RouteAction) {\n\t\tif (!r.area) {\n\t\t\tthrow new Error('Area is required for route action')\n\t\t}\n\t\t\n\t\t// Ensure state and params are initialized\n\t\tconst routeAction: RouteAction = {\n\t\t\t...r,\n\t\t\tstate: r.state || {},\n\t\t\tparams: r.params || {}\n\t\t}\n\t\t\n\t\t// Add to history if enabled\n\t\tif (this.enableHistoryMode) {\n\t\t\trouterHistory.next(routeAction)\n\t\t}\n\t\t\n\t\tthis.request.next(routeAction)\n\t\t// Emit an area-specific event for those who want to listen directly to DOM events\n\t\tthis.dispatchAreaEvent(routeAction.area, routeAction)\n\t}\n\t\n\t/**\n\t * Dispatch a DOM event for a specific area change\n\t */\n\tprivate dispatchAreaEvent(areaName: string, routeAction: RouteAction) {\n\t\tconst eventName = `schmancy-area-${areaName}-changed`\n\t\tconst event = new CustomEvent(eventName, { \n\t\t\tdetail: { \n\t\t\t\tarea: areaName,\n\t\t\t\tcomponent: routeAction.component,\n\t\t\t\tstate: routeAction.state,\n\t\t\t\tparams: routeAction.params,\n\t\t\t\thistoryStrategy: routeAction.historyStrategy\n\t\t\t},\n\t\t\tbubbles: true,\n\t\t\tcomposed: true\n\t\t})\n\t\twindow.dispatchEvent(event)\n\t}\n\n\t/**\n\t * Remove an area from the current state\n\t */\n\tpop(name: string) {\n\t\tif (!name) {\n\t\t\tthrow new Error('Area name is required')\n\t\t}\n\t\t\n\t\tconst newState = { ...this.state }\n\t\tdelete newState[name]\n\t\t\n\t\t// Update the URL\n\t\tconst encoded = encodeURIComponent(JSON.stringify(newState))\n\t\thistory.replaceState(null, '', `/${encoded}${location.search}`)\n\t\t\n\t\t// Remove from current map\n\t\tthis.current.delete(name)\n\t\tthis.$current.next(this.current)\n\t\t\n\t\t// Complete the area subject\n\t\tconst areaSubject = this.areaSubjects.get(name)\n\t\tif (areaSubject) {\n\t\t\tareaSubject.complete()\n\t\t\tthis.areaSubjects.delete(name)\n\t\t}\n\t}\n\t\n\t/**\n\t * Clear all areas\n\t */\n\tclear() {\n\t\t// Complete all area subjects\n\t\tthis.areaSubjects.forEach(subject => subject.complete())\n\t\tthis.areaSubjects.clear()\n\t\t\n\t\t// Clear current state\n\t\tthis.current.clear()\n\t\tthis.$current.next(this.current)\n\t\t\n\t\t// Update URL\n\t\thistory.replaceState(null, '', `/${location.search}`)\n\t}\n\t\n\t/**\n\t * Dispose of the service and clean up resources\n\t */\n\tdispose() {\n\t\tif (this.disposed) return\n\t\t\n\t\tthis.disposed = true\n\t\t\n\t\t// Complete all subjects\n\t\tthis.areaSubjects.forEach(subject => subject.complete())\n\t\tthis.areaSubjects.clear()\n\t\t\n\t\tthis.request.complete()\n\t\tthis.$current.complete()\n\t\trouterHistory.complete()\n\t\t\n\t\t// Clear references\n\t\tthis.current.clear()\n\t\tareaSubjectsCache.delete(this)\n\t}\n\t\n\t/**\n\t * Get singleton instance\n\t */\n\tstatic getInstance() {\n\t\tif (!AreaService.instance) {\n\t\t\tAreaService.instance = new AreaService()\n\t\t}\n\t\treturn AreaService.instance\n\t}\n\n\t/**\n\t * Get current state from URL\n\t */\n\tget state(): Record<string, unknown> {\n\t\tconst pathname = location.pathname.split('/').pop()\n\t\tif (!pathname) return {}\n\t\t\n\t\ttry {\n\t\t\tconst decoded = decodeURIComponent(pathname)\n\t\t\tconst parsed = JSON.parse(decoded)\n\t\t\t\n\t\t\tif (typeof parsed === 'object' && parsed !== null) {\n\t\t\t\treturn parsed\n\t\t\t}\n\t\t} catch {\n\t\t\t// Ignore parse errors\n\t\t}\n\t\t\n\t\treturn {}\n\t}\n\t\n\t/**\n\t * Check if an area exists in current state\n\t */\n\thasArea(areaName: string): boolean {\n\t\treturn this.current.has(areaName)\n\t}\n\t\n\t/**\n\t * Get all active area names\n\t */\n\tgetActiveAreas(): string[] {\n\t\treturn Array.from(this.current.keys())\n\t}\n\t\n\t/**\n\t * Get route for a specific area synchronously\n\t */\n\tgetRoute(areaName: string): ActiveRoute | undefined {\n\t\treturn this.current.get(areaName)\n\t}\n}\n\nexport const area = AreaService.getInstance()\nexport default area\n\n// Cleanup on page unload\nif (typeof window !== 'undefined') {\n\twindow.addEventListener('unload', () => {\n\t\tarea.dispose()\n\t})\n}","export type RouteAction = {\n\tcomponent: CustomElementConstructor | string | HTMLElement\n\tarea: string\n\tstate?: Record<string, unknown>\n\tparams?: Record<string, unknown>\n\thistoryStrategy?: THistoryStrategy\n\tclearQueryParams?: string[] | boolean | null\n}\n\nexport type ActiveRoute = {\n\tcomponent: string\n\tarea: string\n\tstate?: Record<string, unknown>\n\tparams?: Record<string, unknown>\n}\n\n/**\n * Interface for subscribing to area changes\n */\nexport interface AreaSubscription {\n\t/**\n\t * Subscribe to a specific area\n\t * @param areaName Name of the area to subscribe to\n\t * @param skipCurrent Whether to skip the current value\n\t * @returns Observable of the active route for the specified area\n\t */\n\ton(areaName: string, skipCurrent?: boolean): import('rxjs').Observable<ActiveRoute>\n\t\n\t/**\n\t * Subscribe to all areas\n\t * @param skipCurrent Whether to skip the current value\n\t * @returns Observable of all active routes\n\t */\n\tall(skipCurrent?: boolean): import('rxjs').Observable<Map<string, ActiveRoute>>\n\t\n\t/**\n\t * Get state from an area\n\t * @param areaName Name of the area to subscribe to\n\t * @returns Observable of the area's state\n\t */\n\tgetState<T = unknown>(areaName: string): import('rxjs').Observable<T>\n\t\n\t/**\n\t * Get params from an area\n\t * @param areaName Name of the area to subscribe to\n\t * @returns Observable of the area's params\n\t */\n\tparams<T extends Record<string, unknown> = Record<string, unknown>>(areaName: string): import('rxjs').Observable<T>\n\t\n\t/**\n\t * Get a specific param from an area\n\t * @param areaName Name of the area to subscribe to\n\t * @param key Key of the param to select\n\t * @returns Observable of the param value\n\t */\n\tparam<T = unknown>(areaName: string, key: string): import('rxjs').Observable<T>\n}\n\nexport type THistoryStrategy = 'push' | 'replace' | 'pop' | 'silent'\n\nexport enum HISTORY_STRATEGY {\n\tpush = 'push',\n\treplace = 'replace',\n\tpop = 'pop',\n\tsilent = 'silent',\n}\n","import { $LitElement } from '@mixins/index'\nimport { TemplateResult, css, html } from 'lit'\nimport { customElement, property } from 'lit/decorators.js'\nimport {\n\tEMPTY,\n\tbufferTime,\n\tcatchError,\n\tdistinctUntilChanged,\n\tfilter,\n\tfrom,\n\tfromEvent,\n\tmap,\n\tmerge,\n\tof,\n\tswitchMap,\n\ttake,\n\ttakeUntil,\n\ttap,\n\ttimeout,\n} from 'rxjs'\nimport { isPresent } from 'ts-is-present'\nimport area from './area.service'\nimport { HISTORY_STRATEGY, RouteAction } from './router.types'\n\ntype TRouteArea = {\n\tcomponent: string\n\tstate: object | undefined\n}\n\n@customElement('schmancy-area')\nexport class SchmancyArea extends $LitElement(css`\n\t:host {\n\t\tposition: relative;\n\t\tdisplay: block;\n\t\tinset: 0;\n\t}\n`) {\n\t/**\n\t * The name of the router outlet\n\t * @attr\n\t * @type {string}\n\t * @public\n\t * @required\n\t */\n\t@property() name!: string\n\n\t@property() default!: string | CustomElementConstructor | TemplateResult<1>\n\n\t/**\n\t *\n\t * @param pathname pathname from the browser location API\n\t * @param historyStrategy the history strategy to use for the route like PUSH, REPLACE, or SILENT\n\t * @returns rxjs pipes that will return the component to render and the history strategy to use\n\t */\n\tgetComponentFromPathname(pathname: string, historyStrategy: HISTORY_STRATEGY) {\n\t\treturn of(pathname).pipe(\n\t\t\tmap(path => path.split('/').pop() ?? ''),\n\t\t\tmap(path => {\n\t\t\t\ttry {\n\t\t\t\t\treturn JSON.parse(decodeURIComponent(path))\n\t\t\t\t} catch {\n\t\t\t\t\treturn {}\n\t\t\t\t}\n\t\t\t}),\n\t\t\tmap(routes => routes[this.name] as TRouteArea),\n\t\t\tmap(component =>\n\t\t\t\t!component && this.default\n\t\t\t\t\t? {\n\t\t\t\t\t\t\tcomponent: this.default,\n\t\t\t\t\t\t\tstate: undefined,\n\t\t\t\t\t\t}\n\t\t\t\t\t: component,\n\t\t\t),\n\t\t\tfilter(x => isPresent(x)),\n\t\t\tmap((component: TRouteArea) => ({\n\t\t\t\tarea: this.name,\n\t\t\t\tcomponent: component.component ?? this.default,\n\t\t\t\tstate: component.state,\n\t\t\t\thistoryStrategy,\n\t\t\t})),\n\t\t\tmap(x => x as RouteAction),\n\t\t\tcatchError(() => {\n\t\t\t\treturn this.default\n\t\t\t\t\t? of({\n\t\t\t\t\t\t\tarea: this.name,\n\t\t\t\t\t\t\tcomponent: this.default,\n\t\t\t\t\t\t\thistoryStrategy,\n\t\t\t\t\t\t} as RouteAction)\n\t\t\t\t\t: EMPTY\n\t\t\t}),\n\t\t)\n\t}\n\n\tprotected firstUpdated(): void {\n\t\tif (!this.name) {\n\t\t\tthrow new Error('Area name or default component not set')\n\t\t}\n\n\t\t// active outlet changes\n\t\tmerge(\n\t\t\t// 1) initial load from location.pathname\n\t\t\tof(location.pathname).pipe(\n\t\t\t\tswitchMap(pathname => this.getComponentFromPathname(pathname, HISTORY_STRATEGY.silent)),\n\t\t\t\tmap(route => route as RouteAction),\n\t\t\t\ttake(1),\n\t\t\t),\n\t\t\t// 2) requests to change the route for this area\n\t\t\tarea.request.pipe(filter(({ area }) => area === this.name)),\n\t\t\t// 3) popstate events (back, forward)\n\t\t\tfromEvent<PopStateEvent>(window, 'popstate').pipe(\n\t\t\t\tmap(e => (e.target as Window).location.pathname),\n\t\t\t\tswitchMap(pathname => this.getComponentFromPathname(pathname, HISTORY_STRATEGY.silent)),\n\t\t\t\tmap(route => route as RouteAction),\n\t\t\t),\n\t\t)\n\t\t\t.pipe(\n\t\t\t\tfilter(request => !!request.component),\n\t\t\t\ttakeUntil(this.disconnecting),\n\t\t\t\tdistinctUntilChanged((a, b) => {\n\t\t\t\t\tlet aComponent, bComponent\n\t\t\t\t\tif (typeof a.component === 'function') return false\n\t\t\t\t\telse if (typeof a.component === 'string') aComponent = a.component\n\n\t\t\t\t\tif (typeof b.component === 'function') return false\n\t\t\t\t\telse if (typeof b.component === 'string') bComponent = b.component\n\n\t\t\t\t\tconst sameComponent = bComponent?.replaceAll('-', '').toLowerCase() === aComponent?.replaceAll('-', '').toLowerCase()\n\t\t\t\t\tconst sameParams = JSON.stringify(a.params || {}) === JSON.stringify(b.params || {})\n\t\t\t\t\t\n\t\t\t\t\treturn sameComponent && sameParams\n\t\t\t\t}),\n\t\t\t)\n\t\t\t.pipe(\n\t\t\t\tswitchMap(route => {\n\t\t\t\t\tconst c = route.component\n\t\t\t\t\tif (c instanceof Promise) {\n\t\t\t\t\t\t// Dynamic import module\n\t\t\t\t\t\treturn from(c).pipe(\n\t\t\t\t\t\t\tmap((x: any) => ({ component: (x.exports?.default || x.default) as CustomElementConstructor, route })),\n\t\t\t\t\t\t\tcatchError(() => EMPTY)\n\t\t\t\t\t\t)\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// Already a string, function, or element\n\t\t\t\t\t\treturn of({ component: c, route })\n\t\t\t\t\t}\n\t\t\t\t}),\n\t\t\t\tmap(({ component, route }) => {\n\t\t\t\t\tlet element: HTMLElement\n\t\t\t\t\t\n\t\t\t\t\tif (typeof component === 'string') {\n\t\t\t\t\t\t// Tag name\n\t\t\t\t\t\telement = document.createElement(component)\n\t\t\t\t\t} else if (component instanceof HTMLElement) {\n\t\t\t\t\t\t// Already an element instance\n\t\t\t\t\t\telement = component\n\t\t\t\t\t} else if (typeof component === 'function') {\n\t\t\t\t\t\t// Custom element constructor\n\t\t\t\t\t\telement = new component()\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// @ts-ignore - we know component exists\n\t\t\t\t\t\telement = component\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\t// Set params as properties on the element\n\t\t\t\t\tif (route.params) {\n\t\t\t\t\t\tObject.entries(route.params).forEach(([key, value]) => {\n\t\t\t\t\t\t\t(element as any)[key] = value\n\t\t\t\t\t\t})\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\t// Set state as well if provided\n\t\t\t\t\tif (route.state) {\n\t\t\t\t\t\t(element as any).state = route.state\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\treturn { component: element, route }\n\t\t\t\t}),\n\t\t\t\t// create the new view and add it to the DOM\n\t\t\t\tmap(({ component, route }) => {\n\t\t\t\t\tconst oldView = this.shadowRoot?.children[0]\n\t\t\t\t\tconst oldViewExists = !!oldView\n\n\t\t\t\t\t// Remove the old view (if any)\n\t\t\t\t\toldView?.remove()\n\t\t\t\t\t// Native Web Animations API - fade in\n\t\t\t\t\t// \"ease: cubic-bezier(0.25, 0.8, 0.25, 1)\" was used in the old code\n\t\t\t\t\tcomponent.classList.add('opacity-0')\n\t\t\t\t\tthis.shadowRoot?.append(component)\n\t\t\t\t\tcomponent.animate([{ opacity: 0 }, { opacity: 1 }], {\n\t\t\t\t\t\tduration: oldViewExists ? 150 : 100,\n\t\t\t\t\t\teasing: 'cubic-bezier(0.25, 0.8, 0.25, 1)',\n\t\t\t\t\t\tfill: 'forwards',\n\t\t\t\t\t})\n\n\t\t\t\t\t// Insert the new view\n\n\t\t\t\t\treturn { component, route }\n\t\t\t\t}),\n\t\t\t\ttap(({ component, route }) => {\n\t\t\t\t\t// Handle history updates\n\t\t\t\t\tif (typeof route.historyStrategy === 'undefined' || route.historyStrategy === 'push') {\n\t\t\t\t\t\thistory.pushState(route.state, '', this.newPath(component.tagName, route))\n\t\t\t\t\t} else if (route.historyStrategy && ['replace', 'pop'].includes(route.historyStrategy)) {\n\t\t\t\t\t\thistory.replaceState(route.state, '', this.newPath(component.tagName, route))\n\t\t\t\t\t}\n\t\t\t\t\tarea.current.set(this.name, {\n\t\t\t\t\t\tcomponent: component.tagName,\n\t\t\t\t\t\tstate: route.state || {},\n\t\t\t\t\t\tarea: this.name,\n\t\t\t\t\t\tparams: route.params || {},\n\t\t\t\t\t})\n\n\t\t\t\t\tarea.$current.next(area.current)\n\t\t\t\t}),\n\t\t\t\ttakeUntil(this.disconnecting),\n\t\t\t)\n\t\t\t.subscribe()\n\t}\n\n\tnewPath(tag: string, route: RouteAction) {\n\t\tconst oldPathname = location.pathname.split('/').pop()\n\t\tlet oldAreaState = {}\n\t\ttry {\n\t\t\toldAreaState = oldPathname ? JSON.parse(decodeURIComponent(oldPathname)) : {}\n\t\t} catch {\n\t\t\toldAreaState = {}\n\t\t}\n\t\troute.state = route.state ?? {}\n\t\tconst queryParams = route.clearQueryParams ? this.queryParamClear(route.clearQueryParams) : document.location.search\n\n\t\treturn encodeURIComponent(\n\t\t\tJSON.stringify({\n\t\t\t\t...oldAreaState,\n\t\t\t\t[this.name]: { component: tag.toLowerCase(), state: route.state, params: route.params },\n\t\t\t}),\n\t\t).concat(`${queryParams}`)\n\t}\n\n\tqueryParamClear(params?: string[] | boolean) {\n\t\tif (!params) {\n\t\t\treturn ''\n\t\t}\n\t\t// get query params from url\n\t\tconst urlParams = new URLSearchParams(location.search)\n\t\t\n\t\tif (params === true) {\n\t\t\t// Clear all query params\n\t\t\treturn ''\n\t\t} else {\n\t\t\t// Clear specific query params\n\t\t\tparams.forEach(param => urlParams.delete(param))\n\t\t\t// update url\n\t\t\tif (urlParams.toString() === '') return ''\n\t\t\treturn `?${urlParams.toString()}`\n\t\t}\n\t}\n\n\tcheckForTeleportationRequests() {\n\t\treturn fromEvent<CustomEvent>(window, 'FLIP_REQUEST').pipe(\n\t\t\tmap(e => e.detail),\n\t\t\tbufferTime(0),\n\t\t\ttap(() => {\n\t\t\t\tthis.dispatchEvent(new CustomEvent('FLIP_STARTED'))\n\t\t\t}),\n\t\t\ttakeUntil(this.disconnecting),\n\t\t\ttimeout(0),\n\t\t\tcatchError(() => of(null)),\n\t\t)\n\t}\n\n\tdisconnectedCallback(): void {\n\t\tsuper.disconnectedCallback()\n\t\tthis.disconnecting.next(true)\n\t\tthis.disconnecting.complete()\n\t}\n\n\trender() {\n\t\treturn html` <slot> </slot> `\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-area': SchmancyArea\n\t}\n}"],"names":["routerHistory","Subject","FINDING_MORTIES","HERE_RICKY","areaSubjectsCache","WeakMap","AreaService","this","prettyURL","mode","request","ReplaySubject","current","Map","$current","enableHistoryMode","findingMortiesEvent","CustomEvent","disposed","next","subscribe","currentAreas","forEach","route","areaName","getOrCreateAreaSubject","subjects","get","set","subject","areaSubjects","closed","currentRoute","state","params","skipCurrent","Error","observable","asObservable","pipe","distinctUntilChanged","a","b","component","JSON","stringify","shareReplay","skip","on","map","filter","catchError","err","EMPTY","key","value","zip","fromEvent","window","e","detail","bufferTime","of","tap","dispatchEvent","timeout","r","area","routeAction","dispatchAreaEvent","event","historyStrategy","bubbles","composed","name","newState","encoded","encodeURIComponent","history","replaceState","location","search","delete","areaSubject","complete","clear","dispose","instance","pathname","split","pop","decoded","decodeURIComponent","parsed","parse","has","getActiveAreas","Array","from","keys","getInstance","addEventListener","HISTORY_STRATEGY","SchmancyArea","$LitElement","css","path","routes","default","x","isPresent","firstUpdated","merge","switchMap","getComponentFromPathname","silent","take","target","takeUntil","disconnecting","aComponent","bComponent","sameComponent","replaceAll","toLowerCase","sameParams","c","Promise","exports","element","document","createElement","HTMLElement","Object","entries","oldView","shadowRoot","children","oldViewExists","remove","classList","add","append","animate","opacity","duration","easing","fill","pushState","newPath","tagName","includes","tag","oldPathname","oldAreaState","queryParams","clearQueryParams","queryParamClear","concat","urlParams","URLSearchParams","param","toString","checkForTeleportationRequests","disconnectedCallback","super","html","__decorateClass","property","prototype","customElement"],"mappings":";;;;;;;;AAqBa,MAAAA,IAAgB,IAAIC,KAEpBC,IAAkB,mBAClBC,IAAa,cASpBC,wBAAwBC;AAE9B,MAAMC,EAAAA;AAAAA,EAsBL,cApBAC;AAAAA,SAAOC,gBACPD,KAAOE,OAA6B,WAC7BF,KAAAG,UAAU,IAAIC,EAA2B,IACzCJ,KAAAK,8BAAcC,OACdN,KAAAO,WAAW,IAAIH,EAAwC,CAY9DJ,GAAAA,KAAOQ,wBACCR,KAAAS,sBAAsB,IAAIC,YAA6Cf,IAC/EK,KAAQW,WAAAA,IAGFX,KAAAO,SAASK,KAAKZ,KAAKK,OAAAA,GAGnBL,KAAAO,SAASM,UAA0BC,CAAAA;AACnCd,WAAKW,YAGIG,EAAAC,QAAQ,CAACC,GAAOC,MAAAA;AAERjB,aAAKkB,uBAAuBD,CAAAA,EAEpCL,KAAKI,CAAK;AAAA,MAAA,CAAA;AAAA,IACtB;EACD;AAAA,EA3BF,IAAA;AACK,QAAAG,IAAWtB,EAAkBuB,IAAIpB,IAAAA;AAK9B,WAJFmB,MACJA,wBAAeb,OACGT,EAAAwB,IAAIrB,MAAMmB,KAEtBA;AAAAA,EAAA;AAAA,EA2BA,uBAAuBF,GAAAA;AAC9B,QAAIK,IAAUtB,KAAKuB,aAAaH,IAAIH,CAAAA;AAEhC,SAACK,KAAWA,EAAQE,QAAQ;AACrBF,MAAAA,IAAA,IAAIlB,EAA2B,IACpCJ,KAAAuB,aAAaF,IAAIJ,GAAUK,CAAAA;AAGhC,YAAMG,IAAezB,KAAKK,QAAQe,IAAIH,CAAAA;AAClCQ,MAAAA,KACHH,EAAQV,KAAK,KACTa,GAEHC,OAAOD,EAAaC,SAAS,CAAC,GAC9BC,QAAQF,EAAaE,UAAU,CAAA;IAEjC;AAGM,WAAAL;AAAAA,EAAA;AAAA,EAMR,GAAGL,GAAkBW,IAAAA;AACpB,QAAKX,CAAAA,EACE,OAAA,IAAIY,MAAM;AAGX,UACAC,IADc9B,KAAKkB,uBAAuBD,GACjBc,aAAeC,EAAAA,KAE7CC,EAAqB,CAACC,GAAGC,MACxBD,EAAEE,cAAcD,EAAEC,aAClBC,KAAKC,UAAUJ,EAAER,KAAAA,MAAWW,KAAKC,UAAUH,EAAET,UAC7CW,KAAKC,UAAUJ,EAAEP,MAAAA,MAAYU,KAAKC,UAAUH,EAAER,UAG/CY,EAAY,CAAA,CAAA;AAGb,WAAOX,IAAcE,EAAWE,KAAKQ,EAAK,CAAA,CAAA,IAAMV;AAAAA,EAAA;AAAA,EAMjD,IAAIF,IAAc,IAAA;AACjB,UAAME,IAAa9B,KAAKO,SAASwB,aAAAA,EAAeC,KAC/CO,EAAY,CAAA,CAAA;AAEb,WAAOX,IAAcE,EAAWE,KAAKQ,EAAK,CAAA,CAAA,IAAMV;AAAAA,EAAA;AAAA,EAMjD,SAAsBb,GACrB;AAAA,QAAA,CAAKA,EACE,OAAA,IAAIY,MAAM,uBAGV;AAAA,WAAA7B,KAAKyC,GAAGxB,GAAUe,KACxBU,EAAa1B,OAAAA,EAAMU,KAAAA,GACnBiB,EAAQjB,OACPA,KAAAA,IAAAA,GAEDO,EAAqB,CAACC,GAAGC,MAAME,KAAKC,UAAUJ,OAAOG,KAAKC,UAAUH,KACpEO,SAAahB,CACbkB,GAAAA,EAAkBC,OAEVC,CAET,CAAA;AAAA,EAAA;AAAA,EAMD,OAAoE7B,GAAAA;AACnE,SAAKA,EACE,OAAA,IAAIY,MAAM,uBAAA;AAGV,WAAA7B,KAAKyC,GAAGxB,GAAUe,KACxBU,EAAa1B,OAAAA,EAAMW,MAAAA,GACnBgB,EAAQhB,YACPA,OAEDM,EAAqB,CAACC,GAAGC,MAAME,KAAKC,UAAUJ,CAAOG,MAAAA,KAAKC,UAAUH,CACpEO,CAAAA,GAAAA,SAAcf,CACdiB,GAAAA,EAAkBC,OAEVC,CAET,CAAA;AAAA,EAAA;AAAA,EAMD,MAAmB7B,GAAkB8B,GAChC;AAAA,QAAA,CAAC9B,MAAa8B,EACX,OAAA,IAAIlB,MAAM,gCAAA;AAGV,WAAA7B,KAAK2B,OAAgCV,GAAUe,KACrDU,EAAIf,CAAAA,MAAUA,EAAOoB,CAAAA,CAAAA,GACrBJ,EAAQK,CAAAA,MAAyCA,MAAU,SAC3Df,EACAS,GAAAA,SAAaM,CACbJ,GAAAA,EAAkBC,CAAAA,MAEVC,CAET,CAAA;AAAA,EAAA;AAAA,EAMD,OACC;AAAA,WAAOG,EAAI,CACVC,EAA4BC,QAAQvD,CAAYoC,EAAAA,KAC/CU,EAASU,CAAAA,MAAAA,EAAEC,SACXC,EAAW,CAAA,CAAA,GAEZC,EAAG,CAAGvB,EAAAA,KAAKwB,EAAI,MAAML,OAAOM,cAAczD,KAAKS,yBAC7CuB,KACFU,EAAI,EAAEN,CAAeA,MAAAA,CAAAA,GACrBsB,EAAQ,CACRd,GAAAA,EAAW,MAAME,CAClB,CAAA;AAAA,EAAA;AAAA,EAMD,KAAKa,GAAAA;AACA,SAACA,EAAEC,KACA,OAAA,IAAI/B,MAAM,mCAIjB;AAAA,UAAMgC,IAA2B,EAC7BF,GAAAA,GACHjC,OAAOiC,EAAEjC,SAAS,CAAC,GACnBC,QAAQgC,EAAEhC,UAAU,CAAA;AAIjB3B,SAAKQ,qBACRf,EAAcmB,KAAKiD,CAAAA,GAGf7D,KAAAG,QAAQS,KAAKiD,CAEb7D,GAAAA,KAAA8D,kBAAkBD,EAAYD,MAAMC;EAAW;AAAA,EAM7C,kBAAkB5C,GAAkB4C,GAAAA;AACrC,UACAE,IAAQ,IAAIrD,YADA,iBAAiBO,CAAAA,YACM,EACxCoC,QAAQ,EACPO,MAAM3C,GACNmB,WAAWyB,EAAYzB,WACvBV,OAAOmC,EAAYnC,OACnBC,QAAQkC,EAAYlC,QACpBqC,iBAAiBH,EAAYG,gBAAAA,GAE9BC,aACAC,UAAAA;AAEDf,WAAOM,cAAcM;EAAK;AAAA,EAM3B,IAAII,GAAAA;AACH,SAAKA,EACE,OAAA,IAAItC,MAAM,uBAAA;AAGjB,UAAMuC,IAAW,EAAA,GAAKpE,KAAK0B,MACpB0C;AAAAA,WAAAA,EAASD;AAGhB,UAAME,IAAUC,mBAAmBjC,KAAKC,UAAU8B;AAC1CG,YAAAC,aAAa,MAAM,IAAI,IAAIH,CAAUI,GAAAA,SAASC,WAGjD1E,KAAAK,QAAQsE,OAAOR,CACfnE,GAAAA,KAAAO,SAASK,KAAKZ,KAAKK;AAGxB,UAAMuE,IAAc5E,KAAKuB,aAAaH,IAAI+C;AACtCS,UACHA,EAAYC,SACP7E,GAAAA,KAAAuB,aAAaoD,OAAOR,CAAAA;AAAAA,EAC1B;AAAA,EAMD,QAAAW;AAEC9E,SAAKuB,aAAaR,QAAmBO,CAAAA,MAAAA,EAAQuD,SAAAA,CAAAA,GAC7C7E,KAAKuB,aAAauD,MAAAA,GAGlB9E,KAAKK,QAAQyE,MAAAA,GACR9E,KAAAO,SAASK,KAAKZ,KAAKK,OAGxBkE,GAAAA,QAAQC,aAAa,MAAM,IAAI,IAAIC,SAASC,MAAAA,EAAAA;AAAAA,EAAQ;AAAA,EAMrD,UAAAK;AACK/E,SAAKW,aAETX,KAAKW,eAGLX,KAAKuB,aAAaR,QAAmBO,CAAAA,MAAAA,EAAQuD,SAC7C7E,CAAAA,GAAAA,KAAKuB,aAAauD,MAAAA,GAElB9E,KAAKG,QAAQ0E,SAAAA,GACb7E,KAAKO,SAASsE,SAAAA,GACdpF,EAAcoF,SAGd7E,GAAAA,KAAKK,QAAQyE,MACbjF,GAAAA,EAAkB8E,OAAO3E,IAAI;AAAA,EAAA;AAAA,EAM9B,qBAIC;AAAA,WAHKD,EAAYiF,aACJjF,EAAAiF,WAAW,IAAIjF,MAErBA,EAAYiF;AAAAA,EAAA;AAAA,EAMpB,IAAItD,QAAAA;AACH,UAAMuD,IAAWR,SAASQ,SAASC,MAAM,GAAA,EAAKC;AAC1C,QAACF,CAAAA,EAAU,QAAO,CAAC;AAEnB;AACG,YAAAG,IAAUC,mBAAmBJ,CAAAA,GAC7BK,IAASjD,KAAKkD,MAAMH;AAE1B,UAAsB,OAAXE,KAAW,YAAYA,MAAW,KACrC,QAAAA;AAAAA,IACR;IACO;AAIR,WAAO,CAAC;AAAA,EAAA;AAAA,EAMT,QAAQrE,GAAAA;AACA,WAAAjB,KAAKK,QAAQmF,IAAIvE,CAAAA;AAAAA,EAAQ;AAAA,EAMjC,iBAAAwE;AACC,WAAOC,MAAMC,KAAK3F,KAAKK,QAAQuF,KAAAA,CAAAA;AAAAA,EAAM;AAAA,EAMtC,SAAS3E;AACD,WAAAjB,KAAKK,QAAQe,IAAIH,CAAAA;AAAAA,EAAQ;AAIrB;AAAA,MAAA2C,IAAO7D,EAAY8F,YAAAA;OAIrB1C,SAAW,OACdA,OAAA2C,iBAAiB,UAAU,MAAA;AACjClC,EAAAA,EAAKmB,QAAQ;AAAA,CAAA;AChUH,IAAAgB,KAAAA,CAAAA,OACXA,EAAO,OAAA,QACPA,EAAU,UAAA,WACVA,EAAM,MAAA,OACNA,EAAS,SAAA,UAJEA,IAAAA,KAAA,CAAA;;;;AC9BC,IAAAC,IAAN,cAA2BC,EAAYC;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,CAwB7C,EAAA;AAAA,EAAA,yBAAyBjB,GAAkBjB,GACnC;AAAA,WAAAT,EAAG0B,CAAUjD,EAAAA,KACnBU,SAAYyD,EAAKjB,MAAM,GAAKC,EAAAA,IAAAA,KAAS,KACrCzC,EAAYyD,OAAAA;AACP,UACH;AAAA,eAAO9D,KAAKkD,MAAMF,mBAAmBc,CAAAA,CAAAA;AAAAA,MAAK,QAE1C;AAAA,eAAO,CAAC;AAAA,MAAA;AAAA,IAGVzD,CAAAA,GAAAA,EAAI0D,OAAUA,EAAOpG,KAAKmE,IAC1BzB,CAAAA,GAAAA,EACCN,OAACA,CAAAA,KAAapC,KAAKqG,UAChB,EACAjE,WAAWpC,KAAKqG,SAChB3E,OAAAA,OAEAU,IAAAA,CAAAA,GAEJO,EAAO2D,OAAKC,EAAUA,UAAAD,KACtB5D,EAAKN,QAA2B,EAC/BwB,MAAM5D,KAAKmE,MACX/B,WAAWA,EAAUA,aAAapC,KAAKqG,SACvC3E,OAAOU,EAAUV,OACjBsC,iBAAAA,EAAAA,EAAAA,GAEDtB,SAAS4D,IACT1D,EAAW,MACH5C,KAAKqG,UACT9C,EAAG,EACHK,MAAM5D,KAAKmE,MACX/B,WAAWpC,KAAKqG,SAChBrC,iBAAAA,EAAAA,CAAAA,IAEAlB,CAEL,CAAA;AAAA,EAAA;AAAA,EAGS,eAAA0D;AACL,SAACxG,KAAKmE,KACH,OAAA,IAAItC,MAAM,wCAAA;AAIjB4E,IAAAA,EAEClD,EAAGkB,SAASQ,QAAUjD,EAAAA,KACrB0E,EAAsBzB,CAAAA,MAAAjF,KAAK2G,yBAAyB1B,GAAUc,EAAiBa,UAC/ElE,SAAa1B,CACb6F,GAAAA,EAAK,CAGNjD,CAAAA,GAAAA,EAAKzD,QAAQ6B,KAAKW,EAAO,CAAGiB,EAAAA,MAAAA,EAAWA,MAAAA,MAAS5D,KAAKmE,IAAAA,CAAAA,GAErDjB,EAAyBC,QAAQ,YAAYnB,KAC5CU,EAAIU,CAAAA,MAAMA,EAAE0D,OAAkBrC,SAASQ,QACvCyB,GAAAA,EAAsBzB,CAAAA,MAAAjF,KAAK2G,yBAAyB1B,GAAUc,EAAiBa,MAC/ElE,CAAAA,GAAAA,SAAa1B,CAAAA,CAAAA,CAAAA,EAGbgB,KACAW,EAAOxC,CAAAA,MAAAA,CAAAA,CAAaA,EAAQiC,SAAAA,GAC5B2E,EAAU/G,KAAKgH,aACf/E,GAAAA,EAAqB,CAACC,GAAGC,MAAAA;AACxB,UAAI8E,GAAYC;AAIhB,UAHWhF,OAAAA,EAAEE,aAAc,eACK,OAAhBF,EAAEE,aAAc,iBAAuBF,EAAEE,YAE9CD,OAAAA,EAAEC,aAAc,YAAmB,QAAA;AACd,MAAA,OAAhBD,EAAEC,aAAc,iBAAuBD,EAAEC;AAEzD,YAAM+E,KAAgBD,KAAAA,gBAAAA,EAAYE,WAAW,KAAK,IAAIC,oBAAkBJ,KAAAA,gBAAAA,EAAYG,WAAW,KAAK,IAAIC,gBAClGC,IAAajF,KAAKC,UAAUJ,EAAEP,UAAU,EAAQU,MAAAA,KAAKC,UAAUH,EAAER,UAAU,CAAA;AAEjF,aAAOwF,KAAiBG;AAAAA,IAAA,CAAA,CAAA,EAGzBtF,KACA0E,EAAmB1F,CAAAA,MAClB;AAAA,YAAMuG,IAAIvG,EAAMoB;AAChB,aAAImF,aAAaC,UAET7B,EAAK4B,CAAGvF,EAAAA,KACdU,EAAK4D,CAAAA;;iBAAclE,aAAYkE,IAAAA,EAAEmB,YAAFnB,gBAAAA,EAAWD,YAAWC,EAAED,SAAsCrF;UAC7F4B,EAAW,MAAME,CAIXS,CAAAA,IAAAA,EAAG,EAAEnB,WAAWmF,GAAGvG,OAAAA,EAAAA,CAAAA;AAAAA,IAAO,IAGnC0B,EAAI,CAAA,EAAGN,WAAWpB,GAAAA,OAAAA,EAAAA,MAAAA;AACb,UAAA0G;AA4BG,aAxBIA,WAFAtF,KAAc,WAEduF,SAASC,cAAcxF,CAAAA,IACvBA,aAAqByF,cAErBzF,IACqB,OAAdA,KAAc,aAErB,IAAIA,MAGJA,GAIPpB,EAAMW,UACFmG,OAAAC,QAAQ/G,EAAMW,QAAQZ,QAAQ,CAAA,CAAEgC,GAAKC,CAAAA,MAAAA;AAC1C0E,QAAAA,EAAgB3E,CAAAA,IAAOC;AAAAA,MAAA,CAAA,GAKtBhC,EAAMU,UACRgG,EAAgBhG,QAAQV,EAAMU,QAGzB,EAAEU,WAAWsF,GAAS1G,OAAAA,EAAAA;AAAAA,IAAM,IAGpC0B,EAAI,CAAA,EAAGN,WAAWpB,GAAAA,OAAAA,EAAAA,MAAAA;;AACjB,YAAMgH,KAAUhI,IAAAA,KAAKiI,eAALjI,gBAAAA,EAAiBkI,SAAS,IACpCC,IAAAA,CAAAA,CAAkBH;AAgBjB,aAbPA,KAAAA,QAAAA,EAASI,UAGChG,EAAAiG,UAAUC,IAAI,WACnBtI,IAAAA,IAAAA,KAAAiI,eAAAjI,QAAAA,EAAYuI,OAAOnG,IACdA,EAAAoG,QAAQ,CAAC,EAAEC,SAAS,EAAA,GAAK,EAAEA,SAAS,EAAM,CAAA,GAAA,EACnDC,UAAUP,IAAgB,MAAM,KAChCQ,QAAQ,oCACRC,MAAM,WAKA,CAAA,GAAA,EAAExG,WAAWpB,GAAAA,OAAAA,EAAAA;AAAAA,IAAM,IAE3BwC,EAAI,CAAA,EAAGpB,WAAWpB,GAAAA,OAAAA,EAAAA,MAAAA;AAAAA,MAENA,EAAMgD,oBAFAhD,UAEmCA,EAAMgD,oBAAoB,SACrEO,QAAAsE,UAAU7H,EAAMU,OAAO,IAAI1B,KAAK8I,QAAQ1G,EAAU2G,SAAS/H,CAAAA,CAAAA,IACzDA,EAAMgD,mBAAmB,CAAC,WAAW,KAAOgF,EAAAA,SAAShI,EAAMgD,eAC7DO,KAAAA,QAAAC,aAAaxD,EAAMU,OAAO,IAAI1B,KAAK8I,QAAQ1G,EAAU2G,SAAS/H,CAAAA,CAAAA,GAElE4C,EAAAvD,QAAQgB,IAAIrB,KAAKmE,MAAM,EAC3B/B,WAAWA,EAAU2G,SACrBrH,OAAOV,EAAMU,SAAS,CAAC,GACvBkC,MAAM5D,KAAKmE,MACXxC,QAAQX,EAAMW,UAAU,CAAA,EAAA,CAAA,GAGpBiC,EAAArD,SAASK,KAAKgD,EAAKvD,OAAAA;AAAAA,IAAO,CAEhC0G,GAAAA,EAAU/G,KAAKgH,aAAAA,CAAAA,EAEfnG,UAAU;AAAA,EAAA;AAAA,EAGb,QAAQoI,GAAajI,GACpB;AAAA,UAAMkI,IAAczE,SAASQ,SAASC,MAAM,KAAKC,IACjD;AAAA,QAAIgE,IAAe,CAAC;AAChB,QAAA;AACHA,MAAAA,IAAeD,IAAc7G,KAAKkD,MAAMF,mBAAmB6D,CAAgB,CAAA,IAAA,CAAC;AAAA,IAAA,QACrE;AACPC,MAAAA,IAAe,CAAC;AAAA,IAAA;AAEXnI,MAAAU,QAAQV,EAAMU,SAAS,CAAC;AACxB,UAAA0H,IAAcpI,EAAMqI,mBAAmBrJ,KAAKsJ,gBAAgBtI,EAAMqI,gBAAAA,IAAoB1B,SAASlD,SAASC;AAEvG,WAAAJ,mBACNjC,KAAKC,UAAU,EACX6G,GAAAA,GACH,CAACnJ,KAAKmE,OAAO,EAAE/B,WAAW6G,EAAI5B,YAAAA,GAAe3F,OAAOV,EAAMU,OAAOC,QAAQX,EAAMW,OAE/E4H,EAAAA,CAAAA,CAAAA,EAAAA,OAAO,GAAGH,CAAAA,EAAAA;AAAAA,EAAa;AAAA,EAG1B,gBAAgBzH,GAAAA;AACf,SAAKA,EACG,QAAA;AAGR,UAAM6H,IAAY,IAAIC,gBAAgBhF,SAASC;AAE/C,WAAI/C,MAAW,KAEP,MAGPA,EAAOZ,QAAQ2I,OAASF,EAAU7E,OAAO+E,CAEZ,CAAA,GAAzBF,EAAUG,SAAAA,MAAe,KAAW,KACjC,IAAIH,EAAUG,SAAAA,CAAAA;AAAAA,EACtB;AAAA,EAGD,gCAAAC;AACQ,WAAA1G,EAAuBC,QAAQ,cAAA,EAAgBnB,KACrDU,EAASU,CAAAA,MAAAA,EAAEC,MAAAA,GACXC,EAAW,CAAA,GACXE,EAAI,MAAA;AACHxD,WAAKyD,cAAc,IAAI/C,YAAY,cAAA,CAAA;AAAA,IAAe,CAEnDqG,GAAAA,EAAU/G,KAAKgH,aAAAA,GACftD,EAAQ,CAAA,GACRd,EAAW,MAAMW,EAAG,IACrB,CAAA,CAAA;AAAA,EAAA;AAAA,EAGD,uBAAAsG;AACCC,UAAMD,qBAAAA,GACD7J,KAAAgH,cAAcpG,KAAAA,EACnBZ,GAAAA,KAAKgH,cAAcnC,SAAAA;AAAAA,EAAS;AAAA,EAG7B;AACQ,WAAAkF;AAAAA,EAAA;AAAA;AAzOIC,EAAA,CAAXC,EAdWjE,CAAAA,GAAAA,EAcAkE,WAAA,QAAA,CAAA,GAEAF,EAAA,CAAXC,EAhBWjE,CAAAA,GAAAA,EAgBAkE,WAAA,WAAA,IAhBAlE,IAANgE,EAAA,CADNG,EAAc,mBACFnE;"}
@@ -1,8 +1,8 @@
1
- "use strict";const r=require("rxjs");require("lit/directives/class-map.js"),require("lit/directives/style-map.js");const S=require("./litElement.mixin-CB6DWbFn.cjs");require("./tailwind.mixin-mxyACxyp.cjs");const f=require("lit"),m=require("lit/decorators.js"),w=require("./index-DyJ0oDpR.cjs"),d=new r.Subject,y="FINDING_MORTIES",g="HERE_RICKY",u=new WeakMap;class c{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(y),this.disposed=!1,this.$current.next(this.current),this.$current.subscribe(e=>{this.disposed||e.forEach((t,n)=>{this.getOrCreateAreaSubject(n).next(t)})})}get areaSubjects(){let e=u.get(this);return e||(e=new Map,u.set(this,e)),e}getOrCreateAreaSubject(e){let t=this.areaSubjects.get(e);if(!t||t.closed){t=new r.ReplaySubject(1),this.areaSubjects.set(e,t);const n=this.current.get(e);n&&t.next({...n,state:n.state||{},params:n.params||{}})}return t}on(e,t=!1){if(!e)throw new Error("Area name is required");const n=this.getOrCreateAreaSubject(e).asObservable().pipe(r.distinctUntilChanged((s,i)=>s.component===i.component&&JSON.stringify(s.state)===JSON.stringify(i.state)&&JSON.stringify(s.params)===JSON.stringify(i.params)),r.shareReplay(1));return t?n.pipe(r.skip(1)):n}all(e=!1){const t=this.$current.asObservable().pipe(r.shareReplay(1));return e?t.pipe(r.skip(1)):t}getState(e){if(!e)throw new Error("Area name is required");return this.on(e).pipe(r.map(t=>t.state),r.filter(t=>t!=null),r.distinctUntilChanged((t,n)=>JSON.stringify(t)===JSON.stringify(n)),r.map(t=>t),r.catchError(t=>r.EMPTY))}params(e){if(!e)throw new Error("Area name is required");return this.on(e).pipe(r.map(t=>t.params),r.filter(t=>t!=null),r.distinctUntilChanged((t,n)=>JSON.stringify(t)===JSON.stringify(n)),r.map(t=>t),r.catchError(t=>r.EMPTY))}param(e,t){if(!e||!t)throw new Error("Area name and key are required");return this.params(e).pipe(r.map(n=>n[t]),r.filter(n=>n!==void 0),r.distinctUntilChanged(),r.map(n=>n),r.catchError(n=>r.EMPTY))}find(){return r.zip([r.fromEvent(window,g).pipe(r.map(e=>e.detail),r.bufferTime(0)),r.of(1).pipe(r.tap(()=>window.dispatchEvent(this.findingMortiesEvent)))]).pipe(r.map(([e])=>e),r.timeout(1),r.catchError(()=>r.EMPTY))}push(e){if(!e.area)throw new Error("Area is required for route action");const t={...e,state:e.state||{},params:e.params||{}};this.enableHistoryMode&&d.next(t),this.request.next(t),this.dispatchAreaEvent(t.area,t)}dispatchAreaEvent(e,t){const n=new CustomEvent(`schmancy-area-${e}-changed`,{detail:{area:e,component:t.component,state:t.state,params:t.params,historyStrategy:t.historyStrategy},bubbles:!0,composed:!0});window.dispatchEvent(n)}pop(e){if(!e)throw new Error("Area name is required");const t={...this.state};delete t[e];const n=encodeURIComponent(JSON.stringify(t));history.replaceState(null,"",`/${n}${location.search}`),this.current.delete(e),this.$current.next(this.current);const s=this.areaSubjects.get(e);s&&(s.complete(),this.areaSubjects.delete(e))}clear(){this.areaSubjects.forEach(e=>e.complete()),this.areaSubjects.clear(),this.current.clear(),this.$current.next(this.current),history.replaceState(null,"",`/${location.search}`)}dispose(){this.disposed||(this.disposed=!0,this.areaSubjects.forEach(e=>e.complete()),this.areaSubjects.clear(),this.request.complete(),this.$current.complete(),d.complete(),this.current.clear(),u.delete(this))}static getInstance(){return c.instance||(c.instance=new c),c.instance}get state(){const e=location.pathname.split("/").pop();if(!e)return{};try{const t=decodeURIComponent(e),n=JSON.parse(t);if(typeof n=="object"&&n!==null)return n}catch{}return{}}hasArea(e){return this.current.has(e)}getActiveAreas(){return Array.from(this.current.keys())}getRoute(e){return this.current.get(e)}}const o=c.getInstance();typeof window<"u"&&window.addEventListener("unload",()=>{o.dispose()});var p=(a=>(a.push="push",a.replace="replace",a.pop="pop",a.silent="silent",a))(p||{}),E=Object.defineProperty,b=Object.getOwnPropertyDescriptor,l=(a,e,t,n)=>{for(var s,i=n>1?void 0:n?b(e,t):e,h=a.length-1;h>=0;h--)(s=a[h])&&(i=(n?s(e,t,i):s(i))||i);return n&&i&&E(e,t,i),i};exports.SchmancyArea=class extends S.$LitElement(f.css`
1
+ "use strict";const r=require("rxjs");require("lit/directives/class-map.js"),require("lit/directives/style-map.js");const S=require("./litElement.mixin-DWxMKydc.cjs");require("./tailwind.mixin-B1NF3tDz.cjs");const f=require("lit"),m=require("lit/decorators.js"),w=require("./index-DyJ0oDpR.cjs"),d=new r.Subject,y="FINDING_MORTIES",g="HERE_RICKY",u=new WeakMap;class c{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(y),this.disposed=!1,this.$current.next(this.current),this.$current.subscribe(e=>{this.disposed||e.forEach((t,n)=>{this.getOrCreateAreaSubject(n).next(t)})})}get areaSubjects(){let e=u.get(this);return e||(e=new Map,u.set(this,e)),e}getOrCreateAreaSubject(e){let t=this.areaSubjects.get(e);if(!t||t.closed){t=new r.ReplaySubject(1),this.areaSubjects.set(e,t);const n=this.current.get(e);n&&t.next({...n,state:n.state||{},params:n.params||{}})}return t}on(e,t=!1){if(!e)throw new Error("Area name is required");const n=this.getOrCreateAreaSubject(e).asObservable().pipe(r.distinctUntilChanged((s,i)=>s.component===i.component&&JSON.stringify(s.state)===JSON.stringify(i.state)&&JSON.stringify(s.params)===JSON.stringify(i.params)),r.shareReplay(1));return t?n.pipe(r.skip(1)):n}all(e=!1){const t=this.$current.asObservable().pipe(r.shareReplay(1));return e?t.pipe(r.skip(1)):t}getState(e){if(!e)throw new Error("Area name is required");return this.on(e).pipe(r.map(t=>t.state),r.filter(t=>t!=null),r.distinctUntilChanged((t,n)=>JSON.stringify(t)===JSON.stringify(n)),r.map(t=>t),r.catchError(t=>r.EMPTY))}params(e){if(!e)throw new Error("Area name is required");return this.on(e).pipe(r.map(t=>t.params),r.filter(t=>t!=null),r.distinctUntilChanged((t,n)=>JSON.stringify(t)===JSON.stringify(n)),r.map(t=>t),r.catchError(t=>r.EMPTY))}param(e,t){if(!e||!t)throw new Error("Area name and key are required");return this.params(e).pipe(r.map(n=>n[t]),r.filter(n=>n!==void 0),r.distinctUntilChanged(),r.map(n=>n),r.catchError(n=>r.EMPTY))}find(){return r.zip([r.fromEvent(window,g).pipe(r.map(e=>e.detail),r.bufferTime(0)),r.of(1).pipe(r.tap(()=>window.dispatchEvent(this.findingMortiesEvent)))]).pipe(r.map(([e])=>e),r.timeout(1),r.catchError(()=>r.EMPTY))}push(e){if(!e.area)throw new Error("Area is required for route action");const t={...e,state:e.state||{},params:e.params||{}};this.enableHistoryMode&&d.next(t),this.request.next(t),this.dispatchAreaEvent(t.area,t)}dispatchAreaEvent(e,t){const n=new CustomEvent(`schmancy-area-${e}-changed`,{detail:{area:e,component:t.component,state:t.state,params:t.params,historyStrategy:t.historyStrategy},bubbles:!0,composed:!0});window.dispatchEvent(n)}pop(e){if(!e)throw new Error("Area name is required");const t={...this.state};delete t[e];const n=encodeURIComponent(JSON.stringify(t));history.replaceState(null,"",`/${n}${location.search}`),this.current.delete(e),this.$current.next(this.current);const s=this.areaSubjects.get(e);s&&(s.complete(),this.areaSubjects.delete(e))}clear(){this.areaSubjects.forEach(e=>e.complete()),this.areaSubjects.clear(),this.current.clear(),this.$current.next(this.current),history.replaceState(null,"",`/${location.search}`)}dispose(){this.disposed||(this.disposed=!0,this.areaSubjects.forEach(e=>e.complete()),this.areaSubjects.clear(),this.request.complete(),this.$current.complete(),d.complete(),this.current.clear(),u.delete(this))}static getInstance(){return c.instance||(c.instance=new c),c.instance}get state(){const e=location.pathname.split("/").pop();if(!e)return{};try{const t=decodeURIComponent(e),n=JSON.parse(t);if(typeof n=="object"&&n!==null)return n}catch{}return{}}hasArea(e){return this.current.has(e)}getActiveAreas(){return Array.from(this.current.keys())}getRoute(e){return this.current.get(e)}}const o=c.getInstance();typeof window<"u"&&window.addEventListener("unload",()=>{o.dispose()});var p=(a=>(a.push="push",a.replace="replace",a.pop="pop",a.silent="silent",a))(p||{}),E=Object.defineProperty,b=Object.getOwnPropertyDescriptor,l=(a,e,t,n)=>{for(var s,i=n>1?void 0:n?b(e,t):e,h=a.length-1;h>=0;h--)(s=a[h])&&(i=(n?s(e,t,i):s(i))||i);return n&&i&&E(e,t,i),i};exports.SchmancyArea=class extends S.$LitElement(f.css`
2
2
  :host {
3
3
  position: relative;
4
4
  display: block;
5
5
  inset: 0;
6
6
  }
7
- `){getComponentFromPathname(a,e){return r.of(a).pipe(r.map(t=>t.split("/").pop()??""),r.map(t=>{try{return JSON.parse(decodeURIComponent(t))}catch{return{}}}),r.map(t=>t[this.name]),r.map(t=>!t&&this.default?{component:this.default,state:void 0}:t),r.filter(t=>w.libExports.isPresent(t)),r.map(t=>({area:this.name,component:t.component??this.default,state:t.state,historyStrategy:e})),r.map(t=>t),r.catchError(()=>this.default?r.of({area:this.name,component:this.default,historyStrategy:e}):r.EMPTY))}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,p.silent)),r.map(a=>a),r.take(1)),o.request.pipe(r.filter(({area:a})=>a===this.name)),r.fromEvent(window,"popstate").pipe(r.map(a=>a.target.location.pathname),r.switchMap(a=>this.getComponentFromPathname(a,p.silent)),r.map(a=>a))).pipe(r.filter(a=>!!a.component),r.takeUntil(this.disconnecting),r.distinctUntilChanged((a,e)=>{let t,n;if(typeof a.component=="function"||(typeof a.component=="string"&&(t=a.component),typeof e.component=="function"))return!1;typeof e.component=="string"&&(n=e.component);const s=(n==null?void 0:n.replaceAll("-","").toLowerCase())===(t==null?void 0:t.replaceAll("-","").toLowerCase()),i=JSON.stringify(a.params||{})===JSON.stringify(e.params||{});return s&&i})).pipe(r.switchMap(a=>{const e=a.component;return e instanceof Promise?r.from(e).pipe(r.map(t=>{var n;return{component:((n=t.exports)==null?void 0:n.default)||t.default,route:a}}),r.catchError(()=>r.EMPTY)):r.of({component:e,route:a})}),r.map(({component:a,route:e})=>{let t;return t=typeof a=="string"?document.createElement(a):a instanceof HTMLElement?a:typeof a=="function"?new a:a,e.params&&Object.entries(e.params).forEach(([n,s])=>{t[n]=s}),e.state&&(t.state=e.state),{component:t,route:e}}),r.map(({component:a,route:e})=>{var s,i;const t=(s=this.shadowRoot)==null?void 0:s.children[0],n=!!t;return t==null||t.remove(),a.classList.add("opacity-0"),(i=this.shadowRoot)==null||i.append(a),a.animate([{opacity:0},{opacity:1}],{duration:n?150:100,easing:"cubic-bezier(0.25, 0.8, 0.25, 1)",fill:"forwards"}),{component:a,route:e}}),r.tap(({component:a,route:e})=>{e.historyStrategy===void 0||e.historyStrategy==="push"?history.pushState(e.state,"",this.newPath(a.tagName,e)):e.historyStrategy&&["replace","pop"].includes(e.historyStrategy)&&history.replaceState(e.state,"",this.newPath(a.tagName,e)),o.current.set(this.name,{component:a.tagName,state:e.state||{},area:this.name,params:e.params||{}}),o.$current.next(o.current)}),r.takeUntil(this.disconnecting)).subscribe()}newPath(a,e){const t=location.pathname.split("/").pop();let n={};try{n=t?JSON.parse(decodeURIComponent(t)):{}}catch{n={}}e.state=e.state??{};const s=e.clearQueryParams?this.queryParamClear(e.clearQueryParams):document.location.search;return encodeURIComponent(JSON.stringify({...n,[this.name]:{component:a.toLowerCase(),state:e.state,params:e.params}})).concat(`${s}`)}queryParamClear(a){if(!a)return"";const e=new URLSearchParams(location.search);return a.forEach(t=>e.delete(t)),e.toString()===""?"":`?${e.toString()}`}checkForTeleportationRequests(){return r.fromEvent(window,"FLIP_REQUEST").pipe(r.map(a=>a.detail),r.bufferTime(0),r.tap(()=>{this.dispatchEvent(new CustomEvent("FLIP_STARTED"))}),r.takeUntil(this.disconnecting),r.timeout(0),r.catchError(()=>r.of(null)))}disconnectedCallback(){super.disconnectedCallback(),this.disconnecting.next(!0),this.disconnecting.complete()}render(){return f.html` <slot> </slot> `}},l([m.property()],exports.SchmancyArea.prototype,"name",2),l([m.property()],exports.SchmancyArea.prototype,"default",2),exports.SchmancyArea=l([m.customElement("schmancy-area")],exports.SchmancyArea),exports.FINDING_MORTIES=y,exports.HERE_RICKY=g,exports.HISTORY_STRATEGY=p,exports.area=o,exports.routerHistory=d;
8
- //# sourceMappingURL=area.component-CqKoQRDp.cjs.map
7
+ `){getComponentFromPathname(a,e){return r.of(a).pipe(r.map(t=>t.split("/").pop()??""),r.map(t=>{try{return JSON.parse(decodeURIComponent(t))}catch{return{}}}),r.map(t=>t[this.name]),r.map(t=>!t&&this.default?{component:this.default,state:void 0}:t),r.filter(t=>w.libExports.isPresent(t)),r.map(t=>({area:this.name,component:t.component??this.default,state:t.state,historyStrategy:e})),r.map(t=>t),r.catchError(()=>this.default?r.of({area:this.name,component:this.default,historyStrategy:e}):r.EMPTY))}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,p.silent)),r.map(a=>a),r.take(1)),o.request.pipe(r.filter(({area:a})=>a===this.name)),r.fromEvent(window,"popstate").pipe(r.map(a=>a.target.location.pathname),r.switchMap(a=>this.getComponentFromPathname(a,p.silent)),r.map(a=>a))).pipe(r.filter(a=>!!a.component),r.takeUntil(this.disconnecting),r.distinctUntilChanged((a,e)=>{let t,n;if(typeof a.component=="function"||(typeof a.component=="string"&&(t=a.component),typeof e.component=="function"))return!1;typeof e.component=="string"&&(n=e.component);const s=(n==null?void 0:n.replaceAll("-","").toLowerCase())===(t==null?void 0:t.replaceAll("-","").toLowerCase()),i=JSON.stringify(a.params||{})===JSON.stringify(e.params||{});return s&&i})).pipe(r.switchMap(a=>{const e=a.component;return e instanceof Promise?r.from(e).pipe(r.map(t=>{var n;return{component:((n=t.exports)==null?void 0:n.default)||t.default,route:a}}),r.catchError(()=>r.EMPTY)):r.of({component:e,route:a})}),r.map(({component:a,route:e})=>{let t;return t=typeof a=="string"?document.createElement(a):a instanceof HTMLElement?a:typeof a=="function"?new a:a,e.params&&Object.entries(e.params).forEach(([n,s])=>{t[n]=s}),e.state&&(t.state=e.state),{component:t,route:e}}),r.map(({component:a,route:e})=>{var s,i;const t=(s=this.shadowRoot)==null?void 0:s.children[0],n=!!t;return t==null||t.remove(),a.classList.add("opacity-0"),(i=this.shadowRoot)==null||i.append(a),a.animate([{opacity:0},{opacity:1}],{duration:n?150:100,easing:"cubic-bezier(0.25, 0.8, 0.25, 1)",fill:"forwards"}),{component:a,route:e}}),r.tap(({component:a,route:e})=>{e.historyStrategy===void 0||e.historyStrategy==="push"?history.pushState(e.state,"",this.newPath(a.tagName,e)):e.historyStrategy&&["replace","pop"].includes(e.historyStrategy)&&history.replaceState(e.state,"",this.newPath(a.tagName,e)),o.current.set(this.name,{component:a.tagName,state:e.state||{},area:this.name,params:e.params||{}}),o.$current.next(o.current)}),r.takeUntil(this.disconnecting)).subscribe()}newPath(a,e){const t=location.pathname.split("/").pop();let n={};try{n=t?JSON.parse(decodeURIComponent(t)):{}}catch{n={}}e.state=e.state??{};const s=e.clearQueryParams?this.queryParamClear(e.clearQueryParams):document.location.search;return encodeURIComponent(JSON.stringify({...n,[this.name]:{component:a.toLowerCase(),state:e.state,params:e.params}})).concat(`${s}`)}queryParamClear(a){if(!a)return"";const e=new URLSearchParams(location.search);return a===!0?"":(a.forEach(t=>e.delete(t)),e.toString()===""?"":`?${e.toString()}`)}checkForTeleportationRequests(){return r.fromEvent(window,"FLIP_REQUEST").pipe(r.map(a=>a.detail),r.bufferTime(0),r.tap(()=>{this.dispatchEvent(new CustomEvent("FLIP_STARTED"))}),r.takeUntil(this.disconnecting),r.timeout(0),r.catchError(()=>r.of(null)))}disconnectedCallback(){super.disconnectedCallback(),this.disconnecting.next(!0),this.disconnecting.complete()}render(){return f.html` <slot> </slot> `}},l([m.property()],exports.SchmancyArea.prototype,"name",2),l([m.property()],exports.SchmancyArea.prototype,"default",2),exports.SchmancyArea=l([m.customElement("schmancy-area")],exports.SchmancyArea),exports.FINDING_MORTIES=y,exports.HERE_RICKY=g,exports.HISTORY_STRATEGY=p,exports.area=o,exports.routerHistory=d;
8
+ //# sourceMappingURL=area.component-VivYGPFY.cjs.map