@mhmo91/schmancy 0.8.4 → 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
@@ -0,0 +1,1071 @@
1
+ import { $LitElement } from '@mixins/index'
2
+ import { css, html } from 'lit'
3
+ import { customElement, property, state } from 'lit/decorators.js'
4
+ import { createRef, ref } from 'lit/directives/ref.js'
5
+ import { repeat } from 'lit/directives/repeat.js'
6
+ import { when } from 'lit/directives/when.js'
7
+ import { fromEvent, takeUntil } from 'rxjs'
8
+ import { $dialog } from '../dialog'
9
+ import { $notify } from '../notification'
10
+ import { sheet } from '../sheet/sheet.service'
11
+ import './email-layout-selector'
12
+ import { SchmancyEmailTemplatePicker } from './email-template-picker'
13
+ import type { EmailAttachment, EmailComposeConfig, EmailTemplate } from './types'
14
+
15
+ /**
16
+ * Email editor component with rich text formatting and file attachments
17
+ *
18
+ * Features:
19
+ * - Markdown formatting toolbar
20
+ * - Image upload and insertion
21
+ * - File attachments with drag & drop
22
+ * - Layout templates (columns, sidebars, image rows)
23
+ * - Real-time character/word count
24
+ *
25
+ * @example
26
+ * ```html
27
+ * <schmancy-email-editor
28
+ * .subject="Welcome to our service"
29
+ * .body="Email content..."
30
+ * @editor-change=${handleChange}
31
+ * ></schmancy-email-editor>
32
+ * ```
33
+ */
34
+ @customElement('schmancy-email-editor')
35
+ export class SchmancyEmailEditor extends $LitElement(css`
36
+ :host {
37
+ display: block;
38
+ height: 100%;
39
+ }
40
+ `) {
41
+ /** Email subject */
42
+ @property({ type: String }) subject = ''
43
+
44
+ /** Email body content (markdown) */
45
+ @property({ type: String }) body = ''
46
+
47
+
48
+ /** Disable all interactions */
49
+ @property({ type: Boolean }) disabled = false
50
+
51
+ /** Email attachments */
52
+ @property({ type: Array }) attachments: EmailAttachment[] = []
53
+
54
+ /** Configuration for upload handlers */
55
+ @property({ type: Object }) config: EmailComposeConfig = {}
56
+
57
+ /** Available email templates */
58
+ @property({ type: Array }) templates: EmailTemplate[] = this.getDefaultTemplates()
59
+
60
+ /** Internal state */
61
+ @state() private dragOver = false
62
+ @state() private isUploading = false
63
+
64
+ /** Element references */
65
+ private subjectInputRef = createRef<HTMLInputElement>()
66
+ private bodyTextAreaRef = createRef<any>()
67
+ private fileInputRef = createRef<HTMLInputElement>()
68
+ private imageInputRef = createRef<HTMLInputElement>()
69
+
70
+ connectedCallback() {
71
+ super.connectedCallback()
72
+ this.addEventListeners()
73
+ }
74
+
75
+ disconnectedCallback() {
76
+ super.disconnectedCallback()
77
+ // Event listeners are automatically cleaned up via takeUntil(this.disconnecting)
78
+ }
79
+
80
+ /** Get default email templates */
81
+ private getDefaultTemplates(): EmailTemplate[] {
82
+ return [
83
+ {
84
+ id: 'welcome',
85
+ name: 'Welcome Email',
86
+ subject: 'Welcome to Our Community! 🌟',
87
+ description: 'A warm welcome message for new users',
88
+ category: 'onboarding',
89
+ body: `# Welcome to Our Community!
90
+
91
+ We're thrilled to have you on board. Thank you for joining us on this journey.
92
+
93
+ ## What's Next?
94
+
95
+ * **Explore** your dashboard and discover all the features
96
+ * **Connect** with other community members
97
+ * **Get support** whenever you need it - we're here to help
98
+
99
+ ---
100
+
101
+ *Need assistance? Simply reply to this email and we'll get back to you within 24 hours.*
102
+
103
+ Best regards,
104
+ The Team`
105
+ },
106
+ {
107
+ id: 'newsletter',
108
+ name: 'Newsletter',
109
+ subject: 'Weekly Insights & Updates',
110
+ description: 'Regular newsletter template with updates and insights',
111
+ category: 'communication',
112
+ body: `# This Week's Highlights
113
+
114
+ ## Featured Story
115
+
116
+ **[Article Title]**
117
+ Brief description of the main story or update that you want to highlight this week.
118
+
119
+ [Read More](https://example.com)
120
+
121
+ ## Quick Updates
122
+
123
+ * **Update 1**: Brief description of an important update
124
+ * **Update 2**: Another noteworthy development
125
+ * **Update 3**: Additional news worth sharing
126
+
127
+ ## Upcoming Events
128
+
129
+ **[Event Name]** - *Date*
130
+ Short description of the upcoming event.
131
+
132
+ ---
133
+
134
+ *Thanks for reading! Forward this to a friend who might enjoy it.*
135
+
136
+ Until next week,
137
+ The Team`
138
+ },
139
+ {
140
+ id: 'product-launch',
141
+ name: 'Product Launch',
142
+ subject: 'Introducing Our Latest Innovation 🚀',
143
+ description: 'Announce new products or features',
144
+ category: 'marketing',
145
+ body: `# Something Amazing is Here
146
+
147
+ We've been working hard behind the scenes, and today we're excited to introduce our latest creation.
148
+
149
+ ## Key Features
150
+
151
+ * **Feature 1**: Benefit that matters to your users
152
+ * **Feature 2**: Another compelling capability
153
+ * **Feature 3**: The feature that sets you apart
154
+
155
+ ## Early Access
156
+
157
+ As a valued member, you get **exclusive early access** starting today.
158
+
159
+ [Get Started Now](https://example.com)
160
+
161
+ ---
162
+
163
+ *Questions? We'd love to hear from you. Just hit reply!*
164
+
165
+ Best,
166
+ The Product Team`
167
+ },
168
+ {
169
+ id: 'event-invitation',
170
+ name: 'Event Invitation',
171
+ subject: 'You\'re Invited: [Event Name]',
172
+ description: 'Professional event invitation template',
173
+ category: 'events',
174
+ body: `# You're Invited!
175
+
176
+ ## [Event Name]
177
+
178
+ **When**: [Date & Time]
179
+ **Where**: [Location or Virtual Link]
180
+ **Duration**: [Duration]
181
+
182
+ Join us for an exclusive gathering where we'll explore [brief event description].
183
+
184
+ ## What to Expect
185
+
186
+ * **Networking** with industry professionals
187
+ * **Insights** from leading experts
188
+ * **Interactive** sessions and discussions
189
+
190
+ ## RSVP Required
191
+
192
+ Space is limited, so please confirm your attendance by [RSVP Date].
193
+
194
+ [Confirm Attendance](https://example.com)
195
+
196
+ ---
197
+
198
+ *Can't make it? Let us know and we'll share the key highlights with you.*
199
+
200
+ Looking forward to seeing you there,
201
+ The Events Team`
202
+ },
203
+ {
204
+ id: 'thank-you',
205
+ name: 'Thank You',
206
+ subject: 'Thank You - It Means Everything',
207
+ description: 'Express gratitude to customers or supporters',
208
+ category: 'appreciation',
209
+ body: `# Thank You
210
+
211
+ Your support means the world to us.
212
+
213
+ Whether you've been with us from the beginning or just joined our community, we want you to know how much we appreciate you.
214
+
215
+ ## Because of You
216
+
217
+ * We've been able to improve our service
218
+ * Our community has grown stronger
219
+ * We've achieved milestones we never thought possible
220
+
221
+ ## What's Next
222
+
223
+ We're committed to continuing to earn your trust and providing even more value in the coming months.
224
+
225
+ ---
226
+
227
+ *Your feedback shapes everything we do. Reply anytime with thoughts or suggestions.*
228
+
229
+ With genuine gratitude,
230
+ The Team`
231
+ },
232
+ {
233
+ id: 'feedback-request',
234
+ name: 'Feedback Request',
235
+ subject: 'Your Opinion Matters - 2 Minutes?',
236
+ description: 'Request feedback or reviews from users',
237
+ category: 'feedback',
238
+ body: `# We'd Love Your Feedback
239
+
240
+ Your experience matters to us, and we're always looking for ways to improve.
241
+
242
+ ## Quick Favor?
243
+
244
+ Could you spare **2 minutes** to share your thoughts? Your honest feedback helps us serve you better.
245
+
246
+ [Share Your Feedback](https://example.com)
247
+
248
+ ## What We're Asking
249
+
250
+ * How has your experience been so far?
251
+ * What's working well for you?
252
+ * What could we improve?
253
+
254
+ ## Thank You Gift
255
+
256
+ As a small token of appreciation, everyone who completes our feedback form receives [incentive].
257
+
258
+ ---
259
+
260
+ *Every response is read personally by our team. We take your input seriously.*
261
+
262
+ Thanks in advance,
263
+ The Team`
264
+ },
265
+ {
266
+ id: 'password-reset',
267
+ name: 'Password Reset',
268
+ subject: 'Reset Your Password - Action Required',
269
+ description: 'Secure password reset instructions',
270
+ category: 'security',
271
+ body: `# Password Reset Request
272
+
273
+ We received a request to reset the password for your account.
274
+
275
+ ## Reset Your Password
276
+
277
+ Click the button below to create a new password. This link will expire in **24 hours** for your security.
278
+
279
+ [Reset Password](https://example.com/reset)
280
+
281
+ ## Didn't Request This?
282
+
283
+ If you didn't request a password reset, please ignore this email. Your account remains secure.
284
+
285
+ ## Need Help?
286
+
287
+ If you're having trouble with the reset process, contact our support team and we'll assist you right away.
288
+
289
+ ---
290
+
291
+ *For security reasons, this link can only be used once and expires in 24 hours.*
292
+
293
+ Best regards,
294
+ Security Team`
295
+ },
296
+ {
297
+ id: 'order-confirmation',
298
+ name: 'Order Confirmation',
299
+ subject: 'Order Confirmed - #[ORDER-NUMBER]',
300
+ description: 'Professional order confirmation template',
301
+ category: 'commerce',
302
+ body: `# Order Confirmation
303
+
304
+ Thanks for your order! We've received your payment and are preparing your items for shipment.
305
+
306
+ ## Order Details
307
+
308
+ **Order Number**: #[ORDER-NUMBER]
309
+ **Order Date**: [DATE]
310
+ **Total**: $[AMOUNT]
311
+
312
+ ## Items Ordered
313
+
314
+ * **[Item 1]** - Quantity: [QTY] - $[PRICE]
315
+ * **[Item 2]** - Quantity: [QTY] - $[PRICE]
316
+
317
+ ## Shipping Information
318
+
319
+ **Address**: [SHIPPING ADDRESS]
320
+ **Method**: [SHIPPING METHOD]
321
+ **Estimated Delivery**: [DELIVERY DATE]
322
+
323
+ ## Next Steps
324
+
325
+ You'll receive a tracking number via email once your order ships (usually within 1-2 business days).
326
+
327
+ [Track Your Order](https://example.com/track)
328
+
329
+ ---
330
+
331
+ *Questions about your order? Reply to this email or contact our support team.*
332
+
333
+ Thank you for your business,
334
+ The Fulfillment Team`
335
+ }
336
+ ]
337
+ }
338
+
339
+ private addEventListeners() {
340
+ // Keyboard events
341
+ fromEvent(this, 'keydown').pipe(
342
+ takeUntil(this.disconnecting)
343
+ ).subscribe(this.handleKeyDown)
344
+
345
+ // Document paste events
346
+ fromEvent(document, 'paste').pipe(
347
+ takeUntil(this.disconnecting)
348
+ ).subscribe(this.handlePaste)
349
+
350
+ // Document drag events
351
+ fromEvent(document, 'dragenter').pipe(
352
+ takeUntil(this.disconnecting)
353
+ ).subscribe(this.handleDragEnter)
354
+
355
+ fromEvent(document, 'dragleave').pipe(
356
+ takeUntil(this.disconnecting)
357
+ ).subscribe(this.handleDocumentDragLeave)
358
+
359
+ fromEvent(document, 'drop').pipe(
360
+ takeUntil(this.disconnecting)
361
+ ).subscribe(this.handleDocumentDrop)
362
+ }
363
+
364
+ /** Handle keyboard shortcuts and tab indentation */
365
+ private handleKeyDown = (e: KeyboardEvent) => {
366
+ if (this.disabled) return
367
+
368
+ // Tab key inserts 2 spaces instead of changing focus
369
+ const textarea = this.bodyTextAreaRef.value?.shadowRoot?.querySelector('textarea')
370
+ if (e.key === 'Tab' && e.target === textarea) {
371
+ e.preventDefault()
372
+ this.insertAtCursor(' ')
373
+ }
374
+ }
375
+
376
+ /** Handle paste events for image pasting */
377
+ private handlePaste = (event: ClipboardEvent) => {
378
+ const textarea = this.bodyTextAreaRef.value?.shadowRoot?.querySelector('textarea')
379
+ if (this.disabled || document.activeElement !== textarea) return
380
+
381
+ const items = event.clipboardData?.items
382
+ if (!items) return
383
+
384
+ for (let i = 0; i < items.length; i++) {
385
+ const item = items[i]
386
+ if (item.type.indexOf('image') !== -1) {
387
+ event.preventDefault()
388
+ const file = item.getAsFile()
389
+ if (file) {
390
+ this.uploadImage(file)
391
+ }
392
+ break
393
+ }
394
+ }
395
+ }
396
+
397
+ /** Handle subject input changes */
398
+ private handleSubjectChange = (event: Event) => {
399
+ const input = event.target as HTMLInputElement
400
+ this.subject = input.value
401
+ this.dispatchChange()
402
+ }
403
+
404
+ /** Handle body textarea changes */
405
+ private handleBodyChange = (event: any) => {
406
+ this.body = event.detail.value
407
+ this.dispatchChange()
408
+ }
409
+
410
+ /** Dispatch composer change event */
411
+ private dispatchChange = () => {
412
+ this.dispatchEvent(new CustomEvent('editor-change', {
413
+ detail: {
414
+ subject: this.subject,
415
+ body: this.body,
416
+ attachments: this.attachments
417
+ },
418
+ bubbles: true,
419
+ composed: true
420
+ }))
421
+ }
422
+
423
+ /** Insert text at cursor position */
424
+ private insertAtCursor(text: string, selectText?: string) {
425
+ if (!this.bodyTextAreaRef.value) return
426
+
427
+ // For schmancy-textarea, access the internal textarea
428
+ const textarea = this.bodyTextAreaRef.value.shadowRoot?.querySelector('textarea')
429
+ if (!textarea) return
430
+
431
+ const start = textarea.selectionStart
432
+ const end = textarea.selectionEnd
433
+
434
+ const newValue =
435
+ textarea.value.substring(0, start) +
436
+ text +
437
+ textarea.value.substring(end)
438
+
439
+ this.body = newValue
440
+ this.dispatchChange()
441
+
442
+ this.updateComplete.then(() => {
443
+ const updatedTextarea = this.bodyTextAreaRef.value?.shadowRoot?.querySelector('textarea')
444
+ if (updatedTextarea) {
445
+ updatedTextarea.focus()
446
+ if (selectText) {
447
+ const selectStart = start + text.indexOf(selectText)
448
+ const selectEnd = selectStart + selectText.length
449
+ updatedTextarea.setSelectionRange(selectStart, selectEnd)
450
+ } else {
451
+ updatedTextarea.setSelectionRange(start + text.length, start + text.length)
452
+ }
453
+ }
454
+ })
455
+ }
456
+
457
+ /** Wrap selected text with formatting */
458
+ private wrapSelection(before: string, after: string, placeholder: string) {
459
+ if (!this.bodyTextAreaRef.value) return
460
+
461
+ // For schmancy-textarea, access the internal textarea
462
+ const textarea = this.bodyTextAreaRef.value.shadowRoot?.querySelector('textarea')
463
+ if (!textarea) return
464
+
465
+ const start = textarea.selectionStart
466
+ const end = textarea.selectionEnd
467
+ const selectedText = textarea.value.substring(start, end)
468
+
469
+ const textToWrap = selectedText || placeholder
470
+ const newText = before + textToWrap + after
471
+
472
+ const newValue =
473
+ textarea.value.substring(0, start) +
474
+ newText +
475
+ textarea.value.substring(end)
476
+
477
+ this.body = newValue
478
+ this.dispatchChange()
479
+
480
+ this.updateComplete.then(() => {
481
+ const updatedTextarea = this.bodyTextAreaRef.value?.shadowRoot?.querySelector('textarea')
482
+ if (updatedTextarea) {
483
+ updatedTextarea.focus()
484
+ if (!selectedText) {
485
+ // Select the placeholder text
486
+ updatedTextarea.setSelectionRange(start + before.length, start + before.length + placeholder.length)
487
+ } else {
488
+ // Position cursor at the end
489
+ updatedTextarea.setSelectionRange(start + newText.length, start + newText.length)
490
+ }
491
+ }
492
+ })
493
+ }
494
+
495
+ /** Open layout selection dialog */
496
+ private openLayoutDialog = () => {
497
+ $dialog.component(html`
498
+ <schmancy-email-layout-selector
499
+ @layout-select=${(e: CustomEvent) => {
500
+ this.applyLayout(e.detail.layout)
501
+ $dialog.close()
502
+ }}
503
+ ></schmancy-email-layout-selector>
504
+ `)
505
+ }
506
+
507
+ /** Open template picker */
508
+ private openTemplatePicker = () => {
509
+ const picker = new SchmancyEmailTemplatePicker()
510
+ picker.templates = this.templates
511
+
512
+ // Listen for template selection using RxJS
513
+ fromEvent(picker, 'template-selected').pipe(
514
+ takeUntil(this.disconnecting)
515
+ ).subscribe(this.handleTemplateSelected)
516
+
517
+ sheet.open({
518
+ component: picker
519
+ })
520
+ }
521
+
522
+ /** Handle template selection */
523
+ private handleTemplateSelected = (e: CustomEvent) => {
524
+ const template: EmailTemplate = e.detail
525
+ this.subject = template.subject
526
+ this.body = template.body
527
+ this.dispatchChange()
528
+ $notify.success(`Template "${template.name}" applied successfully`)
529
+ }
530
+
531
+ /** Apply layout template to content */
532
+ private applyLayout = (layoutType: string) => {
533
+ const layouts: Record<string, string> = {
534
+ 'columns-2': `
535
+ :::layout columns-2
536
+ <div class="column">
537
+ ![Left Photo](https://via.placeholder.com/400x300?text=Replace+with+your+photo){height=300px}
538
+
539
+ **Photo Title**
540
+
541
+ Replace the placeholder image above with your own photo. The height=300px ensures both images have equal height while width adjusts automatically.
542
+ </div>
543
+
544
+ <div class="column">
545
+ ![Right Photo](https://via.placeholder.com/400x300?text=Replace+with+your+photo){height=300px}
546
+
547
+ **Photo Title**
548
+
549
+ Use the same height value (300px) for both images to keep them aligned perfectly side by side.
550
+ </div>
551
+ :::
552
+ `,
553
+ 'columns-3': `
554
+ :::layout columns-3
555
+ <div class="column">
556
+ ![Photo 1](https://via.placeholder.com/300x200?text=Photo+1){height=200px}
557
+
558
+ **Item Title**
559
+
560
+ Brief description or caption for this item.
561
+ </div>
562
+
563
+ <div class="column">
564
+ ![Photo 2](https://via.placeholder.com/300x200?text=Photo+2){height=200px}
565
+
566
+ **Item Title**
567
+
568
+ Brief description or caption for this item.
569
+ </div>
570
+
571
+ <div class="column">
572
+ ![Photo 3](https://via.placeholder.com/300x200?text=Photo+3){height=200px}
573
+
574
+ **Item Title**
575
+
576
+ Brief description or caption for this item.
577
+ </div>
578
+ :::
579
+ `,
580
+ 'sidebar-left': `
581
+ :::layout sidebar-left
582
+ <div class="sidebar">
583
+ **Sidebar Content**
584
+
585
+ * Navigation item 1
586
+ * Navigation item 2
587
+ * Navigation item 3
588
+ </div>
589
+
590
+ <div class="main">
591
+ **Main Content Area**
592
+
593
+ Your primary content goes here. This area takes up most of the width while the sidebar provides supplementary information or navigation.
594
+ </div>
595
+ :::
596
+ `,
597
+ 'sidebar-right': `
598
+ :::layout sidebar-right
599
+ <div class="main">
600
+ **Main Content Area**
601
+
602
+ Your primary content goes here. This area takes up most of the width while the sidebar provides supplementary information or navigation.
603
+ </div>
604
+
605
+ <div class="sidebar">
606
+ **Sidebar Content**
607
+
608
+ * Quick links
609
+ * Related info
610
+ * Contact details
611
+ </div>
612
+ :::
613
+ `,
614
+ 'image-row': `
615
+ :::layout image-row
616
+ <div class="image">
617
+ ![Gallery Image 1](https://via.placeholder.com/400x250?text=Gallery+Image+1){height=250px}
618
+ </div>
619
+
620
+ <div class="image">
621
+ ![Gallery Image 2](https://via.placeholder.com/400x250?text=Gallery+Image+2){height=250px}
622
+ </div>
623
+
624
+ <div class="image">
625
+ ![Gallery Image 3](https://via.placeholder.com/400x250?text=Gallery+Image+3){height=250px}
626
+ </div>
627
+ :::
628
+ `
629
+ }
630
+
631
+ const layoutMarkdown = layouts[layoutType]
632
+ if (layoutMarkdown) {
633
+ this.insertAtCursor(layoutMarkdown)
634
+ }
635
+ }
636
+
637
+ /** Upload image with configurable handler */
638
+ private uploadImage = async (file: File) => {
639
+ if (!file.type.startsWith('image/')) {
640
+ $notify.error(`File "${file.name}" is not an image`)
641
+ return
642
+ }
643
+
644
+ // Check file size (max 10MB for images)
645
+ const maxSize = 10 * 1024 * 1024
646
+ if (file.size > maxSize) {
647
+ $notify.error(`Image "${file.name}" is too large. Maximum size is 10MB.`)
648
+ return
649
+ }
650
+
651
+ // Show loading state
652
+ this.isUploading = true
653
+
654
+ try {
655
+ let url: string
656
+
657
+ if (this.config.imageUploadHandler) {
658
+ // Use custom upload handler
659
+ url = await this.config.imageUploadHandler(file)
660
+ } else if (this.config.uploadHandler) {
661
+ // Use generic upload handler
662
+ url = await this.config.uploadHandler(file)
663
+ } else {
664
+ // Fallback to data URL for preview
665
+ url = await this.createDataUrl(file)
666
+ $notify.warning('No upload handler configured. Using local preview.')
667
+ }
668
+
669
+ // Get image dimensions
670
+ const dimensions = await this.getImageDimensions(file)
671
+
672
+ // Insert markdown at cursor position
673
+ this.insertImageMarkdown(url, file.name, dimensions.width, dimensions.height)
674
+
675
+ $notify.success('Image uploaded successfully')
676
+ } catch (error) {
677
+ console.error('Upload failed:', error)
678
+ $notify.error('Failed to upload image')
679
+ } finally {
680
+ this.isUploading = false
681
+ }
682
+ }
683
+
684
+ /** Create data URL for local preview */
685
+ private createDataUrl = (file: File): Promise<string> => {
686
+ return new Promise((resolve, reject) => {
687
+ const reader = new FileReader()
688
+ reader.onload = () => resolve(reader.result as string)
689
+ reader.onerror = reject
690
+ reader.readAsDataURL(file)
691
+ })
692
+ }
693
+
694
+ /** Get image dimensions */
695
+ private getImageDimensions = (file: File): Promise<{width: number, height: number}> => {
696
+ return new Promise((resolve) => {
697
+ const img = new Image()
698
+ img.onload = () => {
699
+ resolve({ width: img.width, height: img.height })
700
+ URL.revokeObjectURL(img.src)
701
+ }
702
+ img.onerror = () => {
703
+ resolve({ width: 400, height: 300 }) // Default dimensions
704
+ URL.revokeObjectURL(img.src)
705
+ }
706
+ img.src = URL.createObjectURL(file)
707
+ })
708
+ }
709
+
710
+ /** Insert image markdown at cursor */
711
+ private insertImageMarkdown = (url: string, alt: string, width: number, _height: number) => {
712
+ const textarea = this.bodyTextAreaRef.value?.shadowRoot?.querySelector('textarea')
713
+ if (!textarea) return
714
+
715
+ const markdown = `![${alt}](${url}){width=${Math.min(width, 600)}px height=auto}`
716
+
717
+ const start = textarea.selectionStart
718
+ const end = textarea.selectionEnd
719
+ const newValue =
720
+ this.body.substring(0, start) +
721
+ markdown +
722
+ this.body.substring(end)
723
+
724
+ this.body = newValue
725
+ this.dispatchChange()
726
+
727
+ // Set cursor after inserted markdown
728
+ this.updateComplete.then(() => {
729
+ const updatedTextarea = this.bodyTextAreaRef.value?.shadowRoot?.querySelector('textarea')
730
+ if (updatedTextarea) {
731
+ const newPosition = start + markdown.length
732
+ updatedTextarea.setSelectionRange(newPosition, newPosition)
733
+ updatedTextarea.focus()
734
+ }
735
+ })
736
+ }
737
+
738
+
739
+ /** Handle file input changes */
740
+ private handleFileChange = (event: Event) => {
741
+ const input = event.target as HTMLInputElement
742
+ const files = input.files
743
+ if (files) {
744
+ for (let i = 0; i < files.length; i++) {
745
+ const file = files[i]
746
+ if (file.type.startsWith('image/')) {
747
+ this.uploadImage(file)
748
+ } else {
749
+ this.addFile(file)
750
+ }
751
+ }
752
+ }
753
+ input.value = ''
754
+ }
755
+
756
+ /** Handle image selection */
757
+ private handleImageSelect = (event: Event) => {
758
+ const input = event.target as HTMLInputElement
759
+ const file = input.files?.[0]
760
+ if (file && file.type.startsWith('image/')) {
761
+ this.uploadImage(file)
762
+ }
763
+ input.value = '' // Reset for next selection
764
+ }
765
+
766
+ /** Drag and drop handlers */
767
+ private handleDrop = (event: DragEvent) => {
768
+ event.preventDefault()
769
+ this.dragOver = false
770
+
771
+ const files = event.dataTransfer?.files
772
+ if (files) {
773
+ for (let i = 0; i < files.length; i++) {
774
+ const file = files[i]
775
+ if (file.type.startsWith('image/')) {
776
+ this.uploadImage(file)
777
+ } else {
778
+ this.addFile(file)
779
+ }
780
+ }
781
+ }
782
+ }
783
+
784
+ private handleDragEnter = (event: DragEvent) => {
785
+ event.preventDefault()
786
+ this.dragOver = true
787
+ }
788
+
789
+ private handleDocumentDragLeave = (event: DragEvent) => {
790
+ event.preventDefault()
791
+ this.dragOver = false
792
+ }
793
+
794
+ private handleDocumentDrop = (event: DragEvent) => {
795
+ event.preventDefault()
796
+ this.dragOver = false
797
+ }
798
+
799
+ private handleDragOver = (event: DragEvent) => {
800
+ event.preventDefault()
801
+ }
802
+
803
+ private handleDragLeave = (event: DragEvent) => {
804
+ event.preventDefault()
805
+ // Let document handler manage this
806
+ }
807
+
808
+ /** Add file as attachment */
809
+ private addFile = (file: File) => {
810
+ // Check file size (max 10MB)
811
+ const maxSize = 10 * 1024 * 1024
812
+ if (file.size > maxSize) {
813
+ $notify.error(`File "${file.name}" is too large. Maximum size is 10MB.`)
814
+ return
815
+ }
816
+
817
+ // Check if file already exists
818
+ const exists = this.attachments.some(att =>
819
+ att.name === file.name && att.size === file.size
820
+ )
821
+ if (exists) {
822
+ $notify.warning(`File "${file.name}" is already attached.`)
823
+ return
824
+ }
825
+
826
+ const attachment: EmailAttachment = {
827
+ id: crypto.randomUUID(),
828
+ file,
829
+ name: file.name,
830
+ size: file.size,
831
+ type: file.type || 'application/octet-stream'
832
+ }
833
+
834
+ this.attachments = [...this.attachments, attachment]
835
+ this.dispatchChange()
836
+ }
837
+
838
+ /** Remove attachment */
839
+ private removeAttachment = (attachmentId: string) => {
840
+ this.attachments = this.attachments.filter(att => att.id !== attachmentId)
841
+ this.dispatchChange()
842
+ }
843
+
844
+
845
+ render() {
846
+ return html`
847
+ <schmancy-surface
848
+ type="solid"
849
+ rounded="all"
850
+ class=${this.classMap({
851
+ 'border-2 border-dashed border-primary': this.dragOver,
852
+ 'h-full flex flex-col': true
853
+ })}
854
+ @drop=${this.handleDrop}
855
+ @dragover=${this.handleDragOver}
856
+ @dragleave=${this.handleDragLeave}
857
+ >
858
+ <div class="flex flex-col h-full gap-4">
859
+
860
+ <!-- Header Section with Subject -->
861
+ <div class="shrink-0 p-4 pb-0 space-y-4">
862
+ <!-- Subject Field -->
863
+ <div class="space-y-2">
864
+ <schmancy-typography type="label" token="md">
865
+ Subject *
866
+ </schmancy-typography>
867
+ <schmancy-input
868
+ ${ref(this.subjectInputRef)}
869
+ .value=${this.subject}
870
+ @input=${this.handleSubjectChange}
871
+ placeholder="Enter email subject..."
872
+ .disabled=${this.disabled}
873
+ class="w-full"
874
+ ></schmancy-input>
875
+ </div>
876
+ </div>
877
+
878
+ <!-- Formatting Toolbar -->
879
+ <div class="shrink-0 px-4">
880
+ <schmancy-surface type="subtle" rounded="all" class="p-3">
881
+ <div class="flex flex-wrap gap-2 items-center">
882
+ <!-- Text Formatting Group -->
883
+ <div class="flex gap-1">
884
+ <schmancy-icon-button
885
+ size="sm"
886
+ variant="text"
887
+ title="Bold"
888
+ ?disabled=${this.disabled}
889
+ @click=${() => this.wrapSelection('**', '**', 'bold text')}
890
+ >
891
+ <schmancy-icon>format_bold</schmancy-icon>
892
+ </schmancy-icon-button>
893
+ <schmancy-icon-button
894
+ size="sm"
895
+ variant="text"
896
+ title="Italic"
897
+ ?disabled=${this.disabled}
898
+ @click=${() => this.wrapSelection('*', '*', 'italic text')}
899
+ >
900
+ <schmancy-icon>format_italic</schmancy-icon>
901
+ </schmancy-icon-button>
902
+ <schmancy-icon-button
903
+ size="sm"
904
+ variant="text"
905
+ title="Link"
906
+ ?disabled=${this.disabled}
907
+ @click=${() => this.insertAtCursor('[link text](https://example.com)', 'link text')}
908
+ >
909
+ <schmancy-icon>link</schmancy-icon>
910
+ </schmancy-icon-button>
911
+ </div>
912
+
913
+ <!-- Divider -->
914
+ <div class="h-6 w-px bg-outline-variant"></div>
915
+
916
+ <!-- Structure Formatting Group -->
917
+ <div class="flex gap-1">
918
+ <schmancy-icon-button
919
+ size="sm"
920
+ variant="text"
921
+ title="Heading"
922
+ ?disabled=${this.disabled}
923
+ @click=${() => this.insertAtCursor('\n# Heading\n', 'Heading')}
924
+ >
925
+ <schmancy-icon>title</schmancy-icon>
926
+ </schmancy-icon-button>
927
+ <schmancy-icon-button
928
+ size="sm"
929
+ variant="text"
930
+ title="Bullet List"
931
+ ?disabled=${this.disabled}
932
+ @click=${() => this.insertAtCursor('\n* List item\n', 'List item')}
933
+ >
934
+ <schmancy-icon>format_list_bulleted</schmancy-icon>
935
+ </schmancy-icon-button>
936
+ </div>
937
+
938
+ <!-- Divider -->
939
+ <div class="h-6 w-px bg-outline-variant"></div>
940
+
941
+ <!-- Media and Layout Group -->
942
+ <div class="flex gap-1">
943
+ <schmancy-icon-button
944
+ size="sm"
945
+ variant="text"
946
+ title="Insert Image"
947
+ ?disabled=${this.disabled || this.isUploading}
948
+ @click=${() => this.imageInputRef.value?.click()}
949
+ >
950
+ ${when(this.isUploading,
951
+ () => html`<schmancy-progress size="sm" class="w-4 h-4"></schmancy-progress>`,
952
+ () => html`<schmancy-icon>image</schmancy-icon>`
953
+ )}
954
+ </schmancy-icon-button>
955
+ <schmancy-icon-button
956
+ size="sm"
957
+ variant="text"
958
+ title="Insert Layout"
959
+ ?disabled=${this.disabled}
960
+ @click=${this.openLayoutDialog}
961
+ >
962
+ <schmancy-icon>mobile_layout</schmancy-icon>
963
+ </schmancy-icon-button>
964
+ <schmancy-icon-button
965
+ size="sm"
966
+ variant="text"
967
+ title="Use Template"
968
+ ?disabled=${this.disabled || this.templates.length === 0}
969
+ @click=${this.openTemplatePicker}
970
+ >
971
+ <schmancy-icon>description</schmancy-icon>
972
+ </schmancy-icon-button>
973
+ </div>
974
+ </div>
975
+ </schmancy-surface>
976
+ </div>
977
+
978
+ <!-- Textarea Container - Takes remaining space -->
979
+ <div class="flex-1 px-4 relative min-h-0">
980
+ <schmancy-textarea
981
+ ${ref(this.bodyTextAreaRef)}
982
+ .value=${this.body}
983
+ @change=${this.handleBodyChange}
984
+ placeholder="Enter your email message here...
985
+
986
+ Use the toolbar buttons above for formatting, or type markdown directly:
987
+ **bold**, *italic*, [link](url), ![image](url)
988
+
989
+ Drag & drop images or press Ctrl+V to paste from clipboard.
990
+ Tab key inserts 2 spaces for better formatting."
991
+ .disabled=${this.disabled}
992
+ .required=${true}
993
+ .rows=${4}
994
+ class="w-full font-mono text-sm"
995
+ ></schmancy-textarea>
996
+
997
+ <!-- Upload Progress Overlay -->
998
+ ${when(this.isUploading, () => html`
999
+ <div class="absolute top-3 right-3 z-10">
1000
+ <schmancy-surface type="subtle" rounded="all" class="p-2">
1001
+ <div class="flex items-center gap-2">
1002
+ <schmancy-progress size="sm" class="w-4 h-4"></schmancy-progress>
1003
+ <schmancy-typography type="body" token="xs">Uploading...</schmancy-typography>
1004
+ </div>
1005
+ </schmancy-surface>
1006
+ </div>
1007
+ `)}
1008
+ </div>
1009
+
1010
+ <!-- Footer Section -->
1011
+ <div class="shrink-0 p-4 pt-0 space-y-2">
1012
+ <!-- Character/Word Counter -->
1013
+ <div class="text-center">
1014
+ <schmancy-typography type="body" token="xs">
1015
+ ${this.body.length} characters • ${this.body.trim() ? this.body.trim().split(/\s+/).length : 0} words
1016
+ </schmancy-typography>
1017
+ </div>
1018
+
1019
+ <!-- Attachments Display (if any) -->
1020
+ ${when(this.attachments.length > 0, () => html`
1021
+ <div class="space-y-2">
1022
+ <schmancy-typography type="label" token="sm" class="flex items-center gap-2">
1023
+ <schmancy-icon size="16px">attach_file</schmancy-icon>
1024
+ Attachments (${this.attachments.length})
1025
+ </schmancy-typography>
1026
+ <div class="flex flex-wrap gap-2">
1027
+ ${repeat(this.attachments, att => att.id, (attachment) => html`
1028
+ <schmancy-chip class="text-xs">
1029
+ <span class="truncate max-w-32">${attachment.name}</span>
1030
+ <button
1031
+ @click=${() => this.removeAttachment(attachment.id)}
1032
+ class="ml-2 text-error hover:text-error-container"
1033
+ title="Remove attachment"
1034
+ >
1035
+ <schmancy-icon size="14px">close</schmancy-icon>
1036
+ </button>
1037
+ </schmancy-chip>
1038
+ `)}
1039
+ </div>
1040
+ </div>
1041
+ `)}
1042
+ </div>
1043
+
1044
+ <!-- Hidden File Inputs -->
1045
+ <div class="hidden">
1046
+ <input
1047
+ ${ref(this.fileInputRef)}
1048
+ type="file"
1049
+ multiple
1050
+ @change=${this.handleFileChange}
1051
+ >
1052
+ <input
1053
+ ${ref(this.imageInputRef)}
1054
+ type="file"
1055
+ accept="image/*"
1056
+ @change=${this.handleImageSelect}
1057
+ >
1058
+ </div>
1059
+
1060
+ </div>
1061
+ </schmancy-surface>
1062
+
1063
+ `
1064
+ }
1065
+ }
1066
+
1067
+ declare global {
1068
+ interface HTMLElementTagNameMap {
1069
+ 'schmancy-email-editor': SchmancyEmailEditor
1070
+ }
1071
+ }