@mhmo91/schmancy 0.4.77 → 0.4.79

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 (316) hide show
  1. package/ai/content-drawer.md +59 -26
  2. package/ai/icons.md +222 -121
  3. package/ai/spinner.md +165 -0
  4. package/dist/ai/content-drawer.md +59 -26
  5. package/dist/ai/icons.md +222 -121
  6. package/dist/ai/spinner.md +165 -0
  7. package/dist/{animated-text-CTMDHCbw.js → animated-text-DF5iHL66.js} +3 -3
  8. package/dist/{animated-text-CTMDHCbw.js.map → animated-text-DF5iHL66.js.map} +1 -1
  9. package/dist/{animated-text-yAIb26ld.cjs → animated-text-Ra7G35tz.cjs} +2 -2
  10. package/dist/{animated-text-yAIb26ld.cjs.map → animated-text-Ra7G35tz.cjs.map} +1 -1
  11. package/dist/animated-text.cjs +1 -1
  12. package/dist/animated-text.js +1 -1
  13. package/dist/area.cjs +1 -1
  14. package/dist/area.js +1 -1
  15. package/dist/{autocomplete-BYiDoFG_.cjs → autocomplete-0qgkJELR.cjs} +2 -2
  16. package/dist/{autocomplete-BYiDoFG_.cjs.map → autocomplete-0qgkJELR.cjs.map} +1 -1
  17. package/dist/{autocomplete-m-nEVE3h.js → autocomplete-DNTo7fHJ.js} +3 -3
  18. package/dist/{autocomplete-m-nEVE3h.js.map → autocomplete-DNTo7fHJ.js.map} +1 -1
  19. package/dist/autocomplete.cjs +1 -1
  20. package/dist/autocomplete.js +1 -1
  21. package/dist/{avatar-nxVn--Oo.js → avatar-CokwBO2O.js} +190 -172
  22. package/dist/avatar-CokwBO2O.js.map +1 -0
  23. package/dist/{avatar-DjCNlJz6.cjs → avatar-Cxu7EOku.cjs} +20 -20
  24. package/dist/avatar-Cxu7EOku.cjs.map +1 -0
  25. package/dist/badge.cjs +1 -1
  26. package/dist/badge.js +1 -1
  27. package/dist/{boat-sl3amQ3s.js → boat-BEjCaneK.js} +2 -2
  28. package/dist/{boat-sl3amQ3s.js.map → boat-BEjCaneK.js.map} +1 -1
  29. package/dist/{boat-_ZRYkQQZ.cjs → boat-CsmB4RXa.cjs} +2 -2
  30. package/dist/{boat-_ZRYkQQZ.cjs.map → boat-CsmB4RXa.cjs.map} +1 -1
  31. package/dist/boat.cjs +1 -1
  32. package/dist/boat.js +1 -1
  33. package/dist/busy.cjs +1 -1
  34. package/dist/busy.js +1 -1
  35. package/dist/button.cjs +1 -1
  36. package/dist/button.js +1 -1
  37. package/dist/card.cjs +1 -1
  38. package/dist/card.js +1 -1
  39. package/dist/{checkbox-HdmRM2Vg.cjs → checkbox-D6bUTeG8.cjs} +2 -2
  40. package/dist/{checkbox-HdmRM2Vg.cjs.map → checkbox-D6bUTeG8.cjs.map} +1 -1
  41. package/dist/{checkbox-zTyMywpJ.js → checkbox-k9tWSA4E.js} +2 -2
  42. package/dist/{checkbox-zTyMywpJ.js.map → checkbox-k9tWSA4E.js.map} +1 -1
  43. package/dist/checkbox.cjs +1 -1
  44. package/dist/checkbox.js +1 -1
  45. package/dist/{chips-DDDu8hh9.cjs → chips-CtbapOaS.cjs} +2 -2
  46. package/dist/{chips-DDDu8hh9.cjs.map → chips-CtbapOaS.cjs.map} +1 -1
  47. package/dist/{chips-DAkLLDRf.js → chips-DO6f95nV.js} +3 -3
  48. package/dist/{chips-DAkLLDRf.js.map → chips-DO6f95nV.js.map} +1 -1
  49. package/dist/chips.cjs +1 -1
  50. package/dist/chips.js +1 -1
  51. package/dist/code-highlight.cjs +1 -1
  52. package/dist/code-highlight.js +1 -1
  53. package/dist/{code-preview-BxO04VVx.cjs → code-preview-DGkqHYdn.cjs} +2 -2
  54. package/dist/{code-preview-BxO04VVx.cjs.map → code-preview-DGkqHYdn.cjs.map} +1 -1
  55. package/dist/{code-preview-DH3koGm9.js → code-preview-djAAzZxj.js} +2 -2
  56. package/dist/{code-preview-DH3koGm9.js.map → code-preview-djAAzZxj.js.map} +1 -1
  57. package/dist/components.cjs +1 -1
  58. package/dist/components.js +1 -1
  59. package/dist/content-drawer.cjs +1 -1
  60. package/dist/content-drawer.js +1 -1
  61. package/dist/{date-range-sfDUF7dG.js → date-range-CHJqdE9Y.js} +3 -3
  62. package/dist/{date-range-sfDUF7dG.js.map → date-range-CHJqdE9Y.js.map} +1 -1
  63. package/dist/{date-range-TJXLY7Yx.cjs → date-range-Dfw7LxKv.cjs} +2 -2
  64. package/dist/{date-range-TJXLY7Yx.cjs.map → date-range-Dfw7LxKv.cjs.map} +1 -1
  65. package/dist/{date-range-inline-BSqXKZ3-.cjs → date-range-inline-CBOrdNiP.cjs} +2 -2
  66. package/dist/{date-range-inline-BSqXKZ3-.cjs.map → date-range-inline-CBOrdNiP.cjs.map} +1 -1
  67. package/dist/{date-range-inline-CUb59TOM.js → date-range-inline-dlZb5tJg.js} +3 -3
  68. package/dist/{date-range-inline-CUb59TOM.js.map → date-range-inline-dlZb5tJg.js.map} +1 -1
  69. package/dist/date-range-inline.cjs +1 -1
  70. package/dist/date-range-inline.js +1 -1
  71. package/dist/date-range.cjs +1 -1
  72. package/dist/date-range.js +1 -1
  73. package/dist/{delay-CHpGPLLr.js → delay-BP5SfQRo.js} +2 -2
  74. package/dist/{delay-CHpGPLLr.js.map → delay-BP5SfQRo.js.map} +1 -1
  75. package/dist/{delay-CbXOIuAd.cjs → delay-DFB3_NEH.cjs} +2 -2
  76. package/dist/{delay-CbXOIuAd.cjs.map → delay-DFB3_NEH.cjs.map} +1 -1
  77. package/dist/delay.cjs +1 -1
  78. package/dist/delay.js +1 -1
  79. package/dist/{details-Cf7zosIT.js → details-Bd0PJpSd.js} +15 -14
  80. package/dist/details-Bd0PJpSd.js.map +1 -0
  81. package/dist/{details-D6yYIQaE.cjs → details-Cv8AMues.cjs} +7 -7
  82. package/dist/details-Cv8AMues.cjs.map +1 -0
  83. package/dist/details.cjs +1 -1
  84. package/dist/details.js +1 -1
  85. package/dist/{dialog-content-BabnHd-t.js → dialog-content-8smVbEth.js} +3 -3
  86. package/dist/{dialog-content-BabnHd-t.js.map → dialog-content-8smVbEth.js.map} +1 -1
  87. package/dist/{dialog-content-BkK0XT-T.cjs → dialog-content-CURTuo8R.cjs} +2 -2
  88. package/dist/{dialog-content-BkK0XT-T.cjs.map → dialog-content-CURTuo8R.cjs.map} +1 -1
  89. package/dist/dialog.cjs +1 -1
  90. package/dist/dialog.js +1 -1
  91. package/dist/{divider-CQ9PTETp.cjs → divider-CVomKpEr.cjs} +2 -2
  92. package/dist/{divider-CQ9PTETp.cjs.map → divider-CVomKpEr.cjs.map} +1 -1
  93. package/dist/{divider-DyNmX5oP.js → divider-DnyRwbTs.js} +3 -3
  94. package/dist/{divider-DyNmX5oP.js.map → divider-DnyRwbTs.js.map} +1 -1
  95. package/dist/divider.cjs +1 -1
  96. package/dist/divider.js +1 -1
  97. package/dist/{dropdown-content-1g76XIVT.js → dropdown-content-B1tXM7Vp.js} +3 -3
  98. package/dist/{dropdown-content-1g76XIVT.js.map → dropdown-content-B1tXM7Vp.js.map} +1 -1
  99. package/dist/{dropdown-content-DwiI2xi1.cjs → dropdown-content-lZcMgCym.cjs} +2 -2
  100. package/dist/{dropdown-content-DwiI2xi1.cjs.map → dropdown-content-lZcMgCym.cjs.map} +1 -1
  101. package/dist/dropdown.cjs +1 -1
  102. package/dist/dropdown.js +1 -1
  103. package/dist/{email-recipients-BJsjr6H6.js → email-recipients-CQNYpvG7.js} +5 -5
  104. package/dist/{email-recipients-BJsjr6H6.js.map → email-recipients-CQNYpvG7.js.map} +1 -1
  105. package/dist/{email-recipients-BiPVR8Hi.cjs → email-recipients-D2bcyJAi.cjs} +2 -2
  106. package/dist/{email-recipients-BiPVR8Hi.cjs.map → email-recipients-D2bcyJAi.cjs.map} +1 -1
  107. package/dist/extra.cjs +1 -1
  108. package/dist/extra.js +1 -1
  109. package/dist/{flex-0kVSQTqk.js → flex-CQzrxgEP.js} +2 -2
  110. package/dist/{flex-0kVSQTqk.js.map → flex-CQzrxgEP.js.map} +1 -1
  111. package/dist/{flex-CYToPu65.cjs → flex-CbGwzfNX.cjs} +2 -2
  112. package/dist/{flex-CYToPu65.cjs.map → flex-CbGwzfNX.cjs.map} +1 -1
  113. package/dist/{form-BTIOJob0.cjs → form-Cid9N-2B.cjs} +2 -2
  114. package/dist/{form-BTIOJob0.cjs.map → form-Cid9N-2B.cjs.map} +1 -1
  115. package/dist/{form-CzSHXlhh.js → form-DcKKSUWi.js} +2 -2
  116. package/dist/{form-CzSHXlhh.js.map → form-DcKKSUWi.js.map} +1 -1
  117. package/dist/form.cjs +1 -1
  118. package/dist/form.js +1 -1
  119. package/dist/{formField.mixin-D3pQ9LTE.js → formField.mixin-C5U1Rh5p.js} +2 -2
  120. package/dist/{formField.mixin-D3pQ9LTE.js.map → formField.mixin-C5U1Rh5p.js.map} +1 -1
  121. package/dist/{formField.mixin-BE8yyY7E.cjs → formField.mixin-DtuGCitn.cjs} +2 -2
  122. package/dist/{formField.mixin-BE8yyY7E.cjs.map → formField.mixin-DtuGCitn.cjs.map} +1 -1
  123. package/dist/{icon-DxLigT_B.cjs → icon-7uflQBUI.cjs} +2 -2
  124. package/dist/{icon-DxLigT_B.cjs.map → icon-7uflQBUI.cjs.map} +1 -1
  125. package/dist/{icon-CB8zMasU.js → icon-DF5RpNTK.js} +2 -2
  126. package/dist/{icon-CB8zMasU.js.map → icon-DF5RpNTK.js.map} +1 -1
  127. package/dist/{icon-button-n_1iOQGQ.js → icon-button-Bol0a-v7.js} +3 -3
  128. package/dist/{icon-button-n_1iOQGQ.js.map → icon-button-Bol0a-v7.js.map} +1 -1
  129. package/dist/{icon-button-B6sa3c9D.cjs → icon-button-D41ID2Fc.cjs} +2 -2
  130. package/dist/{icon-button-B6sa3c9D.cjs.map → icon-button-D41ID2Fc.cjs.map} +1 -1
  131. package/dist/icons.cjs +1 -1
  132. package/dist/icons.js +1 -1
  133. package/dist/index.cjs +1 -1
  134. package/dist/index.js +47 -47
  135. package/dist/{input-FXEREBl6.cjs → input-CcwnttG1.cjs} +2 -2
  136. package/dist/{input-FXEREBl6.cjs.map → input-CcwnttG1.cjs.map} +1 -1
  137. package/dist/{input-BAJnPVSv.js → input-ClFADkhf.js} +3 -3
  138. package/dist/{input-BAJnPVSv.js.map → input-ClFADkhf.js.map} +1 -1
  139. package/dist/input.cjs +1 -1
  140. package/dist/input.js +1 -1
  141. package/dist/layout.cjs +1 -1
  142. package/dist/layout.js +1 -1
  143. package/dist/{list-TbB9Rpwx.cjs → list-BAjh6Ucg.cjs} +2 -2
  144. package/dist/{list-TbB9Rpwx.cjs.map → list-BAjh6Ucg.cjs.map} +1 -1
  145. package/dist/{list-ZeNhyo74.js → list-CIFl0wDX.js} +2 -2
  146. package/dist/{list-ZeNhyo74.js.map → list-CIFl0wDX.js.map} +1 -1
  147. package/dist/list.cjs +1 -1
  148. package/dist/list.js +1 -1
  149. package/dist/{litElement.mixin-DVZiIRUa.js → litElement.mixin-Cs2vwcM4.js} +2 -2
  150. package/dist/{litElement.mixin-DVZiIRUa.js.map → litElement.mixin-Cs2vwcM4.js.map} +1 -1
  151. package/dist/{litElement.mixin-N4BRrCeD.cjs → litElement.mixin-DiSo_YRo.cjs} +2 -2
  152. package/dist/{litElement.mixin-N4BRrCeD.cjs.map → litElement.mixin-DiSo_YRo.cjs.map} +1 -1
  153. package/dist/mailbox.cjs +1 -1
  154. package/dist/mailbox.js +1 -1
  155. package/dist/{map-ck5dlHEW.js → map-DRXTbpex.js} +2 -2
  156. package/dist/{map-ck5dlHEW.js.map → map-DRXTbpex.js.map} +1 -1
  157. package/dist/{map-DW4GhKaH.cjs → map-wFoHnuTE.cjs} +2 -2
  158. package/dist/{map-DW4GhKaH.cjs.map → map-wFoHnuTE.cjs.map} +1 -1
  159. package/dist/map.cjs +1 -1
  160. package/dist/map.js +1 -1
  161. package/dist/{media-C9Qy2mql.cjs → media-DMXDyK_t.cjs} +2 -2
  162. package/dist/{media-C9Qy2mql.cjs.map → media-DMXDyK_t.cjs.map} +1 -1
  163. package/dist/{media-CunGFwol.js → media-DdD4d518.js} +2 -2
  164. package/dist/{media-CunGFwol.js.map → media-DdD4d518.js.map} +1 -1
  165. package/dist/{menu-BkTWAEeh.cjs → menu-D6djF8D7.cjs} +2 -2
  166. package/dist/{menu-BkTWAEeh.cjs.map → menu-D6djF8D7.cjs.map} +1 -1
  167. package/dist/{menu-Cja83sLd.js → menu-vSrpyy8w.js} +3 -3
  168. package/dist/{menu-Cja83sLd.js.map → menu-vSrpyy8w.js.map} +1 -1
  169. package/dist/menu.cjs +1 -1
  170. package/dist/menu.js +1 -1
  171. package/dist/nav-drawer.cjs +1 -1
  172. package/dist/nav-drawer.js +1 -1
  173. package/dist/{notification-service-CKHPaK_C.js → notification-service-C5f9YdPY.js} +4 -4
  174. package/dist/{notification-service-CKHPaK_C.js.map → notification-service-C5f9YdPY.js.map} +1 -1
  175. package/dist/{notification-service-BB7pBlG6.cjs → notification-service-CnVFGj74.cjs} +2 -2
  176. package/dist/{notification-service-BB7pBlG6.cjs.map → notification-service-CnVFGj74.cjs.map} +1 -1
  177. package/dist/notification.cjs +1 -1
  178. package/dist/notification.js +2 -2
  179. package/dist/{notify-DNNTtvHN.js → notify-CuQyUgsU.js} +2 -2
  180. package/dist/{notify-DNNTtvHN.js.map → notify-CuQyUgsU.js.map} +1 -1
  181. package/dist/{notify-CxMMHOyT.cjs → notify-DtUM_vBe.cjs} +2 -2
  182. package/dist/{notify-CxMMHOyT.cjs.map → notify-DtUM_vBe.cjs.map} +1 -1
  183. package/dist/{option-BsvqJpe9.js → option-CMyac-XQ.js} +2 -2
  184. package/dist/{option-BsvqJpe9.js.map → option-CMyac-XQ.js.map} +1 -1
  185. package/dist/{option-BWzNpqSh.cjs → option-D22bslGV.cjs} +2 -2
  186. package/dist/{option-BWzNpqSh.cjs.map → option-D22bslGV.cjs.map} +1 -1
  187. package/dist/option.cjs +1 -1
  188. package/dist/option.js +1 -1
  189. package/dist/{payment-card-form-C0Rck0tO.js → payment-card-form-C2rSfNUB.js} +3 -3
  190. package/dist/{payment-card-form-C0Rck0tO.js.map → payment-card-form-C2rSfNUB.js.map} +1 -1
  191. package/dist/{payment-card-form-Q8jzlprZ.cjs → payment-card-form-CIo6Jvh4.cjs} +2 -2
  192. package/dist/{payment-card-form-Q8jzlprZ.cjs.map → payment-card-form-CIo6Jvh4.cjs.map} +1 -1
  193. package/dist/{progress-CtoQKQub.cjs → progress-Cz6acdfO.cjs} +2 -2
  194. package/dist/{progress-CtoQKQub.cjs.map → progress-Cz6acdfO.cjs.map} +1 -1
  195. package/dist/{progress-CG2bQVP8.js → progress-CzZkkBKS.js} +2 -2
  196. package/dist/{progress-CG2bQVP8.js.map → progress-CzZkkBKS.js.map} +1 -1
  197. package/dist/progress.cjs +1 -1
  198. package/dist/progress.js +1 -1
  199. package/dist/{radio-button-BSUgktLD.js → radio-button-CvhN1gWj.js} +3 -3
  200. package/dist/{radio-button-BSUgktLD.js.map → radio-button-CvhN1gWj.js.map} +1 -1
  201. package/dist/{radio-button-DnvjanKu.cjs → radio-button-XTjTthrJ.cjs} +2 -2
  202. package/dist/{radio-button-DnvjanKu.cjs.map → radio-button-XTjTthrJ.cjs.map} +1 -1
  203. package/dist/radio-group.cjs +1 -1
  204. package/dist/radio-group.js +1 -1
  205. package/dist/{route.component-YXwO_9vn.cjs → route.component-BMRfUQ9O.cjs} +2 -2
  206. package/dist/{route.component-YXwO_9vn.cjs.map → route.component-BMRfUQ9O.cjs.map} +1 -1
  207. package/dist/{route.component-BJEghY9L.js → route.component-D2BflZS9.js} +3 -3
  208. package/dist/{route.component-BJEghY9L.js.map → route.component-D2BflZS9.js.map} +1 -1
  209. package/dist/{schmancy-steps-container-BJdjcjfb.cjs → schmancy-steps-container-CDj0iFPm.cjs} +2 -2
  210. package/dist/{schmancy-steps-container-BJdjcjfb.cjs.map → schmancy-steps-container-CDj0iFPm.cjs.map} +1 -1
  211. package/dist/{schmancy-steps-container-DLoPUodd.js → schmancy-steps-container-DJdcHEVs.js} +2 -2
  212. package/dist/{schmancy-steps-container-DLoPUodd.js.map → schmancy-steps-container-DJdcHEVs.js.map} +1 -1
  213. package/dist/{select-t2FXt_pa.cjs → select-BZuUqcqv.cjs} +2 -2
  214. package/dist/{select-t2FXt_pa.cjs.map → select-BZuUqcqv.cjs.map} +1 -1
  215. package/dist/{select-DagDNtvt.js → select-BnLSAqtO.js} +3 -3
  216. package/dist/{select-DagDNtvt.js.map → select-BnLSAqtO.js.map} +1 -1
  217. package/dist/select.cjs +1 -1
  218. package/dist/select.js +1 -1
  219. package/dist/{sheet-mPwoKv2g.cjs → sheet-CSp5quAX.cjs} +2 -2
  220. package/dist/{sheet-mPwoKv2g.cjs.map → sheet-CSp5quAX.cjs.map} +1 -1
  221. package/dist/{sheet-CRVVJZ0R.js → sheet-CcKYre1L.js} +3 -3
  222. package/dist/{sheet-CRVVJZ0R.js.map → sheet-CcKYre1L.js.map} +1 -1
  223. package/dist/sheet.cjs +1 -1
  224. package/dist/sheet.js +1 -1
  225. package/dist/{slider-pBPJS7W9.cjs → slider-CPJ-4yg4.cjs} +2 -2
  226. package/dist/{slider-pBPJS7W9.cjs.map → slider-CPJ-4yg4.cjs.map} +1 -1
  227. package/dist/{slider-B3F6JkFf.js → slider-D36miB_e.js} +3 -3
  228. package/dist/{slider-B3F6JkFf.js.map → slider-D36miB_e.js.map} +1 -1
  229. package/dist/slider.cjs +1 -1
  230. package/dist/slider.js +1 -1
  231. package/dist/{spinner-DA_-O-xo.js → spinner-1vMz2pLZ.js} +2 -2
  232. package/dist/{spinner-DA_-O-xo.js.map → spinner-1vMz2pLZ.js.map} +1 -1
  233. package/dist/{spinner-BRpfKS5O.cjs → spinner-uKeW1jVr.cjs} +2 -2
  234. package/dist/{spinner-BRpfKS5O.cjs.map → spinner-uKeW1jVr.cjs.map} +1 -1
  235. package/dist/steps.cjs +1 -1
  236. package/dist/steps.js +1 -1
  237. package/dist/{surface-diIElnDd.cjs → surface-DCAyIw6O.cjs} +2 -2
  238. package/dist/{surface-diIElnDd.cjs.map → surface-DCAyIw6O.cjs.map} +1 -1
  239. package/dist/{surface-Dwl538cH.js → surface-DWRvqMeW.js} +2 -2
  240. package/dist/{surface-Dwl538cH.js.map → surface-DWRvqMeW.js.map} +1 -1
  241. package/dist/surface.cjs +1 -1
  242. package/dist/surface.js +1 -1
  243. package/dist/{table-BgKKtRLd.js → table-BYOOIwQ3.js} +2 -2
  244. package/dist/{table-BgKKtRLd.js.map → table-BYOOIwQ3.js.map} +1 -1
  245. package/dist/{table-Bov9UEcb.cjs → table-N5w5txc8.cjs} +2 -2
  246. package/dist/{table-Bov9UEcb.cjs.map → table-N5w5txc8.cjs.map} +1 -1
  247. package/dist/table.cjs +1 -1
  248. package/dist/table.js +1 -1
  249. package/dist/{tabs-compatibility-CPvOBfor.js → tabs-compatibility-BQZ_4rKO.js} +2 -2
  250. package/dist/{tabs-compatibility-CPvOBfor.js.map → tabs-compatibility-BQZ_4rKO.js.map} +1 -1
  251. package/dist/{tabs-compatibility-D5yIfQ_k.cjs → tabs-compatibility-B_0MOHRx.cjs} +2 -2
  252. package/dist/{tabs-compatibility-D5yIfQ_k.cjs.map → tabs-compatibility-B_0MOHRx.cjs.map} +1 -1
  253. package/dist/tabs.cjs +1 -1
  254. package/dist/tabs.js +1 -1
  255. package/dist/tailwind.mixin-BPLAZH0W.cjs +2 -0
  256. package/dist/{tailwind.mixin-2zZHkoOm.cjs.map → tailwind.mixin-BPLAZH0W.cjs.map} +1 -1
  257. package/dist/tailwind.mixin-NLG6hsRk.js +43 -0
  258. package/dist/{tailwind.mixin-DbE6WE_l.js.map → tailwind.mixin-NLG6hsRk.js.map} +1 -1
  259. package/dist/teleport.cjs +1 -1
  260. package/dist/teleport.js +1 -1
  261. package/dist/{textarea-CNEv2Aoz.js → textarea-B-BvDcvC.js} +2 -2
  262. package/dist/{textarea-CNEv2Aoz.js.map → textarea-B-BvDcvC.js.map} +1 -1
  263. package/dist/{textarea-CswyRsoR.cjs → textarea-CfO-1Q7I.cjs} +2 -2
  264. package/dist/{textarea-CswyRsoR.cjs.map → textarea-CfO-1Q7I.cjs.map} +1 -1
  265. package/dist/textarea.cjs +1 -1
  266. package/dist/textarea.js +1 -1
  267. package/dist/{theme-button-CRcXeIw5.js → theme-button-O8T2P7bp.js} +2 -2
  268. package/dist/{theme-button-CRcXeIw5.js.map → theme-button-O8T2P7bp.js.map} +1 -1
  269. package/dist/{theme-button-DPmEDF3P.cjs → theme-button-QgQtIkNO.cjs} +2 -2
  270. package/dist/{theme-button-DPmEDF3P.cjs.map → theme-button-QgQtIkNO.cjs.map} +1 -1
  271. package/dist/theme-button.cjs +1 -1
  272. package/dist/theme-button.js +1 -1
  273. package/dist/theme.cjs +1 -1
  274. package/dist/{theme.component-CamQBQHp.cjs → theme.component--fI9PP4Y.cjs} +2 -2
  275. package/dist/{theme.component-CamQBQHp.cjs.map → theme.component--fI9PP4Y.cjs.map} +1 -1
  276. package/dist/{theme.component-v5kO9gkQ.js → theme.component-z0OFbxq8.js} +2 -2
  277. package/dist/{theme.component-v5kO9gkQ.js.map → theme.component-z0OFbxq8.js.map} +1 -1
  278. package/dist/theme.js +1 -1
  279. package/dist/{timezone-Bk4IctLE.cjs → timezone-C8PYHpA5.cjs} +2 -2
  280. package/dist/{timezone-Bk4IctLE.cjs.map → timezone-C8PYHpA5.cjs.map} +1 -1
  281. package/dist/{timezone-Yo9Sdd5R.js → timezone-CeadXobB.js} +3 -3
  282. package/dist/{timezone-Yo9Sdd5R.js.map → timezone-CeadXobB.js.map} +1 -1
  283. package/dist/{tooltip-ZJEAlZUQ.js → tooltip-DUuT16gi.js} +2 -2
  284. package/dist/{tooltip-ZJEAlZUQ.js.map → tooltip-DUuT16gi.js.map} +1 -1
  285. package/dist/{tooltip-B-yn_OSS.cjs → tooltip-DxkXzv_5.cjs} +2 -2
  286. package/dist/{tooltip-B-yn_OSS.cjs.map → tooltip-DxkXzv_5.cjs.map} +1 -1
  287. package/dist/tooltip.cjs +1 -1
  288. package/dist/tooltip.js +1 -1
  289. package/dist/{tree-CxBWy_Vp.cjs → tree-DD_zsKhj.cjs} +2 -2
  290. package/dist/{tree-CxBWy_Vp.cjs.map → tree-DD_zsKhj.cjs.map} +1 -1
  291. package/dist/{tree-BV-2ElOU.js → tree-YKMOXZkK.js} +2 -2
  292. package/dist/{tree-BV-2ElOU.js.map → tree-YKMOXZkK.js.map} +1 -1
  293. package/dist/tree.cjs +1 -1
  294. package/dist/tree.js +1 -1
  295. package/dist/{typewriter-C-mf2RVj.cjs → typewriter-BZQFLCSO.cjs} +2 -2
  296. package/dist/{typewriter-C-mf2RVj.cjs.map → typewriter-BZQFLCSO.cjs.map} +1 -1
  297. package/dist/{typewriter-Bsn8eoJW.js → typewriter-D0ocrgfy.js} +4 -4
  298. package/dist/{typewriter-Bsn8eoJW.js.map → typewriter-D0ocrgfy.js.map} +1 -1
  299. package/dist/typewriter.cjs +1 -1
  300. package/dist/typewriter.js +1 -1
  301. package/dist/{typography-B5Y21osS.js → typography-B813cueV.js} +2 -2
  302. package/dist/{typography-B5Y21osS.js.map → typography-B813cueV.js.map} +1 -1
  303. package/dist/{typography-pyk5TJHO.cjs → typography-C6a_0J8h.cjs} +2 -2
  304. package/dist/{typography-pyk5TJHO.cjs.map → typography-C6a_0J8h.cjs.map} +1 -1
  305. package/dist/typography.cjs +1 -1
  306. package/dist/typography.js +1 -1
  307. package/package.json +1 -1
  308. package/types/src/content-drawer/drawer.d.ts +1 -1
  309. package/types/src/content-drawer/drawer.service.d.ts +20 -0
  310. package/types/src/content-drawer/index.d.ts +1 -1
  311. package/dist/avatar-DjCNlJz6.cjs.map +0 -1
  312. package/dist/avatar-nxVn--Oo.js.map +0 -1
  313. package/dist/details-Cf7zosIT.js.map +0 -1
  314. package/dist/details-D6yYIQaE.cjs.map +0 -1
  315. package/dist/tailwind.mixin-2zZHkoOm.cjs +0 -2
  316. package/dist/tailwind.mixin-DbE6WE_l.js +0 -43
