@mhmo91/schmancy 0.4.75 → 0.4.77

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 (343) hide show
  1. package/ai/chips.md +350 -128
  2. package/ai/typography.md +66 -8
  3. package/dist/ai/chips.md +350 -128
  4. package/dist/ai/typography.md +66 -8
  5. package/dist/{animated-text-CqpyC7Y0.js → animated-text-CTMDHCbw.js} +6 -6
  6. package/dist/{animated-text-CqpyC7Y0.js.map → animated-text-CTMDHCbw.js.map} +1 -1
  7. package/dist/{animated-text-DlRt6Q09.cjs → animated-text-yAIb26ld.cjs} +2 -2
  8. package/dist/{animated-text-DlRt6Q09.cjs.map → animated-text-yAIb26ld.cjs.map} +1 -1
  9. package/dist/animated-text.cjs +1 -1
  10. package/dist/animated-text.js +1 -1
  11. package/dist/area.cjs +1 -1
  12. package/dist/area.js +1 -1
  13. package/dist/{autocomplete-BOGG_9iL.cjs → autocomplete-BYiDoFG_.cjs} +2 -2
  14. package/dist/{autocomplete-BOGG_9iL.cjs.map → autocomplete-BYiDoFG_.cjs.map} +1 -1
  15. package/dist/{autocomplete-B-oKMH7m.js → autocomplete-m-nEVE3h.js} +6 -6
  16. package/dist/{autocomplete-B-oKMH7m.js.map → autocomplete-m-nEVE3h.js.map} +1 -1
  17. package/dist/autocomplete.cjs +1 -1
  18. package/dist/autocomplete.js +1 -1
  19. package/dist/{avatar-C27bnQKE.cjs → avatar-DjCNlJz6.cjs} +2 -2
  20. package/dist/{avatar-C27bnQKE.cjs.map → avatar-DjCNlJz6.cjs.map} +1 -1
  21. package/dist/{avatar-DKVNl5rX.js → avatar-nxVn--Oo.js} +48 -48
  22. package/dist/{avatar-DKVNl5rX.js.map → avatar-nxVn--Oo.js.map} +1 -1
  23. package/dist/badge.cjs +1 -1
  24. package/dist/badge.js +1 -1
  25. package/dist/{boat-DMKcZpZb.cjs → boat-_ZRYkQQZ.cjs} +2 -2
  26. package/dist/{boat-DMKcZpZb.cjs.map → boat-_ZRYkQQZ.cjs.map} +1 -1
  27. package/dist/{boat-CdR5Pqik.js → boat-sl3amQ3s.js} +2 -2
  28. package/dist/{boat-CdR5Pqik.js.map → boat-sl3amQ3s.js.map} +1 -1
  29. package/dist/boat.cjs +1 -1
  30. package/dist/boat.js +1 -1
  31. package/dist/busy.cjs +1 -1
  32. package/dist/busy.js +1 -1
  33. package/dist/button.cjs +1 -1
  34. package/dist/button.js +1 -1
  35. package/dist/card.cjs +1 -1
  36. package/dist/card.js +1 -1
  37. package/dist/checkbox-HdmRM2Vg.cjs +40 -0
  38. package/dist/checkbox-HdmRM2Vg.cjs.map +1 -0
  39. package/dist/checkbox-zTyMywpJ.js +527 -0
  40. package/dist/checkbox-zTyMywpJ.js.map +1 -0
  41. package/dist/checkbox.cjs +1 -1
  42. package/dist/checkbox.js +1 -1
  43. package/dist/chips-DAkLLDRf.js +577 -0
  44. package/dist/chips-DAkLLDRf.js.map +1 -0
  45. package/dist/chips-DDDu8hh9.cjs +324 -0
  46. package/dist/chips-DDDu8hh9.cjs.map +1 -0
  47. package/dist/chips.cjs +1 -1
  48. package/dist/chips.js +9 -1
  49. package/dist/code-highlight.cjs +1 -1
  50. package/dist/code-highlight.js +1 -1
  51. package/dist/{code-preview-CdCzzZTX.cjs → code-preview-BxO04VVx.cjs} +2 -2
  52. package/dist/{code-preview-CdCzzZTX.cjs.map → code-preview-BxO04VVx.cjs.map} +1 -1
  53. package/dist/{code-preview-CIXEd04f.js → code-preview-DH3koGm9.js} +7 -7
  54. package/dist/{code-preview-CIXEd04f.js.map → code-preview-DH3koGm9.js.map} +1 -1
  55. package/dist/components.cjs +1 -1
  56. package/dist/components.js +1 -1
  57. package/dist/content-drawer.cjs +1 -1
  58. package/dist/content-drawer.js +1 -1
  59. package/dist/{date-range-CvD9zwK9.cjs → date-range-TJXLY7Yx.cjs} +2 -2
  60. package/dist/{date-range-CvD9zwK9.cjs.map → date-range-TJXLY7Yx.cjs.map} +1 -1
  61. package/dist/{date-range-inline-CP_a_w01.cjs → date-range-inline-BSqXKZ3-.cjs} +2 -2
  62. package/dist/{date-range-inline-CP_a_w01.cjs.map → date-range-inline-BSqXKZ3-.cjs.map} +1 -1
  63. package/dist/{date-range-inline-5QP9av94.js → date-range-inline-CUb59TOM.js} +3 -3
  64. package/dist/{date-range-inline-5QP9av94.js.map → date-range-inline-CUb59TOM.js.map} +1 -1
  65. package/dist/date-range-inline.cjs +1 -1
  66. package/dist/date-range-inline.js +1 -1
  67. package/dist/{date-range-lJ_fPY4v.js → date-range-sfDUF7dG.js} +8 -8
  68. package/dist/{date-range-lJ_fPY4v.js.map → date-range-sfDUF7dG.js.map} +1 -1
  69. package/dist/date-range.cjs +1 -1
  70. package/dist/date-range.js +1 -1
  71. package/dist/{delay-BM1jk7XF.js → delay-CHpGPLLr.js} +2 -2
  72. package/dist/{delay-BM1jk7XF.js.map → delay-CHpGPLLr.js.map} +1 -1
  73. package/dist/{delay-CB0Wohe7.cjs → delay-CbXOIuAd.cjs} +2 -2
  74. package/dist/{delay-CB0Wohe7.cjs.map → delay-CbXOIuAd.cjs.map} +1 -1
  75. package/dist/delay.cjs +1 -1
  76. package/dist/delay.js +1 -1
  77. package/dist/{details-B9JrXrCO.js → details-Cf7zosIT.js} +5 -5
  78. package/dist/{details-B9JrXrCO.js.map → details-Cf7zosIT.js.map} +1 -1
  79. package/dist/{details-C22WoRWP.cjs → details-D6yYIQaE.cjs} +2 -2
  80. package/dist/{details-C22WoRWP.cjs.map → details-D6yYIQaE.cjs.map} +1 -1
  81. package/dist/details.cjs +1 -1
  82. package/dist/details.js +1 -1
  83. package/dist/{dialog-content-BHR9cUJ-.js → dialog-content-BabnHd-t.js} +10 -10
  84. package/dist/{dialog-content-BHR9cUJ-.js.map → dialog-content-BabnHd-t.js.map} +1 -1
  85. package/dist/{dialog-content-CpxWMPlh.cjs → dialog-content-BkK0XT-T.cjs} +2 -2
  86. package/dist/{dialog-content-CpxWMPlh.cjs.map → dialog-content-BkK0XT-T.cjs.map} +1 -1
  87. package/dist/dialog.cjs +1 -1
  88. package/dist/dialog.js +1 -1
  89. package/dist/{divider-DAg0oW4T.cjs → divider-CQ9PTETp.cjs} +2 -2
  90. package/dist/{divider-DAg0oW4T.cjs.map → divider-CQ9PTETp.cjs.map} +1 -1
  91. package/dist/{divider-Cz4g_Ept.js → divider-DyNmX5oP.js} +6 -6
  92. package/dist/{divider-Cz4g_Ept.js.map → divider-DyNmX5oP.js.map} +1 -1
  93. package/dist/divider.cjs +1 -1
  94. package/dist/divider.js +1 -1
  95. package/dist/{dropdown-content-Bto1swKT.js → dropdown-content-1g76XIVT.js} +6 -6
  96. package/dist/{dropdown-content-Bto1swKT.js.map → dropdown-content-1g76XIVT.js.map} +1 -1
  97. package/dist/{dropdown-content-QvR9QvT0.cjs → dropdown-content-DwiI2xi1.cjs} +3 -3
  98. package/dist/{dropdown-content-QvR9QvT0.cjs.map → dropdown-content-DwiI2xi1.cjs.map} +1 -1
  99. package/dist/dropdown.cjs +1 -1
  100. package/dist/dropdown.js +1 -1
  101. package/dist/{email-recipients-C9Yx0eML.js → email-recipients-BJsjr6H6.js} +5 -5
  102. package/dist/{email-recipients-C9Yx0eML.js.map → email-recipients-BJsjr6H6.js.map} +1 -1
  103. package/dist/{email-recipients-aEI5Hz1y.cjs → email-recipients-BiPVR8Hi.cjs} +2 -2
  104. package/dist/{email-recipients-aEI5Hz1y.cjs.map → email-recipients-BiPVR8Hi.cjs.map} +1 -1
  105. package/dist/extra.cjs +1 -1
  106. package/dist/extra.js +1 -1
  107. package/dist/{flex-8Zt64KfZ.js → flex-0kVSQTqk.js} +2 -2
  108. package/dist/{flex-8Zt64KfZ.js.map → flex-0kVSQTqk.js.map} +1 -1
  109. package/dist/{flex-BWZv2xik.cjs → flex-CYToPu65.cjs} +2 -2
  110. package/dist/{flex-BWZv2xik.cjs.map → flex-CYToPu65.cjs.map} +1 -1
  111. package/dist/{form-BH43OMu3.cjs → form-BTIOJob0.cjs} +2 -2
  112. package/dist/{form-BH43OMu3.cjs.map → form-BTIOJob0.cjs.map} +1 -1
  113. package/dist/{form-DeoSuBtM.js → form-CzSHXlhh.js} +7 -7
  114. package/dist/{form-DeoSuBtM.js.map → form-CzSHXlhh.js.map} +1 -1
  115. package/dist/form.cjs +1 -1
  116. package/dist/form.js +1 -1
  117. package/dist/{formField.mixin-Dta3OeAY.cjs → formField.mixin-BE8yyY7E.cjs} +2 -2
  118. package/dist/{formField.mixin-Dta3OeAY.cjs.map → formField.mixin-BE8yyY7E.cjs.map} +1 -1
  119. package/dist/{formField.mixin-BaPL0TYo.js → formField.mixin-D3pQ9LTE.js} +2 -2
  120. package/dist/{formField.mixin-BaPL0TYo.js.map → formField.mixin-D3pQ9LTE.js.map} +1 -1
  121. package/dist/icon-CB8zMasU.js +85 -0
  122. package/dist/icon-CB8zMasU.js.map +1 -0
  123. package/dist/icon-DxLigT_B.cjs +49 -0
  124. package/dist/icon-DxLigT_B.cjs.map +1 -0
  125. package/dist/{icon-button-D1GjgM8z.cjs → icon-button-B6sa3c9D.cjs} +2 -2
  126. package/dist/{icon-button-D1GjgM8z.cjs.map → icon-button-B6sa3c9D.cjs.map} +1 -1
  127. package/dist/{icon-button-OZM1xg0D.js → icon-button-n_1iOQGQ.js} +8 -8
  128. package/dist/{icon-button-OZM1xg0D.js.map → icon-button-n_1iOQGQ.js.map} +1 -1
  129. package/dist/icons.cjs +1 -1
  130. package/dist/icons.js +1 -1
  131. package/dist/index.cjs +1 -1
  132. package/dist/index.js +232 -226
  133. package/dist/{input-CkvjCut5.js → input-BAJnPVSv.js} +3 -3
  134. package/dist/{input-CkvjCut5.js.map → input-BAJnPVSv.js.map} +1 -1
  135. package/dist/{input-lUWuO40Q.cjs → input-FXEREBl6.cjs} +2 -2
  136. package/dist/{input-lUWuO40Q.cjs.map → input-FXEREBl6.cjs.map} +1 -1
  137. package/dist/input.cjs +1 -1
  138. package/dist/input.js +1 -1
  139. package/dist/layout.cjs +1 -1
  140. package/dist/layout.js +1 -1
  141. package/dist/{list-CIt75CB5.cjs → list-TbB9Rpwx.cjs} +2 -2
  142. package/dist/{list-CIt75CB5.cjs.map → list-TbB9Rpwx.cjs.map} +1 -1
  143. package/dist/{list-5rw56k73.js → list-ZeNhyo74.js} +7 -7
  144. package/dist/{list-5rw56k73.js.map → list-ZeNhyo74.js.map} +1 -1
  145. package/dist/list.cjs +1 -1
  146. package/dist/list.js +1 -1
  147. package/dist/{litElement.mixin-BZErt4H3.js → litElement.mixin-DVZiIRUa.js} +2 -2
  148. package/dist/{litElement.mixin-BZErt4H3.js.map → litElement.mixin-DVZiIRUa.js.map} +1 -1
  149. package/dist/{litElement.mixin-BLa7fWsS.cjs → litElement.mixin-N4BRrCeD.cjs} +2 -2
  150. package/dist/{litElement.mixin-BLa7fWsS.cjs.map → litElement.mixin-N4BRrCeD.cjs.map} +1 -1
  151. package/dist/mailbox.cjs +1 -1
  152. package/dist/mailbox.js +1 -1
  153. package/dist/{map-BY_0W4ER.cjs → map-DW4GhKaH.cjs} +2 -2
  154. package/dist/{map-BY_0W4ER.cjs.map → map-DW4GhKaH.cjs.map} +1 -1
  155. package/dist/{map-BrguuFGa.js → map-ck5dlHEW.js} +5 -5
  156. package/dist/{map-BrguuFGa.js.map → map-ck5dlHEW.js.map} +1 -1
  157. package/dist/map.cjs +1 -1
  158. package/dist/map.js +1 -1
  159. package/dist/{media-D6ZtvTjC.cjs → media-C9Qy2mql.cjs} +2 -2
  160. package/dist/{media-D6ZtvTjC.cjs.map → media-C9Qy2mql.cjs.map} +1 -1
  161. package/dist/{media-CLz2t5zS.js → media-CunGFwol.js} +11 -11
  162. package/dist/{media-CLz2t5zS.js.map → media-CunGFwol.js.map} +1 -1
  163. package/dist/{menu-DWD_IywE.cjs → menu-BkTWAEeh.cjs} +3 -3
  164. package/dist/{menu-DWD_IywE.cjs.map → menu-BkTWAEeh.cjs.map} +1 -1
  165. package/dist/{menu-CgDSJpDV.js → menu-Cja83sLd.js} +7 -7
  166. package/dist/{menu-CgDSJpDV.js.map → menu-Cja83sLd.js.map} +1 -1
  167. package/dist/menu.cjs +1 -1
  168. package/dist/menu.js +1 -1
  169. package/dist/mixins/index.ts +5 -5
  170. package/dist/nav-drawer.cjs +1 -1
  171. package/dist/nav-drawer.js +1 -1
  172. package/dist/{notification-service-A3reAJZQ.cjs → notification-service-BB7pBlG6.cjs} +2 -2
  173. package/dist/{notification-service-A3reAJZQ.cjs.map → notification-service-BB7pBlG6.cjs.map} +1 -1
  174. package/dist/{notification-service-1HGYK2tM.js → notification-service-CKHPaK_C.js} +9 -9
  175. package/dist/{notification-service-1HGYK2tM.js.map → notification-service-CKHPaK_C.js.map} +1 -1
  176. package/dist/notification.cjs +1 -1
  177. package/dist/notification.js +2 -2
  178. package/dist/{notify-CVbsMt75.cjs → notify-CxMMHOyT.cjs} +2 -2
  179. package/dist/{notify-CVbsMt75.cjs.map → notify-CxMMHOyT.cjs.map} +1 -1
  180. package/dist/{notify-Bt-KiLeP.js → notify-DNNTtvHN.js} +2 -2
  181. package/dist/{notify-Bt-KiLeP.js.map → notify-DNNTtvHN.js.map} +1 -1
  182. package/dist/{option-Cd0TxMBE.cjs → option-BWzNpqSh.cjs} +2 -2
  183. package/dist/{option-Cd0TxMBE.cjs.map → option-BWzNpqSh.cjs.map} +1 -1
  184. package/dist/{option-DvSZ0D0R.js → option-BsvqJpe9.js} +5 -5
  185. package/dist/{option-DvSZ0D0R.js.map → option-BsvqJpe9.js.map} +1 -1
  186. package/dist/option.cjs +1 -1
  187. package/dist/option.js +1 -1
  188. package/dist/{payment-card-form-C6wrIT_X.js → payment-card-form-C0Rck0tO.js} +6 -6
  189. package/dist/{payment-card-form-C6wrIT_X.js.map → payment-card-form-C0Rck0tO.js.map} +1 -1
  190. package/dist/{payment-card-form-CJkWQ3j4.cjs → payment-card-form-Q8jzlprZ.cjs} +2 -2
  191. package/dist/{payment-card-form-CJkWQ3j4.cjs.map → payment-card-form-Q8jzlprZ.cjs.map} +1 -1
  192. package/dist/{progress-pOL6OHwT.js → progress-CG2bQVP8.js} +5 -5
  193. package/dist/{progress-pOL6OHwT.js.map → progress-CG2bQVP8.js.map} +1 -1
  194. package/dist/{progress-D0iWLtHk.cjs → progress-CtoQKQub.cjs} +2 -2
  195. package/dist/{progress-D0iWLtHk.cjs.map → progress-CtoQKQub.cjs.map} +1 -1
  196. package/dist/progress.cjs +1 -1
  197. package/dist/progress.js +1 -1
  198. package/dist/{radio-button-C-t6JJsj.js → radio-button-BSUgktLD.js} +5 -5
  199. package/dist/{radio-button-C-t6JJsj.js.map → radio-button-BSUgktLD.js.map} +1 -1
  200. package/dist/{radio-button-CSV7-ftB.cjs → radio-button-DnvjanKu.cjs} +3 -3
  201. package/dist/{radio-button-CSV7-ftB.cjs.map → radio-button-DnvjanKu.cjs.map} +1 -1
  202. package/dist/radio-group.cjs +1 -1
  203. package/dist/radio-group.js +1 -1
  204. package/dist/route.component-BJEghY9L.js +341 -0
  205. package/dist/route.component-BJEghY9L.js.map +1 -0
  206. package/dist/route.component-YXwO_9vn.cjs +12 -0
  207. package/dist/route.component-YXwO_9vn.cjs.map +1 -0
  208. package/dist/{schmancy-steps-container-CgzGlBCk.cjs → schmancy-steps-container-BJdjcjfb.cjs} +2 -2
  209. package/dist/{schmancy-steps-container-CgzGlBCk.cjs.map → schmancy-steps-container-BJdjcjfb.cjs.map} +1 -1
  210. package/dist/{schmancy-steps-container-AIJ2_ZSN.js → schmancy-steps-container-DLoPUodd.js} +2 -2
  211. package/dist/{schmancy-steps-container-AIJ2_ZSN.js.map → schmancy-steps-container-DLoPUodd.js.map} +1 -1
  212. package/dist/{select-CwJ4OuVo.js → select-DagDNtvt.js} +6 -6
  213. package/dist/{select-CwJ4OuVo.js.map → select-DagDNtvt.js.map} +1 -1
  214. package/dist/{select-GBaqnfMC.cjs → select-t2FXt_pa.cjs} +2 -2
  215. package/dist/{select-GBaqnfMC.cjs.map → select-t2FXt_pa.cjs.map} +1 -1
  216. package/dist/select.cjs +1 -1
  217. package/dist/select.js +1 -1
  218. package/dist/{sheet-fT1oxKgG.js → sheet-CRVVJZ0R.js} +6 -6
  219. package/dist/{sheet-fT1oxKgG.js.map → sheet-CRVVJZ0R.js.map} +1 -1
  220. package/dist/{sheet-CXd47YKG.cjs → sheet-mPwoKv2g.cjs} +2 -2
  221. package/dist/{sheet-CXd47YKG.cjs.map → sheet-mPwoKv2g.cjs.map} +1 -1
  222. package/dist/sheet.cjs +1 -1
  223. package/dist/sheet.js +1 -1
  224. package/dist/{slider-CYsku-3b.js → slider-B3F6JkFf.js} +8 -8
  225. package/dist/{slider-CYsku-3b.js.map → slider-B3F6JkFf.js.map} +1 -1
  226. package/dist/{slider-DxSzFbQe.cjs → slider-pBPJS7W9.cjs} +2 -2
  227. package/dist/{slider-DxSzFbQe.cjs.map → slider-pBPJS7W9.cjs.map} +1 -1
  228. package/dist/slider.cjs +1 -1
  229. package/dist/slider.js +1 -1
  230. package/dist/{spinner-DrG_NQpx.cjs → spinner-BRpfKS5O.cjs} +40 -11
  231. package/dist/spinner-BRpfKS5O.cjs.map +1 -0
  232. package/dist/{spinner-CrK1E8LD.js → spinner-DA_-O-xo.js} +51 -22
  233. package/dist/spinner-DA_-O-xo.js.map +1 -0
  234. package/dist/steps.cjs +1 -1
  235. package/dist/steps.js +1 -1
  236. package/dist/{surface-C64YekDh.js → surface-Dwl538cH.js} +2 -2
  237. package/dist/{surface-C64YekDh.js.map → surface-Dwl538cH.js.map} +1 -1
  238. package/dist/{surface-DVNi8l6T.cjs → surface-diIElnDd.cjs} +2 -2
  239. package/dist/{surface-DVNi8l6T.cjs.map → surface-diIElnDd.cjs.map} +1 -1
  240. package/dist/surface.cjs +1 -1
  241. package/dist/surface.js +1 -1
  242. package/dist/{table-DmrYZ1hR.js → table-BgKKtRLd.js} +2 -2
  243. package/dist/{table-DmrYZ1hR.js.map → table-BgKKtRLd.js.map} +1 -1
  244. package/dist/{table-B3WKGYlu.cjs → table-Bov9UEcb.cjs} +2 -2
  245. package/dist/{table-B3WKGYlu.cjs.map → table-Bov9UEcb.cjs.map} +1 -1
  246. package/dist/table.cjs +1 -1
  247. package/dist/table.js +1 -1
  248. package/dist/{tabs-compatibility-Uetjk25R.js → tabs-compatibility-CPvOBfor.js} +7 -7
  249. package/dist/{tabs-compatibility-Uetjk25R.js.map → tabs-compatibility-CPvOBfor.js.map} +1 -1
  250. package/dist/{tabs-compatibility-Ds7SEeST.cjs → tabs-compatibility-D5yIfQ_k.cjs} +2 -2
  251. package/dist/{tabs-compatibility-Ds7SEeST.cjs.map → tabs-compatibility-D5yIfQ_k.cjs.map} +1 -1
  252. package/dist/tabs.cjs +1 -1
  253. package/dist/tabs.js +1 -1
  254. package/dist/tailwind.mixin-2zZHkoOm.cjs +2 -0
  255. package/dist/{tailwind.mixin-df9KoZ9x.cjs.map → tailwind.mixin-2zZHkoOm.cjs.map} +1 -1
  256. package/dist/tailwind.mixin-DbE6WE_l.js +43 -0
  257. package/dist/{tailwind.mixin-B6ADeWOc.js.map → tailwind.mixin-DbE6WE_l.js.map} +1 -1
  258. package/dist/teleport.cjs +1 -1
  259. package/dist/teleport.js +1 -1
  260. package/dist/{textarea-B1Tng7F9.js → textarea-CNEv2Aoz.js} +2 -2
  261. package/dist/{textarea-B1Tng7F9.js.map → textarea-CNEv2Aoz.js.map} +1 -1
  262. package/dist/{textarea-QKNA3oAQ.cjs → textarea-CswyRsoR.cjs} +2 -2
  263. package/dist/{textarea-QKNA3oAQ.cjs.map → textarea-CswyRsoR.cjs.map} +1 -1
  264. package/dist/textarea.cjs +1 -1
  265. package/dist/textarea.js +1 -1
  266. package/dist/{theme-button-CYEhS3ub.js → theme-button-CRcXeIw5.js} +5 -5
  267. package/dist/{theme-button-CYEhS3ub.js.map → theme-button-CRcXeIw5.js.map} +1 -1
  268. package/dist/{theme-button-CoCFS3Rx.cjs → theme-button-DPmEDF3P.cjs} +2 -2
  269. package/dist/{theme-button-CoCFS3Rx.cjs.map → theme-button-DPmEDF3P.cjs.map} +1 -1
  270. package/dist/theme-button.cjs +1 -1
  271. package/dist/theme-button.js +1 -1
  272. package/dist/theme.cjs +1 -1
  273. package/dist/{theme.component-C12jLwtB.cjs → theme.component-CamQBQHp.cjs} +2 -2
  274. package/dist/{theme.component-C12jLwtB.cjs.map → theme.component-CamQBQHp.cjs.map} +1 -1
  275. package/dist/{theme.component-Df731_fn.js → theme.component-v5kO9gkQ.js} +30 -30
  276. package/dist/{theme.component-Df731_fn.js.map → theme.component-v5kO9gkQ.js.map} +1 -1
  277. package/dist/theme.js +1 -1
  278. package/dist/{timezone-B7bscKFN.cjs → timezone-Bk4IctLE.cjs} +2 -2
  279. package/dist/{timezone-B7bscKFN.cjs.map → timezone-Bk4IctLE.cjs.map} +1 -1
  280. package/dist/{timezone-CdtCVjMF.js → timezone-Yo9Sdd5R.js} +8 -8
  281. package/dist/{timezone-CdtCVjMF.js.map → timezone-Yo9Sdd5R.js.map} +1 -1
  282. package/dist/{tooltip-CjoNCIvr.cjs → tooltip-B-yn_OSS.cjs} +2 -2
  283. package/dist/{tooltip-CjoNCIvr.cjs.map → tooltip-B-yn_OSS.cjs.map} +1 -1
  284. package/dist/{tooltip-JVkexTyf.js → tooltip-ZJEAlZUQ.js} +2 -2
  285. package/dist/{tooltip-JVkexTyf.js.map → tooltip-ZJEAlZUQ.js.map} +1 -1
  286. package/dist/tooltip.cjs +1 -1
  287. package/dist/tooltip.js +1 -1
  288. package/dist/{tree-CaqiNcJJ.js → tree-BV-2ElOU.js} +5 -5
  289. package/dist/{tree-CaqiNcJJ.js.map → tree-BV-2ElOU.js.map} +1 -1
  290. package/dist/{tree-Be48ABq4.cjs → tree-CxBWy_Vp.cjs} +2 -2
  291. package/dist/{tree-Be48ABq4.cjs.map → tree-CxBWy_Vp.cjs.map} +1 -1
  292. package/dist/tree.cjs +1 -1
  293. package/dist/tree.js +1 -1
  294. package/dist/{typewriter-CoMrmwFJ.js → typewriter-Bsn8eoJW.js} +7 -7
  295. package/dist/{typewriter-CoMrmwFJ.js.map → typewriter-Bsn8eoJW.js.map} +1 -1
  296. package/dist/{typewriter-DCYDScE9.cjs → typewriter-C-mf2RVj.cjs} +2 -2
  297. package/dist/{typewriter-DCYDScE9.cjs.map → typewriter-C-mf2RVj.cjs.map} +1 -1
  298. package/dist/typewriter.cjs +1 -1
  299. package/dist/typewriter.js +1 -1
  300. package/dist/{typography-DkJagEoF.js → typography-B5Y21osS.js} +2 -2
  301. package/dist/{typography-DkJagEoF.js.map → typography-B5Y21osS.js.map} +1 -1
  302. package/dist/{typography-BQg6J2hD.cjs → typography-pyk5TJHO.cjs} +2 -2
  303. package/dist/{typography-BQg6J2hD.cjs.map → typography-pyk5TJHO.cjs.map} +1 -1
  304. package/dist/typography.cjs +1 -1
  305. package/dist/typography.js +1 -1
  306. package/package.json +252 -1
  307. package/types/mixins/index.d.ts +1 -1
  308. package/types/src/area/area.component.d.ts +1 -4
  309. package/types/src/area/route.component.d.ts +9 -3
  310. package/types/src/busy/spinner.d.ts +1 -1
  311. package/types/src/checkbox/checkbox.d.ts +5 -4
  312. package/types/src/chips/assist-chip.d.ts +46 -0
  313. package/types/src/chips/chip.d.ts +3 -32
  314. package/types/src/chips/chips.d.ts +26 -11
  315. package/types/src/chips/filter-chip.d.ts +73 -0
  316. package/types/src/chips/index.d.ts +11 -2
  317. package/types/src/chips/input-chip.d.ts +75 -0
  318. package/types/src/chips/suggestion-chip.d.ts +51 -0
  319. package/types/src/icons/icon.d.ts +32 -5
  320. package/dist/checkbox-CVwU3M4h.js +0 -243
  321. package/dist/checkbox-CVwU3M4h.js.map +0 -1
  322. package/dist/checkbox-DP_zX786.cjs +0 -38
  323. package/dist/checkbox-DP_zX786.cjs.map +0 -1
  324. package/dist/chips-BuMUH3zA.cjs +0 -87
  325. package/dist/chips-BuMUH3zA.cjs.map +0 -1
  326. package/dist/chips-DcCUwYBu.js +0 -340
  327. package/dist/chips-DcCUwYBu.js.map +0 -1
  328. package/dist/icon-B0JNrBfq.js +0 -55
  329. package/dist/icon-B0JNrBfq.js.map +0 -1
  330. package/dist/icon-DY2pBLIU.cjs +0 -30
  331. package/dist/icon-DY2pBLIU.cjs.map +0 -1
  332. package/dist/redispatch-event-BLom7yp4.js +0 -293
  333. package/dist/redispatch-event-BLom7yp4.js.map +0 -1
  334. package/dist/redispatch-event-DHcobAl6.cjs +0 -4
  335. package/dist/redispatch-event-DHcobAl6.cjs.map +0 -1
  336. package/dist/route.component-BWVESeW2.cjs +0 -12
  337. package/dist/route.component-BWVESeW2.cjs.map +0 -1
  338. package/dist/route.component-DkPA8FVn.js +0 -348
  339. package/dist/route.component-DkPA8FVn.js.map +0 -1
  340. package/dist/spinner-CrK1E8LD.js.map +0 -1
  341. package/dist/spinner-DrG_NQpx.cjs.map +0 -1
  342. package/dist/tailwind.mixin-B6ADeWOc.js +0 -43
  343. package/dist/tailwind.mixin-df9KoZ9x.cjs +0 -2
