@mhmo91/schmancy 0.10.35 → 0.10.36

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 (413) hide show
  1. package/custom-elements.json +1155 -1083
  2. package/dist/SchmancyElement-BBzRWB1w.cjs +2 -0
  3. package/dist/SchmancyElement-BBzRWB1w.cjs.map +1 -0
  4. package/dist/SchmancyElement-C3CpdNsi.js +284 -0
  5. package/dist/SchmancyElement-C3CpdNsi.js.map +1 -0
  6. package/dist/agent/schmancy.agent.js +3387 -3228
  7. package/dist/agent/schmancy.agent.js.map +1 -1
  8. package/dist/agent/schmancy.manifest.json +333 -255
  9. package/dist/{area-DviXdbDx.js → area-BA96mwFY.js} +2 -2
  10. package/dist/{area-DviXdbDx.js.map → area-BA96mwFY.js.map} +1 -1
  11. package/dist/{area-CTSTgjlx.cjs → area-DtyQDdOF.cjs} +1 -1
  12. package/dist/{area-CTSTgjlx.cjs.map → area-DtyQDdOF.cjs.map} +1 -1
  13. package/dist/area.cjs +1 -1
  14. package/dist/area.js +1 -1
  15. package/dist/{audio-Q9oB_cQR.cjs → audio-B_jT9Xr7.cjs} +1 -1
  16. package/dist/{audio-Q9oB_cQR.cjs.map → audio-B_jT9Xr7.cjs.map} +1 -1
  17. package/dist/{audio-DFYoaw0M.js → audio-D52h1jAT.js} +1 -1
  18. package/dist/{audio-DFYoaw0M.js.map → audio-D52h1jAT.js.map} +1 -1
  19. package/dist/audio.cjs +1 -1
  20. package/dist/audio.js +2 -2
  21. package/dist/{autocomplete-DmLXJr7C.cjs → autocomplete-Bts5Jwwr.cjs} +1 -1
  22. package/dist/{autocomplete-DmLXJr7C.cjs.map → autocomplete-Bts5Jwwr.cjs.map} +1 -1
  23. package/dist/{autocomplete-BDvuma6D.js → autocomplete-CI4QJXAN.js} +3 -3
  24. package/dist/{autocomplete-BDvuma6D.js.map → autocomplete-CI4QJXAN.js.map} +1 -1
  25. package/dist/autocomplete.cjs +1 -1
  26. package/dist/autocomplete.js +1 -1
  27. package/dist/avatar.cjs +1 -1
  28. package/dist/avatar.js +3 -3
  29. package/dist/badge.cjs +1 -1
  30. package/dist/badge.js +1 -1
  31. package/dist/boat-I4B1UNMc.cjs +34 -0
  32. package/dist/boat-I4B1UNMc.cjs.map +1 -0
  33. package/dist/{boat-lr7MPZ7H.js → boat-_N1x5U_3.js} +67 -83
  34. package/dist/boat-_N1x5U_3.js.map +1 -0
  35. package/dist/boat.cjs +1 -1
  36. package/dist/boat.js +1 -1
  37. package/dist/breadcrumb.cjs +1 -1
  38. package/dist/breadcrumb.js +2 -2
  39. package/dist/{busy-CgzZbGfx.cjs → busy-BIUonyPk.cjs} +1 -1
  40. package/dist/{busy-CgzZbGfx.cjs.map → busy-BIUonyPk.cjs.map} +1 -1
  41. package/dist/{busy-DgQ4ux5N.js → busy-CCB3qKnh.js} +2 -2
  42. package/dist/{busy-DgQ4ux5N.js.map → busy-CCB3qKnh.js.map} +1 -1
  43. package/dist/busy.cjs +1 -1
  44. package/dist/busy.js +1 -1
  45. package/dist/{button-qbN1muQ0.js → button-C89bPnHt.js} +2 -2
  46. package/dist/{button-qbN1muQ0.js.map → button-C89bPnHt.js.map} +1 -1
  47. package/dist/{button-DFvR1iXX.cjs → button-CkwQH-g3.cjs} +1 -1
  48. package/dist/{button-DFvR1iXX.cjs.map → button-CkwQH-g3.cjs.map} +1 -1
  49. package/dist/button.cjs +4 -4
  50. package/dist/button.cjs.map +1 -1
  51. package/dist/button.js +16 -22
  52. package/dist/button.js.map +1 -1
  53. package/dist/{card-D_GlwZ5q.cjs → card-BO93_oxQ.cjs} +1 -1
  54. package/dist/{card-D_GlwZ5q.cjs.map → card-BO93_oxQ.cjs.map} +1 -1
  55. package/dist/{card-DAbr-7Vy.js → card-CFsCgJKZ.js} +2 -2
  56. package/dist/{card-DAbr-7Vy.js.map → card-CFsCgJKZ.js.map} +1 -1
  57. package/dist/card.cjs +1 -1
  58. package/dist/card.js +1 -1
  59. package/dist/{checkbox-BNORaxMF.js → checkbox-Bh7q0djq.js} +2 -2
  60. package/dist/{checkbox-BNORaxMF.js.map → checkbox-Bh7q0djq.js.map} +1 -1
  61. package/dist/{checkbox-BUY_uc_r.cjs → checkbox-CFUBUFtW.cjs} +1 -1
  62. package/dist/{checkbox-BUY_uc_r.cjs.map → checkbox-CFUBUFtW.cjs.map} +1 -1
  63. package/dist/checkbox.cjs +1 -1
  64. package/dist/checkbox.js +1 -1
  65. package/dist/{chips-Dg6Lk6BT.js → chips-6YaoRmeG.js} +145 -122
  66. package/dist/chips-6YaoRmeG.js.map +1 -0
  67. package/dist/{chips-CXZ4dJCK.cjs → chips-BfzpsyV1.cjs} +44 -33
  68. package/dist/chips-BfzpsyV1.cjs.map +1 -0
  69. package/dist/chips.cjs +1 -1
  70. package/dist/chips.js +2 -2
  71. package/dist/connectivity.cjs +1 -1
  72. package/dist/connectivity.js +3 -3
  73. package/dist/content-drawer.cjs +1 -1
  74. package/dist/content-drawer.js +1 -1
  75. package/dist/{date-range-BU6WX7d5.js → date-range-CEo_Kjqw.js} +129 -137
  76. package/dist/date-range-CEo_Kjqw.js.map +1 -0
  77. package/dist/{date-range-C-_be3_E.cjs → date-range-N-A249O9.cjs} +25 -19
  78. package/dist/date-range-N-A249O9.cjs.map +1 -0
  79. package/dist/{date-range-inline-7o7xtVIu.js → date-range-inline-BwialV9j.js} +2 -2
  80. package/dist/{date-range-inline-7o7xtVIu.js.map → date-range-inline-BwialV9j.js.map} +1 -1
  81. package/dist/{date-range-inline-DJtUmHKF.cjs → date-range-inline-DFopysWF.cjs} +1 -1
  82. package/dist/{date-range-inline-DJtUmHKF.cjs.map → date-range-inline-DFopysWF.cjs.map} +1 -1
  83. package/dist/date-range-inline.cjs +1 -1
  84. package/dist/date-range-inline.js +1 -1
  85. package/dist/date-range.cjs +1 -1
  86. package/dist/date-range.js +1 -1
  87. package/dist/delay.cjs +1 -1
  88. package/dist/delay.js +2 -2
  89. package/dist/{details-Bs0MyyvF.cjs → details-BLRPV8sY.cjs} +1 -1
  90. package/dist/{details-Bs0MyyvF.cjs.map → details-BLRPV8sY.cjs.map} +1 -1
  91. package/dist/{details-EfbDPVEo.js → details-GtpfI2hA.js} +2 -2
  92. package/dist/{details-EfbDPVEo.js.map → details-GtpfI2hA.js.map} +1 -1
  93. package/dist/details.cjs +1 -1
  94. package/dist/details.js +1 -1
  95. package/dist/{directives-zi1Mm2er.js → directives-C2dXgpCY.js} +13 -6
  96. package/dist/directives-C2dXgpCY.js.map +1 -0
  97. package/dist/{directives-fLwDj6b0.cjs → directives-CvYGSW_a.cjs} +2 -2
  98. package/dist/directives-CvYGSW_a.cjs.map +1 -0
  99. package/dist/directives.cjs +1 -1
  100. package/dist/directives.js +2 -2
  101. package/dist/{divider-CEPfrIwe.js → divider-D0pGX2VB.js} +2 -2
  102. package/dist/{divider-CEPfrIwe.js.map → divider-D0pGX2VB.js.map} +1 -1
  103. package/dist/{divider-CdIsWZrM.cjs → divider-rNsWCvMi.cjs} +1 -1
  104. package/dist/{divider-CdIsWZrM.cjs.map → divider-rNsWCvMi.cjs.map} +1 -1
  105. package/dist/divider.cjs +1 -1
  106. package/dist/divider.js +1 -1
  107. package/dist/dropdown.cjs +1 -1
  108. package/dist/dropdown.js +2 -2
  109. package/dist/{expand-g1vqqUp1.js → expand-FcKAzJta.js} +3 -3
  110. package/dist/{expand-g1vqqUp1.js.map → expand-FcKAzJta.js.map} +1 -1
  111. package/dist/{expand--at1k3qo.cjs → expand-tffQHGbZ.cjs} +1 -1
  112. package/dist/{expand--at1k3qo.cjs.map → expand-tffQHGbZ.cjs.map} +1 -1
  113. package/dist/expand.cjs +1 -1
  114. package/dist/expand.js +1 -1
  115. package/dist/fab.cjs +77 -0
  116. package/dist/fab.cjs.map +1 -0
  117. package/dist/fab.js +151 -0
  118. package/dist/fab.js.map +1 -0
  119. package/dist/{float-P9HukAm-.cjs → float-CDjgxWyy.cjs} +1 -1
  120. package/dist/{float-P9HukAm-.cjs.map → float-CDjgxWyy.cjs.map} +1 -1
  121. package/dist/{float-DxVzgI9o.js → float-CQ1WEp3M.js} +2 -2
  122. package/dist/{float-DxVzgI9o.js.map → float-CQ1WEp3M.js.map} +1 -1
  123. package/dist/float.cjs +1 -1
  124. package/dist/float.js +1 -1
  125. package/dist/{form-CqLaozHp.js → form-H24puioV.js} +3 -3
  126. package/dist/{form-CqLaozHp.js.map → form-H24puioV.js.map} +1 -1
  127. package/dist/{form-ByYhXe1p.cjs → form-VYhbbir3.cjs} +1 -1
  128. package/dist/{form-ByYhXe1p.cjs.map → form-VYhbbir3.cjs.map} +1 -1
  129. package/dist/form.cjs +6 -6
  130. package/dist/form.cjs.map +1 -1
  131. package/dist/form.js +25 -23
  132. package/dist/form.js.map +1 -1
  133. package/dist/handover/agent-runtime-followups.md +1 -1
  134. package/dist/handover/agent-runtime-v1.md +3 -3
  135. package/dist/{icons-DYtiRU5V.cjs → icons-B_a1HStW.cjs} +1 -1
  136. package/dist/{icons-DYtiRU5V.cjs.map → icons-B_a1HStW.cjs.map} +1 -1
  137. package/dist/{icons-CkphcMp6.js → icons-DBxfN91B.js} +2 -2
  138. package/dist/{icons-CkphcMp6.js.map → icons-DBxfN91B.js.map} +1 -1
  139. package/dist/icons.cjs +1 -1
  140. package/dist/icons.js +1 -1
  141. package/dist/{iframe-CjqJksl8.js → iframe-BDVElN8z.js} +2 -2
  142. package/dist/{iframe-CjqJksl8.js.map → iframe-BDVElN8z.js.map} +1 -1
  143. package/dist/{iframe-C3trkP8q.cjs → iframe-CG-z9qev.cjs} +1 -1
  144. package/dist/{iframe-C3trkP8q.cjs.map → iframe-CG-z9qev.cjs.map} +1 -1
  145. package/dist/iframe.cjs +1 -1
  146. package/dist/iframe.js +1 -1
  147. package/dist/index.cjs +1 -1
  148. package/dist/index.js +57 -56
  149. package/dist/{input-DuavpwNL.cjs → input-B14Nn6xD.cjs} +1 -1
  150. package/dist/{input-DuavpwNL.cjs.map → input-B14Nn6xD.cjs.map} +1 -1
  151. package/dist/{input-CG51zDVh.js → input-Bt_o4sYo.js} +2 -2
  152. package/dist/{input-CG51zDVh.js.map → input-Bt_o4sYo.js.map} +1 -1
  153. package/dist/{input-chip-C6Lq1927.js → input-chip-DEqO0DXc.js} +2 -2
  154. package/dist/input-chip-DEqO0DXc.js.map +1 -0
  155. package/dist/{input-chip-57tgNXKT.cjs → input-chip-ugYu9Fn9.cjs} +1 -1
  156. package/dist/input-chip-ugYu9Fn9.cjs.map +1 -0
  157. package/dist/input.cjs +1 -1
  158. package/dist/input.js +1 -1
  159. package/dist/json.cjs +1 -1
  160. package/dist/json.js +3 -3
  161. package/dist/kbd.cjs +1 -1
  162. package/dist/kbd.js +2 -2
  163. package/dist/{layout-D4IOwx7p.js → layout-BJ_43VrH.js} +1 -1
  164. package/dist/{layout-D4IOwx7p.js.map → layout-BJ_43VrH.js.map} +1 -1
  165. package/dist/{layout-6ipbiWTl.cjs → layout-DF9ZaQ-b.cjs} +1 -1
  166. package/dist/{layout-6ipbiWTl.cjs.map → layout-DF9ZaQ-b.cjs.map} +1 -1
  167. package/dist/layout.cjs +1 -1
  168. package/dist/layout.js +2 -2
  169. package/dist/{lightbox-H8pVWGMX.cjs → lightbox-B47Zoqv-.cjs} +1 -1
  170. package/dist/{lightbox-H8pVWGMX.cjs.map → lightbox-B47Zoqv-.cjs.map} +1 -1
  171. package/dist/{lightbox-CsyO2XSr.js → lightbox-ZmuoBBFT.js} +2 -2
  172. package/dist/{lightbox-CsyO2XSr.js.map → lightbox-ZmuoBBFT.js.map} +1 -1
  173. package/dist/lightbox.cjs +1 -1
  174. package/dist/lightbox.js +1 -1
  175. package/dist/{list-BAwH0pQW.js → list-C47xzld_.js} +2 -2
  176. package/dist/{list-BAwH0pQW.js.map → list-C47xzld_.js.map} +1 -1
  177. package/dist/{list-Bs9m8kw7.cjs → list-CaSWrlG2.cjs} +1 -1
  178. package/dist/{list-Bs9m8kw7.cjs.map → list-CaSWrlG2.cjs.map} +1 -1
  179. package/dist/list.cjs +1 -1
  180. package/dist/list.js +1 -1
  181. package/dist/{menu-tQVARVaC.js → menu-8RObM6Ie.js} +3 -3
  182. package/dist/{menu-tQVARVaC.js.map → menu-8RObM6Ie.js.map} +1 -1
  183. package/dist/{menu-BMcGzj1h.cjs → menu-Jpsy85SX.cjs} +1 -1
  184. package/dist/{menu-BMcGzj1h.cjs.map → menu-Jpsy85SX.cjs.map} +1 -1
  185. package/dist/menu.cjs +1 -1
  186. package/dist/menu.js +1 -1
  187. package/dist/{mixins-CGXSzZc7.cjs → mixins-DPdzC9ZH.cjs} +1 -1
  188. package/dist/{mixins-CGXSzZc7.cjs.map → mixins-DPdzC9ZH.cjs.map} +1 -1
  189. package/dist/{mixins-Bp0wIHg2.js → mixins-DTzfFVyv.js} +1 -1
  190. package/dist/{mixins-Bp0wIHg2.js.map → mixins-DTzfFVyv.js.map} +1 -1
  191. package/dist/mixins.cjs +1 -1
  192. package/dist/mixins.js +2 -2
  193. package/dist/nav-drawer.cjs +1 -1
  194. package/dist/nav-drawer.js +1 -1
  195. package/dist/navigation-bar.cjs +1 -1
  196. package/dist/navigation-bar.js +1 -1
  197. package/dist/navigation-rail.cjs +1 -1
  198. package/dist/navigation-rail.js +2 -2
  199. package/dist/{notification-D1tX2nx5.js → notification-Ccktcj9H.js} +4 -4
  200. package/dist/{notification-D1tX2nx5.js.map → notification-Ccktcj9H.js.map} +1 -1
  201. package/dist/{notification-Bz00zdpV.cjs → notification-DSkB-sn0.cjs} +1 -1
  202. package/dist/{notification-Bz00zdpV.cjs.map → notification-DSkB-sn0.cjs.map} +1 -1
  203. package/dist/notification.cjs +1 -1
  204. package/dist/notification.js +1 -1
  205. package/dist/{option-BnybLEDO.cjs → option-0aNiVB3Q.cjs} +1 -1
  206. package/dist/{option-BnybLEDO.cjs.map → option-0aNiVB3Q.cjs.map} +1 -1
  207. package/dist/{option-BpGV8Apj.js → option-CkMxwBqU.js} +2 -2
  208. package/dist/{option-BpGV8Apj.js.map → option-CkMxwBqU.js.map} +1 -1
  209. package/dist/option.cjs +1 -1
  210. package/dist/option.js +1 -1
  211. package/dist/{overlay-UQR2Dy3u.cjs → overlay-BS-ta-zq.cjs} +5 -5
  212. package/dist/overlay-BS-ta-zq.cjs.map +1 -0
  213. package/dist/{overlay-BpNhd74N.js → overlay-H3Wt_dgQ.js} +108 -108
  214. package/dist/overlay-H3Wt_dgQ.js.map +1 -0
  215. package/dist/overlay.cjs +1 -1
  216. package/dist/{overlay.confirm-body-CVDtVk5X.cjs → overlay.confirm-body-CR9xaqOE.cjs} +1 -1
  217. package/dist/{overlay.confirm-body-CVDtVk5X.cjs.map → overlay.confirm-body-CR9xaqOE.cjs.map} +1 -1
  218. package/dist/{overlay.confirm-body-BHcXu5Wk.js → overlay.confirm-body-Dxn_wNm3.js} +6 -6
  219. package/dist/{overlay.confirm-body-BHcXu5Wk.js.map → overlay.confirm-body-Dxn_wNm3.js.map} +1 -1
  220. package/dist/overlay.js +3 -3
  221. package/dist/{overlay.service-DTE6NwIM.js → overlay.service-C46kOtUi.js} +2 -2
  222. package/dist/{overlay.service-DTE6NwIM.js.map → overlay.service-C46kOtUi.js.map} +1 -1
  223. package/dist/{overlay.service-C8RsQzgM.cjs → overlay.service-DEj3rfRr.cjs} +1 -1
  224. package/dist/{overlay.service-C8RsQzgM.cjs.map → overlay.service-DEj3rfRr.cjs.map} +1 -1
  225. package/dist/{progress-CAKsxp29.js → progress-BK7gSq8j.js} +2 -2
  226. package/dist/{progress-CAKsxp29.js.map → progress-BK7gSq8j.js.map} +1 -1
  227. package/dist/{progress-gbIALDRs.cjs → progress-zs18GR6C.cjs} +1 -1
  228. package/dist/{progress-gbIALDRs.cjs.map → progress-zs18GR6C.cjs.map} +1 -1
  229. package/dist/progress.cjs +1 -1
  230. package/dist/progress.js +1 -1
  231. package/dist/{radio-group-otyvZvUk.js → radio-group-1HCpzRUB.js} +2 -2
  232. package/dist/{radio-group-otyvZvUk.js.map → radio-group-1HCpzRUB.js.map} +1 -1
  233. package/dist/{radio-group-CfJ5DtI4.cjs → radio-group-DbYlyPc-.cjs} +1 -1
  234. package/dist/{radio-group-CfJ5DtI4.cjs.map → radio-group-DbYlyPc-.cjs.map} +1 -1
  235. package/dist/radio-group.cjs +1 -1
  236. package/dist/radio-group.js +1 -1
  237. package/dist/range.cjs +1 -1
  238. package/dist/range.js +2 -2
  239. package/dist/{select-81jniVTs.cjs → select-B-SSmUDe.cjs} +1 -1
  240. package/dist/{select-81jniVTs.cjs.map → select-B-SSmUDe.cjs.map} +1 -1
  241. package/dist/{select-9vXx1fhr.js → select-CEyhNtZ2.js} +3 -3
  242. package/dist/{select-9vXx1fhr.js.map → select-CEyhNtZ2.js.map} +1 -1
  243. package/dist/select.cjs +1 -1
  244. package/dist/select.js +1 -1
  245. package/dist/skeleton.cjs +1 -1
  246. package/dist/skeleton.js +2 -2
  247. package/dist/skills/INDEX.md +1 -1
  248. package/dist/skills/SKILL.md +6 -7
  249. package/dist/skills/boat.md +21 -15
  250. package/dist/skills/fab.md +75 -0
  251. package/dist/skills/schmancy/INDEX.md +1 -1
  252. package/dist/skills/schmancy/SKILL.md +6 -7
  253. package/dist/skills/schmancy/boat.md +21 -15
  254. package/dist/skills/schmancy/fab.md +75 -0
  255. package/dist/skills/schmancy/theme.md +1 -1
  256. package/dist/skills/theme.md +1 -1
  257. package/dist/slider.cjs +1 -1
  258. package/dist/slider.js +2 -2
  259. package/dist/{sound.service-D3ZSq1Kj.js → sound.service-DO4SmUUT.js} +1 -1
  260. package/dist/{sound.service-D3ZSq1Kj.js.map → sound.service-DO4SmUUT.js.map} +1 -1
  261. package/dist/{sound.service-CmIw63aM.cjs → sound.service-G_8GV_6L.cjs} +1 -1
  262. package/dist/{sound.service-CmIw63aM.cjs.map → sound.service-G_8GV_6L.cjs.map} +1 -1
  263. package/dist/{splash-screen-BOjrmGLk.js → splash-screen-B1mM4_xz.js} +2 -2
  264. package/dist/{splash-screen-BOjrmGLk.js.map → splash-screen-B1mM4_xz.js.map} +1 -1
  265. package/dist/{splash-screen-C5KAWXvA.cjs → splash-screen-cbz4bxjB.cjs} +1 -1
  266. package/dist/{splash-screen-C5KAWXvA.cjs.map → splash-screen-cbz4bxjB.cjs.map} +1 -1
  267. package/dist/splash-screen.cjs +1 -1
  268. package/dist/splash-screen.js +1 -1
  269. package/dist/{src-qzUpLbje.cjs → src-czeiuT1m.cjs} +1 -1
  270. package/dist/{src-qzUpLbje.cjs.map → src-czeiuT1m.cjs.map} +1 -1
  271. package/dist/{src-C5g3p1J5.js → src-tncsWsTY.js} +36 -35
  272. package/dist/{src-C5g3p1J5.js.map → src-tncsWsTY.js.map} +1 -1
  273. package/dist/{state-Cex3rmx2.cjs → state-Cx0aoL5e.cjs} +1 -1
  274. package/dist/{state-Cex3rmx2.cjs.map → state-Cx0aoL5e.cjs.map} +1 -1
  275. package/dist/{state-CWBRTSvE.js → state-DJDp3N7J.js} +1 -1
  276. package/dist/{state-CWBRTSvE.js.map → state-DJDp3N7J.js.map} +1 -1
  277. package/dist/state.cjs +1 -1
  278. package/dist/state.js +2 -2
  279. package/dist/steps.cjs +1 -1
  280. package/dist/steps.js +2 -2
  281. package/dist/{surface-PfiejLuw.cjs → surface-C3cxTcJD.cjs} +1 -1
  282. package/dist/{surface-PfiejLuw.cjs.map → surface-C3cxTcJD.cjs.map} +1 -1
  283. package/dist/{surface-9S5scTsD.js → surface-CYBl8_a3.js} +2 -2
  284. package/dist/{surface-9S5scTsD.js.map → surface-CYBl8_a3.js.map} +1 -1
  285. package/dist/surface.cjs +1 -1
  286. package/dist/surface.js +1 -1
  287. package/dist/switch.cjs +1 -1
  288. package/dist/switch.js +2 -2
  289. package/dist/table.cjs +1 -1
  290. package/dist/table.js +2 -2
  291. package/dist/{tabs-BBOjAmgG.js → tabs-DHy93Q3N.js} +2 -2
  292. package/dist/{tabs-BBOjAmgG.js.map → tabs-DHy93Q3N.js.map} +1 -1
  293. package/dist/{tabs-uYvb1P06.cjs → tabs-ORQ_Zd43.cjs} +1 -1
  294. package/dist/{tabs-uYvb1P06.cjs.map → tabs-ORQ_Zd43.cjs.map} +1 -1
  295. package/dist/tabs.cjs +1 -1
  296. package/dist/tabs.js +1 -1
  297. package/dist/teleport.cjs +1 -1
  298. package/dist/teleport.js +1 -1
  299. package/dist/{textarea-YPHX4g7Y.cjs → textarea-CEUaDURR.cjs} +1 -1
  300. package/dist/{textarea-YPHX4g7Y.cjs.map → textarea-CEUaDURR.cjs.map} +1 -1
  301. package/dist/{textarea-QzSj8Dkl.js → textarea-DHIMt-ly.js} +2 -2
  302. package/dist/{textarea-QzSj8Dkl.js.map → textarea-DHIMt-ly.js.map} +1 -1
  303. package/dist/textarea.cjs +1 -1
  304. package/dist/textarea.js +1 -1
  305. package/dist/theme-CJpjkqHr.cjs +181 -0
  306. package/dist/{theme-iKUaS9JB.cjs.map → theme-CJpjkqHr.cjs.map} +1 -1
  307. package/dist/{theme-C2Mp-VGt.js → theme-CgI9PRco.js} +6 -5
  308. package/dist/{theme-C2Mp-VGt.js.map → theme-CgI9PRco.js.map} +1 -1
  309. package/dist/{theme-button-CJmhxfMe.cjs → theme-button--FuBkuVr.cjs} +1 -1
  310. package/dist/{theme-button-CJmhxfMe.cjs.map → theme-button--FuBkuVr.cjs.map} +1 -1
  311. package/dist/{theme-button-DGWAXhzd.js → theme-button-D-FXb3oO.js} +2 -2
  312. package/dist/{theme-button-DGWAXhzd.js.map → theme-button-D-FXb3oO.js.map} +1 -1
  313. package/dist/theme-button.cjs +1 -1
  314. package/dist/theme-button.js +1 -1
  315. package/dist/theme.cjs +1 -1
  316. package/dist/theme.js +3 -3
  317. package/dist/{theme.service-hc4N-1Oz.js → theme.service-BfTK1Wtl.js} +1 -1
  318. package/dist/{theme.service-hc4N-1Oz.js.map → theme.service-BfTK1Wtl.js.map} +1 -1
  319. package/dist/{theme.service-p61RsJBF.cjs → theme.service-Dg7LO0Qz.cjs} +1 -1
  320. package/dist/{theme.service-p61RsJBF.cjs.map → theme.service-Dg7LO0Qz.cjs.map} +1 -1
  321. package/dist/tree.cjs +1 -1
  322. package/dist/tree.js +2 -2
  323. package/dist/{typography-DwV0sqht.js → typography-BEGLfHwz.js} +2 -2
  324. package/dist/{typography-DwV0sqht.js.map → typography-BEGLfHwz.js.map} +1 -1
  325. package/dist/{typography-Bdt8RlX2.cjs → typography-CxA3sx9B.cjs} +1 -1
  326. package/dist/{typography-Bdt8RlX2.cjs.map → typography-CxA3sx9B.cjs.map} +1 -1
  327. package/dist/typography.cjs +1 -1
  328. package/dist/typography.js +1 -1
  329. package/dist/visually-hidden.cjs +1 -1
  330. package/dist/visually-hidden.js +2 -2
  331. package/dist/{window-n4jN60B_.js → window-B_n4P9az.js} +3 -3
  332. package/dist/{window-n4jN60B_.js.map → window-B_n4P9az.js.map} +1 -1
  333. package/dist/{window-D2WfvNng.cjs → window-Vl1u1-EG.cjs} +1 -1
  334. package/dist/{window-D2WfvNng.cjs.map → window-Vl1u1-EG.cjs.map} +1 -1
  335. package/dist/window.cjs +1 -1
  336. package/dist/window.js +1 -1
  337. package/package.json +1 -1
  338. package/skills/schmancy/INDEX.md +1 -1
  339. package/skills/schmancy/SKILL.md +6 -7
  340. package/skills/schmancy/boat.md +21 -15
  341. package/skills/schmancy/fab.md +75 -0
  342. package/skills/schmancy/theme.md +1 -1
  343. package/src/CLAUDE.md +22 -16
  344. package/src/boat/boat.test.ts +130 -0
  345. package/src/boat/boat.ts +144 -121
  346. package/src/button/icon-button.ts +18 -30
  347. package/src/chips/assist-chip.ts +2 -263
  348. package/src/chips/chips.ts +2 -259
  349. package/src/chips/filter-chip.ts +2 -255
  350. package/src/chips/index.ts +2 -5
  351. package/src/chips/input-chip.ts +2 -413
  352. package/src/chips/suggestion-chip.ts +2 -266
  353. package/src/directives/fill.ts +28 -5
  354. package/src/fab/fab.test.ts +101 -0
  355. package/src/fab/fab.ts +226 -0
  356. package/src/fab/index.ts +1 -0
  357. package/src/form/fields/chips/assist-chip.ts +263 -0
  358. package/src/form/fields/chips/chips.ts +234 -0
  359. package/src/form/fields/chips/filter-chip.ts +255 -0
  360. package/src/form/fields/chips/index.ts +5 -0
  361. package/src/form/fields/chips/input-chip.ts +413 -0
  362. package/src/form/fields/chips/suggestion-chip.ts +266 -0
  363. package/src/form/fields/date-range/date-range.test.ts +44 -0
  364. package/src/form/fields/date-range/date-range.ts +103 -97
  365. package/src/form/fields/index.ts +1 -0
  366. package/src/index.ts +2 -1
  367. package/src/overlay/overlay.animations.ts +2 -3
  368. package/src/overlay/overlay.component.ts +8 -4
  369. package/src/overlay/overlay.types.ts +14 -2
  370. package/src/theme/theme.component.ts +1 -0
  371. package/src/theme/theme.style.css +3 -0
  372. package/types/src/boat/boat.d.ts +27 -9
  373. package/types/src/boat/boat.test.d.ts +2 -0
  374. package/types/src/button/icon-button.d.ts +3 -2
  375. package/types/src/chips/assist-chip.d.ts +1 -47
  376. package/types/src/chips/chips.d.ts +1 -43
  377. package/types/src/chips/filter-chip.d.ts +1 -67
  378. package/types/src/chips/index.d.ts +1 -5
  379. package/types/src/chips/input-chip.d.ts +1 -82
  380. package/types/src/chips/suggestion-chip.d.ts +1 -52
  381. package/types/src/fab/fab.d.ts +80 -0
  382. package/types/src/fab/fab.test.d.ts +2 -0
  383. package/types/src/fab/index.d.ts +1 -0
  384. package/types/src/form/fields/chips/assist-chip.d.ts +47 -0
  385. package/types/src/form/fields/chips/chips.d.ts +35 -0
  386. package/types/src/form/fields/chips/filter-chip.d.ts +67 -0
  387. package/types/src/form/fields/chips/index.d.ts +5 -0
  388. package/types/src/form/fields/chips/input-chip.d.ts +82 -0
  389. package/types/src/form/fields/chips/suggestion-chip.d.ts +52 -0
  390. package/types/src/form/fields/date-range/date-range.d.ts +5 -10
  391. package/types/src/form/fields/index.d.ts +1 -0
  392. package/types/src/index.d.ts +2 -1
  393. package/types/src/overlay/overlay.component.d.ts +1 -0
  394. package/types/src/overlay/overlay.types.d.ts +12 -2
  395. package/types/src/theme/theme.component.d.ts +1 -0
  396. package/dist/SchmancyElement-CA0Wqt8m.js +0 -284
  397. package/dist/SchmancyElement-CA0Wqt8m.js.map +0 -1
  398. package/dist/SchmancyElement-CYIif26I.cjs +0 -2
  399. package/dist/SchmancyElement-CYIif26I.cjs.map +0 -1
  400. package/dist/boat-Vqjgo10B.cjs +0 -33
  401. package/dist/boat-Vqjgo10B.cjs.map +0 -1
  402. package/dist/boat-lr7MPZ7H.js.map +0 -1
  403. package/dist/chips-CXZ4dJCK.cjs.map +0 -1
  404. package/dist/chips-Dg6Lk6BT.js.map +0 -1
  405. package/dist/date-range-BU6WX7d5.js.map +0 -1
  406. package/dist/date-range-C-_be3_E.cjs.map +0 -1
  407. package/dist/directives-fLwDj6b0.cjs.map +0 -1
  408. package/dist/directives-zi1Mm2er.js.map +0 -1
  409. package/dist/input-chip-57tgNXKT.cjs.map +0 -1
  410. package/dist/input-chip-C6Lq1927.js.map +0 -1
  411. package/dist/overlay-BpNhd74N.js.map +0 -1
  412. package/dist/overlay-UQR2Dy3u.cjs.map +0 -1
  413. package/dist/theme-iKUaS9JB.cjs +0 -181
