@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
@@ -49,14 +49,14 @@ class SchmancyCheckboxElement extends SchmancyFormField() {
49
49
  @property({ type: String })
50
50
  size: 'xxs' | 'xs' | 'sm' | 'md' | 'lg' = 'md'
51
51
 
52
- private get _trueValue(): string {
52
+ private get trueValue(): string {
53
53
  return this.getAttribute('true-value') ?? 'on'
54
54
  }
55
55
 
56
56
  override willUpdate(changed: PropertyValues): void {
57
57
  super.willUpdate(changed)
58
58
  if (changed.has('value') || changed.has('name')) {
59
- this.internals?.setFormValue(this.value ? this._trueValue : null)
59
+ this.internals?.setFormValue(this.value ? this.trueValue : null)
60
60
  if (this.value) this.internals?.states.add('checked')
61
61
  else this.internals?.states.delete('checked')
62
62
  this.checkValidity()
@@ -80,7 +80,7 @@ class SchmancyCheckboxElement extends SchmancyFormField() {
80
80
  isValid ? undefined : message,
81
81
  )
82
82
 
83
- if (this._shouldShowError()) {
83
+ if (this.shouldShowError()) {
84
84
  this.error = !isValid
85
85
  this.validationMessage = message
86
86
  }
@@ -90,7 +90,7 @@ class SchmancyCheckboxElement extends SchmancyFormField() {
90
90
  /** Emit only when checked. */
91
91
  override toFormEntries(): Array<[string, FormDataEntryValue]> {
92
92
  if (!this.name || this.disabled || !this.value) return []
93
- return [[this.name, this._trueValue]]
93
+ return [[this.name, this.trueValue]]
94
94
  }
95
95
 
96
96
  render() {
@@ -178,8 +178,8 @@ export default class SchmancyChips extends SchmancyFormField(css`
178
178
  this.values$.next([])
179
179
  }
180
180
 
181
- protected firstUpdated(_changedProperties: PropertyValues): void {
182
- super.firstUpdated(_changedProperties)
181
+ protected firstUpdated(changedProperties: PropertyValues): void {
182
+ super.firstUpdated(changedProperties)
183
183
  this.updateChipStates(this.value$.value, this.values$.value)
184
184
  }
185
185
 
@@ -52,15 +52,15 @@ export class SchmancyFilterChip extends SchmancyElement {
52
52
  value: string = ''
53
53
 
54
54
  /** Whether the filter chip is selected (active filter) */
55
- private _selected: boolean = false
55
+ #selected: boolean = false
56
56
 
57
57
  @property({ type: Boolean, reflect: true })
58
58
  get selected(): boolean {
59
- return this._selected
59
+ return this.#selected
60
60
  }
61
61
  set selected(value: boolean) {
62
- const oldValue = this._selected
63
- this._selected = value
62
+ const oldValue = this.#selected
63
+ this.#selected = value
64
64
  this.requestUpdate('selected', oldValue)
65
65
  }
66
66
 
@@ -104,12 +104,12 @@ export class SchmancyFilterChip extends SchmancyElement {
104
104
  protected updated(changed: Map<string, unknown>) {
105
105
  super.updated?.(changed)
106
106
  if (changed.has('value') || changed.has('selected')) {
107
- this.internals?.setFormValue(this._selected ? (this.value || 'on') : null)
107
+ this.internals?.setFormValue(this.#selected ? (this.value || 'on') : null)
108
108
  }
109
109
  }
110
110
 
111
111
  formResetCallback(): void {
112
- this._selected = this.hasAttribute('selected')
112
+ this.#selected = this.hasAttribute('selected')
113
113
  }
114
114
 
115
115
  formDisabledCallback(disabled: boolean): void {
@@ -121,7 +121,7 @@ export class SchmancyFilterChip extends SchmancyElement {
121
121
 
122
122
  this.dispatchEvent(
123
123
  new CustomEvent('change', {
124
- detail: { value: this.value, selected: !this._selected },
124
+ detail: { value: this.value, selected: !this.#selected },
125
125
  bubbles: true,
126
126
  composed: true,
127
127
  }),
@@ -149,7 +149,7 @@ export class SchmancyFilterChip extends SchmancyElement {
149
149
  e.preventDefault()
150
150
  this.dispatchEvent(
151
151
  new CustomEvent('change', {
152
- detail: { value: this.value, selected: !this._selected },
152
+ detail: { value: this.value, selected: !this.#selected },
153
153
  bubbles: true,
154
154
  composed: true,
155
155
  }),
@@ -175,14 +175,14 @@ export class SchmancyFilterChip extends SchmancyElement {
175
175
  'min-h-[32px]': true,
176
176
 
177
177
  // Background and text colors based on selection state
178
- 'bg-secondary-container': this._selected,
179
- 'text-secondary-onContainer': this._selected,
180
- 'bg-surface-container': !this._selected,
181
- 'text-surface-on': !this._selected,
178
+ 'bg-secondary-container': this.#selected,
179
+ 'text-secondary-onContainer': this.#selected,
180
+ 'bg-surface-container': !this.#selected,
181
+ 'text-surface-on': !this.#selected,
182
182
 
183
183
  // Hover states
184
- 'hover:brightness-95': this._selected && !this.disabled,
185
- 'hover:bg-surface-containerHigh': !this._selected && !this.disabled,
184
+ 'hover:brightness-95': this.#selected && !this.disabled,
185
+ 'hover:bg-surface-containerHigh': !this.#selected && !this.disabled,
186
186
 
187
187
  // Pressed state
188
188
  'active:brightness-90': !this.disabled,
@@ -209,7 +209,7 @@ export class SchmancyFilterChip extends SchmancyElement {
209
209
  @click=${this.handleClick}
210
210
  @keydown=${this.handleKeyDown}
211
211
  ?disabled=${this.disabled}
212
- aria-pressed=${this._selected ? 'true' : 'false'}
212
+ aria-pressed=${this.#selected ? 'true' : 'false'}
213
213
  role="checkbox"
214
214
  tabindex="0"
215
215
  >
@@ -221,7 +221,7 @@ export class SchmancyDateRange extends SchmancyFormField() {
221
221
  isValid ? undefined : message,
222
222
  )
223
223
 
224
- if (this._shouldShowError()) {
224
+ if (this.shouldShowError()) {
225
225
  this.error = !isValid
226
226
  this.validationMessage = message
227
227
  }
@@ -528,7 +528,7 @@ export class SchmancyDateRange extends SchmancyFormField() {
528
528
 
529
529
  render() {
530
530
  // Step 6 — validity is two surfaces: when checkValidity() has flipped
531
- // `error` (gated by `_shouldShowError`), the control must visibly carry
531
+ // `error` (gated by `shouldShowError`), the control must visibly carry
532
532
  // the invalid treatment AND render the message. Platform validity is
533
533
  // set in checkValidity(); this paints the user-facing half.
534
534
  const showError = this.error && !!this.validationMessage
@@ -65,7 +65,7 @@ export default class SchmancyInput extends SchmancyFormField(unsafeCSS(style)) {
65
65
  // ----------------------------
66
66
 
67
67
  /** Auto-incrementing counter for generating unique IDs */
68
- static _idCounter = 0
68
+ static idCounter = 0
69
69
 
70
70
  /** Override value to be string only for input element */
71
71
  @property({ type: String, reflect: true })
@@ -171,7 +171,7 @@ export default class SchmancyInput extends SchmancyFormField(unsafeCSS(style)) {
171
171
  private isAutofilled = false
172
172
 
173
173
  // `touched`, `dirty`, `submitted`, and `validateOn` come from FormFieldMixin.
174
- // `_defaultValue` (mixin) replaces the old `defaultValue` field.
174
+ // `defaultValue` (mixin) replaces the old `defaultValue` field.
175
175
 
176
176
  // ----------------------------
177
177
  // D) Form-associated logic
@@ -187,18 +187,18 @@ export default class SchmancyInput extends SchmancyFormField(unsafeCSS(style)) {
187
187
  */
188
188
  protected override willUpdate(changedProps: Map<PropertyKey, unknown>) {
189
189
  if (!this.id) {
190
- this.id = `sch-input-${SchmancyInput._idCounter++}`
190
+ this.id = `sch-input-${SchmancyInput.idCounter++}`
191
191
  }
192
192
  super.willUpdate(changedProps as never)
193
193
  }
194
194
 
195
195
 
196
196
  // `updated()` removed — FormFieldMixin's `willUpdate` recomputes `dirty`,
197
- // triggers `checkValidity()` when `_shouldShowError()` is true, and updates
197
+ // triggers `checkValidity()` when `shouldShowError()` is true, and updates
198
198
  // `:state(dirty)` automatically.
199
199
  //
200
200
  // Default value capture is also handled by the mixin (`firstUpdated` sets
201
- // `_defaultValue` from `value`).
201
+ // `defaultValue` from `value`).
202
202
 
203
203
  connectedCallback() {
204
204
  super.connectedCallback()
@@ -250,7 +250,7 @@ export default class SchmancyInput extends SchmancyFormField(unsafeCSS(style)) {
250
250
  * via `internals.setValidity` so consumers can target specific flags via
251
251
  * `field.validity.<flag>` and `:state(value-missing|type-mismatch|…)`.
252
252
  *
253
- * The visual `error` flag is still gated by the mixin's `_shouldShowError()`.
253
+ * The visual `error` flag is still gated by the mixin's `shouldShowError()`.
254
254
  */
255
255
  /**
256
256
  * Re-run checkValidity AFTER render so the native inner input's `.value`
@@ -278,7 +278,7 @@ export default class SchmancyInput extends SchmancyFormField(unsafeCSS(style)) {
278
278
  * Order matches the natural priority of validity flags (valueMissing
279
279
  * before more specific ones — empty trumps malformed).
280
280
  */
281
- private _firstMatchingErrorMessage(v: ValidityState): string | undefined {
281
+ private firstMatchingErrorMessage(v: ValidityState): string | undefined {
282
282
  const m = this.errorMessages
283
283
  if (!m) return undefined
284
284
  if (v.valueMissing && m.valueMissing) return m.valueMissing
@@ -314,12 +314,12 @@ export default class SchmancyInput extends SchmancyFormField(unsafeCSS(style)) {
314
314
  }
315
315
  // errorMessages override: pick the first matching flag and use the
316
316
  // consumer-provided copy. Falls back to the native browser message.
317
- const overrideMessage = this._firstMatchingErrorMessage(v)
317
+ const overrideMessage = this.firstMatchingErrorMessage(v)
318
318
  this.internals?.setValidity(
319
319
  flags,
320
320
  overrideMessage || native.validationMessage || this.validationMessage || 'Invalid value',
321
321
  )
322
- if (this._shouldShowError()) {
322
+ if (this.shouldShowError()) {
323
323
  this.error = true
324
324
  // Always reflect the current flag's message — previous
325
325
  // validationMessage may be stale (different flag).
@@ -440,7 +440,7 @@ export default class SchmancyInput extends SchmancyFormField(unsafeCSS(style)) {
440
440
  // Update component value
441
441
  this.value = eventData.value
442
442
 
443
- // `dirty` is a getter on the mixin (value vs _defaultValue) — no manual set.
443
+ // `dirty` is a getter on the mixin (value vs defaultValue) — no manual set.
444
444
 
445
445
  // Fire custom 'input' event with extended details
446
446
  const customEvent = new CustomEvent<EventDetails>('input', {
@@ -459,7 +459,7 @@ export default class SchmancyInput extends SchmancyFormField(unsafeCSS(style)) {
459
459
  this.dispatchEvent(customEvent)
460
460
 
461
461
  // Mixin's willUpdate runs checkValidity() on value-change when
462
- // _shouldShowError() is true — no manual validateInput() call.
462
+ // shouldShowError() is true — no manual validateInput() call.
463
463
  })
464
464
 
465
465
  // Subscribe to native change events (usually on blur)
@@ -539,7 +539,7 @@ export default class SchmancyInput extends SchmancyFormField(unsafeCSS(style)) {
539
539
  const { value } = ev.target as HTMLInputElement
540
540
  this.value = value
541
541
  this.isAutofilled = true
542
- // `dirty` is a getter on the mixin — recomputes from value vs _defaultValue.
542
+ // `dirty` is a getter on the mixin — recomputes from value vs defaultValue.
543
543
 
544
544
  // Dispatch autofill event for integration with autofill systems
545
545
  this.dispatchEvent(
@@ -22,10 +22,10 @@ export class RadioButton extends SchmancyElement {
22
22
  super.connectedCallback()
23
23
  fromEvent<MouseEvent>(this, 'click')
24
24
  .pipe(takeUntil(this.disconnecting))
25
- .subscribe(this._handleClick)
25
+ .subscribe(this.handleClick)
26
26
  }
27
27
 
28
- private _handleClick = () => {
28
+ private handleClick = () => {
29
29
  if (this.disabled) return
30
30
  this.dispatchEvent(new CustomEvent('radio-button-click', {
31
31
  detail: { value: this.value },
@@ -24,16 +24,16 @@ export class RadioGroup extends FormFieldMixin(SchmancyElement) {
24
24
  .subscribe((e: CustomEvent<{ value: string }>) => {
25
25
  this.value = e.detail.value
26
26
  this.emitChange({ value: e.detail.value })
27
- this._syncChildren()
27
+ this.syncChildren()
28
28
  })
29
29
  }
30
30
 
31
31
  updated(changed: Map<string, unknown>) {
32
32
  super.updated(changed)
33
- if (changed.has('value')) this._syncChildren()
33
+ if (changed.has('value')) this.syncChildren()
34
34
  }
35
35
 
36
- private _syncChildren() {
36
+ private syncChildren() {
37
37
  this.querySelectorAll<RadioButton>('schmancy-radio-button').forEach(btn => {
38
38
  btn.checked = btn.value === this.value
39
39
  })
@@ -52,28 +52,28 @@ export class SchmancySelect extends SchmancyFormField() {
52
52
  @property({ type: String, reflect: true })
53
53
  override get value(): string | string[] {
54
54
  return this.multi
55
- ? (this._selectedValues$?.value ?? [])
56
- : (this._selectedValue$?.value ?? '')
55
+ ? (this.selectedValues$?.value ?? [])
56
+ : (this.selectedValue$?.value ?? '')
57
57
  }
58
58
  override set value(val: string | string[]) {
59
- if (!this._selectedValue$ || !this._selectedValues$) return
59
+ if (!this.selectedValue$ || !this.selectedValues$) return
60
60
  if (this.multi) {
61
61
  const values = Array.isArray(val)
62
62
  ? val
63
63
  : val ? String(val).split(',').map(v => v.trim()).filter(Boolean) : []
64
- this._selectedValues$.next(values)
64
+ this.selectedValues$.next(values)
65
65
  } else {
66
- this._selectedValue$.next(val == null ? '' : String(val))
66
+ this.selectedValue$.next(val == null ? '' : String(val))
67
67
  }
68
68
  }
69
69
 
70
70
  // Values property for multi-select mode
71
71
  @property({ type: Array })
72
72
  get values() {
73
- return [...this._selectedValues$.value]
73
+ return [...this.selectedValues$.value]
74
74
  }
75
75
  set values(vals: string[]) {
76
- this._selectedValues$.next(Array.isArray(vals) ? [...vals] : [])
76
+ this.selectedValues$.next(Array.isArray(vals) ? [...vals] : [])
77
77
  }
78
78
 
79
79
  @property({ type: Boolean }) multi = false
@@ -87,7 +87,7 @@ export class SchmancySelect extends SchmancyFormField() {
87
87
  @state() private isValid = true
88
88
 
89
89
  // Store the initial/default value for reset behavior. Distinct from the
90
- // mixin's `_defaultValue` (which is `string` only); select needs the wider
90
+ // mixin's `defaultValue` (which is `string` only); select needs the wider
91
91
  // shape so resetForm can restore arrays for multi-select.
92
92
  @state() private selectDefaultValue: string | string[] = ''
93
93
 
@@ -97,10 +97,10 @@ export class SchmancySelect extends SchmancyFormField() {
97
97
  private cleanupPositioner?: () => void
98
98
 
99
99
  // Reactive state management
100
- private _options$ = new BehaviorSubject<SchmancyOption[]>([])
101
- private _selectedValue$ = new BehaviorSubject<string>('')
102
- private _selectedValues$ = new BehaviorSubject<string[]>([])
103
- private _optionSelect$ = new Subject<SchmancyOption>()
100
+ private options$ = new BehaviorSubject<SchmancyOption[]>([])
101
+ private selectedValue$ = new BehaviorSubject<string>('')
102
+ private selectedValues$ = new BehaviorSubject<string[]>([])
103
+ private optionSelect$ = new Subject<SchmancyOption>()
104
104
 
105
105
  /**
106
106
  * Tracks whether the user has actively interacted (clicked/typed/keyed
@@ -108,10 +108,10 @@ export class SchmancySelect extends SchmancyFormField() {
108
108
  * blur). Used to gate dropdown-positioning side-effects on user-driven
109
109
  * actions versus programmatic state changes.
110
110
  */
111
- @state() _userInteracted = false
111
+ @state() userInteracted = false
112
112
 
113
113
  // Reference to current focused option (for keyboard navigation)
114
- @state() private _focusedOptionId = ''
114
+ @state() private focusedOptionId = ''
115
115
 
116
116
  override connectedCallback() {
117
117
  super.connectedCallback()
@@ -126,7 +126,7 @@ export class SchmancySelect extends SchmancyFormField() {
126
126
  fromEvent<KeyboardEvent>(this, 'keydown').pipe(takeUntil(this.disconnecting)).subscribe(this.handleKeyDown)
127
127
 
128
128
  // Setup reactive pipelines
129
- this._setupReactivePipelines()
129
+ this.setupReactivePipelines()
130
130
  }
131
131
 
132
132
  override disconnectedCallback() {
@@ -153,12 +153,12 @@ export class SchmancySelect extends SchmancyFormField() {
153
153
  // mixin's willUpdate already called setFormValue with the raw
154
154
  // value, override here for the joined-string shape.
155
155
  const formValue = this.multi
156
- ? this._selectedValues$.value.join(',')
157
- : this._selectedValue$.value
156
+ ? this.selectedValues$.value.join(',')
157
+ : this.selectedValue$.value
158
158
  this.internals?.setFormValue(formValue)
159
159
 
160
- // `dirty` is a mixin getter (value !== _defaultValue); no manual flag.
161
- // Mixin's willUpdate already calls checkValidity when _shouldShowError().
160
+ // `dirty` is a mixin getter (value !== defaultValue); no manual flag.
161
+ // Mixin's willUpdate already calls checkValidity when shouldShowError().
162
162
  }
163
163
 
164
164
  // When open state changes, setup or cleanup the dropdown positioner
@@ -171,12 +171,12 @@ export class SchmancySelect extends SchmancyFormField() {
171
171
  }
172
172
  }
173
173
 
174
- // `shouldShowValidation` removed — replaced by mixin's `_shouldShowError()`.
174
+ // `shouldShowValidation` removed — replaced by mixin's `shouldShowError()`.
175
175
 
176
176
  private syncSelection() {
177
177
  if (this.multi) {
178
178
  // Read directly from the BehaviorSubject to avoid string conversion issues
179
- const selectedValues = this._selectedValues$.value
179
+ const selectedValues = this.selectedValues$.value
180
180
  this.options?.forEach(o => (o.selected = selectedValues.includes(o.value))) // Update option selected state
181
181
  this.valueLabel =
182
182
  selectedValues.length > 0
@@ -187,7 +187,7 @@ export class SchmancySelect extends SchmancyFormField() {
187
187
  : this.placeholder
188
188
  } else {
189
189
  // Single select - read from BehaviorSubject
190
- const currentValue = this._selectedValue$.value
190
+ const currentValue = this.selectedValue$.value
191
191
  this.options?.forEach(o => {
192
192
  // Set selected property on each option based on matching value
193
193
  o.selected = o.value === currentValue
@@ -209,7 +209,7 @@ export class SchmancySelect extends SchmancyFormField() {
209
209
 
210
210
  option.setAttribute(
211
211
  'aria-selected',
212
- String(this.multi ? this._selectedValues$.value.includes(option.value) : option.value === this._selectedValue$.value),
212
+ String(this.multi ? this.selectedValues$.value.includes(option.value) : option.value === this.selectedValue$.value),
213
213
  )
214
214
  })
215
215
  }
@@ -266,7 +266,7 @@ export class SchmancySelect extends SchmancyFormField() {
266
266
 
267
267
  // Find current focused option
268
268
  const options = Array.from(this.options || [])
269
- const current = options.findIndex(o => o.id === this._focusedOptionId) ?? -1
269
+ const current = options.findIndex(o => o.id === this.focusedOptionId) ?? -1
270
270
 
271
271
  switch (e.key) {
272
272
  case 'Escape':
@@ -292,8 +292,8 @@ export class SchmancySelect extends SchmancyFormField() {
292
292
  case 'Enter':
293
293
  case ' ':
294
294
  e.preventDefault()
295
- if (this._focusedOptionId) {
296
- const focusedOption = options.find(opt => opt.id === this._focusedOptionId)
295
+ if (this.focusedOptionId) {
296
+ const focusedOption = options.find(opt => opt.id === this.focusedOptionId)
297
297
  if (focusedOption) {
298
298
  this.handleOptionSelect(focusedOption.value)
299
299
  }
@@ -309,7 +309,7 @@ export class SchmancySelect extends SchmancyFormField() {
309
309
  const option = options[index]
310
310
  if (option) {
311
311
  option.focus()
312
- this._focusedOptionId = option.id
312
+ this.focusedOptionId = option.id
313
313
 
314
314
  // Update aria-activedescendant on the combobox
315
315
  const combobox = this.renderRoot.querySelector('.trigger')
@@ -349,7 +349,7 @@ export class SchmancySelect extends SchmancyFormField() {
349
349
 
350
350
  // Focus first or selected option
351
351
  const options = Array.from(this.options || [])
352
- const selectedIndex = this.multi ? 0 : options.findIndex(o => o.value === this._selectedValue$.value)
352
+ const selectedIndex = this.multi ? 0 : options.findIndex(o => o.value === this.selectedValue$.value)
353
353
 
354
354
  this.focusOption(options, Math.max(selectedIndex, 0))
355
355
 
@@ -361,12 +361,12 @@ export class SchmancySelect extends SchmancyFormField() {
361
361
  private closeDropdown() {
362
362
  // Only mark as touched if the user actually interacted with the component
363
363
  // and made a selection or explicitly closed it without selecting
364
- if (this._userInteracted) {
364
+ if (this.userInteracted) {
365
365
  this.touched = true
366
366
  }
367
367
 
368
368
  this.isOpen = false
369
- this._focusedOptionId = ''
369
+ this.focusedOptionId = ''
370
370
 
371
371
  // Update combobox to remove aria-activedescendant
372
372
  const combobox = this.renderRoot.querySelector<HTMLElement>('.trigger')
@@ -377,12 +377,12 @@ export class SchmancySelect extends SchmancyFormField() {
377
377
 
378
378
  // Only check validity when closing if the user has actually interacted
379
379
  // with the component and validation should be shown
380
- if (this._userInteracted && this._shouldShowError()) {
380
+ if (this.userInteracted && this.shouldShowError()) {
381
381
  this.checkValidity()
382
382
  }
383
383
  }
384
384
 
385
- private _setupReactivePipelines() {
385
+ private setupReactivePipelines() {
386
386
  // Listen for option-select events from child options
387
387
  fromEvent<CustomEvent>(this, 'option-select')
388
388
  .pipe(
@@ -390,7 +390,7 @@ export class SchmancySelect extends SchmancyFormField() {
390
390
  e.stopPropagation() // Prevent event from bubbling further
391
391
  const option = this.options.find(o => o.value === e.detail.value)
392
392
  if (option) {
393
- this._optionSelect$.next(option)
393
+ this.optionSelect$.next(option)
394
394
  }
395
395
  }),
396
396
  takeUntil(this.disconnecting)
@@ -398,11 +398,11 @@ export class SchmancySelect extends SchmancyFormField() {
398
398
  .subscribe()
399
399
 
400
400
  // Handle option selection through reactive pipeline
401
- this._optionSelect$
401
+ this.optionSelect$
402
402
  .pipe(
403
- withLatestFrom(this._selectedValue$, this._selectedValues$),
403
+ withLatestFrom(this.selectedValue$, this.selectedValues$),
404
404
  tap(([option, _, currentValues]) => {
405
- this._userInteracted = true
405
+ this.userInteracted = true
406
406
  this.markTouched()
407
407
  // `dirty` is a mixin getter; setting `value` below triggers it
408
408
 
@@ -411,7 +411,7 @@ export class SchmancySelect extends SchmancyFormField() {
411
411
  const newValues = index > -1
412
412
  ? [...currentValues.slice(0, index), ...currentValues.slice(index + 1)]
413
413
  : [...currentValues, option.value]
414
- this._selectedValues$.next(newValues)
414
+ this.selectedValues$.next(newValues)
415
415
 
416
416
  // Update form value
417
417
  this.internals?.setFormValue(newValues.join(','))
@@ -425,7 +425,7 @@ export class SchmancySelect extends SchmancyFormField() {
425
425
  : this.placeholder
426
426
  } else {
427
427
  // Single select
428
- this._selectedValue$.next(option.value)
428
+ this.selectedValue$.next(option.value)
429
429
 
430
430
  // Update form value
431
431
  this.internals?.setFormValue(option.value)
@@ -438,14 +438,14 @@ export class SchmancySelect extends SchmancyFormField() {
438
438
  this.setupOptionsAccessibility()
439
439
 
440
440
  // Dispatch change event
441
- this._fireChangeEvent()
441
+ this.fireChangeEvent()
442
442
  }),
443
443
  takeUntil(this.disconnecting)
444
444
  )
445
445
  .subscribe()
446
446
 
447
447
  // Options management pipeline - bind pointerdown events exactly like autocomplete
448
- this._options$
448
+ this.options$
449
449
  .pipe(
450
450
  tap((options) => {
451
451
  options.forEach((option, index) => {
@@ -463,7 +463,7 @@ export class SchmancySelect extends SchmancyFormField() {
463
463
  e.stopPropagation()
464
464
  }),
465
465
  takeUntil(this.disconnecting)
466
- ).subscribe(() => this._optionSelect$.next(option))
466
+ ).subscribe(() => this.optionSelect$.next(option))
467
467
  option.setAttribute('data-event-bound', 'true')
468
468
  }
469
469
  })
@@ -473,7 +473,7 @@ export class SchmancySelect extends SchmancyFormField() {
473
473
  .subscribe()
474
474
 
475
475
  // Selection sync pipeline - sync selected states with value changes
476
- combineLatest([this._selectedValue$, this._selectedValues$, this._options$])
476
+ combineLatest([this.selectedValue$, this.selectedValues$, this.options$])
477
477
  .pipe(
478
478
  tap(([singleValue, multiValues, options]) => {
479
479
  if (options.length === 0) return
@@ -497,13 +497,13 @@ export class SchmancySelect extends SchmancyFormField() {
497
497
  // This method is now called from keyboard navigation only
498
498
  const option = this.options.find(o => o.value === value)
499
499
  if (option) {
500
- this._optionSelect$.next(option)
500
+ this.optionSelect$.next(option)
501
501
  }
502
502
  }
503
503
 
504
- private _fireChangeEvent() {
504
+ private fireChangeEvent() {
505
505
  // Get the current value based on multi/single mode
506
- const value = this.multi ? this._selectedValues$.value : this._selectedValue$.value
506
+ const value = this.multi ? this.selectedValues$.value : this.selectedValue$.value
507
507
 
508
508
  // Dispatch only one change event with the value in detail
509
509
  this.dispatchEvent(
@@ -526,8 +526,8 @@ export class SchmancySelect extends SchmancyFormField() {
526
526
 
527
527
  // Determine if the select is empty based on whether it's multi-select or single-select
528
528
  const isEmpty = this.multi
529
- ? this._selectedValues$.value.length === 0
530
- : !this._selectedValue$.value
529
+ ? this.selectedValues$.value.length === 0
530
+ : !this.selectedValue$.value
531
531
 
532
532
  // Check if the value is valid (not empty when required)
533
533
  const isValid = !(this.required && isEmpty)
@@ -546,7 +546,7 @@ export class SchmancySelect extends SchmancyFormField() {
546
546
 
547
547
  // Update the input component to reflect our validation state
548
548
  if (this.inputRef && this.hasUpdated) {
549
- const showError = !this.isValid && this._shouldShowError()
549
+ const showError = !this.isValid && this.shouldShowError()
550
550
  this.inputRef.error = showError
551
551
  this.inputRef.hint = showError ? this.validationMessage : this.hint
552
552
  }
@@ -582,7 +582,7 @@ export class SchmancySelect extends SchmancyFormField() {
582
582
 
583
583
  // `markTouched`, `markSubmitted`, `touched`, `dirty`, `pristine`, `submitted`,
584
584
  // `error` (storage) — all from the mixin. Select's `error` semantics
585
- // (errors-while-open suppression) live in render() via _shouldShowError() +
585
+ // (errors-while-open suppression) live in render() via shouldShowError() +
586
586
  // !isOpen, not as a separate getter.
587
587
 
588
588
  /**
@@ -610,7 +610,7 @@ export class SchmancySelect extends SchmancyFormField() {
610
610
  }
611
611
 
612
612
  // Update input if needed
613
- if (this.inputRef && this._shouldShowError()) {
613
+ if (this.inputRef && this.shouldShowError()) {
614
614
  this.inputRef.error = !this.isValid
615
615
  this.inputRef.hint = !this.isValid ? this.validationMessage : this.hint
616
616
  }
@@ -622,12 +622,12 @@ export class SchmancySelect extends SchmancyFormField() {
622
622
  * select-specific cleanup (value subjects, label, validity).
623
623
  */
624
624
  override resetForm(): void {
625
- // Restore value (multi-aware) before super so the mixin's _defaultValue
625
+ // Restore value (multi-aware) before super so the mixin's defaultValue
626
626
  // reset doesn't clobber the array-shape we need.
627
627
  this.value = this.selectDefaultValue
628
628
  this.valueLabel = this.placeholder
629
629
  this.isValid = true
630
- this._userInteracted = false
630
+ this.userInteracted = false
631
631
  this.internals?.setValidity({})
632
632
  super.resetForm()
633
633
  if (this.inputRef) {
@@ -644,7 +644,7 @@ export class SchmancySelect extends SchmancyFormField() {
644
644
  render(): TemplateResult {
645
645
  // Determine if we should show errors based on the validation strategy and interaction
646
646
  // Never show errors on initial render or if the dropdown is open
647
- const showErrors = !this.isValid && this._shouldShowError() && !this.isOpen
647
+ const showErrors = !this.isValid && this.shouldShowError() && !this.isOpen
648
648
 
649
649
  // Add caret icon based on open state
650
650
  const caretIcon = this.isOpen
@@ -663,7 +663,7 @@ export class SchmancySelect extends SchmancyFormField() {
663
663
  aria-controls="options"
664
664
  aria-autocomplete="none"
665
665
  aria-required=${this.required}
666
- aria-activedescendant=${ifDefined(this._focusedOptionId || undefined)}
666
+ aria-activedescendant=${ifDefined(this.focusedOptionId || undefined)}
667
667
  aria-disabled=${this.disabled}
668
668
  .label=${this.label}
669
669
  .placeholder=${this.placeholder}
@@ -690,7 +690,7 @@ export class SchmancySelect extends SchmancyFormField() {
690
690
  this.openDropdown(false)
691
691
  } else {
692
692
  // Mark as interacted when they close the dropdown
693
- this._userInteracted = true
693
+ this.userInteracted = true
694
694
  this.closeDropdown()
695
695
  }
696
696
  }}
@@ -718,7 +718,7 @@ export class SchmancySelect extends SchmancyFormField() {
718
718
  >
719
719
  <slot
720
720
  @slotchange=${() => {
721
- this._options$.next(this.options)
721
+ this.options$.next(this.options)
722
722
  // Sync selection state when options re-render
723
723
  this.syncSelection()
724
724
  }}