@mhmo91/schmancy 0.6.7 → 0.6.8

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 (332) hide show
  1. package/dist/{animated-text-Dq7_jZi1.js → animated-text-DLyx9-eP.js} +3 -3
  2. package/dist/{animated-text-Dq7_jZi1.js.map → animated-text-DLyx9-eP.js.map} +1 -1
  3. package/dist/{animated-text-BJ6dVzPq.cjs → animated-text-Do7ExPpE.cjs} +2 -2
  4. package/dist/{animated-text-BJ6dVzPq.cjs.map → animated-text-Do7ExPpE.cjs.map} +1 -1
  5. package/dist/animated-text.cjs +1 -1
  6. package/dist/animated-text.js +1 -1
  7. package/dist/area.cjs +1 -1
  8. package/dist/{area.component-C895jU0E.js → area.component-BYJqbz6I.js} +3 -3
  9. package/dist/{area.component-C895jU0E.js.map → area.component-BYJqbz6I.js.map} +1 -1
  10. package/dist/{area.component-BJbcvVaQ.cjs → area.component-C_u433rX.cjs} +2 -2
  11. package/dist/{area.component-BJbcvVaQ.cjs.map → area.component-C_u433rX.cjs.map} +1 -1
  12. package/dist/area.js +1 -1
  13. package/dist/{autocomplete-BIqgHJSg.js → autocomplete-BWw1WP6T.js} +4 -4
  14. package/dist/{autocomplete-BIqgHJSg.js.map → autocomplete-BWw1WP6T.js.map} +1 -1
  15. package/dist/{autocomplete-zjn6pXaX.cjs → autocomplete-DC_xEDbf.cjs} +2 -2
  16. package/dist/{autocomplete-zjn6pXaX.cjs.map → autocomplete-DC_xEDbf.cjs.map} +1 -1
  17. package/dist/autocomplete.cjs +1 -1
  18. package/dist/autocomplete.js +1 -1
  19. package/dist/{avatar-sdsp99GL.js → avatar-CPEgR5Et.js} +51 -51
  20. package/dist/{avatar-sdsp99GL.js.map → avatar-CPEgR5Et.js.map} +1 -1
  21. package/dist/{avatar-BOl8StHd.cjs → avatar-CWyP68pi.cjs} +2 -2
  22. package/dist/{avatar-BOl8StHd.cjs.map → avatar-CWyP68pi.cjs.map} +1 -1
  23. package/dist/badge.cjs +1 -1
  24. package/dist/badge.js +1 -1
  25. package/dist/{boat-cnxxijmo.cjs → boat-C5caSmse.cjs} +2 -2
  26. package/dist/{boat-cnxxijmo.cjs.map → boat-C5caSmse.cjs.map} +1 -1
  27. package/dist/{boat-F5pj1_HS.js → boat-Dw0acuV8.js} +3 -3
  28. package/dist/{boat-F5pj1_HS.js.map → boat-Dw0acuV8.js.map} +1 -1
  29. package/dist/boat.cjs +1 -1
  30. package/dist/boat.js +1 -1
  31. package/dist/busy.cjs +1 -1
  32. package/dist/busy.js +1 -1
  33. package/dist/button.cjs +1 -1
  34. package/dist/button.js +1 -1
  35. package/dist/card.cjs +1 -1
  36. package/dist/card.js +1 -1
  37. package/dist/{checkbox-BO4BCypb.cjs → checkbox-DH77DdLR.cjs} +2 -2
  38. package/dist/{checkbox-BO4BCypb.cjs.map → checkbox-DH77DdLR.cjs.map} +1 -1
  39. package/dist/{checkbox-Cd8UHh0d.js → checkbox-DZWvC3Ez.js} +2 -2
  40. package/dist/{checkbox-Cd8UHh0d.js.map → checkbox-DZWvC3Ez.js.map} +1 -1
  41. package/dist/checkbox.cjs +1 -1
  42. package/dist/checkbox.js +1 -1
  43. package/dist/chips.cjs +1 -1
  44. package/dist/chips.js +2 -2
  45. package/dist/code-highlight.cjs +1 -1
  46. package/dist/code-highlight.js +1 -1
  47. package/dist/{code-preview-OcZ0Bj8f.cjs → code-preview-CjczD0Jv.cjs} +2 -2
  48. package/dist/{code-preview-OcZ0Bj8f.cjs.map → code-preview-CjczD0Jv.cjs.map} +1 -1
  49. package/dist/{code-preview-BdqpTil0.js → code-preview-DxRNCwGX.js} +2 -2
  50. package/dist/{code-preview-BdqpTil0.js.map → code-preview-DxRNCwGX.js.map} +1 -1
  51. package/dist/components.cjs +1 -1
  52. package/dist/components.js +1 -1
  53. package/dist/content-drawer.cjs +1 -1
  54. package/dist/content-drawer.js +1 -1
  55. package/dist/{date-range-0LM8B9Eu.js → date-range-8N7nkUNn.js} +3 -3
  56. package/dist/{date-range-0LM8B9Eu.js.map → date-range-8N7nkUNn.js.map} +1 -1
  57. package/dist/{date-range-BN34-Aw1.cjs → date-range-BuFNS_wY.cjs} +2 -2
  58. package/dist/{date-range-BN34-Aw1.cjs.map → date-range-BuFNS_wY.cjs.map} +1 -1
  59. package/dist/{date-range-inline-CTS_b5LT.cjs → date-range-inline-BKDR-qTY.cjs} +2 -2
  60. package/dist/{date-range-inline-CTS_b5LT.cjs.map → date-range-inline-BKDR-qTY.cjs.map} +1 -1
  61. package/dist/{date-range-inline-GNSSsc2E.js → date-range-inline-CQ0YLLsV.js} +3 -3
  62. package/dist/{date-range-inline-GNSSsc2E.js.map → date-range-inline-CQ0YLLsV.js.map} +1 -1
  63. package/dist/date-range-inline.cjs +1 -1
  64. package/dist/date-range-inline.js +1 -1
  65. package/dist/date-range.cjs +1 -1
  66. package/dist/date-range.js +1 -1
  67. package/dist/{delay-pRkPf-u1.cjs → delay-BD2mU0Cn.cjs} +2 -2
  68. package/dist/{delay-pRkPf-u1.cjs.map → delay-BD2mU0Cn.cjs.map} +1 -1
  69. package/dist/{delay-Bz6BYszz.js → delay-Bd1x4Trp.js} +2 -2
  70. package/dist/{delay-Bz6BYszz.js.map → delay-Bd1x4Trp.js.map} +1 -1
  71. package/dist/delay.cjs +1 -1
  72. package/dist/delay.js +1 -1
  73. package/dist/{details-BhAH8LFi.js → details-CWn62IXD.js} +2 -2
  74. package/dist/{details-BhAH8LFi.js.map → details-CWn62IXD.js.map} +1 -1
  75. package/dist/{details-DMyjzl4C.cjs → details-tSMBH5kq.cjs} +2 -2
  76. package/dist/{details-DMyjzl4C.cjs.map → details-tSMBH5kq.cjs.map} +1 -1
  77. package/dist/details.cjs +1 -1
  78. package/dist/details.js +1 -1
  79. package/dist/{dialog-content-DBSU0JAH.cjs → dialog-content-BsCIWMpD.cjs} +2 -2
  80. package/dist/{dialog-content-DBSU0JAH.cjs.map → dialog-content-BsCIWMpD.cjs.map} +1 -1
  81. package/dist/{dialog-content-BPGEJU_U.js → dialog-content-CcOLEnDr.js} +3 -3
  82. package/dist/{dialog-content-BPGEJU_U.js.map → dialog-content-CcOLEnDr.js.map} +1 -1
  83. package/dist/dialog.cjs +1 -1
  84. package/dist/dialog.js +1 -1
  85. package/dist/{divider-CRWuoZaX.cjs → divider-CzFj_O-8.cjs} +2 -2
  86. package/dist/{divider-CRWuoZaX.cjs.map → divider-CzFj_O-8.cjs.map} +1 -1
  87. package/dist/{divider-RKnHmaio.js → divider-DxcKbbFX.js} +3 -3
  88. package/dist/{divider-RKnHmaio.js.map → divider-DxcKbbFX.js.map} +1 -1
  89. package/dist/divider.cjs +1 -1
  90. package/dist/divider.js +1 -1
  91. package/dist/{dropdown-content-B43eon8W.js → dropdown-content-103Fd0gq.js} +3 -3
  92. package/dist/{dropdown-content-B43eon8W.js.map → dropdown-content-103Fd0gq.js.map} +1 -1
  93. package/dist/{dropdown-content-BnfFfIBY.cjs → dropdown-content-B0paFk08.cjs} +2 -2
  94. package/dist/{dropdown-content-BnfFfIBY.cjs.map → dropdown-content-B0paFk08.cjs.map} +1 -1
  95. package/dist/dropdown.cjs +1 -1
  96. package/dist/dropdown.js +1 -1
  97. package/dist/{email-recipients-P8EhcYA5.js → email-recipients-BGMuQ9U1.js} +6 -6
  98. package/dist/{email-recipients-P8EhcYA5.js.map → email-recipients-BGMuQ9U1.js.map} +1 -1
  99. package/dist/{email-recipients-BYmTSDtV.cjs → email-recipients-CFCC3Yu1.cjs} +2 -2
  100. package/dist/{email-recipients-BYmTSDtV.cjs.map → email-recipients-CFCC3Yu1.cjs.map} +1 -1
  101. package/dist/extra.cjs +1 -1
  102. package/dist/extra.js +1 -1
  103. package/dist/{flex-BJVTZ7DZ.js → flex-DCryYOhZ.js} +2 -2
  104. package/dist/{flex-BJVTZ7DZ.js.map → flex-DCryYOhZ.js.map} +1 -1
  105. package/dist/{flex-D6XiBOTZ.cjs → flex-gWrsD4YN.cjs} +2 -2
  106. package/dist/{flex-D6XiBOTZ.cjs.map → flex-gWrsD4YN.cjs.map} +1 -1
  107. package/dist/{form-BP7DDBtk.cjs → form-BJ_QQoWf.cjs} +2 -2
  108. package/dist/{form-BP7DDBtk.cjs.map → form-BJ_QQoWf.cjs.map} +1 -1
  109. package/dist/{form-ea3qmAzJ.js → form-DOd2YsWM.js} +2 -2
  110. package/dist/{form-ea3qmAzJ.js.map → form-DOd2YsWM.js.map} +1 -1
  111. package/dist/form.cjs +1 -1
  112. package/dist/form.js +1 -1
  113. package/dist/{formField.mixin-BHXhpJV0.cjs → formField.mixin-Ceg_qMOk.cjs} +2 -2
  114. package/dist/{formField.mixin-BHXhpJV0.cjs.map → formField.mixin-Ceg_qMOk.cjs.map} +1 -1
  115. package/dist/{formField.mixin-CImMWx5j.js → formField.mixin-DkpZ_36p.js} +2 -2
  116. package/dist/{formField.mixin-CImMWx5j.js.map → formField.mixin-DkpZ_36p.js.map} +1 -1
  117. package/dist/{icon-vuGR6PEh.cjs → icon-4HmpoTLD.cjs} +2 -2
  118. package/dist/{icon-vuGR6PEh.cjs.map → icon-4HmpoTLD.cjs.map} +1 -1
  119. package/dist/{icon-DnfqMcTA.js → icon-B4LokKcE.js} +2 -2
  120. package/dist/{icon-DnfqMcTA.js.map → icon-B4LokKcE.js.map} +1 -1
  121. package/dist/{icon-button-Cdft5ST_.cjs → icon-button-DOuv10nc.cjs} +2 -2
  122. package/dist/{icon-button-Cdft5ST_.cjs.map → icon-button-DOuv10nc.cjs.map} +1 -1
  123. package/dist/{icon-button-dwx5LJmH.js → icon-button-Op0HzYKV.js} +3 -3
  124. package/dist/{icon-button-dwx5LJmH.js.map → icon-button-Op0HzYKV.js.map} +1 -1
  125. package/dist/icons.cjs +1 -1
  126. package/dist/icons.js +1 -1
  127. package/dist/index.cjs +1 -1
  128. package/dist/index.js +158 -160
  129. package/dist/{input-CTutyfwK.cjs → input-C_HMn9lk.cjs} +2 -2
  130. package/dist/{input-CTutyfwK.cjs.map → input-C_HMn9lk.cjs.map} +1 -1
  131. package/dist/{input-chip-DcPs1RHP.cjs → input-chip-BmjemJFK.cjs} +2 -2
  132. package/dist/{input-chip-DcPs1RHP.cjs.map → input-chip-BmjemJFK.cjs.map} +1 -1
  133. package/dist/{input-chip-yBNsWut8.js → input-chip-CVYt-YX1.js} +2 -2
  134. package/dist/{input-chip-yBNsWut8.js.map → input-chip-CVYt-YX1.js.map} +1 -1
  135. package/dist/{input-DDBwWF_Y.js → input-xQVqA36V.js} +3 -3
  136. package/dist/{input-DDBwWF_Y.js.map → input-xQVqA36V.js.map} +1 -1
  137. package/dist/input.cjs +1 -1
  138. package/dist/input.js +1 -1
  139. package/dist/layout.cjs +1 -1
  140. package/dist/layout.js +1 -1
  141. package/dist/{list-C7rm-hrd.cjs → list-COZ-7E6a.cjs} +2 -2
  142. package/dist/{list-C7rm-hrd.cjs.map → list-COZ-7E6a.cjs.map} +1 -1
  143. package/dist/{list-CmhMxIBB.js → list-CRUQzz0F.js} +2 -2
  144. package/dist/{list-CmhMxIBB.js.map → list-CRUQzz0F.js.map} +1 -1
  145. package/dist/list.cjs +1 -1
  146. package/dist/list.js +1 -1
  147. package/dist/{litElement.mixin-Bs-lTl5t.cjs → litElement.mixin-C26Pwc-k.cjs} +2 -2
  148. package/dist/{litElement.mixin-Bs-lTl5t.cjs.map → litElement.mixin-C26Pwc-k.cjs.map} +1 -1
  149. package/dist/{litElement.mixin-BiApE17B.js → litElement.mixin-CdsqAj-a.js} +2 -2
  150. package/dist/{litElement.mixin-BiApE17B.js.map → litElement.mixin-CdsqAj-a.js.map} +1 -1
  151. package/dist/mailbox.cjs +1 -1
  152. package/dist/mailbox.js +1 -1
  153. package/dist/{map-B7v5XCcL.cjs → map-Z55tOGNJ.cjs} +2 -2
  154. package/dist/{map-B7v5XCcL.cjs.map → map-Z55tOGNJ.cjs.map} +1 -1
  155. package/dist/{map-CfpI1PSb.js → map-xyZtrYPc.js} +2 -2
  156. package/dist/{map-CfpI1PSb.js.map → map-xyZtrYPc.js.map} +1 -1
  157. package/dist/map.cjs +1 -1
  158. package/dist/map.js +1 -1
  159. package/dist/{media-CHIfbKtP.cjs → media-CC-dqIC5.cjs} +2 -2
  160. package/dist/{media-CHIfbKtP.cjs.map → media-CC-dqIC5.cjs.map} +1 -1
  161. package/dist/{media-C5XX51w8.js → media-CzVOD0dg.js} +2 -2
  162. package/dist/{media-C5XX51w8.js.map → media-CzVOD0dg.js.map} +1 -1
  163. package/dist/{menu-DmzRvLJ_.js → menu-C8Ij52b8.js} +3 -3
  164. package/dist/{menu-DmzRvLJ_.js.map → menu-C8Ij52b8.js.map} +1 -1
  165. package/dist/{menu-9XPYZwVz.cjs → menu-Oxz8Xnsa.cjs} +2 -2
  166. package/dist/{menu-9XPYZwVz.cjs.map → menu-Oxz8Xnsa.cjs.map} +1 -1
  167. package/dist/menu.cjs +1 -1
  168. package/dist/menu.js +1 -1
  169. package/dist/nav-drawer.cjs +1 -1
  170. package/dist/nav-drawer.js +1 -1
  171. package/dist/navigation-bar.cjs +1 -1
  172. package/dist/navigation-bar.js +1 -1
  173. package/dist/{navigation-rail-Cw1BQLk0.cjs → navigation-rail-B3zWwtVD.cjs} +2 -2
  174. package/dist/{navigation-rail-Cw1BQLk0.cjs.map → navigation-rail-B3zWwtVD.cjs.map} +1 -1
  175. package/dist/{navigation-rail-CdllmI0h.js → navigation-rail-BZ7zwe20.js} +3 -3
  176. package/dist/{navigation-rail-CdllmI0h.js.map → navigation-rail-BZ7zwe20.js.map} +1 -1
  177. package/dist/navigation-rail.cjs +1 -1
  178. package/dist/navigation-rail.js +1 -1
  179. package/dist/{notification-service-F3EVrKii.js → notification-service-B5TUQBOG.js} +4 -4
  180. package/dist/{notification-service-F3EVrKii.js.map → notification-service-B5TUQBOG.js.map} +1 -1
  181. package/dist/{notification-service-B3lp4l84.cjs → notification-service-DyOaup0S.cjs} +2 -2
  182. package/dist/{notification-service-B3lp4l84.cjs.map → notification-service-DyOaup0S.cjs.map} +1 -1
  183. package/dist/notification.cjs +1 -1
  184. package/dist/notification.js +2 -2
  185. package/dist/{notify-CFOgWCLl.js → notify-BiaSRq0r.js} +2 -2
  186. package/dist/{notify-CFOgWCLl.js.map → notify-BiaSRq0r.js.map} +1 -1
  187. package/dist/{notify-CzAYDDsL.cjs → notify-DmPHYQe9.cjs} +2 -2
  188. package/dist/{notify-CzAYDDsL.cjs.map → notify-DmPHYQe9.cjs.map} +1 -1
  189. package/dist/{option-6rK-1ycf.js → option-DALEtOeU.js} +2 -2
  190. package/dist/{option-6rK-1ycf.js.map → option-DALEtOeU.js.map} +1 -1
  191. package/dist/{option-Bfkerz4T.cjs → option-DDuEnFRy.cjs} +2 -2
  192. package/dist/{option-Bfkerz4T.cjs.map → option-DDuEnFRy.cjs.map} +1 -1
  193. package/dist/option.cjs +1 -1
  194. package/dist/option.js +1 -1
  195. package/dist/{payment-card-form-Cov5fmfm.cjs → payment-card-form-CS8Px1F3.cjs} +2 -2
  196. package/dist/{payment-card-form-Cov5fmfm.cjs.map → payment-card-form-CS8Px1F3.cjs.map} +1 -1
  197. package/dist/{payment-card-form-C0qMZ01n.js → payment-card-form-DmsimSFZ.js} +3 -3
  198. package/dist/{payment-card-form-C0qMZ01n.js.map → payment-card-form-DmsimSFZ.js.map} +1 -1
  199. package/dist/{progress-Ce9glM8G.cjs → progress-CbCWE2s-.cjs} +2 -2
  200. package/dist/{progress-Ce9glM8G.cjs.map → progress-CbCWE2s-.cjs.map} +1 -1
  201. package/dist/{progress-H11TnhHD.js → progress-DAkBesVJ.js} +2 -2
  202. package/dist/{progress-H11TnhHD.js.map → progress-DAkBesVJ.js.map} +1 -1
  203. package/dist/progress.cjs +1 -1
  204. package/dist/progress.js +1 -1
  205. package/dist/{radio-button-D6ao2v-N.cjs → radio-button-CSminN1c.cjs} +2 -2
  206. package/dist/{radio-button-D6ao2v-N.cjs.map → radio-button-CSminN1c.cjs.map} +1 -1
  207. package/dist/{radio-button-CLKMlw_u.js → radio-button-DG4GQgMD.js} +3 -3
  208. package/dist/{radio-button-CLKMlw_u.js.map → radio-button-DG4GQgMD.js.map} +1 -1
  209. package/dist/radio-group.cjs +1 -1
  210. package/dist/radio-group.js +1 -1
  211. package/dist/{schmancy-steps-container-D1eh_oNN.js → schmancy-steps-container-BzT6xBEL.js} +2 -2
  212. package/dist/{schmancy-steps-container-D1eh_oNN.js.map → schmancy-steps-container-BzT6xBEL.js.map} +1 -1
  213. package/dist/{schmancy-steps-container-C1NyZqJx.cjs → schmancy-steps-container-Cc4fZR04.cjs} +2 -2
  214. package/dist/{schmancy-steps-container-C1NyZqJx.cjs.map → schmancy-steps-container-Cc4fZR04.cjs.map} +1 -1
  215. package/dist/{select-BbH18sWe.js → select-1eDUFg6q.js} +3 -3
  216. package/dist/{select-BbH18sWe.js.map → select-1eDUFg6q.js.map} +1 -1
  217. package/dist/{select-CoBvc63S.cjs → select-Da6CakTP.cjs} +2 -2
  218. package/dist/{select-CoBvc63S.cjs.map → select-Da6CakTP.cjs.map} +1 -1
  219. package/dist/select.cjs +1 -1
  220. package/dist/select.js +1 -1
  221. package/dist/sheet-ByE4dXE5.js +95 -0
  222. package/dist/sheet-ByE4dXE5.js.map +1 -0
  223. package/dist/sheet-DnbrlG5W.cjs +15 -0
  224. package/dist/sheet-DnbrlG5W.cjs.map +1 -0
  225. package/dist/sheet.cjs +1 -1
  226. package/dist/sheet.js +4 -6
  227. package/dist/sheet.service-D4c1hRuR.cjs +2 -0
  228. package/dist/sheet.service-D4c1hRuR.cjs.map +1 -0
  229. package/dist/sheet.service-D9c1p4HB.js +68 -0
  230. package/dist/sheet.service-D9c1p4HB.js.map +1 -0
  231. package/dist/{slider-5j5w93Cb.cjs → slider-BeK83fP2.cjs} +2 -2
  232. package/dist/{slider-5j5w93Cb.cjs.map → slider-BeK83fP2.cjs.map} +1 -1
  233. package/dist/{slider-BK88C7un.js → slider-OJvKPRLR.js} +3 -3
  234. package/dist/{slider-BK88C7un.js.map → slider-OJvKPRLR.js.map} +1 -1
  235. package/dist/slider.cjs +1 -1
  236. package/dist/slider.js +1 -1
  237. package/dist/{spinner-BZZUer_X.cjs → spinner-DJcQtv0l.cjs} +2 -2
  238. package/dist/{spinner-BZZUer_X.cjs.map → spinner-DJcQtv0l.cjs.map} +1 -1
  239. package/dist/{spinner-CbGVoMMS.js → spinner-Dwt56akR.js} +2 -2
  240. package/dist/{spinner-CbGVoMMS.js.map → spinner-Dwt56akR.js.map} +1 -1
  241. package/dist/steps.cjs +1 -1
  242. package/dist/steps.js +1 -1
  243. package/dist/{suggestion-chip-Ba7UanuI.js → suggestion-chip-B374VUnt.js} +3 -3
  244. package/dist/{suggestion-chip-Ba7UanuI.js.map → suggestion-chip-B374VUnt.js.map} +1 -1
  245. package/dist/{suggestion-chip-DK9DzPkI.cjs → suggestion-chip-BdNO_VL7.cjs} +2 -2
  246. package/dist/{suggestion-chip-DK9DzPkI.cjs.map → suggestion-chip-BdNO_VL7.cjs.map} +1 -1
  247. package/dist/{surface-D3Rxzm8i.js → surface-CrFJYP9L.js} +2 -2
  248. package/dist/{surface-D3Rxzm8i.js.map → surface-CrFJYP9L.js.map} +1 -1
  249. package/dist/{surface-C5XXgsLy.cjs → surface-YrABwXrS.cjs} +2 -2
  250. package/dist/{surface-C5XXgsLy.cjs.map → surface-YrABwXrS.cjs.map} +1 -1
  251. package/dist/surface.cjs +1 -1
  252. package/dist/surface.js +1 -1
  253. package/dist/{table-Ctl7aR5v.js → table-BFtl2Gyg.js} +2 -2
  254. package/dist/{table-Ctl7aR5v.js.map → table-BFtl2Gyg.js.map} +1 -1
  255. package/dist/{table-C6k5_mBb.cjs → table-VJvz-727.cjs} +2 -2
  256. package/dist/{table-C6k5_mBb.cjs.map → table-VJvz-727.cjs.map} +1 -1
  257. package/dist/table.cjs +1 -1
  258. package/dist/table.js +1 -1
  259. package/dist/{tabs-compatibility-BDYGWYt9.js → tabs-compatibility-AgKKYmI5.js} +2 -2
  260. package/dist/{tabs-compatibility-BDYGWYt9.js.map → tabs-compatibility-AgKKYmI5.js.map} +1 -1
  261. package/dist/{tabs-compatibility-E6PF7hQz.cjs → tabs-compatibility-CW-PIM9d.cjs} +2 -2
  262. package/dist/{tabs-compatibility-E6PF7hQz.cjs.map → tabs-compatibility-CW-PIM9d.cjs.map} +1 -1
  263. package/dist/tabs.cjs +1 -1
  264. package/dist/tabs.js +1 -1
  265. package/dist/tailwind.mixin-B2zdnyl3.js +66 -0
  266. package/dist/tailwind.mixin-B2zdnyl3.js.map +1 -0
  267. package/dist/tailwind.mixin-jb4F7UKY.cjs +2 -0
  268. package/dist/tailwind.mixin-jb4F7UKY.cjs.map +1 -0
  269. package/dist/teleport.cjs +1 -1
  270. package/dist/teleport.js +1 -1
  271. package/dist/{textarea-Co6I_o3X.cjs → textarea-BaLoY3ob.cjs} +2 -2
  272. package/dist/{textarea-Co6I_o3X.cjs.map → textarea-BaLoY3ob.cjs.map} +1 -1
  273. package/dist/{textarea-DoN-MEAm.js → textarea-DwVYF8dB.js} +2 -2
  274. package/dist/{textarea-DoN-MEAm.js.map → textarea-DwVYF8dB.js.map} +1 -1
  275. package/dist/textarea.cjs +1 -1
  276. package/dist/textarea.js +1 -1
  277. package/dist/{theme-button-ThFGPN8O.cjs → theme-button-CEtw4kPb.cjs} +2 -2
  278. package/dist/{theme-button-ThFGPN8O.cjs.map → theme-button-CEtw4kPb.cjs.map} +1 -1
  279. package/dist/{theme-button-Dph-q9Mr.js → theme-button-DPGDbgiJ.js} +2 -2
  280. package/dist/{theme-button-Dph-q9Mr.js.map → theme-button-DPGDbgiJ.js.map} +1 -1
  281. package/dist/theme-button.cjs +1 -1
  282. package/dist/theme-button.js +1 -1
  283. package/dist/{theme-controller-boat-CuZR2voM.js → theme-controller-boat-FO4rAj0Y.js} +3 -3
  284. package/dist/{theme-controller-boat-CuZR2voM.js.map → theme-controller-boat-FO4rAj0Y.js.map} +1 -1
  285. package/dist/{theme-controller-boat-DEEYmCYz.cjs → theme-controller-boat-uK9KhtCB.cjs} +2 -2
  286. package/dist/{theme-controller-boat-DEEYmCYz.cjs.map → theme-controller-boat-uK9KhtCB.cjs.map} +1 -1
  287. package/dist/theme.cjs +1 -1
  288. package/dist/theme.js +1 -1
  289. package/dist/{timezone-DtVQwPS4.cjs → timezone-DNinUV8o.cjs} +2 -2
  290. package/dist/{timezone-DtVQwPS4.cjs.map → timezone-DNinUV8o.cjs.map} +1 -1
  291. package/dist/{timezone-BQWtoTWa.js → timezone-W5jokq0R.js} +3 -3
  292. package/dist/{timezone-BQWtoTWa.js.map → timezone-W5jokq0R.js.map} +1 -1
  293. package/dist/{tooltip-RDlMUtW3.js → tooltip-9iRA_OIc.js} +2 -2
  294. package/dist/{tooltip-RDlMUtW3.js.map → tooltip-9iRA_OIc.js.map} +1 -1
  295. package/dist/{tooltip-Bi0O1GC_.cjs → tooltip-BmlgcS7k.cjs} +2 -2
  296. package/dist/{tooltip-Bi0O1GC_.cjs.map → tooltip-BmlgcS7k.cjs.map} +1 -1
  297. package/dist/tooltip.cjs +1 -1
  298. package/dist/tooltip.js +1 -1
  299. package/dist/{tree-BKKH1v5L.js → tree-BoR0l03t.js} +2 -2
  300. package/dist/{tree-BKKH1v5L.js.map → tree-BoR0l03t.js.map} +1 -1
  301. package/dist/{tree-DD5xQM9U.cjs → tree-DibyLLvH.cjs} +2 -2
  302. package/dist/{tree-DD5xQM9U.cjs.map → tree-DibyLLvH.cjs.map} +1 -1
  303. package/dist/tree.cjs +1 -1
  304. package/dist/tree.js +1 -1
  305. package/dist/{typewriter-DGg3AUrm.js → typewriter-BFA9-JZ7.js} +4 -4
  306. package/dist/{typewriter-DGg3AUrm.js.map → typewriter-BFA9-JZ7.js.map} +1 -1
  307. package/dist/{typewriter-ktB55ses.cjs → typewriter-CvyR8JyQ.cjs} +2 -2
  308. package/dist/{typewriter-ktB55ses.cjs.map → typewriter-CvyR8JyQ.cjs.map} +1 -1
  309. package/dist/typewriter.cjs +1 -1
  310. package/dist/typewriter.js +1 -1
  311. package/dist/{typography-V_yW7FVq.cjs → typography-BOag31pu.cjs} +2 -2
  312. package/dist/{typography-V_yW7FVq.cjs.map → typography-BOag31pu.cjs.map} +1 -1
  313. package/dist/{typography-BH_toyoJ.js → typography-DEFV0BMG.js} +2 -2
  314. package/dist/{typography-BH_toyoJ.js.map → typography-DEFV0BMG.js.map} +1 -1
  315. package/dist/typography.cjs +1 -1
  316. package/dist/typography.js +1 -1
  317. package/package.json +1 -1
  318. package/types/src/sheet/index.d.ts +0 -1
  319. package/types/src/sheet/sheet.d.ts +4 -8
  320. package/types/src/sheet/sheet.service.d.ts +0 -10
  321. package/dist/sheet-CAdKgpXx.js +0 -153
  322. package/dist/sheet-CAdKgpXx.js.map +0 -1
  323. package/dist/sheet-CwSsed6P.cjs +0 -56
  324. package/dist/sheet-CwSsed6P.cjs.map +0 -1
  325. package/dist/sheet.service-lSWe4XK5.cjs +0 -2
  326. package/dist/sheet.service-lSWe4XK5.cjs.map +0 -1
  327. package/dist/sheet.service-xiXyDA0o.js +0 -80
  328. package/dist/sheet.service-xiXyDA0o.js.map +0 -1
  329. package/dist/tailwind.mixin-CT1X-pzi.cjs +0 -2
  330. package/dist/tailwind.mixin-CT1X-pzi.cjs.map +0 -1
  331. package/dist/tailwind.mixin-uozKd41N.js +0 -64
  332. package/dist/tailwind.mixin-uozKd41N.js.map +0 -1
