@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,6 +1,62 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* # InputOTP Component
|
|
3
|
+
*
|
|
4
|
+
* O componente `InputOTP` é um campo de entrada usado para códigos de verificação
|
|
5
|
+
* (One-Time Password). Fornece uma interface visual com slots individuais para cada dígito.
|
|
6
|
+
*
|
|
7
|
+
* ## Características Principais
|
|
8
|
+
*
|
|
9
|
+
* - **Slots Visuais**: Cada dígito é exibido em um slot individual
|
|
10
|
+
* - **Auto-foco**: Foco automático entre slots
|
|
11
|
+
* - **Validação**: Suporte a validação de formato
|
|
12
|
+
* - **Acessível**: Estrutura semântica para acessibilidade
|
|
13
|
+
* - **Composição**: Múltiplos sub-componentes para flexibilidade
|
|
14
|
+
*
|
|
15
|
+
* ## Componentes
|
|
16
|
+
*
|
|
17
|
+
* - **InputOTP**: Container principal do OTP
|
|
18
|
+
* - **InputOTPGroup**: Agrupa slots
|
|
19
|
+
* - **InputOTPSlot**: Slot individual para dígito
|
|
20
|
+
* - **InputOTPSeparator**: Separador visual entre grupos
|
|
21
|
+
*
|
|
22
|
+
* ## Uso Básico
|
|
23
|
+
*
|
|
24
|
+
* ```tsx
|
|
25
|
+
* import { InputOTP, InputOTPGroup, InputOTPSlot } from "@flowtomic/ui/components/atoms/forms/input-otp";
|
|
26
|
+
*
|
|
27
|
+
* function MyComponent() {
|
|
28
|
+
* return (
|
|
29
|
+
* <InputOTP maxLength={6}>
|
|
30
|
+
* <InputOTPGroup>
|
|
31
|
+
* <InputOTPSlot index={0} />
|
|
32
|
+
* <InputOTPSlot index={1} />
|
|
33
|
+
* <InputOTPSlot index={2} />
|
|
34
|
+
* <InputOTPSlot index={3} />
|
|
35
|
+
* <InputOTPSlot index={4} />
|
|
36
|
+
* <InputOTPSlot index={5} />
|
|
37
|
+
* </InputOTPGroup>
|
|
38
|
+
* </InputOTP>
|
|
39
|
+
* );
|
|
40
|
+
* }
|
|
41
|
+
* ```
|
|
42
|
+
*
|
|
43
|
+
* ## Acessibilidade
|
|
44
|
+
*
|
|
45
|
+
* - Suporta navegação por teclado
|
|
46
|
+
* - Suporta leitores de tela
|
|
47
|
+
* - Foco gerenciado automaticamente entre slots
|
|
48
|
+
*
|
|
49
|
+
* @see [input-otp](https://github.com/guilhermerodz/input-otp) para mais detalhes
|
|
50
|
+
*/
|
|
1
51
|
import { OTPInput } from "input-otp";
|
|
2
52
|
import * as React from "react";
|
|
53
|
+
/**
|
|
54
|
+
* Props do componente InputOTP.
|
|
55
|
+
*
|
|
56
|
+
* @property {string} [containerClassName] - Classes CSS para o container
|
|
57
|
+
*/
|
|
3
58
|
export type InputOTPProps = React.ComponentProps<typeof OTPInput> & {
|
|
59
|
+
/** Classes CSS para o container */
|
|
4
60
|
containerClassName?: string;
|
|
5
61
|
};
|
|
6
62
|
declare function InputOTP({ className, containerClassName, maxLength, ...props }: InputOTPProps): import("react/jsx-runtime").JSX.Element;
|
|
@@ -13,7 +69,13 @@ declare function InputOTPGroup({ className, ...props }: InputOTPGroupProps): imp
|
|
|
13
69
|
declare namespace InputOTPGroup {
|
|
14
70
|
var displayName: string;
|
|
15
71
|
}
|
|
72
|
+
/**
|
|
73
|
+
* Props do componente InputOTPSlot.
|
|
74
|
+
*
|
|
75
|
+
* @property {number} index - Índice do slot (0-based)
|
|
76
|
+
*/
|
|
16
77
|
export interface InputOTPSlotProps extends React.ComponentProps<"div"> {
|
|
78
|
+
/** Índice do slot (0-based) */
|
|
17
79
|
index: number;
|
|
18
80
|
}
|
|
19
81
|
declare function InputOTPSlot({ index, className, ...props }: InputOTPSlotProps): import("react/jsx-runtime").JSX.Element;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"input-otp.d.ts","sourceRoot":"","sources":["../../../../../src/components/atoms/forms/input-otp/input-otp.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAmB,MAAM,WAAW,CAAC;AAEtD,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,MAAM,MAAM,aAAa,GAAG,KAAK,CAAC,cAAc,CAAC,OAAO,QAAQ,CAAC,GAAG;IAClE,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B,CAAC;AAEF,iBAAS,QAAQ,CAAC,EAAE,SAAS,EAAE,kBAAkB,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,aAAa,2CAUtF;kBAVQ,QAAQ;;;AAcjB,MAAM,WAAW,kBAAmB,SAAQ,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC;CAAG;AAE1E,iBAAS,aAAa,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,kBAAkB,2CAIjE;kBAJQ,aAAa;;;AAQtB,MAAM,WAAW,iBAAkB,SAAQ,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC;IACpE,KAAK,EAAE,MAAM,CAAC;CACf;AAED,iBAAS,YAAY,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,iBAAiB,2CAsBtE;kBAtBQ,YAAY;;;AA0BrB,MAAM,WAAW,sBAAuB,SAAQ,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC;CAAG;AAE9E,iBAAS,iBAAiB,CAAC,EAAE,GAAG,KAAK,EAAE,EAAE,sBAAsB,2CAa9D;kBAbQ,iBAAiB;;;AAiB1B,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,YAAY,EAAE,iBAAiB,EAAE,CAAC"}
|
|
1
|
+
{"version":3,"file":"input-otp.d.ts","sourceRoot":"","sources":["../../../../../src/components/atoms/forms/input-otp/input-otp.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiDG;AAEH,OAAO,EAAE,QAAQ,EAAmB,MAAM,WAAW,CAAC;AAEtD,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B;;;;GAIG;AACH,MAAM,MAAM,aAAa,GAAG,KAAK,CAAC,cAAc,CAAC,OAAO,QAAQ,CAAC,GAAG;IAClE,mCAAmC;IACnC,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B,CAAC;AAEF,iBAAS,QAAQ,CAAC,EAAE,SAAS,EAAE,kBAAkB,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,aAAa,2CAUtF;kBAVQ,QAAQ;;;AAcjB,MAAM,WAAW,kBAAmB,SAAQ,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC;CAAG;AAE1E,iBAAS,aAAa,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,kBAAkB,2CAIjE;kBAJQ,aAAa;;;AAQtB;;;;GAIG;AACH,MAAM,WAAW,iBAAkB,SAAQ,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC;IACpE,+BAA+B;IAC/B,KAAK,EAAE,MAAM,CAAC;CACf;AAED,iBAAS,YAAY,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,iBAAiB,2CAsBtE;kBAtBQ,YAAY;;;AA0BrB,MAAM,WAAW,sBAAuB,SAAQ,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC;CAAG;AAE9E,iBAAS,iBAAiB,CAAC,EAAE,GAAG,KAAK,EAAE,EAAE,sBAAsB,2CAa9D;kBAbQ,iBAAiB;;;AAiB1B,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,YAAY,EAAE,iBAAiB,EAAE,CAAC"}
|
|
@@ -1,4 +1,54 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
/**
|
|
3
|
+
* # InputOTP Component
|
|
4
|
+
*
|
|
5
|
+
* O componente `InputOTP` é um campo de entrada usado para códigos de verificação
|
|
6
|
+
* (One-Time Password). Fornece uma interface visual com slots individuais para cada dígito.
|
|
7
|
+
*
|
|
8
|
+
* ## Características Principais
|
|
9
|
+
*
|
|
10
|
+
* - **Slots Visuais**: Cada dígito é exibido em um slot individual
|
|
11
|
+
* - **Auto-foco**: Foco automático entre slots
|
|
12
|
+
* - **Validação**: Suporte a validação de formato
|
|
13
|
+
* - **Acessível**: Estrutura semântica para acessibilidade
|
|
14
|
+
* - **Composição**: Múltiplos sub-componentes para flexibilidade
|
|
15
|
+
*
|
|
16
|
+
* ## Componentes
|
|
17
|
+
*
|
|
18
|
+
* - **InputOTP**: Container principal do OTP
|
|
19
|
+
* - **InputOTPGroup**: Agrupa slots
|
|
20
|
+
* - **InputOTPSlot**: Slot individual para dígito
|
|
21
|
+
* - **InputOTPSeparator**: Separador visual entre grupos
|
|
22
|
+
*
|
|
23
|
+
* ## Uso Básico
|
|
24
|
+
*
|
|
25
|
+
* ```tsx
|
|
26
|
+
* import { InputOTP, InputOTPGroup, InputOTPSlot } from "@flowtomic/ui/components/atoms/forms/input-otp";
|
|
27
|
+
*
|
|
28
|
+
* function MyComponent() {
|
|
29
|
+
* return (
|
|
30
|
+
* <InputOTP maxLength={6}>
|
|
31
|
+
* <InputOTPGroup>
|
|
32
|
+
* <InputOTPSlot index={0} />
|
|
33
|
+
* <InputOTPSlot index={1} />
|
|
34
|
+
* <InputOTPSlot index={2} />
|
|
35
|
+
* <InputOTPSlot index={3} />
|
|
36
|
+
* <InputOTPSlot index={4} />
|
|
37
|
+
* <InputOTPSlot index={5} />
|
|
38
|
+
* </InputOTPGroup>
|
|
39
|
+
* </InputOTP>
|
|
40
|
+
* );
|
|
41
|
+
* }
|
|
42
|
+
* ```
|
|
43
|
+
*
|
|
44
|
+
* ## Acessibilidade
|
|
45
|
+
*
|
|
46
|
+
* - Suporta navegação por teclado
|
|
47
|
+
* - Suporta leitores de tela
|
|
48
|
+
* - Foco gerenciado automaticamente entre slots
|
|
49
|
+
*
|
|
50
|
+
* @see [input-otp](https://github.com/guilhermerodz/input-otp) para mais detalhes
|
|
51
|
+
*/
|
|
2
52
|
import { OTPInput, OTPInputContext } from "input-otp";
|
|
3
53
|
import { MinusIcon } from "lucide-react";
|
|
4
54
|
import * as React from "react";
|
|
@@ -1,7 +1,61 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* # Label Component
|
|
3
|
+
*
|
|
4
|
+
* O componente `Label` é usado para associar texto descritivo a controles de formulário.
|
|
5
|
+
* É baseado em Radix UI para garantir acessibilidade completa e associação correta com inputs.
|
|
6
|
+
*
|
|
7
|
+
* ## Características Principais
|
|
8
|
+
*
|
|
9
|
+
* - **Acessível**: Baseado em Radix UI com suporte completo a leitores de tela
|
|
10
|
+
* - **Associação Automática**: Associa-se automaticamente a controles via htmlFor/id
|
|
11
|
+
* - **Estados Visuais**: Responde a estados disabled dos controles associados
|
|
12
|
+
* - **Customizável**: Pode ser estilizado via className e props HTML padrão
|
|
13
|
+
*
|
|
14
|
+
* ## Uso Básico
|
|
15
|
+
*
|
|
16
|
+
* ```tsx
|
|
17
|
+
* import { Label } from "@flowtomic/ui/components/atoms/forms/label";
|
|
18
|
+
* import { Input } from "@flowtomic/ui/components/atoms/forms/input";
|
|
19
|
+
*
|
|
20
|
+
* function MyComponent() {
|
|
21
|
+
* return (
|
|
22
|
+
* <div>
|
|
23
|
+
* <Label htmlFor="email">E-mail</Label>
|
|
24
|
+
* <Input id="email" type="email" />
|
|
25
|
+
* </div>
|
|
26
|
+
* );
|
|
27
|
+
* }
|
|
28
|
+
* ```
|
|
29
|
+
*
|
|
30
|
+
* ## Acessibilidade
|
|
31
|
+
*
|
|
32
|
+
* - Associa-se automaticamente a controles via htmlFor/id
|
|
33
|
+
* - Suporta leitores de tela
|
|
34
|
+
* - Responde visualmente a estados disabled dos controles
|
|
35
|
+
*
|
|
36
|
+
* @see [Radix UI Label](https://www.radix-ui.com/primitives/docs/components/label) para mais detalhes
|
|
37
|
+
*/
|
|
1
38
|
import * as LabelPrimitive from "@radix-ui/react-label";
|
|
2
39
|
import type * as React from "react";
|
|
40
|
+
/**
|
|
41
|
+
* Props do componente Label.
|
|
42
|
+
* @see LabelPrimitive.Root para props disponíveis (htmlFor, etc.)
|
|
43
|
+
*/
|
|
3
44
|
export interface LabelProps extends React.ComponentProps<typeof LabelPrimitive.Root> {
|
|
4
45
|
}
|
|
46
|
+
/**
|
|
47
|
+
* Componente Label para associar texto a controles de formulário.
|
|
48
|
+
*
|
|
49
|
+
* @component
|
|
50
|
+
* @param {LabelProps} props - Props do componente
|
|
51
|
+
* @returns {JSX.Element} Elemento Label renderizado
|
|
52
|
+
*
|
|
53
|
+
* @example
|
|
54
|
+
* ```tsx
|
|
55
|
+
* <Label htmlFor="email">E-mail</Label>
|
|
56
|
+
* <Input id="email" type="email" />
|
|
57
|
+
* ```
|
|
58
|
+
*/
|
|
5
59
|
declare function Label({ className, ...props }: LabelProps): import("react/jsx-runtime").JSX.Element;
|
|
6
60
|
declare namespace Label {
|
|
7
61
|
var displayName: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"label.d.ts","sourceRoot":"","sources":["../../../../../src/components/atoms/forms/label/label.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,cAAc,MAAM,uBAAuB,CAAC;AACxD,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,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,UAAU,2CAWjD;kBAXQ,KAAK;;;AAed,OAAO,EAAE,KAAK,EAAE,CAAC"}
|
|
1
|
+
{"version":3,"file":"label.d.ts","sourceRoot":"","sources":["../../../../../src/components/atoms/forms/label/label.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AAEH,OAAO,KAAK,cAAc,MAAM,uBAAuB,CAAC;AACxD,OAAO,KAAK,KAAK,KAAK,MAAM,OAAO,CAAC;AAGpC;;;GAGG;AACH,MAAM,WAAW,UAAW,SAAQ,KAAK,CAAC,cAAc,CAAC,OAAO,cAAc,CAAC,IAAI,CAAC;CAAG;AAEvF;;;;;;;;;;;;GAYG;AACH,iBAAS,KAAK,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,UAAU,2CAWjD;kBAXQ,KAAK;;;AAed,OAAO,EAAE,KAAK,EAAE,CAAC"}
|
|
@@ -1,6 +1,56 @@
|
|
|
1
1
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
/**
|
|
3
|
+
* # Label Component
|
|
4
|
+
*
|
|
5
|
+
* O componente `Label` é usado para associar texto descritivo a controles de formulário.
|
|
6
|
+
* É baseado em Radix UI para garantir acessibilidade completa e associação correta com inputs.
|
|
7
|
+
*
|
|
8
|
+
* ## Características Principais
|
|
9
|
+
*
|
|
10
|
+
* - **Acessível**: Baseado em Radix UI com suporte completo a leitores de tela
|
|
11
|
+
* - **Associação Automática**: Associa-se automaticamente a controles via htmlFor/id
|
|
12
|
+
* - **Estados Visuais**: Responde a estados disabled dos controles associados
|
|
13
|
+
* - **Customizável**: Pode ser estilizado via className e props HTML padrão
|
|
14
|
+
*
|
|
15
|
+
* ## Uso Básico
|
|
16
|
+
*
|
|
17
|
+
* ```tsx
|
|
18
|
+
* import { Label } from "@flowtomic/ui/components/atoms/forms/label";
|
|
19
|
+
* import { Input } from "@flowtomic/ui/components/atoms/forms/input";
|
|
20
|
+
*
|
|
21
|
+
* function MyComponent() {
|
|
22
|
+
* return (
|
|
23
|
+
* <div>
|
|
24
|
+
* <Label htmlFor="email">E-mail</Label>
|
|
25
|
+
* <Input id="email" type="email" />
|
|
26
|
+
* </div>
|
|
27
|
+
* );
|
|
28
|
+
* }
|
|
29
|
+
* ```
|
|
30
|
+
*
|
|
31
|
+
* ## Acessibilidade
|
|
32
|
+
*
|
|
33
|
+
* - Associa-se automaticamente a controles via htmlFor/id
|
|
34
|
+
* - Suporta leitores de tela
|
|
35
|
+
* - Responde visualmente a estados disabled dos controles
|
|
36
|
+
*
|
|
37
|
+
* @see [Radix UI Label](https://www.radix-ui.com/primitives/docs/components/label) para mais detalhes
|
|
38
|
+
*/
|
|
2
39
|
import * as LabelPrimitive from "@radix-ui/react-label";
|
|
3
40
|
import { cn } from "@/lib/utils";
|
|
41
|
+
/**
|
|
42
|
+
* Componente Label para associar texto a controles de formulário.
|
|
43
|
+
*
|
|
44
|
+
* @component
|
|
45
|
+
* @param {LabelProps} props - Props do componente
|
|
46
|
+
* @returns {JSX.Element} Elemento Label renderizado
|
|
47
|
+
*
|
|
48
|
+
* @example
|
|
49
|
+
* ```tsx
|
|
50
|
+
* <Label htmlFor="email">E-mail</Label>
|
|
51
|
+
* <Input id="email" type="email" />
|
|
52
|
+
* ```
|
|
53
|
+
*/
|
|
4
54
|
function Label({ className, ...props }) {
|
|
5
55
|
return (_jsx(LabelPrimitive.Root, { "data-slot": "label", className: cn("flex items-center gap-2 text-sm leading-none font-medium select-none group-data-[disabled=true]:pointer-events-none group-data-[disabled=true]:opacity-50 peer-disabled:cursor-not-allowed peer-disabled:opacity-50", className), ...props }));
|
|
6
56
|
}
|
|
@@ -1,5 +1,52 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* # RadioGroup Component
|
|
3
|
+
*
|
|
4
|
+
* O componente `RadioGroup` é um grupo de botões de opção usado para permitir que o usuário
|
|
5
|
+
* selecione uma opção 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
|
+
* - **Seleção Única**: Apenas uma opção pode ser selecionada por vez
|
|
11
|
+
* - **Composição**: RadioGroup + RadioGroupItem para flexibilidade
|
|
12
|
+
* - **Foco Gerenciado**: Foco e navegação por teclado gerenciados automaticamente
|
|
13
|
+
*
|
|
14
|
+
* ## Uso Básico
|
|
15
|
+
*
|
|
16
|
+
* ```tsx
|
|
17
|
+
* import { RadioGroup, RadioGroupItem } from "@flowtomic/ui/components/atoms/forms/radio-group";
|
|
18
|
+
*
|
|
19
|
+
* function MyComponent() {
|
|
20
|
+
* return (
|
|
21
|
+
* <RadioGroup defaultValue="option1">
|
|
22
|
+
* <div className="flex items-center gap-2">
|
|
23
|
+
* <RadioGroupItem value="option1" id="option1" />
|
|
24
|
+
* <label htmlFor="option1">Opção 1</label>
|
|
25
|
+
* </div>
|
|
26
|
+
* <div className="flex items-center gap-2">
|
|
27
|
+
* <RadioGroupItem value="option2" id="option2" />
|
|
28
|
+
* <label htmlFor="option2">Opção 2</label>
|
|
29
|
+
* </div>
|
|
30
|
+
* </RadioGroup>
|
|
31
|
+
* );
|
|
32
|
+
* }
|
|
33
|
+
* ```
|
|
34
|
+
*
|
|
35
|
+
* ## Acessibilidade
|
|
36
|
+
*
|
|
37
|
+
* - Suporta navegação por teclado (setas, Tab)
|
|
38
|
+
* - Segue padrões WAI-ARIA via Radix UI
|
|
39
|
+
* - Suporta leitores de tela
|
|
40
|
+
* - Foco gerenciado automaticamente
|
|
41
|
+
*
|
|
42
|
+
* @see [Radix UI Radio Group](https://www.radix-ui.com/primitives/docs/components/radio-group) para mais detalhes
|
|
43
|
+
*/
|
|
1
44
|
import * as RadioGroupPrimitive from "@radix-ui/react-radio-group";
|
|
2
45
|
import type * as React from "react";
|
|
46
|
+
/**
|
|
47
|
+
* Props do componente RadioGroup.
|
|
48
|
+
* @see RadioGroupPrimitive.Root para props disponíveis (value, onValueChange, defaultValue, etc.)
|
|
49
|
+
*/
|
|
3
50
|
export interface RadioGroupProps extends React.ComponentProps<typeof RadioGroupPrimitive.Root> {
|
|
4
51
|
}
|
|
5
52
|
declare function RadioGroup({ className, ...props }: RadioGroupProps): import("react/jsx-runtime").JSX.Element;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"radio-group.d.ts","sourceRoot":"","sources":["../../../../../src/components/atoms/forms/radio-group/radio-group.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,mBAAmB,MAAM,6BAA6B,CAAC;AAEnE,OAAO,KAAK,KAAK,KAAK,MAAM,OAAO,CAAC;AAGpC,MAAM,WAAW,eAAgB,SAAQ,KAAK,CAAC,cAAc,CAAC,OAAO,mBAAmB,CAAC,IAAI,CAAC;CAAG;AAEjG,iBAAS,UAAU,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,eAAe,2CAQ3D;kBARQ,UAAU;;;AAYnB,MAAM,WAAW,mBACf,SAAQ,KAAK,CAAC,cAAc,CAAC,OAAO,mBAAmB,CAAC,IAAI,CAAC;CAAG;AAElE,iBAAS,cAAc,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,mBAAmB,2CAkBnE;kBAlBQ,cAAc;;;AAsBvB,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,CAAC"}
|
|
1
|
+
{"version":3,"file":"radio-group.d.ts","sourceRoot":"","sources":["../../../../../src/components/atoms/forms/radio-group/radio-group.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0CG;AAEH,OAAO,KAAK,mBAAmB,MAAM,6BAA6B,CAAC;AAEnE,OAAO,KAAK,KAAK,KAAK,MAAM,OAAO,CAAC;AAGpC;;;GAGG;AACH,MAAM,WAAW,eAAgB,SAAQ,KAAK,CAAC,cAAc,CAAC,OAAO,mBAAmB,CAAC,IAAI,CAAC;CAAG;AAEjG,iBAAS,UAAU,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,eAAe,2CAQ3D;kBARQ,UAAU;;;AAYnB,MAAM,WAAW,mBACf,SAAQ,KAAK,CAAC,cAAc,CAAC,OAAO,mBAAmB,CAAC,IAAI,CAAC;CAAG;AAElE,iBAAS,cAAc,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,mBAAmB,2CAkBnE;kBAlBQ,cAAc;;;AAsBvB,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,CAAC"}
|
|
@@ -1,4 +1,47 @@
|
|
|
1
1
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
/**
|
|
3
|
+
* # RadioGroup Component
|
|
4
|
+
*
|
|
5
|
+
* O componente `RadioGroup` é um grupo de botões de opção usado para permitir que o usuário
|
|
6
|
+
* selecione uma opção 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
|
+
* - **Seleção Única**: Apenas uma opção pode ser selecionada por vez
|
|
12
|
+
* - **Composição**: RadioGroup + RadioGroupItem para flexibilidade
|
|
13
|
+
* - **Foco Gerenciado**: Foco e navegação por teclado gerenciados automaticamente
|
|
14
|
+
*
|
|
15
|
+
* ## Uso Básico
|
|
16
|
+
*
|
|
17
|
+
* ```tsx
|
|
18
|
+
* import { RadioGroup, RadioGroupItem } from "@flowtomic/ui/components/atoms/forms/radio-group";
|
|
19
|
+
*
|
|
20
|
+
* function MyComponent() {
|
|
21
|
+
* return (
|
|
22
|
+
* <RadioGroup defaultValue="option1">
|
|
23
|
+
* <div className="flex items-center gap-2">
|
|
24
|
+
* <RadioGroupItem value="option1" id="option1" />
|
|
25
|
+
* <label htmlFor="option1">Opção 1</label>
|
|
26
|
+
* </div>
|
|
27
|
+
* <div className="flex items-center gap-2">
|
|
28
|
+
* <RadioGroupItem value="option2" id="option2" />
|
|
29
|
+
* <label htmlFor="option2">Opção 2</label>
|
|
30
|
+
* </div>
|
|
31
|
+
* </RadioGroup>
|
|
32
|
+
* );
|
|
33
|
+
* }
|
|
34
|
+
* ```
|
|
35
|
+
*
|
|
36
|
+
* ## Acessibilidade
|
|
37
|
+
*
|
|
38
|
+
* - Suporta navegação por teclado (setas, Tab)
|
|
39
|
+
* - Segue padrões WAI-ARIA via Radix UI
|
|
40
|
+
* - Suporta leitores de tela
|
|
41
|
+
* - Foco gerenciado automaticamente
|
|
42
|
+
*
|
|
43
|
+
* @see [Radix UI Radio Group](https://www.radix-ui.com/primitives/docs/components/radio-group) para mais detalhes
|
|
44
|
+
*/
|
|
2
45
|
import * as RadioGroupPrimitive from "@radix-ui/react-radio-group";
|
|
3
46
|
import { CircleIcon } from "lucide-react";
|
|
4
47
|
import { cn } from "@/lib/utils";
|
|
@@ -1,5 +1,67 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* # Select Component
|
|
3
|
+
*
|
|
4
|
+
* O componente `Select` é um controle de seleção usado para permitir que o usuário escolha
|
|
5
|
+
* uma opção de uma lista de opções. É 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
|
+
* - **Composição**: Múltiplos sub-componentes para flexibilidade
|
|
11
|
+
* - **Animações**: Transições suaves de abertura/fechamento
|
|
12
|
+
* - **Busca**: Suporta busca/filtro de opções (via Radix UI)
|
|
13
|
+
* - **Customizável**: Pode ser estilizado via className e props HTML padrão
|
|
14
|
+
*
|
|
15
|
+
* ## Componentes
|
|
16
|
+
*
|
|
17
|
+
* - **Select**: Container raiz do select
|
|
18
|
+
* - **SelectTrigger**: Elemento que dispara o select
|
|
19
|
+
* - **SelectValue**: Exibe o valor selecionado
|
|
20
|
+
* - **SelectContent**: Conteúdo do dropdown
|
|
21
|
+
* - **SelectItem**: Item individual da lista
|
|
22
|
+
* - **SelectLabel**: Label/separador de seção
|
|
23
|
+
* - **SelectGroup**: Agrupa itens relacionados
|
|
24
|
+
* - **SelectSeparator**: Separador visual
|
|
25
|
+
*
|
|
26
|
+
* ## Uso Básico
|
|
27
|
+
*
|
|
28
|
+
* ```tsx
|
|
29
|
+
* import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from "@flowtomic/ui/components/atoms/forms/select";
|
|
30
|
+
*
|
|
31
|
+
* function MyComponent() {
|
|
32
|
+
* return (
|
|
33
|
+
* <Select>
|
|
34
|
+
* <SelectTrigger>
|
|
35
|
+
* <SelectValue placeholder="Selecione..." />
|
|
36
|
+
* </SelectTrigger>
|
|
37
|
+
* <SelectContent>
|
|
38
|
+
* <SelectItem value="option1">Opção 1</SelectItem>
|
|
39
|
+
* <SelectItem value="option2">Opção 2</SelectItem>
|
|
40
|
+
* <SelectItem value="option3">Opção 3</SelectItem>
|
|
41
|
+
* </SelectContent>
|
|
42
|
+
* </Select>
|
|
43
|
+
* );
|
|
44
|
+
* }
|
|
45
|
+
* ```
|
|
46
|
+
*
|
|
47
|
+
* ## Acessibilidade
|
|
48
|
+
*
|
|
49
|
+
* - Suporta navegação por teclado (setas, Enter, Esc)
|
|
50
|
+
* - Segue padrões WAI-ARIA via Radix UI
|
|
51
|
+
* - Suporta leitores de tela
|
|
52
|
+
* - Foco gerenciado automaticamente
|
|
53
|
+
*
|
|
54
|
+
* @see [Radix UI Select](https://www.radix-ui.com/primitives/docs/components/select) para mais detalhes
|
|
55
|
+
*/
|
|
1
56
|
import * as SelectPrimitive from "@radix-ui/react-select";
|
|
2
57
|
import type * as React from "react";
|
|
58
|
+
/**
|
|
59
|
+
* Componente Select (Root) para seleção de opções.
|
|
60
|
+
*
|
|
61
|
+
* @component
|
|
62
|
+
* @param {React.ComponentProps<typeof SelectPrimitive.Root>} props - Props do componente
|
|
63
|
+
* @returns {JSX.Element} Elemento Select renderizado
|
|
64
|
+
*/
|
|
3
65
|
declare function Select({ ...props }: React.ComponentProps<typeof SelectPrimitive.Root>): import("react/jsx-runtime").JSX.Element;
|
|
4
66
|
declare function SelectGroup({ ...props }: React.ComponentProps<typeof SelectPrimitive.Group>): import("react/jsx-runtime").JSX.Element;
|
|
5
67
|
declare function SelectValue({ ...props }: React.ComponentProps<typeof SelectPrimitive.Value>): import("react/jsx-runtime").JSX.Element;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"select.d.ts","sourceRoot":"","sources":["../../../../../src/components/atoms/forms/select/select.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,eAAe,MAAM,wBAAwB,CAAC;AAE1D,OAAO,KAAK,KAAK,KAAK,MAAM,OAAO,CAAC;AAIpC,iBAAS,MAAM,CAAC,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,eAAe,CAAC,IAAI,CAAC,2CAE9E;AAED,iBAAS,WAAW,CAAC,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,eAAe,CAAC,KAAK,CAAC,2CAEpF;AAED,iBAAS,WAAW,CAAC,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,eAAe,CAAC,KAAK,CAAC,2CAEpF;AAED,iBAAS,aAAa,CAAC,EACrB,SAAS,EACT,IAAgB,EAChB,QAAQ,EACR,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,eAAe,CAAC,OAAO,CAAC,GAAG;IACxD,IAAI,CAAC,EAAE,IAAI,GAAG,SAAS,CAAC;CACzB,2CAiBA;AAED,iBAAS,aAAa,CAAC,EACrB,SAAS,EACT,QAAQ,EACR,QAAmB,EACnB,KAAgB,EAChB,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,eAAe,CAAC,OAAO,CAAC,2CA6BtD;AAED,iBAAS,WAAW,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,eAAe,CAAC,KAAK,CAAC,2CAQ/F;AAED,iBAAS,UAAU,CAAC,EAClB,SAAS,EACT,QAAQ,EACR,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,eAAe,CAAC,IAAI,CAAC,2CAkBnD;AAED,iBAAS,eAAe,CAAC,EACvB,SAAS,EACT,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,eAAe,CAAC,SAAS,CAAC,2CAQxD;AAED,iBAAS,oBAAoB,CAAC,EAC5B,SAAS,EACT,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,eAAe,CAAC,cAAc,CAAC,2CAU7D;AAED,iBAAS,sBAAsB,CAAC,EAC9B,SAAS,EACT,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,eAAe,CAAC,gBAAgB,CAAC,2CAU/D;AAED,OAAO,EACL,MAAM,EACN,aAAa,EACb,WAAW,EACX,UAAU,EACV,WAAW,EACX,sBAAsB,EACtB,oBAAoB,EACpB,eAAe,EACf,aAAa,EACb,WAAW,GACZ,CAAC"}
|
|
1
|
+
{"version":3,"file":"select.d.ts","sourceRoot":"","sources":["../../../../../src/components/atoms/forms/select/select.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsDG;AAEH,OAAO,KAAK,eAAe,MAAM,wBAAwB,CAAC;AAE1D,OAAO,KAAK,KAAK,KAAK,MAAM,OAAO,CAAC;AAIpC;;;;;;GAMG;AACH,iBAAS,MAAM,CAAC,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,eAAe,CAAC,IAAI,CAAC,2CAE9E;AAED,iBAAS,WAAW,CAAC,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,eAAe,CAAC,KAAK,CAAC,2CAEpF;AAED,iBAAS,WAAW,CAAC,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,eAAe,CAAC,KAAK,CAAC,2CAEpF;AAED,iBAAS,aAAa,CAAC,EACrB,SAAS,EACT,IAAgB,EAChB,QAAQ,EACR,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,eAAe,CAAC,OAAO,CAAC,GAAG;IACxD,IAAI,CAAC,EAAE,IAAI,GAAG,SAAS,CAAC;CACzB,2CAiBA;AAED,iBAAS,aAAa,CAAC,EACrB,SAAS,EACT,QAAQ,EACR,QAAmB,EACnB,KAAgB,EAChB,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,eAAe,CAAC,OAAO,CAAC,2CA6BtD;AAED,iBAAS,WAAW,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,eAAe,CAAC,KAAK,CAAC,2CAQ/F;AAED,iBAAS,UAAU,CAAC,EAClB,SAAS,EACT,QAAQ,EACR,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,eAAe,CAAC,IAAI,CAAC,2CAkBnD;AAED,iBAAS,eAAe,CAAC,EACvB,SAAS,EACT,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,eAAe,CAAC,SAAS,CAAC,2CAQxD;AAED,iBAAS,oBAAoB,CAAC,EAC5B,SAAS,EACT,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,eAAe,CAAC,cAAc,CAAC,2CAU7D;AAED,iBAAS,sBAAsB,CAAC,EAC9B,SAAS,EACT,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,eAAe,CAAC,gBAAgB,CAAC,2CAU/D;AAED,OAAO,EACL,MAAM,EACN,aAAa,EACb,WAAW,EACX,UAAU,EACV,WAAW,EACX,sBAAsB,EACtB,oBAAoB,EACpB,eAAe,EACf,aAAa,EACb,WAAW,GACZ,CAAC"}
|
|
@@ -1,7 +1,69 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
/**
|
|
3
|
+
* # Select Component
|
|
4
|
+
*
|
|
5
|
+
* O componente `Select` é um controle de seleção usado para permitir que o usuário escolha
|
|
6
|
+
* uma opção de uma lista de opções. É 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
|
+
* - **Composição**: Múltiplos sub-componentes para flexibilidade
|
|
12
|
+
* - **Animações**: Transições suaves de abertura/fechamento
|
|
13
|
+
* - **Busca**: Suporta busca/filtro de opções (via Radix UI)
|
|
14
|
+
* - **Customizável**: Pode ser estilizado via className e props HTML padrão
|
|
15
|
+
*
|
|
16
|
+
* ## Componentes
|
|
17
|
+
*
|
|
18
|
+
* - **Select**: Container raiz do select
|
|
19
|
+
* - **SelectTrigger**: Elemento que dispara o select
|
|
20
|
+
* - **SelectValue**: Exibe o valor selecionado
|
|
21
|
+
* - **SelectContent**: Conteúdo do dropdown
|
|
22
|
+
* - **SelectItem**: Item individual da lista
|
|
23
|
+
* - **SelectLabel**: Label/separador de seção
|
|
24
|
+
* - **SelectGroup**: Agrupa itens relacionados
|
|
25
|
+
* - **SelectSeparator**: Separador visual
|
|
26
|
+
*
|
|
27
|
+
* ## Uso Básico
|
|
28
|
+
*
|
|
29
|
+
* ```tsx
|
|
30
|
+
* import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from "@flowtomic/ui/components/atoms/forms/select";
|
|
31
|
+
*
|
|
32
|
+
* function MyComponent() {
|
|
33
|
+
* return (
|
|
34
|
+
* <Select>
|
|
35
|
+
* <SelectTrigger>
|
|
36
|
+
* <SelectValue placeholder="Selecione..." />
|
|
37
|
+
* </SelectTrigger>
|
|
38
|
+
* <SelectContent>
|
|
39
|
+
* <SelectItem value="option1">Opção 1</SelectItem>
|
|
40
|
+
* <SelectItem value="option2">Opção 2</SelectItem>
|
|
41
|
+
* <SelectItem value="option3">Opção 3</SelectItem>
|
|
42
|
+
* </SelectContent>
|
|
43
|
+
* </Select>
|
|
44
|
+
* );
|
|
45
|
+
* }
|
|
46
|
+
* ```
|
|
47
|
+
*
|
|
48
|
+
* ## Acessibilidade
|
|
49
|
+
*
|
|
50
|
+
* - Suporta navegação por teclado (setas, Enter, Esc)
|
|
51
|
+
* - Segue padrões WAI-ARIA via Radix UI
|
|
52
|
+
* - Suporta leitores de tela
|
|
53
|
+
* - Foco gerenciado automaticamente
|
|
54
|
+
*
|
|
55
|
+
* @see [Radix UI Select](https://www.radix-ui.com/primitives/docs/components/select) para mais detalhes
|
|
56
|
+
*/
|
|
2
57
|
import * as SelectPrimitive from "@radix-ui/react-select";
|
|
3
58
|
import { CheckIcon, ChevronDownIcon, ChevronUpIcon } from "lucide-react";
|
|
4
59
|
import { cn } from "@/lib/utils";
|
|
60
|
+
/**
|
|
61
|
+
* Componente Select (Root) para seleção de opções.
|
|
62
|
+
*
|
|
63
|
+
* @component
|
|
64
|
+
* @param {React.ComponentProps<typeof SelectPrimitive.Root>} props - Props do componente
|
|
65
|
+
* @returns {JSX.Element} Elemento Select renderizado
|
|
66
|
+
*/
|
|
5
67
|
function Select({ ...props }) {
|
|
6
68
|
return _jsx(SelectPrimitive.Root, { "data-slot": "select", ...props });
|
|
7
69
|
}
|
|
@@ -1,7 +1,67 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* # Slider Component
|
|
3
|
+
*
|
|
4
|
+
* O componente `Slider` é um controle deslizante usado para selecionar um valor ou intervalo
|
|
5
|
+
* de valores dentro de um range. É 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
|
+
* - **Range**: Suporta valores únicos ou intervalos
|
|
11
|
+
* - **Orientação**: Suporta horizontal e vertical
|
|
12
|
+
* - **Customizável**: Valores min/max configuráveis
|
|
13
|
+
* - **Foco Gerenciado**: Foco e navegação por teclado gerenciados automaticamente
|
|
14
|
+
*
|
|
15
|
+
* ## Uso Básico
|
|
16
|
+
*
|
|
17
|
+
* ```tsx
|
|
18
|
+
* import { Slider } from "@flowtomic/ui/components/atoms/forms/slider";
|
|
19
|
+
*
|
|
20
|
+
* function MyComponent() {
|
|
21
|
+
* const [value, setValue] = React.useState([50]);
|
|
22
|
+
*
|
|
23
|
+
* return (
|
|
24
|
+
* <Slider
|
|
25
|
+
* value={value}
|
|
26
|
+
* onValueChange={setValue}
|
|
27
|
+
* min={0}
|
|
28
|
+
* max={100}
|
|
29
|
+
* />
|
|
30
|
+
* );
|
|
31
|
+
* }
|
|
32
|
+
* ```
|
|
33
|
+
*
|
|
34
|
+
* ## Com Intervalo
|
|
35
|
+
*
|
|
36
|
+
* ```tsx
|
|
37
|
+
* <Slider
|
|
38
|
+
* defaultValue={[20, 80]}
|
|
39
|
+
* min={0}
|
|
40
|
+
* max={100}
|
|
41
|
+
* />
|
|
42
|
+
* ```
|
|
43
|
+
*
|
|
44
|
+
* ## Acessibilidade
|
|
45
|
+
*
|
|
46
|
+
* - Suporta navegação por teclado (setas, Home, End)
|
|
47
|
+
* - Segue padrões WAI-ARIA via Radix UI
|
|
48
|
+
* - Suporta leitores de tela
|
|
49
|
+
* - Foco gerenciado automaticamente
|
|
50
|
+
*
|
|
51
|
+
* @see [Radix UI Slider](https://www.radix-ui.com/primitives/docs/components/slider) para mais detalhes
|
|
52
|
+
*/
|
|
1
53
|
import * as SliderPrimitive from "@radix-ui/react-slider";
|
|
2
54
|
import * as React from "react";
|
|
55
|
+
/**
|
|
56
|
+
* Props do componente Slider.
|
|
57
|
+
*
|
|
58
|
+
* @property {number} [min=0] - Valor mínimo do slider
|
|
59
|
+
* @property {number} [max=100] - Valor máximo do slider
|
|
60
|
+
*/
|
|
3
61
|
export interface SliderProps extends React.ComponentProps<typeof SliderPrimitive.Root> {
|
|
62
|
+
/** Valor mínimo do slider */
|
|
4
63
|
min?: number;
|
|
64
|
+
/** Valor máximo do slider */
|
|
5
65
|
max?: number;
|
|
6
66
|
}
|
|
7
67
|
declare function Slider({ className, defaultValue, value, min, max, ...props }: SliderProps): import("react/jsx-runtime").JSX.Element;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"slider.d.ts","sourceRoot":"","sources":["../../../../../src/components/atoms/forms/slider/slider.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,eAAe,MAAM,wBAAwB,CAAC;AAC1D,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,MAAM,WAAW,WAAY,SAAQ,KAAK,CAAC,cAAc,CAAC,OAAO,eAAe,CAAC,IAAI,CAAC;IACpF,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,iBAAS,MAAM,CAAC,EAAE,SAAS,EAAE,YAAY,EAAE,KAAK,EAAE,GAAO,EAAE,GAAS,EAAE,GAAG,KAAK,EAAE,EAAE,WAAW,
|
|
1
|
+
{"version":3,"file":"slider.d.ts","sourceRoot":"","sources":["../../../../../src/components/atoms/forms/slider/slider.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmDG;AAEH,OAAO,KAAK,eAAe,MAAM,wBAAwB,CAAC;AAC1D,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B;;;;;GAKG;AACH,MAAM,WAAW,WAAY,SAAQ,KAAK,CAAC,cAAc,CAAC,OAAO,eAAe,CAAC,IAAI,CAAC;IACpF,6BAA6B;IAC7B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,6BAA6B;IAC7B,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,iBAAS,MAAM,CAAC,EAAE,SAAS,EAAE,YAAY,EAAE,KAAK,EAAE,GAAO,EAAE,GAAS,EAAE,GAAG,KAAK,EAAE,EAAE,WAAW,2CA+C5F;kBA/CQ,MAAM;;;AAmDf,OAAO,EAAE,MAAM,EAAE,CAAC"}
|
|
@@ -1,11 +1,63 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
/**
|
|
3
|
+
* # Slider Component
|
|
4
|
+
*
|
|
5
|
+
* O componente `Slider` é um controle deslizante usado para selecionar um valor ou intervalo
|
|
6
|
+
* de valores dentro de um range. É 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
|
+
* - **Range**: Suporta valores únicos ou intervalos
|
|
12
|
+
* - **Orientação**: Suporta horizontal e vertical
|
|
13
|
+
* - **Customizável**: Valores min/max configuráveis
|
|
14
|
+
* - **Foco Gerenciado**: Foco e navegação por teclado gerenciados automaticamente
|
|
15
|
+
*
|
|
16
|
+
* ## Uso Básico
|
|
17
|
+
*
|
|
18
|
+
* ```tsx
|
|
19
|
+
* import { Slider } from "@flowtomic/ui/components/atoms/forms/slider";
|
|
20
|
+
*
|
|
21
|
+
* function MyComponent() {
|
|
22
|
+
* const [value, setValue] = React.useState([50]);
|
|
23
|
+
*
|
|
24
|
+
* return (
|
|
25
|
+
* <Slider
|
|
26
|
+
* value={value}
|
|
27
|
+
* onValueChange={setValue}
|
|
28
|
+
* min={0}
|
|
29
|
+
* max={100}
|
|
30
|
+
* />
|
|
31
|
+
* );
|
|
32
|
+
* }
|
|
33
|
+
* ```
|
|
34
|
+
*
|
|
35
|
+
* ## Com Intervalo
|
|
36
|
+
*
|
|
37
|
+
* ```tsx
|
|
38
|
+
* <Slider
|
|
39
|
+
* defaultValue={[20, 80]}
|
|
40
|
+
* min={0}
|
|
41
|
+
* max={100}
|
|
42
|
+
* />
|
|
43
|
+
* ```
|
|
44
|
+
*
|
|
45
|
+
* ## Acessibilidade
|
|
46
|
+
*
|
|
47
|
+
* - Suporta navegação por teclado (setas, Home, End)
|
|
48
|
+
* - Segue padrões WAI-ARIA via Radix UI
|
|
49
|
+
* - Suporta leitores de tela
|
|
50
|
+
* - Foco gerenciado automaticamente
|
|
51
|
+
*
|
|
52
|
+
* @see [Radix UI Slider](https://www.radix-ui.com/primitives/docs/components/slider) para mais detalhes
|
|
53
|
+
*/
|
|
2
54
|
import * as SliderPrimitive from "@radix-ui/react-slider";
|
|
3
55
|
import * as React from "react";
|
|
4
56
|
import { cn } from "@/lib/utils";
|
|
5
57
|
function Slider({ className, defaultValue, value, min = 0, max = 100, ...props }) {
|
|
6
58
|
const _values = React.useMemo(() => (Array.isArray(value) ? value : Array.isArray(defaultValue) ? defaultValue : [min, max]), [value, defaultValue, min, max]);
|
|
7
59
|
const thumbKeys = React.useMemo(() => _values.map((val, idx) => `slider-thumb-${val}-${idx}`), [_values]);
|
|
8
|
-
return (_jsxs(SliderPrimitive.Root, { "data-slot": "slider", defaultValue: defaultValue, value: value, min: min, max: max, className: cn("relative flex w-full touch-none items-center select-none data-
|
|
60
|
+
return (_jsxs(SliderPrimitive.Root, { "data-slot": "slider", defaultValue: defaultValue, value: value, min: min, max: max, className: cn("relative flex w-full touch-none items-center select-none data-disabled:opacity-50 data-[orientation=vertical]:h-full data-[orientation=vertical]:min-h-44 data-[orientation=vertical]:w-auto data-[orientation=vertical]:flex-col", className), ...props, children: [_jsx(SliderPrimitive.Track, { "data-slot": "slider-track", className: cn("bg-muted relative grow overflow-hidden rounded-full data-[orientation=horizontal]:h-1.5 data-[orientation=horizontal]:w-full data-[orientation=vertical]:h-full data-[orientation=vertical]:w-1.5"), children: _jsx(SliderPrimitive.Range, { "data-slot": "slider-range", className: cn("bg-primary absolute data-[orientation=horizontal]:h-full data-[orientation=vertical]:w-full") }) }), _values.map((_val, index) => (_jsx(SliderPrimitive.Thumb, { "data-slot": "slider-thumb", "aria-label": props["aria-label"], className: "border-primary ring-ring/50 block size-4 shrink-0 rounded-full border bg-white shadow-sm transition-[color,box-shadow] hover:ring-4 focus-visible:ring-4 focus-visible:outline-hidden disabled:pointer-events-none disabled:opacity-50" }, thumbKeys[index])))] }));
|
|
9
61
|
}
|
|
10
62
|
Slider.displayName = "Slider";
|
|
11
63
|
export { Slider };
|