@@ -441,7 +441,7 @@
441
441
  {
442
442
  "name": "schmancy-boat",
443
443
  "path": "./src/boat/boat.ts",
444
- "description": "Material-3 extended FAB that delegates its expanded panel to the `show()`\noverlay service. Collapsed: a draggable, corner-anchored pill (icon + label,\ncircular when no label). Activated: the default-slot content blooms from the\nFAB as an overlay (backdrop / Esc / back-button / sheet-on-narrow handled by\nthe overlay primitive).",
444
+ "description": "Corner-anchored launcher that delegates its expanded panel to the `show()`\noverlay service.\n\nThree slots, three non-overlapping intents — no element-type sniffing,\never:\n\n - `trigger` — pure consumer content. A native click anywhere on it\n opens the panel; interactive children (buttons, FABs, inputs) work\n with zero special-casing because the boat never calls\n `preventDefault` / `stopPropagation` / `setPointerCapture` here.\n - `drag-handle` — opt-in. Pointer-drag is wired ONLY to this slot's\n boat-owned wrapper. Slot it to make the boat draggable; omit it and\n the boat is static at its corner. (A no-move tap on the handle also\n opens, so the grip doubles as a launcher.)\n - _(default)_ — the panel body; parked hidden while collapsed,\n relocated into the `show()` overlay on open.\n\nThe boat owns drag, corner-snapping, position persistence and the glass\nsurface never the collapsed shape.",
445
445
  "attributes": [
446
446
  {
447
447
  "name": "id",
@@ -451,7 +451,7 @@
451
451
  },
452
452
  {
453
453
  "name": "corner",
454
- "description": "Corner the FAB is anchored to.",
454
+ "description": "Corner the launcher is anchored to.",
455
455
  "type": "Corner",
456
456
  "default": "\"bottom-right\""
457
457
  },
@@ -463,11 +463,6 @@
463
463
  }
464
464
  ],
465
465
  "properties": [
466
- {
467
- "name": "styles",
468
- "type": "CSSResult[]",
469
- "default": "[null]"
470
- },
471
466
  {
472
467
  "name": "id",
473
468
  "attribute": "id",
@@ -478,7 +473,7 @@
478
473
  {
479
474
  "name": "corner",
480
475
  "attribute": "corner",
481
- "description": "Corner the FAB is anchored to.",
476
+ "description": "Corner the launcher is anchored to.",
482
477
  "type": "Corner",
483
478
  "default": "\"bottom-right\""
484
479
  },
@@ -1118,45 +1113,30 @@
1118
1113
  ]
1119
1114
  },
