@mhmo91/schmancy 0.6.8 → 0.6.10

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 (327) hide show
  1. package/dist/{animated-text-DLyx9-eP.js → animated-text-CUmecSA0.js} +3 -3
  2. package/dist/{animated-text-DLyx9-eP.js.map → animated-text-CUmecSA0.js.map} +1 -1
  3. package/dist/{animated-text-Do7ExPpE.cjs → animated-text-D4VX-d9R.cjs} +2 -2
  4. package/dist/{animated-text-Do7ExPpE.cjs.map → animated-text-D4VX-d9R.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-BYJqbz6I.js → area.component-CY-wcftl.js} +3 -3
  9. package/dist/{area.component-BYJqbz6I.js.map → area.component-CY-wcftl.js.map} +1 -1
  10. package/dist/{area.component-C_u433rX.cjs → area.component-Dy_bNCum.cjs} +2 -2
  11. package/dist/{area.component-C_u433rX.cjs.map → area.component-Dy_bNCum.cjs.map} +1 -1
  12. package/dist/area.js +1 -1
  13. package/dist/{autocomplete-BWw1WP6T.js → autocomplete-BLmTfG1M.js} +4 -4
  14. package/dist/{autocomplete-BWw1WP6T.js.map → autocomplete-BLmTfG1M.js.map} +1 -1
  15. package/dist/{autocomplete-DC_xEDbf.cjs → autocomplete-BQTNgzWU.cjs} +2 -2
  16. package/dist/{autocomplete-DC_xEDbf.cjs.map → autocomplete-BQTNgzWU.cjs.map} +1 -1
  17. package/dist/autocomplete.cjs +1 -1
  18. package/dist/autocomplete.js +1 -1
  19. package/dist/{avatar-CWyP68pi.cjs → avatar-CyfAKzMg.cjs} +2 -2
  20. package/dist/{avatar-CWyP68pi.cjs.map → avatar-CyfAKzMg.cjs.map} +1 -1
  21. package/dist/{avatar-CPEgR5Et.js → avatar-Lal377IV.js} +51 -51
  22. package/dist/{avatar-CPEgR5Et.js.map → avatar-Lal377IV.js.map} +1 -1
  23. package/dist/badge.cjs +1 -1
  24. package/dist/badge.js +1 -1
  25. package/dist/{boat-C5caSmse.cjs → boat-C_tZIBSz.cjs} +2 -2
  26. package/dist/{boat-C5caSmse.cjs.map → boat-C_tZIBSz.cjs.map} +1 -1
  27. package/dist/{boat-Dw0acuV8.js → boat-DgUy8xs-.js} +3 -3
  28. package/dist/{boat-Dw0acuV8.js.map → boat-DgUy8xs-.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-DZWvC3Ez.js → checkbox-D6ri_ioM.js} +2 -2
  38. package/dist/{checkbox-DZWvC3Ez.js.map → checkbox-D6ri_ioM.js.map} +1 -1
  39. package/dist/{checkbox-DH77DdLR.cjs → checkbox-DjaUfANf.cjs} +2 -2
  40. package/dist/{checkbox-DH77DdLR.cjs.map → checkbox-DjaUfANf.cjs.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-CjczD0Jv.cjs → code-preview-WyZg7w_7.cjs} +2 -2
  48. package/dist/{code-preview-CjczD0Jv.cjs.map → code-preview-WyZg7w_7.cjs.map} +1 -1
  49. package/dist/{code-preview-DxRNCwGX.js → code-preview-eQCRfE8d.js} +2 -2
  50. package/dist/{code-preview-DxRNCwGX.js.map → code-preview-eQCRfE8d.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-8N7nkUNn.js → date-range-8-fGyR3Z.js} +3 -3
  56. package/dist/{date-range-8N7nkUNn.js.map → date-range-8-fGyR3Z.js.map} +1 -1
  57. package/dist/{date-range-BuFNS_wY.cjs → date-range-CmKmNOnp.cjs} +2 -2
  58. package/dist/{date-range-BuFNS_wY.cjs.map → date-range-CmKmNOnp.cjs.map} +1 -1
  59. package/dist/{date-range-inline-CQ0YLLsV.js → date-range-inline-BEPXeeXh.js} +3 -3
  60. package/dist/{date-range-inline-CQ0YLLsV.js.map → date-range-inline-BEPXeeXh.js.map} +1 -1
  61. package/dist/{date-range-inline-BKDR-qTY.cjs → date-range-inline-DjC2j9SN.cjs} +2 -2
  62. package/dist/{date-range-inline-BKDR-qTY.cjs.map → date-range-inline-DjC2j9SN.cjs.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-Bd1x4Trp.js → delay-BsFf3qCR.js} +2 -2
  68. package/dist/{delay-Bd1x4Trp.js.map → delay-BsFf3qCR.js.map} +1 -1
  69. package/dist/{delay-BD2mU0Cn.cjs → delay-UxAcUuZu.cjs} +2 -2
  70. package/dist/{delay-BD2mU0Cn.cjs.map → delay-UxAcUuZu.cjs.map} +1 -1
  71. package/dist/delay.cjs +1 -1
  72. package/dist/delay.js +1 -1
  73. package/dist/{details-CWn62IXD.js → details-2Mdm-CDN.js} +2 -2
  74. package/dist/{details-CWn62IXD.js.map → details-2Mdm-CDN.js.map} +1 -1
  75. package/dist/{details-tSMBH5kq.cjs → details-BxeylMkN.cjs} +2 -2
  76. package/dist/{details-tSMBH5kq.cjs.map → details-BxeylMkN.cjs.map} +1 -1
  77. package/dist/details.cjs +1 -1
  78. package/dist/details.js +1 -1
  79. package/dist/{dialog-content-BsCIWMpD.cjs → dialog-content-CN7O3ZVZ.cjs} +2 -2
  80. package/dist/{dialog-content-BsCIWMpD.cjs.map → dialog-content-CN7O3ZVZ.cjs.map} +1 -1
  81. package/dist/{dialog-content-CcOLEnDr.js → dialog-content-Ca4gzlOi.js} +3 -3
  82. package/dist/{dialog-content-CcOLEnDr.js.map → dialog-content-Ca4gzlOi.js.map} +1 -1
  83. package/dist/dialog.cjs +1 -1
  84. package/dist/dialog.js +1 -1
  85. package/dist/{divider-DxcKbbFX.js → divider-BzILgs8q.js} +3 -3
  86. package/dist/{divider-DxcKbbFX.js.map → divider-BzILgs8q.js.map} +1 -1
  87. package/dist/{divider-CzFj_O-8.cjs → divider-CVwVe6Gj.cjs} +2 -2
  88. package/dist/{divider-CzFj_O-8.cjs.map → divider-CVwVe6Gj.cjs.map} +1 -1
  89. package/dist/divider.cjs +1 -1
  90. package/dist/divider.js +1 -1
  91. package/dist/{dropdown-content-B0paFk08.cjs → dropdown-content-CLMuMtcs.cjs} +2 -2
  92. package/dist/{dropdown-content-B0paFk08.cjs.map → dropdown-content-CLMuMtcs.cjs.map} +1 -1
  93. package/dist/{dropdown-content-103Fd0gq.js → dropdown-content-DevuaHdH.js} +3 -3
  94. package/dist/{dropdown-content-103Fd0gq.js.map → dropdown-content-DevuaHdH.js.map} +1 -1
  95. package/dist/dropdown.cjs +1 -1
  96. package/dist/dropdown.js +1 -1
  97. package/dist/{email-recipients-BGMuQ9U1.js → email-recipients-DB_Z223_.js} +6 -6
  98. package/dist/{email-recipients-BGMuQ9U1.js.map → email-recipients-DB_Z223_.js.map} +1 -1
  99. package/dist/{email-recipients-CFCC3Yu1.cjs → email-recipients-Dbu8EA5N.cjs} +2 -2
  100. package/dist/{email-recipients-CFCC3Yu1.cjs.map → email-recipients-Dbu8EA5N.cjs.map} +1 -1
  101. package/dist/extra.cjs +1 -1
  102. package/dist/extra.js +1 -1
  103. package/dist/{flex-DCryYOhZ.js → flex-Bc217dkI.js} +2 -2
  104. package/dist/{flex-DCryYOhZ.js.map → flex-Bc217dkI.js.map} +1 -1
  105. package/dist/{flex-gWrsD4YN.cjs → flex-Bmct0fDD.cjs} +2 -2
  106. package/dist/{flex-gWrsD4YN.cjs.map → flex-Bmct0fDD.cjs.map} +1 -1
  107. package/dist/{form-BJ_QQoWf.cjs → form-BpVLzotp.cjs} +2 -2
  108. package/dist/{form-BJ_QQoWf.cjs.map → form-BpVLzotp.cjs.map} +1 -1
  109. package/dist/{form-DOd2YsWM.js → form-De_aVOKV.js} +2 -2
  110. package/dist/{form-DOd2YsWM.js.map → form-De_aVOKV.js.map} +1 -1
  111. package/dist/form.cjs +1 -1
  112. package/dist/form.js +1 -1
  113. package/dist/{formField.mixin-Ceg_qMOk.cjs → formField.mixin-CPhGXtB-.cjs} +2 -2
  114. package/dist/{formField.mixin-Ceg_qMOk.cjs.map → formField.mixin-CPhGXtB-.cjs.map} +1 -1
  115. package/dist/{formField.mixin-DkpZ_36p.js → formField.mixin-DZ3CBzQ7.js} +2 -2
  116. package/dist/{formField.mixin-DkpZ_36p.js.map → formField.mixin-DZ3CBzQ7.js.map} +1 -1
  117. package/dist/{icon-B4LokKcE.js → icon-D05NBa8J.js} +2 -2
  118. package/dist/{icon-B4LokKcE.js.map → icon-D05NBa8J.js.map} +1 -1
  119. package/dist/{icon-4HmpoTLD.cjs → icon-D9KDm0_c.cjs} +2 -2
  120. package/dist/{icon-4HmpoTLD.cjs.map → icon-D9KDm0_c.cjs.map} +1 -1
  121. package/dist/{icon-button-Op0HzYKV.js → icon-button-D-K64Mol.js} +38 -42
  122. package/dist/icon-button-D-K64Mol.js.map +1 -0
  123. package/dist/icon-button-oBh0tLNe.cjs +63 -0
  124. package/dist/icon-button-oBh0tLNe.cjs.map +1 -0
  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 +50 -50
  129. package/dist/{input-xQVqA36V.js → input-BVnJlKsv.js} +3 -3
  130. package/dist/{input-xQVqA36V.js.map → input-BVnJlKsv.js.map} +1 -1
  131. package/dist/{input-C_HMn9lk.cjs → input-D7w4ndXi.cjs} +2 -2
  132. package/dist/{input-C_HMn9lk.cjs.map → input-D7w4ndXi.cjs.map} +1 -1
  133. package/dist/{input-chip-BmjemJFK.cjs → input-chip-BVmNlWuq.cjs} +2 -2
  134. package/dist/{input-chip-BmjemJFK.cjs.map → input-chip-BVmNlWuq.cjs.map} +1 -1
  135. package/dist/{input-chip-CVYt-YX1.js → input-chip-CizoVJge.js} +2 -2
  136. package/dist/{input-chip-CVYt-YX1.js.map → input-chip-CizoVJge.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-CRUQzz0F.js → list-BQ3UOtc2.js} +2 -2
  142. package/dist/{list-CRUQzz0F.js.map → list-BQ3UOtc2.js.map} +1 -1
  143. package/dist/{list-COZ-7E6a.cjs → list-D-dsHFWw.cjs} +2 -2
  144. package/dist/{list-COZ-7E6a.cjs.map → list-D-dsHFWw.cjs.map} +1 -1
  145. package/dist/list.cjs +1 -1
  146. package/dist/list.js +1 -1
  147. package/dist/{litElement.mixin-C26Pwc-k.cjs → litElement.mixin-CJY2Cfqe.cjs} +2 -2
  148. package/dist/{litElement.mixin-C26Pwc-k.cjs.map → litElement.mixin-CJY2Cfqe.cjs.map} +1 -1
  149. package/dist/{litElement.mixin-CdsqAj-a.js → litElement.mixin-Cv7EISwD.js} +2 -2
  150. package/dist/{litElement.mixin-CdsqAj-a.js.map → litElement.mixin-Cv7EISwD.js.map} +1 -1
  151. package/dist/mailbox.cjs +1 -1
  152. package/dist/mailbox.js +1 -1
  153. package/dist/{map-xyZtrYPc.js → map-1TRayP2G.js} +2 -2
  154. package/dist/{map-xyZtrYPc.js.map → map-1TRayP2G.js.map} +1 -1
  155. package/dist/{map-Z55tOGNJ.cjs → map-p0Ds9nkV.cjs} +2 -2
  156. package/dist/{map-Z55tOGNJ.cjs.map → map-p0Ds9nkV.cjs.map} +1 -1
  157. package/dist/map.cjs +1 -1
  158. package/dist/map.js +1 -1
  159. package/dist/{media-CC-dqIC5.cjs → media-CyPm58zF.cjs} +2 -2
  160. package/dist/{media-CC-dqIC5.cjs.map → media-CyPm58zF.cjs.map} +1 -1
  161. package/dist/{media-CzVOD0dg.js → media-jZAzIaPe.js} +2 -2
  162. package/dist/{media-CzVOD0dg.js.map → media-jZAzIaPe.js.map} +1 -1
  163. package/dist/{menu-C8Ij52b8.js → menu-Dura_BY4.js} +3 -3
  164. package/dist/{menu-C8Ij52b8.js.map → menu-Dura_BY4.js.map} +1 -1
  165. package/dist/{menu-Oxz8Xnsa.cjs → menu-LDhTIPWk.cjs} +2 -2
  166. package/dist/{menu-Oxz8Xnsa.cjs.map → menu-LDhTIPWk.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-BZ7zwe20.js → navigation-rail-Bu7lGEel.js} +3 -3
  174. package/dist/{navigation-rail-BZ7zwe20.js.map → navigation-rail-Bu7lGEel.js.map} +1 -1
  175. package/dist/{navigation-rail-B3zWwtVD.cjs → navigation-rail-D-BOM8gm.cjs} +2 -2
  176. package/dist/{navigation-rail-B3zWwtVD.cjs.map → navigation-rail-D-BOM8gm.cjs.map} +1 -1
  177. package/dist/navigation-rail.cjs +1 -1
  178. package/dist/navigation-rail.js +1 -1
  179. package/dist/{notification-service-B5TUQBOG.js → notification-service-CE15AIwh.js} +4 -4
  180. package/dist/{notification-service-B5TUQBOG.js.map → notification-service-CE15AIwh.js.map} +1 -1
  181. package/dist/{notification-service-DyOaup0S.cjs → notification-service-CI3DgEy_.cjs} +2 -2
  182. package/dist/{notification-service-DyOaup0S.cjs.map → notification-service-CI3DgEy_.cjs.map} +1 -1
  183. package/dist/notification.cjs +1 -1
  184. package/dist/notification.js +2 -2
  185. package/dist/{notify-DmPHYQe9.cjs → notify-B4IuXbge.cjs} +2 -2
  186. package/dist/{notify-DmPHYQe9.cjs.map → notify-B4IuXbge.cjs.map} +1 -1
  187. package/dist/{notify-BiaSRq0r.js → notify-ChLnWIbA.js} +2 -2
  188. package/dist/{notify-BiaSRq0r.js.map → notify-ChLnWIbA.js.map} +1 -1
  189. package/dist/{option-DDuEnFRy.cjs → option-BanGLIfi.cjs} +2 -2
  190. package/dist/{option-DDuEnFRy.cjs.map → option-BanGLIfi.cjs.map} +1 -1
  191. package/dist/{option-DALEtOeU.js → option-DRama3yg.js} +2 -2
  192. package/dist/{option-DALEtOeU.js.map → option-DRama3yg.js.map} +1 -1
  193. package/dist/option.cjs +1 -1
  194. package/dist/option.js +1 -1
  195. package/dist/{payment-card-form-CS8Px1F3.cjs → payment-card-form-QlR9k4BD.cjs} +2 -2
  196. package/dist/{payment-card-form-CS8Px1F3.cjs.map → payment-card-form-QlR9k4BD.cjs.map} +1 -1
  197. package/dist/{payment-card-form-DmsimSFZ.js → payment-card-form-v-KnKUZO.js} +3 -3
  198. package/dist/{payment-card-form-DmsimSFZ.js.map → payment-card-form-v-KnKUZO.js.map} +1 -1
  199. package/dist/{progress-CbCWE2s-.cjs → progress-CiDHs_md.cjs} +2 -2
  200. package/dist/{progress-CbCWE2s-.cjs.map → progress-CiDHs_md.cjs.map} +1 -1
  201. package/dist/{progress-DAkBesVJ.js → progress-UBKScNdh.js} +2 -2
  202. package/dist/{progress-DAkBesVJ.js.map → progress-UBKScNdh.js.map} +1 -1
  203. package/dist/progress.cjs +1 -1
  204. package/dist/progress.js +1 -1
  205. package/dist/{radio-button-DG4GQgMD.js → radio-button-CRr1UMdw.js} +3 -3
  206. package/dist/{radio-button-DG4GQgMD.js.map → radio-button-CRr1UMdw.js.map} +1 -1
  207. package/dist/{radio-button-CSminN1c.cjs → radio-button-DflI0Xw0.cjs} +2 -2
  208. package/dist/{radio-button-CSminN1c.cjs.map → radio-button-DflI0Xw0.cjs.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-Cc4fZR04.cjs → schmancy-steps-container-CQqY3dOG.cjs} +2 -2
  212. package/dist/{schmancy-steps-container-Cc4fZR04.cjs.map → schmancy-steps-container-CQqY3dOG.cjs.map} +1 -1
  213. package/dist/{schmancy-steps-container-BzT6xBEL.js → schmancy-steps-container-cU2g6cMS.js} +2 -2
  214. package/dist/{schmancy-steps-container-BzT6xBEL.js.map → schmancy-steps-container-cU2g6cMS.js.map} +1 -1
  215. package/dist/{select-Da6CakTP.cjs → select-CQbsbS_s.cjs} +2 -2
  216. package/dist/{select-Da6CakTP.cjs.map → select-CQbsbS_s.cjs.map} +1 -1
  217. package/dist/{select-1eDUFg6q.js → select-CsYqzyKi.js} +3 -3
  218. package/dist/{select-1eDUFg6q.js.map → select-CsYqzyKi.js.map} +1 -1
  219. package/dist/select.cjs +1 -1
  220. package/dist/select.js +1 -1
  221. package/dist/{sheet-DnbrlG5W.cjs → sheet-BsnVlaLs.cjs} +3 -3
  222. package/dist/sheet-BsnVlaLs.cjs.map +1 -0
  223. package/dist/{sheet-ByE4dXE5.js → sheet-CogUE8G8.js} +6 -6
  224. package/dist/sheet-CogUE8G8.js.map +1 -0
  225. package/dist/sheet.cjs +1 -1
  226. package/dist/sheet.js +2 -2
  227. package/dist/{sheet.service-D9c1p4HB.js → sheet.service-ByStIhOq.js} +13 -10
  228. package/dist/sheet.service-ByStIhOq.js.map +1 -0
  229. package/dist/sheet.service-Dk3CVgtW.cjs +2 -0
  230. package/dist/sheet.service-Dk3CVgtW.cjs.map +1 -0
  231. package/dist/{slider-BeK83fP2.cjs → slider-CGKeX2gT.cjs} +2 -2
  232. package/dist/{slider-BeK83fP2.cjs.map → slider-CGKeX2gT.cjs.map} +1 -1
  233. package/dist/{slider-OJvKPRLR.js → slider-DPggZXEs.js} +3 -3
  234. package/dist/{slider-OJvKPRLR.js.map → slider-DPggZXEs.js.map} +1 -1
  235. package/dist/slider.cjs +1 -1
  236. package/dist/slider.js +1 -1
  237. package/dist/{spinner-Dwt56akR.js → spinner-8kd9IUxN.js} +2 -2
  238. package/dist/{spinner-Dwt56akR.js.map → spinner-8kd9IUxN.js.map} +1 -1
  239. package/dist/{spinner-DJcQtv0l.cjs → spinner-nEBRJu36.cjs} +2 -2
  240. package/dist/{spinner-DJcQtv0l.cjs.map → spinner-nEBRJu36.cjs.map} +1 -1
  241. package/dist/steps.cjs +1 -1
  242. package/dist/steps.js +1 -1
  243. package/dist/{suggestion-chip-B374VUnt.js → suggestion-chip-BqoNDMth.js} +3 -3
  244. package/dist/{suggestion-chip-B374VUnt.js.map → suggestion-chip-BqoNDMth.js.map} +1 -1
  245. package/dist/{suggestion-chip-BdNO_VL7.cjs → suggestion-chip-HRnLGmOl.cjs} +2 -2
  246. package/dist/{suggestion-chip-BdNO_VL7.cjs.map → suggestion-chip-HRnLGmOl.cjs.map} +1 -1
  247. package/dist/{surface-YrABwXrS.cjs → surface-4lHxccmh.cjs} +2 -2
  248. package/dist/{surface-YrABwXrS.cjs.map → surface-4lHxccmh.cjs.map} +1 -1
  249. package/dist/{surface-CrFJYP9L.js → surface-CIbY6840.js} +2 -2
  250. package/dist/{surface-CrFJYP9L.js.map → surface-CIbY6840.js.map} +1 -1
  251. package/dist/surface.cjs +1 -1
  252. package/dist/surface.js +1 -1
  253. package/dist/{table-VJvz-727.cjs → table-BMMEyi9V.cjs} +2 -2
  254. package/dist/{table-VJvz-727.cjs.map → table-BMMEyi9V.cjs.map} +1 -1
  255. package/dist/{table-BFtl2Gyg.js → table-BT0B3T1X.js} +2 -2
  256. package/dist/{table-BFtl2Gyg.js.map → table-BT0B3T1X.js.map} +1 -1
  257. package/dist/table.cjs +1 -1
  258. package/dist/table.js +1 -1
  259. package/dist/{tabs-compatibility-CW-PIM9d.cjs → tabs-compatibility-BifVBxsm.cjs} +2 -2
  260. package/dist/{tabs-compatibility-CW-PIM9d.cjs.map → tabs-compatibility-BifVBxsm.cjs.map} +1 -1
  261. package/dist/{tabs-compatibility-AgKKYmI5.js → tabs-compatibility-CdGLLPpX.js} +2 -2
  262. package/dist/{tabs-compatibility-AgKKYmI5.js.map → tabs-compatibility-CdGLLPpX.js.map} +1 -1
  263. package/dist/tabs.cjs +1 -1
  264. package/dist/tabs.js +1 -1
  265. package/dist/{tailwind.mixin-B2zdnyl3.js → tailwind.mixin-Cb9Uc9-p.js} +2 -2
  266. package/dist/{tailwind.mixin-B2zdnyl3.js.map → tailwind.mixin-Cb9Uc9-p.js.map} +1 -1
  267. package/dist/{tailwind.mixin-jb4F7UKY.cjs → tailwind.mixin-Wo-oNBIM.cjs} +2 -2
  268. package/dist/{tailwind.mixin-jb4F7UKY.cjs.map → tailwind.mixin-Wo-oNBIM.cjs.map} +1 -1
  269. package/dist/teleport.cjs +1 -1
  270. package/dist/teleport.js +1 -1
  271. package/dist/{textarea-BaLoY3ob.cjs → textarea-8WnHuPcI.cjs} +2 -2
  272. package/dist/{textarea-BaLoY3ob.cjs.map → textarea-8WnHuPcI.cjs.map} +1 -1
  273. package/dist/{textarea-DwVYF8dB.js → textarea-BbAE_Wts.js} +2 -2
  274. package/dist/{textarea-DwVYF8dB.js.map → textarea-BbAE_Wts.js.map} +1 -1
  275. package/dist/textarea.cjs +1 -1
  276. package/dist/textarea.js +1 -1
  277. package/dist/{theme-button-DPGDbgiJ.js → theme-button-CGfvi4Vf.js} +2 -2
  278. package/dist/{theme-button-DPGDbgiJ.js.map → theme-button-CGfvi4Vf.js.map} +1 -1
  279. package/dist/{theme-button-CEtw4kPb.cjs → theme-button-DD6odcW3.cjs} +2 -2
  280. package/dist/{theme-button-CEtw4kPb.cjs.map → theme-button-DD6odcW3.cjs.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-FO4rAj0Y.js → theme-controller-boat-BNrDduYM.js} +3 -3
  284. package/dist/{theme-controller-boat-FO4rAj0Y.js.map → theme-controller-boat-BNrDduYM.js.map} +1 -1
  285. package/dist/{theme-controller-boat-uK9KhtCB.cjs → theme-controller-boat-BoQZXtXm.cjs} +2 -2
  286. package/dist/{theme-controller-boat-uK9KhtCB.cjs.map → theme-controller-boat-BoQZXtXm.cjs.map} +1 -1
  287. package/dist/theme.cjs +1 -1
  288. package/dist/theme.js +1 -1
  289. package/dist/{timezone-W5jokq0R.js → timezone--ZlhKaw9.js} +3 -3
  290. package/dist/{timezone-W5jokq0R.js.map → timezone--ZlhKaw9.js.map} +1 -1
  291. package/dist/{timezone-DNinUV8o.cjs → timezone-C9yeppAo.cjs} +2 -2
  292. package/dist/{timezone-DNinUV8o.cjs.map → timezone-C9yeppAo.cjs.map} +1 -1
  293. package/dist/{tooltip-BmlgcS7k.cjs → tooltip-DEAW7vHx.cjs} +2 -2
  294. package/dist/{tooltip-BmlgcS7k.cjs.map → tooltip-DEAW7vHx.cjs.map} +1 -1
  295. package/dist/{tooltip-9iRA_OIc.js → tooltip-UDXYtkrc.js} +2 -2
  296. package/dist/{tooltip-9iRA_OIc.js.map → tooltip-UDXYtkrc.js.map} +1 -1
  297. package/dist/tooltip.cjs +1 -1
  298. package/dist/tooltip.js +1 -1
  299. package/dist/{tree-BoR0l03t.js → tree-uUYbbF3b.js} +2 -2
  300. package/dist/{tree-BoR0l03t.js.map → tree-uUYbbF3b.js.map} +1 -1
  301. package/dist/{tree-DibyLLvH.cjs → tree-x4n8_wjx.cjs} +2 -2
  302. package/dist/{tree-DibyLLvH.cjs.map → tree-x4n8_wjx.cjs.map} +1 -1
  303. package/dist/tree.cjs +1 -1
  304. package/dist/tree.js +1 -1
  305. package/dist/{typewriter-CvyR8JyQ.cjs → typewriter-CMrJs0Xu.cjs} +2 -2
  306. package/dist/{typewriter-CvyR8JyQ.cjs.map → typewriter-CMrJs0Xu.cjs.map} +1 -1
  307. package/dist/{typewriter-BFA9-JZ7.js → typewriter-Dy1DQ2Hc.js} +4 -4
  308. package/dist/{typewriter-BFA9-JZ7.js.map → typewriter-Dy1DQ2Hc.js.map} +1 -1
  309. package/dist/typewriter.cjs +1 -1
  310. package/dist/typewriter.js +1 -1
  311. package/dist/{typography-DEFV0BMG.js → typography-D5P7HS-U.js} +2 -2
  312. package/dist/{typography-DEFV0BMG.js.map → typography-D5P7HS-U.js.map} +1 -1
  313. package/dist/{typography-BOag31pu.cjs → typography-DQd9Sd2x.cjs} +2 -2
  314. package/dist/{typography-BOag31pu.cjs.map → typography-DQd9Sd2x.cjs.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/button/icon-button.d.ts +7 -1
  319. package/types/src/sheet/sheet.service.d.ts +7 -0
  320. package/dist/icon-button-DOuv10nc.cjs +0 -67
  321. package/dist/icon-button-DOuv10nc.cjs.map +0 -1
  322. package/dist/icon-button-Op0HzYKV.js.map +0 -1
  323. package/dist/sheet-ByE4dXE5.js.map +0 -1
  324. package/dist/sheet-DnbrlG5W.cjs.map +0 -1
  325. package/dist/sheet.service-D4c1hRuR.cjs +0 -2
  326. package/dist/sheet.service-D4c1hRuR.cjs.map +0 -1
  327. package/dist/sheet.service-D9c1p4HB.js.map +0 -1
@@ -1,67 +0,0 @@
1
- "use strict";require("rxjs"),require("rxjs/operators"),require("lit/directives/class-map.js"),require("lit/directives/style-map.js");const i=require("lit/decorators.js");require("./tailwind.mixin-jb4F7UKY.cjs");const u=require("./litElement.mixin-C26Pwc-k.cjs"),r=require("lit"),l=require("lit/directives/if-defined.js"),p=require("lit/directives/when.js");var b=Object.defineProperty,f=Object.getOwnPropertyDescriptor,o=(t,e,s,n)=>{for(var c,a=n>1?void 0:n?f(e,s):e,h=t.length-1;h>=0;h--)(c=t[h])&&(a=(n?c(e,s,a):c(a))||a);return n&&a&&b(e,s,a),a};exports.SchmancyButton=class extends u.$LitElement(r.css`:host{
2
- display: inline-block;
3
- min-width: fit-content;
4
- }`){constructor(){super(...arguments),this.variant="text",this.width="auto",this.type="button",this.disabled=!1}set ariaLabel(t){const e=this._ariaLabel;this._ariaLabel=t,this.hasAttribute("aria-label")&&this.removeAttribute("aria-label"),this.requestUpdate("ariaLabel",e)}get ariaLabel(){return this._ariaLabel}focus(t){this.nativeElement.focus(t)}blur(){this.nativeElement.blur()}get imgClasses(){return["max-h-5","max-w-5","sm:max-h-6","sm:max-w-6","object-contain"]}firstUpdated(){this.prefixImgs?.forEach(t=>{t.classList.add(...this.imgClasses),t.hasAttribute("alt")||t.setAttribute("alt","")}),this.suffixImgs?.forEach(t=>{t.classList.add(...this.imgClasses),t.hasAttribute("alt")||t.setAttribute("alt","")})}click(){this.dispatchEvent(new Event("click",{bubbles:!0,composed:!0}))}_preventDefault(t){t.preventDefault(),t.stopPropagation()}render(){const t=this.variant==="tonal"?"filled tonal":this.variant,e={"z-0 py-2 px-3 sm:py-1.5 sm:px-3 md:py-2 md:px-4 text-sm sm:text-base transition-all duration-200 relative rounded-full inline-flex justify-center items-center gap-1 sm:gap-1.5 md:gap-2 outline-secondary-default focus-visible:outline-solid focus-visible:outline-2 focus-visible:outline-offset-2 outline-hidden w-[inherit]":!0,"cursor-pointer":!this.disabled,"opacity-[0.38]":this.disabled,"hover:shadow-xs":!this.disabled&&(t==="outlined"||t==="text"||t==="filled"||t==="filled tonal"),"hover:shadow-sm":!this.disabled&&t==="elevated","w-full tex-center":this.width==="full","bg-surface-low text-primary-default shadow-xs":t==="elevated","bg-transparent text-primary-default border-1 border-solid border-outline":t==="outlined","bg-primary-default text-primary-on":t==="filled","bg-secondary-container text-secondary-onContainer":t==="filled tonal","text-primary-default":t==="text"},s={"absolute inset-0 hover:opacity-[0.08] z-0 rounded-full":!0,"hover:bg-primary-on":t==="filled","hover:bg-primary-default":t==="outlined"||t==="elevated"||t==="text","hover:bg-secondary-container":t==="filled tonal"};return this.href?r.html`
5
- <a
6
- part="base"
7
- href=${l.ifDefined(this.disabled?void 0:this.href)}
8
- aria-label=${l.ifDefined(this.ariaLabel)}
9
- class="${this.classMap(e)}"
10
- tabindex=${this.disabled?"-1":"0"}
11
- aria-disabled=${this.disabled}
12
- @click=${this.disabled?this._preventDefault:void 0}
13
- >
14
- ${p.when(!this.disabled,()=>r.html`<div class="${this.classMap(s)}"></div>`)}
15
- <slot name="prefix"></slot>
16
- <slot></slot>
17
- <slot name="suffix"></slot>
18
- </a>
19
- `:r.html`
20
- <button
21
- part="base"
22
- aria-label=${l.ifDefined(this.ariaLabel)}
23
- ?disabled=${this.disabled}
24
- class="${this.classMap(e)}"
25
- type=${l.ifDefined(this.type)}
26
- tabindex=${l.ifDefined(this.disabled?"-1":void 0)}
27
- >
28
- ${p.when(!this.disabled,()=>r.html`<div class="${this.classMap(s)}"></div>`)}
29
- <slot name="prefix"></slot>
30
- <slot></slot>
31
- <slot name="suffix"></slot>
32
- </button>
33
- `}},exports.SchmancyButton.shadowRootOptions={...r.LitElement.shadowRootOptions,mode:"open",delegatesFocus:!0},o([i.query('[part="base"]',!0)],exports.SchmancyButton.prototype,"nativeElement",2),o([i.property({reflect:!0,type:String})],exports.SchmancyButton.prototype,"variant",2),o([i.property()],exports.SchmancyButton.prototype,"width",2),o([i.property({reflect:!0,type:String})],exports.SchmancyButton.prototype,"type",2),o([i.property()],exports.SchmancyButton.prototype,"href",2),o([i.property({type:Boolean,reflect:!0})],exports.SchmancyButton.prototype,"disabled",2),o([i.property({attribute:"aria-label"})],exports.SchmancyButton.prototype,"ariaLabel",1),o([i.queryAssignedElements({slot:"prefix",flatten:!0,selector:"img"})],exports.SchmancyButton.prototype,"prefixImgs",2),o([i.queryAssignedElements({slot:"suffix",flatten:!0,selector:"img"})],exports.SchmancyButton.prototype,"suffixImgs",2),exports.SchmancyButton=o([i.customElement("schmancy-button")],exports.SchmancyButton);var y=Object.defineProperty,m=Object.getOwnPropertyDescriptor,d=(t,e,s,n)=>{for(var c,a=n>1?void 0:n?m(e,s):e,h=t.length-1;h>=0;h--)(c=t[h])&&(a=(n?c(e,s,a):c(a))||a);return n&&a&&y(e,s,a),a};exports.SchmnacyIconButton=class extends u.$LitElement(r.css`
34
- :host {
35
- display: block;
36
- }
37
- `){constructor(){super(...arguments),this.size="md",this.variant="text",this.width="auto",this.type="button",this.disabled=!1}set ariaLabel(t){const e=this._ariaLabel;this._ariaLabel=t,this.hasAttribute("aria-label")&&this.removeAttribute("aria-label"),this.requestUpdate("ariaLabel",e)}get ariaLabel(){return this._ariaLabel}focus(t){this.nativeElement.focus(t)}blur(){this.nativeElement.blur()}click(){this.dispatchEvent(new Event("click",{bubbles:!0,composed:!0}))}_preventDefault(t){t.preventDefault(),t.stopPropagation()}firstUpdated(t){}render(){const t=this.variant==="tonal"?"filled tonal":this.variant,e={"z-0 h-full transition-all duration-200 relative rounded-full inline-flex justify-center items-center gap-[8px] outline-secondary-default focus-visible:outline-solid focus-visible:outline-2 focus-visible:outline-offset-2 outline-hidden":!0,"opacity-[0.38]":this.disabled,"cursor-pointer":!this.disabled,"hover:shadow-xs":!this.disabled&&(t==="outlined"||t==="text"||t==="filled"||t==="filled tonal"),"hover:shadow-sm":!this.disabled&&t==="elevated","w-full text-center":this.width==="full","bg-surface-low text-primary-default shadow-xs":t==="elevated","bg-transparent text-primary-default border-1 border-outline":t==="outlined","bg-primary-default text-primary-on":t==="filled","bg-secondary-container text-secondary-onContainer":t==="filled tonal","text-primary-default":t==="text","px-[6px] py-[6px]":this.size==="sm","px-[8px] py-[8px]":this.size==="md","px-[12px] py-[12px]":this.size==="lg"},s={"hover:opacity-[0.08] rounded-full z-0":!0,"hover:bg-primary-on":t==="filled","hover:bg-primary-default":t==="outlined"||t==="elevated"||t==="text","hover:bg-secondary-container":t==="filled tonal"};return this.href?r.html`
38
- <a
39
- part="base"
40
- href=${l.ifDefined(this.disabled?void 0:this.href)}
41
- aria-label=${l.ifDefined(this.ariaLabel)}
42
- class="${this.classMap(e)}"
43
- tabindex=${this.disabled?"-1":"0"}
44
- aria-disabled=${this.disabled}
45
- @click=${this.disabled?this._preventDefault:void 0}
46
- >
47
- ${p.when(!this.disabled,()=>r.html`<div class="absolute inset-0 ${this.classMap(s)}"></div>`)}
48
- <schmancy-icon size=${this.size==="sm"?"18px":this.size==="md"?"24px":"32px"}>
49
- <slot></slot>
50
- </schmancy-icon>
51
- </a>
52
- `:r.html`
53
- <button
54
- part="base"
55
- aria-label=${l.ifDefined(this.ariaLabel)}
56
- ?disabled=${this.disabled}
57
- class="${this.classMap(e)}"
58
- type=${l.ifDefined(this.type)}
59
- tabindex=${l.ifDefined(this.disabled?"-1":void 0)}
60
- >
61
- ${p.when(!this.disabled,()=>r.html`<div class="absolute inset-0 ${this.classMap(s)}"></div>`)}
62
- <schmancy-icon size=${this.size==="sm"?"18px":this.size==="md"?"24px":"32px"}>
63
- <slot></slot>
64
- </schmancy-icon>
65
- </button>
66
- `}},exports.SchmnacyIconButton.shadowRootOptions={...r.LitElement.shadowRootOptions,mode:"open",delegatesFocus:!0},d([i.query('[part="base"]',!0)],exports.SchmnacyIconButton.prototype,"nativeElement",2),d([i.property({type:String})],exports.SchmnacyIconButton.prototype,"size",2),d([i.property({reflect:!0,type:String})],exports.SchmnacyIconButton.prototype,"variant",2),d([i.property()],exports.SchmnacyIconButton.prototype,"width",2),d([i.property({reflect:!0,type:String})],exports.SchmnacyIconButton.prototype,"type",2),d([i.property()],exports.SchmnacyIconButton.prototype,"href",2),d([i.property({type:Boolean,reflect:!0})],exports.SchmnacyIconButton.prototype,"disabled",2),d([i.property({attribute:"aria-label"})],exports.SchmnacyIconButton.prototype,"ariaLabel",1),exports.SchmnacyIconButton=d([i.customElement("schmancy-icon-button")],exports.SchmnacyIconButton);
67
- //# sourceMappingURL=icon-button-DOuv10nc.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"icon-button-DOuv10nc.cjs","sources":["../src/button/button.ts","../src/button/icon-button.ts"],"sourcesContent":["import { $LitElement } from '@mixins/index'\nimport { css, html, LitElement } from 'lit'\nimport { customElement, property, query, queryAssignedElements } from 'lit/decorators.js'\nimport { ifDefined } from 'lit/directives/if-defined.js'\nimport { when } from 'lit/directives/when.js'\n\nexport interface SchmancyButtonEventMap {\n\tSchmancyFocus: CustomEvent<void>\n\tSchmancyBlur: CustomEvent<void>\n}\n\nexport type ButtonVariant = 'elevated' | 'filled' | 'filled tonal' | 'tonal' | 'outlined' | 'text'\n\n/**\n * A button component.\n * @element schmancy-button\n * @slot - The default slot.\n * @slot prefix - The prefix slot.\n * @slot suffix - The suffix slot.\n */\n@customElement('schmancy-button')\nexport class SchmancyButton extends $LitElement(\n\tcss`:host{\n\t\tdisplay: inline-block;\n\t\tmin-width: fit-content;\n\t}`\n) {\n\tprotected static shadowRootOptions = {\n\t\t...LitElement.shadowRootOptions,\n\t\tmode: 'open',\n\t\tdelegatesFocus: true,\n\t}\n\n\t@query('[part=\"base\"]', true)\n\tprivate nativeElement!: HTMLElement\n\n\tprivate _ariaLabel!: string\n\n\t/**\n\t * The variant of the button.\n\t * @attr\n\t * @default 'text'\n\t * @public\n\t */\n\t@property({ reflect: true, type: String })\n\tpublic variant: ButtonVariant = 'text'\n\n\t/**\n\t * The width of the button.\n\t * @attr\n\t * @type {'full' | 'auto'}\n\t * @default 'auto'\n\t * @public\n\t */\n\t@property()\n\tpublic width: 'full' | 'auto' = 'auto'\n\n\t/**\n\t * The type of the button.\n\t * Defaults to 'button' (preventing accidental form submissions).\n\t * @attr\n\t */\n\t@property({ reflect: true, type: String })\n\tpublic type: 'button' | 'reset' | 'submit' = 'button'\n\n\t/**\n\t * The URL the button points to.\n\t * If provided, the component will render as an anchor element.\n\t * @attr\n\t */\n\t@property()\n\tpublic href?: string\n\n\t/**\n\t * Determines whether the button is disabled.\n\t * @attr\n\t */\n\t@property({ type: Boolean, reflect: true })\n\tpublic disabled = false\n\n\tpublic override set ariaLabel(value: string) {\n\t\tconst oldVal = this._ariaLabel\n\t\tthis._ariaLabel = value\n\n\t\tif (this.hasAttribute('aria-label')) {\n\t\t\tthis.removeAttribute('aria-label')\n\t\t}\n\t\tthis.requestUpdate('ariaLabel', oldVal)\n\t}\n\n\t@property({ attribute: 'aria-label' })\n\tpublic override get ariaLabel() {\n\t\treturn this._ariaLabel\n\t}\n\n\t@queryAssignedElements({\n\t\tslot: 'prefix',\n\t\tflatten: true,\n\t\tselector: 'img',\n\t})\n\tprivate prefixImgs!: HTMLImageElement[]\n\n\t@queryAssignedElements({\n\t\tslot: 'suffix',\n\t\tflatten: true,\n\t\tselector: 'img',\n\t})\n\tprivate suffixImgs!: HTMLImageElement[]\n\n\t/** Sets focus in the button. */\n\tpublic override focus(options?: FocusOptions) {\n\t\tthis.nativeElement.focus(options)\n\t}\n\n\t/** Removes focus from the button. */\n\tpublic override blur() {\n\t\tthis.nativeElement.blur()\n\t}\n\n\tprotected get imgClasses(): string[] {\n\t\treturn ['max-h-5', 'max-w-5', 'sm:max-h-6', 'sm:max-w-6', 'object-contain']\n\t}\n\n\tfirstUpdated() {\n\t\t// Add image classes and ensure decorative images have an empty alt.\n\t\tthis.prefixImgs?.forEach(img => {\n\t\t\timg.classList.add(...this.imgClasses)\n\t\t\tif (!img.hasAttribute('alt')) {\n\t\t\t\timg.setAttribute('alt', '')\n\t\t\t}\n\t\t})\n\t\tthis.suffixImgs?.forEach(img => {\n\t\t\timg.classList.add(...this.imgClasses)\n\t\t\tif (!img.hasAttribute('alt')) {\n\t\t\t\timg.setAttribute('alt', '')\n\t\t\t}\n\t\t})\n\t}\n\n\tclick(): void {\n\t\tthis.dispatchEvent(new Event('click', { bubbles: true, composed: true }))\n\t}\n\n\t// Prevent default behavior when the component is disabled.\n\tprivate _preventDefault(event: Event) {\n\t\tevent.preventDefault()\n\t\tevent.stopPropagation()\n\t}\n\n\trender() {\n\t\t// Map 'tonal' variant to 'filled tonal' for backwards compatibility\n\t\tconst effectiveVariant = this.variant === 'tonal' ? 'filled tonal' : this.variant;\n\n\t\t// Compute classes for the interactive element.\n\t\tconst classes = {\n\t\t\t'z-0 py-2 px-3 sm:py-1.5 sm:px-3 md:py-2 md:px-4 text-sm sm:text-base transition-all duration-200 relative rounded-full inline-flex justify-center items-center gap-1 sm:gap-1.5 md:gap-2 outline-secondary-default focus-visible:outline-solid focus-visible:outline-2 focus-visible:outline-offset-2 outline-hidden w-[inherit]':\n\t\t\t\ttrue,\n\t\t\t'cursor-pointer': !this.disabled,\n\t\t\t'opacity-[0.38]': this.disabled,\n\t\t\t'hover:shadow-xs':\n\t\t\t\t!this.disabled &&\n\t\t\t\t(effectiveVariant === 'outlined' ||\n\t\t\t\t\teffectiveVariant === 'text' ||\n\t\t\t\t\teffectiveVariant === 'filled' ||\n\t\t\t\t\teffectiveVariant === 'filled tonal'),\n\t\t\t'hover:shadow-sm': !this.disabled && effectiveVariant === 'elevated',\n\t\t\t'w-full tex-center': this.width === 'full',\n\t\t\t'bg-surface-low text-primary-default shadow-xs': effectiveVariant === 'elevated',\n\t\t\t'bg-transparent text-primary-default border-1 border-solid border-outline': effectiveVariant === 'outlined',\n\t\t\t'bg-primary-default text-primary-on': effectiveVariant === 'filled',\n\t\t\t'bg-secondary-container text-secondary-onContainer': effectiveVariant === 'filled tonal',\n\t\t\t'text-primary-default': effectiveVariant === 'text',\n\t\t}\n\n\t\tconst stateLayerClasses = {\n\t\t\t'absolute inset-0 hover:opacity-[0.08] z-0 rounded-full': true,\n\t\t\t'hover:bg-primary-on': effectiveVariant === 'filled',\n\t\t\t'hover:bg-primary-default': effectiveVariant === 'outlined' || effectiveVariant === 'elevated' || effectiveVariant === 'text',\n\t\t\t'hover:bg-secondary-container': effectiveVariant === 'filled tonal',\n\t\t}\n\n\t\t// If href is provided, render an anchor element.\n\t\tif (this.href) {\n\t\t\treturn html`\n\t\t\t\t<a\n\t\t\t\t\tpart=\"base\"\n\t\t\t\t\thref=${ifDefined(this.disabled ? undefined : this.href)}\n\t\t\t\t\taria-label=${ifDefined(this.ariaLabel)}\n\t\t\t\t\tclass=\"${this.classMap(classes)}\"\n\t\t\t\t\ttabindex=${this.disabled ? '-1' : '0'}\n\t\t\t\t\taria-disabled=${this.disabled}\n\t\t\t\t\t@click=${this.disabled ? this._preventDefault : undefined}\n\t\t\t\t>\n\t\t\t\t\t${when(!this.disabled, () => html`<div class=\"${this.classMap(stateLayerClasses)}\"></div>`)}\n\t\t\t\t\t<slot name=\"prefix\"></slot>\n\t\t\t\t\t<slot></slot>\n\t\t\t\t\t<slot name=\"suffix\"></slot>\n\t\t\t\t</a>\n\t\t\t`\n\t\t}\n\n\t\t// Otherwise, render a native button element.\n\t\treturn html`\n\t\t\t<button\n\t\t\t\tpart=\"base\"\n\t\t\t\taria-label=${ifDefined(this.ariaLabel)}\n\t\t\t\t?disabled=${this.disabled}\n\t\t\t\tclass=\"${this.classMap(classes)}\"\n\t\t\t\ttype=${ifDefined(this.type)}\n\t\t\t\ttabindex=${ifDefined(this.disabled ? '-1' : undefined)}\n\t\t\t>\n\t\t\t\t${when(!this.disabled, () => html`<div class=\"${this.classMap(stateLayerClasses)}\"></div>`)}\n\t\t\t\t<slot name=\"prefix\"></slot>\n\t\t\t\t<slot></slot>\n\t\t\t\t<slot name=\"suffix\"></slot>\n\t\t\t</button>\n\t\t`\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-button': SchmancyButton\n\t}\n}\n","import { $LitElement } from '@mixins/index'\nimport { css, html, LitElement, PropertyValueMap } from 'lit'\nimport { customElement, property, query } from 'lit/decorators.js'\nimport { ifDefined } from 'lit/directives/if-defined.js'\nimport { when } from 'lit/directives/when.js'\nimport { ButtonVariant } from './button'\n\n/**\n * An icon button component.\n * @element schmancy-icon-button\n * @slot - The default slot.\n */\n@customElement('schmancy-icon-button')\nexport class SchmnacyIconButton extends $LitElement(css`\n\t:host {\n\t\tdisplay: block;\n\t}\n`) {\n\tprotected static shadowRootOptions = {\n\t\t...LitElement.shadowRootOptions,\n\t\tmode: 'open',\n\t\tdelegatesFocus: true,\n\t}\n\n\t@query('[part=\"base\"]', true)\n\tprivate nativeElement!: HTMLElement\n\n\tprivate _ariaLabel!: string\n\n\t/**\n\t * The size of the icon.\n\t * @attr\n\t * @default 'md'\n\t */\n\t@property({ type: String })\n\tpublic size: 'sm' | 'md' | 'lg' = 'md'\n\n\t/**\n\t * The variant of the button.\n\t * @attr\n\t * @default 'text'\n\t */\n\t@property({ reflect: true, type: String })\n\tpublic variant: ButtonVariant = 'text'\n\n\t/**\n\t * The width of the button.\n\t * @attr\n\t * @type {'full' | 'auto'}\n\t * @default 'auto'\n\t */\n\t@property()\n\tpublic width: 'full' | 'auto' = 'auto'\n\n\t/**\n\t * The type of the button.\n\t * Defaults to 'button' (preventing accidental form submissions).\n\t * @attr\n\t */\n\t@property({ reflect: true, type: String })\n\tpublic type: 'button' | 'reset' | 'submit' = 'button'\n\n\t/**\n\t * The URL the button points to.\n\t * If provided, the component will render as an anchor element.\n\t * @attr\n\t */\n\t@property()\n\tpublic href?: string\n\n\t/**\n\t * Determines whether the button is disabled.\n\t * @attr\n\t */\n\t@property({ type: Boolean, reflect: true })\n\tpublic disabled = false\n\n\t// Manage aria-label manually so that we can always use our internal property.\n\tpublic override set ariaLabel(value: string) {\n\t\tconst oldVal = this._ariaLabel\n\t\tthis._ariaLabel = value\n\n\t\tif (this.hasAttribute('aria-label')) {\n\t\t\tthis.removeAttribute('aria-label')\n\t\t}\n\t\tthis.requestUpdate('ariaLabel', oldVal)\n\t}\n\n\t@property({ attribute: 'aria-label' })\n\tpublic override get ariaLabel() {\n\t\treturn this._ariaLabel\n\t}\n\n\t/** Sets focus in the button. */\n\tpublic override focus(options?: FocusOptions) {\n\t\tthis.nativeElement.focus(options)\n\t}\n\n\t/** Removes focus from the button. */\n\tpublic override blur() {\n\t\tthis.nativeElement.blur()\n\t}\n\n\tclick(): void {\n\t\tthis.dispatchEvent(new Event('click', { bubbles: true, composed: true }))\n\t}\n\n\t// Prevent default behavior when the component is disabled.\n\tprivate _preventDefault(event: Event) {\n\t\tevent.preventDefault()\n\t\tevent.stopPropagation()\n\t}\n\n\tprotected firstUpdated(_changedProperties: PropertyValueMap<any> | Map<PropertyKey, unknown>): void {\n\t\t// Add any first-update logic here if needed.\n\t}\n\n\trender() {\n\t\t// Map 'tonal' variant to 'filled tonal' for backwards compatibility\n\t\tconst effectiveVariant = this.variant === 'tonal' ? 'filled tonal' : this.variant;\n\n\t\t// Compute classes for the interactive element.\n\t\tconst classes = {\n\t\t\t'z-0 h-full transition-all duration-200 relative rounded-full inline-flex justify-center items-center gap-[8px] outline-secondary-default focus-visible:outline-solid focus-visible:outline-2 focus-visible:outline-offset-2 outline-hidden':\n\t\t\t\ttrue,\n\t\t\t'opacity-[0.38]': this.disabled,\n\t\t\t'cursor-pointer': !this.disabled,\n\t\t\t'hover:shadow-xs':\n\t\t\t\t!this.disabled &&\n\t\t\t\t(effectiveVariant === 'outlined' ||\n\t\t\t\t\teffectiveVariant === 'text' ||\n\t\t\t\t\teffectiveVariant === 'filled' ||\n\t\t\t\t\teffectiveVariant === 'filled tonal'),\n\t\t\t'hover:shadow-sm': !this.disabled && effectiveVariant === 'elevated',\n\t\t\t'w-full text-center': this.width === 'full',\n\t\t\t'bg-surface-low text-primary-default shadow-xs': effectiveVariant === 'elevated',\n\t\t\t'bg-transparent text-primary-default border-1 border-outline': effectiveVariant === 'outlined',\n\t\t\t'bg-primary-default text-primary-on': effectiveVariant === 'filled',\n\t\t\t'bg-secondary-container text-secondary-onContainer': effectiveVariant === 'filled tonal',\n\t\t\t'text-primary-default': effectiveVariant === 'text',\n\t\t\t'px-[6px] py-[6px]': this.size === 'sm',\n\t\t\t'px-[8px] py-[8px]': this.size === 'md',\n\t\t\t'px-[12px] py-[12px]': this.size === 'lg',\n\t\t}\n\n\t\tconst stateLayerClasses = {\n\t\t\t'hover:opacity-[0.08] rounded-full z-0': true,\n\t\t\t'hover:bg-primary-on': effectiveVariant === 'filled',\n\t\t\t'hover:bg-primary-default': effectiveVariant === 'outlined' || effectiveVariant === 'elevated' || effectiveVariant === 'text',\n\t\t\t'hover:bg-secondary-container': effectiveVariant === 'filled tonal',\n\t\t}\n\n\t\t// If href is provided, render an anchor element.\n\t\tif (this.href) {\n\t\t\treturn html`\n\t\t\t\t<a\n\t\t\t\t\tpart=\"base\"\n\t\t\t\t\thref=${ifDefined(this.disabled ? undefined : this.href)}\n\t\t\t\t\taria-label=${ifDefined(this.ariaLabel)}\n\t\t\t\t\tclass=\"${this.classMap(classes)}\"\n\t\t\t\t\ttabindex=${this.disabled ? '-1' : '0'}\n\t\t\t\t\taria-disabled=${this.disabled}\n\t\t\t\t\t@click=${this.disabled ? this._preventDefault : undefined}\n\t\t\t\t>\n\t\t\t\t\t${when(!this.disabled, () => html`<div class=\"absolute inset-0 ${this.classMap(stateLayerClasses)}\"></div>`)}\n\t\t\t\t\t<schmancy-icon size=${this.size === 'sm' ? '18px' : this.size === 'md' ? '24px' : '32px'}>\n\t\t\t\t\t\t<slot></slot>\n\t\t\t\t\t</schmancy-icon>\n\t\t\t\t</a>\n\t\t\t`\n\t\t}\n\n\t\t// Otherwise, render a native button element.\n\t\treturn html`\n\t\t\t<button\n\t\t\t\tpart=\"base\"\n\t\t\t\taria-label=${ifDefined(this.ariaLabel)}\n\t\t\t\t?disabled=${this.disabled}\n\t\t\t\tclass=\"${this.classMap(classes)}\"\n\t\t\t\ttype=${ifDefined(this.type)}\n\t\t\t\ttabindex=${ifDefined(this.disabled ? '-1' : undefined)}\n\t\t\t>\n\t\t\t\t${when(!this.disabled, () => html`<div class=\"absolute inset-0 ${this.classMap(stateLayerClasses)}\"></div>`)}\n\t\t\t\t<schmancy-icon size=${this.size === 'sm' ? '18px' : this.size === 'md' ? '24px' : '32px'}>\n\t\t\t\t\t<slot></slot>\n\t\t\t\t</schmancy-icon>\n\t\t\t</button>\n\t\t`\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-icon-button': SchmnacyIconButton\n\t}\n}\n"],"names":["SchmancyButton","$LitElement","css","constructor","super","arguments","this","variant","width","type","disabled","value","oldVal","_ariaLabel","hasAttribute","removeAttribute","requestUpdate","options","nativeElement","focus","blur","imgClasses","firstUpdated","prefixImgs","forEach","img","classList","add","setAttribute","suffixImgs","click","dispatchEvent","Event","bubbles","composed","event","preventDefault","stopPropagation","effectiveVariant","classes","stateLayerClasses","href","html","ifDefined","ariaLabel","classMap","_preventDefault","when","shadowRootOptions","LitElement","mode","delegatesFocus","__decorateClass","query","prototype","property","reflect","String","Boolean","attribute","queryAssignedElements","slot","flatten","selector","customElement","SchmnacyIconButton","size","_changedProperties","render"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"icon-button-Op0HzYKV.js","sources":["../src/button/button.ts","../src/button/icon-button.ts"],"sourcesContent":["import { $LitElement } from '@mixins/index'\nimport { css, html, LitElement } from 'lit'\nimport { customElement, property, query, queryAssignedElements } from 'lit/decorators.js'\nimport { ifDefined } from 'lit/directives/if-defined.js'\nimport { when } from 'lit/directives/when.js'\n\nexport interface SchmancyButtonEventMap {\n\tSchmancyFocus: CustomEvent<void>\n\tSchmancyBlur: CustomEvent<void>\n}\n\nexport type ButtonVariant = 'elevated' | 'filled' | 'filled tonal' | 'tonal' | 'outlined' | 'text'\n\n/**\n * A button component.\n * @element schmancy-button\n * @slot - The default slot.\n * @slot prefix - The prefix slot.\n * @slot suffix - The suffix slot.\n */\n@customElement('schmancy-button')\nexport class SchmancyButton extends $LitElement(\n\tcss`:host{\n\t\tdisplay: inline-block;\n\t\tmin-width: fit-content;\n\t}`\n) {\n\tprotected static shadowRootOptions = {\n\t\t...LitElement.shadowRootOptions,\n\t\tmode: 'open',\n\t\tdelegatesFocus: true,\n\t}\n\n\t@query('[part=\"base\"]', true)\n\tprivate nativeElement!: HTMLElement\n\n\tprivate _ariaLabel!: string\n\n\t/**\n\t * The variant of the button.\n\t * @attr\n\t * @default 'text'\n\t * @public\n\t */\n\t@property({ reflect: true, type: String })\n\tpublic variant: ButtonVariant = 'text'\n\n\t/**\n\t * The width of the button.\n\t * @attr\n\t * @type {'full' | 'auto'}\n\t * @default 'auto'\n\t * @public\n\t */\n\t@property()\n\tpublic width: 'full' | 'auto' = 'auto'\n\n\t/**\n\t * The type of the button.\n\t * Defaults to 'button' (preventing accidental form submissions).\n\t * @attr\n\t */\n\t@property({ reflect: true, type: String })\n\tpublic type: 'button' | 'reset' | 'submit' = 'button'\n\n\t/**\n\t * The URL the button points to.\n\t * If provided, the component will render as an anchor element.\n\t * @attr\n\t */\n\t@property()\n\tpublic href?: string\n\n\t/**\n\t * Determines whether the button is disabled.\n\t * @attr\n\t */\n\t@property({ type: Boolean, reflect: true })\n\tpublic disabled = false\n\n\tpublic override set ariaLabel(value: string) {\n\t\tconst oldVal = this._ariaLabel\n\t\tthis._ariaLabel = value\n\n\t\tif (this.hasAttribute('aria-label')) {\n\t\t\tthis.removeAttribute('aria-label')\n\t\t}\n\t\tthis.requestUpdate('ariaLabel', oldVal)\n\t}\n\n\t@property({ attribute: 'aria-label' })\n\tpublic override get ariaLabel() {\n\t\treturn this._ariaLabel\n\t}\n\n\t@queryAssignedElements({\n\t\tslot: 'prefix',\n\t\tflatten: true,\n\t\tselector: 'img',\n\t})\n\tprivate prefixImgs!: HTMLImageElement[]\n\n\t@queryAssignedElements({\n\t\tslot: 'suffix',\n\t\tflatten: true,\n\t\tselector: 'img',\n\t})\n\tprivate suffixImgs!: HTMLImageElement[]\n\n\t/** Sets focus in the button. */\n\tpublic override focus(options?: FocusOptions) {\n\t\tthis.nativeElement.focus(options)\n\t}\n\n\t/** Removes focus from the button. */\n\tpublic override blur() {\n\t\tthis.nativeElement.blur()\n\t}\n\n\tprotected get imgClasses(): string[] {\n\t\treturn ['max-h-5', 'max-w-5', 'sm:max-h-6', 'sm:max-w-6', 'object-contain']\n\t}\n\n\tfirstUpdated() {\n\t\t// Add image classes and ensure decorative images have an empty alt.\n\t\tthis.prefixImgs?.forEach(img => {\n\t\t\timg.classList.add(...this.imgClasses)\n\t\t\tif (!img.hasAttribute('alt')) {\n\t\t\t\timg.setAttribute('alt', '')\n\t\t\t}\n\t\t})\n\t\tthis.suffixImgs?.forEach(img => {\n\t\t\timg.classList.add(...this.imgClasses)\n\t\t\tif (!img.hasAttribute('alt')) {\n\t\t\t\timg.setAttribute('alt', '')\n\t\t\t}\n\t\t})\n\t}\n\n\tclick(): void {\n\t\tthis.dispatchEvent(new Event('click', { bubbles: true, composed: true }))\n\t}\n\n\t// Prevent default behavior when the component is disabled.\n\tprivate _preventDefault(event: Event) {\n\t\tevent.preventDefault()\n\t\tevent.stopPropagation()\n\t}\n\n\trender() {\n\t\t// Map 'tonal' variant to 'filled tonal' for backwards compatibility\n\t\tconst effectiveVariant = this.variant === 'tonal' ? 'filled tonal' : this.variant;\n\n\t\t// Compute classes for the interactive element.\n\t\tconst classes = {\n\t\t\t'z-0 py-2 px-3 sm:py-1.5 sm:px-3 md:py-2 md:px-4 text-sm sm:text-base transition-all duration-200 relative rounded-full inline-flex justify-center items-center gap-1 sm:gap-1.5 md:gap-2 outline-secondary-default focus-visible:outline-solid focus-visible:outline-2 focus-visible:outline-offset-2 outline-hidden w-[inherit]':\n\t\t\t\ttrue,\n\t\t\t'cursor-pointer': !this.disabled,\n\t\t\t'opacity-[0.38]': this.disabled,\n\t\t\t'hover:shadow-xs':\n\t\t\t\t!this.disabled &&\n\t\t\t\t(effectiveVariant === 'outlined' ||\n\t\t\t\t\teffectiveVariant === 'text' ||\n\t\t\t\t\teffectiveVariant === 'filled' ||\n\t\t\t\t\teffectiveVariant === 'filled tonal'),\n\t\t\t'hover:shadow-sm': !this.disabled && effectiveVariant === 'elevated',\n\t\t\t'w-full tex-center': this.width === 'full',\n\t\t\t'bg-surface-low text-primary-default shadow-xs': effectiveVariant === 'elevated',\n\t\t\t'bg-transparent text-primary-default border-1 border-solid border-outline': effectiveVariant === 'outlined',\n\t\t\t'bg-primary-default text-primary-on': effectiveVariant === 'filled',\n\t\t\t'bg-secondary-container text-secondary-onContainer': effectiveVariant === 'filled tonal',\n\t\t\t'text-primary-default': effectiveVariant === 'text',\n\t\t}\n\n\t\tconst stateLayerClasses = {\n\t\t\t'absolute inset-0 hover:opacity-[0.08] z-0 rounded-full': true,\n\t\t\t'hover:bg-primary-on': effectiveVariant === 'filled',\n\t\t\t'hover:bg-primary-default': effectiveVariant === 'outlined' || effectiveVariant === 'elevated' || effectiveVariant === 'text',\n\t\t\t'hover:bg-secondary-container': effectiveVariant === 'filled tonal',\n\t\t}\n\n\t\t// If href is provided, render an anchor element.\n\t\tif (this.href) {\n\t\t\treturn html`\n\t\t\t\t<a\n\t\t\t\t\tpart=\"base\"\n\t\t\t\t\thref=${ifDefined(this.disabled ? undefined : this.href)}\n\t\t\t\t\taria-label=${ifDefined(this.ariaLabel)}\n\t\t\t\t\tclass=\"${this.classMap(classes)}\"\n\t\t\t\t\ttabindex=${this.disabled ? '-1' : '0'}\n\t\t\t\t\taria-disabled=${this.disabled}\n\t\t\t\t\t@click=${this.disabled ? this._preventDefault : undefined}\n\t\t\t\t>\n\t\t\t\t\t${when(!this.disabled, () => html`<div class=\"${this.classMap(stateLayerClasses)}\"></div>`)}\n\t\t\t\t\t<slot name=\"prefix\"></slot>\n\t\t\t\t\t<slot></slot>\n\t\t\t\t\t<slot name=\"suffix\"></slot>\n\t\t\t\t</a>\n\t\t\t`\n\t\t}\n\n\t\t// Otherwise, render a native button element.\n\t\treturn html`\n\t\t\t<button\n\t\t\t\tpart=\"base\"\n\t\t\t\taria-label=${ifDefined(this.ariaLabel)}\n\t\t\t\t?disabled=${this.disabled}\n\t\t\t\tclass=\"${this.classMap(classes)}\"\n\t\t\t\ttype=${ifDefined(this.type)}\n\t\t\t\ttabindex=${ifDefined(this.disabled ? '-1' : undefined)}\n\t\t\t>\n\t\t\t\t${when(!this.disabled, () => html`<div class=\"${this.classMap(stateLayerClasses)}\"></div>`)}\n\t\t\t\t<slot name=\"prefix\"></slot>\n\t\t\t\t<slot></slot>\n\t\t\t\t<slot name=\"suffix\"></slot>\n\t\t\t</button>\n\t\t`\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-button': SchmancyButton\n\t}\n}\n","import { $LitElement } from '@mixins/index'\nimport { css, html, LitElement, PropertyValueMap } from 'lit'\nimport { customElement, property, query } from 'lit/decorators.js'\nimport { ifDefined } from 'lit/directives/if-defined.js'\nimport { when } from 'lit/directives/when.js'\nimport { ButtonVariant } from './button'\n\n/**\n * An icon button component.\n * @element schmancy-icon-button\n * @slot - The default slot.\n */\n@customElement('schmancy-icon-button')\nexport class SchmnacyIconButton extends $LitElement(css`\n\t:host {\n\t\tdisplay: block;\n\t}\n`) {\n\tprotected static shadowRootOptions = {\n\t\t...LitElement.shadowRootOptions,\n\t\tmode: 'open',\n\t\tdelegatesFocus: true,\n\t}\n\n\t@query('[part=\"base\"]', true)\n\tprivate nativeElement!: HTMLElement\n\n\tprivate _ariaLabel!: string\n\n\t/**\n\t * The size of the icon.\n\t * @attr\n\t * @default 'md'\n\t */\n\t@property({ type: String })\n\tpublic size: 'sm' | 'md' | 'lg' = 'md'\n\n\t/**\n\t * The variant of the button.\n\t * @attr\n\t * @default 'text'\n\t */\n\t@property({ reflect: true, type: String })\n\tpublic variant: ButtonVariant = 'text'\n\n\t/**\n\t * The width of the button.\n\t * @attr\n\t * @type {'full' | 'auto'}\n\t * @default 'auto'\n\t */\n\t@property()\n\tpublic width: 'full' | 'auto' = 'auto'\n\n\t/**\n\t * The type of the button.\n\t * Defaults to 'button' (preventing accidental form submissions).\n\t * @attr\n\t */\n\t@property({ reflect: true, type: String })\n\tpublic type: 'button' | 'reset' | 'submit' = 'button'\n\n\t/**\n\t * The URL the button points to.\n\t * If provided, the component will render as an anchor element.\n\t * @attr\n\t */\n\t@property()\n\tpublic href?: string\n\n\t/**\n\t * Determines whether the button is disabled.\n\t * @attr\n\t */\n\t@property({ type: Boolean, reflect: true })\n\tpublic disabled = false\n\n\t// Manage aria-label manually so that we can always use our internal property.\n\tpublic override set ariaLabel(value: string) {\n\t\tconst oldVal = this._ariaLabel\n\t\tthis._ariaLabel = value\n\n\t\tif (this.hasAttribute('aria-label')) {\n\t\t\tthis.removeAttribute('aria-label')\n\t\t}\n\t\tthis.requestUpdate('ariaLabel', oldVal)\n\t}\n\n\t@property({ attribute: 'aria-label' })\n\tpublic override get ariaLabel() {\n\t\treturn this._ariaLabel\n\t}\n\n\t/** Sets focus in the button. */\n\tpublic override focus(options?: FocusOptions) {\n\t\tthis.nativeElement.focus(options)\n\t}\n\n\t/** Removes focus from the button. */\n\tpublic override blur() {\n\t\tthis.nativeElement.blur()\n\t}\n\n\tclick(): void {\n\t\tthis.dispatchEvent(new Event('click', { bubbles: true, composed: true }))\n\t}\n\n\t// Prevent default behavior when the component is disabled.\n\tprivate _preventDefault(event: Event) {\n\t\tevent.preventDefault()\n\t\tevent.stopPropagation()\n\t}\n\n\tprotected firstUpdated(_changedProperties: PropertyValueMap<any> | Map<PropertyKey, unknown>): void {\n\t\t// Add any first-update logic here if needed.\n\t}\n\n\trender() {\n\t\t// Map 'tonal' variant to 'filled tonal' for backwards compatibility\n\t\tconst effectiveVariant = this.variant === 'tonal' ? 'filled tonal' : this.variant;\n\n\t\t// Compute classes for the interactive element.\n\t\tconst classes = {\n\t\t\t'z-0 h-full transition-all duration-200 relative rounded-full inline-flex justify-center items-center gap-[8px] outline-secondary-default focus-visible:outline-solid focus-visible:outline-2 focus-visible:outline-offset-2 outline-hidden':\n\t\t\t\ttrue,\n\t\t\t'opacity-[0.38]': this.disabled,\n\t\t\t'cursor-pointer': !this.disabled,\n\t\t\t'hover:shadow-xs':\n\t\t\t\t!this.disabled &&\n\t\t\t\t(effectiveVariant === 'outlined' ||\n\t\t\t\t\teffectiveVariant === 'text' ||\n\t\t\t\t\teffectiveVariant === 'filled' ||\n\t\t\t\t\teffectiveVariant === 'filled tonal'),\n\t\t\t'hover:shadow-sm': !this.disabled && effectiveVariant === 'elevated',\n\t\t\t'w-full text-center': this.width === 'full',\n\t\t\t'bg-surface-low text-primary-default shadow-xs': effectiveVariant === 'elevated',\n\t\t\t'bg-transparent text-primary-default border-1 border-outline': effectiveVariant === 'outlined',\n\t\t\t'bg-primary-default text-primary-on': effectiveVariant === 'filled',\n\t\t\t'bg-secondary-container text-secondary-onContainer': effectiveVariant === 'filled tonal',\n\t\t\t'text-primary-default': effectiveVariant === 'text',\n\t\t\t'px-[6px] py-[6px]': this.size === 'sm',\n\t\t\t'px-[8px] py-[8px]': this.size === 'md',\n\t\t\t'px-[12px] py-[12px]': this.size === 'lg',\n\t\t}\n\n\t\tconst stateLayerClasses = {\n\t\t\t'hover:opacity-[0.08] rounded-full z-0': true,\n\t\t\t'hover:bg-primary-on': effectiveVariant === 'filled',\n\t\t\t'hover:bg-primary-default': effectiveVariant === 'outlined' || effectiveVariant === 'elevated' || effectiveVariant === 'text',\n\t\t\t'hover:bg-secondary-container': effectiveVariant === 'filled tonal',\n\t\t}\n\n\t\t// If href is provided, render an anchor element.\n\t\tif (this.href) {\n\t\t\treturn html`\n\t\t\t\t<a\n\t\t\t\t\tpart=\"base\"\n\t\t\t\t\thref=${ifDefined(this.disabled ? undefined : this.href)}\n\t\t\t\t\taria-label=${ifDefined(this.ariaLabel)}\n\t\t\t\t\tclass=\"${this.classMap(classes)}\"\n\t\t\t\t\ttabindex=${this.disabled ? '-1' : '0'}\n\t\t\t\t\taria-disabled=${this.disabled}\n\t\t\t\t\t@click=${this.disabled ? this._preventDefault : undefined}\n\t\t\t\t>\n\t\t\t\t\t${when(!this.disabled, () => html`<div class=\"absolute inset-0 ${this.classMap(stateLayerClasses)}\"></div>`)}\n\t\t\t\t\t<schmancy-icon size=${this.size === 'sm' ? '18px' : this.size === 'md' ? '24px' : '32px'}>\n\t\t\t\t\t\t<slot></slot>\n\t\t\t\t\t</schmancy-icon>\n\t\t\t\t</a>\n\t\t\t`\n\t\t}\n\n\t\t// Otherwise, render a native button element.\n\t\treturn html`\n\t\t\t<button\n\t\t\t\tpart=\"base\"\n\t\t\t\taria-label=${ifDefined(this.ariaLabel)}\n\t\t\t\t?disabled=${this.disabled}\n\t\t\t\tclass=\"${this.classMap(classes)}\"\n\t\t\t\ttype=${ifDefined(this.type)}\n\t\t\t\ttabindex=${ifDefined(this.disabled ? '-1' : undefined)}\n\t\t\t>\n\t\t\t\t${when(!this.disabled, () => html`<div class=\"absolute inset-0 ${this.classMap(stateLayerClasses)}\"></div>`)}\n\t\t\t\t<schmancy-icon size=${this.size === 'sm' ? '18px' : this.size === 'md' ? '24px' : '32px'}>\n\t\t\t\t\t<slot></slot>\n\t\t\t\t</schmancy-icon>\n\t\t\t</button>\n\t\t`\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-icon-button': SchmnacyIconButton\n\t}\n}\n"],"names":["SchmancyButton","$LitElement","css","constructor","super","arguments","this","variant","width","type","disabled","value","oldVal","_ariaLabel","hasAttribute","removeAttribute","requestUpdate","options","nativeElement","focus","blur","imgClasses","firstUpdated","prefixImgs","forEach","img","classList","add","setAttribute","suffixImgs","click","dispatchEvent","Event","bubbles","composed","event","preventDefault","stopPropagation","effectiveVariant","classes","stateLayerClasses","href","html","ifDefined","ariaLabel","classMap","_preventDefault","when","shadowRootOptions","LitElement","mode","delegatesFocus","__decorateClass","query","prototype","property","reflect","String","Boolean","attribute","queryAssignedElements","slot","flatten","selector","customElement","SchmnacyIconButton","size","_changedProperties","render"],"mappings":";;;;;;;;;;;;;;AAqBO,IAAMA,IAAN,cAA6BC,EACnCC;AAAAA;AAAAA;AAAAA;EADM,cAAAC;AAAAC,aAAAC,SAAAA,GAwBNC,KAAOC,UAAyB,QAUhCD,KAAOE,QAAyB,QAQhCF,KAAOG,OAAsC,UAe7CH,KAAOI;EAAW;AAAA,EAElB,cAA8BC,GAAAA;AAC7B,UAAMC,IAASN,KAAKO;AACpBP,SAAKO,aAAaF,GAEdL,KAAKQ,aAAa,YAAA,KACrBR,KAAKS,gBAAgB,YAAA,GAEtBT,KAAKU,cAAc,aAAaJ;EACjC;AAAA,EAGA,IAAA;AACC,WAAON,KAAKO;AAAAA,EACb;AAAA,EAiBgB,MAAMI,GAAAA;AACrBX,SAAKY,cAAcC,MAAMF,CAAAA;AAAAA,EAC1B;AAAA,EAGgB,OAAAG;AACfd,SAAKY,cAAcE,KAAAA;AAAAA,EACpB;AAAA,EAEA,iBAAcC;AACb,WAAO,CAAC,WAAW,WAAW,cAAc,cAAc,gBAAA;AAAA,EAC3D;AAAA,EAEA,eAAAC;AAEChB,SAAKiB,YAAYC,QAAQC,OAAAA;AACxBA,QAAIC,UAAUC,IAAAA,GAAOrB,KAAKe,UAAAA,GACrBI,EAAIX,aAAa,KAAA,KACrBW,EAAIG,aAAa,OAAO,EAAA;AAAA,IAAA,CAAA,GAG1BtB,KAAKuB,YAAYL,QAAQC,OAAAA;AACxBA,QAAIC,UAAUC,IAAAA,GAAOrB,KAAKe,UAAAA,GACrBI,EAAIX,aAAa,KAAA,KACrBW,EAAIG,aAAa,OAAO,EAAA;AAAA,IAAA,CAAA;AAAA,EAG3B;AAAA,EAEA,QAAAE;AACCxB,SAAKyB,cAAc,IAAIC,MAAM,SAAS,EAAEC,SAAAA,IAAeC,UAAAA,GAAU,CAAA,CAAA;AAAA,EAClE;AAAA,EAGQ,gBAAgBC;AACvBA,MAAMC,eAAAA,GACND,EAAME,gBAAAA;AAAAA,EACP;AAAA,EAEA;AAEC,UAAMC,IAAmBhC,KAAKC,YAAY,UAAU,iBAAiBD,KAAKC,SAGpEgC,IAAU,EACf,oUAAA,IAEA,kBAAA,CAAmBjC,KAAKI,UACxB,kBAAkBJ,KAAKI,UACvB,mBAAA,CACEJ,KAAKI,aACL4B,MAAqB,cACrBA,MAAqB,UACrBA,MAAqB,YACrBA,MAAqB,iBACvB,mBAAA,CAAoBhC,KAAKI,YAAY4B,MAAqB,YAC1D,qBAAqBhC,KAAKE,UAAU,QACpC,iDAAiD8B,MAAqB,YACtE,4EAA4EA,MAAqB,YACjG,sCAAsCA,MAAqB,UAC3D,qDAAqDA,MAAqB,gBAC1E,wBAAwBA,MAAqB,UAGxCE,IAAoB,EACzB,8DACA,uBAAuBF,MAAqB,UAC5C,4BAA4BA,MAAqB,cAAcA,MAAqB,cAAcA,MAAqB,QACvH,gCAAgCA,MAAqB,eAArBA;AAIjC,WAAIhC,KAAKmC,OACDC;AAAAA;AAAAA;AAAAA,YAGEC,EAAUrC,KAAKI,WAAAA,SAAuBJ,KAAKmC,IAAAA,CAAAA;AAAAA,kBACrCE,EAAUrC,KAAKsC,SAAAA,CAAAA;AAAAA,cACnBtC,KAAKuC,SAASN,CAAAA,CAAAA;AAAAA,gBACZjC,KAAKI,WAAW,OAAO,GAAA;AAAA,qBAClBJ,KAAKI,QAAAA;AAAAA,cACZJ,KAAKI,WAAWJ,KAAKwC,kBAAAA,MAAkB;AAAA;AAAA,OAE9CC,EAAAA,CAAMzC,KAAKI,UAAU,MAAMgC,gBAAmBpC,KAAKuC,SAASL,CAAAA,CAAAA,UAAAA,CAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,OAS1DE;AAAAA;AAAAA;AAAAA,iBAGQC,EAAUrC,KAAKsC,SAAAA,CAAAA;AAAAA,gBAChBtC,KAAKI,QAAAA;AAAAA,aACRJ,KAAKuC,SAASN,CAAAA,CAAAA;AAAAA,WAChBI,EAAUrC,KAAKG,IAAAA,CAAAA;AAAAA,eACXkC,EAAUrC,KAAKI,WAAW,OAAA,MAAO,CAAA;AAAA;AAAA,MAE1CqC,EAAAA,CAAMzC,KAAKI,UAAU,MAAMgC,gBAAmBpC,KAAKuC,SAASL,CAAAA,CAAAA,UAAAA,CAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,EAMjE;AAAA;AApMYxC,EAMKgD,oBAAoB,EAAA,GACjCC,EAAWD,mBACdE,MAAM,QACNC,gBAAAA,GAAgB,GAITC,EAAA,CADPC,EAAM,iBAAA,MAZKrD,EAaJsD,WAAA,iBAAA,CAAA,GAWDF,EAAA,CADNG,EAAS,EAAEC,SAAAA,IAAe/C,MAAMgD,OAAAA,CAAAA,CAAAA,GAvBrBzD,EAwBLsD,WAAA,WAAA,CAAA,GAUAF,EAAA,CADNG,MAjCWvD,EAkCLsD,WAAA,SAAA,CAAA,GAQAF,EAAA,CADNG,EAAS,EAAEC,SAAAA,IAAe/C,MAAMgD,OAAAA,CAAAA,CAAAA,GAzCrBzD,EA0CLsD,WAAA,QAAA,IAQAF,EAAA,CADNG,EAAAA,CAAAA,GAjDWvD,EAkDLsD,WAAA,QAAA,CAAA,GAOAF,EAAA,CADNG,EAAS,EAAE9C,MAAMiD,SAASF,SAAAA,GAAS,CAAA,CAAA,GAxDxBxD,EAyDLsD,WAAA,YAAA,IAaaF,EAAA,CADnBG,EAAS,EAAEI,WAAW,aAAA,CAAA,CAAA,GArEX3D,EAsEQsD,WAAA,aAAA,CAAA,GASZF,EAAA,CALPQ,EAAsB,EACtBC,MAAM,UACNC,SAAAA,IACAC,UAAU,MAAA,CAAA,CAAA,GA7EC/D,EA+EJsD,WAAA,cAAA,IAOAF,EAAA,CALPQ,EAAsB,EACtBC,MAAM,UACNC,SAAAA,IACAC,UAAU,MAAA,CAAA,CAAA,GApFC/D,EAsFJsD,WAAA,cAAA,CAAA,GAtFItD,IAANoD,EAAA,CADNY,EAAc,qBACFhE,CAAAA;;;;;ACRN,IAAMiE,IAAN,cAAiChE,EAAYC;AAAAA;AAAAA;AAAAA;AAAAA,CAA7C,EAAA;AAAA,EAAA;AAAAE,UAAAA,GAAAC,SAAAA,GAsBNC,KAAO4D,OAA2B,MAQlC5D,KAAOC,UAAyB,QAShCD,KAAOE,QAAyB,QAQhCF,KAAOG,OAAsC,UAe7CH,KAAOI,WAAAA;AAAAA,EAAW;AAAA,EAGlB,IAAA,UAA8BC,GAAAA;AAC7B,UAAMC,IAASN,KAAKO;AACpBP,SAAKO,aAAaF,GAEdL,KAAKQ,aAAa,YAAA,KACrBR,KAAKS,gBAAgB,YAAA,GAEtBT,KAAKU,cAAc,aAAaJ,CAAAA;AAAAA,EACjC;AAAA,EAGA,IAAA,YAAoBgC;AACnB,WAAOtC,KAAKO;AAAAA,EACb;AAAA,EAGgB,MAAMI,GAAAA;AACrBX,SAAKY,cAAcC,MAAMF,CAAAA;AAAAA,EAC1B;AAAA,EAGgB;AACfX,SAAKY,cAAcE;EACpB;AAAA,EAEA;AACCd,SAAKyB,cAAc,IAAIC,MAAM,SAAS,EAAEC,SAAAA,IAAeC,UAAAA,GAAU,CAAA,CAAA;AAAA,EAClE;AAAA,EAGQ,gBAAgBC,GAAAA;AACvBA,MAAMC,kBACND,EAAME,gBAAAA;AAAAA,EACP;AAAA,EAEU,aAAa8B;EAEvB;AAAA,EAEA,SAAAC;AAEC,UAAM9B,IAAmBhC,KAAKC,YAAY,UAAU,iBAAiBD,KAAKC,SAGpEgC,IAAU,EACf,8OAAA,IAEA,kBAAkBjC,KAAKI,UACvB,mBAAmBJ,KAAKI,UACxB,oBACEJ,KAAKI,aACL4B,MAAqB,cACrBA,MAAqB,UACrBA,MAAqB,YACrBA,MAAqB,iBACvB,oBAAoBhC,KAAKI,YAAY4B,MAAqB,YAC1D,sBAAsBhC,KAAKE,UAAU,QACrC,iDAAiD8B,MAAqB,YACtE,+DAA+DA,MAAqB,YACpF,sCAAsCA,MAAqB,UAC3D,qDAAqDA,MAAqB,gBAC1E,wBAAwBA,MAAqB,QAC7C,qBAAqBhC,KAAK4D,SAAS,MACnC,qBAAqB5D,KAAK4D,SAAS,MACnC,uBAAuB5D,KAAK4D,SAAS,KAATA,GAGvB1B,IAAoB,EACzB,6CACA,uBAAuBF,MAAqB,UAC5C,4BAA4BA,MAAqB,cAAcA,MAAqB,cAAcA,MAAqB,QACvH,gCAAgCA,MAAqB;AAItD,WAAIhC,KAAKmC,OACDC;AAAAA;AAAAA;AAAAA,YAGEC,EAAUrC,KAAKI,WAAAA,SAAuBJ,KAAKmC,IAAAA,CAAAA;AAAAA,kBACrCE,EAAUrC,KAAKsC,SAAAA,CAAAA;AAAAA,cACnBtC,KAAKuC,SAASN,CAAAA,CAAAA;AAAAA,gBACZjC,KAAKI,WAAW,OAAO,GAAA;AAAA,qBAClBJ,KAAKI,QAAAA;AAAAA,cACZJ,KAAKI,WAAWJ,KAAKwC,kBAAAA,MAAkB;AAAA;AAAA,OAE9CC,EAAAA,CAAMzC,KAAKI,UAAU,MAAMgC,iCAAoCpC,KAAKuC,SAASL,CAAAA,CAAAA,UAAAA,CAAAA;AAAAA,2BACzDlC,KAAK4D,SAAS,OAAO,SAAS5D,KAAK4D,SAAS,OAAO,SAAS,MAAA;AAAA;AAAA;AAAA;AAAA,OAQ9ExB;AAAAA;AAAAA;AAAAA,iBAGQC,EAAUrC,KAAKsC,SAAAA,CAAAA;AAAAA,gBAChBtC,KAAKI,QAAAA;AAAAA,aACRJ,KAAKuC,SAASN,CAAAA,CAAAA;AAAAA,WAChBI,EAAUrC,KAAKG,IAAAA,CAAAA;AAAAA,eACXkC,EAAUrC,KAAKI,WAAW,OAAA,MAAO,CAAA;AAAA;AAAA,MAE1CqC,EAAAA,CAAMzC,KAAKI,UAAU,MAAMgC,iCAAoCpC,KAAKuC,SAASL,CAAAA,CAAAA,UAAAA,CAAAA;AAAAA,0BACzDlC,KAAK4D,SAAS,OAAO,SAAS5D,KAAK4D,SAAS,OAAO,SAAS,MAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAKrF;AAAA;AA/KYD,EAKKjB,oBAAoB,EAAA,GACjCC,EAAWD,mBACdE,MAAM,QACNC,mBAAgB,GAITC,EAAA,CADPC,EAAM,iBAAA,MAXKY,EAYJX,WAAA,iBAAA,CAAA,GAUDF,EAAA,CADNG,EAAS,EAAE9C,MAAMgD,OAAAA,CAAAA,CAAAA,GArBNQ,EAsBLX,WAAA,QAAA,CAAA,GAQAF,EAAA,CADNG,EAAS,EAAEC,SAAAA,IAAe/C,MAAMgD,OAAAA,CAAAA,CAAAA,GA7BrBQ,EA8BLX,WAAA,WAAA,CAAA,GASAF,EAAA,CADNG,EAAAA,CAAAA,GAtCWU,EAuCLX,WAAA,SAAA,CAAA,GAQAF,EAAA,CADNG,EAAS,EAAEC,SAAAA,IAAe/C,MAAMgD,OAAAA,CAAAA,CAAAA,GA9CrBQ,EA+CLX,WAAA,QAAA,CAAA,GAQAF,EAAA,CADNG,EAAAA,CAAAA,GAtDWU,EAuDLX,WAAA,QAAA,IAOAF,EAAA,CADNG,EAAS,EAAE9C,MAAMiD,SAASF,SAAAA,GAAS,CAAA,CAAA,GA7DxBS,EA8DLX,WAAA,YAAA,IAcaF,EAAA,CADnBG,EAAS,EAAEI,WAAW,kBA3EXM,EA4EQX,WAAA,aAAA,CAAA,GA5ERW,IAANb,EAAA,CADNY,EAAc,sBAAA,CAAA,GACFC,CAAAA;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"sheet-ByE4dXE5.js","sources":["../src/sheet/sheet.ts","../src/sheet/hook.ts"],"sourcesContent":["import { $LitElement } from '@mixins/index'\nimport { area } from '../area'\nimport { html } from 'lit'\nimport { customElement, property, query } from 'lit/decorators.js'\nimport { fromEvent, merge, takeUntil, tap, filter } from 'rxjs'\nimport { on } from './hook'\nimport style from './sheet.scss?inline'\nimport { SchmancySheetPosition, sheet } 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 }) 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\n\tprivate lastFocusedElement: HTMLElement | null = null\n\t@query('.overlay') private overlayEl!: HTMLDivElement\n\t@query('.content') private contentEl!: HTMLDivElement\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\tthis.setBackgroundInert(true)\n\t\t\tthis.animateIn()\n\t\t\tthis.focus()\n\t\t} else {\n\t\t\tthis.animateOut()\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\tprivate animateIn() {\n\t\tif (!this.overlayEl || !this.contentEl) return\n\n\t\tconst timing = {\n\t\t\tduration: 250,\n\t\t\teasing: 'cubic-bezier(0.16, 1, 0.3, 1)',\n\t\t\tfill: 'forwards' as FillMode,\n\t\t}\n\n\t\t// Animate overlay\n\t\tthis.overlayEl.animate([{ opacity: 0 }, { opacity: 0.8 }], timing)\n\n\t\t// Animate content based on position\n\t\tconst transform =\n\t\t\tthis.position === SchmancySheetPosition.Side\n\t\t\t\t? [{ transform: 'translateX(100%)' }, { transform: 'translateX(0)' }]\n\t\t\t\t: [{ transform: 'translateY(100%)' }, { transform: 'translateY(0)' }]\n\n\t\tthis.contentEl.animate(transform, timing)\n\t}\n\n\tprivate animateOut() {\n\t\tif (!this.overlayEl || !this.contentEl) return\n\n\t\tconst timing = {\n\t\t\tduration: 250,\n\t\t\teasing: 'cubic-bezier(0.16, 1, 0.3, 1)',\n\t\t\tfill: 'forwards' as FillMode,\n\t\t}\n\n\t\t// Animate overlay\n\t\tthis.overlayEl.animate([{ opacity: 0.8 }, { opacity: 0 }], timing)\n\n\t\t// Animate content based on position\n\t\tconst transform =\n\t\t\tthis.position === SchmancySheetPosition.Side\n\t\t\t\t? [{ transform: 'translateX(0)' }, { transform: 'translateX(100%)' }]\n\t\t\t\t: [{ transform: 'translateY(0)' }, { transform: 'translateY(100%)' }]\n\n\t\tthis.contentEl.animate(transform, timing)\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\n\t\tconst popState$ = fromEvent<PopStateEvent>(window, 'popstate').pipe(\n\t\t\tfilter(() => this.handleHistory),\n\t\t\ttap(e => {\n\t\t\t\te.preventDefault()\n\t\t\t\tthis.closeSheet()\n\t\t\t}),\n\t\t)\n\n\t\t// Handle ESC key\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 render events from sheet service\n\t\tconst render$ = fromEvent<CustomEvent>(window, 'schmancy-sheet-render').pipe(\n\t\t\tfilter(e => e.detail.uid === this.uid),\n\t\t\ttap(e => {\n\t\t\t\tarea.push({\n\t\t\t\t\tarea: this.uid,\n\t\t\t\t\tcomponent: e.detail.component,\n\t\t\t\t\thistoryStrategy: 'silent',\n\t\t\t\t})\n\t\t\t}),\n\t\t)\n\n\t\tmerge(popState$, keyUp$, render$).pipe(takeUntil(this.disconnecting)).subscribe()\n\t}\n\n\tprivate setBackgroundInert(inert: boolean) {\n\t\tconst parent = this.parentElement\n\t\tif (!parent) return\n\n\t\tArray.from(parent.children).forEach(child => {\n\t\t\tif (child !== this && child instanceof HTMLElement) {\n\t\t\t\tchild.toggleAttribute('inert', inert)\n\t\t\t}\n\t\t})\n\t}\n\n\tcloseSheet() {\n\t\tthis.open = false\n\t\tthis.dispatchEvent(new CustomEvent('close'))\n\t}\n\n\toverride focus() {\n\t\t// delegatesFocus in shadowRootOptions handles automatic focus\n\t\t// Just focus first element with autofocus attribute if present\n\t\tconst element = this.querySelector('[autofocus]')\n\t\tif (element instanceof HTMLElement) {\n\t\t\telement.focus()\n\t\t}\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\trender() {\n\t\tconst sheetClasses = `fixed inset-0 z-[999] flex ${this.open ? '' : 'invisible pointer-events-none'}`\n\n\t\tconst overlayClasses = `overlay absolute inset-0 bg-surface-container/10 backdrop-blur-xs ${this.lock ? '' : 'cursor-pointer'}`\n\n\t\tconst contentClasses =\n\t\t\tthis.position === SchmancySheetPosition.Side\n\t\t\t\t? 'content h-full min-w-[320px] max-w-[90vw] w-fit ml-auto overflow-hidden z-10'\n\t\t\t\t: 'content w-fit max-w-full mt-auto rounded-t-2xl max-h-[90vh] overflow-hidden z-10'\n\n\t\tconst bodyClasses = this.position === SchmancySheetPosition.Side ? 'max-h-screen' : 'max-h-[90vh]'\n\n\t\treturn html`\n\t\t\t<div class=${sheetClasses} role=\"dialog\" aria-hidden=${!this.open} aria-modal=${this.open} tabindex=\"0\">\n\t\t\t\t<div class=${overlayClasses} @click=${this.handleOverlayClick}></div>\n\t\t\t\t<div class=${contentClasses}>\n\t\t\t\t\t<schmancy-surface rounded=\"left\" fill=\"all\" id=\"body\" class=\"overflow-auto ${bodyClasses}\" 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</div>\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":["SchmancySheet","$LitElement","constructor","super","arguments","this","open","position","SchmancySheetPosition","Side","persist","lock","handleHistory","lastFocusedElement","handleOverlayClick","e","stopPropagation","sheet","dismiss","uid","_oldValue","newValue","document","activeElement","setBackgroundInert","animateIn","focus","animateOut","overlayEl","contentEl","timing","duration","easing","fill","animate","opacity","transform","connectedCallback","setupEventListeners","disconnectedCallback","disconnecting","next","popState$","fromEvent","window","pipe","filter","tap","preventDefault","closeSheet","keyUp$","event","key","render$","detail","area","push","component","historyStrategy","merge","takeUntil","subscribe","inert","parent","parentElement","Array","from","children","forEach","child","HTMLElement","toggleAttribute","dispatchEvent","CustomEvent","element","querySelector","render","sheetClasses","overlayClasses","contentClasses","bodyClasses","html","propName","options","__decorateClass","property","type","String","reflect","prototype","Boolean","query","protoOrDescriptor","name","willUpdate","Object","assign","waitUntilFirstUpdate","changedProps","call","has","oldValue","get","hasUpdated","customElement"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"sheet-DnbrlG5W.cjs","sources":["../src/sheet/sheet.ts","../src/sheet/hook.ts"],"sourcesContent":["import { $LitElement } from '@mixins/index'\nimport { area } from '../area'\nimport { html } from 'lit'\nimport { customElement, property, query } from 'lit/decorators.js'\nimport { fromEvent, merge, takeUntil, tap, filter } from 'rxjs'\nimport { on } from './hook'\nimport style from './sheet.scss?inline'\nimport { SchmancySheetPosition, sheet } 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 }) 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\n\tprivate lastFocusedElement: HTMLElement | null = null\n\t@query('.overlay') private overlayEl!: HTMLDivElement\n\t@query('.content') private contentEl!: HTMLDivElement\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\tthis.setBackgroundInert(true)\n\t\t\tthis.animateIn()\n\t\t\tthis.focus()\n\t\t} else {\n\t\t\tthis.animateOut()\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\tprivate animateIn() {\n\t\tif (!this.overlayEl || !this.contentEl) return\n\n\t\tconst timing = {\n\t\t\tduration: 250,\n\t\t\teasing: 'cubic-bezier(0.16, 1, 0.3, 1)',\n\t\t\tfill: 'forwards' as FillMode,\n\t\t}\n\n\t\t// Animate overlay\n\t\tthis.overlayEl.animate([{ opacity: 0 }, { opacity: 0.8 }], timing)\n\n\t\t// Animate content based on position\n\t\tconst transform =\n\t\t\tthis.position === SchmancySheetPosition.Side\n\t\t\t\t? [{ transform: 'translateX(100%)' }, { transform: 'translateX(0)' }]\n\t\t\t\t: [{ transform: 'translateY(100%)' }, { transform: 'translateY(0)' }]\n\n\t\tthis.contentEl.animate(transform, timing)\n\t}\n\n\tprivate animateOut() {\n\t\tif (!this.overlayEl || !this.contentEl) return\n\n\t\tconst timing = {\n\t\t\tduration: 250,\n\t\t\teasing: 'cubic-bezier(0.16, 1, 0.3, 1)',\n\t\t\tfill: 'forwards' as FillMode,\n\t\t}\n\n\t\t// Animate overlay\n\t\tthis.overlayEl.animate([{ opacity: 0.8 }, { opacity: 0 }], timing)\n\n\t\t// Animate content based on position\n\t\tconst transform =\n\t\t\tthis.position === SchmancySheetPosition.Side\n\t\t\t\t? [{ transform: 'translateX(0)' }, { transform: 'translateX(100%)' }]\n\t\t\t\t: [{ transform: 'translateY(0)' }, { transform: 'translateY(100%)' }]\n\n\t\tthis.contentEl.animate(transform, timing)\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\n\t\tconst popState$ = fromEvent<PopStateEvent>(window, 'popstate').pipe(\n\t\t\tfilter(() => this.handleHistory),\n\t\t\ttap(e => {\n\t\t\t\te.preventDefault()\n\t\t\t\tthis.closeSheet()\n\t\t\t}),\n\t\t)\n\n\t\t// Handle ESC key\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 render events from sheet service\n\t\tconst render$ = fromEvent<CustomEvent>(window, 'schmancy-sheet-render').pipe(\n\t\t\tfilter(e => e.detail.uid === this.uid),\n\t\t\ttap(e => {\n\t\t\t\tarea.push({\n\t\t\t\t\tarea: this.uid,\n\t\t\t\t\tcomponent: e.detail.component,\n\t\t\t\t\thistoryStrategy: 'silent',\n\t\t\t\t})\n\t\t\t}),\n\t\t)\n\n\t\tmerge(popState$, keyUp$, render$).pipe(takeUntil(this.disconnecting)).subscribe()\n\t}\n\n\tprivate setBackgroundInert(inert: boolean) {\n\t\tconst parent = this.parentElement\n\t\tif (!parent) return\n\n\t\tArray.from(parent.children).forEach(child => {\n\t\t\tif (child !== this && child instanceof HTMLElement) {\n\t\t\t\tchild.toggleAttribute('inert', inert)\n\t\t\t}\n\t\t})\n\t}\n\n\tcloseSheet() {\n\t\tthis.open = false\n\t\tthis.dispatchEvent(new CustomEvent('close'))\n\t}\n\n\toverride focus() {\n\t\t// delegatesFocus in shadowRootOptions handles automatic focus\n\t\t// Just focus first element with autofocus attribute if present\n\t\tconst element = this.querySelector('[autofocus]')\n\t\tif (element instanceof HTMLElement) {\n\t\t\telement.focus()\n\t\t}\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\trender() {\n\t\tconst sheetClasses = `fixed inset-0 z-[999] flex ${this.open ? '' : 'invisible pointer-events-none'}`\n\n\t\tconst overlayClasses = `overlay absolute inset-0 bg-surface-container/10 backdrop-blur-xs ${this.lock ? '' : 'cursor-pointer'}`\n\n\t\tconst contentClasses =\n\t\t\tthis.position === SchmancySheetPosition.Side\n\t\t\t\t? 'content h-full min-w-[320px] max-w-[90vw] w-fit ml-auto overflow-hidden z-10'\n\t\t\t\t: 'content w-fit max-w-full mt-auto rounded-t-2xl max-h-[90vh] overflow-hidden z-10'\n\n\t\tconst bodyClasses = this.position === SchmancySheetPosition.Side ? 'max-h-screen' : 'max-h-[90vh]'\n\n\t\treturn html`\n\t\t\t<div class=${sheetClasses} role=\"dialog\" aria-hidden=${!this.open} aria-modal=${this.open} tabindex=\"0\">\n\t\t\t\t<div class=${overlayClasses} @click=${this.handleOverlayClick}></div>\n\t\t\t\t<div class=${contentClasses}>\n\t\t\t\t\t<schmancy-surface rounded=\"left\" fill=\"all\" id=\"body\" class=\"overflow-auto ${bodyClasses}\" 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</div>\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":["SchmancySheet","$LitElement","constructor","super","arguments","this","open","position","SchmancySheetPosition","Side","persist","lock","handleHistory","lastFocusedElement","handleOverlayClick","e","stopPropagation","sheet","dismiss","uid","_oldValue","newValue","document","activeElement","setBackgroundInert","animateIn","focus","animateOut","overlayEl","contentEl","timing","duration","easing","fill","animate","opacity","transform","connectedCallback","setupEventListeners","disconnectedCallback","disconnecting","next","popState$","fromEvent","window","pipe","filter","tap","preventDefault","closeSheet","keyUp$","event","key","render$","detail","area","push","component","historyStrategy","merge","takeUntil","subscribe","inert","parent","parentElement","Array","from","children","forEach","child","HTMLElement","toggleAttribute","dispatchEvent","CustomEvent","element","querySelector","render","sheetClasses","overlayClasses","contentClasses","bodyClasses","html","propName","options","__decorateClass","property","type","String","reflect","prototype","Boolean","query","protoOrDescriptor","name","willUpdate","Object","assign","waitUntilFirstUpdate","changedProps","call","has","oldValue","get","hasUpdated","customElement"],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- "use strict";const s=require("rxjs"),n=require("./tailwind.mixin-jb4F7UKY.cjs");var c=(e=>(e.Side="side",e.Bottom="bottom",e))(c||{});const a=new class{constructor(){this.bottomSheet=new s.Subject,this.$dismiss=new s.Subject,this.activeSheets=new Set,this.popStateListenerActive=!1,this.setupSheetOpeningLogic(),this.setupSheetDismissLogic(),this.setupPopStateListener()}setupSheetOpeningLogic(){this.bottomSheet.pipe(s.switchMap(e=>{const t=e.uid??`sheet-${Date.now()}`;return n.discoverComponent("schmancy-sheet").pipe(s.map(i=>{const o=i?.getAttribute("uid")===t?i:null;return{target:e,existingSheet:o,uid:t}}))}),s.switchMap(({target:e,existingSheet:t,uid:i})=>t?s.of({target:e,sheet:t,uid:i}):n.discoverComponent("schmancy-theme").pipe(s.map(o=>{const r=o||document.body,h=document.createElement("schmancy-sheet");return h.setAttribute("uid",i),r.appendChild(h),{target:e,sheet:h,uid:i}}))),s.tap(({target:e,sheet:t})=>{e.lock&&t.setAttribute("lock","true");const i=e.position||(window.innerWidth>=768?"side":"bottom");t.setAttribute("position",i),e.persist&&t.setAttribute("persist",String(e.persist)),document.body.style.overflow="hidden"}),s.delay(20),s.tap(({target:e,uid:t})=>{window.dispatchEvent(new CustomEvent("schmancy-sheet-render",{detail:{component:e.component,uid:t},bubbles:!0,composed:!0}))}),s.delay(1),s.tap(({sheet:e,uid:t})=>{e.setAttribute("open","true"),this.activeSheets.add(t),s.fromEvent(e,"close").pipe(s.take(1),s.delay(300)).subscribe(()=>{this.activeSheets.delete(t);const i=e.getAttribute("persist");(!i||i==="false")&&e.remove(),document.body.style.overflow="auto"})})).subscribe()}setupSheetDismissLogic(){this.$dismiss.pipe(s.mergeMap(e=>n.discoverComponent("schmancy-sheet").pipe(s.map(t=>({sheet:t,uid:e})))),s.tap(({sheet:e,uid:t})=>{e&&e.getAttribute("uid")===t&&(e.closeSheet(),this.activeSheets.delete(t))})).subscribe()}setupPopStateListener(){this.popStateListenerActive||(s.fromEvent(window,"popstate").subscribe(e=>{if(this.activeSheets.size>0){const t=Array.from(this.activeSheets).pop();t&&(this.dismiss(t),e.state&&e.state.schmancySheet&&history.pushState({},"",window.location.href))}}),this.popStateListenerActive=!0)}dismiss(e){if(!e&&this.activeSheets.size>0){const t=Array.from(this.activeSheets);e=t[t.length-1]}e&&this.$dismiss.next(e)}open(e){this.bottomSheet.next(e)}isOpen(e){return this.activeSheets.has(e)}closeAll(){Array.from(this.activeSheets).forEach(e=>{this.dismiss(e)})}};exports.SchmancySheetPosition=c,exports.sheet=a;
2
- //# sourceMappingURL=sheet.service-D4c1hRuR.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"sheet.service-D4c1hRuR.cjs","sources":["../src/sheet/sheet.service.ts"],"sourcesContent":["import {\n\tdelay,\n\tfromEvent,\n\tmap,\n\tmergeMap,\n\tof,\n\tSubject,\n\tswitchMap,\n\ttake,\n\ttap,\n} from 'rxjs'\nimport { ComponentType } from '../area/router.types'\nimport { discoverComponent } from '@mixins/discovery.service'\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// 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\tconst uid = target.uid ?? `sheet-${Date.now()}`\n\n\t\t\t\t\t// Discover existing sheet with this uid\n\t\t\t\t\treturn discoverComponent<SchmancySheet>('schmancy-sheet').pipe(\n\t\t\t\t\t\tmap(existingSheet => {\n\t\t\t\t\t\t\t// Check if discovered sheet matches our uid\n\t\t\t\t\t\t\tconst sheet = existingSheet?.getAttribute('uid') === uid ? existingSheet : null\n\t\t\t\t\t\t\treturn { target, existingSheet: sheet, uid }\n\t\t\t\t\t\t})\n\t\t\t\t\t)\n\t\t\t\t}),\n\t\t\t\tswitchMap(({ target, existingSheet, uid }) => {\n\t\t\t\t\t// Discover theme container if creating new sheet\n\t\t\t\t\tif (existingSheet) {\n\t\t\t\t\t\treturn of({ target, sheet: existingSheet, uid })\n\t\t\t\t\t}\n\n\t\t\t\t\treturn discoverComponent<HTMLElement>('schmancy-theme').pipe(\n\t\t\t\t\t\tmap(theme => {\n\t\t\t\t\t\t\t// Determine container - use theme or fallback to body\n\t\t\t\t\t\t\tconst targetContainer = theme || document.body\n\n\t\t\t\t\t\t\t// Create new sheet\n\t\t\t\t\t\t\tconst sheet = document.createElement('schmancy-sheet')\n\t\t\t\t\t\t\tsheet.setAttribute('uid', uid)\n\t\t\t\t\t\t\ttargetContainer.appendChild(sheet)\n\n\t\t\t\t\t\t\treturn { target, sheet: sheet as SchmancySheet, uid }\n\t\t\t\t\t\t})\n\t\t\t\t\t)\n\t\t\t\t}),\n\t\t\t\ttap(({ target, sheet }) => {\n\t\t\t\t\t// Configure sheet attributes\n\t\t\t\t\tif (target.lock) sheet.setAttribute('lock', 'true')\n\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\tif (target.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}),\n\t\t\t\tdelay(20),\n\t\t\t\ttap(({ target, uid }) => {\n\t\t\t\t\t// 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 },\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(({ sheet, uid }) => {\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\tthis.activeSheets.add(uid)\n\n\t\t\t\t\t// Set up close event listener\n\t\t\t\t\tfromEvent<CustomEvent>(sheet, 'close')\n\t\t\t\t\t\t.pipe(take(1), delay(300))\n\t\t\t\t\t\t.subscribe(() => {\n\t\t\t\t\t\t\t// Remove from active sheets tracking\n\t\t\t\t\t\t\tthis.activeSheets.delete(uid)\n\n\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\tconst persistAttr = sheet.getAttribute('persist')\n\t\t\t\t\t\t\tconst shouldRemove = !persistAttr || persistAttr === 'false'\n\n\t\t\t\t\t\t\tif (shouldRemove) {\n\t\t\t\t\t\t\t\tsheet.remove()\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\tdiscoverComponent<SchmancySheet>('schmancy-sheet').pipe(\n\t\t\t\t\t\tmap(sheet => ({ sheet, uid }))\n\t\t\t\t\t)\n\t\t\t\t),\n\t\t\t\ttap(({ sheet, uid }) => {\n\t\t\t\t\t// Check if discovered sheet matches the uid we're trying to dismiss\n\t\t\t\t\tif (sheet && sheet.getAttribute('uid') === uid) {\n\t\t\t\t\t\tsheet.closeSheet()\n\t\t\t\t\t\tthis.activeSheets.delete(uid)\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","sheet","constructor","this","bottomSheet","Subject","$dismiss","activeSheets","Set","popStateListenerActive","setupSheetOpeningLogic","setupSheetDismissLogic","setupPopStateListener","pipe","switchMap","target","uid","Date","now","discoverComponent","map","existingSheet","getAttribute","of","theme","targetContainer","document","body","createElement","setAttribute","appendChild","tap","lock","position","window","innerWidth","persist","String","style","overflow","delay","dispatchEvent","CustomEvent","detail","component","bubbles","composed","add","fromEvent","take","subscribe","delete","persistAttr","remove","mergeMap","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 +0,0 @@
1
- {"version":3,"file":"sheet.service-D9c1p4HB.js","sources":["../src/sheet/sheet.service.ts"],"sourcesContent":["import {\n\tdelay,\n\tfromEvent,\n\tmap,\n\tmergeMap,\n\tof,\n\tSubject,\n\tswitchMap,\n\ttake,\n\ttap,\n} from 'rxjs'\nimport { ComponentType } from '../area/router.types'\nimport { discoverComponent } from '@mixins/discovery.service'\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// 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\tconst uid = target.uid ?? `sheet-${Date.now()}`\n\n\t\t\t\t\t// Discover existing sheet with this uid\n\t\t\t\t\treturn discoverComponent<SchmancySheet>('schmancy-sheet').pipe(\n\t\t\t\t\t\tmap(existingSheet => {\n\t\t\t\t\t\t\t// Check if discovered sheet matches our uid\n\t\t\t\t\t\t\tconst sheet = existingSheet?.getAttribute('uid') === uid ? existingSheet : null\n\t\t\t\t\t\t\treturn { target, existingSheet: sheet, uid }\n\t\t\t\t\t\t})\n\t\t\t\t\t)\n\t\t\t\t}),\n\t\t\t\tswitchMap(({ target, existingSheet, uid }) => {\n\t\t\t\t\t// Discover theme container if creating new sheet\n\t\t\t\t\tif (existingSheet) {\n\t\t\t\t\t\treturn of({ target, sheet: existingSheet, uid })\n\t\t\t\t\t}\n\n\t\t\t\t\treturn discoverComponent<HTMLElement>('schmancy-theme').pipe(\n\t\t\t\t\t\tmap(theme => {\n\t\t\t\t\t\t\t// Determine container - use theme or fallback to body\n\t\t\t\t\t\t\tconst targetContainer = theme || document.body\n\n\t\t\t\t\t\t\t// Create new sheet\n\t\t\t\t\t\t\tconst sheet = document.createElement('schmancy-sheet')\n\t\t\t\t\t\t\tsheet.setAttribute('uid', uid)\n\t\t\t\t\t\t\ttargetContainer.appendChild(sheet)\n\n\t\t\t\t\t\t\treturn { target, sheet: sheet as SchmancySheet, uid }\n\t\t\t\t\t\t})\n\t\t\t\t\t)\n\t\t\t\t}),\n\t\t\t\ttap(({ target, sheet }) => {\n\t\t\t\t\t// Configure sheet attributes\n\t\t\t\t\tif (target.lock) sheet.setAttribute('lock', 'true')\n\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\tif (target.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}),\n\t\t\t\tdelay(20),\n\t\t\t\ttap(({ target, uid }) => {\n\t\t\t\t\t// 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 },\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(({ sheet, uid }) => {\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\tthis.activeSheets.add(uid)\n\n\t\t\t\t\t// Set up close event listener\n\t\t\t\t\tfromEvent<CustomEvent>(sheet, 'close')\n\t\t\t\t\t\t.pipe(take(1), delay(300))\n\t\t\t\t\t\t.subscribe(() => {\n\t\t\t\t\t\t\t// Remove from active sheets tracking\n\t\t\t\t\t\t\tthis.activeSheets.delete(uid)\n\n\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\tconst persistAttr = sheet.getAttribute('persist')\n\t\t\t\t\t\t\tconst shouldRemove = !persistAttr || persistAttr === 'false'\n\n\t\t\t\t\t\t\tif (shouldRemove) {\n\t\t\t\t\t\t\t\tsheet.remove()\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\tdiscoverComponent<SchmancySheet>('schmancy-sheet').pipe(\n\t\t\t\t\t\tmap(sheet => ({ sheet, uid }))\n\t\t\t\t\t)\n\t\t\t\t),\n\t\t\t\ttap(({ sheet, uid }) => {\n\t\t\t\t\t// Check if discovered sheet matches the uid we're trying to dismiss\n\t\t\t\t\tif (sheet && sheet.getAttribute('uid') === uid) {\n\t\t\t\t\t\tsheet.closeSheet()\n\t\t\t\t\t\tthis.activeSheets.delete(uid)\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","sheet","constructor","this","bottomSheet","Subject","$dismiss","activeSheets","Set","popStateListenerActive","setupSheetOpeningLogic","setupSheetDismissLogic","setupPopStateListener","pipe","switchMap","target","uid","Date","now","discoverComponent","map","existingSheet","getAttribute","of","theme","targetContainer","document","body","createElement","setAttribute","appendChild","tap","lock","position","window","innerWidth","persist","String","style","overflow","delay","dispatchEvent","CustomEvent","detail","component","bubbles","composed","add","fromEvent","take","subscribe","delete","persistAttr","remove","mergeMap","closeSheet","event","size","lastSheet","Array","from","pop","dismiss","state","schmancySheet","history","pushState","location","href","sheetsArray","length","next","has","closeAll","forEach"],"mappings":";;AAeO,IAAKA,KAAAA,CAAAA,OACXA,EAAA,OAAO,QACPA,EAAA,SAAS,UAFEA,IAAAA,KAAA,CAAA,CAAA;AAuNL,MAAMC,IAAQ,IA/LrB;EAQC,cAAAC;AAPAC,SAAAC,cAAc,IAAIC,KAClBF,KAAAG,WAAW,IAAID,KAEfF,KAAQI,mCAAmBC,OAE3BL,KAAQM,yBAAAA,IAGPN,KAAKO,uBAAAA,GACLP,KAAKQ,uBAAAA,GACLR,KAAKS;EACN;AAAA,EAKQ;AACPT,SAAKC,YACHS,KACAC,EAAUC,CAAAA,MAAAA;AACT,YAAMC,IAAMD,EAAOC,OAAO,SAASC,KAAKC,IAAAA,CAAAA;AAGxC,aAAOC,EAAiC,gBAAA,EAAkBN,KACzDO,EAAIC,CAAAA,MAAAA;AAEH,cAAMpB,IAAQoB,GAAeC,aAAa,WAAWN,IAAMK,IAAgB;AAC3E,eAAO,EAAEN,WAAQM,eAAepB,GAAOe;;QAI1CF,EAAU,CAAA,EAAGC,QAAAA,GAAQM,eAAAA,GAAeL,aAE/BK,IACIE,EAAG,EAAER,QAAAA,GAAQd,OAAOoB,GAAeL,KAAAA,EAAAA,CAAAA,IAGpCG,EAA+B,kBAAkBN,KACvDO,EAAII,CAAAA;AAEH,YAAMC,IAAkBD,KAASE,SAASC,MAGpC1B,IAAQyB,SAASE,cAAc,gBAAA;AAIrC,aAHA3B,EAAM4B,aAAa,OAAOb,IAC1BS,EAAgBK,YAAY7B,IAErB,EAAEc,QAAAA,GAAQd,OAAOA,GAAwBe,KAAAA,EAAAA;AAAAA,IAAAA,CAAAA,CAAAA,CAAAA,GAInDe,EAAI,CAAA,EAAGhB,QAAAA,GAAQd,OAAAA,EAAAA,MAAAA;AAEVc,MAAAA,EAAOiB,QAAM/B,EAAM4B,aAAa,QAAQ,MAAA;AAE5C,YAAMI,IAAWlB,EAAOkB,aA3DrBC,OAAOC,cAAc,MAAM,SAA6B;AA4D3DlC,MAAAA,EAAM4B,aAAa,YAAYI,IAE3BlB,EAAOqB,WAASnC,EAAM4B,aAAa,WAAWQ,OAAOtB,EAAOqB,OAAAA,CAAAA,GAEhEV,SAASC,KAAKW,MAAMC,WAAW;AAAA,IAAA,CAAA,GAEhCC,EAAM,KACNT,EAAI,CAAA,EAAGhB,WAAQC,KAAAA,EAAAA,MAAAA;AAEdkB,aAAOO,cACN,IAAIC,YAAY,yBAAyB,EACxCC,QAAQ,EAAEC,WAAW7B,EAAO6B,WAAW5B,KAAAA,EAAAA,GACvC6B,SAAAA,IACAC,UAAAA;QAIHN,EAAM,CAAA,GACNT,EAAI,CAAA,EAAG9B,OAAAA,GAAOe,KAAAA,EAAAA,MAAAA;AACbf,MAAAA,EAAM4B,aAAa,QAAQ,MAAA,GAG3B1B,KAAKI,aAAawC,IAAI/B,IAGtBgC,EAAuB/C,GAAO,SAC5BY,KAAKoC,EAAK,CAAA,GAAIT,EAAM,MACpBU,UAAU,MAAA;AAEV/C,aAAKI,aAAa4C,OAAOnC;AAGzB,cAAMoC,IAAcnD,EAAMqB,aAAa,SAAA;AAAA,SAAA,CACjB8B,KAAeA,MAAgB,YAGpDnD,EAAMoD,OAAAA,GAGP3B,SAASC,KAAKW,MAAMC,WAAW;AAAA,MAAA,CAAA;AAAA,IAAA,CAAA,CAAA,EAIlCW,UAAAA;AAAAA,EACH;AAAA,EAKQ,yBAAAvC;AACPR,SAAKG,SACHO,KACAyC,EAAStC,CAAAA,MACRG,EAAiC,kBAAkBN,KAClDO,EAAInB,CAAAA,OAAAA,EAAYA,OAAAA,GAAOe,KAAAA,EAAAA,EAAAA,CAAAA,CAAAA,GAGzBe,EAAI,GAAG9B,OAAAA,GAAOe;AAETf,MAAAA,KAASA,EAAMqB,aAAa,KAAA,MAAWN,MAC1Cf,EAAMsD,WAAAA,GACNpD,KAAKI,aAAa4C,OAAOnC,CAAAA;AAAAA,IAAAA,CAAAA,CAAAA,EAI3BkC;EACH;AAAA,EAKQ;AACH/C,SAAKM,2BAETuC,EAAyBd,QAAQ,UAAA,EAAYgB,UAAUM,CAAAA,MAAAA;AAEtD,UAAIrD,KAAKI,aAAakD,OAAO,GAAG;AAE/B,cAAMC,IAAYC,MAAMC,KAAKzD,KAAKI,YAAAA,EAAcsD;AAC5CH,QAAAA,MACHvD,KAAK2D,QAAQJ,CAAAA,GAITF,EAAMO,SAASP,EAAMO,MAAMC,iBAC9BC,QAAQC,UAAU,CAAA,GAAI,IAAIhC,OAAOiC,SAASC;MAG7C;AAAA,IAAA,CAAA,GAGDjE,KAAKM;EACN;AAAA,EAKA,QAAQO,GAAAA;AACP,SAAKA,KAAOb,KAAKI,aAAakD,OAAO,GAAG;AAEvC,YAAMY,IAAcV,MAAMC,KAAKzD,KAAKI,YAAAA;AACpCS,MAAAA,IAAMqD,EAAYA,EAAYC,SAAS;IACxC;AAEItD,IAAAA,KACHb,KAAKG,SAASiE,KAAKvD;EAErB;AAAA,EAKA,KAAKD,GAAAA;AACJZ,SAAKC,YAAYmE,KAAKxD,CAAAA;AAAAA,EACvB;AAAA,EAKA,OAAOC;AACN,WAAOb,KAAKI,aAAaiE,IAAIxD,CAAAA;AAAAA,EAC9B;AAAA,EAKA,WAAAyD;AAECd,UAAMC,KAAKzD,KAAKI,cAAcmE,QAAQ1D,CAAAA,MAAAA;AACrCb,WAAK2D,QAAQ9C,CAAAA;AAAAA,IAAAA,CAAAA;AAAAA,EAEf;;"}