@mhmo91/schmancy 0.4.23 → 0.4.24

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (301) hide show
  1. package/ai/select.md +35 -0
  2. package/ai/sheet.md +422 -85
  3. package/ai/tabs.md +186 -63
  4. package/dist/ai/select.md +35 -0
  5. package/dist/ai/sheet.md +422 -85
  6. package/dist/ai/tabs.md +186 -63
  7. package/dist/{animated-text-Be4toKE0.cjs → animated-text-BitOmeE1.cjs} +2 -2
  8. package/dist/{animated-text-Be4toKE0.cjs.map → animated-text-BitOmeE1.cjs.map} +1 -1
  9. package/dist/{animated-text-CNPSIIYg.js → animated-text-DcLpvyCq.js} +3 -3
  10. package/dist/{animated-text-CNPSIIYg.js.map → animated-text-DcLpvyCq.js.map} +1 -1
  11. package/dist/animated-text.cjs +1 -1
  12. package/dist/animated-text.js +1 -1
  13. package/dist/area.cjs +1 -1
  14. package/dist/{area.component-YKEQV9hc.cjs → area.component-BTLn3oIv.cjs} +2 -2
  15. package/dist/{area.component-YKEQV9hc.cjs.map → area.component-BTLn3oIv.cjs.map} +1 -1
  16. package/dist/{area.component-i-mmh5is.js → area.component-xbNRrst9.js} +3 -3
  17. package/dist/{area.component-i-mmh5is.js.map → area.component-xbNRrst9.js.map} +1 -1
  18. package/dist/area.js +1 -1
  19. package/dist/{autocomplete-EapOt3ES.js → autocomplete-BqRrw118.js} +3 -3
  20. package/dist/{autocomplete-EapOt3ES.js.map → autocomplete-BqRrw118.js.map} +1 -1
  21. package/dist/{autocomplete-C0EU8KiN.cjs → autocomplete-Dvc06UNM.cjs} +2 -2
  22. package/dist/{autocomplete-C0EU8KiN.cjs.map → autocomplete-Dvc06UNM.cjs.map} +1 -1
  23. package/dist/autocomplete.cjs +1 -1
  24. package/dist/autocomplete.js +1 -1
  25. package/dist/{avatar-D1ojwes6.cjs → avatar-CP5pbPbp.cjs} +12 -18
  26. package/dist/avatar-CP5pbPbp.cjs.map +1 -0
  27. package/dist/{avatar-DzJUPJtZ.js → avatar-Cb_cbT8R.js} +60 -66
  28. package/dist/avatar-Cb_cbT8R.js.map +1 -0
  29. package/dist/badge.cjs +1 -1
  30. package/dist/badge.js +1 -1
  31. package/dist/{boat-DPTS3Kpw.js → boat-ByFTBKD2.js} +2 -2
  32. package/dist/{boat-DPTS3Kpw.js.map → boat-ByFTBKD2.js.map} +1 -1
  33. package/dist/{boat-C59hzqZ0.cjs → boat-Dtum9CaN.cjs} +2 -2
  34. package/dist/{boat-C59hzqZ0.cjs.map → boat-Dtum9CaN.cjs.map} +1 -1
  35. package/dist/boat.cjs +1 -1
  36. package/dist/boat.js +1 -1
  37. package/dist/busy.cjs +1 -1
  38. package/dist/busy.js +1 -1
  39. package/dist/button.cjs +1 -1
  40. package/dist/button.js +1 -1
  41. package/dist/card.cjs +1 -1
  42. package/dist/card.js +1 -1
  43. package/dist/{checkbox-C-kjO37F.cjs → checkbox-220X9LTx.cjs} +2 -2
  44. package/dist/{checkbox-C-kjO37F.cjs.map → checkbox-220X9LTx.cjs.map} +1 -1
  45. package/dist/{checkbox-B85eeKqn.js → checkbox-Dq0Lm3AM.js} +2 -2
  46. package/dist/{checkbox-B85eeKqn.js.map → checkbox-Dq0Lm3AM.js.map} +1 -1
  47. package/dist/checkbox.cjs +1 -1
  48. package/dist/checkbox.js +1 -1
  49. package/dist/{chips-BNRMzGrx.js → chips-aRU1fwEV.js} +3 -3
  50. package/dist/{chips-BNRMzGrx.js.map → chips-aRU1fwEV.js.map} +1 -1
  51. package/dist/{chips-DW6y4ZMs.cjs → chips-jORxgpG7.cjs} +2 -2
  52. package/dist/{chips-DW6y4ZMs.cjs.map → chips-jORxgpG7.cjs.map} +1 -1
  53. package/dist/chips.cjs +1 -1
  54. package/dist/chips.js +1 -1
  55. package/dist/{circular-progress-BridvYCS.cjs → circular-progress-DMccmWrI.cjs} +2 -2
  56. package/dist/{circular-progress-BridvYCS.cjs.map → circular-progress-DMccmWrI.cjs.map} +1 -1
  57. package/dist/{circular-progress-Cl_dXUPO.js → circular-progress-Dis30LMa.js} +3 -3
  58. package/dist/{circular-progress-Cl_dXUPO.js.map → circular-progress-Dis30LMa.js.map} +1 -1
  59. package/dist/circular-progress.cjs +1 -1
  60. package/dist/circular-progress.js +1 -1
  61. package/dist/code-highlight.cjs +1 -1
  62. package/dist/code-highlight.js +1 -1
  63. package/dist/{code-preview-B8X7JaxA.js → code-preview-BwIb73Yd.js} +2 -2
  64. package/dist/{code-preview-B8X7JaxA.js.map → code-preview-BwIb73Yd.js.map} +1 -1
  65. package/dist/{code-preview-B0oGIV9F.cjs → code-preview-CCHcWZvS.cjs} +2 -2
  66. package/dist/{code-preview-B0oGIV9F.cjs.map → code-preview-CCHcWZvS.cjs.map} +1 -1
  67. package/dist/components.cjs +1 -1
  68. package/dist/components.js +1 -1
  69. package/dist/content-drawer.cjs +1 -1
  70. package/dist/content-drawer.js +1 -1
  71. package/dist/{date-range-9sVFbxK0.js → date-range-CA_4vjWe.js} +3 -3
  72. package/dist/{date-range-9sVFbxK0.js.map → date-range-CA_4vjWe.js.map} +1 -1
  73. package/dist/{date-range-DqaB9kwM.cjs → date-range-DinaPWK0.cjs} +2 -2
  74. package/dist/{date-range-DqaB9kwM.cjs.map → date-range-DinaPWK0.cjs.map} +1 -1
  75. package/dist/{date-range-inline-DGRKHzTX.cjs → date-range-inline-CGMvaSeh.cjs} +2 -2
  76. package/dist/{date-range-inline-DGRKHzTX.cjs.map → date-range-inline-CGMvaSeh.cjs.map} +1 -1
  77. package/dist/{date-range-inline-Bqnc8wBb.js → date-range-inline-DFjyAvPv.js} +3 -3
  78. package/dist/{date-range-inline-Bqnc8wBb.js.map → date-range-inline-DFjyAvPv.js.map} +1 -1
  79. package/dist/date-range-inline.cjs +1 -1
  80. package/dist/date-range-inline.js +1 -1
  81. package/dist/date-range.cjs +1 -1
  82. package/dist/date-range.js +1 -1
  83. package/dist/{delay-u5isp6Vb.js → delay-BJwsHbg3.js} +2 -2
  84. package/dist/{delay-u5isp6Vb.js.map → delay-BJwsHbg3.js.map} +1 -1
  85. package/dist/{delay-ClP0gwsX.cjs → delay-CHAH30wI.cjs} +2 -2
  86. package/dist/{delay-ClP0gwsX.cjs.map → delay-CHAH30wI.cjs.map} +1 -1
  87. package/dist/delay.cjs +1 -1
  88. package/dist/delay.js +1 -1
  89. package/dist/{dialog-content-CGgHTvcB.cjs → dialog-content-Bp2kwzxD.cjs} +2 -2
  90. package/dist/{dialog-content-CGgHTvcB.cjs.map → dialog-content-Bp2kwzxD.cjs.map} +1 -1
  91. package/dist/{dialog-content-ZpgRQC1m.js → dialog-content-CEZqJRzH.js} +3 -3
  92. package/dist/{dialog-content-ZpgRQC1m.js.map → dialog-content-CEZqJRzH.js.map} +1 -1
  93. package/dist/dialog.cjs +1 -1
  94. package/dist/dialog.js +1 -1
  95. package/dist/{divider-CIXGsKd7.cjs → divider-BEVgt1wl.cjs} +2 -2
  96. package/dist/{divider-CIXGsKd7.cjs.map → divider-BEVgt1wl.cjs.map} +1 -1
  97. package/dist/{divider-BK4PNB76.js → divider-DfetUf4S.js} +3 -3
  98. package/dist/{divider-BK4PNB76.js.map → divider-DfetUf4S.js.map} +1 -1
  99. package/dist/divider.cjs +1 -1
  100. package/dist/divider.js +1 -1
  101. package/dist/{dropdown-content-CeYUqD56.cjs → dropdown-content-CERnSXjI.cjs} +2 -2
  102. package/dist/{dropdown-content-CeYUqD56.cjs.map → dropdown-content-CERnSXjI.cjs.map} +1 -1
  103. package/dist/{dropdown-content-DbHKYDCS.js → dropdown-content-TJmZ3rpA.js} +3 -3
  104. package/dist/{dropdown-content-DbHKYDCS.js.map → dropdown-content-TJmZ3rpA.js.map} +1 -1
  105. package/dist/dropdown.cjs +1 -1
  106. package/dist/dropdown.js +1 -1
  107. package/dist/extra.cjs +1 -1
  108. package/dist/extra.js +1 -1
  109. package/dist/{flex-Dub7SPI7.cjs → flex-ByanQCYb.cjs} +2 -2
  110. package/dist/{flex-Dub7SPI7.cjs.map → flex-ByanQCYb.cjs.map} +1 -1
  111. package/dist/{flex-JcwYdb2G.js → flex-CXMNh-nH.js} +2 -2
  112. package/dist/{flex-JcwYdb2G.js.map → flex-CXMNh-nH.js.map} +1 -1
  113. package/dist/{form-CMv0SQko.js → form-Boc5Pqhf.js} +2 -2
  114. package/dist/{form-CMv0SQko.js.map → form-Boc5Pqhf.js.map} +1 -1
  115. package/dist/{form-DKF6UgIS.cjs → form-lhQx_Ry0.cjs} +2 -2
  116. package/dist/{form-DKF6UgIS.cjs.map → form-lhQx_Ry0.cjs.map} +1 -1
  117. package/dist/form.cjs +1 -1
  118. package/dist/form.js +1 -1
  119. package/dist/{formField.mixin-D0GeY28y.js → formField.mixin-CX7_nvVy.js} +2 -2
  120. package/dist/{formField.mixin-D0GeY28y.js.map → formField.mixin-CX7_nvVy.js.map} +1 -1
  121. package/dist/{formField.mixin-BrHllh45.cjs → formField.mixin-DhiLSVHT.cjs} +2 -2
  122. package/dist/{formField.mixin-BrHllh45.cjs.map → formField.mixin-DhiLSVHT.cjs.map} +1 -1
  123. package/dist/{icon--s5dpU1N.js → icon-BZw88sCH.js} +2 -2
  124. package/dist/{icon--s5dpU1N.js.map → icon-BZw88sCH.js.map} +1 -1
  125. package/dist/{icon-CJe2TSk1.cjs → icon-D1qw18N6.cjs} +2 -2
  126. package/dist/{icon-CJe2TSk1.cjs.map → icon-D1qw18N6.cjs.map} +1 -1
  127. package/dist/{icon-button-x5uqpaeg.cjs → icon-button-DBvZApEC.cjs} +2 -2
  128. package/dist/{icon-button-x5uqpaeg.cjs.map → icon-button-DBvZApEC.cjs.map} +1 -1
  129. package/dist/{icon-button-Ckd9jE-a.js → icon-button-TbwQrO1b.js} +3 -3
  130. package/dist/{icon-button-Ckd9jE-a.js.map → icon-button-TbwQrO1b.js.map} +1 -1
  131. package/dist/icons.cjs +1 -1
  132. package/dist/icons.js +1 -1
  133. package/dist/index.cjs +1 -1
  134. package/dist/index.js +134 -133
  135. package/dist/{input-DHNBYBq4.js → input-BUtEXu3y.js} +3 -3
  136. package/dist/{input-DHNBYBq4.js.map → input-BUtEXu3y.js.map} +1 -1
  137. package/dist/{input-BN9xQTH0.cjs → input-C0F9cNoD.cjs} +2 -2
  138. package/dist/{input-BN9xQTH0.cjs.map → input-C0F9cNoD.cjs.map} +1 -1
  139. package/dist/input.cjs +1 -1
  140. package/dist/input.js +1 -1
  141. package/dist/layout.cjs +1 -1
  142. package/dist/layout.js +1 -1
  143. package/dist/{list-rGydduh7.js → list-BCD8h2Do.js} +2 -2
  144. package/dist/{list-rGydduh7.js.map → list-BCD8h2Do.js.map} +1 -1
  145. package/dist/{list-DZAZpM5m.cjs → list-Bz6tq7ZP.cjs} +2 -2
  146. package/dist/{list-DZAZpM5m.cjs.map → list-Bz6tq7ZP.cjs.map} +1 -1
  147. package/dist/list.cjs +1 -1
  148. package/dist/list.js +1 -1
  149. package/dist/{litElement.mixin-B1eYYBf4.cjs → litElement.mixin-CII9bbap.cjs} +2 -2
  150. package/dist/{litElement.mixin-B1eYYBf4.cjs.map → litElement.mixin-CII9bbap.cjs.map} +1 -1
  151. package/dist/{litElement.mixin-Cq-COufw.js → litElement.mixin-DGeprHKB.js} +2 -2
  152. package/dist/{litElement.mixin-Cq-COufw.js.map → litElement.mixin-DGeprHKB.js.map} +1 -1
  153. package/dist/{media-hg61JS4R.cjs → media-CBLuAmNZ.cjs} +2 -2
  154. package/dist/{media-hg61JS4R.cjs.map → media-CBLuAmNZ.cjs.map} +1 -1
  155. package/dist/{media-DHgb7H9L.js → media-D6ba0wB1.js} +2 -2
  156. package/dist/{media-DHgb7H9L.js.map → media-D6ba0wB1.js.map} +1 -1
  157. package/dist/{menu-D5aDG-Rp.cjs → menu-BDQr8EZ1.cjs} +2 -2
  158. package/dist/{menu-D5aDG-Rp.cjs.map → menu-BDQr8EZ1.cjs.map} +1 -1
  159. package/dist/{menu-DvZSvoOx.js → menu-C0SauakY.js} +3 -3
  160. package/dist/{menu-DvZSvoOx.js.map → menu-C0SauakY.js.map} +1 -1
  161. package/dist/menu.cjs +1 -1
  162. package/dist/menu.js +1 -1
  163. package/dist/nav-drawer.cjs +1 -1
  164. package/dist/nav-drawer.js +1 -1
  165. package/dist/{notification-service-BzzXjm4l.cjs → notification-service-B1f848tO.cjs} +2 -2
  166. package/dist/{notification-service-BzzXjm4l.cjs.map → notification-service-B1f848tO.cjs.map} +1 -1
  167. package/dist/{notification-service-DKHubhXv.js → notification-service-X8mRASdk.js} +3 -3
  168. package/dist/{notification-service-DKHubhXv.js.map → notification-service-X8mRASdk.js.map} +1 -1
  169. package/dist/notification.cjs +1 -1
  170. package/dist/notification.js +1 -1
  171. package/dist/{option-T6zGawbH.js → option-DVlCqux7.js} +2 -2
  172. package/dist/{option-T6zGawbH.js.map → option-DVlCqux7.js.map} +1 -1
  173. package/dist/{option-DqN5-RK7.cjs → option-ckV22mLf.cjs} +2 -2
  174. package/dist/{option-DqN5-RK7.cjs.map → option-ckV22mLf.cjs.map} +1 -1
  175. package/dist/option.cjs +1 -1
  176. package/dist/option.js +1 -1
  177. package/dist/{payment-card-form-C42icpX4.cjs → payment-card-form-BUsPCZPp.cjs} +2 -2
  178. package/dist/{payment-card-form-C42icpX4.cjs.map → payment-card-form-BUsPCZPp.cjs.map} +1 -1
  179. package/dist/{payment-card-form-GEOaUypQ.js → payment-card-form-D7PV8spa.js} +3 -3
  180. package/dist/{payment-card-form-GEOaUypQ.js.map → payment-card-form-D7PV8spa.js.map} +1 -1
  181. package/dist/{progress-EL16etnw.js → progress-BZ6AFT0f.js} +2 -2
  182. package/dist/{progress-EL16etnw.js.map → progress-BZ6AFT0f.js.map} +1 -1
  183. package/dist/{progress-CL35MIi9.cjs → progress-CABg45XF.cjs} +2 -2
  184. package/dist/{progress-CL35MIi9.cjs.map → progress-CABg45XF.cjs.map} +1 -1
  185. package/dist/progress.cjs +1 -1
  186. package/dist/progress.js +1 -1
  187. package/dist/{radio-button-BQ7snEVj.js → radio-button-D4Y1bWGN.js} +3 -3
  188. package/dist/{radio-button-BQ7snEVj.js.map → radio-button-D4Y1bWGN.js.map} +1 -1
  189. package/dist/{radio-button-DrSJB4B-.cjs → radio-button-DQ4VclEZ.cjs} +2 -2
  190. package/dist/{radio-button-DrSJB4B-.cjs.map → radio-button-DQ4VclEZ.cjs.map} +1 -1
  191. package/dist/radio-group.cjs +1 -1
  192. package/dist/radio-group.js +1 -1
  193. package/dist/{schmancy-steps-container-2WW-9LYL.js → schmancy-steps-container-BskkdQwD.js} +2 -2
  194. package/dist/{schmancy-steps-container-2WW-9LYL.js.map → schmancy-steps-container-BskkdQwD.js.map} +1 -1
  195. package/dist/{schmancy-steps-container-C_HHZFeb.cjs → schmancy-steps-container-CZ0upElE.cjs} +2 -2
  196. package/dist/{schmancy-steps-container-C_HHZFeb.cjs.map → schmancy-steps-container-CZ0upElE.cjs.map} +1 -1
  197. package/dist/select-DfQogfes.cjs +57 -0
  198. package/dist/{select-Bl8FO2kb.js.map → select-DfQogfes.cjs.map} +1 -1
  199. package/dist/{select-Bl8FO2kb.js → select-wui4bIUE.js} +23 -20
  200. package/dist/select-wui4bIUE.js.map +1 -0
  201. package/dist/select.cjs +1 -1
  202. package/dist/select.js +3 -2
  203. package/dist/{selector-hook-DPe2CGKx.js → selector-hook-DL0SIQiY.js} +16 -16
  204. package/dist/{selector-hook-DPe2CGKx.js.map → selector-hook-DL0SIQiY.js.map} +1 -1
  205. package/dist/{sheet-BVr3bq9r.cjs → sheet-DMOsLeJL.cjs} +2 -2
  206. package/dist/{sheet-BVr3bq9r.cjs.map → sheet-DMOsLeJL.cjs.map} +1 -1
  207. package/dist/{sheet-CdcA_ZIk.js → sheet-DmrPnCAk.js} +4 -4
  208. package/dist/{sheet-CdcA_ZIk.js.map → sheet-DmrPnCAk.js.map} +1 -1
  209. package/dist/sheet.cjs +1 -1
  210. package/dist/sheet.js +7 -6
  211. package/dist/{sheet.service-CKznL-dB.js → sheet.service-22gvsyq8.js} +82 -80
  212. package/dist/{sheet.service-CKznL-dB.js.map → sheet.service-22gvsyq8.js.map} +1 -1
  213. package/dist/{sheet.service-D_jE8pUg.cjs → sheet.service-sSYoAEbY.cjs} +3 -3
  214. package/dist/{sheet.service-D_jE8pUg.cjs.map → sheet.service-sSYoAEbY.cjs.map} +1 -1
  215. package/dist/{slider-DX-XUnE-.cjs → slider-C2oEvRAS.cjs} +2 -2
  216. package/dist/{slider-DX-XUnE-.cjs.map → slider-C2oEvRAS.cjs.map} +1 -1
  217. package/dist/{slider-4ggti1yr.js → slider-Dwm1KfNL.js} +3 -3
  218. package/dist/{slider-4ggti1yr.js.map → slider-Dwm1KfNL.js.map} +1 -1
  219. package/dist/slider.cjs +1 -1
  220. package/dist/slider.js +1 -1
  221. package/dist/{spinner-BPqLh7JL.js → spinner-Bh6XkC88.js} +2 -2
  222. package/dist/{spinner-BPqLh7JL.js.map → spinner-Bh6XkC88.js.map} +1 -1
  223. package/dist/{spinner-Cq8tY2xk.cjs → spinner-DKgZemVU.cjs} +2 -2
  224. package/dist/{spinner-Cq8tY2xk.cjs.map → spinner-DKgZemVU.cjs.map} +1 -1
  225. package/dist/steps.cjs +1 -1
  226. package/dist/steps.js +1 -1
  227. package/dist/store.js +1 -1
  228. package/dist/{surface-YyZ8eXfj.cjs → surface-DIIUamff.cjs} +2 -2
  229. package/dist/{surface-YyZ8eXfj.cjs.map → surface-DIIUamff.cjs.map} +1 -1
  230. package/dist/{surface-1xboRERM.js → surface-DhiuAGb8.js} +2 -2
  231. package/dist/{surface-1xboRERM.js.map → surface-DhiuAGb8.js.map} +1 -1
  232. package/dist/surface.cjs +1 -1
  233. package/dist/surface.js +1 -1
  234. package/dist/{table-DpXmflf7.cjs → table-BrAoSQhN.cjs} +2 -2
  235. package/dist/{table-DpXmflf7.cjs.map → table-BrAoSQhN.cjs.map} +1 -1
  236. package/dist/{table-C6EWKqDY.js → table-DSZ9kmUG.js} +2 -2
  237. package/dist/{table-C6EWKqDY.js.map → table-DSZ9kmUG.js.map} +1 -1
  238. package/dist/table.cjs +1 -1
  239. package/dist/table.js +1 -1
  240. package/dist/{tabs-compatibility-AFzKAP2D.js → tabs-compatibility-B7aJnQ0X.js} +2 -2
  241. package/dist/{tabs-compatibility-AFzKAP2D.js.map → tabs-compatibility-B7aJnQ0X.js.map} +1 -1
  242. package/dist/{tabs-compatibility-ThgWuSrK.cjs → tabs-compatibility-Ck74XeID.cjs} +2 -2
  243. package/dist/{tabs-compatibility-ThgWuSrK.cjs.map → tabs-compatibility-Ck74XeID.cjs.map} +1 -1
  244. package/dist/tabs.cjs +1 -1
  245. package/dist/tabs.js +1 -1
  246. package/dist/tailwind.mixin-CBu1BEQZ.cjs +2 -0
  247. package/dist/{tailwind.mixin-DNME2oUL.cjs.map → tailwind.mixin-CBu1BEQZ.cjs.map} +1 -1
  248. package/dist/tailwind.mixin-DWhCm94g.js +43 -0
  249. package/dist/{tailwind.mixin-epCxS6FK.js.map → tailwind.mixin-DWhCm94g.js.map} +1 -1
  250. package/dist/teleport.cjs +1 -1
  251. package/dist/teleport.js +1 -1
  252. package/dist/{textarea-JO7OVdfk.js → textarea-Bq0XdGaH.js} +2 -2
  253. package/dist/{textarea-JO7OVdfk.js.map → textarea-Bq0XdGaH.js.map} +1 -1
  254. package/dist/{textarea-B_TlKSop.cjs → textarea-CGTMdhoF.cjs} +2 -2
  255. package/dist/{textarea-B_TlKSop.cjs.map → textarea-CGTMdhoF.cjs.map} +1 -1
  256. package/dist/textarea.cjs +1 -1
  257. package/dist/textarea.js +1 -1
  258. package/dist/{theme-button-DnrKANEK.cjs → theme-button-CznhJ8g_.cjs} +2 -2
  259. package/dist/{theme-button-DnrKANEK.cjs.map → theme-button-CznhJ8g_.cjs.map} +1 -1
  260. package/dist/{theme-button-C8cK7un6.js → theme-button-DYoygmRA.js} +2 -2
  261. package/dist/{theme-button-C8cK7un6.js.map → theme-button-DYoygmRA.js.map} +1 -1
  262. package/dist/theme-button.cjs +1 -1
  263. package/dist/theme-button.js +1 -1
  264. package/dist/theme.cjs +1 -1
  265. package/dist/theme.js +1 -1
  266. package/dist/{timezone-C56jMhLK.cjs → timezone-BCGcdasU.cjs} +2 -2
  267. package/dist/{timezone-C56jMhLK.cjs.map → timezone-BCGcdasU.cjs.map} +1 -1
  268. package/dist/{timezone-CEEEd-9_.js → timezone-Co7gqqQt.js} +3 -3
  269. package/dist/{timezone-CEEEd-9_.js.map → timezone-Co7gqqQt.js.map} +1 -1
  270. package/dist/{tooltip-twQMYpmk.cjs → tooltip-Bqa0D34J.cjs} +2 -2
  271. package/dist/{tooltip-twQMYpmk.cjs.map → tooltip-Bqa0D34J.cjs.map} +1 -1
  272. package/dist/{tooltip-CnuYee5c.js → tooltip-DBuaAFmK.js} +2 -2
  273. package/dist/{tooltip-CnuYee5c.js.map → tooltip-DBuaAFmK.js.map} +1 -1
  274. package/dist/tooltip.cjs +1 -1
  275. package/dist/tooltip.js +1 -1
  276. package/dist/{tree-Dv5R6kdP.cjs → tree-CFeXYaJy.cjs} +2 -2
  277. package/dist/{tree-Dv5R6kdP.cjs.map → tree-CFeXYaJy.cjs.map} +1 -1
  278. package/dist/{tree-CfnCGGn7.js → tree-CfE695gp.js} +2 -2
  279. package/dist/{tree-CfnCGGn7.js.map → tree-CfE695gp.js.map} +1 -1
  280. package/dist/tree.cjs +1 -1
  281. package/dist/tree.js +1 -1
  282. package/dist/{typewriter-egr1HiFJ.cjs → typewriter-B6Jb22Pe.cjs} +2 -2
  283. package/dist/{typewriter-egr1HiFJ.cjs.map → typewriter-B6Jb22Pe.cjs.map} +1 -1
  284. package/dist/{typewriter-DAxRjeRy.js → typewriter-BZ_adVXB.js} +4 -4
  285. package/dist/{typewriter-DAxRjeRy.js.map → typewriter-BZ_adVXB.js.map} +1 -1
  286. package/dist/typewriter.cjs +1 -1
  287. package/dist/typewriter.js +1 -1
  288. package/dist/{typography-De5UXL0j.js → typography-DI5RXpWs.js} +2 -2
  289. package/dist/{typography-De5UXL0j.js.map → typography-DI5RXpWs.js.map} +1 -1
  290. package/dist/{typography-DVZ2ezpU.cjs → typography-DvVeO1a_.cjs} +2 -2
  291. package/dist/{typography-DVZ2ezpU.cjs.map → typography-DvVeO1a_.cjs.map} +1 -1
  292. package/dist/typography.cjs +1 -1
  293. package/dist/typography.js +1 -1
  294. package/package.json +1 -1
  295. package/types/src/sheet/sheet.service.d.ts +1 -0
  296. package/dist/avatar-D1ojwes6.cjs.map +0 -1
  297. package/dist/avatar-DzJUPJtZ.js.map +0 -1
  298. package/dist/select-BHRtVoTo.cjs +0 -56
  299. package/dist/select-BHRtVoTo.cjs.map +0 -1
  300. package/dist/tailwind.mixin-DNME2oUL.cjs +0 -2
  301. package/dist/tailwind.mixin-epCxS6FK.js +0 -43
