@neynar/ui 0.2.1 → 0.3.1

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 (547) hide show
  1. package/{llm-docs → .llm}/a.llm.md +2 -16
  2. package/{llm-docs → .llm}/badge.llm.md +16 -21
  3. package/{llm-docs → .llm}/blockquote.llm.md +1 -6
  4. package/.llm/button-group-separator.llm.md +53 -0
  5. package/.llm/button-group-text.llm.md +56 -0
  6. package/.llm/button-group.llm.md +81 -0
  7. package/{llm-docs → .llm}/button.llm.md +1 -1
  8. package/{llm-docs → .llm}/code.llm.md +1 -6
  9. package/.llm/empty-content.llm.md +103 -0
  10. package/.llm/empty-description.llm.md +70 -0
  11. package/.llm/empty-header.llm.md +64 -0
  12. package/.llm/empty-media.llm.md +81 -0
  13. package/.llm/empty-title.llm.md +54 -0
  14. package/.llm/empty.llm.md +158 -0
  15. package/.llm/field-content.llm.md +28 -0
  16. package/.llm/field-description.llm.md +28 -0
  17. package/.llm/field-error.llm.md +41 -0
  18. package/.llm/field-group.llm.md +84 -0
  19. package/.llm/field-label.llm.md +28 -0
  20. package/.llm/field-legend.llm.md +77 -0
  21. package/.llm/field-separator.llm.md +35 -0
  22. package/.llm/field-set.llm.md +80 -0
  23. package/.llm/field-title.llm.md +28 -0
  24. package/.llm/field.llm.md +35 -0
  25. package/{llm-docs → .llm}/h1.llm.md +2 -7
  26. package/{llm-docs → .llm}/h2.llm.md +2 -7
  27. package/{llm-docs → .llm}/h3.llm.md +2 -7
  28. package/{llm-docs → .llm}/h4.llm.md +2 -7
  29. package/{llm-docs → .llm}/h5.llm.md +2 -7
  30. package/{llm-docs → .llm}/h6.llm.md +1 -6
  31. package/.llm/input-group-addon.llm.md +91 -0
  32. package/.llm/input-group-button.llm.md +120 -0
  33. package/.llm/input-group-input.llm.md +145 -0
  34. package/.llm/input-group-text.llm.md +75 -0
  35. package/.llm/input-group-textarea.llm.md +157 -0
  36. package/.llm/input-group.llm.md +108 -0
  37. package/.llm/item-actions.llm.md +77 -0
  38. package/.llm/item-content.llm.md +73 -0
  39. package/.llm/item-description.llm.md +61 -0
  40. package/.llm/item-footer.llm.md +68 -0
  41. package/.llm/item-group.llm.md +73 -0
  42. package/.llm/item-header.llm.md +66 -0
  43. package/.llm/item-media.llm.md +75 -0
  44. package/.llm/item-separator.llm.md +80 -0
  45. package/.llm/item-title.llm.md +59 -0
  46. package/.llm/item.llm.md +115 -0
  47. package/.llm/kbd-group.llm.md +71 -0
  48. package/.llm/kbd.llm.md +71 -0
  49. package/{llm-docs → .llm}/lead.llm.md +1 -6
  50. package/{llm-docs → .llm}/p.llm.md +1 -6
  51. package/{llm-docs → .llm}/sdk-items-registry.json +390 -6
  52. package/{llm-docs → .llm}/small.llm.md +1 -6
  53. package/{llm-docs → .llm}/span.llm.md +2 -16
  54. package/.llm/spinner.llm.md +182 -0
  55. package/{llm-docs → .llm}/strong.llm.md +1 -6
  56. package/{llm-docs → .llm}/typography.llm.md +2 -16
  57. package/dist/components/ui/button-group.d.ts +448 -0
  58. package/dist/components/ui/button-group.d.ts.map +1 -0
  59. package/dist/components/ui/button.d.ts +1 -1
  60. package/dist/components/ui/button.d.ts.map +1 -1
  61. package/dist/components/ui/empty-state.d.ts +1 -0
  62. package/dist/components/ui/empty-state.d.ts.map +1 -1
  63. package/dist/components/ui/empty.d.ts +630 -0
  64. package/dist/components/ui/empty.d.ts.map +1 -0
  65. package/dist/components/ui/field.d.ts +238 -0
  66. package/dist/components/ui/field.d.ts.map +1 -0
  67. package/dist/components/ui/input-group.d.ts +636 -0
  68. package/dist/components/ui/input-group.d.ts.map +1 -0
  69. package/dist/components/ui/item.d.ts +766 -0
  70. package/dist/components/ui/item.d.ts.map +1 -0
  71. package/dist/components/ui/kbd.d.ts +149 -0
  72. package/dist/components/ui/kbd.d.ts.map +1 -0
  73. package/dist/components/ui/scroll-area.d.ts +5 -5
  74. package/dist/components/ui/scroll-area.d.ts.map +1 -1
  75. package/dist/components/ui/spinner.d.ts +194 -0
  76. package/dist/components/ui/spinner.d.ts.map +1 -0
  77. package/dist/components/ui/stack.d.ts.map +1 -1
  78. package/dist/components/ui/stories/accordion.stories.d.ts +0 -1
  79. package/dist/components/ui/stories/accordion.stories.d.ts.map +1 -1
  80. package/dist/components/ui/stories/alert-dialog.stories.d.ts +0 -1
  81. package/dist/components/ui/stories/alert-dialog.stories.d.ts.map +1 -1
  82. package/dist/components/ui/stories/alert.stories.d.ts +0 -1
  83. package/dist/components/ui/stories/alert.stories.d.ts.map +1 -1
  84. package/dist/components/ui/stories/aspect-ratio.stories.d.ts +0 -1
  85. package/dist/components/ui/stories/aspect-ratio.stories.d.ts.map +1 -1
  86. package/dist/components/ui/stories/avatar.stories.d.ts +0 -1
  87. package/dist/components/ui/stories/avatar.stories.d.ts.map +1 -1
  88. package/dist/components/ui/stories/badge.stories.d.ts +0 -1
  89. package/dist/components/ui/stories/badge.stories.d.ts.map +1 -1
  90. package/dist/components/ui/stories/breadcrumb.stories.d.ts +0 -1
  91. package/dist/components/ui/stories/breadcrumb.stories.d.ts.map +1 -1
  92. package/dist/components/ui/stories/button-group.stories.d.ts +48 -0
  93. package/dist/components/ui/stories/button-group.stories.d.ts.map +1 -0
  94. package/dist/components/ui/stories/button.stories.d.ts +0 -1
  95. package/dist/components/ui/stories/button.stories.d.ts.map +1 -1
  96. package/dist/components/ui/stories/calendar.stories.d.ts +0 -1
  97. package/dist/components/ui/stories/calendar.stories.d.ts.map +1 -1
  98. package/dist/components/ui/stories/card.stories.d.ts +0 -1
  99. package/dist/components/ui/stories/card.stories.d.ts.map +1 -1
  100. package/dist/components/ui/stories/carousel.stories.d.ts +0 -1
  101. package/dist/components/ui/stories/carousel.stories.d.ts.map +1 -1
  102. package/dist/components/ui/stories/chart.stories.d.ts +0 -1
  103. package/dist/components/ui/stories/chart.stories.d.ts.map +1 -1
  104. package/dist/components/ui/stories/checkbox.stories.d.ts +0 -1
  105. package/dist/components/ui/stories/checkbox.stories.d.ts.map +1 -1
  106. package/dist/components/ui/stories/cn.stories.d.ts.map +1 -1
  107. package/dist/components/ui/stories/collapsible.stories.d.ts +0 -1
  108. package/dist/components/ui/stories/collapsible.stories.d.ts.map +1 -1
  109. package/dist/components/ui/stories/colors.stories.d.ts +0 -1
  110. package/dist/components/ui/stories/colors.stories.d.ts.map +1 -1
  111. package/dist/components/ui/stories/combobox.stories.d.ts +0 -1
  112. package/dist/components/ui/stories/combobox.stories.d.ts.map +1 -1
  113. package/dist/components/ui/stories/command.stories.d.ts +0 -1
  114. package/dist/components/ui/stories/command.stories.d.ts.map +1 -1
  115. package/dist/components/ui/stories/container.stories.d.ts +0 -1
  116. package/dist/components/ui/stories/container.stories.d.ts.map +1 -1
  117. package/dist/components/ui/stories/context-menu.stories.d.ts +0 -1
  118. package/dist/components/ui/stories/context-menu.stories.d.ts.map +1 -1
  119. package/dist/components/ui/stories/date-picker.stories.d.ts +0 -1
  120. package/dist/components/ui/stories/date-picker.stories.d.ts.map +1 -1
  121. package/dist/components/ui/stories/dialog.stories.d.ts +0 -1
  122. package/dist/components/ui/stories/dialog.stories.d.ts.map +1 -1
  123. package/dist/components/ui/stories/drawer.stories.d.ts +0 -1
  124. package/dist/components/ui/stories/drawer.stories.d.ts.map +1 -1
  125. package/dist/components/ui/stories/dropdown-menu.stories.d.ts +0 -1
  126. package/dist/components/ui/stories/dropdown-menu.stories.d.ts.map +1 -1
  127. package/dist/components/ui/stories/empty-state.stories.d.ts +0 -1
  128. package/dist/components/ui/stories/empty-state.stories.d.ts.map +1 -1
  129. package/dist/components/ui/stories/empty.stories.d.ts +38 -0
  130. package/dist/components/ui/stories/empty.stories.d.ts.map +1 -0
  131. package/dist/components/ui/stories/field.stories.d.ts +48 -0
  132. package/dist/components/ui/stories/field.stories.d.ts.map +1 -0
  133. package/dist/components/ui/stories/hover-card.stories.d.ts +0 -1
  134. package/dist/components/ui/stories/hover-card.stories.d.ts.map +1 -1
  135. package/dist/components/ui/stories/input-group.stories.d.ts +37 -0
  136. package/dist/components/ui/stories/input-group.stories.d.ts.map +1 -0
  137. package/dist/components/ui/stories/input.stories.d.ts +0 -1
  138. package/dist/components/ui/stories/input.stories.d.ts.map +1 -1
  139. package/dist/components/ui/stories/item.stories.d.ts +61 -0
  140. package/dist/components/ui/stories/item.stories.d.ts.map +1 -0
  141. package/dist/components/ui/stories/kbd.stories.d.ts +37 -0
  142. package/dist/components/ui/stories/kbd.stories.d.ts.map +1 -0
  143. package/dist/components/ui/stories/label.stories.d.ts +0 -1
  144. package/dist/components/ui/stories/label.stories.d.ts.map +1 -1
  145. package/dist/components/ui/stories/menubar.stories.d.ts +0 -1
  146. package/dist/components/ui/stories/menubar.stories.d.ts.map +1 -1
  147. package/dist/components/ui/stories/navigation-menu.stories.d.ts +0 -1
  148. package/dist/components/ui/stories/navigation-menu.stories.d.ts.map +1 -1
  149. package/dist/components/ui/stories/pagination.stories.d.ts +0 -1
  150. package/dist/components/ui/stories/pagination.stories.d.ts.map +1 -1
  151. package/dist/components/ui/stories/popover.stories.d.ts +0 -1
  152. package/dist/components/ui/stories/popover.stories.d.ts.map +1 -1
  153. package/dist/components/ui/stories/progress.stories.d.ts +0 -1
  154. package/dist/components/ui/stories/progress.stories.d.ts.map +1 -1
  155. package/dist/components/ui/stories/radio-group.stories.d.ts +0 -1
  156. package/dist/components/ui/stories/radio-group.stories.d.ts.map +1 -1
  157. package/dist/components/ui/stories/resizable.stories.d.ts +0 -1
  158. package/dist/components/ui/stories/resizable.stories.d.ts.map +1 -1
  159. package/dist/components/ui/stories/scroll-area.stories.d.ts +1 -2
  160. package/dist/components/ui/stories/scroll-area.stories.d.ts.map +1 -1
  161. package/dist/components/ui/stories/select.stories.d.ts +0 -1
  162. package/dist/components/ui/stories/select.stories.d.ts.map +1 -1
  163. package/dist/components/ui/stories/separator.stories.d.ts +0 -1
  164. package/dist/components/ui/stories/separator.stories.d.ts.map +1 -1
  165. package/dist/components/ui/stories/sheet.stories.d.ts +0 -1
  166. package/dist/components/ui/stories/sheet.stories.d.ts.map +1 -1
  167. package/dist/components/ui/stories/sidebar.stories.d.ts +0 -1
  168. package/dist/components/ui/stories/sidebar.stories.d.ts.map +1 -1
  169. package/dist/components/ui/stories/skeleton.stories.d.ts +0 -1
  170. package/dist/components/ui/stories/skeleton.stories.d.ts.map +1 -1
  171. package/dist/components/ui/stories/slider.stories.d.ts +0 -1
  172. package/dist/components/ui/stories/slider.stories.d.ts.map +1 -1
  173. package/dist/components/ui/stories/sonner.stories.d.ts.map +1 -1
  174. package/dist/components/ui/stories/spinner.stories.d.ts +37 -0
  175. package/dist/components/ui/stories/spinner.stories.d.ts.map +1 -0
  176. package/dist/components/ui/stories/stack.stories.d.ts +0 -1
  177. package/dist/components/ui/stories/stack.stories.d.ts.map +1 -1
  178. package/dist/components/ui/stories/switch.stories.d.ts +0 -1
  179. package/dist/components/ui/stories/switch.stories.d.ts.map +1 -1
  180. package/dist/components/ui/stories/table.stories.d.ts +0 -1
  181. package/dist/components/ui/stories/table.stories.d.ts.map +1 -1
  182. package/dist/components/ui/stories/tabs.stories.d.ts +0 -1
  183. package/dist/components/ui/stories/tabs.stories.d.ts.map +1 -1
  184. package/dist/components/ui/stories/text-field.stories.d.ts +0 -1
  185. package/dist/components/ui/stories/text-field.stories.d.ts.map +1 -1
  186. package/dist/components/ui/stories/textarea.stories.d.ts +0 -1
  187. package/dist/components/ui/stories/textarea.stories.d.ts.map +1 -1
  188. package/dist/components/ui/stories/theme-toggle.stories.d.ts +0 -1
  189. package/dist/components/ui/stories/theme-toggle.stories.d.ts.map +1 -1
  190. package/dist/components/ui/stories/theme.stories.d.ts +0 -1
  191. package/dist/components/ui/stories/theme.stories.d.ts.map +1 -1
  192. package/dist/components/ui/stories/toggle-group.stories.d.ts +0 -1
  193. package/dist/components/ui/stories/toggle-group.stories.d.ts.map +1 -1
  194. package/dist/components/ui/stories/toggle.stories.d.ts +0 -1
  195. package/dist/components/ui/stories/toggle.stories.d.ts.map +1 -1
  196. package/dist/components/ui/stories/tooltip.stories.d.ts +0 -1
  197. package/dist/components/ui/stories/tooltip.stories.d.ts.map +1 -1
  198. package/dist/components/ui/stories/typography.stories.d.ts +0 -1
  199. package/dist/components/ui/stories/typography.stories.d.ts.map +1 -1
  200. package/dist/components/ui/stories/use-mobile.stories.d.ts.map +1 -1
  201. package/dist/components/ui/stories/use-theme.stories.d.ts.map +1 -1
  202. package/dist/components/ui/theme-toggle.d.ts +0 -3
  203. package/dist/components/ui/theme-toggle.d.ts.map +1 -1
  204. package/dist/components/ui/theme.d.ts.map +1 -1
  205. package/dist/components/ui/typography.d.ts +12 -11
  206. package/dist/components/ui/typography.d.ts.map +1 -1
  207. package/dist/index.d.ts +7 -0
  208. package/dist/index.d.ts.map +1 -1
  209. package/dist/index.js +4973 -2353
  210. package/dist/index.js.map +1 -1
  211. package/dist/tsconfig.tsbuildinfo +1 -1
  212. package/docs/llm/components/display.md +125 -0
  213. package/docs/llm/components/feedback.md +0 -14
  214. package/docs/llm/components/forms.md +94 -0
  215. package/docs/llm/components/layout.md +169 -0
  216. package/llms.txt +18 -12
  217. package/package.json +7 -6
  218. package/src/components/ui/button-group.tsx +525 -0
  219. package/src/components/ui/button.tsx +9 -12
  220. package/src/components/ui/empty-state.tsx +1 -0
  221. package/src/components/ui/empty.tsx +793 -0
  222. package/src/components/ui/field.tsx +494 -0
  223. package/src/components/ui/input-group.tsx +801 -0
  224. package/src/components/ui/item.tsx +955 -0
  225. package/src/components/ui/kbd.tsx +175 -0
  226. package/src/components/ui/skeleton.tsx +1 -1
  227. package/src/components/ui/spinner.tsx +211 -0
  228. package/src/components/ui/stack.tsx +3 -1
  229. package/src/components/ui/stories/accordion.stories.tsx +0 -1
  230. package/src/components/ui/stories/alert-dialog.stories.tsx +0 -1
  231. package/src/components/ui/stories/alert.stories.tsx +0 -1
  232. package/src/components/ui/stories/aspect-ratio.stories.tsx +0 -1
  233. package/src/components/ui/stories/avatar.stories.tsx +0 -1
  234. package/src/components/ui/stories/badge.stories.tsx +0 -1
  235. package/src/components/ui/stories/breadcrumb.stories.tsx +0 -1
  236. package/src/components/ui/stories/button-group.stories.tsx +300 -0
  237. package/src/components/ui/stories/button.stories.tsx +0 -1
  238. package/src/components/ui/stories/calendar.stories.tsx +0 -1
  239. package/src/components/ui/stories/card.stories.tsx +0 -1
  240. package/src/components/ui/stories/carousel.stories.tsx +0 -1
  241. package/src/components/ui/stories/chart.stories.tsx +0 -1
  242. package/src/components/ui/stories/checkbox.stories.tsx +0 -1
  243. package/src/components/ui/stories/cn.stories.tsx +0 -1
  244. package/src/components/ui/stories/collapsible.stories.tsx +0 -1
  245. package/src/components/ui/stories/colors.stories.tsx +0 -1
  246. package/src/components/ui/stories/combobox.stories.tsx +0 -1
  247. package/src/components/ui/stories/command.stories.tsx +0 -1
  248. package/src/components/ui/stories/container.stories.tsx +0 -1
  249. package/src/components/ui/stories/context-menu.stories.tsx +0 -1
  250. package/src/components/ui/stories/date-picker.stories.tsx +0 -1
  251. package/src/components/ui/stories/dialog.stories.tsx +0 -1
  252. package/src/components/ui/stories/drawer.stories.tsx +0 -1
  253. package/src/components/ui/stories/dropdown-menu.stories.tsx +0 -1
  254. package/src/components/ui/stories/empty-state.stories.tsx +0 -1
  255. package/src/components/ui/stories/empty.stories.tsx +293 -0
  256. package/src/components/ui/stories/field.stories.tsx +470 -0
  257. package/src/components/ui/stories/hover-card.stories.tsx +0 -1
  258. package/src/components/ui/stories/input-group.stories.tsx +444 -0
  259. package/src/components/ui/stories/input.stories.tsx +0 -1
  260. package/src/components/ui/stories/item.stories.tsx +601 -0
  261. package/src/components/ui/stories/kbd.stories.tsx +462 -0
  262. package/src/components/ui/stories/label.stories.tsx +0 -1
  263. package/src/components/ui/stories/menubar.stories.tsx +0 -1
  264. package/src/components/ui/stories/navigation-menu.stories.tsx +0 -1
  265. package/src/components/ui/stories/pagination.stories.tsx +0 -1
  266. package/src/components/ui/stories/popover.stories.tsx +0 -1
  267. package/src/components/ui/stories/progress.stories.tsx +0 -1
  268. package/src/components/ui/stories/radio-group.stories.tsx +0 -1
  269. package/src/components/ui/stories/resizable.stories.tsx +0 -1
  270. package/src/components/ui/stories/scroll-area.stories.tsx +0 -1
  271. package/src/components/ui/stories/select.stories.tsx +0 -1
  272. package/src/components/ui/stories/separator.stories.tsx +0 -1
  273. package/src/components/ui/stories/sheet.stories.tsx +0 -1
  274. package/src/components/ui/stories/sidebar.stories.tsx +0 -1
  275. package/src/components/ui/stories/skeleton.stories.tsx +0 -1
  276. package/src/components/ui/stories/slider.stories.tsx +0 -1
  277. package/src/components/ui/stories/sonner.stories.tsx +0 -1
  278. package/src/components/ui/stories/spinner.stories.tsx +356 -0
  279. package/src/components/ui/stories/stack.stories.tsx +0 -1
  280. package/src/components/ui/stories/switch.stories.tsx +0 -1
  281. package/src/components/ui/stories/table.stories.tsx +0 -1
  282. package/src/components/ui/stories/tabs.stories.tsx +0 -1
  283. package/src/components/ui/stories/text-field.stories.tsx +0 -1
  284. package/src/components/ui/stories/textarea.stories.tsx +0 -1
  285. package/src/components/ui/stories/theme-toggle.stories.tsx +0 -1
  286. package/src/components/ui/stories/theme.stories.tsx +0 -1
  287. package/src/components/ui/stories/toggle-group.stories.tsx +0 -1
  288. package/src/components/ui/stories/toggle.stories.tsx +0 -1
  289. package/src/components/ui/stories/tooltip.stories.tsx +0 -1
  290. package/src/components/ui/stories/typography.stories.tsx +5 -2
  291. package/src/components/ui/stories/use-mobile.stories.tsx +0 -1
  292. package/src/components/ui/stories/use-theme.stories.tsx +0 -1
  293. package/src/components/ui/tabs.tsx +1 -1
  294. package/src/components/ui/theme-toggle.tsx +1 -3
  295. package/src/components/ui/theme.tsx +6 -1
  296. package/src/components/ui/typography.tsx +29 -129
  297. package/src/index.ts +7 -0
  298. package/src/styles/globals.css +82 -94
  299. /package/{llm-docs → .llm}/accordion-content.llm.md +0 -0
  300. /package/{llm-docs → .llm}/accordion-item.llm.md +0 -0
  301. /package/{llm-docs → .llm}/accordion-trigger.llm.md +0 -0
  302. /package/{llm-docs → .llm}/accordion.llm.md +0 -0
  303. /package/{llm-docs → .llm}/alert-description.llm.md +0 -0
  304. /package/{llm-docs → .llm}/alert-dialog-action.llm.md +0 -0
  305. /package/{llm-docs → .llm}/alert-dialog-cancel.llm.md +0 -0
  306. /package/{llm-docs → .llm}/alert-dialog-content.llm.md +0 -0
  307. /package/{llm-docs → .llm}/alert-dialog-description.llm.md +0 -0
  308. /package/{llm-docs → .llm}/alert-dialog-footer.llm.md +0 -0
  309. /package/{llm-docs → .llm}/alert-dialog-header.llm.md +0 -0
  310. /package/{llm-docs → .llm}/alert-dialog-overlay.llm.md +0 -0
  311. /package/{llm-docs → .llm}/alert-dialog-portal.llm.md +0 -0
  312. /package/{llm-docs → .llm}/alert-dialog-title.llm.md +0 -0
  313. /package/{llm-docs → .llm}/alert-dialog-trigger.llm.md +0 -0
  314. /package/{llm-docs → .llm}/alert-dialog.llm.md +0 -0
  315. /package/{llm-docs → .llm}/alert-title.llm.md +0 -0
  316. /package/{llm-docs → .llm}/alert.llm.md +0 -0
  317. /package/{llm-docs → .llm}/aspect-ratio.llm.md +0 -0
  318. /package/{llm-docs → .llm}/avatar-fallback.llm.md +0 -0
  319. /package/{llm-docs → .llm}/avatar-image.llm.md +0 -0
  320. /package/{llm-docs → .llm}/avatar.llm.md +0 -0
  321. /package/{llm-docs → .llm}/breadcrumb-ellipsis.llm.md +0 -0
  322. /package/{llm-docs → .llm}/breadcrumb-item.llm.md +0 -0
  323. /package/{llm-docs → .llm}/breadcrumb-link.llm.md +0 -0
  324. /package/{llm-docs → .llm}/breadcrumb-list.llm.md +0 -0
  325. /package/{llm-docs → .llm}/breadcrumb-page.llm.md +0 -0
  326. /package/{llm-docs → .llm}/breadcrumb-separator.llm.md +0 -0
  327. /package/{llm-docs → .llm}/breadcrumb.llm.md +0 -0
  328. /package/{llm-docs → .llm}/calendar-day-button.llm.md +0 -0
  329. /package/{llm-docs → .llm}/calendar.llm.md +0 -0
  330. /package/{llm-docs → .llm}/card-action.llm.md +0 -0
  331. /package/{llm-docs → .llm}/card-content.llm.md +0 -0
  332. /package/{llm-docs → .llm}/card-description.llm.md +0 -0
  333. /package/{llm-docs → .llm}/card-footer.llm.md +0 -0
  334. /package/{llm-docs → .llm}/card-header.llm.md +0 -0
  335. /package/{llm-docs → .llm}/card-title.llm.md +0 -0
  336. /package/{llm-docs → .llm}/card.llm.md +0 -0
  337. /package/{llm-docs → .llm}/carousel-content.llm.md +0 -0
  338. /package/{llm-docs → .llm}/carousel-item.llm.md +0 -0
  339. /package/{llm-docs → .llm}/carousel-next.llm.md +0 -0
  340. /package/{llm-docs → .llm}/carousel-previous.llm.md +0 -0
  341. /package/{llm-docs → .llm}/carousel.llm.md +0 -0
  342. /package/{llm-docs → .llm}/chart-config.llm.md +0 -0
  343. /package/{llm-docs → .llm}/chart-container.llm.md +0 -0
  344. /package/{llm-docs → .llm}/chart-legend-content.llm.md +0 -0
  345. /package/{llm-docs → .llm}/chart-legend.llm.md +0 -0
  346. /package/{llm-docs → .llm}/chart-style.llm.md +0 -0
  347. /package/{llm-docs → .llm}/chart-tooltip-content.llm.md +0 -0
  348. /package/{llm-docs → .llm}/chart-tooltip.llm.md +0 -0
  349. /package/{llm-docs → .llm}/checkbox.llm.md +0 -0
  350. /package/{llm-docs → .llm}/cn.llm.md +0 -0
  351. /package/{llm-docs → .llm}/collapsible-content.llm.md +0 -0
  352. /package/{llm-docs → .llm}/collapsible-trigger.llm.md +0 -0
  353. /package/{llm-docs → .llm}/collapsible.llm.md +0 -0
  354. /package/{llm-docs → .llm}/combobox-option.llm.md +0 -0
  355. /package/{llm-docs → .llm}/combobox.llm.md +0 -0
  356. /package/{llm-docs → .llm}/command-dialog.llm.md +0 -0
  357. /package/{llm-docs → .llm}/command-empty.llm.md +0 -0
  358. /package/{llm-docs → .llm}/command-group.llm.md +0 -0
  359. /package/{llm-docs → .llm}/command-input.llm.md +0 -0
  360. /package/{llm-docs → .llm}/command-item.llm.md +0 -0
  361. /package/{llm-docs → .llm}/command-list.llm.md +0 -0
  362. /package/{llm-docs → .llm}/command-loading.llm.md +0 -0
  363. /package/{llm-docs → .llm}/command-separator.llm.md +0 -0
  364. /package/{llm-docs → .llm}/command-shortcut.llm.md +0 -0
  365. /package/{llm-docs → .llm}/command.llm.md +0 -0
  366. /package/{llm-docs → .llm}/container.llm.md +0 -0
  367. /package/{llm-docs → .llm}/context-menu-checkbox-item.llm.md +0 -0
  368. /package/{llm-docs → .llm}/context-menu-content.llm.md +0 -0
  369. /package/{llm-docs → .llm}/context-menu-group.llm.md +0 -0
  370. /package/{llm-docs → .llm}/context-menu-item.llm.md +0 -0
  371. /package/{llm-docs → .llm}/context-menu-label.llm.md +0 -0
  372. /package/{llm-docs → .llm}/context-menu-portal.llm.md +0 -0
  373. /package/{llm-docs → .llm}/context-menu-radio-group.llm.md +0 -0
  374. /package/{llm-docs → .llm}/context-menu-radio-item.llm.md +0 -0
  375. /package/{llm-docs → .llm}/context-menu-separator.llm.md +0 -0
  376. /package/{llm-docs → .llm}/context-menu-shortcut.llm.md +0 -0
  377. /package/{llm-docs → .llm}/context-menu-sub-content.llm.md +0 -0
  378. /package/{llm-docs → .llm}/context-menu-sub-trigger.llm.md +0 -0
  379. /package/{llm-docs → .llm}/context-menu-sub.llm.md +0 -0
  380. /package/{llm-docs → .llm}/context-menu-trigger.llm.md +0 -0
  381. /package/{llm-docs → .llm}/context-menu.llm.md +0 -0
  382. /package/{llm-docs → .llm}/date-picker.llm.md +0 -0
  383. /package/{llm-docs → .llm}/dialog-close.llm.md +0 -0
  384. /package/{llm-docs → .llm}/dialog-content.llm.md +0 -0
  385. /package/{llm-docs → .llm}/dialog-description.llm.md +0 -0
  386. /package/{llm-docs → .llm}/dialog-footer.llm.md +0 -0
  387. /package/{llm-docs → .llm}/dialog-header.llm.md +0 -0
  388. /package/{llm-docs → .llm}/dialog-overlay.llm.md +0 -0
  389. /package/{llm-docs → .llm}/dialog-portal.llm.md +0 -0
  390. /package/{llm-docs → .llm}/dialog-title.llm.md +0 -0
  391. /package/{llm-docs → .llm}/dialog-trigger.llm.md +0 -0
  392. /package/{llm-docs → .llm}/dialog.llm.md +0 -0
  393. /package/{llm-docs → .llm}/drawer-close.llm.md +0 -0
  394. /package/{llm-docs → .llm}/drawer-content.llm.md +0 -0
  395. /package/{llm-docs → .llm}/drawer-description.llm.md +0 -0
  396. /package/{llm-docs → .llm}/drawer-footer.llm.md +0 -0
  397. /package/{llm-docs → .llm}/drawer-header.llm.md +0 -0
  398. /package/{llm-docs → .llm}/drawer-overlay.llm.md +0 -0
  399. /package/{llm-docs → .llm}/drawer-portal.llm.md +0 -0
  400. /package/{llm-docs → .llm}/drawer-title.llm.md +0 -0
  401. /package/{llm-docs → .llm}/drawer-trigger.llm.md +0 -0
  402. /package/{llm-docs → .llm}/drawer.llm.md +0 -0
  403. /package/{llm-docs → .llm}/dropdown-menu-checkbox-item.llm.md +0 -0
  404. /package/{llm-docs → .llm}/dropdown-menu-content.llm.md +0 -0
  405. /package/{llm-docs → .llm}/dropdown-menu-group.llm.md +0 -0
  406. /package/{llm-docs → .llm}/dropdown-menu-item.llm.md +0 -0
  407. /package/{llm-docs → .llm}/dropdown-menu-label.llm.md +0 -0
  408. /package/{llm-docs → .llm}/dropdown-menu-portal.llm.md +0 -0
  409. /package/{llm-docs → .llm}/dropdown-menu-radio-group.llm.md +0 -0
  410. /package/{llm-docs → .llm}/dropdown-menu-radio-item.llm.md +0 -0
  411. /package/{llm-docs → .llm}/dropdown-menu-separator.llm.md +0 -0
  412. /package/{llm-docs → .llm}/dropdown-menu-shortcut.llm.md +0 -0
  413. /package/{llm-docs → .llm}/dropdown-menu-sub-content.llm.md +0 -0
  414. /package/{llm-docs → .llm}/dropdown-menu-sub-trigger.llm.md +0 -0
  415. /package/{llm-docs → .llm}/dropdown-menu-sub.llm.md +0 -0
  416. /package/{llm-docs → .llm}/dropdown-menu-trigger.llm.md +0 -0
  417. /package/{llm-docs → .llm}/dropdown-menu.llm.md +0 -0
  418. /package/{llm-docs → .llm}/empty-state.llm.md +0 -0
  419. /package/{llm-docs → .llm}/hover-card-content.llm.md +0 -0
  420. /package/{llm-docs → .llm}/hover-card-trigger.llm.md +0 -0
  421. /package/{llm-docs → .llm}/hover-card.llm.md +0 -0
  422. /package/{llm-docs → .llm}/input.llm.md +0 -0
  423. /package/{llm-docs → .llm}/label.llm.md +0 -0
  424. /package/{llm-docs → .llm}/menubar-checkbox-item.llm.md +0 -0
  425. /package/{llm-docs → .llm}/menubar-content.llm.md +0 -0
  426. /package/{llm-docs → .llm}/menubar-group.llm.md +0 -0
  427. /package/{llm-docs → .llm}/menubar-item.llm.md +0 -0
  428. /package/{llm-docs → .llm}/menubar-label.llm.md +0 -0
  429. /package/{llm-docs → .llm}/menubar-menu.llm.md +0 -0
  430. /package/{llm-docs → .llm}/menubar-portal.llm.md +0 -0
  431. /package/{llm-docs → .llm}/menubar-radio-group.llm.md +0 -0
  432. /package/{llm-docs → .llm}/menubar-radio-item.llm.md +0 -0
  433. /package/{llm-docs → .llm}/menubar-separator.llm.md +0 -0
  434. /package/{llm-docs → .llm}/menubar-shortcut.llm.md +0 -0
  435. /package/{llm-docs → .llm}/menubar-sub-content.llm.md +0 -0
  436. /package/{llm-docs → .llm}/menubar-sub-trigger.llm.md +0 -0
  437. /package/{llm-docs → .llm}/menubar-sub.llm.md +0 -0
  438. /package/{llm-docs → .llm}/menubar-trigger.llm.md +0 -0
  439. /package/{llm-docs → .llm}/menubar.llm.md +0 -0
  440. /package/{llm-docs → .llm}/navigation-menu-content.llm.md +0 -0
  441. /package/{llm-docs → .llm}/navigation-menu-indicator.llm.md +0 -0
  442. /package/{llm-docs → .llm}/navigation-menu-item.llm.md +0 -0
  443. /package/{llm-docs → .llm}/navigation-menu-link.llm.md +0 -0
  444. /package/{llm-docs → .llm}/navigation-menu-list.llm.md +0 -0
  445. /package/{llm-docs → .llm}/navigation-menu-trigger-style.llm.md +0 -0
  446. /package/{llm-docs → .llm}/navigation-menu-trigger.llm.md +0 -0
  447. /package/{llm-docs → .llm}/navigation-menu-viewport.llm.md +0 -0
  448. /package/{llm-docs → .llm}/navigation-menu.llm.md +0 -0
  449. /package/{llm-docs → .llm}/pagination-content.llm.md +0 -0
  450. /package/{llm-docs → .llm}/pagination-ellipsis.llm.md +0 -0
  451. /package/{llm-docs → .llm}/pagination-item.llm.md +0 -0
  452. /package/{llm-docs → .llm}/pagination-link.llm.md +0 -0
  453. /package/{llm-docs → .llm}/pagination-next.llm.md +0 -0
  454. /package/{llm-docs → .llm}/pagination-previous.llm.md +0 -0
  455. /package/{llm-docs → .llm}/pagination.llm.md +0 -0
  456. /package/{llm-docs → .llm}/popover-anchor.llm.md +0 -0
  457. /package/{llm-docs → .llm}/popover-content.llm.md +0 -0
  458. /package/{llm-docs → .llm}/popover-trigger.llm.md +0 -0
  459. /package/{llm-docs → .llm}/popover.llm.md +0 -0
  460. /package/{llm-docs → .llm}/progress.llm.md +0 -0
  461. /package/{llm-docs → .llm}/radio-group-indicator.llm.md +0 -0
  462. /package/{llm-docs → .llm}/radio-group-item.llm.md +0 -0
  463. /package/{llm-docs → .llm}/radio-group.llm.md +0 -0
  464. /package/{llm-docs → .llm}/resizable-handle.llm.md +0 -0
  465. /package/{llm-docs → .llm}/resizable-panel-group.llm.md +0 -0
  466. /package/{llm-docs → .llm}/resizable-panel.llm.md +0 -0
  467. /package/{llm-docs → .llm}/scroll-area-corner.llm.md +0 -0
  468. /package/{llm-docs → .llm}/scroll-area-thumb.llm.md +0 -0
  469. /package/{llm-docs → .llm}/scroll-area-viewport.llm.md +0 -0
  470. /package/{llm-docs → .llm}/scroll-area.llm.md +0 -0
  471. /package/{llm-docs → .llm}/scroll-bar.llm.md +0 -0
  472. /package/{llm-docs → .llm}/select-content.llm.md +0 -0
  473. /package/{llm-docs → .llm}/select-group.llm.md +0 -0
  474. /package/{llm-docs → .llm}/select-item.llm.md +0 -0
  475. /package/{llm-docs → .llm}/select-label.llm.md +0 -0
  476. /package/{llm-docs → .llm}/select-scroll-down-button.llm.md +0 -0
  477. /package/{llm-docs → .llm}/select-scroll-up-button.llm.md +0 -0
  478. /package/{llm-docs → .llm}/select-separator.llm.md +0 -0
  479. /package/{llm-docs → .llm}/select-trigger.llm.md +0 -0
  480. /package/{llm-docs → .llm}/select-value.llm.md +0 -0
  481. /package/{llm-docs → .llm}/select.llm.md +0 -0
  482. /package/{llm-docs → .llm}/separator.llm.md +0 -0
  483. /package/{llm-docs → .llm}/sheet-close.llm.md +0 -0
  484. /package/{llm-docs → .llm}/sheet-content.llm.md +0 -0
  485. /package/{llm-docs → .llm}/sheet-description.llm.md +0 -0
  486. /package/{llm-docs → .llm}/sheet-footer.llm.md +0 -0
  487. /package/{llm-docs → .llm}/sheet-header.llm.md +0 -0
  488. /package/{llm-docs → .llm}/sheet-title.llm.md +0 -0
  489. /package/{llm-docs → .llm}/sheet-trigger.llm.md +0 -0
  490. /package/{llm-docs → .llm}/sheet.llm.md +0 -0
  491. /package/{llm-docs → .llm}/sidebar-content.llm.md +0 -0
  492. /package/{llm-docs → .llm}/sidebar-footer.llm.md +0 -0
  493. /package/{llm-docs → .llm}/sidebar-group-action.llm.md +0 -0
  494. /package/{llm-docs → .llm}/sidebar-group-content.llm.md +0 -0
  495. /package/{llm-docs → .llm}/sidebar-group-label.llm.md +0 -0
  496. /package/{llm-docs → .llm}/sidebar-group.llm.md +0 -0
  497. /package/{llm-docs → .llm}/sidebar-header.llm.md +0 -0
  498. /package/{llm-docs → .llm}/sidebar-input.llm.md +0 -0
  499. /package/{llm-docs → .llm}/sidebar-inset.llm.md +0 -0
  500. /package/{llm-docs → .llm}/sidebar-menu-action.llm.md +0 -0
  501. /package/{llm-docs → .llm}/sidebar-menu-badge.llm.md +0 -0
  502. /package/{llm-docs → .llm}/sidebar-menu-button.llm.md +0 -0
  503. /package/{llm-docs → .llm}/sidebar-menu-item.llm.md +0 -0
  504. /package/{llm-docs → .llm}/sidebar-menu-skeleton.llm.md +0 -0
  505. /package/{llm-docs → .llm}/sidebar-menu-sub-button.llm.md +0 -0
  506. /package/{llm-docs → .llm}/sidebar-menu-sub-item.llm.md +0 -0
  507. /package/{llm-docs → .llm}/sidebar-menu-sub.llm.md +0 -0
  508. /package/{llm-docs → .llm}/sidebar-menu.llm.md +0 -0
  509. /package/{llm-docs → .llm}/sidebar-provider.llm.md +0 -0
  510. /package/{llm-docs → .llm}/sidebar-rail.llm.md +0 -0
  511. /package/{llm-docs → .llm}/sidebar-separator.llm.md +0 -0
  512. /package/{llm-docs → .llm}/sidebar-trigger.llm.md +0 -0
  513. /package/{llm-docs → .llm}/sidebar.llm.md +0 -0
  514. /package/{llm-docs → .llm}/skeleton.llm.md +0 -0
  515. /package/{llm-docs → .llm}/slider.llm.md +0 -0
  516. /package/{llm-docs → .llm}/stack.llm.md +0 -0
  517. /package/{llm-docs → .llm}/switch.llm.md +0 -0
  518. /package/{llm-docs → .llm}/table-body.llm.md +0 -0
  519. /package/{llm-docs → .llm}/table-caption.llm.md +0 -0
  520. /package/{llm-docs → .llm}/table-cell.llm.md +0 -0
  521. /package/{llm-docs → .llm}/table-footer.llm.md +0 -0
  522. /package/{llm-docs → .llm}/table-head.llm.md +0 -0
  523. /package/{llm-docs → .llm}/table-header.llm.md +0 -0
  524. /package/{llm-docs → .llm}/table-row.llm.md +0 -0
  525. /package/{llm-docs → .llm}/table.llm.md +0 -0
  526. /package/{llm-docs → .llm}/tabs-content.llm.md +0 -0
  527. /package/{llm-docs → .llm}/tabs-list.llm.md +0 -0
  528. /package/{llm-docs → .llm}/tabs-trigger.llm.md +0 -0
  529. /package/{llm-docs → .llm}/tabs.llm.md +0 -0
  530. /package/{llm-docs → .llm}/text-field.llm.md +0 -0
  531. /package/{llm-docs → .llm}/textarea.llm.md +0 -0
  532. /package/{llm-docs → .llm}/theme-preference.llm.md +0 -0
  533. /package/{llm-docs → .llm}/theme-toggle.llm.md +0 -0
  534. /package/{llm-docs → .llm}/theme.llm.md +0 -0
  535. /package/{llm-docs → .llm}/toast.llm.md +0 -0
  536. /package/{llm-docs → .llm}/toaster.llm.md +0 -0
  537. /package/{llm-docs → .llm}/toggle-group-item.llm.md +0 -0
  538. /package/{llm-docs → .llm}/toggle-group.llm.md +0 -0
  539. /package/{llm-docs → .llm}/toggle.llm.md +0 -0
  540. /package/{llm-docs → .llm}/tooltip-content.llm.md +0 -0
  541. /package/{llm-docs → .llm}/tooltip-provider.llm.md +0 -0
  542. /package/{llm-docs → .llm}/tooltip-trigger.llm.md +0 -0
  543. /package/{llm-docs → .llm}/tooltip.llm.md +0 -0
  544. /package/{llm-docs → .llm}/use-carousel.llm.md +0 -0
  545. /package/{llm-docs → .llm}/use-command-state.llm.md +0 -0
  546. /package/{llm-docs → .llm}/use-is-mobile.llm.md +0 -0
  547. /package/{llm-docs → .llm}/use-sidebar.llm.md +0 -0
