design-zystem 1.0.326 → 1.0.328

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
@@ -483,6 +483,8 @@ interface InputProps extends Omit<HTMLAttributes<HTMLDivElement>, 'onChange' | '
483
483
  onBlur?: (e: FocusEvent<HTMLInputElement | HTMLTextAreaElement>) => void;
484
484
  onKeyDown?: (e: KeyboardEvent<HTMLInputElement | HTMLTextAreaElement>) => void;
485
485
  asTextArea?: boolean;
486
+ /** Lignes visibles d'un `asTextArea` : sans valeur, le navigateur en impose deux. */
487
+ rows?: number;
486
488
  noFlex?: boolean;
487
489
  name?: string;
488
490
  min?: string | number;
package/dist/index.d.ts CHANGED
@@ -483,6 +483,8 @@ interface InputProps extends Omit<HTMLAttributes<HTMLDivElement>, 'onChange' | '
483
483
  onBlur?: (e: FocusEvent<HTMLInputElement | HTMLTextAreaElement>) => void;
484
484
  onKeyDown?: (e: KeyboardEvent<HTMLInputElement | HTMLTextAreaElement>) => void;
485
485
  asTextArea?: boolean;
486
+ /** Lignes visibles d'un `asTextArea` : sans valeur, le navigateur en impose deux. */
487
+ rows?: number;
486
488
  noFlex?: boolean;
487
489
  name?: string;
488
490
  min?: string | number;
package/dist/index.js CHANGED
@@ -6881,6 +6881,8 @@ var formatDate = (dateString, type = "date", language = "en") => {
6881
6881
  });
6882
6882
  return `${dayPart} ${formatTime2()}`;
6883
6883
  }
6884
+ case "time":
6885
+ return formatTime2();
6884
6886
  case "longDate":
6885
6887
  return format({ day: "numeric", month: "long", year: "numeric" });
6886
6888
  case "dayMonth": {
package/dist/index.mjs CHANGED
@@ -6758,6 +6758,8 @@ var formatDate = (dateString, type = "date", language = "en") => {
6758
6758
  });
6759
6759
  return `${dayPart} ${formatTime2()}`;
6760
6760
  }
6761
+ case "time":
6762
+ return formatTime2();
6761
6763
  case "longDate":
6762
6764
  return format({ day: "numeric", month: "long", year: "numeric" });