@@ -1,153 +0,0 @@
1
- import { fromEvent as l, tap as d, of as w, take as k, merge as E, takeUntil as x } from "rxjs";
2
- import "rxjs/operators";
3
- import { classMap as y } from "lit/directives/class-map.js";
4
- import "lit/directives/style-map.js";
5
- import { customElement as g, property as c, queryAssignedElements as $ } from "lit/decorators.js";
6
- import { T as S } from "./tailwind.mixin-uozKd41N.js";
7
- import { css as C, html as f } from "lit";
8
- import { $ as A } from "./litElement.mixin-BiApE17B.js";
9
- import { a as O } from "./area.component-C895jU0E.js";
10
- import { cache as B } from "lit/directives/cache.js";
11
- import { ifDefined as v } from "lit/directives/if-defined.js";
12
- import { createRef as F, ref as U } from "lit/directives/ref.js";
13
- import { S as j, s as m, a as D, b as H } from "./sheet.service-xiXyDA0o.js";
14
- var P = Object.getOwnPropertyDescriptor;
15
- let b = class extends S(C``) {
16
- render() {
17
- return f`
18
- <sch-flex class="absolute top-0 left-0 md:left-[unset] md:right-0">
19
- <div class="block md:hidden flex-1 justify-start items-start">
20
- <slot name="back">
21
- <schmancy-button
22
- @click=${() => {
23
- this.dispatchEvent(new CustomEvent("dismiss", { bubbles: !0, composed: !0 }));
24
- }}
25
- >
26
- <span class="text-[24px]">&#8592; </span>
27
- </schmancy-button>
28
- </slot>
29
- </div>
30
-
31
- <div class="hidden md:block flex-1 justify-end items-end">
32
- <slot name="actions">
33
- <schmancy-icon-button
34
- @click=${() => {
35
- this.dispatchEvent(new CustomEvent("dismiss", { bubbles: !0, composed: !0 }));
36
- }}
37
- >
38
- close
39
- </schmancy-icon-button>
40
- </slot>
41
- </div>
42
- </sch-flex>
43
- `;
44
- }
45
- };
46
- b = ((t, e, s, n) => {
47
- for (var i, o = n > 1 ? void 0 : n ? P(e, s) : e, h = t.length - 1; h >= 0; h--) (i = t[h]) && (o = i(o) || o);
48
- return o;
49
- })([g("schmancy-sheet-header")], b);
50
- var z = Object.defineProperty, R = Object.getOwnPropertyDescriptor, r = (t, e, s, n) => {
51
- for (var i, o = n > 1 ? void 0 : n ? R(e, s) : e, h = t.length - 1; h >= 0; h--) (i = t[h]) && (o = (n ? i(e, s, o) : i(o)) || o);
52
- return n && o && z(e, s, o), o;
53
- };
54
- let a = class extends A(":host{--overlay-color: var(--schmancy-sys-color-surface-dim);--transition-timing: cubic-bezier(.16, 1, .3, 1);--transition-duration: .25s;--sheet-radius: 0;--max-height: 100vh}.sheet{position:fixed;inset:0;z-index:999;display:flex;visibility:visible;transition:visibility var(--transition-duration) var(--transition-timing)}.sheet[aria-hidden=true]{visibility:hidden;pointer-events:none}.sheet[aria-hidden=true] .content{transform:translateY(100%)}.sheet[aria-hidden=true] .content[data-position=side]{transform:translate(100%)}.sheet[aria-hidden=true] .overlay{opacity:0}.overlay{position:absolute;inset:0;background:var(--overlay-color);opacity:.8;transition:opacity var(--transition-duration) var(--transition-timing)}.content{z-index:1;transition:transform var(--transition-duration) var(--transition-timing);overflow:hidden}.content[data-position=side]{height:100vh}.content[data-position=side] #body{max-height:100vh}.content[data-position=side]{height:100%;min-width:320px;max-width:90vw;width:fit-content;margin-left:auto}.content[data-position=bottom] #body{max-height:90vh}.content[data-position=bottom]{width:100%;margin-top:auto;border-radius:16px 16px 0 0;max-height:90vh}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}") {
55
- constructor() {
56
- super(...arguments), this.open = !1, this.header = "visible", this.position = j.Side, this.persist = !1, this.lock = !1, this.handleHistory = !0, this.title = "", this.sheetRef = F(), this.focusAttribute = "autofocus", this.lastFocusedElement = null, this.handleOverlayClick = (t) => {
57
- t.stopPropagation(), this.lock || m.dismiss(this.uid);
58
- }, this.handleHeaderDismiss = (t) => {
59
- t.stopPropagation(), m.dismiss(this.uid);
60
- };
61
- }
62
- onOpenChange(t, e) {
63
- e ? (this.lastFocusedElement = document.activeElement, this.setBackgroundInert(!0), this.focus()) : (this.setBackgroundInert(!1), this.lastFocusedElement?.focus(), this.lastFocusedElement = null);
64
- }
65
- connectedCallback() {
66
- super.connectedCallback(), this.setupEventListeners();
67
- }
68
- disconnectedCallback() {
69
- super.disconnectedCallback(), this.disconnecting.next(!0);
70
- }
71
- setupEventListeners() {
72
- const t = this.handleHistory ? l(window, "popstate").pipe(d((i) => {
73
- i.preventDefault(), this.closeSheet();
74
- })) : w(null).pipe(k(0)), e = l(this, "keydown").pipe(d((i) => {
75
- i.key === "Escape" && !this.lock && this.open && (i.preventDefault(), i.stopPropagation(), m.dismiss(this.uid));
76
- })), s = l(window, D).pipe(d((i) => {
77
- i.detail.uid === this.uid && this.dispatchEvent(new CustomEvent(H, { detail: { sheet: this }, bubbles: !0, composed: !0 }));
78
- })), n = l(window, "schmancy-sheet-render").pipe(d((i) => {
79
- const o = i.detail;
80
- o.uid === this.uid && O.push({ area: this.uid, component: o.component, historyStrategy: "silent" });
81
- }));
82
- E(t, e, s, n).pipe(x(this.disconnecting)).subscribe();
83
- }
84
- setBackgroundInert(t) {
85
- const e = this.parentElement;
86
- e && Array.from(e.children).forEach((s) => {
87
- s !== this && s instanceof HTMLElement && (t ? s.setAttribute("inert", "") : s.removeAttribute("inert"));
88
- }), this.parentElement === document.body && Array.from(document.body.children).forEach((s) => {
89
- s !== this && s !== e && s instanceof HTMLElement && (t ? s.setAttribute("inert", "") : s.removeAttribute("inert"));
90
- });
91
- }
92
- setIsSheetShown(t) {
93
- this.sheetRef.value?.setAttribute("aria-hidden", String(!t)), this.sheetRef.value?.setAttribute("aria-modal", String(t));
94
- }
95
- closeSheet() {
96
- this.open = !1, this.dispatchEvent(new CustomEvent("close"));
97
- }
98
- getFocusElement() {
99
- const t = `[${this.focusAttribute}]`;
100
- return this.assignedElements.find((e) => e.matches(t) || e.querySelector(t)) ?? null;
101
- }
102
- focus() {
103
- const t = this.querySelector("[autofocus]");
104
- t ? t.focus() : this.getFocusElement()?.focus();
105
- }
106
- render() {
107
- const t = { sheet: !0, "sheet--open": this.open, "sheet--locked": this.lock }, e = { overlay: !0, "overlay--interactive": !this.lock };
108
- return f`
109
- <div
110
- class=${y(t)}
111
- role="dialog"
112
- aria-labelledby=${v(this.header !== "hidden" ? "sheet-title" : void 0)}
113
- aria-hidden=${!this.open}
114
- aria-modal=${this.open}
115
- tabindex="0"
116
- ${U(this.sheetRef)}
117
- >
118
- <div class=${y(e)} @click=${this.lock ? void 0 : this.handleOverlayClick}></div>
119
- <schmancy-grid
120
- rows=${this.header === "hidden" ? "1fr" : "auto 1fr"}
121
- class="content w-full"
122
- data-position=${this.position}
123
- >
124
- ${B(this.header !== "hidden" ? f`<schmancy-sheet-header
125
- class="sticky top-0 z-50 w-full"
126
- @dismiss=${this.handleHeaderDismiss}
127
- id="sheet-title"
128
- title=${v(this.title || void 0)}
129
- ></schmancy-sheet-header>` : "")}
130
-
131
- <schmancy-surface rounded="left" fill="all" id="body" class="overflow-auto" type="surface">
132
- <schmancy-scroll>
133
- <schmancy-area name=${this.uid}>
134
- <slot></slot>
135
- </schmancy-area>
136
- </schmancy-scroll>
137
- </schmancy-surface>
138
- </schmancy-grid>
139
- </div>
140
- `;
141
- }
142
- };
143
- var p, u;
144
- r([c({ type: String, reflect: !0 })], a.prototype, "uid", 2), r([c({ type: Boolean, reflect: !0 })], a.prototype, "open", 2), r([c({ type: String, reflect: !0 })], a.prototype, "header", 2), r([c({ type: String, reflect: !0 })], a.prototype, "position", 2), r([c({ type: Boolean, reflect: !0 })], a.prototype, "persist", 2), r([c({ type: Boolean, reflect: !0 })], a.prototype, "lock", 2), r([c({ type: Boolean, reflect: !0 })], a.prototype, "handleHistory", 2), r([c({ type: String, reflect: !0 })], a.prototype, "title", 2), r([$({ flatten: !0 })], a.prototype, "assignedElements", 2), r([c()], a.prototype, "focusAttribute", 2), r([(p = "open", (t, e) => {
145
- const { willUpdate: s } = t;
146
- u = Object.assign({ waitUntilFirstUpdate: !1 }, u), t.willUpdate = function(n) {
147
- if (s.call(this, n), n.has(p)) {
148
- const i = n.get(p), o = this[p];
149
- i !== o && (u?.waitUntilFirstUpdate && !this.hasUpdated || this[e].call(this, i, o));
150
- }
151
- };
152
- })], a.prototype, "onOpenChange", 1), a = r([g("schmancy-sheet")], a);
153
- //# sourceMappingURL=sheet-CAdKgpXx.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"sheet-CAdKgpXx.js","sources":["../src/sheet/header.ts","../src/sheet/sheet.ts","../src/sheet/hook.ts"],"sourcesContent":["import { TailwindElement } from '@mixins/index'\nimport { css, html } from 'lit'\nimport { customElement } from 'lit/decorators.js'\n\n@customElement('schmancy-sheet-header')\nexport default class SchmancySheetHeader extends TailwindElement(css``) {\n\trender() {\n\t\treturn html`\n\t\t\t<sch-flex class=\"absolute top-0 left-0 md:left-[unset] md:right-0\">\n\t\t\t\t<div class=\"block md:hidden flex-1 justify-start items-start\">\n\t\t\t\t\t<slot name=\"back\">\n\t\t\t\t\t\t<schmancy-button\n\t\t\t\t\t\t\t@click=${() => {\n\t\t\t\t\t\t\t\tthis.dispatchEvent(\n\t\t\t\t\t\t\t\t\tnew CustomEvent('dismiss', {\n\t\t\t\t\t\t\t\t\t\tbubbles: true,\n\t\t\t\t\t\t\t\t\t\tcomposed: true,\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}}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<span class=\"text-[24px]\">&#8592; </span>\n\t\t\t\t\t\t</schmancy-button>\n\t\t\t\t\t</slot>\n\t\t\t\t</div>\n\n\t\t\t\t<div class=\"hidden md:block flex-1 justify-end items-end\">\n\t\t\t\t\t<slot name=\"actions\">\n\t\t\t\t\t\t<schmancy-icon-button\n\t\t\t\t\t\t\t@click=${() => {\n\t\t\t\t\t\t\t\tthis.dispatchEvent(\n\t\t\t\t\t\t\t\t\tnew CustomEvent('dismiss', {\n\t\t\t\t\t\t\t\t\t\tbubbles: true,\n\t\t\t\t\t\t\t\t\t\tcomposed: true,\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}}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\tclose\n\t\t\t\t\t\t</schmancy-icon-button>\n\t\t\t\t\t</slot>\n\t\t\t\t</div>\n\t\t\t</sch-flex>\n\t\t`\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-sheet-header': SchmancySheetHeader\n\t}\n}\n","import { $LitElement } from '@mixins/index'\nimport { area } from '../area'\nimport { html } from 'lit'\nimport { customElement, property, queryAssignedElements } from 'lit/decorators.js'\nimport { cache } from 'lit/directives/cache.js'\nimport { classMap } from 'lit/directives/class-map.js'\nimport { ifDefined } from 'lit/directives/if-defined.js'\nimport { createRef, ref } from 'lit/directives/ref.js'\nimport { fromEvent, merge, of, take, takeUntil, tap } from 'rxjs'\nimport { on } from './hook'\nimport style from './sheet.scss?inline'\nimport {\n\tSchmancySheetPosition,\n\tSheetHereMorty,\n\tSheetWhereAreYouRicky,\n\tSheetWhereAreYouRickyEvent,\n\tsheet,\n} from './sheet.service'\n\n@customElement('schmancy-sheet')\nexport default class SchmancySheet extends $LitElement(style) {\n\t@property({ type: String, reflect: true }) uid!: string\n\t@property({ type: Boolean, reflect: true }) open = false\n\t@property({ type: String, reflect: true }) header: 'hidden' | 'visible' = 'visible'\n\t@property({ type: String, reflect: true }) position: SchmancySheetPosition = SchmancySheetPosition.Side\n\t@property({ type: Boolean, reflect: true }) persist = false\n\t@property({ type: Boolean, reflect: true }) lock = false\n\t@property({ type: Boolean, reflect: true }) handleHistory = true\n\t@property({ type: String, reflect: true }) title = ''\n\n\t// Use ref directive instead of @query\n\tprivate sheetRef = createRef<HTMLDivElement>()\n\t@queryAssignedElements({ flatten: true }) private assignedElements!: HTMLElement[]\n\n\t@property() focusAttribute = 'autofocus'\n\tprivate lastFocusedElement: HTMLElement | null = null\n\n\t@on('open')\n\tonOpenChange(_oldValue: boolean, newValue: boolean) {\n\t\tif (newValue) {\n\t\t\tthis.lastFocusedElement = document.activeElement as HTMLElement\n\t\t\t// Use native inert attribute to prevent focus outside sheet\n\t\t\tthis.setBackgroundInert(true)\n\t\t\tthis.focus()\n\t\t} else {\n\t\t\tthis.setBackgroundInert(false)\n\t\t\tthis.lastFocusedElement?.focus()\n\t\t\tthis.lastFocusedElement = null\n\t\t}\n\t}\n\n\tconnectedCallback() {\n\t\tsuper.connectedCallback()\n\t\tthis.setupEventListeners()\n\t}\n\n\tdisconnectedCallback() {\n\t\tsuper.disconnectedCallback()\n\t\tthis.disconnecting.next(true)\n\t}\n\n\tprivate setupEventListeners() {\n\t\t// Handle browser back button - only if handleHistory is true\n\t\tconst popState$ = this.handleHistory\n\t\t\t? fromEvent<PopStateEvent>(window, 'popstate').pipe(\n\t\t\t\t\ttap(e => {\n\t\t\t\t\t\te.preventDefault()\n\t\t\t\t\t\tthis.closeSheet()\n\t\t\t\t\t}),\n\t\t\t\t)\n\t\t\t: of(null).pipe(take(0)) // Empty observable if handleHistory is false\n\n\t\t// Handle ESC key - listen on the sheet element for better event capture\n\t\tconst keyUp$ = fromEvent<KeyboardEvent>(this, 'keydown').pipe(\n\t\t\ttap(event => {\n\t\t\t\tif (event.key === 'Escape' && !this.lock && this.open) {\n\t\t\t\t\tevent.preventDefault()\n\t\t\t\t\tevent.stopPropagation()\n\t\t\t\t\tsheet.dismiss(this.uid)\n\t\t\t\t}\n\t\t\t}),\n\t\t)\n\n\t\t// Handle inter-component communication\n\t\tconst rickyComm$ = fromEvent<SheetWhereAreYouRickyEvent>(window, SheetWhereAreYouRicky).pipe(\n\t\t\ttap(e => {\n\t\t\t\tif (e.detail.uid === this.uid)\n\t\t\t\t\tthis.dispatchEvent(\n\t\t\t\t\t\tnew CustomEvent(SheetHereMorty, {\n\t\t\t\t\t\t\tdetail: { sheet: this },\n\t\t\t\t\t\t\tbubbles: true,\n\t\t\t\t\t\t\tcomposed: true,\n\t\t\t\t\t\t}),\n\t\t\t\t\t)\n\t\t\t}),\n\t\t)\n\n\t\t// Handle render events from sheet service\n\t\tconst render$ = fromEvent<CustomEvent>(window, 'schmancy-sheet-render').pipe(\n\t\t\ttap(e => {\n\t\t\t\tconst detail = e.detail\n\t\t\t\tif (detail.uid === this.uid) {\n\t\t\t\t\t// Use area router to handle component resolution\n\t\t\t\t\tarea.push({\n\t\t\t\t\t\tarea: this.uid,\n\t\t\t\t\t\tcomponent: detail.component,\n\t\t\t\t\t\thistoryStrategy: 'silent',\n\t\t\t\t\t})\n\t\t\t\t}\n\t\t\t}),\n\t\t)\n\n\t\tmerge(popState$, keyUp$, rickyComm$, render$).pipe(takeUntil(this.disconnecting)).subscribe()\n\t}\n\n\tprivate setBackgroundInert(inert: boolean) {\n\t\t// Get all sibling elements and make them inert\n\t\tconst parent = this.parentElement\n\t\tif (parent) {\n\t\t\tArray.from(parent.children).forEach(child => {\n\t\t\t\tif (child !== this && child instanceof HTMLElement) {\n\t\t\t\t\tif (inert) {\n\t\t\t\t\t\tchild.setAttribute('inert', '')\n\t\t\t\t\t} else {\n\t\t\t\t\t\tchild.removeAttribute('inert')\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t})\n\t\t}\n\n\t\t// Also handle body's direct children if sheet is attached to body\n\t\tif (this.parentElement === document.body) {\n\t\t\tArray.from(document.body.children).forEach(child => {\n\t\t\t\tif (child !== this && child !== parent && child instanceof HTMLElement) {\n\t\t\t\t\tif (inert) {\n\t\t\t\t\t\tchild.setAttribute('inert', '')\n\t\t\t\t\t} else {\n\t\t\t\t\t\tchild.removeAttribute('inert')\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t})\n\t\t}\n\t}\n\n\tsetIsSheetShown(isShown: boolean) {\n\t\tthis.sheetRef.value?.setAttribute('aria-hidden', String(!isShown))\n\t\tthis.sheetRef.value?.setAttribute('aria-modal', String(isShown))\n\t}\n\n\tcloseSheet() {\n\t\tthis.open = false\n\t\tthis.dispatchEvent(new CustomEvent('close'))\n\t}\n\n\tprivate getFocusElement(): HTMLElement | null {\n\t\tconst selector = `[${this.focusAttribute}]`\n\t\treturn (this.assignedElements.find(el => el.matches(selector) || el.querySelector(selector)) as HTMLElement) ?? null\n\t}\n\n\toverride focus() {\n\t\t// First try native autofocus attribute\n\t\tconst autofocusElement = this.querySelector('[autofocus]') as HTMLElement\n\t\tif (autofocusElement) {\n\t\t\tautofocusElement.focus()\n\t\t\treturn\n\t\t}\n\n\t\t// Fallback to custom focus attribute\n\t\tthis.getFocusElement()?.focus()\n\t}\n\n\tprivate handleOverlayClick = (e: Event) => {\n\t\te.stopPropagation()\n\t\tif (!this.lock) {\n\t\t\tsheet.dismiss(this.uid)\n\t\t}\n\t}\n\n\tprivate handleHeaderDismiss = (e: CustomEvent) => {\n\t\te.stopPropagation()\n\t\tsheet.dismiss(this.uid)\n\t}\n\n\trender() {\n\t\tconst sheetClasses = {\n\t\t\tsheet: true,\n\t\t\t'sheet--open': this.open,\n\t\t\t'sheet--locked': this.lock,\n\t\t}\n\n\t\tconst overlayClasses = {\n\t\t\toverlay: true,\n\t\t\t'overlay--interactive': !this.lock,\n\t\t}\n\n\t\treturn html`\n\t\t\t<div\n\t\t\t\tclass=${classMap(sheetClasses)}\n\t\t\t\trole=\"dialog\"\n\t\t\t\taria-labelledby=${ifDefined(this.header !== 'hidden' ? 'sheet-title' : undefined)}\n\t\t\t\taria-hidden=${!this.open}\n\t\t\t\taria-modal=${this.open}\n\t\t\t\ttabindex=\"0\"\n\t\t\t\t${ref(this.sheetRef)}\n\t\t\t>\n\t\t\t\t<div class=${classMap(overlayClasses)} @click=${this.lock ? undefined : this.handleOverlayClick}></div>\n\t\t\t\t<schmancy-grid\n\t\t\t\t\trows=${this.header === 'hidden' ? '1fr' : 'auto 1fr'}\n\t\t\t\t\tclass=\"content w-full\"\n\t\t\t\t\tdata-position=${this.position}\n\t\t\t\t>\n\t\t\t\t\t${cache(\n\t\t\t\t\t\tthis.header !== 'hidden'\n\t\t\t\t\t\t\t? html`<schmancy-sheet-header\n\t\t\t\t\t\t\t\t\tclass=\"sticky top-0 z-50 w-full\"\n\t\t\t\t\t\t\t\t\t@dismiss=${this.handleHeaderDismiss}\n\t\t\t\t\t\t\t\t\tid=\"sheet-title\"\n\t\t\t\t\t\t\t\t\ttitle=${ifDefined(this.title || undefined)}\n\t\t\t\t\t\t\t\t></schmancy-sheet-header>`\n\t\t\t\t\t\t\t: '',\n\t\t\t\t\t)}\n\n\t\t\t\t\t<schmancy-surface rounded=\"left\" fill=\"all\" id=\"body\" class=\"overflow-auto\" type=\"surface\">\n\t\t\t\t\t\t<schmancy-scroll>\n\t\t\t\t\t\t\t<schmancy-area name=${this.uid}>\n\t\t\t\t\t\t\t\t<slot></slot>\n\t\t\t\t\t\t\t</schmancy-area>\n\t\t\t\t\t\t</schmancy-scroll>\n\t\t\t\t\t</schmancy-surface>\n\t\t\t\t</schmancy-grid>\n\t\t\t</div>\n\t\t`\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-sheet': SchmancySheet\n\t}\n}\n","// @watch decorator\n//\n// Runs when an observed property changes, e.g. @property or @state, but before the component updates.\n//\n// To wait for an update to complete after a change occurs, use `await this.updateComplete` in the handler. To start\n// watching after the initial update/render, use `{ waitUntilFirstUpdate: true }` or `this.hasUpdated` in the handler.\n//\n// Usage:\n//\n// @watch('propName')\n// handlePropChange(oldValue, newValue) {\n// ...\n// }\n//\ninterface WatchOptions {\n\twaitUntilFirstUpdate?: boolean\n}\n\nexport function on(propName: string, options?: WatchOptions) {\n\treturn (protoOrDescriptor: any, name: string): any => {\n\t\tconst { willUpdate } = protoOrDescriptor\n\n\t\toptions = Object.assign({ waitUntilFirstUpdate: false }, options) as WatchOptions\n\n\t\tprotoOrDescriptor.willUpdate = function (changedProps: Map<string, any>) {\n\t\t\twillUpdate.call(this, changedProps)\n\n\t\t\tif (changedProps.has(propName)) {\n\t\t\t\tconst oldValue = changedProps.get(propName)\n\t\t\t\tconst newValue = this[propName]\n\n\t\t\t\tif (oldValue !== newValue) {\n\t\t\t\t\tif (!options?.waitUntilFirstUpdate || this.hasUpdated) {\n\t\t\t\t\t\tthis[name].call(this, oldValue, newValue)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n"],"names":["SchmancySheetHeader","TailwindElement","css","render","html","this","dispatchEvent","CustomEvent","bubbles","composed","customElement","SchmancySheet","$LitElement","constructor","super","arguments","open","header","position","SchmancySheetPosition","Side","persist","lock","handleHistory","title","sheetRef","createRef","focusAttribute","lastFocusedElement","handleOverlayClick","e","stopPropagation","sheet","dismiss","uid","handleHeaderDismiss","_oldValue","newValue","document","activeElement","setBackgroundInert","focus","connectedCallback","setupEventListeners","disconnectedCallback","disconnecting","next","popState$","fromEvent","window","pipe","tap","preventDefault","closeSheet","of","take","keyUp$","event","key","rickyComm$","SheetWhereAreYouRicky","detail","SheetHereMorty","render$","area","push","component","historyStrategy","merge","takeUntil","subscribe","inert","parent","parentElement","Array","from","children","forEach","child","HTMLElement","setAttribute","removeAttribute","body","isShown","value","String","getFocusElement","selector","assignedElements","find","el","matches","querySelector","autofocusElement","sheetClasses","overlayClasses","overlay","classMap","ifDefined","ref","cache","propName","options","__decorateClass","property","type","reflect","prototype","Boolean","queryAssignedElements","flatten","protoOrDescriptor","name","willUpdate","Object","assign","waitUntilFirstUpdate","changedProps","call","has","oldValue","get","hasUpdated"],"mappings":";;;;;;;;;;;;;;AAKA,IAAqBA,IAArB,cAAiDC,EAAgBC,GAAA,EAAA;AAAA,EAChE,SAAAC;AACC,WAAOC;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,gBAKO,MAAA;AACRC,WAAKC,cACJ,IAAIC,YAAY,WAAW,EAC1BC,SAAAA,IACAC,UAAAA,GAAU,CAAA,CAAA;AAAA,IAAA,CAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,gBAaJ,MAAA;AACRJ,WAAKC,cACJ,IAAIC,YAAY,WAAW,EAC1BC,SAAAA,IACAC,UAAAA,GAAU,CAAA,CAAA;AAAA,IAAA,CAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAWnB;AAAA;AAvCoBT;;;GAArB,CADCU,EAAc,uBAAA,CAAA,GACMV;;;;;ACerB,IAAqBW,IAArB,cAA2CC;EAA3C,cAAAC;AAAAC,UAAAA,GAAAC,SAAAA,GAE6CV,KAAAW,OAAAA,IACDX,KAAAY,SAA+B,WAC/BZ,KAAAa,WAAkCC,EAAsBC,MACvDf,KAAAgB,UAAAA,IACAhB,KAAAiB,OAAAA,IACAjB,KAAAkB,gBAAAA,IACDlB,KAAAmB,QAAQ,IAGnDnB,KAAQoB,WAAWC,EAAAA,GAGPrB,KAAAsB,iBAAiB,aAC7BtB,KAAQuB,qBAAyC,MAwIjDvB,KAAQwB,qBAAsBC,OAAAA;AAC7BA,QAAEC,gBAAAA,GACG1B,KAAKiB,QACTU,EAAMC,QAAQ5B,KAAK6B;OAIrB7B,KAAQ8B,sBAAuBL,OAAAA;AAC9BA,QAAEC,gBAAAA,GACFC,EAAMC,QAAQ5B,KAAK6B,GAAAA;AAAAA,IAAAA;AAAAA,EACpB;AAAA,EA/IA,aAAaE,GAAoBC;AAC5BA,IAAAA,KACHhC,KAAKuB,qBAAqBU,SAASC,eAEnClC,KAAKmC,qBAAmB,GACxBnC,KAAKoC,YAELpC,KAAKmC,mBAAAA,KACLnC,KAAKuB,oBAAoBa,MAAAA,GACzBpC,KAAKuB,qBAAqB;AAAA,EAE5B;AAAA,EAEA,oBAAAc;AACC5B,UAAM4B,kBAAAA,GACNrC,KAAKsC,oBAAAA;AAAAA,EACN;AAAA,EAEA,uBAAAC;AACC9B,UAAM8B,qBAAAA,GACNvC,KAAKwC,cAAcC,OAAK;AAAA,EACzB;AAAA,EAEQ,sBAAAH;AAEP,UAAMI,IAAY1C,KAAKkB,gBACpByB,EAAyBC,QAAQ,UAAA,EAAYC,KAC7CC,EAAIrB,CAAAA;AACHA,MAAAA,EAAEsB,eAAAA,GACF/C,KAAKgD,WAAAA;AAAAA,IAAAA,CAAAA,CAAAA,IAGNC,EAAG,IAAA,EAAMJ,KAAKK,EAAK,CAAA,CAAA,GAGhBC,IAASR,EAAyB3C,MAAM,SAAA,EAAW6C,KACxDC,EAAIM,CAAAA,MAAAA;AACe,MAAdA,EAAMC,QAAQ,YAARA,CAAqBrD,KAAKiB,QAAQjB,KAAKW,SAChDyC,EAAML,eAAAA,GACNK,EAAM1B,mBACNC,EAAMC,QAAQ5B,KAAK6B,GAAAA;AAAAA,IAAAA,CAAAA,CAAAA,GAMhByB,IAAaX,EAAsCC,QAAQW,CAAAA,EAAuBV,KACvFC,EAAIrB,CAAAA,MAAAA;AACCA,MAAAA,EAAE+B,OAAO3B,QAAQ7B,KAAK6B,OACzB7B,KAAKC,cACJ,IAAIC,YAAYuD,GAAgB,EAC/BD,QAAQ,EAAE7B,OAAO3B,KAAAA,GACjBG,aACAC,UAAAA,GAAU,CAAA,CAAA;AAAA,IAAA,CAAA,CAAA,GAOTsD,IAAUf,EAAuBC,QAAQ,yBAAyBC,KACvEC,EAAIrB,CAAAA,MAAAA;AACH,YAAM+B,IAAS/B,EAAE+B;AACbA,MAAAA,EAAO3B,QAAQ7B,KAAK6B,OAEvB8B,EAAKC,KAAK,EACTD,MAAM3D,KAAK6B,KACXgC,WAAWL,EAAOK,WAClBC,iBAAiB,SAAA,CAAA;AAAA,IAAA,CAAA,CAAA;AAMrBC,IAAAA,EAAMrB,GAAWS,GAAQG,GAAYI,GAASb,KAAKmB,EAAUhE,KAAKwC,aAAAA,CAAAA,EAAgByB,UAAAA;AAAAA,EACnF;AAAA,EAEQ,mBAAmBC,GAAAA;AAE1B,UAAMC,IAASnE,KAAKoE;AAChBD,IAAAA,KACHE,MAAMC,KAAKH,EAAOI,QAAAA,EAAUC,QAAQC,CAAAA,MAAAA;AAC/BA,MAAAA,MAAUzE,QAAQyE,aAAiBC,gBAClCR,IACHO,EAAME,aAAa,SAAS,EAAA,IAE5BF,EAAMG,gBAAgB,OAAA;AAAA,IAAA,CAAA,GAOtB5E,KAAKoE,kBAAkBnC,SAAS4C,QACnCR,MAAMC,KAAKrC,SAAS4C,KAAKN,UAAUC,QAAQC,CAAAA,MAAAA;AACtCA,MAAAA,MAAUzE,QAAQyE,MAAUN,KAAUM,aAAiBC,gBACtDR,IACHO,EAAME,aAAa,SAAS,EAAA,IAE5BF,EAAMG,gBAAgB,OAAA;AAAA,IAAA,CAAA;AAAA,EAK3B;AAAA,EAEA,gBAAgBE,GAAAA;AACf9E,SAAKoB,SAAS2D,OAAOJ,aAAa,eAAeK,OAAAA,CAAQF,CAAAA,CAAAA,GACzD9E,KAAKoB,SAAS2D,OAAOJ,aAAa,cAAcK,OAAOF,CAAAA,CAAAA;AAAAA,EACxD;AAAA,EAEA,aAAA9B;AACChD,SAAKW,OAAAA,IACLX,KAAKC,cAAc,IAAIC,YAAY,OAAA,CAAA;AAAA,EACpC;AAAA,EAEQ,kBAAA+E;AACP,UAAMC,IAAW,IAAIlF,KAAKsB,cAAAA;AAC1B,WAAQtB,KAAKmF,iBAAiBC,KAAKC,CAAAA,MAAMA,EAAGC,QAAQJ,CAAAA,KAAaG,EAAGE,cAAcL,CAAAA,CAAAA,KAA8B;AAAA,EACjH;AAAA,EAES,QAAA9C;AAER,UAAMoD,IAAmBxF,KAAKuF,cAAc,aAAA;AACxCC,QACHA,EAAiBpD,UAKlBpC,KAAKiF,gBAAAA,GAAmB7C,MAAAA;AAAAA,EACzB;AAAA,EAcA,SAAAtC;AACC,UAAM2F,IAAe,EACpB9D,OAAAA,IACA,eAAe3B,KAAKW,MACpB,iBAAiBX,KAAKiB,KAAAA,GAGjByE,IAAiB,EACtBC,SAAAA,IACA,wBAAA,CAAyB3F,KAAKiB,KAAAA;AAG/B,WAAOlB;AAAAA;AAAAA,YAEG6F,EAASH,CAAAA,CAAAA;AAAAA;AAAAA,sBAECI,EAAU7F,KAAKY,WAAW,WAAW,gBAAA,MAAgB,CAAA;AAAA,mBACxDZ,KAAKW,IAAAA;AAAAA,iBACPX,KAAKW,IAAAA;AAAAA;AAAAA,MAEhBmF,EAAI9F,KAAKoB,QAAAA,CAAAA;AAAAA;AAAAA,iBAEEwE,EAASF,CAAAA,CAAAA,WAA0B1F,KAAKiB,OAAAA,SAAmBjB,KAAKwB,kBAAAA;AAAAA;AAAAA,YAErExB,KAAKY,WAAW,WAAW,QAAQ,UAAA;AAAA;AAAA,qBAE1BZ,KAAKa,QAAAA;AAAAA;AAAAA,OAEnBkF,EACD/F,KAAKY,WAAW,WACbb;AAAAA;AAAAA,oBAEWC,KAAK8B,mBAAAA;AAAAA;AAAAA,iBAER+D,EAAU7F,KAAKmB,SAAAA,MAAS,CAAA;AAAA,qCAEhC,EAAA,CAAA;AAAA;AAAA;AAAA;AAAA,6BAKoBnB,KAAK6B,GAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,EAQjC;AAAA;ACtNM,IAAYmE,GAAkBC;ADGOC,EAAA,CAA1CC,EAAS,EAAEC,MAAMpB,QAAQqB,SAAAA,GAAS,CAAA,CAAA,GADf/F,EACuBgG,WAAA,OAAA,IACCJ,EAAA,CAA3CC,EAAS,EAAEC,MAAMG,SAASF,SAAAA,QAFP/F,EAEwBgG,WAAA,QAAA,CAAA,GACDJ,EAAA,CAA1CC,EAAS,EAAEC,MAAMpB,QAAQqB,SAAAA,QAHN/F,EAGuBgG,WAAA,UAAA,CAAA,GACAJ,EAAA,CAA1CC,EAAS,EAAEC,MAAMpB,QAAQqB,YAAS,CAAA,CAAA,GAJf/F,EAIuBgG,WAAA,YAAA,CAAA,GACCJ,EAAA,CAA3CC,EAAS,EAAEC,MAAMG,SAASF,SAAAA,GAAS,CAAA,CAAA,GALhB/F,EAKwBgG,WAAA,WAAA,IACAJ,EAAA,CAA3CC,EAAS,EAAEC,MAAMG,SAASF,SAAAA,QANP/F,EAMwBgG,WAAA,QAAA,CAAA,GACAJ,EAAA,CAA3CC,EAAS,EAAEC,MAAMG,SAASF,SAAAA,QAPP/F,EAOwBgG,WAAA,iBAAA,CAAA,GACDJ,EAAA,CAA1CC,EAAS,EAAEC,MAAMpB,QAAQqB,YAAS,CAAA,CAAA,GARf/F,EAQuBgG,WAAA,SAAA,CAAA,GAIOJ,EAAA,CAAjDM,EAAsB,EAAEC,SAAAA,QAZLnG,EAY8BgG,WAAA,oBAAA,CAAA,GAEtCJ,EAAA,CAAXC,EAAAA,CAAAA,GAdmB7F,EAcRgG,WAAA,kBAAA,IAIZJ,EAAA,ECpBkBF,IDmBd,QClBG,CAACU,GAAwBC,MAAAA;AAC/B,QAAA,EAAMC,YAAEA,EAAAA,IAAeF;AAEvBT,EAAAA,IAAUY,OAAOC,OAAO,EAAEC,sBAAAA,GAAsB,GAASd,CAAAA,GAEzDS,EAAkBE,aAAa,SAAUI,GAAAA;AAGxC,QAFAJ,EAAWK,KAAKjH,MAAMgH,CAAAA,GAElBA,EAAaE,IAAIlB,CAAAA,GAAW;AAC/B,YAAMmB,IAAWH,EAAaI,IAAIpB,CAAAA,GAC5BhE,IAAWhC,KAAKgG,CAAAA;AAElBmB,MAAAA,MAAanF,MACXiE,GAASc,yBAAwB/G,KAAKqH,cAC1CrH,KAAK2G,CAAAA,EAAMM,KAAKjH,MAAMmH,GAAUnF,CAAAA;AAAAA,IAGnC;AAAA,EACD;AAAA,EAAA,GDjBmB1B,EAkBpBgG,WAAA,gBAAA,CAAA,GAlBoBhG,IAArB4F,EAAA,CADC7F,EAAc,gBAAA,CAAA,GACMC,CAAAA;"}
@@ -1,56 +0,0 @@
1
- "use strict";const a=require("rxjs");require("rxjs/operators");const y=require("lit/directives/class-map.js");require("lit/directives/style-map.js");const h=require("lit/decorators.js"),g=require("./tailwind.mixin-CT1X-pzi.cjs"),u=require("lit"),E=require("./litElement.mixin-Bs-lTl5t.cjs"),w=require("./area.component-BJbcvVaQ.cjs"),k=require("lit/directives/cache.js"),f=require("lit/directives/if-defined.js"),v=require("lit/directives/ref.js"),d=require("./sheet.service-lSWe4XK5.cjs");var x=Object.getOwnPropertyDescriptor;let b=class extends g.TailwindElement(u.css``){render(){return u.html`
2
- <sch-flex class="absolute top-0 left-0 md:left-[unset] md:right-0">
3
- <div class="block md:hidden flex-1 justify-start items-start">
4
- <slot name="back">
5
- <schmancy-button
6
- @click=${()=>{this.dispatchEvent(new CustomEvent("dismiss",{bubbles:!0,composed:!0}))}}
7
- >
8
- <span class="text-[24px]">&#8592; </span>
9
- </schmancy-button>
10
- </slot>
11
- </div>
12
-
13
- <div class="hidden md:block flex-1 justify-end items-end">
14
- <slot name="actions">
15
- <schmancy-icon-button
16
- @click=${()=>{this.dispatchEvent(new CustomEvent("dismiss",{bubbles:!0,composed:!0}))}}
17
- >
18
- close
19
- </schmancy-icon-button>
20
- </slot>
21
- </div>
22
- </sch-flex>
23
- `}};b=((t,e,i,o)=>{for(var s,n=o>1?void 0:o?x(e,i):e,l=t.length-1;l>=0;l--)(s=t[l])&&(n=s(n)||n);return n})([h.customElement("schmancy-sheet-header")],b);var S=Object.defineProperty,$=Object.getOwnPropertyDescriptor,c=(t,e,i,o)=>{for(var s,n=o>1?void 0:o?$(e,i):e,l=t.length-1;l>=0;l--)(s=t[l])&&(n=(o?s(e,i,n):s(n))||n);return o&&n&&S(e,i,n),n};let r=class extends E.$LitElement(":host{--overlay-color: var(--schmancy-sys-color-surface-dim);--transition-timing: cubic-bezier(.16, 1, .3, 1);--transition-duration: .25s;--sheet-radius: 0;--max-height: 100vh}.sheet{position:fixed;inset:0;z-index:999;display:flex;visibility:visible;transition:visibility var(--transition-duration) var(--transition-timing)}.sheet[aria-hidden=true]{visibility:hidden;pointer-events:none}.sheet[aria-hidden=true] .content{transform:translateY(100%)}.sheet[aria-hidden=true] .content[data-position=side]{transform:translate(100%)}.sheet[aria-hidden=true] .overlay{opacity:0}.overlay{position:absolute;inset:0;background:var(--overlay-color);opacity:.8;transition:opacity var(--transition-duration) var(--transition-timing)}.content{z-index:1;transition:transform var(--transition-duration) var(--transition-timing);overflow:hidden}.content[data-position=side]{height:100vh}.content[data-position=side] #body{max-height:100vh}.content[data-position=side]{height:100%;min-width:320px;max-width:90vw;width:fit-content;margin-left:auto}.content[data-position=bottom] #body{max-height:90vh}.content[data-position=bottom]{width:100%;margin-top:auto;border-radius:16px 16px 0 0;max-height:90vh}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}"){constructor(){super(...arguments),this.open=!1,this.header="visible",this.position=d.SchmancySheetPosition.Side,this.persist=!1,this.lock=!1,this.handleHistory=!0,this.title="",this.sheetRef=v.createRef(),this.focusAttribute="autofocus",this.lastFocusedElement=null,this.handleOverlayClick=t=>{t.stopPropagation(),this.lock||d.sheet.dismiss(this.uid)},this.handleHeaderDismiss=t=>{t.stopPropagation(),d.sheet.dismiss(this.uid)}}onOpenChange(t,e){e?(this.lastFocusedElement=document.activeElement,this.setBackgroundInert(!0),this.focus()):(this.setBackgroundInert(!1),this.lastFocusedElement?.focus(),this.lastFocusedElement=null)}connectedCallback(){super.connectedCallback(),this.setupEventListeners()}disconnectedCallback(){super.disconnectedCallback(),this.disconnecting.next(!0)}setupEventListeners(){const t=this.handleHistory?a.fromEvent(window,"popstate").pipe(a.tap(s=>{s.preventDefault(),this.closeSheet()})):a.of(null).pipe(a.take(0)),e=a.fromEvent(this,"keydown").pipe(a.tap(s=>{s.key==="Escape"&&!this.lock&&this.open&&(s.preventDefault(),s.stopPropagation(),d.sheet.dismiss(this.uid))})),i=a.fromEvent(window,d.SheetWhereAreYouRicky).pipe(a.tap(s=>{s.detail.uid===this.uid&&this.dispatchEvent(new CustomEvent(d.SheetHereMorty,{detail:{sheet:this},bubbles:!0,composed:!0}))})),o=a.fromEvent(window,"schmancy-sheet-render").pipe(a.tap(s=>{const n=s.detail;n.uid===this.uid&&w.area.push({area:this.uid,component:n.component,historyStrategy:"silent"})}));a.merge(t,e,i,o).pipe(a.takeUntil(this.disconnecting)).subscribe()}setBackgroundInert(t){const e=this.parentElement;e&&Array.from(e.children).forEach(i=>{i!==this&&i instanceof HTMLElement&&(t?i.setAttribute("inert",""):i.removeAttribute("inert"))}),this.parentElement===document.body&&Array.from(document.body.children).forEach(i=>{i!==this&&i!==e&&i instanceof HTMLElement&&(t?i.setAttribute("inert",""):i.removeAttribute("inert"))})}setIsSheetShown(t){this.sheetRef.value?.setAttribute("aria-hidden",String(!t)),this.sheetRef.value?.setAttribute("aria-modal",String(t))}closeSheet(){this.open=!1,this.dispatchEvent(new CustomEvent("close"))}getFocusElement(){const t=`[${this.focusAttribute}]`;return this.assignedElements.find(e=>e.matches(t)||e.querySelector(t))??null}focus(){const t=this.querySelector("[autofocus]");t?t.focus():this.getFocusElement()?.focus()}render(){const t={sheet:!0,"sheet--open":this.open,"sheet--locked":this.lock},e={overlay:!0,"overlay--interactive":!this.lock};return u.html`
24
- <div
25
- class=${y.classMap(t)}
26
- role="dialog"
27
- aria-labelledby=${f.ifDefined(this.header!=="hidden"?"sheet-title":void 0)}
28
- aria-hidden=${!this.open}
29
- aria-modal=${this.open}
30
- tabindex="0"
31
- ${v.ref(this.sheetRef)}
32
- >
33
- <div class=${y.classMap(e)} @click=${this.lock?void 0:this.handleOverlayClick}></div>
34
- <schmancy-grid
35
- rows=${this.header==="hidden"?"1fr":"auto 1fr"}
36
- class="content w-full"
37
- data-position=${this.position}
38
- >
39
- ${k.cache(this.header!=="hidden"?u.html`<schmancy-sheet-header
40
- class="sticky top-0 z-50 w-full"
41
- @dismiss=${this.handleHeaderDismiss}
42
- id="sheet-title"
43
- title=${f.ifDefined(this.title||void 0)}
44
- ></schmancy-sheet-header>`:"")}
45
-
46
- <schmancy-surface rounded="left" fill="all" id="body" class="overflow-auto" type="surface">
47
- <schmancy-scroll>
48
- <schmancy-area name=${this.uid}>
49
- <slot></slot>
50
- </schmancy-area>
51
- </schmancy-scroll>
52
- </schmancy-surface>
53
- </schmancy-grid>
54
- </div>
55
- `}};var p,m;c([h.property({type:String,reflect:!0})],r.prototype,"uid",2),c([h.property({type:Boolean,reflect:!0})],r.prototype,"open",2),c([h.property({type:String,reflect:!0})],r.prototype,"header",2),c([h.property({type:String,reflect:!0})],r.prototype,"position",2),c([h.property({type:Boolean,reflect:!0})],r.prototype,"persist",2),c([h.property({type:Boolean,reflect:!0})],r.prototype,"lock",2),c([h.property({type:Boolean,reflect:!0})],r.prototype,"handleHistory",2),c([h.property({type:String,reflect:!0})],r.prototype,"title",2),c([h.queryAssignedElements({flatten:!0})],r.prototype,"assignedElements",2),c([h.property()],r.prototype,"focusAttribute",2),c([(p="open",(t,e)=>{const{willUpdate:i}=t;m=Object.assign({waitUntilFirstUpdate:!1},m),t.willUpdate=function(o){if(i.call(this,o),o.has(p)){const s=o.get(p),n=this[p];s!==n&&(m?.waitUntilFirstUpdate&&!this.hasUpdated||this[e].call(this,s,n))}}})],r.prototype,"onOpenChange",1),r=c([h.customElement("schmancy-sheet")],r);
56
- //# sourceMappingURL=sheet-CwSsed6P.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"sheet-CwSsed6P.cjs","sources":["../src/sheet/header.ts","../src/sheet/sheet.ts","../src/sheet/hook.ts"],"sourcesContent":["import { TailwindElement } from '@mixins/index'\nimport { css, html } from 'lit'\nimport { customElement } from 'lit/decorators.js'\n\n@customElement('schmancy-sheet-header')\nexport default class SchmancySheetHeader extends TailwindElement(css``) {\n\trender() {\n\t\treturn html`\n\t\t\t<sch-flex class=\"absolute top-0 left-0 md:left-[unset] md:right-0\">\n\t\t\t\t<div class=\"block md:hidden flex-1 justify-start items-start\">\n\t\t\t\t\t<slot name=\"back\">\n\t\t\t\t\t\t<schmancy-button\n\t\t\t\t\t\t\t@click=${() => {\n\t\t\t\t\t\t\t\tthis.dispatchEvent(\n\t\t\t\t\t\t\t\t\tnew CustomEvent('dismiss', {\n\t\t\t\t\t\t\t\t\t\tbubbles: true,\n\t\t\t\t\t\t\t\t\t\tcomposed: true,\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}}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<span class=\"text-[24px]\">&#8592; </span>\n\t\t\t\t\t\t</schmancy-button>\n\t\t\t\t\t</slot>\n\t\t\t\t</div>\n\n\t\t\t\t<div class=\"hidden md:block flex-1 justify-end items-end\">\n\t\t\t\t\t<slot name=\"actions\">\n\t\t\t\t\t\t<schmancy-icon-button\n\t\t\t\t\t\t\t@click=${() => {\n\t\t\t\t\t\t\t\tthis.dispatchEvent(\n\t\t\t\t\t\t\t\t\tnew CustomEvent('dismiss', {\n\t\t\t\t\t\t\t\t\t\tbubbles: true,\n\t\t\t\t\t\t\t\t\t\tcomposed: true,\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}}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\tclose\n\t\t\t\t\t\t</schmancy-icon-button>\n\t\t\t\t\t</slot>\n\t\t\t\t</div>\n\t\t\t</sch-flex>\n\t\t`\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-sheet-header': SchmancySheetHeader\n\t}\n}\n","import { $LitElement } from '@mixins/index'\nimport { area } from '../area'\nimport { html } from 'lit'\nimport { customElement, property, queryAssignedElements } from 'lit/decorators.js'\nimport { cache } from 'lit/directives/cache.js'\nimport { classMap } from 'lit/directives/class-map.js'\nimport { ifDefined } from 'lit/directives/if-defined.js'\nimport { createRef, ref } from 'lit/directives/ref.js'\nimport { fromEvent, merge, of, take, takeUntil, tap } from 'rxjs'\nimport { on } from './hook'\nimport style from './sheet.scss?inline'\nimport {\n\tSchmancySheetPosition,\n\tSheetHereMorty,\n\tSheetWhereAreYouRicky,\n\tSheetWhereAreYouRickyEvent,\n\tsheet,\n} from './sheet.service'\n\n@customElement('schmancy-sheet')\nexport default class SchmancySheet extends $LitElement(style) {\n\t@property({ type: String, reflect: true }) uid!: string\n\t@property({ type: Boolean, reflect: true }) open = false\n\t@property({ type: String, reflect: true }) header: 'hidden' | 'visible' = 'visible'\n\t@property({ type: String, reflect: true }) position: SchmancySheetPosition = SchmancySheetPosition.Side\n\t@property({ type: Boolean, reflect: true }) persist = false\n\t@property({ type: Boolean, reflect: true }) lock = false\n\t@property({ type: Boolean, reflect: true }) handleHistory = true\n\t@property({ type: String, reflect: true }) title = ''\n\n\t// Use ref directive instead of @query\n\tprivate sheetRef = createRef<HTMLDivElement>()\n\t@queryAssignedElements({ flatten: true }) private assignedElements!: HTMLElement[]\n\n\t@property() focusAttribute = 'autofocus'\n\tprivate lastFocusedElement: HTMLElement | null = null\n\n\t@on('open')\n\tonOpenChange(_oldValue: boolean, newValue: boolean) {\n\t\tif (newValue) {\n\t\t\tthis.lastFocusedElement = document.activeElement as HTMLElement\n\t\t\t// Use native inert attribute to prevent focus outside sheet\n\t\t\tthis.setBackgroundInert(true)\n\t\t\tthis.focus()\n\t\t} else {\n\t\t\tthis.setBackgroundInert(false)\n\t\t\tthis.lastFocusedElement?.focus()\n\t\t\tthis.lastFocusedElement = null\n\t\t}\n\t}\n\n\tconnectedCallback() {\n\t\tsuper.connectedCallback()\n\t\tthis.setupEventListeners()\n\t}\n\n\tdisconnectedCallback() {\n\t\tsuper.disconnectedCallback()\n\t\tthis.disconnecting.next(true)\n\t}\n\n\tprivate setupEventListeners() {\n\t\t// Handle browser back button - only if handleHistory is true\n\t\tconst popState$ = this.handleHistory\n\t\t\t? fromEvent<PopStateEvent>(window, 'popstate').pipe(\n\t\t\t\t\ttap(e => {\n\t\t\t\t\t\te.preventDefault()\n\t\t\t\t\t\tthis.closeSheet()\n\t\t\t\t\t}),\n\t\t\t\t)\n\t\t\t: of(null).pipe(take(0)) // Empty observable if handleHistory is false\n\n\t\t// Handle ESC key - listen on the sheet element for better event capture\n\t\tconst keyUp$ = fromEvent<KeyboardEvent>(this, 'keydown').pipe(\n\t\t\ttap(event => {\n\t\t\t\tif (event.key === 'Escape' && !this.lock && this.open) {\n\t\t\t\t\tevent.preventDefault()\n\t\t\t\t\tevent.stopPropagation()\n\t\t\t\t\tsheet.dismiss(this.uid)\n\t\t\t\t}\n\t\t\t}),\n\t\t)\n\n\t\t// Handle inter-component communication\n\t\tconst rickyComm$ = fromEvent<SheetWhereAreYouRickyEvent>(window, SheetWhereAreYouRicky).pipe(\n\t\t\ttap(e => {\n\t\t\t\tif (e.detail.uid === this.uid)\n\t\t\t\t\tthis.dispatchEvent(\n\t\t\t\t\t\tnew CustomEvent(SheetHereMorty, {\n\t\t\t\t\t\t\tdetail: { sheet: this },\n\t\t\t\t\t\t\tbubbles: true,\n\t\t\t\t\t\t\tcomposed: true,\n\t\t\t\t\t\t}),\n\t\t\t\t\t)\n\t\t\t}),\n\t\t)\n\n\t\t// Handle render events from sheet service\n\t\tconst render$ = fromEvent<CustomEvent>(window, 'schmancy-sheet-render').pipe(\n\t\t\ttap(e => {\n\t\t\t\tconst detail = e.detail\n\t\t\t\tif (detail.uid === this.uid) {\n\t\t\t\t\t// Use area router to handle component resolution\n\t\t\t\t\tarea.push({\n\t\t\t\t\t\tarea: this.uid,\n\t\t\t\t\t\tcomponent: detail.component,\n\t\t\t\t\t\thistoryStrategy: 'silent',\n\t\t\t\t\t})\n\t\t\t\t}\n\t\t\t}),\n\t\t)\n\n\t\tmerge(popState$, keyUp$, rickyComm$, render$).pipe(takeUntil(this.disconnecting)).subscribe()\n\t}\n\n\tprivate setBackgroundInert(inert: boolean) {\n\t\t// Get all sibling elements and make them inert\n\t\tconst parent = this.parentElement\n\t\tif (parent) {\n\t\t\tArray.from(parent.children).forEach(child => {\n\t\t\t\tif (child !== this && child instanceof HTMLElement) {\n\t\t\t\t\tif (inert) {\n\t\t\t\t\t\tchild.setAttribute('inert', '')\n\t\t\t\t\t} else {\n\t\t\t\t\t\tchild.removeAttribute('inert')\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t})\n\t\t}\n\n\t\t// Also handle body's direct children if sheet is attached to body\n\t\tif (this.parentElement === document.body) {\n\t\t\tArray.from(document.body.children).forEach(child => {\n\t\t\t\tif (child !== this && child !== parent && child instanceof HTMLElement) {\n\t\t\t\t\tif (inert) {\n\t\t\t\t\t\tchild.setAttribute('inert', '')\n\t\t\t\t\t} else {\n\t\t\t\t\t\tchild.removeAttribute('inert')\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t})\n\t\t}\n\t}\n\n\tsetIsSheetShown(isShown: boolean) {\n\t\tthis.sheetRef.value?.setAttribute('aria-hidden', String(!isShown))\n\t\tthis.sheetRef.value?.setAttribute('aria-modal', String(isShown))\n\t}\n\n\tcloseSheet() {\n\t\tthis.open = false\n\t\tthis.dispatchEvent(new CustomEvent('close'))\n\t}\n\n\tprivate getFocusElement(): HTMLElement | null {\n\t\tconst selector = `[${this.focusAttribute}]`\n\t\treturn (this.assignedElements.find(el => el.matches(selector) || el.querySelector(selector)) as HTMLElement) ?? null\n\t}\n\n\toverride focus() {\n\t\t// First try native autofocus attribute\n\t\tconst autofocusElement = this.querySelector('[autofocus]') as HTMLElement\n\t\tif (autofocusElement) {\n\t\t\tautofocusElement.focus()\n\t\t\treturn\n\t\t}\n\n\t\t// Fallback to custom focus attribute\n\t\tthis.getFocusElement()?.focus()\n\t}\n\n\tprivate handleOverlayClick = (e: Event) => {\n\t\te.stopPropagation()\n\t\tif (!this.lock) {\n\t\t\tsheet.dismiss(this.uid)\n\t\t}\n\t}\n\n\tprivate handleHeaderDismiss = (e: CustomEvent) => {\n\t\te.stopPropagation()\n\t\tsheet.dismiss(this.uid)\n\t}\n\n\trender() {\n\t\tconst sheetClasses = {\n\t\t\tsheet: true,\n\t\t\t'sheet--open': this.open,\n\t\t\t'sheet--locked': this.lock,\n\t\t}\n\n\t\tconst overlayClasses = {\n\t\t\toverlay: true,\n\t\t\t'overlay--interactive': !this.lock,\n\t\t}\n\n\t\treturn html`\n\t\t\t<div\n\t\t\t\tclass=${classMap(sheetClasses)}\n\t\t\t\trole=\"dialog\"\n\t\t\t\taria-labelledby=${ifDefined(this.header !== 'hidden' ? 'sheet-title' : undefined)}\n\t\t\t\taria-hidden=${!this.open}\n\t\t\t\taria-modal=${this.open}\n\t\t\t\ttabindex=\"0\"\n\t\t\t\t${ref(this.sheetRef)}\n\t\t\t>\n\t\t\t\t<div class=${classMap(overlayClasses)} @click=${this.lock ? undefined : this.handleOverlayClick}></div>\n\t\t\t\t<schmancy-grid\n\t\t\t\t\trows=${this.header === 'hidden' ? '1fr' : 'auto 1fr'}\n\t\t\t\t\tclass=\"content w-full\"\n\t\t\t\t\tdata-position=${this.position}\n\t\t\t\t>\n\t\t\t\t\t${cache(\n\t\t\t\t\t\tthis.header !== 'hidden'\n\t\t\t\t\t\t\t? html`<schmancy-sheet-header\n\t\t\t\t\t\t\t\t\tclass=\"sticky top-0 z-50 w-full\"\n\t\t\t\t\t\t\t\t\t@dismiss=${this.handleHeaderDismiss}\n\t\t\t\t\t\t\t\t\tid=\"sheet-title\"\n\t\t\t\t\t\t\t\t\ttitle=${ifDefined(this.title || undefined)}\n\t\t\t\t\t\t\t\t></schmancy-sheet-header>`\n\t\t\t\t\t\t\t: '',\n\t\t\t\t\t)}\n\n\t\t\t\t\t<schmancy-surface rounded=\"left\" fill=\"all\" id=\"body\" class=\"overflow-auto\" type=\"surface\">\n\t\t\t\t\t\t<schmancy-scroll>\n\t\t\t\t\t\t\t<schmancy-area name=${this.uid}>\n\t\t\t\t\t\t\t\t<slot></slot>\n\t\t\t\t\t\t\t</schmancy-area>\n\t\t\t\t\t\t</schmancy-scroll>\n\t\t\t\t\t</schmancy-surface>\n\t\t\t\t</schmancy-grid>\n\t\t\t</div>\n\t\t`\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-sheet': SchmancySheet\n\t}\n}\n","// @watch decorator\n//\n// Runs when an observed property changes, e.g. @property or @state, but before the component updates.\n//\n// To wait for an update to complete after a change occurs, use `await this.updateComplete` in the handler. To start\n// watching after the initial update/render, use `{ waitUntilFirstUpdate: true }` or `this.hasUpdated` in the handler.\n//\n// Usage:\n//\n// @watch('propName')\n// handlePropChange(oldValue, newValue) {\n// ...\n// }\n//\ninterface WatchOptions {\n\twaitUntilFirstUpdate?: boolean\n}\n\nexport function on(propName: string, options?: WatchOptions) {\n\treturn (protoOrDescriptor: any, name: string): any => {\n\t\tconst { willUpdate } = protoOrDescriptor\n\n\t\toptions = Object.assign({ waitUntilFirstUpdate: false }, options) as WatchOptions\n\n\t\tprotoOrDescriptor.willUpdate = function (changedProps: Map<string, any>) {\n\t\t\twillUpdate.call(this, changedProps)\n\n\t\t\tif (changedProps.has(propName)) {\n\t\t\t\tconst oldValue = changedProps.get(propName)\n\t\t\t\tconst newValue = this[propName]\n\n\t\t\t\tif (oldValue !== newValue) {\n\t\t\t\t\tif (!options?.waitUntilFirstUpdate || this.hasUpdated) {\n\t\t\t\t\t\tthis[name].call(this, oldValue, newValue)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n"],"names":["SchmancySheetHeader","TailwindElement","css","render","html","this","dispatchEvent","CustomEvent","bubbles","composed","customElement","SchmancySheet","$LitElement","constructor","super","arguments","open","header","position","SchmancySheetPosition","Side","persist","lock","handleHistory","title","sheetRef","createRef","focusAttribute","lastFocusedElement","handleOverlayClick","e","stopPropagation","sheet","dismiss","uid","handleHeaderDismiss","_oldValue","newValue","document","activeElement","setBackgroundInert","focus","connectedCallback","setupEventListeners","disconnectedCallback","disconnecting","next","popState$","fromEvent","window","pipe","tap","preventDefault","closeSheet","of","take","keyUp$","event","key","rickyComm$","SheetWhereAreYouRicky","detail","SheetHereMorty","render$","area","push","component","historyStrategy","merge","takeUntil","subscribe","inert","parent","parentElement","Array","from","children","forEach","child","HTMLElement","setAttribute","removeAttribute","body","isShown","value","String","getFocusElement","selector","assignedElements","find","el","matches","querySelector","autofocusElement","sheetClasses","overlayClasses","overlay","classMap","ifDefined","ref","cache","propName","options","__decorateClass","property","type","reflect","prototype","Boolean","queryAssignedElements","flatten","protoOrDescriptor","name","willUpdate","Object","assign","waitUntilFirstUpdate","changedProps","call","has","oldValue","get","hasUpdated"],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- "use strict";const e=require("rxjs"),p=require("./theme.events-Car6U_SQ.cjs");var d=(t=>(t.Side="side",t.Bottom="bottom",t))(d||{});const a="are-you-there-sheet",c="yes-here",m=new class{constructor(){this.bottomSheet=new e.Subject,this.$dismiss=new e.Subject,this.activeSheets=new Set,this.popStateListenerActive=!1,this.setupSheetOpeningLogic(),this.setupSheetDismissLogic(),this.setupPopStateListener()}setupSheetOpeningLogic(){this.bottomSheet.pipe(e.switchMap(t=>e.forkJoin([e.fromEvent(window,c).pipe(e.takeUntil(e.timer(50)),e.map(i=>i.detail),e.defaultIfEmpty(void 0)),e.fromEvent(window,p.ThemeHereIAm).pipe(e.takeUntil(e.timer(50)),e.map(i=>i.detail.theme),e.defaultIfEmpty(void 0)),e.of(t).pipe(e.tap(()=>{const i=t.uid??`sheet-${Date.now()}`;window.dispatchEvent(new CustomEvent(a,{detail:{uid:i},bubbles:!0,composed:!0})),window.dispatchEvent(new CustomEvent(p.ThemeWhereAreYou,{bubbles:!0,composed:!0}))}))])),e.map(([t,i,o])=>{let n,s=t?.sheet;if(s)n=s.parentElement;else{n=i||document.querySelector("schmancy-theme")||document.body;const r=o.uid??`sheet-${Date.now()}`;s=document.createElement("schmancy-sheet"),s.setAttribute("uid",r),n.appendChild(s)}o.lock&&s.setAttribute("lock","true");const h=o.position||(window.innerWidth>=768?"side":"bottom");return s.setAttribute("position",h),o.persist&&s.setAttribute("persist",String(o.persist)),document.body.style.overflow="hidden",{target:o,sheet:s}}),e.delay(20),e.tap(({target:t,sheet:i})=>{window.dispatchEvent(new CustomEvent("schmancy-sheet-render",{detail:{component:t.component,uid:i.getAttribute("uid")},bubbles:!0,composed:!0}))}),e.delay(1),e.tap(({target:t,sheet:i})=>{i?.setAttribute("open","true");const o=i.getAttribute("uid")||t.uid||`sheet-${Date.now()}`;this.activeSheets.add(o),e.fromEvent(i,"close").pipe(e.take(1)).pipe(e.delay(300)).subscribe(n=>{const s=i;if(s){const h=s.getAttribute("uid");h&&this.activeSheets.delete(h);const r=s.getAttribute("persist");(!r||r==="false")&&s.remove()}document.body.style.overflow="auto"})})).subscribe()}setupSheetDismissLogic(){this.$dismiss.pipe(e.mergeMap(t=>e.forkJoin([e.fromEvent(window,c).pipe(e.takeUntil(e.timer(100)),e.map(i=>i.detail),e.defaultIfEmpty(void 0)),e.of(t).pipe(e.tap(()=>{window.dispatchEvent(new CustomEvent(a,{detail:{uid:t}}))}))])),e.tap(([t,i])=>{t?.sheet&&(t.sheet.closeSheet(),this.activeSheets.delete(i))})).subscribe()}setupPopStateListener(){this.popStateListenerActive||(e.fromEvent(window,"popstate").subscribe(t=>{if(this.activeSheets.size>0){const i=Array.from(this.activeSheets).pop();i&&(this.dismiss(i),t.state&&t.state.schmancySheet&&history.pushState({},"",window.location.href))}}),this.popStateListenerActive=!0)}dismiss(t){if(!t&&this.activeSheets.size>0){const i=Array.from(this.activeSheets);t=i[i.length-1]}t&&this.$dismiss.next(t)}open(t){this.bottomSheet.next(t)}isOpen(t){return this.activeSheets.has(t)}closeAll(){Array.from(this.activeSheets).forEach(t=>{this.dismiss(t)})}};exports.SchmancySheetPosition=d,exports.SheetHereMorty=c,exports.SheetWhereAreYouRicky=a,exports.sheet=m;
2
- //# sourceMappingURL=sheet.service-lSWe4XK5.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"sheet.service-lSWe4XK5.cjs","sources":["../src/sheet/sheet.service.ts"],"sourcesContent":["import {\n\tdefaultIfEmpty,\n\tdelay,\n\tforkJoin,\n\tfromEvent,\n\tmap,\n\tmergeMap,\n\tof,\n\tSubject,\n\tswitchMap,\n\ttake,\n\ttakeUntil,\n\ttap,\n\ttimer,\n} from 'rxjs'\nimport { ComponentType } from '../area/router.types'\nimport { ThemeHereIAm, ThemeHereIAmEvent, ThemeWhereAreYou } from '../theme/theme.events'\nimport SchmancySheet from './sheet'\n\nexport enum SchmancySheetPosition {\n\tSide = 'side',\n\tBottom = 'bottom',\n}\n\nexport type SheetConfig = {\n\tcomponent: ComponentType\n\tuid?: string\n\tposition?: SchmancySheetPosition\n\tpersist?: boolean\n\tclose?: () => void\n\tlock?: boolean // Controls both ESC and overlay click dismissal\n\tonBeforeOpen?: (component: HTMLElement) => void\n\tonAfterOpen?: (component: HTMLElement) => void\n}\n\n// Keep old name for backward compatibility\ntype BottomSheeetTarget = SheetConfig\n\n// Events for communication between bottom-sheet component and bottom-sheet.service\nexport type SheetWhereAreYouRickyEvent = CustomEvent<{\n\tuid: string\n}>\nexport const SheetWhereAreYouRicky = 'are-you-there-sheet'\n\nexport type SheetHereMortyEvent = CustomEvent<{\n\tsheet?: SchmancySheet\n\ttheme?: HTMLElement\n}>\nexport const SheetHereMorty = 'yes-here'\n\n// Function to determine the position based on screen size\nconst getPosition = (): SchmancySheetPosition => {\n\treturn window.innerWidth >= 768 ? SchmancySheetPosition.Side : SchmancySheetPosition.Bottom // Adjust 768 as needed for your breakpoint\n}\n\nclass BottomSheetService {\n\tbottomSheet = new Subject<BottomSheeetTarget>()\n\t$dismiss = new Subject<string>()\n\t// Track currently open sheets\n\tprivate activeSheets = new Set<string>()\n\t// To track if we've set up the popstate listener\n\tprivate popStateListenerActive = false\n\n\tconstructor() {\n\t\tthis.setupSheetOpeningLogic()\n\t\tthis.setupSheetDismissLogic()\n\t\tthis.setupPopStateListener()\n\t}\n\n\t/**\n\t * Sets up the main sheet opening logic\n\t */\n\tprivate setupSheetOpeningLogic() {\n\t\tthis.bottomSheet\n\t\t\t.pipe(\n\t\t\t\tswitchMap(target =>\n\t\t\t\t\tforkJoin([\n\t\t\t\t\t\t// First check for existing sheet\n\t\t\t\t\t\tfromEvent<SheetHereMortyEvent>(window, SheetHereMorty).pipe(\n\t\t\t\t\t\t\ttakeUntil(timer(50)),\n\t\t\t\t\t\t\tmap(e => e.detail),\n\t\t\t\t\t\t\tdefaultIfEmpty(undefined),\n\t\t\t\t\t\t),\n\t\t\t\t\t\t// Then find theme container\n\t\t\t\t\t\tfromEvent<ThemeHereIAmEvent>(window, ThemeHereIAm).pipe(\n\t\t\t\t\t\t\ttakeUntil(timer(50)),\n\t\t\t\t\t\t\tmap(e => e.detail.theme),\n\t\t\t\t\t\t\tdefaultIfEmpty(undefined),\n\t\t\t\t\t\t),\n\t\t\t\t\t\tof(target).pipe(\n\t\t\t\t\t\t\ttap(() => {\n\t\t\t\t\t\t\t\t// Determine uid - use provided uid or generate one\n\t\t\t\t\t\t\t\tconst uid = target.uid ?? `sheet-${Date.now()}`\n\n\t\t\t\t\t\t\t\t// First ask for existing sheet\n\t\t\t\t\t\t\t\twindow.dispatchEvent(\n\t\t\t\t\t\t\t\t\tnew CustomEvent(SheetWhereAreYouRicky, {\n\t\t\t\t\t\t\t\t\t\tdetail: { uid },\n\t\t\t\t\t\t\t\t\t\tbubbles: true,\n\t\t\t\t\t\t\t\t\t\tcomposed: true,\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// Then ask for theme container\n\t\t\t\t\t\t\t\twindow.dispatchEvent(\n\t\t\t\t\t\t\t\t\tnew CustomEvent(ThemeWhereAreYou, {\n\t\t\t\t\t\t\t\t\t\tbubbles: true,\n\t\t\t\t\t\t\t\t\t\tcomposed: true,\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}),\n\t\t\t\t\t\t),\n\t\t\t\t\t]),\n\t\t\t\t),\n\n\t\t\t\tmap(([existingSheet, theme, target]) => {\n\t\t\t\t\tlet sheet = existingSheet?.sheet\n\t\t\t\t\tlet targetContainer: HTMLElement\n\n\t\t\t\t\tif (sheet) {\n\t\t\t\t\t\t// Use existing sheet\n\t\t\t\t\t\ttargetContainer = sheet.parentElement as HTMLElement\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// Determine container - use theme from discovery or fallback\n\t\t\t\t\t\ttargetContainer = theme || (document.querySelector('schmancy-theme') as HTMLElement) || document.body\n\n\t\t\t\t\t\t// Create new sheet\n\t\t\t\t\t\tconst uid = target.uid ?? `sheet-${Date.now()}`\n\t\t\t\t\t\tsheet = document.createElement('schmancy-sheet')\n\t\t\t\t\t\tsheet.setAttribute('uid', uid)\n\t\t\t\t\t\ttargetContainer.appendChild(sheet)\n\t\t\t\t\t}\n\n\t\t\t\t\ttarget.lock && sheet.setAttribute('lock', 'true')\n\n\t\t\t\t\t// Use the dynamic position function here\n\t\t\t\t\tconst position = target.position || getPosition()\n\t\t\t\t\tsheet.setAttribute('position', position)\n\n\t\t\t\t\ttarget.persist && sheet.setAttribute('persist', String(target.persist))\n\n\t\t\t\t\tdocument.body.style.overflow = 'hidden' // lock the scroll of the host\n\t\t\t\t\treturn { target, sheet: sheet as SchmancySheet }\n\t\t\t\t}),\n\t\t\t\tdelay(20),\n\t\t\t\ttap(({ target, sheet }) => {\n\t\t\t\t\t// Always dispatch render event - area router handles duplicate prevention\n\t\t\t\t\twindow.dispatchEvent(\n\t\t\t\t\t\tnew CustomEvent('schmancy-sheet-render', {\n\t\t\t\t\t\t\tdetail: { component: target.component, uid: sheet.getAttribute('uid') },\n\t\t\t\t\t\t\tbubbles: true,\n\t\t\t\t\t\t\tcomposed: true,\n\t\t\t\t\t\t}),\n\t\t\t\t\t)\n\t\t\t\t}),\n\t\t\t\tdelay(1),\n\t\t\t\ttap(({ target, sheet }) => {\n\t\t\t\t\tsheet?.setAttribute('open', 'true')\n\n\t\t\t\t\t// Add to active sheets tracking\n\t\t\t\t\tconst uid = sheet.getAttribute('uid') || target.uid || `sheet-${Date.now()}`\n\t\t\t\t\tthis.activeSheets.add(uid)\n\n\t\t\t\t\t// Set up close event listener (always, not just for new sheets)\n\t\t\t\t\tfromEvent<CustomEvent>(sheet, 'close')\n\t\t\t\t\t\t.pipe(take(1))\n\t\t\t\t\t\t.pipe(delay(300))\n\t\t\t\t\t\t.subscribe(_ => {\n\t\t\t\t\t\t\t// Use the sheet reference directly, not e.target\n\t\t\t\t\t\t\tconst sheetElement = sheet as SchmancySheet\n\n\t\t\t\t\t\t\t// Remove from active sheets tracking\n\t\t\t\t\t\t\tif (sheetElement) {\n\t\t\t\t\t\t\t\tconst uid = sheetElement.getAttribute('uid')\n\t\t\t\t\t\t\t\tif (uid) {\n\t\t\t\t\t\t\t\t\tthis.activeSheets.delete(uid)\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t// Only keep sheet if persist is explicitly set to a truthy value\n\t\t\t\t\t\t\t\tconst persistAttr = sheetElement.getAttribute('persist')\n\t\t\t\t\t\t\t\tconst shouldRemove = !persistAttr || persistAttr === 'false'\n\n\t\t\t\t\t\t\t\tif (shouldRemove) {\n\t\t\t\t\t\t\t\t\tsheetElement.remove()\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tdocument.body.style.overflow = 'auto' // unlock the scroll of the host\n\t\t\t\t\t\t})\n\t\t\t\t}),\n\t\t\t)\n\t\t\t.subscribe()\n\t}\n\n\t/**\n\t * Sets up the sheet closing/dismissal logic\n\t */\n\tprivate setupSheetDismissLogic() {\n\t\tthis.$dismiss\n\t\t\t.pipe(\n\t\t\t\tmergeMap(uid =>\n\t\t\t\t\tforkJoin([\n\t\t\t\t\t\tfromEvent<SheetHereMortyEvent>(window, SheetHereMorty).pipe(\n\t\t\t\t\t\t\ttakeUntil(timer(100)),\n\t\t\t\t\t\t\tmap(e => e.detail),\n\t\t\t\t\t\t\tdefaultIfEmpty(undefined),\n\t\t\t\t\t\t),\n\t\t\t\t\t\tof(uid).pipe(\n\t\t\t\t\t\t\ttap(() => {\n\t\t\t\t\t\t\t\twindow.dispatchEvent(new CustomEvent(SheetWhereAreYouRicky, { detail: { uid } }))\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\ttap(([response, uid]) => {\n\t\t\t\t\tif (response?.sheet) {\n\t\t\t\t\t\tresponse.sheet.closeSheet()\n\t\t\t\t\t\tthis.activeSheets.delete(uid)\n\t\t\t\t\t} else {\n\t\t\t\t\t}\n\t\t\t\t}),\n\t\t\t)\n\t\t\t.subscribe()\n\t}\n\n\t/**\n\t * Sets up the popstate listener to handle browser back button\n\t */\n\tprivate setupPopStateListener() {\n\t\tif (this.popStateListenerActive) return\n\n\t\tfromEvent<PopStateEvent>(window, 'popstate').subscribe(event => {\n\t\t\t// If we have active sheets, close the most recently opened one\n\t\t\tif (this.activeSheets.size > 0) {\n\t\t\t\t// Get the last sheet (Set maintains insertion order)\n\t\t\t\tconst lastSheet = Array.from(this.activeSheets).pop()\n\t\t\t\tif (lastSheet) {\n\t\t\t\t\tthis.dismiss(lastSheet)\n\n\t\t\t\t\t// Prevent default navigation behavior by pushing a new state\n\t\t\t\t\t// This effectively cancels out the back navigation\n\t\t\t\t\tif (event.state && event.state.schmancySheet) {\n\t\t\t\t\t\thistory.pushState({}, '', window.location.href)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t})\n\n\t\tthis.popStateListenerActive = true\n\t}\n\n\t/**\n\t * Dismiss a sheet by uid, or dismiss the most recently opened sheet if no uid provided\n\t */\n\tdismiss(uid?: string) {\n\t\tif (!uid && this.activeSheets.size > 0) {\n\t\t\t// Get the last sheet opened (Set maintains insertion order)\n\t\t\tconst sheetsArray = Array.from(this.activeSheets)\n\t\t\tuid = sheetsArray[sheetsArray.length - 1]\n\t\t}\n\n\t\tif (uid) {\n\t\t\tthis.$dismiss.next(uid)\n\t\t}\n\t}\n\n\t/**\n\t * Open a sheet with the given target configuration\n\t */\n\topen(target: BottomSheeetTarget) {\n\t\tthis.bottomSheet.next(target)\n\t}\n\n\t/**\n\t * Check if a sheet is currently open by uid\n\t */\n\tisOpen(uid: string): boolean {\n\t\treturn this.activeSheets.has(uid)\n\t}\n\n\t/**\n\t * Close all open sheets\n\t */\n\tcloseAll() {\n\t\t// Copy the set to avoid modification during iteration\n\t\tArray.from(this.activeSheets).forEach(uid => {\n\t\t\tthis.dismiss(uid)\n\t\t})\n\t}\n\n}\nexport const sheet = new BottomSheetService()\n"],"names":["SchmancySheetPosition","SheetWhereAreYouRicky","SheetHereMorty","sheet","constructor","this","bottomSheet","Subject","$dismiss","activeSheets","Set","popStateListenerActive","setupSheetOpeningLogic","setupSheetDismissLogic","setupPopStateListener","pipe","switchMap","forkJoin","fromEvent","window","takeUntil","timer","map","e","detail","defaultIfEmpty","ThemeHereIAm","theme","of","target","tap","uid","Date","now","dispatchEvent","CustomEvent","bubbles","composed","ThemeWhereAreYou","existingSheet","targetContainer","parentElement","document","querySelector","body","createElement","setAttribute","appendChild","lock","position","innerWidth","persist","String","style","overflow","delay","component","getAttribute","add","take","subscribe","_","sheetElement","delete","persistAttr","remove","mergeMap","response","closeSheet","event","size","lastSheet","Array","from","pop","dismiss","state","schmancySheet","history","pushState","location","href","sheetsArray","length","next","has","closeAll","forEach"],"mappings":"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"}
@@ -1,80 +0,0 @@
1
- import { Subject as b, switchMap as f, forkJoin as l, fromEvent as o, of as w, takeUntil as p, timer as d, map as c, defaultIfEmpty as u, tap as n, delay as m, take as y, mergeMap as g } from "rxjs";
2
- import { a as A, T as E } from "./theme.events-CPSLaOlR.js";
3
- var L = ((e) => (e.Side = "side", e.Bottom = "bottom", e))(L || {});
4
- const S = "are-you-there-sheet", v = "yes-here", C = new class {
5
- constructor() {
6
- this.bottomSheet = new b(), this.$dismiss = new b(), this.activeSheets = /* @__PURE__ */ new Set(), this.popStateListenerActive = !1, this.setupSheetOpeningLogic(), this.setupSheetDismissLogic(), this.setupPopStateListener();
7
- }
8
- setupSheetOpeningLogic() {
9
- this.bottomSheet.pipe(f((e) => l([o(window, v).pipe(p(d(50)), c((t) => t.detail), u(void 0)), o(window, A).pipe(p(d(50)), c((t) => t.detail.theme), u(void 0)), w(e).pipe(n(() => {
10
- const t = e.uid ?? `sheet-${Date.now()}`;
11
- window.dispatchEvent(new CustomEvent(S, { detail: { uid: t }, bubbles: !0, composed: !0 })), window.dispatchEvent(new CustomEvent(E, { bubbles: !0, composed: !0 }));
12
- }))])), c(([e, t, i]) => {
13
- let a, s = e?.sheet;
14
- if (s) a = s.parentElement;
15
- else {
16
- a = t || document.querySelector("schmancy-theme") || document.body;
17
- const r = i.uid ?? `sheet-${Date.now()}`;
18
- s = document.createElement("schmancy-sheet"), s.setAttribute("uid", r), a.appendChild(s);
19
- }
20
- i.lock && s.setAttribute("lock", "true");
21
- const h = i.position || (window.innerWidth >= 768 ? "side" : "bottom");
22
- return s.setAttribute("position", h), i.persist && s.setAttribute("persist", String(i.persist)), document.body.style.overflow = "hidden", { target: i, sheet: s };
23
- }), m(20), n(({ target: e, sheet: t }) => {
24
- window.dispatchEvent(new CustomEvent("schmancy-sheet-render", { detail: { component: e.component, uid: t.getAttribute("uid") }, bubbles: !0, composed: !0 }));
25
- }), m(1), n(({ target: e, sheet: t }) => {
26
- t?.setAttribute("open", "true");
27
- const i = t.getAttribute("uid") || e.uid || `sheet-${Date.now()}`;
28
- this.activeSheets.add(i), o(t, "close").pipe(y(1)).pipe(m(300)).subscribe((a) => {
29
- const s = t;
30
- if (s) {
31
- const h = s.getAttribute("uid");
32
- h && this.activeSheets.delete(h);
33
- const r = s.getAttribute("persist");
34
- (!r || r === "false") && s.remove();
35
- }
36
- document.body.style.overflow = "auto";
37
- });
38
- })).subscribe();
39
- }
40
- setupSheetDismissLogic() {
41
- this.$dismiss.pipe(g((e) => l([o(window, v).pipe(p(d(100)), c((t) => t.detail), u(void 0)), w(e).pipe(n(() => {
42
- window.dispatchEvent(new CustomEvent(S, { detail: { uid: e } }));
43
- }))])), n(([e, t]) => {
44
- e?.sheet && (e.sheet.closeSheet(), this.activeSheets.delete(t));
45
- })).subscribe();
46
- }
47
- setupPopStateListener() {
48
- this.popStateListenerActive || (o(window, "popstate").subscribe((e) => {
49
- if (this.activeSheets.size > 0) {
50
- const t = Array.from(this.activeSheets).pop();
51
- t && (this.dismiss(t), e.state && e.state.schmancySheet && history.pushState({}, "", window.location.href));
52
- }
53
- }), this.popStateListenerActive = !0);
54
- }
55
- dismiss(e) {
56
- if (!e && this.activeSheets.size > 0) {
57
- const t = Array.from(this.activeSheets);
58
- e = t[t.length - 1];
59
- }
60
- e && this.$dismiss.next(e);
61
- }
62
- open(e) {
63
- this.bottomSheet.next(e);
64
- }
65
- isOpen(e) {
66
- return this.activeSheets.has(e);
67
- }
68
- closeAll() {
69
- Array.from(this.activeSheets).forEach((e) => {
70
- this.dismiss(e);
71
- });
72
- }
73
- }();
74
- export {
75
- L as S,
76
- S as a,
77
- v as b,
78
- C as s
79
- };
80
- //# sourceMappingURL=sheet.service-xiXyDA0o.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"sheet.service-xiXyDA0o.js","sources":["../src/sheet/sheet.service.ts"],"sourcesContent":["import {\n\tdefaultIfEmpty,\n\tdelay,\n\tforkJoin,\n\tfromEvent,\n\tmap,\n\tmergeMap,\n\tof,\n\tSubject,\n\tswitchMap,\n\ttake,\n\ttakeUntil,\n\ttap,\n\ttimer,\n} from 'rxjs'\nimport { ComponentType } from '../area/router.types'\nimport { ThemeHereIAm, ThemeHereIAmEvent, ThemeWhereAreYou } from '../theme/theme.events'\nimport SchmancySheet from './sheet'\n\nexport enum SchmancySheetPosition {\n\tSide = 'side',\n\tBottom = 'bottom',\n}\n\nexport type SheetConfig = {\n\tcomponent: ComponentType\n\tuid?: string\n\tposition?: SchmancySheetPosition\n\tpersist?: boolean\n\tclose?: () => void\n\tlock?: boolean // Controls both ESC and overlay click dismissal\n\tonBeforeOpen?: (component: HTMLElement) => void\n\tonAfterOpen?: (component: HTMLElement) => void\n}\n\n// Keep old name for backward compatibility\ntype BottomSheeetTarget = SheetConfig\n\n// Events for communication between bottom-sheet component and bottom-sheet.service\nexport type SheetWhereAreYouRickyEvent = CustomEvent<{\n\tuid: string\n}>\nexport const SheetWhereAreYouRicky = 'are-you-there-sheet'\n\nexport type SheetHereMortyEvent = CustomEvent<{\n\tsheet?: SchmancySheet\n\ttheme?: HTMLElement\n}>\nexport const SheetHereMorty = 'yes-here'\n\n// Function to determine the position based on screen size\nconst getPosition = (): SchmancySheetPosition => {\n\treturn window.innerWidth >= 768 ? SchmancySheetPosition.Side : SchmancySheetPosition.Bottom // Adjust 768 as needed for your breakpoint\n}\n\nclass BottomSheetService {\n\tbottomSheet = new Subject<BottomSheeetTarget>()\n\t$dismiss = new Subject<string>()\n\t// Track currently open sheets\n\tprivate activeSheets = new Set<string>()\n\t// To track if we've set up the popstate listener\n\tprivate popStateListenerActive = false\n\n\tconstructor() {\n\t\tthis.setupSheetOpeningLogic()\n\t\tthis.setupSheetDismissLogic()\n\t\tthis.setupPopStateListener()\n\t}\n\n\t/**\n\t * Sets up the main sheet opening logic\n\t */\n\tprivate setupSheetOpeningLogic() {\n\t\tthis.bottomSheet\n\t\t\t.pipe(\n\t\t\t\tswitchMap(target =>\n\t\t\t\t\tforkJoin([\n\t\t\t\t\t\t// First check for existing sheet\n\t\t\t\t\t\tfromEvent<SheetHereMortyEvent>(window, SheetHereMorty).pipe(\n\t\t\t\t\t\t\ttakeUntil(timer(50)),\n\t\t\t\t\t\t\tmap(e => e.detail),\n\t\t\t\t\t\t\tdefaultIfEmpty(undefined),\n\t\t\t\t\t\t),\n\t\t\t\t\t\t// Then find theme container\n\t\t\t\t\t\tfromEvent<ThemeHereIAmEvent>(window, ThemeHereIAm).pipe(\n\t\t\t\t\t\t\ttakeUntil(timer(50)),\n\t\t\t\t\t\t\tmap(e => e.detail.theme),\n\t\t\t\t\t\t\tdefaultIfEmpty(undefined),\n\t\t\t\t\t\t),\n\t\t\t\t\t\tof(target).pipe(\n\t\t\t\t\t\t\ttap(() => {\n\t\t\t\t\t\t\t\t// Determine uid - use provided uid or generate one\n\t\t\t\t\t\t\t\tconst uid = target.uid ?? `sheet-${Date.now()}`\n\n\t\t\t\t\t\t\t\t// First ask for existing sheet\n\t\t\t\t\t\t\t\twindow.dispatchEvent(\n\t\t\t\t\t\t\t\t\tnew CustomEvent(SheetWhereAreYouRicky, {\n\t\t\t\t\t\t\t\t\t\tdetail: { uid },\n\t\t\t\t\t\t\t\t\t\tbubbles: true,\n\t\t\t\t\t\t\t\t\t\tcomposed: true,\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// Then ask for theme container\n\t\t\t\t\t\t\t\twindow.dispatchEvent(\n\t\t\t\t\t\t\t\t\tnew CustomEvent(ThemeWhereAreYou, {\n\t\t\t\t\t\t\t\t\t\tbubbles: true,\n\t\t\t\t\t\t\t\t\t\tcomposed: true,\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}),\n\t\t\t\t\t\t),\n\t\t\t\t\t]),\n\t\t\t\t),\n\n\t\t\t\tmap(([existingSheet, theme, target]) => {\n\t\t\t\t\tlet sheet = existingSheet?.sheet\n\t\t\t\t\tlet targetContainer: HTMLElement\n\n\t\t\t\t\tif (sheet) {\n\t\t\t\t\t\t// Use existing sheet\n\t\t\t\t\t\ttargetContainer = sheet.parentElement as HTMLElement\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// Determine container - use theme from discovery or fallback\n\t\t\t\t\t\ttargetContainer = theme || (document.querySelector('schmancy-theme') as HTMLElement) || document.body\n\n\t\t\t\t\t\t// Create new sheet\n\t\t\t\t\t\tconst uid = target.uid ?? `sheet-${Date.now()}`\n\t\t\t\t\t\tsheet = document.createElement('schmancy-sheet')\n\t\t\t\t\t\tsheet.setAttribute('uid', uid)\n\t\t\t\t\t\ttargetContainer.appendChild(sheet)\n\t\t\t\t\t}\n\n\t\t\t\t\ttarget.lock && sheet.setAttribute('lock', 'true')\n\n\t\t\t\t\t// Use the dynamic position function here\n\t\t\t\t\tconst position = target.position || getPosition()\n\t\t\t\t\tsheet.setAttribute('position', position)\n\n\t\t\t\t\ttarget.persist && sheet.setAttribute('persist', String(target.persist))\n\n\t\t\t\t\tdocument.body.style.overflow = 'hidden' // lock the scroll of the host\n\t\t\t\t\treturn { target, sheet: sheet as SchmancySheet }\n\t\t\t\t}),\n\t\t\t\tdelay(20),\n\t\t\t\ttap(({ target, sheet }) => {\n\t\t\t\t\t// Always dispatch render event - area router handles duplicate prevention\n\t\t\t\t\twindow.dispatchEvent(\n\t\t\t\t\t\tnew CustomEvent('schmancy-sheet-render', {\n\t\t\t\t\t\t\tdetail: { component: target.component, uid: sheet.getAttribute('uid') },\n\t\t\t\t\t\t\tbubbles: true,\n\t\t\t\t\t\t\tcomposed: true,\n\t\t\t\t\t\t}),\n\t\t\t\t\t)\n\t\t\t\t}),\n\t\t\t\tdelay(1),\n\t\t\t\ttap(({ target, sheet }) => {\n\t\t\t\t\tsheet?.setAttribute('open', 'true')\n\n\t\t\t\t\t// Add to active sheets tracking\n\t\t\t\t\tconst uid = sheet.getAttribute('uid') || target.uid || `sheet-${Date.now()}`\n\t\t\t\t\tthis.activeSheets.add(uid)\n\n\t\t\t\t\t// Set up close event listener (always, not just for new sheets)\n\t\t\t\t\tfromEvent<CustomEvent>(sheet, 'close')\n\t\t\t\t\t\t.pipe(take(1))\n\t\t\t\t\t\t.pipe(delay(300))\n\t\t\t\t\t\t.subscribe(_ => {\n\t\t\t\t\t\t\t// Use the sheet reference directly, not e.target\n\t\t\t\t\t\t\tconst sheetElement = sheet as SchmancySheet\n\n\t\t\t\t\t\t\t// Remove from active sheets tracking\n\t\t\t\t\t\t\tif (sheetElement) {\n\t\t\t\t\t\t\t\tconst uid = sheetElement.getAttribute('uid')\n\t\t\t\t\t\t\t\tif (uid) {\n\t\t\t\t\t\t\t\t\tthis.activeSheets.delete(uid)\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t// Only keep sheet if persist is explicitly set to a truthy value\n\t\t\t\t\t\t\t\tconst persistAttr = sheetElement.getAttribute('persist')\n\t\t\t\t\t\t\t\tconst shouldRemove = !persistAttr || persistAttr === 'false'\n\n\t\t\t\t\t\t\t\tif (shouldRemove) {\n\t\t\t\t\t\t\t\t\tsheetElement.remove()\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tdocument.body.style.overflow = 'auto' // unlock the scroll of the host\n\t\t\t\t\t\t})\n\t\t\t\t}),\n\t\t\t)\n\t\t\t.subscribe()\n\t}\n\n\t/**\n\t * Sets up the sheet closing/dismissal logic\n\t */\n\tprivate setupSheetDismissLogic() {\n\t\tthis.$dismiss\n\t\t\t.pipe(\n\t\t\t\tmergeMap(uid =>\n\t\t\t\t\tforkJoin([\n\t\t\t\t\t\tfromEvent<SheetHereMortyEvent>(window, SheetHereMorty).pipe(\n\t\t\t\t\t\t\ttakeUntil(timer(100)),\n\t\t\t\t\t\t\tmap(e => e.detail),\n\t\t\t\t\t\t\tdefaultIfEmpty(undefined),\n\t\t\t\t\t\t),\n\t\t\t\t\t\tof(uid).pipe(\n\t\t\t\t\t\t\ttap(() => {\n\t\t\t\t\t\t\t\twindow.dispatchEvent(new CustomEvent(SheetWhereAreYouRicky, { detail: { uid } }))\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\ttap(([response, uid]) => {\n\t\t\t\t\tif (response?.sheet) {\n\t\t\t\t\t\tresponse.sheet.closeSheet()\n\t\t\t\t\t\tthis.activeSheets.delete(uid)\n\t\t\t\t\t} else {\n\t\t\t\t\t}\n\t\t\t\t}),\n\t\t\t)\n\t\t\t.subscribe()\n\t}\n\n\t/**\n\t * Sets up the popstate listener to handle browser back button\n\t */\n\tprivate setupPopStateListener() {\n\t\tif (this.popStateListenerActive) return\n\n\t\tfromEvent<PopStateEvent>(window, 'popstate').subscribe(event => {\n\t\t\t// If we have active sheets, close the most recently opened one\n\t\t\tif (this.activeSheets.size > 0) {\n\t\t\t\t// Get the last sheet (Set maintains insertion order)\n\t\t\t\tconst lastSheet = Array.from(this.activeSheets).pop()\n\t\t\t\tif (lastSheet) {\n\t\t\t\t\tthis.dismiss(lastSheet)\n\n\t\t\t\t\t// Prevent default navigation behavior by pushing a new state\n\t\t\t\t\t// This effectively cancels out the back navigation\n\t\t\t\t\tif (event.state && event.state.schmancySheet) {\n\t\t\t\t\t\thistory.pushState({}, '', window.location.href)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t})\n\n\t\tthis.popStateListenerActive = true\n\t}\n\n\t/**\n\t * Dismiss a sheet by uid, or dismiss the most recently opened sheet if no uid provided\n\t */\n\tdismiss(uid?: string) {\n\t\tif (!uid && this.activeSheets.size > 0) {\n\t\t\t// Get the last sheet opened (Set maintains insertion order)\n\t\t\tconst sheetsArray = Array.from(this.activeSheets)\n\t\t\tuid = sheetsArray[sheetsArray.length - 1]\n\t\t}\n\n\t\tif (uid) {\n\t\t\tthis.$dismiss.next(uid)\n\t\t}\n\t}\n\n\t/**\n\t * Open a sheet with the given target configuration\n\t */\n\topen(target: BottomSheeetTarget) {\n\t\tthis.bottomSheet.next(target)\n\t}\n\n\t/**\n\t * Check if a sheet is currently open by uid\n\t */\n\tisOpen(uid: string): boolean {\n\t\treturn this.activeSheets.has(uid)\n\t}\n\n\t/**\n\t * Close all open sheets\n\t */\n\tcloseAll() {\n\t\t// Copy the set to avoid modification during iteration\n\t\tArray.from(this.activeSheets).forEach(uid => {\n\t\t\tthis.dismiss(uid)\n\t\t})\n\t}\n\n}\nexport const sheet = new BottomSheetService()\n"],"names":["SchmancySheetPosition","SheetWhereAreYouRicky","SheetHereMorty","sheet","this","bottomSheet","Subject","$dismiss","activeSheets","Set","popStateListenerActive","setupSheetOpeningLogic","setupSheetDismissLogic","setupPopStateListener","pipe","switchMap","forkJoin","fromEvent","window","takeUntil","timer","map","e","detail","defaultIfEmpty","ThemeHereIAm","theme","of","target","tap","uid","Date","now","dispatchEvent","CustomEvent","bubbles","composed","ThemeWhereAreYou","existingSheet","targetContainer","parentElement","document","querySelector","body","createElement","setAttribute","appendChild","lock","position","innerWidth","persist","String","style","overflow","delay","component","getAttribute","add","take","subscribe","_","sheetElement","delete","persistAttr","remove","mergeMap","response","closeSheet","event","size","lastSheet","Array","from","pop","dismiss","state","schmancySheet","history","pushState","location","href","sheetsArray","length","next","has","forEach"],"mappings":"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"}