design-zystem 1.0.329 → 1.0.331
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/ui/index.d.mts +13 -4
- package/dist/ui/index.d.ts +13 -4
- package/dist/ui/index.js +135 -100
- package/dist/ui/index.mjs +99 -64
- package/dist/ui/style.css +1 -1
- package/package.json +1 -1
package/dist/ui/index.d.mts
CHANGED
|
@@ -687,8 +687,8 @@ interface DrawerProps {
|
|
|
687
687
|
/**
|
|
688
688
|
* `false` : le panneau n'inerte plus la page et ne capture plus le focus — à
|
|
689
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).
|
|
691
|
-
*
|
|
690
|
+
* de son DOM, devient inerte et injoignable au clavier). Le clic à côté le
|
|
691
|
+
* referme quand même, sauf s'il tombe dans une modale ouverte par-dessus.
|
|
692
692
|
*/
|
|
693
693
|
modal?: boolean;
|
|
694
694
|
className?: string;
|
|
@@ -791,6 +791,7 @@ interface BannerToggle {
|
|
|
791
791
|
onChange: (checked: boolean) => void;
|
|
792
792
|
disabled?: boolean;
|
|
793
793
|
}
|
|
794
|
+
type BannerJustify = 'start' | 'center' | 'end';
|
|
794
795
|
interface BannerProps extends VariantProps<typeof bannerVariants> {
|
|
795
796
|
badge?: string;
|
|
796
797
|
title?: string;
|
|
@@ -798,12 +799,20 @@ interface BannerProps extends VariantProps<typeof bannerVariants> {
|
|
|
798
799
|
message?: string;
|
|
799
800
|
action?: BannerAction;
|
|
800
801
|
toggle?: BannerToggle;
|
|
802
|
+
/** Contenu libre, prioritaire sur `message` et sur badge/titre/sous-titre.
|
|
803
|
+
* Pour un texte dont seule une partie change de graisse, imbriquer des
|
|
804
|
+
* `Text` : `<Text size="xs">Traité par <Text weight="700">Pierre</Text></Text>`
|
|
805
|
+
* (`Text` rend un `span`, le flux de texte reste continu). */
|
|
801
806
|
children?: ReactNode;
|
|
807
|
+
/** Alignement du contenu (badge/titre/sous-titre, message ou children).
|
|
808
|
+
* L'action ou le toggle restent alignés à droite : le contenu s'aligne
|
|
809
|
+
* alors dans l'espace restant. */
|
|
810
|
+
justify?: BannerJustify;
|
|
802
811
|
fullWidth?: boolean;
|
|
803
812
|
width?: string;
|
|
804
813
|
className?: string;
|
|
805
814
|
}
|
|
806
|
-
declare const Banner: ({ tone, badge, title, subtitle, message, action, toggle, children, fullWidth, width, className, }: BannerProps) => react.JSX.Element;
|
|
815
|
+
declare const Banner: ({ tone, badge, title, subtitle, message, action, toggle, children, justify, fullWidth, width, className, }: BannerProps) => react.JSX.Element;
|
|
807
816
|
|
|
808
817
|
interface FloatingAction {
|
|
809
818
|
id: string;
|
|
@@ -1424,4 +1433,4 @@ declare const allowAutofill: (autoComplete: string) => {
|
|
|
1424
1433
|
"data-form-type": undefined;
|
|
1425
1434
|
};
|
|
1426
1435
|
|
|
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 };
|
|
1436
|
+
export { Attachment, type AttachmentProps, type AttachmentStatus, Avatar, AvatarBadge, type AvatarBadgeConfig, type AvatarBadgeProps, AvatarFallback, type AvatarFallbackProps, AvatarGroup, type AvatarGroupProps, AvatarImage, type AvatarImageProps, type AvatarProps, Badge, type BadgeProps, Banner, type BannerAction, type BannerJustify, type BannerProps, type BannerToggle, Box, type BoxProps, Bulk, type BulkProps, type BulkSection, Button, type ButtonColor, type ButtonProps, COLOR_TOKENS, Checkbox, type CheckboxProps, Collapsible, CollapsibleContent, CollapsibleTrigger, type ColorKey, ColorPicker, type ColorPickerProps, type ColorToken, DatePicker, type DatePickerMode, type DatePickerProps, type DatePreset, Divider, type DividerProps, Drawer, DrawerBody, DrawerClose, DrawerDescription, type DrawerDirection, DrawerFooter, DrawerHeader, type DrawerProps, DrawerTitle, EmailInput, type EmailInputProps, EmptyState, type EmptyStateProps, FilePicker, type FilePickerProps, FileUploadZone, type FileUploadZoneProps, type FloatingAction, FloatingButton, type FloatingButtonProps, type FloatingSafeArea, Gantt, type GanttBand, type GanttBar, type GanttDay, GanttDot, type GanttProps, type GanttRow, GanttSwatch, Icon, IconBadge, type IconBadgeProps, type IconColor, type IconFamily, type IconProps, type IconSize, type IconTabItem, IconTabs, type IconTabsProps, IconTooltip, type IconTooltipProps, Image, type ImageProps, Input, InputGroup, InputGroupAddon, type InputGroupAddonProps, InputGroupButton, type InputGroupButtonProps, type InputGroupProps, type InputProps, Item, ItemActions, ItemContent, ItemDescription, ItemMedia, type ItemMediaProps, type ItemProps, ItemTitle, Label, type LabelProps, Layout, type LayoutProps, Link, type LinkProps, Message, MessageDateSeparator, type MessageDateSeparatorProps, type MessageProps, MessageScroller, type MessageScrollerProps, type MessageSeparatorTone, type MessageTone, type MessageVariant, MetricCard, type MetricCardProps, Modal, ModalBody, ModalClose, ModalDescription, ModalFooter, ModalHeader, type ModalProps, ModalTitle, type MultiSelectProps, type OptimizeImageOptions, type OptimizeImageResult, PageContainer, type PageContainerProps, Pagination, type PaginationProps, PasswordInput, type PasswordInputProps, PdfPreview, type PdfPreviewProps, PhoneInput, type PhoneInputMeta, type PhoneInputProps, Popover, type PopoverMenuItem, type PopoverProps, ProgressBar, type ProgressBarProps, Radio, type RadioOption, type RadioProps, ScrollArea, type ScrollAreaProps, SearchInput, type SearchInputProps, Select, type SelectOption, type SelectProps, type SingleSelectProps, Skeleton, type SkeletonProps, Spinner, type SpinnerProps, type SpinnerSize, Stepper, type StepperProps, Switch, type SwitchProps, type TabItem, Table, TableCell, type TableCellProps, type TableEmptyState, TableFooter, TableFooterCell, type TableFooterCellProps, type TableFooterProps, TableFooterRow, type TableFooterRowProps, TableHeader, TableHeaderCell, type TableHeaderCellProps, type TableHeaderProps, TableHeaderRow, type TableHeaderRowProps, type TablePagination, type TableProps, TableRow, type TableRowProps, Tabs, type TabsProps, type TabsVariant, TagBubble, type TagBubbleProps, type TagOption, TagSelect, type TagSelectProps, Text, type TextProps, Textarea, type 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 };
|
package/dist/ui/index.d.ts
CHANGED
|
@@ -687,8 +687,8 @@ interface DrawerProps {
|
|
|
687
687
|
/**
|
|
688
688
|
* `false` : le panneau n'inerte plus la page et ne capture plus le focus — à
|
|
689
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).
|
|
691
|
-
*
|
|
690
|
+
* de son DOM, devient inerte et injoignable au clavier). Le clic à côté le
|
|
691
|
+
* referme quand même, sauf s'il tombe dans une modale ouverte par-dessus.
|
|
692
692
|
*/
|
|
693
693
|
modal?: boolean;
|
|
694
694
|
className?: string;
|
|
@@ -791,6 +791,7 @@ interface BannerToggle {
|
|
|
791
791
|
onChange: (checked: boolean) => void;
|
|
792
792
|
disabled?: boolean;
|
|
793
793
|
}
|
|
794
|
+
type BannerJustify = 'start' | 'center' | 'end';
|
|
794
795
|
interface BannerProps extends VariantProps<typeof bannerVariants> {
|
|
795
796
|
badge?: string;
|
|
796
797
|
title?: string;
|
|
@@ -798,12 +799,20 @@ interface BannerProps extends VariantProps<typeof bannerVariants> {
|
|
|
798
799
|
message?: string;
|
|
799
800
|
action?: BannerAction;
|
|
800
801
|
toggle?: BannerToggle;
|
|
802
|
+
/** Contenu libre, prioritaire sur `message` et sur badge/titre/sous-titre.
|
|
803
|
+
* Pour un texte dont seule une partie change de graisse, imbriquer des
|
|
804
|
+
* `Text` : `<Text size="xs">Traité par <Text weight="700">Pierre</Text></Text>`
|
|
805
|
+
* (`Text` rend un `span`, le flux de texte reste continu). */
|
|
801
806
|
children?: ReactNode;
|
|
807
|
+
/** Alignement du contenu (badge/titre/sous-titre, message ou children).
|
|
808
|
+
* L'action ou le toggle restent alignés à droite : le contenu s'aligne
|
|
809
|
+
* alors dans l'espace restant. */
|
|
810
|
+
justify?: BannerJustify;
|
|
802
811
|
fullWidth?: boolean;
|
|
803
812
|
width?: string;
|
|
804
813
|
className?: string;
|
|
805
814
|
}
|
|
806
|
-
declare const Banner: ({ tone, badge, title, subtitle, message, action, toggle, children, fullWidth, width, className, }: BannerProps) => react.JSX.Element;
|
|
815
|
+
declare const Banner: ({ tone, badge, title, subtitle, message, action, toggle, children, justify, fullWidth, width, className, }: BannerProps) => react.JSX.Element;
|
|
807
816
|
|
|
808
817
|
interface FloatingAction {
|
|
809
818
|
id: string;
|
|
@@ -1424,4 +1433,4 @@ declare const allowAutofill: (autoComplete: string) => {
|
|
|
1424
1433
|
"data-form-type": undefined;
|
|
1425
1434
|
};
|
|
1426
1435
|
|
|
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 };
|
|
1436
|
+
export { Attachment, type AttachmentProps, type AttachmentStatus, Avatar, AvatarBadge, type AvatarBadgeConfig, type AvatarBadgeProps, AvatarFallback, type AvatarFallbackProps, AvatarGroup, type AvatarGroupProps, AvatarImage, type AvatarImageProps, type AvatarProps, Badge, type BadgeProps, Banner, type BannerAction, type BannerJustify, type BannerProps, type BannerToggle, Box, type BoxProps, Bulk, type BulkProps, type BulkSection, Button, type ButtonColor, type ButtonProps, COLOR_TOKENS, Checkbox, type CheckboxProps, Collapsible, CollapsibleContent, CollapsibleTrigger, type ColorKey, ColorPicker, type ColorPickerProps, type ColorToken, DatePicker, type DatePickerMode, type DatePickerProps, type DatePreset, Divider, type DividerProps, Drawer, DrawerBody, DrawerClose, DrawerDescription, type DrawerDirection, DrawerFooter, DrawerHeader, type DrawerProps, DrawerTitle, EmailInput, type EmailInputProps, EmptyState, type EmptyStateProps, FilePicker, type FilePickerProps, FileUploadZone, type FileUploadZoneProps, type FloatingAction, FloatingButton, type FloatingButtonProps, type FloatingSafeArea, Gantt, type GanttBand, type GanttBar, type GanttDay, GanttDot, type GanttProps, type GanttRow, GanttSwatch, Icon, IconBadge, type IconBadgeProps, type IconColor, type IconFamily, type IconProps, type IconSize, type IconTabItem, IconTabs, type IconTabsProps, IconTooltip, type IconTooltipProps, Image, type ImageProps, Input, InputGroup, InputGroupAddon, type InputGroupAddonProps, InputGroupButton, type InputGroupButtonProps, type InputGroupProps, type InputProps, Item, ItemActions, ItemContent, ItemDescription, ItemMedia, type ItemMediaProps, type ItemProps, ItemTitle, Label, type LabelProps, Layout, type LayoutProps, Link, type LinkProps, Message, MessageDateSeparator, type MessageDateSeparatorProps, type MessageProps, MessageScroller, type MessageScrollerProps, type MessageSeparatorTone, type MessageTone, type MessageVariant, MetricCard, type MetricCardProps, Modal, ModalBody, ModalClose, ModalDescription, ModalFooter, ModalHeader, type ModalProps, ModalTitle, type MultiSelectProps, type OptimizeImageOptions, type OptimizeImageResult, PageContainer, type PageContainerProps, Pagination, type PaginationProps, PasswordInput, type PasswordInputProps, PdfPreview, type PdfPreviewProps, PhoneInput, type PhoneInputMeta, type PhoneInputProps, Popover, type PopoverMenuItem, type PopoverProps, ProgressBar, type ProgressBarProps, Radio, type RadioOption, type RadioProps, ScrollArea, type ScrollAreaProps, SearchInput, type SearchInputProps, Select, type SelectOption, type SelectProps, type SingleSelectProps, Skeleton, type SkeletonProps, Spinner, type SpinnerProps, type SpinnerSize, Stepper, type StepperProps, Switch, type SwitchProps, type TabItem, Table, TableCell, type TableCellProps, type TableEmptyState, TableFooter, TableFooterCell, type TableFooterCellProps, type TableFooterProps, TableFooterRow, type TableFooterRowProps, TableHeader, TableHeaderCell, type TableHeaderCellProps, type TableHeaderProps, TableHeaderRow, type TableHeaderRowProps, type TablePagination, type TableProps, TableRow, type TableRowProps, Tabs, type TabsProps, type TabsVariant, TagBubble, type TagBubbleProps, type TagOption, TagSelect, type TagSelectProps, Text, type TextProps, Textarea, type 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 };
|
package/dist/ui/index.js
CHANGED
|
@@ -1956,7 +1956,7 @@ var Tabs = ({
|
|
|
1956
1956
|
),
|
|
1957
1957
|
children: [
|
|
1958
1958
|
item.label,
|
|
1959
|
-
Boolean(item.bubbleNumber) && /* @__PURE__ */ (0, import_jsx_runtime25.jsx)("span", { className: "flex h-[18px] min-w-[20px] items-center justify-center rounded-full bg-red-
|
|
1959
|
+
Boolean(item.bubbleNumber) && /* @__PURE__ */ (0, import_jsx_runtime25.jsx)("span", { className: "flex h-[18px] min-w-[20px] items-center justify-center rounded-full bg-red-500 px-1.5 text-[10px] font-semibold leading-none text-white", children: item.bubbleNumber })
|
|
1960
1960
|
]
|
|
1961
1961
|
},
|
|
1962
1962
|
item.id
|
|
@@ -3376,6 +3376,7 @@ var CollapsibleContent = (_a) => {
|
|
|
3376
3376
|
};
|
|
3377
3377
|
|
|
3378
3378
|
// src/ui/components/ui/Drawer.tsx
|
|
3379
|
+
var import_react24 = require("react");
|
|
3379
3380
|
var import_vaul = require("vaul");
|
|
3380
3381
|
var import_jsx_runtime45 = require("react/jsx-runtime");
|
|
3381
3382
|
var CONTENT_POSITION = {
|
|
@@ -3394,6 +3395,20 @@ var Drawer = ({
|
|
|
3394
3395
|
className
|
|
3395
3396
|
}) => {
|
|
3396
3397
|
const isVertical = direction === "left" || direction === "right";
|
|
3398
|
+
const contentRef = (0, import_react24.useRef)(null);
|
|
3399
|
+
(0, import_react24.useEffect)(() => {
|
|
3400
|
+
if (modal || !open || typeof document === "undefined") return;
|
|
3401
|
+
const handlePointerDown = (event) => {
|
|
3402
|
+
var _a;
|
|
3403
|
+
const target = event.target;
|
|
3404
|
+
if (!target) return;
|
|
3405
|
+
if ((_a = contentRef.current) == null ? void 0 : _a.contains(target)) return;
|
|
3406
|
+
if (target.closest('[role="dialog"], [data-drawer-keep-open]')) return;
|
|
3407
|
+
onClose == null ? void 0 : onClose();
|
|
3408
|
+
};
|
|
3409
|
+
document.addEventListener("pointerdown", handlePointerDown);
|
|
3410
|
+
return () => document.removeEventListener("pointerdown", handlePointerDown);
|
|
3411
|
+
}, [modal, open, onClose]);
|
|
3397
3412
|
return /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(
|
|
3398
3413
|
import_vaul.Drawer.Root,
|
|
3399
3414
|
{
|
|
@@ -3406,6 +3421,7 @@ var Drawer = ({
|
|
|
3406
3421
|
/* @__PURE__ */ (0, import_jsx_runtime45.jsx)(
|
|
3407
3422
|
import_vaul.Drawer.Content,
|
|
3408
3423
|
{
|
|
3424
|
+
ref: contentRef,
|
|
3409
3425
|
onPointerDownOutside: (event) => {
|
|
3410
3426
|
const target = event.target;
|
|
3411
3427
|
if (target == null ? void 0 : target.closest('[role="dialog"], [data-drawer-keep-open]'))
|
|
@@ -3657,7 +3673,7 @@ var toast = {
|
|
|
3657
3673
|
};
|
|
3658
3674
|
|
|
3659
3675
|
// src/ui/components/ui/PageContainer.tsx
|
|
3660
|
-
var
|
|
3676
|
+
var import_react25 = require("react");
|
|
3661
3677
|
var import_class_variance_authority13 = require("class-variance-authority");
|
|
3662
3678
|
var import_jsx_runtime50 = require("react/jsx-runtime");
|
|
3663
3679
|
var pageContainerVariants = (0, import_class_variance_authority13.cva)(
|
|
@@ -3674,7 +3690,7 @@ var pageContainerVariants = (0, import_class_variance_authority13.cva)(
|
|
|
3674
3690
|
defaultVariants: { padding: "md" }
|
|
3675
3691
|
}
|
|
3676
3692
|
);
|
|
3677
|
-
var PageContainer = (0,
|
|
3693
|
+
var PageContainer = (0, import_react25.forwardRef)(
|
|
3678
3694
|
(_a, ref) => {
|
|
3679
3695
|
var _b = _a, { padding, className } = _b, props = __objRest(_b, ["padding", "className"]);
|
|
3680
3696
|
return /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(
|
|
@@ -3689,7 +3705,7 @@ var PageContainer = (0, import_react24.forwardRef)(
|
|
|
3689
3705
|
PageContainer.displayName = "PageContainer";
|
|
3690
3706
|
|
|
3691
3707
|
// src/ui/components/ui/IconTabs.tsx
|
|
3692
|
-
var
|
|
3708
|
+
var import_react26 = require("react");
|
|
3693
3709
|
var import_jsx_runtime51 = require("react/jsx-runtime");
|
|
3694
3710
|
var IconTabs = ({
|
|
3695
3711
|
items,
|
|
@@ -3699,10 +3715,10 @@ var IconTabs = ({
|
|
|
3699
3715
|
className
|
|
3700
3716
|
}) => {
|
|
3701
3717
|
var _a;
|
|
3702
|
-
const listRef = (0,
|
|
3703
|
-
const tabRefs = (0,
|
|
3704
|
-
const [bar, setBar] = (0,
|
|
3705
|
-
const updateBar = (0,
|
|
3718
|
+
const listRef = (0, import_react26.useRef)(null);
|
|
3719
|
+
const tabRefs = (0, import_react26.useRef)([]);
|
|
3720
|
+
const [bar, setBar] = (0, import_react26.useState)({ left: 0, top: 0, width: 0, height: 0 });
|
|
3721
|
+
const updateBar = (0, import_react26.useCallback)(() => {
|
|
3706
3722
|
const root = listRef.current;
|
|
3707
3723
|
const activeEl = tabRefs.current[value];
|
|
3708
3724
|
if (!root || !activeEl) return;
|
|
@@ -3715,7 +3731,7 @@ var IconTabs = ({
|
|
|
3715
3731
|
height: box.height
|
|
3716
3732
|
});
|
|
3717
3733
|
}, [value]);
|
|
3718
|
-
(0,
|
|
3734
|
+
(0, import_react26.useEffect)(() => {
|
|
3719
3735
|
updateBar();
|
|
3720
3736
|
const ro = new ResizeObserver(updateBar);
|
|
3721
3737
|
if (listRef.current) ro.observe(listRef.current);
|
|
@@ -3799,6 +3815,11 @@ var bannerVariants = (0, import_class_variance_authority14.cva)("rounded-[6px] b
|
|
|
3799
3815
|
},
|
|
3800
3816
|
defaultVariants: { tone: "blue-700" }
|
|
3801
3817
|
});
|
|
3818
|
+
var textAlignByJustify = {
|
|
3819
|
+
start: "left",
|
|
3820
|
+
center: "center",
|
|
3821
|
+
end: "right"
|
|
3822
|
+
};
|
|
3802
3823
|
var Banner = ({
|
|
3803
3824
|
tone = "blue-700",
|
|
3804
3825
|
badge,
|
|
@@ -3808,61 +3829,75 @@ var Banner = ({
|
|
|
3808
3829
|
action,
|
|
3809
3830
|
toggle,
|
|
3810
3831
|
children,
|
|
3832
|
+
justify = "start",
|
|
3811
3833
|
fullWidth,
|
|
3812
3834
|
width,
|
|
3813
3835
|
className
|
|
3814
|
-
}) =>
|
|
3815
|
-
|
|
3816
|
-
{
|
|
3817
|
-
|
|
3818
|
-
|
|
3819
|
-
|
|
3820
|
-
|
|
3821
|
-
fullWidth,
|
|
3822
|
-
width,
|
|
3823
|
-
className: cn(bannerVariants({ tone }), className),
|
|
3824
|
-
children: [
|
|
3825
|
-
children ? children : message ? /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(Text, { size: "s", children: message }) : /* @__PURE__ */ (0, import_jsx_runtime52.jsxs)(Layout, { column: true, align: "start", gap: 1, children: [
|
|
3826
|
-
/* @__PURE__ */ (0, import_jsx_runtime52.jsxs)(Layout, { align: "center", gap: 2, children: [
|
|
3827
|
-
badge && /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(Badge, { color: tone != null ? tone : "blue-700", size: "xs", children: badge }),
|
|
3828
|
-
title && /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
|
|
3829
|
-
Text,
|
|
3830
|
-
{
|
|
3831
|
-
size: "s",
|
|
3832
|
-
weight: "bold",
|
|
3833
|
-
color: toggle ? tone != null ? tone : "blue-700" : "neutral-800",
|
|
3834
|
-
children: title
|
|
3835
|
-
}
|
|
3836
|
-
)
|
|
3837
|
-
] }),
|
|
3838
|
-
subtitle && /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(Text, { size: "xs", color: toggle ? tone != null ? tone : "blue-700" : "neutral-800", children: subtitle })
|
|
3839
|
-
] }),
|
|
3840
|
-
toggle ? /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
|
|
3841
|
-
Switch,
|
|
3842
|
-
{
|
|
3843
|
-
checked: toggle.checked,
|
|
3844
|
-
onChange: toggle.onChange,
|
|
3845
|
-
disabled: toggle.disabled
|
|
3846
|
-
}
|
|
3847
|
-
) : action && /* @__PURE__ */ (0, import_jsx_runtime52.jsxs)(
|
|
3848
|
-
Button,
|
|
3836
|
+
}) => {
|
|
3837
|
+
const align = textAlignByJustify[justify];
|
|
3838
|
+
const content = children ? children : message ? /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(Text, { size: "s", align, children: message }) : /* @__PURE__ */ (0, import_jsx_runtime52.jsxs)(Layout, { column: true, align: justify, gap: 1, children: [
|
|
3839
|
+
/* @__PURE__ */ (0, import_jsx_runtime52.jsxs)(Layout, { align: "center", gap: 2, children: [
|
|
3840
|
+
badge && /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(Badge, { color: tone != null ? tone : "blue-700", size: "xs", children: badge }),
|
|
3841
|
+
title && /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
|
|
3842
|
+
Text,
|
|
3849
3843
|
{
|
|
3850
|
-
look: "outline",
|
|
3851
3844
|
size: "s",
|
|
3852
|
-
|
|
3853
|
-
|
|
3854
|
-
|
|
3855
|
-
|
|
3856
|
-
action.label
|
|
3857
|
-
]
|
|
3845
|
+
weight: "bold",
|
|
3846
|
+
align,
|
|
3847
|
+
color: toggle ? tone != null ? tone : "blue-700" : "neutral-800",
|
|
3848
|
+
children: title
|
|
3858
3849
|
}
|
|
3859
3850
|
)
|
|
3860
|
-
]
|
|
3861
|
-
|
|
3862
|
-
|
|
3851
|
+
] }),
|
|
3852
|
+
subtitle && /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
|
|
3853
|
+
Text,
|
|
3854
|
+
{
|
|
3855
|
+
size: "xs",
|
|
3856
|
+
align,
|
|
3857
|
+
color: toggle ? tone != null ? tone : "blue-700" : "neutral-800",
|
|
3858
|
+
children: subtitle
|
|
3859
|
+
}
|
|
3860
|
+
)
|
|
3861
|
+
] });
|
|
3862
|
+
return /* @__PURE__ */ (0, import_jsx_runtime52.jsxs)(
|
|
3863
|
+
Layout,
|
|
3864
|
+
{
|
|
3865
|
+
role: "alert",
|
|
3866
|
+
align: "center",
|
|
3867
|
+
justify: "between",
|
|
3868
|
+
gap: 4,
|
|
3869
|
+
fullWidth,
|
|
3870
|
+
width,
|
|
3871
|
+
className: cn(bannerVariants({ tone }), className),
|
|
3872
|
+
children: [
|
|
3873
|
+
justify === "start" ? content : /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(Layout, { flex: 1, justify, align: "center", gap: 2, wrap: true, children: content }),
|
|
3874
|
+
toggle ? /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
|
|
3875
|
+
Switch,
|
|
3876
|
+
{
|
|
3877
|
+
checked: toggle.checked,
|
|
3878
|
+
onChange: toggle.onChange,
|
|
3879
|
+
disabled: toggle.disabled
|
|
3880
|
+
}
|
|
3881
|
+
) : action && /* @__PURE__ */ (0, import_jsx_runtime52.jsxs)(
|
|
3882
|
+
Button,
|
|
3883
|
+
{
|
|
3884
|
+
look: "outline",
|
|
3885
|
+
size: "s",
|
|
3886
|
+
color: tone != null ? tone : "blue-700",
|
|
3887
|
+
onClick: action.onClick,
|
|
3888
|
+
children: [
|
|
3889
|
+
action.icon,
|
|
3890
|
+
action.label
|
|
3891
|
+
]
|
|
3892
|
+
}
|
|
3893
|
+
)
|
|
3894
|
+
]
|
|
3895
|
+
}
|
|
3896
|
+
);
|
|
3897
|
+
};
|
|
3863
3898
|
|
|
3864
3899
|
// src/ui/components/ui/FloatingButton.tsx
|
|
3865
|
-
var
|
|
3900
|
+
var import_react27 = require("react");
|
|
3866
3901
|
|
|
3867
3902
|
// src/ui/lib/floatingArc.ts
|
|
3868
3903
|
var MAX_STEP = 65;
|
|
@@ -4008,17 +4043,17 @@ var FloatingButton = ({
|
|
|
4008
4043
|
persistKey,
|
|
4009
4044
|
safeArea
|
|
4010
4045
|
}) => {
|
|
4011
|
-
const containerRef = (0,
|
|
4012
|
-
const [placement, setPlacement] = (0,
|
|
4046
|
+
const containerRef = (0, import_react27.useRef)(null);
|
|
4047
|
+
const [placement, setPlacement] = (0, import_react27.useState)(() => ({
|
|
4013
4048
|
geometry: __spreadValues({ base: 90 }, arcLayout(actions.length, ARC_RADIUS, SUB_SIZE)),
|
|
4014
4049
|
shift: { x: 0, y: 0 }
|
|
4015
4050
|
}));
|
|
4016
|
-
const [isDragging, setIsDragging] = (0,
|
|
4017
|
-
const [offset, setOffset] = (0,
|
|
4018
|
-
const offsetRef = (0,
|
|
4019
|
-
const lastPointRef = (0,
|
|
4020
|
-
const dragDistanceRef = (0,
|
|
4021
|
-
const clampOffset = (0,
|
|
4051
|
+
const [isDragging, setIsDragging] = (0, import_react27.useState)(false);
|
|
4052
|
+
const [offset, setOffset] = (0, import_react27.useState)(() => readStoredOffset(persistKey));
|
|
4053
|
+
const offsetRef = (0, import_react27.useRef)(offset);
|
|
4054
|
+
const lastPointRef = (0, import_react27.useRef)({ x: 0, y: 0 });
|
|
4055
|
+
const dragDistanceRef = (0, import_react27.useRef)(0);
|
|
4056
|
+
const clampOffset = (0, import_react27.useCallback)(
|
|
4022
4057
|
(next) => {
|
|
4023
4058
|
var _a, _b, _c, _d;
|
|
4024
4059
|
const el = containerRef.current;
|
|
@@ -4038,14 +4073,14 @@ var FloatingButton = ({
|
|
|
4038
4073
|
},
|
|
4039
4074
|
[safeArea == null ? void 0 : safeArea.left, safeArea == null ? void 0 : safeArea.top, safeArea == null ? void 0 : safeArea.right, safeArea == null ? void 0 : safeArea.bottom]
|
|
4040
4075
|
);
|
|
4041
|
-
(0,
|
|
4076
|
+
(0, import_react27.useLayoutEffect)(() => {
|
|
4042
4077
|
const corrected = clampOffset(offsetRef.current);
|
|
4043
4078
|
if (corrected.x === offsetRef.current.x && corrected.y === offsetRef.current.y)
|
|
4044
4079
|
return;
|
|
4045
4080
|
offsetRef.current = corrected;
|
|
4046
4081
|
setOffset(corrected);
|
|
4047
4082
|
}, [clampOffset]);
|
|
4048
|
-
(0,
|
|
4083
|
+
(0, import_react27.useEffect)(() => {
|
|
4049
4084
|
if (!draggable || !isDragging) return;
|
|
4050
4085
|
const onPointerMove = (e) => {
|
|
4051
4086
|
const dx = e.clientX - lastPointRef.current.x;
|
|
@@ -4081,7 +4116,7 @@ var FloatingButton = ({
|
|
|
4081
4116
|
window.removeEventListener("pointercancel", endDrag);
|
|
4082
4117
|
};
|
|
4083
4118
|
}, [draggable, isDragging, persistKey, clampOffset]);
|
|
4084
|
-
const resolvePlacement = (0,
|
|
4119
|
+
const resolvePlacement = (0, import_react27.useCallback)(() => {
|
|
4085
4120
|
var _a, _b, _c, _d;
|
|
4086
4121
|
const el = containerRef.current;
|
|
4087
4122
|
if (!el || typeof window === "undefined") return;
|
|
@@ -4110,13 +4145,13 @@ var FloatingButton = ({
|
|
|
4110
4145
|
safeArea == null ? void 0 : safeArea.right,
|
|
4111
4146
|
safeArea == null ? void 0 : safeArea.bottom
|
|
4112
4147
|
]);
|
|
4113
|
-
(0,
|
|
4148
|
+
(0, import_react27.useLayoutEffect)(() => {
|
|
4114
4149
|
if (isOpen) resolvePlacement();
|
|
4115
4150
|
}, [isOpen, offset, resolvePlacement]);
|
|
4116
|
-
(0,
|
|
4151
|
+
(0, import_react27.useLayoutEffect)(() => {
|
|
4117
4152
|
resolvePlacement();
|
|
4118
4153
|
}, [resolvePlacement]);
|
|
4119
|
-
(0,
|
|
4154
|
+
(0, import_react27.useEffect)(() => {
|
|
4120
4155
|
if (typeof window === "undefined") return;
|
|
4121
4156
|
const onResize = () => {
|
|
4122
4157
|
resolvePlacement();
|
|
@@ -4635,7 +4670,7 @@ var Timeline = ({
|
|
|
4635
4670
|
};
|
|
4636
4671
|
|
|
4637
4672
|
// src/ui/components/ui/ColorPicker.tsx
|
|
4638
|
-
var
|
|
4673
|
+
var import_react28 = require("react");
|
|
4639
4674
|
var import_class_variance_authority15 = require("class-variance-authority");
|
|
4640
4675
|
var import_jsx_runtime60 = require("react/jsx-runtime");
|
|
4641
4676
|
var swatchVariants = (0, import_class_variance_authority15.cva)(
|
|
@@ -4664,7 +4699,7 @@ var inputVariants = (0, import_class_variance_authority15.cva)(
|
|
|
4664
4699
|
defaultVariants: { size: "m" }
|
|
4665
4700
|
}
|
|
4666
4701
|
);
|
|
4667
|
-
var ColorPicker = (0,
|
|
4702
|
+
var ColorPicker = (0, import_react28.forwardRef)(
|
|
4668
4703
|
({
|
|
4669
4704
|
label,
|
|
4670
4705
|
value,
|
|
@@ -4674,7 +4709,7 @@ var ColorPicker = (0, import_react27.forwardRef)(
|
|
|
4674
4709
|
size,
|
|
4675
4710
|
className
|
|
4676
4711
|
}, ref) => {
|
|
4677
|
-
const [internalColor, setInternalColor] = (0,
|
|
4712
|
+
const [internalColor, setInternalColor] = (0, import_react28.useState)(defaultValue);
|
|
4678
4713
|
const currentColor = value !== void 0 ? value : internalColor;
|
|
4679
4714
|
const handleChange = (e) => {
|
|
4680
4715
|
const next = e.target.value;
|
|
@@ -4738,7 +4773,7 @@ var ColorPicker = (0, import_react27.forwardRef)(
|
|
|
4738
4773
|
ColorPicker.displayName = "ColorPicker";
|
|
4739
4774
|
|
|
4740
4775
|
// src/ui/components/ui/FileUploadZone.tsx
|
|
4741
|
-
var
|
|
4776
|
+
var import_react29 = require("react");
|
|
4742
4777
|
var import_jsx_runtime61 = require("react/jsx-runtime");
|
|
4743
4778
|
var ACCEPT_MAP = {
|
|
4744
4779
|
png: "image/png",
|
|
@@ -4771,23 +4806,23 @@ var FileUploadZone = ({
|
|
|
4771
4806
|
showFileName = false,
|
|
4772
4807
|
className
|
|
4773
4808
|
}) => {
|
|
4774
|
-
const [isDragging, setIsDragging] = (0,
|
|
4775
|
-
const [internalPreviewUrl, setInternalPreviewUrl] = (0,
|
|
4809
|
+
const [isDragging, setIsDragging] = (0, import_react29.useState)(false);
|
|
4810
|
+
const [internalPreviewUrl, setInternalPreviewUrl] = (0, import_react29.useState)(
|
|
4776
4811
|
null
|
|
4777
4812
|
);
|
|
4778
|
-
const [fileType, setFileType] = (0,
|
|
4779
|
-
const [fileName, setFileName] = (0,
|
|
4780
|
-
const [inlineError, setInlineError] = (0,
|
|
4781
|
-
const inputRef = (0,
|
|
4813
|
+
const [fileType, setFileType] = (0, import_react29.useState)(null);
|
|
4814
|
+
const [fileName, setFileName] = (0, import_react29.useState)(null);
|
|
4815
|
+
const [inlineError, setInlineError] = (0, import_react29.useState)(null);
|
|
4816
|
+
const inputRef = (0, import_react29.useRef)(null);
|
|
4782
4817
|
const resolvedAccept = acceptOnlyPdf ? PDF_ONLY : accept;
|
|
4783
4818
|
const mimeTypes = getMimeTypes(resolvedAccept);
|
|
4784
4819
|
const acceptString = mimeTypes.join(",");
|
|
4785
4820
|
const previewUrl = multiple ? null : controlledPreviewUrl || (showPreview ? internalPreviewUrl : null);
|
|
4786
|
-
const emitError = (0,
|
|
4821
|
+
const emitError = (0, import_react29.useCallback)(
|
|
4787
4822
|
(message) => onError ? onError(message) : setInlineError(message),
|
|
4788
4823
|
[onError]
|
|
4789
4824
|
);
|
|
4790
|
-
const validateFile = (0,
|
|
4825
|
+
const validateFile = (0, import_react29.useCallback)(
|
|
4791
4826
|
(file) => {
|
|
4792
4827
|
if (!mimeTypes.includes(file.type))
|
|
4793
4828
|
return { ok: false, error: "Format de fichier non accept\xE9." };
|
|
@@ -4801,7 +4836,7 @@ var FileUploadZone = ({
|
|
|
4801
4836
|
},
|
|
4802
4837
|
[mimeTypes, maxSizeMB]
|
|
4803
4838
|
);
|
|
4804
|
-
const processFile = (0,
|
|
4839
|
+
const processFile = (0, import_react29.useCallback)(
|
|
4805
4840
|
(file) => {
|
|
4806
4841
|
setInlineError(null);
|
|
4807
4842
|
const result = validateFile(file);
|
|
@@ -4816,7 +4851,7 @@ var FileUploadZone = ({
|
|
|
4816
4851
|
},
|
|
4817
4852
|
[validateFile, onSave, showPreview, emitError]
|
|
4818
4853
|
);
|
|
4819
|
-
const processFiles = (0,
|
|
4854
|
+
const processFiles = (0, import_react29.useCallback)(
|
|
4820
4855
|
(files) => {
|
|
4821
4856
|
setInlineError(null);
|
|
4822
4857
|
for (const file of files) {
|
|
@@ -4975,7 +5010,7 @@ var FileUploadZone = ({
|
|
|
4975
5010
|
};
|
|
4976
5011
|
|
|
4977
5012
|
// src/ui/components/ui/FilePicker.tsx
|
|
4978
|
-
var
|
|
5013
|
+
var import_react30 = require("react");
|
|
4979
5014
|
var import_jsx_runtime62 = require("react/jsx-runtime");
|
|
4980
5015
|
var FilePicker = ({
|
|
4981
5016
|
label,
|
|
@@ -4989,7 +5024,7 @@ var FilePicker = ({
|
|
|
4989
5024
|
disabled = false,
|
|
4990
5025
|
className
|
|
4991
5026
|
}) => {
|
|
4992
|
-
const inputRef = (0,
|
|
5027
|
+
const inputRef = (0, import_react30.useRef)(null);
|
|
4993
5028
|
return /* @__PURE__ */ (0, import_jsx_runtime62.jsxs)(import_jsx_runtime62.Fragment, { children: [
|
|
4994
5029
|
/* @__PURE__ */ (0, import_jsx_runtime62.jsx)(
|
|
4995
5030
|
"input",
|
|
@@ -5027,7 +5062,7 @@ var FilePicker = ({
|
|
|
5027
5062
|
};
|
|
5028
5063
|
|
|
5029
5064
|
// src/ui/components/ui/Item.tsx
|
|
5030
|
-
var
|
|
5065
|
+
var import_react31 = require("react");
|
|
5031
5066
|
var import_class_variance_authority16 = require("class-variance-authority");
|
|
5032
5067
|
var import_jsx_runtime63 = require("react/jsx-runtime");
|
|
5033
5068
|
var itemVariants = (0, import_class_variance_authority16.cva)(
|
|
@@ -5047,7 +5082,7 @@ var itemVariants = (0, import_class_variance_authority16.cva)(
|
|
|
5047
5082
|
defaultVariants: { variant: "default", size: "default" }
|
|
5048
5083
|
}
|
|
5049
5084
|
);
|
|
5050
|
-
var Item3 = (0,
|
|
5085
|
+
var Item3 = (0, import_react31.forwardRef)(
|
|
5051
5086
|
(_a, ref) => {
|
|
5052
5087
|
var _b = _a, { variant, size, className } = _b, props = __objRest(_b, ["variant", "size", "className"]);
|
|
5053
5088
|
return /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(
|
|
@@ -5206,7 +5241,7 @@ var Attachment = ({
|
|
|
5206
5241
|
};
|
|
5207
5242
|
|
|
5208
5243
|
// src/ui/components/ui/PdfPreview.tsx
|
|
5209
|
-
var
|
|
5244
|
+
var import_react32 = require("react");
|
|
5210
5245
|
var import_react_pdf = require("react-pdf");
|
|
5211
5246
|
var import_jsx_runtime65 = require("react/jsx-runtime");
|
|
5212
5247
|
import_react_pdf.pdfjs.GlobalWorkerOptions.workerSrc = `https://unpkg.com/pdfjs-dist@${import_react_pdf.pdfjs.version}/build/pdf.worker.min.mjs`;
|
|
@@ -5216,8 +5251,8 @@ var PdfPreview = ({
|
|
|
5216
5251
|
maxHeight = "600px",
|
|
5217
5252
|
className
|
|
5218
5253
|
}) => {
|
|
5219
|
-
const [hasError, setHasError] = (0,
|
|
5220
|
-
const [numPages, setNumPages] = (0,
|
|
5254
|
+
const [hasError, setHasError] = (0, import_react32.useState)(false);
|
|
5255
|
+
const [numPages, setNumPages] = (0, import_react32.useState)(0);
|
|
5221
5256
|
const height = Math.round(width * 1.3);
|
|
5222
5257
|
const thumbnailSkeleton = /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(Skeleton, { width, height });
|
|
5223
5258
|
if (hasError) {
|
|
@@ -5324,7 +5359,7 @@ var ScrollArea = (_a) => {
|
|
|
5324
5359
|
};
|
|
5325
5360
|
|
|
5326
5361
|
// src/ui/components/ui/Message.tsx
|
|
5327
|
-
var
|
|
5362
|
+
var import_react33 = require("react");
|
|
5328
5363
|
var import_jsx_runtime67 = require("react/jsx-runtime");
|
|
5329
5364
|
var BUBBLE_BACKGROUND = {
|
|
5330
5365
|
own: { solid: "bg-blue-700", soft: "bg-blue-50" },
|
|
@@ -5334,7 +5369,7 @@ var BUBBLE_TAIL = {
|
|
|
5334
5369
|
own: "rounded-br-none",
|
|
5335
5370
|
other: "rounded-bl-none"
|
|
5336
5371
|
};
|
|
5337
|
-
var Message = (0,
|
|
5372
|
+
var Message = (0, import_react33.forwardRef)(
|
|
5338
5373
|
(_a, ref) => {
|
|
5339
5374
|
var _b = _a, {
|
|
5340
5375
|
variant = "other",
|
|
@@ -5443,7 +5478,7 @@ var Message = (0, import_react32.forwardRef)(
|
|
|
5443
5478
|
Message.displayName = "Message";
|
|
5444
5479
|
|
|
5445
5480
|
// src/ui/components/ui/MessageScroller.tsx
|
|
5446
|
-
var
|
|
5481
|
+
var import_react34 = require("react");
|
|
5447
5482
|
var import_jsx_runtime68 = require("react/jsx-runtime");
|
|
5448
5483
|
var SEPARATOR_LINE = {
|
|
5449
5484
|
neutral: "",
|
|
@@ -5494,9 +5529,9 @@ var MessageScroller = ({
|
|
|
5494
5529
|
viewportRef,
|
|
5495
5530
|
className
|
|
5496
5531
|
}) => {
|
|
5497
|
-
const fallbackRef = (0,
|
|
5532
|
+
const fallbackRef = (0, import_react34.useRef)(null);
|
|
5498
5533
|
const scrollerRef = viewportRef != null ? viewportRef : fallbackRef;
|
|
5499
|
-
(0,
|
|
5534
|
+
(0, import_react34.useLayoutEffect)(() => {
|
|
5500
5535
|
if (!autoScroll) return;
|
|
5501
5536
|
const viewport = scrollerRef.current;
|
|
5502
5537
|
if (!viewport) return;
|
|
@@ -5538,7 +5573,7 @@ var MessageScroller = ({
|
|
|
5538
5573
|
};
|
|
5539
5574
|
|
|
5540
5575
|
// src/ui/components/ui/Stepper.tsx
|
|
5541
|
-
var
|
|
5576
|
+
var import_react35 = require("react");
|
|
5542
5577
|
var import_jsx_runtime69 = require("react/jsx-runtime");
|
|
5543
5578
|
var Stepper = ({
|
|
5544
5579
|
numberOfSteps,
|
|
@@ -5556,7 +5591,7 @@ var Stepper = ({
|
|
|
5556
5591
|
children: Array.from({ length: numberOfSteps }, (_, i) => {
|
|
5557
5592
|
const isActive = i === current;
|
|
5558
5593
|
const isCompleted = i < current;
|
|
5559
|
-
return /* @__PURE__ */ (0, import_jsx_runtime69.jsxs)(
|
|
5594
|
+
return /* @__PURE__ */ (0, import_jsx_runtime69.jsxs)(import_react35.Fragment, { children: [
|
|
5560
5595
|
/* @__PURE__ */ (0, import_jsx_runtime69.jsx)(
|
|
5561
5596
|
"div",
|
|
5562
5597
|
{
|
|
@@ -5576,7 +5611,7 @@ var Stepper = ({
|
|
|
5576
5611
|
);
|
|
5577
5612
|
|
|
5578
5613
|
// src/ui/components/ui/DatePicker.tsx
|
|
5579
|
-
var
|
|
5614
|
+
var import_react36 = require("react");
|
|
5580
5615
|
var import_react_day_picker = require("react-day-picker");
|
|
5581
5616
|
var import_locale = require("react-day-picker/locale");
|
|
5582
5617
|
var import_style2 = require("react-day-picker/style.css");
|
|
@@ -5637,8 +5672,8 @@ var DatePicker = ({
|
|
|
5637
5672
|
className
|
|
5638
5673
|
}) => {
|
|
5639
5674
|
const isRange = mode === "range";
|
|
5640
|
-
const [open, setOpen] = (0,
|
|
5641
|
-
const [activePreset, setActivePreset] = (0,
|
|
5675
|
+
const [open, setOpen] = (0, import_react36.useState)(false);
|
|
5676
|
+
const [activePreset, setActivePreset] = (0, import_react36.useState)(null);
|
|
5642
5677
|
const resolvedPresets = presets != null ? presets : isRange ? RANGE_PRESETS : SINGLE_PRESETS;
|
|
5643
5678
|
const displayText = isRange ? startDate && endDate ? `${(0, import_date_fns.format)(startDate, "dd/MM/yyyy")} \u2014 ${(0, import_date_fns.format)(endDate, "dd/MM/yyyy")}` : placeholder != null ? placeholder : "S\xE9lectionner une p\xE9riode" : value ? (0, import_date_fns.format)(value, "dd/MM/yyyy") : placeholder != null ? placeholder : "S\xE9lectionner une date";
|
|
5644
5679
|
const hasValue = isRange ? Boolean(startDate && endDate) : Boolean(value);
|
package/dist/ui/index.mjs
CHANGED
|
@@ -1786,7 +1786,7 @@ var Tabs = ({
|
|
|
1786
1786
|
),
|
|
1787
1787
|
children: [
|
|
1788
1788
|
item.label,
|
|
1789
|
-
Boolean(item.bubbleNumber) && /* @__PURE__ */ jsx25("span", { className: "flex h-[18px] min-w-[20px] items-center justify-center rounded-full bg-red-
|
|
1789
|
+
Boolean(item.bubbleNumber) && /* @__PURE__ */ jsx25("span", { className: "flex h-[18px] min-w-[20px] items-center justify-center rounded-full bg-red-500 px-1.5 text-[10px] font-semibold leading-none text-white", children: item.bubbleNumber })
|
|
1790
1790
|
]
|
|
1791
1791
|
},
|
|
1792
1792
|
item.id
|
|
@@ -3219,6 +3219,7 @@ var CollapsibleContent = (_a) => {
|
|
|
3219
3219
|
};
|
|
3220
3220
|
|
|
3221
3221
|
// src/ui/components/ui/Drawer.tsx
|
|
3222
|
+
import { useEffect as useEffect5, useRef as useRef6 } from "react";
|
|
3222
3223
|
import { Drawer as VaulDrawer } from "vaul";
|
|
3223
3224
|
import { jsx as jsx45, jsxs as jsxs22 } from "react/jsx-runtime";
|
|
3224
3225
|
var CONTENT_POSITION = {
|
|
@@ -3237,6 +3238,20 @@ var Drawer = ({
|
|
|
3237
3238
|
className
|
|
3238
3239
|
}) => {
|
|
3239
3240
|
const isVertical = direction === "left" || direction === "right";
|
|
3241
|
+
const contentRef = useRef6(null);
|
|
3242
|
+
useEffect5(() => {
|
|
3243
|
+
if (modal || !open || typeof document === "undefined") return;
|
|
3244
|
+
const handlePointerDown = (event) => {
|
|
3245
|
+
var _a;
|
|
3246
|
+
const target = event.target;
|
|
3247
|
+
if (!target) return;
|
|
3248
|
+
if ((_a = contentRef.current) == null ? void 0 : _a.contains(target)) return;
|
|
3249
|
+
if (target.closest('[role="dialog"], [data-drawer-keep-open]')) return;
|
|
3250
|
+
onClose == null ? void 0 : onClose();
|
|
3251
|
+
};
|
|
3252
|
+
document.addEventListener("pointerdown", handlePointerDown);
|
|
3253
|
+
return () => document.removeEventListener("pointerdown", handlePointerDown);
|
|
3254
|
+
}, [modal, open, onClose]);
|
|
3240
3255
|
return /* @__PURE__ */ jsx45(
|
|
3241
3256
|
VaulDrawer.Root,
|
|
3242
3257
|
{
|
|
@@ -3249,6 +3264,7 @@ var Drawer = ({
|
|
|
3249
3264
|
/* @__PURE__ */ jsx45(
|
|
3250
3265
|
VaulDrawer.Content,
|
|
3251
3266
|
{
|
|
3267
|
+
ref: contentRef,
|
|
3252
3268
|
onPointerDownOutside: (event) => {
|
|
3253
3269
|
const target = event.target;
|
|
3254
3270
|
if (target == null ? void 0 : target.closest('[role="dialog"], [data-drawer-keep-open]'))
|
|
@@ -3532,7 +3548,7 @@ var PageContainer = forwardRef17(
|
|
|
3532
3548
|
PageContainer.displayName = "PageContainer";
|
|
3533
3549
|
|
|
3534
3550
|
// src/ui/components/ui/IconTabs.tsx
|
|
3535
|
-
import { useCallback as useCallback2, useEffect as
|
|
3551
|
+
import { useCallback as useCallback2, useEffect as useEffect6, useRef as useRef7, useState as useState6 } from "react";
|
|
3536
3552
|
import { jsx as jsx51, jsxs as jsxs25 } from "react/jsx-runtime";
|
|
3537
3553
|
var IconTabs = ({
|
|
3538
3554
|
items,
|
|
@@ -3542,8 +3558,8 @@ var IconTabs = ({
|
|
|
3542
3558
|
className
|
|
3543
3559
|
}) => {
|
|
3544
3560
|
var _a;
|
|
3545
|
-
const listRef =
|
|
3546
|
-
const tabRefs =
|
|
3561
|
+
const listRef = useRef7(null);
|
|
3562
|
+
const tabRefs = useRef7([]);
|
|
3547
3563
|
const [bar, setBar] = useState6({ left: 0, top: 0, width: 0, height: 0 });
|
|
3548
3564
|
const updateBar = useCallback2(() => {
|
|
3549
3565
|
const root = listRef.current;
|
|
@@ -3558,7 +3574,7 @@ var IconTabs = ({
|
|
|
3558
3574
|
height: box.height
|
|
3559
3575
|
});
|
|
3560
3576
|
}, [value]);
|
|
3561
|
-
|
|
3577
|
+
useEffect6(() => {
|
|
3562
3578
|
updateBar();
|
|
3563
3579
|
const ro = new ResizeObserver(updateBar);
|
|
3564
3580
|
if (listRef.current) ro.observe(listRef.current);
|
|
@@ -3642,6 +3658,11 @@ var bannerVariants = cva14("rounded-[6px] border px-4 py-2", {
|
|
|
3642
3658
|
},
|
|
3643
3659
|
defaultVariants: { tone: "blue-700" }
|
|
3644
3660
|
});
|
|
3661
|
+
var textAlignByJustify = {
|
|
3662
|
+
start: "left",
|
|
3663
|
+
center: "center",
|
|
3664
|
+
end: "right"
|
|
3665
|
+
};
|
|
3645
3666
|
var Banner = ({
|
|
3646
3667
|
tone = "blue-700",
|
|
3647
3668
|
badge,
|
|
@@ -3651,65 +3672,79 @@ var Banner = ({
|
|
|
3651
3672
|
action,
|
|
3652
3673
|
toggle,
|
|
3653
3674
|
children,
|
|
3675
|
+
justify = "start",
|
|
3654
3676
|
fullWidth,
|
|
3655
3677
|
width,
|
|
3656
3678
|
className
|
|
3657
|
-
}) =>
|
|
3658
|
-
|
|
3659
|
-
{
|
|
3660
|
-
|
|
3661
|
-
|
|
3662
|
-
|
|
3663
|
-
|
|
3664
|
-
fullWidth,
|
|
3665
|
-
width,
|
|
3666
|
-
className: cn(bannerVariants({ tone }), className),
|
|
3667
|
-
children: [
|
|
3668
|
-
children ? children : message ? /* @__PURE__ */ jsx52(Text, { size: "s", children: message }) : /* @__PURE__ */ jsxs26(Layout, { column: true, align: "start", gap: 1, children: [
|
|
3669
|
-
/* @__PURE__ */ jsxs26(Layout, { align: "center", gap: 2, children: [
|
|
3670
|
-
badge && /* @__PURE__ */ jsx52(Badge, { color: tone != null ? tone : "blue-700", size: "xs", children: badge }),
|
|
3671
|
-
title && /* @__PURE__ */ jsx52(
|
|
3672
|
-
Text,
|
|
3673
|
-
{
|
|
3674
|
-
size: "s",
|
|
3675
|
-
weight: "bold",
|
|
3676
|
-
color: toggle ? tone != null ? tone : "blue-700" : "neutral-800",
|
|
3677
|
-
children: title
|
|
3678
|
-
}
|
|
3679
|
-
)
|
|
3680
|
-
] }),
|
|
3681
|
-
subtitle && /* @__PURE__ */ jsx52(Text, { size: "xs", color: toggle ? tone != null ? tone : "blue-700" : "neutral-800", children: subtitle })
|
|
3682
|
-
] }),
|
|
3683
|
-
toggle ? /* @__PURE__ */ jsx52(
|
|
3684
|
-
Switch,
|
|
3685
|
-
{
|
|
3686
|
-
checked: toggle.checked,
|
|
3687
|
-
onChange: toggle.onChange,
|
|
3688
|
-
disabled: toggle.disabled
|
|
3689
|
-
}
|
|
3690
|
-
) : action && /* @__PURE__ */ jsxs26(
|
|
3691
|
-
Button,
|
|
3679
|
+
}) => {
|
|
3680
|
+
const align = textAlignByJustify[justify];
|
|
3681
|
+
const content = children ? children : message ? /* @__PURE__ */ jsx52(Text, { size: "s", align, children: message }) : /* @__PURE__ */ jsxs26(Layout, { column: true, align: justify, gap: 1, children: [
|
|
3682
|
+
/* @__PURE__ */ jsxs26(Layout, { align: "center", gap: 2, children: [
|
|
3683
|
+
badge && /* @__PURE__ */ jsx52(Badge, { color: tone != null ? tone : "blue-700", size: "xs", children: badge }),
|
|
3684
|
+
title && /* @__PURE__ */ jsx52(
|
|
3685
|
+
Text,
|
|
3692
3686
|
{
|
|
3693
|
-
look: "outline",
|
|
3694
3687
|
size: "s",
|
|
3695
|
-
|
|
3696
|
-
|
|
3697
|
-
|
|
3698
|
-
|
|
3699
|
-
action.label
|
|
3700
|
-
]
|
|
3688
|
+
weight: "bold",
|
|
3689
|
+
align,
|
|
3690
|
+
color: toggle ? tone != null ? tone : "blue-700" : "neutral-800",
|
|
3691
|
+
children: title
|
|
3701
3692
|
}
|
|
3702
3693
|
)
|
|
3703
|
-
]
|
|
3704
|
-
|
|
3705
|
-
|
|
3694
|
+
] }),
|
|
3695
|
+
subtitle && /* @__PURE__ */ jsx52(
|
|
3696
|
+
Text,
|
|
3697
|
+
{
|
|
3698
|
+
size: "xs",
|
|
3699
|
+
align,
|
|
3700
|
+
color: toggle ? tone != null ? tone : "blue-700" : "neutral-800",
|
|
3701
|
+
children: subtitle
|
|
3702
|
+
}
|
|
3703
|
+
)
|
|
3704
|
+
] });
|
|
3705
|
+
return /* @__PURE__ */ jsxs26(
|
|
3706
|
+
Layout,
|
|
3707
|
+
{
|
|
3708
|
+
role: "alert",
|
|
3709
|
+
align: "center",
|
|
3710
|
+
justify: "between",
|
|
3711
|
+
gap: 4,
|
|
3712
|
+
fullWidth,
|
|
3713
|
+
width,
|
|
3714
|
+
className: cn(bannerVariants({ tone }), className),
|
|
3715
|
+
children: [
|
|
3716
|
+
justify === "start" ? content : /* @__PURE__ */ jsx52(Layout, { flex: 1, justify, align: "center", gap: 2, wrap: true, children: content }),
|
|
3717
|
+
toggle ? /* @__PURE__ */ jsx52(
|
|
3718
|
+
Switch,
|
|
3719
|
+
{
|
|
3720
|
+
checked: toggle.checked,
|
|
3721
|
+
onChange: toggle.onChange,
|
|
3722
|
+
disabled: toggle.disabled
|
|
3723
|
+
}
|
|
3724
|
+
) : action && /* @__PURE__ */ jsxs26(
|
|
3725
|
+
Button,
|
|
3726
|
+
{
|
|
3727
|
+
look: "outline",
|
|
3728
|
+
size: "s",
|
|
3729
|
+
color: tone != null ? tone : "blue-700",
|
|
3730
|
+
onClick: action.onClick,
|
|
3731
|
+
children: [
|
|
3732
|
+
action.icon,
|
|
3733
|
+
action.label
|
|
3734
|
+
]
|
|
3735
|
+
}
|
|
3736
|
+
)
|
|
3737
|
+
]
|
|
3738
|
+
}
|
|
3739
|
+
);
|
|
3740
|
+
};
|
|
3706
3741
|
|
|
3707
3742
|
// src/ui/components/ui/FloatingButton.tsx
|
|
3708
3743
|
import {
|
|
3709
3744
|
useCallback as useCallback3,
|
|
3710
|
-
useEffect as
|
|
3745
|
+
useEffect as useEffect7,
|
|
3711
3746
|
useLayoutEffect,
|
|
3712
|
-
useRef as
|
|
3747
|
+
useRef as useRef8,
|
|
3713
3748
|
useState as useState7
|
|
3714
3749
|
} from "react";
|
|
3715
3750
|
|
|
@@ -3857,16 +3892,16 @@ var FloatingButton = ({
|
|
|
3857
3892
|
persistKey,
|
|
3858
3893
|
safeArea
|
|
3859
3894
|
}) => {
|
|
3860
|
-
const containerRef =
|
|
3895
|
+
const containerRef = useRef8(null);
|
|
3861
3896
|
const [placement, setPlacement] = useState7(() => ({
|
|
3862
3897
|
geometry: __spreadValues({ base: 90 }, arcLayout(actions.length, ARC_RADIUS, SUB_SIZE)),
|
|
3863
3898
|
shift: { x: 0, y: 0 }
|
|
3864
3899
|
}));
|
|
3865
3900
|
const [isDragging, setIsDragging] = useState7(false);
|
|
3866
3901
|
const [offset, setOffset] = useState7(() => readStoredOffset(persistKey));
|
|
3867
|
-
const offsetRef =
|
|
3868
|
-
const lastPointRef =
|
|
3869
|
-
const dragDistanceRef =
|
|
3902
|
+
const offsetRef = useRef8(offset);
|
|
3903
|
+
const lastPointRef = useRef8({ x: 0, y: 0 });
|
|
3904
|
+
const dragDistanceRef = useRef8(0);
|
|
3870
3905
|
const clampOffset = useCallback3(
|
|
3871
3906
|
(next) => {
|
|
3872
3907
|
var _a, _b, _c, _d;
|
|
@@ -3894,7 +3929,7 @@ var FloatingButton = ({
|
|
|
3894
3929
|
offsetRef.current = corrected;
|
|
3895
3930
|
setOffset(corrected);
|
|
3896
3931
|
}, [clampOffset]);
|
|
3897
|
-
|
|
3932
|
+
useEffect7(() => {
|
|
3898
3933
|
if (!draggable || !isDragging) return;
|
|
3899
3934
|
const onPointerMove = (e) => {
|
|
3900
3935
|
const dx = e.clientX - lastPointRef.current.x;
|
|
@@ -3965,7 +4000,7 @@ var FloatingButton = ({
|
|
|
3965
4000
|
useLayoutEffect(() => {
|
|
3966
4001
|
resolvePlacement();
|
|
3967
4002
|
}, [resolvePlacement]);
|
|
3968
|
-
|
|
4003
|
+
useEffect7(() => {
|
|
3969
4004
|
if (typeof window === "undefined") return;
|
|
3970
4005
|
const onResize = () => {
|
|
3971
4006
|
resolvePlacement();
|
|
@@ -4587,7 +4622,7 @@ var ColorPicker = forwardRef18(
|
|
|
4587
4622
|
ColorPicker.displayName = "ColorPicker";
|
|
4588
4623
|
|
|
4589
4624
|
// src/ui/components/ui/FileUploadZone.tsx
|
|
4590
|
-
import { useCallback as useCallback4, useRef as
|
|
4625
|
+
import { useCallback as useCallback4, useRef as useRef9, useState as useState9 } from "react";
|
|
4591
4626
|
import { Fragment as Fragment3, jsx as jsx61, jsxs as jsxs34 } from "react/jsx-runtime";
|
|
4592
4627
|
var ACCEPT_MAP = {
|
|
4593
4628
|
png: "image/png",
|
|
@@ -4627,7 +4662,7 @@ var FileUploadZone = ({
|
|
|
4627
4662
|
const [fileType, setFileType] = useState9(null);
|
|
4628
4663
|
const [fileName, setFileName] = useState9(null);
|
|
4629
4664
|
const [inlineError, setInlineError] = useState9(null);
|
|
4630
|
-
const inputRef =
|
|
4665
|
+
const inputRef = useRef9(null);
|
|
4631
4666
|
const resolvedAccept = acceptOnlyPdf ? PDF_ONLY : accept;
|
|
4632
4667
|
const mimeTypes = getMimeTypes(resolvedAccept);
|
|
4633
4668
|
const acceptString = mimeTypes.join(",");
|
|
@@ -4824,7 +4859,7 @@ var FileUploadZone = ({
|
|
|
4824
4859
|
};
|
|
4825
4860
|
|
|
4826
4861
|
// src/ui/components/ui/FilePicker.tsx
|
|
4827
|
-
import { useRef as
|
|
4862
|
+
import { useRef as useRef10 } from "react";
|
|
4828
4863
|
import { Fragment as Fragment4, jsx as jsx62, jsxs as jsxs35 } from "react/jsx-runtime";
|
|
4829
4864
|
var FilePicker = ({
|
|
4830
4865
|
label,
|
|
@@ -4838,7 +4873,7 @@ var FilePicker = ({
|
|
|
4838
4873
|
disabled = false,
|
|
4839
4874
|
className
|
|
4840
4875
|
}) => {
|
|
4841
|
-
const inputRef =
|
|
4876
|
+
const inputRef = useRef10(null);
|
|
4842
4877
|
return /* @__PURE__ */ jsxs35(Fragment4, { children: [
|
|
4843
4878
|
/* @__PURE__ */ jsx62(
|
|
4844
4879
|
"input",
|
|
@@ -5292,7 +5327,7 @@ var Message = forwardRef20(
|
|
|
5292
5327
|
Message.displayName = "Message";
|
|
5293
5328
|
|
|
5294
5329
|
// src/ui/components/ui/MessageScroller.tsx
|
|
5295
|
-
import { useLayoutEffect as useLayoutEffect2, useRef as
|
|
5330
|
+
import { useLayoutEffect as useLayoutEffect2, useRef as useRef11 } from "react";
|
|
5296
5331
|
import { jsx as jsx68, jsxs as jsxs40 } from "react/jsx-runtime";
|
|
5297
5332
|
var SEPARATOR_LINE = {
|
|
5298
5333
|
neutral: "",
|
|
@@ -5343,7 +5378,7 @@ var MessageScroller = ({
|
|
|
5343
5378
|
viewportRef,
|
|
5344
5379
|
className
|
|
5345
5380
|
}) => {
|
|
5346
|
-
const fallbackRef =
|
|
5381
|
+
const fallbackRef = useRef11(null);
|
|
5347
5382
|
const scrollerRef = viewportRef != null ? viewportRef : fallbackRef;
|
|
5348
5383
|
useLayoutEffect2(() => {
|
|
5349
5384
|
if (!autoScroll) return;
|
package/dist/ui/style.css
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
*,:after,:before{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(130,180,204,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(130,180,204,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }/*! tailwindcss v3.4.19 | MIT License | https://tailwindcss.com*/*,:after,:before{box-sizing:border-box;border:0 solid #e5e7eb}:after,:before{--tw-content:""}:host,html{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:Open Sans,system-ui,sans-serif;font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset{margin:0}fieldset,legend{padding:0}menu,ol,ul{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}.container{width:100%}@media (min-width:640px){.container{max-width:640px}}@media (min-width:768px){.container{max-width:768px}}@media (min-width:1024px){.container{max-width:1024px}}@media (min-width:1280px){.container{max-width:1280px}}@media (min-width:1536px){.container{max-width:1536px}}.pointer-events-none{pointer-events:none}.pointer-events-auto{pointer-events:auto}.visible{visibility:visible}.invisible{visibility:hidden}.\!static{position:static!important}.static{position:static}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.inset-0{inset:0}.inset-x-0{left:0;right:0}.inset-x-4{left:1rem;right:1rem}.inset-y-0{top:0;bottom:0}.inset-y-4{top:1rem;bottom:1rem}.-right-1{right:-.25rem}.-top-1{top:-.25rem}.bottom-0{bottom:0}.bottom-4{bottom:1rem}.bottom-8{bottom:2rem}.bottom-\[-1px\]{bottom:-1px}.bottom-\[50px\]{bottom:50px}.left-0{left:0}.left-1\/2{left:50%}.left-2\.5{left:.625rem}.left-4{left:1rem}.right-0{right:0}.right-2\.5{right:.625rem}.right-4{right:1rem}.right-8{right:2rem}.top-0{top:0}.top-1\/2{top:50%}.top-2\.5{top:.625rem}.top-4{top:1rem}.z-10{z-index:10}.z-40{z-index:40}.z-50{z-index:50}.z-\[1000\]{z-index:1000}.z-\[1\]{z-index:1}.z-\[2\]{z-index:2}.z-\[500\]{z-index:500}.z-\[9999\]{z-index:9999}.m-\[5px\]{margin:5px}.mb-2{margin-bottom:.5rem}.mt-1{margin-top:.25rem}.mt-2{margin-top:.5rem}.box-border{box-sizing:border-box}.line-clamp-1{-webkit-line-clamp:1}.line-clamp-1,.line-clamp-2{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical}.line-clamp-2{-webkit-line-clamp:2}.line-clamp-3{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3}.block{display:block}.inline-block{display:inline-block}.inline{display:inline}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.grid{display:grid}.hidden{display:none}.aspect-square{aspect-ratio:1/1}.h-0\.5{height:.125rem}.h-1\.5{height:.375rem}.h-10{height:2.5rem}.h-11{height:2.75rem}.h-16{height:4rem}.h-2{height:.5rem}.h-2\.5{height:.625rem}.h-3{height:.75rem}.h-3\.5{height:.875rem}.h-4{height:1rem}.h-48{height:12rem}.h-5{height:1.25rem}.h-6{height:1.5rem}.h-7{height:1.75rem}.h-8{height:2rem}.h-9{height:2.25rem}.h-\[18px\]{height:18px}.h-\[22px\]{height:22px}.h-\[30px\]{height:30px}.h-\[3px\]{height:3px}.h-\[500px\]{height:500px}.h-\[52px\]{height:52px}.h-\[9px\]{height:9px}.h-full{height:100%}.h-px{height:1px}.max-h-\[260px\]{max-height:260px}.max-h-\[300px\]{max-height:300px}.max-h-\[400px\]{max-height:400px}.max-h-\[90vh\]{max-height:90vh}.min-h-0{min-height:0}.min-h-\[16px\]{min-height:16px}.min-h-\[200px\]{min-height:200px}.min-h-\[214px\]{min-height:214px}.min-h-\[46px\]{min-height:46px}.min-h-\[48px\]{min-height:48px}.min-h-\[72px\]{min-height:72px}.min-h-\[80px\]{min-height:80px}.min-h-screen{min-height:100vh}.w-0\.5{width:.125rem}.w-10{width:2.5rem}.w-11{width:2.75rem}.w-12{width:3rem}.w-2{width:.5rem}.w-2\.5{width:.625rem}.w-24{width:6rem}.w-28{width:7rem}.w-3\.5{width:.875rem}.w-32{width:8rem}.w-4{width:1rem}.w-40{width:10rem}.w-44{width:11rem}.w-48{width:12rem}.w-5{width:1.25rem}.w-56{width:14rem}.w-6{width:1.5rem}.w-64{width:16rem}.w-7{width:1.75rem}.w-72{width:18rem}.w-8{width:2rem}.w-80{width:20rem}.w-9{width:2.25rem}.w-96{width:24rem}.w-\[18px\]{width:18px}.w-\[22px\]{width:22px}.w-\[360px\]{width:360px}.w-\[480px\]{width:480px}.w-\[900px\]{width:900px}.w-\[9px\]{width:9px}.w-auto{width:auto}.w-fit{width:-moz-fit-content;width:fit-content}.w-full{width:100%}.w-px{width:1px}.min-w-0{min-width:0}.min-w-\[140px\]{min-width:140px}.min-w-\[18px\]{min-width:18px}.min-w-\[20px\]{min-width:20px}.min-w-\[80px\]{min-width:80px}.min-w-\[8px\]{min-width:8px}.max-w-2xl{max-width:42rem}.max-w-\[200px\]{max-width:200px}.max-w-\[423px\]{max-width:423px}.max-w-full{max-width:100%}.max-w-sm{max-width:24rem}.flex-1{flex:1 1 0%}.shrink-0{flex-shrink:0}.grow{flex-grow:1}.table-fixed{table-layout:fixed}.caption-bottom{caption-side:bottom}.origin-left{transform-origin:left}.-translate-x-1\/2{--tw-translate-x:-50%}.-translate-x-1\/2,.-translate-y-1\/2{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-translate-y-1\/2{--tw-translate-y:-50%}.rotate-180{--tw-rotate:180deg}.rotate-180,.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.animate-\[badge-pulse_2s_ease-in-out_infinite\]{animation:badge-pulse 2s ease-in-out infinite}.animate-\[toast-shrink_linear_forwards\]{animation:toast-shrink linear forwards}@keyframes pulse{50%{opacity:.5}}.animate-pulse{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}.cursor-default{cursor:default}.cursor-not-allowed{cursor:not-allowed}.cursor-pointer{cursor:pointer}.touch-none{touch-action:none}.select-none{-webkit-user-select:none;-moz-user-select:none;user-select:none}.resize{resize:both}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.flex-row{flex-direction:row}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.flex-nowrap{flex-wrap:nowrap}.place-items-center{place-items:center}.items-start{align-items:flex-start}.items-end{align-items:flex-end}.items-center{align-items:center}.items-baseline{align-items:baseline}.items-stretch{align-items:stretch}.justify-start{justify-content:flex-start}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.justify-around{justify-content:space-around}.justify-evenly{justify-content:space-evenly}.gap-0{gap:0}.gap-0\.5{gap:.125rem}.gap-1{gap:.25rem}.gap-1\.5{gap:.375rem}.gap-10{gap:2.5rem}.gap-12{gap:3rem}.gap-16{gap:4rem}.gap-2{gap:.5rem}.gap-2\.5{gap:.625rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-5{gap:1.25rem}.gap-6{gap:1.5rem}.gap-8{gap:2rem}.gap-\[5px\]{gap:5px}.-space-x-2>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(-.5rem*var(--tw-space-x-reverse));margin-left:calc(-.5rem*(1 - var(--tw-space-x-reverse)))}.self-stretch{align-self:stretch}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-y-auto{overflow-y:auto}.overflow-x-hidden{overflow-x:hidden}.truncate{overflow:hidden;white-space:nowrap}.text-ellipsis,.truncate{text-overflow:ellipsis}.whitespace-nowrap{white-space:nowrap}.whitespace-pre-line{white-space:pre-line}.whitespace-pre-wrap{white-space:pre-wrap}.break-words{overflow-wrap:break-word}.rounded{border-radius:.25rem}.rounded-2xl{border-radius:1rem}.rounded-\[10px\]{border-radius:10px}.rounded-\[20px\]{border-radius:20px}.rounded-\[3px\]{border-radius:3px}.rounded-\[4px\]{border-radius:4px}.rounded-\[5px\]{border-radius:5px}.rounded-\[6px\]{border-radius:6px}.rounded-\[8px\]{border-radius:8px}.rounded-\[inherit\]{border-radius:inherit}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:.5rem}.rounded-md{border-radius:.375rem}.rounded-none{border-radius:0}.rounded-xl{border-radius:.75rem}.rounded-r-xl{border-top-right-radius:.75rem;border-bottom-right-radius:.75rem}.rounded-bl-none{border-bottom-left-radius:0}.rounded-br-none{border-bottom-right-radius:0}.border{border-width:1px}.border-0{border-width:0}.border-2{border-width:2px}.border-\[1\.5px\]{border-width:1.5px}.border-b{border-bottom-width:1px}.border-l{border-left-width:1px}.border-l-4{border-left-width:4px}.border-l-\[1\.5px\]{border-left-width:1.5px}.border-r{border-right-width:1px}.border-r-\[1\.5px\]{border-right-width:1.5px}.border-t{border-top-width:1px}.border-t-0{border-top-width:0}.border-solid{border-style:solid}.border-dashed{border-style:dashed}.border-blue-100{--tw-border-opacity:1;border-color:rgb(204 234 248/var(--tw-border-opacity,1))}.border-blue-200{--tw-border-opacity:1;border-color:rgb(185 220 237/var(--tw-border-opacity,1))}.border-blue-50{--tw-border-opacity:1;border-color:rgb(219 233 254/var(--tw-border-opacity,1))}.border-blue-700{--tw-border-opacity:1;border-color:rgb(55 126 161/var(--tw-border-opacity,1))}.border-blue-800{--tw-border-opacity:1;border-color:rgb(18 99 139/var(--tw-border-opacity,1))}.border-blue-900{--tw-border-opacity:1;border-color:rgb(14 79 111/var(--tw-border-opacity,1))}.border-blue-950{--tw-border-opacity:1;border-color:rgb(28 78 216/var(--tw-border-opacity,1))}.border-green-100{--tw-border-opacity:1;border-color:rgb(18 183 106/var(--tw-border-opacity,1))}.border-green-500{--tw-border-opacity:1;border-color:rgb(34 197 94/var(--tw-border-opacity,1))}.border-green-700{--tw-border-opacity:1;border-color:rgb(23 128 61/var(--tw-border-opacity,1))}.border-grey-200{--tw-border-opacity:1;border-color:rgb(241 245 249/var(--tw-border-opacity,1))}.border-grey-300{--tw-border-opacity:1;border-color:rgb(226 232 240/var(--tw-border-opacity,1))}.border-grey-400{--tw-border-opacity:1;border-color:rgb(203 213 225/var(--tw-border-opacity,1))}.border-grey-500{--tw-border-opacity:1;border-color:rgb(148 163 184/var(--tw-border-opacity,1))}.border-grey-600{--tw-border-opacity:1;border-color:rgb(100 107 115/var(--tw-border-opacity,1))}.border-purple-700{--tw-border-opacity:1;border-color:rgb(114 48 219/var(--tw-border-opacity,1))}.border-red-200{--tw-border-opacity:1;border-color:rgb(254 202 202/var(--tw-border-opacity,1))}.border-red-500{--tw-border-opacity:1;border-color:rgb(244 70 73/var(--tw-border-opacity,1))}.border-red-900{--tw-border-opacity:1;border-color:rgb(127 29 29/var(--tw-border-opacity,1))}.border-transparent{border-color:transparent}.border-yellow-200{--tw-border-opacity:1;border-color:rgb(255 215 0/var(--tw-border-opacity,1))}.border-yellow-500{--tw-border-opacity:1;border-color:rgb(161 98 7/var(--tw-border-opacity,1))}.border-l-blue-700{--tw-border-opacity:1;border-left-color:rgb(55 126 161/var(--tw-border-opacity,1))}.border-l-blue-900{--tw-border-opacity:1;border-left-color:rgb(14 79 111/var(--tw-border-opacity,1))}.border-l-blue-950{--tw-border-opacity:1;border-left-color:rgb(28 78 216/var(--tw-border-opacity,1))}.border-l-green-700{--tw-border-opacity:1;border-left-color:rgb(23 128 61/var(--tw-border-opacity,1))}.border-l-grey-600{--tw-border-opacity:1;border-left-color:rgb(100 107 115/var(--tw-border-opacity,1))}.border-l-orange-500{--tw-border-opacity:1;border-left-color:rgb(255 100 28/var(--tw-border-opacity,1))}.border-l-purple-700{--tw-border-opacity:1;border-left-color:rgb(114 48 219/var(--tw-border-opacity,1))}.border-l-red-500{--tw-border-opacity:1;border-left-color:rgb(244 70 73/var(--tw-border-opacity,1))}.border-l-red-900{--tw-border-opacity:1;border-left-color:rgb(127 29 29/var(--tw-border-opacity,1))}.border-l-transparent{border-left-color:transparent}.border-l-yellow-200{--tw-border-opacity:1;border-left-color:rgb(255 215 0/var(--tw-border-opacity,1))}.border-l-yellow-500{--tw-border-opacity:1;border-left-color:rgb(161 98 7/var(--tw-border-opacity,1))}.border-t-transparent{border-top-color:transparent}.bg-\[\#1e1e1e\]{--tw-bg-opacity:1;background-color:rgb(30 30 30/var(--tw-bg-opacity,1))}.bg-black\/35{background-color:rgba(0,0,0,.35)}.bg-black\/50{background-color:rgba(0,0,0,.5)}.bg-blue-50{--tw-bg-opacity:1;background-color:rgb(219 233 254/var(--tw-bg-opacity,1))}.bg-blue-700{--tw-bg-opacity:1;background-color:rgb(55 126 161/var(--tw-bg-opacity,1))}.bg-blue-800{--tw-bg-opacity:1;background-color:rgb(18 99 139/var(--tw-bg-opacity,1))}.bg-blue-900{--tw-bg-opacity:1;background-color:rgb(14 79 111/var(--tw-bg-opacity,1))}.bg-blue-950{--tw-bg-opacity:1;background-color:rgb(28 78 216/var(--tw-bg-opacity,1))}.bg-green-50{--tw-bg-opacity:1;background-color:rgb(220 252 231/var(--tw-bg-opacity,1))}.bg-green-700{--tw-bg-opacity:1;background-color:rgb(23 128 61/var(--tw-bg-opacity,1))}.bg-grey-100{--tw-bg-opacity:1;background-color:rgb(248 250 252/var(--tw-bg-opacity,1))}.bg-grey-200{--tw-bg-opacity:1;background-color:rgb(241 245 249/var(--tw-bg-opacity,1))}.bg-grey-300{--tw-bg-opacity:1;background-color:rgb(226 232 240/var(--tw-bg-opacity,1))}.bg-grey-400{--tw-bg-opacity:1;background-color:rgb(203 213 225/var(--tw-bg-opacity,1))}.bg-grey-500{--tw-bg-opacity:1;background-color:rgb(148 163 184/var(--tw-bg-opacity,1))}.bg-grey-600{--tw-bg-opacity:1;background-color:rgb(100 107 115/var(--tw-bg-opacity,1))}.bg-neutral-800{--tw-bg-opacity:1;background-color:rgb(52 58 64/var(--tw-bg-opacity,1))}.bg-orange-50{--tw-bg-opacity:1;background-color:rgb(255 238 230/var(--tw-bg-opacity,1))}.bg-orange-500{--tw-bg-opacity:1;background-color:rgb(255 100 28/var(--tw-bg-opacity,1))}.bg-purple-50{--tw-bg-opacity:1;background-color:rgb(237 233 254/var(--tw-bg-opacity,1))}.bg-purple-700{--tw-bg-opacity:1;background-color:rgb(114 48 219/var(--tw-bg-opacity,1))}.bg-red-50{--tw-bg-opacity:1;background-color:rgb(254 233 233/var(--tw-bg-opacity,1))}.bg-red-500{--tw-bg-opacity:1;background-color:rgb(244 70 73/var(--tw-bg-opacity,1))}.bg-red-900{--tw-bg-opacity:1;background-color:rgb(127 29 29/var(--tw-bg-opacity,1))}.bg-transparent{background-color:transparent}.bg-white{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity,1))}.bg-white\/40{background-color:hsla(0,0%,100%,.4)}.bg-yellow-200{--tw-bg-opacity:1;background-color:rgb(255 215 0/var(--tw-bg-opacity,1))}.bg-yellow-50{--tw-bg-opacity:1;background-color:rgb(254 247 234/var(--tw-bg-opacity,1))}.bg-yellow-500{--tw-bg-opacity:1;background-color:rgb(161 98 7/var(--tw-bg-opacity,1))}.fill-neutral-800{fill:#343a40}.object-contain{-o-object-fit:contain;object-fit:contain}.object-cover{-o-object-fit:cover;object-fit:cover}.object-fill{-o-object-fit:fill;object-fit:fill}.p-0{padding:0}.p-0\.5{padding:.125rem}.p-1{padding:.25rem}.p-1\.5{padding:.375rem}.p-10{padding:2.5rem}.p-12{padding:3rem}.p-16{padding:4rem}.p-2{padding:.5rem}.p-3{padding:.75rem}.p-4{padding:1rem}.p-5{padding:1.25rem}.p-6{padding:1.5rem}.p-8{padding:2rem}.p-\[1px\]{padding:1px}.px-0{padding-left:0;padding-right:0}.px-0\.5{padding-left:.125rem;padding-right:.125rem}.px-1{padding-left:.25rem;padding-right:.25rem}.px-1\.5{padding-left:.375rem;padding-right:.375rem}.px-10{padding-left:2.5rem;padding-right:2.5rem}.px-12{padding-left:3rem;padding-right:3rem}.px-16{padding-left:4rem;padding-right:4rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-2\.5{padding-left:.625rem;padding-right:.625rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-3\.5{padding-left:.875rem;padding-right:.875rem}.px-4{padding-left:1rem;padding-right:1rem}.px-5{padding-left:1.25rem;padding-right:1.25rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.px-8{padding-left:2rem;padding-right:2rem}.py-0{padding-top:0;padding-bottom:0}.py-0\.5{padding-top:.125rem;padding-bottom:.125rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-1\.5{padding-top:.375rem;padding-bottom:.375rem}.py-10{padding-top:2.5rem;padding-bottom:2.5rem}.py-12{padding-top:3rem;padding-bottom:3rem}.py-16{padding-top:4rem;padding-bottom:4rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-2\.5{padding-top:.625rem;padding-bottom:.625rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.py-4{padding-top:1rem;padding-bottom:1rem}.py-5{padding-top:1.25rem;padding-bottom:1.25rem}.py-6{padding-top:1.5rem;padding-bottom:1.5rem}.py-8{padding-top:2rem;padding-bottom:2rem}.pb-0{padding-bottom:0}.pb-0\.5{padding-bottom:.125rem}.pb-1{padding-bottom:.25rem}.pb-1\.5{padding-bottom:.375rem}.pb-10{padding-bottom:2.5rem}.pb-12{padding-bottom:3rem}.pb-16{padding-bottom:4rem}.pb-2{padding-bottom:.5rem}.pb-3{padding-bottom:.75rem}.pb-4{padding-bottom:1rem}.pb-5{padding-bottom:1.25rem}.pb-6{padding-bottom:1.5rem}.pb-8{padding-bottom:2rem}.pl-0{padding-left:0}.pl-0\.5{padding-left:.125rem}.pl-1{padding-left:.25rem}.pl-1\.5{padding-left:.375rem}.pl-10{padding-left:2.5rem}.pl-12{padding-left:3rem}.pl-16{padding-left:4rem}.pl-2{padding-left:.5rem}.pl-3{padding-left:.75rem}.pl-4{padding-left:1rem}.pl-5{padding-left:1.25rem}.pl-6{padding-left:1.5rem}.pl-8{padding-left:2rem}.pr-0{padding-right:0}.pr-0\.5{padding-right:.125rem}.pr-1{padding-right:.25rem}.pr-1\.5{padding-right:.375rem}.pr-10{padding-right:2.5rem}.pr-12{padding-right:3rem}.pr-16{padding-right:4rem}.pr-2{padding-right:.5rem}.pr-3{padding-right:.75rem}.pr-4{padding-right:1rem}.pr-5{padding-right:1.25rem}.pr-6{padding-right:1.5rem}.pr-8{padding-right:2rem}.pr-9{padding-right:2.25rem}.pt-0{padding-top:0}.pt-0\.5{padding-top:.125rem}.pt-1{padding-top:.25rem}.pt-1\.5{padding-top:.375rem}.pt-10{padding-top:2.5rem}.pt-12{padding-top:3rem}.pt-16{padding-top:4rem}.pt-2{padding-top:.5rem}.pt-3{padding-top:.75rem}.pt-4{padding-top:1rem}.pt-5{padding-top:1.25rem}.pt-6{padding-top:1.5rem}.pt-8{padding-top:2rem}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.align-middle{vertical-align:middle}.font-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.font-sans{font-family:Open Sans,system-ui,sans-serif}.text-2xl{font-size:1.5rem;line-height:2rem}.text-\[10px\]{font-size:10px}.text-\[11px\]{font-size:11px}.text-\[13px\]{font-size:13px}.text-\[15px\]{font-size:15px}.text-\[17px\]{font-size:17px}.text-\[19px\]{font-size:19px}.text-\[21px\]{font-size:21px}.text-\[22px\]{font-size:22px}.text-\[9px\]{font-size:9px}.text-base{font-size:1rem;line-height:1.5rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-xs{font-size:.75rem;line-height:1rem}.font-bold{font-weight:700}.font-medium{font-weight:500}.font-normal{font-weight:400}.font-semibold{font-weight:600}.uppercase{text-transform:uppercase}.italic{font-style:italic}.leading-none{line-height:1}.tracking-wide{letter-spacing:.025em}.text-blue-700{--tw-text-opacity:1;color:rgb(55 126 161/var(--tw-text-opacity,1))}.text-blue-800{--tw-text-opacity:1;color:rgb(18 99 139/var(--tw-text-opacity,1))}.text-blue-900{--tw-text-opacity:1;color:rgb(14 79 111/var(--tw-text-opacity,1))}.text-blue-950{--tw-text-opacity:1;color:rgb(28 78 216/var(--tw-text-opacity,1))}.text-green-700{--tw-text-opacity:1;color:rgb(23 128 61/var(--tw-text-opacity,1))}.text-grey-400{--tw-text-opacity:1;color:rgb(203 213 225/var(--tw-text-opacity,1))}.text-grey-500{--tw-text-opacity:1;color:rgb(148 163 184/var(--tw-text-opacity,1))}.text-grey-600{--tw-text-opacity:1;color:rgb(100 107 115/var(--tw-text-opacity,1))}.text-neutral-800{--tw-text-opacity:1;color:rgb(52 58 64/var(--tw-text-opacity,1))}.text-orange-500{--tw-text-opacity:1;color:rgb(255 100 28/var(--tw-text-opacity,1))}.text-purple-700{--tw-text-opacity:1;color:rgb(114 48 219/var(--tw-text-opacity,1))}.text-red-500{--tw-text-opacity:1;color:rgb(244 70 73/var(--tw-text-opacity,1))}.text-red-900{--tw-text-opacity:1;color:rgb(127 29 29/var(--tw-text-opacity,1))}.text-white{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.text-yellow-200{--tw-text-opacity:1;color:rgb(255 215 0/var(--tw-text-opacity,1))}.text-yellow-500{--tw-text-opacity:1;color:rgb(161 98 7/var(--tw-text-opacity,1))}.no-underline{text-decoration-line:none}.opacity-0{opacity:0}.opacity-100{opacity:1}.opacity-50{opacity:.5}.opacity-60{opacity:.6}.opacity-90{opacity:.9}.shadow-\[0_10px_15px_-3px_rgba\(0\2c 0\2c 0\2c 0\.1\)\2c 0_4px_6px_-2px_rgba\(0\2c 0\2c 0\2c 0\.05\)\]{--tw-shadow:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -2px rgba(0,0,0,.05);--tw-shadow-colored:0 10px 15px -3px var(--tw-shadow-color),0 4px 6px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-\[0_1px_2px_rgba\(15\2c 23\2c 42\2c 0\.12\)\]{--tw-shadow:0 1px 2px rgba(15,23,42,.12);--tw-shadow-colored:0 1px 2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-\[0_1px_4px_rgba\(0\2c 0\2c 0\2c 0\.16\)\]{--tw-shadow:0 1px 4px rgba(0,0,0,.16);--tw-shadow-colored:0 1px 4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-\[0_2px_15px_0_rgba\(198\2c 198\2c 198\2c 0\.25\)\]{--tw-shadow:0 2px 15px 0 hsla(0,0%,78%,.25);--tw-shadow-colored:0 2px 15px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-\[0_2px_6px_rgba\(15\2c 23\2c 42\2c 0\.2\)\]{--tw-shadow:0 2px 6px rgba(15,23,42,.2);--tw-shadow-colored:0 2px 6px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-\[0_2px_8px_rgba\(0\2c 0\2c 0\2c 0\.08\)\]{--tw-shadow:0 2px 8px rgba(0,0,0,.08);--tw-shadow-colored:0 2px 8px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-\[0_4px_16px_rgba\(0\2c 0\2c 0\2c 0\.12\)\]{--tw-shadow:0 4px 16px rgba(0,0,0,.12);--tw-shadow-colored:0 4px 16px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-\[0_4px_3px_rgba\(0\2c 0\2c 0\2c 0\.1\)\2c 0_10px_7\.5px_rgba\(0\2c 0\2c 0\2c 0\.1\)\]{--tw-shadow:0 4px 3px rgba(0,0,0,.1),0 10px 7.5px rgba(0,0,0,.1);--tw-shadow-colored:0 4px 3px var(--tw-shadow-color),0 10px 7.5px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-\[0_4px_6px_rgba\(0\2c 0\2c 0\2c 0\.1\)\]{--tw-shadow:0 4px 6px rgba(0,0,0,.1);--tw-shadow-colored:0 4px 6px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-\[0_8px_24px_rgba\(0\2c 0\2c 0\2c 0\.16\)\]{--tw-shadow:0 8px 24px rgba(0,0,0,.16);--tw-shadow-colored:0 8px 24px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-\[0_8px_5px_rgba\(0\2c 0\2c 0\2c 0\.1\)\2c 0_20px_12\.5px_rgba\(0\2c 0\2c 0\2c 0\.1\)\]{--tw-shadow:0 8px 5px rgba(0,0,0,.1),0 20px 12.5px rgba(0,0,0,.1);--tw-shadow-colored:0 8px 5px var(--tw-shadow-color),0 20px 12.5px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-\[inset_0_0_0_1px_rgba\(0\2c 0\2c 0\2c 0\.06\)\]{--tw-shadow:inset 0 0 0 1px rgba(0,0,0,.06);--tw-shadow-colored:inset 0 0 0 1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.outline-none{outline:2px solid transparent;outline-offset:2px}.outline{outline-style:solid}.ring-2{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.ring-white{--tw-ring-opacity:1;--tw-ring-color:rgb(255 255 255/var(--tw-ring-opacity,1))}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-\[filter\2c transform\]{transition-property:filter,transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-\[filter\]{transition-property:filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-\[transform\2c opacity\]{transition-property:transform,opacity;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-\[width\]{transition-property:width;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-all{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-transform{transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1)}.duration-150,.transition-transform{transition-duration:.15s}.duration-200{transition-duration:.2s}.duration-300{transition-duration:.3s}.duration-\[180ms\]{transition-duration:.18s}.ease-out{transition-timing-function:cubic-bezier(0,0,.2,1)}body{font-family:Open Sans,system-ui,sans-serif}@keyframes badge-pulse{0%{transform:scale(1);box-shadow:0 0 0 0 color-mix(in srgb,currentColor 60%,transparent)}70%{transform:scale(1.06);box-shadow:0 0 0 6px transparent}to{transform:scale(1);box-shadow:0 0 0 0 transparent}}@media (prefers-reduced-motion:reduce){.animate-badge-pulse{animation:none!important}}@keyframes accordion-down{0%{height:0}to{height:var(--radix-accordion-content-height)}}@keyframes accordion-up{0%{height:var(--radix-accordion-content-height)}to{height:0}}@keyframes collapsible-down{0%{height:0}to{height:var(--radix-collapsible-content-height)}}@keyframes collapsible-up{0%{height:var(--radix-collapsible-content-height)}to{height:0}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes toast-shrink{0%{transform:scaleX(1)}to{transform:scaleX(0)}}.rdp-root.rdp-root{--rdp-accent-color:#0e4f6f;--rdp-accent-background-color:#cceaf8;--rdp-today-color:#0e4f6f;--rdp-day_button-border-radius:6px;--rdp-day-width:26px;--rdp-day-height:26px;--rdp-day_button-width:26px;--rdp-day_button-height:26px;font-family:Open Sans,system-ui,sans-serif;font-size:12px}.rdp-root.rdp-root .rdp-selected{font-size:inherit}.rdp-root.rdp-root .rdp-range_middle .rdp-day_button{border-radius:0}.react-international-phone-input-container{--react-international-phone-border-color:#e2e8f0;--react-international-phone-background-color:#fff;--react-international-phone-text-color:#343a40;--react-international-phone-height:36px;--react-international-phone-border-radius:5px;--react-international-phone-font-size:13px;--react-international-phone-country-selector-background-color-hover:#f1f5f9;--react-international-phone-disabled-background-color:#f1f5f9;--react-international-phone-disabled-text-color:#94a3b8;--react-international-phone-selected-dropdown-item-background-color:#f8fafc;--react-international-phone-dropdown-shadow:0 4px 6px rgba(0,0,0,.1);width:100%;font-family:Open Sans,system-ui,sans-serif}.react-international-phone-input-container .react-international-phone-input:focus{border-color:#1c4ed8}.dz-tagify .tagify{width:100%;border:1px solid #e2e8f0;border-radius:6px;min-height:36px;font-size:13px;font-family:Open Sans,system-ui,sans-serif;--tag-hover:#377ea1;--tag-bg:#377ea1;--tag-text-color:#fff;--tag-remove-btn-color:#fff;--tag-remove-btn-bg--hover:#f44649;--tag-invalid-color:#f44649;--tag-remove-bg:#f44649}.dz-tagify .tagify--focus{border-color:#1c4ed8}.dz-tagify .tagify,.dz-tagify .tagify__input{cursor:text}.dz-tagify--disabled{opacity:.6;pointer-events:none}.placeholder\:font-sans::-moz-placeholder{font-family:Open Sans,system-ui,sans-serif}.placeholder\:font-sans::placeholder{font-family:Open Sans,system-ui,sans-serif}.placeholder\:text-xs::-moz-placeholder{font-size:.75rem;line-height:1rem}.placeholder\:text-xs::placeholder{font-size:.75rem;line-height:1rem}.placeholder\:text-grey-500::-moz-placeholder{--tw-text-opacity:1;color:rgb(148 163 184/var(--tw-text-opacity,1))}.placeholder\:text-grey-500::placeholder{--tw-text-opacity:1;color:rgb(148 163 184/var(--tw-text-opacity,1))}.placeholder\:text-grey-600::-moz-placeholder{--tw-text-opacity:1;color:rgb(100 107 115/var(--tw-text-opacity,1))}.placeholder\:text-grey-600::placeholder{--tw-text-opacity:1;color:rgb(100 107 115/var(--tw-text-opacity,1))}.after\:block:after{content:var(--tw-content);display:block}.after\:\!hidden:after{content:var(--tw-content);display:none!important}.after\:h-\[13px\]:after{content:var(--tw-content);height:13px}.after\:w-\[13px\]:after{content:var(--tw-content);width:13px}.after\:rounded-full:after{content:var(--tw-content);border-radius:9999px}.after\:bg-blue-700:after{content:var(--tw-content);--tw-bg-opacity:1;background-color:rgb(55 126 161/var(--tw-bg-opacity,1))}.after\:bg-blue-900:after{content:var(--tw-content);--tw-bg-opacity:1;background-color:rgb(14 79 111/var(--tw-bg-opacity,1))}.after\:bg-blue-950:after{content:var(--tw-content);--tw-bg-opacity:1;background-color:rgb(28 78 216/var(--tw-bg-opacity,1))}.after\:bg-green-700:after{content:var(--tw-content);--tw-bg-opacity:1;background-color:rgb(23 128 61/var(--tw-bg-opacity,1))}.after\:bg-grey-600:after{content:var(--tw-content);--tw-bg-opacity:1;background-color:rgb(100 107 115/var(--tw-bg-opacity,1))}.after\:bg-purple-700:after{content:var(--tw-content);--tw-bg-opacity:1;background-color:rgb(114 48 219/var(--tw-bg-opacity,1))}.after\:bg-red-500:after{content:var(--tw-content);--tw-bg-opacity:1;background-color:rgb(244 70 73/var(--tw-bg-opacity,1))}.after\:bg-red-900:after{content:var(--tw-content);--tw-bg-opacity:1;background-color:rgb(127 29 29/var(--tw-bg-opacity,1))}.after\:bg-yellow-200:after{content:var(--tw-content);--tw-bg-opacity:1;background-color:rgb(255 215 0/var(--tw-bg-opacity,1))}.after\:bg-yellow-500:after{content:var(--tw-content);--tw-bg-opacity:1;background-color:rgb(161 98 7/var(--tw-bg-opacity,1))}.focus-within\:border-blue-700:focus-within{--tw-border-opacity:1;border-color:rgb(55 126 161/var(--tw-border-opacity,1))}.hover\:scale-110:hover{--tw-scale-x:1.1;--tw-scale-y:1.1;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.hover\:border-blue-100:hover{--tw-border-opacity:1;border-color:rgb(204 234 248/var(--tw-border-opacity,1))}.hover\:border-blue-700:hover{--tw-border-opacity:1;border-color:rgb(55 126 161/var(--tw-border-opacity,1))}.hover\:border-grey-300:hover{--tw-border-opacity:1;border-color:rgb(226 232 240/var(--tw-border-opacity,1))}.hover\:bg-black\/\[0\.025\]:hover{background-color:rgba(0,0,0,.025)}.hover\:bg-grey-100:hover{--tw-bg-opacity:1;background-color:rgb(248 250 252/var(--tw-bg-opacity,1))}.hover\:bg-grey-200:hover{--tw-bg-opacity:1;background-color:rgb(241 245 249/var(--tw-bg-opacity,1))}.hover\:text-grey-600:hover{--tw-text-opacity:1;color:rgb(100 107 115/var(--tw-text-opacity,1))}.hover\:text-neutral-800:hover{--tw-text-opacity:1;color:rgb(52 58 64/var(--tw-text-opacity,1))}.hover\:opacity-80:hover{opacity:.8}.hover\:brightness-90:hover{--tw-brightness:brightness(.9)}.hover\:brightness-90:hover,.hover\:brightness-95:hover{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.hover\:brightness-95:hover{--tw-brightness:brightness(.95)}.focus-within\:hover\:border-blue-700:hover:focus-within{--tw-border-opacity:1;border-color:rgb(55 126 161/var(--tw-border-opacity,1))}.focus\:border-blue-700:focus{--tw-border-opacity:1;border-color:rgb(55 126 161/var(--tw-border-opacity,1))}.focus\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}.focus-visible\:ring-2:focus-visible{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.focus-visible\:ring-blue-200:focus-visible{--tw-ring-opacity:1;--tw-ring-color:rgb(185 220 237/var(--tw-ring-opacity,1))}.focus-visible\:ring-offset-2:focus-visible{--tw-ring-offset-width:2px}.active\:scale-\[0\.98\]:active{--tw-scale-x:0.98;--tw-scale-y:0.98;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.active\:brightness-75:active{--tw-brightness:brightness(.75);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:bg-grey-100:disabled{--tw-bg-opacity:1;background-color:rgb(248 250 252/var(--tw-bg-opacity,1))}.disabled\:bg-grey-200:disabled{--tw-bg-opacity:1;background-color:rgb(241 245 249/var(--tw-bg-opacity,1))}.disabled\:opacity-60:disabled{opacity:.6}.disabled\:hover\:brightness-100:hover:disabled{--tw-brightness:brightness(1);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.disabled\:active\:scale-100:active:disabled{--tw-scale-x:1;--tw-scale-y:1;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.aria-invalid\:border-red-900[aria-invalid=true],.aria-invalid\:focus\:border-red-900:focus[aria-invalid=true]{--tw-border-opacity:1;border-color:rgb(127 29 29/var(--tw-border-opacity,1))}.data-\[state\=checked\]\:translate-x-4[data-state=checked]{--tw-translate-x:1rem}.data-\[state\=checked\]\:translate-x-4[data-state=checked],.data-\[state\=checked\]\:translate-x-5[data-state=checked]{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[state\=checked\]\:translate-x-5[data-state=checked]{--tw-translate-x:1.25rem}.data-\[state\=open\]\:rotate-180[data-state=open]{--tw-rotate:180deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[state\=closed\]\:animate-\[collapsible-up_200ms_ease-out\][data-state=closed]{animation:collapsible-up .2s ease-out}.data-\[state\=delayed-open\]\:animate-\[fade-in_150ms_ease-out\][data-state=delayed-open]{animation:fade-in .15s ease-out}.data-\[state\=open\]\:animate-\[collapsible-down_200ms_ease-out\][data-state=open]{animation:collapsible-down .2s ease-out}.data-\[state\=open\]\:animate-\[fade-in_150ms_ease-out\][data-state=open]{animation:fade-in .15s ease-out}.data-\[state\=checked\]\:border-blue-700[data-state=checked]{--tw-border-opacity:1;border-color:rgb(55 126 161/var(--tw-border-opacity,1))}.data-\[state\=checked\]\:border-blue-900[data-state=checked]{--tw-border-opacity:1;border-color:rgb(14 79 111/var(--tw-border-opacity,1))}.data-\[state\=checked\]\:border-blue-950[data-state=checked]{--tw-border-opacity:1;border-color:rgb(28 78 216/var(--tw-border-opacity,1))}.data-\[state\=checked\]\:border-green-700[data-state=checked]{--tw-border-opacity:1;border-color:rgb(23 128 61/var(--tw-border-opacity,1))}.data-\[state\=checked\]\:border-grey-600[data-state=checked]{--tw-border-opacity:1;border-color:rgb(100 107 115/var(--tw-border-opacity,1))}.data-\[state\=checked\]\:border-purple-700[data-state=checked]{--tw-border-opacity:1;border-color:rgb(114 48 219/var(--tw-border-opacity,1))}.data-\[state\=checked\]\:border-red-500[data-state=checked]{--tw-border-opacity:1;border-color:rgb(244 70 73/var(--tw-border-opacity,1))}.data-\[state\=checked\]\:border-red-900[data-state=checked]{--tw-border-opacity:1;border-color:rgb(127 29 29/var(--tw-border-opacity,1))}.data-\[state\=checked\]\:border-yellow-200[data-state=checked]{--tw-border-opacity:1;border-color:rgb(255 215 0/var(--tw-border-opacity,1))}.data-\[state\=checked\]\:border-yellow-500[data-state=checked]{--tw-border-opacity:1;border-color:rgb(161 98 7/var(--tw-border-opacity,1))}.data-\[state\=open\]\:border-blue-700[data-state=open]{--tw-border-opacity:1;border-color:rgb(55 126 161/var(--tw-border-opacity,1))}.data-\[highlighted\]\:bg-grey-100[data-highlighted]{--tw-bg-opacity:1;background-color:rgb(248 250 252/var(--tw-bg-opacity,1))}.data-\[state\=checked\]\:bg-blue-700[data-state=checked]{--tw-bg-opacity:1;background-color:rgb(55 126 161/var(--tw-bg-opacity,1))}.data-\[state\=checked\]\:bg-blue-900[data-state=checked]{--tw-bg-opacity:1;background-color:rgb(14 79 111/var(--tw-bg-opacity,1))}.data-\[state\=checked\]\:bg-blue-950[data-state=checked]{--tw-bg-opacity:1;background-color:rgb(28 78 216/var(--tw-bg-opacity,1))}.data-\[state\=checked\]\:bg-green-700[data-state=checked]{--tw-bg-opacity:1;background-color:rgb(23 128 61/var(--tw-bg-opacity,1))}.data-\[state\=checked\]\:bg-grey-600[data-state=checked]{--tw-bg-opacity:1;background-color:rgb(100 107 115/var(--tw-bg-opacity,1))}.data-\[state\=checked\]\:bg-purple-700[data-state=checked]{--tw-bg-opacity:1;background-color:rgb(114 48 219/var(--tw-bg-opacity,1))}.data-\[state\=checked\]\:bg-red-500[data-state=checked]{--tw-bg-opacity:1;background-color:rgb(244 70 73/var(--tw-bg-opacity,1))}.data-\[state\=checked\]\:bg-red-900[data-state=checked]{--tw-bg-opacity:1;background-color:rgb(127 29 29/var(--tw-bg-opacity,1))}.data-\[state\=checked\]\:bg-yellow-200[data-state=checked]{--tw-bg-opacity:1;background-color:rgb(255 215 0/var(--tw-bg-opacity,1))}.data-\[state\=checked\]\:bg-yellow-500[data-state=checked]{--tw-bg-opacity:1;background-color:rgb(161 98 7/var(--tw-bg-opacity,1))}.data-\[placeholder\]\:text-grey-500[data-placeholder]{--tw-text-opacity:1;color:rgb(148 163 184/var(--tw-text-opacity,1))}@media (prefers-reduced-motion:reduce){.motion-reduce\:animate-none{animation:none}}@media (min-width:768px){.md\:p-12{padding:3rem}}.\[\&\>button\:not\(\:last-child\)\]\:rounded-r-none>button:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.\[\&\>tr\:nth-child\(even\)\]\:bg-grey-100>tr:nth-child(2n){--tw-bg-opacity:1;background-color:rgb(248 250 252/var(--tw-bg-opacity,1))}.\[\&_img\]\:h-full img{height:100%}.\[\&_img\]\:w-full img{width:100%}.\[\&_img\]\:object-cover img{-o-object-fit:cover;object-fit:cover}.\[\&_td\:not\(\:first-child\)\]\:border-l td:not(:first-child){border-left-width:1px}.\[\&_td\:not\(\:first-child\)\]\:border-grey-200 td:not(:first-child){--tw-border-opacity:1;border-color:rgb(241 245 249/var(--tw-border-opacity,1))}.\[\&_th\:not\(\:first-child\)\]\:border-l th:not(:first-child){border-left-width:1px}.\[\&_th\:not\(\:first-child\)\]\:border-grey-200 th:not(:first-child){--tw-border-opacity:1;border-color:rgb(241 245 249/var(--tw-border-opacity,1))}
|
|
1
|
+
*,:after,:before{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(130,180,204,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(130,180,204,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }/*! tailwindcss v3.4.19 | MIT License | https://tailwindcss.com*/*,:after,:before{box-sizing:border-box;border:0 solid #e5e7eb}:after,:before{--tw-content:""}:host,html{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:Open Sans,system-ui,sans-serif;font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset{margin:0}fieldset,legend{padding:0}menu,ol,ul{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}.container{width:100%}@media (min-width:640px){.container{max-width:640px}}@media (min-width:768px){.container{max-width:768px}}@media (min-width:1024px){.container{max-width:1024px}}@media (min-width:1280px){.container{max-width:1280px}}@media (min-width:1536px){.container{max-width:1536px}}.pointer-events-none{pointer-events:none}.pointer-events-auto{pointer-events:auto}.visible{visibility:visible}.invisible{visibility:hidden}.\!static{position:static!important}.static{position:static}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.inset-0{inset:0}.inset-x-0{left:0;right:0}.inset-x-4{left:1rem;right:1rem}.inset-y-0{top:0;bottom:0}.inset-y-4{top:1rem;bottom:1rem}.-right-1{right:-.25rem}.-top-1{top:-.25rem}.bottom-0{bottom:0}.bottom-4{bottom:1rem}.bottom-8{bottom:2rem}.bottom-\[-1px\]{bottom:-1px}.bottom-\[50px\]{bottom:50px}.left-0{left:0}.left-1\/2{left:50%}.left-2\.5{left:.625rem}.left-4{left:1rem}.right-0{right:0}.right-2\.5{right:.625rem}.right-4{right:1rem}.right-8{right:2rem}.top-0{top:0}.top-1\/2{top:50%}.top-2\.5{top:.625rem}.top-4{top:1rem}.z-10{z-index:10}.z-40{z-index:40}.z-50{z-index:50}.z-\[1000\]{z-index:1000}.z-\[1\]{z-index:1}.z-\[2\]{z-index:2}.z-\[500\]{z-index:500}.z-\[9999\]{z-index:9999}.m-\[5px\]{margin:5px}.mb-2{margin-bottom:.5rem}.mt-1{margin-top:.25rem}.mt-2{margin-top:.5rem}.box-border{box-sizing:border-box}.line-clamp-1{-webkit-line-clamp:1}.line-clamp-1,.line-clamp-2{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical}.line-clamp-2{-webkit-line-clamp:2}.line-clamp-3{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3}.block{display:block}.inline-block{display:inline-block}.inline{display:inline}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.grid{display:grid}.hidden{display:none}.aspect-square{aspect-ratio:1/1}.h-0\.5{height:.125rem}.h-1\.5{height:.375rem}.h-10{height:2.5rem}.h-11{height:2.75rem}.h-16{height:4rem}.h-2{height:.5rem}.h-2\.5{height:.625rem}.h-3{height:.75rem}.h-3\.5{height:.875rem}.h-4{height:1rem}.h-48{height:12rem}.h-5{height:1.25rem}.h-6{height:1.5rem}.h-7{height:1.75rem}.h-8{height:2rem}.h-9{height:2.25rem}.h-\[18px\]{height:18px}.h-\[22px\]{height:22px}.h-\[30px\]{height:30px}.h-\[3px\]{height:3px}.h-\[500px\]{height:500px}.h-\[52px\]{height:52px}.h-\[9px\]{height:9px}.h-full{height:100%}.h-px{height:1px}.max-h-\[260px\]{max-height:260px}.max-h-\[300px\]{max-height:300px}.max-h-\[400px\]{max-height:400px}.max-h-\[90vh\]{max-height:90vh}.min-h-0{min-height:0}.min-h-\[16px\]{min-height:16px}.min-h-\[200px\]{min-height:200px}.min-h-\[214px\]{min-height:214px}.min-h-\[46px\]{min-height:46px}.min-h-\[48px\]{min-height:48px}.min-h-\[72px\]{min-height:72px}.min-h-\[80px\]{min-height:80px}.min-h-screen{min-height:100vh}.w-0\.5{width:.125rem}.w-10{width:2.5rem}.w-11{width:2.75rem}.w-12{width:3rem}.w-2{width:.5rem}.w-2\.5{width:.625rem}.w-24{width:6rem}.w-28{width:7rem}.w-3\.5{width:.875rem}.w-32{width:8rem}.w-4{width:1rem}.w-40{width:10rem}.w-44{width:11rem}.w-48{width:12rem}.w-5{width:1.25rem}.w-56{width:14rem}.w-6{width:1.5rem}.w-64{width:16rem}.w-7{width:1.75rem}.w-72{width:18rem}.w-8{width:2rem}.w-80{width:20rem}.w-9{width:2.25rem}.w-96{width:24rem}.w-\[18px\]{width:18px}.w-\[22px\]{width:22px}.w-\[360px\]{width:360px}.w-\[480px\]{width:480px}.w-\[520px\]{width:520px}.w-\[900px\]{width:900px}.w-\[9px\]{width:9px}.w-auto{width:auto}.w-fit{width:-moz-fit-content;width:fit-content}.w-full{width:100%}.w-px{width:1px}.min-w-0{min-width:0}.min-w-\[140px\]{min-width:140px}.min-w-\[18px\]{min-width:18px}.min-w-\[20px\]{min-width:20px}.min-w-\[80px\]{min-width:80px}.min-w-\[8px\]{min-width:8px}.max-w-2xl{max-width:42rem}.max-w-\[200px\]{max-width:200px}.max-w-\[423px\]{max-width:423px}.max-w-full{max-width:100%}.max-w-sm{max-width:24rem}.flex-1{flex:1 1 0%}.shrink-0{flex-shrink:0}.grow{flex-grow:1}.table-fixed{table-layout:fixed}.caption-bottom{caption-side:bottom}.origin-left{transform-origin:left}.-translate-x-1\/2{--tw-translate-x:-50%}.-translate-x-1\/2,.-translate-y-1\/2{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-translate-y-1\/2{--tw-translate-y:-50%}.rotate-180{--tw-rotate:180deg}.rotate-180,.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.animate-\[badge-pulse_2s_ease-in-out_infinite\]{animation:badge-pulse 2s ease-in-out infinite}.animate-\[toast-shrink_linear_forwards\]{animation:toast-shrink linear forwards}@keyframes pulse{50%{opacity:.5}}.animate-pulse{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}.cursor-default{cursor:default}.cursor-not-allowed{cursor:not-allowed}.cursor-pointer{cursor:pointer}.touch-none{touch-action:none}.select-none{-webkit-user-select:none;-moz-user-select:none;user-select:none}.resize{resize:both}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.flex-row{flex-direction:row}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.flex-nowrap{flex-wrap:nowrap}.place-items-center{place-items:center}.items-start{align-items:flex-start}.items-end{align-items:flex-end}.items-center{align-items:center}.items-baseline{align-items:baseline}.items-stretch{align-items:stretch}.justify-start{justify-content:flex-start}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.justify-around{justify-content:space-around}.justify-evenly{justify-content:space-evenly}.gap-0{gap:0}.gap-0\.5{gap:.125rem}.gap-1{gap:.25rem}.gap-1\.5{gap:.375rem}.gap-10{gap:2.5rem}.gap-12{gap:3rem}.gap-16{gap:4rem}.gap-2{gap:.5rem}.gap-2\.5{gap:.625rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-5{gap:1.25rem}.gap-6{gap:1.5rem}.gap-8{gap:2rem}.gap-\[5px\]{gap:5px}.-space-x-2>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(-.5rem*var(--tw-space-x-reverse));margin-left:calc(-.5rem*(1 - var(--tw-space-x-reverse)))}.self-stretch{align-self:stretch}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-y-auto{overflow-y:auto}.overflow-x-hidden{overflow-x:hidden}.truncate{overflow:hidden;white-space:nowrap}.text-ellipsis,.truncate{text-overflow:ellipsis}.whitespace-nowrap{white-space:nowrap}.whitespace-pre-line{white-space:pre-line}.whitespace-pre-wrap{white-space:pre-wrap}.break-words{overflow-wrap:break-word}.rounded{border-radius:.25rem}.rounded-2xl{border-radius:1rem}.rounded-\[10px\]{border-radius:10px}.rounded-\[20px\]{border-radius:20px}.rounded-\[3px\]{border-radius:3px}.rounded-\[4px\]{border-radius:4px}.rounded-\[5px\]{border-radius:5px}.rounded-\[6px\]{border-radius:6px}.rounded-\[8px\]{border-radius:8px}.rounded-\[inherit\]{border-radius:inherit}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:.5rem}.rounded-md{border-radius:.375rem}.rounded-none{border-radius:0}.rounded-xl{border-radius:.75rem}.rounded-r-xl{border-top-right-radius:.75rem;border-bottom-right-radius:.75rem}.rounded-bl-none{border-bottom-left-radius:0}.rounded-br-none{border-bottom-right-radius:0}.border{border-width:1px}.border-0{border-width:0}.border-2{border-width:2px}.border-\[1\.5px\]{border-width:1.5px}.border-b{border-bottom-width:1px}.border-l{border-left-width:1px}.border-l-4{border-left-width:4px}.border-l-\[1\.5px\]{border-left-width:1.5px}.border-r{border-right-width:1px}.border-r-\[1\.5px\]{border-right-width:1.5px}.border-t{border-top-width:1px}.border-t-0{border-top-width:0}.border-solid{border-style:solid}.border-dashed{border-style:dashed}.border-blue-100{--tw-border-opacity:1;border-color:rgb(204 234 248/var(--tw-border-opacity,1))}.border-blue-200{--tw-border-opacity:1;border-color:rgb(185 220 237/var(--tw-border-opacity,1))}.border-blue-50{--tw-border-opacity:1;border-color:rgb(219 233 254/var(--tw-border-opacity,1))}.border-blue-700{--tw-border-opacity:1;border-color:rgb(55 126 161/var(--tw-border-opacity,1))}.border-blue-800{--tw-border-opacity:1;border-color:rgb(18 99 139/var(--tw-border-opacity,1))}.border-blue-900{--tw-border-opacity:1;border-color:rgb(14 79 111/var(--tw-border-opacity,1))}.border-blue-950{--tw-border-opacity:1;border-color:rgb(28 78 216/var(--tw-border-opacity,1))}.border-green-100{--tw-border-opacity:1;border-color:rgb(18 183 106/var(--tw-border-opacity,1))}.border-green-500{--tw-border-opacity:1;border-color:rgb(34 197 94/var(--tw-border-opacity,1))}.border-green-700{--tw-border-opacity:1;border-color:rgb(23 128 61/var(--tw-border-opacity,1))}.border-grey-200{--tw-border-opacity:1;border-color:rgb(241 245 249/var(--tw-border-opacity,1))}.border-grey-300{--tw-border-opacity:1;border-color:rgb(226 232 240/var(--tw-border-opacity,1))}.border-grey-400{--tw-border-opacity:1;border-color:rgb(203 213 225/var(--tw-border-opacity,1))}.border-grey-500{--tw-border-opacity:1;border-color:rgb(148 163 184/var(--tw-border-opacity,1))}.border-grey-600{--tw-border-opacity:1;border-color:rgb(100 107 115/var(--tw-border-opacity,1))}.border-purple-700{--tw-border-opacity:1;border-color:rgb(114 48 219/var(--tw-border-opacity,1))}.border-red-200{--tw-border-opacity:1;border-color:rgb(254 202 202/var(--tw-border-opacity,1))}.border-red-500{--tw-border-opacity:1;border-color:rgb(244 70 73/var(--tw-border-opacity,1))}.border-red-900{--tw-border-opacity:1;border-color:rgb(127 29 29/var(--tw-border-opacity,1))}.border-transparent{border-color:transparent}.border-yellow-200{--tw-border-opacity:1;border-color:rgb(255 215 0/var(--tw-border-opacity,1))}.border-yellow-500{--tw-border-opacity:1;border-color:rgb(161 98 7/var(--tw-border-opacity,1))}.border-l-blue-700{--tw-border-opacity:1;border-left-color:rgb(55 126 161/var(--tw-border-opacity,1))}.border-l-blue-900{--tw-border-opacity:1;border-left-color:rgb(14 79 111/var(--tw-border-opacity,1))}.border-l-blue-950{--tw-border-opacity:1;border-left-color:rgb(28 78 216/var(--tw-border-opacity,1))}.border-l-green-700{--tw-border-opacity:1;border-left-color:rgb(23 128 61/var(--tw-border-opacity,1))}.border-l-grey-600{--tw-border-opacity:1;border-left-color:rgb(100 107 115/var(--tw-border-opacity,1))}.border-l-orange-500{--tw-border-opacity:1;border-left-color:rgb(255 100 28/var(--tw-border-opacity,1))}.border-l-purple-700{--tw-border-opacity:1;border-left-color:rgb(114 48 219/var(--tw-border-opacity,1))}.border-l-red-500{--tw-border-opacity:1;border-left-color:rgb(244 70 73/var(--tw-border-opacity,1))}.border-l-red-900{--tw-border-opacity:1;border-left-color:rgb(127 29 29/var(--tw-border-opacity,1))}.border-l-transparent{border-left-color:transparent}.border-l-yellow-200{--tw-border-opacity:1;border-left-color:rgb(255 215 0/var(--tw-border-opacity,1))}.border-l-yellow-500{--tw-border-opacity:1;border-left-color:rgb(161 98 7/var(--tw-border-opacity,1))}.border-t-transparent{border-top-color:transparent}.bg-\[\#1e1e1e\]{--tw-bg-opacity:1;background-color:rgb(30 30 30/var(--tw-bg-opacity,1))}.bg-black\/35{background-color:rgba(0,0,0,.35)}.bg-black\/50{background-color:rgba(0,0,0,.5)}.bg-blue-50{--tw-bg-opacity:1;background-color:rgb(219 233 254/var(--tw-bg-opacity,1))}.bg-blue-700{--tw-bg-opacity:1;background-color:rgb(55 126 161/var(--tw-bg-opacity,1))}.bg-blue-800{--tw-bg-opacity:1;background-color:rgb(18 99 139/var(--tw-bg-opacity,1))}.bg-blue-900{--tw-bg-opacity:1;background-color:rgb(14 79 111/var(--tw-bg-opacity,1))}.bg-blue-950{--tw-bg-opacity:1;background-color:rgb(28 78 216/var(--tw-bg-opacity,1))}.bg-green-50{--tw-bg-opacity:1;background-color:rgb(220 252 231/var(--tw-bg-opacity,1))}.bg-green-700{--tw-bg-opacity:1;background-color:rgb(23 128 61/var(--tw-bg-opacity,1))}.bg-grey-100{--tw-bg-opacity:1;background-color:rgb(248 250 252/var(--tw-bg-opacity,1))}.bg-grey-200{--tw-bg-opacity:1;background-color:rgb(241 245 249/var(--tw-bg-opacity,1))}.bg-grey-300{--tw-bg-opacity:1;background-color:rgb(226 232 240/var(--tw-bg-opacity,1))}.bg-grey-400{--tw-bg-opacity:1;background-color:rgb(203 213 225/var(--tw-bg-opacity,1))}.bg-grey-500{--tw-bg-opacity:1;background-color:rgb(148 163 184/var(--tw-bg-opacity,1))}.bg-grey-600{--tw-bg-opacity:1;background-color:rgb(100 107 115/var(--tw-bg-opacity,1))}.bg-neutral-800{--tw-bg-opacity:1;background-color:rgb(52 58 64/var(--tw-bg-opacity,1))}.bg-orange-50{--tw-bg-opacity:1;background-color:rgb(255 238 230/var(--tw-bg-opacity,1))}.bg-orange-500{--tw-bg-opacity:1;background-color:rgb(255 100 28/var(--tw-bg-opacity,1))}.bg-purple-50{--tw-bg-opacity:1;background-color:rgb(237 233 254/var(--tw-bg-opacity,1))}.bg-purple-700{--tw-bg-opacity:1;background-color:rgb(114 48 219/var(--tw-bg-opacity,1))}.bg-red-50{--tw-bg-opacity:1;background-color:rgb(254 233 233/var(--tw-bg-opacity,1))}.bg-red-500{--tw-bg-opacity:1;background-color:rgb(244 70 73/var(--tw-bg-opacity,1))}.bg-red-900{--tw-bg-opacity:1;background-color:rgb(127 29 29/var(--tw-bg-opacity,1))}.bg-transparent{background-color:transparent}.bg-white{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity,1))}.bg-white\/40{background-color:hsla(0,0%,100%,.4)}.bg-yellow-200{--tw-bg-opacity:1;background-color:rgb(255 215 0/var(--tw-bg-opacity,1))}.bg-yellow-50{--tw-bg-opacity:1;background-color:rgb(254 247 234/var(--tw-bg-opacity,1))}.bg-yellow-500{--tw-bg-opacity:1;background-color:rgb(161 98 7/var(--tw-bg-opacity,1))}.fill-neutral-800{fill:#343a40}.object-contain{-o-object-fit:contain;object-fit:contain}.object-cover{-o-object-fit:cover;object-fit:cover}.object-fill{-o-object-fit:fill;object-fit:fill}.p-0{padding:0}.p-0\.5{padding:.125rem}.p-1{padding:.25rem}.p-1\.5{padding:.375rem}.p-10{padding:2.5rem}.p-12{padding:3rem}.p-16{padding:4rem}.p-2{padding:.5rem}.p-3{padding:.75rem}.p-4{padding:1rem}.p-5{padding:1.25rem}.p-6{padding:1.5rem}.p-8{padding:2rem}.p-\[1px\]{padding:1px}.px-0{padding-left:0;padding-right:0}.px-0\.5{padding-left:.125rem;padding-right:.125rem}.px-1{padding-left:.25rem;padding-right:.25rem}.px-1\.5{padding-left:.375rem;padding-right:.375rem}.px-10{padding-left:2.5rem;padding-right:2.5rem}.px-12{padding-left:3rem;padding-right:3rem}.px-16{padding-left:4rem;padding-right:4rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-2\.5{padding-left:.625rem;padding-right:.625rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-3\.5{padding-left:.875rem;padding-right:.875rem}.px-4{padding-left:1rem;padding-right:1rem}.px-5{padding-left:1.25rem;padding-right:1.25rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.px-8{padding-left:2rem;padding-right:2rem}.py-0{padding-top:0;padding-bottom:0}.py-0\.5{padding-top:.125rem;padding-bottom:.125rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-1\.5{padding-top:.375rem;padding-bottom:.375rem}.py-10{padding-top:2.5rem;padding-bottom:2.5rem}.py-12{padding-top:3rem;padding-bottom:3rem}.py-16{padding-top:4rem;padding-bottom:4rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-2\.5{padding-top:.625rem;padding-bottom:.625rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.py-4{padding-top:1rem;padding-bottom:1rem}.py-5{padding-top:1.25rem;padding-bottom:1.25rem}.py-6{padding-top:1.5rem;padding-bottom:1.5rem}.py-8{padding-top:2rem;padding-bottom:2rem}.pb-0{padding-bottom:0}.pb-0\.5{padding-bottom:.125rem}.pb-1{padding-bottom:.25rem}.pb-1\.5{padding-bottom:.375rem}.pb-10{padding-bottom:2.5rem}.pb-12{padding-bottom:3rem}.pb-16{padding-bottom:4rem}.pb-2{padding-bottom:.5rem}.pb-3{padding-bottom:.75rem}.pb-4{padding-bottom:1rem}.pb-5{padding-bottom:1.25rem}.pb-6{padding-bottom:1.5rem}.pb-8{padding-bottom:2rem}.pl-0{padding-left:0}.pl-0\.5{padding-left:.125rem}.pl-1{padding-left:.25rem}.pl-1\.5{padding-left:.375rem}.pl-10{padding-left:2.5rem}.pl-12{padding-left:3rem}.pl-16{padding-left:4rem}.pl-2{padding-left:.5rem}.pl-3{padding-left:.75rem}.pl-4{padding-left:1rem}.pl-5{padding-left:1.25rem}.pl-6{padding-left:1.5rem}.pl-8{padding-left:2rem}.pr-0{padding-right:0}.pr-0\.5{padding-right:.125rem}.pr-1{padding-right:.25rem}.pr-1\.5{padding-right:.375rem}.pr-10{padding-right:2.5rem}.pr-12{padding-right:3rem}.pr-16{padding-right:4rem}.pr-2{padding-right:.5rem}.pr-3{padding-right:.75rem}.pr-4{padding-right:1rem}.pr-5{padding-right:1.25rem}.pr-6{padding-right:1.5rem}.pr-8{padding-right:2rem}.pr-9{padding-right:2.25rem}.pt-0{padding-top:0}.pt-0\.5{padding-top:.125rem}.pt-1{padding-top:.25rem}.pt-1\.5{padding-top:.375rem}.pt-10{padding-top:2.5rem}.pt-12{padding-top:3rem}.pt-16{padding-top:4rem}.pt-2{padding-top:.5rem}.pt-3{padding-top:.75rem}.pt-4{padding-top:1rem}.pt-5{padding-top:1.25rem}.pt-6{padding-top:1.5rem}.pt-8{padding-top:2rem}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.align-middle{vertical-align:middle}.font-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.font-sans{font-family:Open Sans,system-ui,sans-serif}.text-2xl{font-size:1.5rem;line-height:2rem}.text-\[10px\]{font-size:10px}.text-\[11px\]{font-size:11px}.text-\[13px\]{font-size:13px}.text-\[15px\]{font-size:15px}.text-\[17px\]{font-size:17px}.text-\[19px\]{font-size:19px}.text-\[21px\]{font-size:21px}.text-\[22px\]{font-size:22px}.text-\[9px\]{font-size:9px}.text-base{font-size:1rem;line-height:1.5rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-xs{font-size:.75rem;line-height:1rem}.font-bold{font-weight:700}.font-medium{font-weight:500}.font-normal{font-weight:400}.font-semibold{font-weight:600}.uppercase{text-transform:uppercase}.italic{font-style:italic}.leading-none{line-height:1}.tracking-wide{letter-spacing:.025em}.text-blue-700{--tw-text-opacity:1;color:rgb(55 126 161/var(--tw-text-opacity,1))}.text-blue-800{--tw-text-opacity:1;color:rgb(18 99 139/var(--tw-text-opacity,1))}.text-blue-900{--tw-text-opacity:1;color:rgb(14 79 111/var(--tw-text-opacity,1))}.text-blue-950{--tw-text-opacity:1;color:rgb(28 78 216/var(--tw-text-opacity,1))}.text-green-700{--tw-text-opacity:1;color:rgb(23 128 61/var(--tw-text-opacity,1))}.text-grey-400{--tw-text-opacity:1;color:rgb(203 213 225/var(--tw-text-opacity,1))}.text-grey-500{--tw-text-opacity:1;color:rgb(148 163 184/var(--tw-text-opacity,1))}.text-grey-600{--tw-text-opacity:1;color:rgb(100 107 115/var(--tw-text-opacity,1))}.text-neutral-800{--tw-text-opacity:1;color:rgb(52 58 64/var(--tw-text-opacity,1))}.text-orange-500{--tw-text-opacity:1;color:rgb(255 100 28/var(--tw-text-opacity,1))}.text-purple-700{--tw-text-opacity:1;color:rgb(114 48 219/var(--tw-text-opacity,1))}.text-red-500{--tw-text-opacity:1;color:rgb(244 70 73/var(--tw-text-opacity,1))}.text-red-900{--tw-text-opacity:1;color:rgb(127 29 29/var(--tw-text-opacity,1))}.text-white{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.text-yellow-200{--tw-text-opacity:1;color:rgb(255 215 0/var(--tw-text-opacity,1))}.text-yellow-500{--tw-text-opacity:1;color:rgb(161 98 7/var(--tw-text-opacity,1))}.no-underline{text-decoration-line:none}.opacity-0{opacity:0}.opacity-100{opacity:1}.opacity-50{opacity:.5}.opacity-60{opacity:.6}.opacity-90{opacity:.9}.shadow-\[0_10px_15px_-3px_rgba\(0\2c 0\2c 0\2c 0\.1\)\2c 0_4px_6px_-2px_rgba\(0\2c 0\2c 0\2c 0\.05\)\]{--tw-shadow:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -2px rgba(0,0,0,.05);--tw-shadow-colored:0 10px 15px -3px var(--tw-shadow-color),0 4px 6px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-\[0_1px_2px_rgba\(15\2c 23\2c 42\2c 0\.12\)\]{--tw-shadow:0 1px 2px rgba(15,23,42,.12);--tw-shadow-colored:0 1px 2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-\[0_1px_4px_rgba\(0\2c 0\2c 0\2c 0\.16\)\]{--tw-shadow:0 1px 4px rgba(0,0,0,.16);--tw-shadow-colored:0 1px 4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-\[0_2px_15px_0_rgba\(198\2c 198\2c 198\2c 0\.25\)\]{--tw-shadow:0 2px 15px 0 hsla(0,0%,78%,.25);--tw-shadow-colored:0 2px 15px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-\[0_2px_6px_rgba\(15\2c 23\2c 42\2c 0\.2\)\]{--tw-shadow:0 2px 6px rgba(15,23,42,.2);--tw-shadow-colored:0 2px 6px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-\[0_2px_8px_rgba\(0\2c 0\2c 0\2c 0\.08\)\]{--tw-shadow:0 2px 8px rgba(0,0,0,.08);--tw-shadow-colored:0 2px 8px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-\[0_4px_16px_rgba\(0\2c 0\2c 0\2c 0\.12\)\]{--tw-shadow:0 4px 16px rgba(0,0,0,.12);--tw-shadow-colored:0 4px 16px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-\[0_4px_3px_rgba\(0\2c 0\2c 0\2c 0\.1\)\2c 0_10px_7\.5px_rgba\(0\2c 0\2c 0\2c 0\.1\)\]{--tw-shadow:0 4px 3px rgba(0,0,0,.1),0 10px 7.5px rgba(0,0,0,.1);--tw-shadow-colored:0 4px 3px var(--tw-shadow-color),0 10px 7.5px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-\[0_4px_6px_rgba\(0\2c 0\2c 0\2c 0\.1\)\]{--tw-shadow:0 4px 6px rgba(0,0,0,.1);--tw-shadow-colored:0 4px 6px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-\[0_8px_24px_rgba\(0\2c 0\2c 0\2c 0\.16\)\]{--tw-shadow:0 8px 24px rgba(0,0,0,.16);--tw-shadow-colored:0 8px 24px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-\[0_8px_5px_rgba\(0\2c 0\2c 0\2c 0\.1\)\2c 0_20px_12\.5px_rgba\(0\2c 0\2c 0\2c 0\.1\)\]{--tw-shadow:0 8px 5px rgba(0,0,0,.1),0 20px 12.5px rgba(0,0,0,.1);--tw-shadow-colored:0 8px 5px var(--tw-shadow-color),0 20px 12.5px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-\[inset_0_0_0_1px_rgba\(0\2c 0\2c 0\2c 0\.06\)\]{--tw-shadow:inset 0 0 0 1px rgba(0,0,0,.06);--tw-shadow-colored:inset 0 0 0 1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.outline-none{outline:2px solid transparent;outline-offset:2px}.outline{outline-style:solid}.ring-2{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.ring-white{--tw-ring-opacity:1;--tw-ring-color:rgb(255 255 255/var(--tw-ring-opacity,1))}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-\[filter\2c transform\]{transition-property:filter,transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-\[filter\]{transition-property:filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-\[transform\2c opacity\]{transition-property:transform,opacity;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-\[width\]{transition-property:width;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-all{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-transform{transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1)}.duration-150,.transition-transform{transition-duration:.15s}.duration-200{transition-duration:.2s}.duration-300{transition-duration:.3s}.duration-\[180ms\]{transition-duration:.18s}.ease-out{transition-timing-function:cubic-bezier(0,0,.2,1)}body{font-family:Open Sans,system-ui,sans-serif}@keyframes badge-pulse{0%{transform:scale(1);box-shadow:0 0 0 0 color-mix(in srgb,currentColor 60%,transparent)}70%{transform:scale(1.06);box-shadow:0 0 0 6px transparent}to{transform:scale(1);box-shadow:0 0 0 0 transparent}}@media (prefers-reduced-motion:reduce){.animate-badge-pulse{animation:none!important}}@keyframes accordion-down{0%{height:0}to{height:var(--radix-accordion-content-height)}}@keyframes accordion-up{0%{height:var(--radix-accordion-content-height)}to{height:0}}@keyframes collapsible-down{0%{height:0}to{height:var(--radix-collapsible-content-height)}}@keyframes collapsible-up{0%{height:var(--radix-collapsible-content-height)}to{height:0}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes toast-shrink{0%{transform:scaleX(1)}to{transform:scaleX(0)}}.rdp-root.rdp-root{--rdp-accent-color:#0e4f6f;--rdp-accent-background-color:#cceaf8;--rdp-today-color:#0e4f6f;--rdp-day_button-border-radius:6px;--rdp-day-width:26px;--rdp-day-height:26px;--rdp-day_button-width:26px;--rdp-day_button-height:26px;font-family:Open Sans,system-ui,sans-serif;font-size:12px}.rdp-root.rdp-root .rdp-selected{font-size:inherit}.rdp-root.rdp-root .rdp-range_middle .rdp-day_button{border-radius:0}.react-international-phone-input-container{--react-international-phone-border-color:#e2e8f0;--react-international-phone-background-color:#fff;--react-international-phone-text-color:#343a40;--react-international-phone-height:36px;--react-international-phone-border-radius:5px;--react-international-phone-font-size:13px;--react-international-phone-country-selector-background-color-hover:#f1f5f9;--react-international-phone-disabled-background-color:#f1f5f9;--react-international-phone-disabled-text-color:#94a3b8;--react-international-phone-selected-dropdown-item-background-color:#f8fafc;--react-international-phone-dropdown-shadow:0 4px 6px rgba(0,0,0,.1);width:100%;font-family:Open Sans,system-ui,sans-serif}.react-international-phone-input-container .react-international-phone-input:focus{border-color:#1c4ed8}.dz-tagify .tagify{width:100%;border:1px solid #e2e8f0;border-radius:6px;min-height:36px;font-size:13px;font-family:Open Sans,system-ui,sans-serif;--tag-hover:#377ea1;--tag-bg:#377ea1;--tag-text-color:#fff;--tag-remove-btn-color:#fff;--tag-remove-btn-bg--hover:#f44649;--tag-invalid-color:#f44649;--tag-remove-bg:#f44649}.dz-tagify .tagify--focus{border-color:#1c4ed8}.dz-tagify .tagify,.dz-tagify .tagify__input{cursor:text}.dz-tagify--disabled{opacity:.6;pointer-events:none}.placeholder\:font-sans::-moz-placeholder{font-family:Open Sans,system-ui,sans-serif}.placeholder\:font-sans::placeholder{font-family:Open Sans,system-ui,sans-serif}.placeholder\:text-xs::-moz-placeholder{font-size:.75rem;line-height:1rem}.placeholder\:text-xs::placeholder{font-size:.75rem;line-height:1rem}.placeholder\:text-grey-500::-moz-placeholder{--tw-text-opacity:1;color:rgb(148 163 184/var(--tw-text-opacity,1))}.placeholder\:text-grey-500::placeholder{--tw-text-opacity:1;color:rgb(148 163 184/var(--tw-text-opacity,1))}.placeholder\:text-grey-600::-moz-placeholder{--tw-text-opacity:1;color:rgb(100 107 115/var(--tw-text-opacity,1))}.placeholder\:text-grey-600::placeholder{--tw-text-opacity:1;color:rgb(100 107 115/var(--tw-text-opacity,1))}.after\:block:after{content:var(--tw-content);display:block}.after\:\!hidden:after{content:var(--tw-content);display:none!important}.after\:h-\[13px\]:after{content:var(--tw-content);height:13px}.after\:w-\[13px\]:after{content:var(--tw-content);width:13px}.after\:rounded-full:after{content:var(--tw-content);border-radius:9999px}.after\:bg-blue-700:after{content:var(--tw-content);--tw-bg-opacity:1;background-color:rgb(55 126 161/var(--tw-bg-opacity,1))}.after\:bg-blue-900:after{content:var(--tw-content);--tw-bg-opacity:1;background-color:rgb(14 79 111/var(--tw-bg-opacity,1))}.after\:bg-blue-950:after{content:var(--tw-content);--tw-bg-opacity:1;background-color:rgb(28 78 216/var(--tw-bg-opacity,1))}.after\:bg-green-700:after{content:var(--tw-content);--tw-bg-opacity:1;background-color:rgb(23 128 61/var(--tw-bg-opacity,1))}.after\:bg-grey-600:after{content:var(--tw-content);--tw-bg-opacity:1;background-color:rgb(100 107 115/var(--tw-bg-opacity,1))}.after\:bg-purple-700:after{content:var(--tw-content);--tw-bg-opacity:1;background-color:rgb(114 48 219/var(--tw-bg-opacity,1))}.after\:bg-red-500:after{content:var(--tw-content);--tw-bg-opacity:1;background-color:rgb(244 70 73/var(--tw-bg-opacity,1))}.after\:bg-red-900:after{content:var(--tw-content);--tw-bg-opacity:1;background-color:rgb(127 29 29/var(--tw-bg-opacity,1))}.after\:bg-yellow-200:after{content:var(--tw-content);--tw-bg-opacity:1;background-color:rgb(255 215 0/var(--tw-bg-opacity,1))}.after\:bg-yellow-500:after{content:var(--tw-content);--tw-bg-opacity:1;background-color:rgb(161 98 7/var(--tw-bg-opacity,1))}.focus-within\:border-blue-700:focus-within{--tw-border-opacity:1;border-color:rgb(55 126 161/var(--tw-border-opacity,1))}.hover\:scale-110:hover{--tw-scale-x:1.1;--tw-scale-y:1.1;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.hover\:border-blue-100:hover{--tw-border-opacity:1;border-color:rgb(204 234 248/var(--tw-border-opacity,1))}.hover\:border-blue-700:hover{--tw-border-opacity:1;border-color:rgb(55 126 161/var(--tw-border-opacity,1))}.hover\:border-grey-300:hover{--tw-border-opacity:1;border-color:rgb(226 232 240/var(--tw-border-opacity,1))}.hover\:bg-black\/\[0\.025\]:hover{background-color:rgba(0,0,0,.025)}.hover\:bg-grey-100:hover{--tw-bg-opacity:1;background-color:rgb(248 250 252/var(--tw-bg-opacity,1))}.hover\:bg-grey-200:hover{--tw-bg-opacity:1;background-color:rgb(241 245 249/var(--tw-bg-opacity,1))}.hover\:text-grey-600:hover{--tw-text-opacity:1;color:rgb(100 107 115/var(--tw-text-opacity,1))}.hover\:text-neutral-800:hover{--tw-text-opacity:1;color:rgb(52 58 64/var(--tw-text-opacity,1))}.hover\:opacity-80:hover{opacity:.8}.hover\:brightness-90:hover{--tw-brightness:brightness(.9)}.hover\:brightness-90:hover,.hover\:brightness-95:hover{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.hover\:brightness-95:hover{--tw-brightness:brightness(.95)}.focus-within\:hover\:border-blue-700:hover:focus-within{--tw-border-opacity:1;border-color:rgb(55 126 161/var(--tw-border-opacity,1))}.focus\:border-blue-700:focus{--tw-border-opacity:1;border-color:rgb(55 126 161/var(--tw-border-opacity,1))}.focus\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}.focus-visible\:ring-2:focus-visible{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.focus-visible\:ring-blue-200:focus-visible{--tw-ring-opacity:1;--tw-ring-color:rgb(185 220 237/var(--tw-ring-opacity,1))}.focus-visible\:ring-offset-2:focus-visible{--tw-ring-offset-width:2px}.active\:scale-\[0\.98\]:active{--tw-scale-x:0.98;--tw-scale-y:0.98;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.active\:brightness-75:active{--tw-brightness:brightness(.75);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:bg-grey-100:disabled{--tw-bg-opacity:1;background-color:rgb(248 250 252/var(--tw-bg-opacity,1))}.disabled\:bg-grey-200:disabled{--tw-bg-opacity:1;background-color:rgb(241 245 249/var(--tw-bg-opacity,1))}.disabled\:opacity-60:disabled{opacity:.6}.disabled\:hover\:brightness-100:hover:disabled{--tw-brightness:brightness(1);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.disabled\:active\:scale-100:active:disabled{--tw-scale-x:1;--tw-scale-y:1;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.aria-invalid\:border-red-900[aria-invalid=true],.aria-invalid\:focus\:border-red-900:focus[aria-invalid=true]{--tw-border-opacity:1;border-color:rgb(127 29 29/var(--tw-border-opacity,1))}.data-\[state\=checked\]\:translate-x-4[data-state=checked]{--tw-translate-x:1rem}.data-\[state\=checked\]\:translate-x-4[data-state=checked],.data-\[state\=checked\]\:translate-x-5[data-state=checked]{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[state\=checked\]\:translate-x-5[data-state=checked]{--tw-translate-x:1.25rem}.data-\[state\=open\]\:rotate-180[data-state=open]{--tw-rotate:180deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[state\=closed\]\:animate-\[collapsible-up_200ms_ease-out\][data-state=closed]{animation:collapsible-up .2s ease-out}.data-\[state\=delayed-open\]\:animate-\[fade-in_150ms_ease-out\][data-state=delayed-open]{animation:fade-in .15s ease-out}.data-\[state\=open\]\:animate-\[collapsible-down_200ms_ease-out\][data-state=open]{animation:collapsible-down .2s ease-out}.data-\[state\=open\]\:animate-\[fade-in_150ms_ease-out\][data-state=open]{animation:fade-in .15s ease-out}.data-\[state\=checked\]\:border-blue-700[data-state=checked]{--tw-border-opacity:1;border-color:rgb(55 126 161/var(--tw-border-opacity,1))}.data-\[state\=checked\]\:border-blue-900[data-state=checked]{--tw-border-opacity:1;border-color:rgb(14 79 111/var(--tw-border-opacity,1))}.data-\[state\=checked\]\:border-blue-950[data-state=checked]{--tw-border-opacity:1;border-color:rgb(28 78 216/var(--tw-border-opacity,1))}.data-\[state\=checked\]\:border-green-700[data-state=checked]{--tw-border-opacity:1;border-color:rgb(23 128 61/var(--tw-border-opacity,1))}.data-\[state\=checked\]\:border-grey-600[data-state=checked]{--tw-border-opacity:1;border-color:rgb(100 107 115/var(--tw-border-opacity,1))}.data-\[state\=checked\]\:border-purple-700[data-state=checked]{--tw-border-opacity:1;border-color:rgb(114 48 219/var(--tw-border-opacity,1))}.data-\[state\=checked\]\:border-red-500[data-state=checked]{--tw-border-opacity:1;border-color:rgb(244 70 73/var(--tw-border-opacity,1))}.data-\[state\=checked\]\:border-red-900[data-state=checked]{--tw-border-opacity:1;border-color:rgb(127 29 29/var(--tw-border-opacity,1))}.data-\[state\=checked\]\:border-yellow-200[data-state=checked]{--tw-border-opacity:1;border-color:rgb(255 215 0/var(--tw-border-opacity,1))}.data-\[state\=checked\]\:border-yellow-500[data-state=checked]{--tw-border-opacity:1;border-color:rgb(161 98 7/var(--tw-border-opacity,1))}.data-\[state\=open\]\:border-blue-700[data-state=open]{--tw-border-opacity:1;border-color:rgb(55 126 161/var(--tw-border-opacity,1))}.data-\[highlighted\]\:bg-grey-100[data-highlighted]{--tw-bg-opacity:1;background-color:rgb(248 250 252/var(--tw-bg-opacity,1))}.data-\[state\=checked\]\:bg-blue-700[data-state=checked]{--tw-bg-opacity:1;background-color:rgb(55 126 161/var(--tw-bg-opacity,1))}.data-\[state\=checked\]\:bg-blue-900[data-state=checked]{--tw-bg-opacity:1;background-color:rgb(14 79 111/var(--tw-bg-opacity,1))}.data-\[state\=checked\]\:bg-blue-950[data-state=checked]{--tw-bg-opacity:1;background-color:rgb(28 78 216/var(--tw-bg-opacity,1))}.data-\[state\=checked\]\:bg-green-700[data-state=checked]{--tw-bg-opacity:1;background-color:rgb(23 128 61/var(--tw-bg-opacity,1))}.data-\[state\=checked\]\:bg-grey-600[data-state=checked]{--tw-bg-opacity:1;background-color:rgb(100 107 115/var(--tw-bg-opacity,1))}.data-\[state\=checked\]\:bg-purple-700[data-state=checked]{--tw-bg-opacity:1;background-color:rgb(114 48 219/var(--tw-bg-opacity,1))}.data-\[state\=checked\]\:bg-red-500[data-state=checked]{--tw-bg-opacity:1;background-color:rgb(244 70 73/var(--tw-bg-opacity,1))}.data-\[state\=checked\]\:bg-red-900[data-state=checked]{--tw-bg-opacity:1;background-color:rgb(127 29 29/var(--tw-bg-opacity,1))}.data-\[state\=checked\]\:bg-yellow-200[data-state=checked]{--tw-bg-opacity:1;background-color:rgb(255 215 0/var(--tw-bg-opacity,1))}.data-\[state\=checked\]\:bg-yellow-500[data-state=checked]{--tw-bg-opacity:1;background-color:rgb(161 98 7/var(--tw-bg-opacity,1))}.data-\[placeholder\]\:text-grey-500[data-placeholder]{--tw-text-opacity:1;color:rgb(148 163 184/var(--tw-text-opacity,1))}@media (prefers-reduced-motion:reduce){.motion-reduce\:animate-none{animation:none}}@media (min-width:768px){.md\:p-12{padding:3rem}}.\[\&\>button\:not\(\:last-child\)\]\:rounded-r-none>button:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.\[\&\>tr\:nth-child\(even\)\]\:bg-grey-100>tr:nth-child(2n){--tw-bg-opacity:1;background-color:rgb(248 250 252/var(--tw-bg-opacity,1))}.\[\&_img\]\:h-full img{height:100%}.\[\&_img\]\:w-full img{width:100%}.\[\&_img\]\:object-cover img{-o-object-fit:cover;object-fit:cover}.\[\&_td\:not\(\:first-child\)\]\:border-l td:not(:first-child){border-left-width:1px}.\[\&_td\:not\(\:first-child\)\]\:border-grey-200 td:not(:first-child){--tw-border-opacity:1;border-color:rgb(241 245 249/var(--tw-border-opacity,1))}.\[\&_th\:not\(\:first-child\)\]\:border-l th:not(:first-child){border-left-width:1px}.\[\&_th\:not\(\:first-child\)\]\:border-grey-200 th:not(:first-child){--tw-border-opacity:1;border-color:rgb(241 245 249/var(--tw-border-opacity,1))}
|