@@ -1 +0,0 @@
1
- {"version":3,"file":"avatar-D1ojwes6.cjs","sources":["../src/badge/badge.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 { 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","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","getSizeClasses","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","schmancyContentDrawer","constructor","$drawer","Subject","pipe","subscribe","data","action","ref","dispatchEvent","CustomEvent","SchmancyEvents","ContentDrawerToggle","detail","state","bubbles","composed","component","title","next","SchmancyContentDrawerSheetMode","createContext","SchmancyContentDrawerSheetState","SchmancyContentDrawerID","n","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","render","nothing","provide","context","queryAssignedElements","flatten","SchmancyContentDrawerMain","connectedCallback","drawerMinWidth","changedProperties","update","has","when","Number","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","sidebarClasses","scrim","handleOverlayClick","WhereAreYouRicky","HereMorty","teleport","activeTeleportations","Map","flipRequests","find","zip","filter","uuid","id","take","callerID","timeout","flip","request","to","originalZIndex","zIndex","transformOrigin","keyframes","rect","left","top","height","delay","bufferTime","requests","host","i","concatMap","watchElementRect","interval","getBoundingClientRect","prev","curr","right","bottom","SchmancyTeleportation","debugging","_slottedChildren","shadowRoot","querySelector","assignedElements","Error","FINDING_MORTIES","HERE_RICKY","teleportationService","get","a","throwIfEmpty","domRect","set","SchmancyAvatar","initials","src","bordered","status","content","substring","toUpperCase","avatarClasses","xs","circle","square","colorAttrs","getColorAttributes","renderStatusIndicator","colorMap","statusColors","online","offline","onVariant","busy","away","statusClasses"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"avatar-DzJUPJtZ.js","sources":["../src/badge/badge.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 { 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","schmancyContentDrawer","constructor","$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","render","nothing","provide","context","queryAssignedElements","flatten","SchmancyContentDrawerMain","connectedCallback","drawerMinWidth","changedProperties","update","has","when","Number","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","height","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","src","bordered","status","content","substring","toUpperCase","avatarClasses","xs","circle","square","colorAttrs","getColorAttributes","renderStatusIndicator","colorMap","statusColors","online","offline","onVariant","busy","away","statusClasses"],"mappings":"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"}
@@ -1,56 +0,0 @@
1
- "use strict";const h=require("@floating-ui/dom"),p=require("rxjs"),f=require("lit/directives/class-map.js");require("lit/directives/style-map.js");const m=require("./litElement.mixin-B1eYYBf4.cjs");require("./tailwind.mixin-DNME2oUL.cjs");const a=require("lit/decorators.js"),v=require("./ripple-C2BHbhcS.cjs"),u=require("./theme.interface-Xg5Zi46a.cjs"),c=require("lit");var b=Object.defineProperty,S=Object.getOwnPropertyDescriptor,o=(t,e,i,s)=>{for(var n,l=s>1?void 0:s?S(e,i):e,r=t.length-1;r>=0;r--)(n=t[r])&&(l=(s?n(e,i,l):n(l))||l);return s&&l&&b(e,i,l),l};exports.SchmancySelect=class extends m.$LitElement(c.css`
2
- :host {
3
- display: block;
4
- position: relative;
5
- }
6
-
7
- [role='listbox'] {
8
- overflow-y: auto;
9
- outline: none;
10
- }
11
- `){constructor(){super(),this.required=!1,this.disabled=!1,this.placeholder="",this.value="",this.multi=!1,this.label="",this.hint="",this.validateOn="touched",this.isOpen=!1,this.valueLabel="",this.isValid=!0,this.validationMessage="",this.defaultValue="",this._userInteracted=!1,this._touched=!1,this._dirty=!1,this._submitted=!1,this._focusedOptionId="",this.formSubmitHandler=()=>{this._submitted=!0,this.checkValidity()},this.formResetHandler=()=>{this.reset()},this.handleKeyDown=t=>{if(this.disabled)return;if(!this.isOpen)return void(["Enter"," ","ArrowDown"].includes(t.key)&&(t.preventDefault(),this.openDropdown(!1)));const e=Array.from(this.options||[]),i=e.findIndex(s=>s.id===this._focusedOptionId)??-1;switch(t.key){case"Escape":t.preventDefault(),this.closeDropdown();break;case"ArrowDown":t.preventDefault(),this.focusOption(e,Math.min(i+1,e.length-1));break;case"ArrowUp":t.preventDefault(),this.focusOption(e,Math.max(i-1,0));break;case"Home":t.preventDefault(),this.focusOption(e,0);break;case"End":t.preventDefault(),this.focusOption(e,e.length-1);break;case"Enter":case" ":if(t.preventDefault(),this._focusedOptionId){const s=e.find(n=>n.id===this._focusedOptionId);s&&this.handleOptionSelect(s.value)}break;case"Tab":this.closeDropdown()}};try{this.internals=this.attachInternals()}catch{}}get form(){return this.internals?.form}connectedCallback(){super.connectedCallback(),this.id||(this.id=`schmancy-select-${Math.random().toString(36).substring(2,9)}`),this.defaultValue=this.value,p.fromEvent(this,"keydown").pipe(p.takeUntil(this.disconnecting)).subscribe(this.handleKeyDown),p.fromEvent(this,"option-select").pipe(p.takeUntil(this.disconnecting)).subscribe(t=>{t.stopPropagation(),this.handleOptionSelect(t.detail.value)}),this.internals?.form&&(this.internals.form.addEventListener("submit",this.formSubmitHandler),this.internals.form.addEventListener("reset",this.formResetHandler)),this.inputRef&&(this.inputRef.error=!1)}disconnectedCallback(){super.disconnectedCallback(),this.cleanupPositioner?.(),this.internals?.form&&(this.internals.form.removeEventListener("submit",this.formSubmitHandler),this.internals.form.removeEventListener("reset",this.formResetHandler))}firstUpdated(){this.syncSelection(),this.setupOptionsAccessibility()}updated(t){if(super.updated(t),t.has("value")){const e=Array.isArray(this.value)?this.value.join(","):this.value;this.internals?.setFormValue(e),this.hasUpdated&&(this._dirty=!0),this.syncSelection(),this.hasUpdated&&this.checkValidity()}t.has("isOpen")&&(this.isOpen?this.positionDropdown():this.cleanupPositioner?.())}shouldShowValidation(t=!1){if(t)return!0;switch(this.validateOn){case"always":return!0;case"touched":default:return this._touched;case"dirty":return this._dirty;case"submitted":return this._submitted}}syncSelection(){if(this.multi){const t=Array.isArray(this.value)?this.value:this.value?this.value.split(","):[];this.options?.forEach(e=>e.selected=t.includes(e.value)),this.valueLabel=t.length>0&&this.options?.filter(e=>t.includes(e.value)).map(e=>e.label).join(", ")||this.placeholder}else{const t=String(this.value);this.options?.forEach(i=>{i.selected=i.value===t});const e=this.options?.find(i=>i.value===t);this.valueLabel=e?.label||this.placeholder}}setupOptionsAccessibility(){this.options?.forEach((t,e)=>{t.setAttribute("role","option"),t.id||(t.id=`${this.id}-option-${e}`),t.tabIndex=-1;const i=Array.isArray(this.value)?this.value:this.value?this.value.split(","):[];t.setAttribute("aria-selected",String(this.multi?i.includes(t.value):t.value===this.value))})}async positionDropdown(){const t=this.renderRoot.querySelector(".trigger");t&&this.ul&&(this.cleanupPositioner=h.autoUpdate(t,this.ul,async()=>{const e=window.innerHeight,i=t.getBoundingClientRect(),s=e-i.bottom,n=i.top,l=Math.max(.75*Math.max(s,n),150),r=s<200&&n>s;this.ul.style.maxHeight=`${l}px`;const{x:d,y}=await h.computePosition(t,this.ul,{placement:r?"top-start":"bottom-start",middleware:[h.offset(5),h.flip(),h.shift({padding:5})]});Object.assign(this.ul.style,{left:`${d}px`,top:`${y}px`,position:"absolute",width:`${t.offsetWidth}px`})}))}focusOption(t,e){const i=t[e];if(i){i.focus(),this._focusedOptionId=i.id;const s=this.renderRoot.querySelector(".trigger");if(s&&s.setAttribute("aria-activedescendant",i.id),this.ul&&i.offsetTop!==void 0){const n=i.offsetTop,l=i.offsetHeight,r=this.ul.scrollTop,d=this.ul.clientHeight;n<r?this.ul.scrollTop=n:n+l>r+d&&(this.ul.scrollTop=n+l-d)}}}async openDropdown(t=!1){if(this.disabled)return;this.syncSelection(),this.isOpen=!0,await this.updateComplete;const e=Array.from(this.options||[]),i=this.multi?0:e.findIndex(s=>s.value===String(this.value));this.focusOption(e,Math.max(i,0)),t&&this.reportValidity()}closeDropdown(){this._userInteracted&&(this._touched=!0),this.isOpen=!1,this._focusedOptionId="";const t=this.renderRoot.querySelector(".trigger");t&&(t.removeAttribute("aria-activedescendant"),t?.focus()),this._userInteracted&&this.shouldShowValidation()&&this.checkValidity()}handleOptionSelect(t){if(this._userInteracted=!0,this._touched=!0,this._dirty=!0,this.multi){const e=this.options.find(s=>s.value===t);if(!e)return;let i;e.selected=!e.selected,i=Array.isArray(this.value)?[...this.value]:this.value?this.value.split(","):[],e.selected?i.includes(t)||i.push(t):i=i.filter(s=>s!==t),this.value=i,this.valueLabel=i.length>0?this.options.filter(s=>i.includes(s.value)).map(s=>s.label).join(", "):this.placeholder}else this.options.forEach(e=>{e.selected=e.value===t}),this.value=t,this.valueLabel=this.options.find(e=>e.value===t)?.label||this.placeholder,this.closeDropdown();this.setupOptionsAccessibility(),this.dispatchChange(this.value)}dispatchChange(t){this.dispatchEvent(new CustomEvent("change",{detail:{value:t},bubbles:!0,composed:!0})),this.checkValidity()}checkValidity(){if(this.disabled)return!0;const t=this.multi&&Array.isArray(this.value)?this.value.length===0:!this.value,e=!(this.required&&t);if(this.isValid=e,this.isValid?(this.validationMessage="",this.internals?.setValidity({})):(this.validationMessage="Please select an option.",this.internals?.setValidity({valueMissing:!0},"Please select an option.",this.inputRef)),this.inputRef&&this.hasUpdated){const i=!this.isValid&&this.shouldShowValidation();this.inputRef.error=i,this.inputRef.hint=i?this.validationMessage:this.hint}return this.isValid}reportValidity(){const t=this.checkValidity();return this.inputRef&&(this.inputRef.error=!t,this.inputRef.hint=t?this.hint:this.validationMessage,t||this.isOpen||this.openDropdown(!1),t||this.inputRef.reportValidity()),t}setCustomValidity(t){this.validationMessage=t,t?(this.isValid=!1,this.internals?.setValidity({customError:!0},t,this.inputRef)):(this.isValid=!0,this.internals?.setValidity({})),this.inputRef&&this.shouldShowValidation()&&(this.inputRef.error=!this.isValid,this.inputRef.hint=this.isValid?this.hint:this.validationMessage)}reset(){this.value=this.defaultValue,this.valueLabel=this.placeholder,this.isValid=!0,this.validationMessage="",this._touched=!1,this._dirty=!1,this._submitted=!1,this._userInteracted=!1,this.internals?.setValidity({}),this.syncSelection(),this.inputRef&&(this.inputRef.error=!1,this.inputRef.hint=this.hint)}render(){const t=!this.isValid&&this.shouldShowValidation()&&!this.isOpen,e=this.isOpen?c.html`<span class="absolute right-3 top-1/2 transform -translate-y-1/2">▲</span>`:c.html`<span class="absolute right-3 top-1/2 transform -translate-y-1/2">▼</span>`;return c.html`
12
- <div class="relative ${this.disabled?"opacity-60 cursor-not-allowed":""}">
13
- <sch-input
14
- .name=${this.name}
15
- tabIndex=${this.disabled?"-1":"0"}
16
- class="trigger"
17
- role="combobox"
18
- aria-haspopup="listbox"
19
- aria-expanded=${this.isOpen}
20
- aria-controls="options"
21
- aria-autocomplete="none"
22
- aria-required=${this.required}
23
- aria-activedescendant=${this._focusedOptionId||void 0}
24
- aria-disabled=${this.disabled}
25
- .label=${this.label}
26
- .placeholder=${this.placeholder}
27
- .value=${this.valueLabel}
28
- .required=${this.required}
29
- .disabled=${this.disabled}
30
- .hint=${t?this.validationMessage:this.hint}
31
- .error=${t}
32
- .validateOn=${this.validateOn}
33
- readonly
34
- clickable
35
- @click=${i=>{if(this.disabled)return i.preventDefault(),void i.stopPropagation();this.isOpen?(this._userInteracted=!0,this.closeDropdown()):this.openDropdown(!1)}}
36
- >
37
- ${e}
38
- </sch-input>
39
-
40
- <!-- Overlay for capturing clicks outside when dropdown is open -->
41
- ${this.isOpen?c.html` <div class="fixed inset-0 z-10" @click=${this.closeDropdown} tabindex="-1" aria-hidden="true"></div> `:""}
42
-
43
- <ul
44
- id="options"
45
- role="listbox"
46
- aria-multiselectable=${this.multi}
47
- class=${f.classMap({"absolute min-w-full w-full z-20 mt-1 rounded-md shadow-lg":!0,hidden:!this.isOpen})}
48
- ${v.color({bgColor:u.SchmancyTheme.sys.color.surface.low,color:u.SchmancyTheme.sys.color.surface.on})}
49
- >
50
- <slot
51
- @slotchange=${()=>{this.syncSelection(),this.setupOptionsAccessibility()}}
52
- ></slot>
53
- </ul>
54
- </div>
55
- `}},exports.SchmancySelect.formAssociated=!0,o([a.property({type:String})],exports.SchmancySelect.prototype,"name",2),o([a.property({type:Boolean,reflect:!0})],exports.SchmancySelect.prototype,"required",2),o([a.property({type:Boolean,reflect:!0})],exports.SchmancySelect.prototype,"disabled",2),o([a.property({type:String})],exports.SchmancySelect.prototype,"placeholder",2),o([a.property({type:String,reflect:!0})],exports.SchmancySelect.prototype,"value",2),o([a.property({type:Boolean})],exports.SchmancySelect.prototype,"multi",2),o([a.property({type:String})],exports.SchmancySelect.prototype,"label",2),o([a.property({type:String})],exports.SchmancySelect.prototype,"hint",2),o([a.property({type:String})],exports.SchmancySelect.prototype,"validateOn",2),o([a.state()],exports.SchmancySelect.prototype,"isOpen",2),o([a.state()],exports.SchmancySelect.prototype,"valueLabel",2),o([a.state()],exports.SchmancySelect.prototype,"isValid",2),o([a.property({type:String})],exports.SchmancySelect.prototype,"validationMessage",2),o([a.state()],exports.SchmancySelect.prototype,"defaultValue",2),o([a.query("ul")],exports.SchmancySelect.prototype,"ul",2),o([a.query("sch-input")],exports.SchmancySelect.prototype,"inputRef",2),o([a.queryAssignedElements({flatten:!0})],exports.SchmancySelect.prototype,"options",2),o([a.state()],exports.SchmancySelect.prototype,"_userInteracted",2),o([a.state()],exports.SchmancySelect.prototype,"_touched",2),o([a.state()],exports.SchmancySelect.prototype,"_dirty",2),o([a.state()],exports.SchmancySelect.prototype,"_submitted",2),o([a.state()],exports.SchmancySelect.prototype,"_focusedOptionId",2),exports.SchmancySelect=o([a.customElement("schmancy-select")],exports.SchmancySelect);
56
- //# sourceMappingURL=select-BHRtVoTo.cjs.map