@mhmo91/schmancy 0.2.194 → 0.2.196

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 (328) hide show
  1. package/ai/animated-text.md +114 -0
  2. package/ai/area.md +158 -78
  3. package/ai/card.md +162 -131
  4. package/ai/circular-progress.md +91 -0
  5. package/ai/content-drawer.md +190 -0
  6. package/ai/date-range.md +142 -0
  7. package/ai/delay.md +158 -0
  8. package/ai/dialog.md +10 -0
  9. package/ai/divider.md +153 -0
  10. package/ai/index.md +43 -3
  11. package/ai/nav-drawer.md +206 -0
  12. package/ai/option.md +173 -0
  13. package/ai/slider.md +227 -0
  14. package/ai/steps.md +231 -0
  15. package/ai/surface.md +139 -200
  16. package/ai/table.md +99 -1
  17. package/ai/teleport.md +196 -0
  18. package/ai/theme-button.md +173 -0
  19. package/ai/theme.md +241 -0
  20. package/ai/typewriter.md +217 -0
  21. package/dist/_headers +2 -0
  22. package/dist/ai/animated-text.md +114 -0
  23. package/dist/ai/area.md +158 -78
  24. package/dist/ai/card.md +162 -131
  25. package/dist/ai/circular-progress.md +91 -0
  26. package/dist/ai/content-drawer.md +190 -0
  27. package/dist/ai/date-range.md +142 -0
  28. package/dist/ai/delay.md +158 -0
  29. package/dist/ai/dialog.md +10 -0
  30. package/dist/ai/divider.md +153 -0
  31. package/dist/ai/index.md +43 -3
  32. package/dist/ai/nav-drawer.md +206 -0
  33. package/dist/ai/option.md +173 -0
  34. package/dist/ai/slider.md +227 -0
  35. package/dist/ai/steps.md +231 -0
  36. package/dist/ai/surface.md +139 -200
  37. package/dist/ai/table.md +99 -1
  38. package/dist/ai/teleport.md +196 -0
  39. package/dist/ai/theme-button.md +173 -0
  40. package/dist/ai/theme.md +241 -0
  41. package/dist/ai/typewriter.md +217 -0
  42. package/dist/{animated-text-9AM64DHd.cjs → animated-text-DnX2TopW.cjs} +2 -2
  43. package/dist/{animated-text-9AM64DHd.cjs.map → animated-text-DnX2TopW.cjs.map} +1 -1
  44. package/dist/{animated-text-CVStWn5N.js → animated-text-jv1yAwLh.js} +3 -3
  45. package/dist/{animated-text-CVStWn5N.js.map → animated-text-jv1yAwLh.js.map} +1 -1
  46. package/dist/animated-text.cjs +1 -1
  47. package/dist/animated-text.js +1 -1
  48. package/dist/area.cjs +1 -1
  49. package/dist/area.component-DMD20wqd.js +191 -0
  50. package/dist/area.component-DMD20wqd.js.map +1 -0
  51. package/dist/area.component-Vs2WGXgk.cjs +8 -0
  52. package/dist/area.component-Vs2WGXgk.cjs.map +1 -0
  53. package/dist/area.js +21 -6
  54. package/dist/area.js.map +1 -1
  55. package/dist/{autocomplete-DBXvIJgc.cjs → autocomplete-BrAxEJJq.cjs} +2 -2
  56. package/dist/{autocomplete-DBXvIJgc.cjs.map → autocomplete-BrAxEJJq.cjs.map} +1 -1
  57. package/dist/{autocomplete-ih92pPkb.js → autocomplete-OS61ngsy.js} +3 -3
  58. package/dist/{autocomplete-ih92pPkb.js.map → autocomplete-OS61ngsy.js.map} +1 -1
  59. package/dist/autocomplete.cjs +1 -1
  60. package/dist/autocomplete.js +1 -1
  61. package/dist/{avatar-Bmg5TXj9.cjs → avatar-CEdv8DJY.cjs} +62 -24
  62. package/dist/avatar-CEdv8DJY.cjs.map +1 -0
  63. package/dist/{avatar-CgP1tBZq.js → avatar-CUHTDenQ.js} +183 -145
  64. package/dist/avatar-CUHTDenQ.js.map +1 -0
  65. package/dist/badge.cjs +1 -1
  66. package/dist/badge.js +1 -1
  67. package/dist/busy.cjs +1 -1
  68. package/dist/busy.js +1 -1
  69. package/dist/button.cjs +1 -1
  70. package/dist/button.js +1 -1
  71. package/dist/card.cjs +1 -1
  72. package/dist/card.js +1 -1
  73. package/dist/{checkbox-Jxxbjxp0.js → checkbox-CVXRiSWP.js} +72 -65
  74. package/dist/{checkbox-Jxxbjxp0.js.map → checkbox-CVXRiSWP.js.map} +1 -1
  75. package/dist/{checkbox-DtnX5sT6.cjs → checkbox-Chd-COYm.cjs} +10 -10
  76. package/dist/{checkbox-DtnX5sT6.cjs.map → checkbox-Chd-COYm.cjs.map} +1 -1
  77. package/dist/checkbox.cjs +1 -1
  78. package/dist/checkbox.js +1 -1
  79. package/dist/{chips-CVDnpVUM.cjs → chips-Bx9gSvN1.cjs} +2 -2
  80. package/dist/{chips-CVDnpVUM.cjs.map → chips-Bx9gSvN1.cjs.map} +1 -1
  81. package/dist/{chips-lP7ohQep.js → chips-Dx_erk55.js} +3 -3
  82. package/dist/{chips-lP7ohQep.js.map → chips-Dx_erk55.js.map} +1 -1
  83. package/dist/chips.cjs +1 -1
  84. package/dist/chips.js +1 -1
  85. package/dist/circular-progress-BQnGvbss.js +35 -0
  86. package/dist/circular-progress-BQnGvbss.js.map +1 -0
  87. package/dist/circular-progress-CNBah5dz.cjs +9 -0
  88. package/dist/circular-progress-CNBah5dz.cjs.map +1 -0
  89. package/dist/circular-progress.cjs +2 -0
  90. package/dist/circular-progress.cjs.map +1 -0
  91. package/dist/circular-progress.js +5 -0
  92. package/dist/circular-progress.js.map +1 -0
  93. package/dist/components.cjs +1 -1
  94. package/dist/components.js +1 -1
  95. package/dist/content-drawer.cjs +1 -1
  96. package/dist/content-drawer.js +1 -1
  97. package/dist/{date-range-DbPA5Y-t.cjs → date-range-Cq0diVSY.cjs} +4 -3
  98. package/dist/{date-range-DbPA5Y-t.cjs.map → date-range-Cq0diVSY.cjs.map} +1 -1
  99. package/dist/{date-range-Ca9WLI4Q.js → date-range-wxdt6Ha0.js} +5 -4
  100. package/dist/date-range-wxdt6Ha0.js.map +1 -0
  101. package/dist/date-range.cjs +1 -1
  102. package/dist/date-range.js +1 -1
  103. package/dist/{delay-BgNgQV2G.cjs → delay-BzkhDhs0.cjs} +2 -2
  104. package/dist/{delay-BgNgQV2G.cjs.map → delay-BzkhDhs0.cjs.map} +1 -1
  105. package/dist/{delay-5cCl7ji3.js → delay-Ds5suSsc.js} +2 -2
  106. package/dist/{delay-5cCl7ji3.js.map → delay-Ds5suSsc.js.map} +1 -1
  107. package/dist/delay.cjs +1 -1
  108. package/dist/delay.js +1 -1
  109. package/dist/{dialog-content-qj1E8aye.cjs → dialog-content-CJY69qfC.cjs} +8 -8
  110. package/dist/dialog-content-CJY69qfC.cjs.map +1 -0
  111. package/dist/{dialog-content-9pumpyLD.js → dialog-content-DFJnYzff.js} +86 -82
  112. package/dist/dialog-content-DFJnYzff.js.map +1 -0
  113. package/dist/dialog.cjs +1 -1
  114. package/dist/dialog.js +1 -1
  115. package/dist/{divider-r8-9eNnl.js → divider-C3w1_-N1.js} +3 -3
  116. package/dist/{divider-r8-9eNnl.js.map → divider-C3w1_-N1.js.map} +1 -1
  117. package/dist/{divider-CHckHGEQ.cjs → divider-CFzbCFsr.cjs} +2 -2
  118. package/dist/{divider-CHckHGEQ.cjs.map → divider-CFzbCFsr.cjs.map} +1 -1
  119. package/dist/divider.cjs +1 -1
  120. package/dist/divider.js +1 -1
  121. package/dist/{dropdown-content-D-TddflQ.js → dropdown-content-BGFYBXcx.js} +3 -3
  122. package/dist/{dropdown-content-D-TddflQ.js.map → dropdown-content-BGFYBXcx.js.map} +1 -1
  123. package/dist/{dropdown-content-B41MDDRG.cjs → dropdown-content-PaMOJphI.cjs} +2 -2
  124. package/dist/{dropdown-content-B41MDDRG.cjs.map → dropdown-content-PaMOJphI.cjs.map} +1 -1
  125. package/dist/dropdown.cjs +1 -1
  126. package/dist/dropdown.js +1 -1
  127. package/dist/extra.cjs +1 -1
  128. package/dist/extra.js +1 -1
  129. package/dist/{flex-Bf0zNqji.js → flex-Cy4Stl_1.js} +2 -2
  130. package/dist/{flex-Bf0zNqji.js.map → flex-Cy4Stl_1.js.map} +1 -1
  131. package/dist/{flex-CFv-Zb76.cjs → flex-DP5O5644.cjs} +2 -2
  132. package/dist/{flex-CFv-Zb76.cjs.map → flex-DP5O5644.cjs.map} +1 -1
  133. package/dist/{form-uYcr1RLJ.js → form-BQamcLFL.js} +2 -2
  134. package/dist/{form-uYcr1RLJ.js.map → form-BQamcLFL.js.map} +1 -1
  135. package/dist/{form-BN75s0PI.cjs → form-CG3kns69.cjs} +2 -2
  136. package/dist/{form-BN75s0PI.cjs.map → form-CG3kns69.cjs.map} +1 -1
  137. package/dist/form.cjs +1 -1
  138. package/dist/form.js +1 -1
  139. package/dist/{icon-BR-jE0Y2.js → icon-Cd4p9jRB.js} +3 -3
  140. package/dist/{icon-BR-jE0Y2.js.map → icon-Cd4p9jRB.js.map} +1 -1
  141. package/dist/{icon-Cu-imayV.cjs → icon-CilwMTXB.cjs} +2 -2
  142. package/dist/{icon-Cu-imayV.cjs.map → icon-CilwMTXB.cjs.map} +1 -1
  143. package/dist/{icon-button-1tZaicyb.js → icon-button-By17is4V.js} +3 -3
  144. package/dist/{icon-button-1tZaicyb.js.map → icon-button-By17is4V.js.map} +1 -1
  145. package/dist/{icon-button-D0BbHnDL.cjs → icon-button-C4Hf63hY.cjs} +2 -2
  146. package/dist/{icon-button-D0BbHnDL.cjs.map → icon-button-C4Hf63hY.cjs.map} +1 -1
  147. package/dist/icons.cjs +1 -1
  148. package/dist/icons.js +1 -1
  149. package/dist/index.cjs +1 -1
  150. package/dist/index.js +190 -173
  151. package/dist/index.js.map +1 -1
  152. package/dist/{input-B2oV6Hck.cjs → input-BIi0rS2t.cjs} +2 -2
  153. package/dist/{input-B2oV6Hck.cjs.map → input-BIi0rS2t.cjs.map} +1 -1
  154. package/dist/{input-kiz5O3dY.js → input-C8OAokVe.js} +2 -2
  155. package/dist/{input-kiz5O3dY.js.map → input-C8OAokVe.js.map} +1 -1
  156. package/dist/input.cjs +1 -1
  157. package/dist/input.js +1 -1
  158. package/dist/layout.cjs +1 -1
  159. package/dist/layout.js +1 -1
  160. package/dist/{list-wT4DLXCh.js → list-BC3OE3Pu.js} +2 -2
  161. package/dist/{list-wT4DLXCh.js.map → list-BC3OE3Pu.js.map} +1 -1
  162. package/dist/{list-CMHoPfX9.cjs → list-jFsCubuy.cjs} +2 -2
  163. package/dist/{list-CMHoPfX9.cjs.map → list-jFsCubuy.cjs.map} +1 -1
  164. package/dist/list.cjs +1 -1
  165. package/dist/list.js +1 -1
  166. package/dist/{litElement.mixin-B9Qdq5S_.js → litElement.mixin-C6PzcPXd.js} +2 -2
  167. package/dist/{litElement.mixin-B9Qdq5S_.js.map → litElement.mixin-C6PzcPXd.js.map} +1 -1
  168. package/dist/{litElement.mixin-CHvyxfxf.cjs → litElement.mixin-Cypiq-N-.cjs} +2 -2
  169. package/dist/{litElement.mixin-CHvyxfxf.cjs.map → litElement.mixin-Cypiq-N-.cjs.map} +1 -1
  170. package/dist/{menu-BcSplMNh.cjs → menu-CDjqdEd6.cjs} +2 -2
  171. package/dist/{menu-BcSplMNh.cjs.map → menu-CDjqdEd6.cjs.map} +1 -1
  172. package/dist/{menu-Dl1QU86K.js → menu-n_Doj-bW.js} +3 -3
  173. package/dist/{menu-Dl1QU86K.js.map → menu-n_Doj-bW.js.map} +1 -1
  174. package/dist/menu.cjs +1 -1
  175. package/dist/menu.js +1 -1
  176. package/dist/nav-drawer.cjs +1 -1
  177. package/dist/nav-drawer.js +1 -1
  178. package/dist/{notification-service-BV9ybQBu.cjs → notification-service--VLqOJJg.cjs} +2 -2
  179. package/dist/{notification-service-BV9ybQBu.cjs.map → notification-service--VLqOJJg.cjs.map} +1 -1
  180. package/dist/{notification-service-CC698xHg.js → notification-service-DHIhgWQr.js} +3 -3
  181. package/dist/{notification-service-CC698xHg.js.map → notification-service-DHIhgWQr.js.map} +1 -1
  182. package/dist/notification.cjs +1 -1
  183. package/dist/notification.js +1 -1
  184. package/dist/{option-CkLBgH71.cjs → option-B359EBiZ.cjs} +2 -2
  185. package/dist/{option-CkLBgH71.cjs.map → option-B359EBiZ.cjs.map} +1 -1
  186. package/dist/{option-DDxxXwwc.js → option-oyyjCwnL.js} +2 -2
  187. package/dist/{option-DDxxXwwc.js.map → option-oyyjCwnL.js.map} +1 -1
  188. package/dist/option.cjs +1 -1
  189. package/dist/option.js +1 -1
  190. package/dist/{payment-card-form-UWbAYNPR.cjs → payment-card-form-B-ZAsSED.cjs} +2 -2
  191. package/dist/{payment-card-form-UWbAYNPR.cjs.map → payment-card-form-B-ZAsSED.cjs.map} +1 -1
  192. package/dist/{payment-card-form-DDTO5_AA.js → payment-card-form-BSueaw97.js} +3 -3
  193. package/dist/{payment-card-form-DDTO5_AA.js.map → payment-card-form-BSueaw97.js.map} +1 -1
  194. package/dist/{radio-button-wWoxPDfq.js → radio-button-84TD7rpH.js} +2 -2
  195. package/dist/{radio-button-wWoxPDfq.js.map → radio-button-84TD7rpH.js.map} +1 -1
  196. package/dist/{radio-button-BykiVxTD.cjs → radio-button-BO6mIWCi.cjs} +2 -2
  197. package/dist/{radio-button-BykiVxTD.cjs.map → radio-button-BO6mIWCi.cjs.map} +1 -1
  198. package/dist/radio-group.cjs +1 -1
  199. package/dist/radio-group.js +1 -1
  200. package/dist/{schmancy-steps-container-B1mIGa9M.cjs → schmancy-steps-container-Cfq8OsWt.cjs} +2 -2
  201. package/dist/{schmancy-steps-container-B1mIGa9M.cjs.map → schmancy-steps-container-Cfq8OsWt.cjs.map} +1 -1
  202. package/dist/{schmancy-steps-container-ByO98z7L.js → schmancy-steps-container-Lo4d27n3.js} +2 -2
  203. package/dist/{schmancy-steps-container-ByO98z7L.js.map → schmancy-steps-container-Lo4d27n3.js.map} +1 -1
  204. package/dist/{select-BIOhocL7.js → select-B-zgP_v6.js} +3 -3
  205. package/dist/{select-BIOhocL7.js.map → select-B-zgP_v6.js.map} +1 -1
  206. package/dist/{select-DE57Nios.cjs → select-DhEVsWh6.cjs} +2 -2
  207. package/dist/{select-DE57Nios.cjs.map → select-DhEVsWh6.cjs.map} +1 -1
  208. package/dist/select.cjs +1 -1
  209. package/dist/select.js +1 -1
  210. package/dist/{sheet-fZYAWGsm.cjs → sheet-BEWq40cN.cjs} +2 -2
  211. package/dist/{sheet-fZYAWGsm.cjs.map → sheet-BEWq40cN.cjs.map} +1 -1
  212. package/dist/{sheet-Dh4MLVsU.js → sheet-DDY4pbD4.js} +3 -3
  213. package/dist/{sheet-Dh4MLVsU.js.map → sheet-DDY4pbD4.js.map} +1 -1
  214. package/dist/sheet.cjs +1 -1
  215. package/dist/sheet.js +1 -1
  216. package/dist/{slider-DVlJoDgU.js → slider--irxEv_B.js} +3 -3
  217. package/dist/{slider-DVlJoDgU.js.map → slider--irxEv_B.js.map} +1 -1
  218. package/dist/{slider-CejrdmPF.cjs → slider-De-H5fe8.cjs} +2 -2
  219. package/dist/{slider-CejrdmPF.cjs.map → slider-De-H5fe8.cjs.map} +1 -1
  220. package/dist/slider.cjs +1 -1
  221. package/dist/slider.js +1 -1
  222. package/dist/{spinner-DbTnai_Q.js → spinner-Bl9n09Z5.js} +3 -3
  223. package/dist/{spinner-DbTnai_Q.js.map → spinner-Bl9n09Z5.js.map} +1 -1
  224. package/dist/{spinner-DxVJ7QJZ.cjs → spinner-DNz1IjmL.cjs} +2 -2
  225. package/dist/{spinner-DxVJ7QJZ.cjs.map → spinner-DNz1IjmL.cjs.map} +1 -1
  226. package/dist/steps.cjs +1 -1
  227. package/dist/steps.js +1 -1
  228. package/dist/surface-BAEUiWcq.cjs +92 -0
  229. package/dist/surface-BAEUiWcq.cjs.map +1 -0
  230. package/dist/surface-h9dLHMTm.js +113 -0
  231. package/dist/surface-h9dLHMTm.js.map +1 -0
  232. package/dist/surface.cjs +1 -1
  233. package/dist/surface.js +1 -1
  234. package/dist/{table-CqUv1TOC.js → table-CxazXBjI.js} +72 -68
  235. package/dist/{table-CqUv1TOC.js.map → table-CxazXBjI.js.map} +1 -1
  236. package/dist/{table-CBhyHINV.cjs → table-Dn07ykGG.cjs} +4 -4
  237. package/dist/{table-CBhyHINV.cjs.map → table-Dn07ykGG.cjs.map} +1 -1
  238. package/dist/table.cjs +1 -1
  239. package/dist/table.js +1 -1
  240. package/dist/{tabs-compatibility-DUo2f_sV.js → tabs-compatibility-B8I0vg7Y.js} +2 -2
  241. package/dist/{tabs-compatibility-DUo2f_sV.js.map → tabs-compatibility-B8I0vg7Y.js.map} +1 -1
  242. package/dist/{tabs-compatibility-DPD6jfGF.cjs → tabs-compatibility-BrTxeSS-.cjs} +2 -2
  243. package/dist/{tabs-compatibility-DPD6jfGF.cjs.map → tabs-compatibility-BrTxeSS-.cjs.map} +1 -1
  244. package/dist/tabs.cjs +1 -1
  245. package/dist/tabs.js +1 -1
  246. package/dist/tailwind.mixin-Du4i6vQR.js +43 -0
  247. package/dist/{tailwind.mixin-Di7KWye7.js.map → tailwind.mixin-Du4i6vQR.js.map} +1 -1
  248. package/dist/tailwind.mixin-qyIcoDLk.cjs +2 -0
  249. package/dist/{tailwind.mixin-Dm5QDZav.cjs.map → tailwind.mixin-qyIcoDLk.cjs.map} +1 -1
  250. package/dist/teleport.cjs +1 -1
  251. package/dist/teleport.js +1 -1
  252. package/dist/{textarea-Dbz18REy.js → textarea-DibCLxC2.js} +2 -2
  253. package/dist/{textarea-Dbz18REy.js.map → textarea-DibCLxC2.js.map} +1 -1
  254. package/dist/{textarea-CesFdBkm.cjs → textarea-pMec4Wpg.cjs} +2 -2
  255. package/dist/{textarea-CesFdBkm.cjs.map → textarea-pMec4Wpg.cjs.map} +1 -1
  256. package/dist/textarea.cjs +1 -1
  257. package/dist/textarea.js +1 -1
  258. package/dist/{theme-button-Bt2OV4iu.cjs → theme-button-CG1w_waw.cjs} +2 -2
  259. package/dist/{theme-button-Bt2OV4iu.cjs.map → theme-button-CG1w_waw.cjs.map} +1 -1
  260. package/dist/{theme-button-lqbT2_LL.js → theme-button-irLEczd5.js} +2 -2
  261. package/dist/{theme-button-lqbT2_LL.js.map → theme-button-irLEczd5.js.map} +1 -1
  262. package/dist/theme-button.cjs +1 -1
  263. package/dist/theme-button.js +1 -1
  264. package/dist/theme.cjs +1 -1
  265. package/dist/{theme.component-xarFSe8p.js → theme.component-CMM8Xws2.js} +2 -2
  266. package/dist/{theme.component-xarFSe8p.js.map → theme.component-CMM8Xws2.js.map} +1 -1
  267. package/dist/{theme.component-BlBaN7d6.cjs → theme.component-CpRuySmd.cjs} +3 -3
  268. package/dist/{theme.component-BlBaN7d6.cjs.map → theme.component-CpRuySmd.cjs.map} +1 -1
  269. package/dist/theme.js +1 -1
  270. package/dist/{timezone-DwT_pQrj.js → timezone-DIrmlnD6.js} +3 -3
  271. package/dist/{timezone-DwT_pQrj.js.map → timezone-DIrmlnD6.js.map} +1 -1
  272. package/dist/{timezone-VUMRmZaJ.cjs → timezone-n5GflDRe.cjs} +2 -2
  273. package/dist/{timezone-VUMRmZaJ.cjs.map → timezone-n5GflDRe.cjs.map} +1 -1
  274. package/dist/{tooltip-Cvoroe7w.cjs → tooltip-0vIcVm5-.cjs} +2 -2
  275. package/dist/{tooltip-Cvoroe7w.cjs.map → tooltip-0vIcVm5-.cjs.map} +1 -1
  276. package/dist/{tooltip-BKOHVCMK.js → tooltip-N_B-vsDa.js} +2 -2
  277. package/dist/{tooltip-BKOHVCMK.js.map → tooltip-N_B-vsDa.js.map} +1 -1
  278. package/dist/tooltip.cjs +1 -1
  279. package/dist/tooltip.js +1 -1
  280. package/dist/{tree-_FJnHVmP.js → tree-2Hf2X0Hv.js} +2 -2
  281. package/dist/{tree-_FJnHVmP.js.map → tree-2Hf2X0Hv.js.map} +1 -1
  282. package/dist/{tree-Cyp2AZ8g.cjs → tree-Q8AMxJxP.cjs} +2 -2
  283. package/dist/{tree-Cyp2AZ8g.cjs.map → tree-Q8AMxJxP.cjs.map} +1 -1
  284. package/dist/tree.cjs +1 -1
  285. package/dist/tree.js +1 -1
  286. package/dist/{typewriter-BIm2tOe4.cjs → typewriter-CsL-NfYC.cjs} +2 -2
  287. package/dist/{typewriter-BIm2tOe4.cjs.map → typewriter-CsL-NfYC.cjs.map} +1 -1
  288. package/dist/{typewriter-DWfXPBni.js → typewriter-bqbNKczJ.js} +22 -22
  289. package/dist/{typewriter-DWfXPBni.js.map → typewriter-bqbNKczJ.js.map} +1 -1
  290. package/dist/typewriter.cjs +1 -1
  291. package/dist/typewriter.js +1 -1
  292. package/dist/{typography-DaKLzjFB.js → typography-CbrvouLo.js} +2 -2
  293. package/dist/{typography-DaKLzjFB.js.map → typography-CbrvouLo.js.map} +1 -1
  294. package/dist/{typography-OpLt6LNd.cjs → typography-Hlts-hzc.cjs} +2 -2
  295. package/dist/{typography-OpLt6LNd.cjs.map → typography-Hlts-hzc.cjs.map} +1 -1
  296. package/dist/typography.cjs +1 -1
  297. package/dist/typography.js +1 -1
  298. package/dist/utils-BqFGvnN9.cjs +2 -0
  299. package/dist/utils-BqFGvnN9.cjs.map +1 -0
  300. package/dist/utils-jduntaQU.js +128 -0
  301. package/dist/utils-jduntaQU.js.map +1 -0
  302. package/package.json +13 -14
  303. package/types/src/area/area.component.d.ts +1 -1
  304. package/types/src/area/area.service.d.ts +44 -26
  305. package/types/src/area/index.d.ts +1 -0
  306. package/types/src/area/utils.d.ts +91 -1
  307. package/types/src/checkbox/checkbox.d.ts +9 -0
  308. package/types/src/circular-progress/circular-progress.d.ts +15 -0
  309. package/types/src/circular-progress/index.d.ts +1 -0
  310. package/types/src/dialog/dailog.d.ts +8 -0
  311. package/types/src/dialog/dialog-service.d.ts +1 -0
  312. package/types/src/index.d.ts +1 -0
  313. package/types/src/table/table.d.ts +1 -0
  314. package/dist/area.component-CzFJM7Y4.js +0 -143
  315. package/dist/area.component-CzFJM7Y4.js.map +0 -1
  316. package/dist/area.component-WxccFh1z.cjs +0 -8
  317. package/dist/area.component-WxccFh1z.cjs.map +0 -1
  318. package/dist/avatar-Bmg5TXj9.cjs.map +0 -1
  319. package/dist/avatar-CgP1tBZq.js.map +0 -1
  320. package/dist/date-range-Ca9WLI4Q.js.map +0 -1
  321. package/dist/dialog-content-9pumpyLD.js.map +0 -1
  322. package/dist/dialog-content-qj1E8aye.cjs.map +0 -1
  323. package/dist/surface-BTuzKmT2.cjs +0 -20
  324. package/dist/surface-BTuzKmT2.cjs.map +0 -1
  325. package/dist/surface-DXx1bJN4.js +0 -43
  326. package/dist/surface-DXx1bJN4.js.map +0 -1
  327. package/dist/tailwind.mixin-Di7KWye7.js +0 -43
  328. package/dist/tailwind.mixin-Dm5QDZav.cjs +0 -2
