@mhmo91/schmancy 0.10.4 → 0.10.6

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 (478) hide show
  1. package/custom-elements.json +43 -949
  2. package/dist/agent/{flow-CaPi2G8y.js.map → flow-3RrZM-e7.js.map} +1 -1
  3. package/dist/agent/schmancy.agent.js +3817 -6527
  4. package/dist/agent/schmancy.agent.js.map +1 -1
  5. package/dist/agent/schmancy.manifest.json +10 -680
  6. package/dist/agent/{vendor-jsqr-r7GNh4P3.js.map → vendor-jsqr-BUVwyoGC.js.map} +1 -1
  7. package/dist/agent/{vendor-material-color-Be96dpGE.js.map → vendor-material-color-33Mj762T.js.map} +1 -1
  8. package/dist/{area-DHVANBbr.js → area-CIZZ5tbB.js} +1 -1
  9. package/dist/{area-DHVANBbr.js.map → area-CIZZ5tbB.js.map} +1 -1
  10. package/dist/{area-ZupIezvU.cjs → area-oZjYJlUy.cjs} +1 -1
  11. package/dist/{area-ZupIezvU.cjs.map → area-oZjYJlUy.cjs.map} +1 -1
  12. package/dist/area.cjs +1 -1
  13. package/dist/area.js +1 -1
  14. package/dist/{autocomplete-pHvsyfbH.js → autocomplete-C1oDLuol.js} +2 -2
  15. package/dist/{autocomplete-pHvsyfbH.js.map → autocomplete-C1oDLuol.js.map} +1 -1
  16. package/dist/{autocomplete-Bn525CTp.cjs → autocomplete-X20i6D62.cjs} +1 -1
  17. package/dist/{autocomplete-Bn525CTp.cjs.map → autocomplete-X20i6D62.cjs.map} +1 -1
  18. package/dist/autocomplete.cjs +1 -1
  19. package/dist/autocomplete.js +1 -1
  20. package/dist/avatar.cjs +1 -1
  21. package/dist/avatar.js +2 -2
  22. package/dist/badge.cjs +1 -1
  23. package/dist/badge.js +1 -1
  24. package/dist/{boat-IyEtsNI4.cjs → boat-CUx58Gwe.cjs} +1 -1
  25. package/dist/{boat-IyEtsNI4.cjs.map → boat-CUx58Gwe.cjs.map} +1 -1
  26. package/dist/{boat-_Yv3M6YM.js → boat-CpE0yAlK.js} +2 -2
  27. package/dist/{boat-_Yv3M6YM.js.map → boat-CpE0yAlK.js.map} +1 -1
  28. package/dist/boat.cjs +1 -1
  29. package/dist/boat.js +1 -1
  30. package/dist/breadcrumb.cjs +1 -1
  31. package/dist/breadcrumb.js +1 -1
  32. package/dist/{busy-Ck2IXJ4r.js → busy-C9n-DUY4.js} +1 -1
  33. package/dist/{busy-Ck2IXJ4r.js.map → busy-C9n-DUY4.js.map} +1 -1
  34. package/dist/{busy-CjM39APN.cjs → busy-D1DKZhgV.cjs} +1 -1
  35. package/dist/{busy-CjM39APN.cjs.map → busy-D1DKZhgV.cjs.map} +1 -1
  36. package/dist/busy.cjs +1 -1
  37. package/dist/busy.js +1 -1
  38. package/dist/button.cjs +1 -1
  39. package/dist/button.js +3 -3
  40. package/dist/{card-DUWZmMHc.js → card-B3hN-qzk.js} +1 -1
  41. package/dist/{card-DUWZmMHc.js.map → card-B3hN-qzk.js.map} +1 -1
  42. package/dist/{card-DIxDuuth.cjs → card-DZJ7qjf2.cjs} +1 -1
  43. package/dist/{card-DIxDuuth.cjs.map → card-DZJ7qjf2.cjs.map} +1 -1
  44. package/dist/card.cjs +1 -1
  45. package/dist/card.js +1 -1
  46. package/dist/charts.cjs +1 -1
  47. package/dist/charts.js +1 -1
  48. package/dist/{checkbox-DPS1mWG-.js → checkbox-CvmB1ev9.js} +1 -1
  49. package/dist/{checkbox-DPS1mWG-.js.map → checkbox-CvmB1ev9.js.map} +1 -1
  50. package/dist/{checkbox-CGdFXuWQ.cjs → checkbox-DapdzDow.cjs} +1 -1
  51. package/dist/{checkbox-CGdFXuWQ.cjs.map → checkbox-DapdzDow.cjs.map} +1 -1
  52. package/dist/checkbox.cjs +1 -1
  53. package/dist/checkbox.js +1 -1
  54. package/dist/{chips-UoFbwmlG.cjs → chips-7g6mWRuh.cjs} +1 -1
  55. package/dist/{chips-UoFbwmlG.cjs.map → chips-7g6mWRuh.cjs.map} +1 -1
  56. package/dist/{chips-BnnXQSA-.js → chips-C8Y3_3ke.js} +4 -4
  57. package/dist/{chips-BnnXQSA-.js.map → chips-C8Y3_3ke.js.map} +1 -1
  58. package/dist/chips.cjs +1 -1
  59. package/dist/chips.js +2 -2
  60. package/dist/connectivity.cjs +1 -1
  61. package/dist/connectivity.js +1 -1
  62. package/dist/content-drawer.cjs +1 -1
  63. package/dist/content-drawer.js +1 -1
  64. package/dist/{context-daN5G6HS.cjs.map → context-BpCETidA.cjs.map} +1 -1
  65. package/dist/{context-Bdu1xt0W.js.map → context-DJTJnSK4.js.map} +1 -1
  66. package/dist/{date-range-DOstCIg8.js → date-range-DdcaPX7C.js} +99 -113
  67. package/dist/date-range-DdcaPX7C.js.map +1 -0
  68. package/dist/date-range-ZfUl4duV.cjs +131 -0
  69. package/dist/date-range-ZfUl4duV.cjs.map +1 -0
  70. package/dist/{date-range-inline-4P7zqeVe.cjs → date-range-inline-D-d7N6bh.cjs} +1 -1
  71. package/dist/{date-range-inline-4P7zqeVe.cjs.map → date-range-inline-D-d7N6bh.cjs.map} +1 -1
  72. package/dist/{date-range-inline-BVycTWLb.js → date-range-inline-QQmIWhZ4.js} +1 -1
  73. package/dist/{date-range-inline-BVycTWLb.js.map → date-range-inline-QQmIWhZ4.js.map} +1 -1
  74. package/dist/date-range-inline.cjs +1 -1
  75. package/dist/date-range-inline.js +1 -1
  76. package/dist/date-range.cjs +1 -1
  77. package/dist/date-range.js +1 -1
  78. package/dist/delay.cjs +1 -1
  79. package/dist/delay.js +2 -2
  80. package/dist/{details-BJBbZOO6.cjs → details-3rL6UQU8.cjs} +1 -1
  81. package/dist/{details-BJBbZOO6.cjs.map → details-3rL6UQU8.cjs.map} +1 -1
  82. package/dist/{details-DPc5GxPa.js → details-Dpjh-XnJ.js} +2 -2
  83. package/dist/{details-DPc5GxPa.js.map → details-Dpjh-XnJ.js.map} +1 -1
  84. package/dist/details.cjs +1 -1
  85. package/dist/details.js +1 -1
  86. package/dist/directives.cjs +1 -1
  87. package/dist/directives.js +2 -2
  88. package/dist/{divider-BvJsmSPH.js → divider-BdfEKQsH.js} +1 -1
  89. package/dist/{divider-BvJsmSPH.js.map → divider-BdfEKQsH.js.map} +1 -1
  90. package/dist/{divider-DPT3XnG5.cjs → divider-CutXDz3F.cjs} +1 -1
  91. package/dist/{divider-DPT3XnG5.cjs.map → divider-CutXDz3F.cjs.map} +1 -1
  92. package/dist/divider.cjs +1 -1
  93. package/dist/divider.js +1 -1
  94. package/dist/dropdown.cjs +1 -1
  95. package/dist/dropdown.js +1 -1
  96. package/dist/{expand-CTqBWVXo.cjs → expand-DM6zfZf7.cjs} +1 -1
  97. package/dist/{expand-CTqBWVXo.cjs.map → expand-DM6zfZf7.cjs.map} +1 -1
  98. package/dist/{expand-BMzocdtj.js → expand-DrgMPJbu.js} +2 -2
  99. package/dist/{expand-BMzocdtj.js.map → expand-DrgMPJbu.js.map} +1 -1
  100. package/dist/expand.cjs +1 -1
  101. package/dist/expand.js +1 -1
  102. package/dist/{extra-BeHlUhzv.js → extra-B6gFu4_1.js} +1 -1
  103. package/dist/{extra-BeHlUhzv.js.map → extra-B6gFu4_1.js.map} +1 -1
  104. package/dist/{extra-h_cuxRII.cjs → extra-DJRYaOXe.cjs} +1 -1
  105. package/dist/{extra-h_cuxRII.cjs.map → extra-DJRYaOXe.cjs.map} +1 -1
  106. package/dist/extra.cjs +1 -1
  107. package/dist/extra.js +1 -1
  108. package/dist/{float-CTc1xxqH.js → float-1iihPek5.js} +1 -1
  109. package/dist/{float-CTc1xxqH.js.map → float-1iihPek5.js.map} +1 -1
  110. package/dist/{float-CwVBs11k.cjs → float-Ckyk85XG.cjs} +1 -1
  111. package/dist/{float-CwVBs11k.cjs.map → float-Ckyk85XG.cjs.map} +1 -1
  112. package/dist/float.cjs +1 -1
  113. package/dist/float.js +1 -1
  114. package/dist/{form-BtwOBMZ9.js.map → form-BF1c3Dk1.js.map} +1 -1
  115. package/dist/{form-CSJp687X.cjs.map → form-DeO5XX3b.cjs.map} +1 -1
  116. package/dist/form.cjs +1 -1
  117. package/dist/form.js +1 -1
  118. package/dist/handover/agent-runtime-followups.md +1 -1
  119. package/dist/handover/agent-runtime-v1.md +3 -3
  120. package/dist/{hashContent-1ARKIsx9.js.map → hashContent-BU6jl5ih.js.map} +1 -1
  121. package/dist/{hashContent-Bp5S6T4U.cjs.map → hashContent-Bobsobip.cjs.map} +1 -1
  122. package/dist/{icons-qEQW4pjM.cjs → icons-CV-fiGcW.cjs} +1 -1
  123. package/dist/{icons-qEQW4pjM.cjs.map → icons-CV-fiGcW.cjs.map} +1 -1
  124. package/dist/{icons-BbCVrcas.js → icons-DUkcTZAY.js} +2 -2
  125. package/dist/{icons-BbCVrcas.js.map → icons-DUkcTZAY.js.map} +1 -1
  126. package/dist/icons.cjs +1 -1
  127. package/dist/icons.js +1 -1
  128. package/dist/{iframe-BJfDIEJf.js → iframe-C9tj7F6Y.js} +1 -1
  129. package/dist/{iframe-BJfDIEJf.js.map → iframe-C9tj7F6Y.js.map} +1 -1
  130. package/dist/{iframe-D6HTruav.cjs → iframe-DF97oGtZ.cjs} +1 -1
  131. package/dist/{iframe-D6HTruav.cjs.map → iframe-DF97oGtZ.cjs.map} +1 -1
  132. package/dist/iframe.cjs +1 -1
  133. package/dist/iframe.js +1 -1
  134. package/dist/index.cjs +1 -1
  135. package/dist/index.js +70 -76
  136. package/dist/{input-LTK3cctF.js → input-DE7x223Y.js} +1 -1
  137. package/dist/{input-LTK3cctF.js.map → input-DE7x223Y.js.map} +1 -1
  138. package/dist/{input-U26axtcs.cjs → input-TW9G3n7X.cjs} +1 -1
  139. package/dist/{input-U26axtcs.cjs.map → input-TW9G3n7X.cjs.map} +1 -1
  140. package/dist/{input-chip-Ch-aCs3c.js → input-chip-BdoaVw_D.js} +1 -1
  141. package/dist/{input-chip-Ch-aCs3c.js.map → input-chip-BdoaVw_D.js.map} +1 -1
  142. package/dist/{input-chip-CADXt0X5.cjs → input-chip-Do48eI5r.cjs} +1 -1
  143. package/dist/{input-chip-CADXt0X5.cjs.map → input-chip-Do48eI5r.cjs.map} +1 -1
  144. package/dist/input.cjs +1 -1
  145. package/dist/input.js +1 -1
  146. package/dist/json.cjs +1 -1
  147. package/dist/json.js +2 -2
  148. package/dist/kbd.cjs +1 -1
  149. package/dist/kbd.js +1 -1
  150. package/dist/{layout-C4xmnU4n.js → layout-CXPNsUIo.js} +1 -1
  151. package/dist/{layout-C4xmnU4n.js.map → layout-CXPNsUIo.js.map} +1 -1
  152. package/dist/{layout-Dmh6fxh0.cjs → layout-Zhe7wSZ_.cjs} +1 -1
  153. package/dist/{layout-Dmh6fxh0.cjs.map → layout-Zhe7wSZ_.cjs.map} +1 -1
  154. package/dist/layout.cjs +1 -1
  155. package/dist/layout.js +1 -1
  156. package/dist/{lightbox-DqG2z3Cn.js → lightbox-DcutIyjx.js} +2 -2
  157. package/dist/{lightbox-DqG2z3Cn.js.map → lightbox-DcutIyjx.js.map} +1 -1
  158. package/dist/{lightbox-DbYUSfVl.cjs → lightbox-sPfnYzjJ.cjs} +1 -1
  159. package/dist/{lightbox-DbYUSfVl.cjs.map → lightbox-sPfnYzjJ.cjs.map} +1 -1
  160. package/dist/lightbox.cjs +1 -1
  161. package/dist/lightbox.js +1 -1
  162. package/dist/{list-D6-_E5ZD.js → list-BWrtrdgs.js} +1 -1
  163. package/dist/{list-D6-_E5ZD.js.map → list-BWrtrdgs.js.map} +1 -1
  164. package/dist/{list-CLX4sSAw.cjs → list-C4vasUly.cjs} +1 -1
  165. package/dist/{list-CLX4sSAw.cjs.map → list-C4vasUly.cjs.map} +1 -1
  166. package/dist/list.cjs +1 -1
  167. package/dist/list.js +1 -1
  168. package/dist/{magnetic-BH0TsofV.cjs.map → magnetic-BJgB1dVi.cjs.map} +1 -1
  169. package/dist/{magnetic-BZGFxAWG.js.map → magnetic-YwCNvtbB.js.map} +1 -1
  170. package/dist/{map-WXeVkx2K.cjs → map-BAQ9FEB6.cjs} +1 -1
  171. package/dist/{map-WXeVkx2K.cjs.map → map-BAQ9FEB6.cjs.map} +1 -1
  172. package/dist/{map-Dhy3ta9v.js → map-CEreveeI.js} +1 -1
  173. package/dist/{map-Dhy3ta9v.js.map → map-CEreveeI.js.map} +1 -1
  174. package/dist/map.cjs +1 -1
  175. package/dist/map.js +1 -1
  176. package/dist/menu-3yXDZusj.cjs +23 -0
  177. package/dist/menu-3yXDZusj.cjs.map +1 -0
  178. package/dist/menu-CxChOxWT.js +62 -0
  179. package/dist/menu-CxChOxWT.js.map +1 -0
  180. package/dist/menu.cjs +1 -1
  181. package/dist/menu.js +1 -1
  182. package/dist/mixins-Db7gjDah.cjs +298 -0
  183. package/dist/{mixins-De3xfjrm.cjs.map → mixins-Db7gjDah.cjs.map} +1 -1
  184. package/dist/mixins-Dw6hVfy-.js +627 -0
  185. package/dist/{mixins-CcIWET41.js.map → mixins-Dw6hVfy-.js.map} +1 -1
  186. package/dist/mixins.cjs +1 -1
  187. package/dist/mixins.js +1 -1
  188. package/dist/nav-drawer.cjs +1 -1
  189. package/dist/nav-drawer.js +1 -1
  190. package/dist/navigation-bar.cjs +1 -1
  191. package/dist/navigation-bar.js +1 -1
  192. package/dist/navigation-rail.cjs +1 -1
  193. package/dist/navigation-rail.js +1 -1
  194. package/dist/{notification-D_PQjBSf.cjs → notification-DKYy9qVe.cjs} +1 -1
  195. package/dist/{notification-D_PQjBSf.cjs.map → notification-DKYy9qVe.cjs.map} +1 -1
  196. package/dist/{notification-CVLqQ8c_.js → notification-ycbUBbOu.js} +2 -2
  197. package/dist/{notification-CVLqQ8c_.js.map → notification-ycbUBbOu.js.map} +1 -1
  198. package/dist/notification.cjs +1 -1
  199. package/dist/notification.js +1 -1
  200. package/dist/{option-rm4HebVs.js → option-DtOhMd3k.js} +1 -1
  201. package/dist/{option-rm4HebVs.js.map → option-DtOhMd3k.js.map} +1 -1
  202. package/dist/{option-DDU_goh1.cjs → option-zgVge3BH.cjs} +1 -1
  203. package/dist/{option-DDU_goh1.cjs.map → option-zgVge3BH.cjs.map} +1 -1
  204. package/dist/option.cjs +1 -1
  205. package/dist/option.js +1 -1
  206. package/dist/{overlay-stack-CAQno0CK.js.map → overlay-stack-DCDS17uj.js.map} +1 -1
  207. package/dist/{overlay-stack-BprhAE9a.cjs.map → overlay-stack-DPIe_aYv.cjs.map} +1 -1
  208. package/dist/overlay.cjs +5 -53
  209. package/dist/overlay.cjs.map +1 -1
  210. package/dist/overlay.confirm-body-AFqYBqrI.js +104 -0
  211. package/dist/overlay.confirm-body-AFqYBqrI.js.map +1 -0
  212. package/dist/overlay.confirm-body-DctQLDao.cjs +49 -0
  213. package/dist/overlay.confirm-body-DctQLDao.cjs.map +1 -0
  214. package/dist/overlay.js +120 -360
  215. package/dist/overlay.js.map +1 -1
  216. package/dist/overlay.service-B9On2-Aa.js +146 -0
  217. package/dist/overlay.service-B9On2-Aa.js.map +1 -0
  218. package/dist/overlay.service-k2nCE4pi.cjs +1 -0
  219. package/dist/overlay.service-k2nCE4pi.cjs.map +1 -0
  220. package/dist/page.cjs +1 -1
  221. package/dist/page.js +4 -4
  222. package/dist/{payment-card-form-C0dHYZIv.js → payment-card-form-Be1-OVlL.js} +1 -1
  223. package/dist/{payment-card-form-C0dHYZIv.js.map → payment-card-form-Be1-OVlL.js.map} +1 -1
  224. package/dist/{payment-card-form-DNvmZxs4.cjs → payment-card-form-CNnGePG4.cjs} +1 -1
  225. package/dist/{payment-card-form-DNvmZxs4.cjs.map → payment-card-form-CNnGePG4.cjs.map} +1 -1
  226. package/dist/payment-card-form.cjs +1 -1
  227. package/dist/payment-card-form.js +1 -1
  228. package/dist/{progress-BRerM5Bn.js → progress-BFWzmTlz.js} +1 -1
  229. package/dist/{progress-BRerM5Bn.js.map → progress-BFWzmTlz.js.map} +1 -1
  230. package/dist/{progress-U3LQkpM2.cjs → progress-C4TGG2eN.cjs} +1 -1
  231. package/dist/{progress-U3LQkpM2.cjs.map → progress-C4TGG2eN.cjs.map} +1 -1
  232. package/dist/progress.cjs +1 -1
  233. package/dist/progress.js +1 -1
  234. package/dist/qr-scanner.cjs +1 -1
  235. package/dist/qr-scanner.js +1 -1
  236. package/dist/{radio-group-BZ2WoOXJ.js → radio-group-DTNAW5dd.js} +1 -1
  237. package/dist/{radio-group-BZ2WoOXJ.js.map → radio-group-DTNAW5dd.js.map} +1 -1
  238. package/dist/{radio-group-D7mm-yvJ.cjs → radio-group-xLRp1g57.cjs} +1 -1
  239. package/dist/{radio-group-D7mm-yvJ.cjs.map → radio-group-xLRp1g57.cjs.map} +1 -1
  240. package/dist/radio-group.cjs +1 -1
  241. package/dist/radio-group.js +1 -1
  242. package/dist/range.cjs +1 -1
  243. package/dist/range.js +1 -1
  244. package/dist/{rxjs-utils-d-ivVN84.js.map → rxjs-utils-BK8VMe3K.js.map} +1 -1
  245. package/dist/{rxjs-utils-Csnks202.cjs.map → rxjs-utils-DhOKenkS.cjs.map} +1 -1
  246. package/dist/rxjs-utils.cjs +1 -1
  247. package/dist/rxjs-utils.js +1 -1
  248. package/dist/{scroll-qL-HkMdP.js → scroll-BCmdqSQU.js} +1 -1
  249. package/dist/{scroll-qL-HkMdP.js.map → scroll-BCmdqSQU.js.map} +1 -1
  250. package/dist/{scroll-DJTjNIT_.cjs → scroll-Bdgb-vRy.cjs} +1 -1
  251. package/dist/{scroll-DJTjNIT_.cjs.map → scroll-Bdgb-vRy.cjs.map} +1 -1
  252. package/dist/{select-CnPXUeSf.js → select-COGARE0b.js} +2 -2
  253. package/dist/{select-CnPXUeSf.js.map → select-COGARE0b.js.map} +1 -1
  254. package/dist/{select-BvA7v-gL.cjs → select-Cv5t_PT3.cjs} +1 -1
  255. package/dist/{select-BvA7v-gL.cjs.map → select-Cv5t_PT3.cjs.map} +1 -1
  256. package/dist/select.cjs +1 -1
  257. package/dist/select.js +1 -1
  258. package/dist/skeleton.cjs +1 -1
  259. package/dist/skeleton.js +1 -1
  260. package/dist/skills/INDEX.md +3 -6
  261. package/dist/skills/SKILL.md +13 -9
  262. package/dist/skills/schmancy/INDEX.md +3 -6
  263. package/dist/skills/schmancy/SKILL.md +13 -9
  264. package/dist/slider.cjs +1 -1
  265. package/dist/slider.js +1 -1
  266. package/dist/{splash-screen-BDt4PInk.cjs → splash-screen-B8rFbjqT.cjs} +1 -1
  267. package/dist/{splash-screen-BDt4PInk.cjs.map → splash-screen-B8rFbjqT.cjs.map} +1 -1
  268. package/dist/{splash-screen-C8JCqX5L.js → splash-screen-DbGbGttg.js} +1 -1
  269. package/dist/{splash-screen-C8JCqX5L.js.map → splash-screen-DbGbGttg.js.map} +1 -1
  270. package/dist/splash-screen.cjs +1 -1
  271. package/dist/splash-screen.js +1 -1
  272. package/dist/{src-CqdnWGgr.js → src-YRir9pOP.js} +162 -162
  273. package/dist/src-YRir9pOP.js.map +1 -0
  274. package/dist/{src-CpRNClhg.cjs → src-b8D-Ec-Q.cjs} +13 -13
  275. package/dist/src-b8D-Ec-Q.cjs.map +1 -0
  276. package/dist/steps.cjs +1 -1
  277. package/dist/steps.js +1 -1
  278. package/dist/{surface-C8jQy8Ym.js → surface-BE7sGTBt.js} +1 -1
  279. package/dist/{surface-C8jQy8Ym.js.map → surface-BE7sGTBt.js.map} +1 -1
  280. package/dist/{surface-Du2Y4vXd.cjs → surface-BvudRtf5.cjs} +1 -1
  281. package/dist/{surface-Du2Y4vXd.cjs.map → surface-BvudRtf5.cjs.map} +1 -1
  282. package/dist/surface.cjs +1 -1
  283. package/dist/surface.js +1 -1
  284. package/dist/switch.cjs +1 -1
  285. package/dist/switch.js +1 -1
  286. package/dist/table.cjs +1 -1
  287. package/dist/table.js +1 -1
  288. package/dist/{tabs-0RfeCa00.cjs → tabs-C0XKld1Z.cjs} +1 -1
  289. package/dist/{tabs-0RfeCa00.cjs.map → tabs-C0XKld1Z.cjs.map} +1 -1
  290. package/dist/{tabs-Cyahh9Q6.js → tabs-DIzCRsA3.js} +1 -1
  291. package/dist/{tabs-Cyahh9Q6.js.map → tabs-DIzCRsA3.js.map} +1 -1
  292. package/dist/tabs.cjs +1 -1
  293. package/dist/tabs.js +1 -1
  294. package/dist/teleport.cjs +1 -1
  295. package/dist/teleport.js +1 -1
  296. package/dist/{textarea-jqRrLxmo.cjs → textarea-BCDCGCJd.cjs} +1 -1
  297. package/dist/{textarea-jqRrLxmo.cjs.map → textarea-BCDCGCJd.cjs.map} +1 -1
  298. package/dist/{textarea-CXCcTVnf.js → textarea-UbZzBwqm.js} +1 -1
  299. package/dist/{textarea-CXCcTVnf.js.map → textarea-UbZzBwqm.js.map} +1 -1
  300. package/dist/textarea.cjs +1 -1
  301. package/dist/textarea.js +1 -1
  302. package/dist/theme-CIsI-sFj.cjs +181 -0
  303. package/dist/{theme-Hjz9sCN-.cjs.map → theme-CIsI-sFj.cjs.map} +1 -1
  304. package/dist/{theme-2KZW2Rfs.js → theme-Qh-yPEPL.js} +3 -4
  305. package/dist/{theme-2KZW2Rfs.js.map → theme-Qh-yPEPL.js.map} +1 -1
  306. package/dist/{theme-button-9uF1eoHz.js → theme-button-CjTnfs9x.js} +1 -1
  307. package/dist/{theme-button-9uF1eoHz.js.map → theme-button-CjTnfs9x.js.map} +1 -1
  308. package/dist/{theme-button-C7QIbke1.cjs → theme-button-Dv1D_Vil.cjs} +1 -1
  309. package/dist/{theme-button-C7QIbke1.cjs.map → theme-button-Dv1D_Vil.cjs.map} +1 -1
  310. package/dist/theme-button.cjs +1 -1
  311. package/dist/theme-button.js +1 -1
  312. package/dist/theme.cjs +1 -1
  313. package/dist/{theme.interface-D9l33b-M.cjs.map → theme.interface-BeW-sz_g.cjs.map} +1 -1
  314. package/dist/{theme.interface-DnVNre4O.js.map → theme.interface-v7SkAnDH.js.map} +1 -1
  315. package/dist/theme.js +5 -6
  316. package/dist/theme.service-Cfk88qHK.cjs +1 -0
  317. package/dist/theme.service-Cfk88qHK.cjs.map +1 -0
  318. package/dist/{theme.service-CmbOGMA8.js → theme.service-DIUo1mBP.js} +13 -14
  319. package/dist/theme.service-DIUo1mBP.js.map +1 -0
  320. package/dist/timeline.cjs +1 -1
  321. package/dist/timeline.js +1 -1
  322. package/dist/tree.cjs +1 -1
  323. package/dist/tree.js +1 -1
  324. package/dist/typography.cjs +1 -1
  325. package/dist/typography.js +1 -1
  326. package/dist/{utils-hp-DnFf5.js → utils-BfOze6Tk.js} +1 -1
  327. package/dist/{utils-hp-DnFf5.js.map → utils-BfOze6Tk.js.map} +1 -1
  328. package/dist/{utils-Cr-YO4Np.cjs → utils-CJ9y2Jz9.cjs} +1 -1
  329. package/dist/{utils-Cr-YO4Np.cjs.map → utils-CJ9y2Jz9.cjs.map} +1 -1
  330. package/dist/utils.cjs +1 -1
  331. package/dist/utils.js +2 -2
  332. package/dist/visually-hidden.cjs +1 -1
  333. package/dist/visually-hidden.js +1 -1
  334. package/dist/{window-DtUOWiAj.cjs → window-9HOUXrTU.cjs} +1 -1
  335. package/dist/{window-DtUOWiAj.cjs.map → window-9HOUXrTU.cjs.map} +1 -1
  336. package/dist/{window-C7yY9yp5.js → window-B_55dzk0.js} +3 -3
  337. package/dist/{window-C7yY9yp5.js.map → window-B_55dzk0.js.map} +1 -1
  338. package/dist/window.cjs +1 -1
  339. package/dist/window.js +1 -1
  340. package/package.json +1 -2
  341. package/skills/schmancy/INDEX.md +3 -6
  342. package/skills/schmancy/SKILL.md +13 -9
  343. package/src/content-drawer/drawer.ts +24 -7
  344. package/src/content-drawer/events.ts +6 -0
  345. package/src/content-drawer/sheet.ts +13 -12
  346. package/src/date-range/date-range-dialog.ts +4 -4
  347. package/src/date-range/date-range.ts +35 -53
  348. package/src/index.ts +0 -4
  349. package/src/menu/menu-item.ts +7 -2
  350. package/src/menu/menu.ts +24 -20
  351. package/types/src/content-drawer/drawer.d.ts +2 -0
  352. package/types/src/content-drawer/events.d.ts +6 -0
  353. package/types/src/content-drawer/sheet.d.ts +6 -5
  354. package/types/src/date-range/date-range.d.ts +1 -5
  355. package/types/src/index.d.ts +0 -4
  356. package/types/src/menu/menu-item.d.ts +1 -0
  357. package/types/src/menu/menu.d.ts +9 -7
  358. package/dist/agent/vendor-highlight-CHJZQQB7.js +0 -2178
  359. package/dist/agent/vendor-highlight-CHJZQQB7.js.map +0 -1
  360. package/dist/code-highlight-CMilN0B8.cjs +0 -190
  361. package/dist/code-highlight-CMilN0B8.cjs.map +0 -1
  362. package/dist/code-highlight-kFUJ1Eet.js +0 -296
  363. package/dist/code-highlight-kFUJ1Eet.js.map +0 -1
  364. package/dist/code-highlight.cjs +0 -1
  365. package/dist/code-highlight.js +0 -2
  366. package/dist/date-range-BIyrzTRZ.cjs +0 -131
  367. package/dist/date-range-BIyrzTRZ.cjs.map +0 -1
  368. package/dist/date-range-DOstCIg8.js.map +0 -1
  369. package/dist/dialog-service-DI9PPy4H.js +0 -193
  370. package/dist/dialog-service-DI9PPy4H.js.map +0 -1
  371. package/dist/dialog-service-DJd5L0f5.cjs +0 -1
  372. package/dist/dialog-service-DJd5L0f5.cjs.map +0 -1
  373. package/dist/dialog.cjs +0 -89
  374. package/dist/dialog.cjs.map +0 -1
  375. package/dist/dialog.js +0 -419
  376. package/dist/dialog.js.map +0 -1
  377. package/dist/mailbox-Ct6iYe-4.cjs +0 -1140
  378. package/dist/mailbox-Ct6iYe-4.cjs.map +0 -1
  379. package/dist/mailbox-DsPII8HR.js +0 -1596
  380. package/dist/mailbox-DsPII8HR.js.map +0 -1
  381. package/dist/mailbox.cjs +0 -1
  382. package/dist/mailbox.js +0 -2
  383. package/dist/menu-Bhd3EapX.js +0 -56
  384. package/dist/menu-Bhd3EapX.js.map +0 -1
  385. package/dist/menu-Cg2aaDjs.cjs +0 -23
  386. package/dist/menu-Cg2aaDjs.cjs.map +0 -1
  387. package/dist/mixins-CcIWET41.js +0 -627
  388. package/dist/mixins-De3xfjrm.cjs +0 -298
  389. package/dist/sheet-BRL07BB4.js +0 -170
  390. package/dist/sheet-BRL07BB4.js.map +0 -1
  391. package/dist/sheet-BYQJAHQn.cjs +0 -35
  392. package/dist/sheet-BYQJAHQn.cjs.map +0 -1
  393. package/dist/sheet.cjs +0 -1
  394. package/dist/sheet.js +0 -3
  395. package/dist/sheet.service-B25bsrYG.cjs +0 -1
  396. package/dist/sheet.service-B25bsrYG.cjs.map +0 -1
  397. package/dist/sheet.service-SPQ8oLCi.js +0 -86
  398. package/dist/sheet.service-SPQ8oLCi.js.map +0 -1
  399. package/dist/skills/code-highlight.md +0 -47
  400. package/dist/skills/dialog.md +0 -69
  401. package/dist/skills/mailbox.md +0 -102
  402. package/dist/skills/schmancy/code-highlight.md +0 -47
  403. package/dist/skills/schmancy/dialog.md +0 -69
  404. package/dist/skills/schmancy/mailbox.md +0 -102
  405. package/dist/skills/schmancy/sheet.md +0 -76
  406. package/dist/skills/sheet.md +0 -76
  407. package/dist/src-CpRNClhg.cjs.map +0 -1
  408. package/dist/src-CqdnWGgr.js.map +0 -1
  409. package/dist/theme-Hjz9sCN-.cjs +0 -181
  410. package/dist/theme.events-Cv7N4Toe.js +0 -2
  411. package/dist/theme.events-Cv7N4Toe.js.map +0 -1
  412. package/dist/theme.events-DM4H5F2d.cjs +0 -1
  413. package/dist/theme.events-DM4H5F2d.cjs.map +0 -1
  414. package/dist/theme.service-BrUbGoeQ.cjs +0 -1
  415. package/dist/theme.service-BrUbGoeQ.cjs.map +0 -1
  416. package/dist/theme.service-CmbOGMA8.js.map +0 -1
  417. package/skills/schmancy/code-highlight.md +0 -47
  418. package/skills/schmancy/dialog.md +0 -69
  419. package/skills/schmancy/mailbox.md +0 -102
  420. package/skills/schmancy/sheet.md +0 -76
  421. package/src/code-highlight/code-highlight.ts +0 -345
  422. package/src/code-highlight/code-preview.ts +0 -125
  423. package/src/code-highlight/index.ts +0 -3
  424. package/src/dialog/dialog-base.mixin.ts +0 -576
  425. package/src/dialog/dialog-events.ts +0 -17
  426. package/src/dialog/dialog-service.ts +0 -494
  427. package/src/dialog/dialog.component.ts +0 -414
  428. package/src/dialog/index.ts +0 -3
  429. package/src/mailbox/README.md +0 -128
  430. package/src/mailbox/email-editor.ts +0 -1077
  431. package/src/mailbox/email-layout-selector.ts +0 -58
  432. package/src/mailbox/email-recipients.ts +0 -599
  433. package/src/mailbox/email-template-picker.ts +0 -297
  434. package/src/mailbox/email-viewer.ts +0 -717
  435. package/src/mailbox/index.ts +0 -31
  436. package/src/mailbox/mailbox.ts +0 -364
  437. package/src/mailbox/types.ts +0 -180
  438. package/src/sheet/hook.ts +0 -40
  439. package/src/sheet/index.ts +0 -2
  440. package/src/sheet/sheet.service.ts +0 -245
  441. package/src/sheet/sheet.ts +0 -238
  442. package/types/src/code-highlight/code-highlight.d.ts +0 -49
  443. package/types/src/code-highlight/code-preview.d.ts +0 -30
  444. package/types/src/code-highlight/index.d.ts +0 -3
  445. package/types/src/dialog/dialog-base.mixin.d.ts +0 -30
  446. package/types/src/dialog/dialog-events.d.ts +0 -13
  447. package/types/src/dialog/dialog-service.d.ts +0 -91
  448. package/types/src/dialog/dialog.component.d.ts +0 -150
  449. package/types/src/dialog/index.d.ts +0 -3
  450. package/types/src/mailbox/email-editor.d.ts +0 -101
  451. package/types/src/mailbox/email-layout-selector.d.ts +0 -18
  452. package/types/src/mailbox/email-recipients.d.ts +0 -122
  453. package/types/src/mailbox/email-template-picker.d.ts +0 -54
  454. package/types/src/mailbox/email-viewer.d.ts +0 -86
  455. package/types/src/mailbox/index.d.ts +0 -12
  456. package/types/src/mailbox/mailbox.d.ts +0 -82
  457. package/types/src/mailbox/types.d.ts +0 -176
  458. package/types/src/sheet/hook.d.ts +0 -5
  459. package/types/src/sheet/index.d.ts +0 -2
  460. package/types/src/sheet/sheet.d.ts +0 -29
  461. package/types/src/sheet/sheet.service.d.ts +0 -65
  462. /package/dist/agent/{flow-CaPi2G8y.js → flow-3RrZM-e7.js} +0 -0
  463. /package/dist/agent/{vendor-jsqr-r7GNh4P3.js → vendor-jsqr-BUVwyoGC.js} +0 -0
  464. /package/dist/agent/{vendor-material-color-Be96dpGE.js → vendor-material-color-33Mj762T.js} +0 -0
  465. /package/dist/{context-daN5G6HS.cjs → context-BpCETidA.cjs} +0 -0
  466. /package/dist/{context-Bdu1xt0W.js → context-DJTJnSK4.js} +0 -0
  467. /package/dist/{form-BtwOBMZ9.js → form-BF1c3Dk1.js} +0 -0
  468. /package/dist/{form-CSJp687X.cjs → form-DeO5XX3b.cjs} +0 -0
  469. /package/dist/{hashContent-1ARKIsx9.js → hashContent-BU6jl5ih.js} +0 -0
  470. /package/dist/{hashContent-Bp5S6T4U.cjs → hashContent-Bobsobip.cjs} +0 -0
  471. /package/dist/{magnetic-BH0TsofV.cjs → magnetic-BJgB1dVi.cjs} +0 -0
  472. /package/dist/{magnetic-BZGFxAWG.js → magnetic-YwCNvtbB.js} +0 -0
  473. /package/dist/{overlay-stack-CAQno0CK.js → overlay-stack-DCDS17uj.js} +0 -0
  474. /package/dist/{overlay-stack-BprhAE9a.cjs → overlay-stack-DPIe_aYv.cjs} +0 -0
  475. /package/dist/{rxjs-utils-d-ivVN84.js → rxjs-utils-BK8VMe3K.js} +0 -0
  476. /package/dist/{rxjs-utils-Csnks202.cjs → rxjs-utils-DhOKenkS.cjs} +0 -0
  477. /package/dist/{theme.interface-D9l33b-M.cjs → theme.interface-BeW-sz_g.cjs} +0 -0
  478. /package/dist/{theme.interface-DnVNre4O.js → theme.interface-v7SkAnDH.js} +0 -0