package/ai/chips.md CHANGED
@@ -1,175 +1,397 @@
1
1
  # Schmancy Chips - AI Reference
2
2
 
3
+ ## 🎯 Chip Type Behavior Matrix
4
+
5
+ Understanding the behavioral differences between chip types is crucial for proper implementation:
6
+
7
+ | Chip Type | Has Selected State | Click Behavior | Primary Purpose | Remove Button |
8
+ |-----------|-------------------|----------------|-----------------|---------------|
9
+ | **Filter** | ✅ Yes (toggles) | Toggles selected state on/off | Filtering content, toggling options | ❌ No |
10
+ | **Assist** | ❌ No | Triggers an action (no state change) | Smart actions, automation, help | ❌ No |
11
+ | **Input** | ❌ No | No default behavior (custom action) | Representing user data/selections | ✅ Optional |
12
+ | **Suggestion** | ❌ No | Triggers an action (no state change) | Quick recommendations, shortcuts | ❌ No |
13
+
14
+ ### ⚠️ Important Behavioral Notes
15
+
16
+ - **ONLY Filter chips have a selected state** - They toggle on/off to filter content
17
+ - **Assist/Suggestion chips trigger actions** - They don't change state, they perform operations
18
+ - **Input chips represent data** - They show user selections and can be removed
19
+ - **Default type is 'filter'** - For backward compatibility with existing code
20
+
21
+ ### 🔧 Pure Schmancy Implementation
22
+
23
+ This is a pure Schmancy implementation that:
24
+ - ✅ **No Material Design imports** - Built entirely with Lit, Tailwind CSS, and RxJS
25
+ - ✅ **Full Material Design 3 compliance** - Maintains all MD3 behaviors and styling
26
+ - ✅ **Reactive architecture** - Uses RxJS for state management and event handling
27
+ - ✅ **Tailwind styling** - All styling done with Tailwind classes, no CSS-in-JS
28
+
29
+ ## Material Web Aligned API
30
+
31
+ The schmancy chips component fully supports Material Design 3 chip specifications with all four chip types:
32
+
33
+ - **filter**: Toggle chips for filtering content (selectable) - default type
34
+ - **assist**: Action chips for prompting smart/automated actions
35
+ - **input**: Removable chips for user inputs and data
36
+ - **suggestion**: Chips for quick suggestions and recommendations
37
+
38
+ ## Usage Examples
39
+
3
40
  ```js
4
- // Single Chip - now accepts ANY content!
5
- <schmancy-chip
6
- value="chip-value"
7
- selected?
8
- readOnly?
9
- disabled?
10
- @change=${handleChange}>
11
- Any content here
41
+ // MATERIAL WEB COMPLIANT CHIP TYPES
42
+
43
+ // Assist Chip - For actions and navigation
44
+ <schmancy-chip type="assist" value="share">
45
+ <schmancy-icon slot="icon">share</schmancy-icon>
46
+ Share
47
+ </schmancy-chip>
48
+
49
+ // Filter Chip - Toggleable filters (default type for backward compatibility)
50
+ <schmancy-chip type="filter" value="starred" selected>
51
+ <schmancy-icon slot="icon">star</schmancy-icon>
52
+ Starred
12
53
  </schmancy-chip>
13
54
 
14
- // Simple text chip
55
+ // Input Chip - User inputs with optional remove button
56
+ <schmancy-chip type="input" value="john-doe" removable @remove=${handleRemove}>
57
+ <schmancy-icon slot="icon">person</schmancy-icon>
58
+ John Doe
59
+ </schmancy-chip>
60
+
61
+ // Suggestion Chip - Quick suggestions
62
+ <schmancy-chip type="suggestion" value="reply">
63
+ <schmancy-icon slot="icon">reply</schmancy-icon>
64
+ Reply
65
+ </schmancy-chip>
66
+
67
+ // ENHANCED PROPERTIES
68
+
69
+ // Elevated chips for more emphasis
70
+ <schmancy-chip type="assist" elevated>
71
+ <schmancy-icon slot="icon">add</schmancy-icon>
72
+ Create New
73
+ </schmancy-chip>
74
+
75
+ // Soft-disabled for partial interaction
76
+ <schmancy-chip type="filter" soft-disabled>
77
+ Premium Only
78
+ </schmancy-chip>
79
+
80
+ // Avatar support for input chips
81
+ <schmancy-chip type="input" avatar removable>
82
+ <img slot="icon" src="user.jpg" alt="User">
83
+ Alice Smith
84
+ </schmancy-chip>
85
+
86
+ // BACKWARD COMPATIBLE USAGE (still works!)
87
+
88
+ // Simple text chip (defaults to filter type)
15
89
  <schmancy-chip value="javascript">
16
90
  JavaScript
17
91
  </schmancy-chip>
18
92
 
19
- // Chip with icon
93
+ // Chip with icon in content (legacy style - still supported)
20
94
  <schmancy-chip value="edit">
21
95
  <schmancy-icon>edit</schmancy-icon>
22
96
  Edit
23
97
  </schmancy-chip>
24
98
 
25
- // Chip with avatar and text
99
+ // Icon slot usage (recommended for proper Material Web alignment)
100
+ <schmancy-chip value="star" selected>
101
+ <schmancy-icon slot="icon">star</schmancy-icon>
102
+ Starred
103
+ </schmancy-chip>
104
+
105
+ // Complex content with Tailwind classes
26
106
  <schmancy-chip value="user1" class="flex items-center gap-2">
27
107
  <schmancy-avatar size="sm">JD</schmancy-avatar>
28
108
  <schmancy-typography type="body" token="sm">john.doe@example.com</schmancy-typography>
29
109
  </schmancy-chip>
30
110
 
31
- // Chip with badge
32
- <schmancy-chip value="notifications" class="flex items-center gap-2">
33
- <schmancy-icon>notifications</schmancy-icon>
34
- <span>Notifications</span>
35
- <schmancy-badge>5</schmancy-badge>
36
- </schmancy-chip>
111
+ // CHIPS CONTAINER
37
112
 
38
- // Chips Container - Single Selection
113
+ // Single Selection Mode - Automatically detected from .value property
39
114
  <schmancy-chips
40
115
  .value=${selectedValue}
41
116
  @change=${handleSelectionChange}>
42
- <schmancy-chip value="1">Option 1</schmancy-chip>
43
- <schmancy-chip value="2">Option 2</schmancy-chip>
44
- <schmancy-chip value="3">Option 3</schmancy-chip>
117
+ <schmancy-chip type="filter" value="1">Option 1</schmancy-chip>
118
+ <schmancy-chip type="filter" value="2">Option 2</schmancy-chip>
119
+ <schmancy-chip type="filter" value="3">Option 3</schmancy-chip>
45
120
  </schmancy-chips>
46
121
 
47
- // Chips Container - Multiple Selection
122
+ // Multiple Selection Mode - Automatically detected from .values property
48
123
  <schmancy-chips
49
- multi
50
124
  .values=${selectedValues}
51
125
  @change=${handleSelectionChange}>
52
- <schmancy-chip value="red">Red</schmancy-chip>
53
- <schmancy-chip value="green">Green</schmancy-chip>
54
- <schmancy-chip value="blue">Blue</schmancy-chip>
126
+ <schmancy-chip type="filter" value="red">Red</schmancy-chip>
127
+ <schmancy-chip type="filter" value="green">Green</schmancy-chip>
128
+ <schmancy-chip type="filter" value="blue">Blue</schmancy-chip>
55
129
  </schmancy-chips>
56
130
 
57
- // Horizontal scrolling chips
58
- <schmancy-chips wrap="false">
59
- <schmancy-chip value="mon">Monday</schmancy-chip>
60
- <schmancy-chip value="tue">Tuesday</schmancy-chip>
61
- <schmancy-chip value="wed">Wednesday</schmancy-chip>
62
- <schmancy-chip value="thu">Thursday</schmancy-chip>
63
- <schmancy-chip value="fri">Friday</schmancy-chip>
131
+ // Layout-only Mode - No selection management when neither property is used
132
+ <schmancy-chips>
133
+ <schmancy-chip type="assist" value="share">Share</schmancy-chip>
134
+ <schmancy-chip type="assist" value="save">Save</schmancy-chip>
64
135
  </schmancy-chips>
65
136
 
66
- // Chip Properties
67
- value: string // Value for selection purposes
68
- selected: boolean // Whether the chip is selected
69
- readOnly: boolean // Makes chip non-interactive (no selection change)
70
- disabled: boolean // Disable the chip (no interaction at all)
71
-
72
- // Chips Container Properties
73
- multi: boolean // Enable multiple selection mode
74
- value: string // Selected value (single selection)
75
- values: string[] // Selected values (multiple selection)
76
- wrap: boolean // Whether chips wrap to new lines (default: true)
77
-
78
- // Chip Events
79
- @click // Fires when chip is clicked
80
- @change // Fires when selection changes, with { detail: { value: string, selected: boolean } }
81
-
82
- // Chips Container Events
83
- @change // Fires when selection changes, with detail being string (single) or string[] (multi)
84
-
85
- // Examples
86
- // Basic chips with emoji and Material icons
87
- <div>
88
- <schmancy-chip value="basic">Basic</schmancy-chip>
89
- <schmancy-chip value="javascript" icon="📝">JavaScript</schmancy-chip>
90
- <schmancy-chip value="settings" icon="settings">Settings</schmancy-chip>
91
- <schmancy-chip value="star" icon="star">Starred</schmancy-chip>
92
- <schmancy-chip value="delete" icon="delete">Delete</schmancy-chip>
93
- </div>
94
-
95
- // User chips with avatars - now fully supported!
96
- <div class="flex flex-wrap gap-2">
97
- <schmancy-chip value="user1" class="flex items-center gap-2">
98
- <schmancy-avatar size="sm">JD</schmancy-avatar>
99
- <schmancy-typography type="body" token="sm">john.doe@example.com</schmancy-typography>
137
+ // Mixed chip types in container
138
+ <schmancy-chips @remove=${handleRemove}>
139
+ <schmancy-chip type="input" value="tag1" removable>
140
+ <schmancy-icon slot="icon">label</schmancy-icon>
141
+ Important
100
142
  </schmancy-chip>
101
-
102
- <schmancy-chip value="user2" selected class="flex items-center gap-2">
103
- <schmancy-avatar size="sm">AS</schmancy-avatar>
104
- <schmancy-typography type="body" token="sm">alice.smith@example.com</schmancy-typography>
143
+ <schmancy-chip type="assist" value="add">
144
+ <schmancy-icon slot="icon">add</schmancy-icon>
145
+ Add Tag
105
146
  </schmancy-chip>
106
- </div>
107
-
108
- // Single selection chips
109
- <schmancy-chips
110
- .value=${selectedSize}
111
- @change=${(e) => selectedSize = e.detail}>
112
- <schmancy-chip value="sm">Small</schmancy-chip>
113
- <schmancy-chip value="md">Medium</schmancy-chip>
114
- <schmancy-chip value="lg">Large</schmancy-chip>
115
147
  </schmancy-chips>
116
148
 
117
- // Multiple selection chips
118
- <schmancy-chips
119
- multi
120
- .values=${selectedToppings}
121
- @change=${(e) => selectedToppings = e.detail}>
122
- <schmancy-chip value="cheese">Cheese</schmancy-chip>
123
- <schmancy-chip value="pepperoni">Pepperoni</schmancy-chip>
124
- <schmancy-chip value="mushrooms">Mushrooms</schmancy-chip>
125
- <schmancy-chip value="onions">Onions</schmancy-chip>
126
- <schmancy-chip value="peppers">Peppers</schmancy-chip>
149
+ // Horizontal scrolling chips
150
+ <schmancy-chips wrap="false">
151
+ <schmancy-chip type="filter" value="mon">Monday</schmancy-chip>
152
+ <schmancy-chip type="filter" value="tue">Tuesday</schmancy-chip>
153
+ <schmancy-chip type="filter" value="wed">Wednesday</schmancy-chip>
154
+ <schmancy-chip type="filter" value="thu">Thursday</schmancy-chip>
155
+ <schmancy-chip type="filter" value="fri">Friday</schmancy-chip>
127
156
  </schmancy-chips>
157
+ ```
128
158
 