@@ -27,38 +27,71 @@ Sliding panel system for navigation, overlays, and responsive layouts.
27
27
  </schmancy-content-drawer>
28
28
  ```
29
29
 
30
- ## Context API
30
+ ## Service API
31
31
 
32
32
  ```js
33
- import { contentDrawerContext } from '@schmancy/index'
34
- // Or specific import: import { contentDrawerContext } from '@schmancy/content-drawer'
35
-
36
- // Create drawer controller
37
- const drawer = contentDrawerContext.create('drawer-id')
38
-
39
- // Control methods
40
- drawer.open()
41
- drawer.close()
42
- drawer.toggle()
43
- drawer.lock() // Prevent closing
44
- drawer.unlock()
45
- drawer.setPersistent(boolean)
46
-
47
- // State access
48
- drawer.isOpen -> boolean
49
- drawer.state$ -> Observable<DrawerState>
50
-
51
- // Events
52
- @drawer-opened
53
- @drawer-closed
54
- @drawer-toggled -> { open: boolean }
55
- @before-open
56
- @before-close
33
+ import { schmancyContentDrawer } from '@schmancy/content-drawer'
34
+
35
+ // NEW: Push API - Renders component with automatic re-rendering support
36
+ schmancyContentDrawer.push(component)
37
+ // component can be:
38
+ // - string: 'demo-button' (tag name)
39
+ // - HTMLElement: new DemoButton()
40
+ // - Factory: () => new DemoButton()
41
+ // - Async: () => import('./button').then(m => new m.default())
42
+
43
+ // Legacy render API (backward compatible)
44
+ schmancyContentDrawer.render(ref, component, title?)
45
+
46
+ // Dismiss drawer
47
+ schmancyContentDrawer.dimiss(ref)
48
+ ```
49
+
50
+ ### Push API Features
51
+
52
+ The `push` API solves the re-rendering issue when the same component instance is pushed with updated properties:
53
+
54
+ ```js
55
+ // Create a component instance
56
+ const myComponent = new MyComponent()
57
+ myComponent.variant = 'filled'
58
+
59
+ // Push it to drawer
60
+ schmancyContentDrawer.push(myComponent)
61
+
62
+ // Later, update properties and push again
63
+ myComponent.variant = 'outlined'
64
+ schmancyContentDrawer.push(myComponent) // Automatically detects same instance and forces re-render
57
65
  ```
58
66
 
59
67
  ## Examples
60
68
 
61
- ### 1. Basic Navigation Drawer
69
+ ### 1. Using Push API for Dynamic Content
70
+
71
+ ```js
72
+ // Simple string component
73
+ schmancyContentDrawer.push('demo-typography')
74
+
75
+ // Component instance with properties
76
+ const button = new DemoButton()
77
+ button.variant = 'filled'
78
+ schmancyContentDrawer.push(button)
79
+
80
+ // Factory function for custom setup
81
+ schmancyContentDrawer.push(() => {
82
+ const comp = new MyComponent()
83
+ comp.setAttribute('theme', 'dark')
84
+ return comp
85
+ })
86
+
87
+ // Async module loading
88
+ schmancyContentDrawer.push(async () => {
89
+ const module = await import('./lazy-component')
90
+ return new module.default()
91
+ })
92
+ ```
93
+
94
+ ### 2. Basic Navigation Drawer
62
95
  ```html
