@mhmo91/schmancy 0.4.71 → 0.4.73

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 (357) hide show
  1. package/ai/context.md +2 -3
  2. package/ai/directives.md +1 -1
  3. package/ai/steps.md +187 -9
  4. package/dist/ai/context.md +2 -3
  5. package/dist/ai/directives.md +1 -1
  6. package/dist/ai/steps.md +187 -9
  7. package/dist/{animated-text-rE-SkQgz.cjs → animated-text-CPAqO_J3.cjs} +2 -2
  8. package/dist/{animated-text-rE-SkQgz.cjs.map → animated-text-CPAqO_J3.cjs.map} +1 -1
  9. package/dist/{animated-text-CBOMltQE.js → animated-text-Dj3HHUD4.js} +3 -3
  10. package/dist/{animated-text-CBOMltQE.js.map → animated-text-Dj3HHUD4.js.map} +1 -1
  11. package/dist/animated-text.cjs +1 -1
  12. package/dist/animated-text.js +1 -1
  13. package/dist/area.cjs +1 -1
  14. package/dist/area.js +14 -13
  15. package/dist/{autocomplete-CuO8ztL4.cjs → autocomplete-B3ArCTZl.cjs} +2 -2
  16. package/dist/{autocomplete-CuO8ztL4.cjs.map → autocomplete-B3ArCTZl.cjs.map} +1 -1
  17. package/dist/{autocomplete-BAcf_l63.js → autocomplete-kJ7y028b.js} +3 -3
  18. package/dist/{autocomplete-BAcf_l63.js.map → autocomplete-kJ7y028b.js.map} +1 -1
  19. package/dist/autocomplete.cjs +1 -1
  20. package/dist/autocomplete.js +1 -1
  21. package/dist/{avatar-D3gNBale.js → avatar-DI5vtg3k.js} +70 -71
  22. package/dist/avatar-DI5vtg3k.js.map +1 -0
  23. package/dist/{avatar-N3BODeY1.cjs → avatar-r7OnlyPP.cjs} +3 -3
  24. package/dist/avatar-r7OnlyPP.cjs.map +1 -0
  25. package/dist/badge.cjs +1 -1
  26. package/dist/badge.js +1 -1
  27. package/dist/{boat-CWXlAq65.cjs → boat-COlWXsv8.cjs} +2 -2
  28. package/dist/{boat-CWXlAq65.cjs.map → boat-COlWXsv8.cjs.map} +1 -1
  29. package/dist/{boat-BQoWbDxu.js → boat-Cp8VgFWP.js} +2 -2
  30. package/dist/{boat-BQoWbDxu.js.map → boat-Cp8VgFWP.js.map} +1 -1
  31. package/dist/boat.cjs +1 -1
  32. package/dist/boat.js +1 -1
  33. package/dist/busy.cjs +1 -1
  34. package/dist/busy.js +1 -1
  35. package/dist/button.cjs +1 -1
  36. package/dist/button.js +1 -1
  37. package/dist/card.cjs +1 -1
  38. package/dist/card.js +1 -1
  39. package/dist/{checkbox-DBO-neG5.js → checkbox-Cbkcvj-3.js} +2 -2
  40. package/dist/{checkbox-DBO-neG5.js.map → checkbox-Cbkcvj-3.js.map} +1 -1
  41. package/dist/{checkbox-DIYmuPtk.cjs → checkbox-u355dDEB.cjs} +2 -2
  42. package/dist/{checkbox-DIYmuPtk.cjs.map → checkbox-u355dDEB.cjs.map} +1 -1
  43. package/dist/checkbox.cjs +1 -1
  44. package/dist/checkbox.js +1 -1
  45. package/dist/{chips-BYE5hQQr.cjs → chips-BFn88CJs.cjs} +2 -2
  46. package/dist/{chips-BYE5hQQr.cjs.map → chips-BFn88CJs.cjs.map} +1 -1
  47. package/dist/{chips-C_7proIN.js → chips-Y5nzkBJw.js} +3 -3
  48. package/dist/{chips-C_7proIN.js.map → chips-Y5nzkBJw.js.map} +1 -1
  49. package/dist/chips.cjs +1 -1
  50. package/dist/chips.js +1 -1
  51. package/dist/code-highlight.cjs +1 -1
  52. package/dist/code-highlight.js +1 -1
  53. package/dist/{code-preview-CzcyBpl-.cjs → code-preview-CsQWYHL5.cjs} +3 -3
  54. package/dist/{code-preview-CzcyBpl-.cjs.map → code-preview-CsQWYHL5.cjs.map} +1 -1
  55. package/dist/{code-preview-CQ-EAz9F.js → code-preview-D2peRzvQ.js} +3 -3
  56. package/dist/{code-preview-CQ-EAz9F.js.map → code-preview-D2peRzvQ.js.map} +1 -1
  57. package/dist/components.cjs +1 -1
  58. package/dist/components.js +1 -1
  59. package/dist/content-drawer.cjs +1 -1
  60. package/dist/content-drawer.js +1 -1
  61. package/dist/{context-object-K_1gDFu-.cjs → context-object-bNADqf9U.cjs} +2 -2
  62. package/dist/{context-object-K_1gDFu-.cjs.map → context-object-bNADqf9U.cjs.map} +1 -1
  63. package/dist/{context-object-CDDP4bTk.js → context-object-u5gBaozZ.js} +46 -32
  64. package/dist/{context-object-CDDP4bTk.js.map → context-object-u5gBaozZ.js.map} +1 -1
  65. package/dist/{date-range-WqwMEh16.js → date-range-DnKu_v9b.js} +4 -4
  66. package/dist/{date-range-WqwMEh16.js.map → date-range-DnKu_v9b.js.map} +1 -1
  67. package/dist/{date-range-DCghMsV8.cjs → date-range-Ya1J9HQQ.cjs} +2 -2
  68. package/dist/{date-range-DCghMsV8.cjs.map → date-range-Ya1J9HQQ.cjs.map} +1 -1
  69. package/dist/{date-range-inline-Z0ASWN4I.cjs → date-range-inline-CXBrxoim.cjs} +2 -2
  70. package/dist/{date-range-inline-Z0ASWN4I.cjs.map → date-range-inline-CXBrxoim.cjs.map} +1 -1
  71. package/dist/{date-range-inline-JgIiOHQM.js → date-range-inline-Q5qz2lG_.js} +3 -3
  72. package/dist/{date-range-inline-JgIiOHQM.js.map → date-range-inline-Q5qz2lG_.js.map} +1 -1
  73. package/dist/date-range-inline.cjs +1 -1
  74. package/dist/date-range-inline.js +1 -1
  75. package/dist/date-range.cjs +1 -1
  76. package/dist/date-range.js +1 -1
  77. package/dist/{delay-LnWlFwkK.js → delay-DVqCtHik.js} +2 -2
  78. package/dist/delay-DVqCtHik.js.map +1 -0
  79. package/dist/{delay-Ew4cphs1.cjs → delay-Dl6B_yyv.cjs} +2 -2
  80. package/dist/delay-Dl6B_yyv.cjs.map +1 -0
  81. package/dist/delay.cjs +1 -1
  82. package/dist/delay.js +1 -1
  83. package/dist/{details-C01m-iWQ.cjs → details-LZ_GGbW-.cjs} +2 -2
  84. package/dist/{details-C01m-iWQ.cjs.map → details-LZ_GGbW-.cjs.map} +1 -1
  85. package/dist/{details-BVEV0hUx.js → details-w1ooWiKA.js} +2 -2
  86. package/dist/{details-BVEV0hUx.js.map → details-w1ooWiKA.js.map} +1 -1
  87. package/dist/details.cjs +1 -1
  88. package/dist/details.js +1 -1
  89. package/dist/{dialog-content-B_w_iJyW.js → dialog-content-B7V_S6GR.js} +4 -4
  90. package/dist/{dialog-content-B_w_iJyW.js.map → dialog-content-B7V_S6GR.js.map} +1 -1
  91. package/dist/{dialog-content-BFmy9Sbo.cjs → dialog-content-VroTT22f.cjs} +2 -2
  92. package/dist/{dialog-content-BFmy9Sbo.cjs.map → dialog-content-VroTT22f.cjs.map} +1 -1
  93. package/dist/{dialog-service-DwJ_7FB3.js → dialog-service-Dpz_NIRP.js} +2 -2
  94. package/dist/dialog-service-Dpz_NIRP.js.map +1 -0
  95. package/dist/{dialog-service-DS-aEjlX.cjs → dialog-service-Wna1JO09.cjs} +2 -2
  96. package/dist/dialog-service-Wna1JO09.cjs.map +1 -0
  97. package/dist/dialog.cjs +1 -1
  98. package/dist/dialog.js +2 -2
  99. package/dist/{divider-BWG6TAr2.cjs → divider-CegpMW-2.cjs} +2 -2
  100. package/dist/{divider-BWG6TAr2.cjs.map → divider-CegpMW-2.cjs.map} +1 -1
  101. package/dist/{divider-FkKYlJY3.js → divider-OuCqxcUB.js} +3 -3
  102. package/dist/{divider-FkKYlJY3.js.map → divider-OuCqxcUB.js.map} +1 -1
  103. package/dist/divider.cjs +1 -1
  104. package/dist/divider.js +1 -1
  105. package/dist/{dropdown-content-BStJGihR.js → dropdown-content-BuKCBydD.js} +3 -3
  106. package/dist/{dropdown-content-BStJGihR.js.map → dropdown-content-BuKCBydD.js.map} +1 -1
  107. package/dist/{dropdown-content-m1aSF-Oh.cjs → dropdown-content-f0LuoUKR.cjs} +2 -2
  108. package/dist/{dropdown-content-m1aSF-Oh.cjs.map → dropdown-content-f0LuoUKR.cjs.map} +1 -1
  109. package/dist/dropdown.cjs +1 -1
  110. package/dist/dropdown.js +1 -1
  111. package/dist/{email-recipients-CbZNnzoj.cjs → email-recipients-BlEtpbdr.cjs} +2 -2
  112. package/dist/{email-recipients-CbZNnzoj.cjs.map → email-recipients-BlEtpbdr.cjs.map} +1 -1
  113. package/dist/{email-recipients-CpghUhQ1.js → email-recipients-CvSwxcso.js} +7 -7
  114. package/dist/{email-recipients-CpghUhQ1.js.map → email-recipients-CvSwxcso.js.map} +1 -1
  115. package/dist/extra.cjs +1 -1
  116. package/dist/extra.js +1 -1
  117. package/dist/{flex-BNVtJlgu.cjs → flex-Cdv04m_E.cjs} +2 -2
  118. package/dist/{flex-BNVtJlgu.cjs.map → flex-Cdv04m_E.cjs.map} +1 -1
  119. package/dist/{flex-C6yj5Sxi.js → flex-HyTTaFX9.js} +2 -2
  120. package/dist/{flex-C6yj5Sxi.js.map → flex-HyTTaFX9.js.map} +1 -1
  121. package/dist/{form-C85Qev2L.js → form-BNTXCzQo.js} +2 -2
  122. package/dist/{form-C85Qev2L.js.map → form-BNTXCzQo.js.map} +1 -1
  123. package/dist/{form-ns7c4fcj.cjs → form-CXRNS-AS.cjs} +2 -2
  124. package/dist/{form-ns7c4fcj.cjs.map → form-CXRNS-AS.cjs.map} +1 -1
  125. package/dist/form.cjs +1 -1
  126. package/dist/form.js +1 -1
  127. package/dist/{formField.mixin-CKb_MTS7.js → formField.mixin-MhetZTeW.js} +2 -2
  128. package/dist/{formField.mixin-CKb_MTS7.js.map → formField.mixin-MhetZTeW.js.map} +1 -1
  129. package/dist/{formField.mixin-B3CXBJKX.cjs → formField.mixin-zezhhNIA.cjs} +2 -2
  130. package/dist/{formField.mixin-B3CXBJKX.cjs.map → formField.mixin-zezhhNIA.cjs.map} +1 -1
  131. package/dist/{icon-DKPLcbdu.js → icon-C71zn7AW.js} +2 -2
  132. package/dist/{icon-DKPLcbdu.js.map → icon-C71zn7AW.js.map} +1 -1
  133. package/dist/{icon-button-DiRex-eZ.cjs → icon-button-CO8rMFUR.cjs} +2 -2
  134. package/dist/{icon-button-DiRex-eZ.cjs.map → icon-button-CO8rMFUR.cjs.map} +1 -1
  135. package/dist/{icon-button-CIkRej0r.js → icon-button-KoYGGW6a.js} +3 -3
  136. package/dist/{icon-button-CIkRej0r.js.map → icon-button-KoYGGW6a.js.map} +1 -1
  137. package/dist/{icon-DUstfLaC.cjs → icon-e6XggWlw.cjs} +2 -2
  138. package/dist/{icon-DUstfLaC.cjs.map → icon-e6XggWlw.cjs.map} +1 -1
  139. package/dist/icons.cjs +1 -1
  140. package/dist/icons.js +1 -1
  141. package/dist/index-CCi1otmh.cjs +2 -0
  142. package/dist/{index-DyJ0oDpR.cjs.map → index-CCi1otmh.cjs.map} +1 -1
  143. package/dist/index-CW6PhEkx.js +17 -0
  144. package/dist/{index-CuY8m6ta.js.map → index-CW6PhEkx.js.map} +1 -1
  145. package/dist/index.cjs +1 -1
  146. package/dist/index.js +216 -215
  147. package/dist/{input-B7MqsI2h.cjs → input-CFvMe_KR.cjs} +2 -2
  148. package/dist/{input-B7MqsI2h.cjs.map → input-CFvMe_KR.cjs.map} +1 -1
  149. package/dist/{input-DODcsAZu.js → input-LTpT28E4.js} +3 -3
  150. package/dist/{input-DODcsAZu.js.map → input-LTpT28E4.js.map} +1 -1
  151. package/dist/input.cjs +1 -1
  152. package/dist/input.js +1 -1
  153. package/dist/layout.cjs +1 -1
  154. package/dist/layout.js +1 -1
  155. package/dist/{list-Cx6tpiFE.js → list-CAJJTrLl.js} +2 -2
  156. package/dist/{list-Cx6tpiFE.js.map → list-CAJJTrLl.js.map} +1 -1
  157. package/dist/{list-DxduK4sb.cjs → list-D2dyHYN9.cjs} +2 -2
  158. package/dist/{list-DxduK4sb.cjs.map → list-D2dyHYN9.cjs.map} +1 -1
  159. package/dist/list.cjs +1 -1
  160. package/dist/list.js +1 -1
  161. package/dist/{litElement.mixin-B12Y4mEr.cjs → litElement.mixin-4iclDbF3.cjs} +2 -2
  162. package/dist/{litElement.mixin-B12Y4mEr.cjs.map → litElement.mixin-4iclDbF3.cjs.map} +1 -1
  163. package/dist/{litElement.mixin-BZ8iGvPl.js → litElement.mixin-SeAIQuRg.js} +2 -2
  164. package/dist/{litElement.mixin-BZ8iGvPl.js.map → litElement.mixin-SeAIQuRg.js.map} +1 -1
  165. package/dist/mailbox.cjs +1 -1
  166. package/dist/mailbox.js +1 -1
  167. package/dist/{map-sgCf8pYD.cjs → map-CMkosiu4.cjs} +2 -2
  168. package/dist/{map-sgCf8pYD.cjs.map → map-CMkosiu4.cjs.map} +1 -1
  169. package/dist/{map-dT8yp1iK.js → map-DwMX_LnY.js} +2 -2
  170. package/dist/{map-dT8yp1iK.js.map → map-DwMX_LnY.js.map} +1 -1
  171. package/dist/map.cjs +1 -1
  172. package/dist/map.js +1 -1
  173. package/dist/{media-CgH0D5rY.js → media-B98kFRvT.js} +2 -2
  174. package/dist/{media-CgH0D5rY.js.map → media-B98kFRvT.js.map} +1 -1
  175. package/dist/{media-CwjupDLj.cjs → media-DxbLFhc5.cjs} +2 -2
  176. package/dist/{media-CwjupDLj.cjs.map → media-DxbLFhc5.cjs.map} +1 -1
  177. package/dist/{menu-oZRtmhVd.js → menu-ChMwBut9.js} +3 -3
  178. package/dist/{menu-oZRtmhVd.js.map → menu-ChMwBut9.js.map} +1 -1
  179. package/dist/{menu-X25Q7tpY.cjs → menu-DTRbll_X.cjs} +2 -2
  180. package/dist/{menu-X25Q7tpY.cjs.map → menu-DTRbll_X.cjs.map} +1 -1
  181. package/dist/menu.cjs +1 -1
  182. package/dist/menu.js +1 -1
  183. package/dist/nav-drawer.cjs +1 -1
  184. package/dist/nav-drawer.js +1 -1
  185. package/dist/{notification-service-y0T4rXdS.js → notification-service-BiEAwrL6.js} +4 -4
  186. package/dist/notification-service-BiEAwrL6.js.map +1 -0
  187. package/dist/{notification-service-kLTt3JtW.cjs → notification-service-h3GuXar7.cjs} +2 -2
  188. package/dist/notification-service-h3GuXar7.cjs.map +1 -0
  189. package/dist/notification.cjs +1 -1
  190. package/dist/notification.js +2 -2
  191. package/dist/{notify-BnjvURrc.js → notify-1NUgv3Qz.js} +2 -2
  192. package/dist/{notify-BnjvURrc.js.map → notify-1NUgv3Qz.js.map} +1 -1
  193. package/dist/{notify-EGStToeW.cjs → notify-CP9929J0.cjs} +2 -2
  194. package/dist/{notify-EGStToeW.cjs.map → notify-CP9929J0.cjs.map} +1 -1
  195. package/dist/{option-CD1NSUXu.js → option-DvEFWkrm.js} +2 -2
  196. package/dist/{option-CD1NSUXu.js.map → option-DvEFWkrm.js.map} +1 -1
  197. package/dist/{option-D4_WBCWz.cjs → option-VxlQIYFR.cjs} +2 -2
  198. package/dist/{option-D4_WBCWz.cjs.map → option-VxlQIYFR.cjs.map} +1 -1
  199. package/dist/option.cjs +1 -1
  200. package/dist/option.js +1 -1
  201. package/dist/{payment-card-form-96Rw6cLf.cjs → payment-card-form-CAPM_YfT.cjs} +2 -2
  202. package/dist/{payment-card-form-96Rw6cLf.cjs.map → payment-card-form-CAPM_YfT.cjs.map} +1 -1
  203. package/dist/{payment-card-form-lWlhuDb3.js → payment-card-form-CEd08rns.js} +3 -3
  204. package/dist/{payment-card-form-lWlhuDb3.js.map → payment-card-form-CEd08rns.js.map} +1 -1
  205. package/dist/{progress-BkxGzGOm.cjs → progress-Bu8wtPRI.cjs} +2 -2
  206. package/dist/{progress-BkxGzGOm.cjs.map → progress-Bu8wtPRI.cjs.map} +1 -1
  207. package/dist/{progress-DGk9tC4y.js → progress-CL4SPk5b.js} +2 -2
  208. package/dist/{progress-DGk9tC4y.js.map → progress-CL4SPk5b.js.map} +1 -1
  209. package/dist/progress.cjs +1 -1
  210. package/dist/progress.js +1 -1
  211. package/dist/{radio-button-DHM38A7h.js → radio-button-B087BeTl.js} +3 -3
  212. package/dist/{radio-button-DHM38A7h.js.map → radio-button-B087BeTl.js.map} +1 -1
  213. package/dist/{radio-button-w9ZxzEPa.cjs → radio-button-vz9nLR-m.cjs} +2 -2
  214. package/dist/{radio-button-w9ZxzEPa.cjs.map → radio-button-vz9nLR-m.cjs.map} +1 -1
  215. package/dist/radio-group.cjs +1 -1
  216. package/dist/radio-group.js +1 -1
  217. package/dist/route.component-D1xujH8n.js +343 -0
  218. package/dist/route.component-D1xujH8n.js.map +1 -0
  219. package/dist/route.component-ke_nkgvP.cjs +12 -0
  220. package/dist/route.component-ke_nkgvP.cjs.map +1 -0
  221. package/dist/rxjs-utils.cjs +1 -1
  222. package/dist/rxjs-utils.js +1 -1
  223. package/dist/{schmancy-steps-container-WYO4SOrb.js → schmancy-steps-container-CEvpeKIe.js} +12 -12
  224. package/dist/schmancy-steps-container-CEvpeKIe.js.map +1 -0
  225. package/dist/{schmancy-steps-container-CPSL_8H0.cjs → schmancy-steps-container-DvSClSo1.cjs} +6 -6
  226. package/dist/schmancy-steps-container-DvSClSo1.cjs.map +1 -0
  227. package/dist/{select-CxCcgqW_.cjs → select-4VXPMU8r.cjs} +2 -2
  228. package/dist/{select-CxCcgqW_.cjs.map → select-4VXPMU8r.cjs.map} +1 -1
  229. package/dist/{select-bDAzyQOZ.js → select-BoUYZPyl.js} +3 -3
  230. package/dist/{select-bDAzyQOZ.js.map → select-BoUYZPyl.js.map} +1 -1
  231. package/dist/select.cjs +1 -1
  232. package/dist/select.js +1 -1
  233. package/dist/{selector-hook-CIpuCUbr.js → selector-hook-ChImS_JT.js} +2 -2
  234. package/dist/{selector-hook-CIpuCUbr.js.map → selector-hook-ChImS_JT.js.map} +1 -1
  235. package/dist/{selector-hook-DB8RFC1y.cjs → selector-hook-cqmAutda.cjs} +2 -2
  236. package/dist/{selector-hook-DB8RFC1y.cjs.map → selector-hook-cqmAutda.cjs.map} +1 -1
  237. package/dist/{sheet-pO6PmiAf.js → sheet-C6djCmPV.js} +4 -4
  238. package/dist/{sheet-pO6PmiAf.js.map → sheet-C6djCmPV.js.map} +1 -1
  239. package/dist/{sheet-Bm0ukLXt.cjs → sheet-IfHxyIo_.cjs} +2 -2
  240. package/dist/{sheet-Bm0ukLXt.cjs.map → sheet-IfHxyIo_.cjs.map} +1 -1
  241. package/dist/sheet.cjs +1 -1
  242. package/dist/sheet.js +2 -2
  243. package/dist/{sheet.service-DV9xNhS8.cjs → sheet.service-DR9KJfMa.cjs} +2 -2
  244. package/dist/sheet.service-DR9KJfMa.cjs.map +1 -0
  245. package/dist/{sheet.service-ieSXeqCj.js → sheet.service-DZGMoIHy.js} +2 -2
  246. package/dist/sheet.service-DZGMoIHy.js.map +1 -0
  247. package/dist/{slider-BwXXp74f.cjs → slider-BfNNQ6qI.cjs} +2 -2
  248. package/dist/{slider-BwXXp74f.cjs.map → slider-BfNNQ6qI.cjs.map} +1 -1
  249. package/dist/{slider-CxZGMYF-.js → slider-DERHNjqI.js} +3 -3
  250. package/dist/{slider-CxZGMYF-.js.map → slider-DERHNjqI.js.map} +1 -1
  251. package/dist/slider.cjs +1 -1
  252. package/dist/slider.js +1 -1
  253. package/dist/{spinner-b3VWC6It.js → spinner-BOdUWwXq.js} +2 -2
  254. package/dist/{spinner-b3VWC6It.js.map → spinner-BOdUWwXq.js.map} +1 -1
  255. package/dist/{spinner-nN77H00p.cjs → spinner-Bip-lfsc.cjs} +2 -2
  256. package/dist/{spinner-nN77H00p.cjs.map → spinner-Bip-lfsc.cjs.map} +1 -1
  257. package/dist/steps.cjs +1 -1
  258. package/dist/steps.js +1 -1
  259. package/dist/store.cjs +1 -1
  260. package/dist/store.js +2 -2
  261. package/dist/{surface-Cm8zYK5d.cjs → surface--Nh6Q896.cjs} +2 -2
  262. package/dist/{surface-Cm8zYK5d.cjs.map → surface--Nh6Q896.cjs.map} +1 -1
  263. package/dist/{surface-C2WjztRc.js → surface-CyhVK7JG.js} +2 -2
  264. package/dist/{surface-C2WjztRc.js.map → surface-CyhVK7JG.js.map} +1 -1
  265. package/dist/surface.cjs +1 -1
  266. package/dist/surface.js +1 -1
  267. package/dist/{table-Dp7npAuy.js → table-DnPQ0zCd.js} +2 -2
  268. package/dist/{table-Dp7npAuy.js.map → table-DnPQ0zCd.js.map} +1 -1
  269. package/dist/{table-BfhuaB9J.cjs → table-x9dbc3AY.cjs} +2 -2
  270. package/dist/{table-BfhuaB9J.cjs.map → table-x9dbc3AY.cjs.map} +1 -1
  271. package/dist/table.cjs +1 -1
  272. package/dist/table.js +1 -1
  273. package/dist/{tabs-compatibility-CA-wWRoe.cjs → tabs-compatibility-D3HfZRKv.cjs} +2 -2
  274. package/dist/{tabs-compatibility-CA-wWRoe.cjs.map → tabs-compatibility-D3HfZRKv.cjs.map} +1 -1
  275. package/dist/{tabs-compatibility-U4cq8X3I.js → tabs-compatibility-Dazz1g0Q.js} +2 -2
  276. package/dist/{tabs-compatibility-U4cq8X3I.js.map → tabs-compatibility-Dazz1g0Q.js.map} +1 -1
  277. package/dist/tabs.cjs +1 -1
  278. package/dist/tabs.js +1 -1
  279. package/dist/tailwind.mixin-Bwf86oi5.cjs +2 -0
  280. package/dist/{tailwind.mixin-BlZIIaOE.cjs.map → tailwind.mixin-Bwf86oi5.cjs.map} +1 -1
  281. package/dist/tailwind.mixin-kvywknTU.js +43 -0
  282. package/dist/{tailwind.mixin-D2DVHS9V.js.map → tailwind.mixin-kvywknTU.js.map} +1 -1
  283. package/dist/teleport.cjs +1 -1
  284. package/dist/teleport.js +1 -1
  285. package/dist/{textarea-BRNj3tvi.js → textarea-bHJFDEva.js} +2 -2
  286. package/dist/{textarea-BRNj3tvi.js.map → textarea-bHJFDEva.js.map} +1 -1
  287. package/dist/{textarea-CxZKoXaU.cjs → textarea-xRo6a5-Y.cjs} +2 -2
  288. package/dist/{textarea-CxZKoXaU.cjs.map → textarea-xRo6a5-Y.cjs.map} +1 -1
  289. package/dist/textarea.cjs +1 -1
  290. package/dist/textarea.js +1 -1
  291. package/dist/{theme-button-N_Wt3bos.js → theme-button-BPFuZSBY.js} +2 -2
  292. package/dist/{theme-button-N_Wt3bos.js.map → theme-button-BPFuZSBY.js.map} +1 -1
  293. package/dist/{theme-button-MrIoOFEB.cjs → theme-button-lvD9uCTZ.cjs} +2 -2
  294. package/dist/{theme-button-MrIoOFEB.cjs.map → theme-button-lvD9uCTZ.cjs.map} +1 -1
  295. package/dist/theme-button.cjs +1 -1
  296. package/dist/theme-button.js +1 -1
  297. package/dist/theme.cjs +1 -1
  298. package/dist/{theme.component-6VfET_t-.js → theme.component-C-PfGTcN.js} +2 -2
  299. package/dist/{theme.component-6VfET_t-.js.map → theme.component-C-PfGTcN.js.map} +1 -1
  300. package/dist/{theme.component-B_EubPsq.cjs → theme.component-DkcM8QzH.cjs} +2 -2
  301. package/dist/{theme.component-B_EubPsq.cjs.map → theme.component-DkcM8QzH.cjs.map} +1 -1
  302. package/dist/theme.js +1 -1
  303. package/dist/{timezone-DR_4m9Cc.js → timezone-BDSbTYTk.js} +3 -3
  304. package/dist/{timezone-DR_4m9Cc.js.map → timezone-BDSbTYTk.js.map} +1 -1
  305. package/dist/{timezone-BVd9UEba.cjs → timezone-OLjylRB7.cjs} +2 -2
  306. package/dist/{timezone-BVd9UEba.cjs.map → timezone-OLjylRB7.cjs.map} +1 -1
  307. package/dist/{tooltip-BpPHc8Wr.js → tooltip-CWiU3SEA.js} +2 -2
  308. package/dist/{tooltip-BpPHc8Wr.js.map → tooltip-CWiU3SEA.js.map} +1 -1
  309. package/dist/{tooltip-DOQVLRaH.cjs → tooltip-iM0cfzsV.cjs} +2 -2
  310. package/dist/{tooltip-DOQVLRaH.cjs.map → tooltip-iM0cfzsV.cjs.map} +1 -1
  311. package/dist/tooltip.cjs +1 -1
  312. package/dist/tooltip.js +1 -1
  313. package/dist/{tree-BANkyLn7.cjs → tree-CXIrKI2O.cjs} +2 -2
  314. package/dist/{tree-BANkyLn7.cjs.map → tree-CXIrKI2O.cjs.map} +1 -1
  315. package/dist/{tree-C5zu8wXc.js → tree-JUf2hHiW.js} +2 -2
  316. package/dist/{tree-C5zu8wXc.js.map → tree-JUf2hHiW.js.map} +1 -1
  317. package/dist/tree.cjs +1 -1
  318. package/dist/tree.js +1 -1
  319. package/dist/{typewriter-CdztqkoR.js → typewriter-DQuULTla.js} +4 -4
  320. package/dist/{typewriter-CdztqkoR.js.map → typewriter-DQuULTla.js.map} +1 -1
  321. package/dist/{typewriter-DS0D0UZM.cjs → typewriter-YW7NGa6H.cjs} +2 -2
  322. package/dist/{typewriter-DS0D0UZM.cjs.map → typewriter-YW7NGa6H.cjs.map} +1 -1
  323. package/dist/typewriter.cjs +1 -1
  324. package/dist/typewriter.js +1 -1
  325. package/dist/{typography-C8vZfuLF.cjs → typography-CkLztts5.cjs} +2 -2
  326. package/dist/{typography-C8vZfuLF.cjs.map → typography-CkLztts5.cjs.map} +1 -1
  327. package/dist/{typography-o9FJ6Lzo.js → typography-kXb173Io.js} +2 -2
  328. package/dist/{typography-o9FJ6Lzo.js.map → typography-kXb173Io.js.map} +1 -1
  329. package/dist/typography.cjs +1 -1
  330. package/dist/typography.js +1 -1
  331. package/package.json +1 -1
  332. package/types/src/area/area.component.d.ts +25 -5
  333. package/types/src/area/index.d.ts +1 -0
  334. package/types/src/area/route.component.d.ts +43 -0
  335. package/types/src/area/route.test.d.ts +20 -0
  336. package/types/src/steps/schmancy-steps-container.d.ts +9 -0
  337. package/types/src/store/context-collection.d.ts +26 -2
  338. package/dist/area.component-C86pi_TT.js +0 -283
  339. package/dist/area.component-C86pi_TT.js.map +0 -1
  340. package/dist/area.component-nX_dCv4R.cjs +0 -8
  341. package/dist/area.component-nX_dCv4R.cjs.map +0 -1
  342. package/dist/avatar-D3gNBale.js.map +0 -1
  343. package/dist/avatar-N3BODeY1.cjs.map +0 -1
  344. package/dist/delay-Ew4cphs1.cjs.map +0 -1
  345. package/dist/delay-LnWlFwkK.js.map +0 -1
  346. package/dist/dialog-service-DS-aEjlX.cjs.map +0 -1
  347. package/dist/dialog-service-DwJ_7FB3.js.map +0 -1
  348. package/dist/index-CuY8m6ta.js +0 -19
  349. package/dist/index-DyJ0oDpR.cjs +0 -2
  350. package/dist/notification-service-kLTt3JtW.cjs.map +0 -1
  351. package/dist/notification-service-y0T4rXdS.js.map +0 -1
  352. package/dist/schmancy-steps-container-CPSL_8H0.cjs.map +0 -1
  353. package/dist/schmancy-steps-container-WYO4SOrb.js.map +0 -1
  354. package/dist/sheet.service-DV9xNhS8.cjs.map +0 -1
  355. package/dist/sheet.service-ieSXeqCj.js.map +0 -1
  356. package/dist/tailwind.mixin-BlZIIaOE.cjs +0 -2
  357. package/dist/tailwind.mixin-D2DVHS9V.js +0 -43
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dialog-service-Dpz_NIRP.js","sources":["../src/dialog/dialog-events.ts","../src/dialog/dialog-service.ts"],"sourcesContent":["// Dialog discovery event constants\r\nexport const DialogWhereAreYouRicky = 'are-you-there-dialog'\r\nexport const DialogHereMorty = 'yes-dialog-here'\r\n\r\n// Event interfaces\r\nexport interface DialogWhereAreYouRickyEvent extends CustomEvent {\r\n detail: {\r\n uid: string\r\n }\r\n}\r\n\r\nexport interface DialogHereMortyEvent extends CustomEvent {\r\n detail: {\r\n dialog: any // Will be schmancy-dialog instance\r\n theme?: any // Will be schmancy-theme instance\r\n }\r\n}","import { render, TemplateResult } from 'lit'\nimport { defaultIfEmpty, forkJoin, fromEvent, map, of, Subject, switchMap, takeUntil, tap, timer } from 'rxjs'\nimport { ThemeHereIAm, ThemeHereIAmEvent, ThemeWhereAreYou } from '../theme/theme.component'\nimport { ConfirmDialog } from './dailog'\nimport { DialogHereMorty, DialogHereMortyEvent, DialogWhereAreYouRicky } from './dialog-events'\n\n/**\n * Dialog service options interface with component support\n */\nexport interface DialogOptions {\n\ttitle?: string\n\tsubtitle?: string\n\tmessage?: string\n\tconfirmText?: string\n\tcancelText?: string\n\tvariant?: 'default' | 'danger'\n\tconfirmColor?: 'primary' | 'error' | 'warning' | 'success' // Button color for confirm action\n\tposition?: { x: number; y: number } | MouseEvent | TouchEvent\n\n\t// New options for component rendering\n\tcontent?: TemplateResult | HTMLElement | (() => HTMLElement | TemplateResult)\n\twidth?: string\n\tonConfirm?: () => void\n\tonCancel?: () => void\n\thideActions?: boolean // Set to true to hide all buttons and title\n\ttargetContainer?: HTMLElement // Container to append dialog to (defaults to document.body)\n}\n\ninterface DialogTarget {\n\toptions: DialogOptions\n\ttype: 'confirm' | 'component'\n\tcontent?: TemplateResult | HTMLElement | (() => HTMLElement | TemplateResult)\n\tresolve?: (value: boolean) => void\n\treject?: (reason?: any) => void\n}\n\n/**\n * Dialog service for centralized dialog management.\n * Provides a simple API for showing dialogs with optional custom components.\n */\nexport class DialogService {\n\tprivate static instance: DialogService\n\n\t// Default dialog options\n\tprivate static DEFAULT_OPTIONS: Partial<DialogOptions> = {\n\t\ttitle: undefined,\n\t\tsubtitle: undefined,\n\t\tconfirmText: undefined,\n\t\tcancelText: undefined,\n\t\tvariant: 'default',\n\t\twidth: '360px',\n\t}\n\n\t// Track active dialogs to handle dismissing the most recent one\n\tprivate activeDialogs: ConfirmDialog[] = []\n\t\n\t// Track component dialogs (schmancy-dialog instances)\n\tprivate activeRawDialogs: any[] = []\n\t\n\t// Subject for dialog opening requests\n\tprivate dialogSubject = new Subject<DialogTarget>()\n\t\n\t// Subject for dialog dismissal requests\n\tprivate dismissSubject = new Subject<string>()\n\n\t// Private constructor for singleton pattern\n\tprivate constructor() {\n\t\tthis.setupDialogOpeningLogic()\n\t\tthis.setupDialogDismissLogic()\n\t}\n\n\t/**\n\t * Get the singleton instance\n\t */\n\tpublic static getInstance(): DialogService {\n\t\tif (!DialogService.instance) {\n\t\t\tDialogService.instance = new DialogService()\n\t\t}\n\t\treturn DialogService.instance\n\t}\n\t\n\t/**\n\t * Sets up the main dialog opening logic using RxJS pipes\n\t */\n\tprivate setupDialogOpeningLogic() {\n\t\tthis.dialogSubject\n\t\t\t.pipe(\n\t\t\t\tswitchMap(target =>\n\t\t\t\t\tforkJoin([\n\t\t\t\t\t\t// First ask for existing dialog\n\t\t\t\t\t\tfromEvent<DialogHereMortyEvent>(window, DialogHereMorty).pipe(\n\t\t\t\t\t\t\ttakeUntil(timer(50)),\n\t\t\t\t\t\t\tmap(e => e.detail),\n\t\t\t\t\t\t\tdefaultIfEmpty(undefined),\n\t\t\t\t\t\t),\n\t\t\t\t\t\t// Then find theme container\n\t\t\t\t\t\tfromEvent<ThemeHereIAmEvent>(window, ThemeHereIAm).pipe(\n\t\t\t\t\t\t\ttakeUntil(timer(50)),\n\t\t\t\t\t\t\tmap(e => e.detail.theme),\n\t\t\t\t\t\t\tdefaultIfEmpty(undefined),\n\t\t\t\t\t\t),\n\t\t\t\t\t\tof(target).pipe(\n\t\t\t\t\t\t\ttap(() => {\n\t\t\t\t\t\t\t\tconst uid = target.type === 'confirm' \n\t\t\t\t\t\t\t\t\t? `confirm-dialog-${Date.now()}-${Math.random().toString(36).substring(2, 9)}`\n\t\t\t\t\t\t\t\t\t: `dialog-${Date.now()}-${Math.random().toString(36).substring(2, 9)}`\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t// First ask for existing dialog\n\t\t\t\t\t\t\t\twindow.dispatchEvent(\n\t\t\t\t\t\t\t\t\tnew CustomEvent(DialogWhereAreYouRicky, {\n\t\t\t\t\t\t\t\t\t\tdetail: { uid },\n\t\t\t\t\t\t\t\t\t\tbubbles: true,\n\t\t\t\t\t\t\t\t\t\tcomposed: true,\n\t\t\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t// Then ask for theme container\n\t\t\t\t\t\t\t\twindow.dispatchEvent(\n\t\t\t\t\t\t\t\t\tnew CustomEvent(ThemeWhereAreYou, {\n\t\t\t\t\t\t\t\t\t\tbubbles: true,\n\t\t\t\t\t\t\t\t\t\tcomposed: true,\n\t\t\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t// Store uid in target for later use\n\t\t\t\t\t\t\t\t;(target as any).uid = uid\n\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t),\n\t\t\t\t\t]),\n\t\t\t\t),\n\t\t\t\tmap(([existingDialog, theme, target]) => {\n\t\t\t\t\tlet dialog = existingDialog?.dialog\n\t\t\t\t\tlet targetContainer: HTMLElement\n\t\t\t\t\t\n\t\t\t\t\tif (dialog) {\n\t\t\t\t\t\t// Use existing dialog\n\t\t\t\t\t\ttargetContainer = dialog.parentElement as HTMLElement\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// Determine container - use theme from discovery or fallback\n\t\t\t\t\t\ttargetContainer = theme || target.options.targetContainer || (document.querySelector('schmancy-theme') as HTMLElement) || document.body\n\t\t\t\t\t\t\n\t\t\t\t\t\t// Create appropriate dialog type\n\t\t\t\t\t\tconst uid = (target as any).uid\n\t\t\t\t\t\t\n\t\t\t\t\t\tif (target.type === 'confirm') {\n\t\t\t\t\t\t\tdialog = document.createElement('confirm-dialog') as ConfirmDialog\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tdialog = document.createElement('schmancy-dialog')\n\t\t\t\t\t\t}\n\t\t\t\t\t\t\n\t\t\t\t\t\tdialog.setAttribute('uid', uid)\n\t\t\t\t\t\ttargetContainer.appendChild(dialog)\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\treturn { dialog, target, targetContainer }\n\t\t\t\t}),\n\t\t\t\ttap(({ dialog, target, targetContainer }) => {\n\t\t\t\t\tif (!dialog) {\n\t\t\t\t\t\t// Create appropriate dialog type\n\t\t\t\t\t\tif (target.type === 'confirm') {\n\t\t\t\t\t\t\tdialog = document.createElement('confirm-dialog') as ConfirmDialog\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tdialog = document.createElement('schmancy-dialog')\n\t\t\t\t\t\t}\n\t\t\t\t\t\t\n\t\t\t\t\t\tdialog.setAttribute('uid', (target as any).uid)\n\t\t\t\t\t\ttargetContainer.appendChild(dialog)\n\t\t\t\t\t}\n\t\t\t\t}),\n\t\t\t\tmap(({ dialog, target, targetContainer }) => {\n\t\t\t\t\t// Return the actual dialog element that was created\n\t\t\t\t\tif (!dialog) {\n\t\t\t\t\t\tdialog = targetContainer.querySelector(`[uid=\"${(target as any).uid}\"]`)\n\t\t\t\t\t}\n\t\t\t\t\treturn { dialog, target, targetContainer }\n\t\t\t\t}),\n\t\t\t\ttap(({ dialog, target }) => {\n\t\t\t\t\tif (target.type === 'confirm') {\n\t\t\t\t\t\t// Configure confirm dialog\n\t\t\t\t\t\tconst confirmDialog = dialog as ConfirmDialog\n\t\t\t\t\t\tconst options = target.options\n\t\t\t\t\t\t\n\t\t\t\t\t\tif (options.title) confirmDialog.title = options.title\n\t\t\t\t\t\tif (options.subtitle) confirmDialog.subtitle = options.subtitle\n\t\t\t\t\t\tif (options.message) confirmDialog.message = options.message\n\t\t\t\t\t\tif (options.confirmText) confirmDialog.confirmText = options.confirmText\n\t\t\t\t\t\tif (options.cancelText) confirmDialog.cancelText = options.cancelText\n\t\t\t\t\t\tif (options.variant) confirmDialog.variant = options.variant\n\t\t\t\t\t\tif (options.confirmColor) confirmDialog.confirmColor = options.confirmColor\n\t\t\t\t\t\tif (options.width) confirmDialog.style.setProperty('--dialog-width', options.width)\n\t\t\t\t\t\t\n\t\t\t\t\t\t// Handle custom content if provided\n\t\t\t\t\t\tif (options.content) {\n\t\t\t\t\t\t\tconst contentContainer = document.createElement('div')\n\t\t\t\t\t\t\tcontentContainer.slot = 'content'\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tif (typeof options.content === 'function') {\n\t\t\t\t\t\t\t\tconst result = options.content()\n\t\t\t\t\t\t\t\tif (result instanceof HTMLElement) {\n\t\t\t\t\t\t\t\t\tcontentContainer.appendChild(result)\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\trender(result, contentContainer)\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} else if (options.content instanceof HTMLElement) {\n\t\t\t\t\t\t\t\tcontentContainer.appendChild(options.content)\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\trender(options.content, contentContainer)\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tconfirmDialog.appendChild(contentContainer)\n\t\t\t\t\t\t}\n\t\t\t\t\t\t\n\t\t\t\t\t\t// Add to active dialogs\n\t\t\t\t\t\tthis.activeDialogs.push(confirmDialog)\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// Configure component dialog\n\t\t\t\t\t\tif (target.content) {\n\t\t\t\t\t\t\tconst directContentContainer = document.createElement('div')\n\t\t\t\t\t\t\tdirectContentContainer.style.height = '100%'\n\t\t\t\t\t\t\tdirectContentContainer.style.width = '100%'\n\t\t\t\t\t\t\tdirectContentContainer.classList.add('schmancy-dialog-content-container')\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t// Render the content directly\n\t\t\t\t\t\t\tif (typeof target.content === 'function') {\n\t\t\t\t\t\t\t\tconst result = target.content()\n\t\t\t\t\t\t\t\tif (result instanceof HTMLElement) {\n\t\t\t\t\t\t\t\t\tdirectContentContainer.appendChild(result)\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\trender(result, directContentContainer)\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} else if (target.content instanceof HTMLElement) {\n\t\t\t\t\t\t\t\tdirectContentContainer.appendChild(target.content)\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\trender(target.content, directContentContainer)\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tdialog.appendChild(directContentContainer)\n\t\t\t\t\t\t}\n\t\t\t\t\t\t\n\t\t\t\t\t\t// Set width from options\n\t\t\t\t\t\tif (target.options.width) {\n\t\t\t\t\t\t\tdialog.style.setProperty('--dialog-width', target.options.width)\n\t\t\t\t\t\t}\n\t\t\t\t\t\t\n\t\t\t\t\t\t// Add to active raw dialogs\n\t\t\t\t\t\tthis.activeRawDialogs.push(dialog)\n\t\t\t\t\t}\n\t\t\t\t}),\n\t\t\t\ttap(({ dialog, target }) => {\n\t\t\t\t\t// Show dialog and handle promise resolution\n\t\t\t\t\tconst position = target.options.position || this.getCenteredPosition()\n\t\t\t\t\t\n\t\t\t\t\tdialog.show(position).then((result: boolean) => {\n\t\t\t\t\t\tif (target.resolve) {\n\t\t\t\t\t\t\ttarget.resolve(result)\n\t\t\t\t\t\t}\n\t\t\t\t\t\t\n\t\t\t\t\t\t// Cleanup\n\t\t\t\t\t\tif (target.type === 'confirm') {\n\t\t\t\t\t\t\tconst index = this.activeDialogs.indexOf(dialog)\n\t\t\t\t\t\t\tif (index !== -1) {\n\t\t\t\t\t\t\t\tthis.activeDialogs.splice(index, 1)\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t// Clean up content\n\t\t\t\t\t\t\tconst contentEl = dialog.querySelector('[slot=\"content\"]')\n\t\t\t\t\t\t\tif (contentEl) {\n\t\t\t\t\t\t\t\tdialog.removeChild(contentEl)\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tconst index = this.activeRawDialogs.indexOf(dialog)\n\t\t\t\t\t\t\tif (index !== -1) {\n\t\t\t\t\t\t\t\tthis.activeRawDialogs.splice(index, 1)\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t// Clean up content\n\t\t\t\t\t\t\tconst contentContainer = dialog.querySelector('.schmancy-dialog-content-container')\n\t\t\t\t\t\t\tif (contentContainer && contentContainer.parentNode) {\n\t\t\t\t\t\t\t\tcontentContainer.parentNode.removeChild(contentContainer)\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\t\n\t\t\t\t\t\t// Remove dialog from DOM\n\t\t\t\t\t\tif (dialog.parentElement) {\n\t\t\t\t\t\t\tdialog.parentElement.removeChild(dialog)\n\t\t\t\t\t\t}\n\t\t\t\t\t}).catch((error: any) => {\n\t\t\t\t\t\tif (target.reject) {\n\t\t\t\t\t\t\ttarget.reject(error)\n\t\t\t\t\t\t}\n\t\t\t\t\t})\n\t\t\t\t\t\n\t\t\t\t\t// Set up event listeners for callbacks\n\t\t\t\t\tif (target.options.onConfirm) {\n\t\t\t\t\t\tconst onConfirm = (_e: Event) => {\n\t\t\t\t\t\t\ttarget.options.onConfirm!()\n\t\t\t\t\t\t\tdialog.removeEventListener('confirm', onConfirm)\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdialog.addEventListener('confirm', onConfirm)\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\tif (target.options.onCancel) {\n\t\t\t\t\t\tconst onCancel = (_e: Event) => {\n\t\t\t\t\t\t\ttarget.options.onCancel!()\n\t\t\t\t\t\t\tdialog.removeEventListener('cancel', onCancel)\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdialog.addEventListener('cancel', onCancel)\n\t\t\t\t\t}\n\t\t\t\t}),\n\t\t\t)\n\t\t\t.subscribe()\n\t}\n\t\n\t/**\n\t * Sets up the dialog dismissal logic\n\t */\n\tprivate setupDialogDismissLogic() {\n\t\tthis.dismissSubject\n\t\t\t.pipe(\n\t\t\t\tswitchMap(uid =>\n\t\t\t\t\tforkJoin([\n\t\t\t\t\t\tfromEvent<DialogHereMortyEvent>(window, DialogHereMorty).pipe(\n\t\t\t\t\t\t\ttakeUntil(timer(100)),\n\t\t\t\t\t\t\tmap(e => e.detail),\n\t\t\t\t\t\t\tdefaultIfEmpty(undefined),\n\t\t\t\t\t\t),\n\t\t\t\t\t\tof(uid).pipe(\n\t\t\t\t\t\t\ttap(() => {\n\t\t\t\t\t\t\t\twindow.dispatchEvent(\n\t\t\t\t\t\t\t\t\tnew CustomEvent(DialogWhereAreYouRicky, { \n\t\t\t\t\t\t\t\t\t\tdetail: { uid },\n\t\t\t\t\t\t\t\t\t\tbubbles: true,\n\t\t\t\t\t\t\t\t\t\tcomposed: true,\n\t\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t),\n\t\t\t\t\t]),\n\t\t\t\t),\n\t\t\t\ttap(([response]) => {\n\t\t\t\t\tif (response?.dialog) {\n\t\t\t\t\t\t// Hide the dialog\n\t\t\t\t\t\tresponse.dialog.hide(false)\n\t\t\t\t\t\t\n\t\t\t\t\t\t// Remove from tracking arrays\n\t\t\t\t\t\tconst confirmIndex = this.activeDialogs.indexOf(response.dialog)\n\t\t\t\t\t\tif (confirmIndex !== -1) {\n\t\t\t\t\t\t\tthis.activeDialogs.splice(confirmIndex, 1)\n\t\t\t\t\t\t}\n\t\t\t\t\t\t\n\t\t\t\t\t\tconst rawIndex = this.activeRawDialogs.indexOf(response.dialog)\n\t\t\t\t\t\tif (rawIndex !== -1) {\n\t\t\t\t\t\t\tthis.activeRawDialogs.splice(rawIndex, 1)\n\t\t\t\t\t\t}\n\t\t\t\t\t\t\n\t\t\t\t\t\t// Remove dialog from DOM immediately\n\t\t\t\t\t\tif (response.dialog.parentElement) {\n\t\t\t\t\t\t\tresponse.dialog.parentElement.removeChild(response.dialog)\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}),\n\t\t\t)\n\t\t\t.subscribe()\n\t}\n\n\t/**\n\t * Show a confirmation dialog\n\t * @returns Promise that resolves to true (confirm) or false (cancel)\n\t */\n\tpublic confirm(options: DialogOptions): Promise<boolean> {\n\t\treturn new Promise((resolve, reject) => {\n\t\t\t// Apply default options\n\t\t\tconst completeOptions = {\n\t\t\t\t...DialogService.DEFAULT_OPTIONS,\n\t\t\t\t...options,\n\t\t\t}\n\n\t\t\t// If no position is provided, center the dialog\n\t\t\tif (!completeOptions.position) {\n\t\t\t\tcompleteOptions.position = this.getCenteredPosition()\n\t\t\t}\n\n\t\t\t// Create dialog target and emit to subject\n\t\t\tconst target: DialogTarget = {\n\t\t\t\toptions: completeOptions,\n\t\t\t\ttype: 'confirm',\n\t\t\t\tcontent: completeOptions.content,\n\t\t\t\tresolve,\n\t\t\t\treject,\n\t\t\t}\n\n\t\t\tthis.dialogSubject.next(target)\n\t\t})\n\t}\n\n\t/**\n\t * Show a dialog with custom component content\n\t * Always renders content directly without any headers or action buttons\n\t * @returns Promise that resolves when dialog is closed\n\t */\n\tpublic component(\n\t\tcontent: TemplateResult | HTMLElement | (() => HTMLElement | TemplateResult),\n\t\toptions: Omit<DialogOptions, 'content' | 'message'> = {},\n\t): Promise<boolean> {\n\t\treturn new Promise((resolve, reject) => {\n\t\t\t// If no position is provided, center the dialog\n\t\t\tif (!options.position) {\n\t\t\t\toptions.position = this.getCenteredPosition()\n\t\t\t}\n\n\t\t\t// Create dialog target and emit to subject\n\t\t\tconst target: DialogTarget = {\n\t\t\t\toptions: options as DialogOptions,\n\t\t\t\ttype: 'component',\n\t\t\t\tcontent,\n\t\t\t\tresolve,\n\t\t\t\treject,\n\t\t\t}\n\n\t\t\tthis.dialogSubject.next(target)\n\t\t})\n\t}\n\n\t/**\n\t * Dismiss the most recently opened dialog (either confirm or component type)\n\t * @returns true if a dialog was dismissed, false if no dialogs were open\n\t */\n\tpublic dismiss(): boolean {\n\t\t// Try component dialog first (they're more likely to be on top)\n\t\tif (this.activeRawDialogs.length > 0) {\n\t\t\t// Get the most recently opened raw dialog (last in the array)\n\t\t\tconst dialog = this.activeRawDialogs[this.activeRawDialogs.length - 1]\n\t\t\tconst uid = dialog.getAttribute('uid')\n\t\t\t\n\t\t\tif (uid) {\n\t\t\t\tthis.dismissSubject.next(uid)\n\t\t\t\treturn true\n\t\t\t}\n\t\t}\n\t\t\n\t\t// Fall back to confirm dialogs\n\t\tif (this.activeDialogs.length > 0) {\n\t\t\t// Get the most recently opened dialog (last in the array)\n\t\t\tconst dialog = this.activeDialogs[this.activeDialogs.length - 1]\n\t\t\tconst uid = dialog.getAttribute('uid')\n\t\t\t\n\t\t\tif (uid) {\n\t\t\t\tthis.dismissSubject.next(uid)\n\t\t\t\treturn true\n\t\t\t}\n\t\t}\n\n\t\treturn false\n\t}\n\n\t/**\n\t * Close the most recently opened dialog (alias for dismiss)\n\t * @returns true if a dialog was closed, false if no dialogs were open\n\t */\n\tpublic close(): boolean {\n\t\treturn this.dismiss()\n\t}\n\n\t/**\n\t * Show a simple confirmation dialog with just a message\n\t * @returns Promise that resolves to true (confirm) or false (cancel)\n\t */\n\tpublic ask(message: string, event?: MouseEvent | TouchEvent): Promise<boolean> {\n\t\treturn this.confirm({\n\t\t\tmessage,\n\t\t\tposition: event,\n\t\t})\n\t}\n\n\t/**\n\t * Show a danger confirmation dialog\n\t * @returns Promise that resolves to true (confirm) or false (cancel)\n\t */\n\tpublic danger(options: Omit<DialogOptions, 'variant'>): Promise<boolean> {\n\t\treturn this.confirm({\n\t\t\t...options,\n\t\t\tvariant: 'danger',\n\t\t})\n\t}\n\n\t/**\n\t * Get a centered position for the dialog\n\t */\n\tprivate getCenteredPosition(): { x: number; y: number } {\n\t\treturn {\n\t\t\tx: window.innerWidth / 2,\n\t\t\ty: window.innerHeight / 2,\n\t\t}\n\t}\n\n}\n\n/**\n * Global dialog utility - provides a quick way to show dialogs\n */\nexport const $dialog = {\n\t/**\n\t * Show a confirmation dialog\n\t * @returns Promise that resolves to true (confirm) or false (cancel)\n\t */\n\tconfirm: (options: DialogOptions): Promise<boolean> => {\n\t\treturn DialogService.getInstance().confirm(options)\n\t},\n\n\t/**\n\t * Show a simple confirmation dialog with just a message\n\t * @returns Promise that resolves to true (confirm) or false (cancel)\n\t */\n\task: (message: string, event?: MouseEvent | TouchEvent): Promise<boolean> => {\n\t\treturn DialogService.getInstance().ask(message, event)\n\t},\n\n\t/**\n\t * Show a danger confirmation dialog\n\t * @returns Promise that resolves to true (confirm) or false (cancel)\n\t */\n\tdanger: (options: Omit<DialogOptions, 'variant'>): Promise<boolean> => {\n\t\treturn DialogService.getInstance().danger(options)\n\t},\n\n\t/**\n\t * Show a dialog with custom component content\n\t * @returns Promise that resolves when dialog is closed\n\t */\n\tcomponent: (\n\t\tcontent: TemplateResult | HTMLElement | (() => HTMLElement | TemplateResult),\n\t\toptions?: Omit<DialogOptions, 'content' | 'message'>,\n\t): Promise<boolean> => {\n\t\treturn DialogService.getInstance().component(content, options)\n\t},\n\n\t/**\n\t * Show a simple dialog without title or actions, just content\n\t * This is an alias for component() since all component dialogs are now simple by design\n\t * @returns Promise that resolves when dialog is closed\n\t */\n\tsimple: (\n\t\tcontent: TemplateResult | HTMLElement | (() => HTMLElement | TemplateResult),\n\t\toptions?: Omit<DialogOptions, 'content' | 'message' | 'title' | 'confirmText' | 'cancelText'>,\n\t): Promise<boolean> => {\n\t\treturn DialogService.getInstance().component(content, options)\n\t},\n\n\t/**\n\t * Dismiss the most recently opened dialog\n\t * @returns true if a dialog was dismissed, false if no dialogs were open\n\t */\n\tdismiss: (): boolean => {\n\t\treturn DialogService.getInstance().dismiss()\n\t},\n\n\t/**\n\t * Close the most recently opened dialog (alias for dismiss)\n\t * @returns true if a dialog was closed, false if no dialogs were open\n\t */\n\tclose: (): boolean => {\n\t\treturn DialogService.getInstance().close()\n\t},\n}\n\nexport default DialogService"],"names":["DialogWhereAreYouRicky","DialogHereMorty","DialogService","constructor","this","activeDialogs","activeRawDialogs","dialogSubject","Subject","dismissSubject","setupDialogOpeningLogic","setupDialogDismissLogic","getInstance","instance","pipe","switchMap","forkJoin","fromEvent","window","takeUntil","timer","map","e","detail","defaultIfEmpty","ThemeHereIAm","theme","of","target","tap","uid","type","Date","now","Math","random","toString","substring","dispatchEvent","CustomEvent","bubbles","composed","ThemeWhereAreYou","existingDialog","targetContainer","dialog","parentElement","options","document","querySelector","body","createElement","setAttribute","appendChild","confirmDialog","title","subtitle","message","confirmText","cancelText","variant","confirmColor","width","style","setProperty","content","contentContainer","slot","result","HTMLElement","render","push","directContentContainer","height","classList","add","position","getCenteredPosition","show","then","resolve","index","indexOf","splice","contentEl","removeChild","parentNode","catch","error","reject","onConfirm","_e","removeEventListener","addEventListener","onCancel","subscribe","response","hide","confirmIndex","rawIndex","Promise","completeOptions","DEFAULT_OPTIONS","next","dismiss","length","getAttribute","close","event","confirm","x","innerWidth","y","innerHeight","_g","$dialog","ask","danger","component","simple"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- "use strict";const d=require("lit"),o=require("rxjs"),g=require("./theme.component-B_EubPsq.cjs"),m="are-you-there-dialog",p="yes-dialog-here",l=class l{constructor(){this.activeDialogs=[],this.activeRawDialogs=[],this.dialogSubject=new o.Subject,this.dismissSubject=new o.Subject,this.setupDialogOpeningLogic(),this.setupDialogDismissLogic()}static getInstance(){return l.instance||(l.instance=new l),l.instance}setupDialogOpeningLogic(){this.dialogSubject.pipe(o.switchMap(e=>o.forkJoin([o.fromEvent(window,p).pipe(o.takeUntil(o.timer(50)),o.map(t=>t.detail),o.defaultIfEmpty(void 0)),o.fromEvent(window,g.ThemeHereIAm).pipe(o.takeUntil(o.timer(50)),o.map(t=>t.detail.theme),o.defaultIfEmpty(void 0)),o.of(e).pipe(o.tap(()=>{const t=e.type==="confirm"?`confirm-dialog-${Date.now()}-${Math.random().toString(36).substring(2,9)}`:`dialog-${Date.now()}-${Math.random().toString(36).substring(2,9)}`;window.dispatchEvent(new CustomEvent(m,{detail:{uid:t},bubbles:!0,composed:!0})),window.dispatchEvent(new CustomEvent(g.ThemeWhereAreYou,{bubbles:!0,composed:!0})),e.uid=t}))])),o.map(([e,t,n])=>{let i,s=e?.dialog;if(s)i=s.parentElement;else{i=t||n.options.targetContainer||document.querySelector("schmancy-theme")||document.body;const a=n.uid;s=n.type==="confirm"?document.createElement("confirm-dialog"):document.createElement("schmancy-dialog"),s.setAttribute("uid",a),i.appendChild(s)}return{dialog:s,target:n,targetContainer:i}}),o.tap(({dialog:e,target:t,targetContainer:n})=>{e||((e=t.type==="confirm"?document.createElement("confirm-dialog"):document.createElement("schmancy-dialog")).setAttribute("uid",t.uid),n.appendChild(e))}),o.map(({dialog:e,target:t,targetContainer:n})=>(e||(e=n.querySelector(`[uid="${t.uid}"]`)),{dialog:e,target:t,targetContainer:n})),o.tap(({dialog:e,target:t})=>{if(t.type==="confirm"){const n=e,i=t.options;if(i.title&&(n.title=i.title),i.subtitle&&(n.subtitle=i.subtitle),i.message&&(n.message=i.message),i.confirmText&&(n.confirmText=i.confirmText),i.cancelText&&(n.cancelText=i.cancelText),i.variant&&(n.variant=i.variant),i.confirmColor&&(n.confirmColor=i.confirmColor),i.width&&n.style.setProperty("--dialog-width",i.width),i.content){const s=document.createElement("div");if(s.slot="content",typeof i.content=="function"){const a=i.content();a instanceof HTMLElement?s.appendChild(a):d.render(a,s)}else i.content instanceof HTMLElement?s.appendChild(i.content):d.render(i.content,s);n.appendChild(s)}this.activeDialogs.push(n)}else{if(t.content){const n=document.createElement("div");if(n.style.height="100%",n.style.width="100%",n.classList.add("schmancy-dialog-content-container"),typeof t.content=="function"){const i=t.content();i instanceof HTMLElement?n.appendChild(i):d.render(i,n)}else t.content instanceof HTMLElement?n.appendChild(t.content):d.render(t.content,n);e.appendChild(n)}t.options.width&&e.style.setProperty("--dialog-width",t.options.width),this.activeRawDialogs.push(e)}}),o.tap(({dialog:e,target:t})=>{const n=t.options.position||this.getCenteredPosition();if(e.show(n).then(i=>{if(t.resolve&&t.resolve(i),t.type==="confirm"){const s=this.activeDialogs.indexOf(e);s!==-1&&this.activeDialogs.splice(s,1);const a=e.querySelector('[slot="content"]');a&&e.removeChild(a)}else{const s=this.activeRawDialogs.indexOf(e);s!==-1&&this.activeRawDialogs.splice(s,1);const a=e.querySelector(".schmancy-dialog-content-container");a&&a.parentNode&&a.parentNode.removeChild(a)}e.parentElement&&e.parentElement.removeChild(e)}).catch(i=>{t.reject&&t.reject(i)}),t.options.onConfirm){const i=s=>{t.options.onConfirm(),e.removeEventListener("confirm",i)};e.addEventListener("confirm",i)}if(t.options.onCancel){const i=s=>{t.options.onCancel(),e.removeEventListener("cancel",i)};e.addEventListener("cancel",i)}})).subscribe()}setupDialogDismissLogic(){this.dismissSubject.pipe(o.switchMap(e=>o.forkJoin([o.fromEvent(window,p).pipe(o.takeUntil(o.timer(100)),o.map(t=>t.detail),o.defaultIfEmpty(void 0)),o.of(e).pipe(o.tap(()=>{window.dispatchEvent(new CustomEvent(m,{detail:{uid:e},bubbles:!0,composed:!0}))}))])),o.tap(([e])=>{if(e?.dialog){e.dialog.hide(!1);const t=this.activeDialogs.indexOf(e.dialog);t!==-1&&this.activeDialogs.splice(t,1);const n=this.activeRawDialogs.indexOf(e.dialog);n!==-1&&this.activeRawDialogs.splice(n,1),e.dialog.parentElement&&e.dialog.parentElement.removeChild(e.dialog)}})).subscribe()}confirm(e){return new Promise((t,n)=>{const i={...l.DEFAULT_OPTIONS,...e};i.position||(i.position=this.getCenteredPosition());const s={options:i,type:"confirm",content:i.content,resolve:t,reject:n};this.dialogSubject.next(s)})}component(e,t={}){return new Promise((n,i)=>{t.position||(t.position=this.getCenteredPosition());const s={options:t,type:"component",content:e,resolve:n,reject:i};this.dialogSubject.next(s)})}dismiss(){if(this.activeRawDialogs.length>0){const e=this.activeRawDialogs[this.activeRawDialogs.length-1].getAttribute("uid");if(e)return this.dismissSubject.next(e),!0}if(this.activeDialogs.length>0){const e=this.activeDialogs[this.activeDialogs.length-1].getAttribute("uid");if(e)return this.dismissSubject.next(e),!0}return!1}close(){return this.dismiss()}ask(e,t){return this.confirm({message:e,position:t})}danger(e){return this.confirm({...e,variant:"danger"})}getCenteredPosition(){return{x:window.innerWidth/2,y:window.innerHeight/2}}};l.DEFAULT_OPTIONS={title:void 0,subtitle:void 0,confirmText:void 0,cancelText:void 0,variant:"default",width:"360px"};let c=l;const h={confirm:r=>c.getInstance().confirm(r),ask:(r,e)=>c.getInstance().ask(r,e),danger:r=>c.getInstance().danger(r),component:(r,e)=>c.getInstance().component(r,e),simple:(r,e)=>c.getInstance().component(r,e),dismiss:()=>c.getInstance().dismiss(),close:()=>c.getInstance().close()};exports.$dialog=h,exports.DialogHereMorty=p,exports.DialogService=c,exports.DialogWhereAreYouRicky=m;
2
- //# sourceMappingURL=dialog-service-DS-aEjlX.cjs.map
1
+ "use strict";const d=require("lit"),o=require("rxjs"),g=require("./theme.component-DkcM8QzH.cjs"),m="are-you-there-dialog",p="yes-dialog-here",l=class l{constructor(){this.activeDialogs=[],this.activeRawDialogs=[],this.dialogSubject=new o.Subject,this.dismissSubject=new o.Subject,this.setupDialogOpeningLogic(),this.setupDialogDismissLogic()}static getInstance(){return l.instance||(l.instance=new l),l.instance}setupDialogOpeningLogic(){this.dialogSubject.pipe(o.switchMap(e=>o.forkJoin([o.fromEvent(window,p).pipe(o.takeUntil(o.timer(50)),o.map(t=>t.detail),o.defaultIfEmpty(void 0)),o.fromEvent(window,g.ThemeHereIAm).pipe(o.takeUntil(o.timer(50)),o.map(t=>t.detail.theme),o.defaultIfEmpty(void 0)),o.of(e).pipe(o.tap(()=>{const t=e.type==="confirm"?`confirm-dialog-${Date.now()}-${Math.random().toString(36).substring(2,9)}`:`dialog-${Date.now()}-${Math.random().toString(36).substring(2,9)}`;window.dispatchEvent(new CustomEvent(m,{detail:{uid:t},bubbles:!0,composed:!0})),window.dispatchEvent(new CustomEvent(g.ThemeWhereAreYou,{bubbles:!0,composed:!0})),e.uid=t}))])),o.map(([e,t,n])=>{let i,s=e?.dialog;if(s)i=s.parentElement;else{i=t||n.options.targetContainer||document.querySelector("schmancy-theme")||document.body;const a=n.uid;s=n.type==="confirm"?document.createElement("confirm-dialog"):document.createElement("schmancy-dialog"),s.setAttribute("uid",a),i.appendChild(s)}return{dialog:s,target:n,targetContainer:i}}),o.tap(({dialog:e,target:t,targetContainer:n})=>{e||((e=t.type==="confirm"?document.createElement("confirm-dialog"):document.createElement("schmancy-dialog")).setAttribute("uid",t.uid),n.appendChild(e))}),o.map(({dialog:e,target:t,targetContainer:n})=>(e||(e=n.querySelector(`[uid="${t.uid}"]`)),{dialog:e,target:t,targetContainer:n})),o.tap(({dialog:e,target:t})=>{if(t.type==="confirm"){const n=e,i=t.options;if(i.title&&(n.title=i.title),i.subtitle&&(n.subtitle=i.subtitle),i.message&&(n.message=i.message),i.confirmText&&(n.confirmText=i.confirmText),i.cancelText&&(n.cancelText=i.cancelText),i.variant&&(n.variant=i.variant),i.confirmColor&&(n.confirmColor=i.confirmColor),i.width&&n.style.setProperty("--dialog-width",i.width),i.content){const s=document.createElement("div");if(s.slot="content",typeof i.content=="function"){const a=i.content();a instanceof HTMLElement?s.appendChild(a):d.render(a,s)}else i.content instanceof HTMLElement?s.appendChild(i.content):d.render(i.content,s);n.appendChild(s)}this.activeDialogs.push(n)}else{if(t.content){const n=document.createElement("div");if(n.style.height="100%",n.style.width="100%",n.classList.add("schmancy-dialog-content-container"),typeof t.content=="function"){const i=t.content();i instanceof HTMLElement?n.appendChild(i):d.render(i,n)}else t.content instanceof HTMLElement?n.appendChild(t.content):d.render(t.content,n);e.appendChild(n)}t.options.width&&e.style.setProperty("--dialog-width",t.options.width),this.activeRawDialogs.push(e)}}),o.tap(({dialog:e,target:t})=>{const n=t.options.position||this.getCenteredPosition();if(e.show(n).then(i=>{if(t.resolve&&t.resolve(i),t.type==="confirm"){const s=this.activeDialogs.indexOf(e);s!==-1&&this.activeDialogs.splice(s,1);const a=e.querySelector('[slot="content"]');a&&e.removeChild(a)}else{const s=this.activeRawDialogs.indexOf(e);s!==-1&&this.activeRawDialogs.splice(s,1);const a=e.querySelector(".schmancy-dialog-content-container");a&&a.parentNode&&a.parentNode.removeChild(a)}e.parentElement&&e.parentElement.removeChild(e)}).catch(i=>{t.reject&&t.reject(i)}),t.options.onConfirm){const i=s=>{t.options.onConfirm(),e.removeEventListener("confirm",i)};e.addEventListener("confirm",i)}if(t.options.onCancel){const i=s=>{t.options.onCancel(),e.removeEventListener("cancel",i)};e.addEventListener("cancel",i)}})).subscribe()}setupDialogDismissLogic(){this.dismissSubject.pipe(o.switchMap(e=>o.forkJoin([o.fromEvent(window,p).pipe(o.takeUntil(o.timer(100)),o.map(t=>t.detail),o.defaultIfEmpty(void 0)),o.of(e).pipe(o.tap(()=>{window.dispatchEvent(new CustomEvent(m,{detail:{uid:e},bubbles:!0,composed:!0}))}))])),o.tap(([e])=>{if(e?.dialog){e.dialog.hide(!1);const t=this.activeDialogs.indexOf(e.dialog);t!==-1&&this.activeDialogs.splice(t,1);const n=this.activeRawDialogs.indexOf(e.dialog);n!==-1&&this.activeRawDialogs.splice(n,1),e.dialog.parentElement&&e.dialog.parentElement.removeChild(e.dialog)}})).subscribe()}confirm(e){return new Promise((t,n)=>{const i={...l.DEFAULT_OPTIONS,...e};i.position||(i.position=this.getCenteredPosition());const s={options:i,type:"confirm",content:i.content,resolve:t,reject:n};this.dialogSubject.next(s)})}component(e,t={}){return new Promise((n,i)=>{t.position||(t.position=this.getCenteredPosition());const s={options:t,type:"component",content:e,resolve:n,reject:i};this.dialogSubject.next(s)})}dismiss(){if(this.activeRawDialogs.length>0){const e=this.activeRawDialogs[this.activeRawDialogs.length-1].getAttribute("uid");if(e)return this.dismissSubject.next(e),!0}if(this.activeDialogs.length>0){const e=this.activeDialogs[this.activeDialogs.length-1].getAttribute("uid");if(e)return this.dismissSubject.next(e),!0}return!1}close(){return this.dismiss()}ask(e,t){return this.confirm({message:e,position:t})}danger(e){return this.confirm({...e,variant:"danger"})}getCenteredPosition(){return{x:window.innerWidth/2,y:window.innerHeight/2}}};l.DEFAULT_OPTIONS={title:void 0,subtitle:void 0,confirmText:void 0,cancelText:void 0,variant:"default",width:"360px"};let c=l;const h={confirm:r=>c.getInstance().confirm(r),ask:(r,e)=>c.getInstance().ask(r,e),danger:r=>c.getInstance().danger(r),component:(r,e)=>c.getInstance().component(r,e),simple:(r,e)=>c.getInstance().component(r,e),dismiss:()=>c.getInstance().dismiss(),close:()=>c.getInstance().close()};exports.$dialog=h,exports.DialogHereMorty=p,exports.DialogService=c,exports.DialogWhereAreYouRicky=m;
2
+ //# sourceMappingURL=dialog-service-Wna1JO09.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dialog-service-Wna1JO09.cjs","sources":["../src/dialog/dialog-events.ts","../src/dialog/dialog-service.ts"],"sourcesContent":["// Dialog discovery event constants\r\nexport const DialogWhereAreYouRicky = 'are-you-there-dialog'\r\nexport const DialogHereMorty = 'yes-dialog-here'\r\n\r\n// Event interfaces\r\nexport interface DialogWhereAreYouRickyEvent extends CustomEvent {\r\n detail: {\r\n uid: string\r\n }\r\n}\r\n\r\nexport interface DialogHereMortyEvent extends CustomEvent {\r\n detail: {\r\n dialog: any // Will be schmancy-dialog instance\r\n theme?: any // Will be schmancy-theme instance\r\n }\r\n}","import { render, TemplateResult } from 'lit'\nimport { defaultIfEmpty, forkJoin, fromEvent, map, of, Subject, switchMap, takeUntil, tap, timer } from 'rxjs'\nimport { ThemeHereIAm, ThemeHereIAmEvent, ThemeWhereAreYou } from '../theme/theme.component'\nimport { ConfirmDialog } from './dailog'\nimport { DialogHereMorty, DialogHereMortyEvent, DialogWhereAreYouRicky } from './dialog-events'\n\n/**\n * Dialog service options interface with component support\n */\nexport interface DialogOptions {\n\ttitle?: string\n\tsubtitle?: string\n\tmessage?: string\n\tconfirmText?: string\n\tcancelText?: string\n\tvariant?: 'default' | 'danger'\n\tconfirmColor?: 'primary' | 'error' | 'warning' | 'success' // Button color for confirm action\n\tposition?: { x: number; y: number } | MouseEvent | TouchEvent\n\n\t// New options for component rendering\n\tcontent?: TemplateResult | HTMLElement | (() => HTMLElement | TemplateResult)\n\twidth?: string\n\tonConfirm?: () => void\n\tonCancel?: () => void\n\thideActions?: boolean // Set to true to hide all buttons and title\n\ttargetContainer?: HTMLElement // Container to append dialog to (defaults to document.body)\n}\n\ninterface DialogTarget {\n\toptions: DialogOptions\n\ttype: 'confirm' | 'component'\n\tcontent?: TemplateResult | HTMLElement | (() => HTMLElement | TemplateResult)\n\tresolve?: (value: boolean) => void\n\treject?: (reason?: any) => void\n}\n\n/**\n * Dialog service for centralized dialog management.\n * Provides a simple API for showing dialogs with optional custom components.\n */\nexport class DialogService {\n\tprivate static instance: DialogService\n\n\t// Default dialog options\n\tprivate static DEFAULT_OPTIONS: Partial<DialogOptions> = {\n\t\ttitle: undefined,\n\t\tsubtitle: undefined,\n\t\tconfirmText: undefined,\n\t\tcancelText: undefined,\n\t\tvariant: 'default',\n\t\twidth: '360px',\n\t}\n\n\t// Track active dialogs to handle dismissing the most recent one\n\tprivate activeDialogs: ConfirmDialog[] = []\n\t\n\t// Track component dialogs (schmancy-dialog instances)\n\tprivate activeRawDialogs: any[] = []\n\t\n\t// Subject for dialog opening requests\n\tprivate dialogSubject = new Subject<DialogTarget>()\n\t\n\t// Subject for dialog dismissal requests\n\tprivate dismissSubject = new Subject<string>()\n\n\t// Private constructor for singleton pattern\n\tprivate constructor() {\n\t\tthis.setupDialogOpeningLogic()\n\t\tthis.setupDialogDismissLogic()\n\t}\n\n\t/**\n\t * Get the singleton instance\n\t */\n\tpublic static getInstance(): DialogService {\n\t\tif (!DialogService.instance) {\n\t\t\tDialogService.instance = new DialogService()\n\t\t}\n\t\treturn DialogService.instance\n\t}\n\t\n\t/**\n\t * Sets up the main dialog opening logic using RxJS pipes\n\t */\n\tprivate setupDialogOpeningLogic() {\n\t\tthis.dialogSubject\n\t\t\t.pipe(\n\t\t\t\tswitchMap(target =>\n\t\t\t\t\tforkJoin([\n\t\t\t\t\t\t// First ask for existing dialog\n\t\t\t\t\t\tfromEvent<DialogHereMortyEvent>(window, DialogHereMorty).pipe(\n\t\t\t\t\t\t\ttakeUntil(timer(50)),\n\t\t\t\t\t\t\tmap(e => e.detail),\n\t\t\t\t\t\t\tdefaultIfEmpty(undefined),\n\t\t\t\t\t\t),\n\t\t\t\t\t\t// Then find theme container\n\t\t\t\t\t\tfromEvent<ThemeHereIAmEvent>(window, ThemeHereIAm).pipe(\n\t\t\t\t\t\t\ttakeUntil(timer(50)),\n\t\t\t\t\t\t\tmap(e => e.detail.theme),\n\t\t\t\t\t\t\tdefaultIfEmpty(undefined),\n\t\t\t\t\t\t),\n\t\t\t\t\t\tof(target).pipe(\n\t\t\t\t\t\t\ttap(() => {\n\t\t\t\t\t\t\t\tconst uid = target.type === 'confirm' \n\t\t\t\t\t\t\t\t\t? `confirm-dialog-${Date.now()}-${Math.random().toString(36).substring(2, 9)}`\n\t\t\t\t\t\t\t\t\t: `dialog-${Date.now()}-${Math.random().toString(36).substring(2, 9)}`\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t// First ask for existing dialog\n\t\t\t\t\t\t\t\twindow.dispatchEvent(\n\t\t\t\t\t\t\t\t\tnew CustomEvent(DialogWhereAreYouRicky, {\n\t\t\t\t\t\t\t\t\t\tdetail: { uid },\n\t\t\t\t\t\t\t\t\t\tbubbles: true,\n\t\t\t\t\t\t\t\t\t\tcomposed: true,\n\t\t\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t// Then ask for theme container\n\t\t\t\t\t\t\t\twindow.dispatchEvent(\n\t\t\t\t\t\t\t\t\tnew CustomEvent(ThemeWhereAreYou, {\n\t\t\t\t\t\t\t\t\t\tbubbles: true,\n\t\t\t\t\t\t\t\t\t\tcomposed: true,\n\t\t\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t// Store uid in target for later use\n\t\t\t\t\t\t\t\t;(target as any).uid = uid\n\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t),\n\t\t\t\t\t]),\n\t\t\t\t),\n\t\t\t\tmap(([existingDialog, theme, target]) => {\n\t\t\t\t\tlet dialog = existingDialog?.dialog\n\t\t\t\t\tlet targetContainer: HTMLElement\n\t\t\t\t\t\n\t\t\t\t\tif (dialog) {\n\t\t\t\t\t\t// Use existing dialog\n\t\t\t\t\t\ttargetContainer = dialog.parentElement as HTMLElement\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// Determine container - use theme from discovery or fallback\n\t\t\t\t\t\ttargetContainer = theme || target.options.targetContainer || (document.querySelector('schmancy-theme') as HTMLElement) || document.body\n\t\t\t\t\t\t\n\t\t\t\t\t\t// Create appropriate dialog type\n\t\t\t\t\t\tconst uid = (target as any).uid\n\t\t\t\t\t\t\n\t\t\t\t\t\tif (target.type === 'confirm') {\n\t\t\t\t\t\t\tdialog = document.createElement('confirm-dialog') as ConfirmDialog\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tdialog = document.createElement('schmancy-dialog')\n\t\t\t\t\t\t}\n\t\t\t\t\t\t\n\t\t\t\t\t\tdialog.setAttribute('uid', uid)\n\t\t\t\t\t\ttargetContainer.appendChild(dialog)\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\treturn { dialog, target, targetContainer }\n\t\t\t\t}),\n\t\t\t\ttap(({ dialog, target, targetContainer }) => {\n\t\t\t\t\tif (!dialog) {\n\t\t\t\t\t\t// Create appropriate dialog type\n\t\t\t\t\t\tif (target.type === 'confirm') {\n\t\t\t\t\t\t\tdialog = document.createElement('confirm-dialog') as ConfirmDialog\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tdialog = document.createElement('schmancy-dialog')\n\t\t\t\t\t\t}\n\t\t\t\t\t\t\n\t\t\t\t\t\tdialog.setAttribute('uid', (target as any).uid)\n\t\t\t\t\t\ttargetContainer.appendChild(dialog)\n\t\t\t\t\t}\n\t\t\t\t}),\n\t\t\t\tmap(({ dialog, target, targetContainer }) => {\n\t\t\t\t\t// Return the actual dialog element that was created\n\t\t\t\t\tif (!dialog) {\n\t\t\t\t\t\tdialog = targetContainer.querySelector(`[uid=\"${(target as any).uid}\"]`)\n\t\t\t\t\t}\n\t\t\t\t\treturn { dialog, target, targetContainer }\n\t\t\t\t}),\n\t\t\t\ttap(({ dialog, target }) => {\n\t\t\t\t\tif (target.type === 'confirm') {\n\t\t\t\t\t\t// Configure confirm dialog\n\t\t\t\t\t\tconst confirmDialog = dialog as ConfirmDialog\n\t\t\t\t\t\tconst options = target.options\n\t\t\t\t\t\t\n\t\t\t\t\t\tif (options.title) confirmDialog.title = options.title\n\t\t\t\t\t\tif (options.subtitle) confirmDialog.subtitle = options.subtitle\n\t\t\t\t\t\tif (options.message) confirmDialog.message = options.message\n\t\t\t\t\t\tif (options.confirmText) confirmDialog.confirmText = options.confirmText\n\t\t\t\t\t\tif (options.cancelText) confirmDialog.cancelText = options.cancelText\n\t\t\t\t\t\tif (options.variant) confirmDialog.variant = options.variant\n\t\t\t\t\t\tif (options.confirmColor) confirmDialog.confirmColor = options.confirmColor\n\t\t\t\t\t\tif (options.width) confirmDialog.style.setProperty('--dialog-width', options.width)\n\t\t\t\t\t\t\n\t\t\t\t\t\t// Handle custom content if provided\n\t\t\t\t\t\tif (options.content) {\n\t\t\t\t\t\t\tconst contentContainer = document.createElement('div')\n\t\t\t\t\t\t\tcontentContainer.slot = 'content'\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tif (typeof options.content === 'function') {\n\t\t\t\t\t\t\t\tconst result = options.content()\n\t\t\t\t\t\t\t\tif (result instanceof HTMLElement) {\n\t\t\t\t\t\t\t\t\tcontentContainer.appendChild(result)\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\trender(result, contentContainer)\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} else if (options.content instanceof HTMLElement) {\n\t\t\t\t\t\t\t\tcontentContainer.appendChild(options.content)\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\trender(options.content, contentContainer)\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tconfirmDialog.appendChild(contentContainer)\n\t\t\t\t\t\t}\n\t\t\t\t\t\t\n\t\t\t\t\t\t// Add to active dialogs\n\t\t\t\t\t\tthis.activeDialogs.push(confirmDialog)\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// Configure component dialog\n\t\t\t\t\t\tif (target.content) {\n\t\t\t\t\t\t\tconst directContentContainer = document.createElement('div')\n\t\t\t\t\t\t\tdirectContentContainer.style.height = '100%'\n\t\t\t\t\t\t\tdirectContentContainer.style.width = '100%'\n\t\t\t\t\t\t\tdirectContentContainer.classList.add('schmancy-dialog-content-container')\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t// Render the content directly\n\t\t\t\t\t\t\tif (typeof target.content === 'function') {\n\t\t\t\t\t\t\t\tconst result = target.content()\n\t\t\t\t\t\t\t\tif (result instanceof HTMLElement) {\n\t\t\t\t\t\t\t\t\tdirectContentContainer.appendChild(result)\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\trender(result, directContentContainer)\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} else if (target.content instanceof HTMLElement) {\n\t\t\t\t\t\t\t\tdirectContentContainer.appendChild(target.content)\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\trender(target.content, directContentContainer)\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tdialog.appendChild(directContentContainer)\n\t\t\t\t\t\t}\n\t\t\t\t\t\t\n\t\t\t\t\t\t// Set width from options\n\t\t\t\t\t\tif (target.options.width) {\n\t\t\t\t\t\t\tdialog.style.setProperty('--dialog-width', target.options.width)\n\t\t\t\t\t\t}\n\t\t\t\t\t\t\n\t\t\t\t\t\t// Add to active raw dialogs\n\t\t\t\t\t\tthis.activeRawDialogs.push(dialog)\n\t\t\t\t\t}\n\t\t\t\t}),\n\t\t\t\ttap(({ dialog, target }) => {\n\t\t\t\t\t// Show dialog and handle promise resolution\n\t\t\t\t\tconst position = target.options.position || this.getCenteredPosition()\n\t\t\t\t\t\n\t\t\t\t\tdialog.show(position).then((result: boolean) => {\n\t\t\t\t\t\tif (target.resolve) {\n\t\t\t\t\t\t\ttarget.resolve(result)\n\t\t\t\t\t\t}\n\t\t\t\t\t\t\n\t\t\t\t\t\t// Cleanup\n\t\t\t\t\t\tif (target.type === 'confirm') {\n\t\t\t\t\t\t\tconst index = this.activeDialogs.indexOf(dialog)\n\t\t\t\t\t\t\tif (index !== -1) {\n\t\t\t\t\t\t\t\tthis.activeDialogs.splice(index, 1)\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t// Clean up content\n\t\t\t\t\t\t\tconst contentEl = dialog.querySelector('[slot=\"content\"]')\n\t\t\t\t\t\t\tif (contentEl) {\n\t\t\t\t\t\t\t\tdialog.removeChild(contentEl)\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tconst index = this.activeRawDialogs.indexOf(dialog)\n\t\t\t\t\t\t\tif (index !== -1) {\n\t\t\t\t\t\t\t\tthis.activeRawDialogs.splice(index, 1)\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t// Clean up content\n\t\t\t\t\t\t\tconst contentContainer = dialog.querySelector('.schmancy-dialog-content-container')\n\t\t\t\t\t\t\tif (contentContainer && contentContainer.parentNode) {\n\t\t\t\t\t\t\t\tcontentContainer.parentNode.removeChild(contentContainer)\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\t\n\t\t\t\t\t\t// Remove dialog from DOM\n\t\t\t\t\t\tif (dialog.parentElement) {\n\t\t\t\t\t\t\tdialog.parentElement.removeChild(dialog)\n\t\t\t\t\t\t}\n\t\t\t\t\t}).catch((error: any) => {\n\t\t\t\t\t\tif (target.reject) {\n\t\t\t\t\t\t\ttarget.reject(error)\n\t\t\t\t\t\t}\n\t\t\t\t\t})\n\t\t\t\t\t\n\t\t\t\t\t// Set up event listeners for callbacks\n\t\t\t\t\tif (target.options.onConfirm) {\n\t\t\t\t\t\tconst onConfirm = (_e: Event) => {\n\t\t\t\t\t\t\ttarget.options.onConfirm!()\n\t\t\t\t\t\t\tdialog.removeEventListener('confirm', onConfirm)\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdialog.addEventListener('confirm', onConfirm)\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\tif (target.options.onCancel) {\n\t\t\t\t\t\tconst onCancel = (_e: Event) => {\n\t\t\t\t\t\t\ttarget.options.onCancel!()\n\t\t\t\t\t\t\tdialog.removeEventListener('cancel', onCancel)\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdialog.addEventListener('cancel', onCancel)\n\t\t\t\t\t}\n\t\t\t\t}),\n\t\t\t)\n\t\t\t.subscribe()\n\t}\n\t\n\t/**\n\t * Sets up the dialog dismissal logic\n\t */\n\tprivate setupDialogDismissLogic() {\n\t\tthis.dismissSubject\n\t\t\t.pipe(\n\t\t\t\tswitchMap(uid =>\n\t\t\t\t\tforkJoin([\n\t\t\t\t\t\tfromEvent<DialogHereMortyEvent>(window, DialogHereMorty).pipe(\n\t\t\t\t\t\t\ttakeUntil(timer(100)),\n\t\t\t\t\t\t\tmap(e => e.detail),\n\t\t\t\t\t\t\tdefaultIfEmpty(undefined),\n\t\t\t\t\t\t),\n\t\t\t\t\t\tof(uid).pipe(\n\t\t\t\t\t\t\ttap(() => {\n\t\t\t\t\t\t\t\twindow.dispatchEvent(\n\t\t\t\t\t\t\t\t\tnew CustomEvent(DialogWhereAreYouRicky, { \n\t\t\t\t\t\t\t\t\t\tdetail: { uid },\n\t\t\t\t\t\t\t\t\t\tbubbles: true,\n\t\t\t\t\t\t\t\t\t\tcomposed: true,\n\t\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t),\n\t\t\t\t\t]),\n\t\t\t\t),\n\t\t\t\ttap(([response]) => {\n\t\t\t\t\tif (response?.dialog) {\n\t\t\t\t\t\t// Hide the dialog\n\t\t\t\t\t\tresponse.dialog.hide(false)\n\t\t\t\t\t\t\n\t\t\t\t\t\t// Remove from tracking arrays\n\t\t\t\t\t\tconst confirmIndex = this.activeDialogs.indexOf(response.dialog)\n\t\t\t\t\t\tif (confirmIndex !== -1) {\n\t\t\t\t\t\t\tthis.activeDialogs.splice(confirmIndex, 1)\n\t\t\t\t\t\t}\n\t\t\t\t\t\t\n\t\t\t\t\t\tconst rawIndex = this.activeRawDialogs.indexOf(response.dialog)\n\t\t\t\t\t\tif (rawIndex !== -1) {\n\t\t\t\t\t\t\tthis.activeRawDialogs.splice(rawIndex, 1)\n\t\t\t\t\t\t}\n\t\t\t\t\t\t\n\t\t\t\t\t\t// Remove dialog from DOM immediately\n\t\t\t\t\t\tif (response.dialog.parentElement) {\n\t\t\t\t\t\t\tresponse.dialog.parentElement.removeChild(response.dialog)\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}),\n\t\t\t)\n\t\t\t.subscribe()\n\t}\n\n\t/**\n\t * Show a confirmation dialog\n\t * @returns Promise that resolves to true (confirm) or false (cancel)\n\t */\n\tpublic confirm(options: DialogOptions): Promise<boolean> {\n\t\treturn new Promise((resolve, reject) => {\n\t\t\t// Apply default options\n\t\t\tconst completeOptions = {\n\t\t\t\t...DialogService.DEFAULT_OPTIONS,\n\t\t\t\t...options,\n\t\t\t}\n\n\t\t\t// If no position is provided, center the dialog\n\t\t\tif (!completeOptions.position) {\n\t\t\t\tcompleteOptions.position = this.getCenteredPosition()\n\t\t\t}\n\n\t\t\t// Create dialog target and emit to subject\n\t\t\tconst target: DialogTarget = {\n\t\t\t\toptions: completeOptions,\n\t\t\t\ttype: 'confirm',\n\t\t\t\tcontent: completeOptions.content,\n\t\t\t\tresolve,\n\t\t\t\treject,\n\t\t\t}\n\n\t\t\tthis.dialogSubject.next(target)\n\t\t})\n\t}\n\n\t/**\n\t * Show a dialog with custom component content\n\t * Always renders content directly without any headers or action buttons\n\t * @returns Promise that resolves when dialog is closed\n\t */\n\tpublic component(\n\t\tcontent: TemplateResult | HTMLElement | (() => HTMLElement | TemplateResult),\n\t\toptions: Omit<DialogOptions, 'content' | 'message'> = {},\n\t): Promise<boolean> {\n\t\treturn new Promise((resolve, reject) => {\n\t\t\t// If no position is provided, center the dialog\n\t\t\tif (!options.position) {\n\t\t\t\toptions.position = this.getCenteredPosition()\n\t\t\t}\n\n\t\t\t// Create dialog target and emit to subject\n\t\t\tconst target: DialogTarget = {\n\t\t\t\toptions: options as DialogOptions,\n\t\t\t\ttype: 'component',\n\t\t\t\tcontent,\n\t\t\t\tresolve,\n\t\t\t\treject,\n\t\t\t}\n\n\t\t\tthis.dialogSubject.next(target)\n\t\t})\n\t}\n\n\t/**\n\t * Dismiss the most recently opened dialog (either confirm or component type)\n\t * @returns true if a dialog was dismissed, false if no dialogs were open\n\t */\n\tpublic dismiss(): boolean {\n\t\t// Try component dialog first (they're more likely to be on top)\n\t\tif (this.activeRawDialogs.length > 0) {\n\t\t\t// Get the most recently opened raw dialog (last in the array)\n\t\t\tconst dialog = this.activeRawDialogs[this.activeRawDialogs.length - 1]\n\t\t\tconst uid = dialog.getAttribute('uid')\n\t\t\t\n\t\t\tif (uid) {\n\t\t\t\tthis.dismissSubject.next(uid)\n\t\t\t\treturn true\n\t\t\t}\n\t\t}\n\t\t\n\t\t// Fall back to confirm dialogs\n\t\tif (this.activeDialogs.length > 0) {\n\t\t\t// Get the most recently opened dialog (last in the array)\n\t\t\tconst dialog = this.activeDialogs[this.activeDialogs.length - 1]\n\t\t\tconst uid = dialog.getAttribute('uid')\n\t\t\t\n\t\t\tif (uid) {\n\t\t\t\tthis.dismissSubject.next(uid)\n\t\t\t\treturn true\n\t\t\t}\n\t\t}\n\n\t\treturn false\n\t}\n\n\t/**\n\t * Close the most recently opened dialog (alias for dismiss)\n\t * @returns true if a dialog was closed, false if no dialogs were open\n\t */\n\tpublic close(): boolean {\n\t\treturn this.dismiss()\n\t}\n\n\t/**\n\t * Show a simple confirmation dialog with just a message\n\t * @returns Promise that resolves to true (confirm) or false (cancel)\n\t */\n\tpublic ask(message: string, event?: MouseEvent | TouchEvent): Promise<boolean> {\n\t\treturn this.confirm({\n\t\t\tmessage,\n\t\t\tposition: event,\n\t\t})\n\t}\n\n\t/**\n\t * Show a danger confirmation dialog\n\t * @returns Promise that resolves to true (confirm) or false (cancel)\n\t */\n\tpublic danger(options: Omit<DialogOptions, 'variant'>): Promise<boolean> {\n\t\treturn this.confirm({\n\t\t\t...options,\n\t\t\tvariant: 'danger',\n\t\t})\n\t}\n\n\t/**\n\t * Get a centered position for the dialog\n\t */\n\tprivate getCenteredPosition(): { x: number; y: number } {\n\t\treturn {\n\t\t\tx: window.innerWidth / 2,\n\t\t\ty: window.innerHeight / 2,\n\t\t}\n\t}\n\n}\n\n/**\n * Global dialog utility - provides a quick way to show dialogs\n */\nexport const $dialog = {\n\t/**\n\t * Show a confirmation dialog\n\t * @returns Promise that resolves to true (confirm) or false (cancel)\n\t */\n\tconfirm: (options: DialogOptions): Promise<boolean> => {\n\t\treturn DialogService.getInstance().confirm(options)\n\t},\n\n\t/**\n\t * Show a simple confirmation dialog with just a message\n\t * @returns Promise that resolves to true (confirm) or false (cancel)\n\t */\n\task: (message: string, event?: MouseEvent | TouchEvent): Promise<boolean> => {\n\t\treturn DialogService.getInstance().ask(message, event)\n\t},\n\n\t/**\n\t * Show a danger confirmation dialog\n\t * @returns Promise that resolves to true (confirm) or false (cancel)\n\t */\n\tdanger: (options: Omit<DialogOptions, 'variant'>): Promise<boolean> => {\n\t\treturn DialogService.getInstance().danger(options)\n\t},\n\n\t/**\n\t * Show a dialog with custom component content\n\t * @returns Promise that resolves when dialog is closed\n\t */\n\tcomponent: (\n\t\tcontent: TemplateResult | HTMLElement | (() => HTMLElement | TemplateResult),\n\t\toptions?: Omit<DialogOptions, 'content' | 'message'>,\n\t): Promise<boolean> => {\n\t\treturn DialogService.getInstance().component(content, options)\n\t},\n\n\t/**\n\t * Show a simple dialog without title or actions, just content\n\t * This is an alias for component() since all component dialogs are now simple by design\n\t * @returns Promise that resolves when dialog is closed\n\t */\n\tsimple: (\n\t\tcontent: TemplateResult | HTMLElement | (() => HTMLElement | TemplateResult),\n\t\toptions?: Omit<DialogOptions, 'content' | 'message' | 'title' | 'confirmText' | 'cancelText'>,\n\t): Promise<boolean> => {\n\t\treturn DialogService.getInstance().component(content, options)\n\t},\n\n\t/**\n\t * Dismiss the most recently opened dialog\n\t * @returns true if a dialog was dismissed, false if no dialogs were open\n\t */\n\tdismiss: (): boolean => {\n\t\treturn DialogService.getInstance().dismiss()\n\t},\n\n\t/**\n\t * Close the most recently opened dialog (alias for dismiss)\n\t * @returns true if a dialog was closed, false if no dialogs were open\n\t */\n\tclose: (): boolean => {\n\t\treturn DialogService.getInstance().close()\n\t},\n}\n\nexport default DialogService"],"names":["DialogWhereAreYouRicky","DialogHereMorty","DialogService","constructor","this","activeDialogs","activeRawDialogs","dialogSubject","Subject","dismissSubject","setupDialogOpeningLogic","setupDialogDismissLogic","getInstance","instance","pipe","switchMap","forkJoin","fromEvent","window","takeUntil","timer","map","e","detail","defaultIfEmpty","ThemeHereIAm","theme","of","target","tap","uid","type","Date","now","Math","random","toString","substring","dispatchEvent","CustomEvent","bubbles","composed","ThemeWhereAreYou","existingDialog","targetContainer","dialog","parentElement","options","document","querySelector","body","createElement","setAttribute","appendChild","confirmDialog","title","subtitle","message","confirmText","cancelText","variant","confirmColor","width","style","setProperty","content","contentContainer","slot","result","HTMLElement","render","push","directContentContainer","height","classList","add","position","getCenteredPosition","show","then","resolve","index","indexOf","splice","contentEl","removeChild","parentNode","catch","error","reject","onConfirm","_e","removeEventListener","addEventListener","onCancel","subscribe","response","hide","confirmIndex","rawIndex","Promise","completeOptions","DEFAULT_OPTIONS","next","length","getAttribute","close","dismiss","event","confirm","x","innerWidth","y","innerHeight","_s","$dialog","ask","danger","component","simple"],"mappings":"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"}
package/dist/dialog.cjs CHANGED
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./dialog-content-BFmy9Sbo.cjs"),i=require("./dialog-service-DS-aEjlX.cjs");Object.defineProperty(exports,"ConfirmDialog",{enumerable:!0,get:()=>e.ConfirmDialog}),Object.defineProperty(exports,"SchmancyDialog",{enumerable:!0,get:()=>e.SchmancyDialog}),Object.defineProperty(exports,"SchmancyDialogContent",{enumerable:!0,get:()=>e.SchmancyDialogContent}),exports.$dialog=i.$dialog,exports.DialogService=i.DialogService;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./dialog-content-VroTT22f.cjs"),i=require("./dialog-service-Wna1JO09.cjs");Object.defineProperty(exports,"ConfirmDialog",{enumerable:!0,get:()=>e.ConfirmDialog}),Object.defineProperty(exports,"SchmancyDialog",{enumerable:!0,get:()=>e.SchmancyDialog}),Object.defineProperty(exports,"SchmancyDialogContent",{enumerable:!0,get:()=>e.SchmancyDialogContent}),exports.$dialog=i.$dialog,exports.DialogService=i.DialogService;
2
2
  //# sourceMappingURL=dialog.cjs.map
