@mhmo91/schmancy 0.10.15 → 0.10.17

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 (572) hide show
  1. package/custom-elements.json +2554 -3086
  2. package/dist/active-host-BP0zy_Y9.js +63 -0
  3. package/dist/{active-host-CvNYoprt.js.map → active-host-BP0zy_Y9.js.map} +1 -1
  4. package/dist/active-host-jH3iloCR.cjs +1 -0
  5. package/dist/{active-host-CcIa2tmW.cjs.map → active-host-jH3iloCR.cjs.map} +1 -1
  6. package/dist/agent/flow-CvG1fLW5.js.map +1 -1
  7. package/dist/agent/schmancy.agent.js +5694 -5500
  8. package/dist/agent/schmancy.agent.js.map +1 -1
  9. package/dist/agent/schmancy.manifest.json +971 -1189
  10. package/dist/agent/vendor-material-color-DcL7ZPxx.js.map +1 -1
  11. package/dist/{animation-CO_Csq84.cjs.map → animation-CCOIW4wJ.cjs.map} +1 -1
  12. package/dist/{animation-BK-8BwY8.js.map → animation-DCznELuT.js.map} +1 -1
  13. package/dist/{area-C_kgZZhN.js → area-ChxsDTu_.js} +2 -2
  14. package/dist/{area-C_kgZZhN.js.map → area-ChxsDTu_.js.map} +1 -1
  15. package/dist/{area-DFPtKzWy.cjs → area-Qt6yUnuA.cjs} +3 -3
  16. package/dist/{area-DFPtKzWy.cjs.map → area-Qt6yUnuA.cjs.map} +1 -1
  17. package/dist/area.cjs +1 -1
  18. package/dist/area.js +2 -2
  19. package/dist/{audio-CluX8Qpq.cjs → audio-D-TZzpXF.cjs} +1 -1
  20. package/dist/{audio-CluX8Qpq.cjs.map → audio-D-TZzpXF.cjs.map} +1 -1
  21. package/dist/{audio-DcXphulJ.js → audio-DS43uoRA.js} +1 -1
  22. package/dist/{audio-DcXphulJ.js.map → audio-DS43uoRA.js.map} +1 -1
  23. package/dist/audio.cjs +1 -1
  24. package/dist/audio.js +2 -2
  25. package/dist/{autocomplete-DWSuwSRS.js → autocomplete-CXvUjMD-.js} +46 -71
  26. package/dist/autocomplete-CXvUjMD-.js.map +1 -0
  27. package/dist/autocomplete-Ck2zbdF9.cjs +115 -0
  28. package/dist/autocomplete-Ck2zbdF9.cjs.map +1 -0
  29. package/dist/autocomplete.cjs +1 -1
  30. package/dist/autocomplete.js +1 -1
  31. package/dist/avatar.cjs +2 -2
  32. package/dist/avatar.cjs.map +1 -1
  33. package/dist/avatar.js +3 -3
  34. package/dist/avatar.js.map +1 -1
  35. package/dist/badge.cjs +1 -1
  36. package/dist/badge.js +1 -1
  37. package/dist/{boat-CZma2ojF.js → boat-Bj0wVcZi.js} +5 -5
  38. package/dist/{boat-CZma2ojF.js.map → boat-Bj0wVcZi.js.map} +1 -1
  39. package/dist/{boat-Dy6cc3hB.cjs → boat-DpFkILFF.cjs} +2 -2
  40. package/dist/{boat-Dy6cc3hB.cjs.map → boat-DpFkILFF.cjs.map} +1 -1
  41. package/dist/boat.cjs +1 -1
  42. package/dist/boat.js +1 -1
  43. package/dist/breadcrumb.cjs +3 -3
  44. package/dist/breadcrumb.cjs.map +1 -1
  45. package/dist/breadcrumb.js +2 -2
  46. package/dist/breadcrumb.js.map +1 -1
  47. package/dist/{busy-DCsqryvq.cjs → busy-CtcnclA3.cjs} +3 -3
  48. package/dist/{busy-DCsqryvq.cjs.map → busy-CtcnclA3.cjs.map} +1 -1
  49. package/dist/{busy-DeV2ByMw.js → busy-CyZSBnZP.js} +2 -2
  50. package/dist/{busy-DeV2ByMw.js.map → busy-CyZSBnZP.js.map} +1 -1
  51. package/dist/busy.cjs +1 -1
  52. package/dist/busy.js +1 -1
  53. package/dist/button.cjs +4 -4
  54. package/dist/button.cjs.map +1 -1
  55. package/dist/button.js +19 -4
  56. package/dist/button.js.map +1 -1
  57. package/dist/{card--GgSX4X5.cjs → card-Cl6jp1yX.cjs} +5 -5
  58. package/dist/{card--GgSX4X5.cjs.map → card-Cl6jp1yX.cjs.map} +1 -1
  59. package/dist/{card-BTTsHzJJ.js → card-nYZCKmOO.js} +3 -3
  60. package/dist/{card-BTTsHzJJ.js.map → card-nYZCKmOO.js.map} +1 -1
  61. package/dist/card.cjs +1 -1
  62. package/dist/card.js +1 -1
  63. package/dist/{checkbox-NNReP9s_.cjs → checkbox-BeNo0ZGt.cjs} +4 -4
  64. package/dist/{checkbox-Cj5j-ppk.js.map → checkbox-BeNo0ZGt.cjs.map} +1 -1
  65. package/dist/{checkbox-Cj5j-ppk.js → checkbox-DiUrZiyc.js} +17 -30
  66. package/dist/checkbox-DiUrZiyc.js.map +1 -0
  67. package/dist/checkbox.cjs +1 -1
  68. package/dist/checkbox.js +1 -1
  69. package/dist/{chips-CP-CbfoZ.js → chips-CfPFXv7Z.js} +5 -5
  70. package/dist/{chips-CP-CbfoZ.js.map → chips-CfPFXv7Z.js.map} +1 -1
  71. package/dist/{chips-iporOXxK.cjs → chips-DK6m-VCM.cjs} +5 -5
  72. package/dist/{chips-iporOXxK.cjs.map → chips-DK6m-VCM.cjs.map} +1 -1
  73. package/dist/chips.cjs +1 -1
  74. package/dist/chips.js +2 -2
  75. package/dist/connectivity.cjs +2 -2
  76. package/dist/connectivity.cjs.map +1 -1
  77. package/dist/connectivity.js +3 -3
  78. package/dist/connectivity.js.map +1 -1
  79. package/dist/content-drawer.cjs +1 -1
  80. package/dist/content-drawer.js +1 -1
  81. package/dist/{context-DJTJnSK4.js.map → context-6oXCZmZN.js.map} +1 -1
  82. package/dist/{context-BpCETidA.cjs.map → context-CRZeiCqq.cjs.map} +1 -1
  83. package/dist/{cursor-glow-Bulq-38P.cjs → cursor-glow-C8LgCxpI.cjs} +1 -1
  84. package/dist/{cursor-glow-Bulq-38P.cjs.map → cursor-glow-C8LgCxpI.cjs.map} +1 -1
  85. package/dist/{cursor-glow-Ah7VXSj7.js → cursor-glow-Cs2XLDB9.js} +1 -1
  86. package/dist/{cursor-glow-Ah7VXSj7.js.map → cursor-glow-Cs2XLDB9.js.map} +1 -1
  87. package/dist/date-range-DA6anfcF.cjs +131 -0
  88. package/dist/date-range-DA6anfcF.cjs.map +1 -0
  89. package/dist/{date-range-CgNujP8r.js → date-range-DjlF2u7o.js} +124 -89
  90. package/dist/date-range-DjlF2u7o.js.map +1 -0
  91. package/dist/date-range-inline-BfYK795W.cjs +43 -0
  92. package/dist/{date-range-inline-D4IjOOO0.cjs.map → date-range-inline-BfYK795W.cjs.map} +1 -1
  93. package/dist/{date-range-inline-C2PXX_GY.js → date-range-inline-n7y_H6PJ.js} +2 -2
  94. package/dist/{date-range-inline-C2PXX_GY.js.map → date-range-inline-n7y_H6PJ.js.map} +1 -1
  95. package/dist/date-range-inline.cjs +1 -1
  96. package/dist/date-range-inline.js +1 -1
  97. package/dist/date-range.cjs +1 -1
  98. package/dist/date-range.js +1 -1
  99. package/dist/delay.cjs +2 -2
  100. package/dist/delay.cjs.map +1 -1
  101. package/dist/delay.js +3 -3
  102. package/dist/delay.js.map +1 -1
  103. package/dist/{details-DT2b3xOn.cjs → details-BdAVsLl-.cjs} +2 -2
  104. package/dist/{details-DT2b3xOn.cjs.map → details-BdAVsLl-.cjs.map} +1 -1
  105. package/dist/{details-VjaNwtfd.js → details-CS_ToAOj.js} +6 -6
  106. package/dist/{details-VjaNwtfd.js.map → details-CS_ToAOj.js.map} +1 -1
  107. package/dist/details.cjs +1 -1
  108. package/dist/details.js +1 -1
  109. package/dist/directives.cjs +1 -1
  110. package/dist/directives.cjs.map +1 -1
  111. package/dist/directives.js +5 -5
  112. package/dist/directives.js.map +1 -1
  113. package/dist/discovery.js.map +1 -1
  114. package/dist/{divider-BMO8pzEO.js → divider-COLK0RbT.js} +2 -2
  115. package/dist/{divider-BMO8pzEO.js.map → divider-COLK0RbT.js.map} +1 -1
  116. package/dist/{divider-BW33TZ-X.cjs → divider-CvWAnvdO.cjs} +2 -2
  117. package/dist/{divider-BW33TZ-X.cjs.map → divider-CvWAnvdO.cjs.map} +1 -1
  118. package/dist/divider.cjs +1 -1
  119. package/dist/divider.js +1 -1
  120. package/dist/dropdown.cjs +3 -3
  121. package/dist/dropdown.cjs.map +1 -1
  122. package/dist/dropdown.js +2 -2
  123. package/dist/dropdown.js.map +1 -1
  124. package/dist/{expand-DbELKKOt.js → expand-D9LzmpoV.js} +5 -5
  125. package/dist/{expand-DbELKKOt.js.map → expand-D9LzmpoV.js.map} +1 -1
  126. package/dist/{expand-_f5EUKWB.cjs → expand-r2sATPUJ.cjs} +3 -3
  127. package/dist/{expand-_f5EUKWB.cjs.map → expand-r2sATPUJ.cjs.map} +1 -1
  128. package/dist/expand.cjs +1 -1
  129. package/dist/expand.js +1 -1
  130. package/dist/float-2nHYuBx-.cjs +1 -0
  131. package/dist/{float-CKmd-0-t.cjs.map → float-2nHYuBx-.cjs.map} +1 -1
  132. package/dist/{float-B6RBb2dN.js → float-BWy39CXr.js} +2 -2
  133. package/dist/{float-B6RBb2dN.js.map → float-BWy39CXr.js.map} +1 -1
  134. package/dist/float.cjs +1 -1
  135. package/dist/float.js +1 -1
  136. package/dist/form-D1iJOLVb.js +267 -0
  137. package/dist/form-D1iJOLVb.js.map +1 -0
  138. package/dist/form-D9K1GhlP.cjs +42 -0
  139. package/dist/form-D9K1GhlP.cjs.map +1 -0
  140. package/dist/form.cjs +1 -1
  141. package/dist/form.js +9 -2
  142. package/dist/handover/agent-runtime-followups.md +1 -1
  143. package/dist/handover/agent-runtime-v1.md +3 -3
  144. package/dist/{hashContent-Bobsobip.cjs.map → hashContent-Ck6laKlk.cjs.map} +1 -1
  145. package/dist/{hashContent-BU6jl5ih.js.map → hashContent-dJrI-9sc.js.map} +1 -1
  146. package/dist/{icons-r-S17M8U.cjs → icons-BXp4vbnW.cjs} +2 -2
  147. package/dist/{icons-r-S17M8U.cjs.map → icons-BXp4vbnW.cjs.map} +1 -1
  148. package/dist/{icons-CoDo95Cu.js → icons-COrlmBPB.js} +3 -3
  149. package/dist/{icons-CoDo95Cu.js.map → icons-COrlmBPB.js.map} +1 -1
  150. package/dist/icons.cjs +1 -1
  151. package/dist/icons.js +1 -1
  152. package/dist/{iframe-P9c_qg1-.cjs → iframe-BwXj6mLp.cjs} +2 -2
  153. package/dist/{iframe-P9c_qg1-.cjs.map → iframe-BwXj6mLp.cjs.map} +1 -1
  154. package/dist/{iframe-k4oI-TIj.js → iframe-CPNsIy7k.js} +2 -2
  155. package/dist/{iframe-k4oI-TIj.js.map → iframe-CPNsIy7k.js.map} +1 -1
  156. package/dist/iframe.cjs +1 -1
  157. package/dist/iframe.js +1 -1
  158. package/dist/index.cjs +1 -1
  159. package/dist/index.js +60 -60
  160. package/dist/input-BGrF2qVq.cjs +52 -0
  161. package/dist/input-BGrF2qVq.cjs.map +1 -0
  162. package/dist/{input-D95GjINh.js → input-C1SnMNuQ.js} +103 -104
  163. package/dist/input-C1SnMNuQ.js.map +1 -0
  164. package/dist/{input-chip-DpC_XEKN.js → input-chip-CtQ0pH5b.js} +2 -2
  165. package/dist/{input-chip-DpC_XEKN.js.map → input-chip-CtQ0pH5b.js.map} +1 -1
  166. package/dist/{input-chip-D0ZXqTt5.cjs → input-chip-DZktYohr.cjs} +2 -2
  167. package/dist/{input-chip-D0ZXqTt5.cjs.map → input-chip-DZktYohr.cjs.map} +1 -1
  168. package/dist/input.cjs +1 -1
  169. package/dist/input.js +1 -1
  170. package/dist/json.cjs +2 -2
  171. package/dist/json.cjs.map +1 -1
  172. package/dist/json.js +3 -3
  173. package/dist/json.js.map +1 -1
  174. package/dist/kbd.cjs +2 -2
  175. package/dist/kbd.cjs.map +1 -1
  176. package/dist/kbd.js +2 -2
  177. package/dist/kbd.js.map +1 -1
  178. package/dist/{layout-CXPNsUIo.js → layout-BH28sKGc.js} +1 -1
  179. package/dist/{layout-CXPNsUIo.js.map → layout-BH28sKGc.js.map} +1 -1
  180. package/dist/{layout-Zhe7wSZ_.cjs → layout-Delq-QvR.cjs} +1 -1
  181. package/dist/{layout-Zhe7wSZ_.cjs.map → layout-Delq-QvR.cjs.map} +1 -1
  182. package/dist/layout.cjs +1 -1
  183. package/dist/layout.js +1 -1
  184. package/dist/{lazy-Dq9mRRjT.cjs.map → lazy-CayEFyC3.cjs.map} +1 -1
  185. package/dist/{lazy-B0ia54tT.js.map → lazy-D-bO2r4m.js.map} +1 -1
  186. package/dist/{lightbox-CovQtmyn.js → lightbox-CLwpaiai.js} +9 -9
  187. package/dist/{lightbox-CovQtmyn.js.map → lightbox-CLwpaiai.js.map} +1 -1
  188. package/dist/{lightbox-C-yHeoK0.cjs → lightbox-Ck6BpN5u.cjs} +3 -3
  189. package/dist/{lightbox-C-yHeoK0.cjs.map → lightbox-Ck6BpN5u.cjs.map} +1 -1
  190. package/dist/lightbox.cjs +1 -1
  191. package/dist/lightbox.js +1 -1
  192. package/dist/{list-C1pR9vhu.js → list-Bmce1Rb8.js} +2 -2
  193. package/dist/{list-C1pR9vhu.js.map → list-Bmce1Rb8.js.map} +1 -1
  194. package/dist/{list-CAijuky4.cjs → list-EmRwSpTU.cjs} +3 -3
  195. package/dist/{list-CAijuky4.cjs.map → list-EmRwSpTU.cjs.map} +1 -1
  196. package/dist/list.cjs +1 -1
  197. package/dist/list.js +1 -1
  198. package/dist/{magnetic-BJgB1dVi.cjs → magnetic-Bgh7aHHI.cjs} +1 -1
  199. package/dist/{magnetic-BJgB1dVi.cjs.map → magnetic-Bgh7aHHI.cjs.map} +1 -1
  200. package/dist/{magnetic-YwCNvtbB.js → magnetic-DxvoEz8_.js} +2 -2
  201. package/dist/{magnetic-YwCNvtbB.js.map → magnetic-DxvoEz8_.js.map} +1 -1
  202. package/dist/{menu-B59vZv9n.js → menu-BA_B7QOG.js} +3 -3
  203. package/dist/{menu-B59vZv9n.js.map → menu-BA_B7QOG.js.map} +1 -1
  204. package/dist/{menu-BaHO3Cip.cjs → menu-BTU3wGP6.cjs} +3 -3
  205. package/dist/{menu-BaHO3Cip.cjs.map → menu-BTU3wGP6.cjs.map} +1 -1
  206. package/dist/menu.cjs +1 -1
  207. package/dist/menu.js +1 -1
  208. package/dist/mixins-BOOu6q2n.cjs +298 -0
  209. package/dist/mixins-BOOu6q2n.cjs.map +1 -0
  210. package/dist/mixins-BWb9_e1s.js +680 -0
  211. package/dist/mixins-BWb9_e1s.js.map +1 -0
  212. package/dist/mixins.cjs +1 -1
  213. package/dist/mixins.js +2 -2
  214. package/dist/nav-drawer.cjs +1 -1
  215. package/dist/nav-drawer.js +1 -1
  216. package/dist/navigation-bar.cjs +1 -1
  217. package/dist/navigation-bar.js +1 -1
  218. package/dist/navigation-rail.cjs +3 -3
  219. package/dist/navigation-rail.cjs.map +1 -1
  220. package/dist/navigation-rail.js +2 -2
  221. package/dist/navigation-rail.js.map +1 -1
  222. package/dist/notification-CliGbcfU.cjs +23 -0
  223. package/dist/{notification-BC9nG8Sr.cjs.map → notification-CliGbcfU.cjs.map} +1 -1
  224. package/dist/{notification-BeLoVa47.js → notification-R2_Mf1HR.js} +4 -4
  225. package/dist/{notification-BeLoVa47.js.map → notification-R2_Mf1HR.js.map} +1 -1
  226. package/dist/notification.cjs +1 -1
  227. package/dist/notification.js +1 -1
  228. package/dist/{option-UvlSAcC4.js → option-DU1X4SDu.js} +2 -2
  229. package/dist/{option-UvlSAcC4.js.map → option-DU1X4SDu.js.map} +1 -1
  230. package/dist/{option-BWF4GBp-.cjs → option-Db98Ndzv.cjs} +2 -2
  231. package/dist/{option-BWF4GBp-.cjs.map → option-Db98Ndzv.cjs.map} +1 -1
  232. package/dist/option.cjs +1 -1
  233. package/dist/option.js +1 -1
  234. package/dist/{overlay-stack-DCDS17uj.js.map → overlay-stack-BR4iYivO.js.map} +1 -1
  235. package/dist/{overlay-stack-DPIe_aYv.cjs.map → overlay-stack-Dk0xETTy.cjs.map} +1 -1
  236. package/dist/overlay.cjs +2 -2
  237. package/dist/overlay.cjs.map +1 -1
  238. package/dist/{overlay.confirm-body-URtE1gI3.cjs → overlay.confirm-body-BkhNvr0c.cjs} +2 -2
  239. package/dist/{overlay.confirm-body-URtE1gI3.cjs.map → overlay.confirm-body-BkhNvr0c.cjs.map} +1 -1
  240. package/dist/{overlay.confirm-body-9W0B5QGv.js → overlay.confirm-body-uFp-0Zfh.js} +2 -2
  241. package/dist/{overlay.confirm-body-9W0B5QGv.js.map → overlay.confirm-body-uFp-0Zfh.js.map} +1 -1
  242. package/dist/overlay.js +8 -8
  243. package/dist/overlay.js.map +1 -1
  244. package/dist/{overlay.service-DnZTcKyJ.cjs → overlay.service-1YWfUD2S.cjs} +1 -1
  245. package/dist/{overlay.service-DnZTcKyJ.cjs.map → overlay.service-1YWfUD2S.cjs.map} +1 -1
  246. package/dist/{overlay.service-CVqs2Gu1.js → overlay.service-BcF12kGb.js} +2 -2
  247. package/dist/{overlay.service-CVqs2Gu1.js.map → overlay.service-BcF12kGb.js.map} +1 -1
  248. package/dist/page.cjs +2 -2
  249. package/dist/page.cjs.map +1 -1
  250. package/dist/page.js +5 -5
  251. package/dist/page.js.map +1 -1
  252. package/dist/{progress-C29Uw-WJ.js → progress-C9Y2D5cm.js} +2 -2
  253. package/dist/{progress-C29Uw-WJ.js.map → progress-C9Y2D5cm.js.map} +1 -1
  254. package/dist/{progress-CwzwY8Oe.cjs → progress-DiVTGAXa.cjs} +2 -2
  255. package/dist/{progress-CwzwY8Oe.cjs.map → progress-DiVTGAXa.cjs.map} +1 -1
  256. package/dist/progress.cjs +1 -1
  257. package/dist/progress.js +1 -1
  258. package/dist/{radio-group-CW8airhZ.js → radio-group-CAzjBI2n.js} +4 -4
  259. package/dist/radio-group-CAzjBI2n.js.map +1 -0
  260. package/dist/radio-group-DIRJyYv6.cjs +40 -0
  261. package/dist/radio-group-DIRJyYv6.cjs.map +1 -0
  262. package/dist/radio-group.cjs +1 -1
  263. package/dist/radio-group.js +1 -1
  264. package/dist/range.cjs +6 -4
  265. package/dist/range.cjs.map +1 -1
  266. package/dist/range.js +19 -15
  267. package/dist/range.js.map +1 -1
  268. package/dist/{reduced-motion-D-L12p7G.js.map → reduced-motion-D7LqTUMn.js.map} +1 -1
  269. package/dist/{reduced-motion-Ds-HjMzn.cjs.map → reduced-motion-Dzfp_w5x.cjs.map} +1 -1
  270. package/dist/{rxjs-utils-DCUHg_Ml.cjs.map → rxjs-utils-BKB2UM_j.cjs.map} +1 -1
  271. package/dist/{rxjs-utils-CVeJQ9KG.js.map → rxjs-utils-Dv9T9IpA.js.map} +1 -1
  272. package/dist/rxjs-utils.cjs +1 -1
  273. package/dist/rxjs-utils.js +1 -1
  274. package/dist/{scroll-BotoGcMU.js → scroll-BFHUtZOa.js} +2 -2
  275. package/dist/{scroll-BotoGcMU.js.map → scroll-BFHUtZOa.js.map} +1 -1
  276. package/dist/{scroll-CmhmUebp.cjs → scroll-nIZyoEMt.cjs} +2 -2
  277. package/dist/{scroll-CmhmUebp.cjs.map → scroll-nIZyoEMt.cjs.map} +1 -1
  278. package/dist/{search-BLCRsxIC.cjs.map → search-DPKoC-dT.cjs.map} +1 -1
  279. package/dist/{search-BTz7-Rev.js.map → search-MvIBA93K.js.map} +1 -1
  280. package/dist/{select-Dbn-CImU.js → select-7WqaUWBU.js} +52 -73
  281. package/dist/select-7WqaUWBU.js.map +1 -0
  282. package/dist/select-DTuf6p6T.cjs +56 -0
  283. package/dist/select-DTuf6p6T.cjs.map +1 -0
  284. package/dist/select.cjs +1 -1
  285. package/dist/select.js +1 -1
  286. package/dist/skeleton.cjs +2 -2
  287. package/dist/skeleton.cjs.map +1 -1
  288. package/dist/skeleton.js +2 -2
  289. package/dist/skeleton.js.map +1 -1
  290. package/dist/skills/SKILL.md +3 -0
  291. package/dist/skills/autocomplete.md +16 -3
  292. package/dist/skills/button.md +19 -0
  293. package/dist/skills/checkbox.md +19 -0
  294. package/dist/skills/date-range.md +19 -0
  295. package/dist/skills/form-ux-rules.md +55 -0
  296. package/dist/skills/form.md +121 -25
  297. package/dist/skills/input.md +19 -4
  298. package/dist/skills/range.md +15 -1
  299. package/dist/skills/schmancy/SKILL.md +3 -0
  300. package/dist/skills/schmancy/autocomplete.md +16 -3
  301. package/dist/skills/schmancy/button.md +19 -0
  302. package/dist/skills/schmancy/checkbox.md +19 -0
  303. package/dist/skills/schmancy/date-range.md +19 -0
  304. package/dist/skills/schmancy/form-ux-rules.md +55 -0
  305. package/dist/skills/schmancy/form.md +121 -25
  306. package/dist/skills/schmancy/input.md +19 -4
  307. package/dist/skills/schmancy/range.md +15 -1
  308. package/dist/skills/schmancy/select.md +13 -1
  309. package/dist/skills/schmancy/switch.md +21 -2
  310. package/dist/skills/schmancy/textarea.md +13 -0
  311. package/dist/skills/select.md +13 -1
  312. package/dist/skills/switch.md +21 -2
  313. package/dist/skills/textarea.md +13 -0
  314. package/dist/slider.cjs +3 -3
  315. package/dist/slider.cjs.map +1 -1
  316. package/dist/slider.js +2 -2
  317. package/dist/slider.js.map +1 -1
  318. package/dist/{sound.service-kKfsN0m-.js → sound.service-BIN2W7Rv.js} +1 -1
  319. package/dist/{sound.service-kKfsN0m-.js.map → sound.service-BIN2W7Rv.js.map} +1 -1
  320. package/dist/{sound.service-BGs6m0Cm.cjs → sound.service-DyY78ukR.cjs} +1 -1
  321. package/dist/{sound.service-BGs6m0Cm.cjs.map → sound.service-DyY78ukR.cjs.map} +1 -1
  322. package/dist/{splash-screen-DtkjCJYo.js → splash-screen-BcjjJSlK.js} +2 -2
  323. package/dist/{splash-screen-DtkjCJYo.js.map → splash-screen-BcjjJSlK.js.map} +1 -1
  324. package/dist/{splash-screen-DlQUv-kV.cjs → splash-screen-Kr1sPtME.cjs} +2 -2
  325. package/dist/{splash-screen-DlQUv-kV.cjs.map → splash-screen-Kr1sPtME.cjs.map} +1 -1
  326. package/dist/splash-screen.cjs +1 -1
  327. package/dist/splash-screen.js +1 -1
  328. package/dist/{src-DEUjlTsX.cjs → src-BbMJeLk9.cjs} +11 -11
  329. package/dist/{src-DEUjlTsX.cjs.map → src-BbMJeLk9.cjs.map} +1 -1
  330. package/dist/{src-D6e0adHi.js → src-DCu_mEk4.js} +40 -40
  331. package/dist/{src-D6e0adHi.js.map → src-DCu_mEk4.js.map} +1 -1
  332. package/dist/state-avic94Ft.cjs +1 -0
  333. package/dist/{state-DNdCPITt.cjs.map → state-avic94Ft.cjs.map} +1 -1
  334. package/dist/{state-BusMG6sM.js → state-nm8yzMPp.js} +1 -2
  335. package/dist/{state-BusMG6sM.js.map → state-nm8yzMPp.js.map} +1 -1
  336. package/dist/state.cjs +1 -1
  337. package/dist/state.js +2 -2
  338. package/dist/steps.cjs +3 -3
  339. package/dist/steps.cjs.map +1 -1
  340. package/dist/steps.js +2 -2
  341. package/dist/steps.js.map +1 -1
  342. package/dist/{surface-A82O1kgu.js → surface-BtMMHKol.js} +2 -2
  343. package/dist/{surface-A82O1kgu.js.map → surface-BtMMHKol.js.map} +1 -1
  344. package/dist/surface-CgXeKdGL.cjs +7 -0
  345. package/dist/{surface-BpppoNXN.cjs.map → surface-CgXeKdGL.cjs.map} +1 -1
  346. package/dist/surface.cjs +1 -1
  347. package/dist/surface.js +1 -1
  348. package/dist/switch.cjs +3 -3
  349. package/dist/switch.cjs.map +1 -1
  350. package/dist/switch.js +27 -43
  351. package/dist/switch.js.map +1 -1
  352. package/dist/table.cjs +3 -3
  353. package/dist/table.cjs.map +1 -1
  354. package/dist/table.js +2 -2
  355. package/dist/table.js.map +1 -1
  356. package/dist/{tabs-cVHHd1dY.js → tabs-81ADWQqa.js} +2 -2
  357. package/dist/{tabs-cVHHd1dY.js.map → tabs-81ADWQqa.js.map} +1 -1
  358. package/dist/{tabs-TO3UiBsm.cjs → tabs-DnG3K0bu.cjs} +2 -2
  359. package/dist/{tabs-TO3UiBsm.cjs.map → tabs-DnG3K0bu.cjs.map} +1 -1
  360. package/dist/tabs.cjs +1 -1
  361. package/dist/tabs.js +1 -1
  362. package/dist/teleport.cjs +1 -1
  363. package/dist/teleport.js +1 -1
  364. package/dist/textarea-3mWewuAf.js +186 -0
  365. package/dist/textarea-3mWewuAf.js.map +1 -0
  366. package/dist/textarea-BenjiTXB.cjs +43 -0
  367. package/dist/textarea-BenjiTXB.cjs.map +1 -0
  368. package/dist/textarea.cjs +1 -1
  369. package/dist/textarea.js +1 -1
  370. package/dist/{theme-CT408FqH.js → theme-CFPJW933.js} +9 -9
  371. package/dist/{theme-CT408FqH.js.map → theme-CFPJW933.js.map} +1 -1
  372. package/dist/theme-DNymrucy.cjs +181 -0
  373. package/dist/{theme-CpuF3D3q.cjs.map → theme-DNymrucy.cjs.map} +1 -1
  374. package/dist/{theme-button-pTb5-Wxx.js → theme-button-DC_shZ_7.js} +2 -2
  375. package/dist/{theme-button-pTb5-Wxx.js.map → theme-button-DC_shZ_7.js.map} +1 -1
  376. package/dist/theme-button-ENKa3TPT.cjs +8 -0
  377. package/dist/{theme-button-B6Xf-EiH.cjs.map → theme-button-ENKa3TPT.cjs.map} +1 -1
  378. package/dist/theme-button.cjs +1 -1
  379. package/dist/theme-button.js +1 -1
  380. package/dist/theme.cjs +1 -1
  381. package/dist/{theme.interface-B9TjbSBF.js.map → theme.interface-C2XNgsLB.js.map} +1 -1
  382. package/dist/{theme.interface-BujperTo.cjs.map → theme.interface-D4NeufQA.cjs.map} +1 -1
  383. package/dist/theme.js +4 -4
  384. package/dist/{theme.service-DIUo1mBP.js → theme.service-BOWIT_5k.js} +1 -1
  385. package/dist/{theme.service-DIUo1mBP.js.map → theme.service-BOWIT_5k.js.map} +1 -1
  386. package/dist/{theme.service-Cfk88qHK.cjs → theme.service-DkdH1t60.cjs} +1 -1
  387. package/dist/{theme.service-Cfk88qHK.cjs.map → theme.service-DkdH1t60.cjs.map} +1 -1
  388. package/dist/tooltip.js.map +1 -1
  389. package/dist/tree.cjs +2 -2
  390. package/dist/tree.cjs.map +1 -1
  391. package/dist/tree.js +2 -2
  392. package/dist/tree.js.map +1 -1
  393. package/dist/types.js.map +1 -1
  394. package/dist/typewriter.cjs.map +1 -1
  395. package/dist/typewriter.js.map +1 -1
  396. package/dist/typography.cjs +2 -2
  397. package/dist/typography.cjs.map +1 -1
  398. package/dist/typography.js +2 -2
  399. package/dist/typography.js.map +1 -1
  400. package/dist/{utils-kND2Z9Xg.js → utils-Cj_nRRyx.js} +2 -2
  401. package/dist/{utils-kND2Z9Xg.js.map → utils-Cj_nRRyx.js.map} +1 -1
  402. package/dist/{utils-Dt5PpmaQ.cjs → utils-D2QUu4-g.cjs} +1 -1
  403. package/dist/{utils-Dt5PpmaQ.cjs.map → utils-D2QUu4-g.cjs.map} +1 -1
  404. package/dist/utils.cjs +1 -1
  405. package/dist/utils.js +4 -4
  406. package/dist/visually-hidden.cjs +2 -2
  407. package/dist/visually-hidden.cjs.map +1 -1
  408. package/dist/visually-hidden.js +2 -2
  409. package/dist/visually-hidden.js.map +1 -1
  410. package/dist/{window-CuBcOxbc.js → window-BTecgE_U.js} +7 -7
  411. package/dist/{window-CuBcOxbc.js.map → window-BTecgE_U.js.map} +1 -1
  412. package/dist/{window-CSKvv4Ts.cjs → window-DGydMS0g.cjs} +2 -2
  413. package/dist/{window-CSKvv4Ts.cjs.map → window-DGydMS0g.cjs.map} +1 -1
  414. package/dist/window.cjs +1 -1
  415. package/dist/window.js +1 -1
  416. package/package.json +1 -1
  417. package/skills/schmancy/SKILL.md +3 -0
  418. package/skills/schmancy/autocomplete.md +16 -3
  419. package/skills/schmancy/button.md +19 -0
  420. package/skills/schmancy/checkbox.md +19 -0
  421. package/skills/schmancy/date-range.md +19 -0
  422. package/skills/schmancy/form-ux-rules.md +55 -0
  423. package/skills/schmancy/form.md +121 -25
  424. package/skills/schmancy/input.md +19 -4
  425. package/skills/schmancy/range.md +15 -1
  426. package/skills/schmancy/select.md +13 -1
  427. package/skills/schmancy/switch.md +21 -2
  428. package/skills/schmancy/textarea.md +13 -0
  429. package/src/button/button.test.ts +122 -0
  430. package/src/button/button.ts +36 -0
  431. package/src/{autocomplete → form/fields/autocomplete}/autocomplete.ts +48 -75
  432. package/src/{checkbox → form/fields/checkbox}/checkbox.test.ts +1 -1
  433. package/src/form/fields/checkbox/checkbox.ts +126 -0
  434. package/src/form/fields/date-range/date-range.test.ts +102 -0
  435. package/src/{date-range → form/fields/date-range}/date-range.ts +90 -7
  436. package/src/form/fields/index.ts +9 -0
  437. package/src/form/fields/input/input.test.ts +201 -0
  438. package/src/{input → form/fields/input}/input.ts +153 -238
  439. package/src/{radio-group → form/fields/radio-group}/radio-button.ts +1 -1
  440. package/src/{radio-group → form/fields/radio-group}/radio-group.ts +1 -1
  441. package/src/form/fields/range/range.test.ts +90 -0
  442. package/src/{range → form/fields/range}/range.ts +34 -13
  443. package/src/{select → form/fields/select}/select.ts +77 -108
  444. package/src/{switch → form/fields/switch}/switch.test.ts +1 -1
  445. package/src/{switch → form/fields/switch}/switch.ts +71 -51
  446. package/src/form/fields/textarea/textarea.test.ts +54 -0
  447. package/src/{textarea → form/fields/textarea}/textarea.ts +33 -72
  448. package/src/form/form-state.ts +31 -0
  449. package/src/form/form-summary.test.ts +105 -0
  450. package/src/form/form-summary.ts +171 -0
  451. package/src/form/form.test.ts +218 -35
  452. package/src/form/form.ts +330 -99
  453. package/src/form/index.ts +3 -0
  454. package/src/index.ts +9 -9
  455. package/types/mixins/formField.mixin.d.ts +90 -0
  456. package/types/src/button/button.d.ts +9 -0
  457. package/types/src/button/button.test.d.ts +3 -0
  458. package/types/src/{autocomplete → form/fields/autocomplete}/autocomplete.d.ts +6 -15
  459. package/types/src/form/fields/checkbox/checkbox.d.ts +47 -0
  460. package/types/src/{date-range → form/fields/date-range}/date-range.d.ts +22 -4
  461. package/types/src/form/fields/date-range/date-range.test.d.ts +1 -0
  462. package/types/src/form/fields/index.d.ts +9 -0
  463. package/types/src/{input → form/fields/input}/input.d.ts +20 -45
  464. package/types/src/form/fields/input/input.test.d.ts +1 -0
  465. package/types/src/{radio-group → form/fields/radio-group}/radio-button.d.ts +1 -1
  466. package/types/src/{radio-group → form/fields/radio-group}/radio-group.d.ts +1 -1
  467. package/types/src/form/fields/range/range.d.ts +28 -0
  468. package/types/src/form/fields/range/range.test.d.ts +1 -0
  469. package/types/src/{select → form/fields/select}/select.d.ts +23 -24
  470. package/types/src/form/fields/switch/switch.d.ts +57 -0
  471. package/types/src/{textarea → form/fields/textarea}/textarea.d.ts +6 -39
  472. package/types/src/form/fields/textarea/textarea.test.d.ts +1 -0
  473. package/types/src/form/form-state.d.ts +22 -0
  474. package/types/src/form/form-summary.d.ts +42 -0
  475. package/types/src/form/form-summary.test.d.ts +4 -0
  476. package/types/src/form/form.d.ts +79 -34
  477. package/types/src/form/form.test.d.ts +2 -2
  478. package/types/src/form/index.d.ts +3 -0
  479. package/types/src/index.d.ts +9 -9
  480. package/dist/active-host-CcIa2tmW.cjs +0 -1
  481. package/dist/active-host-CvNYoprt.js +0 -57
  482. package/dist/autocomplete-DWSuwSRS.js.map +0 -1
  483. package/dist/autocomplete-iCJOia-q.cjs +0 -115
  484. package/dist/autocomplete-iCJOia-q.cjs.map +0 -1
  485. package/dist/checkbox-NNReP9s_.cjs.map +0 -1
  486. package/dist/date-range-CaOxwZDq.cjs +0 -131
  487. package/dist/date-range-CaOxwZDq.cjs.map +0 -1
  488. package/dist/date-range-CgNujP8r.js.map +0 -1
  489. package/dist/date-range-inline-D4IjOOO0.cjs +0 -43
  490. package/dist/decorate-23nYs4Le.js +0 -7
  491. package/dist/decorate-DpFmy0nm.cjs +0 -1
  492. package/dist/float-CKmd-0-t.cjs +0 -1
  493. package/dist/form-CFvwnfuJ.js +0 -68
  494. package/dist/form-CFvwnfuJ.js.map +0 -1
  495. package/dist/form-Ceijw1aA.cjs +0 -1
  496. package/dist/form-Ceijw1aA.cjs.map +0 -1
  497. package/dist/input-D95GjINh.js.map +0 -1
  498. package/dist/input-D9s4jDAb.cjs +0 -51
  499. package/dist/input-D9s4jDAb.cjs.map +0 -1
  500. package/dist/mixins-BV0w2yIE.js +0 -627
  501. package/dist/mixins-BV0w2yIE.js.map +0 -1
  502. package/dist/mixins-DvAYa-F7.cjs +0 -298
  503. package/dist/mixins-DvAYa-F7.cjs.map +0 -1
  504. package/dist/notification-BC9nG8Sr.cjs +0 -23
  505. package/dist/radio-group-ByMD6Lsj.cjs +0 -40
  506. package/dist/radio-group-ByMD6Lsj.cjs.map +0 -1
  507. package/dist/radio-group-CW8airhZ.js.map +0 -1
  508. package/dist/select-BdBThja4.cjs +0 -56
  509. package/dist/select-BdBThja4.cjs.map +0 -1
  510. package/dist/select-Dbn-CImU.js.map +0 -1
  511. package/dist/state-DNdCPITt.cjs +0 -1
  512. package/dist/surface-BpppoNXN.cjs +0 -7
  513. package/dist/textarea-B9dy-yec.js +0 -211
  514. package/dist/textarea-B9dy-yec.js.map +0 -1
  515. package/dist/textarea-DFY0Flgv.cjs +0 -39
  516. package/dist/textarea-DFY0Flgv.cjs.map +0 -1
  517. package/dist/theme-CpuF3D3q.cjs +0 -181
  518. package/dist/theme-button-B6Xf-EiH.cjs +0 -8
  519. package/src/checkbox/checkbox.ts +0 -162
  520. package/types/src/checkbox/checkbox.d.ts +0 -71
  521. package/types/src/range/range.d.ts +0 -25
  522. package/types/src/switch/switch.d.ts +0 -53
  523. /package/dist/{animation-CO_Csq84.cjs → animation-CCOIW4wJ.cjs} +0 -0
  524. /package/dist/{animation-BK-8BwY8.js → animation-DCznELuT.js} +0 -0
  525. /package/dist/{context-DJTJnSK4.js → context-6oXCZmZN.js} +0 -0
  526. /package/dist/{context-BpCETidA.cjs → context-CRZeiCqq.cjs} +0 -0
  527. /package/dist/{hashContent-Bobsobip.cjs → hashContent-Ck6laKlk.cjs} +0 -0
  528. /package/dist/{hashContent-BU6jl5ih.js → hashContent-dJrI-9sc.js} +0 -0
  529. /package/dist/{lazy-Dq9mRRjT.cjs → lazy-CayEFyC3.cjs} +0 -0
  530. /package/dist/{lazy-B0ia54tT.js → lazy-D-bO2r4m.js} +0 -0
  531. /package/dist/{overlay-stack-DCDS17uj.js → overlay-stack-BR4iYivO.js} +0 -0
  532. /package/dist/{overlay-stack-DPIe_aYv.cjs → overlay-stack-Dk0xETTy.cjs} +0 -0
  533. /package/dist/{reduced-motion-D-L12p7G.js → reduced-motion-D7LqTUMn.js} +0 -0
  534. /package/dist/{reduced-motion-Ds-HjMzn.cjs → reduced-motion-Dzfp_w5x.cjs} +0 -0
  535. /package/dist/{rxjs-utils-DCUHg_Ml.cjs → rxjs-utils-BKB2UM_j.cjs} +0 -0
  536. /package/dist/{rxjs-utils-CVeJQ9KG.js → rxjs-utils-Dv9T9IpA.js} +0 -0
  537. /package/dist/{search-BLCRsxIC.cjs → search-DPKoC-dT.cjs} +0 -0
  538. /package/dist/{search-BTz7-Rev.js → search-MvIBA93K.js} +0 -0
  539. /package/dist/{theme.interface-B9TjbSBF.js → theme.interface-C2XNgsLB.js} +0 -0
  540. /package/dist/{theme.interface-BujperTo.cjs → theme.interface-D4NeufQA.cjs} +0 -0
  541. /package/src/{autocomplete → form/fields/autocomplete}/autocomplete.scss +0 -0
  542. /package/src/{autocomplete → form/fields/autocomplete}/index.ts +0 -0
  543. /package/src/{checkbox → form/fields/checkbox}/index.ts +0 -0
  544. /package/src/{date-range → form/fields/date-range}/date-range-dialog.ts +0 -0
  545. /package/src/{date-range → form/fields/date-range}/date-range-helpers.ts +0 -0
  546. /package/src/{date-range → form/fields/date-range}/date-range-presets.ts +0 -0
  547. /package/src/{date-range → form/fields/date-range}/date-utils.ts +0 -0
  548. /package/src/{date-range → form/fields/date-range}/index.ts +0 -0
  549. /package/src/{input → form/fields/input}/index.ts +0 -0
  550. /package/src/{input → form/fields/input}/input.scss +0 -0
  551. /package/src/{radio-group → form/fields/radio-group}/index.ts +0 -0
  552. /package/src/{radio-group → form/fields/radio-group}/radio-group.scss +0 -0
  553. /package/src/{range → form/fields/range}/index.ts +0 -0
  554. /package/src/{select → form/fields/select}/index.ts +0 -0
  555. /package/src/{switch → form/fields/switch}/index.ts +0 -0
  556. /package/src/{textarea → form/fields/textarea}/index.ts +0 -0
  557. /package/src/{textarea → form/fields/textarea}/textarea.scss +0 -0
  558. /package/types/src/{autocomplete → form/fields/autocomplete}/index.d.ts +0 -0
  559. /package/types/src/{checkbox → form/fields/checkbox}/checkbox.test.d.ts +0 -0
  560. /package/types/src/{checkbox → form/fields/checkbox}/index.d.ts +0 -0
  561. /package/types/src/{date-range → form/fields/date-range}/date-range-dialog.d.ts +0 -0
  562. /package/types/src/{date-range → form/fields/date-range}/date-range-helpers.d.ts +0 -0
  563. /package/types/src/{date-range → form/fields/date-range}/date-range-presets.d.ts +0 -0
  564. /package/types/src/{date-range → form/fields/date-range}/date-utils.d.ts +0 -0
  565. /package/types/src/{date-range → form/fields/date-range}/index.d.ts +0 -0
  566. /package/types/src/{input → form/fields/input}/index.d.ts +0 -0
  567. /package/types/src/{radio-group → form/fields/radio-group}/index.d.ts +0 -0
  568. /package/types/src/{range → form/fields/range}/index.d.ts +0 -0
  569. /package/types/src/{select → form/fields/select}/index.d.ts +0 -0
  570. /package/types/src/{switch → form/fields/switch}/index.d.ts +0 -0
  571. /package/types/src/{switch → form/fields/switch}/switch.test.d.ts +0 -0
  572. /package/types/src/{textarea → form/fields/textarea}/index.d.ts +0 -0