1120
1115
  {
1121
- "name": "schmancy-assist-chip",
1122
- "path": "./src/chips/assist-chip.ts",
1123
- "description": "Assist chip component - prompts user actions like opening calendar events or sharing content\nPure Schmancy implementation with Tailwind CSS and RxJS state management",
1124
- "attributes": [
1125
- {
1126
- "name": "value",
1127
- "description": "Value identifier for the chip",
1128
- "type": "string",
1129
- "default": "\"\""
1130
- },
1131
- {
1132
- "name": "icon",
1133
- "description": "Optional icon name (Material Symbols)",
1134
- "type": "string",
1135
- "default": "\"\""
1136
- },
1137
- {
1138
- "name": "href",
1139
- "description": "Optional href for navigation",
1140
- "type": "string",
1141
- "default": "\"\""
1142
- },
1116
+ "name": "schmancy-connectivity-status",
1117
+ "path": "./src/connectivity/connectivity-status.ts",
1118
+ "properties": [
1143
1119
  {
1144
- "name": "target",
1145
- "description": "Target for navigation (e.g., '_blank')",
1146
- "type": "string",
1147
- "default": "\"\""
1148
- },
1120
+ "name": "styles",
1121
+ "type": "CSSResult[]",
1122
+ "default": "[null]"
1123
+ }
1124
+ ]
1125
+ },
1126
+ {
1127
+ "name": "schmancy-content-drawer",
1128
+ "path": "./src/content-drawer/drawer.ts",
1129
+ "attributes": [
1149
1130
  {
1150
- "name": "disabled",
1151
- "description": "Disable the chip",
1152
- "type": "boolean",
1153
- "default": "false"
1131
+ "name": "minWidth",
1132
+ "description": "The minimum width of the sheet",
1133
+ "type": "number",
1134
+ "default": "{\"main\":360,\"sheet\":576}"
1154
1135
  },
1155
1136
  {
1156
- "name": "elevated",
1157
- "description": "Elevated style variant - true by default per M3 spec for assist chips",
1158
- "type": "boolean",
1159
- "default": "true"
1137
+ "name": "open",
1138
+ "description": "The state of the sheet",
1139
+ "type": "TSchmancyContentDrawerSheetState"
1160
1140
  }
1161
1141
  ],
1162
1142
  "properties": [
@@ -1166,88 +1146,51 @@
1166
1146
  "default": "[null]"
1167
1147
  },
1168
1148
  {
1169
- "name": "value",
1170
- "attribute": "value",
1171
- "description": "Value identifier for the chip",
1172
- "type": "string",
1173
- "default": "\"\""
1149
+ "name": "minWidth",
1150
+ "attribute": "minWidth",
1151
+ "description": "The minimum width of the sheet",
1152
+ "type": "number",
1153
+ "default": "{\"main\":360,\"sheet\":576}"
1174
1154
  },
1175
1155
  {
1176
- "name": "icon",
1177
- "attribute": "icon",
1178
- "description": "Optional icon name (Material Symbols)",
1179
- "type": "string",
1180
- "default": "\"\""
1156
+ "name": "open",
1157
+ "attribute": "open",
1158
+ "description": "The state of the sheet",
1159
+ "type": "TSchmancyContentDrawerSheetState"
1181
1160
  },
1182
1161
  {
1183
- "name": "href",
1184
- "attribute": "href",
1185
- "description": "Optional href for navigation",
1162
+ "name": "schmancyContentDrawerID",
1186
1163
  "type": "string",
1187
- "default": "\"\""
1164
+ "default": "\"Math.floor(Math.random() * Date.now()).toString()\""
1188
1165
  },
1189
1166
  {
1190
- "name": "target",
1191
- "attribute": "target",
1192
- "description": "Target for navigation (e.g., '_blank')",
1167
+ "name": "maxHeight",
1193
1168
  "type": "string",
1194
- "default": "\"\""
1195
- },
1196
- {
1197
- "name": "disabled",
1198
- "attribute": "disabled",
1199
- "description": "Disable the chip",
1200
- "type": "boolean",
1201
- "default": "false"
1169
+ "default": "\"100%\""
1202
1170
  },
1203
1171
  {
1204
- "name": "elevated",
1205
- "attribute": "elevated",
1206
- "description": "Elevated style variant - true by default per M3 spec for assist chips",
1207
- "type": "boolean",
1208
- "default": "true"
1172
+ "name": "assignedElements",
1173
+ "type": "HTMLElement[]"
1209
1174
  }
1210
1175
  ],
1211
- "events": [
1176
+ "slots": [
1212
1177
  {
1213
- "name": "action"
1178
+ "name": "appbar",
1179
+ "description": "The appbar slot"
1214
1180
  },
1215
1181
  {
1216
- "name": "click"
1182
+ "name": "",
1183
+ "description": "The content slot"
1217
1184
  }
1218
1185
  ]
1219
1186
  },
1220
1187
  {
1221
- "name": "schmancy-chips",
1222
- "path": "./src/chips/chips.ts",
1188
+ "name": "schmancy-content-drawer-main",
1189
+ "path": "./src/content-drawer/main.ts",
1223
1190
  "attributes": [
1224
1191
  {
1225
- "name": "multi",
1226
- "type": "boolean",
1227
- "deprecatedMessage": "Use .values for multi-selection or .value for single-selection instead.\nThe mode is now automatically determined based on which property is used."
1228
- },
1229
- {
1230
- "name": "values",
1231
- "type": "string[]"
1232
- },
1233
- {
1234
- "name": "value",
1235
- "type": "string"
1236
- },
1237
- {
1238
- "name": "wrap",
1239
- "type": "boolean",
1240
- "default": "false"
1241
- },
1242
- {
1243
- "name": "required",
1244
- "type": "boolean",
1245
- "default": "false"
1246
- },
1247
- {
1248
- "name": "justify",
1249
- "type": "\"start\" | \"center\" | \"end\"",
1250
- "default": "\"start\""
1192
+ "name": "minWidth",
1193
+ "type": "number"
1251
1194
  }
1252
1195
  ],
1253
1196
  "properties": [
@@ -1257,82 +1200,35 @@
1257
1200
  "default": "[null]"
1258
1201
  },
1259
1202
  {
1260
- "name": "multi",
1261
- "attribute": "multi",
1262
- "type": "boolean",
1263
- "deprecatedMessage": "Use .values for multi-selection or .value for single-selection instead.\nThe mode is now automatically determined based on which property is used."
1264
- },
1265
- {
1266
- "name": "values",
1267
- "attribute": "values",
1268
- "type": "string[]"
1269
- },
1270
- {
1271
- "name": "value",
1272
- "attribute": "value",
1273
- "type": "string"
1274
- },
1275
- {
1276
- "name": "chips",
1277
- "type": "(HTMLElement | SchmancyFilterChip)[]"
1203
+ "name": "minWidth",
1204
+ "attribute": "minWidth",
1205
+ "type": "number"
1278
1206
  },
1279
1207
  {
1280
- "name": "wrap",
1281
- "attribute": "wrap",
1282
- "type": "boolean",
1283
- "default": "false"
1208
+ "name": "drawerMinWidth",
1209
+ "type": "{ main: number; sheet: number; }"
1284
1210
  },
1285
1211
  {
1286
- "name": "required",
1287
- "attribute": "required",
1288
- "type": "boolean",
1289
- "default": "false"
1212
+ "name": "mode",
1213
+ "type": "TSchmancyContentDrawerSheetMode"
1290
1214
  },
1291
1215
  {
1292
- "name": "justify",
1293
- "attribute": "justify",
1294
- "type": "\"start\" | \"center\" | \"end\"",
1295
- "default": "\"start\""
1216
+ "name": "maxHeight",
1217
+ "type": "string"
1296
1218
  }
1297
1219
  ],
1298
1220
  "events": [
1299
1221
  {
1300
- "name": "change"
1222
+ "name": "ContentDrawerResize"
1301
1223
  }
1302
1224
  ]
1303
1225
  },
1304
1226
  {
1305
- "name": "schmancy-filter-chip",
1306
- "path": "./src/chips/filter-chip.ts",
1307
- "description": "Filter chip component for content filtering.\n\nFilter chips are the ONLY chip type that maintains persistent selected state.\nThey are used for filtering content by toggling on/off different filter criteria.",
1227
+ "name": "schmancy-content-drawer-sheet",
1228
+ "path": "./src/content-drawer/sheet.ts",
1308
1229
  "attributes": [
1309
1230
  {
1310
- "name": "value",
1311
- "description": "Unique identifier for this filter chip",
1312
- "type": "string",
1313
- "default": "\"\""
1314
- },
1315
- {
1316
- "name": "selected",
1317
- "type": "boolean"
1318
- },
1319
- {
1320
- "name": "removable",
1321
- "description": "Whether to show a remove button",
1322
- "type": "boolean",
1323
- "default": "false"
1324
- },
1325
- {
1326
- "name": "disabled",
1327
- "description": "Whether the chip is disabled",
1328
- "type": "boolean",
1329
- "default": "false"
1330
- },
1331
- {
1332
- "name": "elevated",
1333
- "description": "Whether to use elevated style with shadow",
1334
- "type": "boolean",
1335
- "default": "false"
1231
+ "name": "minWidth"
1336
1232
  }
1337
1233
  ],
1338
1234
  "properties": [
@@ -1342,200 +1238,298 @@
1342
1238
  "default": "[null]"
1343
1239
  },
1344
1240
  {
1345
- "name": "value",
1346
- "attribute": "value",
1347
- "description": "Unique identifier for this filter chip",
1348
- "type": "string",
1349
- "default": "\"\""
1241
+ "name": "minWidth",
1242
+ "attribute": "minWidth"
1350
1243
  },
1351
1244
  {
1352
- "name": "selected",
1353
- "attribute": "selected",
1354
- "type": "boolean"
1245
+ "name": "mode",
1246
+ "type": "TSchmancyContentDrawerSheetMode"
1355
1247
  },
1356
1248
  {
1357
- "name": "removable",
1358
- "attribute": "removable",
1359
- "description": "Whether to show a remove button",
1360
- "type": "boolean",
1361
- "default": "false"
1249
+ "name": "state",
1250
+ "type": "TSchmancyContentDrawerSheetState"
1362
1251
  },
1363
1252
  {
1364
- "name": "disabled",
1365
- "attribute": "disabled",
1366
- "description": "Whether the chip is disabled",
1367
- "type": "boolean",
1368
- "default": "false"
1253
+ "name": "schmancyContentDrawerID"
1369
1254
  },
1370
1255
  {
1371
- "name": "elevated",
1372
- "attribute": "elevated",
1373
- "description": "Whether to use elevated style with shadow",
1374
- "type": "boolean",
1375
- "default": "false"
1256
+ "name": "sheet",
1257
+ "type": "HTMLElement"
1376
1258
  },
1377
1259
  {
1378
- "name": "formAssociated",
1379
- "type": "boolean",
1380
- "default": "true"
1260
+ "name": "defaultSlot",
1261
+ "type": "HTMLElement[]"
1381
1262
  },
1382
1263
  {
1383
- "name": "internals",
1384
- "type": "ElementInternals | undefined"
1264
+ "name": "drawerMinWidth",
1265
+ "type": "{ main: number; sheet: number; }"
1385
1266
  },
1386
1267
  {
1387
- "name": "form",
1388
- "type": "HTMLFormElement | null | undefined"
1268
+ "name": "maxHeight"
1389
1269
  }
1390
1270
  ],
1391
1271
  "events": [
1392
1272
  {
1393
- "name": "change",
1394
- "description": "Dispatched when selection state changes with {value, selected}"
1273
+ "name": "ContentDrawerResize"
1395
1274
  },
1396
1275
  {
1397
- "name": "remove",
1398
- "description": "Dispatched when remove button is clicked (if removable)"
1276
+ "name": "schmancy-content-drawer-overlay-dismiss"
1399
1277
  }
1400
1278
  ]
1401
1279
  },
1402
1280
  {
1403
- "name": "schmancy-chip",
1404
- "path": "./src/chips/filter-chip.ts",
1281
+ "name": "schmancy-date-range-inline",
1282
+ "path": "./src/date-range-inline/date-range-inline.ts",
1283
+ "description": "Smart inline date range picker that handles all the heavy lifting.\r\nAuto-corrects invalid ranges, provides smart defaults, and validates dates.",
1405
1284
  "attributes": [
1406
1285
  {
1407
- "name": "value",
1408
- "description": "Unique identifier for this filter chip",
1409
- "type": "string",
1410
- "default": "\"\""
1286
+ "name": "type",
1287
+ "description": "Input type - 'date' or 'datetime-local'",
1288
+ "type": "\"date\" | \"datetime-local\"",
1289
+ "default": "\"date\""
1411
1290
  },
1412
1291
  {
1413
- "name": "selected",
1414
- "type": "boolean"
1292
+ "name": "dateFrom",
1293
+ "description": "From date configuration",
1294
+ "type": "{ label: string; value: string; }",
1295
+ "default": "{\"label\":\"From\",\"value\":\"\"}"
1415
1296
  },
1416
1297
  {
1417
- "name": "removable",
1418
- "description": "Whether to show a remove button",
1298
+ "name": "dateTo",
1299
+ "description": "To date configuration",
1300
+ "type": "{ label: string; value: string; }",
1301
+ "default": "{\"label\":\"To\",\"value\":\"\"}"
1302
+ },
1303
+ {
1304
+ "name": "minDate",
1305
+ "description": "Minimum allowed date",
1306
+ "type": "string | undefined"
1307
+ },
1308
+ {
1309
+ "name": "maxDate",
1310
+ "description": "Maximum allowed date",
1311
+ "type": "string | undefined"
1312
+ },
1313
+ {
1314
+ "name": "compact",
1315
+ "description": "Compact mode for smaller UI",
1419
1316
  "type": "boolean",
1420
1317
  "default": "false"
1421
1318
  },
1422
1319
  {
1423
- "name": "disabled",
1424
- "description": "Whether the chip is disabled",
1320
+ "name": "autoCorrect",
1321
+ "description": "Auto-correct invalid date ranges",
1425
1322
  "type": "boolean",
1426
- "default": "false"
1323
+ "default": "true"
1427
1324
  },
1428
1325
  {
1429
- "name": "elevated",
1430
- "description": "Whether to use elevated style with shadow",
1326
+ "name": "minGap",
1327
+ "description": "Minimum gap between dates (in days)",
1328
+ "type": "number",
1329
+ "default": "0"
1330
+ },
1331
+ {
1332
+ "name": "maxGap",
1333
+ "description": "Maximum gap between dates (in days)",
1334
+ "type": "number | undefined"
1335
+ },
1336
+ {
1337
+ "name": "defaultGap",
1338
+ "description": "Default gap when auto-setting dates (in days)",
1339
+ "type": "number",
1340
+ "default": "1"
1341
+ },
1342
+ {
1343
+ "name": "allowSameDate",
1344
+ "description": "Whether to allow same date selection",
1431
1345
  "type": "boolean",
1432
1346
  "default": "false"
1433
1347
  }
1434
1348
  ],
1435
1349
  "properties": [
1436
1350
  {
1437
- "name": "styles",
1438
- "type": "CSSResult[]",
1439
- "default": "[null]"
1351
+ "name": "type",
1352
+ "attribute": "type",
1353
+ "description": "Input type - 'date' or 'datetime-local'",
1354
+ "type": "\"date\" | \"datetime-local\"",
1355
+ "default": "\"date\""
1440
1356
  },
1441
1357
  {
1442
- "name": "value",
1443
- "attribute": "value",
1444
- "description": "Unique identifier for this filter chip",
1445
- "type": "string",
1446
- "default": "\"\""
1358
+ "name": "dateFrom",
1359
+ "attribute": "dateFrom",
1360
+ "description": "From date configuration",
1361
+ "type": "{ label: string; value: string; }",
1362
+ "default": "{\"label\":\"From\",\"value\":\"\"}"
1447
1363
  },
1448
1364
  {
1449
- "name": "selected",
1450
- "attribute": "selected",
1451
- "type": "boolean"
1365
+ "name": "dateTo",
1366
+ "attribute": "dateTo",
1367
+ "description": "To date configuration",
1368
+ "type": "{ label: string; value: string; }",
1369
+ "default": "{\"label\":\"To\",\"value\":\"\"}"
1452
1370
  },
1453
1371
  {
1454
- "name": "removable",
1455
- "attribute": "removable",
1456
- "description": "Whether to show a remove button",
1457
- "type": "boolean",
1458
- "default": "false"
1372
+ "name": "minDate",
1373
+ "attribute": "minDate",
1374
+ "description": "Minimum allowed date",
1375
+ "type": "string | undefined"
1459
1376
  },
1460
1377
  {
1461
- "name": "disabled",
1462
- "attribute": "disabled",
1463
- "description": "Whether the chip is disabled",
1464
- "type": "boolean",
1465
- "default": "false"
1378
+ "name": "maxDate",
1379
+ "attribute": "maxDate",
1380
+ "description": "Maximum allowed date",
1381
+ "type": "string | undefined"
1466
1382
  },
1467
1383
  {
1468
- "name": "elevated",
1469
- "attribute": "elevated",
1470
- "description": "Whether to use elevated style with shadow",
1384
+ "name": "compact",
1385
+ "attribute": "compact",
1386
+ "description": "Compact mode for smaller UI",
1471
1387
  "type": "boolean",
1472
1388
  "default": "false"
1473
1389
  },
1474
1390
  {
1475
- "name": "formAssociated",
1391
+ "name": "autoCorrect",
1392
+ "attribute": "autoCorrect",
1393
+ "description": "Auto-correct invalid date ranges",
1476
1394
  "type": "boolean",
1477
1395
  "default": "true"
1478
1396
  },
1479
1397
  {
1480
- "name": "internals",
1481
- "type": "ElementInternals | undefined"
1398
+ "name": "minGap",
1399
+ "attribute": "minGap",
1400
+ "description": "Minimum gap between dates (in days)",
1401
+ "type": "number",
1402
+ "default": "0"
1482
1403
  },
1483
1404
  {
1484
- "name": "form",
1485
- "type": "HTMLFormElement | null | undefined"
1405
+ "name": "maxGap",
1406
+ "attribute": "maxGap",
1407
+ "description": "Maximum gap between dates (in days)",
1408
+ "type": "number | undefined"
1409
+ },
1410
+ {
1411
+ "name": "defaultGap",
1412
+ "attribute": "defaultGap",
1413
+ "description": "Default gap when auto-setting dates (in days)",
1414
+ "type": "number",
1415
+ "default": "1"
1416
+ },
1417
+ {
1418
+ "name": "allowSameDate",
1419
+ "attribute": "allowSameDate",
1420
+ "description": "Whether to allow same date selection",
1421
+ "type": "boolean",
1422
+ "default": "false"
1486
1423
  }
1487
1424
  ],
1488
1425
  "events": [
1489
1426
  {
1490
- "name": "change",
1491
- "description": "Dispatched when selection state changes with {value, selected}"
1492
- },
1493
- {
1494
- "name": "remove",
1495
- "description": "Dispatched when remove button is clicked (if removable)"
1427
+ "name": "change"
1496
1428
  }
1497
1429
  ]
1498
1430
  },
