@mhmo91/schmancy 0.2.193 → 0.2.195

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 (354) hide show
  1. package/ai/area.md +205 -0
  2. package/ai/autocomplete.md +135 -0
  3. package/ai/avatar.md +178 -0
  4. package/ai/badge.md +100 -0
  5. package/ai/busy.md +195 -0
  6. package/ai/button.md +112 -0
  7. package/ai/card.md +155 -0
  8. package/ai/checkbox.md +108 -0
  9. package/ai/chips.md +180 -0
  10. package/ai/component-relationships.md +93 -0
  11. package/ai/content-drawer.md +190 -0
  12. package/ai/dialog.md +119 -0
  13. package/ai/dropdown.md +238 -0
  14. package/ai/form.md +148 -0
  15. package/ai/icons.md +147 -0
  16. package/ai/index.md +72 -0
  17. package/ai/input.md +167 -0
  18. package/ai/layout.md +166 -0
  19. package/ai/list.md +145 -0
  20. package/ai/menu.md +217 -0
  21. package/ai/notification.md +93 -0
  22. package/ai/radio-group.md +176 -0
  23. package/ai/select.md +174 -0
  24. package/ai/sheet.md +122 -0
  25. package/ai/store.md +235 -0
  26. package/ai/surface.md +221 -0
  27. package/ai/table.md +334 -0
  28. package/ai/tabs.md +71 -0
  29. package/ai/template.md +144 -0
  30. package/ai/textarea.md +147 -0
  31. package/ai/tooltip.md +149 -0
  32. package/ai/tree.md +279 -0
  33. package/ai/typography.md +170 -0
  34. package/dist/_headers +2 -0
  35. package/dist/ai/area.md +205 -0
  36. package/dist/ai/autocomplete.md +135 -0
  37. package/dist/ai/avatar.md +178 -0
  38. package/dist/ai/badge.md +100 -0
  39. package/dist/ai/busy.md +195 -0
  40. package/dist/ai/button.md +112 -0
  41. package/dist/ai/card.md +155 -0
  42. package/dist/ai/checkbox.md +108 -0
  43. package/dist/ai/chips.md +180 -0
  44. package/dist/ai/component-relationships.md +93 -0
  45. package/dist/ai/content-drawer.md +190 -0
  46. package/dist/ai/dialog.md +119 -0
  47. package/dist/ai/dropdown.md +238 -0
  48. package/dist/ai/form.md +148 -0
  49. package/dist/ai/icons.md +147 -0
  50. package/dist/ai/index.md +72 -0
  51. package/dist/ai/input.md +167 -0
  52. package/dist/ai/layout.md +166 -0
  53. package/dist/ai/list.md +145 -0
  54. package/dist/ai/menu.md +217 -0
  55. package/dist/ai/notification.md +93 -0
  56. package/dist/ai/radio-group.md +176 -0
  57. package/dist/ai/select.md +174 -0
  58. package/dist/ai/sheet.md +122 -0
  59. package/dist/ai/store.md +235 -0
  60. package/dist/ai/surface.md +221 -0
  61. package/dist/ai/table.md +334 -0
  62. package/dist/ai/tabs.md +71 -0
  63. package/dist/ai/template.md +144 -0
  64. package/dist/ai/textarea.md +147 -0
  65. package/dist/ai/tooltip.md +149 -0
  66. package/dist/ai/tree.md +279 -0
  67. package/dist/ai/typography.md +170 -0
  68. package/dist/{animated-text-9AM64DHd.cjs → animated-text-Bu9wh3wv.cjs} +2 -2
  69. package/dist/{animated-text-9AM64DHd.cjs.map → animated-text-Bu9wh3wv.cjs.map} +1 -1
  70. package/dist/{animated-text-CVStWn5N.js → animated-text-Ci7M0QTx.js} +3 -3
  71. package/dist/{animated-text-CVStWn5N.js.map → animated-text-Ci7M0QTx.js.map} +1 -1
  72. package/dist/animated-text.cjs +1 -1
  73. package/dist/animated-text.js +1 -1
  74. package/dist/area.cjs +1 -1
  75. package/dist/area.component-Cg9dqZJ5.cjs +8 -0
  76. package/dist/area.component-Cg9dqZJ5.cjs.map +1 -0
  77. package/dist/area.component-eJJ_wryh.js +191 -0
  78. package/dist/area.component-eJJ_wryh.js.map +1 -0
  79. package/dist/area.js +21 -6
  80. package/dist/area.js.map +1 -1
  81. package/dist/{autocomplete-DBXvIJgc.cjs → autocomplete-BH7nQbid.cjs} +2 -2
  82. package/dist/{autocomplete-DBXvIJgc.cjs.map → autocomplete-BH7nQbid.cjs.map} +1 -1
  83. package/dist/{autocomplete-ih92pPkb.js → autocomplete-D9n1MeKT.js} +3 -3
  84. package/dist/{autocomplete-ih92pPkb.js.map → autocomplete-D9n1MeKT.js.map} +1 -1
  85. package/dist/autocomplete.cjs +1 -1
  86. package/dist/autocomplete.js +1 -1
  87. package/dist/{avatar-WAIlaNJg.js → avatar-B4lSs4z5.js} +183 -145
  88. package/dist/avatar-B4lSs4z5.js.map +1 -0
  89. package/dist/{avatar-s-2jSsaH.cjs → avatar-Bg-rdjAe.cjs} +62 -24
  90. package/dist/avatar-Bg-rdjAe.cjs.map +1 -0
  91. package/dist/badge.cjs +1 -1
  92. package/dist/badge.js +1 -1
  93. package/dist/busy.cjs +1 -1
  94. package/dist/busy.js +1 -1
  95. package/dist/button.cjs +1 -1
  96. package/dist/button.js +1 -1
  97. package/dist/card.cjs +1 -1
  98. package/dist/card.js +1 -1
  99. package/dist/{checkbox-DtnX5sT6.cjs → checkbox-CgL23smr.cjs} +10 -10
  100. package/dist/{checkbox-DtnX5sT6.cjs.map → checkbox-CgL23smr.cjs.map} +1 -1
  101. package/dist/{checkbox-Jxxbjxp0.js → checkbox-y37-tGrk.js} +72 -65
  102. package/dist/{checkbox-Jxxbjxp0.js.map → checkbox-y37-tGrk.js.map} +1 -1
  103. package/dist/checkbox.cjs +1 -1
  104. package/dist/checkbox.js +1 -1
  105. package/dist/{chips-CVDnpVUM.cjs → chips-CKST7ug-.cjs} +2 -2
  106. package/dist/{chips-CVDnpVUM.cjs.map → chips-CKST7ug-.cjs.map} +1 -1
  107. package/dist/{chips-lP7ohQep.js → chips-Ndwt1V4b.js} +3 -3
  108. package/dist/{chips-lP7ohQep.js.map → chips-Ndwt1V4b.js.map} +1 -1
  109. package/dist/chips.cjs +1 -1
  110. package/dist/chips.js +1 -1
  111. package/dist/circular-progress-BDmc1zlm.cjs +9 -0
  112. package/dist/circular-progress-BDmc1zlm.cjs.map +1 -0
  113. package/dist/circular-progress-vokDGjmG.js +35 -0
  114. package/dist/circular-progress-vokDGjmG.js.map +1 -0
  115. package/dist/circular-progress.cjs +2 -0
  116. package/dist/circular-progress.cjs.map +1 -0
  117. package/dist/circular-progress.js +5 -0
  118. package/dist/circular-progress.js.map +1 -0
  119. package/dist/components.cjs +1 -1
  120. package/dist/components.js +1 -1
  121. package/dist/content-drawer.cjs +1 -1
  122. package/dist/content-drawer.js +1 -1
  123. package/dist/{date-range-Ca9WLI4Q.js → date-range-CpDVPn_v.js} +3 -3
  124. package/dist/{date-range-Ca9WLI4Q.js.map → date-range-CpDVPn_v.js.map} +1 -1
  125. package/dist/{date-range-DbPA5Y-t.cjs → date-range-DfZz3ifP.cjs} +2 -2
  126. package/dist/{date-range-DbPA5Y-t.cjs.map → date-range-DfZz3ifP.cjs.map} +1 -1
  127. package/dist/date-range.cjs +1 -1
  128. package/dist/date-range.js +1 -1
  129. package/dist/{delay-BgNgQV2G.cjs → delay-ASLyLkQL.cjs} +2 -2
  130. package/dist/{delay-BgNgQV2G.cjs.map → delay-ASLyLkQL.cjs.map} +1 -1
  131. package/dist/{delay-5cCl7ji3.js → delay-CG5SRrzF.js} +2 -2
  132. package/dist/{delay-5cCl7ji3.js.map → delay-CG5SRrzF.js.map} +1 -1
  133. package/dist/delay.cjs +1 -1
  134. package/dist/delay.js +1 -1
  135. package/dist/{dialog-content-9pumpyLD.js → dialog-content-BoPviBAt.js} +86 -82
  136. package/dist/dialog-content-BoPviBAt.js.map +1 -0
  137. package/dist/{dialog-content-qj1E8aye.cjs → dialog-content-D88EcY6L.cjs} +8 -8
  138. package/dist/dialog-content-D88EcY6L.cjs.map +1 -0
  139. package/dist/dialog.cjs +1 -1
  140. package/dist/dialog.js +1 -1
  141. package/dist/{divider-CHckHGEQ.cjs → divider-C38JDYss.cjs} +2 -2
  142. package/dist/{divider-CHckHGEQ.cjs.map → divider-C38JDYss.cjs.map} +1 -1
  143. package/dist/{divider-r8-9eNnl.js → divider-N7GWgK6o.js} +3 -3
  144. package/dist/{divider-r8-9eNnl.js.map → divider-N7GWgK6o.js.map} +1 -1
  145. package/dist/divider.cjs +1 -1
  146. package/dist/divider.js +1 -1
  147. package/dist/{dropdown-content-D-TddflQ.js → dropdown-content-DmO_yIVb.js} +3 -3
  148. package/dist/{dropdown-content-D-TddflQ.js.map → dropdown-content-DmO_yIVb.js.map} +1 -1
  149. package/dist/{dropdown-content-B41MDDRG.cjs → dropdown-content-rH8awIRA.cjs} +2 -2
  150. package/dist/{dropdown-content-B41MDDRG.cjs.map → dropdown-content-rH8awIRA.cjs.map} +1 -1
  151. package/dist/dropdown.cjs +1 -1
  152. package/dist/dropdown.js +1 -1
  153. package/dist/extra.cjs +1 -1
  154. package/dist/extra.js +1 -1
  155. package/dist/{flex-Bf0zNqji.js → flex-CXYfL6bE.js} +2 -2
  156. package/dist/{flex-Bf0zNqji.js.map → flex-CXYfL6bE.js.map} +1 -1
  157. package/dist/{flex-CFv-Zb76.cjs → flex-wYuewqrr.cjs} +2 -2
  158. package/dist/{flex-CFv-Zb76.cjs.map → flex-wYuewqrr.cjs.map} +1 -1
  159. package/dist/{form-BN75s0PI.cjs → form-CNWWdhT_.cjs} +2 -2
  160. package/dist/{form-BN75s0PI.cjs.map → form-CNWWdhT_.cjs.map} +1 -1
  161. package/dist/{form-uYcr1RLJ.js → form-q3JZjWez.js} +2 -2
  162. package/dist/{form-uYcr1RLJ.js.map → form-q3JZjWez.js.map} +1 -1
  163. package/dist/form.cjs +1 -1
  164. package/dist/form.js +1 -1
  165. package/dist/{icon-Cu-imayV.cjs → icon-QnmfHtfT.cjs} +2 -2
  166. package/dist/{icon-Cu-imayV.cjs.map → icon-QnmfHtfT.cjs.map} +1 -1
  167. package/dist/{icon-button-1tZaicyb.js → icon-button-DOTB_28y.js} +3 -3
  168. package/dist/{icon-button-1tZaicyb.js.map → icon-button-DOTB_28y.js.map} +1 -1
  169. package/dist/{icon-button-D0BbHnDL.cjs → icon-button-oAOX71_s.cjs} +2 -2
  170. package/dist/{icon-button-D0BbHnDL.cjs.map → icon-button-oAOX71_s.cjs.map} +1 -1
  171. package/dist/{icon-BR-jE0Y2.js → icon-pLQWXzo8.js} +3 -3
  172. package/dist/{icon-BR-jE0Y2.js.map → icon-pLQWXzo8.js.map} +1 -1
  173. package/dist/icons.cjs +1 -1
  174. package/dist/icons.js +1 -1
  175. package/dist/index.cjs +1 -1
  176. package/dist/index.js +190 -173
  177. package/dist/index.js.map +1 -1
  178. package/dist/{input-B2oV6Hck.cjs → input-CCniOtAr.cjs} +2 -2
  179. package/dist/{input-B2oV6Hck.cjs.map → input-CCniOtAr.cjs.map} +1 -1
  180. package/dist/{input-kiz5O3dY.js → input-DeJitVSV.js} +2 -2
  181. package/dist/{input-kiz5O3dY.js.map → input-DeJitVSV.js.map} +1 -1
  182. package/dist/input.cjs +1 -1
  183. package/dist/input.js +1 -1
  184. package/dist/layout.cjs +1 -1
  185. package/dist/layout.js +1 -1
  186. package/dist/{list-CMHoPfX9.cjs → list-Ad-24MHW.cjs} +2 -2
  187. package/dist/{list-CMHoPfX9.cjs.map → list-Ad-24MHW.cjs.map} +1 -1
  188. package/dist/{list-wT4DLXCh.js → list-Ca79GGNH.js} +2 -2
  189. package/dist/{list-wT4DLXCh.js.map → list-Ca79GGNH.js.map} +1 -1
  190. package/dist/list.cjs +1 -1
  191. package/dist/list.js +1 -1
  192. package/dist/{litElement.mixin-B9Qdq5S_.js → litElement.mixin-BoUiP2tU.js} +2 -2
  193. package/dist/{litElement.mixin-B9Qdq5S_.js.map → litElement.mixin-BoUiP2tU.js.map} +1 -1
  194. package/dist/{litElement.mixin-CHvyxfxf.cjs → litElement.mixin-qOTYSaNG.cjs} +2 -2
  195. package/dist/{litElement.mixin-CHvyxfxf.cjs.map → litElement.mixin-qOTYSaNG.cjs.map} +1 -1
  196. package/dist/{menu-BcSplMNh.cjs → menu-6Wum4ysc.cjs} +2 -2
  197. package/dist/{menu-BcSplMNh.cjs.map → menu-6Wum4ysc.cjs.map} +1 -1
  198. package/dist/{menu-Dl1QU86K.js → menu-Dd_X9oET.js} +3 -3
  199. package/dist/{menu-Dl1QU86K.js.map → menu-Dd_X9oET.js.map} +1 -1
  200. package/dist/menu.cjs +1 -1
  201. package/dist/menu.js +1 -1
  202. package/dist/nav-drawer.cjs +1 -1
  203. package/dist/nav-drawer.js +1 -1
  204. package/dist/{notification-service-CC698xHg.js → notification-service-C-9IqObm.js} +3 -3
  205. package/dist/{notification-service-CC698xHg.js.map → notification-service-C-9IqObm.js.map} +1 -1
  206. package/dist/{notification-service-BV9ybQBu.cjs → notification-service-CrNyAbmv.cjs} +2 -2
  207. package/dist/{notification-service-BV9ybQBu.cjs.map → notification-service-CrNyAbmv.cjs.map} +1 -1
  208. package/dist/notification.cjs +1 -1
  209. package/dist/notification.js +1 -1
  210. package/dist/{option-CkLBgH71.cjs → option-BbBbwrJq.cjs} +2 -2
  211. package/dist/{option-CkLBgH71.cjs.map → option-BbBbwrJq.cjs.map} +1 -1
  212. package/dist/{option-DDxxXwwc.js → option-DVSXUJ96.js} +2 -2
  213. package/dist/{option-DDxxXwwc.js.map → option-DVSXUJ96.js.map} +1 -1
  214. package/dist/option.cjs +1 -1
  215. package/dist/option.js +1 -1
  216. package/dist/{payment-card-form-DDTO5_AA.js → payment-card-form-CTjgVoJK.js} +3 -3
  217. package/dist/{payment-card-form-DDTO5_AA.js.map → payment-card-form-CTjgVoJK.js.map} +1 -1
  218. package/dist/{payment-card-form-UWbAYNPR.cjs → payment-card-form-R5wNWHAv.cjs} +2 -2
  219. package/dist/{payment-card-form-UWbAYNPR.cjs.map → payment-card-form-R5wNWHAv.cjs.map} +1 -1
  220. package/dist/{radio-button-wWoxPDfq.js → radio-button-BDAW1Euc.js} +2 -2
  221. package/dist/{radio-button-wWoxPDfq.js.map → radio-button-BDAW1Euc.js.map} +1 -1
  222. package/dist/{radio-button-BykiVxTD.cjs → radio-button-Cg1JobXT.cjs} +2 -2
  223. package/dist/{radio-button-BykiVxTD.cjs.map → radio-button-Cg1JobXT.cjs.map} +1 -1
  224. package/dist/radio-group.cjs +1 -1
  225. package/dist/radio-group.js +1 -1
  226. package/dist/{schmancy-steps-container-ByO98z7L.js → schmancy-steps-container--d7VK-QR.js} +2 -2
  227. package/dist/{schmancy-steps-container-ByO98z7L.js.map → schmancy-steps-container--d7VK-QR.js.map} +1 -1
  228. package/dist/{schmancy-steps-container-B1mIGa9M.cjs → schmancy-steps-container-BAPIxl4s.cjs} +2 -2
  229. package/dist/{schmancy-steps-container-B1mIGa9M.cjs.map → schmancy-steps-container-BAPIxl4s.cjs.map} +1 -1
  230. package/dist/{select-DE57Nios.cjs → select-CnjO7DLl.cjs} +2 -2
  231. package/dist/{select-DE57Nios.cjs.map → select-CnjO7DLl.cjs.map} +1 -1
  232. package/dist/{select-BIOhocL7.js → select-DfbOOZtm.js} +3 -3
  233. package/dist/{select-BIOhocL7.js.map → select-DfbOOZtm.js.map} +1 -1
  234. package/dist/select.cjs +1 -1
  235. package/dist/select.js +1 -1
  236. package/dist/{sheet-Dh4MLVsU.js → sheet-DhbKM9gJ.js} +3 -3
  237. package/dist/{sheet-Dh4MLVsU.js.map → sheet-DhbKM9gJ.js.map} +1 -1
  238. package/dist/{sheet-fZYAWGsm.cjs → sheet-Ds0Fp0lM.cjs} +2 -2
  239. package/dist/{sheet-fZYAWGsm.cjs.map → sheet-Ds0Fp0lM.cjs.map} +1 -1
  240. package/dist/sheet.cjs +1 -1
  241. package/dist/sheet.js +1 -1
  242. package/dist/{slider-DVlJoDgU.js → slider-Ba3AEh2W.js} +3 -3
  243. package/dist/{slider-DVlJoDgU.js.map → slider-Ba3AEh2W.js.map} +1 -1
  244. package/dist/{slider-CejrdmPF.cjs → slider-CSOzhUhA.cjs} +2 -2
  245. package/dist/{slider-CejrdmPF.cjs.map → slider-CSOzhUhA.cjs.map} +1 -1
  246. package/dist/slider.cjs +1 -1
  247. package/dist/slider.js +1 -1
  248. package/dist/{spinner-DbTnai_Q.js → spinner-BgeQqlFU.js} +3 -3
  249. package/dist/{spinner-DbTnai_Q.js.map → spinner-BgeQqlFU.js.map} +1 -1
  250. package/dist/{spinner-DxVJ7QJZ.cjs → spinner-llMfjiIc.cjs} +2 -2
  251. package/dist/{spinner-DxVJ7QJZ.cjs.map → spinner-llMfjiIc.cjs.map} +1 -1
  252. package/dist/steps.cjs +1 -1
  253. package/dist/steps.js +1 -1
  254. package/dist/surface-CT2g8fDM.cjs +92 -0
  255. package/dist/surface-CT2g8fDM.cjs.map +1 -0
  256. package/dist/surface-UcsAmLj5.js +113 -0
  257. package/dist/surface-UcsAmLj5.js.map +1 -0
  258. package/dist/surface.cjs +1 -1
  259. package/dist/surface.js +1 -1
  260. package/dist/{table-CBhyHINV.cjs → table-CSBhQ-pa.cjs} +4 -4
  261. package/dist/{table-CBhyHINV.cjs.map → table-CSBhQ-pa.cjs.map} +1 -1
  262. package/dist/{table-CqUv1TOC.js → table-DuUlrDCu.js} +72 -68
  263. package/dist/{table-CqUv1TOC.js.map → table-DuUlrDCu.js.map} +1 -1
  264. package/dist/table.cjs +1 -1
  265. package/dist/table.js +1 -1
  266. package/dist/{tabs-compatibility-DUo2f_sV.js → tabs-compatibility-BVFHArgV.js} +2 -2
  267. package/dist/{tabs-compatibility-DUo2f_sV.js.map → tabs-compatibility-BVFHArgV.js.map} +1 -1
  268. package/dist/{tabs-compatibility-DPD6jfGF.cjs → tabs-compatibility-Bt3coGzN.cjs} +2 -2
  269. package/dist/{tabs-compatibility-DPD6jfGF.cjs.map → tabs-compatibility-Bt3coGzN.cjs.map} +1 -1
  270. package/dist/tabs.cjs +1 -1
  271. package/dist/tabs.js +1 -1
  272. package/dist/tailwind.mixin-C71e_LC1.js +43 -0
  273. package/dist/{tailwind.mixin-Di7KWye7.js.map → tailwind.mixin-C71e_LC1.js.map} +1 -1
  274. package/dist/tailwind.mixin-CFCJhe5p.cjs +2 -0
  275. package/dist/{tailwind.mixin-Dm5QDZav.cjs.map → tailwind.mixin-CFCJhe5p.cjs.map} +1 -1
  276. package/dist/teleport.cjs +1 -1
  277. package/dist/teleport.js +1 -1
  278. package/dist/{textarea-Dbz18REy.js → textarea-B8eIpYa-.js} +2 -2
  279. package/dist/{textarea-Dbz18REy.js.map → textarea-B8eIpYa-.js.map} +1 -1
  280. package/dist/{textarea-CesFdBkm.cjs → textarea-CtCk_1Fq.cjs} +2 -2
  281. package/dist/{textarea-CesFdBkm.cjs.map → textarea-CtCk_1Fq.cjs.map} +1 -1
  282. package/dist/textarea.cjs +1 -1
  283. package/dist/textarea.js +1 -1
  284. package/dist/{theme-button-Bt2OV4iu.cjs → theme-button-DQe5uOxU.cjs} +2 -2
  285. package/dist/{theme-button-Bt2OV4iu.cjs.map → theme-button-DQe5uOxU.cjs.map} +1 -1
  286. package/dist/{theme-button-lqbT2_LL.js → theme-button-TEzhKUy6.js} +2 -2
  287. package/dist/{theme-button-lqbT2_LL.js.map → theme-button-TEzhKUy6.js.map} +1 -1
  288. package/dist/theme-button.cjs +1 -1
  289. package/dist/theme-button.js +1 -1
  290. package/dist/theme.cjs +1 -1
  291. package/dist/{theme.component-BlBaN7d6.cjs → theme.component-Be6M74nN.cjs} +3 -3
  292. package/dist/{theme.component-BlBaN7d6.cjs.map → theme.component-Be6M74nN.cjs.map} +1 -1
  293. package/dist/{theme.component-xarFSe8p.js → theme.component-DiTpToTC.js} +2 -2
  294. package/dist/{theme.component-xarFSe8p.js.map → theme.component-DiTpToTC.js.map} +1 -1
  295. package/dist/theme.js +1 -1
  296. package/dist/{timezone-VUMRmZaJ.cjs → timezone-C1aR24i0.cjs} +2 -2
  297. package/dist/{timezone-VUMRmZaJ.cjs.map → timezone-C1aR24i0.cjs.map} +1 -1
  298. package/dist/{timezone-DwT_pQrj.js → timezone-CBSuTrU2.js} +3 -3
  299. package/dist/{timezone-DwT_pQrj.js.map → timezone-CBSuTrU2.js.map} +1 -1
  300. package/dist/{tooltip-BKOHVCMK.js → tooltip-DYQW9R3I.js} +2 -2
  301. package/dist/{tooltip-BKOHVCMK.js.map → tooltip-DYQW9R3I.js.map} +1 -1
  302. package/dist/{tooltip-Cvoroe7w.cjs → tooltip-DYcXTtFy.cjs} +2 -2
  303. package/dist/{tooltip-Cvoroe7w.cjs.map → tooltip-DYcXTtFy.cjs.map} +1 -1
  304. package/dist/tooltip.cjs +1 -1
  305. package/dist/tooltip.js +1 -1
  306. package/dist/{tree-Cyp2AZ8g.cjs → tree-D-rTjnPs.cjs} +2 -2
  307. package/dist/{tree-Cyp2AZ8g.cjs.map → tree-D-rTjnPs.cjs.map} +1 -1
  308. package/dist/{tree-_FJnHVmP.js → tree-nsSIkdNT.js} +2 -2
  309. package/dist/{tree-_FJnHVmP.js.map → tree-nsSIkdNT.js.map} +1 -1
  310. package/dist/tree.cjs +1 -1
  311. package/dist/tree.js +1 -1
  312. package/dist/{typewriter-BIm2tOe4.cjs → typewriter-Cj0R-RDa.cjs} +2 -2
  313. package/dist/{typewriter-BIm2tOe4.cjs.map → typewriter-Cj0R-RDa.cjs.map} +1 -1
  314. package/dist/{typewriter-DWfXPBni.js → typewriter-DrYb6_FB.js} +22 -22
  315. package/dist/{typewriter-DWfXPBni.js.map → typewriter-DrYb6_FB.js.map} +1 -1
  316. package/dist/typewriter.cjs +1 -1
  317. package/dist/typewriter.js +1 -1
  318. package/dist/{typography-OpLt6LNd.cjs → typography-B0Kj2XoC.cjs} +2 -2
  319. package/dist/{typography-OpLt6LNd.cjs.map → typography-B0Kj2XoC.cjs.map} +1 -1
  320. package/dist/{typography-DaKLzjFB.js → typography-DMj2H_lZ.js} +2 -2
  321. package/dist/{typography-DaKLzjFB.js.map → typography-DMj2H_lZ.js.map} +1 -1
  322. package/dist/typography.cjs +1 -1
  323. package/dist/typography.js +1 -1
  324. package/dist/utils-BqFGvnN9.cjs +2 -0
  325. package/dist/utils-BqFGvnN9.cjs.map +1 -0
  326. package/dist/utils-jduntaQU.js +128 -0
  327. package/dist/utils-jduntaQU.js.map +1 -0
  328. package/package.json +14 -14
  329. package/types/src/area/area.component.d.ts +1 -1
  330. package/types/src/area/area.service.d.ts +72 -5
  331. package/types/src/area/index.d.ts +1 -0
  332. package/types/src/area/router.types.d.ts +41 -2
  333. package/types/src/area/utils.d.ts +91 -1
  334. package/types/src/checkbox/checkbox.d.ts +9 -0
  335. package/types/src/circular-progress/circular-progress.d.ts +15 -0
  336. package/types/src/circular-progress/index.d.ts +1 -0
  337. package/types/src/dialog/dailog.d.ts +8 -0
  338. package/types/src/dialog/dialog-service.d.ts +1 -0
  339. package/types/src/index.d.ts +1 -0
  340. package/types/src/table/table.d.ts +1 -0
  341. package/dist/area.component-CZELEuMj.js +0 -107
  342. package/dist/area.component-CZELEuMj.js.map +0 -1
  343. package/dist/area.component-grRkXEse.cjs +0 -8
  344. package/dist/area.component-grRkXEse.cjs.map +0 -1
  345. package/dist/avatar-WAIlaNJg.js.map +0 -1
  346. package/dist/avatar-s-2jSsaH.cjs.map +0 -1
  347. package/dist/dialog-content-9pumpyLD.js.map +0 -1
  348. package/dist/dialog-content-qj1E8aye.cjs.map +0 -1
  349. package/dist/surface-BTuzKmT2.cjs +0 -20
  350. package/dist/surface-BTuzKmT2.cjs.map +0 -1
  351. package/dist/surface-DXx1bJN4.js +0 -43
  352. package/dist/surface-DXx1bJN4.js.map +0 -1
  353. package/dist/tailwind.mixin-Di7KWye7.js +0 -43
  354. package/dist/tailwind.mixin-Dm5QDZav.cjs +0 -2
