design-zystem 1.0.341 → 1.0.342

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.
@@ -726,6 +726,114 @@ interface PopoverProps {
726
726
  }
727
727
  declare const Popover: ({ trigger, items, children, align, side, className, }: PopoverProps) => react.JSX.Element;
728
728
 
729
+ interface SidebarProps extends Omit<HTMLAttributes<HTMLElement>, 'color'> {
730
+ /** Rétracte le panneau en rail d'icônes (64px, assez large pour des boutons de 40px comme en déplié) — contrôlé par le consommateur, comme `Tabs value`. */
731
+ collapsed?: boolean;
732
+ children?: ReactNode;
733
+ className?: string;
734
+ }
735
+ /** Panneau de navigation latéral plein hauteur, thème sombre (structure shadcn/ui, couleur `blue-800` reprise de la sidebar DeliveryApp actuelle). Compose-le avec `SidebarHeader`/`SidebarContent`/`SidebarGroup`/`SidebarMenuButton`/`SidebarFooter`. `collapsed` propage aux enfants via contexte : ils basculent seuls en rail d'icônes, sans prop à répéter. */
736
+ declare const Sidebar: react.ForwardRefExoticComponent<SidebarProps & react.RefAttributes<HTMLElement>>;
737
+
738
+ interface SidebarTriggerProps extends Omit<ButtonHTMLAttributes<HTMLButtonElement>, 'color'> {
739
+ /** État courant du `Sidebar` — oriente le chevron (replié : pointe vers la droite). */
740
+ collapsed?: boolean;
741
+ }
742
+ /** Bouton pilule qui replie/déplie le `Sidebar` — à positionner par le consommateur à cheval sur son bord droit (`className="absolute -right-3 top-3"` sur un `Sidebar className="relative"`), comme le toggle actuel de DeliveryApp. Ne porte pas l'état : le consommateur bascule son `collapsed` au clic (`onClick`) et lui passe la valeur courante pour orienter le chevron. */
743
+ declare const SidebarTrigger: react.ForwardRefExoticComponent<SidebarTriggerProps & react.RefAttributes<HTMLButtonElement>>;
744
+
745
+ type SidebarHeaderProps = HTMLAttributes<HTMLDivElement>;
746
+ /** Zone haute fixe du `Sidebar` (logo, recherche, action rapide…) — libre, le consommateur compose son propre contenu. */
747
+ declare const SidebarHeader: react.ForwardRefExoticComponent<SidebarHeaderProps & react.RefAttributes<HTMLDivElement>>;
748
+
749
+ type SidebarContentProps = HTMLAttributes<HTMLDivElement>;
750
+ /** Zone scrollable du `Sidebar`, entre `SidebarHeader` et `SidebarFooter` — accueille un ou plusieurs `SidebarGroup`. Défile sans afficher de scrollbar (le contenu reste navigable au clavier/molette/tactile, seul le rendu du rail est masqué). */
751
+ declare const SidebarContent: react.ForwardRefExoticComponent<SidebarContentProps & react.RefAttributes<HTMLDivElement>>;
752
+
753
+ interface SidebarGroupProps extends HTMLAttributes<HTMLDivElement> {
754
+ /** Titre de section (ex. "OPÉRATIONS"). Masqué automatiquement quand le `Sidebar` parent est `collapsed`. */
755
+ label?: ReactNode;
756
+ children?: ReactNode;
757
+ }
758
+ /** Section du `SidebarContent` : un libellé optionnel puis une pile de `SidebarMenuButton`. */
759
+ declare const SidebarGroup: react.ForwardRefExoticComponent<SidebarGroupProps & react.RefAttributes<HTMLDivElement>>;
760
+
761
+ interface SidebarMenuButtonProps extends Omit<ButtonHTMLAttributes<HTMLButtonElement>, 'color'> {
762
+ /** Nom de l'icône FontAwesome, sans le préfixe `fa-`. */
763
+ icon: string;
764
+ iconFamily?: FaFamily;
765
+ label: string;
766
+ active?: boolean;
767
+ /** Compteur affiché en pastille (ex. messages non lus) — masqué si `0`/`undefined`. */
768
+ badge?: number;
769
+ /** Raccourci clavier affiché en bout de ligne (ex. `"⌘K"`) — pour un déclencheur comme la recherche globale. Masqué en replié. */
770
+ shortcut?: string;
771
+ /** Élément libre en bout de ligne (ex. un chevron de `CollapsibleTrigger`) — masqué en replié, comme `shortcut`/`badge`. */
772
+ trailing?: ReactNode;
773
+ }
774
+ /** Entrée de navigation d'un `SidebarGroup` (ou déclencheur d'action, ex. recherche globale). Replié (`Sidebar collapsed`) : ne garde que l'icône et bascule `label` en tooltip au survol. */
775
+ declare const SidebarMenuButton: react.ForwardRefExoticComponent<SidebarMenuButtonProps & react.RefAttributes<HTMLButtonElement>>;
776
+
777
+ type SidebarMenuSubProps = HTMLAttributes<HTMLUListElement>;
778
+ /** Liste des sous-items d'un `SidebarMenuButton` extensible (ex. déplié via `Collapsible`) — indentée, reliée par un trait vertical, comme `SidebarMenuSub` du sidebar shadcn/ui. */
779
+ declare const SidebarMenuSub: react.ForwardRefExoticComponent<SidebarMenuSubProps & react.RefAttributes<HTMLUListElement>>;
780
+
781
+ type SidebarMenuSubItemProps = HTMLAttributes<HTMLLIElement>;
782
+ /** `<li>` d'un `SidebarMenuSub` — enveloppe un `SidebarMenuSubButton`. */
783
+ declare const SidebarMenuSubItem: react.ForwardRefExoticComponent<SidebarMenuSubItemProps & react.RefAttributes<HTMLLIElement>>;
784
+
785
+ interface SidebarMenuSubButtonProps extends ButtonHTMLAttributes<HTMLButtonElement> {
786
+ active?: boolean;
787
+ /** `default` (40px, même hauteur que les choix du popover navbar) ou `lg` (56px, pour une liste où chaque ligne doit rester bien cliquable, ex. une liste de clients). */
788
+ size?: 'default' | 'lg';
789
+ }
790
+ /** Item cliquable d'un `SidebarMenuSub` — même logique que `SidebarMenuButton`, sans icône. */
791
+ declare const SidebarMenuSubButton: react.ForwardRefExoticComponent<SidebarMenuSubButtonProps & react.RefAttributes<HTMLButtonElement>>;
792
+
793
+ type SidebarFooterProps = HTMLAttributes<HTMLDivElement>;
794
+ /** Zone basse fixe du `Sidebar` (profil, déconnexion…) — voir `SidebarUserMenu` pour le bloc profil standard. */
795
+ declare const SidebarFooter: react.ForwardRefExoticComponent<SidebarFooterProps & react.RefAttributes<HTMLDivElement>>;
796
+
797
+ interface SidebarSupportInfoProps {
798
+ phone: string;
799
+ hours: string;
800
+ icon?: string;
801
+ iconFamily?: FaFamily;
802
+ className?: string;
803
+ }
804
+ /** Bloc "contactez-nous" au-dessus du `SidebarFooter` : icône ronde + numéro + horaires — calqué sur `SidebarSupportInfo` de ClientOffice. Replié : seule l'icône reste, numéro et horaires passent en tooltip. */
805
+ declare const SidebarSupportInfo: ({ phone, hours, icon, iconFamily, className, }: SidebarSupportInfoProps) => react.JSX.Element;
806
+
807
+ type SidebarMenuSearchInputProps = InputHTMLAttributes<HTMLInputElement>;
808
+ /** Champ de recherche thème sombre pour un panneau de `SidebarUserMenu` (ex. flyout "rechercher un client…") — même composition que `SearchInput` (icône ancrée via `InputGroup`), recolorée pour un fond `bg-blue-*`. */
809
+ declare const SidebarMenuSearchInput: react.ForwardRefExoticComponent<SidebarMenuSearchInputProps & react.RefAttributes<HTMLInputElement>>;
810
+
811
+ interface SidebarUserMenuLeafAction {
812
+ /** Nom de l'icône FontAwesome, sans le préfixe `fa-`. */
813
+ icon: string;
814
+ iconFamily?: FaFamily;
815
+ label: string;
816
+ action: () => void;
817
+ }
818
+ interface SidebarUserMenuAction extends SidebarUserMenuLeafAction {
819
+ /** Transforme la ligne en déclencheur d'un panneau secondaire ouvert à droite (un seul niveau de profondeur) — `action` n'est alors pas appelée. Ignoré si `renderPanel` est fourni. */
820
+ subActions?: SidebarUserMenuLeafAction[];
821
+ /** Contenu libre du panneau secondaire (recherche + liste custom…) — prioritaire sur `subActions`. Reçoit `close`, à appeler une fois l'action terminée pour refermer tout le menu (comme `subActions` le fait automatiquement). */
822
+ renderPanel?: (close: () => void) => ReactNode;
823
+ }
824
+ interface SidebarUserMenuProps {
825
+ name: string;
826
+ email?: string;
827
+ /** Ligne libre sous `email` (ex. le nom d'un client impersoné) — sur sa propre ligne, tronquée indépendamment, pour les valeurs potentiellement longues. */
828
+ subtitle?: ReactNode;
829
+ avatarSrc?: string | null;
830
+ /** Groupes d'actions séparés par un trait (ex. `[[compte, facturation], [déconnexion]]`), comme le `NavUser` du sidebar shadcn/ui. */
831
+ actionGroups: SidebarUserMenuAction[][];
832
+ className?: string;
833
+ }
834
+ /** Bloc profil du `SidebarFooter` : avatar + nom/e-mail, ouvrant un menu d'actions groupées — calqué sur le `NavUser` du sidebar shadcn/ui (thème sombre propre au `Sidebar`, indépendant du `Popover` clair partagé). Une action avec `subActions` ouvre un panneau secondaire à droite (flyout), sur le même principe que le menu principal. Replié : seul l'avatar reste, le menu s'ouvre toujours au clic. */
835
+ declare const SidebarUserMenu: ({ name, email, subtitle, avatarSrc, actionGroups, className, }: SidebarUserMenuProps) => react.JSX.Element;
836
+
729
837
  interface TooltipProps {
730
838
  children: ReactNode;
731
839
  content: ReactNode;
@@ -1459,4 +1567,4 @@ declare const allowAutofill: (autoComplete: string) => {
1459
1567
  "data-form-type": undefined;
1460
1568
  };
1461
1569
 
1462
- export { Attachment, type AttachmentProps, type AttachmentStatus, Avatar, AvatarBadge, type AvatarBadgeConfig, type AvatarBadgeProps, AvatarFallback, type AvatarFallbackProps, AvatarGroup, type AvatarGroupProps, AvatarImage, type AvatarImageProps, type AvatarProps, Badge, type BadgeProps, Banner, type BannerAction, type BannerJustify, type BannerProps, type BannerToggle, Box, type BoxProps, Bulk, type BulkProps, type BulkSection, Button, type ButtonColor, type ButtonProps, COLOR_TOKENS, Checkbox, type CheckboxProps, Collapsible, CollapsibleContent, CollapsibleTrigger, type ColorKey, ColorPicker, type ColorPickerProps, type ColorToken, DatePicker, type DatePickerMode, type DatePickerProps, type DatePreset, Divider, type DividerProps, Drawer, DrawerBody, DrawerClose, DrawerDescription, type DrawerDirection, DrawerFooter, DrawerHeader, type DrawerProps, DrawerTitle, EmailInput, type EmailInputProps, EmptyState, type EmptyStateProps, FilePicker, type FilePickerProps, FileUploadZone, type FileUploadZoneProps, type FloatingAction, FloatingButton, type FloatingButtonProps, type FloatingSafeArea, Gantt, type GanttBand, type GanttBar, type GanttDay, GanttDot, type GanttProps, type GanttRow, GanttSwatch, Icon, IconBadge, type IconBadgeProps, type IconColor, type IconFamily, type IconProps, type IconSize, type IconTabItem, IconTabs, type IconTabsProps, IconTooltip, type IconTooltipProps, Image, type ImageProps, Input, InputGroup, InputGroupAddon, type InputGroupAddonProps, InputGroupButton, type InputGroupButtonProps, type InputGroupProps, type InputProps, Item, ItemActions, ItemContent, ItemDescription, ItemMedia, type ItemMediaProps, type ItemProps, ItemTitle, Label, type LabelProps, Layout, type LayoutProps, Link, type LinkProps, Message, MessageDateSeparator, type MessageDateSeparatorProps, type MessageProps, MessageScroller, type MessageScrollerProps, type MessageSeparatorTone, type MessageTone, type MessageVariant, MetricCard, type MetricCardProps, Modal, ModalBody, ModalClose, ModalDescription, ModalFooter, ModalHeader, type ModalProps, ModalTitle, type MultiSelectProps, type OptimizeImageOptions, type OptimizeImageResult, PageContainer, type PageContainerProps, Pagination, type PaginationProps, PasswordInput, type PasswordInputProps, PdfPreview, type PdfPreviewProps, PhoneInput, type PhoneInputMeta, type PhoneInputProps, Popover, type PopoverMenuItem, type PopoverProps, ProgressBar, type ProgressBarProps, Radio, type RadioOption, type RadioProps, ScrollArea, type ScrollAreaProps, SearchInput, type SearchInputProps, Select, type SelectOption, type SelectProps, type SingleSelectProps, Skeleton, type SkeletonProps, Spinner, type SpinnerProps, type SpinnerSize, Stepper, type StepperProps, Switch, type SwitchProps, type TabItem, Table, TableCell, type TableCellProps, type TableEmptyState, TableFooter, TableFooterCell, type TableFooterCellProps, type TableFooterProps, TableFooterRow, type TableFooterRowProps, TableHeader, TableHeaderCell, type TableHeaderCellProps, type TableHeaderProps, TableHeaderRow, type TableHeaderRowProps, type TablePagination, type TableProps, TableRow, type TableRowProps, Tabs, type TabsProps, type TabsVariant, TagBubble, type TagBubbleProps, type TagOption, TagSelect, type TagSelectProps, Text, type TextProps, Textarea, type TextareaLook, type TextareaProps, Timeline, type TimelineItem, type TimelineProps, type ToastOptions, type ToastType, Toaster, Tooltip, type TooltipProps, addBusinessDays, allowAutofill, appendCacheBuster, appendQueryParam, buttonVariants, capitalizeFirstLetter, colors, easterDate, formatAddress, formatCityFromFormattedAddress, formatCityWithPostalCode, formatDate, formatDateWithTime, formatDistance, formatDuration, formatEuro, formatKM, formatLocality, formatName, formatNameWithInitial, formatPhoneNumber, formatPlate, formatPlateWithoutDashes, formatPostalCodeFromFormattedAddress, formatRegionCode, formatTime, formatVin, generateHexColor, getAvatarColor, getCleanFileName, getFileIconByMimeType, getFileKind, getFileNameFromUrl, getInitials, getMimeCategory, getRelativeTime, isHoliday, isSameDay, isolateCity, noAutofillProps, optimizeImage, parseAmount, parseIsoDate, toast, truncateFileName, truncateText, useAvatarSize };
1570
+ export { Attachment, type AttachmentProps, type AttachmentStatus, Avatar, AvatarBadge, type AvatarBadgeConfig, type AvatarBadgeProps, AvatarFallback, type AvatarFallbackProps, AvatarGroup, type AvatarGroupProps, AvatarImage, type AvatarImageProps, type AvatarProps, Badge, type BadgeProps, Banner, type BannerAction, type BannerJustify, type BannerProps, type BannerToggle, Box, type BoxProps, Bulk, type BulkProps, type BulkSection, Button, type ButtonColor, type ButtonProps, COLOR_TOKENS, Checkbox, type CheckboxProps, Collapsible, CollapsibleContent, CollapsibleTrigger, type ColorKey, ColorPicker, type ColorPickerProps, type ColorToken, DatePicker, type DatePickerMode, type DatePickerProps, type DatePreset, Divider, type DividerProps, Drawer, DrawerBody, DrawerClose, DrawerDescription, type DrawerDirection, DrawerFooter, DrawerHeader, type DrawerProps, DrawerTitle, EmailInput, type EmailInputProps, EmptyState, type EmptyStateProps, FilePicker, type FilePickerProps, FileUploadZone, type FileUploadZoneProps, type FloatingAction, FloatingButton, type FloatingButtonProps, type FloatingSafeArea, Gantt, type GanttBand, type GanttBar, type GanttDay, GanttDot, type GanttProps, type GanttRow, GanttSwatch, Icon, IconBadge, type IconBadgeProps, type IconColor, type IconFamily, type IconProps, type IconSize, type IconTabItem, IconTabs, type IconTabsProps, IconTooltip, type IconTooltipProps, Image, type ImageProps, Input, InputGroup, InputGroupAddon, type InputGroupAddonProps, InputGroupButton, type InputGroupButtonProps, type InputGroupProps, type InputProps, Item, ItemActions, ItemContent, ItemDescription, ItemMedia, type ItemMediaProps, type ItemProps, ItemTitle, Label, type LabelProps, Layout, type LayoutProps, Link, type LinkProps, Message, MessageDateSeparator, type MessageDateSeparatorProps, type MessageProps, MessageScroller, type MessageScrollerProps, type MessageSeparatorTone, type MessageTone, type MessageVariant, MetricCard, type MetricCardProps, Modal, ModalBody, ModalClose, ModalDescription, ModalFooter, ModalHeader, type ModalProps, ModalTitle, type MultiSelectProps, type OptimizeImageOptions, type OptimizeImageResult, PageContainer, type PageContainerProps, Pagination, type PaginationProps, PasswordInput, type PasswordInputProps, PdfPreview, type PdfPreviewProps, PhoneInput, type PhoneInputMeta, type PhoneInputProps, Popover, type PopoverMenuItem, type PopoverProps, ProgressBar, type ProgressBarProps, Radio, type RadioOption, type RadioProps, ScrollArea, type ScrollAreaProps, SearchInput, type SearchInputProps, Select, type SelectOption, type SelectProps, Sidebar, SidebarContent, type SidebarContentProps, SidebarFooter, type SidebarFooterProps, SidebarGroup, type SidebarGroupProps, SidebarHeader, type SidebarHeaderProps, SidebarMenuButton, type SidebarMenuButtonProps, SidebarMenuSearchInput, type SidebarMenuSearchInputProps, SidebarMenuSub, SidebarMenuSubButton, type SidebarMenuSubButtonProps, SidebarMenuSubItem, type SidebarMenuSubItemProps, type SidebarMenuSubProps, type SidebarProps, SidebarSupportInfo, type SidebarSupportInfoProps, SidebarTrigger, type SidebarTriggerProps, SidebarUserMenu, type SidebarUserMenuAction, type SidebarUserMenuLeafAction, type SidebarUserMenuProps, type SingleSelectProps, Skeleton, type SkeletonProps, Spinner, type SpinnerProps, type SpinnerSize, Stepper, type StepperProps, Switch, type SwitchProps, type TabItem, Table, TableCell, type TableCellProps, type TableEmptyState, TableFooter, TableFooterCell, type TableFooterCellProps, type TableFooterProps, TableFooterRow, type TableFooterRowProps, TableHeader, TableHeaderCell, type TableHeaderCellProps, type TableHeaderProps, TableHeaderRow, type TableHeaderRowProps, type TablePagination, type TableProps, TableRow, type TableRowProps, Tabs, type TabsProps, type TabsVariant, TagBubble, type TagBubbleProps, type TagOption, TagSelect, type TagSelectProps, Text, type TextProps, Textarea, type TextareaLook, type TextareaProps, Timeline, type TimelineItem, type TimelineProps, type ToastOptions, type ToastType, Toaster, Tooltip, type TooltipProps, addBusinessDays, allowAutofill, appendCacheBuster, appendQueryParam, buttonVariants, capitalizeFirstLetter, colors, easterDate, formatAddress, formatCityFromFormattedAddress, formatCityWithPostalCode, formatDate, formatDateWithTime, formatDistance, formatDuration, formatEuro, formatKM, formatLocality, formatName, formatNameWithInitial, formatPhoneNumber, formatPlate, formatPlateWithoutDashes, formatPostalCodeFromFormattedAddress, formatRegionCode, formatTime, formatVin, generateHexColor, getAvatarColor, getCleanFileName, getFileIconByMimeType, getFileKind, getFileNameFromUrl, getInitials, getMimeCategory, getRelativeTime, isHoliday, isSameDay, isolateCity, noAutofillProps, optimizeImage, parseAmount, parseIsoDate, toast, truncateFileName, truncateText, useAvatarSize };
@@ -726,6 +726,114 @@ interface PopoverProps {
726
726
  }
727
727
  declare const Popover: ({ trigger, items, children, align, side, className, }: PopoverProps) => react.JSX.Element;
728
728
 
729
+ interface SidebarProps extends Omit<HTMLAttributes<HTMLElement>, 'color'> {
730
+ /** Rétracte le panneau en rail d'icônes (64px, assez large pour des boutons de 40px comme en déplié) — contrôlé par le consommateur, comme `Tabs value`. */
731
+ collapsed?: boolean;
732
+ children?: ReactNode;
733
+ className?: string;
734
+ }
735
+ /** Panneau de navigation latéral plein hauteur, thème sombre (structure shadcn/ui, couleur `blue-800` reprise de la sidebar DeliveryApp actuelle). Compose-le avec `SidebarHeader`/`SidebarContent`/`SidebarGroup`/`SidebarMenuButton`/`SidebarFooter`. `collapsed` propage aux enfants via contexte : ils basculent seuls en rail d'icônes, sans prop à répéter. */
736
+ declare const Sidebar: react.ForwardRefExoticComponent<SidebarProps & react.RefAttributes<HTMLElement>>;
737
+
738
+ interface SidebarTriggerProps extends Omit<ButtonHTMLAttributes<HTMLButtonElement>, 'color'> {
739
+ /** État courant du `Sidebar` — oriente le chevron (replié : pointe vers la droite). */
740
+ collapsed?: boolean;
741
+ }
742
+ /** Bouton pilule qui replie/déplie le `Sidebar` — à positionner par le consommateur à cheval sur son bord droit (`className="absolute -right-3 top-3"` sur un `Sidebar className="relative"`), comme le toggle actuel de DeliveryApp. Ne porte pas l'état : le consommateur bascule son `collapsed` au clic (`onClick`) et lui passe la valeur courante pour orienter le chevron. */
743
+ declare const SidebarTrigger: react.ForwardRefExoticComponent<SidebarTriggerProps & react.RefAttributes<HTMLButtonElement>>;
744
+
745
+ type SidebarHeaderProps = HTMLAttributes<HTMLDivElement>;
746
+ /** Zone haute fixe du `Sidebar` (logo, recherche, action rapide…) — libre, le consommateur compose son propre contenu. */
747
+ declare const SidebarHeader: react.ForwardRefExoticComponent<SidebarHeaderProps & react.RefAttributes<HTMLDivElement>>;
748
+
749
+ type SidebarContentProps = HTMLAttributes<HTMLDivElement>;
750
+ /** Zone scrollable du `Sidebar`, entre `SidebarHeader` et `SidebarFooter` — accueille un ou plusieurs `SidebarGroup`. Défile sans afficher de scrollbar (le contenu reste navigable au clavier/molette/tactile, seul le rendu du rail est masqué). */
751
+ declare const SidebarContent: react.ForwardRefExoticComponent<SidebarContentProps & react.RefAttributes<HTMLDivElement>>;
752
+
753
+ interface SidebarGroupProps extends HTMLAttributes<HTMLDivElement> {
754
+ /** Titre de section (ex. "OPÉRATIONS"). Masqué automatiquement quand le `Sidebar` parent est `collapsed`. */
755
+ label?: ReactNode;
756
+ children?: ReactNode;
757
+ }
758
+ /** Section du `SidebarContent` : un libellé optionnel puis une pile de `SidebarMenuButton`. */
759
+ declare const SidebarGroup: react.ForwardRefExoticComponent<SidebarGroupProps & react.RefAttributes<HTMLDivElement>>;
760
+
761
+ interface SidebarMenuButtonProps extends Omit<ButtonHTMLAttributes<HTMLButtonElement>, 'color'> {
762
+ /** Nom de l'icône FontAwesome, sans le préfixe `fa-`. */
763
+ icon: string;
764
+ iconFamily?: FaFamily;
765
+ label: string;
766
+ active?: boolean;
767
+ /** Compteur affiché en pastille (ex. messages non lus) — masqué si `0`/`undefined`. */
768
+ badge?: number;
769
+ /** Raccourci clavier affiché en bout de ligne (ex. `"⌘K"`) — pour un déclencheur comme la recherche globale. Masqué en replié. */
770
+ shortcut?: string;
771
+ /** Élément libre en bout de ligne (ex. un chevron de `CollapsibleTrigger`) — masqué en replié, comme `shortcut`/`badge`. */
772
+ trailing?: ReactNode;
773
+ }
774
+ /** Entrée de navigation d'un `SidebarGroup` (ou déclencheur d'action, ex. recherche globale). Replié (`Sidebar collapsed`) : ne garde que l'icône et bascule `label` en tooltip au survol. */
775
+ declare const SidebarMenuButton: react.ForwardRefExoticComponent<SidebarMenuButtonProps & react.RefAttributes<HTMLButtonElement>>;
776
+
777
+ type SidebarMenuSubProps = HTMLAttributes<HTMLUListElement>;
778
+ /** Liste des sous-items d'un `SidebarMenuButton` extensible (ex. déplié via `Collapsible`) — indentée, reliée par un trait vertical, comme `SidebarMenuSub` du sidebar shadcn/ui. */
779
+ declare const SidebarMenuSub: react.ForwardRefExoticComponent<SidebarMenuSubProps & react.RefAttributes<HTMLUListElement>>;
780
+
781
+ type SidebarMenuSubItemProps = HTMLAttributes<HTMLLIElement>;
782
+ /** `<li>` d'un `SidebarMenuSub` — enveloppe un `SidebarMenuSubButton`. */
783
+ declare const SidebarMenuSubItem: react.ForwardRefExoticComponent<SidebarMenuSubItemProps & react.RefAttributes<HTMLLIElement>>;
784
+
785
+ interface SidebarMenuSubButtonProps extends ButtonHTMLAttributes<HTMLButtonElement> {
786
+ active?: boolean;
787
+ /** `default` (40px, même hauteur que les choix du popover navbar) ou `lg` (56px, pour une liste où chaque ligne doit rester bien cliquable, ex. une liste de clients). */
788
+ size?: 'default' | 'lg';
789
+ }
790
+ /** Item cliquable d'un `SidebarMenuSub` — même logique que `SidebarMenuButton`, sans icône. */
791
+ declare const SidebarMenuSubButton: react.ForwardRefExoticComponent<SidebarMenuSubButtonProps & react.RefAttributes<HTMLButtonElement>>;
792
+
793
+ type SidebarFooterProps = HTMLAttributes<HTMLDivElement>;
794
+ /** Zone basse fixe du `Sidebar` (profil, déconnexion…) — voir `SidebarUserMenu` pour le bloc profil standard. */
795
+ declare const SidebarFooter: react.ForwardRefExoticComponent<SidebarFooterProps & react.RefAttributes<HTMLDivElement>>;
796
+
797
+ interface SidebarSupportInfoProps {
798
+ phone: string;
799
+ hours: string;
800
+ icon?: string;
801
+ iconFamily?: FaFamily;
802
+ className?: string;
803
+ }
804
+ /** Bloc "contactez-nous" au-dessus du `SidebarFooter` : icône ronde + numéro + horaires — calqué sur `SidebarSupportInfo` de ClientOffice. Replié : seule l'icône reste, numéro et horaires passent en tooltip. */
805
+ declare const SidebarSupportInfo: ({ phone, hours, icon, iconFamily, className, }: SidebarSupportInfoProps) => react.JSX.Element;
806
+
807
+ type SidebarMenuSearchInputProps = InputHTMLAttributes<HTMLInputElement>;
808
+ /** Champ de recherche thème sombre pour un panneau de `SidebarUserMenu` (ex. flyout "rechercher un client…") — même composition que `SearchInput` (icône ancrée via `InputGroup`), recolorée pour un fond `bg-blue-*`. */
809
+ declare const SidebarMenuSearchInput: react.ForwardRefExoticComponent<SidebarMenuSearchInputProps & react.RefAttributes<HTMLInputElement>>;
810
+
811
+ interface SidebarUserMenuLeafAction {
812
+ /** Nom de l'icône FontAwesome, sans le préfixe `fa-`. */
813
+ icon: string;
814
+ iconFamily?: FaFamily;
815
+ label: string;
816
+ action: () => void;
817
+ }
818
+ interface SidebarUserMenuAction extends SidebarUserMenuLeafAction {
819
+ /** Transforme la ligne en déclencheur d'un panneau secondaire ouvert à droite (un seul niveau de profondeur) — `action` n'est alors pas appelée. Ignoré si `renderPanel` est fourni. */
820
+ subActions?: SidebarUserMenuLeafAction[];
821
+ /** Contenu libre du panneau secondaire (recherche + liste custom…) — prioritaire sur `subActions`. Reçoit `close`, à appeler une fois l'action terminée pour refermer tout le menu (comme `subActions` le fait automatiquement). */
822
+ renderPanel?: (close: () => void) => ReactNode;
823
+ }
824
+ interface SidebarUserMenuProps {
825
+ name: string;
826
+ email?: string;
827
+ /** Ligne libre sous `email` (ex. le nom d'un client impersoné) — sur sa propre ligne, tronquée indépendamment, pour les valeurs potentiellement longues. */
828
+ subtitle?: ReactNode;
829
+ avatarSrc?: string | null;
830
+ /** Groupes d'actions séparés par un trait (ex. `[[compte, facturation], [déconnexion]]`), comme le `NavUser` du sidebar shadcn/ui. */
831
+ actionGroups: SidebarUserMenuAction[][];
832
+ className?: string;
833
+ }
834
+ /** Bloc profil du `SidebarFooter` : avatar + nom/e-mail, ouvrant un menu d'actions groupées — calqué sur le `NavUser` du sidebar shadcn/ui (thème sombre propre au `Sidebar`, indépendant du `Popover` clair partagé). Une action avec `subActions` ouvre un panneau secondaire à droite (flyout), sur le même principe que le menu principal. Replié : seul l'avatar reste, le menu s'ouvre toujours au clic. */
835
+ declare const SidebarUserMenu: ({ name, email, subtitle, avatarSrc, actionGroups, className, }: SidebarUserMenuProps) => react.JSX.Element;
836
+
729
837
  interface TooltipProps {
730
838
  children: ReactNode;
731
839
  content: ReactNode;
@@ -1459,4 +1567,4 @@ declare const allowAutofill: (autoComplete: string) => {
1459
1567
  "data-form-type": undefined;
1460
1568
  };
1461
1569
 
1462
- export { Attachment, type AttachmentProps, type AttachmentStatus, Avatar, AvatarBadge, type AvatarBadgeConfig, type AvatarBadgeProps, AvatarFallback, type AvatarFallbackProps, AvatarGroup, type AvatarGroupProps, AvatarImage, type AvatarImageProps, type AvatarProps, Badge, type BadgeProps, Banner, type BannerAction, type BannerJustify, type BannerProps, type BannerToggle, Box, type BoxProps, Bulk, type BulkProps, type BulkSection, Button, type ButtonColor, type ButtonProps, COLOR_TOKENS, Checkbox, type CheckboxProps, Collapsible, CollapsibleContent, CollapsibleTrigger, type ColorKey, ColorPicker, type ColorPickerProps, type ColorToken, DatePicker, type DatePickerMode, type DatePickerProps, type DatePreset, Divider, type DividerProps, Drawer, DrawerBody, DrawerClose, DrawerDescription, type DrawerDirection, DrawerFooter, DrawerHeader, type DrawerProps, DrawerTitle, EmailInput, type EmailInputProps, EmptyState, type EmptyStateProps, FilePicker, type FilePickerProps, FileUploadZone, type FileUploadZoneProps, type FloatingAction, FloatingButton, type FloatingButtonProps, type FloatingSafeArea, Gantt, type GanttBand, type GanttBar, type GanttDay, GanttDot, type GanttProps, type GanttRow, GanttSwatch, Icon, IconBadge, type IconBadgeProps, type IconColor, type IconFamily, type IconProps, type IconSize, type IconTabItem, IconTabs, type IconTabsProps, IconTooltip, type IconTooltipProps, Image, type ImageProps, Input, InputGroup, InputGroupAddon, type InputGroupAddonProps, InputGroupButton, type InputGroupButtonProps, type InputGroupProps, type InputProps, Item, ItemActions, ItemContent, ItemDescription, ItemMedia, type ItemMediaProps, type ItemProps, ItemTitle, Label, type LabelProps, Layout, type LayoutProps, Link, type LinkProps, Message, MessageDateSeparator, type MessageDateSeparatorProps, type MessageProps, MessageScroller, type MessageScrollerProps, type MessageSeparatorTone, type MessageTone, type MessageVariant, MetricCard, type MetricCardProps, Modal, ModalBody, ModalClose, ModalDescription, ModalFooter, ModalHeader, type ModalProps, ModalTitle, type MultiSelectProps, type OptimizeImageOptions, type OptimizeImageResult, PageContainer, type PageContainerProps, Pagination, type PaginationProps, PasswordInput, type PasswordInputProps, PdfPreview, type PdfPreviewProps, PhoneInput, type PhoneInputMeta, type PhoneInputProps, Popover, type PopoverMenuItem, type PopoverProps, ProgressBar, type ProgressBarProps, Radio, type RadioOption, type RadioProps, ScrollArea, type ScrollAreaProps, SearchInput, type SearchInputProps, Select, type SelectOption, type SelectProps, type SingleSelectProps, Skeleton, type SkeletonProps, Spinner, type SpinnerProps, type SpinnerSize, Stepper, type StepperProps, Switch, type SwitchProps, type TabItem, Table, TableCell, type TableCellProps, type TableEmptyState, TableFooter, TableFooterCell, type TableFooterCellProps, type TableFooterProps, TableFooterRow, type TableFooterRowProps, TableHeader, TableHeaderCell, type TableHeaderCellProps, type TableHeaderProps, TableHeaderRow, type TableHeaderRowProps, type TablePagination, type TableProps, TableRow, type TableRowProps, Tabs, type TabsProps, type TabsVariant, TagBubble, type TagBubbleProps, type TagOption, TagSelect, type TagSelectProps, Text, type TextProps, Textarea, type TextareaLook, type TextareaProps, Timeline, type TimelineItem, type TimelineProps, type ToastOptions, type ToastType, Toaster, Tooltip, type TooltipProps, addBusinessDays, allowAutofill, appendCacheBuster, appendQueryParam, buttonVariants, capitalizeFirstLetter, colors, easterDate, formatAddress, formatCityFromFormattedAddress, formatCityWithPostalCode, formatDate, formatDateWithTime, formatDistance, formatDuration, formatEuro, formatKM, formatLocality, formatName, formatNameWithInitial, formatPhoneNumber, formatPlate, formatPlateWithoutDashes, formatPostalCodeFromFormattedAddress, formatRegionCode, formatTime, formatVin, generateHexColor, getAvatarColor, getCleanFileName, getFileIconByMimeType, getFileKind, getFileNameFromUrl, getInitials, getMimeCategory, getRelativeTime, isHoliday, isSameDay, isolateCity, noAutofillProps, optimizeImage, parseAmount, parseIsoDate, toast, truncateFileName, truncateText, useAvatarSize };
1570
+ export { Attachment, type AttachmentProps, type AttachmentStatus, Avatar, AvatarBadge, type AvatarBadgeConfig, type AvatarBadgeProps, AvatarFallback, type AvatarFallbackProps, AvatarGroup, type AvatarGroupProps, AvatarImage, type AvatarImageProps, type AvatarProps, Badge, type BadgeProps, Banner, type BannerAction, type BannerJustify, type BannerProps, type BannerToggle, Box, type BoxProps, Bulk, type BulkProps, type BulkSection, Button, type ButtonColor, type ButtonProps, COLOR_TOKENS, Checkbox, type CheckboxProps, Collapsible, CollapsibleContent, CollapsibleTrigger, type ColorKey, ColorPicker, type ColorPickerProps, type ColorToken, DatePicker, type DatePickerMode, type DatePickerProps, type DatePreset, Divider, type DividerProps, Drawer, DrawerBody, DrawerClose, DrawerDescription, type DrawerDirection, DrawerFooter, DrawerHeader, type DrawerProps, DrawerTitle, EmailInput, type EmailInputProps, EmptyState, type EmptyStateProps, FilePicker, type FilePickerProps, FileUploadZone, type FileUploadZoneProps, type FloatingAction, FloatingButton, type FloatingButtonProps, type FloatingSafeArea, Gantt, type GanttBand, type GanttBar, type GanttDay, GanttDot, type GanttProps, type GanttRow, GanttSwatch, Icon, IconBadge, type IconBadgeProps, type IconColor, type IconFamily, type IconProps, type IconSize, type IconTabItem, IconTabs, type IconTabsProps, IconTooltip, type IconTooltipProps, Image, type ImageProps, Input, InputGroup, InputGroupAddon, type InputGroupAddonProps, InputGroupButton, type InputGroupButtonProps, type InputGroupProps, type InputProps, Item, ItemActions, ItemContent, ItemDescription, ItemMedia, type ItemMediaProps, type ItemProps, ItemTitle, Label, type LabelProps, Layout, type LayoutProps, Link, type LinkProps, Message, MessageDateSeparator, type MessageDateSeparatorProps, type MessageProps, MessageScroller, type MessageScrollerProps, type MessageSeparatorTone, type MessageTone, type MessageVariant, MetricCard, type MetricCardProps, Modal, ModalBody, ModalClose, ModalDescription, ModalFooter, ModalHeader, type ModalProps, ModalTitle, type MultiSelectProps, type OptimizeImageOptions, type OptimizeImageResult, PageContainer, type PageContainerProps, Pagination, type PaginationProps, PasswordInput, type PasswordInputProps, PdfPreview, type PdfPreviewProps, PhoneInput, type PhoneInputMeta, type PhoneInputProps, Popover, type PopoverMenuItem, type PopoverProps, ProgressBar, type ProgressBarProps, Radio, type RadioOption, type RadioProps, ScrollArea, type ScrollAreaProps, SearchInput, type SearchInputProps, Select, type SelectOption, type SelectProps, Sidebar, SidebarContent, type SidebarContentProps, SidebarFooter, type SidebarFooterProps, SidebarGroup, type SidebarGroupProps, SidebarHeader, type SidebarHeaderProps, SidebarMenuButton, type SidebarMenuButtonProps, SidebarMenuSearchInput, type SidebarMenuSearchInputProps, SidebarMenuSub, SidebarMenuSubButton, type SidebarMenuSubButtonProps, SidebarMenuSubItem, type SidebarMenuSubItemProps, type SidebarMenuSubProps, type SidebarProps, SidebarSupportInfo, type SidebarSupportInfoProps, SidebarTrigger, type SidebarTriggerProps, SidebarUserMenu, type SidebarUserMenuAction, type SidebarUserMenuLeafAction, type SidebarUserMenuProps, type SingleSelectProps, Skeleton, type SkeletonProps, Spinner, type SpinnerProps, type SpinnerSize, Stepper, type StepperProps, Switch, type SwitchProps, type TabItem, Table, TableCell, type TableCellProps, type TableEmptyState, TableFooter, TableFooterCell, type TableFooterCellProps, type TableFooterProps, TableFooterRow, type TableFooterRowProps, TableHeader, TableHeaderCell, type TableHeaderCellProps, type TableHeaderProps, TableHeaderRow, type TableHeaderRowProps, type TablePagination, type TableProps, TableRow, type TableRowProps, Tabs, type TabsProps, type TabsVariant, TagBubble, type TagBubbleProps, type TagOption, TagSelect, type TagSelectProps, Text, type TextProps, Textarea, type TextareaLook, type TextareaProps, Timeline, type TimelineItem, type TimelineProps, type ToastOptions, type ToastType, Toaster, Tooltip, type TooltipProps, addBusinessDays, allowAutofill, appendCacheBuster, appendQueryParam, buttonVariants, capitalizeFirstLetter, colors, easterDate, formatAddress, formatCityFromFormattedAddress, formatCityWithPostalCode, formatDate, formatDateWithTime, formatDistance, formatDuration, formatEuro, formatKM, formatLocality, formatName, formatNameWithInitial, formatPhoneNumber, formatPlate, formatPlateWithoutDashes, formatPostalCodeFromFormattedAddress, formatRegionCode, formatTime, formatVin, generateHexColor, getAvatarColor, getCleanFileName, getFileIconByMimeType, getFileKind, getFileNameFromUrl, getInitials, getMimeCategory, getRelativeTime, isHoliday, isSameDay, isolateCity, noAutofillProps, optimizeImage, parseAmount, parseIsoDate, toast, truncateFileName, truncateText, useAvatarSize };