@mhmo91/schmancy 0.9.5 → 0.9.6

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 (608) hide show
  1. package/custom-elements.json +493 -718
  2. package/dist/{animation-CO_Csq84.cjs.map → animation-Bcwh107v.cjs.map} +1 -1
  3. package/dist/{animation-BK-8BwY8.js.map → animation-CXKSuUoE.js.map} +1 -1
  4. package/dist/{area-CRoGqD_u.js → area-BARjKpE9.js} +2 -2
  5. package/dist/{area-CRoGqD_u.js.map → area-BARjKpE9.js.map} +1 -1
  6. package/dist/{area-JPykB7A9.cjs → area-D9b9dHQr.cjs} +3 -3
  7. package/dist/{area-JPykB7A9.cjs.map → area-D9b9dHQr.cjs.map} +1 -1
  8. package/dist/area.cjs +1 -1
  9. package/dist/area.js +1 -1
  10. package/dist/{audio-kz8UgPTO.js → audio-C7TzWI8M.js} +1 -1
  11. package/dist/audio-C7TzWI8M.js.map +1 -0
  12. package/dist/{audio-DtYYgzYD.cjs → audio-DUVz7Ars.cjs} +1 -1
  13. package/dist/audio-DUVz7Ars.cjs.map +1 -0
  14. package/dist/audio.cjs +1 -1
  15. package/dist/audio.js +2 -2
  16. package/dist/autocomplete-AI2CCJmK.cjs +115 -0
  17. package/dist/autocomplete-AI2CCJmK.cjs.map +1 -0
  18. package/dist/{autocomplete-BllPQwr8.js → autocomplete-DOimwVMP.js} +48 -22
  19. package/dist/autocomplete-DOimwVMP.js.map +1 -0
  20. package/dist/autocomplete.cjs +1 -1
  21. package/dist/autocomplete.js +1 -1
  22. package/dist/badge.cjs +1 -1
  23. package/dist/badge.js +1 -1
  24. package/dist/{boat-DYEAZ8Qj.cjs → boat-Bk4u-LzT.cjs} +2 -2
  25. package/dist/{boat-DYEAZ8Qj.cjs.map → boat-Bk4u-LzT.cjs.map} +1 -1
  26. package/dist/{boat-BDTQ-du9.js → boat-DrghVeWK.js} +5 -5
  27. package/dist/{boat-BDTQ-du9.js.map → boat-DrghVeWK.js.map} +1 -1
  28. package/dist/boat.cjs +1 -1
  29. package/dist/boat.js +1 -1
  30. package/dist/breadcrumb.cjs +34 -0
  31. package/dist/breadcrumb.cjs.map +1 -0
  32. package/dist/breadcrumb.js +73 -0
  33. package/dist/breadcrumb.js.map +1 -0
  34. package/dist/{busy-ChDAeaKF.js → busy-BmFfwyz_.js} +7 -6
  35. package/dist/{busy-ChDAeaKF.js.map → busy-BmFfwyz_.js.map} +1 -1
  36. package/dist/{busy-Dj7Xn0Z0.cjs → busy-c_q_F8O0.cjs} +8 -8
  37. package/dist/{busy-Dj7Xn0Z0.cjs.map → busy-c_q_F8O0.cjs.map} +1 -1
  38. package/dist/busy.cjs +1 -1
  39. package/dist/busy.js +1 -1
  40. package/dist/button.cjs +4 -4
  41. package/dist/button.cjs.map +1 -1
  42. package/dist/button.js +25 -6
  43. package/dist/button.js.map +1 -1
  44. package/dist/{card-DZFPRPqs.js → card-BADJHUMA.js} +16 -15
  45. package/dist/{card-DZFPRPqs.js.map → card-BADJHUMA.js.map} +1 -1
  46. package/dist/{card-BvPWVEJX.cjs → card-C_E944_Z.cjs} +10 -10
  47. package/dist/{card-BvPWVEJX.cjs.map → card-C_E944_Z.cjs.map} +1 -1
  48. package/dist/card.cjs +1 -1
  49. package/dist/card.js +1 -1
  50. package/dist/charts.cjs +3 -3
  51. package/dist/charts.cjs.map +1 -1
  52. package/dist/charts.js +2 -2
  53. package/dist/{checkbox-GSSjqo6w.js → checkbox-D7rvCrGk.js} +28 -9
  54. package/dist/{checkbox-GSSjqo6w.js.map → checkbox-D7rvCrGk.js.map} +1 -1
  55. package/dist/{checkbox-BC_37rsG.cjs → checkbox-ZqDoCagB.cjs} +10 -10
  56. package/dist/{checkbox-BC_37rsG.cjs.map → checkbox-ZqDoCagB.cjs.map} +1 -1
  57. package/dist/checkbox.cjs +1 -1
  58. package/dist/checkbox.js +1 -1
  59. package/dist/{chips-B19XS8Xc.cjs → chips-Cux635Qs.cjs} +18 -18
  60. package/dist/chips-Cux635Qs.cjs.map +1 -0
  61. package/dist/{chips-B9oAEfE_.js → chips-vdzIsesI.js} +37 -27
  62. package/dist/chips-vdzIsesI.js.map +1 -0
  63. package/dist/chips.cjs +1 -1
  64. package/dist/chips.js +2 -2
  65. package/dist/{code-highlight-fSLrlgOb.cjs → code-highlight-C9lKek2p.cjs} +11 -11
  66. package/dist/{code-highlight-fSLrlgOb.cjs.map → code-highlight-C9lKek2p.cjs.map} +1 -1
  67. package/dist/{code-highlight-DCk5lJY-.js → code-highlight-D6yruol6.js} +6 -5
  68. package/dist/{code-highlight-DCk5lJY-.js.map → code-highlight-D6yruol6.js.map} +1 -1
  69. package/dist/code-highlight.cjs +1 -1
  70. package/dist/code-highlight.js +1 -1
  71. package/dist/components-ByRyEzz5.cjs +73 -0
  72. package/dist/{components-CyD6a7gQ.cjs.map → components-ByRyEzz5.cjs.map} +1 -1
  73. package/dist/{components-COsM6sJZ.js → components-DSvPKR9Q.js} +2 -2
  74. package/dist/{components-COsM6sJZ.js.map → components-DSvPKR9Q.js.map} +1 -1
  75. package/dist/components.cjs +1 -1
  76. package/dist/components.js +1 -1
  77. package/dist/connectivity.cjs +7 -7
  78. package/dist/connectivity.cjs.map +1 -1
  79. package/dist/connectivity.js +5 -4
  80. package/dist/connectivity.js.map +1 -1
  81. package/dist/content-drawer.cjs +1 -1
  82. package/dist/content-drawer.js +1 -1
  83. package/dist/{cursor-glow-DtSy_PJd.cjs → cursor-glow-82y5h3E4.cjs} +1 -1
  84. package/dist/{cursor-glow-DtSy_PJd.cjs.map → cursor-glow-82y5h3E4.cjs.map} +1 -1
  85. package/dist/{cursor-glow-Ah7VXSj7.js → cursor-glow-C2YRrB8Z.js} +1 -1
  86. package/dist/{cursor-glow-Ah7VXSj7.js.map → cursor-glow-C2YRrB8Z.js.map} +1 -1
  87. package/dist/{date-range-ZAaQB22I.cjs → date-range-DJsavigf.cjs} +3 -3
  88. package/dist/date-range-DJsavigf.cjs.map +1 -0
  89. package/dist/{date-range-inline-Bl8qbiQF.js → date-range-inline-B87TDYI6.js} +1 -1
  90. package/dist/{date-range-inline-Bl8qbiQF.js.map → date-range-inline-B87TDYI6.js.map} +1 -1
  91. package/dist/date-range-inline-De-M0VmL.cjs +43 -0
  92. package/dist/{date-range-inline-m7nLjOMI.cjs.map → date-range-inline-De-M0VmL.cjs.map} +1 -1
  93. package/dist/date-range-inline.cjs +1 -1
  94. package/dist/date-range-inline.js +1 -1
  95. package/dist/{date-range-Sfyco9-n.js → date-range-tEX2Jx2j.js} +4 -4
  96. package/dist/date-range-tEX2Jx2j.js.map +1 -0
  97. package/dist/date-range.cjs +1 -1
  98. package/dist/date-range.js +1 -1
  99. package/dist/delay-BvVdfhAR.cjs +9 -0
  100. package/dist/{delay-7boauN6N.cjs.map → delay-BvVdfhAR.cjs.map} +1 -1
  101. package/dist/{delay-CgX6m0HN.js → delay-CZw37zps.js} +9 -8
  102. package/dist/{delay-CgX6m0HN.js.map → delay-CZw37zps.js.map} +1 -1
  103. package/dist/delay.cjs +1 -1
  104. package/dist/delay.js +1 -1
  105. package/dist/{details-BHnk8l4q.cjs → details-Bhz8_whd.cjs} +9 -9
  106. package/dist/{details-BHnk8l4q.cjs.map → details-Bhz8_whd.cjs.map} +1 -1
  107. package/dist/{details-BPkUg8Cq.js → details-D7VTnLOh.js} +16 -15
  108. package/dist/{details-BPkUg8Cq.js.map → details-D7VTnLOh.js.map} +1 -1
  109. package/dist/details.cjs +1 -1
  110. package/dist/details.js +1 -1
  111. package/dist/{dialog-service-NZEvyEK-.js → dialog-service-ClFrOWf4.js} +2 -2
  112. package/dist/{dialog-service-NZEvyEK-.js.map → dialog-service-ClFrOWf4.js.map} +1 -1
  113. package/dist/{dialog-service-VnW4gkmE.cjs → dialog-service-DcuAavp2.cjs} +1 -1
  114. package/dist/{dialog-service-VnW4gkmE.cjs.map → dialog-service-DcuAavp2.cjs.map} +1 -1
  115. package/dist/dialog.cjs +18 -11
  116. package/dist/dialog.cjs.map +1 -1
  117. package/dist/dialog.js +66 -43
  118. package/dist/dialog.js.map +1 -1
  119. package/dist/directives.cjs +1 -1
  120. package/dist/directives.js +5 -5
  121. package/dist/{divider-_khrhrZo.cjs → divider-S0bHwCCS.cjs} +2 -2
  122. package/dist/{divider-_khrhrZo.cjs.map → divider-S0bHwCCS.cjs.map} +1 -1
  123. package/dist/{divider-CW9a7MMj.js → divider-zS232JDr.js} +2 -2
  124. package/dist/{divider-CW9a7MMj.js.map → divider-zS232JDr.js.map} +1 -1
  125. package/dist/divider.cjs +1 -1
  126. package/dist/divider.js +1 -1
  127. package/dist/dropdown.cjs +4 -4
  128. package/dist/dropdown.cjs.map +1 -1
  129. package/dist/dropdown.js +8 -7
  130. package/dist/dropdown.js.map +1 -1
  131. package/dist/{expand-iQ7EOMP7.js → expand-BXt9SqAF.js} +13 -12
  132. package/dist/{expand-iQ7EOMP7.js.map → expand-BXt9SqAF.js.map} +1 -1
  133. package/dist/{expand-Cp7-PH8b.cjs → expand-Dr7TFXpl.cjs} +18 -18
  134. package/dist/{expand-Cp7-PH8b.cjs.map → expand-Dr7TFXpl.cjs.map} +1 -1
  135. package/dist/expand.cjs +1 -1
  136. package/dist/expand.js +1 -1
  137. package/dist/{extra-IKAiJJhv.cjs → extra-BmZTXAp0.cjs} +3 -3
  138. package/dist/{extra-IKAiJJhv.cjs.map → extra-BmZTXAp0.cjs.map} +1 -1
  139. package/dist/{extra-wEpvEFbK.js → extra-COYhsOyZ.js} +2 -2
  140. package/dist/{extra-wEpvEFbK.js.map → extra-COYhsOyZ.js.map} +1 -1
  141. package/dist/extra.cjs +1 -1
  142. package/dist/extra.js +1 -1
  143. package/dist/float-CSRW-Rrd.cjs +1 -0
  144. package/dist/{float-D5rNC82i.cjs.map → float-CSRW-Rrd.cjs.map} +1 -1
  145. package/dist/{float-BQ_urmMs.js → float-DCXafWh6.js} +2 -2
  146. package/dist/{float-BQ_urmMs.js.map → float-DCXafWh6.js.map} +1 -1
  147. package/dist/float.cjs +1 -1
  148. package/dist/float.js +1 -1
  149. package/dist/{flow-CUj0fDT_.js.map → flow-CqgDEIqK.js.map} +1 -1
  150. package/dist/{flow-Bbwn6dRN.cjs.map → flow-DSu4PLt1.cjs.map} +1 -1
  151. package/dist/form-CAY9GSCd.cjs +1 -0
  152. package/dist/form-CAY9GSCd.cjs.map +1 -0
  153. package/dist/form-D2cJ58TB.js +68 -0
  154. package/dist/form-D2cJ58TB.js.map +1 -0
  155. package/dist/form.cjs +1 -1
  156. package/dist/form.js +2 -1
  157. package/dist/{hashContent-DaeGmY-p.cjs.map → hashContent-kKvXKFa9.cjs.map} +1 -1
  158. package/dist/{hashContent-DYM21p6t.js.map → hashContent-nD2uWwi2.js.map} +1 -1
  159. package/dist/{icons-BDqiGXrO.js → icons-BbaI9Zf-.js} +9 -8
  160. package/dist/icons-BbaI9Zf-.js.map +1 -0
  161. package/dist/{icons-B57_93VV.cjs → icons-DPUeLS_Y.cjs} +3 -3
  162. package/dist/icons-DPUeLS_Y.cjs.map +1 -0
  163. package/dist/icons.cjs +1 -1
  164. package/dist/icons.js +1 -1
  165. package/dist/{iframe-WnWPIrBG.js → iframe-CEDOvkql.js} +5 -4
  166. package/dist/{iframe-WnWPIrBG.js.map → iframe-CEDOvkql.js.map} +1 -1
  167. package/dist/{iframe-DNHL3GIk.cjs → iframe-Ct50FYXq.cjs} +3 -3
  168. package/dist/{iframe-DNHL3GIk.cjs.map → iframe-Ct50FYXq.cjs.map} +1 -1
  169. package/dist/iframe.cjs +1 -1
  170. package/dist/iframe.js +1 -1
  171. package/dist/index.cjs +1 -1
  172. package/dist/index.js +65 -59
  173. package/dist/{input-BiSrTcrR.cjs → input-DMjpf6V8.cjs} +2 -2
  174. package/dist/{input-BiSrTcrR.cjs.map → input-DMjpf6V8.cjs.map} +1 -1
  175. package/dist/{input-VaXHFrRn.js → input-Ri72dn5t.js} +1 -1
  176. package/dist/{input-VaXHFrRn.js.map → input-Ri72dn5t.js.map} +1 -1
  177. package/dist/{input-chip-Dy-AiP55.cjs → input-chip-BhjGVpc3.cjs} +9 -9
  178. package/dist/input-chip-BhjGVpc3.cjs.map +1 -0
  179. package/dist/{input-chip-QejNcRnS.js → input-chip-CI4__N8w.js} +13 -9
  180. package/dist/input-chip-CI4__N8w.js.map +1 -0
  181. package/dist/input.cjs +1 -1
  182. package/dist/input.js +1 -1
  183. package/dist/{intersection-CZpaIHeT.cjs.map → intersection-D1v1UCVv.cjs.map} +1 -1
  184. package/dist/{intersection-BPLpqYEd.js.map → intersection-LfEsy29T.js.map} +1 -1
  185. package/dist/json.cjs +3 -3
  186. package/dist/json.cjs.map +1 -1
  187. package/dist/json.js +5 -4
  188. package/dist/json.js.map +1 -1
  189. package/dist/kbd.cjs +28 -0
  190. package/dist/kbd.cjs.map +1 -0
  191. package/dist/kbd.js +45 -0
  192. package/dist/kbd.js.map +1 -0
  193. package/dist/{layout-yxSlLybo.js → layout-BE2ld1IY.js} +1 -1
  194. package/dist/{layout-yxSlLybo.js.map → layout-BE2ld1IY.js.map} +1 -1
  195. package/dist/layout-D7xOqMkJ.cjs +17 -0
  196. package/dist/{layout-DNYG3phx.cjs.map → layout-D7xOqMkJ.cjs.map} +1 -1
  197. package/dist/{layout-4C-6_cre.cjs → layout-PZCF3kwl.cjs} +1 -1
  198. package/dist/{layout-4C-6_cre.cjs.map → layout-PZCF3kwl.cjs.map} +1 -1
  199. package/dist/{layout-CnsXeCAy.js → layout-uAQpJN31.js} +20 -19
  200. package/dist/{layout-CnsXeCAy.js.map → layout-uAQpJN31.js.map} +1 -1
  201. package/dist/layout.cjs +1 -1
  202. package/dist/layout.js +2 -2
  203. package/dist/{lightbox-BrI1Z31s.js → lightbox-C0OEHns9.js} +10 -9
  204. package/dist/{lightbox-BrI1Z31s.js.map → lightbox-C0OEHns9.js.map} +1 -1
  205. package/dist/{lightbox-CmACf0t5.cjs → lightbox-cXRnvHMN.cjs} +20 -20
  206. package/dist/{lightbox-CmACf0t5.cjs.map → lightbox-cXRnvHMN.cjs.map} +1 -1
  207. package/dist/lightbox.cjs +1 -1
  208. package/dist/lightbox.js +1 -1
  209. package/dist/{list-swIL9VDv.cjs → list-CmJ5h35b.cjs} +5 -5
  210. package/dist/{list-swIL9VDv.cjs.map → list-CmJ5h35b.cjs.map} +1 -1
  211. package/dist/{list-Cm-jjXxM.js → list-d1mHar5p.js} +14 -13
  212. package/dist/{list-Cm-jjXxM.js.map → list-d1mHar5p.js.map} +1 -1
  213. package/dist/list.cjs +1 -1
  214. package/dist/list.js +1 -1
  215. package/dist/{litElement.mixin-3llHwB-8.cjs → litElement.mixin-Bj2q1yPw.cjs} +1 -1
  216. package/dist/{litElement.mixin-3llHwB-8.cjs.map → litElement.mixin-Bj2q1yPw.cjs.map} +1 -1
  217. package/dist/{litElement.mixin-6jJYHCrZ.js → litElement.mixin-CncaUoxz.js} +1 -1
  218. package/dist/{litElement.mixin-6jJYHCrZ.js.map → litElement.mixin-CncaUoxz.js.map} +1 -1
  219. package/dist/{magnetic-BZGFxAWG.js → magnetic-Dj52WplI.js} +2 -2
  220. package/dist/{magnetic-BZGFxAWG.js.map → magnetic-Dj52WplI.js.map} +1 -1
  221. package/dist/{magnetic-Dux4QwO4.cjs → magnetic-aBBnj_vk.cjs} +1 -1
  222. package/dist/{magnetic-Dux4QwO4.cjs.map → magnetic-aBBnj_vk.cjs.map} +1 -1
  223. package/dist/{mailbox-D6LkQcN5.cjs → mailbox-BmChskZc.cjs} +59 -59
  224. package/dist/{mailbox-D6LkQcN5.cjs.map → mailbox-BmChskZc.cjs.map} +1 -1
  225. package/dist/{mailbox-BuvsVaAQ.js → mailbox-C4-E93be.js} +13 -12
  226. package/dist/{mailbox-BuvsVaAQ.js.map → mailbox-C4-E93be.js.map} +1 -1
  227. package/dist/mailbox.cjs +1 -1
  228. package/dist/mailbox.js +1 -1
  229. package/dist/{map-CQiKAxC3.js → map-DHyYLhvy.js} +6 -5
  230. package/dist/{map-CQiKAxC3.js.map → map-DHyYLhvy.js.map} +1 -1
  231. package/dist/{map-D5NN4VET.cjs → map-DYEvlNl0.cjs} +7 -7
  232. package/dist/{map-D5NN4VET.cjs.map → map-DYEvlNl0.cjs.map} +1 -1
  233. package/dist/map.cjs +1 -1
  234. package/dist/map.js +1 -1
  235. package/dist/{menu-CkgMO9K5.cjs → menu-BlPTI6H9.cjs} +3 -3
  236. package/dist/{menu-CkgMO9K5.cjs.map → menu-BlPTI6H9.cjs.map} +1 -1
  237. package/dist/{menu-C1x04YZw.js → menu-DFDBADp4.js} +3 -3
  238. package/dist/{menu-C1x04YZw.js.map → menu-DFDBADp4.js.map} +1 -1
  239. package/dist/menu.cjs +1 -1
  240. package/dist/menu.js +1 -1
  241. package/dist/mixins.cjs +1 -1
  242. package/dist/mixins.cjs.map +1 -1
  243. package/dist/mixins.js +43 -15
  244. package/dist/mixins.js.map +1 -1
  245. package/dist/nav-drawer.cjs +1 -1
  246. package/dist/nav-drawer.js +1 -1
  247. package/dist/navigation-bar.cjs +1 -1
  248. package/dist/navigation-bar.js +1 -1
  249. package/dist/navigation-rail.cjs +3 -3
  250. package/dist/navigation-rail.cjs.map +1 -1
  251. package/dist/navigation-rail.js +2 -2
  252. package/dist/{notification-BnBgxjF-.js → notification-DGpv8g2H.js} +4 -4
  253. package/dist/{notification-BnBgxjF-.js.map → notification-DGpv8g2H.js.map} +1 -1
  254. package/dist/notification-DKVWYhqs.cjs +23 -0
  255. package/dist/{notification-CZFEhWxc.cjs.map → notification-DKVWYhqs.cjs.map} +1 -1
  256. package/dist/notification.cjs +1 -1
  257. package/dist/notification.js +1 -1
  258. package/dist/{option-DBO8xZwd.js → option-BD2eh458.js} +6 -5
  259. package/dist/{option-DBO8xZwd.js.map → option-BD2eh458.js.map} +1 -1
  260. package/dist/{option-BrxCVwSx.cjs → option-LtSDy2xf.cjs} +5 -5
  261. package/dist/{option-BrxCVwSx.cjs.map → option-LtSDy2xf.cjs.map} +1 -1
  262. package/dist/option.cjs +1 -1
  263. package/dist/option.js +1 -1
  264. package/dist/{overlay-stack-DQey9Qph.cjs.map → overlay-stack-CEYGD9T1.cjs.map} +1 -1
  265. package/dist/{overlay-stack-DT1SdaGW.js.map → overlay-stack-Ca4EK2Mu.js.map} +1 -1
  266. package/dist/page.cjs +2 -2
  267. package/dist/page.cjs.map +1 -1
  268. package/dist/page.js +5 -5
  269. package/dist/{progress-Db2e4_Zd.cjs → progress-B5ChDPbB.cjs} +2 -2
  270. package/dist/{progress-Db2e4_Zd.cjs.map → progress-B5ChDPbB.cjs.map} +1 -1
  271. package/dist/{progress-DeiHxXo7.js → progress-CE1Pk2hi.js} +2 -2
  272. package/dist/{progress-DeiHxXo7.js.map → progress-CE1Pk2hi.js.map} +1 -1
  273. package/dist/progress.cjs +1 -1
  274. package/dist/progress.js +1 -1
  275. package/dist/{provide-DHnhQtCH.cjs → provide-BZ9lq_Be.cjs} +1 -1
  276. package/dist/{provide-DHnhQtCH.cjs.map → provide-BZ9lq_Be.cjs.map} +1 -1
  277. package/dist/{provide-C1aQhxYo.js → provide-jn1Fj1vv.js} +1 -1
  278. package/dist/{provide-C1aQhxYo.js.map → provide-jn1Fj1vv.js.map} +1 -1
  279. package/dist/qr-scanner.cjs +2 -2
  280. package/dist/qr-scanner.cjs.map +1 -1
  281. package/dist/qr-scanner.js +2 -2
  282. package/dist/radio-group-Cd9pZ2MR.cjs +40 -0
  283. package/dist/{radio-group-Cspwd-Vw.cjs.map → radio-group-Cd9pZ2MR.cjs.map} +1 -1
  284. package/dist/{radio-group-zSO0AkJf.js → radio-group-CyRHgIF3.js} +7 -6
  285. package/dist/{radio-group-zSO0AkJf.js.map → radio-group-CyRHgIF3.js.map} +1 -1
  286. package/dist/radio-group.cjs +1 -1
  287. package/dist/radio-group.js +1 -1
  288. package/dist/range.cjs +4 -4
  289. package/dist/range.cjs.map +1 -1
  290. package/dist/range.js +4 -3
  291. package/dist/range.js.map +1 -1
  292. package/dist/{reduced-motion-D-L12p7G.js.map → reduced-motion-B83yZbcO.js.map} +1 -1
  293. package/dist/{reduced-motion-Ds05GPyz.cjs.map → reduced-motion-DR32yKEO.cjs.map} +1 -1
  294. package/dist/{rxjs-utils-BSjmI9-Q.js.map → rxjs-utils-Bldch1RO.js.map} +1 -1
  295. package/dist/{rxjs-utils-DCsfzeap.cjs.map → rxjs-utils-hAgKC7vk.cjs.map} +1 -1
  296. package/dist/rxjs-utils.cjs +1 -1
  297. package/dist/rxjs-utils.js +1 -1
  298. package/dist/{scroll-QMCmbbDv.cjs → scroll-C_iNOi7E.cjs} +2 -2
  299. package/dist/{scroll-QMCmbbDv.cjs.map → scroll-C_iNOi7E.cjs.map} +1 -1
  300. package/dist/{scroll-cBDzye64.js → scroll-DoliwpRu.js} +7 -6
  301. package/dist/{scroll-cBDzye64.js.map → scroll-DoliwpRu.js.map} +1 -1
  302. package/dist/{search-C4dFHYbX.js.map → search-BlGJ6uJv.js.map} +1 -1
  303. package/dist/{search-Ds8tt7Et.cjs.map → search-C8eAOzBm.cjs.map} +1 -1
  304. package/dist/{select-Ct37l3lg.cjs → select-CWWuZ2iJ.cjs} +2 -2
  305. package/dist/{select-Ct37l3lg.cjs.map → select-CWWuZ2iJ.cjs.map} +1 -1
  306. package/dist/{select-c6HbWvKP.js → select-_vHPXi30.js} +3 -3
  307. package/dist/{select-c6HbWvKP.js.map → select-_vHPXi30.js.map} +1 -1
  308. package/dist/select.cjs +1 -1
  309. package/dist/select.js +1 -1
  310. package/dist/{sheet-BMXcUiIm.js → sheet-i1KtxGIj.js} +5 -5
  311. package/dist/{sheet-BMXcUiIm.js.map → sheet-i1KtxGIj.js.map} +1 -1
  312. package/dist/{sheet-CQec-bCV.cjs → sheet-r0oEYIdi.cjs} +2 -2
  313. package/dist/{sheet-CQec-bCV.cjs.map → sheet-r0oEYIdi.cjs.map} +1 -1
  314. package/dist/sheet.cjs +1 -1
  315. package/dist/sheet.js +2 -2
  316. package/dist/{sheet.service-Dumvr1HT.cjs → sheet.service-Cr13Oo6G.cjs} +1 -1
  317. package/dist/{sheet.service-Dumvr1HT.cjs.map → sheet.service-Cr13Oo6G.cjs.map} +1 -1
  318. package/dist/{sheet.service-BcPV3Du4.js → sheet.service-DUO5_kmI.js} +3 -3
  319. package/dist/{sheet.service-BcPV3Du4.js.map → sheet.service-DUO5_kmI.js.map} +1 -1
  320. package/dist/skeleton.cjs +33 -0
  321. package/dist/skeleton.cjs.map +1 -0
  322. package/dist/skeleton.js +58 -0
  323. package/dist/skeleton.js.map +1 -0
  324. package/dist/skills/INDEX.md +7 -6
  325. package/dist/skills/breadcrumb.md +53 -0
  326. package/dist/skills/kbd.md +40 -0
  327. package/dist/skills/schmancy/INDEX.md +7 -6
  328. package/dist/skills/schmancy/breadcrumb.md +53 -0
  329. package/dist/skills/schmancy/kbd.md +40 -0
  330. package/dist/skills/schmancy/skeleton.md +40 -0
  331. package/dist/skills/schmancy/splash-screen.md +60 -0
  332. package/dist/skills/schmancy/switch.md +58 -0
  333. package/dist/skills/schmancy/tooltip.md +1 -1
  334. package/dist/skills/schmancy/visually-hidden.md +41 -0
  335. package/dist/skills/skeleton.md +40 -0
  336. package/dist/skills/splash-screen.md +60 -0
  337. package/dist/skills/switch.md +58 -0
  338. package/dist/skills/tooltip.md +1 -1
  339. package/dist/skills/visually-hidden.md +41 -0
  340. package/dist/slider.cjs +3 -3
  341. package/dist/slider.cjs.map +1 -1
  342. package/dist/slider.js +2 -2
  343. package/dist/{sound.service-Bu3EQLv2.cjs → sound.service-BjSoGjmT.cjs} +1 -1
  344. package/dist/{sound.service-Bu3EQLv2.cjs.map → sound.service-BjSoGjmT.cjs.map} +1 -1
  345. package/dist/{sound.service-m3BrSfuH.js → sound.service-cdkw3Wkv.js} +1 -1
  346. package/dist/{sound.service-m3BrSfuH.js.map → sound.service-cdkw3Wkv.js.map} +1 -1
  347. package/dist/splash-screen-CquyPP1C.cjs +41 -0
  348. package/dist/splash-screen-CquyPP1C.cjs.map +1 -0
  349. package/dist/splash-screen-CvucPkpD.js +83 -0
  350. package/dist/splash-screen-CvucPkpD.js.map +1 -0
  351. package/dist/splash-screen.cjs +1 -0
  352. package/dist/splash-screen.js +1 -0
  353. package/dist/src-Bemk2C2P.cjs +269 -0
  354. package/dist/{src-BtQVyqMy.cjs.map → src-Bemk2C2P.cjs.map} +1 -1
  355. package/dist/{src-BLngW2bl.js → src-f5a3W9Mj.js} +98 -91
  356. package/dist/{src-BLngW2bl.js.map → src-f5a3W9Mj.js.map} +1 -1
  357. package/dist/steps.cjs +10 -10
  358. package/dist/steps.cjs.map +1 -1
  359. package/dist/steps.js +10 -9
  360. package/dist/steps.js.map +1 -1
  361. package/dist/{store-DYqDLAvT.js.map → store-Bmj6rvZY.js.map} +1 -1
  362. package/dist/{store-CorvD3bT.cjs.map → store-CO4nJyGj.cjs.map} +1 -1
  363. package/dist/store.cjs +1 -1
  364. package/dist/store.js +1 -1
  365. package/dist/surface-CDufon40.cjs +7 -0
  366. package/dist/{surface-BjKZoJxK.cjs.map → surface-CDufon40.cjs.map} +1 -1
  367. package/dist/surface-CkEYJCae.js +22 -0
  368. package/dist/{surface-pK8hME5c.js.map → surface-CkEYJCae.js.map} +1 -1
  369. package/dist/surface.cjs +1 -1
  370. package/dist/surface.js +1 -1
  371. package/dist/{surface.mixin-C5sDI1-_.cjs → surface.mixin-CSKqQH-0.cjs} +2 -2
  372. package/dist/{surface.mixin-C5sDI1-_.cjs.map → surface.mixin-CSKqQH-0.cjs.map} +1 -1
  373. package/dist/{surface.mixin-CBNRpJum.js → surface.mixin-DqMwoddO.js} +1 -1
  374. package/dist/{surface.mixin-CBNRpJum.js.map → surface.mixin-DqMwoddO.js.map} +1 -1
  375. package/dist/switch.cjs +69 -0
  376. package/dist/switch.cjs.map +1 -0
  377. package/dist/switch.js +132 -0
  378. package/dist/switch.js.map +1 -0
  379. package/dist/{table-CiqgZzSd.cjs → table-DWc1mkpj.cjs} +3 -3
  380. package/dist/{table-CiqgZzSd.cjs.map → table-DWc1mkpj.cjs.map} +1 -1
  381. package/dist/{table-BXIHX9h4.js → table-P6VGG7NK.js} +4 -4
  382. package/dist/{table-BXIHX9h4.js.map → table-P6VGG7NK.js.map} +1 -1
  383. package/dist/table.cjs +1 -1
  384. package/dist/table.js +1 -1
  385. package/dist/{tabs-nbV5eblZ.js → tabs-CjGjGrqY.js} +13 -12
  386. package/dist/{tabs-nbV5eblZ.js.map → tabs-CjGjGrqY.js.map} +1 -1
  387. package/dist/{tabs-CKa-W4qA.cjs → tabs-DGJEKuhC.cjs} +4 -4
  388. package/dist/{tabs-CKa-W4qA.cjs.map → tabs-DGJEKuhC.cjs.map} +1 -1
  389. package/dist/tabs.cjs +1 -1
  390. package/dist/tabs.js +1 -1
  391. package/dist/{tailwind.mixin-BF1Huas7.cjs → tailwind.mixin-Cpa-VnnX.cjs} +2 -2
  392. package/dist/tailwind.mixin-Cpa-VnnX.cjs.map +1 -0
  393. package/dist/{tailwind.mixin-BCJOOX1_.js → tailwind.mixin-DufHBjmb.js} +57 -63
  394. package/dist/tailwind.mixin-DufHBjmb.js.map +1 -0
  395. package/dist/teleport.cjs +1 -1
  396. package/dist/teleport.js +1 -1
  397. package/dist/{textarea-D7q8exMg.js → textarea-DZT_Ofp5.js} +42 -28
  398. package/dist/textarea-DZT_Ofp5.js.map +1 -0
  399. package/dist/textarea-jmTOXrzl.cjs +39 -0
  400. package/dist/textarea-jmTOXrzl.cjs.map +1 -0
  401. package/dist/textarea.cjs +1 -1
  402. package/dist/textarea.js +1 -1
  403. package/dist/theme-CCKqaksQ.cjs +181 -0
  404. package/dist/{theme-Da4SPq9X.cjs.map → theme-CCKqaksQ.cjs.map} +1 -1
  405. package/dist/{theme-_VPV6Bxh.js → theme-CEc32pAv.js} +13 -12
  406. package/dist/{theme-_VPV6Bxh.js.map → theme-CEc32pAv.js.map} +1 -1
  407. package/dist/theme-button-BsJcv-Zv.cjs +8 -0
  408. package/dist/{theme-button-Ci8VQ7KW.cjs.map → theme-button-BsJcv-Zv.cjs.map} +1 -1
  409. package/dist/{theme-button--sX8A-m1.js → theme-button-dOiAvdKU.js} +4 -3
  410. package/dist/{theme-button--sX8A-m1.js.map → theme-button-dOiAvdKU.js.map} +1 -1
  411. package/dist/theme-button.cjs +1 -1
  412. package/dist/theme-button.js +1 -1
  413. package/dist/theme.cjs +1 -1
  414. package/dist/{theme.events-Cv7N4Toe.js.map → theme.events-Bw3mYjUA.js.map} +1 -1
  415. package/dist/{theme.events-DM4H5F2d.cjs.map → theme.events-EznKK2Y0.cjs.map} +1 -1
  416. package/dist/{theme.interface-Da23QAYb.cjs.map → theme.interface-CM26m9te.cjs.map} +1 -1
  417. package/dist/{theme.interface-CXloMUCw.js.map → theme.interface-FAUIgbIq.js.map} +1 -1
  418. package/dist/theme.js +5 -5
  419. package/dist/{theme.service-C_tjlqgy.cjs → theme.service-ETiKUwVy.cjs} +1 -1
  420. package/dist/{theme.service-C_tjlqgy.cjs.map → theme.service-ETiKUwVy.cjs.map} +1 -1
  421. package/dist/{theme.service-D9lEas89.js → theme.service-_qP5WvB9.js} +2 -2
  422. package/dist/{theme.service-D9lEas89.js.map → theme.service-_qP5WvB9.js.map} +1 -1
  423. package/dist/tooltip.cjs +1 -6
  424. package/dist/tooltip.cjs.map +1 -1
  425. package/dist/tooltip.js +51 -135
  426. package/dist/tooltip.js.map +1 -1
  427. package/dist/tree.cjs +14 -5
  428. package/dist/tree.cjs.map +1 -1
  429. package/dist/tree.js +28 -6
  430. package/dist/tree.js.map +1 -1
  431. package/dist/tslib.es6-Bd-92OW3.cjs +1 -0
  432. package/dist/{tslib.es6-D7BIeDVB.cjs.map → tslib.es6-Bd-92OW3.cjs.map} +1 -1
  433. package/dist/tslib.es6-CI1onEZb.js +7 -0
  434. package/dist/{tslib.es6-ErZEp3OO.js.map → tslib.es6-CI1onEZb.js.map} +1 -1
  435. package/dist/typewriter-ByIL2Mh-.cjs +123 -0
  436. package/dist/{typewriter-B2TnHPjw.cjs.map → typewriter-ByIL2Mh-.cjs.map} +1 -1
  437. package/dist/{typewriter-BrZNa8T-.js → typewriter-vOQ3bDLb.js} +8 -7
  438. package/dist/{typewriter-BrZNa8T-.js.map → typewriter-vOQ3bDLb.js.map} +1 -1
  439. package/dist/typewriter.cjs +1 -1
  440. package/dist/typewriter.js +1 -1
  441. package/dist/typography.cjs +4 -4
  442. package/dist/typography.cjs.map +1 -1
  443. package/dist/typography.js +10 -9
  444. package/dist/typography.js.map +1 -1
  445. package/dist/{utils-CoU7M2YS.js → utils-Cq0m3LYo.js} +3 -3
  446. package/dist/{utils-CoU7M2YS.js.map → utils-Cq0m3LYo.js.map} +1 -1
  447. package/dist/{utils-BcaKtQuA.cjs → utils-D2kE-6zc.cjs} +1 -1
  448. package/dist/{utils-BcaKtQuA.cjs.map → utils-D2kE-6zc.cjs.map} +1 -1
  449. package/dist/utils.cjs +1 -1
  450. package/dist/utils.js +5 -5
  451. package/dist/visually-hidden.cjs +13 -0
  452. package/dist/visually-hidden.cjs.map +1 -0
  453. package/dist/visually-hidden.js +24 -0
  454. package/dist/visually-hidden.js.map +1 -0
  455. package/dist/{window-Uii13x_r.cjs → window-BS7ZQjgH.cjs} +2 -2
  456. package/dist/window-BS7ZQjgH.cjs.map +1 -0
  457. package/dist/{window-CM1ycigo.js → window-WnAihpsA.js} +7 -7
  458. package/dist/window-WnAihpsA.js.map +1 -0
  459. package/dist/window.cjs +1 -1
  460. package/dist/window.js +1 -1
  461. package/mixins/formField.mixin.ts +96 -69
  462. package/mixins/tailwind.css +11 -0
  463. package/package.json +17 -26
  464. package/skills/schmancy/INDEX.md +7 -6
  465. package/skills/schmancy/breadcrumb.md +53 -0
  466. package/skills/schmancy/kbd.md +40 -0
  467. package/skills/schmancy/skeleton.md +40 -0
  468. package/skills/schmancy/splash-screen.md +60 -0
  469. package/skills/schmancy/switch.md +58 -0
  470. package/skills/schmancy/tooltip.md +1 -1
  471. package/skills/schmancy/visually-hidden.md +41 -0
  472. package/src/audio/emotional-sounds.ts +2 -4
  473. package/src/autocomplete/autocomplete.ts +52 -2
  474. package/src/breadcrumb/breadcrumb.ts +109 -0
  475. package/src/breadcrumb/index.ts +1 -0
  476. package/src/button/button.ts +40 -0
  477. package/src/button/icon-button.ts +2 -1
  478. package/src/checkbox/checkbox.test.ts +113 -0
  479. package/src/checkbox/checkbox.ts +41 -1
  480. package/src/chips/filter-chip.ts +15 -0
  481. package/src/chips/input-chip.ts +7 -0
  482. package/src/date-range/date-range-helpers.ts +0 -71
  483. package/src/dialog/dialog-base.mixin.ts +11 -0
  484. package/src/dialog/dialog.component.ts +28 -8
  485. package/src/dropdown/dropdown-content.ts +3 -1
  486. package/src/form/form.test.ts +137 -0
  487. package/src/form/form.ts +142 -158
  488. package/src/form/index.ts +2 -2
  489. package/src/icons/icon.ts +1 -0
  490. package/src/index.ts +6 -0
  491. package/src/kbd/index.ts +1 -0
  492. package/src/kbd/kbd.ts +59 -0
  493. package/src/skeleton/index.ts +1 -0
  494. package/src/skeleton/skeleton.ts +78 -0
  495. package/src/splash-screen/index.ts +1 -0
  496. package/src/splash-screen/splash-screen.ts +154 -0
  497. package/src/switch/index.ts +1 -0
  498. package/src/switch/switch.test.ts +93 -0
  499. package/src/switch/switch.ts +180 -0
  500. package/src/test-utils/a11y.ts +35 -0
  501. package/src/textarea/textarea.ts +32 -2
  502. package/src/tooltip/index.ts +1 -2
  503. package/src/tree/tree.ts +27 -2
  504. package/src/visually-hidden/index.ts +1 -0
  505. package/src/visually-hidden/visually-hidden.ts +39 -0
  506. package/src/window/window-position.ts +1 -74
  507. package/types/mixins/formField.mixin.d.ts +15 -8
  508. package/types/src/audio/emotional-sounds.d.ts +0 -2
  509. package/types/src/autocomplete/autocomplete.d.ts +7 -0
  510. package/types/src/breadcrumb/breadcrumb.d.ts +38 -0
  511. package/types/src/breadcrumb/index.d.ts +1 -0
  512. package/types/src/button/button.d.ts +7 -0
  513. package/types/src/button/icon-button.d.ts +2 -1
  514. package/types/src/checkbox/checkbox.d.ts +6 -0
  515. package/types/src/checkbox/checkbox.test.d.ts +1 -0
  516. package/types/src/chips/filter-chip.d.ts +3 -0
  517. package/types/src/chips/input-chip.d.ts +1 -0
  518. package/types/src/date-range/date-range-helpers.d.ts +0 -12
  519. package/types/src/dialog/dialog.component.d.ts +6 -0
  520. package/types/src/dropdown/dropdown-content.d.ts +3 -1
  521. package/types/src/form/form-v2.d.ts +12 -63
  522. package/types/src/form/form.d.ts +58 -40
  523. package/types/src/form/form.test.d.ts +4 -0
  524. package/types/src/form/index.d.ts +1 -1
  525. package/types/src/icons/icon.d.ts +1 -0
  526. package/types/src/index.d.ts +6 -0
  527. package/types/src/kbd/index.d.ts +1 -0
  528. package/types/src/kbd/kbd.d.ts +25 -0
  529. package/types/src/skeleton/index.d.ts +1 -0
  530. package/types/src/skeleton/skeleton.d.ts +27 -0
  531. package/types/src/splash-screen/index.d.ts +1 -0
  532. package/types/src/splash-screen/splash-screen.d.ts +60 -0
  533. package/types/src/switch/index.d.ts +1 -0
  534. package/types/src/switch/switch.d.ts +54 -0
  535. package/types/src/switch/switch.test.d.ts +1 -0
  536. package/types/src/test-utils/a11y.d.ts +11 -0
  537. package/types/src/textarea/textarea.d.ts +5 -1
  538. package/types/src/tooltip/index.d.ts +0 -1
  539. package/types/src/tree/tree.d.ts +5 -0
  540. package/types/src/visually-hidden/index.d.ts +1 -0
  541. package/types/src/visually-hidden/visually-hidden.d.ts +21 -0
  542. package/types/src/window/window-position.d.ts +1 -35
  543. package/dist/audio-DtYYgzYD.cjs.map +0 -1
  544. package/dist/audio-kz8UgPTO.js.map +0 -1
  545. package/dist/autocomplete-5rVhbieU.cjs +0 -111
  546. package/dist/autocomplete-5rVhbieU.cjs.map +0 -1
  547. package/dist/autocomplete-BllPQwr8.js.map +0 -1
  548. package/dist/chips-B19XS8Xc.cjs.map +0 -1
  549. package/dist/chips-B9oAEfE_.js.map +0 -1
  550. package/dist/components-CyD6a7gQ.cjs +0 -73
  551. package/dist/date-range-Sfyco9-n.js.map +0 -1
  552. package/dist/date-range-ZAaQB22I.cjs.map +0 -1
  553. package/dist/date-range-inline-m7nLjOMI.cjs +0 -43
  554. package/dist/delay-7boauN6N.cjs +0 -9
  555. package/dist/float-D5rNC82i.cjs +0 -1
  556. package/dist/form-BqN1AGFj.cjs +0 -1
  557. package/dist/form-BqN1AGFj.cjs.map +0 -1
  558. package/dist/form-CajC5HnO.js +0 -270
  559. package/dist/form-CajC5HnO.js.map +0 -1
  560. package/dist/icons-B57_93VV.cjs.map +0 -1
  561. package/dist/icons-BDqiGXrO.js.map +0 -1
  562. package/dist/input-chip-Dy-AiP55.cjs.map +0 -1
  563. package/dist/input-chip-QejNcRnS.js.map +0 -1
  564. package/dist/layout-DNYG3phx.cjs +0 -17
  565. package/dist/notification-CZFEhWxc.cjs +0 -23
  566. package/dist/radio-group-Cspwd-Vw.cjs +0 -40
  567. package/dist/src-BtQVyqMy.cjs +0 -269
  568. package/dist/surface-BjKZoJxK.cjs +0 -7
  569. package/dist/surface-pK8hME5c.js +0 -21
  570. package/dist/tailwind.mixin-BCJOOX1_.js.map +0 -1
  571. package/dist/tailwind.mixin-BF1Huas7.cjs.map +0 -1
  572. package/dist/textarea-Cp1ZE60O.cjs +0 -35
  573. package/dist/textarea-Cp1ZE60O.cjs.map +0 -1
  574. package/dist/textarea-D7q8exMg.js.map +0 -1
  575. package/dist/theme-Da4SPq9X.cjs +0 -181
  576. package/dist/theme-button-Ci8VQ7KW.cjs +0 -8
  577. package/dist/typewriter-B2TnHPjw.cjs +0 -123
  578. package/dist/window-CM1ycigo.js.map +0 -1
  579. package/dist/window-Uii13x_r.cjs.map +0 -1
  580. package/src/form/form-v2.ts +0 -268
  581. package/src/layout/v2/grid.ts +0 -93
  582. package/src/notification/outlet.ts +0 -16
  583. package/src/store/immer-integration.ts +0 -99
  584. package/src/tooltip/tooltip.ts +0 -216
  585. /package/dist/{animation-CO_Csq84.cjs → animation-Bcwh107v.cjs} +0 -0
  586. /package/dist/{animation-BK-8BwY8.js → animation-CXKSuUoE.js} +0 -0
  587. /package/dist/{tslib.es6-ErZEp3OO.js → decorate-D_utPUsC.js} +0 -0
  588. /package/dist/{tslib.es6-D7BIeDVB.cjs → decorate-F9CuyeHg.cjs} +0 -0
  589. /package/dist/{flow-CUj0fDT_.js → flow-CqgDEIqK.js} +0 -0
  590. /package/dist/{flow-Bbwn6dRN.cjs → flow-DSu4PLt1.cjs} +0 -0
  591. /package/dist/{hashContent-DaeGmY-p.cjs → hashContent-kKvXKFa9.cjs} +0 -0
  592. /package/dist/{hashContent-DYM21p6t.js → hashContent-nD2uWwi2.js} +0 -0
  593. /package/dist/{intersection-CZpaIHeT.cjs → intersection-D1v1UCVv.cjs} +0 -0
  594. /package/dist/{intersection-BPLpqYEd.js → intersection-LfEsy29T.js} +0 -0
  595. /package/dist/{overlay-stack-DQey9Qph.cjs → overlay-stack-CEYGD9T1.cjs} +0 -0
  596. /package/dist/{overlay-stack-DT1SdaGW.js → overlay-stack-Ca4EK2Mu.js} +0 -0
  597. /package/dist/{reduced-motion-D-L12p7G.js → reduced-motion-B83yZbcO.js} +0 -0
  598. /package/dist/{reduced-motion-Ds05GPyz.cjs → reduced-motion-DR32yKEO.cjs} +0 -0
  599. /package/dist/{rxjs-utils-BSjmI9-Q.js → rxjs-utils-Bldch1RO.js} +0 -0
  600. /package/dist/{rxjs-utils-DCsfzeap.cjs → rxjs-utils-hAgKC7vk.cjs} +0 -0
  601. /package/dist/{search-C4dFHYbX.js → search-BlGJ6uJv.js} +0 -0
  602. /package/dist/{search-Ds8tt7Et.cjs → search-C8eAOzBm.cjs} +0 -0
  603. /package/dist/{store-DYqDLAvT.js → store-Bmj6rvZY.js} +0 -0
  604. /package/dist/{store-CorvD3bT.cjs → store-CO4nJyGj.cjs} +0 -0
  605. /package/dist/{theme.events-Cv7N4Toe.js → theme.events-Bw3mYjUA.js} +0 -0
  606. /package/dist/{theme.events-DM4H5F2d.cjs → theme.events-EznKK2Y0.cjs} +0 -0
  607. /package/dist/{theme.interface-Da23QAYb.cjs → theme.interface-CM26m9te.cjs} +0 -0
  608. /package/dist/{theme.interface-CXloMUCw.js → theme.interface-FAUIgbIq.js} +0 -0
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mhmo91/schmancy",
3
- "version": "0.9.5",
3
+ "version": "0.9.6",
4
4
  "description": "UI library build with web components",
