@mhmo91/schmancy 0.10.37 → 0.10.38

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 (554) hide show
  1. package/custom-elements.json +39 -0
  2. package/dist/{SchmancyElement-CDT2q1lA.js → SchmancyElement-BNnyBOwk.js} +9 -7
  3. package/dist/{SchmancyElement-CDT2q1lA.js.map → SchmancyElement-BNnyBOwk.js.map} +1 -1
  4. package/dist/{SchmancyElement-BHfQg3Tj.cjs → SchmancyElement-C41uPa6l.cjs} +2 -2
  5. package/dist/{SchmancyElement-BHfQg3Tj.cjs.map → SchmancyElement-C41uPa6l.cjs.map} +1 -1
  6. package/dist/agent/schmancy.agent.js +2329 -2297
  7. package/dist/agent/schmancy.agent.js.map +1 -1
  8. package/dist/area-2FrTZI_T.cjs +21 -0
  9. package/dist/area-2FrTZI_T.cjs.map +1 -0
  10. package/dist/{area-KtULlxuA.js → area-KVDzhT4s.js} +4 -4
  11. package/dist/area-KVDzhT4s.js.map +1 -0
  12. package/dist/area.cjs +1 -1
  13. package/dist/area.js +2 -2
  14. package/dist/{audio-zIJVTo_V.js → audio-D3gnp15Y.js} +1 -1
  15. package/dist/{audio-zIJVTo_V.js.map → audio-D3gnp15Y.js.map} +1 -1
  16. package/dist/{audio-CUMAv9D_.cjs → audio-EaD0Ggfh.cjs} +1 -1
  17. package/dist/{audio-CUMAv9D_.cjs.map → audio-EaD0Ggfh.cjs.map} +1 -1
  18. package/dist/audio.cjs +1 -1
  19. package/dist/audio.js +2 -2
  20. package/dist/autocomplete-DMmxsvUe.cjs +115 -0
  21. package/dist/autocomplete-DMmxsvUe.cjs.map +1 -0
  22. package/dist/{autocomplete-DIScyo8Q.js → autocomplete-DWiEqlQf.js} +96 -96
  23. package/dist/autocomplete-DWiEqlQf.js.map +1 -0
  24. package/dist/autocomplete.cjs +1 -1
  25. package/dist/autocomplete.js +1 -1
  26. package/dist/avatar.cjs +1 -1
  27. package/dist/avatar.js +3 -3
  28. package/dist/badge.cjs +1 -1
  29. package/dist/badge.js +1 -1
  30. package/dist/{boat-BHPqSqJd.js → boat-DmyG7y1V.js} +4 -4
  31. package/dist/{boat-BHPqSqJd.js.map → boat-DmyG7y1V.js.map} +1 -1
  32. package/dist/{boat-OBZ77exO.cjs → boat-dB1_qLm0.cjs} +1 -1
  33. package/dist/{boat-OBZ77exO.cjs.map → boat-dB1_qLm0.cjs.map} +1 -1
  34. package/dist/boat.cjs +1 -1
  35. package/dist/boat.js +1 -1
  36. package/dist/breadcrumb.cjs +3 -3
  37. package/dist/breadcrumb.cjs.map +1 -1
  38. package/dist/breadcrumb.js +4 -4
  39. package/dist/breadcrumb.js.map +1 -1
  40. package/dist/{busy-BJNsKSCM.cjs → busy-Cj_PV7oC.cjs} +1 -1
  41. package/dist/{busy-BJNsKSCM.cjs.map → busy-Cj_PV7oC.cjs.map} +1 -1
  42. package/dist/{busy-Dut78y4L.js → busy-enYCTssB.js} +2 -2
  43. package/dist/{busy-Dut78y4L.js.map → busy-enYCTssB.js.map} +1 -1
  44. package/dist/busy.cjs +1 -1
  45. package/dist/busy.js +1 -1
  46. package/dist/{button-kcpPQavY.js → button-BQSOVnHn.js} +10 -9
  47. package/dist/button-BQSOVnHn.js.map +1 -0
  48. package/dist/button-WRmXlNyw.cjs +62 -0
  49. package/dist/button-WRmXlNyw.cjs.map +1 -0
  50. package/dist/button.cjs +6 -6
  51. package/dist/button.cjs.map +1 -1
  52. package/dist/button.js +17 -16
  53. package/dist/button.js.map +1 -1
  54. package/dist/{card-DxSKxCid.js → card-BHTz1GwB.js} +16 -16
  55. package/dist/card-BHTz1GwB.js.map +1 -0
  56. package/dist/{card-BLxPLqdQ.cjs → card-ThG_ZaQE.cjs} +3 -3
  57. package/dist/card-ThG_ZaQE.cjs.map +1 -0
  58. package/dist/card.cjs +1 -1
  59. package/dist/card.js +1 -1
  60. package/dist/{checkbox-BCLkhp5G.cjs → checkbox-C4zeib84.cjs} +2 -2
  61. package/dist/{checkbox-BCLkhp5G.cjs.map → checkbox-C4zeib84.cjs.map} +1 -1
  62. package/dist/{checkbox-B1wiM3Dv.js → checkbox-Ce0DlAdW.js} +6 -6
  63. package/dist/{checkbox-B1wiM3Dv.js.map → checkbox-Ce0DlAdW.js.map} +1 -1
  64. package/dist/checkbox.cjs +1 -1
  65. package/dist/checkbox.js +1 -1
  66. package/dist/{chips-C9dS1WKn.cjs → chips-B1jui8Pe.cjs} +3 -3
  67. package/dist/chips-B1jui8Pe.cjs.map +1 -0
  68. package/dist/{chips-vWmwqQed.js → chips-DAy6v93f.js} +20 -19
  69. package/dist/chips-DAy6v93f.js.map +1 -0
  70. package/dist/chips.cjs +1 -1
  71. package/dist/chips.js +2 -2
  72. package/dist/connectivity.cjs +1 -1
  73. package/dist/connectivity.js +3 -3
  74. package/dist/content-drawer.cjs +1 -1
  75. package/dist/content-drawer.js +1 -1
  76. package/dist/cursor-glow-Ah7VXSj7.js.map +1 -1
  77. package/dist/cursor-glow-Bulq-38P.cjs.map +1 -1
  78. package/dist/{date-range-BV6HuvLw.cjs → date-range-BUaPgbTZ.cjs} +2 -2
  79. package/dist/date-range-BUaPgbTZ.cjs.map +1 -0
  80. package/dist/{date-range-D3ge1b4c.js → date-range-NTpoA1in.js} +4 -4
  81. package/dist/date-range-NTpoA1in.js.map +1 -0
  82. package/dist/{date-range-inline-DpYgdLRv.cjs → date-range-inline-D0I6k84h.cjs} +1 -1
  83. package/dist/{date-range-inline-DpYgdLRv.cjs.map → date-range-inline-D0I6k84h.cjs.map} +1 -1
  84. package/dist/{date-range-inline-DuWQaWps.js → date-range-inline-DjRdMZ1z.js} +2 -2
  85. package/dist/{date-range-inline-DuWQaWps.js.map → date-range-inline-DjRdMZ1z.js.map} +1 -1
  86. package/dist/date-range-inline.cjs +1 -1
  87. package/dist/date-range-inline.js +1 -1
  88. package/dist/date-range.cjs +1 -1
  89. package/dist/date-range.js +1 -1
  90. package/dist/delay.cjs +1 -1
  91. package/dist/delay.js +2 -2
  92. package/dist/{details-C-GZaq3j.js → details-CY49XVfp.js} +43 -35
  93. package/dist/details-CY49XVfp.js.map +1 -0
  94. package/dist/details-DQNj2oaU.cjs +164 -0
  95. package/dist/details-DQNj2oaU.cjs.map +1 -0
  96. package/dist/details.cjs +1 -1
  97. package/dist/details.js +1 -1
  98. package/dist/{directives-D_l1E5H6.cjs → directives-Bb0S1DKZ.cjs} +3 -3
  99. package/dist/directives-Bb0S1DKZ.cjs.map +1 -0
  100. package/dist/{directives-DyS51FUh.js → directives-Bfm1lkoy.js} +6 -8
  101. package/dist/directives-Bfm1lkoy.js.map +1 -0
  102. package/dist/directives.cjs +1 -1
  103. package/dist/directives.js +2 -2
  104. package/dist/{divider-nQffE0AD.js → divider-BeyX_C0A.js} +2 -2
  105. package/dist/{divider-nQffE0AD.js.map → divider-BeyX_C0A.js.map} +1 -1
  106. package/dist/{divider-CBnAmHMZ.cjs → divider-Ck2C1sKl.cjs} +1 -1
  107. package/dist/{divider-CBnAmHMZ.cjs.map → divider-Ck2C1sKl.cjs.map} +1 -1
  108. package/dist/divider.cjs +1 -1
  109. package/dist/divider.js +1 -1
  110. package/dist/dropdown.cjs +1 -1
  111. package/dist/dropdown.js +2 -2
  112. package/dist/{expand-DvTb-UPR.js → expand-BYsSEtp6.js} +53 -53
  113. package/dist/expand-BYsSEtp6.js.map +1 -0
  114. package/dist/expand-CUF163mg.cjs +141 -0
  115. package/dist/expand-CUF163mg.cjs.map +1 -0
  116. package/dist/expand.cjs +1 -1
  117. package/dist/expand.js +1 -1
  118. package/dist/fab.cjs +1 -1
  119. package/dist/fab.js +2 -2
  120. package/dist/{float-C-Ko0Le3.js → float-Cgllk_H9.js} +2 -2
  121. package/dist/{float-C-Ko0Le3.js.map → float-Cgllk_H9.js.map} +1 -1
  122. package/dist/{float-C17xgMT1.cjs → float-OvqX0nqG.cjs} +1 -1
  123. package/dist/{float-C17xgMT1.cjs.map → float-OvqX0nqG.cjs.map} +1 -1
  124. package/dist/float.cjs +1 -1
  125. package/dist/float.js +1 -1
  126. package/dist/form-4GKROq2P.cjs +27 -0
  127. package/dist/form-4GKROq2P.cjs.map +1 -0
  128. package/dist/{form-DA0hUu2h.js → form-DxaV_Ose.js} +39 -39
  129. package/dist/form-DxaV_Ose.js.map +1 -0
  130. package/dist/form.cjs +3 -3
  131. package/dist/form.cjs.map +1 -1
  132. package/dist/form.js +34 -34
  133. package/dist/form.js.map +1 -1
  134. package/dist/gravity-6pL6CfIr.cjs.map +1 -1
  135. package/dist/gravity-sVK3zGBF.js.map +1 -1
  136. package/dist/handover/agent-runtime-followups.md +1 -1
  137. package/dist/handover/agent-runtime-v1.md +3 -3
  138. package/dist/{icons-C6UfxmHZ.js → icons-CJ2mXcBi.js} +9 -9
  139. package/dist/icons-CJ2mXcBi.js.map +1 -0
  140. package/dist/icons-sZ-LybA9.cjs +24 -0
  141. package/dist/icons-sZ-LybA9.cjs.map +1 -0
  142. package/dist/icons.cjs +1 -1
  143. package/dist/icons.js +1 -1
  144. package/dist/{iframe-BTjZfYyh.js → iframe-DWvN5nGB.js} +11 -11
  145. package/dist/iframe-DWvN5nGB.js.map +1 -0
  146. package/dist/{iframe-wuYT2xFz.cjs → iframe-DpCv-QH2.cjs} +7 -7
  147. package/dist/iframe-DpCv-QH2.cjs.map +1 -0
  148. package/dist/iframe.cjs +1 -1
  149. package/dist/iframe.js +1 -1
  150. package/dist/index.cjs +1 -1
  151. package/dist/index.js +35 -35
  152. package/dist/{input-B_4g2ulO.js → input-BCCHz6tB.js} +7 -7
  153. package/dist/input-BCCHz6tB.js.map +1 -0
  154. package/dist/{input-BrDiIT60.cjs → input-Z-3N5JMv.cjs} +2 -2
  155. package/dist/input-Z-3N5JMv.cjs.map +1 -0
  156. package/dist/{input-chip-BlWhOruv.js → input-chip-BOrcKH-H.js} +2 -2
  157. package/dist/{input-chip-BlWhOruv.js.map → input-chip-BOrcKH-H.js.map} +1 -1
  158. package/dist/{input-chip-B-XWh4aE.cjs → input-chip-ChAgRCXZ.cjs} +1 -1
  159. package/dist/{input-chip-B-XWh4aE.cjs.map → input-chip-ChAgRCXZ.cjs.map} +1 -1
  160. package/dist/input.cjs +1 -1
  161. package/dist/input.js +1 -1
  162. package/dist/json.cjs +1 -1
  163. package/dist/json.js +3 -3
  164. package/dist/kbd.cjs +1 -1
  165. package/dist/kbd.js +2 -2
  166. package/dist/{layout-Dxit9enO.js → layout-CFiG3lNT.js} +1 -1
  167. package/dist/{layout-Dxit9enO.js.map → layout-CFiG3lNT.js.map} +1 -1
  168. package/dist/{layout-BhyIcEVu.cjs → layout-DZ4dpLh9.cjs} +1 -1
  169. package/dist/{layout-BhyIcEVu.cjs.map → layout-DZ4dpLh9.cjs.map} +1 -1
  170. package/dist/layout.cjs +1 -1
  171. package/dist/layout.js +2 -2
  172. package/dist/lazy-BaAiIUru.js +19 -0
  173. package/dist/lazy-BaAiIUru.js.map +1 -0
  174. package/dist/lazy-C-7a4FAe.cjs +1 -0
  175. package/dist/lazy-C-7a4FAe.cjs.map +1 -0
  176. package/dist/{lightbox-D85XAAuC.js → lightbox-B7Y4Nij_.js} +2 -2
  177. package/dist/lightbox-B7Y4Nij_.js.map +1 -0
  178. package/dist/{lightbox-CVBogswK.cjs → lightbox-Dpwsn8Qr.cjs} +1 -1
  179. package/dist/lightbox-Dpwsn8Qr.cjs.map +1 -0
  180. package/dist/lightbox.cjs +1 -1
  181. package/dist/lightbox.js +1 -1
  182. package/dist/{list-nVjLskgx.cjs → list-BhM-6dAi.cjs} +1 -1
  183. package/dist/{list-nVjLskgx.cjs.map → list-BhM-6dAi.cjs.map} +1 -1
  184. package/dist/{list-DOF_yVn5.js → list-C5WVoIfJ.js} +2 -2
  185. package/dist/{list-DOF_yVn5.js.map → list-C5WVoIfJ.js.map} +1 -1
  186. package/dist/list.cjs +1 -1
  187. package/dist/list.js +1 -1
  188. package/dist/magnetic-DKtc4umC.cjs.map +1 -1
  189. package/dist/magnetic-DaOOv5Dz.js.map +1 -1
  190. package/dist/{menu-QrAK5Uu9.js → menu-CBAAJoHu.js} +3 -3
  191. package/dist/{menu-QrAK5Uu9.js.map → menu-CBAAJoHu.js.map} +1 -1
  192. package/dist/{menu-DqmNjLgY.cjs → menu-DFQjJk3H.cjs} +1 -1
  193. package/dist/{menu-DqmNjLgY.cjs.map → menu-DFQjJk3H.cjs.map} +1 -1
  194. package/dist/menu.cjs +1 -1
  195. package/dist/menu.js +1 -1
  196. package/dist/{mixins-De1zjyhy.js → mixins-DGBI7YPO.js} +11 -11
  197. package/dist/mixins-DGBI7YPO.js.map +1 -0
  198. package/dist/{mixins-DxHpyMHA.cjs → mixins-fIpzhVMd.cjs} +1 -1
  199. package/dist/mixins-fIpzhVMd.cjs.map +1 -0
  200. package/dist/mixins.cjs +1 -1
  201. package/dist/mixins.js +2 -2
  202. package/dist/nav-drawer.cjs +1 -1
  203. package/dist/nav-drawer.js +1 -1
  204. package/dist/navigation-bar.cjs +1 -1
  205. package/dist/navigation-bar.js +1 -1
  206. package/dist/navigation-rail.cjs +3 -3
  207. package/dist/navigation-rail.cjs.map +1 -1
  208. package/dist/navigation-rail.js +11 -10
  209. package/dist/navigation-rail.js.map +1 -1
  210. package/dist/notification-B6yDL91t.cjs +24 -0
  211. package/dist/notification-B6yDL91t.cjs.map +1 -0
  212. package/dist/{notification-BtAK7NK8.js → notification-BB9OBRCr.js} +22 -22
  213. package/dist/notification-BB9OBRCr.js.map +1 -0
  214. package/dist/notification.cjs +1 -1
  215. package/dist/notification.js +1 -1
  216. package/dist/{option-DHwA0miA.js → option-B21ImL0k.js} +2 -2
  217. package/dist/{option-DHwA0miA.js.map → option-B21ImL0k.js.map} +1 -1
  218. package/dist/{option-DnSPa8ro.cjs → option-CJQM5I9q.cjs} +1 -1
  219. package/dist/{option-DnSPa8ro.cjs.map → option-CJQM5I9q.cjs.map} +1 -1
  220. package/dist/option.cjs +1 -1
  221. package/dist/option.js +1 -1
  222. package/dist/{overlay-Del1sBEB.js → overlay-CWsihJ-E.js} +75 -67
  223. package/dist/overlay-CWsihJ-E.js.map +1 -0
  224. package/dist/overlay-DkIX9Ig3.cjs +58 -0
  225. package/dist/overlay-DkIX9Ig3.cjs.map +1 -0
  226. package/dist/overlay.cjs +1 -1
  227. package/dist/{overlay.confirm-body-DSONXUzl.js → overlay.confirm-body-CPqqPNks.js} +10 -10
  228. package/dist/overlay.confirm-body-CPqqPNks.js.map +1 -0
  229. package/dist/{overlay.confirm-body-BV9umTAl.cjs → overlay.confirm-body-DwTfiNlV.cjs} +3 -3
  230. package/dist/overlay.confirm-body-DwTfiNlV.cjs.map +1 -0
  231. package/dist/overlay.js +4 -4
  232. package/dist/overlay.service-DU1nqh6A.cjs +1 -0
  233. package/dist/{overlay.service-XLlrsSdA.cjs.map → overlay.service-DU1nqh6A.cjs.map} +1 -1
  234. package/dist/{overlay.service-BTp5Oq7f.js → overlay.service-KTgBxjFb.js} +4 -4
  235. package/dist/{overlay.service-BTp5Oq7f.js.map → overlay.service-KTgBxjFb.js.map} +1 -1
  236. package/dist/{progress-DUbTL9g9.cjs → progress-B-Qg44XY.cjs} +1 -1
  237. package/dist/{progress-DUbTL9g9.cjs.map → progress-B-Qg44XY.cjs.map} +1 -1
  238. package/dist/{progress-DYA83CFU.js → progress-CUSS1sNz.js} +2 -2
  239. package/dist/{progress-DYA83CFU.js.map → progress-CUSS1sNz.js.map} +1 -1
  240. package/dist/progress.cjs +1 -1
  241. package/dist/progress.js +1 -1
  242. package/dist/{radio-group-DxX0iJBo.js → radio-group-AHLvrN8O.js} +7 -7
  243. package/dist/radio-group-AHLvrN8O.js.map +1 -0
  244. package/dist/{radio-group-B-ORNtvR.cjs → radio-group-BEtvCSS1.cjs} +2 -2
  245. package/dist/radio-group-BEtvCSS1.cjs.map +1 -0
  246. package/dist/radio-group.cjs +1 -1
  247. package/dist/radio-group.js +1 -1
  248. package/dist/range.cjs +1 -1
  249. package/dist/range.js +2 -2
  250. package/dist/select-BWpV2iv-.cjs +56 -0
  251. package/dist/select-BWpV2iv-.cjs.map +1 -0
  252. package/dist/{select-C7gkA-ab.js → select-Cawz88lG.js} +46 -46
  253. package/dist/select-Cawz88lG.js.map +1 -0
  254. package/dist/select.cjs +1 -1
  255. package/dist/select.js +1 -1
  256. package/dist/skeleton.cjs +1 -1
  257. package/dist/skeleton.js +2 -2
  258. package/dist/skills/SKILL.md +3 -0
  259. package/dist/skills/overlay.md +14 -7
  260. package/dist/skills/schmancy/SKILL.md +3 -0
  261. package/dist/skills/schmancy/overlay.md +14 -7
  262. package/dist/slider.cjs +1 -1
  263. package/dist/slider.js +2 -2
  264. package/dist/{sound.service-O0232os6.js → sound.service-CK-5zob-.js} +4 -3
  265. package/dist/sound.service-CK-5zob-.js.map +1 -0
  266. package/dist/{sound.service-C7FDY_yD.cjs → sound.service-D2GGaBXc.cjs} +1 -1
  267. package/dist/sound.service-D2GGaBXc.cjs.map +1 -0
  268. package/dist/{splash-screen-jfE47xl0.js → splash-screen-BUEtjHXC.js} +13 -13
  269. package/dist/splash-screen-BUEtjHXC.js.map +1 -0
  270. package/dist/{splash-screen-DIS4odDr.cjs → splash-screen-DqPuipox.cjs} +6 -6
  271. package/dist/splash-screen-DqPuipox.cjs.map +1 -0
  272. package/dist/splash-screen.cjs +1 -1
  273. package/dist/splash-screen.js +1 -1
  274. package/dist/{src-BP3h-9d9.js → src-CIqAj3Eh.js} +45 -45
  275. package/dist/src-CIqAj3Eh.js.map +1 -0
  276. package/dist/{src-Um_pzb-U.cjs → src-CYqBQTyt.cjs} +6 -6
  277. package/dist/src-CYqBQTyt.cjs.map +1 -0
  278. package/dist/{state-Bj0M9a6T.cjs → state-BxDNox-2.cjs} +1 -1
  279. package/dist/{state-Bj0M9a6T.cjs.map → state-BxDNox-2.cjs.map} +1 -1
  280. package/dist/{state-DscWQpoM.js → state-CnZCDMT0.js} +9 -9
  281. package/dist/{state-DscWQpoM.js.map → state-CnZCDMT0.js.map} +1 -1
  282. package/dist/state.cjs +1 -1
  283. package/dist/state.js +2 -2
  284. package/dist/steps.cjs +1 -1
  285. package/dist/steps.js +2 -2
  286. package/dist/{surface-B4Wn4SOO.js → surface-BMdG3dKQ.js} +2 -2
  287. package/dist/{surface-B4Wn4SOO.js.map → surface-BMdG3dKQ.js.map} +1 -1
  288. package/dist/{surface-DRq6cVW6.cjs → surface-CWwYD_z2.cjs} +1 -1
  289. package/dist/{surface-DRq6cVW6.cjs.map → surface-CWwYD_z2.cjs.map} +1 -1
  290. package/dist/surface.cjs +1 -1
  291. package/dist/surface.js +1 -1
  292. package/dist/switch.cjs +4 -4
  293. package/dist/switch.cjs.map +1 -1
  294. package/dist/switch.js +11 -11
  295. package/dist/switch.js.map +1 -1
  296. package/dist/table.cjs +1 -1
  297. package/dist/table.js +2 -2
  298. package/dist/{tabs-CnQPo-XS.js → tabs-CDQYDc6v.js} +2 -2
  299. package/dist/{tabs-CnQPo-XS.js.map → tabs-CDQYDc6v.js.map} +1 -1
  300. package/dist/{tabs-Ca_fbHPW.cjs → tabs-CbD9E1gd.cjs} +1 -1
  301. package/dist/{tabs-Ca_fbHPW.cjs.map → tabs-CbD9E1gd.cjs.map} +1 -1
  302. package/dist/tabs.cjs +1 -1
  303. package/dist/tabs.js +1 -1
  304. package/dist/teleport.cjs +1 -1
  305. package/dist/teleport.js +1 -1
  306. package/dist/textarea-Brgi-vD2.cjs +43 -0
  307. package/dist/textarea-Brgi-vD2.cjs.map +1 -0
  308. package/dist/{textarea-BvqENhTW.js → textarea-MPyrMi-S.js} +4 -4
  309. package/dist/textarea-MPyrMi-S.js.map +1 -0
  310. package/dist/textarea.cjs +1 -1
  311. package/dist/textarea.js +1 -1
  312. package/dist/{theme-BSwJ2YZo.cjs → theme-BMbXoqi0.cjs} +1 -1
  313. package/dist/{theme-BSwJ2YZo.cjs.map → theme-BMbXoqi0.cjs.map} +1 -1
  314. package/dist/{theme-BV0EzHQ1.js → theme-DZu-xmVp.js} +5 -5
  315. package/dist/{theme-BV0EzHQ1.js.map → theme-DZu-xmVp.js.map} +1 -1
  316. package/dist/{theme-button-C6fpUzPM.cjs → theme-button-B0OLb-43.cjs} +1 -1
  317. package/dist/{theme-button-C6fpUzPM.cjs.map → theme-button-B0OLb-43.cjs.map} +1 -1
  318. package/dist/{theme-button-O_xNCgI7.js → theme-button-D_qGvEYs.js} +2 -2
  319. package/dist/{theme-button-O_xNCgI7.js.map → theme-button-D_qGvEYs.js.map} +1 -1
  320. package/dist/theme-button.cjs +1 -1
  321. package/dist/theme-button.js +1 -1
  322. package/dist/theme.cjs +1 -1
  323. package/dist/theme.js +3 -3
  324. package/dist/{theme.service-DwLhhOmP.js → theme.service-7VkM-hVf.js} +15 -11
  325. package/dist/theme.service-7VkM-hVf.js.map +1 -0
  326. package/dist/theme.service-B15FdjOS.cjs +1 -0
  327. package/dist/theme.service-B15FdjOS.cjs.map +1 -0
  328. package/dist/tree.cjs +4 -4
  329. package/dist/tree.cjs.map +1 -1
  330. package/dist/tree.js +8 -8
  331. package/dist/tree.js.map +1 -1
  332. package/dist/{typography-opFYuUYS.cjs → typography-D4Fo1UGh.cjs} +3 -3
  333. package/dist/{typography-opFYuUYS.cjs.map → typography-D4Fo1UGh.cjs.map} +1 -1
  334. package/dist/{typography-Dtdooaic.js → typography-SZhjb_4R.js} +9 -9
  335. package/dist/{typography-Dtdooaic.js.map → typography-SZhjb_4R.js.map} +1 -1
  336. package/dist/typography.cjs +1 -1
  337. package/dist/typography.js +1 -1
  338. package/dist/visually-hidden.cjs +1 -1
  339. package/dist/visually-hidden.js +2 -2
  340. package/dist/{window-ConcHirJ.js → window-BDVyrBnk.js} +101 -100
  341. package/dist/window-BDVyrBnk.js.map +1 -0
  342. package/dist/window-BbBYjm7R.cjs +59 -0
  343. package/dist/window-BbBYjm7R.cjs.map +1 -0
  344. package/dist/window.cjs +1 -1
  345. package/dist/window.js +1 -1
  346. package/package.json +1 -1
  347. package/skills/schmancy/SKILL.md +3 -0
  348. package/skills/schmancy/overlay.md +14 -7
  349. package/src/area/area.component.ts +1 -1
  350. package/src/area/area.service.test.ts +2 -2
  351. package/src/area/area.service.ts +1 -1
  352. package/src/area/lazy.ts +87 -83
  353. package/src/audio/sound.service.ts +3 -3
  354. package/src/breadcrumb/breadcrumb.ts +2 -2
  355. package/src/button/button.ts +11 -11
  356. package/src/button/icon-button.ts +18 -18
  357. package/src/card/card.ts +16 -16
  358. package/src/content-drawer/drawer.ts +6 -6
  359. package/src/details/details.ts +55 -55
  360. package/src/directives/ai-badge.ts +2 -1
  361. package/src/directives/animate-text.ts +2 -1
  362. package/src/directives/art/art.directive.ts +2 -1
  363. package/src/directives/battery.ts +2 -1
  364. package/src/directives/confirm-click.ts +5 -3
  365. package/src/directives/cursor-glow.ts +2 -1
  366. package/src/directives/cycle-text.ts +2 -1
  367. package/src/directives/depth-of-field.ts +2 -1
  368. package/src/directives/drag.ts +4 -2
  369. package/src/directives/fyi.ts +2 -1
  370. package/src/directives/gravity.ts +2 -1
  371. package/src/directives/hummingbird.ts +2 -1
  372. package/src/directives/intersect.ts +3 -2
  373. package/src/directives/liquid.ts +2 -1
  374. package/src/directives/living-border.ts +2 -1
  375. package/src/directives/long-press.ts +2 -1
  376. package/src/directives/magnetic.ts +2 -1
  377. package/src/directives/missed-punch.ts +2 -1
  378. package/src/directives/nebula.ts +6 -5
  379. package/src/directives/overflow-within.ts +2 -1
  380. package/src/directives/reveal.ts +2 -1
  381. package/src/directives/urgent.ts +2 -1
  382. package/src/directives/working-snake.ts +2 -1
  383. package/src/expand/expand-root.component.ts +27 -27
  384. package/src/expand/expand.component.ts +48 -48
  385. package/src/form/fields/autocomplete/autocomplete.ts +154 -154
  386. package/src/form/fields/checkbox/checkbox.ts +4 -4
  387. package/src/form/fields/chips/chips.ts +2 -2
  388. package/src/form/fields/chips/filter-chip.ts +15 -15
  389. package/src/form/fields/date-range/date-range.ts +2 -2
  390. package/src/form/fields/input/input.ts +12 -12
  391. package/src/form/fields/radio-group/radio-button.ts +2 -2
  392. package/src/form/fields/radio-group/radio-group.ts +3 -3
  393. package/src/form/fields/select/select.ts +56 -56
  394. package/src/form/fields/switch/switch.ts +10 -10
  395. package/src/form/fields/textarea/textarea.ts +2 -2
  396. package/src/form/form-summary.ts +33 -33
  397. package/src/form/form.ts +45 -45
  398. package/src/icons/icon.ts +10 -8
  399. package/src/iframe/iframe.ts +11 -11
  400. package/src/lightbox/flip-directive.ts +2 -1
  401. package/src/lightbox/lightbox.directive.ts +2 -1
  402. package/src/nav-drawer/navbar.ts +3 -3
  403. package/src/navigation-rail/navigation-rail.ts +10 -10
  404. package/src/notification/notification.ts +22 -22
  405. package/src/overlay/overlay.component.ts +106 -83
  406. package/src/overlay/overlay.confirm-body.ts +4 -4
  407. package/src/overlay/overlay.service.ts +3 -3
  408. package/src/overlay/overlay.types.ts +4 -2
  409. package/src/splash-screen/splash-screen.ts +11 -11
  410. package/src/state/index.ts +12 -12
  411. package/src/state/schmancy-context.ts +9 -9
  412. package/src/teleport/teleport.component.ts +2 -2
  413. package/src/theme/theme.service.ts +17 -17
  414. package/src/tree/tree.ts +7 -7
  415. package/src/typography/typography.ts +7 -7
  416. package/src/window/window-manager.ts +20 -20
  417. package/src/window/window.ts +100 -100
  418. package/types/mixins/SchmancyElement.d.ts +3 -2
  419. package/types/mixins/formField.mixin.d.ts +1 -1
  420. package/types/src/area/area.service.d.ts +1 -1
  421. package/types/src/area/lazy.d.ts +0 -6
  422. package/types/src/audio/sound.service.d.ts +1 -2
  423. package/types/src/breadcrumb/breadcrumb.d.ts +1 -1
  424. package/types/src/button/button.d.ts +3 -3
  425. package/types/src/button/icon-button.d.ts +6 -7
  426. package/types/src/card/card.d.ts +5 -5
  427. package/types/src/content-drawer/drawer.d.ts +1 -1
  428. package/types/src/details/details.d.ts +2 -21
  429. package/types/src/directives/ai-badge.d.ts +2 -2
  430. package/types/src/directives/animate-text.d.ts +2 -2
  431. package/types/src/directives/art/art.directive.d.ts +2 -2
  432. package/types/src/directives/battery.d.ts +2 -2
  433. package/types/src/directives/confirm-click.d.ts +2 -2
  434. package/types/src/directives/cursor-glow.d.ts +2 -2
  435. package/types/src/directives/cycle-text.d.ts +2 -2
  436. package/types/src/directives/depth-of-field.d.ts +2 -2
  437. package/types/src/directives/drag.d.ts +4 -4
  438. package/types/src/directives/fyi.d.ts +2 -2
  439. package/types/src/directives/gravity.d.ts +2 -2
  440. package/types/src/directives/hummingbird.d.ts +2 -2
  441. package/types/src/directives/intersect.d.ts +2 -2
  442. package/types/src/directives/liquid.d.ts +2 -2
  443. package/types/src/directives/living-border.d.ts +2 -2
  444. package/types/src/directives/long-press.d.ts +2 -2
  445. package/types/src/directives/magnetic.d.ts +2 -2
  446. package/types/src/directives/missed-punch.d.ts +2 -2
  447. package/types/src/directives/nebula.d.ts +2 -2
  448. package/types/src/directives/overflow-within.d.ts +2 -2
  449. package/types/src/directives/reveal.d.ts +2 -2
  450. package/types/src/directives/urgent.d.ts +2 -2
  451. package/types/src/directives/working-snake.d.ts +2 -2
  452. package/types/src/expand/expand-root.component.d.ts +8 -8
  453. package/types/src/expand/expand.component.d.ts +11 -11
  454. package/types/src/form/fields/autocomplete/autocomplete.d.ts +29 -29
  455. package/types/src/form/fields/checkbox/checkbox.d.ts +1 -1
  456. package/types/src/form/fields/chips/chips.d.ts +1 -1
  457. package/types/src/form/fields/chips/filter-chip.d.ts +1 -2
  458. package/types/src/form/fields/input/input.d.ts +3 -3
  459. package/types/src/form/fields/radio-group/radio-button.d.ts +1 -1
  460. package/types/src/form/fields/radio-group/radio-group.d.ts +1 -1
  461. package/types/src/form/fields/select/select.d.ts +8 -8
  462. package/types/src/form/fields/switch/switch.d.ts +3 -3
  463. package/types/src/form/fields/textarea/textarea.d.ts +1 -1
  464. package/types/src/form/form-summary.d.ts +7 -7
  465. package/types/src/form/form.d.ts +11 -11
  466. package/types/src/icons/icon.d.ts +2 -2
  467. package/types/src/iframe/iframe.d.ts +3 -3
  468. package/types/src/lightbox/flip-directive.d.ts +2 -2
  469. package/types/src/lightbox/lightbox.directive.d.ts +2 -2
  470. package/types/src/nav-drawer/navbar.d.ts +1 -1
  471. package/types/src/navigation-rail/navigation-rail.d.ts +2 -2
  472. package/types/src/notification/notification.d.ts +8 -8
  473. package/types/src/overlay/overlay.component.d.ts +16 -16
  474. package/types/src/overlay/overlay.confirm-body.d.ts +1 -1
  475. package/types/src/overlay/overlay.types.d.ts +4 -2
  476. package/types/src/splash-screen/splash-screen.d.ts +2 -2
  477. package/types/src/state/index.d.ts +1 -1
  478. package/types/src/state/schmancy-context.d.ts +3 -3
  479. package/types/src/teleport/teleport.component.d.ts +1 -1
  480. package/types/src/theme/theme.service.d.ts +1 -4
  481. package/types/src/tree/tree.d.ts +3 -3
  482. package/types/src/typography/typography.d.ts +1 -1
  483. package/types/src/window/window-manager.d.ts +2 -2
  484. package/types/src/window/window.d.ts +20 -20
  485. package/dist/area-KtULlxuA.js.map +0 -1
  486. package/dist/area-fdKhYB6T.cjs +0 -21
  487. package/dist/area-fdKhYB6T.cjs.map +0 -1
  488. package/dist/autocomplete-DEZk6wBD.cjs +0 -115
  489. package/dist/autocomplete-DEZk6wBD.cjs.map +0 -1
  490. package/dist/autocomplete-DIScyo8Q.js.map +0 -1
  491. package/dist/button-DzlHLjWO.cjs +0 -62
  492. package/dist/button-DzlHLjWO.cjs.map +0 -1
  493. package/dist/button-kcpPQavY.js.map +0 -1
  494. package/dist/card-BLxPLqdQ.cjs.map +0 -1
  495. package/dist/card-DxSKxCid.js.map +0 -1
  496. package/dist/chips-C9dS1WKn.cjs.map +0 -1
  497. package/dist/chips-vWmwqQed.js.map +0 -1
  498. package/dist/date-range-BV6HuvLw.cjs.map +0 -1
  499. package/dist/date-range-D3ge1b4c.js.map +0 -1
  500. package/dist/details-C-GZaq3j.js.map +0 -1
  501. package/dist/details-Dp5rLIWk.cjs +0 -164
  502. package/dist/details-Dp5rLIWk.cjs.map +0 -1
  503. package/dist/directives-D_l1E5H6.cjs.map +0 -1
  504. package/dist/directives-DyS51FUh.js.map +0 -1
  505. package/dist/expand-DvTb-UPR.js.map +0 -1
  506. package/dist/expand-mlP_3XWz.cjs +0 -141
  507. package/dist/expand-mlP_3XWz.cjs.map +0 -1
  508. package/dist/form-CwPHcQYB.cjs +0 -27
  509. package/dist/form-CwPHcQYB.cjs.map +0 -1
  510. package/dist/form-DA0hUu2h.js.map +0 -1
  511. package/dist/icons-C6UfxmHZ.js.map +0 -1
  512. package/dist/icons-CW3-oMSb.cjs +0 -24
  513. package/dist/icons-CW3-oMSb.cjs.map +0 -1
  514. package/dist/iframe-BTjZfYyh.js.map +0 -1
  515. package/dist/iframe-wuYT2xFz.cjs.map +0 -1
  516. package/dist/input-B_4g2ulO.js.map +0 -1
  517. package/dist/input-BrDiIT60.cjs.map +0 -1
  518. package/dist/lazy-CayEFyC3.cjs +0 -1
  519. package/dist/lazy-CayEFyC3.cjs.map +0 -1
  520. package/dist/lazy-D-bO2r4m.js +0 -13
  521. package/dist/lazy-D-bO2r4m.js.map +0 -1
  522. package/dist/lightbox-CVBogswK.cjs.map +0 -1
  523. package/dist/lightbox-D85XAAuC.js.map +0 -1
  524. package/dist/mixins-De1zjyhy.js.map +0 -1
  525. package/dist/mixins-DxHpyMHA.cjs.map +0 -1
  526. package/dist/notification-BtAK7NK8.js.map +0 -1
  527. package/dist/notification-DYzbUb5C.cjs +0 -24
  528. package/dist/notification-DYzbUb5C.cjs.map +0 -1
  529. package/dist/overlay-BVkqZmoS.cjs +0 -58
  530. package/dist/overlay-BVkqZmoS.cjs.map +0 -1
  531. package/dist/overlay-Del1sBEB.js.map +0 -1
  532. package/dist/overlay.confirm-body-BV9umTAl.cjs.map +0 -1
  533. package/dist/overlay.confirm-body-DSONXUzl.js.map +0 -1
  534. package/dist/overlay.service-XLlrsSdA.cjs +0 -1
  535. package/dist/radio-group-B-ORNtvR.cjs.map +0 -1
  536. package/dist/radio-group-DxX0iJBo.js.map +0 -1
  537. package/dist/select-B9uj_u-s.cjs +0 -56
  538. package/dist/select-B9uj_u-s.cjs.map +0 -1
  539. package/dist/select-C7gkA-ab.js.map +0 -1
  540. package/dist/sound.service-C7FDY_yD.cjs.map +0 -1
  541. package/dist/sound.service-O0232os6.js.map +0 -1
  542. package/dist/splash-screen-DIS4odDr.cjs.map +0 -1
  543. package/dist/splash-screen-jfE47xl0.js.map +0 -1
  544. package/dist/src-BP3h-9d9.js.map +0 -1
  545. package/dist/src-Um_pzb-U.cjs.map +0 -1
  546. package/dist/textarea-BvqENhTW.js.map +0 -1
  547. package/dist/textarea-qr7oL8oU.cjs +0 -43
  548. package/dist/textarea-qr7oL8oU.cjs.map +0 -1
  549. package/dist/theme.service-DwLhhOmP.js.map +0 -1
  550. package/dist/theme.service-kn9MC025.cjs +0 -1
  551. package/dist/theme.service-kn9MC025.cjs.map +0 -1
  552. package/dist/window-BSAemI9J.cjs +0 -59
  553. package/dist/window-BSAemI9J.cjs.map +0 -1
  554. package/dist/window-ConcHirJ.js.map +0 -1
