@mhmo91/schmancy 0.9.28 → 0.10.1

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 (1042) hide show
  1. package/custom-elements.json +1010 -2240
  2. package/dist/active-host-0of-L858.cjs +1 -0
  3. package/dist/active-host-0of-L858.cjs.map +1 -0
  4. package/dist/active-host-D-a1X-nq.js +57 -0
  5. package/dist/active-host-D-a1X-nq.js.map +1 -0
  6. package/dist/agent/{flow-CvG1fLW5.js.map → flow-CaPi2G8y.js.map} +1 -1
  7. package/dist/agent/{rolldown-runtime-BIIoCavz.js → rolldown-runtime-DsMetpgY.js} +2 -9
  8. package/dist/agent/schmancy.agent.js +12652 -7787
  9. package/dist/agent/schmancy.agent.js.map +1 -1
  10. package/dist/agent/schmancy.manifest.json +265 -1453
  11. package/dist/agent/{vendor-highlight-Dow87ZL_.js → vendor-highlight-CHJZQQB7.js} +85 -90
  12. package/dist/agent/{vendor-highlight-Dow87ZL_.js.map → vendor-highlight-CHJZQQB7.js.map} +1 -1
  13. package/dist/agent/{vendor-jsqr-Bl4iAtKC.js → vendor-jsqr-r7GNh4P3.js} +1 -1
  14. package/dist/agent/{vendor-jsqr-Bl4iAtKC.js.map → vendor-jsqr-r7GNh4P3.js.map} +1 -1
  15. package/dist/agent/{vendor-material-color-DcL7ZPxx.js.map → vendor-material-color-Be96dpGE.js.map} +1 -1
  16. package/dist/{animation-hXFClrIn.js.map → animation-BK-8BwY8.js.map} +1 -1
  17. package/dist/{animation-CQRdLgzX.cjs.map → animation-CO_Csq84.cjs.map} +1 -1
  18. package/dist/{area-BGBCMC79.js → area-C_J4qxKO.js} +20 -15
  19. package/dist/area-C_J4qxKO.js.map +1 -0
  20. package/dist/area-ISC8Mdkh.cjs +12 -0
  21. package/dist/area-ISC8Mdkh.cjs.map +1 -0
  22. package/dist/area.cjs +1 -1
  23. package/dist/area.js +2 -2
  24. package/dist/{audio-Dvr-RBzE.cjs → audio-DZN8HsSS.cjs} +1 -1
  25. package/dist/{audio-Dvr-RBzE.cjs.map → audio-DZN8HsSS.cjs.map} +1 -1
  26. package/dist/{audio-ql6nvY0y.js → audio-Tmre4WyL.js} +1 -1
  27. package/dist/{audio-ql6nvY0y.js.map → audio-Tmre4WyL.js.map} +1 -1
  28. package/dist/audio.cjs +1 -1
  29. package/dist/audio.js +2 -2
  30. package/dist/autocomplete-BDF85W0J.cjs +115 -0
  31. package/dist/autocomplete-BDF85W0J.cjs.map +1 -0
  32. package/dist/{autocomplete-C2P0Soht.js → autocomplete-CM8VqW9S.js} +29 -26
  33. package/dist/autocomplete-CM8VqW9S.js.map +1 -0
  34. package/dist/autocomplete.cjs +1 -1
  35. package/dist/autocomplete.js +1 -1
  36. package/dist/avatar.cjs +7 -0
  37. package/dist/avatar.cjs.map +1 -0
  38. package/dist/avatar.js +87 -0
  39. package/dist/avatar.js.map +1 -0
  40. package/dist/badge.cjs +1 -1
  41. package/dist/badge.js +1 -1
  42. package/dist/boat-CpXe-Qto.cjs +80 -0
  43. package/dist/boat-CpXe-Qto.cjs.map +1 -0
  44. package/dist/{boat-DXZ0k7oa.js → boat-DxYNK4xT.js} +43 -54
  45. package/dist/boat-DxYNK4xT.js.map +1 -0
  46. package/dist/boat.cjs +1 -1
  47. package/dist/boat.js +1 -1
  48. package/dist/breadcrumb.cjs +4 -4
  49. package/dist/breadcrumb.cjs.map +1 -1
  50. package/dist/breadcrumb.js +16 -11
  51. package/dist/breadcrumb.js.map +1 -1
  52. package/dist/{busy-iRjq6Nvd.js → busy-CP-gRfAP.js} +14 -9
  53. package/dist/busy-CP-gRfAP.js.map +1 -0
  54. package/dist/{busy-DGYhpTnO.cjs → busy-Dma4gtnz.cjs} +4 -4
  55. package/dist/busy-Dma4gtnz.cjs.map +1 -0
  56. package/dist/busy.cjs +1 -1
  57. package/dist/busy.js +1 -1
  58. package/dist/button.cjs +24 -24
  59. package/dist/button.cjs.map +1 -1
  60. package/dist/button.js +42 -37
  61. package/dist/button.js.map +1 -1
  62. package/dist/{card-wUTjx0EC.js → card-Bv--HeGO.js} +41 -30
  63. package/dist/card-Bv--HeGO.js.map +1 -0
  64. package/dist/{card-DjYnCckw.cjs → card-ClroODSK.cjs} +6 -6
  65. package/dist/card-ClroODSK.cjs.map +1 -0
  66. package/dist/card.cjs +1 -1
  67. package/dist/card.js +1 -1
  68. package/dist/charts.cjs +5 -5
  69. package/dist/charts.cjs.map +1 -1
  70. package/dist/charts.js +21 -16
  71. package/dist/charts.js.map +1 -1
  72. package/dist/{checkbox-VBSenxgb.js → checkbox-1gQOOcja.js} +86 -82
  73. package/dist/checkbox-1gQOOcja.js.map +1 -0
  74. package/dist/checkbox-DvTZXN1Y.cjs +39 -0
  75. package/dist/checkbox-DvTZXN1Y.cjs.map +1 -0
  76. package/dist/checkbox.cjs +1 -1
  77. package/dist/checkbox.js +1 -1
  78. package/dist/{chips-D6ptH5re.cjs → chips-Bw7FNDpX.cjs} +19 -19
  79. package/dist/chips-Bw7FNDpX.cjs.map +1 -0
  80. package/dist/{chips-BDS9lkPa.js → chips-wkfKzf_e.js} +146 -136
  81. package/dist/chips-wkfKzf_e.js.map +1 -0
  82. package/dist/chips.cjs +1 -1
  83. package/dist/chips.js +2 -2
  84. package/dist/{code-highlight-BzRmBZzz.cjs → code-highlight-CJzuds4c.cjs} +15 -15
  85. package/dist/code-highlight-CJzuds4c.cjs.map +1 -0
  86. package/dist/{code-highlight-Bi91XHJN.js → code-highlight-CcdCFMrn.js} +37 -40
  87. package/dist/code-highlight-CcdCFMrn.js.map +1 -0
  88. package/dist/code-highlight.cjs +1 -1
  89. package/dist/code-highlight.js +1 -1
  90. package/dist/connectivity.cjs +2 -2
  91. package/dist/connectivity.cjs.map +1 -1
  92. package/dist/connectivity.js +10 -7
  93. package/dist/connectivity.js.map +1 -1
  94. package/dist/content-drawer.cjs +1 -1
  95. package/dist/content-drawer.js +2 -2
  96. package/dist/context-Bdu1xt0W.js +3 -0
  97. package/dist/{context-BerzpUhI.js.map → context-Bdu1xt0W.js.map} +1 -1
  98. package/dist/context-daN5G6HS.cjs +1 -0
  99. package/dist/{context-C6dHUHhi.cjs.map → context-daN5G6HS.cjs.map} +1 -1
  100. package/dist/{cursor-glow-BydlDInj.js → cursor-glow-Ah7VXSj7.js} +1 -1
  101. package/dist/{cursor-glow-BydlDInj.js.map → cursor-glow-Ah7VXSj7.js.map} +1 -1
  102. package/dist/{cursor-glow-Duw9jHmh.cjs → cursor-glow-Bulq-38P.cjs} +1 -1
  103. package/dist/{cursor-glow-Duw9jHmh.cjs.map → cursor-glow-Bulq-38P.cjs.map} +1 -1
  104. package/dist/{date-range-ClTMg1AB.js → date-range-BDHz_Olm.js} +16 -17
  105. package/dist/date-range-BDHz_Olm.js.map +1 -0
  106. package/dist/date-range-BsPW60vp.cjs +131 -0
  107. package/dist/date-range-BsPW60vp.cjs.map +1 -0
  108. package/dist/{date-range-inline-CpKG6qt2.js → date-range-inline-1NmZE_Xr.js} +5 -5
  109. package/dist/{date-range-inline-CpKG6qt2.js.map → date-range-inline-1NmZE_Xr.js.map} +1 -1
  110. package/dist/date-range-inline-BsjNNGFR.cjs +43 -0
  111. package/dist/{date-range-inline-B9Dp2z6C.cjs.map → date-range-inline-BsjNNGFR.cjs.map} +1 -1
  112. package/dist/date-range-inline.cjs +1 -1
  113. package/dist/date-range-inline.js +1 -1
  114. package/dist/date-range.cjs +1 -1
  115. package/dist/date-range.js +1 -1
  116. package/dist/delay.cjs +9 -1
  117. package/dist/delay.cjs.map +1 -0
  118. package/dist/delay.js +77 -2
  119. package/dist/delay.js.map +1 -0
  120. package/dist/{details-CPjlqQD4.js → details-BEp2s2ca.js} +19 -18
  121. package/dist/details-BEp2s2ca.js.map +1 -0
  122. package/dist/{details-Cz9ok9si.cjs → details-BtUNqzn8.cjs} +9 -9
  123. package/dist/details-BtUNqzn8.cjs.map +1 -0
  124. package/dist/details.cjs +1 -1
  125. package/dist/details.js +1 -1
  126. package/dist/{dialog-service-DH-tjPuE.js → dialog-service-DI9PPy4H.js} +2 -2
  127. package/dist/dialog-service-DI9PPy4H.js.map +1 -0
  128. package/dist/{dialog-service-CzDO08Gy.cjs → dialog-service-DJd5L0f5.cjs} +1 -1
  129. package/dist/dialog-service-DJd5L0f5.cjs.map +1 -0
  130. package/dist/dialog.cjs +2 -2
  131. package/dist/dialog.cjs.map +1 -1
  132. package/dist/dialog.js +13 -14
  133. package/dist/dialog.js.map +1 -1
  134. package/dist/directives.cjs +2 -11
  135. package/dist/directives.cjs.map +1 -1
  136. package/dist/directives.js +141 -227
  137. package/dist/directives.js.map +1 -1
  138. package/dist/discovery.cjs +1 -1
  139. package/dist/discovery.cjs.map +1 -1
  140. package/dist/discovery.js +1 -1
  141. package/dist/discovery.js.map +1 -1
  142. package/dist/{divider-CILo3_vi.cjs → divider-CpNT11Iy.cjs} +3 -3
  143. package/dist/divider-CpNT11Iy.cjs.map +1 -0
  144. package/dist/{divider-ghgyw5CU.js → divider-VxpjZ8hk.js} +11 -9
  145. package/dist/divider-VxpjZ8hk.js.map +1 -0
  146. package/dist/divider.cjs +1 -1
  147. package/dist/divider.js +1 -1
  148. package/dist/dropdown.cjs +4 -4
  149. package/dist/dropdown.cjs.map +1 -1
  150. package/dist/dropdown.js +29 -28
  151. package/dist/dropdown.js.map +1 -1
  152. package/dist/expand-05azMpho.cjs +141 -0
  153. package/dist/expand-05azMpho.cjs.map +1 -0
  154. package/dist/{expand-CbjBr_Ds.js → expand-CRUl3-mN.js} +24 -20
  155. package/dist/expand-CRUl3-mN.js.map +1 -0
  156. package/dist/expand.cjs +1 -1
  157. package/dist/expand.js +1 -1
  158. package/dist/{extra-BZeZOMBI.cjs → extra-CyERULfm.cjs} +6 -6
  159. package/dist/extra-CyERULfm.cjs.map +1 -0
  160. package/dist/{extra-DK9MQtPJ.js → extra-aNV1fO6W.js} +19 -14
  161. package/dist/extra-aNV1fO6W.js.map +1 -0
  162. package/dist/extra.cjs +1 -1
  163. package/dist/extra.js +1 -1
  164. package/dist/float-DRET9mVZ.cjs +1 -0
  165. package/dist/{float-CuZ8LOgB.cjs.map → float-DRET9mVZ.cjs.map} +1 -1
  166. package/dist/{float-BfCvGeY9.js → float-N3qhNET_.js} +2 -2
  167. package/dist/{float-BfCvGeY9.js.map → float-N3qhNET_.js.map} +1 -1
  168. package/dist/float.cjs +1 -1
  169. package/dist/float.js +1 -1
  170. package/dist/{form-rCZqoAoK.js → form-BtwOBMZ9.js} +1 -1
  171. package/dist/form-BtwOBMZ9.js.map +1 -0
  172. package/dist/{form-wI58M85H.cjs → form-CSJp687X.cjs} +1 -1
  173. package/dist/form-CSJp687X.cjs.map +1 -0
  174. package/dist/form.cjs +1 -1
  175. package/dist/form.js +1 -1
  176. package/dist/handover/agent-runtime-followups.md +1 -1
  177. package/dist/handover/agent-runtime-v1.md +3 -3
  178. package/dist/handover/claude-design-brief.md +19 -54
  179. package/dist/handover/claude-design-setup.md +57 -0
  180. package/dist/{hashContent-B2IntJQf.js.map → hashContent-1ARKIsx9.js.map} +1 -1
  181. package/dist/{hashContent-CahnEuut.cjs.map → hashContent-Bp5S6T4U.cjs.map} +1 -1
  182. package/dist/{icons-Drq4kKy2.js → icons-BBJqwT_B.js} +27 -24
  183. package/dist/icons-BBJqwT_B.js.map +1 -0
  184. package/dist/icons-CNixJ6kL.cjs +52 -0
  185. package/dist/icons-CNixJ6kL.cjs.map +1 -0
  186. package/dist/icons.cjs +1 -1
  187. package/dist/icons.js +1 -1
  188. package/dist/{iframe-BmyHW8km.js → iframe-DoN_toqE.js} +17 -11
  189. package/dist/iframe-DoN_toqE.js.map +1 -0
  190. package/dist/iframe-g-4DjAD7.cjs +24 -0
  191. package/dist/iframe-g-4DjAD7.cjs.map +1 -0
  192. package/dist/iframe.cjs +1 -1
  193. package/dist/iframe.js +1 -1
  194. package/dist/index.cjs +1 -1
  195. package/dist/index.js +77 -77
  196. package/dist/{input-Bc3bVISm.js → input-ClnkMJgh.js} +30 -30
  197. package/dist/input-ClnkMJgh.js.map +1 -0
  198. package/dist/{input-BGNZlfL8.cjs → input-CwFslLcF.cjs} +14 -14
  199. package/dist/input-CwFslLcF.cjs.map +1 -0
  200. package/dist/{input-chip-DN-cwf11.cjs → input-chip-DMXRT7bK.cjs} +2 -2
  201. package/dist/input-chip-DMXRT7bK.cjs.map +1 -0
  202. package/dist/{input-chip-BQrjpjaQ.js → input-chip-DwSyFv1x.js} +7 -4
  203. package/dist/input-chip-DwSyFv1x.js.map +1 -0
  204. package/dist/input.cjs +1 -1
  205. package/dist/input.js +1 -1
  206. package/dist/json.cjs +1 -1
  207. package/dist/json.cjs.map +1 -1
  208. package/dist/json.js +7 -5
  209. package/dist/json.js.map +1 -1
  210. package/dist/kbd.cjs +2 -2
  211. package/dist/kbd.cjs.map +1 -1
  212. package/dist/kbd.js +9 -7
  213. package/dist/kbd.js.map +1 -1
  214. package/dist/{layout-fjM1DWlF.js → layout-BghHmee6.js} +1 -1
  215. package/dist/{layout-fjM1DWlF.js.map → layout-BghHmee6.js.map} +1 -1
  216. package/dist/{layout-CTfRXQoz.cjs → layout-VmxXuGGp.cjs} +1 -1
  217. package/dist/{layout-CTfRXQoz.cjs.map → layout-VmxXuGGp.cjs.map} +1 -1
  218. package/dist/layout.cjs +1 -1
  219. package/dist/layout.js +2 -3
  220. package/dist/{lazy-D6R5N5v4.js.map → lazy-B0ia54tT.js.map} +1 -1
  221. package/dist/{lazy-BDNnH_r7.cjs.map → lazy-Dq9mRRjT.cjs.map} +1 -1
  222. package/dist/{lightbox-CY52Z_ig.js → lightbox-IleIcq19.js} +13 -12
  223. package/dist/lightbox-IleIcq19.js.map +1 -0
  224. package/dist/lightbox-m5FLmYlv.cjs +202 -0
  225. package/dist/lightbox-m5FLmYlv.cjs.map +1 -0
  226. package/dist/lightbox.cjs +1 -1
  227. package/dist/lightbox.js +1 -1
  228. package/dist/{list-D7wUxu1C.js → list-BlXJlm16.js} +26 -21
  229. package/dist/list-BlXJlm16.js.map +1 -0
  230. package/dist/list-C-b9p1yi.cjs +40 -0
  231. package/dist/list-C-b9p1yi.cjs.map +1 -0
  232. package/dist/list.cjs +1 -1
  233. package/dist/list.js +1 -1
  234. package/dist/{magnetic-CVXEkYTA.cjs → magnetic-BH0TsofV.cjs} +1 -1
  235. package/dist/{magnetic-CVXEkYTA.cjs.map → magnetic-BH0TsofV.cjs.map} +1 -1
  236. package/dist/{magnetic-BhXebqF3.js → magnetic-BZGFxAWG.js} +2 -2
  237. package/dist/{magnetic-BhXebqF3.js.map → magnetic-BZGFxAWG.js.map} +1 -1
  238. package/dist/{mailbox-DLiBGJhY.cjs → mailbox-B0hZLpF1.cjs} +64 -66
  239. package/dist/mailbox-B0hZLpF1.cjs.map +1 -0
  240. package/dist/{mailbox--EN-JhjV.js → mailbox-DAmejcKa.js} +137 -126
  241. package/dist/mailbox-DAmejcKa.js.map +1 -0
  242. package/dist/mailbox.cjs +1 -1
  243. package/dist/mailbox.js +1 -1
  244. package/dist/{map-B0S_q3ma.js → map-BoIu47qU.js} +11 -9
  245. package/dist/map-BoIu47qU.js.map +1 -0
  246. package/dist/map-CZ0816EI.cjs +80 -0
  247. package/dist/map-CZ0816EI.cjs.map +1 -0
  248. package/dist/map.cjs +1 -1
  249. package/dist/map.js +1 -1
  250. package/dist/{menu-3edZGQ1x.cjs → menu-BFHBnp5M.cjs} +5 -5
  251. package/dist/menu-BFHBnp5M.cjs.map +1 -0
  252. package/dist/{menu-COeFpb6n.js → menu-BV9_8ys8.js} +15 -10
  253. package/dist/menu-BV9_8ys8.js.map +1 -0
  254. package/dist/menu.cjs +1 -1
  255. package/dist/menu.js +1 -1
  256. package/dist/mixins-BIXF7xkF.cjs +298 -0
  257. package/dist/mixins-BIXF7xkF.cjs.map +1 -0
  258. package/dist/mixins-CL1krSOE.js +627 -0
  259. package/dist/mixins-CL1krSOE.js.map +1 -0
  260. package/dist/mixins.cjs +1 -1
  261. package/dist/mixins.js +2 -87
  262. package/dist/nav-drawer.cjs +1 -1
  263. package/dist/nav-drawer.js +2 -2
  264. package/dist/navigation-bar.cjs +1 -1
  265. package/dist/navigation-bar.js +1 -1
  266. package/dist/navigation-rail.cjs +3 -3
  267. package/dist/navigation-rail.cjs.map +1 -1
  268. package/dist/navigation-rail.js +15 -16
  269. package/dist/navigation-rail.js.map +1 -1
  270. package/dist/notification-CigTy3ia.cjs +23 -0
  271. package/dist/notification-CigTy3ia.cjs.map +1 -0
  272. package/dist/{notification-CC-TFN5v.js → notification-Dzm6zWxX.js} +40 -38
  273. package/dist/notification-Dzm6zWxX.js.map +1 -0
  274. package/dist/notification.cjs +1 -1
  275. package/dist/notification.js +1 -1
  276. package/dist/option-BfvzzkzM.cjs +43 -0
  277. package/dist/option-BfvzzkzM.cjs.map +1 -0
  278. package/dist/{option-BwAF4nAw.js → option-Dyb0Q45u.js} +9 -7
  279. package/dist/option-Dyb0Q45u.js.map +1 -0
  280. package/dist/option.cjs +1 -1
  281. package/dist/option.js +1 -1
  282. package/dist/{overlay-stack-7bs4ZNnh.cjs → overlay-stack-BprhAE9a.cjs} +1 -1
  283. package/dist/{overlay-stack-7bs4ZNnh.cjs.map → overlay-stack-BprhAE9a.cjs.map} +1 -1
  284. package/dist/{overlay-stack-DXPYHPhk.js → overlay-stack-CAQno0CK.js} +1 -1
  285. package/dist/{overlay-stack-DXPYHPhk.js.map → overlay-stack-CAQno0CK.js.map} +1 -1
  286. package/dist/overlay.cjs +43 -45
  287. package/dist/overlay.cjs.map +1 -1
  288. package/dist/overlay.js +684 -268
  289. package/dist/overlay.js.map +1 -1
  290. package/dist/page.cjs +3 -3
  291. package/dist/page.cjs.map +1 -1
  292. package/dist/page.js +15 -13
  293. package/dist/page.js.map +1 -1
  294. package/dist/payment-card-form-CQ6sLlrh.cjs +73 -0
  295. package/dist/{components-DkmEgyAc.cjs.map → payment-card-form-CQ6sLlrh.cjs.map} +1 -1
  296. package/dist/{components-DZgJWHdZ.js → payment-card-form-D9N2Q0wM.js} +21 -22
  297. package/dist/{components-DZgJWHdZ.js.map → payment-card-form-D9N2Q0wM.js.map} +1 -1
  298. package/dist/payment-card-form.cjs +1 -0
  299. package/dist/payment-card-form.js +2 -0
  300. package/dist/{progress-Yz6EMNSu.cjs → progress-Dyri7dc2.cjs} +3 -3
  301. package/dist/progress-Dyri7dc2.cjs.map +1 -0
  302. package/dist/{progress-Bk_Q1Shy.js → progress-LPwPfzBi.js} +16 -13
  303. package/dist/progress-LPwPfzBi.js.map +1 -0
  304. package/dist/progress.cjs +1 -1
  305. package/dist/progress.js +1 -1
  306. package/dist/qr-scanner.cjs +5 -5
  307. package/dist/qr-scanner.cjs.map +1 -1
  308. package/dist/qr-scanner.js +14 -15
  309. package/dist/qr-scanner.js.map +1 -1
  310. package/dist/radio-group-DK-T6jGy.cjs +40 -0
  311. package/dist/radio-group-DK-T6jGy.cjs.map +1 -0
  312. package/dist/{radio-group-BcdcjLNC.js → radio-group-DqP886F-.js} +14 -12
  313. package/dist/radio-group-DqP886F-.js.map +1 -0
  314. package/dist/radio-group.cjs +1 -1
  315. package/dist/radio-group.js +1 -1
  316. package/dist/range.cjs +2 -2
  317. package/dist/range.cjs.map +1 -1
  318. package/dist/range.js +9 -7
  319. package/dist/range.js.map +1 -1
  320. package/dist/{reduced-motion-BZTLqAyl.js.map → reduced-motion-D-L12p7G.js.map} +1 -1
  321. package/dist/{reduced-motion-9RjNnhIg.cjs.map → reduced-motion-Ds-HjMzn.cjs.map} +1 -1
  322. package/dist/{rxjs-utils-DJbZRjp3.cjs.map → rxjs-utils-Csnks202.cjs.map} +1 -1
  323. package/dist/{rxjs-utils-CKTnEKUH.js.map → rxjs-utils-d-ivVN84.js.map} +1 -1
  324. package/dist/rxjs-utils.cjs +1 -1
  325. package/dist/rxjs-utils.js +1 -1
  326. package/dist/{scroll-DXQv0ejL.js → scroll-BD82ANjm.js} +9 -7
  327. package/dist/scroll-BD82ANjm.js.map +1 -0
  328. package/dist/scroll-yfNU0zNO.cjs +26 -0
  329. package/dist/scroll-yfNU0zNO.cjs.map +1 -0
  330. package/dist/search-BLCRsxIC.cjs +1 -0
  331. package/dist/{search-CwMav5QB.cjs.map → search-BLCRsxIC.cjs.map} +1 -1
  332. package/dist/{search-CvUZRLF1.js → search-BTz7-Rev.js} +1 -1
  333. package/dist/{search-CvUZRLF1.js.map → search-BTz7-Rev.js.map} +1 -1
  334. package/dist/{select-BV4lK2zy.cjs → select-BR3r3SZe.cjs} +6 -6
  335. package/dist/select-BR3r3SZe.cjs.map +1 -0
  336. package/dist/{select-DKyGWDsG.js → select-GONAphZI.js} +23 -20
  337. package/dist/select-GONAphZI.js.map +1 -0
  338. package/dist/select.cjs +1 -1
  339. package/dist/select.js +1 -1
  340. package/dist/{sheet-C3TLKItO.js → sheet-C4sAGqTf.js} +22 -20
  341. package/dist/sheet-C4sAGqTf.js.map +1 -0
  342. package/dist/sheet-D9pZMrzs.cjs +35 -0
  343. package/dist/sheet-D9pZMrzs.cjs.map +1 -0
  344. package/dist/sheet.cjs +1 -1
  345. package/dist/sheet.js +2 -2
  346. package/dist/{sheet.service-Dlv20Zfc.js → sheet.service-B7h_-e-q.js} +3 -3
  347. package/dist/{sheet.service-Dlv20Zfc.js.map → sheet.service-B7h_-e-q.js.map} +1 -1
  348. package/dist/sheet.service-C1J0-i4d.cjs +1 -0
  349. package/dist/{sheet.service-RcDBwHmv.cjs.map → sheet.service-C1J0-i4d.cjs.map} +1 -1
  350. package/dist/skeleton.cjs +2 -2
  351. package/dist/skeleton.cjs.map +1 -1
  352. package/dist/skeleton.js +9 -7
  353. package/dist/skeleton.js.map +1 -1
  354. package/dist/skills/INDEX.md +1 -1
  355. package/dist/skills/SKILL.md +17 -5
  356. package/dist/skills/mixins.md +78 -20
  357. package/dist/skills/schmancy/INDEX.md +1 -1
  358. package/dist/skills/schmancy/SKILL.md +17 -5
  359. package/dist/skills/schmancy/mixins.md +78 -20
  360. package/dist/skills/schmancy/state.md +501 -0
  361. package/dist/skills/schmancy/theme.md +15 -0
  362. package/dist/skills/schmancy/timeline-tile.md +95 -0
  363. package/dist/skills/state.md +501 -0
  364. package/dist/skills/theme.md +15 -0
  365. package/dist/skills/timeline-tile.md +95 -0
  366. package/dist/slider.cjs +5 -5
  367. package/dist/slider.cjs.map +1 -1
  368. package/dist/slider.js +18 -13
  369. package/dist/slider.js.map +1 -1
  370. package/dist/{sound.service-DWZe6swU.js → sound.service-Ba_HNBLD.js} +3 -3
  371. package/dist/sound.service-Ba_HNBLD.js.map +1 -0
  372. package/dist/sound.service-CvdB2yUJ.cjs +1 -0
  373. package/dist/sound.service-CvdB2yUJ.cjs.map +1 -0
  374. package/dist/{splash-screen-DbI5RgBf.js → splash-screen-BGMZmQRT.js} +12 -9
  375. package/dist/splash-screen-BGMZmQRT.js.map +1 -0
  376. package/dist/splash-screen-DqULOTZ0.cjs +41 -0
  377. package/dist/splash-screen-DqULOTZ0.cjs.map +1 -0
  378. package/dist/splash-screen.cjs +1 -1
  379. package/dist/splash-screen.js +1 -1
  380. package/dist/{src-00DfxCJq.js → src-CHM4hrEr.js} +299 -351
  381. package/dist/src-CHM4hrEr.js.map +1 -0
  382. package/dist/src-DzFcGdcn.cjs +263 -0
  383. package/dist/src-DzFcGdcn.cjs.map +1 -0
  384. package/dist/state-BAW3C11I.cjs +1 -0
  385. package/dist/state-BAW3C11I.cjs.map +1 -0
  386. package/dist/state-ClRXrqDA.js +846 -0
  387. package/dist/state-ClRXrqDA.js.map +1 -0
  388. package/dist/state.cjs +1 -0
  389. package/dist/state.js +3 -0
  390. package/dist/steps.cjs +10 -10
  391. package/dist/steps.cjs.map +1 -1
  392. package/dist/steps.js +29 -24
  393. package/dist/steps.js.map +1 -1
  394. package/dist/surface-BHJgIDz9.js +24 -0
  395. package/dist/surface-BHJgIDz9.js.map +1 -0
  396. package/dist/surface-DW78bc8W.cjs +7 -0
  397. package/dist/surface-DW78bc8W.cjs.map +1 -0
  398. package/dist/surface.cjs +1 -1
  399. package/dist/surface.js +1 -1
  400. package/dist/switch.cjs +2 -2
  401. package/dist/switch.cjs.map +1 -1
  402. package/dist/switch.js +7 -5
  403. package/dist/switch.js.map +1 -1
  404. package/dist/table.cjs +72 -1
  405. package/dist/table.cjs.map +1 -0
  406. package/dist/table.js +174 -2
  407. package/dist/table.js.map +1 -0
  408. package/dist/{tabs-Ce55RbwF.js → tabs-BCRVyQU1.js} +22 -22
  409. package/dist/tabs-BCRVyQU1.js.map +1 -0
  410. package/dist/tabs-EIEhkEUb.cjs +31 -0
  411. package/dist/tabs-EIEhkEUb.cjs.map +1 -0
  412. package/dist/tabs.cjs +1 -1
  413. package/dist/tabs.js +1 -1
  414. package/dist/teleport.cjs +1 -1
  415. package/dist/teleport.js +2 -2
  416. package/dist/{textarea-DjN1D9u0.js → textarea-DApOhSAL.js} +30 -28
  417. package/dist/textarea-DApOhSAL.js.map +1 -0
  418. package/dist/textarea-zxNlRLVm.cjs +39 -0
  419. package/dist/textarea-zxNlRLVm.cjs.map +1 -0
  420. package/dist/textarea.cjs +1 -1
  421. package/dist/textarea.js +1 -1
  422. package/dist/{theme-pbxlt72h.js → theme-BCUjQH6-.js} +45 -41
  423. package/dist/{theme-pbxlt72h.js.map → theme-BCUjQH6-.js.map} +1 -1
  424. package/dist/theme-Z43TLE61.cjs +181 -0
  425. package/dist/{theme-B-IJ2r7Q.cjs.map → theme-Z43TLE61.cjs.map} +1 -1
  426. package/dist/theme-button-Czsdp3o1.cjs +8 -0
  427. package/dist/theme-button-Czsdp3o1.cjs.map +1 -0
  428. package/dist/{theme-button-CEMeAUOL.js → theme-button-DdSbcivT.js} +3 -4
  429. package/dist/theme-button-DdSbcivT.js.map +1 -0
  430. package/dist/theme-button.cjs +1 -1
  431. package/dist/theme-button.js +1 -1
  432. package/dist/theme.cjs +1 -1
  433. package/dist/{theme.events-NuihzD_p.js.map → theme.events-Cv7N4Toe.js.map} +1 -1
  434. package/dist/{theme.events-DakXxZeP.cjs.map → theme.events-DM4H5F2d.cjs.map} +1 -1
  435. package/dist/{theme.interface-DTwkuAKJ.cjs.map → theme.interface-D9l33b-M.cjs.map} +1 -1
  436. package/dist/{theme.interface-Buged9Cg.js.map → theme.interface-DnVNre4O.js.map} +1 -1
  437. package/dist/theme.js +5 -5
  438. package/dist/{theme.service-cOfPrtfe.js → theme.service-9clsqyee.js} +4 -4
  439. package/dist/theme.service-9clsqyee.js.map +1 -0
  440. package/dist/theme.service-CP71ojp6.cjs +1 -0
  441. package/dist/theme.service-CP71ojp6.cjs.map +1 -0
  442. package/dist/timeline.cjs +277 -0
  443. package/dist/timeline.cjs.map +1 -0
  444. package/dist/timeline.js +326 -0
  445. package/dist/timeline.js.map +1 -0
  446. package/dist/tree.cjs +2 -2
  447. package/dist/tree.cjs.map +1 -1
  448. package/dist/tree.js +15 -13
  449. package/dist/tree.js.map +1 -1
  450. package/dist/typewriter.cjs +10 -123
  451. package/dist/typewriter.cjs.map +1 -1
  452. package/dist/typewriter.js +90 -212
  453. package/dist/typewriter.js.map +1 -1
  454. package/dist/typography.cjs +3 -3
  455. package/dist/typography.cjs.map +1 -1
  456. package/dist/typography.js +18 -112
  457. package/dist/typography.js.map +1 -1
  458. package/dist/utils-Cr-YO4Np.cjs +1 -0
  459. package/dist/utils-Cr-YO4Np.cjs.map +1 -0
  460. package/dist/{utils-Bp2jhyZc.js → utils-hp-DnFf5.js} +16 -6
  461. package/dist/utils-hp-DnFf5.js.map +1 -0
  462. package/dist/utils.cjs +1 -1
  463. package/dist/utils.js +4 -5
  464. package/dist/visually-hidden.cjs +2 -2
  465. package/dist/visually-hidden.cjs.map +1 -1
  466. package/dist/visually-hidden.js +7 -5
  467. package/dist/visually-hidden.js.map +1 -1
  468. package/dist/window-DTgKAQgz.cjs +59 -0
  469. package/dist/window-DTgKAQgz.cjs.map +1 -0
  470. package/dist/{window-CrjZdf7Y.js → window-moDKyGLZ.js} +28 -30
  471. package/dist/window-moDKyGLZ.js.map +1 -0
  472. package/dist/window.cjs +1 -1
  473. package/dist/window.js +1 -1
  474. package/package.json +14 -2
  475. package/plugins/vite-plugin-schmancy-auto-import.ts +143 -0
  476. package/plugins/vite-plugin-schmancy-manifest.ts +438 -0
  477. package/skills/schmancy/INDEX.md +1 -1
  478. package/skills/schmancy/SKILL.md +17 -5
  479. package/skills/schmancy/mixins.md +78 -20
  480. package/skills/schmancy/state.md +501 -0
  481. package/skills/schmancy/theme.md +15 -0
  482. package/skills/schmancy/timeline-tile.md +95 -0
  483. package/src/agent/agent-bundle.test.ts +71 -54
  484. package/src/agent/agent-entry.ts +5 -21
  485. package/src/agent/helpers.ts +161 -0
  486. package/src/agent/index.ts +1 -0
  487. package/src/agent/schmancy-skill.ts +71 -0
  488. package/src/agent/virtual-manifest.d.ts +1 -12
  489. package/src/area/area.component.ts +7 -19
  490. package/src/area/area.service.test.ts +4 -5
  491. package/src/area/area.service.ts +4 -3
  492. package/src/area/route.component.ts +17 -4
  493. package/src/area/utils.ts +3 -2
  494. package/src/audio/sound.service.ts +7 -11
  495. package/src/autocomplete/autocomplete.ts +18 -21
  496. package/src/{avatar.ts → avatar/avatar.ts} +2 -2
  497. package/src/avatar/index.ts +1 -0
  498. package/src/badge/badge.ts +4 -3
  499. package/src/boat/boat.ts +28 -36
  500. package/src/breadcrumb/breadcrumb.ts +11 -19
  501. package/src/busy/busy.ts +4 -3
  502. package/src/busy/spinner.ts +4 -3
  503. package/src/button/button.ts +6 -11
  504. package/src/button/icon-button.ts +8 -12
  505. package/src/card/actions.ts +4 -12
  506. package/src/card/card.ts +5 -23
  507. package/src/card/content.ts +4 -12
  508. package/src/card/media.ts +4 -9
  509. package/src/charts/area-chart.ts +7 -4
  510. package/src/charts/pills.ts +6 -4
  511. package/src/checkbox/checkbox.test.ts +2 -2
  512. package/src/checkbox/checkbox.ts +3 -9
  513. package/src/chips/assist-chip.ts +6 -14
  514. package/src/chips/chips.ts +7 -21
  515. package/src/chips/filter-chip.ts +4 -3
  516. package/src/chips/input-chip.ts +10 -9
  517. package/src/chips/suggestion-chip.ts +10 -12
  518. package/src/code-highlight/code-highlight.ts +28 -59
  519. package/src/code-highlight/code-preview.ts +11 -9
  520. package/src/connectivity/connectivity-status.ts +4 -3
  521. package/src/content-drawer/drawer.ts +5 -3
  522. package/src/content-drawer/main.ts +5 -3
  523. package/src/content-drawer/sheet.ts +6 -4
  524. package/src/date-range/date-range-dialog.ts +2 -2
  525. package/src/date-range/date-range.ts +3 -2
  526. package/src/delay/delay.ts +2 -2
  527. package/src/details/details.ts +4 -17
  528. package/src/dialog/dialog-service.ts +2 -0
  529. package/src/dialog/dialog.component.ts +9 -9
  530. package/src/directives/drag.ts +1 -9
  531. package/src/directives/index.ts +0 -1
  532. package/src/discovery/discovery.service.ts +1 -1
  533. package/src/divider/divider.ts +5 -14
  534. package/src/dropdown/dropdown-component.ts +5 -16
  535. package/src/dropdown/dropdown-content.ts +7 -14
  536. package/src/expand/expand-root.component.ts +5 -15
  537. package/src/expand/expand.component.ts +4 -17
  538. package/src/extra/countries/countries.ts +5 -13
  539. package/src/extra/timezone/timezone.ts +7 -12
  540. package/src/form/form.test.ts +2 -2
  541. package/src/form/form.ts +2 -9
  542. package/src/icons/icon.ts +4 -3
  543. package/src/iframe/iframe.ts +13 -4
  544. package/src/index.ts +3 -3
  545. package/src/input/input.ts +4 -11
  546. package/src/json/json.ts +4 -3
  547. package/src/kbd/kbd.ts +4 -3
  548. package/src/layout/index.ts +1 -5
  549. package/src/layout/scroll/scroll.ts +5 -8
  550. package/src/lightbox/flip-directive.ts +1 -1
  551. package/src/lightbox/lightbox.ts +5 -14
  552. package/src/list/list-item.ts +4 -13
  553. package/src/list/list.ts +12 -10
  554. package/src/mailbox/email-editor.ts +17 -11
  555. package/src/mailbox/email-layout-selector.ts +2 -2
  556. package/src/mailbox/email-recipients.ts +13 -8
  557. package/src/mailbox/email-template-picker.ts +6 -5
  558. package/src/mailbox/email-viewer.ts +5 -3
  559. package/src/mailbox/mailbox.ts +6 -5
  560. package/src/map/map.ts +8 -6
  561. package/src/menu/menu-item.ts +5 -16
  562. package/src/menu/menu.ts +27 -13
  563. package/src/nav-drawer/appbar.ts +4 -14
  564. package/src/nav-drawer/content.ts +5 -14
  565. package/src/nav-drawer/drawer.ts +5 -18
  566. package/src/nav-drawer/navbar.ts +3 -17
  567. package/src/navigation-bar/navigation-bar-item.ts +8 -6
  568. package/src/navigation-bar/navigation-bar.ts +19 -19
  569. package/src/navigation-rail/navigation-rail-item.ts +9 -5
  570. package/src/navigation-rail/navigation-rail.ts +10 -14
  571. package/src/notification/notification.ts +6 -3
  572. package/src/option/option.ts +4 -3
  573. package/src/overlay/overlay.animations.ts +196 -25
  574. package/src/overlay/overlay.component.ts +397 -190
  575. package/src/overlay/overlay.confirm-body.ts +21 -7
  576. package/src/overlay/overlay.gestures.ts +72 -36
  577. package/src/overlay/overlay.layout.ts +103 -1
  578. package/src/overlay/overlay.positioning.ts +301 -0
  579. package/src/overlay/overlay.service.ts +81 -3
  580. package/src/overlay/overlay.stack.ts +8 -4
  581. package/src/overlay/overlay.types.ts +83 -5
  582. package/src/page/page.ts +16 -11
  583. package/src/payment-card-form/index.ts +1 -0
  584. package/src/{components/form-elements → payment-card-form}/payment-card-form.ts +23 -23
  585. package/src/progress/progress.ts +5 -3
  586. package/src/qr-scanner/qr-scanner.ts +7 -30
  587. package/src/radio-group/radio-button.ts +3 -13
  588. package/src/radio-group/radio-group.ts +5 -22
  589. package/src/range/range.ts +4 -3
  590. package/src/rxjs-utils/waitForElements.ts +1 -1
  591. package/src/rxjs-utils/waitForElementsAll.ts +1 -1
  592. package/src/select/select.ts +10 -18
  593. package/src/sheet/hook.ts +1 -1
  594. package/src/sheet/sheet.ts +5 -20
  595. package/src/skeleton/skeleton.ts +4 -3
  596. package/src/slider/slide.ts +5 -3
  597. package/src/slider/slider.ts +5 -3
  598. package/src/splash-screen/splash-screen.ts +5 -3
  599. package/src/state/CLAUDE.md +161 -0
  600. package/src/state/MIGRATION.md +258 -0
  601. package/src/state/SCOPING.md +134 -0
  602. package/src/state/active-host.ts +156 -0
  603. package/src/state/index.ts +877 -0
  604. package/src/state/persist.ts +208 -0
  605. package/src/state/schmancy-context.ts +84 -0
  606. package/src/state/state.test-d.ts +227 -0
  607. package/src/state/state.test.ts +820 -0
  608. package/src/steps/schmancy-step.ts +5 -3
  609. package/src/steps/schmancy-steps-container.ts +5 -3
  610. package/src/surface/surface.ts +14 -9
  611. package/src/switch/switch.test.ts +2 -2
  612. package/src/switch/switch.ts +8 -10
  613. package/src/table/row.ts +7 -4
  614. package/src/table/table.ts +17 -14
  615. package/src/tabs/index.ts +0 -2
  616. package/src/tabs/tab.ts +2 -2
  617. package/src/tabs/tabs-group.ts +7 -4
  618. package/src/teleport/teleport.component.ts +5 -3
  619. package/src/textarea/textarea.ts +6 -12
  620. package/src/theme/theme-audio-player.ts +7 -5
  621. package/src/theme/theme-controller.ts +2 -2
  622. package/src/theme/theme.component.ts +22 -15
  623. package/src/theme/theme.service.ts +6 -7
  624. package/src/theme/theme.style.css +1 -0
  625. package/src/theme-button/theme-button.ts +2 -2
  626. package/src/timeline/index.ts +1 -0
  627. package/src/timeline/timeline-tile.ts +431 -0
  628. package/src/tree/tree.ts +4 -16
  629. package/src/typewriter/index.ts +1 -1
  630. package/src/typography/typography.ts +5 -98
  631. package/src/utils/intersection.ts +5 -1
  632. package/src/utils/overlay-stack.ts +1 -1
  633. package/src/utils/search.ts +2 -2
  634. package/src/visually-hidden/visually-hidden.ts +4 -3
  635. package/src/window/window-position.ts +3 -6
  636. package/src/window/window.ts +9 -7
  637. package/types/mixins/SchmancyElement.d.ts +49 -0
  638. package/types/mixins/formField.mixin.d.ts +4 -2
  639. package/types/mixins/index.d.ts +1 -0
  640. package/types/mixins/litElement.mixin.d.ts +11 -0
  641. package/types/src/agent/agent-entry.d.ts +2 -19
  642. package/types/src/agent/helpers.d.ts +0 -26
  643. package/types/src/agent/schmancy-skill.d.ts +3 -5
  644. package/types/src/area/area.component.d.ts +3 -17
  645. package/types/src/area/route.component.d.ts +14 -4
  646. package/types/src/autocomplete/autocomplete.d.ts +4 -15
  647. package/types/src/{avatar.d.ts → avatar/avatar.d.ts} +2 -3
  648. package/types/src/avatar/index.d.ts +1 -0
  649. package/types/src/badge/badge.d.ts +3 -3
  650. package/types/src/boat/boat.d.ts +3 -2
  651. package/types/src/breadcrumb/breadcrumb.d.ts +9 -19
  652. package/types/src/busy/busy.d.ts +3 -3
  653. package/types/src/busy/spinner.d.ts +3 -3
  654. package/types/src/button/button.d.ts +4 -10
  655. package/types/src/button/icon-button.d.ts +5 -11
  656. package/types/src/card/actions.d.ts +3 -12
  657. package/types/src/card/card.d.ts +4 -24
  658. package/types/src/card/content.d.ts +3 -12
  659. package/types/src/card/media.d.ts +3 -9
  660. package/types/src/charts/area-chart.d.ts +3 -3
  661. package/types/src/charts/pills.d.ts +3 -3
  662. package/types/src/checkbox/checkbox.d.ts +3 -10
  663. package/types/src/chips/assist-chip.d.ts +5 -15
  664. package/types/src/chips/chips.d.ts +3 -17
  665. package/types/src/chips/filter-chip.d.ts +3 -3
  666. package/types/src/chips/input-chip.d.ts +9 -10
  667. package/types/src/chips/suggestion-chip.d.ts +9 -13
  668. package/types/src/code-highlight/code-highlight.d.ts +4 -11
  669. package/types/src/code-highlight/code-preview.d.ts +3 -3
  670. package/types/src/connectivity/connectivity-status.d.ts +3 -3
  671. package/types/src/content-drawer/drawer.d.ts +4 -4
  672. package/types/src/content-drawer/main.d.ts +3 -3
  673. package/types/src/content-drawer/sheet.d.ts +4 -4
  674. package/types/src/date-range/date-range-dialog.d.ts +2 -3
  675. package/types/src/date-range/date-range.d.ts +2 -3
  676. package/types/src/delay/delay.d.ts +2 -3
  677. package/types/src/details/details.d.ts +3 -14
  678. package/types/src/dialog/dialog.component.d.ts +9 -9
  679. package/types/src/directives/drag.d.ts +1 -3
  680. package/types/src/directives/index.d.ts +0 -1
  681. package/types/src/divider/divider.d.ts +3 -14
  682. package/types/src/dropdown/dropdown-component.d.ts +4 -17
  683. package/types/src/dropdown/dropdown-content.d.ts +6 -14
  684. package/types/src/expand/expand-root.component.d.ts +4 -14
  685. package/types/src/expand/expand.component.d.ts +3 -17
  686. package/types/src/extra/countries/countries.d.ts +3 -13
  687. package/types/src/extra/timezone/timezone.d.ts +4 -11
  688. package/types/src/form/form.d.ts +2 -9
  689. package/types/src/icons/icon.d.ts +3 -3
  690. package/types/src/iframe/iframe.d.ts +5 -3
  691. package/types/src/index.d.ts +3 -3
  692. package/types/src/input/input.d.ts +4 -11
  693. package/types/src/json/json.d.ts +3 -3
  694. package/types/src/kbd/kbd.d.ts +3 -3
  695. package/types/src/layout/index.d.ts +0 -4
  696. package/types/src/layout/scroll/scroll.d.ts +4 -8
  697. package/types/src/lightbox/lightbox.d.ts +3 -14
  698. package/types/src/list/list-item.d.ts +3 -13
  699. package/types/src/list/list.d.ts +11 -10
  700. package/types/src/mailbox/email-editor.d.ts +3 -3
  701. package/types/src/mailbox/email-layout-selector.d.ts +2 -3
  702. package/types/src/mailbox/email-recipients.d.ts +7 -3
  703. package/types/src/mailbox/email-template-picker.d.ts +4 -4
  704. package/types/src/mailbox/email-viewer.d.ts +3 -3
  705. package/types/src/mailbox/mailbox.d.ts +4 -4
  706. package/types/src/map/map.d.ts +4 -3
  707. package/types/src/menu/menu-item.d.ts +3 -16
  708. package/types/src/menu/menu.d.ts +25 -13
  709. package/types/src/nav-drawer/appbar.d.ts +3 -14
  710. package/types/src/nav-drawer/content.d.ts +3 -14
  711. package/types/src/nav-drawer/drawer.d.ts +3 -18
  712. package/types/src/nav-drawer/navbar.d.ts +3 -18
  713. package/types/src/navigation-bar/navigation-bar-item.d.ts +7 -6
  714. package/types/src/navigation-bar/navigation-bar.d.ts +13 -7
  715. package/types/src/navigation-rail/navigation-rail-item.d.ts +9 -6
  716. package/types/src/navigation-rail/navigation-rail.d.ts +10 -15
  717. package/types/src/notification/notification.d.ts +3 -3
  718. package/types/src/option/option.d.ts +3 -3
  719. package/types/src/overlay/overlay.animations.d.ts +54 -5
  720. package/types/src/overlay/overlay.component.d.ts +39 -15
  721. package/types/src/overlay/overlay.confirm-body.d.ts +4 -4
  722. package/types/src/overlay/overlay.gestures.d.ts +26 -17
  723. package/types/src/overlay/overlay.layout.d.ts +27 -1
  724. package/types/src/overlay/overlay.positioning.d.ts +87 -0
  725. package/types/src/overlay/overlay.types.d.ts +59 -5
  726. package/types/src/page/page.d.ts +14 -11
  727. package/types/src/{components/form-elements → payment-card-form}/payment-card-form.d.ts +2 -3
  728. package/types/src/progress/progress.d.ts +3 -3
  729. package/types/src/qr-scanner/qr-scanner.d.ts +3 -3
  730. package/types/src/radio-group/radio-button.d.ts +3 -12
  731. package/types/src/radio-group/radio-group.d.ts +4 -20
  732. package/types/src/range/range.d.ts +3 -3
  733. package/types/src/rxjs-utils/waitForElements.d.ts +1 -1
  734. package/types/src/rxjs-utils/waitForElementsAll.d.ts +1 -1
  735. package/types/src/select/select.d.ts +4 -15
  736. package/types/src/sheet/sheet.d.ts +3 -20
  737. package/types/src/skeleton/skeleton.d.ts +3 -3
  738. package/types/src/slider/slide.d.ts +3 -2
  739. package/types/src/slider/slider.d.ts +3 -3
  740. package/types/src/splash-screen/splash-screen.d.ts +3 -3
  741. package/types/src/state/active-host.d.ts +18 -0
  742. package/types/src/state/index.d.ts +145 -0
  743. package/types/src/state/persist.d.ts +14 -0
  744. package/types/src/state/schmancy-context.d.ts +31 -0
  745. package/types/src/state/state.test-d.d.ts +131 -0
  746. package/types/src/state/state.test.d.ts +1 -0
  747. package/types/src/steps/schmancy-step.d.ts +3 -3
  748. package/types/src/steps/schmancy-steps-container.d.ts +3 -3
  749. package/types/src/surface/surface.d.ts +13 -5
  750. package/types/src/switch/switch.d.ts +7 -11
  751. package/types/src/table/row.d.ts +2 -3
  752. package/types/src/table/table.d.ts +4 -11
  753. package/types/src/tabs/index.d.ts +0 -2
  754. package/types/src/tabs/tab.d.ts +2 -3
  755. package/types/src/tabs/tabs-group.d.ts +3 -3
  756. package/types/src/teleport/teleport.component.d.ts +3 -3
  757. package/types/src/textarea/textarea.d.ts +5 -12
  758. package/types/src/theme/theme-audio-player.d.ts +3 -3
  759. package/types/src/theme/theme-controller.d.ts +2 -2
  760. package/types/src/theme/theme.component.d.ts +18 -13
  761. package/types/src/theme-button/theme-button.d.ts +2 -3
  762. package/types/src/timeline/index.d.ts +1 -0
  763. package/types/src/timeline/timeline-tile.d.ts +44 -0
  764. package/types/src/tree/tree.d.ts +3 -16
  765. package/types/src/typewriter/index.d.ts +1 -1
  766. package/types/src/typography/typography.d.ts +3 -36
  767. package/types/src/visually-hidden/visually-hidden.d.ts +3 -3
  768. package/types/src/window/window.d.ts +3 -3
  769. package/dist/agent/index.es-Dymj8REP.js +0 -489
  770. package/dist/agent/index.es-Dymj8REP.js.map +0 -1
  771. package/dist/area-BGBCMC79.js.map +0 -1
  772. package/dist/area-D7l9KR2N.cjs +0 -12
  773. package/dist/area-D7l9KR2N.cjs.map +0 -1
  774. package/dist/autocomplete-BPD5uraA.cjs +0 -115
  775. package/dist/autocomplete-BPD5uraA.cjs.map +0 -1
  776. package/dist/autocomplete-C2P0Soht.js.map +0 -1
  777. package/dist/boat-BkIO-0No.cjs +0 -80
  778. package/dist/boat-BkIO-0No.cjs.map +0 -1
  779. package/dist/boat-DXZ0k7oa.js.map +0 -1
  780. package/dist/busy-DGYhpTnO.cjs.map +0 -1
  781. package/dist/busy-iRjq6Nvd.js.map +0 -1
  782. package/dist/card-DjYnCckw.cjs.map +0 -1
  783. package/dist/card-wUTjx0EC.js.map +0 -1
  784. package/dist/checkbox-CiYEtw9F.cjs +0 -39
  785. package/dist/checkbox-CiYEtw9F.cjs.map +0 -1
  786. package/dist/checkbox-VBSenxgb.js.map +0 -1
  787. package/dist/chips-BDS9lkPa.js.map +0 -1
  788. package/dist/chips-D6ptH5re.cjs.map +0 -1
  789. package/dist/code-highlight-Bi91XHJN.js.map +0 -1
  790. package/dist/code-highlight-BzRmBZzz.cjs.map +0 -1
  791. package/dist/components-DkmEgyAc.cjs +0 -73
  792. package/dist/components.cjs +0 -1
  793. package/dist/components.js +0 -2
  794. package/dist/context-BerzpUhI.js +0 -3
  795. package/dist/context-C6dHUHhi.cjs +0 -1
  796. package/dist/date-range-BmFxTXiU.cjs +0 -131
  797. package/dist/date-range-BmFxTXiU.cjs.map +0 -1
  798. package/dist/date-range-ClTMg1AB.js.map +0 -1
  799. package/dist/date-range-inline-B9Dp2z6C.cjs +0 -43
  800. package/dist/delay-BHODnTg-.cjs +0 -9
  801. package/dist/delay-BHODnTg-.cjs.map +0 -1
  802. package/dist/delay-Dlk0A3he.js +0 -347
  803. package/dist/delay-Dlk0A3he.js.map +0 -1
  804. package/dist/details-CPjlqQD4.js.map +0 -1
  805. package/dist/details-Cz9ok9si.cjs.map +0 -1
  806. package/dist/dialog-service-CzDO08Gy.cjs.map +0 -1
  807. package/dist/dialog-service-DH-tjPuE.js.map +0 -1
  808. package/dist/divider-CILo3_vi.cjs.map +0 -1
  809. package/dist/divider-ghgyw5CU.js.map +0 -1
  810. package/dist/expand-CbjBr_Ds.js.map +0 -1
  811. package/dist/expand-r3OrSoDk.cjs +0 -141
  812. package/dist/expand-r3OrSoDk.cjs.map +0 -1
  813. package/dist/extra-BZeZOMBI.cjs.map +0 -1
  814. package/dist/extra-DK9MQtPJ.js.map +0 -1
  815. package/dist/float-CuZ8LOgB.cjs +0 -1
  816. package/dist/flow-BPDtbhLe.js +0 -386
  817. package/dist/flow-BPDtbhLe.js.map +0 -1
  818. package/dist/flow-Dn9AZktE.cjs +0 -1
  819. package/dist/flow-Dn9AZktE.cjs.map +0 -1
  820. package/dist/form-rCZqoAoK.js.map +0 -1
  821. package/dist/form-wI58M85H.cjs.map +0 -1
  822. package/dist/handover/agent-runtime-v2-loopback.md +0 -71
  823. package/dist/handover/claude-design-v2-paste.md +0 -42
  824. package/dist/icons-Drq4kKy2.js.map +0 -1
  825. package/dist/icons-DtdhaZdc.cjs +0 -52
  826. package/dist/icons-DtdhaZdc.cjs.map +0 -1
  827. package/dist/iframe-BkwwWIbQ.cjs +0 -24
  828. package/dist/iframe-BkwwWIbQ.cjs.map +0 -1
  829. package/dist/iframe-BmyHW8km.js.map +0 -1
  830. package/dist/index.es-BgmFX1JM.cjs +0 -1
  831. package/dist/index.es-BgmFX1JM.cjs.map +0 -1
  832. package/dist/index.es-CLyb_o3Y.js +0 -489
  833. package/dist/index.es-CLyb_o3Y.js.map +0 -1
  834. package/dist/input-BGNZlfL8.cjs.map +0 -1
  835. package/dist/input-Bc3bVISm.js.map +0 -1
  836. package/dist/input-chip-BQrjpjaQ.js.map +0 -1
  837. package/dist/input-chip-DN-cwf11.cjs.map +0 -1
  838. package/dist/intersection-BrXp4YTO.js +0 -12
  839. package/dist/intersection-BrXp4YTO.js.map +0 -1
  840. package/dist/intersection-DqBqnpgh.cjs +0 -1
  841. package/dist/intersection-DqBqnpgh.cjs.map +0 -1
  842. package/dist/layout-7eyMBmZk.cjs +0 -17
  843. package/dist/layout-7eyMBmZk.cjs.map +0 -1
  844. package/dist/layout-Ox6nJkzC.js +0 -268
  845. package/dist/layout-Ox6nJkzC.js.map +0 -1
  846. package/dist/lightbox-CY52Z_ig.js.map +0 -1
  847. package/dist/lightbox-H8Uq3AXy.cjs +0 -202
  848. package/dist/lightbox-H8Uq3AXy.cjs.map +0 -1
  849. package/dist/list-BGjVo6zb.cjs +0 -40
  850. package/dist/list-BGjVo6zb.cjs.map +0 -1
  851. package/dist/list-D7wUxu1C.js.map +0 -1
  852. package/dist/litElement.mixin-CszkJuNl.js +0 -12
  853. package/dist/litElement.mixin-CszkJuNl.js.map +0 -1
  854. package/dist/litElement.mixin-qh5-IIUq.cjs +0 -1
  855. package/dist/litElement.mixin-qh5-IIUq.cjs.map +0 -1
  856. package/dist/mailbox--EN-JhjV.js.map +0 -1
  857. package/dist/mailbox-DLiBGJhY.cjs.map +0 -1
  858. package/dist/map-B0S_q3ma.js.map +0 -1
  859. package/dist/map-EDQN0I6e.cjs +0 -80
  860. package/dist/map-EDQN0I6e.cjs.map +0 -1
  861. package/dist/menu-3edZGQ1x.cjs.map +0 -1
  862. package/dist/menu-COeFpb6n.js.map +0 -1
  863. package/dist/metric.cjs +0 -69
  864. package/dist/metric.cjs.map +0 -1
  865. package/dist/metric.js +0 -93
  866. package/dist/metric.js.map +0 -1
  867. package/dist/mixins.cjs.map +0 -1
  868. package/dist/mixins.js.map +0 -1
  869. package/dist/notification-CC-TFN5v.js.map +0 -1
  870. package/dist/notification-P4c-kFdH.cjs +0 -23
  871. package/dist/notification-P4c-kFdH.cjs.map +0 -1
  872. package/dist/option-BwAF4nAw.js.map +0 -1
  873. package/dist/option-Cu0ertuF.cjs +0 -43
  874. package/dist/option-Cu0ertuF.cjs.map +0 -1
  875. package/dist/progress-Bk_Q1Shy.js.map +0 -1
  876. package/dist/progress-Yz6EMNSu.cjs.map +0 -1
  877. package/dist/provide-CYgj58u_.cjs +0 -1
  878. package/dist/provide-CYgj58u_.cjs.map +0 -1
  879. package/dist/provide-ydIskwf2.js +0 -107
  880. package/dist/provide-ydIskwf2.js.map +0 -1
  881. package/dist/radio-group-BcdcjLNC.js.map +0 -1
  882. package/dist/radio-group-BpBz5tRA.cjs +0 -40
  883. package/dist/radio-group-BpBz5tRA.cjs.map +0 -1
  884. package/dist/scroll-DXQv0ejL.js.map +0 -1
  885. package/dist/scroll-DbZMTv0K.cjs +0 -26
  886. package/dist/scroll-DbZMTv0K.cjs.map +0 -1
  887. package/dist/search-CwMav5QB.cjs +0 -1
  888. package/dist/select-BV4lK2zy.cjs.map +0 -1
  889. package/dist/select-DKyGWDsG.js.map +0 -1
  890. package/dist/sheet-BAI_jH1t.cjs +0 -35
  891. package/dist/sheet-BAI_jH1t.cjs.map +0 -1
  892. package/dist/sheet-C3TLKItO.js.map +0 -1
  893. package/dist/sheet.service-RcDBwHmv.cjs +0 -1
  894. package/dist/skills/schmancy/store.md +0 -126
  895. package/dist/skills/store.md +0 -126
  896. package/dist/sound.service-BEN6Xjy_.cjs +0 -1
  897. package/dist/sound.service-BEN6Xjy_.cjs.map +0 -1
  898. package/dist/sound.service-DWZe6swU.js.map +0 -1
  899. package/dist/splash-screen-DbI5RgBf.js.map +0 -1
  900. package/dist/splash-screen-DoHRTHi8.cjs +0 -41
  901. package/dist/splash-screen-DoHRTHi8.cjs.map +0 -1
  902. package/dist/src-00DfxCJq.js.map +0 -1
  903. package/dist/src-C_JjQovE.cjs +0 -269
  904. package/dist/src-C_JjQovE.cjs.map +0 -1
  905. package/dist/store-CjFHCSDb.cjs +0 -1
  906. package/dist/store-CjFHCSDb.cjs.map +0 -1
  907. package/dist/store-CjzZDQt8.js +0 -1654
  908. package/dist/store-CjzZDQt8.js.map +0 -1
  909. package/dist/store.cjs +0 -1
  910. package/dist/store.js +0 -2
  911. package/dist/surface-D-GWBcsh.cjs +0 -7
  912. package/dist/surface-D-GWBcsh.cjs.map +0 -1
  913. package/dist/surface-D23JtxYP.js +0 -22
  914. package/dist/surface-D23JtxYP.js.map +0 -1
  915. package/dist/surface.mixin-DqMwoddO.js +0 -320
  916. package/dist/surface.mixin-DqMwoddO.js.map +0 -1
  917. package/dist/surface.mixin-DxOi-xo0.cjs +0 -297
  918. package/dist/surface.mixin-DxOi-xo0.cjs.map +0 -1
  919. package/dist/table-C7b73kdg.cjs +0 -63
  920. package/dist/table-C7b73kdg.cjs.map +0 -1
  921. package/dist/table-CTrhV9-k.js +0 -631
  922. package/dist/table-CTrhV9-k.js.map +0 -1
  923. package/dist/tabs-Ce55RbwF.js.map +0 -1
  924. package/dist/tabs-DAzB8O7w.cjs +0 -31
  925. package/dist/tabs-DAzB8O7w.cjs.map +0 -1
  926. package/dist/tailwind.mixin-DRI1oTYQ.cjs +0 -2
  927. package/dist/tailwind.mixin-DRI1oTYQ.cjs.map +0 -1
  928. package/dist/tailwind.mixin-mdQR3BEO.js +0 -219
  929. package/dist/tailwind.mixin-mdQR3BEO.js.map +0 -1
  930. package/dist/textarea-DjN1D9u0.js.map +0 -1
  931. package/dist/textarea-PuHxBvJA.cjs +0 -39
  932. package/dist/textarea-PuHxBvJA.cjs.map +0 -1
  933. package/dist/theme-B-IJ2r7Q.cjs +0 -181
  934. package/dist/theme-button-BSbYmS4p.cjs +0 -8
  935. package/dist/theme-button-BSbYmS4p.cjs.map +0 -1
  936. package/dist/theme-button-CEMeAUOL.js.map +0 -1
  937. package/dist/theme.service-DxJPUGlu.cjs +0 -1
  938. package/dist/theme.service-DxJPUGlu.cjs.map +0 -1
  939. package/dist/theme.service-cOfPrtfe.js.map +0 -1
  940. package/dist/tslib.es6-Cnt75pb6.cjs +0 -1
  941. package/dist/tslib.es6-Cnt75pb6.cjs.map +0 -1
  942. package/dist/tslib.es6-DMzzJKHV.js +0 -7
  943. package/dist/tslib.es6-DMzzJKHV.js.map +0 -1
  944. package/dist/utils-Bp2jhyZc.js.map +0 -1
  945. package/dist/utils-CBPQvxNW.cjs +0 -1
  946. package/dist/utils-CBPQvxNW.cjs.map +0 -1
  947. package/dist/window-CrjZdf7Y.js.map +0 -1
  948. package/dist/window-DTUARSrU.cjs +0 -59
  949. package/dist/window-DTUARSrU.cjs.map +0 -1
  950. package/skills/schmancy/store.md +0 -126
  951. package/src/components/form-elements/index.ts +0 -1
  952. package/src/components/index.ts +0 -1
  953. package/src/layout/flex/flex.scss +0 -4
  954. package/src/layout/flex/flex.ts +0 -74
  955. package/src/layout/flex/index.ts +0 -1
  956. package/src/layout/grid/.readme +0 -79
  957. package/src/layout/grid/grid.scss +0 -5
  958. package/src/layout/grid/grid.ts +0 -121
  959. package/src/layout/grid/index.ts +0 -1
  960. package/src/layout/layout.ts +0 -122
  961. package/src/layout/v2/flex.ts +0 -243
  962. package/src/layout/v2/index.ts +0 -1
  963. package/src/metric/index.ts +0 -1
  964. package/src/metric/metric.ts +0 -127
  965. package/src/store/context-array.ts +0 -358
  966. package/src/store/context-collection.ts +0 -218
  967. package/src/store/context-create.ts +0 -284
  968. package/src/store/context-object.ts +0 -298
  969. package/src/store/filter-directive.ts +0 -614
  970. package/src/store/index.ts +0 -10
  971. package/src/store/selector-hook.ts +0 -259
  972. package/src/store/selectors.ts +0 -289
  973. package/src/store/storage-manager.ts +0 -269
  974. package/src/store/store.class.ts +0 -239
  975. package/src/store/types.ts +0 -327
  976. package/src/tabs/tabs-compatibility.ts +0 -20
  977. package/src/typewriter/typewriter.ts +0 -410
  978. package/types/src/area/route.test.d.ts +0 -20
  979. package/types/src/button/button.test.d.ts +0 -1
  980. package/types/src/chips/chip.d.ts +0 -3
  981. package/types/src/components/index.d.ts +0 -1
  982. package/types/src/content-drawer/$sheet.d.ts +0 -14
  983. package/types/src/dialog/dailog.d.ts +0 -116
  984. package/types/src/dialog/dialog-content.d.ts +0 -17
  985. package/types/src/directives/guard.d.ts +0 -1
  986. package/types/src/directives/visibility.d.ts +0 -11
  987. package/types/src/form/form-v2.d.ts +0 -22
  988. package/types/src/input/input-v2.d.ts +0 -250
  989. package/types/src/layout/flex/flex.d.ts +0 -26
  990. package/types/src/layout/flex/index.d.ts +0 -1
  991. package/types/src/layout/grid/grid.d.ts +0 -39
  992. package/types/src/layout/grid/index.d.ts +0 -1
  993. package/types/src/layout/layout.d.ts +0 -59
  994. package/types/src/layout/v2/flex.d.ts +0 -65
  995. package/types/src/layout/v2/grid.d.ts +0 -51
  996. package/types/src/layout/v2/index.d.ts +0 -1
  997. package/types/src/lightbox/flip.directive.d.ts +0 -22
  998. package/types/src/metric/index.d.ts +0 -1
  999. package/types/src/metric/metric.d.ts +0 -39
  1000. package/types/src/notification/outlet.d.ts +0 -10
  1001. package/types/src/sheet/header.d.ts +0 -10
  1002. package/types/src/store/context-array.d.ts +0 -83
  1003. package/types/src/store/context-collection.d.ts +0 -74
  1004. package/types/src/store/context-create.d.ts +0 -43
  1005. package/types/src/store/context-object.d.ts +0 -46
  1006. package/types/src/store/filter-directive.d.ts +0 -116
  1007. package/types/src/store/immer-integration.d.ts +0 -54
  1008. package/types/src/store/index.d.ts +0 -10
  1009. package/types/src/store/selector-hook.d.ts +0 -46
  1010. package/types/src/store/selectors.d.ts +0 -90
  1011. package/types/src/store/storage-manager.d.ts +0 -48
  1012. package/types/src/store/store.class.d.ts +0 -73
  1013. package/types/src/store/types.d.ts +0 -241
  1014. package/types/src/tabs/tabs-compatibility.d.ts +0 -13
  1015. package/types/src/theme/theme.elevation.d.ts +0 -131
  1016. package/types/src/theme/theme.motion.d.ts +0 -198
  1017. package/types/src/theme/theme.shape.d.ts +0 -144
  1018. package/types/src/theme/theme.state.d.ts +0 -546
  1019. package/types/src/theme/theme.typography.d.ts +0 -74
  1020. package/types/src/tooltip/tooltip.d.ts +0 -33
  1021. package/types/src/typewriter/typewriter.d.ts +0 -94
  1022. /package/dist/agent/{flow-CvG1fLW5.js → flow-CaPi2G8y.js} +0 -0
  1023. /package/dist/agent/{vendor-material-color-DcL7ZPxx.js → vendor-material-color-Be96dpGE.js} +0 -0
  1024. /package/dist/{animation-hXFClrIn.js → animation-BK-8BwY8.js} +0 -0
  1025. /package/dist/{animation-CQRdLgzX.cjs → animation-CO_Csq84.cjs} +0 -0
  1026. /package/dist/{decorate-D_utPUsC.js → decorate-23nYs4Le.js} +0 -0
  1027. /package/dist/{decorate-F9CuyeHg.cjs → decorate-DpFmy0nm.cjs} +0 -0
  1028. /package/dist/{hashContent-B2IntJQf.js → hashContent-1ARKIsx9.js} +0 -0
  1029. /package/dist/{hashContent-CahnEuut.cjs → hashContent-Bp5S6T4U.cjs} +0 -0
  1030. /package/dist/{lazy-D6R5N5v4.js → lazy-B0ia54tT.js} +0 -0
  1031. /package/dist/{lazy-BDNnH_r7.cjs → lazy-Dq9mRRjT.cjs} +0 -0
  1032. /package/dist/{reduced-motion-BZTLqAyl.js → reduced-motion-D-L12p7G.js} +0 -0
  1033. /package/dist/{reduced-motion-9RjNnhIg.cjs → reduced-motion-Ds-HjMzn.cjs} +0 -0
  1034. /package/dist/{rxjs-utils-DJbZRjp3.cjs → rxjs-utils-Csnks202.cjs} +0 -0
  1035. /package/dist/{rxjs-utils-CKTnEKUH.js → rxjs-utils-d-ivVN84.js} +0 -0
  1036. /package/dist/{theme.events-NuihzD_p.js → theme.events-Cv7N4Toe.js} +0 -0
  1037. /package/dist/{theme.events-DakXxZeP.cjs → theme.events-DM4H5F2d.cjs} +0 -0
  1038. /package/dist/{theme.interface-DTwkuAKJ.cjs → theme.interface-D9l33b-M.cjs} +0 -0
  1039. /package/dist/{theme.interface-Buged9Cg.js → theme.interface-DnVNre4O.js} +0 -0
  1040. /package/src/{directives/typewriter.ts → typewriter/typewriter.directive.ts} +0 -0
  1041. /package/types/src/{components/form-elements → payment-card-form}/index.d.ts +0 -0
  1042. /package/types/src/{directives/typewriter.d.ts → typewriter/typewriter.directive.d.ts} +0 -0
