@flowtomic/ui 0.1.14 → 0.2.0

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 (175) hide show
  1. package/dist/components/_reference/shadcn-ai/prompt-input.d.ts +48 -0
  2. package/dist/components/_reference/shadcn-ai/prompt-input.d.ts.map +1 -0
  3. package/dist/components/_reference/shadcn-ai/prompt-input.js +67 -0
  4. package/dist/components/atoms/actions/badge/badge.d.ts +97 -1
  5. package/dist/components/atoms/actions/badge/badge.d.ts.map +1 -1
  6. package/dist/components/atoms/actions/badge/badge.js +83 -0
  7. package/dist/components/atoms/actions/button/button.d.ts +134 -1
  8. package/dist/components/atoms/actions/button/button.d.ts.map +1 -1
  9. package/dist/components/atoms/actions/button/button.js +106 -0
  10. package/dist/components/atoms/actions/context-menu/context-menu.d.ts +79 -0
  11. package/dist/components/atoms/actions/context-menu/context-menu.d.ts.map +1 -1
  12. package/dist/components/atoms/actions/context-menu/context-menu.js +55 -0
  13. package/dist/components/atoms/actions/dropdown-menu/dropdown-menu.d.ts +51 -3
  14. package/dist/components/atoms/actions/dropdown-menu/dropdown-menu.d.ts.map +1 -1
  15. package/dist/components/atoms/actions/dropdown-menu/dropdown-menu.js +51 -3
  16. package/dist/components/atoms/animation/encrypted-text/encrypted-text.d.ts.map +1 -1
  17. package/dist/components/atoms/animation/encrypted-text/encrypted-text.js +3 -1
  18. package/dist/components/atoms/feedback/alert/alert.d.ts +77 -12
  19. package/dist/components/atoms/feedback/alert/alert.d.ts.map +1 -1
  20. package/dist/components/atoms/feedback/alert/alert.js +64 -12
  21. package/dist/components/atoms/feedback/alert-dialog/alert-dialog.d.ts +2 -2
  22. package/dist/components/atoms/feedback/dialog/dialog.d.ts +66 -8
  23. package/dist/components/atoms/feedback/dialog/dialog.d.ts.map +1 -1
  24. package/dist/components/atoms/feedback/dialog/dialog.js +66 -8
  25. package/dist/components/atoms/feedback/hover-card/hover-card.d.ts +45 -5
  26. package/dist/components/atoms/feedback/hover-card/hover-card.d.ts.map +1 -1
  27. package/dist/components/atoms/feedback/hover-card/hover-card.js +45 -5
  28. package/dist/components/atoms/feedback/inline-citation/inline-citation.d.ts +53 -2
  29. package/dist/components/atoms/feedback/inline-citation/inline-citation.d.ts.map +1 -1
  30. package/dist/components/atoms/feedback/inline-citation/inline-citation.js +53 -2
  31. package/dist/components/atoms/feedback/popover/popover.d.ts +78 -0
  32. package/dist/components/atoms/feedback/popover/popover.d.ts.map +1 -1
  33. package/dist/components/atoms/feedback/popover/popover.js +64 -0
  34. package/dist/components/atoms/feedback/sheet/sheet.d.ts +90 -0
  35. package/dist/components/atoms/feedback/sheet/sheet.d.ts.map +1 -1
  36. package/dist/components/atoms/feedback/sheet/sheet.js +78 -0
  37. package/dist/components/atoms/feedback/sonner/sonner.d.ts +66 -6
  38. package/dist/components/atoms/feedback/sonner/sonner.d.ts.map +1 -1
  39. package/dist/components/atoms/feedback/sonner/sonner.js +66 -6
  40. package/dist/components/atoms/feedback/tooltip/tooltip.d.ts +54 -4
  41. package/dist/components/atoms/feedback/tooltip/tooltip.d.ts.map +1 -1
  42. package/dist/components/atoms/feedback/tooltip/tooltip.js +63 -5
  43. package/dist/components/atoms/forms/checkbox/checkbox.d.ts +62 -4
  44. package/dist/components/atoms/forms/checkbox/checkbox.d.ts.map +1 -1
  45. package/dist/components/atoms/forms/checkbox/checkbox.js +58 -4
  46. package/dist/components/atoms/forms/field/field.d.ts +67 -0
  47. package/dist/components/atoms/forms/field/field.d.ts.map +1 -1
  48. package/dist/components/atoms/forms/field/field.js +47 -0
  49. package/dist/components/atoms/forms/form/form.d.ts +60 -0
  50. package/dist/components/atoms/forms/form/form.d.ts.map +1 -1
  51. package/dist/components/atoms/forms/form/form.js +3 -0
  52. package/dist/components/atoms/forms/input/input.d.ts +100 -1
  53. package/dist/components/atoms/forms/input/input.d.ts.map +1 -1
  54. package/dist/components/atoms/forms/input/input.js +82 -0
  55. package/dist/components/atoms/forms/input-otp/input-otp.d.ts +62 -0
  56. package/dist/components/atoms/forms/input-otp/input-otp.d.ts.map +1 -1
  57. package/dist/components/atoms/forms/input-otp/input-otp.js +50 -0
  58. package/dist/components/atoms/forms/label/label.d.ts +54 -0
  59. package/dist/components/atoms/forms/label/label.d.ts.map +1 -1
  60. package/dist/components/atoms/forms/label/label.js +50 -0
  61. package/dist/components/atoms/forms/radio-group/radio-group.d.ts +47 -0
  62. package/dist/components/atoms/forms/radio-group/radio-group.d.ts.map +1 -1
  63. package/dist/components/atoms/forms/radio-group/radio-group.js +43 -0
  64. package/dist/components/atoms/forms/select/select.d.ts +62 -0
  65. package/dist/components/atoms/forms/select/select.d.ts.map +1 -1
  66. package/dist/components/atoms/forms/select/select.js +62 -0
  67. package/dist/components/atoms/forms/slider/slider.d.ts +60 -0
  68. package/dist/components/atoms/forms/slider/slider.d.ts.map +1 -1
  69. package/dist/components/atoms/forms/slider/slider.js +53 -1
  70. package/dist/components/atoms/forms/switch/switch.d.ts +67 -0
  71. package/dist/components/atoms/forms/switch/switch.d.ts.map +1 -1
  72. package/dist/components/atoms/forms/switch/switch.js +63 -0
  73. package/dist/components/atoms/forms/textarea/textarea.d.ts +66 -0
  74. package/dist/components/atoms/forms/textarea/textarea.d.ts.map +1 -1
  75. package/dist/components/atoms/forms/textarea/textarea.js +13 -0
  76. package/dist/components/atoms/forms/toggle/toggle.d.ts +65 -1
  77. package/dist/components/atoms/forms/toggle/toggle.d.ts.map +1 -1
  78. package/dist/components/atoms/forms/toggle/toggle.js +58 -0
  79. package/dist/components/atoms/index.d.ts +0 -2
  80. package/dist/components/atoms/index.d.ts.map +1 -1
  81. package/dist/components/atoms/index.js +0 -1
  82. package/dist/components/atoms/layout/accordion/accordion.d.ts +84 -0
  83. package/dist/components/atoms/layout/accordion/accordion.d.ts.map +1 -1
  84. package/dist/components/atoms/layout/accordion/accordion.js +72 -0
  85. package/dist/components/atoms/layout/aspect-ratio/aspect-ratio.d.ts +54 -0
  86. package/dist/components/atoms/layout/aspect-ratio/aspect-ratio.d.ts.map +1 -1
  87. package/dist/components/atoms/layout/aspect-ratio/aspect-ratio.js +49 -0
  88. package/dist/components/atoms/layout/collapsible/collapsible.d.ts +47 -5
  89. package/dist/components/atoms/layout/collapsible/collapsible.d.ts.map +1 -1
  90. package/dist/components/atoms/layout/collapsible/collapsible.js +47 -5
  91. package/dist/components/atoms/layout/drawer/drawer.d.ts +55 -0
  92. package/dist/components/atoms/layout/drawer/drawer.d.ts.map +1 -1
  93. package/dist/components/atoms/layout/index.d.ts +2 -0
  94. package/dist/components/atoms/layout/index.d.ts.map +1 -1
  95. package/dist/components/atoms/layout/index.js +1 -0
  96. package/dist/components/atoms/layout/resizable/resizable.d.ts +77 -2
  97. package/dist/components/atoms/layout/resizable/resizable.d.ts.map +1 -1
  98. package/dist/components/atoms/layout/resizable/resizable.js +68 -0
  99. package/dist/components/atoms/layout/scroll-area/scroll-area.d.ts +34 -2
  100. package/dist/components/atoms/layout/scroll-area/scroll-area.d.ts.map +1 -1
  101. package/dist/components/atoms/layout/scroll-area/scroll-area.js +35 -3
  102. package/dist/components/atoms/layout/sidebar/sidebar.d.ts +66 -1
  103. package/dist/components/atoms/layout/sidebar/sidebar.d.ts.map +1 -1
  104. package/dist/components/atoms/layout/sidebar/sidebar.js +66 -0
  105. package/dist/components/atoms/layout/toggle-group/toggle-group.d.ts +73 -0
  106. package/dist/components/atoms/layout/toggle-group/toggle-group.d.ts.map +1 -1
  107. package/dist/components/atoms/layout/toggle-group/toggle-group.js +57 -0
  108. package/dist/components/atoms/layout/widget-resize-handle/index.d.ts +3 -0
  109. package/dist/components/atoms/layout/widget-resize-handle/index.d.ts.map +1 -0
  110. package/dist/components/atoms/layout/widget-resize-handle/index.js +1 -0
  111. package/dist/components/atoms/layout/widget-resize-handle/widget-resize-handle.d.ts +98 -0
  112. package/dist/components/atoms/layout/widget-resize-handle/widget-resize-handle.d.ts.map +1 -0
  113. package/dist/components/atoms/layout/widget-resize-handle/widget-resize-handle.js +117 -0
  114. package/dist/components/atoms/navigation/command/command.d.ts +7 -7
  115. package/dist/components/molecules/data-display/chat-message/chat-message.d.ts +39 -0
  116. package/dist/components/molecules/data-display/chat-message/chat-message.d.ts.map +1 -0
  117. package/dist/components/molecules/data-display/chat-message/chat-message.js +85 -0
  118. package/dist/components/molecules/data-display/chat-message/index.d.ts +3 -0
  119. package/dist/components/molecules/data-display/chat-message/index.d.ts.map +1 -0
  120. package/dist/components/molecules/data-display/chat-message/index.js +1 -0
  121. package/dist/components/molecules/data-display/message/message.d.ts +22 -6
  122. package/dist/components/molecules/data-display/message/message.d.ts.map +1 -1
  123. package/dist/components/molecules/data-display/message/message.js +192 -8
  124. package/dist/components/molecules/draggable-widget/draggable-widget.d.ts.map +1 -1
  125. package/dist/components/molecules/draggable-widget/draggable-widget.js +6 -2
  126. package/dist/components/molecules/feedback/edit-chat-message-modal/edit-chat-message-modal.d.ts +20 -0
  127. package/dist/components/molecules/feedback/edit-chat-message-modal/edit-chat-message-modal.d.ts.map +1 -0
  128. package/dist/components/molecules/feedback/edit-chat-message-modal/edit-chat-message-modal.js +65 -0
  129. package/dist/components/molecules/feedback/edit-chat-message-modal/index.d.ts +3 -0
  130. package/dist/components/molecules/feedback/edit-chat-message-modal/index.d.ts.map +1 -0
  131. package/dist/components/molecules/feedback/edit-chat-message-modal/index.js +1 -0
  132. package/dist/components/molecules/forms/autocomplete/autocomplete-section.d.ts.map +1 -1
  133. package/dist/components/molecules/forms/autocomplete/autocomplete-section.js +3 -1
  134. package/dist/components/molecules/forms/chat-input/chat-input.d.ts +46 -0
  135. package/dist/components/molecules/forms/chat-input/chat-input.d.ts.map +1 -0
  136. package/dist/components/molecules/forms/chat-input/chat-input.js +57 -0
  137. package/dist/components/molecules/forms/chat-input/index.d.ts +3 -0
  138. package/dist/components/molecules/forms/chat-input/index.d.ts.map +1 -0
  139. package/dist/components/molecules/forms/chat-input/index.js +1 -0
  140. package/dist/components/molecules/forms/item/item.d.ts +1 -1
  141. package/dist/components/molecules/forms/text-editor/text-editor.d.ts.map +1 -1
  142. package/dist/components/molecules/index.d.ts +6 -0
  143. package/dist/components/molecules/index.d.ts.map +1 -1
  144. package/dist/components/molecules/index.js +3 -0
  145. package/dist/components/molecules/navigation/menu-dock/menu-dock.js +1 -1
  146. package/dist/components/organisms/chat-log/chat-log.d.ts +30 -0
  147. package/dist/components/organisms/chat-log/chat-log.d.ts.map +1 -0
  148. package/dist/components/organisms/chat-log/chat-log.js +21 -0
  149. package/dist/components/organisms/chat-log/index.d.ts +3 -0
  150. package/dist/components/organisms/chat-log/index.d.ts.map +1 -0
  151. package/dist/components/organisms/chat-log/index.js +1 -0
  152. package/dist/components/organisms/document-editor/document-editor.d.ts.map +1 -1
  153. package/dist/components/organisms/document-editor/document-editor.js +2 -2
  154. package/dist/components/organisms/draggable-dashboard-grid/draggable-dashboard-grid.d.ts.map +1 -1
  155. package/dist/components/organisms/draggable-dashboard-grid/draggable-dashboard-grid.js +1 -1
  156. package/dist/components/organisms/form-layout/form-layout.d.ts.map +1 -1
  157. package/dist/components/organisms/form-layout/form-layout.js +3 -1
  158. package/dist/components/organisms/genealogy-canvas/genealogy-canvas.d.ts +0 -5
  159. package/dist/components/organisms/genealogy-canvas/genealogy-canvas.d.ts.map +1 -1
  160. package/dist/components/organisms/genealogy-canvas/genealogy-canvas.js +50 -55
  161. package/dist/components/organisms/index.d.ts +2 -0
  162. package/dist/components/organisms/index.d.ts.map +1 -1
  163. package/dist/components/organisms/index.js +1 -0
  164. package/dist/components/organisms/model-selector/model-selector.d.ts +1 -1
  165. package/dist/components/organisms/prompt-input/index.d.ts +1 -1
  166. package/dist/components/organisms/prompt-input/index.d.ts.map +1 -1
  167. package/dist/components/organisms/prompt-input/index.js +1 -1
  168. package/dist/components/organisms/prompt-input/prompt-input.d.ts +22 -7
  169. package/dist/components/organisms/prompt-input/prompt-input.d.ts.map +1 -1
  170. package/dist/components/organisms/prompt-input/prompt-input.js +26 -17
  171. package/dist/index.js +501 -501
  172. package/dist/test/setup.d.ts +2 -0
  173. package/dist/test/setup.d.ts.map +1 -0
  174. package/dist/test/setup.js +43 -0
  175. package/package.json +18 -2