5
5
  "main": "./dist/index.js",
6
6
  "customElements": "custom-elements.json",
@@ -53,7 +53,10 @@
53
53
  "test": "vitest run",
54
54
  "test:watch": "vitest",
55
55
  "test:ui": "vitest --ui",
56
- "test:coverage": "vitest run --coverage"
56
+ "test:coverage": "vitest run --coverage",
57
+ "knip": "knip",
58
+ "format": "prettier --write 'src/**/*.{ts,css,scss}' 'mixins/**/*.{ts,css}'",
59
+ "format:check": "prettier --check 'src/**/*.{ts,css,scss}' 'mixins/**/*.{ts,css}'"
57
60
  },
58
61
  "author": "@mhmo91",
59
62
  "license": "Apache-2.0",
@@ -67,53 +70,41 @@
67
70
  "@lit-labs/virtualizer": "^2.1.1",
68
71
  "@lit/context": "^1.1.6",
69
72
  "@material/material-color-utilities": "^0.4.0",
70
- "@material/mwc-base": "^0.27.0",
71
73
  "@material/web": "^2.4.1",
72
- "@rollup/plugin-strip": "^3.0.4",
73
- "@rollup/plugin-terser": "^1.0.0",
74
- "@tailwindcss/nesting": "^0.0.0-insiders.565cd3e",
75
74
  "@types/cleave.js": "^1.4.12",
