UNPKG

ivt

Version:

Ivt Components Library

318 lines (302 loc) 14.6 kB
import * as react_jsx_runtime from 'react/jsx-runtime'; import React__default from 'react'; import { S as ShowSkeletonProps } from '../chunks/ShowSkeleton-enwVHCqE.js'; declare const ChildContainer: ({ children, className, }: { children: React__default.ReactNode; className?: string; }) => react_jsx_runtime.JSX.Element; declare const Container: ({ children, className, }: { children: React__default.ReactNode; className?: string; }) => 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 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; } interface CrudCreatePageProps { /** Propriedades de cabeçalho e metadados da página */ metadata: { /** Título da página (tag `<title>`) */ title: string; /** Título principal exibido no cabeçalho (Header) da página */ headerTitle: string; /** Descrição exibida abaixo do título no cabeçalho */ headerDescription: string; }; /** Ações e controles da página (ex: barra de ferramentas) */ actions: { /** Indica se há uma ação pendente (ex: salvando dados), desabilitando botões */ isPendingAction?: boolean; /** Referência para o formulário principal, usado para submissão via botão de ação do layout */ formRef: React__default.RefObject<HTMLFormElement | null>; /** Rótulo personalizado para a ação principal (opcional) */ actionLabel?: string; /** Elementos React adicionais para renderizar na área de ações (botões extras) */ actions?: React__default.ReactNode; }; /** Conteúdo principal da página (títulos, formulário, abas, etc.) */ content: { /** Título exibido no corpo da página (acima do formulário/conteúdo) */ pageTitle: string; /** Descrição exibida no corpo da página */ pageDescription: string; /** Elementos de abas (tabs) a serem exibidos */ tabs?: React__default.ReactNode; /** Informações extras a serem exibidas no corpo da página */ extraInfo?: React__default.ReactNode; /** O componente de formulário em si a ser renderizado */ form: React__default.ReactNode; /** Elementos filhos adicionais a serem renderizados */ children?: React__default.ReactNode; /** Classes CSS adicionais para o container principal da página */ pageClassName?: string; }; /** Configurações do menu de navegação e breadcrumbs (opcional) */ menu?: { /** Caminho (URL) atual para destacar o item ativo no menu */ currentPath: string; /** Lista de itens de configuração do menu */ menuItems: MenuItemConfig[]; /** Função de callback acionada ao navegar pelo menu */ onNavigate: (path: string) => void; }; /** Indica se a página está carregando os dados iniciais (exibe skeleton) */ isLoading?: boolean; } declare function CrudCreatePage({ metadata, actions, content, menu, isLoading, }: CrudCreatePageProps): react_jsx_runtime.JSX.Element; interface CrudEditPageProps { /** Propriedades de cabeçalho e metadados da página */ metadata: { /** Título da página (tag `<title>`) */ title: string; /** Título principal exibido no cabeçalho (Header) da página */ headerTitle: string; /** Descrição exibida abaixo do título no cabeçalho */ headerDescription: string; }; /** Ações e controles da página (ex: salvar, excluir) */ actions: { /** Indica se há uma ação pendente (ex: salvando ou excluindo dados), desabilitando botões */ isPendingAction?: boolean; /** Referência para o formulário principal, usado para submissão via botão de ação do layout */ formRef: React__default.RefObject<HTMLFormElement | null>; /** ID numérico da entidade atual sendo editada (se null, assume-se que não foi encontrada) */ entityId?: number | null; /** Função de callback acionada ao confirmar a exclusão do registro */ onDelete?: (id: number) => void; /** Título da modal de confirmação de exclusão */ titleModal?: string; /** Descrição da modal de confirmação de exclusão */ descriptionModal?: string; /** Elementos React adicionais para renderizar na área de ações (botões extras) */ customActions?: React__default.ReactNode; }; /** Conteúdo principal da página (títulos, formulário, abas, etc.) */ content: { /** Título exibido no corpo da página (acima do formulário/conteúdo) */ pageTitle: string; /** Descrição exibida no corpo da página */ pageDescription: string; /** Elementos de abas (tabs) a serem exibidos */ tabs?: React__default.ReactNode; /** Informações extras a serem exibidas no corpo da página */ extraInfo?: React__default.ReactNode; /** O componente de formulário em si a ser renderizado */ form: React__default.ReactNode; /** Elementos filhos adicionais a serem renderizados */ children?: React__default.ReactNode; /** Classes CSS adicionais para o wrapper principal de listagem do page content */ pageClassName?: string; /** Título exibido quando o registro não é encontrado (`entityId` ausente) */ notFoundTitle?: string; /** Descrição exibida quando o registro não é encontrado (`entityId` ausente) */ notFoundDescription?: string; }; /** Configurações do menu de navegação e breadcrumbs (opcional) */ menu?: { /** Caminho (URL) atual para destacar o item ativo no menu */ currentPath: string; /** Lista de itens de configuração do menu */ menuItems: MenuItemConfig[]; /** Função de callback acionada ao navegar pelo menu */ onNavigate: (path: string) => void; }; /** Indica se os dados do registro ainda estão sendo carregados (exibe skeleton caso sim) */ isLoading?: boolean; } declare function CrudEditPage({ metadata, actions, content, menu, isLoading }: CrudEditPageProps): react_jsx_runtime.JSX.Element; interface CrudListPageProps { /** Propriedades de cabeçalho e metadados da página */ metadata: { /** Título da página web (inserido na tag `<title>`) */ pageTitle: string; /** Título principal exibido no cabeçalho (Header) da aplicação */ headerTitle: string; /** Descrição exibida abaixo do título no cabeçalho */ headerDescription?: string; }; /** Ações e componentes no topo da tabela / barra de ferramentas */ actions: { /** Define se a tabela está em carregamento (desabilita navegação e ações) */ isLoadingTable?: boolean; /** Botões ou elementos de ação (ex: botão de Criar, Exportar) a renderizar ao lado direito */ actions?: React__default.ReactNode; /** Componente da área de importação, posicionado logo abaixo da barra de ações */ importArea?: React__default.ReactNode; }; /** Conteúdo principal da listagem (filtros, tabelas, etc.) */ content: { /** O conteúdo que compõe a página (normalmente o componente DataTable e seus contêineres e filtros) */ children: React__default.ReactNode; }; /** Configurações do menu de navegação superior/lateral (opcional) */ menu?: { /** Caminho atual da rota, usado para identificar a aba/menu ativo */ currentPath: string; /** Estrutura que mapeia as opções / abas de navegação do menu */ menuItems: MenuItemConfig[]; /** Função chamada quando o usuário clica em algum dos itens de menu */ onNavigate: (path: string) => void; }; } declare function CrudListPage({ metadata, actions, content, menu }: CrudListPageProps): react_jsx_runtime.JSX.Element; interface CrudShowPageProps<TId extends string | number = string | number> { /** Propriedades de cabeçalho e metadados da página */ metadata: { /** Título da página (tag `<title>`) */ title: string; /** Título principal exibido no cabeçalho (Header) da página */ headerTitle: string; /** Descrição exibida abaixo do título no cabeçalho */ headerDescription: string; }; /** Ações e controles de registro na visualização (ex: editar, excluir) */ actions: { /** Indica se há uma ação pendente ativada, desabilitando a maioria dos cliques em botões de ação */ isPendingAction?: boolean; /** ID do registro a ser visualizado. Se omitido/nulo, a página exibirá estado de Not Found */ entityId?: TId | null | undefined; /** Função de callback acionada na exclusão do registro */ onDelete?: (id: TId) => void; /** Função de callback acionada ao solicitar edição (navega/abre modal de edição) */ onEdit?: (id: TId) => void; /** Título da modal de expurgação do registro (confirmação da deleção) */ titleModal?: string; /** Descrição informativa que aparece na modal de expurgação do registro */ descriptionModal?: string; /** Bôtões/Links extras que você deseja incorporar diretamente na barra de menus, substituindo os actions padrão se os providos não atenderem (código arbitrário de barra de ferramentas) */ customActions?: React__default.ReactNode; }; /** Conteúdo e estados principais para visualização */ content: { /** Componente customizado Skeleton exibido durante carregamento (substitui inteiramente o Skeleton padrão da lib) */ skeleton?: React__default.ReactNode; /** Propriedades que parametrizam o componente integrado ShowSkeleton do ivt-lib caso você não informe seu próprio skeleton na prop acima. */ skeletonProps?: ShowSkeletonProps; /** Título do componente `ShowNotFound` exibido se não encontrado nenhum entityId ou o registro estiver faltando */ notFoundTitle: string; /** Descrição para detalhar o tipo de NotFound (`Registro xyz requisitado na url... não encontrado`) */ notFoundDescription: string; /** Cabeçalho interno informando a aba ativa (Visualização dos Detalhes, etc) a sobre o form-group */ pageTitle: string; /** Breve descrição interna contextualizando os campos detalhados exibidos pelo ShowPage */ pageDescription: string; /** Área opcional alinhada no corpo da página para componentes soltos/parágrafos extras antes dos child nodes principais (Detalhes do registro) */ extraInfo?: React__default.ReactNode; /** Conteúdo minucioso renderizado (os detalhes dos campos da View/Registro) */ children?: React__default.ReactNode; }; /** Configurações de seções de menus/rotas para a Entidade corrente (opcional) */ menu?: { /** Caminho base ativado sublinhado entre navegações do MenuBar */ currentPath: string; /** As demais aberturas tabuladas por url configurados no header/menubar local. Array limitando acesso e seções do menu */ menuItems: MenuItemConfig[]; /** Dispara ação de clique num tablink de seções paralelas contiguas para tal entidade */ onNavigate: (path: string) => void; }; /** Define se a tela carrega do backend seus dados; O Skeleton fará a cobertura visual caso true */ isLoading?: boolean; } declare function CrudShowPage<TId extends string | number = string | number>({ metadata, actions, content, menu, isLoading, }: CrudShowPageProps<TId>): react_jsx_runtime.JSX.Element; interface LayoutActionsProps { children: React__default.ReactNode; className?: string; } declare function LayoutActions({ children, className }: LayoutActionsProps): react_jsx_runtime.JSX.Element; interface ListItemProps { title: string; value: any; linkHref?: string; isBoolean?: boolean; className?: string; hasTooltip?: boolean; tooltipContent?: React__default.ReactNode; } declare const ListItem: React__default.FC<ListItemProps>; interface PageComponentProps { title: string; description: string; children?: React__default.ReactNode; extraInfo?: React__default.ReactNode; extraDescription?: React__default.ReactNode; tabs?: React__default.ReactNode; form?: React__default.ReactNode; className?: string; classNames?: { container?: string; childContainer?: string; sectionInfo?: string; contentWrapper?: string; tabsWrapper?: string; }; } declare const PageComponent: React__default.FC<PageComponentProps>; interface SectionInfoProps { title?: string; description?: string; className?: string; extraDescription?: React__default.ReactNode; } declare const SectionInfo: React__default.FC<SectionInfoProps>; interface ShowDetailsItem extends ListItemProps { isVisible?: boolean; } interface ShowDetailsProps extends React__default.HTMLAttributes<HTMLElement> { items?: ShowDetailsItem[]; stepNavigator?: StepNavigatorProps; } declare const ShowDetails: React__default.FC<ShowDetailsProps>; interface ShowNotFoundProps { title: string; description: string; } declare const ShowNotFound: React__default.FC<ShowNotFoundProps>; export { ChildContainer, Container, CrudCreatePage, CrudEditPage, CrudListPage, CrudShowPage, LayoutActions, ListItem, PageComponent, SectionInfo, ShowDetails, ShowNotFound }; export type { CrudCreatePageProps, CrudEditPageProps, CrudListPageProps, CrudShowPageProps, LayoutActionsProps, ListItemProps, PageComponentProps, ShowDetailsItem, ShowDetailsProps };