package/dist/dialog.js CHANGED
@@ -1,5 +1,5 @@
1
- import { C as i, S as r, a as c } from "./dialog-content-B_w_iJyW.js";
2
- import { $ as g, D as l } from "./dialog-service-DwJ_7FB3.js";
1
+ import { C as i, S as r, a as c } from "./dialog-content-B7V_S6GR.js";
2
+ import { $ as g, D as l } from "./dialog-service-Dpz_NIRP.js";
3
3
  export {
4
4
  g as $dialog,
5
5
  i as ConfirmDialog,
@@ -1,4 +1,4 @@
1
- "use strict";require("rxjs");const m=require("lit/directives/class-map.js");require("lit/directives/style-map.js");const h=require("./litElement.mixin-B12Y4mEr.cjs");require("./tailwind.mixin-BlZIIaOE.cjs");const n=require("lit/decorators.js"),c=require("lit");var u=Object.defineProperty,w=Object.getOwnPropertyDescriptor,e=(t,i,s,a)=>{for(var l,r=a>1?void 0:a?w(i,s):i,d=t.length-1;d>=0;d--)(l=t[d])&&(r=(a?l(i,s,r):l(r))||r);return a&&r&&u(i,s,r),r};let o=class extends h.$LitElement(c.css`
1
+ "use strict";require("rxjs");const m=require("lit/directives/class-map.js");require("lit/directives/style-map.js");const h=require("./litElement.mixin-4iclDbF3.cjs");require("./tailwind.mixin-Bwf86oi5.cjs");const n=require("lit/decorators.js"),c=require("lit");var u=Object.defineProperty,w=Object.getOwnPropertyDescriptor,e=(t,i,s,a)=>{for(var l,r=a>1?void 0:a?w(i,s):i,d=t.length-1;d>=0;d--)(l=t[d])&&(r=(a?l(i,s,r):l(r))||r);return a&&r&&u(i,s,r),r};let o=class extends h.$LitElement(c.css`
2
2
  :host {
3
3
  display: block;
4
4
  overflow: hidden; /* Ensure the animation is clipped */
@@ -80,4 +80,4 @@
80
80
  animation: drawVertical var(--animation-duration, 1s) forwards;
81
81
  }
82
82
  `){constructor(){super(...arguments),this.outline="variant",this.orientation="horizontal",this.grow="start"}render(){const t={divider:!0,horizontal:this.orientation==="horizontal",vertical:this.orientation==="vertical","border-outlineVariant":this.outline==="variant","border-outline":this.outline==="default",[`grow-${this.grow}`]:!0};return c.html`<div class="${m.classMap(t)}"></div>`}};e([n.property({type:String})],o.prototype,"outline",2),e([n.property({reflect:!0,type:String})],o.prototype,"orientation",2),e([n.property({type:String})],o.prototype,"grow",2),o=e([n.customElement("schmancy-divider")],o);
83
- //# sourceMappingURL=divider-BWG6TAr2.cjs.map
83
+ //# sourceMappingURL=divider-CegpMW-2.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"divider-BWG6TAr2.cjs","sources":["../src/divider/divider.ts"],"sourcesContent":["// divider.ts\nimport { $LitElement } from '@mixins/index'\nimport { css, html } from 'lit'\nimport { customElement, property } from 'lit/decorators.js'\nimport { classMap } from 'lit/directives/class-map.js'\n\n@customElement('schmancy-divider')\nexport default class SchmancyDivider extends $LitElement(css`\n\t:host {\n\t\tdisplay: block;\n\t\toverflow: hidden; /* Ensure the animation is clipped */\n\t}\n\t.divider {\n\t\t/* Maintain existing border-based color logic */\n\t\tborder-color: var(--divider-color, currentColor);\n\t}\n\t/* Horizontal Divider */\n\t.horizontal {\n\t\twidth: 100%;\n\t\theight: 1px;\n\t\tborder-top: 1px solid;\n\t\ttransform: scaleX(0);\n\t\ttransform-origin: var(--transform-origin, left);\n\t\tanimation: drawHorizontal var(--animation-duration, 1s) forwards;\n\t}\n\t/* Vertical Divider */\n\t.vertical {\n\t\twidth: 1px;\n\t\theight: 100%;\n\t\tborder-left: 1px solid;\n\t\ttransform: scaleY(0);\n\t\ttransform-origin: var(--transform-origin, top);\n\t\tanimation: drawVertical var(--animation-duration, 1s) forwards;\n\t}\n\t/* Outline Variants */\n\t.border-outlineVariant {\n\t\t/* Utilize existing outline variant styles */\n\t\tborder-color: var(--schmancy-sys-color-outlineVariant, #555);\n\t}\n\t.border-outline {\n\t\t/* Utilize existing default outline styles */\n\t\tborder-color: var(--schmancy-sys-color-outline, #000);\n\t}\n\t/* RTL Support for Horizontal Dividers */\n\t:host([dir='rtl']) .horizontal.grow-start {\n\t\t--transform-origin: right;\n\t}\n\t:host([dir='rtl']) .horizontal.grow-end {\n\t\t--transform-origin: left;\n\t}\n\t/* Center Growth for Horizontal and Vertical Dividers */\n\t.horizontal.grow-both {\n\t\t--transform-origin: center;\n\t}\n\t.vertical.grow-both {\n\t\t--transform-origin: center;\n\t}\n\t/* Define Keyframes */\n\t@keyframes drawHorizontal {\n\t\tto {\n\t\t\ttransform: scaleX(1);\n\t\t}\n\t}\n\t@keyframes drawVertical {\n\t\tto {\n\t\t\ttransform: scaleY(1);\n\t\t}\n\t}\n\t/* Assign Animations Based on Grow Direction */\n\t.horizontal.grow-start {\n\t\tanimation: drawHorizontal var(--animation-duration, 1s) forwards;\n\t}\n\t.horizontal.grow-end {\n\t\tanimation: drawHorizontal var(--animation-duration, 1s) forwards;\n\t}\n\t.horizontal.grow-both {\n\t\tanimation: drawHorizontal var(--animation-duration, 1s) forwards;\n\t}\n\n\t.vertical.grow-start {\n\t\tanimation: drawVertical var(--animation-duration, 1s) forwards;\n\t}\n\t.vertical.grow-end {\n\t\tanimation: drawVertical var(--animation-duration, 1s) forwards;\n\t}\n\t.vertical.grow-both {\n\t\tanimation: drawVertical var(--animation-duration, 1s) forwards;\n\t}\n`) {\n\t@property({ type: String }) outline: 'default' | 'variant' = 'variant'\n\t@property({ reflect: true, type: String }) orientation: 'horizontal' | 'vertical' = 'horizontal'\n\t@property({ type: String }) grow: 'start' | 'end' | 'both' = 'start'\n\n\tprotected render() {\n\t\tconst classes = {\n\t\t\tdivider: true,\n\t\t\thorizontal: this.orientation === 'horizontal',\n\t\t\tvertical: this.orientation === 'vertical',\n\t\t\t'border-outlineVariant': this.outline === 'variant',\n\t\t\t'border-outline': this.outline === 'default',\n\t\t\t[`grow-${this.grow}`]: true, // e.g., grow-start, grow-end, grow-both\n\t\t}\n\t\treturn html`<div class=\"${classMap(classes)}\"></div>`\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-divider': SchmancyDivider\n\t}\n}\n"],"names":["SchmancyDivider","$LitElement","css","super","arguments","this","outline","orientation","grow","render","classes","divider","horizontal","vertical","html","classMap","__decorateClass","property","type","String","prototype","reflect","customElement"],"mappings":"qcAOA,IAAqBA,EAArB,cAA6CC,EAAAA,YAAYC,EAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,CAAzD,CAAA,CAAA,cAAAC,MAAAA,GAAAC,SAAAA,EAkF6BC,KAAAC,QAAiC,UAClBD,KAAAE,YAAyC,aACxDF,KAAAG,KAAiC,OAAA,CAEnD,QAAAC,CACT,MAAMC,EAAU,CACfC,WACAC,WAAYP,KAAKE,cAAgB,aACjCM,SAAUR,KAAKE,cAAgB,WAC/B,wBAAyBF,KAAKC,UAAY,UAC1C,iBAAkBD,KAAKC,UAAY,UACnC,CAAC,QAAQD,KAAKG,IAAAA,EAAAA,EAAAA,EAAS,EAExB,OAAOM,EAAAA,mBAAmBC,EAAAA,SAASL,CAAAA,CAAAA,UACpC,CAAA,EAd4BM,EAAA,CAA3BC,WAAS,CAAEC,KAAMC,UAlFEnB,EAkFQoB,UAAA,UAAA,CAAA,EACeJ,EAAA,CAA1CC,EAAAA,SAAS,CAAEI,QAAAA,GAAeH,KAAMC,MAAAA,CAAAA,CAAAA,EAnFbnB,EAmFuBoB,UAAA,cAAA,CAAA,EACfJ,EAAA,CAA3BC,WAAS,CAAEC,KAAMC,UApFEnB,EAoFQoB,UAAA,OAAA,CAAA,EApFRpB,EAArBgB,EAAA,CADCM,EAAAA,cAAc,kBAAA,CAAA,EACMtB,CAAAA"}
1
+ {"version":3,"file":"divider-CegpMW-2.cjs","sources":["../src/divider/divider.ts"],"sourcesContent":["// divider.ts\nimport { $LitElement } from '@mixins/index'\nimport { css, html } from 'lit'\nimport { customElement, property } from 'lit/decorators.js'\nimport { classMap } from 'lit/directives/class-map.js'\n\n@customElement('schmancy-divider')\nexport default class SchmancyDivider extends $LitElement(css`\n\t:host {\n\t\tdisplay: block;\n\t\toverflow: hidden; /* Ensure the animation is clipped */\n\t}\n\t.divider {\n\t\t/* Maintain existing border-based color logic */\n\t\tborder-color: var(--divider-color, currentColor);\n\t}\n\t/* Horizontal Divider */\n\t.horizontal {\n\t\twidth: 100%;\n\t\theight: 1px;\n\t\tborder-top: 1px solid;\n\t\ttransform: scaleX(0);\n\t\ttransform-origin: var(--transform-origin, left);\n\t\tanimation: drawHorizontal var(--animation-duration, 1s) forwards;\n\t}\n\t/* Vertical Divider */\n\t.vertical {\n\t\twidth: 1px;\n\t\theight: 100%;\n\t\tborder-left: 1px solid;\n\t\ttransform: scaleY(0);\n\t\ttransform-origin: var(--transform-origin, top);\n\t\tanimation: drawVertical var(--animation-duration, 1s) forwards;\n\t}\n\t/* Outline Variants */\n\t.border-outlineVariant {\n\t\t/* Utilize existing outline variant styles */\n\t\tborder-color: var(--schmancy-sys-color-outlineVariant, #555);\n\t}\n\t.border-outline {\n\t\t/* Utilize existing default outline styles */\n\t\tborder-color: var(--schmancy-sys-color-outline, #000);\n\t}\n\t/* RTL Support for Horizontal Dividers */\n\t:host([dir='rtl']) .horizontal.grow-start {\n\t\t--transform-origin: right;\n\t}\n\t:host([dir='rtl']) .horizontal.grow-end {\n\t\t--transform-origin: left;\n\t}\n\t/* Center Growth for Horizontal and Vertical Dividers */\n\t.horizontal.grow-both {\n\t\t--transform-origin: center;\n\t}\n\t.vertical.grow-both {\n\t\t--transform-origin: center;\n\t}\n\t/* Define Keyframes */\n\t@keyframes drawHorizontal {\n\t\tto {\n\t\t\ttransform: scaleX(1);\n\t\t}\n\t}\n\t@keyframes drawVertical {\n\t\tto {\n\t\t\ttransform: scaleY(1);\n\t\t}\n\t}\n\t/* Assign Animations Based on Grow Direction */\n\t.horizontal.grow-start {\n\t\tanimation: drawHorizontal var(--animation-duration, 1s) forwards;\n\t}\n\t.horizontal.grow-end {\n\t\tanimation: drawHorizontal var(--animation-duration, 1s) forwards;\n\t}\n\t.horizontal.grow-both {\n\t\tanimation: drawHorizontal var(--animation-duration, 1s) forwards;\n\t}\n\n\t.vertical.grow-start {\n\t\tanimation: drawVertical var(--animation-duration, 1s) forwards;\n\t}\n\t.vertical.grow-end {\n\t\tanimation: drawVertical var(--animation-duration, 1s) forwards;\n\t}\n\t.vertical.grow-both {\n\t\tanimation: drawVertical var(--animation-duration, 1s) forwards;\n\t}\n`) {\n\t@property({ type: String }) outline: 'default' | 'variant' = 'variant'\n\t@property({ reflect: true, type: String }) orientation: 'horizontal' | 'vertical' = 'horizontal'\n\t@property({ type: String }) grow: 'start' | 'end' | 'both' = 'start'\n\n\tprotected render() {\n\t\tconst classes = {\n\t\t\tdivider: true,\n\t\t\thorizontal: this.orientation === 'horizontal',\n\t\t\tvertical: this.orientation === 'vertical',\n\t\t\t'border-outlineVariant': this.outline === 'variant',\n\t\t\t'border-outline': this.outline === 'default',\n\t\t\t[`grow-${this.grow}`]: true, // e.g., grow-start, grow-end, grow-both\n\t\t}\n\t\treturn html`<div class=\"${classMap(classes)}\"></div>`\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-divider': SchmancyDivider\n\t}\n}\n"],"names":["SchmancyDivider","$LitElement","css","super","arguments","this","outline","orientation","grow","render","classes","divider","horizontal","vertical","html","classMap","__decorateClass","property","type","String","prototype","reflect","customElement"],"mappings":"qcAOA,IAAqBA,EAArB,cAA6CC,EAAAA,YAAYC,EAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,CAAzD,CAAA,CAAA,cAAAC,MAAAA,GAAAC,SAAAA,EAkF6BC,KAAAC,QAAiC,UAClBD,KAAAE,YAAyC,aACxDF,KAAAG,KAAiC,OAAA,CAEnD,QAAAC,CACT,MAAMC,EAAU,CACfC,WACAC,WAAYP,KAAKE,cAAgB,aACjCM,SAAUR,KAAKE,cAAgB,WAC/B,wBAAyBF,KAAKC,UAAY,UAC1C,iBAAkBD,KAAKC,UAAY,UACnC,CAAC,QAAQD,KAAKG,IAAAA,EAAAA,EAAAA,EAAS,EAExB,OAAOM,EAAAA,mBAAmBC,EAAAA,SAASL,CAAAA,CAAAA,UACpC,CAAA,EAd4BM,EAAA,CAA3BC,WAAS,CAAEC,KAAMC,UAlFEnB,EAkFQoB,UAAA,UAAA,CAAA,EACeJ,EAAA,CAA1CC,EAAAA,SAAS,CAAEI,QAAAA,GAAeH,KAAMC,MAAAA,CAAAA,CAAAA,EAnFbnB,EAmFuBoB,UAAA,cAAA,CAAA,EACfJ,EAAA,CAA3BC,WAAS,CAAEC,KAAMC,UApFEnB,EAoFQoB,UAAA,OAAA,CAAA,EApFRpB,EAArBgB,EAAA,CADCM,EAAAA,cAAc,kBAAA,CAAA,EACMtB,CAAAA"}
@@ -1,8 +1,8 @@
1
1
  import "rxjs";
2
2
  import { classMap as m } from "lit/directives/class-map.js";
3
3
  import "lit/directives/style-map.js";
4
- import { $ as c } from "./litElement.mixin-BZ8iGvPl.js";
5
- import "./tailwind.mixin-D2DVHS9V.js";
4
+ import { $ as c } from "./litElement.mixin-SeAIQuRg.js";
5
+ import "./tailwind.mixin-kvywknTU.js";
6
6
  import { property as d, customElement as h } from "lit/decorators.js";
7
7
  import { css as f, html as w } from "lit";
8
8
  var v = Object.defineProperty, g = Object.getOwnPropertyDescriptor, n = (t, i, e, a) => {
@@ -100,4 +100,4 @@ let o = class extends c(f`
100
100
  }
101
101
  };
102
102
  n([d({ type: String })], o.prototype, "outline", 2), n([d({ reflect: !0, type: String })], o.prototype, "orientation", 2), n([d({ type: String })], o.prototype, "grow", 2), o = n([h("schmancy-divider")], o);
103
- //# sourceMappingURL=divider-FkKYlJY3.js.map
103
+ //# sourceMappingURL=divider-OuCqxcUB.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"divider-FkKYlJY3.js","sources":["../src/divider/divider.ts"],"sourcesContent":["// divider.ts\nimport { $LitElement } from '@mixins/index'\nimport { css, html } from 'lit'\nimport { customElement, property } from 'lit/decorators.js'\nimport { classMap } from 'lit/directives/class-map.js'\n\n@customElement('schmancy-divider')\nexport default class SchmancyDivider extends $LitElement(css`\n\t:host {\n\t\tdisplay: block;\n\t\toverflow: hidden; /* Ensure the animation is clipped */\n\t}\n\t.divider {\n\t\t/* Maintain existing border-based color logic */\n\t\tborder-color: var(--divider-color, currentColor);\n\t}\n\t/* Horizontal Divider */\n\t.horizontal {\n\t\twidth: 100%;\n\t\theight: 1px;\n\t\tborder-top: 1px solid;\n\t\ttransform: scaleX(0);\n\t\ttransform-origin: var(--transform-origin, left);\n\t\tanimation: drawHorizontal var(--animation-duration, 1s) forwards;\n\t}\n\t/* Vertical Divider */\n\t.vertical {\n\t\twidth: 1px;\n\t\theight: 100%;\n\t\tborder-left: 1px solid;\n\t\ttransform: scaleY(0);\n\t\ttransform-origin: var(--transform-origin, top);\n\t\tanimation: drawVertical var(--animation-duration, 1s) forwards;\n\t}\n\t/* Outline Variants */\n\t.border-outlineVariant {\n\t\t/* Utilize existing outline variant styles */\n\t\tborder-color: var(--schmancy-sys-color-outlineVariant, #555);\n\t}\n\t.border-outline {\n\t\t/* Utilize existing default outline styles */\n\t\tborder-color: var(--schmancy-sys-color-outline, #000);\n\t}\n\t/* RTL Support for Horizontal Dividers */\n\t:host([dir='rtl']) .horizontal.grow-start {\n\t\t--transform-origin: right;\n\t}\n\t:host([dir='rtl']) .horizontal.grow-end {\n\t\t--transform-origin: left;\n\t}\n\t/* Center Growth for Horizontal and Vertical Dividers */\n\t.horizontal.grow-both {\n\t\t--transform-origin: center;\n\t}\n\t.vertical.grow-both {\n\t\t--transform-origin: center;\n\t}\n\t/* Define Keyframes */\n\t@keyframes drawHorizontal {\n\t\tto {\n\t\t\ttransform: scaleX(1);\n\t\t}\n\t}\n\t@keyframes drawVertical {\n\t\tto {\n\t\t\ttransform: scaleY(1);\n\t\t}\n\t}\n\t/* Assign Animations Based on Grow Direction */\n\t.horizontal.grow-start {\n\t\tanimation: drawHorizontal var(--animation-duration, 1s) forwards;\n\t}\n\t.horizontal.grow-end {\n\t\tanimation: drawHorizontal var(--animation-duration, 1s) forwards;\n\t}\n\t.horizontal.grow-both {\n\t\tanimation: drawHorizontal var(--animation-duration, 1s) forwards;\n\t}\n\n\t.vertical.grow-start {\n\t\tanimation: drawVertical var(--animation-duration, 1s) forwards;\n\t}\n\t.vertical.grow-end {\n\t\tanimation: drawVertical var(--animation-duration, 1s) forwards;\n\t}\n\t.vertical.grow-both {\n\t\tanimation: drawVertical var(--animation-duration, 1s) forwards;\n\t}\n`) {\n\t@property({ type: String }) outline: 'default' | 'variant' = 'variant'\n\t@property({ reflect: true, type: String }) orientation: 'horizontal' | 'vertical' = 'horizontal'\n\t@property({ type: String }) grow: 'start' | 'end' | 'both' = 'start'\n\n\tprotected render() {\n\t\tconst classes = {\n\t\t\tdivider: true,\n\t\t\thorizontal: this.orientation === 'horizontal',\n\t\t\tvertical: this.orientation === 'vertical',\n\t\t\t'border-outlineVariant': this.outline === 'variant',\n\t\t\t'border-outline': this.outline === 'default',\n\t\t\t[`grow-${this.grow}`]: true, // e.g., grow-start, grow-end, grow-both\n\t\t}\n\t\treturn html`<div class=\"${classMap(classes)}\"></div>`\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-divider': SchmancyDivider\n\t}\n}\n"],"names":["SchmancyDivider","$LitElement","css","super","arguments","this","outline","orientation","grow","render","classes","divider","horizontal","vertical","html","classMap","__decorateClass","property","type","String","prototype","reflect","customElement"],"mappings":";;;;;;;;;;;AAOA,IAAqBA,IAArB,cAA6CC,EAAYC;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,CAAzD,EAAA;AAAA,EAAA;AAAAC,UAAAA,GAAAC,SAAAA,GAkF6BC,KAAAC,UAAiC,WAClBD,KAAAE,cAAyC,cACxDF,KAAAG,OAAiC;AAAA,EAAA;AAAA,EAEnD,SAAAC;AACT,UAAMC,IAAU,EACfC,SAAAA,IACAC,YAAYP,KAAKE,gBAAgB,cACjCM,UAAUR,KAAKE,gBAAgB,YAC/B,yBAAyBF,KAAKC,YAAY,WAC1C,kBAAkBD,KAAKC,YAAY,WACnC,CAAC,QAAQD,KAAKG,IAAAA,EAAAA,GAAAA,GAAS;AAExB,WAAOM,gBAAmBC,EAASL,CAAAA,CAAAA;AAAAA,EACpC;;AAd4BM,EAAA,CAA3BC,EAAS,EAAEC,MAAMC,OAAAA,CAAAA,CAAAA,GAlFEnB,EAkFQoB,WAAA,WAAA,CAAA,GACeJ,EAAA,CAA1CC,EAAS,EAAEI,SAAAA,IAAeH,MAAMC,OAAAA,CAAAA,CAAAA,GAnFbnB,EAmFuBoB,WAAA,eAAA,IACfJ,EAAA,CAA3BC,EAAS,EAAEC,MAAMC,OAAAA,CAAAA,CAAAA,GApFEnB,EAoFQoB,WAAA,QAAA,CAAA,GApFRpB,IAArBgB,EAAA,CADCM,EAAc,kBAAA,CAAA,GACMtB,CAAAA;"}
1
+ {"version":3,"file":"divider-OuCqxcUB.js","sources":["../src/divider/divider.ts"],"sourcesContent":["// divider.ts\nimport { $LitElement } from '@mixins/index'\nimport { css, html } from 'lit'\nimport { customElement, property } from 'lit/decorators.js'\nimport { classMap } from 'lit/directives/class-map.js'\n\n@customElement('schmancy-divider')\nexport default class SchmancyDivider extends $LitElement(css`\n\t:host {\n\t\tdisplay: block;\n\t\toverflow: hidden; /* Ensure the animation is clipped */\n\t}\n\t.divider {\n\t\t/* Maintain existing border-based color logic */\n\t\tborder-color: var(--divider-color, currentColor);\n\t}\n\t/* Horizontal Divider */\n\t.horizontal {\n\t\twidth: 100%;\n\t\theight: 1px;\n\t\tborder-top: 1px solid;\n\t\ttransform: scaleX(0);\n\t\ttransform-origin: var(--transform-origin, left);\n\t\tanimation: drawHorizontal var(--animation-duration, 1s) forwards;\n\t}\n\t/* Vertical Divider */\n\t.vertical {\n\t\twidth: 1px;\n\t\theight: 100%;\n\t\tborder-left: 1px solid;\n\t\ttransform: scaleY(0);\n\t\ttransform-origin: var(--transform-origin, top);\n\t\tanimation: drawVertical var(--animation-duration, 1s) forwards;\n\t}\n\t/* Outline Variants */\n\t.border-outlineVariant {\n\t\t/* Utilize existing outline variant styles */\n\t\tborder-color: var(--schmancy-sys-color-outlineVariant, #555);\n\t}\n\t.border-outline {\n\t\t/* Utilize existing default outline styles */\n\t\tborder-color: var(--schmancy-sys-color-outline, #000);\n\t}\n\t/* RTL Support for Horizontal Dividers */\n\t:host([dir='rtl']) .horizontal.grow-start {\n\t\t--transform-origin: right;\n\t}\n\t:host([dir='rtl']) .horizontal.grow-end {\n\t\t--transform-origin: left;\n\t}\n\t/* Center Growth for Horizontal and Vertical Dividers */\n\t.horizontal.grow-both {\n\t\t--transform-origin: center;\n\t}\n\t.vertical.grow-both {\n\t\t--transform-origin: center;\n\t}\n\t/* Define Keyframes */\n\t@keyframes drawHorizontal {\n\t\tto {\n\t\t\ttransform: scaleX(1);\n\t\t}\n\t}\n\t@keyframes drawVertical {\n\t\tto {\n\t\t\ttransform: scaleY(1);\n\t\t}\n\t}\n\t/* Assign Animations Based on Grow Direction */\n\t.horizontal.grow-start {\n\t\tanimation: drawHorizontal var(--animation-duration, 1s) forwards;\n\t}\n\t.horizontal.grow-end {\n\t\tanimation: drawHorizontal var(--animation-duration, 1s) forwards;\n\t}\n\t.horizontal.grow-both {\n\t\tanimation: drawHorizontal var(--animation-duration, 1s) forwards;\n\t}\n\n\t.vertical.grow-start {\n\t\tanimation: drawVertical var(--animation-duration, 1s) forwards;\n\t}\n\t.vertical.grow-end {\n\t\tanimation: drawVertical var(--animation-duration, 1s) forwards;\n\t}\n\t.vertical.grow-both {\n\t\tanimation: drawVertical var(--animation-duration, 1s) forwards;\n\t}\n`) {\n\t@property({ type: String }) outline: 'default' | 'variant' = 'variant'\n\t@property({ reflect: true, type: String }) orientation: 'horizontal' | 'vertical' = 'horizontal'\n\t@property({ type: String }) grow: 'start' | 'end' | 'both' = 'start'\n\n\tprotected render() {\n\t\tconst classes = {\n\t\t\tdivider: true,\n\t\t\thorizontal: this.orientation === 'horizontal',\n\t\t\tvertical: this.orientation === 'vertical',\n\t\t\t'border-outlineVariant': this.outline === 'variant',\n\t\t\t'border-outline': this.outline === 'default',\n\t\t\t[`grow-${this.grow}`]: true, // e.g., grow-start, grow-end, grow-both\n\t\t}\n\t\treturn html`<div class=\"${classMap(classes)}\"></div>`\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-divider': SchmancyDivider\n\t}\n}\n"],"names":["SchmancyDivider","$LitElement","css","super","arguments","this","outline","orientation","grow","render","classes","divider","horizontal","vertical","html","classMap","__decorateClass","property","type","String","prototype","reflect","customElement"],"mappings":";;;;;;;;;;;AAOA,IAAqBA,IAArB,cAA6CC,EAAYC;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,CAAzD,EAAA;AAAA,EAAA;AAAAC,UAAAA,GAAAC,SAAAA,GAkF6BC,KAAAC,UAAiC,WAClBD,KAAAE,cAAyC,cACxDF,KAAAG,OAAiC;AAAA,EAAA;AAAA,EAEnD,SAAAC;AACT,UAAMC,IAAU,EACfC,SAAAA,IACAC,YAAYP,KAAKE,gBAAgB,cACjCM,UAAUR,KAAKE,gBAAgB,YAC/B,yBAAyBF,KAAKC,YAAY,WAC1C,kBAAkBD,KAAKC,YAAY,WACnC,CAAC,QAAQD,KAAKG,IAAAA,EAAAA,GAAAA,GAAS;AAExB,WAAOM,gBAAmBC,EAASL,CAAAA,CAAAA;AAAAA,EACpC;;AAd4BM,EAAA,CAA3BC,EAAS,EAAEC,MAAMC,OAAAA,CAAAA,CAAAA,GAlFEnB,EAkFQoB,WAAA,WAAA,CAAA,GACeJ,EAAA,CAA1CC,EAAS,EAAEI,SAAAA,IAAeH,MAAMC,OAAAA,CAAAA,CAAAA,GAnFbnB,EAmFuBoB,WAAA,eAAA,IACfJ,EAAA,CAA3BC,EAAS,EAAEC,MAAMC,OAAAA,CAAAA,CAAAA,GApFEnB,EAoFQoB,WAAA,QAAA,CAAA,GApFRpB,IAArBgB,EAAA,CADCM,EAAc,kBAAA,CAAA,GACMtB,CAAAA;"}
package/dist/divider.cjs CHANGED
@@ -1,2 +1,2 @@
1
- "use strict";require("./divider-BWG6TAr2.cjs");
1
+ "use strict";require("./divider-CegpMW-2.cjs");
2
2
  //# sourceMappingURL=divider.cjs.map
package/dist/divider.js CHANGED
@@ -1,2 +1,2 @@
1
- import "./divider-FkKYlJY3.js";
1
+ import "./divider-OuCqxcUB.js";
2
2
  //# sourceMappingURL=divider.js.map
@@ -2,8 +2,8 @@ import { autoUpdate as v, computePosition as k, offset as P, flip as x, shift as
2
2
  import { fromEvent as h, filter as m, takeUntil as y } from "rxjs";
3
3
  import "lit/directives/class-map.js";
4
4
  import "lit/directives/style-map.js";
5
- import { $ as E } from "./litElement.mixin-BZ8iGvPl.js";
6
- import { T as S } from "./tailwind.mixin-D2DVHS9V.js";
5
+ import { $ as E } from "./litElement.mixin-SeAIQuRg.js";
6
+ import { T as S } from "./tailwind.mixin-kvywknTU.js";
7
7
  import { property as l, query as u, queryAssignedElements as g, state as T, customElement as f } from "lit/decorators.js";
8
8
  import { css as w, html as b } from "lit";
9
9
  var $ = Object.defineProperty, O = Object.getOwnPropertyDescriptor, a = (t, e, n, r) => {
@@ -144,4 +144,4 @@ export {
144
144
  s as S,
145
145
  c as a
146
146
  };
147
- //# sourceMappingURL=dropdown-content-BStJGihR.js.map
147
+ //# sourceMappingURL=dropdown-content-BuKCBydD.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"dropdown-content-BStJGihR.js","sources":["../src/dropdown/dropdown-component.ts","../src/dropdown/dropdown-content.ts"],"sourcesContent":["import { autoUpdate, computePosition, flip, offset, shift } from '@floating-ui/dom'\nimport { $LitElement } from '@mixins/index'\nimport { css, html } from 'lit'\nimport { customElement, property, query, queryAssignedElements, state } from 'lit/decorators.js'\nimport { filter, fromEvent, takeUntil } from 'rxjs'\n\n/**\n * A dropdown component that displays content when triggered.\n *\n * @element schmancy-dropdown\n * @slot trigger - The element that triggers the dropdown\n * @slot - Default slot for the dropdown content\n */\n@customElement('schmancy-dropdown')\nexport class SchmancyDropdown extends $LitElement(css`\n\t:host {\n\t\tdisplay: inline-block;\n\t\tposition: relative;\n\t}\n`) {\n\t/**\n\t * Whether the dropdown is currently open\n\t */\n\t@property({ type: Boolean, reflect: true })\n\topen = false\n\n\t/**\n\t * Placement of the dropdown relative to the trigger\n\t */\n\t@property({ type: String })\n\tplacement:\n\t\t| 'top'\n\t\t| 'top-start'\n\t\t| 'top-end'\n\t\t| 'right'\n\t\t| 'right-start'\n\t\t| 'right-end'\n\t\t| 'bottom'\n\t\t| 'bottom-start'\n\t\t| 'bottom-end'\n\t\t| 'left'\n\t\t| 'left-start'\n\t\t| 'left-end' = 'bottom-start'\n\n\t/**\n\t * Offset distance in pixels\n\t */\n\t@property({ type: Number })\n\tdistance = 8\n\n\t@query('.trigger-container') triggerContainer!: HTMLElement\n\t@query('.dropdown-content-container') contentContainer!: HTMLElement\n\t@queryAssignedElements({ flatten: true }) contentElements!: HTMLElement[]\n\t@state() private portal: HTMLElement | null = null\n\n\t@queryAssignedElements({ slot: 'trigger', flatten: true })\n\ttriggerElements!: Array<HTMLElement>\n\n\tprivate cleanupPositioner?: () => void\n\n\tconnectedCallback() {\n\t\tsuper.connectedCallback()\n\n\t\t// Create portal container for teleporting content to document body\n\t\tthis.setupPortal()\n\n\t\t// Listen for document clicks to close dropdown when clicking outside\n\t\tfromEvent<MouseEvent>(document, 'click')\n\t\t\t.pipe(\n\t\t\t\tfilter(event => this.open && !this.isEventFromSelf(event)),\n\t\t\t\ttakeUntil(this.disconnecting),\n\t\t\t)\n\t\t\t.subscribe(() => {\n\t\t\t\tthis.open = false\n\t\t\t})\n\n\t\t// Listen for escape key to close dropdown\n\t\tfromEvent<KeyboardEvent>(document, 'keydown')\n\t\t\t.pipe(\n\t\t\t\tfilter(event => this.open && event.key === 'Escape'),\n\t\t\t\ttakeUntil(this.disconnecting),\n\t\t\t)\n\t\t\t.subscribe(() => {\n\t\t\t\tthis.open = false\n\t\t\t})\n\t}\n\n\t/**\n\t * Set up the portal element for teleporting content\n\t */\n\tprivate setupPortal() {\n\t\t// Check if portal container exists\n\t\tlet portalContainer = document.getElementById('schmancy-portal-container')\n\n\t\t// Create portal container if it doesn't exist\n\t\tif (!portalContainer) {\n\t\t\tportalContainer = document.createElement('div')\n\t\t\tportalContainer.id = 'schmancy-portal-container'\n\t\t\tportalContainer.style.position = 'fixed'\n\t\t\tportalContainer.style.zIndex = '10000'\n\t\t\tportalContainer.style.top = '0'\n\t\t\tportalContainer.style.left = '0'\n\t\t\tportalContainer.style.pointerEvents = 'none'\n\t\t\tdocument.body.appendChild(portalContainer)\n\t\t}\n\n\t\t// Create portal for this specific dropdown\n\t\tconst portal = document.createElement('div')\n\t\tportal.className = 'schmancy-dropdown-portal'\n\t\tportal.style.position = 'absolute'\n\t\tportal.style.pointerEvents = 'auto'\n\t\tportal.style.display = 'none'\n\t\tportalContainer.appendChild(portal)\n\n\t\tthis.portal = portal\n\t}\n\n\t/**\n\t * Check if an event originated from within this component\n\t */\n\tprivate isEventFromSelf(event: Event): boolean {\n\t\treturn event.composedPath().some(el => el === this)\n\t}\n\n\tdisconnectedCallback() {\n\t\tthis.cleanupPositioner?.()\n\n\t\t// Remove portal when component is disconnected\n\t\tif (this.portal) {\n\t\t\tthis.portal.remove()\n\t\t\tthis.portal = null\n\t\t}\n\n\t\tsuper.disconnectedCallback()\n\t}\n\n\t/**\n\t * Toggle the dropdown open state\n\t */\n\ttoggle() {\n\t\tthis.open = !this.open\n\t}\n\n\tupdated(changedProps: Map<string, any>) {\n\t\tsuper.updated(changedProps)\n\n\t\tif (changedProps.has('open')) {\n\t\t\tif (this.open) {\n\t\t\t\tthis.setupPositioner()\n\t\t\t} else {\n\t\t\t\tthis.cleanupPositioner?.()\n\n\t\t\t\t// Hide portal when dropdown is closed\n\t\t\t\tif (this.portal) {\n\t\t\t\t\tthis.portal.style.display = 'none'\n\t\t\t\t\tthis.portal.innerHTML = ''\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Setup floating UI positioning with teleportation\n\t */\n\tprivate setupPositioner() {\n\t\tif (!this.triggerContainer || !this.portal) return\n\n\t\t// Show the portal\n\t\tthis.portal.style.display = 'block'\n\n\t\t// Move content to portal\n\t\tthis.teleportContentToPortal()\n\n\t\t// Setup positioning\n\t\tthis.cleanupPositioner = autoUpdate(this.triggerContainer, this.portal, () => {\n\t\t\tcomputePosition(this.triggerContainer, this.portal, {\n\t\t\t\tplacement: this.placement,\n\t\t\t\tmiddleware: [\n\t\t\t\t\toffset(this.distance),\n\t\t\t\t\tflip({\n\t\t\t\t\t\tfallbackPlacements: ['top-start', 'bottom-start'],\n\t\t\t\t\t}),\n\t\t\t\t\tshift({ padding: 0 }),\n\t\t\t\t],\n\t\t\t}).then(({ x, y }) => {\n\t\t\t\t// Update portal position\n\t\t\t\tObject.assign(this.portal.style, {\n\t\t\t\t\tleft: `${x}px`,\n\t\t\t\t\ttop: `${y - 8}px`,\n\t\t\t\t})\n\t\t\t})\n\t\t})\n\t}\n\n\t/**\n\t * Move slotted content to the portal\n\t */\n\tprivate teleportContentToPortal() {\n\t\tif (!this.portal) return\n\n\t\t// Clear existing content\n\t\tthis.portal.innerHTML = ''\n\n\t\t// Clone and move slotted content to portal\n\t\tthis.contentElements.forEach(element => {\n\t\t\t// Get computed styles to ensure portal content matches original styling\n\t\t\tconst clonedElement = element.cloneNode(true) as HTMLElement\n\n\t\t\t// Ensure dropdown-content elements maintain their styles when teleported\n\t\t\tif (element.tagName.toLowerCase() === 'schmancy-dropdown-content') {\n\t\t\t\tclonedElement.addEventListener('slotchange', () => {\n\t\t\t\t\t// Propagate any slot changes to class changes on children\n\t\t\t\t\tconst contentDiv = clonedElement.shadowRoot?.querySelector('[part=\"content\"]')\n\t\t\t\t\tif (contentDiv) {\n\t\t\t\t\t\tcontentDiv.classList.add('schmancy-dropdown-content')\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t}\n\n\t\t\tthis.portal?.appendChild(clonedElement)\n\t\t})\n\t}\n\n\t/**\n\t * Handle trigger click to toggle dropdown\n\t */\n\tprivate handleTriggerClick(e: Event) {\n\t\te.stopPropagation()\n\t\tthis.toggle()\n\t}\n\n\trender() {\n\t\treturn html`\n\t\t\t<div class=\"trigger-container\" @click=${this.handleTriggerClick}>\n\t\t\t\t<slot name=\"trigger\"></slot>\n\t\t\t</div>\n\n\t\t\t<div class=\"dropdown-content-container\" ?hidden=${!this.open}>\n\t\t\t\t<slot\n\t\t\t\t\t@slotchange=${() => {\n\t\t\t\t\t\tif (this.open) {\n\t\t\t\t\t\t\tthis.teleportContentToPortal()\n\t\t\t\t\t\t\tthis.setupPositioner()\n\t\t\t\t\t\t}\n\t\t\t\t\t}}\n\t\t\t\t></slot>\n\t\t\t</div>\n\t\t`\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-dropdown': SchmancyDropdown\n\t}\n}\n","import { TailwindElement } from '@mixins/index'\nimport { css, html } from 'lit'\nimport { customElement, property } from 'lit/decorators.js'\n\n/**\n * Content container for the schmancy-dropdown component.\n *\n * @element schmancy-dropdown-content\n * @slot - Default slot for dropdown content\n */\n@customElement('schmancy-dropdown-content')\nexport class SchmancyDropdownContent extends TailwindElement(css`\n\t:host {\n\t\tdisplay: block;\n\t\tposition: absolute;\n\t\tz-index: 1000;\n\t\tmin-width: 10rem;\n\t\tmargin: 0;\n\t\ttext-align: left;\n\t\tlist-style: none;\n\t\tbackground-color: var(--schmancy-sys-color-surface-container);\n\t\tbackground-clip: padding-box;\n\t\tborder-radius: 0.375rem;\n\t\tbox-shadow: var(--schmancy-sys-elevation-3);\n\t\twill-change: transform;\n\t\ttransform-origin: top left;\n\t\tanimation: dropdownAnimation 0.1s ease-out forwards;\n\t}\n\n\t:host([hidden]) {\n\t\tdisplay: none;\n\t}\n\n\t@keyframes dropdownAnimation {\n\t\tfrom {\n\t\t\topacity: 0;\n\t\t\ttransform: scale(0.95);\n\t\t}\n\t\tto {\n\t\t\topacity: 1;\n\t\t\ttransform: scale(1);\n\t\t}\n\t}\n\n\t/* Apply styles to content both in the component and when teleported to the portal */\n\t.schmancy-dropdown-content {\n\t\tbackground-color: var(--schmancy-sys-color-surface-container);\n\t\tborder-radius: 0.375rem;\n\t\tbox-shadow: var(--schmancy-sys-elevation-3);\n\t\twill-change: transform;\n\t\ttransform-origin: top left;\n\t\tanimation: dropdownAnimation 0.1s ease-out forwards;\n\t}\n`) {\n\t/**\n\t * Width of the dropdown content\n\t */\n\t@property({ type: String })\n\twidth: string = 'auto'\n\n\t/**\n\t * Maximum height of the dropdown content\n\t */\n\t@property({ type: String })\n\tmaxHeight: string = '80vh'\n\n\t/**\n\t * Whether to render with a shadow\n\t */\n\t@property({ type: Boolean })\n\tshadow: boolean = true\n\n\t/**\n\t * Border radius style\n\t */\n\t@property({ type: String })\n\tradius: 'none' | 'sm' | 'md' | 'lg' | 'full' = 'md'\n\n\trender() {\n\t\tconst classes = {\n\t\t\t'schmancy-dropdown-content': true,\n\t\t\t'overflow-auto': true,\n\t\t\t'shadow-none': !this.shadow,\n\t\t\t'rounded-none': this.radius === 'none',\n\t\t\t'rounded-sm': this.radius === 'sm',\n\t\t\t'rounded-md': this.radius === 'md',\n\t\t\t'rounded-lg': this.radius === 'lg',\n\t\t\t'rounded-full': this.radius === 'full',\n\t\t}\n\n\t\tconst styles = {\n\t\t\twidth: this.width,\n\t\t\tmaxHeight: this.maxHeight,\n\t\t}\n\n\t\treturn html`\n\t\t\t<div class=${this.classMap(classes)} style=${this.styleMap(styles)} part=\"content\">\n\t\t\t\t<slot></slot>\n\t\t\t</div>\n\t\t`\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-dropdown-content': SchmancyDropdownContent\n\t}\n}\n"],"names":["SchmancyDropdown","$LitElement","css","constructor","super","arguments","this","open","placement","distance","portal","connectedCallback","setupPortal","fromEvent","document","pipe","filter","isEventFromSelf","event","takeUntil","disconnecting","subscribe","key","portalContainer","getElementById","createElement","id","style","position","zIndex","top","left","pointerEvents","body","appendChild","className","display","composedPath","some","el","disconnectedCallback","cleanupPositioner","remove","toggle","changedProps","updated","has","setupPositioner","innerHTML","triggerContainer","teleportContentToPortal","autoUpdate","computePosition","middleware","offset","flip","fallbackPlacements","shift","padding","then","x","y","Object","assign","contentElements","forEach","element","clonedElement","cloneNode","tagName","toLowerCase","addEventListener","contentDiv","shadowRoot","querySelector","classList","add","e","stopPropagation","render","html","handleTriggerClick","__decorateClass","property","type","Boolean","reflect","prototype","String","Number","query","queryAssignedElements","flatten","state","slot","customElement","SchmancyDropdownContent","TailwindElement","width","maxHeight","shadow","radius","classes","styles","classMap","styleMap"],"mappings":"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"}
1
+ {"version":3,"file":"dropdown-content-BuKCBydD.js","sources":["../src/dropdown/dropdown-component.ts","../src/dropdown/dropdown-content.ts"],"sourcesContent":["import { autoUpdate, computePosition, flip, offset, shift } from '@floating-ui/dom'\nimport { $LitElement } from '@mixins/index'\nimport { css, html } from 'lit'\nimport { customElement, property, query, queryAssignedElements, state } from 'lit/decorators.js'\nimport { filter, fromEvent, takeUntil } from 'rxjs'\n\n/**\n * A dropdown component that displays content when triggered.\n *\n * @element schmancy-dropdown\n * @slot trigger - The element that triggers the dropdown\n * @slot - Default slot for the dropdown content\n */\n@customElement('schmancy-dropdown')\nexport class SchmancyDropdown extends $LitElement(css`\n\t:host {\n\t\tdisplay: inline-block;\n\t\tposition: relative;\n\t}\n`) {\n\t/**\n\t * Whether the dropdown is currently open\n\t */\n\t@property({ type: Boolean, reflect: true })\n\topen = false\n\n\t/**\n\t * Placement of the dropdown relative to the trigger\n\t */\n\t@property({ type: String })\n\tplacement:\n\t\t| 'top'\n\t\t| 'top-start'\n\t\t| 'top-end'\n\t\t| 'right'\n\t\t| 'right-start'\n\t\t| 'right-end'\n\t\t| 'bottom'\n\t\t| 'bottom-start'\n\t\t| 'bottom-end'\n\t\t| 'left'\n\t\t| 'left-start'\n\t\t| 'left-end' = 'bottom-start'\n\n\t/**\n\t * Offset distance in pixels\n\t */\n\t@property({ type: Number })\n\tdistance = 8\n\n\t@query('.trigger-container') triggerContainer!: HTMLElement\n\t@query('.dropdown-content-container') contentContainer!: HTMLElement\n\t@queryAssignedElements({ flatten: true }) contentElements!: HTMLElement[]\n\t@state() private portal: HTMLElement | null = null\n\n\t@queryAssignedElements({ slot: 'trigger', flatten: true })\n\ttriggerElements!: Array<HTMLElement>\n\n\tprivate cleanupPositioner?: () => void\n\n\tconnectedCallback() {\n\t\tsuper.connectedCallback()\n\n\t\t// Create portal container for teleporting content to document body\n\t\tthis.setupPortal()\n\n\t\t// Listen for document clicks to close dropdown when clicking outside\n\t\tfromEvent<MouseEvent>(document, 'click')\n\t\t\t.pipe(\n\t\t\t\tfilter(event => this.open && !this.isEventFromSelf(event)),\n\t\t\t\ttakeUntil(this.disconnecting),\n\t\t\t)\n\t\t\t.subscribe(() => {\n\t\t\t\tthis.open = false\n\t\t\t})\n\n\t\t// Listen for escape key to close dropdown\n\t\tfromEvent<KeyboardEvent>(document, 'keydown')\n\t\t\t.pipe(\n\t\t\t\tfilter(event => this.open && event.key === 'Escape'),\n\t\t\t\ttakeUntil(this.disconnecting),\n\t\t\t)\n\t\t\t.subscribe(() => {\n\t\t\t\tthis.open = false\n\t\t\t})\n\t}\n\n\t/**\n\t * Set up the portal element for teleporting content\n\t */\n\tprivate setupPortal() {\n\t\t// Check if portal container exists\n\t\tlet portalContainer = document.getElementById('schmancy-portal-container')\n\n\t\t// Create portal container if it doesn't exist\n\t\tif (!portalContainer) {\n\t\t\tportalContainer = document.createElement('div')\n\t\t\tportalContainer.id = 'schmancy-portal-container'\n\t\t\tportalContainer.style.position = 'fixed'\n\t\t\tportalContainer.style.zIndex = '10000'\n\t\t\tportalContainer.style.top = '0'\n\t\t\tportalContainer.style.left = '0'\n\t\t\tportalContainer.style.pointerEvents = 'none'\n\t\t\tdocument.body.appendChild(portalContainer)\n\t\t}\n\n\t\t// Create portal for this specific dropdown\n\t\tconst portal = document.createElement('div')\n\t\tportal.className = 'schmancy-dropdown-portal'\n\t\tportal.style.position = 'absolute'\n\t\tportal.style.pointerEvents = 'auto'\n\t\tportal.style.display = 'none'\n\t\tportalContainer.appendChild(portal)\n\n\t\tthis.portal = portal\n\t}\n\n\t/**\n\t * Check if an event originated from within this component\n\t */\n\tprivate isEventFromSelf(event: Event): boolean {\n\t\treturn event.composedPath().some(el => el === this)\n\t}\n\n\tdisconnectedCallback() {\n\t\tthis.cleanupPositioner?.()\n\n\t\t// Remove portal when component is disconnected\n\t\tif (this.portal) {\n\t\t\tthis.portal.remove()\n\t\t\tthis.portal = null\n\t\t}\n\n\t\tsuper.disconnectedCallback()\n\t}\n\n\t/**\n\t * Toggle the dropdown open state\n\t */\n\ttoggle() {\n\t\tthis.open = !this.open\n\t}\n\n\tupdated(changedProps: Map<string, any>) {\n\t\tsuper.updated(changedProps)\n\n\t\tif (changedProps.has('open')) {\n\t\t\tif (this.open) {\n\t\t\t\tthis.setupPositioner()\n\t\t\t} else {\n\t\t\t\tthis.cleanupPositioner?.()\n\n\t\t\t\t// Hide portal when dropdown is closed\n\t\t\t\tif (this.portal) {\n\t\t\t\t\tthis.portal.style.display = 'none'\n\t\t\t\t\tthis.portal.innerHTML = ''\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Setup floating UI positioning with teleportation\n\t */\n\tprivate setupPositioner() {\n\t\tif (!this.triggerContainer || !this.portal) return\n\n\t\t// Show the portal\n\t\tthis.portal.style.display = 'block'\n\n\t\t// Move content to portal\n\t\tthis.teleportContentToPortal()\n\n\t\t// Setup positioning\n\t\tthis.cleanupPositioner = autoUpdate(this.triggerContainer, this.portal, () => {\n\t\t\tcomputePosition(this.triggerContainer, this.portal, {\n\t\t\t\tplacement: this.placement,\n\t\t\t\tmiddleware: [\n\t\t\t\t\toffset(this.distance),\n\t\t\t\t\tflip({\n\t\t\t\t\t\tfallbackPlacements: ['top-start', 'bottom-start'],\n\t\t\t\t\t}),\n\t\t\t\t\tshift({ padding: 0 }),\n\t\t\t\t],\n\t\t\t}).then(({ x, y }) => {\n\t\t\t\t// Update portal position\n\t\t\t\tObject.assign(this.portal.style, {\n\t\t\t\t\tleft: `${x}px`,\n\t\t\t\t\ttop: `${y - 8}px`,\n\t\t\t\t})\n\t\t\t})\n\t\t})\n\t}\n\n\t/**\n\t * Move slotted content to the portal\n\t */\n\tprivate teleportContentToPortal() {\n\t\tif (!this.portal) return\n\n\t\t// Clear existing content\n\t\tthis.portal.innerHTML = ''\n\n\t\t// Clone and move slotted content to portal\n\t\tthis.contentElements.forEach(element => {\n\t\t\t// Get computed styles to ensure portal content matches original styling\n\t\t\tconst clonedElement = element.cloneNode(true) as HTMLElement\n\n\t\t\t// Ensure dropdown-content elements maintain their styles when teleported\n\t\t\tif (element.tagName.toLowerCase() === 'schmancy-dropdown-content') {\n\t\t\t\tclonedElement.addEventListener('slotchange', () => {\n\t\t\t\t\t// Propagate any slot changes to class changes on children\n\t\t\t\t\tconst contentDiv = clonedElement.shadowRoot?.querySelector('[part=\"content\"]')\n\t\t\t\t\tif (contentDiv) {\n\t\t\t\t\t\tcontentDiv.classList.add('schmancy-dropdown-content')\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t}\n\n\t\t\tthis.portal?.appendChild(clonedElement)\n\t\t})\n\t}\n\n\t/**\n\t * Handle trigger click to toggle dropdown\n\t */\n\tprivate handleTriggerClick(e: Event) {\n\t\te.stopPropagation()\n\t\tthis.toggle()\n\t}\n\n\trender() {\n\t\treturn html`\n\t\t\t<div class=\"trigger-container\" @click=${this.handleTriggerClick}>\n\t\t\t\t<slot name=\"trigger\"></slot>\n\t\t\t</div>\n\n\t\t\t<div class=\"dropdown-content-container\" ?hidden=${!this.open}>\n\t\t\t\t<slot\n\t\t\t\t\t@slotchange=${() => {\n\t\t\t\t\t\tif (this.open) {\n\t\t\t\t\t\t\tthis.teleportContentToPortal()\n\t\t\t\t\t\t\tthis.setupPositioner()\n\t\t\t\t\t\t}\n\t\t\t\t\t}}\n\t\t\t\t></slot>\n\t\t\t</div>\n\t\t`\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-dropdown': SchmancyDropdown\n\t}\n}\n","import { TailwindElement } from '@mixins/index'\nimport { css, html } from 'lit'\nimport { customElement, property } from 'lit/decorators.js'\n\n/**\n * Content container for the schmancy-dropdown component.\n *\n * @element schmancy-dropdown-content\n * @slot - Default slot for dropdown content\n */\n@customElement('schmancy-dropdown-content')\nexport class SchmancyDropdownContent extends TailwindElement(css`\n\t:host {\n\t\tdisplay: block;\n\t\tposition: absolute;\n\t\tz-index: 1000;\n\t\tmin-width: 10rem;\n\t\tmargin: 0;\n\t\ttext-align: left;\n\t\tlist-style: none;\n\t\tbackground-color: var(--schmancy-sys-color-surface-container);\n\t\tbackground-clip: padding-box;\n\t\tborder-radius: 0.375rem;\n\t\tbox-shadow: var(--schmancy-sys-elevation-3);\n\t\twill-change: transform;\n\t\ttransform-origin: top left;\n\t\tanimation: dropdownAnimation 0.1s ease-out forwards;\n\t}\n\n\t:host([hidden]) {\n\t\tdisplay: none;\n\t}\n\n\t@keyframes dropdownAnimation {\n\t\tfrom {\n\t\t\topacity: 0;\n\t\t\ttransform: scale(0.95);\n\t\t}\n\t\tto {\n\t\t\topacity: 1;\n\t\t\ttransform: scale(1);\n\t\t}\n\t}\n\n\t/* Apply styles to content both in the component and when teleported to the portal */\n\t.schmancy-dropdown-content {\n\t\tbackground-color: var(--schmancy-sys-color-surface-container);\n\t\tborder-radius: 0.375rem;\n\t\tbox-shadow: var(--schmancy-sys-elevation-3);\n\t\twill-change: transform;\n\t\ttransform-origin: top left;\n\t\tanimation: dropdownAnimation 0.1s ease-out forwards;\n\t}\n`) {\n\t/**\n\t * Width of the dropdown content\n\t */\n\t@property({ type: String })\n\twidth: string = 'auto'\n\n\t/**\n\t * Maximum height of the dropdown content\n\t */\n\t@property({ type: String })\n\tmaxHeight: string = '80vh'\n\n\t/**\n\t * Whether to render with a shadow\n\t */\n\t@property({ type: Boolean })\n\tshadow: boolean = true\n\n\t/**\n\t * Border radius style\n\t */\n\t@property({ type: String })\n\tradius: 'none' | 'sm' | 'md' | 'lg' | 'full' = 'md'\n\n\trender() {\n\t\tconst classes = {\n\t\t\t'schmancy-dropdown-content': true,\n\t\t\t'overflow-auto': true,\n\t\t\t'shadow-none': !this.shadow,\n\t\t\t'rounded-none': this.radius === 'none',\n\t\t\t'rounded-sm': this.radius === 'sm',\n\t\t\t'rounded-md': this.radius === 'md',\n\t\t\t'rounded-lg': this.radius === 'lg',\n\t\t\t'rounded-full': this.radius === 'full',\n\t\t}\n\n\t\tconst styles = {\n\t\t\twidth: this.width,\n\t\t\tmaxHeight: this.maxHeight,\n\t\t}\n\n\t\treturn html`\n\t\t\t<div class=${this.classMap(classes)} style=${this.styleMap(styles)} part=\"content\">\n\t\t\t\t<slot></slot>\n\t\t\t</div>\n\t\t`\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-dropdown-content': SchmancyDropdownContent\n\t}\n}\n"],"names":["SchmancyDropdown","$LitElement","css","constructor","super","arguments","this","open","placement","distance","portal","connectedCallback","setupPortal","fromEvent","document","pipe","filter","isEventFromSelf","event","takeUntil","disconnecting","subscribe","key","portalContainer","getElementById","createElement","id","style","position","zIndex","top","left","pointerEvents","body","appendChild","className","display","composedPath","some","el","disconnectedCallback","cleanupPositioner","remove","toggle","changedProps","updated","has","setupPositioner","innerHTML","triggerContainer","teleportContentToPortal","autoUpdate","computePosition","middleware","offset","flip","fallbackPlacements","shift","padding","then","x","y","Object","assign","contentElements","forEach","element","clonedElement","cloneNode","tagName","toLowerCase","addEventListener","contentDiv","shadowRoot","querySelector","classList","add","e","stopPropagation","render","html","handleTriggerClick","__decorateClass","property","type","Boolean","reflect","prototype","String","Number","query","queryAssignedElements","flatten","state","slot","customElement","SchmancyDropdownContent","TailwindElement","width","maxHeight","shadow","radius","classes","styles","classMap","styleMap"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- "use strict";const l=require("@floating-ui/dom"),p=require("rxjs");require("lit/directives/class-map.js"),require("lit/directives/style-map.js");const m=require("./litElement.mixin-B12Y4mEr.cjs"),y=require("./tailwind.mixin-BlZIIaOE.cjs"),n=require("lit/decorators.js"),h=require("lit");var u=Object.defineProperty,g=Object.getOwnPropertyDescriptor,i=(t,e,r,s)=>{for(var a,o=s>1?void 0:s?g(e,r):e,c=t.length-1;c>=0;c--)(a=t[c])&&(o=(s?a(e,r,o):a(o))||o);return s&&o&&u(e,r,o),o};exports.SchmancyDropdown=class extends m.$LitElement(h.css`
1
+ "use strict";const l=require("@floating-ui/dom"),p=require("rxjs");require("lit/directives/class-map.js"),require("lit/directives/style-map.js");const m=require("./litElement.mixin-4iclDbF3.cjs"),y=require("./tailwind.mixin-Bwf86oi5.cjs"),n=require("lit/decorators.js"),h=require("lit");var u=Object.defineProperty,g=Object.getOwnPropertyDescriptor,i=(t,e,r,s)=>{for(var a,o=s>1?void 0:s?g(e,r):e,c=t.length-1;c>=0;c--)(a=t[c])&&(o=(s?a(e,r,o):a(o))||o);return s&&o&&u(e,r,o),o};exports.SchmancyDropdown=class extends m.$LitElement(h.css`
2
2
  :host {
3
3
  display: inline-block;
4
4
  position: relative;
@@ -60,4 +60,4 @@
60
60
  <slot></slot>
61
61
  </div>
62
62
  `}},d([n.property({type:String})],exports.SchmancyDropdownContent.prototype,"width",2),d([n.property({type:String})],exports.SchmancyDropdownContent.prototype,"maxHeight",2),d([n.property({type:Boolean})],exports.SchmancyDropdownContent.prototype,"shadow",2),d([n.property({type:String})],exports.SchmancyDropdownContent.prototype,"radius",2),exports.SchmancyDropdownContent=d([n.customElement("schmancy-dropdown-content")],exports.SchmancyDropdownContent);
63
- //# sourceMappingURL=dropdown-content-m1aSF-Oh.cjs.map
63
+ //# sourceMappingURL=dropdown-content-f0LuoUKR.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"dropdown-content-m1aSF-Oh.cjs","sources":["../src/dropdown/dropdown-component.ts","../src/dropdown/dropdown-content.ts"],"sourcesContent":["import { autoUpdate, computePosition, flip, offset, shift } from '@floating-ui/dom'\nimport { $LitElement } from '@mixins/index'\nimport { css, html } from 'lit'\nimport { customElement, property, query, queryAssignedElements, state } from 'lit/decorators.js'\nimport { filter, fromEvent, takeUntil } from 'rxjs'\n\n/**\n * A dropdown component that displays content when triggered.\n *\n * @element schmancy-dropdown\n * @slot trigger - The element that triggers the dropdown\n * @slot - Default slot for the dropdown content\n */\n@customElement('schmancy-dropdown')\nexport class SchmancyDropdown extends $LitElement(css`\n\t:host {\n\t\tdisplay: inline-block;\n\t\tposition: relative;\n\t}\n`) {\n\t/**\n\t * Whether the dropdown is currently open\n\t */\n\t@property({ type: Boolean, reflect: true })\n\topen = false\n\n\t/**\n\t * Placement of the dropdown relative to the trigger\n\t */\n\t@property({ type: String })\n\tplacement:\n\t\t| 'top'\n\t\t| 'top-start'\n\t\t| 'top-end'\n\t\t| 'right'\n\t\t| 'right-start'\n\t\t| 'right-end'\n\t\t| 'bottom'\n\t\t| 'bottom-start'\n\t\t| 'bottom-end'\n\t\t| 'left'\n\t\t| 'left-start'\n\t\t| 'left-end' = 'bottom-start'\n\n\t/**\n\t * Offset distance in pixels\n\t */\n\t@property({ type: Number })\n\tdistance = 8\n\n\t@query('.trigger-container') triggerContainer!: HTMLElement\n\t@query('.dropdown-content-container') contentContainer!: HTMLElement\n\t@queryAssignedElements({ flatten: true }) contentElements!: HTMLElement[]\n\t@state() private portal: HTMLElement | null = null\n\n\t@queryAssignedElements({ slot: 'trigger', flatten: true })\n\ttriggerElements!: Array<HTMLElement>\n\n\tprivate cleanupPositioner?: () => void\n\n\tconnectedCallback() {\n\t\tsuper.connectedCallback()\n\n\t\t// Create portal container for teleporting content to document body\n\t\tthis.setupPortal()\n\n\t\t// Listen for document clicks to close dropdown when clicking outside\n\t\tfromEvent<MouseEvent>(document, 'click')\n\t\t\t.pipe(\n\t\t\t\tfilter(event => this.open && !this.isEventFromSelf(event)),\n\t\t\t\ttakeUntil(this.disconnecting),\n\t\t\t)\n\t\t\t.subscribe(() => {\n\t\t\t\tthis.open = false\n\t\t\t})\n\n\t\t// Listen for escape key to close dropdown\n\t\tfromEvent<KeyboardEvent>(document, 'keydown')\n\t\t\t.pipe(\n\t\t\t\tfilter(event => this.open && event.key === 'Escape'),\n\t\t\t\ttakeUntil(this.disconnecting),\n\t\t\t)\n\t\t\t.subscribe(() => {\n\t\t\t\tthis.open = false\n\t\t\t})\n\t}\n\n\t/**\n\t * Set up the portal element for teleporting content\n\t */\n\tprivate setupPortal() {\n\t\t// Check if portal container exists\n\t\tlet portalContainer = document.getElementById('schmancy-portal-container')\n\n\t\t// Create portal container if it doesn't exist\n\t\tif (!portalContainer) {\n\t\t\tportalContainer = document.createElement('div')\n\t\t\tportalContainer.id = 'schmancy-portal-container'\n\t\t\tportalContainer.style.position = 'fixed'\n\t\t\tportalContainer.style.zIndex = '10000'\n\t\t\tportalContainer.style.top = '0'\n\t\t\tportalContainer.style.left = '0'\n\t\t\tportalContainer.style.pointerEvents = 'none'\n\t\t\tdocument.body.appendChild(portalContainer)\n\t\t}\n\n\t\t// Create portal for this specific dropdown\n\t\tconst portal = document.createElement('div')\n\t\tportal.className = 'schmancy-dropdown-portal'\n\t\tportal.style.position = 'absolute'\n\t\tportal.style.pointerEvents = 'auto'\n\t\tportal.style.display = 'none'\n\t\tportalContainer.appendChild(portal)\n\n\t\tthis.portal = portal\n\t}\n\n\t/**\n\t * Check if an event originated from within this component\n\t */\n\tprivate isEventFromSelf(event: Event): boolean {\n\t\treturn event.composedPath().some(el => el === this)\n\t}\n\n\tdisconnectedCallback() {\n\t\tthis.cleanupPositioner?.()\n\n\t\t// Remove portal when component is disconnected\n\t\tif (this.portal) {\n\t\t\tthis.portal.remove()\n\t\t\tthis.portal = null\n\t\t}\n\n\t\tsuper.disconnectedCallback()\n\t}\n\n\t/**\n\t * Toggle the dropdown open state\n\t */\n\ttoggle() {\n\t\tthis.open = !this.open\n\t}\n\n\tupdated(changedProps: Map<string, any>) {\n\t\tsuper.updated(changedProps)\n\n\t\tif (changedProps.has('open')) {\n\t\t\tif (this.open) {\n\t\t\t\tthis.setupPositioner()\n\t\t\t} else {\n\t\t\t\tthis.cleanupPositioner?.()\n\n\t\t\t\t// Hide portal when dropdown is closed\n\t\t\t\tif (this.portal) {\n\t\t\t\t\tthis.portal.style.display = 'none'\n\t\t\t\t\tthis.portal.innerHTML = ''\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Setup floating UI positioning with teleportation\n\t */\n\tprivate setupPositioner() {\n\t\tif (!this.triggerContainer || !this.portal) return\n\n\t\t// Show the portal\n\t\tthis.portal.style.display = 'block'\n\n\t\t// Move content to portal\n\t\tthis.teleportContentToPortal()\n\n\t\t// Setup positioning\n\t\tthis.cleanupPositioner = autoUpdate(this.triggerContainer, this.portal, () => {\n\t\t\tcomputePosition(this.triggerContainer, this.portal, {\n\t\t\t\tplacement: this.placement,\n\t\t\t\tmiddleware: [\n\t\t\t\t\toffset(this.distance),\n\t\t\t\t\tflip({\n\t\t\t\t\t\tfallbackPlacements: ['top-start', 'bottom-start'],\n\t\t\t\t\t}),\n\t\t\t\t\tshift({ padding: 0 }),\n\t\t\t\t],\n\t\t\t}).then(({ x, y }) => {\n\t\t\t\t// Update portal position\n\t\t\t\tObject.assign(this.portal.style, {\n\t\t\t\t\tleft: `${x}px`,\n\t\t\t\t\ttop: `${y - 8}px`,\n\t\t\t\t})\n\t\t\t})\n\t\t})\n\t}\n\n\t/**\n\t * Move slotted content to the portal\n\t */\n\tprivate teleportContentToPortal() {\n\t\tif (!this.portal) return\n\n\t\t// Clear existing content\n\t\tthis.portal.innerHTML = ''\n\n\t\t// Clone and move slotted content to portal\n\t\tthis.contentElements.forEach(element => {\n\t\t\t// Get computed styles to ensure portal content matches original styling\n\t\t\tconst clonedElement = element.cloneNode(true) as HTMLElement\n\n\t\t\t// Ensure dropdown-content elements maintain their styles when teleported\n\t\t\tif (element.tagName.toLowerCase() === 'schmancy-dropdown-content') {\n\t\t\t\tclonedElement.addEventListener('slotchange', () => {\n\t\t\t\t\t// Propagate any slot changes to class changes on children\n\t\t\t\t\tconst contentDiv = clonedElement.shadowRoot?.querySelector('[part=\"content\"]')\n\t\t\t\t\tif (contentDiv) {\n\t\t\t\t\t\tcontentDiv.classList.add('schmancy-dropdown-content')\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t}\n\n\t\t\tthis.portal?.appendChild(clonedElement)\n\t\t})\n\t}\n\n\t/**\n\t * Handle trigger click to toggle dropdown\n\t */\n\tprivate handleTriggerClick(e: Event) {\n\t\te.stopPropagation()\n\t\tthis.toggle()\n\t}\n\n\trender() {\n\t\treturn html`\n\t\t\t<div class=\"trigger-container\" @click=${this.handleTriggerClick}>\n\t\t\t\t<slot name=\"trigger\"></slot>\n\t\t\t</div>\n\n\t\t\t<div class=\"dropdown-content-container\" ?hidden=${!this.open}>\n\t\t\t\t<slot\n\t\t\t\t\t@slotchange=${() => {\n\t\t\t\t\t\tif (this.open) {\n\t\t\t\t\t\t\tthis.teleportContentToPortal()\n\t\t\t\t\t\t\tthis.setupPositioner()\n\t\t\t\t\t\t}\n\t\t\t\t\t}}\n\t\t\t\t></slot>\n\t\t\t</div>\n\t\t`\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-dropdown': SchmancyDropdown\n\t}\n}\n","import { TailwindElement } from '@mixins/index'\nimport { css, html } from 'lit'\nimport { customElement, property } from 'lit/decorators.js'\n\n/**\n * Content container for the schmancy-dropdown component.\n *\n * @element schmancy-dropdown-content\n * @slot - Default slot for dropdown content\n */\n@customElement('schmancy-dropdown-content')\nexport class SchmancyDropdownContent extends TailwindElement(css`\n\t:host {\n\t\tdisplay: block;\n\t\tposition: absolute;\n\t\tz-index: 1000;\n\t\tmin-width: 10rem;\n\t\tmargin: 0;\n\t\ttext-align: left;\n\t\tlist-style: none;\n\t\tbackground-color: var(--schmancy-sys-color-surface-container);\n\t\tbackground-clip: padding-box;\n\t\tborder-radius: 0.375rem;\n\t\tbox-shadow: var(--schmancy-sys-elevation-3);\n\t\twill-change: transform;\n\t\ttransform-origin: top left;\n\t\tanimation: dropdownAnimation 0.1s ease-out forwards;\n\t}\n\n\t:host([hidden]) {\n\t\tdisplay: none;\n\t}\n\n\t@keyframes dropdownAnimation {\n\t\tfrom {\n\t\t\topacity: 0;\n\t\t\ttransform: scale(0.95);\n\t\t}\n\t\tto {\n\t\t\topacity: 1;\n\t\t\ttransform: scale(1);\n\t\t}\n\t}\n\n\t/* Apply styles to content both in the component and when teleported to the portal */\n\t.schmancy-dropdown-content {\n\t\tbackground-color: var(--schmancy-sys-color-surface-container);\n\t\tborder-radius: 0.375rem;\n\t\tbox-shadow: var(--schmancy-sys-elevation-3);\n\t\twill-change: transform;\n\t\ttransform-origin: top left;\n\t\tanimation: dropdownAnimation 0.1s ease-out forwards;\n\t}\n`) {\n\t/**\n\t * Width of the dropdown content\n\t */\n\t@property({ type: String })\n\twidth: string = 'auto'\n\n\t/**\n\t * Maximum height of the dropdown content\n\t */\n\t@property({ type: String })\n\tmaxHeight: string = '80vh'\n\n\t/**\n\t * Whether to render with a shadow\n\t */\n\t@property({ type: Boolean })\n\tshadow: boolean = true\n\n\t/**\n\t * Border radius style\n\t */\n\t@property({ type: String })\n\tradius: 'none' | 'sm' | 'md' | 'lg' | 'full' = 'md'\n\n\trender() {\n\t\tconst classes = {\n\t\t\t'schmancy-dropdown-content': true,\n\t\t\t'overflow-auto': true,\n\t\t\t'shadow-none': !this.shadow,\n\t\t\t'rounded-none': this.radius === 'none',\n\t\t\t'rounded-sm': this.radius === 'sm',\n\t\t\t'rounded-md': this.radius === 'md',\n\t\t\t'rounded-lg': this.radius === 'lg',\n\t\t\t'rounded-full': this.radius === 'full',\n\t\t}\n\n\t\tconst styles = {\n\t\t\twidth: this.width,\n\t\t\tmaxHeight: this.maxHeight,\n\t\t}\n\n\t\treturn html`\n\t\t\t<div class=${this.classMap(classes)} style=${this.styleMap(styles)} part=\"content\">\n\t\t\t\t<slot></slot>\n\t\t\t</div>\n\t\t`\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-dropdown-content': SchmancyDropdownContent\n\t}\n}\n"],"names":["SchmancyDropdown","$LitElement","css","constructor","super","arguments","this","open","placement","distance","portal","connectedCallback","setupPortal","fromEvent","document","pipe","filter","isEventFromSelf","event","takeUntil","disconnecting","subscribe","key","portalContainer","getElementById","createElement","id","style","position","zIndex","top","left","pointerEvents","body","appendChild","className","display","composedPath","some","el","disconnectedCallback","cleanupPositioner","remove","toggle","changedProps","updated","has","setupPositioner","innerHTML","triggerContainer","teleportContentToPortal","autoUpdate","computePosition","middleware","offset","flip","fallbackPlacements","shift","padding","then","x","y","Object","assign","contentElements","forEach","element","clonedElement","cloneNode","tagName","toLowerCase","addEventListener","contentDiv","shadowRoot","querySelector","classList","add","e","stopPropagation","render","html","handleTriggerClick","__decorateClass","property","type","Boolean","reflect","prototype","String","Number","query","queryAssignedElements","flatten","state","slot","customElement","SchmancyDropdownContent","TailwindElement","width","maxHeight","shadow","radius","classes","styles","classMap","styleMap"],"mappings":"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"}
1
+ {"version":3,"file":"dropdown-content-f0LuoUKR.cjs","sources":["../src/dropdown/dropdown-component.ts","../src/dropdown/dropdown-content.ts"],"sourcesContent":["import { autoUpdate, computePosition, flip, offset, shift } from '@floating-ui/dom'\nimport { $LitElement } from '@mixins/index'\nimport { css, html } from 'lit'\nimport { customElement, property, query, queryAssignedElements, state } from 'lit/decorators.js'\nimport { filter, fromEvent, takeUntil } from 'rxjs'\n\n/**\n * A dropdown component that displays content when triggered.\n *\n * @element schmancy-dropdown\n * @slot trigger - The element that triggers the dropdown\n * @slot - Default slot for the dropdown content\n */\n@customElement('schmancy-dropdown')\nexport class SchmancyDropdown extends $LitElement(css`\n\t:host {\n\t\tdisplay: inline-block;\n\t\tposition: relative;\n\t}\n`) {\n\t/**\n\t * Whether the dropdown is currently open\n\t */\n\t@property({ type: Boolean, reflect: true })\n\topen = false\n\n\t/**\n\t * Placement of the dropdown relative to the trigger\n\t */\n\t@property({ type: String })\n\tplacement:\n\t\t| 'top'\n\t\t| 'top-start'\n\t\t| 'top-end'\n\t\t| 'right'\n\t\t| 'right-start'\n\t\t| 'right-end'\n\t\t| 'bottom'\n\t\t| 'bottom-start'\n\t\t| 'bottom-end'\n\t\t| 'left'\n\t\t| 'left-start'\n\t\t| 'left-end' = 'bottom-start'\n\n\t/**\n\t * Offset distance in pixels\n\t */\n\t@property({ type: Number })\n\tdistance = 8\n\n\t@query('.trigger-container') triggerContainer!: HTMLElement\n\t@query('.dropdown-content-container') contentContainer!: HTMLElement\n\t@queryAssignedElements({ flatten: true }) contentElements!: HTMLElement[]\n\t@state() private portal: HTMLElement | null = null\n\n\t@queryAssignedElements({ slot: 'trigger', flatten: true })\n\ttriggerElements!: Array<HTMLElement>\n\n\tprivate cleanupPositioner?: () => void\n\n\tconnectedCallback() {\n\t\tsuper.connectedCallback()\n\n\t\t// Create portal container for teleporting content to document body\n\t\tthis.setupPortal()\n\n\t\t// Listen for document clicks to close dropdown when clicking outside\n\t\tfromEvent<MouseEvent>(document, 'click')\n\t\t\t.pipe(\n\t\t\t\tfilter(event => this.open && !this.isEventFromSelf(event)),\n\t\t\t\ttakeUntil(this.disconnecting),\n\t\t\t)\n\t\t\t.subscribe(() => {\n\t\t\t\tthis.open = false\n\t\t\t})\n\n\t\t// Listen for escape key to close dropdown\n\t\tfromEvent<KeyboardEvent>(document, 'keydown')\n\t\t\t.pipe(\n\t\t\t\tfilter(event => this.open && event.key === 'Escape'),\n\t\t\t\ttakeUntil(this.disconnecting),\n\t\t\t)\n\t\t\t.subscribe(() => {\n\t\t\t\tthis.open = false\n\t\t\t})\n\t}\n\n\t/**\n\t * Set up the portal element for teleporting content\n\t */\n\tprivate setupPortal() {\n\t\t// Check if portal container exists\n\t\tlet portalContainer = document.getElementById('schmancy-portal-container')\n\n\t\t// Create portal container if it doesn't exist\n\t\tif (!portalContainer) {\n\t\t\tportalContainer = document.createElement('div')\n\t\t\tportalContainer.id = 'schmancy-portal-container'\n\t\t\tportalContainer.style.position = 'fixed'\n\t\t\tportalContainer.style.zIndex = '10000'\n\t\t\tportalContainer.style.top = '0'\n\t\t\tportalContainer.style.left = '0'\n\t\t\tportalContainer.style.pointerEvents = 'none'\n\t\t\tdocument.body.appendChild(portalContainer)\n\t\t}\n\n\t\t// Create portal for this specific dropdown\n\t\tconst portal = document.createElement('div')\n\t\tportal.className = 'schmancy-dropdown-portal'\n\t\tportal.style.position = 'absolute'\n\t\tportal.style.pointerEvents = 'auto'\n\t\tportal.style.display = 'none'\n\t\tportalContainer.appendChild(portal)\n\n\t\tthis.portal = portal\n\t}\n\n\t/**\n\t * Check if an event originated from within this component\n\t */\n\tprivate isEventFromSelf(event: Event): boolean {\n\t\treturn event.composedPath().some(el => el === this)\n\t}\n\n\tdisconnectedCallback() {\n\t\tthis.cleanupPositioner?.()\n\n\t\t// Remove portal when component is disconnected\n\t\tif (this.portal) {\n\t\t\tthis.portal.remove()\n\t\t\tthis.portal = null\n\t\t}\n\n\t\tsuper.disconnectedCallback()\n\t}\n\n\t/**\n\t * Toggle the dropdown open state\n\t */\n\ttoggle() {\n\t\tthis.open = !this.open\n\t}\n\n\tupdated(changedProps: Map<string, any>) {\n\t\tsuper.updated(changedProps)\n\n\t\tif (changedProps.has('open')) {\n\t\t\tif (this.open) {\n\t\t\t\tthis.setupPositioner()\n\t\t\t} else {\n\t\t\t\tthis.cleanupPositioner?.()\n\n\t\t\t\t// Hide portal when dropdown is closed\n\t\t\t\tif (this.portal) {\n\t\t\t\t\tthis.portal.style.display = 'none'\n\t\t\t\t\tthis.portal.innerHTML = ''\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Setup floating UI positioning with teleportation\n\t */\n\tprivate setupPositioner() {\n\t\tif (!this.triggerContainer || !this.portal) return\n\n\t\t// Show the portal\n\t\tthis.portal.style.display = 'block'\n\n\t\t// Move content to portal\n\t\tthis.teleportContentToPortal()\n\n\t\t// Setup positioning\n\t\tthis.cleanupPositioner = autoUpdate(this.triggerContainer, this.portal, () => {\n\t\t\tcomputePosition(this.triggerContainer, this.portal, {\n\t\t\t\tplacement: this.placement,\n\t\t\t\tmiddleware: [\n\t\t\t\t\toffset(this.distance),\n\t\t\t\t\tflip({\n\t\t\t\t\t\tfallbackPlacements: ['top-start', 'bottom-start'],\n\t\t\t\t\t}),\n\t\t\t\t\tshift({ padding: 0 }),\n\t\t\t\t],\n\t\t\t}).then(({ x, y }) => {\n\t\t\t\t// Update portal position\n\t\t\t\tObject.assign(this.portal.style, {\n\t\t\t\t\tleft: `${x}px`,\n\t\t\t\t\ttop: `${y - 8}px`,\n\t\t\t\t})\n\t\t\t})\n\t\t})\n\t}\n\n\t/**\n\t * Move slotted content to the portal\n\t */\n\tprivate teleportContentToPortal() {\n\t\tif (!this.portal) return\n\n\t\t// Clear existing content\n\t\tthis.portal.innerHTML = ''\n\n\t\t// Clone and move slotted content to portal\n\t\tthis.contentElements.forEach(element => {\n\t\t\t// Get computed styles to ensure portal content matches original styling\n\t\t\tconst clonedElement = element.cloneNode(true) as HTMLElement\n\n\t\t\t// Ensure dropdown-content elements maintain their styles when teleported\n\t\t\tif (element.tagName.toLowerCase() === 'schmancy-dropdown-content') {\n\t\t\t\tclonedElement.addEventListener('slotchange', () => {\n\t\t\t\t\t// Propagate any slot changes to class changes on children\n\t\t\t\t\tconst contentDiv = clonedElement.shadowRoot?.querySelector('[part=\"content\"]')\n\t\t\t\t\tif (contentDiv) {\n\t\t\t\t\t\tcontentDiv.classList.add('schmancy-dropdown-content')\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t}\n\n\t\t\tthis.portal?.appendChild(clonedElement)\n\t\t})\n\t}\n\n\t/**\n\t * Handle trigger click to toggle dropdown\n\t */\n\tprivate handleTriggerClick(e: Event) {\n\t\te.stopPropagation()\n\t\tthis.toggle()\n\t}\n\n\trender() {\n\t\treturn html`\n\t\t\t<div class=\"trigger-container\" @click=${this.handleTriggerClick}>\n\t\t\t\t<slot name=\"trigger\"></slot>\n\t\t\t</div>\n\n\t\t\t<div class=\"dropdown-content-container\" ?hidden=${!this.open}>\n\t\t\t\t<slot\n\t\t\t\t\t@slotchange=${() => {\n\t\t\t\t\t\tif (this.open) {\n\t\t\t\t\t\t\tthis.teleportContentToPortal()\n\t\t\t\t\t\t\tthis.setupPositioner()\n\t\t\t\t\t\t}\n\t\t\t\t\t}}\n\t\t\t\t></slot>\n\t\t\t</div>\n\t\t`\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-dropdown': SchmancyDropdown\n\t}\n}\n","import { TailwindElement } from '@mixins/index'\nimport { css, html } from 'lit'\nimport { customElement, property } from 'lit/decorators.js'\n\n/**\n * Content container for the schmancy-dropdown component.\n *\n * @element schmancy-dropdown-content\n * @slot - Default slot for dropdown content\n */\n@customElement('schmancy-dropdown-content')\nexport class SchmancyDropdownContent extends TailwindElement(css`\n\t:host {\n\t\tdisplay: block;\n\t\tposition: absolute;\n\t\tz-index: 1000;\n\t\tmin-width: 10rem;\n\t\tmargin: 0;\n\t\ttext-align: left;\n\t\tlist-style: none;\n\t\tbackground-color: var(--schmancy-sys-color-surface-container);\n\t\tbackground-clip: padding-box;\n\t\tborder-radius: 0.375rem;\n\t\tbox-shadow: var(--schmancy-sys-elevation-3);\n\t\twill-change: transform;\n\t\ttransform-origin: top left;\n\t\tanimation: dropdownAnimation 0.1s ease-out forwards;\n\t}\n\n\t:host([hidden]) {\n\t\tdisplay: none;\n\t}\n\n\t@keyframes dropdownAnimation {\n\t\tfrom {\n\t\t\topacity: 0;\n\t\t\ttransform: scale(0.95);\n\t\t}\n\t\tto {\n\t\t\topacity: 1;\n\t\t\ttransform: scale(1);\n\t\t}\n\t}\n\n\t/* Apply styles to content both in the component and when teleported to the portal */\n\t.schmancy-dropdown-content {\n\t\tbackground-color: var(--schmancy-sys-color-surface-container);\n\t\tborder-radius: 0.375rem;\n\t\tbox-shadow: var(--schmancy-sys-elevation-3);\n\t\twill-change: transform;\n\t\ttransform-origin: top left;\n\t\tanimation: dropdownAnimation 0.1s ease-out forwards;\n\t}\n`) {\n\t/**\n\t * Width of the dropdown content\n\t */\n\t@property({ type: String })\n\twidth: string = 'auto'\n\n\t/**\n\t * Maximum height of the dropdown content\n\t */\n\t@property({ type: String })\n\tmaxHeight: string = '80vh'\n\n\t/**\n\t * Whether to render with a shadow\n\t */\n\t@property({ type: Boolean })\n\tshadow: boolean = true\n\n\t/**\n\t * Border radius style\n\t */\n\t@property({ type: String })\n\tradius: 'none' | 'sm' | 'md' | 'lg' | 'full' = 'md'\n\n\trender() {\n\t\tconst classes = {\n\t\t\t'schmancy-dropdown-content': true,\n\t\t\t'overflow-auto': true,\n\t\t\t'shadow-none': !this.shadow,\n\t\t\t'rounded-none': this.radius === 'none',\n\t\t\t'rounded-sm': this.radius === 'sm',\n\t\t\t'rounded-md': this.radius === 'md',\n\t\t\t'rounded-lg': this.radius === 'lg',\n\t\t\t'rounded-full': this.radius === 'full',\n\t\t}\n\n\t\tconst styles = {\n\t\t\twidth: this.width,\n\t\t\tmaxHeight: this.maxHeight,\n\t\t}\n\n\t\treturn html`\n\t\t\t<div class=${this.classMap(classes)} style=${this.styleMap(styles)} part=\"content\">\n\t\t\t\t<slot></slot>\n\t\t\t</div>\n\t\t`\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-dropdown-content': SchmancyDropdownContent\n\t}\n}\n"],"names":["SchmancyDropdown","$LitElement","css","constructor","super","arguments","this","open","placement","distance","portal","connectedCallback","setupPortal","fromEvent","document","pipe","filter","isEventFromSelf","event","takeUntil","disconnecting","subscribe","key","portalContainer","getElementById","createElement","id","style","position","zIndex","top","left","pointerEvents","body","appendChild","className","display","composedPath","some","el","disconnectedCallback","cleanupPositioner","remove","toggle","changedProps","updated","has","setupPositioner","innerHTML","triggerContainer","teleportContentToPortal","autoUpdate","computePosition","middleware","offset","flip","fallbackPlacements","shift","padding","then","x","y","Object","assign","contentElements","forEach","element","clonedElement","cloneNode","tagName","toLowerCase","addEventListener","contentDiv","shadowRoot","querySelector","classList","add","e","stopPropagation","render","html","handleTriggerClick","__decorateClass","property","type","Boolean","reflect","prototype","String","Number","query","queryAssignedElements","flatten","state","slot","customElement","SchmancyDropdownContent","TailwindElement","width","maxHeight","shadow","radius","classes","styles","classMap","styleMap"],"mappings":"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"}
package/dist/dropdown.cjs CHANGED
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./dropdown-content-m1aSF-Oh.cjs");Object.defineProperty(exports,"SchmancyDropdown",{enumerable:!0,get:()=>e.SchmancyDropdown}),Object.defineProperty(exports,"SchmancyDropdownContent",{enumerable:!0,get:()=>e.SchmancyDropdownContent});
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./dropdown-content-f0LuoUKR.cjs");Object.defineProperty(exports,"SchmancyDropdown",{enumerable:!0,get:()=>e.SchmancyDropdown}),Object.defineProperty(exports,"SchmancyDropdownContent",{enumerable:!0,get:()=>e.SchmancyDropdownContent});
2
2
  //# sourceMappingURL=dropdown.cjs.map
package/dist/dropdown.js CHANGED
@@ -1,4 +1,4 @@
1
- import { S as a, a as c } from "./dropdown-content-BStJGihR.js";
1
+ import { S as a, a as c } from "./dropdown-content-BuKCBydD.js";
2
2
  export {
3
3
  a as SchmancyDropdown,
4
4
  c as SchmancyDropdownContent
@@ -1,4 +1,4 @@
1
- "use strict";require("rxjs"),require("lit/directives/class-map.js"),require("lit/directives/style-map.js");const $=require("./litElement.mixin-B12Y4mEr.cjs"),R=require("./tailwind.mixin-BlZIIaOE.cjs"),c=require("lit/decorators.js"),o=require("lit"),d=require("lit/directives/when.js"),g=require("lit/directives/ref.js"),S=require("lit/directives/repeat.js"),u=require("./notification-service-kLTt3JtW.cjs");require("./dialog-content-BFmy9Sbo.cjs");const k=require("./dialog-service-DS-aEjlX.cjs"),E=require("./sheet.service-DV9xNhS8.cjs");var C=Object.defineProperty,T=Object.getOwnPropertyDescriptor,m=(e,t,i,s)=>{for(var a,n=s>1?void 0:s?T(t,i):t,r=e.length-1;r>=0;r--)(a=e[r])&&(n=(s?a(t,i,n):a(n))||n);return s&&n&&C(t,i,n),n};exports.SchmancyMailbox=class extends $.$LitElement(o.css`
1
+ "use strict";require("rxjs"),require("lit/directives/class-map.js"),require("lit/directives/style-map.js");const $=require("./litElement.mixin-4iclDbF3.cjs"),R=require("./tailwind.mixin-Bwf86oi5.cjs"),c=require("lit/decorators.js"),o=require("lit"),d=require("lit/directives/when.js"),g=require("lit/directives/ref.js"),S=require("lit/directives/repeat.js"),u=require("./notification-service-h3GuXar7.cjs");require("./dialog-content-VroTT22f.cjs");const k=require("./dialog-service-Wna1JO09.cjs"),E=require("./sheet.service-DR9KJfMa.cjs");var C=Object.defineProperty,T=Object.getOwnPropertyDescriptor,m=(e,t,i,s)=>{for(var a,n=s>1?void 0:s?T(t,i):t,r=e.length-1;r>=0;r--)(a=e[r])&&(n=(s?a(t,i,n):a(n))||n);return s&&n&&C(t,i,n),n};exports.SchmancyMailbox=class extends $.$LitElement(o.css`
2
2
  :host {
3
3
  display: block;
4
4
  height: 100%;
@@ -1170,4 +1170,4 @@ Tab key inserts 2 spaces for better formatting."
1170
1170
  </div>
1171
1171
  `)}
1172
1172
  `}},y([c.property({type:Boolean})],exports.SchmancyEmailRecipients.prototype,"disabled",2),y([c.property({type:Array})],exports.SchmancyEmailRecipients.prototype,"recipients",2),y([c.property({type:Array})],exports.SchmancyEmailRecipients.prototype,"selectedRecipients",2),y([c.property({type:Boolean})],exports.SchmancyEmailRecipients.prototype,"enableCsvImport",2),y([c.property({type:Boolean})],exports.SchmancyEmailRecipients.prototype,"enableDragDrop",2),y([c.property({type:String})],exports.SchmancyEmailRecipients.prototype,"title",2),y([c.property({type:String})],exports.SchmancyEmailRecipients.prototype,"emptyStateTitle",2),y([c.property({type:String})],exports.SchmancyEmailRecipients.prototype,"emptyStateMessage",2),y([c.property({type:Object})],exports.SchmancyEmailRecipients.prototype,"csvParser",2),y([c.state()],exports.SchmancyEmailRecipients.prototype,"dragOver",2),y([c.state()],exports.SchmancyEmailRecipients.prototype,"localSelectedRecipients",2),y([c.state()],exports.SchmancyEmailRecipients.prototype,"searchQuery",2),y([c.state()],exports.SchmancyEmailRecipients.prototype,"filteredRecipients",2),y([c.state()],exports.SchmancyEmailRecipients.prototype,"boatState",2),exports.SchmancyEmailRecipients=y([c.customElement("schmancy-email-recipients")],exports.SchmancyEmailRecipients);
1173
- //# sourceMappingURL=email-recipients-CbZNnzoj.cjs.map
1173
+ //# sourceMappingURL=email-recipients-BlEtpbdr.cjs.map