@cnc-ti/layout-basic 8.8.2 → 9.0.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/index.d.mts CHANGED
@@ -1,7 +1,7 @@
1
1
  import * as class_variance_authority_dist_types from 'class-variance-authority/dist/types';
2
2
  import { VariantProps } from 'class-variance-authority';
3
3
  import * as React$1 from 'react';
4
- import React__default, { HTMLAttributes, ReactNode, PropsWithChildren, ReactElement, ComponentProps, SVGProps, ElementType } from 'react';
4
+ import React__default, { HTMLAttributes, ReactNode, PropsWithChildren, ComponentProps, ReactElement, SVGProps, ElementType } from 'react';
5
5
  import * as react_jsx_runtime from 'react/jsx-runtime';
6
6
  import * as DialogPrimitive from '@radix-ui/react-dialog';
7
7
  import { DialogProps } from '@radix-ui/react-dialog';
@@ -182,6 +182,89 @@ declare const DialogFooter: {
182
182
  declare const DialogTitle: React$1.ForwardRefExoticComponent<Omit<DialogPrimitive.DialogTitleProps & React$1.RefAttributes<HTMLHeadingElement>, "ref"> & React$1.RefAttributes<HTMLHeadingElement>>;
183
183
  declare const DialogDescription: React$1.ForwardRefExoticComponent<Omit<DialogPrimitive.DialogDescriptionProps & React$1.RefAttributes<HTMLParagraphElement>, "ref"> & React$1.RefAttributes<HTMLParagraphElement>>;
184
184
 
185
+ /**
186
+ * Estados possíveis da barra lateral.
187
+ *
188
+ * - `expanded` — largura total (280px no desktop, tela cheia no mobile), ícone + rótulo.
189
+ * - `mini` — largura reduzida (64px), somente ícones, rótulo exibido em tooltip.
190
+ * - `closed` — não renderizada. A reabertura é feita pelo botão de menu do `Header`.
191
+ */
192
+ type SidebarState = "expanded" | "mini" | "closed";
193
+ interface SidebarContextValue {
194
+ /** Estado atual da barra lateral. */
195
+ variant: SidebarState;
196
+ /** `true` quando a viewport está abaixo do breakpoint mobile. */
197
+ isMobile: boolean;
198
+ /**
199
+ * Solicita a mudança para outro estado. Encaminhado para o
200
+ * `onVariantChange` do `SidebarContainer`; sem ele, é um no-op.
201
+ */
202
+ requestState: (next: SidebarState) => void;
203
+ }
204
+ /**
205
+ * Acessa o estado da barra lateral a partir de qualquer subcomponente.
206
+ *
207
+ * Diferente do `useDrawer`, **não lança erro** fora do provider: devolve um
208
+ * estado expandido estático, preservando a compatibilidade com usos avulsos
209
+ * dos subcomponentes.
210
+ *
211
+ * @example
212
+ * const { variant, isMobile, requestState } = useSidebar();
213
+ * if (variant === "mini") { ... }
214
+ */
215
+ declare function useSidebar(): SidebarContextValue;
216
+
217
+ /** Breakpoint (px) abaixo do qual a barra lateral é tratada como mobile. */
218
+ declare const SIDEBAR_MOBILE_BREAKPOINT = 768;
219
+ interface UseSidebarBreakpointOptions {
220
+ /**
221
+ * Largura (px) abaixo da qual a barra lateral entra em modo mobile.
222
+ * @default 768
223
+ */
224
+ mobileBreakpoint?: number;
225
+ /**
226
+ * Estado inicial usado antes da primeira medição da viewport.
227
+ * Relevante em SSR, onde `window` não existe.
228
+ * @default "expanded"
229
+ */
230
+ defaultState?: SidebarState;
231
+ }
232
+ interface UseSidebarBreakpointResult {
233
+ /** `true` quando a viewport está abaixo de `mobileBreakpoint`. */
234
+ isMobile: boolean;
235
+ /**
236
+ * Estado sugerido para o breakpoint atual: `closed` no mobile,
237
+ * `expanded` no desktop. É uma sugestão — o consumidor decide se aplica.
238
+ */
239
+ suggested: SidebarState;
240
+ /**
241
+ * Próximo estado ao acionar o toggle, a partir de `current`.
242
+ *
243
+ * - Mobile: alterna `closed` ↔ `expanded` (não existe `mini`).
244
+ * - Desktop: alterna `expanded` ↔ `mini`.
245
+ */
246
+ getNextState: (current: SidebarState) => SidebarState;
247
+ }
248
+ /**
249
+ * Calcula o estado da barra lateral a partir da largura da viewport.
250
+ *
251
+ * Não controla nada sozinho: devolve o estado sugerido e a função de
252
+ * transição, cabendo ao consumidor aplicar (ou não). É o mesmo comportamento
253
+ * já validado em produção no gestão de eventos e no gestão de demandas.
254
+ *
255
+ * @example
256
+ * const [variant, setVariant] = useState<SidebarState>("expanded");
257
+ * const { isMobile, suggested, getNextState } = useSidebarBreakpoint();
258
+ *
259
+ * useEffect(() => setVariant(suggested), [suggested]);
260
+ *
261
+ * <SidebarContainer
262
+ * variant={variant}
263
+ * onVariantChange={setVariant}
264
+ * />
265
+ */
266
+ declare function useSidebarBreakpoint(options?: UseSidebarBreakpointOptions): UseSidebarBreakpointResult;
267
+
185
268
  /**
186
269
  * Propriedades para o componente SidebarContainer.
187
270
  *
@@ -190,31 +273,78 @@ declare const DialogDescription: React$1.ForwardRefExoticComponent<Omit<DialogPr
190
273
  interface SidebarContainerProps extends React__default.HTMLAttributes<HTMLDivElement> {
191
274
  /**
192
275
  * Indica se o sidebar está aberto ou fechado.
276
+ *
277
+ * @deprecated Desde a v9, use `variant`. Mantida para compatibilidade:
278
+ * `true` equivale a `"expanded"` e `false` a `"closed"`. Quando `variant`
279
+ * é informada, esta prop é ignorada.
193
280
  * @default true
194
281
  */
195
282
  isOpen?: boolean;
283
+ /**
284
+ * Estado visual da barra lateral. Tem precedência sobre `isOpen`.
285
+ * @default "expanded"
286
+ */
287
+ variant?: SidebarState;
288
+ /**
289
+ * Chamada quando um subcomponente solicita a mudança de estado — pelo botão
290
+ * de alternância do `SidebarImageBrand` ou pelo clique em um item de
291
+ * navegação no mobile. A barra lateral é controlada: cabe ao consumidor
292
+ * aplicar o novo estado.
293
+ */
294
+ onVariantChange?: (next: SidebarState) => void;
295
+ /**
296
+ * Largura (px) abaixo da qual a barra lateral é tratada como mobile.
297
+ * @default 768
298
+ */
299
+ mobileBreakpoint?: number;
196
300
  }