1499
1431
  {
1500
- "name": "schmancy-input-chip",
1501
- "path": "./src/chips/input-chip.ts",
1502
- "description": "Input chip component - represents user-provided information that can be removed.\n\nIMPORTANT: Per Material Design 3 specification, input chips do NOT have selected state.\nThey represent discrete pieces of user input (like entered tags, selections from lists, etc.)\nthat can only be removed, not toggled on/off.\n\nUse cases:\n- Displaying selected recipients in an email\n- Showing applied filters that can be removed\n- Tags or keywords entered by the user\n- Selected items from a multi-select dropdown",
1432
+ "name": "schmancy-delay",
1433
+ "path": "./src/delay/delay.ts",
1503
1434
  "attributes": [
1504
1435
  {
1505
- "name": "value",
1506
- "description": "Value identifier for the chip",
1436
+ "name": "delay",
1437
+ "type": "number",
1438
+ "default": "0"
1439
+ },
1440
+ {
1441
+ "name": "motion",
1507
1442
  "type": "string",
1508
- "default": "\"\""
1443
+ "default": "\"flyBelow\""
1509
1444
  },
1510
1445
  {
1511
- "name": "icon",
1512
- "description": "Optional icon name (Material Symbols)",
1446
+ "name": "once",
1447
+ "type": "boolean | undefined",
1448
+ "default": "true"
1449
+ }
1450
+ ],
1451
+ "properties": [
1452
+ {
1453
+ "name": "delay",
1454
+ "attribute": "delay",
1455
+ "type": "number",
1456
+ "default": "0"
1457
+ },
1458
+ {
1459
+ "name": "motion",
1460
+ "attribute": "motion",
1513
1461
  "type": "string",
1514
- "default": "\"\""
1462
+ "default": "\"flyBelow\""
1515
1463
  },
1516
1464
  {
1517
- "name": "avatar",
1518
- "description": "Optional avatar image URL",
1465
+ "name": "parentDelay",
1466
+ "type": "number",
1467
+ "default": "0"
1468
+ },
1469
+ {
1470
+ "name": "effectiveDelay",
1471
+ "type": "number",
1472
+ "default": "0"
1473
+ },
1474
+ {
1475
+ "name": "once",
1476
+ "attribute": "once",
1477
+ "type": "boolean | undefined",
1478
+ "default": "true"
1479
+ },
1480
+ {
1481
+ "name": "assignedElements",
1482
+ "type": "HTMLElement[]"
1483
+ }
1484
+ ]
1485
+ },
1486
+ {
1487
+ "name": "schmancy-details",
1488
+ "path": "./src/details/details.ts",
1489
+ "attributes": [
1490
+ {
1491
+ "name": "summary",
1519
1492
  "type": "string",
1520
1493
  "default": "\"\""
1521
1494
  },
1522
1495
  {
1523
- "name": "removable",
1524
- "description": "Whether to show remove button (default true for input chips)",
1496
+ "name": "open",
1497
+ "type": "boolean"
1498
+ },
1499
+ {
1500
+ "name": "indicator-placement",
1501
+ "type": "\"start\" | \"end\"",
1502
+ "default": "\"end\""
1503
+ },
1504
+ {
1505
+ "name": "hide-indicator",
1525
1506
  "type": "boolean",
1526
- "default": "true"
1507
+ "default": "false"
1527
1508
  },
1528
1509
  {
1529
- "name": "disabled",
1530
- "description": "Disable the chip",
1510
+ "name": "indicator-rotate",
1511
+ "type": "number",
1512
+ "default": "90"
1513
+ },
1514
+ {
1515
+ "name": "locked",
1531
1516
  "type": "boolean",
1532
1517
  "default": "false"
1533
1518
  },
1534
1519
  {
1535
- "name": "elevated",
1536
- "description": "Elevated style variant",
1520
+ "name": "overlay",
1537
1521
  "type": "boolean",
1538
1522
  "default": "false"
1523
+ },
1524
+ {
1525
+ "name": "summary-padding",
1526
+ "type": "string",
1527
+ "default": "\"p-3\""
1528
+ },
1529
+ {
1530
+ "name": "content-padding",
1531
+ "type": "string",
1532
+ "default": "\"p-3\""
1539
1533
  }
1540
1534
  ],
1541
1535
  "properties": [
@@ -1545,117 +1539,93 @@
1545
1539
  "default": "[null]"
1546
1540
  },
1547
1541
  {
1548
- "name": "value",
1549
- "attribute": "value",
1550
- "description": "Value identifier for the chip",
1542
+ "name": "summary",
1543
+ "attribute": "summary",
1551
1544
  "type": "string",
1552
1545
  "default": "\"\""
1553
1546
  },
1554
1547
  {
1555
- "name": "icon",
1556
- "attribute": "icon",
1557
- "description": "Optional icon name (Material Symbols)",
1558
- "type": "string",
1559
- "default": "\"\""
1548
+ "name": "open",
1549
+ "attribute": "open",
1550
+ "type": "boolean"
1560
1551
  },
1561
1552
  {
1562
- "name": "avatar",
1563
- "attribute": "avatar",
1564
- "description": "Optional avatar image URL",
1565
- "type": "string",
1566
- "default": "\"\""
1553
+ "name": "indicatorPlacement",
1554
+ "attribute": "indicator-placement",
1555
+ "type": "\"start\" | \"end\"",
1556
+ "default": "\"end\""
1567
1557
  },
1568
1558
  {
1569
- "name": "removable",
1570
- "attribute": "removable",
1571
- "description": "Whether to show remove button (default true for input chips)",
1559
+ "name": "hideIndicator",
1560
+ "attribute": "hide-indicator",
1572
1561
  "type": "boolean",
1573
- "default": "true"
1562
+ "default": "false"
1574
1563
  },
1575
1564
  {
1576
- "name": "disabled",
1577
- "attribute": "disabled",
1578
- "description": "Disable the chip",
1579
- "type": "boolean",
1580
- "default": "false"
1565
+ "name": "indicatorRotate",
1566
+ "attribute": "indicator-rotate",
1567
+ "type": "number",
1568
+ "default": "90"
1581
1569
  },
1582
1570
  {
1583
- "name": "elevated",
1584
- "attribute": "elevated",
1585
- "description": "Elevated style variant",
1571
+ "name": "locked",
1572
+ "attribute": "locked",
1586
1573
  "type": "boolean",
1587
1574
  "default": "false"
1588
1575
  },
1589
1576
  {
1590
- "name": "uiState",
1591
- "type": "{ chipHover: boolean; removeHover: boolean; focused: boolean; pressed: boolean; }",
1592
- "default": "{\"chipHover\":false,\"removeHover\":false,\"focused\":false,\"pressed\":false}"
1593
- },
1594
- {
1595
- "name": "formAssociated",
1577
+ "name": "overlay",
1578
+ "attribute": "overlay",
1596
1579
  "type": "boolean",
1597
- "default": "true"
1580
+ "default": "false"
1598
1581
  },
1599
1582
  {
1600
- "name": "internals",
1601
- "type": "ElementInternals | undefined"
1583
+ "name": "summaryPadding",
1584
+ "attribute": "summary-padding",
1585
+ "type": "string",
1586
+ "default": "\"p-3\""
1602
1587
  },
1603
1588
  {
1604
- "name": "form",
1605
- "type": "HTMLFormElement | null | undefined"
1606
- }
1607
- ],
1608
- "events": [
1589
+ "name": "contentPadding",
1590
+ "attribute": "content-padding",
1591
+ "type": "string",
1592
+ "default": "\"p-3\""
1593
+ },
1609
1594
  {
1610
- "name": "click",
1611
- "description": "Optional click event on chip body (value)"
1595
+ "name": "type",
1596
+ "type": "string",
1597
+ "default": "\"solid\""
1612
1598
  },
1613
1599
  {
1614
- "name": "remove",
1615
- "description": "Dispatched when remove button is clicked (value)"
1600
+ "name": "rounded",
1601
+ "type": "string",
1602
+ "default": "\"all\""
1616
1603
  }
1617
1604
  ]
1618
1605
  },
1619
1606
  {
1620
- "name": "schmancy-suggestion-chip",
1621
- "path": "./src/chips/suggestion-chip.ts",
1622
- "description": "Suggestion chip component - provides contextual recommendations to users\n\nIMPORTANT: Suggestion chips do NOT have a selected state. They are designed to\nprovide suggestions and recommendations that trigger actions when clicked.\nUnlike filter chips, they cannot be toggled on/off.\n\nPure Schmancy implementation with Tailwind CSS and RxJS state management",
1607
+ "name": "schmancy-divider",
1608
+ "path": "./src/divider/divider.ts",
1623
1609
  "attributes": [
1624
1610
  {
1625
- "name": "value",
1626
- "description": "Value identifier for the chip",
1627
- "type": "string",
1628
- "default": "\"\""
1629
- },
1630
- {
1631
- "name": "icon",
1632
- "description": "Optional icon name (Material Symbols)",
1633
- "type": "string",
1634
- "default": "\"\""
1635
- },
1636
- {
1637
- "name": "href",
1638
- "description": "Optional href for navigation",
1639
- "type": "string",
1640
- "default": "\"\""
1641
- },
1642
- {
1643
- "name": "target",
1644
- "description": "Target for navigation (e.g., '_blank')",
1645
- "type": "string",
1646
- "default": "\"\""
1611
+ "name": "outline",
1612
+ "type": "\"default\" | \"variant\"",
1613
+ "default": "\"variant\""
1647
1614
  },
1648
1615
  {
1649
- "name": "disabled",
1650
- "description": "Disable the chip",
1616
+ "name": "vertical",
1651
1617
  "type": "boolean",
1652
1618
  "default": "false"
1653
1619
  },
1654
1620
  {
1655
- "name": "elevated",
1656
- "description": "Elevated style variant - flat by default per M3 spec",
1657
- "type": "boolean",
1658
- "default": "false"
1621
+ "name": "grow",
1622
+ "type": "\"start\" | \"end\" | \"both\"",
1623
+ "default": "\"start\""
1624
+ },
1625
+ {
1626
+ "name": "orientation",
1627
+ "type": "\"horizontal\" | \"vertical\"",
1628
+ "deprecatedMessage": "Use `vertical` property instead. Will be removed in next major version."
1659
1629
  }
1660
1630
  ],
1661
1631
  "properties": [
@@ -1665,136 +1635,133 @@
1665
1635
  "default": "[null]"
1666
1636
  },
1667
1637
  {
1668
- "name": "value",
1669
- "attribute": "value",
1670
- "description": "Value identifier for the chip",
1671
- "type": "string",
1672
- "default": "\"\""
1673
- },
1674
- {
1675
- "name": "icon",
1676
- "attribute": "icon",
1677
- "description": "Optional icon name (Material Symbols)",
1678
- "type": "string",
1679
- "default": "\"\""
1680
- },
1681
- {
1682
- "name": "href",
1683
- "attribute": "href",
1684
- "description": "Optional href for navigation",
1685
- "type": "string",
1686
- "default": "\"\""
1687
- },
1688
- {
1689
- "name": "target",
1690
- "attribute": "target",
1691
- "description": "Target for navigation (e.g., '_blank')",
1692
- "type": "string",
1693
- "default": "\"\""
1638
+ "name": "outline",
1639
+ "attribute": "outline",
1640
+ "type": "\"default\" | \"variant\"",
1641
+ "default": "\"variant\""
1694
1642
  },
1695
1643
  {
1696
- "name": "disabled",
1697
- "attribute": "disabled",
1698
- "description": "Disable the chip",
1644
+ "name": "vertical",
1645
+ "attribute": "vertical",
1699
1646
  "type": "boolean",
1700
1647
  "default": "false"
1701
1648
  },
1702
1649
  {
1703
- "name": "elevated",
1704
- "attribute": "elevated",
1705
- "description": "Elevated style variant - flat by default per M3 spec",
1706
- "type": "boolean",
1707
- "default": "false"
1708
- }
1709
- ],
1710
- "events": [
1711
- {
1712
- "name": "action"
1650
+ "name": "grow",
1651
+ "attribute": "grow",
1652
+ "type": "\"start\" | \"end\" | \"both\"",
1653
+ "default": "\"start\""
1713
1654
  },
1714
1655
  {
1715
- "name": "click"
1716
- }
1717
- ]
1718
- },
1719
- {
1720
- "name": "schmancy-connectivity-status",
1721
- "path": "./src/connectivity/connectivity-status.ts",
1722
- "properties": [
1723
- {
1724
- "name": "styles",
1725
- "type": "CSSResult[]",
1726
- "default": "[null]"
1656
+ "name": "orientation",
1657
+ "attribute": "orientation",
1658
+ "type": "\"horizontal\" | \"vertical\"",
1659
+ "deprecatedMessage": "Use `vertical` property instead. Will be removed in next major version."
1727
1660
  }
1728
1661
  ]
1729
1662
  },
1730
1663
  {
1731
- "name": "schmancy-content-drawer",
1732
- "path": "./src/content-drawer/drawer.ts",
1664
+ "name": "schmancy-dropdown",
1665
+ "path": "./src/dropdown/dropdown-component.ts",
1666
+ "description": "A dropdown component that displays content when triggered.",
1733
1667
  "attributes": [
1734
1668
  {
1735
- "name": "minWidth",
1736
- "description": "The minimum width of the sheet",
1737
- "type": "number",
1738
- "default": "{\"main\":360,\"sheet\":576}"
1669
+ "name": "open",
1670
+ "description": "Whether the dropdown is currently open",
1671
+ "type": "boolean",
1672
+ "default": "false"
1739
1673
  },
1740
1674
  {
1741
- "name": "open",
1742
- "description": "The state of the sheet",
1743
- "type": "TSchmancyContentDrawerSheetState"
1675
+ "name": "placement",
1676
+ "description": "Placement of the dropdown relative to the trigger",
1677
+ "type": "\"top\" | \"top-start\" | \"top-end\" | \"right\" | \"right-start\" | \"right-end\" | \"bottom\" | \"bottom-start\" | \"bottom-end\" | \"left\" | \"left-start\" | \"left-end\"",
1678
+ "default": "\"bottom-start\""
1679
+ },
1680
+ {
1681
+ "name": "distance",
1682
+ "description": "Offset distance in pixels",
1683
+ "type": "number",
1684
+ "default": "8"
1744
1685
  }
1745
1686
  ],
1746
1687
  "properties": [
1747
1688
  {
1748
- "name": "styles",
1749
- "type": "CSSResult[]",
1750
- "default": "[null]"
1689
+ "name": "open",
1690
+ "attribute": "open",
1691
+ "description": "Whether the dropdown is currently open",
1692
+ "type": "boolean",
1693
+ "default": "false"
1751
1694
  },
1752
1695
  {
1753
- "name": "minWidth",
1754
- "attribute": "minWidth",
1755
- "description": "The minimum width of the sheet",
1696
+ "name": "placement",
1697
+ "attribute": "placement",
1698
+ "description": "Placement of the dropdown relative to the trigger",
1699
+ "type": "\"top\" | \"top-start\" | \"top-end\" | \"right\" | \"right-start\" | \"right-end\" | \"bottom\" | \"bottom-start\" | \"bottom-end\" | \"left\" | \"left-start\" | \"left-end\"",
1700
+ "default": "\"bottom-start\""
1701
+ },
1702
+ {
1703
+ "name": "distance",
1704
+ "attribute": "distance",
1705
+ "description": "Offset distance in pixels",
1756
1706
  "type": "number",
1757
- "default": "{\"main\":360,\"sheet\":576}"
1707
+ "default": "8"
1758
1708
  },
1759
1709
  {
1760
- "name": "open",
1761
- "attribute": "open",
1762
- "description": "The state of the sheet",
1763
- "type": "TSchmancyContentDrawerSheetState"
1710
+ "name": "triggerContainer",
1711
+ "type": "HTMLElement"
1764
1712
  },
1765
1713
  {
1766
- "name": "schmancyContentDrawerID",
1767
- "type": "string",
1768
- "default": "\"Math.floor(Math.random() * Date.now()).toString()\""
1714
+ "name": "contentContainer",
1715
+ "type": "HTMLElement"
1769
1716
  },
1770
1717
  {
1771
- "name": "maxHeight",
1772
- "type": "string",
1773
- "default": "\"100%\""
1718
+ "name": "contentElements",
1719
+ "type": "HTMLElement[]"
1774
1720
  },
1775
1721
  {
1776
- "name": "assignedElements",
1722
+ "name": "triggerElements",
1777
1723
  "type": "HTMLElement[]"
1778
1724
  }
1779
1725
  ],
1780
1726
  "slots": [
1781
1727
  {
1782
- "name": "appbar",
1783
- "description": "The appbar slot"
1728
+ "name": "trigger",
1729
+ "description": "The element that triggers the dropdown"
1784
1730
  },
1785
1731
  {
1786
1732
  "name": "",
1787
- "description": "The content slot"
1733
+ "description": "Default slot for the dropdown content"
1788
1734
  }
1789
1735
  ]
1790
1736
  },