@@ -26,10 +26,19 @@ export declare class SchmancyButton extends SchmancyElement {
26
26
  };
27
27
  static formAssociated: boolean;
28
28
  private internals;
29
+ /**
30
+ * When this button is `type="submit"` and lives inside a <schmancy-form>,
31
+ * the observer mirrors the form's `aria-busy` attribute onto this button
32
+ * while a submit is in flight. Stays focusable; disabled buttons drop from
33
+ * the tab order and are unreachable to AT (WCAG 2.2 AA).
34
+ */
35
+ private _formBusyObserver?;
29
36
  constructor();
30
37
  /** Associated form, when placed inside a <form>. */
31
38
  get form(): HTMLFormElement | null;
32
39
  formDisabledCallback(disabled: boolean): void;
40
+ connectedCallback(): void;
41
+ disconnectedCallback(): void;
33
42
  private nativeElement;
34
43
  private _ariaLabel;
35
44
  /**
@@ -0,0 +1,3 @@
1
+ import './button';
2
+ import '../form/form';
3
+ import '../form/fields/input/input';
@@ -1,10 +1,10 @@
1
- import { SchmancyElement } from '@mixins/index';
2
1
  import { InputSize, SchmancyInput } from '@schmancy/input';
3
- import '../chips/input-chip';
2
+ import '../../../chips/input-chip';
4
3
  export type SchmancyAutocompleteChangeEvent = CustomEvent<{
5
4
  value: string | string[];
6
5
  values?: string[];
7
6
  }>;
7
+ declare const SchmancyAutocomplete_base: import("@mixins/index").Constructor<import("@mixins/index").IFormFieldMixin> & import("@mixins/index").Constructor<import("@mixins/index").ITailwindElementMixin> & import("@mixins/index").Constructor<import("lit").LitElement> & import("@mixins/index").Constructor<import("@mixins/index").IBaseMixin>;
8
8
  /**
9
9
  * Autocomplete input component with filtering and multi-select support.
10
10
  *
@@ -16,20 +16,12 @@ export type SchmancyAutocompleteChangeEvent = CustomEvent<{
16
16
  * @prop {string} value - Selected value (single select mode)
17
17
  * @prop {string[]} values - Selected values (multi-select mode)
18
18
  */
