@cnc-ti/layout-basic 8.4.0 → 8.6.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 +59 -0
- package/dist/index.css +480 -0
- package/dist/index.css.map +1 -1
- package/dist/index.d.mts +609 -37
- package/dist/index.d.ts +609 -37
- package/dist/index.js +2672 -323
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +2629 -323
- package/dist/index.mjs.map +1 -1
- package/package.json +6 -3
package/dist/index.d.ts
CHANGED
|
@@ -68,6 +68,24 @@ interface HeaderContainerProps extends HTMLAttributes<HTMLDivElement> {
|
|
|
68
68
|
*/
|
|
69
69
|
logoLink?: string;
|
|
70
70
|
container?: boolean;
|
|
71
|
+
/**
|
|
72
|
+
* Conteúdo opcional exibido à esquerda dos `children` do cabeçalho — a área
|
|
73
|
+
* reservada para o sino de notificações.
|
|
74
|
+
*
|
|
75
|
+
* Não é renderizado quando omitido, então nenhum consumidor atual é afetado.
|
|
76
|
+
* O uso previsto é o componente `HeaderNotifications`, mas qualquer nó React
|
|
77
|
+
* é aceito.
|
|
78
|
+
*
|
|
79
|
+
* @example
|
|
80
|
+
* <HeaderContainer
|
|
81
|
+
* onOpenMenu={toggleSidebar}
|
|
82
|
+
* isOpen={collapsed}
|
|
83
|
+
* notifications={<HeaderNotifications items={notificacoes} />}
|
|
84
|
+
* >
|
|
85
|
+
* <HeaderProfileHeader user={usuario}>...</HeaderProfileHeader>
|
|
86
|
+
* </HeaderContainer>
|
|
87
|
+
*/
|
|
88
|
+
notifications?: ReactNode;
|
|
71
89
|
}
|
|
72
90
|
declare const HeaderContainer: React.FC<HeaderContainerProps>;
|
|
73
91
|
interface ProfileProps extends HTMLAttributes<HTMLDivElement> {
|
|
@@ -288,6 +306,11 @@ interface InputProps extends React$1.ComponentProps<"input"> {
|
|
|
288
306
|
}
|
|
289
307
|
declare const Input: React$1.ForwardRefExoticComponent<Omit<InputProps, "ref"> & React$1.RefAttributes<HTMLInputElement>>;
|
|
290
308
|
|
|
309
|
+
interface TextareaProps extends React$1.TextareaHTMLAttributes<HTMLTextAreaElement> {
|
|
310
|
+
label?: string;
|
|
311
|
+
}
|
|
312
|
+
declare const Textarea: React$1.ForwardRefExoticComponent<TextareaProps & React$1.RefAttributes<HTMLTextAreaElement>>;
|
|
313
|
+
|
|
291
314
|
interface CheckboxProps extends React$1.ComponentProps<"input"> {
|
|
292
315
|
label?: string;
|
|
293
316
|
}
|
|
@@ -329,6 +352,20 @@ interface BadgeProps extends React__default.HTMLAttributes<HTMLSpanElement> {
|
|
|
329
352
|
*/
|
|
330
353
|
declare const Badge: ({ variant, rounded, size, className, ...rest }: BadgeProps) => react_jsx_runtime.JSX.Element;
|
|
331
354
|
|
|
355
|
+
interface AvatarProps extends React$1.HTMLAttributes<HTMLSpanElement> {
|
|
356
|
+
/** URL da imagem do usuário. Se ausente ou falhar, exibe o fallback. */
|
|
357
|
+
src?: string | null;
|
|
358
|
+
/** Texto alternativo da imagem. */
|
|
359
|
+
alt?: string;
|
|
360
|
+
/** Conteúdo de fallback quando não há imagem (ex.: iniciais do nome). */
|
|
361
|
+
fallback?: React$1.ReactNode;
|
|
362
|
+
/** Tamanho do avatar. Padrão: "md". */
|
|
363
|
+
size?: "sm" | "md" | "lg" | "xl";
|
|
364
|
+
/** Indica carregamento (esqueleto pulsante). */
|
|
365
|
+
isLoading?: boolean;
|
|
366
|
+
}
|
|
367
|
+
declare function Avatar({ src, alt, fallback, size, isLoading, className, ...props }: AvatarProps): react_jsx_runtime.JSX.Element;
|
|
368
|
+
|
|
332
369
|
/**
|
|
333
370
|
* Componente principal do Card.
|
|
334
371
|
* Utilizado para agrupar visualmente conteúdos relacionados.
|
|
@@ -439,27 +476,75 @@ interface TitleProps {
|
|
|
439
476
|
*/
|
|
440
477
|
declare function Title({ title, as: Component }: TitleProps): react_jsx_runtime.JSX.Element;
|
|
441
478
|
|
|
479
|
+
interface EmptyStateProps extends React$1.HTMLAttributes<HTMLDivElement> {
|
|
480
|
+
icon?: React$1.ReactNode;
|
|
481
|
+
title: string;
|
|
482
|
+
description?: React$1.ReactNode;
|
|
483
|
+
action?: React$1.ReactNode;
|
|
484
|
+
minHeight?: string;
|
|
485
|
+
}
|
|
486
|
+
declare function EmptyState({ icon, title, description, action, minHeight, className, ...props }: EmptyStateProps): react_jsx_runtime.JSX.Element;
|
|
487
|
+
|
|
488
|
+
/**
|
|
489
|
+
* Regra de gênero para o sufixo "encontrad(o|a)s".
|
|
490
|
+
* Se omitido, usa heurística: última letra do `resourceName` é "a" → feminina.
|
|
491
|
+
*/
|
|
492
|
+
type ResultMetadataGender = "masc" | "fem";
|
|
493
|
+
interface ResultMetadataProps extends React.HTMLAttributes<HTMLDivElement> {
|
|
494
|
+
/** Nome do recurso a ser exibido (ex: "Negociações", "Subgrupos"). */
|
|
495
|
+
resourceName: string;
|
|
496
|
+
/** Total de registros retornados pela API. */
|
|
497
|
+
total: number;
|
|
498
|
+
/** Quantidade de registros exibidos na tela. */
|
|
499
|
+
displayed: number;
|
|
500
|
+
/** Indica se os dados ainda estão sendo carregados (opcional). */
|
|
501
|
+
isLoading?: boolean;
|
|
502
|
+
/**
|
|
503
|
+
* Gênero forçado para "encontrado(s)" / "encontrada(s)".
|
|
504
|
+
* Use quando a heurística da última letra falha (ex.: "Sistema").
|
|
505
|
+
*/
|
|
506
|
+
forceWordGender?: ResultMetadataGender;
|
|
507
|
+
/**
|
|
508
|
+
* A partir de quantos registros exibidos o aviso
|
|
509
|
+
* "Exibindo os X primeiros registros..." aparece. Padrão: 30.
|
|
510
|
+
*/
|
|
511
|
+
truncationThreshold?: number;
|
|
512
|
+
}
|
|
513
|
+
declare function ResultMetadata({ resourceName, total, displayed, isLoading, forceWordGender, truncationThreshold, className, ...props }: ResultMetadataProps): react_jsx_runtime.JSX.Element;
|
|
514
|
+
|
|
515
|
+
interface LabelValueProps {
|
|
516
|
+
/** Rótulo exibido em destaque acima do valor. */
|
|
517
|
+
label: string;
|
|
518
|
+
/** Valor exibido. Vazio ou ausente mostra "-". */
|
|
519
|
+
value?: React$1.ReactNode;
|
|
520
|
+
/** Link externo opcional exibido ao lado do valor. */
|
|
521
|
+
href?: string;
|
|
522
|
+
className?: string;
|
|
523
|
+
valueClassName?: string;
|
|
524
|
+
}
|
|
525
|
+
declare function LabelValue({ label, value, href, className, valueClassName, }: LabelValueProps): react_jsx_runtime.JSX.Element;
|
|
526
|
+
|
|
527
|
+
interface ComboboxFooterAction {
|
|
528
|
+
/** Texto do botão (ex.: "Cadastrar Nova Temática") */
|
|
529
|
+
label: React$1.ReactNode;
|
|
530
|
+
/** App abre modal, chama API, atualiza options */
|
|
531
|
+
onClick: (event: React$1.MouseEvent<HTMLButtonElement>) => void;
|
|
532
|
+
/** Variante visual (default: create) */
|
|
533
|
+
variant?: "create" | "confirm" | "outline";
|
|
534
|
+
disabled?: boolean;
|
|
535
|
+
}
|
|
536
|
+
interface ComboboxFooterRenderContext {
|
|
537
|
+
close: () => void;
|
|
538
|
+
}
|
|
539
|
+
|
|
442
540
|
/**
|
|
443
541
|
* Representa uma opção que pode ser selecionada no combobox.
|
|
444
|
-
* @typedef {Object} ItemOption
|
|
445
|
-
* @property {*} value - O valor associado à opção.
|
|
446
|
-
* @property {string} label - O rótulo que será exibido para o usuário.
|
|
447
542
|
*/
|
|
448
543
|
interface ItemOption {
|
|
449
544
|
value: any;
|
|
450
545
|
label: string;
|
|
451
546
|
disabled?: boolean;
|
|
452
547
|
}
|
|
453
|
-
/**
|
|
454
|
-
* Propriedades para o componente Combobox.
|
|
455
|
-
*
|
|
456
|
-
* @typedef {Object} ComboboxProps
|
|
457
|
-
* @property {ItemOption[]} [options] - Lista de opções disponíveis para seleção.
|
|
458
|
-
* @property {string} [placeholder] - Placeholder exibido quando nenhuma opção estiver selecionada.
|
|
459
|
-
* @property {{ placeholder?: string, emptyMessage?: string }} [command] - Configurações do campo de busca da lista de opções.
|
|
460
|
-
* @property {(value: string) => void} [onChange] - Função chamada quando uma opção for selecionada.
|
|
461
|
-
* @property {string} [value] - Valor atualmente selecionado.
|
|
462
|
-
*/
|
|
463
548
|
interface ComboboxProps {
|
|
464
549
|
options?: ItemOption[];
|
|
465
550
|
placeholder?: string;
|
|
@@ -470,36 +555,44 @@ interface ComboboxProps {
|
|
|
470
555
|
onChange?: (value: string) => void;
|
|
471
556
|
value?: string;
|
|
472
557
|
onInput?: (value: string) => void;
|
|
473
|
-
/** Se o popover deve ter comportamento modal (padrão: false para compatibilidade com Drawers) */
|
|
474
558
|
modal?: boolean;
|
|
475
|
-
/** Classes CSS adicionais para o PopoverContent */
|
|
476
559
|
popoverClassName?: string;
|
|
477
|
-
/** Classes CSS adicionais para o botão trigger */
|
|
478
560
|
buttonClassName?: string;
|
|
479
|
-
/** Desabilita o combobox */
|
|
480
561
|
disabled?: boolean;
|
|
562
|
+
/** Botão fixo no rodapé do dropdown (ex.: "Cadastrar novo") */
|
|
563
|
+
footerAction?: ComboboxFooterAction;
|
|
564
|
+
/** Slot customizado no rodapé; tem precedência sobre footerAction */
|
|
565
|
+
renderFooter?: (ctx: ComboboxFooterRenderContext) => React$1.ReactNode;
|
|
481
566
|
}
|
|
567
|
+
declare function Combobox({ options, placeholder, command, onChange, value, onInput, modal, popoverClassName, buttonClassName, disabled, footerAction, renderFooter, }: ComboboxProps): react_jsx_runtime.JSX.Element;
|
|
568
|
+
|
|
482
569
|
/**
|
|
483
|
-
*
|
|
484
|
-
*
|
|
485
|
-
* @param {ComboboxProps} props - Propriedades do componente.
|
|
486
|
-
* @returns {JSX.Element} O componente renderizado.
|
|
487
|
-
*
|
|
488
|
-
* @example
|
|
489
|
-
* ```tsx
|
|
490
|
-
* <Combobox
|
|
491
|
-
* options={[
|
|
492
|
-
* { value: 'apple', label: 'Apple' },
|
|
493
|
-
* { value: 'banana', label: 'Banana' },
|
|
494
|
-
* ]}
|
|
495
|
-
* placeholder="Selecione uma fruta"
|
|
496
|
-
* command={{ placeholder: 'Buscar...', emptyMessage: 'Nenhum resultado' }}
|
|
497
|
-
* value={selected}
|
|
498
|
-
* onChange={(newValue) => setSelected(newValue)}
|
|
499
|
-
* />
|
|
500
|
-
* ```
|
|
570
|
+
* Representa uma opção selecionável no MultiSelect.
|
|
501
571
|
*/
|
|
502
|
-
|
|
572
|
+
interface MultiSelectOption<TValue extends string = string> {
|
|
573
|
+
value: TValue;
|
|
574
|
+
label: string;
|
|
575
|
+
disabled?: boolean;
|
|
576
|
+
}
|
|
577
|
+
interface MultiSelectProps<TValue extends string = string> {
|
|
578
|
+
options?: MultiSelectOption<TValue>[];
|
|
579
|
+
value?: TValue[];
|
|
580
|
+
onChange?: (value: TValue[]) => void;
|
|
581
|
+
placeholder?: string;
|
|
582
|
+
disabled?: boolean;
|
|
583
|
+
modal?: boolean;
|
|
584
|
+
className?: string;
|
|
585
|
+
buttonClassName?: string;
|
|
586
|
+
popoverClassName?: string;
|
|
587
|
+
command?: {
|
|
588
|
+
placeholder?: string;
|
|
589
|
+
emptyMessage?: React$1.ReactNode;
|
|
590
|
+
};
|
|
591
|
+
selectedCountText?: (count: number) => string;
|
|
592
|
+
footerAction?: ComboboxFooterAction;
|
|
593
|
+
renderFooter?: (ctx: ComboboxFooterRenderContext) => React$1.ReactNode;
|
|
594
|
+
}
|
|
595
|
+
declare function MultiSelect<TValue extends string = string>({ options, value, onChange, placeholder, disabled, modal, className, buttonClassName, popoverClassName, command, selectedCountText, footerAction, renderFooter, }: MultiSelectProps<TValue>): react_jsx_runtime.JSX.Element;
|
|
503
596
|
|
|
504
597
|
declare const Command: React$1.ForwardRefExoticComponent<Omit<{
|
|
505
598
|
children?: React$1.ReactNode;
|
|
@@ -579,6 +672,49 @@ declare const CommandShortcut: {
|
|
|
579
672
|
displayName: string;
|
|
580
673
|
};
|
|
581
674
|
|
|
675
|
+
interface ConfirmDialogProps {
|
|
676
|
+
/** Controla a abertura/fechamento do diálogo. */
|
|
677
|
+
open: boolean;
|
|
678
|
+
onOpenChange: (open: boolean) => void;
|
|
679
|
+
/** Título do diálogo (ex.: "Excluir demanda"). */
|
|
680
|
+
title: string;
|
|
681
|
+
/** Descrição/confirmação da ação (pode conter elementos em destaque). */
|
|
682
|
+
description?: React$1.ReactNode;
|
|
683
|
+
/** Rótulo da ação de confirmação. Padrão: "Confirmar". */
|
|
684
|
+
confirmLabel?: string;
|
|
685
|
+
/** Rótulo da ação de cancelamento. Padrão: "Cancelar". */
|
|
686
|
+
cancelLabel?: string;
|
|
687
|
+
/** Rótulo exibido no botão de confirmação durante o carregamento. */
|
|
688
|
+
loadingLabel?: string;
|
|
689
|
+
/**
|
|
690
|
+
* Chamado ao confirmar. Se retornar uma Promise, o botão entra em estado
|
|
691
|
+
* de carregamento até ela resolver. O fechamento fica a cargo do consumidor.
|
|
692
|
+
*/
|
|
693
|
+
onConfirm?: () => void | Promise<void>;
|
|
694
|
+
/** Ícone exibido no círculo do cabeçalho. Padrão: ícone de lixeira. */
|
|
695
|
+
icon?: React$1.ReactNode;
|
|
696
|
+
/** Exibe o círculo colorido atrás do ícone. Padrão: `true`. */
|
|
697
|
+
showIconBackground?: boolean;
|
|
698
|
+
/** Alinhamento dos botões no rodapé. Padrão: `"center"`. */
|
|
699
|
+
footerAlign?: "center" | "end";
|
|
700
|
+
/** Variante do botão de confirmação. Padrão: "danger". */
|
|
701
|
+
confirmVariant?: "danger" | "confirm";
|
|
702
|
+
/** Conteúdo extra entre a descrição e o rodapé (ex.: Checkbox de confirmação). */
|
|
703
|
+
children?: React$1.ReactNode;
|
|
704
|
+
/** Controla o estado de carregamento externamente, sobrescrevendo o interno. */
|
|
705
|
+
isLoading?: boolean;
|
|
706
|
+
className?: string;
|
|
707
|
+
}
|
|
708
|
+
declare function ConfirmDialog({ open, onOpenChange, title, description, confirmLabel, cancelLabel, loadingLabel, onConfirm, icon, showIconBackground, footerAlign, confirmVariant, children, isLoading, className, }: ConfirmDialogProps): react_jsx_runtime.JSX.Element;
|
|
709
|
+
|
|
710
|
+
interface TooltipProps {
|
|
711
|
+
text: React$1.ReactNode;
|
|
712
|
+
children: React$1.ReactNode;
|
|
713
|
+
className?: string;
|
|
714
|
+
contentClassName?: string;
|
|
715
|
+
}
|
|
716
|
+
declare function Tooltip({ text, children, className, contentClassName, }: TooltipProps): react_jsx_runtime.JSX.Element;
|
|
717
|
+
|
|
582
718
|
type FilterFieldType = "text" | "combobox" | "switch" | "date";
|
|
583
719
|
type FilterValues = Record<string, string | boolean>;
|
|
584
720
|
interface FilterField {
|
|
@@ -619,4 +755,440 @@ interface CardListProps<T> {
|
|
|
619
755
|
}
|
|
620
756
|
declare function CardList<T>({ items, renderCard, emptyMessage, minItemWidth, className, gap, getKey, isLoading, skeletonCount, }: CardListProps<T>): react_jsx_runtime.JSX.Element;
|
|
621
757
|
|
|
622
|
-
|
|
758
|
+
declare const Drawer: React$1.FC<DialogPrimitive.DialogProps>;
|
|
759
|
+
declare const DrawerTrigger: React$1.ForwardRefExoticComponent<DialogPrimitive.DialogTriggerProps & React$1.RefAttributes<HTMLButtonElement>>;
|
|
760
|
+
declare const DrawerPortal: React$1.FC<DialogPrimitive.DialogPortalProps>;
|
|
761
|
+
declare const DrawerClose: React$1.ForwardRefExoticComponent<DialogPrimitive.DialogCloseProps & React$1.RefAttributes<HTMLButtonElement>>;
|
|
762
|
+
declare const DrawerOverlay: React$1.ForwardRefExoticComponent<Omit<DialogPrimitive.DialogOverlayProps & React$1.RefAttributes<HTMLDivElement>, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
|
|
763
|
+
interface DrawerContentProps extends React$1.ComponentPropsWithoutRef<typeof DialogPrimitive.Content> {
|
|
764
|
+
/** Lado da tela em que o painel desliza. Padrão: "right". */
|
|
765
|
+
side?: "left" | "right";
|
|
766
|
+
/** Largura pré-definida do painel em telas >= sm. Padrão: "md". */
|
|
767
|
+
size?: "sm" | "md" | "lg" | "xl" | "full";
|
|
768
|
+
/** Largura customizada (sobrescreve `size`). */
|
|
769
|
+
width?: string;
|
|
770
|
+
/** Exibe o botão de fechar padrão no canto superior. Padrão: true. */
|
|
771
|
+
closeButton?: boolean;
|
|
772
|
+
}
|
|
773
|
+
declare const DrawerContent: React$1.ForwardRefExoticComponent<DrawerContentProps & React$1.RefAttributes<HTMLDivElement>>;
|
|
774
|
+
declare const DrawerHeader: {
|
|
775
|
+
({ className, ...props }: React$1.HTMLAttributes<HTMLDivElement>): react_jsx_runtime.JSX.Element;
|
|
776
|
+
displayName: string;
|
|
777
|
+
};
|
|
778
|
+
declare const DrawerBody: {
|
|
779
|
+
({ className, ...props }: React$1.HTMLAttributes<HTMLDivElement>): react_jsx_runtime.JSX.Element;
|
|
780
|
+
displayName: string;
|
|
781
|
+
};
|
|
782
|
+
declare const DrawerFooter: {
|
|
783
|
+
({ className, ...props }: React$1.HTMLAttributes<HTMLDivElement>): react_jsx_runtime.JSX.Element;
|
|
784
|
+
displayName: string;
|
|
785
|
+
};
|
|
786
|
+
declare const DrawerTitle: React$1.ForwardRefExoticComponent<Omit<DialogPrimitive.DialogTitleProps & React$1.RefAttributes<HTMLHeadingElement>, "ref"> & React$1.RefAttributes<HTMLHeadingElement>>;
|
|
787
|
+
declare const DrawerDescription: React$1.ForwardRefExoticComponent<Omit<DialogPrimitive.DialogDescriptionProps & React$1.RefAttributes<HTMLParagraphElement>, "ref"> & React$1.RefAttributes<HTMLParagraphElement>>;
|
|
788
|
+
|
|
789
|
+
/**
|
|
790
|
+
* Contexto opcional para orquestrar múltiplos `Drawer`s por id, no padrão
|
|
791
|
+
* `activeDrawer`/`openDrawer(id)` já usado nos projetos consumidores.
|
|
792
|
+
*
|
|
793
|
+
* Uso típico:
|
|
794
|
+
* ```tsx
|
|
795
|
+
* <DrawerProvider>
|
|
796
|
+
* <MinhaPagina />
|
|
797
|
+
* </DrawerProvider>
|
|
798
|
+
*
|
|
799
|
+
* const { isOpen, openDrawer, closeDrawer } = useDrawer();
|
|
800
|
+
* <Drawer open={isOpen("detalhes")} onOpenChange={(open) => !open && closeDrawer()}>
|
|
801
|
+
* ...
|
|
802
|
+
* </Drawer>
|
|
803
|
+
* ```
|
|
804
|
+
*/
|
|
805
|
+
interface DrawerContextValue {
|
|
806
|
+
activeDrawer: string | null;
|
|
807
|
+
openDrawer: (drawerId: string) => void;
|
|
808
|
+
closeDrawer: () => void;
|
|
809
|
+
isOpen: (drawerId: string) => boolean;
|
|
810
|
+
}
|
|
811
|
+
interface DrawerProviderProps {
|
|
812
|
+
children: React$1.ReactNode;
|
|
813
|
+
}
|
|
814
|
+
declare const DrawerContext: React$1.Context<DrawerContextValue | undefined>;
|
|
815
|
+
declare function DrawerProvider({ children }: DrawerProviderProps): react_jsx_runtime.JSX.Element;
|
|
816
|
+
|
|
817
|
+
declare function useDrawer(): DrawerContextValue;
|
|
818
|
+
|
|
819
|
+
type FileRejectionReason = "type" | "size" | "duplicate";
|
|
820
|
+
interface FileRejection {
|
|
821
|
+
file: File;
|
|
822
|
+
reason: FileRejectionReason;
|
|
823
|
+
/** Mensagem pronta para ser exibida pelo consumidor. */
|
|
824
|
+
message: string;
|
|
825
|
+
}
|
|
826
|
+
interface ValidateFilesOptions {
|
|
827
|
+
currentFiles?: File[];
|
|
828
|
+
incomingFiles: File[];
|
|
829
|
+
allowedTypes?: string[];
|
|
830
|
+
maxSize?: number;
|
|
831
|
+
multiple?: boolean;
|
|
832
|
+
}
|
|
833
|
+
/** Formata bytes em KB ou MB usando localidade pt-BR. */
|
|
834
|
+
declare function formatFileSize(bytes: number): string;
|
|
835
|
+
/**
|
|
836
|
+
* Valida um lote de arquivos e separa itens aceitos de itens recusados.
|
|
837
|
+
*/
|
|
838
|
+
declare function validateFiles({ currentFiles, incomingFiles, allowedTypes, maxSize, multiple, }: ValidateFilesOptions): {
|
|
839
|
+
acceptedFiles: File[];
|
|
840
|
+
rejectedFiles: FileRejection[];
|
|
841
|
+
};
|
|
842
|
+
|
|
843
|
+
interface FileUploadProps extends Omit<React$1.HTMLAttributes<HTMLDivElement>, "onChange"> {
|
|
844
|
+
/** Arquivos atualmente selecionados. */
|
|
845
|
+
value?: File[];
|
|
846
|
+
onChange?: (files: File[]) => void;
|
|
847
|
+
/** Permite selecionar mais de um arquivo. Padrão: true. */
|
|
848
|
+
multiple?: boolean;
|
|
849
|
+
/** Valor repassado ao input nativo. */
|
|
850
|
+
accept?: string;
|
|
851
|
+
/** Lista de MIME types aceitos para validação em JavaScript. */
|
|
852
|
+
allowedTypes?: string[];
|
|
853
|
+
/** Tamanho máximo por arquivo, em bytes. */
|
|
854
|
+
maxSize?: number;
|
|
855
|
+
disabled?: boolean;
|
|
856
|
+
/** Indica que uma operação externa está em andamento. */
|
|
857
|
+
isLoading?: boolean;
|
|
858
|
+
/** Rótulo exibido no botão de seleção. */
|
|
859
|
+
buttonLabel?: string;
|
|
860
|
+
/** Texto de apoio abaixo do botão. */
|
|
861
|
+
hint?: React$1.ReactNode;
|
|
862
|
+
/** Ícone exibido no botão. */
|
|
863
|
+
icon?: React$1.ReactNode;
|
|
864
|
+
/** Chamado quando um ou mais arquivos são rejeitados. */
|
|
865
|
+
onReject?: (rejections: FileRejection[]) => void;
|
|
866
|
+
/** Exibe a lista de arquivos selecionados abaixo do botão. */
|
|
867
|
+
showList?: boolean;
|
|
868
|
+
/** Personaliza o título da lista de pendentes. */
|
|
869
|
+
listTitle?: (count: number) => React$1.ReactNode;
|
|
870
|
+
buttonClassName?: string;
|
|
871
|
+
listClassName?: string;
|
|
872
|
+
}
|
|
873
|
+
declare const FileUpload: React$1.ForwardRefExoticComponent<FileUploadProps & React$1.RefAttributes<HTMLInputElement>>;
|
|
874
|
+
|
|
875
|
+
interface FileListItem {
|
|
876
|
+
/** Chave estável do item. */
|
|
877
|
+
id: string;
|
|
878
|
+
/** Nome do arquivo exibido para o usuário. */
|
|
879
|
+
name: string;
|
|
880
|
+
/** Tamanho em bytes, quando disponível. */
|
|
881
|
+
size?: number;
|
|
882
|
+
/** Linha secundária de metadados. */
|
|
883
|
+
meta?: React$1.ReactNode;
|
|
884
|
+
/** Descrição opcional exibida abaixo dos metadados. */
|
|
885
|
+
description?: React$1.ReactNode;
|
|
886
|
+
/** Indica que o item representa um arquivo ainda não persistido. */
|
|
887
|
+
status?: "pending" | "persisted";
|
|
888
|
+
disabled?: boolean;
|
|
889
|
+
}
|
|
890
|
+
interface FileListProps extends React$1.HTMLAttributes<HTMLUListElement> {
|
|
891
|
+
items: FileListItem[];
|
|
892
|
+
onRemove?: (item: FileListItem, index: number) => void;
|
|
893
|
+
onDownload?: (item: FileListItem, index: number) => void;
|
|
894
|
+
disabled?: boolean;
|
|
895
|
+
variant?: "bordered" | "plain";
|
|
896
|
+
emptyState?: React$1.ReactNode;
|
|
897
|
+
removeLabel?: string;
|
|
898
|
+
}
|
|
899
|
+
declare function FileList({ items, onRemove, onDownload, disabled, variant, emptyState, removeLabel, className, ...props }: FileListProps): react_jsx_runtime.JSX.Element | null;
|
|
900
|
+
|
|
901
|
+
declare const MESES_PT_BR: readonly ["Janeiro", "Fevereiro", "Março", "Abril", "Maio", "Junho", "Julho", "Agosto", "Setembro", "Outubro", "Novembro", "Dezembro"];
|
|
902
|
+
declare const MESES_PT_BR_ABREV: readonly ["JAN", "FEV", "MAR", "ABR", "MAI", "JUN", "JUL", "AGO", "SET", "OUT", "NOV", "DEZ"];
|
|
903
|
+
declare const DIAS_SEMANA_PT_BR: readonly ["DOM", "SEG", "TER", "QUA", "QUI", "SEX", "SÁB"];
|
|
904
|
+
/** Formata uma Date como `yyyy-MM-dd` no horário local. */
|
|
905
|
+
declare function toDateKey(date: Date): string;
|
|
906
|
+
/** Normaliza uma Date para o meio-dia do dia local (evita deslocamento de fuso). */
|
|
907
|
+
declare function toLocalNoon(date: Date): Date;
|
|
908
|
+
declare function isSameDay(a: Date, b: Date): boolean;
|
|
909
|
+
declare function isToday(date: Date): boolean;
|
|
910
|
+
interface MonthDay {
|
|
911
|
+
/** Dia ao meio-dia local. */
|
|
912
|
+
date: Date;
|
|
913
|
+
number: number;
|
|
914
|
+
/** Chave `yyyy-MM-dd` do dia. */
|
|
915
|
+
dateKey: string;
|
|
916
|
+
isToday: boolean;
|
|
917
|
+
isSelected: boolean;
|
|
918
|
+
hasItems: boolean;
|
|
919
|
+
}
|
|
920
|
+
/**
|
|
921
|
+
* Monta a grade de dias de um mês a partir de domingo.
|
|
922
|
+
* Células `null` no início representam o deslocamento do primeiro dia da semana.
|
|
923
|
+
*/
|
|
924
|
+
declare function buildMonthDays(month: Date, selectedDate?: Date | null, hasItems?: (date: Date) => boolean): (MonthDay | null)[];
|
|
925
|
+
/** Formata um mês como "Setembro 2026". */
|
|
926
|
+
declare function formatMonthYear(date: Date): string;
|
|
927
|
+
/** Rótulo completo de um dia para leitores de tela, ex.: "quinta-feira, 27 de agosto de 2026". */
|
|
928
|
+
declare function formatDayAriaLabel(date: Date): string;
|
|
929
|
+
|
|
930
|
+
interface MiniMonthCalendarDay extends MonthDay {
|
|
931
|
+
}
|
|
932
|
+
interface MiniMonthCalendarProps {
|
|
933
|
+
/** Mês exibido (controlado). Ausente ou vazio usa o mês atual. */
|
|
934
|
+
month?: Date;
|
|
935
|
+
/** Chamado ao navegar para outro mês. */
|
|
936
|
+
onMonthChange?: (month: Date) => void;
|
|
937
|
+
/** Data selecionada (controlada). */
|
|
938
|
+
selectedDate?: Date | null;
|
|
939
|
+
/** Chamado ao clicar em um dia. */
|
|
940
|
+
onSelectDate?: (date: Date) => void;
|
|
941
|
+
/** Indica se o dia tem itens — mostra um ponto indicador abaixo do número. */
|
|
942
|
+
hasItems?: (date: Date) => boolean;
|
|
943
|
+
/** Substitui o conteúdo interno de cada célula de dia. */
|
|
944
|
+
renderDay?: (day: MiniMonthCalendarDay) => React$1.ReactNode;
|
|
945
|
+
/** Cabeçalho dos dias da semana. Padrão: DOM..SÁB. */
|
|
946
|
+
weekDays?: readonly string[];
|
|
947
|
+
/** Texto do título do mês. Padrão: formatMonthYear. */
|
|
948
|
+
monthLabel?: (month: Date) => string;
|
|
949
|
+
previousLabel?: string;
|
|
950
|
+
nextLabel?: string;
|
|
951
|
+
className?: string;
|
|
952
|
+
}
|
|
953
|
+
declare function MiniMonthCalendar({ month: monthProp, onMonthChange, selectedDate, onSelectDate, hasItems, renderDay, weekDays, monthLabel, previousLabel, nextLabel, className, }: MiniMonthCalendarProps): react_jsx_runtime.JSX.Element;
|
|
954
|
+
|
|
955
|
+
interface MonthYearPickerProps {
|
|
956
|
+
/** Mês/ano atual (controlado). */
|
|
957
|
+
value: Date;
|
|
958
|
+
onChange: (date: Date) => void;
|
|
959
|
+
disabled?: boolean;
|
|
960
|
+
/** Texto do trigger. Padrão: formatMonthYear. */
|
|
961
|
+
triggerLabel?: (value: Date) => string;
|
|
962
|
+
previousYearLabel?: string;
|
|
963
|
+
nextYearLabel?: string;
|
|
964
|
+
className?: string;
|
|
965
|
+
triggerClassName?: string;
|
|
966
|
+
contentClassName?: string;
|
|
967
|
+
}
|
|
968
|
+
declare function MonthYearPicker({ value, onChange, disabled, triggerLabel, previousYearLabel, nextYearLabel, className, triggerClassName, contentClassName, }: MonthYearPickerProps): react_jsx_runtime.JSX.Element;
|
|
969
|
+
|
|
970
|
+
interface PeriodRange {
|
|
971
|
+
/** Identificador estável para React (gerado se ausente) */
|
|
972
|
+
id?: string;
|
|
973
|
+
start: string;
|
|
974
|
+
end: string;
|
|
975
|
+
}
|
|
976
|
+
type PeriodRangeInputType = "datetime-local" | "date";
|
|
977
|
+
interface PeriodRangeListLabels {
|
|
978
|
+
start?: string;
|
|
979
|
+
end?: string;
|
|
980
|
+
add?: string;
|
|
981
|
+
empty?: string;
|
|
982
|
+
startColumn?: string;
|
|
983
|
+
endColumn?: string;
|
|
984
|
+
actionsColumn?: string;
|
|
985
|
+
}
|
|
986
|
+
interface PeriodRangeListValidateOptions {
|
|
987
|
+
endAfterStart?: boolean;
|
|
988
|
+
noDuplicates?: boolean;
|
|
989
|
+
minItems?: number;
|
|
990
|
+
}
|
|
991
|
+
interface PeriodRangeListProps {
|
|
992
|
+
value?: PeriodRange[];
|
|
993
|
+
onChange?: (periods: PeriodRange[]) => void;
|
|
994
|
+
inputType?: PeriodRangeInputType;
|
|
995
|
+
labels?: PeriodRangeListLabels;
|
|
996
|
+
readOnly?: boolean;
|
|
997
|
+
disabled?: boolean;
|
|
998
|
+
required?: boolean;
|
|
999
|
+
error?: string;
|
|
1000
|
+
validate?: PeriodRangeListValidateOptions;
|
|
1001
|
+
className?: string;
|
|
1002
|
+
}
|
|
1003
|
+
declare function PeriodRangeList({ value, onChange, inputType, labels: labelsProp, readOnly, disabled, required, error, validate, className, }: PeriodRangeListProps): react_jsx_runtime.JSX.Element;
|
|
1004
|
+
/** Alias explícito para formulários só com data */
|
|
1005
|
+
declare const DateTimeRangeList: typeof PeriodRangeList;
|
|
1006
|
+
|
|
1007
|
+
type StatusNotificacao = "PENDENTE" | "AGENDADO" | "ENVIADO" | "PROCESSADO" | "FALHOU" | "CANCELADO" | "CONCLUIDO";
|
|
1008
|
+
type StatusLeitura = "NAO_LIDO" | "ENTREGUE" | "LIDO";
|
|
1009
|
+
/** Registro devolvido por `GET {baseUrl}/notificacoes`. */
|
|
1010
|
+
interface Notificacao {
|
|
1011
|
+
id: string | number;
|
|
1012
|
+
sistema: string;
|
|
1013
|
+
titulo: string;
|
|
1014
|
+
mensagem?: string | null;
|
|
1015
|
+
dataReferencia: string;
|
|
1016
|
+
destinatarioEmail?: string | null;
|
|
1017
|
+
status: StatusNotificacao;
|
|
1018
|
+
statusLeitura: StatusLeitura;
|
|
1019
|
+
metadados?: Record<string, unknown> | null;
|
|
1020
|
+
lembrarNoDia?: boolean;
|
|
1021
|
+
diasAntes?: number | null;
|
|
1022
|
+
alertasDiasAntes?: number[] | null;
|
|
1023
|
+
dataLembrete?: string | null;
|
|
1024
|
+
disparado?: boolean;
|
|
1025
|
+
criadoEm?: string | null;
|
|
1026
|
+
criadoPor?: string | null;
|
|
1027
|
+
disparadoEm?: string | null;
|
|
1028
|
+
entregueEm?: string | null;
|
|
1029
|
+
lidoEm?: string | null;
|
|
1030
|
+
canceladoEm?: string | null;
|
|
1031
|
+
concluidoEm?: string | null;
|
|
1032
|
+
motivoCancelamento?: string | null;
|
|
1033
|
+
}
|
|
1034
|
+
interface HeaderNotificationItem {
|
|
1035
|
+
/** Identificador único. Usado como `key` da lista. */
|
|
1036
|
+
id: string | number;
|
|
1037
|
+
/** Título da notificação. */
|
|
1038
|
+
title: string;
|
|
1039
|
+
/** Texto complementar, limitado a duas linhas. */
|
|
1040
|
+
message?: string;
|
|
1041
|
+
/** Data já formatada, ex.: "há 5 minutos". */
|
|
1042
|
+
date?: string;
|
|
1043
|
+
/** Quando `false` ou ausente, o item conta no badge e fica destacado. */
|
|
1044
|
+
read?: boolean;
|
|
1045
|
+
/** Destino sugerido, para a aplicação usar no `onSelect`. Não navega sozinho. */
|
|
1046
|
+
href?: string;
|
|
1047
|
+
}
|
|
1048
|
+
interface HeaderNotificationsBaseProps {
|
|
1049
|
+
/** Quantidade de skeletons durante o loading. @defaultValue 3 */
|
|
1050
|
+
skeletonCount?: number;
|
|
1051
|
+
/** Título do painel. @defaultValue "Notificações" */
|
|
1052
|
+
title?: string;
|
|
1053
|
+
/** Mensagem do estado vazio. @defaultValue "Nenhuma notificação" */
|
|
1054
|
+
emptyMessage?: string;
|
|
1055
|
+
/** A partir deste valor o badge exibe "N+". @defaultValue 9 */
|
|
1056
|
+
maxCount?: number;
|
|
1057
|
+
/**
|
|
1058
|
+
* Ação extra no clique, além de marcar como lida. Só com ela o painel fecha
|
|
1059
|
+
* e só com ela há navegação — o componente nunca navega por conta própria.
|
|
1060
|
+
* Use `item.href`, preenchido por `getHref`, para decidir o destino.
|
|
1061
|
+
*/
|
|
1062
|
+
onSelect?: (item: HeaderNotificationItem) => void;
|
|
1063
|
+
/** Clique em uma notificação não lida, chamada antes de `onSelect`. */
|
|
1064
|
+
onMarkAsRead?: (item: HeaderNotificationItem) => void;
|
|
1065
|
+
/**
|
|
1066
|
+
* Habilita o botão de marcar como não lida em cada item. No modo conectado o
|
|
1067
|
+
* componente já faz a chamada; aqui a aplicação só é avisada.
|
|
1068
|
+
*/
|
|
1069
|
+
onMarkAsUnread?: (item: HeaderNotificationItem) => void;
|
|
1070
|
+
/**
|
|
1071
|
+
* Habilita a lixeira em cada item. No modo conectado o componente já exclui
|
|
1072
|
+
* na API; aqui a aplicação só é avisada. **A exclusão é definitiva.**
|
|
1073
|
+
*/
|
|
1074
|
+
onDelete?: (item: HeaderNotificationItem) => void;
|
|
1075
|
+
/** "Marcar todas como lidas", exibida só quando há não lidas. */
|
|
1076
|
+
onMarkAllAsRead?: () => void;
|
|
1077
|
+
/** Abertura e fechamento do painel. */
|
|
1078
|
+
onOpenChange?: (open: boolean) => void;
|
|
1079
|
+
/** Rodapé customizado. Substitui os botões padrão do rodapé. */
|
|
1080
|
+
footer?: React$1.ReactNode;
|
|
1081
|
+
/** Alinhamento do painel em relação ao sino. @defaultValue "end" */
|
|
1082
|
+
align?: "start" | "center" | "end";
|
|
1083
|
+
/** Classes adicionais do botão do sino. */
|
|
1084
|
+
className?: string;
|
|
1085
|
+
/** Classes adicionais do painel. */
|
|
1086
|
+
contentClassName?: string;
|
|
1087
|
+
}
|
|
1088
|
+
/** Modo controlado: a aplicação busca e formata, o componente só exibe. */
|
|
1089
|
+
interface HeaderNotificationsControladoProps extends HeaderNotificationsBaseProps {
|
|
1090
|
+
/** Notificações exibidas no painel. */
|
|
1091
|
+
items?: HeaderNotificationItem[];
|
|
1092
|
+
/** Quando `true`, exibe skeletons no lugar da lista. */
|
|
1093
|
+
isLoading?: boolean;
|
|
1094
|
+
/** Contagem do badge. Quando omitida, é derivada de `items`. */
|
|
1095
|
+
unreadCount?: number;
|
|
1096
|
+
email?: never;
|
|
1097
|
+
sistema?: never;
|
|
1098
|
+
baseUrl?: never;
|
|
1099
|
+
getHref?: never;
|
|
1100
|
+
filtros?: never;
|
|
1101
|
+
intervaloAtualizacao?: never;
|
|
1102
|
+
limite?: never;
|
|
1103
|
+
onErro?: never;
|
|
1104
|
+
alertarLembretes?: never;
|
|
1105
|
+
tituloLembretes?: never;
|
|
1106
|
+
rotuloDispensarLembretes?: never;
|
|
1107
|
+
}
|
|
1108
|
+
/** Modo conectado: o componente busca no serviço de notificações sozinho. */
|
|
1109
|
+
interface HeaderNotificationsConectadoProps extends HeaderNotificationsBaseProps {
|
|
1110
|
+
/** E-mail do destinatário. Vira `?email=` no GET. */
|
|
1111
|
+
email: string;
|
|
1112
|
+
/** Identificador do sistema chamador, ex.: "gestao-demandas". */
|
|
1113
|
+
sistema: string;
|
|
1114
|
+
/**
|
|
1115
|
+
* Raiz da API já versionada, ex.: `https://.../v1`. Quando omitida, usa
|
|
1116
|
+
* `URL_PADRAO_NOTIFICACOES`, que aponta para o **ambiente de
|
|
1117
|
+
* desenvolvimento** — em produção passe explicitamente.
|
|
1118
|
+
*/
|
|
1119
|
+
baseUrl?: string;
|
|
1120
|
+
/**
|
|
1121
|
+
* Preenche `item.href` a partir de `metadados`. **Não navega sozinho** — só
|
|
1122
|
+
* serve para o `onSelect` da aplicação saber para onde ir. Sem `onSelect`, o
|
|
1123
|
+
* clique apenas marca como lida.
|
|
1124
|
+
*/
|
|
1125
|
+
getHref?: (notificacao: Notificacao) => string | undefined;
|
|
1126
|
+
/** Filtros de metadado enviados na query, ex.: `{ demandaId: "123" }`. */
|
|
1127
|
+
filtros?: Record<string, string>;
|
|
1128
|
+
/** Intervalo do polling em ms. `0` desliga. @defaultValue 60000 */
|
|
1129
|
+
intervaloAtualizacao?: number;
|
|
1130
|
+
/** Corte client-side — a API não pagina. @defaultValue 20 */
|
|
1131
|
+
limite?: number;
|
|
1132
|
+
/** Recebe falhas de rede em vez de deixá-las silenciosas. */
|
|
1133
|
+
onErro?: (erro: Error) => void;
|
|
1134
|
+
/**
|
|
1135
|
+
* Abre um modal ao carregar quando existe lembrete vencido — notificação com
|
|
1136
|
+
* `lembrarNoDia` ligado e `dataLembrete` já vencido. Fechar o modal marca
|
|
1137
|
+
* esses lembretes como lidos. @defaultValue false
|
|
1138
|
+
*/
|
|
1139
|
+
alertarLembretes?: boolean;
|
|
1140
|
+
/** Título do modal de lembretes. Por padrão varia com a quantidade. */
|
|
1141
|
+
tituloLembretes?: string;
|
|
1142
|
+
/** Texto do botão que dispensa o modal. @defaultValue "Entendi" */
|
|
1143
|
+
rotuloDispensarLembretes?: string;
|
|
1144
|
+
items?: never;
|
|
1145
|
+
isLoading?: never;
|
|
1146
|
+
unreadCount?: never;
|
|
1147
|
+
}
|
|
1148
|
+
type HeaderNotificationsProps = HeaderNotificationsControladoProps | HeaderNotificationsConectadoProps;
|
|
1149
|
+
|
|
1150
|
+
/**
|
|
1151
|
+
* Usada quando `baseUrl` não é informada. Aponta para o ambiente de
|
|
1152
|
+
* desenvolvimento — em produção passe a prop explicitamente, senão a aplicação
|
|
1153
|
+
* lê e grava no dev.
|
|
1154
|
+
*/
|
|
1155
|
+
declare const URL_PADRAO_NOTIFICACOES = "https://dev-apinotificacoes-b5feekb4bdfyb7c2.eastus2-01.azurewebsites.net/v1";
|
|
1156
|
+
declare class ErroNotificacoes extends Error {
|
|
1157
|
+
readonly status?: number;
|
|
1158
|
+
constructor(mensagem: string, status?: number);
|
|
1159
|
+
}
|
|
1160
|
+
|
|
1161
|
+
/**
|
|
1162
|
+
* Sino de notificações do cabeçalho: badge de não lidas, painel com a lista,
|
|
1163
|
+
* estados de loading e vazio, marcar todas como lidas e atalho para a tela
|
|
1164
|
+
* completa.
|
|
1165
|
+
*
|
|
1166
|
+
* Opera em dois modos, mutuamente exclusivos pelo tipo:
|
|
1167
|
+
*
|
|
1168
|
+
* **Conectado** — recebe `email` e `sistema` e cuida sozinho de buscar,
|
|
1169
|
+
* formatar a data, filtrar o que já aconteceu e marcar como lida. `baseUrl` é
|
|
1170
|
+
* opcional e cai em `URL_PADRAO_NOTIFICACOES`, que aponta para o ambiente de
|
|
1171
|
+
* desenvolvimento — em produção passe a prop.
|
|
1172
|
+
*
|
|
1173
|
+
* **Controlado** — recebe `items` já prontos e devolve as interações por
|
|
1174
|
+
* callback, sem fazer nenhuma requisição.
|
|
1175
|
+
*
|
|
1176
|
+
* @example
|
|
1177
|
+
* <HeaderContainer
|
|
1178
|
+
* onOpenMenu={toggleSidebar}
|
|
1179
|
+
* isOpen={collapsed}
|
|
1180
|
+
* notifications={
|
|
1181
|
+
* <HeaderNotifications
|
|
1182
|
+
* email={sessao.user.email}
|
|
1183
|
+
* sistema="gestao-demandas"
|
|
1184
|
+
* getHref={(n) => `/demandas/${n.metadados?.demandaId}`}
|
|
1185
|
+
* onViewAll={() => router.push("/notificacoes")}
|
|
1186
|
+
* />
|
|
1187
|
+
* }
|
|
1188
|
+
* >
|
|
1189
|
+
* <HeaderProfileHeader user={usuario}>...</HeaderProfileHeader>
|
|
1190
|
+
* </HeaderContainer>
|
|
1191
|
+
*/
|
|
1192
|
+
declare function HeaderNotifications(props: HeaderNotificationsProps): react_jsx_runtime.JSX.Element;
|
|
1193
|
+
|
|
1194
|
+
export { AplicationsHeader, type AppInput, type AppItem, AppsMenu, type AppsMenuProps, Avatar, type AvatarProps, Badge, type BadgeSize, type BadgeVariant, Button, type ButtonProps, Card, CardContent, CardFooter, CardFooterItem, CardHeader, CardList, type CardListProps, Checkbox, type CheckboxProps, Collapsible, AnimatedCollapsibleContent as CollapsibleContent, CollapsibleTrigger, Combobox, type ComboboxFooterAction, type ComboboxFooterRenderContext, type ComboboxProps, Command, CommandDialog, CommandEmpty, CommandGroup, CommandInput, CommandItem, CommandList, CommandSeparator, CommandShortcut, ConfirmDialog, type ConfirmDialogProps, DIAS_SEMANA_PT_BR, DateTimeRangeList, Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, Drawer, DrawerBody, DrawerClose, DrawerContent, type DrawerContentProps, DrawerContext, type DrawerContextValue, DrawerDescription, DrawerFooter, DrawerHeader, DrawerOverlay, DrawerPortal, DrawerProvider, type DrawerProviderProps, DrawerTitle, DrawerTrigger, DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, EmptyState, type EmptyStateProps, ErroNotificacoes, FileList, type FileListItem, type FileListProps, type FileRejection, type FileRejectionReason, FileUpload, type FileUploadProps, Filter, type FilterField, type FilterFieldType, type FilterProps, type FilterValues, Header, HeaderContainer, type HeaderNotificationItem, HeaderNotifications, type HeaderNotificationsBaseProps, type HeaderNotificationsConectadoProps, type HeaderNotificationsControladoProps, type HeaderNotificationsProps, HeaderProfileHeader, HeaderProfileItem, type HeaderProps, Input, type InputProps, type ItemOption, LabelValue, type LabelValueProps, MESES_PT_BR, MESES_PT_BR_ABREV, MiniMonthCalendar, type MiniMonthCalendarDay, type MiniMonthCalendarProps, Modal, ModalEntidade, ModalMudancaEntidade, type ModalProps, type MonthDay, MonthYearPicker, type MonthYearPickerProps, MultiSelect, type MultiSelectOption, type MultiSelectProps, type Notificacao, PageHeader, PageHeaderActionsContainer, PageHeaderTitle, PageHeaderTitleContent, type PeriodRange, type PeriodRangeInputType, PeriodRangeList, type PeriodRangeListLabels, type PeriodRangeListProps, type PeriodRangeListValidateOptions, Popover, PopoverContent, PopoverTrigger, ResultMetadata, type ResultMetadataGender, type ResultMetadataProps, Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectPortal, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue, SelectViewport, Sidebar, SidebarContainer, type SidebarContainerProps, SidebarImageBrand, type SidebarImageBrandProps, SidebarNavCollapse, type SidebarNavCollapseProps, SidebarNavLink, type SidebarNavLinkProps, type SidebarProps, type StatusLeitura, type StatusNotificacao, Switch, type SwitchProps, Tabs, TabsContent, TabsList, TabsTrigger, Textarea, type TextareaProps, Title, Tooltip, type TooltipProps, URL_PADRAO_NOTIFICACOES, type ValidateFilesOptions, availableApps, buildMonthDays, buttonVariants, formatDayAriaLabel, formatFileSize, formatMonthYear, isSameDay, isToday, toDateKey, toLocalNoon, useDrawer, validateFiles };
|