63
96
  <schmancy-content-drawer ?open="${drawerOpen}">
64
97
  <schmancy-content-drawer-main>
package/ai/icons.md CHANGED
@@ -1,147 +1,248 @@
1
1
  # Schmancy Icons - AI Reference
2
2
 
3
- ```js
4
- // Basic Icon
5
- <schmancy-icon
6
- icon="icon-name"
7
- size="small|medium|large|x-large"
8
- color="primary|secondary|success|warning|danger|info|currentColor">
9
- </schmancy-icon>
10
-
11
- // Icon with custom size
12
- <schmancy-icon
13
- icon="home"
14
- size="24px">
15
- </schmancy-icon>
3
+ Modern Material Symbols icon component with variable font properties for dynamic icon styling.
16
4
 
17
- // Icon with custom color
5
+ ```js
6
+ // Component Tag
18
7
  <schmancy-icon
19
- icon="star"
20
- color="#f5a623">
8
+ fill="0-1"
9
+ weight="100-700"
10
+ grade="-50-200"
11
+ variant="outlined|rounded|sharp">
12
+ icon-name
21
13
  </schmancy-icon>
22
14
 
23
- // Icon Properties
24
- icon: string // Icon name to display
25
- size: string // Size: "small" (16px), "medium" (24px), "large" (32px), "x-large" (48px), or custom size
26
- color: string // Color: semantic colors, CSS color values, or "currentColor"
27
- rotate: number // Rotation in degrees
28
- flip: string // Flip transformation: "horizontal", "vertical", "both"
29
- spin: boolean // Apply a spinning animation
30
- clickable: boolean // Make icon clickable with hover effects
31
-
32
- // Icon Events
33
- @click // Fires when icon is clicked
34
-
35
- // Available Icons
36
- // The library includes a comprehensive set of icons. Some common ones:
37
- // - UI Actions: "add", "remove", "edit", "delete", "search", "close", "check", "menu"
38
- // - Navigation: "home", "back", "forward", "up", "down", "download", "upload"
39
- // - Communication: "mail", "chat", "phone", "notification", "share"
40
- // - Media: "play", "pause", "stop", "volume", "camera", "image"
41
- // - Objects: "file", "folder", "document", "calendar", "clock", "location"
42
- // - Social: "user", "group", "like", "star", "settings"
43
- // - Alerts: "info", "warning", "error", "success"
44
- // - Arrows: "arrow-up", "arrow-right", "arrow-down", "arrow-left"
45
- // - Chevrons: "chevron-up", "chevron-right", "chevron-down", "chevron-left"
46
-
47
15
  // Examples