1791
1737
  {
1792
- "name": "schmancy-content-drawer-main",
1793
- "path": "./src/content-drawer/main.ts",
1738
+ "name": "schmancy-dropdown-content",
1739
+ "path": "./src/dropdown/dropdown-content.ts",
1740
+ "description": "Content container for the schmancy-dropdown component.",
1794
1741
  "attributes": [
1795
1742
  {
1796
- "name": "minWidth",
1797
- "type": "number"
1743
+ "name": "width",
1744
+ "description": "Width of the dropdown content",
1745
+ "type": "string",
1746
+ "default": "\"auto\""
1747
+ },
1748
+ {
1749
+ "name": "maxHeight",
1750
+ "description": "Maximum height of the dropdown content",
1751
+ "type": "string",
1752
+ "default": "\"80vh\""
1753
+ },
1754
+ {
1755
+ "name": "shadow",
1756
+ "description": "Whether to render with a shadow",
1757
+ "type": "boolean",
1758
+ "default": "true"
1759
+ },
1760
+ {
1761
+ "name": "radius",
1762
+ "description": "Border radius style",
1763
+ "type": "\"sm\" | \"md\" | \"lg\" | \"none\" | \"full\"",
1764
+ "default": "\"md\""
1798
1765
  }
1799
1766
  ],
1800
1767
  "properties": [
@@ -1804,35 +1771,55 @@
1804
1771
  "default": "[null]"
1805
1772
  },
1806
1773
  {
1807
- "name": "minWidth",
1808
- "attribute": "minWidth",
1809
- "type": "number"
1774
+ "name": "width",
1775
+ "attribute": "width",
1776
+ "description": "Width of the dropdown content",
1777
+ "type": "string",
1778
+ "default": "\"auto\""
1810
1779
  },
1811
1780
  {
1812
- "name": "drawerMinWidth",
1813
- "type": "{ main: number; sheet: number; }"
1781
+ "name": "maxHeight",
1782
+ "attribute": "maxHeight",
1783
+ "description": "Maximum height of the dropdown content",
1784
+ "type": "string",
1785
+ "default": "\"80vh\""
1814
1786
  },
1815
1787
  {
1816
- "name": "mode",
1817
- "type": "TSchmancyContentDrawerSheetMode"
1788
+ "name": "shadow",
1789
+ "attribute": "shadow",
1790
+ "description": "Whether to render with a shadow",
1791
+ "type": "boolean",
1792
+ "default": "true"
1818
1793
  },
1819
1794
  {
1820
- "name": "maxHeight",
1821
- "type": "string"
1795
+ "name": "radius",
1796
+ "attribute": "radius",
1797
+ "description": "Border radius style",
1798
+ "type": "\"sm\" | \"md\" | \"lg\" | \"none\" | \"full\"",
1799
+ "default": "\"md\""
1822
1800
  }
1823
1801
  ],
1824
- "events": [
1802
+ "slots": [
1825
1803
  {
1826
- "name": "ContentDrawerResize"
1804
+ "name": "",
1805
+ "description": "Default slot for dropdown content."
1806
+ }
1807
+ ],
1808
+ "cssParts": [
1809
+ {
1810
+ "name": "content",
1811
+ "description": "The inner wrapper element; style to override panel\nbackgrounds, shadows, padding, or borders without shadow-root piercing."
1827
1812
  }
1828
1813
  ]
1829
1814
  },
