@mhmo91/schmancy 0.7.7 → 0.8.4

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 (551) hide show
  1. package/ai/audio.md +241 -0
  2. package/ai/content-drawer.md +163 -70
  3. package/ai/lightbox.md +381 -0
  4. package/ai/typography.md +75 -49
  5. package/dist/ai/audio.md +241 -0
  6. package/dist/ai/content-drawer.md +163 -70
  7. package/dist/ai/lightbox.md +381 -0
  8. package/dist/ai/typography.md +75 -49
  9. package/dist/{animated-text-Be290e6l.cjs → animated-text-B3DQRJBy.cjs} +2 -2
  10. package/dist/{animated-text-Be290e6l.cjs.map → animated-text-B3DQRJBy.cjs.map} +1 -1
  11. package/dist/{animated-text-DuLrWJ6O.js → animated-text-BAj4-6hE.js} +3 -3
  12. package/dist/{animated-text-DuLrWJ6O.js.map → animated-text-BAj4-6hE.js.map} +1 -1
  13. package/dist/animated-text.cjs +1 -1
  14. package/dist/animated-text.js +1 -1
  15. package/dist/area.cjs +1 -1
  16. package/dist/{area.component-BzjJiNTJ.js → area.component-CP4DZ0d8.js} +104 -98
  17. package/dist/area.component-CP4DZ0d8.js.map +1 -0
  18. package/dist/area.component-ChxSLt16.cjs +12 -0
  19. package/dist/area.component-ChxSLt16.cjs.map +1 -0
  20. package/dist/area.js +1 -1
  21. package/dist/audio.cjs +2 -0
  22. package/dist/audio.cjs.map +1 -0
  23. package/dist/audio.js +9 -0
  24. package/dist/audio.js.map +1 -0
  25. package/dist/{autocomplete-CHmGhBNt.cjs → autocomplete-CAaVSg4g.cjs} +2 -2
  26. package/dist/{autocomplete-CHmGhBNt.cjs.map → autocomplete-CAaVSg4g.cjs.map} +1 -1
  27. package/dist/{autocomplete-FLkd9ju8.js → autocomplete-CGbACUYd.js} +4 -4
  28. package/dist/{autocomplete-FLkd9ju8.js.map → autocomplete-CGbACUYd.js.map} +1 -1
  29. package/dist/autocomplete.cjs +1 -1
  30. package/dist/autocomplete.js +1 -1
  31. package/dist/avatar-nWOZXEsW.cjs +273 -0
  32. package/dist/avatar-nWOZXEsW.cjs.map +1 -0
  33. package/dist/{avatar-C8P4lVfa.js → avatar-rLCF6MSI.js} +244 -259
  34. package/dist/avatar-rLCF6MSI.js.map +1 -0
  35. package/dist/badge.cjs +1 -1
  36. package/dist/badge.js +1 -1
  37. package/dist/{boat-Ma6LW-ny.js → boat-Ckt9v__d.js} +6 -6
  38. package/dist/{boat-Ma6LW-ny.js.map → boat-Ckt9v__d.js.map} +1 -1
  39. package/dist/{boat-kYOUec8f.cjs → boat-yNAZ2LLB.cjs} +5 -5
  40. package/dist/{boat-kYOUec8f.cjs.map → boat-yNAZ2LLB.cjs.map} +1 -1
  41. package/dist/boat.cjs +1 -1
  42. package/dist/boat.js +1 -1
  43. package/dist/busy.cjs +1 -1
  44. package/dist/busy.js +1 -1
  45. package/dist/button.cjs +1 -1
  46. package/dist/button.js +1 -1
  47. package/dist/card.cjs +1 -1
  48. package/dist/card.js +1 -1
  49. package/dist/charts.cjs +2 -0
  50. package/dist/charts.cjs.map +1 -0
  51. package/dist/charts.js +9 -0
  52. package/dist/charts.js.map +1 -0
  53. package/dist/{checkbox-DLZkKaon.cjs → checkbox-BnAlpsJN.cjs} +2 -2
  54. package/dist/{checkbox-DLZkKaon.cjs.map → checkbox-BnAlpsJN.cjs.map} +1 -1
  55. package/dist/{checkbox-x46L-XTG.js → checkbox-D22yfGe3.js} +6 -6
  56. package/dist/{checkbox-x46L-XTG.js.map → checkbox-D22yfGe3.js.map} +1 -1
  57. package/dist/checkbox.cjs +1 -1
  58. package/dist/checkbox.js +1 -1
  59. package/dist/chips.cjs +1 -1
  60. package/dist/chips.js +2 -2
  61. package/dist/code-highlight.cjs +1 -1
  62. package/dist/code-highlight.js +1 -1
  63. package/dist/{code-preview-C3DLglSl.js → code-preview-DPlQayFd.js} +3 -3
  64. package/dist/{code-preview-C3DLglSl.js.map → code-preview-DPlQayFd.js.map} +1 -1
  65. package/dist/{code-preview-BsQq77nu.cjs → code-preview-jPnX60FF.cjs} +2 -2
  66. package/dist/{code-preview-BsQq77nu.cjs.map → code-preview-jPnX60FF.cjs.map} +1 -1
  67. package/dist/components.cjs +1 -1
  68. package/dist/components.js +1 -1
  69. package/dist/content-drawer.cjs +1 -1
  70. package/dist/content-drawer.js +1 -1
  71. package/dist/{context-create-BvxbWTgj.js → context-create-B_S-sD5B.js} +69 -57
  72. package/dist/context-create-B_S-sD5B.js.map +1 -0
  73. package/dist/context-create-DTybDbZp.cjs +2 -0
  74. package/dist/context-create-DTybDbZp.cjs.map +1 -0
  75. package/dist/date-range-GFm5NG33.js +639 -0
  76. package/dist/date-range-GFm5NG33.js.map +1 -0
  77. package/dist/{date-range-inline-cGptw0hr.cjs → date-range-inline-CgX2o0FP.cjs} +2 -2
  78. package/dist/{date-range-inline-cGptw0hr.cjs.map → date-range-inline-CgX2o0FP.cjs.map} +1 -1
  79. package/dist/{date-range-inline-CfDu-lIo.js → date-range-inline-DTQLESAZ.js} +3 -3
  80. package/dist/{date-range-inline-CfDu-lIo.js.map → date-range-inline-DTQLESAZ.js.map} +1 -1
  81. package/dist/date-range-inline.cjs +1 -1
  82. package/dist/date-range-inline.js +1 -1
  83. package/dist/date-range-ug3B9CFT.cjs +119 -0
  84. package/dist/date-range-ug3B9CFT.cjs.map +1 -0
  85. package/dist/date-range.cjs +1 -1
  86. package/dist/date-range.js +1 -1
  87. package/dist/{delay-CXFIM6qK.cjs → delay-CWtBL0VD.cjs} +2 -2
  88. package/dist/delay-CWtBL0VD.cjs.map +1 -0
  89. package/dist/{delay-BINGOQ7f.js → delay-DEe1CmHc.js} +45 -45
  90. package/dist/delay-DEe1CmHc.js.map +1 -0
  91. package/dist/delay.cjs +1 -1
  92. package/dist/delay.js +1 -1
  93. package/dist/details-D-LXW23W.js +100 -0
  94. package/dist/details-D-LXW23W.js.map +1 -0
  95. package/dist/details-DVke77dU.cjs +55 -0
  96. package/dist/details-DVke77dU.cjs.map +1 -0
  97. package/dist/details.cjs +1 -1
  98. package/dist/details.js +1 -1
  99. package/dist/dialog-service-C86xTS8q.cjs +2 -0
  100. package/dist/dialog-service-C86xTS8q.cjs.map +1 -0
  101. package/dist/dialog-service-D9E3jLAR.js +118 -0
  102. package/dist/dialog-service-D9E3jLAR.js.map +1 -0
  103. package/dist/dialog.cjs +1 -1
  104. package/dist/dialog.component-BM0D-hK9.cjs +48 -0
  105. package/dist/dialog.component-BM0D-hK9.cjs.map +1 -0
  106. package/dist/dialog.component-a7FlKhGD.js +145 -0
  107. package/dist/dialog.component-a7FlKhGD.js.map +1 -0
  108. package/dist/dialog.js +7 -7
  109. package/dist/directives.cjs +1 -1
  110. package/dist/directives.js +11 -10
  111. package/dist/directives.js.map +1 -1
  112. package/dist/{divider-Bu6tzwGl.js → divider-CzTpxOqt.js} +3 -3
  113. package/dist/{divider-Bu6tzwGl.js.map → divider-CzTpxOqt.js.map} +1 -1
  114. package/dist/{divider-8tk2mDbL.cjs → divider-D8KStUhN.cjs} +2 -2
  115. package/dist/{divider-8tk2mDbL.cjs.map → divider-D8KStUhN.cjs.map} +1 -1
  116. package/dist/divider.cjs +1 -1
  117. package/dist/divider.js +1 -1
  118. package/dist/{dropdown-content-DFb07S8x.cjs → dropdown-content-CngZN3vv.cjs} +2 -2
  119. package/dist/{dropdown-content-DFb07S8x.cjs.map → dropdown-content-CngZN3vv.cjs.map} +1 -1
  120. package/dist/{dropdown-content-fVhnEKdY.js → dropdown-content-DCn-g0-f.js} +3 -3
  121. package/dist/{dropdown-content-fVhnEKdY.js.map → dropdown-content-DCn-g0-f.js.map} +1 -1
  122. package/dist/dropdown.cjs +1 -1
  123. package/dist/dropdown.js +1 -1
  124. package/dist/{email-recipients-BG3GxJvc.cjs → email-recipients-BhntMZMf.cjs} +2 -2
  125. package/dist/{email-recipients-BG3GxJvc.cjs.map → email-recipients-BhntMZMf.cjs.map} +1 -1
  126. package/dist/{email-recipients-OG52RGiH.js → email-recipients-BzjAKNJ0.js} +8 -7
  127. package/dist/{email-recipients-OG52RGiH.js.map → email-recipients-BzjAKNJ0.js.map} +1 -1
  128. package/dist/emotional-sounds-BRnFhww6.js +234 -0
  129. package/dist/emotional-sounds-BRnFhww6.js.map +1 -0
  130. package/dist/emotional-sounds-DVGhmoZf.cjs +2 -0
  131. package/dist/emotional-sounds-DVGhmoZf.cjs.map +1 -0
  132. package/dist/extra.cjs +1 -1
  133. package/dist/extra.js +1 -1
  134. package/dist/flex-5dR48zie.js +183 -0
  135. package/dist/flex-5dR48zie.js.map +1 -0
  136. package/dist/flex-oHl2EfYB.cjs +18 -0
  137. package/dist/flex-oHl2EfYB.cjs.map +1 -0
  138. package/dist/{form-cWJBcwc6.cjs → form-BlPiAPt7.cjs} +2 -2
  139. package/dist/{form-cWJBcwc6.cjs.map → form-BlPiAPt7.cjs.map} +1 -1
  140. package/dist/{form-tpyd1nsT.js → form-BxVM6JTn.js} +2 -2
  141. package/dist/{form-tpyd1nsT.js.map → form-BxVM6JTn.js.map} +1 -1
  142. package/dist/form.cjs +1 -1
  143. package/dist/form.js +1 -1
  144. package/dist/{formField.mixin-Mx5CwYUh.js → formField.mixin-BCGA7Ea3.js} +2 -2
  145. package/dist/{formField.mixin-Mx5CwYUh.js.map → formField.mixin-BCGA7Ea3.js.map} +1 -1
  146. package/dist/{formField.mixin-XlN2pAL0.cjs → formField.mixin-BfJMifU9.cjs} +2 -2
  147. package/dist/{formField.mixin-XlN2pAL0.cjs.map → formField.mixin-BfJMifU9.cjs.map} +1 -1
  148. package/dist/height-CfECBO2j.js +44 -0
  149. package/dist/height-CfECBO2j.js.map +1 -0
  150. package/dist/height-Z70qJYJK.cjs +2 -0
  151. package/dist/height-Z70qJYJK.cjs.map +1 -0
  152. package/dist/icon-DHEXr3c-.cjs +49 -0
  153. package/dist/icon-DHEXr3c-.cjs.map +1 -0
  154. package/dist/{icon-Y2qLOFqe.js → icon-DYpLoegR.js} +17 -17
  155. package/dist/icon-DYpLoegR.js.map +1 -0
  156. package/dist/icon-button-CmZBLHWC.js +164 -0
  157. package/dist/icon-button-CmZBLHWC.js.map +1 -0
  158. package/dist/icon-button-IbSX8C98.cjs +70 -0
  159. package/dist/icon-button-IbSX8C98.cjs.map +1 -0
  160. package/dist/icons.cjs +1 -1
  161. package/dist/icons.js +1 -1
  162. package/dist/index.cjs +1 -1
  163. package/dist/index.js +275 -250
  164. package/dist/index.js.map +1 -1
  165. package/dist/input-BByjYlgl.cjs +51 -0
  166. package/dist/input-BByjYlgl.cjs.map +1 -0
  167. package/dist/{input-DDCFZ3cr.js → input-D0cQ9DOY.js} +35 -31
  168. package/dist/input-D0cQ9DOY.js.map +1 -0
  169. package/dist/{input-chip-DVE4_1wn.js → input-chip-B5ErXgCB.js} +2 -2
  170. package/dist/{input-chip-DVE4_1wn.js.map → input-chip-B5ErXgCB.js.map} +1 -1
  171. package/dist/{input-chip-Bht9MU9G.cjs → input-chip-DkWaTciP.cjs} +2 -2
  172. package/dist/{input-chip-Bht9MU9G.cjs.map → input-chip-DkWaTciP.cjs.map} +1 -1
  173. package/dist/input.cjs +1 -1
  174. package/dist/input.js +1 -1
  175. package/dist/json-BZVe74np.cjs +12 -0
  176. package/dist/json-BZVe74np.cjs.map +1 -0
  177. package/dist/json-PKewOWuJ.js +51 -0
  178. package/dist/json-PKewOWuJ.js.map +1 -0
  179. package/dist/json.cjs +2 -0
  180. package/dist/json.cjs.map +1 -0
  181. package/dist/json.js +5 -0
  182. package/dist/json.js.map +1 -0
  183. package/dist/layout.cjs +1 -1
  184. package/dist/layout.js +4 -3
  185. package/dist/layout.js.map +1 -1
  186. package/dist/lightbox-service-D-0JtxB1.cjs +202 -0
  187. package/dist/lightbox-service-D-0JtxB1.cjs.map +1 -0
  188. package/dist/lightbox-service-DZMnb1eU.js +458 -0
  189. package/dist/lightbox-service-DZMnb1eU.js.map +1 -0
  190. package/dist/lightbox.cjs +2 -0
  191. package/dist/lightbox.cjs.map +1 -0
  192. package/dist/lightbox.js +8 -0
  193. package/dist/lightbox.js.map +1 -0
  194. package/dist/{list-Bac329kq.cjs → list-B_2m7l3g.cjs} +6 -6
  195. package/dist/list-B_2m7l3g.cjs.map +1 -0
  196. package/dist/{list-BO1gnjmc.js → list-CW56LV-v.js} +13 -13
  197. package/dist/list-CW56LV-v.js.map +1 -0
  198. package/dist/list.cjs +1 -1
  199. package/dist/list.js +1 -1
  200. package/dist/{litElement.mixin-B1WTI3WY.cjs → litElement.mixin-CrpeGpZ7.cjs} +2 -2
  201. package/dist/{litElement.mixin-B1WTI3WY.cjs.map → litElement.mixin-CrpeGpZ7.cjs.map} +1 -1
  202. package/dist/{litElement.mixin-CVje6z-M.js → litElement.mixin-DHZXtvYq.js} +2 -2
  203. package/dist/{litElement.mixin-CVje6z-M.js.map → litElement.mixin-DHZXtvYq.js.map} +1 -1
  204. package/dist/mailbox.cjs +1 -1
  205. package/dist/mailbox.js +1 -1
  206. package/dist/{map-C1jVMhlF.js → map-2Hl60a0A.js} +6 -6
  207. package/dist/{map-C1jVMhlF.js.map → map-2Hl60a0A.js.map} +1 -1
  208. package/dist/{map-BlmS6Zfx.cjs → map-DyPS9G7M.cjs} +3 -3
  209. package/dist/{map-BlmS6Zfx.cjs.map → map-DyPS9G7M.cjs.map} +1 -1
  210. package/dist/map.cjs +1 -1
  211. package/dist/map.js +1 -1
  212. package/dist/{media-CxfrOjie.cjs → media-CS8HpKnK.cjs} +2 -2
  213. package/dist/{media-CxfrOjie.cjs.map → media-CS8HpKnK.cjs.map} +1 -1
  214. package/dist/{media-CNMZbEJe.js → media-DtWbcRxL.js} +2 -2
  215. package/dist/{media-CNMZbEJe.js.map → media-DtWbcRxL.js.map} +1 -1
  216. package/dist/menu-Caju5-zd.js +60 -0
  217. package/dist/{menu-CUKV4pVJ.js.map → menu-Caju5-zd.js.map} +1 -1
  218. package/dist/{menu-DEa2K7Pk.cjs → menu-rX5RPAI2.cjs} +4 -6
  219. package/dist/{menu-DEa2K7Pk.cjs.map → menu-rX5RPAI2.cjs.map} +1 -1
  220. package/dist/menu.cjs +1 -1
  221. package/dist/menu.js +1 -1
  222. package/dist/mixins.cjs +1 -1
  223. package/dist/mixins.js +3 -3
  224. package/dist/nav-drawer.cjs +1 -1
  225. package/dist/nav-drawer.js +1 -1
  226. package/dist/navigation-bar.cjs +1 -1
  227. package/dist/navigation-bar.js +1 -1
  228. package/dist/{navigation-rail-CYKfvZs9.js → navigation-rail-Ctketq5a.js} +43 -38
  229. package/dist/navigation-rail-Ctketq5a.js.map +1 -0
  230. package/dist/navigation-rail-DC9_oSIM.cjs +79 -0
  231. package/dist/navigation-rail-DC9_oSIM.cjs.map +1 -0
  232. package/dist/navigation-rail.cjs +1 -1
  233. package/dist/navigation-rail.js +1 -1
  234. package/dist/notification-service-CUlfXqmj.js +155 -0
  235. package/dist/notification-service-CUlfXqmj.js.map +1 -0
  236. package/dist/notification-service-DknbpqTt.cjs +19 -0
  237. package/dist/notification-service-DknbpqTt.cjs.map +1 -0
  238. package/dist/notification.cjs +1 -1
  239. package/dist/notification.js +6 -8
  240. package/dist/{notify-KvHZ-8z9.js → notify-DJSOWTxv.js} +2 -2
  241. package/dist/notify-DJSOWTxv.js.map +1 -0
  242. package/dist/{notify-VkDx6hMZ.cjs → notify-DickIEHW.cjs} +2 -2
  243. package/dist/notify-DickIEHW.cjs.map +1 -0
  244. package/dist/{option-DnRdbsTb.js → option-Bng41-rY.js} +2 -2
  245. package/dist/{option-DnRdbsTb.js.map → option-Bng41-rY.js.map} +1 -1
  246. package/dist/{option-Eh2AXe-Z.cjs → option-DYT5Rkgy.cjs} +2 -2
  247. package/dist/{option-Eh2AXe-Z.cjs.map → option-DYT5Rkgy.cjs.map} +1 -1
  248. package/dist/option.cjs +1 -1
  249. package/dist/option.js +1 -1
  250. package/dist/page-BLn9gtSd.cjs +20 -0
  251. package/dist/page-BLn9gtSd.cjs.map +1 -0
  252. package/dist/page-D-ROcQDd.js +48 -0
  253. package/dist/page-D-ROcQDd.js.map +1 -0
  254. package/dist/page.cjs +2 -0
  255. package/dist/page.cjs.map +1 -0
  256. package/dist/page.js +5 -0
  257. package/dist/page.js.map +1 -0
  258. package/dist/{payment-card-form-8a4Nqqhy.cjs → payment-card-form-5UtfWzoW.cjs} +2 -2
  259. package/dist/{payment-card-form-8a4Nqqhy.cjs.map → payment-card-form-5UtfWzoW.cjs.map} +1 -1
  260. package/dist/{payment-card-form-EVQEb5OX.js → payment-card-form-BJa4RgF2.js} +3 -3
  261. package/dist/{payment-card-form-EVQEb5OX.js.map → payment-card-form-BJa4RgF2.js.map} +1 -1
  262. package/dist/pills-BS5rZ6C3.js +346 -0
  263. package/dist/pills-BS5rZ6C3.js.map +1 -0
  264. package/dist/pills-Blf7IAeq.cjs +113 -0
  265. package/dist/pills-Blf7IAeq.cjs.map +1 -0
  266. package/dist/progress-DlhYniW_.cjs +35 -0
  267. package/dist/progress-DlhYniW_.cjs.map +1 -0
  268. package/dist/progress-yTIX6EqC.js +56 -0
  269. package/dist/progress-yTIX6EqC.js.map +1 -0
  270. package/dist/progress.cjs +1 -1
  271. package/dist/progress.js +1 -1
  272. package/dist/qr-scanner-DOs7uNS_.cjs +29 -0
  273. package/dist/qr-scanner-DOs7uNS_.cjs.map +1 -0
  274. package/dist/qr-scanner-DjZ8mgHV.js +743 -0
  275. package/dist/qr-scanner-DjZ8mgHV.js.map +1 -0
  276. package/dist/qr-scanner.cjs +2 -0
  277. package/dist/qr-scanner.cjs.map +1 -0
  278. package/dist/qr-scanner.js +5 -0
  279. package/dist/qr-scanner.js.map +1 -0
  280. package/dist/{radio-button-BTdqEOSJ.cjs → radio-button-N_PrrxKB.cjs} +2 -2
  281. package/dist/{radio-button-BTdqEOSJ.cjs.map → radio-button-N_PrrxKB.cjs.map} +1 -1
  282. package/dist/{radio-button-QCukBJLy.js → radio-button-me3SRHGu.js} +3 -3
  283. package/dist/{radio-button-QCukBJLy.js.map → radio-button-me3SRHGu.js.map} +1 -1
  284. package/dist/radio-group.cjs +1 -1
  285. package/dist/radio-group.js +1 -1
  286. package/dist/ripple-BgJXbNSP.js +124 -0
  287. package/dist/ripple-BgJXbNSP.js.map +1 -0
  288. package/dist/ripple-x6sTX02K.cjs +16 -0
  289. package/dist/ripple-x6sTX02K.cjs.map +1 -0
  290. package/dist/{schmancy-steps-container-NZOamraF.js → schmancy-steps-container-J6P-NNNj.js} +3 -3
  291. package/dist/{schmancy-steps-container-NZOamraF.js.map → schmancy-steps-container-J6P-NNNj.js.map} +1 -1
  292. package/dist/{schmancy-steps-container-CtwqkRBU.cjs → schmancy-steps-container-T57BKMzi.cjs} +2 -2
  293. package/dist/{schmancy-steps-container-CtwqkRBU.cjs.map → schmancy-steps-container-T57BKMzi.cjs.map} +1 -1
  294. package/dist/scroll-C_gfUgjn.js +87 -0
  295. package/dist/scroll-C_gfUgjn.js.map +1 -0
  296. package/dist/scroll-CecsowP7.cjs +27 -0
  297. package/dist/scroll-CecsowP7.cjs.map +1 -0
  298. package/dist/{select-DSTQ-Zau.js → select-BBA0gBHf.js} +5 -4
  299. package/dist/select-BBA0gBHf.js.map +1 -0
  300. package/dist/{select-C-Kv7ey_.cjs → select-D9oCjv7N.cjs} +2 -2
  301. package/dist/select-D9oCjv7N.cjs.map +1 -0
  302. package/dist/select.cjs +1 -1
  303. package/dist/select.js +1 -1
  304. package/dist/{selector-hook-Cok22ifx.cjs → selector-hook-9w2auh2O.cjs} +2 -2
  305. package/dist/{selector-hook-Cok22ifx.cjs.map → selector-hook-9w2auh2O.cjs.map} +1 -1
  306. package/dist/{selector-hook-l2fe2UO5.js → selector-hook-CHV4kDMd.js} +3 -3
  307. package/dist/{selector-hook-l2fe2UO5.js.map → selector-hook-CHV4kDMd.js.map} +1 -1
  308. package/dist/{sheet-IzYy3H8n.cjs → sheet-0oUfBmXX.cjs} +2 -2
  309. package/dist/{sheet-IzYy3H8n.cjs.map → sheet-0oUfBmXX.cjs.map} +1 -1
  310. package/dist/{sheet-DY-z5_tm.js → sheet-CNcDT3VP.js} +5 -5
  311. package/dist/{sheet-DY-z5_tm.js.map → sheet-CNcDT3VP.js.map} +1 -1
  312. package/dist/sheet.cjs +1 -1
  313. package/dist/sheet.js +2 -2
  314. package/dist/{sheet.service-DuVcXyOB.js → sheet.service-2MobB-9z.js} +20 -18
  315. package/dist/sheet.service-2MobB-9z.js.map +1 -0
  316. package/dist/sheet.service-su_7yDQ-.cjs +2 -0
  317. package/dist/sheet.service-su_7yDQ-.cjs.map +1 -0
  318. package/dist/{slider-CGE_Qeok.cjs → slider-CV-Ehp_5.cjs} +2 -2
  319. package/dist/{slider-CGE_Qeok.cjs.map → slider-CV-Ehp_5.cjs.map} +1 -1
  320. package/dist/{slider-CFtbSQ9Y.js → slider-CkE-iFUy.js} +3 -3
  321. package/dist/{slider-CFtbSQ9Y.js.map → slider-CkE-iFUy.js.map} +1 -1
  322. package/dist/slider.cjs +1 -1
  323. package/dist/slider.js +1 -1
  324. package/dist/sound.service-Nza4c6wv.js +102 -0
  325. package/dist/sound.service-Nza4c6wv.js.map +1 -0
  326. package/dist/sound.service-eRirZw59.cjs +2 -0
  327. package/dist/sound.service-eRirZw59.cjs.map +1 -0
  328. package/dist/{spinner-CSPJs8CL.cjs → spinner-Bfn8KC-9.cjs} +9 -9
  329. package/dist/spinner-Bfn8KC-9.cjs.map +1 -0
  330. package/dist/{spinner-DAF-hCvQ.js → spinner-DiMbWXp9.js} +15 -12
  331. package/dist/spinner-DiMbWXp9.js.map +1 -0
  332. package/dist/steps.cjs +1 -1
  333. package/dist/steps.js +1 -1
  334. package/dist/store.cjs +1 -1
  335. package/dist/store.js +2 -2
  336. package/dist/{suggestion-chip-CYu-4xrL.js → suggestion-chip-CEDqUNoS.js} +50 -46
  337. package/dist/suggestion-chip-CEDqUNoS.js.map +1 -0
  338. package/dist/{suggestion-chip-Cj8gwZqq.cjs → suggestion-chip-HhsLtZXR.cjs} +18 -23
  339. package/dist/suggestion-chip-HhsLtZXR.cjs.map +1 -0
  340. package/dist/{surface-VX_THUHv.cjs → surface-CW3H23Va.cjs} +5 -4
  341. package/dist/surface-CW3H23Va.cjs.map +1 -0
  342. package/dist/{surface-DTOK-0E4.js → surface-eBfnSwQS.js} +12 -11
  343. package/dist/surface-eBfnSwQS.js.map +1 -0
  344. package/dist/surface.cjs +1 -1
  345. package/dist/surface.js +1 -1
  346. package/dist/{table-BV0-o9Wi.cjs → table-D0tiSL_u.cjs} +2 -2
  347. package/dist/{table-BV0-o9Wi.cjs.map → table-D0tiSL_u.cjs.map} +1 -1
  348. package/dist/{table-CkXbXqi9.js → table-Dmo4TvTx.js} +3 -3
  349. package/dist/{table-CkXbXqi9.js.map → table-Dmo4TvTx.js.map} +1 -1
  350. package/dist/table.cjs +1 -1
  351. package/dist/table.js +1 -1
  352. package/dist/{tabs-compatibility-D_BBW655.js → tabs-compatibility-Bit6y6en.js} +2 -2
  353. package/dist/{tabs-compatibility-D_BBW655.js.map → tabs-compatibility-Bit6y6en.js.map} +1 -1
  354. package/dist/{tabs-compatibility-DsfD60U_.cjs → tabs-compatibility-Vq_2-ekz.cjs} +2 -2
  355. package/dist/{tabs-compatibility-DsfD60U_.cjs.map → tabs-compatibility-Vq_2-ekz.cjs.map} +1 -1
  356. package/dist/tabs.cjs +1 -1
  357. package/dist/tabs.js +1 -1
  358. package/dist/tailwind.mixin-Bp_PR6yc.js +67 -0
  359. package/dist/{tailwind.mixin-wLaKUxf1.js.map → tailwind.mixin-Bp_PR6yc.js.map} +1 -1
  360. package/dist/tailwind.mixin-Cp4PyXok.cjs +2 -0
  361. package/dist/{tailwind.mixin-JFXu3GSo.cjs.map → tailwind.mixin-Cp4PyXok.cjs.map} +1 -1
  362. package/dist/teleport.cjs +1 -1
  363. package/dist/teleport.js +1 -1
  364. package/dist/{textarea-TeVnUeIJ.js → textarea-B1d1QCqT.js} +4 -3
  365. package/dist/{textarea-TeVnUeIJ.js.map → textarea-B1d1QCqT.js.map} +1 -1
  366. package/dist/textarea-DG8CHhZA.cjs +44 -0
  367. package/dist/{textarea-B6LDhRed.cjs.map → textarea-DG8CHhZA.cjs.map} +1 -1
  368. package/dist/textarea.cjs +1 -1
  369. package/dist/textarea.js +1 -1
  370. package/dist/{theme-button-DxMbO3yP.cjs → theme-button-CPL6Eaqd.cjs} +2 -2
  371. package/dist/{theme-button-DxMbO3yP.cjs.map → theme-button-CPL6Eaqd.cjs.map} +1 -1
  372. package/dist/{theme-button-BXXqAu2Y.js → theme-button-CrLuMQNe.js} +2 -2
  373. package/dist/{theme-button-BXXqAu2Y.js.map → theme-button-CrLuMQNe.js.map} +1 -1
  374. package/dist/theme-button.cjs +1 -1
  375. package/dist/theme-button.js +1 -1
  376. package/dist/theme-controller-boat-CXbNJSI3.cjs +178 -0
  377. package/dist/theme-controller-boat-CXbNJSI3.cjs.map +1 -0
  378. package/dist/{theme-controller-boat-CVS77gnH.js → theme-controller-boat-CzSmjyKq.js} +420 -228
  379. package/dist/theme-controller-boat-CzSmjyKq.js.map +1 -0
  380. package/dist/theme.cjs +1 -1
  381. package/dist/theme.js +13 -11
  382. package/dist/{timezone-RBV74f85.js → timezone-4vwX0BgA.js} +3 -3
  383. package/dist/{timezone-RBV74f85.js.map → timezone-4vwX0BgA.js.map} +1 -1
  384. package/dist/{timezone-D7YOMM8G.cjs → timezone-BxvQcqe1.cjs} +2 -2
  385. package/dist/{timezone-D7YOMM8G.cjs.map → timezone-BxvQcqe1.cjs.map} +1 -1
  386. package/dist/{tooltip-DssL6Qfx.js → tooltip-CjdvBf4X.js} +2 -2
  387. package/dist/{tooltip-DssL6Qfx.js.map → tooltip-CjdvBf4X.js.map} +1 -1
  388. package/dist/{tooltip-BH_RLoZI.cjs → tooltip-ZtnGjoJd.cjs} +2 -2
  389. package/dist/{tooltip-BH_RLoZI.cjs.map → tooltip-ZtnGjoJd.cjs.map} +1 -1
  390. package/dist/tooltip.cjs +1 -1
  391. package/dist/tooltip.js +1 -1
  392. package/dist/{tree-C33t9-0j.js → tree-CBEjV7jP.js} +2 -2
  393. package/dist/{tree-C33t9-0j.js.map → tree-CBEjV7jP.js.map} +1 -1
  394. package/dist/{tree-7Zz1sJKl.cjs → tree-DP5U00NA.cjs} +2 -2
  395. package/dist/{tree-7Zz1sJKl.cjs.map → tree-DP5U00NA.cjs.map} +1 -1
  396. package/dist/tree.cjs +1 -1
  397. package/dist/tree.js +1 -1
  398. package/dist/{typewriter-WbYqfXO7.cjs → typewriter-C6kFjLcX.cjs} +4 -4
  399. package/dist/{typewriter-WbYqfXO7.cjs.map → typewriter-C6kFjLcX.cjs.map} +1 -1
  400. package/dist/{typewriter-Dt1Js2lP.js → typewriter-Eo5qXoGC.js} +5 -5
  401. package/dist/{typewriter-Dt1Js2lP.js.map → typewriter-Eo5qXoGC.js.map} +1 -1
  402. package/dist/typewriter.cjs +1 -1
  403. package/dist/typewriter.js +1 -1
  404. package/dist/{typography-DdG9aEAg.js → typography-C_1gdM2I.js} +13 -53
  405. package/dist/typography-C_1gdM2I.js.map +1 -0
  406. package/dist/{typography-Ck-OdI83.cjs → typography-DGyjlLCE.cjs} +3 -46
  407. package/dist/typography-DGyjlLCE.cjs.map +1 -0
  408. package/dist/typography.cjs +1 -1
  409. package/dist/typography.js +1 -1
  410. package/mixins/tailwind.css +37 -6
  411. package/package.json +21 -20
  412. package/types/src/area/area.service.d.ts +1 -1
  413. package/types/src/area/router.types.d.ts +1 -0
  414. package/types/src/audio/emotional-sounds.d.ts +122 -0
  415. package/types/src/audio/index.d.ts +30 -0
  416. package/types/src/audio/sound.service.d.ts +111 -0
  417. package/types/src/avatar.d.ts +10 -1
  418. package/types/src/busy/spinner.d.ts +6 -1
  419. package/types/src/button/button.d.ts +15 -2
  420. package/types/src/button/icon-button.d.ts +1 -1
  421. package/types/src/charts/area-chart.d.ts +58 -0
  422. package/types/src/charts/index.d.ts +4 -0
  423. package/types/src/charts/pills.d.ts +51 -0
  424. package/types/src/charts/types.d.ts +62 -0
  425. package/types/src/charts/utils.d.ts +28 -0
  426. package/types/src/checkbox/checkbox.d.ts +3 -2
  427. package/types/src/chips/chips.d.ts +2 -0
  428. package/types/src/content-drawer/drawer.service.d.ts +1 -7
  429. package/types/src/date-range/date-range-dialog.d.ts +16 -0
  430. package/types/src/date-range/date-range.d.ts +1 -1
  431. package/types/src/details/details.d.ts +3 -7
  432. package/types/src/dialog/dailog.d.ts +1 -5
  433. package/types/src/dialog/dialog-base.mixin.d.ts +26 -0
  434. package/types/src/dialog/dialog-service.d.ts +3 -66
  435. package/types/src/dialog/dialog.component.d.ts +63 -30
  436. package/types/src/dialog/index.d.ts +1 -3
  437. package/types/src/directives/height.d.ts +11 -6
  438. package/types/src/icons/icon.d.ts +17 -0
  439. package/types/src/index.d.ts +6 -0
  440. package/types/src/input/input.d.ts +13 -9
  441. package/types/src/json/index.d.ts +1 -0
  442. package/types/src/json/json.d.ts +15 -0
  443. package/types/src/lightbox/flip-directive.d.ts +29 -0
  444. package/types/src/lightbox/flip.directive.d.ts +22 -0
  445. package/types/src/lightbox/index.d.ts +4 -0
  446. package/types/src/lightbox/lightbox-service.d.ts +24 -0
  447. package/types/src/lightbox/lightbox.d.ts +34 -0
  448. package/types/src/lightbox/lightbox.directive.d.ts +30 -0
  449. package/types/src/nav-drawer/appbar.d.ts +0 -5
  450. package/types/src/nav-drawer/drawer.d.ts +1 -32
  451. package/types/src/navigation-rail/navigation-rail.d.ts +2 -0
  452. package/types/src/notification/index.d.ts +1 -3
  453. package/types/src/notification/notification-service.d.ts +13 -1
  454. package/types/src/notification/notification.d.ts +13 -12
  455. package/types/src/notification/notify.d.ts +1 -1
  456. package/types/src/page/index.d.ts +1 -0
  457. package/types/src/page/page.d.ts +31 -0
  458. package/types/src/progress/progress.d.ts +2 -2
  459. package/types/src/qr-scanner/index.d.ts +1 -0
  460. package/types/src/qr-scanner/qr-scanner.d.ts +26 -0
  461. package/types/src/select/select.d.ts +1 -1
  462. package/types/src/theme/index.d.ts +1 -0
  463. package/types/src/theme/theme-audio-player.d.ts +100 -0
  464. package/types/src/theme/theme-controller-boat.d.ts +1 -0
  465. package/types/src/theme/theme.component.d.ts +1 -1
  466. package/types/src/types/index.d.ts +1 -0
  467. package/types/src/types/mood-audio.types.d.ts +173 -0
  468. package/types/src/typography/typography.d.ts +1 -0
  469. package/dist/area.component-BzjJiNTJ.js.map +0 -1
  470. package/dist/area.component-FL_IUylM.cjs +0 -12
  471. package/dist/area.component-FL_IUylM.cjs.map +0 -1
  472. package/dist/avatar-B_uJN9WV.cjs +0 -288
  473. package/dist/avatar-B_uJN9WV.cjs.map +0 -1
  474. package/dist/avatar-C8P4lVfa.js.map +0 -1
  475. package/dist/context-create-BJkkLr1D.cjs +0 -2
  476. package/dist/context-create-BJkkLr1D.cjs.map +0 -1
  477. package/dist/context-create-BvxbWTgj.js.map +0 -1
  478. package/dist/date-range-Cm0TCfwu.js +0 -664
  479. package/dist/date-range-Cm0TCfwu.js.map +0 -1
  480. package/dist/date-range-Cy97kOP_.cjs +0 -134
  481. package/dist/date-range-Cy97kOP_.cjs.map +0 -1
  482. package/dist/delay-BINGOQ7f.js.map +0 -1
  483. package/dist/delay-CXFIM6qK.cjs.map +0 -1
  484. package/dist/details-CLRikV4s.cjs +0 -64
  485. package/dist/details-CLRikV4s.cjs.map +0 -1
  486. package/dist/details-bgq2X_hO.js +0 -115
  487. package/dist/details-bgq2X_hO.js.map +0 -1
  488. package/dist/dialog-content-B59ekS_y.cjs +0 -85
  489. package/dist/dialog-content-B59ekS_y.cjs.map +0 -1
  490. package/dist/dialog-content-Cu7fqN8Y.js +0 -256
  491. package/dist/dialog-content-Cu7fqN8Y.js.map +0 -1
  492. package/dist/dialog-service-B4nR8Em5.cjs +0 -2
  493. package/dist/dialog-service-B4nR8Em5.cjs.map +0 -1
  494. package/dist/dialog-service-Bege4HF4.js +0 -140
  495. package/dist/dialog-service-Bege4HF4.js.map +0 -1
  496. package/dist/flex-CYQU6Pf8.js +0 -260
  497. package/dist/flex-CYQU6Pf8.js.map +0 -1
  498. package/dist/flex-DytMcHmq.cjs +0 -43
  499. package/dist/flex-DytMcHmq.cjs.map +0 -1
  500. package/dist/icon-C8Q_XMtJ.cjs +0 -49
  501. package/dist/icon-C8Q_XMtJ.cjs.map +0 -1
  502. package/dist/icon-Y2qLOFqe.js.map +0 -1
  503. package/dist/icon-button-CJ6AVTv9.js +0 -156
  504. package/dist/icon-button-CJ6AVTv9.js.map +0 -1
  505. package/dist/icon-button-IdG1NVgA.cjs +0 -65
  506. package/dist/icon-button-IdG1NVgA.cjs.map +0 -1
  507. package/dist/input-DDCFZ3cr.js.map +0 -1
  508. package/dist/input-UyknNHNr.cjs +0 -51
  509. package/dist/input-UyknNHNr.cjs.map +0 -1
  510. package/dist/list-BO1gnjmc.js.map +0 -1
  511. package/dist/list-Bac329kq.cjs.map +0 -1
  512. package/dist/menu-CUKV4pVJ.js +0 -61
  513. package/dist/navigation-rail-CYKfvZs9.js.map +0 -1
  514. package/dist/navigation-rail-DXr4NJnN.cjs +0 -81
  515. package/dist/navigation-rail-DXr4NJnN.cjs.map +0 -1
  516. package/dist/notification-service-CZ56fXew.js +0 -532
  517. package/dist/notification-service-CZ56fXew.js.map +0 -1
  518. package/dist/notification-service-DQGs9O0f.cjs +0 -143
  519. package/dist/notification-service-DQGs9O0f.cjs.map +0 -1
  520. package/dist/notify-KvHZ-8z9.js.map +0 -1
  521. package/dist/notify-VkDx6hMZ.cjs.map +0 -1
  522. package/dist/progress-D5kgn2Fg.js +0 -58
  523. package/dist/progress-D5kgn2Fg.js.map +0 -1
  524. package/dist/progress-yFxoJDYf.cjs +0 -35
  525. package/dist/progress-yFxoJDYf.cjs.map +0 -1
  526. package/dist/ripple-QoNZUUw_.js +0 -148
  527. package/dist/ripple-QoNZUUw_.js.map +0 -1
  528. package/dist/ripple-Ujq_REH4.cjs +0 -16
  529. package/dist/ripple-Ujq_REH4.cjs.map +0 -1
  530. package/dist/select-C-Kv7ey_.cjs.map +0 -1
  531. package/dist/select-DSTQ-Zau.js.map +0 -1
  532. package/dist/sheet.service-BNz-ird-.cjs +0 -2
  533. package/dist/sheet.service-BNz-ird-.cjs.map +0 -1
  534. package/dist/sheet.service-DuVcXyOB.js.map +0 -1
  535. package/dist/spinner-CSPJs8CL.cjs.map +0 -1
  536. package/dist/spinner-DAF-hCvQ.js.map +0 -1
  537. package/dist/suggestion-chip-CYu-4xrL.js.map +0 -1
  538. package/dist/suggestion-chip-Cj8gwZqq.cjs.map +0 -1
  539. package/dist/surface-DTOK-0E4.js.map +0 -1
  540. package/dist/surface-VX_THUHv.cjs.map +0 -1
  541. package/dist/tailwind.mixin-JFXu3GSo.cjs +0 -2
  542. package/dist/tailwind.mixin-wLaKUxf1.js +0 -67
  543. package/dist/textarea-B6LDhRed.cjs +0 -44
  544. package/dist/theme-controller-boat-CCBNOGxF.cjs +0 -64
  545. package/dist/theme-controller-boat-CCBNOGxF.cjs.map +0 -1
  546. package/dist/theme-controller-boat-CVS77gnH.js.map +0 -1
  547. package/dist/typography-Ck-OdI83.cjs.map +0 -1
  548. package/dist/typography-DdG9aEAg.js.map +0 -1
  549. package/types/src/notification/notification-audio-generator.d.ts +0 -45
  550. package/types/src/notification/notification-audio.d.ts +0 -79
  551. package/types/src/notification/notification-container.d.ts +0 -48