@@ -735,8 +735,8 @@ class SoundService {
735
735
  )
736
736
 
737
737
  /** BehaviorSubject for current theme name (for debugging/display) */
738
- private readonly _themeName$ = new BehaviorSubject<string>('default')
739
- public readonly themeName$ = this._themeName$.asObservable()
738
+ readonly #themeName$ = new BehaviorSubject<string>('default')
739
+ public readonly themeName$ = this.#themeName$.asObservable()
740
740
 
741
741
  // Getters for synchronous access
742
742
  get theme(): SoundTheme | null {
@@ -758,7 +758,7 @@ class SoundService {
758
758
  private constructor() {
759
759
  // Subscribe to theme changes to update theme name
760
760
  this.theme$.subscribe(theme => {
761
- this._themeName$.next(theme?.name ?? 'default')
761
+ this.#themeName$.next(theme?.name ?? 'default')
762
762
  })
763
763
  }
764
764
 
@@ -45,12 +45,12 @@ export class SchmancyBreadcrumb extends SchmancyElement {
45
45
  // separator is visually present without affecting the accessible name.
46
46
  return html`
47
47
  <nav role="navigation">
48
- <slot @slotchange=${() => this._insertSeparators()}></slot>
48
+ <slot @slotchange=${() => this.insertSeparators()}></slot>
49
49
  </nav>
50
50
  `
51
51
  }
52
52
 
53
- private _insertSeparators() {
53
+ private insertSeparators() {
54
54
  const slot = this.shadowRoot?.querySelector('slot') as HTMLSlotElement | null
55
55
  if (!slot) return
56
56
  const items = slot.assignedElements({ flatten: true })
@@ -71,7 +71,7 @@ export class SchmancyButton extends SchmancyElement {
71
71
  * while a submit is in flight. Stays focusable; disabled buttons drop from
72
72
  * the tab order and are unreachable to AT (WCAG 2.2 AA).
73
73
  */
74
- private _formBusyObserver?: MutationObserver
74
+ private formBusyObserver?: MutationObserver
75
75
 
76
76
  constructor() {
77
77
  super()
@@ -128,20 +128,20 @@ export class SchmancyButton extends SchmancyElement {
128
128
  }
129
129
  }
130
130
  sync()
131
- this._formBusyObserver = new MutationObserver(sync)
132
- this._formBusyObserver.observe(form, { attributes: true, attributeFilter: ['aria-busy'] })
131
+ this.formBusyObserver = new MutationObserver(sync)
132
+ this.formBusyObserver.observe(form, { attributes: true, attributeFilter: ['aria-busy'] })
133
133
  }
134
134
 
135
135
  override disconnectedCallback(): void {
136
- this._formBusyObserver?.disconnect()
137
- this._formBusyObserver = undefined
136
+ this.formBusyObserver?.disconnect()
137
+ this.formBusyObserver = undefined
138
138
  super.disconnectedCallback()
139
139
  }
140
140
 
141
141
  @query('[part="base"]', true)
142
142
  private nativeElement!: HTMLElement
143
143
 
144
- private _ariaLabel!: string
144
+ #ariaLabel!: string
145
145
 
146
146
  /**
147
147
  * The variant of the button.
@@ -208,8 +208,8 @@ export class SchmancyButton extends SchmancyElement {
208
208
  public disabled = false
209
209
 
210
210
  public override set ariaLabel(value: string) {
211
- const oldVal = this._ariaLabel
212
- this._ariaLabel = value
211
+ const oldVal = this.#ariaLabel
212
+ this.#ariaLabel = value
213
213
 
214
214
  if (this.hasAttribute('aria-label')) {
215
215
  this.removeAttribute('aria-label')
@@ -219,7 +219,7 @@ export class SchmancyButton extends SchmancyElement {
219
219
 
220
220
  @property({ attribute: 'aria-label' })
221
221
  public override get ariaLabel() {
222
- return this._ariaLabel
222
+ return this.#ariaLabel
223
223
  }
224
224
 
225
225
  @queryAssignedElements({
@@ -293,7 +293,7 @@ export class SchmancyButton extends SchmancyElement {
293
293
  }
294
294
 
295
295
  // Prevent default behavior when the component is disabled.
296
- private _preventDefault(event: Event) {
296
+ private preventDefault(event: Event) {
297
297
  event.preventDefault()
298
298
  event.stopPropagation()
299
299
  }
@@ -429,7 +429,7 @@ export class SchmancyButton extends SchmancyElement {
429
429
  class="${this.classMap(classes)}"
430
430
  tabindex=${this.disabled ? '-1' : '0'}
431
431
  aria-disabled=${this.disabled}
432
- @click=${this.disabled ? this._preventDefault : undefined}
432
+ @click=${this.disabled ? this.preventDefault : undefined}
433
433
  >
434
434
  ${when(!this.disabled, () => html`<div class="${this.classMap(stateLayerClasses)}"></div>`)}
435
435
  <slot name="prefix"></slot>
@@ -1,5 +1,5 @@
1
1
  import { SchmancyElement } from '@mixins/index'
2
- import { css, html, LitElement, PropertyValueMap } from 'lit'
2
+ import { css, html, LitElement } from 'lit'
3
3
  import { customElement, property, query, state } from 'lit/decorators.js'
4
4
  import { ifDefined } from 'lit/directives/if-defined.js'
5
5
  import { when } from 'lit/directives/when.js'
@@ -50,7 +50,7 @@ export class SchmnacyIconButton extends SchmancyElement {
50
50
  @query('[part="base"]', true)
51
51
  private nativeElement!: HTMLElement
52
52
 
53
- private _ariaLabel!: string
53
+ #ariaLabel!: string
54
54
 
55
55
  /**
56
56
  * The size of the icon.
@@ -123,31 +123,31 @@ export class SchmnacyIconButton extends SchmancyElement {
123
123
  // no slotchange ever fires), or a nested <schmancy-icon> element.
124
124
  // `textContent` flattens through all three.
125
125
  @state()
126
- private _capturedIcon?: string
126
+ private capturedIcon?: string
127
127
 
128
- private _observer?: MutationObserver
128
+ private observer?: MutationObserver
129
129
 
130
130
  connectedCallback(): void {
131
131
  super.connectedCallback()
132
- this._captureIcon()
133
- this._observer = new MutationObserver(() => this._captureIcon())
134
- this._observer.observe(this, { childList: true, characterData: true, subtree: true })
132
+ this.captureIcon()
133
+ this.observer = new MutationObserver(() => this.captureIcon())
134
+ this.observer.observe(this, { childList: true, characterData: true, subtree: true })
135
135
  }
136
136
 
137
137
  disconnectedCallback(): void {
138
138
  super.disconnectedCallback()
139
- this._observer?.disconnect()
139
+ this.observer?.disconnect()
140
140
  }
141
141
 
142
- private _captureIcon(): void {
142
+ private captureIcon(): void {
143
143
  if (this.icon || this.text) return
144
- this._capturedIcon = this.textContent?.trim() || undefined
144
+ this.capturedIcon = this.textContent?.trim() || undefined
145
145
  }
146
146
 
147
147
  // Manage aria-label manually so that we can always use our internal property.
148
148
  public override set ariaLabel(value: string) {
149
- const oldVal = this._ariaLabel
150
- this._ariaLabel = value
149
+ const oldVal = this.#ariaLabel
150
+ this.#ariaLabel = value
151
151
 
152
152
  if (this.hasAttribute('aria-label')) {
153
153
  this.removeAttribute('aria-label')
@@ -157,7 +157,7 @@ export class SchmnacyIconButton extends SchmancyElement {
157
157
 
158
158
  @property({ attribute: 'aria-label' })
159
159
  public override get ariaLabel() {
160
- return this._ariaLabel
160
+ return this.#ariaLabel
161
161
  }
162
162
 
163
163
  /** Sets focus in the button. */
@@ -175,12 +175,12 @@ export class SchmnacyIconButton extends SchmancyElement {
175
175
  }
176
176
 
177
177
  // Prevent default behavior when the component is disabled.
178
- private _preventDefault(event: Event) {
178
+ private preventDefault(event: Event) {
179
179
  event.preventDefault()
180
180
  event.stopPropagation()
181
181
  }
182
182
 
183
- protected firstUpdated(_changedProperties: PropertyValueMap<unknown> | Map<PropertyKey, unknown>): void {
183
+ protected firstUpdated(): void {
184
184
  // Add any first-update logic here if needed.
185
185
  }
186
186
 
@@ -236,14 +236,14 @@ export class SchmnacyIconButton extends SchmancyElement {
236
236
  class="${this.classMap(classes)}"
237
237
  tabindex=${this.disabled ? '-1' : '0'}
238
238
  aria-disabled=${this.disabled}
239
- @click=${this.disabled ? this._preventDefault : undefined}
239
+ @click=${this.disabled ? this.preventDefault : undefined}
240
240
  >
241
241
  ${when(!this.disabled, () => html`<div class="absolute inset-0 ${this.classMap(stateLayerClasses)}"></div>`)}
242
242
  ${this.text
243
243
  ? html`<slot></slot>`
244
244
  : html`
245
245
  <slot style="display:none"></slot>
246
- <schmancy-icon class=${iconSizeClass}>${this.icon || this._capturedIcon}</schmancy-icon>
246
+ <schmancy-icon class=${iconSizeClass}>${this.icon || this.capturedIcon}</schmancy-icon>
247
247
  `
248
248
  }
249
249
  </a>
@@ -266,7 +266,7 @@ export class SchmnacyIconButton extends SchmancyElement {
266
266
  ? html`<slot></slot>`
267
267
  : html`
268
268
  <slot style="display:none"></slot>
269
- <schmancy-icon class=${iconSizeClass}>${this.icon || this._capturedIcon}</schmancy-icon>
269
+ <schmancy-icon class=${iconSizeClass}>${this.icon || this.capturedIcon}</schmancy-icon>
270
270
  `
271
271
  }
272
272
  </button>
package/src/card/card.ts CHANGED
@@ -156,18 +156,18 @@ export default class SchmancyCard extends SchmancyElement {
156
156
 
157
157
  connectedCallback() {
158
158
  super.connectedCallback()
159
- this._updateAriaAttributes()
159
+ this.updateAriaAttributes()
160
160
  }
161
161
 
162
162
  updated(changedProperties: Map<string, unknown>) {
163
163
  super.updated(changedProperties)
164
164
  if (changedProperties.has('interactive') || changedProperties.has('disabled')) {
165
- this._updateAriaAttributes()
165
+ this.updateAriaAttributes()
166
166
  }
167
167
  }
168
168
 
169
169
  // Consolidate ARIA attribute updates
170
- private _updateAriaAttributes() {
170
+ private updateAriaAttributes() {
171
171
  const isInteractive = this.interactive && !this.disabled
172
172
 
173
173
  if (isInteractive) {
@@ -184,7 +184,7 @@ export default class SchmancyCard extends SchmancyElement {
184
184
  }
185
185
 
186
186
  // Shared ripple creation logic
187
- private _addRipple(x: number, y: number) {
187
+ private addRipple(x: number, y: number) {
188
188
  const id = this.nextRippleId++
189
189
  this.ripples = [...this.ripples, { x, y, id }]
190
190
 
@@ -195,7 +195,7 @@ export default class SchmancyCard extends SchmancyElement {
195
195
  }
196
196
 
197
197
  // Shared navigation logic
198
- private _navigate() {
198
+ private navigate() {
199
199
  if (!this.href) return
200
200
 
201
201
  if (this.target === '_blank') {
@@ -206,9 +206,9 @@ export default class SchmancyCard extends SchmancyElement {
206
206
  }
207
207
 
208
208
  // Combined action trigger (ripple + navigate + event)
209
- private _triggerAction(x: number, y: number) {
210
- this._addRipple(x, y)
211
- this._navigate()
209
+ private triggerAction(x: number, y: number) {
210
+ this.addRipple(x, y)
211
+ this.navigate()
212
212
 
213
213
  this.dispatchEvent(
214
214
  new CustomEvent('schmancy-click', {
@@ -223,7 +223,7 @@ export default class SchmancyCard extends SchmancyElement {
223
223
  if (this.disabled || !this.interactive) return
224
224
 
225
225
  const rect = this.getBoundingClientRect()
226
- this._triggerAction(e.clientX - rect.left, e.clientY - rect.top)
226
+ this.triggerAction(e.clientX - rect.left, e.clientY - rect.top)
227
227
  }
228
228
 
229
229
  private handleKeyDown = (e: KeyboardEvent) => {
@@ -231,22 +231,22 @@ export default class SchmancyCard extends SchmancyElement {
231
231
 
232
232
  if (e.key === 'Enter' || e.key === ' ') {
233
233
  e.preventDefault()
234
- this._setPressed(true)
234
+ this.setPressed(true)
235
235
 
236
236
  // Simulate click at center
237
237
  const rect = this.getBoundingClientRect()
238
- this._triggerAction(rect.width / 2, rect.height / 2)
238
+ this.triggerAction(rect.width / 2, rect.height / 2)
239
239
  }
240
240
  }
241
241
 
242
242
  private handleKeyUp = (e: KeyboardEvent) => {
243
243
  if (e.key === 'Enter' || e.key === ' ') {
244
- this._setPressed(false)
244
+ this.setPressed(false)
245
245
  }
246
246
  }
247
247
 
248
248
  // Consolidate pressed state management
249
- private _setPressed(pressed: boolean) {
249
+ private setPressed(pressed: boolean) {
250
250
  this.pressed = pressed
251
251
  if (pressed) {
252
252
  this.setAttribute('pressed', '')
@@ -257,11 +257,11 @@ export default class SchmancyCard extends SchmancyElement {
257
257
 
258
258
  private handleMouseDown = () => {
259
259
  if (this.disabled || !this.interactive) return
260
- this._setPressed(true)
260
+ this.setPressed(true)
261
261
  }
262
262
 
263
- private handleMouseUp = () => this._setPressed(false)
264
- private handleMouseLeave = () => this._setPressed(false)
263
+ private handleMouseUp = () => this.setPressed(false)
264
+ private handleMouseLeave = () => this.setPressed(false)
265
265
 
266
266
  protected render() {
267
267
  const isInteractive = this.interactive && !this.disabled
@@ -139,7 +139,7 @@ export class SchmancyContentDrawer extends SchmancyElement {
139
139
  }
140
140
  }
141
141
 
142
- private _overlaySubscription: Subscription | null = null
142
+ private overlaySubscription: Subscription | null = null
143
143
 
144
144
  private handleRender(detail: TRenderCustomEvent['detail']) {
145
145
  if (this.mode === 'push') {
@@ -155,16 +155,16 @@ export class SchmancyContentDrawer extends SchmancyElement {
155
155
  // `show()` mounts the same component as a modal overlay; subscription
156
156
  // = lifecycle, so dropping the previous one closes any prior modal
157
157
  // before opening the next.
158
- this._overlaySubscription?.unsubscribe()
159
- this._overlaySubscription = show(detail.component, { props: detail.props })
158
+ this.overlaySubscription?.unsubscribe()
159
+ this.overlaySubscription = show(detail.component, { props: detail.props })
160
160
  .pipe(takeUntil(this.disconnecting))
161
- .subscribe({ complete: () => { this._overlaySubscription = null } })
161
+ .subscribe({ complete: () => { this.overlaySubscription = null } })
162
162
  }
163
163
  }
164
164
 
165
165
  private dismissOverlay() {
166
- this._overlaySubscription?.unsubscribe()
167
- this._overlaySubscription = null
166
+ this.overlaySubscription?.unsubscribe()
167
+ this.overlaySubscription = null
168
168
  }
169
169
 
170
170
  getOffsetTop(element: HTMLElement | null) {
@@ -133,11 +133,11 @@ export default class SchmancyDetails extends SurfaceMixin(SchmancyElement) {
133
133
 
134
134
  @property({ type: Boolean, reflect: true })
135
135
  get open() {
136
- return this._open$.value
136
+ return this.#open$.value
137
137
  }
138
138
  set open(value: boolean) {
139
- if (this._open$.value !== value) {
140
- this._open$.next(value)
139
+ if (this.#open$.value !== value) {
140
+ this.#open$.next(value)
141
141
  }
142
142
  }
143
143
 
@@ -162,16 +162,16 @@ export default class SchmancyDetails extends SurfaceMixin(SchmancyElement) {
162
162
  @property({ attribute: 'content-padding' })
163
163
  contentPadding = 'p-3'
164
164
 
165
- private _open$ = new BehaviorSubject<boolean>(false)
166
- private _indicatorRef: Ref<HTMLElement> = createRef()
167
- private _contentRef: Ref<HTMLDivElement> = createRef()
168
- private _currentAnimation?: Animation
169
- private _indicatorIsOpen = false
170
- private _closing = false
171
- private _closeSub?: Subscription
165
+ #open$ = new BehaviorSubject<boolean>(false)
166
+ #indicatorRef: Ref<HTMLElement> = createRef()
167
+ #contentRef: Ref<HTMLDivElement> = createRef()
168
+ #currentAnimation?: Animation
169
+ #indicatorIsOpen = false
170
+ #closing = false
171
+ #closeSub?: Subscription
172
172
 
173
173
  /** True when browser handles close animation natively via ::details-content */
174
- private _nativeAnim =
174
+ #nativeAnim =
175
175
  typeof CSS !== 'undefined' &&
176
176
  !!CSS.supports?.('selector(::details-content)') &&
177
177
  !!CSS.supports?.('interpolate-size', 'allow-keywords')
@@ -180,7 +180,7 @@ export default class SchmancyDetails extends SurfaceMixin(SchmancyElement) {
180
180
  * Lazy rendering: tracks if content has ever been opened.
181
181
  * Once true, content stays rendered (even when closed) for smooth animations.
182
182
  */
183
- @state() private _hasOpened = false
183
+ @state() private hasOpened = false
184
184
 
185
185
  constructor() {
186
186
  super()
@@ -191,15 +191,15 @@ export default class SchmancyDetails extends SurfaceMixin(SchmancyElement) {
191
191
  connectedCallback() {
192
192
  super.connectedCallback()
193
193
 
194
- this._open$
194
+ this.#open$
195
195
  .pipe(
196
196
  distinctUntilChanged(),
197
197
  tap(isOpen => {
198
- if (isOpen && !this._hasOpened) {
199
- this._hasOpened = true
198
+ if (isOpen && !this.hasOpened) {
199
+ this.hasOpened = true
200
200
  }
201
- this._animateIndicator(isOpen)
202
- this._updateIndicatorSlot()
201
+ this.#animateIndicator(isOpen)
202
+ this.#updateIndicatorSlot()
203
203
  }),
204
204
  takeUntil(this.disconnecting),
205
205
  )
@@ -208,11 +208,11 @@ export default class SchmancyDetails extends SurfaceMixin(SchmancyElement) {
208
208
 
209
209
  disconnectedCallback() {
210
210
  super.disconnectedCallback()
211
- this._closeSub?.unsubscribe()
211
+ this.#closeSub?.unsubscribe()
212
212
  }
213
213
 
214
214
  render() {
215
- const isOpen = this._open$.value
215
+ const isOpen = this.#open$.value
216
216
 
217
217
  const detailsClasses = this.classMap({
218
218
  'w-full rounded-xl transition-shadow duration-200 ease-out': true,
@@ -240,15 +240,15 @@ export default class SchmancyDetails extends SurfaceMixin(SchmancyElement) {
240
240
  })
241
241
 
242
242
  return html`
243
- <details ?open=${isOpen} @toggle=${this._handleToggle} class=${detailsClasses}>
244
- <summary ${this.locked ? '' : magnetic({ strength: 2, radius: 50 })} ${this.locked ? '' : cursorGlow({ radius: 250, intensity: 0.08 })} class=${summaryClasses} tabindex=${this.locked ? -1 : 0} @click=${this._handleSummaryClick}>
243
+ <details ?open=${isOpen} @toggle=${this.#handleToggle} class=${detailsClasses}>
244
+ <summary ${this.locked ? '' : magnetic({ strength: 2, radius: 50 })} ${this.locked ? '' : cursorGlow({ radius: 250, intensity: 0.08 })} class=${summaryClasses} tabindex=${this.locked ? -1 : 0} @click=${this.#handleSummaryClick}>
245
245
  ${!this.hideIndicator
246
246
  ? html`
247
247
  <span
248
- ${ref(this._indicatorRef)}
248
+ ${ref(this.#indicatorRef)}
249
249
  class="flex items-center justify-center w-5 h-5 rounded-full shrink-0 opacity-70 group-hover:opacity-100"
250
250
  >
251
- <slot name="indicator" @slotchange=${this._handleIndicatorSlotChange}>
251
+ <slot name="indicator" @slotchange=${this.#handleIndicatorSlotChange}>
252
252
  <svg
253
253
  width="20"
254
254
  height="20"
@@ -278,13 +278,13 @@ export default class SchmancyDetails extends SurfaceMixin(SchmancyElement) {
278
278
  </summary>
279
279
 
280
280
  <div
281
- ${ref(this._contentRef)}
281
+ ${ref(this.#contentRef)}
282
282
  class="content-wrapper"
283
- data-open=${isOpen && !this._closing}
283
+ data-open=${isOpen && !this.#closing}
284
284
  aria-hidden=${isOpen ? 'false' : 'true'}
285
285
  >
286
286
  <div class="content-inner">
287
- ${this._hasOpened
287
+ ${this.hasOpened
288
288
  ? html`
289
289
  <div class=${contentClasses}>
290
290
  <slot></slot>
@@ -298,7 +298,7 @@ export default class SchmancyDetails extends SurfaceMixin(SchmancyElement) {
298
298
  `
299
299
  }
300
300
 
301
- private _handleSummaryClick(e: MouseEvent) {
301
+ #handleSummaryClick(e: MouseEvent) {
302
302
  if ((e.target as HTMLElement).closest('[slot="actions"]')) {
303
303
  e.preventDefault()
304
304
  return
@@ -307,23 +307,23 @@ export default class SchmancyDetails extends SurfaceMixin(SchmancyElement) {
307
307
  e.preventDefault()
308
308
  return
309
309
  }
310
- if (this._closing) {
310
+ if (this.#closing) {
311
311
  e.preventDefault()
312
312
  return
313
313
  }
314
314
 
315
315
  // Native animated path (Chromium 131+): browser handles everything via CSS
316
- if (this._nativeAnim) return
316
+ if (this.#nativeAnim) return
317
317
 
318
318
  // Fallback: manually animate close via CSS transition, then close native details
319
- if (this._open$.value) {
319
+ if (this.#open$.value) {
320
320
  e.preventDefault()
321
- this._startClose()
321
+ this.#startClose()
322
322
  }
323
- // If closed, let native open happen (handled by _handleToggle)
323
+ // If closed, let native open happen (handled by #handleToggle)
324
324
  }
325
325
 
326
- private _handleToggle(e: Event) {
326
+ #handleToggle(e: Event) {
327
327
  e.stopPropagation()
328
328
 
329
329
  const ownDetails = this.shadowRoot?.querySelector('details')
@@ -331,15 +331,15 @@ export default class SchmancyDetails extends SurfaceMixin(SchmancyElement) {
331
331
 
332
332
  const newState = ownDetails.open
333
333
 
334
- if (this._nativeAnim) {
334
+ if (this.#nativeAnim) {
335
335
  // Native path: handle both open and close
336
- if (this._open$.value !== newState) {
336
+ if (this.#open$.value !== newState) {
337
337
  this.open = newState
338
338
  this.dispatchScopedEvent('toggle', { open: newState })
339
339
  }
340
340
  } else {
341
- // Fallback path: only handle OPEN (close is driven by _startClose)
342
- if (newState && this._open$.value !== newState) {
341
+ // Fallback path: only handle OPEN (close is driven by #startClose)
342
+ if (newState && this.#open$.value !== newState) {
343
343
  this.open = newState
344
344
  this.dispatchScopedEvent('toggle', { open: newState })
345
345
  }
@@ -350,25 +350,25 @@ export default class SchmancyDetails extends SurfaceMixin(SchmancyElement) {
350
350
  * Fallback close: trigger CSS grid+opacity transition, then close native <details>.
351
351
  * The CSS transition (400ms) handles the visual collapse — no WAAPI needed.
352
352
  */
353
- private _startClose() {
354
- this._closing = true
355
- this._closeSub?.unsubscribe()
353
+ #startClose() {
354
+ this.#closing = true
355
+ this.#closeSub?.unsubscribe()
356
356
 
357
357
  // Immediately collapse the grid wrapper via DOM attribute
358
- this._contentRef.value?.setAttribute('data-open', 'false')
358
+ this.#contentRef.value?.setAttribute('data-open', 'false')
359
359
 
360
360
  // Animate indicator immediately
361
- this._animateIndicator(false)
361
+ this.#animateIndicator(false)
362
362
 
363
363
  // After CSS transition completes, close native details and update state
364
- const wrapper = this._contentRef.value
364
+ const wrapper = this.#contentRef.value
365
365
  if (!wrapper) return
366
366
 
367
- this._closeSub = fromEvent<TransitionEvent>(wrapper, 'transitionend').pipe(
367
+ this.#closeSub = fromEvent<TransitionEvent>(wrapper, 'transitionend').pipe(
368
368
  filter(e => e.propertyName === 'grid-template-rows'),
369
369
  take(1),
370
370
  tap(() => {
371
- this._closing = false
371
+ this.#closing = false
372
372
  this.open = false
373
373
  this.dispatchScopedEvent('toggle', { open: false })
374
374
  }),
@@ -376,33 +376,33 @@ export default class SchmancyDetails extends SurfaceMixin(SchmancyElement) {
376
376
  ).subscribe()
377
377
  }
378
378
 
379
- private _handleIndicatorSlotChange(e: Event) {
379
+ #handleIndicatorSlotChange(e: Event) {
380
380
  const slot = e.target as HTMLSlotElement
381
381
  slot.assignedElements().forEach(el => {
382
- el.setAttribute('data-open', String(this._open$.value))
382
+ el.setAttribute('data-open', String(this.#open$.value))
383
383
  })
384
384
  }
385
385
 
386
- private _updateIndicatorSlot() {
386
+ #updateIndicatorSlot() {
387
387
  const slot = this.shadowRoot?.querySelector('slot[name="indicator"]') as HTMLSlotElement | null
388
388
  if (slot) {
389
389
  slot.assignedElements().forEach(el => {
390
- el.setAttribute('data-open', String(this._open$.value))
390
+ el.setAttribute('data-open', String(this.#open$.value))
391
391
  })
392
392
  }
393
393
  }
394
394
 
395
395
  /** Idempotent indicator rotation — skips if already at target state */
396
- private _animateIndicator(isOpen: boolean) {
397
- if (this._indicatorIsOpen === isOpen) return
398
- this._indicatorIsOpen = isOpen
396
+ #animateIndicator(isOpen: boolean) {
397
+ if (this.#indicatorIsOpen === isOpen) return
398
+ this.#indicatorIsOpen = isOpen
399
399
 
400
- const indicator = this._indicatorRef.value
400
+ const indicator = this.#indicatorRef.value
401
401
  if (!indicator || reducedMotion$.value) return
402
402
 
403
- this._currentAnimation?.cancel()
403
+ this.#currentAnimation?.cancel()
404
404
 
405
- this._currentAnimation = indicator.animate(
405
+ this.#currentAnimation = indicator.animate(
406
406
  [
407
407
  { transform: `rotate(${isOpen ? '0deg' : `${this.indicatorRotate}deg`})` },
408
408
  { transform: `rotate(${isOpen ? `${this.indicatorRotate}deg` : '0deg'})` },
@@ -17,7 +17,8 @@ interface State {
17
17
  class AIBadgeDirective extends AsyncDirective {
18
18
  private state: State | null = null
19
19
 
20
- render(_message?: string) {
20
+ render(message?: string) {
21
+ void message
21
22
  return noChange
22
23
  }
23
24
 
@@ -56,7 +56,8 @@ class AnimateTextDirective extends AsyncDirective {
56
56
  private disconnecting$ = new Subject<void>()
57
57
  private initialized = false
58
58
 
59
- render(_options: AnimateTextOptions) {
59
+ render(options: AnimateTextOptions) {
60
+ void options
60
61
  return noChange
61
62
  }
62
63
 
@@ -23,7 +23,8 @@ interface ExtendedArtState extends ArtState {
23
23
  class ArtDirective extends AsyncDirective {
24
24
  private state: ExtendedArtState | null = null
25
25
 
26
- render(_options: ArtOptions) {
26
+ render(options: ArtOptions) {
27
+ void options
27
28
  return noChange
28
29
  }
29
30
 
@@ -317,7 +317,8 @@ class FutureCellDirective extends AsyncDirective {
317
317
  return base * (0.15 + pct * 0.85)
318
318
  }
319
319
 
320
- render(_options: FutureCellOptions) {
320
+ render(options: FutureCellOptions) {
321
+ void options
321
322
  return noChange
322
323
  }
323
324
 
@@ -36,7 +36,9 @@ class ConfirmClickDirective extends Directive {
36
36
  }
37
37
  }
38
38
 
39
- render(_callback: () => void, _options?: ConfirmClickOptions) {
39
+ render(callback: () => void, options?: ConfirmClickOptions) {
40
+ void callback
41
+ void options
40
42
  return undefined
41
43
  }
42
44
 
@@ -105,11 +107,11 @@ class ConfirmClickDirective extends Directive {
105
107
  const timeout = options.timeout ?? 3000
106
108
 
107
109
  // Read the host's icon — reuse it so the user sees the same action "armed"
108
- const iconButton = element as HTMLElement & { icon?: string; _capturedIcon?: string }
110
+ const iconButton = element as HTMLElement & { icon?: string; ['capturedIcon']?: string }
109
111
  const hostIcon =
110
112
  options.icon ??
111
113
  iconButton.icon ??
112
- iconButton._capturedIcon ??
114
+ iconButton['capturedIcon'] ??
113
115
  element.textContent?.trim() ??
114
116
  'warning'
115
117