48
- // Basic icon usage
49
- <schmancy-icon icon="home"></schmancy-icon>
50
-
51
- // Icons with different sizes
52
- <div>
53
- <schmancy-icon icon="star" size="small"></schmancy-icon>
54
- <schmancy-icon icon="star" size="medium"></schmancy-icon>
55
- <schmancy-icon icon="star" size="large"></schmancy-icon>
56
- <schmancy-icon icon="star" size="x-large"></schmancy-icon>
57
- <schmancy-icon icon="star" size="64px"></schmancy-icon>
58
- </div>
16
+ // 1. Basic icon (outlined style by default)
17
+ <schmancy-icon>home</schmancy-icon>
18
+
19
+ // 2. Filled vs Outlined
20
+ <schmancy-icon fill="0">favorite</schmancy-icon> // Outlined heart
21
+ <schmancy-icon fill="1">favorite</schmancy-icon> // Filled heart
22
+
23
+ // 3. Icon weight variations
24
+ <schmancy-icon weight="100">search</schmancy-icon> // Thin
25
+ <schmancy-icon weight="400">search</schmancy-icon> // Regular (default)
26
+ <schmancy-icon weight="700">search</schmancy-icon> // Bold
27
+
28
+ // 4. Icon variants
29
+ <schmancy-icon variant="outlined">settings</schmancy-icon> // Default
30
+ <schmancy-icon variant="rounded">settings</schmancy-icon> // Rounded style
31
+ <schmancy-icon variant="sharp">settings</schmancy-icon> // Sharp corners
32
+
33
+ // 5. Grade variations (visual weight)
34
+ <schmancy-icon grade="-25">notifications</schmancy-icon> // Lighter
35
+ <schmancy-icon grade="0">notifications</schmancy-icon> // Normal (default)
36
+ <schmancy-icon grade="200">notifications</schmancy-icon> // Heavier
37
+
38
+ // 6. Combined properties
39
+ <schmancy-icon fill="1" weight="300" variant="rounded">
40
+ star
41
+ </schmancy-icon>
59
42
 