6763
6765
  case "dayMonth": {
@@ -1,5 +1,5 @@
1
1
  import * as react from 'react';
2
- import { HTMLAttributes, AnchorHTMLAttributes, ElementType, ImgHTMLAttributes, ButtonHTMLAttributes, ReactNode, InputHTMLAttributes, TextareaHTMLAttributes, MouseEvent, ComponentPropsWithoutRef } from 'react';
2
+ import { HTMLAttributes, AnchorHTMLAttributes, ElementType, ImgHTMLAttributes, ReactNode, ButtonHTMLAttributes, InputHTMLAttributes, TextareaHTMLAttributes, MouseEvent, ComponentPropsWithoutRef, Ref, RefObject } from 'react';
3
3
  import * as class_variance_authority_types from 'class-variance-authority/types';
4
4
  import { VariantProps } from 'class-variance-authority';
5
5
  import * as RadixLabel from '@radix-ui/react-label';
@@ -75,7 +75,7 @@ interface DividerProps extends VariantProps<typeof dividerVariants> {
75
75
  declare const Divider: ({ orientation, className, }: DividerProps) => react.JSX.Element;
76
76
 
77
77
  declare const linkVariants: (props?: ({
78
- color?: "blue-700" | "blue-900" | "blue-950" | "red-900" | "red-500" | "green-700" | "grey-600" | "yellow-500" | "yellow-200" | "purple-700" | null | undefined;
78
+ color?: "white" | "blue-700" | "blue-900" | "blue-950" | "red-900" | "red-500" | "green-700" | "grey-600" | "yellow-500" | "yellow-200" | "purple-700" | null | undefined;
79
79
  size?: "s" | "xs" | "m" | "l" | null | undefined;
80
80
  } & class_variance_authority_types.ClassProp) | undefined) => string;
81
81
  interface LinkProps extends Omit<AnchorHTMLAttributes<HTMLAnchorElement>, 'color'>, VariantProps<typeof linkVariants> {
@@ -130,6 +130,39 @@ interface IconProps extends Omit<HTMLAttributes<HTMLElement>, 'color' | 'onClick
130
130
  */
131
131
  declare const Icon: react.ForwardRefExoticComponent<IconProps & react.RefAttributes<HTMLElement>>;
132
132
 
133
+ interface IconTooltipProps {
134
+ /** Nom de l'icône FontAwesome, sans le préfixe `fa-`. */
135
+ name: string;
136
+ /**
137
+ * Contenu de l'infobulle. Sert aussi d'`aria-label` quand l'icône est
138
+ * cliquable : décris l'action par un verbe (« Supprimer la mission »), pas
139
+ * le glyphe.
140
+ */
141
+ label: ReactNode;
142
+ /** Présent : l'icône devient un vrai bouton. Absent : simple glyphe légendé. */
143
+ onClick?: () => void;
144
+ disabled?: boolean;
145
+ family?: IconFamily;
146
+ size?: IconSize;
147
+ color?: IconColor;
148
+ side?: 'top' | 'bottom' | 'left' | 'right';
149
+ align?: 'start' | 'center' | 'end';
150
+ className?: string;
151
+ }
152
+ /**
153
+ * Icône légendée par une infobulle.
154
+ *
155
+ * Monté directement sur une `Icon`, un `Tooltip` lui injecte ses gestionnaires
156
+ * via `asChild` — dont un `onClick` — et l'icône bascule alors en bouton, avec
157
+ * son fond rond au survol, même purement décorative. Ce composant tranche à
158
+ * partir du seul signal fiable : l'`onClick` que le consommateur passe ici.
159
+ *
160
+ * Sans `onClick`, l'infobulle s'accroche à une enveloppe et l'icône reste un
161
+ * glyphe ; avec, elle s'accroche au bouton lui-même, pour que l'`aria-describedby`
162
+ * de Radix porte bien sur l'élément interactif.
163
+ */
164
+ declare const IconTooltip: ({ name, label, onClick, disabled, family, size, color, side, align, className, }: IconTooltipProps) => react.JSX.Element;
165
+
133
166
  declare const colors: {
134
167
  readonly neutral_00: "#FFFFFF00";
135
168
  readonly neutral_50: "#fff";
@@ -651,10 +684,17 @@ interface DrawerProps {
651
684
  direction?: DrawerDirection;
652
685
  /** Largeur (directions `left`/`right`) ou hauteur (directions `top`/`bottom`) du panneau. */
653
686
  size?: string;
687
+ /**
688
+ * `false` : le panneau n'inerte plus la page et ne capture plus le focus — à
689
+ * utiliser dès qu'il ouvre lui-même une modale (sinon celle-ci, montée hors
690
+ * de son DOM, devient inerte et injoignable au clavier). Il ne se ferme alors
691
+ * plus au clic extérieur, seulement par son bouton de fermeture.
692
+ */
693
+ modal?: boolean;
654
694
  className?: string;
655
695
  }
656
696
  /** Panneau — construit sur `vaul` (la lib derrière le vrai `Drawer` de shadcn). Compose-le avec `DrawerHeader`/`DrawerTitle`/`DrawerDescription`/`DrawerBody`/`DrawerFooter`/`DrawerClose`, comme le `Table`. Flotte : une marge le sépare des bords de la page, l'overlay se voit tout autour. */
657
- declare const Drawer: ({ children, open, onClose, direction, size, className, }: DrawerProps) => react.JSX.Element;
697
+ declare const Drawer: ({ children, open, onClose, direction, size, modal, className, }: DrawerProps) => react.JSX.Element;
658
698
  declare const DrawerHeader: ({ className, ...props }: React.HTMLAttributes<HTMLDivElement>) => react.JSX.Element;
659
699
  declare const DrawerTitle: ({ className, ...props }: React.ComponentPropsWithoutRef<typeof Drawer$1.Title>) => react.JSX.Element;
660
700
  declare const DrawerDescription: ({ className, ...props }: React.ComponentPropsWithoutRef<typeof Drawer$1.Description>) => react.JSX.Element;
@@ -772,6 +812,17 @@ interface FloatingAction {
772
812
  badge?: number;
773
813
  onClick: () => void;
774
814
  }
815
+ /**
816
+ * Marges à retrancher des bords de la fenêtre pour décider du sens de l'arc :
817
+ * une barre latérale ou un bandeau fixe recouvre le bouton sans réduire le
818
+ * viewport. Les valeurs sont en pixels, absentes = 0.
819
+ */
820
+ interface FloatingSafeArea {
821
+ top?: number;
822
+ right?: number;
823
+ bottom?: number;
824
+ left?: number;
825
+ }
775
826
  interface FloatingButtonProps {
776
827
  isOpen: boolean;
777
828
  onToggle: () => void;
@@ -784,8 +835,10 @@ interface FloatingButtonProps {
784
835
  draggable?: boolean;
785
836
  /** Sauvegarde la position glissée dans localStorage sous cette clé et la restaure au montage — sans clé, la position ne survit pas à un refresh/changement de page. */
786
837
  persistKey?: string;
838
+ /** Zones des bords déjà occupées par des éléments fixes (barre latérale…), dont l'arc doit se tenir à l'écart. */
839
+ safeArea?: FloatingSafeArea;
787
840
  }
788
- declare const FloatingButton: ({ isOpen, onToggle, actions, mainBadge, icon, label, color, draggable, persistKey, }: FloatingButtonProps) => react.JSX.Element;
841
+ declare const FloatingButton: ({ isOpen, onToggle, actions, mainBadge, icon, label, color, draggable, persistKey, safeArea, }: FloatingButtonProps) => react.JSX.Element;
789
842
 
790
843
  interface MetricCardProps {
791
844
  /** Nom de l'icône FontAwesome, sans le préfixe `fa-` (ex. "truck"). */
@@ -961,6 +1014,25 @@ interface FileUploadZoneProps {
961
1014
  }
962
1015
  declare const FileUploadZone: ({ onSave, multiple, onSaveMultiple, onRemove, onError, accept, acceptOnlyPdf, maxSizeMB, label, sublabel, browseLabel, disabled, showPreview, previewUrl: controlledPreviewUrl, fullWidth, compact, showIcon, showFileName, className, }: FileUploadZoneProps) => react.JSX.Element;
963
1016
 
1017
+ interface FilePickerProps {
1018
+ /** Décrit l'action, pas l'icône (« Joindre un fichier ») — sert au tooltip et à l'`aria-label`. */
1019
+ label: string;
1020
+ /** Appelé avec les fichiers choisis. Jamais avec un tableau vide (annulation ignorée). */
1021
+ onSelect: (files: File[]) => void;
1022
+ /** Types acceptés, syntaxe de l'attribut `accept` : `"image/*"`, `".pdf,.docx"`. Sans valeur, tout est accepté. */
1023
+ accept?: string;
1024
+ multiple?: boolean;
1025
+ /** Nom de l'icône FontAwesome du déclencheur, sans le préfixe `fa-`. */
1026
+ icon?: string;
1027
+ iconFamily?: IconFamily;
1028
+ iconSize?: IconSize;
1029
+ iconColor?: IconColor;
1030
+ disabled?: boolean;
1031
+ className?: string;
1032
+ }
1033
+ /** Déclencheur de sélection de fichier : une icône sous tooltip, l'`input file` natif restant caché à l'intérieur. Pour une zone de dépôt pleine largeur, voir `FileUploadZone`. */
1034
+ declare const FilePicker: ({ label, onSelect, accept, multiple, icon, iconFamily, iconSize, iconColor, disabled, className, }: FilePickerProps) => react.JSX.Element;
1035
+
964
1036
  declare const itemVariants: (props?: ({
965
1037
  variant?: "default" | "outline" | "muted" | null | undefined;
966
1038
  size?: "default" | "sm" | null | undefined;
@@ -1012,9 +1084,103 @@ declare const PdfPreview: ({ file, width, maxHeight, className, }: PdfPreviewPro
1012
1084
  interface ScrollAreaProps extends Omit<ComponentPropsWithoutRef<typeof RadixScrollArea.Root>, 'children'> {
1013
1085
  children?: ReactNode;
1014
1086
  orientation?: 'vertical' | 'horizontal' | 'both';
1087
+ /** Ref sur le viewport Radix — le noeud qui scrolle réellement. Indispensable pour piloter `scrollTop` (auto-scroll en bas d'une messagerie). */
1088
+ viewportRef?: Ref<HTMLDivElement>;
1015
1089
  }
1016
1090
  /** Construit sur `@radix-ui/react-scroll-area` (comme le `ScrollArea` de shadcn) — scrollbars custom au lieu de celles du système. */
1017
- declare const ScrollArea: ({ children, className, orientation, ...props }: ScrollAreaProps) => react.JSX.Element;
1091
+ declare const ScrollArea: ({ children, className, orientation, viewportRef, ...props }: ScrollAreaProps) => react.JSX.Element;
1092
+
1093
+ type MessageVariant = 'own' | 'other';
1094
+ type MessageTone = 'solid' | 'soft';
1095
+ interface MessageProps extends HTMLAttributes<HTMLDivElement> {
1096
+ /** `own` = message de l'utilisateur courant (aligné à droite), `other` = interlocuteur (aligné à gauche). */
1097
+ variant?: MessageVariant;
1098
+ /** `solid` = bulle pleine (messagerie), `soft` = bulle pâle (commentaires, fils de discussion). */
1099
+ tone?: MessageTone;
1100
+ /** Contenu du message — texte brut ou nœuds riches (mentions, liens cliquables). */
1101
+ children?: ReactNode;
1102
+ /** Nom de l'auteur, affiché au-dessus de la bulle quand `showAuthor`. */
1103
+ authorName?: string;
1104
+ /** URL de la photo de l'auteur — la résolution du chemin de storage reste côté app. */
1105
+ authorSrc?: string | null;
1106
+ /** Dernier message d'une séquence : avatar + nom affichés sous la bulle. Sinon l'espace de l'avatar reste réservé pour garder l'alignement. */
1107
+ showAuthor?: boolean;
1108
+ /**
1109
+ * `false` : `authorName` ne sert qu'aux initiales de l'avatar, sans ligne de
1110
+ * nom au-dessus de la bulle — cas d'une conversation à deux, où l'avatar
1111
+ * suffit à désigner l'auteur.
1112
+ */
1113
+ showAuthorName?: boolean;
1114
+ avatarSize?: number;
1115
+ /** Horodatage déjà formaté (`formatTime`, `formatDate`) — affiché en bas de bulle. */
1116
+ time?: ReactNode;
1117
+ /** Coin plat côté auteur, style bulle de messagerie. */
1118
+ tail?: boolean;
1119
+ /** Affiche `deletedLabel` en italique à la place du contenu. */
1120
+ deleted?: boolean;
1121
+ deletedLabel?: string;
1122
+ /** Ligne sous la bulle : accusé de lecture, « Lu par … », état d'envoi. */
1123
+ status?: ReactNode;
1124
+ /** Actions contextuelles posées à côté de la bulle (suppression…). */
1125
+ actions?: ReactNode;
1126
+ /** `false` : le contenu est rendu sans bulle ni padding (pièce jointe, image, message audio). */
1127
+ bubble?: boolean;
1128
+ /** Largeur maximale de la bulle. */
1129
+ maxWidth?: string;
1130
+ }
1131
+ /** Bulle de message unitaire — messagerie convoyeur, commentaires, fils de discussion, incidents. La liste, les séparateurs de date et l'auto-scroll sont gérés par `MessageScroller`. */
1132
+ declare const Message: react.ForwardRefExoticComponent<MessageProps & react.RefAttributes<HTMLDivElement>>;
1133
+
1134
+ type MessageSeparatorTone = 'neutral' | 'alert';
1135
+ interface MessageDateSeparatorProps {
1136
+ /** Date déjà formatée (`formatDate(date, 'weekday', 'fr')`) — le formatage reste côté app. */
1137
+ label: ReactNode;
1138
+ /** `alert` : trait et libellé en rouge, pour marquer la reprise des messages non lus. */
1139
+ tone?: MessageSeparatorTone;
1140
+ className?: string;
1141
+ }
1142
+ /** Ligne de séparation légendée entre deux blocs de messages : changement de journée, ou reprise des non-lus. */
1143
+ declare const MessageDateSeparator: ({ label, tone, className, }: MessageDateSeparatorProps) => react.JSX.Element;
1144
+ /** Retraits du contenu — mêmes noms et même échelle que `Layout`. */
1145
+ type MessageScrollerPadding = Pick<LayoutProps, 'padding' | 'paddingX' | 'paddingY' | 'paddingTop' | 'paddingRight' | 'paddingBottom' | 'paddingLeft'>;
1146
+ interface MessageScrollerProps extends MessageScrollerPadding {
1147
+ /** Les `Message` (et les `MessageDateSeparator` intercalés) à afficher. */
1148
+ children?: ReactNode;
1149
+ /**
1150
+ * Hauteur fixe de la zone scrollable. Une `maxHeight` ne contraindrait pas le
1151
+ * viewport Radix (`height: 100%` face à un `max-height` parent) — cf. `ScrollArea`.
1152
+ */
1153
+ height?: string | number;
1154
+ /** Espacement entre messages (échelle Tailwind, comme `Layout`). */
1155
+ gap?: LayoutProps['gap'];
1156
+ /** Bloc au-dessus des messages : bouton « Charger les messages plus anciens », bandeau d'info. */
1157
+ header?: ReactNode;
1158
+ /** Bloc sous les messages : indicateur de frappe, séparateur de fin. */
1159
+ footer?: ReactNode;
1160
+ /** Affiché à la place des messages quand `isEmpty`. */
1161
+ emptyState?: ReactNode;
1162
+ isEmpty?: boolean;
1163
+ /** Affiché à la place de tout le contenu pendant le premier chargement. */
1164
+ loadingState?: ReactNode;
1165
+ isLoading?: boolean;
1166
+ /** Descend en bas de liste au montage puis à chaque changement de `scrollKey`. */
1167
+ autoScroll?: boolean;
1168
+ /**
1169
+ * Déclencheur du scroll automatique — typiquement le nombre de messages ou
1170
+ * l'id du dernier. Sans valeur, seul le montage descend en bas.
1171
+ */
1172
+ scrollKey?: string | number;
1173
+ /**
1174
+ * Ref sur le noeud qui scrolle réellement, pour les fils que `autoScroll` ne
1175
+ * suffit pas à piloter : liste paginée dont il faut garder la position quand
1176
+ * on préfixe des messages plus anciens, bouton « revenir au dernier
1177
+ * message », chargement déclenché par la proximité du haut.
1178
+ */
1179
+ viewportRef?: RefObject<HTMLDivElement>;
1180
+ className?: string;
1181
+ }
1182
+ /** Zone scrollable d'une liste de messages : hauteur fixe, espacement, slots haut/bas, états vide/chargement, et scroll automatique en bas à l'arrivée d'un message. */
1183
+ declare const MessageScroller: ({ children, height, gap, padding, paddingX, paddingY, paddingTop, paddingRight, paddingBottom, paddingLeft, header, footer, emptyState, isEmpty, loadingState, isLoading, autoScroll, scrollKey, viewportRef, className, }: MessageScrollerProps) => react.JSX.Element;
1018
1184
 
1019
1185
  interface StepperProps {
1020
1186
  numberOfSteps: number;
@@ -1070,6 +1236,7 @@ declare const DatePicker: ({ mode, value, onChange, startDate, endDate, onRangeC
1070
1236
  * - "weekdayDay": jour court + jour
1071
1237
  * - "weekdayYear": jour court + jour + mois + année
1072
1238
  * - "weekdayTime": jour/date + heure (24h)
1239
+ * - "time": heure seule (24h) (ex: 14:32)
1073
1240
  * - "longDate": jour + mois complet + année, sans jour de semaine (ex: 16 mai 2024)
1074
1241
  * - "dateISO": format ISO YYYY-MM-DD (safe timezone pour le backend)
1075
1242
  */
@@ -1257,4 +1424,4 @@ declare const allowAutofill: (autoComplete: string) => {
1257
1424
  "data-form-type": undefined;
1258
1425
  };
1259
1426
 
1260
- 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 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, FileUploadZone, type FileUploadZoneProps, type FloatingAction, FloatingButton, type FloatingButtonProps, 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, 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, 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 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 };
1427
+ 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 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 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 };
@@ -1,5 +1,5 @@
1
1
  import * as react from 'react';
2
- import { HTMLAttributes, AnchorHTMLAttributes, ElementType, ImgHTMLAttributes, ButtonHTMLAttributes, ReactNode, InputHTMLAttributes, TextareaHTMLAttributes, MouseEvent, ComponentPropsWithoutRef } from 'react';
2
+ import { HTMLAttributes, AnchorHTMLAttributes, ElementType, ImgHTMLAttributes, ReactNode, ButtonHTMLAttributes, InputHTMLAttributes, TextareaHTMLAttributes, MouseEvent, ComponentPropsWithoutRef, Ref, RefObject } from 'react';
3
3
  import * as class_variance_authority_types from 'class-variance-authority/types';
4
4
  import { VariantProps } from 'class-variance-authority';
5
5
  import * as RadixLabel from '@radix-ui/react-label';
@@ -75,7 +75,7 @@ interface DividerProps extends VariantProps<typeof dividerVariants> {
75
75
  declare const Divider: ({ orientation, className, }: DividerProps) => react.JSX.Element;
76
76
 
77
77
  declare const linkVariants: (props?: ({
78
- color?: "blue-700" | "blue-900" | "blue-950" | "red-900" | "red-500" | "green-700" | "grey-600" | "yellow-500" | "yellow-200" | "purple-700" | null | undefined;
78
+ color?: "white" | "blue-700" | "blue-900" | "blue-950" | "red-900" | "red-500" | "green-700" | "grey-600" | "yellow-500" | "yellow-200" | "purple-700" | null | undefined;
79
79
  size?: "s" | "xs" | "m" | "l" | null | undefined;
80
80
  } & class_variance_authority_types.ClassProp) | undefined) => string;
81
81
  interface LinkProps extends Omit<AnchorHTMLAttributes<HTMLAnchorElement>, 'color'>, VariantProps<typeof linkVariants> {
@@ -130,6 +130,39 @@ interface IconProps extends Omit<HTMLAttributes<HTMLElement>, 'color' | 'onClick
130
130
  */
131
131
  declare const Icon: react.ForwardRefExoticComponent<IconProps & react.RefAttributes<HTMLElement>>;
132
132
 
133
+ interface IconTooltipProps {
134
+ /** Nom de l'icône FontAwesome, sans le préfixe `fa-`. */
135
+ name: string;
136
+ /**
137
+ * Contenu de l'infobulle. Sert aussi d'`aria-label` quand l'icône est
138
+ * cliquable : décris l'action par un verbe (« Supprimer la mission »), pas
139
+ * le glyphe.
140
+ */
141
+ label: ReactNode;
142
+ /** Présent : l'icône devient un vrai bouton. Absent : simple glyphe légendé. */
143
+ onClick?: () => void;
144
+ disabled?: boolean;
145
+ family?: IconFamily;
146
+ size?: IconSize;
147
+ color?: IconColor;
148
+ side?: 'top' | 'bottom' | 'left' | 'right';
149
+ align?: 'start' | 'center' | 'end';
150
+ className?: string;
151
+ }
152
+ /**
153
+ * Icône légendée par une infobulle.
154
+ *
155
+ * Monté directement sur une `Icon`, un `Tooltip` lui injecte ses gestionnaires
156
+ * via `asChild` — dont un `onClick` — et l'icône bascule alors en bouton, avec
157
+ * son fond rond au survol, même purement décorative. Ce composant tranche à
158
+ * partir du seul signal fiable : l'`onClick` que le consommateur passe ici.
159
+ *
160
+ * Sans `onClick`, l'infobulle s'accroche à une enveloppe et l'icône reste un
161
+ * glyphe ; avec, elle s'accroche au bouton lui-même, pour que l'`aria-describedby`
162
+ * de Radix porte bien sur l'élément interactif.
163
+ */
164
+ declare const IconTooltip: ({ name, label, onClick, disabled, family, size, color, side, align, className, }: IconTooltipProps) => react.JSX.Element;
165
+
133
166
  declare const colors: {
134
167
  readonly neutral_00: "#FFFFFF00";
135
168
  readonly neutral_50: "#fff";
@@ -651,10 +684,17 @@ interface DrawerProps {
651
684
  direction?: DrawerDirection;
652
685
  /** Largeur (directions `left`/`right`) ou hauteur (directions `top`/`bottom`) du panneau. */
653
686
  size?: string;
687
+ /**
688
+ * `false` : le panneau n'inerte plus la page et ne capture plus le focus — à
689
+ * utiliser dès qu'il ouvre lui-même une modale (sinon celle-ci, montée hors
690
+ * de son DOM, devient inerte et injoignable au clavier). Il ne se ferme alors
691
+ * plus au clic extérieur, seulement par son bouton de fermeture.
692
+ */
693
+ modal?: boolean;
654
694
  className?: string;
655
695
  }
656
696
  /** Panneau — construit sur `vaul` (la lib derrière le vrai `Drawer` de shadcn). Compose-le avec `DrawerHeader`/`DrawerTitle`/`DrawerDescription`/`DrawerBody`/`DrawerFooter`/`DrawerClose`, comme le `Table`. Flotte : une marge le sépare des bords de la page, l'overlay se voit tout autour. */
657
- declare const Drawer: ({ children, open, onClose, direction, size, className, }: DrawerProps) => react.JSX.Element;
697
+ declare const Drawer: ({ children, open, onClose, direction, size, modal, className, }: DrawerProps) => react.JSX.Element;
658
698
  declare const DrawerHeader: ({ className, ...props }: React.HTMLAttributes<HTMLDivElement>) => react.JSX.Element;
659
699
  declare const DrawerTitle: ({ className, ...props }: React.ComponentPropsWithoutRef<typeof Drawer$1.Title>) => react.JSX.Element;
660
700
  declare const DrawerDescription: ({ className, ...props }: React.ComponentPropsWithoutRef<typeof Drawer$1.Description>) => react.JSX.Element;
@@ -772,6 +812,17 @@ interface FloatingAction {
772
812
  badge?: number;
773
813
  onClick: () => void;
774
814
  }
815
+ /**
816
+ * Marges à retrancher des bords de la fenêtre pour décider du sens de l'arc :
817
+ * une barre latérale ou un bandeau fixe recouvre le bouton sans réduire le
818
+ * viewport. Les valeurs sont en pixels, absentes = 0.
819
+ */
820
+ interface FloatingSafeArea {
821
+ top?: number;
822
+ right?: number;
823
+ bottom?: number;
824
+ left?: number;
825
+ }
775
826
  interface FloatingButtonProps {
776
827
  isOpen: boolean;
777
828
  onToggle: () => void;
@@ -784,8 +835,10 @@ interface FloatingButtonProps {
784
835
  draggable?: boolean;
785
836
  /** Sauvegarde la position glissée dans localStorage sous cette clé et la restaure au montage — sans clé, la position ne survit pas à un refresh/changement de page. */
786
837
  persistKey?: string;
838
+ /** Zones des bords déjà occupées par des éléments fixes (barre latérale…), dont l'arc doit se tenir à l'écart. */
839
+ safeArea?: FloatingSafeArea;
787
840
  }
788
- declare const FloatingButton: ({ isOpen, onToggle, actions, mainBadge, icon, label, color, draggable, persistKey, }: FloatingButtonProps) => react.JSX.Element;
841
+ declare const FloatingButton: ({ isOpen, onToggle, actions, mainBadge, icon, label, color, draggable, persistKey, safeArea, }: FloatingButtonProps) => react.JSX.Element;
789
842
 
790
843
  interface MetricCardProps {
791
844
  /** Nom de l'icône FontAwesome, sans le préfixe `fa-` (ex. "truck"). */
@@ -961,6 +1014,25 @@ interface FileUploadZoneProps {
961
1014
  }
962
1015
  declare const FileUploadZone: ({ onSave, multiple, onSaveMultiple, onRemove, onError, accept, acceptOnlyPdf, maxSizeMB, label, sublabel, browseLabel, disabled, showPreview, previewUrl: controlledPreviewUrl, fullWidth, compact, showIcon, showFileName, className, }: FileUploadZoneProps) => react.JSX.Element;
963
1016
 
1017
+ interface FilePickerProps {
1018
+ /** Décrit l'action, pas l'icône (« Joindre un fichier ») — sert au tooltip et à l'`aria-label`. */
1019
+ label: string;
1020
+ /** Appelé avec les fichiers choisis. Jamais avec un tableau vide (annulation ignorée). */
1021
+ onSelect: (files: File[]) => void;
1022
+ /** Types acceptés, syntaxe de l'attribut `accept` : `"image/*"`, `".pdf,.docx"`. Sans valeur, tout est accepté. */
1023
+ accept?: string;
1024
+ multiple?: boolean;
1025
+ /** Nom de l'icône FontAwesome du déclencheur, sans le préfixe `fa-`. */
1026
+ icon?: string;
1027
+ iconFamily?: IconFamily;
1028
+ iconSize?: IconSize;
1029
+ iconColor?: IconColor;
1030
+ disabled?: boolean;
1031
+ className?: string;
1032
+ }
1033
+ /** Déclencheur de sélection de fichier : une icône sous tooltip, l'`input file` natif restant caché à l'intérieur. Pour une zone de dépôt pleine largeur, voir `FileUploadZone`. */
1034
+ declare const FilePicker: ({ label, onSelect, accept, multiple, icon, iconFamily, iconSize, iconColor, disabled, className, }: FilePickerProps) => react.JSX.Element;
1035
+
964
1036
  declare const itemVariants: (props?: ({
965
1037
  variant?: "default" | "outline" | "muted" | null | undefined;
966
1038
  size?: "default" | "sm" | null | undefined;
@@ -1012,9 +1084,103 @@ declare const PdfPreview: ({ file, width, maxHeight, className, }: PdfPreviewPro
1012
1084
  interface ScrollAreaProps extends Omit<ComponentPropsWithoutRef<typeof RadixScrollArea.Root>, 'children'> {
1013
1085
  children?: ReactNode;
1014
1086
  orientation?: 'vertical' | 'horizontal' | 'both';
1087
+ /** Ref sur le viewport Radix — le noeud qui scrolle réellement. Indispensable pour piloter `scrollTop` (auto-scroll en bas d'une messagerie). */
1088
+ viewportRef?: Ref<HTMLDivElement>;
1015
1089
  }
1016
1090
  /** Construit sur `@radix-ui/react-scroll-area` (comme le `ScrollArea` de shadcn) — scrollbars custom au lieu de celles du système. */
1017
- declare const ScrollArea: ({ children, className, orientation, ...props }: ScrollAreaProps) => react.JSX.Element;
1091
+ declare const ScrollArea: ({ children, className, orientation, viewportRef, ...props }: ScrollAreaProps) => react.JSX.Element;
1092
+
1093
+ type MessageVariant = 'own' | 'other';
1094
+ type MessageTone = 'solid' | 'soft';
1095
+ interface MessageProps extends HTMLAttributes<HTMLDivElement> {
1096
+ /** `own` = message de l'utilisateur courant (aligné à droite), `other` = interlocuteur (aligné à gauche). */
1097
+ variant?: MessageVariant;
1098
+ /** `solid` = bulle pleine (messagerie), `soft` = bulle pâle (commentaires, fils de discussion). */
1099
+ tone?: MessageTone;
1100
+ /** Contenu du message — texte brut ou nœuds riches (mentions, liens cliquables). */
1101
+ children?: ReactNode;
1102
+ /** Nom de l'auteur, affiché au-dessus de la bulle quand `showAuthor`. */
1103
+ authorName?: string;
1104
+ /** URL de la photo de l'auteur — la résolution du chemin de storage reste côté app. */
1105
+ authorSrc?: string | null;
1106
+ /** Dernier message d'une séquence : avatar + nom affichés sous la bulle. Sinon l'espace de l'avatar reste réservé pour garder l'alignement. */
1107
+ showAuthor?: boolean;
1108
+ /**
1109
+ * `false` : `authorName` ne sert qu'aux initiales de l'avatar, sans ligne de
1110
+ * nom au-dessus de la bulle — cas d'une conversation à deux, où l'avatar
1111
+ * suffit à désigner l'auteur.
1112
+ */
1113
+ showAuthorName?: boolean;
1114
+ avatarSize?: number;
1115
+ /** Horodatage déjà formaté (`formatTime`, `formatDate`) — affiché en bas de bulle. */
1116
+ time?: ReactNode;
1117
+ /** Coin plat côté auteur, style bulle de messagerie. */
1118
+ tail?: boolean;
1119
+ /** Affiche `deletedLabel` en italique à la place du contenu. */
1120
+ deleted?: boolean;
1121
+ deletedLabel?: string;
1122
+ /** Ligne sous la bulle : accusé de lecture, « Lu par … », état d'envoi. */
1123
+ status?: ReactNode;
1124
+ /** Actions contextuelles posées à côté de la bulle (suppression…). */
1125
+ actions?: ReactNode;
1126
+ /** `false` : le contenu est rendu sans bulle ni padding (pièce jointe, image, message audio). */
1127
+ bubble?: boolean;
1128
+ /** Largeur maximale de la bulle. */
1129
+ maxWidth?: string;
1130
+ }
1131
+ /** Bulle de message unitaire — messagerie convoyeur, commentaires, fils de discussion, incidents. La liste, les séparateurs de date et l'auto-scroll sont gérés par `MessageScroller`. */
1132
+ declare const Message: react.ForwardRefExoticComponent<MessageProps & react.RefAttributes<HTMLDivElement>>;
1133
+
1134
+ type MessageSeparatorTone = 'neutral' | 'alert';
1135
+ interface MessageDateSeparatorProps {
1136
+ /** Date déjà formatée (`formatDate(date, 'weekday', 'fr')`) — le formatage reste côté app. */
1137
+ label: ReactNode;
1138
+ /** `alert` : trait et libellé en rouge, pour marquer la reprise des messages non lus. */
1139
+ tone?: MessageSeparatorTone;
1140
+ className?: string;
1141
+ }
1142
+ /** Ligne de séparation légendée entre deux blocs de messages : changement de journée, ou reprise des non-lus. */
1143
+ declare const MessageDateSeparator: ({ label, tone, className, }: MessageDateSeparatorProps) => react.JSX.Element;
1144
+ /** Retraits du contenu — mêmes noms et même échelle que `Layout`. */
1145
+ type MessageScrollerPadding = Pick<LayoutProps, 'padding' | 'paddingX' | 'paddingY' | 'paddingTop' | 'paddingRight' | 'paddingBottom' | 'paddingLeft'>;
1146
+ interface MessageScrollerProps extends MessageScrollerPadding {
1147
+ /** Les `Message` (et les `MessageDateSeparator` intercalés) à afficher. */
1148
+ children?: ReactNode;
1149
+ /**
1150
+ * Hauteur fixe de la zone scrollable. Une `maxHeight` ne contraindrait pas le
1151
+ * viewport Radix (`height: 100%` face à un `max-height` parent) — cf. `ScrollArea`.
1152
+ */
1153
+ height?: string | number;
1154
+ /** Espacement entre messages (échelle Tailwind, comme `Layout`). */
1155
+ gap?: LayoutProps['gap'];
1156
+ /** Bloc au-dessus des messages : bouton « Charger les messages plus anciens », bandeau d'info. */
1157
+ header?: ReactNode;
1158
+ /** Bloc sous les messages : indicateur de frappe, séparateur de fin. */
1159
+ footer?: ReactNode;
1160
+ /** Affiché à la place des messages quand `isEmpty`. */
1161
+ emptyState?: ReactNode;
1162
+ isEmpty?: boolean;
1163
+ /** Affiché à la place de tout le contenu pendant le premier chargement. */
1164
+ loadingState?: ReactNode;
1165
+ isLoading?: boolean;
1166
+ /** Descend en bas de liste au montage puis à chaque changement de `scrollKey`. */
1167
+ autoScroll?: boolean;
1168
+ /**
1169
+ * Déclencheur du scroll automatique — typiquement le nombre de messages ou
1170
+ * l'id du dernier. Sans valeur, seul le montage descend en bas.
1171
+ */
1172
+ scrollKey?: string | number;
1173
+ /**
1174
+ * Ref sur le noeud qui scrolle réellement, pour les fils que `autoScroll` ne
1175
+ * suffit pas à piloter : liste paginée dont il faut garder la position quand
1176
+ * on préfixe des messages plus anciens, bouton « revenir au dernier
1177
+ * message », chargement déclenché par la proximité du haut.
1178
+ */
1179
+ viewportRef?: RefObject<HTMLDivElement>;
1180
+ className?: string;
1181
+ }
1182
+ /** Zone scrollable d'une liste de messages : hauteur fixe, espacement, slots haut/bas, états vide/chargement, et scroll automatique en bas à l'arrivée d'un message. */
1183
+ declare const MessageScroller: ({ children, height, gap, padding, paddingX, paddingY, paddingTop, paddingRight, paddingBottom, paddingLeft, header, footer, emptyState, isEmpty, loadingState, isLoading, autoScroll, scrollKey, viewportRef, className, }: MessageScrollerProps) => react.JSX.Element;
1018
1184
 
1019
1185
  interface StepperProps {
1020
1186
  numberOfSteps: number;
@@ -1070,6 +1236,7 @@ declare const DatePicker: ({ mode, value, onChange, startDate, endDate, onRangeC
1070
1236
  * - "weekdayDay": jour court + jour
1071
1237
  * - "weekdayYear": jour court + jour + mois + année
1072
1238
  * - "weekdayTime": jour/date + heure (24h)
1239
+ * - "time": heure seule (24h) (ex: 14:32)
1073
1240
  * - "longDate": jour + mois complet + année, sans jour de semaine (ex: 16 mai 2024)
1074
1241
  * - "dateISO": format ISO YYYY-MM-DD (safe timezone pour le backend)
1075
1242
  */
@@ -1257,4 +1424,4 @@ declare const allowAutofill: (autoComplete: string) => {
1257
1424
  "data-form-type": undefined;
1258
1425
  };
1259
1426
 
1260
- 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 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, FileUploadZone, type FileUploadZoneProps, type FloatingAction, FloatingButton, type FloatingButtonProps, 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, 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, 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 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 };
1427
+ 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 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 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 };