@@ -1,7 +1,74 @@
1
+ /**
2
+ * # Switch Component
3
+ *
4
+ * O componente `Switch` é um controle de alternância usado para ativar ou desativar
5
+ * uma opção. É baseado em Radix UI para garantir acessibilidade completa.
6
+ *
7
+ * ## Características Principais
8
+ *
9
+ * - **Acessível**: Baseado em Radix UI com suporte completo a leitores de tela
10
+ * - **Estados Visuais**: Suporta estados checked, unchecked e disabled
11
+ * - **Animações**: Transições suaves entre estados
12
+ * - **Foco Gerenciado**: Foco e navegação por teclado gerenciados automaticamente
13
+ * - **Customizável**: Pode ser estilizado via className e props HTML padrão
14
+ *
15
+ * ## Uso Básico
16
+ *
17
+ * ```tsx
18
+ * import { Switch } from "@flowtomic/ui/components/atoms/forms/switch";
19
+ *
20
+ * function MyComponent() {
21
+ * const [enabled, setEnabled] = React.useState(false);
22
+ *
23
+ * return (
24
+ * <Switch
25
+ * checked={enabled}
26
+ * onCheckedChange={setEnabled}
27
+ * />
28
+ * );
29
+ * }
30
+ * ```
31
+ *
32
+ * ## Com Label
33
+ *
34
+ * ```tsx
35
+ * <div className="flex items-center gap-2">
36
+ * <Switch id="notifications" />
37
+ * <label htmlFor="notifications">Notificações</label>
38
+ * </div>
39
+ * ```
40
+ *
41
+ * ## Acessibilidade
42
+ *
43
+ * - Suporta navegação por teclado (Tab, Espaço)
44
+ * - Segue padrões WAI-ARIA via Radix UI
45
+ * - Suporta leitores de tela
46
+ * - Foco gerenciado automaticamente
47
+ *
48
+ * @see [Radix UI Switch](https://www.radix-ui.com/primitives/docs/components/switch) para mais detalhes
49
+ */
1
50
  import * as SwitchPrimitive from "@radix-ui/react-switch";
