@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,14 +1,72 @@
1
1
  /**
2
- * Checkbox Component - Flowtomic UI
2
+ * # Checkbox Component
3
3
  *
4
- * Componente Checkbox próprio do design-system baseado em Radix UI
5
- * Implementação direta sem dependência de componentes externos
4
+ * O componente `Checkbox` é um controle de seleção usado para permitir que o usuário selecione
5
+ * uma ou mais opções de um conjunto. É 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
+ * - **Indicador Visual**: Exibe ícone de check quando selecionado
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 { Checkbox } from "@flowtomic/ui/components/atoms/forms/checkbox";
19
+ *
20
+ * function MyComponent() {
21
+ * const [checked, setChecked] = React.useState(false);
22
+ *
23
+ * return (
24
+ * <Checkbox
25
+ * checked={checked}
26
+ * onCheckedChange={setChecked}
27
+ * />
28
+ * );
29
+ * }
30
+ * ```
31
+ *
32
+ * ## Com Label
33
+ *
34
+ * ```tsx
35
+ * <div className="flex items-center gap-2">
36
+ * <Checkbox id="terms" />
37
+ * <label htmlFor="terms">Aceito os termos</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 Checkbox](https://www.radix-ui.com/primitives/docs/components/checkbox) para mais detalhes
6
49
  */
7
50
  import * as CheckboxPrimitive from "@radix-ui/react-checkbox";
8
51
  import * as React from "react";
52
+ /**
53
+ * Props do componente Checkbox.
54
+ * @see CheckboxPrimitive.Root para props disponíveis (checked, onCheckedChange, disabled, etc.)
55
+ */
9
56
  export type CheckboxProps = React.ComponentPropsWithoutRef<typeof CheckboxPrimitive.Root>;
10
57
  /**
11
- * Checkbox - Componente de checkbox
58
+ * Componente Checkbox para seleção de opções.
59
+ *
60
+ * @component
61
+ * @param {CheckboxProps} props - Props do componente
62
+ * @returns {JSX.Element} Elemento Checkbox renderizado
63
+ *
64
+ * @example
65
+ * ```tsx
66
+ * <Checkbox checked={checked} onCheckedChange={setChecked} />
67
+ * <Checkbox defaultChecked />
68
+ * <Checkbox disabled />
69
+ * ```
12
70
  */
13
71
  declare const Checkbox: React.ForwardRefExoticComponent<Omit<CheckboxPrimitive.CheckboxProps & React.RefAttributes<HTMLButtonElement>, "ref"> & React.RefAttributes<HTMLButtonElement>>;
14
72
  export { Checkbox };