@@ -0,0 +1,206 @@
1
+ # Navigation Drawer Component
2
+
3
+ A responsive navigation drawer system that adapts between overlay and push modes based on screen size, providing flexible app navigation patterns.
4
+
5
+ ## Quick Start
6
+
7
+ ```html
8
+ <!-- Basic navigation drawer -->
9
+ <schmancy-nav-drawer>
10
+ <schmancy-nav-drawer-navbar>
11
+ <nav>
12
+ <schmancy-list>
13
+ <schmancy-list-item>Dashboard</schmancy-list-item>
14
+ <schmancy-list-item>Settings</schmancy-list-item>
15
+ </schmancy-list>
16
+ </nav>
17
+ </schmancy-nav-drawer-navbar>
18
+
19
+ <schmancy-nav-drawer-content>
20
+ <schmancy-nav-drawer-appbar>
21
+ <h1>My App</h1>
22
+ </schmancy-nav-drawer-appbar>
23
+ <main>
24
+ <!-- Page content -->
25
+ </main>
26
+ </schmancy-nav-drawer-content>
27
+ </schmancy-nav-drawer>
28
+ ```
29
+
30
+ ## Components
31
+
32
+ ### schmancy-nav-drawer
33
+ The root container that manages drawer state and responsive behavior.
34
+
35
+ **Properties:**
36
+ | Property | Type | Default | Description |
37
+ |----------|------|---------|-------------|
38
+ | `fullscreen` | `boolean` | `false` | Hide drawer in fullscreen mode |
39
+ | `breakpoint` | `'sm' \| 'md' \| 'lg' \| 'xl'` | `'md'` | Responsive breakpoint |
40
+ | `open` | `'open' \| 'close'` | - | Drawer state |
41
+
42
+ ### schmancy-nav-drawer-navbar
43
+ The navigation sidebar component.
44
+
45
+ **Properties:**
46
+ | Property | Type | Default | Description |
47
+ |----------|------|---------|-------------|
48
+ | `width` | `string` | `'320px'` | Drawer width |
49
+
50
+ ### schmancy-nav-drawer-content
51
+ Container for main content area.
52
+
53
+ ### schmancy-nav-drawer-appbar
54
+ Optional app bar for the content area.
55
+
56
+ ## Examples
57
+
58
+ ### Complete App Layout
59
+ ```html
60
+ <schmancy-nav-drawer breakpoint="lg">
61
+ <!-- Navigation Sidebar -->
62
+ <schmancy-nav-drawer-navbar width="280px">
63
+ <div class="p-4">
64
+ <h2 class="text-xl font-bold mb-4">My App</h2>
65
+ </div>
66
+
67
+ <schmancy-list>
68
+ <schmancy-list-item @click="${() => navigate('/dashboard')}">
69
+ <schmancy-icon slot="start">dashboard</schmancy-icon>
70
+ Dashboard
71
+ </schmancy-list-item>
72
+
73
+ <schmancy-list-item @click="${() => navigate('/users')}">
74
+ <schmancy-icon slot="start">people</schmancy-icon>
75
+ Users
76
+ </schmancy-list-item>
77
+
78
+ <schmancy-divider class="my-2"></schmancy-divider>
79
+
80
+ <schmancy-list-item @click="${() => navigate('/settings')}">
81
+ <schmancy-icon slot="start">settings</schmancy-icon>
82
+ Settings
83
+ </schmancy-list-item>
84
+ </schmancy-list>
85
+ </schmancy-nav-drawer-navbar>
86
+
87
+ <!-- Main Content -->
88
+ <schmancy-nav-drawer-content>
89
+ <!-- App Bar -->
90
+ <schmancy-nav-drawer-appbar>
91
+ <schmancy-icon-button @click="${toggleDrawer}">
92
+ menu
93
+ </schmancy-icon-button>
94
+ <h1 class="text-xl">Dashboard</h1>
95
+ </schmancy-nav-drawer-appbar>
96
+
97
+ <!-- Page Content -->
98
+ <main class="p-4">
99
+ <router-outlet></router-outlet>
100
+ </main>
101
+ </schmancy-nav-drawer-content>
102
+ </schmancy-nav-drawer>
103
+ ```
104
+
105
+ ### With User Profile
106
+ ```html
107
+ <schmancy-nav-drawer>
108
+ <schmancy-nav-drawer-navbar>
109
+ <!-- User Profile Section -->
110
+ <div class="p-4 border-b">
111
+ <schmancy-avatar
112
+ src="/user-avatar.jpg"
113
+ name="John Doe"
114
+ ></schmancy-avatar>
115
+ <div class="mt-2">
116
+ <div class="font-medium">John Doe</div>
117
+ <div class="text-sm opacity-70">john@example.com</div>
118
+ </div>
119
+ </div>
120
+
121
+ <!-- Navigation -->
122
+ <schmancy-list class="py-2">
123
+ <!-- Menu items -->
124
+ </schmancy-list>
125
+ </schmancy-nav-drawer-navbar>
126
+
127
+ <schmancy-nav-drawer-content>
128
+ <!-- Content -->
129
+ </schmancy-nav-drawer-content>
130
+ </schmancy-nav-drawer>
131
+ ```
132
+
133
+ ## Features
134
+
135
+ ### Responsive Modes
136
+ - **Push Mode**: Drawer pushes content (desktop)
137
+ - **Overlay Mode**: Drawer overlays content (mobile)
138
+ - Automatic switching based on breakpoint
139
+
140
+ ### Breakpoint Values
141
+ - `sm`: 640px
142
+ - `md`: 768px (default)
143
+ - `lg`: 1024px
144
+ - `xl`: 1280px
145
+
146
+ ### Events
147
+ Toggle drawer programmatically:
148
+ ```javascript
149
+ window.dispatchEvent(
150
+ new CustomEvent('schmancy-nav-drawer-toggle', {
151
+ detail: { state: 'open' } // or 'close'
152
+ })
153
+ );
154
+ ```
155
+
156
+ ### Animation
157
+ Smooth transitions with customizable easing:
158
+ - Overlay fade: 200ms open, 150ms close
159
+ - Drawer slide: 200ms
160
+ - Cubic bezier easing for natural motion
161
+
162
+ ## Styling
163
+
164
+ ```css
165
+ /* Custom drawer styling */
166
+ schmancy-nav-drawer-navbar {
167
+ --drawer-width: 320px;
168
+ --animation-duration: 200ms;
169
+ }
170
+
171
+ /* Overlay customization */
172
+ schmancy-nav-drawer {
173
+ --overlay-opacity: 0.4;
174
+ --overlay-color: var(--schmancy-sys-color-scrim);
175
+ }
176
+ ```
177
+
178
+ ## Context System
179
+
180
+ The component uses Lit Context API for state management:
181
+ - `SchmancyDrawerNavbarMode`: Current mode (push/overlay)
182
+ - `SchmancyDrawerNavbarState`: Open/close state
183
+
184
+ ## Best Practices
185
+
186
+ 1. **Navigation Structure**: Keep navigation hierarchy shallow
187
+ 2. **Mobile First**: Design for overlay mode first
188
+ 3. **Breakpoints**: Choose breakpoints based on content
189
+ 4. **Performance**: Use `fullscreen` prop for immersive experiences
190
+ 5. **Accessibility**: Include proper ARIA labels
191
+
192
+ ## Related Components
193
+
194
+ - [List](./list.md) - Navigation menu items
195
+ - [Icon](./icons.md) - Menu icons
196
+ - [Avatar](./avatar.md) - User profiles
197
+ - [Surface](./surface.md) - Content containers
198
+ - [Button](./button.md) - Navigation triggers
199
+
200
+ ## Use Cases
201
+
202
+ 1. **Admin Dashboards**: Multi-section navigation
203
+ 2. **Mobile Apps**: Responsive app shells
204
+ 3. **Documentation Sites**: Side navigation
205
+ 4. **E-commerce**: Category navigation
206
+ 5. **Social Apps**: User navigation with profiles
package/ai/option.md ADDED
@@ -0,0 +1,173 @@
1
+ # Option Component
2
+
3
+ A versatile option element designed for use with select dropdowns and autocomplete components, providing accessible and interactive selection items.
4
+
5
+ ## Quick Start
6
+
7
+ ```html
8
+ <!-- Basic option -->
9
+ <schmancy-option value="1">Option One</schmancy-option>
10
+
11
+ <!-- Option with custom label -->
12
+ <schmancy-option value="us" label="United States"></schmancy-option>
13
+
14
+ <!-- Option with icon -->
15
+ <schmancy-option value="email" icon="✉️">Email Notifications</schmancy-option>
16
+ ```
17
+
18
+ ## Properties
19
+
20
+ | Property | Type | Default | Description |
21
+ |----------|------|---------|-------------|
22
+ | `value` | `string` | `''` | The value when selected |
23
+ | `label` | `string` | `''` | Display label (defaults to text content) |
24
+ | `selected` | `boolean` | `false` | Whether option is selected |
25
+ | `disabled` | `boolean` | `false` | Whether option is disabled |
26
+ | `group` | `string` | `''` | Optional group name |
27
+ | `icon` | `string` | `''` | Optional icon/emoji |
28
+
29
+ ## Events
30
+
31
+ ### option-select
32
+ Fired when option is clicked or selected via keyboard.
33
+
34
+ ```typescript
35
+ interface OptionSelectEvent {
36
+ detail: {
37
+ value: string;
38
+ }
39
+ }
40
+ ```
41
+
42
+ ## Examples
43
+
44
+ ### In Select Component
45
+ ```html
46
+ <schmancy-select placeholder="Choose country">
47
+ <schmancy-option value="us" icon="🇺🇸">United States</schmancy-option>
48
+ <schmancy-option value="uk" icon="🇬🇧">United Kingdom</schmancy-option>
49
+ <schmancy-option value="ca" icon="🇨🇦">Canada</schmancy-option>
50
+ <schmancy-option value="au" icon="🇦🇺">Australia</schmancy-option>
51
+ </schmancy-select>
52
+ ```
53
+
54
+ ### Grouped Options
55
+ ```html
56
+ <schmancy-select>
57
+ <!-- North America -->
58
+ <schmancy-option value="us" group="North America">United States</schmancy-option>
59
+ <schmancy-option value="ca" group="North America">Canada</schmancy-option>
60
+ <schmancy-option value="mx" group="North America">Mexico</schmancy-option>
61
+
62
+ <!-- Europe -->
63
+ <schmancy-option value="uk" group="Europe">United Kingdom</schmancy-option>
64
+ <schmancy-option value="de" group="Europe">Germany</schmancy-option>
65
+ <schmancy-option value="fr" group="Europe">France</schmancy-option>
66
+ </schmancy-select>
67
+ ```
68
+
69
+ ### With Status Indicators
70
+ ```html
71
+ <schmancy-autocomplete>
72
+ <schmancy-option value="active" icon="🟢">Active</schmancy-option>
73
+ <schmancy-option value="pending" icon="🟡">Pending</schmancy-option>
74
+ <schmancy-option value="inactive" icon="🔴">Inactive</schmancy-option>
75
+ <schmancy-option value="archived" icon="📦" disabled>Archived</schmancy-option>
76
+ </schmancy-autocomplete>
77
+ ```
78
+
79
+ ### Dynamic Options
80
+ ```html
81
+ ${users.map(user => html`
82
+ <schmancy-option
83
+ value="${user.id}"
84
+ label="${user.name}"
85
+ ?disabled="${!user.active}"
86
+ >
87
+ <span class="flex items-center gap-2">
88
+ <schmancy-avatar size="xs" name="${user.name}"></schmancy-avatar>
89
+ <span>
90
+ <div>${user.name}</div>
91
+ <div class="text-xs opacity-70">${user.email}</div>
92
+ </span>
93
+ </span>
94
+ </schmancy-option>
95
+ `)}
96
+ ```
97
+
98
+ ## Features
99
+
100
+ ### Automatic Value Assignment
101
+ - If no value is provided, uses text content
102
+ - If no label is provided, uses text content or value
103
+
104
+ ### Keyboard Navigation
105
+ - `Space` or `Enter` to select
106
+ - Full keyboard accessibility
107
+
108
+ ### Visual States
109
+ - Hover highlighting
110
+ - Selected state with checkmark
111
+ - Disabled state with reduced opacity
112
+ - Focus ring for keyboard navigation
113
+
114
+ ### Unique IDs
115
+ Automatically generates unique IDs for accessibility if not provided.
116
+
117
+ ## Styling
118
+
119
+ The component uses semantic design tokens:
120
+
121
+ ```css
122
+ /* Default state */
123
+ .hover:bg-surface-high
124
+
125
+ /* Selected state */
126
+ .bg-primary-container
127
+ .text-primary-onContainer
128
+
129
+ /* Custom styling */
130
+ schmancy-option {
131
+ --option-padding-y: 0.5rem;
132
+ --option-padding-x: 0.75rem;
133
+ --option-border-radius: 0.25rem;
134
+ }
135
+ ```
136
+
137
+ ## Accessibility
138
+
139
+ - `role="option"` for semantic meaning
140
+ - `aria-selected` state management
141
+ - `aria-disabled` for disabled options
142
+ - Keyboard event handling
143
+ - Focus management
144
+
145
+ ## Integration
146
+
147
+ Options are designed to work seamlessly with:
148
+ - `schmancy-select` - Dropdown selection
149
+ - `schmancy-autocomplete` - Filtered selection
150
+ - Custom dropdown components
151
+
152
+ ## Best Practices
153
+
154
+ 1. **Clear Values**: Use meaningful, unique values
155
+ 2. **Icons**: Use icons to improve scannability
156
+ 3. **Groups**: Group related options together
157
+ 4. **Labels**: Provide clear, concise labels
158
+ 5. **Disabled State**: Clearly indicate why options are disabled
159
+
160
+ ## Related Components
161
+
162
+ - [Select](./select.md) - Dropdown selector
163
+ - [Autocomplete](./autocomplete.md) - Searchable selector
164
+ - [List](./list.md) - Similar list item pattern
165
+ - [Menu](./menu.md) - Menu items
166
+
167
+ ## Use Cases
168
+
169
+ 1. **Form Selects**: Country, state, category selection
170
+ 2. **Settings**: Preference options
171
+ 3. **Filters**: Data filtering options
172
+ 4. **Status Selection**: Workflow states
173
+ 5. **User Selection**: Team member pickers
package/ai/slider.md ADDED
@@ -0,0 +1,227 @@
1
+ # Slider Component
2
+
3
+ A smooth, touch-friendly carousel component for displaying content in slides with navigation controls and indicators.
4
+
5
+ ## Quick Start
6
+
7
+ ```html
8
+ <!-- Basic image slider -->
9
+ <schmancy-slider>
10
+ <schmancy-slide type="image" src="/image1.jpg" alt="Slide 1"></schmancy-slide>
11
+ <schmancy-slide type="image" src="/image2.jpg" alt="Slide 2"></schmancy-slide>
12
+ <schmancy-slide type="image" src="/image3.jpg" alt="Slide 3"></schmancy-slide>
13
+ </schmancy-slider>
14
+
15
+ <!-- Content slider -->
16
+ <schmancy-slider showArrows>
17
+ <schmancy-slide>
18
+ <schmancy-card>
19
+ <h3>Feature One</h3>
20
+ <p>Description of the first feature...</p>
21
+ </schmancy-card>
22
+ </schmancy-slide>
23
+ <schmancy-slide>
24
+ <schmancy-card>
25
+ <h3>Feature Two</h3>
26
+ <p>Description of the second feature...</p>
27
+ </schmancy-card>
28
+ </schmancy-slide>
29
+ </schmancy-slider>
30
+ ```
31
+
32
+ ## Components
33
+
34
+ ### schmancy-slider
35
+ The main container that handles slide navigation and controls.
36
+
37
+ **Properties:**
38
+ | Property | Type | Default | Description |
39
+ |----------|------|---------|-------------|
40
+ | `showArrows` | `boolean` | `true` | Show navigation arrows |
41
+
42
+ **Events:**
43
+ - `slide-changed`: Fired when active slide changes with `{ detail: { index: number } }`
44
+
45
+ ### schmancy-slide
46
+ Individual slide component supporting various content types.
47
+
48
+ **Properties:**
49
+ | Property | Type | Default | Description |
50
+ |----------|------|---------|-------------|
51
+ | `type` | `'image' \| 'video' \| 'content'` | `'content'` | Slide content type |
52
+ | `src` | `string` | `''` | Source for image/video |
53
+ | `alt` | `string` | `''` | Alt text for images |
54
+ | `controls` | `boolean` | `true` | Show video controls |
55
+ | `autoplay` | `boolean` | `false` | Autoplay video |
56
+ | `loop` | `boolean` | `false` | Loop video |
57
+ | `muted` | `boolean` | `false` | Mute video |
58
+ | `fit` | `'cover' \| 'contain' \| 'fill' \| 'scale-down' \| 'none'` | `'cover'` | Object fit style |
59
+
60
+ ## Examples
61
+
62
+ ### Product Gallery
63
+ ```html
64
+ <schmancy-slider class="h-96">
65
+ ${products.map(product => html`
66
+ <schmancy-slide type="image"
67
+ src="${product.image}"
68
+ alt="${product.name}"
69
+ fit="contain"
70
+ ></schmancy-slide>
71
+ `)}
72
+ </schmancy-slider>
73
+ ```
74
+
75
+ ### Testimonials Carousel
76
+ ```html
77
+ <schmancy-slider showArrows>
78
+ ${testimonials.map(testimonial => html`
79
+ <schmancy-slide>
80
+ <div class="p-8 text-center">
81
+ <schmancy-avatar
82
+ src="${testimonial.avatar}"
83
+ name="${testimonial.name}"
84
+ size="lg"
85
+ class="mx-auto mb-4"
86
+ ></schmancy-avatar>
87
+ <blockquote class="text-lg italic mb-4">
88
+ "${testimonial.quote}"
89
+ </blockquote>
90
+ <cite class="text-sm">
91
+ - ${testimonial.name}, ${testimonial.role}
92
+ </cite>
93
+ </div>
94
+ </schmancy-slide>
95
+ `)}
96
+ </schmancy-slider>
97
+ ```
98
+
99
+ ### Video Showcase
100
+ ```html
101
+ <schmancy-slider>
102
+ <schmancy-slide
103
+ type="video"
104
+ src="/demo-video-1.mp4"
105
+ controls
106
+ muted
107
+ autoplay
108
+ ></schmancy-slide>
109
+ <schmancy-slide
110
+ type="video"
111
+ src="/demo-video-2.mp4"
112
+ controls
113
+ ></schmancy-slide>
114
+ </schmancy-slider>
115
+ ```
116
+
117
+ ### Mixed Content Slider
118
+ ```html
119
+ <schmancy-slider>
120
+ <!-- Welcome slide -->
121
+ <schmancy-slide>
122
+ <div class="flex items-center justify-center h-full p-8">
123
+ <div class="text-center">
124
+ <h1 class="text-4xl mb-4">Welcome</h1>
125
+ <p>Swipe to explore our features</p>
126
+ </div>
127
+ </div>
128
+ </schmancy-slide>
129
+
130
+ <!-- Feature image -->
131
+ <schmancy-slide type="image" src="/feature.jpg" alt="Main Feature"></schmancy-slide>
132
+
133
+ <!-- Video demo -->
134
+ <schmancy-slide type="video" src="/demo.mp4" controls></schmancy-slide>
135
+
136
+ <!-- Call to action -->
137
+ <schmancy-slide>
138
+ <div class="flex items-center justify-center h-full">
139
+ <schmancy-button variant="filled" size="lg">
140
+ Get Started
141
+ </schmancy-button>
142
+ </div>
143
+ </schmancy-slide>
144
+ </schmancy-slider>
145
+ ```
146
+
147
+ ## Features
148
+
149
+ ### Smooth Scrolling
150
+ - Native scroll behavior with CSS scroll-snap
151
+ - Touch and mouse support
152
+ - Keyboard navigation ready
153
+
154
+ ### Navigation Controls
155
+ - Previous/Next arrow buttons
156
+ - Automatic disable at bounds
157
+ - Dot indicators showing current position
158
+
159
+ ### Responsive Design
160
+ - Slides automatically fill container width
161
+ - Hidden scrollbars for clean appearance
162
+ - Works on all device sizes
163
+
164
+ ### Performance
165
+ - Lazy loading for images
166
+ - Throttled scroll events
167
+ - Efficient slide position detection
168
+
169
+ ## Styling
170
+
171
+ ```css
172
+ /* Container styling */
173
+ schmancy-slider {
174
+ height: 400px; /* Set explicit height */
175
+ }
176
+
177
+ /* Custom arrow positioning */
178
+ schmancy-slider::part(prev-button) {
179
+ left: 1rem;
180
+ }
181
+
182
+ schmancy-slider::part(next-button) {
183
+ right: 1rem;
184
+ }
185
+
186
+ /* Indicator customization */
187
+ schmancy-slider::part(indicators) {
188
+ bottom: 2rem;
189
+ }
190
+ ```
191
+
192
+ ## Navigation Methods
193
+
194
+ ```javascript
195
+ // Get slider element
196
+ const slider = document.querySelector('schmancy-slider');
197
+
198
+ // Listen for slide changes
199
+ slider.addEventListener('slide-changed', (e) => {
200
+ console.log('Current slide:', e.detail.index);
201
+ });
202
+
203
+ // Programmatically navigate (if exposed)
204
+ // slider.goToSlide(2);
205
+ ```
206
+
207
+ ## Best Practices
208
+
209
+ 1. **Height**: Always set explicit height on slider container
210
+ 2. **Images**: Optimize images for web delivery
211
+ 3. **Accessibility**: Provide meaningful alt text
212
+ 4. **Performance**: Limit number of slides for better performance
213
+ 5. **Touch**: Ensure adequate touch targets on mobile
214
+
215
+ ## Related Components
216
+
217
+ - [Card](./card.md) - Content containers for slides
218
+ - [Button](./button.md) - Navigation controls
219
+ - [Surface](./surface.md) - Slide backgrounds
220
+
221
+ ## Use Cases
222
+
223
+ 1. **Product Galleries**: E-commerce product images
224
+ 2. **Hero Sections**: Landing page carousels
225
+ 3. **Testimonials**: Customer feedback showcase
226
+ 4. **Tutorials**: Step-by-step guides
227
+ 5. **Media Galleries**: Photo and video collections