60
- // Icons with different colors
61
- <div>
62
- <schmancy-icon icon="info" color="info"></schmancy-icon>
63
- <schmancy-icon icon="check" color="success"></schmancy-icon>
64
- <schmancy-icon icon="warning" color="warning"></schmancy-icon>
65
- <schmancy-icon icon="error" color="danger"></schmancy-icon>
66
- <schmancy-icon icon="help" color="primary"></schmancy-icon>
67
- <schmancy-icon icon="settings" color="secondary"></schmancy-icon>
68
- <schmancy-icon icon="star" color="#f5a623"></schmancy-icon>
69
- </div>
43
+ // 7. Icon sizing (via CSS)
44
+ <schmancy-icon style="--schmancy-icon-size: 16px;">home</schmancy-icon>
45
+ <schmancy-icon style="--schmancy-icon-size: 32px;">home</schmancy-icon>
46
+ <schmancy-icon style="--schmancy-icon-size: 48px;">home</schmancy-icon>
70
47
 
71
- // Icon in a button
48
+ // 8. Icons in buttons
72
49
  <schmancy-button>
73
- <schmancy-icon slot="prefix" icon="download"></schmancy-icon>
50
+ <schmancy-icon slot="icon">download</schmancy-icon>
74
51
  Download
75
52
  </schmancy-button>
