@mhmo91/schmancy 0.10.37 → 0.10.39

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 (558) 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 +2334 -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-OBZ77exO.cjs → boat-DsFJNfPH.cjs} +1 -1
  31. package/dist/{boat-OBZ77exO.cjs.map → boat-DsFJNfPH.cjs.map} +1 -1
  32. package/dist/{boat-BHPqSqJd.js → boat-fqodYt2n.js} +4 -4
  33. package/dist/{boat-BHPqSqJd.js.map → boat-fqodYt2n.js.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-B9RfBt-n.cjs +63 -0
  47. package/dist/button-B9RfBt-n.cjs.map +1 -0
  48. package/dist/{button-kcpPQavY.js → button-D6LJC-HC.js} +11 -9
  49. package/dist/button-D6LJC-HC.js.map +1 -0
  50. package/dist/button.cjs +7 -6
  51. package/dist/button.cjs.map +1 -1
  52. package/dist/button.js +18 -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-vWmwqQed.js → chips-BoZSpSh_.js} +21 -19
  67. package/dist/chips-BoZSpSh_.js.map +1 -0
  68. package/dist/{chips-C9dS1WKn.cjs → chips-wfJ7YtWv.cjs} +4 -3
  69. package/dist/chips-wfJ7YtWv.cjs.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-BHSzlwSL.cjs} +2 -2
  79. package/dist/date-range-BHSzlwSL.cjs.map +1 -0
  80. package/dist/{date-range-D3ge1b4c.js → date-range-DJrdpzev.js} +4 -4
  81. package/dist/date-range-DJrdpzev.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 +2 -1
  119. package/dist/fab.cjs.map +1 -1
  120. package/dist/fab.js +3 -2
  121. package/dist/fab.js.map +1 -1
  122. package/dist/{float-C-Ko0Le3.js → float-Cgllk_H9.js} +2 -2
  123. package/dist/{float-C-Ko0Le3.js.map → float-Cgllk_H9.js.map} +1 -1
  124. package/dist/{float-C17xgMT1.cjs → float-OvqX0nqG.cjs} +1 -1
  125. package/dist/{float-C17xgMT1.cjs.map → float-OvqX0nqG.cjs.map} +1 -1
  126. package/dist/float.cjs +1 -1
  127. package/dist/float.js +1 -1
  128. package/dist/form-4GKROq2P.cjs +27 -0
  129. package/dist/form-4GKROq2P.cjs.map +1 -0
  130. package/dist/{form-DA0hUu2h.js → form-DxaV_Ose.js} +39 -39
  131. package/dist/form-DxaV_Ose.js.map +1 -0
  132. package/dist/form.cjs +3 -3
  133. package/dist/form.cjs.map +1 -1
  134. package/dist/form.js +34 -34
  135. package/dist/form.js.map +1 -1
  136. package/dist/gravity-6pL6CfIr.cjs.map +1 -1
  137. package/dist/gravity-sVK3zGBF.js.map +1 -1
  138. package/dist/handover/agent-runtime-followups.md +1 -1
  139. package/dist/handover/agent-runtime-v1.md +3 -3
  140. package/dist/{icons-C6UfxmHZ.js → icons-CJ2mXcBi.js} +9 -9
  141. package/dist/icons-CJ2mXcBi.js.map +1 -0
  142. package/dist/icons-sZ-LybA9.cjs +24 -0
  143. package/dist/icons-sZ-LybA9.cjs.map +1 -0
  144. package/dist/icons.cjs +1 -1
  145. package/dist/icons.js +1 -1
  146. package/dist/{iframe-BTjZfYyh.js → iframe-DWvN5nGB.js} +11 -11
  147. package/dist/iframe-DWvN5nGB.js.map +1 -0
  148. package/dist/{iframe-wuYT2xFz.cjs → iframe-DpCv-QH2.cjs} +7 -7
  149. package/dist/iframe-DpCv-QH2.cjs.map +1 -0
  150. package/dist/iframe.cjs +1 -1
  151. package/dist/iframe.js +1 -1
  152. package/dist/index.cjs +1 -1
  153. package/dist/index.js +35 -35
  154. package/dist/{input-B_4g2ulO.js → input-BCCHz6tB.js} +7 -7
  155. package/dist/input-BCCHz6tB.js.map +1 -0
  156. package/dist/{input-BrDiIT60.cjs → input-Z-3N5JMv.cjs} +2 -2
  157. package/dist/input-Z-3N5JMv.cjs.map +1 -0
  158. package/dist/{input-chip-BlWhOruv.js → input-chip-BOrcKH-H.js} +2 -2
  159. package/dist/{input-chip-BlWhOruv.js.map → input-chip-BOrcKH-H.js.map} +1 -1
  160. package/dist/{input-chip-B-XWh4aE.cjs → input-chip-ChAgRCXZ.cjs} +1 -1
  161. package/dist/{input-chip-B-XWh4aE.cjs.map → input-chip-ChAgRCXZ.cjs.map} +1 -1
  162. package/dist/input.cjs +1 -1
  163. package/dist/input.js +1 -1
  164. package/dist/json.cjs +1 -1
  165. package/dist/json.js +3 -3
  166. package/dist/kbd.cjs +1 -1
  167. package/dist/kbd.js +2 -2
  168. package/dist/{layout-Dxit9enO.js → layout-CFiG3lNT.js} +1 -1
  169. package/dist/{layout-Dxit9enO.js.map → layout-CFiG3lNT.js.map} +1 -1
  170. package/dist/{layout-BhyIcEVu.cjs → layout-DZ4dpLh9.cjs} +1 -1
  171. package/dist/{layout-BhyIcEVu.cjs.map → layout-DZ4dpLh9.cjs.map} +1 -1
  172. package/dist/layout.cjs +1 -1
  173. package/dist/layout.js +2 -2
  174. package/dist/lazy-BaAiIUru.js +19 -0
  175. package/dist/lazy-BaAiIUru.js.map +1 -0
  176. package/dist/lazy-C-7a4FAe.cjs +1 -0
  177. package/dist/lazy-C-7a4FAe.cjs.map +1 -0
  178. package/dist/{lightbox-D85XAAuC.js → lightbox-B7Y4Nij_.js} +2 -2
  179. package/dist/lightbox-B7Y4Nij_.js.map +1 -0
  180. package/dist/{lightbox-CVBogswK.cjs → lightbox-Dpwsn8Qr.cjs} +1 -1
  181. package/dist/lightbox-Dpwsn8Qr.cjs.map +1 -0
  182. package/dist/lightbox.cjs +1 -1
  183. package/dist/lightbox.js +1 -1
  184. package/dist/{list-nVjLskgx.cjs → list-BhM-6dAi.cjs} +1 -1
  185. package/dist/{list-nVjLskgx.cjs.map → list-BhM-6dAi.cjs.map} +1 -1
  186. package/dist/{list-DOF_yVn5.js → list-C5WVoIfJ.js} +2 -2
  187. package/dist/{list-DOF_yVn5.js.map → list-C5WVoIfJ.js.map} +1 -1
  188. package/dist/list.cjs +1 -1
  189. package/dist/list.js +1 -1
  190. package/dist/magnetic-DKtc4umC.cjs.map +1 -1
  191. package/dist/magnetic-DaOOv5Dz.js.map +1 -1
  192. package/dist/{menu-QrAK5Uu9.js → menu-Dvi_tQgH.js} +3 -3
  193. package/dist/{menu-QrAK5Uu9.js.map → menu-Dvi_tQgH.js.map} +1 -1
  194. package/dist/{menu-DqmNjLgY.cjs → menu-GZARYp6I.cjs} +1 -1
  195. package/dist/{menu-DqmNjLgY.cjs.map → menu-GZARYp6I.cjs.map} +1 -1
  196. package/dist/menu.cjs +1 -1
  197. package/dist/menu.js +1 -1
  198. package/dist/{mixins-De1zjyhy.js → mixins-DGBI7YPO.js} +11 -11
  199. package/dist/mixins-DGBI7YPO.js.map +1 -0
  200. package/dist/{mixins-DxHpyMHA.cjs → mixins-fIpzhVMd.cjs} +1 -1
  201. package/dist/mixins-fIpzhVMd.cjs.map +1 -0
  202. package/dist/mixins.cjs +1 -1
  203. package/dist/mixins.js +2 -2
  204. package/dist/nav-drawer.cjs +1 -1
  205. package/dist/nav-drawer.js +1 -1
  206. package/dist/navigation-bar.cjs +1 -1
  207. package/dist/navigation-bar.js +1 -1
  208. package/dist/navigation-rail.cjs +3 -3
  209. package/dist/navigation-rail.cjs.map +1 -1
  210. package/dist/navigation-rail.js +11 -10
  211. package/dist/navigation-rail.js.map +1 -1
  212. package/dist/notification-B6yDL91t.cjs +24 -0
  213. package/dist/notification-B6yDL91t.cjs.map +1 -0
  214. package/dist/{notification-BtAK7NK8.js → notification-BB9OBRCr.js} +22 -22
  215. package/dist/notification-BB9OBRCr.js.map +1 -0
  216. package/dist/notification.cjs +1 -1
  217. package/dist/notification.js +1 -1
  218. package/dist/{option-DHwA0miA.js → option-B21ImL0k.js} +2 -2
  219. package/dist/{option-DHwA0miA.js.map → option-B21ImL0k.js.map} +1 -1
  220. package/dist/{option-DnSPa8ro.cjs → option-CJQM5I9q.cjs} +1 -1
  221. package/dist/{option-DnSPa8ro.cjs.map → option-CJQM5I9q.cjs.map} +1 -1
  222. package/dist/option.cjs +1 -1
  223. package/dist/option.js +1 -1
  224. package/dist/{overlay-Del1sBEB.js → overlay-DwJWVyk2.js} +75 -67
  225. package/dist/overlay-DwJWVyk2.js.map +1 -0
  226. package/dist/overlay-N0trD-4u.cjs +58 -0
  227. package/dist/overlay-N0trD-4u.cjs.map +1 -0
  228. package/dist/overlay.cjs +1 -1
  229. package/dist/{overlay.confirm-body-BV9umTAl.cjs → overlay.confirm-body-CtXIi421.cjs} +3 -3
  230. package/dist/overlay.confirm-body-CtXIi421.cjs.map +1 -0
  231. package/dist/{overlay.confirm-body-DSONXUzl.js → overlay.confirm-body-DwzKhXxM.js} +10 -10
  232. package/dist/overlay.confirm-body-DwzKhXxM.js.map +1 -0
  233. package/dist/overlay.js +4 -4
  234. package/dist/{overlay.service-BTp5Oq7f.js → overlay.service-BDLi0p5M.js} +4 -4
  235. package/dist/{overlay.service-BTp5Oq7f.js.map → overlay.service-BDLi0p5M.js.map} +1 -1
  236. package/dist/overlay.service-Dbu5uP9E.cjs +1 -0
  237. package/dist/{overlay.service-XLlrsSdA.cjs.map → overlay.service-Dbu5uP9E.cjs.map} +1 -1
  238. package/dist/{progress-DUbTL9g9.cjs → progress-B-Qg44XY.cjs} +1 -1
  239. package/dist/{progress-DUbTL9g9.cjs.map → progress-B-Qg44XY.cjs.map} +1 -1
  240. package/dist/{progress-DYA83CFU.js → progress-CUSS1sNz.js} +2 -2
  241. package/dist/{progress-DYA83CFU.js.map → progress-CUSS1sNz.js.map} +1 -1
  242. package/dist/progress.cjs +1 -1
  243. package/dist/progress.js +1 -1
  244. package/dist/{radio-group-DxX0iJBo.js → radio-group-AHLvrN8O.js} +7 -7
  245. package/dist/radio-group-AHLvrN8O.js.map +1 -0
  246. package/dist/{radio-group-B-ORNtvR.cjs → radio-group-BEtvCSS1.cjs} +2 -2
  247. package/dist/radio-group-BEtvCSS1.cjs.map +1 -0
  248. package/dist/radio-group.cjs +1 -1
  249. package/dist/radio-group.js +1 -1
  250. package/dist/range.cjs +1 -1
  251. package/dist/range.js +2 -2
  252. package/dist/select-BWpV2iv-.cjs +56 -0
  253. package/dist/select-BWpV2iv-.cjs.map +1 -0
  254. package/dist/{select-C7gkA-ab.js → select-Cawz88lG.js} +46 -46
  255. package/dist/select-Cawz88lG.js.map +1 -0
  256. package/dist/select.cjs +1 -1
  257. package/dist/select.js +1 -1
  258. package/dist/skeleton.cjs +1 -1
  259. package/dist/skeleton.js +2 -2
  260. package/dist/skills/SKILL.md +9 -0
  261. package/dist/skills/overlay.md +14 -7
  262. package/dist/skills/schmancy/SKILL.md +9 -0
  263. package/dist/skills/schmancy/overlay.md +14 -7
  264. package/dist/slider.cjs +1 -1
  265. package/dist/slider.js +2 -2
  266. package/dist/{sound.service-O0232os6.js → sound.service-CK-5zob-.js} +4 -3
  267. package/dist/sound.service-CK-5zob-.js.map +1 -0
  268. package/dist/{sound.service-C7FDY_yD.cjs → sound.service-D2GGaBXc.cjs} +1 -1
  269. package/dist/sound.service-D2GGaBXc.cjs.map +1 -0
  270. package/dist/{splash-screen-jfE47xl0.js → splash-screen-BUEtjHXC.js} +13 -13
  271. package/dist/splash-screen-BUEtjHXC.js.map +1 -0
  272. package/dist/{splash-screen-DIS4odDr.cjs → splash-screen-DqPuipox.cjs} +6 -6
  273. package/dist/splash-screen-DqPuipox.cjs.map +1 -0
  274. package/dist/splash-screen.cjs +1 -1
  275. package/dist/splash-screen.js +1 -1
  276. package/dist/{src-BP3h-9d9.js → src-8VJ7eluk.js} +46 -45
  277. package/dist/src-8VJ7eluk.js.map +1 -0
  278. package/dist/{src-Um_pzb-U.cjs → src-GJA8uSAS.cjs} +7 -6
  279. package/dist/src-GJA8uSAS.cjs.map +1 -0
  280. package/dist/{state-Bj0M9a6T.cjs → state-BxDNox-2.cjs} +1 -1
  281. package/dist/{state-Bj0M9a6T.cjs.map → state-BxDNox-2.cjs.map} +1 -1
  282. package/dist/{state-DscWQpoM.js → state-CnZCDMT0.js} +9 -9
  283. package/dist/{state-DscWQpoM.js.map → state-CnZCDMT0.js.map} +1 -1
  284. package/dist/state.cjs +1 -1
  285. package/dist/state.js +2 -2
  286. package/dist/steps.cjs +1 -1
  287. package/dist/steps.js +2 -2
  288. package/dist/{surface-B4Wn4SOO.js → surface-BMdG3dKQ.js} +2 -2
  289. package/dist/{surface-B4Wn4SOO.js.map → surface-BMdG3dKQ.js.map} +1 -1
  290. package/dist/{surface-DRq6cVW6.cjs → surface-CWwYD_z2.cjs} +1 -1
  291. package/dist/{surface-DRq6cVW6.cjs.map → surface-CWwYD_z2.cjs.map} +1 -1
  292. package/dist/surface.cjs +1 -1
  293. package/dist/surface.js +1 -1
  294. package/dist/switch.cjs +4 -4
  295. package/dist/switch.cjs.map +1 -1
  296. package/dist/switch.js +11 -11
  297. package/dist/switch.js.map +1 -1
  298. package/dist/table.cjs +1 -1
  299. package/dist/table.js +2 -2
  300. package/dist/{tabs-CnQPo-XS.js → tabs-CDQYDc6v.js} +2 -2
  301. package/dist/{tabs-CnQPo-XS.js.map → tabs-CDQYDc6v.js.map} +1 -1
  302. package/dist/{tabs-Ca_fbHPW.cjs → tabs-CbD9E1gd.cjs} +1 -1
  303. package/dist/{tabs-Ca_fbHPW.cjs.map → tabs-CbD9E1gd.cjs.map} +1 -1
  304. package/dist/tabs.cjs +1 -1
  305. package/dist/tabs.js +1 -1
  306. package/dist/teleport.cjs +1 -1
  307. package/dist/teleport.js +1 -1
  308. package/dist/textarea-Brgi-vD2.cjs +43 -0
  309. package/dist/textarea-Brgi-vD2.cjs.map +1 -0
  310. package/dist/{textarea-BvqENhTW.js → textarea-MPyrMi-S.js} +4 -4
  311. package/dist/textarea-MPyrMi-S.js.map +1 -0
  312. package/dist/textarea.cjs +1 -1
  313. package/dist/textarea.js +1 -1
  314. package/dist/{theme-BSwJ2YZo.cjs → theme-BMbXoqi0.cjs} +1 -1
  315. package/dist/{theme-BSwJ2YZo.cjs.map → theme-BMbXoqi0.cjs.map} +1 -1
  316. package/dist/{theme-BV0EzHQ1.js → theme-DZu-xmVp.js} +5 -5
  317. package/dist/{theme-BV0EzHQ1.js.map → theme-DZu-xmVp.js.map} +1 -1
  318. package/dist/{theme-button-C6fpUzPM.cjs → theme-button-B0OLb-43.cjs} +1 -1
  319. package/dist/{theme-button-C6fpUzPM.cjs.map → theme-button-B0OLb-43.cjs.map} +1 -1
  320. package/dist/{theme-button-O_xNCgI7.js → theme-button-D_qGvEYs.js} +2 -2
  321. package/dist/{theme-button-O_xNCgI7.js.map → theme-button-D_qGvEYs.js.map} +1 -1
  322. package/dist/theme-button.cjs +1 -1
  323. package/dist/theme-button.js +1 -1
  324. package/dist/theme.cjs +1 -1
  325. package/dist/theme.js +3 -3
  326. package/dist/{theme.service-DwLhhOmP.js → theme.service-7VkM-hVf.js} +15 -11
  327. package/dist/theme.service-7VkM-hVf.js.map +1 -0
  328. package/dist/theme.service-B15FdjOS.cjs +1 -0
  329. package/dist/theme.service-B15FdjOS.cjs.map +1 -0
  330. package/dist/tree.cjs +4 -4
  331. package/dist/tree.cjs.map +1 -1
  332. package/dist/tree.js +8 -8
  333. package/dist/tree.js.map +1 -1
  334. package/dist/{typography-opFYuUYS.cjs → typography-D4Fo1UGh.cjs} +3 -3
  335. package/dist/{typography-opFYuUYS.cjs.map → typography-D4Fo1UGh.cjs.map} +1 -1
  336. package/dist/{typography-Dtdooaic.js → typography-SZhjb_4R.js} +9 -9
  337. package/dist/{typography-Dtdooaic.js.map → typography-SZhjb_4R.js.map} +1 -1
  338. package/dist/typography.cjs +1 -1
  339. package/dist/typography.js +1 -1
  340. package/dist/visually-hidden.cjs +1 -1
  341. package/dist/visually-hidden.js +2 -2
  342. package/dist/{window-ConcHirJ.js → window-BDVyrBnk.js} +101 -100
  343. package/dist/window-BDVyrBnk.js.map +1 -0
  344. package/dist/window-BbBYjm7R.cjs +59 -0
  345. package/dist/window-BbBYjm7R.cjs.map +1 -0
  346. package/dist/window.cjs +1 -1
  347. package/dist/window.js +1 -1
  348. package/package.json +1 -1
  349. package/skills/schmancy/SKILL.md +9 -0
  350. package/skills/schmancy/overlay.md +14 -7
  351. package/src/area/area.component.ts +1 -1
  352. package/src/area/area.service.test.ts +2 -2
  353. package/src/area/area.service.ts +1 -1
  354. package/src/area/lazy.ts +87 -83
  355. package/src/audio/sound.service.ts +3 -3
  356. package/src/badge/badge.ts +1 -0
  357. package/src/breadcrumb/breadcrumb.ts +2 -2
  358. package/src/button/button.ts +12 -11
  359. package/src/button/icon-button.ts +19 -18
  360. package/src/card/card.ts +16 -16
  361. package/src/content-drawer/drawer.ts +6 -6
  362. package/src/details/details.ts +55 -55
  363. package/src/directives/ai-badge.ts +2 -1
  364. package/src/directives/animate-text.ts +2 -1
  365. package/src/directives/art/art.directive.ts +2 -1
  366. package/src/directives/battery.ts +2 -1
  367. package/src/directives/confirm-click.ts +5 -3
  368. package/src/directives/cursor-glow.ts +2 -1
  369. package/src/directives/cycle-text.ts +2 -1
  370. package/src/directives/depth-of-field.ts +2 -1
  371. package/src/directives/drag.ts +4 -2
  372. package/src/directives/fyi.ts +2 -1
  373. package/src/directives/gravity.ts +2 -1
  374. package/src/directives/hummingbird.ts +2 -1
  375. package/src/directives/intersect.ts +3 -2
  376. package/src/directives/liquid.ts +2 -1
  377. package/src/directives/living-border.ts +2 -1
  378. package/src/directives/long-press.ts +2 -1
  379. package/src/directives/magnetic.ts +2 -1
  380. package/src/directives/missed-punch.ts +2 -1
  381. package/src/directives/nebula.ts +6 -5
  382. package/src/directives/overflow-within.ts +2 -1
  383. package/src/directives/reveal.ts +2 -1
  384. package/src/directives/urgent.ts +2 -1
  385. package/src/directives/working-snake.ts +2 -1
  386. package/src/expand/expand-root.component.ts +27 -27
  387. package/src/expand/expand.component.ts +48 -48
  388. package/src/fab/fab.ts +1 -0
  389. package/src/form/fields/autocomplete/autocomplete.ts +154 -154
  390. package/src/form/fields/checkbox/checkbox.ts +4 -4
  391. package/src/form/fields/chips/chips.ts +2 -2
  392. package/src/form/fields/chips/filter-chip.ts +16 -15
  393. package/src/form/fields/date-range/date-range.ts +2 -2
  394. package/src/form/fields/input/input.ts +12 -12
  395. package/src/form/fields/radio-group/radio-button.ts +2 -2
  396. package/src/form/fields/radio-group/radio-group.ts +3 -3
  397. package/src/form/fields/select/select.ts +56 -56
  398. package/src/form/fields/switch/switch.ts +10 -10
  399. package/src/form/fields/textarea/textarea.ts +2 -2
  400. package/src/form/form-summary.ts +33 -33
  401. package/src/form/form.ts +45 -45
  402. package/src/icons/icon.ts +10 -8
  403. package/src/iframe/iframe.ts +11 -11
  404. package/src/lightbox/flip-directive.ts +2 -1
  405. package/src/lightbox/lightbox.directive.ts +2 -1
  406. package/src/nav-drawer/navbar.ts +3 -3
  407. package/src/navigation-rail/navigation-rail.ts +10 -10
  408. package/src/notification/notification.ts +22 -22
  409. package/src/overlay/overlay.component.ts +106 -83
  410. package/src/overlay/overlay.confirm-body.ts +4 -4
  411. package/src/overlay/overlay.service.ts +3 -3
  412. package/src/overlay/overlay.types.ts +4 -2
  413. package/src/splash-screen/splash-screen.ts +11 -11
  414. package/src/state/index.ts +12 -12
  415. package/src/state/schmancy-context.ts +9 -9
  416. package/src/teleport/teleport.component.ts +2 -2
  417. package/src/theme/theme.service.ts +17 -17
  418. package/src/tree/tree.ts +7 -7
  419. package/src/typography/typography.ts +7 -7
  420. package/src/window/window-manager.ts +20 -20
  421. package/src/window/window.ts +100 -100
  422. package/types/mixins/SchmancyElement.d.ts +3 -2
  423. package/types/mixins/formField.mixin.d.ts +1 -1
  424. package/types/src/area/area.service.d.ts +1 -1
  425. package/types/src/area/lazy.d.ts +0 -6
  426. package/types/src/audio/sound.service.d.ts +1 -2
  427. package/types/src/breadcrumb/breadcrumb.d.ts +1 -1
  428. package/types/src/button/button.d.ts +3 -3
  429. package/types/src/button/icon-button.d.ts +6 -7
  430. package/types/src/card/card.d.ts +5 -5
  431. package/types/src/content-drawer/drawer.d.ts +1 -1
  432. package/types/src/details/details.d.ts +2 -21
  433. package/types/src/directives/ai-badge.d.ts +2 -2
  434. package/types/src/directives/animate-text.d.ts +2 -2
  435. package/types/src/directives/art/art.directive.d.ts +2 -2
  436. package/types/src/directives/battery.d.ts +2 -2
  437. package/types/src/directives/confirm-click.d.ts +2 -2
  438. package/types/src/directives/cursor-glow.d.ts +2 -2
  439. package/types/src/directives/cycle-text.d.ts +2 -2
  440. package/types/src/directives/depth-of-field.d.ts +2 -2
  441. package/types/src/directives/drag.d.ts +4 -4
  442. package/types/src/directives/fyi.d.ts +2 -2
  443. package/types/src/directives/gravity.d.ts +2 -2
  444. package/types/src/directives/hummingbird.d.ts +2 -2
  445. package/types/src/directives/intersect.d.ts +2 -2
  446. package/types/src/directives/liquid.d.ts +2 -2
  447. package/types/src/directives/living-border.d.ts +2 -2
  448. package/types/src/directives/long-press.d.ts +2 -2
  449. package/types/src/directives/magnetic.d.ts +2 -2
  450. package/types/src/directives/missed-punch.d.ts +2 -2
  451. package/types/src/directives/nebula.d.ts +2 -2
  452. package/types/src/directives/overflow-within.d.ts +2 -2
  453. package/types/src/directives/reveal.d.ts +2 -2
  454. package/types/src/directives/urgent.d.ts +2 -2
  455. package/types/src/directives/working-snake.d.ts +2 -2
  456. package/types/src/expand/expand-root.component.d.ts +8 -8
  457. package/types/src/expand/expand.component.d.ts +11 -11
  458. package/types/src/form/fields/autocomplete/autocomplete.d.ts +29 -29
  459. package/types/src/form/fields/checkbox/checkbox.d.ts +1 -1
  460. package/types/src/form/fields/chips/chips.d.ts +1 -1
  461. package/types/src/form/fields/chips/filter-chip.d.ts +1 -2
  462. package/types/src/form/fields/input/input.d.ts +3 -3
  463. package/types/src/form/fields/radio-group/radio-button.d.ts +1 -1
  464. package/types/src/form/fields/radio-group/radio-group.d.ts +1 -1
  465. package/types/src/form/fields/select/select.d.ts +8 -8
  466. package/types/src/form/fields/switch/switch.d.ts +3 -3
  467. package/types/src/form/fields/textarea/textarea.d.ts +1 -1
  468. package/types/src/form/form-summary.d.ts +7 -7
  469. package/types/src/form/form.d.ts +11 -11
  470. package/types/src/icons/icon.d.ts +2 -2
  471. package/types/src/iframe/iframe.d.ts +3 -3
  472. package/types/src/lightbox/flip-directive.d.ts +2 -2
  473. package/types/src/lightbox/lightbox.directive.d.ts +2 -2
  474. package/types/src/nav-drawer/navbar.d.ts +1 -1
  475. package/types/src/navigation-rail/navigation-rail.d.ts +2 -2
  476. package/types/src/notification/notification.d.ts +8 -8
  477. package/types/src/overlay/overlay.component.d.ts +16 -16
  478. package/types/src/overlay/overlay.confirm-body.d.ts +1 -1
  479. package/types/src/overlay/overlay.types.d.ts +4 -2
  480. package/types/src/splash-screen/splash-screen.d.ts +2 -2
  481. package/types/src/state/index.d.ts +1 -1
  482. package/types/src/state/schmancy-context.d.ts +3 -3
  483. package/types/src/teleport/teleport.component.d.ts +1 -1
  484. package/types/src/theme/theme.service.d.ts +1 -4
  485. package/types/src/tree/tree.d.ts +3 -3
  486. package/types/src/typography/typography.d.ts +1 -1
  487. package/types/src/window/window-manager.d.ts +2 -2
  488. package/types/src/window/window.d.ts +20 -20
  489. package/dist/area-KtULlxuA.js.map +0 -1
  490. package/dist/area-fdKhYB6T.cjs +0 -21
  491. package/dist/area-fdKhYB6T.cjs.map +0 -1
  492. package/dist/autocomplete-DEZk6wBD.cjs +0 -115
  493. package/dist/autocomplete-DEZk6wBD.cjs.map +0 -1
  494. package/dist/autocomplete-DIScyo8Q.js.map +0 -1
  495. package/dist/button-DzlHLjWO.cjs +0 -62
  496. package/dist/button-DzlHLjWO.cjs.map +0 -1
  497. package/dist/button-kcpPQavY.js.map +0 -1
  498. package/dist/card-BLxPLqdQ.cjs.map +0 -1
  499. package/dist/card-DxSKxCid.js.map +0 -1
  500. package/dist/chips-C9dS1WKn.cjs.map +0 -1
  501. package/dist/chips-vWmwqQed.js.map +0 -1
  502. package/dist/date-range-BV6HuvLw.cjs.map +0 -1
  503. package/dist/date-range-D3ge1b4c.js.map +0 -1
  504. package/dist/details-C-GZaq3j.js.map +0 -1
  505. package/dist/details-Dp5rLIWk.cjs +0 -164
  506. package/dist/details-Dp5rLIWk.cjs.map +0 -1
  507. package/dist/directives-D_l1E5H6.cjs.map +0 -1
  508. package/dist/directives-DyS51FUh.js.map +0 -1
  509. package/dist/expand-DvTb-UPR.js.map +0 -1
  510. package/dist/expand-mlP_3XWz.cjs +0 -141
  511. package/dist/expand-mlP_3XWz.cjs.map +0 -1
  512. package/dist/form-CwPHcQYB.cjs +0 -27
  513. package/dist/form-CwPHcQYB.cjs.map +0 -1
  514. package/dist/form-DA0hUu2h.js.map +0 -1
  515. package/dist/icons-C6UfxmHZ.js.map +0 -1
  516. package/dist/icons-CW3-oMSb.cjs +0 -24
  517. package/dist/icons-CW3-oMSb.cjs.map +0 -1
  518. package/dist/iframe-BTjZfYyh.js.map +0 -1
  519. package/dist/iframe-wuYT2xFz.cjs.map +0 -1
  520. package/dist/input-B_4g2ulO.js.map +0 -1
  521. package/dist/input-BrDiIT60.cjs.map +0 -1
  522. package/dist/lazy-CayEFyC3.cjs +0 -1
  523. package/dist/lazy-CayEFyC3.cjs.map +0 -1
  524. package/dist/lazy-D-bO2r4m.js +0 -13
  525. package/dist/lazy-D-bO2r4m.js.map +0 -1
  526. package/dist/lightbox-CVBogswK.cjs.map +0 -1
  527. package/dist/lightbox-D85XAAuC.js.map +0 -1
  528. package/dist/mixins-De1zjyhy.js.map +0 -1
  529. package/dist/mixins-DxHpyMHA.cjs.map +0 -1
  530. package/dist/notification-BtAK7NK8.js.map +0 -1
  531. package/dist/notification-DYzbUb5C.cjs +0 -24
  532. package/dist/notification-DYzbUb5C.cjs.map +0 -1
  533. package/dist/overlay-BVkqZmoS.cjs +0 -58
  534. package/dist/overlay-BVkqZmoS.cjs.map +0 -1
  535. package/dist/overlay-Del1sBEB.js.map +0 -1
  536. package/dist/overlay.confirm-body-BV9umTAl.cjs.map +0 -1
  537. package/dist/overlay.confirm-body-DSONXUzl.js.map +0 -1
  538. package/dist/overlay.service-XLlrsSdA.cjs +0 -1
  539. package/dist/radio-group-B-ORNtvR.cjs.map +0 -1
  540. package/dist/radio-group-DxX0iJBo.js.map +0 -1
  541. package/dist/select-B9uj_u-s.cjs +0 -56
  542. package/dist/select-B9uj_u-s.cjs.map +0 -1
  543. package/dist/select-C7gkA-ab.js.map +0 -1
  544. package/dist/sound.service-C7FDY_yD.cjs.map +0 -1
  545. package/dist/sound.service-O0232os6.js.map +0 -1
  546. package/dist/splash-screen-DIS4odDr.cjs.map +0 -1
  547. package/dist/splash-screen-jfE47xl0.js.map +0 -1
  548. package/dist/src-BP3h-9d9.js.map +0 -1
  549. package/dist/src-Um_pzb-U.cjs.map +0 -1
  550. package/dist/textarea-BvqENhTW.js.map +0 -1
  551. package/dist/textarea-qr7oL8oU.cjs +0 -43
  552. package/dist/textarea-qr7oL8oU.cjs.map +0 -1
  553. package/dist/theme.service-DwLhhOmP.js.map +0 -1
  554. package/dist/theme.service-kn9MC025.cjs +0 -1
  555. package/dist/theme.service-kn9MC025.cjs.map +0 -1
  556. package/dist/window-BSAemI9J.cjs +0 -59
  557. package/dist/window-BSAemI9J.cjs.map +0 -1
  558. package/dist/window-ConcHirJ.js.map +0 -1
