@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.
- package/dist/components/_reference/shadcn-ai/prompt-input.d.ts +48 -0
- package/dist/components/_reference/shadcn-ai/prompt-input.d.ts.map +1 -0
- package/dist/components/_reference/shadcn-ai/prompt-input.js +67 -0
- package/dist/components/atoms/actions/badge/badge.d.ts +97 -1
- package/dist/components/atoms/actions/badge/badge.d.ts.map +1 -1
- package/dist/components/atoms/actions/badge/badge.js +83 -0
- package/dist/components/atoms/actions/button/button.d.ts +134 -1
- package/dist/components/atoms/actions/button/button.d.ts.map +1 -1
- package/dist/components/atoms/actions/button/button.js +106 -0
- package/dist/components/atoms/actions/context-menu/context-menu.d.ts +79 -0
- package/dist/components/atoms/actions/context-menu/context-menu.d.ts.map +1 -1
- package/dist/components/atoms/actions/context-menu/context-menu.js +55 -0
- package/dist/components/atoms/actions/dropdown-menu/dropdown-menu.d.ts +51 -3
- package/dist/components/atoms/actions/dropdown-menu/dropdown-menu.d.ts.map +1 -1
- package/dist/components/atoms/actions/dropdown-menu/dropdown-menu.js +51 -3
- package/dist/components/atoms/animation/encrypted-text/encrypted-text.d.ts.map +1 -1
- package/dist/components/atoms/animation/encrypted-text/encrypted-text.js +3 -1
- package/dist/components/atoms/feedback/alert/alert.d.ts +77 -12
- package/dist/components/atoms/feedback/alert/alert.d.ts.map +1 -1
- package/dist/components/atoms/feedback/alert/alert.js +64 -12
- package/dist/components/atoms/feedback/alert-dialog/alert-dialog.d.ts +2 -2
- package/dist/components/atoms/feedback/dialog/dialog.d.ts +66 -8
- package/dist/components/atoms/feedback/dialog/dialog.d.ts.map +1 -1
- package/dist/components/atoms/feedback/dialog/dialog.js +66 -8
- package/dist/components/atoms/feedback/hover-card/hover-card.d.ts +45 -5
- package/dist/components/atoms/feedback/hover-card/hover-card.d.ts.map +1 -1
- package/dist/components/atoms/feedback/hover-card/hover-card.js +45 -5
- package/dist/components/atoms/feedback/inline-citation/inline-citation.d.ts +53 -2
- package/dist/components/atoms/feedback/inline-citation/inline-citation.d.ts.map +1 -1
- package/dist/components/atoms/feedback/inline-citation/inline-citation.js +53 -2
- package/dist/components/atoms/feedback/popover/popover.d.ts +78 -0
- package/dist/components/atoms/feedback/popover/popover.d.ts.map +1 -1
- package/dist/components/atoms/feedback/popover/popover.js +64 -0
- package/dist/components/atoms/feedback/sheet/sheet.d.ts +90 -0
- package/dist/components/atoms/feedback/sheet/sheet.d.ts.map +1 -1
- package/dist/components/atoms/feedback/sheet/sheet.js +78 -0
- package/dist/components/atoms/feedback/sonner/sonner.d.ts +66 -6
- package/dist/components/atoms/feedback/sonner/sonner.d.ts.map +1 -1
- package/dist/components/atoms/feedback/sonner/sonner.js +66 -6
- package/dist/components/atoms/feedback/tooltip/tooltip.d.ts +54 -4
- package/dist/components/atoms/feedback/tooltip/tooltip.d.ts.map +1 -1
- package/dist/components/atoms/feedback/tooltip/tooltip.js +63 -5
- package/dist/components/atoms/forms/checkbox/checkbox.d.ts +62 -4
- package/dist/components/atoms/forms/checkbox/checkbox.d.ts.map +1 -1
- package/dist/components/atoms/forms/checkbox/checkbox.js +58 -4
- package/dist/components/atoms/forms/field/field.d.ts +67 -0
- package/dist/components/atoms/forms/field/field.d.ts.map +1 -1
- package/dist/components/atoms/forms/field/field.js +47 -0
- package/dist/components/atoms/forms/form/form.d.ts +60 -0
- package/dist/components/atoms/forms/form/form.d.ts.map +1 -1
- package/dist/components/atoms/forms/form/form.js +3 -0
- package/dist/components/atoms/forms/input/input.d.ts +100 -1
- package/dist/components/atoms/forms/input/input.d.ts.map +1 -1
- package/dist/components/atoms/forms/input/input.js +82 -0
- package/dist/components/atoms/forms/input-otp/input-otp.d.ts +62 -0
- package/dist/components/atoms/forms/input-otp/input-otp.d.ts.map +1 -1
- package/dist/components/atoms/forms/input-otp/input-otp.js +50 -0
- package/dist/components/atoms/forms/label/label.d.ts +54 -0
- package/dist/components/atoms/forms/label/label.d.ts.map +1 -1
- package/dist/components/atoms/forms/label/label.js +50 -0
- package/dist/components/atoms/forms/radio-group/radio-group.d.ts +47 -0
- package/dist/components/atoms/forms/radio-group/radio-group.d.ts.map +1 -1
- package/dist/components/atoms/forms/radio-group/radio-group.js +43 -0
- package/dist/components/atoms/forms/select/select.d.ts +62 -0
- package/dist/components/atoms/forms/select/select.d.ts.map +1 -1
- package/dist/components/atoms/forms/select/select.js +62 -0
- package/dist/components/atoms/forms/slider/slider.d.ts +60 -0
- package/dist/components/atoms/forms/slider/slider.d.ts.map +1 -1
- package/dist/components/atoms/forms/slider/slider.js +53 -1
- package/dist/components/atoms/forms/switch/switch.d.ts +67 -0
- package/dist/components/atoms/forms/switch/switch.d.ts.map +1 -1
- package/dist/components/atoms/forms/switch/switch.js +63 -0
- package/dist/components/atoms/forms/textarea/textarea.d.ts +66 -0
- package/dist/components/atoms/forms/textarea/textarea.d.ts.map +1 -1
- package/dist/components/atoms/forms/textarea/textarea.js +13 -0
- package/dist/components/atoms/forms/toggle/toggle.d.ts +65 -1
- package/dist/components/atoms/forms/toggle/toggle.d.ts.map +1 -1
- package/dist/components/atoms/forms/toggle/toggle.js +58 -0
- package/dist/components/atoms/index.d.ts +0 -2
- package/dist/components/atoms/index.d.ts.map +1 -1
- package/dist/components/atoms/index.js +0 -1
- package/dist/components/atoms/layout/accordion/accordion.d.ts +84 -0
- package/dist/components/atoms/layout/accordion/accordion.d.ts.map +1 -1
- package/dist/components/atoms/layout/accordion/accordion.js +72 -0
- package/dist/components/atoms/layout/aspect-ratio/aspect-ratio.d.ts +54 -0
- package/dist/components/atoms/layout/aspect-ratio/aspect-ratio.d.ts.map +1 -1
- package/dist/components/atoms/layout/aspect-ratio/aspect-ratio.js +49 -0
- package/dist/components/atoms/layout/collapsible/collapsible.d.ts +47 -5
- package/dist/components/atoms/layout/collapsible/collapsible.d.ts.map +1 -1
- package/dist/components/atoms/layout/collapsible/collapsible.js +47 -5
- package/dist/components/atoms/layout/drawer/drawer.d.ts +55 -0
- package/dist/components/atoms/layout/drawer/drawer.d.ts.map +1 -1
- package/dist/components/atoms/layout/index.d.ts +2 -0
- package/dist/components/atoms/layout/index.d.ts.map +1 -1
- package/dist/components/atoms/layout/index.js +1 -0
- package/dist/components/atoms/layout/resizable/resizable.d.ts +77 -2
- package/dist/components/atoms/layout/resizable/resizable.d.ts.map +1 -1
- package/dist/components/atoms/layout/resizable/resizable.js +68 -0
- package/dist/components/atoms/layout/scroll-area/scroll-area.d.ts +34 -2
- package/dist/components/atoms/layout/scroll-area/scroll-area.d.ts.map +1 -1
- package/dist/components/atoms/layout/scroll-area/scroll-area.js +35 -3
- package/dist/components/atoms/layout/sidebar/sidebar.d.ts +66 -1
- package/dist/components/atoms/layout/sidebar/sidebar.d.ts.map +1 -1
- package/dist/components/atoms/layout/sidebar/sidebar.js +66 -0
- package/dist/components/atoms/layout/toggle-group/toggle-group.d.ts +73 -0
- package/dist/components/atoms/layout/toggle-group/toggle-group.d.ts.map +1 -1
- package/dist/components/atoms/layout/toggle-group/toggle-group.js +57 -0
- package/dist/components/atoms/layout/widget-resize-handle/index.d.ts +3 -0
- package/dist/components/atoms/layout/widget-resize-handle/index.d.ts.map +1 -0
- package/dist/components/atoms/layout/widget-resize-handle/index.js +1 -0
- package/dist/components/atoms/layout/widget-resize-handle/widget-resize-handle.d.ts +98 -0
- package/dist/components/atoms/layout/widget-resize-handle/widget-resize-handle.d.ts.map +1 -0
- package/dist/components/atoms/layout/widget-resize-handle/widget-resize-handle.js +117 -0
- package/dist/components/atoms/navigation/command/command.d.ts +7 -7
- package/dist/components/molecules/data-display/chat-message/chat-message.d.ts +39 -0
- package/dist/components/molecules/data-display/chat-message/chat-message.d.ts.map +1 -0
- package/dist/components/molecules/data-display/chat-message/chat-message.js +85 -0
- package/dist/components/molecules/data-display/chat-message/index.d.ts +3 -0
- package/dist/components/molecules/data-display/chat-message/index.d.ts.map +1 -0
- package/dist/components/molecules/data-display/chat-message/index.js +1 -0
- package/dist/components/molecules/data-display/message/message.d.ts +22 -6
- package/dist/components/molecules/data-display/message/message.d.ts.map +1 -1
- package/dist/components/molecules/data-display/message/message.js +192 -8
- package/dist/components/molecules/draggable-widget/draggable-widget.d.ts.map +1 -1
- package/dist/components/molecules/draggable-widget/draggable-widget.js +6 -2
- package/dist/components/molecules/feedback/edit-chat-message-modal/edit-chat-message-modal.d.ts +20 -0
- package/dist/components/molecules/feedback/edit-chat-message-modal/edit-chat-message-modal.d.ts.map +1 -0
- package/dist/components/molecules/feedback/edit-chat-message-modal/edit-chat-message-modal.js +65 -0
- package/dist/components/molecules/feedback/edit-chat-message-modal/index.d.ts +3 -0
- package/dist/components/molecules/feedback/edit-chat-message-modal/index.d.ts.map +1 -0
- package/dist/components/molecules/feedback/edit-chat-message-modal/index.js +1 -0
- package/dist/components/molecules/forms/autocomplete/autocomplete-section.d.ts.map +1 -1
- package/dist/components/molecules/forms/autocomplete/autocomplete-section.js +3 -1
- package/dist/components/molecules/forms/chat-input/chat-input.d.ts +46 -0
- package/dist/components/molecules/forms/chat-input/chat-input.d.ts.map +1 -0
- package/dist/components/molecules/forms/chat-input/chat-input.js +57 -0
- package/dist/components/molecules/forms/chat-input/index.d.ts +3 -0
- package/dist/components/molecules/forms/chat-input/index.d.ts.map +1 -0
- package/dist/components/molecules/forms/chat-input/index.js +1 -0
- package/dist/components/molecules/forms/item/item.d.ts +1 -1
- package/dist/components/molecules/forms/text-editor/text-editor.d.ts.map +1 -1
- package/dist/components/molecules/index.d.ts +6 -0
- package/dist/components/molecules/index.d.ts.map +1 -1
- package/dist/components/molecules/index.js +3 -0
- package/dist/components/molecules/navigation/menu-dock/menu-dock.js +1 -1
- package/dist/components/organisms/chat-log/chat-log.d.ts +30 -0
- package/dist/components/organisms/chat-log/chat-log.d.ts.map +1 -0
- package/dist/components/organisms/chat-log/chat-log.js +21 -0
- package/dist/components/organisms/chat-log/index.d.ts +3 -0
- package/dist/components/organisms/chat-log/index.d.ts.map +1 -0
- package/dist/components/organisms/chat-log/index.js +1 -0
- package/dist/components/organisms/document-editor/document-editor.d.ts.map +1 -1
- package/dist/components/organisms/document-editor/document-editor.js +2 -2
- package/dist/components/organisms/draggable-dashboard-grid/draggable-dashboard-grid.d.ts.map +1 -1
- package/dist/components/organisms/draggable-dashboard-grid/draggable-dashboard-grid.js +1 -1
- package/dist/components/organisms/form-layout/form-layout.d.ts.map +1 -1
- package/dist/components/organisms/form-layout/form-layout.js +3 -1
- package/dist/components/organisms/genealogy-canvas/genealogy-canvas.d.ts +0 -5
- package/dist/components/organisms/genealogy-canvas/genealogy-canvas.d.ts.map +1 -1
- package/dist/components/organisms/genealogy-canvas/genealogy-canvas.js +50 -55
- package/dist/components/organisms/index.d.ts +2 -0
- package/dist/components/organisms/index.d.ts.map +1 -1
- package/dist/components/organisms/index.js +1 -0
- package/dist/components/organisms/model-selector/model-selector.d.ts +1 -1
- package/dist/components/organisms/prompt-input/index.d.ts +1 -1
- package/dist/components/organisms/prompt-input/index.d.ts.map +1 -1
- package/dist/components/organisms/prompt-input/index.js +1 -1
- package/dist/components/organisms/prompt-input/prompt-input.d.ts +22 -7
- package/dist/components/organisms/prompt-input/prompt-input.d.ts.map +1 -1
- package/dist/components/organisms/prompt-input/prompt-input.js +26 -17
- package/dist/index.js +501 -501
- package/dist/test/setup.d.ts +2 -0
- package/dist/test/setup.d.ts.map +1 -0
- package/dist/test/setup.js +43 -0
- 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?: "
|
|
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
|
|
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"}
|
|
@@ -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
|
}
|