@adamosuiteservices/ui 1.7.12 → 1.8.13

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 (307) hide show
  1. package/dist/accordion-rounded.cjs +24 -2
  2. package/dist/accordion-rounded.js +46 -8
  3. package/dist/accordion.cjs +20 -1
  4. package/dist/accordion.js +29 -5
  5. package/dist/alert.cjs +26 -1
  6. package/dist/alert.js +33 -8
  7. package/dist/avatar.cjs +7 -1
  8. package/dist/avatar.js +8 -2
  9. package/dist/badge.cjs +83 -1
  10. package/dist/badge.js +106 -24
  11. package/dist/breadcrumb.cjs +8 -1
  12. package/dist/breadcrumb.js +11 -4
  13. package/dist/button-B7ZP4LZN.js +127 -0
  14. package/dist/button-D-qFRXiM.cjs +70 -0
  15. package/dist/button-group.cjs +25 -1
  16. package/dist/button-group.js +33 -9
  17. package/dist/button.cjs +1 -1
  18. package/dist/button.js +1 -1
  19. package/dist/calendar.cjs +74 -1
  20. package/dist/calendar.js +114 -35
  21. package/dist/card.cjs +35 -1
  22. package/dist/card.js +45 -11
  23. package/dist/{checkbox-YWAnswaW.cjs → checkbox-CdnZ8VFJ.cjs} +21 -1
  24. package/dist/{checkbox-Dr487kAg.js → checkbox-DhBcmKze.js} +34 -4
  25. package/dist/checkbox.cjs +1 -1
  26. package/dist/checkbox.js +1 -1
  27. package/dist/combobox.cjs +36 -2
  28. package/dist/combobox.js +302 -253
  29. package/dist/components/icons/account-balance-icon.d.ts +3 -0
  30. package/dist/components/icons/account-icon.d.ts +3 -0
  31. package/dist/components/icons/add-circle-icon.d.ts +3 -0
  32. package/dist/components/icons/alarm-icon.d.ts +3 -0
  33. package/dist/components/icons/archive-icon.d.ts +3 -0
  34. package/dist/components/icons/arrow-back-icon.d.ts +3 -0
  35. package/dist/components/icons/arrow-circle-up-icon.d.ts +3 -0
  36. package/dist/components/icons/arrow-forward-icon.d.ts +3 -0
  37. package/dist/components/icons/arrow-outward-icon.d.ts +3 -0
  38. package/dist/components/icons/article-icon.d.ts +3 -0
  39. package/dist/components/icons/attach-file-icon.d.ts +3 -0
  40. package/dist/components/icons/autorenew-icon.d.ts +3 -0
  41. package/dist/components/icons/bookmark-icon.d.ts +3 -0
  42. package/dist/components/icons/calculate-icon.d.ts +3 -0
  43. package/dist/components/icons/calendar-today-icon.d.ts +3 -0
  44. package/dist/components/icons/call-split-icon.d.ts +3 -0
  45. package/dist/components/icons/cancel-filled-icon.d.ts +3 -0
  46. package/dist/components/icons/cancel-icon.d.ts +3 -0
  47. package/dist/components/icons/check-circle-icon.d.ts +3 -0
  48. package/dist/components/icons/check-icon.d.ts +3 -0
  49. package/dist/components/icons/chevron-back-icon.d.ts +3 -0
  50. package/dist/components/icons/chevron-down-icon.d.ts +3 -0
  51. package/dist/components/icons/chevron-forward-icon.d.ts +3 -0
  52. package/dist/components/icons/chevron-up-icon.d.ts +3 -0
  53. package/dist/components/icons/clarify-icon.d.ts +3 -0
  54. package/dist/components/icons/clock-icon.d.ts +3 -0
  55. package/dist/components/icons/close-icon.d.ts +3 -0
  56. package/dist/components/icons/confirmation-number-icon.d.ts +3 -0
  57. package/dist/components/icons/contacts-icon.d.ts +3 -0
  58. package/dist/components/icons/contract-delete-icon.d.ts +3 -0
  59. package/dist/components/icons/copy-icon.d.ts +3 -0
  60. package/dist/components/icons/do-not-touch-icon.d.ts +3 -0
  61. package/dist/components/icons/download-icon.d.ts +3 -0
  62. package/dist/components/icons/dragger-icon.d.ts +3 -0
  63. package/dist/components/icons/edit-icon.d.ts +3 -0
  64. package/dist/components/icons/edit-square-icon.d.ts +3 -0
  65. package/dist/components/icons/exclamation-icon.d.ts +3 -0
  66. package/dist/components/icons/expand-circle-right-icon.d.ts +3 -0
  67. package/dist/components/icons/feature-search-icon.d.ts +3 -0
  68. package/dist/components/icons/filter-icon.d.ts +3 -0
  69. package/dist/components/icons/folder-icon.d.ts +3 -0
  70. package/dist/components/icons/folder-open-icon.d.ts +3 -0
  71. package/dist/components/icons/format-list-bulleted-icon.d.ts +3 -0
  72. package/dist/components/icons/hamburger-menu-icon.d.ts +3 -0
  73. package/dist/components/icons/help-icon.d.ts +3 -0
  74. package/dist/components/icons/hide-pass-icon.d.ts +3 -0
  75. package/dist/components/icons/home-icon.d.ts +3 -0
  76. package/dist/components/icons/id-card-icon.d.ts +3 -0
  77. package/dist/components/icons/index.d.ts +88 -0
  78. package/dist/components/icons/info-icon.d.ts +3 -0
  79. package/dist/components/icons/kid-star-icon.d.ts +3 -0
  80. package/dist/components/icons/language-icon.d.ts +3 -0
  81. package/dist/components/icons/last-page-icon.d.ts +3 -0
  82. package/dist/components/icons/layers-icon.d.ts +3 -0
  83. package/dist/components/icons/location-icon.d.ts +3 -0
  84. package/dist/components/icons/mail-icon.d.ts +3 -0
  85. package/dist/components/icons/manage-search-icon.d.ts +3 -0
  86. package/dist/components/icons/menu-icon.d.ts +3 -0
  87. package/dist/components/icons/message-icon.d.ts +3 -0
  88. package/dist/components/icons/metrics-icon.d.ts +3 -0
  89. package/dist/components/icons/mic-icon.d.ts +3 -0
  90. package/dist/components/icons/minus-icon.d.ts +3 -0
  91. package/dist/components/icons/mode-comment-icon.d.ts +3 -0
  92. package/dist/components/icons/money-icon.d.ts +3 -0
  93. package/dist/components/icons/monitoring-icon.d.ts +3 -0
  94. package/dist/components/icons/more-icon.d.ts +3 -0
  95. package/dist/components/icons/notifications-icon.d.ts +3 -0
  96. package/dist/components/icons/open-in-new-icon.d.ts +3 -0
  97. package/dist/components/icons/palette-icon.d.ts +3 -0
  98. package/dist/components/icons/password-icon.d.ts +3 -0
  99. package/dist/components/icons/pending-icon.d.ts +3 -0
  100. package/dist/components/icons/person-add-icon.d.ts +3 -0
  101. package/dist/components/icons/person-search-icon.d.ts +3 -0
  102. package/dist/components/icons/photo-icon.d.ts +3 -0
  103. package/dist/components/icons/plus-icon.d.ts +3 -0
  104. package/dist/components/icons/policy-icon.d.ts +3 -0
  105. package/dist/components/icons/publish-icon.d.ts +3 -0
  106. package/dist/components/icons/ready-icon.d.ts +3 -0
  107. package/dist/components/icons/receipt-icon.d.ts +3 -0
  108. package/dist/components/icons/receive-icon.d.ts +3 -0
  109. package/dist/components/icons/refresh-icon.d.ts +3 -0
  110. package/dist/components/icons/search-icon.d.ts +3 -0
  111. package/dist/components/icons/see-icon.d.ts +3 -0
  112. package/dist/components/icons/send-icon.d.ts +3 -0
  113. package/dist/components/icons/settings-icon.d.ts +3 -0
  114. package/dist/components/icons/shield-icon.d.ts +3 -0
  115. package/dist/components/icons/swap-horiz-icon.d.ts +3 -0
  116. package/dist/components/icons/tag-icon.d.ts +3 -0
  117. package/dist/components/icons/trash-icon.d.ts +3 -0
  118. package/dist/components/layout/toaster/toaster.d.ts +1 -1
  119. package/dist/components/layout/toaster/toaster.stories.d.ts +1 -1
  120. package/dist/components/ui/accordion/accordion.d.ts +1 -1
  121. package/dist/components/ui/accordion/accordion.stories.d.ts +1 -1
  122. package/dist/components/ui/accordion-rounded/accordion-rounded.d.ts +1 -1
  123. package/dist/components/ui/accordion-rounded/accordion-rounded.stories.d.ts +1 -1
  124. package/dist/components/ui/alert/alert.stories.d.ts +1 -1
  125. package/dist/components/ui/avatar/avatar.d.ts +1 -1
  126. package/dist/components/ui/avatar/avatar.stories.d.ts +1 -1
  127. package/dist/components/ui/badge/badge.stories.d.ts +1 -1
  128. package/dist/components/ui/breadcrumb/breadcrumb.stories.d.ts +1 -1
  129. package/dist/components/ui/button/button.stories.d.ts +1 -1
  130. package/dist/components/ui/button-group/button-group.d.ts +1 -1
  131. package/dist/components/ui/button-group/button-group.stories.d.ts +1 -1
  132. package/dist/components/ui/calendar/calendar.d.ts +1 -1
  133. package/dist/components/ui/calendar/calendar.stories.d.ts +1 -1
  134. package/dist/components/ui/card/card.stories.d.ts +1 -1
  135. package/dist/components/ui/checkbox/checkbox.d.ts +1 -1
  136. package/dist/components/ui/checkbox/checkbox.stories.d.ts +1 -1
  137. package/dist/components/ui/collapsible/collapsible.stories.d.ts +1 -1
  138. package/dist/components/ui/combobox/combobox.stories.d.ts +1 -1
  139. package/dist/components/ui/command/command.d.ts +1 -1
  140. package/dist/components/ui/context-menu/context-menu.d.ts +1 -1
  141. package/dist/components/ui/context-menu/context-menu.stories.d.ts +1 -1
  142. package/dist/components/ui/dialog/dialog.d.ts +1 -1
  143. package/dist/components/ui/dialog/dialog.stories.d.ts +1 -1
  144. package/dist/components/ui/dropdown-menu/dropdown-menu.d.ts +1 -1
  145. package/dist/components/ui/dropdown-menu/dropdown-menu.stories.d.ts +1 -1
  146. package/dist/components/ui/field/field.d.ts +1 -1
  147. package/dist/components/ui/field/field.stories.d.ts +1 -1
  148. package/dist/components/ui/hover-card/hover-card.d.ts +1 -1
  149. package/dist/components/ui/hover-card/hover-card.stories.d.ts +1 -1
  150. package/dist/components/ui/input/input.stories.d.ts +1 -1
  151. package/dist/components/ui/input-group/Input-group.stories.d.ts +1 -1
  152. package/dist/components/ui/input-group/input-group.d.ts +1 -1
  153. package/dist/components/ui/kbd/kbd.stories.d.ts +1 -1
  154. package/dist/components/ui/label/label.d.ts +1 -1
  155. package/dist/components/ui/label/label.stories.d.ts +1 -1
  156. package/dist/components/ui/pagination/pagination.stories.d.ts +1 -1
  157. package/dist/components/ui/popover/popover.d.ts +1 -1
  158. package/dist/components/ui/popover/popover.stories.d.ts +1 -1
  159. package/dist/components/ui/progress/progress.d.ts +1 -1
  160. package/dist/components/ui/progress/progress.stories.d.ts +1 -1
  161. package/dist/components/ui/radio-group/radio-group.d.ts +1 -1
  162. package/dist/components/ui/radio-group/radio-group.stories.d.ts +1 -1
  163. package/dist/components/ui/scroll-area/scroll-area.d.ts +1 -1
  164. package/dist/components/ui/scroll-area/scroll-area.stories.d.ts +1 -1
  165. package/dist/components/ui/select/select.d.ts +1 -1
  166. package/dist/components/ui/select/select.stories.d.ts +1 -1
  167. package/dist/components/ui/separator/separator.d.ts +1 -1
  168. package/dist/components/ui/separator/separator.stories.d.ts +1 -1
  169. package/dist/components/ui/sheet/sheet.d.ts +1 -1
  170. package/dist/components/ui/sheet/sheet.stories.d.ts +1 -1
  171. package/dist/components/ui/skeleton/skeleton.stories.d.ts +1 -1
  172. package/dist/components/ui/slider/slider.d.ts +1 -1
  173. package/dist/components/ui/slider/slider.stories.d.ts +1 -1
  174. package/dist/components/ui/spinner/spinner.stories.d.ts +1 -1
  175. package/dist/components/ui/switch/switch.d.ts +1 -1
  176. package/dist/components/ui/switch/switch.stories.d.ts +1 -1
  177. package/dist/components/ui/tabs/tabs.d.ts +1 -1
  178. package/dist/components/ui/tabs/tabs.stories.d.ts +1 -1
  179. package/dist/components/ui/tabs-underline/tabs-underline.d.ts +1 -1
  180. package/dist/components/ui/tabs-underline/tabs-underline.stories.d.ts +1 -1
  181. package/dist/components/ui/textarea/textarea.stories.d.ts +1 -1
  182. package/dist/components/ui/toggle/toggle.d.ts +1 -1
  183. package/dist/components/ui/toggle/toggle.stories.d.ts +1 -1
  184. package/dist/components/ui/tooltip/tooltip.d.ts +1 -1
  185. package/dist/components/ui/tooltip/tooltip.stories.d.ts +1 -1
  186. package/dist/context-menu.cjs +79 -1
  187. package/dist/context-menu.js +101 -11
  188. package/dist/custom-layered-styles.css +1 -1
  189. package/dist/dialog.cjs +30 -1
  190. package/dist/dialog.js +35 -6
  191. package/dist/dropdown-menu.cjs +79 -1
  192. package/dist/dropdown-menu.js +101 -11
  193. package/dist/field.cjs +66 -1
  194. package/dist/field.js +91 -26
  195. package/dist/hover-card.cjs +15 -1
  196. package/dist/hover-card.js +15 -1
  197. package/dist/icons.cjs +1 -0
  198. package/dist/icons.js +1507 -0
  199. package/dist/input-BQZUpTEY.js +42 -0
  200. package/dist/input-DSmxdfq5.cjs +21 -0
  201. package/dist/input-group.cjs +76 -1
  202. package/dist/input-group.js +99 -24
  203. package/dist/input.cjs +1 -1
  204. package/dist/input.js +1 -1
  205. package/dist/kbd.cjs +10 -1
  206. package/dist/kbd.js +11 -2
  207. package/dist/{label-CmwGvhy1.js → label-BJ8Yf6Ft.js} +7 -1
  208. package/dist/{label-BjXORCBM.cjs → label-CNGQhi5L.cjs} +7 -1
  209. package/dist/label.cjs +1 -1
  210. package/dist/label.js +1 -1
  211. package/dist/pagination.cjs +13 -1
  212. package/dist/pagination.js +30 -6
  213. package/dist/{popover-FCKBtFo-.cjs → popover-CYbik-H4.cjs} +15 -1
  214. package/dist/{popover-3rIoNCXs.js → popover-DAwH8jUh.js} +15 -1
  215. package/dist/popover.cjs +1 -1
  216. package/dist/popover.js +1 -1
  217. package/dist/radio-group.cjs +14 -1
  218. package/dist/radio-group.js +20 -2
  219. package/dist/select.cjs +68 -1
  220. package/dist/select.js +83 -10
  221. package/dist/{separator-BaZqZZ9R.cjs → separator-Brpax0EI.cjs} +7 -1
  222. package/dist/{separator-DR7lQjv9.js → separator-DVypR3Qf.js} +7 -1
  223. package/dist/separator.cjs +1 -1
  224. package/dist/separator.js +1 -1
  225. package/dist/sheet-CGahUP7F.cjs +41 -0
  226. package/dist/sheet-Q3dBOQG-.js +174 -0
  227. package/dist/sheet.cjs +1 -1
  228. package/dist/sheet.js +1 -1
  229. package/dist/sidebar.cjs +20 -2
  230. package/dist/sidebar.js +58 -26
  231. package/dist/skeleton.cjs +1 -1
  232. package/dist/skeleton.js +1 -1
  233. package/dist/slider.cjs +27 -1
  234. package/dist/slider.js +30 -4
  235. package/dist/space.css +1 -1
  236. package/dist/styles.css +1 -1
  237. package/dist/switch.cjs +18 -1
  238. package/dist/switch.js +19 -2
  239. package/dist/table.cjs +20 -1
  240. package/dist/table.js +26 -7
  241. package/dist/tabs-underline.cjs +21 -1
  242. package/dist/tabs-underline.js +23 -3
  243. package/dist/tabs.cjs +22 -1
  244. package/dist/tabs.js +24 -3
  245. package/dist/textarea-CG7iQcb3.cjs +14 -0
  246. package/dist/textarea-CUPWKl-S.js +32 -0
  247. package/dist/textarea.cjs +1 -1
  248. package/dist/textarea.js +1 -1
  249. package/dist/toaster.cjs +4 -1
  250. package/dist/toaster.js +9 -6
  251. package/dist/toggle.cjs +17 -1
  252. package/dist/toggle.js +25 -9
  253. package/dist/tooltip.cjs +16 -1
  254. package/dist/tooltip.js +22 -2
  255. package/dist/typography.cjs +1 -1
  256. package/dist/typography.js +6 -6
  257. package/docs/AI-GUIDE.md +321 -321
  258. package/docs/components/layout/sidebar.md +404 -404
  259. package/docs/components/layout/toaster.md +436 -436
  260. package/docs/components/ui/accordion-rounded.md +583 -583
  261. package/docs/components/ui/accordion.md +267 -267
  262. package/docs/components/ui/alert.md +671 -671
  263. package/docs/components/ui/avatar.md +588 -588
  264. package/docs/components/ui/badge.md +1024 -1024
  265. package/docs/components/ui/button-group.md +1002 -1002
  266. package/docs/components/ui/button.md +1078 -1078
  267. package/docs/components/ui/calendar.md +1159 -1159
  268. package/docs/components/ui/card.md +1265 -1265
  269. package/docs/components/ui/checkbox.md +292 -292
  270. package/docs/components/ui/collapsible.md +320 -320
  271. package/docs/components/ui/command.md +454 -454
  272. package/docs/components/ui/context-menu.md +540 -540
  273. package/docs/components/ui/dialog.md +628 -628
  274. package/docs/components/ui/dropdown-menu.md +731 -731
  275. package/docs/components/ui/field.md +706 -706
  276. package/docs/components/ui/hover-card.md +446 -446
  277. package/docs/components/ui/input-group.md +509 -509
  278. package/docs/components/ui/input.md +362 -362
  279. package/docs/components/ui/kbd.md +434 -434
  280. package/docs/components/ui/label.md +359 -359
  281. package/docs/components/ui/pagination.md +650 -650
  282. package/docs/components/ui/popover.md +536 -536
  283. package/docs/components/ui/progress.md +182 -182
  284. package/docs/components/ui/radio-group.md +311 -311
  285. package/docs/components/ui/select.md +352 -352
  286. package/docs/components/ui/separator.md +214 -214
  287. package/docs/components/ui/sheet.md +142 -142
  288. package/docs/components/ui/skeleton.md +140 -140
  289. package/docs/components/ui/slider.md +341 -341
  290. package/docs/components/ui/spinner.md +170 -170
  291. package/docs/components/ui/switch.md +402 -402
  292. package/docs/components/ui/table.md +183 -183
  293. package/docs/components/ui/tabs-underline.md +106 -106
  294. package/docs/components/ui/tabs.md +122 -122
  295. package/docs/components/ui/textarea.md +243 -243
  296. package/docs/components/ui/toggle.md +243 -243
  297. package/docs/components/ui/tooltip.md +320 -320
  298. package/docs/components/ui/typography.md +191 -191
  299. package/package.json +7 -1
  300. package/dist/button-2GdKenQI.js +0 -58
  301. package/dist/button-DEQVHMrX.cjs +0 -1
  302. package/dist/input-BF73maXg.cjs +0 -1
  303. package/dist/input-C04hsVXE.js +0 -22
  304. package/dist/sheet-B-9YHdR5.js +0 -128
  305. package/dist/sheet-CU-sFSaJ.cjs +0 -1
  306. package/dist/textarea-3ZdbFRDN.cjs +0 -1
  307. package/dist/textarea-BZbcAAAu.js +0 -19
