UNPKG

ivt

Version:

Ivt Components Library

399 lines (376 loc) 15.9 kB
import * as react_jsx_runtime from 'react/jsx-runtime'; import * as React from 'react'; import React__default, { ReactNode } from 'react'; import * as class_variance_authority_types from 'class-variance-authority/types'; import { VariantProps } from 'class-variance-authority'; import { DayPicker, DateRange, Matcher } from 'react-day-picker'; import * as PopoverPrimitive from '@radix-ui/react-popover'; export { a as GenericTabs, G as GenericTabsProps, T as TabConfig } from '../chunks/GenericTabs-B6Sm4mwD.js'; type AlertFutureDateProps = { title?: string; description?: string; icon?: React__default.ReactNode; variant?: "default" | "destructive" | "warning"; className?: string; }; declare function AlertFutureDate({ title, description, icon, variant, className, }: AlertFutureDateProps): react_jsx_runtime.JSX.Element; interface AutoCompleteProps<T> { value: T | null; onChange: (value: T | null) => void; placeholder?: string; searchPlaceholder?: string; open: boolean; onOpenChange: (open: boolean) => void; disabled?: boolean; messageEmpty?: string; fetchOptions: (term: string) => Promise<T[]>; getOptionLabel: (option: T) => string; getOptionKey: (option: T) => string | number; onSelect?: (option: T) => void; className?: string; clearable?: boolean; label?: string | React__default.ReactNode; description?: string; id?: string; } declare function AutoComplete<T>({ value, onChange, placeholder, searchPlaceholder, open, onOpenChange, disabled, messageEmpty, fetchOptions, getOptionLabel, getOptionKey, onSelect, className, clearable, label, description, id, }: AutoCompleteProps<T>): react_jsx_runtime.JSX.Element; type BadgeVariants = VariantProps<typeof badgeVariants>["variant"]; interface BadgeProps extends React__default.HTMLAttributes<HTMLDivElement>, VariantProps<typeof badgeVariants> { } declare const badgeVariants: (props?: ({ variant?: "default" | "secondary" | "destructive" | "positive" | "warning" | "info" | "outline" | null | undefined; subtle?: boolean | null | undefined; } & class_variance_authority_types.ClassProp) | undefined) => string; interface BadgeListLimitedProps { items: string[]; maxVisible?: number; variant?: BadgeVariants; subtle?: boolean; tooltipItems?: string[]; } /** * Componente que exibe uma lista de Badges com limite de itens visíveis. * Se houver mais itens do que o limite, exibe um Badge adicional com "+N". * * @param items - Array de strings para exibir como Badges * @param maxVisible - Número máximo de Badges visíveis (padrão: 3) * @param variant - Variante do Badge (padrão: "default") * @param subtle - Se o Badge deve ter estilo sutil (padrão: true) * @param tooltipItems - Array de strings para exibir no tooltip (opcional). Se fornecido, exibe todos os itens no tooltip, cada um em uma linha. */ declare const BadgeListLimited: React__default.FC<BadgeListLimitedProps>; declare const buttonVariants: (props?: ({ variant?: "default" | "secondary" | "destructive" | "outline" | "selection" | "upload" | "ghost" | "link" | "table" | null | undefined; size?: "default" | "sm" | "lg" | "icon" | "normal" | "icon-sm" | "icon-lg" | null | undefined; } & class_variance_authority_types.ClassProp) | undefined) => string; interface ButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement>, VariantProps<typeof buttonVariants> { asChild?: boolean; isAction?: boolean; subtle?: boolean; } declare const Button: React.ForwardRefExoticComponent<ButtonProps & React.RefAttributes<HTMLButtonElement>>; declare function Calendar({ className, classNames, showOutsideDays, captionLayout, buttonVariant, formatters, components, fromYear, toYear, ...props }: React.ComponentProps<typeof DayPicker> & { buttonVariant?: React.ComponentProps<typeof Button>["variant"]; }): react_jsx_runtime.JSX.Element; declare function Popover({ ...props }: React__default.ComponentProps<typeof PopoverPrimitive.Root>): react_jsx_runtime.JSX.Element; declare function normalizeDate(date: Date): string; interface CalendarPopoverProps extends Omit<React__default.ComponentProps<typeof Calendar>, "mode" | "selected" | "onSelect"> { /** Data selecionada (pode ser Date ou string parseável) */ date: Date | string | undefined | null; /** Função chamada ao selecionar uma data */ setDate: (date: Date | undefined) => void; /** Texto exibido quando não há data selecionada */ placeholder?: string; /** ID opcional do botão */ id?: string; /** Props extras para o botão */ buttonProps?: ButtonProps; /** Props extras para o popover */ popoverProps?: React__default.ComponentProps<typeof Popover>; /** Classe extra para o conteúdo do popover */ popoverContentClassName?: string; /** Classe extra para o botão */ className?: string; /** * Permite desabilitar datas específicas (igual ao Calendar do shadcn) * Pode ser um boolean, ou uma função que recebe a data e retorna boolean */ disabled?: boolean | ((date: Date) => boolean); /** * Exibe o estado de carregamento geral do componente * Quando true, mostra o ícone de loading e desabilita a interação */ isLoading?: boolean; /** * Exibe o estado de carregamento específico da tabela (caso exista) * Quando true, impede a seleção de datas no calendário */ isLoadingTable?: boolean; /** * Define um conjunto de datas desabilitadas (formato 'yyyy-MM-dd') * Cada data presente neste Set será bloqueada na seleção do calendário */ disabledDates?: Set<string>; /** * Mês padrão a ser mostrado (caso nenhuma data esteja selecionada) * Por padrão, será o mês atual. */ defaultMonth?: Date; /** * Se true, desabilita datas futuras. * @default true */ disableFuture?: boolean; /** * Se true, desabilita fins de semana. * @default true */ disableWeekends?: boolean; /** * Define se o botão de limpar (X) a data deve ser exibido. * @default true */ clearable?: boolean; } declare const CalendarPopover: React__default.FC<CalendarPopoverProps>; interface CalendarRangeProps extends Omit<React.ComponentProps<typeof Calendar>, "mode" | "selected" | "onSelect" | "disabled"> { /** Intervalo de datas selecionado (com `from` e `to`) */ value: DateRange | null | undefined; /** Função chamada ao alterar o intervalo de datas selecionado */ onChange: (range: DateRange | null | undefined) => void; /** Texto exibido quando não há intervalo selecionado */ placeholder?: string; /** ID opcional do botão */ id?: string; /** Props extras para o botão */ buttonProps?: ButtonProps; /** Props extras para o popover */ popoverProps?: React.ComponentProps<typeof Popover>; /** Classe extra para o conteúdo do popover */ popoverContentClassName?: string; /** Classe extra para o botão */ className?: string; /** Desabilita o botão e impede a seleção de datas */ disabled?: Matcher | Matcher[] | boolean; /** Função para retornar mensagem de tooltip para datas desabilitadas */ disabledDateTooltip?: (date: Date) => string | undefined; /** * Mês padrão a ser mostrado (caso nenhuma data esteja selecionada) * Por padrão, será o mês atual. */ defaultMonth?: Date; /** Exibir opções de intervalos rápidos (Hoje, Esta Semana, etc) */ showQuickRanges?: boolean; /** Opções de intervalos rápidos personalizadas (substitui as padrão se fornecidas e showQuickRanges for true) */ quickRanges?: QuickRange[]; /** * Define se o botão de limpar (X) o intervalo deve ser exibido. * @default true */ clearable?: boolean; } interface QuickRange { label: string; getRange: () => DateRange; } declare function CalendarRange({ value, onChange, placeholder, id, buttonProps, popoverProps, popoverContentClassName, className, disabled, disabledDateTooltip, showQuickRanges, quickRanges, clearable, ...props }: CalendarRangeProps): react_jsx_runtime.JSX.Element; interface CellValuePercentageProps { value: number; prevDate?: string | null; date?: string | null; prevQuote?: number | null; quote?: number | null; className?: string; } declare function CellValuePercentage({ value, prevDate, date, prevQuote, quote, className, }: CellValuePercentageProps): React__default.JSX.Element; interface CollapsibleHelpProps { children?: React__default.ReactNode; content: React__default.ReactNode; title?: string; className?: string; label?: React__default.ReactNode; } /** * A simpler CollapsibleHelp component that uses a Popover for the help content. * It manages its own open state internally. * The trigger is provided as 'children', and the content to show is passed as the 'content' prop. * * Usage: * <CollapsibleHelp * content={<p>Help text goes here...</p>} * title="Help Section" * > * <button>Toggle Help</button> // This is your custom trigger * </CollapsibleHelp> */ declare function CollapsibleHelp({ children, content, title, className, label, }: CollapsibleHelpProps): react_jsx_runtime.JSX.Element; interface ConfirmSaveRowConfig { title: string; value: any; type: "text" | "badge-limited" | "custom"; badge?: { variant?: BadgeVariants; subtle?: boolean; maxVisible?: number; }; } interface ConfirmSaveProps { onSave: () => void; disabled?: boolean; dialogTitle?: string; dialogDescription?: string; actionTitle?: string; actionVariant?: ButtonProps["variant"]; children?: React__default.ReactNode; rows?: ConfirmSaveRowConfig[]; } declare function ConfirmSave({ onSave, disabled, dialogTitle, dialogDescription, actionTitle, children, rows, actionVariant, }: ConfirmSaveProps): react_jsx_runtime.JSX.Element; interface DeleteConfirmationModalProps { onConfirm: () => Promise<void> | void; title?: string; description?: string; confirmText?: string; cancelText?: string; disabled?: boolean; children?: React__default.ReactNode; /** * Ícone a ser exibido no botão de confirmação. * Se não fornecido, usa Trash2Icon por padrão. * Se for null, não exibe ícone. */ confirmIcon?: React__default.ComponentType<{ className?: string; }> | null; subtle?: boolean; } declare function DeleteConfirmationModal({ onConfirm, title, description, confirmText, cancelText, disabled, children, confirmIcon, subtle, }: DeleteConfirmationModalProps): react_jsx_runtime.JSX.Element; type MenuItemConfig = { value: string; label: string; path?: string; onClick?: () => void; subItems?: { label: string; onClick: () => void; }[]; /** Função customizada para determinar se o item está ativo */ isActive?: (pathname: string) => boolean; }; interface GenericHeadingMenubarProps { /** Configuração dos itens do menu */ menuItems: MenuItemConfig[]; /** Classes CSS adicionais para o container */ className?: string; /** Classes CSS adicionais para o Menubar */ classNameMenubar?: string; /** Classes CSS adicionais para o Trigger */ classNameTrigger?: string; /** Classes CSS adicionais para o Content (dropdown) */ classNameContent?: string; /** Classes CSS adicionais para os Itens do dropdown */ classNameItem?: string; /** Conteúdo adicional a ser renderizado ao lado do menu */ children?: React__default.ReactNode; /** Desabilita todos os itens do menu */ disabled?: boolean; /** Função customizada para determinar se um item está ativo (fallback) */ defaultIsActive?: (menuValue: string, pathname: string) => boolean; /** Caminho atual da rota (para highlight do ativo). Compatível com Next.js e React Router. */ currentPath?: string; /** Função executada ao solicitar navegação (ex: router.push ou navigate). */ onNavigate?: (path: string) => void; } /** * Componente genérico de menubar para navegação entre páginas. * Ajustado para ser agnóstico de framework (Next.js ou React puro). * * @example * ```tsx * // Exemplo com Next.js * const router = useRouter(); * const pathname = usePathname(); * * <GenericHeadingMenubar * menuItems={menuItems} * currentPath={pathname} * onNavigate={(path) => router.push(path)} * /> * ``` */ declare const GenericHeadingMenubar: React__default.FC<GenericHeadingMenubarProps>; interface ColumnConfig<T> { header: string; cell: (item: T) => React__default.ReactNode; className?: string; } interface GenericTableProps<T> { data: T[]; columns: ColumnConfig<T>[]; renderSeparator?: (index: number) => React__default.ReactNode; emptyMessage?: string; className?: string; keyExtractor?: (item: T, index: number) => string | number; } declare function GenericTable<T>({ data, columns, renderSeparator, emptyMessage, className, keyExtractor, }: GenericTableProps<T>): react_jsx_runtime.JSX.Element; interface HeaderProps { title: string; description: string; className?: string; classNameDescription?: string; children?: React__default.ReactNode; defaultValue?: string; defaultOpen?: boolean; menu?: React__default.ReactNode; } declare const Header: React__default.FC<HeaderProps>; interface HoverBadgeProps { title: string; description?: string; variant: BadgeProps["variant"]; className?: string; showTitleInDescription?: boolean; subtle?: boolean; } declare const HoverBadge: React__default.FC<HoverBadgeProps>; interface RuleFilterBuilderProps { fields: any[]; onRemove: (index: number) => void; onAdd: () => void; maxBlocks?: number; isPending?: boolean; instructionContent?: React__default.ReactNode; renderConnector?: (index: number) => React__default.ReactNode; renderItem: (index: number) => React__default.ReactNode; } declare function RuleFilterBuilder({ fields, onRemove, onAdd, maxBlocks, isPending, instructionContent, renderConnector, renderItem, }: RuleFilterBuilderProps): react_jsx_runtime.JSX.Element; interface StepNavigatorProps { /** Índice atual do passo */ currentIndex: number; /** Total de passos */ totalSteps: number; /** Ação ao clicar em "Anterior" */ onPrev: () => void; /** Ação ao clicar em "Próximo" */ onNext: () => void; /** Desabilita os botões (ex: loading) */ disabled?: boolean; /** Personalização opcional dos rótulos */ prevLabel?: string; nextLabel?: string; /** Controla se deve ocultar os botões ao chegar nas extremidades */ hideEdgeButtons?: boolean; className?: string; } declare const StepNavigator: React__default.FC<StepNavigatorProps>; interface TextWrapProps extends React__default.HTMLAttributes<HTMLDivElement> { children: React__default.ReactNode; } declare const TextWrap: React__default.FC<TextWrapProps>; interface TooltipIndicatorProps { children: ReactNode; className?: string; classNameIcon?: string; } declare const TooltipIndicator: ({ children, className, classNameIcon }: TooltipIndicatorProps) => react_jsx_runtime.JSX.Element; export { AlertFutureDate, AutoComplete, BadgeListLimited, CalendarPopover, CalendarRange, CellValuePercentage, CollapsibleHelp, ConfirmSave, DeleteConfirmationModal, GenericHeadingMenubar, GenericTable, Header, HoverBadge, RuleFilterBuilder, StepNavigator, TextWrap, TooltipIndicator, normalizeDate }; export type { AlertFutureDateProps, CalendarPopoverProps, CalendarRangeProps, ColumnConfig, ConfirmSaveRowConfig, DeleteConfirmationModalProps, GenericHeadingMenubarProps, GenericTableProps, MenuItemConfig, QuickRange, StepNavigatorProps };