76
- "@webcomponents/scoped-custom-element-registry": "^0.0.10",
77
- "@webcomponents/webcomponentsjs": "^2.8.0",
78
75
  "cleave.js": "^1.6.0",
79
76
  "dayjs": "^1.11.20",
80
- "fastest-levenshtein": "^1.0.16",
81
77
  "highlight.js": "^11.11.1",
82
78
  "immer": "^11.1.4",
83
79
  "jsqr": "^1.4.0",
84
80
  "lit": "^3.3.2",
85
- "playground-elements": "^0.21.2",
86
81
  "rxjs": "^7.8.2",
87
- "tippy.js": "^6.3.7",
88
82
  "ts-is-present": "^1.2.2",
89
- "typeit": "^8.8.7",
90
- "typescript": "^5.9.3",
91
- "uuid": "^13.0.0",
92
- "web-component-analyzer": "^2.0.0"
83
+ "typeit": "^8.8.7"
93
84
  },
94
85
  "devDependencies": {
95
- "@tailwindcss/container-queries": "^0.1.1",
96
- "@tailwindcss/forms": "^0.5.11",
86
+ "@rollup/plugin-strip": "^3.0.4",
87
+ "@rollup/plugin-terser": "^1.0.0",
97
88
  "@tailwindcss/postcss": "^4.2.1",
98
89
  "@tailwindcss/vite": "^4.2.1",
99
90
  "@types/node": "^25.5.0",
100
- "@types/uuid": "^11.0.0",
101
- "@typescript-eslint/parser": "^8.57.1",
91
+ "@vitest/browser-playwright": "^4.1.4",
92
+ "@vitest/coverage-v8": "^4.1.5",
102
93
  "@vitest/ui": "^4.1.0",
103
- "autoprefixer": "^10.4.27",
104
- "c8": "^11.0.0",
105
- "concurrently": "^9.2.1",
106
- "deepmerge": "^4.3.1",
107
- "eslint": "^10.0.3",
94
+ "axe-core": "^4.11.3",
108
95
  "happy-dom": "^20.8.4",
96
+ "knip": "^6.6.0",
97
+ "playwright": "^1.59.1",
109
98
  "postcss": "^8.5.8",
110
99
  "prettier": "^3.8.1",
111
100
  "rollup-plugin-copy": "^3.5.0",
112
101
  "sass": "^1.98.0",
113
102
  "tailwindcss": "^4.2.1",
103
+ "ts-lit-plugin": "^2.0.2",
104
+ "typescript": "^5.9.3",
114
105
  "vite": "^8.0.0",
115
- "vite-plugin-sitemap": "^0.8.2",
116
- "vitest": "^4.1.0"
106
+ "vitest": "^4.1.0",
107
+ "web-component-analyzer": "^2.0.0"
117
108
  },