2
51
  import type * as React from "react";
52
+ /**
53
+ * Props do componente Switch.
54
+ * @see SwitchPrimitive.Root para props disponíveis (checked, onCheckedChange, disabled, etc.)
55
+ */
3
56
  export interface SwitchProps extends React.ComponentProps<typeof SwitchPrimitive.Root> {
4
57
  }
58
+ /**
59
+ * Componente Switch para alternância de opções.
60
+ *
61
+ * @component
62
+ * @param {SwitchProps} props - Props do componente
63
+ * @returns {JSX.Element} Elemento Switch renderizado
64
+ *
65
+ * @example
66
+ * ```tsx
67
+ * <Switch checked={enabled} onCheckedChange={setEnabled} />
68
+ * <Switch defaultChecked />
69
+ * <Switch disabled />
70
+ * ```
71
+ */
5
72
  declare function Switch({ className, ...props }: SwitchProps): import("react/jsx-runtime").JSX.Element;
6
73
  declare namespace Switch {
7
74
  var displayName: string;
@@ -1 +1 @@
1
- {"version":3,"file":"switch.d.ts","sourceRoot":"","sources":["../../../../../src/components/atoms/forms/switch/switch.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,eAAe,MAAM,wBAAwB,CAAC;AAC1D,OAAO,KAAK,KAAK,KAAK,MAAM,OAAO,CAAC;AAGpC,MAAM,WAAW,WAAY,SAAQ,KAAK,CAAC,cAAc,CAAC,OAAO,eAAe,CAAC,IAAI,CAAC;CAAG;AAEzF,iBAAS,MAAM,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,WAAW,2CAkBnD;kBAlBQ,MAAM;;;AAsBf,OAAO,EAAE,MAAM,EAAE,CAAC"}
1
+ {"version":3,"file":"switch.d.ts","sourceRoot":"","sources":["../../../../../src/components/atoms/forms/switch/switch.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgDG;AAEH,OAAO,KAAK,eAAe,MAAM,wBAAwB,CAAC;AAC1D,OAAO,KAAK,KAAK,KAAK,MAAM,OAAO,CAAC;AAGpC;;;GAGG;AACH,MAAM,WAAW,WAAY,SAAQ,KAAK,CAAC,cAAc,CAAC,OAAO,eAAe,CAAC,IAAI,CAAC;CAAG;AAEzF;;;;;;;;;;;;;GAaG;AACH,iBAAS,MAAM,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,WAAW,2CAkBnD;kBAlBQ,MAAM;;;AAsBf,OAAO,EAAE,MAAM,EAAE,CAAC"}
@@ -1,6 +1,69 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
+ /**
3
+ * # Switch Component
4
+ *
5
+ * O componente `Switch` é um controle de alternância usado para ativar ou desativar
6
+ * uma opção. É baseado em Radix UI para garantir acessibilidade completa.
7
+ *
8
+ * ## Características Principais
9
+ *
10
+ * - **Acessível**: Baseado em Radix UI com suporte completo a leitores de tela
11
+ * - **Estados Visuais**: Suporta estados checked, unchecked e disabled
12
+ * - **Animações**: Transições suaves entre estados
13
+ * - **Foco Gerenciado**: Foco e navegação por teclado gerenciados automaticamente
14
+ * - **Customizável**: Pode ser estilizado via className e props HTML padrão
15
+ *
16
+ * ## Uso Básico
17
+ *
18
+ * ```tsx
19
+ * import { Switch } from "@flowtomic/ui/components/atoms/forms/switch";
20
+ *
21
+ * function MyComponent() {
22
+ * const [enabled, setEnabled] = React.useState(false);
23
+ *
24
+ * return (
25
+ * <Switch
26
+ * checked={enabled}
27
+ * onCheckedChange={setEnabled}
28
+ * />
29
+ * );
30
+ * }
31
+ * ```
32
+ *
33
+ * ## Com Label
34
+ *
35
+ * ```tsx
36
+ * <div className="flex items-center gap-2">
37
+ * <Switch id="notifications" />
38
+ * <label htmlFor="notifications">Notificações</label>
39
+ * </div>
40
+ * ```
41
+ *
42
+ * ## Acessibilidade
43
+ *
44
+ * - Suporta navegação por teclado (Tab, Espaço)
45
+ * - Segue padrões WAI-ARIA via Radix UI
46
+ * - Suporta leitores de tela
47
+ * - Foco gerenciado automaticamente
48
+ *
49
+ * @see [Radix UI Switch](https://www.radix-ui.com/primitives/docs/components/switch) para mais detalhes
50
+ */
2
51
  import * as SwitchPrimitive from "@radix-ui/react-switch";
3
52
  import { cn } from "@/lib/utils";
53
+ /**
54
+ * Componente Switch para alternância de opções.
55
+ *
56
+ * @component
57
+ * @param {SwitchProps} props - Props do componente
58
+ * @returns {JSX.Element} Elemento Switch renderizado
59
+ *
60
+ * @example
61
+ * ```tsx
62
+ * <Switch checked={enabled} onCheckedChange={setEnabled} />
63
+ * <Switch defaultChecked />
64
+ * <Switch disabled />
65
+ * ```
66
+ */
4
67
  function Switch({ className, ...props }) {
5
68
  return (_jsx(SwitchPrimitive.Root, { "data-slot": "switch", className: cn("peer data-[state=checked]:bg-primary data-[state=unchecked]:bg-input focus-visible:border-ring focus-visible:ring-ring/50 dark:data-[state=unchecked]:bg-input/80 inline-flex h-[1.15rem] w-8 shrink-0 items-center rounded-full border border-transparent shadow-xs transition-all outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50", className), ...props, children: _jsx(SwitchPrimitive.Thumb, { "data-slot": "switch-thumb", className: cn("bg-background dark:data-[state=unchecked]:bg-foreground dark:data-[state=checked]:bg-primary-foreground pointer-events-none block size-4 rounded-full ring-0 transition-transform data-[state=checked]:translate-x-[calc(100%-2px)] data-[state=unchecked]:translate-x-0") }) }));
6
69
  }
@@ -1,6 +1,72 @@
1
+ /**
2
+ * # Textarea Component
3
+ *
4
+ * O componente `Textarea` é um campo de entrada de texto multilinha usado para coletar
5
+ * textos mais longos do usuário. Fornece uma interface consistente e acessível para
6
+ * entrada de texto multilinha.
7
+ *
8
+ * ## Características Principais
9
+ *
10
+ * - **Multilinha**: Suporta entrada de texto em múltiplas linhas
11
+ * - **Auto-resize**: Suporta redimensionamento automático via CSS (field-sizing-content)
12
+ * - **Acessível**: Suporta labels associados e navegação por teclado
13
+ * - **Validação Visual**: Suporta estados de erro via aria-invalid
14
+ * - **Customizável**: Pode ser estilizado via className e props HTML padrão
15
+ *
16
+ * ## Uso Básico
17
+ *
18
+ * ```tsx
19
+ * import { Textarea } from "@flowtomic/ui/components/atoms/forms/textarea";
20
+ *
21
+ * function MyComponent() {
22
+ * return (
23
+ * <Textarea
24
+ * placeholder="Digite sua mensagem..."
25
+ * rows={4}
26
+ * />
27
+ * );
28
+ * }
29
+ * ```
30
+ *
31
+ * ## Com Validação
32
+ *
33
+ * ```tsx
34
+ * <Textarea
35
+ * placeholder="Mensagem"
36
+ * aria-invalid="true"
37
+ * aria-describedby="error-message"
38
+ * />
39
+ * ```
40
+ *
41
+ * ## Acessibilidade
42
+ *
43
+ * - Suporta labels associados via htmlFor/id
44
+ * - Suporta aria-invalid para estados de erro
45
+ * - Suporta aria-describedby para mensagens de erro
46
+ * - Suporta navegação por teclado
47
+ *
48
+ * @see [Input Component](../input/input.tsx) para campo de entrada de linha única
49
+ */
1
50
  import type * as React from "react";
51
+ /**
52
+ * Props do componente Textarea.
53
+ * Estende todas as props HTML padrão de textarea.
54
+ */
2
55
  export interface TextareaProps extends React.ComponentProps<"textarea"> {
3
56
  }
57
+ /**
58
+ * Componente Textarea para entrada de texto multilinha.
59
+ *
60
+ * @component
61
+ * @param {TextareaProps} props - Props do componente
62
+ * @returns {JSX.Element} Elemento Textarea renderizado
63
+ *
64
+ * @example
65
+ * ```tsx
66
+ * <Textarea placeholder="Digite sua mensagem..." rows={4} />
67
+ * <Textarea aria-invalid="true" aria-describedby="error" />
68
+ * ```
69
+ */
4
70
  declare function Textarea({ className, ...props }: TextareaProps): import("react/jsx-runtime").JSX.Element;
5
71
  declare namespace Textarea {
6
72
  var displayName: string;
@@ -1 +1 @@
1
- {"version":3,"file":"textarea.d.ts","sourceRoot":"","sources":["../../../../../src/components/atoms/forms/textarea/textarea.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,KAAK,MAAM,OAAO,CAAC;AAGpC,MAAM,WAAW,aAAc,SAAQ,KAAK,CAAC,cAAc,CAAC,UAAU,CAAC;CAAG;AAE1E,iBAAS,QAAQ,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,aAAa,2CAWvD;kBAXQ,QAAQ;;;AAejB,OAAO,EAAE,QAAQ,EAAE,CAAC"}
1
+ {"version":3,"file":"textarea.d.ts","sourceRoot":"","sources":["../../../../../src/components/atoms/forms/textarea/textarea.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgDG;AAEH,OAAO,KAAK,KAAK,KAAK,MAAM,OAAO,CAAC;AAGpC;;;GAGG;AACH,MAAM,WAAW,aAAc,SAAQ,KAAK,CAAC,cAAc,CAAC,UAAU,CAAC;CAAG;AAE1E;;;;;;;;;;;;GAYG;AACH,iBAAS,QAAQ,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,aAAa,2CAWvD;kBAXQ,QAAQ;;;AAejB,OAAO,EAAE,QAAQ,EAAE,CAAC"}
@@ -1,5 +1,18 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
2
  import { cn } from "@/lib/utils";
3
+ /**
4
+ * Componente Textarea para entrada de texto multilinha.
5
+ *
6
+ * @component
7
+ * @param {TextareaProps} props - Props do componente
8
+ * @returns {JSX.Element} Elemento Textarea renderizado
9
+ *
10
+ * @example
11
+ * ```tsx
12
+ * <Textarea placeholder="Digite sua mensagem..." rows={4} />
13
+ * <Textarea aria-invalid="true" aria-describedby="error" />
14
+ * ```
15
+ */
3
16
  function Textarea({ className, ...props }) {
4
17
  return (_jsx("textarea", { "data-slot": "textarea", className: cn("border-input placeholder:text-muted-foreground focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive dark:bg-input/30 flex field-sizing-content min-h-16 w-full rounded-md border bg-transparent px-3 py-2 text-base shadow-xs transition-[color,box-shadow] outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50 md:text-sm", className), ...props }));
5
18
  }
@@ -1,10 +1,74 @@
1
+ /**
2
+ * # Toggle Component
3
+ *
4
+ * O componente `Toggle` é um botão de alternância usado para ativar ou desativar
5
+ * uma opção. Diferente do Switch, o Toggle mantém estado visual quando pressionado.
6
+ * É baseado em Radix UI para garantir acessibilidade completa.
7
+ *
8
+ * ## Características Principais
9
+ *
10
+ * - **Acessível**: Baseado em Radix UI com suporte completo a leitores de tela
11
+ * - **Estados Visuais**: Suporta estados on, off e disabled
12
+ * - **Variantes**: Suporta default e outline
13
+ * - **Tamanhos**: Suporta default, sm e lg
14
+ * - **Foco Gerenciado**: Foco e navegação por teclado gerenciados automaticamente
15
+ *
16
+ * ## Variantes
17
+ *
18
+ * - **`default`**: Variante padrão sem borda
19
+ * - **`outline`**: Variante com borda
20
+ *
21
+ * ## Tamanhos
22
+ *
23
+ * - **`default`**: Tamanho padrão (h-9)
24
+ * - **`sm`**: Tamanho pequeno (h-8)
25
+ * - **`lg`**: Tamanho grande (h-10)
26
+ *
27
+ * ## Uso Básico
28
+ *
29
+ * ```tsx
30
+ * import { Toggle } from "@flowtomic/ui/components/atoms/forms/toggle";
31
+ *
32
+ * function MyComponent() {
33
+ * const [pressed, setPressed] = React.useState(false);
34
+ *
35
+ * return (
36
+ * <Toggle
37
+ * pressed={pressed}
38
+ * onPressedChange={setPressed}
39
+ * >
40
+ * Toggle
41
+ * </Toggle>
42
+ * );
43
+ * }
44
+ * ```
45
+ *
46
+ * ## Acessibilidade
47
+ *
48
+ * - Suporta navegação por teclado (Tab, Espaço, Enter)
49
+ * - Segue padrões WAI-ARIA via Radix UI
50
+ * - Suporta leitores de tela
51
+ * - Foco gerenciado automaticamente
52
+ *
53
+ * @see [Radix UI Toggle](https://www.radix-ui.com/primitives/docs/components/toggle) para mais detalhes
54
+ * @see [Switch Component](../switch/switch.tsx) para alternativa com estado visual diferente
55
+ */
1
56
  import * as TogglePrimitive from "@radix-ui/react-toggle";
2
57
  import { type VariantProps } from "class-variance-authority";
3
58
  import type * as React from "react";
59
+ /**
60
+ * Variantes de estilo do Toggle usando class-variance-authority.
61
+ */
4
62
  declare const toggleVariants: (props?: ({
5
- variant?: "default" | "outline" | null | undefined;
63
+ variant?: "outline" | "default" | null | undefined;
6
64
  size?: "default" | "sm" | "lg" | null | undefined;
7
65
  } & import("class-variance-authority/types").ClassProp) | undefined) => string;
66
+ /**
67
+ * Props do componente Toggle.
68
+ *
69
+ * @property {'default' | 'outline'} [variant='default'] - Variante visual do toggle
70
+ * @property {'default' | 'sm' | 'lg'} [size='default'] - Tamanho do toggle
71
+ */
8
72
  export interface ToggleProps extends React.ComponentProps<typeof TogglePrimitive.Root>, VariantProps<typeof toggleVariants> {
9
73
  }
10
74
  declare function Toggle({ className, variant, size, ...props }: ToggleProps): import("react/jsx-runtime").JSX.Element;
@@ -1 +1 @@
1
- {"version":3,"file":"toggle.d.ts","sourceRoot":"","sources":["../../../../../src/components/atoms/forms/toggle/toggle.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,eAAe,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAO,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,KAAK,KAAK,KAAK,MAAM,OAAO,CAAC;AAGpC,QAAA,MAAM,cAAc;;;8EAoBnB,CAAC;AAEF,MAAM,WAAW,WACf,SAAQ,KAAK,CAAC,cAAc,CAAC,OAAO,eAAe,CAAC,IAAI,CAAC,EACvD,YAAY,CAAC,OAAO,cAAc,CAAC;CAAG;AAE1C,iBAAS,MAAM,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,EAAE,WAAW,2CAQlE;kBARQ,MAAM;;;AAYf,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,CAAC"}
1
+ {"version":3,"file":"toggle.d.ts","sourceRoot":"","sources":["../../../../../src/components/atoms/forms/toggle/toggle.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsDG;AAEH,OAAO,KAAK,eAAe,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAO,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,KAAK,KAAK,KAAK,MAAM,OAAO,CAAC;AAGpC;;GAEG;AACH,QAAA,MAAM,cAAc;;;8EAoBnB,CAAC;AAEF;;;;;GAKG;AACH,MAAM,WAAW,WACf,SAAQ,KAAK,CAAC,cAAc,CAAC,OAAO,eAAe,CAAC,IAAI,CAAC,EACvD,YAAY,CAAC,OAAO,cAAc,CAAC;CAAG;AAE1C,iBAAS,MAAM,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,EAAE,WAAW,2CAQlE;kBARQ,MAAM;;;AAYf,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,CAAC"}
@@ -1,7 +1,65 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
+ /**
3
+ * # Toggle Component
4
+ *
5
+ * O componente `Toggle` é um botão de alternância usado para ativar ou desativar
6
+ * uma opção. Diferente do Switch, o Toggle mantém estado visual quando pressionado.
7
+ * É baseado em Radix UI para garantir acessibilidade completa.
8
+ *
9
+ * ## Características Principais
10
+ *
11
+ * - **Acessível**: Baseado em Radix UI com suporte completo a leitores de tela
12
+ * - **Estados Visuais**: Suporta estados on, off e disabled
13
+ * - **Variantes**: Suporta default e outline
14
+ * - **Tamanhos**: Suporta default, sm e lg
15
+ * - **Foco Gerenciado**: Foco e navegação por teclado gerenciados automaticamente
16
+ *
17
+ * ## Variantes
18
+ *
19
+ * - **`default`**: Variante padrão sem borda
20
+ * - **`outline`**: Variante com borda
21
+ *
22
+ * ## Tamanhos
23
+ *
24
+ * - **`default`**: Tamanho padrão (h-9)
25
+ * - **`sm`**: Tamanho pequeno (h-8)
26
+ * - **`lg`**: Tamanho grande (h-10)
27
+ *
28
+ * ## Uso Básico
29
+ *
30
+ * ```tsx
31
+ * import { Toggle } from "@flowtomic/ui/components/atoms/forms/toggle";
32
+ *
33
+ * function MyComponent() {
34
+ * const [pressed, setPressed] = React.useState(false);
35
+ *
36
+ * return (
37
+ * <Toggle
38
+ * pressed={pressed}
39
+ * onPressedChange={setPressed}
40
+ * >
41
+ * Toggle
42
+ * </Toggle>
43
+ * );
44
+ * }
45
+ * ```
46
+ *
47
+ * ## Acessibilidade
48
+ *
49
+ * - Suporta navegação por teclado (Tab, Espaço, Enter)
50
+ * - Segue padrões WAI-ARIA via Radix UI
51
+ * - Suporta leitores de tela
52
+ * - Foco gerenciado automaticamente
53
+ *
54
+ * @see [Radix UI Toggle](https://www.radix-ui.com/primitives/docs/components/toggle) para mais detalhes
55
+ * @see [Switch Component](../switch/switch.tsx) para alternativa com estado visual diferente
56
+ */
2
57
  import * as TogglePrimitive from "@radix-ui/react-toggle";
3
58
  import { cva } from "class-variance-authority";
4
59
  import { cn } from "@/lib/utils";
60
+ /**
61
+ * Variantes de estilo do Toggle usando class-variance-authority.
62
+ */
5
63
  const toggleVariants = cva("inline-flex items-center justify-center gap-2 rounded-md text-sm font-medium hover:bg-muted hover:text-muted-foreground disabled:pointer-events-none disabled:opacity-50 data-[state=on]:bg-accent data-[state=on]:text-accent-foreground [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 [&_svg]:shrink-0 focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] outline-none transition-[color,box-shadow] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive whitespace-nowrap", {
6
64
  variants: {
7
65
  variant: {
@@ -11,6 +11,4 @@ export * from "./feedback";
11
11
  export * from "./forms";
12
12
  export * from "./layout";
13
13
  export * from "./navigation";
14
- export type { WidgetResizeHandleProps } from "./widget-resize-handle";
15
- export { WidgetResizeHandle } from "./widget-resize-handle";
16
14
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/atoms/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,cAAc,WAAW,CAAC;AAE1B,cAAc,aAAa,CAAC;AAE5B,cAAc,QAAQ,CAAC;AAEvB,cAAc,gBAAgB,CAAC;AAE/B,cAAc,WAAW,CAAC;AAE1B,cAAc,YAAY,CAAC;AAE3B,cAAc,SAAS,CAAC;AAExB,cAAc,UAAU,CAAC;AAEzB,cAAc,cAAc,CAAC;AAE7B,YAAY,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AACtE,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/atoms/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,cAAc,WAAW,CAAC;AAE1B,cAAc,aAAa,CAAC;AAE5B,cAAc,QAAQ,CAAC;AAEvB,cAAc,gBAAgB,CAAC;AAE/B,cAAc,WAAW,CAAC;AAE1B,cAAc,YAAY,CAAC;AAE3B,cAAc,SAAS,CAAC;AAExB,cAAc,UAAU,CAAC;AAEzB,cAAc,cAAc,CAAC"}
@@ -20,4 +20,3 @@ export * from "./forms";
20
20
  export * from "./layout";
21
21
  // Navigation
22
22
  export * from "./navigation";
23
- export { WidgetResizeHandle } from "./widget-resize-handle";
@@ -1,24 +1,108 @@
1
+ /**
2
+ * # Accordion Component
3
+ *
4
+ * O componente `Accordion` é usado para exibir conteúdo colapsável em seções.
5
+ * É baseado em Radix UI para garantir acessibilidade completa.
6
+ *
7
+ * ## Características Principais
8
+ *
9
+ * - **Acessível**: Baseado em Radix UI com suporte completo a leitores de tela
10
+ * - **Modos**: Suporta single (apenas um item aberto) ou multiple (múltiplos itens abertos)
11
+ * - **Composição**: Accordion + AccordionItem + AccordionTrigger + AccordionContent
12
+ * - **Animações**: Animações suaves de abertura/fechamento
13
+ * - **Foco Gerenciado**: Foco e navegação por teclado gerenciados automaticamente
14
+ *
15
+ * ## Uso Básico
16
+ *
17
+ * ```tsx
18
+ * import { Accordion, AccordionItem, AccordionTrigger, AccordionContent } from "@flowtomic/ui/components/atoms/layout/accordion";
19
+ *
20
+ * function MyComponent() {
21
+ * return (
22
+ * <Accordion type="single" collapsible>
23
+ * <AccordionItem value="item-1">
24
+ * <AccordionTrigger>Item 1</AccordionTrigger>
25
+ * <AccordionContent>Conteúdo do item 1</AccordionContent>
26
+ * </AccordionItem>
27
+ * </Accordion>
28
+ * );
29
+ * }
30
+ * ```
31
+ *
32
+ * ## Acessibilidade
33
+ *
34
+ * - Suporta navegação por teclado (Tab, Enter, Espaço, setas)
35
+ * - Segue padrões WAI-ARIA via Radix UI
36
+ * - Suporta leitores de tela
37
+ * - Foco gerenciado automaticamente
38
+ *
39
+ * @see [Radix UI Accordion](https://www.radix-ui.com/primitives/docs/components/accordion) para mais detalhes
40
+ */
1
41
  import * as AccordionPrimitive from "@radix-ui/react-accordion";
2
42
  import type * as React from "react";
43
+ /**
44
+ * Props do componente Accordion.
45
+ */
3
46
  export type AccordionProps = React.ComponentProps<typeof AccordionPrimitive.Root>;
47
+ /**
48
+ * Accordion - Container principal do accordion.
49
+ *
50
+ * Componente usado para gerenciar o estado do accordion.
51
+ *
52
+ * @param {AccordionProps} props - Props do componente
53
+ * @returns {JSX.Element} Componente Accordion
54
+ */
4
55
  declare function Accordion(props: AccordionProps): import("react/jsx-runtime").JSX.Element;
5
56
  declare namespace Accordion {
6
57
  var displayName: string;
7
58
  }
59
+ /**
60
+ * Props do componente AccordionItem.
61
+ */
8
62
  export interface AccordionItemProps extends React.ComponentProps<typeof AccordionPrimitive.Item> {
9
63
  }
64
+ /**
65
+ * AccordionItem - Item individual do accordion.
66
+ *
67
+ * Componente usado para agrupar trigger e content de um item.
68
+ *
69
+ * @param {AccordionItemProps} props - Props do componente
70
+ * @returns {JSX.Element} Componente AccordionItem
71
+ */
10
72
  declare function AccordionItem({ className, ...props }: AccordionItemProps): import("react/jsx-runtime").JSX.Element;
11
73
  declare namespace AccordionItem {
12
74
  var displayName: string;
13
75
  }
76
+ /**
77
+ * Props do componente AccordionTrigger.
78
+ */
14
79
  export interface AccordionTriggerProps extends React.ComponentProps<typeof AccordionPrimitive.Trigger> {
15
80
  }
81
+ /**
82
+ * AccordionTrigger - Trigger do accordion item.
83
+ *
84
+ * Componente usado como trigger para abrir/fechar o item.
85
+ *
86
+ * @param {AccordionTriggerProps} props - Props do componente
87
+ * @returns {JSX.Element} Componente AccordionTrigger
88
+ */
16
89
  declare function AccordionTrigger({ className, children, ...props }: AccordionTriggerProps): import("react/jsx-runtime").JSX.Element;
17
90
  declare namespace AccordionTrigger {
18
91
  var displayName: string;
19
92
  }
93
+ /**
94
+ * Props do componente AccordionContent.
95
+ */
20
96
  export interface AccordionContentProps extends React.ComponentProps<typeof AccordionPrimitive.Content> {
21
97
  }
98
+ /**
99
+ * AccordionContent - Conteúdo do accordion item.
100
+ *
101
+ * Componente usado para exibir o conteúdo do item quando aberto.
102
+ *
103
+ * @param {AccordionContentProps} props - Props do componente
104
+ * @returns {JSX.Element} Componente AccordionContent
105
+ */
22
106
  declare function AccordionContent({ className, children, ...props }: AccordionContentProps): import("react/jsx-runtime").JSX.Element;
23
107
  declare namespace AccordionContent {
24
108
  var displayName: string;
@@ -1 +1 @@
1
- {"version":3,"file":"accordion.d.ts","sourceRoot":"","sources":["../../../../../src/components/atoms/layout/accordion/accordion.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,kBAAkB,MAAM,2BAA2B,CAAC;AAEhE,OAAO,KAAK,KAAK,KAAK,MAAM,OAAO,CAAC;AAGpC,MAAM,MAAM,cAAc,GAAG,KAAK,CAAC,cAAc,CAAC,OAAO,kBAAkB,CAAC,IAAI,CAAC,CAAC;AAElF,iBAAS,SAAS,CAAC,KAAK,EAAE,cAAc,2CAEvC;kBAFQ,SAAS;;;AAMlB,MAAM,WAAW,kBAAmB,SAAQ,KAAK,CAAC,cAAc,CAAC,OAAO,kBAAkB,CAAC,IAAI,CAAC;CAAG;AAEnG,iBAAS,aAAa,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,kBAAkB,2CAQjE;kBARQ,aAAa;;;AAYtB,MAAM,WAAW,qBACf,SAAQ,KAAK,CAAC,cAAc,CAAC,OAAO,kBAAkB,CAAC,OAAO,CAAC;CAAG;AAEpE,iBAAS,gBAAgB,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,KAAK,EAAE,EAAE,qBAAqB,2CAgBjF;kBAhBQ,gBAAgB;;;AAoBzB,MAAM,WAAW,qBACf,SAAQ,KAAK,CAAC,cAAc,CAAC,OAAO,kBAAkB,CAAC,OAAO,CAAC;CAAG;AAEpE,iBAAS,gBAAgB,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,KAAK,EAAE,EAAE,qBAAqB,2CAUjF;kBAVQ,gBAAgB;;;AAczB,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,CAAC"}
1
+ {"version":3,"file":"accordion.d.ts","sourceRoot":"","sources":["../../../../../src/components/atoms/layout/accordion/accordion.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AAEH,OAAO,KAAK,kBAAkB,MAAM,2BAA2B,CAAC;AAEhE,OAAO,KAAK,KAAK,KAAK,MAAM,OAAO,CAAC;AAGpC;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG,KAAK,CAAC,cAAc,CAAC,OAAO,kBAAkB,CAAC,IAAI,CAAC,CAAC;AAElF;;;;;;;GAOG;AACH,iBAAS,SAAS,CAAC,KAAK,EAAE,cAAc,2CAEvC;kBAFQ,SAAS;;;AAMlB;;GAEG;AACH,MAAM,WAAW,kBAAmB,SAAQ,KAAK,CAAC,cAAc,CAAC,OAAO,kBAAkB,CAAC,IAAI,CAAC;CAAG;AAEnG;;;;;;;GAOG;AACH,iBAAS,aAAa,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,kBAAkB,2CAQjE;kBARQ,aAAa;;;AAYtB;;GAEG;AACH,MAAM,WAAW,qBACf,SAAQ,KAAK,CAAC,cAAc,CAAC,OAAO,kBAAkB,CAAC,OAAO,CAAC;CAAG;AAEpE;;;;;;;GAOG;AACH,iBAAS,gBAAgB,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,KAAK,EAAE,EAAE,qBAAqB,2CAgBjF;kBAhBQ,gBAAgB;;;AAoBzB;;GAEG;AACH,MAAM,WAAW,qBACf,SAAQ,KAAK,CAAC,cAAc,CAAC,OAAO,kBAAkB,CAAC,OAAO,CAAC;CAAG;AAEpE;;;;;;;GAOG;AACH,iBAAS,gBAAgB,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,KAAK,EAAE,EAAE,qBAAqB,2CAUjF;kBAVQ,gBAAgB;;;AAczB,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,CAAC"}
@@ -1,19 +1,91 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ /**
3
+ * # Accordion Component
4
+ *
5
+ * O componente `Accordion` é usado para exibir conteúdo colapsável em seções.
6
+ * É baseado em Radix UI para garantir acessibilidade completa.
7
+ *
8
+ * ## Características Principais
9
+ *
10
+ * - **Acessível**: Baseado em Radix UI com suporte completo a leitores de tela
11
+ * - **Modos**: Suporta single (apenas um item aberto) ou multiple (múltiplos itens abertos)
12
+ * - **Composição**: Accordion + AccordionItem + AccordionTrigger + AccordionContent
13
+ * - **Animações**: Animações suaves de abertura/fechamento
14
+ * - **Foco Gerenciado**: Foco e navegação por teclado gerenciados automaticamente
15
+ *
16
+ * ## Uso Básico
17
+ *
18
+ * ```tsx
19
+ * import { Accordion, AccordionItem, AccordionTrigger, AccordionContent } from "@flowtomic/ui/components/atoms/layout/accordion";
20
+ *
21
+ * function MyComponent() {
22
+ * return (
23
+ * <Accordion type="single" collapsible>
24
+ * <AccordionItem value="item-1">
25
+ * <AccordionTrigger>Item 1</AccordionTrigger>
26
+ * <AccordionContent>Conteúdo do item 1</AccordionContent>
27
+ * </AccordionItem>
28
+ * </Accordion>
29
+ * );
30
+ * }
31
+ * ```
32
+ *
33
+ * ## Acessibilidade
34
+ *
35
+ * - Suporta navegação por teclado (Tab, Enter, Espaço, setas)
36
+ * - Segue padrões WAI-ARIA via Radix UI
37
+ * - Suporta leitores de tela
38
+ * - Foco gerenciado automaticamente
39
+ *
40
+ * @see [Radix UI Accordion](https://www.radix-ui.com/primitives/docs/components/accordion) para mais detalhes
41
+ */
2
42
  import * as AccordionPrimitive from "@radix-ui/react-accordion";
3
43
  import { ChevronDownIcon } from "lucide-react";
4
44
  import { cn } from "@/lib/utils";
45
+ /**
46
+ * Accordion - Container principal do accordion.
47
+ *
48
+ * Componente usado para gerenciar o estado do accordion.
49
+ *
50
+ * @param {AccordionProps} props - Props do componente
51
+ * @returns {JSX.Element} Componente Accordion
52
+ */
5
53
  function Accordion(props) {
6
54
  return _jsx(AccordionPrimitive.Root, { "data-slot": "accordion", ...props });
7
55
  }
8
56
  Accordion.displayName = "Accordion";
57
+ /**
58
+ * AccordionItem - Item individual do accordion.
59
+ *
60
+ * Componente usado para agrupar trigger e content de um item.
61
+ *
62
+ * @param {AccordionItemProps} props - Props do componente
63
+ * @returns {JSX.Element} Componente AccordionItem
64
+ */
9
65
  function AccordionItem({ className, ...props }) {
10
66
  return (_jsx(AccordionPrimitive.Item, { "data-slot": "accordion-item", className: cn("border-b last:border-b-0", className), ...props }));
11
67
  }
12
68
  AccordionItem.displayName = "AccordionItem";
69
+ /**
70
+ * AccordionTrigger - Trigger do accordion item.
71
+ *
72
+ * Componente usado como trigger para abrir/fechar o item.
73
+ *
74
+ * @param {AccordionTriggerProps} props - Props do componente
75
+ * @returns {JSX.Element} Componente AccordionTrigger
76
+ */
13
77
  function AccordionTrigger({ className, children, ...props }) {
14
78
  return (_jsx(AccordionPrimitive.Header, { className: "flex", children: _jsxs(AccordionPrimitive.Trigger, { "data-slot": "accordion-trigger", className: cn("focus-visible:border-ring focus-visible:ring-ring/50 flex flex-1 items-start justify-between gap-4 rounded-md py-4 text-left text-sm font-medium transition-all outline-none hover:underline focus-visible:ring-[3px] disabled:pointer-events-none disabled:opacity-50 [&[data-state=open]>svg]:rotate-180", className), ...props, children: [children, _jsx(ChevronDownIcon, { className: "text-muted-foreground pointer-events-none size-4 shrink-0 translate-y-0.5 transition-transform duration-200" })] }) }));
15
79
  }
16
80
  AccordionTrigger.displayName = "AccordionTrigger";
81
+ /**
82
+ * AccordionContent - Conteúdo do accordion item.
83
+ *
84
+ * Componente usado para exibir o conteúdo do item quando aberto.
85
+ *
86
+ * @param {AccordionContentProps} props - Props do componente
87
+ * @returns {JSX.Element} Componente AccordionContent
88
+ */
17
89
  function AccordionContent({ className, children, ...props }) {
18
90
  return (_jsx(AccordionPrimitive.Content, { "data-slot": "accordion-content", className: "data-[state=closed]:animate-accordion-up data-[state=open]:animate-accordion-down overflow-hidden text-sm", ...props, children: _jsx("div", { className: cn("pt-0 pb-4", className), children: children }) }));
19
91
  }