@mhmo91/schmancy 0.9.13 → 0.9.14

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 (477) hide show
  1. package/custom-elements.json +194 -0
  2. package/dist/agent/schmancy.agent.js +107 -1
  3. package/dist/agent/schmancy.agent.js.map +1 -1
  4. package/dist/agent/schmancy.manifest.json +148 -0
  5. package/dist/{animation-Bcwh107v.cjs.map → animation-CQRdLgzX.cjs.map} +1 -1
  6. package/dist/{animation-CXKSuUoE.js.map → animation-hXFClrIn.js.map} +1 -1
  7. package/dist/{area-CApZWjqs.cjs → area-DBjAhgjP.cjs} +2 -2
  8. package/dist/area-DBjAhgjP.cjs.map +1 -0
  9. package/dist/{area-D_p1YBgP.js → area-Dr4I9R2p.js} +23 -35
  10. package/dist/area-Dr4I9R2p.js.map +1 -0
  11. package/dist/area.cjs +1 -1
  12. package/dist/area.js +3 -2
  13. package/dist/{audio-DUVz7Ars.cjs → audio-Dvr-RBzE.cjs} +1 -1
  14. package/dist/{audio-DUVz7Ars.cjs.map → audio-Dvr-RBzE.cjs.map} +1 -1
  15. package/dist/{audio-C7TzWI8M.js → audio-ql6nvY0y.js} +1 -1
  16. package/dist/{audio-C7TzWI8M.js.map → audio-ql6nvY0y.js.map} +1 -1
  17. package/dist/audio.cjs +1 -1
  18. package/dist/audio.js +2 -2
  19. package/dist/{autocomplete-DAK35swc.js → autocomplete-CgWUCUU-.js} +3 -3
  20. package/dist/{autocomplete-DAK35swc.js.map → autocomplete-CgWUCUU-.js.map} +1 -1
  21. package/dist/{autocomplete-DlCqS1gW.cjs → autocomplete-EM0jE7X2.cjs} +1 -1
  22. package/dist/{autocomplete-DlCqS1gW.cjs.map → autocomplete-EM0jE7X2.cjs.map} +1 -1
  23. package/dist/autocomplete.cjs +1 -1
  24. package/dist/autocomplete.js +1 -1
  25. package/dist/badge.cjs +1 -1
  26. package/dist/badge.js +1 -1
  27. package/dist/{boat-C57YTPbb.cjs → boat-BjYJI1HS.cjs} +1 -1
  28. package/dist/{boat-C57YTPbb.cjs.map → boat-BjYJI1HS.cjs.map} +1 -1
  29. package/dist/{boat-Dms45k4o.js → boat-Dw8TmOzN.js} +4 -4
  30. package/dist/{boat-Dms45k4o.js.map → boat-Dw8TmOzN.js.map} +1 -1
  31. package/dist/boat.cjs +1 -1
  32. package/dist/boat.js +1 -1
  33. package/dist/breadcrumb.cjs +1 -1
  34. package/dist/breadcrumb.js +1 -1
  35. package/dist/{busy-BfN1p1n8.cjs → busy-BmiumJpB.cjs} +1 -1
  36. package/dist/{busy-BfN1p1n8.cjs.map → busy-BmiumJpB.cjs.map} +1 -1
  37. package/dist/{busy-IKS9obYj.js → busy-D2hP3fOy.js} +1 -1
  38. package/dist/{busy-IKS9obYj.js.map → busy-D2hP3fOy.js.map} +1 -1
  39. package/dist/busy.cjs +1 -1
  40. package/dist/busy.js +1 -1
  41. package/dist/button.cjs +1 -1
  42. package/dist/button.js +4 -4
  43. package/dist/{card-ZObyqkFF.cjs → card-BslSqOsf.cjs} +1 -1
  44. package/dist/{card-ZObyqkFF.cjs.map → card-BslSqOsf.cjs.map} +1 -1
  45. package/dist/{card-DQNBal9V.js → card-CEdgK9nb.js} +2 -2
  46. package/dist/{card-DQNBal9V.js.map → card-CEdgK9nb.js.map} +1 -1
  47. package/dist/card.cjs +1 -1
  48. package/dist/card.js +1 -1
  49. package/dist/charts.cjs +1 -1
  50. package/dist/charts.js +1 -1
  51. package/dist/{checkbox-COhTJ1x5.js → checkbox-Br84TiCs.js} +2 -2
  52. package/dist/{checkbox-COhTJ1x5.js.map → checkbox-Br84TiCs.js.map} +1 -1
  53. package/dist/{checkbox-CiAtIrqB.cjs → checkbox-DtcFMgZL.cjs} +1 -1
  54. package/dist/{checkbox-CiAtIrqB.cjs.map → checkbox-DtcFMgZL.cjs.map} +1 -1
  55. package/dist/checkbox.cjs +1 -1
  56. package/dist/checkbox.js +1 -1
  57. package/dist/{chips-B5o3vNQF.js → chips-BNYOweGm.js} +5 -5
  58. package/dist/{chips-B5o3vNQF.js.map → chips-BNYOweGm.js.map} +1 -1
  59. package/dist/{chips-D2xmsC36.cjs → chips-DoCu5YQb.cjs} +1 -1
  60. package/dist/{chips-D2xmsC36.cjs.map → chips-DoCu5YQb.cjs.map} +1 -1
  61. package/dist/chips.cjs +1 -1
  62. package/dist/chips.js +2 -2
  63. package/dist/{chunk-C_1VqBVD.js → chunk-BM5alsTp.js} +9 -2
  64. package/dist/chunk-CncqDLb2.cjs +1 -0
  65. package/dist/{code-highlight-SkMMTkIJ.js → code-highlight-BgExKEto.js} +1 -1
  66. package/dist/{code-highlight-SkMMTkIJ.js.map → code-highlight-BgExKEto.js.map} +1 -1
  67. package/dist/{code-highlight-BToHh8T6.cjs → code-highlight-zSYcSfCz.cjs} +1 -1
  68. package/dist/{code-highlight-BToHh8T6.cjs.map → code-highlight-zSYcSfCz.cjs.map} +1 -1
  69. package/dist/code-highlight.cjs +1 -1
  70. package/dist/code-highlight.js +1 -1
  71. package/dist/{components-Ca7OTgbQ.js → components-DjKNS9R_.js} +1 -1
  72. package/dist/{components-Ca7OTgbQ.js.map → components-DjKNS9R_.js.map} +1 -1
  73. package/dist/{components-B-XYvUWn.cjs → components-TJT8-tva.cjs} +1 -1
  74. package/dist/{components-B-XYvUWn.cjs.map → components-TJT8-tva.cjs.map} +1 -1
  75. package/dist/components.cjs +1 -1
  76. package/dist/components.js +1 -1
  77. package/dist/connectivity.cjs +1 -1
  78. package/dist/connectivity.js +2 -2
  79. package/dist/content-drawer.cjs +1 -1
  80. package/dist/content-drawer.js +1 -1
  81. package/dist/context-CAYQh-mx.cjs +1 -0
  82. package/dist/{context-C6GwmNJJ.cjs.map → context-CAYQh-mx.cjs.map} +1 -1
  83. package/dist/context-D8Q66KPe.js +3 -0
  84. package/dist/{context-oBTPHrbc.js.map → context-D8Q66KPe.js.map} +1 -1
  85. package/dist/{cursor-glow-C2YRrB8Z.js → cursor-glow-BydlDInj.js} +1 -1
  86. package/dist/{cursor-glow-C2YRrB8Z.js.map → cursor-glow-BydlDInj.js.map} +1 -1
  87. package/dist/{cursor-glow-82y5h3E4.cjs → cursor-glow-Duw9jHmh.cjs} +1 -1
  88. package/dist/{cursor-glow-82y5h3E4.cjs.map → cursor-glow-Duw9jHmh.cjs.map} +1 -1
  89. package/dist/{date-range-BTA9nKbw.cjs → date-range-CIWYm3eS.cjs} +1 -1
  90. package/dist/{date-range-BTA9nKbw.cjs.map → date-range-CIWYm3eS.cjs.map} +1 -1
  91. package/dist/{date-range-inline-LLC3Y0mi.cjs → date-range-inline-B9Dp2z6C.cjs} +1 -1
  92. package/dist/{date-range-inline-LLC3Y0mi.cjs.map → date-range-inline-B9Dp2z6C.cjs.map} +1 -1
  93. package/dist/{date-range-inline-B_g1YXu3.js.map → date-range-inline-CpKG6qt2.js.map} +1 -1
  94. package/dist/date-range-inline.cjs +1 -1
  95. package/dist/date-range-inline.js +1 -1
  96. package/dist/{date-range-DUWpF0Qw.js → date-range-sGkC0KF3.js} +4 -4
  97. package/dist/{date-range-DUWpF0Qw.js.map → date-range-sGkC0KF3.js.map} +1 -1
  98. package/dist/date-range.cjs +1 -1
  99. package/dist/date-range.js +1 -1
  100. package/dist/{delay-Co89XWry.cjs → delay-Bu4WMQlV.cjs} +1 -1
  101. package/dist/{delay-Co89XWry.cjs.map → delay-Bu4WMQlV.cjs.map} +1 -1
  102. package/dist/{delay-CtDrlf1Q.js → delay-DwX65fSc.js} +4 -4
  103. package/dist/{delay-CtDrlf1Q.js.map → delay-DwX65fSc.js.map} +1 -1
  104. package/dist/delay.cjs +1 -1
  105. package/dist/delay.js +1 -1
  106. package/dist/{details-CyXyVdb2.cjs → details-B8p62xmR.cjs} +1 -1
  107. package/dist/{details-CyXyVdb2.cjs.map → details-B8p62xmR.cjs.map} +1 -1
  108. package/dist/{details-B1Ax7WiP.js → details-CCW52lzz.js} +5 -5
  109. package/dist/{details-B1Ax7WiP.js.map → details-CCW52lzz.js.map} +1 -1
  110. package/dist/details.cjs +1 -1
  111. package/dist/details.js +1 -1
  112. package/dist/{dialog-service-DXLGSshF.cjs → dialog-service-CzDO08Gy.cjs} +1 -1
  113. package/dist/{dialog-service-DXLGSshF.cjs.map → dialog-service-CzDO08Gy.cjs.map} +1 -1
  114. package/dist/{dialog-service-CCFGpU7a.js → dialog-service-DH-tjPuE.js} +2 -2
  115. package/dist/{dialog-service-CCFGpU7a.js.map → dialog-service-DH-tjPuE.js.map} +1 -1
  116. package/dist/dialog.cjs +1 -1
  117. package/dist/dialog.js +5 -5
  118. package/dist/directives.cjs +1 -1
  119. package/dist/directives.js +5 -5
  120. package/dist/discovery.cjs +1 -1
  121. package/dist/{divider-DuwCrKQu.js → divider-CbEWg3G_.js} +1 -1
  122. package/dist/{divider-DuwCrKQu.js.map → divider-CbEWg3G_.js.map} +1 -1
  123. package/dist/{divider-xcvHqVBc.cjs → divider-JyyFw_3J.cjs} +1 -1
  124. package/dist/{divider-xcvHqVBc.cjs.map → divider-JyyFw_3J.cjs.map} +1 -1
  125. package/dist/divider.cjs +1 -1
  126. package/dist/divider.js +1 -1
  127. package/dist/dropdown.cjs +1 -1
  128. package/dist/dropdown.js +2 -2
  129. package/dist/{expand-DUgOh1af.cjs → expand-BmwIPNjq.cjs} +1 -1
  130. package/dist/{expand-DUgOh1af.cjs.map → expand-BmwIPNjq.cjs.map} +1 -1
  131. package/dist/{expand-X0C1W279.js → expand-bFa_qVDT.js} +4 -4
  132. package/dist/{expand-X0C1W279.js.map → expand-bFa_qVDT.js.map} +1 -1
  133. package/dist/expand.cjs +1 -1
  134. package/dist/expand.js +1 -1
  135. package/dist/{extra-BqfYIC_q.cjs → extra-BUgyMgjl.cjs} +1 -1
  136. package/dist/{extra-BqfYIC_q.cjs.map → extra-BUgyMgjl.cjs.map} +1 -1
  137. package/dist/{extra-BTyq-5Z6.js → extra-HwbaUnCD.js} +1 -1
  138. package/dist/{extra-BTyq-5Z6.js.map → extra-HwbaUnCD.js.map} +1 -1
  139. package/dist/extra.cjs +1 -1
  140. package/dist/extra.js +1 -1
  141. package/dist/float-BQwhfibw.cjs +1 -0
  142. package/dist/{float-yZoLnUg0.cjs.map → float-BQwhfibw.cjs.map} +1 -1
  143. package/dist/{float-BgGeLER6.js → float-D5ezUurt.js} +1 -1
  144. package/dist/{float-BgGeLER6.js.map → float-D5ezUurt.js.map} +1 -1
  145. package/dist/float.cjs +1 -1
  146. package/dist/float.js +1 -1
  147. package/dist/{flow-BPDtbhLe.js.map → flow-BGkHnOnd.js.map} +1 -1
  148. package/dist/{flow-Dn9AZktE.cjs.map → flow-ClAJ6Qby.cjs.map} +1 -1
  149. package/dist/{form-C1qS9uvS.js.map → form-rCZqoAoK.js.map} +1 -1
  150. package/dist/{form-CzD0JLxM.cjs → form-wI58M85H.cjs} +1 -1
  151. package/dist/{form-CzD0JLxM.cjs.map → form-wI58M85H.cjs.map} +1 -1
  152. package/dist/form.cjs +1 -1
  153. package/dist/form.js +1 -1
  154. package/dist/{hashContent-BUqULUiZ.js.map → hashContent-B2IntJQf.js.map} +1 -1
  155. package/dist/{hashContent-CI39BY-_.cjs.map → hashContent-CahnEuut.cjs.map} +1 -1
  156. package/dist/{icons-BLFEJFDG.cjs → icons-B6V3nZ4-.cjs} +1 -1
  157. package/dist/{icons-BLFEJFDG.cjs.map → icons-B6V3nZ4-.cjs.map} +1 -1
  158. package/dist/{icons-BDcb8dNb.js → icons-C5-DIjet.js} +2 -2
  159. package/dist/{icons-BDcb8dNb.js.map → icons-C5-DIjet.js.map} +1 -1
  160. package/dist/icons.cjs +1 -1
  161. package/dist/icons.js +1 -1
  162. package/dist/{iframe-qCW0HzwB.js → iframe-BXBsuLwt.js} +1 -1
  163. package/dist/{iframe-qCW0HzwB.js.map → iframe-BXBsuLwt.js.map} +1 -1
  164. package/dist/{iframe-CrDpQkhj.cjs → iframe-C7sHg7RC.cjs} +1 -1
  165. package/dist/{iframe-CrDpQkhj.cjs.map → iframe-C7sHg7RC.cjs.map} +1 -1
  166. package/dist/iframe.cjs +1 -1
  167. package/dist/iframe.js +1 -1
  168. package/dist/index.cjs +1 -1
  169. package/dist/index.js +53 -52
  170. package/dist/{input-C1MIZaKq.cjs → input-BGNZlfL8.cjs} +1 -1
  171. package/dist/{input-C1MIZaKq.cjs.map → input-BGNZlfL8.cjs.map} +1 -1
  172. package/dist/{input-Dv-HtkM9.js.map → input-Bc3bVISm.js.map} +1 -1
  173. package/dist/{input-chip-CyvjhQSw.js → input-chip-CiG61y-N.js} +1 -1
  174. package/dist/{input-chip-CyvjhQSw.js.map → input-chip-CiG61y-N.js.map} +1 -1
  175. package/dist/{input-chip-DnfthOSY.cjs → input-chip-p24lkYtY.cjs} +1 -1
  176. package/dist/{input-chip-DnfthOSY.cjs.map → input-chip-p24lkYtY.cjs.map} +1 -1
  177. package/dist/input.cjs +1 -1
  178. package/dist/input.js +1 -1
  179. package/dist/{intersection-C0JuW_7U.js.map → intersection-BrXp4YTO.js.map} +1 -1
  180. package/dist/{intersection-MvbRovUz.cjs → intersection-DqBqnpgh.cjs} +1 -1
  181. package/dist/{intersection-MvbRovUz.cjs.map → intersection-DqBqnpgh.cjs.map} +1 -1
  182. package/dist/json.cjs +1 -1
  183. package/dist/json.js +2 -2
  184. package/dist/kbd.cjs +1 -1
  185. package/dist/kbd.js +1 -1
  186. package/dist/{layout-D0cR3hT1.cjs → layout-B0_IXfov.cjs} +1 -1
  187. package/dist/{layout-D0cR3hT1.cjs.map → layout-B0_IXfov.cjs.map} +1 -1
  188. package/dist/{layout-PZCF3kwl.cjs → layout-CTfRXQoz.cjs} +1 -1
  189. package/dist/{layout-PZCF3kwl.cjs.map → layout-CTfRXQoz.cjs.map} +1 -1
  190. package/dist/{layout-Y5qo3er8.js → layout-Cqghi_rx.js} +2 -2
  191. package/dist/{layout-Y5qo3er8.js.map → layout-Cqghi_rx.js.map} +1 -1
  192. package/dist/{layout-BE2ld1IY.js → layout-fjM1DWlF.js} +1 -1
  193. package/dist/{layout-BE2ld1IY.js.map → layout-fjM1DWlF.js.map} +1 -1
  194. package/dist/layout.cjs +1 -1
  195. package/dist/layout.js +2 -2
  196. package/dist/lazy-BDNnH_r7.cjs +1 -0
  197. package/dist/lazy-BDNnH_r7.cjs.map +1 -0
  198. package/dist/lazy-D6R5N5v4.js +13 -0
  199. package/dist/lazy-D6R5N5v4.js.map +1 -0
  200. package/dist/{lightbox-Ce8nMldr.cjs → lightbox-BWKTzA03.cjs} +1 -1
  201. package/dist/{lightbox-Ce8nMldr.cjs.map → lightbox-BWKTzA03.cjs.map} +1 -1
  202. package/dist/{lightbox-C_pqYF6q.js → lightbox-CnCTvqSu.js} +3 -3
  203. package/dist/{lightbox-C_pqYF6q.js.map → lightbox-CnCTvqSu.js.map} +1 -1
  204. package/dist/lightbox.cjs +1 -1
  205. package/dist/lightbox.js +1 -1
  206. package/dist/{list-DcnTGee0.js → list-BpjKUOzM.js} +2 -2
  207. package/dist/{list-DcnTGee0.js.map → list-BpjKUOzM.js.map} +1 -1
  208. package/dist/{list-CLc_OQ5k.cjs → list-CMWHu6cV.cjs} +1 -1
  209. package/dist/{list-CLc_OQ5k.cjs.map → list-CMWHu6cV.cjs.map} +1 -1
  210. package/dist/list.cjs +1 -1
  211. package/dist/list.js +1 -1
  212. package/dist/{litElement.mixin-Mi8bar6B.js → litElement.mixin-BnNYZ24e.js} +1 -1
  213. package/dist/{litElement.mixin-Mi8bar6B.js.map → litElement.mixin-BnNYZ24e.js.map} +1 -1
  214. package/dist/{litElement.mixin-DeT3kAOS.cjs → litElement.mixin-CtQOmwq6.cjs} +1 -1
  215. package/dist/{litElement.mixin-DeT3kAOS.cjs.map → litElement.mixin-CtQOmwq6.cjs.map} +1 -1
  216. package/dist/{magnetic-Dj52WplI.js → magnetic-BhXebqF3.js} +2 -2
  217. package/dist/{magnetic-Dj52WplI.js.map → magnetic-BhXebqF3.js.map} +1 -1
  218. package/dist/{magnetic-aBBnj_vk.cjs → magnetic-CVXEkYTA.cjs} +1 -1
  219. package/dist/{magnetic-aBBnj_vk.cjs.map → magnetic-CVXEkYTA.cjs.map} +1 -1
  220. package/dist/{mailbox-BrLZPj2o.js → mailbox-CHIpxS3W.js} +5 -5
  221. package/dist/{mailbox-BrLZPj2o.js.map → mailbox-CHIpxS3W.js.map} +1 -1
  222. package/dist/{mailbox-CE5sTDsQ.cjs → mailbox-Tg1CROVz.cjs} +1 -1
  223. package/dist/{mailbox-CE5sTDsQ.cjs.map → mailbox-Tg1CROVz.cjs.map} +1 -1
  224. package/dist/mailbox.cjs +1 -1
  225. package/dist/mailbox.js +1 -1
  226. package/dist/{map-SNb-3q5h.js → map-YY1Q4FWO.js} +1 -1
  227. package/dist/{map-SNb-3q5h.js.map → map-YY1Q4FWO.js.map} +1 -1
  228. package/dist/{map-CKzhM6uY.cjs → map-Z_dsu-dv.cjs} +1 -1
  229. package/dist/{map-CKzhM6uY.cjs.map → map-Z_dsu-dv.cjs.map} +1 -1
  230. package/dist/map.cjs +1 -1
  231. package/dist/map.js +1 -1
  232. package/dist/{menu-VErqs9NG.js → menu-BIBUgS1T.js} +2 -2
  233. package/dist/{menu-VErqs9NG.js.map → menu-BIBUgS1T.js.map} +1 -1
  234. package/dist/{menu-BnGjBrdD.cjs → menu-DS8Iz4fJ.cjs} +1 -1
  235. package/dist/{menu-BnGjBrdD.cjs.map → menu-DS8Iz4fJ.cjs.map} +1 -1
  236. package/dist/menu.cjs +1 -1
  237. package/dist/menu.js +1 -1
  238. package/dist/mixins.cjs +1 -1
  239. package/dist/mixins.js +2 -2
  240. package/dist/nav-drawer.cjs +1 -1
  241. package/dist/nav-drawer.js +1 -1
  242. package/dist/navigation-bar.cjs +1 -1
  243. package/dist/navigation-bar.js +1 -1
  244. package/dist/navigation-rail.cjs +1 -1
  245. package/dist/navigation-rail.js +1 -1
  246. package/dist/{notification-B_Fkxv7d.js → notification-ChAvNXf3.js} +3 -3
  247. package/dist/{notification-B_Fkxv7d.js.map → notification-ChAvNXf3.js.map} +1 -1
  248. package/dist/{notification-DE5dFf8G.cjs → notification-DPUkuifB.cjs} +1 -1
  249. package/dist/{notification-DE5dFf8G.cjs.map → notification-DPUkuifB.cjs.map} +1 -1
  250. package/dist/notification.cjs +1 -1
  251. package/dist/notification.js +1 -1
  252. package/dist/{option-DuAlGv27.js → option-Ci7C8xxh.js} +1 -1
  253. package/dist/{option-DuAlGv27.js.map → option-Ci7C8xxh.js.map} +1 -1
  254. package/dist/{option-BmbP5ulK.cjs → option-OIp0joyN.cjs} +1 -1
  255. package/dist/{option-BmbP5ulK.cjs.map → option-OIp0joyN.cjs.map} +1 -1
  256. package/dist/option.cjs +1 -1
  257. package/dist/option.js +1 -1
  258. package/dist/{overlay-stack-J_eJCUTX.cjs.map → overlay-stack-7bs4ZNnh.cjs.map} +1 -1
  259. package/dist/{overlay-stack-BJt_r6aZ.js.map → overlay-stack-DXPYHPhk.js.map} +1 -1
  260. package/dist/overlay.cjs +130 -0
  261. package/dist/overlay.cjs.map +1 -0
  262. package/dist/overlay.js +570 -0
  263. package/dist/overlay.js.map +1 -0
  264. package/dist/page.cjs +1 -1
  265. package/dist/page.js +4 -4
  266. package/dist/{progress-Bt9gUiGP.cjs → progress-32Cad1NX.cjs} +1 -1
  267. package/dist/{progress-Bt9gUiGP.cjs.map → progress-32Cad1NX.cjs.map} +1 -1
  268. package/dist/{progress-BnXr7aAs.js → progress-DGkwPgDX.js} +1 -1
  269. package/dist/{progress-BnXr7aAs.js.map → progress-DGkwPgDX.js.map} +1 -1
  270. package/dist/progress.cjs +1 -1
  271. package/dist/progress.js +1 -1
  272. package/dist/{provide-Disc6_zz.js → provide-BuzyBLGj.js} +1 -1
  273. package/dist/{provide-Disc6_zz.js.map → provide-BuzyBLGj.js.map} +1 -1
  274. package/dist/{provide-CnXCF-UP.cjs → provide-MvHcXKzT.cjs} +1 -1
  275. package/dist/{provide-CnXCF-UP.cjs.map → provide-MvHcXKzT.cjs.map} +1 -1
  276. package/dist/qr-scanner.cjs +1 -1
  277. package/dist/qr-scanner.js +1 -1
  278. package/dist/{radio-group-BgZgHMoA.js → radio-group-B72sYGnS.js} +1 -1
  279. package/dist/{radio-group-BgZgHMoA.js.map → radio-group-B72sYGnS.js.map} +1 -1
  280. package/dist/{radio-group-DkBFgq_3.cjs → radio-group-B7DuNxUq.cjs} +1 -1
  281. package/dist/{radio-group-DkBFgq_3.cjs.map → radio-group-B7DuNxUq.cjs.map} +1 -1
  282. package/dist/radio-group.cjs +1 -1
  283. package/dist/radio-group.js +1 -1
  284. package/dist/range.cjs +1 -1
  285. package/dist/range.js +1 -1
  286. package/dist/{reduced-motion-DR32yKEO.cjs → reduced-motion-9RjNnhIg.cjs} +1 -1
  287. package/dist/{reduced-motion-DR32yKEO.cjs.map → reduced-motion-9RjNnhIg.cjs.map} +1 -1
  288. package/dist/{reduced-motion-B83yZbcO.js.map → reduced-motion-BZTLqAyl.js.map} +1 -1
  289. package/dist/{rxjs-utils-CN9fv8Xq.js → rxjs-utils-CKTnEKUH.js} +1 -1
  290. package/dist/{rxjs-utils-CN9fv8Xq.js.map → rxjs-utils-CKTnEKUH.js.map} +1 -1
  291. package/dist/{rxjs-utils-Vn6DCKgL.cjs → rxjs-utils-DJbZRjp3.cjs} +1 -1
  292. package/dist/{rxjs-utils-Vn6DCKgL.cjs.map → rxjs-utils-DJbZRjp3.cjs.map} +1 -1
  293. package/dist/rxjs-utils.cjs +1 -1
  294. package/dist/rxjs-utils.js +1 -1
  295. package/dist/{scroll-57rkTHm8.js → scroll-CdmXRXh2.js} +1 -1
  296. package/dist/{scroll-57rkTHm8.js.map → scroll-CdmXRXh2.js.map} +1 -1
  297. package/dist/{scroll-hWt0b1gK.cjs → scroll-V1rAZ9fK.cjs} +1 -1
  298. package/dist/{scroll-hWt0b1gK.cjs.map → scroll-V1rAZ9fK.cjs.map} +1 -1
  299. package/dist/{search-BlGJ6uJv.js.map → search-CvUZRLF1.js.map} +1 -1
  300. package/dist/{search-C8eAOzBm.cjs.map → search-CwMav5QB.cjs.map} +1 -1
  301. package/dist/{select-BDonPD5a.cjs → select-DFxoBgEf.cjs} +1 -1
  302. package/dist/{select-BDonPD5a.cjs.map → select-DFxoBgEf.cjs.map} +1 -1
  303. package/dist/{select-CkOAwmxC.js → select-wFDKDLQI.js} +2 -2
  304. package/dist/{select-CkOAwmxC.js.map → select-wFDKDLQI.js.map} +1 -1
  305. package/dist/select.cjs +1 -1
  306. package/dist/select.js +1 -1
  307. package/dist/{sheet-Bv2mPHWk.cjs → sheet-DdlZhnDG.cjs} +2 -2
  308. package/dist/{sheet-Bv2mPHWk.cjs.map → sheet-DdlZhnDG.cjs.map} +1 -1
  309. package/dist/{sheet-NUgEmozP.js → sheet-LFVo5iN4.js} +4 -4
  310. package/dist/{sheet-NUgEmozP.js.map → sheet-LFVo5iN4.js.map} +1 -1
  311. package/dist/sheet.cjs +1 -1
  312. package/dist/sheet.js +2 -2
  313. package/dist/{sheet.service-BKmnlkpZ.cjs → sheet.service-BfNDB0K0.cjs} +1 -1
  314. package/dist/{sheet.service-BKmnlkpZ.cjs.map → sheet.service-BfNDB0K0.cjs.map} +1 -1
  315. package/dist/{sheet.service-CanLo8ko.js → sheet.service-DQE7-_wq.js} +3 -3
  316. package/dist/{sheet.service-CanLo8ko.js.map → sheet.service-DQE7-_wq.js.map} +1 -1
  317. package/dist/skeleton.cjs +1 -1
  318. package/dist/skeleton.js +1 -1
  319. package/dist/skills/INDEX.md +1 -1
  320. package/dist/skills/overlay.md +200 -0
  321. package/dist/skills/schmancy/INDEX.md +1 -1
  322. package/dist/skills/schmancy/overlay.md +200 -0
  323. package/dist/slider.cjs +1 -1
  324. package/dist/slider.js +1 -1
  325. package/dist/{sound.service-BjSoGjmT.cjs → sound.service-BEN6Xjy_.cjs} +1 -1
  326. package/dist/{sound.service-BjSoGjmT.cjs.map → sound.service-BEN6Xjy_.cjs.map} +1 -1
  327. package/dist/{sound.service-cdkw3Wkv.js → sound.service-DWZe6swU.js} +1 -1
  328. package/dist/{sound.service-cdkw3Wkv.js.map → sound.service-DWZe6swU.js.map} +1 -1
  329. package/dist/{splash-screen-BemqNFNj.cjs → splash-screen-C9HqX2nR.cjs} +1 -1
  330. package/dist/{splash-screen-BemqNFNj.cjs.map → splash-screen-C9HqX2nR.cjs.map} +1 -1
  331. package/dist/{splash-screen-B0ppA3f1.js → splash-screen-COg3Z6n8.js} +1 -1
  332. package/dist/{splash-screen-B0ppA3f1.js.map → splash-screen-COg3Z6n8.js.map} +1 -1
  333. package/dist/splash-screen.cjs +1 -1
  334. package/dist/splash-screen.js +1 -1
  335. package/dist/{src-Cjy9zCiU.js → src-C7niWYur.js} +51 -51
  336. package/dist/{src-Cjy9zCiU.js.map → src-C7niWYur.js.map} +1 -1
  337. package/dist/{src-ByGCYD-E.cjs → src-I4M33WK2.cjs} +3 -3
  338. package/dist/{src-ByGCYD-E.cjs.map → src-I4M33WK2.cjs.map} +1 -1
  339. package/dist/steps.cjs +1 -1
  340. package/dist/steps.js +3 -3
  341. package/dist/{store-CO4nJyGj.cjs → store-CjFHCSDb.cjs} +1 -1
  342. package/dist/{store-CO4nJyGj.cjs.map → store-CjFHCSDb.cjs.map} +1 -1
  343. package/dist/{store-Bmj6rvZY.js.map → store-CjzZDQt8.js.map} +1 -1
  344. package/dist/store.cjs +1 -1
  345. package/dist/store.js +1 -1
  346. package/dist/{surface-CtpWeSGn.js → surface-0XM4DBaT.js} +2 -2
  347. package/dist/{surface-CtpWeSGn.js.map → surface-0XM4DBaT.js.map} +1 -1
  348. package/dist/{surface-CoLYICO1.cjs → surface-B6DA01kL.cjs} +1 -1
  349. package/dist/{surface-CoLYICO1.cjs.map → surface-B6DA01kL.cjs.map} +1 -1
  350. package/dist/surface.cjs +1 -1
  351. package/dist/surface.js +1 -1
  352. package/dist/{surface.mixin-CSKqQH-0.cjs → surface.mixin-DxOi-xo0.cjs} +1 -1
  353. package/dist/{surface.mixin-CSKqQH-0.cjs.map → surface.mixin-DxOi-xo0.cjs.map} +1 -1
  354. package/dist/switch.cjs +1 -1
  355. package/dist/switch.js +1 -1
  356. package/dist/{table-COQKtlJB.cjs → table-B-DsOqzT.cjs} +2 -2
  357. package/dist/{table-COQKtlJB.cjs.map → table-B-DsOqzT.cjs.map} +1 -1
  358. package/dist/{table-bgFb1KYU.js → table-hBEZRxM_.js} +3 -3
  359. package/dist/{table-bgFb1KYU.js.map → table-hBEZRxM_.js.map} +1 -1
  360. package/dist/table.cjs +1 -1
  361. package/dist/table.js +1 -1
  362. package/dist/{tabs-BicCpU1B.js → tabs-C7r4TqcX.js} +2 -2
  363. package/dist/{tabs-BicCpU1B.js.map → tabs-C7r4TqcX.js.map} +1 -1
  364. package/dist/{tabs-CoMJAXDy.cjs → tabs-DZaLZUBy.cjs} +1 -1
  365. package/dist/{tabs-CoMJAXDy.cjs.map → tabs-DZaLZUBy.cjs.map} +1 -1
  366. package/dist/tabs.cjs +1 -1
  367. package/dist/tabs.js +1 -1
  368. package/dist/tailwind.mixin-Bh58QnlW.cjs +2 -0
  369. package/dist/{tailwind.mixin-BfdVIGgD.cjs.map → tailwind.mixin-Bh58QnlW.cjs.map} +1 -1
  370. package/dist/tailwind.mixin-H5Pn7vSJ.js +219 -0
  371. package/dist/{tailwind.mixin-CNdR3zFD.js.map → tailwind.mixin-H5Pn7vSJ.js.map} +1 -1
  372. package/dist/teleport.cjs +1 -1
  373. package/dist/teleport.js +1 -1
  374. package/dist/{textarea-CxTSwn3x.cjs → textarea-B2544vx9.cjs} +1 -1
  375. package/dist/{textarea-CxTSwn3x.cjs.map → textarea-B2544vx9.cjs.map} +1 -1
  376. package/dist/{textarea-D7O9Uo15.js → textarea-CS-KdSLz.js} +1 -1
  377. package/dist/{textarea-D7O9Uo15.js.map → textarea-CS-KdSLz.js.map} +1 -1
  378. package/dist/textarea.cjs +1 -1
  379. package/dist/textarea.js +1 -1
  380. package/dist/{theme-DGiyJMTT.js → theme-Cq_c9IO3.js} +7 -7
  381. package/dist/{theme-DGiyJMTT.js.map → theme-Cq_c9IO3.js.map} +1 -1
  382. package/dist/{theme-CCez6SRm.cjs → theme-DU5yXaV-.cjs} +1 -1
  383. package/dist/{theme-CCez6SRm.cjs.map → theme-DU5yXaV-.cjs.map} +1 -1
  384. package/dist/{theme-button-BV0CxpGn.cjs → theme-button-CPujUbgV.cjs} +1 -1
  385. package/dist/{theme-button-BV0CxpGn.cjs.map → theme-button-CPujUbgV.cjs.map} +1 -1
  386. package/dist/{theme-button-s9GfSQL5.js → theme-button-OJl2ma0u.js} +1 -1
  387. package/dist/{theme-button-s9GfSQL5.js.map → theme-button-OJl2ma0u.js.map} +1 -1
  388. package/dist/theme-button.cjs +1 -1
  389. package/dist/theme-button.js +1 -1
  390. package/dist/theme.cjs +1 -1
  391. package/dist/{theme.events-EznKK2Y0.cjs.map → theme.events-DakXxZeP.cjs.map} +1 -1
  392. package/dist/{theme.events-Bw3mYjUA.js.map → theme.events-NuihzD_p.js.map} +1 -1
  393. package/dist/{theme.interface-Cyqv5XWY.js.map → theme.interface-Buged9Cg.js.map} +1 -1
  394. package/dist/{theme.interface-CCE3L1ql.cjs.map → theme.interface-DTwkuAKJ.cjs.map} +1 -1
  395. package/dist/theme.js +5 -5
  396. package/dist/{theme.service-ETiKUwVy.cjs → theme.service-DxJPUGlu.cjs} +1 -1
  397. package/dist/{theme.service-ETiKUwVy.cjs.map → theme.service-DxJPUGlu.cjs.map} +1 -1
  398. package/dist/{theme.service-_qP5WvB9.js → theme.service-cOfPrtfe.js} +2 -2
  399. package/dist/{theme.service-_qP5WvB9.js.map → theme.service-cOfPrtfe.js.map} +1 -1
  400. package/dist/tooltip.cjs +1 -1
  401. package/dist/tree.cjs +1 -1
  402. package/dist/tree.js +1 -1
  403. package/dist/{tslib.es6-PMITL0Z3.cjs.map → tslib.es6-Cnt75pb6.cjs.map} +1 -1
  404. package/dist/{tslib.es6-vJQZBGJO.js.map → tslib.es6-DMzzJKHV.js.map} +1 -1
  405. package/dist/{typewriter-BTqEQXsX.js → typewriter-DyN7xa0n.js} +5 -5
  406. package/dist/{typewriter-BTqEQXsX.js.map → typewriter-DyN7xa0n.js.map} +1 -1
  407. package/dist/{typewriter-DeaL3NfZ.cjs → typewriter-LK0S4NEr.cjs} +1 -1
  408. package/dist/{typewriter-DeaL3NfZ.cjs.map → typewriter-LK0S4NEr.cjs.map} +1 -1
  409. package/dist/typewriter.cjs +1 -1
  410. package/dist/typewriter.js +1 -1
  411. package/dist/typography.cjs +1 -1
  412. package/dist/typography.js +1 -1
  413. package/dist/{utils-C8PD8So2.cjs → utils-2qrmPb78.cjs} +1 -1
  414. package/dist/{utils-C8PD8So2.cjs.map → utils-2qrmPb78.cjs.map} +1 -1
  415. package/dist/{utils-DVuCPDfw.js → utils-xBXLvebz.js} +3 -3
  416. package/dist/{utils-DVuCPDfw.js.map → utils-xBXLvebz.js.map} +1 -1
  417. package/dist/utils.cjs +1 -1
  418. package/dist/utils.js +5 -5
  419. package/dist/visually-hidden.cjs +1 -1
  420. package/dist/visually-hidden.js +1 -1
  421. package/dist/{window-CDHDVOwO.js → window-BWecg8Ih.js} +6 -6
  422. package/dist/{window-CDHDVOwO.js.map → window-BWecg8Ih.js.map} +1 -1
  423. package/dist/{window-IGZgxuUC.cjs → window-Cjv2GqSN.cjs} +1 -1
  424. package/dist/{window-IGZgxuUC.cjs.map → window-Cjv2GqSN.cjs.map} +1 -1
  425. package/dist/window.cjs +1 -1
  426. package/dist/window.js +1 -1
  427. package/package.json +1 -1
  428. package/skills/schmancy/INDEX.md +1 -1
  429. package/skills/schmancy/overlay.md +200 -0
  430. package/src/overlay/index.ts +15 -0
  431. package/src/overlay/overlay.animations.ts +137 -0
  432. package/src/overlay/overlay.component.ts +452 -0
  433. package/src/overlay/overlay.confirm-body.ts +149 -0
  434. package/src/overlay/overlay.gestures.ts +131 -0
  435. package/src/overlay/overlay.layout.ts +76 -0
  436. package/src/overlay/overlay.service.ts +299 -0
  437. package/src/overlay/overlay.stack.ts +171 -0
  438. package/src/overlay/overlay.types.ts +146 -0
  439. package/types/src/overlay/index.d.ts +5 -0
  440. package/types/src/overlay/overlay.animations.d.ts +26 -0
  441. package/types/src/overlay/overlay.component.d.ts +48 -0
  442. package/types/src/overlay/overlay.confirm-body.d.ts +42 -0
  443. package/types/src/overlay/overlay.gestures.d.ts +39 -0
  444. package/types/src/overlay/overlay.layout.d.ts +48 -0
  445. package/types/src/overlay/overlay.service.d.ts +62 -0
  446. package/types/src/overlay/overlay.stack.d.ts +25 -0
  447. package/types/src/overlay/overlay.types.d.ts +122 -0
  448. package/dist/area-CApZWjqs.cjs.map +0 -1
  449. package/dist/area-D_p1YBgP.js.map +0 -1
  450. package/dist/chunk-BCfY8kxB.cjs +0 -1
  451. package/dist/context-C6GwmNJJ.cjs +0 -1
  452. package/dist/context-oBTPHrbc.js +0 -3
  453. package/dist/float-yZoLnUg0.cjs +0 -1
  454. package/dist/tailwind.mixin-BfdVIGgD.cjs +0 -2
  455. package/dist/tailwind.mixin-CNdR3zFD.js +0 -219
  456. /package/dist/{animation-Bcwh107v.cjs → animation-CQRdLgzX.cjs} +0 -0
  457. /package/dist/{animation-CXKSuUoE.js → animation-hXFClrIn.js} +0 -0
  458. /package/dist/{date-range-inline-B_g1YXu3.js → date-range-inline-CpKG6qt2.js} +0 -0
  459. /package/dist/{flow-BPDtbhLe.js → flow-BGkHnOnd.js} +0 -0
  460. /package/dist/{flow-Dn9AZktE.cjs → flow-ClAJ6Qby.cjs} +0 -0
  461. /package/dist/{form-C1qS9uvS.js → form-rCZqoAoK.js} +0 -0
  462. /package/dist/{hashContent-BUqULUiZ.js → hashContent-B2IntJQf.js} +0 -0
  463. /package/dist/{hashContent-CI39BY-_.cjs → hashContent-CahnEuut.cjs} +0 -0
  464. /package/dist/{input-Dv-HtkM9.js → input-Bc3bVISm.js} +0 -0
  465. /package/dist/{intersection-C0JuW_7U.js → intersection-BrXp4YTO.js} +0 -0
  466. /package/dist/{overlay-stack-J_eJCUTX.cjs → overlay-stack-7bs4ZNnh.cjs} +0 -0
  467. /package/dist/{overlay-stack-BJt_r6aZ.js → overlay-stack-DXPYHPhk.js} +0 -0
  468. /package/dist/{reduced-motion-B83yZbcO.js → reduced-motion-BZTLqAyl.js} +0 -0
  469. /package/dist/{search-BlGJ6uJv.js → search-CvUZRLF1.js} +0 -0
  470. /package/dist/{search-C8eAOzBm.cjs → search-CwMav5QB.cjs} +0 -0
  471. /package/dist/{store-Bmj6rvZY.js → store-CjzZDQt8.js} +0 -0
  472. /package/dist/{theme.events-EznKK2Y0.cjs → theme.events-DakXxZeP.cjs} +0 -0
  473. /package/dist/{theme.events-Bw3mYjUA.js → theme.events-NuihzD_p.js} +0 -0
  474. /package/dist/{theme.interface-Cyqv5XWY.js → theme.interface-Buged9Cg.js} +0 -0
  475. /package/dist/{theme.interface-CCE3L1ql.cjs → theme.interface-DTwkuAKJ.cjs} +0 -0
  476. /package/dist/{tslib.es6-PMITL0Z3.cjs → tslib.es6-Cnt75pb6.cjs} +0 -0
  477. /package/dist/{tslib.es6-vJQZBGJO.js → tslib.es6-DMzzJKHV.js} +0 -0