118
109
  "peerDependencies": {
119
110
  "lit": "^3.2.1",
@@ -16,25 +16,25 @@ The framework pieces — touch before components.
16
16
  ## Components by job
17
17
 
18
18
  ### Display
19
- [Typography](./typography.md) · [Icons](./icons.md) · [Avatar](./avatar.md) · [Divider](./divider.md) · [Badge](./badge.md) · [Code Highlight](./code-highlight.md) · [Typewriter](./typewriter.md) · [JSON](./json.md) · [Iframe](./iframe.md) · [Map](./map.md) · [Charts](./charts.md)
19
+ [Typography](./typography.md) · [Icons](./icons.md) · [Avatar](./avatar.md) · [Divider](./divider.md) · [Badge](./badge.md) · [Kbd](./kbd.md) · [Code Highlight](./code-highlight.md) · [Typewriter](./typewriter.md) · [JSON](./json.md) · [Iframe](./iframe.md) · [Map](./map.md) · [Charts](./charts.md)
20
20
 
21
21
  ### Surfaces & layout
22
- [Surface](./surface.md) · [Card](./card.md) · [Scroll / Grid / Flex](./layout.md) · [Page](./page.md) · [Content Drawer](./content-drawer.md) · [Window](./window.md) · [Boat](./boat.md) · [Float](./float.md)
22
+ [Surface](./surface.md) · [Card](./card.md) · [Scroll / Grid / Flex](./layout.md) · [Page](./page.md) · [Content Drawer](./content-drawer.md) · [Window](./window.md) · [Boat](./boat.md) · [Float](./float.md) · [Splash Screen](./splash-screen.md)
23
23
 
24
24
  ### Forms
25
- [Form](./form.md) · [Input](./input.md) · [Textarea](./textarea.md) · [Select](./select.md) · [Autocomplete](./autocomplete.md) · [Option](./option.md) · [Checkbox](./checkbox.md) · [Radio Group](./radio-group.md) · [Chips](./chips.md) · [Date Range](./date-range.md) · [Date Range Inline](./date-range-inline.md) · [Range](./range.md) · [Extra (Country/Timezone)](./extra.md)
25
+ [Form](./form.md) · [Input](./input.md) · [Textarea](./textarea.md) · [Select](./select.md) · [Autocomplete](./autocomplete.md) · [Option](./option.md) · [Checkbox](./checkbox.md) · [Switch](./switch.md) · [Radio Group](./radio-group.md) · [Chips](./chips.md) · [Date Range](./date-range.md) · [Date Range Inline](./date-range-inline.md) · [Range](./range.md) · [Extra (Country/Timezone)](./extra.md)
26
26
 
27
27
  ### Navigation
28
- [Nav Drawer](./nav-drawer.md) · [Tabs](./tabs.md) · [Navigation Bar](./navigation-bar.md) · [Navigation Rail](./navigation-rail.md) · [Steps](./steps.md) · [Teleport](./teleport.md) · [Theme Button](./theme-button.md)
28
+ [Breadcrumb](./breadcrumb.md) · [Nav Drawer](./nav-drawer.md) · [Tabs](./tabs.md) · [Navigation Bar](./navigation-bar.md) · [Navigation Rail](./navigation-rail.md) · [Steps](./steps.md) · [Teleport](./teleport.md) · [Theme Button](./theme-button.md)
29
29
 
30
30
  ### Overlays
31
- [Dialog](./dialog.md) · [Sheet](./sheet.md) · [Notification](./notification.md) · [Menu](./menu.md) · [Dropdown](./dropdown.md) · [Tooltip](./tooltip.md) · [Lightbox](./lightbox.md) · [Expand](./expand.md)
31
+ [Dialog](./dialog.md) · [Sheet](./sheet.md) · [Notification](./notification.md) · [Menu](./menu.md) · [Dropdown](./dropdown.md) · [Tooltip (directive)](./tooltip.md) · [Lightbox](./lightbox.md) · [Expand](./expand.md)
32
32
 
33
33
  ### Interactive
34
34
  [Button](./button.md) · [List](./list.md) · [Details](./details.md) · [Table](./table.md) · [Tree](./tree.md) · [Slider](./slider.md) · [QR Scanner](./qr-scanner.md)
35
35
 
36
36
  ### Feedback
37
- [Progress](./progress.md) · [Busy](./busy.md) · [Connectivity](./connectivity.md) · [Delay](./delay.md)
37
+ [Progress](./progress.md) · [Busy](./busy.md) · [Skeleton](./skeleton.md) · [Connectivity](./connectivity.md) · [Delay](./delay.md)
38
38
 
39
39
  ### Domain
40
40
  [Mailbox](./mailbox.md)
@@ -57,6 +57,7 @@ The framework pieces — touch before components.
57
57
  [Discovery](./discovery.md) — cross-shadow component lookup.
58
58
  [RxJS Utils](./rxjs-utils.md) — `waitForElement`, `waitUntil`, `mutationObserver`.
59
59
  [Utils](./utils.md) — `similarity`, `numbers`, `overlayStack`, `intersection$`, `hashContent`.
60
+ [Visually Hidden](./visually-hidden.md) — screen-reader-only content wrapper.
60
61
  [Audio](./audio.md) — synthesized feedback sounds.
61
62
 
62
63
  ## Conventions
@@ -0,0 +1,53 @@
1
+ # schmancy-breadcrumb
2
+
3
+ > Breadcrumb navigation with auto-inserted separators and ARIA landmark semantics.
4
+
5
+ ## Usage
6
+ ```html
7
+ <schmancy-breadcrumb>
8
+ <schmancy-breadcrumb-item href="/">Home</schmancy-breadcrumb-item>
9
+ <schmancy-breadcrumb-item href="/projects">Projects</schmancy-breadcrumb-item>
10
+ <schmancy-breadcrumb-item current>Dashboard</schmancy-breadcrumb-item>
11
+ </schmancy-breadcrumb>
12
+ ```
13
+
14
+ ## schmancy-breadcrumb
15
+
16
+ Container. Renders a `<nav aria-label="Breadcrumb">` and inserts a separator element between each slotted item.
17
+
18
+ | Property | Type | Default | Description |
19
+ |----------|------|---------|-------------|
20
+ | separator | string | `'/'` | Character or string rendered between items. Hidden from assistive tech via `aria-hidden="true"`. |
21
+
22
+ | Part | Description |
23
+ |------|-------------|
24
+ | separator | Each inserted separator element. Style bulk via `schmancy-breadcrumb::part(separator)`. |
25
+
26
+ The host sets `aria-label="Breadcrumb"` on connection if none was already set.
27
+
28
+ ## schmancy-breadcrumb-item
29
+
30
+ Individual crumb. Renders as `<a>` when `href` is set, otherwise `<span>`.
31
+
32
+ | Property | Type | Default | Description |
33
+ |----------|------|---------|-------------|
34
+ | href | string | `''` | When set (and `current` is false), renders as an anchor. |
35
+ | current | boolean | `false` | Marks this item as `aria-current="page"`. Renders as a plain `<span>` even if `href` is set. |
36
+
37
+ ## Examples
38
+ ```html
39
+ <!-- Custom separator -->
40
+ <schmancy-breadcrumb separator="›">
41
+ <schmancy-breadcrumb-item href="/">Home</schmancy-breadcrumb-item>
42
+ <schmancy-breadcrumb-item href="/docs">Docs</schmancy-breadcrumb-item>
43
+ <schmancy-breadcrumb-item current>API</schmancy-breadcrumb-item>
44
+ </schmancy-breadcrumb>
45
+ ```
46
+
47
+ ```html
48
+ <!-- Two-level (just two crumbs) -->
49
+ <schmancy-breadcrumb>
50
+ <schmancy-breadcrumb-item href="/users">Users</schmancy-breadcrumb-item>
51
+ <schmancy-breadcrumb-item current>Jane Doe</schmancy-breadcrumb-item>
52
+ </schmancy-breadcrumb>
53
+ ```
@@ -0,0 +1,40 @@
1
+ # schmancy-kbd
2
+
3
+ > Render a keyboard shortcut hint. Semantically a `<kbd>` element; visually styled as a pressed key.
4
+
5
+ ## Usage
6
+ ```html
7
+ Press <schmancy-kbd>⌘</schmancy-kbd> + <schmancy-kbd>K</schmancy-kbd> to search.
8
+ ```
9
+
10
+ ## Properties
11
+ | Property | Type | Default | Description |
12
+ |----------|------|---------|-------------|
13
+ | size | `'sm'\|'md'` | `'md'` | Smaller variant for inline text. |
14
+
15
+ ## Parts
16
+ | Part | Description |
17
+ |------|-------------|
18
+ | base | The inner native `<kbd>` element. |
19
+
20
+ ## Examples
21
+ ```html
22
+ <!-- Inline combo -->
23
+ <schmancy-typography>
24
+ <schmancy-kbd size="sm">Shift</schmancy-kbd>
25
+ +
26
+ <schmancy-kbd size="sm">Tab</schmancy-kbd>
27
+ to move backwards
28
+ </schmancy-typography>
29
+ ```
30
+
31
+ ```html
32
+ <!-- Command palette shortcut -->
33
+ <div class="flex items-center gap-2">
34
+ Open command palette
35
+ <span>
36
+ <schmancy-kbd>⌘</schmancy-kbd>
37
+ <schmancy-kbd>K</schmancy-kbd>
38
+ </span>
39
+ </div>
40
+ ```
@@ -0,0 +1,40 @@
1
+ # schmancy-skeleton
2
+
3
+ > Placeholder shimmer surface shown while content loads. Reduced-motion-aware.
4
+
5
+ ## Usage
6
+ ```html
7
+ <schmancy-skeleton width="12rem" height="1rem"></schmancy-skeleton>
8
+ ```
9
+
10
+ ## Properties
11
+ | Property | Type | Default | Description |
12
+ |----------|------|---------|-------------|
13
+ | shape | `'rect'\|'circle'\|'text'` | `'rect'` | Visual shape. `circle` forces 50% border radius; `text` defaults height to `1em`. |
14
+ | width | string (CSS length) | `100%` | Any CSS length (e.g. `12rem`, `50%`). |
15
+ | height | string (CSS length) | `1rem` (or `1em` when `shape=text`) | Any CSS length. |
16
+ | radius | string (CSS length) | `0.25rem` | Corner radius; ignored when `shape=circle`. |
17
+
18
+ ## Parts
19
+ | Part | Description |
20
+ |------|-------------|
21
+ | surface | The shimmering inner surface. |
22
+
23
+ ## Accessibility
24
+ The host sets `role="status" aria-busy="true" aria-label="Loading"` on connection, so assistive tech announces the loading region. Under `prefers-reduced-motion: reduce`, the shimmer animation is removed and a flat surface color is used.
25
+
26
+ ## Examples
27
+ ```html
28
+ <!-- Single line of text -->
29
+ <schmancy-skeleton shape="text" width="60%"></schmancy-skeleton>
30
+
31
+ <!-- Avatar placeholder -->
32
+ <schmancy-skeleton shape="circle" width="48px" height="48px"></schmancy-skeleton>
33
+
34
+ <!-- Card placeholder -->
35
+ <schmancy-card>
36
+ <schmancy-skeleton width="100%" height="160px" radius="0.5rem"></schmancy-skeleton>
37
+ <schmancy-skeleton shape="text" width="80%"></schmancy-skeleton>
38
+ <schmancy-skeleton shape="text" width="40%"></schmancy-skeleton>
39
+ </schmancy-card>
40
+ ```
@@ -0,0 +1,60 @@
1
+ # schmancy-splash-screen
2
+
3
+ > Full-viewport splash overlay that fades out once ready; consumer supplies the visuals.
4
+
5
+ ## Usage
6
+ ```html
7
+ <schmancy-splash-screen min-duration="1200">
8
+ <my-logo slot="splash"></my-logo>
9
+ <my-app></my-app>
10
+ </schmancy-splash-screen>
11
+ ```
12
+
13
+ The `splash` slot holds the overlay content (logo, animation, whatever). The default slot is the real app, revealed after the splash dismisses. The overlay is empty by default — no built-in spinner, no hidden dependencies. Bring your own visuals.
14
+
15
+ ## Properties
16
+ | Property | Type | Default | Description |
17
+ |----------|------|---------|-------------|
18
+ | minDuration | number | `1500` | Minimum ms the splash stays visible (prevents flash on fast loads). |
19
+ | auto | boolean | `false` | When true, dismiss on the `minDuration` timer alone. When false, also wait for a `ready` signal. |
20
+ | initiallyHidden | boolean | `false` | When true, the splash starts hidden. Use with `show()` for imperative control (e.g. between route transitions). |
21
+
22
+ ## Methods
23
+ | Method | Description |
24
+ |--------|-------------|
25
+ | `ready()` | Signal that the app is ready — dismisses once `minDuration` has also elapsed. |
26
+ | `show()` | Force the splash back on (e.g. re-show between route transitions). |
27
+
28
+ ## Events
29
+ | Event | Detail | Description |
30
+ |-------|--------|-------------|
31
+ | schmancy-splash-done | `void` | Fires when the splash finishes dismissing. |
32
+
33
+ ## CSS custom properties
34
+ | Property | Default | Description |
35
+ |----------|---------|-------------|
36
+ | `--schmancy-splash-background` | `var(--schmancy-sys-color-surface-containerLowest, #000)` | Splash layer background. |
37
+ | `--schmancy-splash-transition` | `500ms` | Fade duration. |
38
+
39
+ ## Examples
40
+ ```html
41
+ <!-- Wait for explicit ready signal (default) -->
42
+ <schmancy-splash-screen min-duration="800">
43
+ <img slot="splash" src="/logo.svg" />
44
+ <main-app></main-app>
45
+ </schmancy-splash-screen>
46
+ ```
47
+
48
+ ```typescript
49
+ // Imperative: signal ready when data loads
50
+ const splash = document.querySelector('schmancy-splash-screen')!
51
+ dataStore.loaded$.subscribe(() => splash.ready())
52
+ ```
53
+
54
+ ```html
55
+ <!-- Auto mode: dismisses purely on the timer -->
56
+ <schmancy-splash-screen min-duration="1200" auto>
57
+ <schmancy-typography type="display" token="lg" slot="splash">Welcome</schmancy-typography>
58
+ <app-shell></app-shell>
59
+ </schmancy-splash-screen>
60
+ ```
@@ -0,0 +1,58 @@
1
+ # schmancy-switch
2
+
3
+ > Binary on/off control. Form-associated, ARIA `role="switch"`. Use for immediate state changes; use `<schmancy-checkbox>` for form selections.
4
+
5
+ ## Usage
6
+ ```html
7
+ <schmancy-switch name="notifications" label="Email notifications" @change=${(e) => handle(e.detail.value)}>
8
+ </schmancy-switch>
9
+ ```
10
+
11
+ ## Properties
12
+ | Property | Type | Default | Description |
13
+ |----------|------|---------|-------------|
14
+ | checked | boolean | `false` | Current on/off state. Reflected as attribute. |
15
+ | name | string | `''` | Form submission name. |
16
+ | value | string | `'on'` | Value submitted when checked. |
17
+ | label | string | `''` | ARIA label on the inner button; also used by axe. |
18
+ | required | boolean | `false` | Must be on for form validity. |
19
+ | disabled | boolean | `false` | Disables interaction. |
20
+
21
+ ## Events
22
+ | Event | Detail | Description |
23
+ |-------|--------|-------------|
24
+ | change | `{ value: boolean }` | Fires when the state toggles (via click or Enter/Space). |
25
+
26
+ ## Parts
27
+ | Part | Description |
28
+ |------|-------------|
29
+ | track | Background track element. |
30
+ | thumb | Moving thumb element. |
31
+
32
+ ## States
33
+ | State | When |
34
+ |-------|------|
35
+ | `:state(checked)` | While the switch is on. Target via `schmancy-switch:state(checked) { … }`. |
36
+
37
+ ## Form association
38
+ Uses `ElementInternals` — participates in `<form>` submission natively. Contributes `name=value` when checked; omitted when unchecked. `formResetCallback` restores the initial `checked` attribute. `formDisabledCallback` propagates `<fieldset disabled>`.
39
+
40
+ ## Examples
41
+ ```html
42
+ <!-- Inside a form -->
43
+ <schmancy-form>
44
+ <schmancy-switch name="marketing" label="Marketing emails"></schmancy-switch>
45
+ <schmancy-switch name="product" label="Product updates" checked></schmancy-switch>
46
+ <schmancy-button type="submit">Save</schmancy-button>
47
+ </schmancy-form>
48
+ ```
49
+
50
+ ```html
51
+ <!-- Required toggle (must be on to submit) -->
52
+ <schmancy-switch name="agree" label="I agree" required></schmancy-switch>
53
+ ```
54
+
55
+ ```html
56
+ <!-- Custom submitted value -->
57
+ <schmancy-switch name="mode" value="dark" label="Dark mode"></schmancy-switch>
58
+ ```
@@ -1,6 +1,6 @@
1
1
  # tooltip (directive)
2
2
 
3
- > Lit directive that adds a positioned tooltip to any element on hover/focus.
3
+ > Lit directive that adds a positioned tooltip to any element on hover/focus. The `<schmancy-tooltip>` component was removed — use this directive.
4
4
 
5
5
  ## Usage
6
6
  ```typescript
@@ -0,0 +1,41 @@
1
+ # schmancy-visually-hidden
2
+
3
+ > Hide content visually while keeping it in the accessibility tree. For screen-reader-only labels, supplemental descriptions, and live-region text.
4
+
5
+ ## Usage
6
+ ```html
7
+ <button>
8
+ <schmancy-icon>close</schmancy-icon>
9
+ <schmancy-visually-hidden>Close dialog</schmancy-visually-hidden>
10
+ </button>
11
+ ```
12
+
13
+ ## Why not `display: none` / `visibility: hidden` / `aria-hidden`?
14
+ Those remove content from assistive tech too. `<schmancy-visually-hidden>` uses the WCAG-recommended clip pattern, so screen readers still read the content while sighted users don't see it.
15
+
16
+ ## Properties
17
+ None. Pure wrapper.
18
+
19
+ ## Examples
20
+ ```html
21
+ <!-- Icon-only button label -->
22
+ <schmancy-icon-button>
23
+ <schmancy-icon>delete</schmancy-icon>
24
+ <schmancy-visually-hidden>Delete item</schmancy-visually-hidden>
25
+ </schmancy-icon-button>
26
+ ```
27
+
28
+ ```html
29
+ <!-- Additional context for links -->
30
+ <a href="/article/42">
31
+ Read more
32
+ <schmancy-visually-hidden>about quarterly earnings</schmancy-visually-hidden>
33
+ </a>
34
+ ```
35
+
36
+ ```html
37
+ <!-- Live region announcements -->
38
+ <schmancy-visually-hidden role="status" aria-live="polite">
39
+ ${this.status}
40
+ </schmancy-visually-hidden>
41
+ ```
@@ -78,10 +78,8 @@ export type Feeling =
78
78
  | HappyFeeling | SadFeeling | AnxiousFeeling | AngryFeeling
79
79
  | TiredFeeling | CalmFeeling | ConnectedFeeling | MixedFeeling
80
80
 
81
- /** Feeling category */
82
- export type FeelingCategory =
83
- | 'happy' | 'sad' | 'anxious' | 'angry'
84
- | 'tired' | 'calm' | 'connected' | 'mixed'
81
+ // FeelingCategory is defined in ../types/mood-audio.types.ts and re-exported
82
+ // from ./index.ts — the canonical source.
85
83
 
86
84
  // ============================================================================
87
85
  // SOUND GENERATOR
@@ -1,7 +1,7 @@
1
1
  import { $LitElement } from '@mixins/index'
2
2
  import { InputSize, SchmancyInput } from '@schmancy/input'
3
3
  import SchmancyOption from '@schmancy/option/option'
4
- import { html } from 'lit'
4
+ import { html, nothing } from 'lit'
5
5
  import { customElement, property, query, queryAssignedElements, state } from 'lit/decorators.js'
6
6
  import { classMap } from 'lit/directives/class-map.js'
7
7
  import { createRef, ref } from 'lit/directives/ref.js'
@@ -48,6 +48,40 @@ interface FilteredOption {
48
48
  */
49
49
  @customElement('schmancy-autocomplete')
50
50
  export default class SchmancyAutocomplete extends $LitElement(style) {
51
+ static formAssociated = true
52
+ internals: ElementInternals | undefined
53
+
54
+ constructor() {
55
+ super()
56
+ try {
57
+ this.internals = this.attachInternals()
58
+ } catch {
59
+ this.internals = undefined
60
+ }
61
+ }
62
+
63
+ get form(): HTMLFormElement | null {
64
+ return this.internals?.form ?? null
65
+ }
66
+
67
+ formResetCallback(): void {
68
+ if (this.multi) {
69
+ this._selectedValues$.next([])
70
+ } else {
71
+ this._selectedValue$.next('')
72
+ }
73
+ this._inputValue = ''
74
+ this._inputValue$.next('')
75
+ this.error = false
76
+ this.validationMessage = ''
77
+ }
78
+
79
+ formDisabledCallback(disabled: boolean): void {
80
+ // The component does not expose a disabled prop directly; propagate via attribute.
81
+ if (disabled) this.setAttribute('disabled', '')
82
+ else this.removeAttribute('disabled')
83
+ }
84
+
51
85
  // Track whether value/values have been explicitly set
52
86
  _valueSet: boolean = false
53
87
  _valuesSet: boolean = false
@@ -67,6 +101,8 @@ export default class SchmancyAutocomplete extends $LitElement(style) {
67
101
  @property({ type: Boolean }) error = false
68
102
  @property({ type: String }) validationMessage = ''
69
103
 
104
+ private readonly _a11yId = `schmancy-autocomplete-${Math.random().toString(36).slice(2, 10)}`
105
+
70
106
  // Values property for multi-select mode
71
107
  @property({ type: Array })
72
108
  get values() {
@@ -139,6 +175,16 @@ export default class SchmancyAutocomplete extends $LitElement(style) {
139
175
  ]).pipe(
140
176
  tap(([selectedValue, selectedValues]) => {
141
177
  this._updateOptionSelection(selectedValue, selectedValues)
178
+ // Keep ElementInternals form value in sync with selection (single and multi).
179
+ const formValue = this.multi ? selectedValues.join(',') : selectedValue
180
+ this.internals?.setFormValue(formValue || null)
181
+ if (this.required) {
182
+ const missing = this.multi ? selectedValues.length === 0 : !selectedValue
183
+ this.internals?.setValidity(
184
+ missing ? { valueMissing: true } : {},
185
+ missing ? this.validationMessage || 'Please select an option.' : undefined,
186
+ )
187
+ }
142
188
  }),
143
189
  takeUntil(this.disconnecting)
144
190
  ).subscribe()
@@ -494,6 +540,10 @@ export default class SchmancyAutocomplete extends $LitElement(style) {
494
540
  .placeholder=${this._selectedValues$.value.length > 0 ? 'Add more...' : this.placeholder}
495
541
  .value=${this._inputValue}
496
542
  .autocomplete=${this.autocomplete}
543
+ aria-invalid=${this.error ? 'true' : 'false'}
544
+ aria-required=${this.required ? 'true' : 'false'}
545
+ aria-describedby=${this.error && this.validationMessage ? `${this._a11yId}-err` : nothing}
546
+ aria-label=${!this.label && this.placeholder ? this.placeholder : nothing}
497
547
  @input=${(e: Event) => {
498
548
  const value = (e.target as HTMLInputElement).value
499
549
  this._inputValue = value
@@ -517,7 +567,7 @@ export default class SchmancyAutocomplete extends $LitElement(style) {
517
567
 
518
568
  <!-- Validation message -->
519
569
  ${when(this.error && this.validationMessage, () => html`
520
- <div class="mt-1 text-sm text-error-default">
570
+ <div id="${this._a11yId}-err" class="mt-1 text-sm text-error-default" role="alert">
521
571
  ${this.validationMessage}
522
572
  </div>
523
573
  `)}
@@ -0,0 +1,109 @@
1
+ import { TailwindElement } from '@mixins/index'
2
+ import { css, html } from 'lit'
3
+ import { customElement, property } from 'lit/decorators.js'
4
+
5
+ /**
6
+ * Breadcrumb navigation container. Wraps a list of `schmancy-breadcrumb-item`
7
+ * elements with the correct ARIA landmark and semantics.
8
+ *
9
+ * @element schmancy-breadcrumb
10
+ * @slot - Default slot for `<schmancy-breadcrumb-item>` children.
11
+ * @attr separator - Character or string rendered between items. Default `/`.
12
+ * @csspart separator - The separator element.
13
+ */
14
+ @customElement('schmancy-breadcrumb')
15
+ export class SchmancyBreadcrumb extends TailwindElement(css`
16
+ :host {
17
+ display: block;
18
+ }
19
+ nav {
20
+ display: flex;
21
+ flex-wrap: wrap;
22
+ align-items: center;
23
+ gap: 0.25rem;
24
+ }
25
+ .sep {
26
+ color: var(--schmancy-sys-color-surface-onVariant, #79747e);
27
+ user-select: none;
28
+ padding: 0 0.25rem;
29
+ }
30
+ ::slotted(schmancy-breadcrumb-item:last-of-type) {
31
+ font-weight: 500;
32
+ }
33
+ `) {
34
+ @property({ type: String }) separator = '/'
35
+
36
+ connectedCallback(): void {
37
+ super.connectedCallback()
38
+ if (!this.hasAttribute('aria-label')) this.setAttribute('aria-label', 'Breadcrumb')
39
+ }
40
+
41
+ render() {
42
+ // Render separators between slotted items by manipulating after render.
43
+ // The simpler approach uses the CSS adjacent-sibling pattern so the
44
+ // separator is visually present without affecting the accessible name.
45
+ return html`
46
+ <nav role="navigation">
47
+ <slot @slotchange=${() => this._insertSeparators()}></slot>
48
+ </nav>
49
+ `
50
+ }
51
+
52
+ private _insertSeparators() {
53
+ const slot = this.shadowRoot?.querySelector('slot') as HTMLSlotElement | null
54
+ if (!slot) return
55
+ const items = slot.assignedElements({ flatten: true })
56
+ // Remove any previously-inserted separators.
57
+ this.querySelectorAll('[data-schmancy-sep]').forEach(el => el.remove())
58
+ items.forEach((el, idx) => {
59
+ if (idx === items.length - 1) return
60
+ const sep = document.createElement('span')
61
+ sep.setAttribute('data-schmancy-sep', '')
62
+ sep.setAttribute('aria-hidden', 'true')
63
+ sep.setAttribute('part', 'separator')
64
+ sep.className = 'sep'
65
+ sep.textContent = this.separator
66
+ el.insertAdjacentElement('afterend', sep)
67
+ })
68
+ }
69
+ }
70
+
71
+ /**
72
+ * Individual breadcrumb item. Renders as a link when `href` is provided,
73
+ * otherwise as a plain span (represents the current page).
74
+ *
75
+ * @element schmancy-breadcrumb-item
76
+ * @slot - Label content.
77
+ * @attr href - If set, renders as an anchor.
78
+ * @attr current - Marks as `aria-current="page"`.
79
+ */
80
+ @customElement('schmancy-breadcrumb-item')
81
+ export class SchmancyBreadcrumbItem extends TailwindElement(css`
82
+ :host {
83
+ display: inline-block;
84
+ }
85
+ a, span {
86
+ color: inherit;
87
+ text-decoration: none;
88
+ }
89
+ a:hover {
90
+ text-decoration: underline;
91
+ }
92
+ `) {
93
+ @property({ type: String }) href = ''
94
+ @property({ type: Boolean, reflect: true }) current = false
95
+
96
+ render() {
97
+ if (this.href && !this.current) {
98
+ return html`<a href=${this.href}><slot></slot></a>`
99
+ }
100
+ return html`<span aria-current=${this.current ? 'page' : 'false'}><slot></slot></span>`
101
+ }
102
+ }
103
+
104
+ declare global {
105
+ interface HTMLElementTagNameMap {
106
+ 'schmancy-breadcrumb': SchmancyBreadcrumb
107
+ 'schmancy-breadcrumb-item': SchmancyBreadcrumbItem
108
+ }
109
+ }
@@ -0,0 +1 @@
1
+ export * from './breadcrumb'