@fracui/styleguide 0.0.0-stage → 0.1.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/README.md +314 -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 +1 -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.js +577 -0
- package/dist/tokens.js.map +1 -0
- package/package.json +135 -4
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { VariantProps } from 'class-variance-authority';
|
|
2
|
+
import * as React from "react";
|
|
3
|
+
import * as SheetPrimitive from "@radix-ui/react-dialog";
|
|
4
|
+
/**
|
|
5
|
+
* Painel deslizante.
|
|
6
|
+
*
|
|
7
|
+
* DERIVADO: o Figma não tem página nem conjunto para este componente. A
|
|
8
|
+
* geometria vem do modal (padding 32px, gap 32px, superfície do card) e a
|
|
9
|
+
* sombra vem do sistema de elevação direcional, que existe justamente
|
|
10
|
+
* para isto — um painel que entra pela direita projeta sombra para a
|
|
11
|
+
* esquerda, e vice-versa. Ver `shadowGrey` em `src/tokens/elevation.ts`.
|
|
12
|
+
*
|
|
13
|
+
* Substitua pelas medidas reais assim que o design especificar o
|
|
14
|
+
* componente.
|
|
15
|
+
*/
|
|
16
|
+
/**
|
|
17
|
+
* Sheet: painel deslizante lateral (variação do Dialog com `side`).
|
|
18
|
+
* Usado internamente pelo Sidebar no modo mobile, mas também é útil
|
|
19
|
+
* de forma independente para drawers/painéis laterais.
|
|
20
|
+
*/
|
|
21
|
+
declare const Sheet: React.FC<SheetPrimitive.DialogProps>;
|
|
22
|
+
declare const SheetTrigger: React.ForwardRefExoticComponent<SheetPrimitive.DialogTriggerProps & React.RefAttributes<HTMLButtonElement>>;
|
|
23
|
+
declare const SheetClose: React.ForwardRefExoticComponent<SheetPrimitive.DialogCloseProps & React.RefAttributes<HTMLButtonElement>>;
|
|
24
|
+
declare const SheetPortal: React.FC<SheetPrimitive.DialogPortalProps>;
|
|
25
|
+
declare const SheetOverlay: React.ForwardRefExoticComponent<Omit<SheetPrimitive.DialogOverlayProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
|
|
26
|
+
declare const sheetVariants: (props?: ({
|
|
27
|
+
side?: "left" | "right" | "bottom" | "top" | null | undefined;
|
|
28
|
+
} & import('class-variance-authority/types').ClassProp) | undefined) => string;
|
|
29
|
+
interface SheetContentProps extends React.ComponentPropsWithoutRef<typeof SheetPrimitive.Content>, VariantProps<typeof sheetVariants> {
|
|
30
|
+
}
|
|
31
|
+
declare const SheetContent: React.ForwardRefExoticComponent<SheetContentProps & React.RefAttributes<HTMLDivElement>>;
|
|
32
|
+
declare const SheetHeader: {
|
|
33
|
+
({ className, ...props }: React.HTMLAttributes<HTMLDivElement>): React.JSX.Element;
|
|
34
|
+
displayName: string;
|
|
35
|
+
};
|
|
36
|
+
declare const SheetFooter: {
|
|
37
|
+
({ className, ...props }: React.HTMLAttributes<HTMLDivElement>): React.JSX.Element;
|
|
38
|
+
displayName: string;
|
|
39
|
+
};
|
|
40
|
+
declare const SheetTitle: React.ForwardRefExoticComponent<Omit<SheetPrimitive.DialogTitleProps & React.RefAttributes<HTMLHeadingElement>, "ref"> & React.RefAttributes<HTMLHeadingElement>>;
|
|
41
|
+
declare const SheetDescription: React.ForwardRefExoticComponent<Omit<SheetPrimitive.DialogDescriptionProps & React.RefAttributes<HTMLParagraphElement>, "ref"> & React.RefAttributes<HTMLParagraphElement>>;
|
|
42
|
+
export { Sheet, SheetPortal, SheetOverlay, SheetTrigger, SheetClose, SheetContent, SheetHeader, SheetFooter, SheetTitle, SheetDescription, };
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { VariantProps } from 'class-variance-authority';
|
|
2
|
+
import * as React from "react";
|
|
3
|
+
type SidebarContextValue = {
|
|
4
|
+
state: "expanded" | "collapsed";
|
|
5
|
+
open: boolean;
|
|
6
|
+
setOpen: (open: boolean) => void;
|
|
7
|
+
openMobile: boolean;
|
|
8
|
+
setOpenMobile: (open: boolean) => void;
|
|
9
|
+
isMobile: boolean;
|
|
10
|
+
toggleSidebar: () => void;
|
|
11
|
+
};
|
|
12
|
+
declare function useSidebar(): SidebarContextValue;
|
|
13
|
+
declare const SidebarProvider: React.ForwardRefExoticComponent<Omit<React.ClassAttributes<HTMLDivElement> & React.HTMLAttributes<HTMLDivElement> & {
|
|
14
|
+
defaultOpen?: boolean;
|
|
15
|
+
open?: boolean;
|
|
16
|
+
onOpenChange?: (open: boolean) => void;
|
|
17
|
+
}, "ref"> & React.RefAttributes<HTMLDivElement>>;
|
|
18
|
+
declare const Sidebar: React.ForwardRefExoticComponent<Omit<React.ClassAttributes<HTMLDivElement> & React.HTMLAttributes<HTMLDivElement> & {
|
|
19
|
+
side?: "left" | "right";
|
|
20
|
+
variant?: "sidebar" | "floating" | "inset";
|
|
21
|
+
collapsible?: "offcanvas" | "icon" | "none";
|
|
22
|
+
}, "ref"> & React.RefAttributes<HTMLDivElement>>;
|
|
23
|
+
declare const SidebarTrigger: React.ForwardRefExoticComponent<Omit<import('./button').ButtonProps & React.RefAttributes<HTMLButtonElement>, "ref"> & React.RefAttributes<HTMLButtonElement>>;
|
|
24
|
+
declare const SidebarInset: React.ForwardRefExoticComponent<Omit<React.DetailedHTMLProps<React.HTMLAttributes<HTMLElement>, HTMLElement>, "ref"> & React.RefAttributes<HTMLElement>>;
|
|
25
|
+
declare const SidebarInput: React.ForwardRefExoticComponent<Omit<import('./input').InputProps & React.RefAttributes<HTMLInputElement>, "ref"> & React.RefAttributes<HTMLInputElement>>;
|
|
26
|
+
declare const SidebarHeader: React.ForwardRefExoticComponent<Omit<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
|
|
27
|
+
declare const SidebarFooter: React.ForwardRefExoticComponent<Omit<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
|
|
28
|
+
declare const SidebarSeparator: React.ForwardRefExoticComponent<Omit<Omit<import('@radix-ui/react-separator').SeparatorProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
|
|
29
|
+
declare const SidebarContent: React.ForwardRefExoticComponent<Omit<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
|
|
30
|
+
declare const SidebarGroup: React.ForwardRefExoticComponent<Omit<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
|
|
31
|
+
declare const SidebarGroupLabel: React.ForwardRefExoticComponent<Omit<React.ClassAttributes<HTMLDivElement> & React.HTMLAttributes<HTMLDivElement> & {
|
|
32
|
+
asChild?: boolean;
|
|
33
|
+
}, "ref"> & React.RefAttributes<HTMLDivElement>>;
|
|
34
|
+
declare const SidebarGroupContent: React.ForwardRefExoticComponent<Omit<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
|
|
35
|
+
declare const SidebarMenu: React.ForwardRefExoticComponent<Omit<React.DetailedHTMLProps<React.HTMLAttributes<HTMLUListElement>, HTMLUListElement>, "ref"> & React.RefAttributes<HTMLUListElement>>;
|
|
36
|
+
declare const SidebarMenuItem: React.ForwardRefExoticComponent<Omit<React.DetailedHTMLProps<React.LiHTMLAttributes<HTMLLIElement>, HTMLLIElement>, "ref"> & React.RefAttributes<HTMLLIElement>>;
|
|
37
|
+
declare const SidebarMenuButton: React.ForwardRefExoticComponent<Omit<React.ClassAttributes<HTMLButtonElement> & React.ButtonHTMLAttributes<HTMLButtonElement> & {
|
|
38
|
+
asChild?: boolean;
|
|
39
|
+
isActive?: boolean;
|
|
40
|
+
tooltip?: string;
|
|
41
|
+
} & VariantProps<(props?: ({
|
|
42
|
+
variant?: "default" | "outline" | null | undefined;
|
|
43
|
+
size?: "default" | "sm" | "lg" | null | undefined;
|
|
44
|
+
} & import('class-variance-authority/types').ClassProp) | undefined) => string>, "ref"> & React.RefAttributes<HTMLButtonElement>>;
|
|
45
|
+
declare const SidebarMenuSub: React.ForwardRefExoticComponent<Omit<React.DetailedHTMLProps<React.HTMLAttributes<HTMLUListElement>, HTMLUListElement>, "ref"> & React.RefAttributes<HTMLUListElement>>;
|
|
46
|
+
declare const SidebarMenuSubItem: React.ForwardRefExoticComponent<Omit<React.DetailedHTMLProps<React.LiHTMLAttributes<HTMLLIElement>, HTMLLIElement>, "ref"> & React.RefAttributes<HTMLLIElement>>;
|
|
47
|
+
declare const SidebarMenuSubButton: React.ForwardRefExoticComponent<Omit<React.ClassAttributes<HTMLAnchorElement> & React.AnchorHTMLAttributes<HTMLAnchorElement> & {
|
|
48
|
+
asChild?: boolean;
|
|
49
|
+
size?: "sm" | "md";
|
|
50
|
+
isActive?: boolean;
|
|
51
|
+
}, "ref"> & React.RefAttributes<HTMLAnchorElement>>;
|
|
52
|
+
export { Sidebar, SidebarContent, SidebarFooter, SidebarGroup, SidebarGroupContent, SidebarGroupLabel, SidebarHeader, SidebarInput, SidebarInset, SidebarMenu, SidebarMenuButton, SidebarMenuItem, SidebarMenuSub, SidebarMenuSubButton, SidebarMenuSubItem, SidebarProvider, SidebarSeparator, SidebarTrigger, useSidebar, };
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { Toaster as Sonner } from 'sonner';
|
|
2
|
+
import * as React from "react";
|
|
3
|
+
type ToasterProps = React.ComponentProps<typeof Sonner>;
|
|
4
|
+
/**
|
|
5
|
+
* Toaster (notificações "toast"), baseado no pacote `sonner`.
|
|
6
|
+
* Renderize <Toaster /> uma única vez no shell da aplicação e use a
|
|
7
|
+
* função `toast(...)` (reexportada abaixo) de qualquer lugar.
|
|
8
|
+
*
|
|
9
|
+
* DERIVADO: o Figma não tem componente de toast nem de snackbar — a busca
|
|
10
|
+
* por "toast", "snackbar" e "notifica" no arquivo só retorna ícones. O
|
|
11
|
+
* visual aqui vem do conjunto `Alerts` da página "↳ Feedback", que é o
|
|
12
|
+
* parente mais próximo: um toast é um alerta transitório. Herda o card
|
|
13
|
+
* com borda neutra, o raio de 12px, o padding de 16px e a cor no ícone em
|
|
14
|
+
* vez de no fundo.
|
|
15
|
+
*
|
|
16
|
+
* Substitua pelas medidas reais assim que o design especificar o
|
|
17
|
+
* componente.
|
|
18
|
+
*/
|
|
19
|
+
declare const Toaster: ({ ...props }: ToasterProps) => React.JSX.Element;
|
|
20
|
+
export { Toaster };
|
|
21
|
+
export { toast } from 'sonner';
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { SyncIcon } from '../icons';
|
|
2
|
+
import * as React from "react";
|
|
3
|
+
/**
|
|
4
|
+
* Indicador de carregamento.
|
|
5
|
+
*
|
|
6
|
+
* O Figma não especifica um spinner — a página "↳ Progresso" cobre apenas
|
|
7
|
+
* barras de progresso. Aqui é usado o ícone `sync` do próprio conjunto de
|
|
8
|
+
* ícones do design system, em rotação contínua, em vez de trazer um
|
|
9
|
+
* desenho de fora.
|
|
10
|
+
*
|
|
11
|
+
* A animação respeita `prefers-reduced-motion`: quem pediu menos
|
|
12
|
+
* movimento vê o ícone parado, e o `role="status"` continua anunciando o
|
|
13
|
+
* carregamento.
|
|
14
|
+
*/
|
|
15
|
+
declare function Spinner({ className, ...props }: React.ComponentProps<typeof SyncIcon>): React.JSX.Element;
|
|
16
|
+
export { Spinner };
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
import * as SwitchPrimitives from "@radix-ui/react-switch";
|
|
3
|
+
/**
|
|
4
|
+
* Interruptor, conforme o conjunto `Switch` do Figma "Design System - 2026"
|
|
5
|
+
* (página "↳ Checkbox - Radio - Switch").
|
|
6
|
+
*
|
|
7
|
+
* Ligado usa o azul interativo (`primary`); desligado usa a superfície
|
|
8
|
+
* neutra com borda `gray.light`. O foco troca a borda por `blue.1` em 2px,
|
|
9
|
+
* como no design — não é um anel externo.
|
|
10
|
+
*/
|
|
11
|
+
declare const Switch: React.ForwardRefExoticComponent<Omit<SwitchPrimitives.SwitchProps & React.RefAttributes<HTMLButtonElement>, "ref"> & React.RefAttributes<HTMLButtonElement>>;
|
|
12
|
+
export { Switch };
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
/**
|
|
3
|
+
* Tabela, conforme os frames da página "↳ Listas" do Figma
|
|
4
|
+
* "Design System - 2026".
|
|
5
|
+
*
|
|
6
|
+
* A página não tem componentes, mas a estrutura se repete de forma
|
|
7
|
+
* consistente, e ela é bem diferente da tabela padrão do shadcn: **não há
|
|
8
|
+
* grade**. As linhas são blocos arredondados de 58px separados por 8px de
|
|
9
|
+
* gap, sem bordas divisórias. O cabeçalho é uma faixa `gray.iceMedium`
|
|
10
|
+
* com o mesmo raio.
|
|
11
|
+
*
|
|
12
|
+
* | Elemento | Figma |
|
|
13
|
+
* | ----------------- | --------------------------------------- |
|
|
14
|
+
* | container | fundo do card, raio 12px, padding 12px |
|
|
15
|
+
* | cabeçalho | `gray.iceMedium`, raio 12px, altura 58px |
|
|
16
|
+
* | linha | transparente, raio 12px, altura 58px |
|
|
17
|
+
* | linha selecionada | `blue.1` |
|
|
18
|
+
* | célula | `roboto/regular/body 1`, 24px de gap |
|
|
19
|
+
*
|
|
20
|
+
* DERIVADO: o Figma mostra linhas selecionadas com borda `blue.4` e
|
|
21
|
+
* `blue.3`, mas não rotula qual é hover e qual é foco. Seguindo a
|
|
22
|
+
* gramática dos campos (onde `blue.3` é o foco), `blue.4` virou hover.
|
|
23
|
+
*
|
|
24
|
+
* O gap entre linhas é feito com `border-spacing`, e não com `gap`:
|
|
25
|
+
* elementos de tabela ignoram flex/grid gap.
|
|
26
|
+
*/
|
|
27
|
+
declare const Table: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLTableElement> & React.RefAttributes<HTMLTableElement>>;
|
|
28
|
+
declare const TableHeader: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLTableSectionElement> & React.RefAttributes<HTMLTableSectionElement>>;
|
|
29
|
+
declare const TableBody: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLTableSectionElement> & React.RefAttributes<HTMLTableSectionElement>>;
|
|
30
|
+
declare const TableFooter: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLTableSectionElement> & React.RefAttributes<HTMLTableSectionElement>>;
|
|
31
|
+
declare const TableRow: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLTableRowElement> & React.RefAttributes<HTMLTableRowElement>>;
|
|
32
|
+
declare const TableHead: React.ForwardRefExoticComponent<React.ThHTMLAttributes<HTMLTableCellElement> & React.RefAttributes<HTMLTableCellElement>>;
|
|
33
|
+
declare const TableCell: React.ForwardRefExoticComponent<React.TdHTMLAttributes<HTMLTableCellElement> & React.RefAttributes<HTMLTableCellElement>>;
|
|
34
|
+
declare const TableCaption: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLTableCaptionElement> & React.RefAttributes<HTMLTableCaptionElement>>;
|
|
35
|
+
export { Table, TableHeader, TableBody, TableFooter, TableHead, TableRow, TableCell, TableCaption, };
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
import * as TabsPrimitive from "@radix-ui/react-tabs";
|
|
3
|
+
/**
|
|
4
|
+
* Abas, conforme o conjunto `Tabs` do Figma "Design System - 2026"
|
|
5
|
+
* (página "↳ Tabs").
|
|
6
|
+
*
|
|
7
|
+
* O design usa abas sublinhadas sobre uma régua contínua, e não o formato
|
|
8
|
+
* de pílula sobre superfície que vinha do shadcn. Cada aba tem 48px de
|
|
9
|
+
* altura e muda de peso ao ficar ativa — de `regular` para `medium` —
|
|
10
|
+
* além de mudar de cor:
|
|
11
|
+
*
|
|
12
|
+
* | Estado | Cor |
|
|
13
|
+
* | --------- | ------------- |
|
|
14
|
+
* | default | `gray.medium` |
|
|
15
|
+
* | hover | `blue.medium` |
|
|
16
|
+
* | activated | `blue.light` |
|
|
17
|
+
* | disabled | `gray.lightMedium` |
|
|
18
|
+
*/
|
|
19
|
+
declare const Tabs: React.ForwardRefExoticComponent<TabsPrimitive.TabsProps & React.RefAttributes<HTMLDivElement>>;
|
|
20
|
+
declare const TabsList: React.ForwardRefExoticComponent<Omit<TabsPrimitive.TabsListProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
|
|
21
|
+
declare const TabsTrigger: React.ForwardRefExoticComponent<Omit<TabsPrimitive.TabsTriggerProps & React.RefAttributes<HTMLButtonElement>, "ref"> & React.RefAttributes<HTMLButtonElement>>;
|
|
22
|
+
declare const TabsContent: React.ForwardRefExoticComponent<Omit<TabsPrimitive.TabsContentProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
|
|
23
|
+
export { Tabs, TabsList, TabsTrigger, TabsContent };
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { VariantProps } from 'class-variance-authority';
|
|
2
|
+
import * as React from "react";
|
|
3
|
+
/**
|
|
4
|
+
* Etiqueta, conforme o conjunto `Tags` do Figma "Design System - 2026"
|
|
5
|
+
* (página "↳ Tags"), com suas 44 variantes.
|
|
6
|
+
*
|
|
7
|
+
* Não é um `Badge` com mais cores: o eixo `Category` do design é de
|
|
8
|
+
* domínio, não de estilo. Além de `blue` e `black`, que são genéricas,
|
|
9
|
+
* existem `el-nino` e `la-nina` — os fenômenos climáticos — e essas duas
|
|
10
|
+
* ganham um segundo eixo, `degree`, que gradua a intensidade de fraco a
|
|
11
|
+
* muito forte.
|
|
12
|
+
*
|
|
13
|
+
* A intensidade é comunicada pela cor da borda:
|
|
14
|
+
*
|
|
15
|
+
* | Grau | La Niña | El Niño |
|
|
16
|
+
* | ------------- | --------- | -------- |
|
|
17
|
+
* | `fraco` | `blue.1` | `red.1` |
|
|
18
|
+
* | `moderado` | `blue.2` | `red.2` |
|
|
19
|
+
* | `forte` | `blue.3` | `red.3` |
|
|
20
|
+
* | `muito-forte` | `blue.4` | `red.4` |
|
|
21
|
+
*
|
|
22
|
+
* No hover a cor da intensidade migra da borda para o fundo, o que dá o
|
|
23
|
+
* realce sem mudar o tamanho do elemento.
|
|
24
|
+
*
|
|
25
|
+
* `Badge` continua existindo para etiquetas de estado genéricas; `Tag` é
|
|
26
|
+
* para quando a categoria significa algo no domínio.
|
|
27
|
+
*/
|
|
28
|
+
declare const tagVariants: (props?: ({
|
|
29
|
+
category?: "black" | "blue" | "el-nino" | "la-nina" | null | undefined;
|
|
30
|
+
type?: "outline" | "filled" | null | undefined;
|
|
31
|
+
degree?: "fraco" | "moderado" | "forte" | "muito-forte" | null | undefined;
|
|
32
|
+
selected?: boolean | null | undefined;
|
|
33
|
+
disabled?: boolean | null | undefined;
|
|
34
|
+
} & import('class-variance-authority/types').ClassProp) | undefined) => string;
|
|
35
|
+
export interface TagProps extends Omit<React.HTMLAttributes<HTMLSpanElement>, "children">, VariantProps<typeof tagVariants> {
|
|
36
|
+
children: React.ReactNode;
|
|
37
|
+
/** Ícone à esquerda — o eixo `Avatar` do conjunto. */
|
|
38
|
+
icon?: React.ReactNode;
|
|
39
|
+
/** Quando presente, mostra o botão de remover (eixo `Remove`). */
|
|
40
|
+
onRemove?: () => void;
|
|
41
|
+
/**
|
|
42
|
+
* Rótulo do botão de remover.
|
|
43
|
+
*
|
|
44
|
+
* Sem ele, o rótulo é montado a partir do texto da etiqueta — mas isso
|
|
45
|
+
* só funciona quando `children` é string. Com conteúdo composto, passe
|
|
46
|
+
* `removeLabel`, senão o leitor de tela ouve apenas "Remover".
|
|
47
|
+
*/
|
|
48
|
+
removeLabel?: string;
|
|
49
|
+
}
|
|
50
|
+
declare const Tag: React.ForwardRefExoticComponent<TagProps & React.RefAttributes<HTMLSpanElement>>;
|
|
51
|
+
export { Tag, tagVariants };
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
export type TextareaProps = React.TextareaHTMLAttributes<HTMLTextAreaElement>;
|
|
3
|
+
/**
|
|
4
|
+
* Campo de texto multilinha.
|
|
5
|
+
*
|
|
6
|
+
* Compartilha o visual e os estados do `Input` — no Figma os dois saem do
|
|
7
|
+
* mesmo conjunto `Form text`, mudando só a altura. Ver `fieldClassName`
|
|
8
|
+
* em `input.tsx` para o mapa de estados.
|
|
9
|
+
*/
|
|
10
|
+
declare const Textarea: React.ForwardRefExoticComponent<TextareaProps & React.RefAttributes<HTMLTextAreaElement>>;
|
|
11
|
+
export { Textarea };
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
import * as TooltipPrimitive from "@radix-ui/react-tooltip";
|
|
3
|
+
/**
|
|
4
|
+
* Dica, conforme o conjunto `Tooltip` do Figma "Design System - 2026"
|
|
5
|
+
* (página "↳ Tooltips").
|
|
6
|
+
*
|
|
7
|
+
* Fundo `blue.dark` com texto branco em `roboto/medium/caption`, raio de
|
|
8
|
+
* 8px e 12px de padding. As 8 variantes do Figma são posições — o Radix
|
|
9
|
+
* já resolve posicionamento via `side`/`align`, então não viraram
|
|
10
|
+
* variantes aqui.
|
|
11
|
+
*/
|
|
12
|
+
declare const TooltipProvider: React.FC<TooltipPrimitive.TooltipProviderProps>;
|
|
13
|
+
declare const Tooltip: React.FC<TooltipPrimitive.TooltipProps>;
|
|
14
|
+
declare const TooltipTrigger: React.ForwardRefExoticComponent<TooltipPrimitive.TooltipTriggerProps & React.RefAttributes<HTMLButtonElement>>;
|
|
15
|
+
declare const TooltipContent: React.ForwardRefExoticComponent<Omit<TooltipPrimitive.TooltipContentProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
|
|
16
|
+
export { Tooltip, TooltipTrigger, TooltipContent, TooltipProvider };
|
package/dist/fonts.css
ADDED
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Fontes da FracUI, auto-hospedadas.
|
|
3
|
+
*
|
|
4
|
+
* Import opcional e separado de `styles.css`: nem todo app consumidor quer
|
|
5
|
+
* que a biblioteca carregue fontes (alguns já servem Roboto pelo próprio
|
|
6
|
+
* shell do single-spa). Quem quiser as fontes junto importa uma vez na raiz:
|
|
7
|
+
*
|
|
8
|
+
* ```ts
|
|
9
|
+
* import "@fracui/styleguide/fonts.css";
|
|
10
|
+
* import "@fracui/styleguide/styles.css";
|
|
11
|
+
* ```
|
|
12
|
+
*
|
|
13
|
+
* Auto-hospedado em vez de CDN do Google porque o SIGA roda em redes
|
|
14
|
+
* restritas e a biblioteca não pode depender de acesso externo em runtime.
|
|
15
|
+
*
|
|
16
|
+
* Subset `latin` apenas — cobre português e é o que o design usa. Se algum
|
|
17
|
+
* produto precisar de cirílico ou grego, troque para os arquivos sem
|
|
18
|
+
* prefixo (`@fontsource/roboto/400.css`), que trazem todos os subsets.
|
|
19
|
+
*/
|
|
20
|
+
|
|
21
|
+
/* Roboto — família padrão de todo o design system. */
|
|
22
|
+
@import "@fontsource/roboto/latin-400.css";
|
|
23
|
+
@import "@fontsource/roboto/latin-500.css";
|
|
24
|
+
|
|
25
|
+
/*
|
|
26
|
+
* Rubik — usado apenas em h1 e h2 no peso medium.
|
|
27
|
+
*
|
|
28
|
+
* ATENÇÃO: no Figma esses dois estilos se chamam `roboto/medium/h1` e
|
|
29
|
+
* `roboto/medium/h2` mas estão em Rubik. Enquanto o time de design não
|
|
30
|
+
* confirmar se é intencional, a família fica disponível como
|
|
31
|
+
* `font-display` no preset, e o custo é de um peso só.
|
|
32
|
+
*/
|
|
33
|
+
@import "@fontsource/rubik/latin-500.css";
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
export interface IconProps extends Omit<React.SVGProps<SVGSVGElement>, "ref"> {
|
|
3
|
+
/**
|
|
4
|
+
* Largura e altura em pixels. Os ícones são desenhados em uma grade de
|
|
5
|
+
* 24px no Figma; múltiplos de 4 mantêm os traços alinhados ao pixel.
|
|
6
|
+
*/
|
|
7
|
+
size?: number | string;
|
|
8
|
+
/**
|
|
9
|
+
* Rótulo para leitores de tela. Sem ele o ícone é tratado como
|
|
10
|
+
* decorativo (`aria-hidden`), que é o correto quando há texto ao lado.
|
|
11
|
+
*/
|
|
12
|
+
title?: string;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Fábrica dos componentes de ícone gerados em `icons.tsx`.
|
|
16
|
+
*
|
|
17
|
+
* Os SVGs saem do Figma com as cores chapadas; o gerador troca por
|
|
18
|
+
* `currentColor`, então o ícone herda a cor do texto e responde a
|
|
19
|
+
* `text-error-icon`, `text-brand`, etc.
|
|
20
|
+
*/
|
|
21
|
+
export declare function createIcon(displayName: string, viewBox: string, paths: React.ReactNode): React.ForwardRefExoticComponent<IconProps & React.RefAttributes<SVGSVGElement>>;
|