@fracui/styleguide 0.0.0-stage → 0.1.1
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/README.md +325 -2
- package/dist/components/accordion.d.ts +19 -0
- package/dist/components/alert-dialog.d.ts +20 -0
- package/dist/components/alert.d.ts +8 -0
- package/dist/components/avatar.d.ts +36 -0
- package/dist/components/badge.d.ts +19 -0
- package/dist/components/breadcrumb.d.ts +35 -0
- package/dist/components/button-switch.d.ts +16 -0
- package/dist/components/button.d.ts +31 -0
- package/dist/components/calendar.d.ts +26 -0
- package/dist/components/card.d.ts +23 -0
- package/dist/components/checkbox.d.ts +16 -0
- package/dist/components/context-menu.d.ts +32 -0
- package/dist/components/data-table.d.ts +28 -0
- package/dist/components/date-picker.d.ts +16 -0
- package/dist/components/dialog.d.ts +36 -0
- package/dist/components/dropdown-menu.d.ts +39 -0
- package/dist/components/empty.d.ts +25 -0
- package/dist/components/fab.d.ts +26 -0
- package/dist/components/form-field.d.ts +35 -0
- package/dist/components/input.d.ts +29 -0
- package/dist/components/label.d.ts +5 -0
- package/dist/components/marker.d.ts +42 -0
- package/dist/components/model-legend.d.ts +48 -0
- package/dist/components/monitoring-status.d.ts +24 -0
- package/dist/components/navbar.d.ts +27 -0
- package/dist/components/pagination.d.ts +39 -0
- package/dist/components/password-input.d.ts +24 -0
- package/dist/components/player.d.ts +27 -0
- package/dist/components/popover.d.ts +21 -0
- package/dist/components/progress.d.ts +10 -0
- package/dist/components/radio-group.d.ts +24 -0
- package/dist/components/scroll-area.d.ts +11 -0
- package/dist/components/search-bar.d.ts +26 -0
- package/dist/components/select.d.ts +27 -0
- package/dist/components/separator.d.ts +12 -0
- package/dist/components/sheet.d.ts +42 -0
- package/dist/components/sidebar.d.ts +52 -0
- package/dist/components/sonner.d.ts +21 -0
- package/dist/components/spinner.d.ts +16 -0
- package/dist/components/switch.d.ts +12 -0
- package/dist/components/table.d.ts +35 -0
- package/dist/components/tabs.d.ts +23 -0
- package/dist/components/tag.d.ts +51 -0
- package/dist/components/textarea.d.ts +11 -0
- package/dist/components/tooltip.d.ts +16 -0
- package/dist/fonts.css +33 -0
- package/dist/hooks/use-mobile.d.ts +2 -0
- package/dist/icons/create-icon.d.ts +21 -0
- package/dist/icons/icons.d.ts +401 -0
- package/dist/icons/index.d.ts +2 -0
- package/dist/icons-DIjjoCNK.js +3646 -0
- package/dist/icons-DIjjoCNK.js.map +1 -0
- package/dist/icons-DOPTdi6L.cjs +2 -0
- package/dist/icons-DOPTdi6L.cjs.map +1 -0
- package/dist/icons.cjs +2 -0
- package/dist/icons.cjs.map +1 -0
- package/dist/icons.js +201 -0
- package/dist/icons.js.map +1 -0
- package/dist/index.cjs +69 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.ts +48 -0
- package/dist/index.js +15823 -0
- package/dist/index.js.map +1 -0
- package/dist/lib/utils.d.ts +6 -0
- package/dist/logos/create-logo.d.ts +27 -0
- package/dist/styles.css +3 -0
- package/dist/system/jsx-runtime-shim.d.ts +39 -0
- package/dist/tailwind-preset.cjs +2 -0
- package/dist/tailwind-preset.cjs.map +1 -0
- package/dist/tailwind-preset.d.ts +3 -0
- package/dist/tailwind-preset.js +318 -0
- package/dist/tailwind-preset.js.map +1 -0
- package/dist/tokens/colors.d.ts +347 -0
- package/dist/tokens/elevation.d.ts +87 -0
- package/dist/tokens/grid.d.ts +170 -0
- package/dist/tokens/index.d.ts +5 -0
- package/dist/tokens/theme.d.ts +129 -0
- package/dist/tokens/typography.d.ts +213 -0
- package/dist/tokens.cjs +2 -0
- package/dist/tokens.cjs.map +1 -0
- package/dist/tokens.css +150 -0
- package/dist/tokens.js +577 -0
- package/dist/tokens.js.map +1 -0
- package/package.json +136 -4
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
export interface DatePickerProps {
|
|
2
|
+
date?: Date;
|
|
3
|
+
onDateChange?: (date: Date | undefined) => void;
|
|
4
|
+
placeholder?: string;
|
|
5
|
+
disabled?: boolean;
|
|
6
|
+
className?: string;
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* DatePicker: composição de Popover + Calendar + Button.
|
|
10
|
+
* Não é um primitivo do Radix — é um padrão comum do shadcn/ui.
|
|
11
|
+
*/
|
|
12
|
+
declare function DatePicker({ date, onDateChange, placeholder, disabled, className, }: DatePickerProps): import("react").JSX.Element;
|
|
13
|
+
declare namespace DatePicker {
|
|
14
|
+
var displayName: string;
|
|
15
|
+
}
|
|
16
|
+
export { DatePicker };
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
import * as DialogPrimitive from "@radix-ui/react-dialog";
|
|
3
|
+
/**
|
|
4
|
+
* Modal, conforme os frames da página "↳ Modais" do Figma
|
|
5
|
+
* "Design System - 2026".
|
|
6
|
+
*
|
|
7
|
+
* A página não tem componentes, mas a assinatura se repete 10 vezes de
|
|
8
|
+
* forma idêntica — o que é especificação, só não promovida a variante:
|
|
9
|
+
* largura mínima de 560px, raio 12px, padding 32px, empilhamento vertical
|
|
10
|
+
* com 32px de gap e sombra `Grey/para baixo/8dp`.
|
|
11
|
+
*
|
|
12
|
+
* O cabeçalho tem título em `roboto/regular/h4`, um `icon button` de 48px
|
|
13
|
+
* à direita para fechar, e um divisor de 1px abaixo. O corpo usa
|
|
14
|
+
* `roboto/medium/subtitle 1` para subtítulo e `roboto/regular/body 2`
|
|
15
|
+
* para texto.
|
|
16
|
+
*
|
|
17
|
+
* DERIVADO: o design não especifica o overlay. Mantido o preto a 40%, que
|
|
18
|
+
* existe na paleta como `alpha.40`.
|
|
19
|
+
*/
|
|
20
|
+
declare const Dialog: React.FC<DialogPrimitive.DialogProps>;
|
|
21
|
+
declare const DialogTrigger: React.ForwardRefExoticComponent<DialogPrimitive.DialogTriggerProps & React.RefAttributes<HTMLButtonElement>>;
|
|
22
|
+
declare const DialogPortal: React.FC<DialogPrimitive.DialogPortalProps>;
|
|
23
|
+
declare const DialogClose: React.ForwardRefExoticComponent<DialogPrimitive.DialogCloseProps & React.RefAttributes<HTMLButtonElement>>;
|
|
24
|
+
declare const DialogOverlay: React.ForwardRefExoticComponent<Omit<DialogPrimitive.DialogOverlayProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
|
|
25
|
+
declare const DialogContent: React.ForwardRefExoticComponent<Omit<DialogPrimitive.DialogContentProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
|
|
26
|
+
declare const DialogHeader: {
|
|
27
|
+
({ className, ...props }: React.HTMLAttributes<HTMLDivElement>): React.JSX.Element;
|
|
28
|
+
displayName: string;
|
|
29
|
+
};
|
|
30
|
+
declare const DialogFooter: {
|
|
31
|
+
({ className, ...props }: React.HTMLAttributes<HTMLDivElement>): React.JSX.Element;
|
|
32
|
+
displayName: string;
|
|
33
|
+
};
|
|
34
|
+
declare const DialogTitle: React.ForwardRefExoticComponent<Omit<DialogPrimitive.DialogTitleProps & React.RefAttributes<HTMLHeadingElement>, "ref"> & React.RefAttributes<HTMLHeadingElement>>;
|
|
35
|
+
declare const DialogDescription: React.ForwardRefExoticComponent<Omit<DialogPrimitive.DialogDescriptionProps & React.RefAttributes<HTMLParagraphElement>, "ref"> & React.RefAttributes<HTMLParagraphElement>>;
|
|
36
|
+
export { Dialog, DialogPortal, DialogOverlay, DialogClose, DialogTrigger, DialogContent, DialogHeader, DialogFooter, DialogTitle, DialogDescription, };
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
import * as DropdownMenuPrimitive from "@radix-ui/react-dropdown-menu";
|
|
3
|
+
/**
|
|
4
|
+
* Menu suspenso, conforme os conjuntos `Select_dropdown` (painel) e
|
|
5
|
+
* `Dropdown frames` (itens) do Figma "Design System - 2026"
|
|
6
|
+
* (página "↳ Formulários e Dropdown").
|
|
7
|
+
*
|
|
8
|
+
* O conjunto `Dropdown frames` tem dois tipos de item: `Info`, que é o
|
|
9
|
+
* item comum, e `Exclusão`, para ações destrutivas — este último troca o
|
|
10
|
+
* fundo de hover para `error.bg` e o anel de foco para `error.icon`. O
|
|
11
|
+
* segundo tipo é acessível aqui pela prop `variant="destructive"`.
|
|
12
|
+
*/
|
|
13
|
+
declare const DropdownMenu: React.FC<DropdownMenuPrimitive.DropdownMenuProps>;
|
|
14
|
+
declare const DropdownMenuTrigger: React.ForwardRefExoticComponent<DropdownMenuPrimitive.DropdownMenuTriggerProps & React.RefAttributes<HTMLButtonElement>>;
|
|
15
|
+
declare const DropdownMenuGroup: React.ForwardRefExoticComponent<DropdownMenuPrimitive.DropdownMenuGroupProps & React.RefAttributes<HTMLDivElement>>;
|
|
16
|
+
declare const DropdownMenuPortal: React.FC<DropdownMenuPrimitive.DropdownMenuPortalProps>;
|
|
17
|
+
declare const DropdownMenuSub: React.FC<DropdownMenuPrimitive.DropdownMenuSubProps>;
|
|
18
|
+
declare const DropdownMenuRadioGroup: React.ForwardRefExoticComponent<DropdownMenuPrimitive.DropdownMenuRadioGroupProps & React.RefAttributes<HTMLDivElement>>;
|
|
19
|
+
declare const DropdownMenuSubTrigger: React.ForwardRefExoticComponent<Omit<DropdownMenuPrimitive.DropdownMenuSubTriggerProps & React.RefAttributes<HTMLDivElement>, "ref"> & {
|
|
20
|
+
inset?: boolean;
|
|
21
|
+
} & React.RefAttributes<HTMLDivElement>>;
|
|
22
|
+
declare const DropdownMenuSubContent: React.ForwardRefExoticComponent<Omit<DropdownMenuPrimitive.DropdownMenuSubContentProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
|
|
23
|
+
declare const DropdownMenuContent: React.ForwardRefExoticComponent<Omit<DropdownMenuPrimitive.DropdownMenuContentProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
|
|
24
|
+
declare const DropdownMenuItem: React.ForwardRefExoticComponent<Omit<DropdownMenuPrimitive.DropdownMenuItemProps & React.RefAttributes<HTMLDivElement>, "ref"> & {
|
|
25
|
+
inset?: boolean;
|
|
26
|
+
/** `destructive` corresponde ao tipo `Exclusão` do Figma. */
|
|
27
|
+
variant?: "default" | "destructive";
|
|
28
|
+
} & React.RefAttributes<HTMLDivElement>>;
|
|
29
|
+
declare const DropdownMenuCheckboxItem: React.ForwardRefExoticComponent<Omit<DropdownMenuPrimitive.DropdownMenuCheckboxItemProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
|
|
30
|
+
declare const DropdownMenuRadioItem: React.ForwardRefExoticComponent<Omit<DropdownMenuPrimitive.DropdownMenuRadioItemProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
|
|
31
|
+
declare const DropdownMenuLabel: React.ForwardRefExoticComponent<Omit<DropdownMenuPrimitive.DropdownMenuLabelProps & React.RefAttributes<HTMLDivElement>, "ref"> & {
|
|
32
|
+
inset?: boolean;
|
|
33
|
+
} & React.RefAttributes<HTMLDivElement>>;
|
|
34
|
+
declare const DropdownMenuSeparator: React.ForwardRefExoticComponent<Omit<DropdownMenuPrimitive.DropdownMenuSeparatorProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
|
|
35
|
+
declare const DropdownMenuShortcut: {
|
|
36
|
+
({ className, ...props }: React.HTMLAttributes<HTMLSpanElement>): React.JSX.Element;
|
|
37
|
+
displayName: string;
|
|
38
|
+
};
|
|
39
|
+
export { DropdownMenu, DropdownMenuTrigger, DropdownMenuContent, DropdownMenuItem, DropdownMenuCheckboxItem, DropdownMenuRadioItem, DropdownMenuLabel, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuGroup, DropdownMenuPortal, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuRadioGroup, };
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { VariantProps } from 'class-variance-authority';
|
|
2
|
+
import * as React from "react";
|
|
3
|
+
/**
|
|
4
|
+
* Estado vazio.
|
|
5
|
+
*
|
|
6
|
+
* Não tem contraparte no Figma — é um utilitário do shadcn, e o design
|
|
7
|
+
* não especifica o padrão de "nenhum resultado". A geometria foi mantida
|
|
8
|
+
* como estava; o que mudou foi passar a usar a escala tipográfica e os
|
|
9
|
+
* tokens da FracUI em vez das classes genéricas do Tailwind, para não
|
|
10
|
+
* introduzir métricas diferentes das do resto da biblioteca.
|
|
11
|
+
*/
|
|
12
|
+
/**
|
|
13
|
+
* Bloco de "estado vazio" (empty state): quando uma lista, busca ou
|
|
14
|
+
* seção não tem conteúdo para mostrar ainda.
|
|
15
|
+
*/
|
|
16
|
+
declare function Empty({ className, ...props }: React.ComponentProps<"div">): React.JSX.Element;
|
|
17
|
+
declare function EmptyHeader({ className, ...props }: React.ComponentProps<"div">): React.JSX.Element;
|
|
18
|
+
declare const emptyMediaVariants: (props?: ({
|
|
19
|
+
variant?: "default" | "icon" | null | undefined;
|
|
20
|
+
} & import('class-variance-authority/types').ClassProp) | undefined) => string;
|
|
21
|
+
declare function EmptyMedia({ className, variant, ...props }: React.ComponentProps<"div"> & VariantProps<typeof emptyMediaVariants>): React.JSX.Element;
|
|
22
|
+
declare function EmptyTitle({ className, ...props }: React.ComponentProps<"div">): React.JSX.Element;
|
|
23
|
+
declare function EmptyDescription({ className, ...props }: React.ComponentProps<"p">): React.JSX.Element;
|
|
24
|
+
declare function EmptyContent({ className, ...props }: React.ComponentProps<"div">): React.JSX.Element;
|
|
25
|
+
export { Empty, EmptyHeader, EmptyTitle, EmptyDescription, EmptyContent, EmptyMedia, };
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { VariantProps } from 'class-variance-authority';
|
|
2
|
+
import * as React from "react";
|
|
3
|
+
/**
|
|
4
|
+
* Botão de ação flutuante, conforme o conjunto `FAB` do Figma
|
|
5
|
+
* "Design System - 2026" (página "↳ Botões").
|
|
6
|
+
*
|
|
7
|
+
* A progressão de estados é a mesma do botão primário — `blue.light` em
|
|
8
|
+
* repouso, `blue.medium` no hover, `blue.dark` no foco — mas o FAB tem
|
|
9
|
+
* **elevação** (`azul/centralizado 2 - light`), e é isso que o separa de
|
|
10
|
+
* um `<Button size="icon">`: ele flutua sobre o conteúdo em vez de morar
|
|
11
|
+
* dentro de uma barra.
|
|
12
|
+
*
|
|
13
|
+
* O tamanho de 20px é o único com raio de 6px; os demais usam 12px.
|
|
14
|
+
*/
|
|
15
|
+
declare const fabVariants: (props?: ({
|
|
16
|
+
size?: "sm" | "lg" | "xs" | "md" | null | undefined;
|
|
17
|
+
} & import('class-variance-authority/types').ClassProp) | undefined) => string;
|
|
18
|
+
export interface FabProps extends React.ButtonHTMLAttributes<HTMLButtonElement>, VariantProps<typeof fabVariants> {
|
|
19
|
+
asChild?: boolean;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Um FAB é sempre só um ícone, então precisa de `aria-label` — sem ele o
|
|
23
|
+
* botão não tem nome acessível.
|
|
24
|
+
*/
|
|
25
|
+
declare const Fab: React.ForwardRefExoticComponent<FabProps & React.RefAttributes<HTMLButtonElement>>;
|
|
26
|
+
export { Fab, fabVariants };
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
/**
|
|
3
|
+
* Envelope de campo de formulário.
|
|
4
|
+
*
|
|
5
|
+
* Os conjuntos `Form text`, `Dropdown` e `Password` do Figma têm a mesma
|
|
6
|
+
* anatomia — `Título`, `Box` e `HelpText`, empilhados com 8px de gap — e
|
|
7
|
+
* por isso ela vive aqui, uma vez, em vez de ser remontada à mão em cada
|
|
8
|
+
* tela.
|
|
9
|
+
*
|
|
10
|
+
* O ganho não é só de repetição: o componente conecta o rótulo ao
|
|
11
|
+
* controle e o texto de apoio ao `aria-describedby` sozinho. Montado à
|
|
12
|
+
* mão, é justamente o `htmlFor` que falta e o `aria-describedby` que
|
|
13
|
+
* ninguém lembra de escrever — os dois casos que o axe acusa.
|
|
14
|
+
*
|
|
15
|
+
* ```tsx
|
|
16
|
+
* <FormField label="Estação" help="Busque pelo nome ou pelo código">
|
|
17
|
+
* <Input />
|
|
18
|
+
* </FormField>
|
|
19
|
+
*
|
|
20
|
+
* <FormField label="Vazão" error="Valor fora da faixa operacional">
|
|
21
|
+
* <Input />
|
|
22
|
+
* </FormField>
|
|
23
|
+
* ```
|
|
24
|
+
*/
|
|
25
|
+
export interface FormFieldProps extends Omit<React.HTMLAttributes<HTMLDivElement>, "children"> {
|
|
26
|
+
label?: React.ReactNode;
|
|
27
|
+
/** Texto de apoio. Substituído pelo `error` quando houver. */
|
|
28
|
+
help?: React.ReactNode;
|
|
29
|
+
/** Mensagem de erro. Marca o controle como inválido. */
|
|
30
|
+
error?: React.ReactNode;
|
|
31
|
+
/** O controle: `Input`, `Textarea`, `Select`, `SearchBar`… */
|
|
32
|
+
children: React.ReactElement;
|
|
33
|
+
}
|
|
34
|
+
declare const FormField: React.ForwardRefExoticComponent<FormFieldProps & React.RefAttributes<HTMLDivElement>>;
|
|
35
|
+
export { FormField };
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
/**
|
|
3
|
+
* Classes compartilhadas por `Input` e `Textarea`.
|
|
4
|
+
*
|
|
5
|
+
* Conforme o conjunto `Form text` do Figma "Design System - 2026"
|
|
6
|
+
* (página "↳ Formulários e Dropdown"). Estados especificados:
|
|
7
|
+
*
|
|
8
|
+
* | Figma | Aqui | Borda |
|
|
9
|
+
* | ---------- | ----------------------- | ---------------- |
|
|
10
|
+
* | Default | repouso | transparente |
|
|
11
|
+
* | Hover | `:hover` | `blue.1` |
|
|
12
|
+
* | Selected | `:focus-visible` | `blue.3` |
|
|
13
|
+
* | Erro | `[aria-invalid="true"]` | `error.icon` |
|
|
14
|
+
* | Disabled | `:disabled` | transparente |
|
|
15
|
+
*
|
|
16
|
+
* A borda é sempre de 2px, transparente em repouso: se ela só aparecesse
|
|
17
|
+
* no hover, o campo saltaria 2px a cada passagem do mouse.
|
|
18
|
+
*
|
|
19
|
+
* O estado `Complete` do Figma é idêntico ao `Default` no arquivo atual —
|
|
20
|
+
* provavelmente inacabado — então não virou um estado próprio aqui.
|
|
21
|
+
*
|
|
22
|
+
* A altura de 40px vem do `Box` do conjunto: campos só de texto têm 40px
|
|
23
|
+
* e campos com ícone têm 48px, porque o ícone de 24px com padding de 12px
|
|
24
|
+
* empurra a caixa. Ver `Select`, `SearchBar` e `PasswordInput`.
|
|
25
|
+
*/
|
|
26
|
+
export declare const fieldClassName = "w-full rounded-lg border-2 border-transparent bg-secondary px-3.5 py-3 text-body-2 text-foreground outline-none transition-colors placeholder:text-gray-light-medium hover:border-accent focus-visible:border-blue-3 aria-[invalid=true]:border-error-icon aria-[invalid=true]:bg-error-bg disabled:cursor-not-allowed disabled:text-disabled-foreground";
|
|
27
|
+
export type InputProps = React.InputHTMLAttributes<HTMLInputElement>;
|
|
28
|
+
declare const Input: React.ForwardRefExoticComponent<InputProps & React.RefAttributes<HTMLInputElement>>;
|
|
29
|
+
export { Input };
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { VariantProps } from 'class-variance-authority';
|
|
2
|
+
import * as React from "react";
|
|
3
|
+
import * as LabelPrimitive from "@radix-ui/react-label";
|
|
4
|
+
declare const Label: React.ForwardRefExoticComponent<Omit<LabelPrimitive.LabelProps & React.RefAttributes<HTMLLabelElement>, "ref"> & VariantProps<(props?: import('class-variance-authority/types').ClassProp | undefined) => string> & React.RefAttributes<HTMLLabelElement>>;
|
|
5
|
+
export { Label };
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { VariantProps } from 'class-variance-authority';
|
|
2
|
+
import * as React from "react";
|
|
3
|
+
/**
|
|
4
|
+
* Marcador de mapa, conforme o conjunto `markers` do Figma
|
|
5
|
+
* "Design System - 2026" (página "↳ Marcadores"), com 128 variantes.
|
|
6
|
+
*
|
|
7
|
+
* É o componente mais específico do domínio: cruza três informações que
|
|
8
|
+
* o SIGA precisa mostrar de uma vez em cima do mapa.
|
|
9
|
+
*
|
|
10
|
+
* - `situation` — o que está acontecendo com o corpo d'água: `estiagem`,
|
|
11
|
+
* `inundacao`, `normal` ou `sem-dado`.
|
|
12
|
+
* - `level` — a gravidade: `normal`, `atencao`, `alerta`, `emergencia`
|
|
13
|
+
* ou `sem-dado`.
|
|
14
|
+
* - `trend` — para onde o nível está indo: `subindo`, `descendo`,
|
|
15
|
+
* `estavel` ou `sem-dado`.
|
|
16
|
+
*
|
|
17
|
+
* A cor vem do cruzamento de `situation` com `level`: estiagem puxa para
|
|
18
|
+
* o âmbar e a inundação para o azul, e dentro de cada família a gravidade
|
|
19
|
+
* escurece o tom. Emergência de inundação é a única cor fora da paleta —
|
|
20
|
+
* um índigo que existe só neste conjunto.
|
|
21
|
+
*
|
|
22
|
+
* A tendência é uma seta, não uma cor: são eixos independentes, e o mapa
|
|
23
|
+
* precisa dos dois legíveis ao mesmo tempo.
|
|
24
|
+
*/
|
|
25
|
+
declare const markerVariants: (props?: ({
|
|
26
|
+
type?: "estacao" | "bacia" | null | undefined;
|
|
27
|
+
situation?: "estiagem" | "inundacao" | "normal" | "sem-dado" | null | undefined;
|
|
28
|
+
level?: "normal" | "sem-dado" | "atencao" | "alerta" | "emergencia" | null | undefined;
|
|
29
|
+
} & import('class-variance-authority/types').ClassProp) | undefined) => string;
|
|
30
|
+
declare const TREND_ICON: {
|
|
31
|
+
readonly subindo: React.ForwardRefExoticComponent<import('../icons').IconProps & React.RefAttributes<SVGSVGElement>>;
|
|
32
|
+
readonly descendo: React.ForwardRefExoticComponent<import('../icons').IconProps & React.RefAttributes<SVGSVGElement>>;
|
|
33
|
+
readonly estavel: React.ForwardRefExoticComponent<import('../icons').IconProps & React.RefAttributes<SVGSVGElement>>;
|
|
34
|
+
readonly "sem-dado": null;
|
|
35
|
+
};
|
|
36
|
+
export interface MarkerProps extends Omit<React.HTMLAttributes<HTMLSpanElement>, "children">, VariantProps<typeof markerVariants> {
|
|
37
|
+
trend?: keyof typeof TREND_ICON;
|
|
38
|
+
/** Rótulo ao lado do ícone — o eixo `label` do conjunto. */
|
|
39
|
+
label?: React.ReactNode;
|
|
40
|
+
}
|
|
41
|
+
declare const Marker: React.ForwardRefExoticComponent<MarkerProps & React.RefAttributes<HTMLSpanElement>>;
|
|
42
|
+
export { Marker, markerVariants };
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { VariantProps } from 'class-variance-authority';
|
|
2
|
+
import * as React from "react";
|
|
3
|
+
/**
|
|
4
|
+
* Legenda de modelo meteorológico, conforme os componentes da página
|
|
5
|
+
* "↳ Legendas" do Figma "Design System - 2026".
|
|
6
|
+
*
|
|
7
|
+
* Identifica de qual modelo de previsão vem uma série: ECMWF, GFS, CFS,
|
|
8
|
+
* WRF e os que vierem depois. A cor é o identificador, então ela é dado,
|
|
9
|
+
* não estilo — por isso vem em `MODEL_COLORS`, um mapa que cresce quando
|
|
10
|
+
* um modelo novo entra, em vez de virar variante do componente.
|
|
11
|
+
*
|
|
12
|
+
* O texto alterna entre branco e `gray.mediumDark` conforme a
|
|
13
|
+
* luminosidade do fundo, como no design: `CFS` e `WRF-ECMWF` são claros
|
|
14
|
+
* demais para texto branco.
|
|
15
|
+
*/
|
|
16
|
+
export declare const MODEL_COLORS: Record<string, {
|
|
17
|
+
bg: string;
|
|
18
|
+
onLight: boolean;
|
|
19
|
+
}>;
|
|
20
|
+
/** Cores reservadas para modelos novos, na ordem em que o Figma as lista. */
|
|
21
|
+
export declare const MODEL_COLORS_EXTRA: {
|
|
22
|
+
bg: string;
|
|
23
|
+
onLight: boolean;
|
|
24
|
+
}[];
|
|
25
|
+
export interface ModelLegendProps extends Omit<React.HTMLAttributes<HTMLSpanElement>, "color"> {
|
|
26
|
+
/** Nome do modelo. Se estiver em `MODEL_COLORS`, a cor vem de lá. */
|
|
27
|
+
model: string;
|
|
28
|
+
/** Sobrescreve a cor, para modelos ainda não catalogados. */
|
|
29
|
+
color?: {
|
|
30
|
+
bg: string;
|
|
31
|
+
onLight: boolean;
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
declare const ModelLegend: React.ForwardRefExoticComponent<ModelLegendProps & React.RefAttributes<HTMLSpanElement>>;
|
|
35
|
+
/**
|
|
36
|
+
* Texto de situação, também da página "↳ Legendas".
|
|
37
|
+
*
|
|
38
|
+
* Estados de fluxo de trabalho — solicitações, aprovações, ativação — em
|
|
39
|
+
* texto colorido sem fundo. Não é etiqueta: aparece dentro de tabelas e
|
|
40
|
+
* listas, onde um fundo criaria ruído.
|
|
41
|
+
*/
|
|
42
|
+
declare const statusTextVariants: (props?: ({
|
|
43
|
+
status?: "solicitado" | "processando" | "aprovado" | "cancelado" | "ativa" | "inativa" | null | undefined;
|
|
44
|
+
} & import('class-variance-authority/types').ClassProp) | undefined) => string;
|
|
45
|
+
export interface StatusTextProps extends React.HTMLAttributes<HTMLSpanElement>, VariantProps<typeof statusTextVariants> {
|
|
46
|
+
}
|
|
47
|
+
declare const StatusText: React.ForwardRefExoticComponent<StatusTextProps & React.RefAttributes<HTMLSpanElement>>;
|
|
48
|
+
export { ModelLegend, StatusText, statusTextVariants };
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { VariantProps } from 'class-variance-authority';
|
|
2
|
+
import * as React from "react";
|
|
3
|
+
/**
|
|
4
|
+
* Indicador de situação de monitoramento, conforme o conjunto
|
|
5
|
+
* `monitoramento` do Figma (página "↳ Marcadores").
|
|
6
|
+
*
|
|
7
|
+
* Um ponto colorido com rótulo, para listas e painéis. Diferente do
|
|
8
|
+
* `Marker`, que vive sobre o mapa e cruza situação com tendência, aqui a
|
|
9
|
+
* informação é só a gravidade.
|
|
10
|
+
*
|
|
11
|
+
* O ponto e o texto usam cores diferentes de propósito: o ponto precisa
|
|
12
|
+
* saltar à distância, e o texto precisa ser legível de perto.
|
|
13
|
+
*
|
|
14
|
+
* ATENÇÃO: o Figma grafa a variante de atenção como "alenção". Aqui está
|
|
15
|
+
* `atencao`, com o nome correto.
|
|
16
|
+
*/
|
|
17
|
+
declare const dotVariants: (props?: ({
|
|
18
|
+
status?: "normal" | "sem-dado" | "atencao" | "alerta" | "emergencia" | "nulo" | null | undefined;
|
|
19
|
+
} & import('class-variance-authority/types').ClassProp) | undefined) => string;
|
|
20
|
+
export interface MonitoringStatusProps extends Omit<React.HTMLAttributes<HTMLSpanElement>, "children">, VariantProps<typeof dotVariants> {
|
|
21
|
+
children?: React.ReactNode;
|
|
22
|
+
}
|
|
23
|
+
declare const MonitoringStatus: React.ForwardRefExoticComponent<MonitoringStatusProps & React.RefAttributes<HTMLSpanElement>>;
|
|
24
|
+
export { MonitoringStatus, dotVariants as monitoringDotVariants };
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
/**
|
|
3
|
+
* Barra superior, conforme o conjunto `Navbar` do Figma
|
|
4
|
+
* "Design System - 2026" (página "↳ Navbar e Sidebar").
|
|
5
|
+
*
|
|
6
|
+
* 72px de altura, fundo do card, padding de 16px na vertical e 20px na
|
|
7
|
+
* horizontal. O gap entre as ações é de 16px no tablet e 24px no desktop,
|
|
8
|
+
* conforme as duas variantes do conjunto — nesta ordem, não o contrário. O design tem duas variantes, desktop e tablet, que diferem
|
|
9
|
+
* apenas no espaço entre a marca e as ações — aqui isso é
|
|
10
|
+
* `justify-between`, e não uma variante, porque o comportamento é o
|
|
11
|
+
* mesmo em qualquer largura.
|
|
12
|
+
*
|
|
13
|
+
* ```tsx
|
|
14
|
+
* <Navbar>
|
|
15
|
+
* <NavbarBrand><SigaHorizontalBlueLogo height={24} /></NavbarBrand>
|
|
16
|
+
* <NavbarActions>
|
|
17
|
+
* <Button variant="ghost" size="icon"><NotificationsIcon /></Button>
|
|
18
|
+
* </NavbarActions>
|
|
19
|
+
* </Navbar>
|
|
20
|
+
* ```
|
|
21
|
+
*/
|
|
22
|
+
declare const Navbar: React.ForwardRefExoticComponent<Omit<React.DetailedHTMLProps<React.HTMLAttributes<HTMLElement>, HTMLElement>, "ref"> & React.RefAttributes<HTMLElement>>;
|
|
23
|
+
/** A marca do produto, à esquerda. */
|
|
24
|
+
declare const NavbarBrand: React.ForwardRefExoticComponent<Omit<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
|
|
25
|
+
/** Ações e conta, à direita. O gap de 24px é o do design. */
|
|
26
|
+
declare const NavbarActions: React.ForwardRefExoticComponent<Omit<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
|
|
27
|
+
export { Navbar, NavbarBrand, NavbarActions };
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { ButtonProps } from './button';
|
|
2
|
+
import * as React from "react";
|
|
3
|
+
/**
|
|
4
|
+
* Paginação, conforme o conjunto de paginação do Figma
|
|
5
|
+
* "Design System - 2026" (página "↳ Breadcrumbs e Paginação").
|
|
6
|
+
*
|
|
7
|
+
* Cada número é uma célula de 36px em `roboto/regular/body 2`, na cor
|
|
8
|
+
* `gray.medium`; a página atual assume `info.text` em peso medium.
|
|
9
|
+
*
|
|
10
|
+
* O Figma especifica a variante "Alternada 1" em Inter 500 — a única
|
|
11
|
+
* ocorrência de Inter no arquivo inteiro, quase certamente um resquício.
|
|
12
|
+
* Aqui foi mantido Roboto, como no resto do design system.
|
|
13
|
+
*/
|
|
14
|
+
declare const Pagination: {
|
|
15
|
+
({ className, ...props }: React.ComponentProps<"nav">): React.JSX.Element;
|
|
16
|
+
displayName: string;
|
|
17
|
+
};
|
|
18
|
+
declare const PaginationContent: React.ForwardRefExoticComponent<Omit<React.DetailedHTMLProps<React.HTMLAttributes<HTMLUListElement>, HTMLUListElement>, "ref"> & React.RefAttributes<HTMLUListElement>>;
|
|
19
|
+
declare const PaginationItem: React.ForwardRefExoticComponent<Omit<React.DetailedHTMLProps<React.LiHTMLAttributes<HTMLLIElement>, HTMLLIElement>, "ref"> & React.RefAttributes<HTMLLIElement>>;
|
|
20
|
+
type PaginationLinkProps = {
|
|
21
|
+
isActive?: boolean;
|
|
22
|
+
} & Pick<ButtonProps, "size"> & React.ComponentProps<"a">;
|
|
23
|
+
declare const PaginationLink: {
|
|
24
|
+
({ className, isActive, size, ...props }: PaginationLinkProps): React.JSX.Element;
|
|
25
|
+
displayName: string;
|
|
26
|
+
};
|
|
27
|
+
declare const PaginationPrevious: {
|
|
28
|
+
({ className, ...props }: React.ComponentProps<typeof PaginationLink>): React.JSX.Element;
|
|
29
|
+
displayName: string;
|
|
30
|
+
};
|
|
31
|
+
declare const PaginationNext: {
|
|
32
|
+
({ className, ...props }: React.ComponentProps<typeof PaginationLink>): React.JSX.Element;
|
|
33
|
+
displayName: string;
|
|
34
|
+
};
|
|
35
|
+
declare const PaginationEllipsis: {
|
|
36
|
+
({ className, ...props }: React.ComponentProps<"span">): React.JSX.Element;
|
|
37
|
+
displayName: string;
|
|
38
|
+
};
|
|
39
|
+
export { Pagination, PaginationContent, PaginationEllipsis, PaginationItem, PaginationLink, PaginationNext, PaginationPrevious, };
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
/**
|
|
3
|
+
* Campo de senha, conforme o conjunto `Password` do Figma
|
|
4
|
+
* "Design System - 2026" (página "↳ Formulários e Dropdown").
|
|
5
|
+
*
|
|
6
|
+
* É o campo do `Input` com o botão de mostrar/ocultar à direita. O eixo
|
|
7
|
+
* `View` do Figma (`on`/`off`) é estado interno aqui — quem usa não
|
|
8
|
+
* precisa controlá-lo, embora possa, via `visible` e `onVisibleChange`.
|
|
9
|
+
*
|
|
10
|
+
* Altura de 48px, e não os 40px do `Input`: o campo cresce para acomodar
|
|
11
|
+
* o ícone de 24px com o mesmo padding de 12px.
|
|
12
|
+
*/
|
|
13
|
+
export interface PasswordInputProps extends Omit<React.InputHTMLAttributes<HTMLInputElement>, "type"> {
|
|
14
|
+
/** Controla a visibilidade de fora, se necessário. */
|
|
15
|
+
visible?: boolean;
|
|
16
|
+
onVisibleChange?: (visible: boolean) => void;
|
|
17
|
+
/** Rótulo do botão de alternar, para leitores de tela. */
|
|
18
|
+
toggleLabel?: {
|
|
19
|
+
show: string;
|
|
20
|
+
hide: string;
|
|
21
|
+
};
|
|
22
|
+
}
|
|
23
|
+
declare const PasswordInput: React.ForwardRefExoticComponent<PasswordInputProps & React.RefAttributes<HTMLInputElement>>;
|
|
24
|
+
export { PasswordInput };
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
/**
|
|
3
|
+
* Controle de reprodução de série temporal, conforme os componentes da
|
|
4
|
+
* página "↳ Player" do Figma "Design System - 2026".
|
|
5
|
+
*
|
|
6
|
+
* Percorre uma série no tempo — animar a evolução da chuva sobre a bacia,
|
|
7
|
+
* varrer o horizonte de uma previsão. Não é um player de mídia: a barra
|
|
8
|
+
* representa passos de tempo, e os rótulos abaixo dela marcam o intervalo.
|
|
9
|
+
*
|
|
10
|
+
* 72px de altura, raio de 12px, superfície `secondary`, com botões de
|
|
11
|
+
* ícone de 40px. O design tem quatro variantes que combinam dois eixos —
|
|
12
|
+
* `Padrão`/`Completo` (quantos controles aparecem) e `vazio`/`preenchido`
|
|
13
|
+
* (se a barra tem progresso) — e os dois viram props aqui, porque
|
|
14
|
+
* `preenchido` é estado em tempo de execução, não uma escolha de layout.
|
|
15
|
+
*/
|
|
16
|
+
export interface PlayerProps extends React.HTMLAttributes<HTMLDivElement> {
|
|
17
|
+
/** Controles de transporte: voltar, reproduzir, avançar. */
|
|
18
|
+
controls?: React.ReactNode;
|
|
19
|
+
/** Progresso da série, de 0 a 100. `null` quando não há dado. */
|
|
20
|
+
value?: number | null;
|
|
21
|
+
/** Rótulo à esquerda, abaixo da barra. */
|
|
22
|
+
startLabel?: React.ReactNode;
|
|
23
|
+
/** Rótulo à direita, abaixo da barra. */
|
|
24
|
+
endLabel?: React.ReactNode;
|
|
25
|
+
}
|
|
26
|
+
declare const Player: React.ForwardRefExoticComponent<PlayerProps & React.RefAttributes<HTMLDivElement>>;
|
|
27
|
+
export { Player };
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
import * as PopoverPrimitive from "@radix-ui/react-popover";
|
|
3
|
+
/**
|
|
4
|
+
* Popover, conforme os frames da página "↳ Pop over" do Figma
|
|
5
|
+
* "Design System - 2026".
|
|
6
|
+
*
|
|
7
|
+
* A página não tem componentes, mas a assinatura se repete de forma
|
|
8
|
+
* consistente: raio 12px, padding 20px, gap 20px e sombra
|
|
9
|
+
* `azul/centralizado 2 - light`.
|
|
10
|
+
*
|
|
11
|
+
* O fundo é o da página, não uma superfície elevada — o design distingue
|
|
12
|
+
* o popover pela borda, e isso vale nos dois temas: `#FFFFFF` sobre borda
|
|
13
|
+
* `#E5E5E5` no claro, `#040814` sobre borda `#142C50` no escuro. É um dos
|
|
14
|
+
* poucos elementos com dark mode explicitamente especificado no arquivo,
|
|
15
|
+
* e confirma os valores que estavam derivados nos tokens.
|
|
16
|
+
*/
|
|
17
|
+
declare const Popover: React.FC<PopoverPrimitive.PopoverProps>;
|
|
18
|
+
declare const PopoverTrigger: React.ForwardRefExoticComponent<PopoverPrimitive.PopoverTriggerProps & React.RefAttributes<HTMLButtonElement>>;
|
|
19
|
+
declare const PopoverAnchor: React.ForwardRefExoticComponent<PopoverPrimitive.PopoverAnchorProps & React.RefAttributes<HTMLDivElement>>;
|
|
20
|
+
declare const PopoverContent: React.ForwardRefExoticComponent<Omit<PopoverPrimitive.PopoverContentProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
|
|
21
|
+
export { Popover, PopoverTrigger, PopoverContent, PopoverAnchor };
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
import * as ProgressPrimitive from "@radix-ui/react-progress";
|
|
3
|
+
/** Percentual a partir do qual a barra passa a verde. */
|
|
4
|
+
export declare const COMPLETING_THRESHOLD = 80;
|
|
5
|
+
export interface ProgressProps extends React.ComponentPropsWithoutRef<typeof ProgressPrimitive.Root> {
|
|
6
|
+
/** Marca a barra como erro ou cancelamento. */
|
|
7
|
+
error?: boolean;
|
|
8
|
+
}
|
|
9
|
+
declare const Progress: React.ForwardRefExoticComponent<ProgressProps & React.RefAttributes<HTMLDivElement>>;
|
|
10
|
+
export { Progress };
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
import * as RadioGroupPrimitive from "@radix-ui/react-radio-group";
|
|
3
|
+
/**
|
|
4
|
+
* Grupo de opções exclusivas, conforme o conjunto `radio` do Figma
|
|
5
|
+
* "Design System - 2026" (página "↳ Checkbox - Radio - Switch").
|
|
6
|
+
*
|
|
7
|
+
* O design desenha um círculo de 20px dentro de uma área de 42px e usa o
|
|
8
|
+
* espaço restante como halo de 28px nos estados hover e focused — a mesma
|
|
9
|
+
* gramática do `Checkbox`, e por isso o halo aqui também é um `ring` com
|
|
10
|
+
* offset em vez de um elemento decorativo extra.
|
|
11
|
+
*
|
|
12
|
+
* | Estado | Círculo | Halo |
|
|
13
|
+
* | ------------------- | ------------------------------ | ---------- |
|
|
14
|
+
* | não selecionado | `secondary` + borda `gray.medium` | — |
|
|
15
|
+
* | não selec. + hover | idem | `secondary` |
|
|
16
|
+
* | não selec. + foco | idem | `secondary` + borda `border` |
|
|
17
|
+
* | selecionado | borda `primary` + ponto | — |
|
|
18
|
+
* | selecionado + hover | idem | `accent` |
|
|
19
|
+
* | desabilitado | borda `border` | — |
|
|
20
|
+
* | selec. desabilitado | borda `blue.2` | — |
|
|
21
|
+
*/
|
|
22
|
+
declare const RadioGroup: React.ForwardRefExoticComponent<Omit<RadioGroupPrimitive.RadioGroupProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
|
|
23
|
+
declare const RadioGroupItem: React.ForwardRefExoticComponent<Omit<RadioGroupPrimitive.RadioGroupItemProps & React.RefAttributes<HTMLButtonElement>, "ref"> & React.RefAttributes<HTMLButtonElement>>;
|
|
24
|
+
export { RadioGroup, RadioGroupItem };
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
import * as ScrollAreaPrimitive from "@radix-ui/react-scroll-area";
|
|
3
|
+
/**
|
|
4
|
+
* Área com rolagem.
|
|
5
|
+
*
|
|
6
|
+
* Não tem contraparte no Figma. A barra usa `bg-border`, que já é o
|
|
7
|
+
* `gray.light` do design.
|
|
8
|
+
*/
|
|
9
|
+
declare const ScrollArea: React.ForwardRefExoticComponent<Omit<ScrollAreaPrimitive.ScrollAreaProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
|
|
10
|
+
declare const ScrollBar: React.ForwardRefExoticComponent<Omit<ScrollAreaPrimitive.ScrollAreaScrollbarProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
|
|
11
|
+
export { ScrollArea, ScrollBar };
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { VariantProps } from 'class-variance-authority';
|
|
2
|
+
import * as React from "react";
|
|
3
|
+
/**
|
|
4
|
+
* Campo de busca, conforme o conjunto `Search bar` do Figma
|
|
5
|
+
* "Design System - 2026" (página "↳ Formulários e Dropdown").
|
|
6
|
+
*
|
|
7
|
+
* Compartilha os estados do `Input` — mesma superfície, mesmas bordas de
|
|
8
|
+
* hover, foco e erro — e acrescenta o ícone de lupa à esquerda.
|
|
9
|
+
*
|
|
10
|
+
* Os dois tamanhos do design mudam altura, padding e tipografia juntos:
|
|
11
|
+
*
|
|
12
|
+
* | Tamanho | Altura | Padding | Texto |
|
|
13
|
+
* | ------- | ------ | ------- | --------- |
|
|
14
|
+
* | `sm` | 48px | 14px | `body-2` |
|
|
15
|
+
* | `lg` | 64px | 20px | `h5` |
|
|
16
|
+
*
|
|
17
|
+
* No estado de erro o ícone acompanha o texto e vai para `error.icon`, em
|
|
18
|
+
* vez de continuar cinza.
|
|
19
|
+
*/
|
|
20
|
+
declare const searchBarVariants: (props?: ({
|
|
21
|
+
size?: "sm" | "lg" | null | undefined;
|
|
22
|
+
} & import('class-variance-authority/types').ClassProp) | undefined) => string;
|
|
23
|
+
export interface SearchBarProps extends Omit<React.InputHTMLAttributes<HTMLInputElement>, "size">, VariantProps<typeof searchBarVariants> {
|
|
24
|
+
}
|
|
25
|
+
declare const SearchBar: React.ForwardRefExoticComponent<SearchBarProps & React.RefAttributes<HTMLInputElement>>;
|
|
26
|
+
export { SearchBar, searchBarVariants };
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
import * as SelectPrimitive from "@radix-ui/react-select";
|
|
3
|
+
/**
|
|
4
|
+
* Seleção, conforme os conjuntos `Dropdown` (o gatilho) e
|
|
5
|
+
* `Select_dropdown` (o painel) do Figma "Design System - 2026"
|
|
6
|
+
* (página "↳ Formulários e Dropdown").
|
|
7
|
+
*
|
|
8
|
+
* O gatilho é visualmente o mesmo campo do `Input` — mesmo fundo, mesmo
|
|
9
|
+
* raio, mesmos estados — então reaproveita `fieldClassName` em vez de
|
|
10
|
+
* repetir a lista de classes. O painel é o único elemento com visual
|
|
11
|
+
* próprio: fundo branco, raio de 12px, borda `gray.light` e 12px de
|
|
12
|
+
* padding interno.
|
|
13
|
+
*
|
|
14
|
+
* Os itens seguem o conjunto `Dropdown frames`: 48px de altura, raio de
|
|
15
|
+
* 8px e 16px de gap entre ícone e rótulo.
|
|
16
|
+
*/
|
|
17
|
+
declare const Select: React.FC<SelectPrimitive.SelectProps>;
|
|
18
|
+
declare const SelectGroup: React.ForwardRefExoticComponent<SelectPrimitive.SelectGroupProps & React.RefAttributes<HTMLDivElement>>;
|
|
19
|
+
declare const SelectValue: React.ForwardRefExoticComponent<SelectPrimitive.SelectValueProps & React.RefAttributes<HTMLSpanElement>>;
|
|
20
|
+
declare const SelectTrigger: React.ForwardRefExoticComponent<Omit<SelectPrimitive.SelectTriggerProps & React.RefAttributes<HTMLButtonElement>, "ref"> & React.RefAttributes<HTMLButtonElement>>;
|
|
21
|
+
declare const SelectScrollUpButton: React.ForwardRefExoticComponent<Omit<SelectPrimitive.SelectScrollUpButtonProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
|
|
22
|
+
declare const SelectScrollDownButton: React.ForwardRefExoticComponent<Omit<SelectPrimitive.SelectScrollDownButtonProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
|
|
23
|
+
declare const SelectContent: React.ForwardRefExoticComponent<Omit<SelectPrimitive.SelectContentProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
|
|
24
|
+
declare const SelectLabel: React.ForwardRefExoticComponent<Omit<SelectPrimitive.SelectLabelProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
|
|
25
|
+
declare const SelectItem: React.ForwardRefExoticComponent<Omit<SelectPrimitive.SelectItemProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
|
|
26
|
+
declare const SelectSeparator: React.ForwardRefExoticComponent<Omit<SelectPrimitive.SelectSeparatorProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
|
|
27
|
+
export { Select, SelectGroup, SelectValue, SelectTrigger, SelectContent, SelectLabel, SelectItem, SelectSeparator, SelectScrollUpButton, SelectScrollDownButton, };
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
import * as SeparatorPrimitive from "@radix-ui/react-separator";
|
|
3
|
+
/**
|
|
4
|
+
* Divisor, conforme os componentes `Horizontal` e `Vertical` da página
|
|
5
|
+
* "↳ Divisores" do Figma "Design System - 2026".
|
|
6
|
+
*
|
|
7
|
+
* 1px em `gray.light` (#E5E5E5) nas duas orientações — que é exatamente o
|
|
8
|
+
* token `border`. O componente já estava correto: nenhuma medida mudou,
|
|
9
|
+
* só a confirmação contra o arquivo.
|
|
10
|
+
*/
|
|
11
|
+
declare const Separator: React.ForwardRefExoticComponent<Omit<SeparatorPrimitive.SeparatorProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
|
|
12
|
+
export { Separator };
|