76
53
 
77
- <schmancy-icon-button icon="edit"></schmancy-icon-button>
54
+ <schmancy-button variant="filled">
55
+ <schmancy-icon slot="icon" fill="1">add</schmancy-icon>
56
+ Add Item
57
+ </schmancy-button>
58
+
59
+ // 9. Icons in list items
60
+ <schmancy-list-item>
61
+ <schmancy-icon slot="start">folder</schmancy-icon>
62
+ Documents
63
+ </schmancy-list-item>
64
+
65
+ <schmancy-list-item>
66
+ <schmancy-icon slot="start" fill="1">star</schmancy-icon>
67
+ Favorites
68
+ </schmancy-list-item>
69
+
70
+ // 10. Icon transitions (smooth property changes)
71
+ <schmancy-icon
72
+ fill=${isLiked ? "1" : "0"}
73
+ weight=${isLiked ? "700" : "400"}>
74
+ favorite
75
+ </schmancy-icon>
76
+
77
+ // 11. Navigation icons
78
+ <schmancy-navigation-rail>
79
+ <schmancy-icon slot="icon" fill=${activeTab === 'home' ? "1" : "0"}>
80
+ home
81
+ </schmancy-icon>
82
+ <schmancy-icon slot="icon" fill=${activeTab === 'search' ? "1" : "0"}>
83
+ search
84
+ </schmancy-icon>
85
+ <schmancy-icon slot="icon" fill=${activeTab === 'settings' ? "1" : "0"}>
86
+ settings
87
+ </schmancy-icon>
88
+ </schmancy-navigation-rail>
78
89
 
79
- // Icon with rotation and flip
80
- <div>
81
- <schmancy-icon icon="arrow-right" rotate="45"></schmancy-icon>
82
- <schmancy-icon icon="arrow-right" rotate="90"></schmancy-icon>
83
- <schmancy-icon icon="arrow-right" rotate="180"></schmancy-icon>
84
- <schmancy-icon icon="arrow-right" rotate="270"></schmancy-icon>
85
- <schmancy-icon icon="arrow-right" flip="horizontal"></schmancy-icon>
86
- <schmancy-icon icon="arrow-right" flip="vertical"></schmancy-icon>
90
+ // 12. Status indicators
91
+ <div class="flex items-center gap-2">
92
+ <schmancy-icon fill="1" class="text-success">check_circle</schmancy-icon>
93
+ <span>Success</span>
87
94
  </div>
88
95
 
89
- // Spinning icon
90
- <schmancy-icon icon="refresh" spin></schmancy-icon>
96
+ <div class="flex items-center gap-2">
97
+ <schmancy-icon fill="1" class="text-warning">warning</schmancy-icon>
98
+ <span>Warning</span>
99
+ </div>
91
100
 
92
- // Loading state with icon
93
- <div>
94
- <schmancy-icon icon="refresh" spin></schmancy-icon>
95
- <span>Loading...</span>
101
+ <div class="flex items-center gap-2">
102
+ <schmancy-icon fill="1" class="text-error">error</schmancy-icon>
103
+ <span>Error</span>
96
104
  </div>
97
105
 
98
- // Icon in form fields
106
+ // 13. Form field icons
99
107
  <schmancy-input>
100
- <schmancy-icon slot="prefix" icon="search"></schmancy-icon>
108
+ <schmancy-icon slot="prefix">search</schmancy-icon>
101
109
  </schmancy-input>
102
110
 
103
111
  <schmancy-input type="password">
104
- <schmancy-icon
105
- slot="suffix"
106
- icon=${passwordVisible ? "eye-off" : "eye"}
107
- clickable
108
- @click=${togglePasswordVisibility}>
112
+ <schmancy-icon slot="suffix" fill=${showPassword ? "1" : "0"}>
113
+ ${showPassword ? 'visibility_off' : 'visibility'}
109
114
  </schmancy-icon>
110
115
  </schmancy-input>
111
116
 