19
- export default class SchmancyAutocomplete extends SchmancyElement {
20
- static styles: import("lit").CSSResult[];
21
- static formAssociated: boolean;
22
- internals: ElementInternals | undefined;
23
- constructor();
24
- get form(): HTMLFormElement | null;
25
- formResetCallback(): void;
26
- formDisabledCallback(disabled: boolean): void;
19
+ export default class SchmancyAutocomplete extends SchmancyAutocomplete_base {
20
+ /** Override mixin's resetForm with autocomplete-specific subject reset. */
21
+ resetForm(): void;
27
22
  _valueSet: boolean;
28
23
  _valuesSet: boolean;
29
- required: boolean;
30
24
  placeholder: string;
31
- label: string;
32
- name: string;
33
25
  maxHeight: string;
34
26
  multi: boolean;
35
27
  description: string;
@@ -37,8 +29,6 @@ export default class SchmancyAutocomplete extends SchmancyElement {
37
29
  autocomplete: string;
38
30
  debounceMs: number;
39
31
  similarityThreshold: number;
40
- error: boolean;
41
- validationMessage: string;
42
32
  private readonly _a11yId;
43
33
  get values(): string[];
44
34
  set values(vals: string[]);
@@ -82,3 +72,4 @@ declare global {
82
72
  'schmancy-autocomplete': SchmancyAutocomplete;
83
73
  }
84
74
  }
75
+ export {};
@@ -0,0 +1,47 @@
1
+ import '@material/web/checkbox/checkbox.js';
2
+ import { LitElement, type PropertyValues } from 'lit';
3
+ export type schmancyCheckBoxChangeEvent = CustomEvent<{
4
+ value: boolean;
5
+ }>;
6
+ declare const SchmancyCheckboxElement_base: import("@mixins/index").Constructor<import("@mixins/index").IFormFieldMixin> & import("@mixins/index").Constructor<import("@mixins/index").ITailwindElementMixin> & import("@mixins/index").Constructor<LitElement> & import("@mixins/index").Constructor<import("@mixins/index").IBaseMixin>;
7
+ /**
8
+ * @element schmancy-checkbox
9
+ * @slot - The label for the checkbox.
10
+ * @fires change - Event fired when the checkbox value changes.
11
+ */
12
+ declare class SchmancyCheckboxElement extends SchmancyCheckboxElement_base {
13
+ protected static shadowRootOptions: {
14
+ delegatesFocus: boolean;
15
+ clonable?: boolean;
16
+ customElementRegistry?: CustomElementRegistry;
17
+ mode: ShadowRootMode;
18
+ serializable?: boolean;
19
+ slotAssignment?: SlotAssignmentMode;
20
+ };
21
+ /**
22
+ * Boolean checked state. Test contract: `cb.value = true` flips the state.
23
+ * The FormData *string* is read from `true-value` attribute (or `'on'`
24
+ * default) — kept separate from `value` to keep the boolean-state ergonomic.
25
+ */
26
+ value: boolean;
27
+ /** Alias for `value` for read-side ergonomics. */
28
+ get checked(): boolean;
29
+ set checked(val: boolean);
30
+ /**
31
+ * M3-aligned sizes: 24dp (xxs) → 32dp (xs) → 40dp (sm) → 48dp (md) → 56dp (lg).
32
+ */
33
+ size: 'xxs' | 'xs' | 'sm' | 'md' | 'lg';
34
+ private get _trueValue();
35
+ willUpdate(changed: PropertyValues): void;
36
+ /** Checkbox validity is `checked === true` when required. */
37
+ checkValidity(): boolean;
38
+ /** Emit only when checked. */
39
+ toFormEntries(): Array<[string, FormDataEntryValue]>;
40
+ render(): import("lit-html").TemplateResult<1>;
41
+ }
42
+ export { SchmancyCheckboxElement as SchmancyCheckbox };
43
+ declare global {
44
+ interface HTMLElementTagNameMap {
45
+ 'schmancy-checkbox': SchmancyCheckboxElement;
46
+ }
47
+ }
@@ -1,17 +1,17 @@
1
- import { SchmancyElement } from '@mixins/index';
2
1
  import { PropertyValues } from 'lit';
3
2
  import './date-range-dialog';
4
3
  export type SchmancyDateRangeChangeEvent = CustomEvent<{
5
4
  dateFrom: string;
6
5
  dateTo: string;
7
6
  }>;
7
+ declare const SchmancyDateRange_base: import("@mixins/index").Constructor<import("@mixins/index").IFormFieldMixin> & import("@mixins/index").Constructor<import("@mixins/index").ITailwindElementMixin> & import("@mixins/index").Constructor<import("lit").LitElement> & import("@mixins/index").Constructor<import("@mixins/index").IBaseMixin>;
8
8
  /**
9
9
  * A date range selector that supports presets and manual date input.
10
10
  *
11
11
  * @element schmancy-date-range
12
12
  * @fires change - Fired when the date range changes with dateFrom and dateTo values
13
13
  */
14
- export declare class SchmancyDateRange extends SchmancyElement {
14
+ export declare class SchmancyDateRange extends SchmancyDateRange_base {
15
15
  type: 'date' | 'datetime-local';
16
16
  dateFrom: {
17
17
  label: string;
@@ -29,8 +29,6 @@ export declare class SchmancyDateRange extends SchmancyElement {
29
29
  dateTo: string;
30
30
  }>;
31
31
  format?: string;
32
- disabled: boolean;
33
- required: boolean;
34
32
  placeholder: string;
35
33
  clearable: boolean;
36
34
  step?: 'day' | 'week' | 'month' | 'year' | number;
@@ -47,6 +45,25 @@ export declare class SchmancyDateRange extends SchmancyElement {
47
45
  connectedCallback(): void;
48
46
  private setupEventHandlers;
49
47
  updated(changedProps: PropertyValues): void;
48
+ willUpdate(changed: PropertyValues): void;
49
+ /**
50
+ * Date-range validity is `both dates non-empty` when required.
51
+ * (Order/range constraints are out of scope here — they belong to a
52
+ * domain-specific schema layer.)
53
+ */
54
+ checkValidity(): boolean;
55
+ /**
56
+ * Override — emit `${name}From` and `${name}To` flat-suffix entries (the
57
+ * plan's chosen multi-entry encoding; native to JS consumers without
58
+ * server-side bracket parsing).
59
+ */
60
+ toFormEntries(): Array<[string, FormDataEntryValue]>;
61
+ /** `dirty` tracks the underlying date strings, not the wide-union value. */
62
+ private _dateFromDefault;
63
+ private _dateToDefault;
64
+ firstUpdated(changed: PropertyValues): void;
65
+ get dirty(): boolean;
66
+ resetForm(): void;
50
67
  private initPresetRanges;
51
68
  private getDateFormat;
52
69
  /**
@@ -85,3 +102,4 @@ export declare class SchmancyDateRange extends SchmancyElement {
85
102
  private announceToScreenReader;
86
103
  render(): import("lit-html").TemplateResult<1>;
87
104
  }
105
+ export {};
@@ -0,0 +1 @@
1
+ import './date-range';
@@ -0,0 +1,9 @@
1
+ export * from './autocomplete';
2
+ export * from './checkbox';
3
+ export * from './date-range';
4
+ export * from './input';
5
+ export * from './radio-group';
6
+ export * from './range';
7
+ export * from './select';
8
+ export * from './switch';
9
+ export * from './textarea';
@@ -1,4 +1,4 @@
1
- import { LitElement, PropertyValueMap } from 'lit';
1
+ import { LitElement } from 'lit';
2
2
  declare global {
3
3
  interface HTMLElementTagNameMap {
4
4
  'schmancy-input': SchmancyInput;
@@ -88,14 +88,6 @@ export default class SchmancyInput extends SchmancyInput_base {
88
88
  * - 'lg': Large size (56px)
89
89
  */
90
90
  size: InputSize;
91
- /**
92
- * Controls when validation should show.
93
- * - 'always' - Always show validation
94
- * - 'touched' - Only show after field has been focused and then blurred
95
- * - 'dirty' - Only show after value has changed
96
- * - 'submitted' - Only show after form submission
97
- */
98
- validateOn: 'always' | 'touched' | 'dirty' | 'submitted';
99
91
  /**
100
92
  * For datalist support
101
93
  */
@@ -106,16 +98,6 @@ export default class SchmancyInput extends SchmancyInput_base {
106
98
  * For integration with browser's autofill support
107
99
  */
108
100
  private isAutofilled;
109
- /**
110
- * Track user interaction state for validation
111
- */
112
- private touched;
113
- private dirty;
114
- private submitted;
115
- /**
116
- * Store the default value for reset behavior
117
- */
118
- private defaultValue;
119
101
  protected static shadowRootOptions: {
120
102
  delegatesFocus: boolean;
121
103
  clonable?: boolean;
@@ -124,51 +106,44 @@ export default class SchmancyInput extends SchmancyInput_base {
124
106
  serializable?: boolean;
125
107
  slotAssignment?: SlotAssignmentMode;
126
108
  };
127
- private formResetObserver?;
128
109
  /**
129
110
  * If user did not provide an ID, auto-generate one so <label for="...">
130
111
  * and various aria-* attributes can reference it.
131
112
  */
132
- protected willUpdate(changedProps: PropertyValueMap<any> | Map<PropertyKey, unknown>): void;
133
- protected updated(changedProps: Map<string, unknown>): void;
134
- /**
135
- * Connect to the closest form element and set up form integration
136
- */
113
+ protected willUpdate(changedProps: Map<PropertyKey, unknown>): void;
137
114
  connectedCallback(): void;
138
- /**
139
- * Set up form integration with ElementInternals
140
- */
141
- private setupFormIntegration;
142
115
  /**
143
116
  * Set up external label association for native HTML label support
144
117
  */
145
118
  private setupExternalLabelAssociation;
146
- disconnectedCallback(): void;
147
119
  /**
148
- * Reset the input to its default state
120
+ * Check validity. Folds in the inner native input's structured
121
+ * `ValidityState` flags (`typeMismatch`, `patternMismatch`, `tooShort`,
122
+ * `tooLong`, `rangeUnderflow`, `rangeOverflow`, `stepMismatch`, `badInput`)
123
+ * via `internals.setValidity` so consumers can target specific flags via
124
+ * `field.validity.<flag>` and `:state(value-missing|type-mismatch|…)`.
125
+ *
126
+ * The visual `error` flag is still gated by the mixin's `_shouldShowError()`.
149
127
  */
150
- private resetToDefault;
151
128
  /**
152
- * Determines if validation errors should be shown based on current state
153
- * and validation strategy
129
+ * Re-run checkValidity AFTER render so the native inner input's `.value`
130
+ * binding has propagated. The mixin's willUpdate fires checkValidity too
131
+ * early — at that point native.validity still reflects the previous value.
154
132
  */
155
- private shouldShowValidation;
133
+ protected updated(changedProps: Map<PropertyKey, unknown>): void;
156
134
  /**
157
- * Validate input based on required, pattern, etc.
158
- * This mimics native validation behavior
159
- */
160
- private validateInput;
161
- /**
162
- * Check validity without showing validation UI
135
+ * Pick the first matching `errorMessages` override for the failing flags.
136
+ * Order matches the natural priority of validity flags (valueMissing
137
+ * before more specific ones — empty trumps malformed).
163
138
  */
139
+ private _firstMatchingErrorMessage;
164
140
  checkValidity(): boolean;
165
141
  /**
166
- * Show validation UI and check validity
142
+ * Show validation UI and check validity.
143
+ * Marks the field as submitted so the mixin's gate flips to "always show."
167
144
  */
168
145
  reportValidity(): boolean;
169
- /**
170
- * Set a custom validation error message
171
- */
146
+ /** Set a custom validation error on both the inner input and the mixin. */
172
147
  setCustomValidity(message: string): void;
173
148
  firstUpdated(): void;
174
149
  /**
@@ -0,0 +1 @@
1
+ import './input';
@@ -1,5 +1,5 @@
1
1
  import { SchmancyElement } from '@mixins/index';
2
- declare const RadioButton_base: import("@mixins/index").Constructor<import("@mixins/index").IFormFieldMixin> & typeof SchmancyElement;
2
+ declare const RadioButton_base: import("@mixins/index").Constructor<import("@mixins/formField.mixin").IFormFieldMixin> & typeof SchmancyElement;
3
3
  /**
4
4
  * Radio button component for use within radio groups.
5
5
  *
@@ -6,7 +6,7 @@ export type SchmancyRadioGroupOption = {
6
6
  export type SchmancyRadioGroupChangeEvent = CustomEvent<{
7
7
  value: string;
8
8
  }>;
9
- declare const RadioGroup_base: import("@mixins/index").Constructor<import("@mixins/index").IFormFieldMixin> & typeof SchmancyElement;
9
+ declare const RadioGroup_base: import("@mixins/index").Constructor<import("@mixins/formField.mixin").IFormFieldMixin> & typeof SchmancyElement;
10
10
  export declare class RadioGroup extends RadioGroup_base {
11
11
  static styles: import("lit").CSSResult[];
12
12
  label: string;
@@ -0,0 +1,28 @@
1
+ import { type PropertyValues } from 'lit';
2
+ export type SchmancyRangeChangeEvent = CustomEvent<{
3
+ value: number;
4
+ }>;
5
+ declare const SchmancyRange_base: import("@mixins/index").Constructor<import("@mixins/index").IFormFieldMixin> & import("@mixins/index").Constructor<import("@mixins/index").ITailwindElementMixin> & import("@mixins/index").Constructor<import("lit").LitElement> & import("@mixins/index").Constructor<import("@mixins/index").IBaseMixin>;
6
+ /**
7
+ * @element schmancy-range
8
+ * Range input (numeric slider).
9
+ * @fires change - Fires on value change with `{ value: number }`.
10
+ */
11
+ export declare class SchmancyRange extends SchmancyRange_base {
12
+ min: number;
13
+ max: number;
14
+ step: number;
15
+ /** Numeric value — narrowed override of the mixin's wide value union. */
16
+ value: number;
17
+ private get progress();
18
+ willUpdate(changed: PropertyValues): void;
19
+ /** FormData contributes the value as a string (native range input convention). */
20
+ toFormEntries(): Array<[string, FormDataEntryValue]>;
21
+ render(): import("lit-html").TemplateResult<1>;
22
+ }
23
+ declare global {
24
+ interface HTMLElementTagNameMap {
25
+ 'schmancy-range': SchmancyRange;
26
+ }
27
+ }
28
+ export {};
@@ -0,0 +1 @@
1
+ import './range';
@@ -1,8 +1,8 @@
1
- import { SchmancyElement } from '@mixins/index';
2
1
  import { PropertyValues, TemplateResult } from 'lit';
3
2
  export type SchmancySelectChangeEvent = CustomEvent<{
4
3
  value: string | string[];
5
4
  }>;
5
+ declare const SchmancySelect_base: import("@mixins/index").Constructor<import("@mixins/index").IFormFieldMixin> & import("@mixins/index").Constructor<import("@mixins/index").ITailwindElementMixin> & import("@mixins/index").Constructor<import("lit").LitElement> & import("@mixins/index").Constructor<import("@mixins/index").IBaseMixin>;
6
6
  /**
7
7
  * Select dropdown component with single and multi-select support.
8
8
  *
@@ -14,28 +14,19 @@ export type SchmancySelectChangeEvent = CustomEvent<{
14
14
  * @prop {string} value - Selected value (single select mode)
15
15
  * @prop {string[]} values - Selected values (multi-select mode)
16
16
  */
17
- export declare class SchmancySelect extends SchmancyElement {
17
+ export declare class SchmancySelect extends SchmancySelect_base {
18
18
  static styles: import("lit").CSSResult[];
19
- static formAssociated: boolean;
20
- private internals?;
21
- name: string | undefined;
22
- required: boolean;
23
- disabled: boolean;
24
19
  placeholder: string;
25
20
  get value(): string | string[];
26
21
  set value(val: string | string[]);
27
22
  get values(): string[];
28
23
  set values(vals: string[]);
29
24
  multi: boolean;
30
- label: string;
31
- hint: string;
32
- validateOn: 'always' | 'touched' | 'dirty' | 'submitted';
33
25
  size: 'xxs' | 'xs' | 'sm' | 'md' | 'lg';
34
26
  private isOpen;
35
27
  private valueLabel;
36
28
  private isValid;
37
- validationMessage: string;
38
- private defaultValue;
29
+ private selectDefaultValue;
39
30
  private ul;
40
31
  private inputRef;
41
32
  private options;
@@ -44,24 +35,18 @@ export declare class SchmancySelect extends SchmancyElement {
44
35
  private _selectedValue$;
45
36
  private _selectedValues$;
46
37
  private _optionSelect$;
38
+ /**
39
+ * Tracks whether the user has actively interacted (clicked/typed/keyed
40
+ * inside the dropdown). Distinct from the mixin's `touched` (which fires on
41
+ * blur). Used to gate dropdown-positioning side-effects on user-driven
42
+ * actions versus programmatic state changes.
43
+ */
47
44
  _userInteracted: boolean;
48
- private _touched;
49
- private _dirty;
50
- private _submitted;
51
45
  private _focusedOptionId;
52
- private formSubmitHandler;
53
- private formResetHandler;
54
- constructor();
55
- get form(): HTMLFormElement;
56
46
  connectedCallback(): void;
57
47
  disconnectedCallback(): void;
58
48
  firstUpdated(): void;
59
49
  updated(changedProps: PropertyValues): void;
60
- /**
61
- * Determines if validation errors should be shown based on current state
62
- * and validation strategy
63
- */
64
- private shouldShowValidation;
65
50
  private syncSelection;
66
51
  private setupOptionsAccessibility;
67
52
  private positionDropdown;
@@ -74,7 +59,20 @@ export declare class SchmancySelect extends SchmancyElement {
74
59
  private _fireChangeEvent;
75
60
  checkValidity(): boolean;
76
61
  reportValidity(): boolean;
62
+ /**
63
+ * Multi-value-aware `toFormEntries`. Single-select emits one `[name,value]`;
64
+ * multi-select emits N entries with the same name (canonical FormData shape
65
+ * for repeated fields).
66
+ */
67
+ toFormEntries(): Array<[string, FormDataEntryValue]>;
77
68
  setCustomValidity(message: string): void;
69
+ /**
70
+ * Reset to the snapshot captured at connect time. Mixin's `resetForm`
71
+ * handles touched/submitted/error/validationMessage; the override layers on
72
+ * select-specific cleanup (value subjects, label, validity).
73
+ */
74
+ resetForm(): void;
75
+ /** Back-compat alias for callers that used the previous public API. */
78
76
  reset(): void;
79
77
  render(): TemplateResult;
80
78
  }
@@ -83,3 +81,4 @@ declare global {
83
81
  'schmancy-select': SchmancySelect;
84
82
  }
85
83
  }
84
+ export {};
@@ -0,0 +1,57 @@
1
+ import { LitElement, type PropertyValues } from 'lit';
2
+ export type SchmancySwitchChangeEvent = CustomEvent<{
3
+ value: boolean;
4
+ }>;
5
+ declare const SchmancySwitch_base: import("@mixins/index").Constructor<import("@mixins/index").IFormFieldMixin> & import("@mixins/index").Constructor<import("@mixins/index").ITailwindElementMixin> & import("@mixins/index").Constructor<LitElement> & import("@mixins/index").Constructor<import("@mixins/index").IBaseMixin>;
6
+ /**
7
+ * Binary on/off control. Form-associated, keyboard-accessible, semantically a
8
+ * switch (ARIA role="switch"). Distinct from `schmancy-checkbox`: a switch
9
+ * represents an immediate state change, a checkbox represents a selection in
10
+ * a form to be submitted.
11
+ *
12
+ * @element schmancy-switch
13
+ * @fires change - `CustomEvent<{ value: boolean }>` when the state changes.
14
+ * @csspart track - The background track.
15
+ * @csspart thumb - The moving thumb.
16
+ */
17
+ export declare class SchmancySwitch extends SchmancySwitch_base {
18
+ protected static shadowRootOptions: {
19
+ delegatesFocus: boolean;
20
+ clonable?: boolean;
21
+ customElementRegistry?: CustomElementRegistry;
22
+ mode: ShadowRootMode;
23
+ serializable?: boolean;
24
+ slotAssignment?: SlotAssignmentMode;
25
+ };
26
+ /**
27
+ * The string written to FormData when the switch is on. Native
28
+ * `<input type=checkbox value="...">` semantics. Defaults to `'on'` to
29
+ * match HTML checkbox conventions.
30
+ */
31
+ value: string;
32
+ /** Boolean on/off state. Native `<input type=checkbox>.checked` semantics. */
33
+ checked: boolean;
34
+ /** Snapshot of `checked` at first render — drives the `dirty` override. */
35
+ private _checkedDefault;
36
+ firstUpdated(changed: PropertyValues): void;
37
+ /**
38
+ * Override the mixin's value-vs-default `dirty` getter — for switch the
39
+ * meaningful state is `checked`, not the FormData string.
40
+ */
41
+ get dirty(): boolean;
42
+ willUpdate(changed: PropertyValues): void;
43
+ /** Override — switch validity is `checked === true` when required. */
44
+ checkValidity(): boolean;
45
+ /** Override — emit only when the switch is on. */
46
+ toFormEntries(): Array<[string, FormDataEntryValue]>;
47
+ resetForm(): void;
48
+ private _toggle;
49
+ private _onKeydown;
50
+ render(): import("lit-html").TemplateResult<1>;
51
+ }
52
+ declare global {
53
+ interface HTMLElementTagNameMap {
54
+ 'schmancy-switch': SchmancySwitch;
55
+ }
56
+ }
57
+ export {};
@@ -1,5 +1,5 @@
1
- import { type PropertyValues } from 'lit';
2
- import { SchmancyElement } from '@mixins/index';
1
+ import { LitElement, type PropertyValues } from 'lit';
2
+ declare const SchmancyTextarea_base: import("@mixins/index").Constructor<import("@mixins/index").IFormFieldMixin> & import("@mixins/index").Constructor<import("@mixins/index").ITailwindElementMixin> & import("@mixins/index").Constructor<LitElement> & import("@mixins/index").Constructor<import("@mixins/index").IBaseMixin>;
3
3
  /**
4
4
  * Textarea component with auto-resize and form integration.
5
5
  *
@@ -12,8 +12,7 @@ import { SchmancyElement } from '@mixins/index';
12
12
  * @prop {number} rows - Number of visible text rows
13
13
  * @prop {number} maxlength - Maximum character length
14
14
  */
15
- export default class SchmancyTextarea extends SchmancyElement {
16
- static styles: import("lit").CSSResult[];
15
+ export default class SchmancyTextarea extends SchmancyTextarea_base {
17
16
  protected static shadowRootOptions: {
18
17
  delegatesFocus: boolean;
19
18
  clonable?: boolean;
@@ -22,26 +21,8 @@ export default class SchmancyTextarea extends SchmancyElement {
22
21
  serializable?: boolean;
23
22
  slotAssignment?: SlotAssignmentMode;
24
23
  };
25
- static formAssociated: boolean;
26
- internals: ElementInternals | undefined;
27
24
  textareaRef: import("lit-html/directives/ref").Ref<HTMLTextAreaElement>;
28
25
  private readonly _a11yId;
29
- /**
30
- * The label of the control.
31
- * @attr
32
- * @type {string} label
33
- * @default ''
34
- * @public
35
- */
36
- label: string;
37
- /**
38
- * The name of the control.
39
- * @attr name
40
- * @type {string} name
41
- * @default 'name_' + Date.now()
42
- * @public
43
- */
44
- name: string;
45
26
  /**
46
27
  * The placeholder of the control.
47
28
  * @attr placeholder
@@ -51,11 +32,9 @@ export default class SchmancyTextarea extends SchmancyElement {
51
32
  */
52
33
  placeholder: string;
53
34
  /**
54
- * The value of the control.
35
+ * The value of the control. Narrowed from the mixin's wide union to the
36
+ * textarea-specific `string` type.
55
37
  * @attr {string} value - The value of the control.
56
- * @type {string}
57
- * @default ''
58
- * @public
59
38
  */
60
39
  value: string;
61
40
  /**
@@ -125,27 +104,15 @@ export default class SchmancyTextarea extends SchmancyElement {
125
104
  * @public
126
105
  */
127
106
  dirname: string | undefined;
128
- required: boolean;
129
- disabled: boolean;
130
- readonly: boolean;
131
107
  spellcheck: boolean;
132
108
  align: 'left' | 'center' | 'right';
133
109
  /**
134
110
  * The autofocus attribute of the control.
135
- * @attr
136
- * @type {boolean}
137
- * @default false
138
- * @public
139
111
  */
140
112
  autofocus: boolean;
141
113
  tabIndex: number;
142
114
  textareaElement: HTMLTextAreaElement;
143
- hint: string | undefined;
144
- error: boolean;
145
- constructor();
146
- protected willUpdate(changed: PropertyValues): void;
147
- formResetCallback(): void;
148
- formDisabledCallback(disabled: boolean): void;
115
+ willUpdate(changed: PropertyValues): void;
149
116
  firstUpdated(): void;
150
117
  get form(): HTMLFormElement;
151
118
  /** Checks for validity of the control and shows the browser message if it's invalid. */
@@ -0,0 +1 @@
1
+ import './textarea';
@@ -0,0 +1,22 @@
1
+ /**
2
+ * Form-level submit state — consumed by `<schmancy-form>` and any descendant
3
+ * (e.g. `<schmancy-button type="submit">` to drive its loading/aria-busy).
4
+ *
5
+ * `<schmancy-form>` wraps its render output in `<schmancy-context
6
+ * .provides=${[formSubmitState]}>` so each instance gets an isolated copy
7
+ * via the schmancy state library's resolveContextual mechanism. Reads of
8
+ * `formSubmitState.value` and writes via `formSubmitState.set(...)` inside
9
+ * the form's subtree resolve to the per-form copy automatically — no
10
+ * `@lit/context` plumbing in user code.
11
+ */
12
+ export type FormError = {
13
+ message: string;
14
+ code?: string;
15
+ };
16
+ export type FormSubmitState = {
17
+ status: 'idle' | 'submitting' | 'success' | 'error';
18
+ error: FormError | null;
19
+ /** Increments on every submit attempt — RHF parity. */
20
+ submitCount: number;
21
+ };
22
+ export declare const formSubmitState: import("../state").SyncState<`${string}/${string}`, FormSubmitState, "memory"> & import("../state").ObjectAPI<FormSubmitState>;