@@ -0,0 +1,118 @@
1
+ import { render as d } from "lit";
2
+ import { Subject as g, switchMap as f, forkJoin as b, fromEvent as l, of as v, takeUntil as C, timer as w, map as m, defaultIfEmpty as y, tap as r } from "rxjs";
3
+ import { a as E, T as S } from "./theme.events-CPSLaOlR.js";
4
+ const T = "are-you-there-dialog", x = "yes-dialog-here", c = class c {
5
+ constructor() {
6
+ this.activeDialogs = [], this.dialogSubject = new g(), this.dismissSubject = new g(), this.setupDialogOpeningLogic(), this.setupDialogDismissLogic();
7
+ }
8
+ static getInstance() {
9
+ return c.instance || (c.instance = new c()), c.instance;
10
+ }
11
+ setupDialogOpeningLogic() {
12
+ this.dialogSubject.pipe(f((e) => b([l(window, E).pipe(C(w(50)), m((t) => t.detail.theme), y(void 0)), v(e).pipe(r(() => {
13
+ const t = `dialog-${Date.now()}-${Math.random().toString(36).substring(2, 9)}`;
14
+ window.dispatchEvent(new CustomEvent(S, { bubbles: !0, composed: !0 })), e.uid = t;
15
+ }))])), m(([e, t]) => {
16
+ const n = e || t.options.targetContainer || document.querySelector("schmancy-theme") || document.body, i = t.uid, o = document.createElement("schmancy-dialog");
17
+ return o.setAttribute("uid", i), n.appendChild(o), { dialog: o, target: t };
18
+ }), r(({ dialog: e, target: t }) => {
19
+ const n = t.options;
20
+ if (t.type === "confirm") {
21
+ if (e.title = n.title, e.subtitle = n.subtitle, e.message = n.message, e.confirmText = n.confirmText ?? "Confirm", e.cancelText = n.cancelText ?? "Cancel", e.variant = n.variant ?? "default", n.content) {
22
+ const i = document.createElement("div");
23
+ if (i.slot = "content", typeof n.content == "function") {
24
+ const o = n.content();
25
+ o instanceof HTMLElement ? i.appendChild(o) : d(o, i);
26
+ } else n.content instanceof HTMLElement ? i.appendChild(n.content) : d(n.content, i);
27
+ e.appendChild(i);
28
+ }
29
+ } else if (e.hideActions = !0, t.content) {
30
+ const i = document.createElement("div");
31
+ if (i.style.height = "100%", i.style.width = "100%", i.classList.add("schmancy-dialog-content-container"), typeof t.content == "function") {
32
+ const o = t.content();
33
+ o instanceof HTMLElement ? i.appendChild(o) : d(o, i);
34
+ } else t.content instanceof HTMLElement ? i.appendChild(t.content) : d(t.content, i);
35
+ e.appendChild(i);
36
+ }
37
+ this.activeDialogs.push(e);
38
+ }), r(({ dialog: e, target: t }) => {
39
+ const n = t.options.position || this.getCenteredPosition();
40
+ e.show(n).then((o) => {
41
+ t.resolve?.(o);
42
+ const u = this.activeDialogs.indexOf(e);
43
+ u !== -1 && this.activeDialogs.splice(u, 1);
44
+ const h = e.querySelector('[slot="content"]');
45
+ h && e.removeChild(h);
46
+ const p = e.querySelector(".schmancy-dialog-content-container");
47
+ p?.parentNode && p.parentNode.removeChild(p), e._eventSubscriptions?.forEach((D) => D.unsubscribe()), e.parentElement?.removeChild(e);
48
+ }).catch((o) => {
49
+ t.reject?.(o);
50
+ });
51
+ const i = [];
52
+ if (t.options.onConfirm) {
53
+ const o = l(e, "confirm").subscribe(() => {
54
+ t.options.onConfirm(), o.unsubscribe();
55
+ });
56
+ i.push(o);
57
+ }
58
+ if (t.options.onCancel) {
59
+ const o = l(e, "cancel").subscribe(() => {
60
+ t.options.onCancel(), o.unsubscribe();
61
+ });
62
+ i.push(o);
63
+ }
64
+ e._eventSubscriptions = i;
65
+ })).subscribe();
66
+ }
67
+ setupDialogDismissLogic() {
68
+ this.dismissSubject.pipe(f((e) => b([l(window, x).pipe(C(w(100)), m((t) => t.detail), y(void 0)), v(e).pipe(r(() => {
69
+ window.dispatchEvent(new CustomEvent(T, { detail: { uid: e }, bubbles: !0, composed: !0 }));
70
+ }))])), r(([e]) => {
71
+ if (e?.dialog) {
72
+ e.dialog.hide(!1), e.dialog._eventSubscriptions?.forEach((i) => i.unsubscribe());
73
+ const n = this.activeDialogs.indexOf(e.dialog);
74
+ n !== -1 && this.activeDialogs.splice(n, 1), e.dialog.parentElement?.removeChild(e.dialog);
75
+ }
76
+ })).subscribe();
77
+ }
78
+ confirm(e) {
79
+ return new Promise((t, n) => {
80
+ const i = { ...c.DEFAULT_OPTIONS, ...e };
81
+ i.position || (i.position = this.getCenteredPosition()), this.dialogSubject.next({ options: i, type: "confirm", content: i.content, resolve: t, reject: n });
82
+ });
83
+ }
84
+ component(e, t = {}) {
85
+ return new Promise((n, i) => {
86
+ t.position || (t.position = this.getCenteredPosition()), this.dialogSubject.next({ options: t, type: "component", content: e, resolve: n, reject: i });
87
+ });
88
+ }
89
+ dismiss() {
90
+ if (this.activeDialogs.length > 0) {
91
+ const e = this.activeDialogs[this.activeDialogs.length - 1].getAttribute("uid");
92
+ if (e) return this.dismissSubject.next(e), !0;
93
+ }
94
+ return !1;
95
+ }
96
+ close() {
97
+ return this.dismiss();
98
+ }
99
+ ask(e, t) {
100
+ return this.confirm({ message: e, confirmText: "Confirm", cancelText: "Cancel", position: t });
101
+ }
102
+ danger(e) {
103
+ return this.confirm({ ...e, variant: "danger" });
104
+ }
105
+ getCenteredPosition() {
106
+ return { x: window.innerWidth / 2, y: window.innerHeight / 2 };
107
+ }
108
+ };
109
+ c.DEFAULT_OPTIONS = { title: void 0, subtitle: void 0, confirmText: void 0, cancelText: void 0, variant: "default" };
110
+ let s = c;
111
+ const P = { confirm: (a) => s.getInstance().confirm(a), ask: (a, e) => s.getInstance().ask(a, e), danger: (a) => s.getInstance().danger(a), component: (a, e) => s.getInstance().component(a, e), dismiss: () => s.getInstance().dismiss(), close: () => s.getInstance().close() };
112
+ export {
113
+ P as $,
114
+ s as D,
115
+ T as a,
116
+ x as b
117
+ };
118
+ //# sourceMappingURL=dialog-service-D9E3jLAR.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dialog-service-D9E3jLAR.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, Subscription, switchMap, takeUntil, tap, timer } from 'rxjs'\nimport { ThemeHereIAm, ThemeHereIAmEvent, ThemeWhereAreYou } from '../theme/theme.events'\nimport { SchmancyDialog } from './dialog.component'\nimport { DialogHereMorty, DialogHereMortyEvent, DialogWhereAreYouRicky } from './dialog-events'\n\n/**\n * Dialog service options interface\n */\nexport interface DialogOptions {\n\ttitle?: string\n\tsubtitle?: string\n\tmessage?: string\n\tconfirmText?: string\n\tcancelText?: string\n\tvariant?: 'default' | 'danger'\n\tposition?: { x: number; y: number } | MouseEvent | TouchEvent\n\tcontent?: TemplateResult | HTMLElement | (() => HTMLElement | TemplateResult)\n\tonConfirm?: () => void\n\tonCancel?: () => void\n\thideActions?: boolean\n\ttargetContainer?: HTMLElement\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?: unknown) => void\n}\n\n/**\n * Dialog service for centralized dialog management.\n * Uses a single unified SchmancyDialog component for all dialog types.\n */\nexport class DialogService {\n\tprivate static instance: DialogService\n\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}\n\n\t// Single array to track all dialogs\n\tprivate activeDialogs: SchmancyDialog[] = []\n\n\tprivate dialogSubject = new Subject<DialogTarget>()\n\tprivate dismissSubject = new Subject<string>()\n\n\tprivate constructor() {\n\t\tthis.setupDialogOpeningLogic()\n\t\tthis.setupDialogDismissLogic()\n\t}\n\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\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\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 = `dialog-${Date.now()}-${Math.random().toString(36).substring(2, 9)}`\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;(target as { uid?: string }).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(([theme, target]) => {\n\t\t\t\t\tconst targetContainer =\n\t\t\t\t\t\ttheme ||\n\t\t\t\t\t\ttarget.options.targetContainer ||\n\t\t\t\t\t\t(document.querySelector('schmancy-theme') as HTMLElement) ||\n\t\t\t\t\t\tdocument.body\n\n\t\t\t\t\tconst uid = (target as { uid?: string }).uid!\n\t\t\t\t\tconst dialog = document.createElement('schmancy-dialog') as SchmancyDialog\n\t\t\t\t\tdialog.setAttribute('uid', uid)\n\t\t\t\t\ttargetContainer.appendChild(dialog)\n\n\t\t\t\t\treturn { dialog, target }\n\t\t\t\t}),\n\t\t\t\ttap(({ dialog, target }) => {\n\t\t\t\t\tconst options = target.options\n\n\t\t\t\t\tif (target.type === 'confirm') {\n\t\t\t\t\t\t// Configure for confirm mode\n\t\t\t\t\t\tdialog.title = options.title\n\t\t\t\t\t\tdialog.subtitle = options.subtitle\n\t\t\t\t\t\tdialog.message = options.message\n\t\t\t\t\t\tdialog.confirmText = options.confirmText ?? 'Confirm'\n\t\t\t\t\t\tdialog.cancelText = options.cancelText ?? 'Cancel'\n\t\t\t\t\t\tdialog.variant = options.variant ?? 'default'\n\n\t\t\t\t\t\t// Handle custom content slot\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\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\n\t\t\t\t\t\t\tdialog.appendChild(contentContainer)\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// Configure for content mode\n\t\t\t\t\t\tdialog.hideActions = true\n\n\t\t\t\t\t\tif (target.content) {\n\t\t\t\t\t\t\tconst contentContainer = document.createElement('div')\n\t\t\t\t\t\t\tcontentContainer.style.height = '100%'\n\t\t\t\t\t\t\tcontentContainer.style.width = '100%'\n\t\t\t\t\t\t\tcontentContainer.classList.add('schmancy-dialog-content-container')\n\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\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 (target.content instanceof HTMLElement) {\n\t\t\t\t\t\t\t\tcontentContainer.appendChild(target.content)\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\trender(target.content, contentContainer)\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tdialog.appendChild(contentContainer)\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tthis.activeDialogs.push(dialog)\n\t\t\t\t}),\n\t\t\t\ttap(({ dialog, target }) => {\n\t\t\t\t\tconst position = target.options.position || this.getCenteredPosition()\n\n\t\t\t\t\tdialog\n\t\t\t\t\t\t.show(position)\n\t\t\t\t\t\t.then((result: boolean) => {\n\t\t\t\t\t\t\ttarget.resolve?.(result)\n\n\t\t\t\t\t\t\t// Cleanup\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\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) dialog.removeChild(contentEl)\n\n\t\t\t\t\t\t\tconst contentContainer = dialog.querySelector('.schmancy-dialog-content-container')\n\t\t\t\t\t\t\tif (contentContainer?.parentNode) {\n\t\t\t\t\t\t\t\tcontentContainer.parentNode.removeChild(contentContainer)\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t// Clean up event subscriptions\n\t\t\t\t\t\t\tconst eventSubscriptions = (dialog as unknown as { _eventSubscriptions?: Subscription[] })\n\t\t\t\t\t\t\t\t._eventSubscriptions\n\t\t\t\t\t\t\teventSubscriptions?.forEach(sub => sub.unsubscribe())\n\n\t\t\t\t\t\t\t// Remove from DOM\n\t\t\t\t\t\t\tdialog.parentElement?.removeChild(dialog)\n\t\t\t\t\t\t})\n\t\t\t\t\t\t.catch((error: unknown) => {\n\t\t\t\t\t\t\ttarget.reject?.(error)\n\t\t\t\t\t\t})\n\n\t\t\t\t\t// Set up event listeners\n\t\t\t\t\tconst eventSubscriptions: Subscription[] = []\n\n\t\t\t\t\tif (target.options.onConfirm) {\n\t\t\t\t\t\tconst confirmSub = fromEvent(dialog, 'confirm').subscribe(() => {\n\t\t\t\t\t\t\ttarget.options.onConfirm!()\n\t\t\t\t\t\t\tconfirmSub.unsubscribe()\n\t\t\t\t\t\t})\n\t\t\t\t\t\teventSubscriptions.push(confirmSub)\n\t\t\t\t\t}\n\n\t\t\t\t\tif (target.options.onCancel) {\n\t\t\t\t\t\tconst cancelSub = fromEvent(dialog, 'cancel').subscribe(() => {\n\t\t\t\t\t\t\ttarget.options.onCancel!()\n\t\t\t\t\t\t\tcancelSub.unsubscribe()\n\t\t\t\t\t\t})\n\t\t\t\t\t\teventSubscriptions.push(cancelSub)\n\t\t\t\t\t}\n\n\t\t\t\t\t;(dialog as unknown as { _eventSubscriptions: Subscription[] })._eventSubscriptions = eventSubscriptions\n\t\t\t\t}),\n\t\t\t)\n\t\t\t.subscribe()\n\t}\n\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\tresponse.dialog.hide(false)\n\n\t\t\t\t\t\tconst eventSubscriptions = (response.dialog as unknown as { _eventSubscriptions?: Subscription[] })\n\t\t\t\t\t\t\t._eventSubscriptions\n\t\t\t\t\t\teventSubscriptions?.forEach(sub => sub.unsubscribe())\n\n\t\t\t\t\t\tconst index = this.activeDialogs.indexOf(response.dialog as SchmancyDialog)\n\t\t\t\t\t\tif (index !== -1) {\n\t\t\t\t\t\t\tthis.activeDialogs.splice(index, 1)\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tresponse.dialog.parentElement?.removeChild(response.dialog)\n\t\t\t\t\t}\n\t\t\t\t}),\n\t\t\t)\n\t\t\t.subscribe()\n\t}\n\n\tpublic confirm(options: DialogOptions): Promise<boolean> {\n\t\treturn new Promise((resolve, reject) => {\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\tif (!completeOptions.position) {\n\t\t\t\tcompleteOptions.position = this.getCenteredPosition()\n\t\t\t}\n\n\t\t\tthis.dialogSubject.next({\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\t\t})\n\t}\n\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\tif (!options.position) {\n\t\t\t\toptions.position = this.getCenteredPosition()\n\t\t\t}\n\n\t\t\tthis.dialogSubject.next({\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\t\t})\n\t}\n\n\tpublic dismiss(): boolean {\n\t\tif (this.activeDialogs.length > 0) {\n\t\t\tconst dialog = this.activeDialogs[this.activeDialogs.length - 1]\n\t\t\tconst uid = dialog.getAttribute('uid')\n\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\treturn false\n\t}\n\n\tpublic close(): boolean {\n\t\treturn this.dismiss()\n\t}\n\n\tpublic ask(message: string, event?: MouseEvent | TouchEvent): Promise<boolean> {\n\t\treturn this.confirm({\n\t\t\tmessage,\n\t\t\tconfirmText: 'Confirm',\n\t\t\tcancelText: 'Cancel',\n\t\t\tposition: event,\n\t\t})\n\t}\n\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\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 * Global dialog utility\n */\nexport const $dialog = {\n\tconfirm: (options: DialogOptions): Promise<boolean> => {\n\t\treturn DialogService.getInstance().confirm(options)\n\t},\n\n\task: (message: string, event?: MouseEvent | TouchEvent): Promise<boolean> => {\n\t\treturn DialogService.getInstance().ask(message, event)\n\t},\n\n\tdanger: (options: Omit<DialogOptions, 'variant'>): Promise<boolean> => {\n\t\treturn DialogService.getInstance().danger(options)\n\t},\n\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\tdismiss: (): boolean => {\n\t\treturn DialogService.getInstance().dismiss()\n\t},\n\n\tclose: (): boolean => {\n\t\treturn DialogService.getInstance().close()\n\t},\n}\n\nexport default DialogService\n"],"names":["DialogWhereAreYouRicky","DialogHereMorty","DialogService","constructor","this","activeDialogs","dialogSubject","Subject","dismissSubject","setupDialogOpeningLogic","setupDialogDismissLogic","getInstance","instance","pipe","switchMap","forkJoin","fromEvent","window","ThemeHereIAm","takeUntil","timer","map","e","detail","theme","defaultIfEmpty","of","target","tap","uid","Date","now","Math","random","toString","substring","dispatchEvent","CustomEvent","ThemeWhereAreYou","bubbles","composed","targetContainer","options","document","querySelector","body","dialog","createElement","setAttribute","appendChild","type","title","subtitle","message","confirmText","cancelText","variant","content","contentContainer","slot","result","HTMLElement","render","hideActions","style","height","width","classList","add","push","position","getCenteredPosition","show","then","resolve","index","indexOf","splice","contentEl","removeChild","parentNode","_eventSubscriptions","forEach","sub","unsubscribe","parentElement","catch","error","reject","eventSubscriptions","onConfirm","confirmSub","subscribe","onCancel","cancelSub","response","hide","Promise","completeOptions","DEFAULT_OPTIONS","next","dismiss","length","getAttribute","close","event","confirm","x","innerWidth","y","innerHeight","_g","$dialog","ask","danger","component"],"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-B59ekS_y.cjs"),i=require("./dialog-service-B4nR8Em5.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 i=require("./dialog-service-C86xTS8q.cjs"),e=require("./dialog.component-BM0D-hK9.cjs");exports.$dialog=i.$dialog,exports.DialogService=i.DialogService,Object.defineProperty(exports,"ConfirmDialog",{enumerable:!0,get:()=>e.SchmancyDialog}),exports.DialogBase=e.DialogBase,Object.defineProperty(exports,"SchmancyDialog",{enumerable:!0,get:()=>e.SchmancyDialog});
2
2
  //# sourceMappingURL=dialog.cjs.map