@@ -0,0 +1,356 @@
1
+ import type { Meta, StoryObj } from "@storybook/react-vite";
2
+ import { Button } from "../button";
3
+ import { Spinner } from "../spinner";
4
+
5
+ const meta = {
6
+ title: "Data Display/Spinner",
7
+ component: Spinner,
8
+ parameters: {
9
+ layout: "centered",
10
+ docs: {
11
+ description: {
12
+ component:
13
+ "A loading spinner component that provides visual feedback during asynchronous operations. Uses the Loader2 icon with animated rotation.",
14
+ },
15
+ },
16
+ },
17
+ argTypes: {
18
+ className: {
19
+ control: { type: "text" },
20
+ description: "Additional CSS classes to apply",
21
+ },
22
+ },
23
+ } satisfies Meta<typeof Spinner>;
24
+
25
+ export default meta;
26
+ type Story = StoryObj<typeof meta>;
27
+
28
+ /**
29
+ * Interactive playground with spinner properties.
30
+ */
31
+ export const Interactive: Story = {
32
+ render: (args) => <Spinner {...args} />,
33
+ };
34
+
35
+ /**
36
+ * Showcase of all available spinner sizes and colors.
37
+ */
38
+ export const Variants: Story = {
39
+ render: () => (
40
+ <div className="space-y-12 w-full max-w-2xl">
41
+ {/* Sizes */}
42
+ <div className="space-y-4">
43
+ <h3 className="text-sm font-medium text-muted-foreground">Sizes</h3>
44
+ <div className="flex items-center gap-4">
45
+ <div className="flex flex-col items-center gap-2">
46
+ <Spinner className="size-3" />
47
+ <span className="text-xs text-muted-foreground">Extra Small</span>
48
+ </div>
49
+ <div className="flex flex-col items-center gap-2">
50
+ <Spinner className="size-4" />
51
+ <span className="text-xs text-muted-foreground">Small</span>
52
+ </div>
53
+ <div className="flex flex-col items-center gap-2">
54
+ <Spinner className="size-5" />
55
+ <span className="text-xs text-muted-foreground">Default</span>
56
+ </div>
57
+ <div className="flex flex-col items-center gap-2">
58
+ <Spinner className="size-6" />
59
+ <span className="text-xs text-muted-foreground">Medium</span>
60
+ </div>
61
+ <div className="flex flex-col items-center gap-2">
62
+ <Spinner className="size-8" />
63
+ <span className="text-xs text-muted-foreground">Large</span>
64
+ </div>
65
+ <div className="flex flex-col items-center gap-2">
66
+ <Spinner className="size-12" />
67
+ <span className="text-xs text-muted-foreground">Extra Large</span>
68
+ </div>
69
+ </div>
70
+ </div>
71
+
72
+ {/* Colors */}
73
+ <div className="space-y-4">
74
+ <h3 className="text-sm font-medium text-muted-foreground">Colors</h3>
75
+ <div className="flex items-center gap-4">
76
+ <div className="flex flex-col items-center gap-2">
77
+ <Spinner />
78
+ <span className="text-xs text-muted-foreground">Default</span>
79
+ </div>
80
+ <div className="flex flex-col items-center gap-2">
81
+ <Spinner className="text-primary" />
82
+ <span className="text-xs text-muted-foreground">Primary</span>
83
+ </div>
84
+ <div className="flex flex-col items-center gap-2">
85
+ <Spinner className="text-destructive" />
86
+ <span className="text-xs text-muted-foreground">Destructive</span>
87
+ </div>
88
+ <div className="flex flex-col items-center gap-2">
89
+ <Spinner className="text-muted-foreground" />
90
+ <span className="text-xs text-muted-foreground">Muted</span>
91
+ </div>
92
+ <div className="flex flex-col items-center gap-2">
93
+ <div className="bg-primary p-3 rounded-md">
94
+ <Spinner className="text-primary-foreground" />
95
+ </div>
96
+ <span className="text-xs text-muted-foreground">On Primary</span>
97
+ </div>
98
+ </div>
99
+ </div>
100
+
101
+ {/* Animation Speed */}
102
+ <div className="space-y-4">
103
+ <h3 className="text-sm font-medium text-muted-foreground">
104
+ Animation Speed
105
+ </h3>
106
+ <div className="flex items-center gap-4">
107
+ <div className="flex flex-col items-center gap-2">
108
+ <Spinner className="animate-spin-slow" />
109
+ <span className="text-xs text-muted-foreground">Slow</span>
110
+ </div>
111
+ <div className="flex flex-col items-center gap-2">
112
+ <Spinner />
113
+ <span className="text-xs text-muted-foreground">Normal</span>
114
+ </div>
115
+ <div className="flex flex-col items-center gap-2">
116
+ <Spinner className="animate-spin-fast" />
117
+ <span className="text-xs text-muted-foreground">Fast</span>
118
+ </div>
119
+ </div>
120
+ </div>
121
+
122
+ {/* Centered Layout */}
123
+ <div className="space-y-4">
124
+ <h3 className="text-sm font-medium text-muted-foreground">
125
+ Centered in Container
126
+ </h3>
127
+ <div className="border rounded-lg p-12 flex items-center justify-center">
128
+ <Spinner className="size-8" />
129
+ </div>
130
+ </div>
131
+
132
+ {/* With Background */}
133
+ <div className="space-y-4">
134
+ <h3 className="text-sm font-medium text-muted-foreground">
135
+ With Background Overlay
136
+ </h3>
137
+ <div className="relative border rounded-lg p-12">
138
+ <div className="absolute inset-0 bg-background/50 backdrop-blur-sm flex items-center justify-center rounded-lg">
139
+ <Spinner className="size-8" />
140
+ </div>
141
+ <div className="space-y-2">
142
+ <h4 className="font-semibold">Content Loading</h4>
143
+ <p className="text-sm text-muted-foreground">
144
+ This content is behind a loading overlay
145
+ </p>
146
+ </div>
147
+ </div>
148
+ </div>
149
+ </div>
150
+ ),
151
+ parameters: {
152
+ layout: "padded",
153
+ docs: {
154
+ description: {
155
+ story:
156
+ "Complete showcase of spinner sizes, colors, animation speeds, and layout options.",
157
+ },
158
+ },
159
+ },
160
+ };
161
+
162
+ /**
163
+ * Real-world usage examples showing spinners in practical scenarios.
164
+ */
165
+ export const InContext: Story = {
166
+ render: () => (
167
+ <div className="space-y-8 w-full max-w-2xl">
168
+ {/* Loading Button */}
169
+ <div className="space-y-4 p-6 border rounded-lg">
170
+ <h3 className="text-lg font-semibold">Loading Buttons</h3>
171
+ <div className="flex flex-wrap gap-2">
172
+ <Button disabled>
173
+ <Spinner className="size-4 mr-2" />
174
+ Loading...
175
+ </Button>
176
+ <Button variant="outline" disabled>
177
+ <Spinner className="size-4 mr-2" />
178
+ Processing
179
+ </Button>
180
+ <Button variant="secondary" disabled>
181
+ <Spinner className="size-4 mr-2" />
182
+ Saving
183
+ </Button>
184
+ <Button size="icon" disabled>
185
+ <Spinner className="size-4" />
186
+ </Button>
187
+ </div>
188
+ </div>
189
+
190
+ {/* Loading Card Content */}
191
+ <div className="space-y-4 p-6 border rounded-lg">
192
+ <h3 className="text-lg font-semibold">Loading Card</h3>
193
+ <div className="border rounded-lg p-8 flex flex-col items-center justify-center gap-3">
194
+ <Spinner className="size-8" />
195
+ <p className="text-sm text-muted-foreground">Loading data...</p>
196
+ </div>
197
+ </div>
198
+
199
+ {/* Inline Loading */}
200
+ <div className="space-y-4 p-6 border rounded-lg">
201
+ <h3 className="text-lg font-semibold">Inline Loading</h3>
202
+ <div className="space-y-3">
203
+ <p className="text-sm flex items-center gap-2">
204
+ <Spinner className="size-4" />
205
+ Fetching latest updates...
206
+ </p>
207
+ <p className="text-sm flex items-center gap-2">
208
+ <Spinner className="size-4 text-primary" />
209
+ Syncing your data...
210
+ </p>
211
+ <p className="text-sm flex items-center gap-2">
212
+ <Spinner className="size-4 text-muted-foreground" />
213
+ Processing in background...
214
+ </p>
215
+ </div>
216
+ </div>
217
+
218
+ {/* Page Loading */}
219
+ <div className="space-y-4 p-6 border rounded-lg">
220
+ <h3 className="text-lg font-semibold">Page Loading State</h3>
221
+ <div className="border rounded-lg min-h-64 flex items-center justify-center">
222
+ <div className="flex flex-col items-center gap-4">
223
+ <Spinner className="size-12" />
224
+ <div className="text-center">
225
+ <p className="font-medium">Loading your dashboard</p>
226
+ <p className="text-sm text-muted-foreground">
227
+ This won't take long...
228
+ </p>
229
+ </div>
230
+ </div>
231
+ </div>
232
+ </div>
233
+
234
+ {/* List Loading */}
235
+ <div className="space-y-4 p-6 border rounded-lg">
236
+ <h3 className="text-lg font-semibold">Loading List Items</h3>
237
+ <div className="space-y-2">
238
+ <div className="flex items-center gap-3 p-3 border rounded-md">
239
+ <Spinner className="size-4" />
240
+ <div className="flex-1">
241
+ <div className="h-4 bg-muted rounded w-1/3" />
242
+ </div>
243
+ </div>
244
+ <div className="flex items-center gap-3 p-3 border rounded-md">
245
+ <Spinner className="size-4" />
246
+ <div className="flex-1">
247
+ <div className="h-4 bg-muted rounded w-1/2" />
248
+ </div>
249
+ </div>
250
+ <div className="flex items-center gap-3 p-3 border rounded-md">
251
+ <Spinner className="size-4" />
252
+ <div className="flex-1">
253
+ <div className="h-4 bg-muted rounded w-2/5" />
254
+ </div>
255
+ </div>
256
+ </div>
257
+ </div>
258
+
259
+ {/* Modal Loading */}
260
+ <div className="space-y-4 p-6 border rounded-lg">
261
+ <h3 className="text-lg font-semibold">Modal Loading</h3>
262
+ <div className="border rounded-lg bg-card shadow-lg">
263
+ <div className="p-6 space-y-4">
264
+ <h4 className="text-lg font-semibold">Confirm Action</h4>
265
+ <p className="text-sm text-muted-foreground">
266
+ Are you sure you want to proceed?
267
+ </p>
268
+ <div className="flex gap-2">
269
+ <Button variant="outline">Cancel</Button>
270
+ <Button disabled>
271
+ <Spinner className="size-4 mr-2" />
272
+ Confirming...
273
+ </Button>
274
+ </div>
275
+ </div>
276
+ </div>
277
+ </div>
278
+
279
+ {/* Table Loading */}
280
+ <div className="space-y-4 p-6 border rounded-lg">
281
+ <h3 className="text-lg font-semibold">Table Loading</h3>
282
+ <div className="border rounded-lg">
283
+ <div className="p-4 border-b">
284
+ <div className="flex items-center justify-between">
285
+ <h4 className="font-medium">User Data</h4>
286
+ <Spinner className="size-4" />
287
+ </div>
288
+ </div>
289
+ <div className="p-8 flex flex-col items-center justify-center gap-2">
290
+ <Spinner className="size-6" />
291
+ <p className="text-sm text-muted-foreground">Loading table data...</p>
292
+ </div>
293
+ </div>
294
+ </div>
295
+
296
+ {/* Form Submission */}
297
+ <div className="space-y-4 p-6 border rounded-lg">
298
+ <h3 className="text-lg font-semibold">Form Submission</h3>
299
+ <form className="space-y-4">
300
+ <div className="space-y-2">
301
+ <label htmlFor="email" className="text-sm font-medium">
302
+ Email
303
+ </label>
304
+ <input
305
+ id="email"
306
+ type="email"
307
+ className="w-full px-3 py-2 border rounded-md"
308
+ placeholder="you@example.com"
309
+ disabled
310
+ />
311
+ </div>
312
+ <div className="space-y-2">
313
+ <label htmlFor="message" className="text-sm font-medium">
314
+ Message
315
+ </label>
316
+ <textarea
317
+ id="message"
318
+ className="w-full min-h-24 px-3 py-2 border rounded-md"
319
+ placeholder="Your message"
320
+ disabled
321
+ />
322
+ </div>
323
+ <Button className="w-full" disabled>
324
+ <Spinner className="size-4 mr-2" />
325
+ Submitting...
326
+ </Button>
327
+ </form>
328
+ </div>
329
+
330
+ {/* Content Refresh */}
331
+ <div className="space-y-4 p-6 border rounded-lg">
332
+ <div className="flex items-center justify-between">
333
+ <h3 className="text-lg font-semibold">Recent Activity</h3>
334
+ <Button variant="ghost" size="sm" disabled>
335
+ <Spinner className="size-3 mr-2" />
336
+ Refreshing
337
+ </Button>
338
+ </div>
339
+ <div className="space-y-2">
340
+ <p className="text-sm text-muted-foreground">
341
+ Activity feed is being refreshed...
342
+ </p>
343
+ </div>
344
+ </div>
345
+ </div>
346
+ ),
347
+ parameters: {
348
+ layout: "padded",
349
+ docs: {
350
+ description: {
351
+ story:
352
+ "Real-world examples showing spinners in buttons, cards, pages, lists, modals, tables, forms, and refresh operations.",
353
+ },
354
+ },
355
+ },
356
+ };
@@ -18,7 +18,6 @@ const meta = {
18
18
  },
