@mhmo91/schmancy 0.10.25 → 0.10.27

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 (395) hide show
  1. package/custom-elements.json +9 -18
  2. package/dist/agent/overlay.confirm-body-BZoUgkdK.js +4574 -0
  3. package/dist/agent/overlay.confirm-body-BZoUgkdK.js.map +1 -0
  4. package/dist/agent/schmancy.agent.js +3183 -4976
  5. package/dist/agent/schmancy.agent.js.map +1 -1
  6. package/dist/agent/schmancy.manifest.json +68 -24
  7. package/dist/{area-DrVE5pXW.cjs → area-BSVOYQDA.cjs} +1 -1
  8. package/dist/{area-DrVE5pXW.cjs.map → area-BSVOYQDA.cjs.map} +1 -1
  9. package/dist/{area-1EG1LrkX.js → area-C_Yvjmad.js} +1 -1
  10. package/dist/{area-1EG1LrkX.js.map → area-C_Yvjmad.js.map} +1 -1
  11. package/dist/area.cjs +1 -1
  12. package/dist/area.js +1 -1
  13. package/dist/{autocomplete-6pdZxEab.cjs → autocomplete-B50VXUzw.cjs} +1 -1
  14. package/dist/{autocomplete-6pdZxEab.cjs.map → autocomplete-B50VXUzw.cjs.map} +1 -1
  15. package/dist/{autocomplete-nrIcCilw.js → autocomplete-C6I1mfOT.js} +2 -2
  16. package/dist/{autocomplete-nrIcCilw.js.map → autocomplete-C6I1mfOT.js.map} +1 -1
  17. package/dist/autocomplete.cjs +1 -1
  18. package/dist/autocomplete.js +1 -1
  19. package/dist/avatar.cjs +2 -2
  20. package/dist/avatar.js +3 -3
  21. package/dist/badge.cjs +1 -1
  22. package/dist/badge.js +1 -1
  23. package/dist/{boat--fLgbDAE.js → boat-C94QZ4Zt.js} +27 -21
  24. package/dist/boat-C94QZ4Zt.js.map +1 -0
  25. package/dist/boat-DVQBNkk5.cjs +85 -0
  26. package/dist/boat-DVQBNkk5.cjs.map +1 -0
  27. package/dist/boat.cjs +1 -1
  28. package/dist/boat.js +1 -1
  29. package/dist/breadcrumb.cjs +1 -1
  30. package/dist/breadcrumb.js +1 -1
  31. package/dist/{busy-DshZcVZ4.js → busy--bNb42rM.js} +1 -1
  32. package/dist/{busy-DshZcVZ4.js.map → busy--bNb42rM.js.map} +1 -1
  33. package/dist/{busy-DVCIxBVf.cjs → busy-DuxFvEkY.cjs} +1 -1
  34. package/dist/{busy-DVCIxBVf.cjs.map → busy-DuxFvEkY.cjs.map} +1 -1
  35. package/dist/busy.cjs +1 -1
  36. package/dist/busy.js +1 -1
  37. package/dist/{button-D9UJ7I6Z.js → button-B7b9L_h5.js} +26 -187
  38. package/dist/button-B7b9L_h5.js.map +1 -0
  39. package/dist/{button-JrTMzwHY.cjs → button-DAFZ5A4O.cjs} +2 -60
  40. package/dist/button-DAFZ5A4O.cjs.map +1 -0
  41. package/dist/button.cjs +59 -1
  42. package/dist/button.cjs.map +1 -0
  43. package/dist/button.js +170 -2
  44. package/dist/button.js.map +1 -0
  45. package/dist/{card-CTotavhH.cjs → card-DZPd24Sn.cjs} +1 -1
  46. package/dist/{card-CTotavhH.cjs.map → card-DZPd24Sn.cjs.map} +1 -1
  47. package/dist/{card-BvCFuX3J.js → card-ixzxOW-Q.js} +1 -1
  48. package/dist/{card-BvCFuX3J.js.map → card-ixzxOW-Q.js.map} +1 -1
  49. package/dist/card.cjs +1 -1
  50. package/dist/card.js +1 -1
  51. package/dist/{checkbox-By4fFmjt.cjs → checkbox-Bi_Fm2mf.cjs} +1 -1
  52. package/dist/{checkbox-By4fFmjt.cjs.map → checkbox-Bi_Fm2mf.cjs.map} +1 -1
  53. package/dist/{checkbox-GPsdCUbs.js → checkbox-DdGpepTh.js} +1 -1
  54. package/dist/{checkbox-GPsdCUbs.js.map → checkbox-DdGpepTh.js.map} +1 -1
  55. package/dist/checkbox.cjs +1 -1
  56. package/dist/checkbox.js +1 -1
  57. package/dist/{chips-27umqnat.js → chips-DLTynyVB.js} +3 -3
  58. package/dist/{chips-27umqnat.js.map → chips-DLTynyVB.js.map} +1 -1
  59. package/dist/{chips-BZf9sGA8.cjs → chips-DWQMZErr.cjs} +1 -1
  60. package/dist/{chips-BZf9sGA8.cjs.map → chips-DWQMZErr.cjs.map} +1 -1
  61. package/dist/chips.cjs +1 -1
  62. package/dist/chips.js +2 -2
  63. package/dist/connectivity.cjs +1 -1
  64. package/dist/connectivity.js +1 -1
  65. package/dist/content-drawer.cjs +1 -1
  66. package/dist/content-drawer.js +1 -1
  67. package/dist/{date-range-BJnLWCRF.cjs → date-range-BgGQyxOC.cjs} +1 -1
  68. package/dist/{date-range-BJnLWCRF.cjs.map → date-range-BgGQyxOC.cjs.map} +1 -1
  69. package/dist/{date-range-wDVHcr0u.js → date-range-CT6ckjmV.js} +2 -2
  70. package/dist/{date-range-wDVHcr0u.js.map → date-range-CT6ckjmV.js.map} +1 -1
  71. package/dist/{date-range-inline-BNbbRfIA.js → date-range-inline-Ho3CENTh.js} +1 -1
  72. package/dist/{date-range-inline-BNbbRfIA.js.map → date-range-inline-Ho3CENTh.js.map} +1 -1
  73. package/dist/{date-range-inline-B6uKUliV.cjs → date-range-inline-nPWIs-3C.cjs} +1 -1
  74. package/dist/{date-range-inline-B6uKUliV.cjs.map → date-range-inline-nPWIs-3C.cjs.map} +1 -1
  75. package/dist/date-range-inline.cjs +1 -1
  76. package/dist/date-range-inline.js +1 -1
  77. package/dist/date-range.cjs +1 -1
  78. package/dist/date-range.js +1 -1
  79. package/dist/delay.cjs +1 -1
  80. package/dist/delay.js +2 -2
  81. package/dist/{details-DNrWIes6.cjs → details-BnRWMZdt.cjs} +1 -1
  82. package/dist/{details-DNrWIes6.cjs.map → details-BnRWMZdt.cjs.map} +1 -1
  83. package/dist/{details-Ckxpwacj.js → details-CcMTvYo7.js} +2 -2
  84. package/dist/{details-Ckxpwacj.js.map → details-CcMTvYo7.js.map} +1 -1
  85. package/dist/details.cjs +1 -1
  86. package/dist/details.js +1 -1
  87. package/dist/{directives-F15SJZUR.cjs → directives-BkSqmLBV.cjs} +22 -20
  88. package/dist/directives-BkSqmLBV.cjs.map +1 -0
  89. package/dist/{directives-BBMqe8x3.js → directives-DgPbz0lQ.js} +142 -198
  90. package/dist/directives-DgPbz0lQ.js.map +1 -0
  91. package/dist/directives.cjs +1 -1
  92. package/dist/directives.js +7 -6
  93. package/dist/discovery.cjs +1 -1
  94. package/dist/discovery.js +1 -1
  95. package/dist/{discovery.service-CVDXO9rH.cjs.map → discovery.service-CIa3Eeuk.cjs.map} +1 -1
  96. package/dist/{discovery.service-COmbHaoI.js.map → discovery.service-DZFxtRwW.js.map} +1 -1
  97. package/dist/{divider-Cde33ivs.cjs → divider-C6yJSL1c.cjs} +1 -1
  98. package/dist/{divider-Cde33ivs.cjs.map → divider-C6yJSL1c.cjs.map} +1 -1
  99. package/dist/{divider-BzcZGo4S.js → divider-CZCj0ioH.js} +1 -1
  100. package/dist/{divider-BzcZGo4S.js.map → divider-CZCj0ioH.js.map} +1 -1
  101. package/dist/divider.cjs +1 -1
  102. package/dist/divider.js +1 -1
  103. package/dist/dropdown.cjs +1 -1
  104. package/dist/dropdown.js +1 -1
  105. package/dist/{expand-DI144OzN.js → expand-Cc6ogXsR.js} +2 -2
  106. package/dist/{expand-DI144OzN.js.map → expand-Cc6ogXsR.js.map} +1 -1
  107. package/dist/{expand-Db4V0jj-.cjs → expand-D4EhwOYh.cjs} +1 -1
  108. package/dist/{expand-Db4V0jj-.cjs.map → expand-D4EhwOYh.cjs.map} +1 -1
  109. package/dist/expand.cjs +1 -1
  110. package/dist/expand.js +1 -1
  111. package/dist/{float--RScf9BZ.cjs → float-B8EPc_OG.cjs} +1 -1
  112. package/dist/{float--RScf9BZ.cjs.map → float-B8EPc_OG.cjs.map} +1 -1
  113. package/dist/{float-DIyzy1c2.js → float-BvI3HTtB.js} +1 -1
  114. package/dist/{float-DIyzy1c2.js.map → float-BvI3HTtB.js.map} +1 -1
  115. package/dist/float.cjs +1 -1
  116. package/dist/float.js +1 -1
  117. package/dist/form-C4eFgFwF.cjs +42 -0
  118. package/dist/{form-DWNpOsIU.cjs.map → form-C4eFgFwF.cjs.map} +1 -1
  119. package/dist/{form-RtXH8UHQ.js → form-CGe9rVox.js} +8 -8
  120. package/dist/{form-RtXH8UHQ.js.map → form-CGe9rVox.js.map} +1 -1
  121. package/dist/form.cjs +1 -1
  122. package/dist/form.js +6 -6
  123. package/dist/gravity-6pL6CfIr.cjs +1 -0
  124. package/dist/gravity-6pL6CfIr.cjs.map +1 -0
  125. package/dist/gravity-sVK3zGBF.js +46 -0
  126. package/dist/gravity-sVK3zGBF.js.map +1 -0
  127. package/dist/handover/agent-runtime-followups.md +1 -1
  128. package/dist/handover/agent-runtime-v1.md +3 -3
  129. package/dist/{hashContent-Dgmzc32o.js.map → hashContent-BqU6v1Xr.js.map} +1 -1
  130. package/dist/{hashContent-Dh1VzIAb.cjs.map → hashContent-iRZJJWtE.cjs.map} +1 -1
  131. package/dist/{icons-DXanGDZ_.js → icon-B1eZr2ZL.js} +1 -1
  132. package/dist/icon-B1eZr2ZL.js.map +1 -0
  133. package/dist/{icons-bNxlWLlk.cjs → icon-CgIXAvKI.cjs} +1 -1
  134. package/dist/{icons-DXanGDZ_.js.map → icon-CgIXAvKI.cjs.map} +1 -1
  135. package/dist/icons.cjs +1 -1
  136. package/dist/icons.js +1 -1
  137. package/dist/{iframe-B1XWRaLC.cjs → iframe-BO3BpRLH.cjs} +1 -1
  138. package/dist/{iframe-B1XWRaLC.cjs.map → iframe-BO3BpRLH.cjs.map} +1 -1
  139. package/dist/{iframe-BlHK0cjy.js → iframe-CmpAZc61.js} +1 -1
  140. package/dist/{iframe-BlHK0cjy.js.map → iframe-CmpAZc61.js.map} +1 -1
  141. package/dist/iframe.cjs +1 -1
  142. package/dist/iframe.js +1 -1
  143. package/dist/index.cjs +1 -1
  144. package/dist/index.js +49 -47
  145. package/dist/{input-C-_XU9AX.cjs → input-5YL2oUBr.cjs} +1 -1
  146. package/dist/{input-C-_XU9AX.cjs.map → input-5YL2oUBr.cjs.map} +1 -1
  147. package/dist/{input-CiGa8Dkl.js → input-_Hft9vov.js} +1 -1
  148. package/dist/{input-CiGa8Dkl.js.map → input-_Hft9vov.js.map} +1 -1
  149. package/dist/{input-chip-l--zCMGR.js → input-chip-BNTojQT6.js} +1 -1
  150. package/dist/{input-chip-l--zCMGR.js.map → input-chip-BNTojQT6.js.map} +1 -1
  151. package/dist/{input-chip-5aYnuRZ_.cjs → input-chip-DKMNpcED.cjs} +1 -1
  152. package/dist/{input-chip-5aYnuRZ_.cjs.map → input-chip-DKMNpcED.cjs.map} +1 -1
  153. package/dist/input.cjs +1 -1
  154. package/dist/input.js +1 -1
  155. package/dist/json.cjs +1 -1
  156. package/dist/json.js +2 -2
  157. package/dist/kbd.cjs +1 -1
  158. package/dist/kbd.js +1 -1
  159. package/dist/layout.cjs +1 -1
  160. package/dist/layout.js +1 -1
  161. package/dist/{lightbox-D9oiu1Nv.js → lightbox-CKlYcnHV.js} +1 -1
  162. package/dist/{lightbox-D9oiu1Nv.js.map → lightbox-CKlYcnHV.js.map} +1 -1
  163. package/dist/{lightbox-CfRDkeeb.cjs → lightbox-t4dvb8_A.cjs} +1 -1
  164. package/dist/{lightbox-CfRDkeeb.cjs.map → lightbox-t4dvb8_A.cjs.map} +1 -1
  165. package/dist/lightbox.cjs +1 -1
  166. package/dist/lightbox.js +1 -1
  167. package/dist/{list-CDJi3_Ut.cjs → list-21mWtDKg.cjs} +4 -4
  168. package/dist/list-21mWtDKg.cjs.map +1 -0
  169. package/dist/{list-BOlRka4v.js → list-B6QhxgRJ.js} +4 -7
  170. package/dist/list-B6QhxgRJ.js.map +1 -0
  171. package/dist/list.cjs +1 -1
  172. package/dist/list.js +1 -1
  173. package/dist/{magnetic-mHXl54Z8.js.map → magnetic-B2VKNfDu.js.map} +1 -1
  174. package/dist/{magnetic-D-ph029G.cjs.map → magnetic-MQ3HMHJi.cjs.map} +1 -1
  175. package/dist/{menu-XyrLmCi_.js → menu-CjOgPSOG.js} +2 -2
  176. package/dist/{menu-XyrLmCi_.js.map → menu-CjOgPSOG.js.map} +1 -1
  177. package/dist/{menu-CJaDL2cd.cjs → menu-Cu5G4vcR.cjs} +1 -1
  178. package/dist/{menu-CJaDL2cd.cjs.map → menu-Cu5G4vcR.cjs.map} +1 -1
  179. package/dist/menu.cjs +1 -1
  180. package/dist/menu.js +1 -1
  181. package/dist/mixins-8dT5j6CS.js +627 -0
  182. package/dist/mixins-8dT5j6CS.js.map +1 -0
  183. package/dist/mixins-BF3Vj8_c.cjs +242 -0
  184. package/dist/mixins-BF3Vj8_c.cjs.map +1 -0
  185. package/dist/mixins.cjs +1 -1
  186. package/dist/mixins.js +1 -1
  187. package/dist/nav-drawer.cjs +1 -1
  188. package/dist/nav-drawer.js +1 -1
  189. package/dist/navigation-bar.cjs +1 -1
  190. package/dist/navigation-bar.js +1 -1
  191. package/dist/navigation-rail.cjs +7 -5
  192. package/dist/navigation-rail.cjs.map +1 -1
  193. package/dist/navigation-rail.js +52 -38
  194. package/dist/navigation-rail.js.map +1 -1
  195. package/dist/notification-CDKBKh63.js +243 -0
  196. package/dist/notification-CDKBKh63.js.map +1 -0
  197. package/dist/notification-CcNoBFEJ.cjs +24 -0
  198. package/dist/notification-CcNoBFEJ.cjs.map +1 -0
  199. package/dist/notification.cjs +1 -1
  200. package/dist/notification.js +1 -1
  201. package/dist/{option-Vpy4UQ-D.js → option-BWfmDJvm.js} +1 -1
  202. package/dist/{option-Vpy4UQ-D.js.map → option-BWfmDJvm.js.map} +1 -1
  203. package/dist/{option-nRk4MuXH.cjs → option-DejeqOad.cjs} +1 -1
  204. package/dist/{option-nRk4MuXH.cjs.map → option-DejeqOad.cjs.map} +1 -1
  205. package/dist/option.cjs +1 -1
  206. package/dist/option.js +1 -1
  207. package/dist/{overlay-jlkcrt8F.js → overlay-D3c_NY18.js} +214 -265
  208. package/dist/overlay-D3c_NY18.js.map +1 -0
  209. package/dist/overlay-Dv2utO4C.cjs +43 -0
  210. package/dist/overlay-Dv2utO4C.cjs.map +1 -0
  211. package/dist/overlay.cjs +1 -1
  212. package/dist/overlay.confirm-body-B2ntyquG.cjs +79 -0
  213. package/dist/overlay.confirm-body-B2ntyquG.cjs.map +1 -0
  214. package/dist/overlay.confirm-body-B_v0ivkn.js +159 -0
  215. package/dist/overlay.confirm-body-B_v0ivkn.js.map +1 -0
  216. package/dist/overlay.js +3 -3
  217. package/dist/overlay.service-B3FjXCqc.js +143 -0
  218. package/dist/overlay.service-B3FjXCqc.js.map +1 -0
  219. package/dist/overlay.service-BkSeqXIv.cjs +1 -0
  220. package/dist/overlay.service-BkSeqXIv.cjs.map +1 -0
  221. package/dist/{progress-CAp_4jtq.cjs → progress-6_rb3Ah9.cjs} +1 -1
  222. package/dist/{progress-CAp_4jtq.cjs.map → progress-6_rb3Ah9.cjs.map} +1 -1
  223. package/dist/{progress-8Bn88GK_.js → progress-CFcmO0wv.js} +1 -1
  224. package/dist/{progress-8Bn88GK_.js.map → progress-CFcmO0wv.js.map} +1 -1
  225. package/dist/progress.cjs +1 -1
  226. package/dist/progress.js +1 -1
  227. package/dist/{radio-group-GNHA7qJR.js → radio-group-Bd8y9QpX.js} +1 -1
  228. package/dist/{radio-group-GNHA7qJR.js.map → radio-group-Bd8y9QpX.js.map} +1 -1
  229. package/dist/{radio-group-CN44mAoc.cjs → radio-group-_WZg8EKM.cjs} +1 -1
  230. package/dist/{radio-group-CN44mAoc.cjs.map → radio-group-_WZg8EKM.cjs.map} +1 -1
  231. package/dist/radio-group.cjs +1 -1
  232. package/dist/radio-group.js +1 -1
  233. package/dist/range.cjs +1 -1
  234. package/dist/range.js +1 -1
  235. package/dist/{rxjs-utils-CaC-tdot.cjs.map → rxjs-utils-Csnks202.cjs.map} +1 -1
  236. package/dist/{rxjs-utils-BXpvHN4-.js.map → rxjs-utils-d-ivVN84.js.map} +1 -1
  237. package/dist/rxjs-utils.cjs +1 -1
  238. package/dist/rxjs-utils.js +1 -1
  239. package/dist/{select-DZNns5Pa.cjs → select-BaioT3yY.cjs} +2 -2
  240. package/dist/{select-DZNns5Pa.cjs.map → select-BaioT3yY.cjs.map} +1 -1
  241. package/dist/{select-BnuXRHS4.js → select-Czpl1ztD.js} +3 -3
  242. package/dist/{select-BnuXRHS4.js.map → select-Czpl1ztD.js.map} +1 -1
  243. package/dist/select.cjs +1 -1
  244. package/dist/select.js +1 -1
  245. package/dist/skeleton.cjs +1 -1
  246. package/dist/skeleton.js +1 -1
  247. package/dist/skills/SKILL.md +1 -1
  248. package/dist/skills/list.md +0 -1
  249. package/dist/skills/schmancy/SKILL.md +1 -1
  250. package/dist/skills/schmancy/list.md +0 -1
  251. package/dist/slider.cjs +1 -1
  252. package/dist/slider.js +1 -1
  253. package/dist/{splash-screen-DeoPRrOu.cjs → splash-screen-3FtgdVy3.cjs} +1 -1
  254. package/dist/{splash-screen-DeoPRrOu.cjs.map → splash-screen-3FtgdVy3.cjs.map} +1 -1
  255. package/dist/{splash-screen-CUP_elaT.js → splash-screen-YtTVkJg8.js} +1 -1
  256. package/dist/{splash-screen-CUP_elaT.js.map → splash-screen-YtTVkJg8.js.map} +1 -1
  257. package/dist/splash-screen.cjs +1 -1
  258. package/dist/splash-screen.js +1 -1
  259. package/dist/{src-DQ4wr0qq.cjs → src-0LIdvAX6.cjs} +8 -8
  260. package/dist/{src-DQ4wr0qq.cjs.map → src-0LIdvAX6.cjs.map} +1 -1
  261. package/dist/{src-B1VkLX3l.js → src-BJHws7IS.js} +37 -37
  262. package/dist/{src-B1VkLX3l.js.map → src-BJHws7IS.js.map} +1 -1
  263. package/dist/steps.cjs +1 -1
  264. package/dist/steps.js +1 -1
  265. package/dist/{surface-LkaZQXZn.cjs → surface-BNvxLEDN.cjs} +1 -1
  266. package/dist/surface-BNvxLEDN.cjs.map +1 -0
  267. package/dist/{surface-hOvkrjGN.js → surface-CVxyQPln.js} +1 -1
  268. package/dist/surface-CVxyQPln.js.map +1 -0
  269. package/dist/surface.cjs +1 -1
  270. package/dist/surface.js +1 -1
  271. package/dist/switch.cjs +1 -1
  272. package/dist/switch.js +1 -1
  273. package/dist/table.cjs +1 -1
  274. package/dist/table.js +1 -1
  275. package/dist/{tabs-CfwIHhHo.js → tabs-CnPXvZuZ.js} +1 -1
  276. package/dist/{tabs-CfwIHhHo.js.map → tabs-CnPXvZuZ.js.map} +1 -1
  277. package/dist/{tabs-bplzstz6.cjs → tabs-DTU7748z.cjs} +1 -1
  278. package/dist/{tabs-bplzstz6.cjs.map → tabs-DTU7748z.cjs.map} +1 -1
  279. package/dist/tabs.cjs +1 -1
  280. package/dist/tabs.js +1 -1
  281. package/dist/teleport.cjs +1 -1
  282. package/dist/teleport.js +1 -1
  283. package/dist/{textarea-hrDp5gQq.cjs → textarea-Bqth6Q8P.cjs} +1 -1
  284. package/dist/{textarea-hrDp5gQq.cjs.map → textarea-Bqth6Q8P.cjs.map} +1 -1
  285. package/dist/{textarea-C1A5xuw9.js → textarea-mQPsppmd.js} +1 -1
  286. package/dist/{textarea-C1A5xuw9.js.map → textarea-mQPsppmd.js.map} +1 -1
  287. package/dist/textarea.cjs +1 -1
  288. package/dist/textarea.js +1 -1
  289. package/dist/{theme-BniFOMEo.js → theme-BJqpv4cG.js} +2 -2
  290. package/dist/{theme-BniFOMEo.js.map → theme-BJqpv4cG.js.map} +1 -1
  291. package/dist/{theme-DmR6PKV8.cjs → theme-D4HGKt7N.cjs} +1 -1
  292. package/dist/{theme-DmR6PKV8.cjs.map → theme-D4HGKt7N.cjs.map} +1 -1
  293. package/dist/{theme-button--ruZIb0T.js → theme-button-Jap7G_IH.js} +1 -1
  294. package/dist/{theme-button--ruZIb0T.js.map → theme-button-Jap7G_IH.js.map} +1 -1
  295. package/dist/{theme-button-a0LgZ7hQ.cjs → theme-button-LP-Dgr17.cjs} +1 -1
  296. package/dist/{theme-button-a0LgZ7hQ.cjs.map → theme-button-LP-Dgr17.cjs.map} +1 -1
  297. package/dist/theme-button.cjs +1 -1
  298. package/dist/theme-button.js +1 -1
  299. package/dist/theme.cjs +1 -1
  300. package/dist/{theme.interface-B5xjEk74.cjs.map → theme.interface-CSt7JUBD.cjs.map} +1 -1
  301. package/dist/{theme.interface-DVEw3s8m.js.map → theme.interface-odQEpZZH.js.map} +1 -1
  302. package/dist/theme.js +3 -3
  303. package/dist/tree.cjs +1 -1
  304. package/dist/tree.js +1 -1
  305. package/dist/typography-BJMm6b0b.js +358 -0
  306. package/dist/typography-BJMm6b0b.js.map +1 -0
  307. package/dist/typography-Bc4MmSal.cjs +282 -0
  308. package/dist/typography-Bc4MmSal.cjs.map +1 -0
  309. package/dist/typography.cjs +1 -282
  310. package/dist/typography.js +2 -358
  311. package/dist/{utils-CVWUrECT.cjs.map → utils-DTa3QHxk.cjs.map} +1 -1
  312. package/dist/{utils-578eFTx4.js.map → utils-H8wNknWC.js.map} +1 -1
  313. package/dist/utils.cjs +1 -1
  314. package/dist/utils.js +1 -1
  315. package/dist/visually-hidden.cjs +1 -1
  316. package/dist/visually-hidden.js +1 -1
  317. package/dist/{window-Bp7zWZpu.cjs → window-CNu_WnsY.cjs} +1 -1
  318. package/dist/{window-Bp7zWZpu.cjs.map → window-CNu_WnsY.cjs.map} +1 -1
  319. package/dist/{window-BT9JecWy.js → window-DZTjkE24.js} +1 -1
  320. package/dist/{window-BT9JecWy.js.map → window-DZTjkE24.js.map} +1 -1
  321. package/dist/window.cjs +1 -1
  322. package/dist/window.js +1 -1
  323. package/package.json +1 -1
  324. package/skills/schmancy/SKILL.md +1 -1
  325. package/skills/schmancy/list.md +0 -1
  326. package/src/boat/boat.ts +33 -23
  327. package/src/directives/nebula.ts +64 -61
  328. package/src/list/list.ts +1 -12
  329. package/src/navigation-rail/navigation-rail.ts +558 -490
  330. package/src/notification/notification-service.ts +81 -263
  331. package/src/notification/notification.scss +93 -50
  332. package/src/notification/notification.ts +32 -69
  333. package/src/overlay/overlay.component.ts +99 -158
  334. package/src/overlay/overlay.confirm-body.ts +106 -61
  335. package/src/overlay/overlay.service.ts +81 -108
  336. package/src/surface/surface.styles.ts +0 -17
  337. package/src/surface/surface.ts +5 -7
  338. package/types/mixins/surface.mixin.d.ts +0 -3
  339. package/types/src/directives/nebula.d.ts +1 -1
  340. package/types/src/list/list.d.ts +0 -9
  341. package/types/src/navigation-rail/navigation-rail.d.ts +21 -1
  342. package/types/src/notification/notification-service.d.ts +3 -86
  343. package/types/src/notification/notification.d.ts +1 -1
  344. package/types/src/overlay/overlay.component.d.ts +1 -2
  345. package/types/src/overlay/overlay.confirm-body.d.ts +8 -4
  346. package/types/src/surface/surface.d.ts +5 -6
  347. package/types/src/surface/surface.styles.d.ts +0 -4
  348. package/dist/agent/overlay.confirm-body-DozUyDYx.js +0 -2859
  349. package/dist/agent/overlay.confirm-body-DozUyDYx.js.map +0 -1
  350. package/dist/boat--fLgbDAE.js.map +0 -1
  351. package/dist/boat-BIB-gPqy.cjs +0 -80
  352. package/dist/boat-BIB-gPqy.cjs.map +0 -1
  353. package/dist/button-D9UJ7I6Z.js.map +0 -1
  354. package/dist/button-JrTMzwHY.cjs.map +0 -1
  355. package/dist/directives-BBMqe8x3.js.map +0 -1
  356. package/dist/directives-F15SJZUR.cjs.map +0 -1
  357. package/dist/form-DWNpOsIU.cjs +0 -42
  358. package/dist/icons-bNxlWLlk.cjs.map +0 -1
  359. package/dist/list-BOlRka4v.js.map +0 -1
  360. package/dist/list-CDJi3_Ut.cjs.map +0 -1
  361. package/dist/mixins-CsYsIJOI.cjs +0 -254
  362. package/dist/mixins-CsYsIJOI.cjs.map +0 -1
  363. package/dist/mixins-DySzfmal.js +0 -642
  364. package/dist/mixins-DySzfmal.js.map +0 -1
  365. package/dist/notification-CHrEY4u8.js +0 -306
  366. package/dist/notification-CHrEY4u8.js.map +0 -1
  367. package/dist/notification-DKp4tjaB.cjs +0 -23
  368. package/dist/notification-DKp4tjaB.cjs.map +0 -1
  369. package/dist/overlay-HNrWZ4sB.cjs +0 -81
  370. package/dist/overlay-HNrWZ4sB.cjs.map +0 -1
  371. package/dist/overlay-jlkcrt8F.js.map +0 -1
  372. package/dist/overlay.confirm-body-B8dFI3cj.cjs +0 -45
  373. package/dist/overlay.confirm-body-B8dFI3cj.cjs.map +0 -1
  374. package/dist/overlay.confirm-body-CYShkjI6.js +0 -100
  375. package/dist/overlay.confirm-body-CYShkjI6.js.map +0 -1
  376. package/dist/overlay.service-BTPn7Uv7.cjs +0 -1
  377. package/dist/overlay.service-BTPn7Uv7.cjs.map +0 -1
  378. package/dist/overlay.service-BqhhxVJp.js +0 -146
  379. package/dist/overlay.service-BqhhxVJp.js.map +0 -1
  380. package/dist/surface-LkaZQXZn.cjs.map +0 -1
  381. package/dist/surface-hOvkrjGN.js.map +0 -1
  382. package/dist/typography.cjs.map +0 -1
  383. package/dist/typography.js.map +0 -1
  384. /package/dist/{discovery.service-CVDXO9rH.cjs → discovery.service-CIa3Eeuk.cjs} +0 -0
  385. /package/dist/{discovery.service-COmbHaoI.js → discovery.service-DZFxtRwW.js} +0 -0
  386. /package/dist/{hashContent-Dgmzc32o.js → hashContent-BqU6v1Xr.js} +0 -0
  387. /package/dist/{hashContent-Dh1VzIAb.cjs → hashContent-iRZJJWtE.cjs} +0 -0
  388. /package/dist/{magnetic-mHXl54Z8.js → magnetic-B2VKNfDu.js} +0 -0
  389. /package/dist/{magnetic-D-ph029G.cjs → magnetic-MQ3HMHJi.cjs} +0 -0
  390. /package/dist/{rxjs-utils-CaC-tdot.cjs → rxjs-utils-Csnks202.cjs} +0 -0
  391. /package/dist/{rxjs-utils-BXpvHN4-.js → rxjs-utils-d-ivVN84.js} +0 -0
  392. /package/dist/{theme.interface-B5xjEk74.cjs → theme.interface-CSt7JUBD.cjs} +0 -0
  393. /package/dist/{theme.interface-DVEw3s8m.js → theme.interface-odQEpZZH.js} +0 -0
  394. /package/dist/{utils-CVWUrECT.cjs → utils-DTa3QHxk.cjs} +0 -0
  395. /package/dist/{utils-578eFTx4.js → utils-H8wNknWC.js} +0 -0