129
- // Date selector with horizontal scrolling
130
- <schmancy-chips
131
- wrap="false"
132
- .value=${selectedDate}
133
- @change=${(e) => selectedDate = e.detail}>
134
- <schmancy-chip value="2024-01-15">Mon 15</schmancy-chip>
135
- <schmancy-chip value="2024-01-16">Tue 16</schmancy-chip>
136
- <schmancy-chip value="2024-01-17">Wed 17</schmancy-chip>
137
- <schmancy-chip value="2024-01-18">Thu 18</schmancy-chip>
138
- <schmancy-chip value="2024-01-19">Fri 19</schmancy-chip>
139
- <schmancy-chip value="2024-01-20">Sat 20</schmancy-chip>
140
- <schmancy-chip value="2024-01-21">Sun 21</schmancy-chip>
159
+ ## Component Properties
160
+
161
+ ### schmancy-chip
162
+
163
+ | Property | Type | Default | Description |
164
+ |----------|------|---------|-------------|
165
+ | `type` | `'assist' \| 'filter' \| 'input' \| 'suggestion'` | `'filter'` | Chip type (Material Web spec) |
166
+ | `value` | `string` | `''` | Value for selection/identification |
167
+ | `selected` | `boolean` | `false` | Whether chip is selected (ONLY applies to filter chips) |
168
+ | `label` | `string` | `''` | Text label (alternative to slot content) |
169
+ | `icon` | `string` | `''` | Legacy emoji/icon support |
170
+ | `avatar` | `boolean` | `false` | Enable avatar mode (input chips) |
171
+ | `elevated` | `boolean` | `false` | Add elevation shadow |
172
+ | `soft-disabled` | `boolean` | `false` | Partial disable state |
173
+ | `removable` | `boolean` | `false` | Show remove button (input chips) |
174
+ | `readOnly` | `boolean` | `false` | Make chip non-interactive |
175
+ | `disabled` | `boolean` | `false` | Fully disable chip |
176
+
177
+ ### schmancy-chips
178
+
179
+ | Property | Type | Default | Description |
180
+ |----------|------|---------|-------------|
181
+ | `multi` | `boolean` | `false` | **[Deprecated]** Use `.values` for multi-selection or `.value` for single-selection |
182
+ | `value` | `string` | `''` | Selected value (automatically enables single-selection mode) |
183
+ | `values` | `string[]` | `[]` | Selected values (automatically enables multi-selection mode) |
184
+ | `wrap` | `boolean` | `true` | Whether chips wrap to new lines |
185
+
186
+ #### 🎯 Automatic Mode Detection
187
+
188
+ The `schmancy-chips` container now **automatically detects** the selection mode based on which property you use:
189
+
190
+ - **`.values` array** → Automatically enables **multi-selection mode**
191
+ - **`.value` string** → Automatically enables **single-selection mode**
192
+ - **Neither property** → Layout-only mode (no selection management)
193
+
194
+ The deprecated `multi` property is kept for backward compatibility but is no longer needed.
195
+
196
+ ## Events
197
+
198
+ ### schmancy-chip Events
199
+
200
+ - `@change` - Fires when selection changes (ONLY for filter chips)
201
+ - Detail: `{ value: string, selected: boolean }`
202
+ - Note: Only filter chips emit this event when toggling selected state
203
+ - `@remove` - Fires when remove button clicked (ONLY for input chips with `removable` prop)
204
+ - Detail: `{ value: string }`
205
+ - Note: Requires `type="input"` and `removable` property
206
+ - `@click` - Standard click event (all chip types)
207
+ - For assist/suggestion chips: Use this to trigger actions
208
+ - For filter chips: Internally handled to toggle selection
209
+ - For input chips: Use for custom click handling
210
+
211
+ ### schmancy-chips Events
212
+
213
+ - `@change` - Fires when selection changes
214
+ - Detail: `string` (single mode) or `string[]` (multi mode)
215
+ - `@remove` - Bubbled from child chip remove events
216
+ - Detail: `{ value: string }`
217
+
218
+ ## Slots
219
+
220
+ ### Icon Slot (Recommended)
221
+ Use the `icon` slot for proper Material Web icon alignment:
222
+
223
+ ```html
224
+ <schmancy-chip value="star">
225
+ <schmancy-icon slot="icon">star</schmancy-icon>
226
+ Starred
227
+ </schmancy-chip>
228
+ ```
229
+
230
+ ### Default Slot
231
+ The default slot accepts any content, including text, icons, and complex layouts:
232
+
233
+ ```html
234
+ <schmancy-chip value="complex">
235
+ <div class="flex items-center gap-2">
236
+ <schmancy-avatar size="sm">JD</schmancy-avatar>
237
+ <span>John Doe</span>
238
+ <schmancy-badge>5</schmancy-badge>
239
+ </div>
240
+ </schmancy-chip>
241
+ ```
242
+
243
+ ## Real-World Examples
244
+
245
+ ### Tag Input with Remove
246
+ ```js
247
+ <schmancy-chips @remove=${handleTagRemove}>
248
+ ${tags.map(tag => html`
249
+ <schmancy-chip
250
+ type="input"
251
+ value=${tag.id}
252
+ removable>
253
+ <schmancy-icon slot="icon">label</schmancy-icon>
254
+ ${tag.name}
255
+ </schmancy-chip>
256
+ `)}
257
+ <schmancy-chip type="assist" value="add" @click=${addTag}>
258
+ <schmancy-icon slot="icon">add</schmancy-icon>
259
+ Add Tag
260
+ </schmancy-chip>
141
261
  </schmancy-chips>
262
+ ```
142
263
 