19
19
  },
20
20
  },
21
- tags: ["autodocs"],
22
21
  argTypes: {
23
22
  spacing: {
24
23
  control: { type: "select" },
@@ -16,7 +16,6 @@ const meta = {
16
16
  },
17
17
  },
18
18
  },
19
- tags: ["autodocs"],
20
19
  argTypes: {
21
20
  checked: {
22
21
  control: { type: "boolean" },
@@ -36,7 +36,6 @@ const meta = {
36
36
  },
37
37
  },
38
38
  },
39
- tags: ["autodocs"],
40
39
  argTypes: {
41
40
  className: {
42
41
  control: "text",
@@ -21,7 +21,6 @@ const meta = {
21
21
  },
22
22
  },
23
23
  },
24
- tags: ["autodocs"],
25
24
  argTypes: {
26
25
  defaultValue: {
27
26
  control: { type: "text" },
@@ -16,7 +16,6 @@ const meta = {
16
16
  },
17
17
  },
18
18
  },
19
- tags: ["autodocs"],
20
19
  argTypes: {
21
20
  label: {
22
21
  control: { type: "text" },
@@ -24,7 +24,6 @@ const meta = {
24
24
  },
25
25
  },
26
26
  },
27
- tags: ["autodocs"],
28
27
  argTypes: {
29
28
  placeholder: {
30
29
  control: { type: "text" },
@@ -21,7 +21,6 @@ const meta = {
21
21
  },
22
22
  },
23
23
  },