package/src/boat/boat.ts CHANGED
@@ -10,7 +10,7 @@ import { SPRING_SMOOTH, SPRING_SNAPPY } from '../utils/animation.js'
10
10
  import { reducedMotion$ } from '../directives/reduced-motion'
11
11
  import { theme } from '../theme/theme.service.js'
12
12
 
13
- const FAB_HEIGHT = 44
13
+ const FAB_HEIGHT = 36
14
14
  const DRAG_THRESHOLD = 5
15
15
  const POSITION_STORAGE_KEY_PREFIX = 'schmancy-boat-'
16
16
 
@@ -89,12 +89,12 @@ export default class SchmancyBoat extends SchmancyElement {
89
89
 
90
90
  private get closedClipPath(): string {
91
91
  return this.isBottomCorner
92
- ? `inset(calc(100% - ${FAB_HEIGHT}px) 0px 0px 0px round 22px)`
93
- : `inset(0px 0px calc(100% - ${FAB_HEIGHT}px) 0px round 22px)`
92
+ ? `inset(calc(100% - ${FAB_HEIGHT}px) 0px 0px 0px round 10px)`
93
+ : `inset(0px 0px calc(100% - ${FAB_HEIGHT}px) 0px round 10px)`
94
94
  }
95
95
 
96
96
  private get openClipPath(): string {
97
- return 'inset(0px 0px 0px 0px round 12px)'
97
+ return 'inset(0px 0px 0px 0px round 4px)'
98
98
  }
99
99
 
100
100
  private get elevation(): 0 | 1 | 2 | 3 | 4 | 5 {
@@ -415,7 +415,7 @@ export default class SchmancyBoat extends SchmancyElement {
415
415
  container.style.overflow = 'hidden'
416
416
 
417
417
  const openKeyframes: Keyframe[] = [
418
- { clipPath: this.closedClipPath, opacity: 0.95 },
418
+ { clipPath: this.closedClipPath, opacity: 0.85 },
419
419
  { clipPath: this.openClipPath, opacity: 1 },
420
420
  ]
421
421
  const anim = container.animate(openKeyframes, {
@@ -459,7 +459,7 @@ export default class SchmancyBoat extends SchmancyElement {
459
459
 
460
460
  const closeKeyframes: Keyframe[] = [
461
461
  { clipPath: this.openClipPath, opacity: 1 },
462
- { clipPath: this.closedClipPath, opacity: 0.95 },
462
+ { clipPath: this.closedClipPath, opacity: 0.85 },
463
463
  ]
464
464
  const anim = container.animate(closeKeyframes, {
465
465
  duration: Math.round(SPRING_SNAPPY.duration * 0.9),
@@ -527,10 +527,13 @@ export default class SchmancyBoat extends SchmancyElement {
527
527
  'flex-col-reverse': !isBottom,
528
528
  'will-change-[clip-path]': true,
529
529
  'z-1000': true,
530
- 'rounded-2xl': this.open,
531
- 'rounded-[22px]': !this.open,
530
+ // open: 4px radius (instrument-sharp); closed: 10px (status-bar pill)
531
+ 'rounded': this.open,
532
+ 'rounded-lg': !this.open,
532
533
  'overflow-hidden': true,
533
- 'opacity-95': this.isDragging,
534
+ // micro-scale + reduced opacity signals lift during drag
535
+ 'opacity-85': this.isDragging,
536
+ 'scale-95': this.isDragging,
534
537
  })
535
538
 
536
539
  const containerStyles = styleMap({
@@ -584,32 +587,39 @@ export default class SchmancyBoat extends SchmancyElement {
584
587
  </schmancy-surface>
585
588
  </section>
586
589
 
587
- <!-- Gradient separator between header and content — only when open -->
588
- ${when(
589
- this.open,
590
- () =>
591
- html`<div
592
- class="h-px shrink-0 bg-linear-to-r from-transparent via-primary-default/30 to-transparent"
593
- ></div>`,
594
- )}
595
-
596
590
  <!-- Header / FAB section — always interactive, always visible -->
597
591
  <section
598
- class="shrink-0 bg-surface-containerLowest"
592
+ class="shrink-0 bg-surface-containerLowest relative"
599
593
  style=${styleMap({ 'pointer-events': 'auto', height: `${FAB_HEIGHT}px` })}
600
594
  >
595
+ <!-- 1px top inner highlight — reads as a lit edge when open, instrument-panel HUD accent -->
596
+ ${when(
597
+ this.open,
598
+ () => html`<div
599
+ class="absolute inset-x-0 top-0 h-px bg-linear-to-r from-transparent via-primary-default/40 to-transparent pointer-events-none"
600
+ ></div>`,
601
+ )}
601
602
  <div
602
603
  ${ref(this._headerRef)}
603
604
  class=${headerClasses}
604
605
  title="Drag to move"
605
606
  aria-label="Drag to reposition panel"
606
607
  >
608
+ <!-- Grip indicator: only visible when collapsed, signals "this is a handle" -->
609
+ ${when(
610
+ !this.open,
611
+ () => html`<div
612
+ class="absolute left-1/2 top-1/2 -translate-x-1/2 -translate-y-1/2 w-6 h-0.5 rounded-full bg-on-surface/20 pointer-events-none"
613
+ style="z-index:0"
614
+ ></div>`,
615
+ )}
616
+
607
617
  <!-- Summary slot rendered once — avoids DOM teardown on toggle -->
608
- <div class="flex-1 min-w-0">
618
+ <div class="flex-1 min-w-0 relative" style="z-index:1">
609
619
  <slot name="summary"></slot>
610
620
  </div>
611
621
 
612
- <!-- Toggle button: collapse when open, expand when closed -->
622
+ <!-- Toggle button: chevron up/down matches open/close direction per corner -->
613
623
  ${when(
614
624
  this.open,
615
625
  () => html`
@@ -622,7 +632,7 @@ export default class SchmancyBoat extends SchmancyElement {
622
632
  }}
623
633
  title="Collapse"
624
634
  >
625
- close_fullscreen
635
+ ${isBottom ? 'expand_more' : 'expand_less'}
626
636
  </schmancy-icon-button>
627
637
  `,
628
638
  () => html`
@@ -635,7 +645,7 @@ export default class SchmancyBoat extends SchmancyElement {
635
645
  }}
636
646
  title="Expand"
637
647
  >
638
- fullscreen
648
+ ${isBottom ? 'expand_less' : 'expand_more'}
639
649
  </schmancy-icon-button>
640
650
  `,
641
651
  )}
@@ -32,13 +32,13 @@
32
32
  * ```
33
33
  */
34
34
 
35
+ import type { ElementPart } from 'lit'
35
36
  import { noChange } from 'lit'
36
37
  import { AsyncDirective, directive } from 'lit/async-directive.js'
37
- import type { ElementPart } from 'lit'
38
- import { SPRING_SMOOTH, SPRING_GENTLE, getEasing } from '../utils/animation'
38
+ import { EMPTY, type Subscription, from, fromEvent, timer } from 'rxjs'
39
+ import { catchError, take, tap } from 'rxjs/operators'
40
+ import { SPRING_GENTLE, SPRING_SMOOTH, getEasing } from '../utils/animation'
39
41
  import { reducedMotion$ } from './reduced-motion'
40
- import { Subscription, timer, fromEvent, from, EMPTY } from 'rxjs'
41
- import { take, tap, catchError } from 'rxjs/operators'
42
42
 
43
43
  export interface NebulaOptions {
44
44
  /** Whether the nebula is active/visible. Default: true (auto-shows, auto-hides after autoHideDuration) */
@@ -94,7 +94,7 @@ const DEFAULTS: Required<NebulaOptions> = {
94
94
  idleBreathe: true,
95
95
  temperature: 0,
96
96
  chromaticAberration: 1,
97
- particleCount: 30,
97
+ particleCount: 8,
98
98
  }
99
99
 
100
100
  // =============================================================================
@@ -139,10 +139,11 @@ function injectGlobalStyles(): void {
139
139
  75% { transform: translate3d(calc(var(--nebula-aberration, 3px) * -1.8), 0, 0); }
140
140
  }
141
141
 
142
- /* Iridescent core - continuous 360-degree hue rotation (the ONE filter animation) */
142
+ /* Iridescent core - compositor-only rotation. filter is static (baked inline) to avoid
143
+ per-frame raster cost of animated blur/hue-rotate under mix-blend-mode: screen. */
143
144
  @keyframes nebula-iridescent {
144
- 0% { filter: hue-rotate(0deg) blur(var(--nebula-blur-core, 12px)) saturate(1.6); }
145
- 100% { filter: hue-rotate(360deg) blur(var(--nebula-blur-core, 12px)) saturate(1.6); }
145
+ 0% { transform: translateZ(0) rotate(0deg); }
146
+ 100% { transform: translateZ(0) rotate(360deg); }
146
147
  }
147
148
 
148
149
  /* Bioluminescent tendrils - organic breathing */
@@ -161,17 +162,17 @@ function injectGlobalStyles(): void {
161
162
  85% { opacity: 0.6; }
162
163
  }
163
164
 
164
- /* Idle breathing - gentle pulse when dimmed */
165
+ /* Idle breathing - compositor-only pulse when dimmed.
166
+ filter: blur is intentionally static (baked on layers) — animating it here
167
+ would keep re-rasterizing the dimmed overlay forever for no visual gain. */
165
168
  @keyframes nebula-idle-breathe {
166
169
  0%, 100% {
167
170
  opacity: var(--nebula-idle-opacity, 0.08);
168
- filter: blur(calc(var(--nebula-blur-base, 10px) * 8));
169
- transform: scale(1);
171
+ transform: scale(1) translateZ(0);
170
172
  }
171
173
  50% {
172
174
  opacity: calc(var(--nebula-idle-opacity, 0.08) * 1.4);
173
- filter: blur(calc(var(--nebula-blur-base, 10px) * 10));
174
- transform: scale(1.005);
175
+ transform: scale(1.005) translateZ(0);
175
176
  }
176
177
  }
177
178
 
@@ -185,7 +186,8 @@ function injectGlobalStyles(): void {
185
186
  isolation: isolate;
186
187
  }
187
188
 
188
- .nebula-overlay.paused .nebula-layer {
189
+ .nebula-overlay.paused .nebula-layer,
190
+ .nebula-overlay.dimmed .nebula-layer {
189
191
  animation-play-state: paused !important;
190
192
  }
191
193
 
@@ -216,6 +218,7 @@ interface State {
216
218
  originalContain: string
217
219
  isDimmed: boolean
218
220
  autoHideSub: Subscription | null
221
+ fadeFinishedSub: Subscription | null
219
222
  options: Required<NebulaOptions>
220
223
  reducedMotion: boolean
221
224
  isVisible: boolean
@@ -352,6 +355,8 @@ class NebulaDirective extends AsyncDirective {
352
355
  if (this.state?.overlay && this.state.isDimmed) {
353
356
  this.state.isDimmed = false
354
357
  this.state.options = opts
358
+ this.state.fadeFinishedSub?.unsubscribe()
359
+ this.state.fadeFinishedSub = null
355
360
  this.awakenOverlay(opts, reducedMotion)
356
361
  this.scheduleAutoHide(opts)
357
362
  return
@@ -372,28 +377,26 @@ class NebulaDirective extends AsyncDirective {
372
377
  if (!this.state?.overlay) return
373
378
 
374
379
  const overlay = this.state.overlay
375
- const awakenDuration = reducedMotion ? 0 : opts.fadeInDuration * 0.6
376
- const easing = reducedMotion ? 'linear' : getEasing(SPRING_SMOOTH)
377
-
378
- // Update CSS custom properties
379
380
  overlay.style.setProperty('--nebula-intensity', String(opts.intensity))
380
381
 
381
382
  overlay.animate(
382
383
  [
383
- { opacity: opts.idleOpacity, transform: 'scale(0.98)', filter: `blur(${4 * opts.blur}px)` },
384
- { opacity: opts.intensity * 0.7, transform: 'scale(1.01)', filter: `blur(${1 * opts.blur}px)` },
385
- { opacity: opts.intensity, transform: 'scale(1)', filter: 'blur(0px)' },
384
+ { opacity: opts.idleOpacity, transform: 'scale(0.98) translateZ(0)' },
385
+ { opacity: opts.intensity * 0.7, transform: 'scale(1.01) translateZ(0)' },
386
+ { opacity: opts.intensity, transform: 'scale(1) translateZ(0)' },
386
387
  ] as Keyframe[],
387
388
  {
388
- duration: awakenDuration,
389
- easing,
389
+ duration: reducedMotion ? 0 : opts.fadeInDuration * 0.6,
390
+ easing: reducedMotion ? 'linear' : getEasing(SPRING_SMOOTH),
390
391
  fill: 'forwards',
391
392
  },
392
393
  )
393
394
 
394
- // Resume CSS animations
395
- overlay.classList.remove('paused')
395
+ // Clear the dimmed gate + any container-level idle-breathe animation hide() installed,
396
+ // then resume the per-layer CSS animations.
397
+ overlay.classList.remove('paused', 'dimmed')
396
398
  overlay.classList.add('running')
399
+ overlay.style.animation = ''
397
400
  }
398
401
 
399
402
  private createOverlay(element: HTMLElement, opts: Required<NebulaOptions>, reducedMotion: boolean): void {
@@ -568,7 +571,11 @@ class NebulaDirective extends AsyncDirective {
568
571
  transparent 100%)`,
569
572
  mixBlendMode: 'screen',
570
573
  transform: 'translateZ(0)',
571
- // hue-rotate is the core visual — continuous 360deg cycle
574
+ transformOrigin: '50% 50%',
575
+ // Static filter — animating hue-rotate + blur every frame is a GPU pig
576
+ // under mix-blend-mode: screen. Compositor-only rotation gets the iridescent
577
+ // shimmer "for free" by sliding the gradient across the blend stack.
578
+ filter: `blur(${12 * opts.blur}px) saturate(1.6)`,
572
579
  animation: `nebula-iridescent ${28000 / opts.speed}ms linear infinite`,
573
580
  })
574
581
  overlay.appendChild(iridescentLayer)
@@ -635,13 +642,14 @@ class NebulaDirective extends AsyncDirective {
635
642
  const fadeInDuration = reducedMotion ? 0 : opts.fadeInDuration
636
643
  const entranceEasing = reducedMotion ? 'linear' : getEasing(SPRING_SMOOTH)
637
644
 
645
+ // Compositor-only entrance — opacity + transform reach the same "rising into focus"
646
+ // feel without animating `filter: blur`, which re-rasterizes the full filtered
647
+ // region every frame under mix-blend-mode: screen.
638
648
  overlay.animate(
639
649
  [
640
- { opacity: 0, transform: 'scale(0.85)', filter: `blur(${25 * opts.blur}px) saturate(0.5)` },
641
- { opacity: opts.intensity * 0.3, transform: 'scale(0.95)', filter: `blur(${12 * opts.blur}px) saturate(0.8)` },
642
- { opacity: opts.intensity * 0.6, transform: 'scale(1.02)', filter: `blur(${4 * opts.blur}px) saturate(1.1)` },
643
- { opacity: opts.intensity * 0.85, transform: 'scale(1.005)', filter: `blur(${1 * opts.blur}px) saturate(1.05)` },
644
- { opacity: opts.intensity, transform: 'scale(1)', filter: 'blur(0px) saturate(1)' },
650
+ { opacity: 0, transform: 'scale(0.85) translateZ(0)' },
651
+ { opacity: opts.intensity * 0.4, transform: 'scale(0.97) translateZ(0)' },
652
+ { opacity: opts.intensity, transform: 'scale(1) translateZ(0)' },
645
653
  ] as Keyframe[],
646
654
  {
647
655
  duration: fadeInDuration,
@@ -658,6 +666,7 @@ class NebulaDirective extends AsyncDirective {
658
666
  originalContain,
659
667
  isDimmed: false,
660
668
  autoHideSub: null,
669
+ fadeFinishedSub: null,
661
670
  options: opts,
662
671
  reducedMotion,
663
672
  isVisible: document.visibilityState === 'visible',
@@ -695,53 +704,46 @@ class NebulaDirective extends AsyncDirective {
695
704
  const overlay = this.state.overlay
696
705
  const currentOpts = this.state.options
697
706
  const reducedMotion = this.state.reducedMotion
698
-
699
- const fadeOutDuration = reducedMotion ? 0 : opts.fadeOutDuration
700
- const exitEasing = reducedMotion ? 'linear' : getEasing(SPRING_GENTLE)
707
+ const duration = reducedMotion ? 0 : opts.fadeOutDuration
708
+ const easing = reducedMotion ? 'linear' : getEasing(SPRING_GENTLE)
701
709
 
702
710
  // Full hide (idleOpacity = 0)
703
711
  if (opts.idleOpacity <= 0) {
704
712
  overlay.animate(
705
713
  [
706
- { opacity: currentOpts.intensity, transform: 'scale(1)', filter: 'blur(0px) saturate(1)' },
707
- { opacity: currentOpts.intensity * 0.4, transform: 'scale(0.95)', filter: `blur(${8 * currentOpts.blur}px) saturate(0.7)` },
708
- { opacity: 0, transform: 'scale(0.9)', filter: `blur(${15 * currentOpts.blur}px) saturate(0.3)` },
714
+ { opacity: currentOpts.intensity, transform: 'scale(1) translateZ(0)' },
715
+ { opacity: currentOpts.intensity * 0.4, transform: 'scale(0.95) translateZ(0)' },
716
+ { opacity: 0, transform: 'scale(0.9) translateZ(0)' },
709
717
  ] as Keyframe[],
710
- {
711
- duration: fadeOutDuration,
712
- easing: exitEasing,
713
- fill: 'forwards',
714
- },
718
+ { duration, easing, fill: 'forwards' },
715
719
  )
716
720
  return
717
721
  }
718
722
 
719
- // Fade to idle with CSS animation for breathing
720
723
  const fadeDown = overlay.animate(
721
724
  [
722
- { opacity: currentOpts.intensity, transform: 'scale(1)', filter: 'blur(0px) saturate(1)' },
723
- { opacity: currentOpts.intensity * 0.5, transform: 'scale(0.99)', filter: `blur(${3 * currentOpts.blur}px) saturate(0.75)` },
724
- { opacity: opts.idleOpacity, transform: 'scale(1)', filter: `blur(${8 * currentOpts.blur}px) saturate(0.4)` },
725
+ { opacity: currentOpts.intensity, transform: 'scale(1) translateZ(0)' },
726
+ { opacity: currentOpts.intensity * 0.5, transform: 'scale(0.99) translateZ(0)' },
727
+ { opacity: opts.idleOpacity, transform: 'scale(1) translateZ(0)' },
725
728
  ] as Keyframe[],
726
- {
727
- duration: fadeOutDuration,
728
- easing: exitEasing,
729
- fill: 'forwards',
730
- },
729
+ { duration, easing, fill: 'forwards' },
731
730
  )
732
731
 
733
- // Switch to CSS animation for idle breathing (more efficient)
734
- if (opts.idleBreathe && !reducedMotion) {
735
- from(fadeDown.finished).pipe(
736
- take(1),
737
- catchError(() => EMPTY),
738
- ).subscribe(() => {
739
- if (this.state?.overlay) {
740
- // Use pure CSS animation for idle - no JS overhead
732
+ // After fade-down, gate per-layer animations off via the `dimmed` class — without
733
+ // this, chromatic/iridescent/tendril/particle keyframes keep burning GPU under
734
+ // mix-blend-mode: screen forever even though the stack is visually idle.
735
+ this.state.fadeFinishedSub?.unsubscribe()
736
+ this.state.fadeFinishedSub = from(fadeDown.finished).pipe(
737
+ take(1),
738
+ tap(() => {
739
+ if (!this.state?.overlay) return
740
+ this.state.overlay.classList.add('dimmed')
741
+ if (opts.idleBreathe && !reducedMotion) {
741
742
  this.state.overlay.style.animation = `nebula-idle-breathe ${12000 / currentOpts.speed}ms ${BREATHING_EASING} infinite`
742
743
  }
743
- })
744
- }
744
+ }),
745
+ catchError(() => EMPTY),
746
+ ).subscribe()
745
747
  }
746
748
 
747
749
  private cleanup(): void {
@@ -750,6 +752,7 @@ class NebulaDirective extends AsyncDirective {
750
752
  this.coordinator.unregister(this, this.state.element)
751
753
 
752
754
  this.state.autoHideSub?.unsubscribe()
755
+ this.state.fadeFinishedSub?.unsubscribe()
753
756
 
754
757
  this.state.overlay?.remove()
755
758
  this.state.element.style.position = this.state.originalPosition
package/src/list/list.ts CHANGED
@@ -1,6 +1,5 @@
1
1
  import { provide } from '@lit/context'
2
2
  import { SchmancyElement } from '@mixins/index'
3
- import { SchmancySurfaceFill } from '@schmancy/surface'
4
3
  import { TSurfaceColor } from '@schmancy/types/surface'
5
4
  import { css, html } from 'lit'
6
5
  import { customElement, property } from 'lit/decorators.js'
@@ -42,16 +41,6 @@ export class List extends SchmancyElement {
42
41
  @property()
43
42
  surface: TSurfaceColor
44
43
 
45
- /**
46
- * Determines the fill style of the underlying surface.
47
- *
48
- * @attr fill
49
- * @type {SchmancySurfaceFill}
50
- * @default 'auto'
51
- */
52
- @property({ type: String, reflect: true })
53
- fill: SchmancySurfaceFill = 'auto'
54
-
55
44
  /**
56
45
  * Defines the elevation level of the surface.
57
46
  *
@@ -72,7 +61,7 @@ export class List extends SchmancyElement {
72
61
  */
73
62
  render() {
74
63
  return html`
75
- <schmancy-surface .elevation=${this.elevation} .fill=${this.fill} type=${this.surface}>
64
+ <schmancy-surface .elevation=${this.elevation} type=${this.surface}>
76
65
  <ul>
77
66
  <slot></slot>
78
67
  </ul>