@@ -1 +1 @@
1
- {"version":3,"file":"checkbox.d.ts","sourceRoot":"","sources":["../../../../../src/components/atoms/forms/checkbox/checkbox.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,iBAAiB,MAAM,0BAA0B,CAAC;AAE9D,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,MAAM,MAAM,aAAa,GAAG,KAAK,CAAC,wBAAwB,CAAC,OAAO,iBAAiB,CAAC,IAAI,CAAC,CAAC;AAE1F;;GAEG;AACH,QAAA,MAAM,QAAQ,iKAsBb,CAAC;AAGF,OAAO,EAAE,QAAQ,EAAE,CAAC"}
1
+ {"version":3,"file":"checkbox.d.ts","sourceRoot":"","sources":["../../../../../src/components/atoms/forms/checkbox/checkbox.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgDG;AAEH,OAAO,KAAK,iBAAiB,MAAM,0BAA0B,CAAC;AAE9D,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B;;;GAGG;AACH,MAAM,MAAM,aAAa,GAAG,KAAK,CAAC,wBAAwB,CAAC,OAAO,iBAAiB,CAAC,IAAI,CAAC,CAAC;AAE1F;;;;;;;;;;;;;GAaG;AACH,QAAA,MAAM,QAAQ,iKAsBb,CAAC;AAGF,OAAO,EAAE,QAAQ,EAAE,CAAC"}
@@ -1,16 +1,70 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
2
  /**
3
- * Checkbox Component - Flowtomic UI
3
+ * # Checkbox Component
4
4
  *
5
- * Componente Checkbox próprio do design-system baseado em Radix UI
6
- * Implementação direta sem dependência de componentes externos
5
+ * O componente `Checkbox` é um controle de seleção usado para permitir que o usuário selecione
6
+ * uma ou mais opções de um conjunto. É 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
+ * - **Indicador Visual**: Exibe ícone de check quando selecionado
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 { Checkbox } from "@flowtomic/ui/components/atoms/forms/checkbox";
20
+ *
21
+ * function MyComponent() {
22
+ * const [checked, setChecked] = React.useState(false);
23
+ *
24
+ * return (
25
+ * <Checkbox
26
+ * checked={checked}
27
+ * onCheckedChange={setChecked}
28
+ * />
29
+ * );
30
+ * }
31
+ * ```
32
+ *
33
+ * ## Com Label
34
+ *
35
+ * ```tsx
36
+ * <div className="flex items-center gap-2">
37
+ * <Checkbox id="terms" />
38
+ * <label htmlFor="terms">Aceito os termos</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 Checkbox](https://www.radix-ui.com/primitives/docs/components/checkbox) para mais detalhes
7
50
  */
8
51
  import * as CheckboxPrimitive from "@radix-ui/react-checkbox";
9
52
  import { Check } from "lucide-react";
10
53
  import * as React from "react";
11
54
  import { cn } from "@/lib/utils";
12
55
  /**
13
- * Checkbox - Componente de checkbox
56
+ * Componente Checkbox para seleção de opções.
57
+ *
58
+ * @component
59
+ * @param {CheckboxProps} props - Props do componente
60
+ * @returns {JSX.Element} Elemento Checkbox renderizado
61
+ *
62
+ * @example
63
+ * ```tsx
64
+ * <Checkbox checked={checked} onCheckedChange={setChecked} />
65
+ * <Checkbox defaultChecked />
66
+ * <Checkbox disabled />
67
+ * ```
14
68
  */
15
69
  const Checkbox = React.forwardRef(({ className, ...props }, ref) => {
16
70
  return (_jsx(CheckboxPrimitive.Root, { ref: ref, className: cn("peer h-4 w-4 shrink-0 rounded-sm border border-primary ring-offset-background", "focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2", "disabled:cursor-not-allowed disabled:opacity-50", "data-[state=checked]:bg-primary data-[state=checked]:text-primary-foreground", className), ...props, children: _jsx(CheckboxPrimitive.Indicator, { className: cn("flex items-center justify-center text-current"), children: _jsx(Check, { className: "h-4 w-4" }) }) }));
@@ -1,12 +1,68 @@
1
+ /**
2
+ * # Field Component
3
+ *
4
+ * O componente `Field` é um sistema de composição para campos de formulário que fornece
5
+ * estrutura consistente para labels, descrições, erros e conteúdo. Suporta múltiplas
6
+ * orientações (vertical, horizontal, responsive) e composição flexível.
7
+ *
8
+ * ## Características Principais
9
+ *
10
+ * - **Composição**: Múltiplos sub-componentes para flexibilidade
11
+ * - **Orientação**: Suporta vertical, horizontal e responsive
12
+ * - **Validação**: Integração com mensagens de erro
13
+ * - **Acessível**: Estrutura semântica para acessibilidade
14
+ *
15
+ * ## Componentes
16
+ *
17
+ * - **Field**: Container principal do campo
18
+ * - **FieldLabel**: Label do campo
19
+ * - **FieldDescription**: Descrição/ajuda do campo
20
+ * - **FieldError**: Mensagens de erro
21
+ * - **FieldContent**: Container para o controle
22
+ * - **FieldGroup**: Agrupa múltiplos campos
23
+ * - **FieldSet**: Fieldset semântico
24
+ * - **FieldLegend**: Legend do fieldset
25
+ * - **FieldSeparator**: Separador visual
26
+ *
27
+ * ## Uso Básico
28
+ *
29
+ * ```tsx
30
+ * import { Field, FieldLabel, FieldContent, FieldDescription } from "@flowtomic/ui/components/atoms/forms/field";
31
+ * import { Input } from "@flowtomic/ui/components/atoms/forms/input";
32
+ *
33
+ * function MyComponent() {
34
+ * return (
35
+ * <Field>
36
+ * <FieldLabel htmlFor="email">E-mail</FieldLabel>
37
+ * <FieldContent>
38
+ * <Input id="email" />
39
+ * <FieldDescription>Digite seu e-mail</FieldDescription>
40
+ * </FieldContent>
41
+ * </Field>
42
+ * );
43
+ * }
44
+ * ```
45
+ *
46
+ * @see [Input Component](../input/input.tsx) para exemplos de uso
47
+ */
1
48
  import { type VariantProps } from "class-variance-authority";
2
49
  import { Label } from "../label/label";
50
+ /**
51
+ * Props do componente FieldSet.
52
+ */
3
53
  export interface FieldSetProps extends React.ComponentProps<"fieldset"> {
4
54
  }
5
55
  declare function FieldSet({ className, ...props }: FieldSetProps): import("react/jsx-runtime").JSX.Element;
6
56
  declare namespace FieldSet {
7
57
  var displayName: string;
8
58
  }
59
+ /**
60
+ * Props do componente FieldLegend.
61
+ *
62
+ * @property {'legend' | 'label'} [variant='legend'] - Variante visual do legend
63
+ */
9
64
  export interface FieldLegendProps extends React.ComponentProps<"legend"> {
65
+ /** Variante visual do legend */
10
66
  variant?: "legend" | "label";
11
67
  }
12
68
  declare function FieldLegend({ className, variant, ...props }: FieldLegendProps): import("react/jsx-runtime").JSX.Element;
@@ -22,6 +78,11 @@ declare namespace FieldGroup {
22
78
  declare const fieldVariants: (props?: ({
23
79
  orientation?: "horizontal" | "vertical" | "responsive" | null | undefined;
24
80
  } & import("class-variance-authority/types").ClassProp) | undefined) => string;
81
+ /**
82
+ * Props do componente Field.
83
+ *
84
+ * @property {'vertical' | 'horizontal' | 'responsive'} [orientation='vertical'] - Orientação do campo
85
+ */
25
86
  export interface FieldProps extends React.ComponentProps<"div">, VariantProps<typeof fieldVariants> {
26
87
  }
27
88
  declare function Field({ className, orientation, ...props }: FieldProps): import("react/jsx-runtime").JSX.Element;
@@ -59,7 +120,13 @@ declare function FieldSeparator({ children, className, ...props }: FieldSeparato
59
120
  declare namespace FieldSeparator {
60
121
  var displayName: string;
61
122
  }
123
+ /**
124
+ * Props do componente FieldError.
125
+ *
126
+ * @property {Array<{ message?: string } | undefined>} [errors] - Array de erros a exibir
127
+ */
62
128
  export interface FieldErrorProps extends React.ComponentProps<"div"> {
129
+ /** Array de erros a exibir */
63
130
  errors?: Array<{
64
131
  message?: string;
65
132
  } | undefined>;
@@ -1 +1 @@
1
- {"version":3,"file":"field.d.ts","sourceRoot":"","sources":["../../../../../src/components/atoms/forms/field/field.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAO,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAIlE,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAEvC,MAAM,WAAW,aAAc,SAAQ,KAAK,CAAC,cAAc,CAAC,UAAU,CAAC;CAAG;AAE1E,iBAAS,QAAQ,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,aAAa,2CAYvD;kBAZQ,QAAQ;;;AAgBjB,MAAM,WAAW,gBAAiB,SAAQ,KAAK,CAAC,cAAc,CAAC,QAAQ,CAAC;IACtE,OAAO,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAC;CAC9B;AAED,iBAAS,WAAW,CAAC,EAAE,SAAS,EAAE,OAAkB,EAAE,GAAG,KAAK,EAAE,EAAE,gBAAgB,2CAcjF;kBAdQ,WAAW;;;AAkBpB,MAAM,WAAW,eAAgB,SAAQ,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC;CAAG;AAEvE,iBAAS,UAAU,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,eAAe,2CAW3D;kBAXQ,UAAU;;;AAenB,QAAA,MAAM,aAAa;;8EAmBjB,CAAC;AAEH,MAAM,WAAW,UACf,SAAQ,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,EACjC,YAAY,CAAC,OAAO,aAAa,CAAC;CAAG;AAEzC,iBAAS,KAAK,CAAC,EAAE,SAAS,EAAE,WAAwB,EAAE,GAAG,KAAK,EAAE,EAAE,UAAU,2CAW3E;kBAXQ,KAAK;;;AAed,MAAM,WAAW,iBAAkB,SAAQ,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC;CAAG;AAEzE,iBAAS,YAAY,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,iBAAiB,2CAQ/D;kBARQ,YAAY;;;AAYrB,MAAM,WAAW,eAAgB,SAAQ,KAAK,CAAC,cAAc,CAAC,OAAO,KAAK,CAAC;CAAG;AAE9E,iBAAS,UAAU,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,eAAe,2CAa3D;kBAbQ,UAAU;;;AAiBnB,MAAM,WAAW,eAAgB,SAAQ,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC;CAAG;AAEvE,iBAAS,UAAU,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,eAAe,2CAW3D;kBAXQ,UAAU;;;AAenB,MAAM,WAAW,qBAAsB,SAAQ,KAAK,CAAC,cAAc,CAAC,GAAG,CAAC;CAAG;AAE3E,iBAAS,gBAAgB,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,qBAAqB,2CAavE;kBAbQ,gBAAgB;;;AAiBzB,MAAM,WAAW,mBAAoB,SAAQ,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC;IACtE,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC5B;AAED,iBAAS,cAAc,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,mBAAmB,2CAsB7E;kBAtBQ,cAAc;;;AA0BvB,MAAM,WAAW,eAAgB,SAAQ,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC;IAClE,MAAM,CAAC,EAAE,KAAK,CAAC;QAAE,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,SAAS,CAAC,CAAC;CAClD;AAED,iBAAS,UAAU,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,KAAK,EAAE,EAAE,eAAe,kDAwC7E;kBAxCQ,UAAU;;;AA4CnB,OAAO,EACL,KAAK,EACL,UAAU,EACV,gBAAgB,EAChB,UAAU,EACV,UAAU,EACV,WAAW,EACX,cAAc,EACd,QAAQ,EACR,YAAY,EACZ,UAAU,GACX,CAAC"}
1
+ {"version":3,"file":"field.d.ts","sourceRoot":"","sources":["../../../../../src/components/atoms/forms/field/field.tsx"],"names":[],"mappings":"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"}
@@ -1,4 +1,51 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ /**
3
+ * # Field Component
4
+ *
5
+ * O componente `Field` é um sistema de composição para campos de formulário que fornece
6
+ * estrutura consistente para labels, descrições, erros e conteúdo. Suporta múltiplas
7
+ * orientações (vertical, horizontal, responsive) e composição flexível.
8
+ *
9
+ * ## Características Principais
10
+ *
11
+ * - **Composição**: Múltiplos sub-componentes para flexibilidade
12
+ * - **Orientação**: Suporta vertical, horizontal e responsive
13
+ * - **Validação**: Integração com mensagens de erro
14
+ * - **Acessível**: Estrutura semântica para acessibilidade
15
+ *
16
+ * ## Componentes
17
+ *
18
+ * - **Field**: Container principal do campo
19
+ * - **FieldLabel**: Label do campo
20
+ * - **FieldDescription**: Descrição/ajuda do campo
21
+ * - **FieldError**: Mensagens de erro
22
+ * - **FieldContent**: Container para o controle
23
+ * - **FieldGroup**: Agrupa múltiplos campos
24
+ * - **FieldSet**: Fieldset semântico
25
+ * - **FieldLegend**: Legend do fieldset
26
+ * - **FieldSeparator**: Separador visual
27
+ *
28
+ * ## Uso Básico
29
+ *
30
+ * ```tsx
31
+ * import { Field, FieldLabel, FieldContent, FieldDescription } from "@flowtomic/ui/components/atoms/forms/field";
32
+ * import { Input } from "@flowtomic/ui/components/atoms/forms/input";
33
+ *
34
+ * function MyComponent() {
35
+ * return (
36
+ * <Field>
37
+ * <FieldLabel htmlFor="email">E-mail</FieldLabel>
38
+ * <FieldContent>
39
+ * <Input id="email" />
40
+ * <FieldDescription>Digite seu e-mail</FieldDescription>
41
+ * </FieldContent>
42
+ * </Field>
43
+ * );
44
+ * }
45
+ * ```
46
+ *
47
+ * @see [Input Component](../input/input.tsx) para exemplos de uso
48
+ */
2
49
  import { cva } from "class-variance-authority";
3
50
  import { useMemo } from "react";
4
51
  import { cn } from "@/lib/utils";
@@ -1,7 +1,67 @@
1
+ /**
2
+ * # Form Component
3
+ *
4
+ * O componente `Form` é um sistema de composição para formulários baseado em React Hook Form.
5
+ * Fornece integração completa com validação, gerenciamento de estado e acessibilidade.
6
+ *
7
+ * ## Características Principais
8
+ *
9
+ * - **React Hook Form**: Integração completa com React Hook Form
10
+ * - **Validação**: Suporte a validação via Zod ou outras bibliotecas
11
+ * - **Composição**: Múltiplos sub-componentes para flexibilidade
12
+ * - **Acessível**: Estrutura semântica e mensagens de erro acessíveis
13
+ *
14
+ * ## Componentes
15
+ *
16
+ * - **Form**: Provider do formulário (FormProvider)
17
+ * - **FormField**: Campo controlado do formulário
18
+ * - **FormItem**: Container de item do formulário
19
+ * - **FormLabel**: Label do campo
20
+ * - **FormControl**: Controle do campo
21
+ * - **FormDescription**: Descrição do campo
22
+ * - **FormMessage**: Mensagem de erro/validação
23
+ *
24
+ * ## Uso Básico
25
+ *
26
+ * ```tsx
27
+ * import { useForm } from "react-hook-form";
28
+ * import { zodResolver } from "@hookform/resolvers/zod";
29
+ * import { Form, FormField, FormItem, FormLabel, FormControl } from "@flowtomic/ui/components/atoms/forms/form";
30
+ * import { Input } from "@flowtomic/ui/components/atoms/forms/input";
31
+ *
32
+ * function MyComponent() {
33
+ * const form = useForm({
34
+ * resolver: zodResolver(schema),
35
+ * });
36
+ *
37
+ * return (
38
+ * <Form {...form}>
39
+ * <FormField
40
+ * control={form.control}
41
+ * name="email"
42
+ * render={({ field }) => (
43
+ * <FormItem>
44
+ * <FormLabel>E-mail</FormLabel>
45
+ * <FormControl>
46
+ * <Input {...field} />
47
+ * </FormControl>
48
+ * </FormItem>
49
+ * )}
50
+ * />
51
+ * </Form>
52
+ * );
53
+ * }
54
+ * ```
55
+ *
56
+ * @see [React Hook Form](https://react-hook-form.com/) para mais detalhes
57
+ */
1
58
  import type * as LabelPrimitive from "@radix-ui/react-label";
2
59
  import { Slot } from "@radix-ui/react-slot";
3
60
  import * as React from "react";
4
61
  import { type ControllerProps, type FieldPath, type FieldValues } from "react-hook-form";
62
+ /**
63
+ * Componente Form (FormProvider) para gerenciamento de formulários.
64
+ */
5
65
  declare const Form: <TFieldValues extends FieldValues, TContext = any, TTransformedValues = TFieldValues>(props: import("react-hook-form").FormProviderProps<TFieldValues, TContext, TTransformedValues>) => React.JSX.Element;
6
66
  export type FormFieldProps<TFieldValues extends FieldValues = FieldValues, TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>> = ControllerProps<TFieldValues, TName>;
7
67
  declare const FormField: {
@@ -1 +1 @@
1
- {"version":3,"file":"form.d.ts","sourceRoot":"","sources":["../../../../../src/components/atoms/forms/form/form.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,cAAc,MAAM,uBAAuB,CAAC;AAC7D,OAAO,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AAC5C,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAEL,KAAK,eAAe,EACpB,KAAK,SAAS,EACd,KAAK,WAAW,EAIjB,MAAM,iBAAiB,CAAC;AAIzB,QAAA,MAAM,IAAI,4MAAe,CAAC;AAW1B,MAAM,MAAM,cAAc,CACxB,YAAY,SAAS,WAAW,GAAG,WAAW,EAC9C,KAAK,SAAS,SAAS,CAAC,YAAY,CAAC,GAAG,SAAS,CAAC,YAAY,CAAC,IAC7D,eAAe,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC;AAEzC,QAAA,MAAM,SAAS;KACb,YAAY,SAAS,WAAW,gBAChC,KAAK,SAAS,SAAS,CAAC,YAAY,CAAC,0CAGpC,cAAc,CAAC,YAAY,EAAE,KAAK,CAAC;;CAMrC,CAAC;AAIF,QAAA,MAAM,YAAY;;;;;;;;;;;CAqBjB,CAAC;AAQF,MAAM,WAAW,aAAc,SAAQ,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC;CAAG;AAErE,iBAAS,QAAQ,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,aAAa,2CAQvD;kBARQ,QAAQ;;;AAYjB,MAAM,WAAW,cAAe,SAAQ,KAAK,CAAC,cAAc,CAAC,OAAO,cAAc,CAAC,IAAI,CAAC;CAAG;AAE3F,iBAAS,SAAS,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,cAAc,2CAYzD;kBAZQ,SAAS;;;AAgBlB,MAAM,WAAW,gBAAiB,SAAQ,KAAK,CAAC,cAAc,CAAC,OAAO,IAAI,CAAC;CAAG;AAE9E,iBAAS,WAAW,CAAC,EAAE,GAAG,KAAK,EAAE,EAAE,gBAAgB,2CAYlD;kBAZQ,WAAW;;;AAgBpB,MAAM,WAAW,oBAAqB,SAAQ,KAAK,CAAC,cAAc,CAAC,GAAG,CAAC;CAAG;AAE1E,iBAAS,eAAe,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,oBAAoB,2CAWrE;kBAXQ,eAAe;;;AAexB,MAAM,WAAW,gBAAiB,SAAQ,KAAK,CAAC,cAAc,CAAC,GAAG,CAAC;CAAG;AAEtE,iBAAS,WAAW,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,gBAAgB,kDAkB7D;kBAlBQ,WAAW;;;AAsBpB,OAAO,EACL,IAAI,EACJ,QAAQ,EACR,SAAS,EACT,WAAW,EACX,eAAe,EACf,WAAW,EACX,SAAS,EACT,YAAY,GACb,CAAC"}
1
+ {"version":3,"file":"form.d.ts","sourceRoot":"","sources":["../../../../../src/components/atoms/forms/form/form.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwDG;AAEH,OAAO,KAAK,KAAK,cAAc,MAAM,uBAAuB,CAAC;AAC7D,OAAO,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AAC5C,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAEL,KAAK,eAAe,EACpB,KAAK,SAAS,EACd,KAAK,WAAW,EAIjB,MAAM,iBAAiB,CAAC;AAIzB;;GAEG;AACH,QAAA,MAAM,IAAI,4MAAe,CAAC;AAW1B,MAAM,MAAM,cAAc,CACxB,YAAY,SAAS,WAAW,GAAG,WAAW,EAC9C,KAAK,SAAS,SAAS,CAAC,YAAY,CAAC,GAAG,SAAS,CAAC,YAAY,CAAC,IAC7D,eAAe,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC;AAEzC,QAAA,MAAM,SAAS;KACb,YAAY,SAAS,WAAW,gBAChC,KAAK,SAAS,SAAS,CAAC,YAAY,CAAC,0CAGpC,cAAc,CAAC,YAAY,EAAE,KAAK,CAAC;;CAMrC,CAAC;AAIF,QAAA,MAAM,YAAY;;;;;;;;;;;CAqBjB,CAAC;AAQF,MAAM,WAAW,aAAc,SAAQ,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC;CAAG;AAErE,iBAAS,QAAQ,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,aAAa,2CAQvD;kBARQ,QAAQ;;;AAYjB,MAAM,WAAW,cAAe,SAAQ,KAAK,CAAC,cAAc,CAAC,OAAO,cAAc,CAAC,IAAI,CAAC;CAAG;AAE3F,iBAAS,SAAS,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,cAAc,2CAYzD;kBAZQ,SAAS;;;AAgBlB,MAAM,WAAW,gBAAiB,SAAQ,KAAK,CAAC,cAAc,CAAC,OAAO,IAAI,CAAC;CAAG;AAE9E,iBAAS,WAAW,CAAC,EAAE,GAAG,KAAK,EAAE,EAAE,gBAAgB,2CAYlD;kBAZQ,WAAW;;;AAgBpB,MAAM,WAAW,oBAAqB,SAAQ,KAAK,CAAC,cAAc,CAAC,GAAG,CAAC;CAAG;AAE1E,iBAAS,eAAe,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,oBAAoB,2CAWrE;kBAXQ,eAAe;;;AAexB,MAAM,WAAW,gBAAiB,SAAQ,KAAK,CAAC,cAAc,CAAC,GAAG,CAAC;CAAG;AAEtE,iBAAS,WAAW,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,gBAAgB,kDAkB7D;kBAlBQ,WAAW;;;AAsBpB,OAAO,EACL,IAAI,EACJ,QAAQ,EACR,SAAS,EACT,WAAW,EACX,eAAe,EACf,WAAW,EACX,SAAS,EACT,YAAY,GACb,CAAC"}
@@ -4,6 +4,9 @@ import * as React from "react";
4
4
  import { Controller, FormProvider, useFormContext, useFormState, } from "react-hook-form";
5
5
  import { cn } from "@/lib/utils";
6
6
  import { Label } from "../label/label";
7
+ /**
8
+ * Componente Form (FormProvider) para gerenciamento de formulários.
9
+ */
7
10
  const Form = FormProvider;
8
11
  const FormFieldContext = React.createContext({});
9
12
  const FormField = ({ ...props }) => {
@@ -1,14 +1,113 @@
1
+ /**
2
+ * # Input Component
3
+ *
4
+ * O componente `Input` é um campo de entrada de texto usado para coletar dados do usuário.
5
+ * Ele fornece uma interface consistente e acessível para entrada de texto com suporte a
6
+ * labels, mensagens de erro e texto de ajuda.
7
+ *
8
+ * ## Características Principais
9
+ *
10
+ * - **Variantes Visuais**: Suporta variantes (default, error, success) para feedback visual
11
+ * - **Tamanhos Flexíveis**: Três tamanhos disponíveis (default, sm, lg)
12
+ * - **Labels e Helpers**: Suporta label opcional e texto de ajuda
13
+ * - **Validação Visual**: Exibe mensagens de erro com estilo destrutivo
14
+ * - **Acessível**: Suporta labels associados e navegação por teclado
15
+ * - **Customizável**: Pode ser estilizado via className e props HTML padrão
16
+ *
17
+ * ## Variantes
18
+ *
19
+ * - **`default`**: Variante padrão com borda normal
20
+ * - **`error`**: Variante para estados de erro (borda vermelha)
21
+ * - **`success`**: Variante para estados de sucesso (borda verde)
22
+ *
23
+ * ## Tamanhos
24
+ *
25
+ * - **`default`**: Tamanho padrão (h-10)
26
+ * - **`sm`**: Tamanho pequeno (h-9)
27
+ * - **`lg`**: Tamanho grande (h-11)
28
+ *
29
+ * ## Uso Básico
30
+ *
31
+ * ```tsx
32
+ * import { Input } from "@flowtomic/ui/components/atoms/forms/input";
33
+ *
34
+ * function MyComponent() {
35
+ * return (
36
+ * <Input
37
+ * label="Nome"
38
+ * placeholder="Digite seu nome"
39
+ * helperText="Este campo é obrigatório"
40
+ * />
41
+ * );
42
+ * }
43
+ * ```
44
+ *
45
+ * ## Com Validação
46
+ *
47
+ * ```tsx
48
+ * <Input
49
+ * label="Email"
50
+ * type="email"
51
+ * error="Email inválido"
52
+ * variant="error"
53
+ * />
54
+ * ```
55
+ *
56
+ * ## Acessibilidade
57
+ *
58
+ * - Label associado automaticamente via htmlFor/id
59
+ * - Suporta aria-* attributes para melhor acessibilidade
60
+ * - Mensagens de erro são exibidas como texto acessível
61
+ * - Suporta navegação por teclado
62
+ *
63
+ * @see [Label Component](../label/label.tsx) para labels customizados
64
+ */
1
65
  import { type VariantProps } from "class-variance-authority";
2
66
  import React from "react";
67
+ /**
68
+ * Variantes de estilo do Input usando class-variance-authority.
69
+ * Define as classes CSS para diferentes variantes e tamanhos.
70
+ */
3
71
  declare const inputVariants: (props?: ({
4
72
  size?: "default" | "sm" | "lg" | null | undefined;
5
- variant?: "default" | "success" | "error" | null | undefined;
73
+ variant?: "default" | "error" | "success" | null | undefined;
6
74
  } & import("class-variance-authority/types").ClassProp) | undefined) => string;
75
+ /**
76
+ * Props do componente Input.
77
+ *
78
+ * @interface InputProps
79
+ * @extends {Omit<React.InputHTMLAttributes<HTMLInputElement>, "size">}
80
+ * @extends {VariantProps<typeof inputVariants>}
81
+ *
82
+ * @property {string} [label] - Label opcional exibido acima do input
83
+ * @property {string} [error] - Mensagem de erro exibida abaixo do input
84
+ * @property {string} [helperText] - Texto de ajuda exibido abaixo do input (quando não há erro)
85
+ * @property {'default' | 'error' | 'success'} [variant='default'] - Variante visual do input
86
+ * @property {'default' | 'sm' | 'lg'} [size='default'] - Tamanho do input
87
+ * @property {string} [className] - Classes CSS adicionais
88
+ */
7
89
  export interface InputProps extends Omit<React.InputHTMLAttributes<HTMLInputElement>, "size">, VariantProps<typeof inputVariants> {
90
+ /** Label opcional exibido acima do input */
8
91
  label?: string;
92
+ /** Mensagem de erro exibida abaixo do input */
9
93
  error?: string;
94
+ /** Texto de ajuda exibido abaixo do input (quando não há erro) */
10
95
  helperText?: string;
11
96
  }
97
+ /**
98
+ * Componente Input para entrada de texto.
99
+ *
100
+ * @component
101
+ * @param {InputProps} props - Props do componente
102
+ * @returns {JSX.Element} Elemento Input renderizado
103
+ *
104
+ * @example
105
+ * ```tsx
106
+ * <Input label="Nome" placeholder="Digite seu nome" />
107
+ * <Input label="Email" type="email" error="Email inválido" variant="error" />
108
+ * <Input label="Senha" type="password" helperText="Mínimo 8 caracteres" />
109
+ * ```
110
+ */
12
111
  declare const Input: React.ForwardRefExoticComponent<InputProps & React.RefAttributes<HTMLInputElement>>;
13
112
  export { Input, inputVariants };
14
113
  //# sourceMappingURL=input.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"input.d.ts","sourceRoot":"","sources":["../../../../../src/components/atoms/forms/input/input.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAO,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,QAAA,MAAM,aAAa;;;8EAoBlB,CAAC;AAEF,MAAM,WAAW,UACf,SAAQ,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC,EAC/D,YAAY,CAAC,OAAO,aAAa,CAAC;IACpC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,QAAA,MAAM,KAAK,qFA0BV,CAAC;AAGF,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,CAAC"}
1
+ {"version":3,"file":"input.d.ts","sourceRoot":"","sources":["../../../../../src/components/atoms/forms/input/input.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+DG;AAEH,OAAO,EAAO,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B;;;GAGG;AACH,QAAA,MAAM,aAAa;;;8EAoBlB,CAAC;AAEF;;;;;;;;;;;;;GAaG;AACH,MAAM,WAAW,UACf,SAAQ,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC,EAC/D,YAAY,CAAC,OAAO,aAAa,CAAC;IACpC,4CAA4C;IAC5C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,+CAA+C;IAC/C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,kEAAkE;IAClE,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;;;;;;;;;;;;GAaG;AACH,QAAA,MAAM,KAAK,qFA0BV,CAAC;AAGF,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,CAAC"}
@@ -1,7 +1,75 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ /**
3
+ * # Input Component
4
+ *
5
+ * O componente `Input` é um campo de entrada de texto usado para coletar dados do usuário.
6
+ * Ele fornece uma interface consistente e acessível para entrada de texto com suporte a
7
+ * labels, mensagens de erro e texto de ajuda.
8
+ *
9
+ * ## Características Principais
10
+ *
11
+ * - **Variantes Visuais**: Suporta variantes (default, error, success) para feedback visual
12
+ * - **Tamanhos Flexíveis**: Três tamanhos disponíveis (default, sm, lg)
13
+ * - **Labels e Helpers**: Suporta label opcional e texto de ajuda
14
+ * - **Validação Visual**: Exibe mensagens de erro com estilo destrutivo
15
+ * - **Acessível**: Suporta labels associados e navegação por teclado
16
+ * - **Customizável**: Pode ser estilizado via className e props HTML padrão
17
+ *
18
+ * ## Variantes
19
+ *
20
+ * - **`default`**: Variante padrão com borda normal
21
+ * - **`error`**: Variante para estados de erro (borda vermelha)
22
+ * - **`success`**: Variante para estados de sucesso (borda verde)
23
+ *
24
+ * ## Tamanhos
25
+ *
26
+ * - **`default`**: Tamanho padrão (h-10)
27
+ * - **`sm`**: Tamanho pequeno (h-9)
28
+ * - **`lg`**: Tamanho grande (h-11)
29
+ *
30
+ * ## Uso Básico
31
+ *
32
+ * ```tsx
33
+ * import { Input } from "@flowtomic/ui/components/atoms/forms/input";
34
+ *
35
+ * function MyComponent() {
36
+ * return (
37
+ * <Input
38
+ * label="Nome"
39
+ * placeholder="Digite seu nome"
40
+ * helperText="Este campo é obrigatório"
41
+ * />
42
+ * );
43
+ * }
44
+ * ```
45
+ *
46
+ * ## Com Validação
47
+ *
48
+ * ```tsx
49
+ * <Input
50
+ * label="Email"
51
+ * type="email"
52
+ * error="Email inválido"
53
+ * variant="error"
54
+ * />
55
+ * ```
56
+ *
57
+ * ## Acessibilidade
58
+ *
59
+ * - Label associado automaticamente via htmlFor/id
60
+ * - Suporta aria-* attributes para melhor acessibilidade
61
+ * - Mensagens de erro são exibidas como texto acessível
62
+ * - Suporta navegação por teclado
63
+ *
64
+ * @see [Label Component](../label/label.tsx) para labels customizados
65
+ */
2
66
  import { cva } from "class-variance-authority";
3
67
  import React from "react";
4
68
  import { cn } from "@/lib/utils";
69
+ /**
70
+ * Variantes de estilo do Input usando class-variance-authority.
71
+ * Define as classes CSS para diferentes variantes e tamanhos.
72
+ */
5
73
  const inputVariants = cva("flex w-full rounded-md border border-input bg-transparent px-3 py-2 text-sm ring-offset-background file:border-0 file:bg-transparent file:text-sm file:font-medium placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50", {
6
74
  variants: {
7
75
  size: {
@@ -20,6 +88,20 @@ const inputVariants = cva("flex w-full rounded-md border border-input bg-transpa
20
88
  variant: "default",
21
89
  },
22
90
  });
91
+ /**
92
+ * Componente Input para entrada de texto.
93
+ *
94
+ * @component
95
+ * @param {InputProps} props - Props do componente
96
+ * @returns {JSX.Element} Elemento Input renderizado
97
+ *
98
+ * @example
99
+ * ```tsx
100
+ * <Input label="Nome" placeholder="Digite seu nome" />
101
+ * <Input label="Email" type="email" error="Email inválido" variant="error" />
102
+ * <Input label="Senha" type="password" helperText="Mínimo 8 caracteres" />
103
+ * ```
104
+ */
23
105
  const Input = React.forwardRef(({ className, size, variant, label, error, helperText, id, ...props }, ref) => {
24
106
  const generatedId = React.useId();
25
107
  const inputId = id || generatedId;