197
- declare function SidebarContainer({ isOpen, ...rest }: SidebarContainerProps): react_jsx_runtime.JSX.Element;
301
+ /**
302
+ * Container da barra lateral, responsável pela largura, pela transição entre
303
+ * estados e por prover o contexto consumido pelos demais subcomponentes.
304
+ *
305
+ * No estado `closed` **nada é renderizado** — a reabertura fica a cargo do
306
+ * botão de menu do `HeaderContainer`.
307
+ */
308
+ declare function SidebarContainer({ isOpen, variant, onVariantChange, mobileBreakpoint, className, style, children, ...rest }: SidebarContainerProps): react_jsx_runtime.JSX.Element;
198
309
  interface SidebarImageBrandProps extends PropsWithChildren {
199
- /** @param {boolean} [props.asChild=false] - Se `true`, e `children` for um elemento React válido, este será usado como logotipo. Se `img` também for fornecido, `img` terá precedência. Se `children` não for um elemento React válido, o comportamento padrão de exibir a imagem de `img` ou `children` como conteúdo será usado. */
310
+ /** @param {boolean} [props.asChild=false] - Se `true`, e `children` for um elemento React válido, este será usado como logotipo. Se `img` também for fornecido, `img` terá precedência. */
200
311
  asChild?: boolean;
201
- /** @param {{ src?: string; alt?: string }} [props.img] - Objeto com as propriedades `src` e `alt` da imagem, usado quando `asChild` é `false` ou quando `asChild` é `true` mas `children` não é um elemento React válido para ser usado como logotipo. */
312
+ /** @param {{ src?: string; alt?: string }} [props.img] - Objeto com as propriedades `src` e `alt` da imagem. */
202
313
  img?: {
203
314
  src?: string;
204
315
  alt?: string;
205
316
  };
206
- /** @param {ReactNode} [props.children] - Conteúdo personalizado ou elemento filho a ser exibido como logotipo quando `asChild` for `true` e `img` não for fornecido. Normalmente usado para o botão de toggle ou um logotipo customizado. */
317
+ /** @param {ReactNode} [props.children] - Conteúdo personalizado exibido como logotipo quando `asChild` for `true`. */
207
318
  children?: ReactNode;
319
+ /**
320
+ * Chamada ao clicar no botão de alternância.
321
+ *
322
+ * @deprecated Desde a v9, use `onToggleRequest`, que recebe o próximo
323
+ * estado já calculado. Quando as duas são informadas, ambas são chamadas.
324
+ */
208
325
  onChangeToggle?: () => void;
326
+ /**
327
+ * Chamada ao clicar no botão de alternância, com o próximo estado sugerido
328
+ * pelo breakpoint atual (`mini`/`expanded` no desktop, `closed`/`expanded`
329
+ * no mobile). O consumidor decide se aplica.
330
+ *
331
+ * Quando omitida, a solicitação é encaminhada ao `onVariantChange` do
332
+ * `SidebarContainer`.
333
+ */
334
+ onToggleRequest?: (next: SidebarState) => void;
335
+ /**
336
+ * Exibe o botão de alternância. Desligue quando o controle ficar a cargo
337
+ * do `Header`.
338
+ * @default true
339
+ */
340
+ showToggle?: boolean;
209
341
  }