@@ -0,0 +1,48 @@
1
+ "use strict";const p=require("rxjs"),y=require("rxjs/operators");require("lit/directives/class-map.js"),require("lit/directives/style-map.js");const a=require("lit/decorators.js");require("./tailwind.mixin-Cp4PyXok.cjs");const g=require("./litElement.mixin-CrpeGpZ7.cjs"),r=require("lit"),d=require("lit/directives/when.js"),l=require("@floating-ui/dom"),u=require("./dialog-service-C86xTS8q.cjs"),m=e=>class extends e{constructor(){super(...arguments),this.position={x:0,y:0}}getDialogElement(){return null}async show(t){let i,s;if(this.cleanupAutoUpdate&&(this.cleanupAutoUpdate(),this.cleanupAutoUpdate=void 0),t)if("clientX"in t)i=t.clientX,s=t.clientY;else if("touches"in t&&t.touches.length)i=t.touches[0].clientX,s=t.touches[0].clientY;else{const n=t;i=n.x,s=n.y}else i=window.innerWidth/2,s=window.innerHeight/2;return this.position={x:i,y:s},this.virtualReference={getBoundingClientRect:()=>new DOMRect(i,s,0,0)},this.requestUpdate(),await this.updateComplete,this.setAttribute("active",""),this.setupPositioning(),new Promise(n=>{this.resolvePromise=n})}hide(t=!1){this.removeAttribute("active"),this.cleanupAutoUpdate&&(this.cleanupAutoUpdate(),this.cleanupAutoUpdate=void 0),this.resolvePromise&&(this.resolvePromise(t),this.resolvePromise=void 0)}isCentered(){const t=.3*window.innerWidth,i=.3*window.innerHeight;return Math.abs(this.position.x-window.innerWidth/2)<t&&Math.abs(this.position.y-window.innerHeight/2)<i}setupPositioning(){const t=this.getDialogElement();t&&(this.isCentered()||this.virtualReference&&(this.cleanupAutoUpdate=l.autoUpdate(this.virtualReference,t,()=>this.updatePosition(t),{ancestorScroll:!0,ancestorResize:!0,elementResize:!0}),this.updatePosition(t)))}async updatePosition(t){if(!this.virtualReference)return;const{x:i,y:s}=await l.computePosition(this.virtualReference,t,{strategy:"fixed",middleware:[l.offset(8),l.autoPlacement({padding:16,allowedPlacements:["top-start","top-end","bottom-start","bottom-end","left-start","left-end","right-start","right-end"]}),l.shift({padding:16}),l.size({padding:16,apply({availableWidth:n,elements:o}){o.floating.style.maxWidth=`${n}px`}})]});Object.assign(t.style,{position:"fixed",left:`${Math.round(i)}px`,top:`${Math.round(s)}px`,transform:"none"})}disconnectedCallback(){this.cleanupAutoUpdate&&(this.cleanupAutoUpdate(),this.cleanupAutoUpdate=void 0),super.disconnectedCallback()}};var f=Object.defineProperty,v=Object.getOwnPropertyDescriptor,c=(e,t,i,s)=>{for(var n,o=s>1?void 0:s?v(t,i):t,h=e.length-1;h>=0;h--)(n=e[h])&&(o=(s?n(t,i,o):n(o))||o);return s&&o&&f(t,i,o),o};exports.SchmancyDialog=class extends m(g.$LitElement(r.css`
2
+ :host {
3
+ position: fixed;
4
+ z-index: 10000;
5
+ inset: 0;
6
+ display: none;
7
+ --dialog-width: fit-content;
8
+ }
9
+
10
+ :host([active]) {
11
+ display: block;
12
+ }
13
+ `)){constructor(){super(...arguments),this.title=void 0,this.subtitle=void 0,this.message=void 0,this.confirmText=void 0,this.cancelText=void 0,this.variant="default",this.hideActions=!1}getDialogElement(){return this.shadowRoot?.querySelector('[role="dialog"], [role="alertdialog"]')}get isConfirmMode(){return!this.hideActions&&!(!this.confirmText?.trim()||!this.cancelText?.trim())}connectedCallback(){super.connectedCallback(),p.fromEvent(window,u.DialogWhereAreYouRicky).pipe(p.tap(e=>{e.detail.uid===this.uid&&this.announcePresence()}),y.takeUntil(this.disconnecting)).subscribe()}announcePresence(){this.dispatchEvent(new CustomEvent(u.DialogHereMorty,{detail:{dialog:this},bubbles:!0,composed:!0}))}handleConfirm(){this.hide(!0),this.dispatchEvent(new CustomEvent("confirm",{bubbles:!0,composed:!0}))}handleClose(){this.hide(!1),this.dispatchEvent(new CustomEvent(this.isConfirmMode?"cancel":"close",{bubbles:!0,composed:!0}))}render(){const e=this.isCentered(),t=this.querySelectorAll('[slot="content"]').length>0,i={dialog:!0,fixed:!0,"w-[var(--dialog-width)]":!0,"max-w-[calc(100vw-2rem)]":!0,"max-h-[90dvh]":!0,"overflow-hidden":!0,"top-1/2":e,"left-1/2":e,"-translate-x-1/2":e,"-translate-y-1/2":e};return this.isConfirmMode?r.html`
14
+ <div class="fixed inset-0 bg-scrim/40" @click=${this.handleClose}></div>
15
+
16
+ <div class=${this.classMap(i)} role="alertdialog" aria-modal="true">
17
+ <schmancy-surface rounded="all" elevation="3" type="containerHigh" fill="all" class="overflow-hidden">
18
+ <schmancy-scroll direction="vertical" hide class="p-4">
19
+ <schmancy-form @submit=${this.handleConfirm}>
20
+ ${d.when(this.title?.trim(),()=>r.html`
21
+ <schmancy-typography type="title" token="md" class="mb-1">${this.title}</schmancy-typography>
22
+ ${d.when(this.subtitle?.trim(),()=>r.html`
23
+ <schmancy-typography type="subtitle" token="xs" class="mb-2">
24
+ ${this.subtitle}
25
+ </schmancy-typography>
26
+ `)}
27
+ `)}
28
+ ${t?r.html`<div class="mb-4"><slot name="content"></slot></div>`:d.when(this.message?.trim(),()=>r.html`<schmancy-typography type="body" class="mb-4">${this.message}</schmancy-typography>`)}
29
+ <div class="flex justify-end gap-3">
30
+ <schmancy-button variant="outlined" @click=${this.handleClose}>${this.cancelText}</schmancy-button>
31
+ <schmancy-button type="submit" variant="filled">${this.confirmText}</schmancy-button>
32
+ </div>
33
+ </schmancy-form>
34
+ </schmancy-scroll>
35
+ </schmancy-surface>
36
+ </div>
37
+ `:r.html`
38
+ <div class="fixed inset-0 bg-surface-container/10 backdrop-blur-xs" @click=${this.handleClose}></div>
39
+
40
+ <section class=${this.classMap(i)} role="dialog" aria-modal="true">
41
+ <schmancy-surface rounded="all" type="surface" elevation="2" fill="all" class="overflow-hidden">
42
+ <schmancy-scroll direction="vertical" hide class="p-2 md:p-4 max-h-[90dvh]">
43
+ <slot></slot>
44
+ </schmancy-scroll>
45
+ </schmancy-surface>
46
+ </section>
47
+ `}static async confirm(e){let t=document.querySelector("schmancy-dialog[data-static-confirm]");return t||(t=document.createElement("schmancy-dialog"),t.setAttribute("data-static-confirm",""),document.body.appendChild(t)),t.title=e.title,t.subtitle=e.subtitle,t.message=e.message,t.confirmText=e.confirmText??"Confirm",t.cancelText=e.cancelText??"Cancel",t.variant=e.variant??"default",e.width&&t.style.setProperty("--dialog-width",e.width),t.show(e.position)}static async ask(e,t){return this.confirm({message:e,position:t})}},c([a.property({type:String,reflect:!0})],exports.SchmancyDialog.prototype,"uid",2),c([a.property({type:String})],exports.SchmancyDialog.prototype,"title",2),c([a.property({type:String})],exports.SchmancyDialog.prototype,"subtitle",2),c([a.property({type:String})],exports.SchmancyDialog.prototype,"message",2),c([a.property({type:String,attribute:"confirm-text"})],exports.SchmancyDialog.prototype,"confirmText",2),c([a.property({type:String,attribute:"cancel-text"})],exports.SchmancyDialog.prototype,"cancelText",2),c([a.property({type:String})],exports.SchmancyDialog.prototype,"variant",2),c([a.property({type:Boolean,attribute:"hide-actions"})],exports.SchmancyDialog.prototype,"hideActions",2),exports.SchmancyDialog=c([a.customElement("schmancy-dialog")],exports.SchmancyDialog),exports.DialogBase=m;
48
+ //# sourceMappingURL=dialog.component-BM0D-hK9.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dialog.component-BM0D-hK9.cjs","sources":["../src/dialog/dialog-base.mixin.ts","../src/dialog/dialog.component.ts"],"sourcesContent":["import { autoPlacement, autoUpdate, computePosition, offset, shift, size } from '@floating-ui/dom'\nimport { LitElement } from 'lit'\nimport type { Constructor } from '../../mixins/constructor'\nimport type { IBaseMixin } from '../../mixins/baseElement'\n\nexport interface DialogPosition {\n\tx: number\n\ty: number\n}\n\nexport interface VirtualReference {\n\tgetBoundingClientRect: () => DOMRect\n}\n\n/**\n * Interface for the DialogBase mixin methods\n */\nexport interface IDialogBaseMixin {\n\tposition: DialogPosition\n\tshow(positionOrEvent?: DialogPosition | MouseEvent | TouchEvent): Promise<boolean>\n\thide(result?: boolean): void\n\tisCentered(): boolean\n}\n\n/**\n * Dialog mixin with smart positioning using Floating UI.\n *\n * Uses autoPlacement to find the position with MOST available space,\n * minimizing the need for content scrolling.\n */\nexport const DialogBase = <T extends Constructor<LitElement & IBaseMixin>>(superClass: T) => {\n\tclass DialogBaseClass extends superClass {\n\t\tposition: DialogPosition = { x: 0, y: 0 }\n\t\tprotected resolvePromise?: (value: boolean) => void\n\t\tprotected cleanupAutoUpdate?: () => void\n\t\tprotected virtualReference?: VirtualReference\n\n\t\t/**\n\t\t * Override in subclass to return the dialog element\n\t\t */\n\t\tprotected getDialogElement(): HTMLElement | null {\n\t\t\treturn null\n\t\t}\n\n\t\t/**\n\t\t * Show the dialog at a specific position\n\t\t */\n\t\tasync show(positionOrEvent?: DialogPosition | MouseEvent | TouchEvent): Promise<boolean> {\n\t\t\t// Cleanup previous positioning\n\t\t\tif (this.cleanupAutoUpdate) {\n\t\t\t\tthis.cleanupAutoUpdate()\n\t\t\t\tthis.cleanupAutoUpdate = undefined\n\t\t\t}\n\n\t\t\tlet x: number, y: number\n\n\t\t\tif (!positionOrEvent) {\n\t\t\t\tx = window.innerWidth / 2\n\t\t\t\ty = window.innerHeight / 2\n\t\t\t} else if ('clientX' in positionOrEvent) {\n\t\t\t\tx = positionOrEvent.clientX\n\t\t\t\ty = positionOrEvent.clientY\n\t\t\t} else if ('touches' in positionOrEvent && positionOrEvent.touches.length) {\n\t\t\t\tx = positionOrEvent.touches[0].clientX\n\t\t\t\ty = positionOrEvent.touches[0].clientY\n\t\t\t} else {\n\t\t\t\tconst pos = positionOrEvent as DialogPosition\n\t\t\t\tx = pos.x\n\t\t\t\ty = pos.y\n\t\t\t}\n\n\t\t\tthis.position = { x, y }\n\n\t\t\t// Virtual reference at click position\n\t\t\tthis.virtualReference = {\n\t\t\t\tgetBoundingClientRect: () => new DOMRect(x, y, 0, 0),\n\t\t\t}\n\n\t\t\t// Trigger re-render with new position (for correct isCentered() in render)\n\t\t\tthis.requestUpdate()\n\t\t\tawait this.updateComplete\n\n\t\t\tthis.setAttribute('active', '')\n\n\t\t\t// Setup Floating UI positioning for non-centered dialogs\n\t\t\tthis.setupPositioning()\n\n\t\t\treturn new Promise<boolean>(resolve => {\n\t\t\t\tthis.resolvePromise = resolve\n\t\t\t})\n\t\t}\n\n\t\t/**\n\t\t * Hide the dialog\n\t\t */\n\t\thide(result = false): void {\n\t\t\tthis.removeAttribute('active')\n\n\t\t\tif (this.cleanupAutoUpdate) {\n\t\t\t\tthis.cleanupAutoUpdate()\n\t\t\t\tthis.cleanupAutoUpdate = undefined\n\t\t\t}\n\n\t\t\tif (this.resolvePromise) {\n\t\t\t\tthis.resolvePromise(result)\n\t\t\t\tthis.resolvePromise = undefined\n\t\t\t}\n\t\t}\n\n\t\t/**\n\t\t * Check if position is near center\n\t\t */\n\t\tisCentered(): boolean {\n\t\t\tconst toleranceX = window.innerWidth * 0.3\n\t\t\tconst toleranceY = window.innerHeight * 0.3\n\n\t\t\treturn (\n\t\t\t\tMath.abs(this.position.x - window.innerWidth / 2) < toleranceX &&\n\t\t\t\tMath.abs(this.position.y - window.innerHeight / 2) < toleranceY\n\t\t\t)\n\t\t}\n\n\t\t/**\n\t\t * Setup positioning based on whether dialog is centered or positioned\n\t\t */\n\t\tprivate setupPositioning(): void {\n\t\t\tconst dialog = this.getDialogElement()\n\t\t\tif (!dialog) return\n\n\t\t\t// Centered dialogs: CSS handles everything, no JS positioning needed\n\t\t\tif (this.isCentered()) {\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\t// Positioned dialogs: use Floating UI with autoPlacement\n\t\t\tif (this.virtualReference) {\n\t\t\t\tthis.cleanupAutoUpdate = autoUpdate(\n\t\t\t\t\tthis.virtualReference,\n\t\t\t\t\tdialog,\n\t\t\t\t\t() => this.updatePosition(dialog),\n\t\t\t\t\t{\n\t\t\t\t\t\tancestorScroll: true,\n\t\t\t\t\t\tancestorResize: true,\n\t\t\t\t\t\telementResize: true,\n\t\t\t\t\t},\n\t\t\t\t)\n\t\t\t\tthis.updatePosition(dialog)\n\t\t\t}\n\t\t}\n\n\t\t/**\n\t\t * Update position using Floating UI.\n\t\t * autoPlacement finds the side with MOST space to minimize scrolling.\n\t\t */\n\t\tprivate async updatePosition(dialog: HTMLElement): Promise<void> {\n\t\t\tif (!this.virtualReference) return\n\n\t\t\tconst padding = 16\n\n\t\t\tconst { x, y } = await computePosition(this.virtualReference, dialog, {\n\t\t\t\tstrategy: 'fixed',\n\t\t\t\tmiddleware: [\n\t\t\t\t\t// Small offset from click point\n\t\t\t\t\toffset(8),\n\n\t\t\t\t\t// autoPlacement: picks placement with MOST available space\n\t\t\t\t\tautoPlacement({\n\t\t\t\t\t\tpadding,\n\t\t\t\t\t\tallowedPlacements: [\n\t\t\t\t\t\t\t'top-start',\n\t\t\t\t\t\t\t'top-end',\n\t\t\t\t\t\t\t'bottom-start',\n\t\t\t\t\t\t\t'bottom-end',\n\t\t\t\t\t\t\t'left-start',\n\t\t\t\t\t\t\t'left-end',\n\t\t\t\t\t\t\t'right-start',\n\t\t\t\t\t\t\t'right-end',\n\t\t\t\t\t\t],\n\t\t\t\t\t}),\n\n\t\t\t\t\t// Keep on screen\n\t\t\t\t\tshift({ padding }),\n\n\t\t\t\t\t// Constrain width to available space (CSS handles height via dvh)\n\t\t\t\t\tsize({\n\t\t\t\t\t\tpadding,\n\t\t\t\t\t\tapply({ availableWidth, elements }) {\n\t\t\t\t\t\t\telements.floating.style.maxWidth = `${availableWidth}px`\n\t\t\t\t\t\t},\n\t\t\t\t\t}),\n\t\t\t\t],\n\t\t\t})\n\n\t\t\tObject.assign(dialog.style, {\n\t\t\t\tposition: 'fixed',\n\t\t\t\tleft: `${Math.round(x)}px`,\n\t\t\t\ttop: `${Math.round(y)}px`,\n\t\t\t\ttransform: 'none',\n\t\t\t})\n\t\t}\n\n\t\t/**\n\t\t * Cleanup on disconnect\n\t\t */\n\t\tdisconnectedCallback(): void {\n\t\t\tif (this.cleanupAutoUpdate) {\n\t\t\t\tthis.cleanupAutoUpdate()\n\t\t\t\tthis.cleanupAutoUpdate = undefined\n\t\t\t}\n\t\t\tsuper.disconnectedCallback()\n\t\t}\n\t}\n\n\treturn DialogBaseClass as Constructor<IDialogBaseMixin> & T\n}\n","import { $LitElement } from '@mixins/index'\nimport { css, html } from 'lit'\nimport { customElement, property } from 'lit/decorators.js'\nimport { when } from 'lit/directives/when.js'\nimport { fromEvent, tap } from 'rxjs'\nimport { takeUntil } from 'rxjs/operators'\nimport { DialogBase } from './dialog-base.mixin'\nimport { DialogHereMorty, DialogWhereAreYouRicky, DialogWhereAreYouRickyEvent } from './dialog-events'\n\n/**\n * Unified dialog component that handles both content-only and confirm modes.\n *\n * @element schmancy-dialog\n * @slot default - Content slot for dialog body (used in content mode)\n * @slot content - Named slot for custom content in confirm mode\n *\n * @example Content mode (no buttons):\n * ```html\n * <schmancy-dialog>\n * <my-custom-content></my-custom-content>\n * </schmancy-dialog>\n * ```\n *\n * @example Confirm mode (with buttons):\n * ```html\n * <schmancy-dialog\n * title=\"Confirm Action\"\n * message=\"Are you sure?\"\n * confirm-text=\"Yes\"\n * cancel-text=\"No\"\n * ></schmancy-dialog>\n * ```\n */\n@customElement('schmancy-dialog')\nexport class SchmancyDialog extends DialogBase(\n\t$LitElement(css`\n\t\t:host {\n\t\t\tposition: fixed;\n\t\t\tz-index: 10000;\n\t\t\tinset: 0;\n\t\t\tdisplay: none;\n\t\t\t--dialog-width: fit-content;\n\t\t}\n\n\t\t:host([active]) {\n\t\t\tdisplay: block;\n\t\t}\n\t`),\n) {\n\t/**\n\t * Unique identifier for the dialog instance\n\t */\n\t@property({ type: String, reflect: true }) uid!: string\n\n\t/**\n\t * Dialog title (enables confirm mode when set)\n\t */\n\t@property({ type: String }) title: string | undefined = undefined\n\n\t/**\n\t * Dialog subtitle\n\t */\n\t@property({ type: String }) subtitle: string | undefined = undefined\n\n\t/**\n\t * Dialog message\n\t */\n\t@property({ type: String }) message: string | undefined = undefined\n\n\t/**\n\t * Text for confirm button (enables confirm mode when set with cancelText)\n\t */\n\t@property({ type: String, attribute: 'confirm-text' }) confirmText: string | undefined = undefined\n\n\t/**\n\t * Text for cancel button\n\t */\n\t@property({ type: String, attribute: 'cancel-text' }) cancelText: string | undefined = undefined\n\n\t/**\n\t * Dialog variant (affects button colors in confirm mode)\n\t */\n\t@property({ type: String }) variant: 'default' | 'danger' = 'default'\n\n\t/**\n\t * Whether to hide action buttons (force content mode)\n\t */\n\t@property({ type: Boolean, attribute: 'hide-actions' }) hideActions = false\n\n\t/**\n\t * Return the dialog element for positioning\n\t */\n\tprotected getDialogElement(): HTMLElement | null {\n\t\treturn this.shadowRoot?.querySelector('[role=\"dialog\"], [role=\"alertdialog\"]') as HTMLElement\n\t}\n\n\t/**\n\t * Check if dialog is in confirm mode (has buttons)\n\t */\n\tprivate get isConfirmMode(): boolean {\n\t\tif (this.hideActions) return false\n\t\treturn !!(this.confirmText?.trim() && this.cancelText?.trim())\n\t}\n\n\t/**\n\t * Handle component connection to DOM\n\t */\n\tconnectedCallback(): void {\n\t\tsuper.connectedCallback()\n\n\t\t// Listen for \"where are you ricky\" events\n\t\tfromEvent<DialogWhereAreYouRickyEvent>(window, DialogWhereAreYouRicky)\n\t\t\t.pipe(\n\t\t\t\ttap(e => {\n\t\t\t\t\tif (e.detail.uid === this.uid) this.announcePresence()\n\t\t\t\t}),\n\t\t\t\ttakeUntil(this.disconnecting),\n\t\t\t)\n\t\t\t.subscribe()\n\t}\n\n\t/**\n\t * Announce this dialog's presence to the service\n\t */\n\tprivate announcePresence(): void {\n\t\tthis.dispatchEvent(\n\t\t\tnew CustomEvent(DialogHereMorty, {\n\t\t\t\tdetail: { dialog: this },\n\t\t\t\tbubbles: true,\n\t\t\t\tcomposed: true,\n\t\t\t}),\n\t\t)\n\t}\n\n\t/**\n\t * Handle confirm action\n\t */\n\tprivate handleConfirm(): void {\n\t\tthis.hide(true)\n\t\tthis.dispatchEvent(\n\t\t\tnew CustomEvent('confirm', {\n\t\t\t\tbubbles: true,\n\t\t\t\tcomposed: true,\n\t\t\t}),\n\t\t)\n\t}\n\n\t/**\n\t * Handle cancel/close action\n\t */\n\tprivate handleClose(): void {\n\t\tthis.hide(false)\n\t\tthis.dispatchEvent(\n\t\t\tnew CustomEvent(this.isConfirmMode ? 'cancel' : 'close', {\n\t\t\t\tbubbles: true,\n\t\t\t\tcomposed: true,\n\t\t\t}),\n\t\t)\n\t}\n\n\trender() {\n\t\tconst isCentered = this.isCentered()\n\t\tconst hasCustomContent = this.querySelectorAll('[slot=\"content\"]').length > 0\n\n\t\tconst dialogClasses = {\n\t\t\tdialog: true,\n\t\t\tfixed: true,\n\t\t\t'w-[var(--dialog-width)]': true,\n\t\t\t'max-w-[calc(100vw-2rem)]': true,\n\t\t\t'max-h-[90dvh]': true,\n\t\t\t'overflow-hidden': true,\n\t\t\t'top-1/2': isCentered,\n\t\t\t'left-1/2': isCentered,\n\t\t\t'-translate-x-1/2': isCentered,\n\t\t\t'-translate-y-1/2': isCentered,\n\t\t}\n\n\t\t// Confirm mode: with title/buttons\n\t\tif (this.isConfirmMode) {\n\t\t\treturn html`\n\t\t\t\t<div class=\"fixed inset-0 bg-scrim/40\" @click=${this.handleClose}></div>\n\n\t\t\t\t<div class=${this.classMap(dialogClasses)} role=\"alertdialog\" aria-modal=\"true\">\n\t\t\t\t\t<schmancy-surface rounded=\"all\" elevation=\"3\" type=\"containerHigh\" fill=\"all\" class=\"overflow-hidden\">\n\t\t\t\t\t\t<schmancy-scroll direction=\"vertical\" hide class=\"p-4\">\n\t\t\t\t\t\t\t<schmancy-form @submit=${this.handleConfirm}>\n\t\t\t\t\t\t\t\t${when(\n\t\t\t\t\t\t\t\t\tthis.title?.trim(),\n\t\t\t\t\t\t\t\t\t() => html`\n\t\t\t\t\t\t\t\t\t\t<schmancy-typography type=\"title\" token=\"md\" class=\"mb-1\">${this.title}</schmancy-typography>\n\t\t\t\t\t\t\t\t\t\t${when(\n\t\t\t\t\t\t\t\t\t\t\tthis.subtitle?.trim(),\n\t\t\t\t\t\t\t\t\t\t\t() => html`\n\t\t\t\t\t\t\t\t\t\t\t\t<schmancy-typography type=\"subtitle\" token=\"xs\" class=\"mb-2\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t${this.subtitle}\n\t\t\t\t\t\t\t\t\t\t\t\t</schmancy-typography>\n\t\t\t\t\t\t\t\t\t\t\t`,\n\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t`,\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t${hasCustomContent\n\t\t\t\t\t\t\t\t\t? html`<div class=\"mb-4\"><slot name=\"content\"></slot></div>`\n\t\t\t\t\t\t\t\t\t: when(\n\t\t\t\t\t\t\t\t\t\t\tthis.message?.trim(),\n\t\t\t\t\t\t\t\t\t\t\t() => html`<schmancy-typography type=\"body\" class=\"mb-4\">${this.message}</schmancy-typography>`,\n\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t<div class=\"flex justify-end gap-3\">\n\t\t\t\t\t\t\t\t\t<schmancy-button variant=\"outlined\" @click=${this.handleClose}>${this.cancelText}</schmancy-button>\n\t\t\t\t\t\t\t\t\t<schmancy-button type=\"submit\" variant=\"filled\">${this.confirmText}</schmancy-button>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</schmancy-form>\n\t\t\t\t\t\t</schmancy-scroll>\n\t\t\t\t\t</schmancy-surface>\n\t\t\t\t</div>\n\t\t\t`\n\t\t}\n\n\t\t// Content mode: minimal, just slot\n\t\treturn html`\n\t\t\t<div class=\"fixed inset-0 bg-surface-container/10 backdrop-blur-xs\" @click=${this.handleClose}></div>\n\n\t\t\t<section class=${this.classMap(dialogClasses)} role=\"dialog\" aria-modal=\"true\">\n\t\t\t\t<schmancy-surface rounded=\"all\" type=\"surface\" elevation=\"2\" fill=\"all\" class=\"overflow-hidden\">\n\t\t\t\t\t<schmancy-scroll direction=\"vertical\" hide class=\"p-2 md:p-4 max-h-[90dvh]\">\n\t\t\t\t\t\t<slot></slot>\n\t\t\t\t\t</schmancy-scroll>\n\t\t\t\t</schmancy-surface>\n\t\t\t</section>\n\t\t`\n\t}\n\n\t/**\n\t * Static helper for confirm dialogs\n\t */\n\tstatic async confirm(options: {\n\t\ttitle?: string\n\t\tsubtitle?: string\n\t\tmessage?: string\n\t\tconfirmText?: string\n\t\tcancelText?: string\n\t\tvariant?: 'default' | 'danger'\n\t\tposition?: { x: number; y: number } | MouseEvent | TouchEvent\n\t\twidth?: string\n\t}): Promise<boolean> {\n\t\tlet dialog = document.querySelector('schmancy-dialog[data-static-confirm]') as SchmancyDialog\n\n\t\tif (!dialog) {\n\t\t\tdialog = document.createElement('schmancy-dialog') as SchmancyDialog\n\t\t\tdialog.setAttribute('data-static-confirm', '')\n\t\t\tdocument.body.appendChild(dialog)\n\t\t}\n\n\t\t// Set options\n\t\tdialog.title = options.title\n\t\tdialog.subtitle = options.subtitle\n\t\tdialog.message = options.message\n\t\tdialog.confirmText = options.confirmText ?? 'Confirm'\n\t\tdialog.cancelText = options.cancelText ?? 'Cancel'\n\t\tdialog.variant = options.variant ?? 'default'\n\t\tif (options.width) dialog.style.setProperty('--dialog-width', options.width)\n\n\t\treturn dialog.show(options.position)\n\t}\n\n\t/**\n\t * Simple shorthand - just pass message and optionally an event\n\t */\n\tstatic async 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\n// Alias for backward compatibility\nexport { SchmancyDialog as ConfirmDialog }\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-dialog': SchmancyDialog\n\t}\n}\n"],"names":["DialogBase","superClass","constructor","super","arguments","this","position","x","y","positionOrEvent","cleanupAutoUpdate","clientX","clientY","touches","length","pos","window","innerWidth","innerHeight","virtualReference","getBoundingClientRect","DOMRect","requestUpdate","updateComplete","setAttribute","setupPositioning","Promise","resolve","resolvePromise","result","removeAttribute","isCentered","toleranceX","toleranceY","Math","abs","dialog","getDialogElement","autoUpdate","updatePosition","ancestorScroll","ancestorResize","elementResize","computePosition","strategy","middleware","offset","autoPlacement","padding","allowedPlacements","shift","size","availableWidth","elements","floating","style","maxWidth","Object","assign","left","round","top","transform","disconnectedCallback","SchmancyDialog","$LitElement","css","title","subtitle","message","confirmText","cancelText","variant","hideActions","shadowRoot","querySelector","isConfirmMode","trim","connectedCallback","fromEvent","DialogWhereAreYouRicky","pipe","tap","e","detail","uid","announcePresence","takeUntil","disconnecting","subscribe","dispatchEvent","CustomEvent","DialogHereMorty","bubbles","composed","handleConfirm","hide","handleClose","render","hasCustomContent","querySelectorAll","dialogClasses","fixed","html","classMap","when","options","document","createElement","body","appendChild","width","setProperty","show","event","confirm","__decorateClass","property","type","String","reflect","prototype","attribute","Boolean","customElement"],"mappings":"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"}
@@ -0,0 +1,145 @@
1
+ import { fromEvent as p, tap as m } from "rxjs";
2
+ import { takeUntil as u } from "rxjs/operators";
3
+ import "lit/directives/class-map.js";
4
+ import "lit/directives/style-map.js";
5
+ import { property as r, customElement as y } from "lit/decorators.js";
6
+ import "./tailwind.mixin-Bp_PR6yc.js";
7
+ import { $ as f } from "./litElement.mixin-DHZXtvYq.js";
8
+ import { css as g, html as l } from "lit";
9
+ import { when as h } from "lit/directives/when.js";
10
+ import { autoUpdate as v, computePosition as b, offset as x, autoPlacement as w, shift as C, size as P } from "@floating-ui/dom";
11
+ import { a as $, b as A } from "./dialog-service-D9E3jLAR.js";
12
+ const k = (e) => class extends e {
13
+ constructor() {
14
+ super(...arguments), this.position = { x: 0, y: 0 };
15
+ }
16
+ getDialogElement() {
17
+ return null;
18
+ }
19
+ async show(t) {
20
+ let i, s;
21
+ if (this.cleanupAutoUpdate && (this.cleanupAutoUpdate(), this.cleanupAutoUpdate = void 0), t) if ("clientX" in t) i = t.clientX, s = t.clientY;
22
+ else if ("touches" in t && t.touches.length) i = t.touches[0].clientX, s = t.touches[0].clientY;
23
+ else {
24
+ const o = t;
25
+ i = o.x, s = o.y;
26
+ }
27
+ else i = window.innerWidth / 2, s = window.innerHeight / 2;
28
+ return this.position = { x: i, y: s }, this.virtualReference = { getBoundingClientRect: () => new DOMRect(i, s, 0, 0) }, this.requestUpdate(), await this.updateComplete, this.setAttribute("active", ""), this.setupPositioning(), new Promise((o) => {
29
+ this.resolvePromise = o;
30
+ });
31
+ }
32
+ hide(t = !1) {
33
+ this.removeAttribute("active"), this.cleanupAutoUpdate && (this.cleanupAutoUpdate(), this.cleanupAutoUpdate = void 0), this.resolvePromise && (this.resolvePromise(t), this.resolvePromise = void 0);
34
+ }
35
+ isCentered() {
36
+ const t = 0.3 * window.innerWidth, i = 0.3 * window.innerHeight;
37
+ return Math.abs(this.position.x - window.innerWidth / 2) < t && Math.abs(this.position.y - window.innerHeight / 2) < i;
38
+ }
39
+ setupPositioning() {
40
+ const t = this.getDialogElement();
41
+ t && (this.isCentered() || this.virtualReference && (this.cleanupAutoUpdate = v(this.virtualReference, t, () => this.updatePosition(t), { ancestorScroll: !0, ancestorResize: !0, elementResize: !0 }), this.updatePosition(t)));
42
+ }
43
+ async updatePosition(t) {
44
+ if (!this.virtualReference) return;
45
+ const { x: i, y: s } = await b(this.virtualReference, t, { strategy: "fixed", middleware: [x(8), w({ padding: 16, allowedPlacements: ["top-start", "top-end", "bottom-start", "bottom-end", "left-start", "left-end", "right-start", "right-end"] }), C({ padding: 16 }), P({ padding: 16, apply({ availableWidth: o, elements: a }) {
46
+ a.floating.style.maxWidth = `${o}px`;
47
+ } })] });
48
+ Object.assign(t.style, { position: "fixed", left: `${Math.round(i)}px`, top: `${Math.round(s)}px`, transform: "none" });
49
+ }
50
+ disconnectedCallback() {
51
+ this.cleanupAutoUpdate && (this.cleanupAutoUpdate(), this.cleanupAutoUpdate = void 0), super.disconnectedCallback();
52
+ }
53
+ };
54
+ var U = Object.defineProperty, E = Object.getOwnPropertyDescriptor, c = (e, t, i, s) => {
55
+ for (var o, a = s > 1 ? void 0 : s ? E(t, i) : t, d = e.length - 1; d >= 0; d--) (o = e[d]) && (a = (s ? o(t, i, a) : o(a)) || a);
56
+ return s && a && U(t, i, a), a;
57
+ };
58
+ let n = class extends k(f(g`
59
+ :host {
60
+ position: fixed;
61
+ z-index: 10000;
62
+ inset: 0;
63
+ display: none;
64
+ --dialog-width: fit-content;
65
+ }
66
+
67
+ :host([active]) {
68
+ display: block;
69
+ }
70
+ `)) {
71
+ constructor() {
72
+ super(...arguments), this.title = void 0, this.subtitle = void 0, this.message = void 0, this.confirmText = void 0, this.cancelText = void 0, this.variant = "default", this.hideActions = !1;
73
+ }
74
+ getDialogElement() {
75
+ return this.shadowRoot?.querySelector('[role="dialog"], [role="alertdialog"]');
76
+ }
77
+ get isConfirmMode() {
78
+ return !this.hideActions && !(!this.confirmText?.trim() || !this.cancelText?.trim());
79
+ }
80
+ connectedCallback() {
81
+ super.connectedCallback(), p(window, $).pipe(m((e) => {
82
+ e.detail.uid === this.uid && this.announcePresence();
83
+ }), u(this.disconnecting)).subscribe();
84
+ }
85
+ announcePresence() {
86
+ this.dispatchEvent(new CustomEvent(A, { detail: { dialog: this }, bubbles: !0, composed: !0 }));
87
+ }
88
+ handleConfirm() {
89
+ this.hide(!0), this.dispatchEvent(new CustomEvent("confirm", { bubbles: !0, composed: !0 }));
90
+ }
91
+ handleClose() {
92
+ this.hide(!1), this.dispatchEvent(new CustomEvent(this.isConfirmMode ? "cancel" : "close", { bubbles: !0, composed: !0 }));
93
+ }
94
+ render() {
95
+ const e = this.isCentered(), t = this.querySelectorAll('[slot="content"]').length > 0, i = { dialog: !0, fixed: !0, "w-[var(--dialog-width)]": !0, "max-w-[calc(100vw-2rem)]": !0, "max-h-[90dvh]": !0, "overflow-hidden": !0, "top-1/2": e, "left-1/2": e, "-translate-x-1/2": e, "-translate-y-1/2": e };
96
+ return this.isConfirmMode ? l`
97
+ <div class="fixed inset-0 bg-scrim/40" @click=${this.handleClose}></div>
98
+
99
+ <div class=${this.classMap(i)} role="alertdialog" aria-modal="true">
100
+ <schmancy-surface rounded="all" elevation="3" type="containerHigh" fill="all" class="overflow-hidden">
101
+ <schmancy-scroll direction="vertical" hide class="p-4">
102
+ <schmancy-form @submit=${this.handleConfirm}>
103
+ ${h(this.title?.trim(), () => l`
104
+ <schmancy-typography type="title" token="md" class="mb-1">${this.title}</schmancy-typography>
105
+ ${h(this.subtitle?.trim(), () => l`
106
+ <schmancy-typography type="subtitle" token="xs" class="mb-2">
107
+ ${this.subtitle}
108
+ </schmancy-typography>
109
+ `)}
110
+ `)}
111
+ ${t ? l`<div class="mb-4"><slot name="content"></slot></div>` : h(this.message?.trim(), () => l`<schmancy-typography type="body" class="mb-4">${this.message}</schmancy-typography>`)}
112
+ <div class="flex justify-end gap-3">
113
+ <schmancy-button variant="outlined" @click=${this.handleClose}>${this.cancelText}</schmancy-button>
114
+ <schmancy-button type="submit" variant="filled">${this.confirmText}</schmancy-button>
115
+ </div>
116
+ </schmancy-form>
117
+ </schmancy-scroll>
118
+ </schmancy-surface>
119
+ </div>
120
+ ` : l`
121
+ <div class="fixed inset-0 bg-surface-container/10 backdrop-blur-xs" @click=${this.handleClose}></div>
122
+
123
+ <section class=${this.classMap(i)} role="dialog" aria-modal="true">
124
+ <schmancy-surface rounded="all" type="surface" elevation="2" fill="all" class="overflow-hidden">
125
+ <schmancy-scroll direction="vertical" hide class="p-2 md:p-4 max-h-[90dvh]">
126
+ <slot></slot>
127
+ </schmancy-scroll>
128
+ </schmancy-surface>
129
+ </section>
130
+ `;
131
+ }
132
+ static async confirm(e) {
133
+ let t = document.querySelector("schmancy-dialog[data-static-confirm]");
134
+ return t || (t = document.createElement("schmancy-dialog"), t.setAttribute("data-static-confirm", ""), document.body.appendChild(t)), t.title = e.title, t.subtitle = e.subtitle, t.message = e.message, t.confirmText = e.confirmText ?? "Confirm", t.cancelText = e.cancelText ?? "Cancel", t.variant = e.variant ?? "default", e.width && t.style.setProperty("--dialog-width", e.width), t.show(e.position);
135
+ }
136
+ static async ask(e, t) {
137
+ return this.confirm({ message: e, position: t });
138
+ }
139
+ };
140
+ c([r({ type: String, reflect: !0 })], n.prototype, "uid", 2), c([r({ type: String })], n.prototype, "title", 2), c([r({ type: String })], n.prototype, "subtitle", 2), c([r({ type: String })], n.prototype, "message", 2), c([r({ type: String, attribute: "confirm-text" })], n.prototype, "confirmText", 2), c([r({ type: String, attribute: "cancel-text" })], n.prototype, "cancelText", 2), c([r({ type: String })], n.prototype, "variant", 2), c([r({ type: Boolean, attribute: "hide-actions" })], n.prototype, "hideActions", 2), n = c([y("schmancy-dialog")], n);
141
+ export {
142
+ k as D,
143
+ n as S
144
+ };
145
+ //# sourceMappingURL=dialog.component-a7FlKhGD.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dialog.component-a7FlKhGD.js","sources":["../src/dialog/dialog-base.mixin.ts","../src/dialog/dialog.component.ts"],"sourcesContent":["import { autoPlacement, autoUpdate, computePosition, offset, shift, size } from '@floating-ui/dom'\nimport { LitElement } from 'lit'\nimport type { Constructor } from '../../mixins/constructor'\nimport type { IBaseMixin } from '../../mixins/baseElement'\n\nexport interface DialogPosition {\n\tx: number\n\ty: number\n}\n\nexport interface VirtualReference {\n\tgetBoundingClientRect: () => DOMRect\n}\n\n/**\n * Interface for the DialogBase mixin methods\n */\nexport interface IDialogBaseMixin {\n\tposition: DialogPosition\n\tshow(positionOrEvent?: DialogPosition | MouseEvent | TouchEvent): Promise<boolean>\n\thide(result?: boolean): void\n\tisCentered(): boolean\n}\n\n/**\n * Dialog mixin with smart positioning using Floating UI.\n *\n * Uses autoPlacement to find the position with MOST available space,\n * minimizing the need for content scrolling.\n */\nexport const DialogBase = <T extends Constructor<LitElement & IBaseMixin>>(superClass: T) => {\n\tclass DialogBaseClass extends superClass {\n\t\tposition: DialogPosition = { x: 0, y: 0 }\n\t\tprotected resolvePromise?: (value: boolean) => void\n\t\tprotected cleanupAutoUpdate?: () => void\n\t\tprotected virtualReference?: VirtualReference\n\n\t\t/**\n\t\t * Override in subclass to return the dialog element\n\t\t */\n\t\tprotected getDialogElement(): HTMLElement | null {\n\t\t\treturn null\n\t\t}\n\n\t\t/**\n\t\t * Show the dialog at a specific position\n\t\t */\n\t\tasync show(positionOrEvent?: DialogPosition | MouseEvent | TouchEvent): Promise<boolean> {\n\t\t\t// Cleanup previous positioning\n\t\t\tif (this.cleanupAutoUpdate) {\n\t\t\t\tthis.cleanupAutoUpdate()\n\t\t\t\tthis.cleanupAutoUpdate = undefined\n\t\t\t}\n\n\t\t\tlet x: number, y: number\n\n\t\t\tif (!positionOrEvent) {\n\t\t\t\tx = window.innerWidth / 2\n\t\t\t\ty = window.innerHeight / 2\n\t\t\t} else if ('clientX' in positionOrEvent) {\n\t\t\t\tx = positionOrEvent.clientX\n\t\t\t\ty = positionOrEvent.clientY\n\t\t\t} else if ('touches' in positionOrEvent && positionOrEvent.touches.length) {\n\t\t\t\tx = positionOrEvent.touches[0].clientX\n\t\t\t\ty = positionOrEvent.touches[0].clientY\n\t\t\t} else {\n\t\t\t\tconst pos = positionOrEvent as DialogPosition\n\t\t\t\tx = pos.x\n\t\t\t\ty = pos.y\n\t\t\t}\n\n\t\t\tthis.position = { x, y }\n\n\t\t\t// Virtual reference at click position\n\t\t\tthis.virtualReference = {\n\t\t\t\tgetBoundingClientRect: () => new DOMRect(x, y, 0, 0),\n\t\t\t}\n\n\t\t\t// Trigger re-render with new position (for correct isCentered() in render)\n\t\t\tthis.requestUpdate()\n\t\t\tawait this.updateComplete\n\n\t\t\tthis.setAttribute('active', '')\n\n\t\t\t// Setup Floating UI positioning for non-centered dialogs\n\t\t\tthis.setupPositioning()\n\n\t\t\treturn new Promise<boolean>(resolve => {\n\t\t\t\tthis.resolvePromise = resolve\n\t\t\t})\n\t\t}\n\n\t\t/**\n\t\t * Hide the dialog\n\t\t */\n\t\thide(result = false): void {\n\t\t\tthis.removeAttribute('active')\n\n\t\t\tif (this.cleanupAutoUpdate) {\n\t\t\t\tthis.cleanupAutoUpdate()\n\t\t\t\tthis.cleanupAutoUpdate = undefined\n\t\t\t}\n\n\t\t\tif (this.resolvePromise) {\n\t\t\t\tthis.resolvePromise(result)\n\t\t\t\tthis.resolvePromise = undefined\n\t\t\t}\n\t\t}\n\n\t\t/**\n\t\t * Check if position is near center\n\t\t */\n\t\tisCentered(): boolean {\n\t\t\tconst toleranceX = window.innerWidth * 0.3\n\t\t\tconst toleranceY = window.innerHeight * 0.3\n\n\t\t\treturn (\n\t\t\t\tMath.abs(this.position.x - window.innerWidth / 2) < toleranceX &&\n\t\t\t\tMath.abs(this.position.y - window.innerHeight / 2) < toleranceY\n\t\t\t)\n\t\t}\n\n\t\t/**\n\t\t * Setup positioning based on whether dialog is centered or positioned\n\t\t */\n\t\tprivate setupPositioning(): void {\n\t\t\tconst dialog = this.getDialogElement()\n\t\t\tif (!dialog) return\n\n\t\t\t// Centered dialogs: CSS handles everything, no JS positioning needed\n\t\t\tif (this.isCentered()) {\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\t// Positioned dialogs: use Floating UI with autoPlacement\n\t\t\tif (this.virtualReference) {\n\t\t\t\tthis.cleanupAutoUpdate = autoUpdate(\n\t\t\t\t\tthis.virtualReference,\n\t\t\t\t\tdialog,\n\t\t\t\t\t() => this.updatePosition(dialog),\n\t\t\t\t\t{\n\t\t\t\t\t\tancestorScroll: true,\n\t\t\t\t\t\tancestorResize: true,\n\t\t\t\t\t\telementResize: true,\n\t\t\t\t\t},\n\t\t\t\t)\n\t\t\t\tthis.updatePosition(dialog)\n\t\t\t}\n\t\t}\n\n\t\t/**\n\t\t * Update position using Floating UI.\n\t\t * autoPlacement finds the side with MOST space to minimize scrolling.\n\t\t */\n\t\tprivate async updatePosition(dialog: HTMLElement): Promise<void> {\n\t\t\tif (!this.virtualReference) return\n\n\t\t\tconst padding = 16\n\n\t\t\tconst { x, y } = await computePosition(this.virtualReference, dialog, {\n\t\t\t\tstrategy: 'fixed',\n\t\t\t\tmiddleware: [\n\t\t\t\t\t// Small offset from click point\n\t\t\t\t\toffset(8),\n\n\t\t\t\t\t// autoPlacement: picks placement with MOST available space\n\t\t\t\t\tautoPlacement({\n\t\t\t\t\t\tpadding,\n\t\t\t\t\t\tallowedPlacements: [\n\t\t\t\t\t\t\t'top-start',\n\t\t\t\t\t\t\t'top-end',\n\t\t\t\t\t\t\t'bottom-start',\n\t\t\t\t\t\t\t'bottom-end',\n\t\t\t\t\t\t\t'left-start',\n\t\t\t\t\t\t\t'left-end',\n\t\t\t\t\t\t\t'right-start',\n\t\t\t\t\t\t\t'right-end',\n\t\t\t\t\t\t],\n\t\t\t\t\t}),\n\n\t\t\t\t\t// Keep on screen\n\t\t\t\t\tshift({ padding }),\n\n\t\t\t\t\t// Constrain width to available space (CSS handles height via dvh)\n\t\t\t\t\tsize({\n\t\t\t\t\t\tpadding,\n\t\t\t\t\t\tapply({ availableWidth, elements }) {\n\t\t\t\t\t\t\telements.floating.style.maxWidth = `${availableWidth}px`\n\t\t\t\t\t\t},\n\t\t\t\t\t}),\n\t\t\t\t],\n\t\t\t})\n\n\t\t\tObject.assign(dialog.style, {\n\t\t\t\tposition: 'fixed',\n\t\t\t\tleft: `${Math.round(x)}px`,\n\t\t\t\ttop: `${Math.round(y)}px`,\n\t\t\t\ttransform: 'none',\n\t\t\t})\n\t\t}\n\n\t\t/**\n\t\t * Cleanup on disconnect\n\t\t */\n\t\tdisconnectedCallback(): void {\n\t\t\tif (this.cleanupAutoUpdate) {\n\t\t\t\tthis.cleanupAutoUpdate()\n\t\t\t\tthis.cleanupAutoUpdate = undefined\n\t\t\t}\n\t\t\tsuper.disconnectedCallback()\n\t\t}\n\t}\n\n\treturn DialogBaseClass as Constructor<IDialogBaseMixin> & T\n}\n","import { $LitElement } from '@mixins/index'\nimport { css, html } from 'lit'\nimport { customElement, property } from 'lit/decorators.js'\nimport { when } from 'lit/directives/when.js'\nimport { fromEvent, tap } from 'rxjs'\nimport { takeUntil } from 'rxjs/operators'\nimport { DialogBase } from './dialog-base.mixin'\nimport { DialogHereMorty, DialogWhereAreYouRicky, DialogWhereAreYouRickyEvent } from './dialog-events'\n\n/**\n * Unified dialog component that handles both content-only and confirm modes.\n *\n * @element schmancy-dialog\n * @slot default - Content slot for dialog body (used in content mode)\n * @slot content - Named slot for custom content in confirm mode\n *\n * @example Content mode (no buttons):\n * ```html\n * <schmancy-dialog>\n * <my-custom-content></my-custom-content>\n * </schmancy-dialog>\n * ```\n *\n * @example Confirm mode (with buttons):\n * ```html\n * <schmancy-dialog\n * title=\"Confirm Action\"\n * message=\"Are you sure?\"\n * confirm-text=\"Yes\"\n * cancel-text=\"No\"\n * ></schmancy-dialog>\n * ```\n */\n@customElement('schmancy-dialog')\nexport class SchmancyDialog extends DialogBase(\n\t$LitElement(css`\n\t\t:host {\n\t\t\tposition: fixed;\n\t\t\tz-index: 10000;\n\t\t\tinset: 0;\n\t\t\tdisplay: none;\n\t\t\t--dialog-width: fit-content;\n\t\t}\n\n\t\t:host([active]) {\n\t\t\tdisplay: block;\n\t\t}\n\t`),\n) {\n\t/**\n\t * Unique identifier for the dialog instance\n\t */\n\t@property({ type: String, reflect: true }) uid!: string\n\n\t/**\n\t * Dialog title (enables confirm mode when set)\n\t */\n\t@property({ type: String }) title: string | undefined = undefined\n\n\t/**\n\t * Dialog subtitle\n\t */\n\t@property({ type: String }) subtitle: string | undefined = undefined\n\n\t/**\n\t * Dialog message\n\t */\n\t@property({ type: String }) message: string | undefined = undefined\n\n\t/**\n\t * Text for confirm button (enables confirm mode when set with cancelText)\n\t */\n\t@property({ type: String, attribute: 'confirm-text' }) confirmText: string | undefined = undefined\n\n\t/**\n\t * Text for cancel button\n\t */\n\t@property({ type: String, attribute: 'cancel-text' }) cancelText: string | undefined = undefined\n\n\t/**\n\t * Dialog variant (affects button colors in confirm mode)\n\t */\n\t@property({ type: String }) variant: 'default' | 'danger' = 'default'\n\n\t/**\n\t * Whether to hide action buttons (force content mode)\n\t */\n\t@property({ type: Boolean, attribute: 'hide-actions' }) hideActions = false\n\n\t/**\n\t * Return the dialog element for positioning\n\t */\n\tprotected getDialogElement(): HTMLElement | null {\n\t\treturn this.shadowRoot?.querySelector('[role=\"dialog\"], [role=\"alertdialog\"]') as HTMLElement\n\t}\n\n\t/**\n\t * Check if dialog is in confirm mode (has buttons)\n\t */\n\tprivate get isConfirmMode(): boolean {\n\t\tif (this.hideActions) return false\n\t\treturn !!(this.confirmText?.trim() && this.cancelText?.trim())\n\t}\n\n\t/**\n\t * Handle component connection to DOM\n\t */\n\tconnectedCallback(): void {\n\t\tsuper.connectedCallback()\n\n\t\t// Listen for \"where are you ricky\" events\n\t\tfromEvent<DialogWhereAreYouRickyEvent>(window, DialogWhereAreYouRicky)\n\t\t\t.pipe(\n\t\t\t\ttap(e => {\n\t\t\t\t\tif (e.detail.uid === this.uid) this.announcePresence()\n\t\t\t\t}),\n\t\t\t\ttakeUntil(this.disconnecting),\n\t\t\t)\n\t\t\t.subscribe()\n\t}\n\n\t/**\n\t * Announce this dialog's presence to the service\n\t */\n\tprivate announcePresence(): void {\n\t\tthis.dispatchEvent(\n\t\t\tnew CustomEvent(DialogHereMorty, {\n\t\t\t\tdetail: { dialog: this },\n\t\t\t\tbubbles: true,\n\t\t\t\tcomposed: true,\n\t\t\t}),\n\t\t)\n\t}\n\n\t/**\n\t * Handle confirm action\n\t */\n\tprivate handleConfirm(): void {\n\t\tthis.hide(true)\n\t\tthis.dispatchEvent(\n\t\t\tnew CustomEvent('confirm', {\n\t\t\t\tbubbles: true,\n\t\t\t\tcomposed: true,\n\t\t\t}),\n\t\t)\n\t}\n\n\t/**\n\t * Handle cancel/close action\n\t */\n\tprivate handleClose(): void {\n\t\tthis.hide(false)\n\t\tthis.dispatchEvent(\n\t\t\tnew CustomEvent(this.isConfirmMode ? 'cancel' : 'close', {\n\t\t\t\tbubbles: true,\n\t\t\t\tcomposed: true,\n\t\t\t}),\n\t\t)\n\t}\n\n\trender() {\n\t\tconst isCentered = this.isCentered()\n\t\tconst hasCustomContent = this.querySelectorAll('[slot=\"content\"]').length > 0\n\n\t\tconst dialogClasses = {\n\t\t\tdialog: true,\n\t\t\tfixed: true,\n\t\t\t'w-[var(--dialog-width)]': true,\n\t\t\t'max-w-[calc(100vw-2rem)]': true,\n\t\t\t'max-h-[90dvh]': true,\n\t\t\t'overflow-hidden': true,\n\t\t\t'top-1/2': isCentered,\n\t\t\t'left-1/2': isCentered,\n\t\t\t'-translate-x-1/2': isCentered,\n\t\t\t'-translate-y-1/2': isCentered,\n\t\t}\n\n\t\t// Confirm mode: with title/buttons\n\t\tif (this.isConfirmMode) {\n\t\t\treturn html`\n\t\t\t\t<div class=\"fixed inset-0 bg-scrim/40\" @click=${this.handleClose}></div>\n\n\t\t\t\t<div class=${this.classMap(dialogClasses)} role=\"alertdialog\" aria-modal=\"true\">\n\t\t\t\t\t<schmancy-surface rounded=\"all\" elevation=\"3\" type=\"containerHigh\" fill=\"all\" class=\"overflow-hidden\">\n\t\t\t\t\t\t<schmancy-scroll direction=\"vertical\" hide class=\"p-4\">\n\t\t\t\t\t\t\t<schmancy-form @submit=${this.handleConfirm}>\n\t\t\t\t\t\t\t\t${when(\n\t\t\t\t\t\t\t\t\tthis.title?.trim(),\n\t\t\t\t\t\t\t\t\t() => html`\n\t\t\t\t\t\t\t\t\t\t<schmancy-typography type=\"title\" token=\"md\" class=\"mb-1\">${this.title}</schmancy-typography>\n\t\t\t\t\t\t\t\t\t\t${when(\n\t\t\t\t\t\t\t\t\t\t\tthis.subtitle?.trim(),\n\t\t\t\t\t\t\t\t\t\t\t() => html`\n\t\t\t\t\t\t\t\t\t\t\t\t<schmancy-typography type=\"subtitle\" token=\"xs\" class=\"mb-2\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t${this.subtitle}\n\t\t\t\t\t\t\t\t\t\t\t\t</schmancy-typography>\n\t\t\t\t\t\t\t\t\t\t\t`,\n\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t`,\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t${hasCustomContent\n\t\t\t\t\t\t\t\t\t? html`<div class=\"mb-4\"><slot name=\"content\"></slot></div>`\n\t\t\t\t\t\t\t\t\t: when(\n\t\t\t\t\t\t\t\t\t\t\tthis.message?.trim(),\n\t\t\t\t\t\t\t\t\t\t\t() => html`<schmancy-typography type=\"body\" class=\"mb-4\">${this.message}</schmancy-typography>`,\n\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t<div class=\"flex justify-end gap-3\">\n\t\t\t\t\t\t\t\t\t<schmancy-button variant=\"outlined\" @click=${this.handleClose}>${this.cancelText}</schmancy-button>\n\t\t\t\t\t\t\t\t\t<schmancy-button type=\"submit\" variant=\"filled\">${this.confirmText}</schmancy-button>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</schmancy-form>\n\t\t\t\t\t\t</schmancy-scroll>\n\t\t\t\t\t</schmancy-surface>\n\t\t\t\t</div>\n\t\t\t`\n\t\t}\n\n\t\t// Content mode: minimal, just slot\n\t\treturn html`\n\t\t\t<div class=\"fixed inset-0 bg-surface-container/10 backdrop-blur-xs\" @click=${this.handleClose}></div>\n\n\t\t\t<section class=${this.classMap(dialogClasses)} role=\"dialog\" aria-modal=\"true\">\n\t\t\t\t<schmancy-surface rounded=\"all\" type=\"surface\" elevation=\"2\" fill=\"all\" class=\"overflow-hidden\">\n\t\t\t\t\t<schmancy-scroll direction=\"vertical\" hide class=\"p-2 md:p-4 max-h-[90dvh]\">\n\t\t\t\t\t\t<slot></slot>\n\t\t\t\t\t</schmancy-scroll>\n\t\t\t\t</schmancy-surface>\n\t\t\t</section>\n\t\t`\n\t}\n\n\t/**\n\t * Static helper for confirm dialogs\n\t */\n\tstatic async confirm(options: {\n\t\ttitle?: string\n\t\tsubtitle?: string\n\t\tmessage?: string\n\t\tconfirmText?: string\n\t\tcancelText?: string\n\t\tvariant?: 'default' | 'danger'\n\t\tposition?: { x: number; y: number } | MouseEvent | TouchEvent\n\t\twidth?: string\n\t}): Promise<boolean> {\n\t\tlet dialog = document.querySelector('schmancy-dialog[data-static-confirm]') as SchmancyDialog\n\n\t\tif (!dialog) {\n\t\t\tdialog = document.createElement('schmancy-dialog') as SchmancyDialog\n\t\t\tdialog.setAttribute('data-static-confirm', '')\n\t\t\tdocument.body.appendChild(dialog)\n\t\t}\n\n\t\t// Set options\n\t\tdialog.title = options.title\n\t\tdialog.subtitle = options.subtitle\n\t\tdialog.message = options.message\n\t\tdialog.confirmText = options.confirmText ?? 'Confirm'\n\t\tdialog.cancelText = options.cancelText ?? 'Cancel'\n\t\tdialog.variant = options.variant ?? 'default'\n\t\tif (options.width) dialog.style.setProperty('--dialog-width', options.width)\n\n\t\treturn dialog.show(options.position)\n\t}\n\n\t/**\n\t * Simple shorthand - just pass message and optionally an event\n\t */\n\tstatic async 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\n// Alias for backward compatibility\nexport { SchmancyDialog as ConfirmDialog }\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-dialog': SchmancyDialog\n\t}\n}\n"],"names":["DialogBase","superClass","super","arguments","this","position","x","y","getDialogElement","positionOrEvent","cleanupAutoUpdate","clientX","clientY","touches","length","pos","window","innerWidth","innerHeight","virtualReference","getBoundingClientRect","DOMRect","requestUpdate","updateComplete","setAttribute","setupPositioning","Promise","resolve","resolvePromise","result","removeAttribute","toleranceX","toleranceY","Math","abs","dialog","isCentered","autoUpdate","updatePosition","ancestorScroll","ancestorResize","elementResize","computePosition","strategy","middleware","offset","autoPlacement","padding","allowedPlacements","shift","size","apply","availableWidth","elements","floating","style","maxWidth","Object","assign","left","round","top","transform","disconnectedCallback","SchmancyDialog","$LitElement","css","title","subtitle","message","confirmText","cancelText","variant","hideActions","shadowRoot","querySelector","isConfirmMode","trim","connectedCallback","fromEvent","DialogWhereAreYouRicky","pipe","tap","e","detail","uid","announcePresence","takeUntil","disconnecting","subscribe","dispatchEvent","CustomEvent","DialogHereMorty","bubbles","composed","hide","handleClose","hasCustomContent","querySelectorAll","dialogClasses","fixed","html","classMap","handleConfirm","when","options","document","createElement","body","appendChild","width","setProperty","show","event","confirm","__decorateClass","property","type","String","reflect","prototype","attribute","Boolean","customElement"],"mappings":"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"}
package/dist/dialog.js CHANGED
@@ -1,10 +1,10 @@
1
- import { C as i, S as r, a as c } from "./dialog-content-Cu7fqN8Y.js";
2
- import { $ as g, D as l } from "./dialog-service-Bege4HF4.js";
1
+ import { $ as i, D as r } from "./dialog-service-D9E3jLAR.js";
2
+ import { S as D, D as e, S as g } from "./dialog.component-a7FlKhGD.js";
3
3
  export {
4
- g as $dialog,
5
- i as ConfirmDialog,
6
- l as DialogService,
7
- r as SchmancyDialog,
8
- c as SchmancyDialogContent
4
+ i as $dialog,
5
+ D as ConfirmDialog,
6
+ e as DialogBase,
7
+ r as DialogService,
8
+ g as SchmancyDialog
9
9
  };