@@ -1,107 +0,0 @@
1
- import { Subject as b, ReplaySubject as S, zip as I, fromEvent as g, of as i, map as o, bufferTime as R, tap as h, timeout as v, filter as u, catchError as E, EMPTY as O, merge as U, switchMap as d, take as N, takeUntil as f, distinctUntilChanged as C, from as T } from "rxjs";
2
- import "lit/directives/class-map.js";
3
- import "lit/directives/style-map.js";
4
- import { $ as L } from "./litElement.mixin-B9Qdq5S_.js";
5
- import "./tailwind.mixin-Di7KWye7.js";
6
- import { css as x, html as F } from "lit";
7
- import { property as P, customElement as J } from "lit/decorators.js";
8
- import { l as M } from "./index-CuY8m6ta.js";
9
- const B = new b(), k = "FINDING_MORTIES", q = "HERE_RICKY";
10
- class p {
11
- constructor() {
12
- this.prettyURL = !1, this.mode = "HISTORY", this.request = new S(1), this.current = /* @__PURE__ */ new Map(), this.$current = new S(1), this.enableHistoryMode = !0, this.findingMortiesEvent = new CustomEvent(k), this.$current.next(this.current);
13
- }
14
- find() {
15
- return I([g(window, q).pipe(o((e) => e.detail), R(0), h(console.log)), i(1).pipe(h(() => window.dispatchEvent(this.findingMortiesEvent)))]).pipe(o(([e]) => e), v(1));
16
- }
17
- push(e) {
18
- this.request.next(e);
19
- }
20
- pop(e) {
21
- const n = JSON.parse(JSON.stringify(c.state));
22
- delete n[e], history.replaceState(null, "", encodeURIComponent(JSON.stringify(n)));
23
- }
24
- static getInstance() {
25
- return p.instance || (p.instance = new p()), p.instance;
26
- }
27
- get state() {
28
- const e = location.pathname.split("/").pop();
29
- let n = {};
30
- try {
31
- n = e ? JSON.parse(decodeURIComponent(e)) : {};
32
- } catch {
33
- n = {};
34
- }
35
- return n;
36
- }
37
- }
38
- const c = p.getInstance();
39
- var w = ((t) => (t.push = "push", t.replace = "replace", t.pop = "pop", t.silent = "silent", t))(w || {}), $ = Object.defineProperty, j = Object.getOwnPropertyDescriptor, y = (t, e, n, a) => {
40
- for (var r, s = a > 1 ? void 0 : a ? j(e, n) : e, l = t.length - 1; l >= 0; l--) (r = t[l]) && (s = (a ? r(e, n, s) : r(s)) || s);
41
- return a && s && $(e, n, s), s;
42
- };
43
- let m = class extends L(x`
44
- :host {
45
- position: relative;
46
- display: block;
47
- inset: 0;
48
- }
49
- `) {
50
- getComponentFromPathname(t, e) {
51
- return i(t).pipe(o((n) => n.split("/").pop() ?? ""), o((n) => decodeURIComponent(n)), o((n) => JSON.parse(n)), o((n) => n[this.name]), o((n) => !n && this.default ? { component: this.default, state: void 0 } : n), u((n) => M.isPresent(n)), o((n) => ({ area: this.name, component: n.component ?? this.default, state: n.state, historyStrategy: e })), o((n) => n), E(() => this.default ? i({ area: this.name, component: this.default, historyStrategy: e }) : O));
52
- }
53
- firstUpdated() {
54
- if (!this.name) throw new Error("Area name or default component not set");
55
- U(i(location.pathname).pipe(d((t) => this.getComponentFromPathname(t, w.silent)), o((t) => t), N(1)), c.request.pipe(u(({ area: t }) => t === this.name)), g(window, "popstate").pipe(o((t) => t.target.location.pathname), d((t) => this.getComponentFromPathname(t, w.silent)), o((t) => t))).pipe(u((t) => !!t.component), f(this.disconnecting), C((t, e) => {
56
- let n, a;
57
- return typeof t.component != "function" && (typeof t.component == "string" && (n = t.component), typeof e.component != "function" && (typeof e.component == "string" && (a = e.component), (a == null ? void 0 : a.replaceAll("-", "").toLowerCase()) === (n == null ? void 0 : n.replaceAll("-", "").toLowerCase())));
58
- })).pipe(d((t) => {
59
- const e = t.component;
60
- return e instanceof Promise ? T(e).pipe(o((n) => ({ component: n.exports.default, route: t }))) : i({ component: e, route: t });
61
- }), o(({ component: t, route: e }) => typeof t == "string" ? { component: document.createElement(t), route: e } : t instanceof HTMLElement ? { component: t, route: e } : typeof t == "function" ? { component: new t(), route: e } : void 0), C((t, e) => t.component.tagName === e.component.tagName), o(({ component: t, route: e }) => {
62
- var r, s;
63
- const n = (r = this.shadowRoot) == null ? void 0 : r.children[0], a = !!n;
64
- return n.remove(), t.classList.add("opacity-0"), (s = this.shadowRoot) == null || s.append(t), t.animate([{ opacity: 0 }, { opacity: 1 }], { duration: a ? 150 : 100, easing: "cubic-bezier(0.25, 0.8, 0.25, 1)", fill: "forwards" }), { component: t, route: e };
65
- }), h(({ component: t, route: e }) => {
66
- e.historyStrategy === void 0 || e.historyStrategy === "push" ? history.pushState(e.state, "", this.newPath(t.tagName, e)) : e.historyStrategy && ["replace", "pop"].includes(e.historyStrategy) && history.replaceState(e.state, "", this.newPath(t.tagName, e)), c.current.set(this.name, { component: t.tagName, state: e.state, area: this.name }), c.$current.next(c.current);
67
- }), f(this.disconnecting)).subscribe();
68
- }
69
- newPath(t, e) {
70
- const n = location.pathname.split("/").pop();
71
- let a = {};
72
- try {
73
- a = n ? JSON.parse(decodeURIComponent(n)) : {};
74
- } catch {
75
- a = {};
76
- }
77
- e.state = e.state ?? {};
78
- const r = e.clearQueryParams ? this.queryParamClear(e.clearQueryParams) : document.location.search;
79
- return encodeURIComponent(JSON.stringify({ ...a, [this.name]: { component: t.toLowerCase(), state: e.state } })).concat(`${r}`);
80
- }
81
- queryParamClear(t) {
82
- if (!t) return "";
83
- const e = new URLSearchParams(location.search);
84
- return t.forEach((n) => e.delete(n)), e.toString() === "" ? "" : `?${e.toString()}`;
85
- }
86
- checkForTeleportationRequests() {
87
- return g(window, "FLIP_REQUEST").pipe(o((t) => t.detail), R(0), h(() => {
88
- this.dispatchEvent(new CustomEvent("FLIP_STARTED"));
89
- }), f(this.disconnecting), v(0), E(() => i(null)));
90
- }
91
- disconnectedCallback() {
92
- super.disconnectedCallback(), this.disconnecting.next(!0);
93
- }
94
- render() {
95
- return F` <slot> </slot> `;
96
- }
97
- };
98
- y([P()], m.prototype, "name", 2), y([P()], m.prototype, "default", 2), m = y([J("schmancy-area")], m);
99
- export {
100
- k as F,
101
- q as H,
102
- m as S,
103
- c as a,
104
- w as b,
105
- B as r
106
- };
107
- //# sourceMappingURL=area.component-CZELEuMj.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"area.component-CZELEuMj.js","sources":["../src/area/area.service.ts","../src/area/router.types.ts","../src/area/area.component.ts"],"sourcesContent":["import { ReplaySubject, Subject, bufferTime, fromEvent, map, of, tap, timeout, zip } from 'rxjs'\nimport { SchmancyTeleportation } from '../teleport'\nimport { ActiveRoute, 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\nclass AreaService {\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\tpublic enableHistoryMode = true\n\tprivate findingMortiesEvent = new CustomEvent<FINDING_MORTIES_EVENT['detail']>(FINDING_MORTIES)\n\n\tconstructor() {\n\t\tthis.$current.next(this.current)\n\t}\n\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\ttap(console.log),\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)\n\t}\n\n\tpush(r: RouteAction) {\n\t\tthis.request.next(r)\n\t}\n\n\tpop(name: string) {\n\t\tconst newState = JSON.parse(JSON.stringify(area.state))\n\t\tdelete newState[name]\n\t\tconsole.log(area.state, newState)\n\t\thistory.replaceState(null, '', encodeURIComponent(JSON.stringify(newState)))\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\tget state() {\n\t\tconst pathname = location.pathname.split('/').pop()\n\t\tlet areaState = {}\n\t\ttry {\n\t\t\tareaState = pathname ? JSON.parse(decodeURIComponent(pathname)) : {}\n\t\t} catch {\n\t\t\tareaState = {}\n\t\t}\n\t\treturn areaState\n\t}\n}\n\nexport const area = AreaService.getInstance()\nexport default area\n","export type RouteAction = {\n\tcomponent: CustomElementConstructor | string | HTMLElement\n\tarea: string\n\tstate?: object\n\thistoryStrategy?: THistoryStrategy\n\tclearQueryParams?: string[] | null\n}\n\nexport type ActiveRoute = {\n\tcomponent: string\n\tarea: string\n\tstate?: object\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 | Promise<NodeModule> | 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 => decodeURIComponent(path)),\n\t\t\tmap(path => JSON.parse(path)),\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\t// TOOD: maybe enforce this to be unique\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\treturn bComponent?.replaceAll('-', '').toLowerCase() === aComponent?.replaceAll('-', '').toLowerCase()\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(map(x => ({ component: x.exports.default as CustomElementConstructor, route })))\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\tif (typeof component === 'string') {\n\t\t\t\t\t\t// Tag name\n\t\t\t\t\t\treturn { component: document.createElement(component), route }\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\treturn { component, route }\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\treturn { component: new component(), route }\n\t\t\t\t\t}\n\t\t\t\t}),\n\t\t\t\tdistinctUntilChanged((prev, curr) => prev.component.tagName === curr.component.tagName),\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})\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 },\n\t\t\t}),\n\t\t).concat(`${queryParams}`)\n\t}\n\n\tqueryParamClear(params?: string[]) {\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// remove query params\n\t\tparams.forEach(param => urlParams.delete(param))\n\t\t// update url\n\t\tif (urlParams.toString() === '') return ''\n\t\treturn `?${urlParams.toString()}`\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}\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}\n"],"names":["routerHistory","Subject","FINDING_MORTIES","HERE_RICKY","AreaService","constructor","this","prettyURL","mode","request","ReplaySubject","current","Map","$current","enableHistoryMode","findingMortiesEvent","CustomEvent","next","find","zip","fromEvent","window","pipe","map","e","detail","bufferTime","tap","console","log","of","dispatchEvent","component","timeout","r","name","newState","JSON","parse","stringify","area","state","history","replaceState","encodeURIComponent","instance","pathname","location","split","pop","areaState","decodeURIComponent","getInstance","HISTORY_STRATEGY","SchmancyArea","$LitElement","css","historyStrategy","path","routes","default","filter","x","isPresent","catchError","EMPTY","firstUpdated","Error","merge","switchMap","getComponentFromPathname","silent","route","take","target","takeUntil","disconnecting","distinctUntilChanged","a","b","aComponent","bComponent","replaceAll","toLowerCase","c","Promise","from","exports","document","createElement","HTMLElement","prev","curr","tagName","oldView","shadowRoot","children","oldViewExists","remove","classList","add","append","animate","opacity","duration","easing","fill","pushState","newPath","includes","set","subscribe","tag","oldPathname","oldAreaState","queryParams","clearQueryParams","queryParamClear","search","concat","params","urlParams","URLSearchParams","forEach","param","delete","toString","checkForTeleportationRequests","disconnectedCallback","super","html","__decorateClass","property","prototype","customElement"],"mappings":"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"}
@@ -1,8 +0,0 @@
1
- "use strict";const n=require("rxjs");require("lit/directives/class-map.js"),require("lit/directives/style-map.js");const f=require("./litElement.mixin-CHvyxfxf.cjs");require("./tailwind.mixin-Dm5QDZav.cjs");const u=require("lit"),h=require("lit/decorators.js"),g=require("./index-DyJ0oDpR.cjs"),S=new n.Subject,d="FINDING_MORTIES",y="HERE_RICKY";class p{constructor(){this.prettyURL=!1,this.mode="HISTORY",this.request=new n.ReplaySubject(1),this.current=new Map,this.$current=new n.ReplaySubject(1),this.enableHistoryMode=!0,this.findingMortiesEvent=new CustomEvent(d),this.$current.next(this.current)}find(){return n.zip([n.fromEvent(window,y).pipe(n.map(e=>e.detail),n.bufferTime(0),n.tap(console.log)),n.of(1).pipe(n.tap(()=>window.dispatchEvent(this.findingMortiesEvent)))]).pipe(n.map(([e])=>e),n.timeout(1))}push(e){this.request.next(e)}pop(e){const o=JSON.parse(JSON.stringify(s.state));delete o[e],history.replaceState(null,"",encodeURIComponent(JSON.stringify(o)))}static getInstance(){return p.instance||(p.instance=new p),p.instance}get state(){const e=location.pathname.split("/").pop();let o={};try{o=e?JSON.parse(decodeURIComponent(e)):{}}catch{o={}}return o}}const s=p.getInstance();var c=(t=>(t.push="push",t.replace="replace",t.pop="pop",t.silent="silent",t))(c||{}),w=Object.defineProperty,E=Object.getOwnPropertyDescriptor,l=(t,e,o,a)=>{for(var i,r=a>1?void 0:a?E(e,o):e,m=t.length-1;m>=0;m--)(i=t[m])&&(r=(a?i(e,o,r):i(r))||r);return a&&r&&w(e,o,r),r};exports.SchmancyArea=class extends f.$LitElement(u.css`
2
- :host {
3
- position: relative;
4
- display: block;
5
- inset: 0;
6
- }
7
- `){getComponentFromPathname(t,e){return n.of(t).pipe(n.map(o=>o.split("/").pop()??""),n.map(o=>decodeURIComponent(o)),n.map(o=>JSON.parse(o)),n.map(o=>o[this.name]),n.map(o=>!o&&this.default?{component:this.default,state:void 0}:o),n.filter(o=>g.libExports.isPresent(o)),n.map(o=>({area:this.name,component:o.component??this.default,state:o.state,historyStrategy:e})),n.map(o=>o),n.catchError(()=>this.default?n.of({area:this.name,component:this.default,historyStrategy:e}):n.EMPTY))}firstUpdated(){if(!this.name)throw new Error("Area name or default component not set");n.merge(n.of(location.pathname).pipe(n.switchMap(t=>this.getComponentFromPathname(t,c.silent)),n.map(t=>t),n.take(1)),s.request.pipe(n.filter(({area:t})=>t===this.name)),n.fromEvent(window,"popstate").pipe(n.map(t=>t.target.location.pathname),n.switchMap(t=>this.getComponentFromPathname(t,c.silent)),n.map(t=>t))).pipe(n.filter(t=>!!t.component),n.takeUntil(this.disconnecting),n.distinctUntilChanged((t,e)=>{let o,a;return typeof t.component!="function"&&(typeof t.component=="string"&&(o=t.component),typeof e.component!="function"&&(typeof e.component=="string"&&(a=e.component),(a==null?void 0:a.replaceAll("-","").toLowerCase())===(o==null?void 0:o.replaceAll("-","").toLowerCase())))})).pipe(n.switchMap(t=>{const e=t.component;return e instanceof Promise?n.from(e).pipe(n.map(o=>({component:o.exports.default,route:t}))):n.of({component:e,route:t})}),n.map(({component:t,route:e})=>typeof t=="string"?{component:document.createElement(t),route:e}:t instanceof HTMLElement?{component:t,route:e}:typeof t=="function"?{component:new t,route:e}:void 0),n.distinctUntilChanged((t,e)=>t.component.tagName===e.component.tagName),n.map(({component:t,route:e})=>{var i,r;const o=(i=this.shadowRoot)==null?void 0:i.children[0],a=!!o;return o.remove(),t.classList.add("opacity-0"),(r=this.shadowRoot)==null||r.append(t),t.animate([{opacity:0},{opacity:1}],{duration:a?150:100,easing:"cubic-bezier(0.25, 0.8, 0.25, 1)",fill:"forwards"}),{component:t,route:e}}),n.tap(({component:t,route:e})=>{e.historyStrategy===void 0||e.historyStrategy==="push"?history.pushState(e.state,"",this.newPath(t.tagName,e)):e.historyStrategy&&["replace","pop"].includes(e.historyStrategy)&&history.replaceState(e.state,"",this.newPath(t.tagName,e)),s.current.set(this.name,{component:t.tagName,state:e.state,area:this.name}),s.$current.next(s.current)}),n.takeUntil(this.disconnecting)).subscribe()}newPath(t,e){const o=location.pathname.split("/").pop();let a={};try{a=o?JSON.parse(decodeURIComponent(o)):{}}catch{a={}}e.state=e.state??{};const i=e.clearQueryParams?this.queryParamClear(e.clearQueryParams):document.location.search;return encodeURIComponent(JSON.stringify({...a,[this.name]:{component:t.toLowerCase(),state:e.state}})).concat(`${i}`)}queryParamClear(t){if(!t)return"";const e=new URLSearchParams(location.search);return t.forEach(o=>e.delete(o)),e.toString()===""?"":`?${e.toString()}`}checkForTeleportationRequests(){return n.fromEvent(window,"FLIP_REQUEST").pipe(n.map(t=>t.detail),n.bufferTime(0),n.tap(()=>{this.dispatchEvent(new CustomEvent("FLIP_STARTED"))}),n.takeUntil(this.disconnecting),n.timeout(0),n.catchError(()=>n.of(null)))}disconnectedCallback(){super.disconnectedCallback(),this.disconnecting.next(!0)}render(){return u.html` <slot> </slot> `}},l([h.property()],exports.SchmancyArea.prototype,"name",2),l([h.property()],exports.SchmancyArea.prototype,"default",2),exports.SchmancyArea=l([h.customElement("schmancy-area")],exports.SchmancyArea),exports.FINDING_MORTIES=d,exports.HERE_RICKY=y,exports.HISTORY_STRATEGY=c,exports.area=s,exports.routerHistory=S;
8
- //# sourceMappingURL=area.component-grRkXEse.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"area.component-grRkXEse.cjs","sources":["../src/area/area.service.ts","../src/area/router.types.ts","../src/area/area.component.ts"],"sourcesContent":["import { ReplaySubject, Subject, bufferTime, fromEvent, map, of, tap, timeout, zip } from 'rxjs'\nimport { SchmancyTeleportation } from '../teleport'\nimport { ActiveRoute, 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\nclass AreaService {\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\tpublic enableHistoryMode = true\n\tprivate findingMortiesEvent = new CustomEvent<FINDING_MORTIES_EVENT['detail']>(FINDING_MORTIES)\n\n\tconstructor() {\n\t\tthis.$current.next(this.current)\n\t}\n\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\ttap(console.log),\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)\n\t}\n\n\tpush(r: RouteAction) {\n\t\tthis.request.next(r)\n\t}\n\n\tpop(name: string) {\n\t\tconst newState = JSON.parse(JSON.stringify(area.state))\n\t\tdelete newState[name]\n\t\tconsole.log(area.state, newState)\n\t\thistory.replaceState(null, '', encodeURIComponent(JSON.stringify(newState)))\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\tget state() {\n\t\tconst pathname = location.pathname.split('/').pop()\n\t\tlet areaState = {}\n\t\ttry {\n\t\t\tareaState = pathname ? JSON.parse(decodeURIComponent(pathname)) : {}\n\t\t} catch {\n\t\t\tareaState = {}\n\t\t}\n\t\treturn areaState\n\t}\n}\n\nexport const area = AreaService.getInstance()\nexport default area\n","export type RouteAction = {\n\tcomponent: CustomElementConstructor | string | HTMLElement\n\tarea: string\n\tstate?: object\n\thistoryStrategy?: THistoryStrategy\n\tclearQueryParams?: string[] | null\n}\n\nexport type ActiveRoute = {\n\tcomponent: string\n\tarea: string\n\tstate?: object\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 | Promise<NodeModule> | 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 => decodeURIComponent(path)),\n\t\t\tmap(path => JSON.parse(path)),\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\t// TOOD: maybe enforce this to be unique\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\treturn bComponent?.replaceAll('-', '').toLowerCase() === aComponent?.replaceAll('-', '').toLowerCase()\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(map(x => ({ component: x.exports.default as CustomElementConstructor, route })))\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\tif (typeof component === 'string') {\n\t\t\t\t\t\t// Tag name\n\t\t\t\t\t\treturn { component: document.createElement(component), route }\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\treturn { component, route }\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\treturn { component: new component(), route }\n\t\t\t\t\t}\n\t\t\t\t}),\n\t\t\t\tdistinctUntilChanged((prev, curr) => prev.component.tagName === curr.component.tagName),\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})\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 },\n\t\t\t}),\n\t\t).concat(`${queryParams}`)\n\t}\n\n\tqueryParamClear(params?: string[]) {\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// remove query params\n\t\tparams.forEach(param => urlParams.delete(param))\n\t\t// update url\n\t\tif (urlParams.toString() === '') return ''\n\t\treturn `?${urlParams.toString()}`\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}\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}\n"],"names":["routerHistory","Subject","FINDING_MORTIES","HERE_RICKY","AreaService","constructor","this","prettyURL","mode","request","ReplaySubject","current","Map","$current","enableHistoryMode","findingMortiesEvent","CustomEvent","next","zip","fromEvent","window","pipe","map","e","detail","bufferTime","tap","console","log","of","dispatchEvent","component","timeout","r","name","newState","JSON","parse","stringify","area","state","history","replaceState","encodeURIComponent","getInstance","instance","pathname","location","split","pop","areaState","decodeURIComponent","HISTORY_STRATEGY","SchmancyArea","$LitElement","css","historyStrategy","path","routes","default","filter","x","isPresent","libExports","catchError","EMPTY","Error","merge","switchMap","getComponentFromPathname","silent","route","take","target","takeUntil","disconnecting","distinctUntilChanged","a","b","aComponent","bComponent","replaceAll","toLowerCase","c","Promise","from","exports","document","createElement","HTMLElement","prev","curr","tagName","oldView","shadowRoot","children","oldViewExists","remove","classList","add","append","animate","opacity","duration","easing","fill","pushState","newPath","includes","set","subscribe","tag","oldPathname","oldAreaState","queryParams","clearQueryParams","queryParamClear","search","concat","params","urlParams","URLSearchParams","forEach","param","delete","toString","super","disconnectedCallback","html","__decorateClass","property","prototype","customElement"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"avatar-WAIlaNJg.js","sources":["../src/badge/badge.ts","../src/card/actions.ts","../src/card/card.ts","../src/card/content.ts","../src/card/media.ts","../src/content-drawer/$sheet.ts","../src/content-drawer/context.ts","../src/content-drawer/drawer.ts","../src/content-drawer/main.ts","../src/content-drawer/sheet.ts","../src/nav-drawer/$navbar.ts","../src/nav-drawer/context.ts","../src/nav-drawer/appbar.ts","../src/nav-drawer/content.ts","../src/nav-drawer/drawer.ts","../src/nav-drawer/navbar.ts","../src/teleport/teleport.service.ts","../src/teleport/watcher.ts","../src/teleport/teleport.component.ts","../src/avatar.ts"],"sourcesContent":["import { TailwindElement } from '@mixins/index'\nimport { color } from '@schmancy/directives'\nimport { css, html } from 'lit'\nimport { customElement, property } from 'lit/decorators.js'\nimport { SchmancyTheme } from '..'\n\n/**\n * Badge color types for predefined styles\n */\nexport type BadgeColor = 'primary' | 'secondary' | 'tertiary' | 'success' | 'warning' | 'error' | 'neutral'\n\n/**\n * Badge size variants\n */\nexport type BadgeSize = 'xs' | 'sm' | 'md' | 'lg'\n\n/**\n * Badge shape variants\n */\nexport type BadgeShape = 'rounded' | 'pill' | 'square'\n\n/**\n * @element sch-badge\n * A versatile badge component for status indicators, labels, and counts\n *\n * @slot - The content of the badge (text or HTML)\n * @slot icon - Optional icon to display before the content\n *\n * @csspart badge - The badge element container\n * @csspart content - The content container\n * @csspart icon - The icon container\n */\n@customElement('sch-badge')\nexport class SchmancyBadgeV2 extends TailwindElement(css`\n\t:host {\n\t\tdisplay: inline-flex;\n\t}\n\n\t.badge-content {\n\t\tdisplay: flex;\n\t\talign-items: center;\n\t\tline-height: 1;\n\t\tletter-spacing: 0.01em;\n\t\tfont-kerning: normal;\n\t}\n\n\t/* Improved vertical alignment for icon and text */\n\t::slotted(*) {\n\t\tvertical-align: middle;\n\t}\n\n\t/* Add space between icon and text */\n\t.icon-container {\n\t\tdisplay: flex;\n\t\talign-items: center;\n\t\tjustify-content: center;\n\t\tline-height: 1;\n\t}\n\n\t/* Icon spacing adjustments - based on golden ratio principles */\n\t.icon-container + .badge-content {\n\t\tmargin-left: 0.38em; /* Approximately 1/1.618 of 0.618em */\n\t}\n\n\t/* Ensure the icon is properly centered */\n\tschmancy-icon {\n\t\tdisplay: flex;\n\t\talign-items: center;\n\t\tjustify-content: center;\n\t}\n\n\t/* Elegant hover effect for better interactivity */\n\t:host([outlined]) div[part=\"badge\"] {\n\t\ttransition: all 0.2s ease;\n\t}\n\n\t:host([outlined]) div[part=\"badge\"]:hover {\n\t\tfilter: brightness(0.95);\n\t\ttransform: translateY(-1px);\n\t}\n\n\t/* Non-outlined badges get subtle hover effects */\n\t:host(:not([outlined])) div[part=\"badge\"]:hover {\n\t\tfilter: brightness(0.98);\n\t}\n\n\t/* Enhanced pulse animation for better attention-getting */\n\t@keyframes elegant-pulse {\n\t\t0%, 100% {\n\t\t\topacity: 1;\n\t\t}\n\t\t50% {\n\t\t\topacity: 0.85;\n\t\t}\n\t}\n\n\t.animate-pulse {\n\t\tanimation: elegant-pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite;\n\t}\n`) {\n\t/**\n\t * The color variant of the badge\n\t * @attr\n\t */\n\t@property({ type: String, reflect: true })\n\tcolor: BadgeColor = 'primary'\n\n\t/**\n\t * The size of the badge\n\t * @attr\n\t */\n\t@property({ type: String, reflect: true })\n\tsize: BadgeSize = 'md'\n\n\t/**\n\t * The shape of the badge\n\t * @attr\n\t */\n\t@property({ type: String, reflect: true })\n\tshape: BadgeShape = 'pill'\n\n\t/**\n\t * Whether the badge has an outlined style\n\t * @attr\n\t */\n\t@property({ type: Boolean, reflect: true })\n\toutlined = false\n\n\t/**\n\t * Custom icon name to display (if no icon slot is provided)\n\t * @attr\n\t */\n\t@property({ type: String })\n\ticon = ''\n\n\t/**\n\t * Whether to make the badge pulse to draw attention\n\t * @attr\n\t */\n\t@property({ type: Boolean, reflect: true })\n\tpulse = false\n\n\t/**\n\t * Convert the size to appropriate Tailwind classes for the badge container\n\t * Using harmonious padding ratios based on golden ratio principles\n\t * Refined for more elegant proportions\n\t */\n\tprivate getSizeClasses(): string {\n\t\tswitch (this.size) {\n\t\t\tcase 'xs':\n\t\t\t\treturn 'text-xs py-0.75 px-1.5 gap-0.5 leading-none'\n\t\t\tcase 'sm':\n\t\t\t\treturn 'text-xs py-1.5 px-2.5 gap-0.5 tracking-wide leading-none'\n\t\t\tcase 'lg':\n\t\t\t\treturn 'text-base py-2 px-4 gap-1 tracking-wide'\n\t\t\tcase 'md':\n\t\t\tdefault:\n\t\t\t\treturn 'text-sm py-1.5 px-3 gap-0.5'\n\t\t}\n\t}\n\n\t/**\n\t * Get shape classes based on selected shape\n\t */\n\tprivate getShapeClasses(): string {\n\t\tswitch (this.shape) {\n\t\t\tcase 'square':\n\t\t\t\treturn 'rounded'\n\t\t\tcase 'rounded':\n\t\t\t\treturn 'rounded-md'\n\t\t\tcase 'pill':\n\t\t\tdefault:\n\t\t\t\treturn 'rounded-full'\n\t\t}\n\t}\n\n\t/**\n\t * Get icon size based on badge size with harmonious proportions\n\t * Using golden ratio-inspired proportions relative to text size\n\t */\n\tprivate getIconSize(): string {\n\t\tswitch (this.size) {\n\t\t\tcase 'xs':\n\t\t\t\treturn '11px' // Approximately 0.9 × text size (12px × 0.9)\n\t\t\tcase 'sm':\n\t\t\t\treturn '13px' // Approximately 1.1 × text size (12px × 1.1)\n\t\t\tcase 'lg':\n\t\t\t\treturn '18px' // Approximately 1.1 × text size (16px × 1.1)\n\t\t\tcase 'md':\n\t\t\tdefault:\n\t\t\t\treturn '15px' // Approximately 1.1 × text size (14px × 1.1)\n\t\t}\n\t}\n\n\t/**\n\t * Get additional styling for specific sizes\n\t */\n\tprivate getExoticStyles(): Record<string, string> {\n\t\tconst styles: Record<string, string> = {}\n\n\t\tif (this.size === 'lg') {\n\t\t\tstyles.letterSpacing = '0.03em'\n\t\t\tstyles.fontWeight = '500'\n\t\t}\n\n\t\tif (this.size === 'sm') {\n\t\t\tstyles.letterSpacing = '0.02em'\n\t\t}\n\n\t\treturn styles\n\t}\n\n\t/**\n\t * Get background and text colors based on selected color variant\n\t * Enhanced for more elegant color combinations with refined contrasts\n\t */\n\tprivate getColorStyles() {\n\t\tconst colors: Record<BadgeColor, { bg: string; text: string; border?: string }> = {\n\t\t\tprimary: {\n\t\t\t\tbg: this.outlined ? 'transparent' : `color-mix(in srgb, ${SchmancyTheme.sys.color.primary.container} 92%, ${SchmancyTheme.sys.color.primary.default} 8%)`,\n\t\t\t\ttext: this.outlined ? SchmancyTheme.sys.color.primary.default : SchmancyTheme.sys.color.primary.onContainer,\n\t\t\t\tborder: this.outlined ? `color-mix(in srgb, ${SchmancyTheme.sys.color.primary.default} 90%, ${SchmancyTheme.sys.color.surface.highest} 10%)` : undefined,\n\t\t\t},\n\t\t\tsecondary: {\n\t\t\t\tbg: this.outlined ? 'transparent' : `color-mix(in srgb, ${SchmancyTheme.sys.color.secondary.container} 95%, ${SchmancyTheme.sys.color.secondary.default} 5%)`,\n\t\t\t\ttext: this.outlined ? SchmancyTheme.sys.color.secondary.default : SchmancyTheme.sys.color.secondary.onContainer,\n\t\t\t\tborder: this.outlined ? `color-mix(in srgb, ${SchmancyTheme.sys.color.secondary.default} 85%, ${SchmancyTheme.sys.color.surface.highest} 15%)` : undefined,\n\t\t\t},\n\t\t\ttertiary: {\n\t\t\t\tbg: this.outlined ? 'transparent' : `color-mix(in srgb, ${SchmancyTheme.sys.color.tertiary.container} 94%, ${SchmancyTheme.sys.color.tertiary.default} 6%)`,\n\t\t\t\ttext: this.outlined ? SchmancyTheme.sys.color.tertiary.default : SchmancyTheme.sys.color.tertiary.onContainer,\n\t\t\t\tborder: this.outlined ? `color-mix(in srgb, ${SchmancyTheme.sys.color.tertiary.default} 88%, ${SchmancyTheme.sys.color.surface.highest} 12%)` : undefined,\n\t\t\t},\n\t\t\tsuccess: {\n\t\t\t\tbg: this.outlined ? 'transparent' : `color-mix(in srgb, ${SchmancyTheme.sys.color.success.container} 90%, ${SchmancyTheme.sys.color.success.default} 10%)`,\n\t\t\t\ttext: this.outlined ? SchmancyTheme.sys.color.success.default : SchmancyTheme.sys.color.success.onContainer,\n\t\t\t\tborder: this.outlined ? `color-mix(in srgb, ${SchmancyTheme.sys.color.success.default} 85%, ${SchmancyTheme.sys.color.surface.bright} 15%)` : undefined,\n\t\t\t},\n\t\t\twarning: {\n\t\t\t\tbg: this.outlined ? 'transparent' : `color-mix(in srgb, ${SchmancyTheme.sys.color.tertiary.container} 85%, ${SchmancyTheme.sys.color.tertiary.default} 15%)`,\n\t\t\t\ttext: this.outlined ? SchmancyTheme.sys.color.tertiary.default : SchmancyTheme.sys.color.tertiary.onContainer,\n\t\t\t\tborder: this.outlined ? `color-mix(in srgb, ${SchmancyTheme.sys.color.tertiary.default} 90%, ${SchmancyTheme.sys.color.surface.highest} 10%)` : undefined,\n\t\t\t},\n\t\t\terror: {\n\t\t\t\tbg: this.outlined ? 'transparent' : `color-mix(in srgb, ${SchmancyTheme.sys.color.error.container} 92%, ${SchmancyTheme.sys.color.error.default} 8%)`,\n\t\t\t\ttext: this.outlined ? SchmancyTheme.sys.color.error.default : SchmancyTheme.sys.color.error.onContainer,\n\t\t\t\tborder: this.outlined ? `color-mix(in srgb, ${SchmancyTheme.sys.color.error.default} 88%, ${SchmancyTheme.sys.color.surface.bright} 12%)` : undefined,\n\t\t\t},\n\t\t\tneutral: {\n\t\t\t\tbg: this.outlined ? 'transparent' : `color-mix(in srgb, ${SchmancyTheme.sys.color.surface.high} 95%, ${SchmancyTheme.sys.color.outline} 5%)`,\n\t\t\t\ttext: this.outlined ? `color-mix(in srgb, ${SchmancyTheme.sys.color.surface.on} 95%, ${SchmancyTheme.sys.color.surface.default} 5%)` : SchmancyTheme.sys.color.surface.on,\n\t\t\t\tborder: this.outlined ? `color-mix(in srgb, ${SchmancyTheme.sys.color.outline} 85%, ${SchmancyTheme.sys.color.surface.highest} 15%)` : undefined,\n\t\t\t},\n\t\t}\n\n\t\treturn colors[this.color]\n\t}\n\n\trender() {\n\t\tconst sizeClasses = this.getSizeClasses()\n\t\tconst shapeClasses = this.getShapeClasses()\n\t\tconst colorStyles = this.getColorStyles()\n\t\tconst iconSize = this.getIconSize()\n\t\tconst exoticStyles = this.getExoticStyles()\n\n\t\tconst badgeClasses = {\n\t\t\t'inline-flex items-center justify-center font-medium': true,\n\t\t\t[sizeClasses]: true,\n\t\t\t[shapeClasses]: true,\n\t\t\t'animate-pulse': this.pulse,\n\t\t\t'border border-solid': this.outlined,\n\t\t\t'shadow-sm': !this.outlined && this.size === 'sm',\n\t\t\t'shadow': !this.outlined && this.size === 'md',\n\t\t\t'shadow-md': !this.outlined && this.size === 'lg',\n\t\t}\n\n\t\t// Refined styles for a more elegant look\n\t\tconst styles = {\n\t\t\tborderColor: colorStyles.border,\n\t\t\ttransition: 'all 0.2s ease',\n\t\t\t...(this.outlined ? {\n\t\t\t\tbackdropFilter: 'blur(4px)',\n\t\t\t\tborderWidth: '1px',\n\t\t\t} : {}),\n\t\t\t...(this.size === 'lg' && !this.outlined ? {\n\t\t\t\tboxShadow: '0 1px 2px rgba(0, 0, 0, 0.06), 0 1px 3px rgba(0, 0, 0, 0.1)'\n\t\t\t} : {}),\n\t\t\t...exoticStyles,\n\t\t}\n\n\t\treturn html`\n\t\t\t<div\n\t\t\t\tpart=\"badge\"\n\t\t\t\tclass=\"${this.classMap(badgeClasses)}\"\n\t\t\t\tstyle=\"${this.styleMap(styles)}\"\n\t\t\t\t${color({\n\t\t\t\t\tbgColor: colorStyles.bg,\n\t\t\t\t\tcolor: colorStyles.text,\n\t\t\t\t})}\n\t\t\t>\n\t\t\t\t<!-- Icon slot or named icon -->\n\t\t\t\t<slot name=\"icon\">\n\t\t\t\t\t${this.icon\n\t\t\t\t\t\t? html`\n\t\t\t\t\t\t\t\t<div part=\"icon\" class=\"icon-container flex-shrink-0 flex items-center justify-center\">\n\t\t\t\t\t\t\t\t\t<schmancy-icon .size=${iconSize} class=\"flex items-center\">${this.icon}</schmancy-icon>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t`\n\t\t\t\t\t\t: ''}\n\t\t\t\t</slot>\n\n\t\t\t\t<!-- Content -->\n\t\t\t\t<div part=\"content\" class=\"badge-content\">\n\t\t\t\t\t<slot></slot>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t`\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'sch-badge': SchmancyBadgeV2\n\t}\n}\n","import { TailwindElement } from '@mixins/index'\nimport { css, html } from 'lit'\nimport { customElement } from 'lit/decorators.js'\n\n/**\n * @element schmancy-card-action\n * @slot - The content of the action\n */\n@customElement('schmancy-card-action')\nexport default class SchmancyCardMedia extends TailwindElement(css`\n\t:host {\n\t\tdisplay: block;\n\t}\n`) {\n\tprotected render(): unknown {\n\t\treturn html` <section class=\"pb-4 px-4\"><slot> </slot></section> `\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-card-action': SchmancyCardMedia\n\t}\n}\n","import { TailwindElement } from '@mixins/index'\nimport { html } from 'lit'\nimport { customElement, property } from 'lit/decorators.js'\n\n@customElement('schmancy-card')\nexport default class SchmancyCard extends TailwindElement() {\n\t@property() type: 'elevated' | 'filled' | 'outlined' = 'elevated'\n\t@property({ type: Number }) elevation: 0 | 1 | 2 | 3 | 4 | 5 = 0\n\tprotected render(): unknown {\n\t\tconst classes = {\n\t\t\t'rounded-md': true,\n\t\t\t'shadow-xs': this.elevation === 1,\n\t\t\t'shadow-sm': this.elevation === 2,\n\t\t\t'shadow-md': this.elevation === 3,\n\t\t\t'shadow-lg': this.elevation === 4,\n\t\t\t'shadow-5': this.elevation === 5,\n\t\t\t'hover:shadow-xs': ['outlined', 'filled'].includes(this.type),\n\t\t\t'bg-surface-low shadow-xs hover:shadow-sm': this.type === 'elevated',\n\t\t\t'bg-surface-highest': this.type === 'filled',\n\t\t\t'bg-surface-default border border-solid border-1 border-outlineVariant': this.type === 'outlined',\n\t\t}\n\t\treturn html`<div class=\"${this.classMap(classes)}\">\n\t\t\t<slot> </slot>\n\t\t</div>`\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-card': SchmancyCard\n\t}\n}\n","import { TailwindElement } from '@mixins/index'\nimport { SchmancyTheme } from '@schmancy/theme/theme.interface'\nimport { html } from 'lit'\nimport { customElement } from 'lit/decorators.js'\nimport { color } from '..'\n\n/**\n * @element schmancy-card-content\n * @slot headline\n * @slot subhead\n * @slot default - The content of the card\n */\n@customElement('schmancy-card-content')\nexport default class SchmancyCardContent extends TailwindElement() {\n\tprotected render(): unknown {\n\t\tconst classes = {\n\t\t\t'px-[16px] py-[24px]': true,\n\t\t}\n\t\tconst onSurface = SchmancyTheme.sys.color.surface.on\n\t\tconst onSurfaceVariant = SchmancyTheme.sys.color.surface.onVariant\n\t\treturn html`<schmancy-grid gap=\"md\" class=\"${this.classMap(classes)}\">\n\t\t\t<schmancy-grid gap=\"xs\">\n\t\t\t\t<schmancy-typography\n\t\t\t\t\t${color({\n\t\t\t\t\t\tcolor: onSurface,\n\t\t\t\t\t})}\n\t\t\t\t\ttype=\"body\"\n\t\t\t\t\ttoken=\"lg\"\n\t\t\t\t\t><slot name=\"headline\"> </slot\n\t\t\t\t></schmancy-typography>\n\t\t\t\t<schmancy-typography\n\t\t\t\t\t${color({\n\t\t\t\t\t\tcolor: onSurfaceVariant,\n\t\t\t\t\t})}\n\t\t\t\t\ttype=\"body\"\n\t\t\t\t\t><slot name=\"subhead\"></slot>\n\t\t\t\t</schmancy-typography>\n\t\t\t</schmancy-grid>\n\t\t\t<schmancy-typography\n\t\t\t\ttype=\"body\"\n\t\t\t\t${color({\n\t\t\t\t\tcolor: onSurfaceVariant,\n\t\t\t\t})}\n\t\t\t>\n\t\t\t\t<slot></slot>\n\t\t\t</schmancy-typography>\n\t\t</schmancy-grid>`\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-card-content': SchmancyCardContent\n\t}\n}\n","import { TailwindElement } from '@mixins/index'\nimport { css, html } from 'lit'\nimport { customElement, property } from 'lit/decorators.js'\n\n/**\n * @element schmancy-card-media\n */\n@customElement('schmancy-card-media')\nexport default class SchmancyCardMedia extends TailwindElement(css`\n\t:host {\n\t\tdisplay: block;\n\t}\n`) {\n\t@property({ type: String, reflect: true })\n\tsrc: string = ''\n\n\t@property({ type: String })\n\tfit: 'contain' | 'cover' | 'fill' | 'none' | 'scale-down' = 'contain'\n\n\tprotected render(): unknown {\n\t\tconst styles = {\n\t\t\theight: '200px',\n\t\t}\n\t\tconst classes = {\n\t\t\t'object-center': true,\n\t\t\t'object-contain': this.fit === 'contain',\n\t\t\t'object-cover w-full': this.fit === 'cover',\n\t\t\t'object-fill': this.fit === 'fill',\n\t\t\t'object-none': this.fit === 'none',\n\t\t\t'object-scale-down': this.fit === 'scale-down',\n\t\t}\n\t\treturn html`<schmancy-grid align=\"stretch\" justify=\"stretch\" gap=\"md\">\n\t\t\t<img src=\"${this.src}\" style=${this.styleMap(styles)} class=\"${this.classMap(classes)}\" />\n\t\t</schmancy-grid>`\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-card-media': SchmancyCardMedia\n\t}\n}\n","import { SchmancyEvents } from '@schmancy/types/events'\nimport { Subject } from 'rxjs'\n\ntype DrawerAction = 'dismiss' | 'render'\ntype TRef = Element | Window\ntype TRenderRequest = HTMLElement\nexport type TRenderCustomEvent = CustomEvent<{\n\tcomponent: TRenderRequest\n\ttitle?: string\n}>\nclass Drawer {\n\tprivate $drawer = new Subject<{\n\t\tref: TRef\n\t\taction: DrawerAction\n\t\tcomponent?: TRenderRequest\n\t\ttitle?: string\n\t}>()\n\tconstructor() {\n\t\tthis.$drawer.pipe().subscribe(data => {\n\t\t\tif (data.action === 'dismiss') {\n\t\t\t\tdata.ref.dispatchEvent(\n\t\t\t\t\tnew CustomEvent(SchmancyEvents.ContentDrawerToggle, {\n\t\t\t\t\t\tdetail: {\n\t\t\t\t\t\t\tstate: 'close',\n\t\t\t\t\t\t},\n\t\t\t\t\t\tbubbles: true,\n\t\t\t\t\t\tcomposed: true,\n\t\t\t\t\t}),\n\t\t\t\t)\n\t\t\t} else if (data.action === 'render') {\n\t\t\t\tdata.ref.dispatchEvent(\n\t\t\t\t\tnew CustomEvent(SchmancyEvents.ContentDrawerToggle, {\n\t\t\t\t\t\tdetail: {\n\t\t\t\t\t\t\tstate: 'open',\n\t\t\t\t\t\t},\n\t\t\t\t\t\tbubbles: true,\n\t\t\t\t\t\tcomposed: true,\n\t\t\t\t\t}),\n\t\t\t\t)\n\t\t\t\tdata.ref.dispatchEvent(\n\t\t\t\t\tnew CustomEvent('schmancy-content-drawer-render', {\n\t\t\t\t\t\tdetail: {\n\t\t\t\t\t\t\tcomponent: data.component,\n\t\t\t\t\t\t\ttitle: data.title,\n\t\t\t\t\t\t},\n\t\t\t\t\t\tbubbles: true,\n\t\t\t\t\t\tcomposed: true,\n\t\t\t\t\t}),\n\t\t\t\t)\n\t\t\t}\n\t\t})\n\t}\n\n\tdimiss(ref: TRef) {\n\t\tthis.$drawer.next({\n\t\t\taction: 'dismiss',\n\t\t\tref: ref,\n\t\t})\n\t}\n\n\trender(ref: TRef, component: TRenderRequest, title?: string) {\n\t\tref.dispatchEvent(new CustomEvent('custom-event'))\n\t\tthis.$drawer.next({\n\t\t\taction: 'render',\n\t\t\tref: ref,\n\t\t\tcomponent: component,\n\t\t\ttitle,\n\t\t})\n\t}\n}\n\nexport const schmancyContentDrawer = new Drawer()\n","import { createContext } from '@lit/context'\nexport type TSchmancyContentDrawerSheetMode = 'push' | 'overlay'\nexport const SchmancyContentDrawerSheetMode = createContext<TSchmancyContentDrawerSheetMode>('push')\n\nexport type TSchmancyContentDrawerSheetState = 'open' | 'close'\nexport const SchmancyContentDrawerSheetState = createContext<TSchmancyContentDrawerSheetState>('close')\n\nexport const SchmancyContentDrawerID = createContext<string>(Math.floor(Math.random() * Date.now()).toString())\nexport const SchmancyContentDrawerMaxHeight = createContext<string>('100%')\nexport const SchmancyContentDrawerMinWidth = createContext<{\n\tmain: number\n\tsheet: number\n}>({})\n","import { provide } from '@lit/context'\nimport { $LitElement } from '@mixins/index'\nimport { css, html, nothing } from 'lit'\nimport { customElement, property, queryAssignedElements, state } from 'lit/decorators.js'\nimport { debounceTime, distinctUntilChanged, fromEvent, map, merge, startWith, takeUntil, tap } from 'rxjs'\nimport { SchmancyEvents, TRenderCustomEvent, area, sheet } from '..'\nimport {\n\tSchmancyContentDrawerID,\n\tSchmancyContentDrawerMaxHeight,\n\tSchmancyContentDrawerMinWidth,\n\tSchmancyContentDrawerSheetMode,\n\tSchmancyContentDrawerSheetState,\n\tTSchmancyContentDrawerSheetMode,\n\tTSchmancyContentDrawerSheetState,\n} from './context'\n\n/**\n * @element schmancy-content-drawer\n * @slot appbar - The appbar slot\n * @slot - The content slot\n */\n@customElement('schmancy-content-drawer')\nexport class SchmancyContentDrawer extends $LitElement(css`\n\t:host {\n\t\tposition: relative;\n\t\tinset: 0;\n\t\tdisplay: block;\n\t\toverflow: hidden;\n\t}\n`) {\n\t/**\n\t * The minimum width of the sheet\n\t * @attr\tminWidth\n\t * @type {number}\n\t * @memberof SchmancyContentDrawer\n\t */\n\n\t@provide({ context: SchmancyContentDrawerMinWidth })\n\tminWidth: typeof SchmancyContentDrawerMinWidth.__context__ = {\n\t\tmain: 360,\n\t\tsheet: 576,\n\t}\n\n\t/**\n\t * The state of the sheet\n\t * @attr open\n\t * @type {TSchmancyContentDrawerSheetState}\n\t */\n\t@provide({ context: SchmancyContentDrawerSheetState })\n\t@property()\n\topen: TSchmancyContentDrawerSheetState\n\n\t/**\n\t * The mode of the sheet\n\t * @type {TSchmancyContentDrawerSheetMode}\n\t * @memberof SchmancyContentDrawer\n\t * @protected\n\t */\n\t@provide({ context: SchmancyContentDrawerSheetMode })\n\t@state()\n\tmode: TSchmancyContentDrawerSheetMode\n\n\t@provide({ context: SchmancyContentDrawerID })\n\tschmancyContentDrawerID = Math.floor(Math.random() * Date.now()).toString()\n\n\t@provide({ context: SchmancyContentDrawerMaxHeight })\n\tmaxHeight = '100%'\n\n\t@queryAssignedElements({ flatten: true })\n\tassignedElements!: HTMLElement[]\n\tfirstUpdated(): void {\n\t\tmerge(fromEvent<CustomEvent>(window, 'resize'), fromEvent<CustomEvent>(window, SchmancyEvents.ContentDrawerResize))\n\t\t\t.pipe(\n\t\t\t\tstartWith(true),\n\t\t\t\ttap(() => console.log(this.minWidth)),\n\t\t\t\tmap(() => (this.clientWidth ? this.clientWidth : window.innerWidth)),\n\t\t\t\tmap(width => width >= this.minWidth.main + this.minWidth.sheet),\n\t\t\t\tdebounceTime(100),\n\t\t\t\ttap(() => {\n\t\t\t\t\tthis.maxHeight = `${window.innerHeight - this.getOffsetTop(this) - 32}px`\n\t\t\t\t\tthis.style.setProperty('max-height', this.maxHeight)\n\t\t\t\t}),\n\t\t\t\tdistinctUntilChanged(),\n\t\t\t\ttakeUntil(this.disconnecting),\n\t\t\t)\n\t\t\t.subscribe(lgScreen => {\n\t\t\t\tif (lgScreen) {\n\t\t\t\t\tthis.mode = 'push'\n\t\t\t\t\tthis.open = 'open'\n\t\t\t\t} else {\n\t\t\t\t\tthis.mode = 'overlay'\n\t\t\t\t\tthis.open = 'close'\n\t\t\t\t}\n\t\t\t})\n\n\t\t/*\n\t\t * Listen to the toggle event\n\t\t */\n\t\tfromEvent<CustomEvent>(window, SchmancyEvents.ContentDrawerToggle)\n\t\t\t.pipe(\n\t\t\t\ttap(event => {\n\t\t\t\t\tevent.stopPropagation()\n\t\t\t\t}),\n\t\t\t\tmap(event => event.detail.state),\n\t\t\t\ttakeUntil(this.disconnecting),\n\t\t\t)\n\t\t\t.subscribe(state => {\n\t\t\t\tthis.open = state\n\t\t\t})\n\n\t\tfromEvent<TRenderCustomEvent>(window, 'schmancy-content-drawer-render')\n\t\t\t.pipe(\n\t\t\t\ttap(event => {\n\t\t\t\t\tevent.stopPropagation()\n\t\t\t\t}),\n\t\t\t\tmap(event => event.detail),\n\t\t\t\ttakeUntil(this.disconnecting),\n\t\t\t)\n\t\t\t.subscribe(({ component, title }) => {\n\t\t\t\tif (this.mode === 'push') {\n\t\t\t\t\t// TODO: Fix the router to render if constructor has different arguments\n\t\t\t\t\tarea.push({\n\t\t\t\t\t\tarea: this.schmancyContentDrawerID,\n\t\t\t\t\t\tcomponent: 'empty',\n\t\t\t\t\t\thistoryStrategy: 'silent',\n\t\t\t\t\t})\n\t\t\t\t\tarea.push({\n\t\t\t\t\t\tarea: this.schmancyContentDrawerID,\n\t\t\t\t\t\tcomponent: component,\n\t\t\t\t\t\thistoryStrategy: 'silent',\n\t\t\t\t\t})\n\t\t\t\t} else if ((this.mode = 'overlay')) {\n\t\t\t\t\tsheet.open({ component: component, uid: this.schmancyContentDrawerID, title })\n\t\t\t\t}\n\t\t\t})\n\t}\n\n\tgetOffsetTop(element) {\n\t\tlet offsetTop = 0\n\t\twhile (element) {\n\t\t\toffsetTop += element.offsetTop\n\t\t\telement = element.offsetParent\n\t\t}\n\t\treturn offsetTop\n\t}\n\n\tprotected render() {\n\t\tif (!this.mode || !this.open) return nothing\n\t\treturn html`\n\t\t\t<schmancy-grid\n\t\t\t\tcols=${this.mode === 'overlay' ? '1fr' : 'auto 1fr'}\n\t\t\t\trows=\"1fr\"\n\t\t\t\tflow=\"col\"\n\t\t\t\tjustify=\"stretch\"\n\t\t\t\talign=\"stretch\"\n\t\t\t>\n\t\t\t\t<slot></slot>\n\t\t\t</schmancy-grid>\n\t\t`\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-content-drawer': SchmancyContentDrawer\n\t}\n}\n","import { consume } from '@lit/context'\nimport { $LitElement } from '@mixins/index'\nimport { PropertyValueMap, css, html } from 'lit'\nimport { customElement, property, state } from 'lit/decorators.js'\nimport { SchmancyEvents } from '..'\nimport {\n\tSchmancyContentDrawerMaxHeight,\n\tSchmancyContentDrawerMinWidth,\n\tSchmancyContentDrawerSheetMode,\n\tTSchmancyContentDrawerSheetMode,\n} from './context'\nimport { when } from 'lit/directives/when.js'\n\n@customElement('schmancy-content-drawer-main')\nexport class SchmancyContentDrawerMain extends $LitElement(css`\n\t:host {\n\t\tdisplay: block;\n\t\toverflow: hidden;\n\t}\n`) {\n\t@property({ type: Number })\n\tminWidth\n\n\t@consume({ context: SchmancyContentDrawerMinWidth, subscribe: true })\n\tdrawerMinWidth: typeof SchmancyContentDrawerMinWidth.__context__\n\n\t@consume({ context: SchmancyContentDrawerSheetMode, subscribe: true })\n\t@state()\n\tmode: TSchmancyContentDrawerSheetMode\n\n\t@consume({ context: SchmancyContentDrawerMaxHeight, subscribe: true })\n\t@state()\n\tmaxHeight\n\n\tconnectedCallback(): void {\n\t\tsuper.connectedCallback()\n\t\tif (this.minWidth) this.drawerMinWidth.main = this.minWidth\n\t\telse this.minWidth = this.drawerMinWidth.main\n\t}\n\n\tprotected update(changedProperties: PropertyValueMap<any> | Map<PropertyKey, unknown>): void {\n\t\tsuper.update(changedProperties)\n\t\tif (changedProperties.has('minWidth') && this.minWidth) {\n\t\t\tthis.drawerMinWidth.main = this.minWidth\n\t\t\tthis.dispatchEvent(new CustomEvent(SchmancyEvents.ContentDrawerResize, { bubbles: true, composed: true }))\n\t\t}\n\t}\n\n\trender() {\n\t\tconst styles = {\n\t\t\tminWidth: `${this.minWidth}px`,\n\t\t\tmaxHeight: this.maxHeight,\n\t\t}\n\t\treturn html`\n\t\t\t<section class=\"relative inset-0 h-full\">\n\t\t\t\t<schmancy-grid\n\t\t\t\t\tclass=\"h-full relative overflow-scroll\"\n\t\t\t\t\tcols=\"${this.mode === 'push' ? 'auto 1fr' : '1fr'}\"\n\t\t\t\t\trows=\"1fr\"\n\t\t\t\t\tflow=\"col\"\n\t\t\t\t\talign=\"stretch\"\n\t\t\t\t\tjustify=\"stretch\"\n\t\t\t\t>\n\t\t\t\t\t<section style=${this.styleMap(styles)}>\n\t\t\t\t\t\t<slot></slot>\n\t\t\t\t\t</section>\n\t\t\t\t</schmancy-grid>\n\t\t\t\t${when(\n\t\t\t\t\tthis.mode === 'push',\n\t\t\t\t\t() => html` <schmancy-divider class=\"absolute right-0 top-0\" orientation=\"vertical\"></schmancy-divider>`,\n\t\t\t\t)}\n\t\t\t</section>\n\t\t`\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-content-drawer-main': SchmancyContentDrawerMain\n\t}\n}\n","import { consume } from '@lit/context'\nimport { $LitElement } from '@mixins/index'\nimport { css, html } from 'lit'\nimport { customElement, property, query, queryAssignedElements, state } from 'lit/decorators.js'\nimport { from, merge, Observable, of, takeUntil, tap } from 'rxjs'\nimport { SchmancyEvents, sheet } from '..'\nimport {\n\tSchmancyContentDrawerID,\n\tSchmancyContentDrawerMaxHeight,\n\tSchmancyContentDrawerMinWidth,\n\tSchmancyContentDrawerSheetMode,\n\tSchmancyContentDrawerSheetState,\n\tTSchmancyContentDrawerSheetMode,\n\tTSchmancyContentDrawerSheetState,\n} from './context'\n\n// --- 1) Removed the custom animate import\n// import { animate } from '@packages/anime-beta-master'\n\n@customElement('schmancy-content-drawer-sheet')\nexport class SchmancyContentDrawerSheet extends $LitElement(css`\n\t:host {\n\t\toverflow: scroll;\n\t}\n`) {\n\t@property({ type: Number })\n\tminWidth\n\n\t@consume({ context: SchmancyContentDrawerSheetMode, subscribe: true })\n\t@state()\n\tmode: TSchmancyContentDrawerSheetMode\n\n\t@consume({ context: SchmancyContentDrawerSheetState, subscribe: true })\n\t@state()\n\tstate: TSchmancyContentDrawerSheetState\n\n\t@consume({ context: SchmancyContentDrawerID })\n\tschmancyContentDrawerID\n\n\t@query('#sheet') sheet!: HTMLElement\n\t@queryAssignedElements({ flatten: true, slot: undefined }) defaultSlot!: HTMLElement[]\n\n\t@consume({ context: SchmancyContentDrawerMinWidth, subscribe: true })\n\tdrawerMinWidth: typeof SchmancyContentDrawerMinWidth.__context__\n\n\t@consume({ context: SchmancyContentDrawerMaxHeight, subscribe: true })\n\t@state()\n\tmaxHeight\n\n\tconnectedCallback(): void {\n\t\tsuper.connectedCallback()\n\t\tif (this.minWidth) {\n\t\t\tthis.drawerMinWidth.sheet = this.minWidth\n\t\t} else {\n\t\t\tthis.minWidth = this.drawerMinWidth.sheet\n\t\t}\n\t}\n\n\tupdated(changedProperties: Map<string, any>) {\n\t\tsuper.updated(changedProperties)\n\t\tif (changedProperties.has('minWidth') && this.minWidth) {\n\t\t\t// If the 'minWidth' property changed\n\t\t\tthis.drawerMinWidth.sheet = this.minWidth\n\t\t\tthis.dispatchEvent(new CustomEvent(SchmancyEvents.ContentDrawerResize, { bubbles: true, composed: true }))\n\t\t} else if (changedProperties.has('state') || changedProperties.has('mode')) {\n\t\t\tif (this.mode === 'overlay') {\n\t\t\t\tif (this.state === 'close') {\n\t\t\t\t\tthis.closeAll()\n\t\t\t\t} else if (this.state === 'open') {\n\t\t\t\t\t// Overlay open logic if needed\n\t\t\t\t\t// this.open()\n\t\t\t\t}\n\t\t\t} else if (this.mode === 'push') {\n\t\t\t\tsheet.dismiss(this.schmancyContentDrawerID)\n\t\t\t\tif (this.state === 'close') {\n\t\t\t\t\tthis.closeAll()\n\t\t\t\t} else if (this.state === 'open') {\n\t\t\t\t\tthis.open()\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Open the sheet by sliding it into view.\n\t */\n\topen() {\n\t\t// \"onBegin\" logic from the old `animate(...)`\n\t\tif (this.mode === 'overlay') {\n\t\t\tthis.sheet.style.position = 'fixed'\n\t\t} else {\n\t\t\tthis.sheet.style.position = 'relative'\n\t\t}\n\t\tthis.sheet.style.display = 'block'\n\n\t\t// --- 2) Use native Web Animations API ---\n\t\tthis.sheet.animate(\n\t\t\t[\n\t\t\t\t{ opacity: 0, transform: 'translateX(100%)' },\n\t\t\t\t{ opacity: 1, transform: 'translateX(0%)' },\n\t\t\t],\n\t\t\t{\n\t\t\t\tduration: 500,\n\t\t\t\teasing: 'cubic-bezier(0.5, 0.01, 0.25, 1)',\n\t\t\t},\n\t\t)\n\t\t// No return is needed if you don't rely on the result\n\t}\n\n\t/**\n\t * Close everything (modal sheet + the sheet itself).\n\t */\n\tcloseAll() {\n\t\t// Merge them into a single subscription,\n\t\t// so that everything closes in parallel.\n\t\tmerge(from(this.closeModalSheet()), from(this.closeSheet())).pipe(takeUntil(this.disconnecting)).subscribe()\n\t}\n\n\t/**\n\t * Dismiss the \"modal sheet.\"\n\t * This just returns an Observable that completes immediately.\n\t */\n\tcloseModalSheet() {\n\t\treturn of(true).pipe(tap(() => sheet.dismiss(this.schmancyContentDrawerID)))\n\t}\n\n\t/**\n\t * Slide the sheet out of view + hide it.\n\t * Return an Observable so we can merge it with other close operations.\n\t */\n\tcloseSheet() {\n\t\t// --- 2) Use native Web Animations API and wrap in an Observable ---\n\t\treturn new Observable<void>(observer => {\n\t\t\tconst animation = this.sheet.animate(\n\t\t\t\t[\n\t\t\t\t\t{ opacity: 1, transform: 'translateX(0%)' },\n\t\t\t\t\t{ opacity: 1, transform: 'translateX(100%)' },\n\t\t\t\t],\n\t\t\t\t{\n\t\t\t\t\tduration: 500,\n\t\t\t\t\teasing: 'cubic-bezier(0.5, 0.01, 0.25, 1)',\n\t\t\t\t},\n\t\t\t)\n\n\t\t\tanimation.onfinish = () => {\n\t\t\t\t// \"onComplete\" logic\n\t\t\t\tthis.sheet.style.display = 'none'\n\t\t\t\tobserver.next()\n\t\t\t\tobserver.complete()\n\t\t\t}\n\t\t})\n\t}\n\n\tprotected render() {\n\t\tconst sheetClasses = {\n\t\t\tblock: this.mode === 'push',\n\t\t\t'absolute z-50': this.mode === 'overlay',\n\t\t\t'opacity-1': this.mode === 'overlay' && this.state === 'open',\n\t\t}\n\n\t\tconst styles = {\n\t\t\tminWidth: `${this.minWidth}px`,\n\t\t\tmaxHeight: this.maxHeight,\n\t\t}\n\n\t\treturn html`\n\t\t\t<section id=\"sheet\" class=\"${this.classMap(sheetClasses)}\" style=${this.styleMap(styles)}>\n\t\t\t\t<schmancy-area name=\"${this.schmancyContentDrawerID}\">\n\t\t\t\t\t<slot name=\"placeholder\"></slot>\n\t\t\t\t</schmancy-area>\n\t\t\t</section>\n\t\t`\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-content-drawer-sheet': SchmancyContentDrawerSheet\n\t}\n}\n","import { SchmancyEvents } from '@schmancy/types/events'\nimport { debounceTime, Subject } from 'rxjs'\n\nclass Drawer {\n\tprivate $drawer = new Subject<{\n\t\tself: HTMLElement\n\t\tstate: boolean\n\t}>()\n\tconstructor() {\n\t\tthis.$drawer.pipe(debounceTime(10)).subscribe(data => {\n\t\t\tif (data.state) {\n\t\t\t\twindow.dispatchEvent(\n\t\t\t\t\tnew CustomEvent(SchmancyEvents.NavDrawer_toggle, {\n\t\t\t\t\t\tdetail: {\n\t\t\t\t\t\t\tstate: 'open',\n\t\t\t\t\t\t},\n\t\t\t\t\t\tbubbles: true,\n\t\t\t\t\t\tcomposed: true,\n\t\t\t\t\t}),\n\t\t\t\t)\n\t\t\t} else {\n\t\t\t\twindow.dispatchEvent(\n\t\t\t\t\tnew CustomEvent(SchmancyEvents.NavDrawer_toggle, {\n\t\t\t\t\t\tdetail: {\n\t\t\t\t\t\t\tstate: 'close',\n\t\t\t\t\t\t},\n\t\t\t\t\t\tbubbles: true,\n\t\t\t\t\t\tcomposed: true,\n\t\t\t\t\t}),\n\t\t\t\t)\n\t\t\t}\n\t\t})\n\t}\n\topen(self?: HTMLElement) {\n\t\tthis.$drawer.next({\n\t\t\tself,\n\t\t\tstate: true,\n\t\t})\n\t}\n\tclose(self?: HTMLElement) {\n\t\tthis.$drawer.next({\n\t\t\tself,\n\t\t\tstate: false,\n\t\t})\n\t}\n}\n\nexport const schmancyNavDrawer = new Drawer()\nconst $drawer = schmancyNavDrawer\n\nexport { $drawer }\n","import { createContext } from '@lit/context'\nexport type TSchmancyDrawerNavbarMode = 'push' | 'overlay' | undefined\nexport const SchmancyDrawerNavbarMode = createContext<TSchmancyDrawerNavbarMode>('push')\n\nexport type TSchmancyDrawerNavbarState = 'open' | 'close' | undefined\nexport const SchmancyDrawerNavbarState = createContext<TSchmancyDrawerNavbarState>('close')\n","import { consume } from '@lit/context'\nimport { TailwindElement } from '@mixins/index'\nimport {\n\tSchmancyDrawerNavbarMode,\n\tSchmancyDrawerNavbarState,\n\tTSchmancyDrawerNavbarMode,\n} from '@schmancy/nav-drawer/context'\nimport { css, html } from 'lit'\nimport { customElement, property, state } from 'lit/decorators.js'\nimport { when } from 'lit/directives/when.js'\nimport { SchmancyEvents } from '..'\n\n/**\n * @element schmancy-nav-drawer-appbar\n * @slot toggler - The toggler slot\n * @slot - The default slot\n */\n@customElement('schmancy-nav-drawer-appbar')\nexport class SchmancyDrawerAppbar extends TailwindElement(css`\n\t:host {\n\t\tdisplay: block;\n\t}\n`) {\n\t@consume({ context: SchmancyDrawerNavbarMode, subscribe: true })\n\t@state()\n\tsidebarMode: TSchmancyDrawerNavbarMode\n\n\t@consume({ context: SchmancyDrawerNavbarState, subscribe: true })\n\t@state()\n\tsidebarOpen\n\n\t@property({ type: Boolean }) toggler = true\n\n\trender() {\n\t\tconst appbarClasses = {\n\t\t\t'block z-50': true,\n\t\t}\n\t\tconst sidebarToggler = {\n\t\t\t'block left-3 z-50': this.sidebarMode === 'overlay',\n\t\t\thidden: this.sidebarMode === 'push',\n\t\t}\n\t\treturn html`\n\t\t\t<schmancy-grid\n\t\t\t\tcols=${this.sidebarMode === 'overlay' && this.toggler ? 'auto 1fr' : '1fr'}\n\t\t\t\tflow=\"col\"\n\t\t\t\tclass=${this.classMap(appbarClasses)}\n\t\t\t\tgap=\"sm\"\n\t\t\t\talign=\"center\"\n\t\t\t>\n\t\t\t\t${when(\n\t\t\t\t\tthis.sidebarMode === 'overlay' && this.toggler,\n\t\t\t\t\t() =>\n\t\t\t\t\t\thtml`<slot name=\"toggler\">\n\t\t\t\t\t\t\t<div class=\"${this.classMap(sidebarToggler)}\">\n\t\t\t\t\t\t\t\t<schmancy-icon-button\n\t\t\t\t\t\t\t\t\t@click=${() => {\n\t\t\t\t\t\t\t\t\t\tthis.dispatchEvent(\n\t\t\t\t\t\t\t\t\t\t\tnew CustomEvent(SchmancyEvents.NavDrawer_toggle, {\n\t\t\t\t\t\t\t\t\t\t\t\tdetail: { state: this.sidebarOpen === 'open' ? 'close' : 'open' },\n\t\t\t\t\t\t\t\t\t\t\t\tbubbles: true,\n\t\t\t\t\t\t\t\t\t\t\t\tcomposed: true,\n\t\t\t\t\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t${when(\n\t\t\t\t\t\t\t\t\t\tthis.sidebarOpen === 'close',\n\t\t\t\t\t\t\t\t\t\t() => html`menu`,\n\t\t\t\t\t\t\t\t\t\t() => html`menu_open`,\n\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t</schmancy-icon-button>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</slot>`,\n\t\t\t\t)}\n\n\t\t\t\t<slot> </slot>\n\t\t\t</schmancy-grid>\n\t\t`\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-nav-drawer-appbar': SchmancyDrawerAppbar\n\t}\n}\n","import { $LitElement } from '@mixins/index'\nimport { css, html } from 'lit'\nimport { customElement } from 'lit/decorators.js'\nimport { fromEvent, takeUntil } from 'rxjs'\n\n@customElement('schmancy-nav-drawer-content')\nexport class SchmancyNavigationDrawerContent extends $LitElement(css`\n\t:host {\n\t\tdisplay: block;\n\t\tposition: relative;\n\t\tinset: 0;\n\t\toverflow-y: auto;\n\t}\n`) {\n\tconnectedCallback(): void {\n\t\tsuper.connectedCallback()\n\t\tfromEvent(this, 'scroll')\n\t\t\t.pipe(takeUntil(this.disconnecting))\n\t\t\t.subscribe(e => {\n\t\t\t\tthis.parentElement.dispatchEvent(new CustomEvent('scroll', { detail: e, bubbles: true, composed: true }))\n\t\t\t})\n\t}\n\trender() {\n\t\treturn html` <slot></slot> `\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-nav-drawer-content': SchmancyNavigationDrawerContent\n\t}\n}\n","import { provide } from '@lit/context'\nimport { $LitElement } from '@mixins/index'\nimport { css, html, nothing } from 'lit'\nimport { customElement, property, state } from 'lit/decorators.js'\nimport { debounceTime, distinctUntilChanged, fromEvent, map, takeUntil, tap } from 'rxjs'\nimport { SchmancyEvents } from '..'\nimport { fullHeight } from './../directives/height'\nimport {\n\tSchmancyDrawerNavbarMode,\n\tSchmancyDrawerNavbarState,\n\tTSchmancyDrawerNavbarMode,\n\tTSchmancyDrawerNavbarState,\n} from './context'\n\n/**\n * @element schmancy-nav-drawer\n * @slot appbar - The appbar slot\n * @slot - The content slot\n */\n@customElement('schmancy-nav-drawer')\nexport class SchmancyNavigationDrawer extends $LitElement(css`\n\t:host {\n\t\tdisplay: flex;\n\t\tflex-grow: 1;\n\t\toverflow: hidden;\n\t\t/* Initially hide the component until it’s ready */\n\t\tvisibility: hidden;\n\t}\n\t/* Once the component is ready, remove the hidden style */\n\t:host([data-ready]) {\n\t\tvisibility: visible;\n\t}\n`) {\n\t// fullscreen property\n\t@property({ type: Boolean })\n\tfullscreen: boolean = false\n\n\t/**\n\t * The breakpoint for the sidebar based on Tailwind CSS breakpoints.\n\t * Accepts: \"sm\", \"md\", \"lg\", or \"xl\".\n\t *\n\t * The following default values are used:\n\t * - sm: 640px\n\t * - md: 768px (default)\n\t * - lg: 1024px\n\t * - xl: 1280px\n\t *\n\t * @attr breakpoint\n\t * @type {\"sm\" | \"md\" | \"lg\" | \"xl\"}\n\t */\n\t@property({ type: String, attribute: 'breakpoint' })\n\tbreakpoint: 'sm' | 'md' | 'lg' | 'xl' = 'md'\n\n\t/**\n\t * Mapping of Tailwind breakpoint tokens to their numeric pixel values.\n\t */\n\tprivate static BREAKPOINTS: Record<'sm' | 'md' | 'lg' | 'xl', number> = {\n\t\tsm: 640,\n\t\tmd: 768,\n\t\tlg: 1024,\n\t\txl: 1280,\n\t}\n\n\t/**\n\t * The mode of the sidebar.\n\t */\n\t@provide({ context: SchmancyDrawerNavbarMode })\n\t@state()\n\tmode: TSchmancyDrawerNavbarMode\n\n\t/**\n\t * The open/close state of the sidebar.\n\t */\n\t@provide({ context: SchmancyDrawerNavbarState })\n\t@property()\n\topen: TSchmancyDrawerNavbarState\n\n\t/**\n\t * A flag indicating that the initial state has been set.\n\t */\n\t@state()\n\tprivate _initialized = false\n\n\t/**\n\t * In firstUpdated, we can safely read attribute-set properties.\n\t * We also initialize our state and subscribe to events.\n\t */\n\tfirstUpdated() {\n\t\t// Set the initial state based on the current window width.\n\t\tthis.updateState(window.innerWidth)\n\t\t// Mark the component as ready\n\t\tthis._initialized = true\n\t\tthis.setAttribute('data-ready', '')\n\n\t\t// Subscribe to window resize events.\n\t\tfromEvent(window, 'resize')\n\t\t\t.pipe(\n\t\t\t\t// Extract the inner width.\n\t\t\t\tmap(event => (event.target as Window).innerWidth),\n\t\t\t\t// Determine if we're above the breakpoint.\n\t\t\t\tmap(width => width >= SchmancyNavigationDrawer.BREAKPOINTS[this.breakpoint]),\n\t\t\t\tdistinctUntilChanged(),\n\t\t\t\tdebounceTime(100),\n\t\t\t\ttakeUntil(this.disconnecting),\n\t\t\t)\n\t\t\t.subscribe(isLargeScreen => {\n\t\t\t\tif (isLargeScreen) {\n\t\t\t\t\tthis.mode = 'push'\n\t\t\t\t\tthis.open = 'open'\n\t\t\t\t} else {\n\t\t\t\t\tthis.mode = 'overlay'\n\t\t\t\t\tthis.open = 'close'\n\t\t\t\t}\n\t\t\t})\n\n\t\t// Listen to the custom toggle event.\n\t\tfromEvent(window, SchmancyEvents.NavDrawer_toggle)\n\t\t\t.pipe(\n\t\t\t\ttap((event: CustomEvent) => {\n\t\t\t\t\tevent.stopPropagation()\n\t\t\t\t}),\n\t\t\t\tmap((event: CustomEvent) => event.detail.state),\n\t\t\t\tdistinctUntilChanged(),\n\t\t\t\ttakeUntil(this.disconnecting),\n\t\t\t\tdebounceTime(10),\n\t\t\t)\n\t\t\t.subscribe(state => {\n\t\t\t\tconsole.log('Received toggle event:', state)\n\t\t\t\t// When in push mode, ignore a request to close the sidebar.\n\t\t\t\tif (this.mode === 'push' && state === 'close') return\n\t\t\t\tthis.open = state\n\t\t\t})\n\t}\n\n\t/**\n\t * Helper method to update state based on a given width.\n\t */\n\tprivate updateState(width: number) {\n\t\tconst isLargeScreen = width >= SchmancyNavigationDrawer.BREAKPOINTS[this.breakpoint]\n\t\tthis.mode = isLargeScreen ? 'push' : 'overlay'\n\t\tthis.open = isLargeScreen ? 'open' : 'close'\n\t}\n\n\tprotected render() {\n\t\t// Optionally, you can check _initialized here,\n\t\t// but the CSS will already hide the component until it's ready.\n\t\tif (!this._initialized) return nothing\n\n\t\treturn html`\n\t\t\t<schmancy-grid\n\t\t\t\tcols=${this.fullscreen ? '1fr' : 'auto 1fr'}\n\t\t\t\trows=\"1fr\"\n\t\t\t\tflow=\"col\"\n\t\t\t\tjustify=\"stretch\"\n\t\t\t\talign=\"stretch\"\n\t\t\t\t${fullHeight()}\n\t\t\t>\n\t\t\t\t<slot></slot>\n\t\t\t</schmancy-grid>\n\t\t`\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-nav-drawer': SchmancyNavigationDrawer\n\t}\n}\n","import { consume } from '@lit/context'\nimport { $LitElement } from '@mixins/index'\nimport { html } from 'lit'\nimport { customElement, property, query, state } from 'lit/decorators.js'\nimport { SchmancyEvents, SchmancyTheme, color } from '..'\nimport {\n\tSchmancyDrawerNavbarMode,\n\tSchmancyDrawerNavbarState,\n\tTSchmancyDrawerNavbarMode,\n\tTSchmancyDrawerNavbarState,\n} from './context'\n\n// Animation configuration constants.\nconst ANIMATION_EASING = 'cubic-bezier(0.5, 0.01, 0.25, 1)'\nconst OVERLAY_ANIM_DURATION_OPEN = 200\nconst OVERLAY_ANIM_DURATION_CLOSE = 150\nconst NAV_ANIM_DURATION = 200\n\n@customElement('schmancy-nav-drawer-navbar')\nexport class SchmancyNavigationDrawerSidebar extends $LitElement() {\n\t// Consume context values. Renamed from \"state\" to \"drawerState\" to avoid confusion.\n\t@consume({ context: SchmancyDrawerNavbarMode, subscribe: true })\n\t@state()\n\tmode!: TSchmancyDrawerNavbarMode\n\n\t@consume({ context: SchmancyDrawerNavbarState, subscribe: true })\n\t@state()\n\tdrawerState!: TSchmancyDrawerNavbarState\n\n\t@query('#overlay') overlay!: HTMLElement\n\t@query('nav') nav!: HTMLElement\n\n\t@property({ type: String }) width = '320px'\n\t@state() private _initialized = false\n\n\t/**\n\t * firstUpdated()\n\t * Set initial styles based on the current mode and consumed state.\n\t */\n\tfirstUpdated() {\n\t\tif (this.mode === 'overlay') {\n\t\t\tif (this.drawerState === 'close') {\n\t\t\t\tthis.nav.style.transform = 'translateX(-100%)'\n\t\t\t\tthis.overlay.style.display = 'none'\n\t\t\t} else if (this.drawerState === 'open') {\n\t\t\t\tthis.nav.style.transform = 'translateX(0)'\n\t\t\t\tthis.overlay.style.display = 'block'\n\t\t\t\tthis.overlay.style.opacity = '0.4'\n\t\t\t}\n\t\t} else if (this.mode === 'push') {\n\t\t\t// In push mode, the nav is always visible and the overlay hidden.\n\t\t\tthis.nav.style.transform = 'translateX(0)'\n\t\t\tthis.overlay.style.display = 'none'\n\t\t}\n\t\tthis._initialized = true\n\t}\n\n\t/**\n\t * updated()\n\t * Trigger animations when either the consumed mode or state changes.\n\t */\n\tupdated(changedProperties: Map<string, any>) {\n\t\tconsole.log(this._initialized, changedProperties)\n\t\tif (!this._initialized) return\n\n\t\tif (changedProperties.has('drawerState') || changedProperties.has('mode')) {\n\t\t\tconsole.log('State updated:', this.drawerState, this.mode)\n\t\t\tif (this.mode === 'overlay') {\n\t\t\t\tif (this.drawerState === 'open') {\n\t\t\t\t\t// Animate only if the nav isn’t already open.\n\t\t\t\t\tif (this.nav.style.transform !== 'translateX(0)') {\n\t\t\t\t\t\tthis.openOverlay()\n\t\t\t\t\t\tthis.showNavDrawer()\n\t\t\t\t\t}\n\t\t\t\t} else if (this.drawerState === 'close') {\n\t\t\t\t\tconsole.log(this.nav.style.transform)\n\t\t\t\t\tif (this.nav.style.transform !== 'translateX(-100%)') {\n\t\t\t\t\t\tthis.hideNavDrawer()\n\t\t\t\t\t\tthis.closeOverlay()\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else if (this.mode === 'push') {\n\t\t\t\tif (this.nav.style.transform !== 'translateX(0)') {\n\t\t\t\t\tthis.showNavDrawer()\n\t\t\t\t}\n\t\t\t\tif (this.overlay.style.display !== 'none') {\n\t\t\t\t\tthis.closeOverlay()\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Animate the overlay to fade in.\n\t */\n\topenOverlay() {\n\t\tthis.overlay.style.display = 'block'\n\t\tthis.overlay.animate([{ opacity: 0 }, { opacity: 0.4 }], {\n\t\t\tduration: OVERLAY_ANIM_DURATION_OPEN,\n\t\t\teasing: ANIMATION_EASING,\n\t\t\tfill: 'forwards',\n\t\t})\n\t}\n\n\t/**\n\t * Animate the overlay to fade out, then hide it.\n\t */\n\tcloseOverlay() {\n\t\tconst animation = this.overlay.animate([{ opacity: 0.4 }, { opacity: 0 }], {\n\t\t\tduration: OVERLAY_ANIM_DURATION_CLOSE,\n\t\t\teasing: ANIMATION_EASING,\n\t\t\tfill: 'forwards',\n\t\t})\n\t\tanimation.onfinish = () => {\n\t\t\tthis.overlay.style.display = 'none'\n\t\t}\n\t}\n\tshowNavDrawer() {\n\t\t// Use computed style if needed, but here we directly update inline style after animation.\n\t\tconst animation = this.nav.animate([{ transform: 'translateX(-100%)' }, { transform: 'translateX(0)' }], {\n\t\t\tduration: NAV_ANIM_DURATION,\n\t\t\teasing: ANIMATION_EASING,\n\t\t\tfill: 'forwards',\n\t\t})\n\t\tanimation.onfinish = () => {\n\t\t\tthis.nav.style.transform = 'translateX(0)'\n\t\t}\n\t}\n\n\thideNavDrawer() {\n\t\tconst animation = this.nav.animate([{ transform: 'translateX(0)' }, { transform: 'translateX(-100%)' }], {\n\t\t\tduration: NAV_ANIM_DURATION,\n\t\t\teasing: ANIMATION_EASING,\n\t\t\tfill: 'forwards',\n\t\t})\n\t\tanimation.onfinish = () => {\n\t\t\tthis.nav.style.transform = 'translateX(-100%)'\n\t\t}\n\t}\n\n\t/**\n\t * Handle overlay click events by dispatching a custom event\n\t * to close the navigation drawer.\n\t */\n\tprivate handleOverlayClick() {\n\t\twindow.dispatchEvent(\n\t\t\tnew CustomEvent(SchmancyEvents.NavDrawer_toggle, {\n\t\t\t\tdetail: { state: 'close' },\n\t\t\t\tbubbles: true,\n\t\t\t\tcomposed: true,\n\t\t\t}),\n\t\t)\n\t}\n\n\tprotected render() {\n\t\tconst sidebarClasses = {\n\t\t\t'p-[16px] max-w-[360px] w-fit h-full overflow-auto': true,\n\t\t\tblock: this.mode === 'push',\n\t\t\t'fixed inset-0 z-50': this.mode === 'overlay',\n\t\t}\n\t\tconst overlayClass = {\n\t\t\t'fixed inset-0 z-49 hidden': true,\n\t\t}\n\t\tconst styleMap = {\n\t\t\twidth: this.width,\n\t\t}\n\n\t\treturn html`\n\t\t\t<nav\n\t\t\t\tstyle=${this.styleMap(styleMap)}\n\t\t\t\tclass=\"${this.classMap({ ...sidebarClasses })}\"\n\t\t\t\t${color({\n\t\t\t\t\tbgColor: SchmancyTheme.sys.color.surface.container,\n\t\t\t\t})}\n\t\t\t>\n\t\t\t\t<slot></slot>\n\t\t\t</nav>\n\t\t\t<div\n\t\t\t\tid=\"overlay\"\n\t\t\t\t${color({\n\t\t\t\t\tbgColor: SchmancyTheme.sys.color.scrim,\n\t\t\t\t})}\n\t\t\t\t@click=${this.handleOverlayClick}\n\t\t\t\tclass=\"${this.classMap({ ...overlayClass })}\"\n\t\t\t></div>\n\t\t`\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-nav-drawer-navbar': SchmancyNavigationDrawerSidebar\n\t}\n}\n","import { bufferTime, concatMap, filter, fromEvent, map, of, Subject, take, tap, timeout, zip } from 'rxjs'\nimport { SchmancyTeleportation } from './teleport.component'\n\nexport type WhereAreYouRickyEvent = CustomEvent<{\n\tid: string\n\tcallerID: number\n}>\n\nexport const WhereAreYouRicky = 'whereAreYouRicky'\n\nexport type HereMortyEvent = CustomEvent<{\n\tcomponent: SchmancyTeleportation\n}>\n\nexport type FLIP_REQUEST = {\n\tfrom: {\n\t\trect: DOMRect\n\t\telement?: HTMLElement\n\t}\n\tto: {\n\t\trect: DOMRect\n\t\telement: HTMLElement\n\t}\n\tstagger?: number\n\thost: HTMLElement\n}\nexport const HereMorty = 'hereMorty'\n\nclass Teleportation {\n\tactiveTeleportations = new Map<string, DOMRect>()\n\tflipRequests = new Subject<FLIP_REQUEST>()\n\n\tconstructor() {\n\t\tthis.flipRequests\n\t\t\t.pipe(\n\t\t\t\tbufferTime(1),\n\t\t\t\tmap(requests =>\n\t\t\t\t\trequests.map(({ from, to, host }, i) => ({\n\t\t\t\t\t\tfrom,\n\t\t\t\t\t\tto,\n\t\t\t\t\t\thost,\n\t\t\t\t\t\ti,\n\t\t\t\t\t})),\n\t\t\t\t),\n\t\t\t\tconcatMap(requests => zip(requests.map(request => of(this.flip(request))))),\n\t\t\t)\n\t\t\t.subscribe()\n\t}\n\n\tfind = (component: SchmancyTeleportation) => {\n\t\treturn zip([\n\t\t\tfromEvent<HereMortyEvent>(window, HereMorty).pipe(\n\t\t\t\tfilter(\n\t\t\t\t\te =>\n\t\t\t\t\t\t!!e.detail.component.uuid &&\n\t\t\t\t\t\t!!component.id &&\n\t\t\t\t\t\te.detail.component.id === component.id &&\n\t\t\t\t\t\te.detail.component.uuid !== component.uuid,\n\t\t\t\t),\n\t\t\t\tmap(e => e.detail.component),\n\t\t\t\ttake(1),\n\t\t\t),\n\t\t\tof(component).pipe(\n\t\t\t\ttap(() => {\n\t\t\t\t\twindow.dispatchEvent(\n\t\t\t\t\t\tnew CustomEvent<WhereAreYouRickyEvent['detail']>(WhereAreYouRicky, {\n\t\t\t\t\t\t\tdetail: {\n\t\t\t\t\t\t\t\tid: component.id,\n\t\t\t\t\t\t\t\tcallerID: component.uuid,\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]).pipe(\n\t\t\tmap(([component]) => component),\n\t\t\ttimeout(0),\n\t\t)\n\t}\n\n\tflip = (request: {\n\t\tfrom: {\n\t\t\trect: DOMRect\n\t\t}\n\t\tto: {\n\t\t\telement: HTMLElement\n\t\t\trect: DOMRect\n\t\t}\n\t\thost: HTMLElement\n\t\ti: number\n\t}) => {\n\t\tconst { from, to } = request\n\n\t\t// Prepare the element for animation\n\t\tconst originalZIndex = to.element.style.zIndex\n\t\tto.element.style.transformOrigin = 'top left'\n\t\tto.element.style.setProperty('visibility', 'visible')\n\t\tto.element.style.zIndex = '1000'\n\n\t\t// \"onBegin\" logic goes here (since Web Animations doesn't have onBegin).\n\t\t// If you had more logic, place it here:\n\t\t// e.g., console.log('Starting FLIP animation...');\n\n\t\t// Calculate starting and ending transforms\n\t\tconst startX = from.rect.left - to.rect.left\n\t\tconst startY = from.rect.top - to.rect.top\n\t\tconst startScaleX = from.rect.width / to.rect.width\n\t\tconst startScaleY = from.rect.height / to.rect.height\n\n\t\t// Create keyframes\n\t\tconst keyframes: Keyframe[] = [\n\t\t\t{\n\t\t\t\ttransform: `translate(${startX}px, ${startY}px) scale(${startScaleX}, ${startScaleY})`,\n\t\t\t},\n\t\t\t{\n\t\t\t\ttransform: 'translate(0, 0) scale(1, 1)',\n\t\t\t},\n\t\t]\n\n\t\t// Use native Web Animations API\n\t\tconst animation = to.element.animate(keyframes, {\n\t\t\tduration: 250,\n\t\t\tdelay: 10, // if desired\n\t\t\t// Approximate 'inOutQuad' via a cubic-bezier easing.\n\t\t\t// You can adjust these values to taste, or use a standard one:\n\t\t\teasing: 'cubic-bezier(0.455, 0.03, 0.515, 0.955)',\n\t\t\t// or simply 'ease-in-out'\n\t\t})\n\n\t\t// \"onComplete\" logic goes here\n\t\tanimation.onfinish = () => {\n\t\t\tto.element.style.zIndex = originalZIndex\n\t\t\tto.element.style.transformOrigin = ''\n\t\t\t// If you have additional cleanup, place it here\n\t\t\t// e.g., console.log('FLIP animation completed!');\n\t\t}\n\t}\n}\n\nexport const teleport = new Teleportation()\nexport default teleport\n","import { Observable, interval } from 'rxjs'\nimport { distinctUntilChanged, map, take } from 'rxjs/operators'\n\n// Function to monitor element's bounding client rect\nexport function watchElementRect(element: Element): Observable<DOMRectReadOnly> {\n\treturn interval(50).pipe(\n\t\t// startWith(true),\n\t\tmap(() => element.getBoundingClientRect()),\n\t\tdistinctUntilChanged(\n\t\t\t(prev, curr) =>\n\t\t\t\tprev.width === curr.width &&\n\t\t\t\tprev.height === curr.height &&\n\t\t\t\tprev.top === curr.top &&\n\t\t\t\tprev.right === curr.right &&\n\t\t\t\tprev.bottom === curr.bottom &&\n\t\t\t\tprev.left === curr.left,\n\t\t),\n\t\ttake(1),\n\t)\n}\n","import { css, html } from 'lit'\nimport { customElement, property } from 'lit/decorators.js'\nimport { filter, fromEvent, merge, of, takeUntil, tap, throwIfEmpty } from 'rxjs'\nimport { FINDING_MORTIES, FINDING_MORTIES_EVENT, HERE_RICKY, HERE_RICKY_EVENT } from '..'\nimport {\n\tHereMorty,\n\tHereMortyEvent,\n\tWhereAreYouRicky,\n\tWhereAreYouRickyEvent,\n\tdefault as teleport,\n\tdefault as teleportationService,\n} from './teleport.service'\nimport { watchElementRect } from './watcher'\nimport { $LitElement } from '@mixins/index'\n@customElement('schmancy-teleport')\nexport class SchmancyTeleportation extends $LitElement(css``) {\n\t/**\n\t * @attr {string} uuid - The component tag to teleport\n\t * @readonly\n\t */\n\t@property({ type: Number, reflect: true }) uuid = Math.floor(Math.random() * Date.now())\n\n\t/**\n\t * @attr {string} id - The component tag to teleport\n\t * @required\n\t */\n\t@property({ type: String }) id!: string\n\n\t@property({ type: Number }) delay = 0\n\n\tdebugging = import.meta.env.DEV ? true : false\n\n\tget _slottedChildren() {\n\t\tconst slot = this.shadowRoot.querySelector('slot')\n\t\treturn slot.assignedElements({ flatten: true })\n\t}\n\n\tconnectedCallback(): void {\n\t\tif (this.id === undefined) throw new Error('id is required')\n\t\tsuper.connectedCallback()\n\t\tmerge(\n\t\t\tfromEvent<FINDING_MORTIES_EVENT>(window, FINDING_MORTIES).pipe(\n\t\t\t\ttap({\n\t\t\t\t\tnext: () => {\n\t\t\t\t\t\tthis.dispatchEvent(\n\t\t\t\t\t\t\tnew CustomEvent<HERE_RICKY_EVENT['detail']>(HERE_RICKY, {\n\t\t\t\t\t\t\t\tdetail: {\n\t\t\t\t\t\t\t\t\tcomponent: this,\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\tbubbles: true,\n\t\t\t\t\t\t\t\tcomposed: true,\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\tfromEvent<WhereAreYouRickyEvent>(window, WhereAreYouRicky).pipe(\n\t\t\t\ttap({\n\t\t\t\t\tnext: e => {\n\t\t\t\t\t\tif (e.detail.id === this.id && this.uuid && e.detail.callerID !== this.uuid) {\n\t\t\t\t\t\t\tthis.dispatchEvent(\n\t\t\t\t\t\t\t\tnew CustomEvent<HereMortyEvent['detail']>(HereMorty, {\n\t\t\t\t\t\t\t\t\tdetail: {\n\t\t\t\t\t\t\t\t\t\tcomponent: this,\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\tbubbles: true,\n\t\t\t\t\t\t\t\t\tcomposed: true,\n\t\t\t\t\t\t\t\t}),\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)\n\t\t\t.pipe(takeUntil(this.disconnecting))\n\t\t\t.subscribe()\n\t}\n\n\tasync firstUpdated() {\n\t\tof(teleportationService.activeTeleportations.get(this.id))\n\t\t\t.pipe(\n\t\t\t\tfilter(a => !!a),\n\t\t\t\ttakeUntil(this.disconnecting),\n\t\t\t\tthrowIfEmpty(),\n\t\t\t)\n\t\t\t.subscribe({\n\t\t\t\tnext: domRect => {\n\t\t\t\t\tconsole.count('teleport')\n\t\t\t\t\tthis.style.setProperty('visibility', 'hidden')\n\t\t\t\t\t// teleport.flipRequests.next({ from: component, to: this, stagger: 0 })\n\t\t\t\t\twatchElementRect(this)\n\t\t\t\t\t\t.pipe(takeUntil(this.disconnecting))\n\t\t\t\t\t\t.subscribe({\n\t\t\t\t\t\t\tnext: e => {\n\t\t\t\t\t\t\t\t// console.log(e)\n\t\t\t\t\t\t\t\tteleportationService.activeTeleportations.set(this.id, e)\n\t\t\t\t\t\t\t\tteleport.flipRequests.next({\n\t\t\t\t\t\t\t\t\tfrom: {\n\t\t\t\t\t\t\t\t\t\trect: domRect,\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\tto: {\n\t\t\t\t\t\t\t\t\t\trect: e,\n\t\t\t\t\t\t\t\t\t\telement: this._slottedChildren[0] as HTMLElement,\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\thost: this,\n\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t})\n\t\t\t\t},\n\t\t\t\terror: () => {\n\t\t\t\t\tthis.style.setProperty('visibility', 'visible')\n\t\t\t\t\twatchElementRect(this)\n\t\t\t\t\t\t.pipe(takeUntil(this.disconnecting))\n\t\t\t\t\t\t.subscribe({\n\t\t\t\t\t\t\tnext: e => {\n\t\t\t\t\t\t\t\tconsole.log(e)\n\t\t\t\t\t\t\t\tteleportationService.activeTeleportations.set(this.id, e)\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t})\n\t\t\t\t},\n\t\t\t\tcomplete: () => {},\n\t\t\t})\n\t}\n\n\trender() {\n\t\treturn html`<slot></slot>`\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-teleport': SchmancyTeleportation\n\t}\n}\n","import { $LitElement } from '@mixins/index'\nimport { html } from 'lit'\nimport { customElement, property } from 'lit/decorators.js'\nimport { color } from '@schmancy/directives'\nimport { SchmancyTheme } from '@schmancy/theme/theme.interface'\n\nexport type AvatarSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl'\nexport type AvatarColor = 'primary' | 'secondary' | 'tertiary' | 'success' | 'error' | 'neutral'\nexport type AvatarShape = 'circle' | 'square'\nexport type AvatarStatus = 'online' | 'offline' | 'busy' | 'away' | 'none'\n\n/**\n * A customizable avatar component that displays initials or an icon\n * Designed to match the Schmancy design system\n *\n * @element schmancy-avatar\n *\n * @property {string} initials - Text initials to display (limited to 2 characters)\n * @property {string} src - URL of an image to display\n * @property {string} icon - Name of an icon to display\n * @property {AvatarSize} size - Size of the avatar (xs, sm, md, lg, xl)\n * @property {AvatarColor} color - Color theme of the avatar\n * @property {AvatarShape} shape - Shape of the avatar (circle or square)\n * @property {boolean} bordered - Whether to add a border around the avatar\n * @property {AvatarStatus} status - Optional status indicator to display\n *\n * @example\n * <schmancy-avatar\n * initials=\"JD\"\n * size=\"md\"\n * color=\"primary\"\n * ></schmancy-avatar>\n */\n@customElement('schmancy-avatar')\nexport class SchmancyAvatar extends $LitElement() {\n\t@property({ type: String }) initials: string = ''\n\t@property({ type: String }) src: string = ''\n\t@property({ type: String }) icon: string = ''\n\t@property({ type: String }) size: AvatarSize = 'md'\n\t@property({ type: String }) color: AvatarColor = 'primary'\n\t@property({ type: String }) shape: AvatarShape = 'circle'\n\t@property({ type: Boolean }) bordered: boolean = false\n\t@property({ type: String }) status: AvatarStatus = 'none'\n\n\trender() {\n\t\t// Determine content to display (image, initials, or icon)\n\t\tlet content\n\t\tif (this.src) {\n\t\t\tcontent = html`<img class=\"w-full h-full object-cover\" src=\"${this.src}\" alt=\"Avatar\" />`\n\t\t} else if (this.initials) {\n\t\t\tcontent = html`<span class=\"text-center font-medium\">${this.initials.substring(0, 2).toUpperCase()}</span>`\n\t\t} else if (this.icon) {\n\t\t\tcontent = html`<schmancy-icon>${this.icon}</schmancy-icon>`\n\t\t} else {\n\t\t\tcontent = html`<schmancy-icon>person</schmancy-icon>`\n\t\t}\n\n\t\t// Size classes\n\t\tconst sizeClasses = {\n\t\t\txs: 'w-6 h-6 text-xs',\n\t\t\tsm: 'w-8 h-8 text-sm',\n\t\t\tmd: 'w-10 h-10 text-base',\n\t\t\tlg: 'w-12 h-12 text-lg',\n\t\t\txl: 'w-16 h-16 text-xl',\n\t\t}\n\n\t\t// Shape classes\n\t\tconst shapeClasses = {\n\t\t\tcircle: 'rounded-full',\n\t\t\tsquare: 'rounded-md',\n\t\t}\n\n\t\t// Combine classes\n\t\tconst avatarClasses = {\n\t\t\t'relative flex items-center justify-center overflow-hidden': true,\n\t\t\t[sizeClasses[this.size]]: true,\n\t\t\t[shapeClasses[this.shape]]: true,\n\t\t\t'border-2 border-surface-container': this.bordered,\n\t\t}\n\n\t\t// Get theme colors\n\t\tconst colorAttrs = this.getColorAttributes()\n\n\t\treturn html`\n\t\t\t<div class=\"${this.classMap(avatarClasses)}\" ${colorAttrs}>\n\t\t\t\t${content} ${this.status !== 'none' ? this.renderStatusIndicator() : ''}\n\t\t\t</div>\n\t\t`\n\t}\n\n\tprivate getColorAttributes() {\n\t\tconst colorMap = {\n\t\t\tprimary: {\n\t\t\t\tbgColor: SchmancyTheme.sys.color.primary.container,\n\t\t\t\tcolor: SchmancyTheme.sys.color.primary.onContainer,\n\t\t\t},\n\t\t\tsecondary: {\n\t\t\t\tbgColor: SchmancyTheme.sys.color.secondary.container,\n\t\t\t\tcolor: SchmancyTheme.sys.color.secondary.onContainer,\n\t\t\t},\n\t\t\ttertiary: {\n\t\t\t\tbgColor: SchmancyTheme.sys.color.tertiary.container,\n\t\t\t\tcolor: SchmancyTheme.sys.color.tertiary.onContainer,\n\t\t\t},\n\t\t\tsuccess: {\n\t\t\t\tbgColor: SchmancyTheme.sys.color.success.container,\n\t\t\t\tcolor: SchmancyTheme.sys.color.success.onContainer,\n\t\t\t},\n\t\t\terror: {\n\t\t\t\tbgColor: SchmancyTheme.sys.color.error.container,\n\t\t\t\tcolor: SchmancyTheme.sys.color.error.onContainer,\n\t\t\t},\n\t\t\tneutral: {\n\t\t\t\tbgColor: SchmancyTheme.sys.color.surface.container,\n\t\t\t\tcolor: SchmancyTheme.sys.color.surface.on,\n\t\t\t},\n\t\t}\n\n\t\treturn color(colorMap[this.color])\n\t}\n\n\tprivate renderStatusIndicator() {\n\t\tconst statusColors = {\n\t\t\tonline: SchmancyTheme.sys.color.success.default,\n\t\t\toffline: SchmancyTheme.sys.color.surface.onVariant,\n\t\t\tbusy: SchmancyTheme.sys.color.error.default,\n\t\t\taway: SchmancyTheme.sys.color.tertiary.default,\n\t\t}\n\n\t\tconst sizeMap = {\n\t\t\txs: 'w-1.5 h-1.5',\n\t\t\tsm: 'w-2 h-2',\n\t\t\tmd: 'w-2.5 h-2.5',\n\t\t\tlg: 'w-3 h-3',\n\t\t\txl: 'w-4 h-4',\n\t\t}\n\n\t\tconst statusClasses = {\n\t\t\t'absolute bottom-0 right-0 rounded-full border-2 border-surface-default': true,\n\t\t\t[sizeMap[this.size]]: true,\n\t\t}\n\n\t\treturn html`\n\t\t\t<div class=\"${this.classMap(statusClasses)}\" style=\"background-color: ${statusColors[this.status]};\"></div>\n\t\t`\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-avatar': SchmancyAvatar\n\t}\n}\n"],"names":["SchmancyBadgeV2","TailwindElement","css","super","arguments","this","color","size","shape","outlined","icon","pulse","getSizeClasses","getIconSize","styles","letterSpacing","fontWeight","primary","bg","SchmancyTheme","sys","container","default","text","onContainer","border","surface","highest","secondary","tertiary","success","bright","warning","error","neutral","high","outline","on","sizeClasses","shapeClasses","getShapeClasses","colorStyles","getColorStyles","iconSize","exoticStyles","getExoticStyles","badgeClasses","shadow","borderColor","transition","backdropFilter","borderWidth","boxShadow","html","classMap","styleMap","bgColor","__decorateClass","property","type","String","reflect","prototype","Boolean","customElement","SchmancyCardMedia","SchmancyCard","constructor","elevation","classes","includes","Number","SchmancyCardContent","render","onSurface","onSurfaceVariant","onVariant","src","fit","height","schmancyContentDrawer","$drawer","Subject","pipe","subscribe","data","action","ref","dispatchEvent","CustomEvent","SchmancyEvents","ContentDrawerToggle","detail","state","bubbles","composed","component","title","next","s","SchmancyContentDrawerSheetMode","createContext","SchmancyContentDrawerSheetState","SchmancyContentDrawerID","Math","floor","random","Date","now","toString","SchmancyContentDrawerMaxHeight","SchmancyContentDrawerMinWidth","SchmancyContentDrawer","$LitElement","minWidth","main","sheet","schmancyContentDrawerID","maxHeight","merge","fromEvent","window","ContentDrawerResize","startWith","tap","map","clientWidth","innerWidth","width","debounceTime","innerHeight","getOffsetTop","style","setProperty","distinctUntilChanged","takeUntil","disconnecting","lgScreen","mode","open","event","stopPropagation","area","push","historyStrategy","uid","element","offsetTop","offsetParent","nothing","provide","context","queryAssignedElements","flatten","SchmancyContentDrawerMain","connectedCallback","drawerMinWidth","changedProperties","update","has","when","consume","SchmancyContentDrawerSheet","updated","closeAll","dismiss","position","display","animate","opacity","transform","duration","easing","from","closeModalSheet","closeSheet","of","Observable","observer","onfinish","complete","sheetClasses","block","query","slot","schmancyNavDrawer","NavDrawer_toggle","self","SchmancyDrawerNavbarMode","SchmancyDrawerNavbarState","SchmancyDrawerAppbar","toggler","sidebarToggler","sidebarMode","hidden","sidebarOpen","SchmancyNavigationDrawerContent","e","parentElement","SchmancyNavigationDrawer","fullscreen","breakpoint","_initialized","firstUpdated","updateState","setAttribute","target","BREAKPOINTS","isLargeScreen","fullHeight","sm","md","lg","xl","attribute","ANIMATION_EASING","SchmancyNavigationDrawerSidebar","drawerState","nav","overlay","openOverlay","showNavDrawer","hideNavDrawer","closeOverlay","fill","handleOverlayClick","sidebarClasses","scrim","WhereAreYouRicky","HereMorty","teleport","activeTeleportations","Map","flipRequests","find","zip","filter","uuid","id","take","callerID","timeout","flip","request","to","originalZIndex","zIndex","transformOrigin","keyframes","rect","left","top","delay","bufferTime","requests","host","i","concatMap","watchElementRect","interval","getBoundingClientRect","prev","curr","right","bottom","SchmancyTeleportation","debugging","shadowRoot","querySelector","assignedElements","Error","FINDING_MORTIES","HERE_RICKY","teleportationService","get","a","throwIfEmpty","domRect","set","_slottedChildren","SchmancyAvatar","initials","bordered","status","content","substring","toUpperCase","avatarClasses","xs","circle","square","colorAttrs","getColorAttributes","renderStatusIndicator","colorMap","statusColors","online","offline","busy","away","statusClasses"],"mappings":"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"}