1830
1815
  {
1831
- "name": "schmancy-content-drawer-sheet",
1832
- "path": "./src/content-drawer/sheet.ts",
1816
+ "name": "schmancy-expand-root",
1817
+ "path": "./src/expand/expand-root.component.ts",
1833
1818
  "attributes": [
1834
1819
  {
1835
- "name": "minWidth"
1820
+ "name": "type",
1821
+ "type": "TSurfaceColor",
1822
+ "default": "\"solid\""
1836
1823
  }
1837
1824
  ],
1838
1825
  "properties": [
@@ -1842,298 +1829,285 @@
1842
1829
  "default": "[null]"
1843
1830
  },
1844
1831
  {
1845
- "name": "minWidth",
1846
- "attribute": "minWidth"
1832
+ "name": "type",
1833
+ "attribute": "type",
1834
+ "type": "TSurfaceColor",
1835
+ "default": "\"solid\""
1847
1836
  },
1848
1837
  {
1849
- "name": "mode",
1850
- "type": "TSchmancyContentDrawerSheetMode"
1851
- },
1838
+ "name": "isOpen",
1839
+ "type": "boolean",
1840
+ "default": "false"
1841
+ }
1842
+ ]
1843
+ },
1844
+ {
1845
+ "name": "schmancy-expand",
1846
+ "path": "./src/expand/expand.component.ts",
1847
+ "attributes": [
1852
1848
  {
1853
- "name": "state",
1854
- "type": "TSchmancyContentDrawerSheetState"
1849
+ "name": "summary",
1850
+ "type": "string",
1851
+ "default": "\"\""
1855
1852
  },
1856
1853
  {
1857
- "name": "schmancyContentDrawerID"
1854
+ "name": "open",
1855
+ "type": "boolean",
1856
+ "default": "false"
1858
1857
  },
1859
1858
  {
1860
- "name": "sheet",
1861
- "type": "HTMLElement"
1859
+ "name": "summary-padding",
1860
+ "type": "string",
1861
+ "default": "\"\""
1862
1862
  },
1863
1863
  {
1864
- "name": "defaultSlot",
1865
- "type": "HTMLElement[]"
1864
+ "name": "content-padding",
1865
+ "type": "string",
1866
+ "default": "\"\""
1866
1867
  },
1867
1868
  {
1868
- "name": "drawerMinWidth",
1869
- "type": "{ main: number; sheet: number; }"
1869
+ "name": "hide-indicator",
1870
+ "type": "boolean",
1871
+ "default": "false"
1870
1872
  },
1871
1873
  {
1872
- "name": "maxHeight"
1873
- }
1874
- ],
1875
- "events": [
1874
+ "name": "indicator-rotate",
1875
+ "type": "number",
1876
+ "default": "90"
1877
+ },
1876
1878
  {
1877
- "name": "ContentDrawerResize"
1879
+ "name": "backdrop",
1880
+ "type": "boolean",
1881
+ "default": "true"
1878
1882
  },
1879
1883
  {
1880
- "name": "schmancy-content-drawer-overlay-dismiss"
1884
+ "name": "inline",
1885
+ "type": "boolean",
1886
+ "default": "false"
1881
1887
  }
1882
- ]
1883
- },
1884
- {
1885
- "name": "schmancy-date-range-inline",
1886
- "path": "./src/date-range-inline/date-range-inline.ts",
1887
- "description": "Smart inline date range picker that handles all the heavy lifting.\r\nAuto-corrects invalid ranges, provides smart defaults, and validates dates.",
1888
- "attributes": [
1888
+ ],
1889
+ "properties": [
1889
1890
  {
1890
- "name": "type",
1891
- "description": "Input type - 'date' or 'datetime-local'",
1892
- "type": "\"date\" | \"datetime-local\"",
1893
- "default": "\"date\""
1891
+ "name": "styles",
1892
+ "type": "CSSResult[]",
1893
+ "default": "[null]"
1894
1894
  },
1895
1895
  {
1896
- "name": "dateFrom",
1897
- "description": "From date configuration",
1898
- "type": "{ label: string; value: string; }",
1899
- "default": "{\"label\":\"From\",\"value\":\"\"}"
1896
+ "name": "summary",
1897
+ "attribute": "summary",
1898
+ "type": "string",
1899
+ "default": "\"\""
1900
1900
  },
1901
1901
  {
1902
- "name": "dateTo",
1903
- "description": "To date configuration",
1904
- "type": "{ label: string; value: string; }",
1905
- "default": "{\"label\":\"To\",\"value\":\"\"}"
1902
+ "name": "open",
1903
+ "attribute": "open",
1904
+ "type": "boolean",
1905
+ "default": "false"
1906
1906
  },
1907
1907
  {
1908
- "name": "minDate",
1909
- "description": "Minimum allowed date",
1910
- "type": "string | undefined"
1908
+ "name": "summaryPadding",
1909
+ "attribute": "summary-padding",
1910
+ "type": "string",
1911
+ "default": "\"\""
1911
1912
  },
1912
1913
  {
1913
- "name": "maxDate",
1914
- "description": "Maximum allowed date",
1915
- "type": "string | undefined"
1914
+ "name": "contentPadding",
1915
+ "attribute": "content-padding",
1916
+ "type": "string",
1917
+ "default": "\"\""
1916
1918
  },
1917
1919
  {
1918
- "name": "compact",
1919
- "description": "Compact mode for smaller UI",
1920
+ "name": "hideIndicator",
1921
+ "attribute": "hide-indicator",
1920
1922
  "type": "boolean",
1921
1923
  "default": "false"
1922
1924
  },
1923
1925
  {
1924
- "name": "autoCorrect",
1925
- "description": "Auto-correct invalid date ranges",
1926
+ "name": "indicatorRotate",
1927
+ "attribute": "indicator-rotate",
1928
+ "type": "number",
1929
+ "default": "90"
1930
+ },
1931
+ {
1932
+ "name": "backdrop",
1933
+ "attribute": "backdrop",
1926
1934
  "type": "boolean",
1927
1935
  "default": "true"
1928
1936
  },
1929
1937
  {
1930
- "name": "minGap",
1931
- "description": "Minimum gap between dates (in days)",
1932
- "type": "number",
1933
- "default": "0"
1938
+ "name": "inline",
1939
+ "attribute": "inline",
1940
+ "type": "boolean",
1941
+ "default": "false"
1942
+ }
1943
+ ]
1944
+ },
1945
+ {
1946
+ "name": "schmancy-fab",
1947
+ "path": "./src/fab/fab.ts",
1948
+ "description": "Material 3 Floating Action Button.\n\nMirrors the `md-fab` reference implementation\n(github.com/material-components/material-web) and the M3 spec\n(m3.material.io/components/floating-action-button): four colour\nvariants, three container sizes, an extended form (set `label`),\nand a `lowered` elevation register. Per M3 guidance a FAB is never\ndisabled, so there is no `disabled` property.\n\nSizing, shape, icon size and elevation are M3 design tokens expressed\nas `:host` rules (the same token-driven model as `md-fab`'s SCSS);\ncolour roles and the state layer are schmancy theme utilities. The\nhost shrink-wraps the inner button and clips its rounded shape.",
1949
+ "attributes": [
1950
+ {
1951
+ "name": "variant",
1952
+ "description": "Colour variant. M3 maps each to a container + on-container role.",
1953
+ "type": "FabVariant",
1954
+ "default": "\"'surface'\""
1934
1955
  },
1935
1956
  {
1936
- "name": "maxGap",
1937
- "description": "Maximum gap between dates (in days)",
1938
- "type": "number | undefined"
1957
+ "name": "size",
1958
+ "description": "Container size. Ignored while extended (extended is always 56dp tall).",
1959
+ "type": "FabSize",
1960
+ "default": "\"'medium'\""
1939
1961
  },
1940
1962
  {
1941
- "name": "defaultGap",
1942
- "description": "Default gap when auto-setting dates (in days)",
1943
- "type": "number",
1944
- "default": "1"
1963
+ "name": "label",
1964
+ "description": "Extended-FAB label. A non-empty value switches the FAB to its\nextended form (icon + text), exactly as `md-fab` derives extended\nfrom a truthy label.",
1965
+ "type": "string",
1966
+ "default": "\"\""
1945
1967
  },
1946
1968
  {
1947
- "name": "allowSameDate",
1948
- "description": "Whether to allow same date selection",
1969
+ "name": "extended",
1970
+ "description": "Reflected mirror of \"label is non-empty\" so `:host([extended])`\ncan drive the extended geometry. Synced from `label`; read it,\ndon't set it.",
1949
1971
  "type": "boolean",
1950
1972
  "default": "false"
1973
+ },
1974
+ {
1975
+ "name": "lowered",
1976
+ "description": "Lowers the FAB's elevation register (M3 lowered FAB).",
1977
+ "type": "boolean",
1978
+ "default": "\"false\""
1979
+ },
1980
+ {
1981
+ "name": "aria-label",
1982
+ "type": "string"
1951
1983
  }
1952
1984
  ],
1953
1985
  "properties": [
1954
1986
  {
1955
- "name": "type",
1956
- "attribute": "type",
1957
- "description": "Input type - 'date' or 'datetime-local'",
1958
- "type": "\"date\" | \"datetime-local\"",
1959
- "default": "\"date\""
1987
+ "name": "styles",
1988
+ "type": "CSSResult[]",
1989
+ "default": "[null]"
1960
1990
  },
1961
1991
  {
1962
- "name": "dateFrom",
1963
- "attribute": "dateFrom",
1964
- "description": "From date configuration",
1965
- "type": "{ label: string; value: string; }",
1966
- "default": "{\"label\":\"From\",\"value\":\"\"}"
1992
+ "name": "variant",
1993
+ "attribute": "variant",
1994
+ "description": "Colour variant. M3 maps each to a container + on-container role.",
1995
+ "type": "FabVariant",
1996
+ "default": "\"'surface'\""
1967
1997
  },
1968
1998
  {
1969
- "name": "dateTo",
1970
- "attribute": "dateTo",
1971
- "description": "To date configuration",
1972
- "type": "{ label: string; value: string; }",
1973
- "default": "{\"label\":\"To\",\"value\":\"\"}"
1974
- },
1975
- {
1976
- "name": "minDate",
1977
- "attribute": "minDate",
1978
- "description": "Minimum allowed date",
1979
- "type": "string | undefined"
1999
+ "name": "size",
2000
+ "attribute": "size",
2001
+ "description": "Container size. Ignored while extended (extended is always 56dp tall).",
2002
+ "type": "FabSize",
2003
+ "default": "\"'medium'\""
1980
2004
  },
1981
2005
  {
1982
- "name": "maxDate",
1983
- "attribute": "maxDate",
1984
- "description": "Maximum allowed date",
1985
- "type": "string | undefined"
2006
+ "name": "label",
2007
+ "attribute": "label",
2008
+ "description": "Extended-FAB label. A non-empty value switches the FAB to its\nextended form (icon + text), exactly as `md-fab` derives extended\nfrom a truthy label.",
2009
+ "type": "string",
2010
+ "default": "\"\""
1986
2011
  },
1987
2012
  {
1988
- "name": "compact",
1989
- "attribute": "compact",
1990
- "description": "Compact mode for smaller UI",
2013
+ "name": "extended",
2014
+ "attribute": "extended",
2015
+ "description": "Reflected mirror of \"label is non-empty\" so `:host([extended])`\ncan drive the extended geometry. Synced from `label`; read it,\ndon't set it.",
1991
2016
  "type": "boolean",
1992
2017
  "default": "false"
1993
2018
  },
1994
2019
  {
1995
- "name": "autoCorrect",
1996
- "attribute": "autoCorrect",
1997
- "description": "Auto-correct invalid date ranges",
2020
+ "name": "lowered",
2021
+ "attribute": "lowered",
2022
+ "description": "Lowers the FAB's elevation register (M3 lowered FAB).",
1998
2023
  "type": "boolean",
1999
- "default": "true"
2000
- },
2001
- {
2002
- "name": "minGap",
2003
- "attribute": "minGap",
2004
- "description": "Minimum gap between dates (in days)",
2005
- "type": "number",
2006
- "default": "0"
2007
- },
2008
- {
2009
- "name": "maxGap",
2010
- "attribute": "maxGap",
2011
- "description": "Maximum gap between dates (in days)",
2012
- "type": "number | undefined"
2013
- },
2014
- {
2015
- "name": "defaultGap",
2016
- "attribute": "defaultGap",
2017
- "description": "Default gap when auto-setting dates (in days)",
2018
- "type": "number",
2019
- "default": "1"
2024
+ "default": "\"false\""
2020
2025
  },
2021
2026
  {
2022
- "name": "allowSameDate",
2023
- "attribute": "allowSameDate",
2024
- "description": "Whether to allow same date selection",
2025
- "type": "boolean",
2026
- "default": "false"
2027
+ "name": "ariaLabel",
2028
+ "attribute": "aria-label",
2029
+ "type": "string"
2027
2030
  }
2028
2031
  ],
2029
- "events": [
2030
- {
2031
- "name": "change"
2032
- }
2033
- ]
2034
- },
2035
- {
2036
- "name": "schmancy-delay",
2037
- "path": "./src/delay/delay.ts",
2038
- "attributes": [
2039
- {
2040
- "name": "delay",
2041
- "type": "number",
2042
- "default": "0"
2043
- },
2044
- {
2045
- "name": "motion",
2046
- "type": "string",
2047
- "default": "\"flyBelow\""
2048
- },
2032
+ "slots": [
2049
2033
  {
2050
- "name": "once",
2051
- "type": "boolean | undefined",
2052
- "default": "true"
2034
+ "name": "",
2035
+ "description": "The icon (typically `<schmancy-icon>`)."
2053
2036
  }
2054
2037
  ],
2055
- "properties": [
2056
- {
2057
- "name": "delay",
2058
- "attribute": "delay",
2059
- "type": "number",
2060
- "default": "0"
2061
- },
2062
- {
2063
- "name": "motion",
2064
- "attribute": "motion",
2065
- "type": "string",
2066
- "default": "\"flyBelow\""
2067
- },
2068
- {
2069
- "name": "parentDelay",
2070
- "type": "number",
2071
- "default": "0"
2072
- },
2073
- {
2074
- "name": "effectiveDelay",
2075
- "type": "number",
2076
- "default": "0"
2077
- },
2078
- {
2079
- "name": "once",
2080
- "attribute": "once",
2081
- "type": "boolean | undefined",
2082
- "default": "true"
2083
- },
2038
+ "cssParts": [
2084
2039
  {
2085
- "name": "assignedElements",
2086
- "type": "HTMLElement[]"
2040
+ "name": "base",
2041
+ "description": "The underlying native `<button>`."
2087
2042
  }
2088
2043
  ]
2089
2044
  },
2090
2045
  {
2091
- "name": "schmancy-details",
2092
- "path": "./src/details/details.ts",
2046
+ "name": "schmancy-float",
2047
+ "path": "./src/float/float.ts",
2093
2048
  "attributes": [
2094
2049
  {
2095
- "name": "summary",
2050
+ "name": "id",
2096
2051
  "type": "string",
2097
- "default": "\"\""
2052
+ "default": "\"default\""
2098
2053
  },
2099
2054
  {
2100
- "name": "open",
2101
- "type": "boolean"
2055
+ "name": "expandedWidth",
2056
+ "description": "Override the expanded panel width (e.g. '320px', '24rem'). Defaults to responsive sizing.",
2057
+ "type": "string | undefined"
2102
2058
  },
2103
2059
  {
2104
- "name": "indicator-placement",
2105
- "type": "\"start\" | \"end\"",
2106
- "default": "\"end\""
2060
+ "name": "expandedHeight",
2061
+ "description": "Override the expanded panel height (e.g. '400px', '50vh').",
2062
+ "type": "string | undefined"
2107
2063
  },
2108
2064
  {
2109
- "name": "hide-indicator",
2065
+ "name": "lowered",
2066
+ "description": "When true, uses a lower elevation shadow in the collapsed state.",
2110
2067
  "type": "boolean",
2111
2068
  "default": "false"
2112
2069
  },
2113
2070
  {
2114
- "name": "indicator-rotate",
2115
- "type": "number",
2116
- "default": "90"
2071
+ "name": "corner",
2072
+ "description": "Corner the window is anchored to.",
2073
+ "type": "SnapCorner",
2074
+ "default": "\"bottom-right\""
2117
2075
  },
2118
2076
  {
2119
- "name": "locked",
2077
+ "name": "resizable",
2078
+ "description": "When true, window can be resized by the user.",
2120
2079
  "type": "boolean",
2121
2080
  "default": "false"
2122
2081
  },
2123
2082
  {
2124
- "name": "overlay",
2083
+ "name": "freePosition",
2084
+ "description": "When true, window stays at its dragged position instead of snapping to a corner.",
2125
2085
  "type": "boolean",
2126
2086
  "default": "false"
2127
2087
  },
2128
2088
  {
2129
- "name": "summary-padding",
2130
- "type": "string",
2131
- "default": "\"p-3\""
2089
+ "name": "visualState",
2090
+ "description": "Visual state of the window (minimized, normal, maximized).",
2091
+ "type": "WindowVisualState",
2092
+ "default": "\"normal\""
2132
2093
  },
2133
2094
  {
2134
- "name": "content-padding",
2135
- "type": "string",
2136
- "default": "\"p-3\""
2095
+ "name": "minWidth",
2096
+ "description": "Minimum width in pixels.",
2097
+ "type": "number",
2098
+ "default": "280"
2099
+ },
2100
+ {
2101
+ "name": "minHeight",
2102
+ "description": "Minimum height in pixels.",
2103
+ "type": "number",
2104
+ "default": "200"
2105
+ },
2106
+ {
2107
+ "name": "open",
2108
+ "description": "Whether the body is expanded.",
2109
+ "type": "boolean",
2110
+ "default": "false"
2137
2111
  }
2138
2112
  ],
2139
2113
  "properties": [
@@ -2143,229 +2117,329 @@
2143
2117
  "default": "[null]"
2144
2118
  },
2145
2119
  {
2146
- "name": "summary",
2147
- "attribute": "summary",
2120
+ "name": "id",
2121
+ "attribute": "id",
2148
2122
  "type": "string",
2149
- "default": "\"\""
2123
+ "default": "\"default\""
2150
2124
  },
2151
2125
  {
2152
- "name": "open",
2153
- "attribute": "open",
2154
- "type": "boolean"
2126
+ "name": "expandedWidth",
2127
+ "attribute": "expandedWidth",
2128
+ "description": "Override the expanded panel width (e.g. '320px', '24rem'). Defaults to responsive sizing.",
2129
+ "type": "string | undefined"
2155
2130
  },
2156
2131
  {
2157
- "name": "indicatorPlacement",
2158
- "attribute": "indicator-placement",
2159
- "type": "\"start\" | \"end\"",
2160
- "default": "\"end\""
2132
+ "name": "expandedHeight",
2133
+ "attribute": "expandedHeight",
2134
+ "description": "Override the expanded panel height (e.g. '400px', '50vh').",
2135
+ "type": "string | undefined"
2161
2136
  },
2162
2137
  {
2163
- "name": "hideIndicator",
2164
- "attribute": "hide-indicator",
2138
+ "name": "lowered",
2139
+ "attribute": "lowered",
2140
+ "description": "When true, uses a lower elevation shadow in the collapsed state.",
2165
2141
  "type": "boolean",
2166
2142
  "default": "false"
2167
2143
  },
2168
2144
  {
2169
- "name": "indicatorRotate",
2170
- "attribute": "indicator-rotate",
2171
- "type": "number",
2172
- "default": "90"
2145
+ "name": "corner",
2146
+ "attribute": "corner",
2147
+ "description": "Corner the window is anchored to.",
2148
+ "type": "SnapCorner",
2149
+ "default": "\"bottom-right\""
2173
2150
  },
2174
2151
  {
2175
- "name": "locked",
2176
- "attribute": "locked",
2152
+ "name": "resizable",
2153
+ "attribute": "resizable",
2154
+ "description": "When true, window can be resized by the user.",
2177
2155
  "type": "boolean",
2178
2156
  "default": "false"
2179
2157
  },
2180
2158
  {
2181
- "name": "overlay",
2182
- "attribute": "overlay",
2159
+ "name": "freePosition",
2160
+ "attribute": "freePosition",
2161
+ "description": "When true, window stays at its dragged position instead of snapping to a corner.",
2183
2162
  "type": "boolean",
2184
2163
  "default": "false"
2185
2164
  },
2186
2165
  {
2187
- "name": "summaryPadding",
2188
- "attribute": "summary-padding",
2189
- "type": "string",
2190
- "default": "\"p-3\""
2166
+ "name": "visualState",
2167
+ "attribute": "visualState",
2168
+ "description": "Visual state of the window (minimized, normal, maximized).",
2169
+ "type": "WindowVisualState",
2170
+ "default": "\"normal\""
2191
2171
  },
2192
2172
  {
2193
- "name": "contentPadding",
2194
- "attribute": "content-padding",
2195
- "type": "string",
2196
- "default": "\"p-3\""
2173
+ "name": "minWidth",
2174
+ "attribute": "minWidth",
2175
+ "description": "Minimum width in pixels.",
2176
+ "type": "number",
2177
+ "default": "280"
2197
2178
  },
2198
2179
  {
2199
- "name": "type",
2200
- "type": "string",
2201
- "default": "\"solid\""
2180
+ "name": "minHeight",
2181
+ "attribute": "minHeight",
2182
+ "description": "Minimum height in pixels.",
2183
+ "type": "number",
2184
+ "default": "200"
2202
2185
  },
2203
2186
  {
2204
- "name": "rounded",
2205
- "type": "string",
2206
- "default": "\"all\""
2187
+ "name": "open",
2188
+ "attribute": "open",
2189
+ "description": "Whether the body is expanded.",
2190
+ "type": "boolean",
2191
+ "default": "false"
2207
2192
  }
2208
2193
  ]
2209
2194
  },
2210
2195
  {
2211
- "name": "schmancy-divider",
2212
- "path": "./src/divider/divider.ts",
2196
+ "name": "schmancy-autocomplete",
2197
+ "path": "./src/form/fields/autocomplete/autocomplete.ts",
2198
+ "description": "Autocomplete input component with filtering and multi-select support.",
2213
2199
  "attributes": [
2214
2200
  {
2215
- "name": "outline",
2216
- "type": "\"default\" | \"variant\"",
2217
- "default": "\"variant\""
2201
+ "name": "maxHeight",
2202
+ "type": "string",
2203
+ "default": "\"300px\""
2218
2204
  },
2219
2205
  {
2220
- "name": "vertical",
2206
+ "name": "description",
2207
+ "type": "string",
2208
+ "default": "\"\""
2209
+ },
2210
+ {
2211
+ "name": "size",
2212
+ "type": "InputSize",
2213
+ "default": "\"md\""
2214
+ },
2215
+ {
2216
+ "name": "autocomplete",
2217
+ "type": "string",
2218
+ "default": "\"off\""
2219
+ },
2220
+ {
2221
+ "name": "debounceMs",
2222
+ "type": "number",
2223
+ "default": "200"
2224
+ },
2225
+ {
2226
+ "name": "similarityThreshold",
2227
+ "type": "number",
2228
+ "default": "0.3"
2229
+ },
2230
+ {
2231
+ "name": "placeholder",
2232
+ "description": "Placeholder text for the input",
2233
+ "type": "string",
2234
+ "default": "\"\""
2235
+ },
2236
+ {
2237
+ "name": "multi",
2238
+ "description": "Enable multi-select mode",
2221
2239
  "type": "boolean",
2222
2240
  "default": "false"
2223
2241
  },
2224
2242
  {
2225
- "name": "grow",
2226
- "type": "\"start\" | \"end\" | \"both\"",
2227
- "default": "\"start\""
2243
+ "name": "value",
2244
+ "description": "Selected value (single select mode)",
2245
+ "type": "string"
2228
2246
  },
2229
2247
  {
2230
- "name": "orientation",
2231
- "type": "\"horizontal\" | \"vertical\"",
2232
- "deprecatedMessage": "Use `vertical` property instead. Will be removed in next major version."
2248
+ "name": "values",
2249
+ "description": "Selected values (multi-select mode)",
2250
+ "type": "string[]"
2233
2251
  }
2234
2252
  ],
2235
2253
  "properties": [
2236
2254
  {
2237
- "name": "styles",
2238
- "type": "CSSResult[]",
2239
- "default": "[null]"
2255
+ "name": "maxHeight",
2256
+ "attribute": "maxHeight",
2257
+ "type": "string",
2258
+ "default": "\"300px\""
2240
2259
  },
2241
2260
  {
2242
- "name": "outline",
2243
- "attribute": "outline",
2244
- "type": "\"default\" | \"variant\"",
2245
- "default": "\"variant\""
2261
+ "name": "description",
2262
+ "attribute": "description",
2263
+ "type": "string",
2264
+ "default": "\"\""
2246
2265
  },
2247
2266
  {
2248
- "name": "vertical",
2249
- "attribute": "vertical",
2267
+ "name": "size",
2268
+ "attribute": "size",
2269
+ "type": "InputSize",
2270
+ "default": "\"md\""
2271
+ },
2272
+ {
2273
+ "name": "autocomplete",
2274
+ "attribute": "autocomplete",
2275
+ "type": "string",
2276
+ "default": "\"off\""
2277
+ },
2278
+ {
2279
+ "name": "debounceMs",
2280
+ "attribute": "debounceMs",
2281
+ "type": "number",
2282
+ "default": "200"
2283
+ },
2284
+ {
2285
+ "name": "similarityThreshold",
2286
+ "attribute": "similarityThreshold",
2287
+ "type": "number",
2288
+ "default": "0.3"
2289
+ },
2290
+ {
2291
+ "name": "name",
2292
+ "description": "Name attribute for form submission",
2293
+ "type": "string"
2294
+ },
2295
+ {
2296
+ "name": "label",
2297
+ "description": "Label text displayed above the input",
2298
+ "type": "string"
2299
+ },
2300
+ {
2301
+ "name": "placeholder",
2302
+ "attribute": "placeholder",
2303
+ "description": "Placeholder text for the input",
2304
+ "type": "string",
2305
+ "default": "\"\""
2306
+ },
2307
+ {
2308
+ "name": "required",
2309
+ "description": "Whether the field is required",
2310
+ "type": "boolean"
2311
+ },
2312
+ {
2313
+ "name": "multi",
2314
+ "attribute": "multi",
2315
+ "description": "Enable multi-select mode",
2250
2316
  "type": "boolean",
2251
2317
  "default": "false"
2252
2318
  },
2253
2319
  {
2254
- "name": "grow",
2255
- "attribute": "grow",
2256
- "type": "\"start\" | \"end\" | \"both\"",
2257
- "default": "\"start\""
2320
+ "name": "value",
2321
+ "attribute": "value",
2322
+ "description": "Selected value (single select mode)",
2323
+ "type": "string"
2258
2324
  },
2259
2325
  {
2260
- "name": "orientation",
2261
- "attribute": "orientation",
2262
- "type": "\"horizontal\" | \"vertical\"",
2263
- "deprecatedMessage": "Use `vertical` property instead. Will be removed in next major version."
2326
+ "name": "values",
2327
+ "attribute": "values",
2328
+ "description": "Selected values (multi-select mode)",
2329
+ "type": "string[]"
2330
+ },
2331
+ {
2332
+ "name": "cssText",
2333
+ "type": "string"
2334
+ },
2335
+ {
2336
+ "name": "styleSheet",
2337
+ "type": "CSSStyleSheet | undefined"
2338
+ }
2339
+ ],
2340
+ "events": [
2341
+ {
2342
+ "name": "change"
2264
2343
  }
2265
2344
  ]
2266
2345
  },
2267
2346
  {
2268
- "name": "schmancy-dropdown",
2269
- "path": "./src/dropdown/dropdown-component.ts",
2270
- "description": "A dropdown component that displays content when triggered.",
2347
+ "name": "schmancy-checkbox",
2348
+ "path": "./src/form/fields/checkbox/checkbox.ts",
2271
2349
  "attributes": [
2272
2350
  {
2273
- "name": "open",
2274
- "description": "Whether the dropdown is currently open",
2351
+ "name": "value",
2352
+ "description": "Boolean checked state. Test contract: `cb.value = true` flips the state.\nThe FormData *string* is read from `true-value` attribute (or `'on'`\ndefault) — kept separate from `value` to keep the boolean-state ergonomic.",
2275
2353
  "type": "boolean",
2276
2354
  "default": "false"
2277
2355
  },
2278
2356
  {
2279
- "name": "placement",
2280
- "description": "Placement of the dropdown relative to the trigger",
2281
- "type": "\"top\" | \"top-start\" | \"top-end\" | \"right\" | \"right-start\" | \"right-end\" | \"bottom\" | \"bottom-start\" | \"bottom-end\" | \"left\" | \"left-start\" | \"left-end\"",
2282
- "default": "\"bottom-start\""
2357
+ "name": "checked",
2358
+ "description": "Alias for `value` for read-side ergonomics.",
2359
+ "type": "boolean"
2283
2360
  },
2284
2361
  {
2285
- "name": "distance",
2286
- "description": "Offset distance in pixels",
2287
- "type": "number",
2288
- "default": "8"
2362
+ "name": "size",
2363
+ "description": "M3-aligned sizes: 24dp (xxs) → 32dp (xs) → 40dp (sm) → 48dp (md) → 56dp (lg).",
2364
+ "type": "\"xs\" | \"sm\" | \"md\" | \"lg\" | \"xxs\"",
2365
+ "default": "\"md\""
2289
2366
  }
2290
2367
  ],
2291
2368
  "properties": [
2292
2369
  {
2293
- "name": "open",
2294
- "attribute": "open",
2295
- "description": "Whether the dropdown is currently open",
2370
+ "name": "value",
2371
+ "attribute": "value",
2372
+ "description": "Boolean checked state. Test contract: `cb.value = true` flips the state.\nThe FormData *string* is read from `true-value` attribute (or `'on'`\ndefault) — kept separate from `value` to keep the boolean-state ergonomic.",
2296
2373
  "type": "boolean",
2297
2374
  "default": "false"
2298
2375
  },
2299
2376
  {
2300
- "name": "placement",
2301
- "attribute": "placement",
2302
- "description": "Placement of the dropdown relative to the trigger",
2303
- "type": "\"top\" | \"top-start\" | \"top-end\" | \"right\" | \"right-start\" | \"right-end\" | \"bottom\" | \"bottom-start\" | \"bottom-end\" | \"left\" | \"left-start\" | \"left-end\"",
2304
- "default": "\"bottom-start\""
2305
- },
2306
- {
2307
- "name": "distance",
2308
- "attribute": "distance",
2309
- "description": "Offset distance in pixels",
2310
- "type": "number",
2311
- "default": "8"
2312
- },
2313
- {
2314
- "name": "triggerContainer",
2315
- "type": "HTMLElement"
2316
- },
2317
- {
2318
- "name": "contentContainer",
2319
- "type": "HTMLElement"
2377
+ "name": "checked",
2378
+ "attribute": "checked",
2379
+ "description": "Alias for `value` for read-side ergonomics.",
2380
+ "type": "boolean"
2320
2381
  },
2321
2382
  {
2322
- "name": "contentElements",
2323
- "type": "HTMLElement[]"
2324
- },
2383
+ "name": "size",
2384
+ "attribute": "size",
2385
+ "description": "M3-aligned sizes: 24dp (xxs) → 32dp (xs) → 40dp (sm) → 48dp (md) → 56dp (lg).",
2386
+ "type": "\"xs\" | \"sm\" | \"md\" | \"lg\" | \"xxs\"",
2387
+ "default": "\"md\""
2388
+ }
2389
+ ],
2390
+ "events": [
2325
2391
  {
2326
- "name": "triggerElements",
2327
- "type": "HTMLElement[]"
2392
+ "name": "change",
2393
+ "description": "Event fired when the checkbox value changes."
2328
2394
  }
2329
2395
  ],
2330
2396
  "slots": [
2331
- {
2332
- "name": "trigger",
2333
- "description": "The element that triggers the dropdown"
2334
- },
2335
2397
  {
2336
2398
  "name": "",
2337
- "description": "Default slot for the dropdown content"
2399
+ "description": "The label for the checkbox."
2338
2400
  }
2339
2401
  ]
2340
2402
  },
