@mhmo91/schmancy 0.8.6 → 0.9.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1396) hide show
  1. package/README.md +110 -1
  2. package/ai/animation.md +64 -0
  3. package/ai/area.md +35 -256
  4. package/ai/autocomplete.md +44 -162
  5. package/ai/avatar.md +47 -178
  6. package/ai/badge.md +41 -108
  7. package/ai/busy.md +25 -184
  8. package/ai/button.md +52 -150
  9. package/ai/card.md +42 -215
  10. package/ai/checkbox.md +32 -135
  11. package/ai/chips.md +73 -383
  12. package/ai/code-highlight.md +33 -226
  13. package/ai/content-drawer.md +65 -232
  14. package/ai/date-range.md +43 -198
  15. package/ai/details.md +48 -453
  16. package/ai/dialog.md +55 -164
  17. package/ai/directives.md +258 -405
  18. package/ai/divider.md +15 -137
  19. package/ai/dropdown.md +44 -235
  20. package/ai/form.md +41 -137
  21. package/ai/icons.md +31 -235
  22. package/ai/input.md +50 -210
  23. package/ai/lightbox.md +25 -370
  24. package/ai/list.md +51 -130
  25. package/ai/menu.md +25 -134
  26. package/ai/mixins.md +70 -0
  27. package/ai/nav-drawer.md +30 -184
  28. package/ai/navigation-bar.md +27 -184
  29. package/ai/navigation-rail.md +62 -630
  30. package/ai/notification.md +49 -183
  31. package/ai/progress.md +26 -65
  32. package/ai/radio-group.md +45 -189
  33. package/ai/select.md +49 -209
  34. package/ai/sheet.md +74 -506
  35. package/ai/steps.md +30 -392
  36. package/ai/store.md +60 -247
  37. package/ai/surface.md +58 -245
  38. package/ai/table.md +56 -330
  39. package/ai/tabs.md +31 -176
  40. package/ai/textarea.md +48 -232
  41. package/ai/theme.md +40 -1089
  42. package/ai/tooltip.md +35 -146
  43. package/ai/tree.md +45 -271
  44. package/ai/typography.md +43 -296
  45. package/custom-elements.json +10955 -0
  46. package/dist/ai/animation.md +64 -0
  47. package/dist/ai/area.md +35 -256
  48. package/dist/ai/autocomplete.md +44 -162
  49. package/dist/ai/avatar.md +47 -178
  50. package/dist/ai/badge.md +41 -108
  51. package/dist/ai/busy.md +25 -184
  52. package/dist/ai/button.md +52 -150
  53. package/dist/ai/card.md +42 -215
  54. package/dist/ai/checkbox.md +32 -135
  55. package/dist/ai/chips.md +73 -383
  56. package/dist/ai/code-highlight.md +33 -226
  57. package/dist/ai/content-drawer.md +65 -232
  58. package/dist/ai/date-range.md +43 -198
  59. package/dist/ai/details.md +48 -453
  60. package/dist/ai/dialog.md +55 -164
  61. package/dist/ai/directives.md +258 -405
  62. package/dist/ai/divider.md +15 -137
  63. package/dist/ai/dropdown.md +44 -235
  64. package/dist/ai/form.md +41 -137
  65. package/dist/ai/icons.md +31 -235
  66. package/dist/ai/input.md +50 -210
  67. package/dist/ai/lightbox.md +25 -370
  68. package/dist/ai/list.md +51 -130
  69. package/dist/ai/menu.md +25 -134
  70. package/dist/ai/mixins.md +70 -0
  71. package/dist/ai/nav-drawer.md +30 -184
  72. package/dist/ai/navigation-bar.md +27 -184
  73. package/dist/ai/navigation-rail.md +62 -630
  74. package/dist/ai/notification.md +49 -183
  75. package/dist/ai/progress.md +26 -65
  76. package/dist/ai/radio-group.md +45 -189
  77. package/dist/ai/select.md +49 -209
  78. package/dist/ai/sheet.md +74 -506
  79. package/dist/ai/steps.md +30 -392
  80. package/dist/ai/store.md +60 -247
  81. package/dist/ai/surface.md +58 -245
  82. package/dist/ai/table.md +56 -330
  83. package/dist/ai/tabs.md +31 -176
  84. package/dist/ai/textarea.md +48 -232
  85. package/dist/ai/theme.md +40 -1089
  86. package/dist/ai/tooltip.md +35 -146
  87. package/dist/ai/tree.md +45 -271
  88. package/dist/ai/typography.md +43 -296
  89. package/dist/animation-BK-8BwY8.js +173 -0
  90. package/dist/animation-BK-8BwY8.js.map +1 -0
  91. package/dist/animation-CO_Csq84.cjs +16 -0
  92. package/dist/animation-CO_Csq84.cjs.map +1 -0
  93. package/dist/area-1h9xEpTc.cjs +12 -0
  94. package/dist/area-1h9xEpTc.cjs.map +1 -0
  95. package/dist/area-DbBcfm5p.js +590 -0
  96. package/dist/area-DbBcfm5p.js.map +1 -0
  97. package/dist/area.cjs +1 -2
  98. package/dist/area.js +2 -29
  99. package/dist/audio-DtYYgzYD.cjs +1 -0
  100. package/dist/audio-DtYYgzYD.cjs.map +1 -0
  101. package/dist/audio-kz8UgPTO.js +335 -0
  102. package/dist/audio-kz8UgPTO.js.map +1 -0
  103. package/dist/audio.cjs +1 -2
  104. package/dist/audio.js +3 -9
  105. package/dist/autocomplete-DDVsegep.js +378 -0
  106. package/dist/autocomplete-DDVsegep.js.map +1 -0
  107. package/dist/autocomplete-OE70CcYP.cjs +111 -0
  108. package/dist/autocomplete-OE70CcYP.cjs.map +1 -0
  109. package/dist/autocomplete.cjs +1 -2
  110. package/dist/autocomplete.js +1 -2
  111. package/dist/badge.cjs +1 -2
  112. package/dist/badge.js +2 -6
  113. package/dist/boat-Cf1oJ0ka.cjs +80 -0
  114. package/dist/boat-Cf1oJ0ka.cjs.map +1 -0
  115. package/dist/boat-T8Ov4-yA.js +347 -0
  116. package/dist/boat-T8Ov4-yA.js.map +1 -0
  117. package/dist/boat.cjs +1 -2
  118. package/dist/boat.js +2 -5
  119. package/dist/busy-BD6D5P-l.js +167 -0
  120. package/dist/busy-BD6D5P-l.js.map +1 -0
  121. package/dist/busy-DF9wztWL.cjs +134 -0
  122. package/dist/busy-DF9wztWL.cjs.map +1 -0
  123. package/dist/busy.cjs +1 -2
  124. package/dist/busy.js +1 -2
  125. package/dist/button.cjs +113 -2
  126. package/dist/button.cjs.map +1 -1
  127. package/dist/button.js +398 -5
  128. package/dist/button.js.map +1 -1
  129. package/dist/card-Csvu8UJ9.cjs +177 -0
  130. package/dist/card-Csvu8UJ9.cjs.map +1 -0
  131. package/dist/card-DM_miKMd.js +284 -0
  132. package/dist/card-DM_miKMd.js.map +1 -0
  133. package/dist/card.cjs +1 -2
  134. package/dist/card.js +1 -2
  135. package/dist/charts.cjs +112 -2
  136. package/dist/charts.cjs.map +1 -1
  137. package/dist/charts.js +368 -8
  138. package/dist/charts.js.map +1 -1
  139. package/dist/checkbox-BgGtMaMR.js +610 -0
  140. package/dist/checkbox-BgGtMaMR.js.map +1 -0
  141. package/dist/checkbox-sJujc_ga.cjs +39 -0
  142. package/dist/checkbox-sJujc_ga.cjs.map +1 -0
  143. package/dist/checkbox.cjs +1 -2
  144. package/dist/checkbox.js +2 -5
  145. package/dist/chips-BZaH4wez.js +645 -0
  146. package/dist/chips-BZaH4wez.js.map +1 -0
  147. package/dist/chips-D_e6wijp.cjs +253 -0
  148. package/dist/chips-D_e6wijp.cjs.map +1 -0
  149. package/dist/chips.cjs +1 -2
  150. package/dist/chips.js +3 -10
  151. package/dist/chunk-BCfY8kxB.cjs +1 -0
  152. package/dist/chunk-C_1VqBVD.js +11 -0
  153. package/dist/code-highlight-DlhERv_O.cjs +190 -0
  154. package/dist/code-highlight-DlhERv_O.cjs.map +1 -0
  155. package/dist/code-highlight-Q3cc6ukq.js +290 -0
  156. package/dist/code-highlight-Q3cc6ukq.js.map +1 -0
  157. package/dist/code-highlight.cjs +1 -2
  158. package/dist/code-highlight.js +2 -7
  159. package/dist/components-CRhkB3V2.js +730 -0
  160. package/dist/components-CRhkB3V2.js.map +1 -0
  161. package/dist/components-DnlEYYDs.cjs +73 -0
  162. package/dist/components-DnlEYYDs.cjs.map +1 -0
  163. package/dist/components.cjs +1 -2
  164. package/dist/components.js +2 -5
  165. package/dist/connectivity.cjs +59 -0
  166. package/dist/connectivity.cjs.map +1 -0
  167. package/dist/connectivity.js +86 -0
  168. package/dist/connectivity.js.map +1 -0
  169. package/dist/content-drawer.cjs +1 -2
  170. package/dist/content-drawer.js +2 -13
  171. package/dist/cursor-glow-Ah7VXSj7.js +46 -0
  172. package/dist/cursor-glow-Ah7VXSj7.js.map +1 -0
  173. package/dist/cursor-glow-DtSy_PJd.cjs +1 -0
  174. package/dist/cursor-glow-DtSy_PJd.cjs.map +1 -0
  175. package/dist/date-range-C0IYnvHF.js +946 -0
  176. package/dist/date-range-C0IYnvHF.js.map +1 -0
  177. package/dist/date-range-cymbTDnl.cjs +131 -0
  178. package/dist/date-range-cymbTDnl.cjs.map +1 -0
  179. package/dist/date-range-inline-0ENN4Plz.js +267 -0
  180. package/dist/date-range-inline-0ENN4Plz.js.map +1 -0
  181. package/dist/date-range-inline-Cfwt-ReH.cjs +43 -0
  182. package/dist/date-range-inline-Cfwt-ReH.cjs.map +1 -0
  183. package/dist/date-range-inline.cjs +1 -2
  184. package/dist/date-range-inline.js +2 -5
  185. package/dist/date-range.cjs +1 -2
  186. package/dist/date-range.js +2 -6
  187. package/dist/delay-D1dVP93u.js +346 -0
  188. package/dist/delay-D1dVP93u.js.map +1 -0
  189. package/dist/delay-D6mQLUp-.cjs +9 -0
  190. package/dist/delay-D6mQLUp-.cjs.map +1 -0
  191. package/dist/delay.cjs +1 -2
  192. package/dist/delay.js +2 -6
  193. package/dist/details-CPT_Mi4e.cjs +168 -0
  194. package/dist/details-CPT_Mi4e.cjs.map +1 -0
  195. package/dist/details-Cv4OOrVW.js +293 -0
  196. package/dist/details-Cv4OOrVW.js.map +1 -0
  197. package/dist/details.cjs +1 -2
  198. package/dist/details.js +2 -5
  199. package/dist/dialog-service-NZEvyEK-.js +193 -0
  200. package/dist/dialog-service-NZEvyEK-.js.map +1 -0
  201. package/dist/dialog-service-VnW4gkmE.cjs +1 -0
  202. package/dist/dialog-service-VnW4gkmE.cjs.map +1 -0
  203. package/dist/dialog.cjs +82 -2
  204. package/dist/dialog.cjs.map +1 -1
  205. package/dist/dialog.js +396 -9
  206. package/dist/dialog.js.map +1 -1
  207. package/dist/directives.cjs +108 -2
  208. package/dist/directives.cjs.map +1 -1
  209. package/dist/directives.js +1362 -14
  210. package/dist/directives.js.map +1 -1
  211. package/dist/discovery.cjs +1 -2
  212. package/dist/discovery.cjs.map +1 -1
  213. package/dist/discovery.js +61 -6
  214. package/dist/discovery.js.map +1 -1
  215. package/dist/divider-DDC-kND3.js +87 -0
  216. package/dist/divider-DDC-kND3.js.map +1 -0
  217. package/dist/divider-nZ_2to2N.cjs +57 -0
  218. package/dist/divider-nZ_2to2N.cjs.map +1 -0
  219. package/dist/divider.cjs +1 -2
  220. package/dist/divider.js +1 -2
  221. package/dist/dropdown.cjs +57 -2
  222. package/dist/dropdown.cjs.map +1 -1
  223. package/dist/dropdown.js +160 -5
  224. package/dist/dropdown.js.map +1 -1
  225. package/dist/expand-Bp3N8CcL.js +336 -0
  226. package/dist/expand-Bp3N8CcL.js.map +1 -0
  227. package/dist/expand-Crdts9q_.cjs +141 -0
  228. package/dist/expand-Crdts9q_.cjs.map +1 -0
  229. package/dist/expand.cjs +1 -0
  230. package/dist/expand.js +2 -0
  231. package/dist/extra-B0IZCg0t.cjs +31 -0
  232. package/dist/extra-B0IZCg0t.cjs.map +1 -0
  233. package/dist/extra-DupwhQhC.js +3435 -0
  234. package/dist/extra-DupwhQhC.js.map +1 -0
  235. package/dist/extra.cjs +1 -2
  236. package/dist/extra.js +2 -6
  237. package/dist/float-CQoJ_oSB.cjs +1 -0
  238. package/dist/float-CQoJ_oSB.cjs.map +1 -0
  239. package/dist/float-Dqdc1_S5.js +5 -0
  240. package/dist/float-Dqdc1_S5.js.map +1 -0
  241. package/dist/float.cjs +1 -0
  242. package/dist/float.js +2 -0
  243. package/dist/flow-Bbwn6dRN.cjs +1 -0
  244. package/dist/flow-Bbwn6dRN.cjs.map +1 -0
  245. package/dist/flow-CUj0fDT_.js +386 -0
  246. package/dist/flow-CUj0fDT_.js.map +1 -0
  247. package/dist/form-CW5XNuTg.js +270 -0
  248. package/dist/form-CW5XNuTg.js.map +1 -0
  249. package/dist/form-CvoLqMY7.cjs +1 -0
  250. package/dist/form-CvoLqMY7.cjs.map +1 -0
  251. package/dist/form.cjs +1 -2
  252. package/dist/form.js +1 -2
  253. package/dist/hashContent-DYM21p6t.js +6 -0
  254. package/dist/hashContent-DYM21p6t.js.map +1 -0
  255. package/dist/hashContent-DaeGmY-p.cjs +1 -0
  256. package/dist/hashContent-DaeGmY-p.cjs.map +1 -0
  257. package/dist/icons-BLQHEbIk.cjs +52 -0
  258. package/dist/icons-BLQHEbIk.cjs.map +1 -0
  259. package/dist/icons-Cpfdb7sA.js +161 -0
  260. package/dist/icons-Cpfdb7sA.js.map +1 -0
  261. package/dist/icons.cjs +1 -2
  262. package/dist/icons.js +1 -2
  263. package/dist/iframe-DG6HVYdy.js +44 -0
  264. package/dist/iframe-DG6HVYdy.js.map +1 -0
  265. package/dist/iframe-sJGXBbxT.cjs +24 -0
  266. package/dist/iframe-sJGXBbxT.cjs.map +1 -0
  267. package/dist/iframe.cjs +1 -0
  268. package/dist/iframe.js +2 -0
  269. package/dist/index.cjs +1 -2
  270. package/dist/index.js +69 -285
  271. package/dist/input-BevxycIt.js +364 -0
  272. package/dist/input-BevxycIt.js.map +1 -0
  273. package/dist/input-DGTdmp1Q.cjs +51 -0
  274. package/dist/input-DGTdmp1Q.cjs.map +1 -0
  275. package/dist/input-chip-BWS-SFU4.js +301 -0
  276. package/dist/input-chip-BWS-SFU4.js.map +1 -0
  277. package/dist/input-chip-CKVtjInb.cjs +146 -0
  278. package/dist/input-chip-CKVtjInb.cjs.map +1 -0
  279. package/dist/input.cjs +1 -2
  280. package/dist/input.js +2 -6
  281. package/dist/intersection-BPLpqYEd.js +12 -0
  282. package/dist/intersection-BPLpqYEd.js.map +1 -0
  283. package/dist/intersection-CZpaIHeT.cjs +1 -0
  284. package/dist/intersection-CZpaIHeT.cjs.map +1 -0
  285. package/dist/json.cjs +11 -2
  286. package/dist/json.cjs.map +1 -1
  287. package/dist/json.js +40 -4
  288. package/dist/json.js.map +1 -1
  289. package/dist/layout-4C-6_cre.cjs +1 -0
  290. package/dist/layout-4C-6_cre.cjs.map +1 -0
  291. package/dist/layout-CQdd8UCr.cjs +17 -0
  292. package/dist/layout-CQdd8UCr.cjs.map +1 -0
  293. package/dist/layout-DxLjlDfr.js +267 -0
  294. package/dist/layout-DxLjlDfr.js.map +1 -0
  295. package/dist/layout-yxSlLybo.js +94 -0
  296. package/dist/layout-yxSlLybo.js.map +1 -0
  297. package/dist/layout.cjs +1 -2
  298. package/dist/layout.js +3 -9
  299. package/dist/lightbox-Bjc55lHH.js +678 -0
  300. package/dist/lightbox-Bjc55lHH.js.map +1 -0
  301. package/dist/lightbox-C_863_XU.cjs +202 -0
  302. package/dist/lightbox-C_863_XU.cjs.map +1 -0
  303. package/dist/lightbox.cjs +1 -2
  304. package/dist/lightbox.js +2 -8
  305. package/dist/list-BAqhlzZd.js +105 -0
  306. package/dist/list-BAqhlzZd.js.map +1 -0
  307. package/dist/list-CaXzdN9_.cjs +40 -0
  308. package/dist/list-CaXzdN9_.cjs.map +1 -0
  309. package/dist/list.cjs +1 -2
  310. package/dist/list.js +2 -7
  311. package/dist/litElement.mixin-DN6X9_wD.cjs +1 -0
  312. package/dist/litElement.mixin-DN6X9_wD.cjs.map +1 -0
  313. package/dist/litElement.mixin-Dktub0ri.js +12 -0
  314. package/dist/litElement.mixin-Dktub0ri.js.map +1 -0
  315. package/dist/magnetic-BZGFxAWG.js +47 -0
  316. package/dist/magnetic-BZGFxAWG.js.map +1 -0
  317. package/dist/magnetic-Dux4QwO4.cjs +1 -0
  318. package/dist/magnetic-Dux4QwO4.cjs.map +1 -0
  319. package/dist/mailbox-BvsLXpvy.cjs +1142 -0
  320. package/dist/mailbox-BvsLXpvy.cjs.map +1 -0
  321. package/dist/mailbox-DuMUH4f3.js +1584 -0
  322. package/dist/mailbox-DuMUH4f3.js.map +1 -0
  323. package/dist/mailbox.cjs +1 -2
  324. package/dist/mailbox.js +2 -9
  325. package/dist/map-C2Msv9TQ.cjs +80 -0
  326. package/dist/map-C2Msv9TQ.cjs.map +1 -0
  327. package/dist/map-DkIy1ph7.js +205 -0
  328. package/dist/map-DkIy1ph7.js.map +1 -0
  329. package/dist/map.cjs +1 -2
  330. package/dist/map.js +2 -5
  331. package/dist/menu-DEeDKW5U.js +51 -0
  332. package/dist/menu-DEeDKW5U.js.map +1 -0
  333. package/dist/menu-Mm71lv9k.cjs +23 -0
  334. package/dist/menu-Mm71lv9k.cjs.map +1 -0
  335. package/dist/menu.cjs +1 -2
  336. package/dist/menu.js +1 -2
  337. package/dist/mixins.cjs +1 -2
  338. package/dist/mixins.cjs.map +1 -1
  339. package/dist/mixins.js +59 -12
  340. package/dist/mixins.js.map +1 -1
  341. package/dist/nav-drawer.cjs +1 -2
  342. package/dist/nav-drawer.js +2 -12
  343. package/dist/navigation-bar.cjs +1 -2
  344. package/dist/navigation-bar.js +2 -6
  345. package/dist/navigation-rail.cjs +71 -2
  346. package/dist/navigation-rail.cjs.map +1 -1
  347. package/dist/navigation-rail.js +363 -5
  348. package/dist/navigation-rail.js.map +1 -1
  349. package/dist/notification-K-ug8cKk.js +304 -0
  350. package/dist/notification-K-ug8cKk.js.map +1 -0
  351. package/dist/notification-cTgXEDZ0.cjs +23 -0
  352. package/dist/notification-cTgXEDZ0.cjs.map +1 -0
  353. package/dist/notification.cjs +1 -2
  354. package/dist/notification.js +2 -9
  355. package/dist/option-5rEOmtAm.cjs +43 -0
  356. package/dist/option-5rEOmtAm.cjs.map +1 -0
  357. package/dist/option-TFSKvSjT.js +97 -0
  358. package/dist/option-TFSKvSjT.js.map +1 -0
  359. package/dist/option.cjs +1 -2
  360. package/dist/option.js +1 -2
  361. package/dist/overlay-stack-DQey9Qph.cjs +1 -0
  362. package/dist/overlay-stack-DQey9Qph.cjs.map +1 -0
  363. package/dist/overlay-stack-DT1SdaGW.js +39 -0
  364. package/dist/overlay-stack-DT1SdaGW.js.map +1 -0
  365. package/dist/page.cjs +20 -2
  366. package/dist/page.cjs.map +1 -1
  367. package/dist/page.js +71 -4
  368. package/dist/page.js.map +1 -1
  369. package/dist/progress-Cta3nM-f.js +128 -0
  370. package/dist/progress-Cta3nM-f.js.map +1 -0
  371. package/dist/progress-iu0AMbSg.cjs +51 -0
  372. package/dist/progress-iu0AMbSg.cjs.map +1 -0
  373. package/dist/progress.cjs +1 -2
  374. package/dist/progress.js +1 -2
  375. package/dist/provide-BEyyKlDM.cjs +1 -0
  376. package/dist/provide-BEyyKlDM.cjs.map +1 -0
  377. package/dist/provide-D69zybs5.js +107 -0
  378. package/dist/provide-D69zybs5.js.map +1 -0
  379. package/dist/qr-scanner.cjs +35 -2
  380. package/dist/qr-scanner.cjs.map +1 -1
  381. package/dist/qr-scanner.js +119 -4
  382. package/dist/qr-scanner.js.map +1 -1
  383. package/dist/radio-group-BjSWmYJC.js +105 -0
  384. package/dist/radio-group-BjSWmYJC.js.map +1 -0
  385. package/dist/radio-group-DKPN0T50.cjs +40 -0
  386. package/dist/radio-group-DKPN0T50.cjs.map +1 -0
  387. package/dist/radio-group.cjs +1 -2
  388. package/dist/radio-group.js +2 -6
  389. package/dist/range.cjs +62 -0
  390. package/dist/range.cjs.map +1 -0
  391. package/dist/range.js +85 -0
  392. package/dist/range.js.map +1 -0
  393. package/dist/reduced-motion-D-L12p7G.js +7 -0
  394. package/dist/reduced-motion-D-L12p7G.js.map +1 -0
  395. package/dist/reduced-motion-Ds05GPyz.cjs +1 -0
  396. package/dist/reduced-motion-Ds05GPyz.cjs.map +1 -0
  397. package/dist/rxjs-utils-BSjmI9-Q.js +32 -0
  398. package/dist/rxjs-utils-BSjmI9-Q.js.map +1 -0
  399. package/dist/rxjs-utils-DCsfzeap.cjs +1 -0
  400. package/dist/rxjs-utils-DCsfzeap.cjs.map +1 -0
  401. package/dist/rxjs-utils.cjs +1 -2
  402. package/dist/rxjs-utils.js +2 -14
  403. package/dist/scroll-mayaGGpE.cjs +26 -0
  404. package/dist/scroll-mayaGGpE.cjs.map +1 -0
  405. package/dist/scroll-tG1vaRFO.js +112 -0
  406. package/dist/scroll-tG1vaRFO.js.map +1 -0
  407. package/dist/search-C4dFHYbX.js +91 -0
  408. package/dist/search-C4dFHYbX.js.map +1 -0
  409. package/dist/search-Ds8tt7Et.cjs +1 -0
  410. package/dist/search-Ds8tt7Et.cjs.map +1 -0
  411. package/dist/select-C4YK5Arj.cjs +56 -0
  412. package/dist/select-C4YK5Arj.cjs.map +1 -0
  413. package/dist/select-CepryGGP.js +305 -0
  414. package/dist/select-CepryGGP.js.map +1 -0
  415. package/dist/select.cjs +1 -2
  416. package/dist/select.js +2 -5
  417. package/dist/sheet-Cy4C2-kG.cjs +35 -0
  418. package/dist/sheet-Cy4C2-kG.cjs.map +1 -0
  419. package/dist/sheet-D2uT95S1.js +168 -0
  420. package/dist/sheet-D2uT95S1.js.map +1 -0
  421. package/dist/sheet.cjs +1 -2
  422. package/dist/sheet.js +3 -7
  423. package/dist/sheet.service-Dv5Hwj3k.cjs +1 -0
  424. package/dist/sheet.service-Dv5Hwj3k.cjs.map +1 -0
  425. package/dist/sheet.service-Os8KJGSE.js +86 -0
  426. package/dist/sheet.service-Os8KJGSE.js.map +1 -0
  427. package/dist/slider.cjs +82 -2
  428. package/dist/slider.cjs.map +1 -1
  429. package/dist/slider.js +143 -5
  430. package/dist/slider.js.map +1 -1
  431. package/dist/sound.service-Bu3EQLv2.cjs +1 -0
  432. package/dist/sound.service-Bu3EQLv2.cjs.map +1 -0
  433. package/dist/sound.service-m3BrSfuH.js +2353 -0
  434. package/dist/sound.service-m3BrSfuH.js.map +1 -0
  435. package/dist/src-BLcmKlCH.js +1244 -0
  436. package/dist/src-BLcmKlCH.js.map +1 -0
  437. package/dist/src-tfU0akqI.cjs +269 -0
  438. package/dist/src-tfU0akqI.cjs.map +1 -0
  439. package/dist/steps.cjs +70 -2
  440. package/dist/steps.cjs.map +1 -1
  441. package/dist/steps.js +178 -7
  442. package/dist/steps.js.map +1 -1
  443. package/dist/store-CorvD3bT.cjs +1 -0
  444. package/dist/store-CorvD3bT.cjs.map +1 -0
  445. package/dist/store-DYqDLAvT.js +1654 -0
  446. package/dist/store-DYqDLAvT.js.map +1 -0
  447. package/dist/store.cjs +1 -2
  448. package/dist/store.js +2 -47
  449. package/dist/surface-CiiIYeJN.cjs +7 -0
  450. package/dist/surface-CiiIYeJN.cjs.map +1 -0
  451. package/dist/surface-fXvRpS6s.js +21 -0
  452. package/dist/surface-fXvRpS6s.js.map +1 -0
  453. package/dist/surface.cjs +1 -2
  454. package/dist/surface.js +2 -6
  455. package/dist/surface.mixin-C4hbgyaP.cjs +297 -0
  456. package/dist/surface.mixin-C4hbgyaP.cjs.map +1 -0
  457. package/dist/surface.mixin-DBuxL5aL.js +320 -0
  458. package/dist/surface.mixin-DBuxL5aL.js.map +1 -0
  459. package/dist/table-BRVKlNjl.cjs +63 -0
  460. package/dist/table-BRVKlNjl.cjs.map +1 -0
  461. package/dist/table-BeXnwSsq.js +631 -0
  462. package/dist/table-BeXnwSsq.js.map +1 -0
  463. package/dist/table.cjs +1 -2
  464. package/dist/table.js +2 -6
  465. package/dist/tabs-CBU9Ctqm.cjs +31 -0
  466. package/dist/tabs-CBU9Ctqm.cjs.map +1 -0
  467. package/dist/tabs-y708NWQ2.js +125 -0
  468. package/dist/tabs-y708NWQ2.js.map +1 -0
  469. package/dist/tabs.cjs +1 -2
  470. package/dist/tabs.js +1 -2
  471. package/dist/tailwind.mixin-C4cx3IOr.js +225 -0
  472. package/dist/tailwind.mixin-C4cx3IOr.js.map +1 -0
  473. package/dist/tailwind.mixin-DGiyLbEi.cjs +2 -0
  474. package/dist/tailwind.mixin-DGiyLbEi.cjs.map +1 -0
  475. package/dist/teleport.cjs +1 -2
  476. package/dist/teleport.js +2 -8
  477. package/dist/textarea-BhAoJg8c.cjs +35 -0
  478. package/dist/textarea-BhAoJg8c.cjs.map +1 -0
  479. package/dist/textarea-Bl8-gQEJ.js +195 -0
  480. package/dist/textarea-Bl8-gQEJ.js.map +1 -0
  481. package/dist/textarea.cjs +1 -2
  482. package/dist/textarea.js +1 -2
  483. package/dist/theme-C-vdR-Ic.cjs +181 -0
  484. package/dist/theme-C-vdR-Ic.cjs.map +1 -0
  485. package/dist/theme-DZUpYJn-.js +4121 -0
  486. package/dist/theme-DZUpYJn-.js.map +1 -0
  487. package/dist/theme-button-CwrvpOMK.js +19 -0
  488. package/dist/theme-button-CwrvpOMK.js.map +1 -0
  489. package/dist/theme-button-Cx1iKh7G.cjs +8 -0
  490. package/dist/theme-button-Cx1iKh7G.cjs.map +1 -0
  491. package/dist/theme-button.cjs +1 -2
  492. package/dist/theme-button.js +1 -2
  493. package/dist/theme.cjs +1 -2
  494. package/dist/theme.events-Cv7N4Toe.js +2 -0
  495. package/dist/theme.events-Cv7N4Toe.js.map +1 -0
  496. package/dist/theme.events-DM4H5F2d.cjs +1 -0
  497. package/dist/theme.events-DM4H5F2d.cjs.map +1 -0
  498. package/dist/theme.interface-CXloMUCw.js +276 -0
  499. package/dist/theme.interface-CXloMUCw.js.map +1 -0
  500. package/dist/theme.interface-Da23QAYb.cjs +1 -0
  501. package/dist/theme.interface-Da23QAYb.cjs.map +1 -0
  502. package/dist/theme.js +6 -21
  503. package/dist/theme.service-C_tjlqgy.cjs +1 -0
  504. package/dist/theme.service-C_tjlqgy.cjs.map +1 -0
  505. package/dist/theme.service-D9lEas89.js +108 -0
  506. package/dist/theme.service-D9lEas89.js.map +1 -0
  507. package/dist/tooltip.cjs +6 -2
  508. package/dist/tooltip.cjs.map +1 -1
  509. package/dist/tooltip.js +200 -5
  510. package/dist/tooltip.js.map +1 -1
  511. package/dist/tree.cjs +26 -2
  512. package/dist/tree.cjs.map +1 -1
  513. package/dist/tree.js +64 -4
  514. package/dist/tree.js.map +1 -1
  515. package/dist/tslib.es6-D7BIeDVB.cjs +1 -0
  516. package/dist/tslib.es6-D7BIeDVB.cjs.map +1 -0
  517. package/dist/tslib.es6-ErZEp3OO.js +7 -0
  518. package/dist/tslib.es6-ErZEp3OO.js.map +1 -0
  519. package/dist/types.cjs +1 -2
  520. package/dist/types.cjs.map +1 -1
  521. package/dist/types.js +4 -5
  522. package/dist/types.js.map +1 -1
  523. package/dist/typewriter-CXQIzqPV.cjs +123 -0
  524. package/dist/typewriter-CXQIzqPV.cjs.map +1 -0
  525. package/dist/typewriter-mxVw5dFn.js +700 -0
  526. package/dist/typewriter-mxVw5dFn.js.map +1 -0
  527. package/dist/typewriter.cjs +1 -2
  528. package/dist/typewriter.js +2 -5
  529. package/dist/typography.cjs +282 -2
  530. package/dist/typography.cjs.map +1 -1
  531. package/dist/typography.js +353 -4
  532. package/dist/typography.js.map +1 -1
  533. package/dist/utils-BcaKtQuA.cjs +1 -0
  534. package/dist/utils-BcaKtQuA.cjs.map +1 -0
  535. package/dist/utils-CoU7M2YS.js +259 -0
  536. package/dist/utils-CoU7M2YS.js.map +1 -0
  537. package/dist/utils.cjs +1 -2
  538. package/dist/utils.js +6 -9
  539. package/dist/window-DFMlB1Tq.cjs +59 -0
  540. package/dist/window-DFMlB1Tq.cjs.map +1 -0
  541. package/dist/window-EWYJJC_H.js +548 -0
  542. package/dist/window-EWYJJC_H.js.map +1 -0
  543. package/dist/window.cjs +1 -0
  544. package/dist/window.js +2 -0
  545. package/mixins/baseElement.ts +118 -1
  546. package/mixins/discovery.service.ts +162 -1
  547. package/mixins/formField.mixin.ts +13 -8
  548. package/mixins/index.ts +2 -0
  549. package/mixins/surface.mixin.ts +93 -0
  550. package/mixins/tailwind.css +331 -14
  551. package/package.json +32 -28
  552. package/src/CLAUDE.md +428 -0
  553. package/src/area/.excalidraw +357 -0
  554. package/src/area/area.component.ts +449 -0
  555. package/src/area/area.service.test.ts +1007 -0
  556. package/src/area/area.service.ts +748 -0
  557. package/src/area/ecrypt.ts +7 -0
  558. package/src/area/index.ts +7 -0
  559. package/src/area/lazy.ts +83 -0
  560. package/src/area/readme.md +338 -0
  561. package/src/area/route.component.ts +79 -0
  562. package/src/area/router-guide.md +360 -0
  563. package/src/area/router.types.ts +101 -0
  564. package/src/area/utils.ts +354 -0
  565. package/src/audio/emotional-sounds.ts +940 -0
  566. package/src/audio/index.ts +53 -0
  567. package/src/audio/sound.service.ts +1079 -0
  568. package/src/autocomplete/README.md +485 -0
  569. package/src/autocomplete/autocomplete.scss +24 -0
  570. package/src/autocomplete/autocomplete.ts +733 -0
  571. package/src/autocomplete/index.ts +1 -0
  572. package/src/avatar.ts +164 -0
  573. package/src/badge/badge.ts +286 -0
  574. package/src/badge/index.ts +1 -0
  575. package/src/boat/boat.ts +664 -0
  576. package/src/boat/index.ts +1 -0
  577. package/src/busy/busy.ts +39 -0
  578. package/src/busy/index.ts +2 -0
  579. package/src/busy/spinner.ts +165 -0
  580. package/src/button/button.ts +382 -0
  581. package/src/button/icon-button.ts +287 -0
  582. package/src/button/index.ts +2 -0
  583. package/src/card/actions.ts +28 -0
  584. package/src/card/card.ts +319 -0
  585. package/src/card/content.ts +24 -0
  586. package/src/card/index.ts +4 -0
  587. package/src/card/media.ts +77 -0
  588. package/src/charts/area-chart.ts +495 -0
  589. package/src/charts/index.ts +4 -0
  590. package/src/charts/pills.ts +350 -0
  591. package/src/charts/types.ts +66 -0
  592. package/src/charts/utils.ts +65 -0
  593. package/src/checkbox/checkbox.ts +122 -0
  594. package/src/checkbox/index.ts +1 -0
  595. package/src/chips/assist-chip.ts +261 -0
  596. package/src/chips/chips.ts +259 -0
  597. package/src/chips/filter-chip.ts +255 -0
  598. package/src/chips/index.ts +5 -0
  599. package/src/chips/input-chip.ts +408 -0
  600. package/src/chips/suggestion-chip.ts +266 -0
  601. package/src/code-highlight/code-highlight.ts +344 -0
  602. package/src/code-highlight/code-preview.ts +123 -0
  603. package/src/code-highlight/index.ts +3 -0
  604. package/src/components/form-elements/index.ts +1 -0
  605. package/src/components/form-elements/payment-card-form.ts +331 -0
  606. package/src/components/index.ts +1 -0
  607. package/src/connectivity/connectivity-status.ts +153 -0
  608. package/src/connectivity/index.ts +1 -0
  609. package/src/content-drawer/context.ts +13 -0
  610. package/src/content-drawer/drawer.service.ts +148 -0
  611. package/src/content-drawer/drawer.ts +183 -0
  612. package/src/content-drawer/index.ts +5 -0
  613. package/src/content-drawer/main.ts +83 -0
  614. package/src/content-drawer/readme.md +709 -0
  615. package/src/content-drawer/sheet.ts +180 -0
  616. package/src/date-range/date-range-dialog.ts +230 -0
  617. package/src/date-range/date-range-helpers.ts +135 -0
  618. package/src/date-range/date-range-presets.ts +220 -0
  619. package/src/date-range/date-range.ts +530 -0
  620. package/src/date-range/date-utils.ts +58 -0
  621. package/src/date-range/index.ts +2 -0
  622. package/src/date-range-inline/date-range-inline.ts +522 -0
  623. package/src/date-range-inline/index.ts +2 -0
  624. package/src/delay/delay.ts +136 -0
  625. package/src/delay/index.ts +1 -0
  626. package/src/details/details.ts +429 -0
  627. package/src/details/index.ts +1 -0
  628. package/src/dialog/dialog-base.mixin.ts +565 -0
  629. package/src/dialog/dialog-events.ts +17 -0
  630. package/src/dialog/dialog-service.ts +482 -0
  631. package/src/dialog/dialog.component.ts +394 -0
  632. package/src/dialog/index.ts +3 -0
  633. package/src/directives/animate-text.ts +551 -0
  634. package/src/directives/color.ts +41 -0
  635. package/src/directives/confirm-click.ts +350 -0
  636. package/src/directives/cursor-glow.ts +142 -0
  637. package/src/directives/cycle-text.ts +496 -0
  638. package/src/directives/depth-of-field.ts +83 -0
  639. package/src/directives/drag.ts +370 -0
  640. package/src/directives/gravity.ts +117 -0
  641. package/src/directives/index.ts +19 -0
  642. package/src/directives/intersect.ts +204 -0
  643. package/src/directives/layout.ts +261 -0
  644. package/src/directives/liquid.ts +150 -0
  645. package/src/directives/living-border.ts +166 -0
  646. package/src/directives/long-press.ts +150 -0
  647. package/src/directives/magnetic.ts +133 -0
  648. package/src/directives/nebula.ts +773 -0
  649. package/src/directives/reduced-motion.ts +30 -0
  650. package/src/directives/reveal.ts +158 -0
  651. package/src/directives/ripple.ts +102 -0
  652. package/src/directives/typewriter.ts +349 -0
  653. package/src/discovery/discovery.service.ts +210 -0
  654. package/src/discovery/index.ts +1 -0
  655. package/src/divider/divider.ts +100 -0
  656. package/src/divider/index.ts +1 -0
  657. package/src/dropdown/dropdown-component.ts +264 -0
  658. package/src/dropdown/dropdown-content.ts +108 -0
  659. package/src/dropdown/index.ts +2 -0
  660. package/src/expand/expand-root.component.ts +278 -0
  661. package/src/expand/expand.component.ts +287 -0
  662. package/src/expand/index.ts +2 -0
  663. package/src/extra/countries/countries.data.ts +196 -0
  664. package/src/extra/countries/countries.ts +107 -0
  665. package/src/extra/countries/index.ts +2 -0
  666. package/src/extra/index.ts +2 -0
  667. package/src/extra/timezone/index.ts +2 -0
  668. package/src/extra/timezone/timezone.ts +116 -0
  669. package/src/extra/timezone/timezones.data.ts +2546 -0
  670. package/src/float/float.ts +18 -0
  671. package/src/float/index.ts +1 -0
  672. package/src/form/form-v2.ts +268 -0
  673. package/src/form/form.ts +194 -0
  674. package/src/form/index.ts +2 -0
  675. package/src/icons/icon.ts +293 -0
  676. package/src/icons/index.ts +1 -0
  677. package/src/icons/readme.md +37 -0
  678. package/src/iframe/iframe.ts +98 -0
  679. package/src/iframe/index.ts +1 -0
  680. package/src/index.ts +69 -0
  681. package/src/input/index.ts +8 -0
  682. package/src/input/input.scss +211 -0
  683. package/src/input/input.ts +951 -0
  684. package/src/json/index.ts +1 -0
  685. package/src/json/json.ts +55 -0
  686. package/src/layout/flex/flex.scss +4 -0
  687. package/src/layout/flex/flex.ts +74 -0
  688. package/src/layout/flex/index.ts +1 -0
  689. package/src/layout/grid/.readme +79 -0
  690. package/src/layout/grid/grid.scss +5 -0
  691. package/src/layout/grid/grid.ts +121 -0
  692. package/src/layout/grid/index.ts +1 -0
  693. package/src/layout/index.ts +5 -0
  694. package/src/layout/layout.ts +122 -0
  695. package/src/layout/scroll/index.ts +1 -0
  696. package/src/layout/scroll/scroll.ts +351 -0
  697. package/src/layout/v2/flex.ts +243 -0
  698. package/src/layout/v2/grid.ts +93 -0
  699. package/src/layout/v2/index.ts +1 -0
  700. package/src/lightbox/flip-directive.ts +270 -0
  701. package/src/lightbox/index.ts +4 -0
  702. package/src/lightbox/lightbox-service.ts +378 -0
  703. package/src/lightbox/lightbox.directive.ts +256 -0
  704. package/src/lightbox/lightbox.ts +417 -0
  705. package/src/list/context.ts +3 -0
  706. package/src/list/index.ts +3 -0
  707. package/src/list/list-item.ts +94 -0
  708. package/src/list/list.ts +87 -0
  709. package/src/list/readme.md +62 -0
  710. package/src/mailbox/README.md +131 -0
  711. package/src/mailbox/email-editor.ts +1071 -0
  712. package/src/mailbox/email-layout-selector.ts +58 -0
  713. package/src/mailbox/email-recipients.ts +594 -0
  714. package/src/mailbox/email-template-picker.ts +296 -0
  715. package/src/mailbox/email-viewer.ts +715 -0
  716. package/src/mailbox/index.ts +31 -0
  717. package/src/mailbox/mailbox.ts +363 -0
  718. package/src/mailbox/types.ts +181 -0
  719. package/src/map/index.ts +1 -0
  720. package/src/map/map.ts +483 -0
  721. package/src/menu/index.ts +2 -0
  722. package/src/menu/menu-item.ts +26 -0
  723. package/src/menu/menu.ts +83 -0
  724. package/src/nav-drawer/$navbar.ts +51 -0
  725. package/src/nav-drawer/appbar.ts +26 -0
  726. package/src/nav-drawer/content.ts +32 -0
  727. package/src/nav-drawer/context.ts +6 -0
  728. package/src/nav-drawer/drawer.ts +128 -0
  729. package/src/nav-drawer/index.ts +6 -0
  730. package/src/nav-drawer/navbar.ts +191 -0
  731. package/src/navigation-bar/index.ts +2 -0
  732. package/src/navigation-bar/navigation-bar-item.ts +417 -0
  733. package/src/navigation-bar/navigation-bar.ts +482 -0
  734. package/src/navigation-rail/index.ts +2 -0
  735. package/src/navigation-rail/navigation-rail-item.ts +443 -0
  736. package/src/navigation-rail/navigation-rail.ts +492 -0
  737. package/src/notification/index.ts +6 -0
  738. package/src/notification/notification-service.ts +324 -0
  739. package/src/notification/notification.scss +117 -0
  740. package/src/notification/notification.ts +263 -0
  741. package/src/notification/notify.ts +207 -0
  742. package/src/notification/outlet.ts +16 -0
  743. package/src/option/index.ts +1 -0
  744. package/src/option/option.ts +180 -0
  745. package/src/page/index.ts +1 -0
  746. package/src/page/page.ts +135 -0
  747. package/src/progress/index.ts +1 -0
  748. package/src/progress/progress.ts +143 -0
  749. package/src/qr-scanner/index.ts +1 -0
  750. package/src/qr-scanner/qr-scanner.ts +240 -0
  751. package/src/radio-group/index.ts +2 -0
  752. package/src/radio-group/radio-button.ts +81 -0
  753. package/src/radio-group/radio-group.scss +4 -0
  754. package/src/radio-group/radio-group.ts +110 -0
  755. package/src/radio-group/readme.md +315 -0
  756. package/src/range/index.ts +1 -0
  757. package/src/range/range.ts +102 -0
  758. package/src/rxjs-utils/index.ts +6 -0
  759. package/src/rxjs-utils/mutation-observer.ts +22 -0
  760. package/src/rxjs-utils/waitForElement.ts +33 -0
  761. package/src/rxjs-utils/waitForElementAll.ts +34 -0
  762. package/src/rxjs-utils/waitForElements.ts +40 -0
  763. package/src/rxjs-utils/waitForElementsAll.ts +42 -0
  764. package/src/rxjs-utils/waitUntil.ts +16 -0
  765. package/src/select/README.md +405 -0
  766. package/src/select/index.ts +2 -0
  767. package/src/select/select.ts +766 -0
  768. package/src/sheet/hook.ts +40 -0
  769. package/src/sheet/index.ts +2 -0
  770. package/src/sheet/sheet.service.ts +235 -0
  771. package/src/sheet/sheet.ts +236 -0
  772. package/src/slider/index.ts +2 -0
  773. package/src/slider/slide.ts +107 -0
  774. package/src/slider/slider.ts +164 -0
  775. package/src/steps/index.ts +3 -0
  776. package/src/steps/schmancy-step.ts +213 -0
  777. package/src/steps/schmancy-steps-container.ts +109 -0
  778. package/src/steps/steps.context.ts +23 -0
  779. package/src/store/context-array.ts +358 -0
  780. package/src/store/context-collection.ts +218 -0
  781. package/src/store/context-create.ts +284 -0
  782. package/src/store/context-object.ts +298 -0
  783. package/src/store/filter-directive.ts +614 -0
  784. package/src/store/immer-integration.ts +99 -0
  785. package/src/store/index.ts +10 -0
  786. package/src/store/selector-hook.ts +259 -0
  787. package/src/store/selectors.ts +289 -0
  788. package/src/store/storage-manager.ts +269 -0
  789. package/src/store/store.class.ts +239 -0
  790. package/src/store/types.ts +327 -0
  791. package/src/surface/context.ts +3 -0
  792. package/src/surface/index.ts +1 -0
  793. package/src/surface/surface.styles.ts +334 -0
  794. package/src/surface/surface.ts +59 -0
  795. package/src/table/index.ts +2 -0
  796. package/src/table/row.ts +60 -0
  797. package/src/table/table.ts +266 -0
  798. package/src/tabs/Readme.md +397 -0
  799. package/src/tabs/context.ts +5 -0
  800. package/src/tabs/index.ts +4 -0
  801. package/src/tabs/tab.ts +39 -0
  802. package/src/tabs/tabs-compatibility.ts +20 -0
  803. package/src/tabs/tabs-group.ts +184 -0
  804. package/src/teleport/.excalidraw +2511 -0
  805. package/src/teleport/index.ts +2 -0
  806. package/src/teleport/readme.md +91 -0
  807. package/src/teleport/teleport.component.ts +132 -0
  808. package/src/teleport/teleport.service.ts +139 -0
  809. package/src/teleport/watcher.ts +20 -0
  810. package/src/textarea/index.ts +1 -0
  811. package/src/textarea/textarea.scss +54 -0
  812. package/src/textarea/textarea.ts +432 -0
  813. package/src/theme/context.ts +28 -0
  814. package/src/theme/index.ts +17 -0
  815. package/src/theme/theme-audio-player.ts +470 -0
  816. package/src/theme/theme-controller-boat.ts +49 -0
  817. package/src/theme/theme-controller-example.md +152 -0
  818. package/src/theme/theme-controller.ts +205 -0
  819. package/src/theme/theme.component.ts +305 -0
  820. package/src/theme/theme.events.ts +59 -0
  821. package/src/theme/theme.format.ts +417 -0
  822. package/src/theme/theme.interface.ts +399 -0
  823. package/src/theme/theme.service.ts +520 -0
  824. package/src/theme/theme.style.css +619 -0
  825. package/src/theme-button/index.ts +1 -0
  826. package/src/theme-button/theme-button.ts +35 -0
  827. package/src/tooltip/index.ts +2 -0
  828. package/src/tooltip/tooltip.directive.ts +277 -0
  829. package/src/tooltip/tooltip.ts +216 -0
  830. package/src/tree/README.md +59 -0
  831. package/src/tree/index.ts +1 -0
  832. package/src/tree/tree.ts +132 -0
  833. package/src/types/events.ts +5 -0
  834. package/src/types/index.ts +3 -0
  835. package/src/types/mood-audio.types.ts +220 -0
  836. package/src/types/surface.ts +52 -0
  837. package/src/typewriter/IMPROVEMENTS.md +174 -0
  838. package/src/typewriter/QUICK_REFERENCE.md +166 -0
  839. package/src/typewriter/index.ts +1 -0
  840. package/src/typewriter/test-typewriter.html +97 -0
  841. package/src/typewriter/typewriter.ts +376 -0
  842. package/src/typography/index.ts +1 -0
  843. package/src/typography/typography.ts +448 -0
  844. package/src/utils/animation.ts +418 -0
  845. package/src/utils/hashContent.ts +12 -0
  846. package/src/utils/index.ts +6 -0
  847. package/src/utils/intersection.ts +22 -0
  848. package/src/utils/number.ts +529 -0
  849. package/src/utils/overlay-stack.ts +101 -0
  850. package/src/utils/search.ts +322 -0
  851. package/src/vite-env.d.ts +2 -0
  852. package/src/window/index.ts +10 -0
  853. package/src/window/window-manager.ts +204 -0
  854. package/src/window/window-position.ts +136 -0
  855. package/src/window/window-registry.ts +34 -0
  856. package/src/window/window.ts +724 -0
  857. package/types/mixins/baseElement.d.ts +12 -0
  858. package/types/mixins/discovery.service.d.ts +72 -0
  859. package/types/mixins/index.d.ts +2 -0
  860. package/types/mixins/surface.mixin.d.ts +39 -0
  861. package/types/src/area/area.service.d.ts +2 -0
  862. package/types/src/badge/badge.d.ts +1 -1
  863. package/types/src/boat/boat.d.ts +40 -33
  864. package/types/src/button/icon-button.d.ts +10 -0
  865. package/types/src/chips/filter-chip.d.ts +0 -12
  866. package/types/src/connectivity/connectivity-status.d.ts +25 -0
  867. package/types/src/connectivity/index.d.ts +1 -0
  868. package/types/src/content-drawer/drawer.service.d.ts +3 -0
  869. package/types/src/date-range/date-range.d.ts +2 -0
  870. package/types/src/details/details.d.ts +26 -2
  871. package/types/src/dialog/dialog-base.mixin.d.ts +7 -3
  872. package/types/src/dialog/dialog-service.d.ts +27 -1
  873. package/types/src/dialog/dialog.component.d.ts +35 -1
  874. package/types/src/directives/animate-text.d.ts +67 -0
  875. package/types/src/directives/color.d.ts +2 -3
  876. package/types/src/directives/confirm-click.d.ts +38 -0
  877. package/types/src/directives/cursor-glow.d.ts +38 -0
  878. package/types/src/directives/cycle-text.d.ts +44 -0
  879. package/types/src/directives/depth-of-field.d.ts +38 -0
  880. package/types/src/directives/drag.d.ts +8 -8
  881. package/types/src/directives/gravity.d.ts +40 -0
  882. package/types/src/directives/index.d.ts +16 -2
  883. package/types/src/directives/intersect.d.ts +60 -0
  884. package/types/src/directives/layout.d.ts +62 -0
  885. package/types/src/directives/liquid.d.ts +38 -0
  886. package/types/src/directives/living-border.d.ts +39 -0
  887. package/types/src/directives/long-press.d.ts +38 -0
  888. package/types/src/directives/magnetic.d.ts +35 -0
  889. package/types/src/directives/nebula.d.ts +80 -0
  890. package/types/src/directives/reduced-motion.d.ts +2 -0
  891. package/types/src/directives/reveal.d.ts +54 -0
  892. package/types/src/directives/ripple.d.ts +15 -5
  893. package/types/src/directives/typewriter.d.ts +50 -0
  894. package/types/src/discovery/discovery.service.d.ts +72 -0
  895. package/types/src/expand/expand-root.component.d.ts +30 -0
  896. package/types/src/expand/expand.component.d.ts +38 -0
  897. package/types/src/expand/index.d.ts +2 -0
  898. package/types/src/float/float.d.ts +14 -0
  899. package/types/src/float/index.d.ts +1 -0
  900. package/types/src/icons/icon.d.ts +14 -0
  901. package/types/src/iframe/iframe.d.ts +37 -0
  902. package/types/src/iframe/index.d.ts +1 -0
  903. package/types/src/index.d.ts +6 -1
  904. package/types/src/input/index.d.ts +1 -1
  905. package/types/src/layout/scroll/scroll.d.ts +11 -0
  906. package/types/src/lightbox/lightbox.d.ts +1 -0
  907. package/types/src/mailbox/email-recipients.d.ts +2 -2
  908. package/types/src/mailbox/types.d.ts +1 -1
  909. package/types/src/navigation-bar/navigation-bar.d.ts +17 -0
  910. package/types/src/notification/notification.d.ts +1 -0
  911. package/types/src/page/page.d.ts +6 -0
  912. package/types/src/range/index.d.ts +1 -0
  913. package/types/src/range/range.d.ts +25 -0
  914. package/types/src/sheet/sheet.d.ts +0 -1
  915. package/types/src/steps/schmancy-steps-container.d.ts +8 -6
  916. package/types/src/surface/surface.d.ts +4 -27
  917. package/types/src/surface/surface.styles.d.ts +31 -0
  918. package/types/src/tabs/tab.d.ts +1 -0
  919. package/types/src/textarea/textarea.d.ts +3 -2
  920. package/types/src/theme/context.d.ts +2 -282
  921. package/types/src/theme/theme.component.d.ts +9 -1
  922. package/types/src/theme/theme.format.d.ts +1 -1
  923. package/types/src/theme/theme.interface.d.ts +8 -1
  924. package/types/src/theme/theme.service.d.ts +20 -282
  925. package/types/src/types/surface.d.ts +27 -1
  926. package/types/src/typography/typography.d.ts +17 -3
  927. package/types/src/utils/animation.d.ts +254 -0
  928. package/types/src/utils/index.d.ts +2 -0
  929. package/types/src/utils/number.d.ts +18 -2
  930. package/types/src/utils/overlay-stack.d.ts +54 -0
  931. package/types/src/window/index.d.ts +3 -0
  932. package/types/src/window/window-manager.d.ts +49 -0
  933. package/types/src/window/window-position.d.ts +64 -0
  934. package/types/src/window/window-registry.d.ts +28 -0
  935. package/types/src/window/window.d.ts +67 -0
  936. package/ai/animated-text.md +0 -116
  937. package/ai/audio.md +0 -241
  938. package/ai/boat.md +0 -53
  939. package/ai/component-relationships.md +0 -93
  940. package/ai/context.md +0 -572
  941. package/ai/countries.md +0 -271
  942. package/ai/date-range-inline.md +0 -262
  943. package/ai/delay.md +0 -158
  944. package/ai/index.md +0 -112
  945. package/ai/layout.md +0 -187
  946. package/ai/mailbox.md +0 -530
  947. package/ai/map.md +0 -234
  948. package/ai/navigation-bar-item.md +0 -259
  949. package/ai/option.md +0 -173
  950. package/ai/payment-card-form.md +0 -242
  951. package/ai/slider.md +0 -227
  952. package/ai/spinner.md +0 -165
  953. package/ai/teleport.md +0 -197
  954. package/ai/template.md +0 -144
  955. package/ai/theme-button.md +0 -173
  956. package/ai/timezone.md +0 -276
  957. package/ai/typewriter.md +0 -335
  958. package/dist/_commonjsHelpers-Dw9sPFZy.js +0 -7
  959. package/dist/_commonjsHelpers-Dw9sPFZy.js.map +0 -1
  960. package/dist/_commonjsHelpers-k2hpEU-q.cjs +0 -2
  961. package/dist/_commonjsHelpers-k2hpEU-q.cjs.map +0 -1
  962. package/dist/ai/animated-text.md +0 -116
  963. package/dist/ai/audio.md +0 -241
  964. package/dist/ai/boat.md +0 -53
  965. package/dist/ai/component-relationships.md +0 -93
  966. package/dist/ai/context.md +0 -572
  967. package/dist/ai/countries.md +0 -271
  968. package/dist/ai/date-range-inline.md +0 -262
  969. package/dist/ai/delay.md +0 -158
  970. package/dist/ai/index.md +0 -112
  971. package/dist/ai/layout.md +0 -187
  972. package/dist/ai/mailbox.md +0 -530
  973. package/dist/ai/map.md +0 -234
  974. package/dist/ai/navigation-bar-item.md +0 -259
  975. package/dist/ai/option.md +0 -173
  976. package/dist/ai/payment-card-form.md +0 -242
  977. package/dist/ai/slider.md +0 -227
  978. package/dist/ai/spinner.md +0 -165
  979. package/dist/ai/teleport.md +0 -197
  980. package/dist/ai/template.md +0 -144
  981. package/dist/ai/theme-button.md +0 -173
  982. package/dist/ai/timezone.md +0 -276
  983. package/dist/ai/typewriter.md +0 -335
  984. package/dist/animated-text-B3DQRJBy.cjs +0 -37
  985. package/dist/animated-text-B3DQRJBy.cjs.map +0 -1
  986. package/dist/animated-text-BAj4-6hE.js +0 -76
  987. package/dist/animated-text-BAj4-6hE.js.map +0 -1
  988. package/dist/animated-text.cjs +0 -2
  989. package/dist/animated-text.cjs.map +0 -1
  990. package/dist/animated-text.js +0 -2
  991. package/dist/animated-text.js.map +0 -1
  992. package/dist/area.cjs.map +0 -1
  993. package/dist/area.component-CP4DZ0d8.js +0 -330
  994. package/dist/area.component-CP4DZ0d8.js.map +0 -1
  995. package/dist/area.component-ChxSLt16.cjs +0 -12
  996. package/dist/area.component-ChxSLt16.cjs.map +0 -1
  997. package/dist/area.js.map +0 -1
  998. package/dist/audio.cjs.map +0 -1
  999. package/dist/audio.js.map +0 -1
  1000. package/dist/autocomplete-CAaVSg4g.cjs +0 -112
  1001. package/dist/autocomplete-CAaVSg4g.cjs.map +0 -1
  1002. package/dist/autocomplete-CGbACUYd.js +0 -333
  1003. package/dist/autocomplete-CGbACUYd.js.map +0 -1
  1004. package/dist/autocomplete.cjs.map +0 -1
  1005. package/dist/autocomplete.js.map +0 -1
  1006. package/dist/avatar-nWOZXEsW.cjs +0 -273
  1007. package/dist/avatar-nWOZXEsW.cjs.map +0 -1
  1008. package/dist/avatar-rLCF6MSI.js +0 -895
  1009. package/dist/avatar-rLCF6MSI.js.map +0 -1
  1010. package/dist/badge.cjs.map +0 -1
  1011. package/dist/badge.js.map +0 -1
  1012. package/dist/boat-Ckt9v__d.js +0 -301
  1013. package/dist/boat-Ckt9v__d.js.map +0 -1
  1014. package/dist/boat-yNAZ2LLB.cjs +0 -97
  1015. package/dist/boat-yNAZ2LLB.cjs.map +0 -1
  1016. package/dist/boat.cjs.map +0 -1
  1017. package/dist/boat.js.map +0 -1
  1018. package/dist/busy.cjs.map +0 -1
  1019. package/dist/busy.js.map +0 -1
  1020. package/dist/card.cjs.map +0 -1
  1021. package/dist/card.js.map +0 -1
  1022. package/dist/checkbox-BnAlpsJN.cjs +0 -40
  1023. package/dist/checkbox-BnAlpsJN.cjs.map +0 -1
  1024. package/dist/checkbox-D22yfGe3.js +0 -526
  1025. package/dist/checkbox-D22yfGe3.js.map +0 -1
  1026. package/dist/checkbox.cjs.map +0 -1
  1027. package/dist/checkbox.js.map +0 -1
  1028. package/dist/chips.cjs.map +0 -1
  1029. package/dist/chips.js.map +0 -1
  1030. package/dist/code-highlight.cjs.map +0 -1
  1031. package/dist/code-highlight.js.map +0 -1
  1032. package/dist/code-preview-DPlQayFd.js +0 -967
  1033. package/dist/code-preview-DPlQayFd.js.map +0 -1
  1034. package/dist/code-preview-jPnX60FF.cjs +0 -193
  1035. package/dist/code-preview-jPnX60FF.cjs.map +0 -1
  1036. package/dist/components.cjs.map +0 -1
  1037. package/dist/components.js.map +0 -1
  1038. package/dist/consume-5D1qfVWM.js +0 -38
  1039. package/dist/consume-5D1qfVWM.js.map +0 -1
  1040. package/dist/consume-edta5ng5.cjs +0 -2
  1041. package/dist/consume-edta5ng5.cjs.map +0 -1
  1042. package/dist/content-drawer.cjs.map +0 -1
  1043. package/dist/content-drawer.js.map +0 -1
  1044. package/dist/context-create-B_S-sD5B.js +0 -1107
  1045. package/dist/context-create-B_S-sD5B.js.map +0 -1
  1046. package/dist/context-create-DTybDbZp.cjs +0 -2
  1047. package/dist/context-create-DTybDbZp.cjs.map +0 -1
  1048. package/dist/date-range-GFm5NG33.js +0 -639
  1049. package/dist/date-range-GFm5NG33.js.map +0 -1
  1050. package/dist/date-range-inline-CgX2o0FP.cjs +0 -44
  1051. package/dist/date-range-inline-CgX2o0FP.cjs.map +0 -1
  1052. package/dist/date-range-inline-DTQLESAZ.js +0 -197
  1053. package/dist/date-range-inline-DTQLESAZ.js.map +0 -1
  1054. package/dist/date-range-inline.cjs.map +0 -1
  1055. package/dist/date-range-inline.js.map +0 -1
  1056. package/dist/date-range-ug3B9CFT.cjs +0 -119
  1057. package/dist/date-range-ug3B9CFT.cjs.map +0 -1
  1058. package/dist/date-range.cjs.map +0 -1
  1059. package/dist/date-range.js.map +0 -1
  1060. package/dist/delay-CWtBL0VD.cjs +0 -10
  1061. package/dist/delay-CWtBL0VD.cjs.map +0 -1
  1062. package/dist/delay-DEe1CmHc.js +0 -288
  1063. package/dist/delay-DEe1CmHc.js.map +0 -1
  1064. package/dist/delay.cjs.map +0 -1
  1065. package/dist/delay.js.map +0 -1
  1066. package/dist/details-D-LXW23W.js +0 -100
  1067. package/dist/details-D-LXW23W.js.map +0 -1
  1068. package/dist/details-DVke77dU.cjs +0 -55
  1069. package/dist/details-DVke77dU.cjs.map +0 -1
  1070. package/dist/details.cjs.map +0 -1
  1071. package/dist/details.js.map +0 -1
  1072. package/dist/dialog-service-C86xTS8q.cjs +0 -2
  1073. package/dist/dialog-service-C86xTS8q.cjs.map +0 -1
  1074. package/dist/dialog-service-D9E3jLAR.js +0 -118
  1075. package/dist/dialog-service-D9E3jLAR.js.map +0 -1
  1076. package/dist/dialog.component-BM0D-hK9.cjs +0 -48
  1077. package/dist/dialog.component-BM0D-hK9.cjs.map +0 -1
  1078. package/dist/dialog.component-a7FlKhGD.js +0 -145
  1079. package/dist/dialog.component-a7FlKhGD.js.map +0 -1
  1080. package/dist/discovery.service-BbYjU5x8.js +0 -21
  1081. package/dist/discovery.service-BbYjU5x8.js.map +0 -1
  1082. package/dist/discovery.service-BpGCuXPd.cjs +0 -2
  1083. package/dist/discovery.service-BpGCuXPd.cjs.map +0 -1
  1084. package/dist/divider-CzTpxOqt.js +0 -84
  1085. package/dist/divider-CzTpxOqt.js.map +0 -1
  1086. package/dist/divider-D8KStUhN.cjs +0 -58
  1087. package/dist/divider-D8KStUhN.cjs.map +0 -1
  1088. package/dist/divider.cjs.map +0 -1
  1089. package/dist/divider.js.map +0 -1
  1090. package/dist/dropdown-content-CngZN3vv.cjs +0 -58
  1091. package/dist/dropdown-content-CngZN3vv.cjs.map +0 -1
  1092. package/dist/dropdown-content-DCn-g0-f.js +0 -147
  1093. package/dist/dropdown-content-DCn-g0-f.js.map +0 -1
  1094. package/dist/email-recipients-BhntMZMf.cjs +0 -1173
  1095. package/dist/email-recipients-BhntMZMf.cjs.map +0 -1
  1096. package/dist/email-recipients-BzjAKNJ0.js +0 -1733
  1097. package/dist/email-recipients-BzjAKNJ0.js.map +0 -1
  1098. package/dist/emotional-sounds-BRnFhww6.js +0 -234
  1099. package/dist/emotional-sounds-BRnFhww6.js.map +0 -1
  1100. package/dist/emotional-sounds-DVGhmoZf.cjs +0 -2
  1101. package/dist/emotional-sounds-DVGhmoZf.cjs.map +0 -1
  1102. package/dist/extra.cjs.map +0 -1
  1103. package/dist/extra.js.map +0 -1
  1104. package/dist/flex-5dR48zie.js +0 -183
  1105. package/dist/flex-5dR48zie.js.map +0 -1
  1106. package/dist/flex-oHl2EfYB.cjs +0 -18
  1107. package/dist/flex-oHl2EfYB.cjs.map +0 -1
  1108. package/dist/flow-D0e7hGXO.cjs +0 -2
  1109. package/dist/flow-D0e7hGXO.cjs.map +0 -1
  1110. package/dist/flow-DXYqC9OA.js +0 -340
  1111. package/dist/flow-DXYqC9OA.js.map +0 -1
  1112. package/dist/form-BlPiAPt7.cjs +0 -2
  1113. package/dist/form-BlPiAPt7.cjs.map +0 -1
  1114. package/dist/form-BxVM6JTn.js +0 -141
  1115. package/dist/form-BxVM6JTn.js.map +0 -1
  1116. package/dist/form.cjs.map +0 -1
  1117. package/dist/form.js.map +0 -1
  1118. package/dist/formField.mixin-BCGA7Ea3.js +0 -48
  1119. package/dist/formField.mixin-BCGA7Ea3.js.map +0 -1
  1120. package/dist/formField.mixin-BfJMifU9.cjs +0 -2
  1121. package/dist/formField.mixin-BfJMifU9.cjs.map +0 -1
  1122. package/dist/height-CfECBO2j.js +0 -44
  1123. package/dist/height-CfECBO2j.js.map +0 -1
  1124. package/dist/height-Z70qJYJK.cjs +0 -2
  1125. package/dist/height-Z70qJYJK.cjs.map +0 -1
  1126. package/dist/icon-DHEXr3c-.cjs +0 -49
  1127. package/dist/icon-DHEXr3c-.cjs.map +0 -1
  1128. package/dist/icon-DYpLoegR.js +0 -84
  1129. package/dist/icon-DYpLoegR.js.map +0 -1
  1130. package/dist/icon-button-CmZBLHWC.js +0 -164
  1131. package/dist/icon-button-CmZBLHWC.js.map +0 -1
  1132. package/dist/icon-button-IbSX8C98.cjs +0 -70
  1133. package/dist/icon-button-IbSX8C98.cjs.map +0 -1
  1134. package/dist/icons.cjs.map +0 -1
  1135. package/dist/icons.js.map +0 -1
  1136. package/dist/index-CCi1otmh.cjs +0 -2
  1137. package/dist/index-CCi1otmh.cjs.map +0 -1
  1138. package/dist/index-CW6PhEkx.js +0 -17
  1139. package/dist/index-CW6PhEkx.js.map +0 -1
  1140. package/dist/index.cjs.map +0 -1
  1141. package/dist/index.js.map +0 -1
  1142. package/dist/input-BByjYlgl.cjs +0 -51
  1143. package/dist/input-BByjYlgl.cjs.map +0 -1
  1144. package/dist/input-D0cQ9DOY.js +0 -237
  1145. package/dist/input-D0cQ9DOY.js.map +0 -1
  1146. package/dist/input-chip-B5ErXgCB.js +0 -206
  1147. package/dist/input-chip-B5ErXgCB.js.map +0 -1
  1148. package/dist/input-chip-DkWaTciP.cjs +0 -147
  1149. package/dist/input-chip-DkWaTciP.cjs.map +0 -1
  1150. package/dist/input.cjs.map +0 -1
  1151. package/dist/input.js.map +0 -1
  1152. package/dist/intersection-CJxzz8c-.js +0 -15
  1153. package/dist/intersection-CJxzz8c-.js.map +0 -1
  1154. package/dist/intersection-CVvaDv96.cjs +0 -2
  1155. package/dist/intersection-CVvaDv96.cjs.map +0 -1
  1156. package/dist/json-BZVe74np.cjs +0 -12
  1157. package/dist/json-BZVe74np.cjs.map +0 -1
  1158. package/dist/json-PKewOWuJ.js +0 -51
  1159. package/dist/json-PKewOWuJ.js.map +0 -1
  1160. package/dist/layout.cjs.map +0 -1
  1161. package/dist/layout.js.map +0 -1
  1162. package/dist/lightbox-service-D-0JtxB1.cjs +0 -202
  1163. package/dist/lightbox-service-D-0JtxB1.cjs.map +0 -1
  1164. package/dist/lightbox-service-DZMnb1eU.js +0 -458
  1165. package/dist/lightbox-service-DZMnb1eU.js.map +0 -1
  1166. package/dist/lightbox.cjs.map +0 -1
  1167. package/dist/lightbox.js.map +0 -1
  1168. package/dist/list-B_2m7l3g.cjs +0 -17
  1169. package/dist/list-B_2m7l3g.cjs.map +0 -1
  1170. package/dist/list-CW56LV-v.js +0 -69
  1171. package/dist/list-CW56LV-v.js.map +0 -1
  1172. package/dist/list.cjs.map +0 -1
  1173. package/dist/list.js.map +0 -1
  1174. package/dist/litElement.mixin-CrpeGpZ7.cjs +0 -2
  1175. package/dist/litElement.mixin-CrpeGpZ7.cjs.map +0 -1
  1176. package/dist/litElement.mixin-DHZXtvYq.js +0 -15
  1177. package/dist/litElement.mixin-DHZXtvYq.js.map +0 -1
  1178. package/dist/mailbox.cjs.map +0 -1
  1179. package/dist/mailbox.js.map +0 -1
  1180. package/dist/map-2Hl60a0A.js +0 -175
  1181. package/dist/map-2Hl60a0A.js.map +0 -1
  1182. package/dist/map-DyPS9G7M.cjs +0 -81
  1183. package/dist/map-DyPS9G7M.cjs.map +0 -1
  1184. package/dist/map.cjs.map +0 -1
  1185. package/dist/map.js.map +0 -1
  1186. package/dist/media-CS8HpKnK.cjs +0 -152
  1187. package/dist/media-CS8HpKnK.cjs.map +0 -1
  1188. package/dist/media-DtWbcRxL.js +0 -244
  1189. package/dist/media-DtWbcRxL.js.map +0 -1
  1190. package/dist/menu-Caju5-zd.js +0 -60
  1191. package/dist/menu-Caju5-zd.js.map +0 -1
  1192. package/dist/menu-rX5RPAI2.cjs +0 -24
  1193. package/dist/menu-rX5RPAI2.cjs.map +0 -1
  1194. package/dist/menu.cjs.map +0 -1
  1195. package/dist/menu.js.map +0 -1
  1196. package/dist/nav-drawer.cjs.map +0 -1
  1197. package/dist/nav-drawer.js.map +0 -1
  1198. package/dist/navigation-bar.cjs.map +0 -1
  1199. package/dist/navigation-bar.js.map +0 -1
  1200. package/dist/navigation-rail-Ctketq5a.js +0 -256
  1201. package/dist/navigation-rail-Ctketq5a.js.map +0 -1
  1202. package/dist/navigation-rail-DC9_oSIM.cjs +0 -79
  1203. package/dist/navigation-rail-DC9_oSIM.cjs.map +0 -1
  1204. package/dist/notification-service-CUlfXqmj.js +0 -155
  1205. package/dist/notification-service-CUlfXqmj.js.map +0 -1
  1206. package/dist/notification-service-DknbpqTt.cjs +0 -19
  1207. package/dist/notification-service-DknbpqTt.cjs.map +0 -1
  1208. package/dist/notification.cjs.map +0 -1
  1209. package/dist/notification.js.map +0 -1
  1210. package/dist/notify-DJSOWTxv.js +0 -35
  1211. package/dist/notify-DJSOWTxv.js.map +0 -1
  1212. package/dist/notify-DickIEHW.cjs +0 -2
  1213. package/dist/notify-DickIEHW.cjs.map +0 -1
  1214. package/dist/number-B7aCRYnH.cjs +0 -2
  1215. package/dist/number-B7aCRYnH.cjs.map +0 -1
  1216. package/dist/number-BhTiptLA.js +0 -99
  1217. package/dist/number-BhTiptLA.js.map +0 -1
  1218. package/dist/option-Bng41-rY.js +0 -77
  1219. package/dist/option-Bng41-rY.js.map +0 -1
  1220. package/dist/option-DYT5Rkgy.cjs +0 -44
  1221. package/dist/option-DYT5Rkgy.cjs.map +0 -1
  1222. package/dist/option.cjs.map +0 -1
  1223. package/dist/option.js.map +0 -1
  1224. package/dist/page-BLn9gtSd.cjs +0 -20
  1225. package/dist/page-BLn9gtSd.cjs.map +0 -1
  1226. package/dist/page-D-ROcQDd.js +0 -48
  1227. package/dist/page-D-ROcQDd.js.map +0 -1
  1228. package/dist/payment-card-form-5UtfWzoW.cjs +0 -74
  1229. package/dist/payment-card-form-5UtfWzoW.cjs.map +0 -1
  1230. package/dist/payment-card-form-BJa4RgF2.js +0 -515
  1231. package/dist/payment-card-form-BJa4RgF2.js.map +0 -1
  1232. package/dist/pills-BS5rZ6C3.js +0 -346
  1233. package/dist/pills-BS5rZ6C3.js.map +0 -1
  1234. package/dist/pills-Blf7IAeq.cjs +0 -113
  1235. package/dist/pills-Blf7IAeq.cjs.map +0 -1
  1236. package/dist/progress-DlhYniW_.cjs +0 -35
  1237. package/dist/progress-DlhYniW_.cjs.map +0 -1
  1238. package/dist/progress-yTIX6EqC.js +0 -56
  1239. package/dist/progress-yTIX6EqC.js.map +0 -1
  1240. package/dist/progress.cjs.map +0 -1
  1241. package/dist/progress.js.map +0 -1
  1242. package/dist/provide-BxZ2kn_p.cjs +0 -2
  1243. package/dist/provide-BxZ2kn_p.cjs.map +0 -1
  1244. package/dist/provide-tcktw8xB.js +0 -100
  1245. package/dist/provide-tcktw8xB.js.map +0 -1
  1246. package/dist/qr-scanner-DOs7uNS_.cjs +0 -29
  1247. package/dist/qr-scanner-DOs7uNS_.cjs.map +0 -1
  1248. package/dist/qr-scanner-DjZ8mgHV.js +0 -743
  1249. package/dist/qr-scanner-DjZ8mgHV.js.map +0 -1
  1250. package/dist/radio-button-N_PrrxKB.cjs +0 -41
  1251. package/dist/radio-button-N_PrrxKB.cjs.map +0 -1
  1252. package/dist/radio-button-me3SRHGu.js +0 -115
  1253. package/dist/radio-button-me3SRHGu.js.map +0 -1
  1254. package/dist/radio-group.cjs.map +0 -1
  1255. package/dist/radio-group.js.map +0 -1
  1256. package/dist/ripple-BgJXbNSP.js +0 -124
  1257. package/dist/ripple-BgJXbNSP.js.map +0 -1
  1258. package/dist/ripple-x6sTX02K.cjs +0 -16
  1259. package/dist/ripple-x6sTX02K.cjs.map +0 -1
  1260. package/dist/rxjs-utils.cjs.map +0 -1
  1261. package/dist/rxjs-utils.js.map +0 -1
  1262. package/dist/schmancy-steps-container-J6P-NNNj.js +0 -156
  1263. package/dist/schmancy-steps-container-J6P-NNNj.js.map +0 -1
  1264. package/dist/schmancy-steps-container-T57BKMzi.cjs +0 -70
  1265. package/dist/schmancy-steps-container-T57BKMzi.cjs.map +0 -1
  1266. package/dist/scroll-C_gfUgjn.js +0 -87
  1267. package/dist/scroll-C_gfUgjn.js.map +0 -1
  1268. package/dist/scroll-CecsowP7.cjs +0 -27
  1269. package/dist/scroll-CecsowP7.cjs.map +0 -1
  1270. package/dist/search-B1s7thB0.cjs +0 -2
  1271. package/dist/search-B1s7thB0.cjs.map +0 -1
  1272. package/dist/search-DxxnLa5u.js +0 -95
  1273. package/dist/search-DxxnLa5u.js.map +0 -1
  1274. package/dist/select-BBA0gBHf.js +0 -280
  1275. package/dist/select-BBA0gBHf.js.map +0 -1
  1276. package/dist/select-D9oCjv7N.cjs +0 -57
  1277. package/dist/select-D9oCjv7N.cjs.map +0 -1
  1278. package/dist/select.cjs.map +0 -1
  1279. package/dist/select.js.map +0 -1
  1280. package/dist/selector-hook-9w2auh2O.cjs +0 -2
  1281. package/dist/selector-hook-9w2auh2O.cjs.map +0 -1
  1282. package/dist/selector-hook-CHV4kDMd.js +0 -319
  1283. package/dist/selector-hook-CHV4kDMd.js.map +0 -1
  1284. package/dist/sheet-0oUfBmXX.cjs +0 -15
  1285. package/dist/sheet-0oUfBmXX.cjs.map +0 -1
  1286. package/dist/sheet-CNcDT3VP.js +0 -97
  1287. package/dist/sheet-CNcDT3VP.js.map +0 -1
  1288. package/dist/sheet.cjs.map +0 -1
  1289. package/dist/sheet.js.map +0 -1
  1290. package/dist/sheet.service-2MobB-9z.js +0 -68
  1291. package/dist/sheet.service-2MobB-9z.js.map +0 -1
  1292. package/dist/sheet.service-su_7yDQ-.cjs +0 -2
  1293. package/dist/sheet.service-su_7yDQ-.cjs.map +0 -1
  1294. package/dist/slider-CV-Ehp_5.cjs +0 -83
  1295. package/dist/slider-CV-Ehp_5.cjs.map +0 -1
  1296. package/dist/slider-CkE-iFUy.js +0 -161
  1297. package/dist/slider-CkE-iFUy.js.map +0 -1
  1298. package/dist/sound.service-Nza4c6wv.js +0 -102
  1299. package/dist/sound.service-Nza4c6wv.js.map +0 -1
  1300. package/dist/sound.service-eRirZw59.cjs +0 -2
  1301. package/dist/sound.service-eRirZw59.cjs.map +0 -1
  1302. package/dist/spinner-Bfn8KC-9.cjs +0 -135
  1303. package/dist/spinner-Bfn8KC-9.cjs.map +0 -1
  1304. package/dist/spinner-DiMbWXp9.js +0 -168
  1305. package/dist/spinner-DiMbWXp9.js.map +0 -1
  1306. package/dist/store.cjs.map +0 -1
  1307. package/dist/store.js.map +0 -1
  1308. package/dist/suggestion-chip-CEDqUNoS.js +0 -481
  1309. package/dist/suggestion-chip-CEDqUNoS.js.map +0 -1
  1310. package/dist/suggestion-chip-HhsLtZXR.cjs +0 -271
  1311. package/dist/suggestion-chip-HhsLtZXR.cjs.map +0 -1
  1312. package/dist/surface-CW3H23Va.cjs +0 -199
  1313. package/dist/surface-CW3H23Va.cjs.map +0 -1
  1314. package/dist/surface-eBfnSwQS.js +0 -220
  1315. package/dist/surface-eBfnSwQS.js.map +0 -1
  1316. package/dist/surface.cjs.map +0 -1
  1317. package/dist/surface.js.map +0 -1
  1318. package/dist/table-D0tiSL_u.cjs +0 -64
  1319. package/dist/table-D0tiSL_u.cjs.map +0 -1
  1320. package/dist/table-Dmo4TvTx.js +0 -561
  1321. package/dist/table-Dmo4TvTx.js.map +0 -1
  1322. package/dist/table.cjs.map +0 -1
  1323. package/dist/table.js.map +0 -1
  1324. package/dist/tabs-compatibility-Bit6y6en.js +0 -104
  1325. package/dist/tabs-compatibility-Bit6y6en.js.map +0 -1
  1326. package/dist/tabs-compatibility-Vq_2-ekz.cjs +0 -35
  1327. package/dist/tabs-compatibility-Vq_2-ekz.cjs.map +0 -1
  1328. package/dist/tabs.cjs.map +0 -1
  1329. package/dist/tabs.js.map +0 -1
  1330. package/dist/tailwind.mixin-Bp_PR6yc.js +0 -67
  1331. package/dist/tailwind.mixin-Bp_PR6yc.js.map +0 -1
  1332. package/dist/tailwind.mixin-Cp4PyXok.cjs +0 -2
  1333. package/dist/tailwind.mixin-Cp4PyXok.cjs.map +0 -1
  1334. package/dist/teleport.cjs.map +0 -1
  1335. package/dist/teleport.js.map +0 -1
  1336. package/dist/textarea-B1d1QCqT.js +0 -134
  1337. package/dist/textarea-B1d1QCqT.js.map +0 -1
  1338. package/dist/textarea-DG8CHhZA.cjs +0 -44
  1339. package/dist/textarea-DG8CHhZA.cjs.map +0 -1
  1340. package/dist/textarea.cjs.map +0 -1
  1341. package/dist/textarea.js.map +0 -1
  1342. package/dist/theme-button-CPL6Eaqd.cjs +0 -9
  1343. package/dist/theme-button-CPL6Eaqd.cjs.map +0 -1
  1344. package/dist/theme-button-CrLuMQNe.js +0 -27
  1345. package/dist/theme-button-CrLuMQNe.js.map +0 -1
  1346. package/dist/theme-button.cjs.map +0 -1
  1347. package/dist/theme-button.js.map +0 -1
  1348. package/dist/theme-controller-boat-CXbNJSI3.cjs +0 -178
  1349. package/dist/theme-controller-boat-CXbNJSI3.cjs.map +0 -1
  1350. package/dist/theme-controller-boat-CzSmjyKq.js +0 -1159
  1351. package/dist/theme-controller-boat-CzSmjyKq.js.map +0 -1
  1352. package/dist/theme.cjs.map +0 -1
  1353. package/dist/theme.events-CPSLaOlR.js +0 -6
  1354. package/dist/theme.events-CPSLaOlR.js.map +0 -1
  1355. package/dist/theme.events-Car6U_SQ.cjs +0 -2
  1356. package/dist/theme.events-Car6U_SQ.cjs.map +0 -1
  1357. package/dist/theme.interface-BLfE5J_1.js +0 -5
  1358. package/dist/theme.interface-BLfE5J_1.js.map +0 -1
  1359. package/dist/theme.interface-BMeNadVb.cjs +0 -2
  1360. package/dist/theme.interface-BMeNadVb.cjs.map +0 -1
  1361. package/dist/theme.js.map +0 -1
  1362. package/dist/timezone-4vwX0BgA.js +0 -112
  1363. package/dist/timezone-4vwX0BgA.js.map +0 -1
  1364. package/dist/timezone-BxvQcqe1.cjs +0 -32
  1365. package/dist/timezone-BxvQcqe1.cjs.map +0 -1
  1366. package/dist/tooltip-CjdvBf4X.js +0 -119
  1367. package/dist/tooltip-CjdvBf4X.js.map +0 -1
  1368. package/dist/tooltip-ZtnGjoJd.cjs +0 -7
  1369. package/dist/tooltip-ZtnGjoJd.cjs.map +0 -1
  1370. package/dist/tree-CBEjV7jP.js +0 -65
  1371. package/dist/tree-CBEjV7jP.js.map +0 -1
  1372. package/dist/tree-DP5U00NA.cjs +0 -27
  1373. package/dist/tree-DP5U00NA.cjs.map +0 -1
  1374. package/dist/tslib.es6-DgOcxv4s.cjs +0 -2
  1375. package/dist/tslib.es6-DgOcxv4s.cjs.map +0 -1
  1376. package/dist/tslib.es6-ujVQHAQ4.js +0 -10
  1377. package/dist/tslib.es6-ujVQHAQ4.js.map +0 -1
  1378. package/dist/typewriter-C6kFjLcX.cjs +0 -124
  1379. package/dist/typewriter-C6kFjLcX.cjs.map +0 -1
  1380. package/dist/typewriter-Eo5qXoGC.js +0 -555
  1381. package/dist/typewriter-Eo5qXoGC.js.map +0 -1
  1382. package/dist/typewriter.cjs.map +0 -1
  1383. package/dist/typewriter.js.map +0 -1
  1384. package/dist/typography-C_1gdM2I.js +0 -264
  1385. package/dist/typography-C_1gdM2I.js.map +0 -1
  1386. package/dist/typography-DGyjlLCE.cjs +0 -243
  1387. package/dist/typography-DGyjlLCE.cjs.map +0 -1
  1388. package/dist/utils-C38P63L6.cjs +0 -2
  1389. package/dist/utils-C38P63L6.cjs.map +0 -1
  1390. package/dist/utils-CYOVFxSx.js +0 -150
  1391. package/dist/utils-CYOVFxSx.js.map +0 -1
  1392. package/dist/utils.cjs.map +0 -1
  1393. package/dist/utils.js.map +0 -1
  1394. package/types/src/animated-text/animated-text.d.ts +0 -30
  1395. package/types/src/animated-text/index.d.ts +0 -1
  1396. package/types/src/directives/height.d.ts +0 -20
