@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,245 +0,0 @@
1
- import {
2
- delay,
3
- fromEvent,
4
- map,
5
- of,
6
- Subject,
7
- switchMap,
8
- take,
9
- tap,
10
- } from 'rxjs'
11
- import { $sounds } from '../audio'
12
- import { ComponentType } from '../area/router.types'
13
- import { discoverComponent } from '@mixins/discovery.service'
14
- import { overlayStack } from '../utils/overlay-stack'
15
- import SchmancySheet from './sheet'
16
-
17
- export enum SchmancySheetPosition {
18
- Side = 'side',
19
- Bottom = 'bottom',
20
- }
21
-
22
- export type SheetConfig = {
23
- component: ComponentType
24
- uid?: string
25
- position?: SchmancySheetPosition
26
- persist?: boolean
27
- close?: () => void
28
- lock?: boolean // Controls both ESC and overlay click dismissal
29
- onBeforeOpen?: (component: HTMLElement) => void
30
- onAfterOpen?: (component: HTMLElement) => void
31
- props?: Record<string, unknown> // Properties to pass to the component
32
- }
33
-
34
- // Keep old name for backward compatibility
35
- type BottomSheeetTarget = SheetConfig
36
-
37
- // Function to determine the position based on screen size
38
- const getPosition = (): SchmancySheetPosition => {
39
- return window.innerWidth >= 768 ? SchmancySheetPosition.Side : SchmancySheetPosition.Bottom // Adjust 768 as needed for your breakpoint
40
- }
41
-
42
- class BottomSheetService {
43
- bottomSheet = new Subject<BottomSheeetTarget>()
44
- // Track currently open sheets
45
- private activeSheets = new Set<string>()
46
- // To track if we've set up the popstate listener
47
- private popStateListenerActive = false
48
-
49
- constructor() {
50
- this.setupSheetOpeningLogic()
51
- this.setupPopStateListener()
52
- }
53
-
54
- /**
55
- * Sets up the main sheet opening logic
56
- */
57
- private setupSheetOpeningLogic() {
58
- this.bottomSheet
59
- .pipe(
60
- switchMap(target => {
61
- const uid = target.uid ?? `sheet-${Date.now()}`
62
-
63
- // Discover existing sheet with this uid
64
- return discoverComponent<SchmancySheet>('schmancy-sheet').pipe(
65
- map(existingSheet => {
66
- // Check if discovered sheet matches our uid
67
- const sheet = existingSheet?.getAttribute('uid') === uid ? existingSheet : null
68
- return { target, existingSheet: sheet, uid }
69
- })
70
- )
71
- }),
72
- switchMap(({ target, existingSheet, uid }) => {
73
- // Discover theme container if creating new sheet
74
- if (existingSheet) {
75
- return of({ target, sheet: existingSheet, uid })
76
- }
77
-
78
- return discoverComponent<HTMLElement>('schmancy-theme').pipe(
79
- map(theme => {
80
- // Determine container - use theme or fallback to body
81
- const targetContainer = theme || document.body
82
-
83
- // Create new sheet
84
- const sheet = document.createElement('schmancy-sheet')
85
- sheet.setAttribute('uid', uid)
86
- targetContainer.appendChild(sheet)
87
-
88
- return { target, sheet: sheet as SchmancySheet, uid }
89
- })
90
- )
91
- }),
92
- tap(({ target, sheet }) => {
93
- // Configure sheet attributes
94
- if (target.lock) sheet.setAttribute('lock', 'true')
95
-
96
- const position = target.position || getPosition()
97
- sheet.setAttribute('position', position)
98
-
99
- if (target.persist) sheet.setAttribute('persist', String(target.persist))
100
-
101
- // Set dynamic z-index for proper stacking with dialogs
102
- sheet.style.setProperty('--schmancy-overlay-z', String(overlayStack.getNextZIndex()))
103
-
104
- document.body.style.overflow = 'hidden' // lock the scroll of the host
105
- }),
106
- delay(20),
107
- tap(({ target, uid }) => {
108
- // Dispatch render event - area router handles duplicate prevention
109
- window.dispatchEvent(
110
- new CustomEvent('schmancy-sheet-render', {
111
- detail: {
112
- component: target.component,
113
- uid,
114
- props: target.props
115
- },
116
- bubbles: true,
117
- composed: true,
118
- }),
119
- )
120
- }),
121
- delay(1),
122
- tap(({ sheet, uid }) => {
123
- sheet.setAttribute('open', 'true')
124
- $sounds.play('curious')
125
-
126
- // Add to active sheets tracking
127
- this.activeSheets.add(uid)
128
-
129
- // Set up close event listener
130
- fromEvent<CustomEvent>(sheet, 'close')
131
- .pipe(take(1), delay(300))
132
- .subscribe(() => {
133
- // Remove from active sheets tracking
134
- this.activeSheets.delete(uid)
135
- overlayStack.release()
136
-
137
- // Only keep sheet if persist is explicitly set to a truthy value
138
- const persistAttr = sheet.getAttribute('persist')
139
- const shouldRemove = !persistAttr || persistAttr === 'false'
140
-
141
- if (shouldRemove) {
142
- sheet.remove()
143
- }
144
-
145
- document.body.style.overflow = 'auto' // unlock the scroll of the host
146
- })
147
- }),
148
- )
149
- .subscribe()
150
- }
151
-
152
- /**
153
- * Sets up the popstate listener to handle browser back button
154
- */
155
- private setupPopStateListener() {
156
- if (this.popStateListenerActive) return
157
-
158
- fromEvent<PopStateEvent>(window, 'popstate').subscribe(event => {
159
- // If we have active sheets, close the most recently opened one
160
- if (this.activeSheets.size > 0) {
161
- // Get the last sheet (Set maintains insertion order)
162
- const lastSheet = Array.from(this.activeSheets).pop()
163
- if (lastSheet) {
164
- this.dismiss(lastSheet)
165
-
166
- // Prevent default navigation behavior by pushing a new state
167
- // This effectively cancels out the back navigation
168
- if (event.state && event.state.schmancySheet) {
169
- history.pushState({}, '', window.location.href)
170
- }
171
- }
172
- }
173
- })
174
-
175
- this.popStateListenerActive = true
176
- }
177
-
178
- /**
179
- * Dismiss a sheet by uid, or dismiss the most recently opened sheet if no uid provided
180
- */
181
- dismiss(uid?: string) {
182
- if (!uid && this.activeSheets.size > 0) {
183
- // Get the last sheet opened (Set maintains insertion order)
184
- const sheetsArray = Array.from(this.activeSheets)
185
- uid = sheetsArray[sheetsArray.length - 1]
186
- }
187
-
188
- if (uid) {
189
- $sounds.play('atEase')
190
- window.dispatchEvent(
191
- new CustomEvent('schmancy-sheet-dismiss', {
192
- detail: { uid },
193
- bubbles: true,
194
- composed: true,
195
- })
196
- )
197
- this.activeSheets.delete(uid)
198
- }
199
- }
200
-
201
- /**
202
- * Open a sheet with the given target configuration
203
- * @deprecated Use `push` instead for consistency with area router API
204
- */
205
- open(target: BottomSheeetTarget) {
206
- this.bottomSheet.next(target)
207
- }
208
-
209
- /**
210
- * Push a component to the sheet (recommended method)
211
- * Follows the same API pattern as area.push for consistency
212
- */
213
- push(target: BottomSheeetTarget) {
214
- this.bottomSheet.next(target)
215
- }
216
-
217
- /**
218
- * Check if a sheet is currently open by uid
219
- */
220
- isOpen(uid: string): boolean {
221
- return this.activeSheets.has(uid)
222
- }
223
-
224
- /**
225
- * Close all open sheets
226
- */
227
- closeAll() {
228
- // Copy the set to avoid modification during iteration
229
- Array.from(this.activeSheets).forEach(uid => {
230
- this.dismiss(uid)
231
- })
232
- }
233
-
234
- }
235
-
236
- /**
237
- * Bottom / side sheet service. Mounts any element as a sheet with a chosen
238
- * position (see `SchmancySheetPosition` enum).
239
- *
240
- * @service
241
- * @summary Imperative bottom / side sheet surface.
242
- * @method open({ component, position? }) - Mount an element as a sheet.
243
- * @method dismiss(id?) - Dismiss a sheet by id, or the topmost.
244
- */
245
- export const sheet = new BottomSheetService()
@@ -1,238 +0,0 @@
1
- import { SchmancyElement } from '@mixins/index'
2
- import { area } from '../area'
3
- import { html, css } from 'lit'
4
- import { customElement, property, query } from 'lit/decorators.js'
5
- import { fromEvent, merge, takeUntil, tap, filter } from 'rxjs'
6
- import { on } from './hook'
7
- import { SchmancySheetPosition, sheet } from './sheet.service'
8
- import { BLACKBIRD_EASING, DURATION_ENTER, DURATION_EXIT, DURATION_BACKDROP, EASE_OUT, EASE_IN } from '../utils/animation'
9
-
10
- @customElement('schmancy-sheet')
11
- export default class SchmancySheet extends SchmancyElement {
12
- static styles = [css`
13
- :host {
14
- position: fixed;
15
- inset: 0;
16
- z-index: var(--schmancy-overlay-z, 999);
17
- display: none;
18
- }
19
- :host([open]) {
20
- display: block;
21
- }
22
-
23
- /* Luminous edge glow on sheet panel */
24
- .content {
25
- box-shadow: -8px 0 40px -8px color-mix(in srgb, var(--schmancy-sys-color-primary-default) 15%, transparent);
26
- }
27
-
28
- :host([position='bottom']) .content {
29
- box-shadow: 0 -8px 40px -8px color-mix(in srgb, var(--schmancy-sys-color-primary-default) 15%, transparent);
30
- }
31
-
32
- @media (prefers-reduced-motion: reduce) {
33
- .content { box-shadow: var(--schmancy-sys-elevation-3); }
34
- }
35
- `]
36
-
37
- // uid is inherited from $LitElement mixin - auto-generated or set via attribute
38
- @property({ type: Boolean, reflect: true }) open = false
39
- @property({ type: String, reflect: true }) position: SchmancySheetPosition = SchmancySheetPosition.Side
40
- @property({ type: Boolean, reflect: true }) persist = false
41
- @property({ type: Boolean, reflect: true }) lock = false
42
- @property({ type: Boolean, reflect: true }) handleHistory = true
43
-
44
- private lastFocusedElement: HTMLElement | null = null
45
- @query('.overlay') private overlayEl!: HTMLDivElement
46
- @query('.content') private contentEl!: HTMLDivElement
47
-
48
- @on('open')
49
- onOpenChange(_oldValue: boolean, newValue: boolean) {
50
- if (newValue) {
51
- this.lastFocusedElement = document.activeElement as HTMLElement
52
- this.setBackgroundInert(true)
53
- this.animateIn()
54
- this.focus()
55
- } else {
56
- this.animateOut()
57
- this.setBackgroundInert(false)
58
- this.lastFocusedElement?.focus()
59
- this.lastFocusedElement = null
60
- }
61
- }
62
-
63
- private animateIn() {
64
- if (!this.overlayEl || !this.contentEl) return
65
-
66
- this.overlayEl.animate([{ opacity: 0 }, { opacity: 1 }], {
67
- duration: DURATION_BACKDROP,
68
- easing: EASE_OUT,
69
- fill: 'forwards',
70
- })
71
-
72
- const animation =
73
- this.position === SchmancySheetPosition.Side
74
- ? [
75
- { opacity: 0, transform: 'translateX(100%) scale(0.95)' },
76
- { opacity: 1, transform: 'translateX(0) scale(1)' },
77
- ]
78
- : [
79
- { opacity: 0, transform: 'translateY(100%) scale(0.95)' },
80
- { opacity: 1, transform: 'translateY(0) scale(1)' },
81
- ]
82
-
83
- this.contentEl.animate(animation, {
84
- duration: DURATION_ENTER,
85
- easing: BLACKBIRD_EASING,
86
- fill: 'forwards',
87
- })
88
- }
89
-
90
- private animateOut() {
91
- if (!this.overlayEl || !this.contentEl) return
92
-
93
- this.overlayEl.animate([{ opacity: 1 }, { opacity: 0 }], {
94
- duration: DURATION_EXIT,
95
- easing: EASE_OUT,
96
- fill: 'forwards',
97
- })
98
-
99
- const animation =
100
- this.position === SchmancySheetPosition.Side
101
- ? [
102
- { opacity: 1, transform: 'translateX(0) scale(1)' },
103
- { opacity: 0, transform: 'translateX(100%) scale(0.98)' },
104
- ]
105
- : [
106
- { opacity: 1, transform: 'translateY(0) scale(1)' },
107
- { opacity: 0, transform: 'translateY(100%) scale(0.98)' },
108
- ]
109
-
110
- this.contentEl.animate(animation, {
111
- duration: DURATION_EXIT,
112
- easing: EASE_IN,
113
- fill: 'forwards',
114
- })
115
- }
116
-
117
- connectedCallback() {
118
- super.connectedCallback()
119
- this.setupEventListeners()
120
- }
121
-
122
- disconnectedCallback() {
123
- super.disconnectedCallback()
124
- this.disconnecting.next(true)
125
- }
126
-
127
- private setupEventListeners() {
128
- // Handle browser back button
129
- const popState$ = fromEvent<PopStateEvent>(window, 'popstate').pipe(
130
- filter(() => this.handleHistory),
131
- tap(e => {
132
- e.preventDefault()
133
- this.closeSheet()
134
- }),
135
- )
136
-
137
- // Handle ESC key
138
- const keyUp$ = fromEvent<KeyboardEvent>(this, 'keydown').pipe(
139
- tap(event => {
140
- if (event.key === 'Escape' && !this.lock && this.open) {
141
- event.preventDefault()
142
- event.stopPropagation()
143
- sheet.dismiss(this.uid)
144
- }
145
- }),
146
- )
147
-
148
- // Handle render events from sheet service
149
- const render$ = fromEvent<CustomEvent>(window, 'schmancy-sheet-render').pipe(
150
- filter(e => e.detail.uid === this.uid),
151
- tap(e => {
152
- area.push({
153
- area: this.uid,
154
- component: e.detail.component,
155
- props: e.detail.props,
156
- historyStrategy: 'silent',
157
- })
158
- }),
159
- )
160
-
161
- // Handle dismiss events from sheet service
162
- const dismiss$ = fromEvent<CustomEvent>(window, 'schmancy-sheet-dismiss').pipe(
163
- filter(e => e.detail.uid === this.uid),
164
- tap(() => {
165
- this.closeSheet()
166
- }),
167
- )
168
-
169
- merge(popState$, keyUp$, render$, dismiss$).pipe(takeUntil(this.disconnecting)).subscribe()
170
- }
171
-
172
- private setBackgroundInert(inert: boolean) {
173
- const parent = this.parentElement
174
- if (!parent) return
175
-
176
- Array.from(parent.children).forEach(child => {
177
- if (child !== this && child instanceof HTMLElement) {
178
- child.toggleAttribute('inert', inert)
179
- }
180
- })
181
- }
182
-
183
- closeSheet() {
184
- this.open = false
185
- this.dispatchEvent(new CustomEvent('close'))
186
- }
187
-
188
- override focus() {
189
- // delegatesFocus in shadowRootOptions handles automatic focus
190
- // Just focus first element with autofocus attribute if present
191
- const element = this.querySelector('[autofocus]')
192
- if (element instanceof HTMLElement) {
193
- element.focus()
194
- }
195
- }
196
-
197
- private handleOverlayClick = (e: Event) => {
198
- e.stopPropagation()
199
- if (!this.lock) {
200
- sheet.dismiss(this.uid)
201
- }
202
- }
203
-
204
- render() {
205
- const sheetClasses = `absolute inset-0 flex h-full`
206
-
207
- const overlayClasses = `overlay absolute inset-0 bg-surface-container/10 backdrop-blur-lg backdrop-saturate-150 ${this.lock ? '' : 'cursor-pointer'}`
208
-
209
- const contentClasses =
210
- this.position === SchmancySheetPosition.Side
211
- ? 'content h-full min-w-[320px] max-w-[90vw] w-fit ml-auto z-10'
212
- : 'content w-full mt-auto rounded-t-2xl max-h-[90vh] z-10'
213
-
214
- const surfaceClasses =
215
- this.position === SchmancySheetPosition.Side
216
- ? 'h-full overflow-auto'
217
- : 'max-h-[90vh] overflow-auto'
218
-
219
- return html`
220
- <div class=${sheetClasses} role="dialog" aria-hidden=${!this.open} aria-modal=${this.open} tabindex="0">
221
- <div class=${overlayClasses} @click=${this.handleOverlayClick}></div>
222
- <div class=${contentClasses}>
223
- <schmancy-surface rounded="left" fill="all" id="body" class=${surfaceClasses} type="solid">
224
- <schmancy-area class="size-full overflow-auto" name=${this.uid}>
225
- <slot></slot>
226
- </schmancy-area>
227
- </schmancy-surface>
228
- </div>
229
- </div>
230
- `
231
- }
232
- }
233
-
234
- declare global {
235
- interface HTMLElementTagNameMap {
236
- 'schmancy-sheet': SchmancySheet
237
- }
238
- }
@@ -1,49 +0,0 @@
1
- import { SchmancyElement } from '@mixins/index';
2
- /**
3
- * @element schmancy-code
4
- * Code highlighting component using highlight.js with schmancy theming support
5
- */
6
- export declare class SchmancyCode extends SchmancyElement {
7
- static styles: import("lit").CSSResult[];
8
- /**
9
- * Programming language for syntax highlighting
10
- */
11
- language: string;
12
- /**
13
- * Code content to highlight
14
- */
15
- code: string;
16
- /**
17
- * Optional filename or title to display in header
18
- */
19
- filename?: string;
20
- /**
21
- * Show line numbers
22
- */
23
- lineNumbers: boolean;
24
- /**
25
- * Show copy button
26
- */
27
- copyButton: boolean;
28
- /**
29
- * Highlighted line numbers (comma-separated or ranges like "1-3,5,7-9")
30
- */
31
- highlightLines?: string;
32
- /**
33
- * Maximum height before scrolling
34
- */
35
- maxHeight?: string;
36
- private copied;
37
- private get highlightedCode();
38
- private escapeHtml;
39
- private getHighlightedLines;
40
- private addLineFeatures;
41
- private copyCode;
42
- private getLanguageLabel;
43
- render(): import("lit-html").TemplateResult<1>;
44
- }
45
- declare global {
46
- interface HTMLElementTagNameMap {
47
- 'schmancy-code': SchmancyCode;
48
- }
49
- }
@@ -1,30 +0,0 @@
1
- import { SchmancyElement } from '@mixins/index';
2
- /**
3
- * @element schmancy-code-preview
4
- * A component that shows code and its rendered preview side by side
5
- * Takes the content as a slot and displays both the source and rendered result
6
- */
7
- export declare class SchmancyCodePreview extends SchmancyElement {
8
- static styles: import("lit").CSSResult[];
9
- /**
10
- * Programming language for syntax highlighting
11
- */
12
- language: string;
13
- /**
14
- * Show code on top or side-by-side
15
- */
16
- layout: 'vertical' | 'horizontal';
17
- /**
18
- * Whether to render/execute the code in preview section
19
- * When false, only shows the code without rendering
20
- */
21
- preview: boolean;
22
- private slotContent;
23
- connectedCallback(): void;
24
- render(): import("lit-html").TemplateResult<1>;
25
- }
26
- declare global {
27
- interface HTMLElementTagNameMap {
28
- 'schmancy-code-preview': SchmancyCodePreview;
29
- }
30
- }
@@ -1,3 +0,0 @@
1
- export { SchmancyCode } from './code-highlight';
2
- export { SchmancyCode as SchmancyCodeHighlight } from './code-highlight';
3
- export { SchmancyCodePreview } from './code-preview';
@@ -1,30 +0,0 @@
1
- import { LitElement } from 'lit';
2
- import type { Constructor } from '../../mixins/constructor';
3
- import type { IBaseMixin } from '../../mixins/baseElement';
4
- export interface DialogPosition {
5
- x: number;
6
- y: number;
7
- }
8
- export interface VirtualReference {
9
- getBoundingClientRect: () => DOMRect;
10
- }
11
- /**
12
- * Interface for the DialogBase mixin methods
13
- */
14
- export interface IDialogBaseMixin {
15
- position: DialogPosition;
16
- isMobile: boolean;
17
- dragOffset: number;
18
- show(positionOrEvent?: DialogPosition | MouseEvent | TouchEvent): Promise<boolean>;
19
- hide(result?: boolean): Promise<void>;
20
- isCentered(): boolean;
21
- isAnimating(): boolean;
22
- }
23
- /**
24
- * Dialog mixin with smart positioning using Floating UI.
25
- *
26
- * On mobile (< 640px), automatically switches to bottom sheet mode
27
- * with swipe-to-dismiss gesture. On tablet/desktop, if content exceeds
28
- * a viewport-dependent threshold, also opens as bottom sheet.
29
- */
30
- export declare const DialogBase: <T extends Constructor<LitElement & IBaseMixin>>(superClass: T) => Constructor<IDialogBaseMixin> & T;
@@ -1,13 +0,0 @@
1
- export declare const DialogWhereAreYouRicky = "are-you-there-dialog";
2
- export declare const DialogHereMorty = "yes-dialog-here";
3
- export interface DialogWhereAreYouRickyEvent extends CustomEvent {
4
- detail: {
5
- uid: string;
6
- };
7
- }
8
- export interface DialogHereMortyEvent extends CustomEvent {
9
- detail: {
10
- dialog: any;
11
- theme?: any;
12
- };
13
- }
@@ -1,91 +0,0 @@
1
- import { TemplateResult } from 'lit';
2
- /**
3
- * Dialog service options interface
4
- */
5
- export interface DialogOptions {
6
- title?: string;
7
- subtitle?: string;
8
- message?: string;
9
- confirmText?: string;
10
- cancelText?: string;
11
- variant?: 'default' | 'danger';
12
- position?: {
13
- x: number;
14
- y: number;
15
- } | MouseEvent | TouchEvent;
16
- content?: TemplateResult | HTMLElement | (() => HTMLElement | TemplateResult);
17
- onConfirm?: () => void;
18
- onCancel?: () => void;
19
- hideActions?: boolean;
20
- targetContainer?: HTMLElement;
21
- }
22
- /**
23
- * Prompt dialog options
24
- */
25
- export interface PromptOptions {
26
- title?: string;
27
- message?: string;
28
- label?: string;
29
- placeholder?: string;
30
- defaultValue?: string;
31
- inputType?: 'text' | 'email' | 'password' | 'number' | 'tel' | 'url';
32
- confirmText?: string;
33
- cancelText?: string;
34
- position?: {
35
- x: number;
36
- y: number;
37
- } | MouseEvent | TouchEvent;
38
- }
39
- /**
40
- * Dialog service for centralized dialog management.
41
- * Uses a single unified SchmancyDialog component for all dialog types.
42
- */
43
- export declare class DialogService {
44
- private static instance;
45
- private static DEFAULT_OPTIONS;
46
- private activeDialogs;
47
- private dialogSubject;
48
- private dismissSubject;
49
- private lastClickPosition;
50
- private clickTrackingInitialized;
51
- private constructor();
52
- private setupClickPositionTracking;
53
- static getInstance(): DialogService;
54
- private setupDialogOpeningLogic;
55
- private setupDialogDismissLogic;
56
- confirm(options: DialogOptions): Promise<boolean>;
57
- component(content: TemplateResult | HTMLElement | (() => HTMLElement | TemplateResult), options?: Omit<DialogOptions, 'content' | 'message'>): Promise<boolean>;
58
- dismiss(): boolean;
59
- close(): boolean;
60
- ask(message: string, event?: MouseEvent | TouchEvent): Promise<boolean>;
61
- danger(options: Omit<DialogOptions, 'variant'>): Promise<boolean>;
62
- /**
63
- * Shows a prompt dialog with an input field.
64
- * Returns the input value if confirmed, null if cancelled.
65
- */
66
- prompt(options: PromptOptions): Promise<string | null>;
67
- private getDefaultPosition;
68
- }
69
- /**
70
- * Global dialog utility. Imperative modal API — open any element as a dialog,
71
- * or use the built-in `confirm` / `ask` / `danger` prompts. Returns Promises
72
- * that resolve when the user picks an action.
73
- *
74
- * @service
75
- * @summary Imperative modal dialogs and built-in confirm/ask/danger prompts.
76
- * @method confirm(options: DialogOptions) - Built-in confirm prompt. Returns Promise<boolean>.
77
- * @method ask(message, event?) - One-line yes/no prompt anchored to the triggering event.
78
- * @method danger(options) - Destructive-action confirm styled with the error palette.
79
- * @method component(element, options?) - Open any element as a modal.
80
- * @method dismiss(id?) - Dismiss a dialog by id, or the topmost dialog.
81
- */
82
- export declare const $dialog: {
83
- confirm: (options: DialogOptions) => Promise<boolean>;
84
- ask: (message: string, event?: MouseEvent | TouchEvent) => Promise<boolean>;
85
- danger: (options: Omit<DialogOptions, "variant">) => Promise<boolean>;
86
- prompt: (options: PromptOptions) => Promise<string | null>;
87
- component: (content: TemplateResult | HTMLElement | (() => HTMLElement | TemplateResult), options?: Omit<DialogOptions, "content" | "message">) => Promise<boolean>;
88
- dismiss: () => boolean;
89
- close: () => boolean;
90
- };
91
- export default DialogService;