@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,200 @@
1
+ # Overlay — `show` / `<schmancy-overlay>`
2
+
3
+ > One overlay primitive. Anchored by default. Observable lifecycle. Replaces `sheet` + `$dialog`.
4
+
5
+ ## Import
6
+
7
+ ```ts
8
+ import {
9
+ show, confirm, prompt,
10
+ openOverlays$, overlayEvents,
11
+ dismissAll, lazy,
12
+ } from '@mhmo91/schmancy/overlay'
13
+ ```
14
+
15
+ ## The novel default — anchored
16
+
17
+ When you're triggering an overlay from a user gesture (click, touch), pass the event as `anchor`. The overlay blooms from the point of attention instead of materializing at the viewport center.
18
+
19
+ ```ts
20
+ private handlePick = (ev: MouseEvent) => {
21
+ show(TemplatePicker, { anchor: ev, props: { kind: 'email' } })
22
+ .pipe(takeUntil(this.disconnecting))
23
+ .subscribe(picked => { if (picked) this.template = picked })
24
+ }
25
+ ```
26
+
27
+ Centered is the fallback (no anchor given). Sheet is the responsive adaptation (narrow viewport / touch / oversized content). You never pick layout — the system does.
28
+
29
+ ## API
30
+
31
+ | Export | Signature | Purpose |
32
+ |---|---|---|
33
+ | `show<T>(content, opts?)` | `Observable<T \| undefined>` | Primary verb. Cold stream — subscribe to mount, unsubscribe to dismiss. |
34
+ | `confirm(opts)` | `Promise<boolean>` | Yes/no dialog. `variant: 'danger'` for destructive. |
35
+ | `prompt(opts)` | `Promise<string \| null>` | Single-line input. |
36
+ | `dismissAll()` | `void` | Close every open overlay (LIFO). |
37
+ | `openOverlays$` | `Observable<readonly OverlayEntry[]>` | Mechanical state — the current stack. |
38
+ | `overlayEvents<E>(tag, evt)` | `Observable<E>` | Third-party subscription to events from any overlay of `tag`. |
39
+ | `lazy(loader)` | `LazyComponent` | Re-exported from area for lazy-loaded content. |
40
+
41
+ ## Subscription IS the overlay lifecycle
42
+
43
+ Inside any `$LitElement`, pipe `takeUntil(this.disconnecting)`. When the caller unmounts, the overlay auto-dismisses — no handles to track, no leaks.
44
+
45
+ ```ts
46
+ show(MyForm, { props: { id }, anchor: ev })
47
+ .pipe(takeUntil(this.disconnecting))
48
+ .subscribe(saved => saved && this.store.persist(saved))
49
+ ```
50
+
51
+ Programmatic dismiss = unsubscribe. Either store the Subscription and call `.unsubscribe()`, or compose a terminator stream via `takeUntil(merge(this.disconnecting, saveTrigger$))`.
52
+
53
+ ## How content returns a result — three platform paths
54
+
55
+ Priority order:
56
+
57
+ 1. **CustomEvent('close', { detail })** — dispatched from content. `detail` becomes the Observable emission.
58
+ 2. **`<form method="dialog">`** — native submit. The dialog's `returnValue` is emitted.
59
+ 3. **User dismissal** — Esc / backdrop click / swipe / back-button / `.unsubscribe()` / `dismissAll()` emits `undefined`.
60
+
61
+ ```ts
62
+ // Inside a content component:
63
+ this.dispatchEvent(new CustomEvent('close', {
64
+ detail: savedRecord,
65
+ bubbles: true,
66
+ composed: true, // cross shadow-DOM
67
+ }))
68
+ ```
69
+
70
+ ```ts
71
+ // Inline template with native form — zero JS
72
+ show<string>(html`
73
+ <form method="dialog">
74
+ <button value="save">Save</button>
75
+ <button value="discard">Discard</button>
76
+ <button value="">Cancel</button>
77
+ </form>
78
+ `)
79
+ ```
80
+
81
+ ## Options
82
+
83
+ ```ts
84
+ interface ShowOptions {
85
+ props?: Record<string, unknown> // merged into component
86
+ anchor?: MouseEvent | HTMLElement | { x, y } // NOVEL DEFAULT
87
+ dismissable?: boolean // default true
88
+ persist?: boolean // reuse DOM on re-show
89
+ signal?: AbortSignal // standard cancellation
90
+ modal?: boolean // force focus trap; rare
91
+ historyStrategy?: 'push' | 'replace' | 'silent' // default 'push'
92
+ }
93
+ ```
94
+
95
+ ## History integration
96
+
97
+ Each `show()` pushes a history sentinel unless `historyStrategy: 'silent'`. Browser back dismisses the overlay instead of navigating the page. For forward-restore on routed callers, pair with `area.on(name)` — your overlay sits inside a route-observer's `switchMap`, so forward-navigation re-subscribes and re-opens the overlay naturally.
98
+
99
+ ```ts
100
+ area.on('root').pipe(
101
+ map(route => route.params?.editId),
102
+ distinctUntilChanged(),
103
+ switchMap(id => id ? show(TaskEditor, { props: { id } }) : EMPTY),
104
+ takeUntil(this.disconnecting),
105
+ ).subscribe()
106
+ ```
107
+
108
+ ## Layout dispatch — internal
109
+
110
+ Pure function of (anchor, content size, viewport):
111
+
112
+ - Narrow viewport (< 640px) or coarse-pointer → **sheet**
113
+ - Content > 80% viewport height or 90% width → **sheet**
114
+ - Anchor provided → **anchored**
115
+ - Fallback → **centered**
116
+
117
+ Callers never override. The `modal: true` escape hatch forces focus trap on an anchored overlay for the rare "menu-with-destructive-item" case.
118
+
119
+ ## Examples
120
+
121
+ ### 1. Confirm / prompt / danger
122
+
123
+ ```ts
124
+ if (await confirm({ title: 'Delete?', message: '...', variant: 'danger', anchor: ev })) {
125
+ await store.delete(id)
126
+ }
127
+ const name = await prompt({ label: 'Name', defaultValue: 'Untitled', anchor: ev })
128
+ ```
129
+
130
+ ### 2. Cancellable via AbortSignal
131
+
132
+ ```ts
133
+ const ac = new AbortController()
134
+ this.routeChange$.pipe(take(1)).subscribe(() => ac.abort())
135
+ show(LoadingOverlay, { signal: ac.signal })
136
+ .pipe(takeUntil(this.disconnecting))
137
+ .subscribe()
138
+ ```
139
+
140
+ ### 3. Observe events from any open overlay without owning it
141
+
142
+ ```ts
143
+ // A header progress bar reflects any upload overlay's progress.
144
+ overlayEvents<CustomEvent<{ pct: number }>>('image-upload', 'progress')
145
+ .pipe(map(e => e.detail.pct), takeUntil(this.disconnecting))
146
+ .subscribe(pct => this.progress = pct)
147
+ ```
148
+
149
+ ### 4. Stack-driven UI
150
+
151
+ ```ts
152
+ openOverlays$.pipe(
153
+ map(s => s.length > 1),
154
+ distinctUntilChanged(),
155
+ takeUntil(this.disconnecting),
156
+ ).subscribe(many => this.showCloseAllButton = many)
157
+ ```
158
+
159
+ ### 5. Lazy-loaded heavy overlay with error recovery
160
+
161
+ ```ts
162
+ show(lazy(() => import('./canvas-editor')))
163
+ .pipe(
164
+ catchError(err => { $notify.error('Load failed'); return EMPTY }),
165
+ takeUntil(this.disconnecting),
166
+ )
167
+ .subscribe()
168
+ ```
169
+
170
+ ### 6. Non-component caller (service / test)
171
+
172
+ ```ts
173
+ const saved = await firstValueFrom(
174
+ show<Record>(MyPicker).pipe(defaultIfEmpty(undefined))
175
+ )
176
+ ```
177
+
178
+ ## Migration cheatsheet — from `sheet` / `$dialog`
179
+
180
+ ```
181
+ sheet.push({ component, props }) → show(C, { props }).pipe(takeUntil(...)).subscribe()
182
+ sheet.push({ ..., position: 'side'|'bottom' }) → show(C, { props }) // engine decides
183
+ sheet.dismiss(uid) → sub.unsubscribe() | dismissAll()
184
+ sheet.isOpen(uid) → openOverlays$.pipe(map(s => s.some(...)))
185
+
186
+ $dialog.confirm(opts) → confirm(opts)
187
+ $dialog.ask(msg, ev) → confirm({ message: msg, anchor: ev })
188
+ $dialog.danger(opts) → confirm({ ...opts, variant: 'danger' })
189
+ $dialog.prompt(opts) → prompt(opts)
190
+ $dialog.component(tpl, { position: ev }) → show(tpl, { anchor: ev })
191
+ $dialog.dismiss() → dismissAll()
192
+ ```
193
+
194
+ ## Principles (why this shape)
195
+
196
+ - **rxjs SUBSCRIPTION_IS_STATE.** The overlay lifecycle is a subscription — setup on subscribe, teardown on unsubscribe. No imperative handles.
197
+ - **Fewer APIs, smarter system.** Caller declares intent (`show(X, { anchor })`); the system decides layout, focus trap, positioning, scroll lock, inert, back-button handling.
198
+ - **Native platform first.** `<dialog>` + `::backdrop` + `returnValue` carry the weight. `CustomEvent('close', { detail })` is the typed overlay on top.
199
+ - **Anchored is novel default.** Overlays bloom from the user's gesture instead of center-of-viewport.
200
+ - **Content identity is the key.** `overlayEvents` keys on tag name (stable across HMR). No uid strings in the public API.
@@ -0,0 +1,15 @@
1
+ export * from './overlay.component'
2
+ export * from './overlay.confirm-body'
3
+ export * from './overlay.service'
4
+ export type {
5
+ Anchor,
6
+ CloseReason,
7
+ Content,
8
+ OverlayConfirmOptions,
9
+ OverlayEntry,
10
+ OverlayLayout,
11
+ OverlayPromptOptions,
12
+ ShowFn,
13
+ ShowOptions,
14
+ } from './overlay.types'
15
+ export { lazy } from '../area/lazy'
@@ -0,0 +1,137 @@
1
+ import {
2
+ DURATION_BACKDROP,
3
+ DURATION_EXIT,
4
+ EASE_IN,
5
+ EASE_OUT,
6
+ prefersReducedMotion,
7
+ SPRING_GENTLE,
8
+ SPRING_SNAPPY,
9
+ } from '../utils/animation'
10
+ import type { OverlayLayout } from './overlay.types'
11
+
12
+ /**
13
+ * WAAPI keyframes + options per layout + direction.
14
+ *
15
+ * One animation vocabulary — no per-element bespoke keyframes. Aligns
16
+ * with the `animation` skill (spring physics presets). Honors
17
+ * `prefers-reduced-motion` by collapsing transforms to opacity-only.
18
+ *
19
+ * Returns `null` when reduced-motion is active and only opacity change
20
+ * is needed — the caller sets style directly.
21
+ */
22
+
23
+ /**
24
+ * Shape matches both DOM `AnimationEffectTiming` and
25
+ * `KeyframeAnimationOptions` so it passes structural checks in both
26
+ * older and newer `lib.dom.d.ts` vintages.
27
+ */
28
+ export interface AnimationSpec {
29
+ keyframes: Keyframe[]
30
+ options: {
31
+ duration: number
32
+ easing: string
33
+ fill?: FillMode
34
+ }
35
+ }
36
+
37
+ export function backdropAnimation(direction: 'in' | 'out'): AnimationSpec {
38
+ return direction === 'in'
39
+ ? {
40
+ keyframes: [{ opacity: 0 }, { opacity: 1 }],
41
+ options: { duration: DURATION_BACKDROP, easing: EASE_OUT, fill: 'forwards' },
42
+ }
43
+ : {
44
+ keyframes: [{ opacity: 1 }, { opacity: 0 }],
45
+ options: { duration: DURATION_BACKDROP, easing: EASE_OUT, fill: 'forwards' },
46
+ }
47
+ }
48
+
49
+ export function surfaceAnimation(layout: OverlayLayout, direction: 'in' | 'out'): AnimationSpec {
50
+ const reduced = prefersReducedMotion()
51
+
52
+ if (reduced) {
53
+ // Opacity-only; explicit reset to { opacity: 1, transform: none } on `in`
54
+ // so any leftover transform from a prior `out` doesn't persist.
55
+ return direction === 'in'
56
+ ? {
57
+ keyframes: [
58
+ { opacity: 0, transform: 'none' },
59
+ { opacity: 1, transform: 'none' },
60
+ ],
61
+ options: { duration: 1, easing: 'linear', fill: 'forwards' },
62
+ }
63
+ : {
64
+ keyframes: [
65
+ { opacity: 1, transform: 'none' },
66
+ { opacity: 0, transform: 'none' },
67
+ ],
68
+ options: { duration: 1, easing: 'linear', fill: 'forwards' },
69
+ }
70
+ }
71
+
72
+ switch (layout) {
73
+ case 'centered':
74
+ return direction === 'in'
75
+ ? {
76
+ keyframes: [
77
+ { opacity: 0, transform: 'scale(0.92) translateY(16px)' },
78
+ { opacity: 1, transform: 'scale(1) translateY(0)' },
79
+ ],
80
+ options: {
81
+ duration: SPRING_SNAPPY.duration,
82
+ easing: SPRING_SNAPPY.easingFallback,
83
+ fill: 'forwards',
84
+ },
85
+ }
86
+ : {
87
+ keyframes: [
88
+ { opacity: 1, transform: 'scale(1) translateY(0)' },
89
+ { opacity: 0, transform: 'scale(0.96) translateY(8px)' },
90
+ ],
91
+ options: { duration: DURATION_EXIT, easing: EASE_IN, fill: 'forwards' },
92
+ }
93
+
94
+ case 'sheet':
95
+ return direction === 'in'
96
+ ? {
97
+ keyframes: [
98
+ { opacity: 0, transform: 'translateY(100%)' },
99
+ { opacity: 1, transform: 'translateY(0)' },
100
+ ],
101
+ options: {
102
+ duration: SPRING_GENTLE.duration,
103
+ easing: SPRING_GENTLE.easingFallback,
104
+ fill: 'forwards',
105
+ },
106
+ }
107
+ : {
108
+ keyframes: [
109
+ { opacity: 1, transform: 'translateY(0)' },
110
+ { opacity: 0, transform: 'translateY(100%)' },
111
+ ],
112
+ options: {
113
+ duration: DURATION_EXIT,
114
+ easing: EASE_IN,
115
+ fill: 'forwards',
116
+ },
117
+ }
118
+
119
+ case 'anchored':
120
+ // No transform — CSS Anchor Positioning / Floating UI owns position.
121
+ // Scale-from-origin via transform-origin would be nicer but conflicts
122
+ // with popover top-layer + position. Keep opacity-only for safety.
123
+ return direction === 'in'
124
+ ? {
125
+ keyframes: [{ opacity: 0 }, { opacity: 1 }],
126
+ options: {
127
+ duration: SPRING_SNAPPY.duration,
128
+ easing: SPRING_SNAPPY.easingFallback,
129
+ fill: 'forwards',
130
+ },
131
+ }
132
+ : {
133
+ keyframes: [{ opacity: 1 }, { opacity: 0 }],
134
+ options: { duration: DURATION_EXIT, easing: EASE_IN, fill: 'forwards' },
135
+ }
136
+ }
137
+ }