143
- // Category filters
144
- <schmancy-chips
145
- multi
146
- .values=${selectedCategories}
147
- @change=${(e) => selectedCategories = e.detail}>
148
- <schmancy-chip value="electronics" icon="💻">Electronics</schmancy-chip>
149
- <schmancy-chip value="clothing" icon="👕">Clothing</schmancy-chip>
150
- <schmancy-chip value="books" icon="📚">Books</schmancy-chip>
151
- <schmancy-chip value="home" icon="🏠">Home & Garden</schmancy-chip>
152
- <schmancy-chip value="sports" icon="⚽">Sports</schmancy-chip>
264
+ ### Filter Bar with Multiple Types
265
+ ```js
266
+ <schmancy-chips .values=${activeFilters}>
267
+ <schmancy-chip type="filter" value="in-stock">
268
+ <schmancy-icon slot="icon">inventory</schmancy-icon>
269
+ In Stock
270
+ </schmancy-chip>
271
+ <schmancy-chip type="filter" value="on-sale">
272
+ <schmancy-icon slot="icon">sell</schmancy-icon>
273
+ On Sale
274
+ </schmancy-chip>
275
+ <schmancy-chip type="filter" value="free-shipping">
276
+ <schmancy-icon slot="icon">local_shipping</schmancy-icon>
277
+ Free Shipping
278
+ </schmancy-chip>
153
279
  </schmancy-chips>
280
+ ```
154
281
 
