design-zystem 1.0.399 → 1.0.401

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.
@@ -805,6 +805,8 @@ interface AvatarProps extends Omit<ComponentPropsWithoutRef<typeof RadixAvatar.R
805
805
  name?: string;
806
806
  src?: string | null;
807
807
  color?: ColorToken;
808
+ backgroundColor?: HexColor;
809
+ textColor?: HexColor;
808
810
  badge?: AvatarBadgeConfig;
809
811
  }
810
812
  /** Sans `children` : mode raccourci, auto-compose Image/Fallback/Badge à partir de `name`/`src`/`color`/`badge`. Avec `children` : composition manuelle (`AvatarImage`, `AvatarFallback`, `AvatarBadge`) pour un contrôle total. */
@@ -813,6 +815,8 @@ type AvatarImageProps = ComponentPropsWithoutRef<typeof RadixAvatar.Image>;
813
815
  declare const AvatarImage: react.ForwardRefExoticComponent<Omit<RadixAvatar.AvatarImageProps & react.RefAttributes<HTMLImageElement>, "ref"> & react.RefAttributes<HTMLImageElement>>;
814
816
  interface AvatarFallbackProps extends ComponentPropsWithoutRef<typeof RadixAvatar.Fallback> {
815
817
  color?: ColorToken;
818
+ backgroundColor?: HexColor;
819
+ textColor?: HexColor;
816
820
  }
817
821
  declare const AvatarFallback: react.ForwardRefExoticComponent<AvatarFallbackProps & react.RefAttributes<HTMLSpanElement>>;
818
822
  interface AvatarBadgeProps extends HTMLAttributes<HTMLDivElement> {
@@ -1925,4 +1929,42 @@ declare const allowAutofill: (autoComplete: string) => {
1925
1929
  "data-form-type": undefined;
1926
1930
  };
1927
1931
 
1928
- export { type ActivityFeedItem, ActivityFeedPanel, type ActivityFeedPanelProps, 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, FAB_EDGE_MARGIN, FAB_SIZE, 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, HistoryButton, type HistoryButtonProps, type HistoryChange, HistoryDrawer, type HistoryDrawerProps, type HistoryEntry, type HistoryFilter, HistoryList, type HistoryListProps, Icon, IconBadge, type IconBadgeProps, type IconColor, type IconFamily, type IconProps, type IconSize, type IconTabItem, IconTabs, type IconTabsProps, IconTooltip, type IconTooltipProps, type IconVariant, Image, type ImageProps, InfoTooltip, type InfoTooltipProps, type InfoTooltipVariant, 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 SelectBubbleOption, 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 TagLevelItem, TagLevelPicker, type TagLevelPickerProps, type TagOption, type TagSearchOption, TagSelect, type TagSelectProps, Text, type TextProps, Textarea, type TextareaProps, type TextareaVariant, Timeline, type TimelineItem, type TimelineProps, type ToastId, 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, getElapsedTime, getFileIconByMimeType, getFileKind, getFileNameFromUrl, getInitials, getMimeCategory, getPastelColorPair, getRelativeTime, isHoliday, isSameDay, isolateCity, linkVariants, noAutofillProps, optimizeImage, parseAmount, parseIsoDate, toast, truncateFileName, truncateText, useAvatarSize };
1932
+ declare const TOUR_TARGET_ATTRIBUTE = "data-tour-target";
1933
+ type TourPlacement = 'top' | 'bottom' | 'left' | 'right';
1934
+ interface TourStep {
1935
+ id: string;
1936
+ /** Identifiant(s) de `TourTarget` : le premier présent dans la page est mis en lumière. Absent : bulle centrée. */
1937
+ target?: string | string[];
1938
+ title?: ReactNode;
1939
+ content: ReactNode;
1940
+ placement?: TourPlacement;
1941
+ /** La zone éclairée reste cliquable (défaut). `false` : elle est seulement montrée. */
1942
+ interactive?: boolean;
1943
+ }
1944
+ interface TourLabels {
1945
+ previous: string;
1946
+ next: string;
1947
+ finish: string;
1948
+ close: string;
1949
+ counter: (current: number, total: number) => string;
1950
+ }
1951
+ type TourCloseReason = 'close' | 'finish';
1952
+ interface TourProps {
1953
+ steps: TourStep[];
1954
+ open: boolean;
1955
+ step: number;
1956
+ onStepChange: (step: number) => void;
1957
+ onClose: (reason: TourCloseReason) => void;
1958
+ labels?: Partial<TourLabels>;
1959
+ /** Délai d'attente d'une cible absente (page qui charge, modale qui s'ouvre) avant d'afficher la bulle au centre. */
1960
+ targetTimeout?: number;
1961
+ }
1962
+ interface TourTargetProps {
1963
+ id: string;
1964
+ children: ReactNode;
1965
+ }
1966
+ /** Enveloppe sans boîte (`display: contents`) : marque une cible sans toucher à la mise en page. */
1967
+ declare const TourTarget: ({ id, children }: TourTargetProps) => react.JSX.Element;
1968
+ declare const Tour: ({ steps, open, step, onStepChange, onClose, labels, targetTimeout, }: TourProps) => react.ReactPortal | null;
1969
+
1970
+ export { type ActivityFeedItem, ActivityFeedPanel, type ActivityFeedPanelProps, 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, FAB_EDGE_MARGIN, FAB_SIZE, 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, HistoryButton, type HistoryButtonProps, type HistoryChange, HistoryDrawer, type HistoryDrawerProps, type HistoryEntry, type HistoryFilter, HistoryList, type HistoryListProps, Icon, IconBadge, type IconBadgeProps, type IconColor, type IconFamily, type IconProps, type IconSize, type IconTabItem, IconTabs, type IconTabsProps, IconTooltip, type IconTooltipProps, type IconVariant, Image, type ImageProps, InfoTooltip, type InfoTooltipProps, type InfoTooltipVariant, 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 SelectBubbleOption, 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, TOUR_TARGET_ATTRIBUTE, 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 TagLevelItem, TagLevelPicker, type TagLevelPickerProps, type TagOption, type TagSearchOption, TagSelect, type TagSelectProps, Text, type TextProps, Textarea, type TextareaProps, type TextareaVariant, Timeline, type TimelineItem, type TimelineProps, type ToastId, type ToastOptions, type ToastType, Toaster, Tooltip, type TooltipProps, Tour, type TourCloseReason, type TourLabels, type TourPlacement, type TourProps, type TourStep, TourTarget, type TourTargetProps, 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, getElapsedTime, getFileIconByMimeType, getFileKind, getFileNameFromUrl, getInitials, getMimeCategory, getPastelColorPair, getRelativeTime, isHoliday, isSameDay, isolateCity, linkVariants, noAutofillProps, optimizeImage, parseAmount, parseIsoDate, toast, truncateFileName, truncateText, useAvatarSize };
@@ -805,6 +805,8 @@ interface AvatarProps extends Omit<ComponentPropsWithoutRef<typeof RadixAvatar.R
805
805
  name?: string;
806
806
  src?: string | null;
807
807
  color?: ColorToken;
808
+ backgroundColor?: HexColor;
809
+ textColor?: HexColor;
808
810
  badge?: AvatarBadgeConfig;
809
811
  }