@@ -1,170 +1,170 @@
1
- # Spinner
2
-
3
- Indicador de carga animado basado en Loader2 icon de Lucide. Icono giratorio para estados de loading.
4
-
5
- ## Descripción
6
-
7
- El componente `Spinner` muestra un indicador de carga animado.
8
-
9
- ## Importación
10
-
11
- ```typescript
12
- import { Spinner } from "@adamosuiteservices/ui/spinner";
13
- ```
14
-
15
- ## Anatomía
16
-
17
- ```tsx
18
- <Spinner />
19
- ```
20
-
21
- **Componentes**: 1 (Spinner)
22
-
23
- ## Props
24
-
25
- | Prop | Tipo | Descripción |
26
- | ----------- | -------- | ------------------------------ |
27
- | `className` | `string` | Clases CSS para tamaño y color |
28
-
29
- **Nota**: Acepta todas las props de `<svg>`
30
-
31
- ## Patrones de Uso
32
-
33
- ### Básico
34
-
35
- ```tsx
36
- <Spinner />
37
- ```
38
-
39
- ### Tamaños
40
-
41
- ```tsx
42
- <Spinner className="size-3" />
43
- <Spinner className="size-4" /> {/* Default */}
44
- <Spinner className="size-6" />
45
- <Spinner className="size-8" />
46
- ```
47
-
48
- ### Colores
49
-
50
- ```tsx
51
- <Spinner className="text-primary" />
52
- <Spinner className="text-destructive" />
53
- <Spinner className="text-blue-500" />
54
- ```
55
-
56
- ### En Botones
57
-
58
- ```tsx
59
- import { Button } from "@adamosuiteservices/ui/button";
60
-
61
- <Button disabled>
62
- <Spinner />
63
- Loading...
64
- </Button>
65
-
66
- <Button variant="outline" disabled>
67
- <Spinner />
68
- Please wait
69
- </Button>
70
- ```
71
-
72
- ### Con Estado
73
-
74
- ```tsx
75
- import { useState } from "react";
76
- import { Button } from "@adamosuiteservices/ui/button";
77
-
78
- function App() {
79
- const [isLoading, setIsLoading] = useState(false);
80
-
81
- const handleClick = () => {
82
- setIsLoading(true);
83
- setTimeout(() => setIsLoading(false), 2000);
84
- };
85
-
86
- return (
87
- <Button onClick={handleClick} disabled={isLoading}>
88
- {isLoading ? (
89
- <>
90
- <Spinner />
91
- Submitting...
92
- </>
93
- ) : (
94
- "Submit Form"
95
- )}
96
- </Button>
97
- );
98
- }
99
- ```
100
-
101
- ### En Badges
102
-
103
- ```tsx
104
- import { Badge } from "@adamosuiteservices/ui/badge";
105
-
106
- <Badge>
107
- <Spinner />
108
- Syncing
109
- </Badge>;
110
- ```
111
-
112
- ### En Cards
113
-
114
- ```tsx
115
- import { Card, CardContent } from "@adamosuiteservices/ui/card";
116
-
117
- <Card>
118
- <CardContent className="flex items-center space-x-3 p-6">
119
- <Spinner className="size-5" />
120
- <span>Processing your payment...</span>
121
- </CardContent>
122
- </Card>;
123
- ```
124
-
125
- ### Inline
126
-
127
- ```tsx
128
- <p>
129
- Loading data <Spinner className="inline size-4" />
130
- </p>
131
- ```
132
-
133
- ## Casos de Uso
134
-
135
- **Button loading**: Estados de carga en botones
136
- **Badge status**: Indicador de sincronización/procesamiento
137
- **Inline loading**: Texto con loading inline
138
- **Cards**: Contenido de cards en proceso
139
- **Global loading**: Indicadores globales de app
140
-
141
- ## Estilos Base
142
-
143
- - **Size**: `size-4` default
144
- - **Animation**: `animate-spin`
145
- - **Role**: `role="status"`
146
- - **ARIA**: `aria-label="Loading"`
147
-
148
- ## Accesibilidad
149
-
150
- - ✅ **Role**: `role="status"`
151
- - ✅ **ARIA**: `aria-label="Loading"` para screen readers
152
- - ✅ **Screen readers**: Anuncia estado de carga
153
-
154
- ## Notas de Implementación
155
-
156
- - **Lucide React**: Usa `Loader2Icon` de lucide-react
157
- - **Spin animation**: Tailwind `animate-spin`
158
- - **SVG**: Componente SVG nativo
159
- - **Customizable**: Tamaño y color via className
160
-
161
- ## Troubleshooting
162
-
163
- **No gira**: Verifica `animate-spin` aplicado
164
- **Muy pequeño/grande**: Ajusta `size-*` en className
165
- **Color incorrecto**: Usa `text-*` para cambiar color
166
- **No se ve en button**: Asegúrate de espaciado con gap
167
-
168
- ## Referencias
169
-
170
- - **Lucide Icons**: <https://lucide.dev/icons/loader-2>
1
+ # Spinner
2
+
3
+ Indicador de carga animado basado en Loader2 icon de Lucide. Icono giratorio para estados de loading.
4
+
5
+ ## Descripción
6
+
7
+ El componente `Spinner` muestra un indicador de carga animado.
8
+
9
+ ## Importación
10
+
11
+ ```typescript
12
+ import { Spinner } from "@adamosuiteservices/ui/spinner";
13
+ ```
14
+
15
+ ## Anatomía
16
+
17
+ ```tsx
18
+ <Spinner />
19
+ ```
20
+
21
+ **Componentes**: 1 (Spinner)
22
+
23
+ ## Props
24
+
25
+ | Prop | Tipo | Descripción |
26
+ | ----------- | -------- | ------------------------------ |
27
+ | `className` | `string` | Clases CSS para tamaño y color |
28
+
29
+ **Nota**: Acepta todas las props de `<svg>`
30
+
31
+ ## Patrones de Uso
32
+
33
+ ### Básico
34
+
35
+ ```tsx
36
+ <Spinner />
37
+ ```
38
+
39
+ ### Tamaños
40
+
41
+ ```tsx
42
+ <Spinner className="size-3" />
43
+ <Spinner className="size-4" /> {/* Default */}
44
+ <Spinner className="size-6" />
45
+ <Spinner className="size-8" />
46
+ ```
47
+
48
+ ### Colores
49
+
50
+ ```tsx
51
+ <Spinner className="text-primary" />
52
+ <Spinner className="text-destructive" />
53
+ <Spinner className="text-blue-500" />
54
+ ```
55
+
56
+ ### En Botones
57
+
58
+ ```tsx
59
+ import { Button } from "@adamosuiteservices/ui/button";
60
+
61
+ <Button disabled>
62
+ <Spinner />
63
+ Loading...
64
+ </Button>
65
+
66
+ <Button variant="outline" disabled>
67
+ <Spinner />
68
+ Please wait
69
+ </Button>
70
+ ```
71
+
72
+ ### Con Estado
73
+
74
+ ```tsx
75
+ import { useState } from "react";
76
+ import { Button } from "@adamosuiteservices/ui/button";
77
+
78
+ function App() {
79
+ const [isLoading, setIsLoading] = useState(false);
80
+
81
+ const handleClick = () => {
82
+ setIsLoading(true);
83
+ setTimeout(() => setIsLoading(false), 2000);
84
+ };
85
+
86
+ return (
87
+ <Button onClick={handleClick} disabled={isLoading}>
88
+ {isLoading ? (
89
+ <>
90
+ <Spinner />
91
+ Submitting...
92
+ </>
93
+ ) : (
94
+ "Submit Form"
95
+ )}
96
+ </Button>
97
+ );
98
+ }
99
+ ```
100
+
101
+ ### En Badges
102
+
103
+ ```tsx
104
+ import { Badge } from "@adamosuiteservices/ui/badge";
105
+
106
+ <Badge>
107
+ <Spinner />
108
+ Syncing
109
+ </Badge>;
110
+ ```
111
+
112
+ ### En Cards
113
+
114
+ ```tsx
115
+ import { Card, CardContent } from "@adamosuiteservices/ui/card";
116
+
117
+ <Card>
118
+ <CardContent className="flex items-center space-x-3 p-6">
119
+ <Spinner className="size-5" />
120
+ <span>Processing your payment...</span>
121
+ </CardContent>
122
+ </Card>;
123
+ ```
124
+
125
+ ### Inline
126
+
127
+ ```tsx
128
+ <p>
129
+ Loading data <Spinner className="inline size-4" />
130
+ </p>
131
+ ```
132
+
133
+ ## Casos de Uso
134
+
135
+ **Button loading**: Estados de carga en botones
136
+ **Badge status**: Indicador de sincronización/procesamiento
137
+ **Inline loading**: Texto con loading inline
138
+ **Cards**: Contenido de cards en proceso
139
+ **Global loading**: Indicadores globales de app
140
+
141
+ ## Estilos Base
142
+
143
+ - **Size**: `size-4` default
144
+ - **Animation**: `animate-spin`
145
+ - **Role**: `role="status"`
146
+ - **ARIA**: `aria-label="Loading"`
147
+
148
+ ## Accesibilidad
149
+
150
+ - ✅ **Role**: `role="status"`
151
+ - ✅ **ARIA**: `aria-label="Loading"` para screen readers
152
+ - ✅ **Screen readers**: Anuncia estado de carga
153
+
154
+ ## Notas de Implementación
155
+
156
+ - **Lucide React**: Usa `Loader2Icon` de lucide-react
157
+ - **Spin animation**: Tailwind `animate-spin`
158
+ - **SVG**: Componente SVG nativo
159
+ - **Customizable**: Tamaño y color via className
160
+
161
+ ## Troubleshooting
162
+
163
+ **No gira**: Verifica `animate-spin` aplicado
164
+ **Muy pequeño/grande**: Ajusta `size-*` en className
165
+ **Color incorrecto**: Usa `text-*` para cambiar color
166
+ **No se ve en button**: Asegúrate de espaciado con gap
167
+
168
+ ## Referencias
169
+
170
+ - **Lucide Icons**: <https://lucide.dev/icons/loader-2>