@mhmo91/schmancy 0.9.27 → 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 (1041) hide show
  1. package/custom-elements.json +987 -2259
  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 +6465 -7794
  9. package/dist/agent/schmancy.agent.js.map +1 -1
  10. package/dist/agent/schmancy.manifest.json +262 -1462
  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 +0 -49
  484. package/src/agent/agent-entry.ts +4 -3
  485. package/src/agent/helpers.ts +1 -95
  486. package/src/agent/schmancy-skill.ts +2 -5
  487. package/src/agent/virtual-manifest.d.ts +1 -12
  488. package/src/area/area.component.ts +7 -19
  489. package/src/area/area.service.test.ts +4 -5
  490. package/src/area/area.service.ts +4 -3
  491. package/src/area/route.component.ts +17 -4
  492. package/src/area/utils.ts +3 -2
  493. package/src/audio/sound.service.ts +7 -11
  494. package/src/autocomplete/autocomplete.ts +18 -21
  495. package/src/{avatar.ts → avatar/avatar.ts} +2 -2
  496. package/src/avatar/index.ts +1 -0
  497. package/src/badge/badge.ts +4 -3
  498. package/src/boat/boat.ts +28 -36
  499. package/src/breadcrumb/breadcrumb.ts +11 -19
  500. package/src/busy/busy.ts +4 -3
  501. package/src/busy/spinner.ts +4 -3
  502. package/src/button/button.ts +6 -11
  503. package/src/button/icon-button.ts +8 -12
  504. package/src/card/actions.ts +4 -12
  505. package/src/card/card.ts +5 -23
  506. package/src/card/content.ts +4 -12
  507. package/src/card/media.ts +4 -9
  508. package/src/charts/area-chart.ts +7 -4
  509. package/src/charts/pills.ts +6 -4
  510. package/src/checkbox/checkbox.test.ts +2 -2
  511. package/src/checkbox/checkbox.ts +3 -9
  512. package/src/chips/assist-chip.ts +6 -14
  513. package/src/chips/chips.ts +7 -21
  514. package/src/chips/filter-chip.ts +4 -3
  515. package/src/chips/input-chip.ts +10 -9
  516. package/src/chips/suggestion-chip.ts +10 -12
  517. package/src/code-highlight/code-highlight.ts +28 -59
  518. package/src/code-highlight/code-preview.ts +11 -9
  519. package/src/connectivity/connectivity-status.ts +4 -3
  520. package/src/content-drawer/drawer.ts +5 -3
  521. package/src/content-drawer/main.ts +5 -3
  522. package/src/content-drawer/sheet.ts +6 -4
  523. package/src/date-range/date-range-dialog.ts +2 -2
  524. package/src/date-range/date-range.ts +3 -2
  525. package/src/delay/delay.ts +2 -2
  526. package/src/details/details.ts +4 -17
  527. package/src/dialog/dialog-service.ts +2 -0
  528. package/src/dialog/dialog.component.ts +9 -9
  529. package/src/directives/drag.ts +1 -9
  530. package/src/directives/index.ts +0 -1
  531. package/src/discovery/discovery.service.ts +1 -1
  532. package/src/divider/divider.ts +5 -14
  533. package/src/dropdown/dropdown-component.ts +5 -16
  534. package/src/dropdown/dropdown-content.ts +7 -14
  535. package/src/expand/expand-root.component.ts +5 -15
  536. package/src/expand/expand.component.ts +4 -17
  537. package/src/extra/countries/countries.ts +5 -13
  538. package/src/extra/timezone/timezone.ts +7 -12
  539. package/src/form/form.test.ts +2 -2
  540. package/src/form/form.ts +2 -9
  541. package/src/icons/icon.ts +4 -3
  542. package/src/iframe/iframe.ts +13 -4
  543. package/src/index.ts +3 -3
  544. package/src/input/input.ts +4 -11
  545. package/src/json/json.ts +4 -3
  546. package/src/kbd/kbd.ts +4 -3
  547. package/src/layout/index.ts +1 -5
  548. package/src/layout/scroll/scroll.ts +5 -8
  549. package/src/lightbox/flip-directive.ts +1 -1
  550. package/src/lightbox/lightbox.ts +5 -14
  551. package/src/list/list-item.ts +4 -13
  552. package/src/list/list.ts +12 -10
  553. package/src/mailbox/email-editor.ts +17 -11
  554. package/src/mailbox/email-layout-selector.ts +2 -2
  555. package/src/mailbox/email-recipients.ts +13 -8
  556. package/src/mailbox/email-template-picker.ts +6 -5
  557. package/src/mailbox/email-viewer.ts +5 -3
  558. package/src/mailbox/mailbox.ts +6 -5
  559. package/src/map/map.ts +8 -6
  560. package/src/menu/menu-item.ts +5 -16
  561. package/src/menu/menu.ts +27 -13
  562. package/src/nav-drawer/appbar.ts +4 -14
  563. package/src/nav-drawer/content.ts +5 -14
  564. package/src/nav-drawer/drawer.ts +5 -18
  565. package/src/nav-drawer/navbar.ts +3 -17
  566. package/src/navigation-bar/navigation-bar-item.ts +8 -6
  567. package/src/navigation-bar/navigation-bar.ts +19 -19
  568. package/src/navigation-rail/navigation-rail-item.ts +9 -5
  569. package/src/navigation-rail/navigation-rail.ts +10 -14
  570. package/src/notification/notification.ts +6 -3
  571. package/src/option/option.ts +4 -3
  572. package/src/overlay/overlay.animations.ts +196 -25
  573. package/src/overlay/overlay.component.ts +397 -190
  574. package/src/overlay/overlay.confirm-body.ts +21 -7
  575. package/src/overlay/overlay.gestures.ts +72 -36
  576. package/src/overlay/overlay.layout.ts +103 -1
  577. package/src/overlay/overlay.positioning.ts +301 -0
  578. package/src/overlay/overlay.service.ts +81 -3
  579. package/src/overlay/overlay.stack.ts +8 -4
  580. package/src/overlay/overlay.types.ts +83 -5
  581. package/src/page/page.ts +16 -11
  582. package/src/payment-card-form/index.ts +1 -0
  583. package/src/{components/form-elements → payment-card-form}/payment-card-form.ts +23 -23
  584. package/src/progress/progress.ts +5 -3
  585. package/src/qr-scanner/qr-scanner.ts +7 -30
  586. package/src/radio-group/radio-button.ts +3 -13
  587. package/src/radio-group/radio-group.ts +5 -22
  588. package/src/range/range.ts +4 -3
  589. package/src/rxjs-utils/waitForElements.ts +1 -1
  590. package/src/rxjs-utils/waitForElementsAll.ts +1 -1
  591. package/src/select/select.ts +10 -18
  592. package/src/sheet/hook.ts +1 -1
  593. package/src/sheet/sheet.ts +5 -20
  594. package/src/skeleton/skeleton.ts +4 -3
  595. package/src/slider/slide.ts +5 -3
  596. package/src/slider/slider.ts +5 -3
  597. package/src/splash-screen/splash-screen.ts +5 -3
  598. package/src/state/CLAUDE.md +161 -0
  599. package/src/state/MIGRATION.md +258 -0
  600. package/src/state/SCOPING.md +134 -0
  601. package/src/state/active-host.ts +156 -0
  602. package/src/state/index.ts +877 -0
  603. package/src/state/persist.ts +208 -0
  604. package/src/state/schmancy-context.ts +84 -0
  605. package/src/state/state.test-d.ts +227 -0
  606. package/src/state/state.test.ts +820 -0
  607. package/src/steps/schmancy-step.ts +5 -3
  608. package/src/steps/schmancy-steps-container.ts +5 -3
  609. package/src/surface/surface.ts +14 -9
  610. package/src/switch/switch.test.ts +2 -2
  611. package/src/switch/switch.ts +8 -10
  612. package/src/table/row.ts +7 -4
  613. package/src/table/table.ts +17 -14
  614. package/src/tabs/index.ts +0 -2
  615. package/src/tabs/tab.ts +2 -2
  616. package/src/tabs/tabs-group.ts +7 -4
  617. package/src/teleport/teleport.component.ts +5 -3
  618. package/src/textarea/textarea.ts +6 -12
  619. package/src/theme/theme-audio-player.ts +7 -5
  620. package/src/theme/theme-controller.ts +2 -2
  621. package/src/theme/theme.component.ts +22 -15
  622. package/src/theme/theme.service.ts +6 -7
  623. package/src/theme/theme.style.css +1 -0
  624. package/src/theme-button/theme-button.ts +2 -2
  625. package/src/timeline/index.ts +1 -0
  626. package/src/timeline/timeline-tile.ts +431 -0
  627. package/src/tree/tree.ts +4 -16
  628. package/src/typewriter/index.ts +1 -1
  629. package/src/typography/typography.ts +5 -98
  630. package/src/utils/intersection.ts +5 -1
  631. package/src/utils/overlay-stack.ts +1 -1
  632. package/src/utils/search.ts +2 -2
  633. package/src/visually-hidden/visually-hidden.ts +4 -3
  634. package/src/window/window-position.ts +3 -6
  635. package/src/window/window.ts +9 -7
  636. package/types/mixins/SchmancyElement.d.ts +49 -0
  637. package/types/mixins/formField.mixin.d.ts +4 -2
  638. package/types/mixins/index.d.ts +1 -0
  639. package/types/mixins/litElement.mixin.d.ts +11 -0
  640. package/types/src/agent/agent-entry.d.ts +1 -1
  641. package/types/src/agent/helpers.d.ts +0 -26
  642. package/types/src/agent/schmancy-skill.d.ts +3 -5
  643. package/types/src/area/area.component.d.ts +3 -17
  644. package/types/src/area/route.component.d.ts +14 -4
  645. package/types/src/autocomplete/autocomplete.d.ts +4 -15
  646. package/types/src/{avatar.d.ts → avatar/avatar.d.ts} +2 -3
  647. package/types/src/avatar/index.d.ts +1 -0
  648. package/types/src/badge/badge.d.ts +3 -3
  649. package/types/src/boat/boat.d.ts +3 -2
  650. package/types/src/breadcrumb/breadcrumb.d.ts +9 -19
  651. package/types/src/busy/busy.d.ts +3 -3
  652. package/types/src/busy/spinner.d.ts +3 -3
  653. package/types/src/button/button.d.ts +4 -10
  654. package/types/src/button/icon-button.d.ts +5 -11
  655. package/types/src/card/actions.d.ts +3 -12
  656. package/types/src/card/card.d.ts +4 -24
  657. package/types/src/card/content.d.ts +3 -12
  658. package/types/src/card/media.d.ts +3 -9
  659. package/types/src/charts/area-chart.d.ts +3 -3
  660. package/types/src/charts/pills.d.ts +3 -3
  661. package/types/src/checkbox/checkbox.d.ts +3 -10
  662. package/types/src/chips/assist-chip.d.ts +5 -15
  663. package/types/src/chips/chips.d.ts +3 -17
  664. package/types/src/chips/filter-chip.d.ts +3 -3
  665. package/types/src/chips/input-chip.d.ts +9 -10
  666. package/types/src/chips/suggestion-chip.d.ts +9 -13
  667. package/types/src/code-highlight/code-highlight.d.ts +4 -11
  668. package/types/src/code-highlight/code-preview.d.ts +3 -3
  669. package/types/src/connectivity/connectivity-status.d.ts +3 -3
  670. package/types/src/content-drawer/drawer.d.ts +4 -4
  671. package/types/src/content-drawer/main.d.ts +3 -3
  672. package/types/src/content-drawer/sheet.d.ts +4 -4
  673. package/types/src/date-range/date-range-dialog.d.ts +2 -3
  674. package/types/src/date-range/date-range.d.ts +2 -3
  675. package/types/src/delay/delay.d.ts +2 -3
  676. package/types/src/details/details.d.ts +3 -14
  677. package/types/src/dialog/dialog.component.d.ts +9 -9
  678. package/types/src/directives/drag.d.ts +1 -3
  679. package/types/src/directives/index.d.ts +0 -1
  680. package/types/src/divider/divider.d.ts +3 -14
  681. package/types/src/dropdown/dropdown-component.d.ts +4 -17
  682. package/types/src/dropdown/dropdown-content.d.ts +6 -14
  683. package/types/src/expand/expand-root.component.d.ts +4 -14
  684. package/types/src/expand/expand.component.d.ts +3 -17
  685. package/types/src/extra/countries/countries.d.ts +3 -13
  686. package/types/src/extra/timezone/timezone.d.ts +4 -11
  687. package/types/src/form/form.d.ts +2 -9
  688. package/types/src/icons/icon.d.ts +3 -3
  689. package/types/src/iframe/iframe.d.ts +5 -3
  690. package/types/src/index.d.ts +3 -3
  691. package/types/src/input/input.d.ts +4 -11
  692. package/types/src/json/json.d.ts +3 -3
  693. package/types/src/kbd/kbd.d.ts +3 -3
  694. package/types/src/layout/index.d.ts +0 -4
  695. package/types/src/layout/scroll/scroll.d.ts +4 -8
  696. package/types/src/lightbox/lightbox.d.ts +3 -14
  697. package/types/src/list/list-item.d.ts +3 -13
  698. package/types/src/list/list.d.ts +11 -10
  699. package/types/src/mailbox/email-editor.d.ts +3 -3
  700. package/types/src/mailbox/email-layout-selector.d.ts +2 -3
  701. package/types/src/mailbox/email-recipients.d.ts +7 -3
  702. package/types/src/mailbox/email-template-picker.d.ts +4 -4
  703. package/types/src/mailbox/email-viewer.d.ts +3 -3
  704. package/types/src/mailbox/mailbox.d.ts +4 -4
  705. package/types/src/map/map.d.ts +4 -3
  706. package/types/src/menu/menu-item.d.ts +3 -16
  707. package/types/src/menu/menu.d.ts +25 -13
  708. package/types/src/nav-drawer/appbar.d.ts +3 -14
  709. package/types/src/nav-drawer/content.d.ts +3 -14
  710. package/types/src/nav-drawer/drawer.d.ts +3 -18
  711. package/types/src/nav-drawer/navbar.d.ts +3 -18
  712. package/types/src/navigation-bar/navigation-bar-item.d.ts +7 -6
  713. package/types/src/navigation-bar/navigation-bar.d.ts +13 -7
  714. package/types/src/navigation-rail/navigation-rail-item.d.ts +9 -6
  715. package/types/src/navigation-rail/navigation-rail.d.ts +10 -15
  716. package/types/src/notification/notification.d.ts +3 -3
  717. package/types/src/option/option.d.ts +3 -3
  718. package/types/src/overlay/overlay.animations.d.ts +54 -5
  719. package/types/src/overlay/overlay.component.d.ts +39 -15
  720. package/types/src/overlay/overlay.confirm-body.d.ts +4 -4
  721. package/types/src/overlay/overlay.gestures.d.ts +26 -17
  722. package/types/src/overlay/overlay.layout.d.ts +27 -1
  723. package/types/src/overlay/overlay.positioning.d.ts +87 -0
  724. package/types/src/overlay/overlay.types.d.ts +59 -5
  725. package/types/src/page/page.d.ts +14 -11
  726. package/types/src/{components/form-elements → payment-card-form}/payment-card-form.d.ts +2 -3
  727. package/types/src/progress/progress.d.ts +3 -3
  728. package/types/src/qr-scanner/qr-scanner.d.ts +3 -3
  729. package/types/src/radio-group/radio-button.d.ts +3 -12
  730. package/types/src/radio-group/radio-group.d.ts +4 -20
  731. package/types/src/range/range.d.ts +3 -3
  732. package/types/src/rxjs-utils/waitForElements.d.ts +1 -1
  733. package/types/src/rxjs-utils/waitForElementsAll.d.ts +1 -1
  734. package/types/src/select/select.d.ts +4 -15
  735. package/types/src/sheet/sheet.d.ts +3 -20
  736. package/types/src/skeleton/skeleton.d.ts +3 -3
  737. package/types/src/slider/slide.d.ts +3 -2
  738. package/types/src/slider/slider.d.ts +3 -3
  739. package/types/src/splash-screen/splash-screen.d.ts +3 -3
  740. package/types/src/state/active-host.d.ts +18 -0
  741. package/types/src/state/index.d.ts +145 -0
  742. package/types/src/state/persist.d.ts +14 -0
  743. package/types/src/state/schmancy-context.d.ts +31 -0
  744. package/types/src/state/state.test-d.d.ts +131 -0
  745. package/types/src/state/state.test.d.ts +1 -0
  746. package/types/src/steps/schmancy-step.d.ts +3 -3
  747. package/types/src/steps/schmancy-steps-container.d.ts +3 -3
  748. package/types/src/surface/surface.d.ts +13 -5
  749. package/types/src/switch/switch.d.ts +7 -11
  750. package/types/src/table/row.d.ts +2 -3
  751. package/types/src/table/table.d.ts +4 -11
  752. package/types/src/tabs/index.d.ts +0 -2
  753. package/types/src/tabs/tab.d.ts +2 -3
  754. package/types/src/tabs/tabs-group.d.ts +3 -3
  755. package/types/src/teleport/teleport.component.d.ts +3 -3
  756. package/types/src/textarea/textarea.d.ts +5 -12
  757. package/types/src/theme/theme-audio-player.d.ts +3 -3
  758. package/types/src/theme/theme-controller.d.ts +2 -2
  759. package/types/src/theme/theme.component.d.ts +18 -13
  760. package/types/src/theme-button/theme-button.d.ts +2 -3
  761. package/types/src/timeline/index.d.ts +1 -0
  762. package/types/src/timeline/timeline-tile.d.ts +44 -0
  763. package/types/src/tree/tree.d.ts +3 -16
  764. package/types/src/typewriter/index.d.ts +1 -1
  765. package/types/src/typography/typography.d.ts +3 -36
  766. package/types/src/visually-hidden/visually-hidden.d.ts +3 -3
  767. package/types/src/window/window.d.ts +3 -3
  768. package/dist/agent/index.es-Dymj8REP.js +0 -489
  769. package/dist/agent/index.es-Dymj8REP.js.map +0 -1
  770. package/dist/area-BGBCMC79.js.map +0 -1
  771. package/dist/area-D7l9KR2N.cjs +0 -12
  772. package/dist/area-D7l9KR2N.cjs.map +0 -1
  773. package/dist/autocomplete-BPD5uraA.cjs +0 -115
  774. package/dist/autocomplete-BPD5uraA.cjs.map +0 -1
  775. package/dist/autocomplete-C2P0Soht.js.map +0 -1
  776. package/dist/boat-BkIO-0No.cjs +0 -80
  777. package/dist/boat-BkIO-0No.cjs.map +0 -1
  778. package/dist/boat-DXZ0k7oa.js.map +0 -1
  779. package/dist/busy-DGYhpTnO.cjs.map +0 -1
  780. package/dist/busy-iRjq6Nvd.js.map +0 -1
  781. package/dist/card-DjYnCckw.cjs.map +0 -1
  782. package/dist/card-wUTjx0EC.js.map +0 -1
  783. package/dist/checkbox-CiYEtw9F.cjs +0 -39
  784. package/dist/checkbox-CiYEtw9F.cjs.map +0 -1
  785. package/dist/checkbox-VBSenxgb.js.map +0 -1
  786. package/dist/chips-BDS9lkPa.js.map +0 -1
  787. package/dist/chips-D6ptH5re.cjs.map +0 -1
  788. package/dist/code-highlight-Bi91XHJN.js.map +0 -1
  789. package/dist/code-highlight-BzRmBZzz.cjs.map +0 -1
  790. package/dist/components-DkmEgyAc.cjs +0 -73
  791. package/dist/components.cjs +0 -1
  792. package/dist/components.js +0 -2
  793. package/dist/context-BerzpUhI.js +0 -3
  794. package/dist/context-C6dHUHhi.cjs +0 -1
  795. package/dist/date-range-BmFxTXiU.cjs +0 -131
  796. package/dist/date-range-BmFxTXiU.cjs.map +0 -1
  797. package/dist/date-range-ClTMg1AB.js.map +0 -1
  798. package/dist/date-range-inline-B9Dp2z6C.cjs +0 -43
  799. package/dist/delay-BHODnTg-.cjs +0 -9
  800. package/dist/delay-BHODnTg-.cjs.map +0 -1
  801. package/dist/delay-Dlk0A3he.js +0 -347
  802. package/dist/delay-Dlk0A3he.js.map +0 -1
  803. package/dist/details-CPjlqQD4.js.map +0 -1
  804. package/dist/details-Cz9ok9si.cjs.map +0 -1
  805. package/dist/dialog-service-CzDO08Gy.cjs.map +0 -1
  806. package/dist/dialog-service-DH-tjPuE.js.map +0 -1
  807. package/dist/divider-CILo3_vi.cjs.map +0 -1
  808. package/dist/divider-ghgyw5CU.js.map +0 -1
  809. package/dist/expand-CbjBr_Ds.js.map +0 -1
  810. package/dist/expand-r3OrSoDk.cjs +0 -141
  811. package/dist/expand-r3OrSoDk.cjs.map +0 -1
  812. package/dist/extra-BZeZOMBI.cjs.map +0 -1
  813. package/dist/extra-DK9MQtPJ.js.map +0 -1
  814. package/dist/float-CuZ8LOgB.cjs +0 -1
  815. package/dist/flow-BPDtbhLe.js +0 -386
  816. package/dist/flow-BPDtbhLe.js.map +0 -1
  817. package/dist/flow-Dn9AZktE.cjs +0 -1
  818. package/dist/flow-Dn9AZktE.cjs.map +0 -1
  819. package/dist/form-rCZqoAoK.js.map +0 -1
  820. package/dist/form-wI58M85H.cjs.map +0 -1
  821. package/dist/handover/agent-runtime-v2-loopback.md +0 -71
  822. package/dist/handover/claude-design-v2-paste.md +0 -42
  823. package/dist/icons-Drq4kKy2.js.map +0 -1
  824. package/dist/icons-DtdhaZdc.cjs +0 -52
  825. package/dist/icons-DtdhaZdc.cjs.map +0 -1
  826. package/dist/iframe-BkwwWIbQ.cjs +0 -24
  827. package/dist/iframe-BkwwWIbQ.cjs.map +0 -1
  828. package/dist/iframe-BmyHW8km.js.map +0 -1
  829. package/dist/index.es-BgmFX1JM.cjs +0 -1
  830. package/dist/index.es-BgmFX1JM.cjs.map +0 -1
  831. package/dist/index.es-CLyb_o3Y.js +0 -489
  832. package/dist/index.es-CLyb_o3Y.js.map +0 -1
  833. package/dist/input-BGNZlfL8.cjs.map +0 -1
  834. package/dist/input-Bc3bVISm.js.map +0 -1
  835. package/dist/input-chip-BQrjpjaQ.js.map +0 -1
  836. package/dist/input-chip-DN-cwf11.cjs.map +0 -1
  837. package/dist/intersection-BrXp4YTO.js +0 -12
  838. package/dist/intersection-BrXp4YTO.js.map +0 -1
  839. package/dist/intersection-DqBqnpgh.cjs +0 -1
  840. package/dist/intersection-DqBqnpgh.cjs.map +0 -1
  841. package/dist/layout-7eyMBmZk.cjs +0 -17
  842. package/dist/layout-7eyMBmZk.cjs.map +0 -1
  843. package/dist/layout-Ox6nJkzC.js +0 -268
  844. package/dist/layout-Ox6nJkzC.js.map +0 -1
  845. package/dist/lightbox-CY52Z_ig.js.map +0 -1
  846. package/dist/lightbox-H8Uq3AXy.cjs +0 -202
  847. package/dist/lightbox-H8Uq3AXy.cjs.map +0 -1
  848. package/dist/list-BGjVo6zb.cjs +0 -40
  849. package/dist/list-BGjVo6zb.cjs.map +0 -1
  850. package/dist/list-D7wUxu1C.js.map +0 -1
  851. package/dist/litElement.mixin-CszkJuNl.js +0 -12
  852. package/dist/litElement.mixin-CszkJuNl.js.map +0 -1
  853. package/dist/litElement.mixin-qh5-IIUq.cjs +0 -1
  854. package/dist/litElement.mixin-qh5-IIUq.cjs.map +0 -1
  855. package/dist/mailbox--EN-JhjV.js.map +0 -1
  856. package/dist/mailbox-DLiBGJhY.cjs.map +0 -1
  857. package/dist/map-B0S_q3ma.js.map +0 -1
  858. package/dist/map-EDQN0I6e.cjs +0 -80
  859. package/dist/map-EDQN0I6e.cjs.map +0 -1
  860. package/dist/menu-3edZGQ1x.cjs.map +0 -1
  861. package/dist/menu-COeFpb6n.js.map +0 -1
  862. package/dist/metric.cjs +0 -69
  863. package/dist/metric.cjs.map +0 -1
  864. package/dist/metric.js +0 -93
  865. package/dist/metric.js.map +0 -1
  866. package/dist/mixins.cjs.map +0 -1
  867. package/dist/mixins.js.map +0 -1
  868. package/dist/notification-CC-TFN5v.js.map +0 -1
  869. package/dist/notification-P4c-kFdH.cjs +0 -23
  870. package/dist/notification-P4c-kFdH.cjs.map +0 -1
  871. package/dist/option-BwAF4nAw.js.map +0 -1
  872. package/dist/option-Cu0ertuF.cjs +0 -43
  873. package/dist/option-Cu0ertuF.cjs.map +0 -1
  874. package/dist/progress-Bk_Q1Shy.js.map +0 -1
  875. package/dist/progress-Yz6EMNSu.cjs.map +0 -1
  876. package/dist/provide-CYgj58u_.cjs +0 -1
  877. package/dist/provide-CYgj58u_.cjs.map +0 -1
  878. package/dist/provide-ydIskwf2.js +0 -107
  879. package/dist/provide-ydIskwf2.js.map +0 -1
  880. package/dist/radio-group-BcdcjLNC.js.map +0 -1
  881. package/dist/radio-group-BpBz5tRA.cjs +0 -40
  882. package/dist/radio-group-BpBz5tRA.cjs.map +0 -1
  883. package/dist/scroll-DXQv0ejL.js.map +0 -1
  884. package/dist/scroll-DbZMTv0K.cjs +0 -26
  885. package/dist/scroll-DbZMTv0K.cjs.map +0 -1
  886. package/dist/search-CwMav5QB.cjs +0 -1
  887. package/dist/select-BV4lK2zy.cjs.map +0 -1
  888. package/dist/select-DKyGWDsG.js.map +0 -1
  889. package/dist/sheet-BAI_jH1t.cjs +0 -35
  890. package/dist/sheet-BAI_jH1t.cjs.map +0 -1
  891. package/dist/sheet-C3TLKItO.js.map +0 -1
  892. package/dist/sheet.service-RcDBwHmv.cjs +0 -1
  893. package/dist/skills/schmancy/store.md +0 -126
  894. package/dist/skills/store.md +0 -126
  895. package/dist/sound.service-BEN6Xjy_.cjs +0 -1
  896. package/dist/sound.service-BEN6Xjy_.cjs.map +0 -1
  897. package/dist/sound.service-DWZe6swU.js.map +0 -1
  898. package/dist/splash-screen-DbI5RgBf.js.map +0 -1
  899. package/dist/splash-screen-DoHRTHi8.cjs +0 -41
  900. package/dist/splash-screen-DoHRTHi8.cjs.map +0 -1
  901. package/dist/src-00DfxCJq.js.map +0 -1
  902. package/dist/src-C_JjQovE.cjs +0 -269
  903. package/dist/src-C_JjQovE.cjs.map +0 -1
  904. package/dist/store-CjFHCSDb.cjs +0 -1
  905. package/dist/store-CjFHCSDb.cjs.map +0 -1
  906. package/dist/store-CjzZDQt8.js +0 -1654
  907. package/dist/store-CjzZDQt8.js.map +0 -1
  908. package/dist/store.cjs +0 -1
  909. package/dist/store.js +0 -2
  910. package/dist/surface-D-GWBcsh.cjs +0 -7
  911. package/dist/surface-D-GWBcsh.cjs.map +0 -1
  912. package/dist/surface-D23JtxYP.js +0 -22
  913. package/dist/surface-D23JtxYP.js.map +0 -1
  914. package/dist/surface.mixin-DqMwoddO.js +0 -320
  915. package/dist/surface.mixin-DqMwoddO.js.map +0 -1
  916. package/dist/surface.mixin-DxOi-xo0.cjs +0 -297
  917. package/dist/surface.mixin-DxOi-xo0.cjs.map +0 -1
  918. package/dist/table-C7b73kdg.cjs +0 -63
  919. package/dist/table-C7b73kdg.cjs.map +0 -1
  920. package/dist/table-CTrhV9-k.js +0 -631
  921. package/dist/table-CTrhV9-k.js.map +0 -1
  922. package/dist/tabs-Ce55RbwF.js.map +0 -1
  923. package/dist/tabs-DAzB8O7w.cjs +0 -31
  924. package/dist/tabs-DAzB8O7w.cjs.map +0 -1
  925. package/dist/tailwind.mixin-DRI1oTYQ.cjs +0 -2
  926. package/dist/tailwind.mixin-DRI1oTYQ.cjs.map +0 -1
  927. package/dist/tailwind.mixin-mdQR3BEO.js +0 -219
  928. package/dist/tailwind.mixin-mdQR3BEO.js.map +0 -1
  929. package/dist/textarea-DjN1D9u0.js.map +0 -1
  930. package/dist/textarea-PuHxBvJA.cjs +0 -39
  931. package/dist/textarea-PuHxBvJA.cjs.map +0 -1
  932. package/dist/theme-B-IJ2r7Q.cjs +0 -181
  933. package/dist/theme-button-BSbYmS4p.cjs +0 -8
  934. package/dist/theme-button-BSbYmS4p.cjs.map +0 -1
  935. package/dist/theme-button-CEMeAUOL.js.map +0 -1
  936. package/dist/theme.service-DxJPUGlu.cjs +0 -1
  937. package/dist/theme.service-DxJPUGlu.cjs.map +0 -1
  938. package/dist/theme.service-cOfPrtfe.js.map +0 -1
  939. package/dist/tslib.es6-Cnt75pb6.cjs +0 -1
  940. package/dist/tslib.es6-Cnt75pb6.cjs.map +0 -1
  941. package/dist/tslib.es6-DMzzJKHV.js +0 -7
  942. package/dist/tslib.es6-DMzzJKHV.js.map +0 -1
  943. package/dist/utils-Bp2jhyZc.js.map +0 -1
  944. package/dist/utils-CBPQvxNW.cjs +0 -1
  945. package/dist/utils-CBPQvxNW.cjs.map +0 -1
  946. package/dist/window-CrjZdf7Y.js.map +0 -1
  947. package/dist/window-DTUARSrU.cjs +0 -59
  948. package/dist/window-DTUARSrU.cjs.map +0 -1
  949. package/skills/schmancy/store.md +0 -126
  950. package/src/components/form-elements/index.ts +0 -1
  951. package/src/components/index.ts +0 -1
  952. package/src/layout/flex/flex.scss +0 -4
  953. package/src/layout/flex/flex.ts +0 -74
  954. package/src/layout/flex/index.ts +0 -1
  955. package/src/layout/grid/.readme +0 -79
  956. package/src/layout/grid/grid.scss +0 -5
  957. package/src/layout/grid/grid.ts +0 -121
  958. package/src/layout/grid/index.ts +0 -1
  959. package/src/layout/layout.ts +0 -122
  960. package/src/layout/v2/flex.ts +0 -243
  961. package/src/layout/v2/index.ts +0 -1
  962. package/src/metric/index.ts +0 -1
  963. package/src/metric/metric.ts +0 -127
  964. package/src/store/context-array.ts +0 -358
  965. package/src/store/context-collection.ts +0 -218
  966. package/src/store/context-create.ts +0 -284
  967. package/src/store/context-object.ts +0 -298
  968. package/src/store/filter-directive.ts +0 -614
  969. package/src/store/index.ts +0 -10
  970. package/src/store/selector-hook.ts +0 -259
  971. package/src/store/selectors.ts +0 -289
  972. package/src/store/storage-manager.ts +0 -269
  973. package/src/store/store.class.ts +0 -239
  974. package/src/store/types.ts +0 -327
  975. package/src/tabs/tabs-compatibility.ts +0 -20
  976. package/src/typewriter/typewriter.ts +0 -410
  977. package/types/src/area/route.test.d.ts +0 -20
  978. package/types/src/button/button.test.d.ts +0 -1
  979. package/types/src/chips/chip.d.ts +0 -3
  980. package/types/src/components/index.d.ts +0 -1
  981. package/types/src/content-drawer/$sheet.d.ts +0 -14
  982. package/types/src/dialog/dailog.d.ts +0 -116
  983. package/types/src/dialog/dialog-content.d.ts +0 -17
  984. package/types/src/directives/guard.d.ts +0 -1
  985. package/types/src/directives/visibility.d.ts +0 -11
  986. package/types/src/form/form-v2.d.ts +0 -22
  987. package/types/src/input/input-v2.d.ts +0 -250
  988. package/types/src/layout/flex/flex.d.ts +0 -26
  989. package/types/src/layout/flex/index.d.ts +0 -1
  990. package/types/src/layout/grid/grid.d.ts +0 -39
  991. package/types/src/layout/grid/index.d.ts +0 -1
  992. package/types/src/layout/layout.d.ts +0 -59
  993. package/types/src/layout/v2/flex.d.ts +0 -65
  994. package/types/src/layout/v2/grid.d.ts +0 -51
  995. package/types/src/layout/v2/index.d.ts +0 -1
  996. package/types/src/lightbox/flip.directive.d.ts +0 -22
  997. package/types/src/metric/index.d.ts +0 -1
  998. package/types/src/metric/metric.d.ts +0 -39
  999. package/types/src/notification/outlet.d.ts +0 -10
  1000. package/types/src/sheet/header.d.ts +0 -10
  1001. package/types/src/store/context-array.d.ts +0 -83
  1002. package/types/src/store/context-collection.d.ts +0 -74
  1003. package/types/src/store/context-create.d.ts +0 -43
  1004. package/types/src/store/context-object.d.ts +0 -46
  1005. package/types/src/store/filter-directive.d.ts +0 -116
  1006. package/types/src/store/immer-integration.d.ts +0 -54
  1007. package/types/src/store/index.d.ts +0 -10
  1008. package/types/src/store/selector-hook.d.ts +0 -46
  1009. package/types/src/store/selectors.d.ts +0 -90
  1010. package/types/src/store/storage-manager.d.ts +0 -48
  1011. package/types/src/store/store.class.d.ts +0 -73
  1012. package/types/src/store/types.d.ts +0 -241
  1013. package/types/src/tabs/tabs-compatibility.d.ts +0 -13
  1014. package/types/src/theme/theme.elevation.d.ts +0 -131
  1015. package/types/src/theme/theme.motion.d.ts +0 -198
  1016. package/types/src/theme/theme.shape.d.ts +0 -144
  1017. package/types/src/theme/theme.state.d.ts +0 -546
  1018. package/types/src/theme/theme.typography.d.ts +0 -74
  1019. package/types/src/tooltip/tooltip.d.ts +0 -33
  1020. package/types/src/typewriter/typewriter.d.ts +0 -94
  1021. /package/dist/agent/{flow-CvG1fLW5.js → flow-CaPi2G8y.js} +0 -0
  1022. /package/dist/agent/{vendor-material-color-DcL7ZPxx.js → vendor-material-color-Be96dpGE.js} +0 -0
  1023. /package/dist/{animation-hXFClrIn.js → animation-BK-8BwY8.js} +0 -0
  1024. /package/dist/{animation-CQRdLgzX.cjs → animation-CO_Csq84.cjs} +0 -0
  1025. /package/dist/{decorate-D_utPUsC.js → decorate-23nYs4Le.js} +0 -0
  1026. /package/dist/{decorate-F9CuyeHg.cjs → decorate-DpFmy0nm.cjs} +0 -0
  1027. /package/dist/{hashContent-B2IntJQf.js → hashContent-1ARKIsx9.js} +0 -0
  1028. /package/dist/{hashContent-CahnEuut.cjs → hashContent-Bp5S6T4U.cjs} +0 -0
  1029. /package/dist/{lazy-D6R5N5v4.js → lazy-B0ia54tT.js} +0 -0
  1030. /package/dist/{lazy-BDNnH_r7.cjs → lazy-Dq9mRRjT.cjs} +0 -0
  1031. /package/dist/{reduced-motion-BZTLqAyl.js → reduced-motion-D-L12p7G.js} +0 -0
  1032. /package/dist/{reduced-motion-9RjNnhIg.cjs → reduced-motion-Ds-HjMzn.cjs} +0 -0
  1033. /package/dist/{rxjs-utils-DJbZRjp3.cjs → rxjs-utils-Csnks202.cjs} +0 -0
  1034. /package/dist/{rxjs-utils-CKTnEKUH.js → rxjs-utils-d-ivVN84.js} +0 -0
  1035. /package/dist/{theme.events-NuihzD_p.js → theme.events-Cv7N4Toe.js} +0 -0
  1036. /package/dist/{theme.events-DakXxZeP.cjs → theme.events-DM4H5F2d.cjs} +0 -0
  1037. /package/dist/{theme.interface-DTwkuAKJ.cjs → theme.interface-D9l33b-M.cjs} +0 -0
  1038. /package/dist/{theme.interface-Buged9Cg.js → theme.interface-DnVNre4O.js} +0 -0
  1039. /package/src/{directives/typewriter.ts → typewriter/typewriter.directive.ts} +0 -0
  1040. /package/types/src/{components/form-elements → payment-card-form}/index.d.ts +0 -0
  1041. /package/types/src/{directives/typewriter.d.ts → typewriter/typewriter.directive.d.ts} +0 -0
