@adamosuiteservices/ui 1.7.13 → 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 +62 -22
  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,320 +1,320 @@
1
- # Tooltip
2
-
3
- Mensaje flotante informativo en hover/focus. Basado en Radix UI con arrow.
4
-
5
- ## Descripción
6
-
7
- El componente `Tooltip` muestra información adicional al hacer hover sobre un elemento.
8
-
9
- ## Importación
10
-
11
- ```typescript
12
- import {
13
- Tooltip,
14
- TooltipContent,
15
- TooltipProvider,
16
- TooltipTrigger,
17
- } from "@adamosuiteservices/ui/tooltip";
18
- ```
19
-
20
- ## Anatomía
21
-
22
- ```tsx
23
- <Tooltip>
24
- <TooltipTrigger>Hover me</TooltipTrigger>
25
- <TooltipContent>
26
- <p>Tooltip content</p>
27
- </TooltipContent>
28
- </Tooltip>
29
- ```
30
-
31
- **Componentes**: 4 (TooltipProvider, Tooltip, TooltipTrigger, TooltipContent)
32
-
33
- ## Props
34
-
35
- ### Tooltip (Root)
36
-
37
- | Prop | Tipo | Descripción |
38
- | --------------- | ------------------------- | --------------------------------------- |
39
- | `open` | `boolean` | Estado controlado |
40
- | `defaultOpen` | `boolean` | Estado inicial |
41
- | `onOpenChange` | `(open: boolean) => void` | Callback al cambiar |
42
- | `delayDuration` | `number` | Delay antes de mostrar (ms, default: 0) |
43
-
44
- ### TooltipTrigger
45
-
46
- | Prop | Tipo | Descripción |
47
- | --------- | --------- | ---------------------------- |
48
- | `asChild` | `boolean` | Renderiza como child element |
49
-
50
- ### TooltipContent
51
-
52
- | Prop | Tipo | Descripción |
53
- | ------------ | ---------------------------------------- | ------------------------------------- |
54
- | `side` | `"top" \| "right" \| "bottom" \| "left"` | Posición del tooltip |
55
- | `sideOffset` | `number` | Offset desde trigger (px, default: 0) |
56
- | `align` | `"start" \| "center" \| "end"` | Alineación |
57
- | `className` | `string` | Clases CSS adicionales |
58
-
59
- ### TooltipProvider
60
-
61
- | Prop | Tipo | Descripción |
62
- | --------------- | -------- | ----------------------------- |
63
- | `delayDuration` | `number` | Delay global (ms, default: 0) |
64
-
65
- ## Patrones de Uso
66
-
67
- ### Básico
68
-
69
- ```tsx
70
- import {
71
- Tooltip,
72
- TooltipContent,
73
- TooltipTrigger,
74
- } from "@adamosuiteservices/ui/tooltip";
75
- import { Button } from "@adamosuiteservices/ui/button";
76
-
77
- <Tooltip>
78
- <TooltipTrigger asChild>
79
- <Button variant="outline">Hover</Button>
80
- </TooltipTrigger>
81
- <TooltipContent>
82
- <p>Add to library</p>
83
- </TooltipContent>
84
- </Tooltip>;
85
- ```
86
-
87
- ### Con Icono
88
-
89
- ```tsx
90
- import { InfoIcon } from "lucide-react";
91
-
92
- <Tooltip>
93
- <TooltipTrigger asChild>
94
- <Button variant="outline" size="icon">
95
- <InfoIcon className="h-4 w-4" />
96
- </Button>
97
- </TooltipTrigger>
98
- <TooltipContent>
99
- <p>More information</p>
100
- </TooltipContent>
101
- </Tooltip>;
102
- ```
103
-
104
- ### Posiciones
105
-
106
- ```tsx
107
- // Top (default)
108
- <Tooltip>
109
- <TooltipTrigger asChild>
110
- <Button>Top</Button>
111
- </TooltipTrigger>
112
- <TooltipContent side="top">
113
- <p>Tooltip on top</p>
114
- </TooltipContent>
115
- </Tooltip>
116
-
117
- // Right
118
- <TooltipContent side="right"><p>Tooltip on right</p></TooltipContent>
119
-
120
- // Bottom
121
- <TooltipContent side="bottom"><p>Tooltip on bottom</p></TooltipContent>
122
-
123
- // Left
124
- <TooltipContent side="left"><p>Tooltip on left</p></TooltipContent>
125
- ```
126
-
127
- ### Con Offset
128
-
129
- ```tsx
130
- <Tooltip>
131
- <TooltipTrigger asChild>
132
- <Button>With Offset</Button>
133
- </TooltipTrigger>
134
- <TooltipContent sideOffset={10}>
135
- <p>10px offset from trigger</p>
136
- </TooltipContent>
137
- </Tooltip>
138
- ```
139
-
140
- ### Con Delay
141
-
142
- ```tsx
143
- <TooltipProvider delayDuration={800}>
144
- <Tooltip>
145
- <TooltipTrigger asChild>
146
- <Button>Slow Tooltip</Button>
147
- </TooltipTrigger>
148
- <TooltipContent>
149
- <p>Appears after 800ms</p>
150
- </TooltipContent>
151
- </Tooltip>
152
- </TooltipProvider>
153
- ```
154
-
155
- ### Con Provider Global
156
-
157
- Para múltiples tooltips, usa TooltipProvider:
158
-
159
- ```tsx
160
- <TooltipProvider delayDuration={300}>
161
- <Tooltip>...</Tooltip>
162
- <Tooltip>...</Tooltip>
163
- </TooltipProvider>
164
- ```
165
-
166
- ### Action Buttons
167
-
168
- ```tsx
169
- import { CopyIcon, EditIcon, ShareIcon, TrashIcon } from "lucide-react";
170
-
171
- <div className="flex gap-2">
172
- <Tooltip>
173
- <TooltipTrigger asChild>
174
- <Button size="icon" variant="outline">
175
- <CopyIcon className="h-4 w-4" />
176
- </Button>
177
- </TooltipTrigger>
178
- <TooltipContent>
179
- <p>Copy to clipboard</p>
180
- </TooltipContent>
181
- </Tooltip>
182
-
183
- <Tooltip>
184
- <TooltipTrigger asChild>
185
- <Button size="icon" variant="outline">
186
- <EditIcon className="h-4 w-4" />
187
- </Button>
188
- </TooltipTrigger>
189
- <TooltipContent>
190
- <p>Edit document</p>
191
- </TooltipContent>
192
- </Tooltip>
193
-
194
- <Tooltip>
195
- <TooltipTrigger asChild>
196
- <Button size="icon" variant="outline">
197
- <ShareIcon className="h-4 w-4" />
198
- </Button>
199
- </TooltipTrigger>
200
- <TooltipContent>
201
- <p>Share with others</p>
202
- </TooltipContent>
203
- </Tooltip>
204
-
205
- <Tooltip>
206
- <TooltipTrigger asChild>
207
- <Button size="icon" variant="destructive">
208
- <TrashIcon className="h-4 w-4" />
209
- </Button>
210
- </TooltipTrigger>
211
- <TooltipContent>
212
- <p>Delete permanently</p>
213
- </TooltipContent>
214
- </Tooltip>
215
- </div>;
216
- ```
217
-
218
- ### Form Help Icons
219
-
220
- ```tsx
221
- import { HelpCircleIcon, InfoIcon } from "lucide-react";
222
- import { Label } from "@adamosuiteservices/ui/label";
223
- import { Input } from "@adamosuiteservices/ui/input";
224
-
225
- <div className="space-y-2">
226
- <div className="flex items-center gap-2">
227
- <Label htmlFor="username">Username</Label>
228
- <Tooltip>
229
- <TooltipTrigger asChild>
230
- <HelpCircleIcon className="h-4 w-4 text-muted-foreground cursor-help" />
231
- </TooltipTrigger>
232
- <TooltipContent>
233
- <p>
234
- Must be 3-20 characters long and contain only letters, numbers, and
235
- underscores
236
- </p>
237
- </TooltipContent>
238
- </Tooltip>
239
- </div>
240
- <Input id="username" placeholder="Enter username" />
241
- </div>;
242
- ```
243
-
244
- ### Controlled
245
-
246
- ```tsx
247
- import { useState } from "react";
248
-
249
- function App() {
250
- const [open, setOpen] = useState(false);
251
-
252
- return (
253
- <div className="flex items-center gap-4">
254
- <Tooltip open={open} onOpenChange={setOpen}>
255
- <TooltipTrigger asChild>
256
- <Button>Controlled</Button>
257
- </TooltipTrigger>
258
- <TooltipContent>
259
- <p>Controlled programmatically</p>
260
- </TooltipContent>
261
- </Tooltip>
262
-
263
- <Button size="sm" onClick={() => setOpen(true)}>
264
- Show
265
- </Button>
266
- <Button size="sm" variant="outline" onClick={() => setOpen(false)}>
267
- Hide
268
- </Button>
269
- </div>
270
- );
271
- }
272
- ```
273
-
274
- ## Casos de Uso
275
-
276
- **Icon buttons**: Descripción de acciones
277
- **Form help**: Explicar campos de formulario
278
- **Status indicators**: Detalles de estados
279
- **Truncated text**: Mostrar texto completo
280
- **Disabled elements**: Explicar por qué está deshabilitado
281
-
282
- ## Estilos Base
283
-
284
- - **Background**: `bg-neutrals-800`
285
- - **Text**: `text-white text-xs`
286
- - **Padding**: `px-3 py-1.5`
287
- - **Border radius**: `rounded-md`
288
- - **Arrow**: `size-2.5` con `bg-neutrals-800`
289
- - **Z-index**: `z-50`
290
- - **Animation**: Fade + zoom in/out
291
-
292
- ## Accesibilidad
293
-
294
- - ✅ **ARIA**: `aria-describedby` automático
295
- - ✅ **Keyboard**: Visible en focus del trigger
296
- - ✅ **Hover**: Aparece en hover
297
- - ✅ **Focus**: Aparece en focus del trigger
298
- - ✅ **Escape**: Cierra con Escape key
299
-
300
- ## Notas de Implementación
301
-
302
- - **Radix UI**: Basado en `@radix-ui/react-tooltip`
303
- - **Portal**: Content se renderiza en portal (fuera del DOM tree)
304
- - **Arrow**: Incluido automáticamente en TooltipContent
305
- - **Provider**: Tooltip individual ya incluye TooltipProvider interno
306
- - **Global Provider**: Usa TooltipProvider para delay global
307
-
308
- ## Troubleshooting
309
-
310
- **Tooltip no aparece**: Verifica que TooltipTrigger tenga `asChild` si es Button/componente
311
- **Posición incorrecta**: Usa `side` prop en TooltipContent
312
- **Delay muy largo**: Ajusta `delayDuration` en Tooltip o TooltipProvider
313
- **Z-index issues**: Tooltip usa `z-50`, puede necesitar ajuste si hay overlays
314
- **Arrow no visible**: Arrow incluido por default, verifica estilos no sobrescritos
315
- **No se cierra**: Usa Escape key o mouseleave del trigger
316
-
317
- ## Referencias
318
-
319
- - **Radix UI Tooltip**: <https://www.radix-ui.com/primitives/docs/components/tooltip>
320
- - **shadcn/ui Tooltip**: <https://ui.shadcn.com/docs/components/tooltip>
1
+ # Tooltip
2
+
3
+ Mensaje flotante informativo en hover/focus. Basado en Radix UI con arrow.
4
+
5
+ ## Descripción
6
+
7
+ El componente `Tooltip` muestra información adicional al hacer hover sobre un elemento.
8
+
9
+ ## Importación
10
+
11
+ ```typescript
12
+ import {
13
+ Tooltip,
14
+ TooltipContent,
15
+ TooltipProvider,
16
+ TooltipTrigger,
17
+ } from "@adamosuiteservices/ui/tooltip";
18
+ ```
19
+
20
+ ## Anatomía
21
+
22
+ ```tsx
23
+ <Tooltip>
24
+ <TooltipTrigger>Hover me</TooltipTrigger>
25
+ <TooltipContent>
26
+ <p>Tooltip content</p>
27
+ </TooltipContent>
28
+ </Tooltip>
29
+ ```
30
+
31
+ **Componentes**: 4 (TooltipProvider, Tooltip, TooltipTrigger, TooltipContent)
32
+
33
+ ## Props
34
+
35
+ ### Tooltip (Root)
36
+
37
+ | Prop | Tipo | Descripción |
38
+ | --------------- | ------------------------- | --------------------------------------- |
39
+ | `open` | `boolean` | Estado controlado |
40
+ | `defaultOpen` | `boolean` | Estado inicial |
41
+ | `onOpenChange` | `(open: boolean) => void` | Callback al cambiar |
42
+ | `delayDuration` | `number` | Delay antes de mostrar (ms, default: 0) |
43
+
44
+ ### TooltipTrigger
45
+
46
+ | Prop | Tipo | Descripción |
47
+ | --------- | --------- | ---------------------------- |
48
+ | `asChild` | `boolean` | Renderiza como child element |
49
+
50
+ ### TooltipContent
51
+
52
+ | Prop | Tipo | Descripción |
53
+ | ------------ | ---------------------------------------- | ------------------------------------- |
54
+ | `side` | `"top" \| "right" \| "bottom" \| "left"` | Posición del tooltip |
55
+ | `sideOffset` | `number` | Offset desde trigger (px, default: 0) |
56
+ | `align` | `"start" \| "center" \| "end"` | Alineación |
57
+ | `className` | `string` | Clases CSS adicionales |
58
+
59
+ ### TooltipProvider
60
+
61
+ | Prop | Tipo | Descripción |
62
+ | --------------- | -------- | ----------------------------- |
63
+ | `delayDuration` | `number` | Delay global (ms, default: 0) |
64
+
65
+ ## Patrones de Uso
66
+
67
+ ### Básico
68
+
69
+ ```tsx
70
+ import {
71
+ Tooltip,
72
+ TooltipContent,
73
+ TooltipTrigger,
74
+ } from "@adamosuiteservices/ui/tooltip";
75
+ import { Button } from "@adamosuiteservices/ui/button";
76
+
77
+ <Tooltip>
78
+ <TooltipTrigger asChild>
79
+ <Button variant="outline">Hover</Button>
80
+ </TooltipTrigger>
81
+ <TooltipContent>
82
+ <p>Add to library</p>
83
+ </TooltipContent>
84
+ </Tooltip>;
85
+ ```
86
+
87
+ ### Con Icono
88
+
89
+ ```tsx
90
+ import { InfoIcon } from "lucide-react";
91
+
92
+ <Tooltip>
93
+ <TooltipTrigger asChild>
94
+ <Button variant="outline" size="icon">
95
+ <InfoIcon className="h-4 w-4" />
96
+ </Button>
97
+ </TooltipTrigger>
98
+ <TooltipContent>
99
+ <p>More information</p>
100
+ </TooltipContent>
101
+ </Tooltip>;
102
+ ```
103
+
104
+ ### Posiciones
105
+
106
+ ```tsx
107
+ // Top (default)
108
+ <Tooltip>
109
+ <TooltipTrigger asChild>
110
+ <Button>Top</Button>
111
+ </TooltipTrigger>
112
+ <TooltipContent side="top">
113
+ <p>Tooltip on top</p>
114
+ </TooltipContent>
115
+ </Tooltip>
116
+
117
+ // Right
118
+ <TooltipContent side="right"><p>Tooltip on right</p></TooltipContent>
119
+
120
+ // Bottom
121
+ <TooltipContent side="bottom"><p>Tooltip on bottom</p></TooltipContent>
122
+
123
+ // Left
124
+ <TooltipContent side="left"><p>Tooltip on left</p></TooltipContent>
125
+ ```
126
+
127
+ ### Con Offset
128
+
129
+ ```tsx
130
+ <Tooltip>
131
+ <TooltipTrigger asChild>
132
+ <Button>With Offset</Button>
133
+ </TooltipTrigger>
134
+ <TooltipContent sideOffset={10}>
135
+ <p>10px offset from trigger</p>
136
+ </TooltipContent>
137
+ </Tooltip>
138
+ ```
139
+
140
+ ### Con Delay
141
+
142
+ ```tsx
143
+ <TooltipProvider delayDuration={800}>
144
+ <Tooltip>
145
+ <TooltipTrigger asChild>
146
+ <Button>Slow Tooltip</Button>
147
+ </TooltipTrigger>
148
+ <TooltipContent>
149
+ <p>Appears after 800ms</p>
150
+ </TooltipContent>
151
+ </Tooltip>
152
+ </TooltipProvider>
153
+ ```
154
+
155
+ ### Con Provider Global
156
+
157
+ Para múltiples tooltips, usa TooltipProvider:
158
+
159
+ ```tsx
160
+ <TooltipProvider delayDuration={300}>
161
+ <Tooltip>...</Tooltip>
162
+ <Tooltip>...</Tooltip>
163
+ </TooltipProvider>
164
+ ```
165
+
166
+ ### Action Buttons
167
+
168
+ ```tsx
169
+ import { CopyIcon, EditIcon, ShareIcon, TrashIcon } from "lucide-react";
170
+
171
+ <div className="flex gap-2">
172
+ <Tooltip>
173
+ <TooltipTrigger asChild>
174
+ <Button size="icon" variant="outline">
175
+ <CopyIcon className="h-4 w-4" />
176
+ </Button>
177
+ </TooltipTrigger>
178
+ <TooltipContent>
179
+ <p>Copy to clipboard</p>
180
+ </TooltipContent>
181
+ </Tooltip>
182
+
183
+ <Tooltip>
184
+ <TooltipTrigger asChild>
185
+ <Button size="icon" variant="outline">
186
+ <EditIcon className="h-4 w-4" />
187
+ </Button>
188
+ </TooltipTrigger>
189
+ <TooltipContent>
190
+ <p>Edit document</p>
191
+ </TooltipContent>
192
+ </Tooltip>
193
+
194
+ <Tooltip>
195
+ <TooltipTrigger asChild>
196
+ <Button size="icon" variant="outline">
197
+ <ShareIcon className="h-4 w-4" />
198
+ </Button>
199
+ </TooltipTrigger>
200
+ <TooltipContent>
201
+ <p>Share with others</p>
202
+ </TooltipContent>
203
+ </Tooltip>
204
+
205
+ <Tooltip>
206
+ <TooltipTrigger asChild>
207
+ <Button size="icon" variant="destructive">
208
+ <TrashIcon className="h-4 w-4" />
209
+ </Button>
210
+ </TooltipTrigger>
211
+ <TooltipContent>
212
+ <p>Delete permanently</p>
213
+ </TooltipContent>
214
+ </Tooltip>
215
+ </div>;
216
+ ```
217
+
218
+ ### Form Help Icons
219
+
220
+ ```tsx
221
+ import { HelpCircleIcon, InfoIcon } from "lucide-react";
222
+ import { Label } from "@adamosuiteservices/ui/label";
223
+ import { Input } from "@adamosuiteservices/ui/input";
224
+
225
+ <div className="space-y-2">
226
+ <div className="flex items-center gap-2">
227
+ <Label htmlFor="username">Username</Label>
228
+ <Tooltip>
229
+ <TooltipTrigger asChild>
230
+ <HelpCircleIcon className="h-4 w-4 text-muted-foreground cursor-help" />
231
+ </TooltipTrigger>
232
+ <TooltipContent>
233
+ <p>
234
+ Must be 3-20 characters long and contain only letters, numbers, and
235
+ underscores
236
+ </p>
237
+ </TooltipContent>
238
+ </Tooltip>
239
+ </div>
240
+ <Input id="username" placeholder="Enter username" />
241
+ </div>;
242
+ ```
243
+
244
+ ### Controlled
245
+
246
+ ```tsx
247
+ import { useState } from "react";
248
+
249
+ function App() {
250
+ const [open, setOpen] = useState(false);
251
+
252
+ return (
253
+ <div className="flex items-center gap-4">
254
+ <Tooltip open={open} onOpenChange={setOpen}>
255
+ <TooltipTrigger asChild>
256
+ <Button>Controlled</Button>
257
+ </TooltipTrigger>
258
+ <TooltipContent>
259
+ <p>Controlled programmatically</p>
260
+ </TooltipContent>
261
+ </Tooltip>
262
+
263
+ <Button size="sm" onClick={() => setOpen(true)}>
264
+ Show
265
+ </Button>
266
+ <Button size="sm" variant="outline" onClick={() => setOpen(false)}>
267
+ Hide
268
+ </Button>
269
+ </div>
270
+ );
271
+ }
272
+ ```
273
+
274
+ ## Casos de Uso
275
+
276
+ **Icon buttons**: Descripción de acciones
277
+ **Form help**: Explicar campos de formulario
278
+ **Status indicators**: Detalles de estados
279
+ **Truncated text**: Mostrar texto completo
280
+ **Disabled elements**: Explicar por qué está deshabilitado
281
+
282
+ ## Estilos Base
283
+
284
+ - **Background**: `bg-neutrals-800`
285
+ - **Text**: `text-white text-xs`
286
+ - **Padding**: `px-3 py-1.5`
287
+ - **Border radius**: `rounded-md`
288
+ - **Arrow**: `size-2.5` con `bg-neutrals-800`
289
+ - **Z-index**: `z-50`
290
+ - **Animation**: Fade + zoom in/out
291
+
292
+ ## Accesibilidad
293
+
294
+ - ✅ **ARIA**: `aria-describedby` automático
295
+ - ✅ **Keyboard**: Visible en focus del trigger
296
+ - ✅ **Hover**: Aparece en hover
297
+ - ✅ **Focus**: Aparece en focus del trigger
298
+ - ✅ **Escape**: Cierra con Escape key
299
+
300
+ ## Notas de Implementación
301
+
302
+ - **Radix UI**: Basado en `@radix-ui/react-tooltip`
303
+ - **Portal**: Content se renderiza en portal (fuera del DOM tree)
304
+ - **Arrow**: Incluido automáticamente en TooltipContent
305
+ - **Provider**: Tooltip individual ya incluye TooltipProvider interno
306
+ - **Global Provider**: Usa TooltipProvider para delay global
307
+
308
+ ## Troubleshooting
309
+
310
+ **Tooltip no aparece**: Verifica que TooltipTrigger tenga `asChild` si es Button/componente
311
+ **Posición incorrecta**: Usa `side` prop en TooltipContent
312
+ **Delay muy largo**: Ajusta `delayDuration` en Tooltip o TooltipProvider
313
+ **Z-index issues**: Tooltip usa `z-50`, puede necesitar ajuste si hay overlays
314
+ **Arrow no visible**: Arrow incluido por default, verifica estilos no sobrescritos
315
+ **No se cierra**: Usa Escape key o mouseleave del trigger
316
+
317
+ ## Referencias
318
+
319
+ - **Radix UI Tooltip**: <https://www.radix-ui.com/primitives/docs/components/tooltip>
320
+ - **shadcn/ui Tooltip**: <https://ui.shadcn.com/docs/components/tooltip>