210
342
  /**
211
- * Componente para exibir a imagem da marca (logotipo) na barra lateral.
343
+ * Cabeçalho da barra lateral: exibe o logotipo e o botão de alternância.
212
344
  *
213
- * Exibe uma imagem, um elemento filho como logotipo ou conteúdo personalizado na parte superior da barra lateral.
214
- * Permite a inclusão de um botão de alternância (toggle) para colapsar a barra lateral.
215
- * A prop `asChild` permite usar um elemento filho como logotipo, caso a prop `img` não seja fornecida.
345
+ * No estado `mini` o logotipo é omitido e o botão fica centralizado.
216
346
  */
217
- declare function SidebarImageBrand({ asChild, onChangeToggle, img, children, }: SidebarImageBrandProps): react_jsx_runtime.JSX.Element;
347
+ declare function SidebarImageBrand({ asChild, onChangeToggle, onToggleRequest, showToggle, img, children, }: SidebarImageBrandProps): react_jsx_runtime.JSX.Element;
218
348
  type AccordionRootProps = ComponentProps<typeof Accordion.Root>;
219
349
  type SidebarProps = AccordionRootProps & {
220
350
  /** @param {ReactNode} props.children - Os elementos filhos a serem renderizados dentro do Sidebar. */
@@ -223,25 +353,24 @@ type SidebarProps = AccordionRootProps & {
223
353
  type: AccordionRootProps["type"];
224
354
  };
225
355
  /**
226
- * Componente Sidebar, responsável por renderizar a estrutura principal do menu lateral
227
- * e gerenciar o comportamento de acordeão dos itens de navegação.
228
- *
229
- * Este componente utiliza o Radix UI Accordion para controlar a expansão e o colapso
230
- * dos itens do menu. O tipo de acordeão (único ou múltiplo) é determinado pela propriedade `type`.
356
+ * Área de navegação da barra lateral, com comportamento de acordeão para os
357
+ * itens do tipo `SidebarNavCollapse`.
231
358
  *
232
359
  * Estende as tipagens do componente `Accordion.Root` do Radix UI.
233
360
  */
234
- declare function Sidebar({ children, ...rest }: SidebarProps): react_jsx_runtime.JSX.Element;
361
+ declare function Sidebar({ children, className, ...rest }: SidebarProps): react_jsx_runtime.JSX.Element;
362
+ interface IconProps extends SVGProps<SVGSVGElement> {
363
+ }
364
+ type SidebarIcon = ReactElement<IconProps> | ReactNode;
235
365
  /**
236
366
  * Componente de link de navegação para o Sidebar.
237
367
  *
238
- * Renderiza um link com ícone e título, permitindo navegação dentro do Sidebar.
239
- * Recomenda-se que o ícone fornecido tenha 20px de altura e largura para
240
- * consistência visual.
368
+ * A partir da v9, prefira as props `icon` e `label` em lugar de `children`:
369
+ * elas são o que permite ao estado `mini` ocultar o rótulo e exibi-lo em um
370
+ * tooltip. O formato antigo continua funcionando, com aviso no console.
241
371
  *
242
- * @param {SidebarNavLinkProps} props - As propriedades do componente.
243
- * @param {ReactNode} props.children - O título do link e o icone que pode ser fornecido como componente ou svg (🚨recomendado 20px x 20px).
244
- * @param {string} props.href O caminho para redirecionamento.
372
+ * @example
373
+ * <SidebarNavLink href="/" icon={<IconHome />} label="Início" ativo />
245
374
  */
246
375
  interface SidebarNavLinkProps extends React__default.AnchorHTMLAttributes<HTMLAnchorElement> {
247
376
  asChild?: boolean;
@@ -250,15 +379,33 @@ interface SidebarNavLinkProps extends React__default.AnchorHTMLAttributes<HTMLAn
250
379
  * @default 'primary'
251
380
  */
252
381
  type?: "primary" | "secondary";
382
+ /** Ícone do item (recomendado 20px x 20px). Necessário para o estado `mini`. */
383
+ icon?: SidebarIcon;
384
+ /** Rótulo do item. Ocultado no estado `mini`, onde vira tooltip. */
385
+ label?: ReactNode;
386
+ /** Destaca o item como o da rota atual. */
387
+ ativo?: boolean;
388
+ /** Desabilita o item: remove do fluxo de foco e ignora cliques. */
389
+ disabled?: boolean;
390
+ /**
391
+ * Impede o fechamento automático da barra lateral no mobile ao clicar.
392
+ * @default false
393
+ */
394
+ keepOpenOnClick?: boolean;
253
395
  }
254
- declare function SidebarNavLink({ asChild, type, ...rest }: SidebarNavLinkProps): react_jsx_runtime.JSX.Element;
255
- interface IconProps extends SVGProps<SVGSVGElement> {
256
- }
396
+ declare function SidebarNavLink({ asChild, type, icon, label, ativo, disabled, keepOpenOnClick, className, children, onClick, ...rest }: SidebarNavLinkProps): react_jsx_runtime.JSX.Element;
257
397
  interface SidebarNavCollapseProps extends Accordion.AccordionItemProps {
258
398
  title: string;
259
- icon?: ReactElement<IconProps> | ReactNode;
399
+ icon?: SidebarIcon;
260
400
  }
261
- declare function SidebarNavCollapse({ children, title, icon, ...rest }: SidebarNavCollapseProps): react_jsx_runtime.JSX.Element;
401
+ /**
402
+ * Item de navegação com submenu.
403
+ *
404
+ * No estado `expanded` funciona como acordeão. No estado `mini` não há
405
+ * largura para expandir inline, então o submenu passa a ser exibido em um
406
+ * flyout lateral, ancorado no ícone.
407
+ */
408
+ declare function SidebarNavCollapse({ children, title, icon, className, ...rest }: SidebarNavCollapseProps): react_jsx_runtime.JSX.Element;
262
409
 
263
410
  declare const Popover: React$1.FC<PopoverPrimitive.PopoverProps>;
264
411
  declare const PopoverTrigger: React$1.ForwardRefExoticComponent<PopoverPrimitive.PopoverTriggerProps & React$1.RefAttributes<HTMLButtonElement>>;
@@ -1349,4 +1496,4 @@ interface RetornoUsarAlertas {
1349
1496
  }
1350
1497
  declare function usarAlertas({ baseUrl, sistema, email, fetchFn, eventoId, filtros, habilitado, onErro, }: OpcoesUsarAlertas): RetornoUsarAlertas;
1351
1498
 
1352
- export { type Alerta, type AlertaFormValues, AlertaItem, type AlertaItemProps, Alertas, type AlertasProps, AplicationsHeader, type AppInput, type AppItem, AppsMenu, type AppsMenuProps, type AtualizarAlertaInput, 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, type CriarAlertaInput, 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, ErroAlertas, ErroNotificacoes, FileList, type FileListItem, type FileListProps, type FileRejection, type FileRejectionReason, FileUpload, type FileUploadProps, Filter, type FilterField, type FilterFieldType, type FilterProps, type FilterValues, FormularioAlerta, type FormularioAlertaProps, 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, type OpcoesUsarAlertas, PageHeader, PageHeaderActionsContainer, PageHeaderTitle, PageHeaderTitleContent, type ParametrosBuscaAlertas, type PeriodRange, type PeriodRangeInputType, PeriodRangeList, type PeriodRangeListLabels, type PeriodRangeListProps, type PeriodRangeListValidateOptions, Popover, PopoverContent, PopoverTrigger, ResultMetadata, type ResultMetadataGender, type ResultMetadataProps, type RetornoUsarAlertas, 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 StatusAlerta, 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, buscarAlertas, buttonVariants, formatDayAriaLabel, formatFileSize, formatMonthYear, isSameDay, isToday, normalizarBaseUrl, toDateKey, toLocalNoon, usarAlertas, useDrawer, validateFiles };
1499
+ export { type Alerta, type AlertaFormValues, AlertaItem, type AlertaItemProps, Alertas, type AlertasProps, AplicationsHeader, type AppInput, type AppItem, AppsMenu, type AppsMenuProps, type AtualizarAlertaInput, 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, type CriarAlertaInput, 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, ErroAlertas, ErroNotificacoes, FileList, type FileListItem, type FileListProps, type FileRejection, type FileRejectionReason, FileUpload, type FileUploadProps, Filter, type FilterField, type FilterFieldType, type FilterProps, type FilterValues, FormularioAlerta, type FormularioAlertaProps, 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, type OpcoesUsarAlertas, PageHeader, PageHeaderActionsContainer, PageHeaderTitle, PageHeaderTitleContent, type ParametrosBuscaAlertas, type PeriodRange, type PeriodRangeInputType, PeriodRangeList, type PeriodRangeListLabels, type PeriodRangeListProps, type PeriodRangeListValidateOptions, Popover, PopoverContent, PopoverTrigger, ResultMetadata, type ResultMetadataGender, type ResultMetadataProps, type RetornoUsarAlertas, SIDEBAR_MOBILE_BREAKPOINT, Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectPortal, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue, SelectViewport, Sidebar, SidebarContainer, type SidebarContainerProps, type SidebarContextValue, SidebarImageBrand, type SidebarImageBrandProps, SidebarNavCollapse, type SidebarNavCollapseProps, SidebarNavLink, type SidebarNavLinkProps, type SidebarProps, type SidebarState, type StatusAlerta, type StatusLeitura, type StatusNotificacao, Switch, type SwitchProps, Tabs, TabsContent, TabsList, TabsTrigger, Textarea, type TextareaProps, Title, Tooltip, type TooltipProps, URL_PADRAO_NOTIFICACOES, type UseSidebarBreakpointOptions, type UseSidebarBreakpointResult, type ValidateFilesOptions, availableApps, buildMonthDays, buscarAlertas, buttonVariants, formatDayAriaLabel, formatFileSize, formatMonthYear, isSameDay, isToday, normalizarBaseUrl, toDateKey, toLocalNoon, usarAlertas, useDrawer, useSidebar, useSidebarBreakpoint, validateFiles };
package/dist/index.d.ts CHANGED
@@ -1,7 +1,7 @@
1
1
  import * as class_variance_authority_dist_types from 'class-variance-authority/dist/types';
2
2
  import { VariantProps } from 'class-variance-authority';
3
3
  import * as React$1 from 'react';
4
- import React__default, { HTMLAttributes, ReactNode, PropsWithChildren, ReactElement, ComponentProps, SVGProps, ElementType } from 'react';
4
+ import React__default, { HTMLAttributes, ReactNode, PropsWithChildren, ComponentProps, ReactElement, SVGProps, ElementType } from 'react';
5
5
  import * as react_jsx_runtime from 'react/jsx-runtime';
6
6
  import * as DialogPrimitive from '@radix-ui/react-dialog';
7
7
  import { DialogProps } from '@radix-ui/react-dialog';
@@ -182,6 +182,89 @@ declare const DialogFooter: {
182
182
  declare const DialogTitle: React$1.ForwardRefExoticComponent<Omit<DialogPrimitive.DialogTitleProps & React$1.RefAttributes<HTMLHeadingElement>, "ref"> & React$1.RefAttributes<HTMLHeadingElement>>;
183
183
  declare const DialogDescription: React$1.ForwardRefExoticComponent<Omit<DialogPrimitive.DialogDescriptionProps & React$1.RefAttributes<HTMLParagraphElement>, "ref"> & React$1.RefAttributes<HTMLParagraphElement>>;
184
184
 
185
+ /**
186
+ * Estados possíveis da barra lateral.
187
+ *
188
+ * - `expanded` — largura total (280px no desktop, tela cheia no mobile), ícone + rótulo.
189
+ * - `mini` — largura reduzida (64px), somente ícones, rótulo exibido em tooltip.
190
+ * - `closed` — não renderizada. A reabertura é feita pelo botão de menu do `Header`.
191
+ */
192
+ type SidebarState = "expanded" | "mini" | "closed";
193
+ interface SidebarContextValue {
194
+ /** Estado atual da barra lateral. */
195
+ variant: SidebarState;
196
+ /** `true` quando a viewport está abaixo do breakpoint mobile. */
197
+ isMobile: boolean;
198
+ /**
199
+ * Solicita a mudança para outro estado. Encaminhado para o
200
+ * `onVariantChange` do `SidebarContainer`; sem ele, é um no-op.
201
+ */
202
+ requestState: (next: SidebarState) => void;
203
+ }
204
+ /**
205
+ * Acessa o estado da barra lateral a partir de qualquer subcomponente.
206
+ *
207
+ * Diferente do `useDrawer`, **não lança erro** fora do provider: devolve um
208
+ * estado expandido estático, preservando a compatibilidade com usos avulsos
209
+ * dos subcomponentes.
210
+ *
211
+ * @example
212
+ * const { variant, isMobile, requestState } = useSidebar();
213
+ * if (variant === "mini") { ... }
214
+ */
215
+ declare function useSidebar(): SidebarContextValue;
216
+
217
+ /** Breakpoint (px) abaixo do qual a barra lateral é tratada como mobile. */
218
+ declare const SIDEBAR_MOBILE_BREAKPOINT = 768;
219
+ interface UseSidebarBreakpointOptions {
220
+ /**
221
+ * Largura (px) abaixo da qual a barra lateral entra em modo mobile.
222
+ * @default 768
223
+ */
224
+ mobileBreakpoint?: number;
225
+ /**
226
+ * Estado inicial usado antes da primeira medição da viewport.
227
+ * Relevante em SSR, onde `window` não existe.
228
+ * @default "expanded"
229
+ */
230
+ defaultState?: SidebarState;
231
+ }
232
+ interface UseSidebarBreakpointResult {
233
+ /** `true` quando a viewport está abaixo de `mobileBreakpoint`. */
234
+ isMobile: boolean;
235
+ /**
236
+ * Estado sugerido para o breakpoint atual: `closed` no mobile,
237
+ * `expanded` no desktop. É uma sugestão — o consumidor decide se aplica.
238
+ */
239
+ suggested: SidebarState;
240
+ /**
241
+ * Próximo estado ao acionar o toggle, a partir de `current`.
242
+ *
243
+ * - Mobile: alterna `closed` ↔ `expanded` (não existe `mini`).
244
+ * - Desktop: alterna `expanded` ↔ `mini`.
245
+ */
246
+ getNextState: (current: SidebarState) => SidebarState;
247
+ }
248
+ /**
249
+ * Calcula o estado da barra lateral a partir da largura da viewport.
250
+ *
251
+ * Não controla nada sozinho: devolve o estado sugerido e a função de
252
+ * transição, cabendo ao consumidor aplicar (ou não). É o mesmo comportamento
253
+ * já validado em produção no gestão de eventos e no gestão de demandas.
254
+ *
255
+ * @example
256
+ * const [variant, setVariant] = useState<SidebarState>("expanded");
257
+ * const { isMobile, suggested, getNextState } = useSidebarBreakpoint();
258
+ *
259
+ * useEffect(() => setVariant(suggested), [suggested]);
260
+ *
261
+ * <SidebarContainer
262
+ * variant={variant}
263
+ * onVariantChange={setVariant}
264
+ * />
265
+ */
266
+ declare function useSidebarBreakpoint(options?: UseSidebarBreakpointOptions): UseSidebarBreakpointResult;
267
+
185
268
  /**
186
269
  * Propriedades para o componente SidebarContainer.
187
270
  *
@@ -190,31 +273,78 @@ declare const DialogDescription: React$1.ForwardRefExoticComponent<Omit<DialogPr
190
273
  interface SidebarContainerProps extends React__default.HTMLAttributes<HTMLDivElement> {
191
274
  /**
192
275
  * Indica se o sidebar está aberto ou fechado.
276
+ *
277
+ * @deprecated Desde a v9, use `variant`. Mantida para compatibilidade:
278
+ * `true` equivale a `"expanded"` e `false` a `"closed"`. Quando `variant`
279
+ * é informada, esta prop é ignorada.
193
280
  * @default true
194
281
  */
195
282
  isOpen?: boolean;
283
+ /**
284
+ * Estado visual da barra lateral. Tem precedência sobre `isOpen`.
285
+ * @default "expanded"
286
+ */
287
+ variant?: SidebarState;
288
+ /**
289
+ * Chamada quando um subcomponente solicita a mudança de estado — pelo botão
290
+ * de alternância do `SidebarImageBrand` ou pelo clique em um item de
291
+ * navegação no mobile. A barra lateral é controlada: cabe ao consumidor
292
+ * aplicar o novo estado.
293
+ */
294
+ onVariantChange?: (next: SidebarState) => void;
295
+ /**
296
+ * Largura (px) abaixo da qual a barra lateral é tratada como mobile.
297
+ * @default 768
298
+ */
299
+ mobileBreakpoint?: number;
196
300
  }
197
- declare function SidebarContainer({ isOpen, ...rest }: SidebarContainerProps): react_jsx_runtime.JSX.Element;
301
+ /**
302
+ * Container da barra lateral, responsável pela largura, pela transição entre
303
+ * estados e por prover o contexto consumido pelos demais subcomponentes.
304
+ *
305
+ * No estado `closed` **nada é renderizado** — a reabertura fica a cargo do
306
+ * botão de menu do `HeaderContainer`.
307
+ */
308
+ declare function SidebarContainer({ isOpen, variant, onVariantChange, mobileBreakpoint, className, style, children, ...rest }: SidebarContainerProps): react_jsx_runtime.JSX.Element;
198
309
  interface SidebarImageBrandProps extends PropsWithChildren {
199
- /** @param {boolean} [props.asChild=false] - Se `true`, e `children` for um elemento React válido, este será usado como logotipo. Se `img` também for fornecido, `img` terá precedência. Se `children` não for um elemento React válido, o comportamento padrão de exibir a imagem de `img` ou `children` como conteúdo será usado. */
310
+ /** @param {boolean} [props.asChild=false] - Se `true`, e `children` for um elemento React válido, este será usado como logotipo. Se `img` também for fornecido, `img` terá precedência. */
200
311
  asChild?: boolean;
201
- /** @param {{ src?: string; alt?: string }} [props.img] - Objeto com as propriedades `src` e `alt` da imagem, usado quando `asChild` é `false` ou quando `asChild` é `true` mas `children` não é um elemento React válido para ser usado como logotipo. */
312
+ /** @param {{ src?: string; alt?: string }} [props.img] - Objeto com as propriedades `src` e `alt` da imagem. */
202
313
  img?: {
203
314
  src?: string;
204
315
  alt?: string;
205
316
  };
206
- /** @param {ReactNode} [props.children] - Conteúdo personalizado ou elemento filho a ser exibido como logotipo quando `asChild` for `true` e `img` não for fornecido. Normalmente usado para o botão de toggle ou um logotipo customizado. */
317
+ /** @param {ReactNode} [props.children] - Conteúdo personalizado exibido como logotipo quando `asChild` for `true`. */
207
318
  children?: ReactNode;
319
+ /**
320
+ * Chamada ao clicar no botão de alternância.
321
+ *
322
+ * @deprecated Desde a v9, use `onToggleRequest`, que recebe o próximo
323
+ * estado já calculado. Quando as duas são informadas, ambas são chamadas.
324
+ */
208
325
  onChangeToggle?: () => void;
326
+ /**
327
+ * Chamada ao clicar no botão de alternância, com o próximo estado sugerido
328
+ * pelo breakpoint atual (`mini`/`expanded` no desktop, `closed`/`expanded`
329
+ * no mobile). O consumidor decide se aplica.
330
+ *
331
+ * Quando omitida, a solicitação é encaminhada ao `onVariantChange` do
332
+ * `SidebarContainer`.
333
+ */
334
+ onToggleRequest?: (next: SidebarState) => void;
335
+ /**
336
+ * Exibe o botão de alternância. Desligue quando o controle ficar a cargo
337
+ * do `Header`.
338
+ * @default true
339
+ */
340
+ showToggle?: boolean;
209
341
  }
210
342
  /**
211
- * Componente para exibir a imagem da marca (logotipo) na barra lateral.
343
+ * Cabeçalho da barra lateral: exibe o logotipo e o botão de alternância.
212
344
  *
213
- * Exibe uma imagem, um elemento filho como logotipo ou conteúdo personalizado na parte superior da barra lateral.
214
- * Permite a inclusão de um botão de alternância (toggle) para colapsar a barra lateral.
215
- * A prop `asChild` permite usar um elemento filho como logotipo, caso a prop `img` não seja fornecida.
345
+ * No estado `mini` o logotipo é omitido e o botão fica centralizado.
216
346
  */
217
- declare function SidebarImageBrand({ asChild, onChangeToggle, img, children, }: SidebarImageBrandProps): react_jsx_runtime.JSX.Element;
347
+ declare function SidebarImageBrand({ asChild, onChangeToggle, onToggleRequest, showToggle, img, children, }: SidebarImageBrandProps): react_jsx_runtime.JSX.Element;
218
348
  type AccordionRootProps = ComponentProps<typeof Accordion.Root>;
219
349
  type SidebarProps = AccordionRootProps & {
220
350
  /** @param {ReactNode} props.children - Os elementos filhos a serem renderizados dentro do Sidebar. */
@@ -223,25 +353,24 @@ type SidebarProps = AccordionRootProps & {
223
353
  type: AccordionRootProps["type"];
224
354
  };
225
355
  /**
226
- * Componente Sidebar, responsável por renderizar a estrutura principal do menu lateral
227
- * e gerenciar o comportamento de acordeão dos itens de navegação.
228
- *
229
- * Este componente utiliza o Radix UI Accordion para controlar a expansão e o colapso
230
- * dos itens do menu. O tipo de acordeão (único ou múltiplo) é determinado pela propriedade `type`.
356
+ * Área de navegação da barra lateral, com comportamento de acordeão para os
357
+ * itens do tipo `SidebarNavCollapse`.
231
358
  *
232
359
  * Estende as tipagens do componente `Accordion.Root` do Radix UI.
233
360
  */
234
- declare function Sidebar({ children, ...rest }: SidebarProps): react_jsx_runtime.JSX.Element;
361
+ declare function Sidebar({ children, className, ...rest }: SidebarProps): react_jsx_runtime.JSX.Element;
362
+ interface IconProps extends SVGProps<SVGSVGElement> {
363
+ }
364
+ type SidebarIcon = ReactElement<IconProps> | ReactNode;
235
365
  /**
236
366
  * Componente de link de navegação para o Sidebar.
237
367
  *
238
- * Renderiza um link com ícone e título, permitindo navegação dentro do Sidebar.
239
- * Recomenda-se que o ícone fornecido tenha 20px de altura e largura para
240
- * consistência visual.
368
+ * A partir da v9, prefira as props `icon` e `label` em lugar de `children`:
369
+ * elas são o que permite ao estado `mini` ocultar o rótulo e exibi-lo em um
370
+ * tooltip. O formato antigo continua funcionando, com aviso no console.
241
371
  *
242
- * @param {SidebarNavLinkProps} props - As propriedades do componente.
243
- * @param {ReactNode} props.children - O título do link e o icone que pode ser fornecido como componente ou svg (🚨recomendado 20px x 20px).
244
- * @param {string} props.href O caminho para redirecionamento.
372
+ * @example
373
+ * <SidebarNavLink href="/" icon={<IconHome />} label="Início" ativo />
245
374
  */
246
375
  interface SidebarNavLinkProps extends React__default.AnchorHTMLAttributes<HTMLAnchorElement> {
247
376
  asChild?: boolean;
@@ -250,15 +379,33 @@ interface SidebarNavLinkProps extends React__default.AnchorHTMLAttributes<HTMLAn
250
379
  * @default 'primary'
251
380
  */
252
381
  type?: "primary" | "secondary";
382
+ /** Ícone do item (recomendado 20px x 20px). Necessário para o estado `mini`. */
383
+ icon?: SidebarIcon;
384
+ /** Rótulo do item. Ocultado no estado `mini`, onde vira tooltip. */
385
+ label?: ReactNode;
386
+ /** Destaca o item como o da rota atual. */
387
+ ativo?: boolean;
388
+ /** Desabilita o item: remove do fluxo de foco e ignora cliques. */
389
+ disabled?: boolean;
390
+ /**
391
+ * Impede o fechamento automático da barra lateral no mobile ao clicar.
392
+ * @default false
393
+ */
394
+ keepOpenOnClick?: boolean;
253
395
  }
254
- declare function SidebarNavLink({ asChild, type, ...rest }: SidebarNavLinkProps): react_jsx_runtime.JSX.Element;
255
- interface IconProps extends SVGProps<SVGSVGElement> {
256
- }
396
+ declare function SidebarNavLink({ asChild, type, icon, label, ativo, disabled, keepOpenOnClick, className, children, onClick, ...rest }: SidebarNavLinkProps): react_jsx_runtime.JSX.Element;
257
397
  interface SidebarNavCollapseProps extends Accordion.AccordionItemProps {
258
398
  title: string;
259
- icon?: ReactElement<IconProps> | ReactNode;
399
+ icon?: SidebarIcon;
260
400
  }
261
- declare function SidebarNavCollapse({ children, title, icon, ...rest }: SidebarNavCollapseProps): react_jsx_runtime.JSX.Element;
401
+ /**
402
+ * Item de navegação com submenu.
403
+ *
404
+ * No estado `expanded` funciona como acordeão. No estado `mini` não há
405
+ * largura para expandir inline, então o submenu passa a ser exibido em um
406
+ * flyout lateral, ancorado no ícone.
407
+ */
408
+ declare function SidebarNavCollapse({ children, title, icon, className, ...rest }: SidebarNavCollapseProps): react_jsx_runtime.JSX.Element;
262
409
 
263
410
  declare const Popover: React$1.FC<PopoverPrimitive.PopoverProps>;
264
411
  declare const PopoverTrigger: React$1.ForwardRefExoticComponent<PopoverPrimitive.PopoverTriggerProps & React$1.RefAttributes<HTMLButtonElement>>;
@@ -1349,4 +1496,4 @@ interface RetornoUsarAlertas {
1349
1496
  }
1350
1497
  declare function usarAlertas({ baseUrl, sistema, email, fetchFn, eventoId, filtros, habilitado, onErro, }: OpcoesUsarAlertas): RetornoUsarAlertas;
1351
1498
 
1352
- export { type Alerta, type AlertaFormValues, AlertaItem, type AlertaItemProps, Alertas, type AlertasProps, AplicationsHeader, type AppInput, type AppItem, AppsMenu, type AppsMenuProps, type AtualizarAlertaInput, 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, type CriarAlertaInput, 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, ErroAlertas, ErroNotificacoes, FileList, type FileListItem, type FileListProps, type FileRejection, type FileRejectionReason, FileUpload, type FileUploadProps, Filter, type FilterField, type FilterFieldType, type FilterProps, type FilterValues, FormularioAlerta, type FormularioAlertaProps, 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, type OpcoesUsarAlertas, PageHeader, PageHeaderActionsContainer, PageHeaderTitle, PageHeaderTitleContent, type ParametrosBuscaAlertas, type PeriodRange, type PeriodRangeInputType, PeriodRangeList, type PeriodRangeListLabels, type PeriodRangeListProps, type PeriodRangeListValidateOptions, Popover, PopoverContent, PopoverTrigger, ResultMetadata, type ResultMetadataGender, type ResultMetadataProps, type RetornoUsarAlertas, 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 StatusAlerta, 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, buscarAlertas, buttonVariants, formatDayAriaLabel, formatFileSize, formatMonthYear, isSameDay, isToday, normalizarBaseUrl, toDateKey, toLocalNoon, usarAlertas, useDrawer, validateFiles };
1499
+ export { type Alerta, type AlertaFormValues, AlertaItem, type AlertaItemProps, Alertas, type AlertasProps, AplicationsHeader, type AppInput, type AppItem, AppsMenu, type AppsMenuProps, type AtualizarAlertaInput, 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, type CriarAlertaInput, 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, ErroAlertas, ErroNotificacoes, FileList, type FileListItem, type FileListProps, type FileRejection, type FileRejectionReason, FileUpload, type FileUploadProps, Filter, type FilterField, type FilterFieldType, type FilterProps, type FilterValues, FormularioAlerta, type FormularioAlertaProps, 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, type OpcoesUsarAlertas, PageHeader, PageHeaderActionsContainer, PageHeaderTitle, PageHeaderTitleContent, type ParametrosBuscaAlertas, type PeriodRange, type PeriodRangeInputType, PeriodRangeList, type PeriodRangeListLabels, type PeriodRangeListProps, type PeriodRangeListValidateOptions, Popover, PopoverContent, PopoverTrigger, ResultMetadata, type ResultMetadataGender, type ResultMetadataProps, type RetornoUsarAlertas, SIDEBAR_MOBILE_BREAKPOINT, Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectPortal, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue, SelectViewport, Sidebar, SidebarContainer, type SidebarContainerProps, type SidebarContextValue, SidebarImageBrand, type SidebarImageBrandProps, SidebarNavCollapse, type SidebarNavCollapseProps, SidebarNavLink, type SidebarNavLinkProps, type SidebarProps, type SidebarState, type StatusAlerta, type StatusLeitura, type StatusNotificacao, Switch, type SwitchProps, Tabs, TabsContent, TabsList, TabsTrigger, Textarea, type TextareaProps, Title, Tooltip, type TooltipProps, URL_PADRAO_NOTIFICACOES, type UseSidebarBreakpointOptions, type UseSidebarBreakpointResult, type ValidateFilesOptions, availableApps, buildMonthDays, buscarAlertas, buttonVariants, formatDayAriaLabel, formatFileSize, formatMonthYear, isSameDay, isToday, normalizarBaseUrl, toDateKey, toLocalNoon, usarAlertas, useDrawer, useSidebar, useSidebarBreakpoint, validateFiles };