24
- tags: ["autodocs"],
25
24
  argTypes: {
26
25
  variant: {
27
26
  control: { type: "select" },
@@ -41,7 +41,6 @@ Place the Theme component once at the root of your application, ideally in the d
41
41
  },
42
42
  },
43
43
  },
44
- tags: ["autodocs"],
45
44
  } satisfies Meta<typeof Theme>;
46
45
 
47
46
  export default meta;
@@ -22,7 +22,6 @@ const meta = {
22
22
  },
23
23
  },
24
24
  },
25
- tags: ["autodocs"],
26
25
  argTypes: {
27
26
  type: {
28
27
  control: { type: "select" },
@@ -16,7 +16,6 @@ const meta = {
16
16
  },
17
17
  },
18
18
  },
19
- tags: ["autodocs"],
20
19
  argTypes: {
21
20
  variant: {
22
21
  control: { type: "select" },
@@ -25,7 +25,6 @@ const meta = {
25
25
  },
26
26
  },
27
27
  },
28
- tags: ["autodocs"],
29
28
  argTypes: {
30
29
  // Since Tooltip is a composition of sub-components, we'll document the key props here
31
30
  delayDuration: {
@@ -45,7 +45,6 @@ const meta = {
45
45
  },
46
46
  },
47
47
  },