@@ -0,0 +1,146 @@
1
+ import type { TemplateResult } from 'lit'
2
+ import type { Observable } from 'rxjs'
3
+ import type { ComponentType } from '../area/router.types'
4
+ import type { THistoryStrategy } from '../area/router.types'
5
+
6
+ /**
7
+ * What the caller is showing. Flat union — `typeof`-discriminated at runtime.
8
+ * Reuses area's `ComponentType` (class | tag name | HTMLElement | lazy loader)
9
+ * and adds Lit `TemplateResult` for inline templates.
10
+ *
11
+ * The common case is one positional arg: `show(MyEditor)`, `show(html\`...\`)`,
12
+ * `show(el)`, `show('my-tag')`, `show(lazy(() => import('./x')))`.
13
+ */
14
+ export type Content = ComponentType | TemplateResult
15
+
16
+ /**
17
+ * Anchor hint for positioning. When provided, the layout engine tries to
18
+ * anchor the overlay near this point via Floating UI / CSS Anchor Positioning.
19
+ * Falls back to centered / sheet if the anchored position can't fit.
20
+ *
21
+ * `MouseEvent | TouchEvent` — idiomatic: pass the event that triggered the show.
22
+ * `HTMLElement` — anchor to the element's bounding box (menus, tooltips).
23
+ * `{ x, y }` — explicit coordinates (rare; for programmatic positioning).
24
+ */
25
+ export type Anchor = MouseEvent | HTMLElement | { x: number; y: number }
26
+
27
+ /**
28
+ * How the overlay should behave. All optional; the system handles every
29
+ * layout decision itself.
30
+ */
31
+ export interface ShowOptions {
32
+ /** Props to merge into the mounted component. Only meaningful when
33
+ * `content` is a class, tag, or lazy loader. */
34
+ props?: Record<string, unknown>
35
+
36
+ /** Anchor hint — triggers anchored layout (the novel default) when passed.
37
+ * Pass the MouseEvent that opened the overlay. */
38
+ anchor?: Anchor
39
+
40
+ /** Default `true`. `false` blocks Esc / backdrop click / swipe / popstate.
41
+ * Programmatic dismiss (sub.unsubscribe / dismissAll) always works. */
42
+ dismissable?: boolean
43
+
44
+ /** Default `false`. Keep DOM between successive shows with the same
45
+ * content — reuse cached mount instead of reconstructing. */
46
+ persist?: boolean
47
+
48
+ /** Standard web-platform cancellation input. Composes with fetch,
49
+ * addEventListener, getUserMedia, etc. When signal aborts, overlay
50
+ * dismisses (same as unsubscribe). */
51
+ signal?: AbortSignal
52
+
53
+ /** Rare escape hatch. Defaults: `false` for anchored, `true` for
54
+ * centered/sheet. Setting `modal: true` on an anchored overlay forces
55
+ * <dialog>.showModal() semantics (focus trap + background inert) —
56
+ * use for destructive-confirm menus. */
57
+ modal?: boolean
58
+
59
+ /** Default `'push'`. Same vocabulary as `area.push()`.
60
+ * - `'push'` — new history entry; back dismisses, forward re-opens.
61
+ * - `'replace'` — replace current entry; back skips the overlay.
62
+ * - `'silent'` — no history; for tooltips / transient / ephemeral UI. */
63
+ historyStrategy?: THistoryStrategy
64
+ }
65
+
66
+ /**
67
+ * Resolved layout. Pure output of the dispatch engine; callers never pick.
68
+ * - `'centered'` — native <dialog>.showModal(), focus-trapped.
69
+ * - `'anchored'` — popover="auto" + CSS Anchor Positioning / Floating UI,
70
+ * non-modal, background stays interactive.
71
+ * - `'sheet'` — native <dialog>.showModal() as a bottom sheet,
72
+ * swipe-to-dismiss, safe-area aware.
73
+ */
74
+ export type OverlayLayout = 'centered' | 'anchored' | 'sheet'
75
+
76
+ /**
77
+ * Read-only snapshot of an active overlay. Emitted as part of the
78
+ * `openOverlays$` stream for stack introspection.
79
+ */
80
+ export interface OverlayEntry {
81
+ /** Internal id (auto-generated uuid). Exposed for debugging / devtools.
82
+ * Not a public identifier — callers use the Subscription for identity. */
83
+ readonly id: string
84
+ /** The mounted `<schmancy-overlay>` element. Escape hatch for DOM access. */
85
+ readonly element: HTMLElement
86
+ /** Current layout, chosen by the dispatch engine. */
87
+ readonly layout: OverlayLayout
88
+ }
89
+
90
+ /**
91
+ * Reason the overlay closed. Emitted on the internal close-event `detail`
92
+ * for consumers who need to distinguish user-dismiss from programmatic
93
+ * dismiss from form submission.
94
+ */
95
+ export type CloseReason =
96
+ | 'structured' // content dispatched CustomEvent('close', { detail })
97
+ | 'native-submit' // <form method="dialog"> committed a returnValue
98
+ | 'escape' // user pressed Escape
99
+ | 'backdrop' // user clicked outside the overlay
100
+ | 'swipe' // user swiped a bottom sheet down
101
+ | 'popstate' // user hit back button / hardware back
102
+ | 'light-dismiss' // popover light-dismiss (clicked outside anchored overlay)
103
+ | 'programmatic' // sub.unsubscribe() / dismissAll()
104
+ | 'abort' // AbortSignal aborted
105
+
106
+ /**
107
+ * Options for confirm() / danger() / ask() sugar.
108
+ */
109
+ export interface OverlayConfirmOptions {
110
+ title?: string
111
+ subtitle?: string
112
+ message?: string
113
+ /** Default `'Confirm'`. */
114
+ confirmText?: string
115
+ /** Default `'Cancel'`. */
116
+ cancelText?: string
117
+ /** `'danger'` flips the confirm button to destructive styling and
118
+ * sets `role="alertdialog"`. */
119
+ variant?: 'default' | 'danger'
120
+ /** Anchor hint — same semantics as `show()`. */
121
+ anchor?: Anchor
122
+ /** Standard cancellation input. */
123
+ signal?: AbortSignal
124
+ }
125
+
126
+ /**
127
+ * Options for prompt() sugar.
128
+ */
129
+ export interface OverlayPromptOptions extends OverlayConfirmOptions {
130
+ label?: string
131
+ defaultValue?: string
132
+ placeholder?: string
133
+ inputType?: 'text' | 'email' | 'number' | 'password' | 'url' | 'tel'
134
+ /** Optional HTML5 validation pattern applied to the input. */
135
+ pattern?: string
136
+ required?: boolean
137
+ }
138
+
139
+ /**
140
+ * Signature of the primary verb — declared here for consumption by the
141
+ * service and the skill docs. Cold Observable; subscription IS the lifecycle.
142
+ */
143
+ export type ShowFn = <T = void>(
144
+ content: Content,
145
+ options?: ShowOptions,
146
+ ) => Observable<T | undefined>
@@ -0,0 +1,5 @@
1
+ export * from './overlay.component';
2
+ export * from './overlay.confirm-body';
3
+ export * from './overlay.service';
4
+ export type { Anchor, CloseReason, Content, OverlayConfirmOptions, OverlayEntry, OverlayLayout, OverlayPromptOptions, ShowFn, ShowOptions, } from './overlay.types';
5
+ export { lazy } from '../area/lazy';
@@ -0,0 +1,26 @@
1
+ import type { OverlayLayout } from './overlay.types';
2
+ /**
3
+ * WAAPI keyframes + options per layout + direction.
4
+ *
5
+ * One animation vocabulary — no per-element bespoke keyframes. Aligns
6
+ * with the `animation` skill (spring physics presets). Honors
7
+ * `prefers-reduced-motion` by collapsing transforms to opacity-only.
8
+ *
9
+ * Returns `null` when reduced-motion is active and only opacity change
10
+ * is needed — the caller sets style directly.
11
+ */
12
+ /**
13
+ * Shape matches both DOM `AnimationEffectTiming` and
14
+ * `KeyframeAnimationOptions` so it passes structural checks in both
15
+ * older and newer `lib.dom.d.ts` vintages.
16
+ */
17
+ export interface AnimationSpec {
18
+ keyframes: Keyframe[];
19
+ options: {
20
+ duration: number;
21
+ easing: string;
22
+ fill?: FillMode;
23
+ };
24
+ }
25
+ export declare function backdropAnimation(direction: 'in' | 'out'): AnimationSpec;
26
+ export declare function surfaceAnimation(layout: OverlayLayout, direction: 'in' | 'out'): AnimationSpec;
@@ -0,0 +1,48 @@
1
+ import { type TemplateResult } from 'lit';
2
+ import type { CloseReason, Content, OverlayLayout, ShowOptions } from './overlay.types';
3
+ declare const SchmancyOverlay_base: CustomElementConstructor & import("@mixins/index").Constructor<import("lit").LitElement> & import("@mixins/index").Constructor<import("@mixins/index").IBaseMixin>;
4
+ /**
5
+ * The single overlay element. Hosts a native `<dialog>` in its shadow
6
+ * root for centered/sheet layouts; for anchored, we stay modeless by
7
+ * using `<dialog>` with .show() (non-modal) + explicit positioning.
8
+ *
9
+ * Public lifecycle: the service calls `open()` to mount content and
10
+ * animate in, `close(reason)` to animate out and dismiss. The element
11
+ * dispatches `overlay-close` when closed; the service listens and
12
+ * resolves the caller's Observable.
13
+ */
14
+ export declare class SchmancyOverlay extends SchmancyOverlay_base {
15
+ layout: OverlayLayout;
16
+ dismissable: boolean;
17
+ modal: boolean;
18
+ private _dialog;
19
+ private _surface;
20
+ /** Close trigger for the service; emits the reason + detail payload. */
21
+ private readonly _closed$;
22
+ private _mounted;
23
+ private _closing;
24
+ /** Service subscribes to this to know when the overlay dismissed. */
25
+ get closed$(): import('rxjs').Observable<{
26
+ reason: CloseReason;
27
+ result?: unknown;
28
+ }>;
29
+ /**
30
+ * Mount content and animate in. Called by the service after the
31
+ * element is attached to the DOM. Returns a promise that resolves
32
+ * when the entrance animation completes.
33
+ */
34
+ open(content: Content, options: ShowOptions): Promise<void>;
35
+ /** Play exit animations then close the native dialog. */
36
+ close(reason: CloseReason, result?: unknown): Promise<void>;
37
+ private wireCloseTriggers;
38
+ private positionAnchored;
39
+ private playEnterAnimations;
40
+ private playExitAnimations;
41
+ protected render(): TemplateResult;
42
+ }
43
+ declare global {
44
+ interface HTMLElementTagNameMap {
45
+ 'schmancy-overlay': SchmancyOverlay;
46
+ }
47
+ }
48
+ export {};
@@ -0,0 +1,42 @@
1
+ import { type TemplateResult } from 'lit';
2
+ declare const SchmancyOverlayPromptBody_base: CustomElementConstructor & import("@mixins/index").Constructor<import("lit").LitElement> & import("@mixins/index").Constructor<import("@mixins/index").IBaseMixin>;
3
+ /**
4
+ * Internal body component used by the `confirm()` / `prompt()` sugar.
5
+ *
6
+ * Minimal, dependency-free — plain HTML buttons / input so this file
7
+ * doesn't need to import schmancy-form / schmancy-button (avoids the
8
+ * risk of circular module graphs during early imports of $overlay).
9
+ *
10
+ * Emits a `close` CustomEvent with the typed result; the overlay picks
11
+ * that up as the primary return channel. For custom-styled confirms,
12
+ * callers pass their own component to `show()`.
13
+ */
14
+ export declare class SchmancyOverlayPromptBody extends SchmancyOverlayPromptBody_base {
15
+ heading?: string;
16
+ subtitle?: string;
17
+ message?: string;
18
+ confirmText: string;
19
+ cancelText: string;
20
+ variant: 'default' | 'danger';
21
+ /** Presence of `mode` switches between confirm (boolean) and prompt (string). */
22
+ mode: 'confirm' | 'prompt';
23
+ label?: string;
24
+ defaultValue: string;
25
+ placeholder?: string;
26
+ inputType: string;
27
+ pattern?: string;
28
+ required: boolean;
29
+ private _input?;
30
+ firstUpdated(): void;
31
+ private dismiss;
32
+ private handleCancel;
33
+ private handleConfirm;
34
+ private handleSubmit;
35
+ protected render(): TemplateResult;
36
+ }
37
+ declare global {
38
+ interface HTMLElementTagNameMap {
39
+ 'schmancy-overlay-prompt-body': SchmancyOverlayPromptBody;
40
+ }
41
+ }
42
+ export {};
@@ -0,0 +1,39 @@
1
+ import { Observable } from 'rxjs';
2
+ /**
3
+ * Swipe-to-dismiss gesture for sheet-layout overlays.
4
+ *
5
+ * RxJS-native (rxjs skill principle 3: every async source is an Observable).
6
+ * Returns an Observable that emits `'dismiss'` when the gesture passes the
7
+ * distance/velocity threshold. Caller maps emissions to teardown.
8
+ *
9
+ * Thresholds are policy constants, not magic numbers.
10
+ */
11
+ /** Distance beyond which the gesture dismisses, in px. */
12
+ export declare const DISMISS_DISTANCE_PX = 80;
13
+ /** Distance beyond which the gesture dismisses, as a fraction of sheet height. */
14
+ export declare const DISMISS_DISTANCE_FRACTION = 0.3;
15
+ /** Velocity beyond which the gesture dismisses, in px per ms. */
16
+ export declare const DISMISS_VELOCITY_PX_PER_MS = 0.5;
17
+ /** Drag only starts if touchstart is within this top-px band (unless a drag handle is used). */
18
+ export declare const DRAG_START_TOP_PX = 40;
19
+ /** Snap-back spring duration when gesture doesn't pass threshold. */
20
+ export declare const SNAP_BACK_MS = 300;
21
+ export interface SwipeInputs {
22
+ /** The surface element to track gestures on. */
23
+ surface: HTMLElement;
24
+ /** Optional drag handle. When provided, drag can start from anywhere on
25
+ * the handle; without it, drag must start in the top DRAG_START_TOP_PX band. */
26
+ dragHandle?: HTMLElement | null;
27
+ /** Completes the gesture stream (component disconnect / layout change). */
28
+ until$: Observable<unknown>;
29
+ }
30
+ /**
31
+ * Returns an Observable that emits exactly once when the user commits to
32
+ * dismissing the sheet (threshold passed). The gesture is owned by the
33
+ * caller — teardown fires on unsubscribe.
34
+ *
35
+ * During an in-progress drag, the surface's `transform` is updated
36
+ * directly for 1:1 tracking. On release-but-not-dismissed, the surface
37
+ * snaps back via a CSS transition.
38
+ */
39
+ export declare function swipeToDismiss$(inputs: SwipeInputs): Observable<'dismiss'>;
@@ -0,0 +1,48 @@
1
+ import type { Anchor, OverlayLayout } from './overlay.types';
2
+ /**
3
+ * Layout dispatch engine — pure function of (anchor, content, viewport).
4
+ * No DOM access, no side effects — testable with synthetic inputs.
5
+ *
6
+ * Thresholds are policy constants, not magic numbers. Changes are visible
7
+ * as named-constant diffs, not hidden in inline literals (state skill:
8
+ * "thresholds ARE the policy").
9
+ */
10
+ /** Below this viewport width, every overlay becomes a bottom sheet. */
11
+ export declare const NARROW_VIEWPORT_PX = 640;
12
+ /** Content taller than this fraction of viewport height → sheet. */
13
+ export declare const TALL_CONTENT_FRACTION = 0.8;
14
+ /** Content wider than this fraction of viewport width → sheet. */
15
+ export declare const WIDE_CONTENT_FRACTION = 0.9;
16
+ /** Floating UI / CSS anchor-positioning safety padding. */
17
+ export declare const ANCHOR_FIT_PADDING_PX = 16;
18
+ export interface LayoutInputs {
19
+ anchor?: Anchor;
20
+ content: {
21
+ width: number;
22
+ height: number;
23
+ };
24
+ viewport: {
25
+ width: number;
26
+ height: number;
27
+ /** `matchMedia('(pointer: coarse)').matches` at call time. */
28
+ isCoarsePointer: boolean;
29
+ };
30
+ }
31
+ /**
32
+ * Priority order:
33
+ * 1. viewport / content forces sheet
34
+ * 2. anchor provided → anchored (the novel default)
35
+ * 3. fallback → centered
36
+ *
37
+ * Floating UI's `flip` + `shift` + `size` middleware handles "anchor
38
+ * doesn't fit initially" — it returns a fitting position rather than
39
+ * rejecting. So step 2 does NOT branch on "does the anchor fit?";
40
+ * Floating UI's output IS the answer. If content is genuinely too
41
+ * large for any anchored position, step 1 already routed to sheet.
42
+ */
43
+ export declare function resolveLayout(inputs: LayoutInputs): OverlayLayout;
44
+ /**
45
+ * Read the current viewport + pointer inputs. Separated so tests can
46
+ * substitute synthetic inputs and the `resolveLayout` fn stays pure.
47
+ */
48
+ export declare function readViewport(): LayoutInputs['viewport'];
@@ -0,0 +1,62 @@
1
+ import { Observable } from 'rxjs';
2
+ import type { CloseReason, OverlayConfirmOptions, Content, OverlayEntry, OverlayPromptOptions, ShowOptions } from './overlay.types';
3
+ /**
4
+ * Public read-only stream of the current overlay stack. Subscribe to
5
+ * observe stack changes — e.g. to update a breadcrumb, show a "close
6
+ * all" button, or gate another action while any overlay is open.
7
+ *
8
+ * Emits synchronously with the current snapshot on subscribe. Never
9
+ * completes — the caller owns teardown via `takeUntil(this.disconnecting)`.
10
+ */
11
+ export declare const openOverlays$: Observable<readonly OverlayEntry[]>;
12
+ /**
13
+ * Open an overlay containing `content`. Returns a cold Observable — the
14
+ * overlay mounts on subscribe and dismisses on unsubscribe. Emits at
15
+ * most one value (the result from content's `close` event) then completes.
16
+ *
17
+ * The subscription IS the overlay lifecycle. `takeUntil(this.disconnecting)`
18
+ * on the caller's side means the overlay auto-dismisses when the caller
19
+ * unmounts — no handles to track, no leaks.
20
+ *
21
+ * **Anchored is the novel default.** When triggered by a user event, pass
22
+ * it as `anchor` — the overlay blooms from the point of attention. Falls
23
+ * back to centered or sheet when the viewport / content makes that the
24
+ * better layout (see overlay.layout.ts).
25
+ *
26
+ * @example
27
+ * show(MyEditor, { props: { id }, anchor: event })
28
+ * .pipe(takeUntil(this.disconnecting))
29
+ * .subscribe(saved => saved && this.store.persist(saved))
30
+ */
31
+ export declare function show<T = void>(content: Content, options?: ShowOptions): Observable<T | undefined>;
32
+ /**
33
+ * Yes/no confirmation dialog. Returns a Promise that resolves with the
34
+ * user's choice. `variant: 'danger'` flips to destructive styling and
35
+ * `role="alertdialog"`.
36
+ */
37
+ export declare function confirm(options?: OverlayConfirmOptions): Promise<boolean>;
38
+ /**
39
+ * Input prompt dialog. Returns the entered string, or `null` if the user
40
+ * cancels or dismisses.
41
+ */
42
+ export declare function prompt(options?: OverlayPromptOptions): Promise<string | null>;
43
+ /**
44
+ * Subscribe to custom events emitted from any currently-open overlay
45
+ * whose content matches `tagName`. Inspired by `area.on(name)` — keyed
46
+ * by tag name (stable across HMR / lazy chunks) rather than a uid or
47
+ * class reference.
48
+ *
49
+ * The returned Observable never completes on its own — the caller owns
50
+ * teardown via `takeUntil(this.disconnecting)`. During gaps where no
51
+ * matching overlay is open, no events are emitted; when an instance
52
+ * mounts, events flow.
53
+ *
54
+ * Stacked instances of the same content merge their event streams.
55
+ */
56
+ export declare function overlayEvents<E extends Event = CustomEvent>(tagName: string, eventName: string): Observable<E>;
57
+ /**
58
+ * Close every currently-open overlay. LIFO order. Imperative — use for
59
+ * app-level flows like logout or route reset.
60
+ */
61
+ export declare function dismissAll(): void;
62
+ export type { CloseReason };
@@ -0,0 +1,25 @@
1
+ import { Observable } from 'rxjs';
2
+ import type { OverlayEntry } from './overlay.types';
3
+ /** Public read-only stream of the current stack. Emits on every push/pop. */
4
+ export declare const stack$: Observable<readonly OverlayEntry[]>;
5
+ /** Synchronous snapshot. Use only when a component can't subscribe. */
6
+ export declare function currentStack(): readonly OverlayEntry[];
7
+ /** Append an entry (top of stack). */
8
+ export declare function pushEntry(entry: OverlayEntry): void;
9
+ /** Remove by id. No-op if the id is not in the stack. */
10
+ export declare function removeEntry(id: string): void;
11
+ /** Clear the entire stack. Used by dismissAll(). */
12
+ export declare function clearStack(): void;
13
+ /** Top entry (LIFO). Undefined when stack is empty. */
14
+ export declare function topEntry(): OverlayEntry | undefined;
15
+ export declare function markModal(id: string, hostContainer: HTMLElement): void;
16
+ export declare function unmarkModal(id: string): void;
17
+ /**
18
+ * Returns an Observable of `tagName` elements currently in the stack.
19
+ * The overlayEvents public helper composes `fromEvent` over this stream
20
+ * via switchMap to tap events without owning the overlay lifecycle.
21
+ *
22
+ * Stays alive across open/close cycles — the caller owns completion via
23
+ * `takeUntil(this.disconnecting)`, matching the house rxjs convention.
24
+ */
25
+ export declare function elementsByTag$(tagName: string): Observable<readonly HTMLElement[]>;
@@ -0,0 +1,122 @@
1
+ import type { TemplateResult } from 'lit';
2
+ import type { Observable } from 'rxjs';
3
+ import type { ComponentType } from '../area/router.types';
4
+ import type { THistoryStrategy } from '../area/router.types';
5
+ /**
6
+ * What the caller is showing. Flat union — `typeof`-discriminated at runtime.
7
+ * Reuses area's `ComponentType` (class | tag name | HTMLElement | lazy loader)
8
+ * and adds Lit `TemplateResult` for inline templates.
9
+ *
10
+ * The common case is one positional arg: `show(MyEditor)`, `show(html\`...\`)`,
11
+ * `show(el)`, `show('my-tag')`, `show(lazy(() => import('./x')))`.
12
+ */
13
+ export type Content = ComponentType | TemplateResult;
14
+ /**
15
+ * Anchor hint for positioning. When provided, the layout engine tries to
16
+ * anchor the overlay near this point via Floating UI / CSS Anchor Positioning.
17
+ * Falls back to centered / sheet if the anchored position can't fit.
18
+ *
19
+ * `MouseEvent | TouchEvent` — idiomatic: pass the event that triggered the show.
20
+ * `HTMLElement` — anchor to the element's bounding box (menus, tooltips).
21
+ * `{ x, y }` — explicit coordinates (rare; for programmatic positioning).
22
+ */
23
+ export type Anchor = MouseEvent | HTMLElement | {
24
+ x: number;
25
+ y: number;
26
+ };
27
+ /**
28
+ * How the overlay should behave. All optional; the system handles every
29
+ * layout decision itself.
30
+ */
31
+ export interface ShowOptions {
32
+ /** Props to merge into the mounted component. Only meaningful when
33
+ * `content` is a class, tag, or lazy loader. */
34
+ props?: Record<string, unknown>;
35
+ /** Anchor hint — triggers anchored layout (the novel default) when passed.
36
+ * Pass the MouseEvent that opened the overlay. */
37
+ anchor?: Anchor;
38
+ /** Default `true`. `false` blocks Esc / backdrop click / swipe / popstate.
39
+ * Programmatic dismiss (sub.unsubscribe / dismissAll) always works. */
40
+ dismissable?: boolean;
41
+ /** Default `false`. Keep DOM between successive shows with the same
42
+ * content — reuse cached mount instead of reconstructing. */
43
+ persist?: boolean;
44
+ /** Standard web-platform cancellation input. Composes with fetch,
45
+ * addEventListener, getUserMedia, etc. When signal aborts, overlay
46
+ * dismisses (same as unsubscribe). */
47
+ signal?: AbortSignal;
48
+ /** Rare escape hatch. Defaults: `false` for anchored, `true` for
49
+ * centered/sheet. Setting `modal: true` on an anchored overlay forces
50
+ * <dialog>.showModal() semantics (focus trap + background inert) —
51
+ * use for destructive-confirm menus. */
52
+ modal?: boolean;
53
+ /** Default `'push'`. Same vocabulary as `area.push()`.
54
+ * - `'push'` — new history entry; back dismisses, forward re-opens.
55
+ * - `'replace'` — replace current entry; back skips the overlay.
56
+ * - `'silent'` — no history; for tooltips / transient / ephemeral UI. */
57
+ historyStrategy?: THistoryStrategy;
58
+ }
59
+ /**
60
+ * Resolved layout. Pure output of the dispatch engine; callers never pick.
61
+ * - `'centered'` — native <dialog>.showModal(), focus-trapped.
62
+ * - `'anchored'` — popover="auto" + CSS Anchor Positioning / Floating UI,
63
+ * non-modal, background stays interactive.
64
+ * - `'sheet'` — native <dialog>.showModal() as a bottom sheet,
65
+ * swipe-to-dismiss, safe-area aware.
66
+ */
67
+ export type OverlayLayout = 'centered' | 'anchored' | 'sheet';
68
+ /**
69
+ * Read-only snapshot of an active overlay. Emitted as part of the
70
+ * `openOverlays$` stream for stack introspection.
71
+ */
72
+ export interface OverlayEntry {
73
+ /** Internal id (auto-generated uuid). Exposed for debugging / devtools.
74
+ * Not a public identifier — callers use the Subscription for identity. */
75
+ readonly id: string;
76
+ /** The mounted `<schmancy-overlay>` element. Escape hatch for DOM access. */
77
+ readonly element: HTMLElement;
78
+ /** Current layout, chosen by the dispatch engine. */
79
+ readonly layout: OverlayLayout;
80
+ }
81
+ /**
82
+ * Reason the overlay closed. Emitted on the internal close-event `detail`
83
+ * for consumers who need to distinguish user-dismiss from programmatic
84
+ * dismiss from form submission.
85
+ */
86
+ export type CloseReason = 'structured' | 'native-submit' | 'escape' | 'backdrop' | 'swipe' | 'popstate' | 'light-dismiss' | 'programmatic' | 'abort';
87
+ /**
88
+ * Options for confirm() / danger() / ask() sugar.
89
+ */
90
+ export interface OverlayConfirmOptions {
91
+ title?: string;
92
+ subtitle?: string;
93
+ message?: string;
94
+ /** Default `'Confirm'`. */
95
+ confirmText?: string;
96
+ /** Default `'Cancel'`. */
97
+ cancelText?: string;
98
+ /** `'danger'` flips the confirm button to destructive styling and
99
+ * sets `role="alertdialog"`. */
100
+ variant?: 'default' | 'danger';
101
+ /** Anchor hint — same semantics as `show()`. */
102
+ anchor?: Anchor;
103
+ /** Standard cancellation input. */
104
+ signal?: AbortSignal;
105
+ }
106
+ /**
107
+ * Options for prompt() sugar.
108
+ */
109
+ export interface OverlayPromptOptions extends OverlayConfirmOptions {
110
+ label?: string;
111
+ defaultValue?: string;
112
+ placeholder?: string;
113
+ inputType?: 'text' | 'email' | 'number' | 'password' | 'url' | 'tel';
114
+ /** Optional HTML5 validation pattern applied to the input. */
115
+ pattern?: string;
116
+ required?: boolean;
117
+ }
118
+ /**
119
+ * Signature of the primary verb — declared here for consumption by the
120
+ * service and the skill docs. Cold Observable; subscription IS the lifecycle.
121
+ */
122
+ export type ShowFn = <T = void>(content: Content, options?: ShowOptions) => Observable<T | undefined>;