2341
2403
  {
2342
- "name": "schmancy-dropdown-content",
2343
- "path": "./src/dropdown/dropdown-content.ts",
2344
- "description": "Content container for the schmancy-dropdown component.",
2404
+ "name": "schmancy-assist-chip",
2405
+ "path": "./src/form/fields/chips/assist-chip.ts",
2406
+ "description": "Assist chip component - prompts user actions like opening calendar events or sharing content\nPure Schmancy implementation with Tailwind CSS and RxJS state management",
2345
2407
  "attributes": [
2346
2408
  {
2347
- "name": "width",
2348
- "description": "Width of the dropdown content",
2409
+ "name": "value",
2410
+ "description": "Value identifier for the chip",
2349
2411
  "type": "string",
2350
- "default": "\"auto\""
2412
+ "default": "\"\""
2351
2413
  },
2352
2414
  {
2353
- "name": "maxHeight",
2354
- "description": "Maximum height of the dropdown content",
2415
+ "name": "icon",
2416
+ "description": "Optional icon name (Material Symbols)",
2355
2417
  "type": "string",
2356
- "default": "\"80vh\""
2418
+ "default": "\"\""
2357
2419
  },
2358
2420
  {
2359
- "name": "shadow",
2360
- "description": "Whether to render with a shadow",
2421
+ "name": "href",
2422
+ "description": "Optional href for navigation",
2423
+ "type": "string",
2424
+ "default": "\"\""
2425
+ },
2426
+ {
2427
+ "name": "target",
2428
+ "description": "Target for navigation (e.g., '_blank')",
2429
+ "type": "string",
2430
+ "default": "\"\""
2431
+ },
2432
+ {
2433
+ "name": "disabled",
2434
+ "description": "Disable the chip",
2361
2435
  "type": "boolean",
2362
- "default": "true"
2436
+ "default": "false"
2363
2437
  },
2364
2438
  {
2365
- "name": "radius",
2366
- "description": "Border radius style",
2367
- "type": "\"sm\" | \"md\" | \"lg\" | \"none\" | \"full\"",
2368
- "default": "\"md\""
2439
+ "name": "elevated",
2440
+ "description": "Elevated style variant - true by default per M3 spec for assist chips",
2441
+ "type": "boolean",
2442
+ "default": "true"
2369
2443
  }
2370
2444
  ],
2371
2445
  "properties": [
@@ -2375,117 +2449,148 @@
2375
2449
  "default": "[null]"
2376
2450
  },
2377
2451
  {
2378
- "name": "width",
2379
- "attribute": "width",
2380
- "description": "Width of the dropdown content",
2452
+ "name": "value",
2453
+ "attribute": "value",
2454
+ "description": "Value identifier for the chip",
2381
2455
  "type": "string",
2382
- "default": "\"auto\""
2456
+ "default": "\"\""
2383
2457
  },
2384
2458
  {
2385
- "name": "maxHeight",
2386
- "attribute": "maxHeight",
2387
- "description": "Maximum height of the dropdown content",
2459
+ "name": "icon",
2460
+ "attribute": "icon",
2461
+ "description": "Optional icon name (Material Symbols)",
2388
2462
  "type": "string",
2389
- "default": "\"80vh\""
2463
+ "default": "\"\""
2390
2464
  },
2391
2465
  {
2392
- "name": "shadow",
2393
- "attribute": "shadow",
2394
- "description": "Whether to render with a shadow",
2466
+ "name": "href",
2467
+ "attribute": "href",
2468
+ "description": "Optional href for navigation",
2469
+ "type": "string",
2470
+ "default": "\"\""
2471
+ },
2472
+ {
2473
+ "name": "target",
2474
+ "attribute": "target",
2475
+ "description": "Target for navigation (e.g., '_blank')",
2476
+ "type": "string",
2477
+ "default": "\"\""
2478
+ },
2479
+ {
2480
+ "name": "disabled",
2481
+ "attribute": "disabled",
2482
+ "description": "Disable the chip",
2395
2483
  "type": "boolean",
2396
- "default": "true"
2484
+ "default": "false"
2397
2485
  },
2398
2486
  {
2399
- "name": "radius",
2400
- "attribute": "radius",
2401
- "description": "Border radius style",
2402
- "type": "\"sm\" | \"md\" | \"lg\" | \"none\" | \"full\"",
2403
- "default": "\"md\""
2487
+ "name": "elevated",
2488
+ "attribute": "elevated",
2489
+ "description": "Elevated style variant - true by default per M3 spec for assist chips",
2490
+ "type": "boolean",
2491
+ "default": "true"
2404
2492
  }
2405
2493
  ],
2406
- "slots": [
2494
+ "events": [
2407
2495
  {
2408
- "name": "",
2409
- "description": "Default slot for dropdown content."
2410
- }
2411
- ],
2412
- "cssParts": [
2496
+ "name": "action"
2497
+ },
2413
2498
  {
2414
- "name": "content",
2415
- "description": "The inner wrapper element; style to override panel\nbackgrounds, shadows, padding, or borders without shadow-root piercing."
2499
+ "name": "click"
2416
2500
  }
2417
2501
  ]
2418
2502
  },
2419
2503
  {
2420
- "name": "schmancy-expand-root",
2421
- "path": "./src/expand/expand-root.component.ts",
2504
+ "name": "schmancy-chips",
2505
+ "path": "./src/form/fields/chips/chips.ts",
2422
2506
  "attributes": [
2423
2507
  {
2424
- "name": "type",
2425
- "type": "TSurfaceColor",
2426
- "default": "\"solid\""
2508
+ "name": "multi",
2509
+ "description": "Whether multiple chips can be selected simultaneously.",
2510
+ "type": "boolean",
2511
+ "default": "false"
2512
+ },
2513
+ {
2514
+ "name": "value",
2515
+ "type": "string | string[]"
2516
+ },
2517
+ {
2518
+ "name": "wrap",
2519
+ "type": "boolean",
2520
+ "default": "false"
2521
+ },
2522
+ {
2523
+ "name": "justify",
2524
+ "type": "\"start\" | \"end\" | \"center\"",
2525
+ "default": "\"start\""
2427
2526
  }
2428
2527
  ],
2429
2528
  "properties": [
2430
2529
  {
2431
- "name": "styles",
2432
- "type": "CSSResult[]",
2433
- "default": "[null]"
2530
+ "name": "multi",
2531
+ "attribute": "multi",
2532
+ "description": "Whether multiple chips can be selected simultaneously.",
2533
+ "type": "boolean",
2534
+ "default": "false"
2434
2535
  },
2435
2536
  {
2436
- "name": "type",
2437
- "attribute": "type",
2438
- "type": "TSurfaceColor",
2439
- "default": "\"solid\""
2537
+ "name": "value",
2538
+ "attribute": "value",
2539
+ "type": "string | string[]"
2540
+ },
2541
+ {
2542
+ "name": "values",
2543
+ "description": "Typed convenience alias for multi-mode consumers.",
2544
+ "type": "string[]"
2545
+ },
2546
+ {
2547
+ "name": "wrap",
2548
+ "attribute": "wrap",
2549
+ "type": "boolean",
2550
+ "default": "false"
2551
+ },
2552
+ {
2553
+ "name": "justify",
2554
+ "attribute": "justify",
2555
+ "type": "\"start\" | \"end\" | \"center\"",
2556
+ "default": "\"start\""
2440
2557
  },
2441
2558
  {
2442
- "name": "isOpen",
2443
- "type": "boolean",
2444
- "default": "false"
2559
+ "name": "chips",
2560
+ "type": "(HTMLElement | SchmancyFilterChip)[]"
2445
2561
  }
2446
2562
  ]
2447
2563
  },
2448
2564
  {
2449
- "name": "schmancy-expand",
2450
- "path": "./src/expand/expand.component.ts",
2565
+ "name": "schmancy-filter-chip",
2566
+ "path": "./src/form/fields/chips/filter-chip.ts",
2567
+ "description": "Filter chip component for content filtering.\n\nFilter chips are the ONLY chip type that maintains persistent selected state.\nThey are used for filtering content by toggling on/off different filter criteria.",
2451
2568
  "attributes": [
2452
2569
  {
2453
- "name": "summary",
2454
- "type": "string",
2455
- "default": "\"\""
2456
- },
2457
- {
2458
- "name": "open",
2459
- "type": "boolean",
2460
- "default": "false"
2461
- },
2462
- {
2463
- "name": "summary-padding",
2570
+ "name": "value",
2571
+ "description": "Unique identifier for this filter chip",
2464
2572
  "type": "string",
2465
2573
  "default": "\"\""
2466
2574
  },
2467
2575
  {
2468
- "name": "content-padding",
2469
- "type": "string",
2470
- "default": "\"\""
2576
+ "name": "selected",
2577
+ "type": "boolean"
2471
2578
  },
2472
2579
  {
2473
- "name": "hide-indicator",
2580
+ "name": "removable",
2581
+ "description": "Whether to show a remove button",
2474
2582
  "type": "boolean",
2475
2583
  "default": "false"
2476
2584
  },
2477
2585
  {
2478
- "name": "indicator-rotate",
2479
- "type": "number",
2480
- "default": "90"
2481
- },
2482
- {
2483
- "name": "backdrop",
2586
+ "name": "disabled",
2587
+ "description": "Whether the chip is disabled",
2484
2588
  "type": "boolean",
2485
- "default": "true"
2589
+ "default": "false"
2486
2590
  },
2487
2591
  {
2488
- "name": "inline",
2592
+ "name": "elevated",
2593
+ "description": "Whether to use elevated style with shadow",
2489
2594
  "type": "boolean",
2490
2595
  "default": "false"
2491
2596
  }
@@ -2497,119 +2602,92 @@
2497
2602
  "default": "[null]"
2498
2603
  },
2499
2604
  {
2500
- "name": "summary",
2501
- "attribute": "summary",
2605
+ "name": "value",
2606
+ "attribute": "value",
2607
+ "description": "Unique identifier for this filter chip",
2502
2608
  "type": "string",
2503
2609
  "default": "\"\""
2504
2610
  },
2505
2611
  {
2506
- "name": "open",
2507
- "attribute": "open",
2612
+ "name": "selected",
2613
+ "attribute": "selected",
2614
+ "type": "boolean"
2615
+ },
2616
+ {
2617
+ "name": "removable",
2618
+ "attribute": "removable",
2619
+ "description": "Whether to show a remove button",
2508
2620
  "type": "boolean",
2509
2621
  "default": "false"
2510
2622
  },
2511
2623
  {
2512
- "name": "summaryPadding",
2513
- "attribute": "summary-padding",
2514
- "type": "string",
2515
- "default": "\"\""
2624
+ "name": "disabled",
2625
+ "attribute": "disabled",
2626
+ "description": "Whether the chip is disabled",
2627
+ "type": "boolean",
2628
+ "default": "false"
2516
2629
  },
2517
2630
  {
2518
- "name": "contentPadding",
2519
- "attribute": "content-padding",
2520
- "type": "string",
2521
- "default": "\"\""
2631
+ "name": "elevated",
2632
+ "attribute": "elevated",
2633
+ "description": "Whether to use elevated style with shadow",
2634
+ "type": "boolean",
2635
+ "default": "false"
2522
2636
  },
2523
2637
  {
2524
- "name": "hideIndicator",
2525
- "attribute": "hide-indicator",
2638
+ "name": "formAssociated",
2526
2639
  "type": "boolean",
2527
- "default": "false"
2640
+ "default": "true"
2528
2641
  },
2529
2642
  {
2530
- "name": "indicatorRotate",
2531
- "attribute": "indicator-rotate",
2532
- "type": "number",
2533
- "default": "90"
2643
+ "name": "internals",
2644
+ "type": "ElementInternals | undefined"
2534
2645
  },
2535
2646
  {
2536
- "name": "backdrop",
2537
- "attribute": "backdrop",
2538
- "type": "boolean",
2539
- "default": "true"
2647
+ "name": "form",
2648
+ "type": "HTMLFormElement | null | undefined"
2649
+ }
2650
+ ],
2651
+ "events": [
2652
+ {
2653
+ "name": "change",
2654
+ "description": "Dispatched when selection state changes with {value, selected}"
2540
2655
  },
2541
2656
  {
2542
- "name": "inline",
2543
- "attribute": "inline",
2544
- "type": "boolean",
2545
- "default": "false"
2657
+ "name": "remove",
2658
+ "description": "Dispatched when remove button is clicked (if removable)"
2546
2659
  }
2547
2660
  ]
2548
2661
  },
2549
2662
  {
2550
- "name": "schmancy-float",
2551
- "path": "./src/float/float.ts",
2663
+ "name": "schmancy-chip",
2664
+ "path": "./src/form/fields/chips/filter-chip.ts",
2552
2665
  "attributes": [
2553
2666
  {
2554
- "name": "id",
2667
+ "name": "value",
2668
+ "description": "Unique identifier for this filter chip",
2555
2669
  "type": "string",
2556
- "default": "\"default\""
2557
- },
2558
- {
2559
- "name": "expandedWidth",
2560
- "description": "Override the expanded panel width (e.g. '320px', '24rem'). Defaults to responsive sizing.",
2561
- "type": "string | undefined"
2562
- },
2563
- {
2564
- "name": "expandedHeight",
2565
- "description": "Override the expanded panel height (e.g. '400px', '50vh').",
2566
- "type": "string | undefined"
2567
- },
2568
- {
2569
- "name": "lowered",
2570
- "description": "When true, uses a lower elevation shadow in the collapsed state.",
2571
- "type": "boolean",
2572
- "default": "false"
2670
+ "default": "\"\""
2573
2671
  },
2574
2672
  {
2575
- "name": "corner",
2576
- "description": "Corner the window is anchored to.",
2577
- "type": "SnapCorner",
2578
- "default": "\"bottom-right\""
2673
+ "name": "selected",
2674
+ "type": "boolean"
2579
2675
  },
2580
2676
  {
2581
- "name": "resizable",
2582
- "description": "When true, window can be resized by the user.",
2677
+ "name": "removable",
2678
+ "description": "Whether to show a remove button",
2583
2679
  "type": "boolean",
2584
2680
  "default": "false"
2585
2681
  },
2586
2682
  {
2587
- "name": "freePosition",
2588
- "description": "When true, window stays at its dragged position instead of snapping to a corner.",
2683
+ "name": "disabled",
2684
+ "description": "Whether the chip is disabled",
2589
2685
  "type": "boolean",
2590
2686
  "default": "false"
2591
2687
  },
2592
2688
  {
2593
- "name": "visualState",
2594
- "description": "Visual state of the window (minimized, normal, maximized).",
2595
- "type": "WindowVisualState",
2596
- "default": "\"normal\""
2597
- },
2598
- {
2599
- "name": "minWidth",
2600
- "description": "Minimum width in pixels.",
2601
- "type": "number",
2602
- "default": "280"
2603
- },
2604
- {
2605
- "name": "minHeight",
2606
- "description": "Minimum height in pixels.",
2607
- "type": "number",
2608
- "default": "200"
2609
- },
2610
- {
2611
- "name": "open",
2612
- "description": "Whether the body is expanded.",
2689
+ "name": "elevated",
2690
+ "description": "Whether to use elevated style with shadow",
2613
2691
  "type": "boolean",
2614
2692
  "default": "false"
2615
2693
  }
@@ -2621,286 +2699,280 @@
2621
2699
  "default": "[null]"
2622
2700
  },
2623
2701
  {
2624
- "name": "id",
2625
- "attribute": "id",
2702
+ "name": "value",
2703
+ "attribute": "value",
2704
+ "description": "Unique identifier for this filter chip",
2626
2705
  "type": "string",
2627
- "default": "\"default\""
2628
- },
2629
- {
2630
- "name": "expandedWidth",
2631
- "attribute": "expandedWidth",
2632
- "description": "Override the expanded panel width (e.g. '320px', '24rem'). Defaults to responsive sizing.",
2633
- "type": "string | undefined"
2706
+ "default": "\"\""
2634
2707
  },
2635
2708
  {
2636
- "name": "expandedHeight",
2637
- "attribute": "expandedHeight",
2638
- "description": "Override the expanded panel height (e.g. '400px', '50vh').",
2639
- "type": "string | undefined"
2709
+ "name": "selected",
2710
+ "attribute": "selected",
2711
+ "type": "boolean"
2640
2712
  },
2641
2713
  {
2642
- "name": "lowered",
2643
- "attribute": "lowered",
2644
- "description": "When true, uses a lower elevation shadow in the collapsed state.",
2714
+ "name": "removable",
2715
+ "attribute": "removable",
2716
+ "description": "Whether to show a remove button",
2645
2717
  "type": "boolean",
2646
2718
  "default": "false"
2647
2719
  },
2648
2720
  {
2649
- "name": "corner",
2650
- "attribute": "corner",
2651
- "description": "Corner the window is anchored to.",
2652
- "type": "SnapCorner",
2653
- "default": "\"bottom-right\""
2654
- },
2655
- {
2656
- "name": "resizable",
2657
- "attribute": "resizable",
2658
- "description": "When true, window can be resized by the user.",
2721
+ "name": "disabled",
2722
+ "attribute": "disabled",
2723
+ "description": "Whether the chip is disabled",
2659
2724
  "type": "boolean",
2660
2725
  "default": "false"
2661
2726
  },
2662
2727
  {
2663
- "name": "freePosition",
2664
- "attribute": "freePosition",
2665
- "description": "When true, window stays at its dragged position instead of snapping to a corner.",
2728
+ "name": "elevated",
2729
+ "attribute": "elevated",
2730
+ "description": "Whether to use elevated style with shadow",
2666
2731
  "type": "boolean",
2667
2732
  "default": "false"
2668
2733
  },
2669
2734
  {
2670
- "name": "visualState",
2671
- "attribute": "visualState",
2672
- "description": "Visual state of the window (minimized, normal, maximized).",
2673
- "type": "WindowVisualState",
2674
- "default": "\"normal\""
2735
+ "name": "formAssociated",
2736
+ "type": "boolean",
2737
+ "default": "true"
2675
2738
  },
2676
2739
  {
2677
- "name": "minWidth",
2678
- "attribute": "minWidth",
2679
- "description": "Minimum width in pixels.",
2680
- "type": "number",
2681
- "default": "280"
2740
+ "name": "internals",
2741
+ "type": "ElementInternals | undefined"
2682
2742
  },
2683
2743
  {
2684
- "name": "minHeight",
2685
- "attribute": "minHeight",
2686
- "description": "Minimum height in pixels.",
2687
- "type": "number",
2688
- "default": "200"
2744
+ "name": "form",
2745
+ "type": "HTMLFormElement | null | undefined"
2746
+ }
2747
+ ],
2748
+ "events": [
2749
+ {
2750
+ "name": "change",
2751
+ "description": "Dispatched when selection state changes with {value, selected}"
2689
2752
  },
2690
2753
  {
2691
- "name": "open",
2692
- "attribute": "open",
2693
- "description": "Whether the body is expanded.",
2694
- "type": "boolean",
2695
- "default": "false"
2754
+ "name": "remove",
2755
+ "description": "Dispatched when remove button is clicked (if removable)"
2696
2756
  }
2697
2757
  ]