48
- tags: ["autodocs"],
49
48
  argTypes: {
50
49
  variant: {
51
50
  control: { type: "select" },
@@ -72,6 +71,7 @@ const meta = {
72
71
  options: [
73
72
  "default",
74
73
  "muted",
74
+ "faint",
75
75
  "accent",
76
76
  "destructive",
77
77
  "success",
@@ -526,6 +526,9 @@ export const InContext: Story = {
526
526
  <Typography variant="body" color="muted">
527
527
  Muted color for secondary information
528
528
  </Typography>
529
+ <Typography variant="body" color="faint">
530
+ Faint color for tertiary information
531
+ </Typography>
529
532
  <Typography variant="body" color="accent">
530
533
  Accent color for emphasis
531
534
  </Typography>
@@ -1557,7 +1560,7 @@ export const ComponentReference: Story = {
1557
1560
  <Typography variant="paragraphLead">Available Props:</Typography>
1558
1561
  <ul className="mt-2 space-y-1 ml-4">
1559
1562
  <li>
1560
- <Code>color</Code> - default, muted, accent, destructive,
1563
+ <Code>color</Code> - default, muted, faint, accent, destructive,
1561
1564
  success, warning
1562
1565
  </li>
1563
1566
  <li>
@@ -365,7 +365,6 @@ Returns true when viewport width is less than 768px (Tailwind's md breakpoint).
365
365
  },
366
366
  },
367
367
  },
368
- tags: ["autodocs"],
369
368
  } satisfies Meta;
370
369
 
371
370
  export default meta;
@@ -57,7 +57,6 @@ function ThemeToggle() {
57
57
  },
58
58
  },
59
59
  },
60
- tags: ["autodocs"],
61
60
  };