10
10
  //# sourceMappingURL=dialog.js.map
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./ripple-Ujq_REH4.cjs"),r=require("lit/directives/guard.js");exports.DragDirective=e.DragDirective,exports.DropDirective=e.DropDirective,exports.color=e.color,exports.drag=e.drag,exports.drop=e.drop,exports.fullHeight=e.fullHeight,exports.ripple=e.ripple,Object.defineProperty(exports,"guard",{enumerable:!0,get:()=>r.guard});
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./ripple-x6sTX02K.cjs"),r=require("lit/directives/guard.js"),i=require("./height-Z70qJYJK.cjs");exports.DragDirective=e.DragDirective,exports.DropDirective=e.DropDirective,exports.color=e.color,exports.drag=e.drag,exports.drop=e.drop,exports.ripple=e.ripple,Object.defineProperty(exports,"guard",{enumerable:!0,get:()=>r.guard}),exports.fullHeight=i.fullHeight;
2
2
  //# sourceMappingURL=directives.cjs.map
@@ -1,13 +1,14 @@
1
- import { D as e, a as o, c as s, d as i, b as p, f as t, r as D } from "./ripple-QoNZUUw_.js";
2
- import { guard as d } from "lit/directives/guard.js";
1
+ import { D as o, a as e, c as p, d as s, b as i, r as t } from "./ripple-BgJXbNSP.js";
2
+ import { guard as D } from "lit/directives/guard.js";
3
+ import { f as d } from "./height-CfECBO2j.js";
3
4
  export {
4
- e as DragDirective,
5
- o as DropDirective,
6
- s as color,
7
- i as drag,
8
- p as drop,
9
- t as fullHeight,
10
- d as guard,
11
- D as ripple
5
+ o as DragDirective,
6
+ e as DropDirective,
7
+ p as color,
8
+ s as drag,
9
+ i as drop,
10
+ d as fullHeight,
11
+ D as guard,
12
+ t as ripple
12
13
  };