810
812
  /** Sans `children` : mode raccourci, auto-compose Image/Fallback/Badge à partir de `name`/`src`/`color`/`badge`. Avec `children` : composition manuelle (`AvatarImage`, `AvatarFallback`, `AvatarBadge`) pour un contrôle total. */
@@ -813,6 +815,8 @@ type AvatarImageProps = ComponentPropsWithoutRef<typeof RadixAvatar.Image>;
813
815
  declare const AvatarImage: react.ForwardRefExoticComponent<Omit<RadixAvatar.AvatarImageProps & react.RefAttributes<HTMLImageElement>, "ref"> & react.RefAttributes<HTMLImageElement>>;
814
816
  interface AvatarFallbackProps extends ComponentPropsWithoutRef<typeof RadixAvatar.Fallback> {
815
817
  color?: ColorToken;
818
+ backgroundColor?: HexColor;
819
+ textColor?: HexColor;
816
820
  }
817
821
  declare const AvatarFallback: react.ForwardRefExoticComponent<AvatarFallbackProps & react.RefAttributes<HTMLSpanElement>>;
818
822
  interface AvatarBadgeProps extends HTMLAttributes<HTMLDivElement> {
@@ -1925,4 +1929,42 @@ declare const allowAutofill: (autoComplete: string) => {
1925
1929
  "data-form-type": undefined;
1926
1930
  };
1927
1931
 
1928
- export { type ActivityFeedItem, ActivityFeedPanel, type ActivityFeedPanelProps, 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, FAB_EDGE_MARGIN, FAB_SIZE, 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, HistoryButton, type HistoryButtonProps, type HistoryChange, HistoryDrawer, type HistoryDrawerProps, type HistoryEntry, type HistoryFilter, HistoryList, type HistoryListProps, Icon, IconBadge, type IconBadgeProps, type IconColor, type IconFamily, type IconProps, type IconSize, type IconTabItem, IconTabs, type IconTabsProps, IconTooltip, type IconTooltipProps, type IconVariant, Image, type ImageProps, InfoTooltip, type InfoTooltipProps, type InfoTooltipVariant, 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 SelectBubbleOption, 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 TagLevelItem, TagLevelPicker, type TagLevelPickerProps, type TagOption, type TagSearchOption, TagSelect, type TagSelectProps, Text, type TextProps, Textarea, type TextareaProps, type TextareaVariant, Timeline, type TimelineItem, type TimelineProps, type ToastId, 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, getElapsedTime, getFileIconByMimeType, getFileKind, getFileNameFromUrl, getInitials, getMimeCategory, getPastelColorPair, getRelativeTime, isHoliday, isSameDay, isolateCity, linkVariants, noAutofillProps, optimizeImage, parseAmount, parseIsoDate, toast, truncateFileName, truncateText, useAvatarSize };
1932
+ declare const TOUR_TARGET_ATTRIBUTE = "data-tour-target";
1933
+ type TourPlacement = 'top' | 'bottom' | 'left' | 'right';
1934
+ interface TourStep {
1935
+ id: string;
1936
+ /** Identifiant(s) de `TourTarget` : le premier présent dans la page est mis en lumière. Absent : bulle centrée. */
1937
+ target?: string | string[];
1938
+ title?: ReactNode;
1939
+ content: ReactNode;
1940
+ placement?: TourPlacement;
1941
+ /** La zone éclairée reste cliquable (défaut). `false` : elle est seulement montrée. */
1942
+ interactive?: boolean;
1943
+ }
1944
+ interface TourLabels {
1945
+ previous: string;
1946
+ next: string;
1947
+ finish: string;
1948
+ close: string;
1949
+ counter: (current: number, total: number) => string;
1950
+ }
1951
+ type TourCloseReason = 'close' | 'finish';
1952
+ interface TourProps {
1953
+ steps: TourStep[];
1954
+ open: boolean;
1955
+ step: number;
1956
+ onStepChange: (step: number) => void;
1957
+ onClose: (reason: TourCloseReason) => void;
1958
+ labels?: Partial<TourLabels>;
1959
+ /** Délai d'attente d'une cible absente (page qui charge, modale qui s'ouvre) avant d'afficher la bulle au centre. */
1960
+ targetTimeout?: number;
1961
+ }
1962
+ interface TourTargetProps {
1963
+ id: string;
1964
+ children: ReactNode;
1965
+ }
1966
+ /** Enveloppe sans boîte (`display: contents`) : marque une cible sans toucher à la mise en page. */
1967
+ declare const TourTarget: ({ id, children }: TourTargetProps) => react.JSX.Element;
1968
+ declare const Tour: ({ steps, open, step, onStepChange, onClose, labels, targetTimeout, }: TourProps) => react.ReactPortal | null;
1969
+
1970
+ export { type ActivityFeedItem, ActivityFeedPanel, type ActivityFeedPanelProps, 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, FAB_EDGE_MARGIN, FAB_SIZE, 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, HistoryButton, type HistoryButtonProps, type HistoryChange, HistoryDrawer, type HistoryDrawerProps, type HistoryEntry, type HistoryFilter, HistoryList, type HistoryListProps, Icon, IconBadge, type IconBadgeProps, type IconColor, type IconFamily, type IconProps, type IconSize, type IconTabItem, IconTabs, type IconTabsProps, IconTooltip, type IconTooltipProps, type IconVariant, Image, type ImageProps, InfoTooltip, type InfoTooltipProps, type InfoTooltipVariant, 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 SelectBubbleOption, 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, TOUR_TARGET_ATTRIBUTE, 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 TagLevelItem, TagLevelPicker, type TagLevelPickerProps, type TagOption, type TagSearchOption, TagSelect, type TagSelectProps, Text, type TextProps, Textarea, type TextareaProps, type TextareaVariant, Timeline, type TimelineItem, type TimelineProps, type ToastId, type ToastOptions, type ToastType, Toaster, Tooltip, type TooltipProps, Tour, type TourCloseReason, type TourLabels, type TourPlacement, type TourProps, type TourStep, TourTarget, type TourTargetProps, 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, getElapsedTime, getFileIconByMimeType, getFileKind, getFileNameFromUrl, getInitials, getMimeCategory, getPastelColorPair, getRelativeTime, isHoliday, isSameDay, isolateCity, linkVariants, noAutofillProps, optimizeImage, parseAmount, parseIsoDate, toast, truncateFileName, truncateText, useAvatarSize };
package/dist/ui/index.js CHANGED
@@ -157,6 +157,7 @@ __export(index_exports, {
157
157
  Spinner: () => Spinner,
158
158
  Stepper: () => Stepper,
159
159
  Switch: () => Switch,
160
+ TOUR_TARGET_ATTRIBUTE: () => TOUR_TARGET_ATTRIBUTE,
160
161
  Table: () => Table,
161
162
  TableCell: () => TableCell,
162
163
  TableFooter: () => TableFooter,
@@ -175,6 +176,8 @@ __export(index_exports, {
175
176
  Timeline: () => Timeline,
176
177
  Toaster: () => Toaster,
177
178
  Tooltip: () => Tooltip,
179
+ Tour: () => Tour,
180
+ TourTarget: () => TourTarget,
178
181
  VideoPlayer: () => VideoPlayer,
179
182
  addBusinessDays: () => addBusinessDays,
180
183
  allowAutofill: () => allowAutofill,
@@ -3737,6 +3740,8 @@ var Avatar = (0, import_react27.forwardRef)(
3737
3740
  name,
3738
3741
  src,
3739
3742
  color,
3743
+ backgroundColor,
3744
+ textColor,
3740
3745
  badge,
3741
3746
  className,
3742
3747
  style,
@@ -3747,6 +3752,8 @@ var Avatar = (0, import_react27.forwardRef)(
3747
3752
  "name",
3748
3753
  "src",
3749
3754
  "color",
3755
+ "backgroundColor",
3756
+ "textColor",
3750
3757
  "badge",
3751
3758
  "className",
3752
3759
  "style",
@@ -3762,11 +3769,19 @@ var Avatar = (0, import_react27.forwardRef)(
3762
3769
  shape === "circle" ? "rounded-full" : "rounded-[4px]",
3763
3770
  className
3764
3771
  ),
3765
- style: __spreadValues({ width: size, height: size }, style)
3772
+ style: __spreadValues({ width: size, height: size, backgroundColor }, style)
3766
3773
  }, props), {
3767
3774
  children: children != null ? children : /* @__PURE__ */ (0, import_jsx_runtime44.jsxs)(import_jsx_runtime44.Fragment, { children: [
3768
3775
  src && /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(AvatarImage, { src, alt: name }),
3769
- /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(AvatarFallback, { color, children: getInitials({ name }) }),
3776
+ /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(
3777
+ AvatarFallback,
3778
+ {
3779
+ color,
3780
+ backgroundColor,
3781
+ textColor,
3782
+ children: getInitials({ name })
3783
+ }
3784
+ ),
3770
3785
  badge && /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(AvatarBadge, { className: BADGE_BG_CLASS[badge.backgroundColor], children: /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(
3771
3786
  FaIcon,
3772
3787
  {
@@ -3808,22 +3823,40 @@ var FALLBACK_COLOR_CLASS = {
3808
3823
  "orange-600": "bg-orange-600 text-white",
3809
3824
  "purple-700": "bg-purple-700 text-white"
3810
3825
  };
3811
- var AvatarFallback = (0, import_react27.forwardRef)((_a, ref) => {
3812
- var _b = _a, { color = "grey-600", className, style } = _b, props = __objRest(_b, ["color", "className", "style"]);
3813
- const size = useAvatarSize();
3814
- return /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(
3815
- RadixAvatar.Fallback,
3816
- __spreadValues({
3817
- ref,
3818
- className: cn(
3819
- "flex h-full w-full select-none items-center justify-center rounded-[inherit] font-semibold",
3820
- FALLBACK_COLOR_CLASS[color],
3821
- className
3822
- ),
3823
- style: __spreadValues({ fontSize: Math.round(size * 0.4) }, style)
3824
- }, props)
3825
- );
3826
- });
3826
+ var AvatarFallback = (0, import_react27.forwardRef)(
3827
+ (_a, ref) => {
3828
+ var _b = _a, {
3829
+ color = "grey-600",
3830
+ backgroundColor,
3831
+ textColor,
3832
+ className,
3833
+ style
3834
+ } = _b, props = __objRest(_b, [
3835
+ "color",
3836
+ "backgroundColor",
3837
+ "textColor",
3838
+ "className",
3839
+ "style"
3840
+ ]);
3841
+ const size = useAvatarSize();
3842
+ return /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(
3843
+ RadixAvatar.Fallback,
3844
+ __spreadValues({
3845
+ ref,
3846
+ className: cn(
3847
+ "flex h-full w-full select-none items-center justify-center rounded-[inherit] font-semibold",
3848
+ FALLBACK_COLOR_CLASS[color],
3849
+ className
3850
+ ),
3851
+ style: __spreadValues({
3852
+ fontSize: Math.round(size * 0.4),
3853
+ backgroundColor,
3854
+ color: textColor
3855
+ }, style)
3856
+ }, props)
3857
+ );
3858
+ }
3859
+ );
3827
3860
  AvatarFallback.displayName = "AvatarFallback";
3828
3861
  var AvatarBadge = (0, import_react27.forwardRef)(
3829
3862
  (_a, ref) => {
@@ -8614,6 +8647,329 @@ var optimizeImage = async (file, desiredBaseName, opts = {}) => {
8614
8647
  };
8615
8648
  }
8616
8649
  };
8650
+
8651
+ // src/ui/components/ui/Tour.tsx
8652
+ var import_react57 = require("react");
8653
+ var import_react_dom = require("react-dom");
8654
+ var import_jsx_runtime94 = require("react/jsx-runtime");
8655
+ var TOUR_TARGET_ATTRIBUTE = "data-tour-target";
8656
+ var DEFAULT_LABELS = {
8657
+ previous: "Pr\xE9c\xE9dent",
8658
+ next: "Suivant",
8659
+ finish: "Terminer",
8660
+ close: "Quitter le tutoriel",
8661
+ counter: (current, total) => `${current} / ${total}`
8662
+ };
8663
+ var CARD_WIDTH = 340;
8664
+ var HOLE_PADDING = 6;
8665
+ var GAP2 = 14;
8666
+ var MARGIN = 12;
8667
+ var TourTarget = ({ id, children }) => /* @__PURE__ */ (0, import_jsx_runtime94.jsx)("div", __spreadProps(__spreadValues({}, { [TOUR_TARGET_ATTRIBUTE]: id }), { className: "contents", children }));
8668
+ var findTarget = (target) => {
8669
+ const ids = Array.isArray(target) ? target : target ? [target] : [];
8670
+ for (const id of ids) {
8671
+ const element = document.querySelector(
8672
+ `[${TOUR_TARGET_ATTRIBUTE}="${id.replace(/"/g, '\\"')}"]`
8673
+ );
8674
+ if (element && measure(element)) return element;
8675
+ }
8676
+ return null;
8677
+ };
8678
+ var measure = (element) => {
8679
+ if (getComputedStyle(element).display !== "contents") {
8680
+ const { top: top2, left: left2, width, height } = element.getBoundingClientRect();
8681
+ return width || height ? { top: top2, left: left2, width, height } : null;
8682
+ }
8683
+ const rects = Array.from(element.children).map(measure).filter((rect) => rect !== null);
8684
+ if (!rects.length) return null;
8685
+ const top = Math.min(...rects.map((r) => r.top));
8686
+ const left = Math.min(...rects.map((r) => r.left));
8687
+ const bottom = Math.max(...rects.map((r) => r.top + r.height));
8688
+ const right = Math.max(...rects.map((r) => r.left + r.width));
8689
+ return { top, left, width: right - left, height: bottom - top };
8690
+ };
8691
+ var sameRect = (a, b) => a === b || !!a && !!b && Math.abs(a.top - b.top) < 0.5 && Math.abs(a.left - b.left) < 0.5 && Math.abs(a.width - b.width) < 0.5 && Math.abs(a.height - b.height) < 0.5;
8692
+ var clamp = (value, min, max) => Math.min(Math.max(value, min), Math.max(min, max));
8693
+ var firstBox = (element) => getComputedStyle(element).display === "contents" && element.firstElementChild ? firstBox(element.firstElementChild) : element;
8694
+ var placeCard = (hole, cardHeight, preferred) => {
8695
+ var _a;
8696
+ const vw = window.innerWidth;
8697
+ const vh = window.innerHeight;
8698
+ const fits = {
8699
+ bottom: vh - (hole.top + hole.height) >= cardHeight + GAP2 + MARGIN,
8700
+ top: hole.top >= cardHeight + GAP2 + MARGIN,
8701
+ right: vw - (hole.left + hole.width) >= CARD_WIDTH + GAP2 + MARGIN,
8702
+ left: hole.left >= CARD_WIDTH + GAP2 + MARGIN
8703
+ };
8704
+ const order = ["bottom", "top", "left", "right"];
8705
+ const side = (_a = preferred && fits[preferred] ? preferred : order.find((p) => fits[p])) != null ? _a : "bottom";
8706
+ const centerX = hole.left + hole.width / 2;
8707
+ const centerY = hole.top + hole.height / 2;
8708
+ if (side === "bottom" || side === "top") {
8709
+ const left2 = clamp(
8710
+ centerX - CARD_WIDTH / 2,
8711
+ MARGIN,
8712
+ vw - CARD_WIDTH - MARGIN
8713
+ );
8714
+ const top2 = side === "bottom" ? Math.min(hole.top + hole.height + GAP2, vh - cardHeight - MARGIN) : Math.max(hole.top - GAP2 - cardHeight, MARGIN);
8715
+ return {
8716
+ side,
8717
+ top: top2,
8718
+ left: left2,
8719
+ arrow: clamp(centerX - left2, 18, CARD_WIDTH - 18)
8720
+ };
8721
+ }
8722
+ const top = clamp(centerY - cardHeight / 2, MARGIN, vh - cardHeight - MARGIN);
8723
+ const left = side === "right" ? hole.left + hole.width + GAP2 : hole.left - GAP2 - CARD_WIDTH;
8724
+ return { side, top, left, arrow: clamp(centerY - top, 18, cardHeight - 18) };
8725
+ };
8726
+ var ARROW_CLASS = {
8727
+ bottom: "-top-[7px] -translate-x-1/2",
8728
+ top: "-bottom-[7px] -translate-x-1/2",
8729
+ right: "-left-[7px] -translate-y-1/2",
8730
+ left: "-right-[7px] -translate-y-1/2"
8731
+ };
8732
+ var Tour = ({
8733
+ steps,
8734
+ open,
8735
+ step,
8736
+ onStepChange,
8737
+ onClose,
8738
+ labels,
8739
+ targetTimeout = 4e3
8740
+ }) => {
8741
+ var _a;
8742
+ const text = __spreadValues(__spreadValues({}, DEFAULT_LABELS), labels);
8743
+ const current = steps[step];
8744
+ const hasStep = Boolean(current);
8745
+ const targetKey = [(_a = current == null ? void 0 : current.target) != null ? _a : []].flat().join("|");
8746
+ const total = steps.length;
8747
+ const isLast = step === total - 1;
8748
+ const titleId = (0, import_react57.useId)();
8749
+ const [rect, setRect] = (0, import_react57.useState)(null);
8750
+ const [status, setStatus] = (0, import_react57.useState)("pending");
8751
+ const [cardHeight, setCardHeight] = (0, import_react57.useState)(0);
8752
+ const cardRef = (0, import_react57.useRef)(null);
8753
+ const nextRef = (0, import_react57.useRef)(null);
8754
+ (0, import_react57.useEffect)(() => {
8755
+ if (!open || !hasStep) return;
8756
+ const targets = targetKey ? targetKey.split("|") : void 0;
8757
+ const startedAt = performance.now();
8758
+ let scrolled = false;
8759
+ let frame = 0;
8760
+ setStatus("pending");
8761
+ setRect(null);
8762
+ const track = () => {
8763
+ const element = findTarget(targets);
8764
+ const box = element ? measure(element) : null;
8765
+ if (element && box) {
8766
+ if (!scrolled) {
8767
+ scrolled = true;
8768
+ const outOfView = box.top < 0 || box.left < 0 || box.top + box.height > window.innerHeight || box.left + box.width > window.innerWidth;
8769
+ if (outOfView) {
8770
+ firstBox(element).scrollIntoView({
8771
+ block: "center",
8772
+ inline: "nearest"
8773
+ });
8774
+ }
8775
+ }
8776
+ setRect((previous) => sameRect(previous, box) ? previous : box);
8777
+ setStatus("found");
8778
+ } else {
8779
+ setRect(null);
8780
+ setStatus(
8781
+ !targets || performance.now() - startedAt > targetTimeout ? "missing" : "pending"
8782
+ );
8783
+ }
8784
+ frame = requestAnimationFrame(track);
8785
+ };
8786
+ track();
8787
+ return () => cancelAnimationFrame(frame);
8788
+ }, [open, step, hasStep, targetKey, targetTimeout]);
8789
+ (0, import_react57.useLayoutEffect)(() => {
8790
+ if (cardRef.current) setCardHeight(cardRef.current.offsetHeight);
8791
+ });
8792
+ (0, import_react57.useEffect)(() => {
8793
+ var _a2;
8794
+ if (open && status !== "pending")
8795
+ (_a2 = nextRef.current) == null ? void 0 : _a2.focus({ preventScroll: true });
8796
+ }, [open, step, status]);
8797
+ const goNext = (0, import_react57.useCallback)(() => {
8798
+ if (isLast) onClose("finish");
8799
+ else onStepChange(step + 1);
8800
+ }, [isLast, onClose, onStepChange, step]);
8801
+ const goPrevious = (0, import_react57.useCallback)(() => {
8802
+ if (step > 0) onStepChange(step - 1);
8803
+ }, [onStepChange, step]);
8804
+ (0, import_react57.useEffect)(() => {
8805
+ if (!open) return;
8806
+ const onKeyDown = (event) => {
8807
+ if (event.key === "Escape") {
8808
+ event.stopPropagation();
8809
+ onClose("close");
8810
+ } else if (event.key === "ArrowRight") goNext();
8811
+ else if (event.key === "ArrowLeft") goPrevious();
8812
+ };
8813
+ window.addEventListener("keydown", onKeyDown, true);
8814
+ return () => window.removeEventListener("keydown", onKeyDown, true);
8815
+ }, [open, goNext, goPrevious, onClose]);
8816
+ if (!open || !current) return null;
8817
+ const hole = rect && {
8818
+ top: rect.top - HOLE_PADDING,
8819
+ left: rect.left - HOLE_PADDING,
8820
+ width: rect.width + HOLE_PADDING * 2,
8821
+ height: rect.height + HOLE_PADDING * 2
8822
+ };
8823
+ const placement = hole && placeCard(hole, cardHeight, current.placement);
8824
+ const blockClick = (event) => event.stopPropagation();
8825
+ const blocker = "fixed z-[10000]";
8826
+ return (0, import_react_dom.createPortal)(
8827
+ /* @__PURE__ */ (0, import_jsx_runtime94.jsxs)(import_jsx_runtime94.Fragment, { children: [
8828
+ hole ? /* @__PURE__ */ (0, import_jsx_runtime94.jsxs)(import_jsx_runtime94.Fragment, { children: [
8829
+ /* @__PURE__ */ (0, import_jsx_runtime94.jsx)(
8830
+ "div",
8831
+ {
8832
+ "aria-hidden": true,
8833
+ className: "pointer-events-none fixed z-[10000] rounded-[8px] shadow-[0_0_0_9999px_rgba(15,23,42,0.6)] ring-[3px] ring-yellow-300 transition-all duration-200 ease-out",
8834
+ style: hole
8835
+ }
8836
+ ),
8837
+ /* @__PURE__ */ (0, import_jsx_runtime94.jsx)(
8838
+ "div",
8839
+ {
8840
+ className: cn(blocker, "inset-x-0 top-0"),
8841
+ style: { height: Math.max(hole.top, 0) },
8842
+ onMouseDown: blockClick,
8843
+ onClick: blockClick
8844
+ }
8845
+ ),
8846
+ /* @__PURE__ */ (0, import_jsx_runtime94.jsx)(
8847
+ "div",
8848
+ {
8849
+ className: cn(blocker, "inset-x-0 bottom-0"),
8850
+ style: { top: hole.top + hole.height },
8851
+ onMouseDown: blockClick,
8852
+ onClick: blockClick
8853
+ }
8854
+ ),
8855
+ /* @__PURE__ */ (0, import_jsx_runtime94.jsx)(
8856
+ "div",
8857
+ {
8858
+ className: cn(blocker, "left-0"),
8859
+ style: {
8860
+ top: hole.top,
8861
+ height: hole.height,
8862
+ width: Math.max(hole.left, 0)
8863
+ },
8864
+ onMouseDown: blockClick,
8865
+ onClick: blockClick
8866
+ }
8867
+ ),
8868
+ /* @__PURE__ */ (0, import_jsx_runtime94.jsx)(
8869
+ "div",
8870
+ {
8871
+ className: cn(blocker, "right-0"),
8872
+ style: {
8873
+ top: hole.top,
8874
+ height: hole.height,
8875
+ left: hole.left + hole.width
8876
+ },
8877
+ onMouseDown: blockClick,
8878
+ onClick: blockClick
8879
+ }
8880
+ ),
8881
+ current.interactive === false && /* @__PURE__ */ (0, import_jsx_runtime94.jsx)("div", { className: blocker, style: hole, onClick: blockClick })
8882
+ ] }) : /* @__PURE__ */ (0, import_jsx_runtime94.jsx)(
8883
+ "div",
8884
+ {
8885
+ className: cn(blocker, "inset-0 bg-[rgba(15,23,42,0.6)]"),
8886
+ onMouseDown: blockClick,
8887
+ onClick: blockClick
8888
+ }
8889
+ ),
8890
+ status !== "pending" && /* @__PURE__ */ (0, import_jsx_runtime94.jsxs)(
8891
+ "div",
8892
+ {
8893
+ ref: cardRef,
8894
+ role: "dialog",
8895
+ "aria-modal": "true",
8896
+ "aria-labelledby": titleId,
8897
+ className: cn(
8898
+ "fixed z-[10001] rounded-[12px] bg-yellow-300 p-5 shadow-[0_10px_30px_rgba(0,0,0,0.25)]",
8899
+ !placement && "left-1/2 top-1/2 -translate-x-1/2 -translate-y-1/2",
8900
+ placement && "transition-[top,left] duration-200 ease-out"
8901
+ ),
8902
+ style: __spreadValues({
8903
+ width: CARD_WIDTH
8904
+ }, placement && { top: placement.top, left: placement.left }),
8905
+ children: [
8906
+ placement && /* @__PURE__ */ (0, import_jsx_runtime94.jsx)(
8907
+ "span",
8908
+ {
8909
+ "aria-hidden": true,
8910
+ className: cn(
8911
+ "absolute h-3 w-3 rotate-45 bg-yellow-300",
8912
+ ARROW_CLASS[placement.side]
8913
+ ),
8914
+ style: placement.side === "bottom" || placement.side === "top" ? { left: placement.arrow } : { top: placement.arrow }
8915
+ }
8916
+ ),
8917
+ /* @__PURE__ */ (0, import_jsx_runtime94.jsxs)(Layout, { column: true, gap: 3, children: [
8918
+ /* @__PURE__ */ (0, import_jsx_runtime94.jsxs)(Layout, { row: true, justify: "between", align: "center", children: [
8919
+ /* @__PURE__ */ (0, import_jsx_runtime94.jsx)(Text, { size: "xs", weight: "semibold", color: "white", children: text.counter(step + 1, total) }),
8920
+ /* @__PURE__ */ (0, import_jsx_runtime94.jsx)(
8921
+ Icon,
8922
+ {
8923
+ name: "xmark",
8924
+ size: "s",
8925
+ color: "white",
8926
+ onClick: () => onClose("close"),
8927
+ "aria-label": text.close
8928
+ }
8929
+ )
8930
+ ] }),
8931
+ current.title && /* @__PURE__ */ (0, import_jsx_runtime94.jsx)(Text, { id: titleId, size: "m", weight: "bold", color: "white", children: current.title }),
8932
+ /* @__PURE__ */ (0, import_jsx_runtime94.jsx)(
8933
+ Text,
8934
+ {
8935
+ id: current.title ? void 0 : titleId,
8936
+ size: "m",
8937
+ weight: "medium",
8938
+ color: "white",
8939
+ className: "leading-relaxed",
8940
+ children: current.content
8941
+ }
8942
+ ),
8943
+ /* @__PURE__ */ (0, import_jsx_runtime94.jsxs)(Layout, { row: true, justify: "end", gap: 2, children: [
8944
+ step > 0 && /* @__PURE__ */ (0, import_jsx_runtime94.jsx)(
8945
+ Button,
8946
+ {
8947
+ label: text.previous,
8948
+ variant: "outline",
8949
+ size: "s",
8950
+ className: "border-white text-white",
8951
+ onClick: goPrevious
8952
+ }
8953
+ ),
8954
+ /* @__PURE__ */ (0, import_jsx_runtime94.jsx)(
8955
+ Button,
8956
+ {
8957
+ ref: nextRef,
8958
+ label: isLast ? text.finish : text.next,
8959
+ size: "s",
8960
+ className: "bg-white text-yellow-500",
8961
+ onClick: goNext
8962
+ }
8963
+ )
8964
+ ] })
8965
+ ] })
8966
+ ]
8967
+ }
8968
+ )
8969
+ ] }),
8970
+ document.body
8971
+ );
8972
+ };
8617
8973
  // Annotate the CommonJS export names for ESM import in node:
8618
8974
  0 && (module.exports = {
8619
8975
  ActivityFeedPanel,
@@ -8714,6 +9070,7 @@ var optimizeImage = async (file, desiredBaseName, opts = {}) => {
8714
9070
  Spinner,
8715
9071
  Stepper,
8716
9072
  Switch,
9073
+ TOUR_TARGET_ATTRIBUTE,
8717
9074
  Table,
8718
9075
  TableCell,
8719
9076
  TableFooter,
@@ -8732,6 +9089,8 @@ var optimizeImage = async (file, desiredBaseName, opts = {}) => {
8732
9089
  Timeline,
8733
9090
  Toaster,
8734
9091
  Tooltip,
9092
+ Tour,
9093
+ TourTarget,
8735
9094
  VideoPlayer,
8736
9095
  addBusinessDays,
8737
9096
  allowAutofill,