@mhmo91/schmancy 0.8.6 → 0.9.2

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 (1396) hide show
  1. package/README.md +110 -1
  2. package/ai/animation.md +64 -0
  3. package/ai/area.md +35 -256
  4. package/ai/autocomplete.md +44 -162
  5. package/ai/avatar.md +47 -178
  6. package/ai/badge.md +41 -108
  7. package/ai/busy.md +25 -184
  8. package/ai/button.md +52 -150
  9. package/ai/card.md +42 -215
  10. package/ai/checkbox.md +32 -135
  11. package/ai/chips.md +73 -383
  12. package/ai/code-highlight.md +33 -226
  13. package/ai/content-drawer.md +65 -232
  14. package/ai/date-range.md +43 -198
  15. package/ai/details.md +48 -453
  16. package/ai/dialog.md +55 -164
  17. package/ai/directives.md +258 -405
  18. package/ai/divider.md +15 -137
  19. package/ai/dropdown.md +44 -235
  20. package/ai/form.md +41 -137
  21. package/ai/icons.md +31 -235
  22. package/ai/input.md +50 -210
  23. package/ai/lightbox.md +25 -370
  24. package/ai/list.md +51 -130
  25. package/ai/menu.md +25 -134
  26. package/ai/mixins.md +70 -0
  27. package/ai/nav-drawer.md +30 -184
  28. package/ai/navigation-bar.md +27 -184
  29. package/ai/navigation-rail.md +62 -630
  30. package/ai/notification.md +49 -183
  31. package/ai/progress.md +26 -65
  32. package/ai/radio-group.md +45 -189
  33. package/ai/select.md +49 -209
  34. package/ai/sheet.md +74 -506
  35. package/ai/steps.md +30 -392
  36. package/ai/store.md +60 -247
  37. package/ai/surface.md +58 -245
  38. package/ai/table.md +56 -330
  39. package/ai/tabs.md +31 -176
  40. package/ai/textarea.md +48 -232
  41. package/ai/theme.md +40 -1089
  42. package/ai/tooltip.md +35 -146
  43. package/ai/tree.md +45 -271
  44. package/ai/typography.md +43 -296
  45. package/custom-elements.json +10955 -0
  46. package/dist/ai/animation.md +64 -0
  47. package/dist/ai/area.md +35 -256
  48. package/dist/ai/autocomplete.md +44 -162
  49. package/dist/ai/avatar.md +47 -178
  50. package/dist/ai/badge.md +41 -108
  51. package/dist/ai/busy.md +25 -184
  52. package/dist/ai/button.md +52 -150
  53. package/dist/ai/card.md +42 -215
  54. package/dist/ai/checkbox.md +32 -135
  55. package/dist/ai/chips.md +73 -383
  56. package/dist/ai/code-highlight.md +33 -226
  57. package/dist/ai/content-drawer.md +65 -232
  58. package/dist/ai/date-range.md +43 -198
  59. package/dist/ai/details.md +48 -453
  60. package/dist/ai/dialog.md +55 -164
  61. package/dist/ai/directives.md +258 -405
  62. package/dist/ai/divider.md +15 -137
  63. package/dist/ai/dropdown.md +44 -235
  64. package/dist/ai/form.md +41 -137
  65. package/dist/ai/icons.md +31 -235
  66. package/dist/ai/input.md +50 -210
  67. package/dist/ai/lightbox.md +25 -370
  68. package/dist/ai/list.md +51 -130
  69. package/dist/ai/menu.md +25 -134
  70. package/dist/ai/mixins.md +70 -0
  71. package/dist/ai/nav-drawer.md +30 -184
  72. package/dist/ai/navigation-bar.md +27 -184
  73. package/dist/ai/navigation-rail.md +62 -630
  74. package/dist/ai/notification.md +49 -183
  75. package/dist/ai/progress.md +26 -65
  76. package/dist/ai/radio-group.md +45 -189
  77. package/dist/ai/select.md +49 -209
  78. package/dist/ai/sheet.md +74 -506
  79. package/dist/ai/steps.md +30 -392
  80. package/dist/ai/store.md +60 -247
  81. package/dist/ai/surface.md +58 -245
  82. package/dist/ai/table.md +56 -330
  83. package/dist/ai/tabs.md +31 -176
  84. package/dist/ai/textarea.md +48 -232
  85. package/dist/ai/theme.md +40 -1089
  86. package/dist/ai/tooltip.md +35 -146
  87. package/dist/ai/tree.md +45 -271
  88. package/dist/ai/typography.md +43 -296
  89. package/dist/animation-BK-8BwY8.js +173 -0
  90. package/dist/animation-BK-8BwY8.js.map +1 -0
  91. package/dist/animation-CO_Csq84.cjs +16 -0
  92. package/dist/animation-CO_Csq84.cjs.map +1 -0
  93. package/dist/area-1h9xEpTc.cjs +12 -0
  94. package/dist/area-1h9xEpTc.cjs.map +1 -0
  95. package/dist/area-DbBcfm5p.js +590 -0
  96. package/dist/area-DbBcfm5p.js.map +1 -0
  97. package/dist/area.cjs +1 -2
  98. package/dist/area.js +2 -29
  99. package/dist/audio-DtYYgzYD.cjs +1 -0
  100. package/dist/audio-DtYYgzYD.cjs.map +1 -0
  101. package/dist/audio-kz8UgPTO.js +335 -0
  102. package/dist/audio-kz8UgPTO.js.map +1 -0
  103. package/dist/audio.cjs +1 -2
  104. package/dist/audio.js +3 -9
  105. package/dist/autocomplete-DDVsegep.js +378 -0
  106. package/dist/autocomplete-DDVsegep.js.map +1 -0
  107. package/dist/autocomplete-OE70CcYP.cjs +111 -0
  108. package/dist/autocomplete-OE70CcYP.cjs.map +1 -0
  109. package/dist/autocomplete.cjs +1 -2
  110. package/dist/autocomplete.js +1 -2
  111. package/dist/badge.cjs +1 -2
  112. package/dist/badge.js +2 -6
  113. package/dist/boat-Cf1oJ0ka.cjs +80 -0
  114. package/dist/boat-Cf1oJ0ka.cjs.map +1 -0
  115. package/dist/boat-T8Ov4-yA.js +347 -0
  116. package/dist/boat-T8Ov4-yA.js.map +1 -0
  117. package/dist/boat.cjs +1 -2
  118. package/dist/boat.js +2 -5
  119. package/dist/busy-BD6D5P-l.js +167 -0
  120. package/dist/busy-BD6D5P-l.js.map +1 -0
  121. package/dist/busy-DF9wztWL.cjs +134 -0
  122. package/dist/busy-DF9wztWL.cjs.map +1 -0
  123. package/dist/busy.cjs +1 -2
  124. package/dist/busy.js +1 -2
  125. package/dist/button.cjs +113 -2
  126. package/dist/button.cjs.map +1 -1
  127. package/dist/button.js +398 -5
  128. package/dist/button.js.map +1 -1
  129. package/dist/card-Csvu8UJ9.cjs +177 -0
  130. package/dist/card-Csvu8UJ9.cjs.map +1 -0
  131. package/dist/card-DM_miKMd.js +284 -0
  132. package/dist/card-DM_miKMd.js.map +1 -0
  133. package/dist/card.cjs +1 -2
  134. package/dist/card.js +1 -2
  135. package/dist/charts.cjs +112 -2
  136. package/dist/charts.cjs.map +1 -1
  137. package/dist/charts.js +368 -8
  138. package/dist/charts.js.map +1 -1
  139. package/dist/checkbox-BgGtMaMR.js +610 -0
  140. package/dist/checkbox-BgGtMaMR.js.map +1 -0
  141. package/dist/checkbox-sJujc_ga.cjs +39 -0
  142. package/dist/checkbox-sJujc_ga.cjs.map +1 -0
  143. package/dist/checkbox.cjs +1 -2
  144. package/dist/checkbox.js +2 -5
  145. package/dist/chips-BZaH4wez.js +645 -0
  146. package/dist/chips-BZaH4wez.js.map +1 -0
  147. package/dist/chips-D_e6wijp.cjs +253 -0
  148. package/dist/chips-D_e6wijp.cjs.map +1 -0
  149. package/dist/chips.cjs +1 -2
  150. package/dist/chips.js +3 -10
  151. package/dist/chunk-BCfY8kxB.cjs +1 -0
  152. package/dist/chunk-C_1VqBVD.js +11 -0
  153. package/dist/code-highlight-DlhERv_O.cjs +190 -0
  154. package/dist/code-highlight-DlhERv_O.cjs.map +1 -0
  155. package/dist/code-highlight-Q3cc6ukq.js +290 -0
  156. package/dist/code-highlight-Q3cc6ukq.js.map +1 -0
  157. package/dist/code-highlight.cjs +1 -2
  158. package/dist/code-highlight.js +2 -7
  159. package/dist/components-CRhkB3V2.js +730 -0
  160. package/dist/components-CRhkB3V2.js.map +1 -0
  161. package/dist/components-DnlEYYDs.cjs +73 -0
  162. package/dist/components-DnlEYYDs.cjs.map +1 -0
  163. package/dist/components.cjs +1 -2
  164. package/dist/components.js +2 -5
  165. package/dist/connectivity.cjs +59 -0
  166. package/dist/connectivity.cjs.map +1 -0
  167. package/dist/connectivity.js +86 -0
  168. package/dist/connectivity.js.map +1 -0
  169. package/dist/content-drawer.cjs +1 -2
  170. package/dist/content-drawer.js +2 -13
  171. package/dist/cursor-glow-Ah7VXSj7.js +46 -0
  172. package/dist/cursor-glow-Ah7VXSj7.js.map +1 -0
  173. package/dist/cursor-glow-DtSy_PJd.cjs +1 -0
  174. package/dist/cursor-glow-DtSy_PJd.cjs.map +1 -0
  175. package/dist/date-range-C0IYnvHF.js +946 -0
  176. package/dist/date-range-C0IYnvHF.js.map +1 -0
  177. package/dist/date-range-cymbTDnl.cjs +131 -0
  178. package/dist/date-range-cymbTDnl.cjs.map +1 -0
  179. package/dist/date-range-inline-0ENN4Plz.js +267 -0
  180. package/dist/date-range-inline-0ENN4Plz.js.map +1 -0
  181. package/dist/date-range-inline-Cfwt-ReH.cjs +43 -0
  182. package/dist/date-range-inline-Cfwt-ReH.cjs.map +1 -0
  183. package/dist/date-range-inline.cjs +1 -2
  184. package/dist/date-range-inline.js +2 -5
  185. package/dist/date-range.cjs +1 -2
  186. package/dist/date-range.js +2 -6
  187. package/dist/delay-D1dVP93u.js +346 -0
  188. package/dist/delay-D1dVP93u.js.map +1 -0
  189. package/dist/delay-D6mQLUp-.cjs +9 -0
  190. package/dist/delay-D6mQLUp-.cjs.map +1 -0
  191. package/dist/delay.cjs +1 -2
  192. package/dist/delay.js +2 -6
  193. package/dist/details-CPT_Mi4e.cjs +168 -0
  194. package/dist/details-CPT_Mi4e.cjs.map +1 -0
  195. package/dist/details-Cv4OOrVW.js +293 -0
  196. package/dist/details-Cv4OOrVW.js.map +1 -0
  197. package/dist/details.cjs +1 -2
  198. package/dist/details.js +2 -5
  199. package/dist/dialog-service-NZEvyEK-.js +193 -0
  200. package/dist/dialog-service-NZEvyEK-.js.map +1 -0
  201. package/dist/dialog-service-VnW4gkmE.cjs +1 -0
  202. package/dist/dialog-service-VnW4gkmE.cjs.map +1 -0
  203. package/dist/dialog.cjs +82 -2
  204. package/dist/dialog.cjs.map +1 -1
  205. package/dist/dialog.js +396 -9
  206. package/dist/dialog.js.map +1 -1
  207. package/dist/directives.cjs +108 -2
  208. package/dist/directives.cjs.map +1 -1
  209. package/dist/directives.js +1362 -14
  210. package/dist/directives.js.map +1 -1
  211. package/dist/discovery.cjs +1 -2
  212. package/dist/discovery.cjs.map +1 -1
  213. package/dist/discovery.js +61 -6
  214. package/dist/discovery.js.map +1 -1
  215. package/dist/divider-DDC-kND3.js +87 -0
  216. package/dist/divider-DDC-kND3.js.map +1 -0
  217. package/dist/divider-nZ_2to2N.cjs +57 -0
  218. package/dist/divider-nZ_2to2N.cjs.map +1 -0
  219. package/dist/divider.cjs +1 -2
  220. package/dist/divider.js +1 -2
  221. package/dist/dropdown.cjs +57 -2
  222. package/dist/dropdown.cjs.map +1 -1
  223. package/dist/dropdown.js +160 -5
  224. package/dist/dropdown.js.map +1 -1
  225. package/dist/expand-Bp3N8CcL.js +336 -0
  226. package/dist/expand-Bp3N8CcL.js.map +1 -0
  227. package/dist/expand-Crdts9q_.cjs +141 -0
  228. package/dist/expand-Crdts9q_.cjs.map +1 -0
  229. package/dist/expand.cjs +1 -0
  230. package/dist/expand.js +2 -0
  231. package/dist/extra-B0IZCg0t.cjs +31 -0
  232. package/dist/extra-B0IZCg0t.cjs.map +1 -0
  233. package/dist/extra-DupwhQhC.js +3435 -0
  234. package/dist/extra-DupwhQhC.js.map +1 -0
  235. package/dist/extra.cjs +1 -2
  236. package/dist/extra.js +2 -6
  237. package/dist/float-CQoJ_oSB.cjs +1 -0
  238. package/dist/float-CQoJ_oSB.cjs.map +1 -0
  239. package/dist/float-Dqdc1_S5.js +5 -0
  240. package/dist/float-Dqdc1_S5.js.map +1 -0
  241. package/dist/float.cjs +1 -0
  242. package/dist/float.js +2 -0
  243. package/dist/flow-Bbwn6dRN.cjs +1 -0
  244. package/dist/flow-Bbwn6dRN.cjs.map +1 -0
  245. package/dist/flow-CUj0fDT_.js +386 -0
  246. package/dist/flow-CUj0fDT_.js.map +1 -0
  247. package/dist/form-CW5XNuTg.js +270 -0
  248. package/dist/form-CW5XNuTg.js.map +1 -0
  249. package/dist/form-CvoLqMY7.cjs +1 -0
  250. package/dist/form-CvoLqMY7.cjs.map +1 -0
  251. package/dist/form.cjs +1 -2
  252. package/dist/form.js +1 -2
  253. package/dist/hashContent-DYM21p6t.js +6 -0
  254. package/dist/hashContent-DYM21p6t.js.map +1 -0
  255. package/dist/hashContent-DaeGmY-p.cjs +1 -0
  256. package/dist/hashContent-DaeGmY-p.cjs.map +1 -0
  257. package/dist/icons-BLQHEbIk.cjs +52 -0
  258. package/dist/icons-BLQHEbIk.cjs.map +1 -0
  259. package/dist/icons-Cpfdb7sA.js +161 -0
  260. package/dist/icons-Cpfdb7sA.js.map +1 -0
  261. package/dist/icons.cjs +1 -2
  262. package/dist/icons.js +1 -2
  263. package/dist/iframe-DG6HVYdy.js +44 -0
  264. package/dist/iframe-DG6HVYdy.js.map +1 -0
  265. package/dist/iframe-sJGXBbxT.cjs +24 -0
  266. package/dist/iframe-sJGXBbxT.cjs.map +1 -0
  267. package/dist/iframe.cjs +1 -0
  268. package/dist/iframe.js +2 -0
  269. package/dist/index.cjs +1 -2
  270. package/dist/index.js +69 -285
  271. package/dist/input-BevxycIt.js +364 -0
  272. package/dist/input-BevxycIt.js.map +1 -0
  273. package/dist/input-DGTdmp1Q.cjs +51 -0
  274. package/dist/input-DGTdmp1Q.cjs.map +1 -0
  275. package/dist/input-chip-BWS-SFU4.js +301 -0
  276. package/dist/input-chip-BWS-SFU4.js.map +1 -0
  277. package/dist/input-chip-CKVtjInb.cjs +146 -0
  278. package/dist/input-chip-CKVtjInb.cjs.map +1 -0
  279. package/dist/input.cjs +1 -2
  280. package/dist/input.js +2 -6
  281. package/dist/intersection-BPLpqYEd.js +12 -0
  282. package/dist/intersection-BPLpqYEd.js.map +1 -0
  283. package/dist/intersection-CZpaIHeT.cjs +1 -0
  284. package/dist/intersection-CZpaIHeT.cjs.map +1 -0
  285. package/dist/json.cjs +11 -2
  286. package/dist/json.cjs.map +1 -1
  287. package/dist/json.js +40 -4
  288. package/dist/json.js.map +1 -1
  289. package/dist/layout-4C-6_cre.cjs +1 -0
  290. package/dist/layout-4C-6_cre.cjs.map +1 -0
  291. package/dist/layout-CQdd8UCr.cjs +17 -0
  292. package/dist/layout-CQdd8UCr.cjs.map +1 -0
  293. package/dist/layout-DxLjlDfr.js +267 -0
  294. package/dist/layout-DxLjlDfr.js.map +1 -0
  295. package/dist/layout-yxSlLybo.js +94 -0
  296. package/dist/layout-yxSlLybo.js.map +1 -0
  297. package/dist/layout.cjs +1 -2
  298. package/dist/layout.js +3 -9
  299. package/dist/lightbox-Bjc55lHH.js +678 -0
  300. package/dist/lightbox-Bjc55lHH.js.map +1 -0
  301. package/dist/lightbox-C_863_XU.cjs +202 -0
  302. package/dist/lightbox-C_863_XU.cjs.map +1 -0
  303. package/dist/lightbox.cjs +1 -2
  304. package/dist/lightbox.js +2 -8
  305. package/dist/list-BAqhlzZd.js +105 -0
  306. package/dist/list-BAqhlzZd.js.map +1 -0
  307. package/dist/list-CaXzdN9_.cjs +40 -0
  308. package/dist/list-CaXzdN9_.cjs.map +1 -0
  309. package/dist/list.cjs +1 -2
  310. package/dist/list.js +2 -7
  311. package/dist/litElement.mixin-DN6X9_wD.cjs +1 -0
  312. package/dist/litElement.mixin-DN6X9_wD.cjs.map +1 -0
  313. package/dist/litElement.mixin-Dktub0ri.js +12 -0
  314. package/dist/litElement.mixin-Dktub0ri.js.map +1 -0
  315. package/dist/magnetic-BZGFxAWG.js +47 -0
  316. package/dist/magnetic-BZGFxAWG.js.map +1 -0
  317. package/dist/magnetic-Dux4QwO4.cjs +1 -0
  318. package/dist/magnetic-Dux4QwO4.cjs.map +1 -0
  319. package/dist/mailbox-BvsLXpvy.cjs +1142 -0
  320. package/dist/mailbox-BvsLXpvy.cjs.map +1 -0
  321. package/dist/mailbox-DuMUH4f3.js +1584 -0
  322. package/dist/mailbox-DuMUH4f3.js.map +1 -0
  323. package/dist/mailbox.cjs +1 -2
  324. package/dist/mailbox.js +2 -9
  325. package/dist/map-C2Msv9TQ.cjs +80 -0
  326. package/dist/map-C2Msv9TQ.cjs.map +1 -0
  327. package/dist/map-DkIy1ph7.js +205 -0
  328. package/dist/map-DkIy1ph7.js.map +1 -0
  329. package/dist/map.cjs +1 -2
  330. package/dist/map.js +2 -5
  331. package/dist/menu-DEeDKW5U.js +51 -0
  332. package/dist/menu-DEeDKW5U.js.map +1 -0
  333. package/dist/menu-Mm71lv9k.cjs +23 -0
  334. package/dist/menu-Mm71lv9k.cjs.map +1 -0
  335. package/dist/menu.cjs +1 -2
  336. package/dist/menu.js +1 -2
  337. package/dist/mixins.cjs +1 -2
  338. package/dist/mixins.cjs.map +1 -1
  339. package/dist/mixins.js +59 -12
  340. package/dist/mixins.js.map +1 -1
  341. package/dist/nav-drawer.cjs +1 -2
  342. package/dist/nav-drawer.js +2 -12
  343. package/dist/navigation-bar.cjs +1 -2
  344. package/dist/navigation-bar.js +2 -6
  345. package/dist/navigation-rail.cjs +71 -2
  346. package/dist/navigation-rail.cjs.map +1 -1
  347. package/dist/navigation-rail.js +363 -5
  348. package/dist/navigation-rail.js.map +1 -1
  349. package/dist/notification-K-ug8cKk.js +304 -0
  350. package/dist/notification-K-ug8cKk.js.map +1 -0
  351. package/dist/notification-cTgXEDZ0.cjs +23 -0
  352. package/dist/notification-cTgXEDZ0.cjs.map +1 -0
  353. package/dist/notification.cjs +1 -2
  354. package/dist/notification.js +2 -9
  355. package/dist/option-5rEOmtAm.cjs +43 -0
  356. package/dist/option-5rEOmtAm.cjs.map +1 -0
  357. package/dist/option-TFSKvSjT.js +97 -0
  358. package/dist/option-TFSKvSjT.js.map +1 -0
  359. package/dist/option.cjs +1 -2
  360. package/dist/option.js +1 -2
  361. package/dist/overlay-stack-DQey9Qph.cjs +1 -0
  362. package/dist/overlay-stack-DQey9Qph.cjs.map +1 -0
  363. package/dist/overlay-stack-DT1SdaGW.js +39 -0
  364. package/dist/overlay-stack-DT1SdaGW.js.map +1 -0
  365. package/dist/page.cjs +20 -2
  366. package/dist/page.cjs.map +1 -1
  367. package/dist/page.js +71 -4
  368. package/dist/page.js.map +1 -1
  369. package/dist/progress-Cta3nM-f.js +128 -0
  370. package/dist/progress-Cta3nM-f.js.map +1 -0
  371. package/dist/progress-iu0AMbSg.cjs +51 -0
  372. package/dist/progress-iu0AMbSg.cjs.map +1 -0
  373. package/dist/progress.cjs +1 -2
  374. package/dist/progress.js +1 -2
  375. package/dist/provide-BEyyKlDM.cjs +1 -0
  376. package/dist/provide-BEyyKlDM.cjs.map +1 -0
  377. package/dist/provide-D69zybs5.js +107 -0
  378. package/dist/provide-D69zybs5.js.map +1 -0
  379. package/dist/qr-scanner.cjs +35 -2
  380. package/dist/qr-scanner.cjs.map +1 -1
  381. package/dist/qr-scanner.js +119 -4
  382. package/dist/qr-scanner.js.map +1 -1
  383. package/dist/radio-group-BjSWmYJC.js +105 -0
  384. package/dist/radio-group-BjSWmYJC.js.map +1 -0
  385. package/dist/radio-group-DKPN0T50.cjs +40 -0
  386. package/dist/radio-group-DKPN0T50.cjs.map +1 -0
  387. package/dist/radio-group.cjs +1 -2
  388. package/dist/radio-group.js +2 -6
  389. package/dist/range.cjs +62 -0
  390. package/dist/range.cjs.map +1 -0
  391. package/dist/range.js +85 -0
  392. package/dist/range.js.map +1 -0
  393. package/dist/reduced-motion-D-L12p7G.js +7 -0
  394. package/dist/reduced-motion-D-L12p7G.js.map +1 -0
  395. package/dist/reduced-motion-Ds05GPyz.cjs +1 -0
  396. package/dist/reduced-motion-Ds05GPyz.cjs.map +1 -0
  397. package/dist/rxjs-utils-BSjmI9-Q.js +32 -0
  398. package/dist/rxjs-utils-BSjmI9-Q.js.map +1 -0
  399. package/dist/rxjs-utils-DCsfzeap.cjs +1 -0
  400. package/dist/rxjs-utils-DCsfzeap.cjs.map +1 -0
  401. package/dist/rxjs-utils.cjs +1 -2
  402. package/dist/rxjs-utils.js +2 -14
  403. package/dist/scroll-mayaGGpE.cjs +26 -0
  404. package/dist/scroll-mayaGGpE.cjs.map +1 -0
  405. package/dist/scroll-tG1vaRFO.js +112 -0
  406. package/dist/scroll-tG1vaRFO.js.map +1 -0
  407. package/dist/search-C4dFHYbX.js +91 -0
  408. package/dist/search-C4dFHYbX.js.map +1 -0
  409. package/dist/search-Ds8tt7Et.cjs +1 -0
  410. package/dist/search-Ds8tt7Et.cjs.map +1 -0
  411. package/dist/select-C4YK5Arj.cjs +56 -0
  412. package/dist/select-C4YK5Arj.cjs.map +1 -0
  413. package/dist/select-CepryGGP.js +305 -0
  414. package/dist/select-CepryGGP.js.map +1 -0
  415. package/dist/select.cjs +1 -2
  416. package/dist/select.js +2 -5
  417. package/dist/sheet-Cy4C2-kG.cjs +35 -0
  418. package/dist/sheet-Cy4C2-kG.cjs.map +1 -0
  419. package/dist/sheet-D2uT95S1.js +168 -0
  420. package/dist/sheet-D2uT95S1.js.map +1 -0
  421. package/dist/sheet.cjs +1 -2
  422. package/dist/sheet.js +3 -7
  423. package/dist/sheet.service-Dv5Hwj3k.cjs +1 -0
  424. package/dist/sheet.service-Dv5Hwj3k.cjs.map +1 -0
  425. package/dist/sheet.service-Os8KJGSE.js +86 -0
  426. package/dist/sheet.service-Os8KJGSE.js.map +1 -0
  427. package/dist/slider.cjs +82 -2
  428. package/dist/slider.cjs.map +1 -1
  429. package/dist/slider.js +143 -5
  430. package/dist/slider.js.map +1 -1
  431. package/dist/sound.service-Bu3EQLv2.cjs +1 -0
  432. package/dist/sound.service-Bu3EQLv2.cjs.map +1 -0
  433. package/dist/sound.service-m3BrSfuH.js +2353 -0
  434. package/dist/sound.service-m3BrSfuH.js.map +1 -0
  435. package/dist/src-BLcmKlCH.js +1244 -0
  436. package/dist/src-BLcmKlCH.js.map +1 -0
  437. package/dist/src-tfU0akqI.cjs +269 -0
  438. package/dist/src-tfU0akqI.cjs.map +1 -0
  439. package/dist/steps.cjs +70 -2
  440. package/dist/steps.cjs.map +1 -1
  441. package/dist/steps.js +178 -7
  442. package/dist/steps.js.map +1 -1
  443. package/dist/store-CorvD3bT.cjs +1 -0
  444. package/dist/store-CorvD3bT.cjs.map +1 -0
  445. package/dist/store-DYqDLAvT.js +1654 -0
  446. package/dist/store-DYqDLAvT.js.map +1 -0
  447. package/dist/store.cjs +1 -2
  448. package/dist/store.js +2 -47
  449. package/dist/surface-CiiIYeJN.cjs +7 -0
  450. package/dist/surface-CiiIYeJN.cjs.map +1 -0
  451. package/dist/surface-fXvRpS6s.js +21 -0
  452. package/dist/surface-fXvRpS6s.js.map +1 -0
  453. package/dist/surface.cjs +1 -2
  454. package/dist/surface.js +2 -6
  455. package/dist/surface.mixin-C4hbgyaP.cjs +297 -0
  456. package/dist/surface.mixin-C4hbgyaP.cjs.map +1 -0
  457. package/dist/surface.mixin-DBuxL5aL.js +320 -0
  458. package/dist/surface.mixin-DBuxL5aL.js.map +1 -0
  459. package/dist/table-BRVKlNjl.cjs +63 -0
  460. package/dist/table-BRVKlNjl.cjs.map +1 -0
  461. package/dist/table-BeXnwSsq.js +631 -0
  462. package/dist/table-BeXnwSsq.js.map +1 -0
  463. package/dist/table.cjs +1 -2
  464. package/dist/table.js +2 -6
  465. package/dist/tabs-CBU9Ctqm.cjs +31 -0
  466. package/dist/tabs-CBU9Ctqm.cjs.map +1 -0
  467. package/dist/tabs-y708NWQ2.js +125 -0
  468. package/dist/tabs-y708NWQ2.js.map +1 -0
  469. package/dist/tabs.cjs +1 -2
  470. package/dist/tabs.js +1 -2
  471. package/dist/tailwind.mixin-C4cx3IOr.js +225 -0
  472. package/dist/tailwind.mixin-C4cx3IOr.js.map +1 -0
  473. package/dist/tailwind.mixin-DGiyLbEi.cjs +2 -0
  474. package/dist/tailwind.mixin-DGiyLbEi.cjs.map +1 -0
  475. package/dist/teleport.cjs +1 -2
  476. package/dist/teleport.js +2 -8
  477. package/dist/textarea-BhAoJg8c.cjs +35 -0
  478. package/dist/textarea-BhAoJg8c.cjs.map +1 -0
  479. package/dist/textarea-Bl8-gQEJ.js +195 -0
  480. package/dist/textarea-Bl8-gQEJ.js.map +1 -0
  481. package/dist/textarea.cjs +1 -2
  482. package/dist/textarea.js +1 -2
  483. package/dist/theme-C-vdR-Ic.cjs +181 -0
  484. package/dist/theme-C-vdR-Ic.cjs.map +1 -0
  485. package/dist/theme-DZUpYJn-.js +4121 -0
  486. package/dist/theme-DZUpYJn-.js.map +1 -0
  487. package/dist/theme-button-CwrvpOMK.js +19 -0
  488. package/dist/theme-button-CwrvpOMK.js.map +1 -0
  489. package/dist/theme-button-Cx1iKh7G.cjs +8 -0
  490. package/dist/theme-button-Cx1iKh7G.cjs.map +1 -0
  491. package/dist/theme-button.cjs +1 -2
  492. package/dist/theme-button.js +1 -2
  493. package/dist/theme.cjs +1 -2
  494. package/dist/theme.events-Cv7N4Toe.js +2 -0
  495. package/dist/theme.events-Cv7N4Toe.js.map +1 -0
  496. package/dist/theme.events-DM4H5F2d.cjs +1 -0
  497. package/dist/theme.events-DM4H5F2d.cjs.map +1 -0
  498. package/dist/theme.interface-CXloMUCw.js +276 -0
  499. package/dist/theme.interface-CXloMUCw.js.map +1 -0
  500. package/dist/theme.interface-Da23QAYb.cjs +1 -0
  501. package/dist/theme.interface-Da23QAYb.cjs.map +1 -0
  502. package/dist/theme.js +6 -21
  503. package/dist/theme.service-C_tjlqgy.cjs +1 -0
  504. package/dist/theme.service-C_tjlqgy.cjs.map +1 -0
  505. package/dist/theme.service-D9lEas89.js +108 -0
  506. package/dist/theme.service-D9lEas89.js.map +1 -0
  507. package/dist/tooltip.cjs +6 -2
  508. package/dist/tooltip.cjs.map +1 -1
  509. package/dist/tooltip.js +200 -5
  510. package/dist/tooltip.js.map +1 -1
  511. package/dist/tree.cjs +26 -2
  512. package/dist/tree.cjs.map +1 -1
  513. package/dist/tree.js +64 -4
  514. package/dist/tree.js.map +1 -1
  515. package/dist/tslib.es6-D7BIeDVB.cjs +1 -0
  516. package/dist/tslib.es6-D7BIeDVB.cjs.map +1 -0
  517. package/dist/tslib.es6-ErZEp3OO.js +7 -0
  518. package/dist/tslib.es6-ErZEp3OO.js.map +1 -0
  519. package/dist/types.cjs +1 -2
  520. package/dist/types.cjs.map +1 -1
  521. package/dist/types.js +4 -5
  522. package/dist/types.js.map +1 -1
  523. package/dist/typewriter-CXQIzqPV.cjs +123 -0
  524. package/dist/typewriter-CXQIzqPV.cjs.map +1 -0
  525. package/dist/typewriter-mxVw5dFn.js +700 -0
  526. package/dist/typewriter-mxVw5dFn.js.map +1 -0
  527. package/dist/typewriter.cjs +1 -2
  528. package/dist/typewriter.js +2 -5
  529. package/dist/typography.cjs +282 -2
  530. package/dist/typography.cjs.map +1 -1
  531. package/dist/typography.js +353 -4
  532. package/dist/typography.js.map +1 -1
  533. package/dist/utils-BcaKtQuA.cjs +1 -0
  534. package/dist/utils-BcaKtQuA.cjs.map +1 -0
  535. package/dist/utils-CoU7M2YS.js +259 -0
  536. package/dist/utils-CoU7M2YS.js.map +1 -0
  537. package/dist/utils.cjs +1 -2
  538. package/dist/utils.js +6 -9
  539. package/dist/window-DFMlB1Tq.cjs +59 -0
  540. package/dist/window-DFMlB1Tq.cjs.map +1 -0
  541. package/dist/window-EWYJJC_H.js +548 -0
  542. package/dist/window-EWYJJC_H.js.map +1 -0
  543. package/dist/window.cjs +1 -0
  544. package/dist/window.js +2 -0
  545. package/mixins/baseElement.ts +118 -1
  546. package/mixins/discovery.service.ts +162 -1
  547. package/mixins/formField.mixin.ts +13 -8
  548. package/mixins/index.ts +2 -0
  549. package/mixins/surface.mixin.ts +93 -0
  550. package/mixins/tailwind.css +331 -14
  551. package/package.json +32 -28
  552. package/src/CLAUDE.md +428 -0
  553. package/src/area/.excalidraw +357 -0
  554. package/src/area/area.component.ts +449 -0
  555. package/src/area/area.service.test.ts +1007 -0
  556. package/src/area/area.service.ts +748 -0
  557. package/src/area/ecrypt.ts +7 -0
  558. package/src/area/index.ts +7 -0
  559. package/src/area/lazy.ts +83 -0
  560. package/src/area/readme.md +338 -0
  561. package/src/area/route.component.ts +79 -0
  562. package/src/area/router-guide.md +360 -0
  563. package/src/area/router.types.ts +101 -0
  564. package/src/area/utils.ts +354 -0
  565. package/src/audio/emotional-sounds.ts +940 -0
  566. package/src/audio/index.ts +53 -0
  567. package/src/audio/sound.service.ts +1079 -0
  568. package/src/autocomplete/README.md +485 -0
  569. package/src/autocomplete/autocomplete.scss +24 -0
  570. package/src/autocomplete/autocomplete.ts +733 -0
  571. package/src/autocomplete/index.ts +1 -0
  572. package/src/avatar.ts +164 -0
  573. package/src/badge/badge.ts +286 -0
  574. package/src/badge/index.ts +1 -0
  575. package/src/boat/boat.ts +664 -0
  576. package/src/boat/index.ts +1 -0
  577. package/src/busy/busy.ts +39 -0
  578. package/src/busy/index.ts +2 -0
  579. package/src/busy/spinner.ts +165 -0
  580. package/src/button/button.ts +382 -0
  581. package/src/button/icon-button.ts +287 -0
  582. package/src/button/index.ts +2 -0
  583. package/src/card/actions.ts +28 -0
  584. package/src/card/card.ts +319 -0
  585. package/src/card/content.ts +24 -0
  586. package/src/card/index.ts +4 -0
  587. package/src/card/media.ts +77 -0
  588. package/src/charts/area-chart.ts +495 -0
  589. package/src/charts/index.ts +4 -0
  590. package/src/charts/pills.ts +350 -0
  591. package/src/charts/types.ts +66 -0
  592. package/src/charts/utils.ts +65 -0
  593. package/src/checkbox/checkbox.ts +122 -0
  594. package/src/checkbox/index.ts +1 -0
  595. package/src/chips/assist-chip.ts +261 -0
  596. package/src/chips/chips.ts +259 -0
  597. package/src/chips/filter-chip.ts +255 -0
  598. package/src/chips/index.ts +5 -0
  599. package/src/chips/input-chip.ts +408 -0
  600. package/src/chips/suggestion-chip.ts +266 -0
  601. package/src/code-highlight/code-highlight.ts +344 -0
  602. package/src/code-highlight/code-preview.ts +123 -0
  603. package/src/code-highlight/index.ts +3 -0
  604. package/src/components/form-elements/index.ts +1 -0
  605. package/src/components/form-elements/payment-card-form.ts +331 -0
  606. package/src/components/index.ts +1 -0
  607. package/src/connectivity/connectivity-status.ts +153 -0
  608. package/src/connectivity/index.ts +1 -0
  609. package/src/content-drawer/context.ts +13 -0
  610. package/src/content-drawer/drawer.service.ts +148 -0
  611. package/src/content-drawer/drawer.ts +183 -0
  612. package/src/content-drawer/index.ts +5 -0
  613. package/src/content-drawer/main.ts +83 -0
  614. package/src/content-drawer/readme.md +709 -0
  615. package/src/content-drawer/sheet.ts +180 -0
  616. package/src/date-range/date-range-dialog.ts +230 -0
  617. package/src/date-range/date-range-helpers.ts +135 -0
  618. package/src/date-range/date-range-presets.ts +220 -0
  619. package/src/date-range/date-range.ts +530 -0
  620. package/src/date-range/date-utils.ts +58 -0
  621. package/src/date-range/index.ts +2 -0
  622. package/src/date-range-inline/date-range-inline.ts +522 -0
  623. package/src/date-range-inline/index.ts +2 -0
  624. package/src/delay/delay.ts +136 -0
  625. package/src/delay/index.ts +1 -0
  626. package/src/details/details.ts +429 -0
  627. package/src/details/index.ts +1 -0
  628. package/src/dialog/dialog-base.mixin.ts +565 -0
  629. package/src/dialog/dialog-events.ts +17 -0
  630. package/src/dialog/dialog-service.ts +482 -0
  631. package/src/dialog/dialog.component.ts +394 -0
  632. package/src/dialog/index.ts +3 -0
  633. package/src/directives/animate-text.ts +551 -0
  634. package/src/directives/color.ts +41 -0
  635. package/src/directives/confirm-click.ts +350 -0
  636. package/src/directives/cursor-glow.ts +142 -0
  637. package/src/directives/cycle-text.ts +496 -0
  638. package/src/directives/depth-of-field.ts +83 -0
  639. package/src/directives/drag.ts +370 -0
  640. package/src/directives/gravity.ts +117 -0
  641. package/src/directives/index.ts +19 -0
  642. package/src/directives/intersect.ts +204 -0
  643. package/src/directives/layout.ts +261 -0
  644. package/src/directives/liquid.ts +150 -0
  645. package/src/directives/living-border.ts +166 -0
  646. package/src/directives/long-press.ts +150 -0
  647. package/src/directives/magnetic.ts +133 -0
  648. package/src/directives/nebula.ts +773 -0
  649. package/src/directives/reduced-motion.ts +30 -0
  650. package/src/directives/reveal.ts +158 -0
  651. package/src/directives/ripple.ts +102 -0
  652. package/src/directives/typewriter.ts +349 -0
  653. package/src/discovery/discovery.service.ts +210 -0
  654. package/src/discovery/index.ts +1 -0
  655. package/src/divider/divider.ts +100 -0
  656. package/src/divider/index.ts +1 -0
  657. package/src/dropdown/dropdown-component.ts +264 -0
  658. package/src/dropdown/dropdown-content.ts +108 -0
  659. package/src/dropdown/index.ts +2 -0
  660. package/src/expand/expand-root.component.ts +278 -0
  661. package/src/expand/expand.component.ts +287 -0
  662. package/src/expand/index.ts +2 -0
  663. package/src/extra/countries/countries.data.ts +196 -0
  664. package/src/extra/countries/countries.ts +107 -0
  665. package/src/extra/countries/index.ts +2 -0
  666. package/src/extra/index.ts +2 -0
  667. package/src/extra/timezone/index.ts +2 -0
  668. package/src/extra/timezone/timezone.ts +116 -0
  669. package/src/extra/timezone/timezones.data.ts +2546 -0
  670. package/src/float/float.ts +18 -0
  671. package/src/float/index.ts +1 -0
  672. package/src/form/form-v2.ts +268 -0
  673. package/src/form/form.ts +194 -0
  674. package/src/form/index.ts +2 -0
  675. package/src/icons/icon.ts +293 -0
  676. package/src/icons/index.ts +1 -0
  677. package/src/icons/readme.md +37 -0
  678. package/src/iframe/iframe.ts +98 -0
  679. package/src/iframe/index.ts +1 -0
  680. package/src/index.ts +69 -0
  681. package/src/input/index.ts +8 -0
  682. package/src/input/input.scss +211 -0
  683. package/src/input/input.ts +951 -0
  684. package/src/json/index.ts +1 -0
  685. package/src/json/json.ts +55 -0
  686. package/src/layout/flex/flex.scss +4 -0
  687. package/src/layout/flex/flex.ts +74 -0
  688. package/src/layout/flex/index.ts +1 -0
  689. package/src/layout/grid/.readme +79 -0
  690. package/src/layout/grid/grid.scss +5 -0
  691. package/src/layout/grid/grid.ts +121 -0
  692. package/src/layout/grid/index.ts +1 -0
  693. package/src/layout/index.ts +5 -0
  694. package/src/layout/layout.ts +122 -0
  695. package/src/layout/scroll/index.ts +1 -0
  696. package/src/layout/scroll/scroll.ts +351 -0
  697. package/src/layout/v2/flex.ts +243 -0
  698. package/src/layout/v2/grid.ts +93 -0
  699. package/src/layout/v2/index.ts +1 -0
  700. package/src/lightbox/flip-directive.ts +270 -0
  701. package/src/lightbox/index.ts +4 -0
  702. package/src/lightbox/lightbox-service.ts +378 -0
  703. package/src/lightbox/lightbox.directive.ts +256 -0
  704. package/src/lightbox/lightbox.ts +417 -0
  705. package/src/list/context.ts +3 -0
  706. package/src/list/index.ts +3 -0
  707. package/src/list/list-item.ts +94 -0
  708. package/src/list/list.ts +87 -0
  709. package/src/list/readme.md +62 -0
  710. package/src/mailbox/README.md +131 -0
  711. package/src/mailbox/email-editor.ts +1071 -0
  712. package/src/mailbox/email-layout-selector.ts +58 -0
  713. package/src/mailbox/email-recipients.ts +594 -0
  714. package/src/mailbox/email-template-picker.ts +296 -0
  715. package/src/mailbox/email-viewer.ts +715 -0
  716. package/src/mailbox/index.ts +31 -0
  717. package/src/mailbox/mailbox.ts +363 -0
  718. package/src/mailbox/types.ts +181 -0
  719. package/src/map/index.ts +1 -0
  720. package/src/map/map.ts +483 -0
  721. package/src/menu/index.ts +2 -0
  722. package/src/menu/menu-item.ts +26 -0
  723. package/src/menu/menu.ts +83 -0
  724. package/src/nav-drawer/$navbar.ts +51 -0
  725. package/src/nav-drawer/appbar.ts +26 -0
  726. package/src/nav-drawer/content.ts +32 -0
  727. package/src/nav-drawer/context.ts +6 -0
  728. package/src/nav-drawer/drawer.ts +128 -0
  729. package/src/nav-drawer/index.ts +6 -0
  730. package/src/nav-drawer/navbar.ts +191 -0
  731. package/src/navigation-bar/index.ts +2 -0
  732. package/src/navigation-bar/navigation-bar-item.ts +417 -0
  733. package/src/navigation-bar/navigation-bar.ts +482 -0
  734. package/src/navigation-rail/index.ts +2 -0
  735. package/src/navigation-rail/navigation-rail-item.ts +443 -0
  736. package/src/navigation-rail/navigation-rail.ts +492 -0
  737. package/src/notification/index.ts +6 -0
  738. package/src/notification/notification-service.ts +324 -0
  739. package/src/notification/notification.scss +117 -0
  740. package/src/notification/notification.ts +263 -0
  741. package/src/notification/notify.ts +207 -0
  742. package/src/notification/outlet.ts +16 -0
  743. package/src/option/index.ts +1 -0
  744. package/src/option/option.ts +180 -0
  745. package/src/page/index.ts +1 -0
  746. package/src/page/page.ts +135 -0
  747. package/src/progress/index.ts +1 -0
  748. package/src/progress/progress.ts +143 -0
  749. package/src/qr-scanner/index.ts +1 -0
  750. package/src/qr-scanner/qr-scanner.ts +240 -0
  751. package/src/radio-group/index.ts +2 -0
  752. package/src/radio-group/radio-button.ts +81 -0
  753. package/src/radio-group/radio-group.scss +4 -0
  754. package/src/radio-group/radio-group.ts +110 -0
  755. package/src/radio-group/readme.md +315 -0
  756. package/src/range/index.ts +1 -0
  757. package/src/range/range.ts +102 -0
  758. package/src/rxjs-utils/index.ts +6 -0
  759. package/src/rxjs-utils/mutation-observer.ts +22 -0
  760. package/src/rxjs-utils/waitForElement.ts +33 -0
  761. package/src/rxjs-utils/waitForElementAll.ts +34 -0
  762. package/src/rxjs-utils/waitForElements.ts +40 -0
  763. package/src/rxjs-utils/waitForElementsAll.ts +42 -0
  764. package/src/rxjs-utils/waitUntil.ts +16 -0
  765. package/src/select/README.md +405 -0
  766. package/src/select/index.ts +2 -0
  767. package/src/select/select.ts +766 -0
  768. package/src/sheet/hook.ts +40 -0
  769. package/src/sheet/index.ts +2 -0
  770. package/src/sheet/sheet.service.ts +235 -0
  771. package/src/sheet/sheet.ts +236 -0
  772. package/src/slider/index.ts +2 -0
  773. package/src/slider/slide.ts +107 -0
  774. package/src/slider/slider.ts +164 -0
  775. package/src/steps/index.ts +3 -0
  776. package/src/steps/schmancy-step.ts +213 -0
  777. package/src/steps/schmancy-steps-container.ts +109 -0
  778. package/src/steps/steps.context.ts +23 -0
  779. package/src/store/context-array.ts +358 -0
  780. package/src/store/context-collection.ts +218 -0
  781. package/src/store/context-create.ts +284 -0
  782. package/src/store/context-object.ts +298 -0
  783. package/src/store/filter-directive.ts +614 -0
  784. package/src/store/immer-integration.ts +99 -0
  785. package/src/store/index.ts +10 -0
  786. package/src/store/selector-hook.ts +259 -0
  787. package/src/store/selectors.ts +289 -0
  788. package/src/store/storage-manager.ts +269 -0
  789. package/src/store/store.class.ts +239 -0
  790. package/src/store/types.ts +327 -0
  791. package/src/surface/context.ts +3 -0
  792. package/src/surface/index.ts +1 -0
  793. package/src/surface/surface.styles.ts +334 -0
  794. package/src/surface/surface.ts +59 -0
  795. package/src/table/index.ts +2 -0
  796. package/src/table/row.ts +60 -0
  797. package/src/table/table.ts +266 -0
  798. package/src/tabs/Readme.md +397 -0
  799. package/src/tabs/context.ts +5 -0
  800. package/src/tabs/index.ts +4 -0
  801. package/src/tabs/tab.ts +39 -0
  802. package/src/tabs/tabs-compatibility.ts +20 -0
  803. package/src/tabs/tabs-group.ts +184 -0
  804. package/src/teleport/.excalidraw +2511 -0
  805. package/src/teleport/index.ts +2 -0
  806. package/src/teleport/readme.md +91 -0
  807. package/src/teleport/teleport.component.ts +132 -0
  808. package/src/teleport/teleport.service.ts +139 -0
  809. package/src/teleport/watcher.ts +20 -0
  810. package/src/textarea/index.ts +1 -0
  811. package/src/textarea/textarea.scss +54 -0
  812. package/src/textarea/textarea.ts +432 -0
  813. package/src/theme/context.ts +28 -0
  814. package/src/theme/index.ts +17 -0
  815. package/src/theme/theme-audio-player.ts +470 -0
  816. package/src/theme/theme-controller-boat.ts +49 -0
  817. package/src/theme/theme-controller-example.md +152 -0
  818. package/src/theme/theme-controller.ts +205 -0
  819. package/src/theme/theme.component.ts +305 -0
  820. package/src/theme/theme.events.ts +59 -0
  821. package/src/theme/theme.format.ts +417 -0
  822. package/src/theme/theme.interface.ts +399 -0
  823. package/src/theme/theme.service.ts +520 -0
  824. package/src/theme/theme.style.css +619 -0
  825. package/src/theme-button/index.ts +1 -0
  826. package/src/theme-button/theme-button.ts +35 -0
  827. package/src/tooltip/index.ts +2 -0
  828. package/src/tooltip/tooltip.directive.ts +277 -0
  829. package/src/tooltip/tooltip.ts +216 -0
  830. package/src/tree/README.md +59 -0
  831. package/src/tree/index.ts +1 -0
  832. package/src/tree/tree.ts +132 -0
  833. package/src/types/events.ts +5 -0
  834. package/src/types/index.ts +3 -0
  835. package/src/types/mood-audio.types.ts +220 -0
  836. package/src/types/surface.ts +52 -0
  837. package/src/typewriter/IMPROVEMENTS.md +174 -0
  838. package/src/typewriter/QUICK_REFERENCE.md +166 -0
  839. package/src/typewriter/index.ts +1 -0
  840. package/src/typewriter/test-typewriter.html +97 -0
  841. package/src/typewriter/typewriter.ts +376 -0
  842. package/src/typography/index.ts +1 -0
  843. package/src/typography/typography.ts +448 -0
  844. package/src/utils/animation.ts +418 -0
  845. package/src/utils/hashContent.ts +12 -0
  846. package/src/utils/index.ts +6 -0
  847. package/src/utils/intersection.ts +22 -0
  848. package/src/utils/number.ts +529 -0
  849. package/src/utils/overlay-stack.ts +101 -0
  850. package/src/utils/search.ts +322 -0
  851. package/src/vite-env.d.ts +2 -0
  852. package/src/window/index.ts +10 -0
  853. package/src/window/window-manager.ts +204 -0
  854. package/src/window/window-position.ts +136 -0
  855. package/src/window/window-registry.ts +34 -0
  856. package/src/window/window.ts +724 -0
  857. package/types/mixins/baseElement.d.ts +12 -0
  858. package/types/mixins/discovery.service.d.ts +72 -0
  859. package/types/mixins/index.d.ts +2 -0
  860. package/types/mixins/surface.mixin.d.ts +39 -0
  861. package/types/src/area/area.service.d.ts +2 -0
  862. package/types/src/badge/badge.d.ts +1 -1
  863. package/types/src/boat/boat.d.ts +40 -33
  864. package/types/src/button/icon-button.d.ts +10 -0
  865. package/types/src/chips/filter-chip.d.ts +0 -12
  866. package/types/src/connectivity/connectivity-status.d.ts +25 -0
  867. package/types/src/connectivity/index.d.ts +1 -0
  868. package/types/src/content-drawer/drawer.service.d.ts +3 -0
  869. package/types/src/date-range/date-range.d.ts +2 -0
  870. package/types/src/details/details.d.ts +26 -2
  871. package/types/src/dialog/dialog-base.mixin.d.ts +7 -3
  872. package/types/src/dialog/dialog-service.d.ts +27 -1
  873. package/types/src/dialog/dialog.component.d.ts +35 -1
  874. package/types/src/directives/animate-text.d.ts +67 -0
  875. package/types/src/directives/color.d.ts +2 -3
  876. package/types/src/directives/confirm-click.d.ts +38 -0
  877. package/types/src/directives/cursor-glow.d.ts +38 -0
  878. package/types/src/directives/cycle-text.d.ts +44 -0
  879. package/types/src/directives/depth-of-field.d.ts +38 -0
  880. package/types/src/directives/drag.d.ts +8 -8
  881. package/types/src/directives/gravity.d.ts +40 -0
  882. package/types/src/directives/index.d.ts +16 -2
  883. package/types/src/directives/intersect.d.ts +60 -0
  884. package/types/src/directives/layout.d.ts +62 -0
  885. package/types/src/directives/liquid.d.ts +38 -0
  886. package/types/src/directives/living-border.d.ts +39 -0
  887. package/types/src/directives/long-press.d.ts +38 -0
  888. package/types/src/directives/magnetic.d.ts +35 -0
  889. package/types/src/directives/nebula.d.ts +80 -0
  890. package/types/src/directives/reduced-motion.d.ts +2 -0
  891. package/types/src/directives/reveal.d.ts +54 -0
  892. package/types/src/directives/ripple.d.ts +15 -5
  893. package/types/src/directives/typewriter.d.ts +50 -0
  894. package/types/src/discovery/discovery.service.d.ts +72 -0
  895. package/types/src/expand/expand-root.component.d.ts +30 -0
  896. package/types/src/expand/expand.component.d.ts +38 -0
  897. package/types/src/expand/index.d.ts +2 -0
  898. package/types/src/float/float.d.ts +14 -0
  899. package/types/src/float/index.d.ts +1 -0
  900. package/types/src/icons/icon.d.ts +14 -0
  901. package/types/src/iframe/iframe.d.ts +37 -0
  902. package/types/src/iframe/index.d.ts +1 -0
  903. package/types/src/index.d.ts +6 -1
  904. package/types/src/input/index.d.ts +1 -1
  905. package/types/src/layout/scroll/scroll.d.ts +11 -0
  906. package/types/src/lightbox/lightbox.d.ts +1 -0
  907. package/types/src/mailbox/email-recipients.d.ts +2 -2
  908. package/types/src/mailbox/types.d.ts +1 -1
  909. package/types/src/navigation-bar/navigation-bar.d.ts +17 -0
  910. package/types/src/notification/notification.d.ts +1 -0
  911. package/types/src/page/page.d.ts +6 -0
  912. package/types/src/range/index.d.ts +1 -0
  913. package/types/src/range/range.d.ts +25 -0
  914. package/types/src/sheet/sheet.d.ts +0 -1
  915. package/types/src/steps/schmancy-steps-container.d.ts +8 -6
  916. package/types/src/surface/surface.d.ts +4 -27
  917. package/types/src/surface/surface.styles.d.ts +31 -0
  918. package/types/src/tabs/tab.d.ts +1 -0
  919. package/types/src/textarea/textarea.d.ts +3 -2
  920. package/types/src/theme/context.d.ts +2 -282
  921. package/types/src/theme/theme.component.d.ts +9 -1
  922. package/types/src/theme/theme.format.d.ts +1 -1
  923. package/types/src/theme/theme.interface.d.ts +8 -1
  924. package/types/src/theme/theme.service.d.ts +20 -282
  925. package/types/src/types/surface.d.ts +27 -1
  926. package/types/src/typography/typography.d.ts +17 -3
  927. package/types/src/utils/animation.d.ts +254 -0
  928. package/types/src/utils/index.d.ts +2 -0
  929. package/types/src/utils/number.d.ts +18 -2
  930. package/types/src/utils/overlay-stack.d.ts +54 -0
  931. package/types/src/window/index.d.ts +3 -0
  932. package/types/src/window/window-manager.d.ts +49 -0
  933. package/types/src/window/window-position.d.ts +64 -0
  934. package/types/src/window/window-registry.d.ts +28 -0
  935. package/types/src/window/window.d.ts +67 -0
  936. package/ai/animated-text.md +0 -116
  937. package/ai/audio.md +0 -241
  938. package/ai/boat.md +0 -53
  939. package/ai/component-relationships.md +0 -93
  940. package/ai/context.md +0 -572
  941. package/ai/countries.md +0 -271
  942. package/ai/date-range-inline.md +0 -262
  943. package/ai/delay.md +0 -158
  944. package/ai/index.md +0 -112
  945. package/ai/layout.md +0 -187
  946. package/ai/mailbox.md +0 -530
  947. package/ai/map.md +0 -234
  948. package/ai/navigation-bar-item.md +0 -259
  949. package/ai/option.md +0 -173
  950. package/ai/payment-card-form.md +0 -242
  951. package/ai/slider.md +0 -227
  952. package/ai/spinner.md +0 -165
  953. package/ai/teleport.md +0 -197
  954. package/ai/template.md +0 -144
  955. package/ai/theme-button.md +0 -173
  956. package/ai/timezone.md +0 -276
  957. package/ai/typewriter.md +0 -335
  958. package/dist/_commonjsHelpers-Dw9sPFZy.js +0 -7
  959. package/dist/_commonjsHelpers-Dw9sPFZy.js.map +0 -1
  960. package/dist/_commonjsHelpers-k2hpEU-q.cjs +0 -2
  961. package/dist/_commonjsHelpers-k2hpEU-q.cjs.map +0 -1
  962. package/dist/ai/animated-text.md +0 -116
  963. package/dist/ai/audio.md +0 -241
  964. package/dist/ai/boat.md +0 -53
  965. package/dist/ai/component-relationships.md +0 -93
  966. package/dist/ai/context.md +0 -572
  967. package/dist/ai/countries.md +0 -271
  968. package/dist/ai/date-range-inline.md +0 -262
  969. package/dist/ai/delay.md +0 -158
  970. package/dist/ai/index.md +0 -112
  971. package/dist/ai/layout.md +0 -187
  972. package/dist/ai/mailbox.md +0 -530
  973. package/dist/ai/map.md +0 -234
  974. package/dist/ai/navigation-bar-item.md +0 -259
  975. package/dist/ai/option.md +0 -173
  976. package/dist/ai/payment-card-form.md +0 -242
  977. package/dist/ai/slider.md +0 -227
  978. package/dist/ai/spinner.md +0 -165
  979. package/dist/ai/teleport.md +0 -197
  980. package/dist/ai/template.md +0 -144
  981. package/dist/ai/theme-button.md +0 -173
  982. package/dist/ai/timezone.md +0 -276
  983. package/dist/ai/typewriter.md +0 -335
  984. package/dist/animated-text-B3DQRJBy.cjs +0 -37
  985. package/dist/animated-text-B3DQRJBy.cjs.map +0 -1
  986. package/dist/animated-text-BAj4-6hE.js +0 -76
  987. package/dist/animated-text-BAj4-6hE.js.map +0 -1
  988. package/dist/animated-text.cjs +0 -2
  989. package/dist/animated-text.cjs.map +0 -1
  990. package/dist/animated-text.js +0 -2
  991. package/dist/animated-text.js.map +0 -1
  992. package/dist/area.cjs.map +0 -1
  993. package/dist/area.component-CP4DZ0d8.js +0 -330
  994. package/dist/area.component-CP4DZ0d8.js.map +0 -1
  995. package/dist/area.component-ChxSLt16.cjs +0 -12
  996. package/dist/area.component-ChxSLt16.cjs.map +0 -1
  997. package/dist/area.js.map +0 -1
  998. package/dist/audio.cjs.map +0 -1
  999. package/dist/audio.js.map +0 -1
  1000. package/dist/autocomplete-CAaVSg4g.cjs +0 -112
  1001. package/dist/autocomplete-CAaVSg4g.cjs.map +0 -1
  1002. package/dist/autocomplete-CGbACUYd.js +0 -333
  1003. package/dist/autocomplete-CGbACUYd.js.map +0 -1
  1004. package/dist/autocomplete.cjs.map +0 -1
  1005. package/dist/autocomplete.js.map +0 -1
  1006. package/dist/avatar-nWOZXEsW.cjs +0 -273
  1007. package/dist/avatar-nWOZXEsW.cjs.map +0 -1
  1008. package/dist/avatar-rLCF6MSI.js +0 -895
  1009. package/dist/avatar-rLCF6MSI.js.map +0 -1
  1010. package/dist/badge.cjs.map +0 -1
  1011. package/dist/badge.js.map +0 -1
  1012. package/dist/boat-Ckt9v__d.js +0 -301
  1013. package/dist/boat-Ckt9v__d.js.map +0 -1
  1014. package/dist/boat-yNAZ2LLB.cjs +0 -97
  1015. package/dist/boat-yNAZ2LLB.cjs.map +0 -1
  1016. package/dist/boat.cjs.map +0 -1
  1017. package/dist/boat.js.map +0 -1
  1018. package/dist/busy.cjs.map +0 -1
  1019. package/dist/busy.js.map +0 -1
  1020. package/dist/card.cjs.map +0 -1
  1021. package/dist/card.js.map +0 -1
  1022. package/dist/checkbox-BnAlpsJN.cjs +0 -40
  1023. package/dist/checkbox-BnAlpsJN.cjs.map +0 -1
  1024. package/dist/checkbox-D22yfGe3.js +0 -526
  1025. package/dist/checkbox-D22yfGe3.js.map +0 -1
  1026. package/dist/checkbox.cjs.map +0 -1
  1027. package/dist/checkbox.js.map +0 -1
  1028. package/dist/chips.cjs.map +0 -1
  1029. package/dist/chips.js.map +0 -1
  1030. package/dist/code-highlight.cjs.map +0 -1
  1031. package/dist/code-highlight.js.map +0 -1
  1032. package/dist/code-preview-DPlQayFd.js +0 -967
  1033. package/dist/code-preview-DPlQayFd.js.map +0 -1
  1034. package/dist/code-preview-jPnX60FF.cjs +0 -193
  1035. package/dist/code-preview-jPnX60FF.cjs.map +0 -1
  1036. package/dist/components.cjs.map +0 -1
  1037. package/dist/components.js.map +0 -1
  1038. package/dist/consume-5D1qfVWM.js +0 -38
  1039. package/dist/consume-5D1qfVWM.js.map +0 -1
  1040. package/dist/consume-edta5ng5.cjs +0 -2
  1041. package/dist/consume-edta5ng5.cjs.map +0 -1
  1042. package/dist/content-drawer.cjs.map +0 -1
  1043. package/dist/content-drawer.js.map +0 -1
  1044. package/dist/context-create-B_S-sD5B.js +0 -1107
  1045. package/dist/context-create-B_S-sD5B.js.map +0 -1
  1046. package/dist/context-create-DTybDbZp.cjs +0 -2
  1047. package/dist/context-create-DTybDbZp.cjs.map +0 -1
  1048. package/dist/date-range-GFm5NG33.js +0 -639
  1049. package/dist/date-range-GFm5NG33.js.map +0 -1
  1050. package/dist/date-range-inline-CgX2o0FP.cjs +0 -44
  1051. package/dist/date-range-inline-CgX2o0FP.cjs.map +0 -1
  1052. package/dist/date-range-inline-DTQLESAZ.js +0 -197
  1053. package/dist/date-range-inline-DTQLESAZ.js.map +0 -1
  1054. package/dist/date-range-inline.cjs.map +0 -1
  1055. package/dist/date-range-inline.js.map +0 -1
  1056. package/dist/date-range-ug3B9CFT.cjs +0 -119
  1057. package/dist/date-range-ug3B9CFT.cjs.map +0 -1
  1058. package/dist/date-range.cjs.map +0 -1
  1059. package/dist/date-range.js.map +0 -1
  1060. package/dist/delay-CWtBL0VD.cjs +0 -10
  1061. package/dist/delay-CWtBL0VD.cjs.map +0 -1
  1062. package/dist/delay-DEe1CmHc.js +0 -288
  1063. package/dist/delay-DEe1CmHc.js.map +0 -1
  1064. package/dist/delay.cjs.map +0 -1
  1065. package/dist/delay.js.map +0 -1
  1066. package/dist/details-D-LXW23W.js +0 -100
  1067. package/dist/details-D-LXW23W.js.map +0 -1
  1068. package/dist/details-DVke77dU.cjs +0 -55
  1069. package/dist/details-DVke77dU.cjs.map +0 -1
  1070. package/dist/details.cjs.map +0 -1
  1071. package/dist/details.js.map +0 -1
  1072. package/dist/dialog-service-C86xTS8q.cjs +0 -2
  1073. package/dist/dialog-service-C86xTS8q.cjs.map +0 -1
  1074. package/dist/dialog-service-D9E3jLAR.js +0 -118
  1075. package/dist/dialog-service-D9E3jLAR.js.map +0 -1
  1076. package/dist/dialog.component-BM0D-hK9.cjs +0 -48
  1077. package/dist/dialog.component-BM0D-hK9.cjs.map +0 -1
  1078. package/dist/dialog.component-a7FlKhGD.js +0 -145
  1079. package/dist/dialog.component-a7FlKhGD.js.map +0 -1
  1080. package/dist/discovery.service-BbYjU5x8.js +0 -21
  1081. package/dist/discovery.service-BbYjU5x8.js.map +0 -1
  1082. package/dist/discovery.service-BpGCuXPd.cjs +0 -2
  1083. package/dist/discovery.service-BpGCuXPd.cjs.map +0 -1
  1084. package/dist/divider-CzTpxOqt.js +0 -84
  1085. package/dist/divider-CzTpxOqt.js.map +0 -1
  1086. package/dist/divider-D8KStUhN.cjs +0 -58
  1087. package/dist/divider-D8KStUhN.cjs.map +0 -1
  1088. package/dist/divider.cjs.map +0 -1
  1089. package/dist/divider.js.map +0 -1
  1090. package/dist/dropdown-content-CngZN3vv.cjs +0 -58
  1091. package/dist/dropdown-content-CngZN3vv.cjs.map +0 -1
  1092. package/dist/dropdown-content-DCn-g0-f.js +0 -147
  1093. package/dist/dropdown-content-DCn-g0-f.js.map +0 -1
  1094. package/dist/email-recipients-BhntMZMf.cjs +0 -1173
  1095. package/dist/email-recipients-BhntMZMf.cjs.map +0 -1
  1096. package/dist/email-recipients-BzjAKNJ0.js +0 -1733
  1097. package/dist/email-recipients-BzjAKNJ0.js.map +0 -1
  1098. package/dist/emotional-sounds-BRnFhww6.js +0 -234
  1099. package/dist/emotional-sounds-BRnFhww6.js.map +0 -1
  1100. package/dist/emotional-sounds-DVGhmoZf.cjs +0 -2
  1101. package/dist/emotional-sounds-DVGhmoZf.cjs.map +0 -1
  1102. package/dist/extra.cjs.map +0 -1
  1103. package/dist/extra.js.map +0 -1
  1104. package/dist/flex-5dR48zie.js +0 -183
  1105. package/dist/flex-5dR48zie.js.map +0 -1
  1106. package/dist/flex-oHl2EfYB.cjs +0 -18
  1107. package/dist/flex-oHl2EfYB.cjs.map +0 -1
  1108. package/dist/flow-D0e7hGXO.cjs +0 -2
  1109. package/dist/flow-D0e7hGXO.cjs.map +0 -1
  1110. package/dist/flow-DXYqC9OA.js +0 -340
  1111. package/dist/flow-DXYqC9OA.js.map +0 -1
  1112. package/dist/form-BlPiAPt7.cjs +0 -2
  1113. package/dist/form-BlPiAPt7.cjs.map +0 -1
  1114. package/dist/form-BxVM6JTn.js +0 -141
  1115. package/dist/form-BxVM6JTn.js.map +0 -1
  1116. package/dist/form.cjs.map +0 -1
  1117. package/dist/form.js.map +0 -1
  1118. package/dist/formField.mixin-BCGA7Ea3.js +0 -48
  1119. package/dist/formField.mixin-BCGA7Ea3.js.map +0 -1
  1120. package/dist/formField.mixin-BfJMifU9.cjs +0 -2
  1121. package/dist/formField.mixin-BfJMifU9.cjs.map +0 -1
  1122. package/dist/height-CfECBO2j.js +0 -44
  1123. package/dist/height-CfECBO2j.js.map +0 -1
  1124. package/dist/height-Z70qJYJK.cjs +0 -2
  1125. package/dist/height-Z70qJYJK.cjs.map +0 -1
  1126. package/dist/icon-DHEXr3c-.cjs +0 -49
  1127. package/dist/icon-DHEXr3c-.cjs.map +0 -1
  1128. package/dist/icon-DYpLoegR.js +0 -84
  1129. package/dist/icon-DYpLoegR.js.map +0 -1
  1130. package/dist/icon-button-CmZBLHWC.js +0 -164
  1131. package/dist/icon-button-CmZBLHWC.js.map +0 -1
  1132. package/dist/icon-button-IbSX8C98.cjs +0 -70
  1133. package/dist/icon-button-IbSX8C98.cjs.map +0 -1
  1134. package/dist/icons.cjs.map +0 -1
  1135. package/dist/icons.js.map +0 -1
  1136. package/dist/index-CCi1otmh.cjs +0 -2
  1137. package/dist/index-CCi1otmh.cjs.map +0 -1
  1138. package/dist/index-CW6PhEkx.js +0 -17
  1139. package/dist/index-CW6PhEkx.js.map +0 -1
  1140. package/dist/index.cjs.map +0 -1
  1141. package/dist/index.js.map +0 -1
  1142. package/dist/input-BByjYlgl.cjs +0 -51
  1143. package/dist/input-BByjYlgl.cjs.map +0 -1
  1144. package/dist/input-D0cQ9DOY.js +0 -237
  1145. package/dist/input-D0cQ9DOY.js.map +0 -1
  1146. package/dist/input-chip-B5ErXgCB.js +0 -206
  1147. package/dist/input-chip-B5ErXgCB.js.map +0 -1
  1148. package/dist/input-chip-DkWaTciP.cjs +0 -147
  1149. package/dist/input-chip-DkWaTciP.cjs.map +0 -1
  1150. package/dist/input.cjs.map +0 -1
  1151. package/dist/input.js.map +0 -1
  1152. package/dist/intersection-CJxzz8c-.js +0 -15
  1153. package/dist/intersection-CJxzz8c-.js.map +0 -1
  1154. package/dist/intersection-CVvaDv96.cjs +0 -2
  1155. package/dist/intersection-CVvaDv96.cjs.map +0 -1
  1156. package/dist/json-BZVe74np.cjs +0 -12
  1157. package/dist/json-BZVe74np.cjs.map +0 -1
  1158. package/dist/json-PKewOWuJ.js +0 -51
  1159. package/dist/json-PKewOWuJ.js.map +0 -1
  1160. package/dist/layout.cjs.map +0 -1
  1161. package/dist/layout.js.map +0 -1
  1162. package/dist/lightbox-service-D-0JtxB1.cjs +0 -202
  1163. package/dist/lightbox-service-D-0JtxB1.cjs.map +0 -1
  1164. package/dist/lightbox-service-DZMnb1eU.js +0 -458
  1165. package/dist/lightbox-service-DZMnb1eU.js.map +0 -1
  1166. package/dist/lightbox.cjs.map +0 -1
  1167. package/dist/lightbox.js.map +0 -1
  1168. package/dist/list-B_2m7l3g.cjs +0 -17
  1169. package/dist/list-B_2m7l3g.cjs.map +0 -1
  1170. package/dist/list-CW56LV-v.js +0 -69
  1171. package/dist/list-CW56LV-v.js.map +0 -1
  1172. package/dist/list.cjs.map +0 -1
  1173. package/dist/list.js.map +0 -1
  1174. package/dist/litElement.mixin-CrpeGpZ7.cjs +0 -2
  1175. package/dist/litElement.mixin-CrpeGpZ7.cjs.map +0 -1
  1176. package/dist/litElement.mixin-DHZXtvYq.js +0 -15
  1177. package/dist/litElement.mixin-DHZXtvYq.js.map +0 -1
  1178. package/dist/mailbox.cjs.map +0 -1
  1179. package/dist/mailbox.js.map +0 -1
  1180. package/dist/map-2Hl60a0A.js +0 -175
  1181. package/dist/map-2Hl60a0A.js.map +0 -1
  1182. package/dist/map-DyPS9G7M.cjs +0 -81
  1183. package/dist/map-DyPS9G7M.cjs.map +0 -1
  1184. package/dist/map.cjs.map +0 -1
  1185. package/dist/map.js.map +0 -1
  1186. package/dist/media-CS8HpKnK.cjs +0 -152
  1187. package/dist/media-CS8HpKnK.cjs.map +0 -1
  1188. package/dist/media-DtWbcRxL.js +0 -244
  1189. package/dist/media-DtWbcRxL.js.map +0 -1
  1190. package/dist/menu-Caju5-zd.js +0 -60
  1191. package/dist/menu-Caju5-zd.js.map +0 -1
  1192. package/dist/menu-rX5RPAI2.cjs +0 -24
  1193. package/dist/menu-rX5RPAI2.cjs.map +0 -1
  1194. package/dist/menu.cjs.map +0 -1
  1195. package/dist/menu.js.map +0 -1
  1196. package/dist/nav-drawer.cjs.map +0 -1
  1197. package/dist/nav-drawer.js.map +0 -1
  1198. package/dist/navigation-bar.cjs.map +0 -1
  1199. package/dist/navigation-bar.js.map +0 -1
  1200. package/dist/navigation-rail-Ctketq5a.js +0 -256
  1201. package/dist/navigation-rail-Ctketq5a.js.map +0 -1
  1202. package/dist/navigation-rail-DC9_oSIM.cjs +0 -79
  1203. package/dist/navigation-rail-DC9_oSIM.cjs.map +0 -1
  1204. package/dist/notification-service-CUlfXqmj.js +0 -155
  1205. package/dist/notification-service-CUlfXqmj.js.map +0 -1
  1206. package/dist/notification-service-DknbpqTt.cjs +0 -19
  1207. package/dist/notification-service-DknbpqTt.cjs.map +0 -1
  1208. package/dist/notification.cjs.map +0 -1
  1209. package/dist/notification.js.map +0 -1
  1210. package/dist/notify-DJSOWTxv.js +0 -35
  1211. package/dist/notify-DJSOWTxv.js.map +0 -1
  1212. package/dist/notify-DickIEHW.cjs +0 -2
  1213. package/dist/notify-DickIEHW.cjs.map +0 -1
  1214. package/dist/number-B7aCRYnH.cjs +0 -2
  1215. package/dist/number-B7aCRYnH.cjs.map +0 -1
  1216. package/dist/number-BhTiptLA.js +0 -99
  1217. package/dist/number-BhTiptLA.js.map +0 -1
  1218. package/dist/option-Bng41-rY.js +0 -77
  1219. package/dist/option-Bng41-rY.js.map +0 -1
  1220. package/dist/option-DYT5Rkgy.cjs +0 -44
  1221. package/dist/option-DYT5Rkgy.cjs.map +0 -1
  1222. package/dist/option.cjs.map +0 -1
  1223. package/dist/option.js.map +0 -1
  1224. package/dist/page-BLn9gtSd.cjs +0 -20
  1225. package/dist/page-BLn9gtSd.cjs.map +0 -1
  1226. package/dist/page-D-ROcQDd.js +0 -48
  1227. package/dist/page-D-ROcQDd.js.map +0 -1
  1228. package/dist/payment-card-form-5UtfWzoW.cjs +0 -74
  1229. package/dist/payment-card-form-5UtfWzoW.cjs.map +0 -1
  1230. package/dist/payment-card-form-BJa4RgF2.js +0 -515
  1231. package/dist/payment-card-form-BJa4RgF2.js.map +0 -1
  1232. package/dist/pills-BS5rZ6C3.js +0 -346
  1233. package/dist/pills-BS5rZ6C3.js.map +0 -1
  1234. package/dist/pills-Blf7IAeq.cjs +0 -113
  1235. package/dist/pills-Blf7IAeq.cjs.map +0 -1
  1236. package/dist/progress-DlhYniW_.cjs +0 -35
  1237. package/dist/progress-DlhYniW_.cjs.map +0 -1
  1238. package/dist/progress-yTIX6EqC.js +0 -56
  1239. package/dist/progress-yTIX6EqC.js.map +0 -1
  1240. package/dist/progress.cjs.map +0 -1
  1241. package/dist/progress.js.map +0 -1
  1242. package/dist/provide-BxZ2kn_p.cjs +0 -2
  1243. package/dist/provide-BxZ2kn_p.cjs.map +0 -1
  1244. package/dist/provide-tcktw8xB.js +0 -100
  1245. package/dist/provide-tcktw8xB.js.map +0 -1
  1246. package/dist/qr-scanner-DOs7uNS_.cjs +0 -29
  1247. package/dist/qr-scanner-DOs7uNS_.cjs.map +0 -1
  1248. package/dist/qr-scanner-DjZ8mgHV.js +0 -743
  1249. package/dist/qr-scanner-DjZ8mgHV.js.map +0 -1
  1250. package/dist/radio-button-N_PrrxKB.cjs +0 -41
  1251. package/dist/radio-button-N_PrrxKB.cjs.map +0 -1
  1252. package/dist/radio-button-me3SRHGu.js +0 -115
  1253. package/dist/radio-button-me3SRHGu.js.map +0 -1
  1254. package/dist/radio-group.cjs.map +0 -1
  1255. package/dist/radio-group.js.map +0 -1
  1256. package/dist/ripple-BgJXbNSP.js +0 -124
  1257. package/dist/ripple-BgJXbNSP.js.map +0 -1
  1258. package/dist/ripple-x6sTX02K.cjs +0 -16
  1259. package/dist/ripple-x6sTX02K.cjs.map +0 -1
  1260. package/dist/rxjs-utils.cjs.map +0 -1
  1261. package/dist/rxjs-utils.js.map +0 -1
  1262. package/dist/schmancy-steps-container-J6P-NNNj.js +0 -156
  1263. package/dist/schmancy-steps-container-J6P-NNNj.js.map +0 -1
  1264. package/dist/schmancy-steps-container-T57BKMzi.cjs +0 -70
  1265. package/dist/schmancy-steps-container-T57BKMzi.cjs.map +0 -1
  1266. package/dist/scroll-C_gfUgjn.js +0 -87
  1267. package/dist/scroll-C_gfUgjn.js.map +0 -1
  1268. package/dist/scroll-CecsowP7.cjs +0 -27
  1269. package/dist/scroll-CecsowP7.cjs.map +0 -1
  1270. package/dist/search-B1s7thB0.cjs +0 -2
  1271. package/dist/search-B1s7thB0.cjs.map +0 -1
  1272. package/dist/search-DxxnLa5u.js +0 -95
  1273. package/dist/search-DxxnLa5u.js.map +0 -1
  1274. package/dist/select-BBA0gBHf.js +0 -280
  1275. package/dist/select-BBA0gBHf.js.map +0 -1
  1276. package/dist/select-D9oCjv7N.cjs +0 -57
  1277. package/dist/select-D9oCjv7N.cjs.map +0 -1
  1278. package/dist/select.cjs.map +0 -1
  1279. package/dist/select.js.map +0 -1
  1280. package/dist/selector-hook-9w2auh2O.cjs +0 -2
  1281. package/dist/selector-hook-9w2auh2O.cjs.map +0 -1
  1282. package/dist/selector-hook-CHV4kDMd.js +0 -319
  1283. package/dist/selector-hook-CHV4kDMd.js.map +0 -1
  1284. package/dist/sheet-0oUfBmXX.cjs +0 -15
  1285. package/dist/sheet-0oUfBmXX.cjs.map +0 -1
  1286. package/dist/sheet-CNcDT3VP.js +0 -97
  1287. package/dist/sheet-CNcDT3VP.js.map +0 -1
  1288. package/dist/sheet.cjs.map +0 -1
  1289. package/dist/sheet.js.map +0 -1
  1290. package/dist/sheet.service-2MobB-9z.js +0 -68
  1291. package/dist/sheet.service-2MobB-9z.js.map +0 -1
  1292. package/dist/sheet.service-su_7yDQ-.cjs +0 -2
  1293. package/dist/sheet.service-su_7yDQ-.cjs.map +0 -1
  1294. package/dist/slider-CV-Ehp_5.cjs +0 -83
  1295. package/dist/slider-CV-Ehp_5.cjs.map +0 -1
  1296. package/dist/slider-CkE-iFUy.js +0 -161
  1297. package/dist/slider-CkE-iFUy.js.map +0 -1
  1298. package/dist/sound.service-Nza4c6wv.js +0 -102
  1299. package/dist/sound.service-Nza4c6wv.js.map +0 -1
  1300. package/dist/sound.service-eRirZw59.cjs +0 -2
  1301. package/dist/sound.service-eRirZw59.cjs.map +0 -1
  1302. package/dist/spinner-Bfn8KC-9.cjs +0 -135
  1303. package/dist/spinner-Bfn8KC-9.cjs.map +0 -1
  1304. package/dist/spinner-DiMbWXp9.js +0 -168
  1305. package/dist/spinner-DiMbWXp9.js.map +0 -1
  1306. package/dist/store.cjs.map +0 -1
  1307. package/dist/store.js.map +0 -1
  1308. package/dist/suggestion-chip-CEDqUNoS.js +0 -481
  1309. package/dist/suggestion-chip-CEDqUNoS.js.map +0 -1
  1310. package/dist/suggestion-chip-HhsLtZXR.cjs +0 -271
  1311. package/dist/suggestion-chip-HhsLtZXR.cjs.map +0 -1
  1312. package/dist/surface-CW3H23Va.cjs +0 -199
  1313. package/dist/surface-CW3H23Va.cjs.map +0 -1
  1314. package/dist/surface-eBfnSwQS.js +0 -220
  1315. package/dist/surface-eBfnSwQS.js.map +0 -1
  1316. package/dist/surface.cjs.map +0 -1
  1317. package/dist/surface.js.map +0 -1
  1318. package/dist/table-D0tiSL_u.cjs +0 -64
  1319. package/dist/table-D0tiSL_u.cjs.map +0 -1
  1320. package/dist/table-Dmo4TvTx.js +0 -561
  1321. package/dist/table-Dmo4TvTx.js.map +0 -1
  1322. package/dist/table.cjs.map +0 -1
  1323. package/dist/table.js.map +0 -1
  1324. package/dist/tabs-compatibility-Bit6y6en.js +0 -104
  1325. package/dist/tabs-compatibility-Bit6y6en.js.map +0 -1
  1326. package/dist/tabs-compatibility-Vq_2-ekz.cjs +0 -35
  1327. package/dist/tabs-compatibility-Vq_2-ekz.cjs.map +0 -1
  1328. package/dist/tabs.cjs.map +0 -1
  1329. package/dist/tabs.js.map +0 -1
  1330. package/dist/tailwind.mixin-Bp_PR6yc.js +0 -67
  1331. package/dist/tailwind.mixin-Bp_PR6yc.js.map +0 -1
  1332. package/dist/tailwind.mixin-Cp4PyXok.cjs +0 -2
  1333. package/dist/tailwind.mixin-Cp4PyXok.cjs.map +0 -1
  1334. package/dist/teleport.cjs.map +0 -1
  1335. package/dist/teleport.js.map +0 -1
  1336. package/dist/textarea-B1d1QCqT.js +0 -134
  1337. package/dist/textarea-B1d1QCqT.js.map +0 -1
  1338. package/dist/textarea-DG8CHhZA.cjs +0 -44
  1339. package/dist/textarea-DG8CHhZA.cjs.map +0 -1
  1340. package/dist/textarea.cjs.map +0 -1
  1341. package/dist/textarea.js.map +0 -1
  1342. package/dist/theme-button-CPL6Eaqd.cjs +0 -9
  1343. package/dist/theme-button-CPL6Eaqd.cjs.map +0 -1
  1344. package/dist/theme-button-CrLuMQNe.js +0 -27
  1345. package/dist/theme-button-CrLuMQNe.js.map +0 -1
  1346. package/dist/theme-button.cjs.map +0 -1
  1347. package/dist/theme-button.js.map +0 -1
  1348. package/dist/theme-controller-boat-CXbNJSI3.cjs +0 -178
  1349. package/dist/theme-controller-boat-CXbNJSI3.cjs.map +0 -1
  1350. package/dist/theme-controller-boat-CzSmjyKq.js +0 -1159
  1351. package/dist/theme-controller-boat-CzSmjyKq.js.map +0 -1
  1352. package/dist/theme.cjs.map +0 -1
  1353. package/dist/theme.events-CPSLaOlR.js +0 -6
  1354. package/dist/theme.events-CPSLaOlR.js.map +0 -1
  1355. package/dist/theme.events-Car6U_SQ.cjs +0 -2
  1356. package/dist/theme.events-Car6U_SQ.cjs.map +0 -1
  1357. package/dist/theme.interface-BLfE5J_1.js +0 -5
  1358. package/dist/theme.interface-BLfE5J_1.js.map +0 -1
  1359. package/dist/theme.interface-BMeNadVb.cjs +0 -2
  1360. package/dist/theme.interface-BMeNadVb.cjs.map +0 -1
  1361. package/dist/theme.js.map +0 -1
  1362. package/dist/timezone-4vwX0BgA.js +0 -112
  1363. package/dist/timezone-4vwX0BgA.js.map +0 -1
  1364. package/dist/timezone-BxvQcqe1.cjs +0 -32
  1365. package/dist/timezone-BxvQcqe1.cjs.map +0 -1
  1366. package/dist/tooltip-CjdvBf4X.js +0 -119
  1367. package/dist/tooltip-CjdvBf4X.js.map +0 -1
  1368. package/dist/tooltip-ZtnGjoJd.cjs +0 -7
  1369. package/dist/tooltip-ZtnGjoJd.cjs.map +0 -1
  1370. package/dist/tree-CBEjV7jP.js +0 -65
  1371. package/dist/tree-CBEjV7jP.js.map +0 -1
  1372. package/dist/tree-DP5U00NA.cjs +0 -27
  1373. package/dist/tree-DP5U00NA.cjs.map +0 -1
  1374. package/dist/tslib.es6-DgOcxv4s.cjs +0 -2
  1375. package/dist/tslib.es6-DgOcxv4s.cjs.map +0 -1
  1376. package/dist/tslib.es6-ujVQHAQ4.js +0 -10
  1377. package/dist/tslib.es6-ujVQHAQ4.js.map +0 -1
  1378. package/dist/typewriter-C6kFjLcX.cjs +0 -124
  1379. package/dist/typewriter-C6kFjLcX.cjs.map +0 -1
  1380. package/dist/typewriter-Eo5qXoGC.js +0 -555
  1381. package/dist/typewriter-Eo5qXoGC.js.map +0 -1
  1382. package/dist/typewriter.cjs.map +0 -1
  1383. package/dist/typewriter.js.map +0 -1
  1384. package/dist/typography-C_1gdM2I.js +0 -264
  1385. package/dist/typography-C_1gdM2I.js.map +0 -1
  1386. package/dist/typography-DGyjlLCE.cjs +0 -243
  1387. package/dist/typography-DGyjlLCE.cjs.map +0 -1
  1388. package/dist/utils-C38P63L6.cjs +0 -2
  1389. package/dist/utils-C38P63L6.cjs.map +0 -1
  1390. package/dist/utils-CYOVFxSx.js +0 -150
  1391. package/dist/utils-CYOVFxSx.js.map +0 -1
  1392. package/dist/utils.cjs.map +0 -1
  1393. package/dist/utils.js.map +0 -1
  1394. package/types/src/animated-text/animated-text.d.ts +0 -30
  1395. package/types/src/animated-text/index.d.ts +0 -1
  1396. package/types/src/directives/height.d.ts +0 -20