@@ -94,11 +94,11 @@ export class SchmancySwitch extends SchmancyFormField(css`
94
94
  checked: boolean = false
95
95
 
96
96
  /** Snapshot of `checked` at first render — drives the `dirty` override. */
97
- private _checkedDefault: boolean = false
97
+ private checkedDefault: boolean = false
98
98
 
99
99
  override firstUpdated(changed: PropertyValues): void {
100
100
  super.firstUpdated(changed)
101
- this._checkedDefault = this.checked
101
+ this.checkedDefault = this.checked
102
102
  }
103
103
 
104
104
  /**
@@ -106,7 +106,7 @@ export class SchmancySwitch extends SchmancyFormField(css`
106
106
  * meaningful state is `checked`, not the FormData string.
107
107
  */
108
108
  override get dirty(): boolean {
109
- return this.checked !== this._checkedDefault
109
+ return this.checked !== this.checkedDefault
110
110
  }
111
111
 
112
112
  override willUpdate(changed: PropertyValues): void {
@@ -142,7 +142,7 @@ export class SchmancySwitch extends SchmancyFormField(css`
142
142
  isValid ? undefined : message,
143
143
  )
144
144
 
145
- if (this._shouldShowError()) {
145
+ if (this.shouldShowError()) {
146
146
  this.error = !isValid
147
147
  this.validationMessage = message
148
148
  }
@@ -156,21 +156,21 @@ export class SchmancySwitch extends SchmancyFormField(css`
156
156
  }
157
157
 
158
158
  override resetForm(): void {
159
- this.checked = this._checkedDefault
159
+ this.checked = this.checkedDefault
160
160
  super.resetForm()
161
161
  }
162
162
 
163
- private _toggle = () => {
163
+ private toggle = () => {
164
164
  if (this.disabled) return
165
165
  this.checked = !this.checked
166
166
  this.markTouched()
167
167
  this.emitChange({ value: this.checked })
168
168
  }
169
169
 
170
- private _onKeydown = (e: KeyboardEvent) => {
170
+ private onKeydown = (e: KeyboardEvent) => {
171
171
  if (e.key === ' ' || e.key === 'Enter') {
172
172
  e.preventDefault()
173
- this._toggle()
173
+ this.toggle()
174
174
  }
175
175
  }
176
176
 
@@ -183,8 +183,8 @@ export class SchmancySwitch extends SchmancyFormField(css`
183
183
  aria-label=${this.label || nothing}
184
184
  aria-required=${this.required ? 'true' : 'false'}
185
185
  ?disabled=${this.disabled}
186
- @click=${this._toggle}
187
- @keydown=${this._onKeydown}
186
+ @click=${this.toggle}
187
+ @keydown=${this.onKeydown}
188
188
  >
189
189
  <span part="track" class="track">
190
190
  <span part="thumb" class="thumb"></span>
@@ -33,7 +33,7 @@ export default class SchmancyTextarea extends SchmancyFormField(unsafeCSS(style)
33
33
  // `formResetCallback`, `formDisabledCallback` — all from the mixin.
34
34
  textareaRef = createRef<HTMLTextAreaElement>()
35
35
 
36
- private readonly _a11yId = `schmancy-textarea-${Math.random().toString(36).slice(2, 10)}`
36
+ private readonly a11yId = `schmancy-textarea-${Math.random().toString(36).slice(2, 10)}`
37
37
 
38
38
  /**
39
39
  * The placeholder of the control.
@@ -359,7 +359,7 @@ export default class SchmancyTextarea extends SchmancyFormField(unsafeCSS(style)
359
359
  'w-full min-w-0': true,
360
360
  'flex flex-col h-full': this.fillHeight,
361
361
  }
362
- const hintId = `${this._a11yId}-hint`
362
+ const hintId = `${this.a11yId}-hint`
363
363
  return html`
364
364
  <div class="${this.classMap(containerClasses)}">
365
365
  ${when(
@@ -30,69 +30,69 @@ export class SchmancyFormSummary extends SchmancyElement {
30
30
  * Render bumper — incremented to force a re-render when the form's state
31
31
  * changes (the actual content is computed from the DOM in render()).
32
32
  */
33
- @state() private _bump: number = 0
33
+ @state() private bump: number = 0
34
34
 
35
- private _form: SchmancyForm | null = null
36
- private _formObserver?: MutationObserver
35
+ private form: SchmancyForm | null = null
36
+ private formObserver?: MutationObserver
37
37
 
38
38
  override connectedCallback(): void {
39
39
  super.connectedCallback()
40
- this._form = this.closest('schmancy-form') as SchmancyForm | null
41
- if (!this._form) {
40
+ this.form = this.closest('schmancy-form') as SchmancyForm | null
41
+ if (!this.form) {
42
42
  console.error('[schmancy-form-summary] must be a descendant of <schmancy-form>')
43
43
  return
44
44
  }
45
- const bump = () => { this._bump++ }
46
- this._formObserver = new MutationObserver(bump)
45
+ const bump = () => { this.bump++ }
46
+ this.formObserver = new MutationObserver(bump)
47
47
  // Form host attribute changes (aria-busy, :state class reflections,
48
48
  // descendant attribute changes for fields' aria-invalid). subtree:true
49
49
  // catches attribute mutations on every descendant including light-DOM
50
50
  // fields and the form's own host.
51
- this._formObserver.observe(this._form, {
51
+ this.formObserver.observe(this.form, {
52
52
  attributes: true,
53
53
  subtree: true,
54
54
  })
55
55
  // Defer live-region observation until the form has rendered its
56
56
  // shadow tree.
57
57
  const attachLiveRegionObserver = async (): Promise<void> => {
58
- await this._form?.updateComplete
59
- const liveRegion = this._form?.shadowRoot?.querySelector('[role="status"]')
58
+ await this.form?.updateComplete
59
+ const liveRegion = this.form?.shadowRoot?.querySelector('[role="status"]')
60
60
  if (liveRegion) {
61
- this._formObserver?.observe(liveRegion, {
61
+ this.formObserver?.observe(liveRegion, {
62
62
  childList: true,
63
63
  characterData: true,
64
64
  subtree: true,
65
65
  })
66
66
  }
67
67
  // Force a render so the initial state is reflected.
68
- this._bump++
68
+ this.bump++
69
69
  }
70
70
  void attachLiveRegionObserver()
71
71
  }
72
72
 
73
73
  override disconnectedCallback(): void {
74
- this._formObserver?.disconnect()
75
- this._formObserver = undefined
74
+ this.formObserver?.disconnect()
75
+ this.formObserver = undefined
76
76
  super.disconnectedCallback()
77
77
  }
78
78
 
79
- private _readFormStatus(): 'idle' | 'submitting' | 'success' | 'error' {
80
- if (!this._form) return 'idle'
81
- if (this._form.matches(':state(error)')) return 'error'
82
- if (this._form.matches(':state(submitting)')) return 'submitting'
83
- if (this._form.matches(':state(success)')) return 'success'
79
+ private readFormStatus(): 'idle' | 'submitting' | 'success' | 'error' {
80
+ if (!this.form) return 'idle'
81
+ if (this.form.matches(':state(error)')) return 'error'
82
+ if (this.form.matches(':state(submitting)')) return 'submitting'
83
+ if (this.form.matches(':state(success)')) return 'success'
84
84
  return 'idle'
85
85
  }
86
86
 
87
- private _readFormMessage(): string {
88
- const liveRegion = this._form?.shadowRoot?.querySelector('[role="status"]')
87
+ private readFormMessage(): string {
88
+ const liveRegion = this.form?.shadowRoot?.querySelector('[role="status"]')
89
89
  return liveRegion?.textContent?.trim() ?? ''
90
90
  }
91
91
 
92
- private _readInvalidFields(): Array<{ id: string; label: string; message: string }> {
93
- if (!this._form) return []
92
+ private readInvalidFields(): Array<{ id: string; label: string; message: string }> {
93
+ if (!this.form) return []
94
94
  const result: Array<{ id: string; label: string; message: string }> = []
95
- for (const el of Array.from(this._form.querySelectorAll('*'))) {
95
+ for (const el of Array.from(this.form.querySelectorAll('*'))) {
96
96
  if (!(el instanceof HTMLElement)) continue
97
97
  let isInvalid = false
98
98
  try {
@@ -117,15 +117,15 @@ export class SchmancyFormSummary extends SchmancyElement {
117
117
 
118
118
  render() {
119
119
  // Read everything fresh from the DOM each render — no @state cache, no
120
- // re-render loops. The MutationObserver bumps `_bump` to trigger this
121
- // render; `_bump` itself is never read here.
122
- void this._bump
120
+ // re-render loops. The MutationObserver bumps `bump` to trigger this
121
+ // render; `bump` itself is never read here.
122
+ void this.bump
123
123
 
124
- const status = this._readFormStatus()
124
+ const status = this.readFormStatus()
125
125
  if (status !== 'error') return nothing
126
126
 
127
- const formMessage = this._readFormMessage()
128
- const invalid = this._readInvalidFields()
127
+ const formMessage = this.readFormMessage()
128
+ const invalid = this.readInvalidFields()
129
129
  const count = invalid.length
130
130
  const heading =
131
131
  this.heading ??
@@ -145,7 +145,7 @@ export class SchmancyFormSummary extends SchmancyElement {
145
145
  <li>
146
146
  <a
147
147
  href="#${f.id}"
148
- @click=${(e: MouseEvent) => this._jumpToField(e, f.id)}
148
+ @click=${(e: MouseEvent) => this.jumpToField(e, f.id)}
149
149
  >${f.label}: ${f.message}</a>
150
150
  </li>
151
151
  `,
@@ -157,9 +157,9 @@ export class SchmancyFormSummary extends SchmancyElement {
157
157
  `
158
158
  }
159
159
 
160
- private _jumpToField(e: MouseEvent, fieldId: string): void {
160
+ private jumpToField(e: MouseEvent, fieldId: string): void {
161
161
  e.preventDefault()
162
- const target = this._form?.querySelector(`#${CSS.escape(fieldId)}`) as HTMLElement | null
162
+ const target = this.form?.querySelector(`#${CSS.escape(fieldId)}`) as HTMLElement | null
163
163
  target?.focus()
164
164
  }
165
165
  }
package/src/form/form.ts CHANGED
@@ -66,8 +66,8 @@ export default class SchmancyForm<TSchema extends ParseSchema | undefined = unde
66
66
  @property({ type: Boolean })
67
67
  novalidate: boolean = true
68
68
 
69
- private _fields = new Set<IFormFieldMixin>()
70
- private _submitting = false
69
+ private fields = new Set<IFormFieldMixin>()
70
+ private submitting = false
71
71
 
72
72
  /**
73
73
  * Local mirror of the submit-state status — drives the inline live region
@@ -75,9 +75,9 @@ export default class SchmancyForm<TSchema extends ParseSchema | undefined = unde
75
75
  * chain (which has known cross-await fallback semantics) so the AT-facing
76
76
  * announcement is always correct for this form instance.
77
77
  */
78
- @state() private _liveStatus: 'idle' | 'submitting' | 'success' | 'error' = 'idle'
79
- @state() private _liveError: string = ''
80
- private _internals: ElementInternals | undefined = (() => {
78
+ @state() private liveStatus: 'idle' | 'submitting' | 'success' | 'error' = 'idle'
79
+ @state() private liveError: string = ''
80
+ private internals: ElementInternals | undefined = (() => {
81
81
  try {
82
82
  return this.attachInternals()
83
83
  } catch {
@@ -97,7 +97,7 @@ export default class SchmancyForm<TSchema extends ParseSchema | undefined = unde
97
97
  // Field registry — composed event from FormFieldMixin.connectedCallback.
98
98
  fromEvent<CustomEvent<IFormFieldMixin>>(this, FIELD_CONNECT_EVENT)
99
99
  .pipe(takeUntil(this.disconnecting))
100
- .subscribe(e => this._fields.add(e.detail))
100
+ .subscribe(e => this.fields.add(e.detail))
101
101
 
102
102
  // Submit-trigger interception — slotted descendants live in light DOM
103
103
  // while the inner <form> is in shadow DOM, so native form-association
@@ -108,7 +108,7 @@ export default class SchmancyForm<TSchema extends ParseSchema | undefined = unde
108
108
  // chain that a directly-associated button would have triggered.
109
109
  fromEvent<MouseEvent>(this, 'click')
110
110
  .pipe(takeUntil(this.disconnecting))
111
- .subscribe(e => this._maybeRequestSubmit(e))
111
+ .subscribe(e => this.maybeRequestSubmit(e))
112
112
  fromEvent<KeyboardEvent>(this, 'keydown')
113
113
  .pipe(takeUntil(this.disconnecting))
114
114
  .subscribe(e => {
@@ -117,14 +117,14 @@ export default class SchmancyForm<TSchema extends ParseSchema | undefined = unde
117
117
  const target = e.target as HTMLElement | null
118
118
  if (target?.tagName === 'TEXTAREA') return
119
119
  if (target?.isContentEditable) return
120
- this._maybeRequestSubmit(e)
120
+ this.maybeRequestSubmit(e)
121
121
  })
122
122
  }
123
123
 
124
- private _maybeRequestSubmit(e: Event): void {
124
+ private maybeRequestSubmit(e: Event): void {
125
125
  // On click: trigger only when the target is a type=submit button.
126
126
  // On keydown(Enter): always trigger if focus is on a registered field.
127
- // type=reset is handled separately in _maybeReset.
127
+ // type=reset is handled separately in maybeReset.
128
128
  if (e.type === 'click') {
129
129
  const path = e.composedPath()
130
130
  const resetBtn = path.find(
@@ -147,25 +147,25 @@ export default class SchmancyForm<TSchema extends ParseSchema | undefined = unde
147
147
  }
148
148
 
149
149
  /** Active fields — drops stale refs from disconnected nodes. */
150
- private get _activeFields(): IFormFieldMixin[] {
151
- return [...this._fields].filter(f => f.isConnected)
150
+ private get activeFields(): IFormFieldMixin[] {
151
+ return [...this.fields].filter(f => f.isConnected)
152
152
  }
153
153
 
154
- private async _onSubmit(e: SubmitEvent): Promise<void> {
154
+ private async onSubmit(e: SubmitEvent): Promise<void> {
155
155
  e.preventDefault()
156
156
  e.stopPropagation()
157
- if (this._submitting) return
157
+ if (this.submitting) return
158
158
 
159
159
  // If any field has an async validator pending, wait for them all to
160
160
  // settle before deciding validity. This is the hard-block model: the
161
161
  // user clicks submit, the form holds (aria-busy="true"), waits for
162
162
  // validators, then proceeds with the truth they reported.
163
- const pendingValidators = this._activeFields.filter(f => f.isValidating)
163
+ const pendingValidators = this.activeFields.filter(f => f.isValidating)
164
164
  if (pendingValidators.length > 0) {
165
- this._broadcastStatus('submitting')
165
+ this.broadcastStatus('submitting')
166
166
  await new Promise<void>(resolve => {
167
167
  const tick = () => {
168
- if (this._activeFields.every(f => !f.isValidating)) resolve()
168
+ if (this.activeFields.every(f => !f.isValidating)) resolve()
169
169
  else requestAnimationFrame(tick)
170
170
  }
171
171
  tick()
@@ -173,10 +173,10 @@ export default class SchmancyForm<TSchema extends ParseSchema | undefined = unde
173
173
  }
174
174
 
175
175
  // Phase 4 — submit forces error display on every field.
176
- this._activeFields.forEach(f => f.markSubmitted())
176
+ this.activeFields.forEach(f => f.markSubmitted())
177
177
 
178
178
  // Validate; success path entered ONLY if all valid.
179
- const allValid = this._activeFields.every(f => f.checkValidity())
179
+ const allValid = this.activeFields.every(f => f.checkValidity())
180
180
  const fs = formSubmitState.value
181
181
  if (!allValid) {
182
182
  formSubmitState.set({
@@ -184,26 +184,26 @@ export default class SchmancyForm<TSchema extends ParseSchema | undefined = unde
184
184
  status: 'error',
185
185
  error: { message: 'Validation failed' },
186
186
  })
187
- this._broadcastStatus('error', 'Validation failed. Please correct the highlighted fields.')
188
- const firstInvalid = this._activeFields.find(f => f.error) as unknown as
187
+ this.broadcastStatus('error', 'Validation failed. Please correct the highlighted fields.')
188
+ const firstInvalid = this.activeFields.find(f => f.error) as unknown as
189
189
  | HTMLElement
190
190
  | undefined
191
191
  firstInvalid?.focus()
192
192
  return
193
193
  }
194
194
 
195
- this._submitting = true
195
+ this.submitting = true
196
196
  formSubmitState.set({
197
197
  ...fs,
198
198
  status: 'submitting',
199
199
  error: null,
200
200
  submitCount: fs.submitCount + 1,
201
201
  })
202
- this._broadcastStatus('submitting')
202
+ this.broadcastStatus('submitting')
203
203
 
204
204
  // Build payload from the registered fields' contracted toFormEntries().
205
205
  const formData = new FormData()
206
- for (const field of this._activeFields) {
206
+ for (const field of this.activeFields) {
207
207
  for (const [k, v] of field.toFormEntries()) formData.append(k, v)
208
208
  }
209
209
  const raw = Object.fromEntries(formData)
@@ -228,7 +228,7 @@ export default class SchmancyForm<TSchema extends ParseSchema | undefined = unde
228
228
  status: 'success',
229
229
  error: null,
230
230
  })
231
- this._broadcastStatus('success')
231
+ this.broadcastStatus('success')
232
232
  } catch (err) {
233
233
  const message = err instanceof Error ? err.message : String(err)
234
234
  formSubmitState.set({
@@ -236,24 +236,24 @@ export default class SchmancyForm<TSchema extends ParseSchema | undefined = unde
236
236
  status: 'error',
237
237
  error: { message },
238
238
  })
239
- this._broadcastStatus('error', message)
239
+ this.broadcastStatus('error', message)
240
240
  } finally {
241
- this._submitting = false
241
+ this.submitting = false
242
242
  }
243
243
  }
244
244
 
245
- private _onReset(e: Event): void {
245
+ private onReset(e: Event): void {
246
246
  e.stopPropagation()
247
- this._activeFields.forEach(f => f.resetForm())
247
+ this.activeFields.forEach(f => f.resetForm())
248
248
  formSubmitState.set({ status: 'idle', error: null, submitCount: 0 })
249
- this._broadcastStatus('idle')
249
+ this.broadcastStatus('idle')
250
250
  this.dispatchEvent(new CustomEvent('reset'))
251
251
  }
252
252
 
253
- private _broadcastStatus(status: FormSubmitState['status'], errorMessage?: string): void {
254
- this._liveStatus = status
255
- this._liveError = errorMessage ?? ''
256
- const states = this._internals?.states
253
+ private broadcastStatus(status: FormSubmitState['status'], errorMessage?: string): void {
254
+ this.liveStatus = status
255
+ this.liveError = errorMessage ?? ''
256
+ const states = this.internals?.states
257
257
  if (states) {
258
258
  for (const s of ['submitting', 'success', 'error', 'idle']) states.delete(s)
259
259
  states.add(status)
@@ -279,7 +279,7 @@ export default class SchmancyForm<TSchema extends ParseSchema | undefined = unde
279
279
  * error displays by marking it submitted.
280
280
  */
281
281
  public setFieldError(name: string, message: string): boolean {
282
- const field = this._activeFields.find(f => f.name === name)
282
+ const field = this.activeFields.find(f => f.name === name)
283
283
  if (!field) return false
284
284
  field.setCustomValidity(message)
285
285
  field.markSubmitted()
@@ -296,27 +296,27 @@ export default class SchmancyForm<TSchema extends ParseSchema | undefined = unde
296
296
  status: 'error',
297
297
  error: { message, code } as FormError,
298
298
  })
299
- this._broadcastStatus('error', message)
299
+ this.broadcastStatus('error', message)
300
300
  }
301
301
 
302
302
  /**
303
303
  * Clear the `submitted` flag on every registered field without resetting
304
304
  * their values. Wizard pattern: stepping back from a later step should not
305
305
  * leave the earlier step's fields in aggressive "show all errors" mode
306
- * (which `submitted = true` triggers via the `_shouldShowError()` gate).
306
+ * (which `submitted = true` triggers via the `shouldShowError()` gate).
307
307
  *
308
308
  * Pristine fields with `validateOn: 'dirty'` go quiet again. Fields the
309
309
  * user actually dirtied keep showing their errors (correct UX — those are
310
310
  * still genuine mistakes the user can see).
311
311
  */
312
312
  public clearSubmitted(): void {
313
- this._activeFields.forEach(f => f.clearSubmitted())
313
+ this.activeFields.forEach(f => f.clearSubmitted())
314
314
  formSubmitState.set({
315
315
  ...formSubmitState.value,
316
316
  status: 'idle',
317
317
  error: null,
318
318
  })
319
- this._broadcastStatus('idle')
319
+ this.broadcastStatus('idle')
320
320
  }
321
321
 
322
322
  /** Programmatically submit via the native submitter pipeline. */
@@ -334,17 +334,17 @@ export default class SchmancyForm<TSchema extends ParseSchema | undefined = unde
334
334
  }
335
335
 
336
336
  public reportValidity(): boolean {
337
- return this._activeFields.every(f => f.reportValidity())
337
+ return this.activeFields.every(f => f.reportValidity())
338
338
  }
339
339
 
340
340
  public checkValidity(): boolean {
341
- return this._activeFields.every(f => f.checkValidity())
341
+ return this.activeFields.every(f => f.checkValidity())
342
342
  }
343
343
 
344
344
  /** Snapshot of current form values from the registered fields. */
345
345
  public getFormData(): FormData {
346
346
  const formData = new FormData()
347
- for (const field of this._activeFields) {
347
+ for (const field of this.activeFields) {
348
348
  for (const [k, v] of field.toFormEntries()) formData.append(k, v)
349
349
  }
350
350
  return formData
@@ -355,8 +355,8 @@ export default class SchmancyForm<TSchema extends ParseSchema | undefined = unde
355
355
  <schmancy-context .provides=${[formSubmitState]}>
356
356
  <form
357
357
  ?novalidate=${this.novalidate}
358
- @submit=${this._onSubmit}
359
- @reset=${this._onReset}
358
+ @submit=${this.onSubmit}
359
+ @reset=${this.onReset}
360
360
  >
361
361
  <slot></slot>
362
362
  </form>
@@ -373,7 +373,7 @@ export default class SchmancyForm<TSchema extends ParseSchema | undefined = unde
373
373
  aria-live="assertive"
374
374
  aria-atomic="true"
375
375
  class="sr-only"
376
- >${this._liveStatus === 'error' ? this._liveError : ''}</div>
376
+ >${this.liveStatus === 'error' ? this.liveError : ''}</div>
377
377
  </schmancy-context>
378
378
  `
379
379
  }
package/src/icons/icon.ts CHANGED
@@ -4,6 +4,7 @@ import { customElement, state } from 'lit/decorators.js'
4
4
 
5
5
  declare global {
6
6
  interface Window {
7
+ // eslint-disable-next-line no-underscore-dangle -- public runtime contract: global populated by the external schmancy-icons Vite plugin; renaming breaks consumers
7
8
  __siIcons?: Record<string, string>
8
9
  }
9
10
  }
@@ -44,28 +45,29 @@ export default class SchmancyIcon extends SchmancyElement {
44
45
  }
45
46
  `]
46
47
 
47
- @state() private _name = ''
48
+ @state() private name = ''
48
49
 
49
- private _observer?: MutationObserver
50
+ private observer?: MutationObserver
50
51
 
51
52
  override connectedCallback(): void {
52
53
  super.connectedCallback()
53
- this._name = this.textContent?.trim() ?? ''
54
- this._observer = new MutationObserver(() => {
55
- this._name = this.textContent?.trim() ?? ''
54
+ this.name = this.textContent?.trim() ?? ''
55
+ this.observer = new MutationObserver(() => {
56
+ this.name = this.textContent?.trim() ?? ''
56
57
  })
57
- this._observer.observe(this, { childList: true, characterData: true, subtree: true })
58
+ this.observer.observe(this, { childList: true, characterData: true, subtree: true })
58
59
  this.setAttribute('aria-hidden', 'true')
59
60
  this.setAttribute('translate', 'no')
60
61
  }
61
62
 
62
63
  override disconnectedCallback(): void {
63
64
  super.disconnectedCallback()
64
- this._observer?.disconnect()
65
+ this.observer?.disconnect()
65
66
  }
66
67
 
67
68
  protected override render(): unknown {
68
- const path = window.__siIcons?.[this._name]
69
+ // eslint-disable-next-line no-underscore-dangle -- public runtime contract: see Window.__siIcons declaration above
70
+ const path = window.__siIcons?.[this.name]
69
71
  return html`
70
72
  <slot style="display:none"></slot>
71
73
  ${path
@@ -53,20 +53,20 @@ export default class SchmancyIframe extends SchmancyElement {
53
53
  /** Minimum height in pixels */
54
54
  @property({ type: Number }) minHeight = 60
55
55
 
56
- @state() private _height = 60
57
- private _srcdoc = ''
58
- private _iframeRef = createRef<HTMLIFrameElement>()
56
+ @state() private height = 60
57
+ private srcdoc = ''
58
+ private iframeRef = createRef<HTMLIFrameElement>()
59
59
 
60
60
  protected willUpdate(changed: PropertyValues) {
61
61
  if (changed.has('html') || changed.has('css') || changed.has('baseCss')) {
62
- this._srcdoc = this.html ? this.buildSrcdoc() : ''
63
- this._height = this.minHeight
62
+ this.srcdoc = this.html ? this.buildSrcdoc() : ''
63
+ this.height = this.minHeight
64
64
  }
65
65
  }
66
66
 
67
67
  protected updated(changed: PropertyValues) {
68
68
  if (changed.has('sandbox')) {
69
- this._iframeRef.value?.setAttribute('sandbox', this.sandbox)
69
+ this.iframeRef.value?.setAttribute('sandbox', this.sandbox)
70
70
  }
71
71
  }
72
72
 
@@ -83,18 +83,18 @@ export default class SchmancyIframe extends SchmancyElement {
83
83
  try {
84
84
  const doc = iframe.contentDocument
85
85
  if (!doc) return
86
- this._height = Math.max(doc.documentElement.scrollHeight, this.minHeight)
86
+ this.height = Math.max(doc.documentElement.scrollHeight, this.minHeight)
87
87
  } catch {
88
- this._height = Math.max(200, this.minHeight)
88
+ this.height = Math.max(200, this.minHeight)
89
89
  }
90
90
  }
91
91
 
92
92
  protected render() {
93
93
  if (!this.html) return html``
94
94
  return html`<iframe
95
- ${ref(this._iframeRef)}
96
- .srcdoc=${this._srcdoc}
97
- style="height:${this._height}px;min-height:${this.minHeight}px;overflow:hidden"
95
+ ${ref(this.iframeRef)}
96
+ .srcdoc=${this.srcdoc}
97
+ style="height:${this.height}px;min-height:${this.minHeight}px;overflow:hidden"
98
98
  @load=${this.onLoad}
99
99
  ></iframe>`
100
100
  }
@@ -69,7 +69,8 @@ class FlipDirective extends AsyncDirective {
69
69
  }
70
70
  }
71
71
 
72
- render(_options?: FlipOptions) {
72
+ render(options?: FlipOptions) {
73
+ void options
73
74
  return noChange
74
75
  }
75
76
 
@@ -28,7 +28,8 @@ class LightboxDirective extends AsyncDirective {
28
28
  }
29
29
  }
30
30
 
31
- render(_options?: LightboxOptions) {
31
+ render(options?: LightboxOptions) {
32
+ void options
32
33
  return noChange
33
34
  }
34
35
 
@@ -31,7 +31,7 @@ export class SchmancyNavigationDrawerSidebar extends SchmancyElement {
31
31
  @query('nav') nav!: HTMLElement
32
32
 
33
33
  @property({ type: String }) width = '220px'
34
- @state() private _initialized = false
34
+ @state() private initialized = false
35
35
 
36
36
  /**
37
37
  * firstUpdated()
@@ -52,7 +52,7 @@ export class SchmancyNavigationDrawerSidebar extends SchmancyElement {
52
52
  this.nav.style.transform = 'translateX(0)'
53
53
  this.overlay.style.display = 'none'
54
54
  }
55
- this._initialized = true
55
+ this.initialized = true
56
56
  }
57
57
 
58
58
  /**
@@ -60,7 +60,7 @@ export class SchmancyNavigationDrawerSidebar extends SchmancyElement {
60
60
  * Trigger animations when either the consumed mode or state changes.
61
61
  */
62
62
  updated(changedProperties: Map<string, unknown>) {
63
- if (!this._initialized) return
63
+ if (!this.initialized) return
64
64
 
65
65
  if (changedProperties.has('drawerState') || changedProperties.has('mode')) {
66
66
  if (this.mode === 'overlay') {