@@ -0,0 +1,134 @@
1
+ # Scoping a state per subtree — `<schmancy-context provides>`
2
+
3
+ The `state()` factory returns a module-scoped singleton. `cart` is the
4
+ same instance everywhere it is imported. That is the right default —
5
+ "the cart" is a single thing.
6
+
7
+ When you need *more than one* of something at the same time — two
8
+ side-by-side checkout flows, a comparison view of two records, an
9
+ embedded preview that shouldn't trample the parent's draft —
10
+ `<schmancy-context>` scopes a state to a subtree.
11
+
12
+ ```ts
13
+ import { state } from '@mhmo91/schmancy/state'
14
+
15
+ const cart = state<CartState>('hannah/cart').session({ items: [], total: 0 })
16
+
17
+ class App extends $LitElement() {
18
+ render() {
19
+ return html`
20
+ <schmancy-context .provides=${[cart]}>
21
+ <cart-view></cart-view> <!-- isolated copy of cart -->
22
+ </schmancy-context>
23
+ <cart-summary></cart-summary> <!-- module-scoped global cart -->
24
+ `
25
+ }
26
+ }
27
+ ```
28
+
29
+ Inside `<schmancy-context>`, every read and write of `cart` resolves to
30
+ a per-element isolated copy. Outside, it stays the global. **Consumer
31
+ code does not change.** `cart.value`, `cart.set(...)`,
32
+ `cart.update(d => …)` — same calls, tree-aware result.
33
+
34
+ ## Resolution rules
35
+
36
+ - Inside `<schmancy-context provides={[cart]}>` → reads/writes go to
37
+ that element's isolated copy.
38
+ - Inside two nested `<schmancy-context provides={[cart]}>` → the
39
+ **closest** provider wins.
40
+ - Inside a `<schmancy-context>` whose `provides` does **not** include
41
+ `cart` → falls through to the module-scoped global.
42
+ - Outside any `<schmancy-context>` → module-scoped global.
43
+
44
+ ## What's covered
45
+
46
+ The scoping primitive is supposed to "just work" for the call paths a
47
+ component naturally writes. It handles:
48
+
49
+ | Code path | Mechanism |
50
+ |---|---|
51
+ | `render()` | `SchmancyElement` prototype-wrap pushes the host onto the active-host stack for the duration of `render()`. |
52
+ | Lit lifecycle (`connectedCallback`, `update`, `updated`, `firstUpdated`, `willUpdate`) | Same prototype-wrap. |
53
+ | Class methods called from event handlers (sync) | Same prototype-wrap. |
54
+ | `await` continuations inside class methods | A `Promise.prototype.then` patch in `state/active-host.ts` propagates the host across each `.then` boundary. |
55
+ | `addEventListener(type, fn)` on the host | Wrapped at the `SchmancyElement` layer; `removeEventListener` re-finds the wrapped listener via a `WeakMap`. |
56
+ | Inline arrow handlers attached via Lit templates (`@click=${() => …}`) | Resolved through the `window.event.composedPath()` fallback in `resolveActiveHost()`. |
57
+
58
+ Pure async callbacks with no DOM origin — a websocket `onmessage`
59
+ unrelated to any user gesture, a `setInterval` body running on its own
60
+ schedule — fall through to the module-scoped global. That is the
61
+ correct semantic: those callbacks have no tree position to resolve to.
62
+
63
+ ## Lifecycle
64
+
65
+ - The isolated copy is created when `<schmancy-context>` connects, and
66
+ is **seeded with the current global value** at that moment. The
67
+ subtree starts from "what the rest of the app sees right now," then
68
+ diverges.
69
+ - It is destroyed when `<schmancy-context>` disconnects. Pending
70
+ microtask-coalesced writes flush; the storage adapter's `close()`
71
+ runs.
72
+ - The isolated copy uses **memory** storage regardless of the global's
73
+ backend. It shares lifetime with the element, not with
74
+ `localStorage` / `sessionStorage` / IndexedDB. The global continues
75
+ to persist on whichever backend it was created with.
76
+
77
+ ## Multiple states per element
78
+
79
+ ```ts
80
+ <schmancy-context .provides=${[cart, menu, draft]}>
81
+ <wizard></wizard>
82
+ </schmancy-context>
83
+ ```
84
+
85
+ Each is isolated independently. States not listed in `provides`
86
+ fall through to the global from inside the element — useful when only
87
+ some namespaces need scoping in a particular subtree.
88
+
89
+ ## Two pitfalls
90
+
91
+ ### Don't cache `state.signal` or `state.$` across tree boundaries
92
+
93
+ Every read goes through context resolution. The signal (and Observable)
94
+ returned by the getter is the *currently resolved* instance. Stash a
95
+ reference to `cart.signal` and the host later moves into a different
96
+ `<schmancy-context>` subtree, and your reference lags.
97
+
98
+ ```ts
99
+ // ✗ Don't
100
+ const sig = cart.signal
101
+ class Foo extends $LitElement() {
102
+ render() { return html`${sig.get().n}` } // never re-resolves
103
+ }
104
+
105
+ // ✓ Do
106
+ class Foo extends $LitElement() {
107
+ render() { return html`${cart.value.n}` } // resolves fresh each render
108
+ }
109
+ ```
110
+
111
+ ### Don't expect persistence per subtree
112
+
113
+ Isolated copies are memory-backed. If your scoping use case requires
114
+ persisting per-subtree state across reloads, that is a different design
115
+ — derive a fresh `state()` per logical scope (with a unique namespace)
116
+ and use the persistent backend on that.
117
+
118
+ ## Implementation primer (for contributors)
119
+
120
+ - `state/active-host.ts` — `_activeHost` Variable (stack) +
121
+ one-time `Promise.prototype.then` patch + 4-tier `resolveActiveHost`
122
+ fallback. ~120 lines. Hand-rolled because no official, supported
123
+ TC39 AsyncContext.Variable polyfill exists today; the patch
124
+ decommissions cleanly when one ships.
125
+ - `state/schmancy-context.ts` — the element. One `ContextProvider`
126
+ (`@lit/context`) per state in `provides`. Destroys on disconnect.
127
+ - `state/index.ts` — every read (`value` / `signal` / `$`) and every
128
+ write on a global instance routes through `resolveContextual`,
129
+ which dispatches a `context-request` event from the active host and
130
+ caches the result per-host-per-namespace in a `WeakMap`. Isolated
131
+ copies are direct-access (skip resolveContextual, no recursion).
132
+ - `mixins/SchmancyElement.ts` — prototype-chain wrap at first
133
+ construction (cached in a `WeakSet` of prototypes); `addEventListener`
134
+ / `removeEventListener` overrides; wrapped listener cache.
@@ -0,0 +1,156 @@
1
+ // `_`-prefixed identifiers below are an intentional naming convention for
2
+ // module-private infrastructure. `_activeHost` is exported only so the
3
+ // $LitElement mixin can wrap render/lifecycle in `_activeHost.run`; the
4
+ // underscore signals "not part of the public state API."
5
+ /* oxlint-disable no-underscore-dangle */
6
+
7
+ // Active-host tracker for context-aware state resolution.
8
+ //
9
+ // Polyfills the TC39 `AsyncContext.Variable` propagation primitive using a
10
+ // stack + a one-time `Promise.prototype.then` patch. The stack value carries
11
+ // across `await`, `queueMicrotask`, RxJS subscription callbacks, and any
12
+ // other code path that ultimately routes through `Promise.then`. This is the
13
+ // same capture-and-restore technique zone.js, async-hooks, and the various
14
+ // AsyncContext userland polyfills use.
15
+ //
16
+ // Why we own this:
17
+ // - The TC39 proposal is at stage 2; no official polyfill ships from TC39.
18
+ // - The `async-context@1.0.0` package on npm is unrelated (a 2014 Node
19
+ // callback helper), and the available userland polyfills either depend
20
+ // on zone.js (~50 KB) or are Node-only / hobby quality.
21
+ // - The patch surface is ~30 lines, idempotent, preserves Promise
22
+ // semantics (delegates to the original `then`, so `Symbol.species` and
23
+ // subclassing work unchanged), and decommissions cleanly the day a real
24
+ // polyfill or native AsyncContext lands (drop the file, swap the
25
+ // `_activeHost` export for the standard primitive).
26
+ //
27
+ // resolveActiveHost() fallback chain:
28
+ // 1. Stack value set by `_activeHost.run(host, fn)` — covers render(),
29
+ // Lit lifecycle methods, class-method handlers (all wrapped by
30
+ // $LitElement), and async-after-await via the Promise patch.
31
+ // 2. window.event.composedPath() — sync event-handler fallback for
32
+ // template-bound inline arrow handlers when the EventPart patch is
33
+ // unavailable (feature-gated upgrade).
34
+ // 3. document.activeElement — keyboard handlers in focus.
35
+ // 4. undefined → caller falls back to the module-scoped global instance.
36
+
37
+ // Singleton across any number of schmancy module copies (source + dist, ESM
38
+ // + CJS, hoisted vs. nested node_modules) via the runtime-global symbol
39
+ // registry. The first copy to load creates the slot; later copies reuse it.
40
+ // Without this, two stacks → mixins push to one, state reads from the other,
41
+ // and active-host context is lost across the boundary.
42
+ const STACK_KEY = Symbol.for('schmancy.state.activeHost.stack')
43
+ type StackSlot = { stack: Array<HTMLElement | undefined> }
44
+ const _g = globalThis as { [STACK_KEY]?: StackSlot }
45
+ _g[STACK_KEY] ??= { stack: [undefined] }
46
+ const _stack = _g[STACK_KEY].stack
47
+
48
+ // One-time Promise.prototype.then patch at module init. Each .then() call
49
+ // captures the stack head at chain time; firing the callback restores that
50
+ // captured value for the duration of the callback. The guard property
51
+ // prevents double-patching across HMR / duplicate module loads.
52
+ declare global {
53
+ interface Promise<T> {
54
+ // Marker symbol so we can detect (and skip) re-patching.
55
+ readonly __schmancyActiveHostPatched?: true
56
+ }
57
+ }
58
+
59
+ // Patching Promise.prototype is the entire mechanism this module exists to
60
+ // provide — the lint rules below intentionally do not apply.
61
+ /* oxlint-disable no-extend-native, unicorn/no-thenable */
62
+ if (typeof Promise !== 'undefined' && !('__schmancyActiveHostPatched' in Promise.prototype)) {
63
+ Object.defineProperty(Promise.prototype, '__schmancyActiveHostPatched', {
64
+ value: true,
65
+ configurable: false,
66
+ enumerable: false,
67
+ writable: false,
68
+ })
69
+ const _origThen = Promise.prototype.then
70
+ // Replace with our wrapper. We delegate to the original `then` via
71
+ // `_origThen.call(this, …)` so Promise subclassing / Symbol.species behave
72
+ // exactly as before — the only added work is the stack push/pop around
73
+ // each user callback.
74
+ Promise.prototype.then = function schmancyThen<T, R1, R2>(
75
+ this: Promise<T>,
76
+ onfulfilled?: ((value: T) => R1 | PromiseLike<R1>) | null,
77
+ onrejected?: ((reason: unknown) => R2 | PromiseLike<R2>) | null,
78
+ ): Promise<R1 | R2> {
79
+ const captured = _stack[_stack.length - 1]
80
+ const wrapFulfilled = onfulfilled
81
+ ? (v: T): R1 | PromiseLike<R1> => {
82
+ _stack.push(captured)
83
+ try {
84
+ return onfulfilled(v)
85
+ } finally {
86
+ _stack.pop()
87
+ }
88
+ }
89
+ : onfulfilled
90
+ const wrapRejected = onrejected
91
+ ? (r: unknown): R2 | PromiseLike<R2> => {
92
+ _stack.push(captured)
93
+ try {
94
+ return onrejected(r)
95
+ } finally {
96
+ _stack.pop()
97
+ }
98
+ }
99
+ : onrejected
100
+ return _origThen.call(this, wrapFulfilled, wrapRejected) as Promise<R1 | R2>
101
+ }
102
+ }
103
+ /* oxlint-enable no-extend-native, unicorn/no-thenable */
104
+
105
+ export const _activeHost = {
106
+ /** Run `fn` with `host` as the active host for the duration of `fn` and
107
+ * any awaits / microtasks / Promise chains that descend from it. */
108
+ run<R>(host: HTMLElement | undefined, fn: () => R): R {
109
+ _stack.push(host)
110
+ try {
111
+ return fn()
112
+ } finally {
113
+ _stack.pop()
114
+ }
115
+ },
116
+ /** The current active host, or undefined if no `run()` is on the stack. */
117
+ get(): HTMLElement | undefined {
118
+ return _stack[_stack.length - 1]
119
+ },
120
+ }
121
+
122
+ export function resolveActiveHost(): HTMLElement | undefined {
123
+ // 1. Stack (set by _activeHost.run, propagated across await via the
124
+ // Promise patch above).
125
+ const fromStack = _activeHost.get()
126
+ if (fromStack !== undefined) return fromStack
127
+
128
+ // 2. window.event — sync event-handler fallback. Covers inline arrow
129
+ // template bindings whose handlers run before any _activeHost.run
130
+ // frame has been pushed.
131
+ if (typeof window !== 'undefined') {
132
+ const evt = (window as Window & { event?: Event }).event
133
+ if (evt) {
134
+ const path = evt.composedPath()
135
+ for (const node of path) {
136
+ if (node instanceof HTMLElement) return node
137
+ }
138
+ }
139
+ }
140
+
141
+ // 3. document.activeElement — keyboard / focus handlers.
142
+ if (typeof document !== 'undefined' && document.activeElement instanceof HTMLElement) {
143
+ return document.activeElement
144
+ }
145
+
146
+ // 4. undefined — caller falls back to module-scoped.
147
+ return undefined
148
+ }
149
+
150
+ /** Stable context key for a state namespace. `Symbol.for(...)` so the same
151
+ * namespace string yields the same symbol across module boundaries — the
152
+ * ContextProvider on `<schmancy-context>` and the ContextRequestEvent
153
+ * dispatched by a state read must agree on identity. */
154
+ export function stateContextKey(namespace: string): symbol {
155
+ return Symbol.for(`schmancy.state:${namespace}`)
156
+ }