62
61
 
63
62
  export default meta;
@@ -272,7 +272,7 @@ function TabsList({
272
272
  <TabsPrimitive.List
273
273
  data-slot="tabs-list"
274
274
  className={cn(
275
- "bg-muted text-muted-foreground inline-flex h-9 w-fit items-center justify-center rounded-lg p-[3px]",
275
+ "bg-card text-muted-foreground inline-flex h-9 w-fit items-center justify-center rounded-lg p-[3px]",
276
276
  className,
277
277
  )}
278
278
  {...props}
@@ -18,7 +18,7 @@ import { type VariantProps } from "class-variance-authority";
18
18
  * Combines Button variant props with DropdownMenu positioning props to create a complete
19
19
  * theme switching interface. All props are optional with sensible defaults for immediate usage.
20
20
  */
21
-
21
+ // eslint-disable-next-line unused-imports/no-unused-vars
22
22
  type ThemeToggleDocsProps = {
23
23
  /**
24
24
  * Visual style variant for the toggle button (inherited from Button component)
@@ -428,6 +428,4 @@ function ThemeToggle({
428
428
  );
429
429
  }
430
430
 
431
- ThemeToggle.displayName = "ThemeToggle";
432
-
433
431
  export { ThemeToggle };
@@ -1,3 +1,7 @@
1
+ "use client";
2
+
3
+ import { useTheme } from "../../hooks/use-theme";
4
+
1
5
  /**
2
6
  * Props for Theme (Documentation only - NOT used in component implementation)
3
7
  *
@@ -201,6 +205,7 @@ type ThemeDocsProps = Record<string, never>;
201
205
  * @since 1.0.0
202
206
  */
203
207
  export function Theme() {
208
+ useTheme();
204
209
  return (
205
210
  <script
206
211
  dangerouslySetInnerHTML={{
@@ -239,4 +244,4 @@ export function Theme() {
239
244
  }}
240
245
  />
241
246
  );
242
- }
247
+ }