@vincisys/eyeson 0.1.4 → 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/Button/Button.d.ts +33 -1
- package/dist/components/Button/Button.d.ts.map +1 -1
- package/dist/components/Calendar/Calendar.d.ts +42 -0
- package/dist/components/Calendar/Calendar.d.ts.map +1 -0
- package/dist/components/Card/Card.d.ts +67 -0
- package/dist/components/Card/Card.d.ts.map +1 -0
- package/dist/components/Checkbox/Checkbox.d.ts +9 -0
- package/dist/components/Checkbox/Checkbox.d.ts.map +1 -0
- package/dist/components/ComboBox/Combobox.d.ts +1 -1
- package/dist/components/ComboBox/Combobox.d.ts.map +1 -1
- package/dist/components/DatePicker/DatePicker.d.ts +94 -0
- package/dist/components/DatePicker/DatePicker.d.ts.map +1 -0
- package/dist/components/Dialog/Dialog.d.ts +146 -0
- package/dist/components/Dialog/Dialog.d.ts.map +1 -0
- package/dist/components/Empty/Empty.d.ts +75 -0
- package/dist/components/Empty/Empty.d.ts.map +1 -0
- package/dist/components/IconButton/IconButton.d.ts +19 -0
- package/dist/components/IconButton/IconButton.d.ts.map +1 -0
- package/dist/components/Input/Input.d.ts +1 -2
- package/dist/components/Input/Input.d.ts.map +1 -1
- package/dist/components/Select/Select.d.ts +48 -0
- package/dist/components/Select/Select.d.ts.map +1 -0
- package/dist/components/Table/Table.d.ts +144 -0
- package/dist/components/Table/Table.d.ts.map +1 -0
- package/dist/components/Tabs/Tabs.d.ts +95 -0
- package/dist/components/Tabs/Tabs.d.ts.map +1 -0
- package/dist/components/Text/Text.d.ts +119 -0
- package/dist/components/Text/Text.d.ts.map +1 -0
- package/dist/index.d.ts +31 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +3089 -0
- package/dist/lib/field-styles.d.ts +19 -0
- package/dist/lib/field-styles.d.ts.map +1 -0
- package/dist/lib/utils.d.ts +3 -0
- package/dist/lib/utils.d.ts.map +1 -0
- package/dist/styles/eyes-binding.css +71 -0
- package/dist/styles/eyes-standalone.css +2 -0
- package/dist/styles/eyes.css +1 -0
- package/dist/styles/theme-eyes.css +48 -0
- package/dist/utils/resolve-variant.d.ts +2 -0
- package/dist/utils/resolve-variant.d.ts.map +1 -0
- package/package.json +72 -87
- package/styles.css +1 -1
- package/README.md +0 -27
- package/dist/Button.d.ts +0 -5
- package/dist/Button.d.ts.map +0 -1
- package/dist/Button.js +0 -120
- package/dist/Combobox.d.ts +0 -3
- package/dist/Combobox.d.ts.map +0 -1
- package/dist/Combobox.js +0 -142
- package/dist/Input.d.ts +0 -3
- package/dist/Input.d.ts.map +0 -1
- package/dist/Input.js +0 -159
- package/dist/styles.css +0 -90
|
@@ -6,6 +6,38 @@ export type ButtonVariant = 'solid' | 'outline' | 'ghost' | 'link';
|
|
|
6
6
|
export type ButtonSize = 'sm' | 'md' | 'lg';
|
|
7
7
|
export type ButtonIconPosition = 'start' | 'end';
|
|
8
8
|
export type ButtonColor = EdsSemanticColor;
|
|
9
|
+
export declare const SOLID_WHITE_TEXT_COLORS: Set<"blue-background" | "blue-dark" | "blue-main" | "blue-middle" | "green-background" | "green-dark" | "green-main" | "green-middle" | "neutral-background" | "neutral-disabled" | "neutral-elements" | "neutral-main" | "orange-background" | "orange-dark" | "orange-main" | "orange-middle" | "red-background" | "red-dark" | "red-main" | "red-middle">;
|
|
10
|
+
export declare const EDS_BUTTON_VARIANTS: {
|
|
11
|
+
readonly size: {
|
|
12
|
+
readonly sm: {
|
|
13
|
+
readonly classes: "gap-1.5 min-h-8 px-4 rounded-eds-lil text-sm leading-5 [&_.eds-btn-icon-wrap]:size-[1.125rem]";
|
|
14
|
+
};
|
|
15
|
+
readonly md: {
|
|
16
|
+
readonly classes: "gap-2 min-h-10 px-6 rounded-eds-xs text-base leading-6 [&_.eds-btn-icon-wrap]:size-[1.375rem]";
|
|
17
|
+
};
|
|
18
|
+
readonly lg: {
|
|
19
|
+
readonly classes: "gap-3.5 min-h-12 px-8 rounded-eds-xs text-xl leading-7 [&_.eds-btn-icon-wrap]:size-7";
|
|
20
|
+
};
|
|
21
|
+
};
|
|
22
|
+
readonly variant: {
|
|
23
|
+
readonly solid: {
|
|
24
|
+
readonly classes: "border-0 bg-[var(--eds-btn-accent)] text-[var(--eds-btn-solid-fg,#fff)] hover:bg-[color-mix(in_srgb,var(--eds-btn-accent)_78%,black)] active:brightness-[0.92] focus-visible:outline focus-visible:outline-2 focus-visible:outline-[var(--eds-btn-accent)] focus-visible:outline-offset-2 data-disabled:not-data-loading:bg-eds-neutral-disabled data-disabled:not-data-loading:text-white data-disabled:not-data-loading:cursor-not-allowed data-loading:data-disabled:bg-[var(--eds-btn-accent)] data-loading:data-disabled:text-[var(--eds-btn-solid-fg,#fff)] data-loading:data-disabled:cursor-wait";
|
|
25
|
+
};
|
|
26
|
+
readonly outline: {
|
|
27
|
+
readonly classes: "border border-[color-mix(in_srgb,var(--eds-btn-accent)_42%,var(--color-eds-outline-border))] bg-transparent text-[var(--eds-btn-accent)] hover:border-[color-mix(in_srgb,var(--eds-btn-accent)_58%,var(--color-eds-outline-border))] hover:bg-[color-mix(in_srgb,var(--eds-btn-accent)_10%,transparent)] hover:text-[color-mix(in_srgb,var(--eds-btn-accent)_88%,black)] active:brightness-[0.98] focus-visible:outline-none focus-visible:shadow-[0_0_0_3px_color-mix(in_srgb,var(--eds-btn-accent)_38%,transparent)] data-disabled:not-data-loading:border-eds-outline-border data-disabled:not-data-loading:bg-transparent data-disabled:not-data-loading:text-eds-neutral-disabled data-disabled:not-data-loading:cursor-not-allowed data-disabled:not-data-loading:opacity-50 data-loading:data-disabled:border-[color-mix(in_srgb,var(--eds-btn-accent)_42%,var(--color-eds-outline-border))] data-loading:data-disabled:bg-transparent data-loading:data-disabled:text-[var(--eds-btn-accent)] data-loading:data-disabled:cursor-wait data-loading:data-disabled:opacity-100";
|
|
28
|
+
};
|
|
29
|
+
readonly ghost: {
|
|
30
|
+
readonly classes: "border-0 bg-transparent text-[var(--eds-btn-accent)] hover:text-[color-mix(in_srgb,var(--eds-btn-accent)_78%,black)] active:brightness-95 focus-visible:outline focus-visible:outline-2 focus-visible:outline-[var(--eds-btn-accent)] focus-visible:outline-offset-2 data-disabled:not-data-loading:text-eds-neutral-disabled data-disabled:not-data-loading:cursor-not-allowed data-loading:data-disabled:text-[var(--eds-btn-accent)] data-loading:data-disabled:cursor-wait";
|
|
31
|
+
};
|
|
32
|
+
readonly link: {
|
|
33
|
+
readonly classes: "min-h-0 border-0 bg-transparent px-0 py-0.5 text-[var(--eds-btn-accent)] underline decoration-[var(--eds-btn-accent)] underline-offset-[0.15em] hover:text-[color-mix(in_srgb,var(--eds-btn-accent)_78%,black)] hover:decoration-[color-mix(in_srgb,var(--eds-btn-accent)_78%,black)] focus-visible:outline focus-visible:outline-2 focus-visible:outline-[var(--eds-btn-accent)] focus-visible:outline-offset-2 data-disabled:not-data-loading:text-eds-neutral-disabled data-disabled:not-data-loading:decoration-eds-neutral-disabled data-disabled:not-data-loading:cursor-not-allowed data-loading:data-disabled:text-[var(--eds-btn-accent)] data-loading:data-disabled:decoration-[var(--eds-btn-accent)] data-loading:data-disabled:cursor-wait";
|
|
34
|
+
};
|
|
35
|
+
};
|
|
36
|
+
};
|
|
37
|
+
export declare const EDS_BUTTON_DEFAULT_VARIANTS: {
|
|
38
|
+
readonly size: "md";
|
|
39
|
+
readonly variant: "solid";
|
|
40
|
+
};
|
|
9
41
|
export type ButtonProps = Omit<ComponentProps<typeof BaseUiButton>, 'className' | 'children'> & {
|
|
10
42
|
className?: string;
|
|
11
43
|
text?: string;
|
|
@@ -17,5 +49,5 @@ export type ButtonProps = Omit<ComponentProps<typeof BaseUiButton>, 'className'
|
|
|
17
49
|
iconPosition?: ButtonIconPosition;
|
|
18
50
|
isLoading?: boolean;
|
|
19
51
|
};
|
|
20
|
-
export default function Button({ text, className, icon: IconComponent, iconPosition, variant, color, size, fluid, isLoading, disabled, ...props }: ButtonProps): import("react
|
|
52
|
+
export default function Button({ text, className, icon: IconComponent, iconPosition, variant, color, size, fluid, isLoading, disabled, style, ...props }: ButtonProps): import("react").JSX.Element;
|
|
21
53
|
//# sourceMappingURL=Button.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Button.d.ts","sourceRoot":"","sources":["../../../src/components/Button/Button.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,YAAY,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"Button.d.ts","sourceRoot":"","sources":["../../../src/components/Button/Button.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAC/D,OAAO,EAAW,KAAK,UAAU,EAAE,MAAM,cAAc,CAAC;AACxD,OAAO,KAAK,EAAE,cAAc,EAAiB,MAAM,OAAO,CAAC;AAC3D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAI/D,MAAM,MAAM,aAAa,GAAG,OAAO,GAAG,SAAS,GAAG,OAAO,GAAG,MAAM,CAAC;AACnE,MAAM,MAAM,UAAU,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;AAC5C,MAAM,MAAM,kBAAkB,GAAG,OAAO,GAAG,KAAK,CAAC;AACjD,MAAM,MAAM,WAAW,GAAG,gBAAgB,CAAC;AAE3C,eAAO,MAAM,uBAAuB,8VAYlC,CAAC;AAEH,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;CAiCtB,CAAC;AAEX,eAAO,MAAM,2BAA2B;;;CAG9B,CAAC;AAQX,MAAM,MAAM,WAAW,GAAG,IAAI,CAC7B,cAAc,CAAC,OAAO,YAAY,CAAC,EACnC,WAAW,GAAG,UAAU,CACxB,GAAG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,aAAa,CAAC;IACxB,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB,YAAY,CAAC,EAAE,kBAAkB,CAAC;IAClC,SAAS,CAAC,EAAE,OAAO,CAAC;CACpB,CAAC;AA8BF,MAAM,CAAC,OAAO,UAAU,MAAM,CAAC,EAC9B,IAAe,EACf,SAAS,EACT,IAAI,EAAE,aAAa,EACnB,YAAsB,EACtB,OAAiB,EACjB,KAAmB,EACnB,IAAW,EACX,KAAa,EACb,SAAiB,EACjB,QAAQ,EACR,KAAK,EACL,GAAG,KAAK,EACR,EAAE,WAAW,+BA4Db"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { type ReactNode } from 'react';
|
|
2
|
+
import type { EdsSemanticColor } from '../../constants/colors';
|
|
3
|
+
export type CalendarEvent = {
|
|
4
|
+
/** Identificador único do evento (usado como React key e para overflow). */
|
|
5
|
+
id: string;
|
|
6
|
+
/** Data em que o evento ocorre (apenas o dia é considerado). */
|
|
7
|
+
date: Date;
|
|
8
|
+
/** Texto exibido na pill, ex: "SDU → GRU | 6:30". */
|
|
9
|
+
label: string;
|
|
10
|
+
/** Cor semântica do indicador (bolinha) do evento. */
|
|
11
|
+
color: EdsSemanticColor;
|
|
12
|
+
};
|
|
13
|
+
export type CalendarProps = {
|
|
14
|
+
/** Mês exibido (modo controlado). Qualquer `Date` dentro do mês. */
|
|
15
|
+
month?: Date;
|
|
16
|
+
/** Mês inicial quando não controlado. Padrão: mês atual. */
|
|
17
|
+
defaultMonth?: Date;
|
|
18
|
+
/** Chamado quando o usuário navega de mês. */
|
|
19
|
+
onMonthChange?: (month: Date) => void;
|
|
20
|
+
/** Eventos a serem exibidos nos dias correspondentes. */
|
|
21
|
+
events?: CalendarEvent[];
|
|
22
|
+
/** Número máximo de eventos visíveis por dia antes do indicador "+N mais". */
|
|
23
|
+
maxVisibleEvents?: number;
|
|
24
|
+
/** Primeiro dia da semana (0 = domingo ... 6 = sábado). */
|
|
25
|
+
weekStartsOn?: 0 | 1 | 2 | 3 | 4 | 5 | 6;
|
|
26
|
+
/** Chamado ao clicar em um dia. */
|
|
27
|
+
onDayClick?: (day: Date) => void;
|
|
28
|
+
/** Chamado ao clicar em um evento. */
|
|
29
|
+
onEventClick?: (event: CalendarEvent) => void;
|
|
30
|
+
/**
|
|
31
|
+
* Customiza o conteúdo renderizado para cada evento (o que fica dentro do
|
|
32
|
+
* botão da pill, inclusive o clique). Quando omitido, usa a pill padrão
|
|
33
|
+
* (bolinha colorida + texto truncado) chamando `onEventClick`.
|
|
34
|
+
*/
|
|
35
|
+
renderEvent?: (event: CalendarEvent) => ReactNode;
|
|
36
|
+
/** Exibe os controles de navegação de mês. */
|
|
37
|
+
showNavigation?: boolean;
|
|
38
|
+
/** Classe CSS extra aplicada ao elemento raiz. */
|
|
39
|
+
className?: string;
|
|
40
|
+
};
|
|
41
|
+
export default function Calendar({ month, defaultMonth, onMonthChange, events, maxVisibleEvents, weekStartsOn, onDayClick, onEventClick, renderEvent, showNavigation, className, }: CalendarProps): import("react").JSX.Element;
|
|
42
|
+
//# sourceMappingURL=Calendar.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Calendar.d.ts","sourceRoot":"","sources":["../../../src/components/Calendar/Calendar.tsx"],"names":[],"mappings":"AAcA,OAAO,EAAyC,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAC9E,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAI/D,MAAM,MAAM,aAAa,GAAG;IAC3B,4EAA4E;IAC5E,EAAE,EAAE,MAAM,CAAC;IACX,gEAAgE;IAChE,IAAI,EAAE,IAAI,CAAC;IACX,qDAAqD;IACrD,KAAK,EAAE,MAAM,CAAC;IACd,sDAAsD;IACtD,KAAK,EAAE,gBAAgB,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG;IAC3B,oEAAoE;IACpE,KAAK,CAAC,EAAE,IAAI,CAAC;IACb,4DAA4D;IAC5D,YAAY,CAAC,EAAE,IAAI,CAAC;IACpB,8CAA8C;IAC9C,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,IAAI,KAAK,IAAI,CAAC;IACtC,yDAAyD;IACzD,MAAM,CAAC,EAAE,aAAa,EAAE,CAAC;IACzB,8EAA8E;IAC9E,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,2DAA2D;IAC3D,YAAY,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACzC,mCAAmC;IACnC,UAAU,CAAC,EAAE,CAAC,GAAG,EAAE,IAAI,KAAK,IAAI,CAAC;IACjC,sCAAsC;IACtC,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,IAAI,CAAC;IAC9C;;;;OAIG;IACH,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,SAAS,CAAC;IAClD,8CAA8C;IAC9C,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,kDAAkD;IAClD,SAAS,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC;AAsBF,MAAM,CAAC,OAAO,UAAU,QAAQ,CAAC,EAChC,KAAK,EACL,YAAY,EACZ,aAAa,EACb,MAAW,EACX,gBAAoB,EACpB,YAAgB,EAChB,UAAU,EACV,YAAY,EACZ,WAAW,EACX,cAAqB,EACrB,SAAS,GACT,EAAE,aAAa,+BA4Lf"}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import type { ComponentProps } from 'react';
|
|
2
|
+
/**
|
|
3
|
+
* Container de agrupamento com cabeçalho, conteúdo e rodapé opcionais.
|
|
4
|
+
* Compound component com `Card.Header`, `Card.Title`, `Card.Description`,
|
|
5
|
+
* `Card.Action`, `Card.Content` e `Card.Footer`.
|
|
6
|
+
*
|
|
7
|
+
* @example
|
|
8
|
+
* ```tsx
|
|
9
|
+
* <Card>
|
|
10
|
+
* <Card.Header>
|
|
11
|
+
* <Card.Title>Voos do dia</Card.Title>
|
|
12
|
+
* <Card.Description>Atualizado há 2 minutos</Card.Description>
|
|
13
|
+
* <Card.Action>
|
|
14
|
+
* <IconButton icon={RefreshCw} label="Atualizar" />
|
|
15
|
+
* </Card.Action>
|
|
16
|
+
* </Card.Header>
|
|
17
|
+
* <Card.Content>
|
|
18
|
+
* <p>12 voos programados</p>
|
|
19
|
+
* </Card.Content>
|
|
20
|
+
* <Card.Footer>
|
|
21
|
+
* <Button text="Ver todos" variant="outline" />
|
|
22
|
+
* </Card.Footer>
|
|
23
|
+
* </Card>
|
|
24
|
+
* ```
|
|
25
|
+
*/
|
|
26
|
+
export type CardProps = ComponentProps<'div'>;
|
|
27
|
+
declare function CardRoot({ className, ...props }: CardProps): import("react").JSX.Element;
|
|
28
|
+
export type CardHeaderProps = ComponentProps<'div'>;
|
|
29
|
+
declare function CardHeader({ className, ...props }: CardHeaderProps): import("react").JSX.Element;
|
|
30
|
+
declare namespace CardHeader {
|
|
31
|
+
var displayName: string;
|
|
32
|
+
}
|
|
33
|
+
export type CardTitleProps = ComponentProps<'h3'>;
|
|
34
|
+
declare function CardTitle({ className, ...props }: CardTitleProps): import("react").JSX.Element;
|
|
35
|
+
declare namespace CardTitle {
|
|
36
|
+
var displayName: string;
|
|
37
|
+
}
|
|
38
|
+
export type CardDescriptionProps = ComponentProps<'p'>;
|
|
39
|
+
declare function CardDescription({ className, ...props }: CardDescriptionProps): import("react").JSX.Element;
|
|
40
|
+
declare namespace CardDescription {
|
|
41
|
+
var displayName: string;
|
|
42
|
+
}
|
|
43
|
+
export type CardActionProps = ComponentProps<'div'>;
|
|
44
|
+
declare function CardAction({ className, ...props }: CardActionProps): import("react").JSX.Element;
|
|
45
|
+
declare namespace CardAction {
|
|
46
|
+
var displayName: string;
|
|
47
|
+
}
|
|
48
|
+
export type CardContentProps = ComponentProps<'div'>;
|
|
49
|
+
declare function CardContent({ className, ...props }: CardContentProps): import("react").JSX.Element;
|
|
50
|
+
declare namespace CardContent {
|
|
51
|
+
var displayName: string;
|
|
52
|
+
}
|
|
53
|
+
export type CardFooterProps = ComponentProps<'div'>;
|
|
54
|
+
declare function CardFooter({ className, ...props }: CardFooterProps): import("react").JSX.Element;
|
|
55
|
+
declare namespace CardFooter {
|
|
56
|
+
var displayName: string;
|
|
57
|
+
}
|
|
58
|
+
export declare const Card: typeof CardRoot & {
|
|
59
|
+
Header: typeof CardHeader;
|
|
60
|
+
Title: typeof CardTitle;
|
|
61
|
+
Description: typeof CardDescription;
|
|
62
|
+
Action: typeof CardAction;
|
|
63
|
+
Content: typeof CardContent;
|
|
64
|
+
Footer: typeof CardFooter;
|
|
65
|
+
};
|
|
66
|
+
export {};
|
|
67
|
+
//# sourceMappingURL=Card.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Card.d.ts","sourceRoot":"","sources":["../../../src/components/Card/Card.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AAG5C;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,MAAM,MAAM,SAAS,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC;AAE9C,iBAAS,QAAQ,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,SAAS,+BAWnD;AAED,MAAM,MAAM,eAAe,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC;AAEpD,iBAAS,UAAU,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,eAAe,+BAW3D;kBAXQ,UAAU;;;AAanB,MAAM,MAAM,cAAc,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC;AAElD,iBAAS,SAAS,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,cAAc,+BAWzD;kBAXQ,SAAS;;;AAalB,MAAM,MAAM,oBAAoB,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC;AAEvD,iBAAS,eAAe,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,oBAAoB,+BAQrE;kBARQ,eAAe;;;AAUxB,MAAM,MAAM,eAAe,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC;AAEpD,iBAAS,UAAU,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,eAAe,+BAW3D;kBAXQ,UAAU;;;AAanB,MAAM,MAAM,gBAAgB,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC;AAErD,iBAAS,WAAW,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,gBAAgB,+BAQ7D;kBARQ,WAAW;;;AAUpB,MAAM,MAAM,eAAe,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC;AAEpD,iBAAS,UAAU,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,eAAe,+BAQ3D;kBARQ,UAAU;;;AAiBnB,eAAO,MAAM,IAAI;;;;;;;CAOf,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { Checkbox as BaseCheckbox } from '@base-ui/react/checkbox';
|
|
2
|
+
import type { ComponentProps, ReactNode } from 'react';
|
|
3
|
+
export type CheckboxProps = Omit<ComponentProps<typeof BaseCheckbox.Root>, 'className' | 'children'> & {
|
|
4
|
+
/** Applies to the checkbox square when there's no `label`, or to the wrapping `<Field.Root>` when there is. */
|
|
5
|
+
className?: string;
|
|
6
|
+
label?: ReactNode;
|
|
7
|
+
};
|
|
8
|
+
export default function Checkbox({ className, label, disabled, ...props }: CheckboxProps): import("react").JSX.Element;
|
|
9
|
+
//# sourceMappingURL=Checkbox.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Checkbox.d.ts","sourceRoot":"","sources":["../../../src/components/Checkbox/Checkbox.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,IAAI,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAGnE,OAAO,KAAK,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAGvD,MAAM,MAAM,aAAa,GAAG,IAAI,CAC/B,cAAc,CAAC,OAAO,YAAY,CAAC,IAAI,CAAC,EACxC,WAAW,GAAG,UAAU,CACxB,GAAG;IACH,+GAA+G;IAC/G,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,SAAS,CAAC;CAClB,CAAC;AAqCF,MAAM,CAAC,OAAO,UAAU,QAAQ,CAAC,EAChC,SAAS,EACT,KAAK,EACL,QAAQ,EACR,GAAG,KAAK,EACR,EAAE,aAAa,+BAwBf"}
|
|
@@ -53,5 +53,5 @@ export type ComboboxProps<T = ComboboxOption> = {
|
|
|
53
53
|
/** Props extras repassadas ao `<input>` nativo. */
|
|
54
54
|
inputProps?: Omit<ComponentProps<'input'>, 'className' | 'disabled' | 'id' | 'name' | 'placeholder' | 'readOnly' | 'required'>;
|
|
55
55
|
};
|
|
56
|
-
export default function Combobox<T = ComboboxOption>({ label, floatingLabel, items, placeholder, disabled, required, fluid, state, size, supportingText, errorMessage, emptyMessage, readOnly, id, name, value, defaultValue, onValueChange, getItemLabel, getItemValue, renderItem, className, inputProps, }: ComboboxProps<T>): import("react
|
|
56
|
+
export default function Combobox<T = ComboboxOption>({ label, floatingLabel, items, placeholder, disabled, required, fluid, state, size, supportingText, errorMessage, emptyMessage, readOnly, id, name, value, defaultValue, onValueChange, getItemLabel, getItemValue, renderItem, className, inputProps, }: ComboboxProps<T>): import("react").JSX.Element;
|
|
57
57
|
//# sourceMappingURL=Combobox.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Combobox.d.ts","sourceRoot":"","sources":["../../../src/components/ComboBox/Combobox.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Combobox.d.ts","sourceRoot":"","sources":["../../../src/components/ComboBox/Combobox.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAS,KAAK,cAAc,EAAE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAgBnE,MAAM,MAAM,aAAa,GAAG,SAAS,GAAG,OAAO,GAAG,SAAS,CAAC;AAC5D,MAAM,MAAM,YAAY,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;AAiC9C,MAAM,MAAM,cAAc,GAAG;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,MAAM,MAAM,aAAa,CAAC,CAAC,GAAG,cAAc,IAAI;IAC/C,qCAAqC;IACrC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,4DAA4D;IAC5D,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,+CAA+C;IAC/C,KAAK,EAAE,SAAS,CAAC,EAAE,CAAC;IACpB,yDAAyD;IACzD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,6CAA6C;IAC7C,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,4DAA4D;IAC5D,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,uDAAuD;IACvD,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,8BAA8B;IAC9B,KAAK,CAAC,EAAE,aAAa,CAAC;IACtB,uDAAuD;IACvD,IAAI,CAAC,EAAE,YAAY,CAAC;IACpB,+DAA+D;IAC/D,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,2DAA2D;IAC3D,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,+DAA+D;IAC/D,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,gFAAgF;IAChF,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,+DAA+D;IAC/D,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,kEAAkE;IAClE,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,qDAAqD;IACrD,KAAK,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC;IACjB,0DAA0D;IAC1D,YAAY,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC;IACxB,uDAAuD;IACvD,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,GAAG,IAAI,KAAK,IAAI,CAAC;IAC1C,0DAA0D;IAC1D,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,MAAM,CAAC;IACnC,oDAAoD;IACpD,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,MAAM,CAAC;IACnC,sDAAsD;IACtD,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,SAAS,CAAC;IACpC,kDAAkD;IAClD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,mDAAmD;IACnD,UAAU,CAAC,EAAE,IAAI,CAChB,cAAc,CAAC,OAAO,CAAC,EACrB,WAAW,GACX,UAAU,GACV,IAAI,GACJ,MAAM,GACN,aAAa,GACb,UAAU,GACV,UAAU,CACZ,CAAC;CACF,CAAC;AAMF,MAAM,CAAC,OAAO,UAAU,QAAQ,CAAC,CAAC,GAAG,cAAc,EAAE,EACpD,KAAe,EACf,aAAoB,EACpB,KAAK,EACL,WAAmC,EACnC,QAAgB,EAChB,QAAgB,EAChB,KAAa,EACb,KAAiB,EACjB,IAAW,EACX,cAAmB,EACnB,YAA2C,EAC3C,YAAkC,EAClC,QAAgB,EAChB,EAAE,EACF,IAAI,EACJ,KAAK,EACL,YAAY,EACZ,aAAa,EACb,YAAY,EACZ,YAAY,EACZ,UAAU,EACV,SAAS,EACT,UAAU,GACV,EAAE,aAAa,CAAC,CAAC,CAAC,+BA0LlB"}
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
export type DatePickerState = 'default' | 'valid' | 'invalid';
|
|
2
|
+
export type DatePickerSize = 'sm' | 'md' | 'lg';
|
|
3
|
+
export type DatePickerMode = 'single' | 'range';
|
|
4
|
+
/** Intervalo de datas selecionado no modo `range`. `to` fica indefinido até o segundo clique. */
|
|
5
|
+
export type DateRange = {
|
|
6
|
+
from: Date;
|
|
7
|
+
to?: Date;
|
|
8
|
+
};
|
|
9
|
+
type WeekStartsOn = 0 | 1 | 2 | 3 | 4 | 5 | 6;
|
|
10
|
+
type DatePickerSharedProps = {
|
|
11
|
+
/** Texto do label acima do campo. */
|
|
12
|
+
label?: string;
|
|
13
|
+
/** Mostra o label no "traço" do campo (estilo floating). */
|
|
14
|
+
floatingLabel?: boolean;
|
|
15
|
+
/** Texto exibido quando nenhuma data está selecionada. */
|
|
16
|
+
placeholder?: string;
|
|
17
|
+
/** Desativa o campo, impedindo interação. */
|
|
18
|
+
disabled?: boolean;
|
|
19
|
+
/** Indica que o campo é obrigatório, exibindo asterisco. */
|
|
20
|
+
required?: boolean;
|
|
21
|
+
/** Faz o campo ocupar 100% da largura do container. */
|
|
22
|
+
fluid?: boolean;
|
|
23
|
+
/** Estado visual do campo. */
|
|
24
|
+
state?: DatePickerState;
|
|
25
|
+
/** Tamanho do campo (altura, padding e tipografia). */
|
|
26
|
+
size?: DatePickerSize;
|
|
27
|
+
/** Texto auxiliar exibido abaixo do campo no estado padrão. */
|
|
28
|
+
supportingText?: string;
|
|
29
|
+
/** Mensagem exibida abaixo do campo no estado inválido. */
|
|
30
|
+
errorMessage?: string;
|
|
31
|
+
/** `id` nativo do gatilho. Gerado automaticamente se omitido. */
|
|
32
|
+
id?: string;
|
|
33
|
+
/** Primeiro dia da semana (0 = domingo ... 6 = sábado). */
|
|
34
|
+
weekStartsOn?: WeekStartsOn;
|
|
35
|
+
/** Mês exibido ao abrir o popover quando não há data selecionada. @default new Date() */
|
|
36
|
+
defaultMonth?: Date;
|
|
37
|
+
/** Formato de exibição da data selecionada (padrão `date-fns`). */
|
|
38
|
+
dateFormat?: string;
|
|
39
|
+
/** Classe CSS extra aplicada ao elemento raiz. */
|
|
40
|
+
className?: string;
|
|
41
|
+
};
|
|
42
|
+
export type DatePickerSingleProps = DatePickerSharedProps & {
|
|
43
|
+
/** Seleciona uma única data. @default 'single' */
|
|
44
|
+
mode?: 'single';
|
|
45
|
+
/** Data atualmente selecionada (modo controlado). */
|
|
46
|
+
value?: Date | null;
|
|
47
|
+
/** Data selecionada na montagem (modo não-controlado). */
|
|
48
|
+
defaultValue?: Date | null;
|
|
49
|
+
/** Callback chamado quando a data selecionada muda. */
|
|
50
|
+
onValueChange?: (value: Date) => void;
|
|
51
|
+
};
|
|
52
|
+
/** Atalho de intervalo pré-definido (ex.: "Últimos 7 dias") exibido ao lado do calendário. */
|
|
53
|
+
export type DatePickerPreset = {
|
|
54
|
+
label: string;
|
|
55
|
+
range: DateRange;
|
|
56
|
+
};
|
|
57
|
+
export type DatePickerRangeProps = DatePickerSharedProps & {
|
|
58
|
+
/** Seleciona um intervalo de datas (início e fim). */
|
|
59
|
+
mode: 'range';
|
|
60
|
+
/** Intervalo atualmente selecionado (modo controlado). */
|
|
61
|
+
value?: DateRange | null;
|
|
62
|
+
/** Intervalo selecionado na montagem (modo não-controlado). */
|
|
63
|
+
defaultValue?: DateRange | null;
|
|
64
|
+
/** Callback chamado a cada alteração do intervalo (início e/ou fim). */
|
|
65
|
+
onValueChange?: (value: DateRange) => void;
|
|
66
|
+
/** Quantidade de meses exibidos lado a lado no popover. @default 1 */
|
|
67
|
+
numberOfMonths?: number;
|
|
68
|
+
/** Atalhos de intervalo exibidos em uma coluna à esquerda do calendário. */
|
|
69
|
+
presets?: DatePickerPreset[];
|
|
70
|
+
};
|
|
71
|
+
export type DatePickerProps = DatePickerSingleProps | DatePickerRangeProps;
|
|
72
|
+
/**
|
|
73
|
+
* Campo de seleção de data com um mini calendário em popover.
|
|
74
|
+
* Suporta seleção de uma única data (`mode="single"`, padrão) ou de um
|
|
75
|
+
* intervalo (`mode="range"`).
|
|
76
|
+
*
|
|
77
|
+
* @example
|
|
78
|
+
* ```tsx
|
|
79
|
+
* <DatePicker label="Data do voo" value={date} onValueChange={setDate} />
|
|
80
|
+
* ```
|
|
81
|
+
*
|
|
82
|
+
* @example Intervalo de datas
|
|
83
|
+
* ```tsx
|
|
84
|
+
* <DatePicker
|
|
85
|
+
* mode="range"
|
|
86
|
+
* label="Período"
|
|
87
|
+
* value={range}
|
|
88
|
+
* onValueChange={setRange}
|
|
89
|
+
* />
|
|
90
|
+
* ```
|
|
91
|
+
*/
|
|
92
|
+
export default function DatePicker(props: DatePickerProps): import("react").JSX.Element;
|
|
93
|
+
export {};
|
|
94
|
+
//# sourceMappingURL=DatePicker.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DatePicker.d.ts","sourceRoot":"","sources":["../../../src/components/DatePicker/DatePicker.tsx"],"names":[],"mappings":"AA8BA,MAAM,MAAM,eAAe,GAAG,SAAS,GAAG,OAAO,GAAG,SAAS,CAAC;AAC9D,MAAM,MAAM,cAAc,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;AAChD,MAAM,MAAM,cAAc,GAAG,QAAQ,GAAG,OAAO,CAAC;AAEhD,iGAAiG;AACjG,MAAM,MAAM,SAAS,GAAG;IAAE,IAAI,EAAE,IAAI,CAAC;IAAC,EAAE,CAAC,EAAE,IAAI,CAAA;CAAE,CAAC;AAmClD,KAAK,YAAY,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAiB9C,KAAK,qBAAqB,GAAG;IAC5B,qCAAqC;IACrC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,4DAA4D;IAC5D,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,0DAA0D;IAC1D,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,6CAA6C;IAC7C,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,4DAA4D;IAC5D,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,uDAAuD;IACvD,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,8BAA8B;IAC9B,KAAK,CAAC,EAAE,eAAe,CAAC;IACxB,uDAAuD;IACvD,IAAI,CAAC,EAAE,cAAc,CAAC;IACtB,+DAA+D;IAC/D,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,2DAA2D;IAC3D,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,iEAAiE;IACjE,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,2DAA2D;IAC3D,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,yFAAyF;IACzF,YAAY,CAAC,EAAE,IAAI,CAAC;IACpB,mEAAmE;IACnE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,kDAAkD;IAClD,SAAS,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG,qBAAqB,GAAG;IAC3D,kDAAkD;IAClD,IAAI,CAAC,EAAE,QAAQ,CAAC;IAChB,qDAAqD;IACrD,KAAK,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;IACpB,0DAA0D;IAC1D,YAAY,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;IAC3B,uDAAuD;IACvD,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,IAAI,KAAK,IAAI,CAAC;CACtC,CAAC;AAEF,8FAA8F;AAC9F,MAAM,MAAM,gBAAgB,GAAG;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,SAAS,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG,qBAAqB,GAAG;IAC1D,sDAAsD;IACtD,IAAI,EAAE,OAAO,CAAC;IACd,0DAA0D;IAC1D,KAAK,CAAC,EAAE,SAAS,GAAG,IAAI,CAAC;IACzB,+DAA+D;IAC/D,YAAY,CAAC,EAAE,SAAS,GAAG,IAAI,CAAC;IAChC,wEAAwE;IACxE,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,IAAI,CAAC;IAC3C,sEAAsE;IACtE,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,4EAA4E;IAC5E,OAAO,CAAC,EAAE,gBAAgB,EAAE,CAAC;CAC7B,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG,qBAAqB,GAAG,oBAAoB,CAAC;AAQ3E;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,CAAC,OAAO,UAAU,UAAU,CAAC,KAAK,EAAE,eAAe,+BAkcxD"}
|
|
@@ -0,0 +1,146 @@
|
|
|
1
|
+
import { type ComponentPropsWithoutRef, type ReactNode } from 'react';
|
|
2
|
+
import { Dialog as DialogBase } from '@base-ui/react/dialog';
|
|
3
|
+
import { AlertDialog as AlertDialogBase } from '@base-ui/react/alert-dialog';
|
|
4
|
+
/** Dialog size variant definitions mapping sizes to their widths. */
|
|
5
|
+
export declare const EDS_DIALOG_VARIANTS: {
|
|
6
|
+
readonly size: {
|
|
7
|
+
readonly sm: {
|
|
8
|
+
readonly classes: "sm:w-72";
|
|
9
|
+
readonly description: "Small dialog for simple confirmations (288px)";
|
|
10
|
+
};
|
|
11
|
+
readonly md: {
|
|
12
|
+
readonly classes: "sm:w-96";
|
|
13
|
+
readonly description: "Default dialog width (384px)";
|
|
14
|
+
};
|
|
15
|
+
readonly lg: {
|
|
16
|
+
readonly classes: "sm:w-[32rem]";
|
|
17
|
+
readonly description: "Large dialog for complex content (512px)";
|
|
18
|
+
};
|
|
19
|
+
readonly xl: {
|
|
20
|
+
readonly classes: "sm:w-[48rem]";
|
|
21
|
+
readonly description: "Extra large dialog for detailed views (768px)";
|
|
22
|
+
};
|
|
23
|
+
};
|
|
24
|
+
};
|
|
25
|
+
export declare const EDS_DIALOG_DEFAULT_VARIANTS: {
|
|
26
|
+
readonly size: "md";
|
|
27
|
+
};
|
|
28
|
+
export type DialogSize = keyof typeof EDS_DIALOG_VARIANTS.size;
|
|
29
|
+
export type DialogRole = 'dialog' | 'alertdialog';
|
|
30
|
+
export interface EdsDialogVariantsProps {
|
|
31
|
+
/**
|
|
32
|
+
* Largura do dialog.
|
|
33
|
+
* - `"sm"` — Pequeno (288px) para confirmações simples
|
|
34
|
+
* - `"md"` — Padrão (384px)
|
|
35
|
+
* - `"lg"` — Grande (512px) para conteúdo mais complexo
|
|
36
|
+
* - `"xl"` — Extra grande (768px) para visualizações detalhadas
|
|
37
|
+
* @default "md"
|
|
38
|
+
*/
|
|
39
|
+
size?: DialogSize;
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Dialog content — the modal panel itself.
|
|
43
|
+
*
|
|
44
|
+
* @example
|
|
45
|
+
* ```tsx
|
|
46
|
+
* <Dialog.Root>
|
|
47
|
+
* <Dialog.Trigger render={(p) => <Button {...p}>Abrir</Button>} />
|
|
48
|
+
* <Dialog className="p-8">
|
|
49
|
+
* <Dialog.Title>Confirmar ação</Dialog.Title>
|
|
50
|
+
* <Dialog.Description>Tem certeza?</Dialog.Description>
|
|
51
|
+
* <Dialog.Close render={(p) => <Button {...p}>Cancelar</Button>} />
|
|
52
|
+
* </Dialog>
|
|
53
|
+
* </Dialog.Root>
|
|
54
|
+
* ```
|
|
55
|
+
*/
|
|
56
|
+
export type DialogProps = EdsDialogVariantsProps & {
|
|
57
|
+
/** Classes CSS adicionais combinadas via `cn()`. */
|
|
58
|
+
className?: string;
|
|
59
|
+
/** Conteúdo do dialog (geralmente Title, Description, Close e botões de ação). */
|
|
60
|
+
children: ReactNode;
|
|
61
|
+
};
|
|
62
|
+
declare function DialogContent({ className, children, size }: DialogProps): import("react").JSX.Element;
|
|
63
|
+
type BaseDialogRootProps = ComponentPropsWithoutRef<typeof DialogBase.Root>;
|
|
64
|
+
type BaseAlertDialogRootProps = ComponentPropsWithoutRef<typeof AlertDialogBase.Root>;
|
|
65
|
+
type StandardDialogRootProps = BaseDialogRootProps & {
|
|
66
|
+
/**
|
|
67
|
+
* Papel ARIA do dialog.
|
|
68
|
+
* - `"dialog"` — Dialog padrão para modais em geral. Fecha ao clicar fora por padrão.
|
|
69
|
+
* - `"alertdialog"` — Para fluxos de confirmação/destrutivos. Não fecha ao clicar fora.
|
|
70
|
+
*
|
|
71
|
+
* Use `role="alertdialog"` para:
|
|
72
|
+
* - Ações destrutivas (excluir, descartar, remover)
|
|
73
|
+
* - Confirmações que exigem reconhecimento explícito do usuário
|
|
74
|
+
* - Ações que não podem ser desfeitas
|
|
75
|
+
* @default "dialog"
|
|
76
|
+
*/
|
|
77
|
+
role?: 'dialog';
|
|
78
|
+
};
|
|
79
|
+
type AlertDialogRootProps = BaseAlertDialogRootProps & {
|
|
80
|
+
role: 'alertdialog';
|
|
81
|
+
};
|
|
82
|
+
export type DialogRootProps = StandardDialogRootProps | AlertDialogRootProps;
|
|
83
|
+
declare function DialogRoot(props: DialogRootProps): import("react").JSX.Element;
|
|
84
|
+
declare namespace DialogRoot {
|
|
85
|
+
var displayName: string;
|
|
86
|
+
}
|
|
87
|
+
type BaseDialogTriggerProps = ComponentPropsWithoutRef<typeof DialogBase.Trigger>;
|
|
88
|
+
type BaseAlertDialogTriggerProps = ComponentPropsWithoutRef<typeof AlertDialogBase.Trigger>;
|
|
89
|
+
export type DialogTriggerProps = BaseDialogTriggerProps | BaseAlertDialogTriggerProps;
|
|
90
|
+
declare function DialogTrigger({ children, ...props }: DialogTriggerProps): import("react").JSX.Element;
|
|
91
|
+
declare namespace DialogTrigger {
|
|
92
|
+
var displayName: string;
|
|
93
|
+
}
|
|
94
|
+
export type DialogTitleProps = ComponentPropsWithoutRef<typeof DialogBase.Title>;
|
|
95
|
+
declare function DialogTitle({ className, ...props }: DialogTitleProps): import("react").JSX.Element;
|
|
96
|
+
declare namespace DialogTitle {
|
|
97
|
+
var displayName: string;
|
|
98
|
+
}
|
|
99
|
+
export type DialogDescriptionProps = ComponentPropsWithoutRef<typeof DialogBase.Description>;
|
|
100
|
+
declare function DialogDescription({ className, ...props }: DialogDescriptionProps): import("react").JSX.Element;
|
|
101
|
+
declare namespace DialogDescription {
|
|
102
|
+
var displayName: string;
|
|
103
|
+
}
|
|
104
|
+
export type DialogCloseProps = ComponentPropsWithoutRef<typeof DialogBase.Close>;
|
|
105
|
+
declare function DialogClose({ children, ...props }: DialogCloseProps): import("react").JSX.Element;
|
|
106
|
+
declare namespace DialogClose {
|
|
107
|
+
var displayName: string;
|
|
108
|
+
}
|
|
109
|
+
/**
|
|
110
|
+
* Modal dialog com backdrop. Compound component com `Dialog.Root`,
|
|
111
|
+
* `Dialog.Trigger`, `Dialog.Title`, `Dialog.Description` e `Dialog.Close`.
|
|
112
|
+
*
|
|
113
|
+
* @example
|
|
114
|
+
* ```tsx
|
|
115
|
+
* <Dialog.Root>
|
|
116
|
+
* <Dialog.Trigger render={(p) => <Button {...p}>Excluir</Button>} />
|
|
117
|
+
* <Dialog>
|
|
118
|
+
* <Dialog.Title>Excluir item</Dialog.Title>
|
|
119
|
+
* <Dialog.Description>Essa ação não pode ser desfeita.</Dialog.Description>
|
|
120
|
+
* <Dialog.Close render={(p) => <Button variant="outline" {...p}>Cancelar</Button>} />
|
|
121
|
+
* </Dialog>
|
|
122
|
+
* </Dialog.Root>
|
|
123
|
+
* ```
|
|
124
|
+
*
|
|
125
|
+
* @example Alert dialog para ações destrutivas
|
|
126
|
+
* ```tsx
|
|
127
|
+
* <Dialog.Root role="alertdialog">
|
|
128
|
+
* <Dialog.Trigger render={(p) => <Button color="red-main" {...p}>Excluir projeto</Button>} />
|
|
129
|
+
* <Dialog>
|
|
130
|
+
* <Dialog.Title>Excluir projeto?</Dialog.Title>
|
|
131
|
+
* <Dialog.Description>Essa ação não pode ser desfeita.</Dialog.Description>
|
|
132
|
+
* <Dialog.Close render={(p) => <Button variant="outline" {...p}>Cancelar</Button>} />
|
|
133
|
+
* <Dialog.Close render={(p) => <Button color="red-main" {...p}>Excluir</Button>} />
|
|
134
|
+
* </Dialog>
|
|
135
|
+
* </Dialog.Root>
|
|
136
|
+
* ```
|
|
137
|
+
*/
|
|
138
|
+
export declare const Dialog: typeof DialogContent & {
|
|
139
|
+
Root: typeof DialogRoot;
|
|
140
|
+
Trigger: typeof DialogTrigger;
|
|
141
|
+
Title: typeof DialogTitle;
|
|
142
|
+
Description: typeof DialogDescription;
|
|
143
|
+
Close: typeof DialogClose;
|
|
144
|
+
};
|
|
145
|
+
export {};
|
|
146
|
+
//# sourceMappingURL=Dialog.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Dialog.d.ts","sourceRoot":"","sources":["../../../src/components/Dialog/Dialog.tsx"],"names":[],"mappings":"AAAA,OAAO,EAGN,KAAK,wBAAwB,EAC7B,KAAK,SAAS,EACd,MAAM,OAAO,CAAC;AACf,OAAO,EAAE,MAAM,IAAI,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,EAAE,WAAW,IAAI,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAI7E,qEAAqE;AACrE,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;CAmBtB,CAAC;AAEX,eAAO,MAAM,2BAA2B;;CAE9B,CAAC;AAEX,MAAM,MAAM,UAAU,GAAG,MAAM,OAAO,mBAAmB,CAAC,IAAI,CAAC;AAC/D,MAAM,MAAM,UAAU,GAAG,QAAQ,GAAG,aAAa,CAAC;AAElD,MAAM,WAAW,sBAAsB;IACtC;;;;;;;OAOG;IACH,IAAI,CAAC,EAAE,UAAU,CAAC;CAClB;AAqBD;;;;;;;;;;;;;;GAcG;AACH,MAAM,MAAM,WAAW,GAAG,sBAAsB,GAAG;IAClD,oDAAoD;IACpD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,kFAAkF;IAClF,QAAQ,EAAE,SAAS,CAAC;CACpB,CAAC;AAEF,iBAAS,aAAa,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE,WAAW,+BAyBhE;AAED,KAAK,mBAAmB,GAAG,wBAAwB,CAAC,OAAO,UAAU,CAAC,IAAI,CAAC,CAAC;AAC5E,KAAK,wBAAwB,GAAG,wBAAwB,CACvD,OAAO,eAAe,CAAC,IAAI,CAC3B,CAAC;AAEF,KAAK,uBAAuB,GAAG,mBAAmB,GAAG;IACpD;;;;;;;;;;OAUG;IACH,IAAI,CAAC,EAAE,QAAQ,CAAC;CAChB,CAAC;AAEF,KAAK,oBAAoB,GAAG,wBAAwB,GAAG;IACtD,IAAI,EAAE,aAAa,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG,uBAAuB,GAAG,oBAAoB,CAAC;AAE7E,iBAAS,UAAU,CAAC,KAAK,EAAE,eAAe,+BAkBzC;kBAlBQ,UAAU;;;AAoBnB,KAAK,sBAAsB,GAAG,wBAAwB,CACrD,OAAO,UAAU,CAAC,OAAO,CACzB,CAAC;AACF,KAAK,2BAA2B,GAAG,wBAAwB,CAC1D,OAAO,eAAe,CAAC,OAAO,CAC9B,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAC7B,sBAAsB,GAAG,2BAA2B,CAAC;AAEtD,iBAAS,aAAa,CAAC,EAAE,QAAQ,EAAE,GAAG,KAAK,EAAE,EAAE,kBAAkB,+BAmBhE;kBAnBQ,aAAa;;;AAqBtB,MAAM,MAAM,gBAAgB,GAAG,wBAAwB,CACtD,OAAO,UAAU,CAAC,KAAK,CACvB,CAAC;AAEF,iBAAS,WAAW,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,gBAAgB,+BAa7D;kBAbQ,WAAW;;;AAepB,MAAM,MAAM,sBAAsB,GAAG,wBAAwB,CAC5D,OAAO,UAAU,CAAC,WAAW,CAC7B,CAAC;AAEF,iBAAS,iBAAiB,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,sBAAsB,+BAezE;kBAfQ,iBAAiB;;;AAiB1B,MAAM,MAAM,gBAAgB,GAAG,wBAAwB,CACtD,OAAO,UAAU,CAAC,KAAK,CACvB,CAAC;AAEF,iBAAS,WAAW,CAAC,EAAE,QAAQ,EAAE,GAAG,KAAK,EAAE,EAAE,gBAAgB,+BAS5D;kBATQ,WAAW;;;AAiBpB;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,eAAO,MAAM,MAAM;;;;;;CAMjB,CAAC"}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
import type { ReactNode } from 'react';
|
|
2
|
+
/** Empty state size variant definitions mapping sizes to their Tailwind classes. */
|
|
3
|
+
export declare const EDS_EMPTY_VARIANTS: {
|
|
4
|
+
readonly size: {
|
|
5
|
+
readonly sm: {
|
|
6
|
+
readonly classes: "px-6 py-8 gap-3";
|
|
7
|
+
readonly description: "Compact empty state for smaller containers";
|
|
8
|
+
};
|
|
9
|
+
readonly md: {
|
|
10
|
+
readonly classes: "px-10 py-14 gap-4";
|
|
11
|
+
readonly description: "Default empty state size";
|
|
12
|
+
};
|
|
13
|
+
readonly lg: {
|
|
14
|
+
readonly classes: "px-12 py-20 gap-6";
|
|
15
|
+
readonly description: "Large empty state for prominent placement";
|
|
16
|
+
};
|
|
17
|
+
};
|
|
18
|
+
};
|
|
19
|
+
export declare const EDS_EMPTY_DEFAULT_VARIANTS: {
|
|
20
|
+
readonly size: "md";
|
|
21
|
+
};
|
|
22
|
+
export type EmptySize = keyof typeof EDS_EMPTY_VARIANTS.size;
|
|
23
|
+
export type EmptyTitleLevel = 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6';
|
|
24
|
+
export interface EdsEmptyVariantsProps {
|
|
25
|
+
/**
|
|
26
|
+
* Tamanho do container do empty state.
|
|
27
|
+
* - `"sm"` — Compacto, para containers menores (ex.: dentro de um card)
|
|
28
|
+
* - `"md"` — Tamanho padrão
|
|
29
|
+
* - `"lg"` — Grande, para destaque em página inteira
|
|
30
|
+
* @default "md"
|
|
31
|
+
*/
|
|
32
|
+
size?: EmptySize;
|
|
33
|
+
/**
|
|
34
|
+
* Nível do heading usado no título, para se encaixar corretamente na
|
|
35
|
+
* hierarquia semântica da página.
|
|
36
|
+
* @default "h2"
|
|
37
|
+
*/
|
|
38
|
+
titleLevel?: EmptyTitleLevel;
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Props do componente Empty.
|
|
42
|
+
*
|
|
43
|
+
* @example
|
|
44
|
+
* ```tsx
|
|
45
|
+
* <Empty
|
|
46
|
+
* icon={<Users size={40} />}
|
|
47
|
+
* title="Nenhum motorista encontrado"
|
|
48
|
+
* description="Ajuste os filtros ou cadastre um novo motorista."
|
|
49
|
+
* action={<Button text="Cadastrar motorista" />}
|
|
50
|
+
* />
|
|
51
|
+
* ```
|
|
52
|
+
*/
|
|
53
|
+
export interface EmptyProps extends EdsEmptyVariantsProps {
|
|
54
|
+
/** Ícone decorativo exibido acima do título (ex.: um ícone do `lucide-react`). */
|
|
55
|
+
icon?: ReactNode;
|
|
56
|
+
/** Texto principal do empty state. */
|
|
57
|
+
title: string;
|
|
58
|
+
/** Texto secundário exibido abaixo do título. */
|
|
59
|
+
description?: string;
|
|
60
|
+
/** Ação principal (geralmente um `Button`) exibida abaixo da descrição. */
|
|
61
|
+
action?: ReactNode;
|
|
62
|
+
/** Classes CSS adicionais. */
|
|
63
|
+
className?: string;
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Placeholder exibido quando uma lista, tabela ou página não tem conteúdo
|
|
67
|
+
* para mostrar (nenhum resultado de busca, lista vazia, filtro sem match).
|
|
68
|
+
*
|
|
69
|
+
* @example
|
|
70
|
+
* ```tsx
|
|
71
|
+
* <Empty title="Nenhum resultado" description="Tente ajustar sua busca." />
|
|
72
|
+
* ```
|
|
73
|
+
*/
|
|
74
|
+
export declare function Empty({ icon, title, description, action, size, titleLevel: TitleTag, className, }: EmptyProps): import("react").JSX.Element;
|
|
75
|
+
//# sourceMappingURL=Empty.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Empty.d.ts","sourceRoot":"","sources":["../../../src/components/Empty/Empty.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAIvC,oFAAoF;AACpF,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;CAerB,CAAC;AAEX,eAAO,MAAM,0BAA0B;;CAE7B,CAAC;AAEX,MAAM,MAAM,SAAS,GAAG,MAAM,OAAO,kBAAkB,CAAC,IAAI,CAAC;AAE7D,MAAM,MAAM,eAAe,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;AAEtE,MAAM,WAAW,qBAAqB;IACrC;;;;;;OAMG;IACH,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB;;;;OAIG;IACH,UAAU,CAAC,EAAE,eAAe,CAAC;CAC7B;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,WAAW,UAAW,SAAQ,qBAAqB;IACxD,kFAAkF;IAClF,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,sCAAsC;IACtC,KAAK,EAAE,MAAM,CAAC;IACd,iDAAiD;IACjD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,2EAA2E;IAC3E,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,8BAA8B;IAC9B,SAAS,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;;;;;;;GAQG;AACH,wBAAgB,KAAK,CAAC,EACrB,IAAI,EACJ,KAAK,EACL,WAAW,EACX,MAAM,EACN,IAAsC,EACtC,UAAU,EAAE,QAAe,EAC3B,SAAS,GACT,EAAE,UAAU,+BA8BZ"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { Button as BaseUiButton } from '@base-ui/react/button';
|
|
2
|
+
import type { LucideIcon } from 'lucide-react';
|
|
3
|
+
import type { ComponentProps } from 'react';
|
|
4
|
+
import type { EdsSemanticColor } from '../../constants/colors';
|
|
5
|
+
export type IconButtonVariant = 'solid' | 'outline' | 'ghost' | 'link';
|
|
6
|
+
export type IconButtonSize = 'sm' | 'md' | 'lg';
|
|
7
|
+
export type IconButtonColor = EdsSemanticColor;
|
|
8
|
+
export type IconButtonProps = Omit<ComponentProps<typeof BaseUiButton>, 'className' | 'children'> & {
|
|
9
|
+
className?: string;
|
|
10
|
+
/** Ícone exibido no botão. */
|
|
11
|
+
icon: LucideIcon;
|
|
12
|
+
/** Rótulo acessível (usado como `aria-label` e `title`, já que não há texto visível). */
|
|
13
|
+
label: string;
|
|
14
|
+
variant?: IconButtonVariant;
|
|
15
|
+
color?: IconButtonColor;
|
|
16
|
+
size?: IconButtonSize;
|
|
17
|
+
};
|
|
18
|
+
export default function IconButton({ icon: Icon, label, className, variant, color, size, disabled, style, ...props }: IconButtonProps): import("react").JSX.Element;
|
|
19
|
+
//# sourceMappingURL=IconButton.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"IconButton.d.ts","sourceRoot":"","sources":["../../../src/components/IconButton/IconButton.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAC/D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,KAAK,EAAE,cAAc,EAAiB,MAAM,OAAO,CAAC;AAC3D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAS/D,MAAM,MAAM,iBAAiB,GAAG,OAAO,GAAG,SAAS,GAAG,OAAO,GAAG,MAAM,CAAC;AACvE,MAAM,MAAM,cAAc,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;AAChD,MAAM,MAAM,eAAe,GAAG,gBAAgB,CAAC;AAW/C,MAAM,MAAM,eAAe,GAAG,IAAI,CACjC,cAAc,CAAC,OAAO,YAAY,CAAC,EACnC,WAAW,GAAG,UAAU,CACxB,GAAG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,8BAA8B;IAC9B,IAAI,EAAE,UAAU,CAAC;IACjB,yFAAyF;IACzF,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,iBAAiB,CAAC;IAC5B,KAAK,CAAC,EAAE,eAAe,CAAC;IACxB,IAAI,CAAC,EAAE,cAAc,CAAC;CACtB,CAAC;AAEF,MAAM,CAAC,OAAO,UAAU,UAAU,CAAC,EAClC,IAAI,EAAE,IAAI,EACV,KAAK,EACL,SAAS,EACT,OAAiB,EACjB,KAAsB,EACtB,IAAW,EACX,QAAQ,EACR,KAAK,EACL,GAAG,KAAK,EACR,EAAE,eAAe,+BA0CjB"}
|
|
@@ -5,7 +5,6 @@ export type InputSize = 'sm' | 'md' | 'lg';
|
|
|
5
5
|
export type InputProps = Omit<ComponentProps<'input'>, 'className' | 'type' | 'required' | 'onChange' | 'size'> & {
|
|
6
6
|
className?: string;
|
|
7
7
|
label?: string;
|
|
8
|
-
texto?: string;
|
|
9
8
|
disabled?: boolean;
|
|
10
9
|
state?: InputState;
|
|
11
10
|
/** Tamanho do campo (altura, padding e tipografia). */
|
|
@@ -29,5 +28,5 @@ export type InputProps = Omit<ComponentProps<'input'>, 'className' | 'type' | 'r
|
|
|
29
28
|
loadingIconPosition?: 'start' | 'end';
|
|
30
29
|
onChange?: (value: string, event: ChangeEvent<HTMLInputElement>) => void;
|
|
31
30
|
};
|
|
32
|
-
export default function Input({ className, label,
|
|
31
|
+
export default function Input({ className, label, disabled, state, size, inputType, required, placeholder, errorMessage, fluid, format, tooltip, linkText, linkUrl, supportLink, supportLinkUrl, supportingText, lazy, floatingLabel, disableAutocomplete, isLoading, loadingIconPosition, defaultValue, value, id, name, onBlur, onFocus, onKeyDown, onClick, onChange, ...props }: InputProps): import("react").JSX.Element;
|
|
33
32
|
//# sourceMappingURL=Input.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Input.d.ts","sourceRoot":"","sources":["../../../src/components/Input/Input.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Input.d.ts","sourceRoot":"","sources":["../../../src/components/Input/Input.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAmB,KAAK,WAAW,EAAE,KAAK,cAAc,EAAE,MAAM,OAAO,CAAC;AAmB/E,MAAM,MAAM,UAAU,GAAG,SAAS,GAAG,OAAO,GAAG,SAAS,GAAG,SAAS,CAAC;AACrE,MAAM,MAAM,WAAW,GAAG,KAAK,GAAG,KAAK,GAAG,MAAM,GAAG,WAAW,GAAG,OAAO,CAAC;AACzE,MAAM,MAAM,SAAS,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;AAoB3C,MAAM,MAAM,UAAU,GAAG,IAAI,CAC5B,cAAc,CAAC,OAAO,CAAC,EACvB,WAAW,GAAG,MAAM,GAAG,UAAU,GAAG,UAAU,GAAG,MAAM,CACvD,GAAG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,UAAU,CAAC;IACnB,uDAAuD;IACvD,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IAC7B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,mBAAmB,CAAC,EAAE,OAAO,GAAG,KAAK,CAAC;IACtC,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW,CAAC,gBAAgB,CAAC,KAAK,IAAI,CAAC;CACzE,CAAC;AAEF,MAAM,CAAC,OAAO,UAAU,KAAK,CAAC,EAC7B,SAAS,EACT,KAAe,EACf,QAAgB,EAChB,KAAiB,EACjB,IAAW,EACX,SAAkB,EAClB,QAAgB,EAChB,WAA8B,EAC9B,YAAkC,EAClC,KAAa,EACb,MAAM,EACN,OAAc,EACd,QAAe,EACf,OAAc,EACd,WAAkB,EAClB,cAAqB,EACrB,cAAmB,EACnB,IAAY,EACZ,aAAoB,EACpB,mBAA2B,EAC3B,SAAiB,EACjB,mBAA2B,EAC3B,YAAY,EACZ,KAAK,EACL,EAAE,EACF,IAAI,EACJ,MAAM,EACN,OAAO,EACP,SAAS,EACT,OAAO,EACP,QAAQ,EACR,GAAG,KAAK,EACR,EAAE,UAAU,+BAwLZ"}
|