@@ -1,1733 +0,0 @@
1
- import { fromEvent as k, takeUntil as C } from "rxjs";
2
- import "rxjs/operators";
3
- import "lit/directives/class-map.js";
4
- import "lit/directives/style-map.js";
5
- import { property as h, state as y, customElement as T } from "lit/decorators.js";
6
- import { T as O } from "./tailwind.mixin-Bp_PR6yc.js";
7
- import { $ as j } from "./litElement.mixin-DHZXtvYq.js";
8
- import { css as z, html as r } from "lit";
9
- import { when as d } from "lit/directives/when.js";
10
- import { createRef as E, ref as A } from "lit/directives/ref.js";
11
- import { repeat as D } from "lit/directives/repeat.js";
12
- import { $ as P } from "./dialog-service-D9E3jLAR.js";
13
- import "./dialog.component-a7FlKhGD.js";
14
- import "@floating-ui/dom";
15
- import { $ as b } from "./notification-service-CUlfXqmj.js";
16
- import { s as L } from "./sheet.service-2MobB-9z.js";
17
- var B = Object.defineProperty, M = Object.getOwnPropertyDescriptor, u = (e, t, s, i) => {
18
- for (var a, n = i > 1 ? void 0 : i ? M(t, s) : t, c = e.length - 1; c >= 0; c--) (a = e[c]) && (n = (i ? a(t, s, n) : a(n)) || n);
19
- return i && n && B(t, s, n), n;
20
- };
21
- let m = class extends j(z`
22
- :host {
23
- display: block;
24
- height: 100%;
25
- }
26
- `) {
27
- constructor() {
28
- super(...arguments), this.config = {}, this.templates = [], this.importSources = [], this.disabled = !1, this.recipientsTitle = "Recipients", this.recipientsEmptyTitle = "No recipients yet", this.recipientsEmptyMessage = "Import from sources or upload a CSV", this.enableCsvImport = !0, this.enableDragDrop = !0, this.recipients = [], this.selectedRecipients = [], this.subject = "", this.body = "", this.templateId = null, this.attachments = [], this.isSending = !1, this.handleEmailsImported = (e) => {
29
- const { emails: t } = e.detail, s = [.../* @__PURE__ */ new Set([...this.recipients, ...t])], i = t.filter((a) => !this.recipients.includes(a));
30
- this.recipients = s, this.selectedRecipients = [.../* @__PURE__ */ new Set([...this.selectedRecipients, ...i])], this.dispatchEvent(new CustomEvent("emails-imported", { detail: { emails: i, source: e.detail.source }, bubbles: !0, composed: !0 }));
31
- }, this.handleRecipientRemoved = (e) => {
32
- const { email: t } = e.detail;
33
- this.recipients = this.recipients.filter((s) => s !== t), this.selectedRecipients = this.selectedRecipients.filter((s) => s !== t), this.dispatchEvent(new CustomEvent("recipient-removed", { detail: { email: t }, bubbles: !0, composed: !0 }));
34
- }, this.handleRecipientsCleared = () => {
35
- this.recipients = [], this.selectedRecipients = [], this.dispatchEvent(new CustomEvent("recipients-cleared", { bubbles: !0, composed: !0 }));
36
- }, this.handleSelectionChanged = (e) => {
37
- const { selectedEmails: t } = e.detail;
38
- this.selectedRecipients = t, this.dispatchEvent(new CustomEvent("selection-changed", { detail: { selectedEmails: t }, bubbles: !0, composed: !0 }));
39
- }, this.handleEditorChange = (e) => {
40
- const { subject: t, body: s, templateId: i, attachments: a } = e.detail;
41
- this.subject = t, this.body = s, this.templateId = i, this.attachments = a, this.dispatchEvent(new CustomEvent("compose-changed", { detail: { subject: t, body: s, templateId: i, attachments: a }, bubbles: !0, composed: !0 }));
42
- }, this.handleSend = async () => {
43
- if (this.selectedRecipients.length !== 0) if (this.subject.trim()) if (this.body.trim()) {
44
- this.isSending = !0;
45
- try {
46
- const e = { recipients: this.selectedRecipients, subject: this.subject, body: this.body, attachments: this.attachments, templateId: this.templateId };
47
- this.dispatchEvent(new CustomEvent("send-email", { detail: { request: e }, bubbles: !0, composed: !0 }));
48
- } catch (e) {
49
- this.dispatchEvent(new CustomEvent("send-error", { detail: { error: e instanceof Error ? e.message : "Failed to send email" }, bubbles: !0, composed: !0 }));
50
- } finally {
51
- this.isSending = !1;
52
- }
53
- } else this.dispatchEvent(new CustomEvent("send-error", { detail: { error: "Please enter a message body" }, bubbles: !0, composed: !0 }));
54
- else this.dispatchEvent(new CustomEvent("send-error", { detail: { error: "Please enter a subject" }, bubbles: !0, composed: !0 }));
55
- else this.dispatchEvent(new CustomEvent("send-error", { detail: { error: "Please select at least one recipient" }, bubbles: !0, composed: !0 }));
56
- };
57
- }
58
- connectedCallback() {
59
- super.connectedCallback(), this.setSending(this.disabled);
60
- }
61
- updated(e) {
62
- super.updated(e), e.has("disabled") && this.setSending(this.disabled);
63
- }
64
- addRecipients(e) {
65
- const t = [.../* @__PURE__ */ new Set([...this.recipients, ...e])], s = e.filter((i) => !this.recipients.includes(i));
66
- this.recipients = t, this.selectedRecipients = [.../* @__PURE__ */ new Set([...this.selectedRecipients, ...s])];
67
- }
68
- setSubject(e) {
69
- this.subject = e;
70
- }
71
- setBody(e) {
72
- this.body = e;
73
- }
74
- setTemplate(e) {
75
- this.templateId = e;
76
- }
77
- clearCompose() {
78
- this.recipients = [], this.selectedRecipients = [], this.subject = "", this.body = "", this.templateId = null, this.attachments = [];
79
- }
80
- setSending(e) {
81
- this.isSending = e;
82
- }
83
- render() {
84
- const e = this.selectedRecipients.length > 0 && this.subject.trim() && this.body.trim() && !this.isSending && !this.disabled;
85
- return r`
86
- <!-- Main Layout Container -->
87
- <div class="flex flex-col h-full gap-6 p-6">
88
-
89
- <!-- Main Content Section: Composer and Preview -->
90
- <div class="flex flex-col xl:flex-row gap-6 flex-1 min-h-0">
91
-
92
- <!-- Composer Section - Full width on mobile/tablet, half on large screens -->
93
- <div class="w-full xl:w-1/2 min-h-0 flex flex-col">
94
- <schmancy-email-editor
95
- .subject=${this.subject}
96
- .body=${this.body}
97
- .templates=${this.templates}
98
- .attachments=${this.attachments}
99
- .disabled=${this.disabled}
100
- .config=${this.config}
101
- @editor-change=${this.handleEditorChange}
102
- class="h-full"
103
- ></schmancy-email-editor>
104
- </div>
105
-
106
- <!-- Preview Section - Full width on mobile/tablet, half on large screens -->
107
- <div class="w-full xl:w-1/2 min-h-0 flex flex-col">
108
- <schmancy-email-viewer
109
- .subject=${this.subject}
110
- .body=${this.body}
111
- .recipients=${this.selectedRecipients}
112
- .attachments=${this.attachments}
113
- class="h-full"
114
- ></schmancy-email-viewer>
115
- </div>
116
-
117
- </div>
118
-
119
- <!-- Send Section - Sticky bottom bar -->
120
- <div class="flex-shrink-0">
121
- <schmancy-surface
122
- type="container"
123
- rounded="all"
124
- class="p-4"
125
- >
126
- <div class="flex flex-col sm:flex-row sm:items-center sm:justify-between gap-4">
127
- <!-- Send Info -->
128
- <div class="flex flex-col gap-1">
129
- <schmancy-typography type="body" token="sm" class="font-medium">
130
- ${this.selectedRecipients.length} recipient${this.selectedRecipients.length === 1 ? "" : "s"} selected
131
- </schmancy-typography>
132
- ${d(this.attachments.length > 0, () => r`
133
- <schmancy-typography type="body" token="xs">
134
- ${this.attachments.length} attachment${this.attachments.length === 1 ? "" : "s"}
135
- </schmancy-typography>
136
- `)}
137
- </div>
138
-
139
- <!-- Send Button -->
140
- <schmancy-button
141
- variant="filled"
142
- ?disabled=${!e}
143
- ?loading=${this.isSending}
144
- @click=${this.handleSend}
145
- class="w-full sm:w-auto"
146
- >
147
- <schmancy-icon slot="prefix" size="18px">send</schmancy-icon>
148
- ${this.isSending ? "Sending..." : "Send Email"}
149
- </schmancy-button>
150
- </div>
151
- </schmancy-surface>
152
- </div>
153
-
154
- </div>
155
-
156
- <!-- Recipients Panel as Floating Boat -->
157
- <schmancy-email-recipients
158
- .recipients=${this.recipients}
159
- .selectedRecipients=${this.selectedRecipients}
160
- .importSources=${this.importSources}
161
- .disabled=${this.disabled}
162
- .enableCsvImport=${this.enableCsvImport}
163
- .enableDragDrop=${this.enableDragDrop}
164
- .title=${this.recipientsTitle}
165
- .emptyStateTitle=${this.recipientsEmptyTitle}
166
- .emptyStateMessage=${this.recipientsEmptyMessage}
167
- @emails-imported=${this.handleEmailsImported}
168
- @recipient-removed=${this.handleRecipientRemoved}
169
- @recipients-cleared=${this.handleRecipientsCleared}
170
- @selection-changed=${this.handleSelectionChanged}
171
- ></schmancy-email-recipients>
172
- `;
173
- }
174
- };
175
- u([h({ type: Object })], m.prototype, "config", 2), u([h({ type: Array })], m.prototype, "templates", 2), u([h({ type: Array })], m.prototype, "importSources", 2), u([h({ type: Boolean })], m.prototype, "disabled", 2), u([h({ type: String })], m.prototype, "recipientsTitle", 2), u([h({ type: String })], m.prototype, "recipientsEmptyTitle", 2), u([h({ type: String })], m.prototype, "recipientsEmptyMessage", 2), u([h({ type: Boolean })], m.prototype, "enableCsvImport", 2), u([h({ type: Boolean })], m.prototype, "enableDragDrop", 2), u([y()], m.prototype, "recipients", 2), u([y()], m.prototype, "selectedRecipients", 2), u([y()], m.prototype, "subject", 2), u([y()], m.prototype, "body", 2), u([y()], m.prototype, "templateId", 2), u([y()], m.prototype, "attachments", 2), u([y()], m.prototype, "isSending", 2), m = u([T("schmancy-mailbox")], m);
176
- var H = Object.getOwnPropertyDescriptor;
177
- let F = class extends O() {
178
- constructor() {
179
- super(...arguments), this.layouts = [{ id: "columns-2", icon: "view_week", label: "2 Col" }, { id: "columns-3", icon: "view_column", label: "3 Col" }, { id: "sidebar-left", icon: "view_sidebar", label: "Left" }, { id: "sidebar-right", icon: "view_sidebar", label: "Right", flipped: !0 }, { id: "image-row", icon: "collections", label: "Images" }];
180
- }
181
- selectLayout(e) {
182
- this.dispatchEvent(new CustomEvent("layout-select", { detail: { layout: e }, bubbles: !0, composed: !0 }));
183
- }
184
- render() {
185
- return r`
186
- <div class="grid p-3 gap-2">
187
- ${this.layouts.map((e) => r`
188
- <schmancy-button
189
- variant="outlined"
190
- @click=${() => this.selectLayout(e.id)}
191
- >
192
- <schmancy-icon
193
- slot="prefix"
194
- size="20px"
195
- class=${e.flipped ? "scale-x-[-1]" : ""}
196
- >
197
- ${e.icon}
198
- </schmancy-icon>
199
- ${e.label}
200
- </schmancy-button>
201
- `)}
202
- </div>
203
- `;
204
- }
205
- };
206
- F = ((e, t, s, i) => {
207
- for (var a, n = i > 1 ? void 0 : i ? H(t, s) : t, c = e.length - 1; c >= 0; c--) (a = e[c]) && (n = a(n) || n);
208
- return n;
209
- })([T("schmancy-email-layout-selector")], F);
210
- var U = Object.defineProperty, V = Object.getOwnPropertyDescriptor, I = (e, t, s, i) => {
211
- for (var a, n = i > 1 ? void 0 : i ? V(t, s) : t, c = e.length - 1; c >= 0; c--) (a = e[c]) && (n = (i ? a(t, s, n) : a(n)) || n);
212
- return i && n && U(t, s, n), n;
213
- };
214
- let R = class extends j(z`
215
- :host {
216
- display: block;
217
- }
218
- `) {
219
- constructor() {
220
- super(...arguments), this.templates = [], this.searchQuery = "", this.filteredTemplates = [], this.selectedCategory = "all", this.handleSearch = (e) => {
221
- const t = e.target;
222
- this.searchQuery = t.value;
223
- }, this.handleCategorySelect = (e) => {
224
- this.selectedCategory = e, this.updateFilteredTemplates();
225
- }, this.selectTemplate = (e) => {
226
- this.dispatchEvent(new CustomEvent("template-selected", { detail: e, bubbles: !0, composed: !0 })), L.dismiss();
227
- }, this.close = () => {
228
- L.dismiss();
229
- };
230
- }
231
- connectedCallback() {
232
- super.connectedCallback(), this.updateFilteredTemplates();
233
- }
234
- updated(e) {
235
- (e.has("templates") || e.has("searchQuery") || e.has("selectedCategory")) && this.updateFilteredTemplates();
236
- }
237
- get categories() {
238
- const e = /* @__PURE__ */ new Set();
239
- return this.templates.forEach((t) => {
240
- t.category && e.add(t.category);
241
- }), ["all", ...Array.from(e)];
242
- }
243
- updateFilteredTemplates() {
244
- let e = [...this.templates];
245
- if (this.selectedCategory !== "all" && (e = e.filter((t) => t.category === this.selectedCategory)), this.searchQuery.trim()) {
246
- const t = this.searchQuery.toLowerCase();
247
- e = e.filter((s) => s.name.toLowerCase().includes(t) || s.category?.toLowerCase().includes(t) || s.description?.toLowerCase().includes(t));
248
- }
249
- this.filteredTemplates = e;
250
- }
251
- render() {
252
- return r`
253
- <div class="flex flex-col h-full overflow-hidden">
254
- <!-- Header -->
255
- <div class="flex items-center justify-between px-6 py-4 border-b border-outline-variant">
256
- <div class="flex items-center gap-3">
257
- <schmancy-icon size="24px" class="text-primary">mail</schmancy-icon>
258
- <schmancy-typography type="headline" token="md">
259
- Choose Email Template
260
- </schmancy-typography>
261
- </div>
262
- <schmancy-button
263
- variant="text"
264
- @click=${this.close}
265
- class="hover:bg-surface-container rounded-full w-10 h-10 p-0"
266
- >
267
- <schmancy-icon>close</schmancy-icon>
268
- </schmancy-button>
269
- </div>
270
-
271
- <!-- Body -->
272
- <div class="flex-1 flex flex-col overflow-hidden">
273
- ${this.renderTemplateList()}
274
- </div>
275
- </div>
276
- `;
277
- }
278
- renderTemplateList() {
279
- return r`
280
- <!-- Search and Filter Bar -->
281
- <div class="px-6 py-4 border-b border-outline-variant bg-surface-containerLow">
282
- <div class="flex flex-col gap-4">
283
- <!-- Search Input -->
284
- <schmancy-input
285
- type="search"
286
- placeholder="Search templates..."
287
- .value=${this.searchQuery}
288
- @input=${this.handleSearch}
289
- class="w-full"
290
- >
291
- <schmancy-icon slot="prefix" size="20px" class="text-surface-onVariant">search</schmancy-icon>
292
- ${d(this.searchQuery, () => r`
293
- <schmancy-button
294
- slot="suffix"
295
- variant="text"
296
- @click=${() => {
297
- this.searchQuery = "";
298
- }}
299
- class="rounded-full w-8 h-8 p-0"
300
- >
301
- <schmancy-icon size="16px">close</schmancy-icon>
302
- </schmancy-button>
303
- `)}
304
- </schmancy-input>
305
-
306
- <!-- Category Filter -->
307
- ${d(this.categories.length > 1, () => r`
308
- <div class="flex gap-2 flex-wrap">
309
- ${D(this.categories, (e) => e, (e) => r`
310
- <schmancy-chip
311
- class="cursor-pointer transition-all hover:shadow-sm ${this.selectedCategory === e ? "bg-primary text-primary-on" : "border border-outline"}"
312
- @click=${() => this.handleCategorySelect(e)}
313
- >
314
- ${e === "all" ? "All Templates" : e}
315
- </schmancy-chip>
316
- `)}
317
- </div>
318
- `)}
319
- </div>
320
- </div>
321
-
322
- <!-- Template List with Previews -->
323
- <div class="flex-1 overflow-y-auto px-6 py-6">
324
- ${d(this.filteredTemplates.length > 0, () => r`
325
- <div class="space-y-6">
326
- ${D(this.filteredTemplates, (e) => e.id, (e) => r`
327
- <schmancy-surface
328
- type="containerLow"
329
- elevation="1"
330
- rounded="all"
331
- class="group cursor-pointer hover:elevation-3 transition-all duration-200 overflow-hidden"
332
- @click=${() => this.selectTemplate(e)}
333
- >
334
- <!-- Template Header -->
335
- <div class="p-4 border-b border-outline-variant">
336
- <div class="flex items-start justify-between">
337
- <div class="flex-1">
338
- <schmancy-typography type="title" token="md" class="font-semibold leading-tight mb-1">
339
- ${e.name}
340
- </schmancy-typography>
341
- ${d(e.category, () => r`
342
- <schmancy-chip class="text-xs border border-outline">
343
- ${e.category}
344
- </schmancy-chip>
345
- `)}
346
- </div>
347
- <schmancy-button
348
- variant="filled"
349
- size="sm"
350
- class="opacity-0 group-hover:opacity-100 transition-opacity"
351
- >
352
- Use This
353
- </schmancy-button>
354
- </div>
355
- </div>
356
-
357
- <!-- Email Preview -->
358
- <div class="p-4 bg-surface">
359
- <schmancy-email-viewer
360
- subject=${e.subject}
361
- body=${e.body}
362
- mode="desktop"
363
- class="max-h-96 overflow-y-auto"
364
- ></schmancy-email-viewer>
365
- </div>
366
- </schmancy-surface>
367
- `)}
368
- </div>
369
- `, () => r`
370
- <div class="flex flex-col items-center justify-center h-96 text-center">
371
- <div class="mb-6">
372
- <schmancy-icon size="64px" class="text-surface-onVariant opacity-20">mail_outline</schmancy-icon>
373
- </div>
374
- <schmancy-typography type="headline" token="sm" class="mb-2">
375
- ${this.searchQuery || this.selectedCategory !== "all" ? "No templates found" : "No templates available"}
376
- </schmancy-typography>
377
- <schmancy-typography type="body" token="md" class="text-surface-onVariant mb-6 max-w-md">
378
- ${this.searchQuery ? `No templates match your search for "${this.searchQuery}"` : this.selectedCategory !== "all" ? `No templates found in the "${this.selectedCategory}" category` : "Start by creating your first email template"}
379
- </schmancy-typography>
380
- ${d(this.searchQuery || this.selectedCategory !== "all", () => r`
381
- <div class="flex gap-3">
382
- ${d(this.searchQuery, () => r`
383
- <schmancy-button
384
- variant="outlined"
385
- @click=${() => {
386
- this.searchQuery = "";
387
- }}
388
- >
389
- <schmancy-icon slot="prefix">clear</schmancy-icon>
390
- Clear Search
391
- </schmancy-button>
392
- `)}
393
- ${d(this.selectedCategory !== "all", () => r`
394
- <schmancy-button
395
- variant="filled"
396
- @click=${() => this.handleCategorySelect("all")}
397
- >
398
- <schmancy-icon slot="prefix">view_list</schmancy-icon>
399
- Show All Templates
400
- </schmancy-button>
401
- `)}
402
- </div>
403
- `)}
404
- </div>
405
- `)}
406
- </div>
407
- `;
408
- }
409
- };
410
- I([h({ type: Array })], R.prototype, "templates", 2), I([y()], R.prototype, "searchQuery", 2), I([y()], R.prototype, "filteredTemplates", 2), I([y()], R.prototype, "selectedCategory", 2), R = I([T("schmancy-email-template-picker")], R);
411
- var W = Object.defineProperty, N = Object.getOwnPropertyDescriptor, x = (e, t, s, i) => {
412
- for (var a, n = i > 1 ? void 0 : i ? N(t, s) : t, c = e.length - 1; c >= 0; c--) (a = e[c]) && (n = (i ? a(t, s, n) : a(n)) || n);
413
- return i && n && W(t, s, n), n;
414
- };
415
- let v = class extends j(z`
416
- :host {
417
- display: block;
418
- height: 100%;
419
- }
420
- `) {
421
- constructor() {
422
- super(...arguments), this.subject = "", this.body = "", this.disabled = !1, this.attachments = [], this.config = {}, this.templates = this.getDefaultTemplates(), this.dragOver = !1, this.isUploading = !1, this.subjectInputRef = E(), this.bodyTextAreaRef = E(), this.fileInputRef = E(), this.imageInputRef = E(), this.handleKeyDown = (e) => {
423
- if (this.disabled) return;
424
- const t = this.bodyTextAreaRef.value?.shadowRoot?.querySelector("textarea");
425
- e.key === "Tab" && e.target === t && (e.preventDefault(), this.insertAtCursor(" "));
426
- }, this.handlePaste = (e) => {
427
- const t = this.bodyTextAreaRef.value?.shadowRoot?.querySelector("textarea");
428
- if (this.disabled || document.activeElement !== t) return;
429
- const s = e.clipboardData?.items;
430
- if (s) for (let i = 0; i < s.length; i++) {
431
- const a = s[i];
432
- if (a.type.indexOf("image") !== -1) {
433
- e.preventDefault();
434
- const n = a.getAsFile();
435
- n && this.uploadImage(n);
436
- break;
437
- }
438
- }
439
- }, this.handleSubjectChange = (e) => {
440
- const t = e.target;
441
- this.subject = t.value, this.dispatchChange();
442
- }, this.handleBodyChange = (e) => {
443
- this.body = e.detail.value, this.dispatchChange();
444
- }, this.dispatchChange = () => {
445
- this.dispatchEvent(new CustomEvent("editor-change", { detail: { subject: this.subject, body: this.body, attachments: this.attachments }, bubbles: !0, composed: !0 }));
446
- }, this.openLayoutDialog = () => {
447
- P.component(r`
448
- <schmancy-email-layout-selector
449
- @layout-select=${(e) => {
450
- this.applyLayout(e.detail.layout), P.close();
451
- }}
452
- ></schmancy-email-layout-selector>
453
- `);
454
- }, this.openTemplatePicker = () => {
455
- const e = new R();
456
- e.templates = this.templates, k(e, "template-selected").pipe(C(this.disconnecting)).subscribe(this.handleTemplateSelected), L.open({ component: e });
457
- }, this.handleTemplateSelected = (e) => {
458
- const t = e.detail;
459
- this.subject = t.subject, this.body = t.body, this.dispatchChange(), b.success(`Template "${t.name}" applied successfully`);
460
- }, this.applyLayout = (e) => {
461
- const t = { "columns-2": `
462
- :::layout columns-2
463
- <div class="column">
464
- ![Left Photo](https://via.placeholder.com/400x300?text=Replace+with+your+photo){height=300px}
465
-
466
- **Photo Title**
467
-
468
- Replace the placeholder image above with your own photo. The height=300px ensures both images have equal height while width adjusts automatically.
469
- </div>
470
-
471
- <div class="column">
472
- ![Right Photo](https://via.placeholder.com/400x300?text=Replace+with+your+photo){height=300px}
473
-
474
- **Photo Title**
475
-
476
- Use the same height value (300px) for both images to keep them aligned perfectly side by side.
477
- </div>
478
- :::
479
- `, "columns-3": `
480
- :::layout columns-3
481
- <div class="column">
482
- ![Photo 1](https://via.placeholder.com/300x200?text=Photo+1){height=200px}
483
-
484
- **Item Title**
485
-
486
- Brief description or caption for this item.
487
- </div>
488
-
489
- <div class="column">
490
- ![Photo 2](https://via.placeholder.com/300x200?text=Photo+2){height=200px}
491
-
492
- **Item Title**
493
-
494
- Brief description or caption for this item.
495
- </div>
496
-
497
- <div class="column">
498
- ![Photo 3](https://via.placeholder.com/300x200?text=Photo+3){height=200px}
499
-
500
- **Item Title**
501
-
502
- Brief description or caption for this item.
503
- </div>
504
- :::
505
- `, "sidebar-left": `
506
- :::layout sidebar-left
507
- <div class="sidebar">
508
- **Sidebar Content**
509
-
510
- * Navigation item 1
511
- * Navigation item 2
512
- * Navigation item 3
513
- </div>
514
-
515
- <div class="main">
516
- **Main Content Area**
517
-
518
- Your primary content goes here. This area takes up most of the width while the sidebar provides supplementary information or navigation.
519
- </div>
520
- :::
521
- `, "sidebar-right": `
522
- :::layout sidebar-right
523
- <div class="main">
524
- **Main Content Area**
525
-
526
- Your primary content goes here. This area takes up most of the width while the sidebar provides supplementary information or navigation.
527
- </div>
528
-
529
- <div class="sidebar">
530
- **Sidebar Content**
531
-
532
- * Quick links
533
- * Related info
534
- * Contact details
535
- </div>
536
- :::
537
- `, "image-row": `
538
- :::layout image-row
539
- <div class="image">
540
- ![Gallery Image 1](https://via.placeholder.com/400x250?text=Gallery+Image+1){height=250px}
541
- </div>
542
-
543
- <div class="image">
544
- ![Gallery Image 2](https://via.placeholder.com/400x250?text=Gallery+Image+2){height=250px}
545
- </div>
546
-
547
- <div class="image">
548
- ![Gallery Image 3](https://via.placeholder.com/400x250?text=Gallery+Image+3){height=250px}
549
- </div>
550
- :::
551
- ` }[e];
552
- t && this.insertAtCursor(t);
553
- }, this.uploadImage = async (e) => {
554
- if (!e.type.startsWith("image/")) return void b.error(`File "${e.name}" is not an image`);
555
- if (e.size > 10485760) b.error(`Image "${e.name}" is too large. Maximum size is 10MB.`);
556
- else {
557
- this.isUploading = !0;
558
- try {
559
- let t;
560
- this.config.imageUploadHandler ? t = await this.config.imageUploadHandler(e) : this.config.uploadHandler ? t = await this.config.uploadHandler(e) : (t = await this.createDataUrl(e), b.warning("No upload handler configured. Using local preview."));
561
- const s = await this.getImageDimensions(e);
562
- this.insertImageMarkdown(t, e.name, s.width, s.height), b.success("Image uploaded successfully");
563
- } catch {
564
- b.error("Failed to upload image");
565
- } finally {
566
- this.isUploading = !1;
567
- }
568
- }
569
- }, this.createDataUrl = (e) => new Promise((t, s) => {
570
- const i = new FileReader();
571
- i.onload = () => t(i.result), i.onerror = s, i.readAsDataURL(e);
572
- }), this.getImageDimensions = (e) => new Promise((t) => {
573
- const s = new Image();
574
- s.onload = () => {
575
- t({ width: s.width, height: s.height }), URL.revokeObjectURL(s.src);
576
- }, s.onerror = () => {
577
- t({ width: 400, height: 300 }), URL.revokeObjectURL(s.src);
578
- }, s.src = URL.createObjectURL(e);
579
- }), this.insertImageMarkdown = (e, t, s, i) => {
580
- const a = this.bodyTextAreaRef.value?.shadowRoot?.querySelector("textarea");
581
- if (!a) return;
582
- const n = `![${t}](${e}){width=${Math.min(s, 600)}px height=auto}`, c = a.selectionStart, o = a.selectionEnd, l = this.body.substring(0, c) + n + this.body.substring(o);
583
- this.body = l, this.dispatchChange(), this.updateComplete.then(() => {
584
- const p = this.bodyTextAreaRef.value?.shadowRoot?.querySelector("textarea");
585
- if (p) {
586
- const S = c + n.length;
587
- p.setSelectionRange(S, S), p.focus();
588
- }
589
- });
590
- }, this.handleFileChange = (e) => {
591
- const t = e.target, s = t.files;
592
- if (s) for (let i = 0; i < s.length; i++) {
593
- const a = s[i];
594
- a.type.startsWith("image/") ? this.uploadImage(a) : this.addFile(a);
595
- }
596
- t.value = "";
597
- }, this.handleImageSelect = (e) => {
598
- const t = e.target, s = t.files?.[0];
599
- s && s.type.startsWith("image/") && this.uploadImage(s), t.value = "";
600
- }, this.handleDrop = (e) => {
601
- e.preventDefault(), this.dragOver = !1;
602
- const t = e.dataTransfer?.files;
603
- if (t) for (let s = 0; s < t.length; s++) {
604
- const i = t[s];
605
- i.type.startsWith("image/") ? this.uploadImage(i) : this.addFile(i);
606
- }
607
- }, this.handleDragEnter = (e) => {
608
- e.preventDefault(), this.dragOver = !0;
609
- }, this.handleDocumentDragLeave = (e) => {
610
- e.preventDefault(), this.dragOver = !1;
611
- }, this.handleDocumentDrop = (e) => {
612
- e.preventDefault(), this.dragOver = !1;
613
- }, this.handleDragOver = (e) => {
614
- e.preventDefault();
615
- }, this.handleDragLeave = (e) => {
616
- e.preventDefault();
617
- }, this.addFile = (e) => {
618
- if (e.size > 10485760) return void b.error(`File "${e.name}" is too large. Maximum size is 10MB.`);
619
- if (this.attachments.some((s) => s.name === e.name && s.size === e.size)) return void b.warning(`File "${e.name}" is already attached.`);
620
- const t = { id: crypto.randomUUID(), file: e, name: e.name, size: e.size, type: e.type || "application/octet-stream" };
621
- this.attachments = [...this.attachments, t], this.dispatchChange();
622
- }, this.removeAttachment = (e) => {
623
- this.attachments = this.attachments.filter((t) => t.id !== e), this.dispatchChange();
624
- };
625
- }
626
- connectedCallback() {
627
- super.connectedCallback(), this.addEventListeners();
628
- }
629
- disconnectedCallback() {
630
- super.disconnectedCallback();
631
- }
632
- getDefaultTemplates() {
633
- return [{ id: "welcome", name: "Welcome Email", subject: "Welcome to Our Community! 🌟", description: "A warm welcome message for new users", category: "onboarding", body: `# Welcome to Our Community!
634
-
635
- We're thrilled to have you on board. Thank you for joining us on this journey.
636
-
637
- ## What's Next?
638
-
639
- * **Explore** your dashboard and discover all the features
640
- * **Connect** with other community members
641
- * **Get support** whenever you need it - we're here to help
642
-
643
- ---
644
-
645
- *Need assistance? Simply reply to this email and we'll get back to you within 24 hours.*
646
-
647
- Best regards,
648
- The Team` }, { id: "newsletter", name: "Newsletter", subject: "Weekly Insights & Updates", description: "Regular newsletter template with updates and insights", category: "communication", body: `# This Week's Highlights
649
-
650
- ## Featured Story
651
-
652
- **[Article Title]**
653
- Brief description of the main story or update that you want to highlight this week.
654
-
655
- [Read More](https://example.com)
656
-
657
- ## Quick Updates
658
-
659
- * **Update 1**: Brief description of an important update
660
- * **Update 2**: Another noteworthy development
661
- * **Update 3**: Additional news worth sharing
662
-
663
- ## Upcoming Events
664
-
665
- **[Event Name]** - *Date*
666
- Short description of the upcoming event.
667
-
668
- ---
669
-
670
- *Thanks for reading! Forward this to a friend who might enjoy it.*
671
-
672
- Until next week,
673
- The Team` }, { id: "product-launch", name: "Product Launch", subject: "Introducing Our Latest Innovation 🚀", description: "Announce new products or features", category: "marketing", body: `# Something Amazing is Here
674
-
675
- We've been working hard behind the scenes, and today we're excited to introduce our latest creation.
676
-
677
- ## Key Features
678
-
679
- * **Feature 1**: Benefit that matters to your users
680
- * **Feature 2**: Another compelling capability
681
- * **Feature 3**: The feature that sets you apart
682
-
683
- ## Early Access
684
-
685
- As a valued member, you get **exclusive early access** starting today.
686
-
687
- [Get Started Now](https://example.com)
688
-
689
- ---
690
-
691
- *Questions? We'd love to hear from you. Just hit reply!*
692
-
693
- Best,
694
- The Product Team` }, { id: "event-invitation", name: "Event Invitation", subject: "You're Invited: [Event Name]", description: "Professional event invitation template", category: "events", body: `# You're Invited!
695
-
696
- ## [Event Name]
697
-
698
- **When**: [Date & Time]
699
- **Where**: [Location or Virtual Link]
700
- **Duration**: [Duration]
701
-
702
- Join us for an exclusive gathering where we'll explore [brief event description].
703
-
704
- ## What to Expect
705
-
706
- * **Networking** with industry professionals
707
- * **Insights** from leading experts
708
- * **Interactive** sessions and discussions
709
-
710
- ## RSVP Required
711
-
712
- Space is limited, so please confirm your attendance by [RSVP Date].
713
-
714
- [Confirm Attendance](https://example.com)
715
-
716
- ---
717
-
718
- *Can't make it? Let us know and we'll share the key highlights with you.*
719
-
720
- Looking forward to seeing you there,
721
- The Events Team` }, { id: "thank-you", name: "Thank You", subject: "Thank You - It Means Everything", description: "Express gratitude to customers or supporters", category: "appreciation", body: `# Thank You
722
-
723
- Your support means the world to us.
724
-
725
- Whether you've been with us from the beginning or just joined our community, we want you to know how much we appreciate you.
726
-
727
- ## Because of You
728
-
729
- * We've been able to improve our service
730
- * Our community has grown stronger
731
- * We've achieved milestones we never thought possible
732
-
733
- ## What's Next
734
-
735
- We're committed to continuing to earn your trust and providing even more value in the coming months.
736
-
737
- ---
738
-
739
- *Your feedback shapes everything we do. Reply anytime with thoughts or suggestions.*
740
-
741
- With genuine gratitude,
742
- The Team` }, { id: "feedback-request", name: "Feedback Request", subject: "Your Opinion Matters - 2 Minutes?", description: "Request feedback or reviews from users", category: "feedback", body: `# We'd Love Your Feedback
743
-
744
- Your experience matters to us, and we're always looking for ways to improve.
745
-
746
- ## Quick Favor?
747
-
748
- Could you spare **2 minutes** to share your thoughts? Your honest feedback helps us serve you better.
749
-
750
- [Share Your Feedback](https://example.com)
751
-
752
- ## What We're Asking
753
-
754
- * How has your experience been so far?
755
- * What's working well for you?
756
- * What could we improve?
757
-
758
- ## Thank You Gift
759
-
760
- As a small token of appreciation, everyone who completes our feedback form receives [incentive].
761
-
762
- ---
763
-
764
- *Every response is read personally by our team. We take your input seriously.*
765
-
766
- Thanks in advance,
767
- The Team` }, { id: "password-reset", name: "Password Reset", subject: "Reset Your Password - Action Required", description: "Secure password reset instructions", category: "security", body: `# Password Reset Request
768
-
769
- We received a request to reset the password for your account.
770
-
771
- ## Reset Your Password
772
-
773
- Click the button below to create a new password. This link will expire in **24 hours** for your security.
774
-
775
- [Reset Password](https://example.com/reset)
776
-
777
- ## Didn't Request This?
778
-
779
- If you didn't request a password reset, please ignore this email. Your account remains secure.
780
-
781
- ## Need Help?
782
-
783
- If you're having trouble with the reset process, contact our support team and we'll assist you right away.
784
-
785
- ---
786
-
787
- *For security reasons, this link can only be used once and expires in 24 hours.*
788
-
789
- Best regards,
790
- Security Team` }, { id: "order-confirmation", name: "Order Confirmation", subject: "Order Confirmed - #[ORDER-NUMBER]", description: "Professional order confirmation template", category: "commerce", body: `# Order Confirmation
791
-
792
- Thanks for your order! We've received your payment and are preparing your items for shipment.
793
-
794
- ## Order Details
795
-
796
- **Order Number**: #[ORDER-NUMBER]
797
- **Order Date**: [DATE]
798
- **Total**: $[AMOUNT]
799
-
800
- ## Items Ordered
801
-
802
- * **[Item 1]** - Quantity: [QTY] - $[PRICE]
803
- * **[Item 2]** - Quantity: [QTY] - $[PRICE]
804
-
805
- ## Shipping Information
806
-
807
- **Address**: [SHIPPING ADDRESS]
808
- **Method**: [SHIPPING METHOD]
809
- **Estimated Delivery**: [DELIVERY DATE]
810
-
811
- ## Next Steps
812
-
813
- You'll receive a tracking number via email once your order ships (usually within 1-2 business days).
814
-
815
- [Track Your Order](https://example.com/track)
816
-
817
- ---
818
-
819
- *Questions about your order? Reply to this email or contact our support team.*
820
-
821
- Thank you for your business,
822
- The Fulfillment Team` }];
823
- }
824
- addEventListeners() {
825
- k(this, "keydown").pipe(C(this.disconnecting)).subscribe(this.handleKeyDown), k(document, "paste").pipe(C(this.disconnecting)).subscribe(this.handlePaste), k(document, "dragenter").pipe(C(this.disconnecting)).subscribe(this.handleDragEnter), k(document, "dragleave").pipe(C(this.disconnecting)).subscribe(this.handleDocumentDragLeave), k(document, "drop").pipe(C(this.disconnecting)).subscribe(this.handleDocumentDrop);
826
- }
827
- insertAtCursor(e, t) {
828
- if (!this.bodyTextAreaRef.value) return;
829
- const s = this.bodyTextAreaRef.value.shadowRoot?.querySelector("textarea");
830
- if (!s) return;
831
- const i = s.selectionStart, a = s.selectionEnd, n = s.value.substring(0, i) + e + s.value.substring(a);
832
- this.body = n, this.dispatchChange(), this.updateComplete.then(() => {
833
- const c = this.bodyTextAreaRef.value?.shadowRoot?.querySelector("textarea");
834
- if (c) if (c.focus(), t) {
835
- const o = i + e.indexOf(t), l = o + t.length;
836
- c.setSelectionRange(o, l);
837
- } else c.setSelectionRange(i + e.length, i + e.length);
838
- });
839
- }
840
- wrapSelection(e, t, s) {
841
- if (!this.bodyTextAreaRef.value) return;
842
- const i = this.bodyTextAreaRef.value.shadowRoot?.querySelector("textarea");
843
- if (!i) return;
844
- const a = i.selectionStart, n = i.selectionEnd, c = i.value.substring(a, n), o = e + (c || s) + t, l = i.value.substring(0, a) + o + i.value.substring(n);
845
- this.body = l, this.dispatchChange(), this.updateComplete.then(() => {
846
- const p = this.bodyTextAreaRef.value?.shadowRoot?.querySelector("textarea");
847
- p && (p.focus(), c ? p.setSelectionRange(a + o.length, a + o.length) : p.setSelectionRange(a + e.length, a + e.length + s.length));
848
- });
849
- }
850
- render() {
851
- return r`
852
- <schmancy-surface
853
- type="surface"
854
- rounded="all"
855
- class=${this.classMap({ "border-2 border-dashed border-primary": this.dragOver, "h-full flex flex-col": !0 })}
856
- @drop=${this.handleDrop}
857
- @dragover=${this.handleDragOver}
858
- @dragleave=${this.handleDragLeave}
859
- >
860
- <div class="flex flex-col h-full gap-4">
861
-
862
- <!-- Header Section with Subject -->
863
- <div class="flex-shrink-0 p-4 pb-0 space-y-4">
864
- <!-- Subject Field -->
865
- <div class="space-y-2">
866
- <schmancy-typography type="label" token="md">
867
- Subject *
868
- </schmancy-typography>
869
- <schmancy-input
870
- ${A(this.subjectInputRef)}
871
- .value=${this.subject}
872
- @input=${this.handleSubjectChange}
873
- placeholder="Enter email subject..."
874
- .disabled=${this.disabled}
875
- class="w-full"
876
- ></schmancy-input>
877
- </div>
878
- </div>
879
-
880
- <!-- Formatting Toolbar -->
881
- <div class="flex-shrink-0 px-4">
882
- <schmancy-surface type="container" rounded="all" class="p-3">
883
- <div class="flex flex-wrap gap-2 items-center">
884
- <!-- Text Formatting Group -->
885
- <div class="flex gap-1">
886
- <schmancy-icon-button
887
- size="sm"
888
- variant="text"
889
- title="Bold"
890
- ?disabled=${this.disabled}
891
- @click=${() => this.wrapSelection("**", "**", "bold text")}
892
- >
893
- <schmancy-icon>format_bold</schmancy-icon>
894
- </schmancy-icon-button>
895
- <schmancy-icon-button
896
- size="sm"
897
- variant="text"
898
- title="Italic"
899
- ?disabled=${this.disabled}
900
- @click=${() => this.wrapSelection("*", "*", "italic text")}
901
- >
902
- <schmancy-icon>format_italic</schmancy-icon>
903
- </schmancy-icon-button>
904
- <schmancy-icon-button
905
- size="sm"
906
- variant="text"
907
- title="Link"
908
- ?disabled=${this.disabled}
909
- @click=${() => this.insertAtCursor("[link text](https://example.com)", "link text")}
910
- >
911
- <schmancy-icon>link</schmancy-icon>
912
- </schmancy-icon-button>
913
- </div>
914
-
915
- <!-- Divider -->
916
- <div class="h-6 w-px bg-outline-variant"></div>
917
-
918
- <!-- Structure Formatting Group -->
919
- <div class="flex gap-1">
920
- <schmancy-icon-button
921
- size="sm"
922
- variant="text"
923
- title="Heading"
924
- ?disabled=${this.disabled}
925
- @click=${() => this.insertAtCursor(`
926
- # Heading
927
- `, "Heading")}
928
- >
929
- <schmancy-icon>title</schmancy-icon>
930
- </schmancy-icon-button>
931
- <schmancy-icon-button
932
- size="sm"
933
- variant="text"
934
- title="Bullet List"
935
- ?disabled=${this.disabled}
936
- @click=${() => this.insertAtCursor(`
937
- * List item
938
- `, "List item")}
939
- >
940
- <schmancy-icon>format_list_bulleted</schmancy-icon>
941
- </schmancy-icon-button>
942
- </div>
943
-
944
- <!-- Divider -->
945
- <div class="h-6 w-px bg-outline-variant"></div>
946
-
947
- <!-- Media and Layout Group -->
948
- <div class="flex gap-1">
949
- <schmancy-icon-button
950
- size="sm"
951
- variant="text"
952
- title="Insert Image"
953
- ?disabled=${this.disabled || this.isUploading}
954
- @click=${() => this.imageInputRef.value?.click()}
955
- >
956
- ${d(this.isUploading, () => r`<schmancy-progress size="sm" class="w-4 h-4"></schmancy-progress>`, () => r`<schmancy-icon>image</schmancy-icon>`)}
957
- </schmancy-icon-button>
958
- <schmancy-icon-button
959
- size="sm"
960
- variant="text"
961
- title="Insert Layout"
962
- ?disabled=${this.disabled}
963
- @click=${this.openLayoutDialog}
964
- >
965
- <schmancy-icon>mobile_layout</schmancy-icon>
966
- </schmancy-icon-button>
967
- <schmancy-icon-button
968
- size="sm"
969
- variant="text"
970
- title="Use Template"
971
- ?disabled=${this.disabled || this.templates.length === 0}
972
- @click=${this.openTemplatePicker}
973
- >
974
- <schmancy-icon>description</schmancy-icon>
975
- </schmancy-icon-button>
976
- </div>
977
- </div>
978
- </schmancy-surface>
979
- </div>
980
-
981
- <!-- Textarea Container - Takes remaining space -->
982
- <div class="flex-1 px-4 relative min-h-0">
983
- <schmancy-textarea
984
- ${A(this.bodyTextAreaRef)}
985
- .value=${this.body}
986
- @change=${this.handleBodyChange}
987
- placeholder="Enter your email message here...
988
-
989
- Use the toolbar buttons above for formatting, or type markdown directly:
990
- **bold**, *italic*, [link](url), ![image](url)
991
-
992
- Drag & drop images or press Ctrl+V to paste from clipboard.
993
- Tab key inserts 2 spaces for better formatting."
994
- .disabled=${this.disabled}
995
- .required=${!0}
996
- .rows=${4}
997
- class="w-full font-mono text-sm"
998
- ></schmancy-textarea>
999
-
1000
- <!-- Upload Progress Overlay -->
1001
- ${d(this.isUploading, () => r`
1002
- <div class="absolute top-3 right-3 z-10">
1003
- <schmancy-surface type="container" rounded="all" class="p-2">
1004
- <div class="flex items-center gap-2">
1005
- <schmancy-progress size="sm" class="w-4 h-4"></schmancy-progress>
1006
- <schmancy-typography type="body" token="xs">Uploading...</schmancy-typography>
1007
- </div>
1008
- </schmancy-surface>
1009
- </div>
1010
- `)}
1011
- </div>
1012
-
1013
- <!-- Footer Section -->
1014
- <div class="flex-shrink-0 p-4 pt-0 space-y-2">
1015
- <!-- Character/Word Counter -->
1016
- <div class="text-center">
1017
- <schmancy-typography type="body" token="xs">
1018
- ${this.body.length} characters • ${this.body.trim() ? this.body.trim().split(/\s+/).length : 0} words
1019
- </schmancy-typography>
1020
- </div>
1021
-
1022
- <!-- Attachments Display (if any) -->
1023
- ${d(this.attachments.length > 0, () => r`
1024
- <div class="space-y-2">
1025
- <schmancy-typography type="label" token="sm" class="flex items-center gap-2">
1026
- <schmancy-icon size="16px">attach_file</schmancy-icon>
1027
- Attachments (${this.attachments.length})
1028
- </schmancy-typography>
1029
- <div class="flex flex-wrap gap-2">
1030
- ${D(this.attachments, (e) => e.id, (e) => r`
1031
- <schmancy-chip class="text-xs">
1032
- <span class="truncate max-w-32">${e.name}</span>
1033
- <button
1034
- @click=${() => this.removeAttachment(e.id)}
1035
- class="ml-2 text-error hover:text-error-container"
1036
- title="Remove attachment"
1037
- >
1038
- <schmancy-icon size="14px">close</schmancy-icon>
1039
- </button>
1040
- </schmancy-chip>
1041
- `)}
1042
- </div>
1043
- </div>
1044
- `)}
1045
- </div>
1046
-
1047
- <!-- Hidden File Inputs -->
1048
- <div class="hidden">
1049
- <input
1050
- ${A(this.fileInputRef)}
1051
- type="file"
1052
- multiple
1053
- @change=${this.handleFileChange}
1054
- >
1055
- <input
1056
- ${A(this.imageInputRef)}
1057
- type="file"
1058
- accept="image/*"
1059
- @change=${this.handleImageSelect}
1060
- >
1061
- </div>
1062
-
1063
- </div>
1064
- </schmancy-surface>
1065
-
1066
- `;
1067
- }
1068
- };
1069
- x([h({ type: String })], v.prototype, "subject", 2), x([h({ type: String })], v.prototype, "body", 2), x([h({ type: Boolean })], v.prototype, "disabled", 2), x([h({ type: Array })], v.prototype, "attachments", 2), x([h({ type: Object })], v.prototype, "config", 2), x([h({ type: Array })], v.prototype, "templates", 2), x([y()], v.prototype, "dragOver", 2), x([y()], v.prototype, "isUploading", 2), v = x([T("schmancy-email-editor")], v);
1070
- var Q = Object.defineProperty, _ = Object.getOwnPropertyDescriptor, $ = (e, t, s, i) => {
1071
- for (var a, n = i > 1 ? void 0 : i ? _(t, s) : t, c = e.length - 1; c >= 0; c--) (a = e[c]) && (n = (i ? a(t, s, n) : a(n)) || n);
1072
- return i && n && Q(t, s, n), n;
1073
- };
1074
- let w = class extends j(z`
1075
- :host {
1076
- display: block;
1077
- }
1078
- `) {
1079
- constructor() {
1080
- super(...arguments), this.subject = "", this.body = "", this.attachments = [], this.recipients = [], this.fromAddress = "sender@example.com", this.toAddress = "recipient@example.com", this.viewMode = "html";
1081
- }
1082
- parseLayoutBlocks(e) {
1083
- return e.replace(/:::layout\s+([a-zA-Z0-9-]+)\n([\s\S]*?)\n:::/g, (t, s, i) => {
1084
- switch (s) {
1085
- case "columns-2":
1086
- return this.parseColumnsLayout(i, 2);
1087
- case "columns-3":
1088
- return this.parseColumnsLayout(i, 3);
1089
- case "sidebar-left":
1090
- return this.parseSidebarLayout(i, "left");
1091
- case "sidebar-right":
1092
- return this.parseSidebarLayout(i, "right");
1093
- case "image-row":
1094
- return this.parseImageRowLayout(i);
1095
- default:
1096
- return i;
1097
- }
1098
- });
1099
- }
1100
- parseColumnsLayout(e, t) {
1101
- const s = /<div class="column">([\s\S]*?)<\/div>/g, i = [];
1102
- let a;
1103
- for (; (a = s.exec(e)) !== null; ) i.push(a[1].trim());
1104
- if (i.length === 0) return e;
1105
- const n = Math.floor(100 / t), c = "0 10px 0 0";
1106
- let o = "<tr>";
1107
- for (let l = 0; l < t && l < i.length; l++)
1108
- o += `
1109
- <td width="${n}%" style="padding: ${l === t - 1 ? "0" : c}; vertical-align: top; font-family: Arial, Helvetica, sans-serif; font-size: 14px; line-height: 1.6; color: #333333;">
1110
- ${this.parseBasicMarkdown(i[l])}
1111
- </td>`;
1112
- for (let l = i.length; l < t; l++)
1113
- o += `
1114
- <td width="${n}%" style="padding: ${l === t - 1 ? "0" : c}; vertical-align: top;">
1115
- &nbsp;
1116
- </td>`;
1117
- return o += "</tr>", `
1118
- <table cellpadding="0" cellspacing="0" border="0" width="100%" style="margin: 16px 0;">
1119
- ${o}
1120
- </table>`;
1121
- }
1122
- parseSidebarLayout(e, t) {
1123
- const s = e.match(/<div class="sidebar">([\s\S]*?)<\/div>/), i = e.match(/<div class="main">([\s\S]*?)<\/div>/);
1124
- if (!s || !i) return e;
1125
- const a = `
1126
- <td width="30%" style="padding: 0 16px 0 0; vertical-align: top; font-family: Arial, Helvetica, sans-serif; font-size: 14px; line-height: 1.6; color: #333333;">
1127
- ${this.parseBasicMarkdown(s[1].trim())}
1128
- </td>`, n = `
1129
- <td width="70%" style="padding: 0; vertical-align: top; font-family: Arial, Helvetica, sans-serif; font-size: 14px; line-height: 1.6; color: #333333;">
1130
- ${this.parseBasicMarkdown(i[1].trim())}
1131
- </td>`;
1132
- return `
1133
- <table cellpadding="0" cellspacing="0" border="0" width="100%" style="margin: 16px 0;">
1134
- ${t === "left" ? `<tr>${a}${n}</tr>` : `<tr>${n}${a.replace("0 16px 0 0", "0 0 0 16px")}</tr>`}
1135
- </table>`;
1136
- }
1137
- parseImageRowLayout(e) {
1138
- const t = /<div class="image">([\s\S]*?)<\/div>/g, s = [];
1139
- let i;
1140
- for (; (i = t.exec(e)) !== null; ) {
1141
- const c = i[1].trim().match(/!\[([^\]]*)\]\(([^)]+)\)/);
1142
- if (c) {
1143
- const [, o, l] = c;
1144
- s.push(`<img src="${l}" alt="${o || "Image"}" style="display: block; max-width: 100%; height: auto;" border="0">`);
1145
- }
1146
- }
1147
- if (s.length === 0) return e;
1148
- const a = Math.floor(100 / s.length);
1149
- let n = "<tr>";
1150
- return s.forEach((c, o) => {
1151
- const l = o === s.length - 1;
1152
- n += `
1153
- <td width="${a}%" style="padding: ${l ? "0" : "0 8px 0 0"}; vertical-align: top; text-align: center;">
1154
- ${c}
1155
- </td>`;
1156
- }), n += "</tr>", `
1157
- <table cellpadding="0" cellspacing="0" border="0" width="100%" style="margin: 16px 0;">
1158
- ${n}
1159
- </table>`;
1160
- }
1161
- parseImageAttributes(e) {
1162
- const t = {};
1163
- if (!e) return t;
1164
- const s = e.match(/width=([^\s}]+)/);
1165
- s && (t.width = s[1]);
1166
- const i = e.match(/height=([^\s}]+)/);
1167
- return i && (t.height = i[1]), e.includes("cover") && (t.cover = !0), e.includes("contain") && (t.contain = !0), t;
1168
- }
1169
- generateImageStyles(e, t = !1) {
1170
- let s, i, a = "display: block; margin: 8px 0; border: 0;";
1171
- return e.width ? e.width === "auto" ? a += t ? " max-width: 100%; height: auto;" : " height: auto;" : e.width.endsWith("%") ? (a += ` width: ${e.width}; max-width: 100%;`, e.height || (a += " height: auto;")) : e.width.endsWith("px") && (s = e.width.replace("px", ""), a += " max-width: 100%;", e.height || (a += " height: auto;")) : a += t ? " width: 100%; max-width: 100%; height: auto;" : " max-width: 100%; height: auto;", e.height && (e.height === "auto" ? a += " height: auto;" : e.height.endsWith("px") && (i = e.height.replace("px", ""), e.width || (a += " max-width: 100%;"))), (e.cover || e.contain) && (e.width || e.height || (a += " width: 100%;")), { imgStyle: a, imgWidth: s, imgHeight: i };
1172
- }
1173
- parseBasicMarkdown(e) {
1174
- return e.replace(/!\[([^\]]*)\]\(([^)]+)\)(?:\{([^}]+)\})?/g, (t, s, i, a) => {
1175
- const n = this.parseImageAttributes(a), { imgStyle: c, imgWidth: o, imgHeight: l } = this.generateImageStyles(n, !0);
1176
- let p = `<img src="${i}" alt="${s || "Image"}" style="${c}" border="0"`;
1177
- return o && (p += ` width="${o}"`), l && (p += ` height="${l}"`), p += ">", p;
1178
- }).replace(/\n\n/g, '</p><p style="margin: 0 0 16px 0; padding: 0; font-family: Arial, Helvetica, sans-serif; font-size: 14px; line-height: 1.6; color: #333333;">').replace(/\n/g, "<br>").replace(/\*\*(.*?)\*\*/g, '<strong style="font-weight: bold;">$1</strong>').replace(/\*(.*?)\*/g, '<em style="font-style: italic;">$1</em>').replace(/\[([^\]]+)\]\(([^)]+)\)/g, '<a href="$2" style="color: #0066cc; text-decoration: underline;">$1</a>').replace(/^# (.*$)/gim, '<h2 style="margin: 16px 0 8px 0; padding: 0; font-family: Arial, Helvetica, sans-serif; font-size: 18px; font-weight: bold; color: #1a1a1a;">$1</h2>').replace(/^\* (.*$)/gim, '<li style="margin: 4px 0; font-family: Arial, Helvetica, sans-serif; font-size: 14px; color: #333333;">$1</li>').replace(/^\d+\. (.*$)/gim, '<li style="margin: 4px 0; font-family: Arial, Helvetica, sans-serif; font-size: 14px; color: #333333;">$1</li>').replace(/(<li[^>]*>.*?<\/li>(?:\s*<li[^>]*>.*?<\/li>)*)/gs, (t) => {
1179
- const s = /^\d+\./.test(t.replace(/<[^>]*>/g, "")) ? "ol" : "ul";
1180
- return `<${s} style="margin: 8px 0; padding: 0 0 0 20px; font-family: Arial, Helvetica, sans-serif;">${t}</${s}>`;
1181
- }).replace(/^(?!<[h\d]|<p|<ul|<ol|<li|<img)(.+)$/gim, '<p style="margin: 0 0 16px 0; padding: 0; font-family: Arial, Helvetica, sans-serif; font-size: 14px; line-height: 1.6; color: #333333;">$1</p>');
1182
- }
1183
- parseExtendedMarkdown(e) {
1184
- let t = e;
1185
- return t = this.parseLayoutBlocks(t), t = t.replace(/:::images\s+(row|grid(?:=\d+)?)\n((?:!\[.*?\]\(.*?\)(?:\{.*?\})?\s*\n?)*?):::/g, "[Multiple Images - View in web browser]"), t = t.replace(/!\[([^\]]*)\]\(([^)]+)\)(?:\{([^}]+)\})?/g, (s, i, a, n) => {
1186
- const c = this.parseImageAttributes(n), { imgStyle: o, imgWidth: l, imgHeight: p } = this.generateImageStyles(c, !1);
1187
- let S = `<img src="${a}" alt="${i || "Image"}" style="${o}" border="0"`;
1188
- return l && (S += ` width="${l}"`), p && (S += ` height="${p}"`), S += ">", `<table cellpadding="0" cellspacing="0" border="0" style="margin: 16px 0;"><tr><td>${S}</td></tr></table>`;
1189
- }), t = t.replace(/\n\n/g, '</p><p style="margin: 0 0 16px 0; padding: 0; font-family: Arial, Helvetica, sans-serif; font-size: 14px; line-height: 1.6; color: #333333;">').replace(/\n/g, "<br>").replace(/\*\*(.*?)\*\*/g, '<strong style="font-weight: bold;">$1</strong>').replace(/\*(.*?)\*/g, '<em style="font-style: italic;">$1</em>').replace(/\[([^\]]+)\]\(([^)]+)\)/g, '<a href="$2" style="color: #0066cc; text-decoration: underline;">$1</a>').replace(/^# (.*$)/gim, '<table cellpadding="0" cellspacing="0" border="0" width="100%" style="margin: 24px 0 16px 0;"><tr><td><h1 style="margin: 0; padding: 0; font-family: Arial, Helvetica, sans-serif; font-size: 24px; font-weight: bold; color: #1a1a1a;">$1</h1></td></tr></table>').replace(/^\* (.*$)/gim, '<li style="margin: 4px 0; font-family: Arial, Helvetica, sans-serif; font-size: 14px; color: #333333;">$1</li>').replace(/^\d+\. (.*$)/gim, '<li style="margin: 4px 0; font-family: Arial, Helvetica, sans-serif; font-size: 14px; color: #333333;">$1</li>').replace(/^---$/gim, '<table cellpadding="0" cellspacing="0" border="0" width="100%" style="margin: 24px 0;"><tr><td style="border-top: 1px solid #e0e0e0; height: 1px; line-height: 1px;">&nbsp;</td></tr></table>'), t = t.replace(/(<li[^>]*>.*?<\/li>(?:\s*<li[^>]*>.*?<\/li>)*)/gs, (s) => {
1190
- const i = /^\d+\./.test(s.replace(/<[^>]*>/g, "")), a = i ? "ol" : "ul";
1191
- return `<table cellpadding="0" cellspacing="0" border="0" width="100%"><tr><td><${a} style="margin: 16px 0; padding: 0 0 0 20px; font-family: Arial, Helvetica, sans-serif;">${s}</${a}></td></tr></table>`;
1192
- }), t.includes("<table>") || t.includes("<h1>") || (t = `<p style="margin: 0 0 16px 0; padding: 0; font-family: Arial, Helvetica, sans-serif; font-size: 14px; line-height: 1.6; color: #333333;">${t}</p>`), t = `<table cellpadding="0" cellspacing="0" border="0" width="100%" style="max-width: 600px; margin: 0 auto;">
1193
- <tr>
1194
- <td style="padding: 0; font-family: Arial, Helvetica, sans-serif; font-size: 14px; line-height: 1.6; color: #333333;">
1195
- ${t}
1196
- </td>
1197
- </tr>
1198
- </table>`, t;
1199
- }
1200
- convertToPlainText(e) {
1201
- return e.trim().replace(/:::layout\s+([a-zA-Z0-9-]+)\n([\s\S]*?)\n:::/g, (t, s, i) => i.replace(/<div class="(?:column|sidebar|main|image)">/g, `
1202
- `).replace(/<\/div>/g, `
1203
- `).replace(/\n{3,}/g, `
1204
-
1205
- `).trim()).replace(/:::images\s+(row|grid(?:=\d+)?)\n((?:!\[.*?\]\(.*?\)(?:\{.*?\})?\s*\n?)*?):::/g, "[Images]").replace(/!\[([^\]]*)\]\(([^)]+)\)(?:\{([^}]+)\})?/g, "[Image: $1]").replace(/\*\*(.*?)\*\*/g, "$1").replace(/\*(.*?)\*/g, "$1").replace(/__(.*?)__/g, "$1").replace(/~~(.*?)~~/g, "$1").replace(/`(.*?)`/g, "$1").replace(/^#{1,3} (.*$)/gim, "$1").replace(/^> (.*$)/gim, "$1").replace(/^\* (.*$)/gim, "• $1").replace(/^\d+\. (.*$)/gim, "$1").replace(/\[([^\]]+)\]\(([^)]+)\)/g, "$1 ($2)").replace(/^---$/gim, "---").replace(/\n\n+/g, `
1206
-
1207
- `);
1208
- }
1209
- formatFileSize(e) {
1210
- if (e === 0) return "0 Bytes";
1211
- const t = Math.floor(Math.log(e) / Math.log(1024));
1212
- return parseFloat((e / Math.pow(1024, t)).toFixed(2)) + " " + ["Bytes", "KB", "MB", "GB"][t];
1213
- }
1214
- render() {
1215
- const e = this.parseExtendedMarkdown(this.body), t = this.convertToPlainText(this.body), s = this.recipients[0] || this.toAddress;
1216
- return r`
1217
- <schmancy-surface type="surface" rounded="all" class="h-full flex flex-col">
1218
-
1219
- <!-- Header Section -->
1220
- <div class="flex-shrink-0 p-4 border-b border-outline-variant">
1221
- <div class="flex flex-col sm:flex-row sm:items-center sm:justify-between gap-4">
1222
- <schmancy-typography type="title" token="md" class="flex items-center gap-2">
1223
- <schmancy-icon size="20px">preview</schmancy-icon>
1224
- Email Preview
1225
- </schmancy-typography>
1226
-
1227
- <!-- View Mode Toggle -->
1228
- <div class="flex gap-1 bg-surface-container rounded-full p-1">
1229
- <schmancy-chip
1230
- ?selected=${this.viewMode === "html"}
1231
- @click=${() => {
1232
- this.viewMode = "html";
1233
- }}
1234
- class="text-xs h-8"
1235
- data-variant=${this.viewMode === "html" ? "filled" : "outlined"}
1236
- >
1237
- <schmancy-icon slot="prefix" size="14px">code</schmancy-icon>
1238
- HTML
1239
- </schmancy-chip>
1240
- <schmancy-chip
1241
- ?selected=${this.viewMode === "plaintext"}
1242
- @click=${() => {
1243
- this.viewMode = "plaintext";
1244
- }}
1245
- class="text-xs h-8"
1246
- data-variant=${this.viewMode === "plaintext" ? "filled" : "outlined"}
1247
- >
1248
- <schmancy-icon slot="prefix" size="14px">text_fields</schmancy-icon>
1249
- Text
1250
- </schmancy-chip>
1251
- </div>
1252
- </div>
1253
- </div>
1254
-
1255
- <!-- Preview Content Container -->
1256
- <div class="flex-1 flex flex-col min-h-0 p-4 gap-4">
1257
-
1258
- <!-- Email Mock Container -->
1259
- <div class="flex-1 flex flex-col min-h-0">
1260
- <schmancy-surface
1261
- type="container"
1262
- rounded="all"
1263
- class="flex-1 flex flex-col overflow-hidden shadow-sm"
1264
- >
1265
- <!-- Email Header -->
1266
- <div class="flex-shrink-0 p-4 bg-surface-containerLow border-b border-outline-variant">
1267
- <div class="space-y-3">
1268
- <!-- From Field -->
1269
- <div class="flex items-start gap-3">
1270
- <div class="flex items-center gap-2 min-w-0 flex-shrink-0 w-16">
1271
- <schmancy-icon size="16px">account_circle</schmancy-icon>
1272
- <schmancy-typography type="body" token="sm" class="font-medium">
1273
- From
1274
- </schmancy-typography>
1275
- </div>
1276
- <schmancy-typography type="body" token="sm" class="break-all flex-1">
1277
- ${this.fromAddress}
1278
- </schmancy-typography>
1279
- </div>
1280
-
1281
- <!-- To Field -->
1282
- <div class="flex items-start gap-3">
1283
- <div class="flex items-center gap-2 min-w-0 flex-shrink-0 w-16">
1284
- <schmancy-icon size="16px">person</schmancy-icon>
1285
- <schmancy-typography type="body" token="sm" class="font-medium">
1286
- To
1287
- </schmancy-typography>
1288
- </div>
1289
- <schmancy-typography type="body" token="sm" class="break-all flex-1">
1290
- ${s}
1291
- </schmancy-typography>
1292
- </div>
1293
-
1294
- <!-- Subject Field -->
1295
- <div class="flex items-start gap-3">
1296
- <div class="flex items-center gap-2 min-w-0 flex-shrink-0 w-16">
1297
- <schmancy-icon size="16px">subject</schmancy-icon>
1298
- <schmancy-typography type="body" token="sm" class="font-medium">
1299
- Subject
1300
- </schmancy-typography>
1301
- </div>
1302
- <schmancy-typography type="body" token="sm" class="font-medium flex-1">
1303
- ${this.subject || r`<span class="italic text-surface-onVariant">(No subject)</span>`}
1304
- </schmancy-typography>
1305
- </div>
1306
- </div>
1307
- </div>
1308
-
1309
- <!-- Email Body Content -->
1310
- <div class="flex-1 overflow-y-auto min-h-0">
1311
- ${d(this.body, () => r`
1312
- ${d(this.viewMode === "html", () => r`
1313
- <div class="p-6 bg-white" style="color: #333; line-height: 1.6; font-family: system-ui, -apple-system, sans-serif; font-size: 14px;">
1314
- <div .innerHTML=${e}></div>
1315
- </div>
1316
- `, () => r`
1317
- <div class="p-6 bg-white" style="color: #333; line-height: 1.6; font-family: 'Courier New', monospace; font-size: 13px; white-space: pre-wrap;">
1318
- ${t}
1319
- </div>
1320
- `)}
1321
- `, () => r`
1322
- <!-- Empty State -->
1323
- <div class="flex-1 flex items-center justify-center p-8">
1324
- <div class="text-center space-y-3">
1325
- <schmancy-icon size="48px" class="text-surface-onVariant opacity-50">mail_outline</schmancy-icon>
1326
- <schmancy-typography type="body" token="md">
1327
- No message content to preview
1328
- </schmancy-typography>
1329
- <schmancy-typography type="body" token="sm" class="text-surface-onVariant">
1330
- Start typing in the composer to see a preview
1331
- </schmancy-typography>
1332
- </div>
1333
- </div>
1334
- `)}
1335
- </div>
1336
-
1337
- <!-- Attachments Section -->
1338
- ${d(this.attachments.length > 0, () => r`
1339
- <div class="flex-shrink-0 p-4 border-t border-outline-variant bg-surface-containerLowest">
1340
- <div class="space-y-3">
1341
- <!-- Attachments Header -->
1342
- <div class="flex items-center gap-2">
1343
- <schmancy-icon size="18px">attach_file</schmancy-icon>
1344
- <schmancy-typography type="label" token="md" class="font-medium">
1345
- Attachments (${this.attachments.length})
1346
- </schmancy-typography>
1347
- </div>
1348
-
1349
- <!-- Attachments List -->
1350
- <div class="grid gap-2 sm:grid-cols-2 lg:grid-cols-1 xl:grid-cols-2">
1351
- ${D(this.attachments, (i) => i.id, (i) => r`
1352
- <schmancy-surface type="container" rounded="all" class="p-3">
1353
- <div class="flex items-center gap-3">
1354
- <!-- File Icon -->
1355
- <schmancy-icon size="20px" class="text-surface-onVariant flex-shrink-0">
1356
- ${i.type.startsWith("image/") ? "image" : i.type.includes("pdf") ? "picture_as_pdf" : i.type.includes("text") ? "description" : "attach_file"}
1357
- </schmancy-icon>
1358
-
1359
- <!-- File Info -->
1360
- <div class="flex-1 min-w-0">
1361
- <schmancy-typography type="body" token="sm" class="font-medium truncate">
1362
- ${i.name}
1363
- </schmancy-typography>
1364
- <schmancy-typography type="body" token="xs" class="text-surface-onVariant">
1365
- ${this.formatFileSize(i.size)} • ${i.type}
1366
- </schmancy-typography>
1367
- </div>
1368
- </div>
1369
- </schmancy-surface>
1370
- `)}
1371
- </div>
1372
- </div>
1373
- </div>
1374
- `)}
1375
- </schmancy-surface>
1376
- </div>
1377
-
1378
- <!-- Preview Stats -->
1379
- ${d(this.body, () => r`
1380
- <div class="flex-shrink-0">
1381
- <schmancy-surface type="container" rounded="all" class="p-3">
1382
- <div class="flex items-center justify-center gap-6 text-center">
1383
- <div>
1384
- <schmancy-typography type="body" token="xs" class="text-surface-onVariant">
1385
- Characters
1386
- </schmancy-typography>
1387
- <schmancy-typography type="body" token="sm" class="font-medium">
1388
- ${this.body.length}
1389
- </schmancy-typography>
1390
- </div>
1391
- <div class="w-px h-8 bg-outline-variant"></div>
1392
- <div>
1393
- <schmancy-typography type="body" token="xs" class="text-surface-onVariant">
1394
- Words
1395
- </schmancy-typography>
1396
- <schmancy-typography type="body" token="sm" class="font-medium">
1397
- ${this.body.trim() ? this.body.trim().split(/\s+/).length : 0}
1398
- </schmancy-typography>
1399
- </div>
1400
- ${d(this.attachments.length > 0, () => r`
1401
- <div class="w-px h-8 bg-outline-variant"></div>
1402
- <div>
1403
- <schmancy-typography type="body" token="xs" class="text-surface-onVariant">
1404
- Attachments
1405
- </schmancy-typography>
1406
- <schmancy-typography type="body" token="sm" class="font-medium">
1407
- ${this.attachments.length}
1408
- </schmancy-typography>
1409
- </div>
1410
- `)}
1411
- </div>
1412
- </schmancy-surface>
1413
- </div>
1414
- `)}
1415
-
1416
- </div>
1417
- </schmancy-surface>
1418
- `;
1419
- }
1420
- };
1421
- $([h({ type: String })], w.prototype, "subject", 2), $([h({ type: String })], w.prototype, "body", 2), $([h({ type: Array })], w.prototype, "attachments", 2), $([h({ type: Array })], w.prototype, "recipients", 2), $([h({ type: String })], w.prototype, "fromAddress", 2), $([h({ type: String })], w.prototype, "toAddress", 2), $([y()], w.prototype, "viewMode", 2), w = $([T("schmancy-email-viewer")], w);
1422
- var Y = Object.defineProperty, q = Object.getOwnPropertyDescriptor, f = (e, t, s, i) => {
1423
- for (var a, n = i > 1 ? void 0 : i ? q(t, s) : t, c = e.length - 1; c >= 0; c--) (a = e[c]) && (n = (i ? a(t, s, n) : a(n)) || n);
1424
- return i && n && Y(t, s, n), n;
1425
- };
1426
- let g = class extends j(z`
1427
- :host {
1428
- display: block;
1429
- height: 100%;
1430
- }
1431
- `) {
1432
- constructor() {
1433
- super(...arguments), this.disabled = !1, this.recipients = [], this.selectedRecipients = [], this.enableCsvImport = !0, this.enableDragDrop = !0, this.title = "Recipients", this.emptyStateTitle = "No recipients yet", this.emptyStateMessage = "Import from sources or upload a CSV", this.dragOver = !1, this.localSelectedRecipients = /* @__PURE__ */ new Set(), this.searchQuery = "", this.filteredRecipients = [], this.boatState = "minimized", this.fileInputRef = E(), this.handleEmailsImported = () => {
1434
- this.updateFilteredRecipients(), this.requestUpdate();
1435
- }, this.handleImportFromCSV = () => {
1436
- this.enableCsvImport && this.fileInputRef.value?.click();
1437
- }, this.handleFileSelect = (e) => {
1438
- const t = e.target, s = t.files?.[0];
1439
- s && this.processCSVFile(s);
1440
- }, this.handleDrop = (e) => {
1441
- if (!this.enableDragDrop) return;
1442
- e.preventDefault(), this.dragOver = !1;
1443
- const t = e.dataTransfer?.files[0];
1444
- t && this.processCSVFile(t);
1445
- }, this.processCSVFile = (e) => {
1446
- if (!e.name.endsWith(".csv")) return void b.error("Please select a CSV file");
1447
- const t = new FileReader();
1448
- t.onload = (s) => {
1449
- const i = s.target?.result;
1450
- try {
1451
- const a = this.parseCSV(i);
1452
- if (a.length === 0) return void b.error("No valid email addresses found in CSV");
1453
- this.dispatchEvent(new CustomEvent("emails-imported", { detail: { emails: a, source: "csv" }, bubbles: !0, composed: !0 })), b.success(`Imported ${a.length} emails from CSV file`);
1454
- } catch {
1455
- b.error("Failed to parse CSV file");
1456
- }
1457
- }, t.readAsText(e);
1458
- }, this.toggleRecipientSelection = (e) => {
1459
- this.localSelectedRecipients.has(e) ? this.localSelectedRecipients.delete(e) : this.localSelectedRecipients.add(e), this.localSelectedRecipients = new Set(this.localSelectedRecipients), this.dispatchSelectionChange();
1460
- }, this.selectAll = () => {
1461
- this.localSelectedRecipients = new Set(this.filteredRecipients), this.dispatchSelectionChange();
1462
- }, this.selectNone = () => {
1463
- this.localSelectedRecipients.clear(), this.localSelectedRecipients = /* @__PURE__ */ new Set(), this.dispatchSelectionChange();
1464
- }, this.removeRecipient = (e) => {
1465
- this.dispatchEvent(new CustomEvent("recipient-removed", { detail: { email: e }, bubbles: !0, composed: !0 }));
1466
- }, this.clearAll = () => {
1467
- this.dispatchEvent(new CustomEvent("recipients-cleared", { bubbles: !0, composed: !0 }));
1468
- }, this.updateFilteredRecipients = () => {
1469
- const e = Array.isArray(this.recipients) ? this.recipients : [];
1470
- if (this.searchQuery.trim()) {
1471
- const t = this.searchQuery.toLowerCase();
1472
- this.filteredRecipients = e.filter((s) => s.toLowerCase().includes(t));
1473
- } else this.filteredRecipients = [...e];
1474
- }, this.handleSearchInput = (e) => {
1475
- const t = e.target;
1476
- this.searchQuery = t.value;
1477
- }, this.clearSearch = () => {
1478
- this.searchQuery = "";
1479
- }, this.dispatchSelectionChange = () => {
1480
- this.dispatchEvent(new CustomEvent("selection-changed", { detail: { selectedEmails: Array.from(this.localSelectedRecipients) }, bubbles: !0, composed: !0 }));
1481
- }, this.handleBoatStateChange = (e) => {
1482
- this.boatState = e.detail;
1483
- };
1484
- }
1485
- connectedCallback() {
1486
- super.connectedCallback(), this.localSelectedRecipients = new Set(this.selectedRecipients), this.updateFilteredRecipients(), k(this, "emails-imported").pipe(C(this.disconnecting)).subscribe(this.handleEmailsImported);
1487
- }
1488
- updated(e) {
1489
- super.updated(e), e.has("selectedRecipients") && (this.localSelectedRecipients = new Set(this.selectedRecipients)), (e.has("recipients") || e.has("searchQuery")) && this.updateFilteredRecipients(), e.has("recipients") && this.requestUpdate();
1490
- }
1491
- parseCSV(e) {
1492
- const t = [];
1493
- let s;
1494
- s = this.csvParser ? this.csvParser.parse(e, { header: !0, skipEmptyLines: !0, dynamicTyping: !0, delimiter: "", transformHeader: (o) => o.trim() }) : this.simpleCSVParse(e);
1495
- const i = s.data, a = s.meta.fields || [];
1496
- let n = a.find((o) => o.toLowerCase().includes("email"));
1497
- if (!n) for (const o of a) {
1498
- const l = i[0]?.[o]?.toString();
1499
- if (l && this.isValidEmail(l)) {
1500
- n = o;
1501
- break;
1502
- }
1503
- }
1504
- if (!n) throw new Error("No email column found in CSV");
1505
- const c = /* @__PURE__ */ new Set();
1506
- for (const o of i) {
1507
- const l = o[n]?.toString();
1508
- if (!l) continue;
1509
- const p = l.toLowerCase().trim();
1510
- this.isValidEmail(p) && !c.has(p) && (c.add(p), t.push(p));
1511
- }
1512
- return t;
1513
- }
1514
- simpleCSVParse(e) {
1515
- const t = e.split(`
1516
- `).filter((a) => a.trim());
1517
- if (t.length === 0) return { data: [], meta: {} };
1518
- const s = t[0].split(",").map((a) => a.trim().replace(/"/g, "")), i = [];
1519
- for (let a = 1; a < t.length; a++) {
1520
- const n = t[a].split(",").map((o) => o.trim().replace(/"/g, "")), c = {};
1521
- s.forEach((o, l) => {
1522
- c[o] = n[l] || "";
1523
- }), i.push(c);
1524
- }
1525
- return { data: i, meta: { fields: s } };
1526
- }
1527
- isValidEmail(e) {
1528
- return /^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(e.trim());
1529
- }
1530
- addRecipients(e) {
1531
- if (!e.length) return;
1532
- const t = [.../* @__PURE__ */ new Set([...this.recipients, ...e])], s = e.filter((i) => !this.recipients.includes(i));
1533
- this.recipients = t, this.selectedRecipients = [.../* @__PURE__ */ new Set([...this.selectedRecipients, ...s])], this.localSelectedRecipients = new Set(this.selectedRecipients), this.updateFilteredRecipients(), this.requestUpdate();
1534
- }
1535
- showBoat() {
1536
- this.boatState = "minimized";
1537
- }
1538
- hideBoat() {
1539
- this.boatState = "hidden";
1540
- }
1541
- expandBoat() {
1542
- this.boatState = "expanded";
1543
- }
1544
- toggleBoat() {
1545
- this.boatState = this.boatState === "hidden" ? "minimized" : this.boatState === "minimized" ? "expanded" : "hidden";
1546
- }
1547
- render() {
1548
- return this.renderBoatLayout();
1549
- }
1550
- renderBoatLayout() {
1551
- return r`
1552
- <!-- Hidden file input for CSV import -->
1553
- ${d(this.enableCsvImport, () => r`
1554
- <input
1555
- type="file"
1556
- accept=".csv"
1557
- ${A(this.fileInputRef)}
1558
- @change=${this.handleFileSelect}
1559
- class="hidden"
1560
- />
1561
- `)}
1562
-
1563
- <schmancy-boat
1564
- .state=${this.boatState}
1565
- @change=${this.handleBoatStateChange}
1566
- >
1567
- <!-- Boat Header -->
1568
- <div slot="header" class="flex items-center justify-between w-full px-4 py-2">
1569
- <div class="flex items-center gap-3">
1570
- <schmancy-icon size="20px">group</schmancy-icon>
1571
- <schmancy-typography type="title" token="md" class="font-semibold">
1572
- ${this.title}
1573
- </schmancy-typography>
1574
- ${d(this.recipients.length > 0, () => r`
1575
- <schmancy-badge>
1576
- ${this.localSelectedRecipients.size}/${this.recipients.length}
1577
- </schmancy-badge>
1578
- `)}
1579
- </div>
1580
- </div>
1581
-
1582
- <!-- Boat Content -->
1583
- <div class="h-full flex flex-col max-h-[70vh]">
1584
- ${this.renderBoatContent()}
1585
- </div>
1586
- </schmancy-boat>
1587
- `;
1588
- }
1589
- renderBoatContent() {
1590
- return r`
1591
- <!-- Search Bar and CSV Import on one line -->
1592
- <div class="p-4 flex gap-3">
1593
- <schmancy-input
1594
- type="text"
1595
- placeholder="Search recipients"
1596
- .value=${this.searchQuery}
1597
- @input=${this.handleSearchInput}
1598
- class="flex-1"
1599
- >
1600
- ${d(this.searchQuery, () => r`
1601
- <schmancy-button
1602
- slot="suffix"
1603
- variant="text"
1604
- @click=${this.clearSearch}
1605
- >
1606
- <schmancy-icon size="16px">close</schmancy-icon>
1607
- </schmancy-button>
1608
- `)}
1609
- </schmancy-input>
1610
-
1611
- ${d(this.enableCsvImport, () => r`
1612
- <schmancy-button
1613
- variant="outlined"
1614
- @click=${this.handleImportFromCSV}
1615
- ?disabled=${this.disabled}
1616
- >
1617
- <schmancy-icon slot="prefix" size="16px">upload_file</schmancy-icon>
1618
- Import
1619
- </schmancy-button>
1620
- `)}
1621
- </div>
1622
-
1623
- ${d(this.recipients.length > 0, () => r`
1624
- <!-- Bulk Actions -->
1625
- <div class="px-4 pb-4">
1626
- <div class="flex items-center gap-3">
1627
- <schmancy-button
1628
- variant="outlined"
1629
- @click=${this.selectAll}
1630
- ?disabled=${this.localSelectedRecipients.size === this.filteredRecipients.length}
1631
- >
1632
- <schmancy-icon slot="prefix" size="14px">select_all</schmancy-icon>
1633
- Select All
1634
- </schmancy-button>
1635
-
1636
- <schmancy-button
1637
- variant="outlined"
1638
- @click=${this.selectNone}
1639
- ?disabled=${this.localSelectedRecipients.size === 0}
1640
- >
1641
- <schmancy-icon slot="prefix" size="14px">deselect</schmancy-icon>
1642
- Clear Selection
1643
- </schmancy-button>
1644
-
1645
- <div class="flex-1"></div>
1646
-
1647
- <schmancy-button variant="text" @click=${this.clearAll}>
1648
- <schmancy-icon slot="prefix" size="14px">delete_forever</schmancy-icon>
1649
- Clear All
1650
- </schmancy-button>
1651
- </div>
1652
- </div>
1653
-
1654
- <!-- Recipients List -->
1655
- <div class="flex-1 overflow-y-auto px-4 pb-4">
1656
- ${d(this.filteredRecipients.length > 0, () => r`
1657
- <div class="flex flex-wrap gap-3">
1658
- ${D(this.filteredRecipients, (e) => e, (e) => r`
1659
- <schmancy-button
1660
- variant=${this.localSelectedRecipients.has(e) ? "filled" : "outlined"}
1661
- @click=${(t) => {
1662
- t.stopPropagation(), t.preventDefault(), this.toggleRecipientSelection(e);
1663
- }}
1664
- class="cursor-pointer flex items-center gap-2"
1665
- >
1666
- <span class="truncate flex-1 text-left">${e}</span>
1667
- <schmancy-icon
1668
- @click=${(t) => {
1669
- t.stopPropagation(), this.removeRecipient(e);
1670
- }}
1671
- size="16px"
1672
- class="ml-2"
1673
- >close</schmancy-icon>
1674
- </schmancy-button>
1675
- `)}
1676
- </div>
1677
- `, () => r`
1678
- <div class="text-center py-8">
1679
- <schmancy-icon size="32px" class="opacity-50 mb-2">search_off</schmancy-icon>
1680
- <schmancy-typography type="body" token="sm" class="mb-2">
1681
- No recipients match "${this.searchQuery}"
1682
- </schmancy-typography>
1683
- <schmancy-button variant="outlined" @click=${this.clearSearch}>
1684
- Clear Search
1685
- </schmancy-button>
1686
- </div>
1687
- `)}
1688
- </div>
1689
- `, () => r`
1690
- <!-- Empty State -->
1691
- <div class="flex-1 flex items-center justify-center p-8">
1692
- <div class="text-center space-y-4">
1693
- <schmancy-icon size="48px" class="opacity-30">mail_outline</schmancy-icon>
1694
- <schmancy-typography type="title" token="md" class="mb-2">
1695
- ${this.emptyStateTitle}
1696
- </schmancy-typography>
1697
- <schmancy-typography type="body" token="sm">
1698
- ${this.emptyStateMessage}
1699
- </schmancy-typography>
1700
- </div>
1701
- </div>
1702
- `)}
1703
-
1704
- <!-- Drag Overlay -->
1705
- ${d(this.dragOver && this.enableDragDrop, () => r`
1706
- <div
1707
- class="absolute inset-4 flex items-center justify-center border-2 border-dashed border-primary rounded-lg z-10"
1708
- @dragover=${(e) => {
1709
- e.preventDefault(), this.dragOver = !0;
1710
- }}
1711
- @dragleave=${() => this.dragOver = !1}
1712
- @drop=${this.handleDrop}
1713
- >
1714
- <schmancy-surface type="surfaceDim" rounded="all" class="p-6 text-center">
1715
- <schmancy-icon size="48px" class="mb-2">upload</schmancy-icon>
1716
- <schmancy-typography type="body" token="md">
1717
- Drop CSV file here
1718
- </schmancy-typography>
1719
- </schmancy-surface>
1720
- </div>
1721
- `)}
1722
- `;
1723
- }
1724
- };
1725
- f([h({ type: Boolean })], g.prototype, "disabled", 2), f([h({ type: Array })], g.prototype, "recipients", 2), f([h({ type: Array })], g.prototype, "selectedRecipients", 2), f([h({ type: Boolean })], g.prototype, "enableCsvImport", 2), f([h({ type: Boolean })], g.prototype, "enableDragDrop", 2), f([h({ type: String })], g.prototype, "title", 2), f([h({ type: String })], g.prototype, "emptyStateTitle", 2), f([h({ type: String })], g.prototype, "emptyStateMessage", 2), f([h({ type: Object })], g.prototype, "csvParser", 2), f([y()], g.prototype, "dragOver", 2), f([y()], g.prototype, "localSelectedRecipients", 2), f([y()], g.prototype, "searchQuery", 2), f([y()], g.prototype, "filteredRecipients", 2), f([y()], g.prototype, "boatState", 2), g = f([T("schmancy-email-recipients")], g);
1726
- export {
1727
- m as S,
1728
- v as a,
1729
- w as b,
1730
- g as c,
1731
- F as d
1732
- };
1733
- //# sourceMappingURL=email-recipients-BzjAKNJ0.js.map