@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,14 +1,78 @@
|
|
|
1
1
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
/**
|
|
3
|
+
* # Popover Component
|
|
4
|
+
*
|
|
5
|
+
* O componente `Popover` é usado para exibir conteúdo flutuante que aparece
|
|
6
|
+
* quando o usuário clica em um trigger. É baseado em Radix UI para garantir
|
|
7
|
+
* acessibilidade completa.
|
|
8
|
+
*
|
|
9
|
+
* ## Características Principais
|
|
10
|
+
*
|
|
11
|
+
* - **Acessível**: Baseado em Radix UI com suporte completo a leitores de tela
|
|
12
|
+
* - **Posicionamento**: Suporta alinhamento e offset customizáveis
|
|
13
|
+
* - **Composição**: Popover + PopoverTrigger + PopoverContent para flexibilidade
|
|
14
|
+
* - **Foco Gerenciado**: Foco e navegação por teclado gerenciados automaticamente
|
|
15
|
+
*
|
|
16
|
+
* ## Uso Básico
|
|
17
|
+
*
|
|
18
|
+
* ```tsx
|
|
19
|
+
* import { Popover, PopoverTrigger, PopoverContent } from "@flowtomic/ui/components/atoms/feedback/popover";
|
|
20
|
+
*
|
|
21
|
+
* function MyComponent() {
|
|
22
|
+
* return (
|
|
23
|
+
* <Popover>
|
|
24
|
+
* <PopoverTrigger>Open</PopoverTrigger>
|
|
25
|
+
* <PopoverContent>
|
|
26
|
+
* <p>Conteúdo do popover</p>
|
|
27
|
+
* </PopoverContent>
|
|
28
|
+
* </Popover>
|
|
29
|
+
* );
|
|
30
|
+
* }
|
|
31
|
+
* ```
|
|
32
|
+
*
|
|
33
|
+
* ## Acessibilidade
|
|
34
|
+
*
|
|
35
|
+
* - Suporta navegação por teclado (Tab, Escape)
|
|
36
|
+
* - Segue padrões WAI-ARIA via Radix UI
|
|
37
|
+
* - Suporta leitores de tela
|
|
38
|
+
* - Foco gerenciado automaticamente
|
|
39
|
+
*
|
|
40
|
+
* @see [Radix UI Popover](https://www.radix-ui.com/primitives/docs/components/popover) para mais detalhes
|
|
41
|
+
*/
|
|
2
42
|
import * as PopoverPrimitive from "@radix-ui/react-popover";
|
|
3
43
|
import { cn } from "@/lib/utils";
|
|
44
|
+
/**
|
|
45
|
+
* Popover - Container principal do popover.
|
|
46
|
+
*
|
|
47
|
+
* Componente usado para exibir conteúdo flutuante quando o usuário clica em um trigger.
|
|
48
|
+
*
|
|
49
|
+
* @param {PopoverProps} props - Props do componente
|
|
50
|
+
* @returns {JSX.Element} Componente Popover
|
|
51
|
+
*/
|
|
4
52
|
function Popover({ ...props }) {
|
|
5
53
|
return _jsx(PopoverPrimitive.Root, { "data-slot": "popover", ...props });
|
|
6
54
|
}
|
|
7
55
|
Popover.displayName = "Popover";
|
|
56
|
+
/**
|
|
57
|
+
* PopoverTrigger - Trigger do popover.
|
|
58
|
+
*
|
|
59
|
+
* Componente usado como trigger para abrir o popover.
|
|
60
|
+
*
|
|
61
|
+
* @param {PopoverTriggerProps} props - Props do componente
|
|
62
|
+
* @returns {JSX.Element} Componente PopoverTrigger
|
|
63
|
+
*/
|
|
8
64
|
function PopoverTrigger({ ...props }) {
|
|
9
65
|
return _jsx(PopoverPrimitive.Trigger, { "data-slot": "popover-trigger", ...props });
|
|
10
66
|
}
|
|
11
67
|
PopoverTrigger.displayName = "PopoverTrigger";
|
|
68
|
+
/**
|
|
69
|
+
* PopoverContent - Conteúdo do popover.
|
|
70
|
+
*
|
|
71
|
+
* Componente usado para exibir o conteúdo do popover.
|
|
72
|
+
*
|
|
73
|
+
* @param {PopoverContentProps} props - Props do componente
|
|
74
|
+
* @returns {JSX.Element} Componente PopoverContent
|
|
75
|
+
*/
|
|
12
76
|
function PopoverContent({ className, align = "center", sideOffset = 4, ...props }) {
|
|
13
77
|
return (_jsx(PopoverPrimitive.Portal, { children: _jsx(PopoverPrimitive.Content, { "data-slot": "popover-content", align: align, sideOffset: sideOffset, className: cn("bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 w-72 origin-(--radix-popover-content-transform-origin) rounded-md border p-4 shadow-md outline-hidden", className), ...props }) }));
|
|
14
78
|
}
|
|
@@ -1,13 +1,89 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* # Sheet Component
|
|
3
|
+
*
|
|
4
|
+
* O componente `Sheet` é usado para exibir conteúdo em um painel lateral deslizante.
|
|
5
|
+
* É baseado em Radix UI Dialog para garantir acessibilidade completa.
|
|
6
|
+
*
|
|
7
|
+
* ## Características Principais
|
|
8
|
+
*
|
|
9
|
+
* - **Acessível**: Baseado em Radix UI Dialog com suporte completo a leitores de tela
|
|
10
|
+
* - **Lados**: Suporta abertura de qualquer lado (top, right, bottom, left)
|
|
11
|
+
* - **Composição**: Múltiplos sub-componentes para flexibilidade
|
|
12
|
+
* - **Foco Gerenciado**: Foco e navegação por teclado gerenciados automaticamente
|
|
13
|
+
* - **Overlay**: Overlay escuro por padrão
|
|
14
|
+
*
|
|
15
|
+
* ## Componentes
|
|
16
|
+
*
|
|
17
|
+
* - **Sheet**: Container principal
|
|
18
|
+
* - **SheetTrigger**: Trigger para abrir o sheet
|
|
19
|
+
* - **SheetContent**: Conteúdo do sheet
|
|
20
|
+
* - **SheetHeader**: Cabeçalho do sheet
|
|
21
|
+
* - **SheetFooter**: Rodapé do sheet
|
|
22
|
+
* - **SheetTitle**: Título do sheet
|
|
23
|
+
* - **SheetDescription**: Descrição do sheet
|
|
24
|
+
* - **SheetClose**: Botão de fechar
|
|
25
|
+
*
|
|
26
|
+
* ## Uso Básico
|
|
27
|
+
*
|
|
28
|
+
* ```tsx
|
|
29
|
+
* import { Sheet, SheetTrigger, SheetContent, SheetHeader, SheetTitle } from "@flowtomic/ui/components/atoms/feedback/sheet";
|
|
30
|
+
*
|
|
31
|
+
* function MyComponent() {
|
|
32
|
+
* return (
|
|
33
|
+
* <Sheet>
|
|
34
|
+
* <SheetTrigger>Open Sheet</SheetTrigger>
|
|
35
|
+
* <SheetContent>
|
|
36
|
+
* <SheetHeader>
|
|
37
|
+
* <SheetTitle>Sheet Title</SheetTitle>
|
|
38
|
+
* </SheetHeader>
|
|
39
|
+
* </SheetContent>
|
|
40
|
+
* </Sheet>
|
|
41
|
+
* );
|
|
42
|
+
* }
|
|
43
|
+
* ```
|
|
44
|
+
*
|
|
45
|
+
* ## Acessibilidade
|
|
46
|
+
*
|
|
47
|
+
* - Suporta navegação por teclado (Tab, Escape)
|
|
48
|
+
* - Segue padrões WAI-ARIA via Radix UI
|
|
49
|
+
* - Suporta leitores de tela
|
|
50
|
+
* - Foco gerenciado automaticamente
|
|
51
|
+
* - Foco retorna ao trigger quando fechado
|
|
52
|
+
*
|
|
53
|
+
* @see [Radix UI Dialog](https://www.radix-ui.com/primitives/docs/components/dialog) para mais detalhes
|
|
54
|
+
*/
|
|
1
55
|
import * as SheetPrimitive from "@radix-ui/react-dialog";
|
|
2
56
|
import type * as React from "react";
|
|
57
|
+
/**
|
|
58
|
+
* Props do componente Sheet.
|
|
59
|
+
*/
|
|
3
60
|
export interface SheetProps extends React.ComponentProps<typeof SheetPrimitive.Root> {
|
|
4
61
|
}
|
|
62
|
+
/**
|
|
63
|
+
* Sheet - Container principal do sheet.
|
|
64
|
+
*
|
|
65
|
+
* Componente usado para gerenciar o estado do sheet.
|
|
66
|
+
*
|
|
67
|
+
* @param {SheetProps} props - Props do componente
|
|
68
|
+
* @returns {JSX.Element} Componente Sheet
|
|
69
|
+
*/
|
|
5
70
|
declare function Sheet({ ...props }: SheetProps): import("react/jsx-runtime").JSX.Element;
|
|
6
71
|
declare namespace Sheet {
|
|
7
72
|
var displayName: string;
|
|
8
73
|
}
|
|
74
|
+
/**
|
|
75
|
+
* Props do componente SheetTrigger.
|
|
76
|
+
*/
|
|
9
77
|
export interface SheetTriggerProps extends React.ComponentProps<typeof SheetPrimitive.Trigger> {
|
|
10
78
|
}
|
|
79
|
+
/**
|
|
80
|
+
* SheetTrigger - Trigger do sheet.
|
|
81
|
+
*
|
|
82
|
+
* Componente usado como trigger para abrir o sheet.
|
|
83
|
+
*
|
|
84
|
+
* @param {SheetTriggerProps} props - Props do componente
|
|
85
|
+
* @returns {JSX.Element} Componente SheetTrigger
|
|
86
|
+
*/
|
|
11
87
|
declare function SheetTrigger({ ...props }: SheetTriggerProps): import("react/jsx-runtime").JSX.Element;
|
|
12
88
|
declare namespace SheetTrigger {
|
|
13
89
|
var displayName: string;
|
|
@@ -30,9 +106,23 @@ declare function SheetOverlay({ className, ...props }: SheetOverlayProps): impor
|
|
|
30
106
|
declare namespace SheetOverlay {
|
|
31
107
|
var displayName: string;
|
|
32
108
|
}
|
|
109
|
+
/**
|
|
110
|
+
* Props do componente SheetContent.
|
|
111
|
+
*
|
|
112
|
+
* @property {'top' | 'right' | 'bottom' | 'left'} [side='right'] - Lado de onde o sheet abre
|
|
113
|
+
*/
|
|
33
114
|
export interface SheetContentProps extends React.ComponentProps<typeof SheetPrimitive.Content> {
|
|
115
|
+
/** Lado de onde o sheet abre */
|
|
34
116
|
side?: "top" | "right" | "bottom" | "left";
|
|
35
117
|
}
|
|
118
|
+
/**
|
|
119
|
+
* SheetContent - Conteúdo do sheet.
|
|
120
|
+
*
|
|
121
|
+
* Componente usado para exibir o conteúdo do sheet.
|
|
122
|
+
*
|
|
123
|
+
* @param {SheetContentProps} props - Props do componente
|
|
124
|
+
* @returns {JSX.Element} Componente SheetContent
|
|
125
|
+
*/
|
|
36
126
|
declare function SheetContent({ className, children, side, ...props }: SheetContentProps): import("react/jsx-runtime").JSX.Element;
|
|
37
127
|
declare namespace SheetContent {
|
|
38
128
|
var displayName: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sheet.d.ts","sourceRoot":"","sources":["../../../../../src/components/atoms/feedback/sheet/sheet.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,cAAc,MAAM,wBAAwB,CAAC;AAEzD,OAAO,KAAK,KAAK,KAAK,MAAM,OAAO,CAAC;AAGpC,MAAM,WAAW,UAAW,SAAQ,KAAK,CAAC,cAAc,CAAC,OAAO,cAAc,CAAC,IAAI,CAAC;CAAG;AAEvF,iBAAS,KAAK,CAAC,EAAE,GAAG,KAAK,EAAE,EAAE,UAAU,2CAEtC;kBAFQ,KAAK;;;AAMd,MAAM,WAAW,iBAAkB,SAAQ,KAAK,CAAC,cAAc,CAAC,OAAO,cAAc,CAAC,OAAO,CAAC;CAAG;AAEjG,iBAAS,YAAY,CAAC,EAAE,GAAG,KAAK,EAAE,EAAE,iBAAiB,2CAEpD;kBAFQ,YAAY;;;AAMrB,MAAM,WAAW,eAAgB,SAAQ,KAAK,CAAC,cAAc,CAAC,OAAO,cAAc,CAAC,KAAK,CAAC;CAAG;AAE7F,iBAAS,UAAU,CAAC,EAAE,GAAG,KAAK,EAAE,EAAE,eAAe,2CAEhD;kBAFQ,UAAU;;;AAMnB,MAAM,WAAW,gBAAiB,SAAQ,KAAK,CAAC,cAAc,CAAC,OAAO,cAAc,CAAC,MAAM,CAAC;CAAG;AAE/F,iBAAS,WAAW,CAAC,EAAE,GAAG,KAAK,EAAE,EAAE,gBAAgB,2CAElD;kBAFQ,WAAW;;;AAMpB,MAAM,WAAW,iBAAkB,SAAQ,KAAK,CAAC,cAAc,CAAC,OAAO,cAAc,CAAC,OAAO,CAAC;CAAG;AAEjG,iBAAS,YAAY,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,iBAAiB,2CAW/D;kBAXQ,YAAY;;;AAerB,MAAM,WAAW,iBAAkB,SAAQ,KAAK,CAAC,cAAc,CAAC,OAAO,cAAc,CAAC,OAAO,CAAC;IAC5F,IAAI,CAAC,EAAE,KAAK,GAAG,OAAO,GAAG,QAAQ,GAAG,MAAM,CAAC;CAC5C;AAED,iBAAS,YAAY,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAc,EAAE,GAAG,KAAK,EAAE,EAAE,iBAAiB,2CA4BzF;kBA5BQ,YAAY;;;AAgCrB,MAAM,WAAW,gBAAiB,SAAQ,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC;CAAG;AAExE,iBAAS,WAAW,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,gBAAgB,2CAQ7D;kBARQ,WAAW;;;AAYpB,MAAM,WAAW,gBAAiB,SAAQ,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC;CAAG;AAExE,iBAAS,WAAW,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,gBAAgB,2CAQ7D;kBARQ,WAAW;;;AAYpB,MAAM,WAAW,eAAgB,SAAQ,KAAK,CAAC,cAAc,CAAC,OAAO,cAAc,CAAC,KAAK,CAAC;CAAG;AAE7F,iBAAS,UAAU,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,eAAe,2CAQ3D;kBARQ,UAAU;;;AAYnB,MAAM,WAAW,qBACf,SAAQ,KAAK,CAAC,cAAc,CAAC,OAAO,cAAc,CAAC,WAAW,CAAC;CAAG;AAEpE,iBAAS,gBAAgB,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,qBAAqB,2CAQvE;kBARQ,gBAAgB;;;AAYzB,OAAO,EACL,KAAK,EACL,YAAY,EACZ,UAAU,EACV,WAAW,EACX,YAAY,EACZ,YAAY,EACZ,WAAW,EACX,WAAW,EACX,UAAU,EACV,gBAAgB,GACjB,CAAC"}
|
|
1
|
+
{"version":3,"file":"sheet.d.ts","sourceRoot":"","sources":["../../../../../src/components/atoms/feedback/sheet/sheet.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqDG;AAEH,OAAO,KAAK,cAAc,MAAM,wBAAwB,CAAC;AAEzD,OAAO,KAAK,KAAK,KAAK,MAAM,OAAO,CAAC;AAGpC;;GAEG;AACH,MAAM,WAAW,UAAW,SAAQ,KAAK,CAAC,cAAc,CAAC,OAAO,cAAc,CAAC,IAAI,CAAC;CAAG;AAEvF;;;;;;;GAOG;AACH,iBAAS,KAAK,CAAC,EAAE,GAAG,KAAK,EAAE,EAAE,UAAU,2CAEtC;kBAFQ,KAAK;;;AAMd;;GAEG;AACH,MAAM,WAAW,iBAAkB,SAAQ,KAAK,CAAC,cAAc,CAAC,OAAO,cAAc,CAAC,OAAO,CAAC;CAAG;AAEjG;;;;;;;GAOG;AACH,iBAAS,YAAY,CAAC,EAAE,GAAG,KAAK,EAAE,EAAE,iBAAiB,2CAEpD;kBAFQ,YAAY;;;AAMrB,MAAM,WAAW,eAAgB,SAAQ,KAAK,CAAC,cAAc,CAAC,OAAO,cAAc,CAAC,KAAK,CAAC;CAAG;AAE7F,iBAAS,UAAU,CAAC,EAAE,GAAG,KAAK,EAAE,EAAE,eAAe,2CAEhD;kBAFQ,UAAU;;;AAMnB,MAAM,WAAW,gBAAiB,SAAQ,KAAK,CAAC,cAAc,CAAC,OAAO,cAAc,CAAC,MAAM,CAAC;CAAG;AAE/F,iBAAS,WAAW,CAAC,EAAE,GAAG,KAAK,EAAE,EAAE,gBAAgB,2CAElD;kBAFQ,WAAW;;;AAMpB,MAAM,WAAW,iBAAkB,SAAQ,KAAK,CAAC,cAAc,CAAC,OAAO,cAAc,CAAC,OAAO,CAAC;CAAG;AAEjG,iBAAS,YAAY,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,iBAAiB,2CAW/D;kBAXQ,YAAY;;;AAerB;;;;GAIG;AACH,MAAM,WAAW,iBAAkB,SAAQ,KAAK,CAAC,cAAc,CAAC,OAAO,cAAc,CAAC,OAAO,CAAC;IAC5F,gCAAgC;IAChC,IAAI,CAAC,EAAE,KAAK,GAAG,OAAO,GAAG,QAAQ,GAAG,MAAM,CAAC;CAC5C;AAED;;;;;;;GAOG;AACH,iBAAS,YAAY,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAc,EAAE,GAAG,KAAK,EAAE,EAAE,iBAAiB,2CA4BzF;kBA5BQ,YAAY;;;AAgCrB,MAAM,WAAW,gBAAiB,SAAQ,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC;CAAG;AAExE,iBAAS,WAAW,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,gBAAgB,2CAQ7D;kBARQ,WAAW;;;AAYpB,MAAM,WAAW,gBAAiB,SAAQ,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC;CAAG;AAExE,iBAAS,WAAW,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,gBAAgB,2CAQ7D;kBARQ,WAAW;;;AAYpB,MAAM,WAAW,eAAgB,SAAQ,KAAK,CAAC,cAAc,CAAC,OAAO,cAAc,CAAC,KAAK,CAAC;CAAG;AAE7F,iBAAS,UAAU,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,eAAe,2CAQ3D;kBARQ,UAAU;;;AAYnB,MAAM,WAAW,qBACf,SAAQ,KAAK,CAAC,cAAc,CAAC,OAAO,cAAc,CAAC,WAAW,CAAC;CAAG;AAEpE,iBAAS,gBAAgB,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,qBAAqB,2CAQvE;kBARQ,gBAAgB;;;AAYzB,OAAO,EACL,KAAK,EACL,YAAY,EACZ,UAAU,EACV,WAAW,EACX,YAAY,EACZ,YAAY,EACZ,WAAW,EACX,WAAW,EACX,UAAU,EACV,gBAAgB,GACjB,CAAC"}
|
|
@@ -1,11 +1,81 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
/**
|
|
3
|
+
* # Sheet Component
|
|
4
|
+
*
|
|
5
|
+
* O componente `Sheet` é usado para exibir conteúdo em um painel lateral deslizante.
|
|
6
|
+
* É baseado em Radix UI Dialog para garantir acessibilidade completa.
|
|
7
|
+
*
|
|
8
|
+
* ## Características Principais
|
|
9
|
+
*
|
|
10
|
+
* - **Acessível**: Baseado em Radix UI Dialog com suporte completo a leitores de tela
|
|
11
|
+
* - **Lados**: Suporta abertura de qualquer lado (top, right, bottom, left)
|
|
12
|
+
* - **Composição**: Múltiplos sub-componentes para flexibilidade
|
|
13
|
+
* - **Foco Gerenciado**: Foco e navegação por teclado gerenciados automaticamente
|
|
14
|
+
* - **Overlay**: Overlay escuro por padrão
|
|
15
|
+
*
|
|
16
|
+
* ## Componentes
|
|
17
|
+
*
|
|
18
|
+
* - **Sheet**: Container principal
|
|
19
|
+
* - **SheetTrigger**: Trigger para abrir o sheet
|
|
20
|
+
* - **SheetContent**: Conteúdo do sheet
|
|
21
|
+
* - **SheetHeader**: Cabeçalho do sheet
|
|
22
|
+
* - **SheetFooter**: Rodapé do sheet
|
|
23
|
+
* - **SheetTitle**: Título do sheet
|
|
24
|
+
* - **SheetDescription**: Descrição do sheet
|
|
25
|
+
* - **SheetClose**: Botão de fechar
|
|
26
|
+
*
|
|
27
|
+
* ## Uso Básico
|
|
28
|
+
*
|
|
29
|
+
* ```tsx
|
|
30
|
+
* import { Sheet, SheetTrigger, SheetContent, SheetHeader, SheetTitle } from "@flowtomic/ui/components/atoms/feedback/sheet";
|
|
31
|
+
*
|
|
32
|
+
* function MyComponent() {
|
|
33
|
+
* return (
|
|
34
|
+
* <Sheet>
|
|
35
|
+
* <SheetTrigger>Open Sheet</SheetTrigger>
|
|
36
|
+
* <SheetContent>
|
|
37
|
+
* <SheetHeader>
|
|
38
|
+
* <SheetTitle>Sheet Title</SheetTitle>
|
|
39
|
+
* </SheetHeader>
|
|
40
|
+
* </SheetContent>
|
|
41
|
+
* </Sheet>
|
|
42
|
+
* );
|
|
43
|
+
* }
|
|
44
|
+
* ```
|
|
45
|
+
*
|
|
46
|
+
* ## Acessibilidade
|
|
47
|
+
*
|
|
48
|
+
* - Suporta navegação por teclado (Tab, Escape)
|
|
49
|
+
* - Segue padrões WAI-ARIA via Radix UI
|
|
50
|
+
* - Suporta leitores de tela
|
|
51
|
+
* - Foco gerenciado automaticamente
|
|
52
|
+
* - Foco retorna ao trigger quando fechado
|
|
53
|
+
*
|
|
54
|
+
* @see [Radix UI Dialog](https://www.radix-ui.com/primitives/docs/components/dialog) para mais detalhes
|
|
55
|
+
*/
|
|
2
56
|
import * as SheetPrimitive from "@radix-ui/react-dialog";
|
|
3
57
|
import { XIcon } from "lucide-react";
|
|
4
58
|
import { cn } from "@/lib/utils";
|
|
59
|
+
/**
|
|
60
|
+
* Sheet - Container principal do sheet.
|
|
61
|
+
*
|
|
62
|
+
* Componente usado para gerenciar o estado do sheet.
|
|
63
|
+
*
|
|
64
|
+
* @param {SheetProps} props - Props do componente
|
|
65
|
+
* @returns {JSX.Element} Componente Sheet
|
|
66
|
+
*/
|
|
5
67
|
function Sheet({ ...props }) {
|
|
6
68
|
return _jsx(SheetPrimitive.Root, { "data-slot": "sheet", ...props });
|
|
7
69
|
}
|
|
8
70
|
Sheet.displayName = "Sheet";
|
|
71
|
+
/**
|
|
72
|
+
* SheetTrigger - Trigger do sheet.
|
|
73
|
+
*
|
|
74
|
+
* Componente usado como trigger para abrir o sheet.
|
|
75
|
+
*
|
|
76
|
+
* @param {SheetTriggerProps} props - Props do componente
|
|
77
|
+
* @returns {JSX.Element} Componente SheetTrigger
|
|
78
|
+
*/
|
|
9
79
|
function SheetTrigger({ ...props }) {
|
|
10
80
|
return _jsx(SheetPrimitive.Trigger, { "data-slot": "sheet-trigger", ...props });
|
|
11
81
|
}
|
|
@@ -22,6 +92,14 @@ function SheetOverlay({ className, ...props }) {
|
|
|
22
92
|
return (_jsx(SheetPrimitive.Overlay, { "data-slot": "sheet-overlay", className: cn("data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-50 bg-black/50", className), ...props }));
|
|
23
93
|
}
|
|
24
94
|
SheetOverlay.displayName = "SheetOverlay";
|
|
95
|
+
/**
|
|
96
|
+
* SheetContent - Conteúdo do sheet.
|
|
97
|
+
*
|
|
98
|
+
* Componente usado para exibir o conteúdo do sheet.
|
|
99
|
+
*
|
|
100
|
+
* @param {SheetContentProps} props - Props do componente
|
|
101
|
+
* @returns {JSX.Element} Componente SheetContent
|
|
102
|
+
*/
|
|
25
103
|
function SheetContent({ className, children, side = "right", ...props }) {
|
|
26
104
|
return (_jsxs(SheetPortal, { children: [_jsx(SheetOverlay, {}), _jsxs(SheetPrimitive.Content, { "data-slot": "sheet-content", className: cn("bg-background data-[state=open]:animate-in data-[state=closed]:animate-out fixed z-50 flex flex-col gap-4 shadow-lg transition ease-in-out data-[state=closed]:duration-300 data-[state=open]:duration-500", side === "right" &&
|
|
27
105
|
"data-[state=closed]:slide-out-to-right data-[state=open]:slide-in-from-right inset-y-0 right-0 h-full w-3/4 border-l sm:max-w-sm", side === "left" &&
|
|
@@ -1,12 +1,72 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Sonner Component
|
|
2
|
+
* # Sonner Component (Toaster)
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
4
|
+
* O componente `Toaster` (Sonner) é usado para exibir notificações toast
|
|
5
|
+
* na aplicação. Fornece feedback visual para ações do usuário com diferentes
|
|
6
|
+
* tipos de mensagens (success, error, warning, info, loading).
|
|
7
7
|
*
|
|
8
|
-
*
|
|
9
|
-
*
|
|
8
|
+
* ## Características Principais
|
|
9
|
+
*
|
|
10
|
+
* - **Múltiplos Tipos**: Suporta success, error, warning, info e loading
|
|
11
|
+
* - **Posicionamento**: Configurável (padrão: top-right)
|
|
12
|
+
* - **Tema**: Suporta light e dark
|
|
13
|
+
* - **Ícones**: Ícones customizados para cada tipo
|
|
14
|
+
* - **Ações**: Suporta botões de ação e cancelamento
|
|
15
|
+
*
|
|
16
|
+
* ## Tipos de Toast
|
|
17
|
+
*
|
|
18
|
+
* - **success**: Mensagens de sucesso (verde)
|
|
19
|
+
* - **error**: Mensagens de erro (vermelho)
|
|
20
|
+
* - **warning**: Avisos (amarelo)
|
|
21
|
+
* - **info**: Informações (azul)
|
|
22
|
+
* - **loading**: Carregamento (spinner)
|
|
23
|
+
*
|
|
24
|
+
* ## Uso Básico
|
|
25
|
+
*
|
|
26
|
+
* ```tsx
|
|
27
|
+
* import { Toaster, toast } from "@flowtomic/ui/components/atoms/feedback/sonner";
|
|
28
|
+
*
|
|
29
|
+
* function App() {
|
|
30
|
+
* return (
|
|
31
|
+
* <>
|
|
32
|
+
* <Toaster />
|
|
33
|
+
* <button onClick={() => toast.success("Operação realizada com sucesso!")}>
|
|
34
|
+
* Mostrar Toast
|
|
35
|
+
* </button>
|
|
36
|
+
* </>
|
|
37
|
+
* );
|
|
38
|
+
* }
|
|
39
|
+
* ```
|
|
40
|
+
*
|
|
41
|
+
* ## Exemplos de Uso
|
|
42
|
+
*
|
|
43
|
+
* ```tsx
|
|
44
|
+
* // Success
|
|
45
|
+
* toast.success("Operação realizada com sucesso!");
|
|
46
|
+
*
|
|
47
|
+
* // Error
|
|
48
|
+
* toast.error("Erro ao processar requisição");
|
|
49
|
+
*
|
|
50
|
+
* // Warning
|
|
51
|
+
* toast.warning("Atenção: ação irreversível");
|
|
52
|
+
*
|
|
53
|
+
* // Info
|
|
54
|
+
* toast.info("Nova atualização disponível");
|
|
55
|
+
*
|
|
56
|
+
* // Loading
|
|
57
|
+
* const toastId = toast.loading("Processando...");
|
|
58
|
+
* // Depois atualizar para success
|
|
59
|
+
* toast.success("Concluído!", { id: toastId });
|
|
60
|
+
* ```
|
|
61
|
+
*
|
|
62
|
+
* ## Acessibilidade
|
|
63
|
+
*
|
|
64
|
+
* - Suporta leitores de tela
|
|
65
|
+
* - Navegação por teclado
|
|
66
|
+
* - Foco gerenciado automaticamente
|
|
67
|
+
*
|
|
68
|
+
* @see [Sonner Documentation](https://sonner.emilkowal.ski/) para mais detalhes
|
|
69
|
+
* @see [shadcn/ui Sonner](https://ui.shadcn.com/docs/components/sonner) para referência
|
|
10
70
|
*/
|
|
11
71
|
import { type ToasterProps as SonnerToasterProps } from "sonner";
|
|
12
72
|
export interface ToasterProps extends Omit<SonnerToasterProps, "theme"> {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sonner.d.ts","sourceRoot":"","sources":["../../../../../src/components/atoms/feedback/sonner/sonner.tsx"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"sonner.d.ts","sourceRoot":"","sources":["../../../../../src/components/atoms/feedback/sonner/sonner.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqEG;AAWH,OAAO,EAA4B,KAAK,YAAY,IAAI,kBAAkB,EAAE,MAAM,QAAQ,CAAC;AAE3F,MAAM,WAAW,YAAa,SAAQ,IAAI,CAAC,kBAAkB,EAAE,OAAO,CAAC;IACrE;;;OAGG;IACH,KAAK,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;CAC1B;AAED;;;GAGG;AACH,wBAAgB,OAAO,CAAC,EAAE,KAAe,EAAE,GAAG,KAAK,EAAE,EAAE,YAAY,2CAsClE;AAGD,OAAO,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAC"}
|
|
@@ -1,12 +1,72 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Sonner Component
|
|
2
|
+
* # Sonner Component (Toaster)
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
4
|
+
* O componente `Toaster` (Sonner) é usado para exibir notificações toast
|
|
5
|
+
* na aplicação. Fornece feedback visual para ações do usuário com diferentes
|
|
6
|
+
* tipos de mensagens (success, error, warning, info, loading).
|
|
7
7
|
*
|
|
8
|
-
*
|
|
9
|
-
*
|
|
8
|
+
* ## Características Principais
|
|
9
|
+
*
|
|
10
|
+
* - **Múltiplos Tipos**: Suporta success, error, warning, info e loading
|
|
11
|
+
* - **Posicionamento**: Configurável (padrão: top-right)
|
|
12
|
+
* - **Tema**: Suporta light e dark
|
|
13
|
+
* - **Ícones**: Ícones customizados para cada tipo
|
|
14
|
+
* - **Ações**: Suporta botões de ação e cancelamento
|
|
15
|
+
*
|
|
16
|
+
* ## Tipos de Toast
|
|
17
|
+
*
|
|
18
|
+
* - **success**: Mensagens de sucesso (verde)
|
|
19
|
+
* - **error**: Mensagens de erro (vermelho)
|
|
20
|
+
* - **warning**: Avisos (amarelo)
|
|
21
|
+
* - **info**: Informações (azul)
|
|
22
|
+
* - **loading**: Carregamento (spinner)
|
|
23
|
+
*
|
|
24
|
+
* ## Uso Básico
|
|
25
|
+
*
|
|
26
|
+
* ```tsx
|
|
27
|
+
* import { Toaster, toast } from "@flowtomic/ui/components/atoms/feedback/sonner";
|
|
28
|
+
*
|
|
29
|
+
* function App() {
|
|
30
|
+
* return (
|
|
31
|
+
* <>
|
|
32
|
+
* <Toaster />
|
|
33
|
+
* <button onClick={() => toast.success("Operação realizada com sucesso!")}>
|
|
34
|
+
* Mostrar Toast
|
|
35
|
+
* </button>
|
|
36
|
+
* </>
|
|
37
|
+
* );
|
|
38
|
+
* }
|
|
39
|
+
* ```
|
|
40
|
+
*
|
|
41
|
+
* ## Exemplos de Uso
|
|
42
|
+
*
|
|
43
|
+
* ```tsx
|
|
44
|
+
* // Success
|
|
45
|
+
* toast.success("Operação realizada com sucesso!");
|
|
46
|
+
*
|
|
47
|
+
* // Error
|
|
48
|
+
* toast.error("Erro ao processar requisição");
|
|
49
|
+
*
|
|
50
|
+
* // Warning
|
|
51
|
+
* toast.warning("Atenção: ação irreversível");
|
|
52
|
+
*
|
|
53
|
+
* // Info
|
|
54
|
+
* toast.info("Nova atualização disponível");
|
|
55
|
+
*
|
|
56
|
+
* // Loading
|
|
57
|
+
* const toastId = toast.loading("Processando...");
|
|
58
|
+
* // Depois atualizar para success
|
|
59
|
+
* toast.success("Concluído!", { id: toastId });
|
|
60
|
+
* ```
|
|
61
|
+
*
|
|
62
|
+
* ## Acessibilidade
|
|
63
|
+
*
|
|
64
|
+
* - Suporta leitores de tela
|
|
65
|
+
* - Navegação por teclado
|
|
66
|
+
* - Foco gerenciado automaticamente
|
|
67
|
+
*
|
|
68
|
+
* @see [Sonner Documentation](https://sonner.emilkowal.ski/) para mais detalhes
|
|
69
|
+
* @see [shadcn/ui Sonner](https://ui.shadcn.com/docs/components/sonner) para referência
|
|
10
70
|
*/
|
|
11
71
|
"use client";
|
|
12
72
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
@@ -1,9 +1,59 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Tooltip Component
|
|
2
|
+
* # Tooltip Component
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
4
|
+
* O componente `Tooltip` é usado para exibir informações adicionais quando o usuário
|
|
5
|
+
* passa o mouse sobre um elemento. Suporta dois modos: padrão (Radix UI) e com
|
|
6
|
+
* seguimento do mouse (React Aria).
|
|
7
|
+
*
|
|
8
|
+
* ## Características Principais
|
|
9
|
+
*
|
|
10
|
+
* - **Dois Modos**: Padrão (Radix UI) ou com seguimento do mouse (React Aria)
|
|
11
|
+
* - **Posicionamento Inteligente**: Ajusta automaticamente para não sair da viewport
|
|
12
|
+
* - **Acessível**: Suporta leitores de tela e navegação por teclado
|
|
13
|
+
* - **Animações**: Animações suaves via Framer Motion no modo followMouse
|
|
14
|
+
* - **Composição**: TooltipProvider + Tooltip + TooltipTrigger + TooltipContent
|
|
15
|
+
*
|
|
16
|
+
* ## Modos de Uso
|
|
17
|
+
*
|
|
18
|
+
* ### Modo Padrão (Radix UI)
|
|
19
|
+
*
|
|
20
|
+
* ```tsx
|
|
21
|
+
* import { TooltipProvider, Tooltip, TooltipTrigger, TooltipContent } from "@flowtomic/ui/components/atoms/feedback/tooltip";
|
|
22
|
+
*
|
|
23
|
+
* <TooltipProvider>
|
|
24
|
+
* <Tooltip>
|
|
25
|
+
* <TooltipTrigger asChild>
|
|
26
|
+
* <Button>Hover me</Button>
|
|
27
|
+
* </TooltipTrigger>
|
|
28
|
+
* <TooltipContent>
|
|
29
|
+
* <p>Informação do tooltip</p>
|
|
30
|
+
* </TooltipContent>
|
|
31
|
+
* </Tooltip>
|
|
32
|
+
* </TooltipProvider>
|
|
33
|
+
* ```
|
|
34
|
+
*
|
|
35
|
+
* ### Modo com Seguimento do Mouse
|
|
36
|
+
*
|
|
37
|
+
* ```tsx
|
|
38
|
+
* import { TooltipWithMouseFollow } from "@flowtomic/ui/components/atoms/feedback/tooltip";
|
|
39
|
+
*
|
|
40
|
+
* <TooltipWithMouseFollow
|
|
41
|
+
* content={<p>Este tooltip segue o mouse!</p>}
|
|
42
|
+
* minWidth={240}
|
|
43
|
+
* >
|
|
44
|
+
* <Button>Hover and move</Button>
|
|
45
|
+
* </TooltipWithMouseFollow>
|
|
46
|
+
* ```
|
|
47
|
+
*
|
|
48
|
+
* ## Acessibilidade
|
|
49
|
+
*
|
|
50
|
+
* - Suporta leitores de tela via React Aria
|
|
51
|
+
* - Navegação por teclado (Tab, Enter, Espaço)
|
|
52
|
+
* - Suporte a touch em dispositivos móveis
|
|
53
|
+
* - Posicionamento inteligente para não sair da viewport
|
|
54
|
+
*
|
|
55
|
+
* @see [Radix UI Tooltip](https://www.radix-ui.com/primitives/docs/components/tooltip) para mais detalhes
|
|
56
|
+
* @see [React Aria Tooltip](https://react-spectrum.adobe.com/react-aria/useTooltip.html) para mais detalhes
|
|
7
57
|
*/
|
|
8
58
|
import * as TooltipPrimitive from "@radix-ui/react-tooltip";
|
|
9
59
|
import * as React from "react";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tooltip.d.ts","sourceRoot":"","sources":["../../../../../src/components/atoms/feedback/tooltip/tooltip.tsx"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"tooltip.d.ts","sourceRoot":"","sources":["../../../../../src/components/atoms/feedback/tooltip/tooltip.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwDG;AAIH,OAAO,KAAK,gBAAgB,MAAM,yBAAyB,CAAC;AAI5D,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,MAAM,MAAM,YAAY,GAAG,KAAK,CAAC,wBAAwB,CAAC,OAAO,gBAAgB,CAAC,IAAI,CAAC,CAAC;AACxF,MAAM,MAAM,mBAAmB,GAAG,KAAK,CAAC,wBAAwB,CAAC,OAAO,gBAAgB,CAAC,OAAO,CAAC,CAAC;AAClG,MAAM,MAAM,mBAAmB,GAAG,KAAK,CAAC,wBAAwB,CAC9D,OAAO,gBAAgB,CAAC,OAAO,CAChC,GAAG;IACF;;;OAGG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF;;GAEG;AACH,QAAA,MAAM,eAAe,iDAA4B,CAAC;AAGlD;;GAEG;AACH,QAAA,MAAM,OAAO,yCAAwB,CAAC;AAGtC;;GAEG;AACH,QAAA,MAAM,cAAc;0BAGM,OAAO;2CAW/B,CAAC;AAGH;;GAEG;AACH,QAAA,MAAM,aAAa,+CAA0B,CAAC;AAG9C;;GAEG;AACH,QAAA,MAAM,cAAc;IArDlB;;;OAGG;kBACW,OAAO;IACrB;;;OAGG;eACQ,MAAM;wCA6EjB,CAAC;AAmBH;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,EACrC,OAAO,EACP,QAAQ,EACR,kBAAkB,EAClB,SAAS,EACT,QAAc,GACf,EAAE;IACD,OAAO,EAAE,MAAM,GAAG,KAAK,CAAC,SAAS,CAAC;IAClC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,2CAkOA;AAED,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,eAAe,EAAE,aAAa,EAAE,CAAC"}
|
|
@@ -1,9 +1,59 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Tooltip Component
|
|
2
|
+
* # Tooltip Component
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
4
|
+
* O componente `Tooltip` é usado para exibir informações adicionais quando o usuário
|
|
5
|
+
* passa o mouse sobre um elemento. Suporta dois modos: padrão (Radix UI) e com
|
|
6
|
+
* seguimento do mouse (React Aria).
|
|
7
|
+
*
|
|
8
|
+
* ## Características Principais
|
|
9
|
+
*
|
|
10
|
+
* - **Dois Modos**: Padrão (Radix UI) ou com seguimento do mouse (React Aria)
|
|
11
|
+
* - **Posicionamento Inteligente**: Ajusta automaticamente para não sair da viewport
|
|
12
|
+
* - **Acessível**: Suporta leitores de tela e navegação por teclado
|
|
13
|
+
* - **Animações**: Animações suaves via Framer Motion no modo followMouse
|
|
14
|
+
* - **Composição**: TooltipProvider + Tooltip + TooltipTrigger + TooltipContent
|
|
15
|
+
*
|
|
16
|
+
* ## Modos de Uso
|
|
17
|
+
*
|
|
18
|
+
* ### Modo Padrão (Radix UI)
|
|
19
|
+
*
|
|
20
|
+
* ```tsx
|
|
21
|
+
* import { TooltipProvider, Tooltip, TooltipTrigger, TooltipContent } from "@flowtomic/ui/components/atoms/feedback/tooltip";
|
|
22
|
+
*
|
|
23
|
+
* <TooltipProvider>
|
|
24
|
+
* <Tooltip>
|
|
25
|
+
* <TooltipTrigger asChild>
|
|
26
|
+
* <Button>Hover me</Button>
|
|
27
|
+
* </TooltipTrigger>
|
|
28
|
+
* <TooltipContent>
|
|
29
|
+
* <p>Informação do tooltip</p>
|
|
30
|
+
* </TooltipContent>
|
|
31
|
+
* </Tooltip>
|
|
32
|
+
* </TooltipProvider>
|
|
33
|
+
* ```
|
|
34
|
+
*
|
|
35
|
+
* ### Modo com Seguimento do Mouse
|
|
36
|
+
*
|
|
37
|
+
* ```tsx
|
|
38
|
+
* import { TooltipWithMouseFollow } from "@flowtomic/ui/components/atoms/feedback/tooltip";
|
|
39
|
+
*
|
|
40
|
+
* <TooltipWithMouseFollow
|
|
41
|
+
* content={<p>Este tooltip segue o mouse!</p>}
|
|
42
|
+
* minWidth={240}
|
|
43
|
+
* >
|
|
44
|
+
* <Button>Hover and move</Button>
|
|
45
|
+
* </TooltipWithMouseFollow>
|
|
46
|
+
* ```
|
|
47
|
+
*
|
|
48
|
+
* ## Acessibilidade
|
|
49
|
+
*
|
|
50
|
+
* - Suporta leitores de tela via React Aria
|
|
51
|
+
* - Navegação por teclado (Tab, Enter, Espaço)
|
|
52
|
+
* - Suporte a touch em dispositivos móveis
|
|
53
|
+
* - Posicionamento inteligente para não sair da viewport
|
|
54
|
+
*
|
|
55
|
+
* @see [Radix UI Tooltip](https://www.radix-ui.com/primitives/docs/components/tooltip) para mais detalhes
|
|
56
|
+
* @see [React Aria Tooltip](https://react-spectrum.adobe.com/react-aria/useTooltip.html) para mais detalhes
|
|
7
57
|
*/
|
|
8
58
|
"use client";
|
|
9
59
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
@@ -197,7 +247,15 @@ export function TooltipWithMouseFollow({ content, children, containerClassName,
|
|
|
197
247
|
});
|
|
198
248
|
}
|
|
199
249
|
}, [isVisible, mouse.x, mouse.y, calculatePosition]);
|
|
200
|
-
return (
|
|
250
|
+
return (
|
|
251
|
+
// biome-ignore lint/a11y/noStaticElementInteractions: Trigger flexível
|
|
252
|
+
// biome-ignore lint/a11y/useKeyWithClickEvents: Comportamento de trigger customizado
|
|
253
|
+
_jsxs("div", { ref: containerRef, className: cn("relative inline-block", containerClassName), onMouseEnter: handleMouseEnter, onMouseLeave: handleMouseLeave, onMouseMove: handleMouseMove, onTouchStart: handleTouchStart, onTouchEnd: handleTouchEnd, onClick: handleClick, onKeyDown: (e) => {
|
|
254
|
+
if (e.key === "Enter" || e.key === " ") {
|
|
255
|
+
e.preventDefault();
|
|
256
|
+
handleClick?.(e);
|
|
257
|
+
}
|
|
258
|
+
}, children: [children, _jsx(AnimatePresence, { children: isVisible && (_jsx(motion.div, { initial: { height: 0, opacity: 0 }, animate: { height, opacity: 1 }, exit: { height: 0, opacity: 0 }, transition: {
|
|
201
259
|
type: "spring",
|
|
202
260
|
stiffness: 200,
|
|
203
261
|
damping: 20,
|