@@ -1 +0,0 @@
1
- {"version":3,"file":"dialog-service-C86xTS8q.cjs","sources":["../src/dialog/dialog-events.ts","../src/dialog/dialog-service.ts"],"sourcesContent":["// Dialog discovery event constants\r\nexport const DialogWhereAreYouRicky = 'are-you-there-dialog'\r\nexport const DialogHereMorty = 'yes-dialog-here'\r\n\r\n// Event interfaces\r\nexport interface DialogWhereAreYouRickyEvent extends CustomEvent {\r\n detail: {\r\n uid: string\r\n }\r\n}\r\n\r\nexport interface DialogHereMortyEvent extends CustomEvent {\r\n detail: {\r\n dialog: any // Will be schmancy-dialog instance\r\n theme?: any // Will be schmancy-theme instance\r\n }\r\n}","import { render, TemplateResult } from 'lit'\nimport { defaultIfEmpty, forkJoin, fromEvent, map, of, Subject, 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","this","activeDialogs","dialogSubject","Subject","dismissSubject","setupDialogOpeningLogic","setupDialogDismissLogic","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","event","confirm","x","innerWidth","y","innerHeight","_s","$dialog","getInstance","ask","danger","component","close"],"mappings":"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"}
@@ -1,118 +0,0 @@
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
@@ -1 +0,0 @@
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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"}
@@ -1,48 +0,0 @@
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
@@ -1 +0,0 @@
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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"}
@@ -1,145 +0,0 @@
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
@@ -1 +0,0 @@
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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"}
@@ -1,21 +0,0 @@
1
- import { Observable as s, fromEvent as m, timer as u, race as p } from "rxjs";
2
- import { takeUntil as c, map as l, defaultIfEmpty as b } from "rxjs/operators";
3
- function w(t, e = 100) {
4
- const a = `${t}-where-are-you`, r = `${t}-here-i-am`;
5
- return new s((o) => {
6
- const i = m(window, r).pipe(c(u(e)), l((n) => n.detail.component), b(null)).subscribe((n) => {
7
- o.next(n), o.complete();
8
- });
9
- return window.dispatchEvent(new CustomEvent(a, { bubbles: !0, composed: !0 })), () => i.unsubscribe();
10
- });
11
- }
12
- function h(...t) {
13
- return t.length === 0 ? new s((e) => {
14
- e.next(null), e.complete();
15
- }) : p(...t.map((e) => w(e)));
16
- }
17
- export {
18
- h as a,
19
- w as d
20
- };
21
- //# sourceMappingURL=discovery.service-BbYjU5x8.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"discovery.service-BbYjU5x8.js","sources":["../src/discovery/discovery.service.ts"],"sourcesContent":["import { fromEvent, timer, race, Observable } from 'rxjs'\r\nimport { takeUntil, map, defaultIfEmpty } from 'rxjs/operators'\r\n\r\n/**\r\n * Discover a component in the DOM using the WhereAreYou/HereIAm pattern.\r\n *\r\n * @param componentTag - The tag name of the component to discover (e.g., 'schmancy-navigation-rail')\r\n * @param timeout - How long to wait for a response in milliseconds (default: 100)\r\n * @returns Observable that emits the discovered component or null if not found\r\n */\r\nexport function discoverComponent<T extends HTMLElement>(\r\n\tcomponentTag: string,\r\n\ttimeout = 100,\r\n): Observable<T | null> {\r\n\tconst whereAreYouEvent = `${componentTag}-where-are-you`\r\n\tconst hereIAmEvent = `${componentTag}-here-i-am`\r\n\r\n\treturn new Observable(subscriber => {\r\n\t\t// Listen for response first (you were right!)\r\n\t\tconst subscription = fromEvent<CustomEvent>(window, hereIAmEvent)\r\n\t\t\t.pipe(\r\n\t\t\t\ttakeUntil(timer(timeout)),\r\n\t\t\t\tmap(e => e.detail.component as T),\r\n\t\t\t\tdefaultIfEmpty(null),\r\n\t\t\t)\r\n\t\t\t.subscribe(component => {\r\n\t\t\t\tsubscriber.next(component)\r\n\t\t\t\tsubscriber.complete()\r\n\t\t\t})\r\n\r\n\t\t// Then dispatch discovery request\r\n\t\twindow.dispatchEvent(\r\n\t\t\tnew CustomEvent(whereAreYouEvent, {\r\n\t\t\t\tbubbles: true,\r\n\t\t\t\tcomposed: true,\r\n\t\t\t}),\r\n\t\t)\r\n\r\n\t\t// Return cleanup function\r\n\t\treturn () => subscription.unsubscribe()\r\n\t})\r\n}\r\n\r\n/**\r\n * Discover any of multiple components using race.\r\n * Returns the first component that responds.\r\n *\r\n * @param componentTags - Array of component tag names to discover\r\n * @returns Observable that emits the first discovered component or null if none found\r\n */\r\nexport function discoverAnyComponent<T extends HTMLElement>(...componentTags: string[]): Observable<T | null> {\r\n\tif (componentTags.length === 0) {\r\n\t\treturn new Observable(subscriber => {\r\n\t\t\tsubscriber.next(null)\r\n\t\t\tsubscriber.complete()\r\n\t\t})\r\n\t}\r\n\r\n\treturn race(...componentTags.map(tag => discoverComponent<T>(tag)))\r\n}"],"names":["discoverComponent","componentTag","timeout","whereAreYouEvent","hereIAmEvent","Observable","subscriber","subscription","fromEvent","window","pipe","takeUntil","timer","map","e","detail","component","defaultIfEmpty","subscribe","next","complete","dispatchEvent","CustomEvent","bubbles","composed","unsubscribe","discoverAnyComponent","componentTags","length","race","tag"],"mappings":";;AAUO,SAASA,EACfC,GACAC,IAAU,KAAA;AAEV,QAAMC,IAAmB,GAAGF,CAAAA,kBACtBG,IAAe,GAAGH,CAAAA;AAExB,SAAO,IAAII,EAAWC,CAAAA,MAAAA;AAErB,UAAMC,IAAeC,EAAuBC,QAAQL,GAClDM,KACAC,EAAUC,EAAMV,CAAAA,CAAAA,GAChBW,EAAIC,CAAAA,MAAKA,EAAEC,OAAOC,SAAAA,GAClBC,EAAe,OAEfC,UAAUF,OAAAA;AACVV,MAAAA,EAAWa,KAAKH,IAChBV,EAAWc,SAAAA;AAAAA,IAAAA,CAAAA;AAYb,WARAX,OAAOY,cACN,IAAIC,YAAYnB,GAAkB,EACjCoB,SAAAA,IACAC,UAAAA,GAAU,CAAA,CAAA,GAKL,MAAMjB,EAAakB,YAAAA;AAAAA,EAAAA,CAAAA;AAE5B;AASO,SAASC,KAA+CC,GAAAA;AAC9D,SAAIA,EAAcC,WAAW,IACrB,IAAIvB,EAAWC,CAAAA,MAAAA;AACrBA,IAAAA,EAAWa,KAAK,IAAA,GAChBb,EAAWc,SAAAA;AAAAA,EAAAA,CAAAA,IAINS,KAAQF,EAAcd,WAAWb,EAAqB8B,CAAAA,CAAAA,CAAAA;AAC9D;"}
@@ -1,2 +0,0 @@
1
- "use strict";const t=require("rxjs"),o=require("rxjs/operators");function u(n,e=100){const i=`${n}-where-are-you`,c=`${n}-here-i-am`;return new t.Observable(s=>{const l=t.fromEvent(window,c).pipe(o.takeUntil(t.timer(e)),o.map(r=>r.detail.component),o.defaultIfEmpty(null)).subscribe(r=>{s.next(r),s.complete()});return window.dispatchEvent(new CustomEvent(i,{bubbles:!0,composed:!0})),()=>l.unsubscribe()})}exports.discoverAnyComponent=function(...n){return n.length===0?new t.Observable(e=>{e.next(null),e.complete()}):t.race(...n.map(e=>u(e)))},exports.discoverComponent=u;
2
- //# sourceMappingURL=discovery.service-BpGCuXPd.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"discovery.service-BpGCuXPd.cjs","sources":["../src/discovery/discovery.service.ts"],"sourcesContent":["import { fromEvent, timer, race, Observable } from 'rxjs'\r\nimport { takeUntil, map, defaultIfEmpty } from 'rxjs/operators'\r\n\r\n/**\r\n * Discover a component in the DOM using the WhereAreYou/HereIAm pattern.\r\n *\r\n * @param componentTag - The tag name of the component to discover (e.g., 'schmancy-navigation-rail')\r\n * @param timeout - How long to wait for a response in milliseconds (default: 100)\r\n * @returns Observable that emits the discovered component or null if not found\r\n */\r\nexport function discoverComponent<T extends HTMLElement>(\r\n\tcomponentTag: string,\r\n\ttimeout = 100,\r\n): Observable<T | null> {\r\n\tconst whereAreYouEvent = `${componentTag}-where-are-you`\r\n\tconst hereIAmEvent = `${componentTag}-here-i-am`\r\n\r\n\treturn new Observable(subscriber => {\r\n\t\t// Listen for response first (you were right!)\r\n\t\tconst subscription = fromEvent<CustomEvent>(window, hereIAmEvent)\r\n\t\t\t.pipe(\r\n\t\t\t\ttakeUntil(timer(timeout)),\r\n\t\t\t\tmap(e => e.detail.component as T),\r\n\t\t\t\tdefaultIfEmpty(null),\r\n\t\t\t)\r\n\t\t\t.subscribe(component => {\r\n\t\t\t\tsubscriber.next(component)\r\n\t\t\t\tsubscriber.complete()\r\n\t\t\t})\r\n\r\n\t\t// Then dispatch discovery request\r\n\t\twindow.dispatchEvent(\r\n\t\t\tnew CustomEvent(whereAreYouEvent, {\r\n\t\t\t\tbubbles: true,\r\n\t\t\t\tcomposed: true,\r\n\t\t\t}),\r\n\t\t)\r\n\r\n\t\t// Return cleanup function\r\n\t\treturn () => subscription.unsubscribe()\r\n\t})\r\n}\r\n\r\n/**\r\n * Discover any of multiple components using race.\r\n * Returns the first component that responds.\r\n *\r\n * @param componentTags - Array of component tag names to discover\r\n * @returns Observable that emits the first discovered component or null if none found\r\n */\r\nexport function discoverAnyComponent<T extends HTMLElement>(...componentTags: string[]): Observable<T | null> {\r\n\tif (componentTags.length === 0) {\r\n\t\treturn new Observable(subscriber => {\r\n\t\t\tsubscriber.next(null)\r\n\t\t\tsubscriber.complete()\r\n\t\t})\r\n\t}\r\n\r\n\treturn race(...componentTags.map(tag => discoverComponent<T>(tag)))\r\n}"],"names":["discoverComponent","componentTag","timeout","whereAreYouEvent","hereIAmEvent","Observable","subscriber","subscription","fromEvent","window","pipe","takeUntil","timer","map","e","detail","component","defaultIfEmpty","subscribe","next","complete","dispatchEvent","CustomEvent","bubbles","composed","unsubscribe","componentTags","length","race","tag"],"mappings":"iEAUO,SAASA,EACfC,EACAC,EAAU,IAAA,CAEV,MAAMC,EAAmB,GAAGF,CAAAA,iBACtBG,EAAe,GAAGH,CAAAA,aAExB,OAAO,IAAII,EAAAA,WAAWC,GAAAA,CAErB,MAAMC,EAAeC,EAAAA,UAAuBC,OAAQL,CAAAA,EAClDM,KACAC,YAAUC,EAAAA,MAAMV,CAAAA,CAAAA,EAChBW,EAAAA,IAAIC,GAAKA,EAAEC,OAAOC,SAAAA,EAClBC,EAAAA,eAAe,IAAA,CAAA,EAEfC,UAAUF,IACVV,EAAWa,KAAKH,GAChBV,EAAWc,SAAAA,CAAAA,CAAAA,EAYb,OARAX,OAAOY,cACN,IAAIC,YAAYnB,EAAkB,CACjCoB,QAAAA,GACAC,WAAU,CAAA,CAAA,EAKL,IAAMjB,EAAakB,YAAAA,CAAAA,CAAAA,CAE5B,8BASO,YAAwDC,GAC9D,OAAIA,EAAcC,SAAW,EACrB,IAAItB,EAAAA,WAAWC,GAAAA,CACrBA,EAAWa,KAAK,IAAA,EAChBb,EAAWc,SAAAA,CAAAA,CAAAA,EAINQ,EAAAA,QAAQF,EAAcb,OAAWb,EAAqB6B,CAAAA,CAAAA,CAAAA,CAC9D"}