155
- // Skills/Tags selection
156
- <schmancy-chips
157
- multi
158
- .values=${selectedSkills}
159
- @change=${(e) => selectedSkills = e.detail}>
160
- ${availableSkills.map(skill => html`
161
- <schmancy-chip
162
- value=${skill.id}
163
- icon=${skill.icon}>
164
- ${skill.name}
282
+ ### User Selection with Avatars
283
+ ```js
284
+ <schmancy-chips>
285
+ ${users.map(user => html`
286
+ <schmancy-chip
287
+ type="input"
288
+ value=${user.id}
289
+ avatar
290
+ removable>
291
+ <img slot="icon" src=${user.avatar} alt=${user.name}>
292
+ ${user.name}
165
293
  </schmancy-chip>
166
294
  `)}
167
295
  </schmancy-chips>
296
+ ```
168
297
 
169
- // Read-only chips display
170
- <div>
171
- <schmancy-chip value="completed" icon="✅" readOnly>Completed</schmancy-chip>
172
- <schmancy-chip value="pending" icon="⏳" readOnly>Pending</schmancy-chip>
173
- <schmancy-chip value="cancelled" icon="❌" readOnly>Cancelled</schmancy-chip>
298
+ ### Action Chips
299
+ ```js
300
+ <div class="flex gap-2">
301
+ <schmancy-chip type="assist" elevated @click=${handleShare}>
302
+ <schmancy-icon slot="icon">share</schmancy-icon>
303
+ Share
304
+ </schmancy-chip>
305
+ <schmancy-chip type="assist" @click=${handleBookmark}>
306
+ <schmancy-icon slot="icon">bookmark</schmancy-icon>
307
+ Save
308
+ </schmancy-chip>
309
+ <schmancy-chip type="assist" @click=${handlePrint}>
310
+ <schmancy-icon slot="icon">print</schmancy-icon>
311
+ Print
312
+ </schmancy-chip>
174
313
  </div>
175
- ```
314
+ ```
315
+
316
+ ### Suggestion Chips
317
+ ```js
318
+ <schmancy-chips>
319
+ <schmancy-chip type="suggestion" value="recently-viewed">
320
+ <schmancy-icon slot="icon">history</schmancy-icon>
321
+ Recently Viewed
322
+ </schmancy-chip>
323
+ <schmancy-chip type="suggestion" value="recommended">
324
+ <schmancy-icon slot="icon">thumb_up</schmancy-icon>
325
+ Recommended
326
+ </schmancy-chip>
327
+ <schmancy-chip type="suggestion" value="trending">
328
+ <schmancy-icon slot="icon">trending_up</schmancy-icon>
329
+ Trending
330
+ </schmancy-chip>
331
+ </schmancy-chips>
332
+ ```
333
+
334
+ ## Common Mistakes to Avoid
335
+
336
+ ### ❌ Trying to use `selected` on non-filter chips
337
+ ```js
338
+ // WRONG - Only filter chips support selected state
339
+ <schmancy-chip type="assist" selected>Help</schmancy-chip>
340
+ <schmancy-chip type="input" selected>Tag</schmancy-chip>
341
+ <schmancy-chip type="suggestion" selected>Tip</schmancy-chip>
342
+
343
+ // CORRECT - Only use selected with filter type
344
+ <schmancy-chip type="filter" selected>Active Filter</schmancy-chip>
345
+ ```
346
+
347
+ ### ❌ Expecting state changes from assist/suggestion chips
348
+ ```js
349
+ // WRONG - Expecting assist chip to maintain state
350
+ <schmancy-chip type="assist" @change=${handleChange}>
351
+ Share
352
+ </schmancy-chip>
353
+
354
+ // CORRECT - Use click event for actions
355
+ <schmancy-chip type="assist" @click=${handleShare}>
356
+ Share
357
+ </schmancy-chip>
358
+ ```
359
+
360
+ ### ❌ Using remove button on non-input chips
361
+ ```js
362
+ // WRONG - Only input chips support removable
363
+ <schmancy-chip type="filter" removable>Filter</schmancy-chip>
364
+ <schmancy-chip type="assist" removable>Action</schmancy-chip>
365
+
366
+ // CORRECT - Use removable only with input type
367
+ <schmancy-chip type="input" removable @remove=${handleRemove}>
368
+ User Tag
369
+ </schmancy-chip>
370
+ ```
371
+
372
+ ## Migration Guide
373
+
374
+ ### From Legacy to Material Web API
375
+
376
+ ```js
377
+ // OLD (still works for backward compatibility)
378
+ <schmancy-chip value="star" selected icon="">
379
+ <schmancy-icon>star</schmancy-icon>
380
+ Starred
381
+ </schmancy-chip>
382
+
383
+ // NEW (Material Web compliant)
384
+ <schmancy-chip type="filter" value="star" selected>
385
+ <schmancy-icon slot="icon">star</schmancy-icon>
386
+ Starred
387
+ </schmancy-chip>
388
+ ```
389
+
390
+ ### Key Changes
391
+ 1. Add `type` property to explicitly set chip behavior
392
+ 2. Use `slot="icon"` for icons to ensure proper placement
393
+ 3. Use `removable` property for input chips with remove functionality
394
+ 4. Use `elevated` for visual emphasis
395
+ 5. Use `soft-disabled` for partial interaction states
396
+
397
+ All existing code continues to work - the default type is `'filter'` for backward compatibility.
package/ai/typography.md CHANGED
@@ -53,8 +53,8 @@ import '@schmancy/index' // For all Schmancy components
53
53
  </schmancy-typography>
54
54
 
55
55
  // 6. With additional styling
56
- <schmancy-typography type="headline" token="sm" class="mb-4 text-primary">
57
- Highlighted Section
56
+ <schmancy-typography type="headline" token="sm" class="mb-4">
57
+ Section Title
58
58
  </schmancy-typography>
59
59
 
60
60
  // 7. Centered uppercase title
@@ -77,7 +77,7 @@ import '@schmancy/index' // For all Schmancy components
77
77
  <schmancy-typography type="headline" token="sm" class="block mb-2">
78
78
  Card Title
79
79
  </schmancy-typography>
80
- <schmancy-typography type="body" token="md" class="block mb-4 text-surface-onVariant">
80
+ <schmancy-typography type="body" token="md" class="block mb-4">
81
81
  This is a description that provides more context about the card content.
82
82
  </schmancy-typography>
83
83
  <schmancy-typography type="label" token="lg" class="text-primary">
@@ -167,8 +167,66 @@ Material Design 3 typography scale with 6 types, each with 5 sizes:
167
167
  ### Theme Integration
168
168
  Typography automatically inherits colors from the theme:
169
169
  - Uses `color: var(--schmancy-sys-color-surface-on)` by default
170
- - Respects surface container colors
171
- - Can be overridden with Tailwind classes
170
+ - Automatically inherits the correct text color from parent surfaces
171
+ - WARNING: Avoid overriding with Tailwind color classes when inside surfaces
172
+
173
+ ### Color Inheritance
174
+
175
+ **CRITICAL: Typography components automatically inherit the correct color from their parent surface.**
176
+
177
+ #### ✅ CORRECT - Let Surface Handle Colors
178
+ ```html
179
+ <!-- Typography inherits the correct on-color from the surface -->
180
+ <schmancy-surface type="containerLow" class="p-4">
181
+ <schmancy-typography type="headline" token="md">
182
+ This text automatically uses the correct contrast color
183
+ </schmancy-typography>
184
+ </schmancy-surface>
185
+
186
+ <!-- Different surface types provide different text colors automatically -->
187
+ <schmancy-surface type="primary" class="p-4">
188
+ <schmancy-typography type="body" token="md">
189
+ White text on primary background (automatic)
190
+ </schmancy-typography>
191
+ </schmancy-surface>
192
+ ```
193
+
194
+ #### ❌ WRONG - Explicit Color Classes Inside Surfaces
195
+ ```html
196
+ <!-- BAD: Overriding the surface's automatic color selection -->
197
+ <schmancy-surface type="containerLow" class="p-4">
198
+ <schmancy-typography type="headline" token="md" class="text-surface-onVariant">
199
+ Don't add color classes - the surface already provides the right color!
200
+ </schmancy-typography>
201
+ </schmancy-surface>
202
+ ```
203
+
204
+ #### When to Use Color Classes
205
+
206
+ **ONLY add explicit color classes when:**
207
+ 1. Typography is used standalone (not inside a surface)
208
+ 2. You need a specific semantic color (e.g., `text-error` for errors)
209
+ 3. Creating interactive elements that change color on hover
210
+
211
+ ```html
212
+ <!-- Standalone typography (not in a surface) - color class is appropriate -->
213
+ <div class="p-4">
214
+ <schmancy-typography type="label" token="md" class="text-error">
215
+ Error: Invalid input
216
+ </schmancy-typography>
217
+ </div>
218
+
219
+ <!-- Interactive element with hover state -->
220
+ <schmancy-typography type="body" token="md" class="cursor-pointer hover:text-primary">
221
+ Click for more info
222
+ </schmancy-typography>
223
+ ```
224
+
225
+ **Key Rules:**
226
+ - NEVER add `text-surface-onVariant` or similar classes inside surfaces
227
+ - Surfaces automatically provide the correct contrast color
228
+ - Each surface type (primary, secondary, tertiary, containerLow, etc.) knows its appropriate text color
229
+ - Trust the component system - it handles accessibility and contrast automatically
172
230
 
173
231
  ### Implementation Details
174
232
  - Uses Shadow DOM with encapsulated styles
@@ -184,7 +242,7 @@ Typography automatically inherits colors from the theme:
184
242
  <schmancy-typography type="display" token="md" class="block mb-4">
185
243
  Dashboard
186
244
  </schmancy-typography>
187
- <schmancy-typography type="body" token="lg" class="block text-surface-onVariant">
245
+ <schmancy-typography type="body" token="lg" class="block">
188
246
  Welcome back! Here's your activity summary.
189
247
  </schmancy-typography>
190
248
  ```
@@ -202,7 +260,7 @@ Typography automatically inherits colors from the theme:
202
260
  <schmancy-typography type="headline" token="md" class="block text-primary">
203
261
  $1,234.56
204
262
  </schmancy-typography>
205
- <schmancy-typography type="label" token="sm" class="text-surface-onVariant">
263
+ <schmancy-typography type="label" token="sm">
206
264
  Total Revenue
207
265
  </schmancy-typography>
208
266
  ```
@@ -214,7 +272,7 @@ Typography automatically inherits colors from the theme:
214
272
  <schmancy-typography type="title" token="md" class="block">
215
273
  Feature One
216
274
  </schmancy-typography>
217
- <schmancy-typography type="body" token="sm" class="block text-surface-onVariant">
275
+ <schmancy-typography type="body" token="sm" class="block">
218
276
  Description of the first feature
219
277
  </schmancy-typography>
220
278
  </div>