13
14
  //# sourceMappingURL=directives.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"directives.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;"}
1
+ {"version":3,"file":"directives.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;"}
@@ -3,8 +3,8 @@ import "rxjs/operators";
3
3
  import "lit/directives/class-map.js";
4
4
  import "lit/directives/style-map.js";
5
5
  import { property as n, customElement as c } from "lit/decorators.js";
6
- import "./tailwind.mixin-wLaKUxf1.js";
7
- import { $ as g } from "./litElement.mixin-CVje6z-M.js";
6
+ import "./tailwind.mixin-Bp_PR6yc.js";
7
+ import { $ as g } from "./litElement.mixin-DHZXtvYq.js";
8
8
  import { css as h, html as p } from "lit";
9
9
  var f = Object.defineProperty, u = Object.getOwnPropertyDescriptor, o = (i, e, s, a) => {
10
10
  for (var l, t = a > 1 ? void 0 : a ? u(e, s) : e, m = i.length - 1; m >= 0; m--) (l = i[m]) && (t = (a ? l(e, s, t) : l(t)) || t);
@@ -81,4 +81,4 @@ let r = class extends g(h`
81
81
  }
82
82
  };
83
83
  o([n({ type: String })], r.prototype, "outline", 2), o([n({ type: Boolean })], r.prototype, "vertical", 2), o([n({ type: String })], r.prototype, "grow", 2), o([n({ reflect: !0, type: String })], r.prototype, "orientation", 1), r = o([c("schmancy-divider")], r);
84
- //# sourceMappingURL=divider-Bu6tzwGl.js.map
84
+ //# sourceMappingURL=divider-CzTpxOqt.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"divider-Bu6tzwGl.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'\n\n@customElement('schmancy-divider')\nexport default class SchmancyDivider extends $LitElement(css`\n\t:host {\n\t\tdisplay: block;\n\t}\n\n\t@keyframes grow-horizontal {\n\t\tfrom {\n\t\t\ttransform: scaleX(0);\n\t\t}\n\t\tto {\n\t\t\ttransform: scaleX(1);\n\t\t}\n\t}\n\n\t@keyframes grow-vertical {\n\t\tfrom {\n\t\t\ttransform: scaleY(0);\n\t\t}\n\t\tto {\n\t\t\ttransform: scaleY(1);\n\t\t}\n\t}\n\n\t/* Horizontal divider grow animations */\n\t.grow-start:not(.h-full) {\n\t\tanimation: grow-horizontal 400ms ease-out;\n\t\ttransform-origin: left;\n\t}\n\n\t.grow-end:not(.h-full) {\n\t\tanimation: grow-horizontal 400ms ease-out;\n\t\ttransform-origin: right;\n\t}\n\n\t.grow-both:not(.h-full) {\n\t\tanimation: grow-horizontal 400ms ease-out;\n\t\ttransform-origin: center;\n\t}\n\n\t/* Vertical divider grow animations */\n\t.grow-start.h-full {\n\t\tanimation: grow-vertical 400ms ease-out;\n\t\ttransform-origin: top;\n\t}\n\n\t.grow-end.h-full {\n\t\tanimation: grow-vertical 400ms ease-out;\n\t\ttransform-origin: bottom;\n\t}\n\n\t.grow-both.h-full {\n\t\tanimation: grow-vertical 400ms ease-out;\n\t\ttransform-origin: center;\n\t}\n`) {\n\t@property({ type: String }) outline: 'default' | 'variant' = 'variant'\n\t@property({ type: Boolean }) vertical = false\n\t@property({ type: String }) grow: 'start' | 'end' | 'both' = 'start'\n\n\t/**\n\t * @deprecated Use `vertical` property instead. Will be removed in next major version.\n\t */\n\t@property({ reflect: true, type: String })\n\tset orientation(value: 'horizontal' | 'vertical') {\n\t\tthis.vertical = value === 'vertical'\n\t}\n\tget orientation(): 'horizontal' | 'vertical' {\n\t\treturn this.vertical ? 'vertical' : 'horizontal'\n\t}\n\n\tprotected render() {\n\t\treturn html`<div\n\t\t\tclass=${this.classMap({\n\t\t\t\t// Dimensions\n\t\t\t\t'w-full h-px': !this.vertical,\n\t\t\t\t'h-full w-px': this.vertical,\n\t\t\t\t// Border color\n\t\t\t\t'border-outlineVariant': this.outline === 'variant',\n\t\t\t\t'border-outline': this.outline === 'default',\n\t\t\t\t// Border style\n\t\t\t\t'border-t': !this.vertical,\n\t\t\t\t'border-l': this.vertical,\n\t\t\t\t// Grow behavior\n\t\t\t\t[`grow-${this.grow}`]: true,\n\t\t\t})}\n\t\t></div>`\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-divider': SchmancyDivider\n\t}\n}\n"],"names":["SchmancyDivider","$LitElement","css","constructor","super","arguments","this","outline","vertical","grow","value","render","html","classMap","__decorateClass","property","type","String","prototype","Boolean","reflect","customElement"],"mappings":";;;;;;;;;;;;AAMA,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,CAAzD,EAAA;AAAA,EAAA,cAAAC;AAAAC,UAAAA,GAAAC,SAAAA,GAuD6BC,KAAAC,UAAiC,WAChCD,KAAAE,WAAAA,IACDF,KAAAG,OAAiC;AAAA,EAAA;AAAA,EAM7D,gBAAgBC,GAAAA;AACfJ,SAAKE,WAAWE,MAAU;AAAA,EAC3B;AAAA,EACA,IAAA;AACC,WAAOJ,KAAKE,WAAW,aAAa;AAAA,EACrC;AAAA,EAEU,SAAAG;AACT,WAAOC;AAAAA,WACEN,KAAKO,SAAS,EAErB,eAAA,CAAgBP,KAAKE,UACrB,eAAeF,KAAKE,UAEpB,yBAAyBF,KAAKC,YAAY,WAC1C,kBAAkBD,KAAKC,YAAY,WAEnC,YAAA,CAAaD,KAAKE,UAClB,YAAYF,KAAKE,UAEjB,CAAC,QAAQF,KAAKG,IAAAA,EAAAA,GAAAA,GAAS,CAAA,CAAA;AAAA;AAAA,EAG1B;AAAA;AA/B4BK,EAAA,CAA3BC,EAAS,EAAEC,MAAMC,OAAAA,CAAAA,CAAAA,GAvDEjB,EAuDQkB,WAAA,WAAA,CAAA,GACCJ,EAAA,CAA5BC,EAAS,EAAEC,MAAMG,QAAAA,CAAAA,CAAAA,GAxDEnB,EAwDSkB,WAAA,YAAA,CAAA,GACDJ,EAAA,CAA3BC,EAAS,EAAEC,MAAMC,OAAAA,CAAAA,CAAAA,GAzDEjB,EAyDQkB,WAAA,QAAA,IAMxBJ,EAAA,CADHC,EAAS,EAAEK,SAAAA,IAAeJ,MAAMC,OAAAA,CAAAA,CAAAA,GA9DbjB,EA+DhBkB,WAAA,eAAA,IA/DgBlB,IAArBc,EAAA,CADCO,EAAc,kBAAA,CAAA,GACMrB,CAAAA;"}
1
+ {"version":3,"file":"divider-CzTpxOqt.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'\n\n@customElement('schmancy-divider')\nexport default class SchmancyDivider extends $LitElement(css`\n\t:host {\n\t\tdisplay: block;\n\t}\n\n\t@keyframes grow-horizontal {\n\t\tfrom {\n\t\t\ttransform: scaleX(0);\n\t\t}\n\t\tto {\n\t\t\ttransform: scaleX(1);\n\t\t}\n\t}\n\n\t@keyframes grow-vertical {\n\t\tfrom {\n\t\t\ttransform: scaleY(0);\n\t\t}\n\t\tto {\n\t\t\ttransform: scaleY(1);\n\t\t}\n\t}\n\n\t/* Horizontal divider grow animations */\n\t.grow-start:not(.h-full) {\n\t\tanimation: grow-horizontal 400ms ease-out;\n\t\ttransform-origin: left;\n\t}\n\n\t.grow-end:not(.h-full) {\n\t\tanimation: grow-horizontal 400ms ease-out;\n\t\ttransform-origin: right;\n\t}\n\n\t.grow-both:not(.h-full) {\n\t\tanimation: grow-horizontal 400ms ease-out;\n\t\ttransform-origin: center;\n\t}\n\n\t/* Vertical divider grow animations */\n\t.grow-start.h-full {\n\t\tanimation: grow-vertical 400ms ease-out;\n\t\ttransform-origin: top;\n\t}\n\n\t.grow-end.h-full {\n\t\tanimation: grow-vertical 400ms ease-out;\n\t\ttransform-origin: bottom;\n\t}\n\n\t.grow-both.h-full {\n\t\tanimation: grow-vertical 400ms ease-out;\n\t\ttransform-origin: center;\n\t}\n`) {\n\t@property({ type: String }) outline: 'default' | 'variant' = 'variant'\n\t@property({ type: Boolean }) vertical = false\n\t@property({ type: String }) grow: 'start' | 'end' | 'both' = 'start'\n\n\t/**\n\t * @deprecated Use `vertical` property instead. Will be removed in next major version.\n\t */\n\t@property({ reflect: true, type: String })\n\tset orientation(value: 'horizontal' | 'vertical') {\n\t\tthis.vertical = value === 'vertical'\n\t}\n\tget orientation(): 'horizontal' | 'vertical' {\n\t\treturn this.vertical ? 'vertical' : 'horizontal'\n\t}\n\n\tprotected render() {\n\t\treturn html`<div\n\t\t\tclass=${this.classMap({\n\t\t\t\t// Dimensions\n\t\t\t\t'w-full h-px': !this.vertical,\n\t\t\t\t'h-full w-px': this.vertical,\n\t\t\t\t// Border color\n\t\t\t\t'border-outlineVariant': this.outline === 'variant',\n\t\t\t\t'border-outline': this.outline === 'default',\n\t\t\t\t// Border style\n\t\t\t\t'border-t': !this.vertical,\n\t\t\t\t'border-l': this.vertical,\n\t\t\t\t// Grow behavior\n\t\t\t\t[`grow-${this.grow}`]: true,\n\t\t\t})}\n\t\t></div>`\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-divider': SchmancyDivider\n\t}\n}\n"],"names":["SchmancyDivider","$LitElement","css","constructor","super","arguments","this","outline","vertical","grow","value","render","html","classMap","__decorateClass","property","type","String","prototype","Boolean","reflect","customElement"],"mappings":";;;;;;;;;;;;AAMA,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,CAAzD,EAAA;AAAA,EAAA,cAAAC;AAAAC,UAAAA,GAAAC,SAAAA,GAuD6BC,KAAAC,UAAiC,WAChCD,KAAAE,WAAAA,IACDF,KAAAG,OAAiC;AAAA,EAAA;AAAA,EAM7D,gBAAgBC,GAAAA;AACfJ,SAAKE,WAAWE,MAAU;AAAA,EAC3B;AAAA,EACA,IAAA;AACC,WAAOJ,KAAKE,WAAW,aAAa;AAAA,EACrC;AAAA,EAEU,SAAAG;AACT,WAAOC;AAAAA,WACEN,KAAKO,SAAS,EAErB,eAAA,CAAgBP,KAAKE,UACrB,eAAeF,KAAKE,UAEpB,yBAAyBF,KAAKC,YAAY,WAC1C,kBAAkBD,KAAKC,YAAY,WAEnC,YAAA,CAAaD,KAAKE,UAClB,YAAYF,KAAKE,UAEjB,CAAC,QAAQF,KAAKG,IAAAA,EAAAA,GAAAA,GAAS,CAAA,CAAA;AAAA;AAAA,EAG1B;AAAA;AA/B4BK,EAAA,CAA3BC,EAAS,EAAEC,MAAMC,OAAAA,CAAAA,CAAAA,GAvDEjB,EAuDQkB,WAAA,WAAA,CAAA,GACCJ,EAAA,CAA5BC,EAAS,EAAEC,MAAMG,QAAAA,CAAAA,CAAAA,GAxDEnB,EAwDSkB,WAAA,YAAA,CAAA,GACDJ,EAAA,CAA3BC,EAAS,EAAEC,MAAMC,OAAAA,CAAAA,CAAAA,GAzDEjB,EAyDQkB,WAAA,QAAA,IAMxBJ,EAAA,CADHC,EAAS,EAAEK,SAAAA,IAAeJ,MAAMC,OAAAA,CAAAA,CAAAA,GA9DbjB,EA+DhBkB,WAAA,eAAA,IA/DgBlB,IAArBc,EAAA,CADCO,EAAc,kBAAA,CAAA,GACMrB,CAAAA;"}
@@ -1,4 +1,4 @@
1
- "use strict";require("rxjs"),require("rxjs/operators"),require("lit/directives/class-map.js"),require("lit/directives/style-map.js");const e=require("lit/decorators.js");require("./tailwind.mixin-JFXu3GSo.cjs");const m=require("./litElement.mixin-B1WTI3WY.cjs"),u=require("lit");var g=Object.defineProperty,h=Object.getOwnPropertyDescriptor,o=(i,a,s,n)=>{for(var l,r=n>1?void 0:n?h(a,s):a,c=i.length-1;c>=0;c--)(l=i[c])&&(r=(n?l(a,s,r):l(r))||r);return n&&r&&g(a,s,r),r};let t=class extends m.$LitElement(u.css`
1
+ "use strict";require("rxjs"),require("rxjs/operators"),require("lit/directives/class-map.js"),require("lit/directives/style-map.js");const e=require("lit/decorators.js");require("./tailwind.mixin-Cp4PyXok.cjs");const m=require("./litElement.mixin-CrpeGpZ7.cjs"),u=require("lit");var g=Object.defineProperty,h=Object.getOwnPropertyDescriptor,o=(i,a,s,n)=>{for(var l,r=n>1?void 0:n?h(a,s):a,c=i.length-1;c>=0;c--)(l=i[c])&&(r=(n?l(a,s,r):l(r))||r);return n&&r&&g(a,s,r),r};let t=class extends m.$LitElement(u.css`
2
2
  :host {
3
3
  display: block;
4
4
  }
@@ -55,4 +55,4 @@
55
55
  `){constructor(){super(...arguments),this.outline="variant",this.vertical=!1,this.grow="start"}set orientation(i){this.vertical=i==="vertical"}get orientation(){return this.vertical?"vertical":"horizontal"}render(){return u.html`<div
56
56
  class=${this.classMap({"w-full h-px":!this.vertical,"h-full w-px":this.vertical,"border-outlineVariant":this.outline==="variant","border-outline":this.outline==="default","border-t":!this.vertical,"border-l":this.vertical,[`grow-${this.grow}`]:!0})}
57
57
  ></div>`}};o([e.property({type:String})],t.prototype,"outline",2),o([e.property({type:Boolean})],t.prototype,"vertical",2),o([e.property({type:String})],t.prototype,"grow",2),o([e.property({reflect:!0,type:String})],t.prototype,"orientation",1),t=o([e.customElement("schmancy-divider")],t);
58
- //# sourceMappingURL=divider-8tk2mDbL.cjs.map
58
+ //# sourceMappingURL=divider-D8KStUhN.cjs.map