@@ -1,414 +0,0 @@
1
- import { $LitElement } from '@mixins/index'
2
- import { css, html, nothing } from 'lit'
3
- import { customElement, property, queryAssignedElements } from 'lit/decorators.js'
4
- import { cursorGlow } from '../directives/cursor-glow'
5
- import { createRef, ref, type Ref } from 'lit/directives/ref.js'
6
- import { when } from 'lit/directives/when.js'
7
- import { fromEvent, tap } from 'rxjs'
8
- import { takeUntil } from 'rxjs/operators'
9
- import { DialogBase } from './dialog-base.mixin'
10
- import { DialogHereMorty, DialogWhereAreYouRicky, DialogWhereAreYouRickyEvent } from './dialog-events'
11
-
12
- /**
13
- * Unified dialog component that handles both content-only and confirm modes.
14
- *
15
- * @element schmancy-dialog
16
- * @slot default - Content slot for dialog body (used in content mode)
17
- * @slot content - Named slot for custom content in confirm mode
18
- *
19
- * @example Content mode (no buttons):
20
- * ```html
21
- * <schmancy-dialog>
22
- * <my-custom-content></my-custom-content>
23
- * </schmancy-dialog>
24
- * ```
25
- *
26
- * @example Confirm mode (with buttons):
27
- * ```html
28
- * <schmancy-dialog
29
- * title="Confirm Action"
30
- * message="Are you sure?"
31
- * confirm-text="Yes"
32
- * cancel-text="No"
33
- * ></schmancy-dialog>
34
- * ```
35
- */
36
- @customElement('schmancy-dialog')
37
- export class SchmancyDialog extends DialogBase(
38
- $LitElement(css`
39
- :host {
40
- position: fixed;
41
- z-index: var(--schmancy-overlay-z, 10000);
42
- inset: 0;
43
- display: none;
44
- --dialog-width: fit-content;
45
- }
46
-
47
- :host([active]) {
48
- display: block;
49
- }
50
-
51
-
52
- /* Luminous glow around the dialog container */
53
- .dialog {
54
- box-shadow: 0 8px 40px -8px color-mix(in srgb, var(--schmancy-sys-color-primary-default) 15%, transparent);
55
- border-radius: var(--schmancy-sys-shape-corner-large);
56
- }
57
-
58
- @media (prefers-reduced-motion: reduce) {
59
- .dialog { box-shadow: var(--schmancy-sys-elevation-2); }
60
- }
61
- `),
62
- ) {
63
- /**
64
- * Unique identifier for the dialog instance
65
- */
66
- @property({ type: String, reflect: true }) uid!: string
67
-
68
- /**
69
- * Dialog title (enables confirm mode when set)
70
- */
71
- @property({ type: String }) title: string | undefined = undefined
72
-
73
- /**
74
- * Dialog subtitle
75
- */
76
- @property({ type: String }) subtitle: string | undefined = undefined
77
-
78
- /**
79
- * Dialog message
80
- */
81
- @property({ type: String }) message: string | undefined = undefined
82
-
83
- /**
84
- * Text for confirm button (enables confirm mode when set with cancelText)
85
- */
86
- @property({ type: String, attribute: 'confirm-text' }) confirmText: string | undefined = undefined
87
-
88
- /**
89
- * Text for cancel button
90
- */
91
- @property({ type: String, attribute: 'cancel-text' }) cancelText: string | undefined = undefined
92
-
93
- /**
94
- * Dialog variant (affects button colors in confirm mode)
95
- */
96
- @property({ type: String }) variant: 'default' | 'danger' = 'default'
97
-
98
- /**
99
- * Whether to hide action buttons (force content mode)
100
- */
101
- @property({ type: Boolean, attribute: 'hide-actions' }) hideActions = false
102
-
103
- /**
104
- * Slotted children in the named "content" slot (confirm mode custom content)
105
- */
106
- @queryAssignedElements({ slot: 'content', flatten: true })
107
- private _contentSlotElements!: HTMLElement[]
108
-
109
- /**
110
- * Ref to the confirm mode wrapper div
111
- */
112
- private _confirmDialogRef: Ref<HTMLElement> = createRef()
113
-
114
- /**
115
- * Ref to the content mode section element
116
- */
117
- private _contentDialogRef: Ref<HTMLElement> = createRef()
118
-
119
- /**
120
- * Ref to the backdrop element for animations
121
- */
122
- private _backdropRef: Ref<HTMLElement> = createRef()
123
-
124
- /**
125
- * Ref to the drag handle element for swipe gestures
126
- */
127
- private _dragHandleRef: Ref<HTMLElement> = createRef()
128
-
129
- /**
130
- * Stable per-instance id used for ARIA labelledby/describedby wiring
131
- */
132
- private readonly _a11yId = `schmancy-dialog-${Math.random().toString(36).slice(2, 10)}`
133
- private get _titleId() { return `${this._a11yId}-title` }
134
- private get _descId() { return `${this._a11yId}-desc` }
135
-
136
- /**
137
- * Return the dialog element for positioning/size measurement.
138
- * In content mode, returns the first slotted child (the actual component).
139
- * In confirm mode, returns the wrapper div.
140
- */
141
- protected getDialogElement(): HTMLElement | null {
142
- // Content mode: use the section wrapper (slotted content may be display:contents)
143
- if (this._contentDialogRef.value) return this._contentDialogRef.value
144
- // Confirm mode: use the wrapper div
145
- return this._confirmDialogRef.value ?? null
146
- }
147
-
148
- /**
149
- * Return the backdrop element for animations
150
- */
151
- protected getBackdropElement(): HTMLElement | null {
152
- return this._backdropRef.value ?? null
153
- }
154
-
155
- /**
156
- * Return the drag handle element for swipe gestures
157
- */
158
- protected getDragHandleElement(): HTMLElement | null {
159
- return this._dragHandleRef.value ?? null
160
- }
161
-
162
- /**
163
- * Check if dialog is in confirm mode (has buttons)
164
- */
165
- private get isConfirmMode(): boolean {
166
- if (this.hideActions) return false
167
- return !!(this.confirmText?.trim() && this.cancelText?.trim())
168
- }
169
-
170
- /**
171
- * Handle component connection to DOM
172
- */
173
- connectedCallback(): void {
174
- super.connectedCallback()
175
-
176
- // Listen for "where are you ricky" events
177
- fromEvent<DialogWhereAreYouRickyEvent>(window, DialogWhereAreYouRicky)
178
- .pipe(
179
- tap(e => {
180
- if (e.detail.uid === this.uid) this.announcePresence()
181
- }),
182
- takeUntil(this.disconnecting),
183
- )
184
- .subscribe()
185
- }
186
-
187
- /**
188
- * Announce this dialog's presence to the service
189
- */
190
- private announcePresence(): void {
191
- this.dispatchEvent(
192
- new CustomEvent(DialogHereMorty, {
193
- detail: { dialog: this },
194
- bubbles: true,
195
- composed: true,
196
- }),
197
- )
198
- }
199
-
200
- /**
201
- * Handle confirm action
202
- */
203
- private handleConfirm(): void {
204
- this.hide(true)
205
- this.dispatchEvent(
206
- new CustomEvent('confirm', {
207
- bubbles: true,
208
- composed: true,
209
- }),
210
- )
211
- }
212
-
213
- /**
214
- * Handle cancel/close action
215
- */
216
- private handleClose(): void {
217
- if (this.isAnimating()) return
218
- this.hide(false)
219
- this.dispatchEvent(
220
- new CustomEvent(this.isConfirmMode ? 'cancel' : 'close', {
221
- bubbles: true,
222
- composed: true,
223
- }),
224
- )
225
- }
226
-
227
- /**
228
- * Render drag handle for mobile bottom sheet
229
- */
230
- private renderDragHandle() {
231
- return html`
232
- <div ${ref(this._dragHandleRef)} class="dialog-drag-handle flex justify-center pt-2 pb-1 cursor-grab active:cursor-grabbing touch-none">
233
- <div class="w-10 h-1 rounded-full bg-outline-variant"></div>
234
- </div>
235
- `
236
- }
237
-
238
- render() {
239
- const isCentered = this.isCentered()
240
- const hasCustomContent = this._contentSlotElements?.length > 0
241
-
242
- // Mobile bottom sheet classes
243
- const mobileDialogClasses = {
244
- dialog: true,
245
- fixed: true,
246
- 'inset-x-0': true,
247
- 'bottom-0': true,
248
- 'w-full': true,
249
- 'max-h-[90dvh]': true,
250
- 'overflow-hidden': true,
251
- // Safe area padding for notched devices
252
- 'pb-[env(safe-area-inset-bottom)]': true,
253
- }
254
-
255
- // Desktop dialog classes
256
- const desktopDialogClasses = {
257
- dialog: true,
258
- fixed: true,
259
- 'w-[var(--dialog-width)]': true,
260
- 'max-w-[calc(100vw-2rem)]': true,
261
- 'max-h-[90dvh]': true,
262
- 'overflow-hidden': true,
263
- 'top-1/2': isCentered,
264
- 'left-1/2': isCentered,
265
- '-translate-x-1/2': isCentered,
266
- '-translate-y-1/2': isCentered,
267
- }
268
-
269
- const dialogClasses = this.isMobile ? mobileDialogClasses : desktopDialogClasses
270
-
271
- // Button classes - stack vertically on mobile
272
- const buttonContainerClasses = this.isMobile
273
- ? 'flex flex-col-reverse gap-2 w-full'
274
- : 'flex justify-end gap-3'
275
-
276
- // Confirm mode: with title/buttons
277
- if (this.isConfirmMode) {
278
- const hasTitle = !!this.title?.trim()
279
- const hasSubtitle = !!this.subtitle?.trim()
280
- const hasMessage = !!this.message?.trim()
281
- const describedBy = [hasSubtitle && this._descId + '-sub', hasMessage && this._descId + '-msg']
282
- .filter(Boolean)
283
- .join(' ') || ''
284
- return html`
285
- <div ${ref(this._backdropRef)} class="fixed inset-0 bg-surface-container/10 backdrop-blur-lg backdrop-saturate-150 backdrop-brightness-105" @click=${this.handleClose}></div>
286
-
287
- <div
288
- ${ref(this._confirmDialogRef)}
289
- class=${this.classMap(dialogClasses)}
290
- role="alertdialog"
291
- aria-modal="true"
292
- aria-labelledby=${hasTitle ? this._titleId : nothing}
293
- aria-describedby=${describedBy || nothing}
294
- >
295
- <schmancy-surface
296
- ${cursorGlow({ radius: 250, intensity: 0.1 })}
297
- rounded=${this.isMobile ? 'top' : 'all'}
298
- type="glass"
299
- fill="all"
300
- class="overflow-hidden"
301
- >
302
- ${this.isMobile ? this.renderDragHandle() : null}
303
- <schmancy-scroll direction="vertical" hide class="p-4 pt-2">
304
- <schmancy-form @submit=${this.handleConfirm}>
305
- ${when(
306
- hasTitle,
307
- () => html`
308
- <schmancy-typography id=${this._titleId} type="title" token="md" class="mb-1">${this.title}</schmancy-typography>
309
- ${when(
310
- hasSubtitle,
311
- () => html`
312
- <schmancy-typography id="${this._descId}-sub" type="subtitle" token="xs" class="mb-2">
313
- ${this.subtitle}
314
- </schmancy-typography>
315
- `,
316
- )}
317
- `,
318
- )}
319
- ${hasCustomContent
320
- ? html`<div class="mb-4"><slot name="content"></slot></div>`
321
- : when(
322
- hasMessage,
323
- () => html`<schmancy-typography id="${this._descId}-msg" type="body" class="mb-4">${this.message}</schmancy-typography>`,
324
- )}
325
- <div class=${buttonContainerClasses}>
326
- <schmancy-button
327
- variant="outlined"
328
- @click=${this.handleClose}
329
- class=${this.isMobile ? 'w-full' : ''}
330
- >
331
- ${this.cancelText}
332
- </schmancy-button>
333
- <schmancy-button
334
- type="submit"
335
- variant="filled"
336
- class=${this.isMobile ? 'w-full' : ''}
337
- >
338
- ${this.confirmText}
339
- </schmancy-button>
340
- </div>
341
- </schmancy-form>
342
- </schmancy-scroll>
343
- </schmancy-surface>
344
- </div>
345
- `
346
- }
347
-
348
- // Content mode: minimal, just slot
349
- return html`
350
- <div ${ref(this._backdropRef)} class="fixed inset-0 bg-surface-container/10 backdrop-blur-lg backdrop-saturate-150 backdrop-brightness-105" @click=${this.handleClose}></div>
351
-
352
- <section ${ref(this._contentDialogRef)} class=${this.classMap(dialogClasses)} role="dialog" aria-modal="true">
353
- <schmancy-surface ${cursorGlow({ radius: 250, intensity: 0.1 })} rounded=${this.isMobile ? 'top' : 'all'} type="glass" fill="all">
354
- ${this.isMobile ? this.renderDragHandle() : null}
355
- <schmancy-scroll direction="vertical" hide class="max-h-[85dvh]">
356
- <slot></slot>
357
- </schmancy-scroll>
358
- </schmancy-surface>
359
- </section>
360
- `
361
- }
362
-
363
- /**
364
- * Static helper for confirm dialogs
365
- */
366
- static async confirm(options: {
367
- title?: string
368
- subtitle?: string
369
- message?: string
370
- confirmText?: string
371
- cancelText?: string
372
- variant?: 'default' | 'danger'
373
- position?: { x: number; y: number } | MouseEvent | TouchEvent
374
- width?: string
375
- }): Promise<boolean> {
376
- let dialog = document.querySelector('schmancy-dialog[data-static-confirm]') as SchmancyDialog
377
-
378
- if (!dialog) {
379
- dialog = document.createElement('schmancy-dialog') as SchmancyDialog
380
- dialog.setAttribute('data-static-confirm', '')
381
- document.body.appendChild(dialog)
382
- }
383
-
384
- // Set options
385
- dialog.title = options.title
386
- dialog.subtitle = options.subtitle
387
- dialog.message = options.message
388
- dialog.confirmText = options.confirmText ?? 'Confirm'
389
- dialog.cancelText = options.cancelText ?? 'Cancel'
390
- dialog.variant = options.variant ?? 'default'
391
- if (options.width) dialog.style.setProperty('--dialog-width', options.width)
392
-
393
- return dialog.show(options.position)
394
- }
395
-
396
- /**
397
- * Simple shorthand - just pass message and optionally an event
398
- */
399
- static async ask(message: string, event?: MouseEvent | TouchEvent): Promise<boolean> {
400
- return this.confirm({
401
- message,
402
- position: event,
403
- })
404
- }
405
- }
406
-
407
- // Alias for backward compatibility
408
- export { SchmancyDialog as ConfirmDialog }
409
-
410
- declare global {
411
- interface HTMLElementTagNameMap {
412
- 'schmancy-dialog': SchmancyDialog
413
- }
414
- }
@@ -1,3 +0,0 @@
1
- export * from './dialog-service'
2
- export * from './dialog.component'
3
- export * from './dialog-base.mixin'
@@ -1,128 +0,0 @@
1
- # Schmancy Mailbox Components
2
-
3
- A comprehensive email composition and management system.
4
-
5
- ## Components
6
-
7
- ### SchmancyEmailCompose
8
-
9
- Main orchestration component that combines composer, preview, and recipients management.
10
-
11
- ```html
12
- <schmancy-email-compose
13
- .config=${{ sendEndpoint: '/api/send-email' }}
14
- .templates=${emailTemplates}
15
- .importSources=${recipientSources}
16
- @send-email=${handleSendEmail}
17
- ></schmancy-email-compose>
18
- ```
19
-
20
- ### SchmancyEmailComposer
21
-
22
- Rich text email editor with markdown formatting, templates, and file attachments.
23
-
24
- ```html
25
- <schmancy-email-composer
26
- .subject="Welcome to our service"
27
- .body="**Hello** and welcome!"
28
- .templates=${templates}
29
- @composer-change=${handleChange}
30
- ></schmancy-email-composer>
31
- ```
32
-
33
- ### SchmancyEmailPreview
34
-
35
- Email preview component showing HTML and plain text versions.
36
-
37
- ```html
38
- <schmancy-email-preview
39
- subject="Welcome!"
40
- body="**Hello** world"
41
- .attachments=${attachments}
42
- .recipients=${['user@example.com']}
43
- ></schmancy-email-preview>
44
- ```
45
-
46
- ### SchmancyRecipientsPanel
47
-
48
- Floating boat interface for managing email recipients with CSV import.
49
-
50
- ```html
51
- <schmancy-recipients-panel
52
- .recipients=${recipientList}
53
- .importSources=${importOptions}
54
- @emails-imported=${handleImport}
55
- ></schmancy-recipients-panel>
56
- ```
57
-
58
- ## Features
59
-
60
- - **Framework Agnostic**: No Firebase or external dependencies built-in
61
- - **Configurable Upload Handlers**: Support for custom file and image upload logic
62
- - **CSV Import**: Drag & drop CSV files with email validation
63
- - **Rich Text Editing**: Markdown-based editor with formatting toolbar
64
- - **Layout Templates**: Pre-built email layouts (columns, sidebars, image rows)
65
- - **Responsive Design**: Mobile-first with desktop optimization
66
- - **Theme Integration**: Full Schmancy theme system support
67
- - **TypeScript**: Complete type safety with comprehensive interfaces
68
-
69
- ## Configuration
70
-
71
- ### EmailComposeConfig
72
-
73
- ```typescript
74
- interface EmailComposeConfig {
75
- sendEndpoint?: string
76
- templatesEndpoint?: string
77
- uploadEndpoint?: string
78
- authenticateRequest?: (request: RequestInit) => RequestInit
79
- uploadHandler?: (file: File) => Promise<string>
80
- imageUploadHandler?: (file: File) => Promise<string>
81
- }
82
- ```
83
-
84
- ### Import Sources
85
-
86
- ```typescript
87
- interface ImportSource {
88
- id: string
89
- label: string
90
- icon: string
91
- handler: () => void
92
- }
93
-
94
- const importSources: ImportSource[] = [
95
- {
96
- id: 'contacts',
97
- label: 'Import from Contacts',
98
- icon: 'contacts',
99
- handler: () => importFromContacts()
100
- }
101
- ]
102
- ```
103
-
104
- ## Events
105
-
106
- All components dispatch standard CustomEvents:
107
-
108
- - `emails-imported`: When recipients are imported
109
- - `recipient-removed`: When individual recipient is removed
110
- - `recipients-cleared`: When all recipients are cleared
111
- - `selection-changed`: When recipient selection changes
112
- - `compose-changed`: When email content changes
113
- - `send-email`: When send button is clicked
114
- - `send-error`: When validation or sending fails
115
-
116
- ## Design Notes
117
-
118
- - **No Firebase coupling** — framework-agnostic
119
- - **Configurable upload handlers** — custom upload logic via props
120
- - **Optional CSV parser** — use Papa Parse or a custom parser
121
- - **Theme integration** — uses the Schmancy design system
122
- - **Type safety** — comprehensive TypeScript interfaces
123
-
124
- ## Dependencies
125
-
126
- - **Required**: Schmancy core components (button, surface, typography, etc.)
127
- - **Optional**: CSV parser library (Papa Parse recommended)
128
- - **Optional**: Custom upload handlers for file management