112
- // Navigation menu with icons
113
- <schmancy-list interactive>
114
- <schmancy-list-item>
115
- <schmancy-icon slot="start" icon="home"></schmancy-icon>
116
- Home
117
- </schmancy-list-item>
118
- <schmancy-list-item>
119
- <schmancy-icon slot="start" icon="user"></schmancy-icon>
120
- Profile
121
- </schmancy-list-item>
122
- <schmancy-list-item>
123
- <schmancy-icon slot="start" icon="settings"></schmancy-icon>
124
- Settings
125
- </schmancy-list-item>
126
- <schmancy-list-item>
127
- <schmancy-icon slot="start" icon="help"></schmancy-icon>
128
- Help
129
- </schmancy-list-item>
130
- </schmancy-list>
131
-
132
- // Status indicators with icons
133
- <div>
134
- <div style="display: flex; align-items: center; gap: 8px;">
135
- <schmancy-icon icon="check-circle" color="success"></schmancy-icon>
136
- <span>Completed</span>
137
- </div>
138
- <div style="display: flex; align-items: center; gap: 8px;">
139
- <schmancy-icon icon="clock" color="warning"></schmancy-icon>
140
- <span>Pending</span>
141
- </div>
142
- <div style="display: flex; align-items: center; gap: 8px;">
143
- <schmancy-icon icon="x-circle" color="danger"></schmancy-icon>
144
- <span>Failed</span>
145
- </div>
146
- </div>
147
- ```
117
+ // 14. Animated icon state
118
+ <schmancy-icon
119
+ @click=${() => this.toggleBookmark()}
120
+ fill=${this.isBookmarked ? "1" : "0"}
121
+ weight=${this.isBookmarked ? "700" : "400"}
122
+ style="cursor: pointer; transition: all 0.2s;">
123
+ bookmark
124
+ </schmancy-icon>
125
+ ```
126
+
127
+ ## Properties
128
+
129
+ | Property | Type | Default | Description |
130
+ |----------|------|---------|-------------|
131
+ | `fill` | `number` | `0` | Fill value (0 = outlined, 1 = filled) |
132
+ | `weight` | `number` | `400` | Stroke weight (100-700) |
133
+ | `grade` | `number` | `0` | Visual grade/weight (-50 to 200) |
134
+ | `variant` | `string` | `'outlined'` | Icon style variant: 'outlined', 'rounded', or 'sharp' |
135
+
136
+ ## CSS Custom Properties
137
+
138
+ | Property | Default | Description |
139
+ |----------|---------|-------------|
140
+ | `--schmancy-icon-size` | `24px` | Icon size |
141
+ | `--schmancy-icon-fill` | `0` | Fill value |
142
+ | `--schmancy-icon-weight` | `400` | Weight value |
143
+ | `--schmancy-icon-grade` | `0` | Grade value |
144
+ | `--schmancy-icon-opsz` | `24` | Optical size |
145
+
146
+ ## Material Symbols
147
+
148
+ This component uses Google's Material Symbols variable font, which provides:
149
+ - **3 variants**: Outlined, Rounded, Sharp
150
+ - **Variable properties**: Continuously adjustable fill, weight, and grade
151
+ - **2000+ icons**: Comprehensive icon library
152
+ - **Smooth transitions**: Animated property changes
153
+ - **Automatic font loading**: Fonts are loaded automatically when component is used
154
+
155
+ ## Icon Names
156
+
157
+ Icons use Material Symbols naming convention. Common icons include:
158
+
159
+ ### Navigation
160
+ - `home`, `arrow_back`, `arrow_forward`, `menu`, `close`, `more_vert`, `more_horiz`
161
+
162
+ ### Actions
163
+ - `search`, `add`, `remove`, `edit`, `delete`, `save`, `share`, `download`, `upload`
164
+
165
+ ### Communication
166
+ - `mail`, `chat`, `call`, `notifications`, `send`, `inbox`, `drafts`
167
+
168
+ ### Media
169
+ - `play_arrow`, `pause`, `stop`, `skip_next`, `skip_previous`, `volume_up`, `mic`
170
+
171
+ ### Status
172
+ - `check`, `close`, `error`, `warning`, `info`, `check_circle`, `cancel`
173
+
174
+ ### Objects
175
+ - `folder`, `description`, `article`, `image`, `movie`, `music_note`, `code`
176
+
177
+ ### User
178
+ - `person`, `group`, `face`, `account_circle`, `settings`, `logout`
179
+
180
+ Full icon list: https://fonts.google.com/icons
181
+
182
+ ## Common Patterns
183
+
184
+ ### Toggle Icons
185
+ ```html
186
+ <!-- Like/Unlike -->
187
+ <schmancy-icon
188
+ fill=${isLiked ? "1" : "0"}
189
+ weight=${isLiked ? "700" : "400"}
190
+ @click=${this.toggleLike}>
191
+ favorite
192
+ </schmancy-icon>
193
+
194
+ <!-- Bookmark -->
195
+ <schmancy-icon fill=${isBookmarked ? "1" : "0"}>
196
+ bookmark
197
+ </schmancy-icon>
198
+
199
+ <!-- Star Rating -->
200
+ <schmancy-icon fill=${rating >= 1 ? "1" : "0"}>star</schmancy-icon>
201
+ <schmancy-icon fill=${rating >= 2 ? "1" : "0"}>star</schmancy-icon>
202
+ <schmancy-icon fill=${rating >= 3 ? "1" : "0"}>star</schmancy-icon>
203
+ ```
204
+
205
+ ### Contextual Icons
206
+ ```html
207
+ <!-- Success state -->
208
+ <schmancy-icon fill="1" class="text-success">check_circle</schmancy-icon>
209
+
210
+ <!-- Error state -->
211
+ <schmancy-icon fill="1" class="text-error">error</schmancy-icon>
212
+
213
+ <!-- Warning state -->
214
+ <schmancy-icon fill="1" class="text-warning">warning</schmancy-icon>
215
+
216
+ <!-- Info state -->
217
+ <schmancy-icon fill="0" class="text-info">info</schmancy-icon>
218
+ ```
219
+
220
+ ### Size Variations
221
+ ```html
222
+ <!-- Small (16px) -->
223
+ <schmancy-icon style="--schmancy-icon-size: 16px;">home</schmancy-icon>
224
+
225
+ <!-- Default (24px) -->
226
+ <schmancy-icon>home</schmancy-icon>
227
+
228
+ <!-- Large (32px) -->
229
+ <schmancy-icon style="--schmancy-icon-size: 32px;">home</schmancy-icon>
230
+
231
+ <!-- Extra Large (48px) -->
232
+ <schmancy-icon style="--schmancy-icon-size: 48px;">home</schmancy-icon>
233
+ ```
234
+
235
+ ## Accessibility
236
+
237
+ - Icons are automatically marked with `aria-hidden="true"` for decorative use
238
+ - For interactive icons, provide `aria-label` or `aria-labelledby`
239
+ - For informational icons, include screen reader text:
240
+ ```html
241
+ <schmancy-icon aria-label="Warning">warning</schmancy-icon>
242
+ ```
243
+
244
+ ## Related Components
245
+ - **[Button](./button.md)**: Icons commonly used in buttons
246
+ - **[List](./list.md)**: Icons in list items
247
+ - **[Input](./input.md)**: Icons in form fields
248
+ - **[Chips](./chips.md)**: Icons in chip components
package/ai/spinner.md ADDED
@@ -0,0 +1,165 @@
1
+ # Schmancy Spinner - AI Reference
2
+
3
+ A modern circular loading spinner with contextual color inheritance and optional glass morphism effect.
4
+
5
+ ```js
6
+ // Component Tag
7
+ <schmancy-spinner
8
+ color="primary|on-primary|secondary|on-secondary|tertiary|on-tertiary|error|on-error|success|on-success|surface|on-surface|surface-variant|on-surface-variant"
9
+ size="number"
10
+ glass?>
11
+ </schmancy-spinner>
12
+
13
+ // Examples
14
+ // 1. Basic spinner (inherits parent color)
15
+ <schmancy-spinner></schmancy-spinner>
16
+
17
+ // 2. Different sizes (using Tailwind sizing system)
18
+ <schmancy-spinner size="4"></schmancy-spinner> // 16px (1rem)
19
+ <schmancy-spinner size="6"></schmancy-spinner> // 24px (1.5rem) - default
20
+ <schmancy-spinner size="8"></schmancy-spinner> // 32px (2rem)
21
+ <schmancy-spinner size="12"></schmancy-spinner> // 48px (3rem)
22
+
23
+ // 3. Color variants
24
+ <schmancy-spinner color="primary"></schmancy-spinner>
25
+ <schmancy-spinner color="on-primary"></schmancy-spinner>
26
+ <schmancy-spinner color="error"></schmancy-spinner>
27
+ <schmancy-spinner color="success"></schmancy-spinner>
28
+
29
+ // 4. Glass morphism effect
30
+ <schmancy-spinner glass></schmancy-spinner>
31
+ <schmancy-spinner glass size="10" color="primary"></schmancy-spinner>
32
+
33
+ // 5. Inside buttons (inherits button text color)
34
+ <schmancy-button variant="filled">
35
+ <schmancy-spinner size="5"></schmancy-spinner>
36
+ Loading...
37
+ </schmancy-button>
38
+
39
+ // 6. Inside surfaces with contextual colors
40
+ <schmancy-surface type="filled" color="primary">
41
+ <schmancy-spinner color="on-primary"></schmancy-spinner>
42
+ </schmancy-surface>
43
+
44
+ // 7. Loading states
45
+ <div class="flex items-center gap-2">
46
+ <schmancy-spinner size="5"></schmancy-spinner>
47
+ <schmancy-typography>Loading data...</schmancy-typography>
48
+ </div>
49
+
50
+ // 8. Overlay loading indicator with glass effect
51
+ <div class="relative">
52
+ <div class="absolute inset-0 flex items-center justify-center bg-surface/50 backdrop-blur-sm">
53
+ <schmancy-spinner glass size="10"></schmancy-spinner>
54
+ </div>
55
+ <!-- Content being loaded -->
56
+ </div>
57
+ ```
58
+
59
+ ## Properties
60
+
61
+ | Property | Type | Default | Description |
62
+ |----------|------|---------|-------------|
63
+ | `color` | `string` | `inherit` | Theme color variant or 'inherit' for contextual color |
64
+ | `size` | `number` | `6` | Size in Tailwind units (4 = 16px, 6 = 24px, 8 = 32px, etc.) |
65
+ | `glass` | `boolean` | `false` | Apply glass morphism effect with backdrop blur |
66
+
67
+ ## Color System
68
+
69
+ The spinner intelligently inherits colors from its context by default:
70
+ - Inside buttons: Inherits button text color
71
+ - Inside colored surfaces: Inherits appropriate contrast color
72
+ - Standalone: Uses current text color
73
+
74
+ Available explicit colors:
75
+ - **Primary colors**: `primary`, `on-primary`
76
+ - **Secondary colors**: `secondary`, `on-secondary`
77
+ - **Tertiary colors**: `tertiary`, `on-tertiary`
78
+ - **Status colors**: `error`, `on-error`, `success`, `on-success`
79
+ - **Surface colors**: `surface`, `on-surface`, `surface-variant`, `on-surface-variant`
80
+
81
+ ## Glass Effect
82
+
83
+ The `glass` attribute adds a modern glass morphism effect:
84
+ - Semi-transparent background with backdrop blur
85
+ - Subtle border and inner shadow
86
+ - Perfect for overlay loading indicators
87
+ - Works well on image or complex backgrounds
88
+
89
+ ## Size System
90
+
91
+ Uses Tailwind's sizing convention where each unit = 0.25rem:
92
+ - `size="4"` = 16px (1rem)
93
+ - `size="5"` = 20px (1.25rem)
94
+ - `size="6"` = 24px (1.5rem) - **default**
95
+ - `size="8"` = 32px (2rem)
96
+ - `size="10"` = 40px (2.5rem)
97
+ - `size="12"` = 48px (3rem)
98
+
99
+ ## Common Use Cases
100
+
101
+ ### 1. Button Loading State
102
+ ```html
103
+ <schmancy-button variant="filled" disabled>
104
+ <schmancy-spinner size="5"></schmancy-spinner>
105
+ <span class="ml-2">Processing...</span>
106
+ </schmancy-button>
107
+ ```
108
+
109
+ ### 2. Page Loading Overlay
110
+ ```html
111
+ <div class="fixed inset-0 flex items-center justify-center bg-black/30 backdrop-blur-sm z-50">
112
+ <schmancy-spinner glass size="12"></schmancy-spinner>
113
+ </div>
114
+ ```
115
+
116
+ ### 3. Inline Loading Indicator
117
+ ```html
118
+ <schmancy-list-item>
119
+ <span>Fetching user data</span>
120
+ <schmancy-spinner slot="end" size="5"></schmancy-spinner>
121
+ </schmancy-list-item>
122
+ ```
123
+
124
+ ### 4. Card Loading State
125
+ ```html
126
+ <schmancy-card>
127
+ <div class="flex flex-col items-center justify-center py-8">
128
+ <schmancy-spinner size="8" color="primary"></schmancy-spinner>
129
+ <schmancy-typography type="body" token="sm" class="mt-2">
130
+ Loading content...
131
+ </schmancy-typography>
132
+ </div>
133
+ </schmancy-card>
134
+ ```
135
+
136
+ ### 5. Status Indicators
137
+ ```html
138
+ <div class="flex items-center gap-2">
139
+ <schmancy-spinner size="4" color="success"></schmancy-spinner>
140
+ <schmancy-typography>Syncing...</schmancy-typography>
141
+ </div>
142
+ ```
143
+
144
+ ## Accessibility
145
+
146
+ - The spinner is automatically marked with `aria-hidden="true"` since it's decorative
147
+ - Always provide textual context for screen readers:
148
+ ```html
149
+ <div role="status">
150
+ <schmancy-spinner></schmancy-spinner>
151
+ <span class="sr-only">Loading...</span>
152
+ </div>
153
+ ```
154
+
155
+ ## Animation
156
+
157
+ - Continuous rotation at 1 second per revolution
158
+ - Smooth animation with reverse direction for visual appeal
159
+ - No performance impact with CSS animations
160
+ - Respects `prefers-reduced-motion` for accessibility
161
+
162
+ ## Related Components
163
+ - **[Progress](./progress.md)**: For determinate linear progress
164
+ - **[Busy](./busy.md)**: For full-page loading states
165
+ - **[Button](./button.md)**: Often used with spinners for loading states