2698
2758
  },
2699
2759
  {
2700
- "name": "schmancy-autocomplete",
2701
- "path": "./src/form/fields/autocomplete/autocomplete.ts",
2702
- "description": "Autocomplete input component with filtering and multi-select support.",
2703
- "attributes": [
2704
- {
2705
- "name": "maxHeight",
2706
- "type": "string",
2707
- "default": "\"300px\""
2708
- },
2760
+ "name": "schmancy-input-chip",
2761
+ "path": "./src/form/fields/chips/input-chip.ts",
2762
+ "description": "Input chip component - represents user-provided information that can be removed.\n\nIMPORTANT: Per Material Design 3 specification, input chips do NOT have selected state.\nThey represent discrete pieces of user input (like entered tags, selections from lists, etc.)\nthat can only be removed, not toggled on/off.\n\nUse cases:\n- Displaying selected recipients in an email\n- Showing applied filters that can be removed\n- Tags or keywords entered by the user\n- Selected items from a multi-select dropdown",
2763
+ "attributes": [
2709
2764
  {
2710
- "name": "description",
2765
+ "name": "value",
2766
+ "description": "Value identifier for the chip",
2711
2767
  "type": "string",
2712
2768
  "default": "\"\""
2713
2769
  },
2714
2770
  {
2715
- "name": "size",
2716
- "type": "InputSize",
2717
- "default": "\"md\""
2718
- },
2719
- {
2720
- "name": "autocomplete",
2771
+ "name": "icon",
2772
+ "description": "Optional icon name (Material Symbols)",
2721
2773
  "type": "string",
2722
- "default": "\"off\""
2723
- },
2724
- {
2725
- "name": "debounceMs",
2726
- "type": "number",
2727
- "default": "200"
2728
- },
2729
- {
2730
- "name": "similarityThreshold",
2731
- "type": "number",
2732
- "default": "0.3"
2774
+ "default": "\"\""
2733
2775
  },
2734
2776
  {
2735
- "name": "placeholder",
2736
- "description": "Placeholder text for the input",
2777
+ "name": "avatar",
2778
+ "description": "Optional avatar image URL",
2737
2779
  "type": "string",
2738
2780
  "default": "\"\""
2739
2781
  },
2740
2782
  {
2741
- "name": "multi",
2742
- "description": "Enable multi-select mode",
2783
+ "name": "removable",
2784
+ "description": "Whether to show remove button (default true for input chips)",
2743
2785
  "type": "boolean",
2744
- "default": "false"
2786
+ "default": "true"
2745
2787
  },
2746
2788
  {
2747
- "name": "value",
2748
- "description": "Selected value (single select mode)",
2749
- "type": "string"
2789
+ "name": "disabled",
2790
+ "description": "Disable the chip",
2791
+ "type": "boolean",
2792
+ "default": "false"
2750
2793
  },
2751
2794
  {
2752
- "name": "values",
2753
- "description": "Selected values (multi-select mode)",
2754
- "type": "string[]"
2795
+ "name": "elevated",
2796
+ "description": "Elevated style variant",
2797
+ "type": "boolean",
2798
+ "default": "false"
2755
2799
  }
2756
2800
  ],
2757
2801
  "properties": [
2758
2802
  {
2759
- "name": "maxHeight",
2760
- "attribute": "maxHeight",
2761
- "type": "string",
2762
- "default": "\"300px\""
2803
+ "name": "styles",
2804
+ "type": "CSSResult[]",
2805
+ "default": "[null]"
2763
2806
  },
2764
2807
  {
2765
- "name": "description",
2766
- "attribute": "description",
2808
+ "name": "value",
2809
+ "attribute": "value",
2810
+ "description": "Value identifier for the chip",
2767
2811
  "type": "string",
2768
2812
  "default": "\"\""
2769
2813
  },
2770
2814
  {
2771
- "name": "size",
2772
- "attribute": "size",
2773
- "type": "InputSize",
2774
- "default": "\"md\""
2775
- },
2776
- {
2777
- "name": "autocomplete",
2778
- "attribute": "autocomplete",
2815
+ "name": "icon",
2816
+ "attribute": "icon",
2817
+ "description": "Optional icon name (Material Symbols)",
2779
2818
  "type": "string",
2780
- "default": "\"off\""
2781
- },
2782
- {
2783
- "name": "debounceMs",
2784
- "attribute": "debounceMs",
2785
- "type": "number",
2786
- "default": "200"
2787
- },
2788
- {
2789
- "name": "similarityThreshold",
2790
- "attribute": "similarityThreshold",
2791
- "type": "number",
2792
- "default": "0.3"
2793
- },
2794
- {
2795
- "name": "name",
2796
- "description": "Name attribute for form submission",
2797
- "type": "string"
2798
- },
2799
- {
2800
- "name": "label",
2801
- "description": "Label text displayed above the input",
2802
- "type": "string"
2819
+ "default": "\"\""
2803
2820
  },
2804
2821
  {
2805
- "name": "placeholder",
2806
- "attribute": "placeholder",
2807
- "description": "Placeholder text for the input",
2822
+ "name": "avatar",
2823
+ "attribute": "avatar",
2824
+ "description": "Optional avatar image URL",
2808
2825
  "type": "string",
2809
2826
  "default": "\"\""
2810
2827
  },
2811
2828
  {
2812
- "name": "required",
2813
- "description": "Whether the field is required",
2814
- "type": "boolean"
2829
+ "name": "removable",
2830
+ "attribute": "removable",
2831
+ "description": "Whether to show remove button (default true for input chips)",
2832
+ "type": "boolean",
2833
+ "default": "true"
2815
2834
  },
2816
2835
  {
2817
- "name": "multi",
2818
- "attribute": "multi",
2819
- "description": "Enable multi-select mode",
2836
+ "name": "disabled",
2837
+ "attribute": "disabled",
2838
+ "description": "Disable the chip",
2820
2839
  "type": "boolean",
2821
2840
  "default": "false"
2822
2841
  },
2823
2842
  {
2824
- "name": "value",
2825
- "attribute": "value",
2826
- "description": "Selected value (single select mode)",
2827
- "type": "string"
2843
+ "name": "elevated",
2844
+ "attribute": "elevated",
2845
+ "description": "Elevated style variant",
2846
+ "type": "boolean",
2847
+ "default": "false"
2828
2848
  },
2829
2849
  {
2830
- "name": "values",
2831
- "attribute": "values",
2832
- "description": "Selected values (multi-select mode)",
2833
- "type": "string[]"
2850
+ "name": "uiState",
2851
+ "type": "{ chipHover: boolean; removeHover: boolean; focused: boolean; pressed: boolean; }",
2852
+ "default": "{\"chipHover\":false,\"removeHover\":false,\"focused\":false,\"pressed\":false}"
2834
2853
  },
2835
2854
  {
2836
- "name": "cssText",
2837
- "type": "string"
2855
+ "name": "formAssociated",
2856
+ "type": "boolean",
2857
+ "default": "true"
2838
2858
  },
2839
2859
  {
2840
- "name": "styleSheet",
2841
- "type": "CSSStyleSheet | undefined"
2860
+ "name": "internals",
2861
+ "type": "ElementInternals | undefined"
2862
+ },
2863
+ {
2864
+ "name": "form",
2865
+ "type": "HTMLFormElement | null | undefined"
2842
2866
  }
2843
2867
  ],
2844
2868
  "events": [
2845
2869
  {
2846
- "name": "change"
2870
+ "name": "click",
2871
+ "description": "Optional click event on chip body (value)"
2872
+ },
2873
+ {
2874
+ "name": "remove",
2875
+ "description": "Dispatched when remove button is clicked (value)"
2847
2876
  }
2848
2877
  ]
2849
2878
  },
2850
2879
  {
2851
- "name": "schmancy-checkbox",
2852
- "path": "./src/form/fields/checkbox/checkbox.ts",
2880
+ "name": "schmancy-suggestion-chip",
2881
+ "path": "./src/form/fields/chips/suggestion-chip.ts",
2882
+ "description": "Suggestion chip component - provides contextual recommendations to users\n\nIMPORTANT: Suggestion chips do NOT have a selected state. They are designed to\nprovide suggestions and recommendations that trigger actions when clicked.\nUnlike filter chips, they cannot be toggled on/off.\n\nPure Schmancy implementation with Tailwind CSS and RxJS state management",
2853
2883
  "attributes": [
2854
2884
  {
2855
2885
  "name": "value",
2856
- "description": "Boolean checked state. Test contract: `cb.value = true` flips the state.\nThe FormData *string* is read from `true-value` attribute (or `'on'`\ndefault) — kept separate from `value` to keep the boolean-state ergonomic.",
2857
- "type": "boolean",
2858
- "default": "false"
2886
+ "description": "Value identifier for the chip",
2887
+ "type": "string",
2888
+ "default": "\"\""
2859
2889
  },
2860
2890
  {
2861
- "name": "checked",
2862
- "description": "Alias for `value` for read-side ergonomics.",
2863
- "type": "boolean"
2891
+ "name": "icon",
2892
+ "description": "Optional icon name (Material Symbols)",
2893
+ "type": "string",
2894
+ "default": "\"\""
2864
2895
  },
2865
2896
  {
2866
- "name": "size",
2867
- "description": "M3-aligned sizes: 24dp (xxs) → 32dp (xs) → 40dp (sm) → 48dp (md) → 56dp (lg).",
2868
- "type": "\"xs\" | \"sm\" | \"md\" | \"lg\" | \"xxs\"",
2869
- "default": "\"md\""
2897
+ "name": "href",
2898
+ "description": "Optional href for navigation",
2899
+ "type": "string",
2900
+ "default": "\"\""
2901
+ },
2902
+ {
2903
+ "name": "target",
2904
+ "description": "Target for navigation (e.g., '_blank')",
2905
+ "type": "string",
2906
+ "default": "\"\""
2907
+ },
2908
+ {
2909
+ "name": "disabled",
2910
+ "description": "Disable the chip",
2911
+ "type": "boolean",
2912
+ "default": "false"
2913
+ },
2914
+ {
2915
+ "name": "elevated",
2916
+ "description": "Elevated style variant - flat by default per M3 spec",
2917
+ "type": "boolean",
2918
+ "default": "false"
2870
2919
  }
2871
2920
  ],
2872
2921
  "properties": [
2922
+ {
2923
+ "name": "styles",
2924
+ "type": "CSSResult[]",
2925
+ "default": "[null]"
2926
+ },
2873
2927
  {
2874
2928
  "name": "value",
2875
2929
  "attribute": "value",
2876
- "description": "Boolean checked state. Test contract: `cb.value = true` flips the state.\nThe FormData *string* is read from `true-value` attribute (or `'on'`\ndefault) — kept separate from `value` to keep the boolean-state ergonomic.",
2877
- "type": "boolean",
2878
- "default": "false"
2930
+ "description": "Value identifier for the chip",
2931
+ "type": "string",
2932
+ "default": "\"\""
2879
2933
  },
2880
2934
  {
2881
- "name": "checked",
2882
- "attribute": "checked",
2883
- "description": "Alias for `value` for read-side ergonomics.",
2884
- "type": "boolean"
2935
+ "name": "icon",
2936
+ "attribute": "icon",
2937
+ "description": "Optional icon name (Material Symbols)",
2938
+ "type": "string",
2939
+ "default": "\"\""
2885
2940
  },
2886
2941
  {
2887
- "name": "size",
2888
- "attribute": "size",
2889
- "description": "M3-aligned sizes: 24dp (xxs) → 32dp (xs) → 40dp (sm) → 48dp (md) → 56dp (lg).",
2890
- "type": "\"xs\" | \"sm\" | \"md\" | \"lg\" | \"xxs\"",
2891
- "default": "\"md\""
2942
+ "name": "href",
2943
+ "attribute": "href",
2944
+ "description": "Optional href for navigation",
2945
+ "type": "string",
2946
+ "default": "\"\""
2947
+ },
2948
+ {
2949
+ "name": "target",
2950
+ "attribute": "target",
2951
+ "description": "Target for navigation (e.g., '_blank')",
2952
+ "type": "string",
2953
+ "default": "\"\""
2954
+ },
2955
+ {
2956
+ "name": "disabled",
2957
+ "attribute": "disabled",
2958
+ "description": "Disable the chip",
2959
+ "type": "boolean",
2960
+ "default": "false"
2961
+ },
2962
+ {
2963
+ "name": "elevated",
2964
+ "attribute": "elevated",
2965
+ "description": "Elevated style variant - flat by default per M3 spec",
2966
+ "type": "boolean",
2967
+ "default": "false"
2892
2968
  }
2893
2969
  ],
2894
2970
  "events": [
2895
2971
  {
2896
- "name": "change",
2897
- "description": "Event fired when the checkbox value changes."
2898
- }
2899
- ],
2900
- "slots": [
2972
+ "name": "action"
2973
+ },
2901
2974
  {
2902
- "name": "",
2903
- "description": "The label for the checkbox."
2975
+ "name": "click"
2904
2976
  }
2905
2977
  ]
2906
2978
  },
@@ -3182,7 +3254,7 @@
3182
3254
  {
3183
3255
  "name": "align",
3184
3256
  "description": "Text alignment within the input.\n- 'left' | 'center' | 'right'",
3185
- "type": "\"center\" | \"right\" | \"left\"",
3257
+ "type": "\"right\" | \"left\" | \"center\"",
3186
3258
  "default": "\"left\""
3187
3259
  },
3188
3260
  {
@@ -3286,7 +3358,7 @@
3286
3358
  "name": "align",
3287
3359
  "attribute": "align",
3288
3360
  "description": "Text alignment within the input.\n- 'left' | 'center' | 'right'",
3289
- "type": "\"center\" | \"right\" | \"left\"",
3361
+ "type": "\"right\" | \"left\" | \"center\"",
3290
3362
  "default": "\"left\""
3291
3363
  },
3292
3364
  {
@@ -3482,7 +3554,7 @@
3482
3554
  {
3483
3555
  "name": "align",
3484
3556
  "description": "Text alignment within the input.\n- 'left' | 'center' | 'right'",
3485
- "type": "\"center\" | \"right\" | \"left\"",
3557
+ "type": "\"right\" | \"left\" | \"center\"",
3486
3558
  "default": "\"left\""
3487
3559
  },
3488
3560
  {
@@ -3586,7 +3658,7 @@
3586
3658
  "name": "align",
3587
3659
  "attribute": "align",
3588
3660
  "description": "Text alignment within the input.\n- 'left' | 'center' | 'right'",
3589
- "type": "\"center\" | \"right\" | \"left\"",
3661
+ "type": "\"right\" | \"left\" | \"center\"",
3590
3662
  "default": "\"left\""
3591
3663
  },
3592
3664
  {
@@ -4125,7 +4197,7 @@
4125
4197
  },
4126
4198
  {
4127
4199
  "name": "align",
4128
- "type": "\"center\" | \"right\" | \"left\"",
4200
+ "type": "\"right\" | \"left\" | \"center\"",
4129
4201
  "default": "\"left\""
4130
4202
  },
4131
4203
  {
@@ -4225,7 +4297,7 @@
4225
4297
  {
4226
4298
  "name": "align",
4227
4299
  "attribute": "align",
4228
- "type": "\"center\" | \"right\" | \"left\"",
4300
+ "type": "\"right\" | \"left\" | \"center\"",
4229
4301
  "default": "\"left\""
4230
4302
  },
4231
4303
  {
@@ -5449,7 +5521,7 @@
5449
5521
  {
5450
5522
  "name": "alignment",
5451
5523
  "description": "Alignment of navigation items",
5452
- "type": "\"center\" | \"top\" | \"bottom\"",
5524
+ "type": "\"top\" | \"bottom\" | \"center\"",
5453
5525
  "default": "\"'top'\""
5454
5526
  },
5455
5527
  {
@@ -5496,7 +5568,7 @@
5496
5568
  "name": "alignment",
5497
5569
  "attribute": "alignment",
5498
5570
  "description": "Alignment of navigation items",
5499
- "type": "\"center\" | \"top\" | \"bottom\"",
5571
+ "type": "\"top\" | \"bottom\" | \"center\"",
5500
5572
  "default": "\"'top'\""
5501
5573
  },
5502
5574
  {