@aurora-ds/components 0.19.2 → 0.19.3
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/cjs/index.js +1 -1
- package/dist/cjs/index.js.map +1 -1
- package/dist/esm/index.js +1 -1
- package/dist/esm/index.js.map +1 -1
- package/package.json +2 -2
package/dist/cjs/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../src/components/foundation/icon/Icon.styles.ts","../../src/components/foundation/icon/Icon.tsx","../../src/utils/ui/components/foundation/text/getTextVariantStyles.utils.ts","../../src/utils/ui/components/foundation/text/getTruncateTextStyles.utils.ts","../../src/components/foundation/text/Text.styles.ts","../../src/utils/ui/components/foundation/text/parseTextWithBold.utils.ts","../../src/components/foundation/text/Text.tsx","../../src/utils/ui/components/data-display/chip/getChipColorStyles.utils.ts","../../src/utils/ui/components/data-display/chip/getChipSizeStyles.utils.ts","../../src/components/data-display/chip/Chip.styles.ts","../../src/utils/ui/components/data-display/chip/getChipContentSize.utils.ts","../../src/components/data-display/chip/Chip.tsx","../../src/constants/globalConstants.ts","../../src/utils/ui/components/data-display/avatar/getAvatarSizes.utils.ts","../../src/components/data-display/avatar/Avatar.styles.ts","../../src/components/data-display/avatar/Avatar.tsx","../../src/components/data-display/avatar/avatar-group/AvatarGroup.styles.ts","../../src/components/data-display/avatar/avatar-group/AvatarGroup.tsx","../../src/constants/animations.ts","../../src/components/data-display/skeleton/Skeleton.styles.ts","../../src/components/data-display/skeleton/Skeleton.tsx","../../src/utils/ui/components/actions/button/getButtonSizeStyles.utils.ts","../../src/utils/ui/components/actions/button/getButtonVariantStyles.utils.ts","../../src/components/actions/button/Button.styles.ts","../../src/components/actions/button/Button.tsx","../../src/utils/ui/components/actions/icon-button/getIconButtonSizeStyles.utils.ts","../../src/components/actions/icon-button/IconButton.styles.ts","../../src/components/actions/icon-button/IconButton.tsx","../../src/components/forms/form/Form.styles.ts","../../src/components/forms/form/Form.tsx","../../src/components/forms/input/Input.styles.ts","../../src/components/layout/stack/Stack.styles.ts","../../src/components/layout/stack/Stack.tsx","../../src/resources/icons/AlertCircleIcon.tsx","../../src/resources/icons/AlertTriangleIcon.tsx","../../src/resources/icons/CalendarIcon.tsx","../../src/resources/icons/CheckCircleIcon.tsx","../../src/resources/icons/ChevronDownIcon.tsx","../../src/resources/icons/ChevronLeftIcon.tsx","../../src/resources/icons/ChevronRightIcon.tsx","../../src/resources/icons/CloseIcon.tsx","../../src/resources/icons/EyeIcon.tsx","../../src/resources/icons/EyeOffIcon.tsx","../../src/resources/icons/InfoIcon.tsx","../../src/resources/icons/MoreHorizontalIcon.tsx","../../src/components/forms/input/Input.tsx","../../src/components/forms/textarea/TextArea.styles.ts","../../src/components/forms/textarea/TextArea.tsx","../../src/components/forms/select/Select.styles.ts","../../src/components/forms/select/SelectItem/SelectItem.styles.ts","../../src/components/forms/select/SelectItem/SelectItem.tsx","../../src/components/overlay/menu/Menu.styles.ts","../../src/hooks/useAnchorPosition.ts","../../src/hooks/useClickOutside.ts","../../src/hooks/useTransitionRender.ts","../../src/components/overlay/menu/Menu.tsx","../../src/components/overlay/menu/MenuGroup/MenuGroup.styles.ts","../../src/components/overlay/menu/MenuGroup/MenuGroup.tsx","../../src/components/overlay/menu/MenuItem/MenuItem.styles.ts","../../src/components/overlay/menu/MenuItem/MenuItem.tsx","../../src/components/forms/select/Select.tsx","../../src/components/forms/date-picker/calendar/calendar-grid/CalendarGrid.styles.ts","../../src/components/forms/date-picker/calendar/calendar-grid/CalendarGrid.tsx","../../src/components/forms/date-picker/calendar/calendar-header/CalendarHeader.styles.ts","../../src/components/forms/date-picker/calendar/calendar-header/CalendarHeader.tsx","../../src/components/forms/date-picker/calendar/Calendar.styles.ts","../../src/utils/ui/components/date-picker/datePicker.utils.ts","../../src/components/forms/date-picker/calendar/Calendar.tsx","../../src/components/forms/date-picker/DatePicker.styles.ts","../../src/components/forms/date-picker/DatePicker.tsx","../../src/components/layout/card/Card.styles.ts","../../src/components/layout/card/Card.tsx","../../src/components/layout/grid/Grid.styles.ts","../../src/components/layout/grid/Grid.tsx","../../src/components/layout/separator/Separator.styles.ts","../../src/components/layout/separator/Separator.tsx","../../src/components/layout/page-construction/page-section/PageSection.styles.ts","../../src/components/layout/page-construction/page-section/PageSection.tsx","../../src/components/layout/page-construction/page/Page.styles.ts","../../src/components/layout/page-construction/page/Page.tsx","../../src/components/overlay/accordion/Accordion.styles.ts","../../src/components/overlay/accordion/Accordion.tsx","../../src/utils/ui/components/overlay/alert/getAlertPositionStyles.utils.ts","../../src/utils/ui/components/overlay/alert/getAlertVariantColors.utils.ts","../../src/components/overlay/alert/Alert.styles.ts","../../src/utils/ui/components/overlay/alert/getAlertIcon.utils.tsx","../../src/components/overlay/alert/Alert.tsx","../../src/components/overlay/modal/Modal.styles.ts","../../src/components/overlay/modal/Modal.tsx","../../src/components/navigation/drawer-item/DrawerItem.styles.ts","../../src/components/navigation/drawer-item/DrawerItem.tsx","../../src/components/navigation/breadcrumb/Breadcrumb.styles.ts","../../src/components/navigation/breadcrumb/BreadcrumbEllipsis/BreadcrumbEllipsis.styles.ts","../../src/components/navigation/breadcrumb/BreadcrumbEllipsis/BreadcrumbEllipsis.tsx","../../src/components/navigation/breadcrumb/BreadcrumbSeparator/BreadcrumbSeparator.tsx","../../src/utils/ui/components/navigation/breadcrumb/insertSeparators.utils.tsx","../../src/utils/ui/components/navigation/breadcrumb/buildBreadcrumbChildren.utils.tsx","../../src/utils/ui/components/navigation/breadcrumb/flattenChildren.utils.ts","../../src/utils/ui/components/navigation/breadcrumb/isSeparator.utils.ts","../../src/components/navigation/breadcrumb/Breadcrumb.tsx","../../src/components/navigation/breadcrumb/BreadcrumbLink/BreadcrumbLink.styles.ts","../../src/components/navigation/breadcrumb/BreadcrumbLink/BreadcrumbLink.tsx","../../src/components/navigation/breadcrumb/BreadcrumbPage/BreadcrumbPage.styles.ts","../../src/components/navigation/breadcrumb/BreadcrumbPage/BreadcrumbPage.tsx","../../src/components/navigation/tabs/Tabs.styles.ts","../../src/components/navigation/tabs/Tabs.tsx","../../src/components/navigation/tabs/tab-item/TabItem.styles.ts","../../src/components/navigation/tabs/tab-item/TabItem.tsx","../../src/components/navigation/pagination/Pagination.styles.ts","../../src/components/navigation/pagination/Pagination.tsx","../../src/hooks/useAlert.tsx"],"sourcesContent":["import { Theme, createStyles } from '@aurora-ds/theme'\r\n\r\nexport const ICON_STYLES = createStyles((theme) => ({\r\n root: (\r\n size?: keyof Theme['fontSize'],\r\n color?: keyof Theme['colors'],\r\n backgroundColor?: keyof Theme['colors'],\r\n padding?: keyof Theme['spacing'],\r\n borderRadius?: keyof Theme['radius']\r\n ) => ({\r\n boxSizing: 'content-box',\r\n display: 'flex',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n overflow: 'hidden',\r\n transition: 'color 150ms ease-in-out',\r\n flexShrink: 0,\r\n lineHeight: 0,\r\n height: theme.fontSize[size ?? 'md'],\r\n width: theme.fontSize[size ?? 'md'],\r\n minWidth: theme.fontSize[size ?? 'md'],\r\n minHeight: theme.fontSize[size ?? 'md'],\r\n color: color ? theme.colors[color] : 'inherit',\r\n backgroundColor: backgroundColor ? theme.colors[backgroundColor] : undefined,\r\n padding: padding ? theme.spacing[padding] : 0,\r\n borderRadius: theme.radius[borderRadius ?? 'md'],\r\n }),\r\n}))\r\n","import { Children, cloneElement, FC, isValidElement, ReactElement } from 'react'\r\n\r\nimport { IconProps } from '@components/foundation/icon/Icon.props.ts'\r\nimport { ICON_STYLES } from '@components/foundation/icon/Icon.styles.ts'\r\n\r\n/**\r\n * Icon component - Wrapper for SVG icons with theme-aware styling\r\n *\r\n * **Features:**\r\n * - Theme-aware sizing via font sizes\r\n * - Color and fill support from theme\r\n * - Optional background with padding and border radius\r\n * - Transition animation on color changes\r\n *\r\n * **Usage:**\r\n * ```tsx\r\n * import { SomeIcon } from 'some-icon-library'\r\n *\r\n * <Icon size=\"md\" color=\"primary\">\r\n * <SomeIcon />\r\n * </Icon>\r\n * ```\r\n *\r\n * **With background:**\r\n * ```tsx\r\n * <Icon\r\n * size=\"lg\"\r\n * color=\"onPrimary\"\r\n * backgroundColor=\"primary\"\r\n * padding=\"sm\"\r\n * borderRadius=\"full\"\r\n * >\r\n * <SomeIcon />\r\n * </Icon>\r\n * ```\r\n */\r\nconst Icon: FC<IconProps> = ({\r\n children,\r\n size,\r\n color,\r\n backgroundColor,\r\n padding,\r\n borderRadius,\r\n ariaLabel,\r\n ariaLabelledBy,\r\n ariaDescribedBy,\r\n role,\r\n tabIndex,\r\n}) => {\r\n // Clone child element to apply width and height\r\n const child = Children.only(children)\r\n const styledChild = isValidElement(child)\r\n ? cloneElement(child as ReactElement<{ width?: string; height?: string }>, {\r\n width: '100%',\r\n height: '100%',\r\n })\r\n : child\r\n\r\n return (\r\n <div\r\n className={ICON_STYLES.root(size, color, backgroundColor, padding, borderRadius)}\r\n aria-label={ariaLabel}\r\n aria-labelledby={ariaLabelledBy}\r\n aria-describedby={ariaDescribedBy}\r\n role={role}\r\n tabIndex={tabIndex}\r\n >\r\n {styledChild}\r\n </div>\r\n )\r\n}\r\n\r\nIcon.displayName = 'Icon'\r\n\r\nexport default Icon\r\n","import { Theme } from '@aurora-ds/theme'\r\n\r\nimport { TextVariants, TextVariantStyle } from '@interfaces/text.types.ts'\r\n\r\n/**\r\n * Get text variant styles based on the theme\r\n * @param theme\r\n */\r\nexport const getTextVariantStyles = (theme: Theme): Record<TextVariants, TextVariantStyle> => ({\r\n h1: {\r\n tag: 'h1',\r\n fontSize: theme.fontSize.xl,\r\n fontWeight: theme.fontWeight.bold,\r\n lineHeight: theme.lineHeight.tight,\r\n },\r\n h2: {\r\n tag: 'h2',\r\n fontSize: theme.fontSize.lg,\r\n fontWeight: theme.fontWeight.bold,\r\n lineHeight: theme.lineHeight.tight,\r\n },\r\n h3: {\r\n tag: 'h3',\r\n fontSize: theme.fontSize.md,\r\n fontWeight: theme.fontWeight.semibold,\r\n lineHeight: theme.lineHeight.normal,\r\n },\r\n h4: {\r\n tag: 'h4',\r\n fontSize: theme.fontSize.md,\r\n fontWeight: theme.fontWeight.semibold,\r\n lineHeight: theme.lineHeight.normal,\r\n },\r\n h5: {\r\n tag: 'h5',\r\n fontSize: theme.fontSize.sm,\r\n fontWeight: theme.fontWeight.medium,\r\n lineHeight: theme.lineHeight.normal,\r\n },\r\n h6: {\r\n tag: 'h6',\r\n fontSize: theme.fontSize.sm,\r\n fontWeight: theme.fontWeight.medium,\r\n lineHeight: theme.lineHeight.normal,\r\n },\r\n p: {\r\n tag: 'p',\r\n fontSize: theme.fontSize.sm,\r\n fontWeight: theme.fontWeight.regular,\r\n lineHeight: theme.lineHeight.relaxed,\r\n },\r\n span: {\r\n tag: 'span',\r\n fontSize: theme.fontSize.sm,\r\n fontWeight: theme.fontWeight.regular,\r\n lineHeight: theme.lineHeight.normal,\r\n },\r\n label: {\r\n tag: 'label',\r\n fontSize: theme.fontSize.sm,\r\n fontWeight: theme.fontWeight.medium,\r\n lineHeight: theme.lineHeight.normal,\r\n },\r\n})\r\n","export const getTruncateTextStyles = (maxLines: number) => (\r\n maxLines === 1\r\n ? {\r\n whiteSpace: 'nowrap' as const,\r\n overflow: 'hidden',\r\n textOverflow: 'ellipsis',\r\n }\r\n : {\r\n overflow: 'hidden',\r\n textOverflow: 'ellipsis',\r\n display: '-webkit-box',\r\n WebkitLineClamp: maxLines,\r\n WebkitBoxOrient: 'vertical' as const,\r\n // Improve wrapping behavior for multi-line clamp compatibility\r\n whiteSpace: 'normal' as const,\r\n overflowWrap: 'break-word' as const,\r\n wordBreak: 'break-word' as const,\r\n lineClamp: maxLines,\r\n }\r\n)\r\n","import { createStyles } from '@aurora-ds/theme'\r\n\r\nimport { TextStyleParams } from '@components/foundation/text/Text.props.ts'\r\nimport { getTextVariantStyles } from '@utils/ui/components/foundation/text/getTextVariantStyles.utils.ts'\r\nimport { getTruncateTextStyles } from '@utils/ui/components/foundation/text/getTruncateTextStyles.utils.ts'\r\n\r\nexport const TEXT_STYLES = createStyles((theme) => {\r\n const variantStyles = getTextVariantStyles(theme)\r\n\r\n return {\r\n root: ({\r\n variant = 'span',\r\n color,\r\n fontSize,\r\n fontFamily,\r\n maxLines,\r\n underline,\r\n preserveWhitespace,\r\n }: TextStyleParams) => ({\r\n margin: 0,\r\n fontSize: fontSize ? theme.fontSize[fontSize] : variantStyles[variant].fontSize,\r\n fontWeight: variantStyles[variant].fontWeight,\r\n lineHeight: variantStyles[variant].lineHeight,\r\n color: color ? theme.colors[color] : 'inherit',\r\n cursor: 'inherit',\r\n fontFamily,\r\n ...(preserveWhitespace && { whiteSpace: 'pre-wrap' }),\r\n ...(underline && {\r\n textDecoration: 'underline',\r\n textUnderlineOffset: '3px',\r\n }),\r\n ...(maxLines && getTruncateTextStyles(maxLines)),\r\n }),\r\n }\r\n})\r\n","import { createElement, Fragment, ReactNode } from 'react'\r\n\r\n/**\r\n * Parses text content and converts **bold** syntax to <strong> elements\r\n * @param children - The content to parse (string or ReactNode)\r\n * @returns Parsed content with bold text wrapped in <strong> elements\r\n */\r\nexport const parseTextWithBold = (children: ReactNode): ReactNode => {\r\n if (typeof children !== 'string' || !children.includes('**')) {\r\n return children\r\n }\r\n\r\n const boldPattern = /\\*\\*(.+?)\\*\\*/g\r\n const parts: ReactNode[] = []\r\n let lastIndex = 0\r\n let match: RegExpExecArray | null\r\n\r\n while ((match = boldPattern.exec(children)) !== null) {\r\n if (match.index > lastIndex) {\r\n parts.push(children.slice(lastIndex, match.index))\r\n }\r\n\r\n parts.push(\r\n createElement('strong', { key: match.index }, match[1])\r\n )\r\n\r\n lastIndex = match.index + match[0].length\r\n }\r\n\r\n if (parts.length === 0) {\r\n return children\r\n }\r\n\r\n if (lastIndex < children.length) {\r\n parts.push(children.slice(lastIndex))\r\n }\r\n\r\n return createElement(Fragment, null, ...parts)\r\n}\r\n","import { useTheme } from '@aurora-ds/theme'\r\nimport { createElement, FC, useMemo } from 'react'\r\n\r\nimport { TextProps } from '@components/foundation/text/Text.props.ts'\r\nimport { TEXT_STYLES } from '@components/foundation/text/Text.styles.ts'\r\nimport { getTextVariantStyles } from '@utils/ui/components/foundation/text/getTextVariantStyles.utils.ts'\r\nimport { getTruncateTextStyles } from '@utils/ui/components/foundation/text/getTruncateTextStyles.utils.ts'\r\nimport { parseTextWithBold } from '@utils/ui/components/foundation/text/parseTextWithBold.utils.ts'\r\n\r\n/**\r\n * Text component - Renders semantic HTML elements based on variant\r\n *\r\n * **Variants:**\r\n * - `h1-h6`: Heading elements with appropriate styling\r\n * - `p`: Paragraph element with relaxed line height\r\n * - `span`: Inline text element (default)\r\n * - `label`: Label element with medium font weight\r\n *\r\n * **Features:**\r\n * - Automatic HTML tag selection based on variant\r\n * - Theme-aware colors\r\n * - Text truncation with `maxLines`\r\n * - Underline support\r\n * - Preserve whitespace with `preserveWhitespace` prop\r\n * - Bold text with **double asterisks** syntax\r\n */\r\nconst Text: FC<TextProps> = ({\r\n children,\r\n variant = 'span',\r\n color,\r\n fontSize,\r\n fontFamily,\r\n maxLines,\r\n underline,\r\n preserveWhitespace,\r\n ariaLabel,\r\n ariaLabelledBy,\r\n ariaDescribedBy,\r\n role,\r\n tabIndex,\r\n}) => {\r\n const theme = useTheme()\r\n const variantStyles = useMemo(() => getTextVariantStyles(theme), [theme])\r\n const tag = variantStyles[variant].tag\r\n const parsedChildren = useMemo(() => parseTextWithBold(children), [children])\r\n\r\n // Force inline truncate styles when needed (fix for multi-line clamp not applied in some envs)\r\n const truncateStyles = maxLines ? getTruncateTextStyles(maxLines) : undefined\r\n\r\n return createElement(\r\n tag,\r\n {\r\n className: TEXT_STYLES.root({ variant, color, fontSize, fontFamily, maxLines, underline, preserveWhitespace }),\r\n style: truncateStyles,\r\n 'aria-label': ariaLabel,\r\n 'aria-labelledby': ariaLabelledBy,\r\n 'aria-describedby': ariaDescribedBy,\r\n role,\r\n tabIndex,\r\n },\r\n parsedChildren\r\n )\r\n}\r\n\r\nText.displayName = 'Text'\r\n\r\nexport default Text\r\n","import { Theme } from '@aurora-ds/theme'\n\nimport { ChipStyleParams } from '@components/data-display/chip/Chip.props.ts'\n\nexport const getChipColorStyles = (\n theme: Theme,\n color: ChipStyleParams['color'],\n variant: ChipStyleParams['variant'],\n disabled: ChipStyleParams['disabled']\n) => {\n if (disabled) {\n return {\n filled: {\n backgroundColor: theme.colors.disabled,\n color: theme.colors.disabledText,\n borderColor: 'transparent',\n },\n outlined: {\n backgroundColor: 'transparent',\n color: theme.colors.disabledText,\n borderColor: theme.colors.disabled,\n },\n }[variant]\n }\n\n const colorMap = {\n default: {\n filled: {\n backgroundColor: theme.colors.surfaceHover,\n color: theme.colors.text,\n borderColor: 'transparent',\n },\n outlined: {\n backgroundColor: 'transparent',\n color: theme.colors.text,\n borderColor: theme.colors.border,\n },\n },\n primary: {\n filled: {\n backgroundColor: theme.colors.primary,\n color: theme.colors.onPrimary,\n borderColor: 'transparent',\n },\n outlined: {\n backgroundColor: 'transparent',\n color: theme.colors.primary,\n borderColor: theme.colors.primary,\n },\n },\n success: {\n filled: {\n backgroundColor: theme.colors.successSubtle,\n color: theme.colors.success,\n borderColor: 'transparent',\n },\n outlined: {\n backgroundColor: theme.colors.successSubtle,\n color: theme.colors.success,\n borderColor: theme.colors.success,\n },\n },\n warning: {\n filled: {\n backgroundColor: theme.colors.warningSubtle,\n color: theme.colors.warning,\n borderColor: 'transparent',\n },\n outlined: {\n backgroundColor: theme.colors.warningSubtle,\n color: theme.colors.warning,\n borderColor: theme.colors.warning,\n },\n },\n error: {\n filled: {\n backgroundColor: theme.colors.errorSubtle,\n color: theme.colors.error,\n borderColor: 'transparent',\n },\n outlined: {\n backgroundColor: theme.colors.errorSubtle,\n color: theme.colors.error,\n borderColor: theme.colors.error,\n },\n },\n info: {\n filled: {\n backgroundColor: theme.colors.infoSubtle,\n color: theme.colors.info,\n borderColor: 'transparent',\n },\n outlined: {\n backgroundColor: theme.colors.infoSubtle,\n color: theme.colors.info,\n borderColor: theme.colors.info,\n },\n },\n }\n return colorMap[color][variant]\n}\n","import { Theme } from '@aurora-ds/theme'\r\n\r\nimport { ChipStyleParams } from '@components/data-display/chip/Chip.props.ts'\r\n\r\n/**\r\n * Get chip size styles based on the theme, size and icon-only state\r\n * @param theme - Theme object\r\n * @param size - Chip size\r\n * @param isIconOnly - Whether the chip has only an icon (no label)\r\n */\r\nexport const getChipSizeStyles = (\r\n theme: Theme,\r\n size: ChipStyleParams['size'],\r\n isIconOnly: ChipStyleParams['isIconOnly']\r\n) => {\r\n const sizeMap = {\r\n '2xs': {\r\n iconOnly: { padding: theme.spacing.xs, fontSize: theme.fontSize['2xs'] },\r\n withLabel: { padding: `${theme.spacing.xs} ${theme.spacing.sm}`, fontSize: theme.fontSize['2xs'] },\r\n },\r\n xs: {\r\n iconOnly: { padding: theme.spacing.xs, fontSize: theme.fontSize.xs },\r\n withLabel: { padding: `${theme.spacing.xs} ${theme.spacing.sm}`, fontSize: theme.fontSize.xs },\r\n },\r\n sm: {\r\n iconOnly: { padding: theme.spacing.xs, fontSize: theme.fontSize.sm },\r\n withLabel: { padding: `${theme.spacing.xs} ${theme.spacing.sm}`, fontSize: theme.fontSize.sm },\r\n },\r\n md: {\r\n iconOnly: { padding: theme.spacing.sm, fontSize: theme.fontSize.md },\r\n withLabel: { padding: `${theme.spacing.sm} ${theme.spacing.md}`, fontSize: theme.fontSize.sm },\r\n },\r\n lg: {\r\n iconOnly: { padding: theme.spacing.md, fontSize: theme.fontSize.lg },\r\n withLabel: { padding: `${theme.spacing.sm} ${theme.spacing.lg}`, fontSize: theme.fontSize.md },\r\n },\r\n }\r\n\r\n return isIconOnly ? sizeMap[size].iconOnly : sizeMap[size].withLabel\r\n}\r\n","import { createStyles } from '@aurora-ds/theme'\r\n\r\nimport { ChipStyleParams } from '@components/data-display/chip/Chip.props'\r\nimport { getChipColorStyles } from '@utils/ui/components/data-display/chip/getChipColorStyles.utils'\r\nimport { getChipSizeStyles } from '@utils/ui/components/data-display/chip/getChipSizeStyles.utils'\r\n\r\nexport const CHIP_STYLES = createStyles((theme) => ({\r\n root: ({ variant, color, size, isIconOnly, disabled, gap, radius }: ChipStyleParams) => {\r\n const colorStyles = getChipColorStyles(theme, color, variant, disabled)\r\n const sizeStyles = getChipSizeStyles(theme, size, isIconOnly)\r\n\r\n return {\r\n display: 'flex',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n gap: gap ? theme.spacing[gap] : theme.spacing.sm,\r\n borderRadius: radius ? theme.radius[radius] : theme.radius.md,\r\n border: variant === 'outlined' ? '1px solid' : 'none',\r\n aspectRatio: isIconOnly ? 1 : undefined,\r\n height: 'fit-content',\r\n width: 'fit-content',\r\n fontFamily: 'inherit',\r\n fontWeight: theme.fontWeight.medium,\r\n whiteSpace: 'nowrap',\r\n boxSizing: 'border-box',\r\n ...sizeStyles,\r\n ...colorStyles,\r\n }\r\n },\r\n}))\r\n","import { BaseFontSize } from '@aurora-ds/theme'\n\nimport { ChipStyleParams } from '@components/data-display/chip/Chip.props.ts'\n\n/**\n * Get chip content size based on the chip size\n * @param size\n * @constructor\n */\nexport const getChipContentSize = (\n size: ChipStyleParams['size'],\n): keyof BaseFontSize => {\n const sizeMap = {\n '2xs': '2xs',\n xs: 'xs',\n sm: 'sm',\n md: 'sm',\n lg: 'md',\n }\n\n return sizeMap[size] as keyof BaseFontSize\n}\n","import { FC } from 'react'\n\nimport { ChipProps } from '@components/data-display/chip/Chip.props'\nimport { CHIP_STYLES } from '@components/data-display/chip/Chip.styles'\nimport { Icon } from '@components/foundation/icon'\nimport Text from '@components/foundation/text/Text.tsx'\nimport { getChipContentSize } from '@utils/ui/components/data-display/chip/getChipContentSize.utils.ts'\n\n/**\n * Chip component\n *\n * A compact element for displaying information, tags, or actions.\n *\n * **Variants:**\n * - `filled`: Solid background (default)\n * - `outlined`: Border only\n *\n * **Colors:**\n * - `default`, `primary`, `success`, `warning`, `error`, `info`\n */\nconst Chip: FC<ChipProps> = ({\n label,\n icon,\n variant = 'filled',\n color = 'default',\n size = 'md',\n gap,\n radius,\n disabled = false,\n ariaLabel,\n ariaLabelledBy,\n ariaDescribedBy,\n role,\n tabIndex,\n}) => {\n const isIconOnly = Boolean(icon) && !label\n\n return (\n <span\n className={CHIP_STYLES.root({\n variant,\n color,\n size,\n isIconOnly,\n disabled,\n gap,\n radius,\n })}\n aria-label={ariaLabel}\n aria-labelledby={ariaLabelledBy}\n aria-describedby={ariaDescribedBy}\n role={role}\n tabIndex={tabIndex}\n >\n {icon && (\n <Icon\n size={getChipContentSize(size)}\n >\n {icon}\n </Icon>\n )}\n {label && (\n <Text\n variant={'label'}\n fontSize={getChipContentSize(size)}\n >\n {label}\n </Text>\n )}\n </span>\n )\n}\n\nChip.displayName = 'Chip'\n\nexport default Chip\n","export const BUTTON_SIZE = 36\r\nexport const ALERT_MAX_WIDTH = 320\r\nexport const MENU_ITEM_SIZE = 32\r\nexport const DRAWER_ITEM_HEIGHT = 32\r\nexport const DEFAULT_TRANSITION_DURATION_MS = 150\r\n","import { Theme } from '@aurora-ds/theme'\r\n\r\nimport { BUTTON_SIZE } from '@constants/globalConstants.ts'\r\nimport { AvatarSize } from '@interfaces/avatar.types.ts'\r\n\r\n/**\r\n * Get avatar sizes configuration based on the theme\r\n * @param theme\r\n */\r\nexport const getAvatarSizes = (theme: Theme): Record<AvatarSize, { size: number; fontSize: keyof Theme['fontSize']; overlap: string }> => ({\r\n small: { size: BUTTON_SIZE - 8, fontSize: 'xs', overlap: `-${theme.spacing.md}` },\r\n medium: { size: BUTTON_SIZE, fontSize: 'sm', overlap: `-${theme.spacing.md}` },\r\n large: { size: BUTTON_SIZE + 8, fontSize: 'sm', overlap: `-${theme.spacing.lg}` },\r\n})\r\n","import { createStyles } from '@aurora-ds/theme'\r\n\r\nimport { AvatarStyleParams } from '@components/data-display/avatar/Avatar.props.ts'\r\nimport { getAvatarSizes } from '@utils/ui/components/data-display/avatar/getAvatarSizes.utils.ts'\r\n\r\n/**\r\n * Avatar styles using createStyles from @aurora-ds/theme\r\n */\r\nexport const AVATAR_STYLES = createStyles((theme) => {\r\n const AVATAR_SIZES = getAvatarSizes(theme)\r\n\r\n return {\r\n root: ({ hasImage = false, clickable = false, size = 'medium', color, borderColor, backgroundColor }: AvatarStyleParams & { clickable?: boolean }) => {\r\n const sizeConfig = AVATAR_SIZES[size]\r\n return {\r\n width: sizeConfig.size,\r\n height: sizeConfig.size,\r\n borderRadius: theme.radius.full,\r\n backgroundColor: backgroundColor || (hasImage ? 'transparent' : theme.colors.surfaceHover),\r\n display: 'flex',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n cursor: clickable ? 'pointer' : 'default',\r\n border: hasImage && !borderColor ? 'none' : `1px solid ${borderColor || theme.colors.border}`,\r\n overflow: 'hidden',\r\n flexShrink: 0,\r\n color: color || theme.colors.textSecondary,\r\n fontWeight: theme.fontWeight.medium,\r\n }\r\n },\r\n image: {\r\n width: '100%',\r\n height: '100%',\r\n objectFit: 'cover',\r\n },\r\n }\r\n})\r\n","import { useTheme } from '@aurora-ds/theme'\r\nimport { FC } from 'react'\r\n\r\nimport { AvatarProps } from '@components/data-display/avatar/Avatar.props.ts'\r\nimport { AVATAR_STYLES } from '@components/data-display/avatar/Avatar.styles.ts'\r\nimport Text from '@components/foundation/text/Text.tsx'\r\nimport { getAvatarSizes } from '@utils/ui/components/data-display/avatar/getAvatarSizes.utils.ts'\r\n\r\n/**\r\n * Avatar component\r\n *\r\n * Displays a user's avatar with optional image or fallback text.\r\n */\r\nconst Avatar: FC<AvatarProps> = ({\r\n image,\r\n label,\r\n onClick,\r\n size = 'medium',\r\n color,\r\n borderColor,\r\n backgroundColor,\r\n}) => {\r\n // hooks\r\n const theme = useTheme()\r\n\r\n // variables\r\n const AVATAR_SIZES = getAvatarSizes(theme)\r\n const hasImage = !!image\r\n const clickable = !!onClick\r\n\r\n return (\r\n <div\r\n className={AVATAR_STYLES.root({ hasImage, clickable, size, color, borderColor, backgroundColor })}\r\n onClick={(event) => {\r\n if (onClick) {\r\n onClick(event)\r\n }\r\n }}\r\n >\r\n {hasImage ? (\r\n <img\r\n src={image}\r\n alt={label || 'Avatar'}\r\n className={AVATAR_STYLES.image}\r\n />\r\n ) : (\r\n <Text\r\n variant={'label'}\r\n fontSize={AVATAR_SIZES[size].fontSize}\r\n >\r\n {label || '?'}\r\n </Text>\r\n )}\r\n </div>\r\n )\r\n}\r\n\r\nAvatar.displayName = 'Avatar'\r\n\r\nexport default Avatar\r\n","import { createStyles } from '@aurora-ds/theme'\n\nimport { AvatarSize } from '@/interfaces'\nimport { getAvatarSizes } from '@utils/ui/components/data-display/avatar/getAvatarSizes.utils.ts'\n\n/**\n * AvatarGroup styles using createStyles from @aurora-ds/theme\n */\nexport const AVATAR_GROUP_STYLES = createStyles((theme) => {\n const AVATAR_SIZES = getAvatarSizes(theme)\n\n return {\n root: {\n display: 'flex',\n alignItems: 'center',\n },\n child: ({ size = 'medium' }: { size?: AvatarSize }) => ({\n marginLeft: AVATAR_SIZES[size].overlap,\n }),\n firstChild: {\n marginLeft: '0',\n },\n more: ({ size = 'medium' }: { size?: AvatarSize }) => {\n const sizeConfig = AVATAR_SIZES[size]\n return {\n width: sizeConfig.size,\n height: sizeConfig.size,\n borderRadius: theme.radius.full,\n backgroundColor: theme.colors.surfaceHover,\n border: `1px solid ${theme.colors.border}`,\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n color: theme.colors.textSecondary,\n fontSize: sizeConfig.fontSize,\n fontWeight: theme.fontWeight.medium,\n flexShrink: 0,\n marginLeft: AVATAR_SIZES[size].overlap,\n }\n },\n }\n})\n","import { useTheme } from '@aurora-ds/theme'\nimport { FC, Children } from 'react'\n\nimport { AvatarGroupProps } from '@/components'\nimport { AVATAR_GROUP_STYLES } from '@components/data-display/avatar/avatar-group/AvatarGroup.styles.ts'\nimport Text from '@components/foundation/text/Text.tsx'\nimport { getAvatarSizes } from '@utils/ui/components/data-display/avatar/getAvatarSizes.utils.ts'\n\n/**\n * AvatarGroup component\n *\n * Groups multiple avatars with overlapping display and optional limit.\n */\nconst AvatarGroup: FC<AvatarGroupProps> = ({ children, limit, size = 'medium' }) => {\n // hooks\n const theme = useTheme()\n\n // variables\n const AVATAR_SIZES = getAvatarSizes(theme)\n const childArray = Children.toArray(children)\n const displayedChildren = limit ? childArray.slice(0, limit) : childArray\n const moreCount = limit && childArray.length > limit ? childArray.length - limit : 0\n\n return (\n <div className={AVATAR_GROUP_STYLES.root}>\n {displayedChildren.map((child, index) => (\n <div\n key={index}\n className={index === 0 ? AVATAR_GROUP_STYLES.firstChild : AVATAR_GROUP_STYLES.child({ size })}\n >\n {child}\n </div>\n ))}\n {moreCount > 0 && (\n <div className={AVATAR_GROUP_STYLES.more({ size })}>\n <Text\n variant={'label'}\n fontSize={AVATAR_SIZES[size].fontSize}\n >\n +\n {moreCount}\n </Text>\n </div>\n )}\n </div>\n )\n}\n\nAvatarGroup.displayName = 'AvatarGroup'\n\nexport default AvatarGroup\n","import { keyframes } from '@aurora-ds/theme'\r\n\r\nexport const shimmerAnimation = keyframes({\r\n '0%': {\r\n backgroundPosition: '-200% 0',\r\n },\r\n '100%': {\r\n backgroundPosition: '200% 0',\r\n },\r\n})\r\n","import { CSSProperties, createStyles, Theme } from '@aurora-ds/theme'\r\n\r\nimport { shimmerAnimation } from '@constants/animations'\r\n\r\nexport const SKELETON_STYLES = createStyles((theme) => ({\r\n root: (width?: CSSProperties['width'], height?: CSSProperties['height'], borderRadius?: keyof Theme['radius']) => ({\r\n width,\r\n height,\r\n borderRadius: borderRadius ? theme.radius[borderRadius] : theme.radius.md,\r\n background: `linear-gradient(90deg, ${theme.colors.surfaceActive} 25%, ${theme.colors.surfaceHover} 50%, ${theme.colors.surfaceActive} 75%)`,\r\n backgroundSize: '200% 100%',\r\n animation: `${shimmerAnimation} 1.2s ease-in-out infinite`,\r\n }),\r\n}))\r\n","import { FC } from 'react'\r\n\r\nimport { SkeletonProps } from '@components/data-display/skeleton/Skeleton.props'\r\nimport { SKELETON_STYLES } from '@components/data-display/skeleton/Skeleton.styles'\r\n\r\nconst Skeleton: FC<SkeletonProps> = ({\r\n width,\r\n height,\r\n borderRadius\r\n}) => {\r\n return (\r\n <div\r\n className={SKELETON_STYLES.root(width, height, borderRadius)}\r\n />\r\n )\r\n}\r\n\r\nSkeleton.displayName = 'Skeleton'\r\n\r\nexport default Skeleton\r\n","import { Theme } from '@aurora-ds/theme'\r\n\r\nimport { BUTTON_SIZE } from '@constants/globalConstants.ts'\r\nimport { IconButtonSizes } from '@interfaces/button.types.ts'\r\n\r\ntype ButtonSizeConfig = {\r\n height: number\r\n padding: {\r\n vertical: keyof Theme['spacing']\r\n horizontal: keyof Theme['spacing']\r\n }\r\n fontSize: keyof Theme['fontSize']\r\n}\r\n\r\nexport const getButtonSizeStyles = (): Record<IconButtonSizes, ButtonSizeConfig> => ({\r\n small: {\r\n height: BUTTON_SIZE - 8,\r\n padding: {\r\n vertical: 'xs',\r\n horizontal: 'sm'\r\n },\r\n fontSize: 'sm'\r\n },\r\n medium: {\r\n height: BUTTON_SIZE,\r\n padding: {\r\n vertical: 'sm',\r\n horizontal: 'md'\r\n },\r\n fontSize: 'sm'\r\n },\r\n large: {\r\n height: BUTTON_SIZE + 8,\r\n padding: {\r\n vertical: 'sm',\r\n horizontal: 'lg'\r\n },\r\n fontSize: 'md'\r\n }\r\n})\r\n","import { colors, Theme } from '@aurora-ds/theme'\r\n\r\nimport { ButtonVariants, ButtonVariantStyle } from '@interfaces/button.types.ts'\r\n\r\n/**\r\n * Get button variant styles based on the theme\r\n * @param theme\r\n */\r\nexport const getButtonVariantStyles = (theme: Theme): Record<ButtonVariants, ButtonVariantStyle> => {\r\n // Shared base styles\r\n const transparentBase = {\r\n backgroundColor: colors.transparent,\r\n color: theme.colors.primary,\r\n }\r\n\r\n const surfaceStates = {\r\n hover: { backgroundColor: theme.colors.surfaceHover },\r\n pressed: { backgroundColor: theme.colors.surfaceActive },\r\n }\r\n\r\n const baseDisabled = {\r\n color: theme.colors.disabledText,\r\n cursor: 'not-allowed',\r\n opacity: theme.opacity.high\r\n }\r\n\r\n return {\r\n contained: {\r\n default: {\r\n backgroundColor: theme.colors.primary,\r\n color: theme.colors.onPrimary,\r\n border: 'none',\r\n },\r\n hover: { backgroundColor: theme.colors.primaryHover },\r\n pressed: { backgroundColor: theme.colors.primaryActive },\r\n disabled: { ...baseDisabled, backgroundColor: theme.colors.disabled },\r\n textColor: 'onPrimary',\r\n },\r\n outlined: {\r\n default: {\r\n ...transparentBase,\r\n border: `1px solid ${theme.colors.primary}`,\r\n },\r\n ...surfaceStates,\r\n disabled: { ...baseDisabled, backgroundColor: 'transparent', borderColor: theme.colors.disabled },\r\n textColor: 'primary',\r\n },\r\n text: {\r\n default: { ...transparentBase, border: 'none' },\r\n ...surfaceStates,\r\n disabled: { ...baseDisabled, backgroundColor: 'transparent' },\r\n textColor: 'primary',\r\n },\r\n destructive: {\r\n default: {\r\n backgroundColor: theme.colors.error,\r\n color: theme.colors.onError,\r\n border: 'none',\r\n },\r\n hover: { backgroundColor: theme.colors.errorHover },\r\n pressed: { backgroundColor: theme.colors.error },\r\n disabled: { ...baseDisabled, backgroundColor: theme.colors.disabled },\r\n textColor: 'onError',\r\n },\r\n link: {\r\n default: { ...transparentBase, border: 'none', textDecoration: 'underline', textDecorationColor: 'transparent', textUnderlineOffset: '3px' },\r\n hover: { backgroundColor: 'transparent', textDecorationColor: 'currentColor' },\r\n pressed: { backgroundColor: 'transparent', textDecorationColor: 'currentColor', color: theme.colors.linkActive },\r\n disabled: { ...baseDisabled, backgroundColor: 'transparent', textDecoration: 'none' },\r\n textColor: 'link',\r\n },\r\n }\r\n}\r\n","import { createStyles } from '@aurora-ds/theme'\r\n\r\nimport { ButtonStyleParams } from '@components/actions/button/Button.props.ts'\r\nimport { getButtonSizeStyles } from '@utils/ui/components/actions/button/getButtonSizeStyles.utils.ts'\r\nimport { getButtonVariantStyles } from '@utils/ui/components/actions/button/getButtonVariantStyles.utils.ts'\r\n\r\n/**\r\n * Button styles using createStyles from @aurora-ds/theme\r\n *\r\n * Override via className with createStyles:\r\n * ```tsx\r\n * const myStyles = createStyles((theme) => ({\r\n * custom: {\r\n * backgroundColor: theme.colors.accent,\r\n * ':hover': { backgroundColor: theme.colors.accentHover }\r\n * }\r\n * }))\r\n * <Button className={myStyles.custom} label=\"Custom\" />\r\n * ```\r\n */\r\nexport const BUTTON_STYLES = createStyles((theme) => {\r\n const variantStyles = getButtonVariantStyles(theme)\r\n const sizeStyles = getButtonSizeStyles()\r\n\r\n return {\r\n root: ({\r\n variant = 'contained',\r\n active = false,\r\n textColor,\r\n backgroundColor,\r\n hoverBackgroundColor,\r\n activeBackgroundColor,\r\n size = 'medium'\r\n }: ButtonStyleParams) => {\r\n const sizeConfig = sizeStyles[size]\r\n const overrides = textColor ? {\r\n ...(variant !== 'contained' && { color: theme.colors[textColor] }),\r\n ...(variant === 'outlined' && { border: `1px solid ${theme.colors[textColor]}` }),\r\n } : {}\r\n const backgroundOverride = backgroundColor ? { backgroundColor: theme.colors[backgroundColor] } : {}\r\n const hoverBackgroundOverride = hoverBackgroundColor ? { backgroundColor: theme.colors[hoverBackgroundColor] } : {}\r\n const activeBackgroundOverride = activeBackgroundColor ? { backgroundColor: theme.colors[activeBackgroundColor] } : {}\r\n return {\r\n display: 'inline-flex',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n boxSizing: 'border-box',\r\n gap: theme.spacing.sm,\r\n padding: `${theme.spacing[sizeConfig.padding.vertical]} ${theme.spacing[sizeConfig.padding.horizontal]}`,\r\n borderRadius: theme.radius.md,\r\n cursor: 'pointer',\r\n transition: `background-color ${theme.transition.fast}, color ${theme.transition.fast}, text-decoration-color ${theme.transition.fast}`,\r\n minHeight: sizeConfig.height,\r\n maxHeight: sizeConfig.height,\r\n fontFamily: 'inherit',\r\n ...variantStyles[variant].default,\r\n ...(active && variantStyles[variant].pressed),\r\n ':hover': {\r\n ...variantStyles[variant].hover,\r\n ...hoverBackgroundOverride,\r\n },\r\n ':active': {\r\n ...variantStyles[variant].pressed,\r\n ...activeBackgroundOverride,\r\n },\r\n ':disabled': variantStyles[variant].disabled,\r\n ...overrides,\r\n ...backgroundOverride,\r\n }\r\n },\r\n }\r\n})\r\n","import { useTheme } from '@aurora-ds/theme'\r\nimport { FC } from 'react'\r\n\r\nimport { ButtonProps } from '@components/actions/button/Button.props.ts'\r\nimport { BUTTON_STYLES } from '@components/actions/button/Button.styles.ts'\r\nimport { Icon } from '@components/foundation/icon'\r\nimport { Text } from '@components/foundation/text'\r\nimport { getButtonSizeStyles } from '@utils/ui/components/actions/button/getButtonSizeStyles.utils.ts'\r\nimport { getButtonVariantStyles } from '@utils/ui/components/actions/button/getButtonVariantStyles.utils.ts'\r\n\r\n/**\r\n * Button component\r\n *\r\n * **Variants:**\r\n * - `contained`: Solid background button (default)\r\n * - `outlined`: Border only button\r\n * - `text`: Text only button without background\r\n */\r\nconst Button: FC<ButtonProps> = ({\r\n label,\r\n startIcon,\r\n endIcon,\r\n variant = 'contained',\r\n active = false,\r\n onClick,\r\n disabled,\r\n type = 'button',\r\n textColor: customTextColor,\r\n backgroundColor,\r\n hoverBackgroundColor,\r\n activeBackgroundColor,\r\n size = 'medium',\r\n ariaLabel,\r\n ariaLabelledBy,\r\n ariaDescribedBy,\r\n role,\r\n tabIndex,\r\n}) => {\r\n const theme = useTheme()\r\n const variantStyles = getButtonVariantStyles(theme)\r\n const sizeStyles = getButtonSizeStyles()\r\n const textColor = disabled ? 'disabledText' : (customTextColor ?? variantStyles[variant].textColor)\r\n\r\n return (\r\n <button\r\n onClick={onClick}\r\n disabled={disabled}\r\n type={type}\r\n className={BUTTON_STYLES.root({ variant, active, textColor: customTextColor, backgroundColor, hoverBackgroundColor, activeBackgroundColor, size })}\r\n aria-label={ariaLabel}\r\n aria-labelledby={ariaLabelledBy}\r\n aria-describedby={ariaDescribedBy}\r\n role={role}\r\n tabIndex={tabIndex}\r\n >\r\n {startIcon && (\r\n <Icon color={textColor}>\r\n {startIcon}\r\n </Icon>\r\n )}\r\n <Text\r\n variant={'label'}\r\n color={textColor}\r\n fontSize={sizeStyles[size].fontSize}\r\n >\r\n {label}\r\n </Text>\r\n {endIcon && (\r\n <Icon color={textColor}>\r\n {endIcon}\r\n </Icon>\r\n )}\r\n </button>\r\n )\r\n}\r\n\r\nButton.displayName = 'Button'\r\n\r\nexport default Button\r\n","import { Theme } from '@aurora-ds/theme'\r\n\r\nimport { BUTTON_SIZE } from '@constants/globalConstants.ts'\r\nimport { IconButtonSizes } from '@interfaces/button.types.ts'\r\n\r\ntype IconButtonSizeConfig = {\r\n size: number\r\n padding: keyof Theme['spacing']\r\n iconSize: keyof Theme['fontSize']\r\n}\r\n\r\nexport const getIconButtonSizeStyles = (): Record<IconButtonSizes, IconButtonSizeConfig> => ({\r\n small: {\r\n size: BUTTON_SIZE - 8,\r\n padding: 'xs',\r\n iconSize: 'md'\r\n },\r\n medium: {\r\n size: BUTTON_SIZE,\r\n padding: 'sm',\r\n iconSize: 'lg'\r\n },\r\n large: {\r\n size: BUTTON_SIZE + 8,\r\n padding: 'sm',\r\n iconSize: 'xl'\r\n }\r\n})\r\n","import { createStyles } from '@aurora-ds/theme'\r\n\r\nimport { IconButtonStyleParams } from '@components/actions/icon-button/IconButton.props.ts'\r\nimport { getButtonVariantStyles } from '@utils/ui/components/actions/button/getButtonVariantStyles.utils.ts'\r\nimport { getIconButtonSizeStyles } from '@utils/ui/components/actions/icon-button/getIconButtonSizeStyles.utils.ts'\r\n\r\nexport const ICON_BUTTON_STYLES = createStyles((theme) => {\r\n const variantStyles = getButtonVariantStyles(theme)\r\n const sizeStyles = getIconButtonSizeStyles()\r\n\r\n return {\r\n root: ({\r\n variant = 'contained',\r\n active = false,\r\n size = 'medium',\r\n textColor,\r\n backgroundColor,\r\n hoverBackgroundColor,\r\n activeBackgroundColor\r\n }: IconButtonStyleParams) => {\r\n const sizeConfig = sizeStyles[size]\r\n const overrides = textColor ? {\r\n ...(variant !== 'contained' && { color: theme.colors[textColor] }),\r\n ...(variant === 'outlined' && { border: `1px solid ${theme.colors[textColor]}` }),\r\n } : {}\r\n const backgroundOverride = backgroundColor ? { backgroundColor: theme.colors[backgroundColor] } : {}\r\n const hoverBackgroundOverride = hoverBackgroundColor ? { backgroundColor: theme.colors[hoverBackgroundColor] } : {}\r\n const activeBackgroundOverride = activeBackgroundColor ? { backgroundColor: theme.colors[activeBackgroundColor] } : {}\r\n return {\r\n display: 'inline-flex',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n boxSizing: 'border-box',\r\n gap: theme.spacing.sm,\r\n padding: theme.spacing[sizeConfig.padding],\r\n borderRadius: theme.radius.md,\r\n cursor: 'pointer',\r\n transition: `background-color ${theme.transition.fast}, color ${theme.transition.fast}`,\r\n minHeight: sizeConfig.size,\r\n maxHeight: sizeConfig.size,\r\n minWidth: sizeConfig.size,\r\n maxWidth: sizeConfig.size,\r\n fontFamily: 'inherit',\r\n ...variantStyles[variant].default,\r\n ...(active && variantStyles[variant].pressed),\r\n ':hover': {\r\n ...variantStyles[variant].hover,\r\n ...hoverBackgroundOverride,\r\n },\r\n ':active': {\r\n ...variantStyles[variant].pressed,\r\n ...activeBackgroundOverride,\r\n },\r\n ':disabled': variantStyles[variant].disabled,\r\n ...overrides,\r\n ...backgroundOverride,\r\n }\r\n },\r\n }\r\n})\r\n","import { useTheme } from '@aurora-ds/theme'\r\nimport { FC } from 'react'\r\n\r\nimport { IconButtonProps } from '@components/actions/icon-button/IconButton.props.ts'\r\nimport { ICON_BUTTON_STYLES } from '@components/actions/icon-button/IconButton.styles.ts'\r\nimport Icon from '@components/foundation/icon/Icon.tsx'\r\nimport { getButtonVariantStyles } from '@utils/ui/components/actions/button/getButtonVariantStyles.utils.ts'\r\nimport { getIconButtonSizeStyles } from '@utils/ui/components/actions/icon-button/getIconButtonSizeStyles.utils.ts'\r\n\r\nconst IconButton: FC<IconButtonProps> = ({\r\n icon,\r\n variant = 'contained',\r\n active = false,\r\n type = 'button',\r\n onClick,\r\n disabled,\r\n textColor: customTextColor,\r\n backgroundColor,\r\n hoverBackgroundColor,\r\n activeBackgroundColor,\r\n size = 'medium',\r\n ariaLabel,\r\n ariaLabelledBy,\r\n ariaDescribedBy,\r\n role,\r\n tabIndex,\r\n}) => {\r\n const theme = useTheme()\r\n const variantStyles = getButtonVariantStyles(theme)\r\n const textColor = disabled ? 'disabledText' : (customTextColor ?? variantStyles[variant].textColor)\r\n const iconSize = getIconButtonSizeStyles()[size].iconSize\r\n\r\n return (\r\n <button\r\n onClick={onClick}\r\n disabled={disabled}\r\n type={type}\r\n className={ICON_BUTTON_STYLES.root({ variant, active, size, textColor: customTextColor, backgroundColor, hoverBackgroundColor, activeBackgroundColor })}\r\n aria-label={ariaLabel}\r\n aria-labelledby={ariaLabelledBy}\r\n aria-describedby={ariaDescribedBy}\r\n role={role}\r\n tabIndex={tabIndex}\r\n >\r\n <Icon\r\n color={textColor}\r\n size={iconSize}\r\n >\r\n {icon}\r\n </Icon>\r\n </button>\r\n )\r\n}\r\n\r\nIconButton.displayName = 'IconButton'\r\n\r\nexport default IconButton\r\n","import { createStyles } from '@aurora-ds/theme'\r\n\r\nexport const FORM_STYLES = createStyles(() => ({\r\n root: {\r\n display: 'contents',\r\n },\r\n}))\r\n","import { FC, FormEvent, memo, useCallback } from 'react'\r\n\r\nimport { FormProps } from '@components/forms/form/Form.props'\r\nimport { FORM_STYLES } from '@components/forms/form/Form.styles'\r\n\r\n/**\r\n * Form component - A transparent wrapper for form elements with automatic preventDefault handling\r\n */\r\nconst Form: FC<FormProps> = ({\r\n children,\r\n onSubmit,\r\n ariaLabel,\r\n}) => {\r\n const handleSubmit = useCallback((e: FormEvent) => {\r\n e.preventDefault()\r\n onSubmit?.(e)\r\n }, [onSubmit])\r\n\r\n return (\r\n <form\r\n onSubmit={handleSubmit}\r\n className={FORM_STYLES.root}\r\n aria-label={ariaLabel}\r\n >\r\n {children}\r\n </form>\r\n )\r\n}\r\n\r\nForm.displayName = 'Form'\r\n\r\nexport default memo(Form)\r\n","import { createStyles } from '@aurora-ds/theme'\n\nimport { InputStyleParams } from '@components/forms/input/Input.props.ts'\nimport { BUTTON_SIZE } from '@constants/globalConstants.ts'\n\nimport type { CSSProperties } from 'react'\n\n/**\n * Input styles using createStyles from @aurora-ds/theme\n */\nexport const INPUT_STYLES = createStyles((theme) => ({\n container: ({ width }: { width?: CSSProperties['width'] }) => ({\n position: 'relative',\n display: 'block',\n width: width ?? '100%',\n '&:hover:not(.disabled) input': {\n borderColor: theme.colors.primaryHover,\n },\n }),\n startIcon: {\n position: 'absolute',\n left: theme.spacing.md,\n top: '50%',\n transform: 'translateY(-50%)',\n pointerEvents: 'none',\n },\n endIcon: {\n position: 'absolute',\n right: theme.spacing.sm,\n top: '50%',\n transform: 'translateY(-50%)',\n zIndex: 1,\n },\n endIconShifted: {\n position: 'absolute',\n right: `calc(${theme.spacing.md} + 1.5rem)`,\n top: '50%',\n transform: 'translateY(-50%)',\n zIndex: 1,\n },\n passwordToggle: {\n position: 'absolute',\n right: theme.spacing.xs,\n top: '50%',\n transform: 'translateY(-50%)',\n zIndex: 2,\n },\n root: ({ disabled = false, hasStartIcon = false, hasEndIcon = false, hasPasswordToggle = false }: InputStyleParams) => ({\n boxSizing: 'border-box',\n width: '100%',\n padding: `${theme.spacing.sm} ${theme.spacing.md}`,\n paddingLeft: hasStartIcon ? `calc(${theme.spacing.md} + 1.5rem)` : theme.spacing.md,\n paddingRight: `calc(${theme.spacing.sm} + ${hasEndIcon ? '1.5rem' : '0px'} + ${hasPasswordToggle ? '1.5rem' : '0px'} + ${hasEndIcon && hasPasswordToggle ? theme.spacing.xs : '0px'})`,\n border: `1px solid ${theme.colors.border}`,\n borderRadius: theme.radius.md,\n fontSize: theme.fontSize.sm,\n fontFamily: 'inherit',\n backgroundColor: theme.colors.surface,\n color: theme.colors.text,\n transition: `border-color ${theme.transition.fast}`,\n outline: 'none',\n minHeight: BUTTON_SIZE,\n maxHeight: BUTTON_SIZE,\n lineHeight: theme.lineHeight.none,\n textOverflow: 'ellipsis',\n overflow: 'hidden',\n whiteSpace: 'nowrap',\n ':focus': {\n borderColor: theme.colors.primary,\n },\n '::placeholder': {\n color: theme.colors.textTertiary,\n fontSize: theme.fontSize.sm,\n },\n ...(disabled && {\n color: theme.colors.disabledText,\n cursor: 'not-allowed',\n opacity: theme.opacity.high\n }),\n }),\n}))\n","import { createStyles } from '@aurora-ds/theme'\r\n\r\nimport { StackStyleParams } from '@components/layout/stack/Stack.props.ts'\r\n\r\n/**\r\n * Stack styles using createStyles from @aurora-ds/theme\r\n */\r\nexport const STACK_STYLES = createStyles((theme) => ({\r\n root: ({\r\n direction,\r\n gap,\r\n width,\r\n height,\r\n align,\r\n justify,\r\n wrap,\r\n padding,\r\n }: StackStyleParams) => ({\r\n display: 'flex',\r\n flexDirection: direction,\r\n gap: gap ? theme.spacing[gap] : undefined,\r\n width,\r\n height,\r\n alignItems: align,\r\n justifyContent: justify,\r\n flexWrap: wrap,\r\n padding: padding ? theme.spacing[padding] : undefined,\r\n }),\r\n}))\r\n","import { FC } from 'react'\r\n\r\nimport { StackProps } from '@components/layout/stack/Stack.props.ts'\r\nimport { STACK_STYLES } from '@components/layout/stack/Stack.styles.ts'\r\n\r\n/**\r\n * Stack component\r\n *\r\n * A flexbox container for laying out children in a row or column.\r\n *\r\n * **Direction:**\r\n * - `row`: Horizontal layout (default)\r\n * - `column`: Vertical layout\r\n */\r\nconst Stack: FC<StackProps> = ({\r\n children,\r\n direction = 'row',\r\n gap = 'sm',\r\n width,\r\n height,\r\n align = 'center',\r\n justify,\r\n wrap,\r\n padding,\r\n ariaLabel,\r\n ariaLabelledBy,\r\n ariaDescribedBy,\r\n role,\r\n tabIndex,\r\n}) => {\r\n return (\r\n <div\r\n className={STACK_STYLES.root({\r\n direction,\r\n gap,\r\n width,\r\n height,\r\n align,\r\n justify,\r\n wrap,\r\n padding,\r\n })}\r\n aria-label={ariaLabel}\r\n aria-labelledby={ariaLabelledBy}\r\n aria-describedby={ariaDescribedBy}\r\n role={role}\r\n tabIndex={tabIndex}\r\n >\r\n {children}\r\n </div>\r\n )\r\n}\r\n\r\nStack.displayName = 'Stack'\r\n\r\nexport default Stack\r\n","import { JSX } from 'react'\r\n\r\nexport const AlertCircleIcon = (): JSX.Element => {\r\n return (\r\n <svg\r\n xmlns={'http://www.w3.org/2000/svg'}\r\n width={'100%'}\r\n height={'100%'}\r\n viewBox={'0 0 24 24'}\r\n fill={'none'}\r\n stroke={'currentColor'}\r\n strokeWidth={'2'}\r\n strokeLinecap={'round'}\r\n strokeLinejoin={'round'}\r\n >\r\n <circle\r\n cx={'12'}\r\n cy={'12'}\r\n r={'10'}\r\n />\r\n <line\r\n x1={'12'}\r\n y1={'8'}\r\n x2={'12'}\r\n y2={'12'}\r\n />\r\n <line\r\n x1={'12'}\r\n y1={'16'}\r\n x2={'12.01'}\r\n y2={'16'}\r\n />\r\n </svg>\r\n )\r\n}\r\n","import { JSX } from 'react'\r\n\r\nexport const AlertTriangleIcon = (): JSX.Element => {\r\n return (\r\n <svg\r\n xmlns={'http://www.w3.org/2000/svg'}\r\n width={'100%'}\r\n height={'100%'}\r\n viewBox={'0 0 24 24'}\r\n fill={'none'}\r\n stroke={'currentColor'}\r\n strokeWidth={'2'}\r\n strokeLinecap={'round'}\r\n strokeLinejoin={'round'}\r\n >\r\n <path\r\n d={'M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z'}\r\n />\r\n <line\r\n x1={'12'}\r\n y1={'9'}\r\n x2={'12'}\r\n y2={'13'}\r\n />\r\n <line\r\n x1={'12'}\r\n y1={'17'}\r\n x2={'12.01'}\r\n y2={'17'}\r\n />\r\n </svg>\r\n )\r\n}\r\n","export const CalendarIcon = () => {\r\n return (\r\n <svg\r\n xmlns={'http://www.w3.org/2000/svg'}\r\n width={'24'}\r\n height={'24'}\r\n viewBox={'0 0 24 24'}\r\n fill={'none'}\r\n stroke={'currentColor'}\r\n strokeWidth={'2'}\r\n strokeLinecap={'round'}\r\n strokeLinejoin={'round'}\r\n >\r\n <path d={'M8 2v4'} />\r\n <path d={'M16 2v4'} />\r\n <rect\r\n width={'18'}\r\n height={'18'}\r\n x={'3'}\r\n y={'4'}\r\n rx={'2'}\r\n />\r\n <path d={'M3 10h18'} />\r\n </svg>\r\n )\r\n}\r\n","import { JSX } from 'react'\r\n\r\nexport const CheckCircleIcon = (): JSX.Element => {\r\n return (\r\n <svg\r\n xmlns={'http://www.w3.org/2000/svg'}\r\n width={'100%'}\r\n height={'100%'}\r\n viewBox={'0 0 24 24'}\r\n fill={'none'}\r\n stroke={'currentColor'}\r\n strokeWidth={'2'}\r\n strokeLinecap={'round'}\r\n strokeLinejoin={'round'}\r\n >\r\n <circle\r\n cx={'12'}\r\n cy={'12'}\r\n r={'10'}\r\n />\r\n <polyline\r\n points={'9 12 11 14 15 10'}\r\n />\r\n </svg>\r\n )\r\n}\r\n","export const ChevronDownIcon = () => {\r\n return (\r\n <svg\r\n xmlns={'http://www.w3.org/2000/svg'}\r\n width={'100%'}\r\n height={'100%'}\r\n viewBox={'0 0 24 24'}\r\n fill={'none'}\r\n stroke={'currentColor'}\r\n strokeWidth={'2'}\r\n strokeLinecap={'round'}\r\n strokeLinejoin={'round'}\r\n className={'lucide lucide-chevron-down-icon lucide-chevron-down'}\r\n >\r\n <path d={'m6 9 6 6 6-6'}/>\r\n </svg>\r\n\r\n )\r\n}\r\n","export const ChevronLeftIcon = () => {\r\n return (\r\n <svg\r\n xmlns={'http://www.w3.org/2000/svg'}\r\n width={'24'}\r\n height={'24'}\r\n viewBox={'0 0 24 24'}\r\n fill={'none'}\r\n stroke={'currentColor'}\r\n strokeWidth={'2'}\r\n strokeLinecap={'round'}\r\n strokeLinejoin={'round'}\r\n className={'lucide lucide-chevron-left-icon lucide-chevron-left'}\r\n >\r\n <path d={'m15 18-6-6 6-6'}/>\r\n </svg>\r\n )\r\n}\r\n","export const ChevronRightIcon = () => {\r\n return (\r\n <svg\r\n xmlns={'http://www.w3.org/2000/svg'}\r\n width={'24'}\r\n height={'24'}\r\n viewBox={'0 0 24 24'}\r\n fill={'none'}\r\n stroke={'currentColor'}\r\n strokeWidth={'2'}\r\n strokeLinecap={'round'}\r\n strokeLinejoin={'round'}\r\n className={'lucide lucide-chevron-right-icon lucide-chevron-right'}\r\n >\r\n <path d={'m9 18 6-6-6-6'}/>\r\n </svg>\r\n\r\n )\r\n}\r\n","import { FC } from 'react'\r\n\r\nexport const CloseIcon: FC = () => (\r\n <svg\r\n width={'16'}\r\n height={'16'}\r\n viewBox={'0 0 16 16'}\r\n fill={'none'}\r\n xmlns={'http://www.w3.org/2000/svg'}\r\n >\r\n <path\r\n d={'M12 4L4 12M4 4l8 8'}\r\n stroke={'currentColor'}\r\n strokeWidth={'2'}\r\n strokeLinecap={'round'}\r\n strokeLinejoin={'round'}\r\n />\r\n </svg>\r\n)\r\n","export const EyeIcon = () => {\r\n return (\r\n <svg\r\n xmlns={'http://www.w3.org/2000/svg'}\r\n width={'24'}\r\n height={'24'}\r\n viewBox={'0 0 24 24'}\r\n fill={'none'}\r\n stroke={'currentColor'}\r\n strokeWidth={'2'}\r\n strokeLinecap={'round'}\r\n strokeLinejoin={'round'}\r\n className={'lucide lucide-eye-icon lucide-eye'}\r\n >\r\n <path\r\n d={'M2.062 12.348a1 1 0 0 1 0-.696 10.75 10.75 0 0 1 19.876 0 1 1 0 0 1 0 .696 10.75 10.75 0 0 1-19.876 0'}\r\n />\r\n <circle\r\n cx={'12'}\r\n cy={'12'}\r\n r={'3'}\r\n />\r\n </svg>\r\n )\r\n}\r\n","export const EyeOffIcon = () => {\r\n return (\r\n <svg\r\n xmlns={'http://www.w3.org/2000/svg'}\r\n width={'24'}\r\n height={'24'}\r\n viewBox={'0 0 24 24'}\r\n fill={'none'}\r\n stroke={'currentColor'}\r\n strokeWidth={'2'}\r\n strokeLinecap={'round'}\r\n strokeLinejoin={'round'}\r\n className={'lucide lucide-eye-off-icon lucide-eye-off'}\r\n >\r\n <path d={'M10.733 5.076a10.744 10.744 0 0 1 11.205 6.575 1 1 0 0 1 0 .696 10.747 10.747 0 0 1-1.444 2.49'}/>\r\n <path d={'M14.084 14.158a3 3 0 0 1-4.242-4.242'}/>\r\n <path d={'M17.479 17.499a10.75 10.75 0 0 1-15.417-5.151 1 1 0 0 1 0-.696 10.75 10.75 0 0 1 4.446-5.143'}/>\r\n <path d={'m2 2 20 20'}/>\r\n </svg>\r\n )\r\n}\r\n","export const InfoIcon = () => {\r\n return (\r\n <svg\r\n xmlns={'http://www.w3.org/2000/svg'}\r\n width={'100%'}\r\n height={'100%'}\r\n viewBox={'0 0 24 24'}\r\n fill={'none'}\r\n stroke={'currentColor'}\r\n strokeWidth={'2'}\r\n strokeLinecap={'round'}\r\n strokeLinejoin={'round'}\r\n >\r\n <circle\r\n cx={'12'}\r\n cy={'12'}\r\n r={'10'}\r\n />\r\n <line\r\n x1={'12'}\r\n y1={'16'}\r\n x2={'12'}\r\n y2={'12'}\r\n />\r\n <line\r\n x1={'12'}\r\n y1={'8'}\r\n x2={'12.01'}\r\n y2={'8'}\r\n />\r\n </svg>\r\n )\r\n}\r\n","export const MoreHorizontalIcon = () => {\r\n return (\r\n <svg\r\n xmlns={'http://www.w3.org/2000/svg'}\r\n width={'24'}\r\n height={'24'}\r\n viewBox={'0 0 24 24'}\r\n fill={'none'}\r\n stroke={'currentColor'}\r\n strokeWidth={'2'}\r\n strokeLinecap={'round'}\r\n strokeLinejoin={'round'}\r\n className={'lucide lucide-ellipsis-icon lucide-ellipsis'}\r\n >\r\n <circle\r\n cx={'12'}\r\n cy={'12'}\r\n r={'1'}\r\n />\r\n <circle\r\n cx={'19'}\r\n cy={'12'}\r\n r={'1'}\r\n />\r\n <circle\r\n cx={'5'}\r\n cy={'12'}\r\n r={'1'}\r\n />\r\n </svg>\r\n )\r\n}\r\n","import { forwardRef, ChangeEvent, useState, memo } from 'react'\r\n\r\nimport { IconButton } from '@components/actions/icon-button'\r\nimport { InputProps } from '@components/forms/input/Input.props.ts'\r\nimport { INPUT_STYLES } from '@components/forms/input/Input.styles.ts'\r\nimport { Icon } from '@components/foundation/icon'\r\nimport { Text } from '@components/foundation/text'\r\nimport { Stack } from '@components/layout/stack'\r\nimport { EyeIcon, EyeOffIcon } from '@resources/Icons'\r\n\r\n/**\r\n * Input component\r\n */\r\nconst Input = forwardRef<HTMLInputElement, InputProps>(({\r\n value,\r\n onChange,\r\n label,\r\n mandatory = false,\r\n placeholder,\r\n disabled = false,\r\n type = 'text',\r\n ariaLabel,\r\n startIcon,\r\n endIcon,\r\n width,\r\n}, ref) => {\r\n const [showPassword, setShowPassword] = useState(false)\r\n\r\n const handleChange = (event: ChangeEvent<HTMLInputElement>) => {\r\n onChange(event.target.value)\r\n }\r\n\r\n const inputType = type === 'password' ? (showPassword ? 'text' : 'password') : type\r\n const hasPasswordToggle = type === 'password'\r\n\r\n return (\r\n <Stack\r\n direction={'column'}\r\n gap={'xs'}\r\n align={'stretch'}\r\n width={width ?? '100%'}\r\n >\r\n {label && (\r\n <Stack\r\n direction={'row'}\r\n gap={'xs'}\r\n align={'center'}\r\n >\r\n <Text\r\n variant={'label'}\r\n fontSize={'sm'}\r\n >\r\n {label}\r\n </Text>\r\n {mandatory && (\r\n <Text\r\n variant={'label'}\r\n fontSize={'sm'}\r\n color={'error'}\r\n >\r\n *\r\n </Text>\r\n )}\r\n </Stack>\r\n )}\r\n <div\r\n className={`${INPUT_STYLES.container({ width })} ${disabled ? 'disabled' : ''}`}\r\n >\r\n <input\r\n ref={ref}\r\n type={inputType}\r\n value={value}\r\n onChange={handleChange}\r\n placeholder={placeholder}\r\n disabled={disabled}\r\n className={INPUT_STYLES.root({ disabled, hasStartIcon: !!startIcon, hasEndIcon: !!endIcon, hasPasswordToggle })}\r\n aria-label={ariaLabel || label}\r\n />\r\n {startIcon && (\r\n <div className={INPUT_STYLES.startIcon}>\r\n <Icon\r\n color={'textTertiary'}\r\n >\r\n {startIcon}\r\n </Icon>\r\n </div>\r\n )}\r\n {endIcon && (\r\n <div className={hasPasswordToggle ? INPUT_STYLES.endIconShifted : INPUT_STYLES.endIcon}>\r\n <Icon\r\n color={'textTertiary'}\r\n >\r\n {endIcon}\r\n </Icon>\r\n </div>\r\n )}\r\n {hasPasswordToggle && (\r\n <div className={INPUT_STYLES.passwordToggle}>\r\n <IconButton\r\n icon={showPassword ? <EyeOffIcon /> : <EyeIcon />}\r\n onClick={() => setShowPassword(!showPassword)}\r\n disabled={disabled}\r\n ariaLabel={ariaLabel || label}\r\n variant={'text'}\r\n size={'small'}\r\n textColor={'textSecondary'}\r\n />\r\n </div>\r\n )}\r\n </div>\r\n </Stack>\r\n )\r\n})\r\n\r\nInput.displayName = 'Input'\r\n\r\nexport default memo(Input)\r\n","import { createStyles } from '@aurora-ds/theme'\r\n\r\nimport { TextAreaStyleParams } from '@components/forms/textarea/TextArea.props.ts'\r\n\r\nimport type { CSSProperties } from 'react'\r\n\r\n/**\r\n * TextArea styles using createStyles from @aurora-ds/theme\r\n */\r\nexport const TEXTAREA_STYLES = createStyles((theme) => ({\r\n container: ({ width }: { width?: CSSProperties['width'] }) => ({\r\n position: 'relative',\r\n display: 'inline-block',\r\n width: width ?? '100%',\r\n '&:hover:not(.disabled) textarea': {\r\n borderColor: theme.colors.primaryHover,\r\n },\r\n }),\r\n root: ({ disabled = false }: TextAreaStyleParams) => ({\r\n boxSizing: 'border-box',\r\n width: '100%',\r\n padding: `${theme.spacing.sm} ${theme.spacing.md}`,\r\n border: `1px solid ${theme.colors.border}`,\r\n borderRadius: theme.radius.md,\r\n fontSize: theme.fontSize.sm,\r\n fontFamily: 'inherit',\r\n backgroundColor: theme.colors.surface,\r\n color: theme.colors.text,\r\n transition: `border-color ${theme.transition.fast}`,\r\n outline: 'none',\r\n lineHeight: theme.lineHeight.normal,\r\n resize: 'none',\r\n overflow: 'hidden',\r\n ':focus': {\r\n borderColor: theme.colors.primary,\r\n },\r\n '::placeholder': {\r\n color: theme.colors.textTertiary,\r\n fontSize: theme.fontSize.sm,\r\n textOverflow: 'ellipsis',\r\n overflow: 'hidden',\r\n whiteSpace: 'nowrap',\r\n },\r\n ...(disabled && {\r\n color: theme.colors.disabledText,\r\n cursor: 'not-allowed',\r\n opacity: theme.opacity.high\r\n }),\r\n }),\r\n}))\r\n","import { forwardRef, ChangeEvent, memo, useEffect, useRef, useCallback } from 'react'\r\n\r\nimport { TextAreaProps } from '@components/forms/textarea/TextArea.props.ts'\r\nimport { TEXTAREA_STYLES } from '@components/forms/textarea/TextArea.styles.ts'\r\nimport { Text } from '@components/foundation/text'\r\nimport { Stack } from '@components/layout/stack'\r\n\r\n/**\r\n * TextArea component with auto-expanding height based on content\r\n */\r\nconst TextArea = forwardRef<HTMLTextAreaElement, TextAreaProps>(({\r\n value,\r\n onChange,\r\n label,\r\n mandatory = false,\r\n placeholder,\r\n disabled = false,\r\n ariaLabel,\r\n width,\r\n minRows = 3,\r\n maxRows,\r\n}, ref) => {\r\n const internalRef = useRef<HTMLTextAreaElement>(null)\r\n const textareaRef = (ref as React.RefObject<HTMLTextAreaElement>) || internalRef\r\n\r\n const adjustHeight = useCallback(() => {\r\n const textarea = textareaRef.current\r\n if (textarea) {\r\n // Reset height to calculate the correct scrollHeight\r\n textarea.style.height = 'auto'\r\n // Set minHeight based on minRows\r\n const lineHeight = parseInt(getComputedStyle(textarea).lineHeight) || 20\r\n const minHeight = lineHeight * minRows\r\n const maxHeight = maxRows ? lineHeight * maxRows : Infinity\r\n // Set the height to the greater of minHeight or scrollHeight, but capped at maxHeight\r\n const newHeight = Math.min(Math.max(minHeight, textarea.scrollHeight), maxHeight)\r\n textarea.style.height = `${newHeight}px`\r\n // Enable scrolling if content exceeds maxHeight\r\n textarea.style.overflowY = textarea.scrollHeight > maxHeight ? 'auto' : 'hidden'\r\n }\r\n }, [minRows, maxRows, textareaRef])\r\n\r\n useEffect(() => {\r\n adjustHeight()\r\n }, [value, adjustHeight])\r\n\r\n const handleChange = (event: ChangeEvent<HTMLTextAreaElement>) => {\r\n onChange(event.target.value)\r\n }\r\n\r\n return (\r\n <Stack\r\n direction={'column'}\r\n gap={'xs'}\r\n align={'stretch'}\r\n width={width ?? '100%'}\r\n >\r\n {label && (\r\n <Stack\r\n direction={'row'}\r\n gap={'xs'}\r\n align={'center'}\r\n >\r\n <Text\r\n variant={'label'}\r\n fontSize={'sm'}\r\n >\r\n {label}\r\n </Text>\r\n {mandatory && (\r\n <Text\r\n variant={'label'}\r\n fontSize={'sm'}\r\n color={'error'}\r\n >\r\n *\r\n </Text>\r\n )}\r\n </Stack>\r\n )}\r\n <div\r\n className={`${TEXTAREA_STYLES.container({ width })} ${disabled ? 'disabled' : ''}`}\r\n >\r\n <textarea\r\n ref={textareaRef}\r\n value={value}\r\n onChange={handleChange}\r\n placeholder={placeholder}\r\n disabled={disabled}\r\n className={TEXTAREA_STYLES.root({ disabled })}\r\n aria-label={ariaLabel || label}\r\n rows={minRows}\r\n />\r\n </div>\r\n </Stack>\r\n )\r\n})\r\n\r\nTextArea.displayName = 'TextArea'\r\n\r\nexport default memo(TextArea)\r\n","import { createStyles } from '@aurora-ds/theme'\r\n\r\nimport { SelectStyleParams } from '@components/forms/select/Select.props.ts'\r\nimport { BUTTON_SIZE } from '@constants/globalConstants.ts'\r\n\r\n/**\r\n * Select styles using createStyles from @aurora-ds/theme\r\n */\r\nexport const SELECT_STYLES = createStyles((theme) => ({\r\n root: ({\r\n disabled = false,\r\n width\r\n }: SelectStyleParams) => ({\r\n position: 'relative',\r\n display: 'inline-flex',\r\n alignItems: 'center',\r\n justifyContent: 'space-between',\r\n boxSizing: 'border-box',\r\n width: width ?? '100%',\r\n padding: `${theme.spacing.sm} ${theme.spacing.md}`,\r\n border: `1px solid ${theme.colors.border}`,\r\n borderRadius: theme.radius.md,\r\n fontSize: theme.fontSize.md,\r\n fontFamily: 'inherit',\r\n backgroundColor: theme.colors.surface,\r\n color: theme.colors.text,\r\n cursor: disabled ? 'not-allowed' : 'pointer',\r\n transition: `border-color ${theme.transition.fast}`,\r\n outline: 'none',\r\n minHeight: BUTTON_SIZE,\r\n maxHeight: BUTTON_SIZE,\r\n gap: theme.spacing.lg,\r\n lineHeight: theme.lineHeight.none,\r\n textOverflow: 'ellipsis',\r\n overflow: 'hidden',\r\n whiteSpace: 'nowrap',\r\n ...(disabled && {\r\n color: theme.colors.disabled,\r\n cursor: 'not-allowed',\r\n opacity: theme.opacity.high\r\n }),\r\n ...(!disabled && {\r\n ':hover': {\r\n borderColor: theme.colors.primaryHover,\r\n },\r\n }),\r\n }),\r\n trigger: {\r\n display: 'flex',\r\n alignItems: 'center',\r\n gap: theme.spacing.sm,\r\n flex: 1\r\n },\r\n value: {\r\n flex: 1,\r\n fontSize: theme.fontSize.md,\r\n color: theme.colors.text\r\n },\r\n placeholder: {\r\n flex: 1,\r\n fontSize: theme.fontSize.md,\r\n color: theme.colors.textSecondary\r\n }\r\n}))\r\n","import { createStyles } from '@aurora-ds/theme'\r\n\r\nimport { SelectItemStyleParams } from '@components/forms/select/SelectItem/SelectItem.props'\r\nimport { MENU_ITEM_SIZE } from '@constants/globalConstants.ts'\r\n\r\n/**\r\n * SelectItem styles using createStyles from @aurora-ds/theme\r\n */\r\nexport const SELECT_ITEM_STYLES = createStyles((theme) => ({\r\n root: ({\r\n isSelected = false,\r\n disabled = false\r\n }: SelectItemStyleParams) => ({\r\n display: 'flex',\r\n alignItems: 'center',\r\n gap: theme.spacing.sm,\r\n padding: theme.spacing.sm,\r\n borderRadius: theme.radius.sm,\r\n backgroundColor: isSelected ? theme.colors.primary : theme.colors.surface,\r\n outline: 'none',\r\n border: 'none',\r\n cursor: disabled ? 'not-allowed' : 'pointer',\r\n minHeight: MENU_ITEM_SIZE,\r\n maxHeight: MENU_ITEM_SIZE,\r\n flexShrink: 0,\r\n transition: 'background-color 150ms ease-in-out',\r\n color: disabled ? theme.colors.disabled : (isSelected ? theme.colors.surface : theme.colors.text),\r\n opacity: disabled ? 0.5 : 1,\r\n ':hover': {\r\n backgroundColor: disabled ? theme.colors.surface : (isSelected ? theme.colors.primary : theme.colors.surfaceHover),\r\n },\r\n })\r\n}))\r\n","import { FC } from 'react'\r\n\r\nimport { SelectItemProps } from '@components/forms/select/SelectItem/SelectItem.props'\r\nimport { SELECT_ITEM_STYLES } from '@components/forms/select/SelectItem/SelectItem.styles'\r\nimport { Text } from '@components/foundation/text'\r\n\r\n/**\r\n * SelectItem component for use inside Select dropdown\r\n */\r\nconst SelectItem: FC<SelectItemProps> = ({\r\n option,\r\n isSelected = false,\r\n onSelect\r\n}) => {\r\n const handleClick = () => {\r\n if (!option.disabled && onSelect) {\r\n onSelect(option.value)\r\n }\r\n }\r\n\r\n return (\r\n <button\r\n className={SELECT_ITEM_STYLES.root({ isSelected, disabled: option.disabled })}\r\n onClick={handleClick}\r\n role={'option'}\r\n aria-selected={isSelected}\r\n >\r\n <Text\r\n variant={'label'}\r\n maxLines={1}\r\n >\r\n {option.label}\r\n </Text>\r\n </button>\r\n )\r\n}\r\n\r\nSelectItem.displayName = 'SelectItem'\r\n\r\nexport { SelectItem }\r\n","import { createStyles } from '@aurora-ds/theme'\r\nimport { CSSProperties } from 'react'\r\n\r\nimport { DEFAULT_TRANSITION_DURATION_MS, MENU_ITEM_SIZE } from '@constants/globalConstants'\r\nimport { AnchorOrigin, AnchorPosition } from '@hooks/useAnchorPosition.types'\r\n\r\nexport const MENU_STYLES = createStyles((theme) => ({\r\n root: (isFadingIn: boolean, anchorOrigin: AnchorOrigin, position: AnchorPosition, width?: CSSProperties['width']) => ({\r\n position: 'fixed',\r\n zIndex: 9999999,\r\n marginTop: theme.spacing.xs,\r\n backgroundColor: theme.colors.surface,\r\n borderRadius: theme.radius.md,\r\n border: `1px solid ${theme.colors.border}`,\r\n boxShadow: theme.shadows.md,\r\n minWidth: 150,\r\n maxHeight: MENU_ITEM_SIZE * 8,\r\n overflowY: 'auto',\r\n width,\r\n opacity: isFadingIn ? 1 : 0,\r\n transform: isFadingIn ? 'scale(1)' : 'scale(0.95)',\r\n transformOrigin: anchorOrigin === 'right' ? 'top right' : 'top left',\r\n transition: `opacity ${DEFAULT_TRANSITION_DURATION_MS}ms ease-out, transform ${DEFAULT_TRANSITION_DURATION_MS}ms ease-out`,\r\n top: position?.top ?? 0,\r\n left: position?.left ?? 0,\r\n visibility: position ? 'visible' : 'hidden',\r\n }),\r\n}))\r\n","import { RefObject, useCallback, useLayoutEffect, useState } from 'react'\r\n\r\nimport { AnchorOrigin, AnchorPosition } from '@hooks/useAnchorPosition.types'\r\n\r\ntype UseAnchorPositionParams = {\r\n anchor: HTMLElement | null\r\n menuRef: RefObject<HTMLDivElement | null>\r\n anchorOrigin?: AnchorOrigin\r\n isVisible: boolean\r\n}\r\n\r\nconst VIEWPORT_PADDING = 8\r\n\r\n/**\r\n * Hook pour calculer la position d'un élément par rapport à son ancre\r\n * @param anchor - Élément HTML servant d'ancre\r\n * @param menuRef - Référence vers l'élément à positionner\r\n * @param anchorOrigin - Origine de l'ancrage ('left' ou 'right')\r\n * @param isVisible - Si l'élément est visible (pour recalculer la position)\r\n */\r\nexport const useAnchorPosition = ({\r\n anchor,\r\n menuRef,\r\n anchorOrigin = 'right',\r\n isVisible\r\n}: UseAnchorPositionParams): AnchorPosition => {\r\n const [position, setPosition] = useState<AnchorPosition>(null)\r\n\r\n const calculatePosition = useCallback(() => {\r\n if (!anchor || !isVisible) {\r\n setPosition(null)\r\n return\r\n }\r\n\r\n const anchorRect = anchor.getBoundingClientRect()\r\n const menuElement = menuRef.current\r\n const menuWidth = menuElement?.offsetWidth || 150\r\n const menuHeight = menuElement?.offsetHeight || 200\r\n\r\n const viewportWidth = window.innerWidth\r\n const viewportHeight = window.innerHeight\r\n\r\n // Calculer la position horizontale initiale\r\n let left = anchorOrigin === 'right'\r\n ? anchorRect.right - menuWidth\r\n : anchorRect.left\r\n\r\n // Calculer la position verticale initiale (sous l'ancre)\r\n let top = anchorRect.bottom\r\n\r\n // Ajuster si le menu dépasse à droite\r\n if (left + menuWidth > viewportWidth - VIEWPORT_PADDING) {\r\n left = viewportWidth - menuWidth - VIEWPORT_PADDING\r\n }\r\n\r\n // Ajuster si le menu dépasse à gauche\r\n if (left < VIEWPORT_PADDING) {\r\n left = VIEWPORT_PADDING\r\n }\r\n\r\n // Ajuster si le menu dépasse en bas\r\n if (top + menuHeight > viewportHeight - VIEWPORT_PADDING) {\r\n // Essayer de placer le menu au-dessus de l'ancre\r\n const topAbove = anchorRect.top - menuHeight\r\n if (topAbove >= VIEWPORT_PADDING) {\r\n top = topAbove\r\n } else {\r\n // Si pas assez de place au-dessus, placer au maximum en bas\r\n top = viewportHeight - menuHeight - VIEWPORT_PADDING\r\n }\r\n }\r\n\r\n setPosition({ top, left })\r\n }, [anchor, anchorOrigin, isVisible, menuRef])\r\n\r\n useLayoutEffect(() => {\r\n calculatePosition()\r\n }, [calculatePosition])\r\n\r\n useLayoutEffect(() => {\r\n if (!isVisible) {return}\r\n\r\n const handleReposition = () => {\r\n calculatePosition()\r\n }\r\n\r\n window.addEventListener('resize', handleReposition)\r\n window.addEventListener('scroll', handleReposition, true)\r\n\r\n return () => {\r\n window.removeEventListener('resize', handleReposition)\r\n window.removeEventListener('scroll', handleReposition, true)\r\n }\r\n }, [isVisible, calculatePosition])\r\n\r\n return position\r\n}\r\n","import { RefObject, useEffect } from 'react'\r\n\r\n/**\r\n * Gestion d'un click en dehors d'un ou plusieurs éléments\r\n * @param refs Tableau de références à écouter\r\n * @param onClickOutside Callback si clic à l'extérieur\r\n * @param shouldTrigger Activation du comportement\r\n */\r\nexport const useClickOutside = (\r\n refs: RefObject<HTMLElement | null>[],\r\n onClickOutside: () => void,\r\n shouldTrigger: boolean = true\r\n): void => {\r\n useEffect(() => {\r\n if (!shouldTrigger) {\r\n return\r\n }\r\n\r\n const handleClick = (event: MouseEvent): void => {\r\n const isInside = refs.some(ref =>\r\n ref.current?.contains(event.target as Node)\r\n )\r\n\r\n if (!isInside) {\r\n onClickOutside()\r\n }\r\n }\r\n\r\n document.addEventListener('mousedown', handleClick)\r\n\r\n return (): void => {\r\n document.removeEventListener('mousedown', handleClick)\r\n }\r\n }, [refs, onClickOutside, shouldTrigger])\r\n}\r\n","import { useEffect, useState } from 'react'\r\n\r\nimport { DEFAULT_TRANSITION_DURATION_MS } from '@constants/globalConstants'\r\nimport { UseTransitionRenderReturnType } from '@hooks/useTransitionRender.types'\r\n\r\n/**\r\n * Hook pour gérer les animations de transition lors des renders\r\n * @param isOpen - État d'ouverture\r\n * @param duration - Durée de la transition en ms\r\n */\r\nexport const useTransitionRender = (\r\n isOpen: boolean,\r\n duration = DEFAULT_TRANSITION_DURATION_MS\r\n): UseTransitionRenderReturnType => {\r\n const [isVisible, setIsVisible] = useState(false)\r\n const [isFadingIn, setIsFadingIn] = useState(false)\r\n\r\n useEffect(() => {\r\n if (isOpen) {\r\n setIsVisible(true)\r\n const timeout = setTimeout(() => {\r\n setIsFadingIn(true)\r\n }, 10)\r\n return (): void => {\r\n clearTimeout(timeout)\r\n }\r\n } else {\r\n setIsFadingIn(false)\r\n const timeout = setTimeout(() => {\r\n setIsVisible(false)\r\n }, duration)\r\n return (): void => {\r\n clearTimeout(timeout)\r\n }\r\n }\r\n }, [isOpen, duration])\r\n\r\n return {\r\n isVisible,\r\n isFadingIn\r\n }\r\n}\r\n","import { FC, useEffect, useMemo, useRef } from 'react'\r\nimport { createPortal } from 'react-dom'\r\n\r\nimport { MenuProps } from '@components/overlay/menu/Menu.props'\r\nimport { MENU_STYLES } from '@components/overlay/menu/Menu.styles'\r\nimport { useAnchorPosition } from '@hooks/useAnchorPosition'\r\nimport { useClickOutside } from '@hooks/useClickOutside'\r\nimport { useTransitionRender } from '@hooks/useTransitionRender'\r\n\r\nconst Menu: FC<MenuProps> = ({\r\n anchor,\r\n onClose,\r\n children,\r\n anchorOrigin = 'right',\r\n width\r\n}) => {\r\n // refs\r\n const menuRef = useRef<HTMLDivElement>(null)\r\n const anchorRef = useRef<HTMLElement | null>(null)\r\n\r\n // variables\r\n const isOpen = Boolean(anchor)\r\n const refs = useMemo(() => [menuRef, anchorRef], [])\r\n\r\n // hooks\r\n const { isVisible, isFadingIn } = useTransitionRender(isOpen)\r\n const position = useAnchorPosition({ anchor, menuRef, anchorOrigin, isVisible })\r\n\r\n // useEffects\r\n useEffect(() => {\r\n if (anchor) {\r\n anchorRef.current = anchor\r\n }\r\n }, [anchor])\r\n\r\n useEffect(() => {\r\n if (!isVisible) {\r\n anchorRef.current = null\r\n }\r\n }, [isVisible])\r\n\r\n useClickOutside(refs, onClose, isVisible)\r\n\r\n if (!isVisible) {\r\n return null\r\n }\r\n\r\n return createPortal(\r\n <div\r\n ref={menuRef}\r\n className={MENU_STYLES.root(isFadingIn, anchorOrigin, position, width)}\r\n >\r\n {children}\r\n </div>,\r\n document.body\r\n )\r\n}\r\n\r\nMenu.displayName = 'Menu'\r\n\r\nexport default Menu\r\n","import { createStyles } from '@aurora-ds/theme'\r\n\r\nexport const MENU_GROUP_STYLES = createStyles((theme) => ({\r\n root: {\r\n display: 'flex',\r\n flexDirection: 'column',\r\n padding: theme.spacing.xs,\r\n },\r\n}))\r\n","import { FC } from 'react'\r\n\r\nimport { MenuGroupProps } from '@components/overlay/menu/MenuGroup/MenuGroup.props'\r\nimport { MENU_GROUP_STYLES } from '@components/overlay/menu/MenuGroup/MenuGroup.styles'\r\n\r\nconst MenuGroup: FC<MenuGroupProps> = ({\r\n children\r\n}) => {\r\n return (\r\n <div\r\n className={MENU_GROUP_STYLES.root}\r\n >\r\n {children}\r\n </div>\r\n )\r\n}\r\n\r\nMenuGroup.displayName = 'MenuGroup'\r\n\r\nexport default MenuGroup\r\n","import { createStyles } from '@aurora-ds/theme'\n\nimport { MENU_ITEM_SIZE } from '@constants/globalConstants.ts'\n\nexport const MENU_ITEM_STYLES = createStyles((theme) => ({\n root: {\n display: 'flex',\n alignItems: 'center',\n gap: theme.spacing.sm,\n padding: theme.spacing.sm,\n borderRadius: theme.radius.sm,\n backgroundColor: theme.colors.surface,\n outline: 'none',\n border: 'none',\n cursor: 'pointer',\n minHeight: MENU_ITEM_SIZE,\n maxHeight: MENU_ITEM_SIZE,\n flexShrink: 0,\n transition: 'background-color 150ms ease-in-out',\n ':hover': {\n backgroundColor: theme.colors.surfaceHover,\n },\n },\n}))\n","import { FC } from 'react'\r\n\r\nimport { Icon } from '@components/foundation/icon'\r\nimport { Text } from '@components/foundation/text'\r\nimport { MenuItemProps } from '@components/overlay/menu/MenuItem/MenuItem.props'\r\nimport { MENU_ITEM_STYLES } from '@components/overlay/menu/MenuItem/MenuItem.styles'\r\n\r\nconst MenuItem: FC<MenuItemProps> = ({\r\n label,\r\n icon,\r\n onClick,\r\n textColor,\r\n iconColor\r\n}) => {\r\n return (\r\n <button\r\n className={MENU_ITEM_STYLES.root}\r\n onClick={onClick}\r\n >\r\n {icon && (\r\n <Icon\r\n color={iconColor ?? 'text'}\r\n size={'sm'}\r\n >\r\n {icon}\r\n </Icon>\r\n )}\r\n <Text\r\n variant={'label'}\r\n color={textColor ?? 'text'}\r\n maxLines={1}\r\n fontSize={'sm'}\r\n >\r\n {label}\r\n </Text>\r\n </button>\r\n )\r\n}\r\n\r\nMenuItem.displayName = 'MenuItem'\r\n\r\nexport default MenuItem\r\n","import { FC, useRef, useState } from 'react'\r\n\r\nimport { SelectProps } from '@components/forms/select/Select.props'\r\nimport { SELECT_STYLES } from '@components/forms/select/Select.styles'\r\nimport { SelectItem } from '@components/forms/select/SelectItem'\r\nimport Icon from '@components/foundation/icon/Icon.tsx'\r\nimport { Text } from '@components/foundation/text'\r\nimport { Stack } from '@components/layout/stack'\r\nimport { Menu } from '@components/overlay/menu'\r\nimport { MenuGroup } from '@components/overlay/menu/MenuGroup'\r\nimport { ChevronDownIcon } from '@resources/icons/ChevronDownIcon'\r\n\r\n/**\r\n * Select component that uses Menu for dropdown\r\n */\r\nconst Select: FC<SelectProps> = ({\r\n options,\r\n value,\r\n onChange,\r\n label,\r\n mandatory = false,\r\n placeholder = 'Select an option',\r\n disabled = false,\r\n width\r\n}) => {\r\n const [isOpen, setIsOpen] = useState(false)\r\n const triggerRef = useRef<HTMLDivElement>(null)\r\n\r\n const selectedOption = options.find(option => option.value === value)\r\n const menuWidth = triggerRef.current?.offsetWidth ?? width\r\n\r\n const handleTriggerClick = () => {\r\n if (!disabled) {\r\n setIsOpen(!isOpen)\r\n }\r\n }\r\n\r\n const handleClose = () => {\r\n setIsOpen(false)\r\n }\r\n\r\n const handleSelect = (selectedValue: string | number) => {\r\n onChange(selectedValue)\r\n setIsOpen(false)\r\n }\r\n\r\n return (\r\n <Stack\r\n direction={'column'}\r\n gap={'xs'}\r\n align={'stretch'}\r\n width={width ?? '100%'}\r\n >\r\n {label && (\r\n <Stack\r\n direction={'row'}\r\n gap={'xs'}\r\n align={'center'}\r\n >\r\n <Text\r\n variant={'label'}\r\n fontSize={'sm'}\r\n >\r\n {label}\r\n </Text>\r\n {mandatory && (\r\n <Text\r\n variant={'label'}\r\n fontSize={'sm'}\r\n color={'error'}\r\n >\r\n *\r\n </Text>\r\n )}\r\n </Stack>\r\n )}\r\n <div\r\n ref={triggerRef}\r\n className={SELECT_STYLES.root({ disabled, width })}\r\n onClick={handleTriggerClick}\r\n role={'button'}\r\n tabIndex={disabled ? -1 : 0}\r\n aria-expanded={isOpen}\r\n aria-haspopup={'listbox'}\r\n >\r\n <div\r\n className={SELECT_STYLES.trigger}\r\n >\r\n <Text\r\n variant={'p'}\r\n maxLines={1}\r\n color={selectedOption ? 'text' : 'textSecondary'}\r\n >\r\n {selectedOption ? selectedOption.label : placeholder}\r\n </Text>\r\n </div>\r\n <Icon>\r\n <ChevronDownIcon />\r\n </Icon>\r\n </div>\r\n <Menu\r\n anchor={isOpen ? triggerRef.current : null}\r\n onClose={handleClose}\r\n width={menuWidth}\r\n >\r\n <MenuGroup>\r\n {options.map(option => (\r\n <SelectItem\r\n key={option.value}\r\n option={option}\r\n isSelected={option.value === value}\r\n onSelect={handleSelect}\r\n />\r\n ))}\r\n </MenuGroup>\r\n </Menu>\r\n </Stack>\r\n )\r\n}\r\n\r\nSelect.displayName = 'Select'\r\n\r\nexport { Select }\r\n","import { createStyles } from '@aurora-ds/theme'\r\n\r\nexport const CALENDAR_GRID_STYLES = createStyles((theme) => ({\r\n daysGrid: {\r\n display: 'grid',\r\n gridTemplateColumns: 'repeat(7, 1fr)',\r\n gap: '2px',\r\n },\r\n monthsGrid: {\r\n display: 'grid',\r\n gridTemplateColumns: 'repeat(3, 1fr)',\r\n gap: theme.spacing.xs,\r\n padding: theme.spacing.xs,\r\n },\r\n yearsGrid: {\r\n display: 'grid',\r\n gridTemplateColumns: 'repeat(4, 1fr)',\r\n gap: theme.spacing.xs,\r\n padding: theme.spacing.xs,\r\n },\r\n dayHeader: {\r\n textAlign: 'center',\r\n fontSize: theme.fontSize.xs,\r\n fontWeight: theme.fontWeight.medium,\r\n color: theme.colors.textSecondary,\r\n padding: '2px',\r\n },\r\n day: ({ isCurrentMonth, isSelected, isToday, isDisabled }: {\r\n isCurrentMonth?: boolean\r\n isSelected?: boolean\r\n isToday?: boolean\r\n isDisabled?: boolean\r\n }) => ({\r\n width: '1.5rem',\r\n height: '1.5rem',\r\n border: 'none',\r\n borderRadius: theme.radius.sm,\r\n backgroundColor: 'transparent',\r\n color: isCurrentMonth ? theme.colors.text : theme.colors.textTertiary,\r\n fontSize: theme.fontSize.xs,\r\n cursor: isDisabled ? 'not-allowed' : 'pointer',\r\n display: 'flex',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n transition: `background-color ${theme.transition.fast}`,\r\n ...(isSelected && {\r\n backgroundColor: theme.colors.primary,\r\n color: theme.colors.onPrimary,\r\n }),\r\n ...(isToday && !isSelected && {\r\n backgroundColor: theme.colors.primarySubtle,\r\n color: theme.colors.primary,\r\n }),\r\n ...(isDisabled && {\r\n color: theme.colors.disabledText,\r\n cursor: 'not-allowed',\r\n }),\r\n ':hover': !isDisabled && !isSelected ? {\r\n backgroundColor: theme.colors.primaryHover,\r\n color: theme.colors.onPrimary,\r\n } : {},\r\n }),\r\n monthYearItem: (isSelected: boolean) => ({\r\n padding: `${theme.spacing.xs} ${theme.spacing.sm}`,\r\n border: 'none',\r\n borderRadius: theme.radius.sm,\r\n backgroundColor: isSelected ? theme.colors.primary : 'transparent',\r\n color: isSelected ? theme.colors.onPrimary : theme.colors.text,\r\n fontSize: theme.fontSize.sm,\r\n cursor: 'pointer',\r\n transition: `background-color ${theme.transition.fast}`,\r\n ':hover': !isSelected ? {\r\n backgroundColor: theme.colors.primarySubtle,\r\n } : {},\r\n }),\r\n}))\r\n","import { FC, memo } from 'react'\r\n\r\nimport { CalendarGridProps } from '@components/forms/date-picker/calendar/calendar-grid/CalendarGrid.props.ts'\r\nimport { CALENDAR_GRID_STYLES } from '@components/forms/date-picker/calendar/calendar-grid/CalendarGrid.styles.ts'\r\n\r\nconst MONTHS = [\r\n 'Janvier', 'Février', 'Mars', 'Avril', 'Mai', 'Juin',\r\n 'Juillet', 'Août', 'Septembre', 'Octobre', 'Novembre', 'Décembre'\r\n]\r\n\r\nconst DAY_NAMES = ['D', 'L', 'M', 'M', 'J', 'V', 'S']\r\n\r\nconst CalendarGrid: FC<CalendarGridProps> = ({\r\n view,\r\n days = [],\r\n currentMonth,\r\n yearRangeStart = 2020,\r\n onDaySelect,\r\n onMonthSelect,\r\n onYearSelect,\r\n}) => {\r\n if (view === 'days') {\r\n return (\r\n <div className={CALENDAR_GRID_STYLES.daysGrid}>\r\n {DAY_NAMES.map((day, index) => (\r\n <div\r\n key={`${day}-${index}`}\r\n className={CALENDAR_GRID_STYLES.dayHeader}\r\n >\r\n {day}\r\n </div>\r\n ))}\r\n {days.map(day => (\r\n <button\r\n key={day.date.getTime()}\r\n className={CALENDAR_GRID_STYLES.day(day)}\r\n onClick={() => !day.isDisabled && onDaySelect?.(day.date)}\r\n disabled={day.isDisabled}\r\n type={'button'}\r\n >\r\n {day.date.getDate()}\r\n </button>\r\n ))}\r\n </div>\r\n )\r\n }\r\n\r\n if (view === 'months') {\r\n return (\r\n <div className={CALENDAR_GRID_STYLES.monthsGrid}>\r\n {MONTHS.map((month, index) => (\r\n <button\r\n key={month}\r\n type={'button'}\r\n className={CALENDAR_GRID_STYLES.monthYearItem(currentMonth?.getMonth() === index)}\r\n onClick={() => onMonthSelect?.(index)}\r\n >\r\n {month.substring(0, 3)}\r\n </button>\r\n ))}\r\n </div>\r\n )\r\n }\r\n\r\n if (view === 'years') {\r\n return (\r\n <div className={CALENDAR_GRID_STYLES.yearsGrid}>\r\n {Array.from({ length: 12 }, (_, i) => yearRangeStart + i).map(year => (\r\n <button\r\n key={year}\r\n type={'button'}\r\n className={CALENDAR_GRID_STYLES.monthYearItem(currentMonth?.getFullYear() === year)}\r\n onClick={() => onYearSelect?.(year)}\r\n >\r\n {year}\r\n </button>\r\n ))}\r\n </div>\r\n )\r\n }\r\n\r\n return null\r\n}\r\n\r\nCalendarGrid.displayName = 'CalendarGrid'\r\n\r\nexport default memo(CalendarGrid)\r\n","import { createStyles } from '@aurora-ds/theme'\r\n\r\nexport const CALENDAR_HEADER_STYLES = createStyles((theme) => ({\r\n root: {\r\n display: 'flex',\r\n justifyContent: 'space-between',\r\n alignItems: 'center',\r\n marginBottom: theme.spacing.sm,\r\n },\r\n labelButton: {\r\n background: 'none',\r\n border: 'none',\r\n cursor: 'pointer',\r\n padding: `${theme.spacing.xs} ${theme.spacing.sm}`,\r\n borderRadius: theme.radius.sm,\r\n color: theme.colors.text,\r\n fontSize: theme.fontSize.sm,\r\n fontWeight: theme.fontWeight.medium,\r\n transition: `background-color ${theme.transition.fast}`,\r\n ':hover': {\r\n backgroundColor: theme.colors.primarySubtle,\r\n },\r\n },\r\n labelText: {\r\n padding: `${theme.spacing.xs} ${theme.spacing.sm}`,\r\n color: theme.colors.text,\r\n fontSize: theme.fontSize.sm,\r\n fontWeight: theme.fontWeight.medium,\r\n },\r\n leftArrow: {\r\n transform: 'rotate(180deg)',\r\n },\r\n}))\r\n","import { FC, memo } from 'react'\r\n\r\nimport { IconButton } from '@components/actions/icon-button'\r\nimport { CalendarHeaderProps } from '@components/forms/date-picker/calendar/calendar-header/CalendarHeader.props.ts'\r\nimport { CALENDAR_HEADER_STYLES } from '@components/forms/date-picker/calendar/calendar-header/CalendarHeader.styles.ts'\r\nimport { Text } from '@components/foundation/text'\r\nimport { ChevronRightIcon } from '@resources/icons/ChevronRightIcon.tsx'\r\n\r\nconst CalendarHeader: FC<CalendarHeaderProps> = ({\r\n label,\r\n onPrev,\r\n onNext,\r\n onLabelClick,\r\n isLabelClickable = true,\r\n}) => {\r\n return (\r\n <div className={CALENDAR_HEADER_STYLES.root}>\r\n <div className={CALENDAR_HEADER_STYLES.leftArrow}>\r\n <IconButton\r\n icon={<ChevronRightIcon />}\r\n onClick={onPrev}\r\n variant={'text'}\r\n size={'small'}\r\n />\r\n </div>\r\n {isLabelClickable ? (\r\n <button\r\n type={'button'}\r\n className={CALENDAR_HEADER_STYLES.labelButton}\r\n onClick={onLabelClick}\r\n >\r\n {label}\r\n </button>\r\n ) : (\r\n <Text variant={'p'}>\r\n {label}\r\n </Text>\r\n )}\r\n <IconButton\r\n icon={<ChevronRightIcon />}\r\n onClick={onNext}\r\n variant={'text'}\r\n size={'small'}\r\n />\r\n </div>\r\n )\r\n}\r\n\r\nCalendarHeader.displayName = 'CalendarHeader'\r\n\r\nexport default memo(CalendarHeader)\r\n","import { createStyles } from '@aurora-ds/theme'\r\n\r\nexport const CALENDAR_STYLES = createStyles((theme) => ({\r\n root: {\r\n padding: theme.spacing.sm,\r\n },\r\n}))\r\n","import { DateFormat } from '@components/forms/date-picker/DatePicker.props'\r\n\r\nexport const formatDate = (date: Date | null, format: DateFormat = 'dd/MM/yyyy'): string => {\r\n if (!date) {return ''}\r\n\r\n const day = String(date.getDate()).padStart(2, '0')\r\n const month = String(date.getMonth() + 1).padStart(2, '0')\r\n const year = date.getFullYear()\r\n\r\n switch (format) {\r\n case 'dd/MM/yyyy':\r\n return `${day}/${month}/${year}`\r\n case 'MM/dd/yyyy':\r\n return `${month}/${day}/${year}`\r\n case 'yyyy-MM-dd':\r\n return `${year}-${month}-${day}`\r\n default:\r\n return `${day}/${month}/${year}`\r\n }\r\n}\r\n\r\nexport const parseDate = (value: string, format: DateFormat = 'dd/MM/yyyy'): Date | null => {\r\n if (!value) {\r\n return null\r\n }\r\n\r\n const cleanValue = value.replace(/[^\\d]/g, '')\r\n if (cleanValue.length !== 8) {\r\n return null\r\n }\r\n\r\n let day: number, month: number, year: number\r\n\r\n switch (format) {\r\n case 'dd/MM/yyyy':\r\n day = parseInt(cleanValue.substring(0, 2), 10)\r\n month = parseInt(cleanValue.substring(2, 4), 10) - 1\r\n year = parseInt(cleanValue.substring(4, 8), 10)\r\n break\r\n case 'MM/dd/yyyy':\r\n month = parseInt(cleanValue.substring(0, 2), 10) - 1\r\n day = parseInt(cleanValue.substring(2, 4), 10)\r\n year = parseInt(cleanValue.substring(4, 8), 10)\r\n break\r\n case 'yyyy-MM-dd':\r\n year = parseInt(cleanValue.substring(0, 4), 10)\r\n month = parseInt(cleanValue.substring(4, 6), 10) - 1\r\n day = parseInt(cleanValue.substring(6, 8), 10)\r\n break\r\n default:\r\n return null\r\n }\r\n\r\n // Validate date\r\n if (month < 0 || month > 11 || day < 1 || day > 31 || year < 1900 || year > 2100) {\r\n return null\r\n }\r\n\r\n const date = new Date(year, month, day)\r\n // Check if the date is valid (handles cases like Feb 30)\r\n if (date.getDate() !== day || date.getMonth() !== month || date.getFullYear() !== year) {\r\n return null\r\n }\r\n\r\n return date\r\n}\r\n\r\nexport const getDateSeparator = (format: DateFormat): string => {\r\n switch (format) {\r\n case 'dd/MM/yyyy':\r\n case 'MM/dd/yyyy':\r\n return '/'\r\n case 'yyyy-MM-dd':\r\n return '-'\r\n default:\r\n return '/'\r\n }\r\n}\r\n\r\nexport const formatInputValue = (value: string, format: DateFormat): string => {\r\n const cleanValue = value.replace(/[^\\d]/g, '')\r\n const separator = getDateSeparator(format)\r\n\r\n if (format === 'yyyy-MM-dd') {\r\n if (cleanValue.length <= 4) {\r\n return cleanValue\r\n }\r\n if (cleanValue.length <= 6) {\r\n return `${cleanValue.slice(0, 4)}${separator}${cleanValue.slice(4)}`\r\n }\r\n return `${cleanValue.slice(0, 4)}${separator}${cleanValue.slice(4, 6)}${separator}${cleanValue.slice(6, 8)}`\r\n } else {\r\n if (cleanValue.length <= 2) {\r\n return cleanValue\r\n }\r\n if (cleanValue.length <= 4) {\r\n return `${cleanValue.slice(0, 2)}${separator}${cleanValue.slice(2)}`\r\n }\r\n return `${cleanValue.slice(0, 2)}${separator}${cleanValue.slice(2, 4)}${separator}${cleanValue.slice(4, 8)}`\r\n }\r\n}\r\n\r\nexport interface CalendarDay {\r\n date: Date;\r\n isCurrentMonth: boolean;\r\n isSelected: boolean;\r\n isToday: boolean;\r\n isDisabled: boolean;\r\n}\r\n\r\nexport const getCalendarDays = (\r\n year: number,\r\n month: number,\r\n selectedDate?: Date | null,\r\n minDate?: Date,\r\n maxDate?: Date\r\n): CalendarDay[] => {\r\n const firstDay = new Date(year, month, 1)\r\n const startDate = new Date(firstDay)\r\n startDate.setDate(startDate.getDate() - firstDay.getDay())\r\n\r\n const days: CalendarDay[] = []\r\n const current = new Date(startDate)\r\n const today = new Date()\r\n today.setHours(0, 0, 0, 0)\r\n\r\n for (let i = 0; i < 42; i++) {\r\n const currentDate = new Date(current)\r\n currentDate.setHours(0, 0, 0, 0)\r\n\r\n const isCurrentMonth = current.getMonth() === month\r\n const isSelected = selectedDate ? current.toDateString() === selectedDate.toDateString() : false\r\n const isToday = current.toDateString() === today.toDateString()\r\n\r\n let isDisabled = false\r\n if (minDate) {\r\n const min = new Date(minDate)\r\n min.setHours(0, 0, 0, 0)\r\n if (currentDate < min) {isDisabled = true}\r\n }\r\n if (maxDate && !isDisabled) {\r\n const max = new Date(maxDate)\r\n max.setHours(0, 0, 0, 0)\r\n if (currentDate > max) {isDisabled = true}\r\n }\r\n\r\n days.push({\r\n date: new Date(current),\r\n isCurrentMonth,\r\n isSelected,\r\n isToday,\r\n isDisabled,\r\n })\r\n current.setDate(current.getDate() + 1)\r\n }\r\n\r\n return days\r\n}\r\n","import { FC, memo, useCallback, useMemo, useState } from 'react'\r\n\r\nimport CalendarGrid from '@components/forms/date-picker/calendar/calendar-grid/CalendarGrid.tsx'\r\nimport CalendarHeader from '@components/forms/date-picker/calendar/calendar-header/CalendarHeader.tsx'\r\nimport { CalendarProps, CalendarView } from '@components/forms/date-picker/calendar/Calendar.props'\r\nimport { CALENDAR_STYLES } from '@components/forms/date-picker/calendar/Calendar.styles'\r\nimport { getCalendarDays } from '@utils/ui/components/date-picker/datePicker.utils'\r\n\r\nconst Calendar: FC<CalendarProps> = ({\r\n value,\r\n onDateSelect,\r\n minDate,\r\n maxDate,\r\n locale = 'fr-FR',\r\n}) => {\r\n const [currentMonth, setCurrentMonth] = useState(() =>\r\n value ? new Date(value.getFullYear(), value.getMonth()) : new Date()\r\n )\r\n const [view, setView] = useState<CalendarView>('days')\r\n const [yearRangeStart, setYearRangeStart] = useState(() => {\r\n const year = value?.getFullYear() ?? new Date().getFullYear()\r\n return Math.floor(year / 12) * 12\r\n })\r\n\r\n const calendarDays = useMemo(() =>\r\n getCalendarDays(\r\n currentMonth.getFullYear(),\r\n currentMonth.getMonth(),\r\n value,\r\n minDate ?? undefined,\r\n maxDate ?? undefined\r\n ),\r\n [currentMonth, value, minDate, maxDate])\r\n\r\n const headerLabel = useMemo(() => {\r\n if (view === 'days') {\r\n return currentMonth.toLocaleDateString(locale, { month: 'long', year: 'numeric' })\r\n }\r\n if (view === 'months') {\r\n return String(currentMonth.getFullYear())\r\n }\r\n return `${yearRangeStart} - ${yearRangeStart + 11}`\r\n }, [view, currentMonth, locale, yearRangeStart])\r\n\r\n const handlePrev = useCallback(() => {\r\n if (view === 'years') {\r\n setYearRangeStart(prev => prev - 12)\r\n } else if (view === 'months') {\r\n setCurrentMonth(prev => new Date(prev.getFullYear() - 1, prev.getMonth()))\r\n } else {\r\n setCurrentMonth(prev => new Date(prev.getFullYear(), prev.getMonth() - 1))\r\n }\r\n }, [view])\r\n\r\n const handleNext = useCallback(() => {\r\n if (view === 'years') {\r\n setYearRangeStart(prev => prev + 12)\r\n } else if (view === 'months') {\r\n setCurrentMonth(prev => new Date(prev.getFullYear() + 1, prev.getMonth()))\r\n } else {\r\n setCurrentMonth(prev => new Date(prev.getFullYear(), prev.getMonth() + 1))\r\n }\r\n }, [view])\r\n\r\n const handleLabelClick = useCallback(() => {\r\n if (view === 'days') {\r\n setView('months')\r\n } else if (view === 'months') {\r\n setView('years')\r\n setYearRangeStart(Math.floor(currentMonth.getFullYear() / 12) * 12)\r\n }\r\n }, [view, currentMonth])\r\n\r\n const handleDaySelect = useCallback((date: Date) => {\r\n onDateSelect(date)\r\n }, [onDateSelect])\r\n\r\n const handleMonthSelect = useCallback((monthIndex: number) => {\r\n setCurrentMonth(new Date(currentMonth.getFullYear(), monthIndex))\r\n setView('days')\r\n }, [currentMonth])\r\n\r\n const handleYearSelect = useCallback((year: number) => {\r\n setCurrentMonth(new Date(year, currentMonth.getMonth()))\r\n setView('months')\r\n }, [currentMonth])\r\n\r\n return (\r\n <div className={CALENDAR_STYLES.root}>\r\n <CalendarHeader\r\n view={view}\r\n label={headerLabel}\r\n onPrev={handlePrev}\r\n onNext={handleNext}\r\n onLabelClick={handleLabelClick}\r\n isLabelClickable={view !== 'years'}\r\n />\r\n <CalendarGrid\r\n view={view}\r\n days={calendarDays}\r\n currentMonth={currentMonth}\r\n yearRangeStart={yearRangeStart}\r\n onDaySelect={handleDaySelect}\r\n onMonthSelect={handleMonthSelect}\r\n onYearSelect={handleYearSelect}\r\n locale={locale}\r\n />\r\n </div>\r\n )\r\n}\r\n\r\nCalendar.displayName = 'Calendar'\r\n\r\nexport default memo(Calendar)\r\n","import { createStyles } from '@aurora-ds/theme'\r\n\r\nimport { DatePickerStyleParams } from '@components/forms/date-picker/DatePicker.props'\r\nimport { BUTTON_SIZE } from '@constants/globalConstants'\r\n\r\n/**\r\n * DatePicker styles using createStyles from @aurora-ds/theme\r\n */\r\nexport const DATE_PICKER_STYLES = createStyles((theme) => ({\r\n container: ({ width }: DatePickerStyleParams) => ({\r\n position: 'relative',\r\n display: 'flex',\r\n alignItems: 'center',\r\n width: width ?? '100%',\r\n }),\r\n input: {\r\n boxSizing: 'border-box',\r\n width: '100%',\r\n padding: `${theme.spacing.sm} ${theme.spacing.md}`,\r\n paddingRight: `calc(${theme.spacing.sm} + 1.5rem)`,\r\n border: `1px solid ${theme.colors.border}`,\r\n borderRadius: theme.radius.md,\r\n fontSize: theme.fontSize.sm,\r\n fontFamily: 'inherit',\r\n backgroundColor: theme.colors.surface,\r\n color: theme.colors.text,\r\n transition: `border-color ${theme.transition.fast}`,\r\n outline: 'none',\r\n minHeight: BUTTON_SIZE,\r\n maxHeight: BUTTON_SIZE,\r\n lineHeight: theme.lineHeight.none,\r\n ':hover:not(:disabled)': {\r\n borderColor: theme.colors.primaryHover,\r\n },\r\n ':focus': {\r\n borderColor: theme.colors.primary,\r\n },\r\n '::placeholder': {\r\n color: theme.colors.textTertiary,\r\n },\r\n ':disabled': {\r\n color: theme.colors.disabledText,\r\n cursor: 'not-allowed',\r\n opacity: theme.opacity.high,\r\n },\r\n },\r\n calendarButton: {\r\n position: 'absolute',\r\n right: theme.spacing.xs,\r\n top: '50%',\r\n transform: 'translateY(-50%)',\r\n zIndex: 2,\r\n },\r\n}))\r\n","import { ChangeEvent, FC, useState, useRef, useCallback, memo, useEffect } from 'react'\r\n\r\nimport { IconButton } from '@components/actions/icon-button'\r\nimport { Calendar } from '@components/forms/date-picker/calendar'\r\nimport { DatePickerProps } from '@components/forms/date-picker/DatePicker.props'\r\nimport { DATE_PICKER_STYLES } from '@components/forms/date-picker/DatePicker.styles'\r\nimport { Text } from '@components/foundation/text'\r\nimport { Stack } from '@components/layout/stack'\r\nimport { Menu } from '@components/overlay/menu'\r\nimport { CalendarIcon } from '@resources/icons/CalendarIcon'\r\nimport { formatDate, formatInputValue, parseDate } from '@utils/ui/components/date-picker/datePicker.utils'\r\n\r\n/**\r\n * DatePicker component with custom calendar\r\n */\r\nconst DatePicker: FC<DatePickerProps> = ({\r\n value,\r\n onChange,\r\n label,\r\n mandatory = false,\r\n placeholder,\r\n disabled = false,\r\n width,\r\n minDate,\r\n maxDate,\r\n dateFormat = 'dd/MM/yyyy',\r\n locale = 'fr-FR',\r\n}) => {\r\n const [isOpen, setIsOpen] = useState(false)\r\n const [inputValue, setInputValue] = useState(() => formatDate(value ?? null, dateFormat))\r\n const [isUserTyping, setIsUserTyping] = useState(false)\r\n const inputRef = useRef<HTMLInputElement>(null)\r\n const containerRef = useRef<HTMLDivElement>(null)\r\n\r\n // Sync inputValue when value prop changes (but not while user is typing)\r\n useEffect(() => {\r\n if (!isUserTyping) {\r\n setInputValue(formatDate(value ?? null, dateFormat))\r\n }\r\n }, [value, dateFormat, isUserTyping])\r\n\r\n const handleClose = useCallback(() => {\r\n setIsOpen(false)\r\n }, [])\r\n\r\n const handleDateSelect = useCallback((date: Date) => {\r\n onChange(date)\r\n setInputValue(formatDate(date, dateFormat))\r\n setIsOpen(false)\r\n }, [onChange, dateFormat])\r\n\r\n const handleInputChange = useCallback((e: ChangeEvent<HTMLInputElement>) => {\r\n const rawValue = e.target.value\r\n const formatted = formatInputValue(rawValue, dateFormat)\r\n setInputValue(formatted)\r\n setIsUserTyping(true)\r\n\r\n // Try to parse the date\r\n const parsedDate = parseDate(formatted, dateFormat)\r\n if (parsedDate) {\r\n // Check if within min/max bounds\r\n let isValid = true\r\n if (minDate && parsedDate < minDate) {\r\n isValid = false\r\n }\r\n if (maxDate && parsedDate > maxDate) {\r\n isValid = false\r\n }\r\n\r\n if (isValid) {\r\n onChange(parsedDate)\r\n }\r\n } else if (rawValue === '') {\r\n onChange(null)\r\n }\r\n }, [dateFormat, minDate, maxDate, onChange])\r\n\r\n const handleInputBlur = useCallback(() => {\r\n setIsUserTyping(false)\r\n\r\n // If input is empty, that's valid (null date)\r\n if (inputValue === '') {\r\n return\r\n }\r\n\r\n // Reset to the current value if input is invalid\r\n const parsedDate = parseDate(inputValue, dateFormat)\r\n if (!parsedDate) {\r\n setInputValue(formatDate(value ?? null, dateFormat))\r\n }\r\n }, [inputValue, dateFormat, value])\r\n\r\n const handleCalendarButtonClick = useCallback((e: React.MouseEvent) => {\r\n e.stopPropagation()\r\n if (!disabled) {\r\n setIsOpen(prev => !prev)\r\n }\r\n }, [disabled])\r\n\r\n return (\r\n <Stack\r\n direction={'column'}\r\n gap={'xs'}\r\n align={'stretch'}\r\n width={width ?? '100%'}\r\n >\r\n {label && (\r\n <Stack\r\n direction={'row'}\r\n gap={'xs'}\r\n align={'center'}\r\n >\r\n <Text\r\n variant={'label'}\r\n fontSize={'sm'}\r\n >\r\n {label}\r\n </Text>\r\n {mandatory && (\r\n <Text\r\n variant={'label'}\r\n fontSize={'sm'}\r\n color={'error'}\r\n >\r\n *\r\n </Text>\r\n )}\r\n </Stack>\r\n )}\r\n <div\r\n ref={containerRef}\r\n className={DATE_PICKER_STYLES.container({ width })}\r\n >\r\n <input\r\n ref={inputRef}\r\n value={inputValue}\r\n onChange={handleInputChange}\r\n onBlur={handleInputBlur}\r\n placeholder={placeholder ?? dateFormat.toLowerCase()}\r\n className={DATE_PICKER_STYLES.input}\r\n disabled={disabled}\r\n />\r\n <div className={DATE_PICKER_STYLES.calendarButton}>\r\n <IconButton\r\n icon={<CalendarIcon />}\r\n onClick={handleCalendarButtonClick}\r\n disabled={disabled}\r\n variant={'text'}\r\n size={'small'}\r\n textColor={'textSecondary'}\r\n />\r\n </div>\r\n </div>\r\n <Menu\r\n anchor={isOpen ? containerRef.current : null}\r\n onClose={handleClose}\r\n width={280}\r\n anchorOrigin={'left'}\r\n >\r\n <Calendar\r\n value={value}\r\n onDateSelect={handleDateSelect}\r\n minDate={minDate}\r\n maxDate={maxDate}\r\n locale={locale}\r\n />\r\n </Menu>\r\n </Stack>\r\n )\r\n}\r\n\r\nDatePicker.displayName = 'DatePicker'\r\n\r\nexport default memo(DatePicker)\r\n","import { createStyles } from '@aurora-ds/theme'\r\n\r\nimport { CardStyleParams } from '@components/layout/card/Card.props.ts'\r\n\r\n/**\r\n * Card styles using createStyles from @aurora-ds/theme\r\n */\r\nexport const CARD_STYLES = createStyles((theme) => ({\r\n root: ({\r\n direction,\r\n padding,\r\n width,\r\n height,\r\n gap,\r\n radius,\r\n shadow,\r\n align,\r\n justify,\r\n backgroundColor,\r\n borderColor\r\n }: CardStyleParams) => ({\r\n display: 'flex',\r\n flexDirection: direction,\r\n padding: padding ? theme.spacing[padding] : undefined,\r\n width,\r\n height,\r\n gap: gap ? theme.spacing[gap] : undefined,\r\n borderRadius: theme.radius[radius],\r\n boxShadow: theme.shadows[shadow],\r\n backgroundColor: theme.colors[backgroundColor],\r\n border: borderColor ? `1px solid ${theme.colors[borderColor]}` : 'none',\r\n alignItems: align,\r\n justifyContent: justify,\r\n boxSizing: 'border-box',\r\n }),\r\n}))\r\n","import { FC } from 'react'\r\n\r\nimport { CardProps } from '@components/layout/card/Card.props.ts'\r\nimport { CARD_STYLES } from '@components/layout/card/Card.styles.ts'\r\n\r\n/**\r\n * Card component\r\n *\r\n * A container component with a background, border radius, and optional shadow.\r\n * Uses a Stack layout internally for organizing children.\r\n *\r\n * **Direction:**\r\n * - `column`: Vertical layout (default)\r\n * - `row`: Horizontal layout\r\n */\r\nconst Card: FC<CardProps> = ({\r\n children,\r\n direction = 'column',\r\n padding = 'md',\r\n width,\r\n height,\r\n gap,\r\n radius = 'md',\r\n shadow = 'none',\r\n align,\r\n justify,\r\n backgroundColor = 'surface',\r\n borderColor = 'border',\r\n ariaLabel,\r\n ariaLabelledBy,\r\n ariaDescribedBy,\r\n role,\r\n tabIndex,\r\n}) => {\r\n return (\r\n <div\r\n className={CARD_STYLES.root({\r\n direction,\r\n padding,\r\n width,\r\n height,\r\n gap,\r\n radius,\r\n shadow,\r\n align,\r\n justify,\r\n backgroundColor,\r\n borderColor\r\n })}\r\n aria-label={ariaLabel}\r\n aria-labelledby={ariaLabelledBy}\r\n aria-describedby={ariaDescribedBy}\r\n role={role}\r\n tabIndex={tabIndex}\r\n >\r\n {children}\r\n </div>\r\n )\r\n}\r\n\r\nCard.displayName = 'Card'\r\n\r\nexport default Card\r\n","import { createStyles } from '@aurora-ds/theme'\r\n\r\nimport { GridStyleParams } from '@components/layout/grid/Grid.props.ts'\r\n\r\n/**\r\n * Generates the grid-template-columns value based on columns and minChildWidth props\r\n * - If only columns is defined: creates a fixed number of columns\r\n * - If only minChildWidth is defined: creates responsive auto-fill columns\r\n * - If both are defined: creates responsive columns with a maximum limit (columns acts as max)\r\n *\r\n * Key difference between auto-fill and auto-fit:\r\n * - auto-fill: keeps empty column tracks, items don't stretch to fill container\r\n * - auto-fit: collapses empty tracks, items stretch to fill available space\r\n */\r\nconst getGridTemplateColumns = (\r\n columns?: number,\r\n minChildWidth?: string | number,\r\n columnGap?: string\r\n): string | undefined => {\r\n const minWidthValue = typeof minChildWidth === 'number' ? `${minChildWidth}px` : minChildWidth\r\n\r\n if (minChildWidth && columns) {\r\n // Responsive grid with max columns limit\r\n // Uses auto-fill to preserve empty column tracks (items don't stretch beyond their column)\r\n // The min value ensures items are at least minChildWidth\r\n // The max value is 1fr to distribute space evenly within the max columns constraint\r\n const gapValue = columnGap || '0px'\r\n const minColumnWidth = `calc((100% - (${columns} - 1) * ${gapValue}) / ${columns})`\r\n return `repeat(auto-fill, minmax(max(${minWidthValue}, ${minColumnWidth}), 1fr))`\r\n }\r\n if (minChildWidth) {\r\n // Responsive grid without column limit - items will fill available space\r\n return `repeat(auto-fill, minmax(${minWidthValue}, 1fr))`\r\n }\r\n if (columns) {\r\n // Fixed number of columns - each column takes equal space\r\n return `repeat(${columns}, 1fr)`\r\n }\r\n return undefined\r\n}\r\n\r\n/**\r\n * Generates the grid-template-rows value based on rows prop\r\n */\r\nconst getGridTemplateRows = (rows?: number): string | undefined => {\r\n if (rows) {\r\n return `repeat(${rows}, auto)`\r\n }\r\n return undefined\r\n}\r\n\r\n/**\r\n * Grid styles using createStyles from @aurora-ds/theme\r\n */\r\nexport const GRID_STYLES = createStyles((theme) => ({\r\n root: ({\r\n columns,\r\n rows,\r\n columnGap,\r\n rowGap,\r\n width,\r\n height,\r\n minHeight,\r\n alignItems,\r\n justifyItems,\r\n alignContent,\r\n justifyContent,\r\n padding,\r\n minChildWidth,\r\n }: GridStyleParams) => {\r\n const columnGapValue = columnGap ? theme.spacing[columnGap] : undefined\r\n const rowGapValue = rowGap ? theme.spacing[rowGap] : undefined\r\n\r\n return {\r\n display: 'grid',\r\n gridTemplateColumns: getGridTemplateColumns(columns, minChildWidth, columnGapValue),\r\n gridTemplateRows: getGridTemplateRows(rows),\r\n columnGap: columnGapValue,\r\n rowGap: rowGapValue,\r\n width,\r\n height,\r\n minHeight,\r\n alignItems,\r\n justifyItems,\r\n alignContent,\r\n justifyContent,\r\n padding: padding ? theme.spacing[padding] : undefined\r\n } as const\r\n },\r\n}))\r\n","import { FC } from 'react'\r\n\r\nimport { GridProps } from '@components/layout/grid/Grid.props.ts'\r\nimport { GRID_STYLES } from '@components/layout/grid/Grid.styles.ts'\r\n\r\n/**\r\n * Grid component\r\n *\r\n * A CSS Grid container for laying out children in a two-dimensional grid.\r\n *\r\n * **Usage:**\r\n * - Use `columns` to define the number of columns or a custom grid-template-columns value\r\n * - Use `rows` to define the number of rows or a custom grid-template-rows value\r\n * - Use `minChildWidth` for responsive auto-fill grids\r\n * - Combine `columns` + `minChildWidth` for responsive grid with max columns limit\r\n */\r\nconst Grid: FC<GridProps> = ({\r\n children,\r\n columns = 3,\r\n rows,\r\n columnGap = 'md',\r\n rowGap = 'md',\r\n width,\r\n height,\r\n minHeight,\r\n alignItems,\r\n justifyItems,\r\n alignContent,\r\n justifyContent,\r\n padding,\r\n minChildWidth,\r\n ariaLabel,\r\n ariaLabelledBy,\r\n ariaDescribedBy,\r\n role,\r\n tabIndex,\r\n}) => {\r\n return (\r\n <div\r\n className={GRID_STYLES.root({\r\n columns,\r\n rows,\r\n columnGap,\r\n rowGap,\r\n width,\r\n height,\r\n minHeight,\r\n alignItems,\r\n justifyItems,\r\n alignContent,\r\n justifyContent,\r\n padding,\r\n minChildWidth,\r\n })}\r\n aria-label={ariaLabel}\r\n aria-labelledby={ariaLabelledBy}\r\n aria-describedby={ariaDescribedBy}\r\n role={role}\r\n tabIndex={tabIndex}\r\n >\r\n {children}\r\n </div>\r\n )\r\n}\r\n\r\nGrid.displayName = 'Grid'\r\n\r\nexport default Grid\r\n","import { createStyles } from '@aurora-ds/theme'\r\n\r\nimport { SeparatorStyleParams } from '@components/layout/separator/Separator.props.ts'\r\n\r\n/**\r\n * Separator styles using createStyles from @aurora-ds/theme\r\n */\r\nexport const SEPARATOR_STYLES = createStyles((theme) => ({\r\n root: ({\r\n direction = 'horizontal',\r\n color = 'border',\r\n width,\r\n height\r\n }: SeparatorStyleParams) => ({\r\n backgroundColor: theme.colors[color],\r\n ...(direction === 'horizontal' ? {\r\n width: '100%',\r\n height: '1px',\r\n } : {\r\n width: '1px',\r\n height: '100%',\r\n }),\r\n ...(width !== undefined && { width }),\r\n ...(height !== undefined && { height }),\r\n }),\r\n}))\r\n","import { FC } from 'react'\r\n\r\nimport { SeparatorProps } from '@components/layout/separator/Separator.props.ts'\r\nimport { SEPARATOR_STYLES } from '@components/layout/separator/Separator.styles.ts'\r\n\r\n/**\r\n * Separator component\r\n *\r\n * A simple separator line for horizontal or vertical division.\r\n */\r\nconst Separator: FC<SeparatorProps> = ({\r\n direction = 'horizontal',\r\n width,\r\n height,\r\n color = 'border',\r\n}) => {\r\n return (\r\n <div\r\n className={SEPARATOR_STYLES.root({ direction, color, width, height })}\r\n />\r\n )\r\n}\r\n\r\nSeparator.displayName = 'Separator'\r\n\r\nexport default Separator\r\n","import { createStyles } from '@aurora-ds/theme'\r\n\r\nimport { PageSectionStyleParams } from '@components/layout/page-construction/page-section/PageSection.props.ts'\r\n\r\nexport const PAGE_SECTION_STYLES = createStyles((theme) => ({\r\n root: ({\r\n gap,\r\n paddingHorizontal,\r\n paddingVertical,\r\n alignItems = 'center',\r\n maxWidth,\r\n minHeight\r\n }: PageSectionStyleParams) => ({\r\n display: 'flex',\r\n flexDirection: 'column',\r\n gap: gap || theme.spacing.xl,\r\n padding: `${paddingVertical ? theme.spacing[paddingVertical] : theme.spacing['3xl']} ${paddingHorizontal ? theme.spacing[paddingHorizontal] : theme.spacing.xl}`,\r\n alignItems,\r\n maxWidth,\r\n minHeight,\r\n width: '100%',\r\n margin: '0 auto'\r\n })\r\n}))\r\n","import { FC } from 'react'\n\nimport { PageSectionProps } from '@components/layout/page-construction/page-section/PageSection.props.ts'\nimport { PAGE_SECTION_STYLES } from '@components/layout/page-construction/page-section/PageSection.styles.ts'\n\n/**\n * PageSection component\n *\n * A layout component that provides consistent spacing and alignment for page sections.\n * Supports customization of gap, padding, alignment, min height and max width.\n */\nconst PageSection: FC<PageSectionProps> = ({\n children,\n gap,\n paddingHorizontal,\n paddingVertical,\n alignItems,\n maxWidth,\n minHeight,\n ariaLabel,\n ariaLabelledBy,\n ariaDescribedBy,\n role,\n tabIndex,\n}) => {\n return (\n <section\n className={PAGE_SECTION_STYLES.root({ gap, paddingHorizontal, paddingVertical, alignItems, maxWidth, minHeight })}\n aria-label={ariaLabel}\n aria-labelledby={ariaLabelledBy}\n aria-describedby={ariaDescribedBy}\n role={role}\n tabIndex={tabIndex}\n >\n {children}\n </section>\n )\n}\n\nPageSection.displayName = 'PageSection'\n\nexport default PageSection\n","import { createStyles } from '@aurora-ds/theme'\r\n\r\nimport { PageStyleParams } from '@components/layout/page-construction/page/Page.props.ts'\r\n\r\nexport const PAGE_STYLES = createStyles(() => ({\r\n root: ({\r\n backgroundColor,\r\n padding\r\n }: PageStyleParams) => ({\r\n width: '100%',\r\n height: '100%',\r\n display: 'flex',\r\n flexDirection: 'column',\r\n alignItems: 'center',\r\n backgroundColor,\r\n padding,\r\n }),\r\n children: ({\r\n maxWidth = '100%'\r\n }: PageStyleParams) => ({\r\n maxWidth,\r\n height: '100%',\r\n marginLeft: 'auto',\r\n marginRight: 'auto',\r\n width: '100%',\r\n flex: 1,\r\n })\r\n}))\r\n","import { FC } from 'react'\n\nimport { PageProps } from '@components/layout/page-construction/page/Page.props.ts'\nimport { PAGE_STYLES } from '@components/layout/page-construction/page/Page.styles.ts'\n\n/**\n * Page component\n *\n * A layout component that provides consistent page structure with optional footer.\n * Supports customization of dimensions, background, and content constraints.\n */\nconst Page: FC<PageProps> = ({\n children,\n footer,\n maxWidth,\n backgroundColor,\n padding,\n className,\n ariaLabel,\n ariaLabelledBy,\n ariaDescribedBy,\n role,\n tabIndex,\n}) => {\n return (\n <div\n className={`${PAGE_STYLES.root({ backgroundColor, padding })} ${className || ''}`}\n aria-label={ariaLabel}\n aria-labelledby={ariaLabelledBy}\n aria-describedby={ariaDescribedBy}\n role={role}\n tabIndex={tabIndex}\n >\n <div\n className={PAGE_STYLES.children({ maxWidth })}\n >\n {children}\n </div>\n {footer && (\n <div>\n {footer}\n </div>\n )}\n </div>\n )\n}\n\nPage.displayName = 'Page'\n\nexport default Page\n","import { createStyles } from '@aurora-ds/theme'\r\n\r\nimport {\r\n AccordionContentStyleParams,\r\n AccordionHeaderStyleParams,\r\n AccordionIconStyleParams,\r\n AccordionStyleParams\r\n} from '@components/overlay/accordion/Accordion.props.ts'\r\n\r\nexport const ACCORDION_STYLES = createStyles((theme) => {\r\n return {\r\n root: ({ disabled, width }: AccordionStyleParams) => ({\r\n width: width ?? '100%',\r\n overflow: 'hidden',\r\n opacity: disabled ? 0.8 : 1,\r\n borderRadius: theme.radius.md,\r\n }),\r\n header: ({ disabled, backgroundColor, headerPadding }: AccordionHeaderStyleParams) => ({\r\n display: 'flex',\r\n alignItems: 'center',\r\n width: '100%',\r\n padding: headerPadding ?? `${theme.spacing.sm} ${theme.spacing.md}`,\r\n border: 'none',\r\n backgroundColor: backgroundColor ? theme.colors[backgroundColor] :'transparent',\r\n cursor: disabled ? 'not-allowed' : 'pointer',\r\n transition: `background-color ${theme.transition.fast}`,\r\n gap: theme.spacing.sm,\r\n borderRadius: theme.radius.md,\r\n ':hover': {\r\n backgroundColor: disabled ? 'transparent' : theme.colors.surfaceHover,\r\n },\r\n }),\r\n expandIcon: ({ expanded }: AccordionIconStyleParams) => ({\r\n transition: `transform ${theme.transition.fast}`,\r\n transform: expanded ? 'rotate(180deg)' : 'rotate(0deg)',\r\n }),\r\n content: ({ expanded, contentPadding }: AccordionContentStyleParams) => ({\r\n display: expanded ? 'block' : 'none',\r\n padding: contentPadding ?? `0 ${theme.spacing.sm} ${theme.spacing.md}`,\r\n }),\r\n }\r\n})\r\n","import { FC, useState } from 'react'\r\n\r\nimport { Icon } from '@components/foundation/icon'\r\nimport { Text } from '@components/foundation/text'\r\nimport { Stack } from '@components/layout/stack'\r\nimport { AccordionProps } from '@components/overlay/accordion/Accordion.props.ts'\r\nimport { ACCORDION_STYLES } from '@components/overlay/accordion/Accordion.styles.ts'\r\nimport { ChevronDownIcon } from '@resources/Icons.ts'\r\n\r\n/**\r\n * Accordion component\r\n *\r\n * A collapsible container that can show/hide content.\r\n * Supports controlled and uncontrolled modes.\r\n */\r\nconst Accordion: FC<AccordionProps> = ({\r\n title,\r\n children,\r\n expanded,\r\n defaultExpanded = false,\r\n onChange,\r\n disabled = false,\r\n icon,\r\n backgroundColor,\r\n width,\r\n headerPadding,\r\n contentPadding,\r\n ariaLabel,\r\n ariaLabelledBy,\r\n ariaDescribedBy,\r\n role,\r\n tabIndex,\r\n}) => {\r\n const [internalExpanded, setInternalExpanded] = useState(defaultExpanded)\r\n\r\n // Use controlled value if provided, otherwise use internal state\r\n const isExpanded = expanded !== undefined ? expanded : internalExpanded\r\n\r\n const handleToggle = () => {\r\n if (disabled) {return}\r\n\r\n const newExpanded = !isExpanded\r\n\r\n if (expanded === undefined) {\r\n setInternalExpanded(newExpanded)\r\n }\r\n\r\n onChange?.(newExpanded)\r\n }\r\n\r\n return (\r\n <div\r\n className={ACCORDION_STYLES.root({ disabled, width })}\r\n aria-label={ariaLabel}\r\n aria-labelledby={ariaLabelledBy}\r\n aria-describedby={ariaDescribedBy}\r\n role={role}\r\n tabIndex={tabIndex}\r\n >\r\n <button\r\n type={'button'}\r\n className={ACCORDION_STYLES.header({ disabled, backgroundColor, headerPadding })}\r\n onClick={handleToggle}\r\n disabled={disabled}\r\n aria-expanded={isExpanded}\r\n >\r\n <Stack\r\n direction={'row'}\r\n align={'center'}\r\n gap={'sm'}\r\n width={'100%'}\r\n >\r\n {icon && (\r\n <Icon color={disabled ? 'disabledText' : 'text'}>\r\n {icon}\r\n </Icon>\r\n )}\r\n <Text\r\n variant={'label'}\r\n color={disabled ? 'disabledText' : 'text'}\r\n >\r\n {title}\r\n </Text>\r\n </Stack>\r\n <div\r\n className={ACCORDION_STYLES.expandIcon({ expanded: isExpanded })}\r\n >\r\n <Icon color={disabled ? 'disabledText' : 'text'}>\r\n <ChevronDownIcon />\r\n </Icon>\r\n </div>\r\n </button>\r\n <div\r\n className={ACCORDION_STYLES.content({ expanded: isExpanded, contentPadding })}\r\n role={'region'}\r\n aria-hidden={!isExpanded}\r\n >\r\n {children}\r\n </div>\r\n </div>\r\n )\r\n}\r\n\r\nAccordion.displayName = 'Accordion'\r\n\r\nexport default Accordion\r\n","import { AlertPosition } from '@interfaces/alert.types'\r\n\r\nconst ALERT_OFFSET = 16\r\n\r\n/**\r\n * Get position styles for alert\r\n * @param position - Alert position\r\n * @param offsetY - Vertical offset for stacking (in pixels)\r\n * @returns Object with CSS position styles (top/bottom + left/right)\r\n */\r\nexport const getAlertPositionStyles = (position: AlertPosition, offsetY: number): Record<string, string> => {\r\n const verticalPosition = `${ALERT_OFFSET + offsetY}px`\r\n\r\n switch (position) {\r\n case 'top-left':\r\n return { top: verticalPosition, left: `${ALERT_OFFSET}px` }\r\n case 'top-right':\r\n return { top: verticalPosition, right: `${ALERT_OFFSET}px` }\r\n case 'bottom-left':\r\n return { bottom: verticalPosition, left: `${ALERT_OFFSET}px` }\r\n case 'bottom-right':\r\n return { bottom: verticalPosition, right: `${ALERT_OFFSET}px` }\r\n default:\r\n return { top: verticalPosition, right: `${ALERT_OFFSET}px` }\r\n }\r\n}\r\n","import { Theme } from '@aurora-ds/theme'\r\n\r\nimport { AlertVariant } from '@interfaces/alert.types'\r\n\r\nexport interface AlertVariantColors {\r\n background: string\r\n border: string\r\n iconColor: 'info' | 'warning' | 'error' | 'success' | 'text'\r\n}\r\n\r\n/**\r\n * Get colors for alert variants\r\n * @param theme - Aurora theme\r\n * @param variant - Alert variant\r\n * @returns Colors for the variant\r\n */\r\nexport const getAlertVariantColors = (theme: Theme, variant: AlertVariant): AlertVariantColors => {\r\n const variantColors: Record<AlertVariant, AlertVariantColors> = {\r\n default: {\r\n background: theme.colors.surface,\r\n border: theme.colors.border,\r\n iconColor: 'text'\r\n },\r\n info: {\r\n background: theme.colors.infoSubtle,\r\n border: theme.colors.info,\r\n iconColor: 'info'\r\n },\r\n warning: {\r\n background: theme.colors.warningSubtle,\r\n border: theme.colors.warning,\r\n iconColor: 'warning'\r\n },\r\n error: {\r\n background: theme.colors.errorSubtle,\r\n border: theme.colors.error,\r\n iconColor: 'error'\r\n },\r\n success: {\r\n background: theme.colors.successSubtle,\r\n border: theme.colors.success,\r\n iconColor: 'success'\r\n }\r\n }\r\n\r\n return variantColors[variant]\r\n}\r\n","import { createStyles, Theme } from '@aurora-ds/theme'\r\n\r\nimport { AlertStyleParams } from '@components/overlay/alert/Alert.props'\r\nimport { ALERT_MAX_WIDTH } from '@constants/globalConstants.ts'\r\nimport { getAlertPositionStyles } from '@utils/ui/components/overlay/alert/getAlertPositionStyles.utils'\r\nimport { getAlertVariantColors } from '@utils/ui/components/overlay/alert/getAlertVariantColors.utils'\r\n\r\nexport const ALERT_STYLES = createStyles(\r\n (theme: Theme) => ({\r\n root: ({ variant, position, isVisible, offsetY, maxWidth }: AlertStyleParams) => {\r\n const colors = getAlertVariantColors(theme, variant)\r\n const positionStyles = getAlertPositionStyles(position, offsetY)\r\n\r\n return {\r\n position: 'fixed',\r\n ...positionStyles,\r\n display: 'flex',\r\n alignItems: 'center',\r\n gap: theme.spacing.sm,\r\n padding: theme.spacing.sm,\r\n backgroundColor: colors.background,\r\n border: `1px solid ${colors.border}`,\r\n borderRadius: theme.radius.md,\r\n boxShadow: theme.shadows.lg,\r\n minWidth: ALERT_MAX_WIDTH,\r\n maxWidth,\r\n overflow: 'hidden',\r\n zIndex: theme.zIndex.toast,\r\n opacity: isVisible ? 1 : 0,\r\n transform: isVisible ? 'translateY(0)' :\r\n (position.startsWith('top') ? 'translateY(-8px)' : 'translateY(8px)'),\r\n transition: `all ${theme.transition.normal}, opacity ${theme.transition.fast}`,\r\n pointerEvents: isVisible ? 'auto' : 'none'\r\n } as const\r\n }\r\n })\r\n)\r\n","import { JSX } from 'react'\r\n\r\nimport { AlertVariant } from '@interfaces/alert.types'\r\nimport { AlertCircleIcon, AlertTriangleIcon, CheckCircleIcon, InfoIcon } from '@resources/Icons'\r\n\r\n// Pre-create icon instances to avoid recreation on every call\r\nconst ALERT_ICONS: Record<AlertVariant, JSX.Element> = {\r\n default: <InfoIcon />,\r\n info: <InfoIcon />,\r\n warning: <AlertTriangleIcon />,\r\n error: <AlertCircleIcon />,\r\n success: <CheckCircleIcon />\r\n}\r\n\r\n/**\r\n * Get icon component for alert variant\r\n * @param variant - Alert variant\r\n * @returns JSX Element for the icon\r\n */\r\nexport const getAlertIcon = (variant: AlertVariant): JSX.Element => {\r\n return ALERT_ICONS[variant]\r\n}\r\n","import { useTheme } from '@aurora-ds/theme'\r\nimport { FC, useEffect, useRef, useMemo, memo } from 'react'\r\n\r\nimport { Icon } from '@components/foundation/icon'\r\nimport { Text } from '@components/foundation/text'\r\nimport { AlertProps } from '@components/overlay/alert/Alert.props'\r\nimport { ALERT_STYLES } from '@components/overlay/alert/Alert.styles'\r\nimport { ALERT_MAX_WIDTH } from '@constants/globalConstants.ts'\r\nimport { getAlertIcon } from '@utils/ui/components/overlay/alert/getAlertIcon.utils.tsx'\r\nimport { getAlertVariantColors } from '@utils/ui/components/overlay/alert/getAlertVariantColors.utils.ts'\r\n\r\n/**\r\n * Alert component - Display notifications with different variants\r\n *\r\n * **Variants:**\r\n * - `default`: Standard alert with neutral styling\r\n * - `info`: Informational alert with blue styling\r\n * - `warning`: Warning alert with yellow/orange styling\r\n * - `error`: Error alert with red styling\r\n * - `success`: Success alert with green styling\r\n *\r\n * **Features:**\r\n * - Auto-dismisses after 3 seconds\r\n * - Positioned at screen corners\r\n * - Supports stacking with offsetY\r\n * - Icon based on variant\r\n * - Smooth animations\r\n * - Dynamic height calculation for proper stacking\r\n *\r\n * @example\r\n * ```tsx\r\n * <Alert\r\n * text=\"Operation completed successfully\"\r\n * variant=\"success\"\r\n * position=\"top-right\"\r\n * isVisible={true}\r\n * />\r\n * ```\r\n */\r\nconst Alert: FC<AlertProps> = memo(({\r\n text,\r\n variant = 'default',\r\n position = 'top-right',\r\n isVisible = false,\r\n offsetY = 0,\r\n maxWidth = ALERT_MAX_WIDTH,\r\n alertId,\r\n onHeightChange\r\n}) => {\r\n const theme = useTheme()\r\n const alertRef = useRef<HTMLDivElement>(null)\r\n const lastHeightRef = useRef<number>(0)\r\n\r\n const icon = useMemo(() => getAlertIcon(variant), [variant])\r\n const colors = useMemo(() => getAlertVariantColors(theme, variant), [theme, variant])\r\n\r\n // Report height changes to parent (only when height actually changes)\r\n useEffect(() => {\r\n if (alertRef.current && onHeightChange && isVisible && alertId) {\r\n const height = alertRef.current.offsetHeight\r\n // Only call onHeightChange if height has actually changed\r\n if (height !== lastHeightRef.current) {\r\n lastHeightRef.current = height\r\n onHeightChange(alertId, height)\r\n }\r\n }\r\n }, [isVisible, text, maxWidth, alertId, onHeightChange])\r\n\r\n return (\r\n <div\r\n ref={alertRef}\r\n className={ALERT_STYLES.root({ variant, position, isVisible, offsetY, maxWidth })}\r\n role={'alert'}\r\n aria-live={'polite'}\r\n >\r\n <Icon\r\n size={'sm'}\r\n color={colors.iconColor}\r\n >\r\n {icon}\r\n </Icon>\r\n <Text\r\n variant={'span'}\r\n fontSize={'sm'}\r\n color={colors.iconColor}\r\n maxLines={4}\r\n >\r\n {text}\r\n </Text>\r\n </div>\r\n )\r\n})\r\n\r\nAlert.displayName = 'Alert'\r\n\r\nexport { Alert }\r\n","import { createStyles } from '@aurora-ds/theme'\r\n\r\nexport const MODAL_STYLES = createStyles((theme) => ({\r\n background: (isFadingIn: boolean) => ({\r\n background: 'rgba(0, 0, 0, 0.6)',\r\n display: 'flex',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n position: 'fixed',\r\n top: 0,\r\n left: 0,\r\n zIndex: 999999,\r\n transition: 'opacity 150ms ease-in-out',\r\n width: '100vw',\r\n height: '100vh',\r\n opacity: isFadingIn ? 1 : 0,\r\n }),\r\n content: (isFadingIn: boolean) => ({\r\n width: '100%',\r\n maxWidth: 500,\r\n borderRadius: 8,\r\n position: 'absolute',\r\n left: '50%',\r\n top: '50%',\r\n transform: isFadingIn ? 'translate(-50%, -50%) scale(1)' : 'translate(-50%, -50%) scale(0.95)',\r\n transformOrigin: 'center center',\r\n transition: 'transform 150ms ease-in-out',\r\n backgroundColor: theme.colors.background,\r\n padding: theme.spacing.md,\r\n display: 'flex',\r\n flexDirection: 'column',\r\n height: 'fit-content',\r\n alignItems: 'flex-start',\r\n gap: theme.spacing.md,\r\n }),\r\n}))\r\n","import { FC, FormEvent, Fragment, useRef, useEffect, MouseEvent } from 'react'\r\nimport { createPortal } from 'react-dom'\r\n\r\nimport { Button } from '@components/actions/button'\r\nimport { IconButton } from '@components/actions/icon-button'\r\nimport { Form } from '@components/forms/form'\r\nimport { Text } from '@components/foundation/text'\r\nimport { Stack } from '@components/layout/stack'\r\nimport { ModalProps } from '@components/overlay/modal/Modal.props'\r\nimport { MODAL_STYLES } from '@components/overlay/modal/Modal.styles'\r\nimport { BUTTON_SIZE } from '@constants/globalConstants'\r\nimport { useTransitionRender } from '@hooks/useTransitionRender'\r\nimport { CloseIcon } from '@resources/Icons.ts'\r\n\r\nconst Modal: FC<ModalProps> = ({\r\n isOpen,\r\n onClose,\r\n label,\r\n children,\r\n isForm,\r\n action\r\n}) => {\r\n // refs\r\n const modalRef = useRef<HTMLDivElement | null>(null)\r\n\r\n // hooks\r\n const { isVisible, isFadingIn } = useTransitionRender(isOpen)\r\n\r\n useEffect(() => {\r\n const handleKeyDown = (event: KeyboardEvent) => {\r\n if (event.key === 'Escape' && isOpen) {\r\n onClose()\r\n }\r\n }\r\n document.addEventListener('keydown', handleKeyDown)\r\n return () => document.removeEventListener('keydown', handleKeyDown)\r\n }, [isOpen, onClose])\r\n\r\n // actions\r\n const safeInvokeAction = (e?: MouseEvent<HTMLButtonElement>) => {\r\n if (action && typeof action.onClick === 'function') {\r\n // Cast e to required MouseEvent type (or undefined) and call\r\n action.onClick(e as MouseEvent<HTMLButtonElement>)\r\n }\r\n }\r\n\r\n // body of the modal\r\n const body = (\r\n <>\r\n <Stack\r\n justify={'space-between'}\r\n height={BUTTON_SIZE}\r\n width={'100%'}\r\n >\r\n <Text\r\n variant={'h3'}\r\n >\r\n {label}\r\n </Text>\r\n {!action && (\r\n <IconButton\r\n icon={<CloseIcon />}\r\n onClick={onClose}\r\n size={'small'}\r\n variant={'text'}\r\n textColor={'text'}\r\n />\r\n )}\r\n </Stack>\r\n {children}\r\n {action && (\r\n <Stack\r\n justify={'flex-end'}\r\n width={'100%'}\r\n >\r\n <Button\r\n label={'Cancel'}\r\n onClick={onClose}\r\n variant={'outlined'}\r\n />\r\n <Button\r\n {...action}\r\n type={isForm ? 'submit' : 'button'}\r\n />\r\n </Stack>\r\n )}\r\n </>\r\n )\r\n\r\n return createPortal(\r\n <Fragment>\r\n {isVisible ? (\r\n <div\r\n className={MODAL_STYLES.background(isFadingIn)}\r\n ref={modalRef}\r\n >\r\n <div\r\n className={MODAL_STYLES.content(isFadingIn)}\r\n >\r\n {isForm ? (\r\n <Form onSubmit={(e: FormEvent) => { e.preventDefault(); safeInvokeAction() }}>\r\n {body}\r\n </Form>\r\n ) : (\r\n <Fragment>\r\n {body}\r\n </Fragment>\r\n )}\r\n </div>\r\n </div>\r\n ) : null}\r\n </Fragment>,\r\n document.body\r\n )\r\n}\r\n\r\nModal.displayName = 'Modal'\r\n\r\nexport default Modal\r\n","import { createStyles } from '@aurora-ds/theme'\r\n\r\nimport { DrawerItemStyleParams } from '@components/navigation/drawer-item/DrawerItem.props'\r\nimport { DRAWER_ITEM_HEIGHT } from '@constants/globalConstants.ts'\r\n\r\n/**\r\n * DrawerItem styles using createStyles from @aurora-ds/theme\r\n */\r\nexport const DRAWER_ITEM_STYLES = createStyles((theme) => ({\r\n root: ({ selected = false }: DrawerItemStyleParams) => ({\r\n display: 'inline-flex',\r\n alignItems: 'center',\r\n justifyContent: 'space-between',\r\n boxSizing: 'border-box',\r\n gap: theme.spacing.sm,\r\n padding: `${theme.spacing.xs} ${theme.spacing.sm}`,\r\n borderRadius: theme.radius.md,\r\n cursor: 'pointer',\r\n transition: `background-color ${theme.transition.fast}, color ${theme.transition.fast}`,\r\n fontFamily: 'inherit',\r\n width: '100%',\r\n minHeight: DRAWER_ITEM_HEIGHT,\r\n maxHeight: DRAWER_ITEM_HEIGHT,\r\n backgroundColor: selected ? theme.colors.primary : 'transparent',\r\n color: selected ? theme.colors.onPrimary : theme.colors.textSecondary,\r\n border: 'none',\r\n ':hover': {\r\n backgroundColor: selected ? theme.colors.primaryHover : theme.colors.surfaceHover,\r\n color: selected ? theme.colors.onPrimary : theme.colors.text,\r\n },\r\n ':active': {\r\n backgroundColor: selected ? theme.colors.primaryActive : theme.colors.surfaceActive,\r\n },\r\n ':disabled': {\r\n color: theme.colors.disabledText,\r\n backgroundColor: selected ? theme.colors.disabled : 'transparent',\r\n cursor: 'not-allowed',\r\n },\r\n }),\r\n}))\r\n","import { FC } from 'react'\r\n\r\nimport { Chip } from '@components/data-display/chip'\r\nimport { Icon } from '@components/foundation/icon'\r\nimport { Text } from '@components/foundation/text'\r\nimport { Stack } from '@components/layout/stack'\r\nimport { DrawerItemProps } from '@components/navigation/drawer-item/DrawerItem.props'\r\nimport { DRAWER_ITEM_STYLES } from '@components/navigation/drawer-item/DrawerItem.styles'\r\n\r\n/**\r\n * DrawerItem component\r\n *\r\n * A navigation item for use in drawers/sidebars.\r\n * Similar to a text button with selected state support.\r\n */\r\nconst DrawerItem: FC<DrawerItemProps> = ({\r\n label,\r\n startIcon,\r\n endIcon,\r\n selected = false,\r\n onClick,\r\n disabled,\r\n chip,\r\n ariaLabel,\r\n ariaLabelledBy,\r\n ariaDescribedBy,\r\n role,\r\n tabIndex,\r\n}) => {\r\n return (\r\n <button\r\n onClick={onClick}\r\n disabled={disabled}\r\n type={'button'}\r\n className={DRAWER_ITEM_STYLES.root({ selected })}\r\n aria-label={ariaLabel}\r\n aria-labelledby={ariaLabelledBy}\r\n aria-describedby={ariaDescribedBy}\r\n role={role}\r\n tabIndex={tabIndex}\r\n >\r\n <Stack>\r\n {startIcon && (\r\n <Icon>\r\n {startIcon}\r\n </Icon>\r\n )}\r\n <Text\r\n variant={'label'}\r\n maxLines={1}\r\n >\r\n {label}\r\n </Text>\r\n {endIcon && (\r\n <Icon>\r\n {endIcon}\r\n </Icon>\r\n )}\r\n </Stack>\r\n {chip && !selected && (\r\n <Chip\r\n {...chip}\r\n size={'2xs'}\r\n color={chip.color ?? 'info'}\r\n disabled={disabled}\r\n />\r\n )}\r\n </button>\r\n )\r\n}\r\n\r\nDrawerItem.displayName = 'DrawerItem'\r\n\r\nexport default DrawerItem\r\n","import { createStyles } from '@aurora-ds/theme'\r\n\r\n/**\r\n * Breadcrumb styles using createStyles from @aurora-ds/theme\r\n */\r\nexport const BREADCRUMB_STYLES = createStyles((theme) => ({\r\n list: {\r\n display: 'flex',\r\n flexWrap: 'wrap',\r\n alignItems: 'center',\r\n gap: theme.spacing.sm,\r\n wordBreak: 'break-word',\r\n fontSize: theme.fontSize.sm,\r\n color: theme.colors.disabledText,\r\n listStyle: 'none',\r\n margin: 0,\r\n padding: 0,\r\n },\r\n}))\r\n","import { createStyles } from '@aurora-ds/theme'\r\n\r\n/**\r\n * BreadcrumbEllipsis styles using createStyles from @aurora-ds/theme\r\n */\r\nexport const BREADCRUMB_ELLIPSIS_STYLES = createStyles((theme) => ({\r\n item: {\r\n display: 'inline-flex',\r\n alignItems: 'center',\r\n gap: theme.spacing.sm,\r\n },\r\n ellipsis: {\r\n display: 'flex',\r\n height: 36,\r\n width: 36,\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n },\r\n}))\r\n","import { FC } from 'react'\r\n\r\nimport { Icon } from '@components/foundation/icon'\r\nimport { BreadcrumbEllipsisProps } from '@components/navigation/breadcrumb/BreadcrumbEllipsis/BreadcrumbEllipsis.props.ts'\r\nimport { BREADCRUMB_ELLIPSIS_STYLES } from '@components/navigation/breadcrumb/BreadcrumbEllipsis/BreadcrumbEllipsis.styles.ts'\r\nimport { MoreHorizontalIcon } from '@resources/icons/MoreHorizontalIcon.tsx'\r\n\r\n/**\r\n * BreadcrumbEllipsis component\r\n * Renders an ellipsis item in the breadcrumb (includes the li wrapper)\r\n */\r\nconst BreadcrumbEllipsis: FC<BreadcrumbEllipsisProps> = () => (\r\n <li className={BREADCRUMB_ELLIPSIS_STYLES.item}>\r\n <span\r\n role={'presentation'}\r\n aria-hidden={'true'}\r\n className={BREADCRUMB_ELLIPSIS_STYLES.ellipsis}\r\n >\r\n <Icon\r\n size={'md'}\r\n color={'disabledText'}\r\n >\r\n <MoreHorizontalIcon />\r\n </Icon>\r\n </span>\r\n </li>\r\n)\r\nBreadcrumbEllipsis.displayName = 'BreadcrumbEllipsis'\r\n\r\nexport { BreadcrumbEllipsis }\r\n","import { FC } from 'react'\r\n\r\nimport { Icon } from '@components/foundation/icon'\r\nimport { BreadcrumbSeparatorProps } from '@components/navigation/breadcrumb/BreadcrumbSeparator/BreadcrumbSeparator.props.ts'\r\nimport { ChevronRightIcon } from '@resources/icons/ChevronRightIcon.tsx'\r\n\r\n/**\r\n * BreadcrumbSeparator component\r\n */\r\nconst BreadcrumbSeparator: FC<BreadcrumbSeparatorProps> = () => (\r\n <li\r\n role={'presentation'}\r\n aria-hidden={'true'}\r\n >\r\n <Icon\r\n color={'disabledText'}\r\n size={'sm'}\r\n >\r\n <ChevronRightIcon />\r\n </Icon>\r\n </li>\r\n)\r\nBreadcrumbSeparator.displayName = 'BreadcrumbSeparator'\r\n\r\nexport { BreadcrumbSeparator }\r\n","import { cloneElement, ComponentType, isValidElement, ReactElement, ReactNode } from 'react'\r\n\r\n/**\r\n * Inserts separators between breadcrumb items automatically\r\n */\r\nexport const insertSeparators = (\r\n items: ReactNode[],\r\n SeparatorComponent: ComponentType\r\n): ReactNode[] => {\r\n const result: ReactNode[] = []\r\n\r\n items.forEach((item, index) => {\r\n // Add the item with a key\r\n const itemWithKey = isValidElement(item)\r\n ? cloneElement(item as ReactElement, { key: `item-${index}` })\r\n : item\r\n result.push(itemWithKey)\r\n\r\n // Add separator after each item except the last one\r\n if (index < items.length - 1) {\r\n result.push(<SeparatorComponent key={`sep-${index}`} />)\r\n }\r\n })\r\n\r\n return result\r\n}\r\n","import { cloneElement, ComponentType, isValidElement, ReactElement, ReactNode } from 'react'\r\n\r\nimport { insertSeparators } from '@utils/ui/components/navigation/breadcrumb/insertSeparators.utils'\r\n\r\n/**\r\n * Builds the breadcrumb children with ellipsis logic\r\n */\r\nexport const buildBreadcrumbChildren = (\r\n items: ReactNode[],\r\n maxItems: number | undefined,\r\n EllipsisComponent: ComponentType,\r\n SeparatorComponent: ComponentType\r\n): ReactNode[] => {\r\n if (!maxItems || items.length <= maxItems) {\r\n return insertSeparators(items, SeparatorComponent)\r\n }\r\n\r\n // First item\r\n const firstItem = items[0]\r\n\r\n // Last (maxItems - 1) items\r\n const lastItemsCount = maxItems - 1\r\n const lastItems = items.slice(-lastItemsCount)\r\n\r\n // Build the result: first + separator + ellipsis + separator + last items with separators between them\r\n const result: ReactNode[] = []\r\n\r\n // Add first item with key\r\n const firstWithKey = isValidElement(firstItem)\r\n ? cloneElement(firstItem as ReactElement, { key: 'first' })\r\n : firstItem\r\n result.push(firstWithKey)\r\n\r\n // Add separator + ellipsis + separator\r\n result.push(<SeparatorComponent key={'sep-ellipsis-before'} />)\r\n result.push(<EllipsisComponent key={'ellipsis'} />)\r\n result.push(<SeparatorComponent key={'sep-ellipsis-after'} />)\r\n\r\n // Add last items with separators between them\r\n lastItems.forEach((item, index) => {\r\n const itemWithKey = isValidElement(item)\r\n ? cloneElement(item as ReactElement, { key: `last-${index}` })\r\n : item\r\n result.push(itemWithKey)\r\n\r\n // Add separator between items (but not after the last one)\r\n if (index < lastItems.length - 1) {\r\n result.push(<SeparatorComponent key={`sep-last-${index}`} />)\r\n }\r\n })\r\n\r\n return result\r\n}\r\n","import { Children, Fragment, isValidElement, ReactNode } from 'react'\r\n\r\n/**\r\n * Flattens children, extracting children from Fragments\r\n */\r\nexport const flattenChildren = (children: ReactNode): ReactNode[] => {\r\n const result: ReactNode[] = []\r\n\r\n Children.forEach(children, (child) => {\r\n if (isValidElement(child) && child.type === Fragment) {\r\n result.push(...flattenChildren(child.props.children))\r\n } else {\r\n result.push(child)\r\n }\r\n })\r\n\r\n return result\r\n}\r\n","import { isValidElement, ReactNode } from 'react'\r\n\r\n/**\r\n * Checks if a React element is a BreadcrumbSeparator\r\n */\r\nexport const isSeparator = (child: ReactNode): boolean => {\r\n return isValidElement(child) && (child.type as { displayName?: string })?.displayName === 'BreadcrumbSeparator'\r\n}\r\n","import { memo, useMemo } from 'react'\r\n\r\nimport { BreadcrumbProps } from '@components/navigation/breadcrumb/Breadcrumb.props.ts'\r\nimport { BREADCRUMB_STYLES } from '@components/navigation/breadcrumb/Breadcrumb.styles.ts'\r\nimport { BreadcrumbEllipsis } from '@components/navigation/breadcrumb/BreadcrumbEllipsis'\r\nimport { BreadcrumbSeparator } from '@components/navigation/breadcrumb/BreadcrumbSeparator'\r\nimport { buildBreadcrumbChildren } from '@utils/ui/components/navigation/breadcrumb/buildBreadcrumbChildren.utils'\r\nimport { flattenChildren } from '@utils/ui/components/navigation/breadcrumb/flattenChildren.utils'\r\nimport { isSeparator } from '@utils/ui/components/navigation/breadcrumb/isSeparator.utils'\r\n\r\n/**\r\n * Breadcrumb component\r\n * Navigation component for hierarchical page structures\r\n *\r\n * @param maxItems - Maximum number of items to display (minimum 2).\r\n * If exceeded, shows: first item + ellipsis + last (maxItems - 1) items\r\n * @param children\r\n * @param props\r\n */\r\nconst Breadcrumb = memo<BreadcrumbProps>(({\r\n maxItems,\r\n children,\r\n ...props\r\n}) => {\r\n const allChildren = flattenChildren(children)\r\n\r\n // Filter out any manually added separators (in case user added them)\r\n const items = allChildren.filter(child => !isSeparator(child))\r\n\r\n const renderedChildren = useMemo(() => buildBreadcrumbChildren(\r\n items,\r\n maxItems,\r\n BreadcrumbEllipsis,\r\n BreadcrumbSeparator\r\n ), [items, maxItems])\r\n\r\n return (\r\n <nav\r\n aria-label={'breadcrumb'}\r\n {...props}\r\n >\r\n <ol\r\n className={BREADCRUMB_STYLES.list}\r\n >\r\n {renderedChildren}\r\n </ol>\r\n </nav>\r\n )\r\n})\r\nBreadcrumb.displayName = 'Breadcrumb'\r\n\r\nexport { Breadcrumb }\r\n","import { createStyles } from '@aurora-ds/theme'\r\n\r\n/**\r\n * BreadcrumbLink styles using createStyles from @aurora-ds/theme\r\n */\r\nexport const BREADCRUMB_LINK_STYLES = createStyles((theme) => ({\r\n item: {\r\n display: 'inline-flex',\r\n alignItems: 'center',\r\n gap: theme.spacing.sm,\r\n cursor: 'pointer'\r\n },\r\n link: {\r\n transition: `color ${theme.transition.fast}, text-decoration-color ${theme.transition.fast}`,\r\n color: theme.colors.disabledText,\r\n textDecoration: 'underline',\r\n textDecorationColor: 'transparent',\r\n textUnderlineOffset: '3px',\r\n ':hover': {\r\n color: theme.colors.primary,\r\n textDecorationColor: 'currentColor',\r\n },\r\n },\r\n}))\r\n","import { memo } from 'react'\r\n\r\nimport { Text } from '@components/foundation/text'\r\nimport { BreadcrumbLinkProps } from '@components/navigation/breadcrumb/BreadcrumbLink/BreadcrumbLink.props.ts'\r\nimport { BREADCRUMB_LINK_STYLES } from '@components/navigation/breadcrumb/BreadcrumbLink/BreadcrumbLink.styles.ts'\r\n\r\n/**\r\n * BreadcrumbLink component\r\n * Renders a clickable breadcrumb item with a link\r\n */\r\nconst BreadcrumbLink = memo<BreadcrumbLinkProps>((props) => {\r\n const { children, onClick } = props\r\n\r\n return (\r\n <li className={BREADCRUMB_LINK_STYLES.item}>\r\n <a\r\n className={BREADCRUMB_LINK_STYLES.link}\r\n onClick={onClick}\r\n >\r\n <Text\r\n variant={'span'}\r\n fontSize={'sm'}\r\n >\r\n {children}\r\n </Text>\r\n </a>\r\n </li>\r\n )\r\n})\r\nBreadcrumbLink.displayName = 'BreadcrumbLink'\r\n\r\nexport { BreadcrumbLink }\r\n","import { createStyles } from '@aurora-ds/theme'\r\n\r\n/**\r\n * BreadcrumbPage styles using createStyles from @aurora-ds/theme\r\n */\r\nexport const BREADCRUMB_PAGE_STYLES = createStyles((theme) => ({\r\n item: {\r\n display: 'inline-flex',\r\n alignItems: 'center',\r\n gap: theme.spacing.sm,\r\n },\r\n page: {\r\n fontWeight: theme.fontWeight.medium,\r\n color: theme.colors.primary,\r\n },\r\n}))\r\n","import { memo } from 'react'\r\n\r\nimport { Text } from '@components/foundation/text'\r\nimport { BreadcrumbPageProps } from '@components/navigation/breadcrumb/BreadcrumbPage/BreadcrumbPage.props.ts'\r\nimport { BREADCRUMB_PAGE_STYLES } from '@components/navigation/breadcrumb/BreadcrumbPage/BreadcrumbPage.styles.ts'\r\n\r\n/**\r\n * BreadcrumbPage component\r\n * Renders the current page (non-clickable) in the breadcrumb\r\n */\r\nconst BreadcrumbPage = memo<BreadcrumbPageProps>(({\r\n children\r\n}) => (\r\n <li className={BREADCRUMB_PAGE_STYLES.item}>\r\n <span\r\n className={BREADCRUMB_PAGE_STYLES.page}\r\n >\r\n <Text\r\n variant={'span'}\r\n fontSize={'sm'}\r\n color={'primary'}\r\n >\r\n {children}\r\n </Text>\r\n </span>\r\n </li>\r\n))\r\nBreadcrumbPage.displayName = 'BreadcrumbPage'\r\n\r\nexport { BreadcrumbPage }\r\n","import { createStyles } from '@aurora-ds/theme'\r\n\r\nimport { TabsStyleParams } from '@components/navigation/tabs/Tabs.props'\r\nimport { BUTTON_SIZE } from '@constants/globalConstants.ts'\r\n\r\n/**\r\n * Tabs styles using createStyles from @aurora-ds/theme\r\n */\r\nexport const TABS_STYLES = createStyles((theme) => ({\r\n root: ({ width = '100%' }: TabsStyleParams) => ({\r\n display: 'flex',\r\n width,\r\n backgroundColor: theme.colors.surfaceHover,\r\n borderRadius: theme.radius.md,\r\n overflow: 'hidden',\r\n padding: theme.spacing.xs,\r\n height: `calc(2 * ${theme.spacing.xs} + ${BUTTON_SIZE}px)`,\r\n }),\r\n}))\r\n","import React, { FC } from 'react'\r\n\r\nimport { TabsProps } from '@components/navigation/tabs/Tabs.props'\r\nimport { TABS_STYLES } from '@components/navigation/tabs/Tabs.styles'\r\n\r\n/**\r\n * Tabs component for navigation between multiple sections\r\n */\r\nconst Tabs: FC<TabsProps> = ({\r\n children,\r\n activeTab,\r\n width = '100%',\r\n}) => {\r\n return (\r\n <div\r\n className={TABS_STYLES.root({ width })}\r\n >\r\n {React.Children.map(children, (child, index) => {\r\n if (React.isValidElement(child)) {\r\n const tabValue = child.props.value\r\n const isActive = activeTab === tabValue || (activeTab === undefined && index === 0)\r\n return React.cloneElement(child, {\r\n isActive,\r\n })\r\n }\r\n return child\r\n })}\r\n </div>\r\n )\r\n}\r\n\r\nTabs.displayName = 'Tabs'\r\n\r\nexport default Tabs\r\n","import { createStyles } from '@aurora-ds/theme'\n\nimport { BUTTON_SIZE } from '@constants/globalConstants.ts'\n\n/**\n * Tabs styles using createStyles from @aurora-ds/theme\n */\nexport const TAB_ITEM_STYLES = createStyles((theme) => ({\n tab: (isActive: boolean) => ({\n flex: 1,\n padding: theme.spacing.sm,\n height: BUTTON_SIZE,\n borderRadius: theme.radius.sm,\n cursor: 'pointer',\n transition: `background-color ${theme.transition.fast}, color ${theme.transition.fast}, boxShadow ${theme.transition.fast}`,\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n gap: theme.spacing.sm,\n backgroundColor: isActive ? theme.colors.background : 'transparent',\n color: isActive ? theme.colors.text : theme.colors.textSecondary,\n boxShadow: isActive ? theme.shadows.sm : undefined,\n ':hover': {\n backgroundColor: !isActive ? theme.colors.secondaryActive : undefined,\n },\n }),\n}))\n","import { FC } from 'react'\r\n\r\nimport Icon from '@components/foundation/icon/Icon.tsx'\r\nimport { Text } from '@components/foundation/text'\r\nimport { TabItemProps } from '@components/navigation/tabs/tab-item/TabItem.props.ts'\r\nimport { TAB_ITEM_STYLES } from '@components/navigation/tabs/tab-item/TabItem.styles.ts'\r\n\r\n/**\r\n * TabItem component for use inside Tabs\r\n */\r\nconst TabItem: FC<TabItemProps> = ({\r\n label,\r\n isActive = false,\r\n onClick,\r\n startIcon,\r\n endIcon\r\n}) => {\r\n return (\r\n <div\r\n className={TAB_ITEM_STYLES.tab(isActive)}\r\n onClick={onClick}\r\n >\r\n {startIcon && (\r\n <Icon>\r\n {startIcon}\r\n </Icon>\r\n )}\r\n {label && (\r\n <Text\r\n variant={'label'}\r\n preserveWhitespace\r\n maxLines={1}\r\n >\r\n {label}\r\n </Text>\r\n )}\r\n {endIcon && (\r\n <Icon>\r\n {endIcon}\r\n </Icon>\r\n )}\r\n </div>\r\n )\r\n}\r\n\r\nTabItem.displayName = 'TabItem'\r\n\r\nexport default TabItem\r\n","import { createStyles } from '@aurora-ds/theme'\r\n\r\nimport { PaginationStyleParams } from '@components/navigation/pagination/Pagination.props'\r\n\r\nexport const PAGINATION_STYLES = createStyles((theme) => ({\r\n root: {\r\n display: 'flex',\r\n alignItems: 'center',\r\n gap: theme.spacing.xs,\r\n },\r\n pageButton: ({ disabled = false, active = false }: PaginationStyleParams) => ({\r\n display: 'inline-flex',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n boxSizing: 'border-box',\r\n padding: theme.spacing.sm,\r\n borderRadius: theme.radius.md,\r\n cursor: disabled ? 'not-allowed' : 'pointer',\r\n transition: `background-color ${theme.transition.fast}, color ${theme.transition.fast}`,\r\n minHeight: '40px',\r\n maxHeight: '40px',\r\n minWidth: '40px',\r\n maxWidth: '40px',\r\n fontFamily: 'inherit',\r\n fontSize: theme.fontSize.md,\r\n fontWeight: theme.fontWeight.medium,\r\n backgroundColor: active ? theme.colors.primary : 'transparent',\r\n color: active ? theme.colors.onPrimary : theme.colors.text,\r\n border: 'none',\r\n opacity: disabled ? 0.4 : 1,\r\n ':hover': disabled ? {} : (active ? {\r\n backgroundColor: theme.colors.primary,\r\n color: theme.colors.onPrimary,\r\n } : {\r\n backgroundColor: theme.colors.surfaceHover,\r\n }),\r\n ':active': disabled ? {} : (active ? {\r\n backgroundColor: theme.colors.primary,\r\n color: theme.colors.onPrimary,\r\n } : {\r\n backgroundColor: theme.colors.surfaceActive,\r\n }),\r\n }),\r\n // kept for backward compatibility in case some usages relied on it directly\r\n activePageButton: {\r\n backgroundColor: theme.colors.primary,\r\n color: theme.colors.onPrimary,\r\n ':hover': {\r\n backgroundColor: theme.colors.primary,\r\n },\r\n ':active': {\r\n backgroundColor: theme.colors.primary,\r\n },\r\n },\r\n navigationButton: ({ disabled = false }: PaginationStyleParams) => ({\r\n display: 'inline-flex',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n boxSizing: 'border-box',\r\n padding: theme.spacing.sm,\r\n borderRadius: theme.radius.md,\r\n cursor: disabled ? 'not-allowed' : 'pointer',\r\n transition: `background-color ${theme.transition.fast}, color ${theme.transition.fast}`,\r\n minHeight: '40px',\r\n maxHeight: '40px',\r\n minWidth: '40px',\r\n maxWidth: '40px',\r\n fontFamily: 'inherit',\r\n backgroundColor: 'transparent',\r\n color: theme.colors.text,\r\n border: 'none',\r\n opacity: disabled ? 0.4 : 1,\r\n ':hover': disabled ? {} : {\r\n backgroundColor: theme.colors.surfaceHover,\r\n },\r\n ':active': disabled ? {} : {\r\n backgroundColor: theme.colors.surfaceActive,\r\n },\r\n }),\r\n}))\r\n","import { FC, useMemo } from 'react'\r\n\r\nimport { PaginationProps } from '@components/navigation/pagination/Pagination.props'\r\nimport { PAGINATION_STYLES } from '@components/navigation/pagination/Pagination.styles'\r\nimport { ChevronLeftIcon, ChevronRightIcon } from '@resources/Icons'\r\n\r\n/**\r\n * Pagination component for navigating between pages\r\n */\r\nexport const Pagination: FC<PaginationProps> = ({\r\n currentPage,\r\n totalPages,\r\n onPageChange,\r\n onPrevious,\r\n onNext,\r\n maxVisiblePages = 7,\r\n ariaLabel = 'Pagination'\r\n}) => {\r\n const styles = PAGINATION_STYLES\r\n\r\n // Calculate which page numbers to display\r\n const visiblePages = useMemo(() => {\r\n const pages: number[] = []\r\n\r\n if (totalPages <= maxVisiblePages) {\r\n // Show all pages if they fit\r\n for (let i = 1; i <= totalPages; i++) {\r\n pages.push(i)\r\n }\r\n } else {\r\n // Calculate range around current page\r\n const halfVisible = Math.floor(maxVisiblePages / 2)\r\n const start = Math.max(1, currentPage - halfVisible)\r\n const end = Math.min(totalPages, start + maxVisiblePages - 1)\r\n\r\n // Adjust start if we're near the end\r\n const adjustedStart = end === totalPages ? Math.max(1, end - maxVisiblePages + 1) : start\r\n\r\n for (let i = adjustedStart; i <= end; i++) {\r\n pages.push(i)\r\n }\r\n }\r\n\r\n return pages\r\n }, [currentPage, totalPages, maxVisiblePages])\r\n\r\n const handlePrevious = () => {\r\n if (currentPage > 1) {\r\n const newPage = currentPage - 1\r\n if (onPrevious) {\r\n onPrevious(newPage)\r\n }\r\n onPageChange(newPage)\r\n }\r\n }\r\n\r\n const handleNext = () => {\r\n if (currentPage < totalPages) {\r\n const newPage = currentPage + 1\r\n if (onNext) {\r\n onNext(newPage)\r\n }\r\n onPageChange(newPage)\r\n }\r\n }\r\n\r\n const handlePageClick = (page: number) => {\r\n if (page !== currentPage) {\r\n onPageChange(page)\r\n }\r\n }\r\n\r\n const isPreviousDisabled = currentPage === 1\r\n const isNextDisabled = currentPage === totalPages\r\n\r\n return (\r\n <nav\r\n aria-label={ariaLabel}\r\n className={styles.root}\r\n >\r\n {/* Previous button */}\r\n <button\r\n type={'button'}\r\n onClick={handlePrevious}\r\n disabled={isPreviousDisabled}\r\n aria-label={'Page précédente'}\r\n className={styles.navigationButton({ disabled: isPreviousDisabled })}\r\n >\r\n <ChevronLeftIcon />\r\n </button>\r\n\r\n {/* Page numbers */}\r\n {visiblePages.map((page) => {\r\n const isActive = page === currentPage\r\n return (\r\n <button\r\n key={page}\r\n type={'button'}\r\n onClick={() => handlePageClick(page)}\r\n aria-label={`Page ${page}`}\r\n aria-current={isActive ? 'page' : undefined}\r\n className={styles.pageButton({ disabled: false, active: isActive })}\r\n >\r\n {page}\r\n </button>\r\n )\r\n })}\r\n\r\n {/* Next button */}\r\n <button\r\n type={'button'}\r\n onClick={handleNext}\r\n disabled={isNextDisabled}\r\n aria-label={'Page suivante'}\r\n className={styles.navigationButton({ disabled: isNextDisabled })}\r\n >\r\n <ChevronRightIcon />\r\n </button>\r\n </nav>\r\n )\r\n}\r\n\r\nPagination.displayName = 'Pagination'\r\n","import { createContext, FC, useCallback, useContext, useEffect, useMemo, useRef, useState } from 'react'\r\nimport { createPortal } from 'react-dom'\r\n\r\nimport { Alert } from '@components/overlay/alert'\r\nimport { AlertItem, AlertContextValue, AlertProviderProps, ShowAlertOptions } from '@hooks/useAlert.types'\r\n\r\nconst AlertContext = createContext<AlertContextValue | undefined>(undefined)\r\n\r\nconst ALERT_DURATION = 3000\r\nconst MAX_ALERTS = 2\r\nconst ALERT_HEIGHT = 48 // Approximate height with padding (px)\r\nconst ALERT_SPACING = 6 // Spacing between alerts (px)\r\n\r\n/**\r\n * Alert Provider Component\r\n * Manages alert queue and renders alerts in a portal\r\n */\r\nconst AlertProvider: FC<AlertProviderProps> = ({ children }) => {\r\n const [alerts, setAlerts] = useState<AlertItem[]>([])\r\n const [visibleAlerts, setVisibleAlerts] = useState<Set<string>>(new Set())\r\n const [alertHeights, setAlertHeights] = useState<Map<string, number>>(new Map())\r\n const timersRef = useRef<Map<string, NodeJS.Timeout>>(new Map())\r\n\r\n const showAlert = useCallback((options: ShowAlertOptions) => {\r\n const {\r\n text,\r\n variant = 'default',\r\n position = 'top-right',\r\n duration = ALERT_DURATION,\r\n maxWidth = 300\r\n } = options\r\n\r\n const id = `alert-${Date.now()}-${Math.random()}`\r\n const newAlert: AlertItem = {\r\n id,\r\n text,\r\n variant,\r\n position,\r\n timestamp: Date.now(),\r\n maxWidth\r\n }\r\n\r\n setAlerts((prev) => {\r\n const updatedAlerts = [...prev, newAlert]\r\n // Keep only MAX_ALERTS for the same position\r\n const samePositionAlerts = updatedAlerts.filter(a => a.position === position)\r\n\r\n if (samePositionAlerts.length > MAX_ALERTS) {\r\n // Remove the oldest alert for this position\r\n const oldestAlert = samePositionAlerts[0]\r\n const timerToRemove = timersRef.current.get(oldestAlert.id)\r\n if (timerToRemove) {\r\n clearTimeout(timerToRemove)\r\n timersRef.current.delete(oldestAlert.id)\r\n }\r\n setVisibleAlerts((prevVisible) => {\r\n const newVisible = new Set(prevVisible)\r\n newVisible.delete(oldestAlert.id)\r\n return newVisible\r\n })\r\n // Remove from alerts array after animation\r\n setTimeout(() => {\r\n setAlerts((current) => current.filter(a => a.id !== oldestAlert.id))\r\n setAlertHeights((prevHeights) => {\r\n const newMap = new Map(prevHeights)\r\n newMap.delete(oldestAlert.id)\r\n return newMap\r\n })\r\n }, 300)\r\n\r\n return updatedAlerts.filter(a => a.id !== oldestAlert.id)\r\n }\r\n\r\n return updatedAlerts\r\n })\r\n\r\n // Show alert after a small delay for animation\r\n setTimeout(() => {\r\n setVisibleAlerts((prev) => new Set(prev).add(id))\r\n }, 10)\r\n\r\n // Auto-dismiss timer\r\n const timer = setTimeout(() => {\r\n setVisibleAlerts((prev) => {\r\n const newVisible = new Set(prev)\r\n newVisible.delete(id)\r\n return newVisible\r\n })\r\n\r\n // Remove from DOM after animation\r\n setTimeout(() => {\r\n setAlerts((prev) => prev.filter(a => a.id !== id))\r\n setAlertHeights((prev) => {\r\n const newMap = new Map(prev)\r\n newMap.delete(id)\r\n return newMap\r\n })\r\n timersRef.current.delete(id)\r\n }, 300)\r\n }, duration)\r\n\r\n timersRef.current.set(id, timer)\r\n }, [])\r\n\r\n // Handle height changes from alerts (memoized to avoid re-creating on every render)\r\n const handleHeightChange = useCallback((alertId: string, height: number) => {\r\n setAlertHeights((prev) => {\r\n const currentHeight = prev.get(alertId)\r\n // Only update if height actually changed\r\n if (currentHeight !== height) {\r\n const newMap = new Map(prev)\r\n newMap.set(alertId, height)\r\n return newMap\r\n }\r\n return prev\r\n })\r\n }, [])\r\n\r\n // Cleanup timers on unmount\r\n useEffect(() => {\r\n return () => {\r\n timersRef.current.forEach(timer => clearTimeout(timer))\r\n timersRef.current.clear()\r\n }\r\n }, [])\r\n\r\n const contextValue = useMemo<AlertContextValue>(\r\n () => ({ showAlert }),\r\n [showAlert]\r\n )\r\n\r\n // Group alerts by position\r\n const alertsByPosition = useMemo(() => {\r\n const grouped: Record<string, AlertItem[]> = {}\r\n alerts.forEach(alert => {\r\n if (!grouped[alert.position]) {\r\n grouped[alert.position] = []\r\n }\r\n grouped[alert.position].push(alert)\r\n })\r\n return grouped\r\n }, [alerts])\r\n\r\n return (\r\n <AlertContext.Provider value={contextValue}>\r\n {children}\r\n {typeof window !== 'undefined' && createPortal(\r\n <>\r\n {Object.entries(alertsByPosition).map(([position, positionAlerts]) => {\r\n // positionAlerts is ordered from oldest -> newest\r\n const isTopPosition = position.startsWith('top')\r\n const ordered = isTopPosition ? [...positionAlerts].reverse() : positionAlerts\r\n\r\n return ordered.map((alert, index) => {\r\n // Calculate offset based on actual heights of previous alerts\r\n let offset = 0\r\n for (let i = 0; i < index; i++) {\r\n const prevAlert = ordered[i]\r\n const height = alertHeights.get(prevAlert.id) || ALERT_HEIGHT\r\n offset += height + ALERT_SPACING\r\n }\r\n\r\n return (\r\n <Alert\r\n key={alert.id}\r\n text={alert.text}\r\n variant={alert.variant}\r\n position={alert.position}\r\n isVisible={visibleAlerts.has(alert.id)}\r\n offsetY={offset}\r\n maxWidth={alert.maxWidth}\r\n alertId={alert.id}\r\n onHeightChange={handleHeightChange}\r\n />\r\n )\r\n })\r\n })}\r\n </>,\r\n document.body\r\n )}\r\n </AlertContext.Provider>\r\n )\r\n}\r\n\r\n/**\r\n * Hook to access alert functionality\r\n *\r\n * @example\r\n * ```tsx\r\n * const { showAlert } = useAlert()\r\n *\r\n * showAlert({\r\n * text: 'Operation completed',\r\n * variant: 'success',\r\n * position: 'top-right'\r\n * })\r\n * ```\r\n */\r\nconst useAlert = (): AlertContextValue => {\r\n const context = useContext(AlertContext)\r\n if (!context) {\r\n throw new Error('useAlert must be used within an AlertProvider')\r\n }\r\n return context\r\n}\r\n\r\nexport { AlertProvider, useAlert }\r\n"],"names":["createStyles","Children","isValidElement","cloneElement","_jsx","createElement","Fragment","theme","useTheme","useMemo","_jsxs","keyframes","colors","useCallback","memo","forwardRef","useState","useRef","useEffect","useLayoutEffect","createPortal","CalendarHeader","CalendarGrid","Calendar","_Fragment","Form","createContext","useContext"],"mappings":";;;;;;;AAEO,MAAM,WAAW,GAAGA,kBAAY,CAAC,CAAC,KAAK,MAAM;AAChD,IAAA,IAAI,EAAE,CACF,IAA8B,EAC9B,KAA6B,EAC7B,eAAuC,EACvC,OAAgC,EAChC,YAAoC,MAClC;AACF,QAAA,SAAS,EAAE,aAAa;AACxB,QAAA,OAAO,EAAE,MAAM;AACf,QAAA,UAAU,EAAE,QAAQ;AACpB,QAAA,cAAc,EAAE,QAAQ;AACxB,QAAA,QAAQ,EAAE,QAAQ;AAClB,QAAA,UAAU,EAAE,yBAAyB;AACrC,QAAA,UAAU,EAAE,CAAC;AACb,QAAA,UAAU,EAAE,CAAC;QACb,MAAM,EAAE,KAAK,CAAC,QAAQ,CAAC,IAAI,IAAI,IAAI,CAAC;QACpC,KAAK,EAAE,KAAK,CAAC,QAAQ,CAAC,IAAI,IAAI,IAAI,CAAC;QACnC,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC,IAAI,IAAI,IAAI,CAAC;QACtC,SAAS,EAAE,KAAK,CAAC,QAAQ,CAAC,IAAI,IAAI,IAAI,CAAC;AACvC,QAAA,KAAK,EAAE,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,SAAS;AAC9C,QAAA,eAAe,EAAE,eAAe,GAAG,KAAK,CAAC,MAAM,CAAC,eAAe,CAAC,GAAG,SAAS;AAC5E,QAAA,OAAO,EAAE,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC;QAC7C,YAAY,EAAE,KAAK,CAAC,MAAM,CAAC,YAAY,IAAI,IAAI,CAAC;KACnD,CAAC;AACL,CAAA,CAAC,CAAC;;ACtBH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA8BG;AACH,MAAM,IAAI,GAAkB,CAAC,EACzB,QAAQ,EACR,IAAI,EACJ,KAAK,EACL,eAAe,EACf,OAAO,EACP,YAAY,EACZ,SAAS,EACT,cAAc,EACd,eAAe,EACf,IAAI,EACJ,QAAQ,GACX,KAAI;;IAED,MAAM,KAAK,GAAGC,cAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC;AACrC,IAAA,MAAM,WAAW,GAAGC,oBAAc,CAAC,KAAK;AACpC,UAAEC,kBAAY,CAAC,KAA0D,EAAE;AACvE,YAAA,KAAK,EAAE,MAAM;AACb,YAAA,MAAM,EAAE,MAAM;SACjB;UACC,KAAK;AAEX,IAAA,QACIC,cAAA,CAAA,KAAA,EAAA,EACI,SAAS,EAAE,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,eAAe,EAAE,OAAO,EAAE,YAAY,CAAC,EAAA,YAAA,EACpE,SAAS,qBACJ,cAAc,EAAA,kBAAA,EACb,eAAe,EACjC,IAAI,EAAE,IAAI,EACV,QAAQ,EAAE,QAAQ,EAAA,QAAA,EAEjB,WAAW,EAAA,CACV;AAEd;AAEA,IAAI,CAAC,WAAW,GAAG,MAAM;;ACpEzB;;;AAGG;AACI,MAAM,oBAAoB,GAAG,CAAC,KAAY,MAA8C;AAC3F,IAAA,EAAE,EAAE;AACA,QAAA,GAAG,EAAE,IAAI;AACT,QAAA,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC,EAAE;AAC3B,QAAA,UAAU,EAAE,KAAK,CAAC,UAAU,CAAC,IAAI;AACjC,QAAA,UAAU,EAAE,KAAK,CAAC,UAAU,CAAC,KAAK;AACrC,KAAA;AACD,IAAA,EAAE,EAAE;AACA,QAAA,GAAG,EAAE,IAAI;AACT,QAAA,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC,EAAE;AAC3B,QAAA,UAAU,EAAE,KAAK,CAAC,UAAU,CAAC,IAAI;AACjC,QAAA,UAAU,EAAE,KAAK,CAAC,UAAU,CAAC,KAAK;AACrC,KAAA;AACD,IAAA,EAAE,EAAE;AACA,QAAA,GAAG,EAAE,IAAI;AACT,QAAA,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC,EAAE;AAC3B,QAAA,UAAU,EAAE,KAAK,CAAC,UAAU,CAAC,QAAQ;AACrC,QAAA,UAAU,EAAE,KAAK,CAAC,UAAU,CAAC,MAAM;AACtC,KAAA;AACD,IAAA,EAAE,EAAE;AACA,QAAA,GAAG,EAAE,IAAI;AACT,QAAA,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC,EAAE;AAC3B,QAAA,UAAU,EAAE,KAAK,CAAC,UAAU,CAAC,QAAQ;AACrC,QAAA,UAAU,EAAE,KAAK,CAAC,UAAU,CAAC,MAAM;AACtC,KAAA;AACD,IAAA,EAAE,EAAE;AACA,QAAA,GAAG,EAAE,IAAI;AACT,QAAA,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC,EAAE;AAC3B,QAAA,UAAU,EAAE,KAAK,CAAC,UAAU,CAAC,MAAM;AACnC,QAAA,UAAU,EAAE,KAAK,CAAC,UAAU,CAAC,MAAM;AACtC,KAAA;AACD,IAAA,EAAE,EAAE;AACA,QAAA,GAAG,EAAE,IAAI;AACT,QAAA,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC,EAAE;AAC3B,QAAA,UAAU,EAAE,KAAK,CAAC,UAAU,CAAC,MAAM;AACnC,QAAA,UAAU,EAAE,KAAK,CAAC,UAAU,CAAC,MAAM;AACtC,KAAA;AACD,IAAA,CAAC,EAAE;AACC,QAAA,GAAG,EAAE,GAAG;AACR,QAAA,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC,EAAE;AAC3B,QAAA,UAAU,EAAE,KAAK,CAAC,UAAU,CAAC,OAAO;AACpC,QAAA,UAAU,EAAE,KAAK,CAAC,UAAU,CAAC,OAAO;AACvC,KAAA;AACD,IAAA,IAAI,EAAE;AACF,QAAA,GAAG,EAAE,MAAM;AACX,QAAA,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC,EAAE;AAC3B,QAAA,UAAU,EAAE,KAAK,CAAC,UAAU,CAAC,OAAO;AACpC,QAAA,UAAU,EAAE,KAAK,CAAC,UAAU,CAAC,MAAM;AACtC,KAAA;AACD,IAAA,KAAK,EAAE;AACH,QAAA,GAAG,EAAE,OAAO;AACZ,QAAA,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC,EAAE;AAC3B,QAAA,UAAU,EAAE,KAAK,CAAC,UAAU,CAAC,MAAM;AACnC,QAAA,UAAU,EAAE,KAAK,CAAC,UAAU,CAAC,MAAM;AACtC,KAAA;AACJ,CAAA,CAAC;;AC/DK,MAAM,qBAAqB,GAAG,CAAC,QAAgB,MAClD,QAAQ,KAAK;AACT,MAAE;AACE,QAAA,UAAU,EAAE,QAAiB;AAC7B,QAAA,QAAQ,EAAE,QAAQ;AAClB,QAAA,YAAY,EAAE,UAAU;AAC3B;AACD,MAAE;AACE,QAAA,QAAQ,EAAE,QAAQ;AAClB,QAAA,YAAY,EAAE,UAAU;AACxB,QAAA,OAAO,EAAE,aAAa;AACtB,QAAA,eAAe,EAAE,QAAQ;AACzB,QAAA,eAAe,EAAE,UAAmB;;AAEpC,QAAA,UAAU,EAAE,QAAiB;AAC7B,QAAA,YAAY,EAAE,YAAqB;AACnC,QAAA,SAAS,EAAE,YAAqB;AAChC,QAAA,SAAS,EAAE,QAAQ;AACtB,KAAA,CACR;;ACbM,MAAM,WAAW,GAAGJ,kBAAY,CAAC,CAAC,KAAK,KAAI;AAC9C,IAAA,MAAM,aAAa,GAAG,oBAAoB,CAAC,KAAK,CAAC;IAEjD,OAAO;QACH,IAAI,EAAE,CAAC,EACH,OAAO,GAAG,MAAM,EAChB,KAAK,EACL,QAAQ,EACR,UAAU,EACV,QAAQ,EACR,SAAS,EACT,kBAAkB,GACJ,MAAM;AACpB,YAAA,MAAM,EAAE,CAAC;AACT,YAAA,QAAQ,EAAE,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC,QAAQ;AAC/E,YAAA,UAAU,EAAE,aAAa,CAAC,OAAO,CAAC,CAAC,UAAU;AAC7C,YAAA,UAAU,EAAE,aAAa,CAAC,OAAO,CAAC,CAAC,UAAU;AAC7C,YAAA,KAAK,EAAE,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,SAAS;AAC9C,YAAA,MAAM,EAAE,SAAS;YACjB,UAAU;YACV,IAAI,kBAAkB,IAAI,EAAE,UAAU,EAAE,UAAU,EAAE,CAAC;YACrD,IAAI,SAAS,IAAI;AACb,gBAAA,cAAc,EAAE,WAAW;AAC3B,gBAAA,mBAAmB,EAAE,KAAK;aAC7B,CAAC;AACF,YAAA,IAAI,QAAQ,IAAI,qBAAqB,CAAC,QAAQ,CAAC,CAAC;SACnD,CAAC;KACL;AACL,CAAC,CAAC;;AChCF;;;;AAIG;AACI,MAAM,iBAAiB,GAAG,CAAC,QAAmB,KAAe;AAChE,IAAA,IAAI,OAAO,QAAQ,KAAK,QAAQ,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;AAC1D,QAAA,OAAO,QAAQ;IACnB;IAEA,MAAM,WAAW,GAAG,gBAAgB;IACpC,MAAM,KAAK,GAAgB,EAAE;IAC7B,IAAI,SAAS,GAAG,CAAC;AACjB,IAAA,IAAI,KAA6B;AAEjC,IAAA,OAAO,CAAC,KAAK,GAAG,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,IAAI,EAAE;AAClD,QAAA,IAAI,KAAK,CAAC,KAAK,GAAG,SAAS,EAAE;AACzB,YAAA,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;QACtD;QAEA,KAAK,CAAC,IAAI,CACNK,mBAAa,CAAC,QAAQ,EAAE,EAAE,GAAG,EAAE,KAAK,CAAC,KAAK,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAC1D;QAED,SAAS,GAAG,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM;IAC7C;AAEA,IAAA,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;AACpB,QAAA,OAAO,QAAQ;IACnB;AAEA,IAAA,IAAI,SAAS,GAAG,QAAQ,CAAC,MAAM,EAAE;QAC7B,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IACzC;IAEA,OAAOA,mBAAa,CAACC,cAAQ,EAAE,IAAI,EAAE,GAAG,KAAK,CAAC;AAClD,CAAC;;AC7BD;;;;;;;;;;;;;;;;AAgBG;AACH,MAAM,IAAI,GAAkB,CAAC,EACzB,QAAQ,EACR,OAAO,GAAG,MAAM,EAChB,KAAK,EACL,QAAQ,EACR,UAAU,EACV,QAAQ,EACR,SAAS,EACT,kBAAkB,EAClB,SAAS,EACT,cAAc,EACd,eAAe,EACf,IAAI,EACJ,QAAQ,GACX,KAAI;AACD,IAAA,MAAMC,OAAK,GAAGC,cAAQ,EAAE;AACxB,IAAA,MAAM,aAAa,GAAGC,aAAO,CAAC,MAAM,oBAAoB,CAACF,OAAK,CAAC,EAAE,CAACA,OAAK,CAAC,CAAC;IACzE,MAAM,GAAG,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC,GAAG;AACtC,IAAA,MAAM,cAAc,GAAGE,aAAO,CAAC,MAAM,iBAAiB,CAAC,QAAQ,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC;;AAG7E,IAAA,MAAM,cAAc,GAAG,QAAQ,GAAG,qBAAqB,CAAC,QAAQ,CAAC,GAAG,SAAS;IAE7E,OAAOJ,mBAAa,CAChB,GAAG,EACH;QACI,SAAS,EAAE,WAAW,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,SAAS,EAAE,kBAAkB,EAAE,CAAC;AAC9G,QAAA,KAAK,EAAE,cAAc;AACrB,QAAA,YAAY,EAAE,SAAS;AACvB,QAAA,iBAAiB,EAAE,cAAc;AACjC,QAAA,kBAAkB,EAAE,eAAe;QACnC,IAAI;QACJ,QAAQ;KACX,EACD,cAAc,CACjB;AACL;AAEA,IAAI,CAAC,WAAW,GAAG,MAAM;;AC5DlB,MAAM,kBAAkB,GAAG,CAC9B,KAAY,EACZ,KAA+B,EAC/B,OAAmC,EACnC,QAAqC,KACrC;IACA,IAAI,QAAQ,EAAE;QACV,OAAO;AACH,YAAA,MAAM,EAAE;AACJ,gBAAA,eAAe,EAAE,KAAK,CAAC,MAAM,CAAC,QAAQ;AACtC,gBAAA,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,YAAY;AAChC,gBAAA,WAAW,EAAE,aAAa;AAC7B,aAAA;AACD,YAAA,QAAQ,EAAE;AACN,gBAAA,eAAe,EAAE,aAAa;AAC9B,gBAAA,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,YAAY;AAChC,gBAAA,WAAW,EAAE,KAAK,CAAC,MAAM,CAAC,QAAQ;AACrC,aAAA;SACJ,CAAC,OAAO,CAAC;IACd;AAEA,IAAA,MAAM,QAAQ,GAAG;AACb,QAAA,OAAO,EAAE;AACL,YAAA,MAAM,EAAE;AACJ,gBAAA,eAAe,EAAE,KAAK,CAAC,MAAM,CAAC,YAAY;AAC1C,gBAAA,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,IAAI;AACxB,gBAAA,WAAW,EAAE,aAAa;AAC7B,aAAA;AACD,YAAA,QAAQ,EAAE;AACN,gBAAA,eAAe,EAAE,aAAa;AAC9B,gBAAA,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,IAAI;AACxB,gBAAA,WAAW,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM;AACnC,aAAA;AACJ,SAAA;AACD,QAAA,OAAO,EAAE;AACL,YAAA,MAAM,EAAE;AACJ,gBAAA,eAAe,EAAE,KAAK,CAAC,MAAM,CAAC,OAAO;AACrC,gBAAA,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,SAAS;AAC7B,gBAAA,WAAW,EAAE,aAAa;AAC7B,aAAA;AACD,YAAA,QAAQ,EAAE;AACN,gBAAA,eAAe,EAAE,aAAa;AAC9B,gBAAA,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,OAAO;AAC3B,gBAAA,WAAW,EAAE,KAAK,CAAC,MAAM,CAAC,OAAO;AACpC,aAAA;AACJ,SAAA;AACD,QAAA,OAAO,EAAE;AACL,YAAA,MAAM,EAAE;AACJ,gBAAA,eAAe,EAAE,KAAK,CAAC,MAAM,CAAC,aAAa;AAC3C,gBAAA,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,OAAO;AAC3B,gBAAA,WAAW,EAAE,aAAa;AAC7B,aAAA;AACD,YAAA,QAAQ,EAAE;AACN,gBAAA,eAAe,EAAE,KAAK,CAAC,MAAM,CAAC,aAAa;AAC3C,gBAAA,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,OAAO;AAC3B,gBAAA,WAAW,EAAE,KAAK,CAAC,MAAM,CAAC,OAAO;AACpC,aAAA;AACJ,SAAA;AACD,QAAA,OAAO,EAAE;AACL,YAAA,MAAM,EAAE;AACJ,gBAAA,eAAe,EAAE,KAAK,CAAC,MAAM,CAAC,aAAa;AAC3C,gBAAA,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,OAAO;AAC3B,gBAAA,WAAW,EAAE,aAAa;AAC7B,aAAA;AACD,YAAA,QAAQ,EAAE;AACN,gBAAA,eAAe,EAAE,KAAK,CAAC,MAAM,CAAC,aAAa;AAC3C,gBAAA,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,OAAO;AAC3B,gBAAA,WAAW,EAAE,KAAK,CAAC,MAAM,CAAC,OAAO;AACpC,aAAA;AACJ,SAAA;AACD,QAAA,KAAK,EAAE;AACH,YAAA,MAAM,EAAE;AACJ,gBAAA,eAAe,EAAE,KAAK,CAAC,MAAM,CAAC,WAAW;AACzC,gBAAA,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,KAAK;AACzB,gBAAA,WAAW,EAAE,aAAa;AAC7B,aAAA;AACD,YAAA,QAAQ,EAAE;AACN,gBAAA,eAAe,EAAE,KAAK,CAAC,MAAM,CAAC,WAAW;AACzC,gBAAA,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,KAAK;AACzB,gBAAA,WAAW,EAAE,KAAK,CAAC,MAAM,CAAC,KAAK;AAClC,aAAA;AACJ,SAAA;AACD,QAAA,IAAI,EAAE;AACF,YAAA,MAAM,EAAE;AACJ,gBAAA,eAAe,EAAE,KAAK,CAAC,MAAM,CAAC,UAAU;AACxC,gBAAA,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,IAAI;AACxB,gBAAA,WAAW,EAAE,aAAa;AAC7B,aAAA;AACD,YAAA,QAAQ,EAAE;AACN,gBAAA,eAAe,EAAE,KAAK,CAAC,MAAM,CAAC,UAAU;AACxC,gBAAA,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,IAAI;AACxB,gBAAA,WAAW,EAAE,KAAK,CAAC,MAAM,CAAC,IAAI;AACjC,aAAA;AACJ,SAAA;KACJ;AACD,IAAA,OAAO,QAAQ,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC;AACnC,CAAC;;AChGD;;;;;AAKG;AACI,MAAM,iBAAiB,GAAG,CAC7B,KAAY,EACZ,IAA6B,EAC7B,UAAyC,KACzC;AACA,IAAA,MAAM,OAAO,GAAG;AACZ,QAAA,KAAK,EAAE;AACH,YAAA,QAAQ,EAAE,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,EAAE,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE;YACxE,SAAS,EAAE,EAAE,OAAO,EAAE,CAAA,EAAG,KAAK,CAAC,OAAO,CAAC,EAAE,CAAA,CAAA,EAAI,KAAK,CAAC,OAAO,CAAC,EAAE,CAAA,CAAE,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE;AACrG,SAAA;AACD,QAAA,EAAE,EAAE;AACA,YAAA,QAAQ,EAAE,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,EAAE,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC,EAAE,EAAE;YACpE,SAAS,EAAE,EAAE,OAAO,EAAE,CAAA,EAAG,KAAK,CAAC,OAAO,CAAC,EAAE,CAAA,CAAA,EAAI,KAAK,CAAC,OAAO,CAAC,EAAE,CAAA,CAAE,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC,EAAE,EAAE;AACjG,SAAA;AACD,QAAA,EAAE,EAAE;AACA,YAAA,QAAQ,EAAE,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,EAAE,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC,EAAE,EAAE;YACpE,SAAS,EAAE,EAAE,OAAO,EAAE,CAAA,EAAG,KAAK,CAAC,OAAO,CAAC,EAAE,CAAA,CAAA,EAAI,KAAK,CAAC,OAAO,CAAC,EAAE,CAAA,CAAE,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC,EAAE,EAAE;AACjG,SAAA;AACD,QAAA,EAAE,EAAE;AACA,YAAA,QAAQ,EAAE,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,EAAE,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC,EAAE,EAAE;YACpE,SAAS,EAAE,EAAE,OAAO,EAAE,CAAA,EAAG,KAAK,CAAC,OAAO,CAAC,EAAE,CAAA,CAAA,EAAI,KAAK,CAAC,OAAO,CAAC,EAAE,CAAA,CAAE,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC,EAAE,EAAE;AACjG,SAAA;AACD,QAAA,EAAE,EAAE;AACA,YAAA,QAAQ,EAAE,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,EAAE,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC,EAAE,EAAE;YACpE,SAAS,EAAE,EAAE,OAAO,EAAE,CAAA,EAAG,KAAK,CAAC,OAAO,CAAC,EAAE,CAAA,CAAA,EAAI,KAAK,CAAC,OAAO,CAAC,EAAE,CAAA,CAAE,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC,EAAE,EAAE;AACjG,SAAA;KACJ;AAED,IAAA,OAAO,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,SAAS;AACxE,CAAC;;ACjCM,MAAM,WAAW,GAAGL,kBAAY,CAAC,CAAC,KAAK,MAAM;AAChD,IAAA,IAAI,EAAE,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,EAAmB,KAAI;AACnF,QAAA,MAAM,WAAW,GAAG,kBAAkB,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,CAAC;QACvE,MAAM,UAAU,GAAG,iBAAiB,CAAC,KAAK,EAAE,IAAI,EAAE,UAAU,CAAC;QAE7D,OAAO;AACH,YAAA,OAAO,EAAE,MAAM;AACf,YAAA,UAAU,EAAE,QAAQ;AACpB,YAAA,cAAc,EAAE,QAAQ;AACxB,YAAA,GAAG,EAAE,GAAG,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,EAAE;AAChD,YAAA,YAAY,EAAE,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,EAAE;YAC7D,MAAM,EAAE,OAAO,KAAK,UAAU,GAAG,WAAW,GAAG,MAAM;YACrD,WAAW,EAAE,UAAU,GAAG,CAAC,GAAG,SAAS;AACvC,YAAA,MAAM,EAAE,aAAa;AACrB,YAAA,KAAK,EAAE,aAAa;AACpB,YAAA,UAAU,EAAE,SAAS;AACrB,YAAA,UAAU,EAAE,KAAK,CAAC,UAAU,CAAC,MAAM;AACnC,YAAA,UAAU,EAAE,QAAQ;AACpB,YAAA,SAAS,EAAE,YAAY;AACvB,YAAA,GAAG,UAAU;AACb,YAAA,GAAG,WAAW;SACjB;IACL,CAAC;AACJ,CAAA,CAAC,CAAC;;ACzBH;;;;AAIG;AACI,MAAM,kBAAkB,GAAG,CAC9B,IAA6B,KACT;AACpB,IAAA,MAAM,OAAO,GAAG;AACZ,QAAA,KAAK,EAAE,KAAK;AACZ,QAAA,EAAE,EAAE,IAAI;AACR,QAAA,EAAE,EAAE,IAAI;AACR,QAAA,EAAE,EAAE,IAAI;AACR,QAAA,EAAE,EAAE,IAAI;KACX;AAED,IAAA,OAAO,OAAO,CAAC,IAAI,CAAuB;AAC9C,CAAC;;ACbD;;;;;;;;;;;AAWG;AACH,MAAM,IAAI,GAAkB,CAAC,EACzB,KAAK,EACL,IAAI,EACJ,OAAO,GAAG,QAAQ,EAClB,KAAK,GAAG,SAAS,EACjB,IAAI,GAAG,IAAI,EACX,GAAG,EACH,MAAM,EACN,QAAQ,GAAG,KAAK,EAChB,SAAS,EACT,cAAc,EACd,eAAe,EACf,IAAI,EACJ,QAAQ,GACX,KAAI;IACD,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK;AAE1C,IAAA,QACIU,eAAA,CAAA,MAAA,EAAA,EACI,SAAS,EAAE,WAAW,CAAC,IAAI,CAAC;YACxB,OAAO;YACP,KAAK;YACL,IAAI;YACJ,UAAU;YACV,QAAQ;YACR,GAAG;YACH,MAAM;SACT,CAAC,EAAA,YAAA,EACU,SAAS,EAAA,iBAAA,EACJ,cAAc,EAAA,kBAAA,EACb,eAAe,EACjC,IAAI,EAAE,IAAI,EACV,QAAQ,EAAE,QAAQ,EAAA,QAAA,EAAA,CAEjB,IAAI,KACDN,cAAA,CAAC,IAAI,EAAA,EACD,IAAI,EAAE,kBAAkB,CAAC,IAAI,CAAC,YAE7B,IAAI,EAAA,CACF,CACV,EACA,KAAK,KACFA,cAAA,CAAC,IAAI,EAAA,EACD,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,kBAAkB,CAAC,IAAI,CAAC,EAAA,QAAA,EAEjC,KAAK,EAAA,CACH,CACV,CAAA,EAAA,CACE;AAEf;AAEA,IAAI,CAAC,WAAW,GAAG,MAAM;;ACzElB,MAAM,WAAW,GAAG,EAAE;AACtB,MAAM,eAAe,GAAG,GAAG;AAC3B,MAAM,cAAc,GAAG,EAAE;AACzB,MAAM,kBAAkB,GAAG,EAAE;AAC7B,MAAM,8BAA8B,GAAG,GAAG;;ACCjD;;;AAGG;AACI,MAAM,cAAc,GAAG,CAAC,KAAY,MAAgG;IACvI,KAAK,EAAE,EAAE,IAAI,EAAE,WAAW,GAAG,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,CAAA,CAAA,EAAI,KAAK,CAAC,OAAO,CAAC,EAAE,CAAA,CAAE,EAAE;AACjF,IAAA,MAAM,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,KAAK,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE;IAC9E,KAAK,EAAE,EAAE,IAAI,EAAE,WAAW,GAAG,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,CAAA,CAAA,EAAI,KAAK,CAAC,OAAO,CAAC,EAAE,CAAA,CAAE,EAAE;AACpF,CAAA,CAAC;;ACRF;;AAEG;AACI,MAAM,aAAa,GAAGJ,kBAAY,CAAC,CAAC,KAAK,KAAI;AAChD,IAAA,MAAM,YAAY,GAAG,cAAc,CAAC,KAAK,CAAC;IAE1C,OAAO;QACH,IAAI,EAAE,CAAC,EAAE,QAAQ,GAAG,KAAK,EAAE,SAAS,GAAG,KAAK,EAAE,IAAI,GAAG,QAAQ,EAAE,KAAK,EAAE,WAAW,EAAE,eAAe,EAA+C,KAAI;AACjJ,YAAA,MAAM,UAAU,GAAG,YAAY,CAAC,IAAI,CAAC;YACrC,OAAO;gBACH,KAAK,EAAE,UAAU,CAAC,IAAI;gBACtB,MAAM,EAAE,UAAU,CAAC,IAAI;AACvB,gBAAA,YAAY,EAAE,KAAK,CAAC,MAAM,CAAC,IAAI;AAC/B,gBAAA,eAAe,EAAE,eAAe,KAAK,QAAQ,GAAG,aAAa,GAAG,KAAK,CAAC,MAAM,CAAC,YAAY,CAAC;AAC1F,gBAAA,OAAO,EAAE,MAAM;AACf,gBAAA,UAAU,EAAE,QAAQ;AACpB,gBAAA,cAAc,EAAE,QAAQ;gBACxB,MAAM,EAAE,SAAS,GAAG,SAAS,GAAG,SAAS;gBACzC,MAAM,EAAE,QAAQ,IAAI,CAAC,WAAW,GAAG,MAAM,GAAG,CAAA,UAAA,EAAa,WAAW,IAAI,KAAK,CAAC,MAAM,CAAC,MAAM,CAAA,CAAE;AAC7F,gBAAA,QAAQ,EAAE,QAAQ;AAClB,gBAAA,UAAU,EAAE,CAAC;AACb,gBAAA,KAAK,EAAE,KAAK,IAAI,KAAK,CAAC,MAAM,CAAC,aAAa;AAC1C,gBAAA,UAAU,EAAE,KAAK,CAAC,UAAU,CAAC,MAAM;aACtC;QACL,CAAC;AACD,QAAA,KAAK,EAAE;AACH,YAAA,KAAK,EAAE,MAAM;AACb,YAAA,MAAM,EAAE,MAAM;AACd,YAAA,SAAS,EAAE,OAAO;AACrB,SAAA;KACJ;AACL,CAAC,CAAC;;AC5BF;;;;AAIG;AACH,MAAM,MAAM,GAAoB,CAAC,EAC7B,KAAK,EACL,KAAK,EACL,OAAO,EACP,IAAI,GAAG,QAAQ,EACf,KAAK,EACL,WAAW,EACX,eAAe,GAClB,KAAI;;AAED,IAAA,MAAMO,OAAK,GAAGC,cAAQ,EAAE;;AAGxB,IAAA,MAAM,YAAY,GAAG,cAAc,CAACD,OAAK,CAAC;AAC1C,IAAA,MAAM,QAAQ,GAAG,CAAC,CAAC,KAAK;AACxB,IAAA,MAAM,SAAS,GAAG,CAAC,CAAC,OAAO;AAE3B,IAAA,QACIH,cAAA,CAAA,KAAA,EAAA,EACI,SAAS,EAAE,aAAa,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,WAAW,EAAE,eAAe,EAAE,CAAC,EACjG,OAAO,EAAE,CAAC,KAAK,KAAI;YACf,IAAI,OAAO,EAAE;gBACT,OAAO,CAAC,KAAK,CAAC;YAClB;QACJ,CAAC,EAAA,QAAA,EAEA,QAAQ,IACLA,cAAA,CAAA,KAAA,EAAA,EACI,GAAG,EAAE,KAAK,EACV,GAAG,EAAE,KAAK,IAAI,QAAQ,EACtB,SAAS,EAAE,aAAa,CAAC,KAAK,EAAA,CAChC,KAEFA,cAAA,CAAC,IAAI,EAAA,EACD,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,YAAY,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAA,QAAA,EAEpC,KAAK,IAAI,GAAG,EAAA,CACV,CACV,EAAA,CACC;AAEd;AAEA,MAAM,CAAC,WAAW,GAAG,QAAQ;;ACpD7B;;AAEG;AACI,MAAM,mBAAmB,GAAGJ,kBAAY,CAAC,CAAC,KAAK,KAAI;AACtD,IAAA,MAAM,YAAY,GAAG,cAAc,CAAC,KAAK,CAAC;IAE1C,OAAO;AACH,QAAA,IAAI,EAAE;AACF,YAAA,OAAO,EAAE,MAAM;AACf,YAAA,UAAU,EAAE,QAAQ;AACvB,SAAA;QACD,KAAK,EAAE,CAAC,EAAE,IAAI,GAAG,QAAQ,EAAyB,MAAM;AACpD,YAAA,UAAU,EAAE,YAAY,CAAC,IAAI,CAAC,CAAC,OAAO;SACzC,CAAC;AACF,QAAA,UAAU,EAAE;AACR,YAAA,UAAU,EAAE,GAAG;AAClB,SAAA;QACD,IAAI,EAAE,CAAC,EAAE,IAAI,GAAG,QAAQ,EAAyB,KAAI;AACjD,YAAA,MAAM,UAAU,GAAG,YAAY,CAAC,IAAI,CAAC;YACrC,OAAO;gBACH,KAAK,EAAE,UAAU,CAAC,IAAI;gBACtB,MAAM,EAAE,UAAU,CAAC,IAAI;AACvB,gBAAA,YAAY,EAAE,KAAK,CAAC,MAAM,CAAC,IAAI;AAC/B,gBAAA,eAAe,EAAE,KAAK,CAAC,MAAM,CAAC,YAAY;AAC1C,gBAAA,MAAM,EAAE,CAAA,UAAA,EAAa,KAAK,CAAC,MAAM,CAAC,MAAM,CAAA,CAAE;AAC1C,gBAAA,OAAO,EAAE,MAAM;AACf,gBAAA,UAAU,EAAE,QAAQ;AACpB,gBAAA,cAAc,EAAE,QAAQ;AACxB,gBAAA,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,aAAa;gBACjC,QAAQ,EAAE,UAAU,CAAC,QAAQ;AAC7B,gBAAA,UAAU,EAAE,KAAK,CAAC,UAAU,CAAC,MAAM;AACnC,gBAAA,UAAU,EAAE,CAAC;AACb,gBAAA,UAAU,EAAE,YAAY,CAAC,IAAI,CAAC,CAAC,OAAO;aACzC;QACL,CAAC;KACJ;AACL,CAAC,CAAC;;ACjCF;;;;AAIG;AACH,MAAM,WAAW,GAAyB,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,GAAG,QAAQ,EAAE,KAAI;;AAE/E,IAAA,MAAMO,OAAK,GAAGC,cAAQ,EAAE;;AAGxB,IAAA,MAAM,YAAY,GAAG,cAAc,CAACD,OAAK,CAAC;IAC1C,MAAM,UAAU,GAAGN,cAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC;AAC7C,IAAA,MAAM,iBAAiB,GAAG,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,GAAG,UAAU;IACzE,MAAM,SAAS,GAAG,KAAK,IAAI,UAAU,CAAC,MAAM,GAAG,KAAK,GAAG,UAAU,CAAC,MAAM,GAAG,KAAK,GAAG,CAAC;AAEpF,IAAA,QACIS,eAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAE,mBAAmB,CAAC,IAAI,EAAA,QAAA,EAAA,CACnC,iBAAiB,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,KAAK,MAChCN,cAAA,CAAA,KAAA,EAAA,EAEI,SAAS,EAAE,KAAK,KAAK,CAAC,GAAG,mBAAmB,CAAC,UAAU,GAAG,mBAAmB,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,CAAC,EAAA,QAAA,EAE5F,KAAK,EAAA,EAHD,KAAK,CAIR,CACT,CAAC,EACD,SAAS,GAAG,CAAC,KACVA,wBAAK,SAAS,EAAE,mBAAmB,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,EAAA,QAAA,EAC9CM,gBAAC,IAAI,EAAA,EACD,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,YAAY,CAAC,IAAI,CAAC,CAAC,QAAQ,kBAGpC,SAAS,CAAA,EAAA,CACP,GACL,CACT,CAAA,EAAA,CACC;AAEd;AAEA,WAAW,CAAC,WAAW,GAAG,aAAa;;AC9ChC,MAAM,gBAAgB,GAAGC,eAAS,CAAC;AACtC,IAAA,IAAI,EAAE;AACF,QAAA,kBAAkB,EAAE,SAAS;AAChC,KAAA;AACD,IAAA,MAAM,EAAE;AACJ,QAAA,kBAAkB,EAAE,QAAQ;AAC/B,KAAA;AACJ,CAAA,CAAC;;ACLK,MAAM,eAAe,GAAGX,kBAAY,CAAC,CAAC,KAAK,MAAM;IACpD,IAAI,EAAE,CAAC,KAA8B,EAAE,MAAgC,EAAE,YAAoC,MAAM;QAC/G,KAAK;QACL,MAAM;AACN,QAAA,YAAY,EAAE,YAAY,GAAG,KAAK,CAAC,MAAM,CAAC,YAAY,CAAC,GAAI,KAAK,CAAC,MAAM,CAAC,EAAE;AAC1E,QAAA,UAAU,EAAE,CAAA,uBAAA,EAA0B,KAAK,CAAC,MAAM,CAAC,aAAa,CAAA,MAAA,EAAS,KAAK,CAAC,MAAM,CAAC,YAAY,CAAA,MAAA,EAAS,KAAK,CAAC,MAAM,CAAC,aAAa,CAAA,KAAA,CAAO;AAC5I,QAAA,cAAc,EAAE,WAAW;QAC3B,SAAS,EAAE,CAAA,EAAG,gBAAgB,CAAA,0BAAA,CAA4B;KAC7D,CAAC;AACL,CAAA,CAAC,CAAC;;ACRH,MAAM,QAAQ,GAAsB,CAAC,EACjC,KAAK,EACL,MAAM,EACN,YAAY,EACf,KAAI;AACD,IAAA,QACII,cAAA,CAAA,KAAA,EAAA,EACI,SAAS,EAAE,eAAe,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,YAAY,CAAC,EAAA,CAC9D;AAEV;AAEA,QAAQ,CAAC,WAAW,GAAG,UAAU;;ACH1B,MAAM,mBAAmB,GAAG,OAAkD;AACjF,IAAA,KAAK,EAAE;QACH,MAAM,EAAE,WAAW,GAAG,CAAC;AACvB,QAAA,OAAO,EAAE;AACL,YAAA,QAAQ,EAAE,IAAI;AACd,YAAA,UAAU,EAAE;AACf,SAAA;AACD,QAAA,QAAQ,EAAE;AACb,KAAA;AACD,IAAA,MAAM,EAAE;AACJ,QAAA,MAAM,EAAE,WAAW;AACnB,QAAA,OAAO,EAAE;AACL,YAAA,QAAQ,EAAE,IAAI;AACd,YAAA,UAAU,EAAE;AACf,SAAA;AACD,QAAA,QAAQ,EAAE;AACb,KAAA;AACD,IAAA,KAAK,EAAE;QACH,MAAM,EAAE,WAAW,GAAG,CAAC;AACvB,QAAA,OAAO,EAAE;AACL,YAAA,QAAQ,EAAE,IAAI;AACd,YAAA,UAAU,EAAE;AACf,SAAA;AACD,QAAA,QAAQ,EAAE;AACb;AACJ,CAAA,CAAC;;ACnCF;;;AAGG;AACI,MAAM,sBAAsB,GAAG,CAACG,OAAY,KAAgD;;AAE/F,IAAA,MAAM,eAAe,GAAG;QACpB,eAAe,EAAEK,YAAM,CAAC,WAAW;AACnC,QAAA,KAAK,EAAEL,OAAK,CAAC,MAAM,CAAC,OAAO;KAC9B;AAED,IAAA,MAAM,aAAa,GAAG;QAClB,KAAK,EAAE,EAAE,eAAe,EAAEA,OAAK,CAAC,MAAM,CAAC,YAAY,EAAE;QACrD,OAAO,EAAE,EAAE,eAAe,EAAEA,OAAK,CAAC,MAAM,CAAC,aAAa,EAAE;KAC3D;AAED,IAAA,MAAM,YAAY,GAAG;AACjB,QAAA,KAAK,EAAEA,OAAK,CAAC,MAAM,CAAC,YAAY;AAChC,QAAA,MAAM,EAAE,aAAa;AACrB,QAAA,OAAO,EAAEA,OAAK,CAAC,OAAO,CAAC;KAC1B;IAED,OAAO;AACH,QAAA,SAAS,EAAE;AACP,YAAA,OAAO,EAAE;AACL,gBAAA,eAAe,EAAEA,OAAK,CAAC,MAAM,CAAC,OAAO;AACrC,gBAAA,KAAK,EAAEA,OAAK,CAAC,MAAM,CAAC,SAAS;AAC7B,gBAAA,MAAM,EAAE,MAAM;AACjB,aAAA;YACD,KAAK,EAAE,EAAE,eAAe,EAAEA,OAAK,CAAC,MAAM,CAAC,YAAY,EAAE;YACrD,OAAO,EAAE,EAAE,eAAe,EAAEA,OAAK,CAAC,MAAM,CAAC,aAAa,EAAE;AACxD,YAAA,QAAQ,EAAE,EAAE,GAAG,YAAY,EAAE,eAAe,EAAEA,OAAK,CAAC,MAAM,CAAC,QAAQ,EAAE;AACrE,YAAA,SAAS,EAAE,WAAW;AACzB,SAAA;AACD,QAAA,QAAQ,EAAE;AACN,YAAA,OAAO,EAAE;AACL,gBAAA,GAAG,eAAe;AAClB,gBAAA,MAAM,EAAE,CAAA,UAAA,EAAaA,OAAK,CAAC,MAAM,CAAC,OAAO,CAAA,CAAE;AAC9C,aAAA;AACD,YAAA,GAAG,aAAa;AAChB,YAAA,QAAQ,EAAE,EAAE,GAAG,YAAY,EAAE,eAAe,EAAE,aAAa,EAAE,WAAW,EAAEA,OAAK,CAAC,MAAM,CAAC,QAAQ,EAAE;AACjG,YAAA,SAAS,EAAE,SAAS;AACvB,SAAA;AACD,QAAA,IAAI,EAAE;YACF,OAAO,EAAE,EAAE,GAAG,eAAe,EAAE,MAAM,EAAE,MAAM,EAAE;AAC/C,YAAA,GAAG,aAAa;YAChB,QAAQ,EAAE,EAAE,GAAG,YAAY,EAAE,eAAe,EAAE,aAAa,EAAE;AAC7D,YAAA,SAAS,EAAE,SAAS;AACvB,SAAA;AACD,QAAA,WAAW,EAAE;AACT,YAAA,OAAO,EAAE;AACL,gBAAA,eAAe,EAAEA,OAAK,CAAC,MAAM,CAAC,KAAK;AACnC,gBAAA,KAAK,EAAEA,OAAK,CAAC,MAAM,CAAC,OAAO;AAC3B,gBAAA,MAAM,EAAE,MAAM;AACjB,aAAA;YACD,KAAK,EAAE,EAAE,eAAe,EAAEA,OAAK,CAAC,MAAM,CAAC,UAAU,EAAE;YACnD,OAAO,EAAE,EAAE,eAAe,EAAEA,OAAK,CAAC,MAAM,CAAC,KAAK,EAAE;AAChD,YAAA,QAAQ,EAAE,EAAE,GAAG,YAAY,EAAE,eAAe,EAAEA,OAAK,CAAC,MAAM,CAAC,QAAQ,EAAE;AACrE,YAAA,SAAS,EAAE,SAAS;AACvB,SAAA;AACD,QAAA,IAAI,EAAE;YACF,OAAO,EAAE,EAAE,GAAG,eAAe,EAAE,MAAM,EAAE,MAAM,EAAE,cAAc,EAAE,WAAW,EAAE,mBAAmB,EAAE,aAAa,EAAE,mBAAmB,EAAE,KAAK,EAAE;YAC5I,KAAK,EAAE,EAAE,eAAe,EAAE,aAAa,EAAE,mBAAmB,EAAE,cAAc,EAAE;AAC9E,YAAA,OAAO,EAAE,EAAE,eAAe,EAAE,aAAa,EAAE,mBAAmB,EAAE,cAAc,EAAE,KAAK,EAAEA,OAAK,CAAC,MAAM,CAAC,UAAU,EAAE;AAChH,YAAA,QAAQ,EAAE,EAAE,GAAG,YAAY,EAAE,eAAe,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,EAAE;AACrF,YAAA,SAAS,EAAE,MAAM;AACpB,SAAA;KACJ;AACL,CAAC;;AClED;;;;;;;;;;;;;AAaG;AACI,MAAM,aAAa,GAAGP,kBAAY,CAAC,CAAC,KAAK,KAAI;AAChD,IAAA,MAAM,aAAa,GAAG,sBAAsB,CAAC,KAAK,CAAC;AACnD,IAAA,MAAM,UAAU,GAAG,mBAAmB,EAAE;IAExC,OAAO;QACH,IAAI,EAAE,CAAC,EACH,OAAO,GAAG,WAAW,EACrB,MAAM,GAAG,KAAK,EACd,SAAS,EACT,eAAe,EACf,oBAAoB,EACpB,qBAAqB,EACrB,IAAI,GAAG,QAAQ,EACC,KAAI;AACpB,YAAA,MAAM,UAAU,GAAG,UAAU,CAAC,IAAI,CAAC;AACnC,YAAA,MAAM,SAAS,GAAG,SAAS,GAAG;AAC1B,gBAAA,IAAI,OAAO,KAAK,WAAW,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC;AAClE,gBAAA,IAAI,OAAO,KAAK,UAAU,IAAI,EAAE,MAAM,EAAE,CAAA,UAAA,EAAa,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,CAAA,CAAE,EAAE,CAAC;aACpF,GAAG,EAAE;YACN,MAAM,kBAAkB,GAAG,eAAe,GAAG,EAAE,eAAe,EAAE,KAAK,CAAC,MAAM,CAAC,eAAe,CAAC,EAAE,GAAG,EAAE;YACpG,MAAM,uBAAuB,GAAG,oBAAoB,GAAG,EAAE,eAAe,EAAE,KAAK,CAAC,MAAM,CAAC,oBAAoB,CAAC,EAAE,GAAG,EAAE;YACnH,MAAM,wBAAwB,GAAG,qBAAqB,GAAG,EAAE,eAAe,EAAE,KAAK,CAAC,MAAM,CAAC,qBAAqB,CAAC,EAAE,GAAG,EAAE;YACtH,OAAO;AACH,gBAAA,OAAO,EAAE,aAAa;AACtB,gBAAA,UAAU,EAAE,QAAQ;AACpB,gBAAA,cAAc,EAAE,QAAQ;AACxB,gBAAA,SAAS,EAAE,YAAY;AACvB,gBAAA,GAAG,EAAE,KAAK,CAAC,OAAO,CAAC,EAAE;gBACrB,OAAO,EAAE,GAAG,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAA,CAAA,EAAI,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,UAAU,CAAC,CAAA,CAAE;AACxG,gBAAA,YAAY,EAAE,KAAK,CAAC,MAAM,CAAC,EAAE;AAC7B,gBAAA,MAAM,EAAE,SAAS;AACjB,gBAAA,UAAU,EAAE,CAAA,iBAAA,EAAoB,KAAK,CAAC,UAAU,CAAC,IAAI,CAAA,QAAA,EAAW,KAAK,CAAC,UAAU,CAAC,IAAI,CAAA,wBAAA,EAA2B,KAAK,CAAC,UAAU,CAAC,IAAI,CAAA,CAAE;gBACvI,SAAS,EAAE,UAAU,CAAC,MAAM;gBAC5B,SAAS,EAAE,UAAU,CAAC,MAAM;AAC5B,gBAAA,UAAU,EAAE,SAAS;AACrB,gBAAA,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC,OAAO;gBACjC,IAAI,MAAM,IAAI,aAAa,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC;AAC7C,gBAAA,QAAQ,EAAE;AACN,oBAAA,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC,KAAK;AAC/B,oBAAA,GAAG,uBAAuB;AAC7B,iBAAA;AACD,gBAAA,SAAS,EAAE;AACP,oBAAA,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC,OAAO;AACjC,oBAAA,GAAG,wBAAwB;AAC9B,iBAAA;AACD,gBAAA,WAAW,EAAE,aAAa,CAAC,OAAO,CAAC,CAAC,QAAQ;AAC5C,gBAAA,GAAG,SAAS;AACZ,gBAAA,GAAG,kBAAkB;aACxB;QACL,CAAC;KACJ;AACL,CAAC,CAAC;;AC7DF;;;;;;;AAOG;AACH,MAAM,MAAM,GAAoB,CAAC,EAC7B,KAAK,EACL,SAAS,EACT,OAAO,EACP,OAAO,GAAG,WAAW,EACrB,MAAM,GAAG,KAAK,EACd,OAAO,EACP,QAAQ,EACR,IAAI,GAAG,QAAQ,EACf,SAAS,EAAE,eAAe,EAC1B,eAAe,EACf,oBAAoB,EACpB,qBAAqB,EACrB,IAAI,GAAG,QAAQ,EACf,SAAS,EACT,cAAc,EACd,eAAe,EACf,IAAI,EACJ,QAAQ,GACX,KAAI;AACD,IAAA,MAAMO,OAAK,GAAGC,cAAQ,EAAE;AACxB,IAAA,MAAM,aAAa,GAAG,sBAAsB,CAACD,OAAK,CAAC;AACnD,IAAA,MAAM,UAAU,GAAG,mBAAmB,EAAE;IACxC,MAAM,SAAS,GAAG,QAAQ,GAAG,cAAc,IAAI,eAAe,IAAI,aAAa,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC;IAEnG,QACIG,4BACI,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,QAAQ,EAClB,IAAI,EAAE,IAAI,EACV,SAAS,EAAE,aAAa,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,eAAe,EAAE,eAAe,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,IAAI,EAAE,CAAC,gBACtI,SAAS,EAAA,iBAAA,EACJ,cAAc,EAAA,kBAAA,EACb,eAAe,EACjC,IAAI,EAAE,IAAI,EACV,QAAQ,EAAE,QAAQ,aAEjB,SAAS,KACNN,cAAA,CAAC,IAAI,IAAC,KAAK,EAAE,SAAS,EAAA,QAAA,EACjB,SAAS,EAAA,CACP,CACV,EACDA,cAAA,CAAC,IAAI,EAAA,EACD,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,SAAS,EAChB,QAAQ,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC,QAAQ,YAElC,KAAK,EAAA,CACH,EACN,OAAO,KACJA,eAAC,IAAI,EAAA,EAAC,KAAK,EAAE,SAAS,EAAA,QAAA,EACjB,OAAO,EAAA,CACL,CACV,CAAA,EAAA,CACI;AAEjB;AAEA,MAAM,CAAC,WAAW,GAAG,QAAQ;;ACjEtB,MAAM,uBAAuB,GAAG,OAAsD;AACzF,IAAA,KAAK,EAAE;QACH,IAAI,EAAE,WAAW,GAAG,CAAC;AACrB,QAAA,OAAO,EAAE,IAAI;AACb,QAAA,QAAQ,EAAE;AACb,KAAA;AACD,IAAA,MAAM,EAAE;AACJ,QAAA,IAAI,EAAE,WAAW;AACjB,QAAA,OAAO,EAAE,IAAI;AACb,QAAA,QAAQ,EAAE;AACb,KAAA;AACD,IAAA,KAAK,EAAE;QACH,IAAI,EAAE,WAAW,GAAG,CAAC;AACrB,QAAA,OAAO,EAAE,IAAI;AACb,QAAA,QAAQ,EAAE;AACb;AACJ,CAAA,CAAC;;ACrBK,MAAM,kBAAkB,GAAGJ,kBAAY,CAAC,CAAC,KAAK,KAAI;AACrD,IAAA,MAAM,aAAa,GAAG,sBAAsB,CAAC,KAAK,CAAC;AACnD,IAAA,MAAM,UAAU,GAAG,uBAAuB,EAAE;IAE5C,OAAO;QACH,IAAI,EAAE,CAAC,EACH,OAAO,GAAG,WAAW,EACrB,MAAM,GAAG,KAAK,EACd,IAAI,GAAG,QAAQ,EACf,SAAS,EACT,eAAe,EACf,oBAAoB,EACpB,qBAAqB,EACD,KAAI;AACxB,YAAA,MAAM,UAAU,GAAG,UAAU,CAAC,IAAI,CAAC;AACnC,YAAA,MAAM,SAAS,GAAG,SAAS,GAAG;AAC1B,gBAAA,IAAI,OAAO,KAAK,WAAW,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC;AAClE,gBAAA,IAAI,OAAO,KAAK,UAAU,IAAI,EAAE,MAAM,EAAE,CAAA,UAAA,EAAa,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,CAAA,CAAE,EAAE,CAAC;aACpF,GAAG,EAAE;YACN,MAAM,kBAAkB,GAAG,eAAe,GAAG,EAAE,eAAe,EAAE,KAAK,CAAC,MAAM,CAAC,eAAe,CAAC,EAAE,GAAG,EAAE;YACpG,MAAM,uBAAuB,GAAG,oBAAoB,GAAG,EAAE,eAAe,EAAE,KAAK,CAAC,MAAM,CAAC,oBAAoB,CAAC,EAAE,GAAG,EAAE;YACnH,MAAM,wBAAwB,GAAG,qBAAqB,GAAG,EAAE,eAAe,EAAE,KAAK,CAAC,MAAM,CAAC,qBAAqB,CAAC,EAAE,GAAG,EAAE;YACtH,OAAO;AACH,gBAAA,OAAO,EAAE,aAAa;AACtB,gBAAA,UAAU,EAAE,QAAQ;AACpB,gBAAA,cAAc,EAAE,QAAQ;AACxB,gBAAA,SAAS,EAAE,YAAY;AACvB,gBAAA,GAAG,EAAE,KAAK,CAAC,OAAO,CAAC,EAAE;gBACrB,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC;AAC1C,gBAAA,YAAY,EAAE,KAAK,CAAC,MAAM,CAAC,EAAE;AAC7B,gBAAA,MAAM,EAAE,SAAS;AACjB,gBAAA,UAAU,EAAE,CAAA,iBAAA,EAAoB,KAAK,CAAC,UAAU,CAAC,IAAI,CAAA,QAAA,EAAW,KAAK,CAAC,UAAU,CAAC,IAAI,CAAA,CAAE;gBACvF,SAAS,EAAE,UAAU,CAAC,IAAI;gBAC1B,SAAS,EAAE,UAAU,CAAC,IAAI;gBAC1B,QAAQ,EAAE,UAAU,CAAC,IAAI;gBACzB,QAAQ,EAAE,UAAU,CAAC,IAAI;AACzB,gBAAA,UAAU,EAAE,SAAS;AACrB,gBAAA,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC,OAAO;gBACjC,IAAI,MAAM,IAAI,aAAa,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC;AAC7C,gBAAA,QAAQ,EAAE;AACN,oBAAA,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC,KAAK;AAC/B,oBAAA,GAAG,uBAAuB;AAC7B,iBAAA;AACD,gBAAA,SAAS,EAAE;AACP,oBAAA,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC,OAAO;AACjC,oBAAA,GAAG,wBAAwB;AAC9B,iBAAA;AACD,gBAAA,WAAW,EAAE,aAAa,CAAC,OAAO,CAAC,CAAC,QAAQ;AAC5C,gBAAA,GAAG,SAAS;AACZ,gBAAA,GAAG,kBAAkB;aACxB;QACL,CAAC;KACJ;AACL,CAAC,CAAC;;AClDF,MAAM,UAAU,GAAwB,CAAC,EACrC,IAAI,EACJ,OAAO,GAAG,WAAW,EACrB,MAAM,GAAG,KAAK,EACd,IAAI,GAAG,QAAQ,EACf,OAAO,EACP,QAAQ,EACR,SAAS,EAAE,eAAe,EAC1B,eAAe,EACf,oBAAoB,EACpB,qBAAqB,EACrB,IAAI,GAAG,QAAQ,EACf,SAAS,EACT,cAAc,EACd,eAAe,EACf,IAAI,EACJ,QAAQ,GACX,KAAI;AACD,IAAA,MAAMO,OAAK,GAAGC,cAAQ,EAAE;AACxB,IAAA,MAAM,aAAa,GAAG,sBAAsB,CAACD,OAAK,CAAC;IACnD,MAAM,SAAS,GAAG,QAAQ,GAAG,cAAc,IAAI,eAAe,IAAI,aAAa,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC;IACnG,MAAM,QAAQ,GAAG,uBAAuB,EAAE,CAAC,IAAI,CAAC,CAAC,QAAQ;AAEzD,IAAA,QACIH,cAAA,CAAA,QAAA,EAAA,EACI,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,QAAQ,EAClB,IAAI,EAAE,IAAI,EACV,SAAS,EAAE,kBAAkB,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,eAAe,EAAE,eAAe,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,CAAC,EAAA,YAAA,EAC3I,SAAS,qBACJ,cAAc,EAAA,kBAAA,EACb,eAAe,EACjC,IAAI,EAAE,IAAI,EACV,QAAQ,EAAE,QAAQ,EAAA,QAAA,EAElBA,cAAA,CAAC,IAAI,EAAA,EACD,KAAK,EAAE,SAAS,EAChB,IAAI,EAAE,QAAQ,EAAA,QAAA,EAEb,IAAI,EAAA,CACF,EAAA,CACF;AAEjB;AAEA,UAAU,CAAC,WAAW,GAAG,YAAY;;ACpD9B,MAAM,WAAW,GAAGJ,kBAAY,CAAC,OAAO;AAC3C,IAAA,IAAI,EAAE;AACF,QAAA,OAAO,EAAE,UAAU;AACtB,KAAA;AACJ,CAAA,CAAC,CAAC;;ACDH;;AAEG;AACH,MAAM,IAAI,GAAkB,CAAC,EACzB,QAAQ,EACR,QAAQ,EACR,SAAS,GACZ,KAAI;AACD,IAAA,MAAM,YAAY,GAAGa,iBAAW,CAAC,CAAC,CAAY,KAAI;QAC9C,CAAC,CAAC,cAAc,EAAE;AAClB,QAAA,QAAQ,GAAG,CAAC,CAAC;AACjB,IAAA,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC;AAEd,IAAA,QACIT,cAAA,CAAA,MAAA,EAAA,EACI,QAAQ,EAAE,YAAY,EACtB,SAAS,EAAE,WAAW,CAAC,IAAI,EAAA,YAAA,EACf,SAAS,YAEpB,QAAQ,EAAA,CACN;AAEf,CAAC;AAED,IAAI,CAAC,WAAW,GAAG,MAAM;AAEzB,aAAeU,UAAI,CAAC,IAAI,CAAC;;ACxBzB;;AAEG;AACI,MAAM,YAAY,GAAGd,kBAAY,CAAC,CAAC,KAAK,MAAM;IACjD,SAAS,EAAE,CAAC,EAAE,KAAK,EAAsC,MAAM;AAC3D,QAAA,QAAQ,EAAE,UAAU;AACpB,QAAA,OAAO,EAAE,OAAO;QAChB,KAAK,EAAE,KAAK,IAAI,MAAM;AACtB,QAAA,8BAA8B,EAAE;AAC5B,YAAA,WAAW,EAAE,KAAK,CAAC,MAAM,CAAC,YAAY;AACzC,SAAA;KACJ,CAAC;AACF,IAAA,SAAS,EAAE;AACP,QAAA,QAAQ,EAAE,UAAU;AACpB,QAAA,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC,EAAE;AACtB,QAAA,GAAG,EAAE,KAAK;AACV,QAAA,SAAS,EAAE,kBAAkB;AAC7B,QAAA,aAAa,EAAE,MAAM;AACxB,KAAA;AACD,IAAA,OAAO,EAAE;AACL,QAAA,QAAQ,EAAE,UAAU;AACpB,QAAA,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,EAAE;AACvB,QAAA,GAAG,EAAE,KAAK;AACV,QAAA,SAAS,EAAE,kBAAkB;AAC7B,QAAA,MAAM,EAAE,CAAC;AACZ,KAAA;AACD,IAAA,cAAc,EAAE;AACZ,QAAA,QAAQ,EAAE,UAAU;AACpB,QAAA,KAAK,EAAE,CAAA,KAAA,EAAQ,KAAK,CAAC,OAAO,CAAC,EAAE,CAAA,UAAA,CAAY;AAC3C,QAAA,GAAG,EAAE,KAAK;AACV,QAAA,SAAS,EAAE,kBAAkB;AAC7B,QAAA,MAAM,EAAE,CAAC;AACZ,KAAA;AACD,IAAA,cAAc,EAAE;AACZ,QAAA,QAAQ,EAAE,UAAU;AACpB,QAAA,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,EAAE;AACvB,QAAA,GAAG,EAAE,KAAK;AACV,QAAA,SAAS,EAAE,kBAAkB;AAC7B,QAAA,MAAM,EAAE,CAAC;AACZ,KAAA;IACD,IAAI,EAAE,CAAC,EAAE,QAAQ,GAAG,KAAK,EAAE,YAAY,GAAG,KAAK,EAAE,UAAU,GAAG,KAAK,EAAE,iBAAiB,GAAG,KAAK,EAAoB,MAAM;AACpH,QAAA,SAAS,EAAE,YAAY;AACvB,QAAA,KAAK,EAAE,MAAM;AACb,QAAA,OAAO,EAAE,CAAA,EAAG,KAAK,CAAC,OAAO,CAAC,EAAE,CAAA,CAAA,EAAI,KAAK,CAAC,OAAO,CAAC,EAAE,CAAA,CAAE;AAClD,QAAA,WAAW,EAAE,YAAY,GAAG,CAAA,KAAA,EAAQ,KAAK,CAAC,OAAO,CAAC,EAAE,CAAA,UAAA,CAAY,GAAG,KAAK,CAAC,OAAO,CAAC,EAAE;AACnF,QAAA,YAAY,EAAE,CAAA,KAAA,EAAQ,KAAK,CAAC,OAAO,CAAC,EAAE,CAAA,GAAA,EAAM,UAAU,GAAG,QAAQ,GAAG,KAAK,CAAA,GAAA,EAAM,iBAAiB,GAAG,QAAQ,GAAG,KAAK,MAAM,UAAU,IAAI,iBAAiB,GAAG,KAAK,CAAC,OAAO,CAAC,EAAE,GAAG,KAAK,CAAA,CAAA,CAAG;AACtL,QAAA,MAAM,EAAE,CAAA,UAAA,EAAa,KAAK,CAAC,MAAM,CAAC,MAAM,CAAA,CAAE;AAC1C,QAAA,YAAY,EAAE,KAAK,CAAC,MAAM,CAAC,EAAE;AAC7B,QAAA,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC,EAAE;AAC3B,QAAA,UAAU,EAAE,SAAS;AACrB,QAAA,eAAe,EAAE,KAAK,CAAC,MAAM,CAAC,OAAO;AACrC,QAAA,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,IAAI;AACxB,QAAA,UAAU,EAAE,CAAA,aAAA,EAAgB,KAAK,CAAC,UAAU,CAAC,IAAI,CAAA,CAAE;AACnD,QAAA,OAAO,EAAE,MAAM;AACf,QAAA,SAAS,EAAE,WAAW;AACtB,QAAA,SAAS,EAAE,WAAW;AACtB,QAAA,UAAU,EAAE,KAAK,CAAC,UAAU,CAAC,IAAI;AACjC,QAAA,YAAY,EAAE,UAAU;AACxB,QAAA,QAAQ,EAAE,QAAQ;AAClB,QAAA,UAAU,EAAE,QAAQ;AACpB,QAAA,QAAQ,EAAE;AACN,YAAA,WAAW,EAAE,KAAK,CAAC,MAAM,CAAC,OAAO;AACpC,SAAA;AACD,QAAA,eAAe,EAAE;AACb,YAAA,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,YAAY;AAChC,YAAA,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC,EAAE;AAC9B,SAAA;QACD,IAAI,QAAQ,IAAI;AACZ,YAAA,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,YAAY;AAChC,YAAA,MAAM,EAAE,aAAa;AACrB,YAAA,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC;SAC1B,CAAC;KACL,CAAC;AACL,CAAA,CAAC,CAAC;;AC5EH;;AAEG;AACI,MAAM,YAAY,GAAGA,kBAAY,CAAC,CAAC,KAAK,MAAM;IACjD,IAAI,EAAE,CAAC,EACH,SAAS,EACT,GAAG,EACH,KAAK,EACL,MAAM,EACN,KAAK,EACL,OAAO,EACP,IAAI,EACJ,OAAO,GACQ,MAAM;AACrB,QAAA,OAAO,EAAE,MAAM;AACf,QAAA,aAAa,EAAE,SAAS;AACxB,QAAA,GAAG,EAAE,GAAG,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,SAAS;QACzC,KAAK;QACL,MAAM;AACN,QAAA,UAAU,EAAE,KAAK;AACjB,QAAA,cAAc,EAAE,OAAO;AACvB,QAAA,QAAQ,EAAE,IAAI;AACd,QAAA,OAAO,EAAE,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,SAAS;KACxD,CAAC;AACL,CAAA,CAAC,CAAC;;ACvBH;;;;;;;;AAQG;AACH,MAAM,KAAK,GAAmB,CAAC,EAC3B,QAAQ,EACR,SAAS,GAAG,KAAK,EACjB,GAAG,GAAG,IAAI,EACV,KAAK,EACL,MAAM,EACN,KAAK,GAAG,QAAQ,EAChB,OAAO,EACP,IAAI,EACJ,OAAO,EACP,SAAS,EACT,cAAc,EACd,eAAe,EACf,IAAI,EACJ,QAAQ,GACX,KAAI;AACD,IAAA,QACII,cAAA,CAAA,KAAA,EAAA,EACI,SAAS,EAAE,YAAY,CAAC,IAAI,CAAC;YACzB,SAAS;YACT,GAAG;YACH,KAAK;YACL,MAAM;YACN,KAAK;YACL,OAAO;YACP,IAAI;YACJ,OAAO;AACV,SAAA,CAAC,gBACU,SAAS,EAAA,iBAAA,EACJ,cAAc,EAAA,kBAAA,EACb,eAAe,EACjC,IAAI,EAAE,IAAI,EACV,QAAQ,EAAE,QAAQ,YAEjB,QAAQ,EAAA,CACP;AAEd;AAEA,KAAK,CAAC,WAAW,GAAG,OAAO;;ACnDpB,MAAM,eAAe,GAAG,MAAkB;AAC7C,IAAA,QACIM,eAAA,CAAA,KAAA,EAAA,EACI,KAAK,EAAE,4BAA4B,EACnC,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,WAAW,EACpB,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,cAAc,EACtB,WAAW,EAAE,GAAG,EAChB,aAAa,EAAE,OAAO,EACtB,cAAc,EAAE,OAAO,EAAA,QAAA,EAAA,CAEvBN,2BACI,EAAE,EAAE,IAAI,EACR,EAAE,EAAE,IAAI,EACR,CAAC,EAAE,IAAI,EAAA,CACT,EACFA,yBACI,EAAE,EAAE,IAAI,EACR,EAAE,EAAE,GAAG,EACP,EAAE,EAAE,IAAI,EACR,EAAE,EAAE,IAAI,EAAA,CACV,EACFA,yBACI,EAAE,EAAE,IAAI,EACR,EAAE,EAAE,IAAI,EACR,EAAE,EAAE,OAAO,EACX,EAAE,EAAE,IAAI,EAAA,CACV,CAAA,EAAA,CACA;AAEd,CAAC;;AChCM,MAAM,iBAAiB,GAAG,MAAkB;AAC/C,IAAA,QACIM,eAAA,CAAA,KAAA,EAAA,EACI,KAAK,EAAE,4BAA4B,EACnC,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,WAAW,EACpB,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,cAAc,EACtB,WAAW,EAAE,GAAG,EAChB,aAAa,EAAE,OAAO,EACtB,cAAc,EAAE,OAAO,aAEvBN,cAAA,CAAA,MAAA,EAAA,EACI,CAAC,EAAE,0FAA0F,GAC/F,EACFA,cAAA,CAAA,MAAA,EAAA,EACI,EAAE,EAAE,IAAI,EACR,EAAE,EAAE,GAAG,EACP,EAAE,EAAE,IAAI,EACR,EAAE,EAAE,IAAI,EAAA,CACV,EACFA,cAAA,CAAA,MAAA,EAAA,EACI,EAAE,EAAE,IAAI,EACR,EAAE,EAAE,IAAI,EACR,EAAE,EAAE,OAAO,EACX,EAAE,EAAE,IAAI,EAAA,CACV,CAAA,EAAA,CACA;AAEd,CAAC;;AChCM,MAAM,YAAY,GAAG,MAAK;AAC7B,IAAA,QACIM,eAAA,CAAA,KAAA,EAAA,EACI,KAAK,EAAE,4BAA4B,EACnC,KAAK,EAAE,IAAI,EACX,MAAM,EAAE,IAAI,EACZ,OAAO,EAAE,WAAW,EACpB,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,cAAc,EACtB,WAAW,EAAE,GAAG,EAChB,aAAa,EAAE,OAAO,EACtB,cAAc,EAAE,OAAO,EAAA,QAAA,EAAA,CAEvBN,cAAA,CAAA,MAAA,EAAA,EAAM,CAAC,EAAE,QAAQ,EAAA,CAAI,EACrBA,cAAA,CAAA,MAAA,EAAA,EAAM,CAAC,EAAE,SAAS,EAAA,CAAI,EACtBA,cAAA,CAAA,MAAA,EAAA,EACI,KAAK,EAAE,IAAI,EACX,MAAM,EAAE,IAAI,EACZ,CAAC,EAAE,GAAG,EACN,CAAC,EAAE,GAAG,EACN,EAAE,EAAE,GAAG,EAAA,CACT,EACFA,yBAAM,CAAC,EAAE,UAAU,EAAA,CAAI,CAAA,EAAA,CACrB;AAEd,CAAC;;ACvBM,MAAM,eAAe,GAAG,MAAkB;IAC7C,QACIM,eAAA,CAAA,KAAA,EAAA,EACI,KAAK,EAAE,4BAA4B,EACnC,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,WAAW,EACpB,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,cAAc,EACtB,WAAW,EAAE,GAAG,EAChB,aAAa,EAAE,OAAO,EACtB,cAAc,EAAE,OAAO,EAAA,QAAA,EAAA,CAEvBN,cAAA,CAAA,QAAA,EAAA,EACI,EAAE,EAAE,IAAI,EACR,EAAE,EAAE,IAAI,EACR,CAAC,EAAE,IAAI,EAAA,CACT,EACFA,cAAA,CAAA,UAAA,EAAA,EACI,MAAM,EAAE,kBAAkB,EAAA,CAC5B,CAAA,EAAA,CACA;AAEd,CAAC;;ACzBM,MAAM,eAAe,GAAG,MAAK;IAChC,QACIA,wBACI,KAAK,EAAE,4BAA4B,EACnC,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,WAAW,EACpB,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,cAAc,EACtB,WAAW,EAAE,GAAG,EAChB,aAAa,EAAE,OAAO,EACtB,cAAc,EAAE,OAAO,EACvB,SAAS,EAAE,qDAAqD,EAAA,QAAA,EAEhEA,cAAA,CAAA,MAAA,EAAA,EAAM,CAAC,EAAE,cAAc,EAAA,CAAG,EAAA,CACxB;AAGd,CAAC;;AClBM,MAAM,eAAe,GAAG,MAAK;IAChC,QACIA,wBACI,KAAK,EAAE,4BAA4B,EACnC,KAAK,EAAE,IAAI,EACX,MAAM,EAAE,IAAI,EACZ,OAAO,EAAE,WAAW,EACpB,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,cAAc,EACtB,WAAW,EAAE,GAAG,EAChB,aAAa,EAAE,OAAO,EACtB,cAAc,EAAE,OAAO,EACvB,SAAS,EAAE,qDAAqD,EAAA,QAAA,EAEhEA,cAAA,CAAA,MAAA,EAAA,EAAM,CAAC,EAAE,gBAAgB,EAAA,CAAG,EAAA,CAC1B;AAEd,CAAC;;ACjBM,MAAM,gBAAgB,GAAG,MAAK;IACjC,QACIA,wBACI,KAAK,EAAE,4BAA4B,EACnC,KAAK,EAAE,IAAI,EACX,MAAM,EAAE,IAAI,EACZ,OAAO,EAAE,WAAW,EACpB,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,cAAc,EACtB,WAAW,EAAE,GAAG,EAChB,aAAa,EAAE,OAAO,EACtB,cAAc,EAAE,OAAO,EACvB,SAAS,EAAE,uDAAuD,EAAA,QAAA,EAElEA,cAAA,CAAA,MAAA,EAAA,EAAM,CAAC,EAAE,eAAe,EAAA,CAAG,EAAA,CACzB;AAGd,CAAC;;AChBM,MAAM,SAAS,GAAO,OACzBA,cAAA,CAAA,KAAA,EAAA,EACI,KAAK,EAAE,IAAI,EACX,MAAM,EAAE,IAAI,EACZ,OAAO,EAAE,WAAW,EACpB,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,4BAA4B,EAAA,QAAA,EAEnCA,cAAA,CAAA,MAAA,EAAA,EACI,CAAC,EAAE,oBAAoB,EACvB,MAAM,EAAE,cAAc,EACtB,WAAW,EAAE,GAAG,EAChB,aAAa,EAAE,OAAO,EACtB,cAAc,EAAE,OAAO,EAAA,CACzB,EAAA,CACA,CACT;;AClBM,MAAM,OAAO,GAAG,MAAK;AACxB,IAAA,QACIM,eAAA,CAAA,KAAA,EAAA,EACI,KAAK,EAAE,4BAA4B,EACnC,KAAK,EAAE,IAAI,EACX,MAAM,EAAE,IAAI,EACZ,OAAO,EAAE,WAAW,EACpB,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,cAAc,EACtB,WAAW,EAAE,GAAG,EAChB,aAAa,EAAE,OAAO,EACtB,cAAc,EAAE,OAAO,EACvB,SAAS,EAAE,mCAAmC,EAAA,QAAA,EAAA,CAE9CN,cAAA,CAAA,MAAA,EAAA,EACI,CAAC,EAAE,uGAAuG,EAAA,CAC5G,EACFA,cAAA,CAAA,QAAA,EAAA,EACI,EAAE,EAAE,IAAI,EACR,EAAE,EAAE,IAAI,EACR,CAAC,EAAE,GAAG,EAAA,CACR,CAAA,EAAA,CACA;AAEd,CAAC;;ACxBM,MAAM,UAAU,GAAG,MAAK;AAC3B,IAAA,QACIM,eAAA,CAAA,KAAA,EAAA,EACI,KAAK,EAAE,4BAA4B,EACnC,KAAK,EAAE,IAAI,EACX,MAAM,EAAE,IAAI,EACZ,OAAO,EAAE,WAAW,EACpB,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,cAAc,EACtB,WAAW,EAAE,GAAG,EAChB,aAAa,EAAE,OAAO,EACtB,cAAc,EAAE,OAAO,EACvB,SAAS,EAAE,2CAA2C,EAAA,QAAA,EAAA,CAEtDN,cAAA,CAAA,MAAA,EAAA,EAAM,CAAC,EAAE,gGAAgG,EAAA,CAAG,EAC5GA,yBAAM,CAAC,EAAE,sCAAsC,EAAA,CAAG,EAClDA,cAAA,CAAA,MAAA,EAAA,EAAM,CAAC,EAAE,8FAA8F,EAAA,CAAG,EAC1GA,cAAA,CAAA,MAAA,EAAA,EAAM,CAAC,EAAE,YAAY,EAAA,CAAG,CAAA,EAAA,CACtB;AAEd,CAAC;;ACpBM,MAAM,QAAQ,GAAG,MAAK;AACzB,IAAA,QACIM,eAAA,CAAA,KAAA,EAAA,EACI,KAAK,EAAE,4BAA4B,EACnC,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,WAAW,EACpB,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,cAAc,EACtB,WAAW,EAAE,GAAG,EAChB,aAAa,EAAE,OAAO,EACtB,cAAc,EAAE,OAAO,EAAA,QAAA,EAAA,CAEvBN,2BACI,EAAE,EAAE,IAAI,EACR,EAAE,EAAE,IAAI,EACR,CAAC,EAAE,IAAI,EAAA,CACT,EACFA,yBACI,EAAE,EAAE,IAAI,EACR,EAAE,EAAE,IAAI,EACR,EAAE,EAAE,IAAI,EACR,EAAE,EAAE,IAAI,EAAA,CACV,EACFA,yBACI,EAAE,EAAE,IAAI,EACR,EAAE,EAAE,GAAG,EACP,EAAE,EAAE,OAAO,EACX,EAAE,EAAE,GAAG,EAAA,CACT,CAAA,EAAA,CACA;AAEd,CAAC;;AChCM,MAAM,kBAAkB,GAAG,MAAK;AACnC,IAAA,QACIM,eAAA,CAAA,KAAA,EAAA,EACI,KAAK,EAAE,4BAA4B,EACnC,KAAK,EAAE,IAAI,EACX,MAAM,EAAE,IAAI,EACZ,OAAO,EAAE,WAAW,EACpB,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,cAAc,EACtB,WAAW,EAAE,GAAG,EAChB,aAAa,EAAE,OAAO,EACtB,cAAc,EAAE,OAAO,EACvB,SAAS,EAAE,6CAA6C,EAAA,QAAA,EAAA,CAExDN,cAAA,CAAA,QAAA,EAAA,EACI,EAAE,EAAE,IAAI,EACR,EAAE,EAAE,IAAI,EACR,CAAC,EAAE,GAAG,EAAA,CACR,EACFA,cAAA,CAAA,QAAA,EAAA,EACI,EAAE,EAAE,IAAI,EACR,EAAE,EAAE,IAAI,EACR,CAAC,EAAE,GAAG,EAAA,CACR,EACFA,cAAA,CAAA,QAAA,EAAA,EACI,EAAE,EAAE,GAAG,EACP,EAAE,EAAE,IAAI,EACR,CAAC,EAAE,GAAG,EAAA,CACR,CAAA,EAAA,CACA;AAEd,CAAC;;ACrBD;;AAEG;AACH,MAAM,KAAK,GAAGW,gBAAU,CAA+B,CAAC,EACpD,KAAK,EACL,QAAQ,EACR,KAAK,EACL,SAAS,GAAG,KAAK,EACjB,WAAW,EACX,QAAQ,GAAG,KAAK,EAChB,IAAI,GAAG,MAAM,EACb,SAAS,EACT,SAAS,EACT,OAAO,EACP,KAAK,GACR,EAAE,GAAG,KAAI;IACN,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAGC,cAAQ,CAAC,KAAK,CAAC;AAEvD,IAAA,MAAM,YAAY,GAAG,CAAC,KAAoC,KAAI;AAC1D,QAAA,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC;AAChC,IAAA,CAAC;IAED,MAAM,SAAS,GAAG,IAAI,KAAK,UAAU,IAAI,YAAY,GAAG,MAAM,GAAG,UAAU,IAAI,IAAI;AACnF,IAAA,MAAM,iBAAiB,GAAG,IAAI,KAAK,UAAU;AAE7C,IAAA,QACIN,eAAA,CAAC,KAAK,EAAA,EACF,SAAS,EAAE,QAAQ,EACnB,GAAG,EAAE,IAAI,EACT,KAAK,EAAE,SAAS,EAChB,KAAK,EAAE,KAAK,IAAI,MAAM,aAErB,KAAK,KACFA,eAAA,CAAC,KAAK,EAAA,EACF,SAAS,EAAE,KAAK,EAChB,GAAG,EAAE,IAAI,EACT,KAAK,EAAE,QAAQ,EAAA,QAAA,EAAA,CAEfN,cAAA,CAAC,IAAI,EAAA,EACD,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,IAAI,EAAA,QAAA,EAEb,KAAK,EAAA,CACH,EACN,SAAS,KACNA,cAAA,CAAC,IAAI,EAAA,EACD,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,IAAI,EACd,KAAK,EAAE,OAAO,EAAA,QAAA,EAAA,GAAA,EAAA,CAGX,CACV,CAAA,EAAA,CACG,CACX,EACDM,eAAA,CAAA,KAAA,EAAA,EACI,SAAS,EAAE,CAAA,EAAG,YAAY,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,CAAC,CAAA,CAAA,EAAI,QAAQ,GAAG,UAAU,GAAG,EAAE,CAAA,CAAE,EAAA,QAAA,EAAA,CAE/EN,0BACI,GAAG,EAAE,GAAG,EACR,IAAI,EAAE,SAAS,EACf,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,YAAY,EACtB,WAAW,EAAE,WAAW,EACxB,QAAQ,EAAE,QAAQ,EAClB,SAAS,EAAE,YAAY,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,YAAY,EAAE,CAAC,CAAC,SAAS,EAAE,UAAU,EAAE,CAAC,CAAC,OAAO,EAAE,iBAAiB,EAAE,CAAC,EAAA,YAAA,EACnG,SAAS,IAAI,KAAK,EAAA,CAChC,EACD,SAAS,KACNA,cAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAE,YAAY,CAAC,SAAS,EAAA,QAAA,EAClCA,cAAA,CAAC,IAAI,EAAA,EACD,KAAK,EAAE,cAAc,EAAA,QAAA,EAEpB,SAAS,EAAA,CACP,EAAA,CACL,CACT,EACA,OAAO,KACJA,cAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAE,iBAAiB,GAAG,YAAY,CAAC,cAAc,GAAG,YAAY,CAAC,OAAO,YAClFA,cAAA,CAAC,IAAI,EAAA,EACD,KAAK,EAAE,cAAc,EAAA,QAAA,EAEpB,OAAO,GACL,EAAA,CACL,CACT,EACA,iBAAiB,KACdA,cAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAE,YAAY,CAAC,cAAc,EAAA,QAAA,EACvCA,cAAA,CAAC,UAAU,EAAA,EACP,IAAI,EAAE,YAAY,GAAGA,cAAA,CAAC,UAAU,EAAA,EAAA,CAAG,GAAGA,cAAA,CAAC,OAAO,EAAA,EAAA,CAAG,EACjD,OAAO,EAAE,MAAM,eAAe,CAAC,CAAC,YAAY,CAAC,EAC7C,QAAQ,EAAE,QAAQ,EAClB,SAAS,EAAE,SAAS,IAAI,KAAK,EAC7B,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,OAAO,EACb,SAAS,EAAE,eAAe,EAAA,CAC5B,EAAA,CACA,CACT,CAAA,EAAA,CACC,CAAA,EAAA,CACF;AAEhB,CAAC,CAAC;AAEF,KAAK,CAAC,WAAW,GAAG,OAAO;AAE3B,oBAAeU,UAAI,CAAC,KAAK,CAAC;;AC9G1B;;AAEG;AACI,MAAM,eAAe,GAAGd,kBAAY,CAAC,CAAC,KAAK,MAAM;IACpD,SAAS,EAAE,CAAC,EAAE,KAAK,EAAsC,MAAM;AAC3D,QAAA,QAAQ,EAAE,UAAU;AACpB,QAAA,OAAO,EAAE,cAAc;QACvB,KAAK,EAAE,KAAK,IAAI,MAAM;AACtB,QAAA,iCAAiC,EAAE;AAC/B,YAAA,WAAW,EAAE,KAAK,CAAC,MAAM,CAAC,YAAY;AACzC,SAAA;KACJ,CAAC;IACF,IAAI,EAAE,CAAC,EAAE,QAAQ,GAAG,KAAK,EAAuB,MAAM;AAClD,QAAA,SAAS,EAAE,YAAY;AACvB,QAAA,KAAK,EAAE,MAAM;AACb,QAAA,OAAO,EAAE,CAAA,EAAG,KAAK,CAAC,OAAO,CAAC,EAAE,CAAA,CAAA,EAAI,KAAK,CAAC,OAAO,CAAC,EAAE,CAAA,CAAE;AAClD,QAAA,MAAM,EAAE,CAAA,UAAA,EAAa,KAAK,CAAC,MAAM,CAAC,MAAM,CAAA,CAAE;AAC1C,QAAA,YAAY,EAAE,KAAK,CAAC,MAAM,CAAC,EAAE;AAC7B,QAAA,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC,EAAE;AAC3B,QAAA,UAAU,EAAE,SAAS;AACrB,QAAA,eAAe,EAAE,KAAK,CAAC,MAAM,CAAC,OAAO;AACrC,QAAA,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,IAAI;AACxB,QAAA,UAAU,EAAE,CAAA,aAAA,EAAgB,KAAK,CAAC,UAAU,CAAC,IAAI,CAAA,CAAE;AACnD,QAAA,OAAO,EAAE,MAAM;AACf,QAAA,UAAU,EAAE,KAAK,CAAC,UAAU,CAAC,MAAM;AACnC,QAAA,MAAM,EAAE,MAAM;AACd,QAAA,QAAQ,EAAE,QAAQ;AAClB,QAAA,QAAQ,EAAE;AACN,YAAA,WAAW,EAAE,KAAK,CAAC,MAAM,CAAC,OAAO;AACpC,SAAA;AACD,QAAA,eAAe,EAAE;AACb,YAAA,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,YAAY;AAChC,YAAA,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC,EAAE;AAC3B,YAAA,YAAY,EAAE,UAAU;AACxB,YAAA,QAAQ,EAAE,QAAQ;AAClB,YAAA,UAAU,EAAE,QAAQ;AACvB,SAAA;QACD,IAAI,QAAQ,IAAI;AACZ,YAAA,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,YAAY;AAChC,YAAA,MAAM,EAAE,aAAa;AACrB,YAAA,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC;SAC1B,CAAC;KACL,CAAC;AACL,CAAA,CAAC,CAAC;;AC1CH;;AAEG;AACH,MAAM,QAAQ,GAAGe,gBAAU,CAAqC,CAAC,EAC7D,KAAK,EACL,QAAQ,EACR,KAAK,EACL,SAAS,GAAG,KAAK,EACjB,WAAW,EACX,QAAQ,GAAG,KAAK,EAChB,SAAS,EACT,KAAK,EACL,OAAO,GAAG,CAAC,EACX,OAAO,GACV,EAAE,GAAG,KAAI;AACN,IAAA,MAAM,WAAW,GAAGE,YAAM,CAAsB,IAAI,CAAC;AACrD,IAAA,MAAM,WAAW,GAAI,GAA4C,IAAI,WAAW;AAEhF,IAAA,MAAM,YAAY,GAAGJ,iBAAW,CAAC,MAAK;AAClC,QAAA,MAAM,QAAQ,GAAG,WAAW,CAAC,OAAO;QACpC,IAAI,QAAQ,EAAE;;AAEV,YAAA,QAAQ,CAAC,KAAK,CAAC,MAAM,GAAG,MAAM;;AAE9B,YAAA,MAAM,UAAU,GAAG,QAAQ,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC,UAAU,CAAC,IAAI,EAAE;AACxE,YAAA,MAAM,SAAS,GAAG,UAAU,GAAG,OAAO;AACtC,YAAA,MAAM,SAAS,GAAG,OAAO,GAAG,UAAU,GAAG,OAAO,GAAG,QAAQ;;AAE3D,YAAA,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,QAAQ,CAAC,YAAY,CAAC,EAAE,SAAS,CAAC;YACjF,QAAQ,CAAC,KAAK,CAAC,MAAM,GAAG,CAAA,EAAG,SAAS,IAAI;;AAExC,YAAA,QAAQ,CAAC,KAAK,CAAC,SAAS,GAAG,QAAQ,CAAC,YAAY,GAAG,SAAS,GAAG,MAAM,GAAG,QAAQ;QACpF;IACJ,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,WAAW,CAAC,CAAC;IAEnCK,eAAS,CAAC,MAAK;AACX,QAAA,YAAY,EAAE;AAClB,IAAA,CAAC,EAAE,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC;AAEzB,IAAA,MAAM,YAAY,GAAG,CAAC,KAAuC,KAAI;AAC7D,QAAA,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC;AAChC,IAAA,CAAC;AAED,IAAA,QACIR,eAAA,CAAC,KAAK,EAAA,EACF,SAAS,EAAE,QAAQ,EACnB,GAAG,EAAE,IAAI,EACT,KAAK,EAAE,SAAS,EAChB,KAAK,EAAE,KAAK,IAAI,MAAM,EAAA,QAAA,EAAA,CAErB,KAAK,KACFA,eAAA,CAAC,KAAK,EAAA,EACF,SAAS,EAAE,KAAK,EAChB,GAAG,EAAE,IAAI,EACT,KAAK,EAAE,QAAQ,EAAA,QAAA,EAAA,CAEfN,eAAC,IAAI,EAAA,EACD,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,IAAI,EAAA,QAAA,EAEb,KAAK,EAAA,CACH,EACN,SAAS,KACNA,cAAA,CAAC,IAAI,EAAA,EACD,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,IAAI,EACd,KAAK,EAAE,OAAO,EAAA,QAAA,EAAA,GAAA,EAAA,CAGX,CACV,CAAA,EAAA,CACG,CACX,EACDA,cAAA,CAAA,KAAA,EAAA,EACI,SAAS,EAAE,CAAA,EAAG,eAAe,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,CAAC,CAAA,CAAA,EAAI,QAAQ,GAAG,UAAU,GAAG,EAAE,CAAA,CAAE,EAAA,QAAA,EAElFA,6BACI,GAAG,EAAE,WAAW,EAChB,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,YAAY,EACtB,WAAW,EAAE,WAAW,EACxB,QAAQ,EAAE,QAAQ,EAClB,SAAS,EAAE,eAAe,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAA,YAAA,EACjC,SAAS,IAAI,KAAK,EAC9B,IAAI,EAAE,OAAO,EAAA,CACf,EAAA,CACA,CAAA,EAAA,CACF;AAEhB,CAAC,CAAC;AAEF,QAAQ,CAAC,WAAW,GAAG,UAAU;AAEjC,uBAAeU,UAAI,CAAC,QAAQ,CAAC;;AC/F7B;;AAEG;AACI,MAAM,aAAa,GAAGd,kBAAY,CAAC,CAAC,KAAK,MAAM;AAClD,IAAA,IAAI,EAAE,CAAC,EACH,QAAQ,GAAG,KAAK,EAChB,KAAK,EACW,MAAM;AACtB,QAAA,QAAQ,EAAE,UAAU;AACpB,QAAA,OAAO,EAAE,aAAa;AACtB,QAAA,UAAU,EAAE,QAAQ;AACpB,QAAA,cAAc,EAAE,eAAe;AAC/B,QAAA,SAAS,EAAE,YAAY;QACvB,KAAK,EAAE,KAAK,IAAI,MAAM;AACtB,QAAA,OAAO,EAAE,CAAA,EAAG,KAAK,CAAC,OAAO,CAAC,EAAE,CAAA,CAAA,EAAI,KAAK,CAAC,OAAO,CAAC,EAAE,CAAA,CAAE;AAClD,QAAA,MAAM,EAAE,CAAA,UAAA,EAAa,KAAK,CAAC,MAAM,CAAC,MAAM,CAAA,CAAE;AAC1C,QAAA,YAAY,EAAE,KAAK,CAAC,MAAM,CAAC,EAAE;AAC7B,QAAA,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC,EAAE;AAC3B,QAAA,UAAU,EAAE,SAAS;AACrB,QAAA,eAAe,EAAE,KAAK,CAAC,MAAM,CAAC,OAAO;AACrC,QAAA,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,IAAI;QACxB,MAAM,EAAE,QAAQ,GAAG,aAAa,GAAG,SAAS;AAC5C,QAAA,UAAU,EAAE,CAAA,aAAA,EAAgB,KAAK,CAAC,UAAU,CAAC,IAAI,CAAA,CAAE;AACnD,QAAA,OAAO,EAAE,MAAM;AACf,QAAA,SAAS,EAAE,WAAW;AACtB,QAAA,SAAS,EAAE,WAAW;AACtB,QAAA,GAAG,EAAE,KAAK,CAAC,OAAO,CAAC,EAAE;AACrB,QAAA,UAAU,EAAE,KAAK,CAAC,UAAU,CAAC,IAAI;AACjC,QAAA,YAAY,EAAE,UAAU;AACxB,QAAA,QAAQ,EAAE,QAAQ;AAClB,QAAA,UAAU,EAAE,QAAQ;QACpB,IAAI,QAAQ,IAAI;AACZ,YAAA,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,QAAQ;AAC5B,YAAA,MAAM,EAAE,aAAa;AACrB,YAAA,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC;SAC1B,CAAC;QACF,IAAI,CAAC,QAAQ,IAAI;AACb,YAAA,QAAQ,EAAE;AACN,gBAAA,WAAW,EAAE,KAAK,CAAC,MAAM,CAAC,YAAY;AACzC,aAAA;SACJ,CAAC;KACL,CAAC;AACF,IAAA,OAAO,EAAE;AACL,QAAA,OAAO,EAAE,MAAM;AACf,QAAA,UAAU,EAAE,QAAQ;AACpB,QAAA,GAAG,EAAE,KAAK,CAAC,OAAO,CAAC,EAAE;AACrB,QAAA,IAAI,EAAE;AACT,KAAA;AACD,IAAA,KAAK,EAAE;AACH,QAAA,IAAI,EAAE,CAAC;AACP,QAAA,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC,EAAE;AAC3B,QAAA,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC;AACvB,KAAA;AACD,IAAA,WAAW,EAAE;AACT,QAAA,IAAI,EAAE,CAAC;AACP,QAAA,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC,EAAE;AAC3B,QAAA,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC;AACvB;AACJ,CAAA,CAAC,CAAC;;AC1DH;;AAEG;AACI,MAAM,kBAAkB,GAAGA,kBAAY,CAAC,CAAC,KAAK,MAAM;AACvD,IAAA,IAAI,EAAE,CAAC,EACH,UAAU,GAAG,KAAK,EAClB,QAAQ,GAAG,KAAK,EACI,MAAM;AAC1B,QAAA,OAAO,EAAE,MAAM;AACf,QAAA,UAAU,EAAE,QAAQ;AACpB,QAAA,GAAG,EAAE,KAAK,CAAC,OAAO,CAAC,EAAE;AACrB,QAAA,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,EAAE;AACzB,QAAA,YAAY,EAAE,KAAK,CAAC,MAAM,CAAC,EAAE;AAC7B,QAAA,eAAe,EAAE,UAAU,GAAG,KAAK,CAAC,MAAM,CAAC,OAAO,GAAG,KAAK,CAAC,MAAM,CAAC,OAAO;AACzE,QAAA,OAAO,EAAE,MAAM;AACf,QAAA,MAAM,EAAE,MAAM;QACd,MAAM,EAAE,QAAQ,GAAG,aAAa,GAAG,SAAS;AAC5C,QAAA,SAAS,EAAE,cAAc;AACzB,QAAA,SAAS,EAAE,cAAc;AACzB,QAAA,UAAU,EAAE,CAAC;AACb,QAAA,UAAU,EAAE,oCAAoC;AAChD,QAAA,KAAK,EAAE,QAAQ,GAAG,KAAK,CAAC,MAAM,CAAC,QAAQ,IAAI,UAAU,GAAG,KAAK,CAAC,MAAM,CAAC,OAAO,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC;QACjG,OAAO,EAAE,QAAQ,GAAG,GAAG,GAAG,CAAC;AAC3B,QAAA,QAAQ,EAAE;AACN,YAAA,eAAe,EAAE,QAAQ,GAAG,KAAK,CAAC,MAAM,CAAC,OAAO,IAAI,UAAU,GAAG,KAAK,CAAC,MAAM,CAAC,OAAO,GAAG,KAAK,CAAC,MAAM,CAAC,YAAY,CAAC;AACrH,SAAA;KACJ;AACJ,CAAA,CAAC,CAAC;;AC1BH;;AAEG;AACH,MAAM,UAAU,GAAwB,CAAC,EACrC,MAAM,EACN,UAAU,GAAG,KAAK,EAClB,QAAQ,EACX,KAAI;IACD,MAAM,WAAW,GAAG,MAAK;AACrB,QAAA,IAAI,CAAC,MAAM,CAAC,QAAQ,IAAI,QAAQ,EAAE;AAC9B,YAAA,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC;QAC1B;AACJ,IAAA,CAAC;IAED,QACII,2BACI,SAAS,EAAE,kBAAkB,CAAC,IAAI,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,CAAC,EAC7E,OAAO,EAAE,WAAW,EACpB,IAAI,EAAE,QAAQ,mBACC,UAAU,EAAA,QAAA,EAEzBA,eAAC,IAAI,EAAA,EACD,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,CAAC,EAAA,QAAA,EAEV,MAAM,CAAC,KAAK,EAAA,CACV,EAAA,CACF;AAEjB,CAAC;AAED,UAAU,CAAC,WAAW,GAAG,YAAY;;AC/B9B,MAAM,WAAW,GAAGJ,kBAAY,CAAC,CAAC,KAAK,MAAM;AAChD,IAAA,IAAI,EAAE,CAAC,UAAmB,EAAE,YAA0B,EAAE,QAAwB,EAAE,KAA8B,MAAM;AAClH,QAAA,QAAQ,EAAE,OAAO;AACjB,QAAA,MAAM,EAAE,OAAO;AACf,QAAA,SAAS,EAAE,KAAK,CAAC,OAAO,CAAC,EAAE;AAC3B,QAAA,eAAe,EAAE,KAAK,CAAC,MAAM,CAAC,OAAO;AACrC,QAAA,YAAY,EAAE,KAAK,CAAC,MAAM,CAAC,EAAE;AAC7B,QAAA,MAAM,EAAE,CAAA,UAAA,EAAa,KAAK,CAAC,MAAM,CAAC,MAAM,CAAA,CAAE;AAC1C,QAAA,SAAS,EAAE,KAAK,CAAC,OAAO,CAAC,EAAE;AAC3B,QAAA,QAAQ,EAAE,GAAG;QACb,SAAS,EAAE,cAAc,GAAG,CAAC;AAC7B,QAAA,SAAS,EAAE,MAAM;QACjB,KAAK;QACL,OAAO,EAAE,UAAU,GAAG,CAAC,GAAG,CAAC;QAC3B,SAAS,EAAE,UAAU,GAAG,UAAU,GAAG,aAAa;QAClD,eAAe,EAAE,YAAY,KAAK,OAAO,GAAG,WAAW,GAAG,UAAU;AACpE,QAAA,UAAU,EAAE,CAAA,QAAA,EAAW,8BAA8B,CAAA,uBAAA,EAA0B,8BAA8B,CAAA,WAAA,CAAa;AAC1H,QAAA,GAAG,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC;AACvB,QAAA,IAAI,EAAE,QAAQ,EAAE,IAAI,IAAI,CAAC;QACzB,UAAU,EAAE,QAAQ,GAAG,SAAS,GAAG,QAAQ;KAC9C,CAAC;AACL,CAAA,CAAC,CAAC;;AChBH,MAAM,gBAAgB,GAAG,CAAC;AAE1B;;;;;;AAMG;AACI,MAAM,iBAAiB,GAAG,CAAC,EAC9B,MAAM,EACN,OAAO,EACP,YAAY,GAAG,OAAO,EACtB,SAAS,EACa,KAAoB;IAC1C,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAGgB,cAAQ,CAAiB,IAAI,CAAC;AAE9D,IAAA,MAAM,iBAAiB,GAAGH,iBAAW,CAAC,MAAK;AACvC,QAAA,IAAI,CAAC,MAAM,IAAI,CAAC,SAAS,EAAE;YACvB,WAAW,CAAC,IAAI,CAAC;YACjB;QACJ;AAEA,QAAA,MAAM,UAAU,GAAG,MAAM,CAAC,qBAAqB,EAAE;AACjD,QAAA,MAAM,WAAW,GAAG,OAAO,CAAC,OAAO;AACnC,QAAA,MAAM,SAAS,GAAG,WAAW,EAAE,WAAW,IAAI,GAAG;AACjD,QAAA,MAAM,UAAU,GAAG,WAAW,EAAE,YAAY,IAAI,GAAG;AAEnD,QAAA,MAAM,aAAa,GAAG,MAAM,CAAC,UAAU;AACvC,QAAA,MAAM,cAAc,GAAG,MAAM,CAAC,WAAW;;AAGzC,QAAA,IAAI,IAAI,GAAG,YAAY,KAAK;AACxB,cAAE,UAAU,CAAC,KAAK,GAAG;AACrB,cAAE,UAAU,CAAC,IAAI;;AAGrB,QAAA,IAAI,GAAG,GAAG,UAAU,CAAC,MAAM;;QAG3B,IAAI,IAAI,GAAG,SAAS,GAAG,aAAa,GAAG,gBAAgB,EAAE;AACrD,YAAA,IAAI,GAAG,aAAa,GAAG,SAAS,GAAG,gBAAgB;QACvD;;AAGA,QAAA,IAAI,IAAI,GAAG,gBAAgB,EAAE;YACzB,IAAI,GAAG,gBAAgB;QAC3B;;QAGA,IAAI,GAAG,GAAG,UAAU,GAAG,cAAc,GAAG,gBAAgB,EAAE;;AAEtD,YAAA,MAAM,QAAQ,GAAG,UAAU,CAAC,GAAG,GAAG,UAAU;AAC5C,YAAA,IAAI,QAAQ,IAAI,gBAAgB,EAAE;gBAC9B,GAAG,GAAG,QAAQ;YAClB;iBAAO;;AAEH,gBAAA,GAAG,GAAG,cAAc,GAAG,UAAU,GAAG,gBAAgB;YACxD;QACJ;AAEA,QAAA,WAAW,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC;IAC9B,CAAC,EAAE,CAAC,MAAM,EAAE,YAAY,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;IAE9CM,qBAAe,CAAC,MAAK;AACjB,QAAA,iBAAiB,EAAE;AACvB,IAAA,CAAC,EAAE,CAAC,iBAAiB,CAAC,CAAC;IAEvBA,qBAAe,CAAC,MAAK;QACjB,IAAI,CAAC,SAAS,EAAE;YAAC;QAAM;QAEvB,MAAM,gBAAgB,GAAG,MAAK;AAC1B,YAAA,iBAAiB,EAAE;AACvB,QAAA,CAAC;AAED,QAAA,MAAM,CAAC,gBAAgB,CAAC,QAAQ,EAAE,gBAAgB,CAAC;QACnD,MAAM,CAAC,gBAAgB,CAAC,QAAQ,EAAE,gBAAgB,EAAE,IAAI,CAAC;AAEzD,QAAA,OAAO,MAAK;AACR,YAAA,MAAM,CAAC,mBAAmB,CAAC,QAAQ,EAAE,gBAAgB,CAAC;YACtD,MAAM,CAAC,mBAAmB,CAAC,QAAQ,EAAE,gBAAgB,EAAE,IAAI,CAAC;AAChE,QAAA,CAAC;AACL,IAAA,CAAC,EAAE,CAAC,SAAS,EAAE,iBAAiB,CAAC,CAAC;AAElC,IAAA,OAAO,QAAQ;AACnB;;AC9FA;;;;;AAKG;AACI,MAAM,eAAe,GAAG,CAC3B,IAAqC,EACrC,cAA0B,EAC1B,aAAA,GAAyB,IAAI,KACvB;IACND,eAAS,CAAC,MAAK;QACX,IAAI,CAAC,aAAa,EAAE;YAChB;QACJ;AAEA,QAAA,MAAM,WAAW,GAAG,CAAC,KAAiB,KAAU;YAC5C,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,IAC1B,GAAG,CAAC,OAAO,EAAE,QAAQ,CAAC,KAAK,CAAC,MAAc,CAAC,CAC9C;YAED,IAAI,CAAC,QAAQ,EAAE;AACX,gBAAA,cAAc,EAAE;YACpB;AACJ,QAAA,CAAC;AAED,QAAA,QAAQ,CAAC,gBAAgB,CAAC,WAAW,EAAE,WAAW,CAAC;AAEnD,QAAA,OAAO,MAAW;AACd,YAAA,QAAQ,CAAC,mBAAmB,CAAC,WAAW,EAAE,WAAW,CAAC;AAC1D,QAAA,CAAC;IACL,CAAC,EAAE,CAAC,IAAI,EAAE,cAAc,EAAE,aAAa,CAAC,CAAC;AAC7C;;AC7BA;;;;AAIG;AACI,MAAM,mBAAmB,GAAG,CAC/B,MAAe,EACf,QAAQ,GAAG,8BAA8B,KACV;IAC/B,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAGF,cAAQ,CAAC,KAAK,CAAC;IACjD,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAGA,cAAQ,CAAC,KAAK,CAAC;IAEnDE,eAAS,CAAC,MAAK;QACX,IAAI,MAAM,EAAE;YACR,YAAY,CAAC,IAAI,CAAC;AAClB,YAAA,MAAM,OAAO,GAAG,UAAU,CAAC,MAAK;gBAC5B,aAAa,CAAC,IAAI,CAAC;YACvB,CAAC,EAAE,EAAE,CAAC;AACN,YAAA,OAAO,MAAW;gBACd,YAAY,CAAC,OAAO,CAAC;AACzB,YAAA,CAAC;QACL;aAAO;YACH,aAAa,CAAC,KAAK,CAAC;AACpB,YAAA,MAAM,OAAO,GAAG,UAAU,CAAC,MAAK;gBAC5B,YAAY,CAAC,KAAK,CAAC;YACvB,CAAC,EAAE,QAAQ,CAAC;AACZ,YAAA,OAAO,MAAW;gBACd,YAAY,CAAC,OAAO,CAAC;AACzB,YAAA,CAAC;QACL;AACJ,IAAA,CAAC,EAAE,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAEtB,OAAO;QACH,SAAS;QACT;KACH;AACL;;AChCA,MAAM,IAAI,GAAkB,CAAC,EACzB,MAAM,EACN,OAAO,EACP,QAAQ,EACR,YAAY,GAAG,OAAO,EACtB,KAAK,EACR,KAAI;;AAED,IAAA,MAAM,OAAO,GAAGD,YAAM,CAAiB,IAAI,CAAC;AAC5C,IAAA,MAAM,SAAS,GAAGA,YAAM,CAAqB,IAAI,CAAC;;AAGlD,IAAA,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;AAC9B,IAAA,MAAM,IAAI,GAAGR,aAAO,CAAC,MAAM,CAAC,OAAO,EAAE,SAAS,CAAC,EAAE,EAAE,CAAC;;IAGpD,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,GAAG,mBAAmB,CAAC,MAAM,CAAC;AAC7D,IAAA,MAAM,QAAQ,GAAG,iBAAiB,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,CAAC;;IAGhFS,eAAS,CAAC,MAAK;QACX,IAAI,MAAM,EAAE;AACR,YAAA,SAAS,CAAC,OAAO,GAAG,MAAM;QAC9B;AACJ,IAAA,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC;IAEZA,eAAS,CAAC,MAAK;QACX,IAAI,CAAC,SAAS,EAAE;AACZ,YAAA,SAAS,CAAC,OAAO,GAAG,IAAI;QAC5B;AACJ,IAAA,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC;AAEf,IAAA,eAAe,CAAC,IAAI,EAAE,OAAO,EAAE,SAAS,CAAC;IAEzC,IAAI,CAAC,SAAS,EAAE;AACZ,QAAA,OAAO,IAAI;IACf;AAEA,IAAA,OAAOE,qBAAY,CACfhB,cAAA,CAAA,KAAA,EAAA,EACI,GAAG,EAAE,OAAO,EACZ,SAAS,EAAE,WAAW,CAAC,IAAI,CAAC,UAAU,EAAE,YAAY,EAAE,QAAQ,EAAE,KAAK,CAAC,EAAA,QAAA,EAErE,QAAQ,EAAA,CACP,EACN,QAAQ,CAAC,IAAI,CAChB;AACL;AAEA,IAAI,CAAC,WAAW,GAAG,MAAM;;ACxDlB,MAAM,iBAAiB,GAAGJ,kBAAY,CAAC,CAAC,KAAK,MAAM;AACtD,IAAA,IAAI,EAAE;AACF,QAAA,OAAO,EAAE,MAAM;AACf,QAAA,aAAa,EAAE,QAAQ;AACvB,QAAA,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,EAAE;AAC5B,KAAA;AACJ,CAAA,CAAC,CAAC;;ACHH,MAAM,SAAS,GAAuB,CAAC,EACnC,QAAQ,EACX,KAAI;IACD,QACII,cAAA,CAAA,KAAA,EAAA,EACI,SAAS,EAAE,iBAAiB,CAAC,IAAI,EAAA,QAAA,EAEhC,QAAQ,EAAA,CACP;AAEd;AAEA,SAAS,CAAC,WAAW,GAAG,WAAW;;ACb5B,MAAM,gBAAgB,GAAGJ,kBAAY,CAAC,CAAC,KAAK,MAAM;AACrD,IAAA,IAAI,EAAE;AACF,QAAA,OAAO,EAAE,MAAM;AACf,QAAA,UAAU,EAAE,QAAQ;AACpB,QAAA,GAAG,EAAE,KAAK,CAAC,OAAO,CAAC,EAAE;AACrB,QAAA,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,EAAE;AACzB,QAAA,YAAY,EAAE,KAAK,CAAC,MAAM,CAAC,EAAE;AAC7B,QAAA,eAAe,EAAE,KAAK,CAAC,MAAM,CAAC,OAAO;AACrC,QAAA,OAAO,EAAE,MAAM;AACf,QAAA,MAAM,EAAE,MAAM;AACd,QAAA,MAAM,EAAE,SAAS;AACjB,QAAA,SAAS,EAAE,cAAc;AACzB,QAAA,SAAS,EAAE,cAAc;AACzB,QAAA,UAAU,EAAE,CAAC;AACb,QAAA,UAAU,EAAE,oCAAoC;AAChD,QAAA,QAAQ,EAAE;AACN,YAAA,eAAe,EAAE,KAAK,CAAC,MAAM,CAAC,YAAY;AAC7C,SAAA;AACJ,KAAA;AACJ,CAAA,CAAC,CAAC;;AChBH,MAAM,QAAQ,GAAsB,CAAC,EACjC,KAAK,EACL,IAAI,EACJ,OAAO,EACP,SAAS,EACT,SAAS,EACZ,KAAI;IACD,QACIU,eAAA,CAAA,QAAA,EAAA,EACI,SAAS,EAAE,gBAAgB,CAAC,IAAI,EAChC,OAAO,EAAE,OAAO,EAAA,QAAA,EAAA,CAEf,IAAI,KACDN,cAAA,CAAC,IAAI,EAAA,EACD,KAAK,EAAE,SAAS,IAAI,MAAM,EAC1B,IAAI,EAAE,IAAI,EAAA,QAAA,EAET,IAAI,EAAA,CACF,CACV,EACDA,cAAA,CAAC,IAAI,EAAA,EACD,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,SAAS,IAAI,MAAM,EAC1B,QAAQ,EAAE,CAAC,EACX,QAAQ,EAAE,IAAI,EAAA,QAAA,EAEb,KAAK,EAAA,CACH,CAAA,EAAA,CACF;AAEjB;AAEA,QAAQ,CAAC,WAAW,GAAG,UAAU;;AC3BjC;;AAEG;AACH,MAAM,MAAM,GAAoB,CAAC,EAC7B,OAAO,EACP,KAAK,EACL,QAAQ,EACR,KAAK,EACL,SAAS,GAAG,KAAK,EACjB,WAAW,GAAG,kBAAkB,EAChC,QAAQ,GAAG,KAAK,EAChB,KAAK,EACR,KAAI;IACD,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAGY,cAAQ,CAAC,KAAK,CAAC;AAC3C,IAAA,MAAM,UAAU,GAAGC,YAAM,CAAiB,IAAI,CAAC;AAE/C,IAAA,MAAM,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,KAAK,KAAK,KAAK,CAAC;IACrE,MAAM,SAAS,GAAG,UAAU,CAAC,OAAO,EAAE,WAAW,IAAI,KAAK;IAE1D,MAAM,kBAAkB,GAAG,MAAK;QAC5B,IAAI,CAAC,QAAQ,EAAE;AACX,YAAA,SAAS,CAAC,CAAC,MAAM,CAAC;QACtB;AACJ,IAAA,CAAC;IAED,MAAM,WAAW,GAAG,MAAK;QACrB,SAAS,CAAC,KAAK,CAAC;AACpB,IAAA,CAAC;AAED,IAAA,MAAM,YAAY,GAAG,CAAC,aAA8B,KAAI;QACpD,QAAQ,CAAC,aAAa,CAAC;QACvB,SAAS,CAAC,KAAK,CAAC;AACpB,IAAA,CAAC;IAED,QACIP,eAAA,CAAC,KAAK,EAAA,EACF,SAAS,EAAE,QAAQ,EACnB,GAAG,EAAE,IAAI,EACT,KAAK,EAAE,SAAS,EAChB,KAAK,EAAE,KAAK,IAAI,MAAM,EAAA,QAAA,EAAA,CAErB,KAAK,KACFA,eAAA,CAAC,KAAK,EAAA,EACF,SAAS,EAAE,KAAK,EAChB,GAAG,EAAE,IAAI,EACT,KAAK,EAAE,QAAQ,EAAA,QAAA,EAAA,CAEfN,cAAA,CAAC,IAAI,EAAA,EACD,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,IAAI,EAAA,QAAA,EAEb,KAAK,EAAA,CACH,EACN,SAAS,KACNA,cAAA,CAAC,IAAI,EAAA,EACD,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,IAAI,EACd,KAAK,EAAE,OAAO,EAAA,QAAA,EAAA,GAAA,EAAA,CAGX,CACV,IACG,CACX,EACDM,eAAA,CAAA,KAAA,EAAA,EACI,GAAG,EAAE,UAAU,EACf,SAAS,EAAE,aAAa,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,EAClD,OAAO,EAAE,kBAAkB,EAC3B,IAAI,EAAE,QAAQ,EACd,QAAQ,EAAE,QAAQ,GAAG,EAAE,GAAG,CAAC,EAAA,eAAA,EACZ,MAAM,EAAA,eAAA,EACN,SAAS,EAAA,QAAA,EAAA,CAExBN,wBACI,SAAS,EAAE,aAAa,CAAC,OAAO,EAAA,QAAA,EAEhCA,cAAA,CAAC,IAAI,EAAA,EACD,OAAO,EAAE,GAAG,EACZ,QAAQ,EAAE,CAAC,EACX,KAAK,EAAE,cAAc,GAAG,MAAM,GAAG,eAAe,EAAA,QAAA,EAE/C,cAAc,GAAG,cAAc,CAAC,KAAK,GAAG,WAAW,EAAA,CACjD,EAAA,CACL,EACNA,cAAA,CAAC,IAAI,EAAA,EAAA,QAAA,EACDA,cAAA,CAAC,eAAe,EAAA,EAAA,CAAG,EAAA,CAChB,CAAA,EAAA,CACL,EACNA,cAAA,CAAC,IAAI,EAAA,EACD,MAAM,EAAE,MAAM,GAAG,UAAU,CAAC,OAAO,GAAG,IAAI,EAC1C,OAAO,EAAE,WAAW,EACpB,KAAK,EAAE,SAAS,EAAA,QAAA,EAEhBA,cAAA,CAAC,SAAS,EAAA,EAAA,QAAA,EACL,OAAO,CAAC,GAAG,CAAC,MAAM,KACfA,eAAC,UAAU,EAAA,EAEP,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,MAAM,CAAC,KAAK,KAAK,KAAK,EAClC,QAAQ,EAAE,YAAY,EAAA,EAHjB,MAAM,CAAC,KAAK,CAInB,CACL,CAAC,EAAA,CACM,EAAA,CACT,CAAA,EAAA,CACH;AAEhB;AAEA,MAAM,CAAC,WAAW,GAAG,QAAQ;;ACtHtB,MAAM,oBAAoB,GAAGJ,kBAAY,CAAC,CAAC,KAAK,MAAM;AACzD,IAAA,QAAQ,EAAE;AACN,QAAA,OAAO,EAAE,MAAM;AACf,QAAA,mBAAmB,EAAE,gBAAgB;AACrC,QAAA,GAAG,EAAE,KAAK;AACb,KAAA;AACD,IAAA,UAAU,EAAE;AACR,QAAA,OAAO,EAAE,MAAM;AACf,QAAA,mBAAmB,EAAE,gBAAgB;AACrC,QAAA,GAAG,EAAE,KAAK,CAAC,OAAO,CAAC,EAAE;AACrB,QAAA,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,EAAE;AAC5B,KAAA;AACD,IAAA,SAAS,EAAE;AACP,QAAA,OAAO,EAAE,MAAM;AACf,QAAA,mBAAmB,EAAE,gBAAgB;AACrC,QAAA,GAAG,EAAE,KAAK,CAAC,OAAO,CAAC,EAAE;AACrB,QAAA,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,EAAE;AAC5B,KAAA;AACD,IAAA,SAAS,EAAE;AACP,QAAA,SAAS,EAAE,QAAQ;AACnB,QAAA,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC,EAAE;AAC3B,QAAA,UAAU,EAAE,KAAK,CAAC,UAAU,CAAC,MAAM;AACnC,QAAA,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,aAAa;AACjC,QAAA,OAAO,EAAE,KAAK;AACjB,KAAA;AACD,IAAA,GAAG,EAAE,CAAC,EAAE,cAAc,EAAE,UAAU,EAAE,OAAO,EAAE,UAAU,EAKtD,MAAM;AACH,QAAA,KAAK,EAAE,QAAQ;AACf,QAAA,MAAM,EAAE,QAAQ;AAChB,QAAA,MAAM,EAAE,MAAM;AACd,QAAA,YAAY,EAAE,KAAK,CAAC,MAAM,CAAC,EAAE;AAC7B,QAAA,eAAe,EAAE,aAAa;AAC9B,QAAA,KAAK,EAAE,cAAc,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,GAAG,KAAK,CAAC,MAAM,CAAC,YAAY;AACrE,QAAA,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC,EAAE;QAC3B,MAAM,EAAE,UAAU,GAAG,aAAa,GAAG,SAAS;AAC9C,QAAA,OAAO,EAAE,MAAM;AACf,QAAA,UAAU,EAAE,QAAQ;AACpB,QAAA,cAAc,EAAE,QAAQ;AACxB,QAAA,UAAU,EAAE,CAAA,iBAAA,EAAoB,KAAK,CAAC,UAAU,CAAC,IAAI,CAAA,CAAE;QACvD,IAAI,UAAU,IAAI;AACd,YAAA,eAAe,EAAE,KAAK,CAAC,MAAM,CAAC,OAAO;AACrC,YAAA,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,SAAS;SAChC,CAAC;AACF,QAAA,IAAI,OAAO,IAAI,CAAC,UAAU,IAAI;AAC1B,YAAA,eAAe,EAAE,KAAK,CAAC,MAAM,CAAC,aAAa;AAC3C,YAAA,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,OAAO;SAC9B,CAAC;QACF,IAAI,UAAU,IAAI;AACd,YAAA,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,YAAY;AAChC,YAAA,MAAM,EAAE,aAAa;SACxB,CAAC;QACF,QAAQ,EAAE,CAAC,UAAU,IAAI,CAAC,UAAU,GAAG;AACnC,YAAA,eAAe,EAAE,KAAK,CAAC,MAAM,CAAC,YAAY;AAC1C,YAAA,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,SAAS;SAChC,GAAG,EAAE;KACT,CAAC;AACF,IAAA,aAAa,EAAE,CAAC,UAAmB,MAAM;AACrC,QAAA,OAAO,EAAE,CAAA,EAAG,KAAK,CAAC,OAAO,CAAC,EAAE,CAAA,CAAA,EAAI,KAAK,CAAC,OAAO,CAAC,EAAE,CAAA,CAAE;AAClD,QAAA,MAAM,EAAE,MAAM;AACd,QAAA,YAAY,EAAE,KAAK,CAAC,MAAM,CAAC,EAAE;AAC7B,QAAA,eAAe,EAAE,UAAU,GAAG,KAAK,CAAC,MAAM,CAAC,OAAO,GAAG,aAAa;AAClE,QAAA,KAAK,EAAE,UAAU,GAAG,KAAK,CAAC,MAAM,CAAC,SAAS,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI;AAC9D,QAAA,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC,EAAE;AAC3B,QAAA,MAAM,EAAE,SAAS;AACjB,QAAA,UAAU,EAAE,CAAA,iBAAA,EAAoB,KAAK,CAAC,UAAU,CAAC,IAAI,CAAA,CAAE;AACvD,QAAA,QAAQ,EAAE,CAAC,UAAU,GAAG;AACpB,YAAA,eAAe,EAAE,KAAK,CAAC,MAAM,CAAC,aAAa;SAC9C,GAAG,EAAE;KACT,CAAC;AACL,CAAA,CAAC,CAAC;;ACtEH,MAAM,MAAM,GAAG;IACX,SAAS,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM;IACpD,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,SAAS,EAAE,UAAU,EAAE;CAC1D;AAED,MAAM,SAAS,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;AAErD,MAAM,YAAY,GAA0B,CAAC,EACzC,IAAI,EACJ,IAAI,GAAG,EAAE,EACT,YAAY,EACZ,cAAc,GAAG,IAAI,EACrB,WAAW,EACX,aAAa,EACb,YAAY,GACf,KAAI;AACD,IAAA,IAAI,IAAI,KAAK,MAAM,EAAE;QACjB,QACIU,yBAAK,SAAS,EAAE,oBAAoB,CAAC,QAAQ,EAAA,QAAA,EAAA,CACxC,SAAS,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,KAAK,MACtBN,cAAA,CAAA,KAAA,EAAA,EAEI,SAAS,EAAE,oBAAoB,CAAC,SAAS,EAAA,QAAA,EAExC,GAAG,EAAA,EAHC,CAAA,EAAG,GAAG,CAAA,CAAA,EAAI,KAAK,CAAA,CAAE,CAIpB,CACT,CAAC,EACD,IAAI,CAAC,GAAG,CAAC,GAAG,KACTA,cAAA,CAAA,QAAA,EAAA,EAEI,SAAS,EAAE,oBAAoB,CAAC,GAAG,CAAC,GAAG,CAAC,EACxC,OAAO,EAAE,MAAM,CAAC,GAAG,CAAC,UAAU,IAAI,WAAW,GAAG,GAAG,CAAC,IAAI,CAAC,EACzD,QAAQ,EAAE,GAAG,CAAC,UAAU,EACxB,IAAI,EAAE,QAAQ,YAEb,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,IANd,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,CAOlB,CACZ,CAAC,CAAA,EAAA,CACA;IAEd;AAEA,IAAA,IAAI,IAAI,KAAK,QAAQ,EAAE;AACnB,QAAA,QACIA,cAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAE,oBAAoB,CAAC,UAAU,EAAA,QAAA,EAC1C,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,KAAK,MACrBA,cAAA,CAAA,QAAA,EAAA,EAEI,IAAI,EAAE,QAAQ,EACd,SAAS,EAAE,oBAAoB,CAAC,aAAa,CAAC,YAAY,EAAE,QAAQ,EAAE,KAAK,KAAK,CAAC,EACjF,OAAO,EAAE,MAAM,aAAa,GAAG,KAAK,CAAC,EAAA,QAAA,EAEpC,KAAK,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,EAAA,EALjB,KAAK,CAML,CACZ,CAAC,EAAA,CACA;IAEd;AAEA,IAAA,IAAI,IAAI,KAAK,OAAO,EAAE;AAClB,QAAA,QACIA,cAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAE,oBAAoB,CAAC,SAAS,EAAA,QAAA,EACzC,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,cAAc,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,KAC9DA,cAAA,CAAA,QAAA,EAAA,EAEI,IAAI,EAAE,QAAQ,EACd,SAAS,EAAE,oBAAoB,CAAC,aAAa,CAAC,YAAY,EAAE,WAAW,EAAE,KAAK,IAAI,CAAC,EACnF,OAAO,EAAE,MAAM,YAAY,GAAG,IAAI,CAAC,EAAA,QAAA,EAElC,IAAI,EAAA,EALA,IAAI,CAMJ,CACZ,CAAC,EAAA,CACA;IAEd;AAEA,IAAA,OAAO,IAAI;AACf,CAAC;AAED,YAAY,CAAC,WAAW,GAAG,cAAc;AAEzC,qBAAeU,UAAI,CAAC,YAAY,CAAC;;ACpF1B,MAAM,sBAAsB,GAAGd,kBAAY,CAAC,CAAC,KAAK,MAAM;AAC3D,IAAA,IAAI,EAAE;AACF,QAAA,OAAO,EAAE,MAAM;AACf,QAAA,cAAc,EAAE,eAAe;AAC/B,QAAA,UAAU,EAAE,QAAQ;AACpB,QAAA,YAAY,EAAE,KAAK,CAAC,OAAO,CAAC,EAAE;AACjC,KAAA;AACD,IAAA,WAAW,EAAE;AACT,QAAA,UAAU,EAAE,MAAM;AAClB,QAAA,MAAM,EAAE,MAAM;AACd,QAAA,MAAM,EAAE,SAAS;AACjB,QAAA,OAAO,EAAE,CAAA,EAAG,KAAK,CAAC,OAAO,CAAC,EAAE,CAAA,CAAA,EAAI,KAAK,CAAC,OAAO,CAAC,EAAE,CAAA,CAAE;AAClD,QAAA,YAAY,EAAE,KAAK,CAAC,MAAM,CAAC,EAAE;AAC7B,QAAA,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,IAAI;AACxB,QAAA,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC,EAAE;AAC3B,QAAA,UAAU,EAAE,KAAK,CAAC,UAAU,CAAC,MAAM;AACnC,QAAA,UAAU,EAAE,CAAA,iBAAA,EAAoB,KAAK,CAAC,UAAU,CAAC,IAAI,CAAA,CAAE;AACvD,QAAA,QAAQ,EAAE;AACN,YAAA,eAAe,EAAE,KAAK,CAAC,MAAM,CAAC,aAAa;AAC9C,SAAA;AACJ,KAAA;AACD,IAAA,SAAS,EAAE;AACP,QAAA,OAAO,EAAE,CAAA,EAAG,KAAK,CAAC,OAAO,CAAC,EAAE,CAAA,CAAA,EAAI,KAAK,CAAC,OAAO,CAAC,EAAE,CAAA,CAAE;AAClD,QAAA,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,IAAI;AACxB,QAAA,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC,EAAE;AAC3B,QAAA,UAAU,EAAE,KAAK,CAAC,UAAU,CAAC,MAAM;AACtC,KAAA;AACD,IAAA,SAAS,EAAE;AACP,QAAA,SAAS,EAAE,gBAAgB;AAC9B,KAAA;AACJ,CAAA,CAAC,CAAC;;ACxBH,MAAM,cAAc,GAA4B,CAAC,EAC7C,KAAK,EACL,MAAM,EACN,MAAM,EACN,YAAY,EACZ,gBAAgB,GAAG,IAAI,GAC1B,KAAI;IACD,QACIU,yBAAK,SAAS,EAAE,sBAAsB,CAAC,IAAI,aACvCN,cAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAE,sBAAsB,CAAC,SAAS,EAAA,QAAA,EAC5CA,cAAA,CAAC,UAAU,EAAA,EACP,IAAI,EAAEA,cAAA,CAAC,gBAAgB,EAAA,EAAA,CAAG,EAC1B,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,OAAO,EAAA,CACf,GACA,EACL,gBAAgB,IACbA,cAAA,CAAA,QAAA,EAAA,EACI,IAAI,EAAE,QAAQ,EACd,SAAS,EAAE,sBAAsB,CAAC,WAAW,EAC7C,OAAO,EAAE,YAAY,EAAA,QAAA,EAEpB,KAAK,EAAA,CACD,KAETA,eAAC,IAAI,EAAA,EAAC,OAAO,EAAE,GAAG,EAAA,QAAA,EACb,KAAK,EAAA,CACH,CACV,EACDA,cAAA,CAAC,UAAU,IACP,IAAI,EAAEA,eAAC,gBAAgB,EAAA,EAAA,CAAG,EAC1B,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,OAAO,EAAA,CACf,CAAA,EAAA,CACA;AAEd,CAAC;AAED,cAAc,CAAC,WAAW,GAAG,gBAAgB;AAE7C,uBAAeU,UAAI,CAAC,cAAc,CAAC;;AChD5B,MAAM,eAAe,GAAGd,kBAAY,CAAC,CAAC,KAAK,MAAM;AACpD,IAAA,IAAI,EAAE;AACF,QAAA,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,EAAE;AAC5B,KAAA;AACJ,CAAA,CAAC,CAAC;;ACJI,MAAM,UAAU,GAAG,CAAC,IAAiB,EAAE,MAAA,GAAqB,YAAY,KAAY;IACvF,IAAI,CAAC,IAAI,EAAE;AAAC,QAAA,OAAO,EAAE;IAAA;AAErB,IAAA,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC;AACnD,IAAA,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC;AAC1D,IAAA,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,EAAE;IAE/B,QAAQ,MAAM;AACV,QAAA,KAAK,YAAY;AACb,YAAA,OAAO,GAAG,GAAG,CAAA,CAAA,EAAI,KAAK,CAAA,CAAA,EAAI,IAAI,EAAE;AACpC,QAAA,KAAK,YAAY;AACb,YAAA,OAAO,GAAG,KAAK,CAAA,CAAA,EAAI,GAAG,CAAA,CAAA,EAAI,IAAI,EAAE;AACpC,QAAA,KAAK,YAAY;AACb,YAAA,OAAO,GAAG,IAAI,CAAA,CAAA,EAAI,KAAK,CAAA,CAAA,EAAI,GAAG,EAAE;AACpC,QAAA;AACI,YAAA,OAAO,GAAG,GAAG,CAAA,CAAA,EAAI,KAAK,CAAA,CAAA,EAAI,IAAI,EAAE;;AAE5C,CAAC;AAEM,MAAM,SAAS,GAAG,CAAC,KAAa,EAAE,MAAA,GAAqB,YAAY,KAAiB;IACvF,IAAI,CAAC,KAAK,EAAE;AACR,QAAA,OAAO,IAAI;IACf;IAEA,MAAM,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC;AAC9C,IAAA,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE;AACzB,QAAA,OAAO,IAAI;IACf;AAEA,IAAA,IAAI,GAAW,EAAE,KAAa,EAAE,IAAY;IAE5C,QAAQ,MAAM;AACV,QAAA,KAAK,YAAY;AACb,YAAA,GAAG,GAAG,QAAQ,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC;AAC9C,YAAA,KAAK,GAAG,QAAQ,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC;AACpD,YAAA,IAAI,GAAG,QAAQ,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC;YAC/C;AACJ,QAAA,KAAK,YAAY;AACb,YAAA,KAAK,GAAG,QAAQ,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC;AACpD,YAAA,GAAG,GAAG,QAAQ,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC;AAC9C,YAAA,IAAI,GAAG,QAAQ,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC;YAC/C;AACJ,QAAA,KAAK,YAAY;AACb,YAAA,IAAI,GAAG,QAAQ,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC;AAC/C,YAAA,KAAK,GAAG,QAAQ,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC;AACpD,YAAA,GAAG,GAAG,QAAQ,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC;YAC9C;AACJ,QAAA;AACI,YAAA,OAAO,IAAI;;;IAInB,IAAI,KAAK,GAAG,CAAC,IAAI,KAAK,GAAG,EAAE,IAAI,GAAG,GAAG,CAAC,IAAI,GAAG,GAAG,EAAE,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,IAAI,EAAE;AAC9E,QAAA,OAAO,IAAI;IACf;IAEA,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,CAAC;;IAEvC,IAAI,IAAI,CAAC,OAAO,EAAE,KAAK,GAAG,IAAI,IAAI,CAAC,QAAQ,EAAE,KAAK,KAAK,IAAI,IAAI,CAAC,WAAW,EAAE,KAAK,IAAI,EAAE;AACpF,QAAA,OAAO,IAAI;IACf;AAEA,IAAA,OAAO,IAAI;AACf,CAAC;AAEM,MAAM,gBAAgB,GAAG,CAAC,MAAkB,KAAY;IAC3D,QAAQ,MAAM;AACV,QAAA,KAAK,YAAY;AACjB,QAAA,KAAK,YAAY;AACb,YAAA,OAAO,GAAG;AACd,QAAA,KAAK,YAAY;AACb,YAAA,OAAO,GAAG;AACd,QAAA;AACI,YAAA,OAAO,GAAG;;AAEtB,CAAC;AAEM,MAAM,gBAAgB,GAAG,CAAC,KAAa,EAAE,MAAkB,KAAY;IAC1E,MAAM,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC;AAC9C,IAAA,MAAM,SAAS,GAAG,gBAAgB,CAAC,MAAM,CAAC;AAE1C,IAAA,IAAI,MAAM,KAAK,YAAY,EAAE;AACzB,QAAA,IAAI,UAAU,CAAC,MAAM,IAAI,CAAC,EAAE;AACxB,YAAA,OAAO,UAAU;QACrB;AACA,QAAA,IAAI,UAAU,CAAC,MAAM,IAAI,CAAC,EAAE;AACxB,YAAA,OAAO,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,SAAS,CAAA,EAAG,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE;QACxE;AACA,QAAA,OAAO,CAAA,EAAG,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA,EAAG,SAAS,CAAA,EAAG,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA,EAAG,SAAS,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE;IAChH;SAAO;AACH,QAAA,IAAI,UAAU,CAAC,MAAM,IAAI,CAAC,EAAE;AACxB,YAAA,OAAO,UAAU;QACrB;AACA,QAAA,IAAI,UAAU,CAAC,MAAM,IAAI,CAAC,EAAE;AACxB,YAAA,OAAO,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,SAAS,CAAA,EAAG,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE;QACxE;AACA,QAAA,OAAO,CAAA,EAAG,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA,EAAG,SAAS,CAAA,EAAG,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA,EAAG,SAAS,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE;IAChH;AACJ,CAAC;AAUM,MAAM,eAAe,GAAG,CAC3B,IAAY,EACZ,KAAa,EACb,YAA0B,EAC1B,OAAc,EACd,OAAc,KACC;IACf,MAAM,QAAQ,GAAG,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;AACzC,IAAA,MAAM,SAAS,GAAG,IAAI,IAAI,CAAC,QAAQ,CAAC;AACpC,IAAA,SAAS,CAAC,OAAO,CAAC,SAAS,CAAC,OAAO,EAAE,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC;IAE1D,MAAM,IAAI,GAAkB,EAAE;AAC9B,IAAA,MAAM,OAAO,GAAG,IAAI,IAAI,CAAC,SAAS,CAAC;AACnC,IAAA,MAAM,KAAK,GAAG,IAAI,IAAI,EAAE;IACxB,KAAK,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AAE1B,IAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE;AACzB,QAAA,MAAM,WAAW,GAAG,IAAI,IAAI,CAAC,OAAO,CAAC;QACrC,WAAW,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;QAEhC,MAAM,cAAc,GAAG,OAAO,CAAC,QAAQ,EAAE,KAAK,KAAK;AACnD,QAAA,MAAM,UAAU,GAAG,YAAY,GAAG,OAAO,CAAC,YAAY,EAAE,KAAK,YAAY,CAAC,YAAY,EAAE,GAAG,KAAK;QAChG,MAAM,OAAO,GAAG,OAAO,CAAC,YAAY,EAAE,KAAK,KAAK,CAAC,YAAY,EAAE;QAE/D,IAAI,UAAU,GAAG,KAAK;QACtB,IAAI,OAAO,EAAE;AACT,YAAA,MAAM,GAAG,GAAG,IAAI,IAAI,CAAC,OAAO,CAAC;YAC7B,GAAG,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AACxB,YAAA,IAAI,WAAW,GAAG,GAAG,EAAE;gBAAC,UAAU,GAAG,IAAI;YAAA;QAC7C;AACA,QAAA,IAAI,OAAO,IAAI,CAAC,UAAU,EAAE;AACxB,YAAA,MAAM,GAAG,GAAG,IAAI,IAAI,CAAC,OAAO,CAAC;YAC7B,GAAG,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AACxB,YAAA,IAAI,WAAW,GAAG,GAAG,EAAE;gBAAC,UAAU,GAAG,IAAI;YAAA;QAC7C;QAEA,IAAI,CAAC,IAAI,CAAC;AACN,YAAA,IAAI,EAAE,IAAI,IAAI,CAAC,OAAO,CAAC;YACvB,cAAc;YACd,UAAU;YACV,OAAO;YACP,UAAU;AACb,SAAA,CAAC;QACF,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;IAC1C;AAEA,IAAA,OAAO,IAAI;AACf,CAAC;;ACrJD,MAAM,QAAQ,GAAsB,CAAC,EACjC,KAAK,EACL,YAAY,EACZ,OAAO,EACP,OAAO,EACP,MAAM,GAAG,OAAO,GACnB,KAAI;AACD,IAAA,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAGgB,cAAQ,CAAC,MAC7C,KAAK,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC,GAAG,IAAI,IAAI,EAAE,CACvE;IACD,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAGA,cAAQ,CAAe,MAAM,CAAC;IACtD,MAAM,CAAC,cAAc,EAAE,iBAAiB,CAAC,GAAGA,cAAQ,CAAC,MAAK;AACtD,QAAA,MAAM,IAAI,GAAG,KAAK,EAAE,WAAW,EAAE,IAAI,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QAC7D,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,EAAE,CAAC,GAAG,EAAE;AACrC,IAAA,CAAC,CAAC;AAEF,IAAA,MAAM,YAAY,GAAGP,aAAO,CAAC,MACzB,eAAe,CACX,YAAY,CAAC,WAAW,EAAE,EAC1B,YAAY,CAAC,QAAQ,EAAE,EACvB,KAAK,EACL,OAAO,IAAI,SAAS,EACpB,OAAO,IAAI,SAAS,CACvB,EACL,CAAC,YAAY,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;AAExC,IAAA,MAAM,WAAW,GAAGA,aAAO,CAAC,MAAK;AAC7B,QAAA,IAAI,IAAI,KAAK,MAAM,EAAE;AACjB,YAAA,OAAO,YAAY,CAAC,kBAAkB,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;QACtF;AACA,QAAA,IAAI,IAAI,KAAK,QAAQ,EAAE;AACnB,YAAA,OAAO,MAAM,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC;QAC7C;AACA,QAAA,OAAO,GAAG,cAAc,CAAA,GAAA,EAAM,cAAc,GAAG,EAAE,EAAE;IACvD,CAAC,EAAE,CAAC,IAAI,EAAE,YAAY,EAAE,MAAM,EAAE,cAAc,CAAC,CAAC;AAEhD,IAAA,MAAM,UAAU,GAAGI,iBAAW,CAAC,MAAK;AAChC,QAAA,IAAI,IAAI,KAAK,OAAO,EAAE;YAClB,iBAAiB,CAAC,IAAI,IAAI,IAAI,GAAG,EAAE,CAAC;QACxC;AAAO,aAAA,IAAI,IAAI,KAAK,QAAQ,EAAE;YAC1B,eAAe,CAAC,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,GAAG,CAAC,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC9E;aAAO;YACH,eAAe,CAAC,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC;QAC9E;AACJ,IAAA,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;AAEV,IAAA,MAAM,UAAU,GAAGA,iBAAW,CAAC,MAAK;AAChC,QAAA,IAAI,IAAI,KAAK,OAAO,EAAE;YAClB,iBAAiB,CAAC,IAAI,IAAI,IAAI,GAAG,EAAE,CAAC;QACxC;AAAO,aAAA,IAAI,IAAI,KAAK,QAAQ,EAAE;YAC1B,eAAe,CAAC,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,GAAG,CAAC,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC9E;aAAO;YACH,eAAe,CAAC,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC;QAC9E;AACJ,IAAA,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;AAEV,IAAA,MAAM,gBAAgB,GAAGA,iBAAW,CAAC,MAAK;AACtC,QAAA,IAAI,IAAI,KAAK,MAAM,EAAE;YACjB,OAAO,CAAC,QAAQ,CAAC;QACrB;AAAO,aAAA,IAAI,IAAI,KAAK,QAAQ,EAAE;YAC1B,OAAO,CAAC,OAAO,CAAC;AAChB,YAAA,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,WAAW,EAAE,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC;QACvE;AACJ,IAAA,CAAC,EAAE,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;AAExB,IAAA,MAAM,eAAe,GAAGA,iBAAW,CAAC,CAAC,IAAU,KAAI;QAC/C,YAAY,CAAC,IAAI,CAAC;AACtB,IAAA,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC;AAElB,IAAA,MAAM,iBAAiB,GAAGA,iBAAW,CAAC,CAAC,UAAkB,KAAI;AACzD,QAAA,eAAe,CAAC,IAAI,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,EAAE,UAAU,CAAC,CAAC;QACjE,OAAO,CAAC,MAAM,CAAC;AACnB,IAAA,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC;AAElB,IAAA,MAAM,gBAAgB,GAAGA,iBAAW,CAAC,CAAC,IAAY,KAAI;AAClD,QAAA,eAAe,CAAC,IAAI,IAAI,CAAC,IAAI,EAAE,YAAY,CAAC,QAAQ,EAAE,CAAC,CAAC;QACxD,OAAO,CAAC,QAAQ,CAAC;AACrB,IAAA,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC;AAElB,IAAA,QACIH,eAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAE,eAAe,CAAC,IAAI,EAAA,QAAA,EAAA,CAChCN,cAAA,CAACiB,gBAAc,EAAA,EACX,IAAI,EAAE,IAAI,EACV,KAAK,EAAE,WAAW,EAClB,MAAM,EAAE,UAAU,EAClB,MAAM,EAAE,UAAU,EAClB,YAAY,EAAE,gBAAgB,EAC9B,gBAAgB,EAAE,IAAI,KAAK,OAAO,EAAA,CACpC,EACFjB,cAAA,CAACkB,cAAY,EAAA,EACT,IAAI,EAAE,IAAI,EACV,IAAI,EAAE,YAAY,EAClB,YAAY,EAAE,YAAY,EAC1B,cAAc,EAAE,cAAc,EAC9B,WAAW,EAAE,eAAe,EAC5B,aAAa,EAAE,iBAAiB,EAChC,YAAY,EAAE,gBAAgB,EAC9B,MAAM,EAAE,MAAM,EAAA,CAChB,CAAA,EAAA,CACA;AAEd,CAAC;AAED,QAAQ,CAAC,WAAW,GAAG,UAAU;AAEjC,iBAAeR,UAAI,CAAC,QAAQ,CAAC;;AC5G7B;;AAEG;AACI,MAAM,kBAAkB,GAAGd,kBAAY,CAAC,CAAC,KAAK,MAAM;IACvD,SAAS,EAAE,CAAC,EAAE,KAAK,EAAyB,MAAM;AAC9C,QAAA,QAAQ,EAAE,UAAU;AACpB,QAAA,OAAO,EAAE,MAAM;AACf,QAAA,UAAU,EAAE,QAAQ;QACpB,KAAK,EAAE,KAAK,IAAI,MAAM;KACzB,CAAC;AACF,IAAA,KAAK,EAAE;AACH,QAAA,SAAS,EAAE,YAAY;AACvB,QAAA,KAAK,EAAE,MAAM;AACb,QAAA,OAAO,EAAE,CAAA,EAAG,KAAK,CAAC,OAAO,CAAC,EAAE,CAAA,CAAA,EAAI,KAAK,CAAC,OAAO,CAAC,EAAE,CAAA,CAAE;AAClD,QAAA,YAAY,EAAE,CAAA,KAAA,EAAQ,KAAK,CAAC,OAAO,CAAC,EAAE,CAAA,UAAA,CAAY;AAClD,QAAA,MAAM,EAAE,CAAA,UAAA,EAAa,KAAK,CAAC,MAAM,CAAC,MAAM,CAAA,CAAE;AAC1C,QAAA,YAAY,EAAE,KAAK,CAAC,MAAM,CAAC,EAAE;AAC7B,QAAA,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC,EAAE;AAC3B,QAAA,UAAU,EAAE,SAAS;AACrB,QAAA,eAAe,EAAE,KAAK,CAAC,MAAM,CAAC,OAAO;AACrC,QAAA,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,IAAI;AACxB,QAAA,UAAU,EAAE,CAAA,aAAA,EAAgB,KAAK,CAAC,UAAU,CAAC,IAAI,CAAA,CAAE;AACnD,QAAA,OAAO,EAAE,MAAM;AACf,QAAA,SAAS,EAAE,WAAW;AACtB,QAAA,SAAS,EAAE,WAAW;AACtB,QAAA,UAAU,EAAE,KAAK,CAAC,UAAU,CAAC,IAAI;AACjC,QAAA,uBAAuB,EAAE;AACrB,YAAA,WAAW,EAAE,KAAK,CAAC,MAAM,CAAC,YAAY;AACzC,SAAA;AACD,QAAA,QAAQ,EAAE;AACN,YAAA,WAAW,EAAE,KAAK,CAAC,MAAM,CAAC,OAAO;AACpC,SAAA;AACD,QAAA,eAAe,EAAE;AACb,YAAA,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,YAAY;AACnC,SAAA;AACD,QAAA,WAAW,EAAE;AACT,YAAA,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,YAAY;AAChC,YAAA,MAAM,EAAE,aAAa;AACrB,YAAA,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,IAAI;AAC9B,SAAA;AACJ,KAAA;AACD,IAAA,cAAc,EAAE;AACZ,QAAA,QAAQ,EAAE,UAAU;AACpB,QAAA,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,EAAE;AACvB,QAAA,GAAG,EAAE,KAAK;AACV,QAAA,SAAS,EAAE,kBAAkB;AAC7B,QAAA,MAAM,EAAE,CAAC;AACZ,KAAA;AACJ,CAAA,CAAC,CAAC;;ACzCH;;AAEG;AACH,MAAM,UAAU,GAAwB,CAAC,EACrC,KAAK,EACL,QAAQ,EACR,KAAK,EACL,SAAS,GAAG,KAAK,EACjB,WAAW,EACX,QAAQ,GAAG,KAAK,EAChB,KAAK,EACL,OAAO,EACP,OAAO,EACP,UAAU,GAAG,YAAY,EACzB,MAAM,GAAG,OAAO,GACnB,KAAI;IACD,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAGgB,cAAQ,CAAC,KAAK,CAAC;IAC3C,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAGA,cAAQ,CAAC,MAAM,UAAU,CAAC,KAAK,IAAI,IAAI,EAAE,UAAU,CAAC,CAAC;IACzF,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAGA,cAAQ,CAAC,KAAK,CAAC;AACvD,IAAA,MAAM,QAAQ,GAAGC,YAAM,CAAmB,IAAI,CAAC;AAC/C,IAAA,MAAM,YAAY,GAAGA,YAAM,CAAiB,IAAI,CAAC;;IAGjDC,eAAS,CAAC,MAAK;QACX,IAAI,CAAC,YAAY,EAAE;YACf,aAAa,CAAC,UAAU,CAAC,KAAK,IAAI,IAAI,EAAE,UAAU,CAAC,CAAC;QACxD;IACJ,CAAC,EAAE,CAAC,KAAK,EAAE,UAAU,EAAE,YAAY,CAAC,CAAC;AAErC,IAAA,MAAM,WAAW,GAAGL,iBAAW,CAAC,MAAK;QACjC,SAAS,CAAC,KAAK,CAAC;IACpB,CAAC,EAAE,EAAE,CAAC;AAEN,IAAA,MAAM,gBAAgB,GAAGA,iBAAW,CAAC,CAAC,IAAU,KAAI;QAChD,QAAQ,CAAC,IAAI,CAAC;QACd,aAAa,CAAC,UAAU,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;QAC3C,SAAS,CAAC,KAAK,CAAC;AACpB,IAAA,CAAC,EAAE,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;AAE1B,IAAA,MAAM,iBAAiB,GAAGA,iBAAW,CAAC,CAAC,CAAgC,KAAI;AACvE,QAAA,MAAM,QAAQ,GAAG,CAAC,CAAC,MAAM,CAAC,KAAK;QAC/B,MAAM,SAAS,GAAG,gBAAgB,CAAC,QAAQ,EAAE,UAAU,CAAC;QACxD,aAAa,CAAC,SAAS,CAAC;QACxB,eAAe,CAAC,IAAI,CAAC;;QAGrB,MAAM,UAAU,GAAG,SAAS,CAAC,SAAS,EAAE,UAAU,CAAC;QACnD,IAAI,UAAU,EAAE;;YAEZ,IAAI,OAAO,GAAG,IAAI;AAClB,YAAA,IAAI,OAAO,IAAI,UAAU,GAAG,OAAO,EAAE;gBACjC,OAAO,GAAG,KAAK;YACnB;AACA,YAAA,IAAI,OAAO,IAAI,UAAU,GAAG,OAAO,EAAE;gBACjC,OAAO,GAAG,KAAK;YACnB;YAEA,IAAI,OAAO,EAAE;gBACT,QAAQ,CAAC,UAAU,CAAC;YACxB;QACJ;AAAO,aAAA,IAAI,QAAQ,KAAK,EAAE,EAAE;YACxB,QAAQ,CAAC,IAAI,CAAC;QAClB;IACJ,CAAC,EAAE,CAAC,UAAU,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;AAE5C,IAAA,MAAM,eAAe,GAAGA,iBAAW,CAAC,MAAK;QACrC,eAAe,CAAC,KAAK,CAAC;;AAGtB,QAAA,IAAI,UAAU,KAAK,EAAE,EAAE;YACnB;QACJ;;QAGA,MAAM,UAAU,GAAG,SAAS,CAAC,UAAU,EAAE,UAAU,CAAC;QACpD,IAAI,CAAC,UAAU,EAAE;YACb,aAAa,CAAC,UAAU,CAAC,KAAK,IAAI,IAAI,EAAE,UAAU,CAAC,CAAC;QACxD;IACJ,CAAC,EAAE,CAAC,UAAU,EAAE,UAAU,EAAE,KAAK,CAAC,CAAC;AAEnC,IAAA,MAAM,yBAAyB,GAAGA,iBAAW,CAAC,CAAC,CAAmB,KAAI;QAClE,CAAC,CAAC,eAAe,EAAE;QACnB,IAAI,CAAC,QAAQ,EAAE;YACX,SAAS,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC;QAC5B;AACJ,IAAA,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC;IAEd,QACIH,eAAA,CAAC,KAAK,EAAA,EACF,SAAS,EAAE,QAAQ,EACnB,GAAG,EAAE,IAAI,EACT,KAAK,EAAE,SAAS,EAChB,KAAK,EAAE,KAAK,IAAI,MAAM,EAAA,QAAA,EAAA,CAErB,KAAK,KACFA,eAAA,CAAC,KAAK,EAAA,EACF,SAAS,EAAE,KAAK,EAChB,GAAG,EAAE,IAAI,EACT,KAAK,EAAE,QAAQ,EAAA,QAAA,EAAA,CAEfN,eAAC,IAAI,EAAA,EACD,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,IAAI,EAAA,QAAA,EAEb,KAAK,EAAA,CACH,EACN,SAAS,KACNA,cAAA,CAAC,IAAI,EAAA,EACD,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,IAAI,EACd,KAAK,EAAE,OAAO,EAAA,QAAA,EAAA,GAAA,EAAA,CAGX,CACV,CAAA,EAAA,CACG,CACX,EACDM,eAAA,CAAA,KAAA,EAAA,EACI,GAAG,EAAE,YAAY,EACjB,SAAS,EAAE,kBAAkB,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,CAAC,EAAA,QAAA,EAAA,CAElDN,cAAA,CAAA,OAAA,EAAA,EACI,GAAG,EAAE,QAAQ,EACb,KAAK,EAAE,UAAU,EACjB,QAAQ,EAAE,iBAAiB,EAC3B,MAAM,EAAE,eAAe,EACvB,WAAW,EAAE,WAAW,IAAI,UAAU,CAAC,WAAW,EAAE,EACpD,SAAS,EAAE,kBAAkB,CAAC,KAAK,EACnC,QAAQ,EAAE,QAAQ,EAAA,CACpB,EACFA,cAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAE,kBAAkB,CAAC,cAAc,EAAA,QAAA,EAC7CA,cAAA,CAAC,UAAU,EAAA,EACP,IAAI,EAAEA,cAAA,CAAC,YAAY,EAAA,EAAA,CAAG,EACtB,OAAO,EAAE,yBAAyB,EAClC,QAAQ,EAAE,QAAQ,EAClB,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,OAAO,EACb,SAAS,EAAE,eAAe,EAAA,CAC5B,EAAA,CACA,CAAA,EAAA,CACJ,EACNA,eAAC,IAAI,EAAA,EACD,MAAM,EAAE,MAAM,GAAG,YAAY,CAAC,OAAO,GAAG,IAAI,EAC5C,OAAO,EAAE,WAAW,EACpB,KAAK,EAAE,GAAG,EACV,YAAY,EAAE,MAAM,YAEpBA,cAAA,CAACmB,UAAQ,EAAA,EACL,KAAK,EAAE,KAAK,EACZ,YAAY,EAAE,gBAAgB,EAC9B,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,OAAO,EAChB,MAAM,EAAE,MAAM,EAAA,CAChB,EAAA,CACC,CAAA,EAAA,CACH;AAEhB,CAAC;AAED,UAAU,CAAC,WAAW,GAAG,YAAY;AAErC,yBAAeT,UAAI,CAAC,UAAU,CAAC;;ACzK/B;;AAEG;AACI,MAAM,WAAW,GAAGd,kBAAY,CAAC,CAAC,KAAK,MAAM;AAChD,IAAA,IAAI,EAAE,CAAC,EACH,SAAS,EACT,OAAO,EACP,KAAK,EACL,MAAM,EACN,GAAG,EACH,MAAM,EACN,MAAM,EACN,KAAK,EACL,OAAO,EACP,eAAe,EACf,WAAW,EACG,MAAM;AACpB,QAAA,OAAO,EAAE,MAAM;AACf,QAAA,aAAa,EAAE,SAAS;AACxB,QAAA,OAAO,EAAE,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,SAAS;QACrD,KAAK;QACL,MAAM;AACN,QAAA,GAAG,EAAE,GAAG,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,SAAS;AACzC,QAAA,YAAY,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC;AAClC,QAAA,SAAS,EAAE,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;AAChC,QAAA,eAAe,EAAE,KAAK,CAAC,MAAM,CAAC,eAAe,CAAC;AAC9C,QAAA,MAAM,EAAE,WAAW,GAAG,aAAa,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC,CAAA,CAAE,GAAG,MAAM;AACvE,QAAA,UAAU,EAAE,KAAK;AACjB,QAAA,cAAc,EAAE,OAAO;AACvB,QAAA,SAAS,EAAE,YAAY;KAC1B,CAAC;AACL,CAAA,CAAC,CAAC;;AC9BH;;;;;;;;;AASG;AACH,MAAM,IAAI,GAAkB,CAAC,EACzB,QAAQ,EACR,SAAS,GAAG,QAAQ,EACpB,OAAO,GAAG,IAAI,EACd,KAAK,EACL,MAAM,EACN,GAAG,EACH,MAAM,GAAG,IAAI,EACb,MAAM,GAAG,MAAM,EACf,KAAK,EACL,OAAO,EACP,eAAe,GAAG,SAAS,EAC3B,WAAW,GAAG,QAAQ,EACtB,SAAS,EACT,cAAc,EACd,eAAe,EACf,IAAI,EACJ,QAAQ,GACX,KAAI;AACD,IAAA,QACII,cAAA,CAAA,KAAA,EAAA,EACI,SAAS,EAAE,WAAW,CAAC,IAAI,CAAC;YACxB,SAAS;YACT,OAAO;YACP,KAAK;YACL,MAAM;YACN,GAAG;YACH,MAAM;YACN,MAAM;YACN,KAAK;YACL,OAAO;YACP,eAAe;YACf;AACH,SAAA,CAAC,gBACU,SAAS,EAAA,iBAAA,EACJ,cAAc,EAAA,kBAAA,EACb,eAAe,EACjC,IAAI,EAAE,IAAI,EACV,QAAQ,EAAE,QAAQ,YAEjB,QAAQ,EAAA,CACP;AAEd;AAEA,IAAI,CAAC,WAAW,GAAG,MAAM;;ACxDzB;;;;;;;;;AASG;AACH,MAAM,sBAAsB,GAAG,CAC3B,OAAgB,EAChB,aAA+B,EAC/B,SAAkB,KACE;AACpB,IAAA,MAAM,aAAa,GAAG,OAAO,aAAa,KAAK,QAAQ,GAAG,CAAA,EAAG,aAAa,CAAA,EAAA,CAAI,GAAG,aAAa;AAE9F,IAAA,IAAI,aAAa,IAAI,OAAO,EAAE;;;;;AAK1B,QAAA,MAAM,QAAQ,GAAG,SAAS,IAAI,KAAK;QACnC,MAAM,cAAc,GAAG,CAAA,cAAA,EAAiB,OAAO,WAAW,QAAQ,CAAA,IAAA,EAAO,OAAO,CAAA,CAAA,CAAG;AACnF,QAAA,OAAO,CAAA,6BAAA,EAAgC,aAAa,CAAA,EAAA,EAAK,cAAc,UAAU;IACrF;IACA,IAAI,aAAa,EAAE;;QAEf,OAAO,CAAA,yBAAA,EAA4B,aAAa,CAAA,OAAA,CAAS;IAC7D;IACA,IAAI,OAAO,EAAE;;QAET,OAAO,CAAA,OAAA,EAAU,OAAO,CAAA,MAAA,CAAQ;IACpC;AACA,IAAA,OAAO,SAAS;AACpB,CAAC;AAED;;AAEG;AACH,MAAM,mBAAmB,GAAG,CAAC,IAAa,KAAwB;IAC9D,IAAI,IAAI,EAAE;QACN,OAAO,CAAA,OAAA,EAAU,IAAI,CAAA,OAAA,CAAS;IAClC;AACA,IAAA,OAAO,SAAS;AACpB,CAAC;AAED;;AAEG;AACI,MAAM,WAAW,GAAGJ,kBAAY,CAAC,CAAC,KAAK,MAAM;AAChD,IAAA,IAAI,EAAE,CAAC,EACH,OAAO,EACP,IAAI,EACJ,SAAS,EACT,MAAM,EACN,KAAK,EACL,MAAM,EACN,SAAS,EACT,UAAU,EACV,YAAY,EACZ,YAAY,EACZ,cAAc,EACd,OAAO,EACP,aAAa,GACC,KAAI;AAClB,QAAA,MAAM,cAAc,GAAG,SAAS,GAAG,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,SAAS;AACvE,QAAA,MAAM,WAAW,GAAG,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,SAAS;QAE9D,OAAO;AACH,YAAA,OAAO,EAAE,MAAM;YACf,mBAAmB,EAAE,sBAAsB,CAAC,OAAO,EAAE,aAAa,EAAE,cAAc,CAAC;AACnF,YAAA,gBAAgB,EAAE,mBAAmB,CAAC,IAAI,CAAC;AAC3C,YAAA,SAAS,EAAE,cAAc;AACzB,YAAA,MAAM,EAAE,WAAW;YACnB,KAAK;YACL,MAAM;YACN,SAAS;YACT,UAAU;YACV,YAAY;YACZ,YAAY;YACZ,cAAc;AACd,YAAA,OAAO,EAAE,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG;SACtC;IACd,CAAC;AACJ,CAAA,CAAC,CAAC;;ACpFH;;;;;;;;;;AAUG;AACH,MAAM,IAAI,GAAkB,CAAC,EACzB,QAAQ,EACR,OAAO,GAAG,CAAC,EACX,IAAI,EACJ,SAAS,GAAG,IAAI,EAChB,MAAM,GAAG,IAAI,EACb,KAAK,EACL,MAAM,EACN,SAAS,EACT,UAAU,EACV,YAAY,EACZ,YAAY,EACZ,cAAc,EACd,OAAO,EACP,aAAa,EACb,SAAS,EACT,cAAc,EACd,eAAe,EACf,IAAI,EACJ,QAAQ,GACX,KAAI;AACD,IAAA,QACII,cAAA,CAAA,KAAA,EAAA,EACI,SAAS,EAAE,WAAW,CAAC,IAAI,CAAC;YACxB,OAAO;YACP,IAAI;YACJ,SAAS;YACT,MAAM;YACN,KAAK;YACL,MAAM;YACN,SAAS;YACT,UAAU;YACV,YAAY;YACZ,YAAY;YACZ,cAAc;YACd,OAAO;YACP,aAAa;AAChB,SAAA,CAAC,gBACU,SAAS,EAAA,iBAAA,EACJ,cAAc,EAAA,kBAAA,EACb,eAAe,EACjC,IAAI,EAAE,IAAI,EACV,QAAQ,EAAE,QAAQ,YAEjB,QAAQ,EAAA,CACP;AAEd;AAEA,IAAI,CAAC,WAAW,GAAG,MAAM;;AC7DzB;;AAEG;AACI,MAAM,gBAAgB,GAAGJ,kBAAY,CAAC,CAAC,KAAK,MAAM;AACrD,IAAA,IAAI,EAAE,CAAC,EACH,SAAS,GAAG,YAAY,EACxB,KAAK,GAAG,QAAQ,EAChB,KAAK,EACL,MAAM,EACa,MAAM;AACzB,QAAA,eAAe,EAAE,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC;AACpC,QAAA,IAAI,SAAS,KAAK,YAAY,GAAG;AAC7B,YAAA,KAAK,EAAE,MAAM;AACb,YAAA,MAAM,EAAE,KAAK;AAChB,SAAA,GAAG;AACA,YAAA,KAAK,EAAE,KAAK;AACZ,YAAA,MAAM,EAAE,MAAM;SACjB,CAAC;QACF,IAAI,KAAK,KAAK,SAAS,IAAI,EAAE,KAAK,EAAE,CAAC;QACrC,IAAI,MAAM,KAAK,SAAS,IAAI,EAAE,MAAM,EAAE,CAAC;KAC1C,CAAC;AACL,CAAA,CAAC,CAAC;;ACpBH;;;;AAIG;AACH,MAAM,SAAS,GAAuB,CAAC,EACnC,SAAS,GAAG,YAAY,EACxB,KAAK,EACL,MAAM,EACN,KAAK,GAAG,QAAQ,GACnB,KAAI;IACD,QACII,wBACI,SAAS,EAAE,gBAAgB,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,EAAA,CACvE;AAEV;AAEA,SAAS,CAAC,WAAW,GAAG,WAAW;;ACnB5B,MAAM,mBAAmB,GAAGJ,kBAAY,CAAC,CAAC,KAAK,MAAM;IACxD,IAAI,EAAE,CAAC,EACH,GAAG,EACH,iBAAiB,EACjB,eAAe,EACf,UAAU,GAAG,QAAQ,EACrB,QAAQ,EACR,SAAS,EACY,MAAM;AAC3B,QAAA,OAAO,EAAE,MAAM;AACf,QAAA,aAAa,EAAE,QAAQ;AACvB,QAAA,GAAG,EAAE,GAAG,IAAI,KAAK,CAAC,OAAO,CAAC,EAAE;AAC5B,QAAA,OAAO,EAAE,CAAA,EAAG,eAAe,GAAG,KAAK,CAAC,OAAO,CAAC,eAAe,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA,CAAA,EAAI,iBAAiB,GAAG,KAAK,CAAC,OAAO,CAAC,iBAAiB,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,EAAE,CAAA,CAAE;QAChK,UAAU;QACV,QAAQ;QACR,SAAS;AACT,QAAA,KAAK,EAAE,MAAM;AACb,QAAA,MAAM,EAAE;KACX;AACJ,CAAA,CAAC,CAAC;;AClBH;;;;;AAKG;AACH,MAAM,WAAW,GAAyB,CAAC,EACvC,QAAQ,EACR,GAAG,EACH,iBAAiB,EACjB,eAAe,EACf,UAAU,EACV,QAAQ,EACR,SAAS,EACT,SAAS,EACT,cAAc,EACd,eAAe,EACf,IAAI,EACJ,QAAQ,GACX,KAAI;AACD,IAAA,QACII,cAAA,CAAA,SAAA,EAAA,EACI,SAAS,EAAE,mBAAmB,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,iBAAiB,EAAE,eAAe,EAAE,UAAU,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,gBACrG,SAAS,EAAA,iBAAA,EACJ,cAAc,EAAA,kBAAA,EACb,eAAe,EACjC,IAAI,EAAE,IAAI,EACV,QAAQ,EAAE,QAAQ,YAEjB,QAAQ,EAAA,CACH;AAElB;AAEA,WAAW,CAAC,WAAW,GAAG,aAAa;;ACnChC,MAAM,WAAW,GAAGJ,kBAAY,CAAC,OAAO;IAC3C,IAAI,EAAE,CAAC,EACH,eAAe,EACf,OAAO,EACO,MAAM;AACpB,QAAA,KAAK,EAAE,MAAM;AACb,QAAA,MAAM,EAAE,MAAM;AACd,QAAA,OAAO,EAAE,MAAM;AACf,QAAA,aAAa,EAAE,QAAQ;AACvB,QAAA,UAAU,EAAE,QAAQ;QACpB,eAAe;QACf,OAAO;KACV,CAAC;IACF,QAAQ,EAAE,CAAC,EACP,QAAQ,GAAG,MAAM,EACH,MAAM;QACpB,QAAQ;AACR,QAAA,MAAM,EAAE,MAAM;AACd,QAAA,UAAU,EAAE,MAAM;AAClB,QAAA,WAAW,EAAE,MAAM;AACnB,QAAA,KAAK,EAAE,MAAM;AACb,QAAA,IAAI,EAAE,CAAC;KACV;AACJ,CAAA,CAAC,CAAC;;ACtBH;;;;;AAKG;AACH,MAAM,IAAI,GAAkB,CAAC,EACzB,QAAQ,EACR,MAAM,EACN,QAAQ,EACR,eAAe,EACf,OAAO,EACP,SAAS,EACT,SAAS,EACT,cAAc,EACd,eAAe,EACf,IAAI,EACJ,QAAQ,GACX,KAAI;IACD,QACIU,eAAA,CAAA,KAAA,EAAA,EACI,SAAS,EAAE,CAAA,EAAG,WAAW,CAAC,IAAI,CAAC,EAAE,eAAe,EAAE,OAAO,EAAE,CAAC,CAAA,CAAA,EAAI,SAAS,IAAI,EAAE,CAAA,CAAE,EAAA,YAAA,EACrE,SAAS,EAAA,iBAAA,EACJ,cAAc,EAAA,kBAAA,EACb,eAAe,EACjC,IAAI,EAAE,IAAI,EACV,QAAQ,EAAE,QAAQ,EAAA,QAAA,EAAA,CAElBN,cAAA,CAAA,KAAA,EAAA,EACI,SAAS,EAAE,WAAW,CAAC,QAAQ,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAA,QAAA,EAE5C,QAAQ,EAAA,CACP,EACL,MAAM,KACHA,cAAA,CAAA,KAAA,EAAA,EAAA,QAAA,EACK,MAAM,EAAA,CACL,CACT,CAAA,EAAA,CACC;AAEd;AAEA,IAAI,CAAC,WAAW,GAAG,MAAM;;ACtClB,MAAM,gBAAgB,GAAGJ,kBAAY,CAAC,CAAC,KAAK,KAAI;IACnD,OAAO;QACH,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAwB,MAAM;YAClD,KAAK,EAAE,KAAK,IAAI,MAAM;AACtB,YAAA,QAAQ,EAAE,QAAQ;YAClB,OAAO,EAAE,QAAQ,GAAG,GAAG,GAAG,CAAC;AAC3B,YAAA,YAAY,EAAE,KAAK,CAAC,MAAM,CAAC,EAAE;SAChC,CAAC;AACF,QAAA,MAAM,EAAE,CAAC,EAAE,QAAQ,EAAE,eAAe,EAAE,aAAa,EAA8B,MAAM;AACnF,YAAA,OAAO,EAAE,MAAM;AACf,YAAA,UAAU,EAAE,QAAQ;AACpB,YAAA,KAAK,EAAE,MAAM;AACb,YAAA,OAAO,EAAE,aAAa,IAAI,CAAA,EAAG,KAAK,CAAC,OAAO,CAAC,EAAE,IAAI,KAAK,CAAC,OAAO,CAAC,EAAE,CAAA,CAAE;AACnE,YAAA,MAAM,EAAE,MAAM;AACd,YAAA,eAAe,EAAE,eAAe,GAAG,KAAK,CAAC,MAAM,CAAC,eAAe,CAAC,GAAE,aAAa;YAC/E,MAAM,EAAE,QAAQ,GAAG,aAAa,GAAG,SAAS;AAC5C,YAAA,UAAU,EAAE,CAAA,iBAAA,EAAoB,KAAK,CAAC,UAAU,CAAC,IAAI,CAAA,CAAE;AACvD,YAAA,GAAG,EAAE,KAAK,CAAC,OAAO,CAAC,EAAE;AACrB,YAAA,YAAY,EAAE,KAAK,CAAC,MAAM,CAAC,EAAE;AAC7B,YAAA,QAAQ,EAAE;AACN,gBAAA,eAAe,EAAE,QAAQ,GAAG,aAAa,GAAG,KAAK,CAAC,MAAM,CAAC,YAAY;AACxE,aAAA;SACJ,CAAC;QACF,UAAU,EAAE,CAAC,EAAE,QAAQ,EAA4B,MAAM;AACrD,YAAA,UAAU,EAAE,CAAA,UAAA,EAAa,KAAK,CAAC,UAAU,CAAC,IAAI,CAAA,CAAE;YAChD,SAAS,EAAE,QAAQ,GAAG,gBAAgB,GAAG,cAAc;SAC1D,CAAC;QACF,OAAO,EAAE,CAAC,EAAE,QAAQ,EAAE,cAAc,EAA+B,MAAM;YACrE,OAAO,EAAE,QAAQ,GAAG,OAAO,GAAG,MAAM;AACpC,YAAA,OAAO,EAAE,cAAc,IAAI,CAAA,EAAA,EAAK,KAAK,CAAC,OAAO,CAAC,EAAE,IAAI,KAAK,CAAC,OAAO,CAAC,EAAE,CAAA,CAAE;SACzE,CAAC;KACL;AACL,CAAC,CAAC;;AChCF;;;;;AAKG;AACH,MAAM,SAAS,GAAuB,CAAC,EACnC,KAAK,EACL,QAAQ,EACR,QAAQ,EACR,eAAe,GAAG,KAAK,EACvB,QAAQ,EACR,QAAQ,GAAG,KAAK,EAChB,IAAI,EACJ,eAAe,EACf,KAAK,EACL,aAAa,EACb,cAAc,EACd,SAAS,EACT,cAAc,EACd,eAAe,EACf,IAAI,EACJ,QAAQ,GACX,KAAI;IACD,MAAM,CAAC,gBAAgB,EAAE,mBAAmB,CAAC,GAAGgB,cAAQ,CAAC,eAAe,CAAC;;AAGzE,IAAA,MAAM,UAAU,GAAG,QAAQ,KAAK,SAAS,GAAG,QAAQ,GAAG,gBAAgB;IAEvE,MAAM,YAAY,GAAG,MAAK;QACtB,IAAI,QAAQ,EAAE;YAAC;QAAM;AAErB,QAAA,MAAM,WAAW,GAAG,CAAC,UAAU;AAE/B,QAAA,IAAI,QAAQ,KAAK,SAAS,EAAE;YACxB,mBAAmB,CAAC,WAAW,CAAC;QACpC;AAEA,QAAA,QAAQ,GAAG,WAAW,CAAC;AAC3B,IAAA,CAAC;AAED,IAAA,QACIN,eAAA,CAAA,KAAA,EAAA,EACI,SAAS,EAAE,gBAAgB,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,EAAA,YAAA,EACzC,SAAS,EAAA,iBAAA,EACJ,cAAc,sBACb,eAAe,EACjC,IAAI,EAAE,IAAI,EACV,QAAQ,EAAE,QAAQ,EAAA,QAAA,EAAA,CAElBA,eAAA,CAAA,QAAA,EAAA,EACI,IAAI,EAAE,QAAQ,EACd,SAAS,EAAE,gBAAgB,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,eAAe,EAAE,aAAa,EAAE,CAAC,EAChF,OAAO,EAAE,YAAY,EACrB,QAAQ,EAAE,QAAQ,EAAA,eAAA,EACH,UAAU,EAAA,QAAA,EAAA,CAEzBA,eAAA,CAAC,KAAK,EAAA,EACF,SAAS,EAAE,KAAK,EAChB,KAAK,EAAE,QAAQ,EACf,GAAG,EAAE,IAAI,EACT,KAAK,EAAE,MAAM,EAAA,QAAA,EAAA,CAEZ,IAAI,KACDN,eAAC,IAAI,EAAA,EAAC,KAAK,EAAE,QAAQ,GAAG,cAAc,GAAG,MAAM,YAC1C,IAAI,EAAA,CACF,CACV,EACDA,cAAA,CAAC,IAAI,EAAA,EACD,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,QAAQ,GAAG,cAAc,GAAG,MAAM,EAAA,QAAA,EAExC,KAAK,EAAA,CACH,CAAA,EAAA,CACH,EACRA,cAAA,CAAA,KAAA,EAAA,EACI,SAAS,EAAE,gBAAgB,CAAC,UAAU,CAAC,EAAE,QAAQ,EAAE,UAAU,EAAE,CAAC,EAAA,QAAA,EAEhEA,eAAC,IAAI,EAAA,EAAC,KAAK,EAAE,QAAQ,GAAG,cAAc,GAAG,MAAM,EAAA,QAAA,EAC3CA,eAAC,eAAe,EAAA,EAAA,CAAG,GAChB,EAAA,CACL,CAAA,EAAA,CACD,EACTA,cAAA,CAAA,KAAA,EAAA,EACI,SAAS,EAAE,gBAAgB,CAAC,OAAO,CAAC,EAAE,QAAQ,EAAE,UAAU,EAAE,cAAc,EAAE,CAAC,EAC7E,IAAI,EAAE,QAAQ,EAAA,aAAA,EACD,CAAC,UAAU,EAAA,QAAA,EAEvB,QAAQ,EAAA,CACP,CAAA,EAAA,CACJ;AAEd;AAEA,SAAS,CAAC,WAAW,GAAG,WAAW;;ACrGnC,MAAM,YAAY,GAAG,EAAE;AAEvB;;;;;AAKG;AACI,MAAM,sBAAsB,GAAG,CAAC,QAAuB,EAAE,OAAe,KAA4B;AACvG,IAAA,MAAM,gBAAgB,GAAG,CAAA,EAAG,YAAY,GAAG,OAAO,IAAI;IAEtD,QAAQ,QAAQ;AACZ,QAAA,KAAK,UAAU;YACX,OAAO,EAAE,GAAG,EAAE,gBAAgB,EAAE,IAAI,EAAE,CAAA,EAAG,YAAY,CAAA,EAAA,CAAI,EAAE;AAC/D,QAAA,KAAK,WAAW;YACZ,OAAO,EAAE,GAAG,EAAE,gBAAgB,EAAE,KAAK,EAAE,CAAA,EAAG,YAAY,CAAA,EAAA,CAAI,EAAE;AAChE,QAAA,KAAK,aAAa;YACd,OAAO,EAAE,MAAM,EAAE,gBAAgB,EAAE,IAAI,EAAE,CAAA,EAAG,YAAY,CAAA,EAAA,CAAI,EAAE;AAClE,QAAA,KAAK,cAAc;YACf,OAAO,EAAE,MAAM,EAAE,gBAAgB,EAAE,KAAK,EAAE,CAAA,EAAG,YAAY,CAAA,EAAA,CAAI,EAAE;AACnE,QAAA;YACI,OAAO,EAAE,GAAG,EAAE,gBAAgB,EAAE,KAAK,EAAE,CAAA,EAAG,YAAY,CAAA,EAAA,CAAI,EAAE;;AAExE,CAAC;;ACfD;;;;;AAKG;AACI,MAAM,qBAAqB,GAAG,CAAC,KAAY,EAAE,OAAqB,KAAwB;AAC7F,IAAA,MAAM,aAAa,GAA6C;AAC5D,QAAA,OAAO,EAAE;AACL,YAAA,UAAU,EAAE,KAAK,CAAC,MAAM,CAAC,OAAO;AAChC,YAAA,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM;AAC3B,YAAA,SAAS,EAAE;AACd,SAAA;AACD,QAAA,IAAI,EAAE;AACF,YAAA,UAAU,EAAE,KAAK,CAAC,MAAM,CAAC,UAAU;AACnC,YAAA,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,IAAI;AACzB,YAAA,SAAS,EAAE;AACd,SAAA;AACD,QAAA,OAAO,EAAE;AACL,YAAA,UAAU,EAAE,KAAK,CAAC,MAAM,CAAC,aAAa;AACtC,YAAA,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,OAAO;AAC5B,YAAA,SAAS,EAAE;AACd,SAAA;AACD,QAAA,KAAK,EAAE;AACH,YAAA,UAAU,EAAE,KAAK,CAAC,MAAM,CAAC,WAAW;AACpC,YAAA,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,KAAK;AAC1B,YAAA,SAAS,EAAE;AACd,SAAA;AACD,QAAA,OAAO,EAAE;AACL,YAAA,UAAU,EAAE,KAAK,CAAC,MAAM,CAAC,aAAa;AACtC,YAAA,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,OAAO;AAC5B,YAAA,SAAS,EAAE;AACd;KACJ;AAED,IAAA,OAAO,aAAa,CAAC,OAAO,CAAC;AACjC,CAAC;;ACvCM,MAAM,YAAY,GAAGJ,kBAAY,CACpC,CAAC,KAAY,MAAM;AACf,IAAA,IAAI,EAAE,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAoB,KAAI;QAC5E,MAAM,MAAM,GAAG,qBAAqB,CAAC,KAAK,EAAE,OAAO,CAAC;QACpD,MAAM,cAAc,GAAG,sBAAsB,CAAC,QAAQ,EAAE,OAAO,CAAC;QAEhE,OAAO;AACH,YAAA,QAAQ,EAAE,OAAO;AACjB,YAAA,GAAG,cAAc;AACjB,YAAA,OAAO,EAAE,MAAM;AACf,YAAA,UAAU,EAAE,QAAQ;AACpB,YAAA,GAAG,EAAE,KAAK,CAAC,OAAO,CAAC,EAAE;AACrB,YAAA,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,EAAE;YACzB,eAAe,EAAE,MAAM,CAAC,UAAU;AAClC,YAAA,MAAM,EAAE,CAAA,UAAA,EAAa,MAAM,CAAC,MAAM,CAAA,CAAE;AACpC,YAAA,YAAY,EAAE,KAAK,CAAC,MAAM,CAAC,EAAE;AAC7B,YAAA,SAAS,EAAE,KAAK,CAAC,OAAO,CAAC,EAAE;AAC3B,YAAA,QAAQ,EAAE,eAAe;YACzB,QAAQ;AACR,YAAA,QAAQ,EAAE,QAAQ;AAClB,YAAA,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,KAAK;YAC1B,OAAO,EAAE,SAAS,GAAG,CAAC,GAAG,CAAC;AAC1B,YAAA,SAAS,EAAE,SAAS,GAAG,eAAe;AAClC,iBAAC,QAAQ,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,kBAAkB,GAAG,iBAAiB,CAAC;AACzE,YAAA,UAAU,EAAE,CAAA,IAAA,EAAO,KAAK,CAAC,UAAU,CAAC,MAAM,CAAA,UAAA,EAAa,KAAK,CAAC,UAAU,CAAC,IAAI,CAAA,CAAE;YAC9E,aAAa,EAAE,SAAS,GAAG,MAAM,GAAG;SAC9B;IACd;AACH,CAAA,CAAC,CACL;;AC/BD;AACA,MAAM,WAAW,GAAsC;IACnD,OAAO,EAAEI,cAAA,CAAC,QAAQ,EAAA,EAAA,CAAG;IACrB,IAAI,EAAEA,cAAA,CAAC,QAAQ,EAAA,EAAA,CAAG;IAClB,OAAO,EAAEA,cAAA,CAAC,iBAAiB,EAAA,EAAA,CAAG;IAC9B,KAAK,EAAEA,cAAA,CAAC,eAAe,EAAA,EAAA,CAAG;IAC1B,OAAO,EAAEA,cAAA,CAAC,eAAe,EAAA,EAAA;CAC5B;AAED;;;;AAIG;AACI,MAAM,YAAY,GAAG,CAAC,OAAqB,KAAiB;AAC/D,IAAA,OAAO,WAAW,CAAC,OAAO,CAAC;AAC/B,CAAC;;ACVD;;;;;;;;;;;;;;;;;;;;;;;;;;;AA2BG;AACH,MAAM,KAAK,GAAmBU,UAAI,CAAC,CAAC,EAChC,IAAI,EACJ,OAAO,GAAG,SAAS,EACnB,QAAQ,GAAG,WAAW,EACtB,SAAS,GAAG,KAAK,EACjB,OAAO,GAAG,CAAC,EACX,QAAQ,GAAG,eAAe,EAC1B,OAAO,EACP,cAAc,EACjB,KAAI;AACD,IAAA,MAAMP,OAAK,GAAGC,cAAQ,EAAE;AACxB,IAAA,MAAM,QAAQ,GAAGS,YAAM,CAAiB,IAAI,CAAC;AAC7C,IAAA,MAAM,aAAa,GAAGA,YAAM,CAAS,CAAC,CAAC;AAEvC,IAAA,MAAM,IAAI,GAAGR,aAAO,CAAC,MAAM,YAAY,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC;IAC5D,MAAM,MAAM,GAAGA,aAAO,CAAC,MAAM,qBAAqB,CAACF,OAAK,EAAE,OAAO,CAAC,EAAE,CAACA,OAAK,EAAE,OAAO,CAAC,CAAC;;IAGrFW,eAAS,CAAC,MAAK;QACX,IAAI,QAAQ,CAAC,OAAO,IAAI,cAAc,IAAI,SAAS,IAAI,OAAO,EAAE;AAC5D,YAAA,MAAM,MAAM,GAAG,QAAQ,CAAC,OAAO,CAAC,YAAY;;AAE5C,YAAA,IAAI,MAAM,KAAK,aAAa,CAAC,OAAO,EAAE;AAClC,gBAAA,aAAa,CAAC,OAAO,GAAG,MAAM;AAC9B,gBAAA,cAAc,CAAC,OAAO,EAAE,MAAM,CAAC;YACnC;QACJ;AACJ,IAAA,CAAC,EAAE,CAAC,SAAS,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,cAAc,CAAC,CAAC;AAExD,IAAA,QACIR,eAAA,CAAA,KAAA,EAAA,EACI,GAAG,EAAE,QAAQ,EACb,SAAS,EAAE,YAAY,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,EACjF,IAAI,EAAE,OAAO,eACF,QAAQ,EAAA,QAAA,EAAA,CAEnBN,cAAA,CAAC,IAAI,IACD,IAAI,EAAE,IAAI,EACV,KAAK,EAAE,MAAM,CAAC,SAAS,EAAA,QAAA,EAEtB,IAAI,EAAA,CACF,EACPA,eAAC,IAAI,EAAA,EACD,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,IAAI,EACd,KAAK,EAAE,MAAM,CAAC,SAAS,EACvB,QAAQ,EAAE,CAAC,EAAA,QAAA,EAEV,IAAI,EAAA,CACF,CAAA,EAAA,CACL;AAEd,CAAC;AAED,KAAK,CAAC,WAAW,GAAG,OAAO;;AC3FpB,MAAM,YAAY,GAAGJ,kBAAY,CAAC,CAAC,KAAK,MAAM;AACjD,IAAA,UAAU,EAAE,CAAC,UAAmB,MAAM;AAClC,QAAA,UAAU,EAAE,oBAAoB;AAChC,QAAA,OAAO,EAAE,MAAM;AACf,QAAA,UAAU,EAAE,QAAQ;AACpB,QAAA,cAAc,EAAE,QAAQ;AACxB,QAAA,QAAQ,EAAE,OAAO;AACjB,QAAA,GAAG,EAAE,CAAC;AACN,QAAA,IAAI,EAAE,CAAC;AACP,QAAA,MAAM,EAAE,MAAM;AACd,QAAA,UAAU,EAAE,2BAA2B;AACvC,QAAA,KAAK,EAAE,OAAO;AACd,QAAA,MAAM,EAAE,OAAO;QACf,OAAO,EAAE,UAAU,GAAG,CAAC,GAAG,CAAC;KAC9B,CAAC;AACF,IAAA,OAAO,EAAE,CAAC,UAAmB,MAAM;AAC/B,QAAA,KAAK,EAAE,MAAM;AACb,QAAA,QAAQ,EAAE,GAAG;AACb,QAAA,YAAY,EAAE,CAAC;AACf,QAAA,QAAQ,EAAE,UAAU;AACpB,QAAA,IAAI,EAAE,KAAK;AACX,QAAA,GAAG,EAAE,KAAK;QACV,SAAS,EAAE,UAAU,GAAG,gCAAgC,GAAG,mCAAmC;AAC9F,QAAA,eAAe,EAAE,eAAe;AAChC,QAAA,UAAU,EAAE,6BAA6B;AACzC,QAAA,eAAe,EAAE,KAAK,CAAC,MAAM,CAAC,UAAU;AACxC,QAAA,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,EAAE;AACzB,QAAA,OAAO,EAAE,MAAM;AACf,QAAA,aAAa,EAAE,QAAQ;AACvB,QAAA,MAAM,EAAE,aAAa;AACrB,QAAA,UAAU,EAAE,YAAY;AACxB,QAAA,GAAG,EAAE,KAAK,CAAC,OAAO,CAAC,EAAE;KACxB,CAAC;AACL,CAAA,CAAC,CAAC;;ACrBH,MAAM,KAAK,GAAmB,CAAC,EAC3B,MAAM,EACN,OAAO,EACP,KAAK,EACL,QAAQ,EACR,MAAM,EACN,MAAM,EACT,KAAI;;AAED,IAAA,MAAM,QAAQ,GAAGiB,YAAM,CAAwB,IAAI,CAAC;;IAGpD,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,GAAG,mBAAmB,CAAC,MAAM,CAAC;IAE7DC,eAAS,CAAC,MAAK;AACX,QAAA,MAAM,aAAa,GAAG,CAAC,KAAoB,KAAI;YAC3C,IAAI,KAAK,CAAC,GAAG,KAAK,QAAQ,IAAI,MAAM,EAAE;AAClC,gBAAA,OAAO,EAAE;YACb;AACJ,QAAA,CAAC;AACD,QAAA,QAAQ,CAAC,gBAAgB,CAAC,SAAS,EAAE,aAAa,CAAC;QACnD,OAAO,MAAM,QAAQ,CAAC,mBAAmB,CAAC,SAAS,EAAE,aAAa,CAAC;AACvE,IAAA,CAAC,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;;AAGrB,IAAA,MAAM,gBAAgB,GAAG,CAAC,CAAiC,KAAI;QAC3D,IAAI,MAAM,IAAI,OAAO,MAAM,CAAC,OAAO,KAAK,UAAU,EAAE;;AAEhD,YAAA,MAAM,CAAC,OAAO,CAAC,CAAkC,CAAC;QACtD;AACJ,IAAA,CAAC;;IAGD,MAAM,IAAI,IACNR,eAAA,CAAAc,mBAAA,EAAA,EAAA,QAAA,EAAA,CACId,eAAA,CAAC,KAAK,EAAA,EACF,OAAO,EAAE,eAAe,EACxB,MAAM,EAAE,WAAW,EACnB,KAAK,EAAE,MAAM,EAAA,QAAA,EAAA,CAEbN,cAAA,CAAC,IAAI,EAAA,EACD,OAAO,EAAE,IAAI,EAAA,QAAA,EAEZ,KAAK,GACH,EACN,CAAC,MAAM,KACJA,cAAA,CAAC,UAAU,EAAA,EACP,IAAI,EAAEA,cAAA,CAAC,SAAS,EAAA,EAAA,CAAG,EACnB,OAAO,EAAE,OAAO,EAChB,IAAI,EAAE,OAAO,EACb,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM,GACnB,CACL,CAAA,EAAA,CACG,EACP,QAAQ,EACR,MAAM,KACHM,eAAA,CAAC,KAAK,EAAA,EACF,OAAO,EAAE,UAAU,EACnB,KAAK,EAAE,MAAM,EAAA,QAAA,EAAA,CAEbN,cAAA,CAAC,MAAM,EAAA,EACH,KAAK,EAAE,QAAQ,EACf,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,UAAU,EAAA,CACrB,EACFA,cAAA,CAAC,MAAM,EAAA,EAAA,GACC,MAAM,EACV,IAAI,EAAE,MAAM,GAAG,QAAQ,GAAG,QAAQ,EAAA,CACpC,CAAA,EAAA,CACE,CACX,CAAA,EAAA,CACF,CACN;AAED,IAAA,OAAOgB,qBAAY,CACfhB,cAAA,CAACE,cAAQ,EAAA,EAAA,QAAA,EACJ,SAAS,IACNF,cAAA,CAAA,KAAA,EAAA,EACI,SAAS,EAAE,YAAY,CAAC,UAAU,CAAC,UAAU,CAAC,EAC9C,GAAG,EAAE,QAAQ,EAAA,QAAA,EAEbA,cAAA,CAAA,KAAA,EAAA,EACI,SAAS,EAAE,YAAY,CAAC,OAAO,CAAC,UAAU,CAAC,EAAA,QAAA,EAE1C,MAAM,IACHA,cAAA,CAACqB,MAAI,EAAA,EAAC,QAAQ,EAAE,CAAC,CAAY,OAAO,CAAC,CAAC,cAAc,EAAE,CAAC,CAAC,gBAAgB,EAAE,CAAA,CAAC,CAAC,YACvE,IAAI,EAAA,CACF,KAEPrB,eAACE,cAAQ,EAAA,EAAA,QAAA,EACJ,IAAI,EAAA,CACE,CACd,GACC,EAAA,CACJ,IACN,IAAI,EAAA,CACD,EACX,QAAQ,CAAC,IAAI,CAChB;AACL;AAEA,KAAK,CAAC,WAAW,GAAG,OAAO;;AC/G3B;;AAEG;AACI,MAAM,kBAAkB,GAAGN,kBAAY,CAAC,CAAC,KAAK,MAAM;IACvD,IAAI,EAAE,CAAC,EAAE,QAAQ,GAAG,KAAK,EAAyB,MAAM;AACpD,QAAA,OAAO,EAAE,aAAa;AACtB,QAAA,UAAU,EAAE,QAAQ;AACpB,QAAA,cAAc,EAAE,eAAe;AAC/B,QAAA,SAAS,EAAE,YAAY;AACvB,QAAA,GAAG,EAAE,KAAK,CAAC,OAAO,CAAC,EAAE;AACrB,QAAA,OAAO,EAAE,CAAA,EAAG,KAAK,CAAC,OAAO,CAAC,EAAE,CAAA,CAAA,EAAI,KAAK,CAAC,OAAO,CAAC,EAAE,CAAA,CAAE;AAClD,QAAA,YAAY,EAAE,KAAK,CAAC,MAAM,CAAC,EAAE;AAC7B,QAAA,MAAM,EAAE,SAAS;AACjB,QAAA,UAAU,EAAE,CAAA,iBAAA,EAAoB,KAAK,CAAC,UAAU,CAAC,IAAI,CAAA,QAAA,EAAW,KAAK,CAAC,UAAU,CAAC,IAAI,CAAA,CAAE;AACvF,QAAA,UAAU,EAAE,SAAS;AACrB,QAAA,KAAK,EAAE,MAAM;AACb,QAAA,SAAS,EAAE,kBAAkB;AAC7B,QAAA,SAAS,EAAE,kBAAkB;AAC7B,QAAA,eAAe,EAAE,QAAQ,GAAG,KAAK,CAAC,MAAM,CAAC,OAAO,GAAG,aAAa;AAChE,QAAA,KAAK,EAAE,QAAQ,GAAG,KAAK,CAAC,MAAM,CAAC,SAAS,GAAG,KAAK,CAAC,MAAM,CAAC,aAAa;AACrE,QAAA,MAAM,EAAE,MAAM;AACd,QAAA,QAAQ,EAAE;AACN,YAAA,eAAe,EAAE,QAAQ,GAAG,KAAK,CAAC,MAAM,CAAC,YAAY,GAAG,KAAK,CAAC,MAAM,CAAC,YAAY;AACjF,YAAA,KAAK,EAAE,QAAQ,GAAG,KAAK,CAAC,MAAM,CAAC,SAAS,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI;AAC/D,SAAA;AACD,QAAA,SAAS,EAAE;AACP,YAAA,eAAe,EAAE,QAAQ,GAAG,KAAK,CAAC,MAAM,CAAC,aAAa,GAAG,KAAK,CAAC,MAAM,CAAC,aAAa;AACtF,SAAA;AACD,QAAA,WAAW,EAAE;AACT,YAAA,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,YAAY;AAChC,YAAA,eAAe,EAAE,QAAQ,GAAG,KAAK,CAAC,MAAM,CAAC,QAAQ,GAAG,aAAa;AACjE,YAAA,MAAM,EAAE,aAAa;AACxB,SAAA;KACJ,CAAC;AACL,CAAA,CAAC,CAAC;;AC9BH;;;;;AAKG;AACH,MAAM,UAAU,GAAwB,CAAC,EACrC,KAAK,EACL,SAAS,EACT,OAAO,EACP,QAAQ,GAAG,KAAK,EAChB,OAAO,EACP,QAAQ,EACR,IAAI,EACJ,SAAS,EACT,cAAc,EACd,eAAe,EACf,IAAI,EACJ,QAAQ,GACX,KAAI;IACD,QACIU,4BACI,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,QAAQ,EAClB,IAAI,EAAE,QAAQ,EACd,SAAS,EAAE,kBAAkB,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAA,YAAA,EACpC,SAAS,EAAA,iBAAA,EACJ,cAAc,EAAA,kBAAA,EACb,eAAe,EACjC,IAAI,EAAE,IAAI,EACV,QAAQ,EAAE,QAAQ,EAAA,QAAA,EAAA,CAElBA,gBAAC,KAAK,EAAA,EAAA,QAAA,EAAA,CACD,SAAS,KACNN,cAAA,CAAC,IAAI,EAAA,EAAA,QAAA,EACA,SAAS,EAAA,CACP,CACV,EACDA,cAAA,CAAC,IAAI,EAAA,EACD,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,CAAC,EAAA,QAAA,EAEV,KAAK,EAAA,CACH,EACN,OAAO,KACJA,cAAA,CAAC,IAAI,EAAA,EAAA,QAAA,EACA,OAAO,EAAA,CACL,CACV,CAAA,EAAA,CACG,EACP,IAAI,IAAI,CAAC,QAAQ,KACdA,cAAA,CAAC,IAAI,EAAA,EAAA,GACG,IAAI,EACR,IAAI,EAAE,KAAK,EACX,KAAK,EAAE,IAAI,CAAC,KAAK,IAAI,MAAM,EAC3B,QAAQ,EAAE,QAAQ,EAAA,CACpB,CACL,CAAA,EAAA,CACI;AAEjB;AAEA,UAAU,CAAC,WAAW,GAAG,YAAY;;ACrErC;;AAEG;AACI,MAAM,iBAAiB,GAAGJ,kBAAY,CAAC,CAAC,KAAK,MAAM;AACtD,IAAA,IAAI,EAAE;AACF,QAAA,OAAO,EAAE,MAAM;AACf,QAAA,QAAQ,EAAE,MAAM;AAChB,QAAA,UAAU,EAAE,QAAQ;AACpB,QAAA,GAAG,EAAE,KAAK,CAAC,OAAO,CAAC,EAAE;AACrB,QAAA,SAAS,EAAE,YAAY;AACvB,QAAA,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC,EAAE;AAC3B,QAAA,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,YAAY;AAChC,QAAA,SAAS,EAAE,MAAM;AACjB,QAAA,MAAM,EAAE,CAAC;AACT,QAAA,OAAO,EAAE,CAAC;AACb,KAAA;AACJ,CAAA,CAAC,CAAC;;AChBH;;AAEG;AACI,MAAM,0BAA0B,GAAGA,kBAAY,CAAC,CAAC,KAAK,MAAM;AAC/D,IAAA,IAAI,EAAE;AACF,QAAA,OAAO,EAAE,aAAa;AACtB,QAAA,UAAU,EAAE,QAAQ;AACpB,QAAA,GAAG,EAAE,KAAK,CAAC,OAAO,CAAC,EAAE;AACxB,KAAA;AACD,IAAA,QAAQ,EAAE;AACN,QAAA,OAAO,EAAE,MAAM;AACf,QAAA,MAAM,EAAE,EAAE;AACV,QAAA,KAAK,EAAE,EAAE;AACT,QAAA,UAAU,EAAE,QAAQ;AACpB,QAAA,cAAc,EAAE,QAAQ;AAC3B,KAAA;AACJ,CAAA,CAAC,CAAC;;ACXH;;;AAGG;AACH,MAAM,kBAAkB,GAAgC,OACpDI,cAAA,CAAA,IAAA,EAAA,EAAI,SAAS,EAAE,0BAA0B,CAAC,IAAI,EAAA,QAAA,EAC1CA,yBACI,IAAI,EAAE,cAAc,EAAA,aAAA,EACP,MAAM,EACnB,SAAS,EAAE,0BAA0B,CAAC,QAAQ,YAE9CA,cAAA,CAAC,IAAI,IACD,IAAI,EAAE,IAAI,EACV,KAAK,EAAE,cAAc,EAAA,QAAA,EAErBA,eAAC,kBAAkB,EAAA,EAAA,CAAG,GACnB,EAAA,CACJ,EAAA,CACN;AAET,kBAAkB,CAAC,WAAW,GAAG,oBAAoB;;ACrBrD;;AAEG;AACH,MAAM,mBAAmB,GAAiC,OACtDA,cAAA,CAAA,IAAA,EAAA,EACI,IAAI,EAAE,cAAc,EAAA,aAAA,EACP,MAAM,YAEnBA,cAAA,CAAC,IAAI,EAAA,EACD,KAAK,EAAE,cAAc,EACrB,IAAI,EAAE,IAAI,EAAA,QAAA,EAEVA,cAAA,CAAC,gBAAgB,EAAA,EAAA,CAAG,EAAA,CACjB,EAAA,CACN;AAET,mBAAmB,CAAC,WAAW,GAAG,qBAAqB;;ACpBvD;;AAEG;AACI,MAAM,gBAAgB,GAAG,CAC5B,KAAkB,EAClB,kBAAiC,KACpB;IACb,MAAM,MAAM,GAAgB,EAAE;IAE9B,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,KAAK,KAAI;;AAE1B,QAAA,MAAM,WAAW,GAAGF,oBAAc,CAAC,IAAI;AACnC,cAAEC,kBAAY,CAAC,IAAoB,EAAE,EAAE,GAAG,EAAE,CAAA,KAAA,EAAQ,KAAK,CAAA,CAAE,EAAE;cAC3D,IAAI;AACV,QAAA,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC;;QAGxB,IAAI,KAAK,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;YAC1B,MAAM,CAAC,IAAI,CAACC,cAAA,CAAC,kBAAkB,EAAA,EAAA,EAAM,CAAA,IAAA,EAAO,KAAK,CAAA,CAAE,CAAI,CAAC;QAC5D;AACJ,IAAA,CAAC,CAAC;AAEF,IAAA,OAAO,MAAM;AACjB,CAAC;;ACrBD;;AAEG;AACI,MAAM,uBAAuB,GAAG,CACnC,KAAkB,EAClB,QAA4B,EAC5B,iBAAgC,EAChC,kBAAiC,KACpB;IACb,IAAI,CAAC,QAAQ,IAAI,KAAK,CAAC,MAAM,IAAI,QAAQ,EAAE;AACvC,QAAA,OAAO,gBAAgB,CAAC,KAAK,EAAE,kBAAkB,CAAC;IACtD;;AAGA,IAAA,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,CAAC;;AAG1B,IAAA,MAAM,cAAc,GAAG,QAAQ,GAAG,CAAC;IACnC,MAAM,SAAS,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,cAAc,CAAC;;IAG9C,MAAM,MAAM,GAAgB,EAAE;;AAG9B,IAAA,MAAM,YAAY,GAAGF,oBAAc,CAAC,SAAS;UACvCC,kBAAY,CAAC,SAAyB,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE;UACxD,SAAS;AACf,IAAA,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC;;IAGzB,MAAM,CAAC,IAAI,CAACC,cAAA,CAAC,kBAAkB,EAAA,EAAA,EAAM,qBAAqB,CAAI,CAAC;IAC/D,MAAM,CAAC,IAAI,CAACA,cAAA,CAAC,iBAAiB,EAAA,EAAA,EAAM,UAAU,CAAI,CAAC;IACnD,MAAM,CAAC,IAAI,CAACA,cAAA,CAAC,kBAAkB,EAAA,EAAA,EAAM,oBAAoB,CAAI,CAAC;;IAG9D,SAAS,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,KAAK,KAAI;AAC9B,QAAA,MAAM,WAAW,GAAGF,oBAAc,CAAC,IAAI;AACnC,cAAEC,kBAAY,CAAC,IAAoB,EAAE,EAAE,GAAG,EAAE,CAAA,KAAA,EAAQ,KAAK,CAAA,CAAE,EAAE;cAC3D,IAAI;AACV,QAAA,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC;;QAGxB,IAAI,KAAK,GAAG,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE;YAC9B,MAAM,CAAC,IAAI,CAACC,cAAA,CAAC,kBAAkB,EAAA,EAAA,EAAM,CAAA,SAAA,EAAY,KAAK,CAAA,CAAE,CAAI,CAAC;QACjE;AACJ,IAAA,CAAC,CAAC;AAEF,IAAA,OAAO,MAAM;AACjB,CAAC;;AClDD;;AAEG;AACI,MAAM,eAAe,GAAG,CAAC,QAAmB,KAAiB;IAChE,MAAM,MAAM,GAAgB,EAAE;IAE9BH,cAAQ,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,KAAK,KAAI;QACjC,IAAIC,oBAAc,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAKI,cAAQ,EAAE;AAClD,YAAA,MAAM,CAAC,IAAI,CAAC,GAAG,eAAe,CAAC,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QACzD;aAAO;AACH,YAAA,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC;QACtB;AACJ,IAAA,CAAC,CAAC;AAEF,IAAA,OAAO,MAAM;AACjB,CAAC;;ACfD;;AAEG;AACI,MAAM,WAAW,GAAG,CAAC,KAAgB,KAAa;AACrD,IAAA,OAAOJ,oBAAc,CAAC,KAAK,CAAC,IAAK,KAAK,CAAC,IAAiC,EAAE,WAAW,KAAK,qBAAqB;AACnH,CAAC;;ACGD;;;;;;;;AAQG;AACH,MAAM,UAAU,GAAGY,UAAI,CAAkB,CAAC,EACtC,QAAQ,EACR,QAAQ,EACR,GAAG,KAAK,EACX,KAAI;AACD,IAAA,MAAM,WAAW,GAAG,eAAe,CAAC,QAAQ,CAAC;;AAG7C,IAAA,MAAM,KAAK,GAAG,WAAW,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;IAE9D,MAAM,gBAAgB,GAAGL,aAAO,CAAC,MAAM,uBAAuB,CAC1D,KAAK,EACL,QAAQ,EACR,kBAAkB,EAClB,mBAAmB,CACtB,EAAE,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;AAErB,IAAA,QACIL,cAAA,CAAA,KAAA,EAAA,EAAA,YAAA,EACgB,YAAY,EAAA,GACpB,KAAK,YAETA,cAAA,CAAA,IAAA,EAAA,EACI,SAAS,EAAE,iBAAiB,CAAC,IAAI,EAAA,QAAA,EAEhC,gBAAgB,EAAA,CAChB,EAAA,CACH;AAEd,CAAC;AACD,UAAU,CAAC,WAAW,GAAG,YAAY;;AC/CrC;;AAEG;AACI,MAAM,sBAAsB,GAAGJ,kBAAY,CAAC,CAAC,KAAK,MAAM;AAC3D,IAAA,IAAI,EAAE;AACF,QAAA,OAAO,EAAE,aAAa;AACtB,QAAA,UAAU,EAAE,QAAQ;AACpB,QAAA,GAAG,EAAE,KAAK,CAAC,OAAO,CAAC,EAAE;AACrB,QAAA,MAAM,EAAE;AACX,KAAA;AACD,IAAA,IAAI,EAAE;AACF,QAAA,UAAU,EAAE,CAAA,MAAA,EAAS,KAAK,CAAC,UAAU,CAAC,IAAI,CAAA,wBAAA,EAA2B,KAAK,CAAC,UAAU,CAAC,IAAI,CAAA,CAAE;AAC5F,QAAA,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,YAAY;AAChC,QAAA,cAAc,EAAE,WAAW;AAC3B,QAAA,mBAAmB,EAAE,aAAa;AAClC,QAAA,mBAAmB,EAAE,KAAK;AAC1B,QAAA,QAAQ,EAAE;AACN,YAAA,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,OAAO;AAC3B,YAAA,mBAAmB,EAAE,cAAc;AACtC,SAAA;AACJ,KAAA;AACJ,CAAA,CAAC,CAAC;;ACjBH;;;AAGG;AACH,MAAM,cAAc,GAAGc,UAAI,CAAsB,CAAC,KAAK,KAAI;AACvD,IAAA,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,KAAK;AAEnC,IAAA,QACIV,cAAA,CAAA,IAAA,EAAA,EAAI,SAAS,EAAE,sBAAsB,CAAC,IAAI,EAAA,QAAA,EACtCA,cAAA,CAAA,GAAA,EAAA,EACI,SAAS,EAAE,sBAAsB,CAAC,IAAI,EACtC,OAAO,EAAE,OAAO,EAAA,QAAA,EAEhBA,eAAC,IAAI,EAAA,EACD,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,IAAI,YAEb,QAAQ,EAAA,CACN,EAAA,CACP,EAAA,CACH;AAEb,CAAC;AACD,cAAc,CAAC,WAAW,GAAG,gBAAgB;;AC3B7C;;AAEG;AACI,MAAM,sBAAsB,GAAGJ,kBAAY,CAAC,CAAC,KAAK,MAAM;AAC3D,IAAA,IAAI,EAAE;AACF,QAAA,OAAO,EAAE,aAAa;AACtB,QAAA,UAAU,EAAE,QAAQ;AACpB,QAAA,GAAG,EAAE,KAAK,CAAC,OAAO,CAAC,EAAE;AACxB,KAAA;AACD,IAAA,IAAI,EAAE;AACF,QAAA,UAAU,EAAE,KAAK,CAAC,UAAU,CAAC,MAAM;AACnC,QAAA,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,OAAO;AAC9B,KAAA;AACJ,CAAA,CAAC,CAAC;;ACTH;;;AAGG;AACH,MAAM,cAAc,GAAGc,UAAI,CAAsB,CAAC,EAC9C,QAAQ,EACX,MACGV,cAAA,CAAA,IAAA,EAAA,EAAI,SAAS,EAAE,sBAAsB,CAAC,IAAI,EAAA,QAAA,EACtCA,cAAA,CAAA,MAAA,EAAA,EACI,SAAS,EAAE,sBAAsB,CAAC,IAAI,EAAA,QAAA,EAEtCA,eAAC,IAAI,EAAA,EACD,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,IAAI,EACd,KAAK,EAAE,SAAS,EAAA,QAAA,EAEf,QAAQ,GACN,EAAA,CACJ,EAAA,CACN,CACR;AACD,cAAc,CAAC,WAAW,GAAG,gBAAgB;;ACtB7C;;AAEG;AACI,MAAM,WAAW,GAAGJ,kBAAY,CAAC,CAAC,KAAK,MAAM;IAChD,IAAI,EAAE,CAAC,EAAE,KAAK,GAAG,MAAM,EAAmB,MAAM;AAC5C,QAAA,OAAO,EAAE,MAAM;QACf,KAAK;AACL,QAAA,eAAe,EAAE,KAAK,CAAC,MAAM,CAAC,YAAY;AAC1C,QAAA,YAAY,EAAE,KAAK,CAAC,MAAM,CAAC,EAAE;AAC7B,QAAA,QAAQ,EAAE,QAAQ;AAClB,QAAA,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,EAAE;QACzB,MAAM,EAAE,YAAY,KAAK,CAAC,OAAO,CAAC,EAAE,CAAA,GAAA,EAAM,WAAW,CAAA,GAAA,CAAK;KAC7D,CAAC;AACL,CAAA,CAAC,CAAC;;ACbH;;AAEG;AACH,MAAM,IAAI,GAAkB,CAAC,EACzB,QAAQ,EACR,SAAS,EACT,KAAK,GAAG,MAAM,GACjB,KAAI;IACD,QACII,cAAA,CAAA,KAAA,EAAA,EACI,SAAS,EAAE,WAAW,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC,EAAA,QAAA,EAErC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,KAAK,KAAI;AAC3C,YAAA,IAAI,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE;AAC7B,gBAAA,MAAM,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC,KAAK;AAClC,gBAAA,MAAM,QAAQ,GAAG,SAAS,KAAK,QAAQ,KAAK,SAAS,KAAK,SAAS,IAAI,KAAK,KAAK,CAAC,CAAC;AACnF,gBAAA,OAAO,KAAK,CAAC,YAAY,CAAC,KAAK,EAAE;oBAC7B,QAAQ;AACX,iBAAA,CAAC;YACN;AACA,YAAA,OAAO,KAAK;QAChB,CAAC,CAAC,EAAA,CACA;AAEd;AAEA,IAAI,CAAC,WAAW,GAAG,MAAM;;AC3BzB;;AAEG;AACI,MAAM,eAAe,GAAGJ,kBAAY,CAAC,CAAC,KAAK,MAAM;AACpD,IAAA,GAAG,EAAE,CAAC,QAAiB,MAAM;AACzB,QAAA,IAAI,EAAE,CAAC;AACP,QAAA,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,EAAE;AACzB,QAAA,MAAM,EAAE,WAAW;AACnB,QAAA,YAAY,EAAE,KAAK,CAAC,MAAM,CAAC,EAAE;AAC7B,QAAA,MAAM,EAAE,SAAS;AACjB,QAAA,UAAU,EAAE,CAAA,iBAAA,EAAoB,KAAK,CAAC,UAAU,CAAC,IAAI,CAAA,QAAA,EAAW,KAAK,CAAC,UAAU,CAAC,IAAI,CAAA,YAAA,EAAe,KAAK,CAAC,UAAU,CAAC,IAAI,CAAA,CAAE;AAC3H,QAAA,OAAO,EAAE,MAAM;AACf,QAAA,UAAU,EAAE,QAAQ;AACpB,QAAA,cAAc,EAAE,QAAQ;AACxB,QAAA,GAAG,EAAE,KAAK,CAAC,OAAO,CAAC,EAAE;AACrB,QAAA,eAAe,EAAE,QAAQ,GAAG,KAAK,CAAC,MAAM,CAAC,UAAU,GAAG,aAAa;AACnE,QAAA,KAAK,EAAE,QAAQ,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,GAAG,KAAK,CAAC,MAAM,CAAC,aAAa;AAChE,QAAA,SAAS,EAAE,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,EAAE,GAAG,SAAS;AAClD,QAAA,QAAQ,EAAE;AACN,YAAA,eAAe,EAAE,CAAC,QAAQ,GAAG,KAAK,CAAC,MAAM,CAAC,eAAe,GAAG,SAAS;AACxE,SAAA;KACJ,CAAC;AACL,CAAA,CAAC,CAAC;;ACnBH;;AAEG;AACH,MAAM,OAAO,GAAqB,CAAC,EAC/B,KAAK,EACL,QAAQ,GAAG,KAAK,EAChB,OAAO,EACP,SAAS,EACT,OAAO,EACV,KAAI;IACD,QACIU,eAAA,CAAA,KAAA,EAAA,EACI,SAAS,EAAE,eAAe,CAAC,GAAG,CAAC,QAAQ,CAAC,EACxC,OAAO,EAAE,OAAO,EAAA,QAAA,EAAA,CAEf,SAAS,KACNN,cAAA,CAAC,IAAI,EAAA,EAAA,QAAA,EACA,SAAS,EAAA,CACP,CACV,EACA,KAAK,KACFA,eAAC,IAAI,EAAA,EACD,OAAO,EAAE,OAAO,EAChB,kBAAkB,EAAA,IAAA,EAClB,QAAQ,EAAE,CAAC,EAAA,QAAA,EAEV,KAAK,EAAA,CACH,CACV,EACA,OAAO,KACJA,cAAA,CAAC,IAAI,EAAA,EAAA,QAAA,EACA,OAAO,EAAA,CACL,CACV,CAAA,EAAA,CACC;AAEd;AAEA,OAAO,CAAC,WAAW,GAAG,SAAS;;ACzCxB,MAAM,iBAAiB,GAAGJ,kBAAY,CAAC,CAAC,KAAK,MAAM;AACtD,IAAA,IAAI,EAAE;AACF,QAAA,OAAO,EAAE,MAAM;AACf,QAAA,UAAU,EAAE,QAAQ;AACpB,QAAA,GAAG,EAAE,KAAK,CAAC,OAAO,CAAC,EAAE;AACxB,KAAA;AACD,IAAA,UAAU,EAAE,CAAC,EAAE,QAAQ,GAAG,KAAK,EAAE,MAAM,GAAG,KAAK,EAAyB,MAAM;AAC1E,QAAA,OAAO,EAAE,aAAa;AACtB,QAAA,UAAU,EAAE,QAAQ;AACpB,QAAA,cAAc,EAAE,QAAQ;AACxB,QAAA,SAAS,EAAE,YAAY;AACvB,QAAA,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,EAAE;AACzB,QAAA,YAAY,EAAE,KAAK,CAAC,MAAM,CAAC,EAAE;QAC7B,MAAM,EAAE,QAAQ,GAAG,aAAa,GAAG,SAAS;AAC5C,QAAA,UAAU,EAAE,CAAA,iBAAA,EAAoB,KAAK,CAAC,UAAU,CAAC,IAAI,CAAA,QAAA,EAAW,KAAK,CAAC,UAAU,CAAC,IAAI,CAAA,CAAE;AACvF,QAAA,SAAS,EAAE,MAAM;AACjB,QAAA,SAAS,EAAE,MAAM;AACjB,QAAA,QAAQ,EAAE,MAAM;AAChB,QAAA,QAAQ,EAAE,MAAM;AAChB,QAAA,UAAU,EAAE,SAAS;AACrB,QAAA,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC,EAAE;AAC3B,QAAA,UAAU,EAAE,KAAK,CAAC,UAAU,CAAC,MAAM;AACnC,QAAA,eAAe,EAAE,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,OAAO,GAAG,aAAa;AAC9D,QAAA,KAAK,EAAE,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,SAAS,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI;AAC1D,QAAA,MAAM,EAAE,MAAM;QACd,OAAO,EAAE,QAAQ,GAAG,GAAG,GAAG,CAAC;AAC3B,QAAA,QAAQ,EAAE,QAAQ,GAAG,EAAE,IAAI,MAAM,GAAG;AAChC,YAAA,eAAe,EAAE,KAAK,CAAC,MAAM,CAAC,OAAO;AACrC,YAAA,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,SAAS;AAChC,SAAA,GAAG;AACA,YAAA,eAAe,EAAE,KAAK,CAAC,MAAM,CAAC,YAAY;SAC7C,CAAC;AACF,QAAA,SAAS,EAAE,QAAQ,GAAG,EAAE,IAAI,MAAM,GAAG;AACjC,YAAA,eAAe,EAAE,KAAK,CAAC,MAAM,CAAC,OAAO;AACrC,YAAA,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,SAAS;AAChC,SAAA,GAAG;AACA,YAAA,eAAe,EAAE,KAAK,CAAC,MAAM,CAAC,aAAa;SAC9C,CAAC;KACL,CAAC;;AAEF,IAAA,gBAAgB,EAAE;AACd,QAAA,eAAe,EAAE,KAAK,CAAC,MAAM,CAAC,OAAO;AACrC,QAAA,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,SAAS;AAC7B,QAAA,QAAQ,EAAE;AACN,YAAA,eAAe,EAAE,KAAK,CAAC,MAAM,CAAC,OAAO;AACxC,SAAA;AACD,QAAA,SAAS,EAAE;AACP,YAAA,eAAe,EAAE,KAAK,CAAC,MAAM,CAAC,OAAO;AACxC,SAAA;AACJ,KAAA;IACD,gBAAgB,EAAE,CAAC,EAAE,QAAQ,GAAG,KAAK,EAAyB,MAAM;AAChE,QAAA,OAAO,EAAE,aAAa;AACtB,QAAA,UAAU,EAAE,QAAQ;AACpB,QAAA,cAAc,EAAE,QAAQ;AACxB,QAAA,SAAS,EAAE,YAAY;AACvB,QAAA,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,EAAE;AACzB,QAAA,YAAY,EAAE,KAAK,CAAC,MAAM,CAAC,EAAE;QAC7B,MAAM,EAAE,QAAQ,GAAG,aAAa,GAAG,SAAS;AAC5C,QAAA,UAAU,EAAE,CAAA,iBAAA,EAAoB,KAAK,CAAC,UAAU,CAAC,IAAI,CAAA,QAAA,EAAW,KAAK,CAAC,UAAU,CAAC,IAAI,CAAA,CAAE;AACvF,QAAA,SAAS,EAAE,MAAM;AACjB,QAAA,SAAS,EAAE,MAAM;AACjB,QAAA,QAAQ,EAAE,MAAM;AAChB,QAAA,QAAQ,EAAE,MAAM;AAChB,QAAA,UAAU,EAAE,SAAS;AACrB,QAAA,eAAe,EAAE,aAAa;AAC9B,QAAA,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,IAAI;AACxB,QAAA,MAAM,EAAE,MAAM;QACd,OAAO,EAAE,QAAQ,GAAG,GAAG,GAAG,CAAC;QAC3B,QAAQ,EAAE,QAAQ,GAAG,EAAE,GAAG;AACtB,YAAA,eAAe,EAAE,KAAK,CAAC,MAAM,CAAC,YAAY;AAC7C,SAAA;QACD,SAAS,EAAE,QAAQ,GAAG,EAAE,GAAG;AACvB,YAAA,eAAe,EAAE,KAAK,CAAC,MAAM,CAAC,aAAa;AAC9C,SAAA;KACJ,CAAC;AACL,CAAA,CAAC,CAAC;;ACzEH;;AAEG;AACI,MAAM,UAAU,GAAwB,CAAC,EAC5C,WAAW,EACX,UAAU,EACV,YAAY,EACZ,UAAU,EACV,MAAM,EACN,eAAe,GAAG,CAAC,EACnB,SAAS,GAAG,YAAY,EAC3B,KAAI;IACD,MAAM,MAAM,GAAG,iBAAiB;;AAGhC,IAAA,MAAM,YAAY,GAAGS,aAAO,CAAC,MAAK;QAC9B,MAAM,KAAK,GAAa,EAAE;AAE1B,QAAA,IAAI,UAAU,IAAI,eAAe,EAAE;;AAE/B,YAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,UAAU,EAAE,CAAC,EAAE,EAAE;AAClC,gBAAA,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;YACjB;QACJ;aAAO;;YAEH,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,eAAe,GAAG,CAAC,CAAC;AACnD,YAAA,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,WAAW,GAAG,WAAW,CAAC;AACpD,YAAA,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,KAAK,GAAG,eAAe,GAAG,CAAC,CAAC;;YAG7D,MAAM,aAAa,GAAG,GAAG,KAAK,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,GAAG,eAAe,GAAG,CAAC,CAAC,GAAG,KAAK;AAEzF,YAAA,KAAK,IAAI,CAAC,GAAG,aAAa,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,EAAE,EAAE;AACvC,gBAAA,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;YACjB;QACJ;AAEA,QAAA,OAAO,KAAK;IAChB,CAAC,EAAE,CAAC,WAAW,EAAE,UAAU,EAAE,eAAe,CAAC,CAAC;IAE9C,MAAM,cAAc,GAAG,MAAK;AACxB,QAAA,IAAI,WAAW,GAAG,CAAC,EAAE;AACjB,YAAA,MAAM,OAAO,GAAG,WAAW,GAAG,CAAC;YAC/B,IAAI,UAAU,EAAE;gBACZ,UAAU,CAAC,OAAO,CAAC;YACvB;YACA,YAAY,CAAC,OAAO,CAAC;QACzB;AACJ,IAAA,CAAC;IAED,MAAM,UAAU,GAAG,MAAK;AACpB,QAAA,IAAI,WAAW,GAAG,UAAU,EAAE;AAC1B,YAAA,MAAM,OAAO,GAAG,WAAW,GAAG,CAAC;YAC/B,IAAI,MAAM,EAAE;gBACR,MAAM,CAAC,OAAO,CAAC;YACnB;YACA,YAAY,CAAC,OAAO,CAAC;QACzB;AACJ,IAAA,CAAC;AAED,IAAA,MAAM,eAAe,GAAG,CAAC,IAAY,KAAI;AACrC,QAAA,IAAI,IAAI,KAAK,WAAW,EAAE;YACtB,YAAY,CAAC,IAAI,CAAC;QACtB;AACJ,IAAA,CAAC;AAED,IAAA,MAAM,kBAAkB,GAAG,WAAW,KAAK,CAAC;AAC5C,IAAA,MAAM,cAAc,GAAG,WAAW,KAAK,UAAU;IAEjD,QACIC,uCACgB,SAAS,EACrB,SAAS,EAAE,MAAM,CAAC,IAAI,EAAA,QAAA,EAAA,CAGtBN,cAAA,CAAA,QAAA,EAAA,EACI,IAAI,EAAE,QAAQ,EACd,OAAO,EAAE,cAAc,EACvB,QAAQ,EAAE,kBAAkB,EAAA,YAAA,EAChB,iBAAiB,EAC7B,SAAS,EAAE,MAAM,CAAC,gBAAgB,CAAC,EAAE,QAAQ,EAAE,kBAAkB,EAAE,CAAC,EAAA,QAAA,EAEpEA,eAAC,eAAe,EAAA,EAAA,CAAG,EAAA,CACd,EAGR,YAAY,CAAC,GAAG,CAAC,CAAC,IAAI,KAAI;AACvB,gBAAA,MAAM,QAAQ,GAAG,IAAI,KAAK,WAAW;gBACrC,QACIA,cAAA,CAAA,QAAA,EAAA,EAEI,IAAI,EAAE,QAAQ,EACd,OAAO,EAAE,MAAM,eAAe,CAAC,IAAI,CAAC,EAAA,YAAA,EACxB,CAAA,KAAA,EAAQ,IAAI,CAAA,CAAE,kBACZ,QAAQ,GAAG,MAAM,GAAG,SAAS,EAC3C,SAAS,EAAE,MAAM,CAAC,UAAU,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,EAAA,QAAA,EAElE,IAAI,EAAA,EAPA,IAAI,CAQJ;AAEjB,YAAA,CAAC,CAAC,EAGFA,cAAA,CAAA,QAAA,EAAA,EACI,IAAI,EAAE,QAAQ,EACd,OAAO,EAAE,UAAU,EACnB,QAAQ,EAAE,cAAc,EAAA,YAAA,EACZ,eAAe,EAC3B,SAAS,EAAE,MAAM,CAAC,gBAAgB,CAAC,EAAE,QAAQ,EAAE,cAAc,EAAE,CAAC,EAAA,QAAA,EAEhEA,eAAC,gBAAgB,EAAA,EAAA,CAAG,EAAA,CACf,CAAA,EAAA,CACP;AAEd;AAEA,UAAU,CAAC,WAAW,GAAG,YAAY;;ACpHrC,MAAM,YAAY,GAAGsB,mBAAa,CAAgC,SAAS,CAAC;AAE5E,MAAM,cAAc,GAAG,IAAI;AAC3B,MAAM,UAAU,GAAG,CAAC;AACpB,MAAM,YAAY,GAAG,EAAE,CAAA;AACvB,MAAM,aAAa,GAAG,CAAC,CAAA;AAEvB;;;AAGG;AACH,MAAM,aAAa,GAA2B,CAAC,EAAE,QAAQ,EAAE,KAAI;IAC3D,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAGV,cAAQ,CAAc,EAAE,CAAC;AACrD,IAAA,MAAM,CAAC,aAAa,EAAE,gBAAgB,CAAC,GAAGA,cAAQ,CAAc,IAAI,GAAG,EAAE,CAAC;AAC1E,IAAA,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAGA,cAAQ,CAAsB,IAAI,GAAG,EAAE,CAAC;IAChF,MAAM,SAAS,GAAGC,YAAM,CAA8B,IAAI,GAAG,EAAE,CAAC;AAEhE,IAAA,MAAM,SAAS,GAAGJ,iBAAW,CAAC,CAAC,OAAyB,KAAI;QACxD,MAAM,EACF,IAAI,EACJ,OAAO,GAAG,SAAS,EACnB,QAAQ,GAAG,WAAW,EACtB,QAAQ,GAAG,cAAc,EACzB,QAAQ,GAAG,GAAG,EACjB,GAAG,OAAO;AAEX,QAAA,MAAM,EAAE,GAAG,CAAA,MAAA,EAAS,IAAI,CAAC,GAAG,EAAE,CAAA,CAAA,EAAI,IAAI,CAAC,MAAM,EAAE,EAAE;AACjD,QAAA,MAAM,QAAQ,GAAc;YACxB,EAAE;YACF,IAAI;YACJ,OAAO;YACP,QAAQ;AACR,YAAA,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;YACrB;SACH;AAED,QAAA,SAAS,CAAC,CAAC,IAAI,KAAI;YACf,MAAM,aAAa,GAAG,CAAC,GAAG,IAAI,EAAE,QAAQ,CAAC;;AAEzC,YAAA,MAAM,kBAAkB,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,KAAK,QAAQ,CAAC;AAE7E,YAAA,IAAI,kBAAkB,CAAC,MAAM,GAAG,UAAU,EAAE;;AAExC,gBAAA,MAAM,WAAW,GAAG,kBAAkB,CAAC,CAAC,CAAC;AACzC,gBAAA,MAAM,aAAa,GAAG,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,CAAC;gBAC3D,IAAI,aAAa,EAAE;oBACf,YAAY,CAAC,aAAa,CAAC;oBAC3B,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC;gBAC5C;AACA,gBAAA,gBAAgB,CAAC,CAAC,WAAW,KAAI;AAC7B,oBAAA,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,WAAW,CAAC;AACvC,oBAAA,UAAU,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC;AACjC,oBAAA,OAAO,UAAU;AACrB,gBAAA,CAAC,CAAC;;gBAEF,UAAU,CAAC,MAAK;oBACZ,SAAS,CAAC,CAAC,OAAO,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,WAAW,CAAC,EAAE,CAAC,CAAC;AACpE,oBAAA,eAAe,CAAC,CAAC,WAAW,KAAI;AAC5B,wBAAA,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,WAAW,CAAC;AACnC,wBAAA,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC;AAC7B,wBAAA,OAAO,MAAM;AACjB,oBAAA,CAAC,CAAC;gBACN,CAAC,EAAE,GAAG,CAAC;AAEP,gBAAA,OAAO,aAAa,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,WAAW,CAAC,EAAE,CAAC;YAC7D;AAEA,YAAA,OAAO,aAAa;AACxB,QAAA,CAAC,CAAC;;QAGF,UAAU,CAAC,MAAK;AACZ,YAAA,gBAAgB,CAAC,CAAC,IAAI,KAAK,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACrD,CAAC,EAAE,EAAE,CAAC;;AAGN,QAAA,MAAM,KAAK,GAAG,UAAU,CAAC,MAAK;AAC1B,YAAA,gBAAgB,CAAC,CAAC,IAAI,KAAI;AACtB,gBAAA,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC;AAChC,gBAAA,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;AACrB,gBAAA,OAAO,UAAU;AACrB,YAAA,CAAC,CAAC;;YAGF,UAAU,CAAC,MAAK;gBACZ,SAAS,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;AAClD,gBAAA,eAAe,CAAC,CAAC,IAAI,KAAI;AACrB,oBAAA,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC;AAC5B,oBAAA,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;AACjB,oBAAA,OAAO,MAAM;AACjB,gBAAA,CAAC,CAAC;AACF,gBAAA,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;YAChC,CAAC,EAAE,GAAG,CAAC;QACX,CAAC,EAAE,QAAQ,CAAC;QAEZ,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,EAAE,KAAK,CAAC;IACpC,CAAC,EAAE,EAAE,CAAC;;IAGN,MAAM,kBAAkB,GAAGA,iBAAW,CAAC,CAAC,OAAe,EAAE,MAAc,KAAI;AACvE,QAAA,eAAe,CAAC,CAAC,IAAI,KAAI;YACrB,MAAM,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC;;AAEvC,YAAA,IAAI,aAAa,KAAK,MAAM,EAAE;AAC1B,gBAAA,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC;AAC5B,gBAAA,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC;AAC3B,gBAAA,OAAO,MAAM;YACjB;AACA,YAAA,OAAO,IAAI;AACf,QAAA,CAAC,CAAC;IACN,CAAC,EAAE,EAAE,CAAC;;IAGNK,eAAS,CAAC,MAAK;AACX,QAAA,OAAO,MAAK;AACR,YAAA,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,IAAI,YAAY,CAAC,KAAK,CAAC,CAAC;AACvD,YAAA,SAAS,CAAC,OAAO,CAAC,KAAK,EAAE;AAC7B,QAAA,CAAC;IACL,CAAC,EAAE,EAAE,CAAC;AAEN,IAAA,MAAM,YAAY,GAAGT,aAAO,CACxB,OAAO,EAAE,SAAS,EAAE,CAAC,EACrB,CAAC,SAAS,CAAC,CACd;;AAGD,IAAA,MAAM,gBAAgB,GAAGA,aAAO,CAAC,MAAK;QAClC,MAAM,OAAO,GAAgC,EAAE;AAC/C,QAAA,MAAM,CAAC,OAAO,CAAC,KAAK,IAAG;YACnB,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE;AAC1B,gBAAA,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,EAAE;YAChC;YACA,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC;AACvC,QAAA,CAAC,CAAC;AACF,QAAA,OAAO,OAAO;AAClB,IAAA,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC;AAEZ,IAAA,QACIC,eAAA,CAAC,YAAY,CAAC,QAAQ,IAAC,KAAK,EAAE,YAAY,EAAA,QAAA,EAAA,CACrC,QAAQ,EACR,OAAO,MAAM,KAAK,WAAW,IAAIU,qBAAY,CAC1ChB,cAAA,CAAAoB,mBAAA,EAAA,EAAA,QAAA,EACK,MAAM,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE,cAAc,CAAC,KAAI;;oBAEjE,MAAM,aAAa,GAAG,QAAQ,CAAC,UAAU,CAAC,KAAK,CAAC;AAChD,oBAAA,MAAM,OAAO,GAAG,aAAa,GAAG,CAAC,GAAG,cAAc,CAAC,CAAC,OAAO,EAAE,GAAG,cAAc;oBAE9E,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,KAAK,KAAI;;wBAEhC,IAAI,MAAM,GAAG,CAAC;AACd,wBAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,EAAE;AAC5B,4BAAA,MAAM,SAAS,GAAG,OAAO,CAAC,CAAC,CAAC;AAC5B,4BAAA,MAAM,MAAM,GAAG,YAAY,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,IAAI,YAAY;AAC7D,4BAAA,MAAM,IAAI,MAAM,GAAG,aAAa;wBACpC;wBAEA,QACIpB,cAAA,CAAC,KAAK,EAAA,EAEF,IAAI,EAAE,KAAK,CAAC,IAAI,EAChB,OAAO,EAAE,KAAK,CAAC,OAAO,EACtB,QAAQ,EAAE,KAAK,CAAC,QAAQ,EACxB,SAAS,EAAE,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,EACtC,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,KAAK,CAAC,QAAQ,EACxB,OAAO,EAAE,KAAK,CAAC,EAAE,EACjB,cAAc,EAAE,kBAAkB,EAAA,EAR7B,KAAK,CAAC,EAAE,CASf;AAEV,oBAAA,CAAC,CAAC;gBACN,CAAC,CAAC,GACH,EACH,QAAQ,CAAC,IAAI,CAChB,CAAA,EAAA,CACmB;AAEhC;AAEA;;;;;;;;;;;;;AAaG;AACH,MAAM,QAAQ,GAAG,MAAwB;AACrC,IAAA,MAAM,OAAO,GAAGuB,gBAAU,CAAC,YAAY,CAAC;IACxC,IAAI,CAAC,OAAO,EAAE;AACV,QAAA,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC;IACpE;AACA,IAAA,OAAO,OAAO;AAClB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../src/components/foundation/icon/Icon.styles.ts","../../src/components/foundation/icon/Icon.tsx","../../src/utils/ui/components/foundation/text/getTextVariantStyles.utils.ts","../../src/utils/ui/components/foundation/text/getTruncateTextStyles.utils.ts","../../src/components/foundation/text/Text.styles.ts","../../src/utils/ui/components/foundation/text/parseTextWithBold.utils.ts","../../src/components/foundation/text/Text.tsx","../../src/utils/ui/components/data-display/chip/getChipColorStyles.utils.ts","../../src/utils/ui/components/data-display/chip/getChipSizeStyles.utils.ts","../../src/components/data-display/chip/Chip.styles.ts","../../src/utils/ui/components/data-display/chip/getChipContentSize.utils.ts","../../src/components/data-display/chip/Chip.tsx","../../src/constants/globalConstants.ts","../../src/utils/ui/components/data-display/avatar/getAvatarSizes.utils.ts","../../src/components/data-display/avatar/Avatar.styles.ts","../../src/components/data-display/avatar/Avatar.tsx","../../src/components/data-display/avatar/avatar-group/AvatarGroup.styles.ts","../../src/components/data-display/avatar/avatar-group/AvatarGroup.tsx","../../src/constants/animations.ts","../../src/components/data-display/skeleton/Skeleton.styles.ts","../../src/components/data-display/skeleton/Skeleton.tsx","../../src/utils/ui/components/actions/button/getButtonSizeStyles.utils.ts","../../src/utils/ui/components/actions/button/getButtonVariantStyles.utils.ts","../../src/components/actions/button/Button.styles.ts","../../src/components/actions/button/Button.tsx","../../src/utils/ui/components/actions/icon-button/getIconButtonSizeStyles.utils.ts","../../src/components/actions/icon-button/IconButton.styles.ts","../../src/components/actions/icon-button/IconButton.tsx","../../src/components/forms/form/Form.styles.ts","../../src/components/forms/form/Form.tsx","../../src/components/forms/input/Input.styles.ts","../../src/components/layout/stack/Stack.styles.ts","../../src/components/layout/stack/Stack.tsx","../../src/resources/icons/AlertCircleIcon.tsx","../../src/resources/icons/AlertTriangleIcon.tsx","../../src/resources/icons/CalendarIcon.tsx","../../src/resources/icons/CheckCircleIcon.tsx","../../src/resources/icons/ChevronDownIcon.tsx","../../src/resources/icons/ChevronLeftIcon.tsx","../../src/resources/icons/ChevronRightIcon.tsx","../../src/resources/icons/CloseIcon.tsx","../../src/resources/icons/EyeIcon.tsx","../../src/resources/icons/EyeOffIcon.tsx","../../src/resources/icons/InfoIcon.tsx","../../src/resources/icons/MoreHorizontalIcon.tsx","../../src/components/forms/input/Input.tsx","../../src/components/forms/textarea/TextArea.styles.ts","../../src/components/forms/textarea/TextArea.tsx","../../src/components/forms/select/Select.styles.ts","../../src/components/forms/select/SelectItem/SelectItem.styles.ts","../../src/components/forms/select/SelectItem/SelectItem.tsx","../../src/components/overlay/menu/Menu.styles.ts","../../src/hooks/useAnchorPosition.ts","../../src/hooks/useClickOutside.ts","../../src/hooks/useTransitionRender.ts","../../src/components/overlay/menu/Menu.tsx","../../src/components/overlay/menu/MenuGroup/MenuGroup.styles.ts","../../src/components/overlay/menu/MenuGroup/MenuGroup.tsx","../../src/components/overlay/menu/MenuItem/MenuItem.styles.ts","../../src/components/overlay/menu/MenuItem/MenuItem.tsx","../../src/components/forms/select/Select.tsx","../../src/components/forms/date-picker/calendar/calendar-grid/CalendarGrid.styles.ts","../../src/components/forms/date-picker/calendar/calendar-grid/CalendarGrid.tsx","../../src/components/forms/date-picker/calendar/calendar-header/CalendarHeader.styles.ts","../../src/components/forms/date-picker/calendar/calendar-header/CalendarHeader.tsx","../../src/components/forms/date-picker/calendar/Calendar.styles.ts","../../src/utils/ui/components/date-picker/datePicker.utils.ts","../../src/components/forms/date-picker/calendar/Calendar.tsx","../../src/components/forms/date-picker/DatePicker.styles.ts","../../src/components/forms/date-picker/DatePicker.tsx","../../src/components/layout/card/Card.styles.ts","../../src/components/layout/card/Card.tsx","../../src/components/layout/grid/Grid.styles.ts","../../src/components/layout/grid/Grid.tsx","../../src/components/layout/separator/Separator.styles.ts","../../src/components/layout/separator/Separator.tsx","../../src/components/layout/page-construction/page-section/PageSection.styles.ts","../../src/components/layout/page-construction/page-section/PageSection.tsx","../../src/components/layout/page-construction/page/Page.styles.ts","../../src/components/layout/page-construction/page/Page.tsx","../../src/components/overlay/accordion/Accordion.styles.ts","../../src/components/overlay/accordion/Accordion.tsx","../../src/utils/ui/components/overlay/alert/getAlertPositionStyles.utils.ts","../../src/utils/ui/components/overlay/alert/getAlertVariantColors.utils.ts","../../src/components/overlay/alert/Alert.styles.ts","../../src/utils/ui/components/overlay/alert/getAlertIcon.utils.tsx","../../src/components/overlay/alert/Alert.tsx","../../src/components/overlay/modal/Modal.styles.ts","../../src/components/overlay/modal/Modal.tsx","../../src/components/navigation/drawer-item/DrawerItem.styles.ts","../../src/components/navigation/drawer-item/DrawerItem.tsx","../../src/components/navigation/breadcrumb/Breadcrumb.styles.ts","../../src/components/navigation/breadcrumb/BreadcrumbEllipsis/BreadcrumbEllipsis.styles.ts","../../src/components/navigation/breadcrumb/BreadcrumbEllipsis/BreadcrumbEllipsis.tsx","../../src/components/navigation/breadcrumb/BreadcrumbSeparator/BreadcrumbSeparator.tsx","../../src/utils/ui/components/navigation/breadcrumb/insertSeparators.utils.tsx","../../src/utils/ui/components/navigation/breadcrumb/buildBreadcrumbChildren.utils.tsx","../../src/utils/ui/components/navigation/breadcrumb/flattenChildren.utils.ts","../../src/utils/ui/components/navigation/breadcrumb/isSeparator.utils.ts","../../src/components/navigation/breadcrumb/Breadcrumb.tsx","../../src/components/navigation/breadcrumb/BreadcrumbLink/BreadcrumbLink.styles.ts","../../src/components/navigation/breadcrumb/BreadcrumbLink/BreadcrumbLink.tsx","../../src/components/navigation/breadcrumb/BreadcrumbPage/BreadcrumbPage.styles.ts","../../src/components/navigation/breadcrumb/BreadcrumbPage/BreadcrumbPage.tsx","../../src/components/navigation/tabs/Tabs.styles.ts","../../src/components/navigation/tabs/Tabs.tsx","../../src/components/navigation/tabs/tab-item/TabItem.styles.ts","../../src/components/navigation/tabs/tab-item/TabItem.tsx","../../src/components/navigation/pagination/Pagination.styles.ts","../../src/components/navigation/pagination/Pagination.tsx","../../src/hooks/useAlert.tsx"],"sourcesContent":["import { Theme, createStyles } from '@aurora-ds/theme'\r\n\r\nexport const ICON_STYLES = createStyles((theme) => ({\r\n root: (\r\n size?: keyof Theme['fontSize'],\r\n color?: keyof Theme['colors'],\r\n backgroundColor?: keyof Theme['colors'],\r\n padding?: keyof Theme['spacing'],\r\n borderRadius?: keyof Theme['radius']\r\n ) => ({\r\n boxSizing: 'content-box',\r\n display: 'flex',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n overflow: 'hidden',\r\n transition: 'color 150ms ease-in-out',\r\n flexShrink: 0,\r\n lineHeight: 0,\r\n height: theme.fontSize[size ?? 'md'],\r\n width: theme.fontSize[size ?? 'md'],\r\n minWidth: theme.fontSize[size ?? 'md'],\r\n minHeight: theme.fontSize[size ?? 'md'],\r\n color: color ? theme.colors[color] : 'inherit',\r\n backgroundColor: backgroundColor ? theme.colors[backgroundColor] : undefined,\r\n padding: padding ? theme.spacing[padding] : 0,\r\n borderRadius: theme.radius[borderRadius ?? 'md'],\r\n }),\r\n}))\r\n","import { Children, cloneElement, FC, isValidElement, ReactElement } from 'react'\r\n\r\nimport { IconProps } from '@components/foundation/icon/Icon.props.ts'\r\nimport { ICON_STYLES } from '@components/foundation/icon/Icon.styles.ts'\r\n\r\n/**\r\n * Icon component - Wrapper for SVG icons with theme-aware styling\r\n *\r\n * **Features:**\r\n * - Theme-aware sizing via font sizes\r\n * - Color and fill support from theme\r\n * - Optional background with padding and border radius\r\n * - Transition animation on color changes\r\n *\r\n * **Usage:**\r\n * ```tsx\r\n * import { SomeIcon } from 'some-icon-library'\r\n *\r\n * <Icon size=\"md\" color=\"primary\">\r\n * <SomeIcon />\r\n * </Icon>\r\n * ```\r\n *\r\n * **With background:**\r\n * ```tsx\r\n * <Icon\r\n * size=\"lg\"\r\n * color=\"onPrimary\"\r\n * backgroundColor=\"primary\"\r\n * padding=\"sm\"\r\n * borderRadius=\"full\"\r\n * >\r\n * <SomeIcon />\r\n * </Icon>\r\n * ```\r\n */\r\nconst Icon: FC<IconProps> = ({\r\n children,\r\n size,\r\n color,\r\n backgroundColor,\r\n padding,\r\n borderRadius,\r\n ariaLabel,\r\n ariaLabelledBy,\r\n ariaDescribedBy,\r\n role,\r\n tabIndex,\r\n}) => {\r\n // Clone child element to apply width and height\r\n const child = Children.only(children)\r\n const styledChild = isValidElement(child)\r\n ? cloneElement(child as ReactElement<{ width?: string; height?: string }>, {\r\n width: '100%',\r\n height: '100%',\r\n })\r\n : child\r\n\r\n return (\r\n <div\r\n className={ICON_STYLES.root(size, color, backgroundColor, padding, borderRadius)}\r\n aria-label={ariaLabel}\r\n aria-labelledby={ariaLabelledBy}\r\n aria-describedby={ariaDescribedBy}\r\n role={role}\r\n tabIndex={tabIndex}\r\n >\r\n {styledChild}\r\n </div>\r\n )\r\n}\r\n\r\nIcon.displayName = 'Icon'\r\n\r\nexport default Icon\r\n","import { Theme } from '@aurora-ds/theme'\r\n\r\nimport { TextVariants, TextVariantStyle } from '@interfaces/text.types.ts'\r\n\r\n/**\r\n * Get text variant styles based on the theme\r\n * @param theme\r\n */\r\nexport const getTextVariantStyles = (theme: Theme): Record<TextVariants, TextVariantStyle> => ({\r\n h1: {\r\n tag: 'h1',\r\n fontSize: theme.fontSize.xl,\r\n fontWeight: theme.fontWeight.bold,\r\n lineHeight: theme.lineHeight.tight,\r\n },\r\n h2: {\r\n tag: 'h2',\r\n fontSize: theme.fontSize.lg,\r\n fontWeight: theme.fontWeight.bold,\r\n lineHeight: theme.lineHeight.tight,\r\n },\r\n h3: {\r\n tag: 'h3',\r\n fontSize: theme.fontSize.md,\r\n fontWeight: theme.fontWeight.semibold,\r\n lineHeight: theme.lineHeight.normal,\r\n },\r\n h4: {\r\n tag: 'h4',\r\n fontSize: theme.fontSize.md,\r\n fontWeight: theme.fontWeight.semibold,\r\n lineHeight: theme.lineHeight.normal,\r\n },\r\n h5: {\r\n tag: 'h5',\r\n fontSize: theme.fontSize.sm,\r\n fontWeight: theme.fontWeight.medium,\r\n lineHeight: theme.lineHeight.normal,\r\n },\r\n h6: {\r\n tag: 'h6',\r\n fontSize: theme.fontSize.sm,\r\n fontWeight: theme.fontWeight.medium,\r\n lineHeight: theme.lineHeight.normal,\r\n },\r\n p: {\r\n tag: 'p',\r\n fontSize: theme.fontSize.sm,\r\n fontWeight: theme.fontWeight.regular,\r\n lineHeight: theme.lineHeight.relaxed,\r\n },\r\n span: {\r\n tag: 'span',\r\n fontSize: theme.fontSize.sm,\r\n fontWeight: theme.fontWeight.regular,\r\n lineHeight: theme.lineHeight.normal,\r\n },\r\n label: {\r\n tag: 'label',\r\n fontSize: theme.fontSize.sm,\r\n fontWeight: theme.fontWeight.medium,\r\n lineHeight: theme.lineHeight.normal,\r\n },\r\n})\r\n","export const getTruncateTextStyles = (maxLines: number) => (\r\n maxLines === 1\r\n ? {\r\n whiteSpace: 'nowrap' as const,\r\n overflow: 'hidden',\r\n textOverflow: 'ellipsis',\r\n }\r\n : {\r\n overflow: 'hidden',\r\n textOverflow: 'ellipsis',\r\n display: '-webkit-box',\r\n WebkitLineClamp: maxLines,\r\n WebkitBoxOrient: 'vertical' as const,\r\n // Improve wrapping behavior for multi-line clamp compatibility\r\n whiteSpace: 'normal' as const,\r\n overflowWrap: 'break-word' as const,\r\n wordBreak: 'break-word' as const,\r\n lineClamp: maxLines,\r\n }\r\n)\r\n","import { createStyles } from '@aurora-ds/theme'\r\n\r\nimport { TextStyleParams } from '@components/foundation/text/Text.props.ts'\r\nimport { getTextVariantStyles } from '@utils/ui/components/foundation/text/getTextVariantStyles.utils.ts'\r\nimport { getTruncateTextStyles } from '@utils/ui/components/foundation/text/getTruncateTextStyles.utils.ts'\r\n\r\nexport const TEXT_STYLES = createStyles((theme) => {\r\n const variantStyles = getTextVariantStyles(theme)\r\n\r\n return {\r\n root: ({\r\n variant = 'span',\r\n color,\r\n fontSize,\r\n fontFamily,\r\n maxLines,\r\n underline,\r\n preserveWhitespace,\r\n }: TextStyleParams) => ({\r\n margin: 0,\r\n fontSize: fontSize ? theme.fontSize[fontSize] : variantStyles[variant].fontSize,\r\n fontWeight: variantStyles[variant].fontWeight,\r\n lineHeight: variantStyles[variant].lineHeight,\r\n color: color ? theme.colors[color] : 'inherit',\r\n cursor: 'inherit',\r\n fontFamily,\r\n ...(preserveWhitespace && { whiteSpace: 'pre-wrap' }),\r\n ...(underline && {\r\n textDecoration: 'underline',\r\n textUnderlineOffset: '3px',\r\n }),\r\n ...(maxLines && getTruncateTextStyles(maxLines)),\r\n }),\r\n }\r\n})\r\n","import { createElement, Fragment, ReactNode } from 'react'\r\n\r\n/**\r\n * Parses text content and converts **bold** syntax to <strong> elements\r\n * @param children - The content to parse (string or ReactNode)\r\n * @returns Parsed content with bold text wrapped in <strong> elements\r\n */\r\nexport const parseTextWithBold = (children: ReactNode): ReactNode => {\r\n if (typeof children !== 'string' || !children.includes('**')) {\r\n return children\r\n }\r\n\r\n const boldPattern = /\\*\\*(.+?)\\*\\*/g\r\n const parts: ReactNode[] = []\r\n let lastIndex = 0\r\n let match: RegExpExecArray | null\r\n\r\n while ((match = boldPattern.exec(children)) !== null) {\r\n if (match.index > lastIndex) {\r\n parts.push(children.slice(lastIndex, match.index))\r\n }\r\n\r\n parts.push(\r\n createElement('strong', { key: match.index }, match[1])\r\n )\r\n\r\n lastIndex = match.index + match[0].length\r\n }\r\n\r\n if (parts.length === 0) {\r\n return children\r\n }\r\n\r\n if (lastIndex < children.length) {\r\n parts.push(children.slice(lastIndex))\r\n }\r\n\r\n return createElement(Fragment, null, ...parts)\r\n}\r\n","import { useTheme } from '@aurora-ds/theme'\r\nimport { createElement, FC, useMemo } from 'react'\r\n\r\nimport { TextProps } from '@components/foundation/text/Text.props.ts'\r\nimport { TEXT_STYLES } from '@components/foundation/text/Text.styles.ts'\r\nimport { getTextVariantStyles } from '@utils/ui/components/foundation/text/getTextVariantStyles.utils.ts'\r\nimport { getTruncateTextStyles } from '@utils/ui/components/foundation/text/getTruncateTextStyles.utils.ts'\r\nimport { parseTextWithBold } from '@utils/ui/components/foundation/text/parseTextWithBold.utils.ts'\r\n\r\n/**\r\n * Text component - Renders semantic HTML elements based on variant\r\n *\r\n * **Variants:**\r\n * - `h1-h6`: Heading elements with appropriate styling\r\n * - `p`: Paragraph element with relaxed line height\r\n * - `span`: Inline text element (default)\r\n * - `label`: Label element with medium font weight\r\n *\r\n * **Features:**\r\n * - Automatic HTML tag selection based on variant\r\n * - Theme-aware colors\r\n * - Text truncation with `maxLines`\r\n * - Underline support\r\n * - Preserve whitespace with `preserveWhitespace` prop\r\n * - Bold text with **double asterisks** syntax\r\n */\r\nconst Text: FC<TextProps> = ({\r\n children,\r\n variant = 'span',\r\n color,\r\n fontSize,\r\n fontFamily,\r\n maxLines,\r\n underline,\r\n preserveWhitespace,\r\n ariaLabel,\r\n ariaLabelledBy,\r\n ariaDescribedBy,\r\n role,\r\n tabIndex,\r\n}) => {\r\n const theme = useTheme()\r\n const variantStyles = useMemo(() => getTextVariantStyles(theme), [theme])\r\n const tag = variantStyles[variant].tag\r\n const parsedChildren = useMemo(() => parseTextWithBold(children), [children])\r\n\r\n // Force inline truncate styles when needed (fix for multi-line clamp not applied in some envs)\r\n const truncateStyles = maxLines ? getTruncateTextStyles(maxLines) : undefined\r\n\r\n return createElement(\r\n tag,\r\n {\r\n className: TEXT_STYLES.root({ variant, color, fontSize, fontFamily, maxLines, underline, preserveWhitespace }),\r\n style: truncateStyles,\r\n 'aria-label': ariaLabel,\r\n 'aria-labelledby': ariaLabelledBy,\r\n 'aria-describedby': ariaDescribedBy,\r\n role,\r\n tabIndex,\r\n },\r\n parsedChildren\r\n )\r\n}\r\n\r\nText.displayName = 'Text'\r\n\r\nexport default Text\r\n","import { Theme } from '@aurora-ds/theme'\n\nimport { ChipStyleParams } from '@components/data-display/chip/Chip.props.ts'\n\nexport const getChipColorStyles = (\n theme: Theme,\n color: ChipStyleParams['color'],\n variant: ChipStyleParams['variant'],\n disabled: ChipStyleParams['disabled']\n) => {\n if (disabled) {\n return {\n filled: {\n backgroundColor: theme.colors.disabled,\n color: theme.colors.disabledText,\n borderColor: 'transparent',\n },\n outlined: {\n backgroundColor: 'transparent',\n color: theme.colors.disabledText,\n borderColor: theme.colors.disabled,\n },\n }[variant]\n }\n\n const colorMap = {\n default: {\n filled: {\n backgroundColor: theme.colors.surfaceHover,\n color: theme.colors.text,\n borderColor: 'transparent',\n },\n outlined: {\n backgroundColor: 'transparent',\n color: theme.colors.text,\n borderColor: theme.colors.border,\n },\n },\n primary: {\n filled: {\n backgroundColor: theme.colors.primary,\n color: theme.colors.onPrimary,\n borderColor: 'transparent',\n },\n outlined: {\n backgroundColor: 'transparent',\n color: theme.colors.primary,\n borderColor: theme.colors.primary,\n },\n },\n success: {\n filled: {\n backgroundColor: theme.colors.successSubtle,\n color: theme.colors.success,\n borderColor: 'transparent',\n },\n outlined: {\n backgroundColor: theme.colors.successSubtle,\n color: theme.colors.success,\n borderColor: theme.colors.success,\n },\n },\n warning: {\n filled: {\n backgroundColor: theme.colors.warningSubtle,\n color: theme.colors.warning,\n borderColor: 'transparent',\n },\n outlined: {\n backgroundColor: theme.colors.warningSubtle,\n color: theme.colors.warning,\n borderColor: theme.colors.warning,\n },\n },\n error: {\n filled: {\n backgroundColor: theme.colors.errorSubtle,\n color: theme.colors.error,\n borderColor: 'transparent',\n },\n outlined: {\n backgroundColor: theme.colors.errorSubtle,\n color: theme.colors.error,\n borderColor: theme.colors.error,\n },\n },\n info: {\n filled: {\n backgroundColor: theme.colors.infoSubtle,\n color: theme.colors.info,\n borderColor: 'transparent',\n },\n outlined: {\n backgroundColor: theme.colors.infoSubtle,\n color: theme.colors.info,\n borderColor: theme.colors.info,\n },\n },\n }\n return colorMap[color][variant]\n}\n","import { Theme } from '@aurora-ds/theme'\r\n\r\nimport { ChipStyleParams } from '@components/data-display/chip/Chip.props.ts'\r\n\r\n/**\r\n * Get chip size styles based on the theme, size and icon-only state\r\n * @param theme - Theme object\r\n * @param size - Chip size\r\n * @param isIconOnly - Whether the chip has only an icon (no label)\r\n */\r\nexport const getChipSizeStyles = (\r\n theme: Theme,\r\n size: ChipStyleParams['size'],\r\n isIconOnly: ChipStyleParams['isIconOnly']\r\n) => {\r\n const sizeMap = {\r\n '2xs': {\r\n iconOnly: { padding: theme.spacing.xs, fontSize: theme.fontSize['2xs'] },\r\n withLabel: { padding: `${theme.spacing.xs} ${theme.spacing.sm}`, fontSize: theme.fontSize['2xs'] },\r\n },\r\n xs: {\r\n iconOnly: { padding: theme.spacing.xs, fontSize: theme.fontSize.xs },\r\n withLabel: { padding: `${theme.spacing.xs} ${theme.spacing.sm}`, fontSize: theme.fontSize.xs },\r\n },\r\n sm: {\r\n iconOnly: { padding: theme.spacing.xs, fontSize: theme.fontSize.sm },\r\n withLabel: { padding: `${theme.spacing.xs} ${theme.spacing.sm}`, fontSize: theme.fontSize.sm },\r\n },\r\n md: {\r\n iconOnly: { padding: theme.spacing.sm, fontSize: theme.fontSize.md },\r\n withLabel: { padding: `${theme.spacing.sm} ${theme.spacing.md}`, fontSize: theme.fontSize.sm },\r\n },\r\n lg: {\r\n iconOnly: { padding: theme.spacing.md, fontSize: theme.fontSize.lg },\r\n withLabel: { padding: `${theme.spacing.sm} ${theme.spacing.lg}`, fontSize: theme.fontSize.md },\r\n },\r\n }\r\n\r\n return isIconOnly ? sizeMap[size].iconOnly : sizeMap[size].withLabel\r\n}\r\n","import { createStyles } from '@aurora-ds/theme'\r\n\r\nimport { ChipStyleParams } from '@components/data-display/chip/Chip.props'\r\nimport { getChipColorStyles } from '@utils/ui/components/data-display/chip/getChipColorStyles.utils'\r\nimport { getChipSizeStyles } from '@utils/ui/components/data-display/chip/getChipSizeStyles.utils'\r\n\r\nexport const CHIP_STYLES = createStyles((theme) => ({\r\n root: ({ variant, color, size, isIconOnly, disabled, gap, radius }: ChipStyleParams) => {\r\n const colorStyles = getChipColorStyles(theme, color, variant, disabled)\r\n const sizeStyles = getChipSizeStyles(theme, size, isIconOnly)\r\n\r\n return {\r\n display: 'flex',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n gap: gap ? theme.spacing[gap] : theme.spacing.sm,\r\n borderRadius: radius ? theme.radius[radius] : theme.radius.md,\r\n border: variant === 'outlined' ? '1px solid' : 'none',\r\n aspectRatio: isIconOnly ? 1 : undefined,\r\n height: 'fit-content',\r\n width: 'fit-content',\r\n fontFamily: 'inherit',\r\n fontWeight: theme.fontWeight.medium,\r\n whiteSpace: 'nowrap',\r\n boxSizing: 'border-box',\r\n ...sizeStyles,\r\n ...colorStyles,\r\n }\r\n },\r\n}))\r\n","import { BaseFontSize } from '@aurora-ds/theme'\n\nimport { ChipStyleParams } from '@components/data-display/chip/Chip.props.ts'\n\n/**\n * Get chip content size based on the chip size\n * @param size\n * @constructor\n */\nexport const getChipContentSize = (\n size: ChipStyleParams['size'],\n): keyof BaseFontSize => {\n const sizeMap = {\n '2xs': '2xs',\n xs: 'xs',\n sm: 'sm',\n md: 'sm',\n lg: 'md',\n }\n\n return sizeMap[size] as keyof BaseFontSize\n}\n","import { FC } from 'react'\n\nimport { ChipProps } from '@components/data-display/chip/Chip.props'\nimport { CHIP_STYLES } from '@components/data-display/chip/Chip.styles'\nimport { Icon } from '@components/foundation/icon'\nimport Text from '@components/foundation/text/Text.tsx'\nimport { getChipContentSize } from '@utils/ui/components/data-display/chip/getChipContentSize.utils.ts'\n\n/**\n * Chip component\n *\n * A compact element for displaying information, tags, or actions.\n *\n * **Variants:**\n * - `filled`: Solid background (default)\n * - `outlined`: Border only\n *\n * **Colors:**\n * - `default`, `primary`, `success`, `warning`, `error`, `info`\n */\nconst Chip: FC<ChipProps> = ({\n label,\n icon,\n variant = 'filled',\n color = 'default',\n size = 'md',\n gap,\n radius,\n disabled = false,\n ariaLabel,\n ariaLabelledBy,\n ariaDescribedBy,\n role,\n tabIndex,\n}) => {\n const isIconOnly = Boolean(icon) && !label\n\n return (\n <span\n className={CHIP_STYLES.root({\n variant,\n color,\n size,\n isIconOnly,\n disabled,\n gap,\n radius,\n })}\n aria-label={ariaLabel}\n aria-labelledby={ariaLabelledBy}\n aria-describedby={ariaDescribedBy}\n role={role}\n tabIndex={tabIndex}\n >\n {icon && (\n <Icon\n size={getChipContentSize(size)}\n >\n {icon}\n </Icon>\n )}\n {label && (\n <Text\n variant={'label'}\n fontSize={getChipContentSize(size)}\n >\n {label}\n </Text>\n )}\n </span>\n )\n}\n\nChip.displayName = 'Chip'\n\nexport default Chip\n","export const BUTTON_SIZE = 36\r\nexport const ALERT_MAX_WIDTH = 320\r\nexport const MENU_ITEM_SIZE = 32\r\nexport const DRAWER_ITEM_HEIGHT = 32\r\nexport const DEFAULT_TRANSITION_DURATION_MS = 150\r\n","import { Theme } from '@aurora-ds/theme'\r\n\r\nimport { BUTTON_SIZE } from '@constants/globalConstants.ts'\r\nimport { AvatarSize } from '@interfaces/avatar.types.ts'\r\n\r\n/**\r\n * Get avatar sizes configuration based on the theme\r\n * @param theme\r\n */\r\nexport const getAvatarSizes = (theme: Theme): Record<AvatarSize, { size: number; fontSize: keyof Theme['fontSize']; overlap: string }> => ({\r\n small: { size: BUTTON_SIZE - 8, fontSize: 'xs', overlap: `-${theme.spacing.md}` },\r\n medium: { size: BUTTON_SIZE, fontSize: 'sm', overlap: `-${theme.spacing.md}` },\r\n large: { size: BUTTON_SIZE + 8, fontSize: 'sm', overlap: `-${theme.spacing.lg}` },\r\n})\r\n","import { createStyles } from '@aurora-ds/theme'\r\n\r\nimport { AvatarStyleParams } from '@components/data-display/avatar/Avatar.props.ts'\r\nimport { getAvatarSizes } from '@utils/ui/components/data-display/avatar/getAvatarSizes.utils.ts'\r\n\r\n/**\r\n * Avatar styles using createStyles from @aurora-ds/theme\r\n */\r\nexport const AVATAR_STYLES = createStyles((theme) => {\r\n const AVATAR_SIZES = getAvatarSizes(theme)\r\n\r\n return {\r\n root: ({ hasImage = false, clickable = false, size = 'medium', color, borderColor, backgroundColor }: AvatarStyleParams & { clickable?: boolean }) => {\r\n const sizeConfig = AVATAR_SIZES[size]\r\n return {\r\n width: sizeConfig.size,\r\n height: sizeConfig.size,\r\n borderRadius: theme.radius.full,\r\n backgroundColor: backgroundColor || (hasImage ? 'transparent' : theme.colors.surfaceHover),\r\n display: 'flex',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n cursor: clickable ? 'pointer' : 'default',\r\n border: hasImage && !borderColor ? 'none' : `1px solid ${borderColor || theme.colors.border}`,\r\n overflow: 'hidden',\r\n flexShrink: 0,\r\n color: color || theme.colors.textSecondary,\r\n fontWeight: theme.fontWeight.medium,\r\n }\r\n },\r\n image: {\r\n width: '100%',\r\n height: '100%',\r\n objectFit: 'cover',\r\n },\r\n }\r\n})\r\n","import { useTheme } from '@aurora-ds/theme'\r\nimport { FC } from 'react'\r\n\r\nimport { AvatarProps } from '@components/data-display/avatar/Avatar.props.ts'\r\nimport { AVATAR_STYLES } from '@components/data-display/avatar/Avatar.styles.ts'\r\nimport Text from '@components/foundation/text/Text.tsx'\r\nimport { getAvatarSizes } from '@utils/ui/components/data-display/avatar/getAvatarSizes.utils.ts'\r\n\r\n/**\r\n * Avatar component\r\n *\r\n * Displays a user's avatar with optional image or fallback text.\r\n */\r\nconst Avatar: FC<AvatarProps> = ({\r\n image,\r\n label,\r\n onClick,\r\n size = 'medium',\r\n color,\r\n borderColor,\r\n backgroundColor,\r\n}) => {\r\n // hooks\r\n const theme = useTheme()\r\n\r\n // variables\r\n const AVATAR_SIZES = getAvatarSizes(theme)\r\n const hasImage = !!image\r\n const clickable = !!onClick\r\n\r\n return (\r\n <div\r\n className={AVATAR_STYLES.root({ hasImage, clickable, size, color, borderColor, backgroundColor })}\r\n onClick={(event) => {\r\n if (onClick) {\r\n onClick(event)\r\n }\r\n }}\r\n >\r\n {hasImage ? (\r\n <img\r\n src={image}\r\n alt={label || 'Avatar'}\r\n className={AVATAR_STYLES.image}\r\n />\r\n ) : (\r\n <Text\r\n variant={'label'}\r\n fontSize={AVATAR_SIZES[size].fontSize}\r\n >\r\n {label || '?'}\r\n </Text>\r\n )}\r\n </div>\r\n )\r\n}\r\n\r\nAvatar.displayName = 'Avatar'\r\n\r\nexport default Avatar\r\n","import { createStyles } from '@aurora-ds/theme'\n\nimport { AvatarSize } from '@/interfaces'\nimport { getAvatarSizes } from '@utils/ui/components/data-display/avatar/getAvatarSizes.utils.ts'\n\n/**\n * AvatarGroup styles using createStyles from @aurora-ds/theme\n */\nexport const AVATAR_GROUP_STYLES = createStyles((theme) => {\n const AVATAR_SIZES = getAvatarSizes(theme)\n\n return {\n root: {\n display: 'flex',\n alignItems: 'center',\n },\n child: ({ size = 'medium' }: { size?: AvatarSize }) => ({\n marginLeft: AVATAR_SIZES[size].overlap,\n }),\n firstChild: {\n marginLeft: '0',\n },\n more: ({ size = 'medium' }: { size?: AvatarSize }) => {\n const sizeConfig = AVATAR_SIZES[size]\n return {\n width: sizeConfig.size,\n height: sizeConfig.size,\n borderRadius: theme.radius.full,\n backgroundColor: theme.colors.surfaceHover,\n border: `1px solid ${theme.colors.border}`,\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n color: theme.colors.textSecondary,\n fontSize: sizeConfig.fontSize,\n fontWeight: theme.fontWeight.medium,\n flexShrink: 0,\n marginLeft: AVATAR_SIZES[size].overlap,\n }\n },\n }\n})\n","import { useTheme } from '@aurora-ds/theme'\nimport { FC, Children } from 'react'\n\nimport { AvatarGroupProps } from '@/components'\nimport { AVATAR_GROUP_STYLES } from '@components/data-display/avatar/avatar-group/AvatarGroup.styles.ts'\nimport Text from '@components/foundation/text/Text.tsx'\nimport { getAvatarSizes } from '@utils/ui/components/data-display/avatar/getAvatarSizes.utils.ts'\n\n/**\n * AvatarGroup component\n *\n * Groups multiple avatars with overlapping display and optional limit.\n */\nconst AvatarGroup: FC<AvatarGroupProps> = ({ children, limit, size = 'medium' }) => {\n // hooks\n const theme = useTheme()\n\n // variables\n const AVATAR_SIZES = getAvatarSizes(theme)\n const childArray = Children.toArray(children)\n const displayedChildren = limit ? childArray.slice(0, limit) : childArray\n const moreCount = limit && childArray.length > limit ? childArray.length - limit : 0\n\n return (\n <div className={AVATAR_GROUP_STYLES.root}>\n {displayedChildren.map((child, index) => (\n <div\n key={index}\n className={index === 0 ? AVATAR_GROUP_STYLES.firstChild : AVATAR_GROUP_STYLES.child({ size })}\n >\n {child}\n </div>\n ))}\n {moreCount > 0 && (\n <div className={AVATAR_GROUP_STYLES.more({ size })}>\n <Text\n variant={'label'}\n fontSize={AVATAR_SIZES[size].fontSize}\n >\n +\n {moreCount}\n </Text>\n </div>\n )}\n </div>\n )\n}\n\nAvatarGroup.displayName = 'AvatarGroup'\n\nexport default AvatarGroup\n","import { keyframes } from '@aurora-ds/theme'\r\n\r\nexport const shimmerAnimation = keyframes({\r\n '0%': {\r\n backgroundPosition: '-200% 0',\r\n },\r\n '100%': {\r\n backgroundPosition: '200% 0',\r\n },\r\n})\r\n","import { CSSProperties, createStyles, Theme } from '@aurora-ds/theme'\r\n\r\nimport { shimmerAnimation } from '@constants/animations'\r\n\r\nexport const SKELETON_STYLES = createStyles((theme) => ({\r\n root: (width?: CSSProperties['width'], height?: CSSProperties['height'], borderRadius?: keyof Theme['radius']) => ({\r\n width,\r\n height,\r\n borderRadius: borderRadius ? theme.radius[borderRadius] : theme.radius.md,\r\n background: `linear-gradient(90deg, ${theme.colors.surfaceActive} 25%, ${theme.colors.surfaceHover} 50%, ${theme.colors.surfaceActive} 75%)`,\r\n backgroundSize: '200% 100%',\r\n animation: `${shimmerAnimation} 1.2s ease-in-out infinite`,\r\n }),\r\n}))\r\n","import { FC } from 'react'\r\n\r\nimport { SkeletonProps } from '@components/data-display/skeleton/Skeleton.props'\r\nimport { SKELETON_STYLES } from '@components/data-display/skeleton/Skeleton.styles'\r\n\r\nconst Skeleton: FC<SkeletonProps> = ({\r\n width,\r\n height,\r\n borderRadius\r\n}) => {\r\n return (\r\n <div\r\n className={SKELETON_STYLES.root(width, height, borderRadius)}\r\n />\r\n )\r\n}\r\n\r\nSkeleton.displayName = 'Skeleton'\r\n\r\nexport default Skeleton\r\n","import { Theme } from '@aurora-ds/theme'\r\n\r\nimport { BUTTON_SIZE } from '@constants/globalConstants.ts'\r\nimport { IconButtonSizes } from '@interfaces/button.types.ts'\r\n\r\ntype ButtonSizeConfig = {\r\n height: number\r\n padding: {\r\n vertical: keyof Theme['spacing']\r\n horizontal: keyof Theme['spacing']\r\n }\r\n fontSize: keyof Theme['fontSize']\r\n}\r\n\r\nexport const getButtonSizeStyles = (): Record<IconButtonSizes, ButtonSizeConfig> => ({\r\n small: {\r\n height: BUTTON_SIZE - 8,\r\n padding: {\r\n vertical: 'xs',\r\n horizontal: 'sm'\r\n },\r\n fontSize: 'sm'\r\n },\r\n medium: {\r\n height: BUTTON_SIZE,\r\n padding: {\r\n vertical: 'sm',\r\n horizontal: 'md'\r\n },\r\n fontSize: 'sm'\r\n },\r\n large: {\r\n height: BUTTON_SIZE + 8,\r\n padding: {\r\n vertical: 'sm',\r\n horizontal: 'lg'\r\n },\r\n fontSize: 'md'\r\n }\r\n})\r\n","import { colors, Theme } from '@aurora-ds/theme'\r\n\r\nimport { ButtonVariants, ButtonVariantStyle } from '@interfaces/button.types.ts'\r\n\r\n/**\r\n * Get button variant styles based on the theme\r\n * @param theme\r\n */\r\nexport const getButtonVariantStyles = (theme: Theme): Record<ButtonVariants, ButtonVariantStyle> => {\r\n // Shared base styles\r\n const transparentBase = {\r\n backgroundColor: colors.transparent,\r\n color: theme.colors.primary,\r\n }\r\n\r\n const surfaceStates = {\r\n hover: { backgroundColor: theme.colors.surfaceHover },\r\n pressed: { backgroundColor: theme.colors.surfaceActive },\r\n }\r\n\r\n const baseDisabled = {\r\n color: theme.colors.disabledText,\r\n cursor: 'not-allowed',\r\n opacity: theme.opacity.high\r\n }\r\n\r\n return {\r\n contained: {\r\n default: {\r\n backgroundColor: theme.colors.primary,\r\n color: theme.colors.onPrimary,\r\n border: 'none',\r\n },\r\n hover: { backgroundColor: theme.colors.primaryHover },\r\n pressed: { backgroundColor: theme.colors.primaryActive },\r\n disabled: { ...baseDisabled, backgroundColor: theme.colors.disabled },\r\n textColor: 'onPrimary',\r\n },\r\n outlined: {\r\n default: {\r\n ...transparentBase,\r\n border: `1px solid ${theme.colors.primary}`,\r\n },\r\n ...surfaceStates,\r\n disabled: { ...baseDisabled, backgroundColor: 'transparent', borderColor: theme.colors.disabled },\r\n textColor: 'primary',\r\n },\r\n text: {\r\n default: { ...transparentBase, border: 'none' },\r\n ...surfaceStates,\r\n disabled: { ...baseDisabled, backgroundColor: 'transparent' },\r\n textColor: 'primary',\r\n },\r\n destructive: {\r\n default: {\r\n backgroundColor: theme.colors.error,\r\n color: theme.colors.onError,\r\n border: 'none',\r\n },\r\n hover: { backgroundColor: theme.colors.errorHover },\r\n pressed: { backgroundColor: theme.colors.error },\r\n disabled: { ...baseDisabled, backgroundColor: theme.colors.disabled },\r\n textColor: 'onError',\r\n },\r\n link: {\r\n default: { ...transparentBase, border: 'none', textDecoration: 'underline', textDecorationColor: 'transparent', textUnderlineOffset: '3px' },\r\n hover: { backgroundColor: 'transparent', textDecorationColor: 'currentColor' },\r\n pressed: { backgroundColor: 'transparent', textDecorationColor: 'currentColor', color: theme.colors.linkActive },\r\n disabled: { ...baseDisabled, backgroundColor: 'transparent', textDecoration: 'none' },\r\n textColor: 'link',\r\n },\r\n }\r\n}\r\n","import { createStyles } from '@aurora-ds/theme'\r\n\r\nimport { ButtonStyleParams } from '@components/actions/button/Button.props.ts'\r\nimport { getButtonSizeStyles } from '@utils/ui/components/actions/button/getButtonSizeStyles.utils.ts'\r\nimport { getButtonVariantStyles } from '@utils/ui/components/actions/button/getButtonVariantStyles.utils.ts'\r\n\r\n/**\r\n * Button styles using createStyles from @aurora-ds/theme\r\n *\r\n * Override via className with createStyles:\r\n * ```tsx\r\n * const myStyles = createStyles((theme) => ({\r\n * custom: {\r\n * backgroundColor: theme.colors.accent,\r\n * ':hover': { backgroundColor: theme.colors.accentHover }\r\n * }\r\n * }))\r\n * <Button className={myStyles.custom} label=\"Custom\" />\r\n * ```\r\n */\r\nexport const BUTTON_STYLES = createStyles((theme) => {\r\n const variantStyles = getButtonVariantStyles(theme)\r\n const sizeStyles = getButtonSizeStyles()\r\n\r\n return {\r\n root: ({\r\n variant = 'contained',\r\n active = false,\r\n textColor,\r\n backgroundColor,\r\n hoverBackgroundColor,\r\n activeBackgroundColor,\r\n size = 'medium'\r\n }: ButtonStyleParams) => {\r\n const sizeConfig = sizeStyles[size]\r\n const overrides = textColor ? {\r\n ...(variant !== 'contained' && { color: theme.colors[textColor] }),\r\n ...(variant === 'outlined' && { border: `1px solid ${theme.colors[textColor]}` }),\r\n } : {}\r\n const backgroundOverride = backgroundColor ? { backgroundColor: theme.colors[backgroundColor] } : {}\r\n const hoverBackgroundOverride = hoverBackgroundColor ? { backgroundColor: theme.colors[hoverBackgroundColor] } : {}\r\n const activeBackgroundOverride = activeBackgroundColor ? { backgroundColor: theme.colors[activeBackgroundColor] } : {}\r\n return {\r\n display: 'inline-flex',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n boxSizing: 'border-box',\r\n gap: theme.spacing.sm,\r\n padding: `${theme.spacing[sizeConfig.padding.vertical]} ${theme.spacing[sizeConfig.padding.horizontal]}`,\r\n borderRadius: theme.radius.md,\r\n cursor: 'pointer',\r\n transition: `background-color ${theme.transition.fast}, color ${theme.transition.fast}, text-decoration-color ${theme.transition.fast}`,\r\n minHeight: sizeConfig.height,\r\n maxHeight: sizeConfig.height,\r\n fontFamily: 'inherit',\r\n ...variantStyles[variant].default,\r\n ...(active && variantStyles[variant].pressed),\r\n ':hover': {\r\n ...variantStyles[variant].hover,\r\n ...hoverBackgroundOverride,\r\n },\r\n ':active': {\r\n ...variantStyles[variant].pressed,\r\n ...activeBackgroundOverride,\r\n },\r\n ':disabled': variantStyles[variant].disabled,\r\n ...overrides,\r\n ...backgroundOverride,\r\n }\r\n },\r\n }\r\n})\r\n","import { useTheme } from '@aurora-ds/theme'\r\nimport { FC } from 'react'\r\n\r\nimport { ButtonProps } from '@components/actions/button/Button.props.ts'\r\nimport { BUTTON_STYLES } from '@components/actions/button/Button.styles.ts'\r\nimport { Icon } from '@components/foundation/icon'\r\nimport { Text } from '@components/foundation/text'\r\nimport { getButtonSizeStyles } from '@utils/ui/components/actions/button/getButtonSizeStyles.utils.ts'\r\nimport { getButtonVariantStyles } from '@utils/ui/components/actions/button/getButtonVariantStyles.utils.ts'\r\n\r\n/**\r\n * Button component\r\n *\r\n * **Variants:**\r\n * - `contained`: Solid background button (default)\r\n * - `outlined`: Border only button\r\n * - `text`: Text only button without background\r\n */\r\nconst Button: FC<ButtonProps> = ({\r\n label,\r\n startIcon,\r\n endIcon,\r\n variant = 'contained',\r\n active = false,\r\n onClick,\r\n disabled,\r\n type = 'button',\r\n textColor: customTextColor,\r\n backgroundColor,\r\n hoverBackgroundColor,\r\n activeBackgroundColor,\r\n size = 'medium',\r\n ariaLabel,\r\n ariaLabelledBy,\r\n ariaDescribedBy,\r\n role,\r\n tabIndex,\r\n}) => {\r\n const theme = useTheme()\r\n const variantStyles = getButtonVariantStyles(theme)\r\n const sizeStyles = getButtonSizeStyles()\r\n const textColor = disabled ? 'disabledText' : (customTextColor ?? variantStyles[variant].textColor)\r\n\r\n return (\r\n <button\r\n onClick={onClick}\r\n disabled={disabled}\r\n type={type}\r\n className={BUTTON_STYLES.root({ variant, active, textColor: customTextColor, backgroundColor, hoverBackgroundColor, activeBackgroundColor, size })}\r\n aria-label={ariaLabel}\r\n aria-labelledby={ariaLabelledBy}\r\n aria-describedby={ariaDescribedBy}\r\n role={role}\r\n tabIndex={tabIndex}\r\n >\r\n {startIcon && (\r\n <Icon color={textColor}>\r\n {startIcon}\r\n </Icon>\r\n )}\r\n <Text\r\n variant={'label'}\r\n color={textColor}\r\n fontSize={sizeStyles[size].fontSize}\r\n >\r\n {label}\r\n </Text>\r\n {endIcon && (\r\n <Icon color={textColor}>\r\n {endIcon}\r\n </Icon>\r\n )}\r\n </button>\r\n )\r\n}\r\n\r\nButton.displayName = 'Button'\r\n\r\nexport default Button\r\n","import { Theme } from '@aurora-ds/theme'\r\n\r\nimport { BUTTON_SIZE } from '@constants/globalConstants.ts'\r\nimport { IconButtonSizes } from '@interfaces/button.types.ts'\r\n\r\ntype IconButtonSizeConfig = {\r\n size: number\r\n padding: keyof Theme['spacing']\r\n iconSize: keyof Theme['fontSize']\r\n}\r\n\r\nexport const getIconButtonSizeStyles = (): Record<IconButtonSizes, IconButtonSizeConfig> => ({\r\n small: {\r\n size: BUTTON_SIZE - 8,\r\n padding: 'xs',\r\n iconSize: 'md'\r\n },\r\n medium: {\r\n size: BUTTON_SIZE,\r\n padding: 'sm',\r\n iconSize: 'lg'\r\n },\r\n large: {\r\n size: BUTTON_SIZE + 8,\r\n padding: 'sm',\r\n iconSize: 'xl'\r\n }\r\n})\r\n","import { createStyles } from '@aurora-ds/theme'\r\n\r\nimport { IconButtonStyleParams } from '@components/actions/icon-button/IconButton.props.ts'\r\nimport { getButtonVariantStyles } from '@utils/ui/components/actions/button/getButtonVariantStyles.utils.ts'\r\nimport { getIconButtonSizeStyles } from '@utils/ui/components/actions/icon-button/getIconButtonSizeStyles.utils.ts'\r\n\r\nexport const ICON_BUTTON_STYLES = createStyles((theme) => {\r\n const variantStyles = getButtonVariantStyles(theme)\r\n const sizeStyles = getIconButtonSizeStyles()\r\n\r\n return {\r\n root: ({\r\n variant = 'contained',\r\n active = false,\r\n size = 'medium',\r\n textColor,\r\n backgroundColor,\r\n hoverBackgroundColor,\r\n activeBackgroundColor\r\n }: IconButtonStyleParams) => {\r\n const sizeConfig = sizeStyles[size]\r\n const overrides = textColor ? {\r\n ...(variant !== 'contained' && { color: theme.colors[textColor] }),\r\n ...(variant === 'outlined' && { border: `1px solid ${theme.colors[textColor]}` }),\r\n } : {}\r\n const backgroundOverride = backgroundColor ? { backgroundColor: theme.colors[backgroundColor] } : {}\r\n const hoverBackgroundOverride = hoverBackgroundColor ? { backgroundColor: theme.colors[hoverBackgroundColor] } : {}\r\n const activeBackgroundOverride = activeBackgroundColor ? { backgroundColor: theme.colors[activeBackgroundColor] } : {}\r\n return {\r\n display: 'inline-flex',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n boxSizing: 'border-box',\r\n gap: theme.spacing.sm,\r\n padding: theme.spacing[sizeConfig.padding],\r\n borderRadius: theme.radius.md,\r\n cursor: 'pointer',\r\n transition: `background-color ${theme.transition.fast}, color ${theme.transition.fast}`,\r\n minHeight: sizeConfig.size,\r\n maxHeight: sizeConfig.size,\r\n minWidth: sizeConfig.size,\r\n maxWidth: sizeConfig.size,\r\n fontFamily: 'inherit',\r\n ...variantStyles[variant].default,\r\n ...(active && variantStyles[variant].pressed),\r\n ':hover': {\r\n ...variantStyles[variant].hover,\r\n ...hoverBackgroundOverride,\r\n },\r\n ':active': {\r\n ...variantStyles[variant].pressed,\r\n ...activeBackgroundOverride,\r\n },\r\n ':disabled': variantStyles[variant].disabled,\r\n ...overrides,\r\n ...backgroundOverride,\r\n }\r\n },\r\n }\r\n})\r\n","import { useTheme } from '@aurora-ds/theme'\r\nimport { FC } from 'react'\r\n\r\nimport { IconButtonProps } from '@components/actions/icon-button/IconButton.props.ts'\r\nimport { ICON_BUTTON_STYLES } from '@components/actions/icon-button/IconButton.styles.ts'\r\nimport Icon from '@components/foundation/icon/Icon.tsx'\r\nimport { getButtonVariantStyles } from '@utils/ui/components/actions/button/getButtonVariantStyles.utils.ts'\r\nimport { getIconButtonSizeStyles } from '@utils/ui/components/actions/icon-button/getIconButtonSizeStyles.utils.ts'\r\n\r\nconst IconButton: FC<IconButtonProps> = ({\r\n icon,\r\n variant = 'contained',\r\n active = false,\r\n type = 'button',\r\n onClick,\r\n disabled,\r\n textColor: customTextColor,\r\n backgroundColor,\r\n hoverBackgroundColor,\r\n activeBackgroundColor,\r\n size = 'medium',\r\n ariaLabel,\r\n ariaLabelledBy,\r\n ariaDescribedBy,\r\n role,\r\n tabIndex,\r\n}) => {\r\n const theme = useTheme()\r\n const variantStyles = getButtonVariantStyles(theme)\r\n const textColor = disabled ? 'disabledText' : (customTextColor ?? variantStyles[variant].textColor)\r\n const iconSize = getIconButtonSizeStyles()[size].iconSize\r\n\r\n return (\r\n <button\r\n onClick={onClick}\r\n disabled={disabled}\r\n type={type}\r\n className={ICON_BUTTON_STYLES.root({ variant, active, size, textColor: customTextColor, backgroundColor, hoverBackgroundColor, activeBackgroundColor })}\r\n aria-label={ariaLabel}\r\n aria-labelledby={ariaLabelledBy}\r\n aria-describedby={ariaDescribedBy}\r\n role={role}\r\n tabIndex={tabIndex}\r\n >\r\n <Icon\r\n color={textColor}\r\n size={iconSize}\r\n >\r\n {icon}\r\n </Icon>\r\n </button>\r\n )\r\n}\r\n\r\nIconButton.displayName = 'IconButton'\r\n\r\nexport default IconButton\r\n","import { createStyles } from '@aurora-ds/theme'\r\n\r\nexport const FORM_STYLES = createStyles(() => ({\r\n root: {\r\n display: 'contents',\r\n },\r\n}))\r\n","import { FC, FormEvent, memo, useCallback } from 'react'\r\n\r\nimport { FormProps } from '@components/forms/form/Form.props'\r\nimport { FORM_STYLES } from '@components/forms/form/Form.styles'\r\n\r\n/**\r\n * Form component - A transparent wrapper for form elements with automatic preventDefault handling\r\n */\r\nconst Form: FC<FormProps> = ({\r\n children,\r\n onSubmit,\r\n ariaLabel,\r\n}) => {\r\n const handleSubmit = useCallback((e: FormEvent) => {\r\n e.preventDefault()\r\n onSubmit?.(e)\r\n }, [onSubmit])\r\n\r\n return (\r\n <form\r\n onSubmit={handleSubmit}\r\n className={FORM_STYLES.root}\r\n aria-label={ariaLabel}\r\n >\r\n {children}\r\n </form>\r\n )\r\n}\r\n\r\nForm.displayName = 'Form'\r\n\r\nexport default memo(Form)\r\n","import { createStyles } from '@aurora-ds/theme'\n\nimport { InputStyleParams } from '@components/forms/input/Input.props.ts'\nimport { BUTTON_SIZE } from '@constants/globalConstants.ts'\n\nimport type { CSSProperties } from 'react'\n\n/**\n * Input styles using createStyles from @aurora-ds/theme\n */\nexport const INPUT_STYLES = createStyles((theme) => ({\n container: ({ width }: { width?: CSSProperties['width'] }) => ({\n position: 'relative',\n display: 'block',\n width: width ?? '100%',\n '&:hover:not(.disabled) input': {\n borderColor: theme.colors.primaryHover,\n },\n }),\n startIcon: {\n position: 'absolute',\n left: theme.spacing.md,\n top: '50%',\n transform: 'translateY(-50%)',\n pointerEvents: 'none',\n },\n endIcon: {\n position: 'absolute',\n right: theme.spacing.sm,\n top: '50%',\n transform: 'translateY(-50%)',\n zIndex: 1,\n },\n endIconShifted: {\n position: 'absolute',\n right: `calc(${theme.spacing.md} + 1.5rem)`,\n top: '50%',\n transform: 'translateY(-50%)',\n zIndex: 1,\n },\n passwordToggle: {\n position: 'absolute',\n right: theme.spacing.xs,\n top: '50%',\n transform: 'translateY(-50%)',\n zIndex: 2,\n },\n root: ({ disabled = false, hasStartIcon = false, hasEndIcon = false, hasPasswordToggle = false }: InputStyleParams) => ({\n boxSizing: 'border-box',\n width: '100%',\n padding: `${theme.spacing.sm} ${theme.spacing.md}`,\n paddingLeft: hasStartIcon ? `calc(${theme.spacing.md} + 1.5rem)` : theme.spacing.md,\n paddingRight: `calc(${theme.spacing.sm} + ${hasEndIcon ? '1.5rem' : '0px'} + ${hasPasswordToggle ? '1.5rem' : '0px'} + ${hasEndIcon && hasPasswordToggle ? theme.spacing.xs : '0px'})`,\n border: `1px solid ${theme.colors.border}`,\n borderRadius: theme.radius.md,\n fontSize: theme.fontSize.sm,\n fontFamily: 'inherit',\n backgroundColor: theme.colors.surface,\n color: theme.colors.text,\n transition: `border-color ${theme.transition.fast}`,\n outline: 'none',\n minHeight: BUTTON_SIZE,\n maxHeight: BUTTON_SIZE,\n lineHeight: theme.lineHeight.none,\n textOverflow: 'ellipsis',\n overflow: 'hidden',\n whiteSpace: 'nowrap',\n ':focus': {\n borderColor: theme.colors.primary,\n },\n '::placeholder': {\n color: theme.colors.textTertiary,\n fontSize: theme.fontSize.sm,\n },\n ...(disabled && {\n color: theme.colors.disabledText,\n cursor: 'not-allowed',\n opacity: theme.opacity.high\n }),\n }),\n}))\n","import { createStyles } from '@aurora-ds/theme'\r\n\r\nimport { StackStyleParams } from '@components/layout/stack/Stack.props.ts'\r\n\r\n/**\r\n * Stack styles using createStyles from @aurora-ds/theme\r\n */\r\nexport const STACK_STYLES = createStyles((theme) => ({\r\n root: ({\r\n direction,\r\n gap,\r\n width,\r\n height,\r\n align,\r\n justify,\r\n wrap,\r\n padding,\r\n }: StackStyleParams) => ({\r\n display: 'flex',\r\n flexDirection: direction,\r\n gap: gap ? theme.spacing[gap] : undefined,\r\n width,\r\n height,\r\n alignItems: align,\r\n justifyContent: justify,\r\n flexWrap: wrap,\r\n padding: padding ? theme.spacing[padding] : undefined,\r\n }),\r\n}))\r\n","import { FC } from 'react'\r\n\r\nimport { StackProps } from '@components/layout/stack/Stack.props.ts'\r\nimport { STACK_STYLES } from '@components/layout/stack/Stack.styles.ts'\r\n\r\n/**\r\n * Stack component\r\n *\r\n * A flexbox container for laying out children in a row or column.\r\n *\r\n * **Direction:**\r\n * - `row`: Horizontal layout (default)\r\n * - `column`: Vertical layout\r\n */\r\nconst Stack: FC<StackProps> = ({\r\n children,\r\n direction = 'row',\r\n gap = 'sm',\r\n width,\r\n height,\r\n align = 'center',\r\n justify,\r\n wrap,\r\n padding,\r\n ariaLabel,\r\n ariaLabelledBy,\r\n ariaDescribedBy,\r\n role,\r\n tabIndex,\r\n}) => {\r\n return (\r\n <div\r\n className={STACK_STYLES.root({\r\n direction,\r\n gap,\r\n width,\r\n height,\r\n align,\r\n justify,\r\n wrap,\r\n padding,\r\n })}\r\n aria-label={ariaLabel}\r\n aria-labelledby={ariaLabelledBy}\r\n aria-describedby={ariaDescribedBy}\r\n role={role}\r\n tabIndex={tabIndex}\r\n >\r\n {children}\r\n </div>\r\n )\r\n}\r\n\r\nStack.displayName = 'Stack'\r\n\r\nexport default Stack\r\n","import { JSX } from 'react'\r\n\r\nexport const AlertCircleIcon = (): JSX.Element => {\r\n return (\r\n <svg\r\n xmlns={'http://www.w3.org/2000/svg'}\r\n width={'100%'}\r\n height={'100%'}\r\n viewBox={'0 0 24 24'}\r\n fill={'none'}\r\n stroke={'currentColor'}\r\n strokeWidth={'2'}\r\n strokeLinecap={'round'}\r\n strokeLinejoin={'round'}\r\n >\r\n <circle\r\n cx={'12'}\r\n cy={'12'}\r\n r={'10'}\r\n />\r\n <line\r\n x1={'12'}\r\n y1={'8'}\r\n x2={'12'}\r\n y2={'12'}\r\n />\r\n <line\r\n x1={'12'}\r\n y1={'16'}\r\n x2={'12.01'}\r\n y2={'16'}\r\n />\r\n </svg>\r\n )\r\n}\r\n","import { JSX } from 'react'\r\n\r\nexport const AlertTriangleIcon = (): JSX.Element => {\r\n return (\r\n <svg\r\n xmlns={'http://www.w3.org/2000/svg'}\r\n width={'100%'}\r\n height={'100%'}\r\n viewBox={'0 0 24 24'}\r\n fill={'none'}\r\n stroke={'currentColor'}\r\n strokeWidth={'2'}\r\n strokeLinecap={'round'}\r\n strokeLinejoin={'round'}\r\n >\r\n <path\r\n d={'M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z'}\r\n />\r\n <line\r\n x1={'12'}\r\n y1={'9'}\r\n x2={'12'}\r\n y2={'13'}\r\n />\r\n <line\r\n x1={'12'}\r\n y1={'17'}\r\n x2={'12.01'}\r\n y2={'17'}\r\n />\r\n </svg>\r\n )\r\n}\r\n","export const CalendarIcon = () => {\r\n return (\r\n <svg\r\n xmlns={'http://www.w3.org/2000/svg'}\r\n width={'24'}\r\n height={'24'}\r\n viewBox={'0 0 24 24'}\r\n fill={'none'}\r\n stroke={'currentColor'}\r\n strokeWidth={'2'}\r\n strokeLinecap={'round'}\r\n strokeLinejoin={'round'}\r\n >\r\n <path d={'M8 2v4'} />\r\n <path d={'M16 2v4'} />\r\n <rect\r\n width={'18'}\r\n height={'18'}\r\n x={'3'}\r\n y={'4'}\r\n rx={'2'}\r\n />\r\n <path d={'M3 10h18'} />\r\n </svg>\r\n )\r\n}\r\n","import { JSX } from 'react'\r\n\r\nexport const CheckCircleIcon = (): JSX.Element => {\r\n return (\r\n <svg\r\n xmlns={'http://www.w3.org/2000/svg'}\r\n width={'100%'}\r\n height={'100%'}\r\n viewBox={'0 0 24 24'}\r\n fill={'none'}\r\n stroke={'currentColor'}\r\n strokeWidth={'2'}\r\n strokeLinecap={'round'}\r\n strokeLinejoin={'round'}\r\n >\r\n <circle\r\n cx={'12'}\r\n cy={'12'}\r\n r={'10'}\r\n />\r\n <polyline\r\n points={'9 12 11 14 15 10'}\r\n />\r\n </svg>\r\n )\r\n}\r\n","export const ChevronDownIcon = () => {\r\n return (\r\n <svg\r\n xmlns={'http://www.w3.org/2000/svg'}\r\n width={'100%'}\r\n height={'100%'}\r\n viewBox={'0 0 24 24'}\r\n fill={'none'}\r\n stroke={'currentColor'}\r\n strokeWidth={'2'}\r\n strokeLinecap={'round'}\r\n strokeLinejoin={'round'}\r\n className={'lucide lucide-chevron-down-icon lucide-chevron-down'}\r\n >\r\n <path d={'m6 9 6 6 6-6'}/>\r\n </svg>\r\n\r\n )\r\n}\r\n","export const ChevronLeftIcon = () => {\r\n return (\r\n <svg\r\n xmlns={'http://www.w3.org/2000/svg'}\r\n width={'24'}\r\n height={'24'}\r\n viewBox={'0 0 24 24'}\r\n fill={'none'}\r\n stroke={'currentColor'}\r\n strokeWidth={'2'}\r\n strokeLinecap={'round'}\r\n strokeLinejoin={'round'}\r\n className={'lucide lucide-chevron-left-icon lucide-chevron-left'}\r\n >\r\n <path d={'m15 18-6-6 6-6'}/>\r\n </svg>\r\n )\r\n}\r\n","export const ChevronRightIcon = () => {\r\n return (\r\n <svg\r\n xmlns={'http://www.w3.org/2000/svg'}\r\n width={'24'}\r\n height={'24'}\r\n viewBox={'0 0 24 24'}\r\n fill={'none'}\r\n stroke={'currentColor'}\r\n strokeWidth={'2'}\r\n strokeLinecap={'round'}\r\n strokeLinejoin={'round'}\r\n className={'lucide lucide-chevron-right-icon lucide-chevron-right'}\r\n >\r\n <path d={'m9 18 6-6-6-6'}/>\r\n </svg>\r\n\r\n )\r\n}\r\n","import { FC } from 'react'\r\n\r\nexport const CloseIcon: FC = () => (\r\n <svg\r\n width={'16'}\r\n height={'16'}\r\n viewBox={'0 0 16 16'}\r\n fill={'none'}\r\n xmlns={'http://www.w3.org/2000/svg'}\r\n >\r\n <path\r\n d={'M12 4L4 12M4 4l8 8'}\r\n stroke={'currentColor'}\r\n strokeWidth={'2'}\r\n strokeLinecap={'round'}\r\n strokeLinejoin={'round'}\r\n />\r\n </svg>\r\n)\r\n","export const EyeIcon = () => {\r\n return (\r\n <svg\r\n xmlns={'http://www.w3.org/2000/svg'}\r\n width={'24'}\r\n height={'24'}\r\n viewBox={'0 0 24 24'}\r\n fill={'none'}\r\n stroke={'currentColor'}\r\n strokeWidth={'2'}\r\n strokeLinecap={'round'}\r\n strokeLinejoin={'round'}\r\n className={'lucide lucide-eye-icon lucide-eye'}\r\n >\r\n <path\r\n d={'M2.062 12.348a1 1 0 0 1 0-.696 10.75 10.75 0 0 1 19.876 0 1 1 0 0 1 0 .696 10.75 10.75 0 0 1-19.876 0'}\r\n />\r\n <circle\r\n cx={'12'}\r\n cy={'12'}\r\n r={'3'}\r\n />\r\n </svg>\r\n )\r\n}\r\n","export const EyeOffIcon = () => {\r\n return (\r\n <svg\r\n xmlns={'http://www.w3.org/2000/svg'}\r\n width={'24'}\r\n height={'24'}\r\n viewBox={'0 0 24 24'}\r\n fill={'none'}\r\n stroke={'currentColor'}\r\n strokeWidth={'2'}\r\n strokeLinecap={'round'}\r\n strokeLinejoin={'round'}\r\n className={'lucide lucide-eye-off-icon lucide-eye-off'}\r\n >\r\n <path d={'M10.733 5.076a10.744 10.744 0 0 1 11.205 6.575 1 1 0 0 1 0 .696 10.747 10.747 0 0 1-1.444 2.49'}/>\r\n <path d={'M14.084 14.158a3 3 0 0 1-4.242-4.242'}/>\r\n <path d={'M17.479 17.499a10.75 10.75 0 0 1-15.417-5.151 1 1 0 0 1 0-.696 10.75 10.75 0 0 1 4.446-5.143'}/>\r\n <path d={'m2 2 20 20'}/>\r\n </svg>\r\n )\r\n}\r\n","export const InfoIcon = () => {\r\n return (\r\n <svg\r\n xmlns={'http://www.w3.org/2000/svg'}\r\n width={'100%'}\r\n height={'100%'}\r\n viewBox={'0 0 24 24'}\r\n fill={'none'}\r\n stroke={'currentColor'}\r\n strokeWidth={'2'}\r\n strokeLinecap={'round'}\r\n strokeLinejoin={'round'}\r\n >\r\n <circle\r\n cx={'12'}\r\n cy={'12'}\r\n r={'10'}\r\n />\r\n <line\r\n x1={'12'}\r\n y1={'16'}\r\n x2={'12'}\r\n y2={'12'}\r\n />\r\n <line\r\n x1={'12'}\r\n y1={'8'}\r\n x2={'12.01'}\r\n y2={'8'}\r\n />\r\n </svg>\r\n )\r\n}\r\n","export const MoreHorizontalIcon = () => {\r\n return (\r\n <svg\r\n xmlns={'http://www.w3.org/2000/svg'}\r\n width={'24'}\r\n height={'24'}\r\n viewBox={'0 0 24 24'}\r\n fill={'none'}\r\n stroke={'currentColor'}\r\n strokeWidth={'2'}\r\n strokeLinecap={'round'}\r\n strokeLinejoin={'round'}\r\n className={'lucide lucide-ellipsis-icon lucide-ellipsis'}\r\n >\r\n <circle\r\n cx={'12'}\r\n cy={'12'}\r\n r={'1'}\r\n />\r\n <circle\r\n cx={'19'}\r\n cy={'12'}\r\n r={'1'}\r\n />\r\n <circle\r\n cx={'5'}\r\n cy={'12'}\r\n r={'1'}\r\n />\r\n </svg>\r\n )\r\n}\r\n","import { forwardRef, ChangeEvent, useState, memo } from 'react'\r\n\r\nimport { IconButton } from '@components/actions/icon-button'\r\nimport { InputProps } from '@components/forms/input/Input.props.ts'\r\nimport { INPUT_STYLES } from '@components/forms/input/Input.styles.ts'\r\nimport { Icon } from '@components/foundation/icon'\r\nimport { Text } from '@components/foundation/text'\r\nimport { Stack } from '@components/layout/stack'\r\nimport { EyeIcon, EyeOffIcon } from '@resources/Icons'\r\n\r\n/**\r\n * Input component\r\n */\r\nconst Input = forwardRef<HTMLInputElement, InputProps>(({\r\n value,\r\n onChange,\r\n label,\r\n mandatory = false,\r\n placeholder,\r\n disabled = false,\r\n type = 'text',\r\n ariaLabel,\r\n startIcon,\r\n endIcon,\r\n width,\r\n}, ref) => {\r\n const [showPassword, setShowPassword] = useState(false)\r\n\r\n const handleChange = (event: ChangeEvent<HTMLInputElement>) => {\r\n onChange(event.target.value)\r\n }\r\n\r\n const inputType = type === 'password' ? (showPassword ? 'text' : 'password') : type\r\n const hasPasswordToggle = type === 'password'\r\n\r\n return (\r\n <Stack\r\n direction={'column'}\r\n gap={'xs'}\r\n align={'stretch'}\r\n width={width ?? '100%'}\r\n >\r\n {label && (\r\n <Stack\r\n direction={'row'}\r\n gap={'xs'}\r\n align={'center'}\r\n >\r\n <Text\r\n variant={'label'}\r\n fontSize={'sm'}\r\n >\r\n {label}\r\n </Text>\r\n {mandatory && (\r\n <Text\r\n variant={'label'}\r\n fontSize={'sm'}\r\n color={'error'}\r\n >\r\n *\r\n </Text>\r\n )}\r\n </Stack>\r\n )}\r\n <div\r\n className={`${INPUT_STYLES.container({ width })} ${disabled ? 'disabled' : ''}`}\r\n >\r\n <input\r\n ref={ref}\r\n type={inputType}\r\n value={value}\r\n onChange={handleChange}\r\n placeholder={placeholder}\r\n disabled={disabled}\r\n className={INPUT_STYLES.root({ disabled, hasStartIcon: !!startIcon, hasEndIcon: !!endIcon, hasPasswordToggle })}\r\n aria-label={ariaLabel || label}\r\n />\r\n {startIcon && (\r\n <div className={INPUT_STYLES.startIcon}>\r\n <Icon\r\n color={'textTertiary'}\r\n >\r\n {startIcon}\r\n </Icon>\r\n </div>\r\n )}\r\n {endIcon && (\r\n <div className={hasPasswordToggle ? INPUT_STYLES.endIconShifted : INPUT_STYLES.endIcon}>\r\n <Icon\r\n color={'textTertiary'}\r\n >\r\n {endIcon}\r\n </Icon>\r\n </div>\r\n )}\r\n {hasPasswordToggle && (\r\n <div className={INPUT_STYLES.passwordToggle}>\r\n <IconButton\r\n icon={showPassword ? <EyeOffIcon /> : <EyeIcon />}\r\n onClick={() => setShowPassword(!showPassword)}\r\n disabled={disabled}\r\n ariaLabel={ariaLabel || label}\r\n variant={'text'}\r\n size={'small'}\r\n textColor={'textSecondary'}\r\n />\r\n </div>\r\n )}\r\n </div>\r\n </Stack>\r\n )\r\n})\r\n\r\nInput.displayName = 'Input'\r\n\r\nexport default memo(Input)\r\n","import { createStyles } from '@aurora-ds/theme'\r\n\r\nimport { TextAreaStyleParams } from '@components/forms/textarea/TextArea.props.ts'\r\n\r\nimport type { CSSProperties } from 'react'\r\n\r\n/**\r\n * TextArea styles using createStyles from @aurora-ds/theme\r\n */\r\nexport const TEXTAREA_STYLES = createStyles((theme) => ({\r\n container: ({ width }: { width?: CSSProperties['width'] }) => ({\r\n position: 'relative',\r\n display: 'inline-block',\r\n width: width ?? '100%',\r\n '&:hover:not(.disabled) textarea': {\r\n borderColor: theme.colors.primaryHover,\r\n },\r\n }),\r\n root: ({ disabled = false }: TextAreaStyleParams) => ({\r\n boxSizing: 'border-box',\r\n width: '100%',\r\n padding: `${theme.spacing.sm} ${theme.spacing.md}`,\r\n border: `1px solid ${theme.colors.border}`,\r\n borderRadius: theme.radius.md,\r\n fontSize: theme.fontSize.sm,\r\n fontFamily: 'inherit',\r\n backgroundColor: theme.colors.surface,\r\n color: theme.colors.text,\r\n transition: `border-color ${theme.transition.fast}`,\r\n outline: 'none',\r\n lineHeight: theme.lineHeight.normal,\r\n resize: 'none',\r\n overflow: 'hidden',\r\n ':focus': {\r\n borderColor: theme.colors.primary,\r\n },\r\n '::placeholder': {\r\n color: theme.colors.textTertiary,\r\n fontSize: theme.fontSize.sm,\r\n textOverflow: 'ellipsis',\r\n overflow: 'hidden',\r\n whiteSpace: 'nowrap',\r\n },\r\n ...(disabled && {\r\n color: theme.colors.disabledText,\r\n cursor: 'not-allowed',\r\n opacity: theme.opacity.high\r\n }),\r\n }),\r\n}))\r\n","import { forwardRef, ChangeEvent, memo, useEffect, useRef, useCallback } from 'react'\r\n\r\nimport { TextAreaProps } from '@components/forms/textarea/TextArea.props.ts'\r\nimport { TEXTAREA_STYLES } from '@components/forms/textarea/TextArea.styles.ts'\r\nimport { Text } from '@components/foundation/text'\r\nimport { Stack } from '@components/layout/stack'\r\n\r\n/**\r\n * TextArea component with auto-expanding height based on content\r\n */\r\nconst TextArea = forwardRef<HTMLTextAreaElement, TextAreaProps>(({\r\n value,\r\n onChange,\r\n label,\r\n mandatory = false,\r\n placeholder,\r\n disabled = false,\r\n ariaLabel,\r\n width,\r\n minRows = 3,\r\n maxRows,\r\n}, ref) => {\r\n const internalRef = useRef<HTMLTextAreaElement>(null)\r\n const textareaRef = (ref as React.RefObject<HTMLTextAreaElement>) || internalRef\r\n\r\n const adjustHeight = useCallback(() => {\r\n const textarea = textareaRef.current\r\n if (textarea) {\r\n // Reset height to calculate the correct scrollHeight\r\n textarea.style.height = 'auto'\r\n // Set minHeight based on minRows\r\n const lineHeight = parseInt(getComputedStyle(textarea).lineHeight) || 20\r\n const minHeight = lineHeight * minRows\r\n const maxHeight = maxRows ? lineHeight * maxRows : Infinity\r\n // Set the height to the greater of minHeight or scrollHeight, but capped at maxHeight\r\n const newHeight = Math.min(Math.max(minHeight, textarea.scrollHeight), maxHeight)\r\n textarea.style.height = `${newHeight}px`\r\n // Enable scrolling if content exceeds maxHeight\r\n textarea.style.overflowY = textarea.scrollHeight > maxHeight ? 'auto' : 'hidden'\r\n }\r\n }, [minRows, maxRows, textareaRef])\r\n\r\n useEffect(() => {\r\n adjustHeight()\r\n }, [value, adjustHeight])\r\n\r\n const handleChange = (event: ChangeEvent<HTMLTextAreaElement>) => {\r\n onChange(event.target.value)\r\n }\r\n\r\n return (\r\n <Stack\r\n direction={'column'}\r\n gap={'xs'}\r\n align={'stretch'}\r\n width={width ?? '100%'}\r\n >\r\n {label && (\r\n <Stack\r\n direction={'row'}\r\n gap={'xs'}\r\n align={'center'}\r\n >\r\n <Text\r\n variant={'label'}\r\n fontSize={'sm'}\r\n >\r\n {label}\r\n </Text>\r\n {mandatory && (\r\n <Text\r\n variant={'label'}\r\n fontSize={'sm'}\r\n color={'error'}\r\n >\r\n *\r\n </Text>\r\n )}\r\n </Stack>\r\n )}\r\n <div\r\n className={`${TEXTAREA_STYLES.container({ width })} ${disabled ? 'disabled' : ''}`}\r\n >\r\n <textarea\r\n ref={textareaRef}\r\n value={value}\r\n onChange={handleChange}\r\n placeholder={placeholder}\r\n disabled={disabled}\r\n className={TEXTAREA_STYLES.root({ disabled })}\r\n aria-label={ariaLabel || label}\r\n rows={minRows}\r\n />\r\n </div>\r\n </Stack>\r\n )\r\n})\r\n\r\nTextArea.displayName = 'TextArea'\r\n\r\nexport default memo(TextArea)\r\n","import { createStyles } from '@aurora-ds/theme'\r\n\r\nimport { SelectStyleParams } from '@components/forms/select/Select.props.ts'\r\nimport { BUTTON_SIZE } from '@constants/globalConstants.ts'\r\n\r\n/**\r\n * Select styles using createStyles from @aurora-ds/theme\r\n */\r\nexport const SELECT_STYLES = createStyles((theme) => ({\r\n root: ({\r\n disabled = false,\r\n width\r\n }: SelectStyleParams) => ({\r\n position: 'relative',\r\n display: 'inline-flex',\r\n alignItems: 'center',\r\n justifyContent: 'space-between',\r\n boxSizing: 'border-box',\r\n width: width ?? '100%',\r\n padding: `${theme.spacing.sm} ${theme.spacing.md}`,\r\n border: `1px solid ${theme.colors.border}`,\r\n borderRadius: theme.radius.md,\r\n fontSize: theme.fontSize.md,\r\n fontFamily: 'inherit',\r\n backgroundColor: theme.colors.surface,\r\n color: theme.colors.text,\r\n cursor: disabled ? 'not-allowed' : 'pointer',\r\n transition: `border-color ${theme.transition.fast}`,\r\n outline: 'none',\r\n minHeight: BUTTON_SIZE,\r\n maxHeight: BUTTON_SIZE,\r\n gap: theme.spacing.lg,\r\n lineHeight: theme.lineHeight.none,\r\n textOverflow: 'ellipsis',\r\n overflow: 'hidden',\r\n whiteSpace: 'nowrap',\r\n ...(disabled && {\r\n color: theme.colors.disabled,\r\n cursor: 'not-allowed',\r\n opacity: theme.opacity.high\r\n }),\r\n ...(!disabled && {\r\n ':hover': {\r\n borderColor: theme.colors.primaryHover,\r\n },\r\n }),\r\n }),\r\n trigger: {\r\n display: 'flex',\r\n alignItems: 'center',\r\n gap: theme.spacing.sm,\r\n flex: 1\r\n },\r\n value: {\r\n flex: 1,\r\n fontSize: theme.fontSize.md,\r\n color: theme.colors.text\r\n },\r\n placeholder: {\r\n flex: 1,\r\n fontSize: theme.fontSize.md,\r\n color: theme.colors.textSecondary\r\n }\r\n}))\r\n","import { createStyles } from '@aurora-ds/theme'\r\n\r\nimport { SelectItemStyleParams } from '@components/forms/select/SelectItem/SelectItem.props'\r\nimport { MENU_ITEM_SIZE } from '@constants/globalConstants.ts'\r\n\r\n/**\r\n * SelectItem styles using createStyles from @aurora-ds/theme\r\n */\r\nexport const SELECT_ITEM_STYLES = createStyles((theme) => ({\r\n root: ({\r\n isSelected = false,\r\n disabled = false\r\n }: SelectItemStyleParams) => ({\r\n display: 'flex',\r\n alignItems: 'center',\r\n gap: theme.spacing.sm,\r\n padding: theme.spacing.sm,\r\n borderRadius: theme.radius.sm,\r\n backgroundColor: isSelected ? theme.colors.primary : theme.colors.surface,\r\n outline: 'none',\r\n border: 'none',\r\n cursor: disabled ? 'not-allowed' : 'pointer',\r\n minHeight: MENU_ITEM_SIZE,\r\n maxHeight: MENU_ITEM_SIZE,\r\n flexShrink: 0,\r\n transition: 'background-color 150ms ease-in-out',\r\n color: disabled ? theme.colors.disabled : (isSelected ? theme.colors.surface : theme.colors.text),\r\n opacity: disabled ? 0.5 : 1,\r\n ':hover': {\r\n backgroundColor: disabled ? theme.colors.surface : (isSelected ? theme.colors.primary : theme.colors.surfaceHover),\r\n },\r\n })\r\n}))\r\n","import { FC } from 'react'\r\n\r\nimport { SelectItemProps } from '@components/forms/select/SelectItem/SelectItem.props'\r\nimport { SELECT_ITEM_STYLES } from '@components/forms/select/SelectItem/SelectItem.styles'\r\nimport { Text } from '@components/foundation/text'\r\n\r\n/**\r\n * SelectItem component for use inside Select dropdown\r\n */\r\nconst SelectItem: FC<SelectItemProps> = ({\r\n option,\r\n isSelected = false,\r\n onSelect\r\n}) => {\r\n const handleClick = () => {\r\n if (!option.disabled && onSelect) {\r\n onSelect(option.value)\r\n }\r\n }\r\n\r\n return (\r\n <button\r\n className={SELECT_ITEM_STYLES.root({ isSelected, disabled: option.disabled })}\r\n onClick={handleClick}\r\n role={'option'}\r\n aria-selected={isSelected}\r\n >\r\n <Text\r\n variant={'label'}\r\n maxLines={1}\r\n >\r\n {option.label}\r\n </Text>\r\n </button>\r\n )\r\n}\r\n\r\nSelectItem.displayName = 'SelectItem'\r\n\r\nexport { SelectItem }\r\n","import { createStyles } from '@aurora-ds/theme'\r\nimport { CSSProperties } from 'react'\r\n\r\nimport { DEFAULT_TRANSITION_DURATION_MS, MENU_ITEM_SIZE } from '@constants/globalConstants'\r\nimport { AnchorOrigin, AnchorPosition } from '@hooks/useAnchorPosition.types'\r\n\r\nexport const MENU_STYLES = createStyles((theme) => ({\r\n root: (isFadingIn: boolean, anchorOrigin: AnchorOrigin, position: AnchorPosition, width?: CSSProperties['width']) => ({\r\n position: 'fixed',\r\n zIndex: 9999999,\r\n marginTop: theme.spacing.xs,\r\n backgroundColor: theme.colors.surface,\r\n borderRadius: theme.radius.md,\r\n border: `1px solid ${theme.colors.border}`,\r\n boxShadow: theme.shadows.md,\r\n minWidth: 150,\r\n maxHeight: MENU_ITEM_SIZE * 8,\r\n overflowY: 'auto',\r\n width,\r\n opacity: isFadingIn ? 1 : 0,\r\n transform: isFadingIn ? 'scale(1)' : 'scale(0.95)',\r\n transformOrigin: anchorOrigin === 'right' ? 'top right' : 'top left',\r\n transition: `opacity ${DEFAULT_TRANSITION_DURATION_MS}ms ease-out, transform ${DEFAULT_TRANSITION_DURATION_MS}ms ease-out`,\r\n top: position?.top ?? 0,\r\n left: position?.left ?? 0,\r\n visibility: position ? 'visible' : 'hidden',\r\n }),\r\n}))\r\n","import { RefObject, useCallback, useLayoutEffect, useState } from 'react'\r\n\r\nimport { AnchorOrigin, AnchorPosition } from '@hooks/useAnchorPosition.types'\r\n\r\ntype UseAnchorPositionParams = {\r\n anchor: HTMLElement | null\r\n menuRef: RefObject<HTMLDivElement | null>\r\n anchorOrigin?: AnchorOrigin\r\n isVisible: boolean\r\n}\r\n\r\nconst VIEWPORT_PADDING = 8\r\n\r\n/**\r\n * Hook pour calculer la position d'un élément par rapport à son ancre\r\n * @param anchor - Élément HTML servant d'ancre\r\n * @param menuRef - Référence vers l'élément à positionner\r\n * @param anchorOrigin - Origine de l'ancrage ('left' ou 'right')\r\n * @param isVisible - Si l'élément est visible (pour recalculer la position)\r\n */\r\nexport const useAnchorPosition = ({\r\n anchor,\r\n menuRef,\r\n anchorOrigin = 'right',\r\n isVisible\r\n}: UseAnchorPositionParams): AnchorPosition => {\r\n const [position, setPosition] = useState<AnchorPosition>(null)\r\n\r\n const calculatePosition = useCallback(() => {\r\n if (!anchor || !isVisible) {\r\n setPosition(null)\r\n return\r\n }\r\n\r\n const anchorRect = anchor.getBoundingClientRect()\r\n const menuElement = menuRef.current\r\n const menuWidth = menuElement?.offsetWidth || 150\r\n const menuHeight = menuElement?.offsetHeight || 200\r\n\r\n const viewportWidth = window.innerWidth\r\n const viewportHeight = window.innerHeight\r\n\r\n // Calculer la position horizontale initiale\r\n let left = anchorOrigin === 'right'\r\n ? anchorRect.right - menuWidth\r\n : anchorRect.left\r\n\r\n // Calculer la position verticale initiale (sous l'ancre)\r\n let top = anchorRect.bottom\r\n\r\n // Ajuster si le menu dépasse à droite\r\n if (left + menuWidth > viewportWidth - VIEWPORT_PADDING) {\r\n left = viewportWidth - menuWidth - VIEWPORT_PADDING\r\n }\r\n\r\n // Ajuster si le menu dépasse à gauche\r\n if (left < VIEWPORT_PADDING) {\r\n left = VIEWPORT_PADDING\r\n }\r\n\r\n // Ajuster si le menu dépasse en bas\r\n if (top + menuHeight > viewportHeight - VIEWPORT_PADDING) {\r\n // Essayer de placer le menu au-dessus de l'ancre\r\n const topAbove = anchorRect.top - menuHeight\r\n if (topAbove >= VIEWPORT_PADDING) {\r\n top = topAbove\r\n } else {\r\n // Si pas assez de place au-dessus, placer au maximum en bas\r\n top = viewportHeight - menuHeight - VIEWPORT_PADDING\r\n }\r\n }\r\n\r\n setPosition({ top, left })\r\n }, [anchor, anchorOrigin, isVisible, menuRef])\r\n\r\n useLayoutEffect(() => {\r\n calculatePosition()\r\n }, [calculatePosition])\r\n\r\n useLayoutEffect(() => {\r\n if (!isVisible) {return}\r\n\r\n const handleReposition = () => {\r\n calculatePosition()\r\n }\r\n\r\n window.addEventListener('resize', handleReposition)\r\n window.addEventListener('scroll', handleReposition, true)\r\n\r\n return () => {\r\n window.removeEventListener('resize', handleReposition)\r\n window.removeEventListener('scroll', handleReposition, true)\r\n }\r\n }, [isVisible, calculatePosition])\r\n\r\n return position\r\n}\r\n","import { RefObject, useEffect } from 'react'\r\n\r\n/**\r\n * Gestion d'un click en dehors d'un ou plusieurs éléments\r\n * @param refs Tableau de références à écouter\r\n * @param onClickOutside Callback si clic à l'extérieur\r\n * @param shouldTrigger Activation du comportement\r\n */\r\nexport const useClickOutside = (\r\n refs: RefObject<HTMLElement | null>[],\r\n onClickOutside: () => void,\r\n shouldTrigger: boolean = true\r\n): void => {\r\n useEffect(() => {\r\n if (!shouldTrigger) {\r\n return\r\n }\r\n\r\n const handleClick = (event: MouseEvent): void => {\r\n const isInside = refs.some(ref =>\r\n ref.current?.contains(event.target as Node)\r\n )\r\n\r\n if (!isInside) {\r\n onClickOutside()\r\n }\r\n }\r\n\r\n document.addEventListener('mousedown', handleClick)\r\n\r\n return (): void => {\r\n document.removeEventListener('mousedown', handleClick)\r\n }\r\n }, [refs, onClickOutside, shouldTrigger])\r\n}\r\n","import { useEffect, useState } from 'react'\r\n\r\nimport { DEFAULT_TRANSITION_DURATION_MS } from '@constants/globalConstants'\r\nimport { UseTransitionRenderReturnType } from '@hooks/useTransitionRender.types'\r\n\r\n/**\r\n * Hook pour gérer les animations de transition lors des renders\r\n * @param isOpen - État d'ouverture\r\n * @param duration - Durée de la transition en ms\r\n */\r\nexport const useTransitionRender = (\r\n isOpen: boolean,\r\n duration = DEFAULT_TRANSITION_DURATION_MS\r\n): UseTransitionRenderReturnType => {\r\n const [isVisible, setIsVisible] = useState(false)\r\n const [isFadingIn, setIsFadingIn] = useState(false)\r\n\r\n useEffect(() => {\r\n if (isOpen) {\r\n setIsVisible(true)\r\n const timeout = setTimeout(() => {\r\n setIsFadingIn(true)\r\n }, 10)\r\n return (): void => {\r\n clearTimeout(timeout)\r\n }\r\n } else {\r\n setIsFadingIn(false)\r\n const timeout = setTimeout(() => {\r\n setIsVisible(false)\r\n }, duration)\r\n return (): void => {\r\n clearTimeout(timeout)\r\n }\r\n }\r\n }, [isOpen, duration])\r\n\r\n return {\r\n isVisible,\r\n isFadingIn\r\n }\r\n}\r\n","import { FC, useEffect, useMemo, useRef } from 'react'\r\nimport { createPortal } from 'react-dom'\r\n\r\nimport { MenuProps } from '@components/overlay/menu/Menu.props'\r\nimport { MENU_STYLES } from '@components/overlay/menu/Menu.styles'\r\nimport { useAnchorPosition } from '@hooks/useAnchorPosition'\r\nimport { useClickOutside } from '@hooks/useClickOutside'\r\nimport { useTransitionRender } from '@hooks/useTransitionRender'\r\n\r\nconst Menu: FC<MenuProps> = ({\r\n anchor,\r\n onClose,\r\n children,\r\n anchorOrigin = 'right',\r\n width\r\n}) => {\r\n // refs\r\n const menuRef = useRef<HTMLDivElement>(null)\r\n const anchorRef = useRef<HTMLElement | null>(null)\r\n\r\n // variables\r\n const isOpen = Boolean(anchor)\r\n const refs = useMemo(() => [menuRef, anchorRef], [])\r\n\r\n // hooks\r\n const { isVisible, isFadingIn } = useTransitionRender(isOpen)\r\n const position = useAnchorPosition({ anchor, menuRef, anchorOrigin, isVisible })\r\n\r\n // useEffects\r\n useEffect(() => {\r\n if (anchor) {\r\n anchorRef.current = anchor\r\n }\r\n }, [anchor])\r\n\r\n useEffect(() => {\r\n if (!isVisible) {\r\n anchorRef.current = null\r\n }\r\n }, [isVisible])\r\n\r\n useClickOutside(refs, onClose, isVisible)\r\n\r\n if (!isVisible) {\r\n return null\r\n }\r\n\r\n return createPortal(\r\n <div\r\n ref={menuRef}\r\n className={MENU_STYLES.root(isFadingIn, anchorOrigin, position, width)}\r\n >\r\n {children}\r\n </div>,\r\n document.body\r\n )\r\n}\r\n\r\nMenu.displayName = 'Menu'\r\n\r\nexport default Menu\r\n","import { createStyles } from '@aurora-ds/theme'\r\n\r\nexport const MENU_GROUP_STYLES = createStyles((theme) => ({\r\n root: {\r\n display: 'flex',\r\n flexDirection: 'column',\r\n padding: theme.spacing.xs,\r\n },\r\n}))\r\n","import { FC } from 'react'\r\n\r\nimport { MenuGroupProps } from '@components/overlay/menu/MenuGroup/MenuGroup.props'\r\nimport { MENU_GROUP_STYLES } from '@components/overlay/menu/MenuGroup/MenuGroup.styles'\r\n\r\nconst MenuGroup: FC<MenuGroupProps> = ({\r\n children\r\n}) => {\r\n return (\r\n <div\r\n className={MENU_GROUP_STYLES.root}\r\n >\r\n {children}\r\n </div>\r\n )\r\n}\r\n\r\nMenuGroup.displayName = 'MenuGroup'\r\n\r\nexport default MenuGroup\r\n","import { createStyles } from '@aurora-ds/theme'\n\nimport { MENU_ITEM_SIZE } from '@constants/globalConstants.ts'\n\nexport const MENU_ITEM_STYLES = createStyles((theme) => ({\n root: {\n display: 'flex',\n alignItems: 'center',\n gap: theme.spacing.sm,\n padding: theme.spacing.sm,\n borderRadius: theme.radius.sm,\n backgroundColor: theme.colors.surface,\n outline: 'none',\n border: 'none',\n cursor: 'pointer',\n minHeight: MENU_ITEM_SIZE,\n maxHeight: MENU_ITEM_SIZE,\n flexShrink: 0,\n transition: 'background-color 150ms ease-in-out',\n ':hover': {\n backgroundColor: theme.colors.surfaceHover,\n },\n },\n}))\n","import { FC } from 'react'\r\n\r\nimport { Icon } from '@components/foundation/icon'\r\nimport { Text } from '@components/foundation/text'\r\nimport { MenuItemProps } from '@components/overlay/menu/MenuItem/MenuItem.props'\r\nimport { MENU_ITEM_STYLES } from '@components/overlay/menu/MenuItem/MenuItem.styles'\r\n\r\nconst MenuItem: FC<MenuItemProps> = ({\r\n label,\r\n icon,\r\n onClick,\r\n textColor,\r\n iconColor\r\n}) => {\r\n return (\r\n <button\r\n className={MENU_ITEM_STYLES.root}\r\n onClick={onClick}\r\n >\r\n {icon && (\r\n <Icon\r\n color={iconColor ?? 'text'}\r\n size={'sm'}\r\n >\r\n {icon}\r\n </Icon>\r\n )}\r\n <Text\r\n variant={'label'}\r\n color={textColor ?? 'text'}\r\n maxLines={1}\r\n fontSize={'sm'}\r\n >\r\n {label}\r\n </Text>\r\n </button>\r\n )\r\n}\r\n\r\nMenuItem.displayName = 'MenuItem'\r\n\r\nexport default MenuItem\r\n","import { FC, useRef, useState } from 'react'\r\n\r\nimport { SelectProps } from '@components/forms/select/Select.props'\r\nimport { SELECT_STYLES } from '@components/forms/select/Select.styles'\r\nimport { SelectItem } from '@components/forms/select/SelectItem'\r\nimport Icon from '@components/foundation/icon/Icon.tsx'\r\nimport { Text } from '@components/foundation/text'\r\nimport { Stack } from '@components/layout/stack'\r\nimport { Menu } from '@components/overlay/menu'\r\nimport { MenuGroup } from '@components/overlay/menu/MenuGroup'\r\nimport { ChevronDownIcon } from '@resources/icons/ChevronDownIcon'\r\n\r\n/**\r\n * Select component that uses Menu for dropdown\r\n */\r\nconst Select: FC<SelectProps> = ({\r\n options,\r\n value,\r\n onChange,\r\n label,\r\n mandatory = false,\r\n placeholder = 'Select an option',\r\n disabled = false,\r\n width\r\n}) => {\r\n const [isOpen, setIsOpen] = useState(false)\r\n const triggerRef = useRef<HTMLDivElement>(null)\r\n\r\n const selectedOption = options.find(option => option.value === value)\r\n const menuWidth = triggerRef.current?.offsetWidth ?? width\r\n\r\n const handleTriggerClick = () => {\r\n if (!disabled) {\r\n setIsOpen(!isOpen)\r\n }\r\n }\r\n\r\n const handleClose = () => {\r\n setIsOpen(false)\r\n }\r\n\r\n const handleSelect = (selectedValue: string | number) => {\r\n onChange(selectedValue)\r\n setIsOpen(false)\r\n }\r\n\r\n return (\r\n <Stack\r\n direction={'column'}\r\n gap={'xs'}\r\n align={'stretch'}\r\n width={width ?? '100%'}\r\n >\r\n {label && (\r\n <Stack\r\n direction={'row'}\r\n gap={'xs'}\r\n align={'center'}\r\n >\r\n <Text\r\n variant={'label'}\r\n fontSize={'sm'}\r\n >\r\n {label}\r\n </Text>\r\n {mandatory && (\r\n <Text\r\n variant={'label'}\r\n fontSize={'sm'}\r\n color={'error'}\r\n >\r\n *\r\n </Text>\r\n )}\r\n </Stack>\r\n )}\r\n <div\r\n ref={triggerRef}\r\n className={SELECT_STYLES.root({ disabled, width })}\r\n onClick={handleTriggerClick}\r\n role={'button'}\r\n tabIndex={disabled ? -1 : 0}\r\n aria-expanded={isOpen}\r\n aria-haspopup={'listbox'}\r\n >\r\n <div\r\n className={SELECT_STYLES.trigger}\r\n >\r\n <Text\r\n variant={'p'}\r\n maxLines={1}\r\n color={selectedOption ? 'text' : 'textSecondary'}\r\n >\r\n {selectedOption ? selectedOption.label : placeholder}\r\n </Text>\r\n </div>\r\n <Icon>\r\n <ChevronDownIcon />\r\n </Icon>\r\n </div>\r\n <Menu\r\n anchor={isOpen ? triggerRef.current : null}\r\n onClose={handleClose}\r\n width={menuWidth}\r\n >\r\n <MenuGroup>\r\n {options.map(option => (\r\n <SelectItem\r\n key={option.value}\r\n option={option}\r\n isSelected={option.value === value}\r\n onSelect={handleSelect}\r\n />\r\n ))}\r\n </MenuGroup>\r\n </Menu>\r\n </Stack>\r\n )\r\n}\r\n\r\nSelect.displayName = 'Select'\r\n\r\nexport { Select }\r\n","import { createStyles } from '@aurora-ds/theme'\r\n\r\nexport const CALENDAR_GRID_STYLES = createStyles((theme) => ({\r\n daysGrid: {\r\n display: 'grid',\r\n gridTemplateColumns: 'repeat(7, 1fr)',\r\n gap: '2px',\r\n },\r\n monthsGrid: {\r\n display: 'grid',\r\n gridTemplateColumns: 'repeat(3, 1fr)',\r\n gap: theme.spacing.xs,\r\n padding: theme.spacing.xs,\r\n },\r\n yearsGrid: {\r\n display: 'grid',\r\n gridTemplateColumns: 'repeat(4, 1fr)',\r\n gap: theme.spacing.xs,\r\n padding: theme.spacing.xs,\r\n },\r\n dayHeader: {\r\n textAlign: 'center',\r\n fontSize: theme.fontSize.xs,\r\n fontWeight: theme.fontWeight.medium,\r\n color: theme.colors.textSecondary,\r\n padding: '2px',\r\n },\r\n day: ({ isCurrentMonth, isSelected, isToday, isDisabled }: {\r\n isCurrentMonth?: boolean\r\n isSelected?: boolean\r\n isToday?: boolean\r\n isDisabled?: boolean\r\n }) => ({\r\n width: '1.5rem',\r\n height: '1.5rem',\r\n border: 'none',\r\n borderRadius: theme.radius.sm,\r\n backgroundColor: 'transparent',\r\n color: isCurrentMonth ? theme.colors.text : theme.colors.textTertiary,\r\n fontSize: theme.fontSize.xs,\r\n cursor: isDisabled ? 'not-allowed' : 'pointer',\r\n display: 'flex',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n transition: `background-color ${theme.transition.fast}`,\r\n ...(isSelected && {\r\n backgroundColor: theme.colors.primary,\r\n color: theme.colors.onPrimary,\r\n }),\r\n ...(isToday && !isSelected && {\r\n backgroundColor: theme.colors.primarySubtle,\r\n color: theme.colors.primary,\r\n }),\r\n ...(isDisabled && {\r\n color: theme.colors.disabledText,\r\n cursor: 'not-allowed',\r\n }),\r\n ':hover': !isDisabled && !isSelected ? {\r\n backgroundColor: theme.colors.primaryHover,\r\n color: theme.colors.onPrimary,\r\n } : {},\r\n }),\r\n monthYearItem: (isSelected: boolean) => ({\r\n padding: `${theme.spacing.xs} ${theme.spacing.sm}`,\r\n border: 'none',\r\n borderRadius: theme.radius.sm,\r\n backgroundColor: isSelected ? theme.colors.primary : 'transparent',\r\n color: isSelected ? theme.colors.onPrimary : theme.colors.text,\r\n fontSize: theme.fontSize.sm,\r\n cursor: 'pointer',\r\n transition: `background-color ${theme.transition.fast}`,\r\n ':hover': !isSelected ? {\r\n backgroundColor: theme.colors.primarySubtle,\r\n } : {},\r\n }),\r\n}))\r\n","import { FC, memo } from 'react'\r\n\r\nimport { CalendarGridProps } from '@components/forms/date-picker/calendar/calendar-grid/CalendarGrid.props.ts'\r\nimport { CALENDAR_GRID_STYLES } from '@components/forms/date-picker/calendar/calendar-grid/CalendarGrid.styles.ts'\r\n\r\nconst MONTHS = [\r\n 'Janvier', 'Février', 'Mars', 'Avril', 'Mai', 'Juin',\r\n 'Juillet', 'Août', 'Septembre', 'Octobre', 'Novembre', 'Décembre'\r\n]\r\n\r\nconst DAY_NAMES = ['D', 'L', 'M', 'M', 'J', 'V', 'S']\r\n\r\nconst CalendarGrid: FC<CalendarGridProps> = ({\r\n view,\r\n days = [],\r\n currentMonth,\r\n yearRangeStart = 2020,\r\n onDaySelect,\r\n onMonthSelect,\r\n onYearSelect,\r\n}) => {\r\n if (view === 'days') {\r\n return (\r\n <div className={CALENDAR_GRID_STYLES.daysGrid}>\r\n {DAY_NAMES.map((day, index) => (\r\n <div\r\n key={`${day}-${index}`}\r\n className={CALENDAR_GRID_STYLES.dayHeader}\r\n >\r\n {day}\r\n </div>\r\n ))}\r\n {days.map(day => (\r\n <button\r\n key={day.date.getTime()}\r\n className={CALENDAR_GRID_STYLES.day(day)}\r\n onClick={() => !day.isDisabled && onDaySelect?.(day.date)}\r\n disabled={day.isDisabled}\r\n type={'button'}\r\n >\r\n {day.date.getDate()}\r\n </button>\r\n ))}\r\n </div>\r\n )\r\n }\r\n\r\n if (view === 'months') {\r\n return (\r\n <div className={CALENDAR_GRID_STYLES.monthsGrid}>\r\n {MONTHS.map((month, index) => (\r\n <button\r\n key={month}\r\n type={'button'}\r\n className={CALENDAR_GRID_STYLES.monthYearItem(currentMonth?.getMonth() === index)}\r\n onClick={() => onMonthSelect?.(index)}\r\n >\r\n {month.substring(0, 3)}\r\n </button>\r\n ))}\r\n </div>\r\n )\r\n }\r\n\r\n if (view === 'years') {\r\n return (\r\n <div className={CALENDAR_GRID_STYLES.yearsGrid}>\r\n {Array.from({ length: 12 }, (_, i) => yearRangeStart + i).map(year => (\r\n <button\r\n key={year}\r\n type={'button'}\r\n className={CALENDAR_GRID_STYLES.monthYearItem(currentMonth?.getFullYear() === year)}\r\n onClick={() => onYearSelect?.(year)}\r\n >\r\n {year}\r\n </button>\r\n ))}\r\n </div>\r\n )\r\n }\r\n\r\n return null\r\n}\r\n\r\nCalendarGrid.displayName = 'CalendarGrid'\r\n\r\nexport default memo(CalendarGrid)\r\n","import { createStyles } from '@aurora-ds/theme'\r\n\r\nexport const CALENDAR_HEADER_STYLES = createStyles((theme) => ({\r\n root: {\r\n display: 'flex',\r\n justifyContent: 'space-between',\r\n alignItems: 'center',\r\n marginBottom: theme.spacing.sm,\r\n },\r\n labelButton: {\r\n background: 'none',\r\n border: 'none',\r\n cursor: 'pointer',\r\n padding: `${theme.spacing.xs} ${theme.spacing.sm}`,\r\n borderRadius: theme.radius.sm,\r\n color: theme.colors.text,\r\n fontSize: theme.fontSize.sm,\r\n fontWeight: theme.fontWeight.medium,\r\n transition: `background-color ${theme.transition.fast}`,\r\n ':hover': {\r\n backgroundColor: theme.colors.primarySubtle,\r\n },\r\n },\r\n labelText: {\r\n padding: `${theme.spacing.xs} ${theme.spacing.sm}`,\r\n color: theme.colors.text,\r\n fontSize: theme.fontSize.sm,\r\n fontWeight: theme.fontWeight.medium,\r\n },\r\n leftArrow: {\r\n transform: 'rotate(180deg)',\r\n },\r\n}))\r\n","import { FC, memo } from 'react'\r\n\r\nimport { IconButton } from '@components/actions/icon-button'\r\nimport { CalendarHeaderProps } from '@components/forms/date-picker/calendar/calendar-header/CalendarHeader.props.ts'\r\nimport { CALENDAR_HEADER_STYLES } from '@components/forms/date-picker/calendar/calendar-header/CalendarHeader.styles.ts'\r\nimport { Text } from '@components/foundation/text'\r\nimport { ChevronRightIcon } from '@resources/icons/ChevronRightIcon.tsx'\r\n\r\nconst CalendarHeader: FC<CalendarHeaderProps> = ({\r\n label,\r\n onPrev,\r\n onNext,\r\n onLabelClick,\r\n isLabelClickable = true,\r\n}) => {\r\n return (\r\n <div className={CALENDAR_HEADER_STYLES.root}>\r\n <div className={CALENDAR_HEADER_STYLES.leftArrow}>\r\n <IconButton\r\n icon={<ChevronRightIcon />}\r\n onClick={onPrev}\r\n variant={'text'}\r\n size={'small'}\r\n />\r\n </div>\r\n {isLabelClickable ? (\r\n <button\r\n type={'button'}\r\n className={CALENDAR_HEADER_STYLES.labelButton}\r\n onClick={onLabelClick}\r\n >\r\n {label}\r\n </button>\r\n ) : (\r\n <Text variant={'p'}>\r\n {label}\r\n </Text>\r\n )}\r\n <IconButton\r\n icon={<ChevronRightIcon />}\r\n onClick={onNext}\r\n variant={'text'}\r\n size={'small'}\r\n />\r\n </div>\r\n )\r\n}\r\n\r\nCalendarHeader.displayName = 'CalendarHeader'\r\n\r\nexport default memo(CalendarHeader)\r\n","import { createStyles } from '@aurora-ds/theme'\r\n\r\nexport const CALENDAR_STYLES = createStyles((theme) => ({\r\n root: {\r\n padding: theme.spacing.sm,\r\n },\r\n}))\r\n","import { DateFormat } from '@components/forms/date-picker/DatePicker.props'\r\n\r\nexport const formatDate = (date: Date | null, format: DateFormat = 'dd/MM/yyyy'): string => {\r\n if (!date) {return ''}\r\n\r\n const day = String(date.getDate()).padStart(2, '0')\r\n const month = String(date.getMonth() + 1).padStart(2, '0')\r\n const year = date.getFullYear()\r\n\r\n switch (format) {\r\n case 'dd/MM/yyyy':\r\n return `${day}/${month}/${year}`\r\n case 'MM/dd/yyyy':\r\n return `${month}/${day}/${year}`\r\n case 'yyyy-MM-dd':\r\n return `${year}-${month}-${day}`\r\n default:\r\n return `${day}/${month}/${year}`\r\n }\r\n}\r\n\r\nexport const parseDate = (value: string, format: DateFormat = 'dd/MM/yyyy'): Date | null => {\r\n if (!value) {\r\n return null\r\n }\r\n\r\n const cleanValue = value.replace(/[^\\d]/g, '')\r\n if (cleanValue.length !== 8) {\r\n return null\r\n }\r\n\r\n let day: number, month: number, year: number\r\n\r\n switch (format) {\r\n case 'dd/MM/yyyy':\r\n day = parseInt(cleanValue.substring(0, 2), 10)\r\n month = parseInt(cleanValue.substring(2, 4), 10) - 1\r\n year = parseInt(cleanValue.substring(4, 8), 10)\r\n break\r\n case 'MM/dd/yyyy':\r\n month = parseInt(cleanValue.substring(0, 2), 10) - 1\r\n day = parseInt(cleanValue.substring(2, 4), 10)\r\n year = parseInt(cleanValue.substring(4, 8), 10)\r\n break\r\n case 'yyyy-MM-dd':\r\n year = parseInt(cleanValue.substring(0, 4), 10)\r\n month = parseInt(cleanValue.substring(4, 6), 10) - 1\r\n day = parseInt(cleanValue.substring(6, 8), 10)\r\n break\r\n default:\r\n return null\r\n }\r\n\r\n // Validate date\r\n if (month < 0 || month > 11 || day < 1 || day > 31 || year < 1900 || year > 2100) {\r\n return null\r\n }\r\n\r\n const date = new Date(year, month, day)\r\n // Check if the date is valid (handles cases like Feb 30)\r\n if (date.getDate() !== day || date.getMonth() !== month || date.getFullYear() !== year) {\r\n return null\r\n }\r\n\r\n return date\r\n}\r\n\r\nexport const getDateSeparator = (format: DateFormat): string => {\r\n switch (format) {\r\n case 'dd/MM/yyyy':\r\n case 'MM/dd/yyyy':\r\n return '/'\r\n case 'yyyy-MM-dd':\r\n return '-'\r\n default:\r\n return '/'\r\n }\r\n}\r\n\r\nexport const formatInputValue = (value: string, format: DateFormat): string => {\r\n const cleanValue = value.replace(/[^\\d]/g, '')\r\n const separator = getDateSeparator(format)\r\n\r\n if (format === 'yyyy-MM-dd') {\r\n if (cleanValue.length <= 4) {\r\n return cleanValue\r\n }\r\n if (cleanValue.length <= 6) {\r\n return `${cleanValue.slice(0, 4)}${separator}${cleanValue.slice(4)}`\r\n }\r\n return `${cleanValue.slice(0, 4)}${separator}${cleanValue.slice(4, 6)}${separator}${cleanValue.slice(6, 8)}`\r\n } else {\r\n if (cleanValue.length <= 2) {\r\n return cleanValue\r\n }\r\n if (cleanValue.length <= 4) {\r\n return `${cleanValue.slice(0, 2)}${separator}${cleanValue.slice(2)}`\r\n }\r\n return `${cleanValue.slice(0, 2)}${separator}${cleanValue.slice(2, 4)}${separator}${cleanValue.slice(4, 8)}`\r\n }\r\n}\r\n\r\nexport interface CalendarDay {\r\n date: Date;\r\n isCurrentMonth: boolean;\r\n isSelected: boolean;\r\n isToday: boolean;\r\n isDisabled: boolean;\r\n}\r\n\r\nexport const getCalendarDays = (\r\n year: number,\r\n month: number,\r\n selectedDate?: Date | null,\r\n minDate?: Date,\r\n maxDate?: Date\r\n): CalendarDay[] => {\r\n const firstDay = new Date(year, month, 1)\r\n const startDate = new Date(firstDay)\r\n startDate.setDate(startDate.getDate() - firstDay.getDay())\r\n\r\n const days: CalendarDay[] = []\r\n const current = new Date(startDate)\r\n const today = new Date()\r\n today.setHours(0, 0, 0, 0)\r\n\r\n for (let i = 0; i < 42; i++) {\r\n const currentDate = new Date(current)\r\n currentDate.setHours(0, 0, 0, 0)\r\n\r\n const isCurrentMonth = current.getMonth() === month\r\n const isSelected = selectedDate ? current.toDateString() === selectedDate.toDateString() : false\r\n const isToday = current.toDateString() === today.toDateString()\r\n\r\n let isDisabled = false\r\n if (minDate) {\r\n const min = new Date(minDate)\r\n min.setHours(0, 0, 0, 0)\r\n if (currentDate < min) {isDisabled = true}\r\n }\r\n if (maxDate && !isDisabled) {\r\n const max = new Date(maxDate)\r\n max.setHours(0, 0, 0, 0)\r\n if (currentDate > max) {isDisabled = true}\r\n }\r\n\r\n days.push({\r\n date: new Date(current),\r\n isCurrentMonth,\r\n isSelected,\r\n isToday,\r\n isDisabled,\r\n })\r\n current.setDate(current.getDate() + 1)\r\n }\r\n\r\n return days\r\n}\r\n","import { FC, memo, useCallback, useMemo, useState } from 'react'\r\n\r\nimport CalendarGrid from '@components/forms/date-picker/calendar/calendar-grid/CalendarGrid.tsx'\r\nimport CalendarHeader from '@components/forms/date-picker/calendar/calendar-header/CalendarHeader.tsx'\r\nimport { CalendarProps, CalendarView } from '@components/forms/date-picker/calendar/Calendar.props'\r\nimport { CALENDAR_STYLES } from '@components/forms/date-picker/calendar/Calendar.styles'\r\nimport { getCalendarDays } from '@utils/ui/components/date-picker/datePicker.utils'\r\n\r\nconst Calendar: FC<CalendarProps> = ({\r\n value,\r\n onDateSelect,\r\n minDate,\r\n maxDate,\r\n locale = 'fr-FR',\r\n}) => {\r\n const [currentMonth, setCurrentMonth] = useState(() =>\r\n value ? new Date(value.getFullYear(), value.getMonth()) : new Date()\r\n )\r\n const [view, setView] = useState<CalendarView>('days')\r\n const [yearRangeStart, setYearRangeStart] = useState(() => {\r\n const year = value?.getFullYear() ?? new Date().getFullYear()\r\n return Math.floor(year / 12) * 12\r\n })\r\n\r\n const calendarDays = useMemo(() =>\r\n getCalendarDays(\r\n currentMonth.getFullYear(),\r\n currentMonth.getMonth(),\r\n value,\r\n minDate ?? undefined,\r\n maxDate ?? undefined\r\n ),\r\n [currentMonth, value, minDate, maxDate])\r\n\r\n const headerLabel = useMemo(() => {\r\n if (view === 'days') {\r\n return currentMonth.toLocaleDateString(locale, { month: 'long', year: 'numeric' })\r\n }\r\n if (view === 'months') {\r\n return String(currentMonth.getFullYear())\r\n }\r\n return `${yearRangeStart} - ${yearRangeStart + 11}`\r\n }, [view, currentMonth, locale, yearRangeStart])\r\n\r\n const handlePrev = useCallback(() => {\r\n if (view === 'years') {\r\n setYearRangeStart(prev => prev - 12)\r\n } else if (view === 'months') {\r\n setCurrentMonth(prev => new Date(prev.getFullYear() - 1, prev.getMonth()))\r\n } else {\r\n setCurrentMonth(prev => new Date(prev.getFullYear(), prev.getMonth() - 1))\r\n }\r\n }, [view])\r\n\r\n const handleNext = useCallback(() => {\r\n if (view === 'years') {\r\n setYearRangeStart(prev => prev + 12)\r\n } else if (view === 'months') {\r\n setCurrentMonth(prev => new Date(prev.getFullYear() + 1, prev.getMonth()))\r\n } else {\r\n setCurrentMonth(prev => new Date(prev.getFullYear(), prev.getMonth() + 1))\r\n }\r\n }, [view])\r\n\r\n const handleLabelClick = useCallback(() => {\r\n if (view === 'days') {\r\n setView('months')\r\n } else if (view === 'months') {\r\n setView('years')\r\n setYearRangeStart(Math.floor(currentMonth.getFullYear() / 12) * 12)\r\n }\r\n }, [view, currentMonth])\r\n\r\n const handleDaySelect = useCallback((date: Date) => {\r\n onDateSelect(date)\r\n }, [onDateSelect])\r\n\r\n const handleMonthSelect = useCallback((monthIndex: number) => {\r\n setCurrentMonth(new Date(currentMonth.getFullYear(), monthIndex))\r\n setView('days')\r\n }, [currentMonth])\r\n\r\n const handleYearSelect = useCallback((year: number) => {\r\n setCurrentMonth(new Date(year, currentMonth.getMonth()))\r\n setView('months')\r\n }, [currentMonth])\r\n\r\n return (\r\n <div className={CALENDAR_STYLES.root}>\r\n <CalendarHeader\r\n view={view}\r\n label={headerLabel}\r\n onPrev={handlePrev}\r\n onNext={handleNext}\r\n onLabelClick={handleLabelClick}\r\n isLabelClickable={view !== 'years'}\r\n />\r\n <CalendarGrid\r\n view={view}\r\n days={calendarDays}\r\n currentMonth={currentMonth}\r\n yearRangeStart={yearRangeStart}\r\n onDaySelect={handleDaySelect}\r\n onMonthSelect={handleMonthSelect}\r\n onYearSelect={handleYearSelect}\r\n locale={locale}\r\n />\r\n </div>\r\n )\r\n}\r\n\r\nCalendar.displayName = 'Calendar'\r\n\r\nexport default memo(Calendar)\r\n","import { createStyles } from '@aurora-ds/theme'\r\n\r\nimport { DatePickerStyleParams } from '@components/forms/date-picker/DatePicker.props'\r\nimport { BUTTON_SIZE } from '@constants/globalConstants'\r\n\r\n/**\r\n * DatePicker styles using createStyles from @aurora-ds/theme\r\n */\r\nexport const DATE_PICKER_STYLES = createStyles((theme) => ({\r\n container: ({ width }: DatePickerStyleParams) => ({\r\n position: 'relative',\r\n display: 'flex',\r\n alignItems: 'center',\r\n width: width ?? '100%',\r\n }),\r\n input: {\r\n boxSizing: 'border-box',\r\n width: '100%',\r\n padding: `${theme.spacing.sm} ${theme.spacing.md}`,\r\n paddingRight: `calc(${theme.spacing.sm} + 1.5rem)`,\r\n border: `1px solid ${theme.colors.border}`,\r\n borderRadius: theme.radius.md,\r\n fontSize: theme.fontSize.sm,\r\n fontFamily: 'inherit',\r\n backgroundColor: theme.colors.surface,\r\n color: theme.colors.text,\r\n transition: `border-color ${theme.transition.fast}`,\r\n outline: 'none',\r\n minHeight: BUTTON_SIZE,\r\n maxHeight: BUTTON_SIZE,\r\n lineHeight: theme.lineHeight.none,\r\n ':hover:not(:disabled)': {\r\n borderColor: theme.colors.primaryHover,\r\n },\r\n ':focus': {\r\n borderColor: theme.colors.primary,\r\n },\r\n '::placeholder': {\r\n color: theme.colors.textTertiary,\r\n },\r\n ':disabled': {\r\n color: theme.colors.disabledText,\r\n cursor: 'not-allowed',\r\n opacity: theme.opacity.high,\r\n },\r\n },\r\n calendarButton: {\r\n position: 'absolute',\r\n right: theme.spacing.xs,\r\n top: '50%',\r\n transform: 'translateY(-50%)',\r\n zIndex: 2,\r\n },\r\n}))\r\n","import { ChangeEvent, FC, useState, useRef, useCallback, memo, useEffect } from 'react'\r\n\r\nimport { IconButton } from '@components/actions/icon-button'\r\nimport { Calendar } from '@components/forms/date-picker/calendar'\r\nimport { DatePickerProps } from '@components/forms/date-picker/DatePicker.props'\r\nimport { DATE_PICKER_STYLES } from '@components/forms/date-picker/DatePicker.styles'\r\nimport { Text } from '@components/foundation/text'\r\nimport { Stack } from '@components/layout/stack'\r\nimport { Menu } from '@components/overlay/menu'\r\nimport { CalendarIcon } from '@resources/icons/CalendarIcon'\r\nimport { formatDate, formatInputValue, parseDate } from '@utils/ui/components/date-picker/datePicker.utils'\r\n\r\n/**\r\n * DatePicker component with custom calendar\r\n */\r\nconst DatePicker: FC<DatePickerProps> = ({\r\n value,\r\n onChange,\r\n label,\r\n mandatory = false,\r\n placeholder,\r\n disabled = false,\r\n width,\r\n minDate,\r\n maxDate,\r\n dateFormat = 'dd/MM/yyyy',\r\n locale = 'fr-FR',\r\n}) => {\r\n const [isOpen, setIsOpen] = useState(false)\r\n const [inputValue, setInputValue] = useState(() => formatDate(value ?? null, dateFormat))\r\n const [isUserTyping, setIsUserTyping] = useState(false)\r\n const inputRef = useRef<HTMLInputElement>(null)\r\n const containerRef = useRef<HTMLDivElement>(null)\r\n\r\n // Sync inputValue when value prop changes (but not while user is typing)\r\n useEffect(() => {\r\n if (!isUserTyping) {\r\n setInputValue(formatDate(value ?? null, dateFormat))\r\n }\r\n }, [value, dateFormat, isUserTyping])\r\n\r\n const handleClose = useCallback(() => {\r\n setIsOpen(false)\r\n }, [])\r\n\r\n const handleDateSelect = useCallback((date: Date) => {\r\n onChange(date)\r\n setInputValue(formatDate(date, dateFormat))\r\n setIsOpen(false)\r\n }, [onChange, dateFormat])\r\n\r\n const handleInputChange = useCallback((e: ChangeEvent<HTMLInputElement>) => {\r\n const rawValue = e.target.value\r\n const formatted = formatInputValue(rawValue, dateFormat)\r\n setInputValue(formatted)\r\n setIsUserTyping(true)\r\n\r\n // Try to parse the date\r\n const parsedDate = parseDate(formatted, dateFormat)\r\n if (parsedDate) {\r\n // Check if within min/max bounds\r\n let isValid = true\r\n if (minDate && parsedDate < minDate) {\r\n isValid = false\r\n }\r\n if (maxDate && parsedDate > maxDate) {\r\n isValid = false\r\n }\r\n\r\n if (isValid) {\r\n onChange(parsedDate)\r\n }\r\n } else if (rawValue === '') {\r\n onChange(null)\r\n }\r\n }, [dateFormat, minDate, maxDate, onChange])\r\n\r\n const handleInputBlur = useCallback(() => {\r\n setIsUserTyping(false)\r\n\r\n // If input is empty, that's valid (null date)\r\n if (inputValue === '') {\r\n return\r\n }\r\n\r\n // Reset to the current value if input is invalid\r\n const parsedDate = parseDate(inputValue, dateFormat)\r\n if (!parsedDate) {\r\n setInputValue(formatDate(value ?? null, dateFormat))\r\n }\r\n }, [inputValue, dateFormat, value])\r\n\r\n const handleCalendarButtonClick = useCallback((e: React.MouseEvent) => {\r\n e.stopPropagation()\r\n if (!disabled) {\r\n setIsOpen(prev => !prev)\r\n }\r\n }, [disabled])\r\n\r\n return (\r\n <Stack\r\n direction={'column'}\r\n gap={'xs'}\r\n align={'stretch'}\r\n width={width ?? '100%'}\r\n >\r\n {label && (\r\n <Stack\r\n direction={'row'}\r\n gap={'xs'}\r\n align={'center'}\r\n >\r\n <Text\r\n variant={'label'}\r\n fontSize={'sm'}\r\n >\r\n {label}\r\n </Text>\r\n {mandatory && (\r\n <Text\r\n variant={'label'}\r\n fontSize={'sm'}\r\n color={'error'}\r\n >\r\n *\r\n </Text>\r\n )}\r\n </Stack>\r\n )}\r\n <div\r\n ref={containerRef}\r\n className={DATE_PICKER_STYLES.container({ width })}\r\n >\r\n <input\r\n ref={inputRef}\r\n value={inputValue}\r\n onChange={handleInputChange}\r\n onBlur={handleInputBlur}\r\n placeholder={placeholder ?? dateFormat.toLowerCase()}\r\n className={DATE_PICKER_STYLES.input}\r\n disabled={disabled}\r\n />\r\n <div className={DATE_PICKER_STYLES.calendarButton}>\r\n <IconButton\r\n icon={<CalendarIcon />}\r\n onClick={handleCalendarButtonClick}\r\n disabled={disabled}\r\n variant={'text'}\r\n size={'small'}\r\n textColor={'textSecondary'}\r\n />\r\n </div>\r\n </div>\r\n <Menu\r\n anchor={isOpen ? containerRef.current : null}\r\n onClose={handleClose}\r\n width={280}\r\n anchorOrigin={'left'}\r\n >\r\n <Calendar\r\n value={value}\r\n onDateSelect={handleDateSelect}\r\n minDate={minDate}\r\n maxDate={maxDate}\r\n locale={locale}\r\n />\r\n </Menu>\r\n </Stack>\r\n )\r\n}\r\n\r\nDatePicker.displayName = 'DatePicker'\r\n\r\nexport default memo(DatePicker)\r\n","import { createStyles } from '@aurora-ds/theme'\r\n\r\nimport { CardStyleParams } from '@components/layout/card/Card.props.ts'\r\n\r\n/**\r\n * Card styles using createStyles from @aurora-ds/theme\r\n */\r\nexport const CARD_STYLES = createStyles((theme) => ({\r\n root: ({\r\n direction,\r\n padding,\r\n width,\r\n height,\r\n gap,\r\n radius,\r\n shadow,\r\n align,\r\n justify,\r\n backgroundColor,\r\n borderColor\r\n }: CardStyleParams) => ({\r\n display: 'flex',\r\n flexDirection: direction,\r\n padding: padding ? theme.spacing[padding] : undefined,\r\n width,\r\n height,\r\n gap: gap ? theme.spacing[gap] : undefined,\r\n borderRadius: theme.radius[radius],\r\n boxShadow: theme.shadows[shadow],\r\n backgroundColor: theme.colors[backgroundColor],\r\n border: borderColor ? `1px solid ${theme.colors[borderColor]}` : 'none',\r\n alignItems: align,\r\n justifyContent: justify,\r\n boxSizing: 'border-box',\r\n }),\r\n}))\r\n","import { FC } from 'react'\r\n\r\nimport { CardProps } from '@components/layout/card/Card.props.ts'\r\nimport { CARD_STYLES } from '@components/layout/card/Card.styles.ts'\r\n\r\n/**\r\n * Card component\r\n *\r\n * A container component with a background, border radius, and optional shadow.\r\n * Uses a Stack layout internally for organizing children.\r\n *\r\n * **Direction:**\r\n * - `column`: Vertical layout (default)\r\n * - `row`: Horizontal layout\r\n */\r\nconst Card: FC<CardProps> = ({\r\n children,\r\n direction = 'column',\r\n padding = 'md',\r\n width,\r\n height,\r\n gap,\r\n radius = 'md',\r\n shadow = 'none',\r\n align,\r\n justify,\r\n backgroundColor = 'surface',\r\n borderColor = 'border',\r\n ariaLabel,\r\n ariaLabelledBy,\r\n ariaDescribedBy,\r\n role,\r\n tabIndex,\r\n}) => {\r\n return (\r\n <div\r\n className={CARD_STYLES.root({\r\n direction,\r\n padding,\r\n width,\r\n height,\r\n gap,\r\n radius,\r\n shadow,\r\n align,\r\n justify,\r\n backgroundColor,\r\n borderColor\r\n })}\r\n aria-label={ariaLabel}\r\n aria-labelledby={ariaLabelledBy}\r\n aria-describedby={ariaDescribedBy}\r\n role={role}\r\n tabIndex={tabIndex}\r\n >\r\n {children}\r\n </div>\r\n )\r\n}\r\n\r\nCard.displayName = 'Card'\r\n\r\nexport default Card\r\n","import { createStyles } from '@aurora-ds/theme'\r\n\r\nimport { GridStyleParams } from '@components/layout/grid/Grid.props.ts'\r\n\r\n/**\r\n * Generates the grid-template-columns value based on columns and minChildWidth props\r\n * - If only columns is defined: creates a fixed number of columns\r\n * - If only minChildWidth is defined: creates responsive auto-fill columns\r\n * - If both are defined: creates responsive columns with a maximum limit (columns acts as max)\r\n *\r\n * Key difference between auto-fill and auto-fit:\r\n * - auto-fill: keeps empty column tracks, items don't stretch to fill container\r\n * - auto-fit: collapses empty tracks, items stretch to fill available space\r\n */\r\nconst getGridTemplateColumns = (\r\n columns?: number,\r\n minChildWidth?: string | number,\r\n columnGap?: string\r\n): string | undefined => {\r\n const minWidthValue = typeof minChildWidth === 'number' ? `${minChildWidth}px` : minChildWidth\r\n\r\n if (minChildWidth && columns) {\r\n // Responsive grid with max columns limit\r\n // Uses auto-fill to preserve empty column tracks (items don't stretch beyond their column)\r\n // The min value ensures items are at least minChildWidth\r\n // The max value is 1fr to distribute space evenly within the max columns constraint\r\n const gapValue = columnGap || '0px'\r\n const minColumnWidth = `calc((100% - (${columns} - 1) * ${gapValue}) / ${columns})`\r\n return `repeat(auto-fill, minmax(max(${minWidthValue}, ${minColumnWidth}), 1fr))`\r\n }\r\n if (minChildWidth) {\r\n // Responsive grid without column limit - items will fill available space\r\n return `repeat(auto-fill, minmax(${minWidthValue}, 1fr))`\r\n }\r\n if (columns) {\r\n // Fixed number of columns - each column takes equal space\r\n return `repeat(${columns}, 1fr)`\r\n }\r\n return undefined\r\n}\r\n\r\n/**\r\n * Generates the grid-template-rows value based on rows prop\r\n */\r\nconst getGridTemplateRows = (rows?: number): string | undefined => {\r\n if (rows) {\r\n return `repeat(${rows}, auto)`\r\n }\r\n return undefined\r\n}\r\n\r\n/**\r\n * Grid styles using createStyles from @aurora-ds/theme\r\n */\r\nexport const GRID_STYLES = createStyles((theme) => ({\r\n root: ({\r\n columns,\r\n rows,\r\n columnGap,\r\n rowGap,\r\n width,\r\n height,\r\n minHeight,\r\n alignItems,\r\n justifyItems,\r\n alignContent,\r\n justifyContent,\r\n padding,\r\n minChildWidth,\r\n }: GridStyleParams) => {\r\n const columnGapValue = columnGap ? theme.spacing[columnGap] : undefined\r\n const rowGapValue = rowGap ? theme.spacing[rowGap] : undefined\r\n\r\n return {\r\n display: 'grid',\r\n gridTemplateColumns: getGridTemplateColumns(columns, minChildWidth, columnGapValue),\r\n gridTemplateRows: getGridTemplateRows(rows),\r\n columnGap: columnGapValue,\r\n rowGap: rowGapValue,\r\n width,\r\n height,\r\n minHeight,\r\n alignItems,\r\n justifyItems,\r\n alignContent,\r\n justifyContent,\r\n padding: padding ? theme.spacing[padding] : undefined\r\n } as const\r\n },\r\n}))\r\n","import { FC } from 'react'\r\n\r\nimport { GridProps } from '@components/layout/grid/Grid.props.ts'\r\nimport { GRID_STYLES } from '@components/layout/grid/Grid.styles.ts'\r\n\r\n/**\r\n * Grid component\r\n *\r\n * A CSS Grid container for laying out children in a two-dimensional grid.\r\n *\r\n * **Usage:**\r\n * - Use `columns` to define the number of columns or a custom grid-template-columns value\r\n * - Use `rows` to define the number of rows or a custom grid-template-rows value\r\n * - Use `minChildWidth` for responsive auto-fill grids\r\n * - Combine `columns` + `minChildWidth` for responsive grid with max columns limit\r\n */\r\nconst Grid: FC<GridProps> = ({\r\n children,\r\n columns = 3,\r\n rows,\r\n columnGap = 'md',\r\n rowGap = 'md',\r\n width,\r\n height,\r\n minHeight,\r\n alignItems,\r\n justifyItems,\r\n alignContent,\r\n justifyContent,\r\n padding,\r\n minChildWidth,\r\n ariaLabel,\r\n ariaLabelledBy,\r\n ariaDescribedBy,\r\n role,\r\n tabIndex,\r\n}) => {\r\n return (\r\n <div\r\n className={GRID_STYLES.root({\r\n columns,\r\n rows,\r\n columnGap,\r\n rowGap,\r\n width,\r\n height,\r\n minHeight,\r\n alignItems,\r\n justifyItems,\r\n alignContent,\r\n justifyContent,\r\n padding,\r\n minChildWidth,\r\n })}\r\n aria-label={ariaLabel}\r\n aria-labelledby={ariaLabelledBy}\r\n aria-describedby={ariaDescribedBy}\r\n role={role}\r\n tabIndex={tabIndex}\r\n >\r\n {children}\r\n </div>\r\n )\r\n}\r\n\r\nGrid.displayName = 'Grid'\r\n\r\nexport default Grid\r\n","import { createStyles } from '@aurora-ds/theme'\r\n\r\nimport { SeparatorStyleParams } from '@components/layout/separator/Separator.props.ts'\r\n\r\n/**\r\n * Separator styles using createStyles from @aurora-ds/theme\r\n */\r\nexport const SEPARATOR_STYLES = createStyles((theme) => ({\r\n root: ({\r\n direction = 'horizontal',\r\n color = 'border',\r\n width,\r\n height\r\n }: SeparatorStyleParams) => ({\r\n backgroundColor: theme.colors[color],\r\n ...(direction === 'horizontal' ? {\r\n width: '100%',\r\n height: '1px',\r\n } : {\r\n width: '1px',\r\n height: '100%',\r\n }),\r\n ...(width !== undefined && { width }),\r\n ...(height !== undefined && { height }),\r\n }),\r\n}))\r\n","import { FC } from 'react'\r\n\r\nimport { SeparatorProps } from '@components/layout/separator/Separator.props.ts'\r\nimport { SEPARATOR_STYLES } from '@components/layout/separator/Separator.styles.ts'\r\n\r\n/**\r\n * Separator component\r\n *\r\n * A simple separator line for horizontal or vertical division.\r\n */\r\nconst Separator: FC<SeparatorProps> = ({\r\n direction = 'horizontal',\r\n width,\r\n height,\r\n color = 'border',\r\n}) => {\r\n return (\r\n <div\r\n className={SEPARATOR_STYLES.root({ direction, color, width, height })}\r\n />\r\n )\r\n}\r\n\r\nSeparator.displayName = 'Separator'\r\n\r\nexport default Separator\r\n","import { createStyles } from '@aurora-ds/theme'\r\n\r\nimport { PageSectionStyleParams } from '@components/layout/page-construction/page-section/PageSection.props.ts'\r\n\r\nexport const PAGE_SECTION_STYLES = createStyles((theme) => ({\r\n root: ({\r\n gap,\r\n paddingHorizontal,\r\n paddingVertical,\r\n alignItems = 'center',\r\n maxWidth,\r\n minHeight\r\n }: PageSectionStyleParams) => ({\r\n display: 'flex',\r\n flexDirection: 'column',\r\n gap: gap || theme.spacing.xl,\r\n padding: `${paddingVertical ? theme.spacing[paddingVertical] : theme.spacing['3xl']} ${paddingHorizontal ? theme.spacing[paddingHorizontal] : theme.spacing.xl}`,\r\n alignItems,\r\n maxWidth,\r\n minHeight,\r\n width: '100%',\r\n margin: '0 auto'\r\n })\r\n}))\r\n","import { FC } from 'react'\n\nimport { PageSectionProps } from '@components/layout/page-construction/page-section/PageSection.props.ts'\nimport { PAGE_SECTION_STYLES } from '@components/layout/page-construction/page-section/PageSection.styles.ts'\n\n/**\n * PageSection component\n *\n * A layout component that provides consistent spacing and alignment for page sections.\n * Supports customization of gap, padding, alignment, min height and max width.\n */\nconst PageSection: FC<PageSectionProps> = ({\n children,\n gap,\n paddingHorizontal,\n paddingVertical,\n alignItems,\n maxWidth,\n minHeight,\n ariaLabel,\n ariaLabelledBy,\n ariaDescribedBy,\n role,\n tabIndex,\n}) => {\n return (\n <section\n className={PAGE_SECTION_STYLES.root({ gap, paddingHorizontal, paddingVertical, alignItems, maxWidth, minHeight })}\n aria-label={ariaLabel}\n aria-labelledby={ariaLabelledBy}\n aria-describedby={ariaDescribedBy}\n role={role}\n tabIndex={tabIndex}\n >\n {children}\n </section>\n )\n}\n\nPageSection.displayName = 'PageSection'\n\nexport default PageSection\n","import { createStyles } from '@aurora-ds/theme'\r\n\r\nimport { PageStyleParams } from '@components/layout/page-construction/page/Page.props.ts'\r\n\r\nexport const PAGE_STYLES = createStyles(() => ({\r\n root: ({\r\n backgroundColor,\r\n padding\r\n }: PageStyleParams) => ({\r\n width: '100%',\r\n height: '100%',\r\n display: 'flex',\r\n flexDirection: 'column',\r\n alignItems: 'center',\r\n backgroundColor,\r\n padding,\r\n }),\r\n children: ({\r\n maxWidth = '100%'\r\n }: PageStyleParams) => ({\r\n maxWidth,\r\n height: '100%',\r\n marginLeft: 'auto',\r\n marginRight: 'auto',\r\n width: '100%',\r\n flex: 1,\r\n })\r\n}))\r\n","import { FC } from 'react'\n\nimport { PageProps } from '@components/layout/page-construction/page/Page.props.ts'\nimport { PAGE_STYLES } from '@components/layout/page-construction/page/Page.styles.ts'\n\n/**\n * Page component\n *\n * A layout component that provides consistent page structure with optional footer.\n * Supports customization of dimensions, background, and content constraints.\n */\nconst Page: FC<PageProps> = ({\n children,\n footer,\n maxWidth,\n backgroundColor,\n padding,\n className,\n ariaLabel,\n ariaLabelledBy,\n ariaDescribedBy,\n role,\n tabIndex,\n}) => {\n return (\n <div\n className={`${PAGE_STYLES.root({ backgroundColor, padding })} ${className || ''}`}\n aria-label={ariaLabel}\n aria-labelledby={ariaLabelledBy}\n aria-describedby={ariaDescribedBy}\n role={role}\n tabIndex={tabIndex}\n >\n <div\n className={PAGE_STYLES.children({ maxWidth })}\n >\n {children}\n </div>\n {footer && (\n <div>\n {footer}\n </div>\n )}\n </div>\n )\n}\n\nPage.displayName = 'Page'\n\nexport default Page\n","import { createStyles } from '@aurora-ds/theme'\r\n\r\nimport {\r\n AccordionContentStyleParams,\r\n AccordionHeaderStyleParams,\r\n AccordionIconStyleParams,\r\n AccordionStyleParams\r\n} from '@components/overlay/accordion/Accordion.props.ts'\r\n\r\nexport const ACCORDION_STYLES = createStyles((theme) => {\r\n return {\r\n root: ({ disabled, width }: AccordionStyleParams) => ({\r\n width: width ?? '100%',\r\n overflow: 'hidden',\r\n opacity: disabled ? 0.8 : 1,\r\n borderRadius: theme.radius.md,\r\n }),\r\n header: ({ disabled, backgroundColor, headerPadding }: AccordionHeaderStyleParams) => ({\r\n display: 'flex',\r\n alignItems: 'center',\r\n width: '100%',\r\n padding: headerPadding ?? `${theme.spacing.sm} ${theme.spacing.md}`,\r\n border: 'none',\r\n backgroundColor: backgroundColor ? theme.colors[backgroundColor] :'transparent',\r\n cursor: disabled ? 'not-allowed' : 'pointer',\r\n transition: `background-color ${theme.transition.fast}`,\r\n gap: theme.spacing.sm,\r\n borderRadius: theme.radius.md,\r\n ':hover': {\r\n backgroundColor: disabled ? 'transparent' : theme.colors.surfaceHover,\r\n },\r\n }),\r\n expandIcon: ({ expanded }: AccordionIconStyleParams) => ({\r\n transition: `transform ${theme.transition.fast}`,\r\n transform: expanded ? 'rotate(180deg)' : 'rotate(0deg)',\r\n }),\r\n content: ({ expanded, contentPadding }: AccordionContentStyleParams) => ({\r\n display: expanded ? 'block' : 'none',\r\n padding: contentPadding ?? `0 ${theme.spacing.sm} ${theme.spacing.md}`,\r\n }),\r\n }\r\n})\r\n","import { FC, useState } from 'react'\r\n\r\nimport { Icon } from '@components/foundation/icon'\r\nimport { Text } from '@components/foundation/text'\r\nimport { Stack } from '@components/layout/stack'\r\nimport { AccordionProps } from '@components/overlay/accordion/Accordion.props.ts'\r\nimport { ACCORDION_STYLES } from '@components/overlay/accordion/Accordion.styles.ts'\r\nimport { ChevronDownIcon } from '@resources/Icons.ts'\r\n\r\n/**\r\n * Accordion component\r\n *\r\n * A collapsible container that can show/hide content.\r\n * Supports controlled and uncontrolled modes.\r\n */\r\nconst Accordion: FC<AccordionProps> = ({\r\n title,\r\n children,\r\n expanded,\r\n defaultExpanded = false,\r\n onChange,\r\n disabled = false,\r\n icon,\r\n backgroundColor,\r\n width,\r\n headerPadding,\r\n contentPadding,\r\n ariaLabel,\r\n ariaLabelledBy,\r\n ariaDescribedBy,\r\n role,\r\n tabIndex,\r\n}) => {\r\n const [internalExpanded, setInternalExpanded] = useState(defaultExpanded)\r\n\r\n // Use controlled value if provided, otherwise use internal state\r\n const isExpanded = expanded !== undefined ? expanded : internalExpanded\r\n\r\n const handleToggle = () => {\r\n if (disabled) {return}\r\n\r\n const newExpanded = !isExpanded\r\n\r\n if (expanded === undefined) {\r\n setInternalExpanded(newExpanded)\r\n }\r\n\r\n onChange?.(newExpanded)\r\n }\r\n\r\n return (\r\n <div\r\n className={ACCORDION_STYLES.root({ disabled, width })}\r\n aria-label={ariaLabel}\r\n aria-labelledby={ariaLabelledBy}\r\n aria-describedby={ariaDescribedBy}\r\n role={role}\r\n tabIndex={tabIndex}\r\n >\r\n <button\r\n type={'button'}\r\n className={ACCORDION_STYLES.header({ disabled, backgroundColor, headerPadding })}\r\n onClick={handleToggle}\r\n disabled={disabled}\r\n aria-expanded={isExpanded}\r\n >\r\n <Stack\r\n direction={'row'}\r\n align={'center'}\r\n gap={'sm'}\r\n width={'100%'}\r\n >\r\n {icon && (\r\n <Icon color={disabled ? 'disabledText' : 'text'}>\r\n {icon}\r\n </Icon>\r\n )}\r\n <Text\r\n variant={'label'}\r\n color={disabled ? 'disabledText' : 'text'}\r\n >\r\n {title}\r\n </Text>\r\n </Stack>\r\n <div\r\n className={ACCORDION_STYLES.expandIcon({ expanded: isExpanded })}\r\n >\r\n <Icon color={disabled ? 'disabledText' : 'text'}>\r\n <ChevronDownIcon />\r\n </Icon>\r\n </div>\r\n </button>\r\n <div\r\n className={ACCORDION_STYLES.content({ expanded: isExpanded, contentPadding })}\r\n role={'region'}\r\n aria-hidden={!isExpanded}\r\n >\r\n {children}\r\n </div>\r\n </div>\r\n )\r\n}\r\n\r\nAccordion.displayName = 'Accordion'\r\n\r\nexport default Accordion\r\n","import { AlertPosition } from '@interfaces/alert.types'\r\n\r\nconst ALERT_OFFSET = 16\r\n\r\n/**\r\n * Get position styles for alert\r\n * @param position - Alert position\r\n * @param offsetY - Vertical offset for stacking (in pixels)\r\n * @returns Object with CSS position styles (top/bottom + left/right)\r\n */\r\nexport const getAlertPositionStyles = (position: AlertPosition, offsetY: number): Record<string, string> => {\r\n const verticalPosition = `${ALERT_OFFSET + offsetY}px`\r\n\r\n switch (position) {\r\n case 'top-left':\r\n return { top: verticalPosition, left: `${ALERT_OFFSET}px` }\r\n case 'top-right':\r\n return { top: verticalPosition, right: `${ALERT_OFFSET}px` }\r\n case 'bottom-left':\r\n return { bottom: verticalPosition, left: `${ALERT_OFFSET}px` }\r\n case 'bottom-right':\r\n return { bottom: verticalPosition, right: `${ALERT_OFFSET}px` }\r\n default:\r\n return { top: verticalPosition, right: `${ALERT_OFFSET}px` }\r\n }\r\n}\r\n","import { Theme } from '@aurora-ds/theme'\r\n\r\nimport { AlertVariant } from '@interfaces/alert.types'\r\n\r\nexport interface AlertVariantColors {\r\n background: string\r\n border: string\r\n iconColor: 'info' | 'warning' | 'error' | 'success' | 'text'\r\n}\r\n\r\n/**\r\n * Get colors for alert variants\r\n * @param theme - Aurora theme\r\n * @param variant - Alert variant\r\n * @returns Colors for the variant\r\n */\r\nexport const getAlertVariantColors = (theme: Theme, variant: AlertVariant): AlertVariantColors => {\r\n const variantColors: Record<AlertVariant, AlertVariantColors> = {\r\n default: {\r\n background: theme.colors.surface,\r\n border: theme.colors.border,\r\n iconColor: 'text'\r\n },\r\n info: {\r\n background: theme.colors.infoSubtle,\r\n border: theme.colors.info,\r\n iconColor: 'info'\r\n },\r\n warning: {\r\n background: theme.colors.warningSubtle,\r\n border: theme.colors.warning,\r\n iconColor: 'warning'\r\n },\r\n error: {\r\n background: theme.colors.errorSubtle,\r\n border: theme.colors.error,\r\n iconColor: 'error'\r\n },\r\n success: {\r\n background: theme.colors.successSubtle,\r\n border: theme.colors.success,\r\n iconColor: 'success'\r\n }\r\n }\r\n\r\n return variantColors[variant]\r\n}\r\n","import { createStyles, Theme } from '@aurora-ds/theme'\r\n\r\nimport { AlertStyleParams } from '@components/overlay/alert/Alert.props'\r\nimport { ALERT_MAX_WIDTH } from '@constants/globalConstants.ts'\r\nimport { getAlertPositionStyles } from '@utils/ui/components/overlay/alert/getAlertPositionStyles.utils'\r\nimport { getAlertVariantColors } from '@utils/ui/components/overlay/alert/getAlertVariantColors.utils'\r\n\r\nexport const ALERT_STYLES = createStyles(\r\n (theme: Theme) => ({\r\n root: ({ variant, position, isVisible, offsetY, maxWidth }: AlertStyleParams) => {\r\n const colors = getAlertVariantColors(theme, variant)\r\n const positionStyles = getAlertPositionStyles(position, offsetY)\r\n\r\n return {\r\n position: 'fixed',\r\n ...positionStyles,\r\n display: 'flex',\r\n alignItems: 'center',\r\n gap: theme.spacing.sm,\r\n padding: theme.spacing.sm,\r\n backgroundColor: colors.background,\r\n border: `1px solid ${colors.border}`,\r\n borderRadius: theme.radius.md,\r\n boxShadow: theme.shadows.lg,\r\n minWidth: ALERT_MAX_WIDTH,\r\n maxWidth,\r\n overflow: 'hidden',\r\n zIndex: theme.zIndex.toast,\r\n opacity: isVisible ? 1 : 0,\r\n transform: isVisible ? 'translateY(0)' :\r\n (position.startsWith('top') ? 'translateY(-8px)' : 'translateY(8px)'),\r\n transition: `all ${theme.transition.normal}, opacity ${theme.transition.fast}`,\r\n pointerEvents: isVisible ? 'auto' : 'none'\r\n } as const\r\n }\r\n })\r\n)\r\n","import { JSX } from 'react'\r\n\r\nimport { AlertVariant } from '@interfaces/alert.types'\r\nimport { AlertCircleIcon, AlertTriangleIcon, CheckCircleIcon, InfoIcon } from '@resources/Icons'\r\n\r\n// Pre-create icon instances to avoid recreation on every call\r\nconst ALERT_ICONS: Record<AlertVariant, JSX.Element> = {\r\n default: <InfoIcon />,\r\n info: <InfoIcon />,\r\n warning: <AlertTriangleIcon />,\r\n error: <AlertCircleIcon />,\r\n success: <CheckCircleIcon />\r\n}\r\n\r\n/**\r\n * Get icon component for alert variant\r\n * @param variant - Alert variant\r\n * @returns JSX Element for the icon\r\n */\r\nexport const getAlertIcon = (variant: AlertVariant): JSX.Element => {\r\n return ALERT_ICONS[variant]\r\n}\r\n","import { useTheme } from '@aurora-ds/theme'\r\nimport { FC, useEffect, useRef, useMemo, memo } from 'react'\r\n\r\nimport { Icon } from '@components/foundation/icon'\r\nimport { Text } from '@components/foundation/text'\r\nimport { AlertProps } from '@components/overlay/alert/Alert.props'\r\nimport { ALERT_STYLES } from '@components/overlay/alert/Alert.styles'\r\nimport { ALERT_MAX_WIDTH } from '@constants/globalConstants.ts'\r\nimport { getAlertIcon } from '@utils/ui/components/overlay/alert/getAlertIcon.utils.tsx'\r\nimport { getAlertVariantColors } from '@utils/ui/components/overlay/alert/getAlertVariantColors.utils.ts'\r\n\r\n/**\r\n * Alert component - Display notifications with different variants\r\n *\r\n * **Variants:**\r\n * - `default`: Standard alert with neutral styling\r\n * - `info`: Informational alert with blue styling\r\n * - `warning`: Warning alert with yellow/orange styling\r\n * - `error`: Error alert with red styling\r\n * - `success`: Success alert with green styling\r\n *\r\n * **Features:**\r\n * - Auto-dismisses after 3 seconds\r\n * - Positioned at screen corners\r\n * - Supports stacking with offsetY\r\n * - Icon based on variant\r\n * - Smooth animations\r\n * - Dynamic height calculation for proper stacking\r\n *\r\n * @example\r\n * ```tsx\r\n * <Alert\r\n * text=\"Operation completed successfully\"\r\n * variant=\"success\"\r\n * position=\"top-right\"\r\n * isVisible={true}\r\n * />\r\n * ```\r\n */\r\nconst Alert: FC<AlertProps> = memo(({\r\n text,\r\n variant = 'default',\r\n position = 'top-right',\r\n isVisible = false,\r\n offsetY = 0,\r\n maxWidth = ALERT_MAX_WIDTH,\r\n alertId,\r\n onHeightChange\r\n}) => {\r\n const theme = useTheme()\r\n const alertRef = useRef<HTMLDivElement>(null)\r\n const lastHeightRef = useRef<number>(0)\r\n\r\n const icon = useMemo(() => getAlertIcon(variant), [variant])\r\n const colors = useMemo(() => getAlertVariantColors(theme, variant), [theme, variant])\r\n\r\n // Report height changes to parent (only when height actually changes)\r\n useEffect(() => {\r\n if (alertRef.current && onHeightChange && isVisible && alertId) {\r\n const height = alertRef.current.offsetHeight\r\n // Only call onHeightChange if height has actually changed\r\n if (height !== lastHeightRef.current) {\r\n lastHeightRef.current = height\r\n onHeightChange(alertId, height)\r\n }\r\n }\r\n }, [isVisible, text, maxWidth, alertId, onHeightChange])\r\n\r\n return (\r\n <div\r\n ref={alertRef}\r\n className={ALERT_STYLES.root({ variant, position, isVisible, offsetY, maxWidth })}\r\n role={'alert'}\r\n aria-live={'polite'}\r\n >\r\n <Icon\r\n size={'sm'}\r\n color={colors.iconColor}\r\n >\r\n {icon}\r\n </Icon>\r\n <Text\r\n variant={'span'}\r\n fontSize={'sm'}\r\n color={colors.iconColor}\r\n maxLines={4}\r\n >\r\n {text}\r\n </Text>\r\n </div>\r\n )\r\n})\r\n\r\nAlert.displayName = 'Alert'\r\n\r\nexport { Alert }\r\n","import { createStyles } from '@aurora-ds/theme'\r\n\r\nexport const MODAL_STYLES = createStyles((theme) => ({\r\n background: (isFadingIn: boolean) => ({\r\n background: 'rgba(0, 0, 0, 0.6)',\r\n display: 'flex',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n position: 'fixed',\r\n top: 0,\r\n left: 0,\r\n zIndex: 999999,\r\n transition: 'opacity 150ms ease-in-out',\r\n width: '100vw',\r\n height: '100vh',\r\n opacity: isFadingIn ? 1 : 0,\r\n }),\r\n content: (isFadingIn: boolean) => ({\r\n width: '100%',\r\n maxWidth: 500,\r\n borderRadius: 8,\r\n position: 'absolute',\r\n left: '50%',\r\n top: '50%',\r\n transform: isFadingIn ? 'translate(-50%, -50%) scale(1)' : 'translate(-50%, -50%) scale(0.95)',\r\n transformOrigin: 'center center',\r\n transition: 'transform 150ms ease-in-out',\r\n backgroundColor: theme.colors.background,\r\n padding: theme.spacing.md,\r\n display: 'flex',\r\n flexDirection: 'column',\r\n height: 'fit-content',\r\n alignItems: 'flex-start',\r\n gap: theme.spacing.md,\r\n }),\r\n}))\r\n","import { FC, FormEvent, Fragment, useRef, useEffect, MouseEvent } from 'react'\r\nimport { createPortal } from 'react-dom'\r\n\r\nimport { Button } from '@components/actions/button'\r\nimport { IconButton } from '@components/actions/icon-button'\r\nimport { Form } from '@components/forms/form'\r\nimport { Text } from '@components/foundation/text'\r\nimport { Stack } from '@components/layout/stack'\r\nimport { ModalProps } from '@components/overlay/modal/Modal.props'\r\nimport { MODAL_STYLES } from '@components/overlay/modal/Modal.styles'\r\nimport { BUTTON_SIZE } from '@constants/globalConstants'\r\nimport { useTransitionRender } from '@hooks/useTransitionRender'\r\nimport { CloseIcon } from '@resources/Icons.ts'\r\n\r\nconst Modal: FC<ModalProps> = ({\r\n isOpen,\r\n onClose,\r\n label,\r\n children,\r\n isForm,\r\n action\r\n}) => {\r\n // refs\r\n const modalRef = useRef<HTMLDivElement | null>(null)\r\n\r\n // hooks\r\n const { isVisible, isFadingIn } = useTransitionRender(isOpen)\r\n\r\n useEffect(() => {\r\n const handleKeyDown = (event: KeyboardEvent) => {\r\n if (event.key === 'Escape' && isOpen) {\r\n onClose()\r\n }\r\n }\r\n document.addEventListener('keydown', handleKeyDown)\r\n return () => document.removeEventListener('keydown', handleKeyDown)\r\n }, [isOpen, onClose])\r\n\r\n // actions\r\n const safeInvokeAction = (e?: MouseEvent<HTMLButtonElement>) => {\r\n if (action && typeof action.onClick === 'function') {\r\n // Cast e to required MouseEvent type (or undefined) and call\r\n action.onClick(e as MouseEvent<HTMLButtonElement>)\r\n }\r\n }\r\n\r\n // body of the modal\r\n const body = (\r\n <>\r\n <Stack\r\n justify={'space-between'}\r\n height={BUTTON_SIZE}\r\n width={'100%'}\r\n >\r\n <Text\r\n variant={'h3'}\r\n >\r\n {label}\r\n </Text>\r\n {!action && (\r\n <IconButton\r\n icon={<CloseIcon />}\r\n onClick={onClose}\r\n size={'small'}\r\n variant={'text'}\r\n textColor={'text'}\r\n />\r\n )}\r\n </Stack>\r\n {children}\r\n {action && (\r\n <Stack\r\n justify={'flex-end'}\r\n width={'100%'}\r\n >\r\n <Button\r\n label={'Cancel'}\r\n onClick={onClose}\r\n variant={'outlined'}\r\n />\r\n <Button\r\n {...action}\r\n type={isForm ? 'submit' : 'button'}\r\n onClick={isForm ? undefined : action.onClick}\r\n />\r\n </Stack>\r\n )}\r\n </>\r\n )\r\n\r\n return createPortal(\r\n <Fragment>\r\n {isVisible ? (\r\n <div\r\n className={MODAL_STYLES.background(isFadingIn)}\r\n ref={modalRef}\r\n >\r\n <div\r\n className={MODAL_STYLES.content(isFadingIn)}\r\n >\r\n {isForm ? (\r\n <Form onSubmit={(e: FormEvent) => { e.preventDefault(); safeInvokeAction() }}>\r\n {body}\r\n </Form>\r\n ) : (\r\n <Fragment>\r\n {body}\r\n </Fragment>\r\n )}\r\n </div>\r\n </div>\r\n ) : null}\r\n </Fragment>,\r\n document.body\r\n )\r\n}\r\n\r\nModal.displayName = 'Modal'\r\n\r\nexport default Modal\r\n","import { createStyles } from '@aurora-ds/theme'\r\n\r\nimport { DrawerItemStyleParams } from '@components/navigation/drawer-item/DrawerItem.props'\r\nimport { DRAWER_ITEM_HEIGHT } from '@constants/globalConstants.ts'\r\n\r\n/**\r\n * DrawerItem styles using createStyles from @aurora-ds/theme\r\n */\r\nexport const DRAWER_ITEM_STYLES = createStyles((theme) => ({\r\n root: ({ selected = false }: DrawerItemStyleParams) => ({\r\n display: 'inline-flex',\r\n alignItems: 'center',\r\n justifyContent: 'space-between',\r\n boxSizing: 'border-box',\r\n gap: theme.spacing.sm,\r\n padding: `${theme.spacing.xs} ${theme.spacing.sm}`,\r\n borderRadius: theme.radius.md,\r\n cursor: 'pointer',\r\n transition: `background-color ${theme.transition.fast}, color ${theme.transition.fast}`,\r\n fontFamily: 'inherit',\r\n width: '100%',\r\n minHeight: DRAWER_ITEM_HEIGHT,\r\n maxHeight: DRAWER_ITEM_HEIGHT,\r\n backgroundColor: selected ? theme.colors.primary : 'transparent',\r\n color: selected ? theme.colors.onPrimary : theme.colors.textSecondary,\r\n border: 'none',\r\n ':hover': {\r\n backgroundColor: selected ? theme.colors.primaryHover : theme.colors.surfaceHover,\r\n color: selected ? theme.colors.onPrimary : theme.colors.text,\r\n },\r\n ':active': {\r\n backgroundColor: selected ? theme.colors.primaryActive : theme.colors.surfaceActive,\r\n },\r\n ':disabled': {\r\n color: theme.colors.disabledText,\r\n backgroundColor: selected ? theme.colors.disabled : 'transparent',\r\n cursor: 'not-allowed',\r\n },\r\n }),\r\n}))\r\n","import { FC } from 'react'\r\n\r\nimport { Chip } from '@components/data-display/chip'\r\nimport { Icon } from '@components/foundation/icon'\r\nimport { Text } from '@components/foundation/text'\r\nimport { Stack } from '@components/layout/stack'\r\nimport { DrawerItemProps } from '@components/navigation/drawer-item/DrawerItem.props'\r\nimport { DRAWER_ITEM_STYLES } from '@components/navigation/drawer-item/DrawerItem.styles'\r\n\r\n/**\r\n * DrawerItem component\r\n *\r\n * A navigation item for use in drawers/sidebars.\r\n * Similar to a text button with selected state support.\r\n */\r\nconst DrawerItem: FC<DrawerItemProps> = ({\r\n label,\r\n startIcon,\r\n endIcon,\r\n selected = false,\r\n onClick,\r\n disabled,\r\n chip,\r\n ariaLabel,\r\n ariaLabelledBy,\r\n ariaDescribedBy,\r\n role,\r\n tabIndex,\r\n}) => {\r\n return (\r\n <button\r\n onClick={onClick}\r\n disabled={disabled}\r\n type={'button'}\r\n className={DRAWER_ITEM_STYLES.root({ selected })}\r\n aria-label={ariaLabel}\r\n aria-labelledby={ariaLabelledBy}\r\n aria-describedby={ariaDescribedBy}\r\n role={role}\r\n tabIndex={tabIndex}\r\n >\r\n <Stack>\r\n {startIcon && (\r\n <Icon>\r\n {startIcon}\r\n </Icon>\r\n )}\r\n <Text\r\n variant={'label'}\r\n maxLines={1}\r\n >\r\n {label}\r\n </Text>\r\n {endIcon && (\r\n <Icon>\r\n {endIcon}\r\n </Icon>\r\n )}\r\n </Stack>\r\n {chip && !selected && (\r\n <Chip\r\n {...chip}\r\n size={'2xs'}\r\n color={chip.color ?? 'info'}\r\n disabled={disabled}\r\n />\r\n )}\r\n </button>\r\n )\r\n}\r\n\r\nDrawerItem.displayName = 'DrawerItem'\r\n\r\nexport default DrawerItem\r\n","import { createStyles } from '@aurora-ds/theme'\r\n\r\n/**\r\n * Breadcrumb styles using createStyles from @aurora-ds/theme\r\n */\r\nexport const BREADCRUMB_STYLES = createStyles((theme) => ({\r\n list: {\r\n display: 'flex',\r\n flexWrap: 'wrap',\r\n alignItems: 'center',\r\n gap: theme.spacing.sm,\r\n wordBreak: 'break-word',\r\n fontSize: theme.fontSize.sm,\r\n color: theme.colors.disabledText,\r\n listStyle: 'none',\r\n margin: 0,\r\n padding: 0,\r\n },\r\n}))\r\n","import { createStyles } from '@aurora-ds/theme'\r\n\r\n/**\r\n * BreadcrumbEllipsis styles using createStyles from @aurora-ds/theme\r\n */\r\nexport const BREADCRUMB_ELLIPSIS_STYLES = createStyles((theme) => ({\r\n item: {\r\n display: 'inline-flex',\r\n alignItems: 'center',\r\n gap: theme.spacing.sm,\r\n },\r\n ellipsis: {\r\n display: 'flex',\r\n height: 36,\r\n width: 36,\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n },\r\n}))\r\n","import { FC } from 'react'\r\n\r\nimport { Icon } from '@components/foundation/icon'\r\nimport { BreadcrumbEllipsisProps } from '@components/navigation/breadcrumb/BreadcrumbEllipsis/BreadcrumbEllipsis.props.ts'\r\nimport { BREADCRUMB_ELLIPSIS_STYLES } from '@components/navigation/breadcrumb/BreadcrumbEllipsis/BreadcrumbEllipsis.styles.ts'\r\nimport { MoreHorizontalIcon } from '@resources/icons/MoreHorizontalIcon.tsx'\r\n\r\n/**\r\n * BreadcrumbEllipsis component\r\n * Renders an ellipsis item in the breadcrumb (includes the li wrapper)\r\n */\r\nconst BreadcrumbEllipsis: FC<BreadcrumbEllipsisProps> = () => (\r\n <li className={BREADCRUMB_ELLIPSIS_STYLES.item}>\r\n <span\r\n role={'presentation'}\r\n aria-hidden={'true'}\r\n className={BREADCRUMB_ELLIPSIS_STYLES.ellipsis}\r\n >\r\n <Icon\r\n size={'md'}\r\n color={'disabledText'}\r\n >\r\n <MoreHorizontalIcon />\r\n </Icon>\r\n </span>\r\n </li>\r\n)\r\nBreadcrumbEllipsis.displayName = 'BreadcrumbEllipsis'\r\n\r\nexport { BreadcrumbEllipsis }\r\n","import { FC } from 'react'\r\n\r\nimport { Icon } from '@components/foundation/icon'\r\nimport { BreadcrumbSeparatorProps } from '@components/navigation/breadcrumb/BreadcrumbSeparator/BreadcrumbSeparator.props.ts'\r\nimport { ChevronRightIcon } from '@resources/icons/ChevronRightIcon.tsx'\r\n\r\n/**\r\n * BreadcrumbSeparator component\r\n */\r\nconst BreadcrumbSeparator: FC<BreadcrumbSeparatorProps> = () => (\r\n <li\r\n role={'presentation'}\r\n aria-hidden={'true'}\r\n >\r\n <Icon\r\n color={'disabledText'}\r\n size={'sm'}\r\n >\r\n <ChevronRightIcon />\r\n </Icon>\r\n </li>\r\n)\r\nBreadcrumbSeparator.displayName = 'BreadcrumbSeparator'\r\n\r\nexport { BreadcrumbSeparator }\r\n","import { cloneElement, ComponentType, isValidElement, ReactElement, ReactNode } from 'react'\r\n\r\n/**\r\n * Inserts separators between breadcrumb items automatically\r\n */\r\nexport const insertSeparators = (\r\n items: ReactNode[],\r\n SeparatorComponent: ComponentType\r\n): ReactNode[] => {\r\n const result: ReactNode[] = []\r\n\r\n items.forEach((item, index) => {\r\n // Add the item with a key\r\n const itemWithKey = isValidElement(item)\r\n ? cloneElement(item as ReactElement, { key: `item-${index}` })\r\n : item\r\n result.push(itemWithKey)\r\n\r\n // Add separator after each item except the last one\r\n if (index < items.length - 1) {\r\n result.push(<SeparatorComponent key={`sep-${index}`} />)\r\n }\r\n })\r\n\r\n return result\r\n}\r\n","import { cloneElement, ComponentType, isValidElement, ReactElement, ReactNode } from 'react'\r\n\r\nimport { insertSeparators } from '@utils/ui/components/navigation/breadcrumb/insertSeparators.utils'\r\n\r\n/**\r\n * Builds the breadcrumb children with ellipsis logic\r\n */\r\nexport const buildBreadcrumbChildren = (\r\n items: ReactNode[],\r\n maxItems: number | undefined,\r\n EllipsisComponent: ComponentType,\r\n SeparatorComponent: ComponentType\r\n): ReactNode[] => {\r\n if (!maxItems || items.length <= maxItems) {\r\n return insertSeparators(items, SeparatorComponent)\r\n }\r\n\r\n // First item\r\n const firstItem = items[0]\r\n\r\n // Last (maxItems - 1) items\r\n const lastItemsCount = maxItems - 1\r\n const lastItems = items.slice(-lastItemsCount)\r\n\r\n // Build the result: first + separator + ellipsis + separator + last items with separators between them\r\n const result: ReactNode[] = []\r\n\r\n // Add first item with key\r\n const firstWithKey = isValidElement(firstItem)\r\n ? cloneElement(firstItem as ReactElement, { key: 'first' })\r\n : firstItem\r\n result.push(firstWithKey)\r\n\r\n // Add separator + ellipsis + separator\r\n result.push(<SeparatorComponent key={'sep-ellipsis-before'} />)\r\n result.push(<EllipsisComponent key={'ellipsis'} />)\r\n result.push(<SeparatorComponent key={'sep-ellipsis-after'} />)\r\n\r\n // Add last items with separators between them\r\n lastItems.forEach((item, index) => {\r\n const itemWithKey = isValidElement(item)\r\n ? cloneElement(item as ReactElement, { key: `last-${index}` })\r\n : item\r\n result.push(itemWithKey)\r\n\r\n // Add separator between items (but not after the last one)\r\n if (index < lastItems.length - 1) {\r\n result.push(<SeparatorComponent key={`sep-last-${index}`} />)\r\n }\r\n })\r\n\r\n return result\r\n}\r\n","import { Children, Fragment, isValidElement, ReactNode } from 'react'\r\n\r\n/**\r\n * Flattens children, extracting children from Fragments\r\n */\r\nexport const flattenChildren = (children: ReactNode): ReactNode[] => {\r\n const result: ReactNode[] = []\r\n\r\n Children.forEach(children, (child) => {\r\n if (isValidElement(child) && child.type === Fragment) {\r\n result.push(...flattenChildren(child.props.children))\r\n } else {\r\n result.push(child)\r\n }\r\n })\r\n\r\n return result\r\n}\r\n","import { isValidElement, ReactNode } from 'react'\r\n\r\n/**\r\n * Checks if a React element is a BreadcrumbSeparator\r\n */\r\nexport const isSeparator = (child: ReactNode): boolean => {\r\n return isValidElement(child) && (child.type as { displayName?: string })?.displayName === 'BreadcrumbSeparator'\r\n}\r\n","import { memo, useMemo } from 'react'\r\n\r\nimport { BreadcrumbProps } from '@components/navigation/breadcrumb/Breadcrumb.props.ts'\r\nimport { BREADCRUMB_STYLES } from '@components/navigation/breadcrumb/Breadcrumb.styles.ts'\r\nimport { BreadcrumbEllipsis } from '@components/navigation/breadcrumb/BreadcrumbEllipsis'\r\nimport { BreadcrumbSeparator } from '@components/navigation/breadcrumb/BreadcrumbSeparator'\r\nimport { buildBreadcrumbChildren } from '@utils/ui/components/navigation/breadcrumb/buildBreadcrumbChildren.utils'\r\nimport { flattenChildren } from '@utils/ui/components/navigation/breadcrumb/flattenChildren.utils'\r\nimport { isSeparator } from '@utils/ui/components/navigation/breadcrumb/isSeparator.utils'\r\n\r\n/**\r\n * Breadcrumb component\r\n * Navigation component for hierarchical page structures\r\n *\r\n * @param maxItems - Maximum number of items to display (minimum 2).\r\n * If exceeded, shows: first item + ellipsis + last (maxItems - 1) items\r\n * @param children\r\n * @param props\r\n */\r\nconst Breadcrumb = memo<BreadcrumbProps>(({\r\n maxItems,\r\n children,\r\n ...props\r\n}) => {\r\n const allChildren = flattenChildren(children)\r\n\r\n // Filter out any manually added separators (in case user added them)\r\n const items = allChildren.filter(child => !isSeparator(child))\r\n\r\n const renderedChildren = useMemo(() => buildBreadcrumbChildren(\r\n items,\r\n maxItems,\r\n BreadcrumbEllipsis,\r\n BreadcrumbSeparator\r\n ), [items, maxItems])\r\n\r\n return (\r\n <nav\r\n aria-label={'breadcrumb'}\r\n {...props}\r\n >\r\n <ol\r\n className={BREADCRUMB_STYLES.list}\r\n >\r\n {renderedChildren}\r\n </ol>\r\n </nav>\r\n )\r\n})\r\nBreadcrumb.displayName = 'Breadcrumb'\r\n\r\nexport { Breadcrumb }\r\n","import { createStyles } from '@aurora-ds/theme'\r\n\r\n/**\r\n * BreadcrumbLink styles using createStyles from @aurora-ds/theme\r\n */\r\nexport const BREADCRUMB_LINK_STYLES = createStyles((theme) => ({\r\n item: {\r\n display: 'inline-flex',\r\n alignItems: 'center',\r\n gap: theme.spacing.sm,\r\n cursor: 'pointer'\r\n },\r\n link: {\r\n transition: `color ${theme.transition.fast}, text-decoration-color ${theme.transition.fast}`,\r\n color: theme.colors.disabledText,\r\n textDecoration: 'underline',\r\n textDecorationColor: 'transparent',\r\n textUnderlineOffset: '3px',\r\n ':hover': {\r\n color: theme.colors.primary,\r\n textDecorationColor: 'currentColor',\r\n },\r\n },\r\n}))\r\n","import { memo } from 'react'\r\n\r\nimport { Text } from '@components/foundation/text'\r\nimport { BreadcrumbLinkProps } from '@components/navigation/breadcrumb/BreadcrumbLink/BreadcrumbLink.props.ts'\r\nimport { BREADCRUMB_LINK_STYLES } from '@components/navigation/breadcrumb/BreadcrumbLink/BreadcrumbLink.styles.ts'\r\n\r\n/**\r\n * BreadcrumbLink component\r\n * Renders a clickable breadcrumb item with a link\r\n */\r\nconst BreadcrumbLink = memo<BreadcrumbLinkProps>((props) => {\r\n const { children, onClick } = props\r\n\r\n return (\r\n <li className={BREADCRUMB_LINK_STYLES.item}>\r\n <a\r\n className={BREADCRUMB_LINK_STYLES.link}\r\n onClick={onClick}\r\n >\r\n <Text\r\n variant={'span'}\r\n fontSize={'sm'}\r\n >\r\n {children}\r\n </Text>\r\n </a>\r\n </li>\r\n )\r\n})\r\nBreadcrumbLink.displayName = 'BreadcrumbLink'\r\n\r\nexport { BreadcrumbLink }\r\n","import { createStyles } from '@aurora-ds/theme'\r\n\r\n/**\r\n * BreadcrumbPage styles using createStyles from @aurora-ds/theme\r\n */\r\nexport const BREADCRUMB_PAGE_STYLES = createStyles((theme) => ({\r\n item: {\r\n display: 'inline-flex',\r\n alignItems: 'center',\r\n gap: theme.spacing.sm,\r\n },\r\n page: {\r\n fontWeight: theme.fontWeight.medium,\r\n color: theme.colors.primary,\r\n },\r\n}))\r\n","import { memo } from 'react'\r\n\r\nimport { Text } from '@components/foundation/text'\r\nimport { BreadcrumbPageProps } from '@components/navigation/breadcrumb/BreadcrumbPage/BreadcrumbPage.props.ts'\r\nimport { BREADCRUMB_PAGE_STYLES } from '@components/navigation/breadcrumb/BreadcrumbPage/BreadcrumbPage.styles.ts'\r\n\r\n/**\r\n * BreadcrumbPage component\r\n * Renders the current page (non-clickable) in the breadcrumb\r\n */\r\nconst BreadcrumbPage = memo<BreadcrumbPageProps>(({\r\n children\r\n}) => (\r\n <li className={BREADCRUMB_PAGE_STYLES.item}>\r\n <span\r\n className={BREADCRUMB_PAGE_STYLES.page}\r\n >\r\n <Text\r\n variant={'span'}\r\n fontSize={'sm'}\r\n color={'primary'}\r\n >\r\n {children}\r\n </Text>\r\n </span>\r\n </li>\r\n))\r\nBreadcrumbPage.displayName = 'BreadcrumbPage'\r\n\r\nexport { BreadcrumbPage }\r\n","import { createStyles } from '@aurora-ds/theme'\r\n\r\nimport { TabsStyleParams } from '@components/navigation/tabs/Tabs.props'\r\nimport { BUTTON_SIZE } from '@constants/globalConstants.ts'\r\n\r\n/**\r\n * Tabs styles using createStyles from @aurora-ds/theme\r\n */\r\nexport const TABS_STYLES = createStyles((theme) => ({\r\n root: ({ width = '100%' }: TabsStyleParams) => ({\r\n display: 'flex',\r\n width,\r\n backgroundColor: theme.colors.surfaceHover,\r\n borderRadius: theme.radius.md,\r\n overflow: 'hidden',\r\n padding: theme.spacing.xs,\r\n height: `calc(2 * ${theme.spacing.xs} + ${BUTTON_SIZE}px)`,\r\n }),\r\n}))\r\n","import React, { FC } from 'react'\r\n\r\nimport { TabsProps } from '@components/navigation/tabs/Tabs.props'\r\nimport { TABS_STYLES } from '@components/navigation/tabs/Tabs.styles'\r\n\r\n/**\r\n * Tabs component for navigation between multiple sections\r\n */\r\nconst Tabs: FC<TabsProps> = ({\r\n children,\r\n activeTab,\r\n width = '100%',\r\n}) => {\r\n return (\r\n <div\r\n className={TABS_STYLES.root({ width })}\r\n >\r\n {React.Children.map(children, (child, index) => {\r\n if (React.isValidElement(child)) {\r\n const tabValue = child.props.value\r\n const isActive = activeTab === tabValue || (activeTab === undefined && index === 0)\r\n return React.cloneElement(child, {\r\n isActive,\r\n })\r\n }\r\n return child\r\n })}\r\n </div>\r\n )\r\n}\r\n\r\nTabs.displayName = 'Tabs'\r\n\r\nexport default Tabs\r\n","import { createStyles } from '@aurora-ds/theme'\n\nimport { BUTTON_SIZE } from '@constants/globalConstants.ts'\n\n/**\n * Tabs styles using createStyles from @aurora-ds/theme\n */\nexport const TAB_ITEM_STYLES = createStyles((theme) => ({\n tab: (isActive: boolean) => ({\n flex: 1,\n padding: theme.spacing.sm,\n height: BUTTON_SIZE,\n borderRadius: theme.radius.sm,\n cursor: 'pointer',\n transition: `background-color ${theme.transition.fast}, color ${theme.transition.fast}, boxShadow ${theme.transition.fast}`,\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n gap: theme.spacing.sm,\n backgroundColor: isActive ? theme.colors.background : 'transparent',\n color: isActive ? theme.colors.text : theme.colors.textSecondary,\n boxShadow: isActive ? theme.shadows.sm : undefined,\n ':hover': {\n backgroundColor: !isActive ? theme.colors.secondaryActive : undefined,\n },\n }),\n}))\n","import { FC } from 'react'\r\n\r\nimport Icon from '@components/foundation/icon/Icon.tsx'\r\nimport { Text } from '@components/foundation/text'\r\nimport { TabItemProps } from '@components/navigation/tabs/tab-item/TabItem.props.ts'\r\nimport { TAB_ITEM_STYLES } from '@components/navigation/tabs/tab-item/TabItem.styles.ts'\r\n\r\n/**\r\n * TabItem component for use inside Tabs\r\n */\r\nconst TabItem: FC<TabItemProps> = ({\r\n label,\r\n isActive = false,\r\n onClick,\r\n startIcon,\r\n endIcon\r\n}) => {\r\n return (\r\n <div\r\n className={TAB_ITEM_STYLES.tab(isActive)}\r\n onClick={onClick}\r\n >\r\n {startIcon && (\r\n <Icon>\r\n {startIcon}\r\n </Icon>\r\n )}\r\n {label && (\r\n <Text\r\n variant={'label'}\r\n preserveWhitespace\r\n maxLines={1}\r\n >\r\n {label}\r\n </Text>\r\n )}\r\n {endIcon && (\r\n <Icon>\r\n {endIcon}\r\n </Icon>\r\n )}\r\n </div>\r\n )\r\n}\r\n\r\nTabItem.displayName = 'TabItem'\r\n\r\nexport default TabItem\r\n","import { createStyles } from '@aurora-ds/theme'\r\n\r\nimport { PaginationStyleParams } from '@components/navigation/pagination/Pagination.props'\r\n\r\nexport const PAGINATION_STYLES = createStyles((theme) => ({\r\n root: {\r\n display: 'flex',\r\n alignItems: 'center',\r\n gap: theme.spacing.xs,\r\n },\r\n pageButton: ({ disabled = false, active = false }: PaginationStyleParams) => ({\r\n display: 'inline-flex',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n boxSizing: 'border-box',\r\n padding: theme.spacing.sm,\r\n borderRadius: theme.radius.md,\r\n cursor: disabled ? 'not-allowed' : 'pointer',\r\n transition: `background-color ${theme.transition.fast}, color ${theme.transition.fast}`,\r\n minHeight: '40px',\r\n maxHeight: '40px',\r\n minWidth: '40px',\r\n maxWidth: '40px',\r\n fontFamily: 'inherit',\r\n fontSize: theme.fontSize.md,\r\n fontWeight: theme.fontWeight.medium,\r\n backgroundColor: active ? theme.colors.primary : 'transparent',\r\n color: active ? theme.colors.onPrimary : theme.colors.text,\r\n border: 'none',\r\n opacity: disabled ? 0.4 : 1,\r\n ':hover': disabled ? {} : (active ? {\r\n backgroundColor: theme.colors.primary,\r\n color: theme.colors.onPrimary,\r\n } : {\r\n backgroundColor: theme.colors.surfaceHover,\r\n }),\r\n ':active': disabled ? {} : (active ? {\r\n backgroundColor: theme.colors.primary,\r\n color: theme.colors.onPrimary,\r\n } : {\r\n backgroundColor: theme.colors.surfaceActive,\r\n }),\r\n }),\r\n // kept for backward compatibility in case some usages relied on it directly\r\n activePageButton: {\r\n backgroundColor: theme.colors.primary,\r\n color: theme.colors.onPrimary,\r\n ':hover': {\r\n backgroundColor: theme.colors.primary,\r\n },\r\n ':active': {\r\n backgroundColor: theme.colors.primary,\r\n },\r\n },\r\n navigationButton: ({ disabled = false }: PaginationStyleParams) => ({\r\n display: 'inline-flex',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n boxSizing: 'border-box',\r\n padding: theme.spacing.sm,\r\n borderRadius: theme.radius.md,\r\n cursor: disabled ? 'not-allowed' : 'pointer',\r\n transition: `background-color ${theme.transition.fast}, color ${theme.transition.fast}`,\r\n minHeight: '40px',\r\n maxHeight: '40px',\r\n minWidth: '40px',\r\n maxWidth: '40px',\r\n fontFamily: 'inherit',\r\n backgroundColor: 'transparent',\r\n color: theme.colors.text,\r\n border: 'none',\r\n opacity: disabled ? 0.4 : 1,\r\n ':hover': disabled ? {} : {\r\n backgroundColor: theme.colors.surfaceHover,\r\n },\r\n ':active': disabled ? {} : {\r\n backgroundColor: theme.colors.surfaceActive,\r\n },\r\n }),\r\n}))\r\n","import { FC, useMemo } from 'react'\r\n\r\nimport { PaginationProps } from '@components/navigation/pagination/Pagination.props'\r\nimport { PAGINATION_STYLES } from '@components/navigation/pagination/Pagination.styles'\r\nimport { ChevronLeftIcon, ChevronRightIcon } from '@resources/Icons'\r\n\r\n/**\r\n * Pagination component for navigating between pages\r\n */\r\nexport const Pagination: FC<PaginationProps> = ({\r\n currentPage,\r\n totalPages,\r\n onPageChange,\r\n onPrevious,\r\n onNext,\r\n maxVisiblePages = 7,\r\n ariaLabel = 'Pagination'\r\n}) => {\r\n const styles = PAGINATION_STYLES\r\n\r\n // Calculate which page numbers to display\r\n const visiblePages = useMemo(() => {\r\n const pages: number[] = []\r\n\r\n if (totalPages <= maxVisiblePages) {\r\n // Show all pages if they fit\r\n for (let i = 1; i <= totalPages; i++) {\r\n pages.push(i)\r\n }\r\n } else {\r\n // Calculate range around current page\r\n const halfVisible = Math.floor(maxVisiblePages / 2)\r\n const start = Math.max(1, currentPage - halfVisible)\r\n const end = Math.min(totalPages, start + maxVisiblePages - 1)\r\n\r\n // Adjust start if we're near the end\r\n const adjustedStart = end === totalPages ? Math.max(1, end - maxVisiblePages + 1) : start\r\n\r\n for (let i = adjustedStart; i <= end; i++) {\r\n pages.push(i)\r\n }\r\n }\r\n\r\n return pages\r\n }, [currentPage, totalPages, maxVisiblePages])\r\n\r\n const handlePrevious = () => {\r\n if (currentPage > 1) {\r\n const newPage = currentPage - 1\r\n if (onPrevious) {\r\n onPrevious(newPage)\r\n }\r\n onPageChange(newPage)\r\n }\r\n }\r\n\r\n const handleNext = () => {\r\n if (currentPage < totalPages) {\r\n const newPage = currentPage + 1\r\n if (onNext) {\r\n onNext(newPage)\r\n }\r\n onPageChange(newPage)\r\n }\r\n }\r\n\r\n const handlePageClick = (page: number) => {\r\n if (page !== currentPage) {\r\n onPageChange(page)\r\n }\r\n }\r\n\r\n const isPreviousDisabled = currentPage === 1\r\n const isNextDisabled = currentPage === totalPages\r\n\r\n return (\r\n <nav\r\n aria-label={ariaLabel}\r\n className={styles.root}\r\n >\r\n {/* Previous button */}\r\n <button\r\n type={'button'}\r\n onClick={handlePrevious}\r\n disabled={isPreviousDisabled}\r\n aria-label={'Page précédente'}\r\n className={styles.navigationButton({ disabled: isPreviousDisabled })}\r\n >\r\n <ChevronLeftIcon />\r\n </button>\r\n\r\n {/* Page numbers */}\r\n {visiblePages.map((page) => {\r\n const isActive = page === currentPage\r\n return (\r\n <button\r\n key={page}\r\n type={'button'}\r\n onClick={() => handlePageClick(page)}\r\n aria-label={`Page ${page}`}\r\n aria-current={isActive ? 'page' : undefined}\r\n className={styles.pageButton({ disabled: false, active: isActive })}\r\n >\r\n {page}\r\n </button>\r\n )\r\n })}\r\n\r\n {/* Next button */}\r\n <button\r\n type={'button'}\r\n onClick={handleNext}\r\n disabled={isNextDisabled}\r\n aria-label={'Page suivante'}\r\n className={styles.navigationButton({ disabled: isNextDisabled })}\r\n >\r\n <ChevronRightIcon />\r\n </button>\r\n </nav>\r\n )\r\n}\r\n\r\nPagination.displayName = 'Pagination'\r\n","import { createContext, FC, useCallback, useContext, useEffect, useMemo, useRef, useState } from 'react'\r\nimport { createPortal } from 'react-dom'\r\n\r\nimport { Alert } from '@components/overlay/alert'\r\nimport { AlertItem, AlertContextValue, AlertProviderProps, ShowAlertOptions } from '@hooks/useAlert.types'\r\n\r\nconst AlertContext = createContext<AlertContextValue | undefined>(undefined)\r\n\r\nconst ALERT_DURATION = 3000\r\nconst MAX_ALERTS = 2\r\nconst ALERT_HEIGHT = 48 // Approximate height with padding (px)\r\nconst ALERT_SPACING = 6 // Spacing between alerts (px)\r\n\r\n/**\r\n * Alert Provider Component\r\n * Manages alert queue and renders alerts in a portal\r\n */\r\nconst AlertProvider: FC<AlertProviderProps> = ({ children }) => {\r\n const [alerts, setAlerts] = useState<AlertItem[]>([])\r\n const [visibleAlerts, setVisibleAlerts] = useState<Set<string>>(new Set())\r\n const [alertHeights, setAlertHeights] = useState<Map<string, number>>(new Map())\r\n const timersRef = useRef<Map<string, NodeJS.Timeout>>(new Map())\r\n\r\n const showAlert = useCallback((options: ShowAlertOptions) => {\r\n const {\r\n text,\r\n variant = 'default',\r\n position = 'top-right',\r\n duration = ALERT_DURATION,\r\n maxWidth = 300\r\n } = options\r\n\r\n const id = `alert-${Date.now()}-${Math.random()}`\r\n const newAlert: AlertItem = {\r\n id,\r\n text,\r\n variant,\r\n position,\r\n timestamp: Date.now(),\r\n maxWidth\r\n }\r\n\r\n setAlerts((prev) => {\r\n const updatedAlerts = [...prev, newAlert]\r\n // Keep only MAX_ALERTS for the same position\r\n const samePositionAlerts = updatedAlerts.filter(a => a.position === position)\r\n\r\n if (samePositionAlerts.length > MAX_ALERTS) {\r\n // Remove the oldest alert for this position\r\n const oldestAlert = samePositionAlerts[0]\r\n const timerToRemove = timersRef.current.get(oldestAlert.id)\r\n if (timerToRemove) {\r\n clearTimeout(timerToRemove)\r\n timersRef.current.delete(oldestAlert.id)\r\n }\r\n setVisibleAlerts((prevVisible) => {\r\n const newVisible = new Set(prevVisible)\r\n newVisible.delete(oldestAlert.id)\r\n return newVisible\r\n })\r\n // Remove from alerts array after animation\r\n setTimeout(() => {\r\n setAlerts((current) => current.filter(a => a.id !== oldestAlert.id))\r\n setAlertHeights((prevHeights) => {\r\n const newMap = new Map(prevHeights)\r\n newMap.delete(oldestAlert.id)\r\n return newMap\r\n })\r\n }, 300)\r\n\r\n return updatedAlerts.filter(a => a.id !== oldestAlert.id)\r\n }\r\n\r\n return updatedAlerts\r\n })\r\n\r\n // Show alert after a small delay for animation\r\n setTimeout(() => {\r\n setVisibleAlerts((prev) => new Set(prev).add(id))\r\n }, 10)\r\n\r\n // Auto-dismiss timer\r\n const timer = setTimeout(() => {\r\n setVisibleAlerts((prev) => {\r\n const newVisible = new Set(prev)\r\n newVisible.delete(id)\r\n return newVisible\r\n })\r\n\r\n // Remove from DOM after animation\r\n setTimeout(() => {\r\n setAlerts((prev) => prev.filter(a => a.id !== id))\r\n setAlertHeights((prev) => {\r\n const newMap = new Map(prev)\r\n newMap.delete(id)\r\n return newMap\r\n })\r\n timersRef.current.delete(id)\r\n }, 300)\r\n }, duration)\r\n\r\n timersRef.current.set(id, timer)\r\n }, [])\r\n\r\n // Handle height changes from alerts (memoized to avoid re-creating on every render)\r\n const handleHeightChange = useCallback((alertId: string, height: number) => {\r\n setAlertHeights((prev) => {\r\n const currentHeight = prev.get(alertId)\r\n // Only update if height actually changed\r\n if (currentHeight !== height) {\r\n const newMap = new Map(prev)\r\n newMap.set(alertId, height)\r\n return newMap\r\n }\r\n return prev\r\n })\r\n }, [])\r\n\r\n // Cleanup timers on unmount\r\n useEffect(() => {\r\n return () => {\r\n timersRef.current.forEach(timer => clearTimeout(timer))\r\n timersRef.current.clear()\r\n }\r\n }, [])\r\n\r\n const contextValue = useMemo<AlertContextValue>(\r\n () => ({ showAlert }),\r\n [showAlert]\r\n )\r\n\r\n // Group alerts by position\r\n const alertsByPosition = useMemo(() => {\r\n const grouped: Record<string, AlertItem[]> = {}\r\n alerts.forEach(alert => {\r\n if (!grouped[alert.position]) {\r\n grouped[alert.position] = []\r\n }\r\n grouped[alert.position].push(alert)\r\n })\r\n return grouped\r\n }, [alerts])\r\n\r\n return (\r\n <AlertContext.Provider value={contextValue}>\r\n {children}\r\n {typeof window !== 'undefined' && createPortal(\r\n <>\r\n {Object.entries(alertsByPosition).map(([position, positionAlerts]) => {\r\n // positionAlerts is ordered from oldest -> newest\r\n const isTopPosition = position.startsWith('top')\r\n const ordered = isTopPosition ? [...positionAlerts].reverse() : positionAlerts\r\n\r\n return ordered.map((alert, index) => {\r\n // Calculate offset based on actual heights of previous alerts\r\n let offset = 0\r\n for (let i = 0; i < index; i++) {\r\n const prevAlert = ordered[i]\r\n const height = alertHeights.get(prevAlert.id) || ALERT_HEIGHT\r\n offset += height + ALERT_SPACING\r\n }\r\n\r\n return (\r\n <Alert\r\n key={alert.id}\r\n text={alert.text}\r\n variant={alert.variant}\r\n position={alert.position}\r\n isVisible={visibleAlerts.has(alert.id)}\r\n offsetY={offset}\r\n maxWidth={alert.maxWidth}\r\n alertId={alert.id}\r\n onHeightChange={handleHeightChange}\r\n />\r\n )\r\n })\r\n })}\r\n </>,\r\n document.body\r\n )}\r\n </AlertContext.Provider>\r\n )\r\n}\r\n\r\n/**\r\n * Hook to access alert functionality\r\n *\r\n * @example\r\n * ```tsx\r\n * const { showAlert } = useAlert()\r\n *\r\n * showAlert({\r\n * text: 'Operation completed',\r\n * variant: 'success',\r\n * position: 'top-right'\r\n * })\r\n * ```\r\n */\r\nconst useAlert = (): AlertContextValue => {\r\n const context = useContext(AlertContext)\r\n if (!context) {\r\n throw new Error('useAlert must be used within an AlertProvider')\r\n }\r\n return context\r\n}\r\n\r\nexport { AlertProvider, useAlert }\r\n"],"names":["createStyles","Children","isValidElement","cloneElement","_jsx","createElement","Fragment","theme","useTheme","useMemo","_jsxs","keyframes","colors","useCallback","memo","forwardRef","useState","useRef","useEffect","useLayoutEffect","createPortal","CalendarHeader","CalendarGrid","Calendar","_Fragment","Form","createContext","useContext"],"mappings":"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"}
|