design-zystem 1.0.347 → 1.0.349

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.
@@ -50,6 +50,7 @@ declare const Layout: react.ForwardRefExoticComponent<LayoutProps & react.RefAtt
50
50
  */
51
51
  declare const COLOR_TOKENS: readonly ["blue-700", "blue-900", "blue-950", "red-900", "red-500", "green-700", "grey-600", "yellow-500", "yellow-300", "yellow-200", "purple-700"];
52
52
  type ColorToken = (typeof COLOR_TOKENS)[number];
53
+ type HexColor = `#${string}`;
53
54
 
54
55
  declare const boxVariants: (props?: ({
55
56
  padding?: "none" | "sm" | "md" | "lg" | null | undefined;
@@ -266,18 +267,58 @@ interface IconBadgeProps extends Omit<HTMLAttributes<HTMLElement>, 'color' | 'on
266
267
  */
267
268
  declare const IconBadge: react.ForwardRefExoticComponent<IconBadgeProps & react.RefAttributes<HTMLElement>>;
268
269
 
269
- /** `red-500` est le rouge vif d'action destructive (l'ancien `red_950` du DZ) —
270
- * `red-900` reste le bordeaux d'état d'erreur. */
271
- type ButtonColor = ColorToken | 'red-500';
270
+ declare const THEME_VARIANT_CLASSES: {
271
+ solid: {
272
+ 'blue-700': string;
273
+ 'blue-900': string;
274
+ 'blue-950': string;
275
+ 'red-900': string;
276
+ 'red-500': string;
277
+ 'green-700': string;
278
+ 'grey-600': string;
279
+ 'yellow-500': string;
280
+ 'yellow-300': string;
281
+ 'yellow-200': string;
282
+ 'purple-700': string;
283
+ };
284
+ pale: {
285
+ 'blue-700': string;
286
+ 'blue-900': string;
287
+ 'blue-950': string;
288
+ 'red-900': string;
289
+ 'red-500': string;
290
+ 'green-700': string;
291
+ 'grey-600': string;
292
+ 'yellow-500': string;
293
+ 'yellow-300': string;
294
+ 'yellow-200': string;
295
+ 'purple-700': string;
296
+ };
297
+ outline: {
298
+ 'blue-700': string;
299
+ 'blue-900': string;
300
+ 'blue-950': string;
301
+ 'red-900': string;
302
+ 'red-500': string;
303
+ 'green-700': string;
304
+ 'grey-600': string;
305
+ 'yellow-500': string;
306
+ 'yellow-300': string;
307
+ 'yellow-200': string;
308
+ 'purple-700': string;
309
+ };
310
+ };
311
+
312
+ type ButtonVariant = Extract<keyof typeof THEME_VARIANT_CLASSES, 'solid' | 'outline'>;
272
313
  declare const buttonVariants: (props?: ({
273
- color?: "blue-700" | "blue-900" | "blue-950" | "red-900" | "red-500" | "green-700" | "grey-600" | "yellow-500" | "yellow-300" | "yellow-200" | "purple-700" | null | undefined;
274
- look?: "filled" | "outline" | null | undefined;
275
314
  size?: "s" | "m" | "l" | null | undefined;
276
315
  iconOnly?: boolean | null | undefined;
277
316
  fullWidth?: boolean | null | undefined;
278
317
  elevated?: boolean | null | undefined;
279
318
  } & class_variance_authority_types.ClassProp) | undefined) => string;
280
319
  interface ButtonProps extends Omit<ButtonHTMLAttributes<HTMLButtonElement>, 'color'>, VariantProps<typeof buttonVariants> {
320
+ variant?: ButtonVariant;
321
+ theme?: ColorToken;
281
322
  label?: string;
282
323
  iconLeft?: ReactNode;
283
324
  iconRight?: ReactNode;
@@ -295,9 +336,9 @@ declare const Input: react.ForwardRefExoticComponent<InputProps & react.RefAttri
295
336
  * une barre — pas de bordure, un fond gris, et pas de poignée de redimension,
296
337
  * qui déborderait d'une barre de saisie.
297
338
  */
298
- type TextareaLook = 'outline' | 'quiet';
339
+ type TextareaVariant = 'outline' | 'quiet';
299
340
  interface TextareaProps extends TextareaHTMLAttributes<HTMLTextAreaElement> {
300
- look?: TextareaLook;
341
+ variant?: TextareaVariant;
301
342
  }
302
343
  declare const Textarea: react.ForwardRefExoticComponent<TextareaProps & react.RefAttributes<HTMLTextAreaElement>>;
303
344
 
@@ -389,15 +430,22 @@ interface SwitchProps extends Omit<React.ComponentPropsWithoutRef<typeof RadixSw
389
430
  }
390
431
  declare const Switch: ({ size, color, onChange, label, labelPosition, id, className, ...props }: SwitchProps) => react.JSX.Element;
391
432
 
433
+ type BadgeVariant = Extract<keyof typeof THEME_VARIANT_CLASSES, 'pale' | 'solid'>;
392
434
  declare const badgeVariants: (props?: ({
393
- look?: "filled" | "soft" | null | undefined;
394
- color?: "blue-700" | "blue-900" | "blue-950" | "red-900" | "red-500" | "green-700" | "grey-600" | "yellow-500" | "yellow-300" | "yellow-200" | "purple-700" | null | undefined;
395
- size?: "s" | "xs" | "m" | "l" | "xxs" | "xl" | "xxl" | null | undefined;
396
- isRound?: boolean | null | undefined;
397
- pointer?: boolean | null | undefined;
398
- pulse?: boolean | null | undefined;
435
+ size?: "s" | "m" | null | undefined;
436
+ shape?: "square" | "pill" | null | undefined;
399
437
  } & class_variance_authority_types.ClassProp) | undefined) => string;
400
438
  interface BadgeProps extends Omit<HTMLAttributes<HTMLSpanElement>, 'color'>, VariantProps<typeof badgeVariants> {
439
+ /** `pale` : fond pâle, le défaut. `solid` : fond plein et texte blanc, pour un compteur qui doit rester lisible par-dessus du contenu. */
440
+ variant?: BadgeVariant;
441
+ theme?: ColorToken;
442
+ backgroundColor?: HexColor;
443
+ textColor?: HexColor;
444
+ pointer?: boolean;
445
+ pulse?: boolean;
446
+ fullWidth?: boolean;
447
+ /** Rend l'enfant à la place du `span` (un `button` ou un `a` pour un badge cliquable) en lui transmettant classes et props. */
448
+ asChild?: boolean;
401
449
  }
402
450
  declare const Badge: react.ForwardRefExoticComponent<BadgeProps & react.RefAttributes<HTMLSpanElement>>;
403
451
 
@@ -905,14 +953,14 @@ interface EmptyStateProps {
905
953
  declare const EmptyState: ({ icon, title, description, actionLabel, onAction, className, }: EmptyStateProps) => react.JSX.Element;
906
954
 
907
955
  /**
908
- * Un ton = une famille de couleur, pas une nuance : tous les tokens d'une même
956
+ * Un thème = une famille de couleur, pas une nuance : tous les tokens d'une même
909
957
  * famille donnent le même fond (`*-50`) et le même texte. La nuance passée en
910
- * `tone` sert à choisir la famille, pas à décliner le rendu.
958
+ * `theme` sert à choisir la famille, pas à décliner le rendu.
911
959
  *
912
960
  * Pas de bordure : le fond teinté suffit à détacher la bannière de la page.
913
961
  */
914
962
  declare const bannerVariants: (props?: ({
915
- tone?: "blue-700" | "blue-900" | "blue-950" | "red-900" | "red-500" | "green-700" | "grey-600" | "yellow-500" | "yellow-300" | "yellow-200" | "purple-700" | null | undefined;
963
+ theme?: "blue-700" | "blue-900" | "blue-950" | "red-900" | "red-500" | "green-700" | "grey-600" | "yellow-500" | "yellow-300" | "yellow-200" | "purple-700" | null | undefined;
916
964
  } & class_variance_authority_types.ClassProp) | undefined) => string;
917
965
  interface BannerAction {
918
966
  label: string;
@@ -945,7 +993,7 @@ interface BannerProps extends VariantProps<typeof bannerVariants> {
945
993
  width?: string;
946
994
  className?: string;
947
995
  }
948
- declare const Banner: ({ tone, badge, title, subtitle, message, action, toggle, children, justify, fullWidth, width, className, }: BannerProps) => react.JSX.Element;
996
+ declare const Banner: ({ theme, badge, title, subtitle, message, action, toggle, children, justify, fullWidth, width, className, }: BannerProps) => react.JSX.Element;
949
997
 
950
998
  interface FloatingAction {
951
999
  id: string;
@@ -1269,13 +1317,14 @@ interface ScrollAreaProps extends Omit<ComponentPropsWithoutRef<typeof RadixScro
1269
1317
  /** Construit sur `@radix-ui/react-scroll-area` (comme le `ScrollArea` de shadcn) — scrollbars custom au lieu de celles du système. */
1270
1318
  declare const ScrollArea: ({ children, className, orientation, viewportRef, ...props }: ScrollAreaProps) => react.JSX.Element;
1271
1319
 
1272
- type MessageVariant = 'own' | 'other';
1273
- type MessageTone = 'solid' | 'soft';
1320
+ type MessageVariant = 'solid' | 'pale';
1274
1321
  interface MessageProps extends HTMLAttributes<HTMLDivElement> {
1275
- /** `own` = message de l'utilisateur courant (aligné à droite), `other` = interlocuteur (aligné à gauche). */
1322
+ /** `true` = message de l'utilisateur courant (aligné à droite), `false` = interlocuteur (aligné à gauche). */
1323
+ isOwn?: boolean;
1324
+ /** Avec `isOwn` à `false` : message d'un collègue du même côté que l'utilisateur (aligné à droite, fond bleu clair). */
1325
+ isTeammate?: boolean;
1326
+ /** `solid` = bulle pleine (messagerie), `pale` = bulle pâle (commentaires, fils de discussion). */
1276
1327
  variant?: MessageVariant;
1277
- /** `solid` = bulle pleine (messagerie), `soft` = bulle pâle (commentaires, fils de discussion). */
1278
- tone?: MessageTone;
1279
1328
  /** Contenu du message — texte brut ou nœuds riches (mentions, liens cliquables). */
1280
1329
  children?: ReactNode;
1281
1330
  /** Nom de l'auteur, affiché au-dessus de la bulle quand `showAuthor`. */
@@ -1616,4 +1665,4 @@ declare const allowAutofill: (autoComplete: string) => {
1616
1665
  "data-form-type": undefined;
1617
1666
  };
1618
1667
 
1619
- 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, VideoPlayer, type VideoPlayerProps, 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, formatVideoDuration, formatVin, generateHexColor, getAvatarColor, getCleanFileName, getFileIconByMimeType, getFileKind, getFileNameFromUrl, getInitials, getMimeCategory, getRelativeTime, isHoliday, isSameDay, isolateCity, noAutofillProps, optimizeImage, parseAmount, parseIsoDate, toast, truncateFileName, truncateText, useAvatarSize };
1668
+ 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 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, type HexColor, 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 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 TextareaProps, type TextareaVariant, Timeline, type TimelineItem, type TimelineProps, type ToastOptions, type ToastType, Toaster, Tooltip, type TooltipProps, VideoPlayer, type VideoPlayerProps, 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, formatVideoDuration, formatVin, generateHexColor, getAvatarColor, getCleanFileName, getFileIconByMimeType, getFileKind, getFileNameFromUrl, getInitials, getMimeCategory, getRelativeTime, isHoliday, isSameDay, isolateCity, noAutofillProps, optimizeImage, parseAmount, parseIsoDate, toast, truncateFileName, truncateText, useAvatarSize };
@@ -50,6 +50,7 @@ declare const Layout: react.ForwardRefExoticComponent<LayoutProps & react.RefAtt
50
50
  */
51
51
  declare const COLOR_TOKENS: readonly ["blue-700", "blue-900", "blue-950", "red-900", "red-500", "green-700", "grey-600", "yellow-500", "yellow-300", "yellow-200", "purple-700"];
52
52
  type ColorToken = (typeof COLOR_TOKENS)[number];
53
+ type HexColor = `#${string}`;
53
54
 
54
55
  declare const boxVariants: (props?: ({
55
56
  padding?: "none" | "sm" | "md" | "lg" | null | undefined;
@@ -266,18 +267,58 @@ interface IconBadgeProps extends Omit<HTMLAttributes<HTMLElement>, 'color' | 'on
266
267
  */
267
268
  declare const IconBadge: react.ForwardRefExoticComponent<IconBadgeProps & react.RefAttributes<HTMLElement>>;
268
269
 
269
- /** `red-500` est le rouge vif d'action destructive (l'ancien `red_950` du DZ) —
270
- * `red-900` reste le bordeaux d'état d'erreur. */
271
- type ButtonColor = ColorToken | 'red-500';
270
+ declare const THEME_VARIANT_CLASSES: {
271
+ solid: {
272
+ 'blue-700': string;
273
+ 'blue-900': string;
274
+ 'blue-950': string;
275
+ 'red-900': string;
276
+ 'red-500': string;
277
+ 'green-700': string;
278
+ 'grey-600': string;
279
+ 'yellow-500': string;
280
+ 'yellow-300': string;
281
+ 'yellow-200': string;
282
+ 'purple-700': string;
283
+ };
284
+ pale: {
285
+ 'blue-700': string;
286
+ 'blue-900': string;
287
+ 'blue-950': string;
288
+ 'red-900': string;
289
+ 'red-500': string;
290
+ 'green-700': string;
291
+ 'grey-600': string;
292
+ 'yellow-500': string;
293
+ 'yellow-300': string;
294
+ 'yellow-200': string;
295
+ 'purple-700': string;
296
+ };
297
+ outline: {
298
+ 'blue-700': string;
299
+ 'blue-900': string;
300
+ 'blue-950': string;
301
+ 'red-900': string;
302
+ 'red-500': string;
303
+ 'green-700': string;
304
+ 'grey-600': string;
305
+ 'yellow-500': string;
306
+ 'yellow-300': string;
307
+ 'yellow-200': string;
308
+ 'purple-700': string;
309
+ };
310
+ };
311
+
312
+ type ButtonVariant = Extract<keyof typeof THEME_VARIANT_CLASSES, 'solid' | 'outline'>;
272
313
  declare const buttonVariants: (props?: ({
273
- color?: "blue-700" | "blue-900" | "blue-950" | "red-900" | "red-500" | "green-700" | "grey-600" | "yellow-500" | "yellow-300" | "yellow-200" | "purple-700" | null | undefined;
274
- look?: "filled" | "outline" | null | undefined;
275
314
  size?: "s" | "m" | "l" | null | undefined;
276
315
  iconOnly?: boolean | null | undefined;
277
316
  fullWidth?: boolean | null | undefined;
278
317
  elevated?: boolean | null | undefined;
279
318
  } & class_variance_authority_types.ClassProp) | undefined) => string;
280
319
  interface ButtonProps extends Omit<ButtonHTMLAttributes<HTMLButtonElement>, 'color'>, VariantProps<typeof buttonVariants> {
320
+ variant?: ButtonVariant;
321
+ theme?: ColorToken;
281
322
  label?: string;
282
323
  iconLeft?: ReactNode;
283
324
  iconRight?: ReactNode;
@@ -295,9 +336,9 @@ declare const Input: react.ForwardRefExoticComponent<InputProps & react.RefAttri
295
336
  * une barre — pas de bordure, un fond gris, et pas de poignée de redimension,
296
337
  * qui déborderait d'une barre de saisie.
297
338
  */
298
- type TextareaLook = 'outline' | 'quiet';
339
+ type TextareaVariant = 'outline' | 'quiet';
299
340
  interface TextareaProps extends TextareaHTMLAttributes<HTMLTextAreaElement> {
300
- look?: TextareaLook;
341
+ variant?: TextareaVariant;
301
342
  }
302
343
  declare const Textarea: react.ForwardRefExoticComponent<TextareaProps & react.RefAttributes<HTMLTextAreaElement>>;
303
344
 
@@ -389,15 +430,22 @@ interface SwitchProps extends Omit<React.ComponentPropsWithoutRef<typeof RadixSw
389
430
  }
390
431
  declare const Switch: ({ size, color, onChange, label, labelPosition, id, className, ...props }: SwitchProps) => react.JSX.Element;
391
432
 
433
+ type BadgeVariant = Extract<keyof typeof THEME_VARIANT_CLASSES, 'pale' | 'solid'>;
392
434
  declare const badgeVariants: (props?: ({
393
- look?: "filled" | "soft" | null | undefined;
394
- color?: "blue-700" | "blue-900" | "blue-950" | "red-900" | "red-500" | "green-700" | "grey-600" | "yellow-500" | "yellow-300" | "yellow-200" | "purple-700" | null | undefined;
395
- size?: "s" | "xs" | "m" | "l" | "xxs" | "xl" | "xxl" | null | undefined;
396
- isRound?: boolean | null | undefined;
397
- pointer?: boolean | null | undefined;
398
- pulse?: boolean | null | undefined;
435
+ size?: "s" | "m" | null | undefined;
436
+ shape?: "square" | "pill" | null | undefined;
399
437
  } & class_variance_authority_types.ClassProp) | undefined) => string;
400
438
  interface BadgeProps extends Omit<HTMLAttributes<HTMLSpanElement>, 'color'>, VariantProps<typeof badgeVariants> {
439
+ /** `pale` : fond pâle, le défaut. `solid` : fond plein et texte blanc, pour un compteur qui doit rester lisible par-dessus du contenu. */
440
+ variant?: BadgeVariant;
441
+ theme?: ColorToken;
442
+ backgroundColor?: HexColor;
443
+ textColor?: HexColor;
444
+ pointer?: boolean;
445
+ pulse?: boolean;
446
+ fullWidth?: boolean;
447
+ /** Rend l'enfant à la place du `span` (un `button` ou un `a` pour un badge cliquable) en lui transmettant classes et props. */
448
+ asChild?: boolean;
401
449
  }
402
450
  declare const Badge: react.ForwardRefExoticComponent<BadgeProps & react.RefAttributes<HTMLSpanElement>>;
403
451
 
@@ -905,14 +953,14 @@ interface EmptyStateProps {
905
953
  declare const EmptyState: ({ icon, title, description, actionLabel, onAction, className, }: EmptyStateProps) => react.JSX.Element;
906
954
 
907
955
  /**
908
- * Un ton = une famille de couleur, pas une nuance : tous les tokens d'une même
956
+ * Un thème = une famille de couleur, pas une nuance : tous les tokens d'une même
909
957
  * famille donnent le même fond (`*-50`) et le même texte. La nuance passée en
910
- * `tone` sert à choisir la famille, pas à décliner le rendu.
958
+ * `theme` sert à choisir la famille, pas à décliner le rendu.
911
959
  *
912
960
  * Pas de bordure : le fond teinté suffit à détacher la bannière de la page.
913
961
  */
914
962
  declare const bannerVariants: (props?: ({
915
- tone?: "blue-700" | "blue-900" | "blue-950" | "red-900" | "red-500" | "green-700" | "grey-600" | "yellow-500" | "yellow-300" | "yellow-200" | "purple-700" | null | undefined;
963
+ theme?: "blue-700" | "blue-900" | "blue-950" | "red-900" | "red-500" | "green-700" | "grey-600" | "yellow-500" | "yellow-300" | "yellow-200" | "purple-700" | null | undefined;
916
964
  } & class_variance_authority_types.ClassProp) | undefined) => string;
917
965
  interface BannerAction {
918
966
  label: string;
@@ -945,7 +993,7 @@ interface BannerProps extends VariantProps<typeof bannerVariants> {
945
993
  width?: string;
946
994
  className?: string;
947
995
  }
948
- declare const Banner: ({ tone, badge, title, subtitle, message, action, toggle, children, justify, fullWidth, width, className, }: BannerProps) => react.JSX.Element;
996
+ declare const Banner: ({ theme, badge, title, subtitle, message, action, toggle, children, justify, fullWidth, width, className, }: BannerProps) => react.JSX.Element;
949
997
 
950
998
  interface FloatingAction {
951
999
  id: string;
@@ -1269,13 +1317,14 @@ interface ScrollAreaProps extends Omit<ComponentPropsWithoutRef<typeof RadixScro
1269
1317
  /** Construit sur `@radix-ui/react-scroll-area` (comme le `ScrollArea` de shadcn) — scrollbars custom au lieu de celles du système. */
1270
1318
  declare const ScrollArea: ({ children, className, orientation, viewportRef, ...props }: ScrollAreaProps) => react.JSX.Element;
1271
1319
 
1272
- type MessageVariant = 'own' | 'other';
1273
- type MessageTone = 'solid' | 'soft';
1320
+ type MessageVariant = 'solid' | 'pale';
1274
1321
  interface MessageProps extends HTMLAttributes<HTMLDivElement> {
1275
- /** `own` = message de l'utilisateur courant (aligné à droite), `other` = interlocuteur (aligné à gauche). */
1322
+ /** `true` = message de l'utilisateur courant (aligné à droite), `false` = interlocuteur (aligné à gauche). */
1323
+ isOwn?: boolean;
1324
+ /** Avec `isOwn` à `false` : message d'un collègue du même côté que l'utilisateur (aligné à droite, fond bleu clair). */
1325
+ isTeammate?: boolean;
1326
+ /** `solid` = bulle pleine (messagerie), `pale` = bulle pâle (commentaires, fils de discussion). */
1276
1327
  variant?: MessageVariant;
1277
- /** `solid` = bulle pleine (messagerie), `soft` = bulle pâle (commentaires, fils de discussion). */
1278
- tone?: MessageTone;
1279
1328
  /** Contenu du message — texte brut ou nœuds riches (mentions, liens cliquables). */
1280
1329
  children?: ReactNode;
1281
1330
  /** Nom de l'auteur, affiché au-dessus de la bulle quand `showAuthor`. */
@@ -1616,4 +1665,4 @@ declare const allowAutofill: (autoComplete: string) => {
1616
1665
  "data-form-type": undefined;
1617
1666
  };
1618
1667
 
1619
- 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, VideoPlayer, type VideoPlayerProps, 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, formatVideoDuration, formatVin, generateHexColor, getAvatarColor, getCleanFileName, getFileIconByMimeType, getFileKind, getFileNameFromUrl, getInitials, getMimeCategory, getRelativeTime, isHoliday, isSameDay, isolateCity, noAutofillProps, optimizeImage, parseAmount, parseIsoDate, toast, truncateFileName, truncateText, useAvatarSize };
1668
+ 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 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, type HexColor, 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 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 TextareaProps, type TextareaVariant, Timeline, type TimelineItem, type TimelineProps, type ToastOptions, type ToastType, Toaster, Tooltip, type TooltipProps, VideoPlayer, type VideoPlayerProps, 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, formatVideoDuration, formatVin, generateHexColor, getAvatarColor, getCleanFileName, getFileIconByMimeType, getFileKind, getFileNameFromUrl, getInitials, getMimeCategory, getRelativeTime, isHoliday, isSameDay, isolateCity, noAutofillProps, optimizeImage, parseAmount, parseIsoDate, toast, truncateFileName, truncateText, useAvatarSize };