@@ -1,614 +0,0 @@
1
- // src/store/filter-directive.ts
2
-
3
- /** Supported comparison operators with TypeScript literal types */
4
- export type ComparisonOperator =
5
- | '=='
6
- | '!='
7
- | '>'
8
- | '<'
9
- | '>='
10
- | '<='
11
- | 'includes'
12
- | 'notIncludes'
13
- | 'startsWith'
14
- | 'endsWith'
15
- | 'in'
16
- | 'notIn'
17
- | 'any' // fuzzy search operator
18
-
19
- /**
20
- * Type-safe condition tuple
21
- */
22
- export type ConditionTuple = [field: string, op: ComparisonOperator, expected: unknown, strict?: boolean]
23
-
24
- /**
25
- * Type-safe condition object
26
- */
27
- export interface ConditionObject {
28
- key: string | string[] // Array of keys applies OR logic across fields
29
- operator: ComparisonOperator
30
- value: unknown
31
- strict?: boolean
32
- }
33
-
34
- /**
35
- * Unified query condition type
36
- */
37
- export type QueryCondition = ConditionTuple | ConditionObject
38
-
39
- /**
40
- * Filter result with item and score
41
- */
42
- export interface ScoredItem<T> {
43
- item: T
44
- score: number
45
- }
46
-
47
- /**
48
- * Get a nested value from an object using a dot-separated path.
49
- * Checks explicitly for null/undefined so falsy values like 0 or false are preserved.
50
- */
51
- export const getFieldValue = <T = any>(item: Record<string, any>, path: string): T => {
52
- if (!path) return item as unknown as T
53
-
54
- const parts = path.split('.')
55
- let value: any = item
56
-
57
- for (const part of parts) {
58
- if (value == null) return undefined as unknown as T
59
- value = value[part]
60
- }
61
-
62
- return value as T
63
- }
64
-
65
- /**
66
- * Compute the Levenshtein distance between two strings.
67
- */
68
- const levenshtein = (a: string, b: string): number => {
69
- if (a === b) return 0
70
-
71
- const matrix: number[][] = Array(b.length + 1)
72
- .fill(null)
73
- .map((_, i) => [i])
74
-
75
- // initialize the first row
76
- for (let j = 0; j <= a.length; j++) {
77
- matrix[0][j] = j
78
- }
79
-
80
- for (let i = 1; i <= b.length; i++) {
81
- for (let j = 1; j <= a.length; j++) {
82
- if (b.charAt(i - 1) === a.charAt(j - 1)) {
83
- matrix[i][j] = matrix[i - 1][j - 1]
84
- } else {
85
- matrix[i][j] = Math.min(
86
- matrix[i - 1][j] + 1, // deletion
87
- matrix[i][j - 1] + 1, // insertion
88
- matrix[i - 1][j - 1] + 1, // substitution
89
- )
90
- }
91
- }
92
- }
93
- return matrix[b.length][a.length]
94
- }
95
-
96
- /**
97
- * Check if string `sub` is a subsequence of string `str`.
98
- * All characters in `sub` must appear in order in `str` (they need not be contiguous).
99
- */
100
- const isSubsequence = (sub: string, str: string): boolean => {
101
- if (!sub) return true
102
- if (!str) return false
103
-
104
- let i = 0,
105
- j = 0
106
- while (i < sub.length && j < str.length) {
107
- if (sub[i].toLowerCase() === str[j].toLowerCase()) i++
108
- j++
109
- }
110
- return i === sub.length
111
- }
112
-
113
- /**
114
- * Check if every character (with frequency) in the query exists in the target.
115
- * For example, "aovc" matches "avocados".
116
- */
117
- const anagramMatch = (query: string, target: string): boolean => {
118
- if (!query) return true
119
- if (!target) return false
120
-
121
- const countChars = (s: string): Record<string, number> =>
122
- s
123
- .toLowerCase()
124
- .split('')
125
- .reduce(
126
- (acc, char) => {
127
- acc[char] = (acc[char] || 0) + 1
128
- return acc
129
- },
130
- {} as Record<string, number>,
131
- )
132
-
133
- const queryCount = countChars(query)
134
- const targetCount = countChars(target)
135
- return Object.keys(queryCount).every(char => (targetCount[char] || 0) >= queryCount[char])
136
- }
137
-
138
- /**
139
- * Generate bigrams for a string.
140
- */
141
- const getBigrams = (s: string): string[] => {
142
- if (!s || s.length < 2) return []
143
-
144
- const bigrams: string[] = []
145
- for (let i = 0; i < s.length - 1; i++) {
146
- bigrams.push(s.substring(i, i + 2).toLowerCase())
147
- }
148
- return bigrams
149
- }
150
-
151
- /**
152
- * Compute Dice's coefficient for two strings based on bigrams.
153
- * Returns a value between 0 (no similarity) and 1 (perfect match).
154
- */
155
- const diceCoefficient = (s1: string, s2: string): number => {
156
- if (!s1 || !s2 || s1.length < 2 || s2.length < 2) return 0
157
-
158
- const bigrams1 = getBigrams(s1)
159
- const bigrams2 = getBigrams(s2)
160
-
161
- if (bigrams1.length === 0 || bigrams2.length === 0) return 0
162
-
163
- let intersection = 0
164
- const used = new Array(bigrams2.length).fill(false)
165
-
166
- for (const bigram of bigrams1) {
167
- for (let i = 0; i < bigrams2.length; i++) {
168
- if (!used[i] && bigrams2[i] === bigram) {
169
- intersection++
170
- used[i] = true
171
- break
172
- }
173
- }
174
- }
175
-
176
- return (2 * intersection) / (bigrams1.length + bigrams2.length)
177
- }
178
-
179
- /**
180
- * Compute a fuzzy similarity score between two strings.
181
- * The score is computed by taking the maximum of several methods:
182
- * - Direct substring match (score 1)
183
- * - Subsequence check (score 0.8)
184
- * - Anagram subset match (score 0.7)
185
- * - Dice coefficient
186
- * - Normalized Levenshtein similarity
187
- */
188
- const computeFuzzyScore = (actual: string, expected: string): number => {
189
- if (!actual || !expected) return 0
190
-
191
- const a = actual.toLowerCase().trim()
192
- const b = expected.toLowerCase().trim()
193
-
194
- if (a === b) return 1
195
-
196
- const substringScore = a.includes(b) ? 1 : 0
197
- const subsequenceScore = isSubsequence(b, a) ? 0.8 : 0
198
- const anagramScore = anagramMatch(b, a) ? 0.7 : 0
199
- const diceScore = diceCoefficient(a, b)
200
-
201
- const maxLen = Math.max(a.length, b.length)
202
- const levenshteinScore = maxLen ? 1 - levenshtein(a, b) / maxLen : 0
203
-
204
- return Math.max(substringScore, subsequenceScore, anagramScore, diceScore, levenshteinScore)
205
- }
206
-
207
- /**
208
- * Safely coerce value to string if possible, or return empty string
209
- */
210
- const safeString = (value: unknown): string => {
211
- if (value == null) return ''
212
- return String(value)
213
- }
214
-
215
- /**
216
- * Apply a query condition to an item and return score
217
- */
218
- function applyQueryCondition<T extends Record<string, any>>(
219
- item: T,
220
- query: QueryCondition,
221
- fuzzyThreshold: number = 0.3,
222
- ): { valid: boolean; score: number } {
223
- let field: string,
224
- op: ComparisonOperator,
225
- expected: unknown,
226
- strict = false
227
-
228
- if (Array.isArray(query)) {
229
- ;[field, op, expected, strict = false] = query
230
- } else {
231
- // Handle array of keys (OR logic)
232
- if (Array.isArray(query.key)) {
233
- const results = query.key.map(k =>
234
- applyQueryCondition(item, { ...query, key: k }, fuzzyThreshold)
235
- )
236
- // Return best valid result, or invalid if none valid
237
- return results.reduce(
238
- (best, curr) => (curr.valid ? (curr.score > best.score ? curr : best) : best),
239
- { valid: false, score: 0 }
240
- )
241
- }
242
-
243
- field = query.key
244
- op = query.operator
245
- expected = query.value
246
- strict = query.strict || false
247
- }
248
-
249
- // Skip empty filters for non-strict queries
250
- if (!strict && (expected === '' || expected == null || (isArray(expected) && expected.length === 0))) {
251
- return { valid: true, score: 1 }
252
- }
253
-
254
- const actual = getFieldValue(item, field)
255
-
256
- // FIXED: Properly handle strict mode
257
- if (strict) {
258
- // For strict mode, use exact equality comparison for all operators except 'any'
259
- if (op === 'any') {
260
- // Fuzzy search still applies with strict mode
261
- if (typeof actual !== 'string' || typeof expected !== 'string') {
262
- return { valid: false, score: 0 }
263
- }
264
-
265
- const score = computeFuzzyScore(actual, expected)
266
- return {
267
- valid: score >= fuzzyThreshold,
268
- score: score >= fuzzyThreshold ? score : 0,
269
- }
270
- } else {
271
- // For all other operators in strict mode,
272
- // delegate to compareValues function but return precise scores
273
- const matches = compareValues(op, actual, expected)
274
- return {
275
- valid: matches,
276
- score: matches ? 1 : 0,
277
- }
278
- }
279
- } else if (op === 'any') {
280
- // Fuzzy search requires both values to be strings
281
- if (typeof actual !== 'string' || typeof expected !== 'string') {
282
- return { valid: false, score: 0 }
283
- }
284
-
285
- const score = computeFuzzyScore(actual, expected)
286
- if (score < fuzzyThreshold) {
287
- return { valid: false, score: 0 }
288
- }
289
-
290
- return { valid: true, score }
291
- } else {
292
- // For non-fuzzy operators, check condition
293
- const matches = compareValues(op, actual, expected)
294
- return {
295
- valid: matches,
296
- score: matches ? 1 : 0,
297
- }
298
- }
299
- }
300
-
301
- /**
302
- * Filter a Map of items given an array of query conditions.
303
- * For each query condition:
304
- * - If the expected value is empty/null/undefined, it is treated as a match.
305
- * - For non-fuzzy operators, the condition must strictly match.
306
- * - For the "any" operator, a fuzzy similarity score is computed.
307
- * Items with a fuzzy score below a given threshold (e.g., 0.3) are excluded.
308
- *
309
- * The overall item score is the average of the scores from all conditions.
310
- * The results are sorted in descending order of relevance.
311
- *
312
- * @param items - A Map containing items to filter.
313
- * @param queries - An array of query conditions to apply.
314
- * @param fuzzyThreshold - Minimum score required for fuzzy matches (default: 0.3)
315
- * @returns An array of items that match all query conditions, sorted by relevance.
316
- */
317
- export function filterMapItems<T extends Record<string, any>>(
318
- items: Map<string, T>,
319
- queries: QueryCondition[] = [],
320
- fuzzyThreshold: number = 0.3,
321
- ): T[] {
322
- // If no queries, return all items unsorted
323
- if (!queries.length) {
324
- return Array.from(items.values())
325
- }
326
-
327
- // Score and filter each item
328
- const scoredItems: ScoredItem<T>[] = []
329
-
330
- for (const [_, item] of items.entries()) {
331
- let totalScore = 0
332
- let matchCount = 0
333
- let valid = true
334
-
335
- for (const query of queries) {
336
- const result = applyQueryCondition(item, query, fuzzyThreshold)
337
-
338
- if (!result.valid) {
339
- valid = false
340
- break
341
- }
342
-
343
- totalScore += result.score
344
- matchCount++
345
- }
346
-
347
- if (valid) {
348
- scoredItems.push({
349
- item,
350
- score: matchCount > 0 ? totalScore / matchCount : 1,
351
- })
352
- }
353
- }
354
-
355
- // Sort by descending score
356
- scoredItems.sort((a, b) => b.score - a.score)
357
-
358
- return scoredItems.map(x => x.item)
359
- }
360
-
361
- /**
362
- * Filter an array of items using query conditions
363
- */
364
- export function filterArrayItems<T extends Record<string, any>>(
365
- items: T[],
366
- queries: QueryCondition[] = [],
367
- fuzzyThreshold: number = 0.3,
368
- ): T[] {
369
- // Create temporary map with numeric indices as keys
370
- const map = new Map<string, T>()
371
- items.forEach((item, index) => map.set(String(index), item))
372
-
373
- return filterMapItems(map, queries, fuzzyThreshold)
374
- }
375
-
376
- // Improved type guards for filter-directive.ts
377
-
378
- /**
379
- * Type guard for checking if a value is an array with better type inference
380
- * @param value Value to check
381
- * @returns True if the value is an array
382
- */
383
- export function isArray<T = unknown>(value: unknown): value is Array<T> {
384
- return Array.isArray(value)
385
- }
386
-
387
- /**
388
- * Type guard for checking if a value is a string
389
- * @param value Value to check
390
- * @returns True if the value is a string
391
- */
392
- export function isString(value: unknown): value is string {
393
- return typeof value === 'string'
394
- }
395
-
396
- /**
397
- * Type guard for checking if a value is a number
398
- * @param value Value to check
399
- * @returns True if the value is a number and not NaN
400
- */
401
- export function isNumber(value: unknown): value is number {
402
- return typeof value === 'number' && !isNaN(value)
403
- }
404
-
405
- /**
406
- * Type guard for checking if a value is a date
407
- * @param value Value to check
408
- * @returns True if the value is a valid Date object
409
- */
410
- export function isDate(value: unknown): value is Date {
411
- return value instanceof Date && !isNaN(value.getTime())
412
- }
413
-
414
- /**
415
- * Type guard for checking if a value is an iterable collection
416
- * @param value Value to check
417
- * @returns True if the value implements the iterable protocol
418
- */
419
- export function isIterable<T = unknown>(value: unknown): value is Iterable<T> {
420
- // Must be non-null and of type 'object'
421
- if (value == null || typeof value !== 'object') {
422
- return false
423
- }
424
-
425
- // Check for Symbol.iterator method
426
- return Symbol.iterator in Object(value) && typeof (value as any)[Symbol.iterator] === 'function'
427
- }
428
-
429
- /**
430
- * Type guard for checking if a value is a Map
431
- * @param value Value to check
432
- * @returns True if the value is a Map
433
- */
434
- export function isMap<K = unknown, V = unknown>(value: unknown): value is Map<K, V> {
435
- return value instanceof Map
436
- }
437
-
438
- /**
439
- * Type guard for checking if a value is a Set
440
- * @param value Value to check
441
- * @returns True if the value is a Set
442
- */
443
- export function isSet<T = unknown>(value: unknown): value is Set<T> {
444
- return value instanceof Set
445
- }
446
-
447
- /**
448
- * Type guard for checking if a value is a plain object (not an array, Map, etc.)
449
- * @param value Value to check
450
- * @returns True if the value is a plain object
451
- */
452
- export function isPlainObject(value: unknown): value is Record<string, unknown> {
453
- if (value === null || typeof value !== 'object') {
454
- return false
455
- }
456
-
457
- const proto = Object.getPrototypeOf(value)
458
- return proto === Object.prototype || proto === null
459
- }
460
-
461
- /**
462
- * Type guard for checking if a value is undefined or null
463
- * @param value Value to check
464
- * @returns True if the value is undefined or null
465
- */
466
- export function isNil(value: unknown): value is undefined | null {
467
- return value === undefined || value === null
468
- }
469
-
470
- /**
471
- * Improved type-safe comparison function that uses appropriate type guards
472
- * @param op Comparison operator
473
- * @param actual Actual value
474
- * @param expected Expected value
475
- * @returns Result of the comparison
476
- */
477
- export function compareValues(op: ComparisonOperator, actual: unknown, expected: unknown): boolean {
478
- // Handle null/undefined cases
479
- if (isNil(actual) && isNil(expected)) return true
480
- if (isNil(actual) || isNil(expected)) {
481
- // For equality operators, null == null but null != non-null
482
- if (op === '==') return actual === expected
483
- if (op === '!=') return actual !== expected
484
- // Other operators should return false for null/undefined values
485
- return false
486
- }
487
-
488
- switch (op) {
489
- case '==':
490
- return actual === expected
491
- case '!=':
492
- return actual !== expected
493
- case '>':
494
- if (isNumber(actual) && isNumber(expected)) {
495
- return actual > expected
496
- }
497
- if (isDate(actual) && isDate(expected)) {
498
- return actual.getTime() > expected.getTime()
499
- }
500
- if (isString(actual) && isString(expected)) {
501
- return actual.localeCompare(expected) > 0
502
- }
503
- return false
504
- case '<':
505
- if (isNumber(actual) && isNumber(expected)) {
506
- return actual < expected
507
- }
508
- if (isDate(actual) && isDate(expected)) {
509
- return actual.getTime() < expected.getTime()
510
- }
511
- if (isString(actual) && isString(expected)) {
512
- return actual.localeCompare(expected) < 0
513
- }
514
- return false
515
- case '>=':
516
- if (isNumber(actual) && isNumber(expected)) {
517
- return actual >= expected
518
- }
519
- if (isDate(actual) && isDate(expected)) {
520
- return actual.getTime() >= expected.getTime()
521
- }
522
- if (isString(actual) && isString(expected)) {
523
- return actual.localeCompare(expected) >= 0
524
- }
525
- return false
526
- case '<=':
527
- if (isNumber(actual) && isNumber(expected)) {
528
- return actual <= expected
529
- }
530
- if (isDate(actual) && isDate(expected)) {
531
- return actual.getTime() <= expected.getTime()
532
- }
533
- if (isString(actual) && isString(expected)) {
534
- return actual.localeCompare(expected) <= 0
535
- }
536
- return false
537
- case 'includes': {
538
- if (isString(actual)) {
539
- return actual.toLowerCase().includes(safeString(expected).toLowerCase())
540
- }
541
- if (isArray(actual)) {
542
- return actual.includes(expected as any)
543
- }
544
- if (isSet(actual)) {
545
- return actual.has(expected as any)
546
- }
547
- if (isMap(actual)) {
548
- return Array.from(actual.values()).includes(expected as any)
549
- }
550
- return false
551
- }
552
- case 'notIncludes': {
553
- if (isString(actual)) {
554
- return !actual.toLowerCase().includes(safeString(expected).toLowerCase())
555
- }
556
- if (isArray(actual)) {
557
- return !actual.includes(expected as any)
558
- }
559
- if (isSet(actual)) {
560
- return !actual.has(expected as any)
561
- }
562
- if (isMap(actual)) {
563
- return !Array.from(actual.values()).includes(expected as any)
564
- }
565
- return true
566
- }
567
- case 'startsWith': {
568
- if (isString(actual) && isString(expected)) {
569
- return actual.toLowerCase().startsWith(expected.toLowerCase())
570
- }
571
- return false
572
- }
573
- case 'endsWith': {
574
- if (isString(actual) && isString(expected)) {
575
- return actual.toLowerCase().endsWith(expected.toLowerCase())
576
- }
577
- return false
578
- }
579
- case 'in': {
580
- if (isArray(expected)) {
581
- return expected.includes(actual as any)
582
- }
583
- if (isSet(expected)) {
584
- return expected.has(actual as any)
585
- }
586
- if (isMap(expected)) {
587
- return expected.has(actual as any) || Array.from(expected.values()).includes(actual as any)
588
- }
589
- return false
590
- }
591
- case 'notIn': {
592
- if (isArray(expected)) {
593
- return !expected.includes(actual as any)
594
- }
595
- if (isSet(expected)) {
596
- return !expected.has(actual as any)
597
- }
598
- if (isMap(expected)) {
599
- return !expected.has(actual as any) && !Array.from(expected.values()).includes(actual as any)
600
- }
601
- return true
602
- }
603
- default: {
604
- console.warn(`Operator "${op}" is not supported in comparison.`)
605
- return false
606
- }
607
- }
608
- }
609
-
610
- // Export a simpler alias for filterMapItems
611
- export const filterMap = filterMapItems
612
-
613
- // Export an alias for filterArrayItems
614
- export const filterArray = filterArrayItems
@@ -1,10 +0,0 @@
1
- export * from './context-array'
2
- export * from './context-collection'
3
- export * from './context-create'
4
- export * from './context-object'
5
- export * from './filter-directive'
6
- export * from './selector-hook'
7
- export * from './selectors'
8
- export * from './storage-manager'
9
- export * from './store.class'
10
- export * from './types'